{"version":3,"file":"index.cjs","sources":["../__vite-browser-external","../node_modules/typescript/lib/typescript.js","../lib/constants.ts","../lib/analyze-estree.ts","../lib/analyze-ts.ts","../lib/scan.ts","../lib/index.ts","../node_modules/lucide-react/dist/esm/shared/src/utils.js","../node_modules/lucide-react/dist/esm/defaultAttributes.js","../node_modules/lucide-react/dist/esm/Icon.js","../node_modules/lucide-react/dist/esm/createLucideIcon.js","../node_modules/lucide-react/dist/esm/icons/arrow-down.js","../node_modules/lucide-react/dist/esm/icons/arrow-up-down.js","../node_modules/lucide-react/dist/esm/icons/arrow-up.js","../node_modules/lucide-react/dist/esm/icons/blocks.js","../node_modules/lucide-react/dist/esm/icons/box.js","../node_modules/lucide-react/dist/esm/icons/boxes.js","../node_modules/lucide-react/dist/esm/icons/braces.js","../node_modules/lucide-react/dist/esm/icons/chevron-down.js","../node_modules/lucide-react/dist/esm/icons/chevron-right.js","../node_modules/lucide-react/dist/esm/icons/circle-question-mark.js","../node_modules/lucide-react/dist/esm/icons/cloud.js","../node_modules/lucide-react/dist/esm/icons/download.js","../node_modules/lucide-react/dist/esm/icons/external-link.js","../node_modules/lucide-react/dist/esm/icons/file-input.js","../node_modules/lucide-react/dist/esm/icons/file-output.js","../node_modules/lucide-react/dist/esm/icons/funnel.js","../node_modules/lucide-react/dist/esm/icons/info.js","../node_modules/lucide-react/dist/esm/icons/loader-circle.js","../node_modules/lucide-react/dist/esm/icons/package.js","../node_modules/lucide-react/dist/esm/icons/search.js","../node_modules/lucide-react/dist/esm/icons/settings.js","../node_modules/lucide-react/dist/esm/icons/share-2.js","../node_modules/lucide-react/dist/esm/icons/square-function.js","../node_modules/lucide-react/dist/esm/icons/x.js","../node_modules/@radix-ui/primitive/dist/index.mjs","../node_modules/@radix-ui/react-compose-refs/dist/index.mjs","../node_modules/@radix-ui/react-context/dist/index.mjs","../node_modules/@radix-ui/react-slot/dist/index.mjs","../node_modules/@radix-ui/react-primitive/dist/index.mjs","../node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs","../node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs","../node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs","../node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs","../node_modules/@radix-ui/react-id/dist/index.mjs","../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","../node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs","../node_modules/@radix-ui/react-arrow/dist/index.mjs","../node_modules/@radix-ui/react-use-size/dist/index.mjs","../node_modules/@radix-ui/react-popper/dist/index.mjs","../node_modules/@radix-ui/react-portal/dist/index.mjs","../node_modules/@radix-ui/react-presence/dist/index.mjs","../node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs","../node_modules/@radix-ui/react-visually-hidden/dist/index.mjs","../node_modules/@radix-ui/react-tooltip/dist/index.mjs","../node_modules/clsx/dist/clsx.mjs","../node_modules/tailwind-merge/dist/bundle-mjs.mjs","../utils.ts","../components/ui/tooltip.tsx","../components/codegraph/pan-zoom-controller.ts","../components/codegraph/bind-node-interactions.ts","../node_modules/marked/lib/marked.esm.js","../components/typography/markdown.tsx","../components/codegraph/mermaid-tooltip-overlay.tsx","../components/codegraph/mermaid.tsx","../components/codegraph/dependency-graph-shared.ts","../node_modules/jszip/dist/jszip.min.js","../actions.ts","../components/codegraph/dependency-graph-client.tsx","../components/codegraph/dependency-graph.tsx","../node_modules/fuse.js/dist/fuse.mjs","../components/code-tree/badge-tooltip.tsx","../components/code-tree/filetree-utils.tsx","../components/code-tree/filetree-rows.tsx","../components/code-tree/filetree-table.tsx","../components/code-tree/filetree-view.tsx","../node_modules/class-variance-authority/dist/index.mjs","../node_modules/@radix-ui/react-collapsible/dist/index.mjs","../components/ui/collapsible.tsx","../components/code-tree/type-table.tsx"],"sourcesContent":["export default {}","/*! *****************************************************************************\nCopyright (c) Microsoft Corporation. All rights reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n***************************************************************************** */\n\nvar ts = {}; ((module) => {\n\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n  for (var name in all)\n    __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n  if (from && typeof from === \"object\" || typeof from === \"function\") {\n    for (let key of __getOwnPropNames(from))\n      if (!__hasOwnProp.call(to, key) && key !== except)\n        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n  }\n  return to;\n};\nvar __toCommonJS = (mod) => (__copyProps, mod); // Modified helper to skip setting __esModule.\n\n// src/typescript/typescript.ts\nvar typescript_exports = {};\n__export(typescript_exports, {\n  ANONYMOUS: () => ANONYMOUS,\n  AccessFlags: () => AccessFlags,\n  AssertionLevel: () => AssertionLevel,\n  AssignmentDeclarationKind: () => AssignmentDeclarationKind,\n  AssignmentKind: () => AssignmentKind,\n  Associativity: () => Associativity,\n  BreakpointResolver: () => ts_BreakpointResolver_exports,\n  BuilderFileEmit: () => BuilderFileEmit,\n  BuilderProgramKind: () => BuilderProgramKind,\n  BuilderState: () => BuilderState,\n  CallHierarchy: () => ts_CallHierarchy_exports,\n  CharacterCodes: () => CharacterCodes,\n  CheckFlags: () => CheckFlags,\n  CheckMode: () => CheckMode,\n  ClassificationType: () => ClassificationType,\n  ClassificationTypeNames: () => ClassificationTypeNames,\n  CommentDirectiveType: () => CommentDirectiveType,\n  Comparison: () => Comparison,\n  CompletionInfoFlags: () => CompletionInfoFlags,\n  CompletionTriggerKind: () => CompletionTriggerKind,\n  Completions: () => ts_Completions_exports,\n  ContainerFlags: () => ContainerFlags,\n  ContextFlags: () => ContextFlags,\n  Debug: () => Debug,\n  DiagnosticCategory: () => DiagnosticCategory,\n  Diagnostics: () => Diagnostics,\n  DocumentHighlights: () => DocumentHighlights,\n  ElementFlags: () => ElementFlags,\n  EmitFlags: () => EmitFlags,\n  EmitHint: () => EmitHint,\n  EmitOnly: () => EmitOnly,\n  EndOfLineState: () => EndOfLineState,\n  ExitStatus: () => ExitStatus,\n  ExportKind: () => ExportKind,\n  Extension: () => Extension,\n  ExternalEmitHelpers: () => ExternalEmitHelpers,\n  FileIncludeKind: () => FileIncludeKind,\n  FilePreprocessingDiagnosticsKind: () => FilePreprocessingDiagnosticsKind,\n  FileSystemEntryKind: () => FileSystemEntryKind,\n  FileWatcherEventKind: () => FileWatcherEventKind,\n  FindAllReferences: () => ts_FindAllReferences_exports,\n  FlattenLevel: () => FlattenLevel,\n  FlowFlags: () => FlowFlags,\n  ForegroundColorEscapeSequences: () => ForegroundColorEscapeSequences,\n  FunctionFlags: () => FunctionFlags,\n  GeneratedIdentifierFlags: () => GeneratedIdentifierFlags,\n  GetLiteralTextFlags: () => GetLiteralTextFlags,\n  GoToDefinition: () => ts_GoToDefinition_exports,\n  HighlightSpanKind: () => HighlightSpanKind,\n  IdentifierNameMap: () => IdentifierNameMap,\n  ImportKind: () => ImportKind,\n  ImportsNotUsedAsValues: () => ImportsNotUsedAsValues,\n  IndentStyle: () => IndentStyle,\n  IndexFlags: () => IndexFlags,\n  IndexKind: () => IndexKind,\n  InferenceFlags: () => InferenceFlags,\n  InferencePriority: () => InferencePriority,\n  InlayHintKind: () => InlayHintKind2,\n  InlayHints: () => ts_InlayHints_exports,\n  InternalEmitFlags: () => InternalEmitFlags,\n  InternalNodeBuilderFlags: () => InternalNodeBuilderFlags,\n  InternalSymbolName: () => InternalSymbolName,\n  IntersectionFlags: () => IntersectionFlags,\n  InvalidatedProjectKind: () => InvalidatedProjectKind,\n  JSDocParsingMode: () => JSDocParsingMode,\n  JsDoc: () => ts_JsDoc_exports,\n  JsTyping: () => ts_JsTyping_exports,\n  JsxEmit: () => JsxEmit,\n  JsxFlags: () => JsxFlags,\n  JsxReferenceKind: () => JsxReferenceKind,\n  LanguageFeatureMinimumTarget: () => LanguageFeatureMinimumTarget,\n  LanguageServiceMode: () => LanguageServiceMode,\n  LanguageVariant: () => LanguageVariant,\n  LexicalEnvironmentFlags: () => LexicalEnvironmentFlags,\n  ListFormat: () => ListFormat,\n  LogLevel: () => LogLevel,\n  MapCode: () => ts_MapCode_exports,\n  MemberOverrideStatus: () => MemberOverrideStatus,\n  ModifierFlags: () => ModifierFlags,\n  ModuleDetectionKind: () => ModuleDetectionKind,\n  ModuleInstanceState: () => ModuleInstanceState,\n  ModuleKind: () => ModuleKind,\n  ModuleResolutionKind: () => ModuleResolutionKind,\n  ModuleSpecifierEnding: () => ModuleSpecifierEnding,\n  NavigateTo: () => ts_NavigateTo_exports,\n  NavigationBar: () => ts_NavigationBar_exports,\n  NewLineKind: () => NewLineKind,\n  NodeBuilderFlags: () => NodeBuilderFlags,\n  NodeCheckFlags: () => NodeCheckFlags,\n  NodeFactoryFlags: () => NodeFactoryFlags,\n  NodeFlags: () => NodeFlags,\n  NodeResolutionFeatures: () => NodeResolutionFeatures,\n  ObjectFlags: () => ObjectFlags,\n  OperationCanceledException: () => OperationCanceledException,\n  OperatorPrecedence: () => OperatorPrecedence,\n  OrganizeImports: () => ts_OrganizeImports_exports,\n  OrganizeImportsMode: () => OrganizeImportsMode,\n  OuterExpressionKinds: () => OuterExpressionKinds,\n  OutliningElementsCollector: () => ts_OutliningElementsCollector_exports,\n  OutliningSpanKind: () => OutliningSpanKind,\n  OutputFileType: () => OutputFileType,\n  PackageJsonAutoImportPreference: () => PackageJsonAutoImportPreference,\n  PackageJsonDependencyGroup: () => PackageJsonDependencyGroup,\n  PatternMatchKind: () => PatternMatchKind,\n  PollingInterval: () => PollingInterval,\n  PollingWatchKind: () => PollingWatchKind,\n  PragmaKindFlags: () => PragmaKindFlags,\n  PredicateSemantics: () => PredicateSemantics,\n  PreparePasteEdits: () => ts_preparePasteEdits_exports,\n  PrivateIdentifierKind: () => PrivateIdentifierKind,\n  ProcessLevel: () => ProcessLevel,\n  ProgramUpdateLevel: () => ProgramUpdateLevel,\n  QuotePreference: () => QuotePreference,\n  RegularExpressionFlags: () => RegularExpressionFlags,\n  RelationComparisonResult: () => RelationComparisonResult,\n  Rename: () => ts_Rename_exports,\n  ScriptElementKind: () => ScriptElementKind,\n  ScriptElementKindModifier: () => ScriptElementKindModifier,\n  ScriptKind: () => ScriptKind,\n  ScriptSnapshot: () => ScriptSnapshot,\n  ScriptTarget: () => ScriptTarget,\n  SemanticClassificationFormat: () => SemanticClassificationFormat,\n  SemanticMeaning: () => SemanticMeaning,\n  SemicolonPreference: () => SemicolonPreference,\n  SignatureCheckMode: () => SignatureCheckMode,\n  SignatureFlags: () => SignatureFlags,\n  SignatureHelp: () => ts_SignatureHelp_exports,\n  SignatureInfo: () => SignatureInfo,\n  SignatureKind: () => SignatureKind,\n  SmartSelectionRange: () => ts_SmartSelectionRange_exports,\n  SnippetKind: () => SnippetKind,\n  StatisticType: () => StatisticType,\n  StructureIsReused: () => StructureIsReused,\n  SymbolAccessibility: () => SymbolAccessibility,\n  SymbolDisplay: () => ts_SymbolDisplay_exports,\n  SymbolDisplayPartKind: () => SymbolDisplayPartKind,\n  SymbolFlags: () => SymbolFlags,\n  SymbolFormatFlags: () => SymbolFormatFlags,\n  SyntaxKind: () => SyntaxKind,\n  Ternary: () => Ternary,\n  ThrottledCancellationToken: () => ThrottledCancellationToken,\n  TokenClass: () => TokenClass,\n  TokenFlags: () => TokenFlags,\n  TransformFlags: () => TransformFlags,\n  TypeFacts: () => TypeFacts,\n  TypeFlags: () => TypeFlags,\n  TypeFormatFlags: () => TypeFormatFlags,\n  TypeMapKind: () => TypeMapKind,\n  TypePredicateKind: () => TypePredicateKind,\n  TypeReferenceSerializationKind: () => TypeReferenceSerializationKind,\n  UnionReduction: () => UnionReduction,\n  UpToDateStatusType: () => UpToDateStatusType,\n  VarianceFlags: () => VarianceFlags,\n  Version: () => Version,\n  VersionRange: () => VersionRange,\n  WatchDirectoryFlags: () => WatchDirectoryFlags,\n  WatchDirectoryKind: () => WatchDirectoryKind,\n  WatchFileKind: () => WatchFileKind,\n  WatchLogLevel: () => WatchLogLevel,\n  WatchType: () => WatchType,\n  accessPrivateIdentifier: () => accessPrivateIdentifier,\n  addEmitFlags: () => addEmitFlags,\n  addEmitHelper: () => addEmitHelper,\n  addEmitHelpers: () => addEmitHelpers,\n  addInternalEmitFlags: () => addInternalEmitFlags,\n  addNodeFactoryPatcher: () => addNodeFactoryPatcher,\n  addObjectAllocatorPatcher: () => addObjectAllocatorPatcher,\n  addRange: () => addRange,\n  addRelatedInfo: () => addRelatedInfo,\n  addSyntheticLeadingComment: () => addSyntheticLeadingComment,\n  addSyntheticTrailingComment: () => addSyntheticTrailingComment,\n  addToSeen: () => addToSeen,\n  advancedAsyncSuperHelper: () => advancedAsyncSuperHelper,\n  affectsDeclarationPathOptionDeclarations: () => affectsDeclarationPathOptionDeclarations,\n  affectsEmitOptionDeclarations: () => affectsEmitOptionDeclarations,\n  allKeysStartWithDot: () => allKeysStartWithDot,\n  altDirectorySeparator: () => altDirectorySeparator,\n  and: () => and,\n  append: () => append,\n  appendIfUnique: () => appendIfUnique,\n  arrayFrom: () => arrayFrom,\n  arrayIsEqualTo: () => arrayIsEqualTo,\n  arrayIsHomogeneous: () => arrayIsHomogeneous,\n  arrayOf: () => arrayOf,\n  arrayReverseIterator: () => arrayReverseIterator,\n  arrayToMap: () => arrayToMap,\n  arrayToMultiMap: () => arrayToMultiMap,\n  arrayToNumericMap: () => arrayToNumericMap,\n  assertType: () => assertType,\n  assign: () => assign,\n  asyncSuperHelper: () => asyncSuperHelper,\n  attachFileToDiagnostics: () => attachFileToDiagnostics,\n  base64decode: () => base64decode,\n  base64encode: () => base64encode,\n  binarySearch: () => binarySearch,\n  binarySearchKey: () => binarySearchKey,\n  bindSourceFile: () => bindSourceFile,\n  breakIntoCharacterSpans: () => breakIntoCharacterSpans,\n  breakIntoWordSpans: () => breakIntoWordSpans,\n  buildLinkParts: () => buildLinkParts,\n  buildOpts: () => buildOpts,\n  buildOverload: () => buildOverload,\n  bundlerModuleNameResolver: () => bundlerModuleNameResolver,\n  canBeConvertedToAsync: () => canBeConvertedToAsync,\n  canHaveDecorators: () => canHaveDecorators,\n  canHaveExportModifier: () => canHaveExportModifier,\n  canHaveFlowNode: () => canHaveFlowNode,\n  canHaveIllegalDecorators: () => canHaveIllegalDecorators,\n  canHaveIllegalModifiers: () => canHaveIllegalModifiers,\n  canHaveIllegalType: () => canHaveIllegalType,\n  canHaveIllegalTypeParameters: () => canHaveIllegalTypeParameters,\n  canHaveJSDoc: () => canHaveJSDoc,\n  canHaveLocals: () => canHaveLocals,\n  canHaveModifiers: () => canHaveModifiers,\n  canHaveModuleSpecifier: () => canHaveModuleSpecifier,\n  canHaveSymbol: () => canHaveSymbol,\n  canIncludeBindAndCheckDiagnostics: () => canIncludeBindAndCheckDiagnostics,\n  canJsonReportNoInputFiles: () => canJsonReportNoInputFiles,\n  canProduceDiagnostics: () => canProduceDiagnostics,\n  canUsePropertyAccess: () => canUsePropertyAccess,\n  canWatchAffectingLocation: () => canWatchAffectingLocation,\n  canWatchAtTypes: () => canWatchAtTypes,\n  canWatchDirectoryOrFile: () => canWatchDirectoryOrFile,\n  canWatchDirectoryOrFilePath: () => canWatchDirectoryOrFilePath,\n  cartesianProduct: () => cartesianProduct,\n  cast: () => cast,\n  chainBundle: () => chainBundle,\n  chainDiagnosticMessages: () => chainDiagnosticMessages,\n  changeAnyExtension: () => changeAnyExtension,\n  changeCompilerHostLikeToUseCache: () => changeCompilerHostLikeToUseCache,\n  changeExtension: () => changeExtension,\n  changeFullExtension: () => changeFullExtension,\n  changesAffectModuleResolution: () => changesAffectModuleResolution,\n  changesAffectingProgramStructure: () => changesAffectingProgramStructure,\n  characterCodeToRegularExpressionFlag: () => characterCodeToRegularExpressionFlag,\n  childIsDecorated: () => childIsDecorated,\n  classElementOrClassElementParameterIsDecorated: () => classElementOrClassElementParameterIsDecorated,\n  classHasClassThisAssignment: () => classHasClassThisAssignment,\n  classHasDeclaredOrExplicitlyAssignedName: () => classHasDeclaredOrExplicitlyAssignedName,\n  classHasExplicitlyAssignedName: () => classHasExplicitlyAssignedName,\n  classOrConstructorParameterIsDecorated: () => classOrConstructorParameterIsDecorated,\n  classicNameResolver: () => classicNameResolver,\n  classifier: () => ts_classifier_exports,\n  cleanExtendedConfigCache: () => cleanExtendedConfigCache,\n  clear: () => clear,\n  clearMap: () => clearMap,\n  clearSharedExtendedConfigFileWatcher: () => clearSharedExtendedConfigFileWatcher,\n  climbPastPropertyAccess: () => climbPastPropertyAccess,\n  clone: () => clone,\n  cloneCompilerOptions: () => cloneCompilerOptions,\n  closeFileWatcher: () => closeFileWatcher,\n  closeFileWatcherOf: () => closeFileWatcherOf,\n  codefix: () => ts_codefix_exports,\n  collapseTextChangeRangesAcrossMultipleVersions: () => collapseTextChangeRangesAcrossMultipleVersions,\n  collectExternalModuleInfo: () => collectExternalModuleInfo,\n  combine: () => combine,\n  combinePaths: () => combinePaths,\n  commandLineOptionOfCustomType: () => commandLineOptionOfCustomType,\n  commentPragmas: () => commentPragmas,\n  commonOptionsWithBuild: () => commonOptionsWithBuild,\n  compact: () => compact,\n  compareBooleans: () => compareBooleans,\n  compareDataObjects: () => compareDataObjects,\n  compareDiagnostics: () => compareDiagnostics,\n  compareEmitHelpers: () => compareEmitHelpers,\n  compareNumberOfDirectorySeparators: () => compareNumberOfDirectorySeparators,\n  comparePaths: () => comparePaths,\n  comparePathsCaseInsensitive: () => comparePathsCaseInsensitive,\n  comparePathsCaseSensitive: () => comparePathsCaseSensitive,\n  comparePatternKeys: () => comparePatternKeys,\n  compareProperties: () => compareProperties,\n  compareStringsCaseInsensitive: () => compareStringsCaseInsensitive,\n  compareStringsCaseInsensitiveEslintCompatible: () => compareStringsCaseInsensitiveEslintCompatible,\n  compareStringsCaseSensitive: () => compareStringsCaseSensitive,\n  compareStringsCaseSensitiveUI: () => compareStringsCaseSensitiveUI,\n  compareTextSpans: () => compareTextSpans,\n  compareValues: () => compareValues,\n  compilerOptionsAffectDeclarationPath: () => compilerOptionsAffectDeclarationPath,\n  compilerOptionsAffectEmit: () => compilerOptionsAffectEmit,\n  compilerOptionsAffectSemanticDiagnostics: () => compilerOptionsAffectSemanticDiagnostics,\n  compilerOptionsDidYouMeanDiagnostics: () => compilerOptionsDidYouMeanDiagnostics,\n  compilerOptionsIndicateEsModules: () => compilerOptionsIndicateEsModules,\n  computeCommonSourceDirectoryOfFilenames: () => computeCommonSourceDirectoryOfFilenames,\n  computeLineAndCharacterOfPosition: () => computeLineAndCharacterOfPosition,\n  computeLineOfPosition: () => computeLineOfPosition,\n  computeLineStarts: () => computeLineStarts,\n  computePositionOfLineAndCharacter: () => computePositionOfLineAndCharacter,\n  computeSignatureWithDiagnostics: () => computeSignatureWithDiagnostics,\n  computeSuggestionDiagnostics: () => computeSuggestionDiagnostics,\n  computedOptions: () => computedOptions,\n  concatenate: () => concatenate,\n  concatenateDiagnosticMessageChains: () => concatenateDiagnosticMessageChains,\n  consumesNodeCoreModules: () => consumesNodeCoreModules,\n  contains: () => contains,\n  containsIgnoredPath: () => containsIgnoredPath,\n  containsObjectRestOrSpread: () => containsObjectRestOrSpread,\n  containsParseError: () => containsParseError,\n  containsPath: () => containsPath,\n  convertCompilerOptionsForTelemetry: () => convertCompilerOptionsForTelemetry,\n  convertCompilerOptionsFromJson: () => convertCompilerOptionsFromJson,\n  convertJsonOption: () => convertJsonOption,\n  convertToBase64: () => convertToBase64,\n  convertToJson: () => convertToJson,\n  convertToObject: () => convertToObject,\n  convertToOptionsWithAbsolutePaths: () => convertToOptionsWithAbsolutePaths,\n  convertToRelativePath: () => convertToRelativePath,\n  convertToTSConfig: () => convertToTSConfig,\n  convertTypeAcquisitionFromJson: () => convertTypeAcquisitionFromJson,\n  copyComments: () => copyComments,\n  copyEntries: () => copyEntries,\n  copyLeadingComments: () => copyLeadingComments,\n  copyProperties: () => copyProperties,\n  copyTrailingAsLeadingComments: () => copyTrailingAsLeadingComments,\n  copyTrailingComments: () => copyTrailingComments,\n  couldStartTrivia: () => couldStartTrivia,\n  countWhere: () => countWhere,\n  createAbstractBuilder: () => createAbstractBuilder,\n  createAccessorPropertyBackingField: () => createAccessorPropertyBackingField,\n  createAccessorPropertyGetRedirector: () => createAccessorPropertyGetRedirector,\n  createAccessorPropertySetRedirector: () => createAccessorPropertySetRedirector,\n  createBaseNodeFactory: () => createBaseNodeFactory,\n  createBinaryExpressionTrampoline: () => createBinaryExpressionTrampoline,\n  createBuilderProgram: () => createBuilderProgram,\n  createBuilderProgramUsingIncrementalBuildInfo: () => createBuilderProgramUsingIncrementalBuildInfo,\n  createBuilderStatusReporter: () => createBuilderStatusReporter,\n  createCacheableExportInfoMap: () => createCacheableExportInfoMap,\n  createCachedDirectoryStructureHost: () => createCachedDirectoryStructureHost,\n  createClassifier: () => createClassifier,\n  createCommentDirectivesMap: () => createCommentDirectivesMap,\n  createCompilerDiagnostic: () => createCompilerDiagnostic,\n  createCompilerDiagnosticForInvalidCustomType: () => createCompilerDiagnosticForInvalidCustomType,\n  createCompilerDiagnosticFromMessageChain: () => createCompilerDiagnosticFromMessageChain,\n  createCompilerHost: () => createCompilerHost,\n  createCompilerHostFromProgramHost: () => createCompilerHostFromProgramHost,\n  createCompilerHostWorker: () => createCompilerHostWorker,\n  createDetachedDiagnostic: () => createDetachedDiagnostic,\n  createDiagnosticCollection: () => createDiagnosticCollection,\n  createDiagnosticForFileFromMessageChain: () => createDiagnosticForFileFromMessageChain,\n  createDiagnosticForNode: () => createDiagnosticForNode,\n  createDiagnosticForNodeArray: () => createDiagnosticForNodeArray,\n  createDiagnosticForNodeArrayFromMessageChain: () => createDiagnosticForNodeArrayFromMessageChain,\n  createDiagnosticForNodeFromMessageChain: () => createDiagnosticForNodeFromMessageChain,\n  createDiagnosticForNodeInSourceFile: () => createDiagnosticForNodeInSourceFile,\n  createDiagnosticForRange: () => createDiagnosticForRange,\n  createDiagnosticMessageChainFromDiagnostic: () => createDiagnosticMessageChainFromDiagnostic,\n  createDiagnosticReporter: () => createDiagnosticReporter,\n  createDocumentPositionMapper: () => createDocumentPositionMapper,\n  createDocumentRegistry: () => createDocumentRegistry,\n  createDocumentRegistryInternal: () => createDocumentRegistryInternal,\n  createEmitAndSemanticDiagnosticsBuilderProgram: () => createEmitAndSemanticDiagnosticsBuilderProgram,\n  createEmitHelperFactory: () => createEmitHelperFactory,\n  createEmptyExports: () => createEmptyExports,\n  createEvaluator: () => createEvaluator,\n  createExpressionForJsxElement: () => createExpressionForJsxElement,\n  createExpressionForJsxFragment: () => createExpressionForJsxFragment,\n  createExpressionForObjectLiteralElementLike: () => createExpressionForObjectLiteralElementLike,\n  createExpressionForPropertyName: () => createExpressionForPropertyName,\n  createExpressionFromEntityName: () => createExpressionFromEntityName,\n  createExternalHelpersImportDeclarationIfNeeded: () => createExternalHelpersImportDeclarationIfNeeded,\n  createFileDiagnostic: () => createFileDiagnostic,\n  createFileDiagnosticFromMessageChain: () => createFileDiagnosticFromMessageChain,\n  createFlowNode: () => createFlowNode,\n  createForOfBindingStatement: () => createForOfBindingStatement,\n  createFutureSourceFile: () => createFutureSourceFile,\n  createGetCanonicalFileName: () => createGetCanonicalFileName,\n  createGetIsolatedDeclarationErrors: () => createGetIsolatedDeclarationErrors,\n  createGetSourceFile: () => createGetSourceFile,\n  createGetSymbolAccessibilityDiagnosticForNode: () => createGetSymbolAccessibilityDiagnosticForNode,\n  createGetSymbolAccessibilityDiagnosticForNodeName: () => createGetSymbolAccessibilityDiagnosticForNodeName,\n  createGetSymbolWalker: () => createGetSymbolWalker,\n  createIncrementalCompilerHost: () => createIncrementalCompilerHost,\n  createIncrementalProgram: () => createIncrementalProgram,\n  createJsxFactoryExpression: () => createJsxFactoryExpression,\n  createLanguageService: () => createLanguageService,\n  createLanguageServiceSourceFile: () => createLanguageServiceSourceFile,\n  createMemberAccessForPropertyName: () => createMemberAccessForPropertyName,\n  createModeAwareCache: () => createModeAwareCache,\n  createModeAwareCacheKey: () => createModeAwareCacheKey,\n  createModeMismatchDetails: () => createModeMismatchDetails,\n  createModuleNotFoundChain: () => createModuleNotFoundChain,\n  createModuleResolutionCache: () => createModuleResolutionCache,\n  createModuleResolutionLoader: () => createModuleResolutionLoader,\n  createModuleResolutionLoaderUsingGlobalCache: () => createModuleResolutionLoaderUsingGlobalCache,\n  createModuleSpecifierResolutionHost: () => createModuleSpecifierResolutionHost,\n  createMultiMap: () => createMultiMap,\n  createNameResolver: () => createNameResolver,\n  createNodeConverters: () => createNodeConverters,\n  createNodeFactory: () => createNodeFactory,\n  createOptionNameMap: () => createOptionNameMap,\n  createOverload: () => createOverload,\n  createPackageJsonImportFilter: () => createPackageJsonImportFilter,\n  createPackageJsonInfo: () => createPackageJsonInfo,\n  createParenthesizerRules: () => createParenthesizerRules,\n  createPatternMatcher: () => createPatternMatcher,\n  createPrinter: () => createPrinter,\n  createPrinterWithDefaults: () => createPrinterWithDefaults,\n  createPrinterWithRemoveComments: () => createPrinterWithRemoveComments,\n  createPrinterWithRemoveCommentsNeverAsciiEscape: () => createPrinterWithRemoveCommentsNeverAsciiEscape,\n  createPrinterWithRemoveCommentsOmitTrailingSemicolon: () => createPrinterWithRemoveCommentsOmitTrailingSemicolon,\n  createProgram: () => createProgram,\n  createProgramDiagnostics: () => createProgramDiagnostics,\n  createProgramHost: () => createProgramHost,\n  createPropertyNameNodeForIdentifierOrLiteral: () => createPropertyNameNodeForIdentifierOrLiteral,\n  createQueue: () => createQueue,\n  createRange: () => createRange,\n  createRedirectedBuilderProgram: () => createRedirectedBuilderProgram,\n  createResolutionCache: () => createResolutionCache,\n  createRuntimeTypeSerializer: () => createRuntimeTypeSerializer,\n  createScanner: () => createScanner,\n  createSemanticDiagnosticsBuilderProgram: () => createSemanticDiagnosticsBuilderProgram,\n  createSet: () => createSet,\n  createSolutionBuilder: () => createSolutionBuilder,\n  createSolutionBuilderHost: () => createSolutionBuilderHost,\n  createSolutionBuilderWithWatch: () => createSolutionBuilderWithWatch,\n  createSolutionBuilderWithWatchHost: () => createSolutionBuilderWithWatchHost,\n  createSortedArray: () => createSortedArray,\n  createSourceFile: () => createSourceFile,\n  createSourceMapGenerator: () => createSourceMapGenerator,\n  createSourceMapSource: () => createSourceMapSource,\n  createSuperAccessVariableStatement: () => createSuperAccessVariableStatement,\n  createSymbolTable: () => createSymbolTable,\n  createSymlinkCache: () => createSymlinkCache,\n  createSyntacticTypeNodeBuilder: () => createSyntacticTypeNodeBuilder,\n  createSystemWatchFunctions: () => createSystemWatchFunctions,\n  createTextChange: () => createTextChange,\n  createTextChangeFromStartLength: () => createTextChangeFromStartLength,\n  createTextChangeRange: () => createTextChangeRange,\n  createTextRangeFromNode: () => createTextRangeFromNode,\n  createTextRangeFromSpan: () => createTextRangeFromSpan,\n  createTextSpan: () => createTextSpan,\n  createTextSpanFromBounds: () => createTextSpanFromBounds,\n  createTextSpanFromNode: () => createTextSpanFromNode,\n  createTextSpanFromRange: () => createTextSpanFromRange,\n  createTextSpanFromStringLiteralLikeContent: () => createTextSpanFromStringLiteralLikeContent,\n  createTextWriter: () => createTextWriter,\n  createTokenRange: () => createTokenRange,\n  createTypeChecker: () => createTypeChecker,\n  createTypeReferenceDirectiveResolutionCache: () => createTypeReferenceDirectiveResolutionCache,\n  createTypeReferenceResolutionLoader: () => createTypeReferenceResolutionLoader,\n  createWatchCompilerHost: () => createWatchCompilerHost2,\n  createWatchCompilerHostOfConfigFile: () => createWatchCompilerHostOfConfigFile,\n  createWatchCompilerHostOfFilesAndCompilerOptions: () => createWatchCompilerHostOfFilesAndCompilerOptions,\n  createWatchFactory: () => createWatchFactory,\n  createWatchHost: () => createWatchHost,\n  createWatchProgram: () => createWatchProgram,\n  createWatchStatusReporter: () => createWatchStatusReporter,\n  createWriteFileMeasuringIO: () => createWriteFileMeasuringIO,\n  declarationNameToString: () => declarationNameToString,\n  decodeMappings: () => decodeMappings,\n  decodedTextSpanIntersectsWith: () => decodedTextSpanIntersectsWith,\n  deduplicate: () => deduplicate,\n  defaultHoverMaximumTruncationLength: () => defaultHoverMaximumTruncationLength,\n  defaultInitCompilerOptions: () => defaultInitCompilerOptions,\n  defaultMaximumTruncationLength: () => defaultMaximumTruncationLength,\n  diagnosticCategoryName: () => diagnosticCategoryName,\n  diagnosticToString: () => diagnosticToString,\n  diagnosticsEqualityComparer: () => diagnosticsEqualityComparer,\n  directoryProbablyExists: () => directoryProbablyExists,\n  directorySeparator: () => directorySeparator,\n  displayPart: () => displayPart,\n  displayPartsToString: () => displayPartsToString,\n  disposeEmitNodes: () => disposeEmitNodes,\n  documentSpansEqual: () => documentSpansEqual,\n  dumpTracingLegend: () => dumpTracingLegend,\n  elementAt: () => elementAt,\n  elideNodes: () => elideNodes,\n  emitDetachedComments: () => emitDetachedComments,\n  emitFiles: () => emitFiles,\n  emitFilesAndReportErrors: () => emitFilesAndReportErrors,\n  emitFilesAndReportErrorsAndGetExitStatus: () => emitFilesAndReportErrorsAndGetExitStatus,\n  emitModuleKindIsNonNodeESM: () => emitModuleKindIsNonNodeESM,\n  emitNewLineBeforeLeadingCommentOfPosition: () => emitNewLineBeforeLeadingCommentOfPosition,\n  emitResolverSkipsTypeChecking: () => emitResolverSkipsTypeChecking,\n  emitSkippedWithNoDiagnostics: () => emitSkippedWithNoDiagnostics,\n  emptyArray: () => emptyArray,\n  emptyFileSystemEntries: () => emptyFileSystemEntries,\n  emptyMap: () => emptyMap,\n  emptyOptions: () => emptyOptions,\n  endsWith: () => endsWith,\n  ensurePathIsNonModuleName: () => ensurePathIsNonModuleName,\n  ensureScriptKind: () => ensureScriptKind,\n  ensureTrailingDirectorySeparator: () => ensureTrailingDirectorySeparator,\n  entityNameToString: () => entityNameToString,\n  enumerateInsertsAndDeletes: () => enumerateInsertsAndDeletes,\n  equalOwnProperties: () => equalOwnProperties,\n  equateStringsCaseInsensitive: () => equateStringsCaseInsensitive,\n  equateStringsCaseSensitive: () => equateStringsCaseSensitive,\n  equateValues: () => equateValues,\n  escapeJsxAttributeString: () => escapeJsxAttributeString,\n  escapeLeadingUnderscores: () => escapeLeadingUnderscores,\n  escapeNonAsciiString: () => escapeNonAsciiString,\n  escapeSnippetText: () => escapeSnippetText,\n  escapeString: () => escapeString,\n  escapeTemplateSubstitution: () => escapeTemplateSubstitution,\n  evaluatorResult: () => evaluatorResult,\n  every: () => every,\n  exclusivelyPrefixedNodeCoreModules: () => exclusivelyPrefixedNodeCoreModules,\n  executeCommandLine: () => executeCommandLine,\n  expandPreOrPostfixIncrementOrDecrementExpression: () => expandPreOrPostfixIncrementOrDecrementExpression,\n  explainFiles: () => explainFiles,\n  explainIfFileIsRedirectAndImpliedFormat: () => explainIfFileIsRedirectAndImpliedFormat,\n  exportAssignmentIsAlias: () => exportAssignmentIsAlias,\n  expressionResultIsUnused: () => expressionResultIsUnused,\n  extend: () => extend,\n  extensionFromPath: () => extensionFromPath,\n  extensionIsTS: () => extensionIsTS,\n  extensionsNotSupportingExtensionlessResolution: () => extensionsNotSupportingExtensionlessResolution,\n  externalHelpersModuleNameText: () => externalHelpersModuleNameText,\n  factory: () => factory,\n  fileExtensionIs: () => fileExtensionIs,\n  fileExtensionIsOneOf: () => fileExtensionIsOneOf,\n  fileIncludeReasonToDiagnostics: () => fileIncludeReasonToDiagnostics,\n  fileShouldUseJavaScriptRequire: () => fileShouldUseJavaScriptRequire,\n  filter: () => filter,\n  filterMutate: () => filterMutate,\n  filterSemanticDiagnostics: () => filterSemanticDiagnostics,\n  find: () => find,\n  findAncestor: () => findAncestor,\n  findBestPatternMatch: () => findBestPatternMatch,\n  findChildOfKind: () => findChildOfKind,\n  findComputedPropertyNameCacheAssignment: () => findComputedPropertyNameCacheAssignment,\n  findConfigFile: () => findConfigFile,\n  findConstructorDeclaration: () => findConstructorDeclaration,\n  findContainingList: () => findContainingList,\n  findDiagnosticForNode: () => findDiagnosticForNode,\n  findFirstNonJsxWhitespaceToken: () => findFirstNonJsxWhitespaceToken,\n  findIndex: () => findIndex,\n  findLast: () => findLast,\n  findLastIndex: () => findLastIndex,\n  findListItemInfo: () => findListItemInfo,\n  findModifier: () => findModifier,\n  findNextToken: () => findNextToken,\n  findPackageJson: () => findPackageJson,\n  findPackageJsons: () => findPackageJsons,\n  findPrecedingMatchingToken: () => findPrecedingMatchingToken,\n  findPrecedingToken: () => findPrecedingToken,\n  findSuperStatementIndexPath: () => findSuperStatementIndexPath,\n  findTokenOnLeftOfPosition: () => findTokenOnLeftOfPosition,\n  findUseStrictPrologue: () => findUseStrictPrologue,\n  first: () => first,\n  firstDefined: () => firstDefined,\n  firstDefinedIterator: () => firstDefinedIterator,\n  firstIterator: () => firstIterator,\n  firstOrOnly: () => firstOrOnly,\n  firstOrUndefined: () => firstOrUndefined,\n  firstOrUndefinedIterator: () => firstOrUndefinedIterator,\n  fixupCompilerOptions: () => fixupCompilerOptions,\n  flatMap: () => flatMap,\n  flatMapIterator: () => flatMapIterator,\n  flatMapToMutable: () => flatMapToMutable,\n  flatten: () => flatten,\n  flattenCommaList: () => flattenCommaList,\n  flattenDestructuringAssignment: () => flattenDestructuringAssignment,\n  flattenDestructuringBinding: () => flattenDestructuringBinding,\n  flattenDiagnosticMessageText: () => flattenDiagnosticMessageText,\n  forEach: () => forEach,\n  forEachAncestor: () => forEachAncestor,\n  forEachAncestorDirectory: () => forEachAncestorDirectory,\n  forEachAncestorDirectoryStoppingAtGlobalCache: () => forEachAncestorDirectoryStoppingAtGlobalCache,\n  forEachChild: () => forEachChild,\n  forEachChildRecursively: () => forEachChildRecursively,\n  forEachDynamicImportOrRequireCall: () => forEachDynamicImportOrRequireCall,\n  forEachEmittedFile: () => forEachEmittedFile,\n  forEachEnclosingBlockScopeContainer: () => forEachEnclosingBlockScopeContainer,\n  forEachEntry: () => forEachEntry,\n  forEachExternalModuleToImportFrom: () => forEachExternalModuleToImportFrom,\n  forEachImportClauseDeclaration: () => forEachImportClauseDeclaration,\n  forEachKey: () => forEachKey,\n  forEachLeadingCommentRange: () => forEachLeadingCommentRange,\n  forEachNameInAccessChainWalkingLeft: () => forEachNameInAccessChainWalkingLeft,\n  forEachNameOfDefaultExport: () => forEachNameOfDefaultExport,\n  forEachOptionsSyntaxByName: () => forEachOptionsSyntaxByName,\n  forEachProjectReference: () => forEachProjectReference,\n  forEachPropertyAssignment: () => forEachPropertyAssignment,\n  forEachResolvedProjectReference: () => forEachResolvedProjectReference,\n  forEachReturnStatement: () => forEachReturnStatement,\n  forEachRight: () => forEachRight,\n  forEachTrailingCommentRange: () => forEachTrailingCommentRange,\n  forEachTsConfigPropArray: () => forEachTsConfigPropArray,\n  forEachUnique: () => forEachUnique,\n  forEachYieldExpression: () => forEachYieldExpression,\n  formatColorAndReset: () => formatColorAndReset,\n  formatDiagnostic: () => formatDiagnostic,\n  formatDiagnostics: () => formatDiagnostics,\n  formatDiagnosticsWithColorAndContext: () => formatDiagnosticsWithColorAndContext,\n  formatGeneratedName: () => formatGeneratedName,\n  formatGeneratedNamePart: () => formatGeneratedNamePart,\n  formatLocation: () => formatLocation,\n  formatMessage: () => formatMessage,\n  formatStringFromArgs: () => formatStringFromArgs,\n  formatting: () => ts_formatting_exports,\n  generateDjb2Hash: () => generateDjb2Hash,\n  generateTSConfig: () => generateTSConfig,\n  getAdjustedReferenceLocation: () => getAdjustedReferenceLocation,\n  getAdjustedRenameLocation: () => getAdjustedRenameLocation,\n  getAliasDeclarationFromName: () => getAliasDeclarationFromName,\n  getAllAccessorDeclarations: () => getAllAccessorDeclarations,\n  getAllDecoratorsOfClass: () => getAllDecoratorsOfClass,\n  getAllDecoratorsOfClassElement: () => getAllDecoratorsOfClassElement,\n  getAllJSDocTags: () => getAllJSDocTags,\n  getAllJSDocTagsOfKind: () => getAllJSDocTagsOfKind,\n  getAllKeys: () => getAllKeys,\n  getAllProjectOutputs: () => getAllProjectOutputs,\n  getAllSuperTypeNodes: () => getAllSuperTypeNodes,\n  getAllowImportingTsExtensions: () => getAllowImportingTsExtensions,\n  getAllowJSCompilerOption: () => getAllowJSCompilerOption,\n  getAllowSyntheticDefaultImports: () => getAllowSyntheticDefaultImports,\n  getAncestor: () => getAncestor,\n  getAnyExtensionFromPath: () => getAnyExtensionFromPath,\n  getAreDeclarationMapsEnabled: () => getAreDeclarationMapsEnabled,\n  getAssignedExpandoInitializer: () => getAssignedExpandoInitializer,\n  getAssignedName: () => getAssignedName,\n  getAssignmentDeclarationKind: () => getAssignmentDeclarationKind,\n  getAssignmentDeclarationPropertyAccessKind: () => getAssignmentDeclarationPropertyAccessKind,\n  getAssignmentTargetKind: () => getAssignmentTargetKind,\n  getAutomaticTypeDirectiveNames: () => getAutomaticTypeDirectiveNames,\n  getBaseFileName: () => getBaseFileName,\n  getBinaryOperatorPrecedence: () => getBinaryOperatorPrecedence,\n  getBuildInfo: () => getBuildInfo,\n  getBuildInfoFileVersionMap: () => getBuildInfoFileVersionMap,\n  getBuildInfoText: () => getBuildInfoText,\n  getBuildOrderFromAnyBuildOrder: () => getBuildOrderFromAnyBuildOrder,\n  getBuilderCreationParameters: () => getBuilderCreationParameters,\n  getBuilderFileEmit: () => getBuilderFileEmit,\n  getCanonicalDiagnostic: () => getCanonicalDiagnostic,\n  getCheckFlags: () => getCheckFlags,\n  getClassExtendsHeritageElement: () => getClassExtendsHeritageElement,\n  getClassLikeDeclarationOfSymbol: () => getClassLikeDeclarationOfSymbol,\n  getCombinedLocalAndExportSymbolFlags: () => getCombinedLocalAndExportSymbolFlags,\n  getCombinedModifierFlags: () => getCombinedModifierFlags,\n  getCombinedNodeFlags: () => getCombinedNodeFlags,\n  getCombinedNodeFlagsAlwaysIncludeJSDoc: () => getCombinedNodeFlagsAlwaysIncludeJSDoc,\n  getCommentRange: () => getCommentRange,\n  getCommonSourceDirectory: () => getCommonSourceDirectory,\n  getCommonSourceDirectoryOfConfig: () => getCommonSourceDirectoryOfConfig,\n  getCompilerOptionValue: () => getCompilerOptionValue,\n  getConditions: () => getConditions,\n  getConfigFileParsingDiagnostics: () => getConfigFileParsingDiagnostics,\n  getConstantValue: () => getConstantValue,\n  getContainerFlags: () => getContainerFlags,\n  getContainerNode: () => getContainerNode,\n  getContainingClass: () => getContainingClass,\n  getContainingClassExcludingClassDecorators: () => getContainingClassExcludingClassDecorators,\n  getContainingClassStaticBlock: () => getContainingClassStaticBlock,\n  getContainingFunction: () => getContainingFunction,\n  getContainingFunctionDeclaration: () => getContainingFunctionDeclaration,\n  getContainingFunctionOrClassStaticBlock: () => getContainingFunctionOrClassStaticBlock,\n  getContainingNodeArray: () => getContainingNodeArray,\n  getContainingObjectLiteralElement: () => getContainingObjectLiteralElement,\n  getContextualTypeFromParent: () => getContextualTypeFromParent,\n  getContextualTypeFromParentOrAncestorTypeNode: () => getContextualTypeFromParentOrAncestorTypeNode,\n  getDeclarationDiagnostics: () => getDeclarationDiagnostics,\n  getDeclarationEmitExtensionForPath: () => getDeclarationEmitExtensionForPath,\n  getDeclarationEmitOutputFilePath: () => getDeclarationEmitOutputFilePath,\n  getDeclarationEmitOutputFilePathWorker: () => getDeclarationEmitOutputFilePathWorker,\n  getDeclarationFileExtension: () => getDeclarationFileExtension,\n  getDeclarationFromName: () => getDeclarationFromName,\n  getDeclarationModifierFlagsFromSymbol: () => getDeclarationModifierFlagsFromSymbol,\n  getDeclarationOfKind: () => getDeclarationOfKind,\n  getDeclarationsOfKind: () => getDeclarationsOfKind,\n  getDeclaredExpandoInitializer: () => getDeclaredExpandoInitializer,\n  getDecorators: () => getDecorators,\n  getDefaultCompilerOptions: () => getDefaultCompilerOptions2,\n  getDefaultFormatCodeSettings: () => getDefaultFormatCodeSettings,\n  getDefaultLibFileName: () => getDefaultLibFileName,\n  getDefaultLibFilePath: () => getDefaultLibFilePath,\n  getDefaultLikeExportInfo: () => getDefaultLikeExportInfo,\n  getDefaultLikeExportNameFromDeclaration: () => getDefaultLikeExportNameFromDeclaration,\n  getDefaultResolutionModeForFileWorker: () => getDefaultResolutionModeForFileWorker,\n  getDiagnosticText: () => getDiagnosticText,\n  getDiagnosticsWithinSpan: () => getDiagnosticsWithinSpan,\n  getDirectoryPath: () => getDirectoryPath,\n  getDirectoryToWatchFailedLookupLocation: () => getDirectoryToWatchFailedLookupLocation,\n  getDirectoryToWatchFailedLookupLocationFromTypeRoot: () => getDirectoryToWatchFailedLookupLocationFromTypeRoot,\n  getDocumentPositionMapper: () => getDocumentPositionMapper,\n  getDocumentSpansEqualityComparer: () => getDocumentSpansEqualityComparer,\n  getESModuleInterop: () => getESModuleInterop,\n  getEditsForFileRename: () => getEditsForFileRename,\n  getEffectiveBaseTypeNode: () => getEffectiveBaseTypeNode,\n  getEffectiveConstraintOfTypeParameter: () => getEffectiveConstraintOfTypeParameter,\n  getEffectiveContainerForJSDocTemplateTag: () => getEffectiveContainerForJSDocTemplateTag,\n  getEffectiveImplementsTypeNodes: () => getEffectiveImplementsTypeNodes,\n  getEffectiveInitializer: () => getEffectiveInitializer,\n  getEffectiveJSDocHost: () => getEffectiveJSDocHost,\n  getEffectiveModifierFlags: () => getEffectiveModifierFlags,\n  getEffectiveModifierFlagsAlwaysIncludeJSDoc: () => getEffectiveModifierFlagsAlwaysIncludeJSDoc,\n  getEffectiveModifierFlagsNoCache: () => getEffectiveModifierFlagsNoCache,\n  getEffectiveReturnTypeNode: () => getEffectiveReturnTypeNode,\n  getEffectiveSetAccessorTypeAnnotationNode: () => getEffectiveSetAccessorTypeAnnotationNode,\n  getEffectiveTypeAnnotationNode: () => getEffectiveTypeAnnotationNode,\n  getEffectiveTypeParameterDeclarations: () => getEffectiveTypeParameterDeclarations,\n  getEffectiveTypeRoots: () => getEffectiveTypeRoots,\n  getElementOrPropertyAccessArgumentExpressionOrName: () => getElementOrPropertyAccessArgumentExpressionOrName,\n  getElementOrPropertyAccessName: () => getElementOrPropertyAccessName,\n  getElementsOfBindingOrAssignmentPattern: () => getElementsOfBindingOrAssignmentPattern,\n  getEmitDeclarations: () => getEmitDeclarations,\n  getEmitFlags: () => getEmitFlags,\n  getEmitHelpers: () => getEmitHelpers,\n  getEmitModuleDetectionKind: () => getEmitModuleDetectionKind,\n  getEmitModuleFormatOfFileWorker: () => getEmitModuleFormatOfFileWorker,\n  getEmitModuleKind: () => getEmitModuleKind,\n  getEmitModuleResolutionKind: () => getEmitModuleResolutionKind,\n  getEmitScriptTarget: () => getEmitScriptTarget,\n  getEmitStandardClassFields: () => getEmitStandardClassFields,\n  getEnclosingBlockScopeContainer: () => getEnclosingBlockScopeContainer,\n  getEnclosingContainer: () => getEnclosingContainer,\n  getEncodedSemanticClassifications: () => getEncodedSemanticClassifications,\n  getEncodedSyntacticClassifications: () => getEncodedSyntacticClassifications,\n  getEndLinePosition: () => getEndLinePosition,\n  getEntityNameFromTypeNode: () => getEntityNameFromTypeNode,\n  getEntrypointsFromPackageJsonInfo: () => getEntrypointsFromPackageJsonInfo,\n  getErrorCountForSummary: () => getErrorCountForSummary,\n  getErrorSpanForNode: () => getErrorSpanForNode,\n  getErrorSummaryText: () => getErrorSummaryText,\n  getEscapedTextOfIdentifierOrLiteral: () => getEscapedTextOfIdentifierOrLiteral,\n  getEscapedTextOfJsxAttributeName: () => getEscapedTextOfJsxAttributeName,\n  getEscapedTextOfJsxNamespacedName: () => getEscapedTextOfJsxNamespacedName,\n  getExpandoInitializer: () => getExpandoInitializer,\n  getExportAssignmentExpression: () => getExportAssignmentExpression,\n  getExportInfoMap: () => getExportInfoMap,\n  getExportNeedsImportStarHelper: () => getExportNeedsImportStarHelper,\n  getExpressionAssociativity: () => getExpressionAssociativity,\n  getExpressionPrecedence: () => getExpressionPrecedence,\n  getExternalHelpersModuleName: () => getExternalHelpersModuleName,\n  getExternalModuleImportEqualsDeclarationExpression: () => getExternalModuleImportEqualsDeclarationExpression,\n  getExternalModuleName: () => getExternalModuleName,\n  getExternalModuleNameFromDeclaration: () => getExternalModuleNameFromDeclaration,\n  getExternalModuleNameFromPath: () => getExternalModuleNameFromPath,\n  getExternalModuleNameLiteral: () => getExternalModuleNameLiteral,\n  getExternalModuleRequireArgument: () => getExternalModuleRequireArgument,\n  getFallbackOptions: () => getFallbackOptions,\n  getFileEmitOutput: () => getFileEmitOutput,\n  getFileMatcherPatterns: () => getFileMatcherPatterns,\n  getFileNamesFromConfigSpecs: () => getFileNamesFromConfigSpecs,\n  getFileWatcherEventKind: () => getFileWatcherEventKind,\n  getFilesInErrorForSummary: () => getFilesInErrorForSummary,\n  getFirstConstructorWithBody: () => getFirstConstructorWithBody,\n  getFirstIdentifier: () => getFirstIdentifier,\n  getFirstNonSpaceCharacterPosition: () => getFirstNonSpaceCharacterPosition,\n  getFirstProjectOutput: () => getFirstProjectOutput,\n  getFixableErrorSpanExpression: () => getFixableErrorSpanExpression,\n  getFormatCodeSettingsForWriting: () => getFormatCodeSettingsForWriting,\n  getFullWidth: () => getFullWidth,\n  getFunctionFlags: () => getFunctionFlags,\n  getHeritageClause: () => getHeritageClause,\n  getHostSignatureFromJSDoc: () => getHostSignatureFromJSDoc,\n  getIdentifierAutoGenerate: () => getIdentifierAutoGenerate,\n  getIdentifierGeneratedImportReference: () => getIdentifierGeneratedImportReference,\n  getIdentifierTypeArguments: () => getIdentifierTypeArguments,\n  getImmediatelyInvokedFunctionExpression: () => getImmediatelyInvokedFunctionExpression,\n  getImpliedNodeFormatForEmitWorker: () => getImpliedNodeFormatForEmitWorker,\n  getImpliedNodeFormatForFile: () => getImpliedNodeFormatForFile,\n  getImpliedNodeFormatForFileWorker: () => getImpliedNodeFormatForFileWorker,\n  getImportNeedsImportDefaultHelper: () => getImportNeedsImportDefaultHelper,\n  getImportNeedsImportStarHelper: () => getImportNeedsImportStarHelper,\n  getIndentString: () => getIndentString,\n  getInferredLibraryNameResolveFrom: () => getInferredLibraryNameResolveFrom,\n  getInitializedVariables: () => getInitializedVariables,\n  getInitializerOfBinaryExpression: () => getInitializerOfBinaryExpression,\n  getInitializerOfBindingOrAssignmentElement: () => getInitializerOfBindingOrAssignmentElement,\n  getInterfaceBaseTypeNodes: () => getInterfaceBaseTypeNodes,\n  getInternalEmitFlags: () => getInternalEmitFlags,\n  getInvokedExpression: () => getInvokedExpression,\n  getIsFileExcluded: () => getIsFileExcluded,\n  getIsolatedModules: () => getIsolatedModules,\n  getJSDocAugmentsTag: () => getJSDocAugmentsTag,\n  getJSDocClassTag: () => getJSDocClassTag,\n  getJSDocCommentRanges: () => getJSDocCommentRanges,\n  getJSDocCommentsAndTags: () => getJSDocCommentsAndTags,\n  getJSDocDeprecatedTag: () => getJSDocDeprecatedTag,\n  getJSDocDeprecatedTagNoCache: () => getJSDocDeprecatedTagNoCache,\n  getJSDocEnumTag: () => getJSDocEnumTag,\n  getJSDocHost: () => getJSDocHost,\n  getJSDocImplementsTags: () => getJSDocImplementsTags,\n  getJSDocOverloadTags: () => getJSDocOverloadTags,\n  getJSDocOverrideTagNoCache: () => getJSDocOverrideTagNoCache,\n  getJSDocParameterTags: () => getJSDocParameterTags,\n  getJSDocParameterTagsNoCache: () => getJSDocParameterTagsNoCache,\n  getJSDocPrivateTag: () => getJSDocPrivateTag,\n  getJSDocPrivateTagNoCache: () => getJSDocPrivateTagNoCache,\n  getJSDocProtectedTag: () => getJSDocProtectedTag,\n  getJSDocProtectedTagNoCache: () => getJSDocProtectedTagNoCache,\n  getJSDocPublicTag: () => getJSDocPublicTag,\n  getJSDocPublicTagNoCache: () => getJSDocPublicTagNoCache,\n  getJSDocReadonlyTag: () => getJSDocReadonlyTag,\n  getJSDocReadonlyTagNoCache: () => getJSDocReadonlyTagNoCache,\n  getJSDocReturnTag: () => getJSDocReturnTag,\n  getJSDocReturnType: () => getJSDocReturnType,\n  getJSDocRoot: () => getJSDocRoot,\n  getJSDocSatisfiesExpressionType: () => getJSDocSatisfiesExpressionType,\n  getJSDocSatisfiesTag: () => getJSDocSatisfiesTag,\n  getJSDocTags: () => getJSDocTags,\n  getJSDocTemplateTag: () => getJSDocTemplateTag,\n  getJSDocThisTag: () => getJSDocThisTag,\n  getJSDocType: () => getJSDocType,\n  getJSDocTypeAliasName: () => getJSDocTypeAliasName,\n  getJSDocTypeAssertionType: () => getJSDocTypeAssertionType,\n  getJSDocTypeParameterDeclarations: () => getJSDocTypeParameterDeclarations,\n  getJSDocTypeParameterTags: () => getJSDocTypeParameterTags,\n  getJSDocTypeParameterTagsNoCache: () => getJSDocTypeParameterTagsNoCache,\n  getJSDocTypeTag: () => getJSDocTypeTag,\n  getJSXImplicitImportBase: () => getJSXImplicitImportBase,\n  getJSXRuntimeImport: () => getJSXRuntimeImport,\n  getJSXTransformEnabled: () => getJSXTransformEnabled,\n  getKeyForCompilerOptions: () => getKeyForCompilerOptions,\n  getLanguageVariant: () => getLanguageVariant,\n  getLastChild: () => getLastChild,\n  getLeadingCommentRanges: () => getLeadingCommentRanges,\n  getLeadingCommentRangesOfNode: () => getLeadingCommentRangesOfNode,\n  getLeftmostAccessExpression: () => getLeftmostAccessExpression,\n  getLeftmostExpression: () => getLeftmostExpression,\n  getLibFileNameFromLibReference: () => getLibFileNameFromLibReference,\n  getLibNameFromLibReference: () => getLibNameFromLibReference,\n  getLibraryNameFromLibFileName: () => getLibraryNameFromLibFileName,\n  getLineAndCharacterOfPosition: () => getLineAndCharacterOfPosition,\n  getLineInfo: () => getLineInfo,\n  getLineOfLocalPosition: () => getLineOfLocalPosition,\n  getLineStartPositionForPosition: () => getLineStartPositionForPosition,\n  getLineStarts: () => getLineStarts,\n  getLinesBetweenPositionAndNextNonWhitespaceCharacter: () => getLinesBetweenPositionAndNextNonWhitespaceCharacter,\n  getLinesBetweenPositionAndPrecedingNonWhitespaceCharacter: () => getLinesBetweenPositionAndPrecedingNonWhitespaceCharacter,\n  getLinesBetweenPositions: () => getLinesBetweenPositions,\n  getLinesBetweenRangeEndAndRangeStart: () => getLinesBetweenRangeEndAndRangeStart,\n  getLinesBetweenRangeEndPositions: () => getLinesBetweenRangeEndPositions,\n  getLiteralText: () => getLiteralText,\n  getLocalNameForExternalImport: () => getLocalNameForExternalImport,\n  getLocalSymbolForExportDefault: () => getLocalSymbolForExportDefault,\n  getLocaleSpecificMessage: () => getLocaleSpecificMessage,\n  getLocaleTimeString: () => getLocaleTimeString,\n  getMappedContextSpan: () => getMappedContextSpan,\n  getMappedDocumentSpan: () => getMappedDocumentSpan,\n  getMappedLocation: () => getMappedLocation,\n  getMatchedFileSpec: () => getMatchedFileSpec,\n  getMatchedIncludeSpec: () => getMatchedIncludeSpec,\n  getMeaningFromDeclaration: () => getMeaningFromDeclaration,\n  getMeaningFromLocation: () => getMeaningFromLocation,\n  getMembersOfDeclaration: () => getMembersOfDeclaration,\n  getModeForFileReference: () => getModeForFileReference,\n  getModeForResolutionAtIndex: () => getModeForResolutionAtIndex,\n  getModeForUsageLocation: () => getModeForUsageLocation,\n  getModifiedTime: () => getModifiedTime,\n  getModifiers: () => getModifiers,\n  getModuleInstanceState: () => getModuleInstanceState,\n  getModuleNameStringLiteralAt: () => getModuleNameStringLiteralAt,\n  getModuleSpecifierEndingPreference: () => getModuleSpecifierEndingPreference,\n  getModuleSpecifierResolverHost: () => getModuleSpecifierResolverHost,\n  getNameForExportedSymbol: () => getNameForExportedSymbol,\n  getNameFromImportAttribute: () => getNameFromImportAttribute,\n  getNameFromIndexInfo: () => getNameFromIndexInfo,\n  getNameFromPropertyName: () => getNameFromPropertyName,\n  getNameOfAccessExpression: () => getNameOfAccessExpression,\n  getNameOfCompilerOptionValue: () => getNameOfCompilerOptionValue,\n  getNameOfDeclaration: () => getNameOfDeclaration,\n  getNameOfExpando: () => getNameOfExpando,\n  getNameOfJSDocTypedef: () => getNameOfJSDocTypedef,\n  getNameOfScriptTarget: () => getNameOfScriptTarget,\n  getNameOrArgument: () => getNameOrArgument,\n  getNameTable: () => getNameTable,\n  getNamespaceDeclarationNode: () => getNamespaceDeclarationNode,\n  getNewLineCharacter: () => getNewLineCharacter,\n  getNewLineKind: () => getNewLineKind,\n  getNewLineOrDefaultFromHost: () => getNewLineOrDefaultFromHost,\n  getNewTargetContainer: () => getNewTargetContainer,\n  getNextJSDocCommentLocation: () => getNextJSDocCommentLocation,\n  getNodeChildren: () => getNodeChildren,\n  getNodeForGeneratedName: () => getNodeForGeneratedName,\n  getNodeId: () => getNodeId,\n  getNodeKind: () => getNodeKind,\n  getNodeModifiers: () => getNodeModifiers,\n  getNodeModulePathParts: () => getNodeModulePathParts,\n  getNonAssignedNameOfDeclaration: () => getNonAssignedNameOfDeclaration,\n  getNonAssignmentOperatorForCompoundAssignment: () => getNonAssignmentOperatorForCompoundAssignment,\n  getNonAugmentationDeclaration: () => getNonAugmentationDeclaration,\n  getNonDecoratorTokenPosOfNode: () => getNonDecoratorTokenPosOfNode,\n  getNonIncrementalBuildInfoRoots: () => getNonIncrementalBuildInfoRoots,\n  getNonModifierTokenPosOfNode: () => getNonModifierTokenPosOfNode,\n  getNormalizedAbsolutePath: () => getNormalizedAbsolutePath,\n  getNormalizedAbsolutePathWithoutRoot: () => getNormalizedAbsolutePathWithoutRoot,\n  getNormalizedPathComponents: () => getNormalizedPathComponents,\n  getObjectFlags: () => getObjectFlags,\n  getOperatorAssociativity: () => getOperatorAssociativity,\n  getOperatorPrecedence: () => getOperatorPrecedence,\n  getOptionFromName: () => getOptionFromName,\n  getOptionsForLibraryResolution: () => getOptionsForLibraryResolution,\n  getOptionsNameMap: () => getOptionsNameMap,\n  getOptionsSyntaxByArrayElementValue: () => getOptionsSyntaxByArrayElementValue,\n  getOptionsSyntaxByValue: () => getOptionsSyntaxByValue,\n  getOrCreateEmitNode: () => getOrCreateEmitNode,\n  getOrUpdate: () => getOrUpdate,\n  getOriginalNode: () => getOriginalNode,\n  getOriginalNodeId: () => getOriginalNodeId,\n  getOutputDeclarationFileName: () => getOutputDeclarationFileName,\n  getOutputDeclarationFileNameWorker: () => getOutputDeclarationFileNameWorker,\n  getOutputExtension: () => getOutputExtension,\n  getOutputFileNames: () => getOutputFileNames,\n  getOutputJSFileNameWorker: () => getOutputJSFileNameWorker,\n  getOutputPathsFor: () => getOutputPathsFor,\n  getOwnEmitOutputFilePath: () => getOwnEmitOutputFilePath,\n  getOwnKeys: () => getOwnKeys,\n  getOwnValues: () => getOwnValues,\n  getPackageJsonTypesVersionsPaths: () => getPackageJsonTypesVersionsPaths,\n  getPackageNameFromTypesPackageName: () => getPackageNameFromTypesPackageName,\n  getPackageScopeForPath: () => getPackageScopeForPath,\n  getParameterSymbolFromJSDoc: () => getParameterSymbolFromJSDoc,\n  getParentNodeInSpan: () => getParentNodeInSpan,\n  getParseTreeNode: () => getParseTreeNode,\n  getParsedCommandLineOfConfigFile: () => getParsedCommandLineOfConfigFile,\n  getPathComponents: () => getPathComponents,\n  getPathFromPathComponents: () => getPathFromPathComponents,\n  getPathUpdater: () => getPathUpdater,\n  getPathsBasePath: () => getPathsBasePath,\n  getPatternFromSpec: () => getPatternFromSpec,\n  getPendingEmitKindWithSeen: () => getPendingEmitKindWithSeen,\n  getPositionOfLineAndCharacter: () => getPositionOfLineAndCharacter,\n  getPossibleGenericSignatures: () => getPossibleGenericSignatures,\n  getPossibleOriginalInputExtensionForExtension: () => getPossibleOriginalInputExtensionForExtension,\n  getPossibleOriginalInputPathWithoutChangingExt: () => getPossibleOriginalInputPathWithoutChangingExt,\n  getPossibleTypeArgumentsInfo: () => getPossibleTypeArgumentsInfo,\n  getPreEmitDiagnostics: () => getPreEmitDiagnostics,\n  getPrecedingNonSpaceCharacterPosition: () => getPrecedingNonSpaceCharacterPosition,\n  getPrivateIdentifier: () => getPrivateIdentifier,\n  getProperties: () => getProperties,\n  getProperty: () => getProperty,\n  getPropertyAssignmentAliasLikeExpression: () => getPropertyAssignmentAliasLikeExpression,\n  getPropertyNameForPropertyNameNode: () => getPropertyNameForPropertyNameNode,\n  getPropertyNameFromType: () => getPropertyNameFromType,\n  getPropertyNameOfBindingOrAssignmentElement: () => getPropertyNameOfBindingOrAssignmentElement,\n  getPropertySymbolFromBindingElement: () => getPropertySymbolFromBindingElement,\n  getPropertySymbolsFromContextualType: () => getPropertySymbolsFromContextualType,\n  getQuoteFromPreference: () => getQuoteFromPreference,\n  getQuotePreference: () => getQuotePreference,\n  getRangesWhere: () => getRangesWhere,\n  getRefactorContextSpan: () => getRefactorContextSpan,\n  getReferencedFileLocation: () => getReferencedFileLocation,\n  getRegexFromPattern: () => getRegexFromPattern,\n  getRegularExpressionForWildcard: () => getRegularExpressionForWildcard,\n  getRegularExpressionsForWildcards: () => getRegularExpressionsForWildcards,\n  getRelativePathFromDirectory: () => getRelativePathFromDirectory,\n  getRelativePathFromFile: () => getRelativePathFromFile,\n  getRelativePathToDirectoryOrUrl: () => getRelativePathToDirectoryOrUrl,\n  getRenameLocation: () => getRenameLocation,\n  getReplacementSpanForContextToken: () => getReplacementSpanForContextToken,\n  getResolutionDiagnostic: () => getResolutionDiagnostic,\n  getResolutionModeOverride: () => getResolutionModeOverride,\n  getResolveJsonModule: () => getResolveJsonModule,\n  getResolvePackageJsonExports: () => getResolvePackageJsonExports,\n  getResolvePackageJsonImports: () => getResolvePackageJsonImports,\n  getResolvedExternalModuleName: () => getResolvedExternalModuleName,\n  getResolvedModuleFromResolution: () => getResolvedModuleFromResolution,\n  getResolvedTypeReferenceDirectiveFromResolution: () => getResolvedTypeReferenceDirectiveFromResolution,\n  getRestIndicatorOfBindingOrAssignmentElement: () => getRestIndicatorOfBindingOrAssignmentElement,\n  getRestParameterElementType: () => getRestParameterElementType,\n  getRightMostAssignedExpression: () => getRightMostAssignedExpression,\n  getRootDeclaration: () => getRootDeclaration,\n  getRootDirectoryOfResolutionCache: () => getRootDirectoryOfResolutionCache,\n  getRootLength: () => getRootLength,\n  getScriptKind: () => getScriptKind,\n  getScriptKindFromFileName: () => getScriptKindFromFileName,\n  getScriptTargetFeatures: () => getScriptTargetFeatures,\n  getSelectedEffectiveModifierFlags: () => getSelectedEffectiveModifierFlags,\n  getSelectedSyntacticModifierFlags: () => getSelectedSyntacticModifierFlags,\n  getSemanticClassifications: () => getSemanticClassifications,\n  getSemanticJsxChildren: () => getSemanticJsxChildren,\n  getSetAccessorTypeAnnotationNode: () => getSetAccessorTypeAnnotationNode,\n  getSetAccessorValueParameter: () => getSetAccessorValueParameter,\n  getSetExternalModuleIndicator: () => getSetExternalModuleIndicator,\n  getShebang: () => getShebang,\n  getSingleVariableOfVariableStatement: () => getSingleVariableOfVariableStatement,\n  getSnapshotText: () => getSnapshotText,\n  getSnippetElement: () => getSnippetElement,\n  getSourceFileOfModule: () => getSourceFileOfModule,\n  getSourceFileOfNode: () => getSourceFileOfNode,\n  getSourceFilePathInNewDir: () => getSourceFilePathInNewDir,\n  getSourceFileVersionAsHashFromText: () => getSourceFileVersionAsHashFromText,\n  getSourceFilesToEmit: () => getSourceFilesToEmit,\n  getSourceMapRange: () => getSourceMapRange,\n  getSourceMapper: () => getSourceMapper,\n  getSourceTextOfNodeFromSourceFile: () => getSourceTextOfNodeFromSourceFile,\n  getSpanOfTokenAtPosition: () => getSpanOfTokenAtPosition,\n  getSpellingSuggestion: () => getSpellingSuggestion,\n  getStartPositionOfLine: () => getStartPositionOfLine,\n  getStartPositionOfRange: () => getStartPositionOfRange,\n  getStartsOnNewLine: () => getStartsOnNewLine,\n  getStaticPropertiesAndClassStaticBlock: () => getStaticPropertiesAndClassStaticBlock,\n  getStrictOptionValue: () => getStrictOptionValue,\n  getStringComparer: () => getStringComparer,\n  getSubPatternFromSpec: () => getSubPatternFromSpec,\n  getSuperCallFromStatement: () => getSuperCallFromStatement,\n  getSuperContainer: () => getSuperContainer,\n  getSupportedCodeFixes: () => getSupportedCodeFixes,\n  getSupportedExtensions: () => getSupportedExtensions,\n  getSupportedExtensionsWithJsonIfResolveJsonModule: () => getSupportedExtensionsWithJsonIfResolveJsonModule,\n  getSwitchedType: () => getSwitchedType,\n  getSymbolId: () => getSymbolId,\n  getSymbolNameForPrivateIdentifier: () => getSymbolNameForPrivateIdentifier,\n  getSymbolTarget: () => getSymbolTarget,\n  getSyntacticClassifications: () => getSyntacticClassifications,\n  getSyntacticModifierFlags: () => getSyntacticModifierFlags,\n  getSyntacticModifierFlagsNoCache: () => getSyntacticModifierFlagsNoCache,\n  getSynthesizedDeepClone: () => getSynthesizedDeepClone,\n  getSynthesizedDeepCloneWithReplacements: () => getSynthesizedDeepCloneWithReplacements,\n  getSynthesizedDeepClones: () => getSynthesizedDeepClones,\n  getSynthesizedDeepClonesWithReplacements: () => getSynthesizedDeepClonesWithReplacements,\n  getSyntheticLeadingComments: () => getSyntheticLeadingComments,\n  getSyntheticTrailingComments: () => getSyntheticTrailingComments,\n  getTargetLabel: () => getTargetLabel,\n  getTargetOfBindingOrAssignmentElement: () => getTargetOfBindingOrAssignmentElement,\n  getTemporaryModuleResolutionState: () => getTemporaryModuleResolutionState,\n  getTextOfConstantValue: () => getTextOfConstantValue,\n  getTextOfIdentifierOrLiteral: () => getTextOfIdentifierOrLiteral,\n  getTextOfJSDocComment: () => getTextOfJSDocComment,\n  getTextOfJsxAttributeName: () => getTextOfJsxAttributeName,\n  getTextOfJsxNamespacedName: () => getTextOfJsxNamespacedName,\n  getTextOfNode: () => getTextOfNode,\n  getTextOfNodeFromSourceText: () => getTextOfNodeFromSourceText,\n  getTextOfPropertyName: () => getTextOfPropertyName,\n  getThisContainer: () => getThisContainer,\n  getThisParameter: () => getThisParameter,\n  getTokenAtPosition: () => getTokenAtPosition,\n  getTokenPosOfNode: () => getTokenPosOfNode,\n  getTokenSourceMapRange: () => getTokenSourceMapRange,\n  getTouchingPropertyName: () => getTouchingPropertyName,\n  getTouchingToken: () => getTouchingToken,\n  getTrailingCommentRanges: () => getTrailingCommentRanges,\n  getTrailingSemicolonDeferringWriter: () => getTrailingSemicolonDeferringWriter,\n  getTransformers: () => getTransformers,\n  getTsBuildInfoEmitOutputFilePath: () => getTsBuildInfoEmitOutputFilePath,\n  getTsConfigObjectLiteralExpression: () => getTsConfigObjectLiteralExpression,\n  getTsConfigPropArrayElementValue: () => getTsConfigPropArrayElementValue,\n  getTypeAnnotationNode: () => getTypeAnnotationNode,\n  getTypeArgumentOrTypeParameterList: () => getTypeArgumentOrTypeParameterList,\n  getTypeKeywordOfTypeOnlyImport: () => getTypeKeywordOfTypeOnlyImport,\n  getTypeNode: () => getTypeNode,\n  getTypeNodeIfAccessible: () => getTypeNodeIfAccessible,\n  getTypeParameterFromJsDoc: () => getTypeParameterFromJsDoc,\n  getTypeParameterOwner: () => getTypeParameterOwner,\n  getTypesPackageName: () => getTypesPackageName,\n  getUILocale: () => getUILocale,\n  getUniqueName: () => getUniqueName,\n  getUniqueSymbolId: () => getUniqueSymbolId,\n  getUseDefineForClassFields: () => getUseDefineForClassFields,\n  getWatchErrorSummaryDiagnosticMessage: () => getWatchErrorSummaryDiagnosticMessage,\n  getWatchFactory: () => getWatchFactory,\n  group: () => group,\n  groupBy: () => groupBy,\n  guessIndentation: () => guessIndentation,\n  handleNoEmitOptions: () => handleNoEmitOptions,\n  handleWatchOptionsConfigDirTemplateSubstitution: () => handleWatchOptionsConfigDirTemplateSubstitution,\n  hasAbstractModifier: () => hasAbstractModifier,\n  hasAccessorModifier: () => hasAccessorModifier,\n  hasAmbientModifier: () => hasAmbientModifier,\n  hasChangesInResolutions: () => hasChangesInResolutions,\n  hasContextSensitiveParameters: () => hasContextSensitiveParameters,\n  hasDecorators: () => hasDecorators,\n  hasDocComment: () => hasDocComment,\n  hasDynamicName: () => hasDynamicName,\n  hasEffectiveModifier: () => hasEffectiveModifier,\n  hasEffectiveModifiers: () => hasEffectiveModifiers,\n  hasEffectiveReadonlyModifier: () => hasEffectiveReadonlyModifier,\n  hasExtension: () => hasExtension,\n  hasImplementationTSFileExtension: () => hasImplementationTSFileExtension,\n  hasIndexSignature: () => hasIndexSignature,\n  hasInferredType: () => hasInferredType,\n  hasInitializer: () => hasInitializer,\n  hasInvalidEscape: () => hasInvalidEscape,\n  hasJSDocNodes: () => hasJSDocNodes,\n  hasJSDocParameterTags: () => hasJSDocParameterTags,\n  hasJSFileExtension: () => hasJSFileExtension,\n  hasJsonModuleEmitEnabled: () => hasJsonModuleEmitEnabled,\n  hasOnlyExpressionInitializer: () => hasOnlyExpressionInitializer,\n  hasOverrideModifier: () => hasOverrideModifier,\n  hasPossibleExternalModuleReference: () => hasPossibleExternalModuleReference,\n  hasProperty: () => hasProperty,\n  hasPropertyAccessExpressionWithName: () => hasPropertyAccessExpressionWithName,\n  hasQuestionToken: () => hasQuestionToken,\n  hasRecordedExternalHelpers: () => hasRecordedExternalHelpers,\n  hasResolutionModeOverride: () => hasResolutionModeOverride,\n  hasRestParameter: () => hasRestParameter,\n  hasScopeMarker: () => hasScopeMarker,\n  hasStaticModifier: () => hasStaticModifier,\n  hasSyntacticModifier: () => hasSyntacticModifier,\n  hasSyntacticModifiers: () => hasSyntacticModifiers,\n  hasTSFileExtension: () => hasTSFileExtension,\n  hasTabstop: () => hasTabstop,\n  hasTrailingDirectorySeparator: () => hasTrailingDirectorySeparator,\n  hasType: () => hasType,\n  hasTypeArguments: () => hasTypeArguments,\n  hasZeroOrOneAsteriskCharacter: () => hasZeroOrOneAsteriskCharacter,\n  hostGetCanonicalFileName: () => hostGetCanonicalFileName,\n  hostUsesCaseSensitiveFileNames: () => hostUsesCaseSensitiveFileNames,\n  idText: () => idText,\n  identifierIsThisKeyword: () => identifierIsThisKeyword,\n  identifierToKeywordKind: () => identifierToKeywordKind,\n  identity: () => identity,\n  identitySourceMapConsumer: () => identitySourceMapConsumer,\n  ignoreSourceNewlines: () => ignoreSourceNewlines,\n  ignoredPaths: () => ignoredPaths,\n  importFromModuleSpecifier: () => importFromModuleSpecifier,\n  importSyntaxAffectsModuleResolution: () => importSyntaxAffectsModuleResolution,\n  indexOfAnyCharCode: () => indexOfAnyCharCode,\n  indexOfNode: () => indexOfNode,\n  indicesOf: () => indicesOf,\n  inferredTypesContainingFile: () => inferredTypesContainingFile,\n  injectClassNamedEvaluationHelperBlockIfMissing: () => injectClassNamedEvaluationHelperBlockIfMissing,\n  injectClassThisAssignmentIfMissing: () => injectClassThisAssignmentIfMissing,\n  insertImports: () => insertImports,\n  insertSorted: () => insertSorted,\n  insertStatementAfterCustomPrologue: () => insertStatementAfterCustomPrologue,\n  insertStatementAfterStandardPrologue: () => insertStatementAfterStandardPrologue,\n  insertStatementsAfterCustomPrologue: () => insertStatementsAfterCustomPrologue,\n  insertStatementsAfterStandardPrologue: () => insertStatementsAfterStandardPrologue,\n  intersperse: () => intersperse,\n  intrinsicTagNameToString: () => intrinsicTagNameToString,\n  introducesArgumentsExoticObject: () => introducesArgumentsExoticObject,\n  inverseJsxOptionMap: () => inverseJsxOptionMap,\n  isAbstractConstructorSymbol: () => isAbstractConstructorSymbol,\n  isAbstractModifier: () => isAbstractModifier,\n  isAccessExpression: () => isAccessExpression,\n  isAccessibilityModifier: () => isAccessibilityModifier,\n  isAccessor: () => isAccessor,\n  isAccessorModifier: () => isAccessorModifier,\n  isAliasableExpression: () => isAliasableExpression,\n  isAmbientModule: () => isAmbientModule,\n  isAmbientPropertyDeclaration: () => isAmbientPropertyDeclaration,\n  isAnyDirectorySeparator: () => isAnyDirectorySeparator,\n  isAnyImportOrBareOrAccessedRequire: () => isAnyImportOrBareOrAccessedRequire,\n  isAnyImportOrReExport: () => isAnyImportOrReExport,\n  isAnyImportOrRequireStatement: () => isAnyImportOrRequireStatement,\n  isAnyImportSyntax: () => isAnyImportSyntax,\n  isAnySupportedFileExtension: () => isAnySupportedFileExtension,\n  isApplicableVersionedTypesKey: () => isApplicableVersionedTypesKey,\n  isArgumentExpressionOfElementAccess: () => isArgumentExpressionOfElementAccess,\n  isArray: () => isArray,\n  isArrayBindingElement: () => isArrayBindingElement,\n  isArrayBindingOrAssignmentElement: () => isArrayBindingOrAssignmentElement,\n  isArrayBindingOrAssignmentPattern: () => isArrayBindingOrAssignmentPattern,\n  isArrayBindingPattern: () => isArrayBindingPattern,\n  isArrayLiteralExpression: () => isArrayLiteralExpression,\n  isArrayLiteralOrObjectLiteralDestructuringPattern: () => isArrayLiteralOrObjectLiteralDestructuringPattern,\n  isArrayTypeNode: () => isArrayTypeNode,\n  isArrowFunction: () => isArrowFunction,\n  isAsExpression: () => isAsExpression,\n  isAssertClause: () => isAssertClause,\n  isAssertEntry: () => isAssertEntry,\n  isAssertionExpression: () => isAssertionExpression,\n  isAssertsKeyword: () => isAssertsKeyword,\n  isAssignmentDeclaration: () => isAssignmentDeclaration,\n  isAssignmentExpression: () => isAssignmentExpression,\n  isAssignmentOperator: () => isAssignmentOperator,\n  isAssignmentPattern: () => isAssignmentPattern,\n  isAssignmentTarget: () => isAssignmentTarget,\n  isAsteriskToken: () => isAsteriskToken,\n  isAsyncFunction: () => isAsyncFunction,\n  isAsyncModifier: () => isAsyncModifier,\n  isAutoAccessorPropertyDeclaration: () => isAutoAccessorPropertyDeclaration,\n  isAwaitExpression: () => isAwaitExpression,\n  isAwaitKeyword: () => isAwaitKeyword,\n  isBigIntLiteral: () => isBigIntLiteral,\n  isBinaryExpression: () => isBinaryExpression,\n  isBinaryLogicalOperator: () => isBinaryLogicalOperator,\n  isBinaryOperatorToken: () => isBinaryOperatorToken,\n  isBindableObjectDefinePropertyCall: () => isBindableObjectDefinePropertyCall,\n  isBindableStaticAccessExpression: () => isBindableStaticAccessExpression,\n  isBindableStaticElementAccessExpression: () => isBindableStaticElementAccessExpression,\n  isBindableStaticNameExpression: () => isBindableStaticNameExpression,\n  isBindingElement: () => isBindingElement,\n  isBindingElementOfBareOrAccessedRequire: () => isBindingElementOfBareOrAccessedRequire,\n  isBindingName: () => isBindingName,\n  isBindingOrAssignmentElement: () => isBindingOrAssignmentElement,\n  isBindingOrAssignmentPattern: () => isBindingOrAssignmentPattern,\n  isBindingPattern: () => isBindingPattern,\n  isBlock: () => isBlock,\n  isBlockLike: () => isBlockLike,\n  isBlockOrCatchScoped: () => isBlockOrCatchScoped,\n  isBlockScope: () => isBlockScope,\n  isBlockScopedContainerTopLevel: () => isBlockScopedContainerTopLevel,\n  isBooleanLiteral: () => isBooleanLiteral,\n  isBreakOrContinueStatement: () => isBreakOrContinueStatement,\n  isBreakStatement: () => isBreakStatement,\n  isBuildCommand: () => isBuildCommand,\n  isBuildInfoFile: () => isBuildInfoFile,\n  isBuilderProgram: () => isBuilderProgram,\n  isBundle: () => isBundle,\n  isCallChain: () => isCallChain,\n  isCallExpression: () => isCallExpression,\n  isCallExpressionTarget: () => isCallExpressionTarget,\n  isCallLikeExpression: () => isCallLikeExpression,\n  isCallLikeOrFunctionLikeExpression: () => isCallLikeOrFunctionLikeExpression,\n  isCallOrNewExpression: () => isCallOrNewExpression,\n  isCallOrNewExpressionTarget: () => isCallOrNewExpressionTarget,\n  isCallSignatureDeclaration: () => isCallSignatureDeclaration,\n  isCallToHelper: () => isCallToHelper,\n  isCaseBlock: () => isCaseBlock,\n  isCaseClause: () => isCaseClause,\n  isCaseKeyword: () => isCaseKeyword,\n  isCaseOrDefaultClause: () => isCaseOrDefaultClause,\n  isCatchClause: () => isCatchClause,\n  isCatchClauseVariableDeclaration: () => isCatchClauseVariableDeclaration,\n  isCatchClauseVariableDeclarationOrBindingElement: () => isCatchClauseVariableDeclarationOrBindingElement,\n  isCheckJsEnabledForFile: () => isCheckJsEnabledForFile,\n  isCircularBuildOrder: () => isCircularBuildOrder,\n  isClassDeclaration: () => isClassDeclaration,\n  isClassElement: () => isClassElement,\n  isClassExpression: () => isClassExpression,\n  isClassInstanceProperty: () => isClassInstanceProperty,\n  isClassLike: () => isClassLike,\n  isClassMemberModifier: () => isClassMemberModifier,\n  isClassNamedEvaluationHelperBlock: () => isClassNamedEvaluationHelperBlock,\n  isClassOrTypeElement: () => isClassOrTypeElement,\n  isClassStaticBlockDeclaration: () => isClassStaticBlockDeclaration,\n  isClassThisAssignmentBlock: () => isClassThisAssignmentBlock,\n  isColonToken: () => isColonToken,\n  isCommaExpression: () => isCommaExpression,\n  isCommaListExpression: () => isCommaListExpression,\n  isCommaSequence: () => isCommaSequence,\n  isCommaToken: () => isCommaToken,\n  isComment: () => isComment,\n  isCommonJsExportPropertyAssignment: () => isCommonJsExportPropertyAssignment,\n  isCommonJsExportedExpression: () => isCommonJsExportedExpression,\n  isCompoundAssignment: () => isCompoundAssignment,\n  isComputedNonLiteralName: () => isComputedNonLiteralName,\n  isComputedPropertyName: () => isComputedPropertyName,\n  isConciseBody: () => isConciseBody,\n  isConditionalExpression: () => isConditionalExpression,\n  isConditionalTypeNode: () => isConditionalTypeNode,\n  isConstAssertion: () => isConstAssertion,\n  isConstTypeReference: () => isConstTypeReference,\n  isConstructSignatureDeclaration: () => isConstructSignatureDeclaration,\n  isConstructorDeclaration: () => isConstructorDeclaration,\n  isConstructorTypeNode: () => isConstructorTypeNode,\n  isContextualKeyword: () => isContextualKeyword,\n  isContinueStatement: () => isContinueStatement,\n  isCustomPrologue: () => isCustomPrologue,\n  isDebuggerStatement: () => isDebuggerStatement,\n  isDeclaration: () => isDeclaration,\n  isDeclarationBindingElement: () => isDeclarationBindingElement,\n  isDeclarationFileName: () => isDeclarationFileName,\n  isDeclarationName: () => isDeclarationName,\n  isDeclarationNameOfEnumOrNamespace: () => isDeclarationNameOfEnumOrNamespace,\n  isDeclarationReadonly: () => isDeclarationReadonly,\n  isDeclarationStatement: () => isDeclarationStatement,\n  isDeclarationWithTypeParameterChildren: () => isDeclarationWithTypeParameterChildren,\n  isDeclarationWithTypeParameters: () => isDeclarationWithTypeParameters,\n  isDecorator: () => isDecorator,\n  isDecoratorTarget: () => isDecoratorTarget,\n  isDefaultClause: () => isDefaultClause,\n  isDefaultImport: () => isDefaultImport,\n  isDefaultModifier: () => isDefaultModifier,\n  isDefaultedExpandoInitializer: () => isDefaultedExpandoInitializer,\n  isDeleteExpression: () => isDeleteExpression,\n  isDeleteTarget: () => isDeleteTarget,\n  isDeprecatedDeclaration: () => isDeprecatedDeclaration,\n  isDestructuringAssignment: () => isDestructuringAssignment,\n  isDiskPathRoot: () => isDiskPathRoot,\n  isDoStatement: () => isDoStatement,\n  isDocumentRegistryEntry: () => isDocumentRegistryEntry,\n  isDotDotDotToken: () => isDotDotDotToken,\n  isDottedName: () => isDottedName,\n  isDynamicName: () => isDynamicName,\n  isEffectiveExternalModule: () => isEffectiveExternalModule,\n  isEffectiveStrictModeSourceFile: () => isEffectiveStrictModeSourceFile,\n  isElementAccessChain: () => isElementAccessChain,\n  isElementAccessExpression: () => isElementAccessExpression,\n  isEmittedFileOfProgram: () => isEmittedFileOfProgram,\n  isEmptyArrayLiteral: () => isEmptyArrayLiteral,\n  isEmptyBindingElement: () => isEmptyBindingElement,\n  isEmptyBindingPattern: () => isEmptyBindingPattern,\n  isEmptyObjectLiteral: () => isEmptyObjectLiteral,\n  isEmptyStatement: () => isEmptyStatement,\n  isEmptyStringLiteral: () => isEmptyStringLiteral,\n  isEntityName: () => isEntityName,\n  isEntityNameExpression: () => isEntityNameExpression,\n  isEnumConst: () => isEnumConst,\n  isEnumDeclaration: () => isEnumDeclaration,\n  isEnumMember: () => isEnumMember,\n  isEqualityOperatorKind: () => isEqualityOperatorKind,\n  isEqualsGreaterThanToken: () => isEqualsGreaterThanToken,\n  isExclamationToken: () => isExclamationToken,\n  isExcludedFile: () => isExcludedFile,\n  isExclusivelyTypeOnlyImportOrExport: () => isExclusivelyTypeOnlyImportOrExport,\n  isExpandoPropertyDeclaration: () => isExpandoPropertyDeclaration,\n  isExportAssignment: () => isExportAssignment,\n  isExportDeclaration: () => isExportDeclaration,\n  isExportModifier: () => isExportModifier,\n  isExportName: () => isExportName,\n  isExportNamespaceAsDefaultDeclaration: () => isExportNamespaceAsDefaultDeclaration,\n  isExportOrDefaultModifier: () => isExportOrDefaultModifier,\n  isExportSpecifier: () => isExportSpecifier,\n  isExportsIdentifier: () => isExportsIdentifier,\n  isExportsOrModuleExportsOrAlias: () => isExportsOrModuleExportsOrAlias,\n  isExpression: () => isExpression,\n  isExpressionNode: () => isExpressionNode,\n  isExpressionOfExternalModuleImportEqualsDeclaration: () => isExpressionOfExternalModuleImportEqualsDeclaration,\n  isExpressionOfOptionalChainRoot: () => isExpressionOfOptionalChainRoot,\n  isExpressionStatement: () => isExpressionStatement,\n  isExpressionWithTypeArguments: () => isExpressionWithTypeArguments,\n  isExpressionWithTypeArgumentsInClassExtendsClause: () => isExpressionWithTypeArgumentsInClassExtendsClause,\n  isExternalModule: () => isExternalModule,\n  isExternalModuleAugmentation: () => isExternalModuleAugmentation,\n  isExternalModuleImportEqualsDeclaration: () => isExternalModuleImportEqualsDeclaration,\n  isExternalModuleIndicator: () => isExternalModuleIndicator,\n  isExternalModuleNameRelative: () => isExternalModuleNameRelative,\n  isExternalModuleReference: () => isExternalModuleReference,\n  isExternalModuleSymbol: () => isExternalModuleSymbol,\n  isExternalOrCommonJsModule: () => isExternalOrCommonJsModule,\n  isFileLevelReservedGeneratedIdentifier: () => isFileLevelReservedGeneratedIdentifier,\n  isFileLevelUniqueName: () => isFileLevelUniqueName,\n  isFileProbablyExternalModule: () => isFileProbablyExternalModule,\n  isFirstDeclarationOfSymbolParameter: () => isFirstDeclarationOfSymbolParameter,\n  isFixablePromiseHandler: () => isFixablePromiseHandler,\n  isForInOrOfStatement: () => isForInOrOfStatement,\n  isForInStatement: () => isForInStatement,\n  isForInitializer: () => isForInitializer,\n  isForOfStatement: () => isForOfStatement,\n  isForStatement: () => isForStatement,\n  isFullSourceFile: () => isFullSourceFile,\n  isFunctionBlock: () => isFunctionBlock,\n  isFunctionBody: () => isFunctionBody,\n  isFunctionDeclaration: () => isFunctionDeclaration,\n  isFunctionExpression: () => isFunctionExpression,\n  isFunctionExpressionOrArrowFunction: () => isFunctionExpressionOrArrowFunction,\n  isFunctionLike: () => isFunctionLike,\n  isFunctionLikeDeclaration: () => isFunctionLikeDeclaration,\n  isFunctionLikeKind: () => isFunctionLikeKind,\n  isFunctionLikeOrClassStaticBlockDeclaration: () => isFunctionLikeOrClassStaticBlockDeclaration,\n  isFunctionOrConstructorTypeNode: () => isFunctionOrConstructorTypeNode,\n  isFunctionOrModuleBlock: () => isFunctionOrModuleBlock,\n  isFunctionSymbol: () => isFunctionSymbol,\n  isFunctionTypeNode: () => isFunctionTypeNode,\n  isGeneratedIdentifier: () => isGeneratedIdentifier,\n  isGeneratedPrivateIdentifier: () => isGeneratedPrivateIdentifier,\n  isGetAccessor: () => isGetAccessor,\n  isGetAccessorDeclaration: () => isGetAccessorDeclaration,\n  isGetOrSetAccessorDeclaration: () => isGetOrSetAccessorDeclaration,\n  isGlobalScopeAugmentation: () => isGlobalScopeAugmentation,\n  isGlobalSourceFile: () => isGlobalSourceFile,\n  isGrammarError: () => isGrammarError,\n  isHeritageClause: () => isHeritageClause,\n  isHoistedFunction: () => isHoistedFunction,\n  isHoistedVariableStatement: () => isHoistedVariableStatement,\n  isIdentifier: () => isIdentifier,\n  isIdentifierANonContextualKeyword: () => isIdentifierANonContextualKeyword,\n  isIdentifierName: () => isIdentifierName,\n  isIdentifierOrThisTypeNode: () => isIdentifierOrThisTypeNode,\n  isIdentifierPart: () => isIdentifierPart,\n  isIdentifierStart: () => isIdentifierStart,\n  isIdentifierText: () => isIdentifierText,\n  isIdentifierTypePredicate: () => isIdentifierTypePredicate,\n  isIdentifierTypeReference: () => isIdentifierTypeReference,\n  isIfStatement: () => isIfStatement,\n  isIgnoredFileFromWildCardWatching: () => isIgnoredFileFromWildCardWatching,\n  isImplicitGlob: () => isImplicitGlob,\n  isImportAttribute: () => isImportAttribute,\n  isImportAttributeName: () => isImportAttributeName,\n  isImportAttributes: () => isImportAttributes,\n  isImportCall: () => isImportCall,\n  isImportClause: () => isImportClause,\n  isImportDeclaration: () => isImportDeclaration,\n  isImportEqualsDeclaration: () => isImportEqualsDeclaration,\n  isImportKeyword: () => isImportKeyword,\n  isImportMeta: () => isImportMeta,\n  isImportOrExportSpecifier: () => isImportOrExportSpecifier,\n  isImportOrExportSpecifierName: () => isImportOrExportSpecifierName,\n  isImportSpecifier: () => isImportSpecifier,\n  isImportTypeAssertionContainer: () => isImportTypeAssertionContainer,\n  isImportTypeNode: () => isImportTypeNode,\n  isImportable: () => isImportable,\n  isInComment: () => isInComment,\n  isInCompoundLikeAssignment: () => isInCompoundLikeAssignment,\n  isInExpressionContext: () => isInExpressionContext,\n  isInJSDoc: () => isInJSDoc,\n  isInJSFile: () => isInJSFile,\n  isInJSXText: () => isInJSXText,\n  isInJsonFile: () => isInJsonFile,\n  isInNonReferenceComment: () => isInNonReferenceComment,\n  isInReferenceComment: () => isInReferenceComment,\n  isInRightSideOfInternalImportEqualsDeclaration: () => isInRightSideOfInternalImportEqualsDeclaration,\n  isInString: () => isInString,\n  isInTemplateString: () => isInTemplateString,\n  isInTopLevelContext: () => isInTopLevelContext,\n  isInTypeQuery: () => isInTypeQuery,\n  isIncrementalBuildInfo: () => isIncrementalBuildInfo,\n  isIncrementalBundleEmitBuildInfo: () => isIncrementalBundleEmitBuildInfo,\n  isIncrementalCompilation: () => isIncrementalCompilation,\n  isIndexSignatureDeclaration: () => isIndexSignatureDeclaration,\n  isIndexedAccessTypeNode: () => isIndexedAccessTypeNode,\n  isInferTypeNode: () => isInferTypeNode,\n  isInfinityOrNaNString: () => isInfinityOrNaNString,\n  isInitializedProperty: () => isInitializedProperty,\n  isInitializedVariable: () => isInitializedVariable,\n  isInsideJsxElement: () => isInsideJsxElement,\n  isInsideJsxElementOrAttribute: () => isInsideJsxElementOrAttribute,\n  isInsideNodeModules: () => isInsideNodeModules,\n  isInsideTemplateLiteral: () => isInsideTemplateLiteral,\n  isInstanceOfExpression: () => isInstanceOfExpression,\n  isInstantiatedModule: () => isInstantiatedModule,\n  isInterfaceDeclaration: () => isInterfaceDeclaration,\n  isInternalDeclaration: () => isInternalDeclaration,\n  isInternalModuleImportEqualsDeclaration: () => isInternalModuleImportEqualsDeclaration,\n  isInternalName: () => isInternalName,\n  isIntersectionTypeNode: () => isIntersectionTypeNode,\n  isIntrinsicJsxName: () => isIntrinsicJsxName,\n  isIterationStatement: () => isIterationStatement,\n  isJSDoc: () => isJSDoc,\n  isJSDocAllType: () => isJSDocAllType,\n  isJSDocAugmentsTag: () => isJSDocAugmentsTag,\n  isJSDocAuthorTag: () => isJSDocAuthorTag,\n  isJSDocCallbackTag: () => isJSDocCallbackTag,\n  isJSDocClassTag: () => isJSDocClassTag,\n  isJSDocCommentContainingNode: () => isJSDocCommentContainingNode,\n  isJSDocConstructSignature: () => isJSDocConstructSignature,\n  isJSDocDeprecatedTag: () => isJSDocDeprecatedTag,\n  isJSDocEnumTag: () => isJSDocEnumTag,\n  isJSDocFunctionType: () => isJSDocFunctionType,\n  isJSDocImplementsTag: () => isJSDocImplementsTag,\n  isJSDocImportTag: () => isJSDocImportTag,\n  isJSDocIndexSignature: () => isJSDocIndexSignature,\n  isJSDocLikeText: () => isJSDocLikeText,\n  isJSDocLink: () => isJSDocLink,\n  isJSDocLinkCode: () => isJSDocLinkCode,\n  isJSDocLinkLike: () => isJSDocLinkLike,\n  isJSDocLinkPlain: () => isJSDocLinkPlain,\n  isJSDocMemberName: () => isJSDocMemberName,\n  isJSDocNameReference: () => isJSDocNameReference,\n  isJSDocNamepathType: () => isJSDocNamepathType,\n  isJSDocNamespaceBody: () => isJSDocNamespaceBody,\n  isJSDocNode: () => isJSDocNode,\n  isJSDocNonNullableType: () => isJSDocNonNullableType,\n  isJSDocNullableType: () => isJSDocNullableType,\n  isJSDocOptionalParameter: () => isJSDocOptionalParameter,\n  isJSDocOptionalType: () => isJSDocOptionalType,\n  isJSDocOverloadTag: () => isJSDocOverloadTag,\n  isJSDocOverrideTag: () => isJSDocOverrideTag,\n  isJSDocParameterTag: () => isJSDocParameterTag,\n  isJSDocPrivateTag: () => isJSDocPrivateTag,\n  isJSDocPropertyLikeTag: () => isJSDocPropertyLikeTag,\n  isJSDocPropertyTag: () => isJSDocPropertyTag,\n  isJSDocProtectedTag: () => isJSDocProtectedTag,\n  isJSDocPublicTag: () => isJSDocPublicTag,\n  isJSDocReadonlyTag: () => isJSDocReadonlyTag,\n  isJSDocReturnTag: () => isJSDocReturnTag,\n  isJSDocSatisfiesExpression: () => isJSDocSatisfiesExpression,\n  isJSDocSatisfiesTag: () => isJSDocSatisfiesTag,\n  isJSDocSeeTag: () => isJSDocSeeTag,\n  isJSDocSignature: () => isJSDocSignature,\n  isJSDocTag: () => isJSDocTag,\n  isJSDocTemplateTag: () => isJSDocTemplateTag,\n  isJSDocThisTag: () => isJSDocThisTag,\n  isJSDocThrowsTag: () => isJSDocThrowsTag,\n  isJSDocTypeAlias: () => isJSDocTypeAlias,\n  isJSDocTypeAssertion: () => isJSDocTypeAssertion,\n  isJSDocTypeExpression: () => isJSDocTypeExpression,\n  isJSDocTypeLiteral: () => isJSDocTypeLiteral,\n  isJSDocTypeTag: () => isJSDocTypeTag,\n  isJSDocTypedefTag: () => isJSDocTypedefTag,\n  isJSDocUnknownTag: () => isJSDocUnknownTag,\n  isJSDocUnknownType: () => isJSDocUnknownType,\n  isJSDocVariadicType: () => isJSDocVariadicType,\n  isJSXTagName: () => isJSXTagName,\n  isJsonEqual: () => isJsonEqual,\n  isJsonSourceFile: () => isJsonSourceFile,\n  isJsxAttribute: () => isJsxAttribute,\n  isJsxAttributeLike: () => isJsxAttributeLike,\n  isJsxAttributeName: () => isJsxAttributeName,\n  isJsxAttributes: () => isJsxAttributes,\n  isJsxCallLike: () => isJsxCallLike,\n  isJsxChild: () => isJsxChild,\n  isJsxClosingElement: () => isJsxClosingElement,\n  isJsxClosingFragment: () => isJsxClosingFragment,\n  isJsxElement: () => isJsxElement,\n  isJsxExpression: () => isJsxExpression,\n  isJsxFragment: () => isJsxFragment,\n  isJsxNamespacedName: () => isJsxNamespacedName,\n  isJsxOpeningElement: () => isJsxOpeningElement,\n  isJsxOpeningFragment: () => isJsxOpeningFragment,\n  isJsxOpeningLikeElement: () => isJsxOpeningLikeElement,\n  isJsxOpeningLikeElementTagName: () => isJsxOpeningLikeElementTagName,\n  isJsxSelfClosingElement: () => isJsxSelfClosingElement,\n  isJsxSpreadAttribute: () => isJsxSpreadAttribute,\n  isJsxTagNameExpression: () => isJsxTagNameExpression,\n  isJsxText: () => isJsxText,\n  isJumpStatementTarget: () => isJumpStatementTarget,\n  isKeyword: () => isKeyword,\n  isKeywordOrPunctuation: () => isKeywordOrPunctuation,\n  isKnownSymbol: () => isKnownSymbol,\n  isLabelName: () => isLabelName,\n  isLabelOfLabeledStatement: () => isLabelOfLabeledStatement,\n  isLabeledStatement: () => isLabeledStatement,\n  isLateVisibilityPaintedStatement: () => isLateVisibilityPaintedStatement,\n  isLeftHandSideExpression: () => isLeftHandSideExpression,\n  isLet: () => isLet,\n  isLineBreak: () => isLineBreak,\n  isLiteralComputedPropertyDeclarationName: () => isLiteralComputedPropertyDeclarationName,\n  isLiteralExpression: () => isLiteralExpression,\n  isLiteralExpressionOfObject: () => isLiteralExpressionOfObject,\n  isLiteralImportTypeNode: () => isLiteralImportTypeNode,\n  isLiteralKind: () => isLiteralKind,\n  isLiteralNameOfPropertyDeclarationOrIndexAccess: () => isLiteralNameOfPropertyDeclarationOrIndexAccess,\n  isLiteralTypeLiteral: () => isLiteralTypeLiteral,\n  isLiteralTypeNode: () => isLiteralTypeNode,\n  isLocalName: () => isLocalName,\n  isLogicalOperator: () => isLogicalOperator,\n  isLogicalOrCoalescingAssignmentExpression: () => isLogicalOrCoalescingAssignmentExpression,\n  isLogicalOrCoalescingAssignmentOperator: () => isLogicalOrCoalescingAssignmentOperator,\n  isLogicalOrCoalescingBinaryExpression: () => isLogicalOrCoalescingBinaryExpression,\n  isLogicalOrCoalescingBinaryOperator: () => isLogicalOrCoalescingBinaryOperator,\n  isMappedTypeNode: () => isMappedTypeNode,\n  isMemberName: () => isMemberName,\n  isMetaProperty: () => isMetaProperty,\n  isMethodDeclaration: () => isMethodDeclaration,\n  isMethodOrAccessor: () => isMethodOrAccessor,\n  isMethodSignature: () => isMethodSignature,\n  isMinusToken: () => isMinusToken,\n  isMissingDeclaration: () => isMissingDeclaration,\n  isMissingPackageJsonInfo: () => isMissingPackageJsonInfo,\n  isModifier: () => isModifier,\n  isModifierKind: () => isModifierKind,\n  isModifierLike: () => isModifierLike,\n  isModuleAugmentationExternal: () => isModuleAugmentationExternal,\n  isModuleBlock: () => isModuleBlock,\n  isModuleBody: () => isModuleBody,\n  isModuleDeclaration: () => isModuleDeclaration,\n  isModuleExportName: () => isModuleExportName,\n  isModuleExportsAccessExpression: () => isModuleExportsAccessExpression,\n  isModuleIdentifier: () => isModuleIdentifier,\n  isModuleName: () => isModuleName,\n  isModuleOrEnumDeclaration: () => isModuleOrEnumDeclaration,\n  isModuleReference: () => isModuleReference,\n  isModuleSpecifierLike: () => isModuleSpecifierLike,\n  isModuleWithStringLiteralName: () => isModuleWithStringLiteralName,\n  isNameOfFunctionDeclaration: () => isNameOfFunctionDeclaration,\n  isNameOfModuleDeclaration: () => isNameOfModuleDeclaration,\n  isNamedDeclaration: () => isNamedDeclaration,\n  isNamedEvaluation: () => isNamedEvaluation,\n  isNamedEvaluationSource: () => isNamedEvaluationSource,\n  isNamedExportBindings: () => isNamedExportBindings,\n  isNamedExports: () => isNamedExports,\n  isNamedImportBindings: () => isNamedImportBindings,\n  isNamedImports: () => isNamedImports,\n  isNamedImportsOrExports: () => isNamedImportsOrExports,\n  isNamedTupleMember: () => isNamedTupleMember,\n  isNamespaceBody: () => isNamespaceBody,\n  isNamespaceExport: () => isNamespaceExport,\n  isNamespaceExportDeclaration: () => isNamespaceExportDeclaration,\n  isNamespaceImport: () => isNamespaceImport,\n  isNamespaceReexportDeclaration: () => isNamespaceReexportDeclaration,\n  isNewExpression: () => isNewExpression,\n  isNewExpressionTarget: () => isNewExpressionTarget,\n  isNewScopeNode: () => isNewScopeNode,\n  isNoSubstitutionTemplateLiteral: () => isNoSubstitutionTemplateLiteral,\n  isNodeArray: () => isNodeArray,\n  isNodeArrayMultiLine: () => isNodeArrayMultiLine,\n  isNodeDescendantOf: () => isNodeDescendantOf,\n  isNodeKind: () => isNodeKind,\n  isNodeLikeSystem: () => isNodeLikeSystem,\n  isNodeModulesDirectory: () => isNodeModulesDirectory,\n  isNodeWithPossibleHoistedDeclaration: () => isNodeWithPossibleHoistedDeclaration,\n  isNonContextualKeyword: () => isNonContextualKeyword,\n  isNonGlobalAmbientModule: () => isNonGlobalAmbientModule,\n  isNonNullAccess: () => isNonNullAccess,\n  isNonNullChain: () => isNonNullChain,\n  isNonNullExpression: () => isNonNullExpression,\n  isNonStaticMethodOrAccessorWithPrivateName: () => isNonStaticMethodOrAccessorWithPrivateName,\n  isNotEmittedStatement: () => isNotEmittedStatement,\n  isNullishCoalesce: () => isNullishCoalesce,\n  isNumber: () => isNumber,\n  isNumericLiteral: () => isNumericLiteral,\n  isNumericLiteralName: () => isNumericLiteralName,\n  isObjectBindingElementWithoutPropertyName: () => isObjectBindingElementWithoutPropertyName,\n  isObjectBindingOrAssignmentElement: () => isObjectBindingOrAssignmentElement,\n  isObjectBindingOrAssignmentPattern: () => isObjectBindingOrAssignmentPattern,\n  isObjectBindingPattern: () => isObjectBindingPattern,\n  isObjectLiteralElement: () => isObjectLiteralElement,\n  isObjectLiteralElementLike: () => isObjectLiteralElementLike,\n  isObjectLiteralExpression: () => isObjectLiteralExpression,\n  isObjectLiteralMethod: () => isObjectLiteralMethod,\n  isObjectLiteralOrClassExpressionMethodOrAccessor: () => isObjectLiteralOrClassExpressionMethodOrAccessor,\n  isObjectTypeDeclaration: () => isObjectTypeDeclaration,\n  isOmittedExpression: () => isOmittedExpression,\n  isOptionalChain: () => isOptionalChain,\n  isOptionalChainRoot: () => isOptionalChainRoot,\n  isOptionalDeclaration: () => isOptionalDeclaration,\n  isOptionalJSDocPropertyLikeTag: () => isOptionalJSDocPropertyLikeTag,\n  isOptionalTypeNode: () => isOptionalTypeNode,\n  isOuterExpression: () => isOuterExpression,\n  isOutermostOptionalChain: () => isOutermostOptionalChain,\n  isOverrideModifier: () => isOverrideModifier,\n  isPackageJsonInfo: () => isPackageJsonInfo,\n  isPackedArrayLiteral: () => isPackedArrayLiteral,\n  isParameter: () => isParameter,\n  isParameterPropertyDeclaration: () => isParameterPropertyDeclaration,\n  isParameterPropertyModifier: () => isParameterPropertyModifier,\n  isParenthesizedExpression: () => isParenthesizedExpression,\n  isParenthesizedTypeNode: () => isParenthesizedTypeNode,\n  isParseTreeNode: () => isParseTreeNode,\n  isPartOfParameterDeclaration: () => isPartOfParameterDeclaration,\n  isPartOfTypeNode: () => isPartOfTypeNode,\n  isPartOfTypeOnlyImportOrExportDeclaration: () => isPartOfTypeOnlyImportOrExportDeclaration,\n  isPartOfTypeQuery: () => isPartOfTypeQuery,\n  isPartiallyEmittedExpression: () => isPartiallyEmittedExpression,\n  isPatternMatch: () => isPatternMatch,\n  isPinnedComment: () => isPinnedComment,\n  isPlainJsFile: () => isPlainJsFile,\n  isPlusToken: () => isPlusToken,\n  isPossiblyTypeArgumentPosition: () => isPossiblyTypeArgumentPosition,\n  isPostfixUnaryExpression: () => isPostfixUnaryExpression,\n  isPrefixUnaryExpression: () => isPrefixUnaryExpression,\n  isPrimitiveLiteralValue: () => isPrimitiveLiteralValue,\n  isPrivateIdentifier: () => isPrivateIdentifier,\n  isPrivateIdentifierClassElementDeclaration: () => isPrivateIdentifierClassElementDeclaration,\n  isPrivateIdentifierPropertyAccessExpression: () => isPrivateIdentifierPropertyAccessExpression,\n  isPrivateIdentifierSymbol: () => isPrivateIdentifierSymbol,\n  isProgramUptoDate: () => isProgramUptoDate,\n  isPrologueDirective: () => isPrologueDirective,\n  isPropertyAccessChain: () => isPropertyAccessChain,\n  isPropertyAccessEntityNameExpression: () => isPropertyAccessEntityNameExpression,\n  isPropertyAccessExpression: () => isPropertyAccessExpression,\n  isPropertyAccessOrQualifiedName: () => isPropertyAccessOrQualifiedName,\n  isPropertyAccessOrQualifiedNameOrImportTypeNode: () => isPropertyAccessOrQualifiedNameOrImportTypeNode,\n  isPropertyAssignment: () => isPropertyAssignment,\n  isPropertyDeclaration: () => isPropertyDeclaration,\n  isPropertyName: () => isPropertyName,\n  isPropertyNameLiteral: () => isPropertyNameLiteral,\n  isPropertySignature: () => isPropertySignature,\n  isPrototypeAccess: () => isPrototypeAccess,\n  isPrototypePropertyAssignment: () => isPrototypePropertyAssignment,\n  isPunctuation: () => isPunctuation,\n  isPushOrUnshiftIdentifier: () => isPushOrUnshiftIdentifier,\n  isQualifiedName: () => isQualifiedName,\n  isQuestionDotToken: () => isQuestionDotToken,\n  isQuestionOrExclamationToken: () => isQuestionOrExclamationToken,\n  isQuestionOrPlusOrMinusToken: () => isQuestionOrPlusOrMinusToken,\n  isQuestionToken: () => isQuestionToken,\n  isReadonlyKeyword: () => isReadonlyKeyword,\n  isReadonlyKeywordOrPlusOrMinusToken: () => isReadonlyKeywordOrPlusOrMinusToken,\n  isRecognizedTripleSlashComment: () => isRecognizedTripleSlashComment,\n  isReferenceFileLocation: () => isReferenceFileLocation,\n  isReferencedFile: () => isReferencedFile,\n  isRegularExpressionLiteral: () => isRegularExpressionLiteral,\n  isRequireCall: () => isRequireCall,\n  isRequireVariableStatement: () => isRequireVariableStatement,\n  isRestParameter: () => isRestParameter,\n  isRestTypeNode: () => isRestTypeNode,\n  isReturnStatement: () => isReturnStatement,\n  isReturnStatementWithFixablePromiseHandler: () => isReturnStatementWithFixablePromiseHandler,\n  isRightSideOfAccessExpression: () => isRightSideOfAccessExpression,\n  isRightSideOfInstanceofExpression: () => isRightSideOfInstanceofExpression,\n  isRightSideOfPropertyAccess: () => isRightSideOfPropertyAccess,\n  isRightSideOfQualifiedName: () => isRightSideOfQualifiedName,\n  isRightSideOfQualifiedNameOrPropertyAccess: () => isRightSideOfQualifiedNameOrPropertyAccess,\n  isRightSideOfQualifiedNameOrPropertyAccessOrJSDocMemberName: () => isRightSideOfQualifiedNameOrPropertyAccessOrJSDocMemberName,\n  isRootedDiskPath: () => isRootedDiskPath,\n  isSameEntityName: () => isSameEntityName,\n  isSatisfiesExpression: () => isSatisfiesExpression,\n  isSemicolonClassElement: () => isSemicolonClassElement,\n  isSetAccessor: () => isSetAccessor,\n  isSetAccessorDeclaration: () => isSetAccessorDeclaration,\n  isShiftOperatorOrHigher: () => isShiftOperatorOrHigher,\n  isShorthandAmbientModuleSymbol: () => isShorthandAmbientModuleSymbol,\n  isShorthandPropertyAssignment: () => isShorthandPropertyAssignment,\n  isSideEffectImport: () => isSideEffectImport,\n  isSignedNumericLiteral: () => isSignedNumericLiteral,\n  isSimpleCopiableExpression: () => isSimpleCopiableExpression,\n  isSimpleInlineableExpression: () => isSimpleInlineableExpression,\n  isSimpleParameterList: () => isSimpleParameterList,\n  isSingleOrDoubleQuote: () => isSingleOrDoubleQuote,\n  isSolutionConfig: () => isSolutionConfig,\n  isSourceElement: () => isSourceElement,\n  isSourceFile: () => isSourceFile,\n  isSourceFileFromLibrary: () => isSourceFileFromLibrary,\n  isSourceFileJS: () => isSourceFileJS,\n  isSourceFileNotJson: () => isSourceFileNotJson,\n  isSourceMapping: () => isSourceMapping,\n  isSpecialPropertyDeclaration: () => isSpecialPropertyDeclaration,\n  isSpreadAssignment: () => isSpreadAssignment,\n  isSpreadElement: () => isSpreadElement,\n  isStatement: () => isStatement,\n  isStatementButNotDeclaration: () => isStatementButNotDeclaration,\n  isStatementOrBlock: () => isStatementOrBlock,\n  isStatementWithLocals: () => isStatementWithLocals,\n  isStatic: () => isStatic,\n  isStaticModifier: () => isStaticModifier,\n  isString: () => isString,\n  isStringANonContextualKeyword: () => isStringANonContextualKeyword,\n  isStringAndEmptyAnonymousObjectIntersection: () => isStringAndEmptyAnonymousObjectIntersection,\n  isStringDoubleQuoted: () => isStringDoubleQuoted,\n  isStringLiteral: () => isStringLiteral,\n  isStringLiteralLike: () => isStringLiteralLike,\n  isStringLiteralOrJsxExpression: () => isStringLiteralOrJsxExpression,\n  isStringLiteralOrTemplate: () => isStringLiteralOrTemplate,\n  isStringOrNumericLiteralLike: () => isStringOrNumericLiteralLike,\n  isStringOrRegularExpressionOrTemplateLiteral: () => isStringOrRegularExpressionOrTemplateLiteral,\n  isStringTextContainingNode: () => isStringTextContainingNode,\n  isSuperCall: () => isSuperCall,\n  isSuperKeyword: () => isSuperKeyword,\n  isSuperProperty: () => isSuperProperty,\n  isSupportedSourceFileName: () => isSupportedSourceFileName,\n  isSwitchStatement: () => isSwitchStatement,\n  isSyntaxList: () => isSyntaxList,\n  isSyntheticExpression: () => isSyntheticExpression,\n  isSyntheticReference: () => isSyntheticReference,\n  isTagName: () => isTagName,\n  isTaggedTemplateExpression: () => isTaggedTemplateExpression,\n  isTaggedTemplateTag: () => isTaggedTemplateTag,\n  isTemplateExpression: () => isTemplateExpression,\n  isTemplateHead: () => isTemplateHead,\n  isTemplateLiteral: () => isTemplateLiteral,\n  isTemplateLiteralKind: () => isTemplateLiteralKind,\n  isTemplateLiteralToken: () => isTemplateLiteralToken,\n  isTemplateLiteralTypeNode: () => isTemplateLiteralTypeNode,\n  isTemplateLiteralTypeSpan: () => isTemplateLiteralTypeSpan,\n  isTemplateMiddle: () => isTemplateMiddle,\n  isTemplateMiddleOrTemplateTail: () => isTemplateMiddleOrTemplateTail,\n  isTemplateSpan: () => isTemplateSpan,\n  isTemplateTail: () => isTemplateTail,\n  isTextWhiteSpaceLike: () => isTextWhiteSpaceLike,\n  isThis: () => isThis,\n  isThisContainerOrFunctionBlock: () => isThisContainerOrFunctionBlock,\n  isThisIdentifier: () => isThisIdentifier,\n  isThisInTypeQuery: () => isThisInTypeQuery,\n  isThisInitializedDeclaration: () => isThisInitializedDeclaration,\n  isThisInitializedObjectBindingExpression: () => isThisInitializedObjectBindingExpression,\n  isThisProperty: () => isThisProperty,\n  isThisTypeNode: () => isThisTypeNode,\n  isThisTypeParameter: () => isThisTypeParameter,\n  isThisTypePredicate: () => isThisTypePredicate,\n  isThrowStatement: () => isThrowStatement,\n  isToken: () => isToken,\n  isTokenKind: () => isTokenKind,\n  isTraceEnabled: () => isTraceEnabled,\n  isTransientSymbol: () => isTransientSymbol,\n  isTrivia: () => isTrivia,\n  isTryStatement: () => isTryStatement,\n  isTupleTypeNode: () => isTupleTypeNode,\n  isTypeAlias: () => isTypeAlias,\n  isTypeAliasDeclaration: () => isTypeAliasDeclaration,\n  isTypeAssertionExpression: () => isTypeAssertionExpression,\n  isTypeDeclaration: () => isTypeDeclaration,\n  isTypeElement: () => isTypeElement,\n  isTypeKeyword: () => isTypeKeyword,\n  isTypeKeywordTokenOrIdentifier: () => isTypeKeywordTokenOrIdentifier,\n  isTypeLiteralNode: () => isTypeLiteralNode,\n  isTypeNode: () => isTypeNode,\n  isTypeNodeKind: () => isTypeNodeKind,\n  isTypeOfExpression: () => isTypeOfExpression,\n  isTypeOnlyExportDeclaration: () => isTypeOnlyExportDeclaration,\n  isTypeOnlyImportDeclaration: () => isTypeOnlyImportDeclaration,\n  isTypeOnlyImportOrExportDeclaration: () => isTypeOnlyImportOrExportDeclaration,\n  isTypeOperatorNode: () => isTypeOperatorNode,\n  isTypeParameterDeclaration: () => isTypeParameterDeclaration,\n  isTypePredicateNode: () => isTypePredicateNode,\n  isTypeQueryNode: () => isTypeQueryNode,\n  isTypeReferenceNode: () => isTypeReferenceNode,\n  isTypeReferenceType: () => isTypeReferenceType,\n  isTypeUsableAsPropertyName: () => isTypeUsableAsPropertyName,\n  isUMDExportSymbol: () => isUMDExportSymbol,\n  isUnaryExpression: () => isUnaryExpression,\n  isUnaryExpressionWithWrite: () => isUnaryExpressionWithWrite,\n  isUnicodeIdentifierStart: () => isUnicodeIdentifierStart,\n  isUnionTypeNode: () => isUnionTypeNode,\n  isUrl: () => isUrl,\n  isValidBigIntString: () => isValidBigIntString,\n  isValidESSymbolDeclaration: () => isValidESSymbolDeclaration,\n  isValidTypeOnlyAliasUseSite: () => isValidTypeOnlyAliasUseSite,\n  isValueSignatureDeclaration: () => isValueSignatureDeclaration,\n  isVarAwaitUsing: () => isVarAwaitUsing,\n  isVarConst: () => isVarConst,\n  isVarConstLike: () => isVarConstLike,\n  isVarUsing: () => isVarUsing,\n  isVariableDeclaration: () => isVariableDeclaration,\n  isVariableDeclarationInVariableStatement: () => isVariableDeclarationInVariableStatement,\n  isVariableDeclarationInitializedToBareOrAccessedRequire: () => isVariableDeclarationInitializedToBareOrAccessedRequire,\n  isVariableDeclarationInitializedToRequire: () => isVariableDeclarationInitializedToRequire,\n  isVariableDeclarationList: () => isVariableDeclarationList,\n  isVariableLike: () => isVariableLike,\n  isVariableStatement: () => isVariableStatement,\n  isVoidExpression: () => isVoidExpression,\n  isWatchSet: () => isWatchSet,\n  isWhileStatement: () => isWhileStatement,\n  isWhiteSpaceLike: () => isWhiteSpaceLike,\n  isWhiteSpaceSingleLine: () => isWhiteSpaceSingleLine,\n  isWithStatement: () => isWithStatement,\n  isWriteAccess: () => isWriteAccess,\n  isWriteOnlyAccess: () => isWriteOnlyAccess,\n  isYieldExpression: () => isYieldExpression,\n  jsxModeNeedsExplicitImport: () => jsxModeNeedsExplicitImport,\n  keywordPart: () => keywordPart,\n  last: () => last,\n  lastOrUndefined: () => lastOrUndefined,\n  length: () => length,\n  libMap: () => libMap,\n  libs: () => libs,\n  lineBreakPart: () => lineBreakPart,\n  loadModuleFromGlobalCache: () => loadModuleFromGlobalCache,\n  loadWithModeAwareCache: () => loadWithModeAwareCache,\n  makeIdentifierFromModuleName: () => makeIdentifierFromModuleName,\n  makeImport: () => makeImport,\n  makeStringLiteral: () => makeStringLiteral,\n  mangleScopedPackageName: () => mangleScopedPackageName,\n  map: () => map,\n  mapAllOrFail: () => mapAllOrFail,\n  mapDefined: () => mapDefined,\n  mapDefinedIterator: () => mapDefinedIterator,\n  mapEntries: () => mapEntries,\n  mapIterator: () => mapIterator,\n  mapOneOrMany: () => mapOneOrMany,\n  mapToDisplayParts: () => mapToDisplayParts,\n  matchFiles: () => matchFiles,\n  matchPatternOrExact: () => matchPatternOrExact,\n  matchedText: () => matchedText,\n  matchesExclude: () => matchesExclude,\n  matchesExcludeWorker: () => matchesExcludeWorker,\n  maxBy: () => maxBy,\n  maybeBind: () => maybeBind,\n  maybeSetLocalizedDiagnosticMessages: () => maybeSetLocalizedDiagnosticMessages,\n  memoize: () => memoize,\n  memoizeOne: () => memoizeOne,\n  min: () => min,\n  minAndMax: () => minAndMax,\n  missingFileModifiedTime: () => missingFileModifiedTime,\n  modifierToFlag: () => modifierToFlag,\n  modifiersToFlags: () => modifiersToFlags,\n  moduleExportNameIsDefault: () => moduleExportNameIsDefault,\n  moduleExportNameTextEscaped: () => moduleExportNameTextEscaped,\n  moduleExportNameTextUnescaped: () => moduleExportNameTextUnescaped,\n  moduleOptionDeclaration: () => moduleOptionDeclaration,\n  moduleResolutionIsEqualTo: () => moduleResolutionIsEqualTo,\n  moduleResolutionNameAndModeGetter: () => moduleResolutionNameAndModeGetter,\n  moduleResolutionOptionDeclarations: () => moduleResolutionOptionDeclarations,\n  moduleResolutionSupportsPackageJsonExportsAndImports: () => moduleResolutionSupportsPackageJsonExportsAndImports,\n  moduleResolutionUsesNodeModules: () => moduleResolutionUsesNodeModules,\n  moduleSpecifierToValidIdentifier: () => moduleSpecifierToValidIdentifier,\n  moduleSpecifiers: () => ts_moduleSpecifiers_exports,\n  moduleSupportsImportAttributes: () => moduleSupportsImportAttributes,\n  moduleSymbolToValidIdentifier: () => moduleSymbolToValidIdentifier,\n  moveEmitHelpers: () => moveEmitHelpers,\n  moveRangeEnd: () => moveRangeEnd,\n  moveRangePastDecorators: () => moveRangePastDecorators,\n  moveRangePastModifiers: () => moveRangePastModifiers,\n  moveRangePos: () => moveRangePos,\n  moveSyntheticComments: () => moveSyntheticComments,\n  mutateMap: () => mutateMap,\n  mutateMapSkippingNewValues: () => mutateMapSkippingNewValues,\n  needsParentheses: () => needsParentheses,\n  needsScopeMarker: () => needsScopeMarker,\n  newCaseClauseTracker: () => newCaseClauseTracker,\n  newPrivateEnvironment: () => newPrivateEnvironment,\n  noEmitNotification: () => noEmitNotification,\n  noEmitSubstitution: () => noEmitSubstitution,\n  noTransformers: () => noTransformers,\n  noTruncationMaximumTruncationLength: () => noTruncationMaximumTruncationLength,\n  nodeCanBeDecorated: () => nodeCanBeDecorated,\n  nodeCoreModules: () => nodeCoreModules,\n  nodeHasName: () => nodeHasName,\n  nodeIsDecorated: () => nodeIsDecorated,\n  nodeIsMissing: () => nodeIsMissing,\n  nodeIsPresent: () => nodeIsPresent,\n  nodeIsSynthesized: () => nodeIsSynthesized,\n  nodeModuleNameResolver: () => nodeModuleNameResolver,\n  nodeModulesPathPart: () => nodeModulesPathPart,\n  nodeNextJsonConfigResolver: () => nodeNextJsonConfigResolver,\n  nodeOrChildIsDecorated: () => nodeOrChildIsDecorated,\n  nodeOverlapsWithStartEnd: () => nodeOverlapsWithStartEnd,\n  nodePosToString: () => nodePosToString,\n  nodeSeenTracker: () => nodeSeenTracker,\n  nodeStartsNewLexicalEnvironment: () => nodeStartsNewLexicalEnvironment,\n  noop: () => noop,\n  noopFileWatcher: () => noopFileWatcher,\n  normalizePath: () => normalizePath,\n  normalizeSlashes: () => normalizeSlashes,\n  normalizeSpans: () => normalizeSpans,\n  not: () => not,\n  notImplemented: () => notImplemented,\n  notImplementedResolver: () => notImplementedResolver,\n  nullNodeConverters: () => nullNodeConverters,\n  nullParenthesizerRules: () => nullParenthesizerRules,\n  nullTransformationContext: () => nullTransformationContext,\n  objectAllocator: () => objectAllocator,\n  operatorPart: () => operatorPart,\n  optionDeclarations: () => optionDeclarations,\n  optionMapToObject: () => optionMapToObject,\n  optionsAffectingProgramStructure: () => optionsAffectingProgramStructure,\n  optionsForBuild: () => optionsForBuild,\n  optionsForWatch: () => optionsForWatch,\n  optionsHaveChanges: () => optionsHaveChanges,\n  or: () => or,\n  orderedRemoveItem: () => orderedRemoveItem,\n  orderedRemoveItemAt: () => orderedRemoveItemAt,\n  packageIdToPackageName: () => packageIdToPackageName,\n  packageIdToString: () => packageIdToString,\n  parameterIsThisKeyword: () => parameterIsThisKeyword,\n  parameterNamePart: () => parameterNamePart,\n  parseBaseNodeFactory: () => parseBaseNodeFactory,\n  parseBigInt: () => parseBigInt,\n  parseBuildCommand: () => parseBuildCommand,\n  parseCommandLine: () => parseCommandLine,\n  parseCommandLineWorker: () => parseCommandLineWorker,\n  parseConfigFileTextToJson: () => parseConfigFileTextToJson,\n  parseConfigFileWithSystem: () => parseConfigFileWithSystem,\n  parseConfigHostFromCompilerHostLike: () => parseConfigHostFromCompilerHostLike,\n  parseCustomTypeOption: () => parseCustomTypeOption,\n  parseIsolatedEntityName: () => parseIsolatedEntityName,\n  parseIsolatedJSDocComment: () => parseIsolatedJSDocComment,\n  parseJSDocTypeExpressionForTests: () => parseJSDocTypeExpressionForTests,\n  parseJsonConfigFileContent: () => parseJsonConfigFileContent,\n  parseJsonSourceFileConfigFileContent: () => parseJsonSourceFileConfigFileContent,\n  parseJsonText: () => parseJsonText,\n  parseListTypeOption: () => parseListTypeOption,\n  parseNodeFactory: () => parseNodeFactory,\n  parseNodeModuleFromPath: () => parseNodeModuleFromPath,\n  parsePackageName: () => parsePackageName,\n  parsePseudoBigInt: () => parsePseudoBigInt,\n  parseValidBigInt: () => parseValidBigInt,\n  pasteEdits: () => ts_PasteEdits_exports,\n  patchWriteFileEnsuringDirectory: () => patchWriteFileEnsuringDirectory,\n  pathContainsNodeModules: () => pathContainsNodeModules,\n  pathIsAbsolute: () => pathIsAbsolute,\n  pathIsBareSpecifier: () => pathIsBareSpecifier,\n  pathIsRelative: () => pathIsRelative,\n  patternText: () => patternText,\n  performIncrementalCompilation: () => performIncrementalCompilation,\n  performance: () => ts_performance_exports,\n  positionBelongsToNode: () => positionBelongsToNode,\n  positionIsASICandidate: () => positionIsASICandidate,\n  positionIsSynthesized: () => positionIsSynthesized,\n  positionsAreOnSameLine: () => positionsAreOnSameLine,\n  preProcessFile: () => preProcessFile,\n  probablyUsesSemicolons: () => probablyUsesSemicolons,\n  processCommentPragmas: () => processCommentPragmas,\n  processPragmasIntoFields: () => processPragmasIntoFields,\n  processTaggedTemplateExpression: () => processTaggedTemplateExpression,\n  programContainsEsModules: () => programContainsEsModules,\n  programContainsModules: () => programContainsModules,\n  projectReferenceIsEqualTo: () => projectReferenceIsEqualTo,\n  propertyNamePart: () => propertyNamePart,\n  pseudoBigIntToString: () => pseudoBigIntToString,\n  punctuationPart: () => punctuationPart,\n  pushIfUnique: () => pushIfUnique,\n  quote: () => quote,\n  quotePreferenceFromString: () => quotePreferenceFromString,\n  rangeContainsPosition: () => rangeContainsPosition,\n  rangeContainsPositionExclusive: () => rangeContainsPositionExclusive,\n  rangeContainsRange: () => rangeContainsRange,\n  rangeContainsRangeExclusive: () => rangeContainsRangeExclusive,\n  rangeContainsStartEnd: () => rangeContainsStartEnd,\n  rangeEndIsOnSameLineAsRangeStart: () => rangeEndIsOnSameLineAsRangeStart,\n  rangeEndPositionsAreOnSameLine: () => rangeEndPositionsAreOnSameLine,\n  rangeEquals: () => rangeEquals,\n  rangeIsOnSingleLine: () => rangeIsOnSingleLine,\n  rangeOfNode: () => rangeOfNode,\n  rangeOfTypeParameters: () => rangeOfTypeParameters,\n  rangeOverlapsWithStartEnd: () => rangeOverlapsWithStartEnd,\n  rangeStartIsOnSameLineAsRangeEnd: () => rangeStartIsOnSameLineAsRangeEnd,\n  rangeStartPositionsAreOnSameLine: () => rangeStartPositionsAreOnSameLine,\n  readBuilderProgram: () => readBuilderProgram,\n  readConfigFile: () => readConfigFile,\n  readJson: () => readJson,\n  readJsonConfigFile: () => readJsonConfigFile,\n  readJsonOrUndefined: () => readJsonOrUndefined,\n  reduceEachLeadingCommentRange: () => reduceEachLeadingCommentRange,\n  reduceEachTrailingCommentRange: () => reduceEachTrailingCommentRange,\n  reduceLeft: () => reduceLeft,\n  reduceLeftIterator: () => reduceLeftIterator,\n  reducePathComponents: () => reducePathComponents,\n  refactor: () => ts_refactor_exports,\n  regExpEscape: () => regExpEscape,\n  regularExpressionFlagToCharacterCode: () => regularExpressionFlagToCharacterCode,\n  relativeComplement: () => relativeComplement,\n  removeAllComments: () => removeAllComments,\n  removeEmitHelper: () => removeEmitHelper,\n  removeExtension: () => removeExtension,\n  removeFileExtension: () => removeFileExtension,\n  removeIgnoredPath: () => removeIgnoredPath,\n  removeMinAndVersionNumbers: () => removeMinAndVersionNumbers,\n  removePrefix: () => removePrefix,\n  removeSuffix: () => removeSuffix,\n  removeTrailingDirectorySeparator: () => removeTrailingDirectorySeparator,\n  repeatString: () => repeatString,\n  replaceElement: () => replaceElement,\n  replaceFirstStar: () => replaceFirstStar,\n  resolutionExtensionIsTSOrJson: () => resolutionExtensionIsTSOrJson,\n  resolveConfigFileProjectName: () => resolveConfigFileProjectName,\n  resolveJSModule: () => resolveJSModule,\n  resolveLibrary: () => resolveLibrary,\n  resolveModuleName: () => resolveModuleName,\n  resolveModuleNameFromCache: () => resolveModuleNameFromCache,\n  resolvePackageNameToPackageJson: () => resolvePackageNameToPackageJson,\n  resolvePath: () => resolvePath,\n  resolveProjectReferencePath: () => resolveProjectReferencePath,\n  resolveTripleslashReference: () => resolveTripleslashReference,\n  resolveTypeReferenceDirective: () => resolveTypeReferenceDirective,\n  resolvingEmptyArray: () => resolvingEmptyArray,\n  returnFalse: () => returnFalse,\n  returnNoopFileWatcher: () => returnNoopFileWatcher,\n  returnTrue: () => returnTrue,\n  returnUndefined: () => returnUndefined,\n  returnsPromise: () => returnsPromise,\n  rewriteModuleSpecifier: () => rewriteModuleSpecifier,\n  sameFlatMap: () => sameFlatMap,\n  sameMap: () => sameMap,\n  sameMapping: () => sameMapping,\n  scanTokenAtPosition: () => scanTokenAtPosition,\n  scanner: () => scanner,\n  semanticDiagnosticsOptionDeclarations: () => semanticDiagnosticsOptionDeclarations,\n  serializeCompilerOptions: () => serializeCompilerOptions,\n  server: () => ts_server_exports4,\n  servicesVersion: () => servicesVersion,\n  setCommentRange: () => setCommentRange,\n  setConfigFileInOptions: () => setConfigFileInOptions,\n  setConstantValue: () => setConstantValue,\n  setEmitFlags: () => setEmitFlags,\n  setGetSourceFileAsHashVersioned: () => setGetSourceFileAsHashVersioned,\n  setIdentifierAutoGenerate: () => setIdentifierAutoGenerate,\n  setIdentifierGeneratedImportReference: () => setIdentifierGeneratedImportReference,\n  setIdentifierTypeArguments: () => setIdentifierTypeArguments,\n  setInternalEmitFlags: () => setInternalEmitFlags,\n  setLocalizedDiagnosticMessages: () => setLocalizedDiagnosticMessages,\n  setNodeChildren: () => setNodeChildren,\n  setNodeFlags: () => setNodeFlags,\n  setObjectAllocator: () => setObjectAllocator,\n  setOriginalNode: () => setOriginalNode,\n  setParent: () => setParent,\n  setParentRecursive: () => setParentRecursive,\n  setPrivateIdentifier: () => setPrivateIdentifier,\n  setSnippetElement: () => setSnippetElement,\n  setSourceMapRange: () => setSourceMapRange,\n  setStackTraceLimit: () => setStackTraceLimit,\n  setStartsOnNewLine: () => setStartsOnNewLine,\n  setSyntheticLeadingComments: () => setSyntheticLeadingComments,\n  setSyntheticTrailingComments: () => setSyntheticTrailingComments,\n  setSys: () => setSys,\n  setSysLog: () => setSysLog,\n  setTextRange: () => setTextRange,\n  setTextRangeEnd: () => setTextRangeEnd,\n  setTextRangePos: () => setTextRangePos,\n  setTextRangePosEnd: () => setTextRangePosEnd,\n  setTextRangePosWidth: () => setTextRangePosWidth,\n  setTokenSourceMapRange: () => setTokenSourceMapRange,\n  setTypeNode: () => setTypeNode,\n  setUILocale: () => setUILocale,\n  setValueDeclaration: () => setValueDeclaration,\n  shouldAllowImportingTsExtension: () => shouldAllowImportingTsExtension,\n  shouldPreserveConstEnums: () => shouldPreserveConstEnums,\n  shouldRewriteModuleSpecifier: () => shouldRewriteModuleSpecifier,\n  shouldUseUriStyleNodeCoreModules: () => shouldUseUriStyleNodeCoreModules,\n  showModuleSpecifier: () => showModuleSpecifier,\n  signatureHasRestParameter: () => signatureHasRestParameter,\n  signatureToDisplayParts: () => signatureToDisplayParts,\n  single: () => single,\n  singleElementArray: () => singleElementArray,\n  singleIterator: () => singleIterator,\n  singleOrMany: () => singleOrMany,\n  singleOrUndefined: () => singleOrUndefined,\n  skipAlias: () => skipAlias,\n  skipConstraint: () => skipConstraint,\n  skipOuterExpressions: () => skipOuterExpressions,\n  skipParentheses: () => skipParentheses,\n  skipPartiallyEmittedExpressions: () => skipPartiallyEmittedExpressions,\n  skipTrivia: () => skipTrivia,\n  skipTypeChecking: () => skipTypeChecking,\n  skipTypeCheckingIgnoringNoCheck: () => skipTypeCheckingIgnoringNoCheck,\n  skipTypeParentheses: () => skipTypeParentheses,\n  skipWhile: () => skipWhile,\n  sliceAfter: () => sliceAfter,\n  some: () => some,\n  sortAndDeduplicate: () => sortAndDeduplicate,\n  sortAndDeduplicateDiagnostics: () => sortAndDeduplicateDiagnostics,\n  sourceFileAffectingCompilerOptions: () => sourceFileAffectingCompilerOptions,\n  sourceFileMayBeEmitted: () => sourceFileMayBeEmitted,\n  sourceMapCommentRegExp: () => sourceMapCommentRegExp,\n  sourceMapCommentRegExpDontCareLineStart: () => sourceMapCommentRegExpDontCareLineStart,\n  spacePart: () => spacePart,\n  spanMap: () => spanMap,\n  startEndContainsRange: () => startEndContainsRange,\n  startEndOverlapsWithStartEnd: () => startEndOverlapsWithStartEnd,\n  startOnNewLine: () => startOnNewLine,\n  startTracing: () => startTracing,\n  startsWith: () => startsWith,\n  startsWithDirectory: () => startsWithDirectory,\n  startsWithUnderscore: () => startsWithUnderscore,\n  startsWithUseStrict: () => startsWithUseStrict,\n  stringContainsAt: () => stringContainsAt,\n  stringToToken: () => stringToToken,\n  stripQuotes: () => stripQuotes,\n  supportedDeclarationExtensions: () => supportedDeclarationExtensions,\n  supportedJSExtensionsFlat: () => supportedJSExtensionsFlat,\n  supportedLocaleDirectories: () => supportedLocaleDirectories,\n  supportedTSExtensionsFlat: () => supportedTSExtensionsFlat,\n  supportedTSImplementationExtensions: () => supportedTSImplementationExtensions,\n  suppressLeadingAndTrailingTrivia: () => suppressLeadingAndTrailingTrivia,\n  suppressLeadingTrivia: () => suppressLeadingTrivia,\n  suppressTrailingTrivia: () => suppressTrailingTrivia,\n  symbolEscapedNameNoDefault: () => symbolEscapedNameNoDefault,\n  symbolName: () => symbolName,\n  symbolNameNoDefault: () => symbolNameNoDefault,\n  symbolToDisplayParts: () => symbolToDisplayParts,\n  sys: () => sys,\n  sysLog: () => sysLog,\n  tagNamesAreEquivalent: () => tagNamesAreEquivalent,\n  takeWhile: () => takeWhile,\n  targetOptionDeclaration: () => targetOptionDeclaration,\n  targetToLibMap: () => targetToLibMap,\n  testFormatSettings: () => testFormatSettings,\n  textChangeRangeIsUnchanged: () => textChangeRangeIsUnchanged,\n  textChangeRangeNewSpan: () => textChangeRangeNewSpan,\n  textChanges: () => ts_textChanges_exports,\n  textOrKeywordPart: () => textOrKeywordPart,\n  textPart: () => textPart,\n  textRangeContainsPositionInclusive: () => textRangeContainsPositionInclusive,\n  textRangeContainsTextSpan: () => textRangeContainsTextSpan,\n  textRangeIntersectsWithTextSpan: () => textRangeIntersectsWithTextSpan,\n  textSpanContainsPosition: () => textSpanContainsPosition,\n  textSpanContainsTextRange: () => textSpanContainsTextRange,\n  textSpanContainsTextSpan: () => textSpanContainsTextSpan,\n  textSpanEnd: () => textSpanEnd,\n  textSpanIntersection: () => textSpanIntersection,\n  textSpanIntersectsWith: () => textSpanIntersectsWith,\n  textSpanIntersectsWithPosition: () => textSpanIntersectsWithPosition,\n  textSpanIntersectsWithTextSpan: () => textSpanIntersectsWithTextSpan,\n  textSpanIsEmpty: () => textSpanIsEmpty,\n  textSpanOverlap: () => textSpanOverlap,\n  textSpanOverlapsWith: () => textSpanOverlapsWith,\n  textSpansEqual: () => textSpansEqual,\n  textToKeywordObj: () => textToKeywordObj,\n  timestamp: () => timestamp,\n  toArray: () => toArray,\n  toBuilderFileEmit: () => toBuilderFileEmit,\n  toBuilderStateFileInfoForMultiEmit: () => toBuilderStateFileInfoForMultiEmit,\n  toEditorSettings: () => toEditorSettings,\n  toFileNameLowerCase: () => toFileNameLowerCase,\n  toPath: () => toPath,\n  toProgramEmitPending: () => toProgramEmitPending,\n  toSorted: () => toSorted,\n  tokenIsIdentifierOrKeyword: () => tokenIsIdentifierOrKeyword,\n  tokenIsIdentifierOrKeywordOrGreaterThan: () => tokenIsIdentifierOrKeywordOrGreaterThan,\n  tokenToString: () => tokenToString,\n  trace: () => trace,\n  tracing: () => tracing,\n  tracingEnabled: () => tracingEnabled,\n  transferSourceFileChildren: () => transferSourceFileChildren,\n  transform: () => transform,\n  transformClassFields: () => transformClassFields,\n  transformDeclarations: () => transformDeclarations,\n  transformECMAScriptModule: () => transformECMAScriptModule,\n  transformES2015: () => transformES2015,\n  transformES2016: () => transformES2016,\n  transformES2017: () => transformES2017,\n  transformES2018: () => transformES2018,\n  transformES2019: () => transformES2019,\n  transformES2020: () => transformES2020,\n  transformES2021: () => transformES2021,\n  transformESDecorators: () => transformESDecorators,\n  transformESNext: () => transformESNext,\n  transformGenerators: () => transformGenerators,\n  transformImpliedNodeFormatDependentModule: () => transformImpliedNodeFormatDependentModule,\n  transformJsx: () => transformJsx,\n  transformLegacyDecorators: () => transformLegacyDecorators,\n  transformModule: () => transformModule,\n  transformNamedEvaluation: () => transformNamedEvaluation,\n  transformNodes: () => transformNodes,\n  transformSystemModule: () => transformSystemModule,\n  transformTypeScript: () => transformTypeScript,\n  transpile: () => transpile,\n  transpileDeclaration: () => transpileDeclaration,\n  transpileModule: () => transpileModule,\n  transpileOptionValueCompilerOptions: () => transpileOptionValueCompilerOptions,\n  tryAddToSet: () => tryAddToSet,\n  tryAndIgnoreErrors: () => tryAndIgnoreErrors,\n  tryCast: () => tryCast,\n  tryDirectoryExists: () => tryDirectoryExists,\n  tryExtractTSExtension: () => tryExtractTSExtension,\n  tryFileExists: () => tryFileExists,\n  tryGetClassExtendingExpressionWithTypeArguments: () => tryGetClassExtendingExpressionWithTypeArguments,\n  tryGetClassImplementingOrExtendingExpressionWithTypeArguments: () => tryGetClassImplementingOrExtendingExpressionWithTypeArguments,\n  tryGetDirectories: () => tryGetDirectories,\n  tryGetExtensionFromPath: () => tryGetExtensionFromPath2,\n  tryGetImportFromModuleSpecifier: () => tryGetImportFromModuleSpecifier,\n  tryGetJSDocSatisfiesTypeNode: () => tryGetJSDocSatisfiesTypeNode,\n  tryGetModuleNameFromFile: () => tryGetModuleNameFromFile,\n  tryGetModuleSpecifierFromDeclaration: () => tryGetModuleSpecifierFromDeclaration,\n  tryGetNativePerformanceHooks: () => tryGetNativePerformanceHooks,\n  tryGetPropertyAccessOrIdentifierToString: () => tryGetPropertyAccessOrIdentifierToString,\n  tryGetPropertyNameOfBindingOrAssignmentElement: () => tryGetPropertyNameOfBindingOrAssignmentElement,\n  tryGetSourceMappingURL: () => tryGetSourceMappingURL,\n  tryGetTextOfPropertyName: () => tryGetTextOfPropertyName,\n  tryParseJson: () => tryParseJson,\n  tryParsePattern: () => tryParsePattern,\n  tryParsePatterns: () => tryParsePatterns,\n  tryParseRawSourceMap: () => tryParseRawSourceMap,\n  tryReadDirectory: () => tryReadDirectory,\n  tryReadFile: () => tryReadFile,\n  tryRemoveDirectoryPrefix: () => tryRemoveDirectoryPrefix,\n  tryRemoveExtension: () => tryRemoveExtension,\n  tryRemovePrefix: () => tryRemovePrefix,\n  tryRemoveSuffix: () => tryRemoveSuffix,\n  tscBuildOption: () => tscBuildOption,\n  typeAcquisitionDeclarations: () => typeAcquisitionDeclarations,\n  typeAliasNamePart: () => typeAliasNamePart,\n  typeDirectiveIsEqualTo: () => typeDirectiveIsEqualTo,\n  typeKeywords: () => typeKeywords,\n  typeParameterNamePart: () => typeParameterNamePart,\n  typeToDisplayParts: () => typeToDisplayParts,\n  unchangedPollThresholds: () => unchangedPollThresholds,\n  unchangedTextChangeRange: () => unchangedTextChangeRange,\n  unescapeLeadingUnderscores: () => unescapeLeadingUnderscores,\n  unmangleScopedPackageName: () => unmangleScopedPackageName,\n  unorderedRemoveItem: () => unorderedRemoveItem,\n  unprefixedNodeCoreModules: () => unprefixedNodeCoreModules,\n  unreachableCodeIsError: () => unreachableCodeIsError,\n  unsetNodeChildren: () => unsetNodeChildren,\n  unusedLabelIsError: () => unusedLabelIsError,\n  unwrapInnermostStatementOfLabel: () => unwrapInnermostStatementOfLabel,\n  unwrapParenthesizedExpression: () => unwrapParenthesizedExpression,\n  updateErrorForNoInputFiles: () => updateErrorForNoInputFiles,\n  updateLanguageServiceSourceFile: () => updateLanguageServiceSourceFile,\n  updateMissingFilePathsWatch: () => updateMissingFilePathsWatch,\n  updateResolutionField: () => updateResolutionField,\n  updateSharedExtendedConfigFileWatcher: () => updateSharedExtendedConfigFileWatcher,\n  updateSourceFile: () => updateSourceFile,\n  updateWatchingWildcardDirectories: () => updateWatchingWildcardDirectories,\n  usingSingleLineStringWriter: () => usingSingleLineStringWriter,\n  utf16EncodeAsString: () => utf16EncodeAsString,\n  validateLocaleAndSetLanguage: () => validateLocaleAndSetLanguage,\n  version: () => version,\n  versionMajorMinor: () => versionMajorMinor,\n  visitArray: () => visitArray,\n  visitCommaListElements: () => visitCommaListElements,\n  visitEachChild: () => visitEachChild,\n  visitFunctionBody: () => visitFunctionBody,\n  visitIterationBody: () => visitIterationBody,\n  visitLexicalEnvironment: () => visitLexicalEnvironment,\n  visitNode: () => visitNode,\n  visitNodes: () => visitNodes2,\n  visitParameterList: () => visitParameterList,\n  walkUpBindingElementsAndPatterns: () => walkUpBindingElementsAndPatterns,\n  walkUpOuterExpressions: () => walkUpOuterExpressions,\n  walkUpParenthesizedExpressions: () => walkUpParenthesizedExpressions,\n  walkUpParenthesizedTypes: () => walkUpParenthesizedTypes,\n  walkUpParenthesizedTypesAndGetParentAndChild: () => walkUpParenthesizedTypesAndGetParentAndChild,\n  whitespaceOrMapCommentRegExp: () => whitespaceOrMapCommentRegExp,\n  writeCommentRange: () => writeCommentRange,\n  writeFile: () => writeFile,\n  writeFileEnsuringDirectories: () => writeFileEnsuringDirectories,\n  zipWith: () => zipWith\n});\nmodule.exports = __toCommonJS(typescript_exports);\n\n// src/compiler/corePublic.ts\nvar versionMajorMinor = \"5.9\";\nvar version = \"5.9.3\";\nvar Comparison = /* @__PURE__ */ ((Comparison3) => {\n  Comparison3[Comparison3[\"LessThan\"] = -1] = \"LessThan\";\n  Comparison3[Comparison3[\"EqualTo\"] = 0] = \"EqualTo\";\n  Comparison3[Comparison3[\"GreaterThan\"] = 1] = \"GreaterThan\";\n  return Comparison3;\n})(Comparison || {});\n\n// src/compiler/core.ts\nvar emptyArray = [];\nvar emptyMap = /* @__PURE__ */ new Map();\nfunction length(array) {\n  return array !== void 0 ? array.length : 0;\n}\nfunction forEach(array, callback) {\n  if (array !== void 0) {\n    for (let i = 0; i < array.length; i++) {\n      const result = callback(array[i], i);\n      if (result) {\n        return result;\n      }\n    }\n  }\n  return void 0;\n}\nfunction forEachRight(array, callback) {\n  if (array !== void 0) {\n    for (let i = array.length - 1; i >= 0; i--) {\n      const result = callback(array[i], i);\n      if (result) {\n        return result;\n      }\n    }\n  }\n  return void 0;\n}\nfunction firstDefined(array, callback) {\n  if (array === void 0) {\n    return void 0;\n  }\n  for (let i = 0; i < array.length; i++) {\n    const result = callback(array[i], i);\n    if (result !== void 0) {\n      return result;\n    }\n  }\n  return void 0;\n}\nfunction firstDefinedIterator(iter, callback) {\n  for (const value of iter) {\n    const result = callback(value);\n    if (result !== void 0) {\n      return result;\n    }\n  }\n  return void 0;\n}\nfunction reduceLeftIterator(iterator, f, initial) {\n  let result = initial;\n  if (iterator) {\n    let pos = 0;\n    for (const value of iterator) {\n      result = f(result, value, pos);\n      pos++;\n    }\n  }\n  return result;\n}\nfunction zipWith(arrayA, arrayB, callback) {\n  const result = [];\n  Debug.assertEqual(arrayA.length, arrayB.length);\n  for (let i = 0; i < arrayA.length; i++) {\n    result.push(callback(arrayA[i], arrayB[i], i));\n  }\n  return result;\n}\nfunction intersperse(input, element) {\n  if (input.length <= 1) {\n    return input;\n  }\n  const result = [];\n  for (let i = 0, n = input.length; i < n; i++) {\n    if (i !== 0) result.push(element);\n    result.push(input[i]);\n  }\n  return result;\n}\nfunction every(array, callback) {\n  if (array !== void 0) {\n    for (let i = 0; i < array.length; i++) {\n      if (!callback(array[i], i)) {\n        return false;\n      }\n    }\n  }\n  return true;\n}\nfunction find(array, predicate, startIndex) {\n  if (array === void 0) return void 0;\n  for (let i = startIndex ?? 0; i < array.length; i++) {\n    const value = array[i];\n    if (predicate(value, i)) {\n      return value;\n    }\n  }\n  return void 0;\n}\nfunction findLast(array, predicate, startIndex) {\n  if (array === void 0) return void 0;\n  for (let i = startIndex ?? array.length - 1; i >= 0; i--) {\n    const value = array[i];\n    if (predicate(value, i)) {\n      return value;\n    }\n  }\n  return void 0;\n}\nfunction findIndex(array, predicate, startIndex) {\n  if (array === void 0) return -1;\n  for (let i = startIndex ?? 0; i < array.length; i++) {\n    if (predicate(array[i], i)) {\n      return i;\n    }\n  }\n  return -1;\n}\nfunction findLastIndex(array, predicate, startIndex) {\n  if (array === void 0) return -1;\n  for (let i = startIndex ?? array.length - 1; i >= 0; i--) {\n    if (predicate(array[i], i)) {\n      return i;\n    }\n  }\n  return -1;\n}\nfunction contains(array, value, equalityComparer = equateValues) {\n  if (array !== void 0) {\n    for (let i = 0; i < array.length; i++) {\n      if (equalityComparer(array[i], value)) {\n        return true;\n      }\n    }\n  }\n  return false;\n}\nfunction indexOfAnyCharCode(text, charCodes, start) {\n  for (let i = start ?? 0; i < text.length; i++) {\n    if (contains(charCodes, text.charCodeAt(i))) {\n      return i;\n    }\n  }\n  return -1;\n}\nfunction countWhere(array, predicate) {\n  let count = 0;\n  if (array !== void 0) {\n    for (let i = 0; i < array.length; i++) {\n      const v = array[i];\n      if (predicate(v, i)) {\n        count++;\n      }\n    }\n  }\n  return count;\n}\nfunction filter(array, f) {\n  if (array !== void 0) {\n    const len = array.length;\n    let i = 0;\n    while (i < len && f(array[i])) i++;\n    if (i < len) {\n      const result = array.slice(0, i);\n      i++;\n      while (i < len) {\n        const item = array[i];\n        if (f(item)) {\n          result.push(item);\n        }\n        i++;\n      }\n      return result;\n    }\n  }\n  return array;\n}\nfunction filterMutate(array, f) {\n  let outIndex = 0;\n  for (let i = 0; i < array.length; i++) {\n    if (f(array[i], i, array)) {\n      array[outIndex] = array[i];\n      outIndex++;\n    }\n  }\n  array.length = outIndex;\n}\nfunction clear(array) {\n  array.length = 0;\n}\nfunction map(array, f) {\n  let result;\n  if (array !== void 0) {\n    result = [];\n    for (let i = 0; i < array.length; i++) {\n      result.push(f(array[i], i));\n    }\n  }\n  return result;\n}\nfunction* mapIterator(iter, mapFn) {\n  for (const x of iter) {\n    yield mapFn(x);\n  }\n}\nfunction sameMap(array, f) {\n  if (array !== void 0) {\n    for (let i = 0; i < array.length; i++) {\n      const item = array[i];\n      const mapped = f(item, i);\n      if (item !== mapped) {\n        const result = array.slice(0, i);\n        result.push(mapped);\n        for (i++; i < array.length; i++) {\n          result.push(f(array[i], i));\n        }\n        return result;\n      }\n    }\n  }\n  return array;\n}\nfunction flatten(array) {\n  const result = [];\n  for (let i = 0; i < array.length; i++) {\n    const v = array[i];\n    if (v) {\n      if (isArray(v)) {\n        addRange(result, v);\n      } else {\n        result.push(v);\n      }\n    }\n  }\n  return result;\n}\nfunction flatMap(array, mapfn) {\n  let result;\n  if (array !== void 0) {\n    for (let i = 0; i < array.length; i++) {\n      const v = mapfn(array[i], i);\n      if (v) {\n        if (isArray(v)) {\n          result = addRange(result, v);\n        } else {\n          result = append(result, v);\n        }\n      }\n    }\n  }\n  return result ?? emptyArray;\n}\nfunction flatMapToMutable(array, mapfn) {\n  const result = [];\n  if (array !== void 0) {\n    for (let i = 0; i < array.length; i++) {\n      const v = mapfn(array[i], i);\n      if (v) {\n        if (isArray(v)) {\n          addRange(result, v);\n        } else {\n          result.push(v);\n        }\n      }\n    }\n  }\n  return result;\n}\nfunction* flatMapIterator(iter, mapfn) {\n  for (const x of iter) {\n    const iter2 = mapfn(x);\n    if (!iter2) continue;\n    yield* iter2;\n  }\n}\nfunction sameFlatMap(array, mapfn) {\n  let result;\n  if (array !== void 0) {\n    for (let i = 0; i < array.length; i++) {\n      const item = array[i];\n      const mapped = mapfn(item, i);\n      if (result || item !== mapped || isArray(mapped)) {\n        if (!result) {\n          result = array.slice(0, i);\n        }\n        if (isArray(mapped)) {\n          addRange(result, mapped);\n        } else {\n          result.push(mapped);\n        }\n      }\n    }\n  }\n  return result ?? array;\n}\nfunction mapAllOrFail(array, mapFn) {\n  const result = [];\n  for (let i = 0; i < array.length; i++) {\n    const mapped = mapFn(array[i], i);\n    if (mapped === void 0) {\n      return void 0;\n    }\n    result.push(mapped);\n  }\n  return result;\n}\nfunction mapDefined(array, mapFn) {\n  const result = [];\n  if (array !== void 0) {\n    for (let i = 0; i < array.length; i++) {\n      const mapped = mapFn(array[i], i);\n      if (mapped !== void 0) {\n        result.push(mapped);\n      }\n    }\n  }\n  return result;\n}\nfunction* mapDefinedIterator(iter, mapFn) {\n  for (const x of iter) {\n    const value = mapFn(x);\n    if (value !== void 0) {\n      yield value;\n    }\n  }\n}\nfunction getOrUpdate(map2, key, callback) {\n  if (map2.has(key)) {\n    return map2.get(key);\n  }\n  const value = callback();\n  map2.set(key, value);\n  return value;\n}\nfunction tryAddToSet(set, value) {\n  if (!set.has(value)) {\n    set.add(value);\n    return true;\n  }\n  return false;\n}\nfunction* singleIterator(value) {\n  yield value;\n}\nfunction spanMap(array, keyfn, mapfn) {\n  let result;\n  if (array !== void 0) {\n    result = [];\n    const len = array.length;\n    let previousKey;\n    let key;\n    let start = 0;\n    let pos = 0;\n    while (start < len) {\n      while (pos < len) {\n        const value = array[pos];\n        key = keyfn(value, pos);\n        if (pos === 0) {\n          previousKey = key;\n        } else if (key !== previousKey) {\n          break;\n        }\n        pos++;\n      }\n      if (start < pos) {\n        const v = mapfn(array.slice(start, pos), previousKey, start, pos);\n        if (v) {\n          result.push(v);\n        }\n        start = pos;\n      }\n      previousKey = key;\n      pos++;\n    }\n  }\n  return result;\n}\nfunction mapEntries(map2, f) {\n  if (map2 === void 0) {\n    return void 0;\n  }\n  const result = /* @__PURE__ */ new Map();\n  map2.forEach((value, key) => {\n    const [newKey, newValue] = f(key, value);\n    result.set(newKey, newValue);\n  });\n  return result;\n}\nfunction some(array, predicate) {\n  if (array !== void 0) {\n    if (predicate !== void 0) {\n      for (let i = 0; i < array.length; i++) {\n        if (predicate(array[i])) {\n          return true;\n        }\n      }\n    } else {\n      return array.length > 0;\n    }\n  }\n  return false;\n}\nfunction getRangesWhere(arr, pred, cb) {\n  let start;\n  for (let i = 0; i < arr.length; i++) {\n    if (pred(arr[i])) {\n      start = start === void 0 ? i : start;\n    } else {\n      if (start !== void 0) {\n        cb(start, i);\n        start = void 0;\n      }\n    }\n  }\n  if (start !== void 0) cb(start, arr.length);\n}\nfunction concatenate(array1, array2) {\n  if (array2 === void 0 || array2.length === 0) return array1;\n  if (array1 === void 0 || array1.length === 0) return array2;\n  return [...array1, ...array2];\n}\nfunction selectIndex(_, i) {\n  return i;\n}\nfunction indicesOf(array) {\n  return array.map(selectIndex);\n}\nfunction deduplicateRelational(array, equalityComparer, comparer) {\n  const indices = indicesOf(array);\n  stableSortIndices(array, indices, comparer);\n  let last2 = array[indices[0]];\n  const deduplicated = [indices[0]];\n  for (let i = 1; i < indices.length; i++) {\n    const index = indices[i];\n    const item = array[index];\n    if (!equalityComparer(last2, item)) {\n      deduplicated.push(index);\n      last2 = item;\n    }\n  }\n  deduplicated.sort();\n  return deduplicated.map((i) => array[i]);\n}\nfunction deduplicateEquality(array, equalityComparer) {\n  const result = [];\n  for (let i = 0; i < array.length; i++) {\n    pushIfUnique(result, array[i], equalityComparer);\n  }\n  return result;\n}\nfunction deduplicate(array, equalityComparer, comparer) {\n  return array.length === 0 ? [] : array.length === 1 ? array.slice() : comparer ? deduplicateRelational(array, equalityComparer, comparer) : deduplicateEquality(array, equalityComparer);\n}\nfunction deduplicateSorted(array, comparer) {\n  if (array.length === 0) return emptyArray;\n  let last2 = array[0];\n  const deduplicated = [last2];\n  for (let i = 1; i < array.length; i++) {\n    const next = array[i];\n    switch (comparer(next, last2)) {\n      // equality comparison\n      case true:\n      // relational comparison\n      // falls through\n      case 0 /* EqualTo */:\n        continue;\n      case -1 /* LessThan */:\n        return Debug.fail(\"Array is unsorted.\");\n    }\n    deduplicated.push(last2 = next);\n  }\n  return deduplicated;\n}\nfunction createSortedArray() {\n  return [];\n}\nfunction insertSorted(array, insert, compare, equalityComparer, allowDuplicates) {\n  if (array.length === 0) {\n    array.push(insert);\n    return true;\n  }\n  const insertIndex = binarySearch(array, insert, identity, compare);\n  if (insertIndex < 0) {\n    if (equalityComparer && !allowDuplicates) {\n      const idx = ~insertIndex;\n      if (idx > 0 && equalityComparer(insert, array[idx - 1])) {\n        return false;\n      }\n      if (idx < array.length && equalityComparer(insert, array[idx])) {\n        array.splice(idx, 1, insert);\n        return true;\n      }\n    }\n    array.splice(~insertIndex, 0, insert);\n    return true;\n  }\n  if (allowDuplicates) {\n    array.splice(insertIndex, 0, insert);\n    return true;\n  }\n  return false;\n}\nfunction sortAndDeduplicate(array, comparer, equalityComparer) {\n  return deduplicateSorted(toSorted(array, comparer), equalityComparer ?? comparer ?? compareStringsCaseSensitive);\n}\nfunction arrayIsEqualTo(array1, array2, equalityComparer = equateValues) {\n  if (array1 === void 0 || array2 === void 0) {\n    return array1 === array2;\n  }\n  if (array1.length !== array2.length) {\n    return false;\n  }\n  for (let i = 0; i < array1.length; i++) {\n    if (!equalityComparer(array1[i], array2[i], i)) {\n      return false;\n    }\n  }\n  return true;\n}\nfunction compact(array) {\n  let result;\n  if (array !== void 0) {\n    for (let i = 0; i < array.length; i++) {\n      const v = array[i];\n      if (result ?? !v) {\n        result ?? (result = array.slice(0, i));\n        if (v) {\n          result.push(v);\n        }\n      }\n    }\n  }\n  return result ?? array;\n}\nfunction relativeComplement(arrayA, arrayB, comparer) {\n  if (!arrayB || !arrayA || arrayB.length === 0 || arrayA.length === 0) return arrayB;\n  const result = [];\n  loopB:\n    for (let offsetA = 0, offsetB = 0; offsetB < arrayB.length; offsetB++) {\n      if (offsetB > 0) {\n        Debug.assertGreaterThanOrEqual(comparer(arrayB[offsetB], arrayB[offsetB - 1]), 0 /* EqualTo */);\n      }\n      loopA:\n        for (const startA = offsetA; offsetA < arrayA.length; offsetA++) {\n          if (offsetA > startA) {\n            Debug.assertGreaterThanOrEqual(comparer(arrayA[offsetA], arrayA[offsetA - 1]), 0 /* EqualTo */);\n          }\n          switch (comparer(arrayB[offsetB], arrayA[offsetA])) {\n            case -1 /* LessThan */:\n              result.push(arrayB[offsetB]);\n              continue loopB;\n            case 0 /* EqualTo */:\n              continue loopB;\n            case 1 /* GreaterThan */:\n              continue loopA;\n          }\n        }\n    }\n  return result;\n}\nfunction append(to, value) {\n  if (value === void 0) return to;\n  if (to === void 0) return [value];\n  to.push(value);\n  return to;\n}\nfunction combine(xs, ys) {\n  if (xs === void 0) return ys;\n  if (ys === void 0) return xs;\n  if (isArray(xs)) return isArray(ys) ? concatenate(xs, ys) : append(xs, ys);\n  if (isArray(ys)) return append(ys, xs);\n  return [xs, ys];\n}\nfunction toOffset(array, offset) {\n  return offset < 0 ? array.length + offset : offset;\n}\nfunction addRange(to, from, start, end) {\n  if (from === void 0 || from.length === 0) return to;\n  if (to === void 0) return from.slice(start, end);\n  start = start === void 0 ? 0 : toOffset(from, start);\n  end = end === void 0 ? from.length : toOffset(from, end);\n  for (let i = start; i < end && i < from.length; i++) {\n    if (from[i] !== void 0) {\n      to.push(from[i]);\n    }\n  }\n  return to;\n}\nfunction pushIfUnique(array, toAdd, equalityComparer) {\n  if (contains(array, toAdd, equalityComparer)) {\n    return false;\n  } else {\n    array.push(toAdd);\n    return true;\n  }\n}\nfunction appendIfUnique(array, toAdd, equalityComparer) {\n  if (array !== void 0) {\n    pushIfUnique(array, toAdd, equalityComparer);\n    return array;\n  } else {\n    return [toAdd];\n  }\n}\nfunction stableSortIndices(array, indices, comparer) {\n  indices.sort((x, y) => comparer(array[x], array[y]) || compareValues(x, y));\n}\nfunction toSorted(array, comparer) {\n  return array.length === 0 ? emptyArray : array.slice().sort(comparer);\n}\nfunction* arrayReverseIterator(array) {\n  for (let i = array.length - 1; i >= 0; i--) {\n    yield array[i];\n  }\n}\nfunction rangeEquals(array1, array2, pos, end) {\n  while (pos < end) {\n    if (array1[pos] !== array2[pos]) {\n      return false;\n    }\n    pos++;\n  }\n  return true;\n}\nvar elementAt = !!Array.prototype.at ? (array, offset) => array == null ? void 0 : array.at(offset) : (array, offset) => {\n  if (array !== void 0) {\n    offset = toOffset(array, offset);\n    if (offset < array.length) {\n      return array[offset];\n    }\n  }\n  return void 0;\n};\nfunction firstOrUndefined(array) {\n  return array === void 0 || array.length === 0 ? void 0 : array[0];\n}\nfunction firstOrUndefinedIterator(iter) {\n  if (iter !== void 0) {\n    for (const value of iter) {\n      return value;\n    }\n  }\n  return void 0;\n}\nfunction first(array) {\n  Debug.assert(array.length !== 0);\n  return array[0];\n}\nfunction firstIterator(iter) {\n  for (const value of iter) {\n    return value;\n  }\n  Debug.fail(\"iterator is empty\");\n}\nfunction lastOrUndefined(array) {\n  return array === void 0 || array.length === 0 ? void 0 : array[array.length - 1];\n}\nfunction last(array) {\n  Debug.assert(array.length !== 0);\n  return array[array.length - 1];\n}\nfunction singleOrUndefined(array) {\n  return array !== void 0 && array.length === 1 ? array[0] : void 0;\n}\nfunction single(array) {\n  return Debug.checkDefined(singleOrUndefined(array));\n}\nfunction singleOrMany(array) {\n  return array !== void 0 && array.length === 1 ? array[0] : array;\n}\nfunction replaceElement(array, index, value) {\n  const result = array.slice(0);\n  result[index] = value;\n  return result;\n}\nfunction binarySearch(array, value, keySelector, keyComparer, offset) {\n  return binarySearchKey(array, keySelector(value), keySelector, keyComparer, offset);\n}\nfunction binarySearchKey(array, key, keySelector, keyComparer, offset) {\n  if (!some(array)) {\n    return -1;\n  }\n  let low = offset ?? 0;\n  let high = array.length - 1;\n  while (low <= high) {\n    const middle = low + (high - low >> 1);\n    const midKey = keySelector(array[middle], middle);\n    switch (keyComparer(midKey, key)) {\n      case -1 /* LessThan */:\n        low = middle + 1;\n        break;\n      case 0 /* EqualTo */:\n        return middle;\n      case 1 /* GreaterThan */:\n        high = middle - 1;\n        break;\n    }\n  }\n  return ~low;\n}\nfunction reduceLeft(array, f, initial, start, count) {\n  if (array && array.length > 0) {\n    const size = array.length;\n    if (size > 0) {\n      let pos = start === void 0 || start < 0 ? 0 : start;\n      const end = count === void 0 || pos + count > size - 1 ? size - 1 : pos + count;\n      let result;\n      if (arguments.length <= 2) {\n        result = array[pos];\n        pos++;\n      } else {\n        result = initial;\n      }\n      while (pos <= end) {\n        result = f(result, array[pos], pos);\n        pos++;\n      }\n      return result;\n    }\n  }\n  return initial;\n}\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasProperty(map2, key) {\n  return hasOwnProperty.call(map2, key);\n}\nfunction getProperty(map2, key) {\n  return hasOwnProperty.call(map2, key) ? map2[key] : void 0;\n}\nfunction getOwnKeys(map2) {\n  const keys = [];\n  for (const key in map2) {\n    if (hasOwnProperty.call(map2, key)) {\n      keys.push(key);\n    }\n  }\n  return keys;\n}\nfunction getAllKeys(obj) {\n  const result = [];\n  do {\n    const names = Object.getOwnPropertyNames(obj);\n    for (const name of names) {\n      pushIfUnique(result, name);\n    }\n  } while (obj = Object.getPrototypeOf(obj));\n  return result;\n}\nfunction getOwnValues(collection) {\n  const values = [];\n  for (const key in collection) {\n    if (hasOwnProperty.call(collection, key)) {\n      values.push(collection[key]);\n    }\n  }\n  return values;\n}\nfunction arrayOf(count, f) {\n  const result = new Array(count);\n  for (let i = 0; i < count; i++) {\n    result[i] = f(i);\n  }\n  return result;\n}\nfunction arrayFrom(iterator, map2) {\n  const result = [];\n  for (const value of iterator) {\n    result.push(map2 ? map2(value) : value);\n  }\n  return result;\n}\nfunction assign(t, ...args) {\n  for (const arg of args) {\n    if (arg === void 0) continue;\n    for (const p in arg) {\n      if (hasProperty(arg, p)) {\n        t[p] = arg[p];\n      }\n    }\n  }\n  return t;\n}\nfunction equalOwnProperties(left, right, equalityComparer = equateValues) {\n  if (left === right) return true;\n  if (!left || !right) return false;\n  for (const key in left) {\n    if (hasOwnProperty.call(left, key)) {\n      if (!hasOwnProperty.call(right, key)) return false;\n      if (!equalityComparer(left[key], right[key])) return false;\n    }\n  }\n  for (const key in right) {\n    if (hasOwnProperty.call(right, key)) {\n      if (!hasOwnProperty.call(left, key)) return false;\n    }\n  }\n  return true;\n}\nfunction arrayToMap(array, makeKey, makeValue = identity) {\n  const result = /* @__PURE__ */ new Map();\n  for (let i = 0; i < array.length; i++) {\n    const value = array[i];\n    const key = makeKey(value);\n    if (key !== void 0) result.set(key, makeValue(value));\n  }\n  return result;\n}\nfunction arrayToNumericMap(array, makeKey, makeValue = identity) {\n  const result = [];\n  for (let i = 0; i < array.length; i++) {\n    const value = array[i];\n    result[makeKey(value)] = makeValue(value);\n  }\n  return result;\n}\nfunction arrayToMultiMap(values, makeKey, makeValue = identity) {\n  const result = createMultiMap();\n  for (let i = 0; i < values.length; i++) {\n    const value = values[i];\n    result.add(makeKey(value), makeValue(value));\n  }\n  return result;\n}\nfunction group(values, getGroupId, resultSelector = identity) {\n  return arrayFrom(arrayToMultiMap(values, getGroupId).values(), resultSelector);\n}\nfunction groupBy(values, keySelector) {\n  const result = {};\n  if (values !== void 0) {\n    for (let i = 0; i < values.length; i++) {\n      const value = values[i];\n      const key = `${keySelector(value)}`;\n      const array = result[key] ?? (result[key] = []);\n      array.push(value);\n    }\n  }\n  return result;\n}\nfunction clone(object) {\n  const result = {};\n  for (const id in object) {\n    if (hasOwnProperty.call(object, id)) {\n      result[id] = object[id];\n    }\n  }\n  return result;\n}\nfunction extend(first2, second) {\n  const result = {};\n  for (const id in second) {\n    if (hasOwnProperty.call(second, id)) {\n      result[id] = second[id];\n    }\n  }\n  for (const id in first2) {\n    if (hasOwnProperty.call(first2, id)) {\n      result[id] = first2[id];\n    }\n  }\n  return result;\n}\nfunction copyProperties(first2, second) {\n  for (const id in second) {\n    if (hasOwnProperty.call(second, id)) {\n      first2[id] = second[id];\n    }\n  }\n}\nfunction maybeBind(obj, fn) {\n  return fn == null ? void 0 : fn.bind(obj);\n}\nfunction createMultiMap() {\n  const map2 = /* @__PURE__ */ new Map();\n  map2.add = multiMapAdd;\n  map2.remove = multiMapRemove;\n  return map2;\n}\nfunction multiMapAdd(key, value) {\n  let values = this.get(key);\n  if (values !== void 0) {\n    values.push(value);\n  } else {\n    this.set(key, values = [value]);\n  }\n  return values;\n}\nfunction multiMapRemove(key, value) {\n  const values = this.get(key);\n  if (values !== void 0) {\n    unorderedRemoveItem(values, value);\n    if (!values.length) {\n      this.delete(key);\n    }\n  }\n}\nfunction createQueue(items) {\n  const elements = (items == null ? void 0 : items.slice()) ?? [];\n  let headIndex = 0;\n  function isEmpty() {\n    return headIndex === elements.length;\n  }\n  function enqueue(...items2) {\n    elements.push(...items2);\n  }\n  function dequeue() {\n    if (isEmpty()) {\n      throw new Error(\"Queue is empty\");\n    }\n    const result = elements[headIndex];\n    elements[headIndex] = void 0;\n    headIndex++;\n    if (headIndex > 100 && headIndex > elements.length >> 1) {\n      const newLength = elements.length - headIndex;\n      elements.copyWithin(\n        /*target*/\n        0,\n        /*start*/\n        headIndex\n      );\n      elements.length = newLength;\n      headIndex = 0;\n    }\n    return result;\n  }\n  return {\n    enqueue,\n    dequeue,\n    isEmpty\n  };\n}\nfunction createSet(getHashCode, equals) {\n  const multiMap = /* @__PURE__ */ new Map();\n  let size = 0;\n  function* getElementIterator() {\n    for (const value of multiMap.values()) {\n      if (isArray(value)) {\n        yield* value;\n      } else {\n        yield value;\n      }\n    }\n  }\n  const set = {\n    has(element) {\n      const hash = getHashCode(element);\n      if (!multiMap.has(hash)) return false;\n      const candidates = multiMap.get(hash);\n      if (isArray(candidates)) return contains(candidates, element, equals);\n      return equals(candidates, element);\n    },\n    add(element) {\n      const hash = getHashCode(element);\n      if (multiMap.has(hash)) {\n        const values = multiMap.get(hash);\n        if (isArray(values)) {\n          if (!contains(values, element, equals)) {\n            values.push(element);\n            size++;\n          }\n        } else {\n          const value = values;\n          if (!equals(value, element)) {\n            multiMap.set(hash, [value, element]);\n            size++;\n          }\n        }\n      } else {\n        multiMap.set(hash, element);\n        size++;\n      }\n      return this;\n    },\n    delete(element) {\n      const hash = getHashCode(element);\n      if (!multiMap.has(hash)) return false;\n      const candidates = multiMap.get(hash);\n      if (isArray(candidates)) {\n        for (let i = 0; i < candidates.length; i++) {\n          if (equals(candidates[i], element)) {\n            if (candidates.length === 1) {\n              multiMap.delete(hash);\n            } else if (candidates.length === 2) {\n              multiMap.set(hash, candidates[1 - i]);\n            } else {\n              unorderedRemoveItemAt(candidates, i);\n            }\n            size--;\n            return true;\n          }\n        }\n      } else {\n        const candidate = candidates;\n        if (equals(candidate, element)) {\n          multiMap.delete(hash);\n          size--;\n          return true;\n        }\n      }\n      return false;\n    },\n    clear() {\n      multiMap.clear();\n      size = 0;\n    },\n    get size() {\n      return size;\n    },\n    forEach(action) {\n      for (const elements of arrayFrom(multiMap.values())) {\n        if (isArray(elements)) {\n          for (const element of elements) {\n            action(element, element, set);\n          }\n        } else {\n          const element = elements;\n          action(element, element, set);\n        }\n      }\n    },\n    keys() {\n      return getElementIterator();\n    },\n    values() {\n      return getElementIterator();\n    },\n    *entries() {\n      for (const value of getElementIterator()) {\n        yield [value, value];\n      }\n    },\n    [Symbol.iterator]: () => {\n      return getElementIterator();\n    },\n    [Symbol.toStringTag]: multiMap[Symbol.toStringTag]\n  };\n  return set;\n}\nfunction isArray(value) {\n  return Array.isArray(value);\n}\nfunction toArray(value) {\n  return isArray(value) ? value : [value];\n}\nfunction isString(text) {\n  return typeof text === \"string\";\n}\nfunction isNumber(x) {\n  return typeof x === \"number\";\n}\nfunction tryCast(value, test) {\n  return value !== void 0 && test(value) ? value : void 0;\n}\nfunction cast(value, test) {\n  if (value !== void 0 && test(value)) return value;\n  return Debug.fail(`Invalid cast. The supplied value ${value} did not pass the test '${Debug.getFunctionName(test)}'.`);\n}\nfunction noop(_) {\n}\nfunction returnFalse() {\n  return false;\n}\nfunction returnTrue() {\n  return true;\n}\nfunction returnUndefined() {\n  return void 0;\n}\nfunction identity(x) {\n  return x;\n}\nfunction toLowerCase(x) {\n  return x.toLowerCase();\n}\nvar fileNameLowerCaseRegExp = /[^\\u0130\\u0131\\u00DFa-z0-9\\\\/:\\-_. ]+/g;\nfunction toFileNameLowerCase(x) {\n  return fileNameLowerCaseRegExp.test(x) ? x.replace(fileNameLowerCaseRegExp, toLowerCase) : x;\n}\nfunction notImplemented() {\n  throw new Error(\"Not implemented\");\n}\nfunction memoize(callback) {\n  let value;\n  return () => {\n    if (callback) {\n      value = callback();\n      callback = void 0;\n    }\n    return value;\n  };\n}\nfunction memoizeOne(callback) {\n  const map2 = /* @__PURE__ */ new Map();\n  return (arg) => {\n    const key = `${typeof arg}:${arg}`;\n    let value = map2.get(key);\n    if (value === void 0 && !map2.has(key)) {\n      value = callback(arg);\n      map2.set(key, value);\n    }\n    return value;\n  };\n}\nvar AssertionLevel = /* @__PURE__ */ ((AssertionLevel2) => {\n  AssertionLevel2[AssertionLevel2[\"None\"] = 0] = \"None\";\n  AssertionLevel2[AssertionLevel2[\"Normal\"] = 1] = \"Normal\";\n  AssertionLevel2[AssertionLevel2[\"Aggressive\"] = 2] = \"Aggressive\";\n  AssertionLevel2[AssertionLevel2[\"VeryAggressive\"] = 3] = \"VeryAggressive\";\n  return AssertionLevel2;\n})(AssertionLevel || {});\nfunction equateValues(a, b) {\n  return a === b;\n}\nfunction equateStringsCaseInsensitive(a, b) {\n  return a === b || a !== void 0 && b !== void 0 && a.toUpperCase() === b.toUpperCase();\n}\nfunction equateStringsCaseSensitive(a, b) {\n  return equateValues(a, b);\n}\nfunction compareComparableValues(a, b) {\n  return a === b ? 0 /* EqualTo */ : a === void 0 ? -1 /* LessThan */ : b === void 0 ? 1 /* GreaterThan */ : a < b ? -1 /* LessThan */ : 1 /* GreaterThan */;\n}\nfunction compareValues(a, b) {\n  return compareComparableValues(a, b);\n}\nfunction compareTextSpans(a, b) {\n  return compareValues(a == null ? void 0 : a.start, b == null ? void 0 : b.start) || compareValues(a == null ? void 0 : a.length, b == null ? void 0 : b.length);\n}\nfunction maxBy(arr, init, mapper) {\n  for (let i = 0; i < arr.length; i++) {\n    init = Math.max(init, mapper(arr[i]));\n  }\n  return init;\n}\nfunction min(items, compare) {\n  return reduceLeft(items, (x, y) => compare(x, y) === -1 /* LessThan */ ? x : y);\n}\nfunction compareStringsCaseInsensitive(a, b) {\n  if (a === b) return 0 /* EqualTo */;\n  if (a === void 0) return -1 /* LessThan */;\n  if (b === void 0) return 1 /* GreaterThan */;\n  a = a.toUpperCase();\n  b = b.toUpperCase();\n  return a < b ? -1 /* LessThan */ : a > b ? 1 /* GreaterThan */ : 0 /* EqualTo */;\n}\nfunction compareStringsCaseInsensitiveEslintCompatible(a, b) {\n  if (a === b) return 0 /* EqualTo */;\n  if (a === void 0) return -1 /* LessThan */;\n  if (b === void 0) return 1 /* GreaterThan */;\n  a = a.toLowerCase();\n  b = b.toLowerCase();\n  return a < b ? -1 /* LessThan */ : a > b ? 1 /* GreaterThan */ : 0 /* EqualTo */;\n}\nfunction compareStringsCaseSensitive(a, b) {\n  return compareComparableValues(a, b);\n}\nfunction getStringComparer(ignoreCase) {\n  return ignoreCase ? compareStringsCaseInsensitive : compareStringsCaseSensitive;\n}\nvar createUIStringComparer = /* @__PURE__ */ (() => {\n  return createIntlCollatorStringComparer;\n  function compareWithCallback(a, b, comparer) {\n    if (a === b) return 0 /* EqualTo */;\n    if (a === void 0) return -1 /* LessThan */;\n    if (b === void 0) return 1 /* GreaterThan */;\n    const value = comparer(a, b);\n    return value < 0 ? -1 /* LessThan */ : value > 0 ? 1 /* GreaterThan */ : 0 /* EqualTo */;\n  }\n  function createIntlCollatorStringComparer(locale) {\n    const comparer = new Intl.Collator(locale, { usage: \"sort\", sensitivity: \"variant\", numeric: true }).compare;\n    return (a, b) => compareWithCallback(a, b, comparer);\n  }\n})();\nvar uiComparerCaseSensitive;\nvar uiLocale;\nfunction getUILocale() {\n  return uiLocale;\n}\nfunction setUILocale(value) {\n  if (uiLocale !== value) {\n    uiLocale = value;\n    uiComparerCaseSensitive = void 0;\n  }\n}\nfunction compareStringsCaseSensitiveUI(a, b) {\n  uiComparerCaseSensitive ?? (uiComparerCaseSensitive = createUIStringComparer(uiLocale));\n  return uiComparerCaseSensitive(a, b);\n}\nfunction compareProperties(a, b, key, comparer) {\n  return a === b ? 0 /* EqualTo */ : a === void 0 ? -1 /* LessThan */ : b === void 0 ? 1 /* GreaterThan */ : comparer(a[key], b[key]);\n}\nfunction compareBooleans(a, b) {\n  return compareValues(a ? 1 : 0, b ? 1 : 0);\n}\nfunction getSpellingSuggestion(name, candidates, getName) {\n  const maximumLengthDifference = Math.max(2, Math.floor(name.length * 0.34));\n  let bestDistance = Math.floor(name.length * 0.4) + 1;\n  let bestCandidate;\n  for (const candidate of candidates) {\n    const candidateName = getName(candidate);\n    if (candidateName !== void 0 && Math.abs(candidateName.length - name.length) <= maximumLengthDifference) {\n      if (candidateName === name) {\n        continue;\n      }\n      if (candidateName.length < 3 && candidateName.toLowerCase() !== name.toLowerCase()) {\n        continue;\n      }\n      const distance = levenshteinWithMax(name, candidateName, bestDistance - 0.1);\n      if (distance === void 0) {\n        continue;\n      }\n      Debug.assert(distance < bestDistance);\n      bestDistance = distance;\n      bestCandidate = candidate;\n    }\n  }\n  return bestCandidate;\n}\nfunction levenshteinWithMax(s1, s2, max) {\n  let previous = new Array(s2.length + 1);\n  let current = new Array(s2.length + 1);\n  const big = max + 0.01;\n  for (let i = 0; i <= s2.length; i++) {\n    previous[i] = i;\n  }\n  for (let i = 1; i <= s1.length; i++) {\n    const c1 = s1.charCodeAt(i - 1);\n    const minJ = Math.ceil(i > max ? i - max : 1);\n    const maxJ = Math.floor(s2.length > max + i ? max + i : s2.length);\n    current[0] = i;\n    let colMin = i;\n    for (let j = 1; j < minJ; j++) {\n      current[j] = big;\n    }\n    for (let j = minJ; j <= maxJ; j++) {\n      const substitutionDistance = s1[i - 1].toLowerCase() === s2[j - 1].toLowerCase() ? previous[j - 1] + 0.1 : previous[j - 1] + 2;\n      const dist = c1 === s2.charCodeAt(j - 1) ? previous[j - 1] : Math.min(\n        /*delete*/\n        previous[j] + 1,\n        /*insert*/\n        current[j - 1] + 1,\n        /*substitute*/\n        substitutionDistance\n      );\n      current[j] = dist;\n      colMin = Math.min(colMin, dist);\n    }\n    for (let j = maxJ + 1; j <= s2.length; j++) {\n      current[j] = big;\n    }\n    if (colMin > max) {\n      return void 0;\n    }\n    const temp = previous;\n    previous = current;\n    current = temp;\n  }\n  const res = previous[s2.length];\n  return res > max ? void 0 : res;\n}\nfunction endsWith(str, suffix, ignoreCase) {\n  const expectedPos = str.length - suffix.length;\n  return expectedPos >= 0 && (ignoreCase ? equateStringsCaseInsensitive(str.slice(expectedPos), suffix) : str.indexOf(suffix, expectedPos) === expectedPos);\n}\nfunction removeSuffix(str, suffix) {\n  return endsWith(str, suffix) ? str.slice(0, str.length - suffix.length) : str;\n}\nfunction tryRemoveSuffix(str, suffix) {\n  return endsWith(str, suffix) ? str.slice(0, str.length - suffix.length) : void 0;\n}\nfunction removeMinAndVersionNumbers(fileName) {\n  let end = fileName.length;\n  for (let pos = end - 1; pos > 0; pos--) {\n    let ch = fileName.charCodeAt(pos);\n    if (ch >= 48 /* _0 */ && ch <= 57 /* _9 */) {\n      do {\n        --pos;\n        ch = fileName.charCodeAt(pos);\n      } while (pos > 0 && ch >= 48 /* _0 */ && ch <= 57 /* _9 */);\n    } else if (pos > 4 && (ch === 110 /* n */ || ch === 78 /* N */)) {\n      --pos;\n      ch = fileName.charCodeAt(pos);\n      if (ch !== 105 /* i */ && ch !== 73 /* I */) {\n        break;\n      }\n      --pos;\n      ch = fileName.charCodeAt(pos);\n      if (ch !== 109 /* m */ && ch !== 77 /* M */) {\n        break;\n      }\n      --pos;\n      ch = fileName.charCodeAt(pos);\n    } else {\n      break;\n    }\n    if (ch !== 45 /* minus */ && ch !== 46 /* dot */) {\n      break;\n    }\n    end = pos;\n  }\n  return end === fileName.length ? fileName : fileName.slice(0, end);\n}\nfunction orderedRemoveItem(array, item) {\n  for (let i = 0; i < array.length; i++) {\n    if (array[i] === item) {\n      orderedRemoveItemAt(array, i);\n      return true;\n    }\n  }\n  return false;\n}\nfunction orderedRemoveItemAt(array, index) {\n  for (let i = index; i < array.length - 1; i++) {\n    array[i] = array[i + 1];\n  }\n  array.pop();\n}\nfunction unorderedRemoveItemAt(array, index) {\n  array[index] = array[array.length - 1];\n  array.pop();\n}\nfunction unorderedRemoveItem(array, item) {\n  return unorderedRemoveFirstItemWhere(array, (element) => element === item);\n}\nfunction unorderedRemoveFirstItemWhere(array, predicate) {\n  for (let i = 0; i < array.length; i++) {\n    if (predicate(array[i])) {\n      unorderedRemoveItemAt(array, i);\n      return true;\n    }\n  }\n  return false;\n}\nfunction createGetCanonicalFileName(useCaseSensitiveFileNames2) {\n  return useCaseSensitiveFileNames2 ? identity : toFileNameLowerCase;\n}\nfunction patternText({ prefix, suffix }) {\n  return `${prefix}*${suffix}`;\n}\nfunction matchedText(pattern, candidate) {\n  Debug.assert(isPatternMatch(pattern, candidate));\n  return candidate.substring(pattern.prefix.length, candidate.length - pattern.suffix.length);\n}\nfunction findBestPatternMatch(values, getPattern, candidate) {\n  let matchedValue;\n  let longestMatchPrefixLength = -1;\n  for (let i = 0; i < values.length; i++) {\n    const v = values[i];\n    const pattern = getPattern(v);\n    if (pattern.prefix.length > longestMatchPrefixLength && isPatternMatch(pattern, candidate)) {\n      longestMatchPrefixLength = pattern.prefix.length;\n      matchedValue = v;\n    }\n  }\n  return matchedValue;\n}\nfunction startsWith(str, prefix, ignoreCase) {\n  return ignoreCase ? equateStringsCaseInsensitive(str.slice(0, prefix.length), prefix) : str.lastIndexOf(prefix, 0) === 0;\n}\nfunction removePrefix(str, prefix) {\n  return startsWith(str, prefix) ? str.substr(prefix.length) : str;\n}\nfunction tryRemovePrefix(str, prefix, getCanonicalFileName = identity) {\n  return startsWith(getCanonicalFileName(str), getCanonicalFileName(prefix)) ? str.substring(prefix.length) : void 0;\n}\nfunction isPatternMatch({ prefix, suffix }, candidate) {\n  return candidate.length >= prefix.length + suffix.length && startsWith(candidate, prefix) && endsWith(candidate, suffix);\n}\nfunction and(f, g) {\n  return (arg) => f(arg) && g(arg);\n}\nfunction or(...fs) {\n  return (...args) => {\n    let lastResult;\n    for (const f of fs) {\n      lastResult = f(...args);\n      if (lastResult) {\n        return lastResult;\n      }\n    }\n    return lastResult;\n  };\n}\nfunction not(fn) {\n  return (...args) => !fn(...args);\n}\nfunction assertType(_) {\n}\nfunction singleElementArray(t) {\n  return t === void 0 ? void 0 : [t];\n}\nfunction enumerateInsertsAndDeletes(newItems, oldItems, comparer, inserted, deleted, unchanged) {\n  unchanged ?? (unchanged = noop);\n  let newIndex = 0;\n  let oldIndex = 0;\n  const newLen = newItems.length;\n  const oldLen = oldItems.length;\n  let hasChanges = false;\n  while (newIndex < newLen && oldIndex < oldLen) {\n    const newItem = newItems[newIndex];\n    const oldItem = oldItems[oldIndex];\n    const compareResult = comparer(newItem, oldItem);\n    if (compareResult === -1 /* LessThan */) {\n      inserted(newItem);\n      newIndex++;\n      hasChanges = true;\n    } else if (compareResult === 1 /* GreaterThan */) {\n      deleted(oldItem);\n      oldIndex++;\n      hasChanges = true;\n    } else {\n      unchanged(oldItem, newItem);\n      newIndex++;\n      oldIndex++;\n    }\n  }\n  while (newIndex < newLen) {\n    inserted(newItems[newIndex++]);\n    hasChanges = true;\n  }\n  while (oldIndex < oldLen) {\n    deleted(oldItems[oldIndex++]);\n    hasChanges = true;\n  }\n  return hasChanges;\n}\nfunction cartesianProduct(arrays) {\n  const result = [];\n  cartesianProductWorker(\n    arrays,\n    result,\n    /*outer*/\n    void 0,\n    0\n  );\n  return result;\n}\nfunction cartesianProductWorker(arrays, result, outer, index) {\n  for (const element of arrays[index]) {\n    let inner;\n    if (outer) {\n      inner = outer.slice();\n      inner.push(element);\n    } else {\n      inner = [element];\n    }\n    if (index === arrays.length - 1) {\n      result.push(inner);\n    } else {\n      cartesianProductWorker(arrays, result, inner, index + 1);\n    }\n  }\n}\nfunction takeWhile(array, predicate) {\n  if (array !== void 0) {\n    const len = array.length;\n    let index = 0;\n    while (index < len && predicate(array[index])) {\n      index++;\n    }\n    return array.slice(0, index);\n  }\n}\nfunction skipWhile(array, predicate) {\n  if (array !== void 0) {\n    const len = array.length;\n    let index = 0;\n    while (index < len && predicate(array[index])) {\n      index++;\n    }\n    return array.slice(index);\n  }\n}\nfunction isNodeLikeSystem() {\n  return typeof process !== \"undefined\" && !!process.nextTick && !process.browser && typeof require !== \"undefined\";\n}\n\n// src/compiler/debug.ts\nvar LogLevel = /* @__PURE__ */ ((LogLevel3) => {\n  LogLevel3[LogLevel3[\"Off\"] = 0] = \"Off\";\n  LogLevel3[LogLevel3[\"Error\"] = 1] = \"Error\";\n  LogLevel3[LogLevel3[\"Warning\"] = 2] = \"Warning\";\n  LogLevel3[LogLevel3[\"Info\"] = 3] = \"Info\";\n  LogLevel3[LogLevel3[\"Verbose\"] = 4] = \"Verbose\";\n  return LogLevel3;\n})(LogLevel || {});\nvar Debug;\n((Debug2) => {\n  let currentAssertionLevel = 0 /* None */;\n  Debug2.currentLogLevel = 2 /* Warning */;\n  Debug2.isDebugging = false;\n  function shouldLog(level) {\n    return Debug2.currentLogLevel <= level;\n  }\n  Debug2.shouldLog = shouldLog;\n  function logMessage(level, s) {\n    if (Debug2.loggingHost && shouldLog(level)) {\n      Debug2.loggingHost.log(level, s);\n    }\n  }\n  function log(s) {\n    logMessage(3 /* Info */, s);\n  }\n  Debug2.log = log;\n  ((_log) => {\n    function error2(s) {\n      logMessage(1 /* Error */, s);\n    }\n    _log.error = error2;\n    function warn(s) {\n      logMessage(2 /* Warning */, s);\n    }\n    _log.warn = warn;\n    function log2(s) {\n      logMessage(3 /* Info */, s);\n    }\n    _log.log = log2;\n    function trace2(s) {\n      logMessage(4 /* Verbose */, s);\n    }\n    _log.trace = trace2;\n  })(log = Debug2.log || (Debug2.log = {}));\n  const assertionCache = {};\n  function getAssertionLevel() {\n    return currentAssertionLevel;\n  }\n  Debug2.getAssertionLevel = getAssertionLevel;\n  function setAssertionLevel(level) {\n    const prevAssertionLevel = currentAssertionLevel;\n    currentAssertionLevel = level;\n    if (level > prevAssertionLevel) {\n      for (const key of getOwnKeys(assertionCache)) {\n        const cachedFunc = assertionCache[key];\n        if (cachedFunc !== void 0 && Debug2[key] !== cachedFunc.assertion && level >= cachedFunc.level) {\n          Debug2[key] = cachedFunc;\n          assertionCache[key] = void 0;\n        }\n      }\n    }\n  }\n  Debug2.setAssertionLevel = setAssertionLevel;\n  function shouldAssert(level) {\n    return currentAssertionLevel >= level;\n  }\n  Debug2.shouldAssert = shouldAssert;\n  function shouldAssertFunction(level, name) {\n    if (!shouldAssert(level)) {\n      assertionCache[name] = { level, assertion: Debug2[name] };\n      Debug2[name] = noop;\n      return false;\n    }\n    return true;\n  }\n  function fail(message, stackCrawlMark) {\n    debugger;\n    const e = new Error(message ? `Debug Failure. ${message}` : \"Debug Failure.\");\n    if (Error.captureStackTrace) {\n      Error.captureStackTrace(e, stackCrawlMark || fail);\n    }\n    throw e;\n  }\n  Debug2.fail = fail;\n  function failBadSyntaxKind(node, message, stackCrawlMark) {\n    return fail(\n      `${message || \"Unexpected node.\"}\\r\nNode ${formatSyntaxKind(node.kind)} was unexpected.`,\n      stackCrawlMark || failBadSyntaxKind\n    );\n  }\n  Debug2.failBadSyntaxKind = failBadSyntaxKind;\n  function assert(expression, message, verboseDebugInfo, stackCrawlMark) {\n    if (!expression) {\n      message = message ? `False expression: ${message}` : \"False expression.\";\n      if (verboseDebugInfo) {\n        message += \"\\r\\nVerbose Debug Information: \" + (typeof verboseDebugInfo === \"string\" ? verboseDebugInfo : verboseDebugInfo());\n      }\n      fail(message, stackCrawlMark || assert);\n    }\n  }\n  Debug2.assert = assert;\n  function assertEqual(a, b, msg, msg2, stackCrawlMark) {\n    if (a !== b) {\n      const message = msg ? msg2 ? `${msg} ${msg2}` : msg : \"\";\n      fail(`Expected ${a} === ${b}. ${message}`, stackCrawlMark || assertEqual);\n    }\n  }\n  Debug2.assertEqual = assertEqual;\n  function assertLessThan(a, b, msg, stackCrawlMark) {\n    if (a >= b) {\n      fail(`Expected ${a} < ${b}. ${msg || \"\"}`, stackCrawlMark || assertLessThan);\n    }\n  }\n  Debug2.assertLessThan = assertLessThan;\n  function assertLessThanOrEqual(a, b, stackCrawlMark) {\n    if (a > b) {\n      fail(`Expected ${a} <= ${b}`, stackCrawlMark || assertLessThanOrEqual);\n    }\n  }\n  Debug2.assertLessThanOrEqual = assertLessThanOrEqual;\n  function assertGreaterThanOrEqual(a, b, stackCrawlMark) {\n    if (a < b) {\n      fail(`Expected ${a} >= ${b}`, stackCrawlMark || assertGreaterThanOrEqual);\n    }\n  }\n  Debug2.assertGreaterThanOrEqual = assertGreaterThanOrEqual;\n  function assertIsDefined(value, message, stackCrawlMark) {\n    if (value === void 0 || value === null) {\n      fail(message, stackCrawlMark || assertIsDefined);\n    }\n  }\n  Debug2.assertIsDefined = assertIsDefined;\n  function checkDefined(value, message, stackCrawlMark) {\n    assertIsDefined(value, message, stackCrawlMark || checkDefined);\n    return value;\n  }\n  Debug2.checkDefined = checkDefined;\n  function assertEachIsDefined(value, message, stackCrawlMark) {\n    for (const v of value) {\n      assertIsDefined(v, message, stackCrawlMark || assertEachIsDefined);\n    }\n  }\n  Debug2.assertEachIsDefined = assertEachIsDefined;\n  function checkEachDefined(value, message, stackCrawlMark) {\n    assertEachIsDefined(value, message, stackCrawlMark || checkEachDefined);\n    return value;\n  }\n  Debug2.checkEachDefined = checkEachDefined;\n  function assertNever(member, message = \"Illegal value:\", stackCrawlMark) {\n    const detail = typeof member === \"object\" && hasProperty(member, \"kind\") && hasProperty(member, \"pos\") ? \"SyntaxKind: \" + formatSyntaxKind(member.kind) : JSON.stringify(member);\n    return fail(`${message} ${detail}`, stackCrawlMark || assertNever);\n  }\n  Debug2.assertNever = assertNever;\n  function assertEachNode(nodes, test, message, stackCrawlMark) {\n    if (shouldAssertFunction(1 /* Normal */, \"assertEachNode\")) {\n      assert(\n        test === void 0 || every(nodes, test),\n        message || \"Unexpected node.\",\n        () => `Node array did not pass test '${getFunctionName(test)}'.`,\n        stackCrawlMark || assertEachNode\n      );\n    }\n  }\n  Debug2.assertEachNode = assertEachNode;\n  function assertNode(node, test, message, stackCrawlMark) {\n    if (shouldAssertFunction(1 /* Normal */, \"assertNode\")) {\n      assert(\n        node !== void 0 && (test === void 0 || test(node)),\n        message || \"Unexpected node.\",\n        () => `Node ${formatSyntaxKind(node == null ? void 0 : node.kind)} did not pass test '${getFunctionName(test)}'.`,\n        stackCrawlMark || assertNode\n      );\n    }\n  }\n  Debug2.assertNode = assertNode;\n  function assertNotNode(node, test, message, stackCrawlMark) {\n    if (shouldAssertFunction(1 /* Normal */, \"assertNotNode\")) {\n      assert(\n        node === void 0 || test === void 0 || !test(node),\n        message || \"Unexpected node.\",\n        () => `Node ${formatSyntaxKind(node.kind)} should not have passed test '${getFunctionName(test)}'.`,\n        stackCrawlMark || assertNotNode\n      );\n    }\n  }\n  Debug2.assertNotNode = assertNotNode;\n  function assertOptionalNode(node, test, message, stackCrawlMark) {\n    if (shouldAssertFunction(1 /* Normal */, \"assertOptionalNode\")) {\n      assert(\n        test === void 0 || node === void 0 || test(node),\n        message || \"Unexpected node.\",\n        () => `Node ${formatSyntaxKind(node == null ? void 0 : node.kind)} did not pass test '${getFunctionName(test)}'.`,\n        stackCrawlMark || assertOptionalNode\n      );\n    }\n  }\n  Debug2.assertOptionalNode = assertOptionalNode;\n  function assertOptionalToken(node, kind, message, stackCrawlMark) {\n    if (shouldAssertFunction(1 /* Normal */, \"assertOptionalToken\")) {\n      assert(\n        kind === void 0 || node === void 0 || node.kind === kind,\n        message || \"Unexpected node.\",\n        () => `Node ${formatSyntaxKind(node == null ? void 0 : node.kind)} was not a '${formatSyntaxKind(kind)}' token.`,\n        stackCrawlMark || assertOptionalToken\n      );\n    }\n  }\n  Debug2.assertOptionalToken = assertOptionalToken;\n  function assertMissingNode(node, message, stackCrawlMark) {\n    if (shouldAssertFunction(1 /* Normal */, \"assertMissingNode\")) {\n      assert(\n        node === void 0,\n        message || \"Unexpected node.\",\n        () => `Node ${formatSyntaxKind(node.kind)} was unexpected'.`,\n        stackCrawlMark || assertMissingNode\n      );\n    }\n  }\n  Debug2.assertMissingNode = assertMissingNode;\n  function type(_value) {\n  }\n  Debug2.type = type;\n  function getFunctionName(func) {\n    if (typeof func !== \"function\") {\n      return \"\";\n    } else if (hasProperty(func, \"name\")) {\n      return func.name;\n    } else {\n      const text = Function.prototype.toString.call(func);\n      const match = /^function\\s+([\\w$]+)\\s*\\(/.exec(text);\n      return match ? match[1] : \"\";\n    }\n  }\n  Debug2.getFunctionName = getFunctionName;\n  function formatSymbol(symbol) {\n    return `{ name: ${unescapeLeadingUnderscores(symbol.escapedName)}; flags: ${formatSymbolFlags(symbol.flags)}; declarations: ${map(symbol.declarations, (node) => formatSyntaxKind(node.kind))} }`;\n  }\n  Debug2.formatSymbol = formatSymbol;\n  function formatEnum(value = 0, enumObject, isFlags) {\n    const members = getEnumMembers(enumObject);\n    if (value === 0) {\n      return members.length > 0 && members[0][0] === 0 ? members[0][1] : \"0\";\n    }\n    if (isFlags) {\n      const result = [];\n      let remainingFlags = value;\n      for (const [enumValue, enumName] of members) {\n        if (enumValue > value) {\n          break;\n        }\n        if (enumValue !== 0 && enumValue & value) {\n          result.push(enumName);\n          remainingFlags &= ~enumValue;\n        }\n      }\n      if (remainingFlags === 0) {\n        return result.join(\"|\");\n      }\n    } else {\n      for (const [enumValue, enumName] of members) {\n        if (enumValue === value) {\n          return enumName;\n        }\n      }\n    }\n    return value.toString();\n  }\n  Debug2.formatEnum = formatEnum;\n  const enumMemberCache = /* @__PURE__ */ new Map();\n  function getEnumMembers(enumObject) {\n    const existing = enumMemberCache.get(enumObject);\n    if (existing) {\n      return existing;\n    }\n    const result = [];\n    for (const name in enumObject) {\n      const value = enumObject[name];\n      if (typeof value === \"number\") {\n        result.push([value, name]);\n      }\n    }\n    const sorted = toSorted(result, (x, y) => compareValues(x[0], y[0]));\n    enumMemberCache.set(enumObject, sorted);\n    return sorted;\n  }\n  function formatSyntaxKind(kind) {\n    return formatEnum(\n      kind,\n      SyntaxKind,\n      /*isFlags*/\n      false\n    );\n  }\n  Debug2.formatSyntaxKind = formatSyntaxKind;\n  function formatSnippetKind(kind) {\n    return formatEnum(\n      kind,\n      SnippetKind,\n      /*isFlags*/\n      false\n    );\n  }\n  Debug2.formatSnippetKind = formatSnippetKind;\n  function formatScriptKind(kind) {\n    return formatEnum(\n      kind,\n      ScriptKind,\n      /*isFlags*/\n      false\n    );\n  }\n  Debug2.formatScriptKind = formatScriptKind;\n  function formatNodeFlags(flags) {\n    return formatEnum(\n      flags,\n      NodeFlags,\n      /*isFlags*/\n      true\n    );\n  }\n  Debug2.formatNodeFlags = formatNodeFlags;\n  function formatNodeCheckFlags(flags) {\n    return formatEnum(\n      flags,\n      NodeCheckFlags,\n      /*isFlags*/\n      true\n    );\n  }\n  Debug2.formatNodeCheckFlags = formatNodeCheckFlags;\n  function formatModifierFlags(flags) {\n    return formatEnum(\n      flags,\n      ModifierFlags,\n      /*isFlags*/\n      true\n    );\n  }\n  Debug2.formatModifierFlags = formatModifierFlags;\n  function formatTransformFlags(flags) {\n    return formatEnum(\n      flags,\n      TransformFlags,\n      /*isFlags*/\n      true\n    );\n  }\n  Debug2.formatTransformFlags = formatTransformFlags;\n  function formatEmitFlags(flags) {\n    return formatEnum(\n      flags,\n      EmitFlags,\n      /*isFlags*/\n      true\n    );\n  }\n  Debug2.formatEmitFlags = formatEmitFlags;\n  function formatSymbolFlags(flags) {\n    return formatEnum(\n      flags,\n      SymbolFlags,\n      /*isFlags*/\n      true\n    );\n  }\n  Debug2.formatSymbolFlags = formatSymbolFlags;\n  function formatTypeFlags(flags) {\n    return formatEnum(\n      flags,\n      TypeFlags,\n      /*isFlags*/\n      true\n    );\n  }\n  Debug2.formatTypeFlags = formatTypeFlags;\n  function formatSignatureFlags(flags) {\n    return formatEnum(\n      flags,\n      SignatureFlags,\n      /*isFlags*/\n      true\n    );\n  }\n  Debug2.formatSignatureFlags = formatSignatureFlags;\n  function formatObjectFlags(flags) {\n    return formatEnum(\n      flags,\n      ObjectFlags,\n      /*isFlags*/\n      true\n    );\n  }\n  Debug2.formatObjectFlags = formatObjectFlags;\n  function formatFlowFlags(flags) {\n    return formatEnum(\n      flags,\n      FlowFlags,\n      /*isFlags*/\n      true\n    );\n  }\n  Debug2.formatFlowFlags = formatFlowFlags;\n  function formatRelationComparisonResult(result) {\n    return formatEnum(\n      result,\n      RelationComparisonResult,\n      /*isFlags*/\n      true\n    );\n  }\n  Debug2.formatRelationComparisonResult = formatRelationComparisonResult;\n  function formatCheckMode(mode) {\n    return formatEnum(\n      mode,\n      CheckMode,\n      /*isFlags*/\n      true\n    );\n  }\n  Debug2.formatCheckMode = formatCheckMode;\n  function formatSignatureCheckMode(mode) {\n    return formatEnum(\n      mode,\n      SignatureCheckMode,\n      /*isFlags*/\n      true\n    );\n  }\n  Debug2.formatSignatureCheckMode = formatSignatureCheckMode;\n  function formatTypeFacts(facts) {\n    return formatEnum(\n      facts,\n      TypeFacts,\n      /*isFlags*/\n      true\n    );\n  }\n  Debug2.formatTypeFacts = formatTypeFacts;\n  let isDebugInfoEnabled = false;\n  let flowNodeProto;\n  function attachFlowNodeDebugInfoWorker(flowNode) {\n    if (!(\"__debugFlowFlags\" in flowNode)) {\n      Object.defineProperties(flowNode, {\n        // for use with vscode-js-debug's new customDescriptionGenerator in launch.json\n        __tsDebuggerDisplay: {\n          value() {\n            const flowHeader = this.flags & 2 /* Start */ ? \"FlowStart\" : this.flags & 4 /* BranchLabel */ ? \"FlowBranchLabel\" : this.flags & 8 /* LoopLabel */ ? \"FlowLoopLabel\" : this.flags & 16 /* Assignment */ ? \"FlowAssignment\" : this.flags & 32 /* TrueCondition */ ? \"FlowTrueCondition\" : this.flags & 64 /* FalseCondition */ ? \"FlowFalseCondition\" : this.flags & 128 /* SwitchClause */ ? \"FlowSwitchClause\" : this.flags & 256 /* ArrayMutation */ ? \"FlowArrayMutation\" : this.flags & 512 /* Call */ ? \"FlowCall\" : this.flags & 1024 /* ReduceLabel */ ? \"FlowReduceLabel\" : this.flags & 1 /* Unreachable */ ? \"FlowUnreachable\" : \"UnknownFlow\";\n            const remainingFlags = this.flags & ~(2048 /* Referenced */ - 1);\n            return `${flowHeader}${remainingFlags ? ` (${formatFlowFlags(remainingFlags)})` : \"\"}`;\n          }\n        },\n        __debugFlowFlags: {\n          get() {\n            return formatEnum(\n              this.flags,\n              FlowFlags,\n              /*isFlags*/\n              true\n            );\n          }\n        },\n        __debugToString: {\n          value() {\n            return formatControlFlowGraph(this);\n          }\n        }\n      });\n    }\n  }\n  function attachFlowNodeDebugInfo(flowNode) {\n    if (isDebugInfoEnabled) {\n      if (typeof Object.setPrototypeOf === \"function\") {\n        if (!flowNodeProto) {\n          flowNodeProto = Object.create(Object.prototype);\n          attachFlowNodeDebugInfoWorker(flowNodeProto);\n        }\n        Object.setPrototypeOf(flowNode, flowNodeProto);\n      } else {\n        attachFlowNodeDebugInfoWorker(flowNode);\n      }\n    }\n    return flowNode;\n  }\n  Debug2.attachFlowNodeDebugInfo = attachFlowNodeDebugInfo;\n  let nodeArrayProto;\n  function attachNodeArrayDebugInfoWorker(array) {\n    if (!(\"__tsDebuggerDisplay\" in array)) {\n      Object.defineProperties(array, {\n        __tsDebuggerDisplay: {\n          value(defaultValue) {\n            defaultValue = String(defaultValue).replace(/(?:,[\\s\\w]+:[^,]+)+\\]$/, \"]\");\n            return `NodeArray ${defaultValue}`;\n          }\n        }\n      });\n    }\n  }\n  function attachNodeArrayDebugInfo(array) {\n    if (isDebugInfoEnabled) {\n      if (typeof Object.setPrototypeOf === \"function\") {\n        if (!nodeArrayProto) {\n          nodeArrayProto = Object.create(Array.prototype);\n          attachNodeArrayDebugInfoWorker(nodeArrayProto);\n        }\n        Object.setPrototypeOf(array, nodeArrayProto);\n      } else {\n        attachNodeArrayDebugInfoWorker(array);\n      }\n    }\n  }\n  Debug2.attachNodeArrayDebugInfo = attachNodeArrayDebugInfo;\n  function enableDebugInfo() {\n    if (isDebugInfoEnabled) return;\n    const weakTypeTextMap = /* @__PURE__ */ new WeakMap();\n    const weakNodeTextMap = /* @__PURE__ */ new WeakMap();\n    Object.defineProperties(objectAllocator.getSymbolConstructor().prototype, {\n      // for use with vscode-js-debug's new customDescriptionGenerator in launch.json\n      __tsDebuggerDisplay: {\n        value() {\n          const symbolHeader = this.flags & 33554432 /* Transient */ ? \"TransientSymbol\" : \"Symbol\";\n          const remainingSymbolFlags = this.flags & ~33554432 /* Transient */;\n          return `${symbolHeader} '${symbolName(this)}'${remainingSymbolFlags ? ` (${formatSymbolFlags(remainingSymbolFlags)})` : \"\"}`;\n        }\n      },\n      __debugFlags: {\n        get() {\n          return formatSymbolFlags(this.flags);\n        }\n      }\n    });\n    Object.defineProperties(objectAllocator.getTypeConstructor().prototype, {\n      // for use with vscode-js-debug's new customDescriptionGenerator in launch.json\n      __tsDebuggerDisplay: {\n        value() {\n          const typeHeader = this.flags & 67359327 /* Intrinsic */ ? `IntrinsicType ${this.intrinsicName}${this.debugIntrinsicName ? ` (${this.debugIntrinsicName})` : \"\"}` : this.flags & 98304 /* Nullable */ ? \"NullableType\" : this.flags & 384 /* StringOrNumberLiteral */ ? `LiteralType ${JSON.stringify(this.value)}` : this.flags & 2048 /* BigIntLiteral */ ? `LiteralType ${this.value.negative ? \"-\" : \"\"}${this.value.base10Value}n` : this.flags & 8192 /* UniqueESSymbol */ ? \"UniqueESSymbolType\" : this.flags & 32 /* Enum */ ? \"EnumType\" : this.flags & 1048576 /* Union */ ? \"UnionType\" : this.flags & 2097152 /* Intersection */ ? \"IntersectionType\" : this.flags & 4194304 /* Index */ ? \"IndexType\" : this.flags & 8388608 /* IndexedAccess */ ? \"IndexedAccessType\" : this.flags & 16777216 /* Conditional */ ? \"ConditionalType\" : this.flags & 33554432 /* Substitution */ ? \"SubstitutionType\" : this.flags & 262144 /* TypeParameter */ ? \"TypeParameter\" : this.flags & 524288 /* Object */ ? this.objectFlags & 3 /* ClassOrInterface */ ? \"InterfaceType\" : this.objectFlags & 4 /* Reference */ ? \"TypeReference\" : this.objectFlags & 8 /* Tuple */ ? \"TupleType\" : this.objectFlags & 16 /* Anonymous */ ? \"AnonymousType\" : this.objectFlags & 32 /* Mapped */ ? \"MappedType\" : this.objectFlags & 1024 /* ReverseMapped */ ? \"ReverseMappedType\" : this.objectFlags & 256 /* EvolvingArray */ ? \"EvolvingArrayType\" : \"ObjectType\" : \"Type\";\n          const remainingObjectFlags = this.flags & 524288 /* Object */ ? this.objectFlags & ~1343 /* ObjectTypeKindMask */ : 0;\n          return `${typeHeader}${this.symbol ? ` '${symbolName(this.symbol)}'` : \"\"}${remainingObjectFlags ? ` (${formatObjectFlags(remainingObjectFlags)})` : \"\"}`;\n        }\n      },\n      __debugFlags: {\n        get() {\n          return formatTypeFlags(this.flags);\n        }\n      },\n      __debugObjectFlags: {\n        get() {\n          return this.flags & 524288 /* Object */ ? formatObjectFlags(this.objectFlags) : \"\";\n        }\n      },\n      __debugTypeToString: {\n        value() {\n          let text = weakTypeTextMap.get(this);\n          if (text === void 0) {\n            text = this.checker.typeToString(this);\n            weakTypeTextMap.set(this, text);\n          }\n          return text;\n        }\n      }\n    });\n    Object.defineProperties(objectAllocator.getSignatureConstructor().prototype, {\n      __debugFlags: {\n        get() {\n          return formatSignatureFlags(this.flags);\n        }\n      },\n      __debugSignatureToString: {\n        value() {\n          var _a;\n          return (_a = this.checker) == null ? void 0 : _a.signatureToString(this);\n        }\n      }\n    });\n    const nodeConstructors = [\n      objectAllocator.getNodeConstructor(),\n      objectAllocator.getIdentifierConstructor(),\n      objectAllocator.getTokenConstructor(),\n      objectAllocator.getSourceFileConstructor()\n    ];\n    for (const ctor of nodeConstructors) {\n      if (!hasProperty(ctor.prototype, \"__debugKind\")) {\n        Object.defineProperties(ctor.prototype, {\n          // for use with vscode-js-debug's new customDescriptionGenerator in launch.json\n          __tsDebuggerDisplay: {\n            value() {\n              const nodeHeader = isGeneratedIdentifier(this) ? \"GeneratedIdentifier\" : isIdentifier(this) ? `Identifier '${idText(this)}'` : isPrivateIdentifier(this) ? `PrivateIdentifier '${idText(this)}'` : isStringLiteral(this) ? `StringLiteral ${JSON.stringify(this.text.length < 10 ? this.text : this.text.slice(10) + \"...\")}` : isNumericLiteral(this) ? `NumericLiteral ${this.text}` : isBigIntLiteral(this) ? `BigIntLiteral ${this.text}n` : isTypeParameterDeclaration(this) ? \"TypeParameterDeclaration\" : isParameter(this) ? \"ParameterDeclaration\" : isConstructorDeclaration(this) ? \"ConstructorDeclaration\" : isGetAccessorDeclaration(this) ? \"GetAccessorDeclaration\" : isSetAccessorDeclaration(this) ? \"SetAccessorDeclaration\" : isCallSignatureDeclaration(this) ? \"CallSignatureDeclaration\" : isConstructSignatureDeclaration(this) ? \"ConstructSignatureDeclaration\" : isIndexSignatureDeclaration(this) ? \"IndexSignatureDeclaration\" : isTypePredicateNode(this) ? \"TypePredicateNode\" : isTypeReferenceNode(this) ? \"TypeReferenceNode\" : isFunctionTypeNode(this) ? \"FunctionTypeNode\" : isConstructorTypeNode(this) ? \"ConstructorTypeNode\" : isTypeQueryNode(this) ? \"TypeQueryNode\" : isTypeLiteralNode(this) ? \"TypeLiteralNode\" : isArrayTypeNode(this) ? \"ArrayTypeNode\" : isTupleTypeNode(this) ? \"TupleTypeNode\" : isOptionalTypeNode(this) ? \"OptionalTypeNode\" : isRestTypeNode(this) ? \"RestTypeNode\" : isUnionTypeNode(this) ? \"UnionTypeNode\" : isIntersectionTypeNode(this) ? \"IntersectionTypeNode\" : isConditionalTypeNode(this) ? \"ConditionalTypeNode\" : isInferTypeNode(this) ? \"InferTypeNode\" : isParenthesizedTypeNode(this) ? \"ParenthesizedTypeNode\" : isThisTypeNode(this) ? \"ThisTypeNode\" : isTypeOperatorNode(this) ? \"TypeOperatorNode\" : isIndexedAccessTypeNode(this) ? \"IndexedAccessTypeNode\" : isMappedTypeNode(this) ? \"MappedTypeNode\" : isLiteralTypeNode(this) ? \"LiteralTypeNode\" : isNamedTupleMember(this) ? \"NamedTupleMember\" : isImportTypeNode(this) ? \"ImportTypeNode\" : formatSyntaxKind(this.kind);\n              return `${nodeHeader}${this.flags ? ` (${formatNodeFlags(this.flags)})` : \"\"}`;\n            }\n          },\n          __debugKind: {\n            get() {\n              return formatSyntaxKind(this.kind);\n            }\n          },\n          __debugNodeFlags: {\n            get() {\n              return formatNodeFlags(this.flags);\n            }\n          },\n          __debugModifierFlags: {\n            get() {\n              return formatModifierFlags(getEffectiveModifierFlagsNoCache(this));\n            }\n          },\n          __debugTransformFlags: {\n            get() {\n              return formatTransformFlags(this.transformFlags);\n            }\n          },\n          __debugIsParseTreeNode: {\n            get() {\n              return isParseTreeNode(this);\n            }\n          },\n          __debugEmitFlags: {\n            get() {\n              return formatEmitFlags(getEmitFlags(this));\n            }\n          },\n          __debugGetText: {\n            value(includeTrivia) {\n              if (nodeIsSynthesized(this)) return \"\";\n              let text = weakNodeTextMap.get(this);\n              if (text === void 0) {\n                const parseNode = getParseTreeNode(this);\n                const sourceFile = parseNode && getSourceFileOfNode(parseNode);\n                text = sourceFile ? getSourceTextOfNodeFromSourceFile(sourceFile, parseNode, includeTrivia) : \"\";\n                weakNodeTextMap.set(this, text);\n              }\n              return text;\n            }\n          }\n        });\n      }\n    }\n    isDebugInfoEnabled = true;\n  }\n  Debug2.enableDebugInfo = enableDebugInfo;\n  function formatVariance(varianceFlags) {\n    const variance = varianceFlags & 7 /* VarianceMask */;\n    let result = variance === 0 /* Invariant */ ? \"in out\" : variance === 3 /* Bivariant */ ? \"[bivariant]\" : variance === 2 /* Contravariant */ ? \"in\" : variance === 1 /* Covariant */ ? \"out\" : variance === 4 /* Independent */ ? \"[independent]\" : \"\";\n    if (varianceFlags & 8 /* Unmeasurable */) {\n      result += \" (unmeasurable)\";\n    } else if (varianceFlags & 16 /* Unreliable */) {\n      result += \" (unreliable)\";\n    }\n    return result;\n  }\n  Debug2.formatVariance = formatVariance;\n  class DebugTypeMapper {\n    __debugToString() {\n      var _a;\n      type(this);\n      switch (this.kind) {\n        case 3 /* Function */:\n          return ((_a = this.debugInfo) == null ? void 0 : _a.call(this)) || \"(function mapper)\";\n        case 0 /* Simple */:\n          return `${this.source.__debugTypeToString()} -> ${this.target.__debugTypeToString()}`;\n        case 1 /* Array */:\n          return zipWith(\n            this.sources,\n            this.targets || map(this.sources, () => \"any\"),\n            (s, t) => `${s.__debugTypeToString()} -> ${typeof t === \"string\" ? t : t.__debugTypeToString()}`\n          ).join(\", \");\n        case 2 /* Deferred */:\n          return zipWith(\n            this.sources,\n            this.targets,\n            (s, t) => `${s.__debugTypeToString()} -> ${t().__debugTypeToString()}`\n          ).join(\", \");\n        case 5 /* Merged */:\n        case 4 /* Composite */:\n          return `m1: ${this.mapper1.__debugToString().split(\"\\n\").join(\"\\n    \")}\nm2: ${this.mapper2.__debugToString().split(\"\\n\").join(\"\\n    \")}`;\n        default:\n          return assertNever(this);\n      }\n    }\n  }\n  Debug2.DebugTypeMapper = DebugTypeMapper;\n  function attachDebugPrototypeIfDebug(mapper) {\n    if (Debug2.isDebugging) {\n      return Object.setPrototypeOf(mapper, DebugTypeMapper.prototype);\n    }\n    return mapper;\n  }\n  Debug2.attachDebugPrototypeIfDebug = attachDebugPrototypeIfDebug;\n  function printControlFlowGraph(flowNode) {\n    return console.log(formatControlFlowGraph(flowNode));\n  }\n  Debug2.printControlFlowGraph = printControlFlowGraph;\n  function formatControlFlowGraph(flowNode) {\n    let nextDebugFlowId = -1;\n    function getDebugFlowNodeId(f) {\n      if (!f.id) {\n        f.id = nextDebugFlowId;\n        nextDebugFlowId--;\n      }\n      return f.id;\n    }\n    let BoxCharacter;\n    ((BoxCharacter2) => {\n      BoxCharacter2[\"lr\"] = \"\\u2500\";\n      BoxCharacter2[\"ud\"] = \"\\u2502\";\n      BoxCharacter2[\"dr\"] = \"\\u256D\";\n      BoxCharacter2[\"dl\"] = \"\\u256E\";\n      BoxCharacter2[\"ul\"] = \"\\u256F\";\n      BoxCharacter2[\"ur\"] = \"\\u2570\";\n      BoxCharacter2[\"udr\"] = \"\\u251C\";\n      BoxCharacter2[\"udl\"] = \"\\u2524\";\n      BoxCharacter2[\"dlr\"] = \"\\u252C\";\n      BoxCharacter2[\"ulr\"] = \"\\u2534\";\n      BoxCharacter2[\"udlr\"] = \"\\u256B\";\n    })(BoxCharacter || (BoxCharacter = {}));\n    let Connection;\n    ((Connection2) => {\n      Connection2[Connection2[\"None\"] = 0] = \"None\";\n      Connection2[Connection2[\"Up\"] = 1] = \"Up\";\n      Connection2[Connection2[\"Down\"] = 2] = \"Down\";\n      Connection2[Connection2[\"Left\"] = 4] = \"Left\";\n      Connection2[Connection2[\"Right\"] = 8] = \"Right\";\n      Connection2[Connection2[\"UpDown\"] = 3] = \"UpDown\";\n      Connection2[Connection2[\"LeftRight\"] = 12] = \"LeftRight\";\n      Connection2[Connection2[\"UpLeft\"] = 5] = \"UpLeft\";\n      Connection2[Connection2[\"UpRight\"] = 9] = \"UpRight\";\n      Connection2[Connection2[\"DownLeft\"] = 6] = \"DownLeft\";\n      Connection2[Connection2[\"DownRight\"] = 10] = \"DownRight\";\n      Connection2[Connection2[\"UpDownLeft\"] = 7] = \"UpDownLeft\";\n      Connection2[Connection2[\"UpDownRight\"] = 11] = \"UpDownRight\";\n      Connection2[Connection2[\"UpLeftRight\"] = 13] = \"UpLeftRight\";\n      Connection2[Connection2[\"DownLeftRight\"] = 14] = \"DownLeftRight\";\n      Connection2[Connection2[\"UpDownLeftRight\"] = 15] = \"UpDownLeftRight\";\n      Connection2[Connection2[\"NoChildren\"] = 16] = \"NoChildren\";\n    })(Connection || (Connection = {}));\n    const hasAntecedentFlags = 16 /* Assignment */ | 96 /* Condition */ | 128 /* SwitchClause */ | 256 /* ArrayMutation */ | 512 /* Call */ | 1024 /* ReduceLabel */;\n    const hasNodeFlags = 2 /* Start */ | 16 /* Assignment */ | 512 /* Call */ | 96 /* Condition */ | 256 /* ArrayMutation */;\n    const links = /* @__PURE__ */ Object.create(\n      /*o*/\n      null\n    );\n    const nodes = [];\n    const edges = [];\n    const root = buildGraphNode(flowNode, /* @__PURE__ */ new Set());\n    for (const node of nodes) {\n      node.text = renderFlowNode(node.flowNode, node.circular);\n      computeLevel(node);\n    }\n    const height = computeHeight(root);\n    const columnWidths = computeColumnWidths(height);\n    computeLanes(root, 0);\n    return renderGraph();\n    function isFlowSwitchClause(f) {\n      return !!(f.flags & 128 /* SwitchClause */);\n    }\n    function hasAntecedents(f) {\n      return !!(f.flags & 12 /* Label */) && !!f.antecedent;\n    }\n    function hasAntecedent(f) {\n      return !!(f.flags & hasAntecedentFlags);\n    }\n    function hasNode(f) {\n      return !!(f.flags & hasNodeFlags);\n    }\n    function getChildren(node) {\n      const children = [];\n      for (const edge of node.edges) {\n        if (edge.source === node) {\n          children.push(edge.target);\n        }\n      }\n      return children;\n    }\n    function getParents(node) {\n      const parents = [];\n      for (const edge of node.edges) {\n        if (edge.target === node) {\n          parents.push(edge.source);\n        }\n      }\n      return parents;\n    }\n    function buildGraphNode(flowNode2, seen) {\n      const id = getDebugFlowNodeId(flowNode2);\n      let graphNode = links[id];\n      if (graphNode && seen.has(flowNode2)) {\n        graphNode.circular = true;\n        graphNode = {\n          id: -1,\n          flowNode: flowNode2,\n          edges: [],\n          text: \"\",\n          lane: -1,\n          endLane: -1,\n          level: -1,\n          circular: \"circularity\"\n        };\n        nodes.push(graphNode);\n        return graphNode;\n      }\n      seen.add(flowNode2);\n      if (!graphNode) {\n        links[id] = graphNode = { id, flowNode: flowNode2, edges: [], text: \"\", lane: -1, endLane: -1, level: -1, circular: false };\n        nodes.push(graphNode);\n        if (hasAntecedents(flowNode2)) {\n          for (const antecedent of flowNode2.antecedent) {\n            buildGraphEdge(graphNode, antecedent, seen);\n          }\n        } else if (hasAntecedent(flowNode2)) {\n          buildGraphEdge(graphNode, flowNode2.antecedent, seen);\n        }\n      }\n      seen.delete(flowNode2);\n      return graphNode;\n    }\n    function buildGraphEdge(source, antecedent, seen) {\n      const target = buildGraphNode(antecedent, seen);\n      const edge = { source, target };\n      edges.push(edge);\n      source.edges.push(edge);\n      target.edges.push(edge);\n    }\n    function computeLevel(node) {\n      if (node.level !== -1) {\n        return node.level;\n      }\n      let level = 0;\n      for (const parent2 of getParents(node)) {\n        level = Math.max(level, computeLevel(parent2) + 1);\n      }\n      return node.level = level;\n    }\n    function computeHeight(node) {\n      let height2 = 0;\n      for (const child of getChildren(node)) {\n        height2 = Math.max(height2, computeHeight(child));\n      }\n      return height2 + 1;\n    }\n    function computeColumnWidths(height2) {\n      const columns = fill(Array(height2), 0);\n      for (const node of nodes) {\n        columns[node.level] = Math.max(columns[node.level], node.text.length);\n      }\n      return columns;\n    }\n    function computeLanes(node, lane) {\n      if (node.lane === -1) {\n        node.lane = lane;\n        node.endLane = lane;\n        const children = getChildren(node);\n        for (let i = 0; i < children.length; i++) {\n          if (i > 0) lane++;\n          const child = children[i];\n          computeLanes(child, lane);\n          if (child.endLane > node.endLane) {\n            lane = child.endLane;\n          }\n        }\n        node.endLane = lane;\n      }\n    }\n    function getHeader2(flags) {\n      if (flags & 2 /* Start */) return \"Start\";\n      if (flags & 4 /* BranchLabel */) return \"Branch\";\n      if (flags & 8 /* LoopLabel */) return \"Loop\";\n      if (flags & 16 /* Assignment */) return \"Assignment\";\n      if (flags & 32 /* TrueCondition */) return \"True\";\n      if (flags & 64 /* FalseCondition */) return \"False\";\n      if (flags & 128 /* SwitchClause */) return \"SwitchClause\";\n      if (flags & 256 /* ArrayMutation */) return \"ArrayMutation\";\n      if (flags & 512 /* Call */) return \"Call\";\n      if (flags & 1024 /* ReduceLabel */) return \"ReduceLabel\";\n      if (flags & 1 /* Unreachable */) return \"Unreachable\";\n      throw new Error();\n    }\n    function getNodeText(node) {\n      const sourceFile = getSourceFileOfNode(node);\n      return getSourceTextOfNodeFromSourceFile(\n        sourceFile,\n        node,\n        /*includeTrivia*/\n        false\n      );\n    }\n    function renderFlowNode(flowNode2, circular) {\n      let text = getHeader2(flowNode2.flags);\n      if (circular) {\n        text = `${text}#${getDebugFlowNodeId(flowNode2)}`;\n      }\n      if (isFlowSwitchClause(flowNode2)) {\n        const clauses = [];\n        const { switchStatement, clauseStart, clauseEnd } = flowNode2.node;\n        for (let i = clauseStart; i < clauseEnd; i++) {\n          const clause = switchStatement.caseBlock.clauses[i];\n          if (isDefaultClause(clause)) {\n            clauses.push(\"default\");\n          } else {\n            clauses.push(getNodeText(clause.expression));\n          }\n        }\n        text += ` (${clauses.join(\", \")})`;\n      } else if (hasNode(flowNode2)) {\n        if (flowNode2.node) {\n          text += ` (${getNodeText(flowNode2.node)})`;\n        }\n      }\n      return circular === \"circularity\" ? `Circular(${text})` : text;\n    }\n    function renderGraph() {\n      const columnCount = columnWidths.length;\n      const laneCount = maxBy(nodes, 0, (n) => n.lane) + 1;\n      const lanes = fill(Array(laneCount), \"\");\n      const grid = columnWidths.map(() => Array(laneCount));\n      const connectors = columnWidths.map(() => fill(Array(laneCount), 0));\n      for (const node of nodes) {\n        grid[node.level][node.lane] = node;\n        const children = getChildren(node);\n        for (let i = 0; i < children.length; i++) {\n          const child = children[i];\n          let connector = 8 /* Right */;\n          if (child.lane === node.lane) connector |= 4 /* Left */;\n          if (i > 0) connector |= 1 /* Up */;\n          if (i < children.length - 1) connector |= 2 /* Down */;\n          connectors[node.level][child.lane] |= connector;\n        }\n        if (children.length === 0) {\n          connectors[node.level][node.lane] |= 16 /* NoChildren */;\n        }\n        const parents = getParents(node);\n        for (let i = 0; i < parents.length; i++) {\n          const parent2 = parents[i];\n          let connector = 4 /* Left */;\n          if (i > 0) connector |= 1 /* Up */;\n          if (i < parents.length - 1) connector |= 2 /* Down */;\n          connectors[node.level - 1][parent2.lane] |= connector;\n        }\n      }\n      for (let column = 0; column < columnCount; column++) {\n        for (let lane = 0; lane < laneCount; lane++) {\n          const left = column > 0 ? connectors[column - 1][lane] : 0;\n          const above = lane > 0 ? connectors[column][lane - 1] : 0;\n          let connector = connectors[column][lane];\n          if (!connector) {\n            if (left & 8 /* Right */) connector |= 12 /* LeftRight */;\n            if (above & 2 /* Down */) connector |= 3 /* UpDown */;\n            connectors[column][lane] = connector;\n          }\n        }\n      }\n      for (let column = 0; column < columnCount; column++) {\n        for (let lane = 0; lane < lanes.length; lane++) {\n          const connector = connectors[column][lane];\n          const fill2 = connector & 4 /* Left */ ? \"\\u2500\" /* lr */ : \" \";\n          const node = grid[column][lane];\n          if (!node) {\n            if (column < columnCount - 1) {\n              writeLane(lane, repeat(fill2, columnWidths[column] + 1));\n            }\n          } else {\n            writeLane(lane, node.text);\n            if (column < columnCount - 1) {\n              writeLane(lane, \" \");\n              writeLane(lane, repeat(fill2, columnWidths[column] - node.text.length));\n            }\n          }\n          writeLane(lane, getBoxCharacter(connector));\n          writeLane(lane, connector & 8 /* Right */ && column < columnCount - 1 && !grid[column + 1][lane] ? \"\\u2500\" /* lr */ : \" \");\n        }\n      }\n      return `\n${lanes.join(\"\\n\")}\n`;\n      function writeLane(lane, text) {\n        lanes[lane] += text;\n      }\n    }\n    function getBoxCharacter(connector) {\n      switch (connector) {\n        case 3 /* UpDown */:\n          return \"\\u2502\" /* ud */;\n        case 12 /* LeftRight */:\n          return \"\\u2500\" /* lr */;\n        case 5 /* UpLeft */:\n          return \"\\u256F\" /* ul */;\n        case 9 /* UpRight */:\n          return \"\\u2570\" /* ur */;\n        case 6 /* DownLeft */:\n          return \"\\u256E\" /* dl */;\n        case 10 /* DownRight */:\n          return \"\\u256D\" /* dr */;\n        case 7 /* UpDownLeft */:\n          return \"\\u2524\" /* udl */;\n        case 11 /* UpDownRight */:\n          return \"\\u251C\" /* udr */;\n        case 13 /* UpLeftRight */:\n          return \"\\u2534\" /* ulr */;\n        case 14 /* DownLeftRight */:\n          return \"\\u252C\" /* dlr */;\n        case 15 /* UpDownLeftRight */:\n          return \"\\u256B\" /* udlr */;\n      }\n      return \" \";\n    }\n    function fill(array, value) {\n      if (array.fill) {\n        array.fill(value);\n      } else {\n        for (let i = 0; i < array.length; i++) {\n          array[i] = value;\n        }\n      }\n      return array;\n    }\n    function repeat(ch, length2) {\n      if (ch.repeat) {\n        return length2 > 0 ? ch.repeat(length2) : \"\";\n      }\n      let s = \"\";\n      while (s.length < length2) {\n        s += ch;\n      }\n      return s;\n    }\n  }\n  Debug2.formatControlFlowGraph = formatControlFlowGraph;\n})(Debug || (Debug = {}));\n\n// src/compiler/semver.ts\nvar versionRegExp = /^(0|[1-9]\\d*)(?:\\.(0|[1-9]\\d*)(?:\\.(0|[1-9]\\d*)(?:-([a-z0-9-.]+))?(?:\\+([a-z0-9-.]+))?)?)?$/i;\nvar prereleaseRegExp = /^(?:0|[1-9]\\d*|[a-z-][a-z0-9-]*)(?:\\.(?:0|[1-9]\\d*|[a-z-][a-z0-9-]*))*$/i;\nvar prereleasePartRegExp = /^(?:0|[1-9]\\d*|[a-z-][a-z0-9-]*)$/i;\nvar buildRegExp = /^[a-z0-9-]+(?:\\.[a-z0-9-]+)*$/i;\nvar buildPartRegExp = /^[a-z0-9-]+$/i;\nvar numericIdentifierRegExp = /^(?:0|[1-9]\\d*)$/;\nvar _Version = class _Version {\n  constructor(major, minor = 0, patch = 0, prerelease = \"\", build2 = \"\") {\n    if (typeof major === \"string\") {\n      const result = Debug.checkDefined(tryParseComponents(major), \"Invalid version\");\n      ({ major, minor, patch, prerelease, build: build2 } = result);\n    }\n    Debug.assert(major >= 0, \"Invalid argument: major\");\n    Debug.assert(minor >= 0, \"Invalid argument: minor\");\n    Debug.assert(patch >= 0, \"Invalid argument: patch\");\n    const prereleaseArray = prerelease ? isArray(prerelease) ? prerelease : prerelease.split(\".\") : emptyArray;\n    const buildArray = build2 ? isArray(build2) ? build2 : build2.split(\".\") : emptyArray;\n    Debug.assert(every(prereleaseArray, (s) => prereleasePartRegExp.test(s)), \"Invalid argument: prerelease\");\n    Debug.assert(every(buildArray, (s) => buildPartRegExp.test(s)), \"Invalid argument: build\");\n    this.major = major;\n    this.minor = minor;\n    this.patch = patch;\n    this.prerelease = prereleaseArray;\n    this.build = buildArray;\n  }\n  static tryParse(text) {\n    const result = tryParseComponents(text);\n    if (!result) return void 0;\n    const { major, minor, patch, prerelease, build: build2 } = result;\n    return new _Version(major, minor, patch, prerelease, build2);\n  }\n  compareTo(other) {\n    if (this === other) return 0 /* EqualTo */;\n    if (other === void 0) return 1 /* GreaterThan */;\n    return compareValues(this.major, other.major) || compareValues(this.minor, other.minor) || compareValues(this.patch, other.patch) || comparePrereleaseIdentifiers(this.prerelease, other.prerelease);\n  }\n  increment(field) {\n    switch (field) {\n      case \"major\":\n        return new _Version(this.major + 1, 0, 0);\n      case \"minor\":\n        return new _Version(this.major, this.minor + 1, 0);\n      case \"patch\":\n        return new _Version(this.major, this.minor, this.patch + 1);\n      default:\n        return Debug.assertNever(field);\n    }\n  }\n  with(fields) {\n    const {\n      major = this.major,\n      minor = this.minor,\n      patch = this.patch,\n      prerelease = this.prerelease,\n      build: build2 = this.build\n    } = fields;\n    return new _Version(major, minor, patch, prerelease, build2);\n  }\n  toString() {\n    let result = `${this.major}.${this.minor}.${this.patch}`;\n    if (some(this.prerelease)) result += `-${this.prerelease.join(\".\")}`;\n    if (some(this.build)) result += `+${this.build.join(\".\")}`;\n    return result;\n  }\n};\n_Version.zero = new _Version(0, 0, 0, [\"0\"]);\nvar Version = _Version;\nfunction tryParseComponents(text) {\n  const match = versionRegExp.exec(text);\n  if (!match) return void 0;\n  const [, major, minor = \"0\", patch = \"0\", prerelease = \"\", build2 = \"\"] = match;\n  if (prerelease && !prereleaseRegExp.test(prerelease)) return void 0;\n  if (build2 && !buildRegExp.test(build2)) return void 0;\n  return {\n    major: parseInt(major, 10),\n    minor: parseInt(minor, 10),\n    patch: parseInt(patch, 10),\n    prerelease,\n    build: build2\n  };\n}\nfunction comparePrereleaseIdentifiers(left, right) {\n  if (left === right) return 0 /* EqualTo */;\n  if (left.length === 0) return right.length === 0 ? 0 /* EqualTo */ : 1 /* GreaterThan */;\n  if (right.length === 0) return -1 /* LessThan */;\n  const length2 = Math.min(left.length, right.length);\n  for (let i = 0; i < length2; i++) {\n    const leftIdentifier = left[i];\n    const rightIdentifier = right[i];\n    if (leftIdentifier === rightIdentifier) continue;\n    const leftIsNumeric = numericIdentifierRegExp.test(leftIdentifier);\n    const rightIsNumeric = numericIdentifierRegExp.test(rightIdentifier);\n    if (leftIsNumeric || rightIsNumeric) {\n      if (leftIsNumeric !== rightIsNumeric) return leftIsNumeric ? -1 /* LessThan */ : 1 /* GreaterThan */;\n      const result = compareValues(+leftIdentifier, +rightIdentifier);\n      if (result) return result;\n    } else {\n      const result = compareStringsCaseSensitive(leftIdentifier, rightIdentifier);\n      if (result) return result;\n    }\n  }\n  return compareValues(left.length, right.length);\n}\nvar VersionRange = class _VersionRange {\n  constructor(spec) {\n    this._alternatives = spec ? Debug.checkDefined(parseRange(spec), \"Invalid range spec.\") : emptyArray;\n  }\n  static tryParse(text) {\n    const sets = parseRange(text);\n    if (sets) {\n      const range = new _VersionRange(\"\");\n      range._alternatives = sets;\n      return range;\n    }\n    return void 0;\n  }\n  /**\n   * Tests whether a version matches the range. This is equivalent to `satisfies(version, range, { includePrerelease: true })`.\n   * in `node-semver`.\n   */\n  test(version2) {\n    if (typeof version2 === \"string\") version2 = new Version(version2);\n    return testDisjunction(version2, this._alternatives);\n  }\n  toString() {\n    return formatDisjunction(this._alternatives);\n  }\n};\nvar logicalOrRegExp = /\\|\\|/;\nvar whitespaceRegExp = /\\s+/;\nvar partialRegExp = /^([x*0]|[1-9]\\d*)(?:\\.([x*0]|[1-9]\\d*)(?:\\.([x*0]|[1-9]\\d*)(?:-([a-z0-9-.]+))?(?:\\+([a-z0-9-.]+))?)?)?$/i;\nvar hyphenRegExp = /^\\s*([a-z0-9-+.*]+)\\s+-\\s+([a-z0-9-+.*]+)\\s*$/i;\nvar rangeRegExp = /^([~^<>=]|<=|>=)?\\s*([a-z0-9-+.*]+)$/i;\nfunction parseRange(text) {\n  const alternatives = [];\n  for (let range of text.trim().split(logicalOrRegExp)) {\n    if (!range) continue;\n    const comparators = [];\n    range = range.trim();\n    const match = hyphenRegExp.exec(range);\n    if (match) {\n      if (!parseHyphen(match[1], match[2], comparators)) return void 0;\n    } else {\n      for (const simple of range.split(whitespaceRegExp)) {\n        const match2 = rangeRegExp.exec(simple.trim());\n        if (!match2 || !parseComparator(match2[1], match2[2], comparators)) return void 0;\n      }\n    }\n    alternatives.push(comparators);\n  }\n  return alternatives;\n}\nfunction parsePartial(text) {\n  const match = partialRegExp.exec(text);\n  if (!match) return void 0;\n  const [, major, minor = \"*\", patch = \"*\", prerelease, build2] = match;\n  const version2 = new Version(\n    isWildcard(major) ? 0 : parseInt(major, 10),\n    isWildcard(major) || isWildcard(minor) ? 0 : parseInt(minor, 10),\n    isWildcard(major) || isWildcard(minor) || isWildcard(patch) ? 0 : parseInt(patch, 10),\n    prerelease,\n    build2\n  );\n  return { version: version2, major, minor, patch };\n}\nfunction parseHyphen(left, right, comparators) {\n  const leftResult = parsePartial(left);\n  if (!leftResult) return false;\n  const rightResult = parsePartial(right);\n  if (!rightResult) return false;\n  if (!isWildcard(leftResult.major)) {\n    comparators.push(createComparator(\">=\", leftResult.version));\n  }\n  if (!isWildcard(rightResult.major)) {\n    comparators.push(\n      isWildcard(rightResult.minor) ? createComparator(\"<\", rightResult.version.increment(\"major\")) : isWildcard(rightResult.patch) ? createComparator(\"<\", rightResult.version.increment(\"minor\")) : createComparator(\"<=\", rightResult.version)\n    );\n  }\n  return true;\n}\nfunction parseComparator(operator, text, comparators) {\n  const result = parsePartial(text);\n  if (!result) return false;\n  const { version: version2, major, minor, patch } = result;\n  if (!isWildcard(major)) {\n    switch (operator) {\n      case \"~\":\n        comparators.push(createComparator(\">=\", version2));\n        comparators.push(createComparator(\n          \"<\",\n          version2.increment(\n            isWildcard(minor) ? \"major\" : \"minor\"\n          )\n        ));\n        break;\n      case \"^\":\n        comparators.push(createComparator(\">=\", version2));\n        comparators.push(createComparator(\n          \"<\",\n          version2.increment(\n            version2.major > 0 || isWildcard(minor) ? \"major\" : version2.minor > 0 || isWildcard(patch) ? \"minor\" : \"patch\"\n          )\n        ));\n        break;\n      case \"<\":\n      case \">=\":\n        comparators.push(\n          isWildcard(minor) || isWildcard(patch) ? createComparator(operator, version2.with({ prerelease: \"0\" })) : createComparator(operator, version2)\n        );\n        break;\n      case \"<=\":\n      case \">\":\n        comparators.push(\n          isWildcard(minor) ? createComparator(operator === \"<=\" ? \"<\" : \">=\", version2.increment(\"major\").with({ prerelease: \"0\" })) : isWildcard(patch) ? createComparator(operator === \"<=\" ? \"<\" : \">=\", version2.increment(\"minor\").with({ prerelease: \"0\" })) : createComparator(operator, version2)\n        );\n        break;\n      case \"=\":\n      case void 0:\n        if (isWildcard(minor) || isWildcard(patch)) {\n          comparators.push(createComparator(\">=\", version2.with({ prerelease: \"0\" })));\n          comparators.push(createComparator(\"<\", version2.increment(isWildcard(minor) ? \"major\" : \"minor\").with({ prerelease: \"0\" })));\n        } else {\n          comparators.push(createComparator(\"=\", version2));\n        }\n        break;\n      default:\n        return false;\n    }\n  } else if (operator === \"<\" || operator === \">\") {\n    comparators.push(createComparator(\"<\", Version.zero));\n  }\n  return true;\n}\nfunction isWildcard(part) {\n  return part === \"*\" || part === \"x\" || part === \"X\";\n}\nfunction createComparator(operator, operand) {\n  return { operator, operand };\n}\nfunction testDisjunction(version2, alternatives) {\n  if (alternatives.length === 0) return true;\n  for (const alternative of alternatives) {\n    if (testAlternative(version2, alternative)) return true;\n  }\n  return false;\n}\nfunction testAlternative(version2, comparators) {\n  for (const comparator of comparators) {\n    if (!testComparator(version2, comparator.operator, comparator.operand)) return false;\n  }\n  return true;\n}\nfunction testComparator(version2, operator, operand) {\n  const cmp = version2.compareTo(operand);\n  switch (operator) {\n    case \"<\":\n      return cmp < 0;\n    case \"<=\":\n      return cmp <= 0;\n    case \">\":\n      return cmp > 0;\n    case \">=\":\n      return cmp >= 0;\n    case \"=\":\n      return cmp === 0;\n    default:\n      return Debug.assertNever(operator);\n  }\n}\nfunction formatDisjunction(alternatives) {\n  return map(alternatives, formatAlternative).join(\" || \") || \"*\";\n}\nfunction formatAlternative(comparators) {\n  return map(comparators, formatComparator).join(\" \");\n}\nfunction formatComparator(comparator) {\n  return `${comparator.operator}${comparator.operand}`;\n}\n\n// src/compiler/performanceCore.ts\nfunction tryGetPerformance() {\n  if (isNodeLikeSystem()) {\n    try {\n      const { performance: performance2 } = require(\"perf_hooks\");\n      if (performance2) {\n        return {\n          shouldWriteNativeEvents: false,\n          performance: performance2\n        };\n      }\n    } catch {\n    }\n  }\n  if (typeof performance === \"object\") {\n    return {\n      shouldWriteNativeEvents: true,\n      performance\n    };\n  }\n  return void 0;\n}\nfunction tryGetPerformanceHooks() {\n  const p = tryGetPerformance();\n  if (!p) return void 0;\n  const { shouldWriteNativeEvents, performance: performance2 } = p;\n  const hooks = {\n    shouldWriteNativeEvents,\n    performance: void 0,\n    performanceTime: void 0\n  };\n  if (typeof performance2.timeOrigin === \"number\" && typeof performance2.now === \"function\") {\n    hooks.performanceTime = performance2;\n  }\n  if (hooks.performanceTime && typeof performance2.mark === \"function\" && typeof performance2.measure === \"function\" && typeof performance2.clearMarks === \"function\" && typeof performance2.clearMeasures === \"function\") {\n    hooks.performance = performance2;\n  }\n  return hooks;\n}\nvar nativePerformanceHooks = tryGetPerformanceHooks();\nvar nativePerformanceTime = nativePerformanceHooks == null ? void 0 : nativePerformanceHooks.performanceTime;\nfunction tryGetNativePerformanceHooks() {\n  return nativePerformanceHooks;\n}\nvar timestamp = nativePerformanceTime ? () => nativePerformanceTime.now() : Date.now;\n\n// src/compiler/_namespaces/ts.performance.ts\nvar ts_performance_exports = {};\n__export(ts_performance_exports, {\n  clearMarks: () => clearMarks,\n  clearMeasures: () => clearMeasures,\n  createTimer: () => createTimer,\n  createTimerIf: () => createTimerIf,\n  disable: () => disable,\n  enable: () => enable,\n  forEachMark: () => forEachMark,\n  forEachMeasure: () => forEachMeasure,\n  getCount: () => getCount,\n  getDuration: () => getDuration,\n  isEnabled: () => isEnabled,\n  mark: () => mark,\n  measure: () => measure,\n  nullTimer: () => nullTimer\n});\n\n// src/compiler/performance.ts\nvar perfHooks;\nvar performanceImpl;\nfunction createTimerIf(condition, measureName, startMarkName, endMarkName) {\n  return condition ? createTimer(measureName, startMarkName, endMarkName) : nullTimer;\n}\nfunction createTimer(measureName, startMarkName, endMarkName) {\n  let enterCount = 0;\n  return {\n    enter,\n    exit\n  };\n  function enter() {\n    if (++enterCount === 1) {\n      mark(startMarkName);\n    }\n  }\n  function exit() {\n    if (--enterCount === 0) {\n      mark(endMarkName);\n      measure(measureName, startMarkName, endMarkName);\n    } else if (enterCount < 0) {\n      Debug.fail(\"enter/exit count does not match.\");\n    }\n  }\n}\nvar nullTimer = { enter: noop, exit: noop };\nvar enabled = false;\nvar timeorigin = timestamp();\nvar marks = /* @__PURE__ */ new Map();\nvar counts = /* @__PURE__ */ new Map();\nvar durations = /* @__PURE__ */ new Map();\nfunction mark(markName) {\n  if (enabled) {\n    const count = counts.get(markName) ?? 0;\n    counts.set(markName, count + 1);\n    marks.set(markName, timestamp());\n    performanceImpl == null ? void 0 : performanceImpl.mark(markName);\n    if (typeof onProfilerEvent === \"function\") {\n      onProfilerEvent(markName);\n    }\n  }\n}\nfunction measure(measureName, startMarkName, endMarkName) {\n  if (enabled) {\n    const end = (endMarkName !== void 0 ? marks.get(endMarkName) : void 0) ?? timestamp();\n    const start = (startMarkName !== void 0 ? marks.get(startMarkName) : void 0) ?? timeorigin;\n    const previousDuration = durations.get(measureName) || 0;\n    durations.set(measureName, previousDuration + (end - start));\n    performanceImpl == null ? void 0 : performanceImpl.measure(measureName, startMarkName, endMarkName);\n  }\n}\nfunction getCount(markName) {\n  return counts.get(markName) || 0;\n}\nfunction getDuration(measureName) {\n  return durations.get(measureName) || 0;\n}\nfunction forEachMeasure(cb) {\n  durations.forEach((duration, measureName) => cb(measureName, duration));\n}\nfunction forEachMark(cb) {\n  marks.forEach((_time, markName) => cb(markName));\n}\nfunction clearMeasures(name) {\n  if (name !== void 0) durations.delete(name);\n  else durations.clear();\n  performanceImpl == null ? void 0 : performanceImpl.clearMeasures(name);\n}\nfunction clearMarks(name) {\n  if (name !== void 0) {\n    counts.delete(name);\n    marks.delete(name);\n  } else {\n    counts.clear();\n    marks.clear();\n  }\n  performanceImpl == null ? void 0 : performanceImpl.clearMarks(name);\n}\nfunction isEnabled() {\n  return enabled;\n}\nfunction enable(system = sys) {\n  var _a;\n  if (!enabled) {\n    enabled = true;\n    perfHooks || (perfHooks = tryGetNativePerformanceHooks());\n    if (perfHooks == null ? void 0 : perfHooks.performance) {\n      timeorigin = perfHooks.performance.timeOrigin;\n      if (perfHooks.shouldWriteNativeEvents || ((_a = system == null ? void 0 : system.cpuProfilingEnabled) == null ? void 0 : _a.call(system)) || (system == null ? void 0 : system.debugMode)) {\n        performanceImpl = perfHooks.performance;\n      }\n    }\n  }\n  return true;\n}\nfunction disable() {\n  if (enabled) {\n    marks.clear();\n    counts.clear();\n    durations.clear();\n    performanceImpl = void 0;\n    enabled = false;\n  }\n}\n\n// src/compiler/tracing.ts\nvar tracing;\nvar tracingEnabled;\n((tracingEnabled2) => {\n  let fs;\n  let traceCount = 0;\n  let traceFd = 0;\n  let mode;\n  const typeCatalog = [];\n  let legendPath;\n  const legend = [];\n  function startTracing2(tracingMode, traceDir, configFilePath) {\n    Debug.assert(!tracing, \"Tracing already started\");\n    if (fs === void 0) {\n      try {\n        fs = require(\"fs\");\n      } catch (e) {\n        throw new Error(`tracing requires having fs\n(original error: ${e.message || e})`);\n      }\n    }\n    mode = tracingMode;\n    typeCatalog.length = 0;\n    if (legendPath === void 0) {\n      legendPath = combinePaths(traceDir, \"legend.json\");\n    }\n    if (!fs.existsSync(traceDir)) {\n      fs.mkdirSync(traceDir, { recursive: true });\n    }\n    const countPart = mode === \"build\" ? `.${process.pid}-${++traceCount}` : mode === \"server\" ? `.${process.pid}` : ``;\n    const tracePath = combinePaths(traceDir, `trace${countPart}.json`);\n    const typesPath = combinePaths(traceDir, `types${countPart}.json`);\n    legend.push({\n      configFilePath,\n      tracePath,\n      typesPath\n    });\n    traceFd = fs.openSync(tracePath, \"w\");\n    tracing = tracingEnabled2;\n    const meta = { cat: \"__metadata\", ph: \"M\", ts: 1e3 * timestamp(), pid: 1, tid: 1 };\n    fs.writeSync(\n      traceFd,\n      \"[\\n\" + [{ name: \"process_name\", args: { name: \"tsc\" }, ...meta }, { name: \"thread_name\", args: { name: \"Main\" }, ...meta }, { name: \"TracingStartedInBrowser\", ...meta, cat: \"disabled-by-default-devtools.timeline\" }].map((v) => JSON.stringify(v)).join(\",\\n\")\n    );\n  }\n  tracingEnabled2.startTracing = startTracing2;\n  function stopTracing() {\n    Debug.assert(tracing, \"Tracing is not in progress\");\n    Debug.assert(!!typeCatalog.length === (mode !== \"server\"));\n    fs.writeSync(traceFd, `\n]\n`);\n    fs.closeSync(traceFd);\n    tracing = void 0;\n    if (typeCatalog.length) {\n      dumpTypes(typeCatalog);\n    } else {\n      legend[legend.length - 1].typesPath = void 0;\n    }\n  }\n  tracingEnabled2.stopTracing = stopTracing;\n  function recordType(type) {\n    if (mode !== \"server\") {\n      typeCatalog.push(type);\n    }\n  }\n  tracingEnabled2.recordType = recordType;\n  let Phase;\n  ((Phase2) => {\n    Phase2[\"Parse\"] = \"parse\";\n    Phase2[\"Program\"] = \"program\";\n    Phase2[\"Bind\"] = \"bind\";\n    Phase2[\"Check\"] = \"check\";\n    Phase2[\"CheckTypes\"] = \"checkTypes\";\n    Phase2[\"Emit\"] = \"emit\";\n    Phase2[\"Session\"] = \"session\";\n  })(Phase = tracingEnabled2.Phase || (tracingEnabled2.Phase = {}));\n  function instant(phase, name, args) {\n    writeEvent(\"I\", phase, name, args, `\"s\":\"g\"`);\n  }\n  tracingEnabled2.instant = instant;\n  const eventStack = [];\n  function push(phase, name, args, separateBeginAndEnd = false) {\n    if (separateBeginAndEnd) {\n      writeEvent(\"B\", phase, name, args);\n    }\n    eventStack.push({ phase, name, args, time: 1e3 * timestamp(), separateBeginAndEnd });\n  }\n  tracingEnabled2.push = push;\n  function pop(results) {\n    Debug.assert(eventStack.length > 0);\n    writeStackEvent(eventStack.length - 1, 1e3 * timestamp(), results);\n    eventStack.length--;\n  }\n  tracingEnabled2.pop = pop;\n  function popAll() {\n    const endTime = 1e3 * timestamp();\n    for (let i = eventStack.length - 1; i >= 0; i--) {\n      writeStackEvent(i, endTime);\n    }\n    eventStack.length = 0;\n  }\n  tracingEnabled2.popAll = popAll;\n  const sampleInterval = 1e3 * 10;\n  function writeStackEvent(index, endTime, results) {\n    const { phase, name, args, time, separateBeginAndEnd } = eventStack[index];\n    if (separateBeginAndEnd) {\n      Debug.assert(!results, \"`results` are not supported for events with `separateBeginAndEnd`\");\n      writeEvent(\n        \"E\",\n        phase,\n        name,\n        args,\n        /*extras*/\n        void 0,\n        endTime\n      );\n    } else if (sampleInterval - time % sampleInterval <= endTime - time) {\n      writeEvent(\"X\", phase, name, { ...args, results }, `\"dur\":${endTime - time}`, time);\n    }\n  }\n  function writeEvent(eventType, phase, name, args, extras, time = 1e3 * timestamp()) {\n    if (mode === \"server\" && phase === \"checkTypes\" /* CheckTypes */) return;\n    mark(\"beginTracing\");\n    fs.writeSync(traceFd, `,\n{\"pid\":1,\"tid\":1,\"ph\":\"${eventType}\",\"cat\":\"${phase}\",\"ts\":${time},\"name\":\"${name}\"`);\n    if (extras) fs.writeSync(traceFd, `,${extras}`);\n    if (args) fs.writeSync(traceFd, `,\"args\":${JSON.stringify(args)}`);\n    fs.writeSync(traceFd, `}`);\n    mark(\"endTracing\");\n    measure(\"Tracing\", \"beginTracing\", \"endTracing\");\n  }\n  function getLocation(node) {\n    const file = getSourceFileOfNode(node);\n    return !file ? void 0 : {\n      path: file.path,\n      start: indexFromOne(getLineAndCharacterOfPosition(file, node.pos)),\n      end: indexFromOne(getLineAndCharacterOfPosition(file, node.end))\n    };\n    function indexFromOne(lc) {\n      return {\n        line: lc.line + 1,\n        character: lc.character + 1\n      };\n    }\n  }\n  function dumpTypes(types) {\n    var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s;\n    mark(\"beginDumpTypes\");\n    const typesPath = legend[legend.length - 1].typesPath;\n    const typesFd = fs.openSync(typesPath, \"w\");\n    const recursionIdentityMap = /* @__PURE__ */ new Map();\n    fs.writeSync(typesFd, \"[\");\n    const numTypes = types.length;\n    for (let i = 0; i < numTypes; i++) {\n      const type = types[i];\n      const objectFlags = type.objectFlags;\n      const symbol = type.aliasSymbol ?? type.symbol;\n      let display;\n      if (objectFlags & 16 /* Anonymous */ | type.flags & 2944 /* Literal */) {\n        try {\n          display = (_a = type.checker) == null ? void 0 : _a.typeToString(type);\n        } catch {\n          display = void 0;\n        }\n      }\n      let indexedAccessProperties = {};\n      if (type.flags & 8388608 /* IndexedAccess */) {\n        const indexedAccessType = type;\n        indexedAccessProperties = {\n          indexedAccessObjectType: (_b = indexedAccessType.objectType) == null ? void 0 : _b.id,\n          indexedAccessIndexType: (_c = indexedAccessType.indexType) == null ? void 0 : _c.id\n        };\n      }\n      let referenceProperties = {};\n      if (objectFlags & 4 /* Reference */) {\n        const referenceType = type;\n        referenceProperties = {\n          instantiatedType: (_d = referenceType.target) == null ? void 0 : _d.id,\n          typeArguments: (_e = referenceType.resolvedTypeArguments) == null ? void 0 : _e.map((t) => t.id),\n          referenceLocation: getLocation(referenceType.node)\n        };\n      }\n      let conditionalProperties = {};\n      if (type.flags & 16777216 /* Conditional */) {\n        const conditionalType = type;\n        conditionalProperties = {\n          conditionalCheckType: (_f = conditionalType.checkType) == null ? void 0 : _f.id,\n          conditionalExtendsType: (_g = conditionalType.extendsType) == null ? void 0 : _g.id,\n          conditionalTrueType: ((_h = conditionalType.resolvedTrueType) == null ? void 0 : _h.id) ?? -1,\n          conditionalFalseType: ((_i = conditionalType.resolvedFalseType) == null ? void 0 : _i.id) ?? -1\n        };\n      }\n      let substitutionProperties = {};\n      if (type.flags & 33554432 /* Substitution */) {\n        const substitutionType = type;\n        substitutionProperties = {\n          substitutionBaseType: (_j = substitutionType.baseType) == null ? void 0 : _j.id,\n          constraintType: (_k = substitutionType.constraint) == null ? void 0 : _k.id\n        };\n      }\n      let reverseMappedProperties = {};\n      if (objectFlags & 1024 /* ReverseMapped */) {\n        const reverseMappedType = type;\n        reverseMappedProperties = {\n          reverseMappedSourceType: (_l = reverseMappedType.source) == null ? void 0 : _l.id,\n          reverseMappedMappedType: (_m = reverseMappedType.mappedType) == null ? void 0 : _m.id,\n          reverseMappedConstraintType: (_n = reverseMappedType.constraintType) == null ? void 0 : _n.id\n        };\n      }\n      let evolvingArrayProperties = {};\n      if (objectFlags & 256 /* EvolvingArray */) {\n        const evolvingArrayType = type;\n        evolvingArrayProperties = {\n          evolvingArrayElementType: evolvingArrayType.elementType.id,\n          evolvingArrayFinalType: (_o = evolvingArrayType.finalArrayType) == null ? void 0 : _o.id\n        };\n      }\n      let recursionToken;\n      const recursionIdentity = type.checker.getRecursionIdentity(type);\n      if (recursionIdentity) {\n        recursionToken = recursionIdentityMap.get(recursionIdentity);\n        if (!recursionToken) {\n          recursionToken = recursionIdentityMap.size;\n          recursionIdentityMap.set(recursionIdentity, recursionToken);\n        }\n      }\n      const descriptor = {\n        id: type.id,\n        intrinsicName: type.intrinsicName,\n        symbolName: (symbol == null ? void 0 : symbol.escapedName) && unescapeLeadingUnderscores(symbol.escapedName),\n        recursionId: recursionToken,\n        isTuple: objectFlags & 8 /* Tuple */ ? true : void 0,\n        unionTypes: type.flags & 1048576 /* Union */ ? (_p = type.types) == null ? void 0 : _p.map((t) => t.id) : void 0,\n        intersectionTypes: type.flags & 2097152 /* Intersection */ ? type.types.map((t) => t.id) : void 0,\n        aliasTypeArguments: (_q = type.aliasTypeArguments) == null ? void 0 : _q.map((t) => t.id),\n        keyofType: type.flags & 4194304 /* Index */ ? (_r = type.type) == null ? void 0 : _r.id : void 0,\n        ...indexedAccessProperties,\n        ...referenceProperties,\n        ...conditionalProperties,\n        ...substitutionProperties,\n        ...reverseMappedProperties,\n        ...evolvingArrayProperties,\n        destructuringPattern: getLocation(type.pattern),\n        firstDeclaration: getLocation((_s = symbol == null ? void 0 : symbol.declarations) == null ? void 0 : _s[0]),\n        flags: Debug.formatTypeFlags(type.flags).split(\"|\"),\n        display\n      };\n      fs.writeSync(typesFd, JSON.stringify(descriptor));\n      if (i < numTypes - 1) {\n        fs.writeSync(typesFd, \",\\n\");\n      }\n    }\n    fs.writeSync(typesFd, \"]\\n\");\n    fs.closeSync(typesFd);\n    mark(\"endDumpTypes\");\n    measure(\"Dump types\", \"beginDumpTypes\", \"endDumpTypes\");\n  }\n  function dumpLegend() {\n    if (!legendPath) {\n      return;\n    }\n    fs.writeFileSync(legendPath, JSON.stringify(legend));\n  }\n  tracingEnabled2.dumpLegend = dumpLegend;\n})(tracingEnabled || (tracingEnabled = {}));\nvar startTracing = tracingEnabled.startTracing;\nvar dumpTracingLegend = tracingEnabled.dumpLegend;\n\n// src/compiler/types.ts\nvar SyntaxKind = /* @__PURE__ */ ((SyntaxKind5) => {\n  SyntaxKind5[SyntaxKind5[\"Unknown\"] = 0] = \"Unknown\";\n  SyntaxKind5[SyntaxKind5[\"EndOfFileToken\"] = 1] = \"EndOfFileToken\";\n  SyntaxKind5[SyntaxKind5[\"SingleLineCommentTrivia\"] = 2] = \"SingleLineCommentTrivia\";\n  SyntaxKind5[SyntaxKind5[\"MultiLineCommentTrivia\"] = 3] = \"MultiLineCommentTrivia\";\n  SyntaxKind5[SyntaxKind5[\"NewLineTrivia\"] = 4] = \"NewLineTrivia\";\n  SyntaxKind5[SyntaxKind5[\"WhitespaceTrivia\"] = 5] = \"WhitespaceTrivia\";\n  SyntaxKind5[SyntaxKind5[\"ShebangTrivia\"] = 6] = \"ShebangTrivia\";\n  SyntaxKind5[SyntaxKind5[\"ConflictMarkerTrivia\"] = 7] = \"ConflictMarkerTrivia\";\n  SyntaxKind5[SyntaxKind5[\"NonTextFileMarkerTrivia\"] = 8] = \"NonTextFileMarkerTrivia\";\n  SyntaxKind5[SyntaxKind5[\"NumericLiteral\"] = 9] = \"NumericLiteral\";\n  SyntaxKind5[SyntaxKind5[\"BigIntLiteral\"] = 10] = \"BigIntLiteral\";\n  SyntaxKind5[SyntaxKind5[\"StringLiteral\"] = 11] = \"StringLiteral\";\n  SyntaxKind5[SyntaxKind5[\"JsxText\"] = 12] = \"JsxText\";\n  SyntaxKind5[SyntaxKind5[\"JsxTextAllWhiteSpaces\"] = 13] = \"JsxTextAllWhiteSpaces\";\n  SyntaxKind5[SyntaxKind5[\"RegularExpressionLiteral\"] = 14] = \"RegularExpressionLiteral\";\n  SyntaxKind5[SyntaxKind5[\"NoSubstitutionTemplateLiteral\"] = 15] = \"NoSubstitutionTemplateLiteral\";\n  SyntaxKind5[SyntaxKind5[\"TemplateHead\"] = 16] = \"TemplateHead\";\n  SyntaxKind5[SyntaxKind5[\"TemplateMiddle\"] = 17] = \"TemplateMiddle\";\n  SyntaxKind5[SyntaxKind5[\"TemplateTail\"] = 18] = \"TemplateTail\";\n  SyntaxKind5[SyntaxKind5[\"OpenBraceToken\"] = 19] = \"OpenBraceToken\";\n  SyntaxKind5[SyntaxKind5[\"CloseBraceToken\"] = 20] = \"CloseBraceToken\";\n  SyntaxKind5[SyntaxKind5[\"OpenParenToken\"] = 21] = \"OpenParenToken\";\n  SyntaxKind5[SyntaxKind5[\"CloseParenToken\"] = 22] = \"CloseParenToken\";\n  SyntaxKind5[SyntaxKind5[\"OpenBracketToken\"] = 23] = \"OpenBracketToken\";\n  SyntaxKind5[SyntaxKind5[\"CloseBracketToken\"] = 24] = \"CloseBracketToken\";\n  SyntaxKind5[SyntaxKind5[\"DotToken\"] = 25] = \"DotToken\";\n  SyntaxKind5[SyntaxKind5[\"DotDotDotToken\"] = 26] = \"DotDotDotToken\";\n  SyntaxKind5[SyntaxKind5[\"SemicolonToken\"] = 27] = \"SemicolonToken\";\n  SyntaxKind5[SyntaxKind5[\"CommaToken\"] = 28] = \"CommaToken\";\n  SyntaxKind5[SyntaxKind5[\"QuestionDotToken\"] = 29] = \"QuestionDotToken\";\n  SyntaxKind5[SyntaxKind5[\"LessThanToken\"] = 30] = \"LessThanToken\";\n  SyntaxKind5[SyntaxKind5[\"LessThanSlashToken\"] = 31] = \"LessThanSlashToken\";\n  SyntaxKind5[SyntaxKind5[\"GreaterThanToken\"] = 32] = \"GreaterThanToken\";\n  SyntaxKind5[SyntaxKind5[\"LessThanEqualsToken\"] = 33] = \"LessThanEqualsToken\";\n  SyntaxKind5[SyntaxKind5[\"GreaterThanEqualsToken\"] = 34] = \"GreaterThanEqualsToken\";\n  SyntaxKind5[SyntaxKind5[\"EqualsEqualsToken\"] = 35] = \"EqualsEqualsToken\";\n  SyntaxKind5[SyntaxKind5[\"ExclamationEqualsToken\"] = 36] = \"ExclamationEqualsToken\";\n  SyntaxKind5[SyntaxKind5[\"EqualsEqualsEqualsToken\"] = 37] = \"EqualsEqualsEqualsToken\";\n  SyntaxKind5[SyntaxKind5[\"ExclamationEqualsEqualsToken\"] = 38] = \"ExclamationEqualsEqualsToken\";\n  SyntaxKind5[SyntaxKind5[\"EqualsGreaterThanToken\"] = 39] = \"EqualsGreaterThanToken\";\n  SyntaxKind5[SyntaxKind5[\"PlusToken\"] = 40] = \"PlusToken\";\n  SyntaxKind5[SyntaxKind5[\"MinusToken\"] = 41] = \"MinusToken\";\n  SyntaxKind5[SyntaxKind5[\"AsteriskToken\"] = 42] = \"AsteriskToken\";\n  SyntaxKind5[SyntaxKind5[\"AsteriskAsteriskToken\"] = 43] = \"AsteriskAsteriskToken\";\n  SyntaxKind5[SyntaxKind5[\"SlashToken\"] = 44] = \"SlashToken\";\n  SyntaxKind5[SyntaxKind5[\"PercentToken\"] = 45] = \"PercentToken\";\n  SyntaxKind5[SyntaxKind5[\"PlusPlusToken\"] = 46] = \"PlusPlusToken\";\n  SyntaxKind5[SyntaxKind5[\"MinusMinusToken\"] = 47] = \"MinusMinusToken\";\n  SyntaxKind5[SyntaxKind5[\"LessThanLessThanToken\"] = 48] = \"LessThanLessThanToken\";\n  SyntaxKind5[SyntaxKind5[\"GreaterThanGreaterThanToken\"] = 49] = \"GreaterThanGreaterThanToken\";\n  SyntaxKind5[SyntaxKind5[\"GreaterThanGreaterThanGreaterThanToken\"] = 50] = \"GreaterThanGreaterThanGreaterThanToken\";\n  SyntaxKind5[SyntaxKind5[\"AmpersandToken\"] = 51] = \"AmpersandToken\";\n  SyntaxKind5[SyntaxKind5[\"BarToken\"] = 52] = \"BarToken\";\n  SyntaxKind5[SyntaxKind5[\"CaretToken\"] = 53] = \"CaretToken\";\n  SyntaxKind5[SyntaxKind5[\"ExclamationToken\"] = 54] = \"ExclamationToken\";\n  SyntaxKind5[SyntaxKind5[\"TildeToken\"] = 55] = \"TildeToken\";\n  SyntaxKind5[SyntaxKind5[\"AmpersandAmpersandToken\"] = 56] = \"AmpersandAmpersandToken\";\n  SyntaxKind5[SyntaxKind5[\"BarBarToken\"] = 57] = \"BarBarToken\";\n  SyntaxKind5[SyntaxKind5[\"QuestionToken\"] = 58] = \"QuestionToken\";\n  SyntaxKind5[SyntaxKind5[\"ColonToken\"] = 59] = \"ColonToken\";\n  SyntaxKind5[SyntaxKind5[\"AtToken\"] = 60] = \"AtToken\";\n  SyntaxKind5[SyntaxKind5[\"QuestionQuestionToken\"] = 61] = \"QuestionQuestionToken\";\n  SyntaxKind5[SyntaxKind5[\"BacktickToken\"] = 62] = \"BacktickToken\";\n  SyntaxKind5[SyntaxKind5[\"HashToken\"] = 63] = \"HashToken\";\n  SyntaxKind5[SyntaxKind5[\"EqualsToken\"] = 64] = \"EqualsToken\";\n  SyntaxKind5[SyntaxKind5[\"PlusEqualsToken\"] = 65] = \"PlusEqualsToken\";\n  SyntaxKind5[SyntaxKind5[\"MinusEqualsToken\"] = 66] = \"MinusEqualsToken\";\n  SyntaxKind5[SyntaxKind5[\"AsteriskEqualsToken\"] = 67] = \"AsteriskEqualsToken\";\n  SyntaxKind5[SyntaxKind5[\"AsteriskAsteriskEqualsToken\"] = 68] = \"AsteriskAsteriskEqualsToken\";\n  SyntaxKind5[SyntaxKind5[\"SlashEqualsToken\"] = 69] = \"SlashEqualsToken\";\n  SyntaxKind5[SyntaxKind5[\"PercentEqualsToken\"] = 70] = \"PercentEqualsToken\";\n  SyntaxKind5[SyntaxKind5[\"LessThanLessThanEqualsToken\"] = 71] = \"LessThanLessThanEqualsToken\";\n  SyntaxKind5[SyntaxKind5[\"GreaterThanGreaterThanEqualsToken\"] = 72] = \"GreaterThanGreaterThanEqualsToken\";\n  SyntaxKind5[SyntaxKind5[\"GreaterThanGreaterThanGreaterThanEqualsToken\"] = 73] = \"GreaterThanGreaterThanGreaterThanEqualsToken\";\n  SyntaxKind5[SyntaxKind5[\"AmpersandEqualsToken\"] = 74] = \"AmpersandEqualsToken\";\n  SyntaxKind5[SyntaxKind5[\"BarEqualsToken\"] = 75] = \"BarEqualsToken\";\n  SyntaxKind5[SyntaxKind5[\"BarBarEqualsToken\"] = 76] = \"BarBarEqualsToken\";\n  SyntaxKind5[SyntaxKind5[\"AmpersandAmpersandEqualsToken\"] = 77] = \"AmpersandAmpersandEqualsToken\";\n  SyntaxKind5[SyntaxKind5[\"QuestionQuestionEqualsToken\"] = 78] = \"QuestionQuestionEqualsToken\";\n  SyntaxKind5[SyntaxKind5[\"CaretEqualsToken\"] = 79] = \"CaretEqualsToken\";\n  SyntaxKind5[SyntaxKind5[\"Identifier\"] = 80] = \"Identifier\";\n  SyntaxKind5[SyntaxKind5[\"PrivateIdentifier\"] = 81] = \"PrivateIdentifier\";\n  SyntaxKind5[SyntaxKind5[\"JSDocCommentTextToken\"] = 82] = \"JSDocCommentTextToken\";\n  SyntaxKind5[SyntaxKind5[\"BreakKeyword\"] = 83] = \"BreakKeyword\";\n  SyntaxKind5[SyntaxKind5[\"CaseKeyword\"] = 84] = \"CaseKeyword\";\n  SyntaxKind5[SyntaxKind5[\"CatchKeyword\"] = 85] = \"CatchKeyword\";\n  SyntaxKind5[SyntaxKind5[\"ClassKeyword\"] = 86] = \"ClassKeyword\";\n  SyntaxKind5[SyntaxKind5[\"ConstKeyword\"] = 87] = \"ConstKeyword\";\n  SyntaxKind5[SyntaxKind5[\"ContinueKeyword\"] = 88] = \"ContinueKeyword\";\n  SyntaxKind5[SyntaxKind5[\"DebuggerKeyword\"] = 89] = \"DebuggerKeyword\";\n  SyntaxKind5[SyntaxKind5[\"DefaultKeyword\"] = 90] = \"DefaultKeyword\";\n  SyntaxKind5[SyntaxKind5[\"DeleteKeyword\"] = 91] = \"DeleteKeyword\";\n  SyntaxKind5[SyntaxKind5[\"DoKeyword\"] = 92] = \"DoKeyword\";\n  SyntaxKind5[SyntaxKind5[\"ElseKeyword\"] = 93] = \"ElseKeyword\";\n  SyntaxKind5[SyntaxKind5[\"EnumKeyword\"] = 94] = \"EnumKeyword\";\n  SyntaxKind5[SyntaxKind5[\"ExportKeyword\"] = 95] = \"ExportKeyword\";\n  SyntaxKind5[SyntaxKind5[\"ExtendsKeyword\"] = 96] = \"ExtendsKeyword\";\n  SyntaxKind5[SyntaxKind5[\"FalseKeyword\"] = 97] = \"FalseKeyword\";\n  SyntaxKind5[SyntaxKind5[\"FinallyKeyword\"] = 98] = \"FinallyKeyword\";\n  SyntaxKind5[SyntaxKind5[\"ForKeyword\"] = 99] = \"ForKeyword\";\n  SyntaxKind5[SyntaxKind5[\"FunctionKeyword\"] = 100] = \"FunctionKeyword\";\n  SyntaxKind5[SyntaxKind5[\"IfKeyword\"] = 101] = \"IfKeyword\";\n  SyntaxKind5[SyntaxKind5[\"ImportKeyword\"] = 102] = \"ImportKeyword\";\n  SyntaxKind5[SyntaxKind5[\"InKeyword\"] = 103] = \"InKeyword\";\n  SyntaxKind5[SyntaxKind5[\"InstanceOfKeyword\"] = 104] = \"InstanceOfKeyword\";\n  SyntaxKind5[SyntaxKind5[\"NewKeyword\"] = 105] = \"NewKeyword\";\n  SyntaxKind5[SyntaxKind5[\"NullKeyword\"] = 106] = \"NullKeyword\";\n  SyntaxKind5[SyntaxKind5[\"ReturnKeyword\"] = 107] = \"ReturnKeyword\";\n  SyntaxKind5[SyntaxKind5[\"SuperKeyword\"] = 108] = \"SuperKeyword\";\n  SyntaxKind5[SyntaxKind5[\"SwitchKeyword\"] = 109] = \"SwitchKeyword\";\n  SyntaxKind5[SyntaxKind5[\"ThisKeyword\"] = 110] = \"ThisKeyword\";\n  SyntaxKind5[SyntaxKind5[\"ThrowKeyword\"] = 111] = \"ThrowKeyword\";\n  SyntaxKind5[SyntaxKind5[\"TrueKeyword\"] = 112] = \"TrueKeyword\";\n  SyntaxKind5[SyntaxKind5[\"TryKeyword\"] = 113] = \"TryKeyword\";\n  SyntaxKind5[SyntaxKind5[\"TypeOfKeyword\"] = 114] = \"TypeOfKeyword\";\n  SyntaxKind5[SyntaxKind5[\"VarKeyword\"] = 115] = \"VarKeyword\";\n  SyntaxKind5[SyntaxKind5[\"VoidKeyword\"] = 116] = \"VoidKeyword\";\n  SyntaxKind5[SyntaxKind5[\"WhileKeyword\"] = 117] = \"WhileKeyword\";\n  SyntaxKind5[SyntaxKind5[\"WithKeyword\"] = 118] = \"WithKeyword\";\n  SyntaxKind5[SyntaxKind5[\"ImplementsKeyword\"] = 119] = \"ImplementsKeyword\";\n  SyntaxKind5[SyntaxKind5[\"InterfaceKeyword\"] = 120] = \"InterfaceKeyword\";\n  SyntaxKind5[SyntaxKind5[\"LetKeyword\"] = 121] = \"LetKeyword\";\n  SyntaxKind5[SyntaxKind5[\"PackageKeyword\"] = 122] = \"PackageKeyword\";\n  SyntaxKind5[SyntaxKind5[\"PrivateKeyword\"] = 123] = \"PrivateKeyword\";\n  SyntaxKind5[SyntaxKind5[\"ProtectedKeyword\"] = 124] = \"ProtectedKeyword\";\n  SyntaxKind5[SyntaxKind5[\"PublicKeyword\"] = 125] = \"PublicKeyword\";\n  SyntaxKind5[SyntaxKind5[\"StaticKeyword\"] = 126] = \"StaticKeyword\";\n  SyntaxKind5[SyntaxKind5[\"YieldKeyword\"] = 127] = \"YieldKeyword\";\n  SyntaxKind5[SyntaxKind5[\"AbstractKeyword\"] = 128] = \"AbstractKeyword\";\n  SyntaxKind5[SyntaxKind5[\"AccessorKeyword\"] = 129] = \"AccessorKeyword\";\n  SyntaxKind5[SyntaxKind5[\"AsKeyword\"] = 130] = \"AsKeyword\";\n  SyntaxKind5[SyntaxKind5[\"AssertsKeyword\"] = 131] = \"AssertsKeyword\";\n  SyntaxKind5[SyntaxKind5[\"AssertKeyword\"] = 132] = \"AssertKeyword\";\n  SyntaxKind5[SyntaxKind5[\"AnyKeyword\"] = 133] = \"AnyKeyword\";\n  SyntaxKind5[SyntaxKind5[\"AsyncKeyword\"] = 134] = \"AsyncKeyword\";\n  SyntaxKind5[SyntaxKind5[\"AwaitKeyword\"] = 135] = \"AwaitKeyword\";\n  SyntaxKind5[SyntaxKind5[\"BooleanKeyword\"] = 136] = \"BooleanKeyword\";\n  SyntaxKind5[SyntaxKind5[\"ConstructorKeyword\"] = 137] = \"ConstructorKeyword\";\n  SyntaxKind5[SyntaxKind5[\"DeclareKeyword\"] = 138] = \"DeclareKeyword\";\n  SyntaxKind5[SyntaxKind5[\"GetKeyword\"] = 139] = \"GetKeyword\";\n  SyntaxKind5[SyntaxKind5[\"InferKeyword\"] = 140] = \"InferKeyword\";\n  SyntaxKind5[SyntaxKind5[\"IntrinsicKeyword\"] = 141] = \"IntrinsicKeyword\";\n  SyntaxKind5[SyntaxKind5[\"IsKeyword\"] = 142] = \"IsKeyword\";\n  SyntaxKind5[SyntaxKind5[\"KeyOfKeyword\"] = 143] = \"KeyOfKeyword\";\n  SyntaxKind5[SyntaxKind5[\"ModuleKeyword\"] = 144] = \"ModuleKeyword\";\n  SyntaxKind5[SyntaxKind5[\"NamespaceKeyword\"] = 145] = \"NamespaceKeyword\";\n  SyntaxKind5[SyntaxKind5[\"NeverKeyword\"] = 146] = \"NeverKeyword\";\n  SyntaxKind5[SyntaxKind5[\"OutKeyword\"] = 147] = \"OutKeyword\";\n  SyntaxKind5[SyntaxKind5[\"ReadonlyKeyword\"] = 148] = \"ReadonlyKeyword\";\n  SyntaxKind5[SyntaxKind5[\"RequireKeyword\"] = 149] = \"RequireKeyword\";\n  SyntaxKind5[SyntaxKind5[\"NumberKeyword\"] = 150] = \"NumberKeyword\";\n  SyntaxKind5[SyntaxKind5[\"ObjectKeyword\"] = 151] = \"ObjectKeyword\";\n  SyntaxKind5[SyntaxKind5[\"SatisfiesKeyword\"] = 152] = \"SatisfiesKeyword\";\n  SyntaxKind5[SyntaxKind5[\"SetKeyword\"] = 153] = \"SetKeyword\";\n  SyntaxKind5[SyntaxKind5[\"StringKeyword\"] = 154] = \"StringKeyword\";\n  SyntaxKind5[SyntaxKind5[\"SymbolKeyword\"] = 155] = \"SymbolKeyword\";\n  SyntaxKind5[SyntaxKind5[\"TypeKeyword\"] = 156] = \"TypeKeyword\";\n  SyntaxKind5[SyntaxKind5[\"UndefinedKeyword\"] = 157] = \"UndefinedKeyword\";\n  SyntaxKind5[SyntaxKind5[\"UniqueKeyword\"] = 158] = \"UniqueKeyword\";\n  SyntaxKind5[SyntaxKind5[\"UnknownKeyword\"] = 159] = \"UnknownKeyword\";\n  SyntaxKind5[SyntaxKind5[\"UsingKeyword\"] = 160] = \"UsingKeyword\";\n  SyntaxKind5[SyntaxKind5[\"FromKeyword\"] = 161] = \"FromKeyword\";\n  SyntaxKind5[SyntaxKind5[\"GlobalKeyword\"] = 162] = \"GlobalKeyword\";\n  SyntaxKind5[SyntaxKind5[\"BigIntKeyword\"] = 163] = \"BigIntKeyword\";\n  SyntaxKind5[SyntaxKind5[\"OverrideKeyword\"] = 164] = \"OverrideKeyword\";\n  SyntaxKind5[SyntaxKind5[\"OfKeyword\"] = 165] = \"OfKeyword\";\n  SyntaxKind5[SyntaxKind5[\"DeferKeyword\"] = 166] = \"DeferKeyword\";\n  SyntaxKind5[SyntaxKind5[\"QualifiedName\"] = 167] = \"QualifiedName\";\n  SyntaxKind5[SyntaxKind5[\"ComputedPropertyName\"] = 168] = \"ComputedPropertyName\";\n  SyntaxKind5[SyntaxKind5[\"TypeParameter\"] = 169] = \"TypeParameter\";\n  SyntaxKind5[SyntaxKind5[\"Parameter\"] = 170] = \"Parameter\";\n  SyntaxKind5[SyntaxKind5[\"Decorator\"] = 171] = \"Decorator\";\n  SyntaxKind5[SyntaxKind5[\"PropertySignature\"] = 172] = \"PropertySignature\";\n  SyntaxKind5[SyntaxKind5[\"PropertyDeclaration\"] = 173] = \"PropertyDeclaration\";\n  SyntaxKind5[SyntaxKind5[\"MethodSignature\"] = 174] = \"MethodSignature\";\n  SyntaxKind5[SyntaxKind5[\"MethodDeclaration\"] = 175] = \"MethodDeclaration\";\n  SyntaxKind5[SyntaxKind5[\"ClassStaticBlockDeclaration\"] = 176] = \"ClassStaticBlockDeclaration\";\n  SyntaxKind5[SyntaxKind5[\"Constructor\"] = 177] = \"Constructor\";\n  SyntaxKind5[SyntaxKind5[\"GetAccessor\"] = 178] = \"GetAccessor\";\n  SyntaxKind5[SyntaxKind5[\"SetAccessor\"] = 179] = \"SetAccessor\";\n  SyntaxKind5[SyntaxKind5[\"CallSignature\"] = 180] = \"CallSignature\";\n  SyntaxKind5[SyntaxKind5[\"ConstructSignature\"] = 181] = \"ConstructSignature\";\n  SyntaxKind5[SyntaxKind5[\"IndexSignature\"] = 182] = \"IndexSignature\";\n  SyntaxKind5[SyntaxKind5[\"TypePredicate\"] = 183] = \"TypePredicate\";\n  SyntaxKind5[SyntaxKind5[\"TypeReference\"] = 184] = \"TypeReference\";\n  SyntaxKind5[SyntaxKind5[\"FunctionType\"] = 185] = \"FunctionType\";\n  SyntaxKind5[SyntaxKind5[\"ConstructorType\"] = 186] = \"ConstructorType\";\n  SyntaxKind5[SyntaxKind5[\"TypeQuery\"] = 187] = \"TypeQuery\";\n  SyntaxKind5[SyntaxKind5[\"TypeLiteral\"] = 188] = \"TypeLiteral\";\n  SyntaxKind5[SyntaxKind5[\"ArrayType\"] = 189] = \"ArrayType\";\n  SyntaxKind5[SyntaxKind5[\"TupleType\"] = 190] = \"TupleType\";\n  SyntaxKind5[SyntaxKind5[\"OptionalType\"] = 191] = \"OptionalType\";\n  SyntaxKind5[SyntaxKind5[\"RestType\"] = 192] = \"RestType\";\n  SyntaxKind5[SyntaxKind5[\"UnionType\"] = 193] = \"UnionType\";\n  SyntaxKind5[SyntaxKind5[\"IntersectionType\"] = 194] = \"IntersectionType\";\n  SyntaxKind5[SyntaxKind5[\"ConditionalType\"] = 195] = \"ConditionalType\";\n  SyntaxKind5[SyntaxKind5[\"InferType\"] = 196] = \"InferType\";\n  SyntaxKind5[SyntaxKind5[\"ParenthesizedType\"] = 197] = \"ParenthesizedType\";\n  SyntaxKind5[SyntaxKind5[\"ThisType\"] = 198] = \"ThisType\";\n  SyntaxKind5[SyntaxKind5[\"TypeOperator\"] = 199] = \"TypeOperator\";\n  SyntaxKind5[SyntaxKind5[\"IndexedAccessType\"] = 200] = \"IndexedAccessType\";\n  SyntaxKind5[SyntaxKind5[\"MappedType\"] = 201] = \"MappedType\";\n  SyntaxKind5[SyntaxKind5[\"LiteralType\"] = 202] = \"LiteralType\";\n  SyntaxKind5[SyntaxKind5[\"NamedTupleMember\"] = 203] = \"NamedTupleMember\";\n  SyntaxKind5[SyntaxKind5[\"TemplateLiteralType\"] = 204] = \"TemplateLiteralType\";\n  SyntaxKind5[SyntaxKind5[\"TemplateLiteralTypeSpan\"] = 205] = \"TemplateLiteralTypeSpan\";\n  SyntaxKind5[SyntaxKind5[\"ImportType\"] = 206] = \"ImportType\";\n  SyntaxKind5[SyntaxKind5[\"ObjectBindingPattern\"] = 207] = \"ObjectBindingPattern\";\n  SyntaxKind5[SyntaxKind5[\"ArrayBindingPattern\"] = 208] = \"ArrayBindingPattern\";\n  SyntaxKind5[SyntaxKind5[\"BindingElement\"] = 209] = \"BindingElement\";\n  SyntaxKind5[SyntaxKind5[\"ArrayLiteralExpression\"] = 210] = \"ArrayLiteralExpression\";\n  SyntaxKind5[SyntaxKind5[\"ObjectLiteralExpression\"] = 211] = \"ObjectLiteralExpression\";\n  SyntaxKind5[SyntaxKind5[\"PropertyAccessExpression\"] = 212] = \"PropertyAccessExpression\";\n  SyntaxKind5[SyntaxKind5[\"ElementAccessExpression\"] = 213] = \"ElementAccessExpression\";\n  SyntaxKind5[SyntaxKind5[\"CallExpression\"] = 214] = \"CallExpression\";\n  SyntaxKind5[SyntaxKind5[\"NewExpression\"] = 215] = \"NewExpression\";\n  SyntaxKind5[SyntaxKind5[\"TaggedTemplateExpression\"] = 216] = \"TaggedTemplateExpression\";\n  SyntaxKind5[SyntaxKind5[\"TypeAssertionExpression\"] = 217] = \"TypeAssertionExpression\";\n  SyntaxKind5[SyntaxKind5[\"ParenthesizedExpression\"] = 218] = \"ParenthesizedExpression\";\n  SyntaxKind5[SyntaxKind5[\"FunctionExpression\"] = 219] = \"FunctionExpression\";\n  SyntaxKind5[SyntaxKind5[\"ArrowFunction\"] = 220] = \"ArrowFunction\";\n  SyntaxKind5[SyntaxKind5[\"DeleteExpression\"] = 221] = \"DeleteExpression\";\n  SyntaxKind5[SyntaxKind5[\"TypeOfExpression\"] = 222] = \"TypeOfExpression\";\n  SyntaxKind5[SyntaxKind5[\"VoidExpression\"] = 223] = \"VoidExpression\";\n  SyntaxKind5[SyntaxKind5[\"AwaitExpression\"] = 224] = \"AwaitExpression\";\n  SyntaxKind5[SyntaxKind5[\"PrefixUnaryExpression\"] = 225] = \"PrefixUnaryExpression\";\n  SyntaxKind5[SyntaxKind5[\"PostfixUnaryExpression\"] = 226] = \"PostfixUnaryExpression\";\n  SyntaxKind5[SyntaxKind5[\"BinaryExpression\"] = 227] = \"BinaryExpression\";\n  SyntaxKind5[SyntaxKind5[\"ConditionalExpression\"] = 228] = \"ConditionalExpression\";\n  SyntaxKind5[SyntaxKind5[\"TemplateExpression\"] = 229] = \"TemplateExpression\";\n  SyntaxKind5[SyntaxKind5[\"YieldExpression\"] = 230] = \"YieldExpression\";\n  SyntaxKind5[SyntaxKind5[\"SpreadElement\"] = 231] = \"SpreadElement\";\n  SyntaxKind5[SyntaxKind5[\"ClassExpression\"] = 232] = \"ClassExpression\";\n  SyntaxKind5[SyntaxKind5[\"OmittedExpression\"] = 233] = \"OmittedExpression\";\n  SyntaxKind5[SyntaxKind5[\"ExpressionWithTypeArguments\"] = 234] = \"ExpressionWithTypeArguments\";\n  SyntaxKind5[SyntaxKind5[\"AsExpression\"] = 235] = \"AsExpression\";\n  SyntaxKind5[SyntaxKind5[\"NonNullExpression\"] = 236] = \"NonNullExpression\";\n  SyntaxKind5[SyntaxKind5[\"MetaProperty\"] = 237] = \"MetaProperty\";\n  SyntaxKind5[SyntaxKind5[\"SyntheticExpression\"] = 238] = \"SyntheticExpression\";\n  SyntaxKind5[SyntaxKind5[\"SatisfiesExpression\"] = 239] = \"SatisfiesExpression\";\n  SyntaxKind5[SyntaxKind5[\"TemplateSpan\"] = 240] = \"TemplateSpan\";\n  SyntaxKind5[SyntaxKind5[\"SemicolonClassElement\"] = 241] = \"SemicolonClassElement\";\n  SyntaxKind5[SyntaxKind5[\"Block\"] = 242] = \"Block\";\n  SyntaxKind5[SyntaxKind5[\"EmptyStatement\"] = 243] = \"EmptyStatement\";\n  SyntaxKind5[SyntaxKind5[\"VariableStatement\"] = 244] = \"VariableStatement\";\n  SyntaxKind5[SyntaxKind5[\"ExpressionStatement\"] = 245] = \"ExpressionStatement\";\n  SyntaxKind5[SyntaxKind5[\"IfStatement\"] = 246] = \"IfStatement\";\n  SyntaxKind5[SyntaxKind5[\"DoStatement\"] = 247] = \"DoStatement\";\n  SyntaxKind5[SyntaxKind5[\"WhileStatement\"] = 248] = \"WhileStatement\";\n  SyntaxKind5[SyntaxKind5[\"ForStatement\"] = 249] = \"ForStatement\";\n  SyntaxKind5[SyntaxKind5[\"ForInStatement\"] = 250] = \"ForInStatement\";\n  SyntaxKind5[SyntaxKind5[\"ForOfStatement\"] = 251] = \"ForOfStatement\";\n  SyntaxKind5[SyntaxKind5[\"ContinueStatement\"] = 252] = \"ContinueStatement\";\n  SyntaxKind5[SyntaxKind5[\"BreakStatement\"] = 253] = \"BreakStatement\";\n  SyntaxKind5[SyntaxKind5[\"ReturnStatement\"] = 254] = \"ReturnStatement\";\n  SyntaxKind5[SyntaxKind5[\"WithStatement\"] = 255] = \"WithStatement\";\n  SyntaxKind5[SyntaxKind5[\"SwitchStatement\"] = 256] = \"SwitchStatement\";\n  SyntaxKind5[SyntaxKind5[\"LabeledStatement\"] = 257] = \"LabeledStatement\";\n  SyntaxKind5[SyntaxKind5[\"ThrowStatement\"] = 258] = \"ThrowStatement\";\n  SyntaxKind5[SyntaxKind5[\"TryStatement\"] = 259] = \"TryStatement\";\n  SyntaxKind5[SyntaxKind5[\"DebuggerStatement\"] = 260] = \"DebuggerStatement\";\n  SyntaxKind5[SyntaxKind5[\"VariableDeclaration\"] = 261] = \"VariableDeclaration\";\n  SyntaxKind5[SyntaxKind5[\"VariableDeclarationList\"] = 262] = \"VariableDeclarationList\";\n  SyntaxKind5[SyntaxKind5[\"FunctionDeclaration\"] = 263] = \"FunctionDeclaration\";\n  SyntaxKind5[SyntaxKind5[\"ClassDeclaration\"] = 264] = \"ClassDeclaration\";\n  SyntaxKind5[SyntaxKind5[\"InterfaceDeclaration\"] = 265] = \"InterfaceDeclaration\";\n  SyntaxKind5[SyntaxKind5[\"TypeAliasDeclaration\"] = 266] = \"TypeAliasDeclaration\";\n  SyntaxKind5[SyntaxKind5[\"EnumDeclaration\"] = 267] = \"EnumDeclaration\";\n  SyntaxKind5[SyntaxKind5[\"ModuleDeclaration\"] = 268] = \"ModuleDeclaration\";\n  SyntaxKind5[SyntaxKind5[\"ModuleBlock\"] = 269] = \"ModuleBlock\";\n  SyntaxKind5[SyntaxKind5[\"CaseBlock\"] = 270] = \"CaseBlock\";\n  SyntaxKind5[SyntaxKind5[\"NamespaceExportDeclaration\"] = 271] = \"NamespaceExportDeclaration\";\n  SyntaxKind5[SyntaxKind5[\"ImportEqualsDeclaration\"] = 272] = \"ImportEqualsDeclaration\";\n  SyntaxKind5[SyntaxKind5[\"ImportDeclaration\"] = 273] = \"ImportDeclaration\";\n  SyntaxKind5[SyntaxKind5[\"ImportClause\"] = 274] = \"ImportClause\";\n  SyntaxKind5[SyntaxKind5[\"NamespaceImport\"] = 275] = \"NamespaceImport\";\n  SyntaxKind5[SyntaxKind5[\"NamedImports\"] = 276] = \"NamedImports\";\n  SyntaxKind5[SyntaxKind5[\"ImportSpecifier\"] = 277] = \"ImportSpecifier\";\n  SyntaxKind5[SyntaxKind5[\"ExportAssignment\"] = 278] = \"ExportAssignment\";\n  SyntaxKind5[SyntaxKind5[\"ExportDeclaration\"] = 279] = \"ExportDeclaration\";\n  SyntaxKind5[SyntaxKind5[\"NamedExports\"] = 280] = \"NamedExports\";\n  SyntaxKind5[SyntaxKind5[\"NamespaceExport\"] = 281] = \"NamespaceExport\";\n  SyntaxKind5[SyntaxKind5[\"ExportSpecifier\"] = 282] = \"ExportSpecifier\";\n  SyntaxKind5[SyntaxKind5[\"MissingDeclaration\"] = 283] = \"MissingDeclaration\";\n  SyntaxKind5[SyntaxKind5[\"ExternalModuleReference\"] = 284] = \"ExternalModuleReference\";\n  SyntaxKind5[SyntaxKind5[\"JsxElement\"] = 285] = \"JsxElement\";\n  SyntaxKind5[SyntaxKind5[\"JsxSelfClosingElement\"] = 286] = \"JsxSelfClosingElement\";\n  SyntaxKind5[SyntaxKind5[\"JsxOpeningElement\"] = 287] = \"JsxOpeningElement\";\n  SyntaxKind5[SyntaxKind5[\"JsxClosingElement\"] = 288] = \"JsxClosingElement\";\n  SyntaxKind5[SyntaxKind5[\"JsxFragment\"] = 289] = \"JsxFragment\";\n  SyntaxKind5[SyntaxKind5[\"JsxOpeningFragment\"] = 290] = \"JsxOpeningFragment\";\n  SyntaxKind5[SyntaxKind5[\"JsxClosingFragment\"] = 291] = \"JsxClosingFragment\";\n  SyntaxKind5[SyntaxKind5[\"JsxAttribute\"] = 292] = \"JsxAttribute\";\n  SyntaxKind5[SyntaxKind5[\"JsxAttributes\"] = 293] = \"JsxAttributes\";\n  SyntaxKind5[SyntaxKind5[\"JsxSpreadAttribute\"] = 294] = \"JsxSpreadAttribute\";\n  SyntaxKind5[SyntaxKind5[\"JsxExpression\"] = 295] = \"JsxExpression\";\n  SyntaxKind5[SyntaxKind5[\"JsxNamespacedName\"] = 296] = \"JsxNamespacedName\";\n  SyntaxKind5[SyntaxKind5[\"CaseClause\"] = 297] = \"CaseClause\";\n  SyntaxKind5[SyntaxKind5[\"DefaultClause\"] = 298] = \"DefaultClause\";\n  SyntaxKind5[SyntaxKind5[\"HeritageClause\"] = 299] = \"HeritageClause\";\n  SyntaxKind5[SyntaxKind5[\"CatchClause\"] = 300] = \"CatchClause\";\n  SyntaxKind5[SyntaxKind5[\"ImportAttributes\"] = 301] = \"ImportAttributes\";\n  SyntaxKind5[SyntaxKind5[\"ImportAttribute\"] = 302] = \"ImportAttribute\";\n  SyntaxKind5[SyntaxKind5[\"AssertClause\"] = 301 /* ImportAttributes */] = \"AssertClause\";\n  SyntaxKind5[SyntaxKind5[\"AssertEntry\"] = 302 /* ImportAttribute */] = \"AssertEntry\";\n  SyntaxKind5[SyntaxKind5[\"ImportTypeAssertionContainer\"] = 303] = \"ImportTypeAssertionContainer\";\n  SyntaxKind5[SyntaxKind5[\"PropertyAssignment\"] = 304] = \"PropertyAssignment\";\n  SyntaxKind5[SyntaxKind5[\"ShorthandPropertyAssignment\"] = 305] = \"ShorthandPropertyAssignment\";\n  SyntaxKind5[SyntaxKind5[\"SpreadAssignment\"] = 306] = \"SpreadAssignment\";\n  SyntaxKind5[SyntaxKind5[\"EnumMember\"] = 307] = \"EnumMember\";\n  SyntaxKind5[SyntaxKind5[\"SourceFile\"] = 308] = \"SourceFile\";\n  SyntaxKind5[SyntaxKind5[\"Bundle\"] = 309] = \"Bundle\";\n  SyntaxKind5[SyntaxKind5[\"JSDocTypeExpression\"] = 310] = \"JSDocTypeExpression\";\n  SyntaxKind5[SyntaxKind5[\"JSDocNameReference\"] = 311] = \"JSDocNameReference\";\n  SyntaxKind5[SyntaxKind5[\"JSDocMemberName\"] = 312] = \"JSDocMemberName\";\n  SyntaxKind5[SyntaxKind5[\"JSDocAllType\"] = 313] = \"JSDocAllType\";\n  SyntaxKind5[SyntaxKind5[\"JSDocUnknownType\"] = 314] = \"JSDocUnknownType\";\n  SyntaxKind5[SyntaxKind5[\"JSDocNullableType\"] = 315] = \"JSDocNullableType\";\n  SyntaxKind5[SyntaxKind5[\"JSDocNonNullableType\"] = 316] = \"JSDocNonNullableType\";\n  SyntaxKind5[SyntaxKind5[\"JSDocOptionalType\"] = 317] = \"JSDocOptionalType\";\n  SyntaxKind5[SyntaxKind5[\"JSDocFunctionType\"] = 318] = \"JSDocFunctionType\";\n  SyntaxKind5[SyntaxKind5[\"JSDocVariadicType\"] = 319] = \"JSDocVariadicType\";\n  SyntaxKind5[SyntaxKind5[\"JSDocNamepathType\"] = 320] = \"JSDocNamepathType\";\n  SyntaxKind5[SyntaxKind5[\"JSDoc\"] = 321] = \"JSDoc\";\n  SyntaxKind5[SyntaxKind5[\"JSDocComment\"] = 321 /* JSDoc */] = \"JSDocComment\";\n  SyntaxKind5[SyntaxKind5[\"JSDocText\"] = 322] = \"JSDocText\";\n  SyntaxKind5[SyntaxKind5[\"JSDocTypeLiteral\"] = 323] = \"JSDocTypeLiteral\";\n  SyntaxKind5[SyntaxKind5[\"JSDocSignature\"] = 324] = \"JSDocSignature\";\n  SyntaxKind5[SyntaxKind5[\"JSDocLink\"] = 325] = \"JSDocLink\";\n  SyntaxKind5[SyntaxKind5[\"JSDocLinkCode\"] = 326] = \"JSDocLinkCode\";\n  SyntaxKind5[SyntaxKind5[\"JSDocLinkPlain\"] = 327] = \"JSDocLinkPlain\";\n  SyntaxKind5[SyntaxKind5[\"JSDocTag\"] = 328] = \"JSDocTag\";\n  SyntaxKind5[SyntaxKind5[\"JSDocAugmentsTag\"] = 329] = \"JSDocAugmentsTag\";\n  SyntaxKind5[SyntaxKind5[\"JSDocImplementsTag\"] = 330] = \"JSDocImplementsTag\";\n  SyntaxKind5[SyntaxKind5[\"JSDocAuthorTag\"] = 331] = \"JSDocAuthorTag\";\n  SyntaxKind5[SyntaxKind5[\"JSDocDeprecatedTag\"] = 332] = \"JSDocDeprecatedTag\";\n  SyntaxKind5[SyntaxKind5[\"JSDocClassTag\"] = 333] = \"JSDocClassTag\";\n  SyntaxKind5[SyntaxKind5[\"JSDocPublicTag\"] = 334] = \"JSDocPublicTag\";\n  SyntaxKind5[SyntaxKind5[\"JSDocPrivateTag\"] = 335] = \"JSDocPrivateTag\";\n  SyntaxKind5[SyntaxKind5[\"JSDocProtectedTag\"] = 336] = \"JSDocProtectedTag\";\n  SyntaxKind5[SyntaxKind5[\"JSDocReadonlyTag\"] = 337] = \"JSDocReadonlyTag\";\n  SyntaxKind5[SyntaxKind5[\"JSDocOverrideTag\"] = 338] = \"JSDocOverrideTag\";\n  SyntaxKind5[SyntaxKind5[\"JSDocCallbackTag\"] = 339] = \"JSDocCallbackTag\";\n  SyntaxKind5[SyntaxKind5[\"JSDocOverloadTag\"] = 340] = \"JSDocOverloadTag\";\n  SyntaxKind5[SyntaxKind5[\"JSDocEnumTag\"] = 341] = \"JSDocEnumTag\";\n  SyntaxKind5[SyntaxKind5[\"JSDocParameterTag\"] = 342] = \"JSDocParameterTag\";\n  SyntaxKind5[SyntaxKind5[\"JSDocReturnTag\"] = 343] = \"JSDocReturnTag\";\n  SyntaxKind5[SyntaxKind5[\"JSDocThisTag\"] = 344] = \"JSDocThisTag\";\n  SyntaxKind5[SyntaxKind5[\"JSDocTypeTag\"] = 345] = \"JSDocTypeTag\";\n  SyntaxKind5[SyntaxKind5[\"JSDocTemplateTag\"] = 346] = \"JSDocTemplateTag\";\n  SyntaxKind5[SyntaxKind5[\"JSDocTypedefTag\"] = 347] = \"JSDocTypedefTag\";\n  SyntaxKind5[SyntaxKind5[\"JSDocSeeTag\"] = 348] = \"JSDocSeeTag\";\n  SyntaxKind5[SyntaxKind5[\"JSDocPropertyTag\"] = 349] = \"JSDocPropertyTag\";\n  SyntaxKind5[SyntaxKind5[\"JSDocThrowsTag\"] = 350] = \"JSDocThrowsTag\";\n  SyntaxKind5[SyntaxKind5[\"JSDocSatisfiesTag\"] = 351] = \"JSDocSatisfiesTag\";\n  SyntaxKind5[SyntaxKind5[\"JSDocImportTag\"] = 352] = \"JSDocImportTag\";\n  SyntaxKind5[SyntaxKind5[\"SyntaxList\"] = 353] = \"SyntaxList\";\n  SyntaxKind5[SyntaxKind5[\"NotEmittedStatement\"] = 354] = \"NotEmittedStatement\";\n  SyntaxKind5[SyntaxKind5[\"NotEmittedTypeElement\"] = 355] = \"NotEmittedTypeElement\";\n  SyntaxKind5[SyntaxKind5[\"PartiallyEmittedExpression\"] = 356] = \"PartiallyEmittedExpression\";\n  SyntaxKind5[SyntaxKind5[\"CommaListExpression\"] = 357] = \"CommaListExpression\";\n  SyntaxKind5[SyntaxKind5[\"SyntheticReferenceExpression\"] = 358] = \"SyntheticReferenceExpression\";\n  SyntaxKind5[SyntaxKind5[\"Count\"] = 359] = \"Count\";\n  SyntaxKind5[SyntaxKind5[\"FirstAssignment\"] = 64 /* EqualsToken */] = \"FirstAssignment\";\n  SyntaxKind5[SyntaxKind5[\"LastAssignment\"] = 79 /* CaretEqualsToken */] = \"LastAssignment\";\n  SyntaxKind5[SyntaxKind5[\"FirstCompoundAssignment\"] = 65 /* PlusEqualsToken */] = \"FirstCompoundAssignment\";\n  SyntaxKind5[SyntaxKind5[\"LastCompoundAssignment\"] = 79 /* CaretEqualsToken */] = \"LastCompoundAssignment\";\n  SyntaxKind5[SyntaxKind5[\"FirstReservedWord\"] = 83 /* BreakKeyword */] = \"FirstReservedWord\";\n  SyntaxKind5[SyntaxKind5[\"LastReservedWord\"] = 118 /* WithKeyword */] = \"LastReservedWord\";\n  SyntaxKind5[SyntaxKind5[\"FirstKeyword\"] = 83 /* BreakKeyword */] = \"FirstKeyword\";\n  SyntaxKind5[SyntaxKind5[\"LastKeyword\"] = 166 /* DeferKeyword */] = \"LastKeyword\";\n  SyntaxKind5[SyntaxKind5[\"FirstFutureReservedWord\"] = 119 /* ImplementsKeyword */] = \"FirstFutureReservedWord\";\n  SyntaxKind5[SyntaxKind5[\"LastFutureReservedWord\"] = 127 /* YieldKeyword */] = \"LastFutureReservedWord\";\n  SyntaxKind5[SyntaxKind5[\"FirstTypeNode\"] = 183 /* TypePredicate */] = \"FirstTypeNode\";\n  SyntaxKind5[SyntaxKind5[\"LastTypeNode\"] = 206 /* ImportType */] = \"LastTypeNode\";\n  SyntaxKind5[SyntaxKind5[\"FirstPunctuation\"] = 19 /* OpenBraceToken */] = \"FirstPunctuation\";\n  SyntaxKind5[SyntaxKind5[\"LastPunctuation\"] = 79 /* CaretEqualsToken */] = \"LastPunctuation\";\n  SyntaxKind5[SyntaxKind5[\"FirstToken\"] = 0 /* Unknown */] = \"FirstToken\";\n  SyntaxKind5[SyntaxKind5[\"LastToken\"] = 166 /* LastKeyword */] = \"LastToken\";\n  SyntaxKind5[SyntaxKind5[\"FirstTriviaToken\"] = 2 /* SingleLineCommentTrivia */] = \"FirstTriviaToken\";\n  SyntaxKind5[SyntaxKind5[\"LastTriviaToken\"] = 7 /* ConflictMarkerTrivia */] = \"LastTriviaToken\";\n  SyntaxKind5[SyntaxKind5[\"FirstLiteralToken\"] = 9 /* NumericLiteral */] = \"FirstLiteralToken\";\n  SyntaxKind5[SyntaxKind5[\"LastLiteralToken\"] = 15 /* NoSubstitutionTemplateLiteral */] = \"LastLiteralToken\";\n  SyntaxKind5[SyntaxKind5[\"FirstTemplateToken\"] = 15 /* NoSubstitutionTemplateLiteral */] = \"FirstTemplateToken\";\n  SyntaxKind5[SyntaxKind5[\"LastTemplateToken\"] = 18 /* TemplateTail */] = \"LastTemplateToken\";\n  SyntaxKind5[SyntaxKind5[\"FirstBinaryOperator\"] = 30 /* LessThanToken */] = \"FirstBinaryOperator\";\n  SyntaxKind5[SyntaxKind5[\"LastBinaryOperator\"] = 79 /* CaretEqualsToken */] = \"LastBinaryOperator\";\n  SyntaxKind5[SyntaxKind5[\"FirstStatement\"] = 244 /* VariableStatement */] = \"FirstStatement\";\n  SyntaxKind5[SyntaxKind5[\"LastStatement\"] = 260 /* DebuggerStatement */] = \"LastStatement\";\n  SyntaxKind5[SyntaxKind5[\"FirstNode\"] = 167 /* QualifiedName */] = \"FirstNode\";\n  SyntaxKind5[SyntaxKind5[\"FirstJSDocNode\"] = 310 /* JSDocTypeExpression */] = \"FirstJSDocNode\";\n  SyntaxKind5[SyntaxKind5[\"LastJSDocNode\"] = 352 /* JSDocImportTag */] = \"LastJSDocNode\";\n  SyntaxKind5[SyntaxKind5[\"FirstJSDocTagNode\"] = 328 /* JSDocTag */] = \"FirstJSDocTagNode\";\n  SyntaxKind5[SyntaxKind5[\"LastJSDocTagNode\"] = 352 /* JSDocImportTag */] = \"LastJSDocTagNode\";\n  SyntaxKind5[SyntaxKind5[\"FirstContextualKeyword\"] = 128 /* AbstractKeyword */] = \"FirstContextualKeyword\";\n  SyntaxKind5[SyntaxKind5[\"LastContextualKeyword\"] = 166 /* LastKeyword */] = \"LastContextualKeyword\";\n  return SyntaxKind5;\n})(SyntaxKind || {});\nvar NodeFlags = /* @__PURE__ */ ((NodeFlags3) => {\n  NodeFlags3[NodeFlags3[\"None\"] = 0] = \"None\";\n  NodeFlags3[NodeFlags3[\"Let\"] = 1] = \"Let\";\n  NodeFlags3[NodeFlags3[\"Const\"] = 2] = \"Const\";\n  NodeFlags3[NodeFlags3[\"Using\"] = 4] = \"Using\";\n  NodeFlags3[NodeFlags3[\"AwaitUsing\"] = 6] = \"AwaitUsing\";\n  NodeFlags3[NodeFlags3[\"NestedNamespace\"] = 8] = \"NestedNamespace\";\n  NodeFlags3[NodeFlags3[\"Synthesized\"] = 16] = \"Synthesized\";\n  NodeFlags3[NodeFlags3[\"Namespace\"] = 32] = \"Namespace\";\n  NodeFlags3[NodeFlags3[\"OptionalChain\"] = 64] = \"OptionalChain\";\n  NodeFlags3[NodeFlags3[\"ExportContext\"] = 128] = \"ExportContext\";\n  NodeFlags3[NodeFlags3[\"ContainsThis\"] = 256] = \"ContainsThis\";\n  NodeFlags3[NodeFlags3[\"HasImplicitReturn\"] = 512] = \"HasImplicitReturn\";\n  NodeFlags3[NodeFlags3[\"HasExplicitReturn\"] = 1024] = \"HasExplicitReturn\";\n  NodeFlags3[NodeFlags3[\"GlobalAugmentation\"] = 2048] = \"GlobalAugmentation\";\n  NodeFlags3[NodeFlags3[\"HasAsyncFunctions\"] = 4096] = \"HasAsyncFunctions\";\n  NodeFlags3[NodeFlags3[\"DisallowInContext\"] = 8192] = \"DisallowInContext\";\n  NodeFlags3[NodeFlags3[\"YieldContext\"] = 16384] = \"YieldContext\";\n  NodeFlags3[NodeFlags3[\"DecoratorContext\"] = 32768] = \"DecoratorContext\";\n  NodeFlags3[NodeFlags3[\"AwaitContext\"] = 65536] = \"AwaitContext\";\n  NodeFlags3[NodeFlags3[\"DisallowConditionalTypesContext\"] = 131072] = \"DisallowConditionalTypesContext\";\n  NodeFlags3[NodeFlags3[\"ThisNodeHasError\"] = 262144] = \"ThisNodeHasError\";\n  NodeFlags3[NodeFlags3[\"JavaScriptFile\"] = 524288] = \"JavaScriptFile\";\n  NodeFlags3[NodeFlags3[\"ThisNodeOrAnySubNodesHasError\"] = 1048576] = \"ThisNodeOrAnySubNodesHasError\";\n  NodeFlags3[NodeFlags3[\"HasAggregatedChildData\"] = 2097152] = \"HasAggregatedChildData\";\n  NodeFlags3[NodeFlags3[\"PossiblyContainsDynamicImport\"] = 4194304] = \"PossiblyContainsDynamicImport\";\n  NodeFlags3[NodeFlags3[\"PossiblyContainsImportMeta\"] = 8388608] = \"PossiblyContainsImportMeta\";\n  NodeFlags3[NodeFlags3[\"JSDoc\"] = 16777216] = \"JSDoc\";\n  NodeFlags3[NodeFlags3[\"Ambient\"] = 33554432] = \"Ambient\";\n  NodeFlags3[NodeFlags3[\"InWithStatement\"] = 67108864] = \"InWithStatement\";\n  NodeFlags3[NodeFlags3[\"JsonFile\"] = 134217728] = \"JsonFile\";\n  NodeFlags3[NodeFlags3[\"TypeCached\"] = 268435456] = \"TypeCached\";\n  NodeFlags3[NodeFlags3[\"Deprecated\"] = 536870912] = \"Deprecated\";\n  NodeFlags3[NodeFlags3[\"BlockScoped\"] = 7] = \"BlockScoped\";\n  NodeFlags3[NodeFlags3[\"Constant\"] = 6] = \"Constant\";\n  NodeFlags3[NodeFlags3[\"ReachabilityCheckFlags\"] = 1536] = \"ReachabilityCheckFlags\";\n  NodeFlags3[NodeFlags3[\"ReachabilityAndEmitFlags\"] = 5632] = \"ReachabilityAndEmitFlags\";\n  NodeFlags3[NodeFlags3[\"ContextFlags\"] = 101441536] = \"ContextFlags\";\n  NodeFlags3[NodeFlags3[\"TypeExcludesFlags\"] = 81920] = \"TypeExcludesFlags\";\n  NodeFlags3[NodeFlags3[\"PermanentlySetIncrementalFlags\"] = 12582912] = \"PermanentlySetIncrementalFlags\";\n  NodeFlags3[NodeFlags3[\"IdentifierHasExtendedUnicodeEscape\"] = 256 /* ContainsThis */] = \"IdentifierHasExtendedUnicodeEscape\";\n  NodeFlags3[NodeFlags3[\"IdentifierIsInJSDocNamespace\"] = 4096 /* HasAsyncFunctions */] = \"IdentifierIsInJSDocNamespace\";\n  return NodeFlags3;\n})(NodeFlags || {});\nvar ModifierFlags = /* @__PURE__ */ ((ModifierFlags3) => {\n  ModifierFlags3[ModifierFlags3[\"None\"] = 0] = \"None\";\n  ModifierFlags3[ModifierFlags3[\"Public\"] = 1] = \"Public\";\n  ModifierFlags3[ModifierFlags3[\"Private\"] = 2] = \"Private\";\n  ModifierFlags3[ModifierFlags3[\"Protected\"] = 4] = \"Protected\";\n  ModifierFlags3[ModifierFlags3[\"Readonly\"] = 8] = \"Readonly\";\n  ModifierFlags3[ModifierFlags3[\"Override\"] = 16] = \"Override\";\n  ModifierFlags3[ModifierFlags3[\"Export\"] = 32] = \"Export\";\n  ModifierFlags3[ModifierFlags3[\"Abstract\"] = 64] = \"Abstract\";\n  ModifierFlags3[ModifierFlags3[\"Ambient\"] = 128] = \"Ambient\";\n  ModifierFlags3[ModifierFlags3[\"Static\"] = 256] = \"Static\";\n  ModifierFlags3[ModifierFlags3[\"Accessor\"] = 512] = \"Accessor\";\n  ModifierFlags3[ModifierFlags3[\"Async\"] = 1024] = \"Async\";\n  ModifierFlags3[ModifierFlags3[\"Default\"] = 2048] = \"Default\";\n  ModifierFlags3[ModifierFlags3[\"Const\"] = 4096] = \"Const\";\n  ModifierFlags3[ModifierFlags3[\"In\"] = 8192] = \"In\";\n  ModifierFlags3[ModifierFlags3[\"Out\"] = 16384] = \"Out\";\n  ModifierFlags3[ModifierFlags3[\"Decorator\"] = 32768] = \"Decorator\";\n  ModifierFlags3[ModifierFlags3[\"Deprecated\"] = 65536] = \"Deprecated\";\n  ModifierFlags3[ModifierFlags3[\"JSDocPublic\"] = 8388608] = \"JSDocPublic\";\n  ModifierFlags3[ModifierFlags3[\"JSDocPrivate\"] = 16777216] = \"JSDocPrivate\";\n  ModifierFlags3[ModifierFlags3[\"JSDocProtected\"] = 33554432] = \"JSDocProtected\";\n  ModifierFlags3[ModifierFlags3[\"JSDocReadonly\"] = 67108864] = \"JSDocReadonly\";\n  ModifierFlags3[ModifierFlags3[\"JSDocOverride\"] = 134217728] = \"JSDocOverride\";\n  ModifierFlags3[ModifierFlags3[\"SyntacticOrJSDocModifiers\"] = 31] = \"SyntacticOrJSDocModifiers\";\n  ModifierFlags3[ModifierFlags3[\"SyntacticOnlyModifiers\"] = 65504] = \"SyntacticOnlyModifiers\";\n  ModifierFlags3[ModifierFlags3[\"SyntacticModifiers\"] = 65535] = \"SyntacticModifiers\";\n  ModifierFlags3[ModifierFlags3[\"JSDocCacheOnlyModifiers\"] = 260046848] = \"JSDocCacheOnlyModifiers\";\n  ModifierFlags3[ModifierFlags3[\"JSDocOnlyModifiers\"] = 65536 /* Deprecated */] = \"JSDocOnlyModifiers\";\n  ModifierFlags3[ModifierFlags3[\"NonCacheOnlyModifiers\"] = 131071] = \"NonCacheOnlyModifiers\";\n  ModifierFlags3[ModifierFlags3[\"HasComputedJSDocModifiers\"] = 268435456] = \"HasComputedJSDocModifiers\";\n  ModifierFlags3[ModifierFlags3[\"HasComputedFlags\"] = 536870912] = \"HasComputedFlags\";\n  ModifierFlags3[ModifierFlags3[\"AccessibilityModifier\"] = 7] = \"AccessibilityModifier\";\n  ModifierFlags3[ModifierFlags3[\"ParameterPropertyModifier\"] = 31] = \"ParameterPropertyModifier\";\n  ModifierFlags3[ModifierFlags3[\"NonPublicAccessibilityModifier\"] = 6] = \"NonPublicAccessibilityModifier\";\n  ModifierFlags3[ModifierFlags3[\"TypeScriptModifier\"] = 28895] = \"TypeScriptModifier\";\n  ModifierFlags3[ModifierFlags3[\"ExportDefault\"] = 2080] = \"ExportDefault\";\n  ModifierFlags3[ModifierFlags3[\"All\"] = 131071] = \"All\";\n  ModifierFlags3[ModifierFlags3[\"Modifier\"] = 98303] = \"Modifier\";\n  return ModifierFlags3;\n})(ModifierFlags || {});\nvar JsxFlags = /* @__PURE__ */ ((JsxFlags2) => {\n  JsxFlags2[JsxFlags2[\"None\"] = 0] = \"None\";\n  JsxFlags2[JsxFlags2[\"IntrinsicNamedElement\"] = 1] = \"IntrinsicNamedElement\";\n  JsxFlags2[JsxFlags2[\"IntrinsicIndexedElement\"] = 2] = \"IntrinsicIndexedElement\";\n  JsxFlags2[JsxFlags2[\"IntrinsicElement\"] = 3] = \"IntrinsicElement\";\n  return JsxFlags2;\n})(JsxFlags || {});\nvar RelationComparisonResult = /* @__PURE__ */ ((RelationComparisonResult3) => {\n  RelationComparisonResult3[RelationComparisonResult3[\"None\"] = 0] = \"None\";\n  RelationComparisonResult3[RelationComparisonResult3[\"Succeeded\"] = 1] = \"Succeeded\";\n  RelationComparisonResult3[RelationComparisonResult3[\"Failed\"] = 2] = \"Failed\";\n  RelationComparisonResult3[RelationComparisonResult3[\"ReportsUnmeasurable\"] = 8] = \"ReportsUnmeasurable\";\n  RelationComparisonResult3[RelationComparisonResult3[\"ReportsUnreliable\"] = 16] = \"ReportsUnreliable\";\n  RelationComparisonResult3[RelationComparisonResult3[\"ReportsMask\"] = 24] = \"ReportsMask\";\n  RelationComparisonResult3[RelationComparisonResult3[\"ComplexityOverflow\"] = 32] = \"ComplexityOverflow\";\n  RelationComparisonResult3[RelationComparisonResult3[\"StackDepthOverflow\"] = 64] = \"StackDepthOverflow\";\n  RelationComparisonResult3[RelationComparisonResult3[\"Overflow\"] = 96] = \"Overflow\";\n  return RelationComparisonResult3;\n})(RelationComparisonResult || {});\nvar PredicateSemantics = /* @__PURE__ */ ((PredicateSemantics2) => {\n  PredicateSemantics2[PredicateSemantics2[\"None\"] = 0] = \"None\";\n  PredicateSemantics2[PredicateSemantics2[\"Always\"] = 1] = \"Always\";\n  PredicateSemantics2[PredicateSemantics2[\"Never\"] = 2] = \"Never\";\n  PredicateSemantics2[PredicateSemantics2[\"Sometimes\"] = 3] = \"Sometimes\";\n  return PredicateSemantics2;\n})(PredicateSemantics || {});\nvar GeneratedIdentifierFlags = /* @__PURE__ */ ((GeneratedIdentifierFlags2) => {\n  GeneratedIdentifierFlags2[GeneratedIdentifierFlags2[\"None\"] = 0] = \"None\";\n  GeneratedIdentifierFlags2[GeneratedIdentifierFlags2[\"Auto\"] = 1] = \"Auto\";\n  GeneratedIdentifierFlags2[GeneratedIdentifierFlags2[\"Loop\"] = 2] = \"Loop\";\n  GeneratedIdentifierFlags2[GeneratedIdentifierFlags2[\"Unique\"] = 3] = \"Unique\";\n  GeneratedIdentifierFlags2[GeneratedIdentifierFlags2[\"Node\"] = 4] = \"Node\";\n  GeneratedIdentifierFlags2[GeneratedIdentifierFlags2[\"KindMask\"] = 7] = \"KindMask\";\n  GeneratedIdentifierFlags2[GeneratedIdentifierFlags2[\"ReservedInNestedScopes\"] = 8] = \"ReservedInNestedScopes\";\n  GeneratedIdentifierFlags2[GeneratedIdentifierFlags2[\"Optimistic\"] = 16] = \"Optimistic\";\n  GeneratedIdentifierFlags2[GeneratedIdentifierFlags2[\"FileLevel\"] = 32] = \"FileLevel\";\n  GeneratedIdentifierFlags2[GeneratedIdentifierFlags2[\"AllowNameSubstitution\"] = 64] = \"AllowNameSubstitution\";\n  return GeneratedIdentifierFlags2;\n})(GeneratedIdentifierFlags || {});\nvar RegularExpressionFlags = /* @__PURE__ */ ((RegularExpressionFlags2) => {\n  RegularExpressionFlags2[RegularExpressionFlags2[\"None\"] = 0] = \"None\";\n  RegularExpressionFlags2[RegularExpressionFlags2[\"HasIndices\"] = 1] = \"HasIndices\";\n  RegularExpressionFlags2[RegularExpressionFlags2[\"Global\"] = 2] = \"Global\";\n  RegularExpressionFlags2[RegularExpressionFlags2[\"IgnoreCase\"] = 4] = \"IgnoreCase\";\n  RegularExpressionFlags2[RegularExpressionFlags2[\"Multiline\"] = 8] = \"Multiline\";\n  RegularExpressionFlags2[RegularExpressionFlags2[\"DotAll\"] = 16] = \"DotAll\";\n  RegularExpressionFlags2[RegularExpressionFlags2[\"Unicode\"] = 32] = \"Unicode\";\n  RegularExpressionFlags2[RegularExpressionFlags2[\"UnicodeSets\"] = 64] = \"UnicodeSets\";\n  RegularExpressionFlags2[RegularExpressionFlags2[\"Sticky\"] = 128] = \"Sticky\";\n  RegularExpressionFlags2[RegularExpressionFlags2[\"AnyUnicodeMode\"] = 96] = \"AnyUnicodeMode\";\n  RegularExpressionFlags2[RegularExpressionFlags2[\"Modifiers\"] = 28] = \"Modifiers\";\n  return RegularExpressionFlags2;\n})(RegularExpressionFlags || {});\nvar TokenFlags = /* @__PURE__ */ ((TokenFlags2) => {\n  TokenFlags2[TokenFlags2[\"None\"] = 0] = \"None\";\n  TokenFlags2[TokenFlags2[\"PrecedingLineBreak\"] = 1] = \"PrecedingLineBreak\";\n  TokenFlags2[TokenFlags2[\"PrecedingJSDocComment\"] = 2] = \"PrecedingJSDocComment\";\n  TokenFlags2[TokenFlags2[\"Unterminated\"] = 4] = \"Unterminated\";\n  TokenFlags2[TokenFlags2[\"ExtendedUnicodeEscape\"] = 8] = \"ExtendedUnicodeEscape\";\n  TokenFlags2[TokenFlags2[\"Scientific\"] = 16] = \"Scientific\";\n  TokenFlags2[TokenFlags2[\"Octal\"] = 32] = \"Octal\";\n  TokenFlags2[TokenFlags2[\"HexSpecifier\"] = 64] = \"HexSpecifier\";\n  TokenFlags2[TokenFlags2[\"BinarySpecifier\"] = 128] = \"BinarySpecifier\";\n  TokenFlags2[TokenFlags2[\"OctalSpecifier\"] = 256] = \"OctalSpecifier\";\n  TokenFlags2[TokenFlags2[\"ContainsSeparator\"] = 512] = \"ContainsSeparator\";\n  TokenFlags2[TokenFlags2[\"UnicodeEscape\"] = 1024] = \"UnicodeEscape\";\n  TokenFlags2[TokenFlags2[\"ContainsInvalidEscape\"] = 2048] = \"ContainsInvalidEscape\";\n  TokenFlags2[TokenFlags2[\"HexEscape\"] = 4096] = \"HexEscape\";\n  TokenFlags2[TokenFlags2[\"ContainsLeadingZero\"] = 8192] = \"ContainsLeadingZero\";\n  TokenFlags2[TokenFlags2[\"ContainsInvalidSeparator\"] = 16384] = \"ContainsInvalidSeparator\";\n  TokenFlags2[TokenFlags2[\"PrecedingJSDocLeadingAsterisks\"] = 32768] = \"PrecedingJSDocLeadingAsterisks\";\n  TokenFlags2[TokenFlags2[\"BinaryOrOctalSpecifier\"] = 384] = \"BinaryOrOctalSpecifier\";\n  TokenFlags2[TokenFlags2[\"WithSpecifier\"] = 448] = \"WithSpecifier\";\n  TokenFlags2[TokenFlags2[\"StringLiteralFlags\"] = 7176] = \"StringLiteralFlags\";\n  TokenFlags2[TokenFlags2[\"NumericLiteralFlags\"] = 25584] = \"NumericLiteralFlags\";\n  TokenFlags2[TokenFlags2[\"TemplateLiteralLikeFlags\"] = 7176] = \"TemplateLiteralLikeFlags\";\n  TokenFlags2[TokenFlags2[\"IsInvalid\"] = 26656] = \"IsInvalid\";\n  return TokenFlags2;\n})(TokenFlags || {});\nvar FlowFlags = /* @__PURE__ */ ((FlowFlags2) => {\n  FlowFlags2[FlowFlags2[\"Unreachable\"] = 1] = \"Unreachable\";\n  FlowFlags2[FlowFlags2[\"Start\"] = 2] = \"Start\";\n  FlowFlags2[FlowFlags2[\"BranchLabel\"] = 4] = \"BranchLabel\";\n  FlowFlags2[FlowFlags2[\"LoopLabel\"] = 8] = \"LoopLabel\";\n  FlowFlags2[FlowFlags2[\"Assignment\"] = 16] = \"Assignment\";\n  FlowFlags2[FlowFlags2[\"TrueCondition\"] = 32] = \"TrueCondition\";\n  FlowFlags2[FlowFlags2[\"FalseCondition\"] = 64] = \"FalseCondition\";\n  FlowFlags2[FlowFlags2[\"SwitchClause\"] = 128] = \"SwitchClause\";\n  FlowFlags2[FlowFlags2[\"ArrayMutation\"] = 256] = \"ArrayMutation\";\n  FlowFlags2[FlowFlags2[\"Call\"] = 512] = \"Call\";\n  FlowFlags2[FlowFlags2[\"ReduceLabel\"] = 1024] = \"ReduceLabel\";\n  FlowFlags2[FlowFlags2[\"Referenced\"] = 2048] = \"Referenced\";\n  FlowFlags2[FlowFlags2[\"Shared\"] = 4096] = \"Shared\";\n  FlowFlags2[FlowFlags2[\"Label\"] = 12] = \"Label\";\n  FlowFlags2[FlowFlags2[\"Condition\"] = 96] = \"Condition\";\n  return FlowFlags2;\n})(FlowFlags || {});\nvar CommentDirectiveType = /* @__PURE__ */ ((CommentDirectiveType2) => {\n  CommentDirectiveType2[CommentDirectiveType2[\"ExpectError\"] = 0] = \"ExpectError\";\n  CommentDirectiveType2[CommentDirectiveType2[\"Ignore\"] = 1] = \"Ignore\";\n  return CommentDirectiveType2;\n})(CommentDirectiveType || {});\nvar OperationCanceledException = class {\n};\nvar FileIncludeKind = /* @__PURE__ */ ((FileIncludeKind2) => {\n  FileIncludeKind2[FileIncludeKind2[\"RootFile\"] = 0] = \"RootFile\";\n  FileIncludeKind2[FileIncludeKind2[\"SourceFromProjectReference\"] = 1] = \"SourceFromProjectReference\";\n  FileIncludeKind2[FileIncludeKind2[\"OutputFromProjectReference\"] = 2] = \"OutputFromProjectReference\";\n  FileIncludeKind2[FileIncludeKind2[\"Import\"] = 3] = \"Import\";\n  FileIncludeKind2[FileIncludeKind2[\"ReferenceFile\"] = 4] = \"ReferenceFile\";\n  FileIncludeKind2[FileIncludeKind2[\"TypeReferenceDirective\"] = 5] = \"TypeReferenceDirective\";\n  FileIncludeKind2[FileIncludeKind2[\"LibFile\"] = 6] = \"LibFile\";\n  FileIncludeKind2[FileIncludeKind2[\"LibReferenceDirective\"] = 7] = \"LibReferenceDirective\";\n  FileIncludeKind2[FileIncludeKind2[\"AutomaticTypeDirectiveFile\"] = 8] = \"AutomaticTypeDirectiveFile\";\n  return FileIncludeKind2;\n})(FileIncludeKind || {});\nvar FilePreprocessingDiagnosticsKind = /* @__PURE__ */ ((FilePreprocessingDiagnosticsKind2) => {\n  FilePreprocessingDiagnosticsKind2[FilePreprocessingDiagnosticsKind2[\"FilePreprocessingLibReferenceDiagnostic\"] = 0] = \"FilePreprocessingLibReferenceDiagnostic\";\n  FilePreprocessingDiagnosticsKind2[FilePreprocessingDiagnosticsKind2[\"FilePreprocessingFileExplainingDiagnostic\"] = 1] = \"FilePreprocessingFileExplainingDiagnostic\";\n  FilePreprocessingDiagnosticsKind2[FilePreprocessingDiagnosticsKind2[\"ResolutionDiagnostics\"] = 2] = \"ResolutionDiagnostics\";\n  return FilePreprocessingDiagnosticsKind2;\n})(FilePreprocessingDiagnosticsKind || {});\nvar EmitOnly = /* @__PURE__ */ ((EmitOnly4) => {\n  EmitOnly4[EmitOnly4[\"Js\"] = 0] = \"Js\";\n  EmitOnly4[EmitOnly4[\"Dts\"] = 1] = \"Dts\";\n  EmitOnly4[EmitOnly4[\"BuilderSignature\"] = 2] = \"BuilderSignature\";\n  return EmitOnly4;\n})(EmitOnly || {});\nvar StructureIsReused = /* @__PURE__ */ ((StructureIsReused2) => {\n  StructureIsReused2[StructureIsReused2[\"Not\"] = 0] = \"Not\";\n  StructureIsReused2[StructureIsReused2[\"SafeModules\"] = 1] = \"SafeModules\";\n  StructureIsReused2[StructureIsReused2[\"Completely\"] = 2] = \"Completely\";\n  return StructureIsReused2;\n})(StructureIsReused || {});\nvar ExitStatus = /* @__PURE__ */ ((ExitStatus2) => {\n  ExitStatus2[ExitStatus2[\"Success\"] = 0] = \"Success\";\n  ExitStatus2[ExitStatus2[\"DiagnosticsPresent_OutputsSkipped\"] = 1] = \"DiagnosticsPresent_OutputsSkipped\";\n  ExitStatus2[ExitStatus2[\"DiagnosticsPresent_OutputsGenerated\"] = 2] = \"DiagnosticsPresent_OutputsGenerated\";\n  ExitStatus2[ExitStatus2[\"InvalidProject_OutputsSkipped\"] = 3] = \"InvalidProject_OutputsSkipped\";\n  ExitStatus2[ExitStatus2[\"ProjectReferenceCycle_OutputsSkipped\"] = 4] = \"ProjectReferenceCycle_OutputsSkipped\";\n  return ExitStatus2;\n})(ExitStatus || {});\nvar MemberOverrideStatus = /* @__PURE__ */ ((MemberOverrideStatus2) => {\n  MemberOverrideStatus2[MemberOverrideStatus2[\"Ok\"] = 0] = \"Ok\";\n  MemberOverrideStatus2[MemberOverrideStatus2[\"NeedsOverride\"] = 1] = \"NeedsOverride\";\n  MemberOverrideStatus2[MemberOverrideStatus2[\"HasInvalidOverride\"] = 2] = \"HasInvalidOverride\";\n  return MemberOverrideStatus2;\n})(MemberOverrideStatus || {});\nvar UnionReduction = /* @__PURE__ */ ((UnionReduction2) => {\n  UnionReduction2[UnionReduction2[\"None\"] = 0] = \"None\";\n  UnionReduction2[UnionReduction2[\"Literal\"] = 1] = \"Literal\";\n  UnionReduction2[UnionReduction2[\"Subtype\"] = 2] = \"Subtype\";\n  return UnionReduction2;\n})(UnionReduction || {});\nvar IntersectionFlags = /* @__PURE__ */ ((IntersectionFlags2) => {\n  IntersectionFlags2[IntersectionFlags2[\"None\"] = 0] = \"None\";\n  IntersectionFlags2[IntersectionFlags2[\"NoSupertypeReduction\"] = 1] = \"NoSupertypeReduction\";\n  IntersectionFlags2[IntersectionFlags2[\"NoConstraintReduction\"] = 2] = \"NoConstraintReduction\";\n  return IntersectionFlags2;\n})(IntersectionFlags || {});\nvar ContextFlags = /* @__PURE__ */ ((ContextFlags3) => {\n  ContextFlags3[ContextFlags3[\"None\"] = 0] = \"None\";\n  ContextFlags3[ContextFlags3[\"Signature\"] = 1] = \"Signature\";\n  ContextFlags3[ContextFlags3[\"NoConstraints\"] = 2] = \"NoConstraints\";\n  ContextFlags3[ContextFlags3[\"Completions\"] = 4] = \"Completions\";\n  ContextFlags3[ContextFlags3[\"SkipBindingPatterns\"] = 8] = \"SkipBindingPatterns\";\n  return ContextFlags3;\n})(ContextFlags || {});\nvar NodeBuilderFlags = /* @__PURE__ */ ((NodeBuilderFlags2) => {\n  NodeBuilderFlags2[NodeBuilderFlags2[\"None\"] = 0] = \"None\";\n  NodeBuilderFlags2[NodeBuilderFlags2[\"NoTruncation\"] = 1] = \"NoTruncation\";\n  NodeBuilderFlags2[NodeBuilderFlags2[\"WriteArrayAsGenericType\"] = 2] = \"WriteArrayAsGenericType\";\n  NodeBuilderFlags2[NodeBuilderFlags2[\"GenerateNamesForShadowedTypeParams\"] = 4] = \"GenerateNamesForShadowedTypeParams\";\n  NodeBuilderFlags2[NodeBuilderFlags2[\"UseStructuralFallback\"] = 8] = \"UseStructuralFallback\";\n  NodeBuilderFlags2[NodeBuilderFlags2[\"ForbidIndexedAccessSymbolReferences\"] = 16] = \"ForbidIndexedAccessSymbolReferences\";\n  NodeBuilderFlags2[NodeBuilderFlags2[\"WriteTypeArgumentsOfSignature\"] = 32] = \"WriteTypeArgumentsOfSignature\";\n  NodeBuilderFlags2[NodeBuilderFlags2[\"UseFullyQualifiedType\"] = 64] = \"UseFullyQualifiedType\";\n  NodeBuilderFlags2[NodeBuilderFlags2[\"UseOnlyExternalAliasing\"] = 128] = \"UseOnlyExternalAliasing\";\n  NodeBuilderFlags2[NodeBuilderFlags2[\"SuppressAnyReturnType\"] = 256] = \"SuppressAnyReturnType\";\n  NodeBuilderFlags2[NodeBuilderFlags2[\"WriteTypeParametersInQualifiedName\"] = 512] = \"WriteTypeParametersInQualifiedName\";\n  NodeBuilderFlags2[NodeBuilderFlags2[\"MultilineObjectLiterals\"] = 1024] = \"MultilineObjectLiterals\";\n  NodeBuilderFlags2[NodeBuilderFlags2[\"WriteClassExpressionAsTypeLiteral\"] = 2048] = \"WriteClassExpressionAsTypeLiteral\";\n  NodeBuilderFlags2[NodeBuilderFlags2[\"UseTypeOfFunction\"] = 4096] = \"UseTypeOfFunction\";\n  NodeBuilderFlags2[NodeBuilderFlags2[\"OmitParameterModifiers\"] = 8192] = \"OmitParameterModifiers\";\n  NodeBuilderFlags2[NodeBuilderFlags2[\"UseAliasDefinedOutsideCurrentScope\"] = 16384] = \"UseAliasDefinedOutsideCurrentScope\";\n  NodeBuilderFlags2[NodeBuilderFlags2[\"UseSingleQuotesForStringLiteralType\"] = 268435456] = \"UseSingleQuotesForStringLiteralType\";\n  NodeBuilderFlags2[NodeBuilderFlags2[\"NoTypeReduction\"] = 536870912] = \"NoTypeReduction\";\n  NodeBuilderFlags2[NodeBuilderFlags2[\"OmitThisParameter\"] = 33554432] = \"OmitThisParameter\";\n  NodeBuilderFlags2[NodeBuilderFlags2[\"AllowThisInObjectLiteral\"] = 32768] = \"AllowThisInObjectLiteral\";\n  NodeBuilderFlags2[NodeBuilderFlags2[\"AllowQualifiedNameInPlaceOfIdentifier\"] = 65536] = \"AllowQualifiedNameInPlaceOfIdentifier\";\n  NodeBuilderFlags2[NodeBuilderFlags2[\"AllowAnonymousIdentifier\"] = 131072] = \"AllowAnonymousIdentifier\";\n  NodeBuilderFlags2[NodeBuilderFlags2[\"AllowEmptyUnionOrIntersection\"] = 262144] = \"AllowEmptyUnionOrIntersection\";\n  NodeBuilderFlags2[NodeBuilderFlags2[\"AllowEmptyTuple\"] = 524288] = \"AllowEmptyTuple\";\n  NodeBuilderFlags2[NodeBuilderFlags2[\"AllowUniqueESSymbolType\"] = 1048576] = \"AllowUniqueESSymbolType\";\n  NodeBuilderFlags2[NodeBuilderFlags2[\"AllowEmptyIndexInfoType\"] = 2097152] = \"AllowEmptyIndexInfoType\";\n  NodeBuilderFlags2[NodeBuilderFlags2[\"AllowNodeModulesRelativePaths\"] = 67108864] = \"AllowNodeModulesRelativePaths\";\n  NodeBuilderFlags2[NodeBuilderFlags2[\"IgnoreErrors\"] = 70221824] = \"IgnoreErrors\";\n  NodeBuilderFlags2[NodeBuilderFlags2[\"InObjectTypeLiteral\"] = 4194304] = \"InObjectTypeLiteral\";\n  NodeBuilderFlags2[NodeBuilderFlags2[\"InTypeAlias\"] = 8388608] = \"InTypeAlias\";\n  NodeBuilderFlags2[NodeBuilderFlags2[\"InInitialEntityName\"] = 16777216] = \"InInitialEntityName\";\n  return NodeBuilderFlags2;\n})(NodeBuilderFlags || {});\nvar InternalNodeBuilderFlags = /* @__PURE__ */ ((InternalNodeBuilderFlags2) => {\n  InternalNodeBuilderFlags2[InternalNodeBuilderFlags2[\"None\"] = 0] = \"None\";\n  InternalNodeBuilderFlags2[InternalNodeBuilderFlags2[\"WriteComputedProps\"] = 1] = \"WriteComputedProps\";\n  InternalNodeBuilderFlags2[InternalNodeBuilderFlags2[\"NoSyntacticPrinter\"] = 2] = \"NoSyntacticPrinter\";\n  InternalNodeBuilderFlags2[InternalNodeBuilderFlags2[\"DoNotIncludeSymbolChain\"] = 4] = \"DoNotIncludeSymbolChain\";\n  InternalNodeBuilderFlags2[InternalNodeBuilderFlags2[\"AllowUnresolvedNames\"] = 8] = \"AllowUnresolvedNames\";\n  return InternalNodeBuilderFlags2;\n})(InternalNodeBuilderFlags || {});\nvar TypeFormatFlags = /* @__PURE__ */ ((TypeFormatFlags2) => {\n  TypeFormatFlags2[TypeFormatFlags2[\"None\"] = 0] = \"None\";\n  TypeFormatFlags2[TypeFormatFlags2[\"NoTruncation\"] = 1] = \"NoTruncation\";\n  TypeFormatFlags2[TypeFormatFlags2[\"WriteArrayAsGenericType\"] = 2] = \"WriteArrayAsGenericType\";\n  TypeFormatFlags2[TypeFormatFlags2[\"GenerateNamesForShadowedTypeParams\"] = 4] = \"GenerateNamesForShadowedTypeParams\";\n  TypeFormatFlags2[TypeFormatFlags2[\"UseStructuralFallback\"] = 8] = \"UseStructuralFallback\";\n  TypeFormatFlags2[TypeFormatFlags2[\"WriteTypeArgumentsOfSignature\"] = 32] = \"WriteTypeArgumentsOfSignature\";\n  TypeFormatFlags2[TypeFormatFlags2[\"UseFullyQualifiedType\"] = 64] = \"UseFullyQualifiedType\";\n  TypeFormatFlags2[TypeFormatFlags2[\"SuppressAnyReturnType\"] = 256] = \"SuppressAnyReturnType\";\n  TypeFormatFlags2[TypeFormatFlags2[\"MultilineObjectLiterals\"] = 1024] = \"MultilineObjectLiterals\";\n  TypeFormatFlags2[TypeFormatFlags2[\"WriteClassExpressionAsTypeLiteral\"] = 2048] = \"WriteClassExpressionAsTypeLiteral\";\n  TypeFormatFlags2[TypeFormatFlags2[\"UseTypeOfFunction\"] = 4096] = \"UseTypeOfFunction\";\n  TypeFormatFlags2[TypeFormatFlags2[\"OmitParameterModifiers\"] = 8192] = \"OmitParameterModifiers\";\n  TypeFormatFlags2[TypeFormatFlags2[\"UseAliasDefinedOutsideCurrentScope\"] = 16384] = \"UseAliasDefinedOutsideCurrentScope\";\n  TypeFormatFlags2[TypeFormatFlags2[\"UseSingleQuotesForStringLiteralType\"] = 268435456] = \"UseSingleQuotesForStringLiteralType\";\n  TypeFormatFlags2[TypeFormatFlags2[\"NoTypeReduction\"] = 536870912] = \"NoTypeReduction\";\n  TypeFormatFlags2[TypeFormatFlags2[\"OmitThisParameter\"] = 33554432] = \"OmitThisParameter\";\n  TypeFormatFlags2[TypeFormatFlags2[\"AllowUniqueESSymbolType\"] = 1048576] = \"AllowUniqueESSymbolType\";\n  TypeFormatFlags2[TypeFormatFlags2[\"AddUndefined\"] = 131072] = \"AddUndefined\";\n  TypeFormatFlags2[TypeFormatFlags2[\"WriteArrowStyleSignature\"] = 262144] = \"WriteArrowStyleSignature\";\n  TypeFormatFlags2[TypeFormatFlags2[\"InArrayType\"] = 524288] = \"InArrayType\";\n  TypeFormatFlags2[TypeFormatFlags2[\"InElementType\"] = 2097152] = \"InElementType\";\n  TypeFormatFlags2[TypeFormatFlags2[\"InFirstTypeArgument\"] = 4194304] = \"InFirstTypeArgument\";\n  TypeFormatFlags2[TypeFormatFlags2[\"InTypeAlias\"] = 8388608] = \"InTypeAlias\";\n  TypeFormatFlags2[TypeFormatFlags2[\"NodeBuilderFlagsMask\"] = 848330095] = \"NodeBuilderFlagsMask\";\n  return TypeFormatFlags2;\n})(TypeFormatFlags || {});\nvar SymbolFormatFlags = /* @__PURE__ */ ((SymbolFormatFlags2) => {\n  SymbolFormatFlags2[SymbolFormatFlags2[\"None\"] = 0] = \"None\";\n  SymbolFormatFlags2[SymbolFormatFlags2[\"WriteTypeParametersOrArguments\"] = 1] = \"WriteTypeParametersOrArguments\";\n  SymbolFormatFlags2[SymbolFormatFlags2[\"UseOnlyExternalAliasing\"] = 2] = \"UseOnlyExternalAliasing\";\n  SymbolFormatFlags2[SymbolFormatFlags2[\"AllowAnyNodeKind\"] = 4] = \"AllowAnyNodeKind\";\n  SymbolFormatFlags2[SymbolFormatFlags2[\"UseAliasDefinedOutsideCurrentScope\"] = 8] = \"UseAliasDefinedOutsideCurrentScope\";\n  SymbolFormatFlags2[SymbolFormatFlags2[\"WriteComputedProps\"] = 16] = \"WriteComputedProps\";\n  SymbolFormatFlags2[SymbolFormatFlags2[\"DoNotIncludeSymbolChain\"] = 32] = \"DoNotIncludeSymbolChain\";\n  return SymbolFormatFlags2;\n})(SymbolFormatFlags || {});\nvar SymbolAccessibility = /* @__PURE__ */ ((SymbolAccessibility2) => {\n  SymbolAccessibility2[SymbolAccessibility2[\"Accessible\"] = 0] = \"Accessible\";\n  SymbolAccessibility2[SymbolAccessibility2[\"NotAccessible\"] = 1] = \"NotAccessible\";\n  SymbolAccessibility2[SymbolAccessibility2[\"CannotBeNamed\"] = 2] = \"CannotBeNamed\";\n  SymbolAccessibility2[SymbolAccessibility2[\"NotResolved\"] = 3] = \"NotResolved\";\n  return SymbolAccessibility2;\n})(SymbolAccessibility || {});\nvar TypePredicateKind = /* @__PURE__ */ ((TypePredicateKind2) => {\n  TypePredicateKind2[TypePredicateKind2[\"This\"] = 0] = \"This\";\n  TypePredicateKind2[TypePredicateKind2[\"Identifier\"] = 1] = \"Identifier\";\n  TypePredicateKind2[TypePredicateKind2[\"AssertsThis\"] = 2] = \"AssertsThis\";\n  TypePredicateKind2[TypePredicateKind2[\"AssertsIdentifier\"] = 3] = \"AssertsIdentifier\";\n  return TypePredicateKind2;\n})(TypePredicateKind || {});\nvar TypeReferenceSerializationKind = /* @__PURE__ */ ((TypeReferenceSerializationKind2) => {\n  TypeReferenceSerializationKind2[TypeReferenceSerializationKind2[\"Unknown\"] = 0] = \"Unknown\";\n  TypeReferenceSerializationKind2[TypeReferenceSerializationKind2[\"TypeWithConstructSignatureAndValue\"] = 1] = \"TypeWithConstructSignatureAndValue\";\n  TypeReferenceSerializationKind2[TypeReferenceSerializationKind2[\"VoidNullableOrNeverType\"] = 2] = \"VoidNullableOrNeverType\";\n  TypeReferenceSerializationKind2[TypeReferenceSerializationKind2[\"NumberLikeType\"] = 3] = \"NumberLikeType\";\n  TypeReferenceSerializationKind2[TypeReferenceSerializationKind2[\"BigIntLikeType\"] = 4] = \"BigIntLikeType\";\n  TypeReferenceSerializationKind2[TypeReferenceSerializationKind2[\"StringLikeType\"] = 5] = \"StringLikeType\";\n  TypeReferenceSerializationKind2[TypeReferenceSerializationKind2[\"BooleanType\"] = 6] = \"BooleanType\";\n  TypeReferenceSerializationKind2[TypeReferenceSerializationKind2[\"ArrayLikeType\"] = 7] = \"ArrayLikeType\";\n  TypeReferenceSerializationKind2[TypeReferenceSerializationKind2[\"ESSymbolType\"] = 8] = \"ESSymbolType\";\n  TypeReferenceSerializationKind2[TypeReferenceSerializationKind2[\"Promise\"] = 9] = \"Promise\";\n  TypeReferenceSerializationKind2[TypeReferenceSerializationKind2[\"TypeWithCallSignature\"] = 10] = \"TypeWithCallSignature\";\n  TypeReferenceSerializationKind2[TypeReferenceSerializationKind2[\"ObjectType\"] = 11] = \"ObjectType\";\n  return TypeReferenceSerializationKind2;\n})(TypeReferenceSerializationKind || {});\nvar SymbolFlags = /* @__PURE__ */ ((SymbolFlags3) => {\n  SymbolFlags3[SymbolFlags3[\"None\"] = 0] = \"None\";\n  SymbolFlags3[SymbolFlags3[\"FunctionScopedVariable\"] = 1] = \"FunctionScopedVariable\";\n  SymbolFlags3[SymbolFlags3[\"BlockScopedVariable\"] = 2] = \"BlockScopedVariable\";\n  SymbolFlags3[SymbolFlags3[\"Property\"] = 4] = \"Property\";\n  SymbolFlags3[SymbolFlags3[\"EnumMember\"] = 8] = \"EnumMember\";\n  SymbolFlags3[SymbolFlags3[\"Function\"] = 16] = \"Function\";\n  SymbolFlags3[SymbolFlags3[\"Class\"] = 32] = \"Class\";\n  SymbolFlags3[SymbolFlags3[\"Interface\"] = 64] = \"Interface\";\n  SymbolFlags3[SymbolFlags3[\"ConstEnum\"] = 128] = \"ConstEnum\";\n  SymbolFlags3[SymbolFlags3[\"RegularEnum\"] = 256] = \"RegularEnum\";\n  SymbolFlags3[SymbolFlags3[\"ValueModule\"] = 512] = \"ValueModule\";\n  SymbolFlags3[SymbolFlags3[\"NamespaceModule\"] = 1024] = \"NamespaceModule\";\n  SymbolFlags3[SymbolFlags3[\"TypeLiteral\"] = 2048] = \"TypeLiteral\";\n  SymbolFlags3[SymbolFlags3[\"ObjectLiteral\"] = 4096] = \"ObjectLiteral\";\n  SymbolFlags3[SymbolFlags3[\"Method\"] = 8192] = \"Method\";\n  SymbolFlags3[SymbolFlags3[\"Constructor\"] = 16384] = \"Constructor\";\n  SymbolFlags3[SymbolFlags3[\"GetAccessor\"] = 32768] = \"GetAccessor\";\n  SymbolFlags3[SymbolFlags3[\"SetAccessor\"] = 65536] = \"SetAccessor\";\n  SymbolFlags3[SymbolFlags3[\"Signature\"] = 131072] = \"Signature\";\n  SymbolFlags3[SymbolFlags3[\"TypeParameter\"] = 262144] = \"TypeParameter\";\n  SymbolFlags3[SymbolFlags3[\"TypeAlias\"] = 524288] = \"TypeAlias\";\n  SymbolFlags3[SymbolFlags3[\"ExportValue\"] = 1048576] = \"ExportValue\";\n  SymbolFlags3[SymbolFlags3[\"Alias\"] = 2097152] = \"Alias\";\n  SymbolFlags3[SymbolFlags3[\"Prototype\"] = 4194304] = \"Prototype\";\n  SymbolFlags3[SymbolFlags3[\"ExportStar\"] = 8388608] = \"ExportStar\";\n  SymbolFlags3[SymbolFlags3[\"Optional\"] = 16777216] = \"Optional\";\n  SymbolFlags3[SymbolFlags3[\"Transient\"] = 33554432] = \"Transient\";\n  SymbolFlags3[SymbolFlags3[\"Assignment\"] = 67108864] = \"Assignment\";\n  SymbolFlags3[SymbolFlags3[\"ModuleExports\"] = 134217728] = \"ModuleExports\";\n  SymbolFlags3[SymbolFlags3[\"All\"] = -1] = \"All\";\n  SymbolFlags3[SymbolFlags3[\"Enum\"] = 384] = \"Enum\";\n  SymbolFlags3[SymbolFlags3[\"Variable\"] = 3] = \"Variable\";\n  SymbolFlags3[SymbolFlags3[\"Value\"] = 111551] = \"Value\";\n  SymbolFlags3[SymbolFlags3[\"Type\"] = 788968] = \"Type\";\n  SymbolFlags3[SymbolFlags3[\"Namespace\"] = 1920] = \"Namespace\";\n  SymbolFlags3[SymbolFlags3[\"Module\"] = 1536] = \"Module\";\n  SymbolFlags3[SymbolFlags3[\"Accessor\"] = 98304] = \"Accessor\";\n  SymbolFlags3[SymbolFlags3[\"FunctionScopedVariableExcludes\"] = 111550] = \"FunctionScopedVariableExcludes\";\n  SymbolFlags3[SymbolFlags3[\"BlockScopedVariableExcludes\"] = 111551 /* Value */] = \"BlockScopedVariableExcludes\";\n  SymbolFlags3[SymbolFlags3[\"ParameterExcludes\"] = 111551 /* Value */] = \"ParameterExcludes\";\n  SymbolFlags3[SymbolFlags3[\"PropertyExcludes\"] = 0 /* None */] = \"PropertyExcludes\";\n  SymbolFlags3[SymbolFlags3[\"EnumMemberExcludes\"] = 900095] = \"EnumMemberExcludes\";\n  SymbolFlags3[SymbolFlags3[\"FunctionExcludes\"] = 110991] = \"FunctionExcludes\";\n  SymbolFlags3[SymbolFlags3[\"ClassExcludes\"] = 899503] = \"ClassExcludes\";\n  SymbolFlags3[SymbolFlags3[\"InterfaceExcludes\"] = 788872] = \"InterfaceExcludes\";\n  SymbolFlags3[SymbolFlags3[\"RegularEnumExcludes\"] = 899327] = \"RegularEnumExcludes\";\n  SymbolFlags3[SymbolFlags3[\"ConstEnumExcludes\"] = 899967] = \"ConstEnumExcludes\";\n  SymbolFlags3[SymbolFlags3[\"ValueModuleExcludes\"] = 110735] = \"ValueModuleExcludes\";\n  SymbolFlags3[SymbolFlags3[\"NamespaceModuleExcludes\"] = 0] = \"NamespaceModuleExcludes\";\n  SymbolFlags3[SymbolFlags3[\"MethodExcludes\"] = 103359] = \"MethodExcludes\";\n  SymbolFlags3[SymbolFlags3[\"GetAccessorExcludes\"] = 46015] = \"GetAccessorExcludes\";\n  SymbolFlags3[SymbolFlags3[\"SetAccessorExcludes\"] = 78783] = \"SetAccessorExcludes\";\n  SymbolFlags3[SymbolFlags3[\"AccessorExcludes\"] = 13247] = \"AccessorExcludes\";\n  SymbolFlags3[SymbolFlags3[\"TypeParameterExcludes\"] = 526824] = \"TypeParameterExcludes\";\n  SymbolFlags3[SymbolFlags3[\"TypeAliasExcludes\"] = 788968 /* Type */] = \"TypeAliasExcludes\";\n  SymbolFlags3[SymbolFlags3[\"AliasExcludes\"] = 2097152 /* Alias */] = \"AliasExcludes\";\n  SymbolFlags3[SymbolFlags3[\"ModuleMember\"] = 2623475] = \"ModuleMember\";\n  SymbolFlags3[SymbolFlags3[\"ExportHasLocal\"] = 944] = \"ExportHasLocal\";\n  SymbolFlags3[SymbolFlags3[\"BlockScoped\"] = 418] = \"BlockScoped\";\n  SymbolFlags3[SymbolFlags3[\"PropertyOrAccessor\"] = 98308] = \"PropertyOrAccessor\";\n  SymbolFlags3[SymbolFlags3[\"ClassMember\"] = 106500] = \"ClassMember\";\n  SymbolFlags3[SymbolFlags3[\"ExportSupportsDefaultModifier\"] = 112] = \"ExportSupportsDefaultModifier\";\n  SymbolFlags3[SymbolFlags3[\"ExportDoesNotSupportDefaultModifier\"] = -113] = \"ExportDoesNotSupportDefaultModifier\";\n  SymbolFlags3[SymbolFlags3[\"Classifiable\"] = 2885600] = \"Classifiable\";\n  SymbolFlags3[SymbolFlags3[\"LateBindingContainer\"] = 6256] = \"LateBindingContainer\";\n  return SymbolFlags3;\n})(SymbolFlags || {});\nvar CheckFlags = /* @__PURE__ */ ((CheckFlags2) => {\n  CheckFlags2[CheckFlags2[\"None\"] = 0] = \"None\";\n  CheckFlags2[CheckFlags2[\"Instantiated\"] = 1] = \"Instantiated\";\n  CheckFlags2[CheckFlags2[\"SyntheticProperty\"] = 2] = \"SyntheticProperty\";\n  CheckFlags2[CheckFlags2[\"SyntheticMethod\"] = 4] = \"SyntheticMethod\";\n  CheckFlags2[CheckFlags2[\"Readonly\"] = 8] = \"Readonly\";\n  CheckFlags2[CheckFlags2[\"ReadPartial\"] = 16] = \"ReadPartial\";\n  CheckFlags2[CheckFlags2[\"WritePartial\"] = 32] = \"WritePartial\";\n  CheckFlags2[CheckFlags2[\"HasNonUniformType\"] = 64] = \"HasNonUniformType\";\n  CheckFlags2[CheckFlags2[\"HasLiteralType\"] = 128] = \"HasLiteralType\";\n  CheckFlags2[CheckFlags2[\"ContainsPublic\"] = 256] = \"ContainsPublic\";\n  CheckFlags2[CheckFlags2[\"ContainsProtected\"] = 512] = \"ContainsProtected\";\n  CheckFlags2[CheckFlags2[\"ContainsPrivate\"] = 1024] = \"ContainsPrivate\";\n  CheckFlags2[CheckFlags2[\"ContainsStatic\"] = 2048] = \"ContainsStatic\";\n  CheckFlags2[CheckFlags2[\"Late\"] = 4096] = \"Late\";\n  CheckFlags2[CheckFlags2[\"ReverseMapped\"] = 8192] = \"ReverseMapped\";\n  CheckFlags2[CheckFlags2[\"OptionalParameter\"] = 16384] = \"OptionalParameter\";\n  CheckFlags2[CheckFlags2[\"RestParameter\"] = 32768] = \"RestParameter\";\n  CheckFlags2[CheckFlags2[\"DeferredType\"] = 65536] = \"DeferredType\";\n  CheckFlags2[CheckFlags2[\"HasNeverType\"] = 131072] = \"HasNeverType\";\n  CheckFlags2[CheckFlags2[\"Mapped\"] = 262144] = \"Mapped\";\n  CheckFlags2[CheckFlags2[\"StripOptional\"] = 524288] = \"StripOptional\";\n  CheckFlags2[CheckFlags2[\"Unresolved\"] = 1048576] = \"Unresolved\";\n  CheckFlags2[CheckFlags2[\"Synthetic\"] = 6] = \"Synthetic\";\n  CheckFlags2[CheckFlags2[\"Discriminant\"] = 192] = \"Discriminant\";\n  CheckFlags2[CheckFlags2[\"Partial\"] = 48] = \"Partial\";\n  return CheckFlags2;\n})(CheckFlags || {});\nvar InternalSymbolName = /* @__PURE__ */ ((InternalSymbolName2) => {\n  InternalSymbolName2[\"Call\"] = \"__call\";\n  InternalSymbolName2[\"Constructor\"] = \"__constructor\";\n  InternalSymbolName2[\"New\"] = \"__new\";\n  InternalSymbolName2[\"Index\"] = \"__index\";\n  InternalSymbolName2[\"ExportStar\"] = \"__export\";\n  InternalSymbolName2[\"Global\"] = \"__global\";\n  InternalSymbolName2[\"Missing\"] = \"__missing\";\n  InternalSymbolName2[\"Type\"] = \"__type\";\n  InternalSymbolName2[\"Object\"] = \"__object\";\n  InternalSymbolName2[\"JSXAttributes\"] = \"__jsxAttributes\";\n  InternalSymbolName2[\"Class\"] = \"__class\";\n  InternalSymbolName2[\"Function\"] = \"__function\";\n  InternalSymbolName2[\"Computed\"] = \"__computed\";\n  InternalSymbolName2[\"Resolving\"] = \"__resolving__\";\n  InternalSymbolName2[\"ExportEquals\"] = \"export=\";\n  InternalSymbolName2[\"Default\"] = \"default\";\n  InternalSymbolName2[\"This\"] = \"this\";\n  InternalSymbolName2[\"InstantiationExpression\"] = \"__instantiationExpression\";\n  InternalSymbolName2[\"ImportAttributes\"] = \"__importAttributes\";\n  return InternalSymbolName2;\n})(InternalSymbolName || {});\nvar NodeCheckFlags = /* @__PURE__ */ ((NodeCheckFlags3) => {\n  NodeCheckFlags3[NodeCheckFlags3[\"None\"] = 0] = \"None\";\n  NodeCheckFlags3[NodeCheckFlags3[\"TypeChecked\"] = 1] = \"TypeChecked\";\n  NodeCheckFlags3[NodeCheckFlags3[\"LexicalThis\"] = 2] = \"LexicalThis\";\n  NodeCheckFlags3[NodeCheckFlags3[\"CaptureThis\"] = 4] = \"CaptureThis\";\n  NodeCheckFlags3[NodeCheckFlags3[\"CaptureNewTarget\"] = 8] = \"CaptureNewTarget\";\n  NodeCheckFlags3[NodeCheckFlags3[\"SuperInstance\"] = 16] = \"SuperInstance\";\n  NodeCheckFlags3[NodeCheckFlags3[\"SuperStatic\"] = 32] = \"SuperStatic\";\n  NodeCheckFlags3[NodeCheckFlags3[\"ContextChecked\"] = 64] = \"ContextChecked\";\n  NodeCheckFlags3[NodeCheckFlags3[\"MethodWithSuperPropertyAccessInAsync\"] = 128] = \"MethodWithSuperPropertyAccessInAsync\";\n  NodeCheckFlags3[NodeCheckFlags3[\"MethodWithSuperPropertyAssignmentInAsync\"] = 256] = \"MethodWithSuperPropertyAssignmentInAsync\";\n  NodeCheckFlags3[NodeCheckFlags3[\"CaptureArguments\"] = 512] = \"CaptureArguments\";\n  NodeCheckFlags3[NodeCheckFlags3[\"EnumValuesComputed\"] = 1024] = \"EnumValuesComputed\";\n  NodeCheckFlags3[NodeCheckFlags3[\"LexicalModuleMergesWithClass\"] = 2048] = \"LexicalModuleMergesWithClass\";\n  NodeCheckFlags3[NodeCheckFlags3[\"LoopWithCapturedBlockScopedBinding\"] = 4096] = \"LoopWithCapturedBlockScopedBinding\";\n  NodeCheckFlags3[NodeCheckFlags3[\"ContainsCapturedBlockScopeBinding\"] = 8192] = \"ContainsCapturedBlockScopeBinding\";\n  NodeCheckFlags3[NodeCheckFlags3[\"CapturedBlockScopedBinding\"] = 16384] = \"CapturedBlockScopedBinding\";\n  NodeCheckFlags3[NodeCheckFlags3[\"BlockScopedBindingInLoop\"] = 32768] = \"BlockScopedBindingInLoop\";\n  NodeCheckFlags3[NodeCheckFlags3[\"NeedsLoopOutParameter\"] = 65536] = \"NeedsLoopOutParameter\";\n  NodeCheckFlags3[NodeCheckFlags3[\"AssignmentsMarked\"] = 131072] = \"AssignmentsMarked\";\n  NodeCheckFlags3[NodeCheckFlags3[\"ContainsConstructorReference\"] = 262144] = \"ContainsConstructorReference\";\n  NodeCheckFlags3[NodeCheckFlags3[\"ConstructorReference\"] = 536870912] = \"ConstructorReference\";\n  NodeCheckFlags3[NodeCheckFlags3[\"ContainsClassWithPrivateIdentifiers\"] = 1048576] = \"ContainsClassWithPrivateIdentifiers\";\n  NodeCheckFlags3[NodeCheckFlags3[\"ContainsSuperPropertyInStaticInitializer\"] = 2097152] = \"ContainsSuperPropertyInStaticInitializer\";\n  NodeCheckFlags3[NodeCheckFlags3[\"InCheckIdentifier\"] = 4194304] = \"InCheckIdentifier\";\n  NodeCheckFlags3[NodeCheckFlags3[\"PartiallyTypeChecked\"] = 8388608] = \"PartiallyTypeChecked\";\n  NodeCheckFlags3[NodeCheckFlags3[\"LazyFlags\"] = 539358128] = \"LazyFlags\";\n  return NodeCheckFlags3;\n})(NodeCheckFlags || {});\nvar TypeFlags = /* @__PURE__ */ ((TypeFlags2) => {\n  TypeFlags2[TypeFlags2[\"Any\"] = 1] = \"Any\";\n  TypeFlags2[TypeFlags2[\"Unknown\"] = 2] = \"Unknown\";\n  TypeFlags2[TypeFlags2[\"String\"] = 4] = \"String\";\n  TypeFlags2[TypeFlags2[\"Number\"] = 8] = \"Number\";\n  TypeFlags2[TypeFlags2[\"Boolean\"] = 16] = \"Boolean\";\n  TypeFlags2[TypeFlags2[\"Enum\"] = 32] = \"Enum\";\n  TypeFlags2[TypeFlags2[\"BigInt\"] = 64] = \"BigInt\";\n  TypeFlags2[TypeFlags2[\"StringLiteral\"] = 128] = \"StringLiteral\";\n  TypeFlags2[TypeFlags2[\"NumberLiteral\"] = 256] = \"NumberLiteral\";\n  TypeFlags2[TypeFlags2[\"BooleanLiteral\"] = 512] = \"BooleanLiteral\";\n  TypeFlags2[TypeFlags2[\"EnumLiteral\"] = 1024] = \"EnumLiteral\";\n  TypeFlags2[TypeFlags2[\"BigIntLiteral\"] = 2048] = \"BigIntLiteral\";\n  TypeFlags2[TypeFlags2[\"ESSymbol\"] = 4096] = \"ESSymbol\";\n  TypeFlags2[TypeFlags2[\"UniqueESSymbol\"] = 8192] = \"UniqueESSymbol\";\n  TypeFlags2[TypeFlags2[\"Void\"] = 16384] = \"Void\";\n  TypeFlags2[TypeFlags2[\"Undefined\"] = 32768] = \"Undefined\";\n  TypeFlags2[TypeFlags2[\"Null\"] = 65536] = \"Null\";\n  TypeFlags2[TypeFlags2[\"Never\"] = 131072] = \"Never\";\n  TypeFlags2[TypeFlags2[\"TypeParameter\"] = 262144] = \"TypeParameter\";\n  TypeFlags2[TypeFlags2[\"Object\"] = 524288] = \"Object\";\n  TypeFlags2[TypeFlags2[\"Union\"] = 1048576] = \"Union\";\n  TypeFlags2[TypeFlags2[\"Intersection\"] = 2097152] = \"Intersection\";\n  TypeFlags2[TypeFlags2[\"Index\"] = 4194304] = \"Index\";\n  TypeFlags2[TypeFlags2[\"IndexedAccess\"] = 8388608] = \"IndexedAccess\";\n  TypeFlags2[TypeFlags2[\"Conditional\"] = 16777216] = \"Conditional\";\n  TypeFlags2[TypeFlags2[\"Substitution\"] = 33554432] = \"Substitution\";\n  TypeFlags2[TypeFlags2[\"NonPrimitive\"] = 67108864] = \"NonPrimitive\";\n  TypeFlags2[TypeFlags2[\"TemplateLiteral\"] = 134217728] = \"TemplateLiteral\";\n  TypeFlags2[TypeFlags2[\"StringMapping\"] = 268435456] = \"StringMapping\";\n  TypeFlags2[TypeFlags2[\"Reserved1\"] = 536870912] = \"Reserved1\";\n  TypeFlags2[TypeFlags2[\"Reserved2\"] = 1073741824] = \"Reserved2\";\n  TypeFlags2[TypeFlags2[\"AnyOrUnknown\"] = 3] = \"AnyOrUnknown\";\n  TypeFlags2[TypeFlags2[\"Nullable\"] = 98304] = \"Nullable\";\n  TypeFlags2[TypeFlags2[\"Literal\"] = 2944] = \"Literal\";\n  TypeFlags2[TypeFlags2[\"Unit\"] = 109472] = \"Unit\";\n  TypeFlags2[TypeFlags2[\"Freshable\"] = 2976] = \"Freshable\";\n  TypeFlags2[TypeFlags2[\"StringOrNumberLiteral\"] = 384] = \"StringOrNumberLiteral\";\n  TypeFlags2[TypeFlags2[\"StringOrNumberLiteralOrUnique\"] = 8576] = \"StringOrNumberLiteralOrUnique\";\n  TypeFlags2[TypeFlags2[\"DefinitelyFalsy\"] = 117632] = \"DefinitelyFalsy\";\n  TypeFlags2[TypeFlags2[\"PossiblyFalsy\"] = 117724] = \"PossiblyFalsy\";\n  TypeFlags2[TypeFlags2[\"Intrinsic\"] = 67359327] = \"Intrinsic\";\n  TypeFlags2[TypeFlags2[\"StringLike\"] = 402653316] = \"StringLike\";\n  TypeFlags2[TypeFlags2[\"NumberLike\"] = 296] = \"NumberLike\";\n  TypeFlags2[TypeFlags2[\"BigIntLike\"] = 2112] = \"BigIntLike\";\n  TypeFlags2[TypeFlags2[\"BooleanLike\"] = 528] = \"BooleanLike\";\n  TypeFlags2[TypeFlags2[\"EnumLike\"] = 1056] = \"EnumLike\";\n  TypeFlags2[TypeFlags2[\"ESSymbolLike\"] = 12288] = \"ESSymbolLike\";\n  TypeFlags2[TypeFlags2[\"VoidLike\"] = 49152] = \"VoidLike\";\n  TypeFlags2[TypeFlags2[\"Primitive\"] = 402784252] = \"Primitive\";\n  TypeFlags2[TypeFlags2[\"DefinitelyNonNullable\"] = 470302716] = \"DefinitelyNonNullable\";\n  TypeFlags2[TypeFlags2[\"DisjointDomains\"] = 469892092] = \"DisjointDomains\";\n  TypeFlags2[TypeFlags2[\"UnionOrIntersection\"] = 3145728] = \"UnionOrIntersection\";\n  TypeFlags2[TypeFlags2[\"StructuredType\"] = 3670016] = \"StructuredType\";\n  TypeFlags2[TypeFlags2[\"TypeVariable\"] = 8650752] = \"TypeVariable\";\n  TypeFlags2[TypeFlags2[\"InstantiableNonPrimitive\"] = 58982400] = \"InstantiableNonPrimitive\";\n  TypeFlags2[TypeFlags2[\"InstantiablePrimitive\"] = 406847488] = \"InstantiablePrimitive\";\n  TypeFlags2[TypeFlags2[\"Instantiable\"] = 465829888] = \"Instantiable\";\n  TypeFlags2[TypeFlags2[\"StructuredOrInstantiable\"] = 469499904] = \"StructuredOrInstantiable\";\n  TypeFlags2[TypeFlags2[\"ObjectFlagsType\"] = 3899393] = \"ObjectFlagsType\";\n  TypeFlags2[TypeFlags2[\"Simplifiable\"] = 25165824] = \"Simplifiable\";\n  TypeFlags2[TypeFlags2[\"Singleton\"] = 67358815] = \"Singleton\";\n  TypeFlags2[TypeFlags2[\"Narrowable\"] = 536624127] = \"Narrowable\";\n  TypeFlags2[TypeFlags2[\"IncludesMask\"] = 473694207] = \"IncludesMask\";\n  TypeFlags2[TypeFlags2[\"IncludesMissingType\"] = 262144 /* TypeParameter */] = \"IncludesMissingType\";\n  TypeFlags2[TypeFlags2[\"IncludesNonWideningType\"] = 4194304 /* Index */] = \"IncludesNonWideningType\";\n  TypeFlags2[TypeFlags2[\"IncludesWildcard\"] = 8388608 /* IndexedAccess */] = \"IncludesWildcard\";\n  TypeFlags2[TypeFlags2[\"IncludesEmptyObject\"] = 16777216 /* Conditional */] = \"IncludesEmptyObject\";\n  TypeFlags2[TypeFlags2[\"IncludesInstantiable\"] = 33554432 /* Substitution */] = \"IncludesInstantiable\";\n  TypeFlags2[TypeFlags2[\"IncludesConstrainedTypeVariable\"] = 536870912 /* Reserved1 */] = \"IncludesConstrainedTypeVariable\";\n  TypeFlags2[TypeFlags2[\"IncludesError\"] = 1073741824 /* Reserved2 */] = \"IncludesError\";\n  TypeFlags2[TypeFlags2[\"NotPrimitiveUnion\"] = 36323331] = \"NotPrimitiveUnion\";\n  return TypeFlags2;\n})(TypeFlags || {});\nvar ObjectFlags = /* @__PURE__ */ ((ObjectFlags3) => {\n  ObjectFlags3[ObjectFlags3[\"None\"] = 0] = \"None\";\n  ObjectFlags3[ObjectFlags3[\"Class\"] = 1] = \"Class\";\n  ObjectFlags3[ObjectFlags3[\"Interface\"] = 2] = \"Interface\";\n  ObjectFlags3[ObjectFlags3[\"Reference\"] = 4] = \"Reference\";\n  ObjectFlags3[ObjectFlags3[\"Tuple\"] = 8] = \"Tuple\";\n  ObjectFlags3[ObjectFlags3[\"Anonymous\"] = 16] = \"Anonymous\";\n  ObjectFlags3[ObjectFlags3[\"Mapped\"] = 32] = \"Mapped\";\n  ObjectFlags3[ObjectFlags3[\"Instantiated\"] = 64] = \"Instantiated\";\n  ObjectFlags3[ObjectFlags3[\"ObjectLiteral\"] = 128] = \"ObjectLiteral\";\n  ObjectFlags3[ObjectFlags3[\"EvolvingArray\"] = 256] = \"EvolvingArray\";\n  ObjectFlags3[ObjectFlags3[\"ObjectLiteralPatternWithComputedProperties\"] = 512] = \"ObjectLiteralPatternWithComputedProperties\";\n  ObjectFlags3[ObjectFlags3[\"ReverseMapped\"] = 1024] = \"ReverseMapped\";\n  ObjectFlags3[ObjectFlags3[\"JsxAttributes\"] = 2048] = \"JsxAttributes\";\n  ObjectFlags3[ObjectFlags3[\"JSLiteral\"] = 4096] = \"JSLiteral\";\n  ObjectFlags3[ObjectFlags3[\"FreshLiteral\"] = 8192] = \"FreshLiteral\";\n  ObjectFlags3[ObjectFlags3[\"ArrayLiteral\"] = 16384] = \"ArrayLiteral\";\n  ObjectFlags3[ObjectFlags3[\"PrimitiveUnion\"] = 32768] = \"PrimitiveUnion\";\n  ObjectFlags3[ObjectFlags3[\"ContainsWideningType\"] = 65536] = \"ContainsWideningType\";\n  ObjectFlags3[ObjectFlags3[\"ContainsObjectOrArrayLiteral\"] = 131072] = \"ContainsObjectOrArrayLiteral\";\n  ObjectFlags3[ObjectFlags3[\"NonInferrableType\"] = 262144] = \"NonInferrableType\";\n  ObjectFlags3[ObjectFlags3[\"CouldContainTypeVariablesComputed\"] = 524288] = \"CouldContainTypeVariablesComputed\";\n  ObjectFlags3[ObjectFlags3[\"CouldContainTypeVariables\"] = 1048576] = \"CouldContainTypeVariables\";\n  ObjectFlags3[ObjectFlags3[\"SingleSignatureType\"] = 134217728] = \"SingleSignatureType\";\n  ObjectFlags3[ObjectFlags3[\"ClassOrInterface\"] = 3] = \"ClassOrInterface\";\n  ObjectFlags3[ObjectFlags3[\"RequiresWidening\"] = 196608] = \"RequiresWidening\";\n  ObjectFlags3[ObjectFlags3[\"PropagatingFlags\"] = 458752] = \"PropagatingFlags\";\n  ObjectFlags3[ObjectFlags3[\"InstantiatedMapped\"] = 96] = \"InstantiatedMapped\";\n  ObjectFlags3[ObjectFlags3[\"ObjectTypeKindMask\"] = 1343] = \"ObjectTypeKindMask\";\n  ObjectFlags3[ObjectFlags3[\"ContainsSpread\"] = 2097152] = \"ContainsSpread\";\n  ObjectFlags3[ObjectFlags3[\"ObjectRestType\"] = 4194304] = \"ObjectRestType\";\n  ObjectFlags3[ObjectFlags3[\"InstantiationExpressionType\"] = 8388608] = \"InstantiationExpressionType\";\n  ObjectFlags3[ObjectFlags3[\"IsClassInstanceClone\"] = 16777216] = \"IsClassInstanceClone\";\n  ObjectFlags3[ObjectFlags3[\"IdenticalBaseTypeCalculated\"] = 33554432] = \"IdenticalBaseTypeCalculated\";\n  ObjectFlags3[ObjectFlags3[\"IdenticalBaseTypeExists\"] = 67108864] = \"IdenticalBaseTypeExists\";\n  ObjectFlags3[ObjectFlags3[\"IsGenericTypeComputed\"] = 2097152] = \"IsGenericTypeComputed\";\n  ObjectFlags3[ObjectFlags3[\"IsGenericObjectType\"] = 4194304] = \"IsGenericObjectType\";\n  ObjectFlags3[ObjectFlags3[\"IsGenericIndexType\"] = 8388608] = \"IsGenericIndexType\";\n  ObjectFlags3[ObjectFlags3[\"IsGenericType\"] = 12582912] = \"IsGenericType\";\n  ObjectFlags3[ObjectFlags3[\"ContainsIntersections\"] = 16777216] = \"ContainsIntersections\";\n  ObjectFlags3[ObjectFlags3[\"IsUnknownLikeUnionComputed\"] = 33554432] = \"IsUnknownLikeUnionComputed\";\n  ObjectFlags3[ObjectFlags3[\"IsUnknownLikeUnion\"] = 67108864] = \"IsUnknownLikeUnion\";\n  ObjectFlags3[ObjectFlags3[\"IsNeverIntersectionComputed\"] = 16777216] = \"IsNeverIntersectionComputed\";\n  ObjectFlags3[ObjectFlags3[\"IsNeverIntersection\"] = 33554432] = \"IsNeverIntersection\";\n  ObjectFlags3[ObjectFlags3[\"IsConstrainedTypeVariable\"] = 67108864] = \"IsConstrainedTypeVariable\";\n  return ObjectFlags3;\n})(ObjectFlags || {});\nvar VarianceFlags = /* @__PURE__ */ ((VarianceFlags2) => {\n  VarianceFlags2[VarianceFlags2[\"Invariant\"] = 0] = \"Invariant\";\n  VarianceFlags2[VarianceFlags2[\"Covariant\"] = 1] = \"Covariant\";\n  VarianceFlags2[VarianceFlags2[\"Contravariant\"] = 2] = \"Contravariant\";\n  VarianceFlags2[VarianceFlags2[\"Bivariant\"] = 3] = \"Bivariant\";\n  VarianceFlags2[VarianceFlags2[\"Independent\"] = 4] = \"Independent\";\n  VarianceFlags2[VarianceFlags2[\"VarianceMask\"] = 7] = \"VarianceMask\";\n  VarianceFlags2[VarianceFlags2[\"Unmeasurable\"] = 8] = \"Unmeasurable\";\n  VarianceFlags2[VarianceFlags2[\"Unreliable\"] = 16] = \"Unreliable\";\n  VarianceFlags2[VarianceFlags2[\"AllowsStructuralFallback\"] = 24] = \"AllowsStructuralFallback\";\n  return VarianceFlags2;\n})(VarianceFlags || {});\nvar ElementFlags = /* @__PURE__ */ ((ElementFlags2) => {\n  ElementFlags2[ElementFlags2[\"Required\"] = 1] = \"Required\";\n  ElementFlags2[ElementFlags2[\"Optional\"] = 2] = \"Optional\";\n  ElementFlags2[ElementFlags2[\"Rest\"] = 4] = \"Rest\";\n  ElementFlags2[ElementFlags2[\"Variadic\"] = 8] = \"Variadic\";\n  ElementFlags2[ElementFlags2[\"Fixed\"] = 3] = \"Fixed\";\n  ElementFlags2[ElementFlags2[\"Variable\"] = 12] = \"Variable\";\n  ElementFlags2[ElementFlags2[\"NonRequired\"] = 14] = \"NonRequired\";\n  ElementFlags2[ElementFlags2[\"NonRest\"] = 11] = \"NonRest\";\n  return ElementFlags2;\n})(ElementFlags || {});\nvar AccessFlags = /* @__PURE__ */ ((AccessFlags2) => {\n  AccessFlags2[AccessFlags2[\"None\"] = 0] = \"None\";\n  AccessFlags2[AccessFlags2[\"IncludeUndefined\"] = 1] = \"IncludeUndefined\";\n  AccessFlags2[AccessFlags2[\"NoIndexSignatures\"] = 2] = \"NoIndexSignatures\";\n  AccessFlags2[AccessFlags2[\"Writing\"] = 4] = \"Writing\";\n  AccessFlags2[AccessFlags2[\"CacheSymbol\"] = 8] = \"CacheSymbol\";\n  AccessFlags2[AccessFlags2[\"AllowMissing\"] = 16] = \"AllowMissing\";\n  AccessFlags2[AccessFlags2[\"ExpressionPosition\"] = 32] = \"ExpressionPosition\";\n  AccessFlags2[AccessFlags2[\"ReportDeprecated\"] = 64] = \"ReportDeprecated\";\n  AccessFlags2[AccessFlags2[\"SuppressNoImplicitAnyError\"] = 128] = \"SuppressNoImplicitAnyError\";\n  AccessFlags2[AccessFlags2[\"Contextual\"] = 256] = \"Contextual\";\n  AccessFlags2[AccessFlags2[\"Persistent\"] = 1 /* IncludeUndefined */] = \"Persistent\";\n  return AccessFlags2;\n})(AccessFlags || {});\nvar IndexFlags = /* @__PURE__ */ ((IndexFlags2) => {\n  IndexFlags2[IndexFlags2[\"None\"] = 0] = \"None\";\n  IndexFlags2[IndexFlags2[\"StringsOnly\"] = 1] = \"StringsOnly\";\n  IndexFlags2[IndexFlags2[\"NoIndexSignatures\"] = 2] = \"NoIndexSignatures\";\n  IndexFlags2[IndexFlags2[\"NoReducibleCheck\"] = 4] = \"NoReducibleCheck\";\n  return IndexFlags2;\n})(IndexFlags || {});\nvar JsxReferenceKind = /* @__PURE__ */ ((JsxReferenceKind2) => {\n  JsxReferenceKind2[JsxReferenceKind2[\"Component\"] = 0] = \"Component\";\n  JsxReferenceKind2[JsxReferenceKind2[\"Function\"] = 1] = \"Function\";\n  JsxReferenceKind2[JsxReferenceKind2[\"Mixed\"] = 2] = \"Mixed\";\n  return JsxReferenceKind2;\n})(JsxReferenceKind || {});\nvar SignatureKind = /* @__PURE__ */ ((SignatureKind2) => {\n  SignatureKind2[SignatureKind2[\"Call\"] = 0] = \"Call\";\n  SignatureKind2[SignatureKind2[\"Construct\"] = 1] = \"Construct\";\n  return SignatureKind2;\n})(SignatureKind || {});\nvar SignatureFlags = /* @__PURE__ */ ((SignatureFlags5) => {\n  SignatureFlags5[SignatureFlags5[\"None\"] = 0] = \"None\";\n  SignatureFlags5[SignatureFlags5[\"HasRestParameter\"] = 1] = \"HasRestParameter\";\n  SignatureFlags5[SignatureFlags5[\"HasLiteralTypes\"] = 2] = \"HasLiteralTypes\";\n  SignatureFlags5[SignatureFlags5[\"Abstract\"] = 4] = \"Abstract\";\n  SignatureFlags5[SignatureFlags5[\"IsInnerCallChain\"] = 8] = \"IsInnerCallChain\";\n  SignatureFlags5[SignatureFlags5[\"IsOuterCallChain\"] = 16] = \"IsOuterCallChain\";\n  SignatureFlags5[SignatureFlags5[\"IsUntypedSignatureInJSFile\"] = 32] = \"IsUntypedSignatureInJSFile\";\n  SignatureFlags5[SignatureFlags5[\"IsNonInferrable\"] = 64] = \"IsNonInferrable\";\n  SignatureFlags5[SignatureFlags5[\"IsSignatureCandidateForOverloadFailure\"] = 128] = \"IsSignatureCandidateForOverloadFailure\";\n  SignatureFlags5[SignatureFlags5[\"PropagatingFlags\"] = 167] = \"PropagatingFlags\";\n  SignatureFlags5[SignatureFlags5[\"CallChainFlags\"] = 24] = \"CallChainFlags\";\n  return SignatureFlags5;\n})(SignatureFlags || {});\nvar IndexKind = /* @__PURE__ */ ((IndexKind2) => {\n  IndexKind2[IndexKind2[\"String\"] = 0] = \"String\";\n  IndexKind2[IndexKind2[\"Number\"] = 1] = \"Number\";\n  return IndexKind2;\n})(IndexKind || {});\nvar TypeMapKind = /* @__PURE__ */ ((TypeMapKind2) => {\n  TypeMapKind2[TypeMapKind2[\"Simple\"] = 0] = \"Simple\";\n  TypeMapKind2[TypeMapKind2[\"Array\"] = 1] = \"Array\";\n  TypeMapKind2[TypeMapKind2[\"Deferred\"] = 2] = \"Deferred\";\n  TypeMapKind2[TypeMapKind2[\"Function\"] = 3] = \"Function\";\n  TypeMapKind2[TypeMapKind2[\"Composite\"] = 4] = \"Composite\";\n  TypeMapKind2[TypeMapKind2[\"Merged\"] = 5] = \"Merged\";\n  return TypeMapKind2;\n})(TypeMapKind || {});\nvar InferencePriority = /* @__PURE__ */ ((InferencePriority2) => {\n  InferencePriority2[InferencePriority2[\"None\"] = 0] = \"None\";\n  InferencePriority2[InferencePriority2[\"NakedTypeVariable\"] = 1] = \"NakedTypeVariable\";\n  InferencePriority2[InferencePriority2[\"SpeculativeTuple\"] = 2] = \"SpeculativeTuple\";\n  InferencePriority2[InferencePriority2[\"SubstituteSource\"] = 4] = \"SubstituteSource\";\n  InferencePriority2[InferencePriority2[\"HomomorphicMappedType\"] = 8] = \"HomomorphicMappedType\";\n  InferencePriority2[InferencePriority2[\"PartialHomomorphicMappedType\"] = 16] = \"PartialHomomorphicMappedType\";\n  InferencePriority2[InferencePriority2[\"MappedTypeConstraint\"] = 32] = \"MappedTypeConstraint\";\n  InferencePriority2[InferencePriority2[\"ContravariantConditional\"] = 64] = \"ContravariantConditional\";\n  InferencePriority2[InferencePriority2[\"ReturnType\"] = 128] = \"ReturnType\";\n  InferencePriority2[InferencePriority2[\"LiteralKeyof\"] = 256] = \"LiteralKeyof\";\n  InferencePriority2[InferencePriority2[\"NoConstraints\"] = 512] = \"NoConstraints\";\n  InferencePriority2[InferencePriority2[\"AlwaysStrict\"] = 1024] = \"AlwaysStrict\";\n  InferencePriority2[InferencePriority2[\"MaxValue\"] = 2048] = \"MaxValue\";\n  InferencePriority2[InferencePriority2[\"PriorityImpliesCombination\"] = 416] = \"PriorityImpliesCombination\";\n  InferencePriority2[InferencePriority2[\"Circularity\"] = -1] = \"Circularity\";\n  return InferencePriority2;\n})(InferencePriority || {});\nvar InferenceFlags = /* @__PURE__ */ ((InferenceFlags2) => {\n  InferenceFlags2[InferenceFlags2[\"None\"] = 0] = \"None\";\n  InferenceFlags2[InferenceFlags2[\"NoDefault\"] = 1] = \"NoDefault\";\n  InferenceFlags2[InferenceFlags2[\"AnyDefault\"] = 2] = \"AnyDefault\";\n  InferenceFlags2[InferenceFlags2[\"SkippedGenericFunction\"] = 4] = \"SkippedGenericFunction\";\n  return InferenceFlags2;\n})(InferenceFlags || {});\nvar Ternary = /* @__PURE__ */ ((Ternary2) => {\n  Ternary2[Ternary2[\"False\"] = 0] = \"False\";\n  Ternary2[Ternary2[\"Unknown\"] = 1] = \"Unknown\";\n  Ternary2[Ternary2[\"Maybe\"] = 3] = \"Maybe\";\n  Ternary2[Ternary2[\"True\"] = -1] = \"True\";\n  return Ternary2;\n})(Ternary || {});\nvar AssignmentDeclarationKind = /* @__PURE__ */ ((AssignmentDeclarationKind2) => {\n  AssignmentDeclarationKind2[AssignmentDeclarationKind2[\"None\"] = 0] = \"None\";\n  AssignmentDeclarationKind2[AssignmentDeclarationKind2[\"ExportsProperty\"] = 1] = \"ExportsProperty\";\n  AssignmentDeclarationKind2[AssignmentDeclarationKind2[\"ModuleExports\"] = 2] = \"ModuleExports\";\n  AssignmentDeclarationKind2[AssignmentDeclarationKind2[\"PrototypeProperty\"] = 3] = \"PrototypeProperty\";\n  AssignmentDeclarationKind2[AssignmentDeclarationKind2[\"ThisProperty\"] = 4] = \"ThisProperty\";\n  AssignmentDeclarationKind2[AssignmentDeclarationKind2[\"Property\"] = 5] = \"Property\";\n  AssignmentDeclarationKind2[AssignmentDeclarationKind2[\"Prototype\"] = 6] = \"Prototype\";\n  AssignmentDeclarationKind2[AssignmentDeclarationKind2[\"ObjectDefinePropertyValue\"] = 7] = \"ObjectDefinePropertyValue\";\n  AssignmentDeclarationKind2[AssignmentDeclarationKind2[\"ObjectDefinePropertyExports\"] = 8] = \"ObjectDefinePropertyExports\";\n  AssignmentDeclarationKind2[AssignmentDeclarationKind2[\"ObjectDefinePrototypeProperty\"] = 9] = \"ObjectDefinePrototypeProperty\";\n  return AssignmentDeclarationKind2;\n})(AssignmentDeclarationKind || {});\nvar DiagnosticCategory = /* @__PURE__ */ ((DiagnosticCategory2) => {\n  DiagnosticCategory2[DiagnosticCategory2[\"Warning\"] = 0] = \"Warning\";\n  DiagnosticCategory2[DiagnosticCategory2[\"Error\"] = 1] = \"Error\";\n  DiagnosticCategory2[DiagnosticCategory2[\"Suggestion\"] = 2] = \"Suggestion\";\n  DiagnosticCategory2[DiagnosticCategory2[\"Message\"] = 3] = \"Message\";\n  return DiagnosticCategory2;\n})(DiagnosticCategory || {});\nfunction diagnosticCategoryName(d, lowerCase = true) {\n  const name = DiagnosticCategory[d.category];\n  return lowerCase ? name.toLowerCase() : name;\n}\nvar ModuleResolutionKind = /* @__PURE__ */ ((ModuleResolutionKind3) => {\n  ModuleResolutionKind3[ModuleResolutionKind3[\"Classic\"] = 1] = \"Classic\";\n  ModuleResolutionKind3[ModuleResolutionKind3[\"NodeJs\"] = 2] = \"NodeJs\";\n  ModuleResolutionKind3[ModuleResolutionKind3[\"Node10\"] = 2] = \"Node10\";\n  ModuleResolutionKind3[ModuleResolutionKind3[\"Node16\"] = 3] = \"Node16\";\n  ModuleResolutionKind3[ModuleResolutionKind3[\"NodeNext\"] = 99] = \"NodeNext\";\n  ModuleResolutionKind3[ModuleResolutionKind3[\"Bundler\"] = 100] = \"Bundler\";\n  return ModuleResolutionKind3;\n})(ModuleResolutionKind || {});\nvar ModuleDetectionKind = /* @__PURE__ */ ((ModuleDetectionKind2) => {\n  ModuleDetectionKind2[ModuleDetectionKind2[\"Legacy\"] = 1] = \"Legacy\";\n  ModuleDetectionKind2[ModuleDetectionKind2[\"Auto\"] = 2] = \"Auto\";\n  ModuleDetectionKind2[ModuleDetectionKind2[\"Force\"] = 3] = \"Force\";\n  return ModuleDetectionKind2;\n})(ModuleDetectionKind || {});\nvar WatchFileKind = /* @__PURE__ */ ((WatchFileKind3) => {\n  WatchFileKind3[WatchFileKind3[\"FixedPollingInterval\"] = 0] = \"FixedPollingInterval\";\n  WatchFileKind3[WatchFileKind3[\"PriorityPollingInterval\"] = 1] = \"PriorityPollingInterval\";\n  WatchFileKind3[WatchFileKind3[\"DynamicPriorityPolling\"] = 2] = \"DynamicPriorityPolling\";\n  WatchFileKind3[WatchFileKind3[\"FixedChunkSizePolling\"] = 3] = \"FixedChunkSizePolling\";\n  WatchFileKind3[WatchFileKind3[\"UseFsEvents\"] = 4] = \"UseFsEvents\";\n  WatchFileKind3[WatchFileKind3[\"UseFsEventsOnParentDirectory\"] = 5] = \"UseFsEventsOnParentDirectory\";\n  return WatchFileKind3;\n})(WatchFileKind || {});\nvar WatchDirectoryKind = /* @__PURE__ */ ((WatchDirectoryKind3) => {\n  WatchDirectoryKind3[WatchDirectoryKind3[\"UseFsEvents\"] = 0] = \"UseFsEvents\";\n  WatchDirectoryKind3[WatchDirectoryKind3[\"FixedPollingInterval\"] = 1] = \"FixedPollingInterval\";\n  WatchDirectoryKind3[WatchDirectoryKind3[\"DynamicPriorityPolling\"] = 2] = \"DynamicPriorityPolling\";\n  WatchDirectoryKind3[WatchDirectoryKind3[\"FixedChunkSizePolling\"] = 3] = \"FixedChunkSizePolling\";\n  return WatchDirectoryKind3;\n})(WatchDirectoryKind || {});\nvar PollingWatchKind = /* @__PURE__ */ ((PollingWatchKind3) => {\n  PollingWatchKind3[PollingWatchKind3[\"FixedInterval\"] = 0] = \"FixedInterval\";\n  PollingWatchKind3[PollingWatchKind3[\"PriorityInterval\"] = 1] = \"PriorityInterval\";\n  PollingWatchKind3[PollingWatchKind3[\"DynamicPriority\"] = 2] = \"DynamicPriority\";\n  PollingWatchKind3[PollingWatchKind3[\"FixedChunkSize\"] = 3] = \"FixedChunkSize\";\n  return PollingWatchKind3;\n})(PollingWatchKind || {});\nvar ModuleKind = /* @__PURE__ */ ((ModuleKind3) => {\n  ModuleKind3[ModuleKind3[\"None\"] = 0] = \"None\";\n  ModuleKind3[ModuleKind3[\"CommonJS\"] = 1] = \"CommonJS\";\n  ModuleKind3[ModuleKind3[\"AMD\"] = 2] = \"AMD\";\n  ModuleKind3[ModuleKind3[\"UMD\"] = 3] = \"UMD\";\n  ModuleKind3[ModuleKind3[\"System\"] = 4] = \"System\";\n  ModuleKind3[ModuleKind3[\"ES2015\"] = 5] = \"ES2015\";\n  ModuleKind3[ModuleKind3[\"ES2020\"] = 6] = \"ES2020\";\n  ModuleKind3[ModuleKind3[\"ES2022\"] = 7] = \"ES2022\";\n  ModuleKind3[ModuleKind3[\"ESNext\"] = 99] = \"ESNext\";\n  ModuleKind3[ModuleKind3[\"Node16\"] = 100] = \"Node16\";\n  ModuleKind3[ModuleKind3[\"Node18\"] = 101] = \"Node18\";\n  ModuleKind3[ModuleKind3[\"Node20\"] = 102] = \"Node20\";\n  ModuleKind3[ModuleKind3[\"NodeNext\"] = 199] = \"NodeNext\";\n  ModuleKind3[ModuleKind3[\"Preserve\"] = 200] = \"Preserve\";\n  return ModuleKind3;\n})(ModuleKind || {});\nvar JsxEmit = /* @__PURE__ */ ((JsxEmit3) => {\n  JsxEmit3[JsxEmit3[\"None\"] = 0] = \"None\";\n  JsxEmit3[JsxEmit3[\"Preserve\"] = 1] = \"Preserve\";\n  JsxEmit3[JsxEmit3[\"React\"] = 2] = \"React\";\n  JsxEmit3[JsxEmit3[\"ReactNative\"] = 3] = \"ReactNative\";\n  JsxEmit3[JsxEmit3[\"ReactJSX\"] = 4] = \"ReactJSX\";\n  JsxEmit3[JsxEmit3[\"ReactJSXDev\"] = 5] = \"ReactJSXDev\";\n  return JsxEmit3;\n})(JsxEmit || {});\nvar ImportsNotUsedAsValues = /* @__PURE__ */ ((ImportsNotUsedAsValues2) => {\n  ImportsNotUsedAsValues2[ImportsNotUsedAsValues2[\"Remove\"] = 0] = \"Remove\";\n  ImportsNotUsedAsValues2[ImportsNotUsedAsValues2[\"Preserve\"] = 1] = \"Preserve\";\n  ImportsNotUsedAsValues2[ImportsNotUsedAsValues2[\"Error\"] = 2] = \"Error\";\n  return ImportsNotUsedAsValues2;\n})(ImportsNotUsedAsValues || {});\nvar NewLineKind = /* @__PURE__ */ ((NewLineKind3) => {\n  NewLineKind3[NewLineKind3[\"CarriageReturnLineFeed\"] = 0] = \"CarriageReturnLineFeed\";\n  NewLineKind3[NewLineKind3[\"LineFeed\"] = 1] = \"LineFeed\";\n  return NewLineKind3;\n})(NewLineKind || {});\nvar ScriptKind = /* @__PURE__ */ ((ScriptKind7) => {\n  ScriptKind7[ScriptKind7[\"Unknown\"] = 0] = \"Unknown\";\n  ScriptKind7[ScriptKind7[\"JS\"] = 1] = \"JS\";\n  ScriptKind7[ScriptKind7[\"JSX\"] = 2] = \"JSX\";\n  ScriptKind7[ScriptKind7[\"TS\"] = 3] = \"TS\";\n  ScriptKind7[ScriptKind7[\"TSX\"] = 4] = \"TSX\";\n  ScriptKind7[ScriptKind7[\"External\"] = 5] = \"External\";\n  ScriptKind7[ScriptKind7[\"JSON\"] = 6] = \"JSON\";\n  ScriptKind7[ScriptKind7[\"Deferred\"] = 7] = \"Deferred\";\n  return ScriptKind7;\n})(ScriptKind || {});\nvar ScriptTarget = /* @__PURE__ */ ((ScriptTarget12) => {\n  ScriptTarget12[ScriptTarget12[\"ES3\"] = 0] = \"ES3\";\n  ScriptTarget12[ScriptTarget12[\"ES5\"] = 1] = \"ES5\";\n  ScriptTarget12[ScriptTarget12[\"ES2015\"] = 2] = \"ES2015\";\n  ScriptTarget12[ScriptTarget12[\"ES2016\"] = 3] = \"ES2016\";\n  ScriptTarget12[ScriptTarget12[\"ES2017\"] = 4] = \"ES2017\";\n  ScriptTarget12[ScriptTarget12[\"ES2018\"] = 5] = \"ES2018\";\n  ScriptTarget12[ScriptTarget12[\"ES2019\"] = 6] = \"ES2019\";\n  ScriptTarget12[ScriptTarget12[\"ES2020\"] = 7] = \"ES2020\";\n  ScriptTarget12[ScriptTarget12[\"ES2021\"] = 8] = \"ES2021\";\n  ScriptTarget12[ScriptTarget12[\"ES2022\"] = 9] = \"ES2022\";\n  ScriptTarget12[ScriptTarget12[\"ES2023\"] = 10] = \"ES2023\";\n  ScriptTarget12[ScriptTarget12[\"ES2024\"] = 11] = \"ES2024\";\n  ScriptTarget12[ScriptTarget12[\"ESNext\"] = 99] = \"ESNext\";\n  ScriptTarget12[ScriptTarget12[\"JSON\"] = 100] = \"JSON\";\n  ScriptTarget12[ScriptTarget12[\"Latest\"] = 99 /* ESNext */] = \"Latest\";\n  return ScriptTarget12;\n})(ScriptTarget || {});\nvar LanguageVariant = /* @__PURE__ */ ((LanguageVariant4) => {\n  LanguageVariant4[LanguageVariant4[\"Standard\"] = 0] = \"Standard\";\n  LanguageVariant4[LanguageVariant4[\"JSX\"] = 1] = \"JSX\";\n  return LanguageVariant4;\n})(LanguageVariant || {});\nvar WatchDirectoryFlags = /* @__PURE__ */ ((WatchDirectoryFlags3) => {\n  WatchDirectoryFlags3[WatchDirectoryFlags3[\"None\"] = 0] = \"None\";\n  WatchDirectoryFlags3[WatchDirectoryFlags3[\"Recursive\"] = 1] = \"Recursive\";\n  return WatchDirectoryFlags3;\n})(WatchDirectoryFlags || {});\nvar CharacterCodes = /* @__PURE__ */ ((CharacterCodes2) => {\n  CharacterCodes2[CharacterCodes2[\"EOF\"] = -1] = \"EOF\";\n  CharacterCodes2[CharacterCodes2[\"nullCharacter\"] = 0] = \"nullCharacter\";\n  CharacterCodes2[CharacterCodes2[\"maxAsciiCharacter\"] = 127] = \"maxAsciiCharacter\";\n  CharacterCodes2[CharacterCodes2[\"lineFeed\"] = 10] = \"lineFeed\";\n  CharacterCodes2[CharacterCodes2[\"carriageReturn\"] = 13] = \"carriageReturn\";\n  CharacterCodes2[CharacterCodes2[\"lineSeparator\"] = 8232] = \"lineSeparator\";\n  CharacterCodes2[CharacterCodes2[\"paragraphSeparator\"] = 8233] = \"paragraphSeparator\";\n  CharacterCodes2[CharacterCodes2[\"nextLine\"] = 133] = \"nextLine\";\n  CharacterCodes2[CharacterCodes2[\"space\"] = 32] = \"space\";\n  CharacterCodes2[CharacterCodes2[\"nonBreakingSpace\"] = 160] = \"nonBreakingSpace\";\n  CharacterCodes2[CharacterCodes2[\"enQuad\"] = 8192] = \"enQuad\";\n  CharacterCodes2[CharacterCodes2[\"emQuad\"] = 8193] = \"emQuad\";\n  CharacterCodes2[CharacterCodes2[\"enSpace\"] = 8194] = \"enSpace\";\n  CharacterCodes2[CharacterCodes2[\"emSpace\"] = 8195] = \"emSpace\";\n  CharacterCodes2[CharacterCodes2[\"threePerEmSpace\"] = 8196] = \"threePerEmSpace\";\n  CharacterCodes2[CharacterCodes2[\"fourPerEmSpace\"] = 8197] = \"fourPerEmSpace\";\n  CharacterCodes2[CharacterCodes2[\"sixPerEmSpace\"] = 8198] = \"sixPerEmSpace\";\n  CharacterCodes2[CharacterCodes2[\"figureSpace\"] = 8199] = \"figureSpace\";\n  CharacterCodes2[CharacterCodes2[\"punctuationSpace\"] = 8200] = \"punctuationSpace\";\n  CharacterCodes2[CharacterCodes2[\"thinSpace\"] = 8201] = \"thinSpace\";\n  CharacterCodes2[CharacterCodes2[\"hairSpace\"] = 8202] = \"hairSpace\";\n  CharacterCodes2[CharacterCodes2[\"zeroWidthSpace\"] = 8203] = \"zeroWidthSpace\";\n  CharacterCodes2[CharacterCodes2[\"narrowNoBreakSpace\"] = 8239] = \"narrowNoBreakSpace\";\n  CharacterCodes2[CharacterCodes2[\"ideographicSpace\"] = 12288] = \"ideographicSpace\";\n  CharacterCodes2[CharacterCodes2[\"mathematicalSpace\"] = 8287] = \"mathematicalSpace\";\n  CharacterCodes2[CharacterCodes2[\"ogham\"] = 5760] = \"ogham\";\n  CharacterCodes2[CharacterCodes2[\"replacementCharacter\"] = 65533] = \"replacementCharacter\";\n  CharacterCodes2[CharacterCodes2[\"_\"] = 95] = \"_\";\n  CharacterCodes2[CharacterCodes2[\"$\"] = 36] = \"$\";\n  CharacterCodes2[CharacterCodes2[\"_0\"] = 48] = \"_0\";\n  CharacterCodes2[CharacterCodes2[\"_1\"] = 49] = \"_1\";\n  CharacterCodes2[CharacterCodes2[\"_2\"] = 50] = \"_2\";\n  CharacterCodes2[CharacterCodes2[\"_3\"] = 51] = \"_3\";\n  CharacterCodes2[CharacterCodes2[\"_4\"] = 52] = \"_4\";\n  CharacterCodes2[CharacterCodes2[\"_5\"] = 53] = \"_5\";\n  CharacterCodes2[CharacterCodes2[\"_6\"] = 54] = \"_6\";\n  CharacterCodes2[CharacterCodes2[\"_7\"] = 55] = \"_7\";\n  CharacterCodes2[CharacterCodes2[\"_8\"] = 56] = \"_8\";\n  CharacterCodes2[CharacterCodes2[\"_9\"] = 57] = \"_9\";\n  CharacterCodes2[CharacterCodes2[\"a\"] = 97] = \"a\";\n  CharacterCodes2[CharacterCodes2[\"b\"] = 98] = \"b\";\n  CharacterCodes2[CharacterCodes2[\"c\"] = 99] = \"c\";\n  CharacterCodes2[CharacterCodes2[\"d\"] = 100] = \"d\";\n  CharacterCodes2[CharacterCodes2[\"e\"] = 101] = \"e\";\n  CharacterCodes2[CharacterCodes2[\"f\"] = 102] = \"f\";\n  CharacterCodes2[CharacterCodes2[\"g\"] = 103] = \"g\";\n  CharacterCodes2[CharacterCodes2[\"h\"] = 104] = \"h\";\n  CharacterCodes2[CharacterCodes2[\"i\"] = 105] = \"i\";\n  CharacterCodes2[CharacterCodes2[\"j\"] = 106] = \"j\";\n  CharacterCodes2[CharacterCodes2[\"k\"] = 107] = \"k\";\n  CharacterCodes2[CharacterCodes2[\"l\"] = 108] = \"l\";\n  CharacterCodes2[CharacterCodes2[\"m\"] = 109] = \"m\";\n  CharacterCodes2[CharacterCodes2[\"n\"] = 110] = \"n\";\n  CharacterCodes2[CharacterCodes2[\"o\"] = 111] = \"o\";\n  CharacterCodes2[CharacterCodes2[\"p\"] = 112] = \"p\";\n  CharacterCodes2[CharacterCodes2[\"q\"] = 113] = \"q\";\n  CharacterCodes2[CharacterCodes2[\"r\"] = 114] = \"r\";\n  CharacterCodes2[CharacterCodes2[\"s\"] = 115] = \"s\";\n  CharacterCodes2[CharacterCodes2[\"t\"] = 116] = \"t\";\n  CharacterCodes2[CharacterCodes2[\"u\"] = 117] = \"u\";\n  CharacterCodes2[CharacterCodes2[\"v\"] = 118] = \"v\";\n  CharacterCodes2[CharacterCodes2[\"w\"] = 119] = \"w\";\n  CharacterCodes2[CharacterCodes2[\"x\"] = 120] = \"x\";\n  CharacterCodes2[CharacterCodes2[\"y\"] = 121] = \"y\";\n  CharacterCodes2[CharacterCodes2[\"z\"] = 122] = \"z\";\n  CharacterCodes2[CharacterCodes2[\"A\"] = 65] = \"A\";\n  CharacterCodes2[CharacterCodes2[\"B\"] = 66] = \"B\";\n  CharacterCodes2[CharacterCodes2[\"C\"] = 67] = \"C\";\n  CharacterCodes2[CharacterCodes2[\"D\"] = 68] = \"D\";\n  CharacterCodes2[CharacterCodes2[\"E\"] = 69] = \"E\";\n  CharacterCodes2[CharacterCodes2[\"F\"] = 70] = \"F\";\n  CharacterCodes2[CharacterCodes2[\"G\"] = 71] = \"G\";\n  CharacterCodes2[CharacterCodes2[\"H\"] = 72] = \"H\";\n  CharacterCodes2[CharacterCodes2[\"I\"] = 73] = \"I\";\n  CharacterCodes2[CharacterCodes2[\"J\"] = 74] = \"J\";\n  CharacterCodes2[CharacterCodes2[\"K\"] = 75] = \"K\";\n  CharacterCodes2[CharacterCodes2[\"L\"] = 76] = \"L\";\n  CharacterCodes2[CharacterCodes2[\"M\"] = 77] = \"M\";\n  CharacterCodes2[CharacterCodes2[\"N\"] = 78] = \"N\";\n  CharacterCodes2[CharacterCodes2[\"O\"] = 79] = \"O\";\n  CharacterCodes2[CharacterCodes2[\"P\"] = 80] = \"P\";\n  CharacterCodes2[CharacterCodes2[\"Q\"] = 81] = \"Q\";\n  CharacterCodes2[CharacterCodes2[\"R\"] = 82] = \"R\";\n  CharacterCodes2[CharacterCodes2[\"S\"] = 83] = \"S\";\n  CharacterCodes2[CharacterCodes2[\"T\"] = 84] = \"T\";\n  CharacterCodes2[CharacterCodes2[\"U\"] = 85] = \"U\";\n  CharacterCodes2[CharacterCodes2[\"V\"] = 86] = \"V\";\n  CharacterCodes2[CharacterCodes2[\"W\"] = 87] = \"W\";\n  CharacterCodes2[CharacterCodes2[\"X\"] = 88] = \"X\";\n  CharacterCodes2[CharacterCodes2[\"Y\"] = 89] = \"Y\";\n  CharacterCodes2[CharacterCodes2[\"Z\"] = 90] = \"Z\";\n  CharacterCodes2[CharacterCodes2[\"ampersand\"] = 38] = \"ampersand\";\n  CharacterCodes2[CharacterCodes2[\"asterisk\"] = 42] = \"asterisk\";\n  CharacterCodes2[CharacterCodes2[\"at\"] = 64] = \"at\";\n  CharacterCodes2[CharacterCodes2[\"backslash\"] = 92] = \"backslash\";\n  CharacterCodes2[CharacterCodes2[\"backtick\"] = 96] = \"backtick\";\n  CharacterCodes2[CharacterCodes2[\"bar\"] = 124] = \"bar\";\n  CharacterCodes2[CharacterCodes2[\"caret\"] = 94] = \"caret\";\n  CharacterCodes2[CharacterCodes2[\"closeBrace\"] = 125] = \"closeBrace\";\n  CharacterCodes2[CharacterCodes2[\"closeBracket\"] = 93] = \"closeBracket\";\n  CharacterCodes2[CharacterCodes2[\"closeParen\"] = 41] = \"closeParen\";\n  CharacterCodes2[CharacterCodes2[\"colon\"] = 58] = \"colon\";\n  CharacterCodes2[CharacterCodes2[\"comma\"] = 44] = \"comma\";\n  CharacterCodes2[CharacterCodes2[\"dot\"] = 46] = \"dot\";\n  CharacterCodes2[CharacterCodes2[\"doubleQuote\"] = 34] = \"doubleQuote\";\n  CharacterCodes2[CharacterCodes2[\"equals\"] = 61] = \"equals\";\n  CharacterCodes2[CharacterCodes2[\"exclamation\"] = 33] = \"exclamation\";\n  CharacterCodes2[CharacterCodes2[\"greaterThan\"] = 62] = \"greaterThan\";\n  CharacterCodes2[CharacterCodes2[\"hash\"] = 35] = \"hash\";\n  CharacterCodes2[CharacterCodes2[\"lessThan\"] = 60] = \"lessThan\";\n  CharacterCodes2[CharacterCodes2[\"minus\"] = 45] = \"minus\";\n  CharacterCodes2[CharacterCodes2[\"openBrace\"] = 123] = \"openBrace\";\n  CharacterCodes2[CharacterCodes2[\"openBracket\"] = 91] = \"openBracket\";\n  CharacterCodes2[CharacterCodes2[\"openParen\"] = 40] = \"openParen\";\n  CharacterCodes2[CharacterCodes2[\"percent\"] = 37] = \"percent\";\n  CharacterCodes2[CharacterCodes2[\"plus\"] = 43] = \"plus\";\n  CharacterCodes2[CharacterCodes2[\"question\"] = 63] = \"question\";\n  CharacterCodes2[CharacterCodes2[\"semicolon\"] = 59] = \"semicolon\";\n  CharacterCodes2[CharacterCodes2[\"singleQuote\"] = 39] = \"singleQuote\";\n  CharacterCodes2[CharacterCodes2[\"slash\"] = 47] = \"slash\";\n  CharacterCodes2[CharacterCodes2[\"tilde\"] = 126] = \"tilde\";\n  CharacterCodes2[CharacterCodes2[\"backspace\"] = 8] = \"backspace\";\n  CharacterCodes2[CharacterCodes2[\"formFeed\"] = 12] = \"formFeed\";\n  CharacterCodes2[CharacterCodes2[\"byteOrderMark\"] = 65279] = \"byteOrderMark\";\n  CharacterCodes2[CharacterCodes2[\"tab\"] = 9] = \"tab\";\n  CharacterCodes2[CharacterCodes2[\"verticalTab\"] = 11] = \"verticalTab\";\n  return CharacterCodes2;\n})(CharacterCodes || {});\nvar Extension = /* @__PURE__ */ ((Extension2) => {\n  Extension2[\"Ts\"] = \".ts\";\n  Extension2[\"Tsx\"] = \".tsx\";\n  Extension2[\"Dts\"] = \".d.ts\";\n  Extension2[\"Js\"] = \".js\";\n  Extension2[\"Jsx\"] = \".jsx\";\n  Extension2[\"Json\"] = \".json\";\n  Extension2[\"TsBuildInfo\"] = \".tsbuildinfo\";\n  Extension2[\"Mjs\"] = \".mjs\";\n  Extension2[\"Mts\"] = \".mts\";\n  Extension2[\"Dmts\"] = \".d.mts\";\n  Extension2[\"Cjs\"] = \".cjs\";\n  Extension2[\"Cts\"] = \".cts\";\n  Extension2[\"Dcts\"] = \".d.cts\";\n  return Extension2;\n})(Extension || {});\nvar TransformFlags = /* @__PURE__ */ ((TransformFlags3) => {\n  TransformFlags3[TransformFlags3[\"None\"] = 0] = \"None\";\n  TransformFlags3[TransformFlags3[\"ContainsTypeScript\"] = 1] = \"ContainsTypeScript\";\n  TransformFlags3[TransformFlags3[\"ContainsJsx\"] = 2] = \"ContainsJsx\";\n  TransformFlags3[TransformFlags3[\"ContainsESNext\"] = 4] = \"ContainsESNext\";\n  TransformFlags3[TransformFlags3[\"ContainsES2022\"] = 8] = \"ContainsES2022\";\n  TransformFlags3[TransformFlags3[\"ContainsES2021\"] = 16] = \"ContainsES2021\";\n  TransformFlags3[TransformFlags3[\"ContainsES2020\"] = 32] = \"ContainsES2020\";\n  TransformFlags3[TransformFlags3[\"ContainsES2019\"] = 64] = \"ContainsES2019\";\n  TransformFlags3[TransformFlags3[\"ContainsES2018\"] = 128] = \"ContainsES2018\";\n  TransformFlags3[TransformFlags3[\"ContainsES2017\"] = 256] = \"ContainsES2017\";\n  TransformFlags3[TransformFlags3[\"ContainsES2016\"] = 512] = \"ContainsES2016\";\n  TransformFlags3[TransformFlags3[\"ContainsES2015\"] = 1024] = \"ContainsES2015\";\n  TransformFlags3[TransformFlags3[\"ContainsGenerator\"] = 2048] = \"ContainsGenerator\";\n  TransformFlags3[TransformFlags3[\"ContainsDestructuringAssignment\"] = 4096] = \"ContainsDestructuringAssignment\";\n  TransformFlags3[TransformFlags3[\"ContainsTypeScriptClassSyntax\"] = 8192] = \"ContainsTypeScriptClassSyntax\";\n  TransformFlags3[TransformFlags3[\"ContainsLexicalThis\"] = 16384] = \"ContainsLexicalThis\";\n  TransformFlags3[TransformFlags3[\"ContainsRestOrSpread\"] = 32768] = \"ContainsRestOrSpread\";\n  TransformFlags3[TransformFlags3[\"ContainsObjectRestOrSpread\"] = 65536] = \"ContainsObjectRestOrSpread\";\n  TransformFlags3[TransformFlags3[\"ContainsComputedPropertyName\"] = 131072] = \"ContainsComputedPropertyName\";\n  TransformFlags3[TransformFlags3[\"ContainsBlockScopedBinding\"] = 262144] = \"ContainsBlockScopedBinding\";\n  TransformFlags3[TransformFlags3[\"ContainsBindingPattern\"] = 524288] = \"ContainsBindingPattern\";\n  TransformFlags3[TransformFlags3[\"ContainsYield\"] = 1048576] = \"ContainsYield\";\n  TransformFlags3[TransformFlags3[\"ContainsAwait\"] = 2097152] = \"ContainsAwait\";\n  TransformFlags3[TransformFlags3[\"ContainsHoistedDeclarationOrCompletion\"] = 4194304] = \"ContainsHoistedDeclarationOrCompletion\";\n  TransformFlags3[TransformFlags3[\"ContainsDynamicImport\"] = 8388608] = \"ContainsDynamicImport\";\n  TransformFlags3[TransformFlags3[\"ContainsClassFields\"] = 16777216] = \"ContainsClassFields\";\n  TransformFlags3[TransformFlags3[\"ContainsDecorators\"] = 33554432] = \"ContainsDecorators\";\n  TransformFlags3[TransformFlags3[\"ContainsPossibleTopLevelAwait\"] = 67108864] = \"ContainsPossibleTopLevelAwait\";\n  TransformFlags3[TransformFlags3[\"ContainsLexicalSuper\"] = 134217728] = \"ContainsLexicalSuper\";\n  TransformFlags3[TransformFlags3[\"ContainsUpdateExpressionForIdentifier\"] = 268435456] = \"ContainsUpdateExpressionForIdentifier\";\n  TransformFlags3[TransformFlags3[\"ContainsPrivateIdentifierInExpression\"] = 536870912] = \"ContainsPrivateIdentifierInExpression\";\n  TransformFlags3[TransformFlags3[\"HasComputedFlags\"] = -2147483648] = \"HasComputedFlags\";\n  TransformFlags3[TransformFlags3[\"AssertTypeScript\"] = 1 /* ContainsTypeScript */] = \"AssertTypeScript\";\n  TransformFlags3[TransformFlags3[\"AssertJsx\"] = 2 /* ContainsJsx */] = \"AssertJsx\";\n  TransformFlags3[TransformFlags3[\"AssertESNext\"] = 4 /* ContainsESNext */] = \"AssertESNext\";\n  TransformFlags3[TransformFlags3[\"AssertES2022\"] = 8 /* ContainsES2022 */] = \"AssertES2022\";\n  TransformFlags3[TransformFlags3[\"AssertES2021\"] = 16 /* ContainsES2021 */] = \"AssertES2021\";\n  TransformFlags3[TransformFlags3[\"AssertES2020\"] = 32 /* ContainsES2020 */] = \"AssertES2020\";\n  TransformFlags3[TransformFlags3[\"AssertES2019\"] = 64 /* ContainsES2019 */] = \"AssertES2019\";\n  TransformFlags3[TransformFlags3[\"AssertES2018\"] = 128 /* ContainsES2018 */] = \"AssertES2018\";\n  TransformFlags3[TransformFlags3[\"AssertES2017\"] = 256 /* ContainsES2017 */] = \"AssertES2017\";\n  TransformFlags3[TransformFlags3[\"AssertES2016\"] = 512 /* ContainsES2016 */] = \"AssertES2016\";\n  TransformFlags3[TransformFlags3[\"AssertES2015\"] = 1024 /* ContainsES2015 */] = \"AssertES2015\";\n  TransformFlags3[TransformFlags3[\"AssertGenerator\"] = 2048 /* ContainsGenerator */] = \"AssertGenerator\";\n  TransformFlags3[TransformFlags3[\"AssertDestructuringAssignment\"] = 4096 /* ContainsDestructuringAssignment */] = \"AssertDestructuringAssignment\";\n  TransformFlags3[TransformFlags3[\"OuterExpressionExcludes\"] = -2147483648 /* HasComputedFlags */] = \"OuterExpressionExcludes\";\n  TransformFlags3[TransformFlags3[\"PropertyAccessExcludes\"] = -2147483648 /* OuterExpressionExcludes */] = \"PropertyAccessExcludes\";\n  TransformFlags3[TransformFlags3[\"NodeExcludes\"] = -2147483648 /* PropertyAccessExcludes */] = \"NodeExcludes\";\n  TransformFlags3[TransformFlags3[\"ArrowFunctionExcludes\"] = -2072174592] = \"ArrowFunctionExcludes\";\n  TransformFlags3[TransformFlags3[\"FunctionExcludes\"] = -1937940480] = \"FunctionExcludes\";\n  TransformFlags3[TransformFlags3[\"ConstructorExcludes\"] = -1937948672] = \"ConstructorExcludes\";\n  TransformFlags3[TransformFlags3[\"MethodOrAccessorExcludes\"] = -2005057536] = \"MethodOrAccessorExcludes\";\n  TransformFlags3[TransformFlags3[\"PropertyExcludes\"] = -2013249536] = \"PropertyExcludes\";\n  TransformFlags3[TransformFlags3[\"ClassExcludes\"] = -2147344384] = \"ClassExcludes\";\n  TransformFlags3[TransformFlags3[\"ModuleExcludes\"] = -1941676032] = \"ModuleExcludes\";\n  TransformFlags3[TransformFlags3[\"TypeExcludes\"] = -2] = \"TypeExcludes\";\n  TransformFlags3[TransformFlags3[\"ObjectLiteralExcludes\"] = -2147278848] = \"ObjectLiteralExcludes\";\n  TransformFlags3[TransformFlags3[\"ArrayLiteralOrCallOrNewExcludes\"] = -2147450880] = \"ArrayLiteralOrCallOrNewExcludes\";\n  TransformFlags3[TransformFlags3[\"VariableDeclarationListExcludes\"] = -2146893824] = \"VariableDeclarationListExcludes\";\n  TransformFlags3[TransformFlags3[\"ParameterExcludes\"] = -2147483648 /* NodeExcludes */] = \"ParameterExcludes\";\n  TransformFlags3[TransformFlags3[\"CatchClauseExcludes\"] = -2147418112] = \"CatchClauseExcludes\";\n  TransformFlags3[TransformFlags3[\"BindingPatternExcludes\"] = -2147450880] = \"BindingPatternExcludes\";\n  TransformFlags3[TransformFlags3[\"ContainsLexicalThisOrSuper\"] = 134234112] = \"ContainsLexicalThisOrSuper\";\n  TransformFlags3[TransformFlags3[\"PropertyNamePropagatingFlags\"] = 134234112] = \"PropertyNamePropagatingFlags\";\n  return TransformFlags3;\n})(TransformFlags || {});\nvar SnippetKind = /* @__PURE__ */ ((SnippetKind3) => {\n  SnippetKind3[SnippetKind3[\"TabStop\"] = 0] = \"TabStop\";\n  SnippetKind3[SnippetKind3[\"Placeholder\"] = 1] = \"Placeholder\";\n  SnippetKind3[SnippetKind3[\"Choice\"] = 2] = \"Choice\";\n  SnippetKind3[SnippetKind3[\"Variable\"] = 3] = \"Variable\";\n  return SnippetKind3;\n})(SnippetKind || {});\nvar EmitFlags = /* @__PURE__ */ ((EmitFlags3) => {\n  EmitFlags3[EmitFlags3[\"None\"] = 0] = \"None\";\n  EmitFlags3[EmitFlags3[\"SingleLine\"] = 1] = \"SingleLine\";\n  EmitFlags3[EmitFlags3[\"MultiLine\"] = 2] = \"MultiLine\";\n  EmitFlags3[EmitFlags3[\"AdviseOnEmitNode\"] = 4] = \"AdviseOnEmitNode\";\n  EmitFlags3[EmitFlags3[\"NoSubstitution\"] = 8] = \"NoSubstitution\";\n  EmitFlags3[EmitFlags3[\"CapturesThis\"] = 16] = \"CapturesThis\";\n  EmitFlags3[EmitFlags3[\"NoLeadingSourceMap\"] = 32] = \"NoLeadingSourceMap\";\n  EmitFlags3[EmitFlags3[\"NoTrailingSourceMap\"] = 64] = \"NoTrailingSourceMap\";\n  EmitFlags3[EmitFlags3[\"NoSourceMap\"] = 96] = \"NoSourceMap\";\n  EmitFlags3[EmitFlags3[\"NoNestedSourceMaps\"] = 128] = \"NoNestedSourceMaps\";\n  EmitFlags3[EmitFlags3[\"NoTokenLeadingSourceMaps\"] = 256] = \"NoTokenLeadingSourceMaps\";\n  EmitFlags3[EmitFlags3[\"NoTokenTrailingSourceMaps\"] = 512] = \"NoTokenTrailingSourceMaps\";\n  EmitFlags3[EmitFlags3[\"NoTokenSourceMaps\"] = 768] = \"NoTokenSourceMaps\";\n  EmitFlags3[EmitFlags3[\"NoLeadingComments\"] = 1024] = \"NoLeadingComments\";\n  EmitFlags3[EmitFlags3[\"NoTrailingComments\"] = 2048] = \"NoTrailingComments\";\n  EmitFlags3[EmitFlags3[\"NoComments\"] = 3072] = \"NoComments\";\n  EmitFlags3[EmitFlags3[\"NoNestedComments\"] = 4096] = \"NoNestedComments\";\n  EmitFlags3[EmitFlags3[\"HelperName\"] = 8192] = \"HelperName\";\n  EmitFlags3[EmitFlags3[\"ExportName\"] = 16384] = \"ExportName\";\n  EmitFlags3[EmitFlags3[\"LocalName\"] = 32768] = \"LocalName\";\n  EmitFlags3[EmitFlags3[\"InternalName\"] = 65536] = \"InternalName\";\n  EmitFlags3[EmitFlags3[\"Indented\"] = 131072] = \"Indented\";\n  EmitFlags3[EmitFlags3[\"NoIndentation\"] = 262144] = \"NoIndentation\";\n  EmitFlags3[EmitFlags3[\"AsyncFunctionBody\"] = 524288] = \"AsyncFunctionBody\";\n  EmitFlags3[EmitFlags3[\"ReuseTempVariableScope\"] = 1048576] = \"ReuseTempVariableScope\";\n  EmitFlags3[EmitFlags3[\"CustomPrologue\"] = 2097152] = \"CustomPrologue\";\n  EmitFlags3[EmitFlags3[\"NoHoisting\"] = 4194304] = \"NoHoisting\";\n  EmitFlags3[EmitFlags3[\"Iterator\"] = 8388608] = \"Iterator\";\n  EmitFlags3[EmitFlags3[\"NoAsciiEscaping\"] = 16777216] = \"NoAsciiEscaping\";\n  return EmitFlags3;\n})(EmitFlags || {});\nvar InternalEmitFlags = /* @__PURE__ */ ((InternalEmitFlags3) => {\n  InternalEmitFlags3[InternalEmitFlags3[\"None\"] = 0] = \"None\";\n  InternalEmitFlags3[InternalEmitFlags3[\"TypeScriptClassWrapper\"] = 1] = \"TypeScriptClassWrapper\";\n  InternalEmitFlags3[InternalEmitFlags3[\"NeverApplyImportHelper\"] = 2] = \"NeverApplyImportHelper\";\n  InternalEmitFlags3[InternalEmitFlags3[\"IgnoreSourceNewlines\"] = 4] = \"IgnoreSourceNewlines\";\n  InternalEmitFlags3[InternalEmitFlags3[\"Immutable\"] = 8] = \"Immutable\";\n  InternalEmitFlags3[InternalEmitFlags3[\"IndirectCall\"] = 16] = \"IndirectCall\";\n  InternalEmitFlags3[InternalEmitFlags3[\"TransformPrivateStaticElements\"] = 32] = \"TransformPrivateStaticElements\";\n  return InternalEmitFlags3;\n})(InternalEmitFlags || {});\nvar LanguageFeatureMinimumTarget = {\n  Classes: 2 /* ES2015 */,\n  ForOf: 2 /* ES2015 */,\n  Generators: 2 /* ES2015 */,\n  Iteration: 2 /* ES2015 */,\n  SpreadElements: 2 /* ES2015 */,\n  RestElements: 2 /* ES2015 */,\n  TaggedTemplates: 2 /* ES2015 */,\n  DestructuringAssignment: 2 /* ES2015 */,\n  BindingPatterns: 2 /* ES2015 */,\n  ArrowFunctions: 2 /* ES2015 */,\n  BlockScopedVariables: 2 /* ES2015 */,\n  ObjectAssign: 2 /* ES2015 */,\n  RegularExpressionFlagsUnicode: 2 /* ES2015 */,\n  RegularExpressionFlagsSticky: 2 /* ES2015 */,\n  Exponentiation: 3 /* ES2016 */,\n  AsyncFunctions: 4 /* ES2017 */,\n  ForAwaitOf: 5 /* ES2018 */,\n  AsyncGenerators: 5 /* ES2018 */,\n  AsyncIteration: 5 /* ES2018 */,\n  ObjectSpreadRest: 5 /* ES2018 */,\n  RegularExpressionFlagsDotAll: 5 /* ES2018 */,\n  BindinglessCatch: 6 /* ES2019 */,\n  BigInt: 7 /* ES2020 */,\n  NullishCoalesce: 7 /* ES2020 */,\n  OptionalChaining: 7 /* ES2020 */,\n  LogicalAssignment: 8 /* ES2021 */,\n  TopLevelAwait: 9 /* ES2022 */,\n  ClassFields: 9 /* ES2022 */,\n  PrivateNamesAndClassStaticBlocks: 9 /* ES2022 */,\n  RegularExpressionFlagsHasIndices: 9 /* ES2022 */,\n  ShebangComments: 10 /* ES2023 */,\n  RegularExpressionFlagsUnicodeSets: 11 /* ES2024 */,\n  UsingAndAwaitUsing: 99 /* ESNext */,\n  ClassAndClassElementDecorators: 99 /* ESNext */\n};\nvar ExternalEmitHelpers = /* @__PURE__ */ ((ExternalEmitHelpers2) => {\n  ExternalEmitHelpers2[ExternalEmitHelpers2[\"Extends\"] = 1] = \"Extends\";\n  ExternalEmitHelpers2[ExternalEmitHelpers2[\"Assign\"] = 2] = \"Assign\";\n  ExternalEmitHelpers2[ExternalEmitHelpers2[\"Rest\"] = 4] = \"Rest\";\n  ExternalEmitHelpers2[ExternalEmitHelpers2[\"Decorate\"] = 8] = \"Decorate\";\n  ExternalEmitHelpers2[ExternalEmitHelpers2[\"ESDecorateAndRunInitializers\"] = 8 /* Decorate */] = \"ESDecorateAndRunInitializers\";\n  ExternalEmitHelpers2[ExternalEmitHelpers2[\"Metadata\"] = 16] = \"Metadata\";\n  ExternalEmitHelpers2[ExternalEmitHelpers2[\"Param\"] = 32] = \"Param\";\n  ExternalEmitHelpers2[ExternalEmitHelpers2[\"Awaiter\"] = 64] = \"Awaiter\";\n  ExternalEmitHelpers2[ExternalEmitHelpers2[\"Generator\"] = 128] = \"Generator\";\n  ExternalEmitHelpers2[ExternalEmitHelpers2[\"Values\"] = 256] = \"Values\";\n  ExternalEmitHelpers2[ExternalEmitHelpers2[\"Read\"] = 512] = \"Read\";\n  ExternalEmitHelpers2[ExternalEmitHelpers2[\"SpreadArray\"] = 1024] = \"SpreadArray\";\n  ExternalEmitHelpers2[ExternalEmitHelpers2[\"Await\"] = 2048] = \"Await\";\n  ExternalEmitHelpers2[ExternalEmitHelpers2[\"AsyncGenerator\"] = 4096] = \"AsyncGenerator\";\n  ExternalEmitHelpers2[ExternalEmitHelpers2[\"AsyncDelegator\"] = 8192] = \"AsyncDelegator\";\n  ExternalEmitHelpers2[ExternalEmitHelpers2[\"AsyncValues\"] = 16384] = \"AsyncValues\";\n  ExternalEmitHelpers2[ExternalEmitHelpers2[\"ExportStar\"] = 32768] = \"ExportStar\";\n  ExternalEmitHelpers2[ExternalEmitHelpers2[\"ImportStar\"] = 65536] = \"ImportStar\";\n  ExternalEmitHelpers2[ExternalEmitHelpers2[\"ImportDefault\"] = 131072] = \"ImportDefault\";\n  ExternalEmitHelpers2[ExternalEmitHelpers2[\"MakeTemplateObject\"] = 262144] = \"MakeTemplateObject\";\n  ExternalEmitHelpers2[ExternalEmitHelpers2[\"ClassPrivateFieldGet\"] = 524288] = \"ClassPrivateFieldGet\";\n  ExternalEmitHelpers2[ExternalEmitHelpers2[\"ClassPrivateFieldSet\"] = 1048576] = \"ClassPrivateFieldSet\";\n  ExternalEmitHelpers2[ExternalEmitHelpers2[\"ClassPrivateFieldIn\"] = 2097152] = \"ClassPrivateFieldIn\";\n  ExternalEmitHelpers2[ExternalEmitHelpers2[\"SetFunctionName\"] = 4194304] = \"SetFunctionName\";\n  ExternalEmitHelpers2[ExternalEmitHelpers2[\"PropKey\"] = 8388608] = \"PropKey\";\n  ExternalEmitHelpers2[ExternalEmitHelpers2[\"AddDisposableResourceAndDisposeResources\"] = 16777216] = \"AddDisposableResourceAndDisposeResources\";\n  ExternalEmitHelpers2[ExternalEmitHelpers2[\"RewriteRelativeImportExtension\"] = 33554432] = \"RewriteRelativeImportExtension\";\n  ExternalEmitHelpers2[ExternalEmitHelpers2[\"FirstEmitHelper\"] = 1 /* Extends */] = \"FirstEmitHelper\";\n  ExternalEmitHelpers2[ExternalEmitHelpers2[\"LastEmitHelper\"] = 16777216 /* AddDisposableResourceAndDisposeResources */] = \"LastEmitHelper\";\n  ExternalEmitHelpers2[ExternalEmitHelpers2[\"ForOfIncludes\"] = 256 /* Values */] = \"ForOfIncludes\";\n  ExternalEmitHelpers2[ExternalEmitHelpers2[\"ForAwaitOfIncludes\"] = 16384 /* AsyncValues */] = \"ForAwaitOfIncludes\";\n  ExternalEmitHelpers2[ExternalEmitHelpers2[\"AsyncGeneratorIncludes\"] = 6144] = \"AsyncGeneratorIncludes\";\n  ExternalEmitHelpers2[ExternalEmitHelpers2[\"AsyncDelegatorIncludes\"] = 26624] = \"AsyncDelegatorIncludes\";\n  ExternalEmitHelpers2[ExternalEmitHelpers2[\"SpreadIncludes\"] = 1536] = \"SpreadIncludes\";\n  return ExternalEmitHelpers2;\n})(ExternalEmitHelpers || {});\nvar EmitHint = /* @__PURE__ */ ((EmitHint5) => {\n  EmitHint5[EmitHint5[\"SourceFile\"] = 0] = \"SourceFile\";\n  EmitHint5[EmitHint5[\"Expression\"] = 1] = \"Expression\";\n  EmitHint5[EmitHint5[\"IdentifierName\"] = 2] = \"IdentifierName\";\n  EmitHint5[EmitHint5[\"MappedTypeParameter\"] = 3] = \"MappedTypeParameter\";\n  EmitHint5[EmitHint5[\"Unspecified\"] = 4] = \"Unspecified\";\n  EmitHint5[EmitHint5[\"EmbeddedStatement\"] = 5] = \"EmbeddedStatement\";\n  EmitHint5[EmitHint5[\"JsxAttributeValue\"] = 6] = \"JsxAttributeValue\";\n  EmitHint5[EmitHint5[\"ImportTypeNodeAttributes\"] = 7] = \"ImportTypeNodeAttributes\";\n  return EmitHint5;\n})(EmitHint || {});\nvar OuterExpressionKinds = /* @__PURE__ */ ((OuterExpressionKinds2) => {\n  OuterExpressionKinds2[OuterExpressionKinds2[\"Parentheses\"] = 1] = \"Parentheses\";\n  OuterExpressionKinds2[OuterExpressionKinds2[\"TypeAssertions\"] = 2] = \"TypeAssertions\";\n  OuterExpressionKinds2[OuterExpressionKinds2[\"NonNullAssertions\"] = 4] = \"NonNullAssertions\";\n  OuterExpressionKinds2[OuterExpressionKinds2[\"PartiallyEmittedExpressions\"] = 8] = \"PartiallyEmittedExpressions\";\n  OuterExpressionKinds2[OuterExpressionKinds2[\"ExpressionsWithTypeArguments\"] = 16] = \"ExpressionsWithTypeArguments\";\n  OuterExpressionKinds2[OuterExpressionKinds2[\"Satisfies\"] = 32] = \"Satisfies\";\n  OuterExpressionKinds2[OuterExpressionKinds2[\"Assertions\"] = 38] = \"Assertions\";\n  OuterExpressionKinds2[OuterExpressionKinds2[\"All\"] = 63] = \"All\";\n  OuterExpressionKinds2[OuterExpressionKinds2[\"ExcludeJSDocTypeAssertion\"] = -2147483648] = \"ExcludeJSDocTypeAssertion\";\n  return OuterExpressionKinds2;\n})(OuterExpressionKinds || {});\nvar LexicalEnvironmentFlags = /* @__PURE__ */ ((LexicalEnvironmentFlags2) => {\n  LexicalEnvironmentFlags2[LexicalEnvironmentFlags2[\"None\"] = 0] = \"None\";\n  LexicalEnvironmentFlags2[LexicalEnvironmentFlags2[\"InParameters\"] = 1] = \"InParameters\";\n  LexicalEnvironmentFlags2[LexicalEnvironmentFlags2[\"VariablesHoistedInParameters\"] = 2] = \"VariablesHoistedInParameters\";\n  return LexicalEnvironmentFlags2;\n})(LexicalEnvironmentFlags || {});\nvar ListFormat = /* @__PURE__ */ ((ListFormat2) => {\n  ListFormat2[ListFormat2[\"None\"] = 0] = \"None\";\n  ListFormat2[ListFormat2[\"SingleLine\"] = 0] = \"SingleLine\";\n  ListFormat2[ListFormat2[\"MultiLine\"] = 1] = \"MultiLine\";\n  ListFormat2[ListFormat2[\"PreserveLines\"] = 2] = \"PreserveLines\";\n  ListFormat2[ListFormat2[\"LinesMask\"] = 3] = \"LinesMask\";\n  ListFormat2[ListFormat2[\"NotDelimited\"] = 0] = \"NotDelimited\";\n  ListFormat2[ListFormat2[\"BarDelimited\"] = 4] = \"BarDelimited\";\n  ListFormat2[ListFormat2[\"AmpersandDelimited\"] = 8] = \"AmpersandDelimited\";\n  ListFormat2[ListFormat2[\"CommaDelimited\"] = 16] = \"CommaDelimited\";\n  ListFormat2[ListFormat2[\"AsteriskDelimited\"] = 32] = \"AsteriskDelimited\";\n  ListFormat2[ListFormat2[\"DelimitersMask\"] = 60] = \"DelimitersMask\";\n  ListFormat2[ListFormat2[\"AllowTrailingComma\"] = 64] = \"AllowTrailingComma\";\n  ListFormat2[ListFormat2[\"Indented\"] = 128] = \"Indented\";\n  ListFormat2[ListFormat2[\"SpaceBetweenBraces\"] = 256] = \"SpaceBetweenBraces\";\n  ListFormat2[ListFormat2[\"SpaceBetweenSiblings\"] = 512] = \"SpaceBetweenSiblings\";\n  ListFormat2[ListFormat2[\"Braces\"] = 1024] = \"Braces\";\n  ListFormat2[ListFormat2[\"Parenthesis\"] = 2048] = \"Parenthesis\";\n  ListFormat2[ListFormat2[\"AngleBrackets\"] = 4096] = \"AngleBrackets\";\n  ListFormat2[ListFormat2[\"SquareBrackets\"] = 8192] = \"SquareBrackets\";\n  ListFormat2[ListFormat2[\"BracketsMask\"] = 15360] = \"BracketsMask\";\n  ListFormat2[ListFormat2[\"OptionalIfUndefined\"] = 16384] = \"OptionalIfUndefined\";\n  ListFormat2[ListFormat2[\"OptionalIfEmpty\"] = 32768] = \"OptionalIfEmpty\";\n  ListFormat2[ListFormat2[\"Optional\"] = 49152] = \"Optional\";\n  ListFormat2[ListFormat2[\"PreferNewLine\"] = 65536] = \"PreferNewLine\";\n  ListFormat2[ListFormat2[\"NoTrailingNewLine\"] = 131072] = \"NoTrailingNewLine\";\n  ListFormat2[ListFormat2[\"NoInterveningComments\"] = 262144] = \"NoInterveningComments\";\n  ListFormat2[ListFormat2[\"NoSpaceIfEmpty\"] = 524288] = \"NoSpaceIfEmpty\";\n  ListFormat2[ListFormat2[\"SingleElement\"] = 1048576] = \"SingleElement\";\n  ListFormat2[ListFormat2[\"SpaceAfterList\"] = 2097152] = \"SpaceAfterList\";\n  ListFormat2[ListFormat2[\"Modifiers\"] = 2359808] = \"Modifiers\";\n  ListFormat2[ListFormat2[\"HeritageClauses\"] = 512] = \"HeritageClauses\";\n  ListFormat2[ListFormat2[\"SingleLineTypeLiteralMembers\"] = 768] = \"SingleLineTypeLiteralMembers\";\n  ListFormat2[ListFormat2[\"MultiLineTypeLiteralMembers\"] = 32897] = \"MultiLineTypeLiteralMembers\";\n  ListFormat2[ListFormat2[\"SingleLineTupleTypeElements\"] = 528] = \"SingleLineTupleTypeElements\";\n  ListFormat2[ListFormat2[\"MultiLineTupleTypeElements\"] = 657] = \"MultiLineTupleTypeElements\";\n  ListFormat2[ListFormat2[\"UnionTypeConstituents\"] = 516] = \"UnionTypeConstituents\";\n  ListFormat2[ListFormat2[\"IntersectionTypeConstituents\"] = 520] = \"IntersectionTypeConstituents\";\n  ListFormat2[ListFormat2[\"ObjectBindingPatternElements\"] = 525136] = \"ObjectBindingPatternElements\";\n  ListFormat2[ListFormat2[\"ArrayBindingPatternElements\"] = 524880] = \"ArrayBindingPatternElements\";\n  ListFormat2[ListFormat2[\"ObjectLiteralExpressionProperties\"] = 526226] = \"ObjectLiteralExpressionProperties\";\n  ListFormat2[ListFormat2[\"ImportAttributes\"] = 526226] = \"ImportAttributes\";\n  ListFormat2[ListFormat2[\"ImportClauseEntries\"] = 526226 /* ImportAttributes */] = \"ImportClauseEntries\";\n  ListFormat2[ListFormat2[\"ArrayLiteralExpressionElements\"] = 8914] = \"ArrayLiteralExpressionElements\";\n  ListFormat2[ListFormat2[\"CommaListElements\"] = 528] = \"CommaListElements\";\n  ListFormat2[ListFormat2[\"CallExpressionArguments\"] = 2576] = \"CallExpressionArguments\";\n  ListFormat2[ListFormat2[\"NewExpressionArguments\"] = 18960] = \"NewExpressionArguments\";\n  ListFormat2[ListFormat2[\"TemplateExpressionSpans\"] = 262144] = \"TemplateExpressionSpans\";\n  ListFormat2[ListFormat2[\"SingleLineBlockStatements\"] = 768] = \"SingleLineBlockStatements\";\n  ListFormat2[ListFormat2[\"MultiLineBlockStatements\"] = 129] = \"MultiLineBlockStatements\";\n  ListFormat2[ListFormat2[\"VariableDeclarationList\"] = 528] = \"VariableDeclarationList\";\n  ListFormat2[ListFormat2[\"SingleLineFunctionBodyStatements\"] = 768] = \"SingleLineFunctionBodyStatements\";\n  ListFormat2[ListFormat2[\"MultiLineFunctionBodyStatements\"] = 1 /* MultiLine */] = \"MultiLineFunctionBodyStatements\";\n  ListFormat2[ListFormat2[\"ClassHeritageClauses\"] = 0 /* SingleLine */] = \"ClassHeritageClauses\";\n  ListFormat2[ListFormat2[\"ClassMembers\"] = 129] = \"ClassMembers\";\n  ListFormat2[ListFormat2[\"InterfaceMembers\"] = 129] = \"InterfaceMembers\";\n  ListFormat2[ListFormat2[\"EnumMembers\"] = 145] = \"EnumMembers\";\n  ListFormat2[ListFormat2[\"CaseBlockClauses\"] = 129] = \"CaseBlockClauses\";\n  ListFormat2[ListFormat2[\"NamedImportsOrExportsElements\"] = 525136] = \"NamedImportsOrExportsElements\";\n  ListFormat2[ListFormat2[\"JsxElementOrFragmentChildren\"] = 262144] = \"JsxElementOrFragmentChildren\";\n  ListFormat2[ListFormat2[\"JsxElementAttributes\"] = 262656] = \"JsxElementAttributes\";\n  ListFormat2[ListFormat2[\"CaseOrDefaultClauseStatements\"] = 163969] = \"CaseOrDefaultClauseStatements\";\n  ListFormat2[ListFormat2[\"HeritageClauseTypes\"] = 528] = \"HeritageClauseTypes\";\n  ListFormat2[ListFormat2[\"SourceFileStatements\"] = 131073] = \"SourceFileStatements\";\n  ListFormat2[ListFormat2[\"Decorators\"] = 2146305] = \"Decorators\";\n  ListFormat2[ListFormat2[\"TypeArguments\"] = 53776] = \"TypeArguments\";\n  ListFormat2[ListFormat2[\"TypeParameters\"] = 53776] = \"TypeParameters\";\n  ListFormat2[ListFormat2[\"Parameters\"] = 2576] = \"Parameters\";\n  ListFormat2[ListFormat2[\"IndexSignatureParameters\"] = 8848] = \"IndexSignatureParameters\";\n  ListFormat2[ListFormat2[\"JSDocComment\"] = 33] = \"JSDocComment\";\n  return ListFormat2;\n})(ListFormat || {});\nvar PragmaKindFlags = /* @__PURE__ */ ((PragmaKindFlags2) => {\n  PragmaKindFlags2[PragmaKindFlags2[\"None\"] = 0] = \"None\";\n  PragmaKindFlags2[PragmaKindFlags2[\"TripleSlashXML\"] = 1] = \"TripleSlashXML\";\n  PragmaKindFlags2[PragmaKindFlags2[\"SingleLine\"] = 2] = \"SingleLine\";\n  PragmaKindFlags2[PragmaKindFlags2[\"MultiLine\"] = 4] = \"MultiLine\";\n  PragmaKindFlags2[PragmaKindFlags2[\"All\"] = 7] = \"All\";\n  PragmaKindFlags2[PragmaKindFlags2[\"Default\"] = 7 /* All */] = \"Default\";\n  return PragmaKindFlags2;\n})(PragmaKindFlags || {});\nvar commentPragmas = {\n  \"reference\": {\n    args: [\n      { name: \"types\", optional: true, captureSpan: true },\n      { name: \"lib\", optional: true, captureSpan: true },\n      { name: \"path\", optional: true, captureSpan: true },\n      { name: \"no-default-lib\", optional: true },\n      { name: \"resolution-mode\", optional: true },\n      { name: \"preserve\", optional: true }\n    ],\n    kind: 1 /* TripleSlashXML */\n  },\n  \"amd-dependency\": {\n    args: [{ name: \"path\" }, { name: \"name\", optional: true }],\n    kind: 1 /* TripleSlashXML */\n  },\n  \"amd-module\": {\n    args: [{ name: \"name\" }],\n    kind: 1 /* TripleSlashXML */\n  },\n  \"ts-check\": {\n    kind: 2 /* SingleLine */\n  },\n  \"ts-nocheck\": {\n    kind: 2 /* SingleLine */\n  },\n  \"jsx\": {\n    args: [{ name: \"factory\" }],\n    kind: 4 /* MultiLine */\n  },\n  \"jsxfrag\": {\n    args: [{ name: \"factory\" }],\n    kind: 4 /* MultiLine */\n  },\n  \"jsximportsource\": {\n    args: [{ name: \"factory\" }],\n    kind: 4 /* MultiLine */\n  },\n  \"jsxruntime\": {\n    args: [{ name: \"factory\" }],\n    kind: 4 /* MultiLine */\n  }\n};\nvar JSDocParsingMode = /* @__PURE__ */ ((JSDocParsingMode6) => {\n  JSDocParsingMode6[JSDocParsingMode6[\"ParseAll\"] = 0] = \"ParseAll\";\n  JSDocParsingMode6[JSDocParsingMode6[\"ParseNone\"] = 1] = \"ParseNone\";\n  JSDocParsingMode6[JSDocParsingMode6[\"ParseForTypeErrors\"] = 2] = \"ParseForTypeErrors\";\n  JSDocParsingMode6[JSDocParsingMode6[\"ParseForTypeInfo\"] = 3] = \"ParseForTypeInfo\";\n  return JSDocParsingMode6;\n})(JSDocParsingMode || {});\n\n// src/compiler/sys.ts\nfunction generateDjb2Hash(data) {\n  let acc = 5381;\n  for (let i = 0; i < data.length; i++) {\n    acc = (acc << 5) + acc + data.charCodeAt(i);\n  }\n  return acc.toString();\n}\nfunction setStackTraceLimit() {\n  if (Error.stackTraceLimit < 100) {\n    Error.stackTraceLimit = 100;\n  }\n}\nvar FileWatcherEventKind = /* @__PURE__ */ ((FileWatcherEventKind2) => {\n  FileWatcherEventKind2[FileWatcherEventKind2[\"Created\"] = 0] = \"Created\";\n  FileWatcherEventKind2[FileWatcherEventKind2[\"Changed\"] = 1] = \"Changed\";\n  FileWatcherEventKind2[FileWatcherEventKind2[\"Deleted\"] = 2] = \"Deleted\";\n  return FileWatcherEventKind2;\n})(FileWatcherEventKind || {});\nvar PollingInterval = /* @__PURE__ */ ((PollingInterval3) => {\n  PollingInterval3[PollingInterval3[\"High\"] = 2e3] = \"High\";\n  PollingInterval3[PollingInterval3[\"Medium\"] = 500] = \"Medium\";\n  PollingInterval3[PollingInterval3[\"Low\"] = 250] = \"Low\";\n  return PollingInterval3;\n})(PollingInterval || {});\nvar missingFileModifiedTime = /* @__PURE__ */ new Date(0);\nfunction getModifiedTime(host, fileName) {\n  return host.getModifiedTime(fileName) || missingFileModifiedTime;\n}\nfunction createPollingIntervalBasedLevels(levels) {\n  return {\n    [250 /* Low */]: levels.Low,\n    [500 /* Medium */]: levels.Medium,\n    [2e3 /* High */]: levels.High\n  };\n}\nvar defaultChunkLevels = { Low: 32, Medium: 64, High: 256 };\nvar pollingChunkSize = createPollingIntervalBasedLevels(defaultChunkLevels);\nvar unchangedPollThresholds = createPollingIntervalBasedLevels(defaultChunkLevels);\nfunction setCustomPollingValues(system) {\n  if (!system.getEnvironmentVariable) {\n    return;\n  }\n  const pollingIntervalChanged = setCustomLevels(\"TSC_WATCH_POLLINGINTERVAL\", PollingInterval);\n  pollingChunkSize = getCustomPollingBasedLevels(\"TSC_WATCH_POLLINGCHUNKSIZE\", defaultChunkLevels) || pollingChunkSize;\n  unchangedPollThresholds = getCustomPollingBasedLevels(\"TSC_WATCH_UNCHANGEDPOLLTHRESHOLDS\", defaultChunkLevels) || unchangedPollThresholds;\n  function getLevel(envVar, level) {\n    return system.getEnvironmentVariable(`${envVar}_${level.toUpperCase()}`);\n  }\n  function getCustomLevels(baseVariable) {\n    let customLevels;\n    setCustomLevel(\"Low\");\n    setCustomLevel(\"Medium\");\n    setCustomLevel(\"High\");\n    return customLevels;\n    function setCustomLevel(level) {\n      const customLevel = getLevel(baseVariable, level);\n      if (customLevel) {\n        (customLevels || (customLevels = {}))[level] = Number(customLevel);\n      }\n    }\n  }\n  function setCustomLevels(baseVariable, levels) {\n    const customLevels = getCustomLevels(baseVariable);\n    if (customLevels) {\n      setLevel(\"Low\");\n      setLevel(\"Medium\");\n      setLevel(\"High\");\n      return true;\n    }\n    return false;\n    function setLevel(level) {\n      levels[level] = customLevels[level] || levels[level];\n    }\n  }\n  function getCustomPollingBasedLevels(baseVariable, defaultLevels) {\n    const customLevels = getCustomLevels(baseVariable);\n    return (pollingIntervalChanged || customLevels) && createPollingIntervalBasedLevels(customLevels ? { ...defaultLevels, ...customLevels } : defaultLevels);\n  }\n}\nfunction pollWatchedFileQueue(host, queue, pollIndex, chunkSize, callbackOnWatchFileStat) {\n  let definedValueCopyToIndex = pollIndex;\n  for (let canVisit = queue.length; chunkSize && canVisit; nextPollIndex(), canVisit--) {\n    const watchedFile = queue[pollIndex];\n    if (!watchedFile) {\n      continue;\n    } else if (watchedFile.isClosed) {\n      queue[pollIndex] = void 0;\n      continue;\n    }\n    chunkSize--;\n    const fileChanged = onWatchedFileStat(watchedFile, getModifiedTime(host, watchedFile.fileName));\n    if (watchedFile.isClosed) {\n      queue[pollIndex] = void 0;\n      continue;\n    }\n    callbackOnWatchFileStat == null ? void 0 : callbackOnWatchFileStat(watchedFile, pollIndex, fileChanged);\n    if (queue[pollIndex]) {\n      if (definedValueCopyToIndex < pollIndex) {\n        queue[definedValueCopyToIndex] = watchedFile;\n        queue[pollIndex] = void 0;\n      }\n      definedValueCopyToIndex++;\n    }\n  }\n  return pollIndex;\n  function nextPollIndex() {\n    pollIndex++;\n    if (pollIndex === queue.length) {\n      if (definedValueCopyToIndex < pollIndex) {\n        queue.length = definedValueCopyToIndex;\n      }\n      pollIndex = 0;\n      definedValueCopyToIndex = 0;\n    }\n  }\n}\nfunction createDynamicPriorityPollingWatchFile(host) {\n  const watchedFiles = [];\n  const changedFilesInLastPoll = [];\n  const lowPollingIntervalQueue = createPollingIntervalQueue(250 /* Low */);\n  const mediumPollingIntervalQueue = createPollingIntervalQueue(500 /* Medium */);\n  const highPollingIntervalQueue = createPollingIntervalQueue(2e3 /* High */);\n  return watchFile2;\n  function watchFile2(fileName, callback, defaultPollingInterval) {\n    const file = {\n      fileName,\n      callback,\n      unchangedPolls: 0,\n      mtime: getModifiedTime(host, fileName)\n    };\n    watchedFiles.push(file);\n    addToPollingIntervalQueue(file, defaultPollingInterval);\n    return {\n      close: () => {\n        file.isClosed = true;\n        unorderedRemoveItem(watchedFiles, file);\n      }\n    };\n  }\n  function createPollingIntervalQueue(pollingInterval) {\n    const queue = [];\n    queue.pollingInterval = pollingInterval;\n    queue.pollIndex = 0;\n    queue.pollScheduled = false;\n    return queue;\n  }\n  function pollPollingIntervalQueue(_timeoutType, queue) {\n    queue.pollIndex = pollQueue(queue, queue.pollingInterval, queue.pollIndex, pollingChunkSize[queue.pollingInterval]);\n    if (queue.length) {\n      scheduleNextPoll(queue.pollingInterval);\n    } else {\n      Debug.assert(queue.pollIndex === 0);\n      queue.pollScheduled = false;\n    }\n  }\n  function pollLowPollingIntervalQueue(_timeoutType, queue) {\n    pollQueue(\n      changedFilesInLastPoll,\n      250 /* Low */,\n      /*pollIndex*/\n      0,\n      changedFilesInLastPoll.length\n    );\n    pollPollingIntervalQueue(_timeoutType, queue);\n    if (!queue.pollScheduled && changedFilesInLastPoll.length) {\n      scheduleNextPoll(250 /* Low */);\n    }\n  }\n  function pollQueue(queue, pollingInterval, pollIndex, chunkSize) {\n    return pollWatchedFileQueue(\n      host,\n      queue,\n      pollIndex,\n      chunkSize,\n      onWatchFileStat\n    );\n    function onWatchFileStat(watchedFile, pollIndex2, fileChanged) {\n      if (fileChanged) {\n        watchedFile.unchangedPolls = 0;\n        if (queue !== changedFilesInLastPoll) {\n          queue[pollIndex2] = void 0;\n          addChangedFileToLowPollingIntervalQueue(watchedFile);\n        }\n      } else if (watchedFile.unchangedPolls !== unchangedPollThresholds[pollingInterval]) {\n        watchedFile.unchangedPolls++;\n      } else if (queue === changedFilesInLastPoll) {\n        watchedFile.unchangedPolls = 1;\n        queue[pollIndex2] = void 0;\n        addToPollingIntervalQueue(watchedFile, 250 /* Low */);\n      } else if (pollingInterval !== 2e3 /* High */) {\n        watchedFile.unchangedPolls++;\n        queue[pollIndex2] = void 0;\n        addToPollingIntervalQueue(watchedFile, pollingInterval === 250 /* Low */ ? 500 /* Medium */ : 2e3 /* High */);\n      }\n    }\n  }\n  function pollingIntervalQueue(pollingInterval) {\n    switch (pollingInterval) {\n      case 250 /* Low */:\n        return lowPollingIntervalQueue;\n      case 500 /* Medium */:\n        return mediumPollingIntervalQueue;\n      case 2e3 /* High */:\n        return highPollingIntervalQueue;\n    }\n  }\n  function addToPollingIntervalQueue(file, pollingInterval) {\n    pollingIntervalQueue(pollingInterval).push(file);\n    scheduleNextPollIfNotAlreadyScheduled(pollingInterval);\n  }\n  function addChangedFileToLowPollingIntervalQueue(file) {\n    changedFilesInLastPoll.push(file);\n    scheduleNextPollIfNotAlreadyScheduled(250 /* Low */);\n  }\n  function scheduleNextPollIfNotAlreadyScheduled(pollingInterval) {\n    if (!pollingIntervalQueue(pollingInterval).pollScheduled) {\n      scheduleNextPoll(pollingInterval);\n    }\n  }\n  function scheduleNextPoll(pollingInterval) {\n    pollingIntervalQueue(pollingInterval).pollScheduled = host.setTimeout(pollingInterval === 250 /* Low */ ? pollLowPollingIntervalQueue : pollPollingIntervalQueue, pollingInterval, pollingInterval === 250 /* Low */ ? \"pollLowPollingIntervalQueue\" : \"pollPollingIntervalQueue\", pollingIntervalQueue(pollingInterval));\n  }\n}\nfunction createUseFsEventsOnParentDirectoryWatchFile(fsWatch, useCaseSensitiveFileNames2, getModifiedTime3, fsWatchWithTimestamp) {\n  const fileWatcherCallbacks = createMultiMap();\n  const fileTimestamps = fsWatchWithTimestamp ? /* @__PURE__ */ new Map() : void 0;\n  const dirWatchers = /* @__PURE__ */ new Map();\n  const toCanonicalName = createGetCanonicalFileName(useCaseSensitiveFileNames2);\n  return nonPollingWatchFile;\n  function nonPollingWatchFile(fileName, callback, _pollingInterval, fallbackOptions) {\n    const filePath = toCanonicalName(fileName);\n    if (fileWatcherCallbacks.add(filePath, callback).length === 1 && fileTimestamps) {\n      fileTimestamps.set(filePath, getModifiedTime3(fileName) || missingFileModifiedTime);\n    }\n    const dirPath = getDirectoryPath(filePath) || \".\";\n    const watcher = dirWatchers.get(dirPath) || createDirectoryWatcher(getDirectoryPath(fileName) || \".\", dirPath, fallbackOptions);\n    watcher.referenceCount++;\n    return {\n      close: () => {\n        if (watcher.referenceCount === 1) {\n          watcher.close();\n          dirWatchers.delete(dirPath);\n        } else {\n          watcher.referenceCount--;\n        }\n        fileWatcherCallbacks.remove(filePath, callback);\n      }\n    };\n  }\n  function createDirectoryWatcher(dirName, dirPath, fallbackOptions) {\n    const watcher = fsWatch(\n      dirName,\n      1 /* Directory */,\n      (eventName, relativeFileName) => {\n        if (!isString(relativeFileName)) return;\n        const fileName = getNormalizedAbsolutePath(relativeFileName, dirName);\n        const filePath = toCanonicalName(fileName);\n        const callbacks = fileName && fileWatcherCallbacks.get(filePath);\n        if (callbacks) {\n          let currentModifiedTime;\n          let eventKind = 1 /* Changed */;\n          if (fileTimestamps) {\n            const existingTime = fileTimestamps.get(filePath);\n            if (eventName === \"change\") {\n              currentModifiedTime = getModifiedTime3(fileName) || missingFileModifiedTime;\n              if (currentModifiedTime.getTime() === existingTime.getTime()) return;\n            }\n            currentModifiedTime || (currentModifiedTime = getModifiedTime3(fileName) || missingFileModifiedTime);\n            fileTimestamps.set(filePath, currentModifiedTime);\n            if (existingTime === missingFileModifiedTime) eventKind = 0 /* Created */;\n            else if (currentModifiedTime === missingFileModifiedTime) eventKind = 2 /* Deleted */;\n          }\n          for (const fileCallback of callbacks) {\n            fileCallback(fileName, eventKind, currentModifiedTime);\n          }\n        }\n      },\n      /*recursive*/\n      false,\n      500 /* Medium */,\n      fallbackOptions\n    );\n    watcher.referenceCount = 0;\n    dirWatchers.set(dirPath, watcher);\n    return watcher;\n  }\n}\nfunction createFixedChunkSizePollingWatchFile(host) {\n  const watchedFiles = [];\n  let pollIndex = 0;\n  let pollScheduled;\n  return watchFile2;\n  function watchFile2(fileName, callback) {\n    const file = {\n      fileName,\n      callback,\n      mtime: getModifiedTime(host, fileName)\n    };\n    watchedFiles.push(file);\n    scheduleNextPoll();\n    return {\n      close: () => {\n        file.isClosed = true;\n        unorderedRemoveItem(watchedFiles, file);\n      }\n    };\n  }\n  function pollQueue() {\n    pollScheduled = void 0;\n    pollIndex = pollWatchedFileQueue(host, watchedFiles, pollIndex, pollingChunkSize[250 /* Low */]);\n    scheduleNextPoll();\n  }\n  function scheduleNextPoll() {\n    if (!watchedFiles.length || pollScheduled) return;\n    pollScheduled = host.setTimeout(pollQueue, 2e3 /* High */, \"pollQueue\");\n  }\n}\nfunction createSingleWatcherPerName(cache, useCaseSensitiveFileNames2, name, callback, createWatcher) {\n  const toCanonicalFileName = createGetCanonicalFileName(useCaseSensitiveFileNames2);\n  const path = toCanonicalFileName(name);\n  const existing = cache.get(path);\n  if (existing) {\n    existing.callbacks.push(callback);\n  } else {\n    cache.set(path, {\n      watcher: createWatcher(\n        // Cant infer types correctly so lets satisfy checker\n        (param1, param2, param3) => {\n          var _a;\n          return (_a = cache.get(path)) == null ? void 0 : _a.callbacks.slice().forEach((cb) => cb(param1, param2, param3));\n        }\n      ),\n      callbacks: [callback]\n    });\n  }\n  return {\n    close: () => {\n      const watcher = cache.get(path);\n      if (!watcher) return;\n      if (!orderedRemoveItem(watcher.callbacks, callback) || watcher.callbacks.length) return;\n      cache.delete(path);\n      closeFileWatcherOf(watcher);\n    }\n  };\n}\nfunction onWatchedFileStat(watchedFile, modifiedTime) {\n  const oldTime = watchedFile.mtime.getTime();\n  const newTime = modifiedTime.getTime();\n  if (oldTime !== newTime) {\n    watchedFile.mtime = modifiedTime;\n    watchedFile.callback(watchedFile.fileName, getFileWatcherEventKind(oldTime, newTime), modifiedTime);\n    return true;\n  }\n  return false;\n}\nfunction getFileWatcherEventKind(oldTime, newTime) {\n  return oldTime === 0 ? 0 /* Created */ : newTime === 0 ? 2 /* Deleted */ : 1 /* Changed */;\n}\nvar ignoredPaths = [\"/node_modules/.\", \"/.git\", \"/.#\"];\nvar curSysLog = noop;\nfunction sysLog(s) {\n  return curSysLog(s);\n}\nfunction setSysLog(logger) {\n  curSysLog = logger;\n}\nfunction createDirectoryWatcherSupportingRecursive({\n  watchDirectory,\n  useCaseSensitiveFileNames: useCaseSensitiveFileNames2,\n  getCurrentDirectory,\n  getAccessibleSortedChildDirectories,\n  fileSystemEntryExists,\n  realpath,\n  setTimeout: setTimeout2,\n  clearTimeout: clearTimeout2\n}) {\n  const cache = /* @__PURE__ */ new Map();\n  const callbackCache = createMultiMap();\n  const cacheToUpdateChildWatches = /* @__PURE__ */ new Map();\n  let timerToUpdateChildWatches;\n  const filePathComparer = getStringComparer(!useCaseSensitiveFileNames2);\n  const toCanonicalFilePath = createGetCanonicalFileName(useCaseSensitiveFileNames2);\n  return (dirName, callback, recursive, options) => recursive ? createDirectoryWatcher(dirName, options, callback) : watchDirectory(dirName, callback, recursive, options);\n  function createDirectoryWatcher(dirName, options, callback, link) {\n    const dirPath = toCanonicalFilePath(dirName);\n    let directoryWatcher = cache.get(dirPath);\n    if (directoryWatcher) {\n      directoryWatcher.refCount++;\n    } else {\n      directoryWatcher = {\n        watcher: watchDirectory(\n          dirName,\n          (fileName) => {\n            var _a;\n            if (isIgnoredPath(fileName, options)) return;\n            if (options == null ? void 0 : options.synchronousWatchDirectory) {\n              if (!((_a = cache.get(dirPath)) == null ? void 0 : _a.targetWatcher)) invokeCallbacks(dirName, dirPath, fileName);\n              updateChildWatches(dirName, dirPath, options);\n            } else {\n              nonSyncUpdateChildWatches(dirName, dirPath, fileName, options);\n            }\n          },\n          /*recursive*/\n          false,\n          options\n        ),\n        refCount: 1,\n        childWatches: emptyArray,\n        targetWatcher: void 0,\n        links: void 0\n      };\n      cache.set(dirPath, directoryWatcher);\n      updateChildWatches(dirName, dirPath, options);\n    }\n    if (link) (directoryWatcher.links ?? (directoryWatcher.links = /* @__PURE__ */ new Set())).add(link);\n    const callbackToAdd = callback && { dirName, callback };\n    if (callbackToAdd) {\n      callbackCache.add(dirPath, callbackToAdd);\n    }\n    return {\n      dirName,\n      close: () => {\n        var _a;\n        const directoryWatcher2 = Debug.checkDefined(cache.get(dirPath));\n        if (callbackToAdd) callbackCache.remove(dirPath, callbackToAdd);\n        if (link) (_a = directoryWatcher2.links) == null ? void 0 : _a.delete(link);\n        directoryWatcher2.refCount--;\n        if (directoryWatcher2.refCount) return;\n        cache.delete(dirPath);\n        directoryWatcher2.links = void 0;\n        closeFileWatcherOf(directoryWatcher2);\n        closeTargetWatcher(directoryWatcher2);\n        directoryWatcher2.childWatches.forEach(closeFileWatcher);\n      }\n    };\n  }\n  function invokeCallbacks(dirName, dirPath, fileNameOrInvokeMap, fileNames) {\n    var _a, _b;\n    let fileName;\n    let invokeMap;\n    if (isString(fileNameOrInvokeMap)) {\n      fileName = fileNameOrInvokeMap;\n    } else {\n      invokeMap = fileNameOrInvokeMap;\n    }\n    callbackCache.forEach((callbacks, rootDirName) => {\n      if (invokeMap && invokeMap.get(rootDirName) === true) return;\n      if (rootDirName === dirPath || startsWith(dirPath, rootDirName) && dirPath[rootDirName.length] === directorySeparator) {\n        if (invokeMap) {\n          if (fileNames) {\n            const existing = invokeMap.get(rootDirName);\n            if (existing) {\n              existing.push(...fileNames);\n            } else {\n              invokeMap.set(rootDirName, fileNames.slice());\n            }\n          } else {\n            invokeMap.set(rootDirName, true);\n          }\n        } else {\n          callbacks.forEach(({ callback }) => callback(fileName));\n        }\n      }\n    });\n    (_b = (_a = cache.get(dirPath)) == null ? void 0 : _a.links) == null ? void 0 : _b.forEach((link) => {\n      const toPathInLink = (fileName2) => combinePaths(link, getRelativePathFromDirectory(dirName, fileName2, toCanonicalFilePath));\n      if (invokeMap) {\n        invokeCallbacks(link, toCanonicalFilePath(link), invokeMap, fileNames == null ? void 0 : fileNames.map(toPathInLink));\n      } else {\n        invokeCallbacks(link, toCanonicalFilePath(link), toPathInLink(fileName));\n      }\n    });\n  }\n  function nonSyncUpdateChildWatches(dirName, dirPath, fileName, options) {\n    const parentWatcher = cache.get(dirPath);\n    if (parentWatcher && fileSystemEntryExists(dirName, 1 /* Directory */)) {\n      scheduleUpdateChildWatches(dirName, dirPath, fileName, options);\n      return;\n    }\n    invokeCallbacks(dirName, dirPath, fileName);\n    closeTargetWatcher(parentWatcher);\n    removeChildWatches(parentWatcher);\n  }\n  function scheduleUpdateChildWatches(dirName, dirPath, fileName, options) {\n    const existing = cacheToUpdateChildWatches.get(dirPath);\n    if (existing) {\n      existing.fileNames.push(fileName);\n    } else {\n      cacheToUpdateChildWatches.set(dirPath, { dirName, options, fileNames: [fileName] });\n    }\n    if (timerToUpdateChildWatches) {\n      clearTimeout2(timerToUpdateChildWatches);\n      timerToUpdateChildWatches = void 0;\n    }\n    timerToUpdateChildWatches = setTimeout2(onTimerToUpdateChildWatches, 1e3, \"timerToUpdateChildWatches\");\n  }\n  function onTimerToUpdateChildWatches() {\n    var _a;\n    timerToUpdateChildWatches = void 0;\n    sysLog(`sysLog:: onTimerToUpdateChildWatches:: ${cacheToUpdateChildWatches.size}`);\n    const start = timestamp();\n    const invokeMap = /* @__PURE__ */ new Map();\n    while (!timerToUpdateChildWatches && cacheToUpdateChildWatches.size) {\n      const result = cacheToUpdateChildWatches.entries().next();\n      Debug.assert(!result.done);\n      const { value: [dirPath, { dirName, options, fileNames }] } = result;\n      cacheToUpdateChildWatches.delete(dirPath);\n      const hasChanges = updateChildWatches(dirName, dirPath, options);\n      if (!((_a = cache.get(dirPath)) == null ? void 0 : _a.targetWatcher)) invokeCallbacks(dirName, dirPath, invokeMap, hasChanges ? void 0 : fileNames);\n    }\n    sysLog(`sysLog:: invokingWatchers:: Elapsed:: ${timestamp() - start}ms:: ${cacheToUpdateChildWatches.size}`);\n    callbackCache.forEach((callbacks, rootDirName) => {\n      const existing = invokeMap.get(rootDirName);\n      if (existing) {\n        callbacks.forEach(({ callback, dirName }) => {\n          if (isArray(existing)) {\n            existing.forEach(callback);\n          } else {\n            callback(dirName);\n          }\n        });\n      }\n    });\n    const elapsed = timestamp() - start;\n    sysLog(`sysLog:: Elapsed:: ${elapsed}ms:: onTimerToUpdateChildWatches:: ${cacheToUpdateChildWatches.size} ${timerToUpdateChildWatches}`);\n  }\n  function removeChildWatches(parentWatcher) {\n    if (!parentWatcher) return;\n    const existingChildWatches = parentWatcher.childWatches;\n    parentWatcher.childWatches = emptyArray;\n    for (const childWatcher of existingChildWatches) {\n      childWatcher.close();\n      removeChildWatches(cache.get(toCanonicalFilePath(childWatcher.dirName)));\n    }\n  }\n  function closeTargetWatcher(watcher) {\n    if (watcher == null ? void 0 : watcher.targetWatcher) {\n      watcher.targetWatcher.close();\n      watcher.targetWatcher = void 0;\n    }\n  }\n  function updateChildWatches(parentDir, parentDirPath, options) {\n    const parentWatcher = cache.get(parentDirPath);\n    if (!parentWatcher) return false;\n    const target = normalizePath(realpath(parentDir));\n    let hasChanges;\n    let newChildWatches;\n    if (filePathComparer(target, parentDir) === 0 /* EqualTo */) {\n      hasChanges = enumerateInsertsAndDeletes(\n        fileSystemEntryExists(parentDir, 1 /* Directory */) ? mapDefined(getAccessibleSortedChildDirectories(parentDir), (child) => {\n          const childFullName = getNormalizedAbsolutePath(child, parentDir);\n          return !isIgnoredPath(childFullName, options) && filePathComparer(childFullName, normalizePath(realpath(childFullName))) === 0 /* EqualTo */ ? childFullName : void 0;\n        }) : emptyArray,\n        parentWatcher.childWatches,\n        (child, childWatcher) => filePathComparer(child, childWatcher.dirName),\n        createAndAddChildDirectoryWatcher,\n        closeFileWatcher,\n        addChildDirectoryWatcher\n      );\n    } else if (parentWatcher.targetWatcher && filePathComparer(target, parentWatcher.targetWatcher.dirName) === 0 /* EqualTo */) {\n      hasChanges = false;\n      Debug.assert(parentWatcher.childWatches === emptyArray);\n    } else {\n      closeTargetWatcher(parentWatcher);\n      parentWatcher.targetWatcher = createDirectoryWatcher(\n        target,\n        options,\n        /*callback*/\n        void 0,\n        parentDir\n      );\n      parentWatcher.childWatches.forEach(closeFileWatcher);\n      hasChanges = true;\n    }\n    parentWatcher.childWatches = newChildWatches || emptyArray;\n    return hasChanges;\n    function createAndAddChildDirectoryWatcher(childName) {\n      const result = createDirectoryWatcher(childName, options);\n      addChildDirectoryWatcher(result);\n    }\n    function addChildDirectoryWatcher(childWatcher) {\n      (newChildWatches || (newChildWatches = [])).push(childWatcher);\n    }\n  }\n  function isIgnoredPath(path, options) {\n    return some(ignoredPaths, (searchPath) => isInPath(path, searchPath)) || isIgnoredByWatchOptions(path, options, useCaseSensitiveFileNames2, getCurrentDirectory);\n  }\n  function isInPath(path, searchPath) {\n    if (path.includes(searchPath)) return true;\n    if (useCaseSensitiveFileNames2) return false;\n    return toCanonicalFilePath(path).includes(searchPath);\n  }\n}\nvar FileSystemEntryKind = /* @__PURE__ */ ((FileSystemEntryKind2) => {\n  FileSystemEntryKind2[FileSystemEntryKind2[\"File\"] = 0] = \"File\";\n  FileSystemEntryKind2[FileSystemEntryKind2[\"Directory\"] = 1] = \"Directory\";\n  return FileSystemEntryKind2;\n})(FileSystemEntryKind || {});\nfunction createFileWatcherCallback(callback) {\n  return (_fileName, eventKind, modifiedTime) => callback(eventKind === 1 /* Changed */ ? \"change\" : \"rename\", \"\", modifiedTime);\n}\nfunction createFsWatchCallbackForFileWatcherCallback(fileName, callback, getModifiedTime3) {\n  return (eventName, _relativeFileName, modifiedTime) => {\n    if (eventName === \"rename\") {\n      modifiedTime || (modifiedTime = getModifiedTime3(fileName) || missingFileModifiedTime);\n      callback(fileName, modifiedTime !== missingFileModifiedTime ? 0 /* Created */ : 2 /* Deleted */, modifiedTime);\n    } else {\n      callback(fileName, 1 /* Changed */, modifiedTime);\n    }\n  };\n}\nfunction isIgnoredByWatchOptions(pathToCheck, options, useCaseSensitiveFileNames2, getCurrentDirectory) {\n  return ((options == null ? void 0 : options.excludeDirectories) || (options == null ? void 0 : options.excludeFiles)) && (matchesExclude(pathToCheck, options == null ? void 0 : options.excludeFiles, useCaseSensitiveFileNames2, getCurrentDirectory()) || matchesExclude(pathToCheck, options == null ? void 0 : options.excludeDirectories, useCaseSensitiveFileNames2, getCurrentDirectory()));\n}\nfunction createFsWatchCallbackForDirectoryWatcherCallback(directoryName, callback, options, useCaseSensitiveFileNames2, getCurrentDirectory) {\n  return (eventName, relativeFileName) => {\n    if (eventName === \"rename\") {\n      const fileName = !relativeFileName ? directoryName : normalizePath(combinePaths(directoryName, relativeFileName));\n      if (!relativeFileName || !isIgnoredByWatchOptions(fileName, options, useCaseSensitiveFileNames2, getCurrentDirectory)) {\n        callback(fileName);\n      }\n    }\n  };\n}\nfunction createSystemWatchFunctions({\n  pollingWatchFileWorker,\n  getModifiedTime: getModifiedTime3,\n  setTimeout: setTimeout2,\n  clearTimeout: clearTimeout2,\n  fsWatchWorker,\n  fileSystemEntryExists,\n  useCaseSensitiveFileNames: useCaseSensitiveFileNames2,\n  getCurrentDirectory,\n  fsSupportsRecursiveFsWatch,\n  getAccessibleSortedChildDirectories,\n  realpath,\n  tscWatchFile,\n  useNonPollingWatchers,\n  tscWatchDirectory,\n  inodeWatching,\n  fsWatchWithTimestamp,\n  sysLog: sysLog2\n}) {\n  const pollingWatches = /* @__PURE__ */ new Map();\n  const fsWatches = /* @__PURE__ */ new Map();\n  const fsWatchesRecursive = /* @__PURE__ */ new Map();\n  let dynamicPollingWatchFile;\n  let fixedChunkSizePollingWatchFile;\n  let nonPollingWatchFile;\n  let hostRecursiveDirectoryWatcher;\n  let hitSystemWatcherLimit = false;\n  return {\n    watchFile: watchFile2,\n    watchDirectory\n  };\n  function watchFile2(fileName, callback, pollingInterval, options) {\n    options = updateOptionsForWatchFile(options, useNonPollingWatchers);\n    const watchFileKind = Debug.checkDefined(options.watchFile);\n    switch (watchFileKind) {\n      case 0 /* FixedPollingInterval */:\n        return pollingWatchFile(\n          fileName,\n          callback,\n          250 /* Low */,\n          /*options*/\n          void 0\n        );\n      case 1 /* PriorityPollingInterval */:\n        return pollingWatchFile(\n          fileName,\n          callback,\n          pollingInterval,\n          /*options*/\n          void 0\n        );\n      case 2 /* DynamicPriorityPolling */:\n        return ensureDynamicPollingWatchFile()(\n          fileName,\n          callback,\n          pollingInterval,\n          /*options*/\n          void 0\n        );\n      case 3 /* FixedChunkSizePolling */:\n        return ensureFixedChunkSizePollingWatchFile()(\n          fileName,\n          callback,\n          /* pollingInterval */\n          void 0,\n          /*options*/\n          void 0\n        );\n      case 4 /* UseFsEvents */:\n        return fsWatch(\n          fileName,\n          0 /* File */,\n          createFsWatchCallbackForFileWatcherCallback(fileName, callback, getModifiedTime3),\n          /*recursive*/\n          false,\n          pollingInterval,\n          getFallbackOptions(options)\n        );\n      case 5 /* UseFsEventsOnParentDirectory */:\n        if (!nonPollingWatchFile) {\n          nonPollingWatchFile = createUseFsEventsOnParentDirectoryWatchFile(fsWatch, useCaseSensitiveFileNames2, getModifiedTime3, fsWatchWithTimestamp);\n        }\n        return nonPollingWatchFile(fileName, callback, pollingInterval, getFallbackOptions(options));\n      default:\n        Debug.assertNever(watchFileKind);\n    }\n  }\n  function ensureDynamicPollingWatchFile() {\n    return dynamicPollingWatchFile || (dynamicPollingWatchFile = createDynamicPriorityPollingWatchFile({ getModifiedTime: getModifiedTime3, setTimeout: setTimeout2 }));\n  }\n  function ensureFixedChunkSizePollingWatchFile() {\n    return fixedChunkSizePollingWatchFile || (fixedChunkSizePollingWatchFile = createFixedChunkSizePollingWatchFile({ getModifiedTime: getModifiedTime3, setTimeout: setTimeout2 }));\n  }\n  function updateOptionsForWatchFile(options, useNonPollingWatchers2) {\n    if (options && options.watchFile !== void 0) return options;\n    switch (tscWatchFile) {\n      case \"PriorityPollingInterval\":\n        return { watchFile: 1 /* PriorityPollingInterval */ };\n      case \"DynamicPriorityPolling\":\n        return { watchFile: 2 /* DynamicPriorityPolling */ };\n      case \"UseFsEvents\":\n        return generateWatchFileOptions(4 /* UseFsEvents */, 1 /* PriorityInterval */, options);\n      case \"UseFsEventsWithFallbackDynamicPolling\":\n        return generateWatchFileOptions(4 /* UseFsEvents */, 2 /* DynamicPriority */, options);\n      case \"UseFsEventsOnParentDirectory\":\n        useNonPollingWatchers2 = true;\n      // fall through\n      default:\n        return useNonPollingWatchers2 ? (\n          // Use notifications from FS to watch with falling back to fs.watchFile\n          generateWatchFileOptions(5 /* UseFsEventsOnParentDirectory */, 1 /* PriorityInterval */, options)\n        ) : (\n          // Default to using fs events\n          { watchFile: 4 /* UseFsEvents */ }\n        );\n    }\n  }\n  function generateWatchFileOptions(watchFile3, fallbackPolling, options) {\n    const defaultFallbackPolling = options == null ? void 0 : options.fallbackPolling;\n    return {\n      watchFile: watchFile3,\n      fallbackPolling: defaultFallbackPolling === void 0 ? fallbackPolling : defaultFallbackPolling\n    };\n  }\n  function watchDirectory(directoryName, callback, recursive, options) {\n    if (fsSupportsRecursiveFsWatch) {\n      return fsWatch(\n        directoryName,\n        1 /* Directory */,\n        createFsWatchCallbackForDirectoryWatcherCallback(directoryName, callback, options, useCaseSensitiveFileNames2, getCurrentDirectory),\n        recursive,\n        500 /* Medium */,\n        getFallbackOptions(options)\n      );\n    }\n    if (!hostRecursiveDirectoryWatcher) {\n      hostRecursiveDirectoryWatcher = createDirectoryWatcherSupportingRecursive({\n        useCaseSensitiveFileNames: useCaseSensitiveFileNames2,\n        getCurrentDirectory,\n        fileSystemEntryExists,\n        getAccessibleSortedChildDirectories,\n        watchDirectory: nonRecursiveWatchDirectory,\n        realpath,\n        setTimeout: setTimeout2,\n        clearTimeout: clearTimeout2\n      });\n    }\n    return hostRecursiveDirectoryWatcher(directoryName, callback, recursive, options);\n  }\n  function nonRecursiveWatchDirectory(directoryName, callback, recursive, options) {\n    Debug.assert(!recursive);\n    const watchDirectoryOptions = updateOptionsForWatchDirectory(options);\n    const watchDirectoryKind = Debug.checkDefined(watchDirectoryOptions.watchDirectory);\n    switch (watchDirectoryKind) {\n      case 1 /* FixedPollingInterval */:\n        return pollingWatchFile(\n          directoryName,\n          () => callback(directoryName),\n          500 /* Medium */,\n          /*options*/\n          void 0\n        );\n      case 2 /* DynamicPriorityPolling */:\n        return ensureDynamicPollingWatchFile()(\n          directoryName,\n          () => callback(directoryName),\n          500 /* Medium */,\n          /*options*/\n          void 0\n        );\n      case 3 /* FixedChunkSizePolling */:\n        return ensureFixedChunkSizePollingWatchFile()(\n          directoryName,\n          () => callback(directoryName),\n          /* pollingInterval */\n          void 0,\n          /*options*/\n          void 0\n        );\n      case 0 /* UseFsEvents */:\n        return fsWatch(\n          directoryName,\n          1 /* Directory */,\n          createFsWatchCallbackForDirectoryWatcherCallback(directoryName, callback, options, useCaseSensitiveFileNames2, getCurrentDirectory),\n          recursive,\n          500 /* Medium */,\n          getFallbackOptions(watchDirectoryOptions)\n        );\n      default:\n        Debug.assertNever(watchDirectoryKind);\n    }\n  }\n  function updateOptionsForWatchDirectory(options) {\n    if (options && options.watchDirectory !== void 0) return options;\n    switch (tscWatchDirectory) {\n      case \"RecursiveDirectoryUsingFsWatchFile\":\n        return { watchDirectory: 1 /* FixedPollingInterval */ };\n      case \"RecursiveDirectoryUsingDynamicPriorityPolling\":\n        return { watchDirectory: 2 /* DynamicPriorityPolling */ };\n      default:\n        const defaultFallbackPolling = options == null ? void 0 : options.fallbackPolling;\n        return {\n          watchDirectory: 0 /* UseFsEvents */,\n          fallbackPolling: defaultFallbackPolling !== void 0 ? defaultFallbackPolling : void 0\n        };\n    }\n  }\n  function pollingWatchFile(fileName, callback, pollingInterval, options) {\n    return createSingleWatcherPerName(\n      pollingWatches,\n      useCaseSensitiveFileNames2,\n      fileName,\n      callback,\n      (cb) => pollingWatchFileWorker(fileName, cb, pollingInterval, options)\n    );\n  }\n  function fsWatch(fileOrDirectory, entryKind, callback, recursive, fallbackPollingInterval, fallbackOptions) {\n    return createSingleWatcherPerName(\n      recursive ? fsWatchesRecursive : fsWatches,\n      useCaseSensitiveFileNames2,\n      fileOrDirectory,\n      callback,\n      (cb) => fsWatchHandlingExistenceOnHost(fileOrDirectory, entryKind, cb, recursive, fallbackPollingInterval, fallbackOptions)\n    );\n  }\n  function fsWatchHandlingExistenceOnHost(fileOrDirectory, entryKind, callback, recursive, fallbackPollingInterval, fallbackOptions) {\n    let lastDirectoryPartWithDirectorySeparator;\n    let lastDirectoryPart;\n    if (inodeWatching) {\n      lastDirectoryPartWithDirectorySeparator = fileOrDirectory.substring(fileOrDirectory.lastIndexOf(directorySeparator));\n      lastDirectoryPart = lastDirectoryPartWithDirectorySeparator.slice(directorySeparator.length);\n    }\n    let watcher = !fileSystemEntryExists(fileOrDirectory, entryKind) ? watchMissingFileSystemEntry() : watchPresentFileSystemEntry();\n    return {\n      close: () => {\n        if (watcher) {\n          watcher.close();\n          watcher = void 0;\n        }\n      }\n    };\n    function updateWatcher(createWatcher) {\n      if (watcher) {\n        sysLog2(`sysLog:: ${fileOrDirectory}:: Changing watcher to ${createWatcher === watchPresentFileSystemEntry ? \"Present\" : \"Missing\"}FileSystemEntryWatcher`);\n        watcher.close();\n        watcher = createWatcher();\n      }\n    }\n    function watchPresentFileSystemEntry() {\n      if (hitSystemWatcherLimit) {\n        sysLog2(`sysLog:: ${fileOrDirectory}:: Defaulting to watchFile`);\n        return watchPresentFileSystemEntryWithFsWatchFile();\n      }\n      try {\n        const presentWatcher = (entryKind === 1 /* Directory */ || !fsWatchWithTimestamp ? fsWatchWorker : fsWatchWorkerHandlingTimestamp)(\n          fileOrDirectory,\n          recursive,\n          inodeWatching ? callbackChangingToMissingFileSystemEntry : callback\n        );\n        presentWatcher.on(\"error\", () => {\n          callback(\"rename\", \"\");\n          updateWatcher(watchMissingFileSystemEntry);\n        });\n        return presentWatcher;\n      } catch (e) {\n        hitSystemWatcherLimit || (hitSystemWatcherLimit = e.code === \"ENOSPC\");\n        sysLog2(`sysLog:: ${fileOrDirectory}:: Changing to watchFile`);\n        return watchPresentFileSystemEntryWithFsWatchFile();\n      }\n    }\n    function callbackChangingToMissingFileSystemEntry(event, relativeName) {\n      let originalRelativeName;\n      if (relativeName && endsWith(relativeName, \"~\")) {\n        originalRelativeName = relativeName;\n        relativeName = relativeName.slice(0, relativeName.length - 1);\n      }\n      if (event === \"rename\" && (!relativeName || relativeName === lastDirectoryPart || endsWith(relativeName, lastDirectoryPartWithDirectorySeparator))) {\n        const modifiedTime = getModifiedTime3(fileOrDirectory) || missingFileModifiedTime;\n        if (originalRelativeName) callback(event, originalRelativeName, modifiedTime);\n        callback(event, relativeName, modifiedTime);\n        if (inodeWatching) {\n          updateWatcher(modifiedTime === missingFileModifiedTime ? watchMissingFileSystemEntry : watchPresentFileSystemEntry);\n        } else if (modifiedTime === missingFileModifiedTime) {\n          updateWatcher(watchMissingFileSystemEntry);\n        }\n      } else {\n        if (originalRelativeName) callback(event, originalRelativeName);\n        callback(event, relativeName);\n      }\n    }\n    function watchPresentFileSystemEntryWithFsWatchFile() {\n      return watchFile2(\n        fileOrDirectory,\n        createFileWatcherCallback(callback),\n        fallbackPollingInterval,\n        fallbackOptions\n      );\n    }\n    function watchMissingFileSystemEntry() {\n      return watchFile2(\n        fileOrDirectory,\n        (_fileName, eventKind, modifiedTime) => {\n          if (eventKind === 0 /* Created */) {\n            modifiedTime || (modifiedTime = getModifiedTime3(fileOrDirectory) || missingFileModifiedTime);\n            if (modifiedTime !== missingFileModifiedTime) {\n              callback(\"rename\", \"\", modifiedTime);\n              updateWatcher(watchPresentFileSystemEntry);\n            }\n          }\n        },\n        fallbackPollingInterval,\n        fallbackOptions\n      );\n    }\n  }\n  function fsWatchWorkerHandlingTimestamp(fileOrDirectory, recursive, callback) {\n    let modifiedTime = getModifiedTime3(fileOrDirectory) || missingFileModifiedTime;\n    return fsWatchWorker(fileOrDirectory, recursive, (eventName, relativeFileName, currentModifiedTime) => {\n      if (eventName === \"change\") {\n        currentModifiedTime || (currentModifiedTime = getModifiedTime3(fileOrDirectory) || missingFileModifiedTime);\n        if (currentModifiedTime.getTime() === modifiedTime.getTime()) return;\n      }\n      modifiedTime = currentModifiedTime || getModifiedTime3(fileOrDirectory) || missingFileModifiedTime;\n      callback(eventName, relativeFileName, modifiedTime);\n    });\n  }\n}\nfunction patchWriteFileEnsuringDirectory(sys2) {\n  const originalWriteFile = sys2.writeFile;\n  sys2.writeFile = (path, data, writeBom) => writeFileEnsuringDirectories(\n    path,\n    data,\n    !!writeBom,\n    (path2, data2, writeByteOrderMark) => originalWriteFile.call(sys2, path2, data2, writeByteOrderMark),\n    (path2) => sys2.createDirectory(path2),\n    (path2) => sys2.directoryExists(path2)\n  );\n}\nvar sys = (() => {\n  const byteOrderMarkIndicator = \"\\uFEFF\";\n  function getNodeSystem() {\n    const nativePattern = /^native |^\\([^)]+\\)$|^(?:internal[\\\\/]|[\\w\\s]+(?:\\.js)?$)/;\n    const _fs = require(\"fs\");\n    const _path = require(\"path\");\n    const _os = require(\"os\");\n    let _crypto;\n    try {\n      _crypto = require(\"crypto\");\n    } catch {\n      _crypto = void 0;\n    }\n    let activeSession;\n    let profilePath = \"./profile.cpuprofile\";\n    const isMacOs = process.platform === \"darwin\";\n    const isLinuxOrMacOs = process.platform === \"linux\" || isMacOs;\n    const statSyncOptions = { throwIfNoEntry: false };\n    const platform = _os.platform();\n    const useCaseSensitiveFileNames2 = isFileSystemCaseSensitive();\n    const fsRealpath = !!_fs.realpathSync.native ? process.platform === \"win32\" ? fsRealPathHandlingLongPath : _fs.realpathSync.native : _fs.realpathSync;\n    const executingFilePath = __filename.endsWith(\"sys.js\") ? _path.join(_path.dirname(__dirname), \"__fake__.js\") : __filename;\n    const fsSupportsRecursiveFsWatch = process.platform === \"win32\" || isMacOs;\n    const getCurrentDirectory = memoize(() => process.cwd());\n    const { watchFile: watchFile2, watchDirectory } = createSystemWatchFunctions({\n      pollingWatchFileWorker: fsWatchFileWorker,\n      getModifiedTime: getModifiedTime3,\n      setTimeout,\n      clearTimeout,\n      fsWatchWorker,\n      useCaseSensitiveFileNames: useCaseSensitiveFileNames2,\n      getCurrentDirectory,\n      fileSystemEntryExists,\n      // Node 4.0 `fs.watch` function supports the \"recursive\" option on both OSX and Windows\n      // (ref: https://github.com/nodejs/node/pull/2649 and https://github.com/Microsoft/TypeScript/issues/4643)\n      fsSupportsRecursiveFsWatch,\n      getAccessibleSortedChildDirectories: (path) => getAccessibleFileSystemEntries(path).directories,\n      realpath,\n      tscWatchFile: process.env.TSC_WATCHFILE,\n      useNonPollingWatchers: !!process.env.TSC_NONPOLLING_WATCHER,\n      tscWatchDirectory: process.env.TSC_WATCHDIRECTORY,\n      inodeWatching: isLinuxOrMacOs,\n      fsWatchWithTimestamp: isMacOs,\n      sysLog\n    });\n    const nodeSystem = {\n      args: process.argv.slice(2),\n      newLine: _os.EOL,\n      useCaseSensitiveFileNames: useCaseSensitiveFileNames2,\n      write(s) {\n        process.stdout.write(s);\n      },\n      getWidthOfTerminal() {\n        return process.stdout.columns;\n      },\n      writeOutputIsTTY() {\n        return process.stdout.isTTY;\n      },\n      readFile,\n      writeFile: writeFile2,\n      watchFile: watchFile2,\n      watchDirectory,\n      preferNonRecursiveWatch: !fsSupportsRecursiveFsWatch,\n      resolvePath: (path) => _path.resolve(path),\n      fileExists,\n      directoryExists,\n      getAccessibleFileSystemEntries,\n      createDirectory(directoryName) {\n        if (!nodeSystem.directoryExists(directoryName)) {\n          try {\n            _fs.mkdirSync(directoryName);\n          } catch (e) {\n            if (e.code !== \"EEXIST\") {\n              throw e;\n            }\n          }\n        }\n      },\n      getExecutingFilePath() {\n        return executingFilePath;\n      },\n      getCurrentDirectory,\n      getDirectories,\n      getEnvironmentVariable(name) {\n        return process.env[name] || \"\";\n      },\n      readDirectory,\n      getModifiedTime: getModifiedTime3,\n      setModifiedTime,\n      deleteFile,\n      createHash: _crypto ? createSHA256Hash : generateDjb2Hash,\n      createSHA256Hash: _crypto ? createSHA256Hash : void 0,\n      getMemoryUsage() {\n        if (global.gc) {\n          global.gc();\n        }\n        return process.memoryUsage().heapUsed;\n      },\n      getFileSize(path) {\n        const stat = statSync(path);\n        if (stat == null ? void 0 : stat.isFile()) {\n          return stat.size;\n        }\n        return 0;\n      },\n      exit(exitCode) {\n        disableCPUProfiler(() => process.exit(exitCode));\n      },\n      enableCPUProfiler,\n      disableCPUProfiler,\n      cpuProfilingEnabled: () => !!activeSession || contains(process.execArgv, \"--cpu-prof\") || contains(process.execArgv, \"--prof\"),\n      realpath,\n      debugMode: !!process.env.NODE_INSPECTOR_IPC || !!process.env.VSCODE_INSPECTOR_OPTIONS || some(process.execArgv, (arg) => /^--(?:inspect|debug)(?:-brk)?(?:=\\d+)?$/i.test(arg)) || !!process.recordreplay,\n      tryEnableSourceMapsForHost() {\n        try {\n          require(\"source-map-support\").install();\n        } catch {\n        }\n      },\n      setTimeout,\n      clearTimeout,\n      clearScreen: () => {\n        process.stdout.write(\"\\x1B[2J\\x1B[3J\\x1B[H\");\n      },\n      setBlocking: () => {\n        var _a;\n        const handle = (_a = process.stdout) == null ? void 0 : _a._handle;\n        if (handle && handle.setBlocking) {\n          handle.setBlocking(true);\n        }\n      },\n      base64decode: (input) => Buffer.from(input, \"base64\").toString(\"utf8\"),\n      base64encode: (input) => Buffer.from(input).toString(\"base64\"),\n      require: (baseDir, moduleName) => {\n        try {\n          const modulePath = resolveJSModule(moduleName, baseDir, nodeSystem);\n          return { module: require(modulePath), modulePath, error: void 0 };\n        } catch (error2) {\n          return { module: void 0, modulePath: void 0, error: error2 };\n        }\n      }\n    };\n    return nodeSystem;\n    function statSync(path) {\n      try {\n        return _fs.statSync(path, statSyncOptions);\n      } catch {\n        return void 0;\n      }\n    }\n    function enableCPUProfiler(path, cb) {\n      if (activeSession) {\n        cb();\n        return false;\n      }\n      const inspector = require(\"inspector\");\n      if (!inspector || !inspector.Session) {\n        cb();\n        return false;\n      }\n      const session = new inspector.Session();\n      session.connect();\n      session.post(\"Profiler.enable\", () => {\n        session.post(\"Profiler.start\", () => {\n          activeSession = session;\n          profilePath = path;\n          cb();\n        });\n      });\n      return true;\n    }\n    function cleanupPaths(profile) {\n      let externalFileCounter = 0;\n      const remappedPaths = /* @__PURE__ */ new Map();\n      const normalizedDir = normalizeSlashes(_path.dirname(executingFilePath));\n      const fileUrlRoot = `file://${getRootLength(normalizedDir) === 1 ? \"\" : \"/\"}${normalizedDir}`;\n      for (const node of profile.nodes) {\n        if (node.callFrame.url) {\n          const url = normalizeSlashes(node.callFrame.url);\n          if (containsPath(fileUrlRoot, url, useCaseSensitiveFileNames2)) {\n            node.callFrame.url = getRelativePathToDirectoryOrUrl(\n              fileUrlRoot,\n              url,\n              fileUrlRoot,\n              createGetCanonicalFileName(useCaseSensitiveFileNames2),\n              /*isAbsolutePathAnUrl*/\n              true\n            );\n          } else if (!nativePattern.test(url)) {\n            node.callFrame.url = (remappedPaths.has(url) ? remappedPaths : remappedPaths.set(url, `external${externalFileCounter}.js`)).get(url);\n            externalFileCounter++;\n          }\n        }\n      }\n      return profile;\n    }\n    function disableCPUProfiler(cb) {\n      if (activeSession && activeSession !== \"stopping\") {\n        const s = activeSession;\n        activeSession.post(\"Profiler.stop\", (err, { profile }) => {\n          var _a;\n          if (!err) {\n            if ((_a = statSync(profilePath)) == null ? void 0 : _a.isDirectory()) {\n              profilePath = _path.join(profilePath, `${(/* @__PURE__ */ new Date()).toISOString().replace(/:/g, \"-\")}+P${process.pid}.cpuprofile`);\n            }\n            try {\n              _fs.mkdirSync(_path.dirname(profilePath), { recursive: true });\n            } catch {\n            }\n            _fs.writeFileSync(profilePath, JSON.stringify(cleanupPaths(profile)));\n          }\n          activeSession = void 0;\n          s.disconnect();\n          cb();\n        });\n        activeSession = \"stopping\";\n        return true;\n      } else {\n        cb();\n        return false;\n      }\n    }\n    function isFileSystemCaseSensitive() {\n      if (platform === \"win32\" || platform === \"win64\") {\n        return false;\n      }\n      return !fileExists(swapCase(__filename));\n    }\n    function swapCase(s) {\n      return s.replace(/\\w/g, (ch) => {\n        const up = ch.toUpperCase();\n        return ch === up ? ch.toLowerCase() : up;\n      });\n    }\n    function fsWatchFileWorker(fileName, callback, pollingInterval) {\n      _fs.watchFile(fileName, { persistent: true, interval: pollingInterval }, fileChanged);\n      let eventKind;\n      return {\n        close: () => _fs.unwatchFile(fileName, fileChanged)\n      };\n      function fileChanged(curr, prev) {\n        const isPreviouslyDeleted = +prev.mtime === 0 || eventKind === 2 /* Deleted */;\n        if (+curr.mtime === 0) {\n          if (isPreviouslyDeleted) {\n            return;\n          }\n          eventKind = 2 /* Deleted */;\n        } else if (isPreviouslyDeleted) {\n          eventKind = 0 /* Created */;\n        } else if (+curr.mtime === +prev.mtime) {\n          return;\n        } else {\n          eventKind = 1 /* Changed */;\n        }\n        callback(fileName, eventKind, curr.mtime);\n      }\n    }\n    function fsWatchWorker(fileOrDirectory, recursive, callback) {\n      return _fs.watch(\n        fileOrDirectory,\n        fsSupportsRecursiveFsWatch ? { persistent: true, recursive: !!recursive } : { persistent: true },\n        callback\n      );\n    }\n    function readFile(fileName, _encoding) {\n      let buffer;\n      try {\n        buffer = _fs.readFileSync(fileName);\n      } catch {\n        return void 0;\n      }\n      let len = buffer.length;\n      if (len >= 2 && buffer[0] === 254 && buffer[1] === 255) {\n        len &= ~1;\n        for (let i = 0; i < len; i += 2) {\n          const temp = buffer[i];\n          buffer[i] = buffer[i + 1];\n          buffer[i + 1] = temp;\n        }\n        return buffer.toString(\"utf16le\", 2);\n      }\n      if (len >= 2 && buffer[0] === 255 && buffer[1] === 254) {\n        return buffer.toString(\"utf16le\", 2);\n      }\n      if (len >= 3 && buffer[0] === 239 && buffer[1] === 187 && buffer[2] === 191) {\n        return buffer.toString(\"utf8\", 3);\n      }\n      return buffer.toString(\"utf8\");\n    }\n    function writeFile2(fileName, data, writeByteOrderMark) {\n      if (writeByteOrderMark) {\n        data = byteOrderMarkIndicator + data;\n      }\n      let fd;\n      try {\n        fd = _fs.openSync(fileName, \"w\");\n        _fs.writeSync(\n          fd,\n          data,\n          /*position*/\n          void 0,\n          \"utf8\"\n        );\n      } finally {\n        if (fd !== void 0) {\n          _fs.closeSync(fd);\n        }\n      }\n    }\n    function getAccessibleFileSystemEntries(path) {\n      try {\n        const entries = _fs.readdirSync(path || \".\", { withFileTypes: true });\n        const files = [];\n        const directories = [];\n        for (const dirent of entries) {\n          const entry = typeof dirent === \"string\" ? dirent : dirent.name;\n          if (entry === \".\" || entry === \"..\") {\n            continue;\n          }\n          let stat;\n          if (typeof dirent === \"string\" || dirent.isSymbolicLink()) {\n            const name = combinePaths(path, entry);\n            stat = statSync(name);\n            if (!stat) {\n              continue;\n            }\n          } else {\n            stat = dirent;\n          }\n          if (stat.isFile()) {\n            files.push(entry);\n          } else if (stat.isDirectory()) {\n            directories.push(entry);\n          }\n        }\n        files.sort();\n        directories.sort();\n        return { files, directories };\n      } catch {\n        return emptyFileSystemEntries;\n      }\n    }\n    function readDirectory(path, extensions, excludes, includes, depth) {\n      return matchFiles(path, extensions, excludes, includes, useCaseSensitiveFileNames2, process.cwd(), depth, getAccessibleFileSystemEntries, realpath);\n    }\n    function fileSystemEntryExists(path, entryKind) {\n      const stat = statSync(path);\n      if (!stat) {\n        return false;\n      }\n      switch (entryKind) {\n        case 0 /* File */:\n          return stat.isFile();\n        case 1 /* Directory */:\n          return stat.isDirectory();\n        default:\n          return false;\n      }\n    }\n    function fileExists(path) {\n      return fileSystemEntryExists(path, 0 /* File */);\n    }\n    function directoryExists(path) {\n      return fileSystemEntryExists(path, 1 /* Directory */);\n    }\n    function getDirectories(path) {\n      return getAccessibleFileSystemEntries(path).directories.slice();\n    }\n    function fsRealPathHandlingLongPath(path) {\n      return path.length < 260 ? _fs.realpathSync.native(path) : _fs.realpathSync(path);\n    }\n    function realpath(path) {\n      try {\n        return fsRealpath(path);\n      } catch {\n        return path;\n      }\n    }\n    function getModifiedTime3(path) {\n      var _a;\n      return (_a = statSync(path)) == null ? void 0 : _a.mtime;\n    }\n    function setModifiedTime(path, time) {\n      try {\n        _fs.utimesSync(path, time, time);\n      } catch {\n        return;\n      }\n    }\n    function deleteFile(path) {\n      try {\n        return _fs.unlinkSync(path);\n      } catch {\n        return;\n      }\n    }\n    function createSHA256Hash(data) {\n      const hash = _crypto.createHash(\"sha256\");\n      hash.update(data);\n      return hash.digest(\"hex\");\n    }\n  }\n  let sys2;\n  if (isNodeLikeSystem()) {\n    sys2 = getNodeSystem();\n  }\n  if (sys2) {\n    patchWriteFileEnsuringDirectory(sys2);\n  }\n  return sys2;\n})();\nfunction setSys(s) {\n  sys = s;\n}\nif (sys && sys.getEnvironmentVariable) {\n  setCustomPollingValues(sys);\n  Debug.setAssertionLevel(\n    /^development$/i.test(sys.getEnvironmentVariable(\"NODE_ENV\")) ? 1 /* Normal */ : 0 /* None */\n  );\n}\nif (sys && sys.debugMode) {\n  Debug.isDebugging = true;\n}\n\n// src/compiler/path.ts\nvar directorySeparator = \"/\";\nvar altDirectorySeparator = \"\\\\\";\nvar urlSchemeSeparator = \"://\";\nvar backslashRegExp = /\\\\/g;\nfunction isAnyDirectorySeparator(charCode) {\n  return charCode === 47 /* slash */ || charCode === 92 /* backslash */;\n}\nfunction isUrl(path) {\n  return getEncodedRootLength(path) < 0;\n}\nfunction isRootedDiskPath(path) {\n  return getEncodedRootLength(path) > 0;\n}\nfunction isDiskPathRoot(path) {\n  const rootLength = getEncodedRootLength(path);\n  return rootLength > 0 && rootLength === path.length;\n}\nfunction pathIsAbsolute(path) {\n  return getEncodedRootLength(path) !== 0;\n}\nfunction pathIsRelative(path) {\n  return /^\\.\\.?(?:$|[\\\\/])/.test(path);\n}\nfunction pathIsBareSpecifier(path) {\n  return !pathIsAbsolute(path) && !pathIsRelative(path);\n}\nfunction hasExtension(fileName) {\n  return getBaseFileName(fileName).includes(\".\");\n}\nfunction fileExtensionIs(path, extension) {\n  return path.length > extension.length && endsWith(path, extension);\n}\nfunction fileExtensionIsOneOf(path, extensions) {\n  for (const extension of extensions) {\n    if (fileExtensionIs(path, extension)) {\n      return true;\n    }\n  }\n  return false;\n}\nfunction hasTrailingDirectorySeparator(path) {\n  return path.length > 0 && isAnyDirectorySeparator(path.charCodeAt(path.length - 1));\n}\nfunction isVolumeCharacter(charCode) {\n  return charCode >= 97 /* a */ && charCode <= 122 /* z */ || charCode >= 65 /* A */ && charCode <= 90 /* Z */;\n}\nfunction getFileUrlVolumeSeparatorEnd(url, start) {\n  const ch0 = url.charCodeAt(start);\n  if (ch0 === 58 /* colon */) return start + 1;\n  if (ch0 === 37 /* percent */ && url.charCodeAt(start + 1) === 51 /* _3 */) {\n    const ch2 = url.charCodeAt(start + 2);\n    if (ch2 === 97 /* a */ || ch2 === 65 /* A */) return start + 3;\n  }\n  return -1;\n}\nfunction getEncodedRootLength(path) {\n  if (!path) return 0;\n  const ch0 = path.charCodeAt(0);\n  if (ch0 === 47 /* slash */ || ch0 === 92 /* backslash */) {\n    if (path.charCodeAt(1) !== ch0) return 1;\n    const p1 = path.indexOf(ch0 === 47 /* slash */ ? directorySeparator : altDirectorySeparator, 2);\n    if (p1 < 0) return path.length;\n    return p1 + 1;\n  }\n  if (isVolumeCharacter(ch0) && path.charCodeAt(1) === 58 /* colon */) {\n    const ch2 = path.charCodeAt(2);\n    if (ch2 === 47 /* slash */ || ch2 === 92 /* backslash */) return 3;\n    if (path.length === 2) return 2;\n  }\n  const schemeEnd = path.indexOf(urlSchemeSeparator);\n  if (schemeEnd !== -1) {\n    const authorityStart = schemeEnd + urlSchemeSeparator.length;\n    const authorityEnd = path.indexOf(directorySeparator, authorityStart);\n    if (authorityEnd !== -1) {\n      const scheme = path.slice(0, schemeEnd);\n      const authority = path.slice(authorityStart, authorityEnd);\n      if (scheme === \"file\" && (authority === \"\" || authority === \"localhost\") && isVolumeCharacter(path.charCodeAt(authorityEnd + 1))) {\n        const volumeSeparatorEnd = getFileUrlVolumeSeparatorEnd(path, authorityEnd + 2);\n        if (volumeSeparatorEnd !== -1) {\n          if (path.charCodeAt(volumeSeparatorEnd) === 47 /* slash */) {\n            return ~(volumeSeparatorEnd + 1);\n          }\n          if (volumeSeparatorEnd === path.length) {\n            return ~volumeSeparatorEnd;\n          }\n        }\n      }\n      return ~(authorityEnd + 1);\n    }\n    return ~path.length;\n  }\n  return 0;\n}\nfunction getRootLength(path) {\n  const rootLength = getEncodedRootLength(path);\n  return rootLength < 0 ? ~rootLength : rootLength;\n}\nfunction getDirectoryPath(path) {\n  path = normalizeSlashes(path);\n  const rootLength = getRootLength(path);\n  if (rootLength === path.length) return path;\n  path = removeTrailingDirectorySeparator(path);\n  return path.slice(0, Math.max(rootLength, path.lastIndexOf(directorySeparator)));\n}\nfunction getBaseFileName(path, extensions, ignoreCase) {\n  path = normalizeSlashes(path);\n  const rootLength = getRootLength(path);\n  if (rootLength === path.length) return \"\";\n  path = removeTrailingDirectorySeparator(path);\n  const name = path.slice(Math.max(getRootLength(path), path.lastIndexOf(directorySeparator) + 1));\n  const extension = extensions !== void 0 && ignoreCase !== void 0 ? getAnyExtensionFromPath(name, extensions, ignoreCase) : void 0;\n  return extension ? name.slice(0, name.length - extension.length) : name;\n}\nfunction tryGetExtensionFromPath(path, extension, stringEqualityComparer) {\n  if (!startsWith(extension, \".\")) extension = \".\" + extension;\n  if (path.length >= extension.length && path.charCodeAt(path.length - extension.length) === 46 /* dot */) {\n    const pathExtension = path.slice(path.length - extension.length);\n    if (stringEqualityComparer(pathExtension, extension)) {\n      return pathExtension;\n    }\n  }\n}\nfunction getAnyExtensionFromPathWorker(path, extensions, stringEqualityComparer) {\n  if (typeof extensions === \"string\") {\n    return tryGetExtensionFromPath(path, extensions, stringEqualityComparer) || \"\";\n  }\n  for (const extension of extensions) {\n    const result = tryGetExtensionFromPath(path, extension, stringEqualityComparer);\n    if (result) return result;\n  }\n  return \"\";\n}\nfunction getAnyExtensionFromPath(path, extensions, ignoreCase) {\n  if (extensions) {\n    return getAnyExtensionFromPathWorker(removeTrailingDirectorySeparator(path), extensions, ignoreCase ? equateStringsCaseInsensitive : equateStringsCaseSensitive);\n  }\n  const baseFileName = getBaseFileName(path);\n  const extensionIndex = baseFileName.lastIndexOf(\".\");\n  if (extensionIndex >= 0) {\n    return baseFileName.substring(extensionIndex);\n  }\n  return \"\";\n}\nfunction pathComponents(path, rootLength) {\n  const root = path.substring(0, rootLength);\n  const rest = path.substring(rootLength).split(directorySeparator);\n  if (rest.length && !lastOrUndefined(rest)) rest.pop();\n  return [root, ...rest];\n}\nfunction getPathComponents(path, currentDirectory = \"\") {\n  path = combinePaths(currentDirectory, path);\n  return pathComponents(path, getRootLength(path));\n}\nfunction getPathFromPathComponents(pathComponents2, length2) {\n  if (pathComponents2.length === 0) return \"\";\n  const root = pathComponents2[0] && ensureTrailingDirectorySeparator(pathComponents2[0]);\n  return root + pathComponents2.slice(1, length2).join(directorySeparator);\n}\nfunction normalizeSlashes(path) {\n  return path.includes(\"\\\\\") ? path.replace(backslashRegExp, directorySeparator) : path;\n}\nfunction reducePathComponents(components) {\n  if (!some(components)) return [];\n  const reduced = [components[0]];\n  for (let i = 1; i < components.length; i++) {\n    const component = components[i];\n    if (!component) continue;\n    if (component === \".\") continue;\n    if (component === \"..\") {\n      if (reduced.length > 1) {\n        if (reduced[reduced.length - 1] !== \"..\") {\n          reduced.pop();\n          continue;\n        }\n      } else if (reduced[0]) continue;\n    }\n    reduced.push(component);\n  }\n  return reduced;\n}\nfunction combinePaths(path, ...paths) {\n  if (path) path = normalizeSlashes(path);\n  for (let relativePath of paths) {\n    if (!relativePath) continue;\n    relativePath = normalizeSlashes(relativePath);\n    if (!path || getRootLength(relativePath) !== 0) {\n      path = relativePath;\n    } else {\n      path = ensureTrailingDirectorySeparator(path) + relativePath;\n    }\n  }\n  return path;\n}\nfunction resolvePath(path, ...paths) {\n  return normalizePath(some(paths) ? combinePaths(path, ...paths) : normalizeSlashes(path));\n}\nfunction getNormalizedPathComponents(path, currentDirectory) {\n  return reducePathComponents(getPathComponents(path, currentDirectory));\n}\nfunction getNormalizedAbsolutePath(path, currentDirectory) {\n  let rootLength = getRootLength(path);\n  if (rootLength === 0 && currentDirectory) {\n    path = combinePaths(currentDirectory, path);\n    rootLength = getRootLength(path);\n  } else {\n    path = normalizeSlashes(path);\n  }\n  const simpleNormalized = simpleNormalizePath(path);\n  if (simpleNormalized !== void 0) {\n    return simpleNormalized.length > rootLength ? removeTrailingDirectorySeparator(simpleNormalized) : simpleNormalized;\n  }\n  const length2 = path.length;\n  const root = path.substring(0, rootLength);\n  let normalized;\n  let index = rootLength;\n  let segmentStart = index;\n  let normalizedUpTo = index;\n  let seenNonDotDotSegment = rootLength !== 0;\n  while (index < length2) {\n    segmentStart = index;\n    let ch = path.charCodeAt(index);\n    while (ch === 47 /* slash */ && index + 1 < length2) {\n      index++;\n      ch = path.charCodeAt(index);\n    }\n    if (index > segmentStart) {\n      normalized ?? (normalized = path.substring(0, segmentStart - 1));\n      segmentStart = index;\n    }\n    let segmentEnd = path.indexOf(directorySeparator, index + 1);\n    if (segmentEnd === -1) {\n      segmentEnd = length2;\n    }\n    const segmentLength = segmentEnd - segmentStart;\n    if (segmentLength === 1 && path.charCodeAt(index) === 46 /* dot */) {\n      normalized ?? (normalized = path.substring(0, normalizedUpTo));\n    } else if (segmentLength === 2 && path.charCodeAt(index) === 46 /* dot */ && path.charCodeAt(index + 1) === 46 /* dot */) {\n      if (!seenNonDotDotSegment) {\n        if (normalized !== void 0) {\n          normalized += normalized.length === rootLength ? \"..\" : \"/..\";\n        } else {\n          normalizedUpTo = index + 2;\n        }\n      } else if (normalized === void 0) {\n        if (normalizedUpTo - 2 >= 0) {\n          normalized = path.substring(0, Math.max(rootLength, path.lastIndexOf(directorySeparator, normalizedUpTo - 2)));\n        } else {\n          normalized = path.substring(0, normalizedUpTo);\n        }\n      } else {\n        const lastSlash = normalized.lastIndexOf(directorySeparator);\n        if (lastSlash !== -1) {\n          normalized = normalized.substring(0, Math.max(rootLength, lastSlash));\n        } else {\n          normalized = root;\n        }\n        if (normalized.length === rootLength) {\n          seenNonDotDotSegment = rootLength !== 0;\n        }\n      }\n    } else if (normalized !== void 0) {\n      if (normalized.length !== rootLength) {\n        normalized += directorySeparator;\n      }\n      seenNonDotDotSegment = true;\n      normalized += path.substring(segmentStart, segmentEnd);\n    } else {\n      seenNonDotDotSegment = true;\n      normalizedUpTo = segmentEnd;\n    }\n    index = segmentEnd + 1;\n  }\n  return normalized ?? (length2 > rootLength ? removeTrailingDirectorySeparator(path) : path);\n}\nfunction normalizePath(path) {\n  path = normalizeSlashes(path);\n  let normalized = simpleNormalizePath(path);\n  if (normalized !== void 0) {\n    return normalized;\n  }\n  normalized = getNormalizedAbsolutePath(path, \"\");\n  return normalized && hasTrailingDirectorySeparator(path) ? ensureTrailingDirectorySeparator(normalized) : normalized;\n}\nfunction simpleNormalizePath(path) {\n  if (!relativePathSegmentRegExp.test(path)) {\n    return path;\n  }\n  let simplified = path.replace(/\\/\\.\\//g, \"/\");\n  if (simplified.startsWith(\"./\")) {\n    simplified = simplified.slice(2);\n  }\n  if (simplified !== path) {\n    path = simplified;\n    if (!relativePathSegmentRegExp.test(path)) {\n      return path;\n    }\n  }\n  return void 0;\n}\nfunction getPathWithoutRoot(pathComponents2) {\n  if (pathComponents2.length === 0) return \"\";\n  return pathComponents2.slice(1).join(directorySeparator);\n}\nfunction getNormalizedAbsolutePathWithoutRoot(fileName, currentDirectory) {\n  return getPathWithoutRoot(getNormalizedPathComponents(fileName, currentDirectory));\n}\nfunction toPath(fileName, basePath, getCanonicalFileName) {\n  const nonCanonicalizedPath = isRootedDiskPath(fileName) ? normalizePath(fileName) : getNormalizedAbsolutePath(fileName, basePath);\n  return getCanonicalFileName(nonCanonicalizedPath);\n}\nfunction removeTrailingDirectorySeparator(path) {\n  if (hasTrailingDirectorySeparator(path)) {\n    return path.substr(0, path.length - 1);\n  }\n  return path;\n}\nfunction ensureTrailingDirectorySeparator(path) {\n  if (!hasTrailingDirectorySeparator(path)) {\n    return path + directorySeparator;\n  }\n  return path;\n}\nfunction ensurePathIsNonModuleName(path) {\n  return !pathIsAbsolute(path) && !pathIsRelative(path) ? \"./\" + path : path;\n}\nfunction changeAnyExtension(path, ext, extensions, ignoreCase) {\n  const pathext = extensions !== void 0 && ignoreCase !== void 0 ? getAnyExtensionFromPath(path, extensions, ignoreCase) : getAnyExtensionFromPath(path);\n  return pathext ? path.slice(0, path.length - pathext.length) + (startsWith(ext, \".\") ? ext : \".\" + ext) : path;\n}\nfunction changeFullExtension(path, newExtension) {\n  const declarationExtension = getDeclarationFileExtension(path);\n  if (declarationExtension) {\n    return path.slice(0, path.length - declarationExtension.length) + (startsWith(newExtension, \".\") ? newExtension : \".\" + newExtension);\n  }\n  return changeAnyExtension(path, newExtension);\n}\nvar relativePathSegmentRegExp = /\\/\\/|(?:^|\\/)\\.\\.?(?:$|\\/)/;\nfunction comparePathsWorker(a, b, componentComparer) {\n  if (a === b) return 0 /* EqualTo */;\n  if (a === void 0) return -1 /* LessThan */;\n  if (b === void 0) return 1 /* GreaterThan */;\n  const aRoot = a.substring(0, getRootLength(a));\n  const bRoot = b.substring(0, getRootLength(b));\n  const result = compareStringsCaseInsensitive(aRoot, bRoot);\n  if (result !== 0 /* EqualTo */) {\n    return result;\n  }\n  const aRest = a.substring(aRoot.length);\n  const bRest = b.substring(bRoot.length);\n  if (!relativePathSegmentRegExp.test(aRest) && !relativePathSegmentRegExp.test(bRest)) {\n    return componentComparer(aRest, bRest);\n  }\n  const aComponents = reducePathComponents(getPathComponents(a));\n  const bComponents = reducePathComponents(getPathComponents(b));\n  const sharedLength = Math.min(aComponents.length, bComponents.length);\n  for (let i = 1; i < sharedLength; i++) {\n    const result2 = componentComparer(aComponents[i], bComponents[i]);\n    if (result2 !== 0 /* EqualTo */) {\n      return result2;\n    }\n  }\n  return compareValues(aComponents.length, bComponents.length);\n}\nfunction comparePathsCaseSensitive(a, b) {\n  return comparePathsWorker(a, b, compareStringsCaseSensitive);\n}\nfunction comparePathsCaseInsensitive(a, b) {\n  return comparePathsWorker(a, b, compareStringsCaseInsensitive);\n}\nfunction comparePaths(a, b, currentDirectory, ignoreCase) {\n  if (typeof currentDirectory === \"string\") {\n    a = combinePaths(currentDirectory, a);\n    b = combinePaths(currentDirectory, b);\n  } else if (typeof currentDirectory === \"boolean\") {\n    ignoreCase = currentDirectory;\n  }\n  return comparePathsWorker(a, b, getStringComparer(ignoreCase));\n}\nfunction containsPath(parent2, child, currentDirectory, ignoreCase) {\n  if (typeof currentDirectory === \"string\") {\n    parent2 = combinePaths(currentDirectory, parent2);\n    child = combinePaths(currentDirectory, child);\n  } else if (typeof currentDirectory === \"boolean\") {\n    ignoreCase = currentDirectory;\n  }\n  if (parent2 === void 0 || child === void 0) return false;\n  if (parent2 === child) return true;\n  const parentComponents = reducePathComponents(getPathComponents(parent2));\n  const childComponents = reducePathComponents(getPathComponents(child));\n  if (childComponents.length < parentComponents.length) {\n    return false;\n  }\n  const componentEqualityComparer = ignoreCase ? equateStringsCaseInsensitive : equateStringsCaseSensitive;\n  for (let i = 0; i < parentComponents.length; i++) {\n    const equalityComparer = i === 0 ? equateStringsCaseInsensitive : componentEqualityComparer;\n    if (!equalityComparer(parentComponents[i], childComponents[i])) {\n      return false;\n    }\n  }\n  return true;\n}\nfunction startsWithDirectory(fileName, directoryName, getCanonicalFileName) {\n  const canonicalFileName = getCanonicalFileName(fileName);\n  const canonicalDirectoryName = getCanonicalFileName(directoryName);\n  return startsWith(canonicalFileName, canonicalDirectoryName + \"/\") || startsWith(canonicalFileName, canonicalDirectoryName + \"\\\\\");\n}\nfunction getPathComponentsRelativeTo(from, to, stringEqualityComparer, getCanonicalFileName) {\n  const fromComponents = reducePathComponents(getPathComponents(from));\n  const toComponents = reducePathComponents(getPathComponents(to));\n  let start;\n  for (start = 0; start < fromComponents.length && start < toComponents.length; start++) {\n    const fromComponent = getCanonicalFileName(fromComponents[start]);\n    const toComponent = getCanonicalFileName(toComponents[start]);\n    const comparer = start === 0 ? equateStringsCaseInsensitive : stringEqualityComparer;\n    if (!comparer(fromComponent, toComponent)) break;\n  }\n  if (start === 0) {\n    return toComponents;\n  }\n  const components = toComponents.slice(start);\n  const relative = [];\n  for (; start < fromComponents.length; start++) {\n    relative.push(\"..\");\n  }\n  return [\"\", ...relative, ...components];\n}\nfunction getRelativePathFromDirectory(fromDirectory, to, getCanonicalFileNameOrIgnoreCase) {\n  Debug.assert(getRootLength(fromDirectory) > 0 === getRootLength(to) > 0, \"Paths must either both be absolute or both be relative\");\n  const getCanonicalFileName = typeof getCanonicalFileNameOrIgnoreCase === \"function\" ? getCanonicalFileNameOrIgnoreCase : identity;\n  const ignoreCase = typeof getCanonicalFileNameOrIgnoreCase === \"boolean\" ? getCanonicalFileNameOrIgnoreCase : false;\n  const pathComponents2 = getPathComponentsRelativeTo(fromDirectory, to, ignoreCase ? equateStringsCaseInsensitive : equateStringsCaseSensitive, getCanonicalFileName);\n  return getPathFromPathComponents(pathComponents2);\n}\nfunction convertToRelativePath(absoluteOrRelativePath, basePath, getCanonicalFileName) {\n  return !isRootedDiskPath(absoluteOrRelativePath) ? absoluteOrRelativePath : getRelativePathToDirectoryOrUrl(\n    basePath,\n    absoluteOrRelativePath,\n    basePath,\n    getCanonicalFileName,\n    /*isAbsolutePathAnUrl*/\n    false\n  );\n}\nfunction getRelativePathFromFile(from, to, getCanonicalFileName) {\n  return ensurePathIsNonModuleName(getRelativePathFromDirectory(getDirectoryPath(from), to, getCanonicalFileName));\n}\nfunction getRelativePathToDirectoryOrUrl(directoryPathOrUrl, relativeOrAbsolutePath, currentDirectory, getCanonicalFileName, isAbsolutePathAnUrl) {\n  const pathComponents2 = getPathComponentsRelativeTo(\n    resolvePath(currentDirectory, directoryPathOrUrl),\n    resolvePath(currentDirectory, relativeOrAbsolutePath),\n    equateStringsCaseSensitive,\n    getCanonicalFileName\n  );\n  const firstComponent = pathComponents2[0];\n  if (isAbsolutePathAnUrl && isRootedDiskPath(firstComponent)) {\n    const prefix = firstComponent.charAt(0) === directorySeparator ? \"file://\" : \"file:///\";\n    pathComponents2[0] = prefix + firstComponent;\n  }\n  return getPathFromPathComponents(pathComponents2);\n}\nfunction forEachAncestorDirectory(directory, callback) {\n  while (true) {\n    const result = callback(directory);\n    if (result !== void 0) {\n      return result;\n    }\n    const parentPath = getDirectoryPath(directory);\n    if (parentPath === directory) {\n      return void 0;\n    }\n    directory = parentPath;\n  }\n}\nfunction isNodeModulesDirectory(dirPath) {\n  return endsWith(dirPath, \"/node_modules\");\n}\n\n// src/compiler/diagnosticInformationMap.generated.ts\nfunction diag(code, category, key, message, reportsUnnecessary, elidedInCompatabilityPyramid, reportsDeprecated) {\n  return { code, category, key, message, reportsUnnecessary, elidedInCompatabilityPyramid, reportsDeprecated };\n}\nvar Diagnostics = {\n  Unterminated_string_literal: diag(1002, 1 /* Error */, \"Unterminated_string_literal_1002\", \"Unterminated string literal.\"),\n  Identifier_expected: diag(1003, 1 /* Error */, \"Identifier_expected_1003\", \"Identifier expected.\"),\n  _0_expected: diag(1005, 1 /* Error */, \"_0_expected_1005\", \"'{0}' expected.\"),\n  A_file_cannot_have_a_reference_to_itself: diag(1006, 1 /* Error */, \"A_file_cannot_have_a_reference_to_itself_1006\", \"A file cannot have a reference to itself.\"),\n  The_parser_expected_to_find_a_1_to_match_the_0_token_here: diag(1007, 1 /* Error */, \"The_parser_expected_to_find_a_1_to_match_the_0_token_here_1007\", \"The parser expected to find a '{1}' to match the '{0}' token here.\"),\n  Trailing_comma_not_allowed: diag(1009, 1 /* Error */, \"Trailing_comma_not_allowed_1009\", \"Trailing comma not allowed.\"),\n  Asterisk_Slash_expected: diag(1010, 1 /* Error */, \"Asterisk_Slash_expected_1010\", \"'*/' expected.\"),\n  An_element_access_expression_should_take_an_argument: diag(1011, 1 /* Error */, \"An_element_access_expression_should_take_an_argument_1011\", \"An element access expression should take an argument.\"),\n  Unexpected_token: diag(1012, 1 /* Error */, \"Unexpected_token_1012\", \"Unexpected token.\"),\n  A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma: diag(1013, 1 /* Error */, \"A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma_1013\", \"A rest parameter or binding pattern may not have a trailing comma.\"),\n  A_rest_parameter_must_be_last_in_a_parameter_list: diag(1014, 1 /* Error */, \"A_rest_parameter_must_be_last_in_a_parameter_list_1014\", \"A rest parameter must be last in a parameter list.\"),\n  Parameter_cannot_have_question_mark_and_initializer: diag(1015, 1 /* Error */, \"Parameter_cannot_have_question_mark_and_initializer_1015\", \"Parameter cannot have question mark and initializer.\"),\n  A_required_parameter_cannot_follow_an_optional_parameter: diag(1016, 1 /* Error */, \"A_required_parameter_cannot_follow_an_optional_parameter_1016\", \"A required parameter cannot follow an optional parameter.\"),\n  An_index_signature_cannot_have_a_rest_parameter: diag(1017, 1 /* Error */, \"An_index_signature_cannot_have_a_rest_parameter_1017\", \"An index signature cannot have a rest parameter.\"),\n  An_index_signature_parameter_cannot_have_an_accessibility_modifier: diag(1018, 1 /* Error */, \"An_index_signature_parameter_cannot_have_an_accessibility_modifier_1018\", \"An index signature parameter cannot have an accessibility modifier.\"),\n  An_index_signature_parameter_cannot_have_a_question_mark: diag(1019, 1 /* Error */, \"An_index_signature_parameter_cannot_have_a_question_mark_1019\", \"An index signature parameter cannot have a question mark.\"),\n  An_index_signature_parameter_cannot_have_an_initializer: diag(1020, 1 /* Error */, \"An_index_signature_parameter_cannot_have_an_initializer_1020\", \"An index signature parameter cannot have an initializer.\"),\n  An_index_signature_must_have_a_type_annotation: diag(1021, 1 /* Error */, \"An_index_signature_must_have_a_type_annotation_1021\", \"An index signature must have a type annotation.\"),\n  An_index_signature_parameter_must_have_a_type_annotation: diag(1022, 1 /* Error */, \"An_index_signature_parameter_must_have_a_type_annotation_1022\", \"An index signature parameter must have a type annotation.\"),\n  readonly_modifier_can_only_appear_on_a_property_declaration_or_index_signature: diag(1024, 1 /* Error */, \"readonly_modifier_can_only_appear_on_a_property_declaration_or_index_signature_1024\", \"'readonly' modifier can only appear on a property declaration or index signature.\"),\n  An_index_signature_cannot_have_a_trailing_comma: diag(1025, 1 /* Error */, \"An_index_signature_cannot_have_a_trailing_comma_1025\", \"An index signature cannot have a trailing comma.\"),\n  Accessibility_modifier_already_seen: diag(1028, 1 /* Error */, \"Accessibility_modifier_already_seen_1028\", \"Accessibility modifier already seen.\"),\n  _0_modifier_must_precede_1_modifier: diag(1029, 1 /* Error */, \"_0_modifier_must_precede_1_modifier_1029\", \"'{0}' modifier must precede '{1}' modifier.\"),\n  _0_modifier_already_seen: diag(1030, 1 /* Error */, \"_0_modifier_already_seen_1030\", \"'{0}' modifier already seen.\"),\n  _0_modifier_cannot_appear_on_class_elements_of_this_kind: diag(1031, 1 /* Error */, \"_0_modifier_cannot_appear_on_class_elements_of_this_kind_1031\", \"'{0}' modifier cannot appear on class elements of this kind.\"),\n  super_must_be_followed_by_an_argument_list_or_member_access: diag(1034, 1 /* Error */, \"super_must_be_followed_by_an_argument_list_or_member_access_1034\", \"'super' must be followed by an argument list or member access.\"),\n  Only_ambient_modules_can_use_quoted_names: diag(1035, 1 /* Error */, \"Only_ambient_modules_can_use_quoted_names_1035\", \"Only ambient modules can use quoted names.\"),\n  Statements_are_not_allowed_in_ambient_contexts: diag(1036, 1 /* Error */, \"Statements_are_not_allowed_in_ambient_contexts_1036\", \"Statements are not allowed in ambient contexts.\"),\n  A_declare_modifier_cannot_be_used_in_an_already_ambient_context: diag(1038, 1 /* Error */, \"A_declare_modifier_cannot_be_used_in_an_already_ambient_context_1038\", \"A 'declare' modifier cannot be used in an already ambient context.\"),\n  Initializers_are_not_allowed_in_ambient_contexts: diag(1039, 1 /* Error */, \"Initializers_are_not_allowed_in_ambient_contexts_1039\", \"Initializers are not allowed in ambient contexts.\"),\n  _0_modifier_cannot_be_used_in_an_ambient_context: diag(1040, 1 /* Error */, \"_0_modifier_cannot_be_used_in_an_ambient_context_1040\", \"'{0}' modifier cannot be used in an ambient context.\"),\n  _0_modifier_cannot_be_used_here: diag(1042, 1 /* Error */, \"_0_modifier_cannot_be_used_here_1042\", \"'{0}' modifier cannot be used here.\"),\n  _0_modifier_cannot_appear_on_a_module_or_namespace_element: diag(1044, 1 /* Error */, \"_0_modifier_cannot_appear_on_a_module_or_namespace_element_1044\", \"'{0}' modifier cannot appear on a module or namespace element.\"),\n  Top_level_declarations_in_d_ts_files_must_start_with_either_a_declare_or_export_modifier: diag(1046, 1 /* Error */, \"Top_level_declarations_in_d_ts_files_must_start_with_either_a_declare_or_export_modifier_1046\", \"Top-level declarations in .d.ts files must start with either a 'declare' or 'export' modifier.\"),\n  A_rest_parameter_cannot_be_optional: diag(1047, 1 /* Error */, \"A_rest_parameter_cannot_be_optional_1047\", \"A rest parameter cannot be optional.\"),\n  A_rest_parameter_cannot_have_an_initializer: diag(1048, 1 /* Error */, \"A_rest_parameter_cannot_have_an_initializer_1048\", \"A rest parameter cannot have an initializer.\"),\n  A_set_accessor_must_have_exactly_one_parameter: diag(1049, 1 /* Error */, \"A_set_accessor_must_have_exactly_one_parameter_1049\", \"A 'set' accessor must have exactly one parameter.\"),\n  A_set_accessor_cannot_have_an_optional_parameter: diag(1051, 1 /* Error */, \"A_set_accessor_cannot_have_an_optional_parameter_1051\", \"A 'set' accessor cannot have an optional parameter.\"),\n  A_set_accessor_parameter_cannot_have_an_initializer: diag(1052, 1 /* Error */, \"A_set_accessor_parameter_cannot_have_an_initializer_1052\", \"A 'set' accessor parameter cannot have an initializer.\"),\n  A_set_accessor_cannot_have_rest_parameter: diag(1053, 1 /* Error */, \"A_set_accessor_cannot_have_rest_parameter_1053\", \"A 'set' accessor cannot have rest parameter.\"),\n  A_get_accessor_cannot_have_parameters: diag(1054, 1 /* Error */, \"A_get_accessor_cannot_have_parameters_1054\", \"A 'get' accessor cannot have parameters.\"),\n  Type_0_is_not_a_valid_async_function_return_type_in_ES5_because_it_does_not_refer_to_a_Promise_compatible_constructor_value: diag(1055, 1 /* Error */, \"Type_0_is_not_a_valid_async_function_return_type_in_ES5_because_it_does_not_refer_to_a_Promise_compa_1055\", \"Type '{0}' is not a valid async function return type in ES5 because it does not refer to a Promise-compatible constructor value.\"),\n  Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher: diag(1056, 1 /* Error */, \"Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher_1056\", \"Accessors are only available when targeting ECMAScript 5 and higher.\"),\n  The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member: diag(1058, 1 /* Error */, \"The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_t_1058\", \"The return type of an async function must either be a valid promise or must not contain a callable 'then' member.\"),\n  A_promise_must_have_a_then_method: diag(1059, 1 /* Error */, \"A_promise_must_have_a_then_method_1059\", \"A promise must have a 'then' method.\"),\n  The_first_parameter_of_the_then_method_of_a_promise_must_be_a_callback: diag(1060, 1 /* Error */, \"The_first_parameter_of_the_then_method_of_a_promise_must_be_a_callback_1060\", \"The first parameter of the 'then' method of a promise must be a callback.\"),\n  Enum_member_must_have_initializer: diag(1061, 1 /* Error */, \"Enum_member_must_have_initializer_1061\", \"Enum member must have initializer.\"),\n  Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method: diag(1062, 1 /* Error */, \"Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method_1062\", \"Type is referenced directly or indirectly in the fulfillment callback of its own 'then' method.\"),\n  An_export_assignment_cannot_be_used_in_a_namespace: diag(1063, 1 /* Error */, \"An_export_assignment_cannot_be_used_in_a_namespace_1063\", \"An export assignment cannot be used in a namespace.\"),\n  The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_write_Promise_0: diag(1064, 1 /* Error */, \"The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_wri_1064\", \"The return type of an async function or method must be the global Promise<T> type. Did you mean to write 'Promise<{0}>'?\"),\n  The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type: diag(1065, 1 /* Error */, \"The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_1065\", \"The return type of an async function or method must be the global Promise<T> type.\"),\n  In_ambient_enum_declarations_member_initializer_must_be_constant_expression: diag(1066, 1 /* Error */, \"In_ambient_enum_declarations_member_initializer_must_be_constant_expression_1066\", \"In ambient enum declarations member initializer must be constant expression.\"),\n  Unexpected_token_A_constructor_method_accessor_or_property_was_expected: diag(1068, 1 /* Error */, \"Unexpected_token_A_constructor_method_accessor_or_property_was_expected_1068\", \"Unexpected token. A constructor, method, accessor, or property was expected.\"),\n  Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces: diag(1069, 1 /* Error */, \"Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces_1069\", \"Unexpected token. A type parameter name was expected without curly braces.\"),\n  _0_modifier_cannot_appear_on_a_type_member: diag(1070, 1 /* Error */, \"_0_modifier_cannot_appear_on_a_type_member_1070\", \"'{0}' modifier cannot appear on a type member.\"),\n  _0_modifier_cannot_appear_on_an_index_signature: diag(1071, 1 /* Error */, \"_0_modifier_cannot_appear_on_an_index_signature_1071\", \"'{0}' modifier cannot appear on an index signature.\"),\n  A_0_modifier_cannot_be_used_with_an_import_declaration: diag(1079, 1 /* Error */, \"A_0_modifier_cannot_be_used_with_an_import_declaration_1079\", \"A '{0}' modifier cannot be used with an import declaration.\"),\n  Invalid_reference_directive_syntax: diag(1084, 1 /* Error */, \"Invalid_reference_directive_syntax_1084\", \"Invalid 'reference' directive syntax.\"),\n  _0_modifier_cannot_appear_on_a_constructor_declaration: diag(1089, 1 /* Error */, \"_0_modifier_cannot_appear_on_a_constructor_declaration_1089\", \"'{0}' modifier cannot appear on a constructor declaration.\"),\n  _0_modifier_cannot_appear_on_a_parameter: diag(1090, 1 /* Error */, \"_0_modifier_cannot_appear_on_a_parameter_1090\", \"'{0}' modifier cannot appear on a parameter.\"),\n  Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement: diag(1091, 1 /* Error */, \"Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement_1091\", \"Only a single variable declaration is allowed in a 'for...in' statement.\"),\n  Type_parameters_cannot_appear_on_a_constructor_declaration: diag(1092, 1 /* Error */, \"Type_parameters_cannot_appear_on_a_constructor_declaration_1092\", \"Type parameters cannot appear on a constructor declaration.\"),\n  Type_annotation_cannot_appear_on_a_constructor_declaration: diag(1093, 1 /* Error */, \"Type_annotation_cannot_appear_on_a_constructor_declaration_1093\", \"Type annotation cannot appear on a constructor declaration.\"),\n  An_accessor_cannot_have_type_parameters: diag(1094, 1 /* Error */, \"An_accessor_cannot_have_type_parameters_1094\", \"An accessor cannot have type parameters.\"),\n  A_set_accessor_cannot_have_a_return_type_annotation: diag(1095, 1 /* Error */, \"A_set_accessor_cannot_have_a_return_type_annotation_1095\", \"A 'set' accessor cannot have a return type annotation.\"),\n  An_index_signature_must_have_exactly_one_parameter: diag(1096, 1 /* Error */, \"An_index_signature_must_have_exactly_one_parameter_1096\", \"An index signature must have exactly one parameter.\"),\n  _0_list_cannot_be_empty: diag(1097, 1 /* Error */, \"_0_list_cannot_be_empty_1097\", \"'{0}' list cannot be empty.\"),\n  Type_parameter_list_cannot_be_empty: diag(1098, 1 /* Error */, \"Type_parameter_list_cannot_be_empty_1098\", \"Type parameter list cannot be empty.\"),\n  Type_argument_list_cannot_be_empty: diag(1099, 1 /* Error */, \"Type_argument_list_cannot_be_empty_1099\", \"Type argument list cannot be empty.\"),\n  Invalid_use_of_0_in_strict_mode: diag(1100, 1 /* Error */, \"Invalid_use_of_0_in_strict_mode_1100\", \"Invalid use of '{0}' in strict mode.\"),\n  with_statements_are_not_allowed_in_strict_mode: diag(1101, 1 /* Error */, \"with_statements_are_not_allowed_in_strict_mode_1101\", \"'with' statements are not allowed in strict mode.\"),\n  delete_cannot_be_called_on_an_identifier_in_strict_mode: diag(1102, 1 /* Error */, \"delete_cannot_be_called_on_an_identifier_in_strict_mode_1102\", \"'delete' cannot be called on an identifier in strict mode.\"),\n  for_await_loops_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules: diag(1103, 1 /* Error */, \"for_await_loops_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules_1103\", \"'for await' loops are only allowed within async functions and at the top levels of modules.\"),\n  A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement: diag(1104, 1 /* Error */, \"A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement_1104\", \"A 'continue' statement can only be used within an enclosing iteration statement.\"),\n  A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement: diag(1105, 1 /* Error */, \"A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement_1105\", \"A 'break' statement can only be used within an enclosing iteration or switch statement.\"),\n  The_left_hand_side_of_a_for_of_statement_may_not_be_async: diag(1106, 1 /* Error */, \"The_left_hand_side_of_a_for_of_statement_may_not_be_async_1106\", \"The left-hand side of a 'for...of' statement may not be 'async'.\"),\n  Jump_target_cannot_cross_function_boundary: diag(1107, 1 /* Error */, \"Jump_target_cannot_cross_function_boundary_1107\", \"Jump target cannot cross function boundary.\"),\n  A_return_statement_can_only_be_used_within_a_function_body: diag(1108, 1 /* Error */, \"A_return_statement_can_only_be_used_within_a_function_body_1108\", \"A 'return' statement can only be used within a function body.\"),\n  Expression_expected: diag(1109, 1 /* Error */, \"Expression_expected_1109\", \"Expression expected.\"),\n  Type_expected: diag(1110, 1 /* Error */, \"Type_expected_1110\", \"Type expected.\"),\n  Private_field_0_must_be_declared_in_an_enclosing_class: diag(1111, 1 /* Error */, \"Private_field_0_must_be_declared_in_an_enclosing_class_1111\", \"Private field '{0}' must be declared in an enclosing class.\"),\n  A_default_clause_cannot_appear_more_than_once_in_a_switch_statement: diag(1113, 1 /* Error */, \"A_default_clause_cannot_appear_more_than_once_in_a_switch_statement_1113\", \"A 'default' clause cannot appear more than once in a 'switch' statement.\"),\n  Duplicate_label_0: diag(1114, 1 /* Error */, \"Duplicate_label_0_1114\", \"Duplicate label '{0}'.\"),\n  A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement: diag(1115, 1 /* Error */, \"A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement_1115\", \"A 'continue' statement can only jump to a label of an enclosing iteration statement.\"),\n  A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement: diag(1116, 1 /* Error */, \"A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement_1116\", \"A 'break' statement can only jump to a label of an enclosing statement.\"),\n  An_object_literal_cannot_have_multiple_properties_with_the_same_name: diag(1117, 1 /* Error */, \"An_object_literal_cannot_have_multiple_properties_with_the_same_name_1117\", \"An object literal cannot have multiple properties with the same name.\"),\n  An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name: diag(1118, 1 /* Error */, \"An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name_1118\", \"An object literal cannot have multiple get/set accessors with the same name.\"),\n  An_object_literal_cannot_have_property_and_accessor_with_the_same_name: diag(1119, 1 /* Error */, \"An_object_literal_cannot_have_property_and_accessor_with_the_same_name_1119\", \"An object literal cannot have property and accessor with the same name.\"),\n  An_export_assignment_cannot_have_modifiers: diag(1120, 1 /* Error */, \"An_export_assignment_cannot_have_modifiers_1120\", \"An export assignment cannot have modifiers.\"),\n  Octal_literals_are_not_allowed_Use_the_syntax_0: diag(1121, 1 /* Error */, \"Octal_literals_are_not_allowed_Use_the_syntax_0_1121\", \"Octal literals are not allowed. Use the syntax '{0}'.\"),\n  Variable_declaration_list_cannot_be_empty: diag(1123, 1 /* Error */, \"Variable_declaration_list_cannot_be_empty_1123\", \"Variable declaration list cannot be empty.\"),\n  Digit_expected: diag(1124, 1 /* Error */, \"Digit_expected_1124\", \"Digit expected.\"),\n  Hexadecimal_digit_expected: diag(1125, 1 /* Error */, \"Hexadecimal_digit_expected_1125\", \"Hexadecimal digit expected.\"),\n  Unexpected_end_of_text: diag(1126, 1 /* Error */, \"Unexpected_end_of_text_1126\", \"Unexpected end of text.\"),\n  Invalid_character: diag(1127, 1 /* Error */, \"Invalid_character_1127\", \"Invalid character.\"),\n  Declaration_or_statement_expected: diag(1128, 1 /* Error */, \"Declaration_or_statement_expected_1128\", \"Declaration or statement expected.\"),\n  Statement_expected: diag(1129, 1 /* Error */, \"Statement_expected_1129\", \"Statement expected.\"),\n  case_or_default_expected: diag(1130, 1 /* Error */, \"case_or_default_expected_1130\", \"'case' or 'default' expected.\"),\n  Property_or_signature_expected: diag(1131, 1 /* Error */, \"Property_or_signature_expected_1131\", \"Property or signature expected.\"),\n  Enum_member_expected: diag(1132, 1 /* Error */, \"Enum_member_expected_1132\", \"Enum member expected.\"),\n  Variable_declaration_expected: diag(1134, 1 /* Error */, \"Variable_declaration_expected_1134\", \"Variable declaration expected.\"),\n  Argument_expression_expected: diag(1135, 1 /* Error */, \"Argument_expression_expected_1135\", \"Argument expression expected.\"),\n  Property_assignment_expected: diag(1136, 1 /* Error */, \"Property_assignment_expected_1136\", \"Property assignment expected.\"),\n  Expression_or_comma_expected: diag(1137, 1 /* Error */, \"Expression_or_comma_expected_1137\", \"Expression or comma expected.\"),\n  Parameter_declaration_expected: diag(1138, 1 /* Error */, \"Parameter_declaration_expected_1138\", \"Parameter declaration expected.\"),\n  Type_parameter_declaration_expected: diag(1139, 1 /* Error */, \"Type_parameter_declaration_expected_1139\", \"Type parameter declaration expected.\"),\n  Type_argument_expected: diag(1140, 1 /* Error */, \"Type_argument_expected_1140\", \"Type argument expected.\"),\n  String_literal_expected: diag(1141, 1 /* Error */, \"String_literal_expected_1141\", \"String literal expected.\"),\n  Line_break_not_permitted_here: diag(1142, 1 /* Error */, \"Line_break_not_permitted_here_1142\", \"Line break not permitted here.\"),\n  or_expected: diag(1144, 1 /* Error */, \"or_expected_1144\", \"'{' or ';' expected.\"),\n  or_JSX_element_expected: diag(1145, 1 /* Error */, \"or_JSX_element_expected_1145\", \"'{' or JSX element expected.\"),\n  Declaration_expected: diag(1146, 1 /* Error */, \"Declaration_expected_1146\", \"Declaration expected.\"),\n  Import_declarations_in_a_namespace_cannot_reference_a_module: diag(1147, 1 /* Error */, \"Import_declarations_in_a_namespace_cannot_reference_a_module_1147\", \"Import declarations in a namespace cannot reference a module.\"),\n  Cannot_use_imports_exports_or_module_augmentations_when_module_is_none: diag(1148, 1 /* Error */, \"Cannot_use_imports_exports_or_module_augmentations_when_module_is_none_1148\", \"Cannot use imports, exports, or module augmentations when '--module' is 'none'.\"),\n  File_name_0_differs_from_already_included_file_name_1_only_in_casing: diag(1149, 1 /* Error */, \"File_name_0_differs_from_already_included_file_name_1_only_in_casing_1149\", \"File name '{0}' differs from already included file name '{1}' only in casing.\"),\n  _0_declarations_must_be_initialized: diag(1155, 1 /* Error */, \"_0_declarations_must_be_initialized_1155\", \"'{0}' declarations must be initialized.\"),\n  _0_declarations_can_only_be_declared_inside_a_block: diag(1156, 1 /* Error */, \"_0_declarations_can_only_be_declared_inside_a_block_1156\", \"'{0}' declarations can only be declared inside a block.\"),\n  Unterminated_template_literal: diag(1160, 1 /* Error */, \"Unterminated_template_literal_1160\", \"Unterminated template literal.\"),\n  Unterminated_regular_expression_literal: diag(1161, 1 /* Error */, \"Unterminated_regular_expression_literal_1161\", \"Unterminated regular expression literal.\"),\n  An_object_member_cannot_be_declared_optional: diag(1162, 1 /* Error */, \"An_object_member_cannot_be_declared_optional_1162\", \"An object member cannot be declared optional.\"),\n  A_yield_expression_is_only_allowed_in_a_generator_body: diag(1163, 1 /* Error */, \"A_yield_expression_is_only_allowed_in_a_generator_body_1163\", \"A 'yield' expression is only allowed in a generator body.\"),\n  Computed_property_names_are_not_allowed_in_enums: diag(1164, 1 /* Error */, \"Computed_property_names_are_not_allowed_in_enums_1164\", \"Computed property names are not allowed in enums.\"),\n  A_computed_property_name_in_an_ambient_context_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type: diag(1165, 1 /* Error */, \"A_computed_property_name_in_an_ambient_context_must_refer_to_an_expression_whose_type_is_a_literal_t_1165\", \"A computed property name in an ambient context must refer to an expression whose type is a literal type or a 'unique symbol' type.\"),\n  A_computed_property_name_in_a_class_property_declaration_must_have_a_simple_literal_type_or_a_unique_symbol_type: diag(1166, 1 /* Error */, \"A_computed_property_name_in_a_class_property_declaration_must_have_a_simple_literal_type_or_a_unique_1166\", \"A computed property name in a class property declaration must have a simple literal type or a 'unique symbol' type.\"),\n  A_computed_property_name_in_a_method_overload_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type: diag(1168, 1 /* Error */, \"A_computed_property_name_in_a_method_overload_must_refer_to_an_expression_whose_type_is_a_literal_ty_1168\", \"A computed property name in a method overload must refer to an expression whose type is a literal type or a 'unique symbol' type.\"),\n  A_computed_property_name_in_an_interface_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type: diag(1169, 1 /* Error */, \"A_computed_property_name_in_an_interface_must_refer_to_an_expression_whose_type_is_a_literal_type_or_1169\", \"A computed property name in an interface must refer to an expression whose type is a literal type or a 'unique symbol' type.\"),\n  A_computed_property_name_in_a_type_literal_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type: diag(1170, 1 /* Error */, \"A_computed_property_name_in_a_type_literal_must_refer_to_an_expression_whose_type_is_a_literal_type__1170\", \"A computed property name in a type literal must refer to an expression whose type is a literal type or a 'unique symbol' type.\"),\n  A_comma_expression_is_not_allowed_in_a_computed_property_name: diag(1171, 1 /* Error */, \"A_comma_expression_is_not_allowed_in_a_computed_property_name_1171\", \"A comma expression is not allowed in a computed property name.\"),\n  extends_clause_already_seen: diag(1172, 1 /* Error */, \"extends_clause_already_seen_1172\", \"'extends' clause already seen.\"),\n  extends_clause_must_precede_implements_clause: diag(1173, 1 /* Error */, \"extends_clause_must_precede_implements_clause_1173\", \"'extends' clause must precede 'implements' clause.\"),\n  Classes_can_only_extend_a_single_class: diag(1174, 1 /* Error */, \"Classes_can_only_extend_a_single_class_1174\", \"Classes can only extend a single class.\"),\n  implements_clause_already_seen: diag(1175, 1 /* Error */, \"implements_clause_already_seen_1175\", \"'implements' clause already seen.\"),\n  Interface_declaration_cannot_have_implements_clause: diag(1176, 1 /* Error */, \"Interface_declaration_cannot_have_implements_clause_1176\", \"Interface declaration cannot have 'implements' clause.\"),\n  Binary_digit_expected: diag(1177, 1 /* Error */, \"Binary_digit_expected_1177\", \"Binary digit expected.\"),\n  Octal_digit_expected: diag(1178, 1 /* Error */, \"Octal_digit_expected_1178\", \"Octal digit expected.\"),\n  Unexpected_token_expected: diag(1179, 1 /* Error */, \"Unexpected_token_expected_1179\", \"Unexpected token. '{' expected.\"),\n  Property_destructuring_pattern_expected: diag(1180, 1 /* Error */, \"Property_destructuring_pattern_expected_1180\", \"Property destructuring pattern expected.\"),\n  Array_element_destructuring_pattern_expected: diag(1181, 1 /* Error */, \"Array_element_destructuring_pattern_expected_1181\", \"Array element destructuring pattern expected.\"),\n  A_destructuring_declaration_must_have_an_initializer: diag(1182, 1 /* Error */, \"A_destructuring_declaration_must_have_an_initializer_1182\", \"A destructuring declaration must have an initializer.\"),\n  An_implementation_cannot_be_declared_in_ambient_contexts: diag(1183, 1 /* Error */, \"An_implementation_cannot_be_declared_in_ambient_contexts_1183\", \"An implementation cannot be declared in ambient contexts.\"),\n  Modifiers_cannot_appear_here: diag(1184, 1 /* Error */, \"Modifiers_cannot_appear_here_1184\", \"Modifiers cannot appear here.\"),\n  Merge_conflict_marker_encountered: diag(1185, 1 /* Error */, \"Merge_conflict_marker_encountered_1185\", \"Merge conflict marker encountered.\"),\n  A_rest_element_cannot_have_an_initializer: diag(1186, 1 /* Error */, \"A_rest_element_cannot_have_an_initializer_1186\", \"A rest element cannot have an initializer.\"),\n  A_parameter_property_may_not_be_declared_using_a_binding_pattern: diag(1187, 1 /* Error */, \"A_parameter_property_may_not_be_declared_using_a_binding_pattern_1187\", \"A parameter property may not be declared using a binding pattern.\"),\n  Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement: diag(1188, 1 /* Error */, \"Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement_1188\", \"Only a single variable declaration is allowed in a 'for...of' statement.\"),\n  The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer: diag(1189, 1 /* Error */, \"The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer_1189\", \"The variable declaration of a 'for...in' statement cannot have an initializer.\"),\n  The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer: diag(1190, 1 /* Error */, \"The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer_1190\", \"The variable declaration of a 'for...of' statement cannot have an initializer.\"),\n  An_import_declaration_cannot_have_modifiers: diag(1191, 1 /* Error */, \"An_import_declaration_cannot_have_modifiers_1191\", \"An import declaration cannot have modifiers.\"),\n  Module_0_has_no_default_export: diag(1192, 1 /* Error */, \"Module_0_has_no_default_export_1192\", \"Module '{0}' has no default export.\"),\n  An_export_declaration_cannot_have_modifiers: diag(1193, 1 /* Error */, \"An_export_declaration_cannot_have_modifiers_1193\", \"An export declaration cannot have modifiers.\"),\n  Export_declarations_are_not_permitted_in_a_namespace: diag(1194, 1 /* Error */, \"Export_declarations_are_not_permitted_in_a_namespace_1194\", \"Export declarations are not permitted in a namespace.\"),\n  export_Asterisk_does_not_re_export_a_default: diag(1195, 1 /* Error */, \"export_Asterisk_does_not_re_export_a_default_1195\", \"'export *' does not re-export a default.\"),\n  Catch_clause_variable_type_annotation_must_be_any_or_unknown_if_specified: diag(1196, 1 /* Error */, \"Catch_clause_variable_type_annotation_must_be_any_or_unknown_if_specified_1196\", \"Catch clause variable type annotation must be 'any' or 'unknown' if specified.\"),\n  Catch_clause_variable_cannot_have_an_initializer: diag(1197, 1 /* Error */, \"Catch_clause_variable_cannot_have_an_initializer_1197\", \"Catch clause variable cannot have an initializer.\"),\n  An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive: diag(1198, 1 /* Error */, \"An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive_1198\", \"An extended Unicode escape value must be between 0x0 and 0x10FFFF inclusive.\"),\n  Unterminated_Unicode_escape_sequence: diag(1199, 1 /* Error */, \"Unterminated_Unicode_escape_sequence_1199\", \"Unterminated Unicode escape sequence.\"),\n  Line_terminator_not_permitted_before_arrow: diag(1200, 1 /* Error */, \"Line_terminator_not_permitted_before_arrow_1200\", \"Line terminator not permitted before arrow.\"),\n  Import_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_import_Asterisk_as_ns_from_mod_import_a_from_mod_import_d_from_mod_or_another_module_format_instead: diag(1202, 1 /* Error */, \"Import_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_import_Asterisk_as_1202\", `Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from \"mod\"', 'import {a} from \"mod\"', 'import d from \"mod\"', or another module format instead.`),\n  Export_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_export_default_or_another_module_format_instead: diag(1203, 1 /* Error */, \"Export_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_export_default_or__1203\", \"Export assignment cannot be used when targeting ECMAScript modules. Consider using 'export default' or another module format instead.\"),\n  Re_exporting_a_type_when_0_is_enabled_requires_using_export_type: diag(1205, 1 /* Error */, \"Re_exporting_a_type_when_0_is_enabled_requires_using_export_type_1205\", \"Re-exporting a type when '{0}' is enabled requires using 'export type'.\"),\n  Decorators_are_not_valid_here: diag(1206, 1 /* Error */, \"Decorators_are_not_valid_here_1206\", \"Decorators are not valid here.\"),\n  Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name: diag(1207, 1 /* Error */, \"Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name_1207\", \"Decorators cannot be applied to multiple get/set accessors of the same name.\"),\n  Invalid_optional_chain_from_new_expression_Did_you_mean_to_call_0: diag(1209, 1 /* Error */, \"Invalid_optional_chain_from_new_expression_Did_you_mean_to_call_0_1209\", \"Invalid optional chain from new expression. Did you mean to call '{0}()'?\"),\n  Code_contained_in_a_class_is_evaluated_in_JavaScript_s_strict_mode_which_does_not_allow_this_use_of_0_For_more_information_see_https_Colon_Slash_Slashdeveloper_mozilla_org_Slashen_US_Slashdocs_SlashWeb_SlashJavaScript_SlashReference_SlashStrict_mode: diag(1210, 1 /* Error */, \"Code_contained_in_a_class_is_evaluated_in_JavaScript_s_strict_mode_which_does_not_allow_this_use_of__1210\", \"Code contained in a class is evaluated in JavaScript's strict mode which does not allow this use of '{0}'. For more information, see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode.\"),\n  A_class_declaration_without_the_default_modifier_must_have_a_name: diag(1211, 1 /* Error */, \"A_class_declaration_without_the_default_modifier_must_have_a_name_1211\", \"A class declaration without the 'default' modifier must have a name.\"),\n  Identifier_expected_0_is_a_reserved_word_in_strict_mode: diag(1212, 1 /* Error */, \"Identifier_expected_0_is_a_reserved_word_in_strict_mode_1212\", \"Identifier expected. '{0}' is a reserved word in strict mode.\"),\n  Identifier_expected_0_is_a_reserved_word_in_strict_mode_Class_definitions_are_automatically_in_strict_mode: diag(1213, 1 /* Error */, \"Identifier_expected_0_is_a_reserved_word_in_strict_mode_Class_definitions_are_automatically_in_stric_1213\", \"Identifier expected. '{0}' is a reserved word in strict mode. Class definitions are automatically in strict mode.\"),\n  Identifier_expected_0_is_a_reserved_word_in_strict_mode_Modules_are_automatically_in_strict_mode: diag(1214, 1 /* Error */, \"Identifier_expected_0_is_a_reserved_word_in_strict_mode_Modules_are_automatically_in_strict_mode_1214\", \"Identifier expected. '{0}' is a reserved word in strict mode. Modules are automatically in strict mode.\"),\n  Invalid_use_of_0_Modules_are_automatically_in_strict_mode: diag(1215, 1 /* Error */, \"Invalid_use_of_0_Modules_are_automatically_in_strict_mode_1215\", \"Invalid use of '{0}'. Modules are automatically in strict mode.\"),\n  Identifier_expected_esModule_is_reserved_as_an_exported_marker_when_transforming_ECMAScript_modules: diag(1216, 1 /* Error */, \"Identifier_expected_esModule_is_reserved_as_an_exported_marker_when_transforming_ECMAScript_modules_1216\", \"Identifier expected. '__esModule' is reserved as an exported marker when transforming ECMAScript modules.\"),\n  Export_assignment_is_not_supported_when_module_flag_is_system: diag(1218, 1 /* Error */, \"Export_assignment_is_not_supported_when_module_flag_is_system_1218\", \"Export assignment is not supported when '--module' flag is 'system'.\"),\n  Generators_are_not_allowed_in_an_ambient_context: diag(1221, 1 /* Error */, \"Generators_are_not_allowed_in_an_ambient_context_1221\", \"Generators are not allowed in an ambient context.\"),\n  An_overload_signature_cannot_be_declared_as_a_generator: diag(1222, 1 /* Error */, \"An_overload_signature_cannot_be_declared_as_a_generator_1222\", \"An overload signature cannot be declared as a generator.\"),\n  _0_tag_already_specified: diag(1223, 1 /* Error */, \"_0_tag_already_specified_1223\", \"'{0}' tag already specified.\"),\n  Signature_0_must_be_a_type_predicate: diag(1224, 1 /* Error */, \"Signature_0_must_be_a_type_predicate_1224\", \"Signature '{0}' must be a type predicate.\"),\n  Cannot_find_parameter_0: diag(1225, 1 /* Error */, \"Cannot_find_parameter_0_1225\", \"Cannot find parameter '{0}'.\"),\n  Type_predicate_0_is_not_assignable_to_1: diag(1226, 1 /* Error */, \"Type_predicate_0_is_not_assignable_to_1_1226\", \"Type predicate '{0}' is not assignable to '{1}'.\"),\n  Parameter_0_is_not_in_the_same_position_as_parameter_1: diag(1227, 1 /* Error */, \"Parameter_0_is_not_in_the_same_position_as_parameter_1_1227\", \"Parameter '{0}' is not in the same position as parameter '{1}'.\"),\n  A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods: diag(1228, 1 /* Error */, \"A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods_1228\", \"A type predicate is only allowed in return type position for functions and methods.\"),\n  A_type_predicate_cannot_reference_a_rest_parameter: diag(1229, 1 /* Error */, \"A_type_predicate_cannot_reference_a_rest_parameter_1229\", \"A type predicate cannot reference a rest parameter.\"),\n  A_type_predicate_cannot_reference_element_0_in_a_binding_pattern: diag(1230, 1 /* Error */, \"A_type_predicate_cannot_reference_element_0_in_a_binding_pattern_1230\", \"A type predicate cannot reference element '{0}' in a binding pattern.\"),\n  An_export_assignment_must_be_at_the_top_level_of_a_file_or_module_declaration: diag(1231, 1 /* Error */, \"An_export_assignment_must_be_at_the_top_level_of_a_file_or_module_declaration_1231\", \"An export assignment must be at the top level of a file or module declaration.\"),\n  An_import_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module: diag(1232, 1 /* Error */, \"An_import_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module_1232\", \"An import declaration can only be used at the top level of a namespace or module.\"),\n  An_export_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module: diag(1233, 1 /* Error */, \"An_export_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module_1233\", \"An export declaration can only be used at the top level of a namespace or module.\"),\n  An_ambient_module_declaration_is_only_allowed_at_the_top_level_in_a_file: diag(1234, 1 /* Error */, \"An_ambient_module_declaration_is_only_allowed_at_the_top_level_in_a_file_1234\", \"An ambient module declaration is only allowed at the top level in a file.\"),\n  A_namespace_declaration_is_only_allowed_at_the_top_level_of_a_namespace_or_module: diag(1235, 1 /* Error */, \"A_namespace_declaration_is_only_allowed_at_the_top_level_of_a_namespace_or_module_1235\", \"A namespace declaration is only allowed at the top level of a namespace or module.\"),\n  The_return_type_of_a_property_decorator_function_must_be_either_void_or_any: diag(1236, 1 /* Error */, \"The_return_type_of_a_property_decorator_function_must_be_either_void_or_any_1236\", \"The return type of a property decorator function must be either 'void' or 'any'.\"),\n  The_return_type_of_a_parameter_decorator_function_must_be_either_void_or_any: diag(1237, 1 /* Error */, \"The_return_type_of_a_parameter_decorator_function_must_be_either_void_or_any_1237\", \"The return type of a parameter decorator function must be either 'void' or 'any'.\"),\n  Unable_to_resolve_signature_of_class_decorator_when_called_as_an_expression: diag(1238, 1 /* Error */, \"Unable_to_resolve_signature_of_class_decorator_when_called_as_an_expression_1238\", \"Unable to resolve signature of class decorator when called as an expression.\"),\n  Unable_to_resolve_signature_of_parameter_decorator_when_called_as_an_expression: diag(1239, 1 /* Error */, \"Unable_to_resolve_signature_of_parameter_decorator_when_called_as_an_expression_1239\", \"Unable to resolve signature of parameter decorator when called as an expression.\"),\n  Unable_to_resolve_signature_of_property_decorator_when_called_as_an_expression: diag(1240, 1 /* Error */, \"Unable_to_resolve_signature_of_property_decorator_when_called_as_an_expression_1240\", \"Unable to resolve signature of property decorator when called as an expression.\"),\n  Unable_to_resolve_signature_of_method_decorator_when_called_as_an_expression: diag(1241, 1 /* Error */, \"Unable_to_resolve_signature_of_method_decorator_when_called_as_an_expression_1241\", \"Unable to resolve signature of method decorator when called as an expression.\"),\n  abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration: diag(1242, 1 /* Error */, \"abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration_1242\", \"'abstract' modifier can only appear on a class, method, or property declaration.\"),\n  _0_modifier_cannot_be_used_with_1_modifier: diag(1243, 1 /* Error */, \"_0_modifier_cannot_be_used_with_1_modifier_1243\", \"'{0}' modifier cannot be used with '{1}' modifier.\"),\n  Abstract_methods_can_only_appear_within_an_abstract_class: diag(1244, 1 /* Error */, \"Abstract_methods_can_only_appear_within_an_abstract_class_1244\", \"Abstract methods can only appear within an abstract class.\"),\n  Method_0_cannot_have_an_implementation_because_it_is_marked_abstract: diag(1245, 1 /* Error */, \"Method_0_cannot_have_an_implementation_because_it_is_marked_abstract_1245\", \"Method '{0}' cannot have an implementation because it is marked abstract.\"),\n  An_interface_property_cannot_have_an_initializer: diag(1246, 1 /* Error */, \"An_interface_property_cannot_have_an_initializer_1246\", \"An interface property cannot have an initializer.\"),\n  A_type_literal_property_cannot_have_an_initializer: diag(1247, 1 /* Error */, \"A_type_literal_property_cannot_have_an_initializer_1247\", \"A type literal property cannot have an initializer.\"),\n  A_class_member_cannot_have_the_0_keyword: diag(1248, 1 /* Error */, \"A_class_member_cannot_have_the_0_keyword_1248\", \"A class member cannot have the '{0}' keyword.\"),\n  A_decorator_can_only_decorate_a_method_implementation_not_an_overload: diag(1249, 1 /* Error */, \"A_decorator_can_only_decorate_a_method_implementation_not_an_overload_1249\", \"A decorator can only decorate a method implementation, not an overload.\"),\n  Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5: diag(1250, 1 /* Error */, \"Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5_1250\", \"Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'.\"),\n  Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5_Class_definitions_are_automatically_in_strict_mode: diag(1251, 1 /* Error */, \"Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5_Class_definiti_1251\", \"Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'. Class definitions are automatically in strict mode.\"),\n  Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5_Modules_are_automatically_in_strict_mode: diag(1252, 1 /* Error */, \"Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5_Modules_are_au_1252\", \"Function declarations are not allowed inside blocks in strict mode when targeting 'ES5'. Modules are automatically in strict mode.\"),\n  Abstract_properties_can_only_appear_within_an_abstract_class: diag(1253, 1 /* Error */, \"Abstract_properties_can_only_appear_within_an_abstract_class_1253\", \"Abstract properties can only appear within an abstract class.\"),\n  A_const_initializer_in_an_ambient_context_must_be_a_string_or_numeric_literal_or_literal_enum_reference: diag(1254, 1 /* Error */, \"A_const_initializer_in_an_ambient_context_must_be_a_string_or_numeric_literal_or_literal_enum_refere_1254\", \"A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.\"),\n  A_definite_assignment_assertion_is_not_permitted_in_this_context: diag(1255, 1 /* Error */, \"A_definite_assignment_assertion_is_not_permitted_in_this_context_1255\", \"A definite assignment assertion '!' is not permitted in this context.\"),\n  A_required_element_cannot_follow_an_optional_element: diag(1257, 1 /* Error */, \"A_required_element_cannot_follow_an_optional_element_1257\", \"A required element cannot follow an optional element.\"),\n  A_default_export_must_be_at_the_top_level_of_a_file_or_module_declaration: diag(1258, 1 /* Error */, \"A_default_export_must_be_at_the_top_level_of_a_file_or_module_declaration_1258\", \"A default export must be at the top level of a file or module declaration.\"),\n  Module_0_can_only_be_default_imported_using_the_1_flag: diag(1259, 1 /* Error */, \"Module_0_can_only_be_default_imported_using_the_1_flag_1259\", \"Module '{0}' can only be default-imported using the '{1}' flag\"),\n  Keywords_cannot_contain_escape_characters: diag(1260, 1 /* Error */, \"Keywords_cannot_contain_escape_characters_1260\", \"Keywords cannot contain escape characters.\"),\n  Already_included_file_name_0_differs_from_file_name_1_only_in_casing: diag(1261, 1 /* Error */, \"Already_included_file_name_0_differs_from_file_name_1_only_in_casing_1261\", \"Already included file name '{0}' differs from file name '{1}' only in casing.\"),\n  Identifier_expected_0_is_a_reserved_word_at_the_top_level_of_a_module: diag(1262, 1 /* Error */, \"Identifier_expected_0_is_a_reserved_word_at_the_top_level_of_a_module_1262\", \"Identifier expected. '{0}' is a reserved word at the top-level of a module.\"),\n  Declarations_with_initializers_cannot_also_have_definite_assignment_assertions: diag(1263, 1 /* Error */, \"Declarations_with_initializers_cannot_also_have_definite_assignment_assertions_1263\", \"Declarations with initializers cannot also have definite assignment assertions.\"),\n  Declarations_with_definite_assignment_assertions_must_also_have_type_annotations: diag(1264, 1 /* Error */, \"Declarations_with_definite_assignment_assertions_must_also_have_type_annotations_1264\", \"Declarations with definite assignment assertions must also have type annotations.\"),\n  A_rest_element_cannot_follow_another_rest_element: diag(1265, 1 /* Error */, \"A_rest_element_cannot_follow_another_rest_element_1265\", \"A rest element cannot follow another rest element.\"),\n  An_optional_element_cannot_follow_a_rest_element: diag(1266, 1 /* Error */, \"An_optional_element_cannot_follow_a_rest_element_1266\", \"An optional element cannot follow a rest element.\"),\n  Property_0_cannot_have_an_initializer_because_it_is_marked_abstract: diag(1267, 1 /* Error */, \"Property_0_cannot_have_an_initializer_because_it_is_marked_abstract_1267\", \"Property '{0}' cannot have an initializer because it is marked abstract.\"),\n  An_index_signature_parameter_type_must_be_string_number_symbol_or_a_template_literal_type: diag(1268, 1 /* Error */, \"An_index_signature_parameter_type_must_be_string_number_symbol_or_a_template_literal_type_1268\", \"An index signature parameter type must be 'string', 'number', 'symbol', or a template literal type.\"),\n  Cannot_use_export_import_on_a_type_or_type_only_namespace_when_0_is_enabled: diag(1269, 1 /* Error */, \"Cannot_use_export_import_on_a_type_or_type_only_namespace_when_0_is_enabled_1269\", \"Cannot use 'export import' on a type or type-only namespace when '{0}' is enabled.\"),\n  Decorator_function_return_type_0_is_not_assignable_to_type_1: diag(1270, 1 /* Error */, \"Decorator_function_return_type_0_is_not_assignable_to_type_1_1270\", \"Decorator function return type '{0}' is not assignable to type '{1}'.\"),\n  Decorator_function_return_type_is_0_but_is_expected_to_be_void_or_any: diag(1271, 1 /* Error */, \"Decorator_function_return_type_is_0_but_is_expected_to_be_void_or_any_1271\", \"Decorator function return type is '{0}' but is expected to be 'void' or 'any'.\"),\n  A_type_referenced_in_a_decorated_signature_must_be_imported_with_import_type_or_a_namespace_import_when_isolatedModules_and_emitDecoratorMetadata_are_enabled: diag(1272, 1 /* Error */, \"A_type_referenced_in_a_decorated_signature_must_be_imported_with_import_type_or_a_namespace_import_w_1272\", \"A type referenced in a decorated signature must be imported with 'import type' or a namespace import when 'isolatedModules' and 'emitDecoratorMetadata' are enabled.\"),\n  _0_modifier_cannot_appear_on_a_type_parameter: diag(1273, 1 /* Error */, \"_0_modifier_cannot_appear_on_a_type_parameter_1273\", \"'{0}' modifier cannot appear on a type parameter\"),\n  _0_modifier_can_only_appear_on_a_type_parameter_of_a_class_interface_or_type_alias: diag(1274, 1 /* Error */, \"_0_modifier_can_only_appear_on_a_type_parameter_of_a_class_interface_or_type_alias_1274\", \"'{0}' modifier can only appear on a type parameter of a class, interface or type alias\"),\n  accessor_modifier_can_only_appear_on_a_property_declaration: diag(1275, 1 /* Error */, \"accessor_modifier_can_only_appear_on_a_property_declaration_1275\", \"'accessor' modifier can only appear on a property declaration.\"),\n  An_accessor_property_cannot_be_declared_optional: diag(1276, 1 /* Error */, \"An_accessor_property_cannot_be_declared_optional_1276\", \"An 'accessor' property cannot be declared optional.\"),\n  _0_modifier_can_only_appear_on_a_type_parameter_of_a_function_method_or_class: diag(1277, 1 /* Error */, \"_0_modifier_can_only_appear_on_a_type_parameter_of_a_function_method_or_class_1277\", \"'{0}' modifier can only appear on a type parameter of a function, method or class\"),\n  The_runtime_will_invoke_the_decorator_with_1_arguments_but_the_decorator_expects_0: diag(1278, 1 /* Error */, \"The_runtime_will_invoke_the_decorator_with_1_arguments_but_the_decorator_expects_0_1278\", \"The runtime will invoke the decorator with {1} arguments, but the decorator expects {0}.\"),\n  The_runtime_will_invoke_the_decorator_with_1_arguments_but_the_decorator_expects_at_least_0: diag(1279, 1 /* Error */, \"The_runtime_will_invoke_the_decorator_with_1_arguments_but_the_decorator_expects_at_least_0_1279\", \"The runtime will invoke the decorator with {1} arguments, but the decorator expects at least {0}.\"),\n  Namespaces_are_not_allowed_in_global_script_files_when_0_is_enabled_If_this_file_is_not_intended_to_be_a_global_script_set_moduleDetection_to_force_or_add_an_empty_export_statement: diag(1280, 1 /* Error */, \"Namespaces_are_not_allowed_in_global_script_files_when_0_is_enabled_If_this_file_is_not_intended_to__1280\", \"Namespaces are not allowed in global script files when '{0}' is enabled. If this file is not intended to be a global script, set 'moduleDetection' to 'force' or add an empty 'export {}' statement.\"),\n  Cannot_access_0_from_another_file_without_qualification_when_1_is_enabled_Use_2_instead: diag(1281, 1 /* Error */, \"Cannot_access_0_from_another_file_without_qualification_when_1_is_enabled_Use_2_instead_1281\", \"Cannot access '{0}' from another file without qualification when '{1}' is enabled. Use '{2}' instead.\"),\n  An_export_declaration_must_reference_a_value_when_verbatimModuleSyntax_is_enabled_but_0_only_refers_to_a_type: diag(1282, 1 /* Error */, \"An_export_declaration_must_reference_a_value_when_verbatimModuleSyntax_is_enabled_but_0_only_refers__1282\", \"An 'export =' declaration must reference a value when 'verbatimModuleSyntax' is enabled, but '{0}' only refers to a type.\"),\n  An_export_declaration_must_reference_a_real_value_when_verbatimModuleSyntax_is_enabled_but_0_resolves_to_a_type_only_declaration: diag(1283, 1 /* Error */, \"An_export_declaration_must_reference_a_real_value_when_verbatimModuleSyntax_is_enabled_but_0_resolve_1283\", \"An 'export =' declaration must reference a real value when 'verbatimModuleSyntax' is enabled, but '{0}' resolves to a type-only declaration.\"),\n  An_export_default_must_reference_a_value_when_verbatimModuleSyntax_is_enabled_but_0_only_refers_to_a_type: diag(1284, 1 /* Error */, \"An_export_default_must_reference_a_value_when_verbatimModuleSyntax_is_enabled_but_0_only_refers_to_a_1284\", \"An 'export default' must reference a value when 'verbatimModuleSyntax' is enabled, but '{0}' only refers to a type.\"),\n  An_export_default_must_reference_a_real_value_when_verbatimModuleSyntax_is_enabled_but_0_resolves_to_a_type_only_declaration: diag(1285, 1 /* Error */, \"An_export_default_must_reference_a_real_value_when_verbatimModuleSyntax_is_enabled_but_0_resolves_to_1285\", \"An 'export default' must reference a real value when 'verbatimModuleSyntax' is enabled, but '{0}' resolves to a type-only declaration.\"),\n  ECMAScript_imports_and_exports_cannot_be_written_in_a_CommonJS_file_under_verbatimModuleSyntax: diag(1286, 1 /* Error */, \"ECMAScript_imports_and_exports_cannot_be_written_in_a_CommonJS_file_under_verbatimModuleSyntax_1286\", \"ECMAScript imports and exports cannot be written in a CommonJS file under 'verbatimModuleSyntax'.\"),\n  A_top_level_export_modifier_cannot_be_used_on_value_declarations_in_a_CommonJS_module_when_verbatimModuleSyntax_is_enabled: diag(1287, 1 /* Error */, \"A_top_level_export_modifier_cannot_be_used_on_value_declarations_in_a_CommonJS_module_when_verbatimM_1287\", \"A top-level 'export' modifier cannot be used on value declarations in a CommonJS module when 'verbatimModuleSyntax' is enabled.\"),\n  An_import_alias_cannot_resolve_to_a_type_or_type_only_declaration_when_verbatimModuleSyntax_is_enabled: diag(1288, 1 /* Error */, \"An_import_alias_cannot_resolve_to_a_type_or_type_only_declaration_when_verbatimModuleSyntax_is_enabl_1288\", \"An import alias cannot resolve to a type or type-only declaration when 'verbatimModuleSyntax' is enabled.\"),\n  _0_resolves_to_a_type_only_declaration_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enabled_Consider_using_import_type_where_0_is_imported: diag(1289, 1 /* Error */, \"_0_resolves_to_a_type_only_declaration_and_must_be_marked_type_only_in_this_file_before_re_exporting_1289\", \"'{0}' resolves to a type-only declaration and must be marked type-only in this file before re-exporting when '{1}' is enabled. Consider using 'import type' where '{0}' is imported.\"),\n  _0_resolves_to_a_type_only_declaration_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enabled_Consider_using_export_type_0_as_default: diag(1290, 1 /* Error */, \"_0_resolves_to_a_type_only_declaration_and_must_be_marked_type_only_in_this_file_before_re_exporting_1290\", \"'{0}' resolves to a type-only declaration and must be marked type-only in this file before re-exporting when '{1}' is enabled. Consider using 'export type { {0} as default }'.\"),\n  _0_resolves_to_a_type_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enabled_Consider_using_import_type_where_0_is_imported: diag(1291, 1 /* Error */, \"_0_resolves_to_a_type_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enable_1291\", \"'{0}' resolves to a type and must be marked type-only in this file before re-exporting when '{1}' is enabled. Consider using 'import type' where '{0}' is imported.\"),\n  _0_resolves_to_a_type_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enabled_Consider_using_export_type_0_as_default: diag(1292, 1 /* Error */, \"_0_resolves_to_a_type_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enable_1292\", \"'{0}' resolves to a type and must be marked type-only in this file before re-exporting when '{1}' is enabled. Consider using 'export type { {0} as default }'.\"),\n  ECMAScript_module_syntax_is_not_allowed_in_a_CommonJS_module_when_module_is_set_to_preserve: diag(1293, 1 /* Error */, \"ECMAScript_module_syntax_is_not_allowed_in_a_CommonJS_module_when_module_is_set_to_preserve_1293\", \"ECMAScript module syntax is not allowed in a CommonJS module when 'module' is set to 'preserve'.\"),\n  This_syntax_is_not_allowed_when_erasableSyntaxOnly_is_enabled: diag(1294, 1 /* Error */, \"This_syntax_is_not_allowed_when_erasableSyntaxOnly_is_enabled_1294\", \"This syntax is not allowed when 'erasableSyntaxOnly' is enabled.\"),\n  ECMAScript_imports_and_exports_cannot_be_written_in_a_CommonJS_file_under_verbatimModuleSyntax_Adjust_the_type_field_in_the_nearest_package_json_to_make_this_file_an_ECMAScript_module_or_adjust_your_verbatimModuleSyntax_module_and_moduleResolution_settings_in_TypeScript: diag(1295, 1 /* Error */, \"ECMAScript_imports_and_exports_cannot_be_written_in_a_CommonJS_file_under_verbatimModuleSyntax_Adjus_1295\", \"ECMAScript imports and exports cannot be written in a CommonJS file under 'verbatimModuleSyntax'. Adjust the 'type' field in the nearest 'package.json' to make this file an ECMAScript module, or adjust your 'verbatimModuleSyntax', 'module', and 'moduleResolution' settings in TypeScript.\"),\n  with_statements_are_not_allowed_in_an_async_function_block: diag(1300, 1 /* Error */, \"with_statements_are_not_allowed_in_an_async_function_block_1300\", \"'with' statements are not allowed in an async function block.\"),\n  await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules: diag(1308, 1 /* Error */, \"await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules_1308\", \"'await' expressions are only allowed within async functions and at the top levels of modules.\"),\n  The_current_file_is_a_CommonJS_module_and_cannot_use_await_at_the_top_level: diag(1309, 1 /* Error */, \"The_current_file_is_a_CommonJS_module_and_cannot_use_await_at_the_top_level_1309\", \"The current file is a CommonJS module and cannot use 'await' at the top level.\"),\n  Did_you_mean_to_use_a_Colon_An_can_only_follow_a_property_name_when_the_containing_object_literal_is_part_of_a_destructuring_pattern: diag(1312, 1 /* Error */, \"Did_you_mean_to_use_a_Colon_An_can_only_follow_a_property_name_when_the_containing_object_literal_is_1312\", \"Did you mean to use a ':'? An '=' can only follow a property name when the containing object literal is part of a destructuring pattern.\"),\n  The_body_of_an_if_statement_cannot_be_the_empty_statement: diag(1313, 1 /* Error */, \"The_body_of_an_if_statement_cannot_be_the_empty_statement_1313\", \"The body of an 'if' statement cannot be the empty statement.\"),\n  Global_module_exports_may_only_appear_in_module_files: diag(1314, 1 /* Error */, \"Global_module_exports_may_only_appear_in_module_files_1314\", \"Global module exports may only appear in module files.\"),\n  Global_module_exports_may_only_appear_in_declaration_files: diag(1315, 1 /* Error */, \"Global_module_exports_may_only_appear_in_declaration_files_1315\", \"Global module exports may only appear in declaration files.\"),\n  Global_module_exports_may_only_appear_at_top_level: diag(1316, 1 /* Error */, \"Global_module_exports_may_only_appear_at_top_level_1316\", \"Global module exports may only appear at top level.\"),\n  A_parameter_property_cannot_be_declared_using_a_rest_parameter: diag(1317, 1 /* Error */, \"A_parameter_property_cannot_be_declared_using_a_rest_parameter_1317\", \"A parameter property cannot be declared using a rest parameter.\"),\n  An_abstract_accessor_cannot_have_an_implementation: diag(1318, 1 /* Error */, \"An_abstract_accessor_cannot_have_an_implementation_1318\", \"An abstract accessor cannot have an implementation.\"),\n  A_default_export_can_only_be_used_in_an_ECMAScript_style_module: diag(1319, 1 /* Error */, \"A_default_export_can_only_be_used_in_an_ECMAScript_style_module_1319\", \"A default export can only be used in an ECMAScript-style module.\"),\n  Type_of_await_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member: diag(1320, 1 /* Error */, \"Type_of_await_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member_1320\", \"Type of 'await' operand must either be a valid promise or must not contain a callable 'then' member.\"),\n  Type_of_yield_operand_in_an_async_generator_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member: diag(1321, 1 /* Error */, \"Type_of_yield_operand_in_an_async_generator_must_either_be_a_valid_promise_or_must_not_contain_a_cal_1321\", \"Type of 'yield' operand in an async generator must either be a valid promise or must not contain a callable 'then' member.\"),\n  Type_of_iterated_elements_of_a_yield_Asterisk_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member: diag(1322, 1 /* Error */, \"Type_of_iterated_elements_of_a_yield_Asterisk_operand_must_either_be_a_valid_promise_or_must_not_con_1322\", \"Type of iterated elements of a 'yield*' operand must either be a valid promise or must not contain a callable 'then' member.\"),\n  Dynamic_imports_are_only_supported_when_the_module_flag_is_set_to_es2020_es2022_esnext_commonjs_amd_system_umd_node16_node18_node20_or_nodenext: diag(1323, 1 /* Error */, \"Dynamic_imports_are_only_supported_when_the_module_flag_is_set_to_es2020_es2022_esnext_commonjs_amd__1323\", \"Dynamic imports are only supported when the '--module' flag is set to 'es2020', 'es2022', 'esnext', 'commonjs', 'amd', 'system', 'umd', 'node16', 'node18', 'node20', or 'nodenext'.\"),\n  Dynamic_imports_only_support_a_second_argument_when_the_module_option_is_set_to_esnext_node16_node18_node20_nodenext_or_preserve: diag(1324, 1 /* Error */, \"Dynamic_imports_only_support_a_second_argument_when_the_module_option_is_set_to_esnext_node16_node18_1324\", \"Dynamic imports only support a second argument when the '--module' option is set to 'esnext', 'node16', 'node18', 'node20', 'nodenext', or 'preserve'.\"),\n  Argument_of_dynamic_import_cannot_be_spread_element: diag(1325, 1 /* Error */, \"Argument_of_dynamic_import_cannot_be_spread_element_1325\", \"Argument of dynamic import cannot be spread element.\"),\n  This_use_of_import_is_invalid_import_calls_can_be_written_but_they_must_have_parentheses_and_cannot_have_type_arguments: diag(1326, 1 /* Error */, \"This_use_of_import_is_invalid_import_calls_can_be_written_but_they_must_have_parentheses_and_cannot__1326\", \"This use of 'import' is invalid. 'import()' calls can be written, but they must have parentheses and cannot have type arguments.\"),\n  String_literal_with_double_quotes_expected: diag(1327, 1 /* Error */, \"String_literal_with_double_quotes_expected_1327\", \"String literal with double quotes expected.\"),\n  Property_value_can_only_be_string_literal_numeric_literal_true_false_null_object_literal_or_array_literal: diag(1328, 1 /* Error */, \"Property_value_can_only_be_string_literal_numeric_literal_true_false_null_object_literal_or_array_li_1328\", \"Property value can only be string literal, numeric literal, 'true', 'false', 'null', object literal or array literal.\"),\n  _0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write_0: diag(1329, 1 /* Error */, \"_0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write__1329\", \"'{0}' accepts too few arguments to be used as a decorator here. Did you mean to call it first and write '@{0}()'?\"),\n  A_property_of_an_interface_or_type_literal_whose_type_is_a_unique_symbol_type_must_be_readonly: diag(1330, 1 /* Error */, \"A_property_of_an_interface_or_type_literal_whose_type_is_a_unique_symbol_type_must_be_readonly_1330\", \"A property of an interface or type literal whose type is a 'unique symbol' type must be 'readonly'.\"),\n  A_property_of_a_class_whose_type_is_a_unique_symbol_type_must_be_both_static_and_readonly: diag(1331, 1 /* Error */, \"A_property_of_a_class_whose_type_is_a_unique_symbol_type_must_be_both_static_and_readonly_1331\", \"A property of a class whose type is a 'unique symbol' type must be both 'static' and 'readonly'.\"),\n  A_variable_whose_type_is_a_unique_symbol_type_must_be_const: diag(1332, 1 /* Error */, \"A_variable_whose_type_is_a_unique_symbol_type_must_be_const_1332\", \"A variable whose type is a 'unique symbol' type must be 'const'.\"),\n  unique_symbol_types_may_not_be_used_on_a_variable_declaration_with_a_binding_name: diag(1333, 1 /* Error */, \"unique_symbol_types_may_not_be_used_on_a_variable_declaration_with_a_binding_name_1333\", \"'unique symbol' types may not be used on a variable declaration with a binding name.\"),\n  unique_symbol_types_are_only_allowed_on_variables_in_a_variable_statement: diag(1334, 1 /* Error */, \"unique_symbol_types_are_only_allowed_on_variables_in_a_variable_statement_1334\", \"'unique symbol' types are only allowed on variables in a variable statement.\"),\n  unique_symbol_types_are_not_allowed_here: diag(1335, 1 /* Error */, \"unique_symbol_types_are_not_allowed_here_1335\", \"'unique symbol' types are not allowed here.\"),\n  An_index_signature_parameter_type_cannot_be_a_literal_type_or_generic_type_Consider_using_a_mapped_object_type_instead: diag(1337, 1 /* Error */, \"An_index_signature_parameter_type_cannot_be_a_literal_type_or_generic_type_Consider_using_a_mapped_o_1337\", \"An index signature parameter type cannot be a literal type or generic type. Consider using a mapped object type instead.\"),\n  infer_declarations_are_only_permitted_in_the_extends_clause_of_a_conditional_type: diag(1338, 1 /* Error */, \"infer_declarations_are_only_permitted_in_the_extends_clause_of_a_conditional_type_1338\", \"'infer' declarations are only permitted in the 'extends' clause of a conditional type.\"),\n  Module_0_does_not_refer_to_a_value_but_is_used_as_a_value_here: diag(1339, 1 /* Error */, \"Module_0_does_not_refer_to_a_value_but_is_used_as_a_value_here_1339\", \"Module '{0}' does not refer to a value, but is used as a value here.\"),\n  Module_0_does_not_refer_to_a_type_but_is_used_as_a_type_here_Did_you_mean_typeof_import_0: diag(1340, 1 /* Error */, \"Module_0_does_not_refer_to_a_type_but_is_used_as_a_type_here_Did_you_mean_typeof_import_0_1340\", \"Module '{0}' does not refer to a type, but is used as a type here. Did you mean 'typeof import('{0}')'?\"),\n  Class_constructor_may_not_be_an_accessor: diag(1341, 1 /* Error */, \"Class_constructor_may_not_be_an_accessor_1341\", \"Class constructor may not be an accessor.\"),\n  The_import_meta_meta_property_is_only_allowed_when_the_module_option_is_es2020_es2022_esnext_system_node16_node18_node20_or_nodenext: diag(1343, 1 /* Error */, \"The_import_meta_meta_property_is_only_allowed_when_the_module_option_is_es2020_es2022_esnext_system__1343\", \"The 'import.meta' meta-property is only allowed when the '--module' option is 'es2020', 'es2022', 'esnext', 'system', 'node16', 'node18', 'node20', or 'nodenext'.\"),\n  A_label_is_not_allowed_here: diag(1344, 1 /* Error */, \"A_label_is_not_allowed_here_1344\", \"'A label is not allowed here.\"),\n  An_expression_of_type_void_cannot_be_tested_for_truthiness: diag(1345, 1 /* Error */, \"An_expression_of_type_void_cannot_be_tested_for_truthiness_1345\", \"An expression of type 'void' cannot be tested for truthiness.\"),\n  This_parameter_is_not_allowed_with_use_strict_directive: diag(1346, 1 /* Error */, \"This_parameter_is_not_allowed_with_use_strict_directive_1346\", \"This parameter is not allowed with 'use strict' directive.\"),\n  use_strict_directive_cannot_be_used_with_non_simple_parameter_list: diag(1347, 1 /* Error */, \"use_strict_directive_cannot_be_used_with_non_simple_parameter_list_1347\", \"'use strict' directive cannot be used with non-simple parameter list.\"),\n  Non_simple_parameter_declared_here: diag(1348, 1 /* Error */, \"Non_simple_parameter_declared_here_1348\", \"Non-simple parameter declared here.\"),\n  use_strict_directive_used_here: diag(1349, 1 /* Error */, \"use_strict_directive_used_here_1349\", \"'use strict' directive used here.\"),\n  Print_the_final_configuration_instead_of_building: diag(1350, 3 /* Message */, \"Print_the_final_configuration_instead_of_building_1350\", \"Print the final configuration instead of building.\"),\n  An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal: diag(1351, 1 /* Error */, \"An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal_1351\", \"An identifier or keyword cannot immediately follow a numeric literal.\"),\n  A_bigint_literal_cannot_use_exponential_notation: diag(1352, 1 /* Error */, \"A_bigint_literal_cannot_use_exponential_notation_1352\", \"A bigint literal cannot use exponential notation.\"),\n  A_bigint_literal_must_be_an_integer: diag(1353, 1 /* Error */, \"A_bigint_literal_must_be_an_integer_1353\", \"A bigint literal must be an integer.\"),\n  readonly_type_modifier_is_only_permitted_on_array_and_tuple_literal_types: diag(1354, 1 /* Error */, \"readonly_type_modifier_is_only_permitted_on_array_and_tuple_literal_types_1354\", \"'readonly' type modifier is only permitted on array and tuple literal types.\"),\n  A_const_assertions_can_only_be_applied_to_references_to_enum_members_or_string_number_boolean_array_or_object_literals: diag(1355, 1 /* Error */, \"A_const_assertions_can_only_be_applied_to_references_to_enum_members_or_string_number_boolean_array__1355\", \"A 'const' assertions can only be applied to references to enum members, or string, number, boolean, array, or object literals.\"),\n  Did_you_mean_to_mark_this_function_as_async: diag(1356, 1 /* Error */, \"Did_you_mean_to_mark_this_function_as_async_1356\", \"Did you mean to mark this function as 'async'?\"),\n  An_enum_member_name_must_be_followed_by_a_or: diag(1357, 1 /* Error */, \"An_enum_member_name_must_be_followed_by_a_or_1357\", \"An enum member name must be followed by a ',', '=', or '}'.\"),\n  Tagged_template_expressions_are_not_permitted_in_an_optional_chain: diag(1358, 1 /* Error */, \"Tagged_template_expressions_are_not_permitted_in_an_optional_chain_1358\", \"Tagged template expressions are not permitted in an optional chain.\"),\n  Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here: diag(1359, 1 /* Error */, \"Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here_1359\", \"Identifier expected. '{0}' is a reserved word that cannot be used here.\"),\n  Type_0_does_not_satisfy_the_expected_type_1: diag(1360, 1 /* Error */, \"Type_0_does_not_satisfy_the_expected_type_1_1360\", \"Type '{0}' does not satisfy the expected type '{1}'.\"),\n  _0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type: diag(1361, 1 /* Error */, \"_0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type_1361\", \"'{0}' cannot be used as a value because it was imported using 'import type'.\"),\n  _0_cannot_be_used_as_a_value_because_it_was_exported_using_export_type: diag(1362, 1 /* Error */, \"_0_cannot_be_used_as_a_value_because_it_was_exported_using_export_type_1362\", \"'{0}' cannot be used as a value because it was exported using 'export type'.\"),\n  A_type_only_import_can_specify_a_default_import_or_named_bindings_but_not_both: diag(1363, 1 /* Error */, \"A_type_only_import_can_specify_a_default_import_or_named_bindings_but_not_both_1363\", \"A type-only import can specify a default import or named bindings, but not both.\"),\n  Convert_to_type_only_export: diag(1364, 3 /* Message */, \"Convert_to_type_only_export_1364\", \"Convert to type-only export\"),\n  Convert_all_re_exported_types_to_type_only_exports: diag(1365, 3 /* Message */, \"Convert_all_re_exported_types_to_type_only_exports_1365\", \"Convert all re-exported types to type-only exports\"),\n  Split_into_two_separate_import_declarations: diag(1366, 3 /* Message */, \"Split_into_two_separate_import_declarations_1366\", \"Split into two separate import declarations\"),\n  Split_all_invalid_type_only_imports: diag(1367, 3 /* Message */, \"Split_all_invalid_type_only_imports_1367\", \"Split all invalid type-only imports\"),\n  Class_constructor_may_not_be_a_generator: diag(1368, 1 /* Error */, \"Class_constructor_may_not_be_a_generator_1368\", \"Class constructor may not be a generator.\"),\n  Did_you_mean_0: diag(1369, 3 /* Message */, \"Did_you_mean_0_1369\", \"Did you mean '{0}'?\"),\n  await_expressions_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module: diag(1375, 1 /* Error */, \"await_expressions_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_fi_1375\", \"'await' expressions are only allowed at the top level of a file when that file is a module, but this file has no imports or exports. Consider adding an empty 'export {}' to make this file a module.\"),\n  _0_was_imported_here: diag(1376, 3 /* Message */, \"_0_was_imported_here_1376\", \"'{0}' was imported here.\"),\n  _0_was_exported_here: diag(1377, 3 /* Message */, \"_0_was_exported_here_1377\", \"'{0}' was exported here.\"),\n  Top_level_await_expressions_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_node18_node20_nodenext_or_preserve_and_the_target_option_is_set_to_es2017_or_higher: diag(1378, 1 /* Error */, \"Top_level_await_expressions_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_n_1378\", \"Top-level 'await' expressions are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'node18', 'node20', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher.\"),\n  An_import_alias_cannot_reference_a_declaration_that_was_exported_using_export_type: diag(1379, 1 /* Error */, \"An_import_alias_cannot_reference_a_declaration_that_was_exported_using_export_type_1379\", \"An import alias cannot reference a declaration that was exported using 'export type'.\"),\n  An_import_alias_cannot_reference_a_declaration_that_was_imported_using_import_type: diag(1380, 1 /* Error */, \"An_import_alias_cannot_reference_a_declaration_that_was_imported_using_import_type_1380\", \"An import alias cannot reference a declaration that was imported using 'import type'.\"),\n  Unexpected_token_Did_you_mean_or_rbrace: diag(1381, 1 /* Error */, \"Unexpected_token_Did_you_mean_or_rbrace_1381\", \"Unexpected token. Did you mean `{'}'}` or `&rbrace;`?\"),\n  Unexpected_token_Did_you_mean_or_gt: diag(1382, 1 /* Error */, \"Unexpected_token_Did_you_mean_or_gt_1382\", \"Unexpected token. Did you mean `{'>'}` or `&gt;`?\"),\n  Function_type_notation_must_be_parenthesized_when_used_in_a_union_type: diag(1385, 1 /* Error */, \"Function_type_notation_must_be_parenthesized_when_used_in_a_union_type_1385\", \"Function type notation must be parenthesized when used in a union type.\"),\n  Constructor_type_notation_must_be_parenthesized_when_used_in_a_union_type: diag(1386, 1 /* Error */, \"Constructor_type_notation_must_be_parenthesized_when_used_in_a_union_type_1386\", \"Constructor type notation must be parenthesized when used in a union type.\"),\n  Function_type_notation_must_be_parenthesized_when_used_in_an_intersection_type: diag(1387, 1 /* Error */, \"Function_type_notation_must_be_parenthesized_when_used_in_an_intersection_type_1387\", \"Function type notation must be parenthesized when used in an intersection type.\"),\n  Constructor_type_notation_must_be_parenthesized_when_used_in_an_intersection_type: diag(1388, 1 /* Error */, \"Constructor_type_notation_must_be_parenthesized_when_used_in_an_intersection_type_1388\", \"Constructor type notation must be parenthesized when used in an intersection type.\"),\n  _0_is_not_allowed_as_a_variable_declaration_name: diag(1389, 1 /* Error */, \"_0_is_not_allowed_as_a_variable_declaration_name_1389\", \"'{0}' is not allowed as a variable declaration name.\"),\n  _0_is_not_allowed_as_a_parameter_name: diag(1390, 1 /* Error */, \"_0_is_not_allowed_as_a_parameter_name_1390\", \"'{0}' is not allowed as a parameter name.\"),\n  An_import_alias_cannot_use_import_type: diag(1392, 1 /* Error */, \"An_import_alias_cannot_use_import_type_1392\", \"An import alias cannot use 'import type'\"),\n  Imported_via_0_from_file_1: diag(1393, 3 /* Message */, \"Imported_via_0_from_file_1_1393\", \"Imported via {0} from file '{1}'\"),\n  Imported_via_0_from_file_1_with_packageId_2: diag(1394, 3 /* Message */, \"Imported_via_0_from_file_1_with_packageId_2_1394\", \"Imported via {0} from file '{1}' with packageId '{2}'\"),\n  Imported_via_0_from_file_1_to_import_importHelpers_as_specified_in_compilerOptions: diag(1395, 3 /* Message */, \"Imported_via_0_from_file_1_to_import_importHelpers_as_specified_in_compilerOptions_1395\", \"Imported via {0} from file '{1}' to import 'importHelpers' as specified in compilerOptions\"),\n  Imported_via_0_from_file_1_with_packageId_2_to_import_importHelpers_as_specified_in_compilerOptions: diag(1396, 3 /* Message */, \"Imported_via_0_from_file_1_with_packageId_2_to_import_importHelpers_as_specified_in_compilerOptions_1396\", \"Imported via {0} from file '{1}' with packageId '{2}' to import 'importHelpers' as specified in compilerOptions\"),\n  Imported_via_0_from_file_1_to_import_jsx_and_jsxs_factory_functions: diag(1397, 3 /* Message */, \"Imported_via_0_from_file_1_to_import_jsx_and_jsxs_factory_functions_1397\", \"Imported via {0} from file '{1}' to import 'jsx' and 'jsxs' factory functions\"),\n  Imported_via_0_from_file_1_with_packageId_2_to_import_jsx_and_jsxs_factory_functions: diag(1398, 3 /* Message */, \"Imported_via_0_from_file_1_with_packageId_2_to_import_jsx_and_jsxs_factory_functions_1398\", \"Imported via {0} from file '{1}' with packageId '{2}' to import 'jsx' and 'jsxs' factory functions\"),\n  File_is_included_via_import_here: diag(1399, 3 /* Message */, \"File_is_included_via_import_here_1399\", \"File is included via import here.\"),\n  Referenced_via_0_from_file_1: diag(1400, 3 /* Message */, \"Referenced_via_0_from_file_1_1400\", \"Referenced via '{0}' from file '{1}'\"),\n  File_is_included_via_reference_here: diag(1401, 3 /* Message */, \"File_is_included_via_reference_here_1401\", \"File is included via reference here.\"),\n  Type_library_referenced_via_0_from_file_1: diag(1402, 3 /* Message */, \"Type_library_referenced_via_0_from_file_1_1402\", \"Type library referenced via '{0}' from file '{1}'\"),\n  Type_library_referenced_via_0_from_file_1_with_packageId_2: diag(1403, 3 /* Message */, \"Type_library_referenced_via_0_from_file_1_with_packageId_2_1403\", \"Type library referenced via '{0}' from file '{1}' with packageId '{2}'\"),\n  File_is_included_via_type_library_reference_here: diag(1404, 3 /* Message */, \"File_is_included_via_type_library_reference_here_1404\", \"File is included via type library reference here.\"),\n  Library_referenced_via_0_from_file_1: diag(1405, 3 /* Message */, \"Library_referenced_via_0_from_file_1_1405\", \"Library referenced via '{0}' from file '{1}'\"),\n  File_is_included_via_library_reference_here: diag(1406, 3 /* Message */, \"File_is_included_via_library_reference_here_1406\", \"File is included via library reference here.\"),\n  Matched_by_include_pattern_0_in_1: diag(1407, 3 /* Message */, \"Matched_by_include_pattern_0_in_1_1407\", \"Matched by include pattern '{0}' in '{1}'\"),\n  File_is_matched_by_include_pattern_specified_here: diag(1408, 3 /* Message */, \"File_is_matched_by_include_pattern_specified_here_1408\", \"File is matched by include pattern specified here.\"),\n  Part_of_files_list_in_tsconfig_json: diag(1409, 3 /* Message */, \"Part_of_files_list_in_tsconfig_json_1409\", \"Part of 'files' list in tsconfig.json\"),\n  File_is_matched_by_files_list_specified_here: diag(1410, 3 /* Message */, \"File_is_matched_by_files_list_specified_here_1410\", \"File is matched by 'files' list specified here.\"),\n  Output_from_referenced_project_0_included_because_1_specified: diag(1411, 3 /* Message */, \"Output_from_referenced_project_0_included_because_1_specified_1411\", \"Output from referenced project '{0}' included because '{1}' specified\"),\n  Output_from_referenced_project_0_included_because_module_is_specified_as_none: diag(1412, 3 /* Message */, \"Output_from_referenced_project_0_included_because_module_is_specified_as_none_1412\", \"Output from referenced project '{0}' included because '--module' is specified as 'none'\"),\n  File_is_output_from_referenced_project_specified_here: diag(1413, 3 /* Message */, \"File_is_output_from_referenced_project_specified_here_1413\", \"File is output from referenced project specified here.\"),\n  Source_from_referenced_project_0_included_because_1_specified: diag(1414, 3 /* Message */, \"Source_from_referenced_project_0_included_because_1_specified_1414\", \"Source from referenced project '{0}' included because '{1}' specified\"),\n  Source_from_referenced_project_0_included_because_module_is_specified_as_none: diag(1415, 3 /* Message */, \"Source_from_referenced_project_0_included_because_module_is_specified_as_none_1415\", \"Source from referenced project '{0}' included because '--module' is specified as 'none'\"),\n  File_is_source_from_referenced_project_specified_here: diag(1416, 3 /* Message */, \"File_is_source_from_referenced_project_specified_here_1416\", \"File is source from referenced project specified here.\"),\n  Entry_point_of_type_library_0_specified_in_compilerOptions: diag(1417, 3 /* Message */, \"Entry_point_of_type_library_0_specified_in_compilerOptions_1417\", \"Entry point of type library '{0}' specified in compilerOptions\"),\n  Entry_point_of_type_library_0_specified_in_compilerOptions_with_packageId_1: diag(1418, 3 /* Message */, \"Entry_point_of_type_library_0_specified_in_compilerOptions_with_packageId_1_1418\", \"Entry point of type library '{0}' specified in compilerOptions with packageId '{1}'\"),\n  File_is_entry_point_of_type_library_specified_here: diag(1419, 3 /* Message */, \"File_is_entry_point_of_type_library_specified_here_1419\", \"File is entry point of type library specified here.\"),\n  Entry_point_for_implicit_type_library_0: diag(1420, 3 /* Message */, \"Entry_point_for_implicit_type_library_0_1420\", \"Entry point for implicit type library '{0}'\"),\n  Entry_point_for_implicit_type_library_0_with_packageId_1: diag(1421, 3 /* Message */, \"Entry_point_for_implicit_type_library_0_with_packageId_1_1421\", \"Entry point for implicit type library '{0}' with packageId '{1}'\"),\n  Library_0_specified_in_compilerOptions: diag(1422, 3 /* Message */, \"Library_0_specified_in_compilerOptions_1422\", \"Library '{0}' specified in compilerOptions\"),\n  File_is_library_specified_here: diag(1423, 3 /* Message */, \"File_is_library_specified_here_1423\", \"File is library specified here.\"),\n  Default_library: diag(1424, 3 /* Message */, \"Default_library_1424\", \"Default library\"),\n  Default_library_for_target_0: diag(1425, 3 /* Message */, \"Default_library_for_target_0_1425\", \"Default library for target '{0}'\"),\n  File_is_default_library_for_target_specified_here: diag(1426, 3 /* Message */, \"File_is_default_library_for_target_specified_here_1426\", \"File is default library for target specified here.\"),\n  Root_file_specified_for_compilation: diag(1427, 3 /* Message */, \"Root_file_specified_for_compilation_1427\", \"Root file specified for compilation\"),\n  File_is_output_of_project_reference_source_0: diag(1428, 3 /* Message */, \"File_is_output_of_project_reference_source_0_1428\", \"File is output of project reference source '{0}'\"),\n  File_redirects_to_file_0: diag(1429, 3 /* Message */, \"File_redirects_to_file_0_1429\", \"File redirects to file '{0}'\"),\n  The_file_is_in_the_program_because_Colon: diag(1430, 3 /* Message */, \"The_file_is_in_the_program_because_Colon_1430\", \"The file is in the program because:\"),\n  for_await_loops_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module: diag(1431, 1 /* Error */, \"for_await_loops_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_1431\", \"'for await' loops are only allowed at the top level of a file when that file is a module, but this file has no imports or exports. Consider adding an empty 'export {}' to make this file a module.\"),\n  Top_level_for_await_loops_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_node18_node20_nodenext_or_preserve_and_the_target_option_is_set_to_es2017_or_higher: diag(1432, 1 /* Error */, \"Top_level_for_await_loops_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_nod_1432\", \"Top-level 'for await' loops are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'node18', 'node20', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher.\"),\n  Neither_decorators_nor_modifiers_may_be_applied_to_this_parameters: diag(1433, 1 /* Error */, \"Neither_decorators_nor_modifiers_may_be_applied_to_this_parameters_1433\", \"Neither decorators nor modifiers may be applied to 'this' parameters.\"),\n  Unexpected_keyword_or_identifier: diag(1434, 1 /* Error */, \"Unexpected_keyword_or_identifier_1434\", \"Unexpected keyword or identifier.\"),\n  Unknown_keyword_or_identifier_Did_you_mean_0: diag(1435, 1 /* Error */, \"Unknown_keyword_or_identifier_Did_you_mean_0_1435\", \"Unknown keyword or identifier. Did you mean '{0}'?\"),\n  Decorators_must_precede_the_name_and_all_keywords_of_property_declarations: diag(1436, 1 /* Error */, \"Decorators_must_precede_the_name_and_all_keywords_of_property_declarations_1436\", \"Decorators must precede the name and all keywords of property declarations.\"),\n  Namespace_must_be_given_a_name: diag(1437, 1 /* Error */, \"Namespace_must_be_given_a_name_1437\", \"Namespace must be given a name.\"),\n  Interface_must_be_given_a_name: diag(1438, 1 /* Error */, \"Interface_must_be_given_a_name_1438\", \"Interface must be given a name.\"),\n  Type_alias_must_be_given_a_name: diag(1439, 1 /* Error */, \"Type_alias_must_be_given_a_name_1439\", \"Type alias must be given a name.\"),\n  Variable_declaration_not_allowed_at_this_location: diag(1440, 1 /* Error */, \"Variable_declaration_not_allowed_at_this_location_1440\", \"Variable declaration not allowed at this location.\"),\n  Cannot_start_a_function_call_in_a_type_annotation: diag(1441, 1 /* Error */, \"Cannot_start_a_function_call_in_a_type_annotation_1441\", \"Cannot start a function call in a type annotation.\"),\n  Expected_for_property_initializer: diag(1442, 1 /* Error */, \"Expected_for_property_initializer_1442\", \"Expected '=' for property initializer.\"),\n  Module_declaration_names_may_only_use_or_quoted_strings: diag(1443, 1 /* Error */, \"Module_declaration_names_may_only_use_or_quoted_strings_1443\", `Module declaration names may only use ' or \" quoted strings.`),\n  _0_resolves_to_a_type_only_declaration_and_must_be_re_exported_using_a_type_only_re_export_when_1_is_enabled: diag(1448, 1 /* Error */, \"_0_resolves_to_a_type_only_declaration_and_must_be_re_exported_using_a_type_only_re_export_when_1_is_1448\", \"'{0}' resolves to a type-only declaration and must be re-exported using a type-only re-export when '{1}' is enabled.\"),\n  Preserve_unused_imported_values_in_the_JavaScript_output_that_would_otherwise_be_removed: diag(1449, 3 /* Message */, \"Preserve_unused_imported_values_in_the_JavaScript_output_that_would_otherwise_be_removed_1449\", \"Preserve unused imported values in the JavaScript output that would otherwise be removed.\"),\n  Dynamic_imports_can_only_accept_a_module_specifier_and_an_optional_set_of_attributes_as_arguments: diag(1450, 3 /* Message */, \"Dynamic_imports_can_only_accept_a_module_specifier_and_an_optional_set_of_attributes_as_arguments_1450\", \"Dynamic imports can only accept a module specifier and an optional set of attributes as arguments\"),\n  Private_identifiers_are_only_allowed_in_class_bodies_and_may_only_be_used_as_part_of_a_class_member_declaration_property_access_or_on_the_left_hand_side_of_an_in_expression: diag(1451, 1 /* Error */, \"Private_identifiers_are_only_allowed_in_class_bodies_and_may_only_be_used_as_part_of_a_class_member__1451\", \"Private identifiers are only allowed in class bodies and may only be used as part of a class member declaration, property access, or on the left-hand-side of an 'in' expression\"),\n  resolution_mode_should_be_either_require_or_import: diag(1453, 1 /* Error */, \"resolution_mode_should_be_either_require_or_import_1453\", \"`resolution-mode` should be either `require` or `import`.\"),\n  resolution_mode_can_only_be_set_for_type_only_imports: diag(1454, 1 /* Error */, \"resolution_mode_can_only_be_set_for_type_only_imports_1454\", \"`resolution-mode` can only be set for type-only imports.\"),\n  resolution_mode_is_the_only_valid_key_for_type_import_assertions: diag(1455, 1 /* Error */, \"resolution_mode_is_the_only_valid_key_for_type_import_assertions_1455\", \"`resolution-mode` is the only valid key for type import assertions.\"),\n  Type_import_assertions_should_have_exactly_one_key_resolution_mode_with_value_import_or_require: diag(1456, 1 /* Error */, \"Type_import_assertions_should_have_exactly_one_key_resolution_mode_with_value_import_or_require_1456\", \"Type import assertions should have exactly one key - `resolution-mode` - with value `import` or `require`.\"),\n  Matched_by_default_include_pattern_Asterisk_Asterisk_Slash_Asterisk: diag(1457, 3 /* Message */, \"Matched_by_default_include_pattern_Asterisk_Asterisk_Slash_Asterisk_1457\", \"Matched by default include pattern '**/*'\"),\n  File_is_ECMAScript_module_because_0_has_field_type_with_value_module: diag(1458, 3 /* Message */, \"File_is_ECMAScript_module_because_0_has_field_type_with_value_module_1458\", `File is ECMAScript module because '{0}' has field \"type\" with value \"module\"`),\n  File_is_CommonJS_module_because_0_has_field_type_whose_value_is_not_module: diag(1459, 3 /* Message */, \"File_is_CommonJS_module_because_0_has_field_type_whose_value_is_not_module_1459\", `File is CommonJS module because '{0}' has field \"type\" whose value is not \"module\"`),\n  File_is_CommonJS_module_because_0_does_not_have_field_type: diag(1460, 3 /* Message */, \"File_is_CommonJS_module_because_0_does_not_have_field_type_1460\", `File is CommonJS module because '{0}' does not have field \"type\"`),\n  File_is_CommonJS_module_because_package_json_was_not_found: diag(1461, 3 /* Message */, \"File_is_CommonJS_module_because_package_json_was_not_found_1461\", \"File is CommonJS module because 'package.json' was not found\"),\n  resolution_mode_is_the_only_valid_key_for_type_import_attributes: diag(1463, 1 /* Error */, \"resolution_mode_is_the_only_valid_key_for_type_import_attributes_1463\", \"'resolution-mode' is the only valid key for type import attributes.\"),\n  Type_import_attributes_should_have_exactly_one_key_resolution_mode_with_value_import_or_require: diag(1464, 1 /* Error */, \"Type_import_attributes_should_have_exactly_one_key_resolution_mode_with_value_import_or_require_1464\", \"Type import attributes should have exactly one key - 'resolution-mode' - with value 'import' or 'require'.\"),\n  The_import_meta_meta_property_is_not_allowed_in_files_which_will_build_into_CommonJS_output: diag(1470, 1 /* Error */, \"The_import_meta_meta_property_is_not_allowed_in_files_which_will_build_into_CommonJS_output_1470\", \"The 'import.meta' meta-property is not allowed in files which will build into CommonJS output.\"),\n  Module_0_cannot_be_imported_using_this_construct_The_specifier_only_resolves_to_an_ES_module_which_cannot_be_imported_with_require_Use_an_ECMAScript_import_instead: diag(1471, 1 /* Error */, \"Module_0_cannot_be_imported_using_this_construct_The_specifier_only_resolves_to_an_ES_module_which_c_1471\", \"Module '{0}' cannot be imported using this construct. The specifier only resolves to an ES module, which cannot be imported with 'require'. Use an ECMAScript import instead.\"),\n  catch_or_finally_expected: diag(1472, 1 /* Error */, \"catch_or_finally_expected_1472\", \"'catch' or 'finally' expected.\"),\n  An_import_declaration_can_only_be_used_at_the_top_level_of_a_module: diag(1473, 1 /* Error */, \"An_import_declaration_can_only_be_used_at_the_top_level_of_a_module_1473\", \"An import declaration can only be used at the top level of a module.\"),\n  An_export_declaration_can_only_be_used_at_the_top_level_of_a_module: diag(1474, 1 /* Error */, \"An_export_declaration_can_only_be_used_at_the_top_level_of_a_module_1474\", \"An export declaration can only be used at the top level of a module.\"),\n  Control_what_method_is_used_to_detect_module_format_JS_files: diag(1475, 3 /* Message */, \"Control_what_method_is_used_to_detect_module_format_JS_files_1475\", \"Control what method is used to detect module-format JS files.\"),\n  auto_Colon_Treat_files_with_imports_exports_import_meta_jsx_with_jsx_Colon_react_jsx_or_esm_format_with_module_Colon_node16_as_modules: diag(1476, 3 /* Message */, \"auto_Colon_Treat_files_with_imports_exports_import_meta_jsx_with_jsx_Colon_react_jsx_or_esm_format_w_1476\", '\"auto\": Treat files with imports, exports, import.meta, jsx (with jsx: react-jsx), or esm format (with module: node16+) as modules.'),\n  An_instantiation_expression_cannot_be_followed_by_a_property_access: diag(1477, 1 /* Error */, \"An_instantiation_expression_cannot_be_followed_by_a_property_access_1477\", \"An instantiation expression cannot be followed by a property access.\"),\n  Identifier_or_string_literal_expected: diag(1478, 1 /* Error */, \"Identifier_or_string_literal_expected_1478\", \"Identifier or string literal expected.\"),\n  The_current_file_is_a_CommonJS_module_whose_imports_will_produce_require_calls_however_the_referenced_file_is_an_ECMAScript_module_and_cannot_be_imported_with_require_Consider_writing_a_dynamic_import_0_call_instead: diag(1479, 1 /* Error */, \"The_current_file_is_a_CommonJS_module_whose_imports_will_produce_require_calls_however_the_reference_1479\", `The current file is a CommonJS module whose imports will produce 'require' calls; however, the referenced file is an ECMAScript module and cannot be imported with 'require'. Consider writing a dynamic 'import(\"{0}\")' call instead.`),\n  To_convert_this_file_to_an_ECMAScript_module_change_its_file_extension_to_0_or_create_a_local_package_json_file_with_type_Colon_module: diag(1480, 3 /* Message */, \"To_convert_this_file_to_an_ECMAScript_module_change_its_file_extension_to_0_or_create_a_local_packag_1480\", 'To convert this file to an ECMAScript module, change its file extension to \\'{0}\\' or create a local package.json file with `{ \"type\": \"module\" }`.'),\n  To_convert_this_file_to_an_ECMAScript_module_change_its_file_extension_to_0_or_add_the_field_type_Colon_module_to_1: diag(1481, 3 /* Message */, \"To_convert_this_file_to_an_ECMAScript_module_change_its_file_extension_to_0_or_add_the_field_type_Co_1481\", `To convert this file to an ECMAScript module, change its file extension to '{0}', or add the field \\`\"type\": \"module\"\\` to '{1}'.`),\n  To_convert_this_file_to_an_ECMAScript_module_add_the_field_type_Colon_module_to_0: diag(1482, 3 /* Message */, \"To_convert_this_file_to_an_ECMAScript_module_add_the_field_type_Colon_module_to_0_1482\", 'To convert this file to an ECMAScript module, add the field `\"type\": \"module\"` to \\'{0}\\'.'),\n  To_convert_this_file_to_an_ECMAScript_module_create_a_local_package_json_file_with_type_Colon_module: diag(1483, 3 /* Message */, \"To_convert_this_file_to_an_ECMAScript_module_create_a_local_package_json_file_with_type_Colon_module_1483\", 'To convert this file to an ECMAScript module, create a local package.json file with `{ \"type\": \"module\" }`.'),\n  _0_is_a_type_and_must_be_imported_using_a_type_only_import_when_verbatimModuleSyntax_is_enabled: diag(1484, 1 /* Error */, \"_0_is_a_type_and_must_be_imported_using_a_type_only_import_when_verbatimModuleSyntax_is_enabled_1484\", \"'{0}' is a type and must be imported using a type-only import when 'verbatimModuleSyntax' is enabled.\"),\n  _0_resolves_to_a_type_only_declaration_and_must_be_imported_using_a_type_only_import_when_verbatimModuleSyntax_is_enabled: diag(1485, 1 /* Error */, \"_0_resolves_to_a_type_only_declaration_and_must_be_imported_using_a_type_only_import_when_verbatimMo_1485\", \"'{0}' resolves to a type-only declaration and must be imported using a type-only import when 'verbatimModuleSyntax' is enabled.\"),\n  Decorator_used_before_export_here: diag(1486, 1 /* Error */, \"Decorator_used_before_export_here_1486\", \"Decorator used before 'export' here.\"),\n  Octal_escape_sequences_are_not_allowed_Use_the_syntax_0: diag(1487, 1 /* Error */, \"Octal_escape_sequences_are_not_allowed_Use_the_syntax_0_1487\", \"Octal escape sequences are not allowed. Use the syntax '{0}'.\"),\n  Escape_sequence_0_is_not_allowed: diag(1488, 1 /* Error */, \"Escape_sequence_0_is_not_allowed_1488\", \"Escape sequence '{0}' is not allowed.\"),\n  Decimals_with_leading_zeros_are_not_allowed: diag(1489, 1 /* Error */, \"Decimals_with_leading_zeros_are_not_allowed_1489\", \"Decimals with leading zeros are not allowed.\"),\n  File_appears_to_be_binary: diag(1490, 1 /* Error */, \"File_appears_to_be_binary_1490\", \"File appears to be binary.\"),\n  _0_modifier_cannot_appear_on_a_using_declaration: diag(1491, 1 /* Error */, \"_0_modifier_cannot_appear_on_a_using_declaration_1491\", \"'{0}' modifier cannot appear on a 'using' declaration.\"),\n  _0_declarations_may_not_have_binding_patterns: diag(1492, 1 /* Error */, \"_0_declarations_may_not_have_binding_patterns_1492\", \"'{0}' declarations may not have binding patterns.\"),\n  The_left_hand_side_of_a_for_in_statement_cannot_be_a_using_declaration: diag(1493, 1 /* Error */, \"The_left_hand_side_of_a_for_in_statement_cannot_be_a_using_declaration_1493\", \"The left-hand side of a 'for...in' statement cannot be a 'using' declaration.\"),\n  The_left_hand_side_of_a_for_in_statement_cannot_be_an_await_using_declaration: diag(1494, 1 /* Error */, \"The_left_hand_side_of_a_for_in_statement_cannot_be_an_await_using_declaration_1494\", \"The left-hand side of a 'for...in' statement cannot be an 'await using' declaration.\"),\n  _0_modifier_cannot_appear_on_an_await_using_declaration: diag(1495, 1 /* Error */, \"_0_modifier_cannot_appear_on_an_await_using_declaration_1495\", \"'{0}' modifier cannot appear on an 'await using' declaration.\"),\n  Identifier_string_literal_or_number_literal_expected: diag(1496, 1 /* Error */, \"Identifier_string_literal_or_number_literal_expected_1496\", \"Identifier, string literal, or number literal expected.\"),\n  Expression_must_be_enclosed_in_parentheses_to_be_used_as_a_decorator: diag(1497, 1 /* Error */, \"Expression_must_be_enclosed_in_parentheses_to_be_used_as_a_decorator_1497\", \"Expression must be enclosed in parentheses to be used as a decorator.\"),\n  Invalid_syntax_in_decorator: diag(1498, 1 /* Error */, \"Invalid_syntax_in_decorator_1498\", \"Invalid syntax in decorator.\"),\n  Unknown_regular_expression_flag: diag(1499, 1 /* Error */, \"Unknown_regular_expression_flag_1499\", \"Unknown regular expression flag.\"),\n  Duplicate_regular_expression_flag: diag(1500, 1 /* Error */, \"Duplicate_regular_expression_flag_1500\", \"Duplicate regular expression flag.\"),\n  This_regular_expression_flag_is_only_available_when_targeting_0_or_later: diag(1501, 1 /* Error */, \"This_regular_expression_flag_is_only_available_when_targeting_0_or_later_1501\", \"This regular expression flag is only available when targeting '{0}' or later.\"),\n  The_Unicode_u_flag_and_the_Unicode_Sets_v_flag_cannot_be_set_simultaneously: diag(1502, 1 /* Error */, \"The_Unicode_u_flag_and_the_Unicode_Sets_v_flag_cannot_be_set_simultaneously_1502\", \"The Unicode (u) flag and the Unicode Sets (v) flag cannot be set simultaneously.\"),\n  Named_capturing_groups_are_only_available_when_targeting_ES2018_or_later: diag(1503, 1 /* Error */, \"Named_capturing_groups_are_only_available_when_targeting_ES2018_or_later_1503\", \"Named capturing groups are only available when targeting 'ES2018' or later.\"),\n  Subpattern_flags_must_be_present_when_there_is_a_minus_sign: diag(1504, 1 /* Error */, \"Subpattern_flags_must_be_present_when_there_is_a_minus_sign_1504\", \"Subpattern flags must be present when there is a minus sign.\"),\n  Incomplete_quantifier_Digit_expected: diag(1505, 1 /* Error */, \"Incomplete_quantifier_Digit_expected_1505\", \"Incomplete quantifier. Digit expected.\"),\n  Numbers_out_of_order_in_quantifier: diag(1506, 1 /* Error */, \"Numbers_out_of_order_in_quantifier_1506\", \"Numbers out of order in quantifier.\"),\n  There_is_nothing_available_for_repetition: diag(1507, 1 /* Error */, \"There_is_nothing_available_for_repetition_1507\", \"There is nothing available for repetition.\"),\n  Unexpected_0_Did_you_mean_to_escape_it_with_backslash: diag(1508, 1 /* Error */, \"Unexpected_0_Did_you_mean_to_escape_it_with_backslash_1508\", \"Unexpected '{0}'. Did you mean to escape it with backslash?\"),\n  This_regular_expression_flag_cannot_be_toggled_within_a_subpattern: diag(1509, 1 /* Error */, \"This_regular_expression_flag_cannot_be_toggled_within_a_subpattern_1509\", \"This regular expression flag cannot be toggled within a subpattern.\"),\n  k_must_be_followed_by_a_capturing_group_name_enclosed_in_angle_brackets: diag(1510, 1 /* Error */, \"k_must_be_followed_by_a_capturing_group_name_enclosed_in_angle_brackets_1510\", \"'\\\\k' must be followed by a capturing group name enclosed in angle brackets.\"),\n  q_is_only_available_inside_character_class: diag(1511, 1 /* Error */, \"q_is_only_available_inside_character_class_1511\", \"'\\\\q' is only available inside character class.\"),\n  c_must_be_followed_by_an_ASCII_letter: diag(1512, 1 /* Error */, \"c_must_be_followed_by_an_ASCII_letter_1512\", \"'\\\\c' must be followed by an ASCII letter.\"),\n  Undetermined_character_escape: diag(1513, 1 /* Error */, \"Undetermined_character_escape_1513\", \"Undetermined character escape.\"),\n  Expected_a_capturing_group_name: diag(1514, 1 /* Error */, \"Expected_a_capturing_group_name_1514\", \"Expected a capturing group name.\"),\n  Named_capturing_groups_with_the_same_name_must_be_mutually_exclusive_to_each_other: diag(1515, 1 /* Error */, \"Named_capturing_groups_with_the_same_name_must_be_mutually_exclusive_to_each_other_1515\", \"Named capturing groups with the same name must be mutually exclusive to each other.\"),\n  A_character_class_range_must_not_be_bounded_by_another_character_class: diag(1516, 1 /* Error */, \"A_character_class_range_must_not_be_bounded_by_another_character_class_1516\", \"A character class range must not be bounded by another character class.\"),\n  Range_out_of_order_in_character_class: diag(1517, 1 /* Error */, \"Range_out_of_order_in_character_class_1517\", \"Range out of order in character class.\"),\n  Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_character_class: diag(1518, 1 /* Error */, \"Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_characte_1518\", \"Anything that would possibly match more than a single character is invalid inside a negated character class.\"),\n  Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead: diag(1519, 1 /* Error */, \"Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead_1519\", \"Operators must not be mixed within a character class. Wrap it in a nested class instead.\"),\n  Expected_a_class_set_operand: diag(1520, 1 /* Error */, \"Expected_a_class_set_operand_1520\", \"Expected a class set operand.\"),\n  q_must_be_followed_by_string_alternatives_enclosed_in_braces: diag(1521, 1 /* Error */, \"q_must_be_followed_by_string_alternatives_enclosed_in_braces_1521\", \"'\\\\q' must be followed by string alternatives enclosed in braces.\"),\n  A_character_class_must_not_contain_a_reserved_double_punctuator_Did_you_mean_to_escape_it_with_backslash: diag(1522, 1 /* Error */, \"A_character_class_must_not_contain_a_reserved_double_punctuator_Did_you_mean_to_escape_it_with_backs_1522\", \"A character class must not contain a reserved double punctuator. Did you mean to escape it with backslash?\"),\n  Expected_a_Unicode_property_name: diag(1523, 1 /* Error */, \"Expected_a_Unicode_property_name_1523\", \"Expected a Unicode property name.\"),\n  Unknown_Unicode_property_name: diag(1524, 1 /* Error */, \"Unknown_Unicode_property_name_1524\", \"Unknown Unicode property name.\"),\n  Expected_a_Unicode_property_value: diag(1525, 1 /* Error */, \"Expected_a_Unicode_property_value_1525\", \"Expected a Unicode property value.\"),\n  Unknown_Unicode_property_value: diag(1526, 1 /* Error */, \"Unknown_Unicode_property_value_1526\", \"Unknown Unicode property value.\"),\n  Expected_a_Unicode_property_name_or_value: diag(1527, 1 /* Error */, \"Expected_a_Unicode_property_name_or_value_1527\", \"Expected a Unicode property name or value.\"),\n  Any_Unicode_property_that_would_possibly_match_more_than_a_single_character_is_only_available_when_the_Unicode_Sets_v_flag_is_set: diag(1528, 1 /* Error */, \"Any_Unicode_property_that_would_possibly_match_more_than_a_single_character_is_only_available_when_t_1528\", \"Any Unicode property that would possibly match more than a single character is only available when the Unicode Sets (v) flag is set.\"),\n  Unknown_Unicode_property_name_or_value: diag(1529, 1 /* Error */, \"Unknown_Unicode_property_name_or_value_1529\", \"Unknown Unicode property name or value.\"),\n  Unicode_property_value_expressions_are_only_available_when_the_Unicode_u_flag_or_the_Unicode_Sets_v_flag_is_set: diag(1530, 1 /* Error */, \"Unicode_property_value_expressions_are_only_available_when_the_Unicode_u_flag_or_the_Unicode_Sets_v__1530\", \"Unicode property value expressions are only available when the Unicode (u) flag or the Unicode Sets (v) flag is set.\"),\n  _0_must_be_followed_by_a_Unicode_property_value_expression_enclosed_in_braces: diag(1531, 1 /* Error */, \"_0_must_be_followed_by_a_Unicode_property_value_expression_enclosed_in_braces_1531\", \"'\\\\{0}' must be followed by a Unicode property value expression enclosed in braces.\"),\n  There_is_no_capturing_group_named_0_in_this_regular_expression: diag(1532, 1 /* Error */, \"There_is_no_capturing_group_named_0_in_this_regular_expression_1532\", \"There is no capturing group named '{0}' in this regular expression.\"),\n  This_backreference_refers_to_a_group_that_does_not_exist_There_are_only_0_capturing_groups_in_this_regular_expression: diag(1533, 1 /* Error */, \"This_backreference_refers_to_a_group_that_does_not_exist_There_are_only_0_capturing_groups_in_this_r_1533\", \"This backreference refers to a group that does not exist. There are only {0} capturing groups in this regular expression.\"),\n  This_backreference_refers_to_a_group_that_does_not_exist_There_are_no_capturing_groups_in_this_regular_expression: diag(1534, 1 /* Error */, \"This_backreference_refers_to_a_group_that_does_not_exist_There_are_no_capturing_groups_in_this_regul_1534\", \"This backreference refers to a group that does not exist. There are no capturing groups in this regular expression.\"),\n  This_character_cannot_be_escaped_in_a_regular_expression: diag(1535, 1 /* Error */, \"This_character_cannot_be_escaped_in_a_regular_expression_1535\", \"This character cannot be escaped in a regular expression.\"),\n  Octal_escape_sequences_and_backreferences_are_not_allowed_in_a_character_class_If_this_was_intended_as_an_escape_sequence_use_the_syntax_0_instead: diag(1536, 1 /* Error */, \"Octal_escape_sequences_and_backreferences_are_not_allowed_in_a_character_class_If_this_was_intended__1536\", \"Octal escape sequences and backreferences are not allowed in a character class. If this was intended as an escape sequence, use the syntax '{0}' instead.\"),\n  Decimal_escape_sequences_and_backreferences_are_not_allowed_in_a_character_class: diag(1537, 1 /* Error */, \"Decimal_escape_sequences_and_backreferences_are_not_allowed_in_a_character_class_1537\", \"Decimal escape sequences and backreferences are not allowed in a character class.\"),\n  Unicode_escape_sequences_are_only_available_when_the_Unicode_u_flag_or_the_Unicode_Sets_v_flag_is_set: diag(1538, 1 /* Error */, \"Unicode_escape_sequences_are_only_available_when_the_Unicode_u_flag_or_the_Unicode_Sets_v_flag_is_se_1538\", \"Unicode escape sequences are only available when the Unicode (u) flag or the Unicode Sets (v) flag is set.\"),\n  A_bigint_literal_cannot_be_used_as_a_property_name: diag(1539, 1 /* Error */, \"A_bigint_literal_cannot_be_used_as_a_property_name_1539\", \"A 'bigint' literal cannot be used as a property name.\"),\n  A_namespace_declaration_should_not_be_declared_using_the_module_keyword_Please_use_the_namespace_keyword_instead: diag(\n    1540,\n    2 /* Suggestion */,\n    \"A_namespace_declaration_should_not_be_declared_using_the_module_keyword_Please_use_the_namespace_key_1540\",\n    \"A 'namespace' declaration should not be declared using the 'module' keyword. Please use the 'namespace' keyword instead.\",\n    /*reportsUnnecessary*/\n    void 0,\n    /*elidedInCompatabilityPyramid*/\n    void 0,\n    /*reportsDeprecated*/\n    true\n  ),\n  Type_only_import_of_an_ECMAScript_module_from_a_CommonJS_module_must_have_a_resolution_mode_attribute: diag(1541, 1 /* Error */, \"Type_only_import_of_an_ECMAScript_module_from_a_CommonJS_module_must_have_a_resolution_mode_attribut_1541\", \"Type-only import of an ECMAScript module from a CommonJS module must have a 'resolution-mode' attribute.\"),\n  Type_import_of_an_ECMAScript_module_from_a_CommonJS_module_must_have_a_resolution_mode_attribute: diag(1542, 1 /* Error */, \"Type_import_of_an_ECMAScript_module_from_a_CommonJS_module_must_have_a_resolution_mode_attribute_1542\", \"Type import of an ECMAScript module from a CommonJS module must have a 'resolution-mode' attribute.\"),\n  Importing_a_JSON_file_into_an_ECMAScript_module_requires_a_type_Colon_json_import_attribute_when_module_is_set_to_0: diag(1543, 1 /* Error */, \"Importing_a_JSON_file_into_an_ECMAScript_module_requires_a_type_Colon_json_import_attribute_when_mod_1543\", `Importing a JSON file into an ECMAScript module requires a 'type: \"json\"' import attribute when 'module' is set to '{0}'.`),\n  Named_imports_from_a_JSON_file_into_an_ECMAScript_module_are_not_allowed_when_module_is_set_to_0: diag(1544, 1 /* Error */, \"Named_imports_from_a_JSON_file_into_an_ECMAScript_module_are_not_allowed_when_module_is_set_to_0_1544\", \"Named imports from a JSON file into an ECMAScript module are not allowed when 'module' is set to '{0}'.\"),\n  using_declarations_are_not_allowed_in_ambient_contexts: diag(1545, 1 /* Error */, \"using_declarations_are_not_allowed_in_ambient_contexts_1545\", \"'using' declarations are not allowed in ambient contexts.\"),\n  await_using_declarations_are_not_allowed_in_ambient_contexts: diag(1546, 1 /* Error */, \"await_using_declarations_are_not_allowed_in_ambient_contexts_1546\", \"'await using' declarations are not allowed in ambient contexts.\"),\n  The_types_of_0_are_incompatible_between_these_types: diag(2200, 1 /* Error */, \"The_types_of_0_are_incompatible_between_these_types_2200\", \"The types of '{0}' are incompatible between these types.\"),\n  The_types_returned_by_0_are_incompatible_between_these_types: diag(2201, 1 /* Error */, \"The_types_returned_by_0_are_incompatible_between_these_types_2201\", \"The types returned by '{0}' are incompatible between these types.\"),\n  Call_signature_return_types_0_and_1_are_incompatible: diag(\n    2202,\n    1 /* Error */,\n    \"Call_signature_return_types_0_and_1_are_incompatible_2202\",\n    \"Call signature return types '{0}' and '{1}' are incompatible.\",\n    /*reportsUnnecessary*/\n    void 0,\n    /*elidedInCompatabilityPyramid*/\n    true\n  ),\n  Construct_signature_return_types_0_and_1_are_incompatible: diag(\n    2203,\n    1 /* Error */,\n    \"Construct_signature_return_types_0_and_1_are_incompatible_2203\",\n    \"Construct signature return types '{0}' and '{1}' are incompatible.\",\n    /*reportsUnnecessary*/\n    void 0,\n    /*elidedInCompatabilityPyramid*/\n    true\n  ),\n  Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1: diag(\n    2204,\n    1 /* Error */,\n    \"Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1_2204\",\n    \"Call signatures with no arguments have incompatible return types '{0}' and '{1}'.\",\n    /*reportsUnnecessary*/\n    void 0,\n    /*elidedInCompatabilityPyramid*/\n    true\n  ),\n  Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1: diag(\n    2205,\n    1 /* Error */,\n    \"Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1_2205\",\n    \"Construct signatures with no arguments have incompatible return types '{0}' and '{1}'.\",\n    /*reportsUnnecessary*/\n    void 0,\n    /*elidedInCompatabilityPyramid*/\n    true\n  ),\n  The_type_modifier_cannot_be_used_on_a_named_import_when_import_type_is_used_on_its_import_statement: diag(2206, 1 /* Error */, \"The_type_modifier_cannot_be_used_on_a_named_import_when_import_type_is_used_on_its_import_statement_2206\", \"The 'type' modifier cannot be used on a named import when 'import type' is used on its import statement.\"),\n  The_type_modifier_cannot_be_used_on_a_named_export_when_export_type_is_used_on_its_export_statement: diag(2207, 1 /* Error */, \"The_type_modifier_cannot_be_used_on_a_named_export_when_export_type_is_used_on_its_export_statement_2207\", \"The 'type' modifier cannot be used on a named export when 'export type' is used on its export statement.\"),\n  This_type_parameter_might_need_an_extends_0_constraint: diag(2208, 1 /* Error */, \"This_type_parameter_might_need_an_extends_0_constraint_2208\", \"This type parameter might need an `extends {0}` constraint.\"),\n  The_project_root_is_ambiguous_but_is_required_to_resolve_export_map_entry_0_in_file_1_Supply_the_rootDir_compiler_option_to_disambiguate: diag(2209, 1 /* Error */, \"The_project_root_is_ambiguous_but_is_required_to_resolve_export_map_entry_0_in_file_1_Supply_the_roo_2209\", \"The project root is ambiguous, but is required to resolve export map entry '{0}' in file '{1}'. Supply the `rootDir` compiler option to disambiguate.\"),\n  The_project_root_is_ambiguous_but_is_required_to_resolve_import_map_entry_0_in_file_1_Supply_the_rootDir_compiler_option_to_disambiguate: diag(2210, 1 /* Error */, \"The_project_root_is_ambiguous_but_is_required_to_resolve_import_map_entry_0_in_file_1_Supply_the_roo_2210\", \"The project root is ambiguous, but is required to resolve import map entry '{0}' in file '{1}'. Supply the `rootDir` compiler option to disambiguate.\"),\n  Add_extends_constraint: diag(2211, 3 /* Message */, \"Add_extends_constraint_2211\", \"Add `extends` constraint.\"),\n  Add_extends_constraint_to_all_type_parameters: diag(2212, 3 /* Message */, \"Add_extends_constraint_to_all_type_parameters_2212\", \"Add `extends` constraint to all type parameters\"),\n  Duplicate_identifier_0: diag(2300, 1 /* Error */, \"Duplicate_identifier_0_2300\", \"Duplicate identifier '{0}'.\"),\n  Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor: diag(2301, 1 /* Error */, \"Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor_2301\", \"Initializer of instance member variable '{0}' cannot reference identifier '{1}' declared in the constructor.\"),\n  Static_members_cannot_reference_class_type_parameters: diag(2302, 1 /* Error */, \"Static_members_cannot_reference_class_type_parameters_2302\", \"Static members cannot reference class type parameters.\"),\n  Circular_definition_of_import_alias_0: diag(2303, 1 /* Error */, \"Circular_definition_of_import_alias_0_2303\", \"Circular definition of import alias '{0}'.\"),\n  Cannot_find_name_0: diag(2304, 1 /* Error */, \"Cannot_find_name_0_2304\", \"Cannot find name '{0}'.\"),\n  Module_0_has_no_exported_member_1: diag(2305, 1 /* Error */, \"Module_0_has_no_exported_member_1_2305\", \"Module '{0}' has no exported member '{1}'.\"),\n  File_0_is_not_a_module: diag(2306, 1 /* Error */, \"File_0_is_not_a_module_2306\", \"File '{0}' is not a module.\"),\n  Cannot_find_module_0_or_its_corresponding_type_declarations: diag(2307, 1 /* Error */, \"Cannot_find_module_0_or_its_corresponding_type_declarations_2307\", \"Cannot find module '{0}' or its corresponding type declarations.\"),\n  Module_0_has_already_exported_a_member_named_1_Consider_explicitly_re_exporting_to_resolve_the_ambiguity: diag(2308, 1 /* Error */, \"Module_0_has_already_exported_a_member_named_1_Consider_explicitly_re_exporting_to_resolve_the_ambig_2308\", \"Module {0} has already exported a member named '{1}'. Consider explicitly re-exporting to resolve the ambiguity.\"),\n  An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements: diag(2309, 1 /* Error */, \"An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements_2309\", \"An export assignment cannot be used in a module with other exported elements.\"),\n  Type_0_recursively_references_itself_as_a_base_type: diag(2310, 1 /* Error */, \"Type_0_recursively_references_itself_as_a_base_type_2310\", \"Type '{0}' recursively references itself as a base type.\"),\n  Cannot_find_name_0_Did_you_mean_to_write_this_in_an_async_function: diag(2311, 1 /* Error */, \"Cannot_find_name_0_Did_you_mean_to_write_this_in_an_async_function_2311\", \"Cannot find name '{0}'. Did you mean to write this in an async function?\"),\n  An_interface_can_only_extend_an_object_type_or_intersection_of_object_types_with_statically_known_members: diag(2312, 1 /* Error */, \"An_interface_can_only_extend_an_object_type_or_intersection_of_object_types_with_statically_known_me_2312\", \"An interface can only extend an object type or intersection of object types with statically known members.\"),\n  Type_parameter_0_has_a_circular_constraint: diag(2313, 1 /* Error */, \"Type_parameter_0_has_a_circular_constraint_2313\", \"Type parameter '{0}' has a circular constraint.\"),\n  Generic_type_0_requires_1_type_argument_s: diag(2314, 1 /* Error */, \"Generic_type_0_requires_1_type_argument_s_2314\", \"Generic type '{0}' requires {1} type argument(s).\"),\n  Type_0_is_not_generic: diag(2315, 1 /* Error */, \"Type_0_is_not_generic_2315\", \"Type '{0}' is not generic.\"),\n  Global_type_0_must_be_a_class_or_interface_type: diag(2316, 1 /* Error */, \"Global_type_0_must_be_a_class_or_interface_type_2316\", \"Global type '{0}' must be a class or interface type.\"),\n  Global_type_0_must_have_1_type_parameter_s: diag(2317, 1 /* Error */, \"Global_type_0_must_have_1_type_parameter_s_2317\", \"Global type '{0}' must have {1} type parameter(s).\"),\n  Cannot_find_global_type_0: diag(2318, 1 /* Error */, \"Cannot_find_global_type_0_2318\", \"Cannot find global type '{0}'.\"),\n  Named_property_0_of_types_1_and_2_are_not_identical: diag(2319, 1 /* Error */, \"Named_property_0_of_types_1_and_2_are_not_identical_2319\", \"Named property '{0}' of types '{1}' and '{2}' are not identical.\"),\n  Interface_0_cannot_simultaneously_extend_types_1_and_2: diag(2320, 1 /* Error */, \"Interface_0_cannot_simultaneously_extend_types_1_and_2_2320\", \"Interface '{0}' cannot simultaneously extend types '{1}' and '{2}'.\"),\n  Excessive_stack_depth_comparing_types_0_and_1: diag(2321, 1 /* Error */, \"Excessive_stack_depth_comparing_types_0_and_1_2321\", \"Excessive stack depth comparing types '{0}' and '{1}'.\"),\n  Type_0_is_not_assignable_to_type_1: diag(2322, 1 /* Error */, \"Type_0_is_not_assignable_to_type_1_2322\", \"Type '{0}' is not assignable to type '{1}'.\"),\n  Cannot_redeclare_exported_variable_0: diag(2323, 1 /* Error */, \"Cannot_redeclare_exported_variable_0_2323\", \"Cannot redeclare exported variable '{0}'.\"),\n  Property_0_is_missing_in_type_1: diag(2324, 1 /* Error */, \"Property_0_is_missing_in_type_1_2324\", \"Property '{0}' is missing in type '{1}'.\"),\n  Property_0_is_private_in_type_1_but_not_in_type_2: diag(2325, 1 /* Error */, \"Property_0_is_private_in_type_1_but_not_in_type_2_2325\", \"Property '{0}' is private in type '{1}' but not in type '{2}'.\"),\n  Types_of_property_0_are_incompatible: diag(2326, 1 /* Error */, \"Types_of_property_0_are_incompatible_2326\", \"Types of property '{0}' are incompatible.\"),\n  Property_0_is_optional_in_type_1_but_required_in_type_2: diag(2327, 1 /* Error */, \"Property_0_is_optional_in_type_1_but_required_in_type_2_2327\", \"Property '{0}' is optional in type '{1}' but required in type '{2}'.\"),\n  Types_of_parameters_0_and_1_are_incompatible: diag(2328, 1 /* Error */, \"Types_of_parameters_0_and_1_are_incompatible_2328\", \"Types of parameters '{0}' and '{1}' are incompatible.\"),\n  Index_signature_for_type_0_is_missing_in_type_1: diag(2329, 1 /* Error */, \"Index_signature_for_type_0_is_missing_in_type_1_2329\", \"Index signature for type '{0}' is missing in type '{1}'.\"),\n  _0_and_1_index_signatures_are_incompatible: diag(2330, 1 /* Error */, \"_0_and_1_index_signatures_are_incompatible_2330\", \"'{0}' and '{1}' index signatures are incompatible.\"),\n  this_cannot_be_referenced_in_a_module_or_namespace_body: diag(2331, 1 /* Error */, \"this_cannot_be_referenced_in_a_module_or_namespace_body_2331\", \"'this' cannot be referenced in a module or namespace body.\"),\n  this_cannot_be_referenced_in_current_location: diag(2332, 1 /* Error */, \"this_cannot_be_referenced_in_current_location_2332\", \"'this' cannot be referenced in current location.\"),\n  this_cannot_be_referenced_in_a_static_property_initializer: diag(2334, 1 /* Error */, \"this_cannot_be_referenced_in_a_static_property_initializer_2334\", \"'this' cannot be referenced in a static property initializer.\"),\n  super_can_only_be_referenced_in_a_derived_class: diag(2335, 1 /* Error */, \"super_can_only_be_referenced_in_a_derived_class_2335\", \"'super' can only be referenced in a derived class.\"),\n  super_cannot_be_referenced_in_constructor_arguments: diag(2336, 1 /* Error */, \"super_cannot_be_referenced_in_constructor_arguments_2336\", \"'super' cannot be referenced in constructor arguments.\"),\n  Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors: diag(2337, 1 /* Error */, \"Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors_2337\", \"Super calls are not permitted outside constructors or in nested functions inside constructors.\"),\n  super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_derived_class: diag(2338, 1 /* Error */, \"super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_der_2338\", \"'super' property access is permitted only in a constructor, member function, or member accessor of a derived class.\"),\n  Property_0_does_not_exist_on_type_1: diag(2339, 1 /* Error */, \"Property_0_does_not_exist_on_type_1_2339\", \"Property '{0}' does not exist on type '{1}'.\"),\n  Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword: diag(2340, 1 /* Error */, \"Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword_2340\", \"Only public and protected methods of the base class are accessible via the 'super' keyword.\"),\n  Property_0_is_private_and_only_accessible_within_class_1: diag(2341, 1 /* Error */, \"Property_0_is_private_and_only_accessible_within_class_1_2341\", \"Property '{0}' is private and only accessible within class '{1}'.\"),\n  This_syntax_requires_an_imported_helper_named_1_which_does_not_exist_in_0_Consider_upgrading_your_version_of_0: diag(2343, 1 /* Error */, \"This_syntax_requires_an_imported_helper_named_1_which_does_not_exist_in_0_Consider_upgrading_your_ve_2343\", \"This syntax requires an imported helper named '{1}' which does not exist in '{0}'. Consider upgrading your version of '{0}'.\"),\n  Type_0_does_not_satisfy_the_constraint_1: diag(2344, 1 /* Error */, \"Type_0_does_not_satisfy_the_constraint_1_2344\", \"Type '{0}' does not satisfy the constraint '{1}'.\"),\n  Argument_of_type_0_is_not_assignable_to_parameter_of_type_1: diag(2345, 1 /* Error */, \"Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_2345\", \"Argument of type '{0}' is not assignable to parameter of type '{1}'.\"),\n  Call_target_does_not_contain_any_signatures: diag(2346, 1 /* Error */, \"Call_target_does_not_contain_any_signatures_2346\", \"Call target does not contain any signatures.\"),\n  Untyped_function_calls_may_not_accept_type_arguments: diag(2347, 1 /* Error */, \"Untyped_function_calls_may_not_accept_type_arguments_2347\", \"Untyped function calls may not accept type arguments.\"),\n  Value_of_type_0_is_not_callable_Did_you_mean_to_include_new: diag(2348, 1 /* Error */, \"Value_of_type_0_is_not_callable_Did_you_mean_to_include_new_2348\", \"Value of type '{0}' is not callable. Did you mean to include 'new'?\"),\n  This_expression_is_not_callable: diag(2349, 1 /* Error */, \"This_expression_is_not_callable_2349\", \"This expression is not callable.\"),\n  Only_a_void_function_can_be_called_with_the_new_keyword: diag(2350, 1 /* Error */, \"Only_a_void_function_can_be_called_with_the_new_keyword_2350\", \"Only a void function can be called with the 'new' keyword.\"),\n  This_expression_is_not_constructable: diag(2351, 1 /* Error */, \"This_expression_is_not_constructable_2351\", \"This expression is not constructable.\"),\n  Conversion_of_type_0_to_type_1_may_be_a_mistake_because_neither_type_sufficiently_overlaps_with_the_other_If_this_was_intentional_convert_the_expression_to_unknown_first: diag(2352, 1 /* Error */, \"Conversion_of_type_0_to_type_1_may_be_a_mistake_because_neither_type_sufficiently_overlaps_with_the__2352\", \"Conversion of type '{0}' to type '{1}' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first.\"),\n  Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1: diag(2353, 1 /* Error */, \"Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1_2353\", \"Object literal may only specify known properties, and '{0}' does not exist in type '{1}'.\"),\n  This_syntax_requires_an_imported_helper_but_module_0_cannot_be_found: diag(2354, 1 /* Error */, \"This_syntax_requires_an_imported_helper_but_module_0_cannot_be_found_2354\", \"This syntax requires an imported helper but module '{0}' cannot be found.\"),\n  A_function_whose_declared_type_is_neither_undefined_void_nor_any_must_return_a_value: diag(2355, 1 /* Error */, \"A_function_whose_declared_type_is_neither_undefined_void_nor_any_must_return_a_value_2355\", \"A function whose declared type is neither 'undefined', 'void', nor 'any' must return a value.\"),\n  An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type: diag(2356, 1 /* Error */, \"An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type_2356\", \"An arithmetic operand must be of type 'any', 'number', 'bigint' or an enum type.\"),\n  The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access: diag(2357, 1 /* Error */, \"The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access_2357\", \"The operand of an increment or decrement operator must be a variable or a property access.\"),\n  The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_parameter: diag(2358, 1 /* Error */, \"The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_paramete_2358\", \"The left-hand side of an 'instanceof' expression must be of type 'any', an object type or a type parameter.\"),\n  The_right_hand_side_of_an_instanceof_expression_must_be_either_of_type_any_a_class_function_or_other_type_assignable_to_the_Function_interface_type_or_an_object_type_with_a_Symbol_hasInstance_method: diag(2359, 1 /* Error */, \"The_right_hand_side_of_an_instanceof_expression_must_be_either_of_type_any_a_class_function_or_other_2359\", \"The right-hand side of an 'instanceof' expression must be either of type 'any', a class, function, or other type assignable to the 'Function' interface type, or an object type with a 'Symbol.hasInstance' method.\"),\n  The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type: diag(2362, 1 /* Error */, \"The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type_2362\", \"The left-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type.\"),\n  The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type: diag(2363, 1 /* Error */, \"The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type_2363\", \"The right-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type.\"),\n  The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access: diag(2364, 1 /* Error */, \"The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access_2364\", \"The left-hand side of an assignment expression must be a variable or a property access.\"),\n  Operator_0_cannot_be_applied_to_types_1_and_2: diag(2365, 1 /* Error */, \"Operator_0_cannot_be_applied_to_types_1_and_2_2365\", \"Operator '{0}' cannot be applied to types '{1}' and '{2}'.\"),\n  Function_lacks_ending_return_statement_and_return_type_does_not_include_undefined: diag(2366, 1 /* Error */, \"Function_lacks_ending_return_statement_and_return_type_does_not_include_undefined_2366\", \"Function lacks ending return statement and return type does not include 'undefined'.\"),\n  This_comparison_appears_to_be_unintentional_because_the_types_0_and_1_have_no_overlap: diag(2367, 1 /* Error */, \"This_comparison_appears_to_be_unintentional_because_the_types_0_and_1_have_no_overlap_2367\", \"This comparison appears to be unintentional because the types '{0}' and '{1}' have no overlap.\"),\n  Type_parameter_name_cannot_be_0: diag(2368, 1 /* Error */, \"Type_parameter_name_cannot_be_0_2368\", \"Type parameter name cannot be '{0}'.\"),\n  A_parameter_property_is_only_allowed_in_a_constructor_implementation: diag(2369, 1 /* Error */, \"A_parameter_property_is_only_allowed_in_a_constructor_implementation_2369\", \"A parameter property is only allowed in a constructor implementation.\"),\n  A_rest_parameter_must_be_of_an_array_type: diag(2370, 1 /* Error */, \"A_rest_parameter_must_be_of_an_array_type_2370\", \"A rest parameter must be of an array type.\"),\n  A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation: diag(2371, 1 /* Error */, \"A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation_2371\", \"A parameter initializer is only allowed in a function or constructor implementation.\"),\n  Parameter_0_cannot_reference_itself: diag(2372, 1 /* Error */, \"Parameter_0_cannot_reference_itself_2372\", \"Parameter '{0}' cannot reference itself.\"),\n  Parameter_0_cannot_reference_identifier_1_declared_after_it: diag(2373, 1 /* Error */, \"Parameter_0_cannot_reference_identifier_1_declared_after_it_2373\", \"Parameter '{0}' cannot reference identifier '{1}' declared after it.\"),\n  Duplicate_index_signature_for_type_0: diag(2374, 1 /* Error */, \"Duplicate_index_signature_for_type_0_2374\", \"Duplicate index signature for type '{0}'.\"),\n  Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties: diag(2375, 1 /* Error */, \"Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefi_2375\", \"Type '{0}' is not assignable to type '{1}' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the types of the target's properties.\"),\n  A_super_call_must_be_the_first_statement_in_the_constructor_to_refer_to_super_or_this_when_a_derived_class_contains_initialized_properties_parameter_properties_or_private_identifiers: diag(2376, 1 /* Error */, \"A_super_call_must_be_the_first_statement_in_the_constructor_to_refer_to_super_or_this_when_a_derived_2376\", \"A 'super' call must be the first statement in the constructor to refer to 'super' or 'this' when a derived class contains initialized properties, parameter properties, or private identifiers.\"),\n  Constructors_for_derived_classes_must_contain_a_super_call: diag(2377, 1 /* Error */, \"Constructors_for_derived_classes_must_contain_a_super_call_2377\", \"Constructors for derived classes must contain a 'super' call.\"),\n  A_get_accessor_must_return_a_value: diag(2378, 1 /* Error */, \"A_get_accessor_must_return_a_value_2378\", \"A 'get' accessor must return a value.\"),\n  Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties: diag(2379, 1 /* Error */, \"Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_with_exactOptionalPropertyTypes_Colon_tr_2379\", \"Argument of type '{0}' is not assignable to parameter of type '{1}' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the types of the target's properties.\"),\n  Overload_signatures_must_all_be_exported_or_non_exported: diag(2383, 1 /* Error */, \"Overload_signatures_must_all_be_exported_or_non_exported_2383\", \"Overload signatures must all be exported or non-exported.\"),\n  Overload_signatures_must_all_be_ambient_or_non_ambient: diag(2384, 1 /* Error */, \"Overload_signatures_must_all_be_ambient_or_non_ambient_2384\", \"Overload signatures must all be ambient or non-ambient.\"),\n  Overload_signatures_must_all_be_public_private_or_protected: diag(2385, 1 /* Error */, \"Overload_signatures_must_all_be_public_private_or_protected_2385\", \"Overload signatures must all be public, private or protected.\"),\n  Overload_signatures_must_all_be_optional_or_required: diag(2386, 1 /* Error */, \"Overload_signatures_must_all_be_optional_or_required_2386\", \"Overload signatures must all be optional or required.\"),\n  Function_overload_must_be_static: diag(2387, 1 /* Error */, \"Function_overload_must_be_static_2387\", \"Function overload must be static.\"),\n  Function_overload_must_not_be_static: diag(2388, 1 /* Error */, \"Function_overload_must_not_be_static_2388\", \"Function overload must not be static.\"),\n  Function_implementation_name_must_be_0: diag(2389, 1 /* Error */, \"Function_implementation_name_must_be_0_2389\", \"Function implementation name must be '{0}'.\"),\n  Constructor_implementation_is_missing: diag(2390, 1 /* Error */, \"Constructor_implementation_is_missing_2390\", \"Constructor implementation is missing.\"),\n  Function_implementation_is_missing_or_not_immediately_following_the_declaration: diag(2391, 1 /* Error */, \"Function_implementation_is_missing_or_not_immediately_following_the_declaration_2391\", \"Function implementation is missing or not immediately following the declaration.\"),\n  Multiple_constructor_implementations_are_not_allowed: diag(2392, 1 /* Error */, \"Multiple_constructor_implementations_are_not_allowed_2392\", \"Multiple constructor implementations are not allowed.\"),\n  Duplicate_function_implementation: diag(2393, 1 /* Error */, \"Duplicate_function_implementation_2393\", \"Duplicate function implementation.\"),\n  This_overload_signature_is_not_compatible_with_its_implementation_signature: diag(2394, 1 /* Error */, \"This_overload_signature_is_not_compatible_with_its_implementation_signature_2394\", \"This overload signature is not compatible with its implementation signature.\"),\n  Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local: diag(2395, 1 /* Error */, \"Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local_2395\", \"Individual declarations in merged declaration '{0}' must be all exported or all local.\"),\n  Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters: diag(2396, 1 /* Error */, \"Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters_2396\", \"Duplicate identifier 'arguments'. Compiler uses 'arguments' to initialize rest parameters.\"),\n  Declaration_name_conflicts_with_built_in_global_identifier_0: diag(2397, 1 /* Error */, \"Declaration_name_conflicts_with_built_in_global_identifier_0_2397\", \"Declaration name conflicts with built-in global identifier '{0}'.\"),\n  constructor_cannot_be_used_as_a_parameter_property_name: diag(2398, 1 /* Error */, \"constructor_cannot_be_used_as_a_parameter_property_name_2398\", \"'constructor' cannot be used as a parameter property name.\"),\n  Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference: diag(2399, 1 /* Error */, \"Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference_2399\", \"Duplicate identifier '_this'. Compiler uses variable declaration '_this' to capture 'this' reference.\"),\n  Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference: diag(2400, 1 /* Error */, \"Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference_2400\", \"Expression resolves to variable declaration '_this' that compiler uses to capture 'this' reference.\"),\n  A_super_call_must_be_a_root_level_statement_within_a_constructor_of_a_derived_class_that_contains_initialized_properties_parameter_properties_or_private_identifiers: diag(2401, 1 /* Error */, \"A_super_call_must_be_a_root_level_statement_within_a_constructor_of_a_derived_class_that_contains_in_2401\", \"A 'super' call must be a root-level statement within a constructor of a derived class that contains initialized properties, parameter properties, or private identifiers.\"),\n  Expression_resolves_to_super_that_compiler_uses_to_capture_base_class_reference: diag(2402, 1 /* Error */, \"Expression_resolves_to_super_that_compiler_uses_to_capture_base_class_reference_2402\", \"Expression resolves to '_super' that compiler uses to capture base class reference.\"),\n  Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_type_2: diag(2403, 1 /* Error */, \"Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_t_2403\", \"Subsequent variable declarations must have the same type.  Variable '{0}' must be of type '{1}', but here has type '{2}'.\"),\n  The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation: diag(2404, 1 /* Error */, \"The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation_2404\", \"The left-hand side of a 'for...in' statement cannot use a type annotation.\"),\n  The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any: diag(2405, 1 /* Error */, \"The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any_2405\", \"The left-hand side of a 'for...in' statement must be of type 'string' or 'any'.\"),\n  The_left_hand_side_of_a_for_in_statement_must_be_a_variable_or_a_property_access: diag(2406, 1 /* Error */, \"The_left_hand_side_of_a_for_in_statement_must_be_a_variable_or_a_property_access_2406\", \"The left-hand side of a 'for...in' statement must be a variable or a property access.\"),\n  The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter_but_here_has_type_0: diag(2407, 1 /* Error */, \"The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter_but_2407\", \"The right-hand side of a 'for...in' statement must be of type 'any', an object type or a type parameter, but here has type '{0}'.\"),\n  Setters_cannot_return_a_value: diag(2408, 1 /* Error */, \"Setters_cannot_return_a_value_2408\", \"Setters cannot return a value.\"),\n  Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class: diag(2409, 1 /* Error */, \"Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class_2409\", \"Return type of constructor signature must be assignable to the instance type of the class.\"),\n  The_with_statement_is_not_supported_All_symbols_in_a_with_block_will_have_type_any: diag(2410, 1 /* Error */, \"The_with_statement_is_not_supported_All_symbols_in_a_with_block_will_have_type_any_2410\", \"The 'with' statement is not supported. All symbols in a 'with' block will have type 'any'.\"),\n  Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_type_of_the_target: diag(2412, 1 /* Error */, \"Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefi_2412\", \"Type '{0}' is not assignable to type '{1}' with 'exactOptionalPropertyTypes: true'. Consider adding 'undefined' to the type of the target.\"),\n  Property_0_of_type_1_is_not_assignable_to_2_index_type_3: diag(2411, 1 /* Error */, \"Property_0_of_type_1_is_not_assignable_to_2_index_type_3_2411\", \"Property '{0}' of type '{1}' is not assignable to '{2}' index type '{3}'.\"),\n  _0_index_type_1_is_not_assignable_to_2_index_type_3: diag(2413, 1 /* Error */, \"_0_index_type_1_is_not_assignable_to_2_index_type_3_2413\", \"'{0}' index type '{1}' is not assignable to '{2}' index type '{3}'.\"),\n  Class_name_cannot_be_0: diag(2414, 1 /* Error */, \"Class_name_cannot_be_0_2414\", \"Class name cannot be '{0}'.\"),\n  Class_0_incorrectly_extends_base_class_1: diag(2415, 1 /* Error */, \"Class_0_incorrectly_extends_base_class_1_2415\", \"Class '{0}' incorrectly extends base class '{1}'.\"),\n  Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2: diag(2416, 1 /* Error */, \"Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2_2416\", \"Property '{0}' in type '{1}' is not assignable to the same property in base type '{2}'.\"),\n  Class_static_side_0_incorrectly_extends_base_class_static_side_1: diag(2417, 1 /* Error */, \"Class_static_side_0_incorrectly_extends_base_class_static_side_1_2417\", \"Class static side '{0}' incorrectly extends base class static side '{1}'.\"),\n  Type_of_computed_property_s_value_is_0_which_is_not_assignable_to_type_1: diag(2418, 1 /* Error */, \"Type_of_computed_property_s_value_is_0_which_is_not_assignable_to_type_1_2418\", \"Type of computed property's value is '{0}', which is not assignable to type '{1}'.\"),\n  Types_of_construct_signatures_are_incompatible: diag(2419, 1 /* Error */, \"Types_of_construct_signatures_are_incompatible_2419\", \"Types of construct signatures are incompatible.\"),\n  Class_0_incorrectly_implements_interface_1: diag(2420, 1 /* Error */, \"Class_0_incorrectly_implements_interface_1_2420\", \"Class '{0}' incorrectly implements interface '{1}'.\"),\n  A_class_can_only_implement_an_object_type_or_intersection_of_object_types_with_statically_known_members: diag(2422, 1 /* Error */, \"A_class_can_only_implement_an_object_type_or_intersection_of_object_types_with_statically_known_memb_2422\", \"A class can only implement an object type or intersection of object types with statically known members.\"),\n  Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_accessor: diag(2423, 1 /* Error */, \"Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_access_2423\", \"Class '{0}' defines instance member function '{1}', but extended class '{2}' defines it as instance member accessor.\"),\n  Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_function: diag(2425, 1 /* Error */, \"Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_functi_2425\", \"Class '{0}' defines instance member property '{1}', but extended class '{2}' defines it as instance member function.\"),\n  Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_function: diag(2426, 1 /* Error */, \"Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_functi_2426\", \"Class '{0}' defines instance member accessor '{1}', but extended class '{2}' defines it as instance member function.\"),\n  Interface_name_cannot_be_0: diag(2427, 1 /* Error */, \"Interface_name_cannot_be_0_2427\", \"Interface name cannot be '{0}'.\"),\n  All_declarations_of_0_must_have_identical_type_parameters: diag(2428, 1 /* Error */, \"All_declarations_of_0_must_have_identical_type_parameters_2428\", \"All declarations of '{0}' must have identical type parameters.\"),\n  Interface_0_incorrectly_extends_interface_1: diag(2430, 1 /* Error */, \"Interface_0_incorrectly_extends_interface_1_2430\", \"Interface '{0}' incorrectly extends interface '{1}'.\"),\n  Enum_name_cannot_be_0: diag(2431, 1 /* Error */, \"Enum_name_cannot_be_0_2431\", \"Enum name cannot be '{0}'.\"),\n  In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enum_element: diag(2432, 1 /* Error */, \"In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enu_2432\", \"In an enum with multiple declarations, only one declaration can omit an initializer for its first enum element.\"),\n  A_namespace_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merged: diag(2433, 1 /* Error */, \"A_namespace_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merg_2433\", \"A namespace declaration cannot be in a different file from a class or function with which it is merged.\"),\n  A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged: diag(2434, 1 /* Error */, \"A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged_2434\", \"A namespace declaration cannot be located prior to a class or function with which it is merged.\"),\n  Ambient_modules_cannot_be_nested_in_other_modules_or_namespaces: diag(2435, 1 /* Error */, \"Ambient_modules_cannot_be_nested_in_other_modules_or_namespaces_2435\", \"Ambient modules cannot be nested in other modules or namespaces.\"),\n  Ambient_module_declaration_cannot_specify_relative_module_name: diag(2436, 1 /* Error */, \"Ambient_module_declaration_cannot_specify_relative_module_name_2436\", \"Ambient module declaration cannot specify relative module name.\"),\n  Module_0_is_hidden_by_a_local_declaration_with_the_same_name: diag(2437, 1 /* Error */, \"Module_0_is_hidden_by_a_local_declaration_with_the_same_name_2437\", \"Module '{0}' is hidden by a local declaration with the same name.\"),\n  Import_name_cannot_be_0: diag(2438, 1 /* Error */, \"Import_name_cannot_be_0_2438\", \"Import name cannot be '{0}'.\"),\n  Import_or_export_declaration_in_an_ambient_module_declaration_cannot_reference_module_through_relative_module_name: diag(2439, 1 /* Error */, \"Import_or_export_declaration_in_an_ambient_module_declaration_cannot_reference_module_through_relati_2439\", \"Import or export declaration in an ambient module declaration cannot reference module through relative module name.\"),\n  Import_declaration_conflicts_with_local_declaration_of_0: diag(2440, 1 /* Error */, \"Import_declaration_conflicts_with_local_declaration_of_0_2440\", \"Import declaration conflicts with local declaration of '{0}'.\"),\n  Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module: diag(2441, 1 /* Error */, \"Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_2441\", \"Duplicate identifier '{0}'. Compiler reserves name '{1}' in top level scope of a module.\"),\n  Types_have_separate_declarations_of_a_private_property_0: diag(2442, 1 /* Error */, \"Types_have_separate_declarations_of_a_private_property_0_2442\", \"Types have separate declarations of a private property '{0}'.\"),\n  Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2: diag(2443, 1 /* Error */, \"Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2_2443\", \"Property '{0}' is protected but type '{1}' is not a class derived from '{2}'.\"),\n  Property_0_is_protected_in_type_1_but_public_in_type_2: diag(2444, 1 /* Error */, \"Property_0_is_protected_in_type_1_but_public_in_type_2_2444\", \"Property '{0}' is protected in type '{1}' but public in type '{2}'.\"),\n  Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses: diag(2445, 1 /* Error */, \"Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses_2445\", \"Property '{0}' is protected and only accessible within class '{1}' and its subclasses.\"),\n  Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1_This_is_an_instance_of_class_2: diag(2446, 1 /* Error */, \"Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1_This_is_an_instance_of_cl_2446\", \"Property '{0}' is protected and only accessible through an instance of class '{1}'. This is an instance of class '{2}'.\"),\n  The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead: diag(2447, 1 /* Error */, \"The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead_2447\", \"The '{0}' operator is not allowed for boolean types. Consider using '{1}' instead.\"),\n  Block_scoped_variable_0_used_before_its_declaration: diag(2448, 1 /* Error */, \"Block_scoped_variable_0_used_before_its_declaration_2448\", \"Block-scoped variable '{0}' used before its declaration.\"),\n  Class_0_used_before_its_declaration: diag(2449, 1 /* Error */, \"Class_0_used_before_its_declaration_2449\", \"Class '{0}' used before its declaration.\"),\n  Enum_0_used_before_its_declaration: diag(2450, 1 /* Error */, \"Enum_0_used_before_its_declaration_2450\", \"Enum '{0}' used before its declaration.\"),\n  Cannot_redeclare_block_scoped_variable_0: diag(2451, 1 /* Error */, \"Cannot_redeclare_block_scoped_variable_0_2451\", \"Cannot redeclare block-scoped variable '{0}'.\"),\n  An_enum_member_cannot_have_a_numeric_name: diag(2452, 1 /* Error */, \"An_enum_member_cannot_have_a_numeric_name_2452\", \"An enum member cannot have a numeric name.\"),\n  Variable_0_is_used_before_being_assigned: diag(2454, 1 /* Error */, \"Variable_0_is_used_before_being_assigned_2454\", \"Variable '{0}' is used before being assigned.\"),\n  Type_alias_0_circularly_references_itself: diag(2456, 1 /* Error */, \"Type_alias_0_circularly_references_itself_2456\", \"Type alias '{0}' circularly references itself.\"),\n  Type_alias_name_cannot_be_0: diag(2457, 1 /* Error */, \"Type_alias_name_cannot_be_0_2457\", \"Type alias name cannot be '{0}'.\"),\n  An_AMD_module_cannot_have_multiple_name_assignments: diag(2458, 1 /* Error */, \"An_AMD_module_cannot_have_multiple_name_assignments_2458\", \"An AMD module cannot have multiple name assignments.\"),\n  Module_0_declares_1_locally_but_it_is_not_exported: diag(2459, 1 /* Error */, \"Module_0_declares_1_locally_but_it_is_not_exported_2459\", \"Module '{0}' declares '{1}' locally, but it is not exported.\"),\n  Module_0_declares_1_locally_but_it_is_exported_as_2: diag(2460, 1 /* Error */, \"Module_0_declares_1_locally_but_it_is_exported_as_2_2460\", \"Module '{0}' declares '{1}' locally, but it is exported as '{2}'.\"),\n  Type_0_is_not_an_array_type: diag(2461, 1 /* Error */, \"Type_0_is_not_an_array_type_2461\", \"Type '{0}' is not an array type.\"),\n  A_rest_element_must_be_last_in_a_destructuring_pattern: diag(2462, 1 /* Error */, \"A_rest_element_must_be_last_in_a_destructuring_pattern_2462\", \"A rest element must be last in a destructuring pattern.\"),\n  A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature: diag(2463, 1 /* Error */, \"A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature_2463\", \"A binding pattern parameter cannot be optional in an implementation signature.\"),\n  A_computed_property_name_must_be_of_type_string_number_symbol_or_any: diag(2464, 1 /* Error */, \"A_computed_property_name_must_be_of_type_string_number_symbol_or_any_2464\", \"A computed property name must be of type 'string', 'number', 'symbol', or 'any'.\"),\n  this_cannot_be_referenced_in_a_computed_property_name: diag(2465, 1 /* Error */, \"this_cannot_be_referenced_in_a_computed_property_name_2465\", \"'this' cannot be referenced in a computed property name.\"),\n  super_cannot_be_referenced_in_a_computed_property_name: diag(2466, 1 /* Error */, \"super_cannot_be_referenced_in_a_computed_property_name_2466\", \"'super' cannot be referenced in a computed property name.\"),\n  A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type: diag(2467, 1 /* Error */, \"A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type_2467\", \"A computed property name cannot reference a type parameter from its containing type.\"),\n  Cannot_find_global_value_0: diag(2468, 1 /* Error */, \"Cannot_find_global_value_0_2468\", \"Cannot find global value '{0}'.\"),\n  The_0_operator_cannot_be_applied_to_type_symbol: diag(2469, 1 /* Error */, \"The_0_operator_cannot_be_applied_to_type_symbol_2469\", \"The '{0}' operator cannot be applied to type 'symbol'.\"),\n  Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_5_and_higher: diag(2472, 1 /* Error */, \"Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_5_and_higher_2472\", \"Spread operator in 'new' expressions is only available when targeting ECMAScript 5 and higher.\"),\n  Enum_declarations_must_all_be_const_or_non_const: diag(2473, 1 /* Error */, \"Enum_declarations_must_all_be_const_or_non_const_2473\", \"Enum declarations must all be const or non-const.\"),\n  const_enum_member_initializers_must_be_constant_expressions: diag(2474, 1 /* Error */, \"const_enum_member_initializers_must_be_constant_expressions_2474\", \"const enum member initializers must be constant expressions.\"),\n  const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_import_declaration_or_export_assignment_or_type_query: diag(2475, 1 /* Error */, \"const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_im_2475\", \"'const' enums can only be used in property or index access expressions or the right hand side of an import declaration or export assignment or type query.\"),\n  A_const_enum_member_can_only_be_accessed_using_a_string_literal: diag(2476, 1 /* Error */, \"A_const_enum_member_can_only_be_accessed_using_a_string_literal_2476\", \"A const enum member can only be accessed using a string literal.\"),\n  const_enum_member_initializer_was_evaluated_to_a_non_finite_value: diag(2477, 1 /* Error */, \"const_enum_member_initializer_was_evaluated_to_a_non_finite_value_2477\", \"'const' enum member initializer was evaluated to a non-finite value.\"),\n  const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN: diag(2478, 1 /* Error */, \"const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN_2478\", \"'const' enum member initializer was evaluated to disallowed value 'NaN'.\"),\n  let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations: diag(2480, 1 /* Error */, \"let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations_2480\", \"'let' is not allowed to be used as a name in 'let' or 'const' declarations.\"),\n  Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1: diag(2481, 1 /* Error */, \"Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1_2481\", \"Cannot initialize outer scoped variable '{0}' in the same scope as block scoped declaration '{1}'.\"),\n  The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation: diag(2483, 1 /* Error */, \"The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation_2483\", \"The left-hand side of a 'for...of' statement cannot use a type annotation.\"),\n  Export_declaration_conflicts_with_exported_declaration_of_0: diag(2484, 1 /* Error */, \"Export_declaration_conflicts_with_exported_declaration_of_0_2484\", \"Export declaration conflicts with exported declaration of '{0}'.\"),\n  The_left_hand_side_of_a_for_of_statement_must_be_a_variable_or_a_property_access: diag(2487, 1 /* Error */, \"The_left_hand_side_of_a_for_of_statement_must_be_a_variable_or_a_property_access_2487\", \"The left-hand side of a 'for...of' statement must be a variable or a property access.\"),\n  Type_0_must_have_a_Symbol_iterator_method_that_returns_an_iterator: diag(2488, 1 /* Error */, \"Type_0_must_have_a_Symbol_iterator_method_that_returns_an_iterator_2488\", \"Type '{0}' must have a '[Symbol.iterator]()' method that returns an iterator.\"),\n  An_iterator_must_have_a_next_method: diag(2489, 1 /* Error */, \"An_iterator_must_have_a_next_method_2489\", \"An iterator must have a 'next()' method.\"),\n  The_type_returned_by_the_0_method_of_an_iterator_must_have_a_value_property: diag(2490, 1 /* Error */, \"The_type_returned_by_the_0_method_of_an_iterator_must_have_a_value_property_2490\", \"The type returned by the '{0}()' method of an iterator must have a 'value' property.\"),\n  The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern: diag(2491, 1 /* Error */, \"The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern_2491\", \"The left-hand side of a 'for...in' statement cannot be a destructuring pattern.\"),\n  Cannot_redeclare_identifier_0_in_catch_clause: diag(2492, 1 /* Error */, \"Cannot_redeclare_identifier_0_in_catch_clause_2492\", \"Cannot redeclare identifier '{0}' in catch clause.\"),\n  Tuple_type_0_of_length_1_has_no_element_at_index_2: diag(2493, 1 /* Error */, \"Tuple_type_0_of_length_1_has_no_element_at_index_2_2493\", \"Tuple type '{0}' of length '{1}' has no element at index '{2}'.\"),\n  Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher: diag(2494, 1 /* Error */, \"Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher_2494\", \"Using a string in a 'for...of' statement is only supported in ECMAScript 5 and higher.\"),\n  Type_0_is_not_an_array_type_or_a_string_type: diag(2495, 1 /* Error */, \"Type_0_is_not_an_array_type_or_a_string_type_2495\", \"Type '{0}' is not an array type or a string type.\"),\n  The_arguments_object_cannot_be_referenced_in_an_arrow_function_in_ES5_Consider_using_a_standard_function_expression: diag(2496, 1 /* Error */, \"The_arguments_object_cannot_be_referenced_in_an_arrow_function_in_ES5_Consider_using_a_standard_func_2496\", \"The 'arguments' object cannot be referenced in an arrow function in ES5. Consider using a standard function expression.\"),\n  This_module_can_only_be_referenced_with_ECMAScript_imports_Slashexports_by_turning_on_the_0_flag_and_referencing_its_default_export: diag(2497, 1 /* Error */, \"This_module_can_only_be_referenced_with_ECMAScript_imports_Slashexports_by_turning_on_the_0_flag_and_2497\", \"This module can only be referenced with ECMAScript imports/exports by turning on the '{0}' flag and referencing its default export.\"),\n  Module_0_uses_export_and_cannot_be_used_with_export_Asterisk: diag(2498, 1 /* Error */, \"Module_0_uses_export_and_cannot_be_used_with_export_Asterisk_2498\", \"Module '{0}' uses 'export =' and cannot be used with 'export *'.\"),\n  An_interface_can_only_extend_an_identifier_Slashqualified_name_with_optional_type_arguments: diag(2499, 1 /* Error */, \"An_interface_can_only_extend_an_identifier_Slashqualified_name_with_optional_type_arguments_2499\", \"An interface can only extend an identifier/qualified-name with optional type arguments.\"),\n  A_class_can_only_implement_an_identifier_Slashqualified_name_with_optional_type_arguments: diag(2500, 1 /* Error */, \"A_class_can_only_implement_an_identifier_Slashqualified_name_with_optional_type_arguments_2500\", \"A class can only implement an identifier/qualified-name with optional type arguments.\"),\n  A_rest_element_cannot_contain_a_binding_pattern: diag(2501, 1 /* Error */, \"A_rest_element_cannot_contain_a_binding_pattern_2501\", \"A rest element cannot contain a binding pattern.\"),\n  _0_is_referenced_directly_or_indirectly_in_its_own_type_annotation: diag(2502, 1 /* Error */, \"_0_is_referenced_directly_or_indirectly_in_its_own_type_annotation_2502\", \"'{0}' is referenced directly or indirectly in its own type annotation.\"),\n  Cannot_find_namespace_0: diag(2503, 1 /* Error */, \"Cannot_find_namespace_0_2503\", \"Cannot find namespace '{0}'.\"),\n  Type_0_must_have_a_Symbol_asyncIterator_method_that_returns_an_async_iterator: diag(2504, 1 /* Error */, \"Type_0_must_have_a_Symbol_asyncIterator_method_that_returns_an_async_iterator_2504\", \"Type '{0}' must have a '[Symbol.asyncIterator]()' method that returns an async iterator.\"),\n  A_generator_cannot_have_a_void_type_annotation: diag(2505, 1 /* Error */, \"A_generator_cannot_have_a_void_type_annotation_2505\", \"A generator cannot have a 'void' type annotation.\"),\n  _0_is_referenced_directly_or_indirectly_in_its_own_base_expression: diag(2506, 1 /* Error */, \"_0_is_referenced_directly_or_indirectly_in_its_own_base_expression_2506\", \"'{0}' is referenced directly or indirectly in its own base expression.\"),\n  Type_0_is_not_a_constructor_function_type: diag(2507, 1 /* Error */, \"Type_0_is_not_a_constructor_function_type_2507\", \"Type '{0}' is not a constructor function type.\"),\n  No_base_constructor_has_the_specified_number_of_type_arguments: diag(2508, 1 /* Error */, \"No_base_constructor_has_the_specified_number_of_type_arguments_2508\", \"No base constructor has the specified number of type arguments.\"),\n  Base_constructor_return_type_0_is_not_an_object_type_or_intersection_of_object_types_with_statically_known_members: diag(2509, 1 /* Error */, \"Base_constructor_return_type_0_is_not_an_object_type_or_intersection_of_object_types_with_statically_2509\", \"Base constructor return type '{0}' is not an object type or intersection of object types with statically known members.\"),\n  Base_constructors_must_all_have_the_same_return_type: diag(2510, 1 /* Error */, \"Base_constructors_must_all_have_the_same_return_type_2510\", \"Base constructors must all have the same return type.\"),\n  Cannot_create_an_instance_of_an_abstract_class: diag(2511, 1 /* Error */, \"Cannot_create_an_instance_of_an_abstract_class_2511\", \"Cannot create an instance of an abstract class.\"),\n  Overload_signatures_must_all_be_abstract_or_non_abstract: diag(2512, 1 /* Error */, \"Overload_signatures_must_all_be_abstract_or_non_abstract_2512\", \"Overload signatures must all be abstract or non-abstract.\"),\n  Abstract_method_0_in_class_1_cannot_be_accessed_via_super_expression: diag(2513, 1 /* Error */, \"Abstract_method_0_in_class_1_cannot_be_accessed_via_super_expression_2513\", \"Abstract method '{0}' in class '{1}' cannot be accessed via super expression.\"),\n  A_tuple_type_cannot_be_indexed_with_a_negative_value: diag(2514, 1 /* Error */, \"A_tuple_type_cannot_be_indexed_with_a_negative_value_2514\", \"A tuple type cannot be indexed with a negative value.\"),\n  Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_class_2: diag(2515, 1 /* Error */, \"Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_class_2_2515\", \"Non-abstract class '{0}' does not implement inherited abstract member {1} from class '{2}'.\"),\n  All_declarations_of_an_abstract_method_must_be_consecutive: diag(2516, 1 /* Error */, \"All_declarations_of_an_abstract_method_must_be_consecutive_2516\", \"All declarations of an abstract method must be consecutive.\"),\n  Cannot_assign_an_abstract_constructor_type_to_a_non_abstract_constructor_type: diag(2517, 1 /* Error */, \"Cannot_assign_an_abstract_constructor_type_to_a_non_abstract_constructor_type_2517\", \"Cannot assign an abstract constructor type to a non-abstract constructor type.\"),\n  A_this_based_type_guard_is_not_compatible_with_a_parameter_based_type_guard: diag(2518, 1 /* Error */, \"A_this_based_type_guard_is_not_compatible_with_a_parameter_based_type_guard_2518\", \"A 'this'-based type guard is not compatible with a parameter-based type guard.\"),\n  An_async_iterator_must_have_a_next_method: diag(2519, 1 /* Error */, \"An_async_iterator_must_have_a_next_method_2519\", \"An async iterator must have a 'next()' method.\"),\n  Duplicate_identifier_0_Compiler_uses_declaration_1_to_support_async_functions: diag(2520, 1 /* Error */, \"Duplicate_identifier_0_Compiler_uses_declaration_1_to_support_async_functions_2520\", \"Duplicate identifier '{0}'. Compiler uses declaration '{1}' to support async functions.\"),\n  The_arguments_object_cannot_be_referenced_in_an_async_function_or_method_in_ES5_Consider_using_a_standard_function_or_method: diag(2522, 1 /* Error */, \"The_arguments_object_cannot_be_referenced_in_an_async_function_or_method_in_ES5_Consider_using_a_sta_2522\", \"The 'arguments' object cannot be referenced in an async function or method in ES5. Consider using a standard function or method.\"),\n  yield_expressions_cannot_be_used_in_a_parameter_initializer: diag(2523, 1 /* Error */, \"yield_expressions_cannot_be_used_in_a_parameter_initializer_2523\", \"'yield' expressions cannot be used in a parameter initializer.\"),\n  await_expressions_cannot_be_used_in_a_parameter_initializer: diag(2524, 1 /* Error */, \"await_expressions_cannot_be_used_in_a_parameter_initializer_2524\", \"'await' expressions cannot be used in a parameter initializer.\"),\n  A_this_type_is_available_only_in_a_non_static_member_of_a_class_or_interface: diag(2526, 1 /* Error */, \"A_this_type_is_available_only_in_a_non_static_member_of_a_class_or_interface_2526\", \"A 'this' type is available only in a non-static member of a class or interface.\"),\n  The_inferred_type_of_0_references_an_inaccessible_1_type_A_type_annotation_is_necessary: diag(2527, 1 /* Error */, \"The_inferred_type_of_0_references_an_inaccessible_1_type_A_type_annotation_is_necessary_2527\", \"The inferred type of '{0}' references an inaccessible '{1}' type. A type annotation is necessary.\"),\n  A_module_cannot_have_multiple_default_exports: diag(2528, 1 /* Error */, \"A_module_cannot_have_multiple_default_exports_2528\", \"A module cannot have multiple default exports.\"),\n  Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_containing_async_functions: diag(2529, 1 /* Error */, \"Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_containing_async_func_2529\", \"Duplicate identifier '{0}'. Compiler reserves name '{1}' in top level scope of a module containing async functions.\"),\n  Property_0_is_incompatible_with_index_signature: diag(2530, 1 /* Error */, \"Property_0_is_incompatible_with_index_signature_2530\", \"Property '{0}' is incompatible with index signature.\"),\n  Object_is_possibly_null: diag(2531, 1 /* Error */, \"Object_is_possibly_null_2531\", \"Object is possibly 'null'.\"),\n  Object_is_possibly_undefined: diag(2532, 1 /* Error */, \"Object_is_possibly_undefined_2532\", \"Object is possibly 'undefined'.\"),\n  Object_is_possibly_null_or_undefined: diag(2533, 1 /* Error */, \"Object_is_possibly_null_or_undefined_2533\", \"Object is possibly 'null' or 'undefined'.\"),\n  A_function_returning_never_cannot_have_a_reachable_end_point: diag(2534, 1 /* Error */, \"A_function_returning_never_cannot_have_a_reachable_end_point_2534\", \"A function returning 'never' cannot have a reachable end point.\"),\n  Type_0_cannot_be_used_to_index_type_1: diag(2536, 1 /* Error */, \"Type_0_cannot_be_used_to_index_type_1_2536\", \"Type '{0}' cannot be used to index type '{1}'.\"),\n  Type_0_has_no_matching_index_signature_for_type_1: diag(2537, 1 /* Error */, \"Type_0_has_no_matching_index_signature_for_type_1_2537\", \"Type '{0}' has no matching index signature for type '{1}'.\"),\n  Type_0_cannot_be_used_as_an_index_type: diag(2538, 1 /* Error */, \"Type_0_cannot_be_used_as_an_index_type_2538\", \"Type '{0}' cannot be used as an index type.\"),\n  Cannot_assign_to_0_because_it_is_not_a_variable: diag(2539, 1 /* Error */, \"Cannot_assign_to_0_because_it_is_not_a_variable_2539\", \"Cannot assign to '{0}' because it is not a variable.\"),\n  Cannot_assign_to_0_because_it_is_a_read_only_property: diag(2540, 1 /* Error */, \"Cannot_assign_to_0_because_it_is_a_read_only_property_2540\", \"Cannot assign to '{0}' because it is a read-only property.\"),\n  Index_signature_in_type_0_only_permits_reading: diag(2542, 1 /* Error */, \"Index_signature_in_type_0_only_permits_reading_2542\", \"Index signature in type '{0}' only permits reading.\"),\n  Duplicate_identifier_newTarget_Compiler_uses_variable_declaration_newTarget_to_capture_new_target_meta_property_reference: diag(2543, 1 /* Error */, \"Duplicate_identifier_newTarget_Compiler_uses_variable_declaration_newTarget_to_capture_new_target_me_2543\", \"Duplicate identifier '_newTarget'. Compiler uses variable declaration '_newTarget' to capture 'new.target' meta-property reference.\"),\n  Expression_resolves_to_variable_declaration_newTarget_that_compiler_uses_to_capture_new_target_meta_property_reference: diag(2544, 1 /* Error */, \"Expression_resolves_to_variable_declaration_newTarget_that_compiler_uses_to_capture_new_target_meta__2544\", \"Expression resolves to variable declaration '_newTarget' that compiler uses to capture 'new.target' meta-property reference.\"),\n  A_mixin_class_must_have_a_constructor_with_a_single_rest_parameter_of_type_any: diag(2545, 1 /* Error */, \"A_mixin_class_must_have_a_constructor_with_a_single_rest_parameter_of_type_any_2545\", \"A mixin class must have a constructor with a single rest parameter of type 'any[]'.\"),\n  The_type_returned_by_the_0_method_of_an_async_iterator_must_be_a_promise_for_a_type_with_a_value_property: diag(2547, 1 /* Error */, \"The_type_returned_by_the_0_method_of_an_async_iterator_must_be_a_promise_for_a_type_with_a_value_pro_2547\", \"The type returned by the '{0}()' method of an async iterator must be a promise for a type with a 'value' property.\"),\n  Type_0_is_not_an_array_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator: diag(2548, 1 /* Error */, \"Type_0_is_not_an_array_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator_2548\", \"Type '{0}' is not an array type or does not have a '[Symbol.iterator]()' method that returns an iterator.\"),\n  Type_0_is_not_an_array_type_or_a_string_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator: diag(2549, 1 /* Error */, \"Type_0_is_not_an_array_type_or_a_string_type_or_does_not_have_a_Symbol_iterator_method_that_returns__2549\", \"Type '{0}' is not an array type or a string type or does not have a '[Symbol.iterator]()' method that returns an iterator.\"),\n  Property_0_does_not_exist_on_type_1_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_2_or_later: diag(2550, 1 /* Error */, \"Property_0_does_not_exist_on_type_1_Do_you_need_to_change_your_target_library_Try_changing_the_lib_c_2550\", \"Property '{0}' does not exist on type '{1}'. Do you need to change your target library? Try changing the 'lib' compiler option to '{2}' or later.\"),\n  Property_0_does_not_exist_on_type_1_Did_you_mean_2: diag(2551, 1 /* Error */, \"Property_0_does_not_exist_on_type_1_Did_you_mean_2_2551\", \"Property '{0}' does not exist on type '{1}'. Did you mean '{2}'?\"),\n  Cannot_find_name_0_Did_you_mean_1: diag(2552, 1 /* Error */, \"Cannot_find_name_0_Did_you_mean_1_2552\", \"Cannot find name '{0}'. Did you mean '{1}'?\"),\n  Computed_values_are_not_permitted_in_an_enum_with_string_valued_members: diag(2553, 1 /* Error */, \"Computed_values_are_not_permitted_in_an_enum_with_string_valued_members_2553\", \"Computed values are not permitted in an enum with string valued members.\"),\n  Expected_0_arguments_but_got_1: diag(2554, 1 /* Error */, \"Expected_0_arguments_but_got_1_2554\", \"Expected {0} arguments, but got {1}.\"),\n  Expected_at_least_0_arguments_but_got_1: diag(2555, 1 /* Error */, \"Expected_at_least_0_arguments_but_got_1_2555\", \"Expected at least {0} arguments, but got {1}.\"),\n  A_spread_argument_must_either_have_a_tuple_type_or_be_passed_to_a_rest_parameter: diag(2556, 1 /* Error */, \"A_spread_argument_must_either_have_a_tuple_type_or_be_passed_to_a_rest_parameter_2556\", \"A spread argument must either have a tuple type or be passed to a rest parameter.\"),\n  Expected_0_type_arguments_but_got_1: diag(2558, 1 /* Error */, \"Expected_0_type_arguments_but_got_1_2558\", \"Expected {0} type arguments, but got {1}.\"),\n  Type_0_has_no_properties_in_common_with_type_1: diag(2559, 1 /* Error */, \"Type_0_has_no_properties_in_common_with_type_1_2559\", \"Type '{0}' has no properties in common with type '{1}'.\"),\n  Value_of_type_0_has_no_properties_in_common_with_type_1_Did_you_mean_to_call_it: diag(2560, 1 /* Error */, \"Value_of_type_0_has_no_properties_in_common_with_type_1_Did_you_mean_to_call_it_2560\", \"Value of type '{0}' has no properties in common with type '{1}'. Did you mean to call it?\"),\n  Object_literal_may_only_specify_known_properties_but_0_does_not_exist_in_type_1_Did_you_mean_to_write_2: diag(2561, 1 /* Error */, \"Object_literal_may_only_specify_known_properties_but_0_does_not_exist_in_type_1_Did_you_mean_to_writ_2561\", \"Object literal may only specify known properties, but '{0}' does not exist in type '{1}'. Did you mean to write '{2}'?\"),\n  Base_class_expressions_cannot_reference_class_type_parameters: diag(2562, 1 /* Error */, \"Base_class_expressions_cannot_reference_class_type_parameters_2562\", \"Base class expressions cannot reference class type parameters.\"),\n  The_containing_function_or_module_body_is_too_large_for_control_flow_analysis: diag(2563, 1 /* Error */, \"The_containing_function_or_module_body_is_too_large_for_control_flow_analysis_2563\", \"The containing function or module body is too large for control flow analysis.\"),\n  Property_0_has_no_initializer_and_is_not_definitely_assigned_in_the_constructor: diag(2564, 1 /* Error */, \"Property_0_has_no_initializer_and_is_not_definitely_assigned_in_the_constructor_2564\", \"Property '{0}' has no initializer and is not definitely assigned in the constructor.\"),\n  Property_0_is_used_before_being_assigned: diag(2565, 1 /* Error */, \"Property_0_is_used_before_being_assigned_2565\", \"Property '{0}' is used before being assigned.\"),\n  A_rest_element_cannot_have_a_property_name: diag(2566, 1 /* Error */, \"A_rest_element_cannot_have_a_property_name_2566\", \"A rest element cannot have a property name.\"),\n  Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations: diag(2567, 1 /* Error */, \"Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations_2567\", \"Enum declarations can only merge with namespace or other enum declarations.\"),\n  Property_0_may_not_exist_on_type_1_Did_you_mean_2: diag(2568, 1 /* Error */, \"Property_0_may_not_exist_on_type_1_Did_you_mean_2_2568\", \"Property '{0}' may not exist on type '{1}'. Did you mean '{2}'?\"),\n  Could_not_find_name_0_Did_you_mean_1: diag(2570, 1 /* Error */, \"Could_not_find_name_0_Did_you_mean_1_2570\", \"Could not find name '{0}'. Did you mean '{1}'?\"),\n  Object_is_of_type_unknown: diag(2571, 1 /* Error */, \"Object_is_of_type_unknown_2571\", \"Object is of type 'unknown'.\"),\n  A_rest_element_type_must_be_an_array_type: diag(2574, 1 /* Error */, \"A_rest_element_type_must_be_an_array_type_2574\", \"A rest element type must be an array type.\"),\n  No_overload_expects_0_arguments_but_overloads_do_exist_that_expect_either_1_or_2_arguments: diag(2575, 1 /* Error */, \"No_overload_expects_0_arguments_but_overloads_do_exist_that_expect_either_1_or_2_arguments_2575\", \"No overload expects {0} arguments, but overloads do exist that expect either {1} or {2} arguments.\"),\n  Property_0_does_not_exist_on_type_1_Did_you_mean_to_access_the_static_member_2_instead: diag(2576, 1 /* Error */, \"Property_0_does_not_exist_on_type_1_Did_you_mean_to_access_the_static_member_2_instead_2576\", \"Property '{0}' does not exist on type '{1}'. Did you mean to access the static member '{2}' instead?\"),\n  Return_type_annotation_circularly_references_itself: diag(2577, 1 /* Error */, \"Return_type_annotation_circularly_references_itself_2577\", \"Return type annotation circularly references itself.\"),\n  Unused_ts_expect_error_directive: diag(2578, 1 /* Error */, \"Unused_ts_expect_error_directive_2578\", \"Unused '@ts-expect-error' directive.\"),\n  Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashnode: diag(2580, 1 /* Error */, \"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashno_2580\", \"Cannot find name '{0}'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.\"),\n  Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slashjquery: diag(2581, 1 /* Error */, \"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slash_2581\", \"Cannot find name '{0}'. Do you need to install type definitions for jQuery? Try `npm i --save-dev @types/jquery`.\"),\n  Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_types_Slashjest_or_npm_i_save_dev_types_Slashmocha: diag(2582, 1 /* Error */, \"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_type_2582\", \"Cannot find name '{0}'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha`.\"),\n  Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_1_or_later: diag(2583, 1 /* Error */, \"Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_2583\", \"Cannot find name '{0}'. Do you need to change your target library? Try changing the 'lib' compiler option to '{1}' or later.\"),\n  Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_include_dom: diag(2584, 1 /* Error */, \"Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_2584\", \"Cannot find name '{0}'. Do you need to change your target library? Try changing the 'lib' compiler option to include 'dom'.\"),\n  _0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_es2015_or_later: diag(2585, 1 /* Error */, \"_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Do_you_need_to_change_your_target_library_2585\", \"'{0}' only refers to a type, but is being used as a value here. Do you need to change your target library? Try changing the 'lib' compiler option to es2015 or later.\"),\n  Cannot_assign_to_0_because_it_is_a_constant: diag(2588, 1 /* Error */, \"Cannot_assign_to_0_because_it_is_a_constant_2588\", \"Cannot assign to '{0}' because it is a constant.\"),\n  Type_instantiation_is_excessively_deep_and_possibly_infinite: diag(2589, 1 /* Error */, \"Type_instantiation_is_excessively_deep_and_possibly_infinite_2589\", \"Type instantiation is excessively deep and possibly infinite.\"),\n  Expression_produces_a_union_type_that_is_too_complex_to_represent: diag(2590, 1 /* Error */, \"Expression_produces_a_union_type_that_is_too_complex_to_represent_2590\", \"Expression produces a union type that is too complex to represent.\"),\n  Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashnode_and_then_add_node_to_the_types_field_in_your_tsconfig: diag(2591, 1 /* Error */, \"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashno_2591\", \"Cannot find name '{0}'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node` and then add 'node' to the types field in your tsconfig.\"),\n  Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slashjquery_and_then_add_jquery_to_the_types_field_in_your_tsconfig: diag(2592, 1 /* Error */, \"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slash_2592\", \"Cannot find name '{0}'. Do you need to install type definitions for jQuery? Try `npm i --save-dev @types/jquery` and then add 'jquery' to the types field in your tsconfig.\"),\n  Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_types_Slashjest_or_npm_i_save_dev_types_Slashmocha_and_then_add_jest_or_mocha_to_the_types_field_in_your_tsconfig: diag(2593, 1 /* Error */, \"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_type_2593\", \"Cannot find name '{0}'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha` and then add 'jest' or 'mocha' to the types field in your tsconfig.\"),\n  This_module_is_declared_with_export_and_can_only_be_used_with_a_default_import_when_using_the_0_flag: diag(2594, 1 /* Error */, \"This_module_is_declared_with_export_and_can_only_be_used_with_a_default_import_when_using_the_0_flag_2594\", \"This module is declared with 'export =', and can only be used with a default import when using the '{0}' flag.\"),\n  _0_can_only_be_imported_by_using_a_default_import: diag(2595, 1 /* Error */, \"_0_can_only_be_imported_by_using_a_default_import_2595\", \"'{0}' can only be imported by using a default import.\"),\n  _0_can_only_be_imported_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import: diag(2596, 1 /* Error */, \"_0_can_only_be_imported_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import_2596\", \"'{0}' can only be imported by turning on the 'esModuleInterop' flag and using a default import.\"),\n  _0_can_only_be_imported_by_using_a_require_call_or_by_using_a_default_import: diag(2597, 1 /* Error */, \"_0_can_only_be_imported_by_using_a_require_call_or_by_using_a_default_import_2597\", \"'{0}' can only be imported by using a 'require' call or by using a default import.\"),\n  _0_can_only_be_imported_by_using_a_require_call_or_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import: diag(2598, 1 /* Error */, \"_0_can_only_be_imported_by_using_a_require_call_or_by_turning_on_the_esModuleInterop_flag_and_using__2598\", \"'{0}' can only be imported by using a 'require' call or by turning on the 'esModuleInterop' flag and using a default import.\"),\n  JSX_element_implicitly_has_type_any_because_the_global_type_JSX_Element_does_not_exist: diag(2602, 1 /* Error */, \"JSX_element_implicitly_has_type_any_because_the_global_type_JSX_Element_does_not_exist_2602\", \"JSX element implicitly has type 'any' because the global type 'JSX.Element' does not exist.\"),\n  Property_0_in_type_1_is_not_assignable_to_type_2: diag(2603, 1 /* Error */, \"Property_0_in_type_1_is_not_assignable_to_type_2_2603\", \"Property '{0}' in type '{1}' is not assignable to type '{2}'.\"),\n  JSX_element_type_0_does_not_have_any_construct_or_call_signatures: diag(2604, 1 /* Error */, \"JSX_element_type_0_does_not_have_any_construct_or_call_signatures_2604\", \"JSX element type '{0}' does not have any construct or call signatures.\"),\n  Property_0_of_JSX_spread_attribute_is_not_assignable_to_target_property: diag(2606, 1 /* Error */, \"Property_0_of_JSX_spread_attribute_is_not_assignable_to_target_property_2606\", \"Property '{0}' of JSX spread attribute is not assignable to target property.\"),\n  JSX_element_class_does_not_support_attributes_because_it_does_not_have_a_0_property: diag(2607, 1 /* Error */, \"JSX_element_class_does_not_support_attributes_because_it_does_not_have_a_0_property_2607\", \"JSX element class does not support attributes because it does not have a '{0}' property.\"),\n  The_global_type_JSX_0_may_not_have_more_than_one_property: diag(2608, 1 /* Error */, \"The_global_type_JSX_0_may_not_have_more_than_one_property_2608\", \"The global type 'JSX.{0}' may not have more than one property.\"),\n  JSX_spread_child_must_be_an_array_type: diag(2609, 1 /* Error */, \"JSX_spread_child_must_be_an_array_type_2609\", \"JSX spread child must be an array type.\"),\n  _0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property: diag(2610, 1 /* Error */, \"_0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property_2610\", \"'{0}' is defined as an accessor in class '{1}', but is overridden here in '{2}' as an instance property.\"),\n  _0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor: diag(2611, 1 /* Error */, \"_0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor_2611\", \"'{0}' is defined as a property in class '{1}', but is overridden here in '{2}' as an accessor.\"),\n  Property_0_will_overwrite_the_base_property_in_1_If_this_is_intentional_add_an_initializer_Otherwise_add_a_declare_modifier_or_remove_the_redundant_declaration: diag(2612, 1 /* Error */, \"Property_0_will_overwrite_the_base_property_in_1_If_this_is_intentional_add_an_initializer_Otherwise_2612\", \"Property '{0}' will overwrite the base property in '{1}'. If this is intentional, add an initializer. Otherwise, add a 'declare' modifier or remove the redundant declaration.\"),\n  Module_0_has_no_default_export_Did_you_mean_to_use_import_1_from_0_instead: diag(2613, 1 /* Error */, \"Module_0_has_no_default_export_Did_you_mean_to_use_import_1_from_0_instead_2613\", \"Module '{0}' has no default export. Did you mean to use 'import { {1} } from {0}' instead?\"),\n  Module_0_has_no_exported_member_1_Did_you_mean_to_use_import_1_from_0_instead: diag(2614, 1 /* Error */, \"Module_0_has_no_exported_member_1_Did_you_mean_to_use_import_1_from_0_instead_2614\", \"Module '{0}' has no exported member '{1}'. Did you mean to use 'import {1} from {0}' instead?\"),\n  Type_of_property_0_circularly_references_itself_in_mapped_type_1: diag(2615, 1 /* Error */, \"Type_of_property_0_circularly_references_itself_in_mapped_type_1_2615\", \"Type of property '{0}' circularly references itself in mapped type '{1}'.\"),\n  _0_can_only_be_imported_by_using_import_1_require_2_or_a_default_import: diag(2616, 1 /* Error */, \"_0_can_only_be_imported_by_using_import_1_require_2_or_a_default_import_2616\", \"'{0}' can only be imported by using 'import {1} = require({2})' or a default import.\"),\n  _0_can_only_be_imported_by_using_import_1_require_2_or_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import: diag(2617, 1 /* Error */, \"_0_can_only_be_imported_by_using_import_1_require_2_or_by_turning_on_the_esModuleInterop_flag_and_us_2617\", \"'{0}' can only be imported by using 'import {1} = require({2})' or by turning on the 'esModuleInterop' flag and using a default import.\"),\n  Source_has_0_element_s_but_target_requires_1: diag(2618, 1 /* Error */, \"Source_has_0_element_s_but_target_requires_1_2618\", \"Source has {0} element(s) but target requires {1}.\"),\n  Source_has_0_element_s_but_target_allows_only_1: diag(2619, 1 /* Error */, \"Source_has_0_element_s_but_target_allows_only_1_2619\", \"Source has {0} element(s) but target allows only {1}.\"),\n  Target_requires_0_element_s_but_source_may_have_fewer: diag(2620, 1 /* Error */, \"Target_requires_0_element_s_but_source_may_have_fewer_2620\", \"Target requires {0} element(s) but source may have fewer.\"),\n  Target_allows_only_0_element_s_but_source_may_have_more: diag(2621, 1 /* Error */, \"Target_allows_only_0_element_s_but_source_may_have_more_2621\", \"Target allows only {0} element(s) but source may have more.\"),\n  Source_provides_no_match_for_required_element_at_position_0_in_target: diag(2623, 1 /* Error */, \"Source_provides_no_match_for_required_element_at_position_0_in_target_2623\", \"Source provides no match for required element at position {0} in target.\"),\n  Source_provides_no_match_for_variadic_element_at_position_0_in_target: diag(2624, 1 /* Error */, \"Source_provides_no_match_for_variadic_element_at_position_0_in_target_2624\", \"Source provides no match for variadic element at position {0} in target.\"),\n  Variadic_element_at_position_0_in_source_does_not_match_element_at_position_1_in_target: diag(2625, 1 /* Error */, \"Variadic_element_at_position_0_in_source_does_not_match_element_at_position_1_in_target_2625\", \"Variadic element at position {0} in source does not match element at position {1} in target.\"),\n  Type_at_position_0_in_source_is_not_compatible_with_type_at_position_1_in_target: diag(2626, 1 /* Error */, \"Type_at_position_0_in_source_is_not_compatible_with_type_at_position_1_in_target_2626\", \"Type at position {0} in source is not compatible with type at position {1} in target.\"),\n  Type_at_positions_0_through_1_in_source_is_not_compatible_with_type_at_position_2_in_target: diag(2627, 1 /* Error */, \"Type_at_positions_0_through_1_in_source_is_not_compatible_with_type_at_position_2_in_target_2627\", \"Type at positions {0} through {1} in source is not compatible with type at position {2} in target.\"),\n  Cannot_assign_to_0_because_it_is_an_enum: diag(2628, 1 /* Error */, \"Cannot_assign_to_0_because_it_is_an_enum_2628\", \"Cannot assign to '{0}' because it is an enum.\"),\n  Cannot_assign_to_0_because_it_is_a_class: diag(2629, 1 /* Error */, \"Cannot_assign_to_0_because_it_is_a_class_2629\", \"Cannot assign to '{0}' because it is a class.\"),\n  Cannot_assign_to_0_because_it_is_a_function: diag(2630, 1 /* Error */, \"Cannot_assign_to_0_because_it_is_a_function_2630\", \"Cannot assign to '{0}' because it is a function.\"),\n  Cannot_assign_to_0_because_it_is_a_namespace: diag(2631, 1 /* Error */, \"Cannot_assign_to_0_because_it_is_a_namespace_2631\", \"Cannot assign to '{0}' because it is a namespace.\"),\n  Cannot_assign_to_0_because_it_is_an_import: diag(2632, 1 /* Error */, \"Cannot_assign_to_0_because_it_is_an_import_2632\", \"Cannot assign to '{0}' because it is an import.\"),\n  JSX_property_access_expressions_cannot_include_JSX_namespace_names: diag(2633, 1 /* Error */, \"JSX_property_access_expressions_cannot_include_JSX_namespace_names_2633\", \"JSX property access expressions cannot include JSX namespace names\"),\n  _0_index_signatures_are_incompatible: diag(2634, 1 /* Error */, \"_0_index_signatures_are_incompatible_2634\", \"'{0}' index signatures are incompatible.\"),\n  Type_0_has_no_signatures_for_which_the_type_argument_list_is_applicable: diag(2635, 1 /* Error */, \"Type_0_has_no_signatures_for_which_the_type_argument_list_is_applicable_2635\", \"Type '{0}' has no signatures for which the type argument list is applicable.\"),\n  Type_0_is_not_assignable_to_type_1_as_implied_by_variance_annotation: diag(2636, 1 /* Error */, \"Type_0_is_not_assignable_to_type_1_as_implied_by_variance_annotation_2636\", \"Type '{0}' is not assignable to type '{1}' as implied by variance annotation.\"),\n  Variance_annotations_are_only_supported_in_type_aliases_for_object_function_constructor_and_mapped_types: diag(2637, 1 /* Error */, \"Variance_annotations_are_only_supported_in_type_aliases_for_object_function_constructor_and_mapped_t_2637\", \"Variance annotations are only supported in type aliases for object, function, constructor, and mapped types.\"),\n  Type_0_may_represent_a_primitive_value_which_is_not_permitted_as_the_right_operand_of_the_in_operator: diag(2638, 1 /* Error */, \"Type_0_may_represent_a_primitive_value_which_is_not_permitted_as_the_right_operand_of_the_in_operato_2638\", \"Type '{0}' may represent a primitive value, which is not permitted as the right operand of the 'in' operator.\"),\n  React_components_cannot_include_JSX_namespace_names: diag(2639, 1 /* Error */, \"React_components_cannot_include_JSX_namespace_names_2639\", \"React components cannot include JSX namespace names\"),\n  Cannot_augment_module_0_with_value_exports_because_it_resolves_to_a_non_module_entity: diag(2649, 1 /* Error */, \"Cannot_augment_module_0_with_value_exports_because_it_resolves_to_a_non_module_entity_2649\", \"Cannot augment module '{0}' with value exports because it resolves to a non-module entity.\"),\n  Non_abstract_class_expression_is_missing_implementations_for_the_following_members_of_0_Colon_1_and_2_more: diag(2650, 1 /* Error */, \"Non_abstract_class_expression_is_missing_implementations_for_the_following_members_of_0_Colon_1_and__2650\", \"Non-abstract class expression is missing implementations for the following members of '{0}': {1} and {2} more.\"),\n  A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_members_defined_in_other_enums: diag(2651, 1 /* Error */, \"A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_memb_2651\", \"A member initializer in a enum declaration cannot reference members declared after it, including members defined in other enums.\"),\n  Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_default_0_declaration_instead: diag(2652, 1 /* Error */, \"Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_d_2652\", \"Merged declaration '{0}' cannot include a default export declaration. Consider adding a separate 'export default {0}' declaration instead.\"),\n  Non_abstract_class_expression_does_not_implement_inherited_abstract_member_0_from_class_1: diag(2653, 1 /* Error */, \"Non_abstract_class_expression_does_not_implement_inherited_abstract_member_0_from_class_1_2653\", \"Non-abstract class expression does not implement inherited abstract member '{0}' from class '{1}'.\"),\n  Non_abstract_class_0_is_missing_implementations_for_the_following_members_of_1_Colon_2: diag(2654, 1 /* Error */, \"Non_abstract_class_0_is_missing_implementations_for_the_following_members_of_1_Colon_2_2654\", \"Non-abstract class '{0}' is missing implementations for the following members of '{1}': {2}.\"),\n  Non_abstract_class_0_is_missing_implementations_for_the_following_members_of_1_Colon_2_and_3_more: diag(2655, 1 /* Error */, \"Non_abstract_class_0_is_missing_implementations_for_the_following_members_of_1_Colon_2_and_3_more_2655\", \"Non-abstract class '{0}' is missing implementations for the following members of '{1}': {2} and {3} more.\"),\n  Non_abstract_class_expression_is_missing_implementations_for_the_following_members_of_0_Colon_1: diag(2656, 1 /* Error */, \"Non_abstract_class_expression_is_missing_implementations_for_the_following_members_of_0_Colon_1_2656\", \"Non-abstract class expression is missing implementations for the following members of '{0}': {1}.\"),\n  JSX_expressions_must_have_one_parent_element: diag(2657, 1 /* Error */, \"JSX_expressions_must_have_one_parent_element_2657\", \"JSX expressions must have one parent element.\"),\n  Type_0_provides_no_match_for_the_signature_1: diag(2658, 1 /* Error */, \"Type_0_provides_no_match_for_the_signature_1_2658\", \"Type '{0}' provides no match for the signature '{1}'.\"),\n  super_is_only_allowed_in_members_of_object_literal_expressions_when_option_target_is_ES2015_or_higher: diag(2659, 1 /* Error */, \"super_is_only_allowed_in_members_of_object_literal_expressions_when_option_target_is_ES2015_or_highe_2659\", \"'super' is only allowed in members of object literal expressions when option 'target' is 'ES2015' or higher.\"),\n  super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions: diag(2660, 1 /* Error */, \"super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions_2660\", \"'super' can only be referenced in members of derived classes or object literal expressions.\"),\n  Cannot_export_0_Only_local_declarations_can_be_exported_from_a_module: diag(2661, 1 /* Error */, \"Cannot_export_0_Only_local_declarations_can_be_exported_from_a_module_2661\", \"Cannot export '{0}'. Only local declarations can be exported from a module.\"),\n  Cannot_find_name_0_Did_you_mean_the_static_member_1_0: diag(2662, 1 /* Error */, \"Cannot_find_name_0_Did_you_mean_the_static_member_1_0_2662\", \"Cannot find name '{0}'. Did you mean the static member '{1}.{0}'?\"),\n  Cannot_find_name_0_Did_you_mean_the_instance_member_this_0: diag(2663, 1 /* Error */, \"Cannot_find_name_0_Did_you_mean_the_instance_member_this_0_2663\", \"Cannot find name '{0}'. Did you mean the instance member 'this.{0}'?\"),\n  Invalid_module_name_in_augmentation_module_0_cannot_be_found: diag(2664, 1 /* Error */, \"Invalid_module_name_in_augmentation_module_0_cannot_be_found_2664\", \"Invalid module name in augmentation, module '{0}' cannot be found.\"),\n  Invalid_module_name_in_augmentation_Module_0_resolves_to_an_untyped_module_at_1_which_cannot_be_augmented: diag(2665, 1 /* Error */, \"Invalid_module_name_in_augmentation_Module_0_resolves_to_an_untyped_module_at_1_which_cannot_be_augm_2665\", \"Invalid module name in augmentation. Module '{0}' resolves to an untyped module at '{1}', which cannot be augmented.\"),\n  Exports_and_export_assignments_are_not_permitted_in_module_augmentations: diag(2666, 1 /* Error */, \"Exports_and_export_assignments_are_not_permitted_in_module_augmentations_2666\", \"Exports and export assignments are not permitted in module augmentations.\"),\n  Imports_are_not_permitted_in_module_augmentations_Consider_moving_them_to_the_enclosing_external_module: diag(2667, 1 /* Error */, \"Imports_are_not_permitted_in_module_augmentations_Consider_moving_them_to_the_enclosing_external_mod_2667\", \"Imports are not permitted in module augmentations. Consider moving them to the enclosing external module.\"),\n  export_modifier_cannot_be_applied_to_ambient_modules_and_module_augmentations_since_they_are_always_visible: diag(2668, 1 /* Error */, \"export_modifier_cannot_be_applied_to_ambient_modules_and_module_augmentations_since_they_are_always__2668\", \"'export' modifier cannot be applied to ambient modules and module augmentations since they are always visible.\"),\n  Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_declarations: diag(2669, 1 /* Error */, \"Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_2669\", \"Augmentations for the global scope can only be directly nested in external modules or ambient module declarations.\"),\n  Augmentations_for_the_global_scope_should_have_declare_modifier_unless_they_appear_in_already_ambient_context: diag(2670, 1 /* Error */, \"Augmentations_for_the_global_scope_should_have_declare_modifier_unless_they_appear_in_already_ambien_2670\", \"Augmentations for the global scope should have 'declare' modifier unless they appear in already ambient context.\"),\n  Cannot_augment_module_0_because_it_resolves_to_a_non_module_entity: diag(2671, 1 /* Error */, \"Cannot_augment_module_0_because_it_resolves_to_a_non_module_entity_2671\", \"Cannot augment module '{0}' because it resolves to a non-module entity.\"),\n  Cannot_assign_a_0_constructor_type_to_a_1_constructor_type: diag(2672, 1 /* Error */, \"Cannot_assign_a_0_constructor_type_to_a_1_constructor_type_2672\", \"Cannot assign a '{0}' constructor type to a '{1}' constructor type.\"),\n  Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration: diag(2673, 1 /* Error */, \"Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration_2673\", \"Constructor of class '{0}' is private and only accessible within the class declaration.\"),\n  Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration: diag(2674, 1 /* Error */, \"Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration_2674\", \"Constructor of class '{0}' is protected and only accessible within the class declaration.\"),\n  Cannot_extend_a_class_0_Class_constructor_is_marked_as_private: diag(2675, 1 /* Error */, \"Cannot_extend_a_class_0_Class_constructor_is_marked_as_private_2675\", \"Cannot extend a class '{0}'. Class constructor is marked as private.\"),\n  Accessors_must_both_be_abstract_or_non_abstract: diag(2676, 1 /* Error */, \"Accessors_must_both_be_abstract_or_non_abstract_2676\", \"Accessors must both be abstract or non-abstract.\"),\n  A_type_predicate_s_type_must_be_assignable_to_its_parameter_s_type: diag(2677, 1 /* Error */, \"A_type_predicate_s_type_must_be_assignable_to_its_parameter_s_type_2677\", \"A type predicate's type must be assignable to its parameter's type.\"),\n  Type_0_is_not_comparable_to_type_1: diag(2678, 1 /* Error */, \"Type_0_is_not_comparable_to_type_1_2678\", \"Type '{0}' is not comparable to type '{1}'.\"),\n  A_function_that_is_called_with_the_new_keyword_cannot_have_a_this_type_that_is_void: diag(2679, 1 /* Error */, \"A_function_that_is_called_with_the_new_keyword_cannot_have_a_this_type_that_is_void_2679\", \"A function that is called with the 'new' keyword cannot have a 'this' type that is 'void'.\"),\n  A_0_parameter_must_be_the_first_parameter: diag(2680, 1 /* Error */, \"A_0_parameter_must_be_the_first_parameter_2680\", \"A '{0}' parameter must be the first parameter.\"),\n  A_constructor_cannot_have_a_this_parameter: diag(2681, 1 /* Error */, \"A_constructor_cannot_have_a_this_parameter_2681\", \"A constructor cannot have a 'this' parameter.\"),\n  this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation: diag(2683, 1 /* Error */, \"this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_2683\", \"'this' implicitly has type 'any' because it does not have a type annotation.\"),\n  The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1: diag(2684, 1 /* Error */, \"The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1_2684\", \"The 'this' context of type '{0}' is not assignable to method's 'this' of type '{1}'.\"),\n  The_this_types_of_each_signature_are_incompatible: diag(2685, 1 /* Error */, \"The_this_types_of_each_signature_are_incompatible_2685\", \"The 'this' types of each signature are incompatible.\"),\n  _0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead: diag(2686, 1 /* Error */, \"_0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead_2686\", \"'{0}' refers to a UMD global, but the current file is a module. Consider adding an import instead.\"),\n  All_declarations_of_0_must_have_identical_modifiers: diag(2687, 1 /* Error */, \"All_declarations_of_0_must_have_identical_modifiers_2687\", \"All declarations of '{0}' must have identical modifiers.\"),\n  Cannot_find_type_definition_file_for_0: diag(2688, 1 /* Error */, \"Cannot_find_type_definition_file_for_0_2688\", \"Cannot find type definition file for '{0}'.\"),\n  Cannot_extend_an_interface_0_Did_you_mean_implements: diag(2689, 1 /* Error */, \"Cannot_extend_an_interface_0_Did_you_mean_implements_2689\", \"Cannot extend an interface '{0}'. Did you mean 'implements'?\"),\n  _0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Did_you_mean_to_use_1_in_0: diag(2690, 1 /* Error */, \"_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Did_you_mean_to_use_1_in_0_2690\", \"'{0}' only refers to a type, but is being used as a value here. Did you mean to use '{1} in {0}'?\"),\n  _0_is_a_primitive_but_1_is_a_wrapper_object_Prefer_using_0_when_possible: diag(2692, 1 /* Error */, \"_0_is_a_primitive_but_1_is_a_wrapper_object_Prefer_using_0_when_possible_2692\", \"'{0}' is a primitive, but '{1}' is a wrapper object. Prefer using '{0}' when possible.\"),\n  _0_only_refers_to_a_type_but_is_being_used_as_a_value_here: diag(2693, 1 /* Error */, \"_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_2693\", \"'{0}' only refers to a type, but is being used as a value here.\"),\n  Namespace_0_has_no_exported_member_1: diag(2694, 1 /* Error */, \"Namespace_0_has_no_exported_member_1_2694\", \"Namespace '{0}' has no exported member '{1}'.\"),\n  Left_side_of_comma_operator_is_unused_and_has_no_side_effects: diag(\n    2695,\n    1 /* Error */,\n    \"Left_side_of_comma_operator_is_unused_and_has_no_side_effects_2695\",\n    \"Left side of comma operator is unused and has no side effects.\",\n    /*reportsUnnecessary*/\n    true\n  ),\n  The_Object_type_is_assignable_to_very_few_other_types_Did_you_mean_to_use_the_any_type_instead: diag(2696, 1 /* Error */, \"The_Object_type_is_assignable_to_very_few_other_types_Did_you_mean_to_use_the_any_type_instead_2696\", \"The 'Object' type is assignable to very few other types. Did you mean to use the 'any' type instead?\"),\n  An_async_function_or_method_must_return_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES2015_in_your_lib_option: diag(2697, 1 /* Error */, \"An_async_function_or_method_must_return_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_in_2697\", \"An async function or method must return a 'Promise'. Make sure you have a declaration for 'Promise' or include 'ES2015' in your '--lib' option.\"),\n  Spread_types_may_only_be_created_from_object_types: diag(2698, 1 /* Error */, \"Spread_types_may_only_be_created_from_object_types_2698\", \"Spread types may only be created from object types.\"),\n  Static_property_0_conflicts_with_built_in_property_Function_0_of_constructor_function_1: diag(2699, 1 /* Error */, \"Static_property_0_conflicts_with_built_in_property_Function_0_of_constructor_function_1_2699\", \"Static property '{0}' conflicts with built-in property 'Function.{0}' of constructor function '{1}'.\"),\n  Rest_types_may_only_be_created_from_object_types: diag(2700, 1 /* Error */, \"Rest_types_may_only_be_created_from_object_types_2700\", \"Rest types may only be created from object types.\"),\n  The_target_of_an_object_rest_assignment_must_be_a_variable_or_a_property_access: diag(2701, 1 /* Error */, \"The_target_of_an_object_rest_assignment_must_be_a_variable_or_a_property_access_2701\", \"The target of an object rest assignment must be a variable or a property access.\"),\n  _0_only_refers_to_a_type_but_is_being_used_as_a_namespace_here: diag(2702, 1 /* Error */, \"_0_only_refers_to_a_type_but_is_being_used_as_a_namespace_here_2702\", \"'{0}' only refers to a type, but is being used as a namespace here.\"),\n  The_operand_of_a_delete_operator_must_be_a_property_reference: diag(2703, 1 /* Error */, \"The_operand_of_a_delete_operator_must_be_a_property_reference_2703\", \"The operand of a 'delete' operator must be a property reference.\"),\n  The_operand_of_a_delete_operator_cannot_be_a_read_only_property: diag(2704, 1 /* Error */, \"The_operand_of_a_delete_operator_cannot_be_a_read_only_property_2704\", \"The operand of a 'delete' operator cannot be a read-only property.\"),\n  An_async_function_or_method_in_ES5_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option: diag(2705, 1 /* Error */, \"An_async_function_or_method_in_ES5_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_2705\", \"An async function or method in ES5 requires the 'Promise' constructor.  Make sure you have a declaration for the 'Promise' constructor or include 'ES2015' in your '--lib' option.\"),\n  Required_type_parameters_may_not_follow_optional_type_parameters: diag(2706, 1 /* Error */, \"Required_type_parameters_may_not_follow_optional_type_parameters_2706\", \"Required type parameters may not follow optional type parameters.\"),\n  Generic_type_0_requires_between_1_and_2_type_arguments: diag(2707, 1 /* Error */, \"Generic_type_0_requires_between_1_and_2_type_arguments_2707\", \"Generic type '{0}' requires between {1} and {2} type arguments.\"),\n  Cannot_use_namespace_0_as_a_value: diag(2708, 1 /* Error */, \"Cannot_use_namespace_0_as_a_value_2708\", \"Cannot use namespace '{0}' as a value.\"),\n  Cannot_use_namespace_0_as_a_type: diag(2709, 1 /* Error */, \"Cannot_use_namespace_0_as_a_type_2709\", \"Cannot use namespace '{0}' as a type.\"),\n  _0_are_specified_twice_The_attribute_named_0_will_be_overwritten: diag(2710, 1 /* Error */, \"_0_are_specified_twice_The_attribute_named_0_will_be_overwritten_2710\", \"'{0}' are specified twice. The attribute named '{0}' will be overwritten.\"),\n  A_dynamic_import_call_returns_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES2015_in_your_lib_option: diag(2711, 1 /* Error */, \"A_dynamic_import_call_returns_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES20_2711\", \"A dynamic import call returns a 'Promise'. Make sure you have a declaration for 'Promise' or include 'ES2015' in your '--lib' option.\"),\n  A_dynamic_import_call_in_ES5_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option: diag(2712, 1 /* Error */, \"A_dynamic_import_call_in_ES5_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_t_2712\", \"A dynamic import call in ES5 requires the 'Promise' constructor.  Make sure you have a declaration for the 'Promise' constructor or include 'ES2015' in your '--lib' option.\"),\n  Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_property_1_in_0_with_0_1: diag(2713, 1 /* Error */, \"Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_p_2713\", `Cannot access '{0}.{1}' because '{0}' is a type, but not a namespace. Did you mean to retrieve the type of the property '{1}' in '{0}' with '{0}[\"{1}\"]'?`),\n  The_expression_of_an_export_assignment_must_be_an_identifier_or_qualified_name_in_an_ambient_context: diag(2714, 1 /* Error */, \"The_expression_of_an_export_assignment_must_be_an_identifier_or_qualified_name_in_an_ambient_context_2714\", \"The expression of an export assignment must be an identifier or qualified name in an ambient context.\"),\n  Abstract_property_0_in_class_1_cannot_be_accessed_in_the_constructor: diag(2715, 1 /* Error */, \"Abstract_property_0_in_class_1_cannot_be_accessed_in_the_constructor_2715\", \"Abstract property '{0}' in class '{1}' cannot be accessed in the constructor.\"),\n  Type_parameter_0_has_a_circular_default: diag(2716, 1 /* Error */, \"Type_parameter_0_has_a_circular_default_2716\", \"Type parameter '{0}' has a circular default.\"),\n  Subsequent_property_declarations_must_have_the_same_type_Property_0_must_be_of_type_1_but_here_has_type_2: diag(2717, 1 /* Error */, \"Subsequent_property_declarations_must_have_the_same_type_Property_0_must_be_of_type_1_but_here_has_t_2717\", \"Subsequent property declarations must have the same type.  Property '{0}' must be of type '{1}', but here has type '{2}'.\"),\n  Duplicate_property_0: diag(2718, 1 /* Error */, \"Duplicate_property_0_2718\", \"Duplicate property '{0}'.\"),\n  Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated: diag(2719, 1 /* Error */, \"Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated_2719\", \"Type '{0}' is not assignable to type '{1}'. Two different types with this name exist, but they are unrelated.\"),\n  Class_0_incorrectly_implements_class_1_Did_you_mean_to_extend_1_and_inherit_its_members_as_a_subclass: diag(2720, 1 /* Error */, \"Class_0_incorrectly_implements_class_1_Did_you_mean_to_extend_1_and_inherit_its_members_as_a_subclas_2720\", \"Class '{0}' incorrectly implements class '{1}'. Did you mean to extend '{1}' and inherit its members as a subclass?\"),\n  Cannot_invoke_an_object_which_is_possibly_null: diag(2721, 1 /* Error */, \"Cannot_invoke_an_object_which_is_possibly_null_2721\", \"Cannot invoke an object which is possibly 'null'.\"),\n  Cannot_invoke_an_object_which_is_possibly_undefined: diag(2722, 1 /* Error */, \"Cannot_invoke_an_object_which_is_possibly_undefined_2722\", \"Cannot invoke an object which is possibly 'undefined'.\"),\n  Cannot_invoke_an_object_which_is_possibly_null_or_undefined: diag(2723, 1 /* Error */, \"Cannot_invoke_an_object_which_is_possibly_null_or_undefined_2723\", \"Cannot invoke an object which is possibly 'null' or 'undefined'.\"),\n  _0_has_no_exported_member_named_1_Did_you_mean_2: diag(2724, 1 /* Error */, \"_0_has_no_exported_member_named_1_Did_you_mean_2_2724\", \"'{0}' has no exported member named '{1}'. Did you mean '{2}'?\"),\n  Class_name_cannot_be_Object_when_targeting_ES5_and_above_with_module_0: diag(2725, 1 /* Error */, \"Class_name_cannot_be_Object_when_targeting_ES5_and_above_with_module_0_2725\", \"Class name cannot be 'Object' when targeting ES5 and above with module {0}.\"),\n  Cannot_find_lib_definition_for_0: diag(2726, 1 /* Error */, \"Cannot_find_lib_definition_for_0_2726\", \"Cannot find lib definition for '{0}'.\"),\n  Cannot_find_lib_definition_for_0_Did_you_mean_1: diag(2727, 1 /* Error */, \"Cannot_find_lib_definition_for_0_Did_you_mean_1_2727\", \"Cannot find lib definition for '{0}'. Did you mean '{1}'?\"),\n  _0_is_declared_here: diag(2728, 3 /* Message */, \"_0_is_declared_here_2728\", \"'{0}' is declared here.\"),\n  Property_0_is_used_before_its_initialization: diag(2729, 1 /* Error */, \"Property_0_is_used_before_its_initialization_2729\", \"Property '{0}' is used before its initialization.\"),\n  An_arrow_function_cannot_have_a_this_parameter: diag(2730, 1 /* Error */, \"An_arrow_function_cannot_have_a_this_parameter_2730\", \"An arrow function cannot have a 'this' parameter.\"),\n  Implicit_conversion_of_a_symbol_to_a_string_will_fail_at_runtime_Consider_wrapping_this_expression_in_String: diag(2731, 1 /* Error */, \"Implicit_conversion_of_a_symbol_to_a_string_will_fail_at_runtime_Consider_wrapping_this_expression_i_2731\", \"Implicit conversion of a 'symbol' to a 'string' will fail at runtime. Consider wrapping this expression in 'String(...)'.\"),\n  Cannot_find_module_0_Consider_using_resolveJsonModule_to_import_module_with_json_extension: diag(2732, 1 /* Error */, \"Cannot_find_module_0_Consider_using_resolveJsonModule_to_import_module_with_json_extension_2732\", \"Cannot find module '{0}'. Consider using '--resolveJsonModule' to import module with '.json' extension.\"),\n  Property_0_was_also_declared_here: diag(2733, 1 /* Error */, \"Property_0_was_also_declared_here_2733\", \"Property '{0}' was also declared here.\"),\n  Are_you_missing_a_semicolon: diag(2734, 1 /* Error */, \"Are_you_missing_a_semicolon_2734\", \"Are you missing a semicolon?\"),\n  Did_you_mean_for_0_to_be_constrained_to_type_new_args_Colon_any_1: diag(2735, 1 /* Error */, \"Did_you_mean_for_0_to_be_constrained_to_type_new_args_Colon_any_1_2735\", \"Did you mean for '{0}' to be constrained to type 'new (...args: any[]) => {1}'?\"),\n  Operator_0_cannot_be_applied_to_type_1: diag(2736, 1 /* Error */, \"Operator_0_cannot_be_applied_to_type_1_2736\", \"Operator '{0}' cannot be applied to type '{1}'.\"),\n  BigInt_literals_are_not_available_when_targeting_lower_than_ES2020: diag(2737, 1 /* Error */, \"BigInt_literals_are_not_available_when_targeting_lower_than_ES2020_2737\", \"BigInt literals are not available when targeting lower than ES2020.\"),\n  An_outer_value_of_this_is_shadowed_by_this_container: diag(2738, 3 /* Message */, \"An_outer_value_of_this_is_shadowed_by_this_container_2738\", \"An outer value of 'this' is shadowed by this container.\"),\n  Type_0_is_missing_the_following_properties_from_type_1_Colon_2: diag(2739, 1 /* Error */, \"Type_0_is_missing_the_following_properties_from_type_1_Colon_2_2739\", \"Type '{0}' is missing the following properties from type '{1}': {2}\"),\n  Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more: diag(2740, 1 /* Error */, \"Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more_2740\", \"Type '{0}' is missing the following properties from type '{1}': {2}, and {3} more.\"),\n  Property_0_is_missing_in_type_1_but_required_in_type_2: diag(2741, 1 /* Error */, \"Property_0_is_missing_in_type_1_but_required_in_type_2_2741\", \"Property '{0}' is missing in type '{1}' but required in type '{2}'.\"),\n  The_inferred_type_of_0_cannot_be_named_without_a_reference_to_1_This_is_likely_not_portable_A_type_annotation_is_necessary: diag(2742, 1 /* Error */, \"The_inferred_type_of_0_cannot_be_named_without_a_reference_to_1_This_is_likely_not_portable_A_type_a_2742\", \"The inferred type of '{0}' cannot be named without a reference to '{1}'. This is likely not portable. A type annotation is necessary.\"),\n  No_overload_expects_0_type_arguments_but_overloads_do_exist_that_expect_either_1_or_2_type_arguments: diag(2743, 1 /* Error */, \"No_overload_expects_0_type_arguments_but_overloads_do_exist_that_expect_either_1_or_2_type_arguments_2743\", \"No overload expects {0} type arguments, but overloads do exist that expect either {1} or {2} type arguments.\"),\n  Type_parameter_defaults_can_only_reference_previously_declared_type_parameters: diag(2744, 1 /* Error */, \"Type_parameter_defaults_can_only_reference_previously_declared_type_parameters_2744\", \"Type parameter defaults can only reference previously declared type parameters.\"),\n  This_JSX_tag_s_0_prop_expects_type_1_which_requires_multiple_children_but_only_a_single_child_was_provided: diag(2745, 1 /* Error */, \"This_JSX_tag_s_0_prop_expects_type_1_which_requires_multiple_children_but_only_a_single_child_was_pr_2745\", \"This JSX tag's '{0}' prop expects type '{1}' which requires multiple children, but only a single child was provided.\"),\n  This_JSX_tag_s_0_prop_expects_a_single_child_of_type_1_but_multiple_children_were_provided: diag(2746, 1 /* Error */, \"This_JSX_tag_s_0_prop_expects_a_single_child_of_type_1_but_multiple_children_were_provided_2746\", \"This JSX tag's '{0}' prop expects a single child of type '{1}', but multiple children were provided.\"),\n  _0_components_don_t_accept_text_as_child_elements_Text_in_JSX_has_the_type_string_but_the_expected_type_of_1_is_2: diag(2747, 1 /* Error */, \"_0_components_don_t_accept_text_as_child_elements_Text_in_JSX_has_the_type_string_but_the_expected_t_2747\", \"'{0}' components don't accept text as child elements. Text in JSX has the type 'string', but the expected type of '{1}' is '{2}'.\"),\n  Cannot_access_ambient_const_enums_when_0_is_enabled: diag(2748, 1 /* Error */, \"Cannot_access_ambient_const_enums_when_0_is_enabled_2748\", \"Cannot access ambient const enums when '{0}' is enabled.\"),\n  _0_refers_to_a_value_but_is_being_used_as_a_type_here_Did_you_mean_typeof_0: diag(2749, 1 /* Error */, \"_0_refers_to_a_value_but_is_being_used_as_a_type_here_Did_you_mean_typeof_0_2749\", \"'{0}' refers to a value, but is being used as a type here. Did you mean 'typeof {0}'?\"),\n  The_implementation_signature_is_declared_here: diag(2750, 1 /* Error */, \"The_implementation_signature_is_declared_here_2750\", \"The implementation signature is declared here.\"),\n  Circularity_originates_in_type_at_this_location: diag(2751, 1 /* Error */, \"Circularity_originates_in_type_at_this_location_2751\", \"Circularity originates in type at this location.\"),\n  The_first_export_default_is_here: diag(2752, 1 /* Error */, \"The_first_export_default_is_here_2752\", \"The first export default is here.\"),\n  Another_export_default_is_here: diag(2753, 1 /* Error */, \"Another_export_default_is_here_2753\", \"Another export default is here.\"),\n  super_may_not_use_type_arguments: diag(2754, 1 /* Error */, \"super_may_not_use_type_arguments_2754\", \"'super' may not use type arguments.\"),\n  No_constituent_of_type_0_is_callable: diag(2755, 1 /* Error */, \"No_constituent_of_type_0_is_callable_2755\", \"No constituent of type '{0}' is callable.\"),\n  Not_all_constituents_of_type_0_are_callable: diag(2756, 1 /* Error */, \"Not_all_constituents_of_type_0_are_callable_2756\", \"Not all constituents of type '{0}' are callable.\"),\n  Type_0_has_no_call_signatures: diag(2757, 1 /* Error */, \"Type_0_has_no_call_signatures_2757\", \"Type '{0}' has no call signatures.\"),\n  Each_member_of_the_union_type_0_has_signatures_but_none_of_those_signatures_are_compatible_with_each_other: diag(2758, 1 /* Error */, \"Each_member_of_the_union_type_0_has_signatures_but_none_of_those_signatures_are_compatible_with_each_2758\", \"Each member of the union type '{0}' has signatures, but none of those signatures are compatible with each other.\"),\n  No_constituent_of_type_0_is_constructable: diag(2759, 1 /* Error */, \"No_constituent_of_type_0_is_constructable_2759\", \"No constituent of type '{0}' is constructable.\"),\n  Not_all_constituents_of_type_0_are_constructable: diag(2760, 1 /* Error */, \"Not_all_constituents_of_type_0_are_constructable_2760\", \"Not all constituents of type '{0}' are constructable.\"),\n  Type_0_has_no_construct_signatures: diag(2761, 1 /* Error */, \"Type_0_has_no_construct_signatures_2761\", \"Type '{0}' has no construct signatures.\"),\n  Each_member_of_the_union_type_0_has_construct_signatures_but_none_of_those_signatures_are_compatible_with_each_other: diag(2762, 1 /* Error */, \"Each_member_of_the_union_type_0_has_construct_signatures_but_none_of_those_signatures_are_compatible_2762\", \"Each member of the union type '{0}' has construct signatures, but none of those signatures are compatible with each other.\"),\n  Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_for_of_will_always_send_0: diag(2763, 1 /* Error */, \"Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_for_of_will_always_s_2763\", \"Cannot iterate value because the 'next' method of its iterator expects type '{1}', but for-of will always send '{0}'.\"),\n  Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_spread_will_always_send_0: diag(2764, 1 /* Error */, \"Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_spread_will_al_2764\", \"Cannot iterate value because the 'next' method of its iterator expects type '{1}', but array spread will always send '{0}'.\"),\n  Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_destructuring_will_always_send_0: diag(2765, 1 /* Error */, \"Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_destructuring__2765\", \"Cannot iterate value because the 'next' method of its iterator expects type '{1}', but array destructuring will always send '{0}'.\"),\n  Cannot_delegate_iteration_to_value_because_the_next_method_of_its_iterator_expects_type_1_but_the_containing_generator_will_always_send_0: diag(2766, 1 /* Error */, \"Cannot_delegate_iteration_to_value_because_the_next_method_of_its_iterator_expects_type_1_but_the_co_2766\", \"Cannot delegate iteration to value because the 'next' method of its iterator expects type '{1}', but the containing generator will always send '{0}'.\"),\n  The_0_property_of_an_iterator_must_be_a_method: diag(2767, 1 /* Error */, \"The_0_property_of_an_iterator_must_be_a_method_2767\", \"The '{0}' property of an iterator must be a method.\"),\n  The_0_property_of_an_async_iterator_must_be_a_method: diag(2768, 1 /* Error */, \"The_0_property_of_an_async_iterator_must_be_a_method_2768\", \"The '{0}' property of an async iterator must be a method.\"),\n  No_overload_matches_this_call: diag(2769, 1 /* Error */, \"No_overload_matches_this_call_2769\", \"No overload matches this call.\"),\n  The_last_overload_gave_the_following_error: diag(2770, 1 /* Error */, \"The_last_overload_gave_the_following_error_2770\", \"The last overload gave the following error.\"),\n  The_last_overload_is_declared_here: diag(2771, 1 /* Error */, \"The_last_overload_is_declared_here_2771\", \"The last overload is declared here.\"),\n  Overload_0_of_1_2_gave_the_following_error: diag(2772, 1 /* Error */, \"Overload_0_of_1_2_gave_the_following_error_2772\", \"Overload {0} of {1}, '{2}', gave the following error.\"),\n  Did_you_forget_to_use_await: diag(2773, 1 /* Error */, \"Did_you_forget_to_use_await_2773\", \"Did you forget to use 'await'?\"),\n  This_condition_will_always_return_true_since_this_function_is_always_defined_Did_you_mean_to_call_it_instead: diag(2774, 1 /* Error */, \"This_condition_will_always_return_true_since_this_function_is_always_defined_Did_you_mean_to_call_it_2774\", \"This condition will always return true since this function is always defined. Did you mean to call it instead?\"),\n  Assertions_require_every_name_in_the_call_target_to_be_declared_with_an_explicit_type_annotation: diag(2775, 1 /* Error */, \"Assertions_require_every_name_in_the_call_target_to_be_declared_with_an_explicit_type_annotation_2775\", \"Assertions require every name in the call target to be declared with an explicit type annotation.\"),\n  Assertions_require_the_call_target_to_be_an_identifier_or_qualified_name: diag(2776, 1 /* Error */, \"Assertions_require_the_call_target_to_be_an_identifier_or_qualified_name_2776\", \"Assertions require the call target to be an identifier or qualified name.\"),\n  The_operand_of_an_increment_or_decrement_operator_may_not_be_an_optional_property_access: diag(2777, 1 /* Error */, \"The_operand_of_an_increment_or_decrement_operator_may_not_be_an_optional_property_access_2777\", \"The operand of an increment or decrement operator may not be an optional property access.\"),\n  The_target_of_an_object_rest_assignment_may_not_be_an_optional_property_access: diag(2778, 1 /* Error */, \"The_target_of_an_object_rest_assignment_may_not_be_an_optional_property_access_2778\", \"The target of an object rest assignment may not be an optional property access.\"),\n  The_left_hand_side_of_an_assignment_expression_may_not_be_an_optional_property_access: diag(2779, 1 /* Error */, \"The_left_hand_side_of_an_assignment_expression_may_not_be_an_optional_property_access_2779\", \"The left-hand side of an assignment expression may not be an optional property access.\"),\n  The_left_hand_side_of_a_for_in_statement_may_not_be_an_optional_property_access: diag(2780, 1 /* Error */, \"The_left_hand_side_of_a_for_in_statement_may_not_be_an_optional_property_access_2780\", \"The left-hand side of a 'for...in' statement may not be an optional property access.\"),\n  The_left_hand_side_of_a_for_of_statement_may_not_be_an_optional_property_access: diag(2781, 1 /* Error */, \"The_left_hand_side_of_a_for_of_statement_may_not_be_an_optional_property_access_2781\", \"The left-hand side of a 'for...of' statement may not be an optional property access.\"),\n  _0_needs_an_explicit_type_annotation: diag(2782, 3 /* Message */, \"_0_needs_an_explicit_type_annotation_2782\", \"'{0}' needs an explicit type annotation.\"),\n  _0_is_specified_more_than_once_so_this_usage_will_be_overwritten: diag(2783, 1 /* Error */, \"_0_is_specified_more_than_once_so_this_usage_will_be_overwritten_2783\", \"'{0}' is specified more than once, so this usage will be overwritten.\"),\n  get_and_set_accessors_cannot_declare_this_parameters: diag(2784, 1 /* Error */, \"get_and_set_accessors_cannot_declare_this_parameters_2784\", \"'get' and 'set' accessors cannot declare 'this' parameters.\"),\n  This_spread_always_overwrites_this_property: diag(2785, 1 /* Error */, \"This_spread_always_overwrites_this_property_2785\", \"This spread always overwrites this property.\"),\n  _0_cannot_be_used_as_a_JSX_component: diag(2786, 1 /* Error */, \"_0_cannot_be_used_as_a_JSX_component_2786\", \"'{0}' cannot be used as a JSX component.\"),\n  Its_return_type_0_is_not_a_valid_JSX_element: diag(2787, 1 /* Error */, \"Its_return_type_0_is_not_a_valid_JSX_element_2787\", \"Its return type '{0}' is not a valid JSX element.\"),\n  Its_instance_type_0_is_not_a_valid_JSX_element: diag(2788, 1 /* Error */, \"Its_instance_type_0_is_not_a_valid_JSX_element_2788\", \"Its instance type '{0}' is not a valid JSX element.\"),\n  Its_element_type_0_is_not_a_valid_JSX_element: diag(2789, 1 /* Error */, \"Its_element_type_0_is_not_a_valid_JSX_element_2789\", \"Its element type '{0}' is not a valid JSX element.\"),\n  The_operand_of_a_delete_operator_must_be_optional: diag(2790, 1 /* Error */, \"The_operand_of_a_delete_operator_must_be_optional_2790\", \"The operand of a 'delete' operator must be optional.\"),\n  Exponentiation_cannot_be_performed_on_bigint_values_unless_the_target_option_is_set_to_es2016_or_later: diag(2791, 1 /* Error */, \"Exponentiation_cannot_be_performed_on_bigint_values_unless_the_target_option_is_set_to_es2016_or_lat_2791\", \"Exponentiation cannot be performed on 'bigint' values unless the 'target' option is set to 'es2016' or later.\"),\n  Cannot_find_module_0_Did_you_mean_to_set_the_moduleResolution_option_to_nodenext_or_to_add_aliases_to_the_paths_option: diag(2792, 1 /* Error */, \"Cannot_find_module_0_Did_you_mean_to_set_the_moduleResolution_option_to_nodenext_or_to_add_aliases_t_2792\", \"Cannot find module '{0}'. Did you mean to set the 'moduleResolution' option to 'nodenext', or to add aliases to the 'paths' option?\"),\n  The_call_would_have_succeeded_against_this_implementation_but_implementation_signatures_of_overloads_are_not_externally_visible: diag(2793, 1 /* Error */, \"The_call_would_have_succeeded_against_this_implementation_but_implementation_signatures_of_overloads_2793\", \"The call would have succeeded against this implementation, but implementation signatures of overloads are not externally visible.\"),\n  Expected_0_arguments_but_got_1_Did_you_forget_to_include_void_in_your_type_argument_to_Promise: diag(2794, 1 /* Error */, \"Expected_0_arguments_but_got_1_Did_you_forget_to_include_void_in_your_type_argument_to_Promise_2794\", \"Expected {0} arguments, but got {1}. Did you forget to include 'void' in your type argument to 'Promise'?\"),\n  The_intrinsic_keyword_can_only_be_used_to_declare_compiler_provided_intrinsic_types: diag(2795, 1 /* Error */, \"The_intrinsic_keyword_can_only_be_used_to_declare_compiler_provided_intrinsic_types_2795\", \"The 'intrinsic' keyword can only be used to declare compiler provided intrinsic types.\"),\n  It_is_likely_that_you_are_missing_a_comma_to_separate_these_two_template_expressions_They_form_a_tagged_template_expression_which_cannot_be_invoked: diag(2796, 1 /* Error */, \"It_is_likely_that_you_are_missing_a_comma_to_separate_these_two_template_expressions_They_form_a_tag_2796\", \"It is likely that you are missing a comma to separate these two template expressions. They form a tagged template expression which cannot be invoked.\"),\n  A_mixin_class_that_extends_from_a_type_variable_containing_an_abstract_construct_signature_must_also_be_declared_abstract: diag(2797, 1 /* Error */, \"A_mixin_class_that_extends_from_a_type_variable_containing_an_abstract_construct_signature_must_also_2797\", \"A mixin class that extends from a type variable containing an abstract construct signature must also be declared 'abstract'.\"),\n  The_declaration_was_marked_as_deprecated_here: diag(2798, 1 /* Error */, \"The_declaration_was_marked_as_deprecated_here_2798\", \"The declaration was marked as deprecated here.\"),\n  Type_produces_a_tuple_type_that_is_too_large_to_represent: diag(2799, 1 /* Error */, \"Type_produces_a_tuple_type_that_is_too_large_to_represent_2799\", \"Type produces a tuple type that is too large to represent.\"),\n  Expression_produces_a_tuple_type_that_is_too_large_to_represent: diag(2800, 1 /* Error */, \"Expression_produces_a_tuple_type_that_is_too_large_to_represent_2800\", \"Expression produces a tuple type that is too large to represent.\"),\n  This_condition_will_always_return_true_since_this_0_is_always_defined: diag(2801, 1 /* Error */, \"This_condition_will_always_return_true_since_this_0_is_always_defined_2801\", \"This condition will always return true since this '{0}' is always defined.\"),\n  Type_0_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es2015_or_higher: diag(2802, 1 /* Error */, \"Type_0_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es201_2802\", \"Type '{0}' can only be iterated through when using the '--downlevelIteration' flag or with a '--target' of 'es2015' or higher.\"),\n  Cannot_assign_to_private_method_0_Private_methods_are_not_writable: diag(2803, 1 /* Error */, \"Cannot_assign_to_private_method_0_Private_methods_are_not_writable_2803\", \"Cannot assign to private method '{0}'. Private methods are not writable.\"),\n  Duplicate_identifier_0_Static_and_instance_elements_cannot_share_the_same_private_name: diag(2804, 1 /* Error */, \"Duplicate_identifier_0_Static_and_instance_elements_cannot_share_the_same_private_name_2804\", \"Duplicate identifier '{0}'. Static and instance elements cannot share the same private name.\"),\n  Private_accessor_was_defined_without_a_getter: diag(2806, 1 /* Error */, \"Private_accessor_was_defined_without_a_getter_2806\", \"Private accessor was defined without a getter.\"),\n  This_syntax_requires_an_imported_helper_named_1_with_2_parameters_which_is_not_compatible_with_the_one_in_0_Consider_upgrading_your_version_of_0: diag(2807, 1 /* Error */, \"This_syntax_requires_an_imported_helper_named_1_with_2_parameters_which_is_not_compatible_with_the_o_2807\", \"This syntax requires an imported helper named '{1}' with {2} parameters, which is not compatible with the one in '{0}'. Consider upgrading your version of '{0}'.\"),\n  A_get_accessor_must_be_at_least_as_accessible_as_the_setter: diag(2808, 1 /* Error */, \"A_get_accessor_must_be_at_least_as_accessible_as_the_setter_2808\", \"A get accessor must be at least as accessible as the setter\"),\n  Declaration_or_statement_expected_This_follows_a_block_of_statements_so_if_you_intended_to_write_a_destructuring_assignment_you_might_need_to_wrap_the_whole_assignment_in_parentheses: diag(2809, 1 /* Error */, \"Declaration_or_statement_expected_This_follows_a_block_of_statements_so_if_you_intended_to_write_a_d_2809\", \"Declaration or statement expected. This '=' follows a block of statements, so if you intended to write a destructuring assignment, you might need to wrap the whole assignment in parentheses.\"),\n  Expected_1_argument_but_got_0_new_Promise_needs_a_JSDoc_hint_to_produce_a_resolve_that_can_be_called_without_arguments: diag(2810, 1 /* Error */, \"Expected_1_argument_but_got_0_new_Promise_needs_a_JSDoc_hint_to_produce_a_resolve_that_can_be_called_2810\", \"Expected 1 argument, but got 0. 'new Promise()' needs a JSDoc hint to produce a 'resolve' that can be called without arguments.\"),\n  Initializer_for_property_0: diag(2811, 1 /* Error */, \"Initializer_for_property_0_2811\", \"Initializer for property '{0}'\"),\n  Property_0_does_not_exist_on_type_1_Try_changing_the_lib_compiler_option_to_include_dom: diag(2812, 1 /* Error */, \"Property_0_does_not_exist_on_type_1_Try_changing_the_lib_compiler_option_to_include_dom_2812\", \"Property '{0}' does not exist on type '{1}'. Try changing the 'lib' compiler option to include 'dom'.\"),\n  Class_declaration_cannot_implement_overload_list_for_0: diag(2813, 1 /* Error */, \"Class_declaration_cannot_implement_overload_list_for_0_2813\", \"Class declaration cannot implement overload list for '{0}'.\"),\n  Function_with_bodies_can_only_merge_with_classes_that_are_ambient: diag(2814, 1 /* Error */, \"Function_with_bodies_can_only_merge_with_classes_that_are_ambient_2814\", \"Function with bodies can only merge with classes that are ambient.\"),\n  arguments_cannot_be_referenced_in_property_initializers_or_class_static_initialization_blocks: diag(2815, 1 /* Error */, \"arguments_cannot_be_referenced_in_property_initializers_or_class_static_initialization_blocks_2815\", \"'arguments' cannot be referenced in property initializers or class static initialization blocks.\"),\n  Cannot_use_this_in_a_static_property_initializer_of_a_decorated_class: diag(2816, 1 /* Error */, \"Cannot_use_this_in_a_static_property_initializer_of_a_decorated_class_2816\", \"Cannot use 'this' in a static property initializer of a decorated class.\"),\n  Property_0_has_no_initializer_and_is_not_definitely_assigned_in_a_class_static_block: diag(2817, 1 /* Error */, \"Property_0_has_no_initializer_and_is_not_definitely_assigned_in_a_class_static_block_2817\", \"Property '{0}' has no initializer and is not definitely assigned in a class static block.\"),\n  Duplicate_identifier_0_Compiler_reserves_name_1_when_emitting_super_references_in_static_initializers: diag(2818, 1 /* Error */, \"Duplicate_identifier_0_Compiler_reserves_name_1_when_emitting_super_references_in_static_initializer_2818\", \"Duplicate identifier '{0}'. Compiler reserves name '{1}' when emitting 'super' references in static initializers.\"),\n  Namespace_name_cannot_be_0: diag(2819, 1 /* Error */, \"Namespace_name_cannot_be_0_2819\", \"Namespace name cannot be '{0}'.\"),\n  Type_0_is_not_assignable_to_type_1_Did_you_mean_2: diag(2820, 1 /* Error */, \"Type_0_is_not_assignable_to_type_1_Did_you_mean_2_2820\", \"Type '{0}' is not assignable to type '{1}'. Did you mean '{2}'?\"),\n  Import_assertions_are_only_supported_when_the_module_option_is_set_to_esnext_node18_node20_nodenext_or_preserve: diag(2821, 1 /* Error */, \"Import_assertions_are_only_supported_when_the_module_option_is_set_to_esnext_node18_node20_nodenext__2821\", \"Import assertions are only supported when the '--module' option is set to 'esnext', 'node18', 'node20', 'nodenext', or 'preserve'.\"),\n  Import_assertions_cannot_be_used_with_type_only_imports_or_exports: diag(2822, 1 /* Error */, \"Import_assertions_cannot_be_used_with_type_only_imports_or_exports_2822\", \"Import assertions cannot be used with type-only imports or exports.\"),\n  Import_attributes_are_only_supported_when_the_module_option_is_set_to_esnext_node18_node20_nodenext_or_preserve: diag(2823, 1 /* Error */, \"Import_attributes_are_only_supported_when_the_module_option_is_set_to_esnext_node18_node20_nodenext__2823\", \"Import attributes are only supported when the '--module' option is set to 'esnext', 'node18', 'node20', 'nodenext', or 'preserve'.\"),\n  Cannot_find_namespace_0_Did_you_mean_1: diag(2833, 1 /* Error */, \"Cannot_find_namespace_0_Did_you_mean_1_2833\", \"Cannot find namespace '{0}'. Did you mean '{1}'?\"),\n  Relative_import_paths_need_explicit_file_extensions_in_ECMAScript_imports_when_moduleResolution_is_node16_or_nodenext_Consider_adding_an_extension_to_the_import_path: diag(2834, 1 /* Error */, \"Relative_import_paths_need_explicit_file_extensions_in_ECMAScript_imports_when_moduleResolution_is_n_2834\", \"Relative import paths need explicit file extensions in ECMAScript imports when '--moduleResolution' is 'node16' or 'nodenext'. Consider adding an extension to the import path.\"),\n  Relative_import_paths_need_explicit_file_extensions_in_ECMAScript_imports_when_moduleResolution_is_node16_or_nodenext_Did_you_mean_0: diag(2835, 1 /* Error */, \"Relative_import_paths_need_explicit_file_extensions_in_ECMAScript_imports_when_moduleResolution_is_n_2835\", \"Relative import paths need explicit file extensions in ECMAScript imports when '--moduleResolution' is 'node16' or 'nodenext'. Did you mean '{0}'?\"),\n  Import_assertions_are_not_allowed_on_statements_that_compile_to_CommonJS_require_calls: diag(2836, 1 /* Error */, \"Import_assertions_are_not_allowed_on_statements_that_compile_to_CommonJS_require_calls_2836\", \"Import assertions are not allowed on statements that compile to CommonJS 'require' calls.\"),\n  Import_assertion_values_must_be_string_literal_expressions: diag(2837, 1 /* Error */, \"Import_assertion_values_must_be_string_literal_expressions_2837\", \"Import assertion values must be string literal expressions.\"),\n  All_declarations_of_0_must_have_identical_constraints: diag(2838, 1 /* Error */, \"All_declarations_of_0_must_have_identical_constraints_2838\", \"All declarations of '{0}' must have identical constraints.\"),\n  This_condition_will_always_return_0_since_JavaScript_compares_objects_by_reference_not_value: diag(2839, 1 /* Error */, \"This_condition_will_always_return_0_since_JavaScript_compares_objects_by_reference_not_value_2839\", \"This condition will always return '{0}' since JavaScript compares objects by reference, not value.\"),\n  An_interface_cannot_extend_a_primitive_type_like_0_It_can_only_extend_other_named_object_types: diag(2840, 1 /* Error */, \"An_interface_cannot_extend_a_primitive_type_like_0_It_can_only_extend_other_named_object_types_2840\", \"An interface cannot extend a primitive type like '{0}'. It can only extend other named object types.\"),\n  _0_is_an_unused_renaming_of_1_Did_you_intend_to_use_it_as_a_type_annotation: diag(2842, 1 /* Error */, \"_0_is_an_unused_renaming_of_1_Did_you_intend_to_use_it_as_a_type_annotation_2842\", \"'{0}' is an unused renaming of '{1}'. Did you intend to use it as a type annotation?\"),\n  We_can_only_write_a_type_for_0_by_adding_a_type_for_the_entire_parameter_here: diag(2843, 1 /* Error */, \"We_can_only_write_a_type_for_0_by_adding_a_type_for_the_entire_parameter_here_2843\", \"We can only write a type for '{0}' by adding a type for the entire parameter here.\"),\n  Type_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor: diag(2844, 1 /* Error */, \"Type_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor_2844\", \"Type of instance member variable '{0}' cannot reference identifier '{1}' declared in the constructor.\"),\n  This_condition_will_always_return_0: diag(2845, 1 /* Error */, \"This_condition_will_always_return_0_2845\", \"This condition will always return '{0}'.\"),\n  A_declaration_file_cannot_be_imported_without_import_type_Did_you_mean_to_import_an_implementation_file_0_instead: diag(2846, 1 /* Error */, \"A_declaration_file_cannot_be_imported_without_import_type_Did_you_mean_to_import_an_implementation_f_2846\", \"A declaration file cannot be imported without 'import type'. Did you mean to import an implementation file '{0}' instead?\"),\n  The_right_hand_side_of_an_instanceof_expression_must_not_be_an_instantiation_expression: diag(2848, 1 /* Error */, \"The_right_hand_side_of_an_instanceof_expression_must_not_be_an_instantiation_expression_2848\", \"The right-hand side of an 'instanceof' expression must not be an instantiation expression.\"),\n  Target_signature_provides_too_few_arguments_Expected_0_or_more_but_got_1: diag(2849, 1 /* Error */, \"Target_signature_provides_too_few_arguments_Expected_0_or_more_but_got_1_2849\", \"Target signature provides too few arguments. Expected {0} or more, but got {1}.\"),\n  The_initializer_of_a_using_declaration_must_be_either_an_object_with_a_Symbol_dispose_method_or_be_null_or_undefined: diag(2850, 1 /* Error */, \"The_initializer_of_a_using_declaration_must_be_either_an_object_with_a_Symbol_dispose_method_or_be_n_2850\", \"The initializer of a 'using' declaration must be either an object with a '[Symbol.dispose]()' method, or be 'null' or 'undefined'.\"),\n  The_initializer_of_an_await_using_declaration_must_be_either_an_object_with_a_Symbol_asyncDispose_or_Symbol_dispose_method_or_be_null_or_undefined: diag(2851, 1 /* Error */, \"The_initializer_of_an_await_using_declaration_must_be_either_an_object_with_a_Symbol_asyncDispose_or_2851\", \"The initializer of an 'await using' declaration must be either an object with a '[Symbol.asyncDispose]()' or '[Symbol.dispose]()' method, or be 'null' or 'undefined'.\"),\n  await_using_statements_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules: diag(2852, 1 /* Error */, \"await_using_statements_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules_2852\", \"'await using' statements are only allowed within async functions and at the top levels of modules.\"),\n  await_using_statements_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module: diag(2853, 1 /* Error */, \"await_using_statements_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_th_2853\", \"'await using' statements are only allowed at the top level of a file when that file is a module, but this file has no imports or exports. Consider adding an empty 'export {}' to make this file a module.\"),\n  Top_level_await_using_statements_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_node18_node20_nodenext_or_preserve_and_the_target_option_is_set_to_es2017_or_higher: diag(2854, 1 /* Error */, \"Top_level_await_using_statements_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_sys_2854\", \"Top-level 'await using' statements are only allowed when the 'module' option is set to 'es2022', 'esnext', 'system', 'node16', 'node18', 'node20', 'nodenext', or 'preserve', and the 'target' option is set to 'es2017' or higher.\"),\n  Class_field_0_defined_by_the_parent_class_is_not_accessible_in_the_child_class_via_super: diag(2855, 1 /* Error */, \"Class_field_0_defined_by_the_parent_class_is_not_accessible_in_the_child_class_via_super_2855\", \"Class field '{0}' defined by the parent class is not accessible in the child class via super.\"),\n  Import_attributes_are_not_allowed_on_statements_that_compile_to_CommonJS_require_calls: diag(2856, 1 /* Error */, \"Import_attributes_are_not_allowed_on_statements_that_compile_to_CommonJS_require_calls_2856\", \"Import attributes are not allowed on statements that compile to CommonJS 'require' calls.\"),\n  Import_attributes_cannot_be_used_with_type_only_imports_or_exports: diag(2857, 1 /* Error */, \"Import_attributes_cannot_be_used_with_type_only_imports_or_exports_2857\", \"Import attributes cannot be used with type-only imports or exports.\"),\n  Import_attribute_values_must_be_string_literal_expressions: diag(2858, 1 /* Error */, \"Import_attribute_values_must_be_string_literal_expressions_2858\", \"Import attribute values must be string literal expressions.\"),\n  Excessive_complexity_comparing_types_0_and_1: diag(2859, 1 /* Error */, \"Excessive_complexity_comparing_types_0_and_1_2859\", \"Excessive complexity comparing types '{0}' and '{1}'.\"),\n  The_left_hand_side_of_an_instanceof_expression_must_be_assignable_to_the_first_argument_of_the_right_hand_side_s_Symbol_hasInstance_method: diag(2860, 1 /* Error */, \"The_left_hand_side_of_an_instanceof_expression_must_be_assignable_to_the_first_argument_of_the_right_2860\", \"The left-hand side of an 'instanceof' expression must be assignable to the first argument of the right-hand side's '[Symbol.hasInstance]' method.\"),\n  An_object_s_Symbol_hasInstance_method_must_return_a_boolean_value_for_it_to_be_used_on_the_right_hand_side_of_an_instanceof_expression: diag(2861, 1 /* Error */, \"An_object_s_Symbol_hasInstance_method_must_return_a_boolean_value_for_it_to_be_used_on_the_right_han_2861\", \"An object's '[Symbol.hasInstance]' method must return a boolean value for it to be used on the right-hand side of an 'instanceof' expression.\"),\n  Type_0_is_generic_and_can_only_be_indexed_for_reading: diag(2862, 1 /* Error */, \"Type_0_is_generic_and_can_only_be_indexed_for_reading_2862\", \"Type '{0}' is generic and can only be indexed for reading.\"),\n  A_class_cannot_extend_a_primitive_type_like_0_Classes_can_only_extend_constructable_values: diag(2863, 1 /* Error */, \"A_class_cannot_extend_a_primitive_type_like_0_Classes_can_only_extend_constructable_values_2863\", \"A class cannot extend a primitive type like '{0}'. Classes can only extend constructable values.\"),\n  A_class_cannot_implement_a_primitive_type_like_0_It_can_only_implement_other_named_object_types: diag(2864, 1 /* Error */, \"A_class_cannot_implement_a_primitive_type_like_0_It_can_only_implement_other_named_object_types_2864\", \"A class cannot implement a primitive type like '{0}'. It can only implement other named object types.\"),\n  Import_0_conflicts_with_local_value_so_must_be_declared_with_a_type_only_import_when_isolatedModules_is_enabled: diag(2865, 1 /* Error */, \"Import_0_conflicts_with_local_value_so_must_be_declared_with_a_type_only_import_when_isolatedModules_2865\", \"Import '{0}' conflicts with local value, so must be declared with a type-only import when 'isolatedModules' is enabled.\"),\n  Import_0_conflicts_with_global_value_used_in_this_file_so_must_be_declared_with_a_type_only_import_when_isolatedModules_is_enabled: diag(2866, 1 /* Error */, \"Import_0_conflicts_with_global_value_used_in_this_file_so_must_be_declared_with_a_type_only_import_w_2866\", \"Import '{0}' conflicts with global value used in this file, so must be declared with a type-only import when 'isolatedModules' is enabled.\"),\n  Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_Bun_Try_npm_i_save_dev_types_Slashbun: diag(2867, 1 /* Error */, \"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_Bun_Try_npm_i_save_dev_types_Slashbun_2867\", \"Cannot find name '{0}'. Do you need to install type definitions for Bun? Try `npm i --save-dev @types/bun`.\"),\n  Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_Bun_Try_npm_i_save_dev_types_Slashbun_and_then_add_bun_to_the_types_field_in_your_tsconfig: diag(2868, 1 /* Error */, \"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_Bun_Try_npm_i_save_dev_types_Slashbun_2868\", \"Cannot find name '{0}'. Do you need to install type definitions for Bun? Try `npm i --save-dev @types/bun` and then add 'bun' to the types field in your tsconfig.\"),\n  Right_operand_of_is_unreachable_because_the_left_operand_is_never_nullish: diag(2869, 1 /* Error */, \"Right_operand_of_is_unreachable_because_the_left_operand_is_never_nullish_2869\", \"Right operand of ?? is unreachable because the left operand is never nullish.\"),\n  This_binary_expression_is_never_nullish_Are_you_missing_parentheses: diag(2870, 1 /* Error */, \"This_binary_expression_is_never_nullish_Are_you_missing_parentheses_2870\", \"This binary expression is never nullish. Are you missing parentheses?\"),\n  This_expression_is_always_nullish: diag(2871, 1 /* Error */, \"This_expression_is_always_nullish_2871\", \"This expression is always nullish.\"),\n  This_kind_of_expression_is_always_truthy: diag(2872, 1 /* Error */, \"This_kind_of_expression_is_always_truthy_2872\", \"This kind of expression is always truthy.\"),\n  This_kind_of_expression_is_always_falsy: diag(2873, 1 /* Error */, \"This_kind_of_expression_is_always_falsy_2873\", \"This kind of expression is always falsy.\"),\n  This_JSX_tag_requires_0_to_be_in_scope_but_it_could_not_be_found: diag(2874, 1 /* Error */, \"This_JSX_tag_requires_0_to_be_in_scope_but_it_could_not_be_found_2874\", \"This JSX tag requires '{0}' to be in scope, but it could not be found.\"),\n  This_JSX_tag_requires_the_module_path_0_to_exist_but_none_could_be_found_Make_sure_you_have_types_for_the_appropriate_package_installed: diag(2875, 1 /* Error */, \"This_JSX_tag_requires_the_module_path_0_to_exist_but_none_could_be_found_Make_sure_you_have_types_fo_2875\", \"This JSX tag requires the module path '{0}' to exist, but none could be found. Make sure you have types for the appropriate package installed.\"),\n  This_relative_import_path_is_unsafe_to_rewrite_because_it_looks_like_a_file_name_but_actually_resolves_to_0: diag(2876, 1 /* Error */, \"This_relative_import_path_is_unsafe_to_rewrite_because_it_looks_like_a_file_name_but_actually_resolv_2876\", 'This relative import path is unsafe to rewrite because it looks like a file name, but actually resolves to \"{0}\".'),\n  This_import_uses_a_0_extension_to_resolve_to_an_input_TypeScript_file_but_will_not_be_rewritten_during_emit_because_it_is_not_a_relative_path: diag(2877, 1 /* Error */, \"This_import_uses_a_0_extension_to_resolve_to_an_input_TypeScript_file_but_will_not_be_rewritten_duri_2877\", \"This import uses a '{0}' extension to resolve to an input TypeScript file, but will not be rewritten during emit because it is not a relative path.\"),\n  This_import_path_is_unsafe_to_rewrite_because_it_resolves_to_another_project_and_the_relative_path_between_the_projects_output_files_is_not_the_same_as_the_relative_path_between_its_input_files: diag(2878, 1 /* Error */, \"This_import_path_is_unsafe_to_rewrite_because_it_resolves_to_another_project_and_the_relative_path_b_2878\", \"This import path is unsafe to rewrite because it resolves to another project, and the relative path between the projects' output files is not the same as the relative path between its input files.\"),\n  Using_JSX_fragments_requires_fragment_factory_0_to_be_in_scope_but_it_could_not_be_found: diag(2879, 1 /* Error */, \"Using_JSX_fragments_requires_fragment_factory_0_to_be_in_scope_but_it_could_not_be_found_2879\", \"Using JSX fragments requires fragment factory '{0}' to be in scope, but it could not be found.\"),\n  Import_assertions_have_been_replaced_by_import_attributes_Use_with_instead_of_assert: diag(2880, 1 /* Error */, \"Import_assertions_have_been_replaced_by_import_attributes_Use_with_instead_of_assert_2880\", \"Import assertions have been replaced by import attributes. Use 'with' instead of 'assert'.\"),\n  This_expression_is_never_nullish: diag(2881, 1 /* Error */, \"This_expression_is_never_nullish_2881\", \"This expression is never nullish.\"),\n  Import_declaration_0_is_using_private_name_1: diag(4e3, 1 /* Error */, \"Import_declaration_0_is_using_private_name_1_4000\", \"Import declaration '{0}' is using private name '{1}'.\"),\n  Type_parameter_0_of_exported_class_has_or_is_using_private_name_1: diag(4002, 1 /* Error */, \"Type_parameter_0_of_exported_class_has_or_is_using_private_name_1_4002\", \"Type parameter '{0}' of exported class has or is using private name '{1}'.\"),\n  Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1: diag(4004, 1 /* Error */, \"Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1_4004\", \"Type parameter '{0}' of exported interface has or is using private name '{1}'.\"),\n  Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1: diag(4006, 1 /* Error */, \"Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1_4006\", \"Type parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'.\"),\n  Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1: diag(4008, 1 /* Error */, \"Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1_4008\", \"Type parameter '{0}' of call signature from exported interface has or is using private name '{1}'.\"),\n  Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1: diag(4010, 1 /* Error */, \"Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1_4010\", \"Type parameter '{0}' of public static method from exported class has or is using private name '{1}'.\"),\n  Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1: diag(4012, 1 /* Error */, \"Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1_4012\", \"Type parameter '{0}' of public method from exported class has or is using private name '{1}'.\"),\n  Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1: diag(4014, 1 /* Error */, \"Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1_4014\", \"Type parameter '{0}' of method from exported interface has or is using private name '{1}'.\"),\n  Type_parameter_0_of_exported_function_has_or_is_using_private_name_1: diag(4016, 1 /* Error */, \"Type_parameter_0_of_exported_function_has_or_is_using_private_name_1_4016\", \"Type parameter '{0}' of exported function has or is using private name '{1}'.\"),\n  Implements_clause_of_exported_class_0_has_or_is_using_private_name_1: diag(4019, 1 /* Error */, \"Implements_clause_of_exported_class_0_has_or_is_using_private_name_1_4019\", \"Implements clause of exported class '{0}' has or is using private name '{1}'.\"),\n  extends_clause_of_exported_class_0_has_or_is_using_private_name_1: diag(4020, 1 /* Error */, \"extends_clause_of_exported_class_0_has_or_is_using_private_name_1_4020\", \"'extends' clause of exported class '{0}' has or is using private name '{1}'.\"),\n  extends_clause_of_exported_class_has_or_is_using_private_name_0: diag(4021, 1 /* Error */, \"extends_clause_of_exported_class_has_or_is_using_private_name_0_4021\", \"'extends' clause of exported class has or is using private name '{0}'.\"),\n  extends_clause_of_exported_interface_0_has_or_is_using_private_name_1: diag(4022, 1 /* Error */, \"extends_clause_of_exported_interface_0_has_or_is_using_private_name_1_4022\", \"'extends' clause of exported interface '{0}' has or is using private name '{1}'.\"),\n  Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: diag(4023, 1 /* Error */, \"Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4023\", \"Exported variable '{0}' has or is using name '{1}' from external module {2} but cannot be named.\"),\n  Exported_variable_0_has_or_is_using_name_1_from_private_module_2: diag(4024, 1 /* Error */, \"Exported_variable_0_has_or_is_using_name_1_from_private_module_2_4024\", \"Exported variable '{0}' has or is using name '{1}' from private module '{2}'.\"),\n  Exported_variable_0_has_or_is_using_private_name_1: diag(4025, 1 /* Error */, \"Exported_variable_0_has_or_is_using_private_name_1_4025\", \"Exported variable '{0}' has or is using private name '{1}'.\"),\n  Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: diag(4026, 1 /* Error */, \"Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot__4026\", \"Public static property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named.\"),\n  Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2: diag(4027, 1 /* Error */, \"Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4027\", \"Public static property '{0}' of exported class has or is using name '{1}' from private module '{2}'.\"),\n  Public_static_property_0_of_exported_class_has_or_is_using_private_name_1: diag(4028, 1 /* Error */, \"Public_static_property_0_of_exported_class_has_or_is_using_private_name_1_4028\", \"Public static property '{0}' of exported class has or is using private name '{1}'.\"),\n  Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: diag(4029, 1 /* Error */, \"Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_name_4029\", \"Public property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named.\"),\n  Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2: diag(4030, 1 /* Error */, \"Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4030\", \"Public property '{0}' of exported class has or is using name '{1}' from private module '{2}'.\"),\n  Public_property_0_of_exported_class_has_or_is_using_private_name_1: diag(4031, 1 /* Error */, \"Public_property_0_of_exported_class_has_or_is_using_private_name_1_4031\", \"Public property '{0}' of exported class has or is using private name '{1}'.\"),\n  Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2: diag(4032, 1 /* Error */, \"Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2_4032\", \"Property '{0}' of exported interface has or is using name '{1}' from private module '{2}'.\"),\n  Property_0_of_exported_interface_has_or_is_using_private_name_1: diag(4033, 1 /* Error */, \"Property_0_of_exported_interface_has_or_is_using_private_name_1_4033\", \"Property '{0}' of exported interface has or is using private name '{1}'.\"),\n  Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2: diag(4034, 1 /* Error */, \"Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_name_1_from_private_mod_4034\", \"Parameter type of public static setter '{0}' from exported class has or is using name '{1}' from private module '{2}'.\"),\n  Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_private_name_1: diag(4035, 1 /* Error */, \"Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_private_name_1_4035\", \"Parameter type of public static setter '{0}' from exported class has or is using private name '{1}'.\"),\n  Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2: diag(4036, 1 /* Error */, \"Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2_4036\", \"Parameter type of public setter '{0}' from exported class has or is using name '{1}' from private module '{2}'.\"),\n  Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_private_name_1: diag(4037, 1 /* Error */, \"Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_private_name_1_4037\", \"Parameter type of public setter '{0}' from exported class has or is using private name '{1}'.\"),\n  Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: diag(4038, 1 /* Error */, \"Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_external_modul_4038\", \"Return type of public static getter '{0}' from exported class has or is using name '{1}' from external module {2} but cannot be named.\"),\n  Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2: diag(4039, 1 /* Error */, \"Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_4039\", \"Return type of public static getter '{0}' from exported class has or is using name '{1}' from private module '{2}'.\"),\n  Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_private_name_1: diag(4040, 1 /* Error */, \"Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_private_name_1_4040\", \"Return type of public static getter '{0}' from exported class has or is using private name '{1}'.\"),\n  Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: diag(4041, 1 /* Error */, \"Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_4041\", \"Return type of public getter '{0}' from exported class has or is using name '{1}' from external module {2} but cannot be named.\"),\n  Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2: diag(4042, 1 /* Error */, \"Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2_4042\", \"Return type of public getter '{0}' from exported class has or is using name '{1}' from private module '{2}'.\"),\n  Return_type_of_public_getter_0_from_exported_class_has_or_is_using_private_name_1: diag(4043, 1 /* Error */, \"Return_type_of_public_getter_0_from_exported_class_has_or_is_using_private_name_1_4043\", \"Return type of public getter '{0}' from exported class has or is using private name '{1}'.\"),\n  Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1: diag(4044, 1 /* Error */, \"Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_mod_4044\", \"Return type of constructor signature from exported interface has or is using name '{0}' from private module '{1}'.\"),\n  Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0: diag(4045, 1 /* Error */, \"Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0_4045\", \"Return type of constructor signature from exported interface has or is using private name '{0}'.\"),\n  Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1: diag(4046, 1 /* Error */, \"Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1_4046\", \"Return type of call signature from exported interface has or is using name '{0}' from private module '{1}'.\"),\n  Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0: diag(4047, 1 /* Error */, \"Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0_4047\", \"Return type of call signature from exported interface has or is using private name '{0}'.\"),\n  Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1: diag(4048, 1 /* Error */, \"Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1_4048\", \"Return type of index signature from exported interface has or is using name '{0}' from private module '{1}'.\"),\n  Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0: diag(4049, 1 /* Error */, \"Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0_4049\", \"Return type of index signature from exported interface has or is using private name '{0}'.\"),\n  Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: diag(4050, 1 /* Error */, \"Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module__4050\", \"Return type of public static method from exported class has or is using name '{0}' from external module {1} but cannot be named.\"),\n  Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1: diag(4051, 1 /* Error */, \"Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1_4051\", \"Return type of public static method from exported class has or is using name '{0}' from private module '{1}'.\"),\n  Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0: diag(4052, 1 /* Error */, \"Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0_4052\", \"Return type of public static method from exported class has or is using private name '{0}'.\"),\n  Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: diag(4053, 1 /* Error */, \"Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_c_4053\", \"Return type of public method from exported class has or is using name '{0}' from external module {1} but cannot be named.\"),\n  Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1: diag(4054, 1 /* Error */, \"Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1_4054\", \"Return type of public method from exported class has or is using name '{0}' from private module '{1}'.\"),\n  Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0: diag(4055, 1 /* Error */, \"Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0_4055\", \"Return type of public method from exported class has or is using private name '{0}'.\"),\n  Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1: diag(4056, 1 /* Error */, \"Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1_4056\", \"Return type of method from exported interface has or is using name '{0}' from private module '{1}'.\"),\n  Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0: diag(4057, 1 /* Error */, \"Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0_4057\", \"Return type of method from exported interface has or is using private name '{0}'.\"),\n  Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: diag(4058, 1 /* Error */, \"Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named_4058\", \"Return type of exported function has or is using name '{0}' from external module {1} but cannot be named.\"),\n  Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1: diag(4059, 1 /* Error */, \"Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1_4059\", \"Return type of exported function has or is using name '{0}' from private module '{1}'.\"),\n  Return_type_of_exported_function_has_or_is_using_private_name_0: diag(4060, 1 /* Error */, \"Return_type_of_exported_function_has_or_is_using_private_name_0_4060\", \"Return type of exported function has or is using private name '{0}'.\"),\n  Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: diag(4061, 1 /* Error */, \"Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_can_4061\", \"Parameter '{0}' of constructor from exported class has or is using name '{1}' from external module {2} but cannot be named.\"),\n  Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2: diag(4062, 1 /* Error */, \"Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2_4062\", \"Parameter '{0}' of constructor from exported class has or is using name '{1}' from private module '{2}'.\"),\n  Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1: diag(4063, 1 /* Error */, \"Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1_4063\", \"Parameter '{0}' of constructor from exported class has or is using private name '{1}'.\"),\n  Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2: diag(4064, 1 /* Error */, \"Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_mod_4064\", \"Parameter '{0}' of constructor signature from exported interface has or is using name '{1}' from private module '{2}'.\"),\n  Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1: diag(4065, 1 /* Error */, \"Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1_4065\", \"Parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'.\"),\n  Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2: diag(4066, 1 /* Error */, \"Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2_4066\", \"Parameter '{0}' of call signature from exported interface has or is using name '{1}' from private module '{2}'.\"),\n  Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1: diag(4067, 1 /* Error */, \"Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1_4067\", \"Parameter '{0}' of call signature from exported interface has or is using private name '{1}'.\"),\n  Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: diag(4068, 1 /* Error */, \"Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module__4068\", \"Parameter '{0}' of public static method from exported class has or is using name '{1}' from external module {2} but cannot be named.\"),\n  Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2: diag(4069, 1 /* Error */, \"Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2_4069\", \"Parameter '{0}' of public static method from exported class has or is using name '{1}' from private module '{2}'.\"),\n  Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1: diag(4070, 1 /* Error */, \"Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1_4070\", \"Parameter '{0}' of public static method from exported class has or is using private name '{1}'.\"),\n  Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: diag(4071, 1 /* Error */, \"Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_c_4071\", \"Parameter '{0}' of public method from exported class has or is using name '{1}' from external module {2} but cannot be named.\"),\n  Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2: diag(4072, 1 /* Error */, \"Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2_4072\", \"Parameter '{0}' of public method from exported class has or is using name '{1}' from private module '{2}'.\"),\n  Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1: diag(4073, 1 /* Error */, \"Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1_4073\", \"Parameter '{0}' of public method from exported class has or is using private name '{1}'.\"),\n  Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2: diag(4074, 1 /* Error */, \"Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2_4074\", \"Parameter '{0}' of method from exported interface has or is using name '{1}' from private module '{2}'.\"),\n  Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1: diag(4075, 1 /* Error */, \"Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1_4075\", \"Parameter '{0}' of method from exported interface has or is using private name '{1}'.\"),\n  Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: diag(4076, 1 /* Error */, \"Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4076\", \"Parameter '{0}' of exported function has or is using name '{1}' from external module {2} but cannot be named.\"),\n  Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2: diag(4077, 1 /* Error */, \"Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2_4077\", \"Parameter '{0}' of exported function has or is using name '{1}' from private module '{2}'.\"),\n  Parameter_0_of_exported_function_has_or_is_using_private_name_1: diag(4078, 1 /* Error */, \"Parameter_0_of_exported_function_has_or_is_using_private_name_1_4078\", \"Parameter '{0}' of exported function has or is using private name '{1}'.\"),\n  Exported_type_alias_0_has_or_is_using_private_name_1: diag(4081, 1 /* Error */, \"Exported_type_alias_0_has_or_is_using_private_name_1_4081\", \"Exported type alias '{0}' has or is using private name '{1}'.\"),\n  Default_export_of_the_module_has_or_is_using_private_name_0: diag(4082, 1 /* Error */, \"Default_export_of_the_module_has_or_is_using_private_name_0_4082\", \"Default export of the module has or is using private name '{0}'.\"),\n  Type_parameter_0_of_exported_type_alias_has_or_is_using_private_name_1: diag(4083, 1 /* Error */, \"Type_parameter_0_of_exported_type_alias_has_or_is_using_private_name_1_4083\", \"Type parameter '{0}' of exported type alias has or is using private name '{1}'.\"),\n  Exported_type_alias_0_has_or_is_using_private_name_1_from_module_2: diag(4084, 1 /* Error */, \"Exported_type_alias_0_has_or_is_using_private_name_1_from_module_2_4084\", \"Exported type alias '{0}' has or is using private name '{1}' from module {2}.\"),\n  Extends_clause_for_inferred_type_0_has_or_is_using_private_name_1: diag(4085, 1 /* Error */, \"Extends_clause_for_inferred_type_0_has_or_is_using_private_name_1_4085\", \"Extends clause for inferred type '{0}' has or is using private name '{1}'.\"),\n  Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2: diag(4091, 1 /* Error */, \"Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2_4091\", \"Parameter '{0}' of index signature from exported interface has or is using name '{1}' from private module '{2}'.\"),\n  Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_private_name_1: diag(4092, 1 /* Error */, \"Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_private_name_1_4092\", \"Parameter '{0}' of index signature from exported interface has or is using private name '{1}'.\"),\n  Property_0_of_exported_anonymous_class_type_may_not_be_private_or_protected: diag(4094, 1 /* Error */, \"Property_0_of_exported_anonymous_class_type_may_not_be_private_or_protected_4094\", \"Property '{0}' of exported anonymous class type may not be private or protected.\"),\n  Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: diag(4095, 1 /* Error */, \"Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_4095\", \"Public static method '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named.\"),\n  Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2: diag(4096, 1 /* Error */, \"Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4096\", \"Public static method '{0}' of exported class has or is using name '{1}' from private module '{2}'.\"),\n  Public_static_method_0_of_exported_class_has_or_is_using_private_name_1: diag(4097, 1 /* Error */, \"Public_static_method_0_of_exported_class_has_or_is_using_private_name_1_4097\", \"Public static method '{0}' of exported class has or is using private name '{1}'.\"),\n  Public_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: diag(4098, 1 /* Error */, \"Public_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4098\", \"Public method '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named.\"),\n  Public_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2: diag(4099, 1 /* Error */, \"Public_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4099\", \"Public method '{0}' of exported class has or is using name '{1}' from private module '{2}'.\"),\n  Public_method_0_of_exported_class_has_or_is_using_private_name_1: diag(4100, 1 /* Error */, \"Public_method_0_of_exported_class_has_or_is_using_private_name_1_4100\", \"Public method '{0}' of exported class has or is using private name '{1}'.\"),\n  Method_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2: diag(4101, 1 /* Error */, \"Method_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2_4101\", \"Method '{0}' of exported interface has or is using name '{1}' from private module '{2}'.\"),\n  Method_0_of_exported_interface_has_or_is_using_private_name_1: diag(4102, 1 /* Error */, \"Method_0_of_exported_interface_has_or_is_using_private_name_1_4102\", \"Method '{0}' of exported interface has or is using private name '{1}'.\"),\n  Type_parameter_0_of_exported_mapped_object_type_is_using_private_name_1: diag(4103, 1 /* Error */, \"Type_parameter_0_of_exported_mapped_object_type_is_using_private_name_1_4103\", \"Type parameter '{0}' of exported mapped object type is using private name '{1}'.\"),\n  The_type_0_is_readonly_and_cannot_be_assigned_to_the_mutable_type_1: diag(4104, 1 /* Error */, \"The_type_0_is_readonly_and_cannot_be_assigned_to_the_mutable_type_1_4104\", \"The type '{0}' is 'readonly' and cannot be assigned to the mutable type '{1}'.\"),\n  Private_or_protected_member_0_cannot_be_accessed_on_a_type_parameter: diag(4105, 1 /* Error */, \"Private_or_protected_member_0_cannot_be_accessed_on_a_type_parameter_4105\", \"Private or protected member '{0}' cannot be accessed on a type parameter.\"),\n  Parameter_0_of_accessor_has_or_is_using_private_name_1: diag(4106, 1 /* Error */, \"Parameter_0_of_accessor_has_or_is_using_private_name_1_4106\", \"Parameter '{0}' of accessor has or is using private name '{1}'.\"),\n  Parameter_0_of_accessor_has_or_is_using_name_1_from_private_module_2: diag(4107, 1 /* Error */, \"Parameter_0_of_accessor_has_or_is_using_name_1_from_private_module_2_4107\", \"Parameter '{0}' of accessor has or is using name '{1}' from private module '{2}'.\"),\n  Parameter_0_of_accessor_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: diag(4108, 1 /* Error */, \"Parameter_0_of_accessor_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4108\", \"Parameter '{0}' of accessor has or is using name '{1}' from external module '{2}' but cannot be named.\"),\n  Type_arguments_for_0_circularly_reference_themselves: diag(4109, 1 /* Error */, \"Type_arguments_for_0_circularly_reference_themselves_4109\", \"Type arguments for '{0}' circularly reference themselves.\"),\n  Tuple_type_arguments_circularly_reference_themselves: diag(4110, 1 /* Error */, \"Tuple_type_arguments_circularly_reference_themselves_4110\", \"Tuple type arguments circularly reference themselves.\"),\n  Property_0_comes_from_an_index_signature_so_it_must_be_accessed_with_0: diag(4111, 1 /* Error */, \"Property_0_comes_from_an_index_signature_so_it_must_be_accessed_with_0_4111\", \"Property '{0}' comes from an index signature, so it must be accessed with ['{0}'].\"),\n  This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another_class: diag(4112, 1 /* Error */, \"This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another__4112\", \"This member cannot have an 'override' modifier because its containing class '{0}' does not extend another class.\"),\n  This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0: diag(4113, 1 /* Error */, \"This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_4113\", \"This member cannot have an 'override' modifier because it is not declared in the base class '{0}'.\"),\n  This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0: diag(4114, 1 /* Error */, \"This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0_4114\", \"This member must have an 'override' modifier because it overrides a member in the base class '{0}'.\"),\n  This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0: diag(4115, 1 /* Error */, \"This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0_4115\", \"This parameter property must have an 'override' modifier because it overrides a member in base class '{0}'.\"),\n  This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared_in_the_base_class_0: diag(4116, 1 /* Error */, \"This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared__4116\", \"This member must have an 'override' modifier because it overrides an abstract method that is declared in the base class '{0}'.\"),\n  This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1: diag(4117, 1 /* Error */, \"This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_Did_you__4117\", \"This member cannot have an 'override' modifier because it is not declared in the base class '{0}'. Did you mean '{1}'?\"),\n  The_type_of_this_node_cannot_be_serialized_because_its_property_0_cannot_be_serialized: diag(4118, 1 /* Error */, \"The_type_of_this_node_cannot_be_serialized_because_its_property_0_cannot_be_serialized_4118\", \"The type of this node cannot be serialized because its property '{0}' cannot be serialized.\"),\n  This_member_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0: diag(4119, 1 /* Error */, \"This_member_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_4119\", \"This member must have a JSDoc comment with an '@override' tag because it overrides a member in the base class '{0}'.\"),\n  This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0: diag(4120, 1 /* Error */, \"This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_4120\", \"This parameter property must have a JSDoc comment with an '@override' tag because it overrides a member in the base class '{0}'.\"),\n  This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_extend_another_class: diag(4121, 1 /* Error */, \"This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_4121\", \"This member cannot have a JSDoc comment with an '@override' tag because its containing class '{0}' does not extend another class.\"),\n  This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0: diag(4122, 1 /* Error */, \"This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base__4122\", \"This member cannot have a JSDoc comment with an '@override' tag because it is not declared in the base class '{0}'.\"),\n  This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1: diag(4123, 1 /* Error */, \"This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base__4123\", \"This member cannot have a JSDoc comment with an 'override' tag because it is not declared in the base class '{0}'. Did you mean '{1}'?\"),\n  Compiler_option_0_of_value_1_is_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_with_npm_install_D_typescript_next: diag(4124, 1 /* Error */, \"Compiler_option_0_of_value_1_is_unstable_Use_nightly_TypeScript_to_silence_this_error_Try_updating_w_4124\", \"Compiler option '{0}' of value '{1}' is unstable. Use nightly TypeScript to silence this error. Try updating with 'npm install -D typescript@next'.\"),\n  Each_declaration_of_0_1_differs_in_its_value_where_2_was_expected_but_3_was_given: diag(4125, 1 /* Error */, \"Each_declaration_of_0_1_differs_in_its_value_where_2_was_expected_but_3_was_given_4125\", \"Each declaration of '{0}.{1}' differs in its value, where '{2}' was expected but '{3}' was given.\"),\n  One_value_of_0_1_is_the_string_2_and_the_other_is_assumed_to_be_an_unknown_numeric_value: diag(4126, 1 /* Error */, \"One_value_of_0_1_is_the_string_2_and_the_other_is_assumed_to_be_an_unknown_numeric_value_4126\", \"One value of '{0}.{1}' is the string '{2}', and the other is assumed to be an unknown numeric value.\"),\n  This_member_cannot_have_an_override_modifier_because_its_name_is_dynamic: diag(4127, 1 /* Error */, \"This_member_cannot_have_an_override_modifier_because_its_name_is_dynamic_4127\", \"This member cannot have an 'override' modifier because its name is dynamic.\"),\n  This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_name_is_dynamic: diag(4128, 1 /* Error */, \"This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_name_is_dynamic_4128\", \"This member cannot have a JSDoc comment with an '@override' tag because its name is dynamic.\"),\n  The_current_host_does_not_support_the_0_option: diag(5001, 1 /* Error */, \"The_current_host_does_not_support_the_0_option_5001\", \"The current host does not support the '{0}' option.\"),\n  Cannot_find_the_common_subdirectory_path_for_the_input_files: diag(5009, 1 /* Error */, \"Cannot_find_the_common_subdirectory_path_for_the_input_files_5009\", \"Cannot find the common subdirectory path for the input files.\"),\n  File_specification_cannot_end_in_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0: diag(5010, 1 /* Error */, \"File_specification_cannot_end_in_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0_5010\", \"File specification cannot end in a recursive directory wildcard ('**'): '{0}'.\"),\n  Cannot_read_file_0_Colon_1: diag(5012, 1 /* Error */, \"Cannot_read_file_0_Colon_1_5012\", \"Cannot read file '{0}': {1}.\"),\n  Unknown_compiler_option_0: diag(5023, 1 /* Error */, \"Unknown_compiler_option_0_5023\", \"Unknown compiler option '{0}'.\"),\n  Compiler_option_0_requires_a_value_of_type_1: diag(5024, 1 /* Error */, \"Compiler_option_0_requires_a_value_of_type_1_5024\", \"Compiler option '{0}' requires a value of type {1}.\"),\n  Unknown_compiler_option_0_Did_you_mean_1: diag(5025, 1 /* Error */, \"Unknown_compiler_option_0_Did_you_mean_1_5025\", \"Unknown compiler option '{0}'. Did you mean '{1}'?\"),\n  Could_not_write_file_0_Colon_1: diag(5033, 1 /* Error */, \"Could_not_write_file_0_Colon_1_5033\", \"Could not write file '{0}': {1}.\"),\n  Option_project_cannot_be_mixed_with_source_files_on_a_command_line: diag(5042, 1 /* Error */, \"Option_project_cannot_be_mixed_with_source_files_on_a_command_line_5042\", \"Option 'project' cannot be mixed with source files on a command line.\"),\n  Option_isolatedModules_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES2015_or_higher: diag(5047, 1 /* Error */, \"Option_isolatedModules_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES_5047\", \"Option 'isolatedModules' can only be used when either option '--module' is provided or option 'target' is 'ES2015' or higher.\"),\n  Option_0_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided: diag(5051, 1 /* Error */, \"Option_0_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided_5051\", \"Option '{0} can only be used when either option '--inlineSourceMap' or option '--sourceMap' is provided.\"),\n  Option_0_cannot_be_specified_without_specifying_option_1: diag(5052, 1 /* Error */, \"Option_0_cannot_be_specified_without_specifying_option_1_5052\", \"Option '{0}' cannot be specified without specifying option '{1}'.\"),\n  Option_0_cannot_be_specified_with_option_1: diag(5053, 1 /* Error */, \"Option_0_cannot_be_specified_with_option_1_5053\", \"Option '{0}' cannot be specified with option '{1}'.\"),\n  A_tsconfig_json_file_is_already_defined_at_Colon_0: diag(5054, 1 /* Error */, \"A_tsconfig_json_file_is_already_defined_at_Colon_0_5054\", \"A 'tsconfig.json' file is already defined at: '{0}'.\"),\n  Cannot_write_file_0_because_it_would_overwrite_input_file: diag(5055, 1 /* Error */, \"Cannot_write_file_0_because_it_would_overwrite_input_file_5055\", \"Cannot write file '{0}' because it would overwrite input file.\"),\n  Cannot_write_file_0_because_it_would_be_overwritten_by_multiple_input_files: diag(5056, 1 /* Error */, \"Cannot_write_file_0_because_it_would_be_overwritten_by_multiple_input_files_5056\", \"Cannot write file '{0}' because it would be overwritten by multiple input files.\"),\n  Cannot_find_a_tsconfig_json_file_at_the_specified_directory_Colon_0: diag(5057, 1 /* Error */, \"Cannot_find_a_tsconfig_json_file_at_the_specified_directory_Colon_0_5057\", \"Cannot find a tsconfig.json file at the specified directory: '{0}'.\"),\n  The_specified_path_does_not_exist_Colon_0: diag(5058, 1 /* Error */, \"The_specified_path_does_not_exist_Colon_0_5058\", \"The specified path does not exist: '{0}'.\"),\n  Invalid_value_for_reactNamespace_0_is_not_a_valid_identifier: diag(5059, 1 /* Error */, \"Invalid_value_for_reactNamespace_0_is_not_a_valid_identifier_5059\", \"Invalid value for '--reactNamespace'. '{0}' is not a valid identifier.\"),\n  Pattern_0_can_have_at_most_one_Asterisk_character: diag(5061, 1 /* Error */, \"Pattern_0_can_have_at_most_one_Asterisk_character_5061\", \"Pattern '{0}' can have at most one '*' character.\"),\n  Substitution_0_in_pattern_1_can_have_at_most_one_Asterisk_character: diag(5062, 1 /* Error */, \"Substitution_0_in_pattern_1_can_have_at_most_one_Asterisk_character_5062\", \"Substitution '{0}' in pattern '{1}' can have at most one '*' character.\"),\n  Substitutions_for_pattern_0_should_be_an_array: diag(5063, 1 /* Error */, \"Substitutions_for_pattern_0_should_be_an_array_5063\", \"Substitutions for pattern '{0}' should be an array.\"),\n  Substitution_0_for_pattern_1_has_incorrect_type_expected_string_got_2: diag(5064, 1 /* Error */, \"Substitution_0_for_pattern_1_has_incorrect_type_expected_string_got_2_5064\", \"Substitution '{0}' for pattern '{1}' has incorrect type, expected 'string', got '{2}'.\"),\n  File_specification_cannot_contain_a_parent_directory_that_appears_after_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0: diag(5065, 1 /* Error */, \"File_specification_cannot_contain_a_parent_directory_that_appears_after_a_recursive_directory_wildca_5065\", \"File specification cannot contain a parent directory ('..') that appears after a recursive directory wildcard ('**'): '{0}'.\"),\n  Substitutions_for_pattern_0_shouldn_t_be_an_empty_array: diag(5066, 1 /* Error */, \"Substitutions_for_pattern_0_shouldn_t_be_an_empty_array_5066\", \"Substitutions for pattern '{0}' shouldn't be an empty array.\"),\n  Invalid_value_for_jsxFactory_0_is_not_a_valid_identifier_or_qualified_name: diag(5067, 1 /* Error */, \"Invalid_value_for_jsxFactory_0_is_not_a_valid_identifier_or_qualified_name_5067\", \"Invalid value for 'jsxFactory'. '{0}' is not a valid identifier or qualified-name.\"),\n  Adding_a_tsconfig_json_file_will_help_organize_projects_that_contain_both_TypeScript_and_JavaScript_files_Learn_more_at_https_Colon_Slash_Slashaka_ms_Slashtsconfig: diag(5068, 1 /* Error */, \"Adding_a_tsconfig_json_file_will_help_organize_projects_that_contain_both_TypeScript_and_JavaScript__5068\", \"Adding a tsconfig.json file will help organize projects that contain both TypeScript and JavaScript files. Learn more at https://aka.ms/tsconfig.\"),\n  Option_0_cannot_be_specified_without_specifying_option_1_or_option_2: diag(5069, 1 /* Error */, \"Option_0_cannot_be_specified_without_specifying_option_1_or_option_2_5069\", \"Option '{0}' cannot be specified without specifying option '{1}' or option '{2}'.\"),\n  Option_resolveJsonModule_cannot_be_specified_when_moduleResolution_is_set_to_classic: diag(5070, 1 /* Error */, \"Option_resolveJsonModule_cannot_be_specified_when_moduleResolution_is_set_to_classic_5070\", \"Option '--resolveJsonModule' cannot be specified when 'moduleResolution' is set to 'classic'.\"),\n  Option_resolveJsonModule_cannot_be_specified_when_module_is_set_to_none_system_or_umd: diag(5071, 1 /* Error */, \"Option_resolveJsonModule_cannot_be_specified_when_module_is_set_to_none_system_or_umd_5071\", \"Option '--resolveJsonModule' cannot be specified when 'module' is set to 'none', 'system', or 'umd'.\"),\n  Unknown_build_option_0: diag(5072, 1 /* Error */, \"Unknown_build_option_0_5072\", \"Unknown build option '{0}'.\"),\n  Build_option_0_requires_a_value_of_type_1: diag(5073, 1 /* Error */, \"Build_option_0_requires_a_value_of_type_1_5073\", \"Build option '{0}' requires a value of type {1}.\"),\n  Option_incremental_can_only_be_specified_using_tsconfig_emitting_to_single_file_or_when_option_tsBuildInfoFile_is_specified: diag(5074, 1 /* Error */, \"Option_incremental_can_only_be_specified_using_tsconfig_emitting_to_single_file_or_when_option_tsBui_5074\", \"Option '--incremental' can only be specified using tsconfig, emitting to single file or when option '--tsBuildInfoFile' is specified.\"),\n  _0_is_assignable_to_the_constraint_of_type_1_but_1_could_be_instantiated_with_a_different_subtype_of_constraint_2: diag(5075, 1 /* Error */, \"_0_is_assignable_to_the_constraint_of_type_1_but_1_could_be_instantiated_with_a_different_subtype_of_5075\", \"'{0}' is assignable to the constraint of type '{1}', but '{1}' could be instantiated with a different subtype of constraint '{2}'.\"),\n  _0_and_1_operations_cannot_be_mixed_without_parentheses: diag(5076, 1 /* Error */, \"_0_and_1_operations_cannot_be_mixed_without_parentheses_5076\", \"'{0}' and '{1}' operations cannot be mixed without parentheses.\"),\n  Unknown_build_option_0_Did_you_mean_1: diag(5077, 1 /* Error */, \"Unknown_build_option_0_Did_you_mean_1_5077\", \"Unknown build option '{0}'. Did you mean '{1}'?\"),\n  Unknown_watch_option_0: diag(5078, 1 /* Error */, \"Unknown_watch_option_0_5078\", \"Unknown watch option '{0}'.\"),\n  Unknown_watch_option_0_Did_you_mean_1: diag(5079, 1 /* Error */, \"Unknown_watch_option_0_Did_you_mean_1_5079\", \"Unknown watch option '{0}'. Did you mean '{1}'?\"),\n  Watch_option_0_requires_a_value_of_type_1: diag(5080, 1 /* Error */, \"Watch_option_0_requires_a_value_of_type_1_5080\", \"Watch option '{0}' requires a value of type {1}.\"),\n  Cannot_find_a_tsconfig_json_file_at_the_current_directory_Colon_0: diag(5081, 1 /* Error */, \"Cannot_find_a_tsconfig_json_file_at_the_current_directory_Colon_0_5081\", \"Cannot find a tsconfig.json file at the current directory: {0}.\"),\n  _0_could_be_instantiated_with_an_arbitrary_type_which_could_be_unrelated_to_1: diag(5082, 1 /* Error */, \"_0_could_be_instantiated_with_an_arbitrary_type_which_could_be_unrelated_to_1_5082\", \"'{0}' could be instantiated with an arbitrary type which could be unrelated to '{1}'.\"),\n  Cannot_read_file_0: diag(5083, 1 /* Error */, \"Cannot_read_file_0_5083\", \"Cannot read file '{0}'.\"),\n  A_tuple_member_cannot_be_both_optional_and_rest: diag(5085, 1 /* Error */, \"A_tuple_member_cannot_be_both_optional_and_rest_5085\", \"A tuple member cannot be both optional and rest.\"),\n  A_labeled_tuple_element_is_declared_as_optional_with_a_question_mark_after_the_name_and_before_the_colon_rather_than_after_the_type: diag(5086, 1 /* Error */, \"A_labeled_tuple_element_is_declared_as_optional_with_a_question_mark_after_the_name_and_before_the_c_5086\", \"A labeled tuple element is declared as optional with a question mark after the name and before the colon, rather than after the type.\"),\n  A_labeled_tuple_element_is_declared_as_rest_with_a_before_the_name_rather_than_before_the_type: diag(5087, 1 /* Error */, \"A_labeled_tuple_element_is_declared_as_rest_with_a_before_the_name_rather_than_before_the_type_5087\", \"A labeled tuple element is declared as rest with a '...' before the name, rather than before the type.\"),\n  The_inferred_type_of_0_references_a_type_with_a_cyclic_structure_which_cannot_be_trivially_serialized_A_type_annotation_is_necessary: diag(5088, 1 /* Error */, \"The_inferred_type_of_0_references_a_type_with_a_cyclic_structure_which_cannot_be_trivially_serialize_5088\", \"The inferred type of '{0}' references a type with a cyclic structure which cannot be trivially serialized. A type annotation is necessary.\"),\n  Option_0_cannot_be_specified_when_option_jsx_is_1: diag(5089, 1 /* Error */, \"Option_0_cannot_be_specified_when_option_jsx_is_1_5089\", \"Option '{0}' cannot be specified when option 'jsx' is '{1}'.\"),\n  Non_relative_paths_are_not_allowed_when_baseUrl_is_not_set_Did_you_forget_a_leading_Slash: diag(5090, 1 /* Error */, \"Non_relative_paths_are_not_allowed_when_baseUrl_is_not_set_Did_you_forget_a_leading_Slash_5090\", \"Non-relative paths are not allowed when 'baseUrl' is not set. Did you forget a leading './'?\"),\n  Option_preserveConstEnums_cannot_be_disabled_when_0_is_enabled: diag(5091, 1 /* Error */, \"Option_preserveConstEnums_cannot_be_disabled_when_0_is_enabled_5091\", \"Option 'preserveConstEnums' cannot be disabled when '{0}' is enabled.\"),\n  The_root_value_of_a_0_file_must_be_an_object: diag(5092, 1 /* Error */, \"The_root_value_of_a_0_file_must_be_an_object_5092\", \"The root value of a '{0}' file must be an object.\"),\n  Compiler_option_0_may_only_be_used_with_build: diag(5093, 1 /* Error */, \"Compiler_option_0_may_only_be_used_with_build_5093\", \"Compiler option '--{0}' may only be used with '--build'.\"),\n  Compiler_option_0_may_not_be_used_with_build: diag(5094, 1 /* Error */, \"Compiler_option_0_may_not_be_used_with_build_5094\", \"Compiler option '--{0}' may not be used with '--build'.\"),\n  Option_0_can_only_be_used_when_module_is_set_to_preserve_or_to_es2015_or_later: diag(5095, 1 /* Error */, \"Option_0_can_only_be_used_when_module_is_set_to_preserve_or_to_es2015_or_later_5095\", \"Option '{0}' can only be used when 'module' is set to 'preserve' or to 'es2015' or later.\"),\n  Option_allowImportingTsExtensions_can_only_be_used_when_either_noEmit_or_emitDeclarationOnly_is_set: diag(5096, 1 /* Error */, \"Option_allowImportingTsExtensions_can_only_be_used_when_either_noEmit_or_emitDeclarationOnly_is_set_5096\", \"Option 'allowImportingTsExtensions' can only be used when either 'noEmit' or 'emitDeclarationOnly' is set.\"),\n  An_import_path_can_only_end_with_a_0_extension_when_allowImportingTsExtensions_is_enabled: diag(5097, 1 /* Error */, \"An_import_path_can_only_end_with_a_0_extension_when_allowImportingTsExtensions_is_enabled_5097\", \"An import path can only end with a '{0}' extension when 'allowImportingTsExtensions' is enabled.\"),\n  Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler: diag(5098, 1 /* Error */, \"Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler_5098\", \"Option '{0}' can only be used when 'moduleResolution' is set to 'node16', 'nodenext', or 'bundler'.\"),\n  Option_0_is_deprecated_and_will_stop_functioning_in_TypeScript_1_Specify_compilerOption_ignoreDeprecations_Colon_2_to_silence_this_error: diag(5101, 1 /* Error */, \"Option_0_is_deprecated_and_will_stop_functioning_in_TypeScript_1_Specify_compilerOption_ignoreDeprec_5101\", `Option '{0}' is deprecated and will stop functioning in TypeScript {1}. Specify compilerOption '\"ignoreDeprecations\": \"{2}\"' to silence this error.`),\n  Option_0_has_been_removed_Please_remove_it_from_your_configuration: diag(5102, 1 /* Error */, \"Option_0_has_been_removed_Please_remove_it_from_your_configuration_5102\", \"Option '{0}' has been removed. Please remove it from your configuration.\"),\n  Invalid_value_for_ignoreDeprecations: diag(5103, 1 /* Error */, \"Invalid_value_for_ignoreDeprecations_5103\", \"Invalid value for '--ignoreDeprecations'.\"),\n  Option_0_is_redundant_and_cannot_be_specified_with_option_1: diag(5104, 1 /* Error */, \"Option_0_is_redundant_and_cannot_be_specified_with_option_1_5104\", \"Option '{0}' is redundant and cannot be specified with option '{1}'.\"),\n  Option_verbatimModuleSyntax_cannot_be_used_when_module_is_set_to_UMD_AMD_or_System: diag(5105, 1 /* Error */, \"Option_verbatimModuleSyntax_cannot_be_used_when_module_is_set_to_UMD_AMD_or_System_5105\", \"Option 'verbatimModuleSyntax' cannot be used when 'module' is set to 'UMD', 'AMD', or 'System'.\"),\n  Use_0_instead: diag(5106, 3 /* Message */, \"Use_0_instead_5106\", \"Use '{0}' instead.\"),\n  Option_0_1_is_deprecated_and_will_stop_functioning_in_TypeScript_2_Specify_compilerOption_ignoreDeprecations_Colon_3_to_silence_this_error: diag(5107, 1 /* Error */, \"Option_0_1_is_deprecated_and_will_stop_functioning_in_TypeScript_2_Specify_compilerOption_ignoreDepr_5107\", `Option '{0}={1}' is deprecated and will stop functioning in TypeScript {2}. Specify compilerOption '\"ignoreDeprecations\": \"{3}\"' to silence this error.`),\n  Option_0_1_has_been_removed_Please_remove_it_from_your_configuration: diag(5108, 1 /* Error */, \"Option_0_1_has_been_removed_Please_remove_it_from_your_configuration_5108\", \"Option '{0}={1}' has been removed. Please remove it from your configuration.\"),\n  Option_moduleResolution_must_be_set_to_0_or_left_unspecified_when_option_module_is_set_to_1: diag(5109, 1 /* Error */, \"Option_moduleResolution_must_be_set_to_0_or_left_unspecified_when_option_module_is_set_to_1_5109\", \"Option 'moduleResolution' must be set to '{0}' (or left unspecified) when option 'module' is set to '{1}'.\"),\n  Option_module_must_be_set_to_0_when_option_moduleResolution_is_set_to_1: diag(5110, 1 /* Error */, \"Option_module_must_be_set_to_0_when_option_moduleResolution_is_set_to_1_5110\", \"Option 'module' must be set to '{0}' when option 'moduleResolution' is set to '{1}'.\"),\n  Generates_a_sourcemap_for_each_corresponding_d_ts_file: diag(6e3, 3 /* Message */, \"Generates_a_sourcemap_for_each_corresponding_d_ts_file_6000\", \"Generates a sourcemap for each corresponding '.d.ts' file.\"),\n  Concatenate_and_emit_output_to_single_file: diag(6001, 3 /* Message */, \"Concatenate_and_emit_output_to_single_file_6001\", \"Concatenate and emit output to single file.\"),\n  Generates_corresponding_d_ts_file: diag(6002, 3 /* Message */, \"Generates_corresponding_d_ts_file_6002\", \"Generates corresponding '.d.ts' file.\"),\n  Specify_the_location_where_debugger_should_locate_TypeScript_files_instead_of_source_locations: diag(6004, 3 /* Message */, \"Specify_the_location_where_debugger_should_locate_TypeScript_files_instead_of_source_locations_6004\", \"Specify the location where debugger should locate TypeScript files instead of source locations.\"),\n  Watch_input_files: diag(6005, 3 /* Message */, \"Watch_input_files_6005\", \"Watch input files.\"),\n  Redirect_output_structure_to_the_directory: diag(6006, 3 /* Message */, \"Redirect_output_structure_to_the_directory_6006\", \"Redirect output structure to the directory.\"),\n  Do_not_erase_const_enum_declarations_in_generated_code: diag(6007, 3 /* Message */, \"Do_not_erase_const_enum_declarations_in_generated_code_6007\", \"Do not erase const enum declarations in generated code.\"),\n  Do_not_emit_outputs_if_any_errors_were_reported: diag(6008, 3 /* Message */, \"Do_not_emit_outputs_if_any_errors_were_reported_6008\", \"Do not emit outputs if any errors were reported.\"),\n  Do_not_emit_comments_to_output: diag(6009, 3 /* Message */, \"Do_not_emit_comments_to_output_6009\", \"Do not emit comments to output.\"),\n  Do_not_emit_outputs: diag(6010, 3 /* Message */, \"Do_not_emit_outputs_6010\", \"Do not emit outputs.\"),\n  Allow_default_imports_from_modules_with_no_default_export_This_does_not_affect_code_emit_just_typechecking: diag(6011, 3 /* Message */, \"Allow_default_imports_from_modules_with_no_default_export_This_does_not_affect_code_emit_just_typech_6011\", \"Allow default imports from modules with no default export. This does not affect code emit, just typechecking.\"),\n  Skip_type_checking_of_declaration_files: diag(6012, 3 /* Message */, \"Skip_type_checking_of_declaration_files_6012\", \"Skip type checking of declaration files.\"),\n  Do_not_resolve_the_real_path_of_symlinks: diag(6013, 3 /* Message */, \"Do_not_resolve_the_real_path_of_symlinks_6013\", \"Do not resolve the real path of symlinks.\"),\n  Only_emit_d_ts_declaration_files: diag(6014, 3 /* Message */, \"Only_emit_d_ts_declaration_files_6014\", \"Only emit '.d.ts' declaration files.\"),\n  Specify_ECMAScript_target_version: diag(6015, 3 /* Message */, \"Specify_ECMAScript_target_version_6015\", \"Specify ECMAScript target version.\"),\n  Specify_module_code_generation: diag(6016, 3 /* Message */, \"Specify_module_code_generation_6016\", \"Specify module code generation.\"),\n  Print_this_message: diag(6017, 3 /* Message */, \"Print_this_message_6017\", \"Print this message.\"),\n  Print_the_compiler_s_version: diag(6019, 3 /* Message */, \"Print_the_compiler_s_version_6019\", \"Print the compiler's version.\"),\n  Compile_the_project_given_the_path_to_its_configuration_file_or_to_a_folder_with_a_tsconfig_json: diag(6020, 3 /* Message */, \"Compile_the_project_given_the_path_to_its_configuration_file_or_to_a_folder_with_a_tsconfig_json_6020\", \"Compile the project given the path to its configuration file, or to a folder with a 'tsconfig.json'.\"),\n  Syntax_Colon_0: diag(6023, 3 /* Message */, \"Syntax_Colon_0_6023\", \"Syntax: {0}\"),\n  options: diag(6024, 3 /* Message */, \"options_6024\", \"options\"),\n  file: diag(6025, 3 /* Message */, \"file_6025\", \"file\"),\n  Examples_Colon_0: diag(6026, 3 /* Message */, \"Examples_Colon_0_6026\", \"Examples: {0}\"),\n  Options_Colon: diag(6027, 3 /* Message */, \"Options_Colon_6027\", \"Options:\"),\n  Version_0: diag(6029, 3 /* Message */, \"Version_0_6029\", \"Version {0}\"),\n  Insert_command_line_options_and_files_from_a_file: diag(6030, 3 /* Message */, \"Insert_command_line_options_and_files_from_a_file_6030\", \"Insert command line options and files from a file.\"),\n  Starting_compilation_in_watch_mode: diag(6031, 3 /* Message */, \"Starting_compilation_in_watch_mode_6031\", \"Starting compilation in watch mode...\"),\n  File_change_detected_Starting_incremental_compilation: diag(6032, 3 /* Message */, \"File_change_detected_Starting_incremental_compilation_6032\", \"File change detected. Starting incremental compilation...\"),\n  KIND: diag(6034, 3 /* Message */, \"KIND_6034\", \"KIND\"),\n  FILE: diag(6035, 3 /* Message */, \"FILE_6035\", \"FILE\"),\n  VERSION: diag(6036, 3 /* Message */, \"VERSION_6036\", \"VERSION\"),\n  LOCATION: diag(6037, 3 /* Message */, \"LOCATION_6037\", \"LOCATION\"),\n  DIRECTORY: diag(6038, 3 /* Message */, \"DIRECTORY_6038\", \"DIRECTORY\"),\n  STRATEGY: diag(6039, 3 /* Message */, \"STRATEGY_6039\", \"STRATEGY\"),\n  FILE_OR_DIRECTORY: diag(6040, 3 /* Message */, \"FILE_OR_DIRECTORY_6040\", \"FILE OR DIRECTORY\"),\n  Errors_Files: diag(6041, 3 /* Message */, \"Errors_Files_6041\", \"Errors  Files\"),\n  Generates_corresponding_map_file: diag(6043, 3 /* Message */, \"Generates_corresponding_map_file_6043\", \"Generates corresponding '.map' file.\"),\n  Compiler_option_0_expects_an_argument: diag(6044, 1 /* Error */, \"Compiler_option_0_expects_an_argument_6044\", \"Compiler option '{0}' expects an argument.\"),\n  Unterminated_quoted_string_in_response_file_0: diag(6045, 1 /* Error */, \"Unterminated_quoted_string_in_response_file_0_6045\", \"Unterminated quoted string in response file '{0}'.\"),\n  Argument_for_0_option_must_be_Colon_1: diag(6046, 1 /* Error */, \"Argument_for_0_option_must_be_Colon_1_6046\", \"Argument for '{0}' option must be: {1}.\"),\n  Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1: diag(6048, 1 /* Error */, \"Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1_6048\", \"Locale must be of the form <language> or <language>-<territory>. For example '{0}' or '{1}'.\"),\n  Unable_to_open_file_0: diag(6050, 1 /* Error */, \"Unable_to_open_file_0_6050\", \"Unable to open file '{0}'.\"),\n  Corrupted_locale_file_0: diag(6051, 1 /* Error */, \"Corrupted_locale_file_0_6051\", \"Corrupted locale file {0}.\"),\n  Raise_error_on_expressions_and_declarations_with_an_implied_any_type: diag(6052, 3 /* Message */, \"Raise_error_on_expressions_and_declarations_with_an_implied_any_type_6052\", \"Raise error on expressions and declarations with an implied 'any' type.\"),\n  File_0_not_found: diag(6053, 1 /* Error */, \"File_0_not_found_6053\", \"File '{0}' not found.\"),\n  File_0_has_an_unsupported_extension_The_only_supported_extensions_are_1: diag(6054, 1 /* Error */, \"File_0_has_an_unsupported_extension_The_only_supported_extensions_are_1_6054\", \"File '{0}' has an unsupported extension. The only supported extensions are {1}.\"),\n  Suppress_noImplicitAny_errors_for_indexing_objects_lacking_index_signatures: diag(6055, 3 /* Message */, \"Suppress_noImplicitAny_errors_for_indexing_objects_lacking_index_signatures_6055\", \"Suppress noImplicitAny errors for indexing objects lacking index signatures.\"),\n  Do_not_emit_declarations_for_code_that_has_an_internal_annotation: diag(6056, 3 /* Message */, \"Do_not_emit_declarations_for_code_that_has_an_internal_annotation_6056\", \"Do not emit declarations for code that has an '@internal' annotation.\"),\n  Specify_the_root_directory_of_input_files_Use_to_control_the_output_directory_structure_with_outDir: diag(6058, 3 /* Message */, \"Specify_the_root_directory_of_input_files_Use_to_control_the_output_directory_structure_with_outDir_6058\", \"Specify the root directory of input files. Use to control the output directory structure with --outDir.\"),\n  File_0_is_not_under_rootDir_1_rootDir_is_expected_to_contain_all_source_files: diag(6059, 1 /* Error */, \"File_0_is_not_under_rootDir_1_rootDir_is_expected_to_contain_all_source_files_6059\", \"File '{0}' is not under 'rootDir' '{1}'. 'rootDir' is expected to contain all source files.\"),\n  Specify_the_end_of_line_sequence_to_be_used_when_emitting_files_Colon_CRLF_dos_or_LF_unix: diag(6060, 3 /* Message */, \"Specify_the_end_of_line_sequence_to_be_used_when_emitting_files_Colon_CRLF_dos_or_LF_unix_6060\", \"Specify the end of line sequence to be used when emitting files: 'CRLF' (dos) or 'LF' (unix).\"),\n  NEWLINE: diag(6061, 3 /* Message */, \"NEWLINE_6061\", \"NEWLINE\"),\n  Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_null_on_command_line: diag(6064, 1 /* Error */, \"Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_null_on_command_line_6064\", \"Option '{0}' can only be specified in 'tsconfig.json' file or set to 'null' on command line.\"),\n  Enables_experimental_support_for_ES7_decorators: diag(6065, 3 /* Message */, \"Enables_experimental_support_for_ES7_decorators_6065\", \"Enables experimental support for ES7 decorators.\"),\n  Enables_experimental_support_for_emitting_type_metadata_for_decorators: diag(6066, 3 /* Message */, \"Enables_experimental_support_for_emitting_type_metadata_for_decorators_6066\", \"Enables experimental support for emitting type metadata for decorators.\"),\n  Initializes_a_TypeScript_project_and_creates_a_tsconfig_json_file: diag(6070, 3 /* Message */, \"Initializes_a_TypeScript_project_and_creates_a_tsconfig_json_file_6070\", \"Initializes a TypeScript project and creates a tsconfig.json file.\"),\n  Successfully_created_a_tsconfig_json_file: diag(6071, 3 /* Message */, \"Successfully_created_a_tsconfig_json_file_6071\", \"Successfully created a tsconfig.json file.\"),\n  Suppress_excess_property_checks_for_object_literals: diag(6072, 3 /* Message */, \"Suppress_excess_property_checks_for_object_literals_6072\", \"Suppress excess property checks for object literals.\"),\n  Stylize_errors_and_messages_using_color_and_context_experimental: diag(6073, 3 /* Message */, \"Stylize_errors_and_messages_using_color_and_context_experimental_6073\", \"Stylize errors and messages using color and context (experimental).\"),\n  Do_not_report_errors_on_unused_labels: diag(6074, 3 /* Message */, \"Do_not_report_errors_on_unused_labels_6074\", \"Do not report errors on unused labels.\"),\n  Report_error_when_not_all_code_paths_in_function_return_a_value: diag(6075, 3 /* Message */, \"Report_error_when_not_all_code_paths_in_function_return_a_value_6075\", \"Report error when not all code paths in function return a value.\"),\n  Report_errors_for_fallthrough_cases_in_switch_statement: diag(6076, 3 /* Message */, \"Report_errors_for_fallthrough_cases_in_switch_statement_6076\", \"Report errors for fallthrough cases in switch statement.\"),\n  Do_not_report_errors_on_unreachable_code: diag(6077, 3 /* Message */, \"Do_not_report_errors_on_unreachable_code_6077\", \"Do not report errors on unreachable code.\"),\n  Disallow_inconsistently_cased_references_to_the_same_file: diag(6078, 3 /* Message */, \"Disallow_inconsistently_cased_references_to_the_same_file_6078\", \"Disallow inconsistently-cased references to the same file.\"),\n  Specify_library_files_to_be_included_in_the_compilation: diag(6079, 3 /* Message */, \"Specify_library_files_to_be_included_in_the_compilation_6079\", \"Specify library files to be included in the compilation.\"),\n  Specify_JSX_code_generation: diag(6080, 3 /* Message */, \"Specify_JSX_code_generation_6080\", \"Specify JSX code generation.\"),\n  Only_amd_and_system_modules_are_supported_alongside_0: diag(6082, 1 /* Error */, \"Only_amd_and_system_modules_are_supported_alongside_0_6082\", \"Only 'amd' and 'system' modules are supported alongside --{0}.\"),\n  Base_directory_to_resolve_non_absolute_module_names: diag(6083, 3 /* Message */, \"Base_directory_to_resolve_non_absolute_module_names_6083\", \"Base directory to resolve non-absolute module names.\"),\n  Deprecated_Use_jsxFactory_instead_Specify_the_object_invoked_for_createElement_when_targeting_react_JSX_emit: diag(6084, 3 /* Message */, \"Deprecated_Use_jsxFactory_instead_Specify_the_object_invoked_for_createElement_when_targeting_react__6084\", \"[Deprecated] Use '--jsxFactory' instead. Specify the object invoked for createElement when targeting 'react' JSX emit\"),\n  Enable_tracing_of_the_name_resolution_process: diag(6085, 3 /* Message */, \"Enable_tracing_of_the_name_resolution_process_6085\", \"Enable tracing of the name resolution process.\"),\n  Resolving_module_0_from_1: diag(6086, 3 /* Message */, \"Resolving_module_0_from_1_6086\", \"======== Resolving module '{0}' from '{1}'. ========\"),\n  Explicitly_specified_module_resolution_kind_Colon_0: diag(6087, 3 /* Message */, \"Explicitly_specified_module_resolution_kind_Colon_0_6087\", \"Explicitly specified module resolution kind: '{0}'.\"),\n  Module_resolution_kind_is_not_specified_using_0: diag(6088, 3 /* Message */, \"Module_resolution_kind_is_not_specified_using_0_6088\", \"Module resolution kind is not specified, using '{0}'.\"),\n  Module_name_0_was_successfully_resolved_to_1: diag(6089, 3 /* Message */, \"Module_name_0_was_successfully_resolved_to_1_6089\", \"======== Module name '{0}' was successfully resolved to '{1}'. ========\"),\n  Module_name_0_was_not_resolved: diag(6090, 3 /* Message */, \"Module_name_0_was_not_resolved_6090\", \"======== Module name '{0}' was not resolved. ========\"),\n  paths_option_is_specified_looking_for_a_pattern_to_match_module_name_0: diag(6091, 3 /* Message */, \"paths_option_is_specified_looking_for_a_pattern_to_match_module_name_0_6091\", \"'paths' option is specified, looking for a pattern to match module name '{0}'.\"),\n  Module_name_0_matched_pattern_1: diag(6092, 3 /* Message */, \"Module_name_0_matched_pattern_1_6092\", \"Module name '{0}', matched pattern '{1}'.\"),\n  Trying_substitution_0_candidate_module_location_Colon_1: diag(6093, 3 /* Message */, \"Trying_substitution_0_candidate_module_location_Colon_1_6093\", \"Trying substitution '{0}', candidate module location: '{1}'.\"),\n  Resolving_module_name_0_relative_to_base_url_1_2: diag(6094, 3 /* Message */, \"Resolving_module_name_0_relative_to_base_url_1_2_6094\", \"Resolving module name '{0}' relative to base url '{1}' - '{2}'.\"),\n  Loading_module_as_file_Slash_folder_candidate_module_location_0_target_file_types_Colon_1: diag(6095, 3 /* Message */, \"Loading_module_as_file_Slash_folder_candidate_module_location_0_target_file_types_Colon_1_6095\", \"Loading module as file / folder, candidate module location '{0}', target file types: {1}.\"),\n  File_0_does_not_exist: diag(6096, 3 /* Message */, \"File_0_does_not_exist_6096\", \"File '{0}' does not exist.\"),\n  File_0_exists_use_it_as_a_name_resolution_result: diag(6097, 3 /* Message */, \"File_0_exists_use_it_as_a_name_resolution_result_6097\", \"File '{0}' exists - use it as a name resolution result.\"),\n  Loading_module_0_from_node_modules_folder_target_file_types_Colon_1: diag(6098, 3 /* Message */, \"Loading_module_0_from_node_modules_folder_target_file_types_Colon_1_6098\", \"Loading module '{0}' from 'node_modules' folder, target file types: {1}.\"),\n  Found_package_json_at_0: diag(6099, 3 /* Message */, \"Found_package_json_at_0_6099\", \"Found 'package.json' at '{0}'.\"),\n  package_json_does_not_have_a_0_field: diag(6100, 3 /* Message */, \"package_json_does_not_have_a_0_field_6100\", \"'package.json' does not have a '{0}' field.\"),\n  package_json_has_0_field_1_that_references_2: diag(6101, 3 /* Message */, \"package_json_has_0_field_1_that_references_2_6101\", \"'package.json' has '{0}' field '{1}' that references '{2}'.\"),\n  Allow_javascript_files_to_be_compiled: diag(6102, 3 /* Message */, \"Allow_javascript_files_to_be_compiled_6102\", \"Allow javascript files to be compiled.\"),\n  Checking_if_0_is_the_longest_matching_prefix_for_1_2: diag(6104, 3 /* Message */, \"Checking_if_0_is_the_longest_matching_prefix_for_1_2_6104\", \"Checking if '{0}' is the longest matching prefix for '{1}' - '{2}'.\"),\n  Expected_type_of_0_field_in_package_json_to_be_1_got_2: diag(6105, 3 /* Message */, \"Expected_type_of_0_field_in_package_json_to_be_1_got_2_6105\", \"Expected type of '{0}' field in 'package.json' to be '{1}', got '{2}'.\"),\n  baseUrl_option_is_set_to_0_using_this_value_to_resolve_non_relative_module_name_1: diag(6106, 3 /* Message */, \"baseUrl_option_is_set_to_0_using_this_value_to_resolve_non_relative_module_name_1_6106\", \"'baseUrl' option is set to '{0}', using this value to resolve non-relative module name '{1}'.\"),\n  rootDirs_option_is_set_using_it_to_resolve_relative_module_name_0: diag(6107, 3 /* Message */, \"rootDirs_option_is_set_using_it_to_resolve_relative_module_name_0_6107\", \"'rootDirs' option is set, using it to resolve relative module name '{0}'.\"),\n  Longest_matching_prefix_for_0_is_1: diag(6108, 3 /* Message */, \"Longest_matching_prefix_for_0_is_1_6108\", \"Longest matching prefix for '{0}' is '{1}'.\"),\n  Loading_0_from_the_root_dir_1_candidate_location_2: diag(6109, 3 /* Message */, \"Loading_0_from_the_root_dir_1_candidate_location_2_6109\", \"Loading '{0}' from the root dir '{1}', candidate location '{2}'.\"),\n  Trying_other_entries_in_rootDirs: diag(6110, 3 /* Message */, \"Trying_other_entries_in_rootDirs_6110\", \"Trying other entries in 'rootDirs'.\"),\n  Module_resolution_using_rootDirs_has_failed: diag(6111, 3 /* Message */, \"Module_resolution_using_rootDirs_has_failed_6111\", \"Module resolution using 'rootDirs' has failed.\"),\n  Do_not_emit_use_strict_directives_in_module_output: diag(6112, 3 /* Message */, \"Do_not_emit_use_strict_directives_in_module_output_6112\", \"Do not emit 'use strict' directives in module output.\"),\n  Enable_strict_null_checks: diag(6113, 3 /* Message */, \"Enable_strict_null_checks_6113\", \"Enable strict null checks.\"),\n  Unknown_option_excludes_Did_you_mean_exclude: diag(6114, 1 /* Error */, \"Unknown_option_excludes_Did_you_mean_exclude_6114\", \"Unknown option 'excludes'. Did you mean 'exclude'?\"),\n  Raise_error_on_this_expressions_with_an_implied_any_type: diag(6115, 3 /* Message */, \"Raise_error_on_this_expressions_with_an_implied_any_type_6115\", \"Raise error on 'this' expressions with an implied 'any' type.\"),\n  Resolving_type_reference_directive_0_containing_file_1_root_directory_2: diag(6116, 3 /* Message */, \"Resolving_type_reference_directive_0_containing_file_1_root_directory_2_6116\", \"======== Resolving type reference directive '{0}', containing file '{1}', root directory '{2}'. ========\"),\n  Type_reference_directive_0_was_successfully_resolved_to_1_primary_Colon_2: diag(6119, 3 /* Message */, \"Type_reference_directive_0_was_successfully_resolved_to_1_primary_Colon_2_6119\", \"======== Type reference directive '{0}' was successfully resolved to '{1}', primary: {2}. ========\"),\n  Type_reference_directive_0_was_not_resolved: diag(6120, 3 /* Message */, \"Type_reference_directive_0_was_not_resolved_6120\", \"======== Type reference directive '{0}' was not resolved. ========\"),\n  Resolving_with_primary_search_path_0: diag(6121, 3 /* Message */, \"Resolving_with_primary_search_path_0_6121\", \"Resolving with primary search path '{0}'.\"),\n  Root_directory_cannot_be_determined_skipping_primary_search_paths: diag(6122, 3 /* Message */, \"Root_directory_cannot_be_determined_skipping_primary_search_paths_6122\", \"Root directory cannot be determined, skipping primary search paths.\"),\n  Resolving_type_reference_directive_0_containing_file_1_root_directory_not_set: diag(6123, 3 /* Message */, \"Resolving_type_reference_directive_0_containing_file_1_root_directory_not_set_6123\", \"======== Resolving type reference directive '{0}', containing file '{1}', root directory not set. ========\"),\n  Type_declaration_files_to_be_included_in_compilation: diag(6124, 3 /* Message */, \"Type_declaration_files_to_be_included_in_compilation_6124\", \"Type declaration files to be included in compilation.\"),\n  Looking_up_in_node_modules_folder_initial_location_0: diag(6125, 3 /* Message */, \"Looking_up_in_node_modules_folder_initial_location_0_6125\", \"Looking up in 'node_modules' folder, initial location '{0}'.\"),\n  Containing_file_is_not_specified_and_root_directory_cannot_be_determined_skipping_lookup_in_node_modules_folder: diag(6126, 3 /* Message */, \"Containing_file_is_not_specified_and_root_directory_cannot_be_determined_skipping_lookup_in_node_mod_6126\", \"Containing file is not specified and root directory cannot be determined, skipping lookup in 'node_modules' folder.\"),\n  Resolving_type_reference_directive_0_containing_file_not_set_root_directory_1: diag(6127, 3 /* Message */, \"Resolving_type_reference_directive_0_containing_file_not_set_root_directory_1_6127\", \"======== Resolving type reference directive '{0}', containing file not set, root directory '{1}'. ========\"),\n  Resolving_type_reference_directive_0_containing_file_not_set_root_directory_not_set: diag(6128, 3 /* Message */, \"Resolving_type_reference_directive_0_containing_file_not_set_root_directory_not_set_6128\", \"======== Resolving type reference directive '{0}', containing file not set, root directory not set. ========\"),\n  Resolving_real_path_for_0_result_1: diag(6130, 3 /* Message */, \"Resolving_real_path_for_0_result_1_6130\", \"Resolving real path for '{0}', result '{1}'.\"),\n  Cannot_compile_modules_using_option_0_unless_the_module_flag_is_amd_or_system: diag(6131, 1 /* Error */, \"Cannot_compile_modules_using_option_0_unless_the_module_flag_is_amd_or_system_6131\", \"Cannot compile modules using option '{0}' unless the '--module' flag is 'amd' or 'system'.\"),\n  File_name_0_has_a_1_extension_stripping_it: diag(6132, 3 /* Message */, \"File_name_0_has_a_1_extension_stripping_it_6132\", \"File name '{0}' has a '{1}' extension - stripping it.\"),\n  _0_is_declared_but_its_value_is_never_read: diag(\n    6133,\n    1 /* Error */,\n    \"_0_is_declared_but_its_value_is_never_read_6133\",\n    \"'{0}' is declared but its value is never read.\",\n    /*reportsUnnecessary*/\n    true\n  ),\n  Report_errors_on_unused_locals: diag(6134, 3 /* Message */, \"Report_errors_on_unused_locals_6134\", \"Report errors on unused locals.\"),\n  Report_errors_on_unused_parameters: diag(6135, 3 /* Message */, \"Report_errors_on_unused_parameters_6135\", \"Report errors on unused parameters.\"),\n  The_maximum_dependency_depth_to_search_under_node_modules_and_load_JavaScript_files: diag(6136, 3 /* Message */, \"The_maximum_dependency_depth_to_search_under_node_modules_and_load_JavaScript_files_6136\", \"The maximum dependency depth to search under node_modules and load JavaScript files.\"),\n  Cannot_import_type_declaration_files_Consider_importing_0_instead_of_1: diag(6137, 1 /* Error */, \"Cannot_import_type_declaration_files_Consider_importing_0_instead_of_1_6137\", \"Cannot import type declaration files. Consider importing '{0}' instead of '{1}'.\"),\n  Property_0_is_declared_but_its_value_is_never_read: diag(\n    6138,\n    1 /* Error */,\n    \"Property_0_is_declared_but_its_value_is_never_read_6138\",\n    \"Property '{0}' is declared but its value is never read.\",\n    /*reportsUnnecessary*/\n    true\n  ),\n  Import_emit_helpers_from_tslib: diag(6139, 3 /* Message */, \"Import_emit_helpers_from_tslib_6139\", \"Import emit helpers from 'tslib'.\"),\n  Auto_discovery_for_typings_is_enabled_in_project_0_Running_extra_resolution_pass_for_module_1_using_cache_location_2: diag(6140, 1 /* Error */, \"Auto_discovery_for_typings_is_enabled_in_project_0_Running_extra_resolution_pass_for_module_1_using__6140\", \"Auto discovery for typings is enabled in project '{0}'. Running extra resolution pass for module '{1}' using cache location '{2}'.\"),\n  Parse_in_strict_mode_and_emit_use_strict_for_each_source_file: diag(6141, 3 /* Message */, \"Parse_in_strict_mode_and_emit_use_strict_for_each_source_file_6141\", 'Parse in strict mode and emit \"use strict\" for each source file.'),\n  Module_0_was_resolved_to_1_but_jsx_is_not_set: diag(6142, 1 /* Error */, \"Module_0_was_resolved_to_1_but_jsx_is_not_set_6142\", \"Module '{0}' was resolved to '{1}', but '--jsx' is not set.\"),\n  Module_0_was_resolved_as_locally_declared_ambient_module_in_file_1: diag(6144, 3 /* Message */, \"Module_0_was_resolved_as_locally_declared_ambient_module_in_file_1_6144\", \"Module '{0}' was resolved as locally declared ambient module in file '{1}'.\"),\n  Specify_the_JSX_factory_function_to_use_when_targeting_react_JSX_emit_e_g_React_createElement_or_h: diag(6146, 3 /* Message */, \"Specify_the_JSX_factory_function_to_use_when_targeting_react_JSX_emit_e_g_React_createElement_or_h_6146\", \"Specify the JSX factory function to use when targeting 'react' JSX emit, e.g. 'React.createElement' or 'h'.\"),\n  Resolution_for_module_0_was_found_in_cache_from_location_1: diag(6147, 3 /* Message */, \"Resolution_for_module_0_was_found_in_cache_from_location_1_6147\", \"Resolution for module '{0}' was found in cache from location '{1}'.\"),\n  Directory_0_does_not_exist_skipping_all_lookups_in_it: diag(6148, 3 /* Message */, \"Directory_0_does_not_exist_skipping_all_lookups_in_it_6148\", \"Directory '{0}' does not exist, skipping all lookups in it.\"),\n  Show_diagnostic_information: diag(6149, 3 /* Message */, \"Show_diagnostic_information_6149\", \"Show diagnostic information.\"),\n  Show_verbose_diagnostic_information: diag(6150, 3 /* Message */, \"Show_verbose_diagnostic_information_6150\", \"Show verbose diagnostic information.\"),\n  Emit_a_single_file_with_source_maps_instead_of_having_a_separate_file: diag(6151, 3 /* Message */, \"Emit_a_single_file_with_source_maps_instead_of_having_a_separate_file_6151\", \"Emit a single file with source maps instead of having a separate file.\"),\n  Emit_the_source_alongside_the_sourcemaps_within_a_single_file_requires_inlineSourceMap_or_sourceMap_to_be_set: diag(6152, 3 /* Message */, \"Emit_the_source_alongside_the_sourcemaps_within_a_single_file_requires_inlineSourceMap_or_sourceMap__6152\", \"Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set.\"),\n  Transpile_each_file_as_a_separate_module_similar_to_ts_transpileModule: diag(6153, 3 /* Message */, \"Transpile_each_file_as_a_separate_module_similar_to_ts_transpileModule_6153\", \"Transpile each file as a separate module (similar to 'ts.transpileModule').\"),\n  Print_names_of_generated_files_part_of_the_compilation: diag(6154, 3 /* Message */, \"Print_names_of_generated_files_part_of_the_compilation_6154\", \"Print names of generated files part of the compilation.\"),\n  Print_names_of_files_part_of_the_compilation: diag(6155, 3 /* Message */, \"Print_names_of_files_part_of_the_compilation_6155\", \"Print names of files part of the compilation.\"),\n  The_locale_used_when_displaying_messages_to_the_user_e_g_en_us: diag(6156, 3 /* Message */, \"The_locale_used_when_displaying_messages_to_the_user_e_g_en_us_6156\", \"The locale used when displaying messages to the user (e.g. 'en-us')\"),\n  Do_not_generate_custom_helper_functions_like_extends_in_compiled_output: diag(6157, 3 /* Message */, \"Do_not_generate_custom_helper_functions_like_extends_in_compiled_output_6157\", \"Do not generate custom helper functions like '__extends' in compiled output.\"),\n  Do_not_include_the_default_library_file_lib_d_ts: diag(6158, 3 /* Message */, \"Do_not_include_the_default_library_file_lib_d_ts_6158\", \"Do not include the default library file (lib.d.ts).\"),\n  Do_not_add_triple_slash_references_or_imported_modules_to_the_list_of_compiled_files: diag(6159, 3 /* Message */, \"Do_not_add_triple_slash_references_or_imported_modules_to_the_list_of_compiled_files_6159\", \"Do not add triple-slash references or imported modules to the list of compiled files.\"),\n  Deprecated_Use_skipLibCheck_instead_Skip_type_checking_of_default_library_declaration_files: diag(6160, 3 /* Message */, \"Deprecated_Use_skipLibCheck_instead_Skip_type_checking_of_default_library_declaration_files_6160\", \"[Deprecated] Use '--skipLibCheck' instead. Skip type checking of default library declaration files.\"),\n  List_of_folders_to_include_type_definitions_from: diag(6161, 3 /* Message */, \"List_of_folders_to_include_type_definitions_from_6161\", \"List of folders to include type definitions from.\"),\n  Disable_size_limitations_on_JavaScript_projects: diag(6162, 3 /* Message */, \"Disable_size_limitations_on_JavaScript_projects_6162\", \"Disable size limitations on JavaScript projects.\"),\n  The_character_set_of_the_input_files: diag(6163, 3 /* Message */, \"The_character_set_of_the_input_files_6163\", \"The character set of the input files.\"),\n  Skipping_module_0_that_looks_like_an_absolute_URI_target_file_types_Colon_1: diag(6164, 3 /* Message */, \"Skipping_module_0_that_looks_like_an_absolute_URI_target_file_types_Colon_1_6164\", \"Skipping module '{0}' that looks like an absolute URI, target file types: {1}.\"),\n  Do_not_truncate_error_messages: diag(6165, 3 /* Message */, \"Do_not_truncate_error_messages_6165\", \"Do not truncate error messages.\"),\n  Output_directory_for_generated_declaration_files: diag(6166, 3 /* Message */, \"Output_directory_for_generated_declaration_files_6166\", \"Output directory for generated declaration files.\"),\n  A_series_of_entries_which_re_map_imports_to_lookup_locations_relative_to_the_baseUrl: diag(6167, 3 /* Message */, \"A_series_of_entries_which_re_map_imports_to_lookup_locations_relative_to_the_baseUrl_6167\", \"A series of entries which re-map imports to lookup locations relative to the 'baseUrl'.\"),\n  List_of_root_folders_whose_combined_content_represents_the_structure_of_the_project_at_runtime: diag(6168, 3 /* Message */, \"List_of_root_folders_whose_combined_content_represents_the_structure_of_the_project_at_runtime_6168\", \"List of root folders whose combined content represents the structure of the project at runtime.\"),\n  Show_all_compiler_options: diag(6169, 3 /* Message */, \"Show_all_compiler_options_6169\", \"Show all compiler options.\"),\n  Deprecated_Use_outFile_instead_Concatenate_and_emit_output_to_single_file: diag(6170, 3 /* Message */, \"Deprecated_Use_outFile_instead_Concatenate_and_emit_output_to_single_file_6170\", \"[Deprecated] Use '--outFile' instead. Concatenate and emit output to single file\"),\n  Command_line_Options: diag(6171, 3 /* Message */, \"Command_line_Options_6171\", \"Command-line Options\"),\n  Provide_full_support_for_iterables_in_for_of_spread_and_destructuring_when_targeting_ES5: diag(6179, 3 /* Message */, \"Provide_full_support_for_iterables_in_for_of_spread_and_destructuring_when_targeting_ES5_6179\", \"Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5'.\"),\n  Enable_all_strict_type_checking_options: diag(6180, 3 /* Message */, \"Enable_all_strict_type_checking_options_6180\", \"Enable all strict type-checking options.\"),\n  Scoped_package_detected_looking_in_0: diag(6182, 3 /* Message */, \"Scoped_package_detected_looking_in_0_6182\", \"Scoped package detected, looking in '{0}'\"),\n  Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2: diag(6183, 3 /* Message */, \"Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_6183\", \"Reusing resolution of module '{0}' from '{1}' of old program, it was successfully resolved to '{2}'.\"),\n  Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package_ID_3: diag(6184, 3 /* Message */, \"Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package__6184\", \"Reusing resolution of module '{0}' from '{1}' of old program, it was successfully resolved to '{2}' with Package ID '{3}'.\"),\n  Enable_strict_checking_of_function_types: diag(6186, 3 /* Message */, \"Enable_strict_checking_of_function_types_6186\", \"Enable strict checking of function types.\"),\n  Enable_strict_checking_of_property_initialization_in_classes: diag(6187, 3 /* Message */, \"Enable_strict_checking_of_property_initialization_in_classes_6187\", \"Enable strict checking of property initialization in classes.\"),\n  Numeric_separators_are_not_allowed_here: diag(6188, 1 /* Error */, \"Numeric_separators_are_not_allowed_here_6188\", \"Numeric separators are not allowed here.\"),\n  Multiple_consecutive_numeric_separators_are_not_permitted: diag(6189, 1 /* Error */, \"Multiple_consecutive_numeric_separators_are_not_permitted_6189\", \"Multiple consecutive numeric separators are not permitted.\"),\n  Whether_to_keep_outdated_console_output_in_watch_mode_instead_of_clearing_the_screen: diag(6191, 3 /* Message */, \"Whether_to_keep_outdated_console_output_in_watch_mode_instead_of_clearing_the_screen_6191\", \"Whether to keep outdated console output in watch mode instead of clearing the screen.\"),\n  All_imports_in_import_declaration_are_unused: diag(\n    6192,\n    1 /* Error */,\n    \"All_imports_in_import_declaration_are_unused_6192\",\n    \"All imports in import declaration are unused.\",\n    /*reportsUnnecessary*/\n    true\n  ),\n  Found_1_error_Watching_for_file_changes: diag(6193, 3 /* Message */, \"Found_1_error_Watching_for_file_changes_6193\", \"Found 1 error. Watching for file changes.\"),\n  Found_0_errors_Watching_for_file_changes: diag(6194, 3 /* Message */, \"Found_0_errors_Watching_for_file_changes_6194\", \"Found {0} errors. Watching for file changes.\"),\n  Resolve_keyof_to_string_valued_property_names_only_no_numbers_or_symbols: diag(6195, 3 /* Message */, \"Resolve_keyof_to_string_valued_property_names_only_no_numbers_or_symbols_6195\", \"Resolve 'keyof' to string valued property names only (no numbers or symbols).\"),\n  _0_is_declared_but_never_used: diag(\n    6196,\n    1 /* Error */,\n    \"_0_is_declared_but_never_used_6196\",\n    \"'{0}' is declared but never used.\",\n    /*reportsUnnecessary*/\n    true\n  ),\n  Include_modules_imported_with_json_extension: diag(6197, 3 /* Message */, \"Include_modules_imported_with_json_extension_6197\", \"Include modules imported with '.json' extension\"),\n  All_destructured_elements_are_unused: diag(\n    6198,\n    1 /* Error */,\n    \"All_destructured_elements_are_unused_6198\",\n    \"All destructured elements are unused.\",\n    /*reportsUnnecessary*/\n    true\n  ),\n  All_variables_are_unused: diag(\n    6199,\n    1 /* Error */,\n    \"All_variables_are_unused_6199\",\n    \"All variables are unused.\",\n    /*reportsUnnecessary*/\n    true\n  ),\n  Definitions_of_the_following_identifiers_conflict_with_those_in_another_file_Colon_0: diag(6200, 1 /* Error */, \"Definitions_of_the_following_identifiers_conflict_with_those_in_another_file_Colon_0_6200\", \"Definitions of the following identifiers conflict with those in another file: {0}\"),\n  Conflicts_are_in_this_file: diag(6201, 3 /* Message */, \"Conflicts_are_in_this_file_6201\", \"Conflicts are in this file.\"),\n  Project_references_may_not_form_a_circular_graph_Cycle_detected_Colon_0: diag(6202, 1 /* Error */, \"Project_references_may_not_form_a_circular_graph_Cycle_detected_Colon_0_6202\", \"Project references may not form a circular graph. Cycle detected: {0}\"),\n  _0_was_also_declared_here: diag(6203, 3 /* Message */, \"_0_was_also_declared_here_6203\", \"'{0}' was also declared here.\"),\n  and_here: diag(6204, 3 /* Message */, \"and_here_6204\", \"and here.\"),\n  All_type_parameters_are_unused: diag(6205, 1 /* Error */, \"All_type_parameters_are_unused_6205\", \"All type parameters are unused.\"),\n  package_json_has_a_typesVersions_field_with_version_specific_path_mappings: diag(6206, 3 /* Message */, \"package_json_has_a_typesVersions_field_with_version_specific_path_mappings_6206\", \"'package.json' has a 'typesVersions' field with version-specific path mappings.\"),\n  package_json_does_not_have_a_typesVersions_entry_that_matches_version_0: diag(6207, 3 /* Message */, \"package_json_does_not_have_a_typesVersions_entry_that_matches_version_0_6207\", \"'package.json' does not have a 'typesVersions' entry that matches version '{0}'.\"),\n  package_json_has_a_typesVersions_entry_0_that_matches_compiler_version_1_looking_for_a_pattern_to_match_module_name_2: diag(6208, 3 /* Message */, \"package_json_has_a_typesVersions_entry_0_that_matches_compiler_version_1_looking_for_a_pattern_to_ma_6208\", \"'package.json' has a 'typesVersions' entry '{0}' that matches compiler version '{1}', looking for a pattern to match module name '{2}'.\"),\n  package_json_has_a_typesVersions_entry_0_that_is_not_a_valid_semver_range: diag(6209, 3 /* Message */, \"package_json_has_a_typesVersions_entry_0_that_is_not_a_valid_semver_range_6209\", \"'package.json' has a 'typesVersions' entry '{0}' that is not a valid semver range.\"),\n  An_argument_for_0_was_not_provided: diag(6210, 3 /* Message */, \"An_argument_for_0_was_not_provided_6210\", \"An argument for '{0}' was not provided.\"),\n  An_argument_matching_this_binding_pattern_was_not_provided: diag(6211, 3 /* Message */, \"An_argument_matching_this_binding_pattern_was_not_provided_6211\", \"An argument matching this binding pattern was not provided.\"),\n  Did_you_mean_to_call_this_expression: diag(6212, 3 /* Message */, \"Did_you_mean_to_call_this_expression_6212\", \"Did you mean to call this expression?\"),\n  Did_you_mean_to_use_new_with_this_expression: diag(6213, 3 /* Message */, \"Did_you_mean_to_use_new_with_this_expression_6213\", \"Did you mean to use 'new' with this expression?\"),\n  Enable_strict_bind_call_and_apply_methods_on_functions: diag(6214, 3 /* Message */, \"Enable_strict_bind_call_and_apply_methods_on_functions_6214\", \"Enable strict 'bind', 'call', and 'apply' methods on functions.\"),\n  Using_compiler_options_of_project_reference_redirect_0: diag(6215, 3 /* Message */, \"Using_compiler_options_of_project_reference_redirect_0_6215\", \"Using compiler options of project reference redirect '{0}'.\"),\n  Found_1_error: diag(6216, 3 /* Message */, \"Found_1_error_6216\", \"Found 1 error.\"),\n  Found_0_errors: diag(6217, 3 /* Message */, \"Found_0_errors_6217\", \"Found {0} errors.\"),\n  Module_name_0_was_successfully_resolved_to_1_with_Package_ID_2: diag(6218, 3 /* Message */, \"Module_name_0_was_successfully_resolved_to_1_with_Package_ID_2_6218\", \"======== Module name '{0}' was successfully resolved to '{1}' with Package ID '{2}'. ========\"),\n  Type_reference_directive_0_was_successfully_resolved_to_1_with_Package_ID_2_primary_Colon_3: diag(6219, 3 /* Message */, \"Type_reference_directive_0_was_successfully_resolved_to_1_with_Package_ID_2_primary_Colon_3_6219\", \"======== Type reference directive '{0}' was successfully resolved to '{1}' with Package ID '{2}', primary: {3}. ========\"),\n  package_json_had_a_falsy_0_field: diag(6220, 3 /* Message */, \"package_json_had_a_falsy_0_field_6220\", \"'package.json' had a falsy '{0}' field.\"),\n  Disable_use_of_source_files_instead_of_declaration_files_from_referenced_projects: diag(6221, 3 /* Message */, \"Disable_use_of_source_files_instead_of_declaration_files_from_referenced_projects_6221\", \"Disable use of source files instead of declaration files from referenced projects.\"),\n  Emit_class_fields_with_Define_instead_of_Set: diag(6222, 3 /* Message */, \"Emit_class_fields_with_Define_instead_of_Set_6222\", \"Emit class fields with Define instead of Set.\"),\n  Generates_a_CPU_profile: diag(6223, 3 /* Message */, \"Generates_a_CPU_profile_6223\", \"Generates a CPU profile.\"),\n  Disable_solution_searching_for_this_project: diag(6224, 3 /* Message */, \"Disable_solution_searching_for_this_project_6224\", \"Disable solution searching for this project.\"),\n  Specify_strategy_for_watching_file_Colon_FixedPollingInterval_default_PriorityPollingInterval_DynamicPriorityPolling_FixedChunkSizePolling_UseFsEvents_UseFsEventsOnParentDirectory: diag(6225, 3 /* Message */, \"Specify_strategy_for_watching_file_Colon_FixedPollingInterval_default_PriorityPollingInterval_Dynami_6225\", \"Specify strategy for watching file: 'FixedPollingInterval' (default), 'PriorityPollingInterval', 'DynamicPriorityPolling', 'FixedChunkSizePolling', 'UseFsEvents', 'UseFsEventsOnParentDirectory'.\"),\n  Specify_strategy_for_watching_directory_on_platforms_that_don_t_support_recursive_watching_natively_Colon_UseFsEvents_default_FixedPollingInterval_DynamicPriorityPolling_FixedChunkSizePolling: diag(6226, 3 /* Message */, \"Specify_strategy_for_watching_directory_on_platforms_that_don_t_support_recursive_watching_natively__6226\", \"Specify strategy for watching directory on platforms that don't support recursive watching natively: 'UseFsEvents' (default), 'FixedPollingInterval', 'DynamicPriorityPolling', 'FixedChunkSizePolling'.\"),\n  Specify_strategy_for_creating_a_polling_watch_when_it_fails_to_create_using_file_system_events_Colon_FixedInterval_default_PriorityInterval_DynamicPriority_FixedChunkSize: diag(6227, 3 /* Message */, \"Specify_strategy_for_creating_a_polling_watch_when_it_fails_to_create_using_file_system_events_Colon_6227\", \"Specify strategy for creating a polling watch when it fails to create using file system events: 'FixedInterval' (default), 'PriorityInterval', 'DynamicPriority', 'FixedChunkSize'.\"),\n  Tag_0_expects_at_least_1_arguments_but_the_JSX_factory_2_provides_at_most_3: diag(6229, 1 /* Error */, \"Tag_0_expects_at_least_1_arguments_but_the_JSX_factory_2_provides_at_most_3_6229\", \"Tag '{0}' expects at least '{1}' arguments, but the JSX factory '{2}' provides at most '{3}'.\"),\n  Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_false_or_null_on_command_line: diag(6230, 1 /* Error */, \"Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_false_or_null_on_command_line_6230\", \"Option '{0}' can only be specified in 'tsconfig.json' file or set to 'false' or 'null' on command line.\"),\n  Could_not_resolve_the_path_0_with_the_extensions_Colon_1: diag(6231, 1 /* Error */, \"Could_not_resolve_the_path_0_with_the_extensions_Colon_1_6231\", \"Could not resolve the path '{0}' with the extensions: {1}.\"),\n  Declaration_augments_declaration_in_another_file_This_cannot_be_serialized: diag(6232, 1 /* Error */, \"Declaration_augments_declaration_in_another_file_This_cannot_be_serialized_6232\", \"Declaration augments declaration in another file. This cannot be serialized.\"),\n  This_is_the_declaration_being_augmented_Consider_moving_the_augmenting_declaration_into_the_same_file: diag(6233, 1 /* Error */, \"This_is_the_declaration_being_augmented_Consider_moving_the_augmenting_declaration_into_the_same_fil_6233\", \"This is the declaration being augmented. Consider moving the augmenting declaration into the same file.\"),\n  This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without: diag(6234, 1 /* Error */, \"This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without_6234\", \"This expression is not callable because it is a 'get' accessor. Did you mean to use it without '()'?\"),\n  Disable_loading_referenced_projects: diag(6235, 3 /* Message */, \"Disable_loading_referenced_projects_6235\", \"Disable loading referenced projects.\"),\n  Arguments_for_the_rest_parameter_0_were_not_provided: diag(6236, 1 /* Error */, \"Arguments_for_the_rest_parameter_0_were_not_provided_6236\", \"Arguments for the rest parameter '{0}' were not provided.\"),\n  Generates_an_event_trace_and_a_list_of_types: diag(6237, 3 /* Message */, \"Generates_an_event_trace_and_a_list_of_types_6237\", \"Generates an event trace and a list of types.\"),\n  Specify_the_module_specifier_to_be_used_to_import_the_jsx_and_jsxs_factory_functions_from_eg_react: diag(6238, 1 /* Error */, \"Specify_the_module_specifier_to_be_used_to_import_the_jsx_and_jsxs_factory_functions_from_eg_react_6238\", \"Specify the module specifier to be used to import the 'jsx' and 'jsxs' factory functions from. eg, react\"),\n  File_0_exists_according_to_earlier_cached_lookups: diag(6239, 3 /* Message */, \"File_0_exists_according_to_earlier_cached_lookups_6239\", \"File '{0}' exists according to earlier cached lookups.\"),\n  File_0_does_not_exist_according_to_earlier_cached_lookups: diag(6240, 3 /* Message */, \"File_0_does_not_exist_according_to_earlier_cached_lookups_6240\", \"File '{0}' does not exist according to earlier cached lookups.\"),\n  Resolution_for_type_reference_directive_0_was_found_in_cache_from_location_1: diag(6241, 3 /* Message */, \"Resolution_for_type_reference_directive_0_was_found_in_cache_from_location_1_6241\", \"Resolution for type reference directive '{0}' was found in cache from location '{1}'.\"),\n  Resolving_type_reference_directive_0_containing_file_1: diag(6242, 3 /* Message */, \"Resolving_type_reference_directive_0_containing_file_1_6242\", \"======== Resolving type reference directive '{0}', containing file '{1}'. ========\"),\n  Interpret_optional_property_types_as_written_rather_than_adding_undefined: diag(6243, 3 /* Message */, \"Interpret_optional_property_types_as_written_rather_than_adding_undefined_6243\", \"Interpret optional property types as written, rather than adding 'undefined'.\"),\n  Modules: diag(6244, 3 /* Message */, \"Modules_6244\", \"Modules\"),\n  File_Management: diag(6245, 3 /* Message */, \"File_Management_6245\", \"File Management\"),\n  Emit: diag(6246, 3 /* Message */, \"Emit_6246\", \"Emit\"),\n  JavaScript_Support: diag(6247, 3 /* Message */, \"JavaScript_Support_6247\", \"JavaScript Support\"),\n  Type_Checking: diag(6248, 3 /* Message */, \"Type_Checking_6248\", \"Type Checking\"),\n  Editor_Support: diag(6249, 3 /* Message */, \"Editor_Support_6249\", \"Editor Support\"),\n  Watch_and_Build_Modes: diag(6250, 3 /* Message */, \"Watch_and_Build_Modes_6250\", \"Watch and Build Modes\"),\n  Compiler_Diagnostics: diag(6251, 3 /* Message */, \"Compiler_Diagnostics_6251\", \"Compiler Diagnostics\"),\n  Interop_Constraints: diag(6252, 3 /* Message */, \"Interop_Constraints_6252\", \"Interop Constraints\"),\n  Backwards_Compatibility: diag(6253, 3 /* Message */, \"Backwards_Compatibility_6253\", \"Backwards Compatibility\"),\n  Language_and_Environment: diag(6254, 3 /* Message */, \"Language_and_Environment_6254\", \"Language and Environment\"),\n  Projects: diag(6255, 3 /* Message */, \"Projects_6255\", \"Projects\"),\n  Output_Formatting: diag(6256, 3 /* Message */, \"Output_Formatting_6256\", \"Output Formatting\"),\n  Completeness: diag(6257, 3 /* Message */, \"Completeness_6257\", \"Completeness\"),\n  _0_should_be_set_inside_the_compilerOptions_object_of_the_config_json_file: diag(6258, 1 /* Error */, \"_0_should_be_set_inside_the_compilerOptions_object_of_the_config_json_file_6258\", \"'{0}' should be set inside the 'compilerOptions' object of the config json file\"),\n  Found_1_error_in_0: diag(6259, 3 /* Message */, \"Found_1_error_in_0_6259\", \"Found 1 error in {0}\"),\n  Found_0_errors_in_the_same_file_starting_at_Colon_1: diag(6260, 3 /* Message */, \"Found_0_errors_in_the_same_file_starting_at_Colon_1_6260\", \"Found {0} errors in the same file, starting at: {1}\"),\n  Found_0_errors_in_1_files: diag(6261, 3 /* Message */, \"Found_0_errors_in_1_files_6261\", \"Found {0} errors in {1} files.\"),\n  File_name_0_has_a_1_extension_looking_up_2_instead: diag(6262, 3 /* Message */, \"File_name_0_has_a_1_extension_looking_up_2_instead_6262\", \"File name '{0}' has a '{1}' extension - looking up '{2}' instead.\"),\n  Module_0_was_resolved_to_1_but_allowArbitraryExtensions_is_not_set: diag(6263, 1 /* Error */, \"Module_0_was_resolved_to_1_but_allowArbitraryExtensions_is_not_set_6263\", \"Module '{0}' was resolved to '{1}', but '--allowArbitraryExtensions' is not set.\"),\n  Enable_importing_files_with_any_extension_provided_a_declaration_file_is_present: diag(6264, 3 /* Message */, \"Enable_importing_files_with_any_extension_provided_a_declaration_file_is_present_6264\", \"Enable importing files with any extension, provided a declaration file is present.\"),\n  Resolving_type_reference_directive_for_program_that_specifies_custom_typeRoots_skipping_lookup_in_node_modules_folder: diag(6265, 3 /* Message */, \"Resolving_type_reference_directive_for_program_that_specifies_custom_typeRoots_skipping_lookup_in_no_6265\", \"Resolving type reference directive for program that specifies custom typeRoots, skipping lookup in 'node_modules' folder.\"),\n  Option_0_can_only_be_specified_on_command_line: diag(6266, 1 /* Error */, \"Option_0_can_only_be_specified_on_command_line_6266\", \"Option '{0}' can only be specified on command line.\"),\n  Directory_0_has_no_containing_package_json_scope_Imports_will_not_resolve: diag(6270, 3 /* Message */, \"Directory_0_has_no_containing_package_json_scope_Imports_will_not_resolve_6270\", \"Directory '{0}' has no containing package.json scope. Imports will not resolve.\"),\n  Import_specifier_0_does_not_exist_in_package_json_scope_at_path_1: diag(6271, 3 /* Message */, \"Import_specifier_0_does_not_exist_in_package_json_scope_at_path_1_6271\", \"Import specifier '{0}' does not exist in package.json scope at path '{1}'.\"),\n  Invalid_import_specifier_0_has_no_possible_resolutions: diag(6272, 3 /* Message */, \"Invalid_import_specifier_0_has_no_possible_resolutions_6272\", \"Invalid import specifier '{0}' has no possible resolutions.\"),\n  package_json_scope_0_has_no_imports_defined: diag(6273, 3 /* Message */, \"package_json_scope_0_has_no_imports_defined_6273\", \"package.json scope '{0}' has no imports defined.\"),\n  package_json_scope_0_explicitly_maps_specifier_1_to_null: diag(6274, 3 /* Message */, \"package_json_scope_0_explicitly_maps_specifier_1_to_null_6274\", \"package.json scope '{0}' explicitly maps specifier '{1}' to null.\"),\n  package_json_scope_0_has_invalid_type_for_target_of_specifier_1: diag(6275, 3 /* Message */, \"package_json_scope_0_has_invalid_type_for_target_of_specifier_1_6275\", \"package.json scope '{0}' has invalid type for target of specifier '{1}'\"),\n  Export_specifier_0_does_not_exist_in_package_json_scope_at_path_1: diag(6276, 3 /* Message */, \"Export_specifier_0_does_not_exist_in_package_json_scope_at_path_1_6276\", \"Export specifier '{0}' does not exist in package.json scope at path '{1}'.\"),\n  Resolution_of_non_relative_name_failed_trying_with_modern_Node_resolution_features_disabled_to_see_if_npm_library_needs_configuration_update: diag(6277, 3 /* Message */, \"Resolution_of_non_relative_name_failed_trying_with_modern_Node_resolution_features_disabled_to_see_i_6277\", \"Resolution of non-relative name failed; trying with modern Node resolution features disabled to see if npm library needs configuration update.\"),\n  There_are_types_at_0_but_this_result_could_not_be_resolved_when_respecting_package_json_exports_The_1_library_may_need_to_update_its_package_json_or_typings: diag(6278, 3 /* Message */, \"There_are_types_at_0_but_this_result_could_not_be_resolved_when_respecting_package_json_exports_The__6278\", `There are types at '{0}', but this result could not be resolved when respecting package.json \"exports\". The '{1}' library may need to update its package.json or typings.`),\n  Resolution_of_non_relative_name_failed_trying_with_moduleResolution_bundler_to_see_if_project_may_need_configuration_update: diag(6279, 3 /* Message */, \"Resolution_of_non_relative_name_failed_trying_with_moduleResolution_bundler_to_see_if_project_may_ne_6279\", \"Resolution of non-relative name failed; trying with '--moduleResolution bundler' to see if project may need configuration update.\"),\n  There_are_types_at_0_but_this_result_could_not_be_resolved_under_your_current_moduleResolution_setting_Consider_updating_to_node16_nodenext_or_bundler: diag(6280, 3 /* Message */, \"There_are_types_at_0_but_this_result_could_not_be_resolved_under_your_current_moduleResolution_setti_6280\", \"There are types at '{0}', but this result could not be resolved under your current 'moduleResolution' setting. Consider updating to 'node16', 'nodenext', or 'bundler'.\"),\n  package_json_has_a_peerDependencies_field: diag(6281, 3 /* Message */, \"package_json_has_a_peerDependencies_field_6281\", \"'package.json' has a 'peerDependencies' field.\"),\n  Found_peerDependency_0_with_1_version: diag(6282, 3 /* Message */, \"Found_peerDependency_0_with_1_version_6282\", \"Found peerDependency '{0}' with '{1}' version.\"),\n  Failed_to_find_peerDependency_0: diag(6283, 3 /* Message */, \"Failed_to_find_peerDependency_0_6283\", \"Failed to find peerDependency '{0}'.\"),\n  File_Layout: diag(6284, 3 /* Message */, \"File_Layout_6284\", \"File Layout\"),\n  Environment_Settings: diag(6285, 3 /* Message */, \"Environment_Settings_6285\", \"Environment Settings\"),\n  See_also_https_Colon_Slash_Slashaka_ms_Slashtsconfig_Slashmodule: diag(6286, 3 /* Message */, \"See_also_https_Colon_Slash_Slashaka_ms_Slashtsconfig_Slashmodule_6286\", \"See also https://aka.ms/tsconfig/module\"),\n  For_nodejs_Colon: diag(6287, 3 /* Message */, \"For_nodejs_Colon_6287\", \"For nodejs:\"),\n  and_npm_install_D_types_Slashnode: diag(6290, 3 /* Message */, \"and_npm_install_D_types_Slashnode_6290\", \"and npm install -D @types/node\"),\n  Other_Outputs: diag(6291, 3 /* Message */, \"Other_Outputs_6291\", \"Other Outputs\"),\n  Stricter_Typechecking_Options: diag(6292, 3 /* Message */, \"Stricter_Typechecking_Options_6292\", \"Stricter Typechecking Options\"),\n  Style_Options: diag(6293, 3 /* Message */, \"Style_Options_6293\", \"Style Options\"),\n  Recommended_Options: diag(6294, 3 /* Message */, \"Recommended_Options_6294\", \"Recommended Options\"),\n  Enable_project_compilation: diag(6302, 3 /* Message */, \"Enable_project_compilation_6302\", \"Enable project compilation\"),\n  Composite_projects_may_not_disable_declaration_emit: diag(6304, 1 /* Error */, \"Composite_projects_may_not_disable_declaration_emit_6304\", \"Composite projects may not disable declaration emit.\"),\n  Output_file_0_has_not_been_built_from_source_file_1: diag(6305, 1 /* Error */, \"Output_file_0_has_not_been_built_from_source_file_1_6305\", \"Output file '{0}' has not been built from source file '{1}'.\"),\n  Referenced_project_0_must_have_setting_composite_Colon_true: diag(6306, 1 /* Error */, \"Referenced_project_0_must_have_setting_composite_Colon_true_6306\", `Referenced project '{0}' must have setting \"composite\": true.`),\n  File_0_is_not_listed_within_the_file_list_of_project_1_Projects_must_list_all_files_or_use_an_include_pattern: diag(6307, 1 /* Error */, \"File_0_is_not_listed_within_the_file_list_of_project_1_Projects_must_list_all_files_or_use_an_includ_6307\", \"File '{0}' is not listed within the file list of project '{1}'. Projects must list all files or use an 'include' pattern.\"),\n  Referenced_project_0_may_not_disable_emit: diag(6310, 1 /* Error */, \"Referenced_project_0_may_not_disable_emit_6310\", \"Referenced project '{0}' may not disable emit.\"),\n  Project_0_is_out_of_date_because_output_1_is_older_than_input_2: diag(6350, 3 /* Message */, \"Project_0_is_out_of_date_because_output_1_is_older_than_input_2_6350\", \"Project '{0}' is out of date because output '{1}' is older than input '{2}'\"),\n  Project_0_is_up_to_date_because_newest_input_1_is_older_than_output_2: diag(6351, 3 /* Message */, \"Project_0_is_up_to_date_because_newest_input_1_is_older_than_output_2_6351\", \"Project '{0}' is up to date because newest input '{1}' is older than output '{2}'\"),\n  Project_0_is_out_of_date_because_output_file_1_does_not_exist: diag(6352, 3 /* Message */, \"Project_0_is_out_of_date_because_output_file_1_does_not_exist_6352\", \"Project '{0}' is out of date because output file '{1}' does not exist\"),\n  Project_0_is_out_of_date_because_its_dependency_1_is_out_of_date: diag(6353, 3 /* Message */, \"Project_0_is_out_of_date_because_its_dependency_1_is_out_of_date_6353\", \"Project '{0}' is out of date because its dependency '{1}' is out of date\"),\n  Project_0_is_up_to_date_with_d_ts_files_from_its_dependencies: diag(6354, 3 /* Message */, \"Project_0_is_up_to_date_with_d_ts_files_from_its_dependencies_6354\", \"Project '{0}' is up to date with .d.ts files from its dependencies\"),\n  Projects_in_this_build_Colon_0: diag(6355, 3 /* Message */, \"Projects_in_this_build_Colon_0_6355\", \"Projects in this build: {0}\"),\n  A_non_dry_build_would_delete_the_following_files_Colon_0: diag(6356, 3 /* Message */, \"A_non_dry_build_would_delete_the_following_files_Colon_0_6356\", \"A non-dry build would delete the following files: {0}\"),\n  A_non_dry_build_would_build_project_0: diag(6357, 3 /* Message */, \"A_non_dry_build_would_build_project_0_6357\", \"A non-dry build would build project '{0}'\"),\n  Building_project_0: diag(6358, 3 /* Message */, \"Building_project_0_6358\", \"Building project '{0}'...\"),\n  Updating_output_timestamps_of_project_0: diag(6359, 3 /* Message */, \"Updating_output_timestamps_of_project_0_6359\", \"Updating output timestamps of project '{0}'...\"),\n  Project_0_is_up_to_date: diag(6361, 3 /* Message */, \"Project_0_is_up_to_date_6361\", \"Project '{0}' is up to date\"),\n  Skipping_build_of_project_0_because_its_dependency_1_has_errors: diag(6362, 3 /* Message */, \"Skipping_build_of_project_0_because_its_dependency_1_has_errors_6362\", \"Skipping build of project '{0}' because its dependency '{1}' has errors\"),\n  Project_0_can_t_be_built_because_its_dependency_1_has_errors: diag(6363, 3 /* Message */, \"Project_0_can_t_be_built_because_its_dependency_1_has_errors_6363\", \"Project '{0}' can't be built because its dependency '{1}' has errors\"),\n  Build_one_or_more_projects_and_their_dependencies_if_out_of_date: diag(6364, 3 /* Message */, \"Build_one_or_more_projects_and_their_dependencies_if_out_of_date_6364\", \"Build one or more projects and their dependencies, if out of date\"),\n  Delete_the_outputs_of_all_projects: diag(6365, 3 /* Message */, \"Delete_the_outputs_of_all_projects_6365\", \"Delete the outputs of all projects.\"),\n  Show_what_would_be_built_or_deleted_if_specified_with_clean: diag(6367, 3 /* Message */, \"Show_what_would_be_built_or_deleted_if_specified_with_clean_6367\", \"Show what would be built (or deleted, if specified with '--clean')\"),\n  Option_build_must_be_the_first_command_line_argument: diag(6369, 1 /* Error */, \"Option_build_must_be_the_first_command_line_argument_6369\", \"Option '--build' must be the first command line argument.\"),\n  Options_0_and_1_cannot_be_combined: diag(6370, 1 /* Error */, \"Options_0_and_1_cannot_be_combined_6370\", \"Options '{0}' and '{1}' cannot be combined.\"),\n  Updating_unchanged_output_timestamps_of_project_0: diag(6371, 3 /* Message */, \"Updating_unchanged_output_timestamps_of_project_0_6371\", \"Updating unchanged output timestamps of project '{0}'...\"),\n  A_non_dry_build_would_update_timestamps_for_output_of_project_0: diag(6374, 3 /* Message */, \"A_non_dry_build_would_update_timestamps_for_output_of_project_0_6374\", \"A non-dry build would update timestamps for output of project '{0}'\"),\n  Cannot_write_file_0_because_it_will_overwrite_tsbuildinfo_file_generated_by_referenced_project_1: diag(6377, 1 /* Error */, \"Cannot_write_file_0_because_it_will_overwrite_tsbuildinfo_file_generated_by_referenced_project_1_6377\", \"Cannot write file '{0}' because it will overwrite '.tsbuildinfo' file generated by referenced project '{1}'\"),\n  Composite_projects_may_not_disable_incremental_compilation: diag(6379, 1 /* Error */, \"Composite_projects_may_not_disable_incremental_compilation_6379\", \"Composite projects may not disable incremental compilation.\"),\n  Specify_file_to_store_incremental_compilation_information: diag(6380, 3 /* Message */, \"Specify_file_to_store_incremental_compilation_information_6380\", \"Specify file to store incremental compilation information\"),\n  Project_0_is_out_of_date_because_output_for_it_was_generated_with_version_1_that_differs_with_current_version_2: diag(6381, 3 /* Message */, \"Project_0_is_out_of_date_because_output_for_it_was_generated_with_version_1_that_differs_with_curren_6381\", \"Project '{0}' is out of date because output for it was generated with version '{1}' that differs with current version '{2}'\"),\n  Skipping_build_of_project_0_because_its_dependency_1_was_not_built: diag(6382, 3 /* Message */, \"Skipping_build_of_project_0_because_its_dependency_1_was_not_built_6382\", \"Skipping build of project '{0}' because its dependency '{1}' was not built\"),\n  Project_0_can_t_be_built_because_its_dependency_1_was_not_built: diag(6383, 3 /* Message */, \"Project_0_can_t_be_built_because_its_dependency_1_was_not_built_6383\", \"Project '{0}' can't be built because its dependency '{1}' was not built\"),\n  Have_recompiles_in_incremental_and_watch_assume_that_changes_within_a_file_will_only_affect_files_directly_depending_on_it: diag(6384, 3 /* Message */, \"Have_recompiles_in_incremental_and_watch_assume_that_changes_within_a_file_will_only_affect_files_di_6384\", \"Have recompiles in '--incremental' and '--watch' assume that changes within a file will only affect files directly depending on it.\"),\n  _0_is_deprecated: diag(\n    6385,\n    2 /* Suggestion */,\n    \"_0_is_deprecated_6385\",\n    \"'{0}' is deprecated.\",\n    /*reportsUnnecessary*/\n    void 0,\n    /*elidedInCompatabilityPyramid*/\n    void 0,\n    /*reportsDeprecated*/\n    true\n  ),\n  Performance_timings_for_diagnostics_or_extendedDiagnostics_are_not_available_in_this_session_A_native_implementation_of_the_Web_Performance_API_could_not_be_found: diag(6386, 3 /* Message */, \"Performance_timings_for_diagnostics_or_extendedDiagnostics_are_not_available_in_this_session_A_nativ_6386\", \"Performance timings for '--diagnostics' or '--extendedDiagnostics' are not available in this session. A native implementation of the Web Performance API could not be found.\"),\n  The_signature_0_of_1_is_deprecated: diag(\n    6387,\n    2 /* Suggestion */,\n    \"The_signature_0_of_1_is_deprecated_6387\",\n    \"The signature '{0}' of '{1}' is deprecated.\",\n    /*reportsUnnecessary*/\n    void 0,\n    /*elidedInCompatabilityPyramid*/\n    void 0,\n    /*reportsDeprecated*/\n    true\n  ),\n  Project_0_is_being_forcibly_rebuilt: diag(6388, 3 /* Message */, \"Project_0_is_being_forcibly_rebuilt_6388\", \"Project '{0}' is being forcibly rebuilt\"),\n  Reusing_resolution_of_module_0_from_1_of_old_program_it_was_not_resolved: diag(6389, 3 /* Message */, \"Reusing_resolution_of_module_0_from_1_of_old_program_it_was_not_resolved_6389\", \"Reusing resolution of module '{0}' from '{1}' of old program, it was not resolved.\"),\n  Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved_to_2: diag(6390, 3 /* Message */, \"Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved__6390\", \"Reusing resolution of type reference directive '{0}' from '{1}' of old program, it was successfully resolved to '{2}'.\"),\n  Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package_ID_3: diag(6391, 3 /* Message */, \"Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved__6391\", \"Reusing resolution of type reference directive '{0}' from '{1}' of old program, it was successfully resolved to '{2}' with Package ID '{3}'.\"),\n  Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_not_resolved: diag(6392, 3 /* Message */, \"Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_not_resolved_6392\", \"Reusing resolution of type reference directive '{0}' from '{1}' of old program, it was not resolved.\"),\n  Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3: diag(6393, 3 /* Message */, \"Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_6393\", \"Reusing resolution of module '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}'.\"),\n  Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3_with_Package_ID_4: diag(6394, 3 /* Message */, \"Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_6394\", \"Reusing resolution of module '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}' with Package ID '{4}'.\"),\n  Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_not_resolved: diag(6395, 3 /* Message */, \"Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_not_resolved_6395\", \"Reusing resolution of module '{0}' from '{1}' found in cache from location '{2}', it was not resolved.\"),\n  Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3: diag(6396, 3 /* Message */, \"Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_succes_6396\", \"Reusing resolution of type reference directive '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}'.\"),\n  Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3_with_Package_ID_4: diag(6397, 3 /* Message */, \"Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_succes_6397\", \"Reusing resolution of type reference directive '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}' with Package ID '{4}'.\"),\n  Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_not_resolved: diag(6398, 3 /* Message */, \"Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_not_re_6398\", \"Reusing resolution of type reference directive '{0}' from '{1}' found in cache from location '{2}', it was not resolved.\"),\n  Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_some_of_the_changes_were_not_emitted: diag(6399, 3 /* Message */, \"Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_some_of_the_changes_were_not_emitte_6399\", \"Project '{0}' is out of date because buildinfo file '{1}' indicates that some of the changes were not emitted\"),\n  Project_0_is_up_to_date_but_needs_to_update_timestamps_of_output_files_that_are_older_than_input_files: diag(6400, 3 /* Message */, \"Project_0_is_up_to_date_but_needs_to_update_timestamps_of_output_files_that_are_older_than_input_fil_6400\", \"Project '{0}' is up to date but needs to update timestamps of output files that are older than input files\"),\n  Project_0_is_out_of_date_because_there_was_error_reading_file_1: diag(6401, 3 /* Message */, \"Project_0_is_out_of_date_because_there_was_error_reading_file_1_6401\", \"Project '{0}' is out of date because there was error reading file '{1}'\"),\n  Resolving_in_0_mode_with_conditions_1: diag(6402, 3 /* Message */, \"Resolving_in_0_mode_with_conditions_1_6402\", \"Resolving in {0} mode with conditions {1}.\"),\n  Matched_0_condition_1: diag(6403, 3 /* Message */, \"Matched_0_condition_1_6403\", \"Matched '{0}' condition '{1}'.\"),\n  Using_0_subpath_1_with_target_2: diag(6404, 3 /* Message */, \"Using_0_subpath_1_with_target_2_6404\", \"Using '{0}' subpath '{1}' with target '{2}'.\"),\n  Saw_non_matching_condition_0: diag(6405, 3 /* Message */, \"Saw_non_matching_condition_0_6405\", \"Saw non-matching condition '{0}'.\"),\n  Project_0_is_out_of_date_because_buildinfo_file_1_indicates_there_is_change_in_compilerOptions: diag(6406, 3 /* Message */, \"Project_0_is_out_of_date_because_buildinfo_file_1_indicates_there_is_change_in_compilerOptions_6406\", \"Project '{0}' is out of date because buildinfo file '{1}' indicates there is change in compilerOptions\"),\n  Allow_imports_to_include_TypeScript_file_extensions_Requires_moduleResolution_bundler_and_either_noEmit_or_emitDeclarationOnly_to_be_set: diag(6407, 3 /* Message */, \"Allow_imports_to_include_TypeScript_file_extensions_Requires_moduleResolution_bundler_and_either_noE_6407\", \"Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set.\"),\n  Use_the_package_json_exports_field_when_resolving_package_imports: diag(6408, 3 /* Message */, \"Use_the_package_json_exports_field_when_resolving_package_imports_6408\", \"Use the package.json 'exports' field when resolving package imports.\"),\n  Use_the_package_json_imports_field_when_resolving_imports: diag(6409, 3 /* Message */, \"Use_the_package_json_imports_field_when_resolving_imports_6409\", \"Use the package.json 'imports' field when resolving imports.\"),\n  Conditions_to_set_in_addition_to_the_resolver_specific_defaults_when_resolving_imports: diag(6410, 3 /* Message */, \"Conditions_to_set_in_addition_to_the_resolver_specific_defaults_when_resolving_imports_6410\", \"Conditions to set in addition to the resolver-specific defaults when resolving imports.\"),\n  true_when_moduleResolution_is_node16_nodenext_or_bundler_otherwise_false: diag(6411, 3 /* Message */, \"true_when_moduleResolution_is_node16_nodenext_or_bundler_otherwise_false_6411\", \"`true` when 'moduleResolution' is 'node16', 'nodenext', or 'bundler'; otherwise `false`.\"),\n  Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_file_2_was_root_file_of_compilation_but_not_any_more: diag(6412, 3 /* Message */, \"Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_file_2_was_root_file_of_compilation_6412\", \"Project '{0}' is out of date because buildinfo file '{1}' indicates that file '{2}' was root file of compilation but not any more.\"),\n  Entering_conditional_exports: diag(6413, 3 /* Message */, \"Entering_conditional_exports_6413\", \"Entering conditional exports.\"),\n  Resolved_under_condition_0: diag(6414, 3 /* Message */, \"Resolved_under_condition_0_6414\", \"Resolved under condition '{0}'.\"),\n  Failed_to_resolve_under_condition_0: diag(6415, 3 /* Message */, \"Failed_to_resolve_under_condition_0_6415\", \"Failed to resolve under condition '{0}'.\"),\n  Exiting_conditional_exports: diag(6416, 3 /* Message */, \"Exiting_conditional_exports_6416\", \"Exiting conditional exports.\"),\n  Searching_all_ancestor_node_modules_directories_for_preferred_extensions_Colon_0: diag(6417, 3 /* Message */, \"Searching_all_ancestor_node_modules_directories_for_preferred_extensions_Colon_0_6417\", \"Searching all ancestor node_modules directories for preferred extensions: {0}.\"),\n  Searching_all_ancestor_node_modules_directories_for_fallback_extensions_Colon_0: diag(6418, 3 /* Message */, \"Searching_all_ancestor_node_modules_directories_for_fallback_extensions_Colon_0_6418\", \"Searching all ancestor node_modules directories for fallback extensions: {0}.\"),\n  Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_program_needs_to_report_errors: diag(6419, 3 /* Message */, \"Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_program_needs_to_report_errors_6419\", \"Project '{0}' is out of date because buildinfo file '{1}' indicates that program needs to report errors.\"),\n  Project_0_is_out_of_date_because_1: diag(6420, 3 /* Message */, \"Project_0_is_out_of_date_because_1_6420\", \"Project '{0}' is out of date because {1}.\"),\n  Rewrite_ts_tsx_mts_and_cts_file_extensions_in_relative_import_paths_to_their_JavaScript_equivalent_in_output_files: diag(6421, 3 /* Message */, \"Rewrite_ts_tsx_mts_and_cts_file_extensions_in_relative_import_paths_to_their_JavaScript_equivalent_i_6421\", \"Rewrite '.ts', '.tsx', '.mts', and '.cts' file extensions in relative import paths to their JavaScript equivalent in output files.\"),\n  The_expected_type_comes_from_property_0_which_is_declared_here_on_type_1: diag(6500, 3 /* Message */, \"The_expected_type_comes_from_property_0_which_is_declared_here_on_type_1_6500\", \"The expected type comes from property '{0}' which is declared here on type '{1}'\"),\n  The_expected_type_comes_from_this_index_signature: diag(6501, 3 /* Message */, \"The_expected_type_comes_from_this_index_signature_6501\", \"The expected type comes from this index signature.\"),\n  The_expected_type_comes_from_the_return_type_of_this_signature: diag(6502, 3 /* Message */, \"The_expected_type_comes_from_the_return_type_of_this_signature_6502\", \"The expected type comes from the return type of this signature.\"),\n  Print_names_of_files_that_are_part_of_the_compilation_and_then_stop_processing: diag(6503, 3 /* Message */, \"Print_names_of_files_that_are_part_of_the_compilation_and_then_stop_processing_6503\", \"Print names of files that are part of the compilation and then stop processing.\"),\n  File_0_is_a_JavaScript_file_Did_you_mean_to_enable_the_allowJs_option: diag(6504, 1 /* Error */, \"File_0_is_a_JavaScript_file_Did_you_mean_to_enable_the_allowJs_option_6504\", \"File '{0}' is a JavaScript file. Did you mean to enable the 'allowJs' option?\"),\n  Print_names_of_files_and_the_reason_they_are_part_of_the_compilation: diag(6505, 3 /* Message */, \"Print_names_of_files_and_the_reason_they_are_part_of_the_compilation_6505\", \"Print names of files and the reason they are part of the compilation.\"),\n  Consider_adding_a_declare_modifier_to_this_class: diag(6506, 3 /* Message */, \"Consider_adding_a_declare_modifier_to_this_class_6506\", \"Consider adding a 'declare' modifier to this class.\"),\n  Allow_JavaScript_files_to_be_a_part_of_your_program_Use_the_checkJs_option_to_get_errors_from_these_files: diag(6600, 3 /* Message */, \"Allow_JavaScript_files_to_be_a_part_of_your_program_Use_the_checkJs_option_to_get_errors_from_these__6600\", \"Allow JavaScript files to be a part of your program. Use the 'checkJs' option to get errors from these files.\"),\n  Allow_import_x_from_y_when_a_module_doesn_t_have_a_default_export: diag(6601, 3 /* Message */, \"Allow_import_x_from_y_when_a_module_doesn_t_have_a_default_export_6601\", \"Allow 'import x from y' when a module doesn't have a default export.\"),\n  Allow_accessing_UMD_globals_from_modules: diag(6602, 3 /* Message */, \"Allow_accessing_UMD_globals_from_modules_6602\", \"Allow accessing UMD globals from modules.\"),\n  Disable_error_reporting_for_unreachable_code: diag(6603, 3 /* Message */, \"Disable_error_reporting_for_unreachable_code_6603\", \"Disable error reporting for unreachable code.\"),\n  Disable_error_reporting_for_unused_labels: diag(6604, 3 /* Message */, \"Disable_error_reporting_for_unused_labels_6604\", \"Disable error reporting for unused labels.\"),\n  Ensure_use_strict_is_always_emitted: diag(6605, 3 /* Message */, \"Ensure_use_strict_is_always_emitted_6605\", \"Ensure 'use strict' is always emitted.\"),\n  Have_recompiles_in_projects_that_use_incremental_and_watch_mode_assume_that_changes_within_a_file_will_only_affect_files_directly_depending_on_it: diag(6606, 3 /* Message */, \"Have_recompiles_in_projects_that_use_incremental_and_watch_mode_assume_that_changes_within_a_file_wi_6606\", \"Have recompiles in projects that use 'incremental' and 'watch' mode assume that changes within a file will only affect files directly depending on it.\"),\n  Specify_the_base_directory_to_resolve_non_relative_module_names: diag(6607, 3 /* Message */, \"Specify_the_base_directory_to_resolve_non_relative_module_names_6607\", \"Specify the base directory to resolve non-relative module names.\"),\n  No_longer_supported_In_early_versions_manually_set_the_text_encoding_for_reading_files: diag(6608, 3 /* Message */, \"No_longer_supported_In_early_versions_manually_set_the_text_encoding_for_reading_files_6608\", \"No longer supported. In early versions, manually set the text encoding for reading files.\"),\n  Enable_error_reporting_in_type_checked_JavaScript_files: diag(6609, 3 /* Message */, \"Enable_error_reporting_in_type_checked_JavaScript_files_6609\", \"Enable error reporting in type-checked JavaScript files.\"),\n  Enable_constraints_that_allow_a_TypeScript_project_to_be_used_with_project_references: diag(6611, 3 /* Message */, \"Enable_constraints_that_allow_a_TypeScript_project_to_be_used_with_project_references_6611\", \"Enable constraints that allow a TypeScript project to be used with project references.\"),\n  Generate_d_ts_files_from_TypeScript_and_JavaScript_files_in_your_project: diag(6612, 3 /* Message */, \"Generate_d_ts_files_from_TypeScript_and_JavaScript_files_in_your_project_6612\", \"Generate .d.ts files from TypeScript and JavaScript files in your project.\"),\n  Specify_the_output_directory_for_generated_declaration_files: diag(6613, 3 /* Message */, \"Specify_the_output_directory_for_generated_declaration_files_6613\", \"Specify the output directory for generated declaration files.\"),\n  Create_sourcemaps_for_d_ts_files: diag(6614, 3 /* Message */, \"Create_sourcemaps_for_d_ts_files_6614\", \"Create sourcemaps for d.ts files.\"),\n  Output_compiler_performance_information_after_building: diag(6615, 3 /* Message */, \"Output_compiler_performance_information_after_building_6615\", \"Output compiler performance information after building.\"),\n  Disables_inference_for_type_acquisition_by_looking_at_filenames_in_a_project: diag(6616, 3 /* Message */, \"Disables_inference_for_type_acquisition_by_looking_at_filenames_in_a_project_6616\", \"Disables inference for type acquisition by looking at filenames in a project.\"),\n  Reduce_the_number_of_projects_loaded_automatically_by_TypeScript: diag(6617, 3 /* Message */, \"Reduce_the_number_of_projects_loaded_automatically_by_TypeScript_6617\", \"Reduce the number of projects loaded automatically by TypeScript.\"),\n  Remove_the_20mb_cap_on_total_source_code_size_for_JavaScript_files_in_the_TypeScript_language_server: diag(6618, 3 /* Message */, \"Remove_the_20mb_cap_on_total_source_code_size_for_JavaScript_files_in_the_TypeScript_language_server_6618\", \"Remove the 20mb cap on total source code size for JavaScript files in the TypeScript language server.\"),\n  Opt_a_project_out_of_multi_project_reference_checking_when_editing: diag(6619, 3 /* Message */, \"Opt_a_project_out_of_multi_project_reference_checking_when_editing_6619\", \"Opt a project out of multi-project reference checking when editing.\"),\n  Disable_preferring_source_files_instead_of_declaration_files_when_referencing_composite_projects: diag(6620, 3 /* Message */, \"Disable_preferring_source_files_instead_of_declaration_files_when_referencing_composite_projects_6620\", \"Disable preferring source files instead of declaration files when referencing composite projects.\"),\n  Emit_more_compliant_but_verbose_and_less_performant_JavaScript_for_iteration: diag(6621, 3 /* Message */, \"Emit_more_compliant_but_verbose_and_less_performant_JavaScript_for_iteration_6621\", \"Emit more compliant, but verbose and less performant JavaScript for iteration.\"),\n  Emit_a_UTF_8_Byte_Order_Mark_BOM_in_the_beginning_of_output_files: diag(6622, 3 /* Message */, \"Emit_a_UTF_8_Byte_Order_Mark_BOM_in_the_beginning_of_output_files_6622\", \"Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files.\"),\n  Only_output_d_ts_files_and_not_JavaScript_files: diag(6623, 3 /* Message */, \"Only_output_d_ts_files_and_not_JavaScript_files_6623\", \"Only output d.ts files and not JavaScript files.\"),\n  Emit_design_type_metadata_for_decorated_declarations_in_source_files: diag(6624, 3 /* Message */, \"Emit_design_type_metadata_for_decorated_declarations_in_source_files_6624\", \"Emit design-type metadata for decorated declarations in source files.\"),\n  Disable_the_type_acquisition_for_JavaScript_projects: diag(6625, 3 /* Message */, \"Disable_the_type_acquisition_for_JavaScript_projects_6625\", \"Disable the type acquisition for JavaScript projects\"),\n  Emit_additional_JavaScript_to_ease_support_for_importing_CommonJS_modules_This_enables_allowSyntheticDefaultImports_for_type_compatibility: diag(6626, 3 /* Message */, \"Emit_additional_JavaScript_to_ease_support_for_importing_CommonJS_modules_This_enables_allowSyntheti_6626\", \"Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility.\"),\n  Filters_results_from_the_include_option: diag(6627, 3 /* Message */, \"Filters_results_from_the_include_option_6627\", \"Filters results from the `include` option.\"),\n  Remove_a_list_of_directories_from_the_watch_process: diag(6628, 3 /* Message */, \"Remove_a_list_of_directories_from_the_watch_process_6628\", \"Remove a list of directories from the watch process.\"),\n  Remove_a_list_of_files_from_the_watch_mode_s_processing: diag(6629, 3 /* Message */, \"Remove_a_list_of_files_from_the_watch_mode_s_processing_6629\", \"Remove a list of files from the watch mode's processing.\"),\n  Enable_experimental_support_for_legacy_experimental_decorators: diag(6630, 3 /* Message */, \"Enable_experimental_support_for_legacy_experimental_decorators_6630\", \"Enable experimental support for legacy experimental decorators.\"),\n  Print_files_read_during_the_compilation_including_why_it_was_included: diag(6631, 3 /* Message */, \"Print_files_read_during_the_compilation_including_why_it_was_included_6631\", \"Print files read during the compilation including why it was included.\"),\n  Output_more_detailed_compiler_performance_information_after_building: diag(6632, 3 /* Message */, \"Output_more_detailed_compiler_performance_information_after_building_6632\", \"Output more detailed compiler performance information after building.\"),\n  Specify_one_or_more_path_or_node_module_references_to_base_configuration_files_from_which_settings_are_inherited: diag(6633, 3 /* Message */, \"Specify_one_or_more_path_or_node_module_references_to_base_configuration_files_from_which_settings_a_6633\", \"Specify one or more path or node module references to base configuration files from which settings are inherited.\"),\n  Specify_what_approach_the_watcher_should_use_if_the_system_runs_out_of_native_file_watchers: diag(6634, 3 /* Message */, \"Specify_what_approach_the_watcher_should_use_if_the_system_runs_out_of_native_file_watchers_6634\", \"Specify what approach the watcher should use if the system runs out of native file watchers.\"),\n  Include_a_list_of_files_This_does_not_support_glob_patterns_as_opposed_to_include: diag(6635, 3 /* Message */, \"Include_a_list_of_files_This_does_not_support_glob_patterns_as_opposed_to_include_6635\", \"Include a list of files. This does not support glob patterns, as opposed to `include`.\"),\n  Build_all_projects_including_those_that_appear_to_be_up_to_date: diag(6636, 3 /* Message */, \"Build_all_projects_including_those_that_appear_to_be_up_to_date_6636\", \"Build all projects, including those that appear to be up to date.\"),\n  Ensure_that_casing_is_correct_in_imports: diag(6637, 3 /* Message */, \"Ensure_that_casing_is_correct_in_imports_6637\", \"Ensure that casing is correct in imports.\"),\n  Emit_a_v8_CPU_profile_of_the_compiler_run_for_debugging: diag(6638, 3 /* Message */, \"Emit_a_v8_CPU_profile_of_the_compiler_run_for_debugging_6638\", \"Emit a v8 CPU profile of the compiler run for debugging.\"),\n  Allow_importing_helper_functions_from_tslib_once_per_project_instead_of_including_them_per_file: diag(6639, 3 /* Message */, \"Allow_importing_helper_functions_from_tslib_once_per_project_instead_of_including_them_per_file_6639\", \"Allow importing helper functions from tslib once per project, instead of including them per-file.\"),\n  Skip_building_downstream_projects_on_error_in_upstream_project: diag(6640, 3 /* Message */, \"Skip_building_downstream_projects_on_error_in_upstream_project_6640\", \"Skip building downstream projects on error in upstream project.\"),\n  Specify_a_list_of_glob_patterns_that_match_files_to_be_included_in_compilation: diag(6641, 3 /* Message */, \"Specify_a_list_of_glob_patterns_that_match_files_to_be_included_in_compilation_6641\", \"Specify a list of glob patterns that match files to be included in compilation.\"),\n  Save_tsbuildinfo_files_to_allow_for_incremental_compilation_of_projects: diag(6642, 3 /* Message */, \"Save_tsbuildinfo_files_to_allow_for_incremental_compilation_of_projects_6642\", \"Save .tsbuildinfo files to allow for incremental compilation of projects.\"),\n  Include_sourcemap_files_inside_the_emitted_JavaScript: diag(6643, 3 /* Message */, \"Include_sourcemap_files_inside_the_emitted_JavaScript_6643\", \"Include sourcemap files inside the emitted JavaScript.\"),\n  Include_source_code_in_the_sourcemaps_inside_the_emitted_JavaScript: diag(6644, 3 /* Message */, \"Include_source_code_in_the_sourcemaps_inside_the_emitted_JavaScript_6644\", \"Include source code in the sourcemaps inside the emitted JavaScript.\"),\n  Ensure_that_each_file_can_be_safely_transpiled_without_relying_on_other_imports: diag(6645, 3 /* Message */, \"Ensure_that_each_file_can_be_safely_transpiled_without_relying_on_other_imports_6645\", \"Ensure that each file can be safely transpiled without relying on other imports.\"),\n  Specify_what_JSX_code_is_generated: diag(6646, 3 /* Message */, \"Specify_what_JSX_code_is_generated_6646\", \"Specify what JSX code is generated.\"),\n  Specify_the_JSX_factory_function_used_when_targeting_React_JSX_emit_e_g_React_createElement_or_h: diag(6647, 3 /* Message */, \"Specify_the_JSX_factory_function_used_when_targeting_React_JSX_emit_e_g_React_createElement_or_h_6647\", \"Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'.\"),\n  Specify_the_JSX_Fragment_reference_used_for_fragments_when_targeting_React_JSX_emit_e_g_React_Fragment_or_Fragment: diag(6648, 3 /* Message */, \"Specify_the_JSX_Fragment_reference_used_for_fragments_when_targeting_React_JSX_emit_e_g_React_Fragme_6648\", \"Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'.\"),\n  Specify_module_specifier_used_to_import_the_JSX_factory_functions_when_using_jsx_Colon_react_jsx_Asterisk: diag(6649, 3 /* Message */, \"Specify_module_specifier_used_to_import_the_JSX_factory_functions_when_using_jsx_Colon_react_jsx_Ast_6649\", \"Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'.\"),\n  Make_keyof_only_return_strings_instead_of_string_numbers_or_symbols_Legacy_option: diag(6650, 3 /* Message */, \"Make_keyof_only_return_strings_instead_of_string_numbers_or_symbols_Legacy_option_6650\", \"Make keyof only return strings instead of string, numbers or symbols. Legacy option.\"),\n  Specify_a_set_of_bundled_library_declaration_files_that_describe_the_target_runtime_environment: diag(6651, 3 /* Message */, \"Specify_a_set_of_bundled_library_declaration_files_that_describe_the_target_runtime_environment_6651\", \"Specify a set of bundled library declaration files that describe the target runtime environment.\"),\n  Print_the_names_of_emitted_files_after_a_compilation: diag(6652, 3 /* Message */, \"Print_the_names_of_emitted_files_after_a_compilation_6652\", \"Print the names of emitted files after a compilation.\"),\n  Print_all_of_the_files_read_during_the_compilation: diag(6653, 3 /* Message */, \"Print_all_of_the_files_read_during_the_compilation_6653\", \"Print all of the files read during the compilation.\"),\n  Set_the_language_of_the_messaging_from_TypeScript_This_does_not_affect_emit: diag(6654, 3 /* Message */, \"Set_the_language_of_the_messaging_from_TypeScript_This_does_not_affect_emit_6654\", \"Set the language of the messaging from TypeScript. This does not affect emit.\"),\n  Specify_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations: diag(6655, 3 /* Message */, \"Specify_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations_6655\", \"Specify the location where debugger should locate map files instead of generated locations.\"),\n  Specify_the_maximum_folder_depth_used_for_checking_JavaScript_files_from_node_modules_Only_applicable_with_allowJs: diag(6656, 3 /* Message */, \"Specify_the_maximum_folder_depth_used_for_checking_JavaScript_files_from_node_modules_Only_applicabl_6656\", \"Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'.\"),\n  Specify_what_module_code_is_generated: diag(6657, 3 /* Message */, \"Specify_what_module_code_is_generated_6657\", \"Specify what module code is generated.\"),\n  Specify_how_TypeScript_looks_up_a_file_from_a_given_module_specifier: diag(6658, 3 /* Message */, \"Specify_how_TypeScript_looks_up_a_file_from_a_given_module_specifier_6658\", \"Specify how TypeScript looks up a file from a given module specifier.\"),\n  Set_the_newline_character_for_emitting_files: diag(6659, 3 /* Message */, \"Set_the_newline_character_for_emitting_files_6659\", \"Set the newline character for emitting files.\"),\n  Disable_emitting_files_from_a_compilation: diag(6660, 3 /* Message */, \"Disable_emitting_files_from_a_compilation_6660\", \"Disable emitting files from a compilation.\"),\n  Disable_generating_custom_helper_functions_like_extends_in_compiled_output: diag(6661, 3 /* Message */, \"Disable_generating_custom_helper_functions_like_extends_in_compiled_output_6661\", \"Disable generating custom helper functions like '__extends' in compiled output.\"),\n  Disable_emitting_files_if_any_type_checking_errors_are_reported: diag(6662, 3 /* Message */, \"Disable_emitting_files_if_any_type_checking_errors_are_reported_6662\", \"Disable emitting files if any type checking errors are reported.\"),\n  Disable_truncating_types_in_error_messages: diag(6663, 3 /* Message */, \"Disable_truncating_types_in_error_messages_6663\", \"Disable truncating types in error messages.\"),\n  Enable_error_reporting_for_fallthrough_cases_in_switch_statements: diag(6664, 3 /* Message */, \"Enable_error_reporting_for_fallthrough_cases_in_switch_statements_6664\", \"Enable error reporting for fallthrough cases in switch statements.\"),\n  Enable_error_reporting_for_expressions_and_declarations_with_an_implied_any_type: diag(6665, 3 /* Message */, \"Enable_error_reporting_for_expressions_and_declarations_with_an_implied_any_type_6665\", \"Enable error reporting for expressions and declarations with an implied 'any' type.\"),\n  Ensure_overriding_members_in_derived_classes_are_marked_with_an_override_modifier: diag(6666, 3 /* Message */, \"Ensure_overriding_members_in_derived_classes_are_marked_with_an_override_modifier_6666\", \"Ensure overriding members in derived classes are marked with an override modifier.\"),\n  Enable_error_reporting_for_codepaths_that_do_not_explicitly_return_in_a_function: diag(6667, 3 /* Message */, \"Enable_error_reporting_for_codepaths_that_do_not_explicitly_return_in_a_function_6667\", \"Enable error reporting for codepaths that do not explicitly return in a function.\"),\n  Enable_error_reporting_when_this_is_given_the_type_any: diag(6668, 3 /* Message */, \"Enable_error_reporting_when_this_is_given_the_type_any_6668\", \"Enable error reporting when 'this' is given the type 'any'.\"),\n  Disable_adding_use_strict_directives_in_emitted_JavaScript_files: diag(6669, 3 /* Message */, \"Disable_adding_use_strict_directives_in_emitted_JavaScript_files_6669\", \"Disable adding 'use strict' directives in emitted JavaScript files.\"),\n  Disable_including_any_library_files_including_the_default_lib_d_ts: diag(6670, 3 /* Message */, \"Disable_including_any_library_files_including_the_default_lib_d_ts_6670\", \"Disable including any library files, including the default lib.d.ts.\"),\n  Enforces_using_indexed_accessors_for_keys_declared_using_an_indexed_type: diag(6671, 3 /* Message */, \"Enforces_using_indexed_accessors_for_keys_declared_using_an_indexed_type_6671\", \"Enforces using indexed accessors for keys declared using an indexed type.\"),\n  Disallow_import_s_require_s_or_reference_s_from_expanding_the_number_of_files_TypeScript_should_add_to_a_project: diag(6672, 3 /* Message */, \"Disallow_import_s_require_s_or_reference_s_from_expanding_the_number_of_files_TypeScript_should_add__6672\", \"Disallow 'import's, 'require's or '<reference>'s from expanding the number of files TypeScript should add to a project.\"),\n  Disable_strict_checking_of_generic_signatures_in_function_types: diag(6673, 3 /* Message */, \"Disable_strict_checking_of_generic_signatures_in_function_types_6673\", \"Disable strict checking of generic signatures in function types.\"),\n  Add_undefined_to_a_type_when_accessed_using_an_index: diag(6674, 3 /* Message */, \"Add_undefined_to_a_type_when_accessed_using_an_index_6674\", \"Add 'undefined' to a type when accessed using an index.\"),\n  Enable_error_reporting_when_local_variables_aren_t_read: diag(6675, 3 /* Message */, \"Enable_error_reporting_when_local_variables_aren_t_read_6675\", \"Enable error reporting when local variables aren't read.\"),\n  Raise_an_error_when_a_function_parameter_isn_t_read: diag(6676, 3 /* Message */, \"Raise_an_error_when_a_function_parameter_isn_t_read_6676\", \"Raise an error when a function parameter isn't read.\"),\n  Deprecated_setting_Use_outFile_instead: diag(6677, 3 /* Message */, \"Deprecated_setting_Use_outFile_instead_6677\", \"Deprecated setting. Use 'outFile' instead.\"),\n  Specify_an_output_folder_for_all_emitted_files: diag(6678, 3 /* Message */, \"Specify_an_output_folder_for_all_emitted_files_6678\", \"Specify an output folder for all emitted files.\"),\n  Specify_a_file_that_bundles_all_outputs_into_one_JavaScript_file_If_declaration_is_true_also_designates_a_file_that_bundles_all_d_ts_output: diag(6679, 3 /* Message */, \"Specify_a_file_that_bundles_all_outputs_into_one_JavaScript_file_If_declaration_is_true_also_designa_6679\", \"Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output.\"),\n  Specify_a_set_of_entries_that_re_map_imports_to_additional_lookup_locations: diag(6680, 3 /* Message */, \"Specify_a_set_of_entries_that_re_map_imports_to_additional_lookup_locations_6680\", \"Specify a set of entries that re-map imports to additional lookup locations.\"),\n  Specify_a_list_of_language_service_plugins_to_include: diag(6681, 3 /* Message */, \"Specify_a_list_of_language_service_plugins_to_include_6681\", \"Specify a list of language service plugins to include.\"),\n  Disable_erasing_const_enum_declarations_in_generated_code: diag(6682, 3 /* Message */, \"Disable_erasing_const_enum_declarations_in_generated_code_6682\", \"Disable erasing 'const enum' declarations in generated code.\"),\n  Disable_resolving_symlinks_to_their_realpath_This_correlates_to_the_same_flag_in_node: diag(6683, 3 /* Message */, \"Disable_resolving_symlinks_to_their_realpath_This_correlates_to_the_same_flag_in_node_6683\", \"Disable resolving symlinks to their realpath. This correlates to the same flag in node.\"),\n  Disable_wiping_the_console_in_watch_mode: diag(6684, 3 /* Message */, \"Disable_wiping_the_console_in_watch_mode_6684\", \"Disable wiping the console in watch mode.\"),\n  Enable_color_and_formatting_in_TypeScript_s_output_to_make_compiler_errors_easier_to_read: diag(6685, 3 /* Message */, \"Enable_color_and_formatting_in_TypeScript_s_output_to_make_compiler_errors_easier_to_read_6685\", \"Enable color and formatting in TypeScript's output to make compiler errors easier to read.\"),\n  Specify_the_object_invoked_for_createElement_This_only_applies_when_targeting_react_JSX_emit: diag(6686, 3 /* Message */, \"Specify_the_object_invoked_for_createElement_This_only_applies_when_targeting_react_JSX_emit_6686\", \"Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit.\"),\n  Specify_an_array_of_objects_that_specify_paths_for_projects_Used_in_project_references: diag(6687, 3 /* Message */, \"Specify_an_array_of_objects_that_specify_paths_for_projects_Used_in_project_references_6687\", \"Specify an array of objects that specify paths for projects. Used in project references.\"),\n  Disable_emitting_comments: diag(6688, 3 /* Message */, \"Disable_emitting_comments_6688\", \"Disable emitting comments.\"),\n  Enable_importing_json_files: diag(6689, 3 /* Message */, \"Enable_importing_json_files_6689\", \"Enable importing .json files.\"),\n  Specify_the_root_folder_within_your_source_files: diag(6690, 3 /* Message */, \"Specify_the_root_folder_within_your_source_files_6690\", \"Specify the root folder within your source files.\"),\n  Allow_multiple_folders_to_be_treated_as_one_when_resolving_modules: diag(6691, 3 /* Message */, \"Allow_multiple_folders_to_be_treated_as_one_when_resolving_modules_6691\", \"Allow multiple folders to be treated as one when resolving modules.\"),\n  Skip_type_checking_d_ts_files_that_are_included_with_TypeScript: diag(6692, 3 /* Message */, \"Skip_type_checking_d_ts_files_that_are_included_with_TypeScript_6692\", \"Skip type checking .d.ts files that are included with TypeScript.\"),\n  Skip_type_checking_all_d_ts_files: diag(6693, 3 /* Message */, \"Skip_type_checking_all_d_ts_files_6693\", \"Skip type checking all .d.ts files.\"),\n  Create_source_map_files_for_emitted_JavaScript_files: diag(6694, 3 /* Message */, \"Create_source_map_files_for_emitted_JavaScript_files_6694\", \"Create source map files for emitted JavaScript files.\"),\n  Specify_the_root_path_for_debuggers_to_find_the_reference_source_code: diag(6695, 3 /* Message */, \"Specify_the_root_path_for_debuggers_to_find_the_reference_source_code_6695\", \"Specify the root path for debuggers to find the reference source code.\"),\n  Check_that_the_arguments_for_bind_call_and_apply_methods_match_the_original_function: diag(6697, 3 /* Message */, \"Check_that_the_arguments_for_bind_call_and_apply_methods_match_the_original_function_6697\", \"Check that the arguments for 'bind', 'call', and 'apply' methods match the original function.\"),\n  When_assigning_functions_check_to_ensure_parameters_and_the_return_values_are_subtype_compatible: diag(6698, 3 /* Message */, \"When_assigning_functions_check_to_ensure_parameters_and_the_return_values_are_subtype_compatible_6698\", \"When assigning functions, check to ensure parameters and the return values are subtype-compatible.\"),\n  When_type_checking_take_into_account_null_and_undefined: diag(6699, 3 /* Message */, \"When_type_checking_take_into_account_null_and_undefined_6699\", \"When type checking, take into account 'null' and 'undefined'.\"),\n  Check_for_class_properties_that_are_declared_but_not_set_in_the_constructor: diag(6700, 3 /* Message */, \"Check_for_class_properties_that_are_declared_but_not_set_in_the_constructor_6700\", \"Check for class properties that are declared but not set in the constructor.\"),\n  Disable_emitting_declarations_that_have_internal_in_their_JSDoc_comments: diag(6701, 3 /* Message */, \"Disable_emitting_declarations_that_have_internal_in_their_JSDoc_comments_6701\", \"Disable emitting declarations that have '@internal' in their JSDoc comments.\"),\n  Disable_reporting_of_excess_property_errors_during_the_creation_of_object_literals: diag(6702, 3 /* Message */, \"Disable_reporting_of_excess_property_errors_during_the_creation_of_object_literals_6702\", \"Disable reporting of excess property errors during the creation of object literals.\"),\n  Suppress_noImplicitAny_errors_when_indexing_objects_that_lack_index_signatures: diag(6703, 3 /* Message */, \"Suppress_noImplicitAny_errors_when_indexing_objects_that_lack_index_signatures_6703\", \"Suppress 'noImplicitAny' errors when indexing objects that lack index signatures.\"),\n  Synchronously_call_callbacks_and_update_the_state_of_directory_watchers_on_platforms_that_don_t_support_recursive_watching_natively: diag(6704, 3 /* Message */, \"Synchronously_call_callbacks_and_update_the_state_of_directory_watchers_on_platforms_that_don_t_supp_6704\", \"Synchronously call callbacks and update the state of directory watchers on platforms that don`t support recursive watching natively.\"),\n  Set_the_JavaScript_language_version_for_emitted_JavaScript_and_include_compatible_library_declarations: diag(6705, 3 /* Message */, \"Set_the_JavaScript_language_version_for_emitted_JavaScript_and_include_compatible_library_declaratio_6705\", \"Set the JavaScript language version for emitted JavaScript and include compatible library declarations.\"),\n  Log_paths_used_during_the_moduleResolution_process: diag(6706, 3 /* Message */, \"Log_paths_used_during_the_moduleResolution_process_6706\", \"Log paths used during the 'moduleResolution' process.\"),\n  Specify_the_path_to_tsbuildinfo_incremental_compilation_file: diag(6707, 3 /* Message */, \"Specify_the_path_to_tsbuildinfo_incremental_compilation_file_6707\", \"Specify the path to .tsbuildinfo incremental compilation file.\"),\n  Specify_options_for_automatic_acquisition_of_declaration_files: diag(6709, 3 /* Message */, \"Specify_options_for_automatic_acquisition_of_declaration_files_6709\", \"Specify options for automatic acquisition of declaration files.\"),\n  Specify_multiple_folders_that_act_like_Slashnode_modules_Slash_types: diag(6710, 3 /* Message */, \"Specify_multiple_folders_that_act_like_Slashnode_modules_Slash_types_6710\", \"Specify multiple folders that act like './node_modules/@types'.\"),\n  Specify_type_package_names_to_be_included_without_being_referenced_in_a_source_file: diag(6711, 3 /* Message */, \"Specify_type_package_names_to_be_included_without_being_referenced_in_a_source_file_6711\", \"Specify type package names to be included without being referenced in a source file.\"),\n  Emit_ECMAScript_standard_compliant_class_fields: diag(6712, 3 /* Message */, \"Emit_ECMAScript_standard_compliant_class_fields_6712\", \"Emit ECMAScript-standard-compliant class fields.\"),\n  Enable_verbose_logging: diag(6713, 3 /* Message */, \"Enable_verbose_logging_6713\", \"Enable verbose logging.\"),\n  Specify_how_directories_are_watched_on_systems_that_lack_recursive_file_watching_functionality: diag(6714, 3 /* Message */, \"Specify_how_directories_are_watched_on_systems_that_lack_recursive_file_watching_functionality_6714\", \"Specify how directories are watched on systems that lack recursive file-watching functionality.\"),\n  Specify_how_the_TypeScript_watch_mode_works: diag(6715, 3 /* Message */, \"Specify_how_the_TypeScript_watch_mode_works_6715\", \"Specify how the TypeScript watch mode works.\"),\n  Require_undeclared_properties_from_index_signatures_to_use_element_accesses: diag(6717, 3 /* Message */, \"Require_undeclared_properties_from_index_signatures_to_use_element_accesses_6717\", \"Require undeclared properties from index signatures to use element accesses.\"),\n  Specify_emit_Slashchecking_behavior_for_imports_that_are_only_used_for_types: diag(6718, 3 /* Message */, \"Specify_emit_Slashchecking_behavior_for_imports_that_are_only_used_for_types_6718\", \"Specify emit/checking behavior for imports that are only used for types.\"),\n  Require_sufficient_annotation_on_exports_so_other_tools_can_trivially_generate_declaration_files: diag(6719, 3 /* Message */, \"Require_sufficient_annotation_on_exports_so_other_tools_can_trivially_generate_declaration_files_6719\", \"Require sufficient annotation on exports so other tools can trivially generate declaration files.\"),\n  Built_in_iterators_are_instantiated_with_a_TReturn_type_of_undefined_instead_of_any: diag(6720, 3 /* Message */, \"Built_in_iterators_are_instantiated_with_a_TReturn_type_of_undefined_instead_of_any_6720\", \"Built-in iterators are instantiated with a 'TReturn' type of 'undefined' instead of 'any'.\"),\n  Do_not_allow_runtime_constructs_that_are_not_part_of_ECMAScript: diag(6721, 3 /* Message */, \"Do_not_allow_runtime_constructs_that_are_not_part_of_ECMAScript_6721\", \"Do not allow runtime constructs that are not part of ECMAScript.\"),\n  Default_catch_clause_variables_as_unknown_instead_of_any: diag(6803, 3 /* Message */, \"Default_catch_clause_variables_as_unknown_instead_of_any_6803\", \"Default catch clause variables as 'unknown' instead of 'any'.\"),\n  Do_not_transform_or_elide_any_imports_or_exports_not_marked_as_type_only_ensuring_they_are_written_in_the_output_file_s_format_based_on_the_module_setting: diag(6804, 3 /* Message */, \"Do_not_transform_or_elide_any_imports_or_exports_not_marked_as_type_only_ensuring_they_are_written_i_6804\", \"Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting.\"),\n  Disable_full_type_checking_only_critical_parse_and_emit_errors_will_be_reported: diag(6805, 3 /* Message */, \"Disable_full_type_checking_only_critical_parse_and_emit_errors_will_be_reported_6805\", \"Disable full type checking (only critical parse and emit errors will be reported).\"),\n  Check_side_effect_imports: diag(6806, 3 /* Message */, \"Check_side_effect_imports_6806\", \"Check side effect imports.\"),\n  This_operation_can_be_simplified_This_shift_is_identical_to_0_1_2: diag(6807, 1 /* Error */, \"This_operation_can_be_simplified_This_shift_is_identical_to_0_1_2_6807\", \"This operation can be simplified. This shift is identical to `{0} {1} {2}`.\"),\n  Enable_lib_replacement: diag(6808, 3 /* Message */, \"Enable_lib_replacement_6808\", \"Enable lib replacement.\"),\n  one_of_Colon: diag(6900, 3 /* Message */, \"one_of_Colon_6900\", \"one of:\"),\n  one_or_more_Colon: diag(6901, 3 /* Message */, \"one_or_more_Colon_6901\", \"one or more:\"),\n  type_Colon: diag(6902, 3 /* Message */, \"type_Colon_6902\", \"type:\"),\n  default_Colon: diag(6903, 3 /* Message */, \"default_Colon_6903\", \"default:\"),\n  module_system_or_esModuleInterop: diag(6904, 3 /* Message */, \"module_system_or_esModuleInterop_6904\", 'module === \"system\" or esModuleInterop'),\n  false_unless_strict_is_set: diag(6905, 3 /* Message */, \"false_unless_strict_is_set_6905\", \"`false`, unless `strict` is set\"),\n  false_unless_composite_is_set: diag(6906, 3 /* Message */, \"false_unless_composite_is_set_6906\", \"`false`, unless `composite` is set\"),\n  node_modules_bower_components_jspm_packages_plus_the_value_of_outDir_if_one_is_specified: diag(6907, 3 /* Message */, \"node_modules_bower_components_jspm_packages_plus_the_value_of_outDir_if_one_is_specified_6907\", '`[\"node_modules\", \"bower_components\", \"jspm_packages\"]`, plus the value of `outDir` if one is specified.'),\n  if_files_is_specified_otherwise_Asterisk_Asterisk_Slash_Asterisk: diag(6908, 3 /* Message */, \"if_files_is_specified_otherwise_Asterisk_Asterisk_Slash_Asterisk_6908\", '`[]` if `files` is specified, otherwise `[\"**/*\"]`'),\n  true_if_composite_false_otherwise: diag(6909, 3 /* Message */, \"true_if_composite_false_otherwise_6909\", \"`true` if `composite`, `false` otherwise\"),\n  module_AMD_or_UMD_or_System_or_ES6_then_Classic_Otherwise_Node: diag(69010, 3 /* Message */, \"module_AMD_or_UMD_or_System_or_ES6_then_Classic_Otherwise_Node_69010\", \"module === `AMD` or `UMD` or `System` or `ES6`, then `Classic`, Otherwise `Node`\"),\n  Computed_from_the_list_of_input_files: diag(6911, 3 /* Message */, \"Computed_from_the_list_of_input_files_6911\", \"Computed from the list of input files\"),\n  Platform_specific: diag(6912, 3 /* Message */, \"Platform_specific_6912\", \"Platform specific\"),\n  You_can_learn_about_all_of_the_compiler_options_at_0: diag(6913, 3 /* Message */, \"You_can_learn_about_all_of_the_compiler_options_at_0_6913\", \"You can learn about all of the compiler options at {0}\"),\n  Including_watch_w_will_start_watching_the_current_project_for_the_file_changes_Once_set_you_can_config_watch_mode_with_Colon: diag(6914, 3 /* Message */, \"Including_watch_w_will_start_watching_the_current_project_for_the_file_changes_Once_set_you_can_conf_6914\", \"Including --watch, -w will start watching the current project for the file changes. Once set, you can config watch mode with:\"),\n  Using_build_b_will_make_tsc_behave_more_like_a_build_orchestrator_than_a_compiler_This_is_used_to_trigger_building_composite_projects_which_you_can_learn_more_about_at_0: diag(6915, 3 /* Message */, \"Using_build_b_will_make_tsc_behave_more_like_a_build_orchestrator_than_a_compiler_This_is_used_to_tr_6915\", \"Using --build, -b will make tsc behave more like a build orchestrator than a compiler. This is used to trigger building composite projects which you can learn more about at {0}\"),\n  COMMON_COMMANDS: diag(6916, 3 /* Message */, \"COMMON_COMMANDS_6916\", \"COMMON COMMANDS\"),\n  ALL_COMPILER_OPTIONS: diag(6917, 3 /* Message */, \"ALL_COMPILER_OPTIONS_6917\", \"ALL COMPILER OPTIONS\"),\n  WATCH_OPTIONS: diag(6918, 3 /* Message */, \"WATCH_OPTIONS_6918\", \"WATCH OPTIONS\"),\n  BUILD_OPTIONS: diag(6919, 3 /* Message */, \"BUILD_OPTIONS_6919\", \"BUILD OPTIONS\"),\n  COMMON_COMPILER_OPTIONS: diag(6920, 3 /* Message */, \"COMMON_COMPILER_OPTIONS_6920\", \"COMMON COMPILER OPTIONS\"),\n  COMMAND_LINE_FLAGS: diag(6921, 3 /* Message */, \"COMMAND_LINE_FLAGS_6921\", \"COMMAND LINE FLAGS\"),\n  tsc_Colon_The_TypeScript_Compiler: diag(6922, 3 /* Message */, \"tsc_Colon_The_TypeScript_Compiler_6922\", \"tsc: The TypeScript Compiler\"),\n  Compiles_the_current_project_tsconfig_json_in_the_working_directory: diag(6923, 3 /* Message */, \"Compiles_the_current_project_tsconfig_json_in_the_working_directory_6923\", \"Compiles the current project (tsconfig.json in the working directory.)\"),\n  Ignoring_tsconfig_json_compiles_the_specified_files_with_default_compiler_options: diag(6924, 3 /* Message */, \"Ignoring_tsconfig_json_compiles_the_specified_files_with_default_compiler_options_6924\", \"Ignoring tsconfig.json, compiles the specified files with default compiler options.\"),\n  Build_a_composite_project_in_the_working_directory: diag(6925, 3 /* Message */, \"Build_a_composite_project_in_the_working_directory_6925\", \"Build a composite project in the working directory.\"),\n  Creates_a_tsconfig_json_with_the_recommended_settings_in_the_working_directory: diag(6926, 3 /* Message */, \"Creates_a_tsconfig_json_with_the_recommended_settings_in_the_working_directory_6926\", \"Creates a tsconfig.json with the recommended settings in the working directory.\"),\n  Compiles_the_TypeScript_project_located_at_the_specified_path: diag(6927, 3 /* Message */, \"Compiles_the_TypeScript_project_located_at_the_specified_path_6927\", \"Compiles the TypeScript project located at the specified path.\"),\n  An_expanded_version_of_this_information_showing_all_possible_compiler_options: diag(6928, 3 /* Message */, \"An_expanded_version_of_this_information_showing_all_possible_compiler_options_6928\", \"An expanded version of this information, showing all possible compiler options\"),\n  Compiles_the_current_project_with_additional_settings: diag(6929, 3 /* Message */, \"Compiles_the_current_project_with_additional_settings_6929\", \"Compiles the current project, with additional settings.\"),\n  true_for_ES2022_and_above_including_ESNext: diag(6930, 3 /* Message */, \"true_for_ES2022_and_above_including_ESNext_6930\", \"`true` for ES2022 and above, including ESNext.\"),\n  List_of_file_name_suffixes_to_search_when_resolving_a_module: diag(6931, 1 /* Error */, \"List_of_file_name_suffixes_to_search_when_resolving_a_module_6931\", \"List of file name suffixes to search when resolving a module.\"),\n  Variable_0_implicitly_has_an_1_type: diag(7005, 1 /* Error */, \"Variable_0_implicitly_has_an_1_type_7005\", \"Variable '{0}' implicitly has an '{1}' type.\"),\n  Parameter_0_implicitly_has_an_1_type: diag(7006, 1 /* Error */, \"Parameter_0_implicitly_has_an_1_type_7006\", \"Parameter '{0}' implicitly has an '{1}' type.\"),\n  Member_0_implicitly_has_an_1_type: diag(7008, 1 /* Error */, \"Member_0_implicitly_has_an_1_type_7008\", \"Member '{0}' implicitly has an '{1}' type.\"),\n  new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type: diag(7009, 1 /* Error */, \"new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type_7009\", \"'new' expression, whose target lacks a construct signature, implicitly has an 'any' type.\"),\n  _0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type: diag(7010, 1 /* Error */, \"_0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type_7010\", \"'{0}', which lacks return-type annotation, implicitly has an '{1}' return type.\"),\n  Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type: diag(7011, 1 /* Error */, \"Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type_7011\", \"Function expression, which lacks return-type annotation, implicitly has an '{0}' return type.\"),\n  This_overload_implicitly_returns_the_type_0_because_it_lacks_a_return_type_annotation: diag(7012, 1 /* Error */, \"This_overload_implicitly_returns_the_type_0_because_it_lacks_a_return_type_annotation_7012\", \"This overload implicitly returns the type '{0}' because it lacks a return type annotation.\"),\n  Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type: diag(7013, 1 /* Error */, \"Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type_7013\", \"Construct signature, which lacks return-type annotation, implicitly has an 'any' return type.\"),\n  Function_type_which_lacks_return_type_annotation_implicitly_has_an_0_return_type: diag(7014, 1 /* Error */, \"Function_type_which_lacks_return_type_annotation_implicitly_has_an_0_return_type_7014\", \"Function type, which lacks return-type annotation, implicitly has an '{0}' return type.\"),\n  Element_implicitly_has_an_any_type_because_index_expression_is_not_of_type_number: diag(7015, 1 /* Error */, \"Element_implicitly_has_an_any_type_because_index_expression_is_not_of_type_number_7015\", \"Element implicitly has an 'any' type because index expression is not of type 'number'.\"),\n  Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type: diag(7016, 1 /* Error */, \"Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type_7016\", \"Could not find a declaration file for module '{0}'. '{1}' implicitly has an 'any' type.\"),\n  Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature: diag(7017, 1 /* Error */, \"Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_7017\", \"Element implicitly has an 'any' type because type '{0}' has no index signature.\"),\n  Object_literal_s_property_0_implicitly_has_an_1_type: diag(7018, 1 /* Error */, \"Object_literal_s_property_0_implicitly_has_an_1_type_7018\", \"Object literal's property '{0}' implicitly has an '{1}' type.\"),\n  Rest_parameter_0_implicitly_has_an_any_type: diag(7019, 1 /* Error */, \"Rest_parameter_0_implicitly_has_an_any_type_7019\", \"Rest parameter '{0}' implicitly has an 'any[]' type.\"),\n  Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type: diag(7020, 1 /* Error */, \"Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type_7020\", \"Call signature, which lacks return-type annotation, implicitly has an 'any' return type.\"),\n  _0_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_and_is_referenced_directly_or_indirectly_in_its_own_initializer: diag(7022, 1 /* Error */, \"_0_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_and_is_referenced_directly_or__7022\", \"'{0}' implicitly has type 'any' because it does not have a type annotation and is referenced directly or indirectly in its own initializer.\"),\n  _0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions: diag(7023, 1 /* Error */, \"_0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_reference_7023\", \"'{0}' implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions.\"),\n  Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions: diag(7024, 1 /* Error */, \"Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_ref_7024\", \"Function implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions.\"),\n  Generator_implicitly_has_yield_type_0_Consider_supplying_a_return_type_annotation: diag(7025, 1 /* Error */, \"Generator_implicitly_has_yield_type_0_Consider_supplying_a_return_type_annotation_7025\", \"Generator implicitly has yield type '{0}'. Consider supplying a return type annotation.\"),\n  JSX_element_implicitly_has_type_any_because_no_interface_JSX_0_exists: diag(7026, 1 /* Error */, \"JSX_element_implicitly_has_type_any_because_no_interface_JSX_0_exists_7026\", \"JSX element implicitly has type 'any' because no interface 'JSX.{0}' exists.\"),\n  Unreachable_code_detected: diag(\n    7027,\n    1 /* Error */,\n    \"Unreachable_code_detected_7027\",\n    \"Unreachable code detected.\",\n    /*reportsUnnecessary*/\n    true\n  ),\n  Unused_label: diag(\n    7028,\n    1 /* Error */,\n    \"Unused_label_7028\",\n    \"Unused label.\",\n    /*reportsUnnecessary*/\n    true\n  ),\n  Fallthrough_case_in_switch: diag(7029, 1 /* Error */, \"Fallthrough_case_in_switch_7029\", \"Fallthrough case in switch.\"),\n  Not_all_code_paths_return_a_value: diag(7030, 1 /* Error */, \"Not_all_code_paths_return_a_value_7030\", \"Not all code paths return a value.\"),\n  Binding_element_0_implicitly_has_an_1_type: diag(7031, 1 /* Error */, \"Binding_element_0_implicitly_has_an_1_type_7031\", \"Binding element '{0}' implicitly has an '{1}' type.\"),\n  Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation: diag(7032, 1 /* Error */, \"Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation_7032\", \"Property '{0}' implicitly has type 'any', because its set accessor lacks a parameter type annotation.\"),\n  Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation: diag(7033, 1 /* Error */, \"Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation_7033\", \"Property '{0}' implicitly has type 'any', because its get accessor lacks a return type annotation.\"),\n  Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined: diag(7034, 1 /* Error */, \"Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined_7034\", \"Variable '{0}' implicitly has type '{1}' in some locations where its type cannot be determined.\"),\n  Try_npm_i_save_dev_types_Slash_1_if_it_exists_or_add_a_new_declaration_d_ts_file_containing_declare_module_0: diag(7035, 1 /* Error */, \"Try_npm_i_save_dev_types_Slash_1_if_it_exists_or_add_a_new_declaration_d_ts_file_containing_declare__7035\", \"Try `npm i --save-dev @types/{1}` if it exists or add a new declaration (.d.ts) file containing `declare module '{0}';`\"),\n  Dynamic_import_s_specifier_must_be_of_type_string_but_here_has_type_0: diag(7036, 1 /* Error */, \"Dynamic_import_s_specifier_must_be_of_type_string_but_here_has_type_0_7036\", \"Dynamic import's specifier must be of type 'string', but here has type '{0}'.\"),\n  Enables_emit_interoperability_between_CommonJS_and_ES_Modules_via_creation_of_namespace_objects_for_all_imports_Implies_allowSyntheticDefaultImports: diag(7037, 3 /* Message */, \"Enables_emit_interoperability_between_CommonJS_and_ES_Modules_via_creation_of_namespace_objects_for__7037\", \"Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'.\"),\n  Type_originates_at_this_import_A_namespace_style_import_cannot_be_called_or_constructed_and_will_cause_a_failure_at_runtime_Consider_using_a_default_import_or_import_require_here_instead: diag(7038, 3 /* Message */, \"Type_originates_at_this_import_A_namespace_style_import_cannot_be_called_or_constructed_and_will_cau_7038\", \"Type originates at this import. A namespace-style import cannot be called or constructed, and will cause a failure at runtime. Consider using a default import or import require here instead.\"),\n  Mapped_object_type_implicitly_has_an_any_template_type: diag(7039, 1 /* Error */, \"Mapped_object_type_implicitly_has_an_any_template_type_7039\", \"Mapped object type implicitly has an 'any' template type.\"),\n  If_the_0_package_actually_exposes_this_module_consider_sending_a_pull_request_to_amend_https_Colon_Slash_Slashgithub_com_SlashDefinitelyTyped_SlashDefinitelyTyped_Slashtree_Slashmaster_Slashtypes_Slash_1: diag(7040, 1 /* Error */, \"If_the_0_package_actually_exposes_this_module_consider_sending_a_pull_request_to_amend_https_Colon_S_7040\", \"If the '{0}' package actually exposes this module, consider sending a pull request to amend 'https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/{1}'\"),\n  The_containing_arrow_function_captures_the_global_value_of_this: diag(7041, 1 /* Error */, \"The_containing_arrow_function_captures_the_global_value_of_this_7041\", \"The containing arrow function captures the global value of 'this'.\"),\n  Module_0_was_resolved_to_1_but_resolveJsonModule_is_not_used: diag(7042, 1 /* Error */, \"Module_0_was_resolved_to_1_but_resolveJsonModule_is_not_used_7042\", \"Module '{0}' was resolved to '{1}', but '--resolveJsonModule' is not used.\"),\n  Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage: diag(7043, 2 /* Suggestion */, \"Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage_7043\", \"Variable '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage.\"),\n  Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage: diag(7044, 2 /* Suggestion */, \"Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage_7044\", \"Parameter '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage.\"),\n  Member_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage: diag(7045, 2 /* Suggestion */, \"Member_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage_7045\", \"Member '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage.\"),\n  Variable_0_implicitly_has_type_1_in_some_locations_but_a_better_type_may_be_inferred_from_usage: diag(7046, 2 /* Suggestion */, \"Variable_0_implicitly_has_type_1_in_some_locations_but_a_better_type_may_be_inferred_from_usage_7046\", \"Variable '{0}' implicitly has type '{1}' in some locations, but a better type may be inferred from usage.\"),\n  Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage: diag(7047, 2 /* Suggestion */, \"Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage_7047\", \"Rest parameter '{0}' implicitly has an 'any[]' type, but a better type may be inferred from usage.\"),\n  Property_0_implicitly_has_type_any_but_a_better_type_for_its_get_accessor_may_be_inferred_from_usage: diag(7048, 2 /* Suggestion */, \"Property_0_implicitly_has_type_any_but_a_better_type_for_its_get_accessor_may_be_inferred_from_usage_7048\", \"Property '{0}' implicitly has type 'any', but a better type for its get accessor may be inferred from usage.\"),\n  Property_0_implicitly_has_type_any_but_a_better_type_for_its_set_accessor_may_be_inferred_from_usage: diag(7049, 2 /* Suggestion */, \"Property_0_implicitly_has_type_any_but_a_better_type_for_its_set_accessor_may_be_inferred_from_usage_7049\", \"Property '{0}' implicitly has type 'any', but a better type for its set accessor may be inferred from usage.\"),\n  _0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage: diag(7050, 2 /* Suggestion */, \"_0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage_7050\", \"'{0}' implicitly has an '{1}' return type, but a better type may be inferred from usage.\"),\n  Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1: diag(7051, 1 /* Error */, \"Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1_7051\", \"Parameter has a name but no type. Did you mean '{0}: {1}'?\"),\n  Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_Did_you_mean_to_call_1: diag(7052, 1 /* Error */, \"Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_Did_you_mean_to_call_1_7052\", \"Element implicitly has an 'any' type because type '{0}' has no index signature. Did you mean to call '{1}'?\"),\n  Element_implicitly_has_an_any_type_because_expression_of_type_0_can_t_be_used_to_index_type_1: diag(7053, 1 /* Error */, \"Element_implicitly_has_an_any_type_because_expression_of_type_0_can_t_be_used_to_index_type_1_7053\", \"Element implicitly has an 'any' type because expression of type '{0}' can't be used to index type '{1}'.\"),\n  No_index_signature_with_a_parameter_of_type_0_was_found_on_type_1: diag(7054, 1 /* Error */, \"No_index_signature_with_a_parameter_of_type_0_was_found_on_type_1_7054\", \"No index signature with a parameter of type '{0}' was found on type '{1}'.\"),\n  _0_which_lacks_return_type_annotation_implicitly_has_an_1_yield_type: diag(7055, 1 /* Error */, \"_0_which_lacks_return_type_annotation_implicitly_has_an_1_yield_type_7055\", \"'{0}', which lacks return-type annotation, implicitly has an '{1}' yield type.\"),\n  The_inferred_type_of_this_node_exceeds_the_maximum_length_the_compiler_will_serialize_An_explicit_type_annotation_is_needed: diag(7056, 1 /* Error */, \"The_inferred_type_of_this_node_exceeds_the_maximum_length_the_compiler_will_serialize_An_explicit_ty_7056\", \"The inferred type of this node exceeds the maximum length the compiler will serialize. An explicit type annotation is needed.\"),\n  yield_expression_implicitly_results_in_an_any_type_because_its_containing_generator_lacks_a_return_type_annotation: diag(7057, 1 /* Error */, \"yield_expression_implicitly_results_in_an_any_type_because_its_containing_generator_lacks_a_return_t_7057\", \"'yield' expression implicitly results in an 'any' type because its containing generator lacks a return-type annotation.\"),\n  If_the_0_package_actually_exposes_this_module_try_adding_a_new_declaration_d_ts_file_containing_declare_module_1: diag(7058, 1 /* Error */, \"If_the_0_package_actually_exposes_this_module_try_adding_a_new_declaration_d_ts_file_containing_decl_7058\", \"If the '{0}' package actually exposes this module, try adding a new declaration (.d.ts) file containing `declare module '{1}';`\"),\n  This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Use_an_as_expression_instead: diag(7059, 1 /* Error */, \"This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Use_an_as_expression_instead_7059\", \"This syntax is reserved in files with the .mts or .cts extension. Use an `as` expression instead.\"),\n  This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Add_a_trailing_comma_or_explicit_constraint: diag(7060, 1 /* Error */, \"This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Add_a_trailing_comma_or_explicit_cons_7060\", \"This syntax is reserved in files with the .mts or .cts extension. Add a trailing comma or explicit constraint.\"),\n  A_mapped_type_may_not_declare_properties_or_methods: diag(7061, 1 /* Error */, \"A_mapped_type_may_not_declare_properties_or_methods_7061\", \"A mapped type may not declare properties or methods.\"),\n  You_cannot_rename_this_element: diag(8e3, 1 /* Error */, \"You_cannot_rename_this_element_8000\", \"You cannot rename this element.\"),\n  You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library: diag(8001, 1 /* Error */, \"You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library_8001\", \"You cannot rename elements that are defined in the standard TypeScript library.\"),\n  import_can_only_be_used_in_TypeScript_files: diag(8002, 1 /* Error */, \"import_can_only_be_used_in_TypeScript_files_8002\", \"'import ... =' can only be used in TypeScript files.\"),\n  export_can_only_be_used_in_TypeScript_files: diag(8003, 1 /* Error */, \"export_can_only_be_used_in_TypeScript_files_8003\", \"'export =' can only be used in TypeScript files.\"),\n  Type_parameter_declarations_can_only_be_used_in_TypeScript_files: diag(8004, 1 /* Error */, \"Type_parameter_declarations_can_only_be_used_in_TypeScript_files_8004\", \"Type parameter declarations can only be used in TypeScript files.\"),\n  implements_clauses_can_only_be_used_in_TypeScript_files: diag(8005, 1 /* Error */, \"implements_clauses_can_only_be_used_in_TypeScript_files_8005\", \"'implements' clauses can only be used in TypeScript files.\"),\n  _0_declarations_can_only_be_used_in_TypeScript_files: diag(8006, 1 /* Error */, \"_0_declarations_can_only_be_used_in_TypeScript_files_8006\", \"'{0}' declarations can only be used in TypeScript files.\"),\n  Type_aliases_can_only_be_used_in_TypeScript_files: diag(8008, 1 /* Error */, \"Type_aliases_can_only_be_used_in_TypeScript_files_8008\", \"Type aliases can only be used in TypeScript files.\"),\n  The_0_modifier_can_only_be_used_in_TypeScript_files: diag(8009, 1 /* Error */, \"The_0_modifier_can_only_be_used_in_TypeScript_files_8009\", \"The '{0}' modifier can only be used in TypeScript files.\"),\n  Type_annotations_can_only_be_used_in_TypeScript_files: diag(8010, 1 /* Error */, \"Type_annotations_can_only_be_used_in_TypeScript_files_8010\", \"Type annotations can only be used in TypeScript files.\"),\n  Type_arguments_can_only_be_used_in_TypeScript_files: diag(8011, 1 /* Error */, \"Type_arguments_can_only_be_used_in_TypeScript_files_8011\", \"Type arguments can only be used in TypeScript files.\"),\n  Parameter_modifiers_can_only_be_used_in_TypeScript_files: diag(8012, 1 /* Error */, \"Parameter_modifiers_can_only_be_used_in_TypeScript_files_8012\", \"Parameter modifiers can only be used in TypeScript files.\"),\n  Non_null_assertions_can_only_be_used_in_TypeScript_files: diag(8013, 1 /* Error */, \"Non_null_assertions_can_only_be_used_in_TypeScript_files_8013\", \"Non-null assertions can only be used in TypeScript files.\"),\n  Type_assertion_expressions_can_only_be_used_in_TypeScript_files: diag(8016, 1 /* Error */, \"Type_assertion_expressions_can_only_be_used_in_TypeScript_files_8016\", \"Type assertion expressions can only be used in TypeScript files.\"),\n  Signature_declarations_can_only_be_used_in_TypeScript_files: diag(8017, 1 /* Error */, \"Signature_declarations_can_only_be_used_in_TypeScript_files_8017\", \"Signature declarations can only be used in TypeScript files.\"),\n  Report_errors_in_js_files: diag(8019, 3 /* Message */, \"Report_errors_in_js_files_8019\", \"Report errors in .js files.\"),\n  JSDoc_types_can_only_be_used_inside_documentation_comments: diag(8020, 1 /* Error */, \"JSDoc_types_can_only_be_used_inside_documentation_comments_8020\", \"JSDoc types can only be used inside documentation comments.\"),\n  JSDoc_typedef_tag_should_either_have_a_type_annotation_or_be_followed_by_property_or_member_tags: diag(8021, 1 /* Error */, \"JSDoc_typedef_tag_should_either_have_a_type_annotation_or_be_followed_by_property_or_member_tags_8021\", \"JSDoc '@typedef' tag should either have a type annotation or be followed by '@property' or '@member' tags.\"),\n  JSDoc_0_is_not_attached_to_a_class: diag(8022, 1 /* Error */, \"JSDoc_0_is_not_attached_to_a_class_8022\", \"JSDoc '@{0}' is not attached to a class.\"),\n  JSDoc_0_1_does_not_match_the_extends_2_clause: diag(8023, 1 /* Error */, \"JSDoc_0_1_does_not_match_the_extends_2_clause_8023\", \"JSDoc '@{0} {1}' does not match the 'extends {2}' clause.\"),\n  JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name: diag(8024, 1 /* Error */, \"JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_8024\", \"JSDoc '@param' tag has name '{0}', but there is no parameter with that name.\"),\n  Class_declarations_cannot_have_more_than_one_augments_or_extends_tag: diag(8025, 1 /* Error */, \"Class_declarations_cannot_have_more_than_one_augments_or_extends_tag_8025\", \"Class declarations cannot have more than one '@augments' or '@extends' tag.\"),\n  Expected_0_type_arguments_provide_these_with_an_extends_tag: diag(8026, 1 /* Error */, \"Expected_0_type_arguments_provide_these_with_an_extends_tag_8026\", \"Expected {0} type arguments; provide these with an '@extends' tag.\"),\n  Expected_0_1_type_arguments_provide_these_with_an_extends_tag: diag(8027, 1 /* Error */, \"Expected_0_1_type_arguments_provide_these_with_an_extends_tag_8027\", \"Expected {0}-{1} type arguments; provide these with an '@extends' tag.\"),\n  JSDoc_may_only_appear_in_the_last_parameter_of_a_signature: diag(8028, 1 /* Error */, \"JSDoc_may_only_appear_in_the_last_parameter_of_a_signature_8028\", \"JSDoc '...' may only appear in the last parameter of a signature.\"),\n  JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_It_would_match_arguments_if_it_had_an_array_type: diag(8029, 1 /* Error */, \"JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_It_would_match_arguments_if_it_h_8029\", \"JSDoc '@param' tag has name '{0}', but there is no parameter with that name. It would match 'arguments' if it had an array type.\"),\n  The_type_of_a_function_declaration_must_match_the_function_s_signature: diag(8030, 1 /* Error */, \"The_type_of_a_function_declaration_must_match_the_function_s_signature_8030\", \"The type of a function declaration must match the function's signature.\"),\n  You_cannot_rename_a_module_via_a_global_import: diag(8031, 1 /* Error */, \"You_cannot_rename_a_module_via_a_global_import_8031\", \"You cannot rename a module via a global import.\"),\n  Qualified_name_0_is_not_allowed_without_a_leading_param_object_1: diag(8032, 1 /* Error */, \"Qualified_name_0_is_not_allowed_without_a_leading_param_object_1_8032\", \"Qualified name '{0}' is not allowed without a leading '@param {object} {1}'.\"),\n  A_JSDoc_typedef_comment_may_not_contain_multiple_type_tags: diag(8033, 1 /* Error */, \"A_JSDoc_typedef_comment_may_not_contain_multiple_type_tags_8033\", \"A JSDoc '@typedef' comment may not contain multiple '@type' tags.\"),\n  The_tag_was_first_specified_here: diag(8034, 1 /* Error */, \"The_tag_was_first_specified_here_8034\", \"The tag was first specified here.\"),\n  You_cannot_rename_elements_that_are_defined_in_a_node_modules_folder: diag(8035, 1 /* Error */, \"You_cannot_rename_elements_that_are_defined_in_a_node_modules_folder_8035\", \"You cannot rename elements that are defined in a 'node_modules' folder.\"),\n  You_cannot_rename_elements_that_are_defined_in_another_node_modules_folder: diag(8036, 1 /* Error */, \"You_cannot_rename_elements_that_are_defined_in_another_node_modules_folder_8036\", \"You cannot rename elements that are defined in another 'node_modules' folder.\"),\n  Type_satisfaction_expressions_can_only_be_used_in_TypeScript_files: diag(8037, 1 /* Error */, \"Type_satisfaction_expressions_can_only_be_used_in_TypeScript_files_8037\", \"Type satisfaction expressions can only be used in TypeScript files.\"),\n  Decorators_may_not_appear_after_export_or_export_default_if_they_also_appear_before_export: diag(8038, 1 /* Error */, \"Decorators_may_not_appear_after_export_or_export_default_if_they_also_appear_before_export_8038\", \"Decorators may not appear after 'export' or 'export default' if they also appear before 'export'.\"),\n  A_JSDoc_template_tag_may_not_follow_a_typedef_callback_or_overload_tag: diag(8039, 1 /* Error */, \"A_JSDoc_template_tag_may_not_follow_a_typedef_callback_or_overload_tag_8039\", \"A JSDoc '@template' tag may not follow a '@typedef', '@callback', or '@overload' tag\"),\n  Declaration_emit_for_this_file_requires_using_private_name_0_An_explicit_type_annotation_may_unblock_declaration_emit: diag(9005, 1 /* Error */, \"Declaration_emit_for_this_file_requires_using_private_name_0_An_explicit_type_annotation_may_unblock_9005\", \"Declaration emit for this file requires using private name '{0}'. An explicit type annotation may unblock declaration emit.\"),\n  Declaration_emit_for_this_file_requires_using_private_name_0_from_module_1_An_explicit_type_annotation_may_unblock_declaration_emit: diag(9006, 1 /* Error */, \"Declaration_emit_for_this_file_requires_using_private_name_0_from_module_1_An_explicit_type_annotati_9006\", \"Declaration emit for this file requires using private name '{0}' from module '{1}'. An explicit type annotation may unblock declaration emit.\"),\n  Function_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations: diag(9007, 1 /* Error */, \"Function_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations_9007\", \"Function must have an explicit return type annotation with --isolatedDeclarations.\"),\n  Method_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations: diag(9008, 1 /* Error */, \"Method_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations_9008\", \"Method must have an explicit return type annotation with --isolatedDeclarations.\"),\n  At_least_one_accessor_must_have_an_explicit_type_annotation_with_isolatedDeclarations: diag(9009, 1 /* Error */, \"At_least_one_accessor_must_have_an_explicit_type_annotation_with_isolatedDeclarations_9009\", \"At least one accessor must have an explicit type annotation with --isolatedDeclarations.\"),\n  Variable_must_have_an_explicit_type_annotation_with_isolatedDeclarations: diag(9010, 1 /* Error */, \"Variable_must_have_an_explicit_type_annotation_with_isolatedDeclarations_9010\", \"Variable must have an explicit type annotation with --isolatedDeclarations.\"),\n  Parameter_must_have_an_explicit_type_annotation_with_isolatedDeclarations: diag(9011, 1 /* Error */, \"Parameter_must_have_an_explicit_type_annotation_with_isolatedDeclarations_9011\", \"Parameter must have an explicit type annotation with --isolatedDeclarations.\"),\n  Property_must_have_an_explicit_type_annotation_with_isolatedDeclarations: diag(9012, 1 /* Error */, \"Property_must_have_an_explicit_type_annotation_with_isolatedDeclarations_9012\", \"Property must have an explicit type annotation with --isolatedDeclarations.\"),\n  Expression_type_can_t_be_inferred_with_isolatedDeclarations: diag(9013, 1 /* Error */, \"Expression_type_can_t_be_inferred_with_isolatedDeclarations_9013\", \"Expression type can't be inferred with --isolatedDeclarations.\"),\n  Computed_properties_must_be_number_or_string_literals_variables_or_dotted_expressions_with_isolatedDeclarations: diag(9014, 1 /* Error */, \"Computed_properties_must_be_number_or_string_literals_variables_or_dotted_expressions_with_isolatedD_9014\", \"Computed properties must be number or string literals, variables or dotted expressions with --isolatedDeclarations.\"),\n  Objects_that_contain_spread_assignments_can_t_be_inferred_with_isolatedDeclarations: diag(9015, 1 /* Error */, \"Objects_that_contain_spread_assignments_can_t_be_inferred_with_isolatedDeclarations_9015\", \"Objects that contain spread assignments can't be inferred with --isolatedDeclarations.\"),\n  Objects_that_contain_shorthand_properties_can_t_be_inferred_with_isolatedDeclarations: diag(9016, 1 /* Error */, \"Objects_that_contain_shorthand_properties_can_t_be_inferred_with_isolatedDeclarations_9016\", \"Objects that contain shorthand properties can't be inferred with --isolatedDeclarations.\"),\n  Only_const_arrays_can_be_inferred_with_isolatedDeclarations: diag(9017, 1 /* Error */, \"Only_const_arrays_can_be_inferred_with_isolatedDeclarations_9017\", \"Only const arrays can be inferred with --isolatedDeclarations.\"),\n  Arrays_with_spread_elements_can_t_inferred_with_isolatedDeclarations: diag(9018, 1 /* Error */, \"Arrays_with_spread_elements_can_t_inferred_with_isolatedDeclarations_9018\", \"Arrays with spread elements can't inferred with --isolatedDeclarations.\"),\n  Binding_elements_can_t_be_exported_directly_with_isolatedDeclarations: diag(9019, 1 /* Error */, \"Binding_elements_can_t_be_exported_directly_with_isolatedDeclarations_9019\", \"Binding elements can't be exported directly with --isolatedDeclarations.\"),\n  Enum_member_initializers_must_be_computable_without_references_to_external_symbols_with_isolatedDeclarations: diag(9020, 1 /* Error */, \"Enum_member_initializers_must_be_computable_without_references_to_external_symbols_with_isolatedDecl_9020\", \"Enum member initializers must be computable without references to external symbols with --isolatedDeclarations.\"),\n  Extends_clause_can_t_contain_an_expression_with_isolatedDeclarations: diag(9021, 1 /* Error */, \"Extends_clause_can_t_contain_an_expression_with_isolatedDeclarations_9021\", \"Extends clause can't contain an expression with --isolatedDeclarations.\"),\n  Inference_from_class_expressions_is_not_supported_with_isolatedDeclarations: diag(9022, 1 /* Error */, \"Inference_from_class_expressions_is_not_supported_with_isolatedDeclarations_9022\", \"Inference from class expressions is not supported with --isolatedDeclarations.\"),\n  Assigning_properties_to_functions_without_declaring_them_is_not_supported_with_isolatedDeclarations_Add_an_explicit_declaration_for_the_properties_assigned_to_this_function: diag(9023, 1 /* Error */, \"Assigning_properties_to_functions_without_declaring_them_is_not_supported_with_isolatedDeclarations__9023\", \"Assigning properties to functions without declaring them is not supported with --isolatedDeclarations. Add an explicit declaration for the properties assigned to this function.\"),\n  Declaration_emit_for_this_parameter_requires_implicitly_adding_undefined_to_its_type_This_is_not_supported_with_isolatedDeclarations: diag(9025, 1 /* Error */, \"Declaration_emit_for_this_parameter_requires_implicitly_adding_undefined_to_its_type_This_is_not_sup_9025\", \"Declaration emit for this parameter requires implicitly adding undefined to its type. This is not supported with --isolatedDeclarations.\"),\n  Declaration_emit_for_this_file_requires_preserving_this_import_for_augmentations_This_is_not_supported_with_isolatedDeclarations: diag(9026, 1 /* Error */, \"Declaration_emit_for_this_file_requires_preserving_this_import_for_augmentations_This_is_not_support_9026\", \"Declaration emit for this file requires preserving this import for augmentations. This is not supported with --isolatedDeclarations.\"),\n  Add_a_type_annotation_to_the_variable_0: diag(9027, 1 /* Error */, \"Add_a_type_annotation_to_the_variable_0_9027\", \"Add a type annotation to the variable {0}.\"),\n  Add_a_type_annotation_to_the_parameter_0: diag(9028, 1 /* Error */, \"Add_a_type_annotation_to_the_parameter_0_9028\", \"Add a type annotation to the parameter {0}.\"),\n  Add_a_type_annotation_to_the_property_0: diag(9029, 1 /* Error */, \"Add_a_type_annotation_to_the_property_0_9029\", \"Add a type annotation to the property {0}.\"),\n  Add_a_return_type_to_the_function_expression: diag(9030, 1 /* Error */, \"Add_a_return_type_to_the_function_expression_9030\", \"Add a return type to the function expression.\"),\n  Add_a_return_type_to_the_function_declaration: diag(9031, 1 /* Error */, \"Add_a_return_type_to_the_function_declaration_9031\", \"Add a return type to the function declaration.\"),\n  Add_a_return_type_to_the_get_accessor_declaration: diag(9032, 1 /* Error */, \"Add_a_return_type_to_the_get_accessor_declaration_9032\", \"Add a return type to the get accessor declaration.\"),\n  Add_a_type_to_parameter_of_the_set_accessor_declaration: diag(9033, 1 /* Error */, \"Add_a_type_to_parameter_of_the_set_accessor_declaration_9033\", \"Add a type to parameter of the set accessor declaration.\"),\n  Add_a_return_type_to_the_method: diag(9034, 1 /* Error */, \"Add_a_return_type_to_the_method_9034\", \"Add a return type to the method\"),\n  Add_satisfies_and_a_type_assertion_to_this_expression_satisfies_T_as_T_to_make_the_type_explicit: diag(9035, 1 /* Error */, \"Add_satisfies_and_a_type_assertion_to_this_expression_satisfies_T_as_T_to_make_the_type_explicit_9035\", \"Add satisfies and a type assertion to this expression (satisfies T as T) to make the type explicit.\"),\n  Move_the_expression_in_default_export_to_a_variable_and_add_a_type_annotation_to_it: diag(9036, 1 /* Error */, \"Move_the_expression_in_default_export_to_a_variable_and_add_a_type_annotation_to_it_9036\", \"Move the expression in default export to a variable and add a type annotation to it.\"),\n  Default_exports_can_t_be_inferred_with_isolatedDeclarations: diag(9037, 1 /* Error */, \"Default_exports_can_t_be_inferred_with_isolatedDeclarations_9037\", \"Default exports can't be inferred with --isolatedDeclarations.\"),\n  Computed_property_names_on_class_or_object_literals_cannot_be_inferred_with_isolatedDeclarations: diag(9038, 1 /* Error */, \"Computed_property_names_on_class_or_object_literals_cannot_be_inferred_with_isolatedDeclarations_9038\", \"Computed property names on class or object literals cannot be inferred with --isolatedDeclarations.\"),\n  Type_containing_private_name_0_can_t_be_used_with_isolatedDeclarations: diag(9039, 1 /* Error */, \"Type_containing_private_name_0_can_t_be_used_with_isolatedDeclarations_9039\", \"Type containing private name '{0}' can't be used with --isolatedDeclarations.\"),\n  JSX_attributes_must_only_be_assigned_a_non_empty_expression: diag(17e3, 1 /* Error */, \"JSX_attributes_must_only_be_assigned_a_non_empty_expression_17000\", \"JSX attributes must only be assigned a non-empty 'expression'.\"),\n  JSX_elements_cannot_have_multiple_attributes_with_the_same_name: diag(17001, 1 /* Error */, \"JSX_elements_cannot_have_multiple_attributes_with_the_same_name_17001\", \"JSX elements cannot have multiple attributes with the same name.\"),\n  Expected_corresponding_JSX_closing_tag_for_0: diag(17002, 1 /* Error */, \"Expected_corresponding_JSX_closing_tag_for_0_17002\", \"Expected corresponding JSX closing tag for '{0}'.\"),\n  Cannot_use_JSX_unless_the_jsx_flag_is_provided: diag(17004, 1 /* Error */, \"Cannot_use_JSX_unless_the_jsx_flag_is_provided_17004\", \"Cannot use JSX unless the '--jsx' flag is provided.\"),\n  A_constructor_cannot_contain_a_super_call_when_its_class_extends_null: diag(17005, 1 /* Error */, \"A_constructor_cannot_contain_a_super_call_when_its_class_extends_null_17005\", \"A constructor cannot contain a 'super' call when its class extends 'null'.\"),\n  An_unary_expression_with_the_0_operator_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses: diag(17006, 1 /* Error */, \"An_unary_expression_with_the_0_operator_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_ex_17006\", \"An unary expression with the '{0}' operator is not allowed in the left-hand side of an exponentiation expression. Consider enclosing the expression in parentheses.\"),\n  A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses: diag(17007, 1 /* Error */, \"A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Con_17007\", \"A type assertion expression is not allowed in the left-hand side of an exponentiation expression. Consider enclosing the expression in parentheses.\"),\n  JSX_element_0_has_no_corresponding_closing_tag: diag(17008, 1 /* Error */, \"JSX_element_0_has_no_corresponding_closing_tag_17008\", \"JSX element '{0}' has no corresponding closing tag.\"),\n  super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class: diag(17009, 1 /* Error */, \"super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class_17009\", \"'super' must be called before accessing 'this' in the constructor of a derived class.\"),\n  Unknown_type_acquisition_option_0: diag(17010, 1 /* Error */, \"Unknown_type_acquisition_option_0_17010\", \"Unknown type acquisition option '{0}'.\"),\n  super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class: diag(17011, 1 /* Error */, \"super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class_17011\", \"'super' must be called before accessing a property of 'super' in the constructor of a derived class.\"),\n  _0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2: diag(17012, 1 /* Error */, \"_0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2_17012\", \"'{0}' is not a valid meta-property for keyword '{1}'. Did you mean '{2}'?\"),\n  Meta_property_0_is_only_allowed_in_the_body_of_a_function_declaration_function_expression_or_constructor: diag(17013, 1 /* Error */, \"Meta_property_0_is_only_allowed_in_the_body_of_a_function_declaration_function_expression_or_constru_17013\", \"Meta-property '{0}' is only allowed in the body of a function declaration, function expression, or constructor.\"),\n  JSX_fragment_has_no_corresponding_closing_tag: diag(17014, 1 /* Error */, \"JSX_fragment_has_no_corresponding_closing_tag_17014\", \"JSX fragment has no corresponding closing tag.\"),\n  Expected_corresponding_closing_tag_for_JSX_fragment: diag(17015, 1 /* Error */, \"Expected_corresponding_closing_tag_for_JSX_fragment_17015\", \"Expected corresponding closing tag for JSX fragment.\"),\n  The_jsxFragmentFactory_compiler_option_must_be_provided_to_use_JSX_fragments_with_the_jsxFactory_compiler_option: diag(17016, 1 /* Error */, \"The_jsxFragmentFactory_compiler_option_must_be_provided_to_use_JSX_fragments_with_the_jsxFactory_com_17016\", \"The 'jsxFragmentFactory' compiler option must be provided to use JSX fragments with the 'jsxFactory' compiler option.\"),\n  An_jsxFrag_pragma_is_required_when_using_an_jsx_pragma_with_JSX_fragments: diag(17017, 1 /* Error */, \"An_jsxFrag_pragma_is_required_when_using_an_jsx_pragma_with_JSX_fragments_17017\", \"An @jsxFrag pragma is required when using an @jsx pragma with JSX fragments.\"),\n  Unknown_type_acquisition_option_0_Did_you_mean_1: diag(17018, 1 /* Error */, \"Unknown_type_acquisition_option_0_Did_you_mean_1_17018\", \"Unknown type acquisition option '{0}'. Did you mean '{1}'?\"),\n  _0_at_the_end_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1: diag(17019, 1 /* Error */, \"_0_at_the_end_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1_17019\", \"'{0}' at the end of a type is not valid TypeScript syntax. Did you mean to write '{1}'?\"),\n  _0_at_the_start_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1: diag(17020, 1 /* Error */, \"_0_at_the_start_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1_17020\", \"'{0}' at the start of a type is not valid TypeScript syntax. Did you mean to write '{1}'?\"),\n  Unicode_escape_sequence_cannot_appear_here: diag(17021, 1 /* Error */, \"Unicode_escape_sequence_cannot_appear_here_17021\", \"Unicode escape sequence cannot appear here.\"),\n  Circularity_detected_while_resolving_configuration_Colon_0: diag(18e3, 1 /* Error */, \"Circularity_detected_while_resolving_configuration_Colon_0_18000\", \"Circularity detected while resolving configuration: {0}\"),\n  The_files_list_in_config_file_0_is_empty: diag(18002, 1 /* Error */, \"The_files_list_in_config_file_0_is_empty_18002\", \"The 'files' list in config file '{0}' is empty.\"),\n  No_inputs_were_found_in_config_file_0_Specified_include_paths_were_1_and_exclude_paths_were_2: diag(18003, 1 /* Error */, \"No_inputs_were_found_in_config_file_0_Specified_include_paths_were_1_and_exclude_paths_were_2_18003\", \"No inputs were found in config file '{0}'. Specified 'include' paths were '{1}' and 'exclude' paths were '{2}'.\"),\n  File_is_a_CommonJS_module_it_may_be_converted_to_an_ES_module: diag(80001, 2 /* Suggestion */, \"File_is_a_CommonJS_module_it_may_be_converted_to_an_ES_module_80001\", \"File is a CommonJS module; it may be converted to an ES module.\"),\n  This_constructor_function_may_be_converted_to_a_class_declaration: diag(80002, 2 /* Suggestion */, \"This_constructor_function_may_be_converted_to_a_class_declaration_80002\", \"This constructor function may be converted to a class declaration.\"),\n  Import_may_be_converted_to_a_default_import: diag(80003, 2 /* Suggestion */, \"Import_may_be_converted_to_a_default_import_80003\", \"Import may be converted to a default import.\"),\n  JSDoc_types_may_be_moved_to_TypeScript_types: diag(80004, 2 /* Suggestion */, \"JSDoc_types_may_be_moved_to_TypeScript_types_80004\", \"JSDoc types may be moved to TypeScript types.\"),\n  require_call_may_be_converted_to_an_import: diag(80005, 2 /* Suggestion */, \"require_call_may_be_converted_to_an_import_80005\", \"'require' call may be converted to an import.\"),\n  This_may_be_converted_to_an_async_function: diag(80006, 2 /* Suggestion */, \"This_may_be_converted_to_an_async_function_80006\", \"This may be converted to an async function.\"),\n  await_has_no_effect_on_the_type_of_this_expression: diag(80007, 2 /* Suggestion */, \"await_has_no_effect_on_the_type_of_this_expression_80007\", \"'await' has no effect on the type of this expression.\"),\n  Numeric_literals_with_absolute_values_equal_to_2_53_or_greater_are_too_large_to_be_represented_accurately_as_integers: diag(80008, 2 /* Suggestion */, \"Numeric_literals_with_absolute_values_equal_to_2_53_or_greater_are_too_large_to_be_represented_accur_80008\", \"Numeric literals with absolute values equal to 2^53 or greater are too large to be represented accurately as integers.\"),\n  JSDoc_typedef_may_be_converted_to_TypeScript_type: diag(80009, 2 /* Suggestion */, \"JSDoc_typedef_may_be_converted_to_TypeScript_type_80009\", \"JSDoc typedef may be converted to TypeScript type.\"),\n  JSDoc_typedefs_may_be_converted_to_TypeScript_types: diag(80010, 2 /* Suggestion */, \"JSDoc_typedefs_may_be_converted_to_TypeScript_types_80010\", \"JSDoc typedefs may be converted to TypeScript types.\"),\n  Add_missing_super_call: diag(90001, 3 /* Message */, \"Add_missing_super_call_90001\", \"Add missing 'super()' call\"),\n  Make_super_call_the_first_statement_in_the_constructor: diag(90002, 3 /* Message */, \"Make_super_call_the_first_statement_in_the_constructor_90002\", \"Make 'super()' call the first statement in the constructor\"),\n  Change_extends_to_implements: diag(90003, 3 /* Message */, \"Change_extends_to_implements_90003\", \"Change 'extends' to 'implements'\"),\n  Remove_unused_declaration_for_Colon_0: diag(90004, 3 /* Message */, \"Remove_unused_declaration_for_Colon_0_90004\", \"Remove unused declaration for: '{0}'\"),\n  Remove_import_from_0: diag(90005, 3 /* Message */, \"Remove_import_from_0_90005\", \"Remove import from '{0}'\"),\n  Implement_interface_0: diag(90006, 3 /* Message */, \"Implement_interface_0_90006\", \"Implement interface '{0}'\"),\n  Implement_inherited_abstract_class: diag(90007, 3 /* Message */, \"Implement_inherited_abstract_class_90007\", \"Implement inherited abstract class\"),\n  Add_0_to_unresolved_variable: diag(90008, 3 /* Message */, \"Add_0_to_unresolved_variable_90008\", \"Add '{0}.' to unresolved variable\"),\n  Remove_variable_statement: diag(90010, 3 /* Message */, \"Remove_variable_statement_90010\", \"Remove variable statement\"),\n  Remove_template_tag: diag(90011, 3 /* Message */, \"Remove_template_tag_90011\", \"Remove template tag\"),\n  Remove_type_parameters: diag(90012, 3 /* Message */, \"Remove_type_parameters_90012\", \"Remove type parameters\"),\n  Import_0_from_1: diag(90013, 3 /* Message */, \"Import_0_from_1_90013\", `Import '{0}' from \"{1}\"`),\n  Change_0_to_1: diag(90014, 3 /* Message */, \"Change_0_to_1_90014\", \"Change '{0}' to '{1}'\"),\n  Declare_property_0: diag(90016, 3 /* Message */, \"Declare_property_0_90016\", \"Declare property '{0}'\"),\n  Add_index_signature_for_property_0: diag(90017, 3 /* Message */, \"Add_index_signature_for_property_0_90017\", \"Add index signature for property '{0}'\"),\n  Disable_checking_for_this_file: diag(90018, 3 /* Message */, \"Disable_checking_for_this_file_90018\", \"Disable checking for this file\"),\n  Ignore_this_error_message: diag(90019, 3 /* Message */, \"Ignore_this_error_message_90019\", \"Ignore this error message\"),\n  Initialize_property_0_in_the_constructor: diag(90020, 3 /* Message */, \"Initialize_property_0_in_the_constructor_90020\", \"Initialize property '{0}' in the constructor\"),\n  Initialize_static_property_0: diag(90021, 3 /* Message */, \"Initialize_static_property_0_90021\", \"Initialize static property '{0}'\"),\n  Change_spelling_to_0: diag(90022, 3 /* Message */, \"Change_spelling_to_0_90022\", \"Change spelling to '{0}'\"),\n  Declare_method_0: diag(90023, 3 /* Message */, \"Declare_method_0_90023\", \"Declare method '{0}'\"),\n  Declare_static_method_0: diag(90024, 3 /* Message */, \"Declare_static_method_0_90024\", \"Declare static method '{0}'\"),\n  Prefix_0_with_an_underscore: diag(90025, 3 /* Message */, \"Prefix_0_with_an_underscore_90025\", \"Prefix '{0}' with an underscore\"),\n  Rewrite_as_the_indexed_access_type_0: diag(90026, 3 /* Message */, \"Rewrite_as_the_indexed_access_type_0_90026\", \"Rewrite as the indexed access type '{0}'\"),\n  Declare_static_property_0: diag(90027, 3 /* Message */, \"Declare_static_property_0_90027\", \"Declare static property '{0}'\"),\n  Call_decorator_expression: diag(90028, 3 /* Message */, \"Call_decorator_expression_90028\", \"Call decorator expression\"),\n  Add_async_modifier_to_containing_function: diag(90029, 3 /* Message */, \"Add_async_modifier_to_containing_function_90029\", \"Add async modifier to containing function\"),\n  Replace_infer_0_with_unknown: diag(90030, 3 /* Message */, \"Replace_infer_0_with_unknown_90030\", \"Replace 'infer {0}' with 'unknown'\"),\n  Replace_all_unused_infer_with_unknown: diag(90031, 3 /* Message */, \"Replace_all_unused_infer_with_unknown_90031\", \"Replace all unused 'infer' with 'unknown'\"),\n  Add_parameter_name: diag(90034, 3 /* Message */, \"Add_parameter_name_90034\", \"Add parameter name\"),\n  Declare_private_property_0: diag(90035, 3 /* Message */, \"Declare_private_property_0_90035\", \"Declare private property '{0}'\"),\n  Replace_0_with_Promise_1: diag(90036, 3 /* Message */, \"Replace_0_with_Promise_1_90036\", \"Replace '{0}' with 'Promise<{1}>'\"),\n  Fix_all_incorrect_return_type_of_an_async_functions: diag(90037, 3 /* Message */, \"Fix_all_incorrect_return_type_of_an_async_functions_90037\", \"Fix all incorrect return type of an async functions\"),\n  Declare_private_method_0: diag(90038, 3 /* Message */, \"Declare_private_method_0_90038\", \"Declare private method '{0}'\"),\n  Remove_unused_destructuring_declaration: diag(90039, 3 /* Message */, \"Remove_unused_destructuring_declaration_90039\", \"Remove unused destructuring declaration\"),\n  Remove_unused_declarations_for_Colon_0: diag(90041, 3 /* Message */, \"Remove_unused_declarations_for_Colon_0_90041\", \"Remove unused declarations for: '{0}'\"),\n  Declare_a_private_field_named_0: diag(90053, 3 /* Message */, \"Declare_a_private_field_named_0_90053\", \"Declare a private field named '{0}'.\"),\n  Includes_imports_of_types_referenced_by_0: diag(90054, 3 /* Message */, \"Includes_imports_of_types_referenced_by_0_90054\", \"Includes imports of types referenced by '{0}'\"),\n  Remove_type_from_import_declaration_from_0: diag(90055, 3 /* Message */, \"Remove_type_from_import_declaration_from_0_90055\", `Remove 'type' from import declaration from \"{0}\"`),\n  Remove_type_from_import_of_0_from_1: diag(90056, 3 /* Message */, \"Remove_type_from_import_of_0_from_1_90056\", `Remove 'type' from import of '{0}' from \"{1}\"`),\n  Add_import_from_0: diag(90057, 3 /* Message */, \"Add_import_from_0_90057\", 'Add import from \"{0}\"'),\n  Update_import_from_0: diag(90058, 3 /* Message */, \"Update_import_from_0_90058\", 'Update import from \"{0}\"'),\n  Export_0_from_module_1: diag(90059, 3 /* Message */, \"Export_0_from_module_1_90059\", \"Export '{0}' from module '{1}'\"),\n  Export_all_referenced_locals: diag(90060, 3 /* Message */, \"Export_all_referenced_locals_90060\", \"Export all referenced locals\"),\n  Update_modifiers_of_0: diag(90061, 3 /* Message */, \"Update_modifiers_of_0_90061\", \"Update modifiers of '{0}'\"),\n  Add_annotation_of_type_0: diag(90062, 3 /* Message */, \"Add_annotation_of_type_0_90062\", \"Add annotation of type '{0}'\"),\n  Add_return_type_0: diag(90063, 3 /* Message */, \"Add_return_type_0_90063\", \"Add return type '{0}'\"),\n  Extract_base_class_to_variable: diag(90064, 3 /* Message */, \"Extract_base_class_to_variable_90064\", \"Extract base class to variable\"),\n  Extract_default_export_to_variable: diag(90065, 3 /* Message */, \"Extract_default_export_to_variable_90065\", \"Extract default export to variable\"),\n  Extract_binding_expressions_to_variable: diag(90066, 3 /* Message */, \"Extract_binding_expressions_to_variable_90066\", \"Extract binding expressions to variable\"),\n  Add_all_missing_type_annotations: diag(90067, 3 /* Message */, \"Add_all_missing_type_annotations_90067\", \"Add all missing type annotations\"),\n  Add_satisfies_and_an_inline_type_assertion_with_0: diag(90068, 3 /* Message */, \"Add_satisfies_and_an_inline_type_assertion_with_0_90068\", \"Add satisfies and an inline type assertion with '{0}'\"),\n  Extract_to_variable_and_replace_with_0_as_typeof_0: diag(90069, 3 /* Message */, \"Extract_to_variable_and_replace_with_0_as_typeof_0_90069\", \"Extract to variable and replace with '{0} as typeof {0}'\"),\n  Mark_array_literal_as_const: diag(90070, 3 /* Message */, \"Mark_array_literal_as_const_90070\", \"Mark array literal as const\"),\n  Annotate_types_of_properties_expando_function_in_a_namespace: diag(90071, 3 /* Message */, \"Annotate_types_of_properties_expando_function_in_a_namespace_90071\", \"Annotate types of properties expando function in a namespace\"),\n  Convert_function_to_an_ES2015_class: diag(95001, 3 /* Message */, \"Convert_function_to_an_ES2015_class_95001\", \"Convert function to an ES2015 class\"),\n  Convert_0_to_1_in_0: diag(95003, 3 /* Message */, \"Convert_0_to_1_in_0_95003\", \"Convert '{0}' to '{1} in {0}'\"),\n  Extract_to_0_in_1: diag(95004, 3 /* Message */, \"Extract_to_0_in_1_95004\", \"Extract to {0} in {1}\"),\n  Extract_function: diag(95005, 3 /* Message */, \"Extract_function_95005\", \"Extract function\"),\n  Extract_constant: diag(95006, 3 /* Message */, \"Extract_constant_95006\", \"Extract constant\"),\n  Extract_to_0_in_enclosing_scope: diag(95007, 3 /* Message */, \"Extract_to_0_in_enclosing_scope_95007\", \"Extract to {0} in enclosing scope\"),\n  Extract_to_0_in_1_scope: diag(95008, 3 /* Message */, \"Extract_to_0_in_1_scope_95008\", \"Extract to {0} in {1} scope\"),\n  Annotate_with_type_from_JSDoc: diag(95009, 3 /* Message */, \"Annotate_with_type_from_JSDoc_95009\", \"Annotate with type from JSDoc\"),\n  Infer_type_of_0_from_usage: diag(95011, 3 /* Message */, \"Infer_type_of_0_from_usage_95011\", \"Infer type of '{0}' from usage\"),\n  Infer_parameter_types_from_usage: diag(95012, 3 /* Message */, \"Infer_parameter_types_from_usage_95012\", \"Infer parameter types from usage\"),\n  Convert_to_default_import: diag(95013, 3 /* Message */, \"Convert_to_default_import_95013\", \"Convert to default import\"),\n  Install_0: diag(95014, 3 /* Message */, \"Install_0_95014\", \"Install '{0}'\"),\n  Replace_import_with_0: diag(95015, 3 /* Message */, \"Replace_import_with_0_95015\", \"Replace import with '{0}'.\"),\n  Use_synthetic_default_member: diag(95016, 3 /* Message */, \"Use_synthetic_default_member_95016\", \"Use synthetic 'default' member.\"),\n  Convert_to_ES_module: diag(95017, 3 /* Message */, \"Convert_to_ES_module_95017\", \"Convert to ES module\"),\n  Add_undefined_type_to_property_0: diag(95018, 3 /* Message */, \"Add_undefined_type_to_property_0_95018\", \"Add 'undefined' type to property '{0}'\"),\n  Add_initializer_to_property_0: diag(95019, 3 /* Message */, \"Add_initializer_to_property_0_95019\", \"Add initializer to property '{0}'\"),\n  Add_definite_assignment_assertion_to_property_0: diag(95020, 3 /* Message */, \"Add_definite_assignment_assertion_to_property_0_95020\", \"Add definite assignment assertion to property '{0}'\"),\n  Convert_all_type_literals_to_mapped_type: diag(95021, 3 /* Message */, \"Convert_all_type_literals_to_mapped_type_95021\", \"Convert all type literals to mapped type\"),\n  Add_all_missing_members: diag(95022, 3 /* Message */, \"Add_all_missing_members_95022\", \"Add all missing members\"),\n  Infer_all_types_from_usage: diag(95023, 3 /* Message */, \"Infer_all_types_from_usage_95023\", \"Infer all types from usage\"),\n  Delete_all_unused_declarations: diag(95024, 3 /* Message */, \"Delete_all_unused_declarations_95024\", \"Delete all unused declarations\"),\n  Prefix_all_unused_declarations_with_where_possible: diag(95025, 3 /* Message */, \"Prefix_all_unused_declarations_with_where_possible_95025\", \"Prefix all unused declarations with '_' where possible\"),\n  Fix_all_detected_spelling_errors: diag(95026, 3 /* Message */, \"Fix_all_detected_spelling_errors_95026\", \"Fix all detected spelling errors\"),\n  Add_initializers_to_all_uninitialized_properties: diag(95027, 3 /* Message */, \"Add_initializers_to_all_uninitialized_properties_95027\", \"Add initializers to all uninitialized properties\"),\n  Add_definite_assignment_assertions_to_all_uninitialized_properties: diag(95028, 3 /* Message */, \"Add_definite_assignment_assertions_to_all_uninitialized_properties_95028\", \"Add definite assignment assertions to all uninitialized properties\"),\n  Add_undefined_type_to_all_uninitialized_properties: diag(95029, 3 /* Message */, \"Add_undefined_type_to_all_uninitialized_properties_95029\", \"Add undefined type to all uninitialized properties\"),\n  Change_all_jsdoc_style_types_to_TypeScript: diag(95030, 3 /* Message */, \"Change_all_jsdoc_style_types_to_TypeScript_95030\", \"Change all jsdoc-style types to TypeScript\"),\n  Change_all_jsdoc_style_types_to_TypeScript_and_add_undefined_to_nullable_types: diag(95031, 3 /* Message */, \"Change_all_jsdoc_style_types_to_TypeScript_and_add_undefined_to_nullable_types_95031\", \"Change all jsdoc-style types to TypeScript (and add '| undefined' to nullable types)\"),\n  Implement_all_unimplemented_interfaces: diag(95032, 3 /* Message */, \"Implement_all_unimplemented_interfaces_95032\", \"Implement all unimplemented interfaces\"),\n  Install_all_missing_types_packages: diag(95033, 3 /* Message */, \"Install_all_missing_types_packages_95033\", \"Install all missing types packages\"),\n  Rewrite_all_as_indexed_access_types: diag(95034, 3 /* Message */, \"Rewrite_all_as_indexed_access_types_95034\", \"Rewrite all as indexed access types\"),\n  Convert_all_to_default_imports: diag(95035, 3 /* Message */, \"Convert_all_to_default_imports_95035\", \"Convert all to default imports\"),\n  Make_all_super_calls_the_first_statement_in_their_constructor: diag(95036, 3 /* Message */, \"Make_all_super_calls_the_first_statement_in_their_constructor_95036\", \"Make all 'super()' calls the first statement in their constructor\"),\n  Add_qualifier_to_all_unresolved_variables_matching_a_member_name: diag(95037, 3 /* Message */, \"Add_qualifier_to_all_unresolved_variables_matching_a_member_name_95037\", \"Add qualifier to all unresolved variables matching a member name\"),\n  Change_all_extended_interfaces_to_implements: diag(95038, 3 /* Message */, \"Change_all_extended_interfaces_to_implements_95038\", \"Change all extended interfaces to 'implements'\"),\n  Add_all_missing_super_calls: diag(95039, 3 /* Message */, \"Add_all_missing_super_calls_95039\", \"Add all missing super calls\"),\n  Implement_all_inherited_abstract_classes: diag(95040, 3 /* Message */, \"Implement_all_inherited_abstract_classes_95040\", \"Implement all inherited abstract classes\"),\n  Add_all_missing_async_modifiers: diag(95041, 3 /* Message */, \"Add_all_missing_async_modifiers_95041\", \"Add all missing 'async' modifiers\"),\n  Add_ts_ignore_to_all_error_messages: diag(95042, 3 /* Message */, \"Add_ts_ignore_to_all_error_messages_95042\", \"Add '@ts-ignore' to all error messages\"),\n  Annotate_everything_with_types_from_JSDoc: diag(95043, 3 /* Message */, \"Annotate_everything_with_types_from_JSDoc_95043\", \"Annotate everything with types from JSDoc\"),\n  Add_to_all_uncalled_decorators: diag(95044, 3 /* Message */, \"Add_to_all_uncalled_decorators_95044\", \"Add '()' to all uncalled decorators\"),\n  Convert_all_constructor_functions_to_classes: diag(95045, 3 /* Message */, \"Convert_all_constructor_functions_to_classes_95045\", \"Convert all constructor functions to classes\"),\n  Generate_get_and_set_accessors: diag(95046, 3 /* Message */, \"Generate_get_and_set_accessors_95046\", \"Generate 'get' and 'set' accessors\"),\n  Convert_require_to_import: diag(95047, 3 /* Message */, \"Convert_require_to_import_95047\", \"Convert 'require' to 'import'\"),\n  Convert_all_require_to_import: diag(95048, 3 /* Message */, \"Convert_all_require_to_import_95048\", \"Convert all 'require' to 'import'\"),\n  Move_to_a_new_file: diag(95049, 3 /* Message */, \"Move_to_a_new_file_95049\", \"Move to a new file\"),\n  Remove_unreachable_code: diag(95050, 3 /* Message */, \"Remove_unreachable_code_95050\", \"Remove unreachable code\"),\n  Remove_all_unreachable_code: diag(95051, 3 /* Message */, \"Remove_all_unreachable_code_95051\", \"Remove all unreachable code\"),\n  Add_missing_typeof: diag(95052, 3 /* Message */, \"Add_missing_typeof_95052\", \"Add missing 'typeof'\"),\n  Remove_unused_label: diag(95053, 3 /* Message */, \"Remove_unused_label_95053\", \"Remove unused label\"),\n  Remove_all_unused_labels: diag(95054, 3 /* Message */, \"Remove_all_unused_labels_95054\", \"Remove all unused labels\"),\n  Convert_0_to_mapped_object_type: diag(95055, 3 /* Message */, \"Convert_0_to_mapped_object_type_95055\", \"Convert '{0}' to mapped object type\"),\n  Convert_namespace_import_to_named_imports: diag(95056, 3 /* Message */, \"Convert_namespace_import_to_named_imports_95056\", \"Convert namespace import to named imports\"),\n  Convert_named_imports_to_namespace_import: diag(95057, 3 /* Message */, \"Convert_named_imports_to_namespace_import_95057\", \"Convert named imports to namespace import\"),\n  Add_or_remove_braces_in_an_arrow_function: diag(95058, 3 /* Message */, \"Add_or_remove_braces_in_an_arrow_function_95058\", \"Add or remove braces in an arrow function\"),\n  Add_braces_to_arrow_function: diag(95059, 3 /* Message */, \"Add_braces_to_arrow_function_95059\", \"Add braces to arrow function\"),\n  Remove_braces_from_arrow_function: diag(95060, 3 /* Message */, \"Remove_braces_from_arrow_function_95060\", \"Remove braces from arrow function\"),\n  Convert_default_export_to_named_export: diag(95061, 3 /* Message */, \"Convert_default_export_to_named_export_95061\", \"Convert default export to named export\"),\n  Convert_named_export_to_default_export: diag(95062, 3 /* Message */, \"Convert_named_export_to_default_export_95062\", \"Convert named export to default export\"),\n  Add_missing_enum_member_0: diag(95063, 3 /* Message */, \"Add_missing_enum_member_0_95063\", \"Add missing enum member '{0}'\"),\n  Add_all_missing_imports: diag(95064, 3 /* Message */, \"Add_all_missing_imports_95064\", \"Add all missing imports\"),\n  Convert_to_async_function: diag(95065, 3 /* Message */, \"Convert_to_async_function_95065\", \"Convert to async function\"),\n  Convert_all_to_async_functions: diag(95066, 3 /* Message */, \"Convert_all_to_async_functions_95066\", \"Convert all to async functions\"),\n  Add_missing_call_parentheses: diag(95067, 3 /* Message */, \"Add_missing_call_parentheses_95067\", \"Add missing call parentheses\"),\n  Add_all_missing_call_parentheses: diag(95068, 3 /* Message */, \"Add_all_missing_call_parentheses_95068\", \"Add all missing call parentheses\"),\n  Add_unknown_conversion_for_non_overlapping_types: diag(95069, 3 /* Message */, \"Add_unknown_conversion_for_non_overlapping_types_95069\", \"Add 'unknown' conversion for non-overlapping types\"),\n  Add_unknown_to_all_conversions_of_non_overlapping_types: diag(95070, 3 /* Message */, \"Add_unknown_to_all_conversions_of_non_overlapping_types_95070\", \"Add 'unknown' to all conversions of non-overlapping types\"),\n  Add_missing_new_operator_to_call: diag(95071, 3 /* Message */, \"Add_missing_new_operator_to_call_95071\", \"Add missing 'new' operator to call\"),\n  Add_missing_new_operator_to_all_calls: diag(95072, 3 /* Message */, \"Add_missing_new_operator_to_all_calls_95072\", \"Add missing 'new' operator to all calls\"),\n  Add_names_to_all_parameters_without_names: diag(95073, 3 /* Message */, \"Add_names_to_all_parameters_without_names_95073\", \"Add names to all parameters without names\"),\n  Enable_the_experimentalDecorators_option_in_your_configuration_file: diag(95074, 3 /* Message */, \"Enable_the_experimentalDecorators_option_in_your_configuration_file_95074\", \"Enable the 'experimentalDecorators' option in your configuration file\"),\n  Convert_parameters_to_destructured_object: diag(95075, 3 /* Message */, \"Convert_parameters_to_destructured_object_95075\", \"Convert parameters to destructured object\"),\n  Extract_type: diag(95077, 3 /* Message */, \"Extract_type_95077\", \"Extract type\"),\n  Extract_to_type_alias: diag(95078, 3 /* Message */, \"Extract_to_type_alias_95078\", \"Extract to type alias\"),\n  Extract_to_typedef: diag(95079, 3 /* Message */, \"Extract_to_typedef_95079\", \"Extract to typedef\"),\n  Infer_this_type_of_0_from_usage: diag(95080, 3 /* Message */, \"Infer_this_type_of_0_from_usage_95080\", \"Infer 'this' type of '{0}' from usage\"),\n  Add_const_to_unresolved_variable: diag(95081, 3 /* Message */, \"Add_const_to_unresolved_variable_95081\", \"Add 'const' to unresolved variable\"),\n  Add_const_to_all_unresolved_variables: diag(95082, 3 /* Message */, \"Add_const_to_all_unresolved_variables_95082\", \"Add 'const' to all unresolved variables\"),\n  Add_await: diag(95083, 3 /* Message */, \"Add_await_95083\", \"Add 'await'\"),\n  Add_await_to_initializer_for_0: diag(95084, 3 /* Message */, \"Add_await_to_initializer_for_0_95084\", \"Add 'await' to initializer for '{0}'\"),\n  Fix_all_expressions_possibly_missing_await: diag(95085, 3 /* Message */, \"Fix_all_expressions_possibly_missing_await_95085\", \"Fix all expressions possibly missing 'await'\"),\n  Remove_unnecessary_await: diag(95086, 3 /* Message */, \"Remove_unnecessary_await_95086\", \"Remove unnecessary 'await'\"),\n  Remove_all_unnecessary_uses_of_await: diag(95087, 3 /* Message */, \"Remove_all_unnecessary_uses_of_await_95087\", \"Remove all unnecessary uses of 'await'\"),\n  Enable_the_jsx_flag_in_your_configuration_file: diag(95088, 3 /* Message */, \"Enable_the_jsx_flag_in_your_configuration_file_95088\", \"Enable the '--jsx' flag in your configuration file\"),\n  Add_await_to_initializers: diag(95089, 3 /* Message */, \"Add_await_to_initializers_95089\", \"Add 'await' to initializers\"),\n  Extract_to_interface: diag(95090, 3 /* Message */, \"Extract_to_interface_95090\", \"Extract to interface\"),\n  Convert_to_a_bigint_numeric_literal: diag(95091, 3 /* Message */, \"Convert_to_a_bigint_numeric_literal_95091\", \"Convert to a bigint numeric literal\"),\n  Convert_all_to_bigint_numeric_literals: diag(95092, 3 /* Message */, \"Convert_all_to_bigint_numeric_literals_95092\", \"Convert all to bigint numeric literals\"),\n  Convert_const_to_let: diag(95093, 3 /* Message */, \"Convert_const_to_let_95093\", \"Convert 'const' to 'let'\"),\n  Prefix_with_declare: diag(95094, 3 /* Message */, \"Prefix_with_declare_95094\", \"Prefix with 'declare'\"),\n  Prefix_all_incorrect_property_declarations_with_declare: diag(95095, 3 /* Message */, \"Prefix_all_incorrect_property_declarations_with_declare_95095\", \"Prefix all incorrect property declarations with 'declare'\"),\n  Convert_to_template_string: diag(95096, 3 /* Message */, \"Convert_to_template_string_95096\", \"Convert to template string\"),\n  Add_export_to_make_this_file_into_a_module: diag(95097, 3 /* Message */, \"Add_export_to_make_this_file_into_a_module_95097\", \"Add 'export {}' to make this file into a module\"),\n  Set_the_target_option_in_your_configuration_file_to_0: diag(95098, 3 /* Message */, \"Set_the_target_option_in_your_configuration_file_to_0_95098\", \"Set the 'target' option in your configuration file to '{0}'\"),\n  Set_the_module_option_in_your_configuration_file_to_0: diag(95099, 3 /* Message */, \"Set_the_module_option_in_your_configuration_file_to_0_95099\", \"Set the 'module' option in your configuration file to '{0}'\"),\n  Convert_invalid_character_to_its_html_entity_code: diag(95100, 3 /* Message */, \"Convert_invalid_character_to_its_html_entity_code_95100\", \"Convert invalid character to its html entity code\"),\n  Convert_all_invalid_characters_to_HTML_entity_code: diag(95101, 3 /* Message */, \"Convert_all_invalid_characters_to_HTML_entity_code_95101\", \"Convert all invalid characters to HTML entity code\"),\n  Convert_all_const_to_let: diag(95102, 3 /* Message */, \"Convert_all_const_to_let_95102\", \"Convert all 'const' to 'let'\"),\n  Convert_function_expression_0_to_arrow_function: diag(95105, 3 /* Message */, \"Convert_function_expression_0_to_arrow_function_95105\", \"Convert function expression '{0}' to arrow function\"),\n  Convert_function_declaration_0_to_arrow_function: diag(95106, 3 /* Message */, \"Convert_function_declaration_0_to_arrow_function_95106\", \"Convert function declaration '{0}' to arrow function\"),\n  Fix_all_implicit_this_errors: diag(95107, 3 /* Message */, \"Fix_all_implicit_this_errors_95107\", \"Fix all implicit-'this' errors\"),\n  Wrap_invalid_character_in_an_expression_container: diag(95108, 3 /* Message */, \"Wrap_invalid_character_in_an_expression_container_95108\", \"Wrap invalid character in an expression container\"),\n  Wrap_all_invalid_characters_in_an_expression_container: diag(95109, 3 /* Message */, \"Wrap_all_invalid_characters_in_an_expression_container_95109\", \"Wrap all invalid characters in an expression container\"),\n  Visit_https_Colon_Slash_Slashaka_ms_Slashtsconfig_to_read_more_about_this_file: diag(95110, 3 /* Message */, \"Visit_https_Colon_Slash_Slashaka_ms_Slashtsconfig_to_read_more_about_this_file_95110\", \"Visit https://aka.ms/tsconfig to read more about this file\"),\n  Add_a_return_statement: diag(95111, 3 /* Message */, \"Add_a_return_statement_95111\", \"Add a return statement\"),\n  Remove_braces_from_arrow_function_body: diag(95112, 3 /* Message */, \"Remove_braces_from_arrow_function_body_95112\", \"Remove braces from arrow function body\"),\n  Wrap_the_following_body_with_parentheses_which_should_be_an_object_literal: diag(95113, 3 /* Message */, \"Wrap_the_following_body_with_parentheses_which_should_be_an_object_literal_95113\", \"Wrap the following body with parentheses which should be an object literal\"),\n  Add_all_missing_return_statement: diag(95114, 3 /* Message */, \"Add_all_missing_return_statement_95114\", \"Add all missing return statement\"),\n  Remove_braces_from_all_arrow_function_bodies_with_relevant_issues: diag(95115, 3 /* Message */, \"Remove_braces_from_all_arrow_function_bodies_with_relevant_issues_95115\", \"Remove braces from all arrow function bodies with relevant issues\"),\n  Wrap_all_object_literal_with_parentheses: diag(95116, 3 /* Message */, \"Wrap_all_object_literal_with_parentheses_95116\", \"Wrap all object literal with parentheses\"),\n  Move_labeled_tuple_element_modifiers_to_labels: diag(95117, 3 /* Message */, \"Move_labeled_tuple_element_modifiers_to_labels_95117\", \"Move labeled tuple element modifiers to labels\"),\n  Convert_overload_list_to_single_signature: diag(95118, 3 /* Message */, \"Convert_overload_list_to_single_signature_95118\", \"Convert overload list to single signature\"),\n  Generate_get_and_set_accessors_for_all_overriding_properties: diag(95119, 3 /* Message */, \"Generate_get_and_set_accessors_for_all_overriding_properties_95119\", \"Generate 'get' and 'set' accessors for all overriding properties\"),\n  Wrap_in_JSX_fragment: diag(95120, 3 /* Message */, \"Wrap_in_JSX_fragment_95120\", \"Wrap in JSX fragment\"),\n  Wrap_all_unparented_JSX_in_JSX_fragment: diag(95121, 3 /* Message */, \"Wrap_all_unparented_JSX_in_JSX_fragment_95121\", \"Wrap all unparented JSX in JSX fragment\"),\n  Convert_arrow_function_or_function_expression: diag(95122, 3 /* Message */, \"Convert_arrow_function_or_function_expression_95122\", \"Convert arrow function or function expression\"),\n  Convert_to_anonymous_function: diag(95123, 3 /* Message */, \"Convert_to_anonymous_function_95123\", \"Convert to anonymous function\"),\n  Convert_to_named_function: diag(95124, 3 /* Message */, \"Convert_to_named_function_95124\", \"Convert to named function\"),\n  Convert_to_arrow_function: diag(95125, 3 /* Message */, \"Convert_to_arrow_function_95125\", \"Convert to arrow function\"),\n  Remove_parentheses: diag(95126, 3 /* Message */, \"Remove_parentheses_95126\", \"Remove parentheses\"),\n  Could_not_find_a_containing_arrow_function: diag(95127, 3 /* Message */, \"Could_not_find_a_containing_arrow_function_95127\", \"Could not find a containing arrow function\"),\n  Containing_function_is_not_an_arrow_function: diag(95128, 3 /* Message */, \"Containing_function_is_not_an_arrow_function_95128\", \"Containing function is not an arrow function\"),\n  Could_not_find_export_statement: diag(95129, 3 /* Message */, \"Could_not_find_export_statement_95129\", \"Could not find export statement\"),\n  This_file_already_has_a_default_export: diag(95130, 3 /* Message */, \"This_file_already_has_a_default_export_95130\", \"This file already has a default export\"),\n  Could_not_find_import_clause: diag(95131, 3 /* Message */, \"Could_not_find_import_clause_95131\", \"Could not find import clause\"),\n  Could_not_find_namespace_import_or_named_imports: diag(95132, 3 /* Message */, \"Could_not_find_namespace_import_or_named_imports_95132\", \"Could not find namespace import or named imports\"),\n  Selection_is_not_a_valid_type_node: diag(95133, 3 /* Message */, \"Selection_is_not_a_valid_type_node_95133\", \"Selection is not a valid type node\"),\n  No_type_could_be_extracted_from_this_type_node: diag(95134, 3 /* Message */, \"No_type_could_be_extracted_from_this_type_node_95134\", \"No type could be extracted from this type node\"),\n  Could_not_find_property_for_which_to_generate_accessor: diag(95135, 3 /* Message */, \"Could_not_find_property_for_which_to_generate_accessor_95135\", \"Could not find property for which to generate accessor\"),\n  Name_is_not_valid: diag(95136, 3 /* Message */, \"Name_is_not_valid_95136\", \"Name is not valid\"),\n  Can_only_convert_property_with_modifier: diag(95137, 3 /* Message */, \"Can_only_convert_property_with_modifier_95137\", \"Can only convert property with modifier\"),\n  Switch_each_misused_0_to_1: diag(95138, 3 /* Message */, \"Switch_each_misused_0_to_1_95138\", \"Switch each misused '{0}' to '{1}'\"),\n  Convert_to_optional_chain_expression: diag(95139, 3 /* Message */, \"Convert_to_optional_chain_expression_95139\", \"Convert to optional chain expression\"),\n  Could_not_find_convertible_access_expression: diag(95140, 3 /* Message */, \"Could_not_find_convertible_access_expression_95140\", \"Could not find convertible access expression\"),\n  Could_not_find_matching_access_expressions: diag(95141, 3 /* Message */, \"Could_not_find_matching_access_expressions_95141\", \"Could not find matching access expressions\"),\n  Can_only_convert_logical_AND_access_chains: diag(95142, 3 /* Message */, \"Can_only_convert_logical_AND_access_chains_95142\", \"Can only convert logical AND access chains\"),\n  Add_void_to_Promise_resolved_without_a_value: diag(95143, 3 /* Message */, \"Add_void_to_Promise_resolved_without_a_value_95143\", \"Add 'void' to Promise resolved without a value\"),\n  Add_void_to_all_Promises_resolved_without_a_value: diag(95144, 3 /* Message */, \"Add_void_to_all_Promises_resolved_without_a_value_95144\", \"Add 'void' to all Promises resolved without a value\"),\n  Use_element_access_for_0: diag(95145, 3 /* Message */, \"Use_element_access_for_0_95145\", \"Use element access for '{0}'\"),\n  Use_element_access_for_all_undeclared_properties: diag(95146, 3 /* Message */, \"Use_element_access_for_all_undeclared_properties_95146\", \"Use element access for all undeclared properties.\"),\n  Delete_all_unused_imports: diag(95147, 3 /* Message */, \"Delete_all_unused_imports_95147\", \"Delete all unused imports\"),\n  Infer_function_return_type: diag(95148, 3 /* Message */, \"Infer_function_return_type_95148\", \"Infer function return type\"),\n  Return_type_must_be_inferred_from_a_function: diag(95149, 3 /* Message */, \"Return_type_must_be_inferred_from_a_function_95149\", \"Return type must be inferred from a function\"),\n  Could_not_determine_function_return_type: diag(95150, 3 /* Message */, \"Could_not_determine_function_return_type_95150\", \"Could not determine function return type\"),\n  Could_not_convert_to_arrow_function: diag(95151, 3 /* Message */, \"Could_not_convert_to_arrow_function_95151\", \"Could not convert to arrow function\"),\n  Could_not_convert_to_named_function: diag(95152, 3 /* Message */, \"Could_not_convert_to_named_function_95152\", \"Could not convert to named function\"),\n  Could_not_convert_to_anonymous_function: diag(95153, 3 /* Message */, \"Could_not_convert_to_anonymous_function_95153\", \"Could not convert to anonymous function\"),\n  Can_only_convert_string_concatenations_and_string_literals: diag(95154, 3 /* Message */, \"Can_only_convert_string_concatenations_and_string_literals_95154\", \"Can only convert string concatenations and string literals\"),\n  Selection_is_not_a_valid_statement_or_statements: diag(95155, 3 /* Message */, \"Selection_is_not_a_valid_statement_or_statements_95155\", \"Selection is not a valid statement or statements\"),\n  Add_missing_function_declaration_0: diag(95156, 3 /* Message */, \"Add_missing_function_declaration_0_95156\", \"Add missing function declaration '{0}'\"),\n  Add_all_missing_function_declarations: diag(95157, 3 /* Message */, \"Add_all_missing_function_declarations_95157\", \"Add all missing function declarations\"),\n  Method_not_implemented: diag(95158, 3 /* Message */, \"Method_not_implemented_95158\", \"Method not implemented.\"),\n  Function_not_implemented: diag(95159, 3 /* Message */, \"Function_not_implemented_95159\", \"Function not implemented.\"),\n  Add_override_modifier: diag(95160, 3 /* Message */, \"Add_override_modifier_95160\", \"Add 'override' modifier\"),\n  Remove_override_modifier: diag(95161, 3 /* Message */, \"Remove_override_modifier_95161\", \"Remove 'override' modifier\"),\n  Add_all_missing_override_modifiers: diag(95162, 3 /* Message */, \"Add_all_missing_override_modifiers_95162\", \"Add all missing 'override' modifiers\"),\n  Remove_all_unnecessary_override_modifiers: diag(95163, 3 /* Message */, \"Remove_all_unnecessary_override_modifiers_95163\", \"Remove all unnecessary 'override' modifiers\"),\n  Can_only_convert_named_export: diag(95164, 3 /* Message */, \"Can_only_convert_named_export_95164\", \"Can only convert named export\"),\n  Add_missing_properties: diag(95165, 3 /* Message */, \"Add_missing_properties_95165\", \"Add missing properties\"),\n  Add_all_missing_properties: diag(95166, 3 /* Message */, \"Add_all_missing_properties_95166\", \"Add all missing properties\"),\n  Add_missing_attributes: diag(95167, 3 /* Message */, \"Add_missing_attributes_95167\", \"Add missing attributes\"),\n  Add_all_missing_attributes: diag(95168, 3 /* Message */, \"Add_all_missing_attributes_95168\", \"Add all missing attributes\"),\n  Add_undefined_to_optional_property_type: diag(95169, 3 /* Message */, \"Add_undefined_to_optional_property_type_95169\", \"Add 'undefined' to optional property type\"),\n  Convert_named_imports_to_default_import: diag(95170, 3 /* Message */, \"Convert_named_imports_to_default_import_95170\", \"Convert named imports to default import\"),\n  Delete_unused_param_tag_0: diag(95171, 3 /* Message */, \"Delete_unused_param_tag_0_95171\", \"Delete unused '@param' tag '{0}'\"),\n  Delete_all_unused_param_tags: diag(95172, 3 /* Message */, \"Delete_all_unused_param_tags_95172\", \"Delete all unused '@param' tags\"),\n  Rename_param_tag_name_0_to_1: diag(95173, 3 /* Message */, \"Rename_param_tag_name_0_to_1_95173\", \"Rename '@param' tag name '{0}' to '{1}'\"),\n  Use_0: diag(95174, 3 /* Message */, \"Use_0_95174\", \"Use `{0}`.\"),\n  Use_Number_isNaN_in_all_conditions: diag(95175, 3 /* Message */, \"Use_Number_isNaN_in_all_conditions_95175\", \"Use `Number.isNaN` in all conditions.\"),\n  Convert_typedef_to_TypeScript_type: diag(95176, 3 /* Message */, \"Convert_typedef_to_TypeScript_type_95176\", \"Convert typedef to TypeScript type.\"),\n  Convert_all_typedef_to_TypeScript_types: diag(95177, 3 /* Message */, \"Convert_all_typedef_to_TypeScript_types_95177\", \"Convert all typedef to TypeScript types.\"),\n  Move_to_file: diag(95178, 3 /* Message */, \"Move_to_file_95178\", \"Move to file\"),\n  Cannot_move_to_file_selected_file_is_invalid: diag(95179, 3 /* Message */, \"Cannot_move_to_file_selected_file_is_invalid_95179\", \"Cannot move to file, selected file is invalid\"),\n  Use_import_type: diag(95180, 3 /* Message */, \"Use_import_type_95180\", \"Use 'import type'\"),\n  Use_type_0: diag(95181, 3 /* Message */, \"Use_type_0_95181\", \"Use 'type {0}'\"),\n  Fix_all_with_type_only_imports: diag(95182, 3 /* Message */, \"Fix_all_with_type_only_imports_95182\", \"Fix all with type-only imports\"),\n  Cannot_move_statements_to_the_selected_file: diag(95183, 3 /* Message */, \"Cannot_move_statements_to_the_selected_file_95183\", \"Cannot move statements to the selected file\"),\n  Inline_variable: diag(95184, 3 /* Message */, \"Inline_variable_95184\", \"Inline variable\"),\n  Could_not_find_variable_to_inline: diag(95185, 3 /* Message */, \"Could_not_find_variable_to_inline_95185\", \"Could not find variable to inline.\"),\n  Variables_with_multiple_declarations_cannot_be_inlined: diag(95186, 3 /* Message */, \"Variables_with_multiple_declarations_cannot_be_inlined_95186\", \"Variables with multiple declarations cannot be inlined.\"),\n  Add_missing_comma_for_object_member_completion_0: diag(95187, 3 /* Message */, \"Add_missing_comma_for_object_member_completion_0_95187\", \"Add missing comma for object member completion '{0}'.\"),\n  Add_missing_parameter_to_0: diag(95188, 3 /* Message */, \"Add_missing_parameter_to_0_95188\", \"Add missing parameter to '{0}'\"),\n  Add_missing_parameters_to_0: diag(95189, 3 /* Message */, \"Add_missing_parameters_to_0_95189\", \"Add missing parameters to '{0}'\"),\n  Add_all_missing_parameters: diag(95190, 3 /* Message */, \"Add_all_missing_parameters_95190\", \"Add all missing parameters\"),\n  Add_optional_parameter_to_0: diag(95191, 3 /* Message */, \"Add_optional_parameter_to_0_95191\", \"Add optional parameter to '{0}'\"),\n  Add_optional_parameters_to_0: diag(95192, 3 /* Message */, \"Add_optional_parameters_to_0_95192\", \"Add optional parameters to '{0}'\"),\n  Add_all_optional_parameters: diag(95193, 3 /* Message */, \"Add_all_optional_parameters_95193\", \"Add all optional parameters\"),\n  Wrap_in_parentheses: diag(95194, 3 /* Message */, \"Wrap_in_parentheses_95194\", \"Wrap in parentheses\"),\n  Wrap_all_invalid_decorator_expressions_in_parentheses: diag(95195, 3 /* Message */, \"Wrap_all_invalid_decorator_expressions_in_parentheses_95195\", \"Wrap all invalid decorator expressions in parentheses\"),\n  Add_resolution_mode_import_attribute: diag(95196, 3 /* Message */, \"Add_resolution_mode_import_attribute_95196\", \"Add 'resolution-mode' import attribute\"),\n  Add_resolution_mode_import_attribute_to_all_type_only_imports_that_need_it: diag(95197, 3 /* Message */, \"Add_resolution_mode_import_attribute_to_all_type_only_imports_that_need_it_95197\", \"Add 'resolution-mode' import attribute to all type-only imports that need it\"),\n  No_value_exists_in_scope_for_the_shorthand_property_0_Either_declare_one_or_provide_an_initializer: diag(18004, 1 /* Error */, \"No_value_exists_in_scope_for_the_shorthand_property_0_Either_declare_one_or_provide_an_initializer_18004\", \"No value exists in scope for the shorthand property '{0}'. Either declare one or provide an initializer.\"),\n  Classes_may_not_have_a_field_named_constructor: diag(18006, 1 /* Error */, \"Classes_may_not_have_a_field_named_constructor_18006\", \"Classes may not have a field named 'constructor'.\"),\n  JSX_expressions_may_not_use_the_comma_operator_Did_you_mean_to_write_an_array: diag(18007, 1 /* Error */, \"JSX_expressions_may_not_use_the_comma_operator_Did_you_mean_to_write_an_array_18007\", \"JSX expressions may not use the comma operator. Did you mean to write an array?\"),\n  Private_identifiers_cannot_be_used_as_parameters: diag(18009, 1 /* Error */, \"Private_identifiers_cannot_be_used_as_parameters_18009\", \"Private identifiers cannot be used as parameters.\"),\n  An_accessibility_modifier_cannot_be_used_with_a_private_identifier: diag(18010, 1 /* Error */, \"An_accessibility_modifier_cannot_be_used_with_a_private_identifier_18010\", \"An accessibility modifier cannot be used with a private identifier.\"),\n  The_operand_of_a_delete_operator_cannot_be_a_private_identifier: diag(18011, 1 /* Error */, \"The_operand_of_a_delete_operator_cannot_be_a_private_identifier_18011\", \"The operand of a 'delete' operator cannot be a private identifier.\"),\n  constructor_is_a_reserved_word: diag(18012, 1 /* Error */, \"constructor_is_a_reserved_word_18012\", \"'#constructor' is a reserved word.\"),\n  Property_0_is_not_accessible_outside_class_1_because_it_has_a_private_identifier: diag(18013, 1 /* Error */, \"Property_0_is_not_accessible_outside_class_1_because_it_has_a_private_identifier_18013\", \"Property '{0}' is not accessible outside class '{1}' because it has a private identifier.\"),\n  The_property_0_cannot_be_accessed_on_type_1_within_this_class_because_it_is_shadowed_by_another_private_identifier_with_the_same_spelling: diag(18014, 1 /* Error */, \"The_property_0_cannot_be_accessed_on_type_1_within_this_class_because_it_is_shadowed_by_another_priv_18014\", \"The property '{0}' cannot be accessed on type '{1}' within this class because it is shadowed by another private identifier with the same spelling.\"),\n  Property_0_in_type_1_refers_to_a_different_member_that_cannot_be_accessed_from_within_type_2: diag(18015, 1 /* Error */, \"Property_0_in_type_1_refers_to_a_different_member_that_cannot_be_accessed_from_within_type_2_18015\", \"Property '{0}' in type '{1}' refers to a different member that cannot be accessed from within type '{2}'.\"),\n  Private_identifiers_are_not_allowed_outside_class_bodies: diag(18016, 1 /* Error */, \"Private_identifiers_are_not_allowed_outside_class_bodies_18016\", \"Private identifiers are not allowed outside class bodies.\"),\n  The_shadowing_declaration_of_0_is_defined_here: diag(18017, 1 /* Error */, \"The_shadowing_declaration_of_0_is_defined_here_18017\", \"The shadowing declaration of '{0}' is defined here\"),\n  The_declaration_of_0_that_you_probably_intended_to_use_is_defined_here: diag(18018, 1 /* Error */, \"The_declaration_of_0_that_you_probably_intended_to_use_is_defined_here_18018\", \"The declaration of '{0}' that you probably intended to use is defined here\"),\n  _0_modifier_cannot_be_used_with_a_private_identifier: diag(18019, 1 /* Error */, \"_0_modifier_cannot_be_used_with_a_private_identifier_18019\", \"'{0}' modifier cannot be used with a private identifier.\"),\n  An_enum_member_cannot_be_named_with_a_private_identifier: diag(18024, 1 /* Error */, \"An_enum_member_cannot_be_named_with_a_private_identifier_18024\", \"An enum member cannot be named with a private identifier.\"),\n  can_only_be_used_at_the_start_of_a_file: diag(18026, 1 /* Error */, \"can_only_be_used_at_the_start_of_a_file_18026\", \"'#!' can only be used at the start of a file.\"),\n  Compiler_reserves_name_0_when_emitting_private_identifier_downlevel: diag(18027, 1 /* Error */, \"Compiler_reserves_name_0_when_emitting_private_identifier_downlevel_18027\", \"Compiler reserves name '{0}' when emitting private identifier downlevel.\"),\n  Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher: diag(18028, 1 /* Error */, \"Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher_18028\", \"Private identifiers are only available when targeting ECMAScript 2015 and higher.\"),\n  Private_identifiers_are_not_allowed_in_variable_declarations: diag(18029, 1 /* Error */, \"Private_identifiers_are_not_allowed_in_variable_declarations_18029\", \"Private identifiers are not allowed in variable declarations.\"),\n  An_optional_chain_cannot_contain_private_identifiers: diag(18030, 1 /* Error */, \"An_optional_chain_cannot_contain_private_identifiers_18030\", \"An optional chain cannot contain private identifiers.\"),\n  The_intersection_0_was_reduced_to_never_because_property_1_has_conflicting_types_in_some_constituents: diag(18031, 1 /* Error */, \"The_intersection_0_was_reduced_to_never_because_property_1_has_conflicting_types_in_some_constituent_18031\", \"The intersection '{0}' was reduced to 'never' because property '{1}' has conflicting types in some constituents.\"),\n  The_intersection_0_was_reduced_to_never_because_property_1_exists_in_multiple_constituents_and_is_private_in_some: diag(18032, 1 /* Error */, \"The_intersection_0_was_reduced_to_never_because_property_1_exists_in_multiple_constituents_and_is_pr_18032\", \"The intersection '{0}' was reduced to 'never' because property '{1}' exists in multiple constituents and is private in some.\"),\n  Type_0_is_not_assignable_to_type_1_as_required_for_computed_enum_member_values: diag(18033, 1 /* Error */, \"Type_0_is_not_assignable_to_type_1_as_required_for_computed_enum_member_values_18033\", \"Type '{0}' is not assignable to type '{1}' as required for computed enum member values.\"),\n  Specify_the_JSX_fragment_factory_function_to_use_when_targeting_react_JSX_emit_with_jsxFactory_compiler_option_is_specified_e_g_Fragment: diag(18034, 3 /* Message */, \"Specify_the_JSX_fragment_factory_function_to_use_when_targeting_react_JSX_emit_with_jsxFactory_compi_18034\", \"Specify the JSX fragment factory function to use when targeting 'react' JSX emit with 'jsxFactory' compiler option is specified, e.g. 'Fragment'.\"),\n  Invalid_value_for_jsxFragmentFactory_0_is_not_a_valid_identifier_or_qualified_name: diag(18035, 1 /* Error */, \"Invalid_value_for_jsxFragmentFactory_0_is_not_a_valid_identifier_or_qualified_name_18035\", \"Invalid value for 'jsxFragmentFactory'. '{0}' is not a valid identifier or qualified-name.\"),\n  Class_decorators_can_t_be_used_with_static_private_identifier_Consider_removing_the_experimental_decorator: diag(18036, 1 /* Error */, \"Class_decorators_can_t_be_used_with_static_private_identifier_Consider_removing_the_experimental_dec_18036\", \"Class decorators can't be used with static private identifier. Consider removing the experimental decorator.\"),\n  await_expression_cannot_be_used_inside_a_class_static_block: diag(18037, 1 /* Error */, \"await_expression_cannot_be_used_inside_a_class_static_block_18037\", \"'await' expression cannot be used inside a class static block.\"),\n  for_await_loops_cannot_be_used_inside_a_class_static_block: diag(18038, 1 /* Error */, \"for_await_loops_cannot_be_used_inside_a_class_static_block_18038\", \"'for await' loops cannot be used inside a class static block.\"),\n  Invalid_use_of_0_It_cannot_be_used_inside_a_class_static_block: diag(18039, 1 /* Error */, \"Invalid_use_of_0_It_cannot_be_used_inside_a_class_static_block_18039\", \"Invalid use of '{0}'. It cannot be used inside a class static block.\"),\n  A_return_statement_cannot_be_used_inside_a_class_static_block: diag(18041, 1 /* Error */, \"A_return_statement_cannot_be_used_inside_a_class_static_block_18041\", \"A 'return' statement cannot be used inside a class static block.\"),\n  _0_is_a_type_and_cannot_be_imported_in_JavaScript_files_Use_1_in_a_JSDoc_type_annotation: diag(18042, 1 /* Error */, \"_0_is_a_type_and_cannot_be_imported_in_JavaScript_files_Use_1_in_a_JSDoc_type_annotation_18042\", \"'{0}' is a type and cannot be imported in JavaScript files. Use '{1}' in a JSDoc type annotation.\"),\n  Types_cannot_appear_in_export_declarations_in_JavaScript_files: diag(18043, 1 /* Error */, \"Types_cannot_appear_in_export_declarations_in_JavaScript_files_18043\", \"Types cannot appear in export declarations in JavaScript files.\"),\n  _0_is_automatically_exported_here: diag(18044, 3 /* Message */, \"_0_is_automatically_exported_here_18044\", \"'{0}' is automatically exported here.\"),\n  Properties_with_the_accessor_modifier_are_only_available_when_targeting_ECMAScript_2015_and_higher: diag(18045, 1 /* Error */, \"Properties_with_the_accessor_modifier_are_only_available_when_targeting_ECMAScript_2015_and_higher_18045\", \"Properties with the 'accessor' modifier are only available when targeting ECMAScript 2015 and higher.\"),\n  _0_is_of_type_unknown: diag(18046, 1 /* Error */, \"_0_is_of_type_unknown_18046\", \"'{0}' is of type 'unknown'.\"),\n  _0_is_possibly_null: diag(18047, 1 /* Error */, \"_0_is_possibly_null_18047\", \"'{0}' is possibly 'null'.\"),\n  _0_is_possibly_undefined: diag(18048, 1 /* Error */, \"_0_is_possibly_undefined_18048\", \"'{0}' is possibly 'undefined'.\"),\n  _0_is_possibly_null_or_undefined: diag(18049, 1 /* Error */, \"_0_is_possibly_null_or_undefined_18049\", \"'{0}' is possibly 'null' or 'undefined'.\"),\n  The_value_0_cannot_be_used_here: diag(18050, 1 /* Error */, \"The_value_0_cannot_be_used_here_18050\", \"The value '{0}' cannot be used here.\"),\n  Compiler_option_0_cannot_be_given_an_empty_string: diag(18051, 1 /* Error */, \"Compiler_option_0_cannot_be_given_an_empty_string_18051\", \"Compiler option '{0}' cannot be given an empty string.\"),\n  Its_type_0_is_not_a_valid_JSX_element_type: diag(18053, 1 /* Error */, \"Its_type_0_is_not_a_valid_JSX_element_type_18053\", \"Its type '{0}' is not a valid JSX element type.\"),\n  await_using_statements_cannot_be_used_inside_a_class_static_block: diag(18054, 1 /* Error */, \"await_using_statements_cannot_be_used_inside_a_class_static_block_18054\", \"'await using' statements cannot be used inside a class static block.\"),\n  _0_has_a_string_type_but_must_have_syntactically_recognizable_string_syntax_when_isolatedModules_is_enabled: diag(18055, 1 /* Error */, \"_0_has_a_string_type_but_must_have_syntactically_recognizable_string_syntax_when_isolatedModules_is__18055\", \"'{0}' has a string type, but must have syntactically recognizable string syntax when 'isolatedModules' is enabled.\"),\n  Enum_member_following_a_non_literal_numeric_member_must_have_an_initializer_when_isolatedModules_is_enabled: diag(18056, 1 /* Error */, \"Enum_member_following_a_non_literal_numeric_member_must_have_an_initializer_when_isolatedModules_is__18056\", \"Enum member following a non-literal numeric member must have an initializer when 'isolatedModules' is enabled.\"),\n  String_literal_import_and_export_names_are_not_supported_when_the_module_flag_is_set_to_es2015_or_es2020: diag(18057, 1 /* Error */, \"String_literal_import_and_export_names_are_not_supported_when_the_module_flag_is_set_to_es2015_or_es_18057\", \"String literal import and export names are not supported when the '--module' flag is set to 'es2015' or 'es2020'.\"),\n  Default_imports_are_not_allowed_in_a_deferred_import: diag(18058, 1 /* Error */, \"Default_imports_are_not_allowed_in_a_deferred_import_18058\", \"Default imports are not allowed in a deferred import.\"),\n  Named_imports_are_not_allowed_in_a_deferred_import: diag(18059, 1 /* Error */, \"Named_imports_are_not_allowed_in_a_deferred_import_18059\", \"Named imports are not allowed in a deferred import.\"),\n  Deferred_imports_are_only_supported_when_the_module_flag_is_set_to_esnext_or_preserve: diag(18060, 1 /* Error */, \"Deferred_imports_are_only_supported_when_the_module_flag_is_set_to_esnext_or_preserve_18060\", \"Deferred imports are only supported when the '--module' flag is set to 'esnext' or 'preserve'.\"),\n  _0_is_not_a_valid_meta_property_for_keyword_import_Did_you_mean_meta_or_defer: diag(18061, 1 /* Error */, \"_0_is_not_a_valid_meta_property_for_keyword_import_Did_you_mean_meta_or_defer_18061\", \"'{0}' is not a valid meta-property for keyword 'import'. Did you mean 'meta' or 'defer'?\")\n};\n\n// src/compiler/scanner.ts\nfunction tokenIsIdentifierOrKeyword(token) {\n  return token >= 80 /* Identifier */;\n}\nfunction tokenIsIdentifierOrKeywordOrGreaterThan(token) {\n  return token === 32 /* GreaterThanToken */ || tokenIsIdentifierOrKeyword(token);\n}\nvar textToKeywordObj = {\n  abstract: 128 /* AbstractKeyword */,\n  accessor: 129 /* AccessorKeyword */,\n  any: 133 /* AnyKeyword */,\n  as: 130 /* AsKeyword */,\n  asserts: 131 /* AssertsKeyword */,\n  assert: 132 /* AssertKeyword */,\n  bigint: 163 /* BigIntKeyword */,\n  boolean: 136 /* BooleanKeyword */,\n  break: 83 /* BreakKeyword */,\n  case: 84 /* CaseKeyword */,\n  catch: 85 /* CatchKeyword */,\n  class: 86 /* ClassKeyword */,\n  continue: 88 /* ContinueKeyword */,\n  const: 87 /* ConstKeyword */,\n  [\"constructor\"]: 137 /* ConstructorKeyword */,\n  debugger: 89 /* DebuggerKeyword */,\n  declare: 138 /* DeclareKeyword */,\n  default: 90 /* DefaultKeyword */,\n  defer: 166 /* DeferKeyword */,\n  delete: 91 /* DeleteKeyword */,\n  do: 92 /* DoKeyword */,\n  else: 93 /* ElseKeyword */,\n  enum: 94 /* EnumKeyword */,\n  export: 95 /* ExportKeyword */,\n  extends: 96 /* ExtendsKeyword */,\n  false: 97 /* FalseKeyword */,\n  finally: 98 /* FinallyKeyword */,\n  for: 99 /* ForKeyword */,\n  from: 161 /* FromKeyword */,\n  function: 100 /* FunctionKeyword */,\n  get: 139 /* GetKeyword */,\n  if: 101 /* IfKeyword */,\n  implements: 119 /* ImplementsKeyword */,\n  import: 102 /* ImportKeyword */,\n  in: 103 /* InKeyword */,\n  infer: 140 /* InferKeyword */,\n  instanceof: 104 /* InstanceOfKeyword */,\n  interface: 120 /* InterfaceKeyword */,\n  intrinsic: 141 /* IntrinsicKeyword */,\n  is: 142 /* IsKeyword */,\n  keyof: 143 /* KeyOfKeyword */,\n  let: 121 /* LetKeyword */,\n  module: 144 /* ModuleKeyword */,\n  namespace: 145 /* NamespaceKeyword */,\n  never: 146 /* NeverKeyword */,\n  new: 105 /* NewKeyword */,\n  null: 106 /* NullKeyword */,\n  number: 150 /* NumberKeyword */,\n  object: 151 /* ObjectKeyword */,\n  package: 122 /* PackageKeyword */,\n  private: 123 /* PrivateKeyword */,\n  protected: 124 /* ProtectedKeyword */,\n  public: 125 /* PublicKeyword */,\n  override: 164 /* OverrideKeyword */,\n  out: 147 /* OutKeyword */,\n  readonly: 148 /* ReadonlyKeyword */,\n  require: 149 /* RequireKeyword */,\n  global: 162 /* GlobalKeyword */,\n  return: 107 /* ReturnKeyword */,\n  satisfies: 152 /* SatisfiesKeyword */,\n  set: 153 /* SetKeyword */,\n  static: 126 /* StaticKeyword */,\n  string: 154 /* StringKeyword */,\n  super: 108 /* SuperKeyword */,\n  switch: 109 /* SwitchKeyword */,\n  symbol: 155 /* SymbolKeyword */,\n  this: 110 /* ThisKeyword */,\n  throw: 111 /* ThrowKeyword */,\n  true: 112 /* TrueKeyword */,\n  try: 113 /* TryKeyword */,\n  type: 156 /* TypeKeyword */,\n  typeof: 114 /* TypeOfKeyword */,\n  undefined: 157 /* UndefinedKeyword */,\n  unique: 158 /* UniqueKeyword */,\n  unknown: 159 /* UnknownKeyword */,\n  using: 160 /* UsingKeyword */,\n  var: 115 /* VarKeyword */,\n  void: 116 /* VoidKeyword */,\n  while: 117 /* WhileKeyword */,\n  with: 118 /* WithKeyword */,\n  yield: 127 /* YieldKeyword */,\n  async: 134 /* AsyncKeyword */,\n  await: 135 /* AwaitKeyword */,\n  of: 165 /* OfKeyword */\n};\nvar textToKeyword = new Map(Object.entries(textToKeywordObj));\nvar textToToken = new Map(Object.entries({\n  ...textToKeywordObj,\n  \"{\": 19 /* OpenBraceToken */,\n  \"}\": 20 /* CloseBraceToken */,\n  \"(\": 21 /* OpenParenToken */,\n  \")\": 22 /* CloseParenToken */,\n  \"[\": 23 /* OpenBracketToken */,\n  \"]\": 24 /* CloseBracketToken */,\n  \".\": 25 /* DotToken */,\n  \"...\": 26 /* DotDotDotToken */,\n  \";\": 27 /* SemicolonToken */,\n  \",\": 28 /* CommaToken */,\n  \"<\": 30 /* LessThanToken */,\n  \">\": 32 /* GreaterThanToken */,\n  \"<=\": 33 /* LessThanEqualsToken */,\n  \">=\": 34 /* GreaterThanEqualsToken */,\n  \"==\": 35 /* EqualsEqualsToken */,\n  \"!=\": 36 /* ExclamationEqualsToken */,\n  \"===\": 37 /* EqualsEqualsEqualsToken */,\n  \"!==\": 38 /* ExclamationEqualsEqualsToken */,\n  \"=>\": 39 /* EqualsGreaterThanToken */,\n  \"+\": 40 /* PlusToken */,\n  \"-\": 41 /* MinusToken */,\n  \"**\": 43 /* AsteriskAsteriskToken */,\n  \"*\": 42 /* AsteriskToken */,\n  \"/\": 44 /* SlashToken */,\n  \"%\": 45 /* PercentToken */,\n  \"++\": 46 /* PlusPlusToken */,\n  \"--\": 47 /* MinusMinusToken */,\n  \"<<\": 48 /* LessThanLessThanToken */,\n  \"</\": 31 /* LessThanSlashToken */,\n  \">>\": 49 /* GreaterThanGreaterThanToken */,\n  \">>>\": 50 /* GreaterThanGreaterThanGreaterThanToken */,\n  \"&\": 51 /* AmpersandToken */,\n  \"|\": 52 /* BarToken */,\n  \"^\": 53 /* CaretToken */,\n  \"!\": 54 /* ExclamationToken */,\n  \"~\": 55 /* TildeToken */,\n  \"&&\": 56 /* AmpersandAmpersandToken */,\n  \"||\": 57 /* BarBarToken */,\n  \"?\": 58 /* QuestionToken */,\n  \"??\": 61 /* QuestionQuestionToken */,\n  \"?.\": 29 /* QuestionDotToken */,\n  \":\": 59 /* ColonToken */,\n  \"=\": 64 /* EqualsToken */,\n  \"+=\": 65 /* PlusEqualsToken */,\n  \"-=\": 66 /* MinusEqualsToken */,\n  \"*=\": 67 /* AsteriskEqualsToken */,\n  \"**=\": 68 /* AsteriskAsteriskEqualsToken */,\n  \"/=\": 69 /* SlashEqualsToken */,\n  \"%=\": 70 /* PercentEqualsToken */,\n  \"<<=\": 71 /* LessThanLessThanEqualsToken */,\n  \">>=\": 72 /* GreaterThanGreaterThanEqualsToken */,\n  \">>>=\": 73 /* GreaterThanGreaterThanGreaterThanEqualsToken */,\n  \"&=\": 74 /* AmpersandEqualsToken */,\n  \"|=\": 75 /* BarEqualsToken */,\n  \"^=\": 79 /* CaretEqualsToken */,\n  \"||=\": 76 /* BarBarEqualsToken */,\n  \"&&=\": 77 /* AmpersandAmpersandEqualsToken */,\n  \"??=\": 78 /* QuestionQuestionEqualsToken */,\n  \"@\": 60 /* AtToken */,\n  \"#\": 63 /* HashToken */,\n  \"`\": 62 /* BacktickToken */\n}));\nvar charCodeToRegExpFlag = /* @__PURE__ */ new Map([\n  [100 /* d */, 1 /* HasIndices */],\n  [103 /* g */, 2 /* Global */],\n  [105 /* i */, 4 /* IgnoreCase */],\n  [109 /* m */, 8 /* Multiline */],\n  [115 /* s */, 16 /* DotAll */],\n  [117 /* u */, 32 /* Unicode */],\n  [118 /* v */, 64 /* UnicodeSets */],\n  [121 /* y */, 128 /* Sticky */]\n]);\nvar regExpFlagToFirstAvailableLanguageVersion = /* @__PURE__ */ new Map([\n  [1 /* HasIndices */, LanguageFeatureMinimumTarget.RegularExpressionFlagsHasIndices],\n  [16 /* DotAll */, LanguageFeatureMinimumTarget.RegularExpressionFlagsDotAll],\n  [32 /* Unicode */, LanguageFeatureMinimumTarget.RegularExpressionFlagsUnicode],\n  [64 /* UnicodeSets */, LanguageFeatureMinimumTarget.RegularExpressionFlagsUnicodeSets],\n  [128 /* Sticky */, LanguageFeatureMinimumTarget.RegularExpressionFlagsSticky]\n]);\nvar unicodeES5IdentifierStart = [170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 705, 710, 721, 736, 740, 748, 748, 750, 750, 880, 884, 886, 887, 890, 893, 902, 902, 904, 906, 908, 908, 910, 929, 931, 1013, 1015, 1153, 1162, 1319, 1329, 1366, 1369, 1369, 1377, 1415, 1488, 1514, 1520, 1522, 1568, 1610, 1646, 1647, 1649, 1747, 1749, 1749, 1765, 1766, 1774, 1775, 1786, 1788, 1791, 1791, 1808, 1808, 1810, 1839, 1869, 1957, 1969, 1969, 1994, 2026, 2036, 2037, 2042, 2042, 2048, 2069, 2074, 2074, 2084, 2084, 2088, 2088, 2112, 2136, 2208, 2208, 2210, 2220, 2308, 2361, 2365, 2365, 2384, 2384, 2392, 2401, 2417, 2423, 2425, 2431, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2493, 2493, 2510, 2510, 2524, 2525, 2527, 2529, 2544, 2545, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2649, 2652, 2654, 2654, 2674, 2676, 2693, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2749, 2749, 2768, 2768, 2784, 2785, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2869, 2873, 2877, 2877, 2908, 2909, 2911, 2913, 2929, 2929, 2947, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3024, 3024, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3133, 3133, 3160, 3161, 3168, 3169, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3261, 3261, 3294, 3294, 3296, 3297, 3313, 3314, 3333, 3340, 3342, 3344, 3346, 3386, 3389, 3389, 3406, 3406, 3424, 3425, 3450, 3455, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3585, 3632, 3634, 3635, 3648, 3654, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3760, 3762, 3763, 3773, 3773, 3776, 3780, 3782, 3782, 3804, 3807, 3840, 3840, 3904, 3911, 3913, 3948, 3976, 3980, 4096, 4138, 4159, 4159, 4176, 4181, 4186, 4189, 4193, 4193, 4197, 4198, 4206, 4208, 4213, 4225, 4238, 4238, 4256, 4293, 4295, 4295, 4301, 4301, 4304, 4346, 4348, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4744, 4746, 4749, 4752, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4822, 4824, 4880, 4882, 4885, 4888, 4954, 4992, 5007, 5024, 5108, 5121, 5740, 5743, 5759, 5761, 5786, 5792, 5866, 5870, 5872, 5888, 5900, 5902, 5905, 5920, 5937, 5952, 5969, 5984, 5996, 5998, 6e3, 6016, 6067, 6103, 6103, 6108, 6108, 6176, 6263, 6272, 6312, 6314, 6314, 6320, 6389, 6400, 6428, 6480, 6509, 6512, 6516, 6528, 6571, 6593, 6599, 6656, 6678, 6688, 6740, 6823, 6823, 6917, 6963, 6981, 6987, 7043, 7072, 7086, 7087, 7098, 7141, 7168, 7203, 7245, 7247, 7258, 7293, 7401, 7404, 7406, 7409, 7413, 7414, 7424, 7615, 7680, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8305, 8305, 8319, 8319, 8336, 8348, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8505, 8508, 8511, 8517, 8521, 8526, 8526, 8544, 8584, 11264, 11310, 11312, 11358, 11360, 11492, 11499, 11502, 11506, 11507, 11520, 11557, 11559, 11559, 11565, 11565, 11568, 11623, 11631, 11631, 11648, 11670, 11680, 11686, 11688, 11694, 11696, 11702, 11704, 11710, 11712, 11718, 11720, 11726, 11728, 11734, 11736, 11742, 11823, 11823, 12293, 12295, 12321, 12329, 12337, 12341, 12344, 12348, 12353, 12438, 12445, 12447, 12449, 12538, 12540, 12543, 12549, 12589, 12593, 12686, 12704, 12730, 12784, 12799, 13312, 19893, 19968, 40908, 40960, 42124, 42192, 42237, 42240, 42508, 42512, 42527, 42538, 42539, 42560, 42606, 42623, 42647, 42656, 42735, 42775, 42783, 42786, 42888, 42891, 42894, 42896, 42899, 42912, 42922, 43e3, 43009, 43011, 43013, 43015, 43018, 43020, 43042, 43072, 43123, 43138, 43187, 43250, 43255, 43259, 43259, 43274, 43301, 43312, 43334, 43360, 43388, 43396, 43442, 43471, 43471, 43520, 43560, 43584, 43586, 43588, 43595, 43616, 43638, 43642, 43642, 43648, 43695, 43697, 43697, 43701, 43702, 43705, 43709, 43712, 43712, 43714, 43714, 43739, 43741, 43744, 43754, 43762, 43764, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43814, 43816, 43822, 43968, 44002, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64285, 64287, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65136, 65140, 65142, 65276, 65313, 65338, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500];\nvar unicodeES5IdentifierPart = [170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 705, 710, 721, 736, 740, 748, 748, 750, 750, 768, 884, 886, 887, 890, 893, 902, 902, 904, 906, 908, 908, 910, 929, 931, 1013, 1015, 1153, 1155, 1159, 1162, 1319, 1329, 1366, 1369, 1369, 1377, 1415, 1425, 1469, 1471, 1471, 1473, 1474, 1476, 1477, 1479, 1479, 1488, 1514, 1520, 1522, 1552, 1562, 1568, 1641, 1646, 1747, 1749, 1756, 1759, 1768, 1770, 1788, 1791, 1791, 1808, 1866, 1869, 1969, 1984, 2037, 2042, 2042, 2048, 2093, 2112, 2139, 2208, 2208, 2210, 2220, 2276, 2302, 2304, 2403, 2406, 2415, 2417, 2423, 2425, 2431, 2433, 2435, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2492, 2500, 2503, 2504, 2507, 2510, 2519, 2519, 2524, 2525, 2527, 2531, 2534, 2545, 2561, 2563, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2620, 2620, 2622, 2626, 2631, 2632, 2635, 2637, 2641, 2641, 2649, 2652, 2654, 2654, 2662, 2677, 2689, 2691, 2693, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2748, 2757, 2759, 2761, 2763, 2765, 2768, 2768, 2784, 2787, 2790, 2799, 2817, 2819, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2869, 2873, 2876, 2884, 2887, 2888, 2891, 2893, 2902, 2903, 2908, 2909, 2911, 2915, 2918, 2927, 2929, 2929, 2946, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3006, 3010, 3014, 3016, 3018, 3021, 3024, 3024, 3031, 3031, 3046, 3055, 3073, 3075, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3133, 3140, 3142, 3144, 3146, 3149, 3157, 3158, 3160, 3161, 3168, 3171, 3174, 3183, 3202, 3203, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3260, 3268, 3270, 3272, 3274, 3277, 3285, 3286, 3294, 3294, 3296, 3299, 3302, 3311, 3313, 3314, 3330, 3331, 3333, 3340, 3342, 3344, 3346, 3386, 3389, 3396, 3398, 3400, 3402, 3406, 3415, 3415, 3424, 3427, 3430, 3439, 3450, 3455, 3458, 3459, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3530, 3530, 3535, 3540, 3542, 3542, 3544, 3551, 3570, 3571, 3585, 3642, 3648, 3662, 3664, 3673, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3769, 3771, 3773, 3776, 3780, 3782, 3782, 3784, 3789, 3792, 3801, 3804, 3807, 3840, 3840, 3864, 3865, 3872, 3881, 3893, 3893, 3895, 3895, 3897, 3897, 3902, 3911, 3913, 3948, 3953, 3972, 3974, 3991, 3993, 4028, 4038, 4038, 4096, 4169, 4176, 4253, 4256, 4293, 4295, 4295, 4301, 4301, 4304, 4346, 4348, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4744, 4746, 4749, 4752, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4822, 4824, 4880, 4882, 4885, 4888, 4954, 4957, 4959, 4992, 5007, 5024, 5108, 5121, 5740, 5743, 5759, 5761, 5786, 5792, 5866, 5870, 5872, 5888, 5900, 5902, 5908, 5920, 5940, 5952, 5971, 5984, 5996, 5998, 6e3, 6002, 6003, 6016, 6099, 6103, 6103, 6108, 6109, 6112, 6121, 6155, 6157, 6160, 6169, 6176, 6263, 6272, 6314, 6320, 6389, 6400, 6428, 6432, 6443, 6448, 6459, 6470, 6509, 6512, 6516, 6528, 6571, 6576, 6601, 6608, 6617, 6656, 6683, 6688, 6750, 6752, 6780, 6783, 6793, 6800, 6809, 6823, 6823, 6912, 6987, 6992, 7001, 7019, 7027, 7040, 7155, 7168, 7223, 7232, 7241, 7245, 7293, 7376, 7378, 7380, 7414, 7424, 7654, 7676, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8204, 8205, 8255, 8256, 8276, 8276, 8305, 8305, 8319, 8319, 8336, 8348, 8400, 8412, 8417, 8417, 8421, 8432, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8505, 8508, 8511, 8517, 8521, 8526, 8526, 8544, 8584, 11264, 11310, 11312, 11358, 11360, 11492, 11499, 11507, 11520, 11557, 11559, 11559, 11565, 11565, 11568, 11623, 11631, 11631, 11647, 11670, 11680, 11686, 11688, 11694, 11696, 11702, 11704, 11710, 11712, 11718, 11720, 11726, 11728, 11734, 11736, 11742, 11744, 11775, 11823, 11823, 12293, 12295, 12321, 12335, 12337, 12341, 12344, 12348, 12353, 12438, 12441, 12442, 12445, 12447, 12449, 12538, 12540, 12543, 12549, 12589, 12593, 12686, 12704, 12730, 12784, 12799, 13312, 19893, 19968, 40908, 40960, 42124, 42192, 42237, 42240, 42508, 42512, 42539, 42560, 42607, 42612, 42621, 42623, 42647, 42655, 42737, 42775, 42783, 42786, 42888, 42891, 42894, 42896, 42899, 42912, 42922, 43e3, 43047, 43072, 43123, 43136, 43204, 43216, 43225, 43232, 43255, 43259, 43259, 43264, 43309, 43312, 43347, 43360, 43388, 43392, 43456, 43471, 43481, 43520, 43574, 43584, 43597, 43600, 43609, 43616, 43638, 43642, 43643, 43648, 43714, 43739, 43741, 43744, 43759, 43762, 43766, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43814, 43816, 43822, 43968, 44010, 44012, 44013, 44016, 44025, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65024, 65039, 65056, 65062, 65075, 65076, 65101, 65103, 65136, 65140, 65142, 65276, 65296, 65305, 65313, 65338, 65343, 65343, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500];\nvar unicodeESNextIdentifierStart = [65, 90, 97, 122, 170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 705, 710, 721, 736, 740, 748, 748, 750, 750, 880, 884, 886, 887, 890, 893, 895, 895, 902, 902, 904, 906, 908, 908, 910, 929, 931, 1013, 1015, 1153, 1162, 1327, 1329, 1366, 1369, 1369, 1376, 1416, 1488, 1514, 1519, 1522, 1568, 1610, 1646, 1647, 1649, 1747, 1749, 1749, 1765, 1766, 1774, 1775, 1786, 1788, 1791, 1791, 1808, 1808, 1810, 1839, 1869, 1957, 1969, 1969, 1994, 2026, 2036, 2037, 2042, 2042, 2048, 2069, 2074, 2074, 2084, 2084, 2088, 2088, 2112, 2136, 2144, 2154, 2160, 2183, 2185, 2190, 2208, 2249, 2308, 2361, 2365, 2365, 2384, 2384, 2392, 2401, 2417, 2432, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2493, 2493, 2510, 2510, 2524, 2525, 2527, 2529, 2544, 2545, 2556, 2556, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2649, 2652, 2654, 2654, 2674, 2676, 2693, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2749, 2749, 2768, 2768, 2784, 2785, 2809, 2809, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2869, 2873, 2877, 2877, 2908, 2909, 2911, 2913, 2929, 2929, 2947, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3024, 3024, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3129, 3133, 3133, 3160, 3162, 3165, 3165, 3168, 3169, 3200, 3200, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3261, 3261, 3293, 3294, 3296, 3297, 3313, 3314, 3332, 3340, 3342, 3344, 3346, 3386, 3389, 3389, 3406, 3406, 3412, 3414, 3423, 3425, 3450, 3455, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3585, 3632, 3634, 3635, 3648, 3654, 3713, 3714, 3716, 3716, 3718, 3722, 3724, 3747, 3749, 3749, 3751, 3760, 3762, 3763, 3773, 3773, 3776, 3780, 3782, 3782, 3804, 3807, 3840, 3840, 3904, 3911, 3913, 3948, 3976, 3980, 4096, 4138, 4159, 4159, 4176, 4181, 4186, 4189, 4193, 4193, 4197, 4198, 4206, 4208, 4213, 4225, 4238, 4238, 4256, 4293, 4295, 4295, 4301, 4301, 4304, 4346, 4348, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4744, 4746, 4749, 4752, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4822, 4824, 4880, 4882, 4885, 4888, 4954, 4992, 5007, 5024, 5109, 5112, 5117, 5121, 5740, 5743, 5759, 5761, 5786, 5792, 5866, 5870, 5880, 5888, 5905, 5919, 5937, 5952, 5969, 5984, 5996, 5998, 6e3, 6016, 6067, 6103, 6103, 6108, 6108, 6176, 6264, 6272, 6312, 6314, 6314, 6320, 6389, 6400, 6430, 6480, 6509, 6512, 6516, 6528, 6571, 6576, 6601, 6656, 6678, 6688, 6740, 6823, 6823, 6917, 6963, 6981, 6988, 7043, 7072, 7086, 7087, 7098, 7141, 7168, 7203, 7245, 7247, 7258, 7293, 7296, 7304, 7312, 7354, 7357, 7359, 7401, 7404, 7406, 7411, 7413, 7414, 7418, 7418, 7424, 7615, 7680, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8305, 8305, 8319, 8319, 8336, 8348, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8472, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8505, 8508, 8511, 8517, 8521, 8526, 8526, 8544, 8584, 11264, 11492, 11499, 11502, 11506, 11507, 11520, 11557, 11559, 11559, 11565, 11565, 11568, 11623, 11631, 11631, 11648, 11670, 11680, 11686, 11688, 11694, 11696, 11702, 11704, 11710, 11712, 11718, 11720, 11726, 11728, 11734, 11736, 11742, 12293, 12295, 12321, 12329, 12337, 12341, 12344, 12348, 12353, 12438, 12443, 12447, 12449, 12538, 12540, 12543, 12549, 12591, 12593, 12686, 12704, 12735, 12784, 12799, 13312, 19903, 19968, 42124, 42192, 42237, 42240, 42508, 42512, 42527, 42538, 42539, 42560, 42606, 42623, 42653, 42656, 42735, 42775, 42783, 42786, 42888, 42891, 42954, 42960, 42961, 42963, 42963, 42965, 42969, 42994, 43009, 43011, 43013, 43015, 43018, 43020, 43042, 43072, 43123, 43138, 43187, 43250, 43255, 43259, 43259, 43261, 43262, 43274, 43301, 43312, 43334, 43360, 43388, 43396, 43442, 43471, 43471, 43488, 43492, 43494, 43503, 43514, 43518, 43520, 43560, 43584, 43586, 43588, 43595, 43616, 43638, 43642, 43642, 43646, 43695, 43697, 43697, 43701, 43702, 43705, 43709, 43712, 43712, 43714, 43714, 43739, 43741, 43744, 43754, 43762, 43764, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43814, 43816, 43822, 43824, 43866, 43868, 43881, 43888, 44002, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64285, 64287, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65136, 65140, 65142, 65276, 65313, 65338, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500, 65536, 65547, 65549, 65574, 65576, 65594, 65596, 65597, 65599, 65613, 65616, 65629, 65664, 65786, 65856, 65908, 66176, 66204, 66208, 66256, 66304, 66335, 66349, 66378, 66384, 66421, 66432, 66461, 66464, 66499, 66504, 66511, 66513, 66517, 66560, 66717, 66736, 66771, 66776, 66811, 66816, 66855, 66864, 66915, 66928, 66938, 66940, 66954, 66956, 66962, 66964, 66965, 66967, 66977, 66979, 66993, 66995, 67001, 67003, 67004, 67072, 67382, 67392, 67413, 67424, 67431, 67456, 67461, 67463, 67504, 67506, 67514, 67584, 67589, 67592, 67592, 67594, 67637, 67639, 67640, 67644, 67644, 67647, 67669, 67680, 67702, 67712, 67742, 67808, 67826, 67828, 67829, 67840, 67861, 67872, 67897, 67968, 68023, 68030, 68031, 68096, 68096, 68112, 68115, 68117, 68119, 68121, 68149, 68192, 68220, 68224, 68252, 68288, 68295, 68297, 68324, 68352, 68405, 68416, 68437, 68448, 68466, 68480, 68497, 68608, 68680, 68736, 68786, 68800, 68850, 68864, 68899, 69248, 69289, 69296, 69297, 69376, 69404, 69415, 69415, 69424, 69445, 69488, 69505, 69552, 69572, 69600, 69622, 69635, 69687, 69745, 69746, 69749, 69749, 69763, 69807, 69840, 69864, 69891, 69926, 69956, 69956, 69959, 69959, 69968, 70002, 70006, 70006, 70019, 70066, 70081, 70084, 70106, 70106, 70108, 70108, 70144, 70161, 70163, 70187, 70207, 70208, 70272, 70278, 70280, 70280, 70282, 70285, 70287, 70301, 70303, 70312, 70320, 70366, 70405, 70412, 70415, 70416, 70419, 70440, 70442, 70448, 70450, 70451, 70453, 70457, 70461, 70461, 70480, 70480, 70493, 70497, 70656, 70708, 70727, 70730, 70751, 70753, 70784, 70831, 70852, 70853, 70855, 70855, 71040, 71086, 71128, 71131, 71168, 71215, 71236, 71236, 71296, 71338, 71352, 71352, 71424, 71450, 71488, 71494, 71680, 71723, 71840, 71903, 71935, 71942, 71945, 71945, 71948, 71955, 71957, 71958, 71960, 71983, 71999, 71999, 72001, 72001, 72096, 72103, 72106, 72144, 72161, 72161, 72163, 72163, 72192, 72192, 72203, 72242, 72250, 72250, 72272, 72272, 72284, 72329, 72349, 72349, 72368, 72440, 72704, 72712, 72714, 72750, 72768, 72768, 72818, 72847, 72960, 72966, 72968, 72969, 72971, 73008, 73030, 73030, 73056, 73061, 73063, 73064, 73066, 73097, 73112, 73112, 73440, 73458, 73474, 73474, 73476, 73488, 73490, 73523, 73648, 73648, 73728, 74649, 74752, 74862, 74880, 75075, 77712, 77808, 77824, 78895, 78913, 78918, 82944, 83526, 92160, 92728, 92736, 92766, 92784, 92862, 92880, 92909, 92928, 92975, 92992, 92995, 93027, 93047, 93053, 93071, 93760, 93823, 93952, 94026, 94032, 94032, 94099, 94111, 94176, 94177, 94179, 94179, 94208, 100343, 100352, 101589, 101632, 101640, 110576, 110579, 110581, 110587, 110589, 110590, 110592, 110882, 110898, 110898, 110928, 110930, 110933, 110933, 110948, 110951, 110960, 111355, 113664, 113770, 113776, 113788, 113792, 113800, 113808, 113817, 119808, 119892, 119894, 119964, 119966, 119967, 119970, 119970, 119973, 119974, 119977, 119980, 119982, 119993, 119995, 119995, 119997, 120003, 120005, 120069, 120071, 120074, 120077, 120084, 120086, 120092, 120094, 120121, 120123, 120126, 120128, 120132, 120134, 120134, 120138, 120144, 120146, 120485, 120488, 120512, 120514, 120538, 120540, 120570, 120572, 120596, 120598, 120628, 120630, 120654, 120656, 120686, 120688, 120712, 120714, 120744, 120746, 120770, 120772, 120779, 122624, 122654, 122661, 122666, 122928, 122989, 123136, 123180, 123191, 123197, 123214, 123214, 123536, 123565, 123584, 123627, 124112, 124139, 124896, 124902, 124904, 124907, 124909, 124910, 124912, 124926, 124928, 125124, 125184, 125251, 125259, 125259, 126464, 126467, 126469, 126495, 126497, 126498, 126500, 126500, 126503, 126503, 126505, 126514, 126516, 126519, 126521, 126521, 126523, 126523, 126530, 126530, 126535, 126535, 126537, 126537, 126539, 126539, 126541, 126543, 126545, 126546, 126548, 126548, 126551, 126551, 126553, 126553, 126555, 126555, 126557, 126557, 126559, 126559, 126561, 126562, 126564, 126564, 126567, 126570, 126572, 126578, 126580, 126583, 126585, 126588, 126590, 126590, 126592, 126601, 126603, 126619, 126625, 126627, 126629, 126633, 126635, 126651, 131072, 173791, 173824, 177977, 177984, 178205, 178208, 183969, 183984, 191456, 191472, 192093, 194560, 195101, 196608, 201546, 201552, 205743];\nvar unicodeESNextIdentifierPart = [48, 57, 65, 90, 95, 95, 97, 122, 170, 170, 181, 181, 183, 183, 186, 186, 192, 214, 216, 246, 248, 705, 710, 721, 736, 740, 748, 748, 750, 750, 768, 884, 886, 887, 890, 893, 895, 895, 902, 906, 908, 908, 910, 929, 931, 1013, 1015, 1153, 1155, 1159, 1162, 1327, 1329, 1366, 1369, 1369, 1376, 1416, 1425, 1469, 1471, 1471, 1473, 1474, 1476, 1477, 1479, 1479, 1488, 1514, 1519, 1522, 1552, 1562, 1568, 1641, 1646, 1747, 1749, 1756, 1759, 1768, 1770, 1788, 1791, 1791, 1808, 1866, 1869, 1969, 1984, 2037, 2042, 2042, 2045, 2045, 2048, 2093, 2112, 2139, 2144, 2154, 2160, 2183, 2185, 2190, 2200, 2273, 2275, 2403, 2406, 2415, 2417, 2435, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2492, 2500, 2503, 2504, 2507, 2510, 2519, 2519, 2524, 2525, 2527, 2531, 2534, 2545, 2556, 2556, 2558, 2558, 2561, 2563, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2620, 2620, 2622, 2626, 2631, 2632, 2635, 2637, 2641, 2641, 2649, 2652, 2654, 2654, 2662, 2677, 2689, 2691, 2693, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2748, 2757, 2759, 2761, 2763, 2765, 2768, 2768, 2784, 2787, 2790, 2799, 2809, 2815, 2817, 2819, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2869, 2873, 2876, 2884, 2887, 2888, 2891, 2893, 2901, 2903, 2908, 2909, 2911, 2915, 2918, 2927, 2929, 2929, 2946, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 3001, 3006, 3010, 3014, 3016, 3018, 3021, 3024, 3024, 3031, 3031, 3046, 3055, 3072, 3084, 3086, 3088, 3090, 3112, 3114, 3129, 3132, 3140, 3142, 3144, 3146, 3149, 3157, 3158, 3160, 3162, 3165, 3165, 3168, 3171, 3174, 3183, 3200, 3203, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3260, 3268, 3270, 3272, 3274, 3277, 3285, 3286, 3293, 3294, 3296, 3299, 3302, 3311, 3313, 3315, 3328, 3340, 3342, 3344, 3346, 3396, 3398, 3400, 3402, 3406, 3412, 3415, 3423, 3427, 3430, 3439, 3450, 3455, 3457, 3459, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3530, 3530, 3535, 3540, 3542, 3542, 3544, 3551, 3558, 3567, 3570, 3571, 3585, 3642, 3648, 3662, 3664, 3673, 3713, 3714, 3716, 3716, 3718, 3722, 3724, 3747, 3749, 3749, 3751, 3773, 3776, 3780, 3782, 3782, 3784, 3790, 3792, 3801, 3804, 3807, 3840, 3840, 3864, 3865, 3872, 3881, 3893, 3893, 3895, 3895, 3897, 3897, 3902, 3911, 3913, 3948, 3953, 3972, 3974, 3991, 3993, 4028, 4038, 4038, 4096, 4169, 4176, 4253, 4256, 4293, 4295, 4295, 4301, 4301, 4304, 4346, 4348, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4744, 4746, 4749, 4752, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4822, 4824, 4880, 4882, 4885, 4888, 4954, 4957, 4959, 4969, 4977, 4992, 5007, 5024, 5109, 5112, 5117, 5121, 5740, 5743, 5759, 5761, 5786, 5792, 5866, 5870, 5880, 5888, 5909, 5919, 5940, 5952, 5971, 5984, 5996, 5998, 6e3, 6002, 6003, 6016, 6099, 6103, 6103, 6108, 6109, 6112, 6121, 6155, 6157, 6159, 6169, 6176, 6264, 6272, 6314, 6320, 6389, 6400, 6430, 6432, 6443, 6448, 6459, 6470, 6509, 6512, 6516, 6528, 6571, 6576, 6601, 6608, 6618, 6656, 6683, 6688, 6750, 6752, 6780, 6783, 6793, 6800, 6809, 6823, 6823, 6832, 6845, 6847, 6862, 6912, 6988, 6992, 7001, 7019, 7027, 7040, 7155, 7168, 7223, 7232, 7241, 7245, 7293, 7296, 7304, 7312, 7354, 7357, 7359, 7376, 7378, 7380, 7418, 7424, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8204, 8205, 8255, 8256, 8276, 8276, 8305, 8305, 8319, 8319, 8336, 8348, 8400, 8412, 8417, 8417, 8421, 8432, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8472, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8505, 8508, 8511, 8517, 8521, 8526, 8526, 8544, 8584, 11264, 11492, 11499, 11507, 11520, 11557, 11559, 11559, 11565, 11565, 11568, 11623, 11631, 11631, 11647, 11670, 11680, 11686, 11688, 11694, 11696, 11702, 11704, 11710, 11712, 11718, 11720, 11726, 11728, 11734, 11736, 11742, 11744, 11775, 12293, 12295, 12321, 12335, 12337, 12341, 12344, 12348, 12353, 12438, 12441, 12447, 12449, 12543, 12549, 12591, 12593, 12686, 12704, 12735, 12784, 12799, 13312, 19903, 19968, 42124, 42192, 42237, 42240, 42508, 42512, 42539, 42560, 42607, 42612, 42621, 42623, 42737, 42775, 42783, 42786, 42888, 42891, 42954, 42960, 42961, 42963, 42963, 42965, 42969, 42994, 43047, 43052, 43052, 43072, 43123, 43136, 43205, 43216, 43225, 43232, 43255, 43259, 43259, 43261, 43309, 43312, 43347, 43360, 43388, 43392, 43456, 43471, 43481, 43488, 43518, 43520, 43574, 43584, 43597, 43600, 43609, 43616, 43638, 43642, 43714, 43739, 43741, 43744, 43759, 43762, 43766, 43777, 43782, 43785, 43790, 43793, 43798, 43808, 43814, 43816, 43822, 43824, 43866, 43868, 43881, 43888, 44010, 44012, 44013, 44016, 44025, 44032, 55203, 55216, 55238, 55243, 55291, 63744, 64109, 64112, 64217, 64256, 64262, 64275, 64279, 64285, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65024, 65039, 65056, 65071, 65075, 65076, 65101, 65103, 65136, 65140, 65142, 65276, 65296, 65305, 65313, 65338, 65343, 65343, 65345, 65370, 65381, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500, 65536, 65547, 65549, 65574, 65576, 65594, 65596, 65597, 65599, 65613, 65616, 65629, 65664, 65786, 65856, 65908, 66045, 66045, 66176, 66204, 66208, 66256, 66272, 66272, 66304, 66335, 66349, 66378, 66384, 66426, 66432, 66461, 66464, 66499, 66504, 66511, 66513, 66517, 66560, 66717, 66720, 66729, 66736, 66771, 66776, 66811, 66816, 66855, 66864, 66915, 66928, 66938, 66940, 66954, 66956, 66962, 66964, 66965, 66967, 66977, 66979, 66993, 66995, 67001, 67003, 67004, 67072, 67382, 67392, 67413, 67424, 67431, 67456, 67461, 67463, 67504, 67506, 67514, 67584, 67589, 67592, 67592, 67594, 67637, 67639, 67640, 67644, 67644, 67647, 67669, 67680, 67702, 67712, 67742, 67808, 67826, 67828, 67829, 67840, 67861, 67872, 67897, 67968, 68023, 68030, 68031, 68096, 68099, 68101, 68102, 68108, 68115, 68117, 68119, 68121, 68149, 68152, 68154, 68159, 68159, 68192, 68220, 68224, 68252, 68288, 68295, 68297, 68326, 68352, 68405, 68416, 68437, 68448, 68466, 68480, 68497, 68608, 68680, 68736, 68786, 68800, 68850, 68864, 68903, 68912, 68921, 69248, 69289, 69291, 69292, 69296, 69297, 69373, 69404, 69415, 69415, 69424, 69456, 69488, 69509, 69552, 69572, 69600, 69622, 69632, 69702, 69734, 69749, 69759, 69818, 69826, 69826, 69840, 69864, 69872, 69881, 69888, 69940, 69942, 69951, 69956, 69959, 69968, 70003, 70006, 70006, 70016, 70084, 70089, 70092, 70094, 70106, 70108, 70108, 70144, 70161, 70163, 70199, 70206, 70209, 70272, 70278, 70280, 70280, 70282, 70285, 70287, 70301, 70303, 70312, 70320, 70378, 70384, 70393, 70400, 70403, 70405, 70412, 70415, 70416, 70419, 70440, 70442, 70448, 70450, 70451, 70453, 70457, 70459, 70468, 70471, 70472, 70475, 70477, 70480, 70480, 70487, 70487, 70493, 70499, 70502, 70508, 70512, 70516, 70656, 70730, 70736, 70745, 70750, 70753, 70784, 70853, 70855, 70855, 70864, 70873, 71040, 71093, 71096, 71104, 71128, 71133, 71168, 71232, 71236, 71236, 71248, 71257, 71296, 71352, 71360, 71369, 71424, 71450, 71453, 71467, 71472, 71481, 71488, 71494, 71680, 71738, 71840, 71913, 71935, 71942, 71945, 71945, 71948, 71955, 71957, 71958, 71960, 71989, 71991, 71992, 71995, 72003, 72016, 72025, 72096, 72103, 72106, 72151, 72154, 72161, 72163, 72164, 72192, 72254, 72263, 72263, 72272, 72345, 72349, 72349, 72368, 72440, 72704, 72712, 72714, 72758, 72760, 72768, 72784, 72793, 72818, 72847, 72850, 72871, 72873, 72886, 72960, 72966, 72968, 72969, 72971, 73014, 73018, 73018, 73020, 73021, 73023, 73031, 73040, 73049, 73056, 73061, 73063, 73064, 73066, 73102, 73104, 73105, 73107, 73112, 73120, 73129, 73440, 73462, 73472, 73488, 73490, 73530, 73534, 73538, 73552, 73561, 73648, 73648, 73728, 74649, 74752, 74862, 74880, 75075, 77712, 77808, 77824, 78895, 78912, 78933, 82944, 83526, 92160, 92728, 92736, 92766, 92768, 92777, 92784, 92862, 92864, 92873, 92880, 92909, 92912, 92916, 92928, 92982, 92992, 92995, 93008, 93017, 93027, 93047, 93053, 93071, 93760, 93823, 93952, 94026, 94031, 94087, 94095, 94111, 94176, 94177, 94179, 94180, 94192, 94193, 94208, 100343, 100352, 101589, 101632, 101640, 110576, 110579, 110581, 110587, 110589, 110590, 110592, 110882, 110898, 110898, 110928, 110930, 110933, 110933, 110948, 110951, 110960, 111355, 113664, 113770, 113776, 113788, 113792, 113800, 113808, 113817, 113821, 113822, 118528, 118573, 118576, 118598, 119141, 119145, 119149, 119154, 119163, 119170, 119173, 119179, 119210, 119213, 119362, 119364, 119808, 119892, 119894, 119964, 119966, 119967, 119970, 119970, 119973, 119974, 119977, 119980, 119982, 119993, 119995, 119995, 119997, 120003, 120005, 120069, 120071, 120074, 120077, 120084, 120086, 120092, 120094, 120121, 120123, 120126, 120128, 120132, 120134, 120134, 120138, 120144, 120146, 120485, 120488, 120512, 120514, 120538, 120540, 120570, 120572, 120596, 120598, 120628, 120630, 120654, 120656, 120686, 120688, 120712, 120714, 120744, 120746, 120770, 120772, 120779, 120782, 120831, 121344, 121398, 121403, 121452, 121461, 121461, 121476, 121476, 121499, 121503, 121505, 121519, 122624, 122654, 122661, 122666, 122880, 122886, 122888, 122904, 122907, 122913, 122915, 122916, 122918, 122922, 122928, 122989, 123023, 123023, 123136, 123180, 123184, 123197, 123200, 123209, 123214, 123214, 123536, 123566, 123584, 123641, 124112, 124153, 124896, 124902, 124904, 124907, 124909, 124910, 124912, 124926, 124928, 125124, 125136, 125142, 125184, 125259, 125264, 125273, 126464, 126467, 126469, 126495, 126497, 126498, 126500, 126500, 126503, 126503, 126505, 126514, 126516, 126519, 126521, 126521, 126523, 126523, 126530, 126530, 126535, 126535, 126537, 126537, 126539, 126539, 126541, 126543, 126545, 126546, 126548, 126548, 126551, 126551, 126553, 126553, 126555, 126555, 126557, 126557, 126559, 126559, 126561, 126562, 126564, 126564, 126567, 126570, 126572, 126578, 126580, 126583, 126585, 126588, 126590, 126590, 126592, 126601, 126603, 126619, 126625, 126627, 126629, 126633, 126635, 126651, 130032, 130041, 131072, 173791, 173824, 177977, 177984, 178205, 178208, 183969, 183984, 191456, 191472, 192093, 194560, 195101, 196608, 201546, 201552, 205743, 917760, 917999];\nvar commentDirectiveRegExSingleLine = /^\\/\\/\\/?\\s*@(ts-expect-error|ts-ignore)/;\nvar commentDirectiveRegExMultiLine = /^(?:\\/|\\*)*\\s*@(ts-expect-error|ts-ignore)/;\nvar jsDocSeeOrLink = /@(?:see|link)/i;\nfunction lookupInUnicodeMap(code, map2) {\n  if (code < map2[0]) {\n    return false;\n  }\n  let lo = 0;\n  let hi = map2.length;\n  let mid;\n  while (lo + 1 < hi) {\n    mid = lo + (hi - lo) / 2;\n    mid -= mid % 2;\n    if (map2[mid] <= code && code <= map2[mid + 1]) {\n      return true;\n    }\n    if (code < map2[mid]) {\n      hi = mid;\n    } else {\n      lo = mid + 2;\n    }\n  }\n  return false;\n}\nfunction isUnicodeIdentifierStart(code, languageVersion) {\n  return languageVersion >= 2 /* ES2015 */ ? lookupInUnicodeMap(code, unicodeESNextIdentifierStart) : lookupInUnicodeMap(code, unicodeES5IdentifierStart);\n}\nfunction isUnicodeIdentifierPart(code, languageVersion) {\n  return languageVersion >= 2 /* ES2015 */ ? lookupInUnicodeMap(code, unicodeESNextIdentifierPart) : lookupInUnicodeMap(code, unicodeES5IdentifierPart);\n}\nfunction makeReverseMap(source) {\n  const result = [];\n  source.forEach((value, name) => {\n    result[value] = name;\n  });\n  return result;\n}\nvar tokenStrings = makeReverseMap(textToToken);\nfunction tokenToString(t) {\n  return tokenStrings[t];\n}\nfunction stringToToken(s) {\n  return textToToken.get(s);\n}\nvar regExpFlagCharCodes = makeReverseMap(charCodeToRegExpFlag);\nfunction regularExpressionFlagToCharacterCode(f) {\n  return regExpFlagCharCodes[f];\n}\nfunction characterCodeToRegularExpressionFlag(ch) {\n  return charCodeToRegExpFlag.get(ch);\n}\nfunction computeLineStarts(text) {\n  const result = [];\n  let pos = 0;\n  let lineStart = 0;\n  while (pos < text.length) {\n    const ch = text.charCodeAt(pos);\n    pos++;\n    switch (ch) {\n      case 13 /* carriageReturn */:\n        if (text.charCodeAt(pos) === 10 /* lineFeed */) {\n          pos++;\n        }\n      // falls through\n      case 10 /* lineFeed */:\n        result.push(lineStart);\n        lineStart = pos;\n        break;\n      default:\n        if (ch > 127 /* maxAsciiCharacter */ && isLineBreak(ch)) {\n          result.push(lineStart);\n          lineStart = pos;\n        }\n        break;\n    }\n  }\n  result.push(lineStart);\n  return result;\n}\nfunction getPositionOfLineAndCharacter(sourceFile, line, character, allowEdits) {\n  return sourceFile.getPositionOfLineAndCharacter ? sourceFile.getPositionOfLineAndCharacter(line, character, allowEdits) : computePositionOfLineAndCharacter(getLineStarts(sourceFile), line, character, sourceFile.text, allowEdits);\n}\nfunction computePositionOfLineAndCharacter(lineStarts, line, character, debugText, allowEdits) {\n  if (line < 0 || line >= lineStarts.length) {\n    if (allowEdits) {\n      line = line < 0 ? 0 : line >= lineStarts.length ? lineStarts.length - 1 : line;\n    } else {\n      Debug.fail(`Bad line number. Line: ${line}, lineStarts.length: ${lineStarts.length} , line map is correct? ${debugText !== void 0 ? arrayIsEqualTo(lineStarts, computeLineStarts(debugText)) : \"unknown\"}`);\n    }\n  }\n  const res = lineStarts[line] + character;\n  if (allowEdits) {\n    return res > lineStarts[line + 1] ? lineStarts[line + 1] : typeof debugText === \"string\" && res > debugText.length ? debugText.length : res;\n  }\n  if (line < lineStarts.length - 1) {\n    Debug.assert(res < lineStarts[line + 1]);\n  } else if (debugText !== void 0) {\n    Debug.assert(res <= debugText.length);\n  }\n  return res;\n}\nfunction getLineStarts(sourceFile) {\n  return sourceFile.lineMap || (sourceFile.lineMap = computeLineStarts(sourceFile.text));\n}\nfunction computeLineAndCharacterOfPosition(lineStarts, position) {\n  const lineNumber = computeLineOfPosition(lineStarts, position);\n  return {\n    line: lineNumber,\n    character: position - lineStarts[lineNumber]\n  };\n}\nfunction computeLineOfPosition(lineStarts, position, lowerBound) {\n  let lineNumber = binarySearch(lineStarts, position, identity, compareValues, lowerBound);\n  if (lineNumber < 0) {\n    lineNumber = ~lineNumber - 1;\n    Debug.assert(lineNumber !== -1, \"position cannot precede the beginning of the file\");\n  }\n  return lineNumber;\n}\nfunction getLinesBetweenPositions(sourceFile, pos1, pos2) {\n  if (pos1 === pos2) return 0;\n  const lineStarts = getLineStarts(sourceFile);\n  const lower = Math.min(pos1, pos2);\n  const isNegative = lower === pos2;\n  const upper = isNegative ? pos1 : pos2;\n  const lowerLine = computeLineOfPosition(lineStarts, lower);\n  const upperLine = computeLineOfPosition(lineStarts, upper, lowerLine);\n  return isNegative ? lowerLine - upperLine : upperLine - lowerLine;\n}\nfunction getLineAndCharacterOfPosition(sourceFile, position) {\n  return computeLineAndCharacterOfPosition(getLineStarts(sourceFile), position);\n}\nfunction isWhiteSpaceLike(ch) {\n  return isWhiteSpaceSingleLine(ch) || isLineBreak(ch);\n}\nfunction isWhiteSpaceSingleLine(ch) {\n  return ch === 32 /* space */ || ch === 9 /* tab */ || ch === 11 /* verticalTab */ || ch === 12 /* formFeed */ || ch === 160 /* nonBreakingSpace */ || ch === 133 /* nextLine */ || ch === 5760 /* ogham */ || ch >= 8192 /* enQuad */ && ch <= 8203 /* zeroWidthSpace */ || ch === 8239 /* narrowNoBreakSpace */ || ch === 8287 /* mathematicalSpace */ || ch === 12288 /* ideographicSpace */ || ch === 65279 /* byteOrderMark */;\n}\nfunction isLineBreak(ch) {\n  return ch === 10 /* lineFeed */ || ch === 13 /* carriageReturn */ || ch === 8232 /* lineSeparator */ || ch === 8233 /* paragraphSeparator */;\n}\nfunction isDigit(ch) {\n  return ch >= 48 /* _0 */ && ch <= 57 /* _9 */;\n}\nfunction isHexDigit(ch) {\n  return isDigit(ch) || ch >= 65 /* A */ && ch <= 70 /* F */ || ch >= 97 /* a */ && ch <= 102 /* f */;\n}\nfunction isASCIILetter(ch) {\n  return ch >= 65 /* A */ && ch <= 90 /* Z */ || ch >= 97 /* a */ && ch <= 122 /* z */;\n}\nfunction isWordCharacter(ch) {\n  return isASCIILetter(ch) || isDigit(ch) || ch === 95 /* _ */;\n}\nfunction isOctalDigit(ch) {\n  return ch >= 48 /* _0 */ && ch <= 55 /* _7 */;\n}\nfunction couldStartTrivia(text, pos) {\n  const ch = text.charCodeAt(pos);\n  switch (ch) {\n    case 13 /* carriageReturn */:\n    case 10 /* lineFeed */:\n    case 9 /* tab */:\n    case 11 /* verticalTab */:\n    case 12 /* formFeed */:\n    case 32 /* space */:\n    case 47 /* slash */:\n    // starts of normal trivia\n    // falls through\n    case 60 /* lessThan */:\n    case 124 /* bar */:\n    case 61 /* equals */:\n    case 62 /* greaterThan */:\n      return true;\n    case 35 /* hash */:\n      return pos === 0;\n    default:\n      return ch > 127 /* maxAsciiCharacter */;\n  }\n}\nfunction skipTrivia(text, pos, stopAfterLineBreak, stopAtComments, inJSDoc) {\n  if (positionIsSynthesized(pos)) {\n    return pos;\n  }\n  let canConsumeStar = false;\n  while (true) {\n    const ch = text.charCodeAt(pos);\n    switch (ch) {\n      case 13 /* carriageReturn */:\n        if (text.charCodeAt(pos + 1) === 10 /* lineFeed */) {\n          pos++;\n        }\n      // falls through\n      case 10 /* lineFeed */:\n        pos++;\n        if (stopAfterLineBreak) {\n          return pos;\n        }\n        canConsumeStar = !!inJSDoc;\n        continue;\n      case 9 /* tab */:\n      case 11 /* verticalTab */:\n      case 12 /* formFeed */:\n      case 32 /* space */:\n        pos++;\n        continue;\n      case 47 /* slash */:\n        if (stopAtComments) {\n          break;\n        }\n        if (text.charCodeAt(pos + 1) === 47 /* slash */) {\n          pos += 2;\n          while (pos < text.length) {\n            if (isLineBreak(text.charCodeAt(pos))) {\n              break;\n            }\n            pos++;\n          }\n          canConsumeStar = false;\n          continue;\n        }\n        if (text.charCodeAt(pos + 1) === 42 /* asterisk */) {\n          pos += 2;\n          while (pos < text.length) {\n            if (text.charCodeAt(pos) === 42 /* asterisk */ && text.charCodeAt(pos + 1) === 47 /* slash */) {\n              pos += 2;\n              break;\n            }\n            pos++;\n          }\n          canConsumeStar = false;\n          continue;\n        }\n        break;\n      case 60 /* lessThan */:\n      case 124 /* bar */:\n      case 61 /* equals */:\n      case 62 /* greaterThan */:\n        if (isConflictMarkerTrivia(text, pos)) {\n          pos = scanConflictMarkerTrivia(text, pos);\n          canConsumeStar = false;\n          continue;\n        }\n        break;\n      case 35 /* hash */:\n        if (pos === 0 && isShebangTrivia(text, pos)) {\n          pos = scanShebangTrivia(text, pos);\n          canConsumeStar = false;\n          continue;\n        }\n        break;\n      case 42 /* asterisk */:\n        if (canConsumeStar) {\n          pos++;\n          canConsumeStar = false;\n          continue;\n        }\n        break;\n      default:\n        if (ch > 127 /* maxAsciiCharacter */ && isWhiteSpaceLike(ch)) {\n          pos++;\n          continue;\n        }\n        break;\n    }\n    return pos;\n  }\n}\nvar mergeConflictMarkerLength = \"<<<<<<<\".length;\nfunction isConflictMarkerTrivia(text, pos) {\n  Debug.assert(pos >= 0);\n  if (pos === 0 || isLineBreak(text.charCodeAt(pos - 1))) {\n    const ch = text.charCodeAt(pos);\n    if (pos + mergeConflictMarkerLength < text.length) {\n      for (let i = 0; i < mergeConflictMarkerLength; i++) {\n        if (text.charCodeAt(pos + i) !== ch) {\n          return false;\n        }\n      }\n      return ch === 61 /* equals */ || text.charCodeAt(pos + mergeConflictMarkerLength) === 32 /* space */;\n    }\n  }\n  return false;\n}\nfunction scanConflictMarkerTrivia(text, pos, error2) {\n  if (error2) {\n    error2(Diagnostics.Merge_conflict_marker_encountered, pos, mergeConflictMarkerLength);\n  }\n  const ch = text.charCodeAt(pos);\n  const len = text.length;\n  if (ch === 60 /* lessThan */ || ch === 62 /* greaterThan */) {\n    while (pos < len && !isLineBreak(text.charCodeAt(pos))) {\n      pos++;\n    }\n  } else {\n    Debug.assert(ch === 124 /* bar */ || ch === 61 /* equals */);\n    while (pos < len) {\n      const currentChar = text.charCodeAt(pos);\n      if ((currentChar === 61 /* equals */ || currentChar === 62 /* greaterThan */) && currentChar !== ch && isConflictMarkerTrivia(text, pos)) {\n        break;\n      }\n      pos++;\n    }\n  }\n  return pos;\n}\nvar shebangTriviaRegex = /^#!.*/;\nfunction isShebangTrivia(text, pos) {\n  Debug.assert(pos === 0);\n  return shebangTriviaRegex.test(text);\n}\nfunction scanShebangTrivia(text, pos) {\n  const shebang = shebangTriviaRegex.exec(text)[0];\n  pos = pos + shebang.length;\n  return pos;\n}\nfunction iterateCommentRanges(reduce, text, pos, trailing, cb, state, initial) {\n  let pendingPos;\n  let pendingEnd;\n  let pendingKind;\n  let pendingHasTrailingNewLine;\n  let hasPendingCommentRange = false;\n  let collecting = trailing;\n  let accumulator = initial;\n  if (pos === 0) {\n    collecting = true;\n    const shebang = getShebang(text);\n    if (shebang) {\n      pos = shebang.length;\n    }\n  }\n  scan:\n    while (pos >= 0 && pos < text.length) {\n      const ch = text.charCodeAt(pos);\n      switch (ch) {\n        case 13 /* carriageReturn */:\n          if (text.charCodeAt(pos + 1) === 10 /* lineFeed */) {\n            pos++;\n          }\n        // falls through\n        case 10 /* lineFeed */:\n          pos++;\n          if (trailing) {\n            break scan;\n          }\n          collecting = true;\n          if (hasPendingCommentRange) {\n            pendingHasTrailingNewLine = true;\n          }\n          continue;\n        case 9 /* tab */:\n        case 11 /* verticalTab */:\n        case 12 /* formFeed */:\n        case 32 /* space */:\n          pos++;\n          continue;\n        case 47 /* slash */:\n          const nextChar = text.charCodeAt(pos + 1);\n          let hasTrailingNewLine = false;\n          if (nextChar === 47 /* slash */ || nextChar === 42 /* asterisk */) {\n            const kind = nextChar === 47 /* slash */ ? 2 /* SingleLineCommentTrivia */ : 3 /* MultiLineCommentTrivia */;\n            const startPos = pos;\n            pos += 2;\n            if (nextChar === 47 /* slash */) {\n              while (pos < text.length) {\n                if (isLineBreak(text.charCodeAt(pos))) {\n                  hasTrailingNewLine = true;\n                  break;\n                }\n                pos++;\n              }\n            } else {\n              while (pos < text.length) {\n                if (text.charCodeAt(pos) === 42 /* asterisk */ && text.charCodeAt(pos + 1) === 47 /* slash */) {\n                  pos += 2;\n                  break;\n                }\n                pos++;\n              }\n            }\n            if (collecting) {\n              if (hasPendingCommentRange) {\n                accumulator = cb(pendingPos, pendingEnd, pendingKind, pendingHasTrailingNewLine, state, accumulator);\n                if (!reduce && accumulator) {\n                  return accumulator;\n                }\n              }\n              pendingPos = startPos;\n              pendingEnd = pos;\n              pendingKind = kind;\n              pendingHasTrailingNewLine = hasTrailingNewLine;\n              hasPendingCommentRange = true;\n            }\n            continue;\n          }\n          break scan;\n        default:\n          if (ch > 127 /* maxAsciiCharacter */ && isWhiteSpaceLike(ch)) {\n            if (hasPendingCommentRange && isLineBreak(ch)) {\n              pendingHasTrailingNewLine = true;\n            }\n            pos++;\n            continue;\n          }\n          break scan;\n      }\n    }\n  if (hasPendingCommentRange) {\n    accumulator = cb(pendingPos, pendingEnd, pendingKind, pendingHasTrailingNewLine, state, accumulator);\n  }\n  return accumulator;\n}\nfunction forEachLeadingCommentRange(text, pos, cb, state) {\n  return iterateCommentRanges(\n    /*reduce*/\n    false,\n    text,\n    pos,\n    /*trailing*/\n    false,\n    cb,\n    state\n  );\n}\nfunction forEachTrailingCommentRange(text, pos, cb, state) {\n  return iterateCommentRanges(\n    /*reduce*/\n    false,\n    text,\n    pos,\n    /*trailing*/\n    true,\n    cb,\n    state\n  );\n}\nfunction reduceEachLeadingCommentRange(text, pos, cb, state, initial) {\n  return iterateCommentRanges(\n    /*reduce*/\n    true,\n    text,\n    pos,\n    /*trailing*/\n    false,\n    cb,\n    state,\n    initial\n  );\n}\nfunction reduceEachTrailingCommentRange(text, pos, cb, state, initial) {\n  return iterateCommentRanges(\n    /*reduce*/\n    true,\n    text,\n    pos,\n    /*trailing*/\n    true,\n    cb,\n    state,\n    initial\n  );\n}\nfunction appendCommentRange(pos, end, kind, hasTrailingNewLine, _state, comments = []) {\n  comments.push({ kind, pos, end, hasTrailingNewLine });\n  return comments;\n}\nfunction getLeadingCommentRanges(text, pos) {\n  return reduceEachLeadingCommentRange(\n    text,\n    pos,\n    appendCommentRange,\n    /*state*/\n    void 0,\n    /*initial*/\n    void 0\n  );\n}\nfunction getTrailingCommentRanges(text, pos) {\n  return reduceEachTrailingCommentRange(\n    text,\n    pos,\n    appendCommentRange,\n    /*state*/\n    void 0,\n    /*initial*/\n    void 0\n  );\n}\nfunction getShebang(text) {\n  const match = shebangTriviaRegex.exec(text);\n  if (match) {\n    return match[0];\n  }\n}\nfunction isIdentifierStart(ch, languageVersion) {\n  return isASCIILetter(ch) || ch === 36 /* $ */ || ch === 95 /* _ */ || ch > 127 /* maxAsciiCharacter */ && isUnicodeIdentifierStart(ch, languageVersion);\n}\nfunction isIdentifierPart(ch, languageVersion, identifierVariant) {\n  return isWordCharacter(ch) || ch === 36 /* $ */ || // \"-\" and \":\" are valid in JSX Identifiers\n  (identifierVariant === 1 /* JSX */ ? ch === 45 /* minus */ || ch === 58 /* colon */ : false) || ch > 127 /* maxAsciiCharacter */ && isUnicodeIdentifierPart(ch, languageVersion);\n}\nfunction isIdentifierText(name, languageVersion, identifierVariant) {\n  let ch = codePointAt(name, 0);\n  if (!isIdentifierStart(ch, languageVersion)) {\n    return false;\n  }\n  for (let i = charSize(ch); i < name.length; i += charSize(ch)) {\n    if (!isIdentifierPart(ch = codePointAt(name, i), languageVersion, identifierVariant)) {\n      return false;\n    }\n  }\n  return true;\n}\nfunction createScanner(languageVersion, skipTrivia2, languageVariant = 0 /* Standard */, textInitial, onError, start, length2) {\n  var text = textInitial;\n  var pos;\n  var end;\n  var fullStartPos;\n  var tokenStart;\n  var token;\n  var tokenValue;\n  var tokenFlags;\n  var commentDirectives;\n  var skipJsDocLeadingAsterisks = 0;\n  var scriptKind = 0 /* Unknown */;\n  var jsDocParsingMode = 0 /* ParseAll */;\n  setText(text, start, length2);\n  var scanner2 = {\n    getTokenFullStart: () => fullStartPos,\n    getStartPos: () => fullStartPos,\n    getTokenEnd: () => pos,\n    getTextPos: () => pos,\n    getToken: () => token,\n    getTokenStart: () => tokenStart,\n    getTokenPos: () => tokenStart,\n    getTokenText: () => text.substring(tokenStart, pos),\n    getTokenValue: () => tokenValue,\n    hasUnicodeEscape: () => (tokenFlags & 1024 /* UnicodeEscape */) !== 0,\n    hasExtendedUnicodeEscape: () => (tokenFlags & 8 /* ExtendedUnicodeEscape */) !== 0,\n    hasPrecedingLineBreak: () => (tokenFlags & 1 /* PrecedingLineBreak */) !== 0,\n    hasPrecedingJSDocComment: () => (tokenFlags & 2 /* PrecedingJSDocComment */) !== 0,\n    hasPrecedingJSDocLeadingAsterisks: () => (tokenFlags & 32768 /* PrecedingJSDocLeadingAsterisks */) !== 0,\n    isIdentifier: () => token === 80 /* Identifier */ || token > 118 /* LastReservedWord */,\n    isReservedWord: () => token >= 83 /* FirstReservedWord */ && token <= 118 /* LastReservedWord */,\n    isUnterminated: () => (tokenFlags & 4 /* Unterminated */) !== 0,\n    getCommentDirectives: () => commentDirectives,\n    getNumericLiteralFlags: () => tokenFlags & 25584 /* NumericLiteralFlags */,\n    getTokenFlags: () => tokenFlags,\n    reScanGreaterToken,\n    reScanAsteriskEqualsToken,\n    reScanSlashToken,\n    reScanTemplateToken,\n    reScanTemplateHeadOrNoSubstitutionTemplate,\n    scanJsxIdentifier,\n    scanJsxAttributeValue,\n    reScanJsxAttributeValue,\n    reScanJsxToken,\n    reScanLessThanToken,\n    reScanHashToken,\n    reScanQuestionToken,\n    reScanInvalidIdentifier,\n    scanJsxToken,\n    scanJsDocToken,\n    scanJSDocCommentTextToken,\n    scan,\n    getText,\n    clearCommentDirectives,\n    setText,\n    setScriptTarget,\n    setLanguageVariant,\n    setScriptKind,\n    setJSDocParsingMode,\n    setOnError,\n    resetTokenState,\n    setTextPos: resetTokenState,\n    setSkipJsDocLeadingAsterisks,\n    tryScan,\n    lookAhead,\n    scanRange\n  };\n  if (Debug.isDebugging) {\n    Object.defineProperty(scanner2, \"__debugShowCurrentPositionInText\", {\n      get: () => {\n        const text2 = scanner2.getText();\n        return text2.slice(0, scanner2.getTokenFullStart()) + \"\\u2551\" + text2.slice(scanner2.getTokenFullStart());\n      }\n    });\n  }\n  return scanner2;\n  function codePointUnchecked(pos2) {\n    return codePointAt(text, pos2);\n  }\n  function codePointChecked(pos2) {\n    return pos2 >= 0 && pos2 < end ? codePointUnchecked(pos2) : -1 /* EOF */;\n  }\n  function charCodeUnchecked(pos2) {\n    return text.charCodeAt(pos2);\n  }\n  function charCodeChecked(pos2) {\n    return pos2 >= 0 && pos2 < end ? charCodeUnchecked(pos2) : -1 /* EOF */;\n  }\n  function error2(message, errPos = pos, length3, arg0) {\n    if (onError) {\n      const oldPos = pos;\n      pos = errPos;\n      onError(message, length3 || 0, arg0);\n      pos = oldPos;\n    }\n  }\n  function scanNumberFragment() {\n    let start2 = pos;\n    let allowSeparator = false;\n    let isPreviousTokenSeparator = false;\n    let result = \"\";\n    while (true) {\n      const ch = charCodeUnchecked(pos);\n      if (ch === 95 /* _ */) {\n        tokenFlags |= 512 /* ContainsSeparator */;\n        if (allowSeparator) {\n          allowSeparator = false;\n          isPreviousTokenSeparator = true;\n          result += text.substring(start2, pos);\n        } else {\n          tokenFlags |= 16384 /* ContainsInvalidSeparator */;\n          if (isPreviousTokenSeparator) {\n            error2(Diagnostics.Multiple_consecutive_numeric_separators_are_not_permitted, pos, 1);\n          } else {\n            error2(Diagnostics.Numeric_separators_are_not_allowed_here, pos, 1);\n          }\n        }\n        pos++;\n        start2 = pos;\n        continue;\n      }\n      if (isDigit(ch)) {\n        allowSeparator = true;\n        isPreviousTokenSeparator = false;\n        pos++;\n        continue;\n      }\n      break;\n    }\n    if (charCodeUnchecked(pos - 1) === 95 /* _ */) {\n      tokenFlags |= 16384 /* ContainsInvalidSeparator */;\n      error2(Diagnostics.Numeric_separators_are_not_allowed_here, pos - 1, 1);\n    }\n    return result + text.substring(start2, pos);\n  }\n  function scanNumber() {\n    let start2 = pos;\n    let mainFragment;\n    if (charCodeUnchecked(pos) === 48 /* _0 */) {\n      pos++;\n      if (charCodeUnchecked(pos) === 95 /* _ */) {\n        tokenFlags |= 512 /* ContainsSeparator */ | 16384 /* ContainsInvalidSeparator */;\n        error2(Diagnostics.Numeric_separators_are_not_allowed_here, pos, 1);\n        pos--;\n        mainFragment = scanNumberFragment();\n      } else if (!scanDigits()) {\n        tokenFlags |= 8192 /* ContainsLeadingZero */;\n        mainFragment = \"\" + +tokenValue;\n      } else if (!tokenValue) {\n        mainFragment = \"0\";\n      } else {\n        tokenValue = \"\" + parseInt(tokenValue, 8);\n        tokenFlags |= 32 /* Octal */;\n        const withMinus = token === 41 /* MinusToken */;\n        const literal = (withMinus ? \"-\" : \"\") + \"0o\" + (+tokenValue).toString(8);\n        if (withMinus) start2--;\n        error2(Diagnostics.Octal_literals_are_not_allowed_Use_the_syntax_0, start2, pos - start2, literal);\n        return 9 /* NumericLiteral */;\n      }\n    } else {\n      mainFragment = scanNumberFragment();\n    }\n    let decimalFragment;\n    let scientificFragment;\n    if (charCodeUnchecked(pos) === 46 /* dot */) {\n      pos++;\n      decimalFragment = scanNumberFragment();\n    }\n    let end2 = pos;\n    if (charCodeUnchecked(pos) === 69 /* E */ || charCodeUnchecked(pos) === 101 /* e */) {\n      pos++;\n      tokenFlags |= 16 /* Scientific */;\n      if (charCodeUnchecked(pos) === 43 /* plus */ || charCodeUnchecked(pos) === 45 /* minus */) pos++;\n      const preNumericPart = pos;\n      const finalFragment = scanNumberFragment();\n      if (!finalFragment) {\n        error2(Diagnostics.Digit_expected);\n      } else {\n        scientificFragment = text.substring(end2, preNumericPart) + finalFragment;\n        end2 = pos;\n      }\n    }\n    let result;\n    if (tokenFlags & 512 /* ContainsSeparator */) {\n      result = mainFragment;\n      if (decimalFragment) {\n        result += \".\" + decimalFragment;\n      }\n      if (scientificFragment) {\n        result += scientificFragment;\n      }\n    } else {\n      result = text.substring(start2, end2);\n    }\n    if (tokenFlags & 8192 /* ContainsLeadingZero */) {\n      error2(Diagnostics.Decimals_with_leading_zeros_are_not_allowed, start2, end2 - start2);\n      tokenValue = \"\" + +result;\n      return 9 /* NumericLiteral */;\n    }\n    if (decimalFragment !== void 0 || tokenFlags & 16 /* Scientific */) {\n      checkForIdentifierStartAfterNumericLiteral(start2, decimalFragment === void 0 && !!(tokenFlags & 16 /* Scientific */));\n      tokenValue = \"\" + +result;\n      return 9 /* NumericLiteral */;\n    } else {\n      tokenValue = result;\n      const type = checkBigIntSuffix();\n      checkForIdentifierStartAfterNumericLiteral(start2);\n      return type;\n    }\n  }\n  function checkForIdentifierStartAfterNumericLiteral(numericStart, isScientific) {\n    if (!isIdentifierStart(codePointUnchecked(pos), languageVersion)) {\n      return;\n    }\n    const identifierStart = pos;\n    const { length: length3 } = scanIdentifierParts();\n    if (length3 === 1 && text[identifierStart] === \"n\") {\n      if (isScientific) {\n        error2(Diagnostics.A_bigint_literal_cannot_use_exponential_notation, numericStart, identifierStart - numericStart + 1);\n      } else {\n        error2(Diagnostics.A_bigint_literal_must_be_an_integer, numericStart, identifierStart - numericStart + 1);\n      }\n    } else {\n      error2(Diagnostics.An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal, identifierStart, length3);\n      pos = identifierStart;\n    }\n  }\n  function scanDigits() {\n    const start2 = pos;\n    let isOctal = true;\n    while (isDigit(charCodeChecked(pos))) {\n      if (!isOctalDigit(charCodeUnchecked(pos))) {\n        isOctal = false;\n      }\n      pos++;\n    }\n    tokenValue = text.substring(start2, pos);\n    return isOctal;\n  }\n  function scanExactNumberOfHexDigits(count, canHaveSeparators) {\n    const valueString = scanHexDigits(\n      /*minCount*/\n      count,\n      /*scanAsManyAsPossible*/\n      false,\n      canHaveSeparators\n    );\n    return valueString ? parseInt(valueString, 16) : -1;\n  }\n  function scanMinimumNumberOfHexDigits(count, canHaveSeparators) {\n    return scanHexDigits(\n      /*minCount*/\n      count,\n      /*scanAsManyAsPossible*/\n      true,\n      canHaveSeparators\n    );\n  }\n  function scanHexDigits(minCount, scanAsManyAsPossible, canHaveSeparators) {\n    let valueChars = [];\n    let allowSeparator = false;\n    let isPreviousTokenSeparator = false;\n    while (valueChars.length < minCount || scanAsManyAsPossible) {\n      let ch = charCodeUnchecked(pos);\n      if (canHaveSeparators && ch === 95 /* _ */) {\n        tokenFlags |= 512 /* ContainsSeparator */;\n        if (allowSeparator) {\n          allowSeparator = false;\n          isPreviousTokenSeparator = true;\n        } else if (isPreviousTokenSeparator) {\n          error2(Diagnostics.Multiple_consecutive_numeric_separators_are_not_permitted, pos, 1);\n        } else {\n          error2(Diagnostics.Numeric_separators_are_not_allowed_here, pos, 1);\n        }\n        pos++;\n        continue;\n      }\n      allowSeparator = canHaveSeparators;\n      if (ch >= 65 /* A */ && ch <= 70 /* F */) {\n        ch += 97 /* a */ - 65 /* A */;\n      } else if (!(ch >= 48 /* _0 */ && ch <= 57 /* _9 */ || ch >= 97 /* a */ && ch <= 102 /* f */)) {\n        break;\n      }\n      valueChars.push(ch);\n      pos++;\n      isPreviousTokenSeparator = false;\n    }\n    if (valueChars.length < minCount) {\n      valueChars = [];\n    }\n    if (charCodeUnchecked(pos - 1) === 95 /* _ */) {\n      error2(Diagnostics.Numeric_separators_are_not_allowed_here, pos - 1, 1);\n    }\n    return String.fromCharCode(...valueChars);\n  }\n  function scanString(jsxAttributeString = false) {\n    const quote2 = charCodeUnchecked(pos);\n    pos++;\n    let result = \"\";\n    let start2 = pos;\n    while (true) {\n      if (pos >= end) {\n        result += text.substring(start2, pos);\n        tokenFlags |= 4 /* Unterminated */;\n        error2(Diagnostics.Unterminated_string_literal);\n        break;\n      }\n      const ch = charCodeUnchecked(pos);\n      if (ch === quote2) {\n        result += text.substring(start2, pos);\n        pos++;\n        break;\n      }\n      if (ch === 92 /* backslash */ && !jsxAttributeString) {\n        result += text.substring(start2, pos);\n        result += scanEscapeSequence(1 /* String */ | 2 /* ReportErrors */);\n        start2 = pos;\n        continue;\n      }\n      if ((ch === 10 /* lineFeed */ || ch === 13 /* carriageReturn */) && !jsxAttributeString) {\n        result += text.substring(start2, pos);\n        tokenFlags |= 4 /* Unterminated */;\n        error2(Diagnostics.Unterminated_string_literal);\n        break;\n      }\n      pos++;\n    }\n    return result;\n  }\n  function scanTemplateAndSetTokenValue(shouldEmitInvalidEscapeError) {\n    const startedWithBacktick = charCodeUnchecked(pos) === 96 /* backtick */;\n    pos++;\n    let start2 = pos;\n    let contents = \"\";\n    let resultingToken;\n    while (true) {\n      if (pos >= end) {\n        contents += text.substring(start2, pos);\n        tokenFlags |= 4 /* Unterminated */;\n        error2(Diagnostics.Unterminated_template_literal);\n        resultingToken = startedWithBacktick ? 15 /* NoSubstitutionTemplateLiteral */ : 18 /* TemplateTail */;\n        break;\n      }\n      const currChar = charCodeUnchecked(pos);\n      if (currChar === 96 /* backtick */) {\n        contents += text.substring(start2, pos);\n        pos++;\n        resultingToken = startedWithBacktick ? 15 /* NoSubstitutionTemplateLiteral */ : 18 /* TemplateTail */;\n        break;\n      }\n      if (currChar === 36 /* $ */ && pos + 1 < end && charCodeUnchecked(pos + 1) === 123 /* openBrace */) {\n        contents += text.substring(start2, pos);\n        pos += 2;\n        resultingToken = startedWithBacktick ? 16 /* TemplateHead */ : 17 /* TemplateMiddle */;\n        break;\n      }\n      if (currChar === 92 /* backslash */) {\n        contents += text.substring(start2, pos);\n        contents += scanEscapeSequence(1 /* String */ | (shouldEmitInvalidEscapeError ? 2 /* ReportErrors */ : 0));\n        start2 = pos;\n        continue;\n      }\n      if (currChar === 13 /* carriageReturn */) {\n        contents += text.substring(start2, pos);\n        pos++;\n        if (pos < end && charCodeUnchecked(pos) === 10 /* lineFeed */) {\n          pos++;\n        }\n        contents += \"\\n\";\n        start2 = pos;\n        continue;\n      }\n      pos++;\n    }\n    Debug.assert(resultingToken !== void 0);\n    tokenValue = contents;\n    return resultingToken;\n  }\n  function scanEscapeSequence(flags) {\n    const start2 = pos;\n    pos++;\n    if (pos >= end) {\n      error2(Diagnostics.Unexpected_end_of_text);\n      return \"\";\n    }\n    const ch = charCodeUnchecked(pos);\n    pos++;\n    switch (ch) {\n      case 48 /* _0 */:\n        if (pos >= end || !isDigit(charCodeUnchecked(pos))) {\n          return \"\\0\";\n        }\n      // '\\01', '\\011'\n      // falls through\n      case 49 /* _1 */:\n      case 50 /* _2 */:\n      case 51 /* _3 */:\n        if (pos < end && isOctalDigit(charCodeUnchecked(pos))) {\n          pos++;\n        }\n      // '\\17', '\\177'\n      // falls through\n      case 52 /* _4 */:\n      case 53 /* _5 */:\n      case 54 /* _6 */:\n      case 55 /* _7 */:\n        if (pos < end && isOctalDigit(charCodeUnchecked(pos))) {\n          pos++;\n        }\n        tokenFlags |= 2048 /* ContainsInvalidEscape */;\n        if (flags & 6 /* ReportInvalidEscapeErrors */) {\n          const code = parseInt(text.substring(start2 + 1, pos), 8);\n          if (flags & 4 /* RegularExpression */ && !(flags & 32 /* AtomEscape */) && ch !== 48 /* _0 */) {\n            error2(Diagnostics.Octal_escape_sequences_and_backreferences_are_not_allowed_in_a_character_class_If_this_was_intended_as_an_escape_sequence_use_the_syntax_0_instead, start2, pos - start2, \"\\\\x\" + code.toString(16).padStart(2, \"0\"));\n          } else {\n            error2(Diagnostics.Octal_escape_sequences_are_not_allowed_Use_the_syntax_0, start2, pos - start2, \"\\\\x\" + code.toString(16).padStart(2, \"0\"));\n          }\n          return String.fromCharCode(code);\n        }\n        return text.substring(start2, pos);\n      case 56 /* _8 */:\n      case 57 /* _9 */:\n        tokenFlags |= 2048 /* ContainsInvalidEscape */;\n        if (flags & 6 /* ReportInvalidEscapeErrors */) {\n          if (flags & 4 /* RegularExpression */ && !(flags & 32 /* AtomEscape */)) {\n            error2(Diagnostics.Decimal_escape_sequences_and_backreferences_are_not_allowed_in_a_character_class, start2, pos - start2);\n          } else {\n            error2(Diagnostics.Escape_sequence_0_is_not_allowed, start2, pos - start2, text.substring(start2, pos));\n          }\n          return String.fromCharCode(ch);\n        }\n        return text.substring(start2, pos);\n      case 98 /* b */:\n        return \"\\b\";\n      case 116 /* t */:\n        return \"\t\";\n      case 110 /* n */:\n        return \"\\n\";\n      case 118 /* v */:\n        return \"\\v\";\n      case 102 /* f */:\n        return \"\\f\";\n      case 114 /* r */:\n        return \"\\r\";\n      case 39 /* singleQuote */:\n        return \"'\";\n      case 34 /* doubleQuote */:\n        return '\"';\n      case 117 /* u */:\n        if (pos < end && charCodeUnchecked(pos) === 123 /* openBrace */) {\n          pos -= 2;\n          const result = scanExtendedUnicodeEscape(!!(flags & 6 /* ReportInvalidEscapeErrors */));\n          if (!(flags & 17 /* AllowExtendedUnicodeEscape */)) {\n            tokenFlags |= 2048 /* ContainsInvalidEscape */;\n            if (flags & 6 /* ReportInvalidEscapeErrors */) {\n              error2(Diagnostics.Unicode_escape_sequences_are_only_available_when_the_Unicode_u_flag_or_the_Unicode_Sets_v_flag_is_set, start2, pos - start2);\n            }\n          }\n          return result;\n        }\n        for (; pos < start2 + 6; pos++) {\n          if (!(pos < end && isHexDigit(charCodeUnchecked(pos)))) {\n            tokenFlags |= 2048 /* ContainsInvalidEscape */;\n            if (flags & 6 /* ReportInvalidEscapeErrors */) {\n              error2(Diagnostics.Hexadecimal_digit_expected);\n            }\n            return text.substring(start2, pos);\n          }\n        }\n        tokenFlags |= 1024 /* UnicodeEscape */;\n        const escapedValue = parseInt(text.substring(start2 + 2, pos), 16);\n        const escapedValueString = String.fromCharCode(escapedValue);\n        if (flags & 16 /* AnyUnicodeMode */ && escapedValue >= 55296 && escapedValue <= 56319 && pos + 6 < end && text.substring(pos, pos + 2) === \"\\\\u\" && charCodeUnchecked(pos + 2) !== 123 /* openBrace */) {\n          const nextStart = pos;\n          let nextPos = pos + 2;\n          for (; nextPos < nextStart + 6; nextPos++) {\n            if (!isHexDigit(charCodeUnchecked(nextPos))) {\n              return escapedValueString;\n            }\n          }\n          const nextEscapedValue = parseInt(text.substring(nextStart + 2, nextPos), 16);\n          if (nextEscapedValue >= 56320 && nextEscapedValue <= 57343) {\n            pos = nextPos;\n            return escapedValueString + String.fromCharCode(nextEscapedValue);\n          }\n        }\n        return escapedValueString;\n      case 120 /* x */:\n        for (; pos < start2 + 4; pos++) {\n          if (!(pos < end && isHexDigit(charCodeUnchecked(pos)))) {\n            tokenFlags |= 2048 /* ContainsInvalidEscape */;\n            if (flags & 6 /* ReportInvalidEscapeErrors */) {\n              error2(Diagnostics.Hexadecimal_digit_expected);\n            }\n            return text.substring(start2, pos);\n          }\n        }\n        tokenFlags |= 4096 /* HexEscape */;\n        return String.fromCharCode(parseInt(text.substring(start2 + 2, pos), 16));\n      // when encountering a LineContinuation (i.e. a backslash and a line terminator sequence),\n      // the line terminator is interpreted to be \"the empty code unit sequence\".\n      case 13 /* carriageReturn */:\n        if (pos < end && charCodeUnchecked(pos) === 10 /* lineFeed */) {\n          pos++;\n        }\n      // falls through\n      case 10 /* lineFeed */:\n      case 8232 /* lineSeparator */:\n      case 8233 /* paragraphSeparator */:\n        return \"\";\n      default:\n        if (flags & 16 /* AnyUnicodeMode */ || flags & 4 /* RegularExpression */ && !(flags & 8 /* AnnexB */) && isIdentifierPart(ch, languageVersion)) {\n          error2(Diagnostics.This_character_cannot_be_escaped_in_a_regular_expression, pos - 2, 2);\n        }\n        return String.fromCharCode(ch);\n    }\n  }\n  function scanExtendedUnicodeEscape(shouldEmitInvalidEscapeError) {\n    const start2 = pos;\n    pos += 3;\n    const escapedStart = pos;\n    const escapedValueString = scanMinimumNumberOfHexDigits(\n      1,\n      /*canHaveSeparators*/\n      false\n    );\n    const escapedValue = escapedValueString ? parseInt(escapedValueString, 16) : -1;\n    let isInvalidExtendedEscape = false;\n    if (escapedValue < 0) {\n      if (shouldEmitInvalidEscapeError) {\n        error2(Diagnostics.Hexadecimal_digit_expected);\n      }\n      isInvalidExtendedEscape = true;\n    } else if (escapedValue > 1114111) {\n      if (shouldEmitInvalidEscapeError) {\n        error2(Diagnostics.An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive, escapedStart, pos - escapedStart);\n      }\n      isInvalidExtendedEscape = true;\n    }\n    if (pos >= end) {\n      if (shouldEmitInvalidEscapeError) {\n        error2(Diagnostics.Unexpected_end_of_text);\n      }\n      isInvalidExtendedEscape = true;\n    } else if (charCodeUnchecked(pos) === 125 /* closeBrace */) {\n      pos++;\n    } else {\n      if (shouldEmitInvalidEscapeError) {\n        error2(Diagnostics.Unterminated_Unicode_escape_sequence);\n      }\n      isInvalidExtendedEscape = true;\n    }\n    if (isInvalidExtendedEscape) {\n      tokenFlags |= 2048 /* ContainsInvalidEscape */;\n      return text.substring(start2, pos);\n    }\n    tokenFlags |= 8 /* ExtendedUnicodeEscape */;\n    return utf16EncodeAsString(escapedValue);\n  }\n  function peekUnicodeEscape() {\n    if (pos + 5 < end && charCodeUnchecked(pos + 1) === 117 /* u */) {\n      const start2 = pos;\n      pos += 2;\n      const value = scanExactNumberOfHexDigits(\n        4,\n        /*canHaveSeparators*/\n        false\n      );\n      pos = start2;\n      return value;\n    }\n    return -1;\n  }\n  function peekExtendedUnicodeEscape() {\n    if (codePointUnchecked(pos + 1) === 117 /* u */ && codePointUnchecked(pos + 2) === 123 /* openBrace */) {\n      const start2 = pos;\n      pos += 3;\n      const escapedValueString = scanMinimumNumberOfHexDigits(\n        1,\n        /*canHaveSeparators*/\n        false\n      );\n      const escapedValue = escapedValueString ? parseInt(escapedValueString, 16) : -1;\n      pos = start2;\n      return escapedValue;\n    }\n    return -1;\n  }\n  function scanIdentifierParts() {\n    let result = \"\";\n    let start2 = pos;\n    while (pos < end) {\n      let ch = codePointUnchecked(pos);\n      if (isIdentifierPart(ch, languageVersion)) {\n        pos += charSize(ch);\n      } else if (ch === 92 /* backslash */) {\n        ch = peekExtendedUnicodeEscape();\n        if (ch >= 0 && isIdentifierPart(ch, languageVersion)) {\n          result += scanExtendedUnicodeEscape(\n            /*shouldEmitInvalidEscapeError*/\n            true\n          );\n          start2 = pos;\n          continue;\n        }\n        ch = peekUnicodeEscape();\n        if (!(ch >= 0 && isIdentifierPart(ch, languageVersion))) {\n          break;\n        }\n        tokenFlags |= 1024 /* UnicodeEscape */;\n        result += text.substring(start2, pos);\n        result += utf16EncodeAsString(ch);\n        pos += 6;\n        start2 = pos;\n      } else {\n        break;\n      }\n    }\n    result += text.substring(start2, pos);\n    return result;\n  }\n  function getIdentifierToken() {\n    const len = tokenValue.length;\n    if (len >= 2 && len <= 12) {\n      const ch = tokenValue.charCodeAt(0);\n      if (ch >= 97 /* a */ && ch <= 122 /* z */) {\n        const keyword = textToKeyword.get(tokenValue);\n        if (keyword !== void 0) {\n          return token = keyword;\n        }\n      }\n    }\n    return token = 80 /* Identifier */;\n  }\n  function scanBinaryOrOctalDigits(base) {\n    let value = \"\";\n    let separatorAllowed = false;\n    let isPreviousTokenSeparator = false;\n    while (true) {\n      const ch = charCodeUnchecked(pos);\n      if (ch === 95 /* _ */) {\n        tokenFlags |= 512 /* ContainsSeparator */;\n        if (separatorAllowed) {\n          separatorAllowed = false;\n          isPreviousTokenSeparator = true;\n        } else if (isPreviousTokenSeparator) {\n          error2(Diagnostics.Multiple_consecutive_numeric_separators_are_not_permitted, pos, 1);\n        } else {\n          error2(Diagnostics.Numeric_separators_are_not_allowed_here, pos, 1);\n        }\n        pos++;\n        continue;\n      }\n      separatorAllowed = true;\n      if (!isDigit(ch) || ch - 48 /* _0 */ >= base) {\n        break;\n      }\n      value += text[pos];\n      pos++;\n      isPreviousTokenSeparator = false;\n    }\n    if (charCodeUnchecked(pos - 1) === 95 /* _ */) {\n      error2(Diagnostics.Numeric_separators_are_not_allowed_here, pos - 1, 1);\n    }\n    return value;\n  }\n  function checkBigIntSuffix() {\n    if (charCodeUnchecked(pos) === 110 /* n */) {\n      tokenValue += \"n\";\n      if (tokenFlags & 384 /* BinaryOrOctalSpecifier */) {\n        tokenValue = parsePseudoBigInt(tokenValue) + \"n\";\n      }\n      pos++;\n      return 10 /* BigIntLiteral */;\n    } else {\n      const numericValue = tokenFlags & 128 /* BinarySpecifier */ ? parseInt(tokenValue.slice(2), 2) : tokenFlags & 256 /* OctalSpecifier */ ? parseInt(tokenValue.slice(2), 8) : +tokenValue;\n      tokenValue = \"\" + numericValue;\n      return 9 /* NumericLiteral */;\n    }\n  }\n  function scan() {\n    fullStartPos = pos;\n    tokenFlags = 0 /* None */;\n    while (true) {\n      tokenStart = pos;\n      if (pos >= end) {\n        return token = 1 /* EndOfFileToken */;\n      }\n      const ch = codePointUnchecked(pos);\n      if (pos === 0) {\n        if (ch === 35 /* hash */ && isShebangTrivia(text, pos)) {\n          pos = scanShebangTrivia(text, pos);\n          if (skipTrivia2) {\n            continue;\n          } else {\n            return token = 6 /* ShebangTrivia */;\n          }\n        }\n      }\n      switch (ch) {\n        case 10 /* lineFeed */:\n        case 13 /* carriageReturn */:\n          tokenFlags |= 1 /* PrecedingLineBreak */;\n          if (skipTrivia2) {\n            pos++;\n            continue;\n          } else {\n            if (ch === 13 /* carriageReturn */ && pos + 1 < end && charCodeUnchecked(pos + 1) === 10 /* lineFeed */) {\n              pos += 2;\n            } else {\n              pos++;\n            }\n            return token = 4 /* NewLineTrivia */;\n          }\n        case 9 /* tab */:\n        case 11 /* verticalTab */:\n        case 12 /* formFeed */:\n        case 32 /* space */:\n        case 160 /* nonBreakingSpace */:\n        case 5760 /* ogham */:\n        case 8192 /* enQuad */:\n        case 8193 /* emQuad */:\n        case 8194 /* enSpace */:\n        case 8195 /* emSpace */:\n        case 8196 /* threePerEmSpace */:\n        case 8197 /* fourPerEmSpace */:\n        case 8198 /* sixPerEmSpace */:\n        case 8199 /* figureSpace */:\n        case 8200 /* punctuationSpace */:\n        case 8201 /* thinSpace */:\n        case 8202 /* hairSpace */:\n        case 8203 /* zeroWidthSpace */:\n        case 8239 /* narrowNoBreakSpace */:\n        case 8287 /* mathematicalSpace */:\n        case 12288 /* ideographicSpace */:\n        case 65279 /* byteOrderMark */:\n          if (skipTrivia2) {\n            pos++;\n            continue;\n          } else {\n            while (pos < end && isWhiteSpaceSingleLine(charCodeUnchecked(pos))) {\n              pos++;\n            }\n            return token = 5 /* WhitespaceTrivia */;\n          }\n        case 33 /* exclamation */:\n          if (charCodeUnchecked(pos + 1) === 61 /* equals */) {\n            if (charCodeUnchecked(pos + 2) === 61 /* equals */) {\n              return pos += 3, token = 38 /* ExclamationEqualsEqualsToken */;\n            }\n            return pos += 2, token = 36 /* ExclamationEqualsToken */;\n          }\n          pos++;\n          return token = 54 /* ExclamationToken */;\n        case 34 /* doubleQuote */:\n        case 39 /* singleQuote */:\n          tokenValue = scanString();\n          return token = 11 /* StringLiteral */;\n        case 96 /* backtick */:\n          return token = scanTemplateAndSetTokenValue(\n            /*shouldEmitInvalidEscapeError*/\n            false\n          );\n        case 37 /* percent */:\n          if (charCodeUnchecked(pos + 1) === 61 /* equals */) {\n            return pos += 2, token = 70 /* PercentEqualsToken */;\n          }\n          pos++;\n          return token = 45 /* PercentToken */;\n        case 38 /* ampersand */:\n          if (charCodeUnchecked(pos + 1) === 38 /* ampersand */) {\n            if (charCodeUnchecked(pos + 2) === 61 /* equals */) {\n              return pos += 3, token = 77 /* AmpersandAmpersandEqualsToken */;\n            }\n            return pos += 2, token = 56 /* AmpersandAmpersandToken */;\n          }\n          if (charCodeUnchecked(pos + 1) === 61 /* equals */) {\n            return pos += 2, token = 74 /* AmpersandEqualsToken */;\n          }\n          pos++;\n          return token = 51 /* AmpersandToken */;\n        case 40 /* openParen */:\n          pos++;\n          return token = 21 /* OpenParenToken */;\n        case 41 /* closeParen */:\n          pos++;\n          return token = 22 /* CloseParenToken */;\n        case 42 /* asterisk */:\n          if (charCodeUnchecked(pos + 1) === 61 /* equals */) {\n            return pos += 2, token = 67 /* AsteriskEqualsToken */;\n          }\n          if (charCodeUnchecked(pos + 1) === 42 /* asterisk */) {\n            if (charCodeUnchecked(pos + 2) === 61 /* equals */) {\n              return pos += 3, token = 68 /* AsteriskAsteriskEqualsToken */;\n            }\n            return pos += 2, token = 43 /* AsteriskAsteriskToken */;\n          }\n          pos++;\n          if (skipJsDocLeadingAsterisks && (tokenFlags & 32768 /* PrecedingJSDocLeadingAsterisks */) === 0 && tokenFlags & 1 /* PrecedingLineBreak */) {\n            tokenFlags |= 32768 /* PrecedingJSDocLeadingAsterisks */;\n            continue;\n          }\n          return token = 42 /* AsteriskToken */;\n        case 43 /* plus */:\n          if (charCodeUnchecked(pos + 1) === 43 /* plus */) {\n            return pos += 2, token = 46 /* PlusPlusToken */;\n          }\n          if (charCodeUnchecked(pos + 1) === 61 /* equals */) {\n            return pos += 2, token = 65 /* PlusEqualsToken */;\n          }\n          pos++;\n          return token = 40 /* PlusToken */;\n        case 44 /* comma */:\n          pos++;\n          return token = 28 /* CommaToken */;\n        case 45 /* minus */:\n          if (charCodeUnchecked(pos + 1) === 45 /* minus */) {\n            return pos += 2, token = 47 /* MinusMinusToken */;\n          }\n          if (charCodeUnchecked(pos + 1) === 61 /* equals */) {\n            return pos += 2, token = 66 /* MinusEqualsToken */;\n          }\n          pos++;\n          return token = 41 /* MinusToken */;\n        case 46 /* dot */:\n          if (isDigit(charCodeUnchecked(pos + 1))) {\n            scanNumber();\n            return token = 9 /* NumericLiteral */;\n          }\n          if (charCodeUnchecked(pos + 1) === 46 /* dot */ && charCodeUnchecked(pos + 2) === 46 /* dot */) {\n            return pos += 3, token = 26 /* DotDotDotToken */;\n          }\n          pos++;\n          return token = 25 /* DotToken */;\n        case 47 /* slash */:\n          if (charCodeUnchecked(pos + 1) === 47 /* slash */) {\n            pos += 2;\n            while (pos < end) {\n              if (isLineBreak(charCodeUnchecked(pos))) {\n                break;\n              }\n              pos++;\n            }\n            commentDirectives = appendIfCommentDirective(\n              commentDirectives,\n              text.slice(tokenStart, pos),\n              commentDirectiveRegExSingleLine,\n              tokenStart\n            );\n            if (skipTrivia2) {\n              continue;\n            } else {\n              return token = 2 /* SingleLineCommentTrivia */;\n            }\n          }\n          if (charCodeUnchecked(pos + 1) === 42 /* asterisk */) {\n            pos += 2;\n            const isJSDoc2 = charCodeUnchecked(pos) === 42 /* asterisk */ && charCodeUnchecked(pos + 1) !== 47 /* slash */;\n            let commentClosed = false;\n            let lastLineStart = tokenStart;\n            while (pos < end) {\n              const ch2 = charCodeUnchecked(pos);\n              if (ch2 === 42 /* asterisk */ && charCodeUnchecked(pos + 1) === 47 /* slash */) {\n                pos += 2;\n                commentClosed = true;\n                break;\n              }\n              pos++;\n              if (isLineBreak(ch2)) {\n                lastLineStart = pos;\n                tokenFlags |= 1 /* PrecedingLineBreak */;\n              }\n            }\n            if (isJSDoc2 && shouldParseJSDoc()) {\n              tokenFlags |= 2 /* PrecedingJSDocComment */;\n            }\n            commentDirectives = appendIfCommentDirective(commentDirectives, text.slice(lastLineStart, pos), commentDirectiveRegExMultiLine, lastLineStart);\n            if (!commentClosed) {\n              error2(Diagnostics.Asterisk_Slash_expected);\n            }\n            if (skipTrivia2) {\n              continue;\n            } else {\n              if (!commentClosed) {\n                tokenFlags |= 4 /* Unterminated */;\n              }\n              return token = 3 /* MultiLineCommentTrivia */;\n            }\n          }\n          if (charCodeUnchecked(pos + 1) === 61 /* equals */) {\n            return pos += 2, token = 69 /* SlashEqualsToken */;\n          }\n          pos++;\n          return token = 44 /* SlashToken */;\n        case 48 /* _0 */:\n          if (pos + 2 < end && (charCodeUnchecked(pos + 1) === 88 /* X */ || charCodeUnchecked(pos + 1) === 120 /* x */)) {\n            pos += 2;\n            tokenValue = scanMinimumNumberOfHexDigits(\n              1,\n              /*canHaveSeparators*/\n              true\n            );\n            if (!tokenValue) {\n              error2(Diagnostics.Hexadecimal_digit_expected);\n              tokenValue = \"0\";\n            }\n            tokenValue = \"0x\" + tokenValue;\n            tokenFlags |= 64 /* HexSpecifier */;\n            return token = checkBigIntSuffix();\n          } else if (pos + 2 < end && (charCodeUnchecked(pos + 1) === 66 /* B */ || charCodeUnchecked(pos + 1) === 98 /* b */)) {\n            pos += 2;\n            tokenValue = scanBinaryOrOctalDigits(\n              /* base */\n              2\n            );\n            if (!tokenValue) {\n              error2(Diagnostics.Binary_digit_expected);\n              tokenValue = \"0\";\n            }\n            tokenValue = \"0b\" + tokenValue;\n            tokenFlags |= 128 /* BinarySpecifier */;\n            return token = checkBigIntSuffix();\n          } else if (pos + 2 < end && (charCodeUnchecked(pos + 1) === 79 /* O */ || charCodeUnchecked(pos + 1) === 111 /* o */)) {\n            pos += 2;\n            tokenValue = scanBinaryOrOctalDigits(\n              /* base */\n              8\n            );\n            if (!tokenValue) {\n              error2(Diagnostics.Octal_digit_expected);\n              tokenValue = \"0\";\n            }\n            tokenValue = \"0o\" + tokenValue;\n            tokenFlags |= 256 /* OctalSpecifier */;\n            return token = checkBigIntSuffix();\n          }\n        // falls through\n        case 49 /* _1 */:\n        case 50 /* _2 */:\n        case 51 /* _3 */:\n        case 52 /* _4 */:\n        case 53 /* _5 */:\n        case 54 /* _6 */:\n        case 55 /* _7 */:\n        case 56 /* _8 */:\n        case 57 /* _9 */:\n          return token = scanNumber();\n        case 58 /* colon */:\n          pos++;\n          return token = 59 /* ColonToken */;\n        case 59 /* semicolon */:\n          pos++;\n          return token = 27 /* SemicolonToken */;\n        case 60 /* lessThan */:\n          if (isConflictMarkerTrivia(text, pos)) {\n            pos = scanConflictMarkerTrivia(text, pos, error2);\n            if (skipTrivia2) {\n              continue;\n            } else {\n              return token = 7 /* ConflictMarkerTrivia */;\n            }\n          }\n          if (charCodeUnchecked(pos + 1) === 60 /* lessThan */) {\n            if (charCodeUnchecked(pos + 2) === 61 /* equals */) {\n              return pos += 3, token = 71 /* LessThanLessThanEqualsToken */;\n            }\n            return pos += 2, token = 48 /* LessThanLessThanToken */;\n          }\n          if (charCodeUnchecked(pos + 1) === 61 /* equals */) {\n            return pos += 2, token = 33 /* LessThanEqualsToken */;\n          }\n          if (languageVariant === 1 /* JSX */ && charCodeUnchecked(pos + 1) === 47 /* slash */ && charCodeUnchecked(pos + 2) !== 42 /* asterisk */) {\n            return pos += 2, token = 31 /* LessThanSlashToken */;\n          }\n          pos++;\n          return token = 30 /* LessThanToken */;\n        case 61 /* equals */:\n          if (isConflictMarkerTrivia(text, pos)) {\n            pos = scanConflictMarkerTrivia(text, pos, error2);\n            if (skipTrivia2) {\n              continue;\n            } else {\n              return token = 7 /* ConflictMarkerTrivia */;\n            }\n          }\n          if (charCodeUnchecked(pos + 1) === 61 /* equals */) {\n            if (charCodeUnchecked(pos + 2) === 61 /* equals */) {\n              return pos += 3, token = 37 /* EqualsEqualsEqualsToken */;\n            }\n            return pos += 2, token = 35 /* EqualsEqualsToken */;\n          }\n          if (charCodeUnchecked(pos + 1) === 62 /* greaterThan */) {\n            return pos += 2, token = 39 /* EqualsGreaterThanToken */;\n          }\n          pos++;\n          return token = 64 /* EqualsToken */;\n        case 62 /* greaterThan */:\n          if (isConflictMarkerTrivia(text, pos)) {\n            pos = scanConflictMarkerTrivia(text, pos, error2);\n            if (skipTrivia2) {\n              continue;\n            } else {\n              return token = 7 /* ConflictMarkerTrivia */;\n            }\n          }\n          pos++;\n          return token = 32 /* GreaterThanToken */;\n        case 63 /* question */:\n          if (charCodeUnchecked(pos + 1) === 46 /* dot */ && !isDigit(charCodeUnchecked(pos + 2))) {\n            return pos += 2, token = 29 /* QuestionDotToken */;\n          }\n          if (charCodeUnchecked(pos + 1) === 63 /* question */) {\n            if (charCodeUnchecked(pos + 2) === 61 /* equals */) {\n              return pos += 3, token = 78 /* QuestionQuestionEqualsToken */;\n            }\n            return pos += 2, token = 61 /* QuestionQuestionToken */;\n          }\n          pos++;\n          return token = 58 /* QuestionToken */;\n        case 91 /* openBracket */:\n          pos++;\n          return token = 23 /* OpenBracketToken */;\n        case 93 /* closeBracket */:\n          pos++;\n          return token = 24 /* CloseBracketToken */;\n        case 94 /* caret */:\n          if (charCodeUnchecked(pos + 1) === 61 /* equals */) {\n            return pos += 2, token = 79 /* CaretEqualsToken */;\n          }\n          pos++;\n          return token = 53 /* CaretToken */;\n        case 123 /* openBrace */:\n          pos++;\n          return token = 19 /* OpenBraceToken */;\n        case 124 /* bar */:\n          if (isConflictMarkerTrivia(text, pos)) {\n            pos = scanConflictMarkerTrivia(text, pos, error2);\n            if (skipTrivia2) {\n              continue;\n            } else {\n              return token = 7 /* ConflictMarkerTrivia */;\n            }\n          }\n          if (charCodeUnchecked(pos + 1) === 124 /* bar */) {\n            if (charCodeUnchecked(pos + 2) === 61 /* equals */) {\n              return pos += 3, token = 76 /* BarBarEqualsToken */;\n            }\n            return pos += 2, token = 57 /* BarBarToken */;\n          }\n          if (charCodeUnchecked(pos + 1) === 61 /* equals */) {\n            return pos += 2, token = 75 /* BarEqualsToken */;\n          }\n          pos++;\n          return token = 52 /* BarToken */;\n        case 125 /* closeBrace */:\n          pos++;\n          return token = 20 /* CloseBraceToken */;\n        case 126 /* tilde */:\n          pos++;\n          return token = 55 /* TildeToken */;\n        case 64 /* at */:\n          pos++;\n          return token = 60 /* AtToken */;\n        case 92 /* backslash */:\n          const extendedCookedChar = peekExtendedUnicodeEscape();\n          if (extendedCookedChar >= 0 && isIdentifierStart(extendedCookedChar, languageVersion)) {\n            tokenValue = scanExtendedUnicodeEscape(\n              /*shouldEmitInvalidEscapeError*/\n              true\n            ) + scanIdentifierParts();\n            return token = getIdentifierToken();\n          }\n          const cookedChar = peekUnicodeEscape();\n          if (cookedChar >= 0 && isIdentifierStart(cookedChar, languageVersion)) {\n            pos += 6;\n            tokenFlags |= 1024 /* UnicodeEscape */;\n            tokenValue = String.fromCharCode(cookedChar) + scanIdentifierParts();\n            return token = getIdentifierToken();\n          }\n          error2(Diagnostics.Invalid_character);\n          pos++;\n          return token = 0 /* Unknown */;\n        case 35 /* hash */:\n          if (pos !== 0 && text[pos + 1] === \"!\") {\n            error2(Diagnostics.can_only_be_used_at_the_start_of_a_file, pos, 2);\n            pos++;\n            return token = 0 /* Unknown */;\n          }\n          const charAfterHash = codePointUnchecked(pos + 1);\n          if (charAfterHash === 92 /* backslash */) {\n            pos++;\n            const extendedCookedChar2 = peekExtendedUnicodeEscape();\n            if (extendedCookedChar2 >= 0 && isIdentifierStart(extendedCookedChar2, languageVersion)) {\n              tokenValue = \"#\" + scanExtendedUnicodeEscape(\n                /*shouldEmitInvalidEscapeError*/\n                true\n              ) + scanIdentifierParts();\n              return token = 81 /* PrivateIdentifier */;\n            }\n            const cookedChar2 = peekUnicodeEscape();\n            if (cookedChar2 >= 0 && isIdentifierStart(cookedChar2, languageVersion)) {\n              pos += 6;\n              tokenFlags |= 1024 /* UnicodeEscape */;\n              tokenValue = \"#\" + String.fromCharCode(cookedChar2) + scanIdentifierParts();\n              return token = 81 /* PrivateIdentifier */;\n            }\n            pos--;\n          }\n          if (isIdentifierStart(charAfterHash, languageVersion)) {\n            pos++;\n            scanIdentifier(charAfterHash, languageVersion);\n          } else {\n            tokenValue = \"#\";\n            error2(Diagnostics.Invalid_character, pos++, charSize(ch));\n          }\n          return token = 81 /* PrivateIdentifier */;\n        case 65533 /* replacementCharacter */:\n          error2(Diagnostics.File_appears_to_be_binary, 0, 0);\n          pos = end;\n          return token = 8 /* NonTextFileMarkerTrivia */;\n        default:\n          const identifierKind = scanIdentifier(ch, languageVersion);\n          if (identifierKind) {\n            return token = identifierKind;\n          } else if (isWhiteSpaceSingleLine(ch)) {\n            pos += charSize(ch);\n            continue;\n          } else if (isLineBreak(ch)) {\n            tokenFlags |= 1 /* PrecedingLineBreak */;\n            pos += charSize(ch);\n            continue;\n          }\n          const size = charSize(ch);\n          error2(Diagnostics.Invalid_character, pos, size);\n          pos += size;\n          return token = 0 /* Unknown */;\n      }\n    }\n  }\n  function shouldParseJSDoc() {\n    switch (jsDocParsingMode) {\n      case 0 /* ParseAll */:\n        return true;\n      case 1 /* ParseNone */:\n        return false;\n    }\n    if (scriptKind !== 3 /* TS */ && scriptKind !== 4 /* TSX */) {\n      return true;\n    }\n    if (jsDocParsingMode === 3 /* ParseForTypeInfo */) {\n      return false;\n    }\n    return jsDocSeeOrLink.test(text.slice(fullStartPos, pos));\n  }\n  function reScanInvalidIdentifier() {\n    Debug.assert(token === 0 /* Unknown */, \"'reScanInvalidIdentifier' should only be called when the current token is 'SyntaxKind.Unknown'.\");\n    pos = tokenStart = fullStartPos;\n    tokenFlags = 0;\n    const ch = codePointUnchecked(pos);\n    const identifierKind = scanIdentifier(ch, 99 /* ESNext */);\n    if (identifierKind) {\n      return token = identifierKind;\n    }\n    pos += charSize(ch);\n    return token;\n  }\n  function scanIdentifier(startCharacter, languageVersion2) {\n    let ch = startCharacter;\n    if (isIdentifierStart(ch, languageVersion2)) {\n      pos += charSize(ch);\n      while (pos < end && isIdentifierPart(ch = codePointUnchecked(pos), languageVersion2)) pos += charSize(ch);\n      tokenValue = text.substring(tokenStart, pos);\n      if (ch === 92 /* backslash */) {\n        tokenValue += scanIdentifierParts();\n      }\n      return getIdentifierToken();\n    }\n  }\n  function reScanGreaterToken() {\n    if (token === 32 /* GreaterThanToken */) {\n      if (charCodeUnchecked(pos) === 62 /* greaterThan */) {\n        if (charCodeUnchecked(pos + 1) === 62 /* greaterThan */) {\n          if (charCodeUnchecked(pos + 2) === 61 /* equals */) {\n            return pos += 3, token = 73 /* GreaterThanGreaterThanGreaterThanEqualsToken */;\n          }\n          return pos += 2, token = 50 /* GreaterThanGreaterThanGreaterThanToken */;\n        }\n        if (charCodeUnchecked(pos + 1) === 61 /* equals */) {\n          return pos += 2, token = 72 /* GreaterThanGreaterThanEqualsToken */;\n        }\n        pos++;\n        return token = 49 /* GreaterThanGreaterThanToken */;\n      }\n      if (charCodeUnchecked(pos) === 61 /* equals */) {\n        pos++;\n        return token = 34 /* GreaterThanEqualsToken */;\n      }\n    }\n    return token;\n  }\n  function reScanAsteriskEqualsToken() {\n    Debug.assert(token === 67 /* AsteriskEqualsToken */, \"'reScanAsteriskEqualsToken' should only be called on a '*='\");\n    pos = tokenStart + 1;\n    return token = 64 /* EqualsToken */;\n  }\n  function reScanSlashToken(reportErrors2) {\n    if (token === 44 /* SlashToken */ || token === 69 /* SlashEqualsToken */) {\n      const startOfRegExpBody = tokenStart + 1;\n      pos = startOfRegExpBody;\n      let inEscape = false;\n      let namedCaptureGroups = false;\n      let inCharacterClass = false;\n      while (true) {\n        const ch = charCodeChecked(pos);\n        if (ch === -1 /* EOF */ || isLineBreak(ch)) {\n          tokenFlags |= 4 /* Unterminated */;\n          break;\n        }\n        if (inEscape) {\n          inEscape = false;\n        } else if (ch === 47 /* slash */ && !inCharacterClass) {\n          break;\n        } else if (ch === 91 /* openBracket */) {\n          inCharacterClass = true;\n        } else if (ch === 92 /* backslash */) {\n          inEscape = true;\n        } else if (ch === 93 /* closeBracket */) {\n          inCharacterClass = false;\n        } else if (!inCharacterClass && ch === 40 /* openParen */ && charCodeChecked(pos + 1) === 63 /* question */ && charCodeChecked(pos + 2) === 60 /* lessThan */ && charCodeChecked(pos + 3) !== 61 /* equals */ && charCodeChecked(pos + 3) !== 33 /* exclamation */) {\n          namedCaptureGroups = true;\n        }\n        pos++;\n      }\n      const endOfRegExpBody = pos;\n      if (tokenFlags & 4 /* Unterminated */) {\n        pos = startOfRegExpBody;\n        inEscape = false;\n        let characterClassDepth = 0;\n        let inDecimalQuantifier = false;\n        let groupDepth = 0;\n        while (pos < endOfRegExpBody) {\n          const ch = charCodeUnchecked(pos);\n          if (inEscape) {\n            inEscape = false;\n          } else if (ch === 92 /* backslash */) {\n            inEscape = true;\n          } else if (ch === 91 /* openBracket */) {\n            characterClassDepth++;\n          } else if (ch === 93 /* closeBracket */ && characterClassDepth) {\n            characterClassDepth--;\n          } else if (!characterClassDepth) {\n            if (ch === 123 /* openBrace */) {\n              inDecimalQuantifier = true;\n            } else if (ch === 125 /* closeBrace */ && inDecimalQuantifier) {\n              inDecimalQuantifier = false;\n            } else if (!inDecimalQuantifier) {\n              if (ch === 40 /* openParen */) {\n                groupDepth++;\n              } else if (ch === 41 /* closeParen */ && groupDepth) {\n                groupDepth--;\n              } else if (ch === 41 /* closeParen */ || ch === 93 /* closeBracket */ || ch === 125 /* closeBrace */) {\n                break;\n              }\n            }\n          }\n          pos++;\n        }\n        while (isWhiteSpaceLike(charCodeChecked(pos - 1)) || charCodeChecked(pos - 1) === 59 /* semicolon */) pos--;\n        error2(Diagnostics.Unterminated_regular_expression_literal, tokenStart, pos - tokenStart);\n      } else {\n        pos++;\n        let regExpFlags = 0 /* None */;\n        while (true) {\n          const ch = codePointChecked(pos);\n          if (ch === -1 /* EOF */ || !isIdentifierPart(ch, languageVersion)) {\n            break;\n          }\n          const size = charSize(ch);\n          if (reportErrors2) {\n            const flag = characterCodeToRegularExpressionFlag(ch);\n            if (flag === void 0) {\n              error2(Diagnostics.Unknown_regular_expression_flag, pos, size);\n            } else if (regExpFlags & flag) {\n              error2(Diagnostics.Duplicate_regular_expression_flag, pos, size);\n            } else if (((regExpFlags | flag) & 96 /* AnyUnicodeMode */) === 96 /* AnyUnicodeMode */) {\n              error2(Diagnostics.The_Unicode_u_flag_and_the_Unicode_Sets_v_flag_cannot_be_set_simultaneously, pos, size);\n            } else {\n              regExpFlags |= flag;\n              checkRegularExpressionFlagAvailability(flag, size);\n            }\n          }\n          pos += size;\n        }\n        if (reportErrors2) {\n          scanRange(startOfRegExpBody, endOfRegExpBody - startOfRegExpBody, () => {\n            scanRegularExpressionWorker(\n              regExpFlags,\n              /*annexB*/\n              true,\n              namedCaptureGroups\n            );\n          });\n        }\n      }\n      tokenValue = text.substring(tokenStart, pos);\n      token = 14 /* RegularExpressionLiteral */;\n    }\n    return token;\n  }\n  function scanRegularExpressionWorker(regExpFlags, annexB, namedCaptureGroups) {\n    var unicodeSetsMode = !!(regExpFlags & 64 /* UnicodeSets */);\n    var anyUnicodeMode = !!(regExpFlags & 96 /* AnyUnicodeMode */);\n    var anyUnicodeModeOrNonAnnexB = anyUnicodeMode || !annexB;\n    var mayContainStrings = false;\n    var numberOfCapturingGroups = 0;\n    var groupSpecifiers;\n    var groupNameReferences;\n    var decimalEscapes;\n    var namedCapturingGroupsScopeStack = [];\n    var topNamedCapturingGroupsScope;\n    function scanDisjunction(isInGroup) {\n      while (true) {\n        namedCapturingGroupsScopeStack.push(topNamedCapturingGroupsScope);\n        topNamedCapturingGroupsScope = void 0;\n        scanAlternative(isInGroup);\n        topNamedCapturingGroupsScope = namedCapturingGroupsScopeStack.pop();\n        if (charCodeChecked(pos) !== 124 /* bar */) {\n          return;\n        }\n        pos++;\n      }\n    }\n    function scanAlternative(isInGroup) {\n      let isPreviousTermQuantifiable = false;\n      while (true) {\n        const start2 = pos;\n        const ch = charCodeChecked(pos);\n        switch (ch) {\n          case -1 /* EOF */:\n            return;\n          case 94 /* caret */:\n          case 36 /* $ */:\n            pos++;\n            isPreviousTermQuantifiable = false;\n            break;\n          case 92 /* backslash */:\n            pos++;\n            switch (charCodeChecked(pos)) {\n              case 98 /* b */:\n              case 66 /* B */:\n                pos++;\n                isPreviousTermQuantifiable = false;\n                break;\n              default:\n                scanAtomEscape();\n                isPreviousTermQuantifiable = true;\n                break;\n            }\n            break;\n          case 40 /* openParen */:\n            pos++;\n            if (charCodeChecked(pos) === 63 /* question */) {\n              pos++;\n              switch (charCodeChecked(pos)) {\n                case 61 /* equals */:\n                case 33 /* exclamation */:\n                  pos++;\n                  isPreviousTermQuantifiable = !anyUnicodeModeOrNonAnnexB;\n                  break;\n                case 60 /* lessThan */:\n                  const groupNameStart = pos;\n                  pos++;\n                  switch (charCodeChecked(pos)) {\n                    case 61 /* equals */:\n                    case 33 /* exclamation */:\n                      pos++;\n                      isPreviousTermQuantifiable = false;\n                      break;\n                    default:\n                      scanGroupName(\n                        /*isReference*/\n                        false\n                      );\n                      scanExpectedChar(62 /* greaterThan */);\n                      if (languageVersion < 5 /* ES2018 */) {\n                        error2(Diagnostics.Named_capturing_groups_are_only_available_when_targeting_ES2018_or_later, groupNameStart, pos - groupNameStart);\n                      }\n                      numberOfCapturingGroups++;\n                      isPreviousTermQuantifiable = true;\n                      break;\n                  }\n                  break;\n                default:\n                  const start3 = pos;\n                  const setFlags = scanPatternModifiers(0 /* None */);\n                  if (charCodeChecked(pos) === 45 /* minus */) {\n                    pos++;\n                    scanPatternModifiers(setFlags);\n                    if (pos === start3 + 1) {\n                      error2(Diagnostics.Subpattern_flags_must_be_present_when_there_is_a_minus_sign, start3, pos - start3);\n                    }\n                  }\n                  scanExpectedChar(58 /* colon */);\n                  isPreviousTermQuantifiable = true;\n                  break;\n              }\n            } else {\n              numberOfCapturingGroups++;\n              isPreviousTermQuantifiable = true;\n            }\n            scanDisjunction(\n              /*isInGroup*/\n              true\n            );\n            scanExpectedChar(41 /* closeParen */);\n            break;\n          case 123 /* openBrace */:\n            pos++;\n            const digitsStart = pos;\n            scanDigits();\n            const min2 = tokenValue;\n            if (!anyUnicodeModeOrNonAnnexB && !min2) {\n              isPreviousTermQuantifiable = true;\n              break;\n            }\n            if (charCodeChecked(pos) === 44 /* comma */) {\n              pos++;\n              scanDigits();\n              const max = tokenValue;\n              if (!min2) {\n                if (max || charCodeChecked(pos) === 125 /* closeBrace */) {\n                  error2(Diagnostics.Incomplete_quantifier_Digit_expected, digitsStart, 0);\n                } else {\n                  error2(Diagnostics.Unexpected_0_Did_you_mean_to_escape_it_with_backslash, start2, 1, String.fromCharCode(ch));\n                  isPreviousTermQuantifiable = true;\n                  break;\n                }\n              } else if (max && Number.parseInt(min2) > Number.parseInt(max) && (anyUnicodeModeOrNonAnnexB || charCodeChecked(pos) === 125 /* closeBrace */)) {\n                error2(Diagnostics.Numbers_out_of_order_in_quantifier, digitsStart, pos - digitsStart);\n              }\n            } else if (!min2) {\n              if (anyUnicodeModeOrNonAnnexB) {\n                error2(Diagnostics.Unexpected_0_Did_you_mean_to_escape_it_with_backslash, start2, 1, String.fromCharCode(ch));\n              }\n              isPreviousTermQuantifiable = true;\n              break;\n            }\n            if (charCodeChecked(pos) !== 125 /* closeBrace */) {\n              if (anyUnicodeModeOrNonAnnexB) {\n                error2(Diagnostics._0_expected, pos, 0, String.fromCharCode(125 /* closeBrace */));\n                pos--;\n              } else {\n                isPreviousTermQuantifiable = true;\n                break;\n              }\n            }\n          // falls through\n          case 42 /* asterisk */:\n          case 43 /* plus */:\n          case 63 /* question */:\n            pos++;\n            if (charCodeChecked(pos) === 63 /* question */) {\n              pos++;\n            }\n            if (!isPreviousTermQuantifiable) {\n              error2(Diagnostics.There_is_nothing_available_for_repetition, start2, pos - start2);\n            }\n            isPreviousTermQuantifiable = false;\n            break;\n          case 46 /* dot */:\n            pos++;\n            isPreviousTermQuantifiable = true;\n            break;\n          case 91 /* openBracket */:\n            pos++;\n            if (unicodeSetsMode) {\n              scanClassSetExpression();\n            } else {\n              scanClassRanges();\n            }\n            scanExpectedChar(93 /* closeBracket */);\n            isPreviousTermQuantifiable = true;\n            break;\n          case 41 /* closeParen */:\n            if (isInGroup) {\n              return;\n            }\n          // falls through\n          case 93 /* closeBracket */:\n          case 125 /* closeBrace */:\n            if (anyUnicodeModeOrNonAnnexB || ch === 41 /* closeParen */) {\n              error2(Diagnostics.Unexpected_0_Did_you_mean_to_escape_it_with_backslash, pos, 1, String.fromCharCode(ch));\n            }\n            pos++;\n            isPreviousTermQuantifiable = true;\n            break;\n          case 47 /* slash */:\n          case 124 /* bar */:\n            return;\n          default:\n            scanSourceCharacter();\n            isPreviousTermQuantifiable = true;\n            break;\n        }\n      }\n    }\n    function scanPatternModifiers(currFlags) {\n      while (true) {\n        const ch = codePointChecked(pos);\n        if (ch === -1 /* EOF */ || !isIdentifierPart(ch, languageVersion)) {\n          break;\n        }\n        const size = charSize(ch);\n        const flag = characterCodeToRegularExpressionFlag(ch);\n        if (flag === void 0) {\n          error2(Diagnostics.Unknown_regular_expression_flag, pos, size);\n        } else if (currFlags & flag) {\n          error2(Diagnostics.Duplicate_regular_expression_flag, pos, size);\n        } else if (!(flag & 28 /* Modifiers */)) {\n          error2(Diagnostics.This_regular_expression_flag_cannot_be_toggled_within_a_subpattern, pos, size);\n        } else {\n          currFlags |= flag;\n          checkRegularExpressionFlagAvailability(flag, size);\n        }\n        pos += size;\n      }\n      return currFlags;\n    }\n    function scanAtomEscape() {\n      Debug.assertEqual(charCodeUnchecked(pos - 1), 92 /* backslash */);\n      switch (charCodeChecked(pos)) {\n        case 107 /* k */:\n          pos++;\n          if (charCodeChecked(pos) === 60 /* lessThan */) {\n            pos++;\n            scanGroupName(\n              /*isReference*/\n              true\n            );\n            scanExpectedChar(62 /* greaterThan */);\n          } else if (anyUnicodeModeOrNonAnnexB || namedCaptureGroups) {\n            error2(Diagnostics.k_must_be_followed_by_a_capturing_group_name_enclosed_in_angle_brackets, pos - 2, 2);\n          }\n          break;\n        case 113 /* q */:\n          if (unicodeSetsMode) {\n            pos++;\n            error2(Diagnostics.q_is_only_available_inside_character_class, pos - 2, 2);\n            break;\n          }\n        // falls through\n        default:\n          Debug.assert(scanCharacterClassEscape() || scanDecimalEscape() || scanCharacterEscape(\n            /*atomEscape*/\n            true\n          ));\n          break;\n      }\n    }\n    function scanDecimalEscape() {\n      Debug.assertEqual(charCodeUnchecked(pos - 1), 92 /* backslash */);\n      const ch = charCodeChecked(pos);\n      if (ch >= 49 /* _1 */ && ch <= 57 /* _9 */) {\n        const start2 = pos;\n        scanDigits();\n        decimalEscapes = append(decimalEscapes, { pos: start2, end: pos, value: +tokenValue });\n        return true;\n      }\n      return false;\n    }\n    function scanCharacterEscape(atomEscape) {\n      Debug.assertEqual(charCodeUnchecked(pos - 1), 92 /* backslash */);\n      let ch = charCodeChecked(pos);\n      switch (ch) {\n        case -1 /* EOF */:\n          error2(Diagnostics.Undetermined_character_escape, pos - 1, 1);\n          return \"\\\\\";\n        case 99 /* c */:\n          pos++;\n          ch = charCodeChecked(pos);\n          if (isASCIILetter(ch)) {\n            pos++;\n            return String.fromCharCode(ch & 31);\n          }\n          if (anyUnicodeModeOrNonAnnexB) {\n            error2(Diagnostics.c_must_be_followed_by_an_ASCII_letter, pos - 2, 2);\n          } else if (atomEscape) {\n            pos--;\n            return \"\\\\\";\n          }\n          return String.fromCharCode(ch);\n        case 94 /* caret */:\n        case 36 /* $ */:\n        case 47 /* slash */:\n        case 92 /* backslash */:\n        case 46 /* dot */:\n        case 42 /* asterisk */:\n        case 43 /* plus */:\n        case 63 /* question */:\n        case 40 /* openParen */:\n        case 41 /* closeParen */:\n        case 91 /* openBracket */:\n        case 93 /* closeBracket */:\n        case 123 /* openBrace */:\n        case 125 /* closeBrace */:\n        case 124 /* bar */:\n          pos++;\n          return String.fromCharCode(ch);\n        default:\n          pos--;\n          return scanEscapeSequence(\n            4 /* RegularExpression */ | (annexB ? 8 /* AnnexB */ : 0) | (anyUnicodeMode ? 16 /* AnyUnicodeMode */ : 0) | (atomEscape ? 32 /* AtomEscape */ : 0)\n          );\n      }\n    }\n    function scanGroupName(isReference) {\n      Debug.assertEqual(charCodeUnchecked(pos - 1), 60 /* lessThan */);\n      tokenStart = pos;\n      scanIdentifier(codePointChecked(pos), languageVersion);\n      if (pos === tokenStart) {\n        error2(Diagnostics.Expected_a_capturing_group_name);\n      } else if (isReference) {\n        groupNameReferences = append(groupNameReferences, { pos: tokenStart, end: pos, name: tokenValue });\n      } else if ((topNamedCapturingGroupsScope == null ? void 0 : topNamedCapturingGroupsScope.has(tokenValue)) || namedCapturingGroupsScopeStack.some((group2) => group2 == null ? void 0 : group2.has(tokenValue))) {\n        error2(Diagnostics.Named_capturing_groups_with_the_same_name_must_be_mutually_exclusive_to_each_other, tokenStart, pos - tokenStart);\n      } else {\n        topNamedCapturingGroupsScope ?? (topNamedCapturingGroupsScope = /* @__PURE__ */ new Set());\n        topNamedCapturingGroupsScope.add(tokenValue);\n        groupSpecifiers ?? (groupSpecifiers = /* @__PURE__ */ new Set());\n        groupSpecifiers.add(tokenValue);\n      }\n    }\n    function isClassContentExit(ch) {\n      return ch === 93 /* closeBracket */ || ch === -1 /* EOF */ || pos >= end;\n    }\n    function scanClassRanges() {\n      Debug.assertEqual(charCodeUnchecked(pos - 1), 91 /* openBracket */);\n      if (charCodeChecked(pos) === 94 /* caret */) {\n        pos++;\n      }\n      while (true) {\n        const ch = charCodeChecked(pos);\n        if (isClassContentExit(ch)) {\n          return;\n        }\n        const minStart = pos;\n        const minCharacter = scanClassAtom();\n        if (charCodeChecked(pos) === 45 /* minus */) {\n          pos++;\n          const ch2 = charCodeChecked(pos);\n          if (isClassContentExit(ch2)) {\n            return;\n          }\n          if (!minCharacter && anyUnicodeModeOrNonAnnexB) {\n            error2(Diagnostics.A_character_class_range_must_not_be_bounded_by_another_character_class, minStart, pos - 1 - minStart);\n          }\n          const maxStart = pos;\n          const maxCharacter = scanClassAtom();\n          if (!maxCharacter && anyUnicodeModeOrNonAnnexB) {\n            error2(Diagnostics.A_character_class_range_must_not_be_bounded_by_another_character_class, maxStart, pos - maxStart);\n            continue;\n          }\n          if (!minCharacter) {\n            continue;\n          }\n          const minCharacterValue = codePointAt(minCharacter, 0);\n          const maxCharacterValue = codePointAt(maxCharacter, 0);\n          if (minCharacter.length === charSize(minCharacterValue) && maxCharacter.length === charSize(maxCharacterValue) && minCharacterValue > maxCharacterValue) {\n            error2(Diagnostics.Range_out_of_order_in_character_class, minStart, pos - minStart);\n          }\n        }\n      }\n    }\n    function scanClassSetExpression() {\n      Debug.assertEqual(charCodeUnchecked(pos - 1), 91 /* openBracket */);\n      let isCharacterComplement = false;\n      if (charCodeChecked(pos) === 94 /* caret */) {\n        pos++;\n        isCharacterComplement = true;\n      }\n      let expressionMayContainStrings = false;\n      let ch = charCodeChecked(pos);\n      if (isClassContentExit(ch)) {\n        return;\n      }\n      let start2 = pos;\n      let operand;\n      switch (text.slice(pos, pos + 2)) {\n        // TODO: don't use slice\n        case \"--\":\n        case \"&&\":\n          error2(Diagnostics.Expected_a_class_set_operand);\n          mayContainStrings = false;\n          break;\n        default:\n          operand = scanClassSetOperand();\n          break;\n      }\n      switch (charCodeChecked(pos)) {\n        case 45 /* minus */:\n          if (charCodeChecked(pos + 1) === 45 /* minus */) {\n            if (isCharacterComplement && mayContainStrings) {\n              error2(Diagnostics.Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_character_class, start2, pos - start2);\n            }\n            expressionMayContainStrings = mayContainStrings;\n            scanClassSetSubExpression(3 /* ClassSubtraction */);\n            mayContainStrings = !isCharacterComplement && expressionMayContainStrings;\n            return;\n          }\n          break;\n        case 38 /* ampersand */:\n          if (charCodeChecked(pos + 1) === 38 /* ampersand */) {\n            scanClassSetSubExpression(2 /* ClassIntersection */);\n            if (isCharacterComplement && mayContainStrings) {\n              error2(Diagnostics.Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_character_class, start2, pos - start2);\n            }\n            expressionMayContainStrings = mayContainStrings;\n            mayContainStrings = !isCharacterComplement && expressionMayContainStrings;\n            return;\n          } else {\n            error2(Diagnostics.Unexpected_0_Did_you_mean_to_escape_it_with_backslash, pos, 1, String.fromCharCode(ch));\n          }\n          break;\n        default:\n          if (isCharacterComplement && mayContainStrings) {\n            error2(Diagnostics.Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_character_class, start2, pos - start2);\n          }\n          expressionMayContainStrings = mayContainStrings;\n          break;\n      }\n      while (true) {\n        ch = charCodeChecked(pos);\n        if (ch === -1 /* EOF */) {\n          break;\n        }\n        switch (ch) {\n          case 45 /* minus */:\n            pos++;\n            ch = charCodeChecked(pos);\n            if (isClassContentExit(ch)) {\n              mayContainStrings = !isCharacterComplement && expressionMayContainStrings;\n              return;\n            }\n            if (ch === 45 /* minus */) {\n              pos++;\n              error2(Diagnostics.Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead, pos - 2, 2);\n              start2 = pos - 2;\n              operand = text.slice(start2, pos);\n              continue;\n            } else {\n              if (!operand) {\n                error2(Diagnostics.A_character_class_range_must_not_be_bounded_by_another_character_class, start2, pos - 1 - start2);\n              }\n              const secondStart = pos;\n              const secondOperand = scanClassSetOperand();\n              if (isCharacterComplement && mayContainStrings) {\n                error2(Diagnostics.Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_character_class, secondStart, pos - secondStart);\n              }\n              expressionMayContainStrings || (expressionMayContainStrings = mayContainStrings);\n              if (!secondOperand) {\n                error2(Diagnostics.A_character_class_range_must_not_be_bounded_by_another_character_class, secondStart, pos - secondStart);\n                break;\n              }\n              if (!operand) {\n                break;\n              }\n              const minCharacterValue = codePointAt(operand, 0);\n              const maxCharacterValue = codePointAt(secondOperand, 0);\n              if (operand.length === charSize(minCharacterValue) && secondOperand.length === charSize(maxCharacterValue) && minCharacterValue > maxCharacterValue) {\n                error2(Diagnostics.Range_out_of_order_in_character_class, start2, pos - start2);\n              }\n            }\n            break;\n          case 38 /* ampersand */:\n            start2 = pos;\n            pos++;\n            if (charCodeChecked(pos) === 38 /* ampersand */) {\n              pos++;\n              error2(Diagnostics.Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead, pos - 2, 2);\n              if (charCodeChecked(pos) === 38 /* ampersand */) {\n                error2(Diagnostics.Unexpected_0_Did_you_mean_to_escape_it_with_backslash, pos, 1, String.fromCharCode(ch));\n                pos++;\n              }\n            } else {\n              error2(Diagnostics.Unexpected_0_Did_you_mean_to_escape_it_with_backslash, pos - 1, 1, String.fromCharCode(ch));\n            }\n            operand = text.slice(start2, pos);\n            continue;\n        }\n        if (isClassContentExit(charCodeChecked(pos))) {\n          break;\n        }\n        start2 = pos;\n        switch (text.slice(pos, pos + 2)) {\n          // TODO: don't use slice\n          case \"--\":\n          case \"&&\":\n            error2(Diagnostics.Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead, pos, 2);\n            pos += 2;\n            operand = text.slice(start2, pos);\n            break;\n          default:\n            operand = scanClassSetOperand();\n            break;\n        }\n      }\n      mayContainStrings = !isCharacterComplement && expressionMayContainStrings;\n    }\n    function scanClassSetSubExpression(expressionType) {\n      let expressionMayContainStrings = mayContainStrings;\n      while (true) {\n        let ch = charCodeChecked(pos);\n        if (isClassContentExit(ch)) {\n          break;\n        }\n        switch (ch) {\n          case 45 /* minus */:\n            pos++;\n            if (charCodeChecked(pos) === 45 /* minus */) {\n              pos++;\n              if (expressionType !== 3 /* ClassSubtraction */) {\n                error2(Diagnostics.Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead, pos - 2, 2);\n              }\n            } else {\n              error2(Diagnostics.Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead, pos - 1, 1);\n            }\n            break;\n          case 38 /* ampersand */:\n            pos++;\n            if (charCodeChecked(pos) === 38 /* ampersand */) {\n              pos++;\n              if (expressionType !== 2 /* ClassIntersection */) {\n                error2(Diagnostics.Operators_must_not_be_mixed_within_a_character_class_Wrap_it_in_a_nested_class_instead, pos - 2, 2);\n              }\n              if (charCodeChecked(pos) === 38 /* ampersand */) {\n                error2(Diagnostics.Unexpected_0_Did_you_mean_to_escape_it_with_backslash, pos, 1, String.fromCharCode(ch));\n                pos++;\n              }\n            } else {\n              error2(Diagnostics.Unexpected_0_Did_you_mean_to_escape_it_with_backslash, pos - 1, 1, String.fromCharCode(ch));\n            }\n            break;\n          default:\n            switch (expressionType) {\n              case 3 /* ClassSubtraction */:\n                error2(Diagnostics._0_expected, pos, 0, \"--\");\n                break;\n              case 2 /* ClassIntersection */:\n                error2(Diagnostics._0_expected, pos, 0, \"&&\");\n                break;\n              default:\n                break;\n            }\n            break;\n        }\n        ch = charCodeChecked(pos);\n        if (isClassContentExit(ch)) {\n          error2(Diagnostics.Expected_a_class_set_operand);\n          break;\n        }\n        scanClassSetOperand();\n        expressionMayContainStrings && (expressionMayContainStrings = mayContainStrings);\n      }\n      mayContainStrings = expressionMayContainStrings;\n    }\n    function scanClassSetOperand() {\n      mayContainStrings = false;\n      switch (charCodeChecked(pos)) {\n        case -1 /* EOF */:\n          return \"\";\n        case 91 /* openBracket */:\n          pos++;\n          scanClassSetExpression();\n          scanExpectedChar(93 /* closeBracket */);\n          return \"\";\n        case 92 /* backslash */:\n          pos++;\n          if (scanCharacterClassEscape()) {\n            return \"\";\n          } else if (charCodeChecked(pos) === 113 /* q */) {\n            pos++;\n            if (charCodeChecked(pos) === 123 /* openBrace */) {\n              pos++;\n              scanClassStringDisjunctionContents();\n              scanExpectedChar(125 /* closeBrace */);\n              return \"\";\n            } else {\n              error2(Diagnostics.q_must_be_followed_by_string_alternatives_enclosed_in_braces, pos - 2, 2);\n              return \"q\";\n            }\n          }\n          pos--;\n        // falls through\n        default:\n          return scanClassSetCharacter();\n      }\n    }\n    function scanClassStringDisjunctionContents() {\n      Debug.assertEqual(charCodeUnchecked(pos - 1), 123 /* openBrace */);\n      let characterCount = 0;\n      while (true) {\n        const ch = charCodeChecked(pos);\n        switch (ch) {\n          case -1 /* EOF */:\n            return;\n          case 125 /* closeBrace */:\n            if (characterCount !== 1) {\n              mayContainStrings = true;\n            }\n            return;\n          case 124 /* bar */:\n            if (characterCount !== 1) {\n              mayContainStrings = true;\n            }\n            pos++;\n            start = pos;\n            characterCount = 0;\n            break;\n          default:\n            scanClassSetCharacter();\n            characterCount++;\n            break;\n        }\n      }\n    }\n    function scanClassSetCharacter() {\n      const ch = charCodeChecked(pos);\n      if (ch === -1 /* EOF */) {\n        return \"\";\n      }\n      if (ch === 92 /* backslash */) {\n        pos++;\n        const ch2 = charCodeChecked(pos);\n        switch (ch2) {\n          case 98 /* b */:\n            pos++;\n            return \"\\b\";\n          case 38 /* ampersand */:\n          case 45 /* minus */:\n          case 33 /* exclamation */:\n          case 35 /* hash */:\n          case 37 /* percent */:\n          case 44 /* comma */:\n          case 58 /* colon */:\n          case 59 /* semicolon */:\n          case 60 /* lessThan */:\n          case 61 /* equals */:\n          case 62 /* greaterThan */:\n          case 64 /* at */:\n          case 96 /* backtick */:\n          case 126 /* tilde */:\n            pos++;\n            return String.fromCharCode(ch2);\n          default:\n            return scanCharacterEscape(\n              /*atomEscape*/\n              false\n            );\n        }\n      } else if (ch === charCodeChecked(pos + 1)) {\n        switch (ch) {\n          case 38 /* ampersand */:\n          case 33 /* exclamation */:\n          case 35 /* hash */:\n          case 37 /* percent */:\n          case 42 /* asterisk */:\n          case 43 /* plus */:\n          case 44 /* comma */:\n          case 46 /* dot */:\n          case 58 /* colon */:\n          case 59 /* semicolon */:\n          case 60 /* lessThan */:\n          case 61 /* equals */:\n          case 62 /* greaterThan */:\n          case 63 /* question */:\n          case 64 /* at */:\n          case 96 /* backtick */:\n          case 126 /* tilde */:\n            error2(Diagnostics.A_character_class_must_not_contain_a_reserved_double_punctuator_Did_you_mean_to_escape_it_with_backslash, pos, 2);\n            pos += 2;\n            return text.substring(pos - 2, pos);\n        }\n      }\n      switch (ch) {\n        case 47 /* slash */:\n        case 40 /* openParen */:\n        case 41 /* closeParen */:\n        case 91 /* openBracket */:\n        case 93 /* closeBracket */:\n        case 123 /* openBrace */:\n        case 125 /* closeBrace */:\n        case 45 /* minus */:\n        case 124 /* bar */:\n          error2(Diagnostics.Unexpected_0_Did_you_mean_to_escape_it_with_backslash, pos, 1, String.fromCharCode(ch));\n          pos++;\n          return String.fromCharCode(ch);\n      }\n      return scanSourceCharacter();\n    }\n    function scanClassAtom() {\n      if (charCodeChecked(pos) === 92 /* backslash */) {\n        pos++;\n        const ch = charCodeChecked(pos);\n        switch (ch) {\n          case 98 /* b */:\n            pos++;\n            return \"\\b\";\n          case 45 /* minus */:\n            pos++;\n            return String.fromCharCode(ch);\n          default:\n            if (scanCharacterClassEscape()) {\n              return \"\";\n            }\n            return scanCharacterEscape(\n              /*atomEscape*/\n              false\n            );\n        }\n      } else {\n        return scanSourceCharacter();\n      }\n    }\n    function scanCharacterClassEscape() {\n      Debug.assertEqual(charCodeUnchecked(pos - 1), 92 /* backslash */);\n      let isCharacterComplement = false;\n      const start2 = pos - 1;\n      const ch = charCodeChecked(pos);\n      switch (ch) {\n        case 100 /* d */:\n        case 68 /* D */:\n        case 115 /* s */:\n        case 83 /* S */:\n        case 119 /* w */:\n        case 87 /* W */:\n          pos++;\n          return true;\n        case 80 /* P */:\n          isCharacterComplement = true;\n        // falls through\n        case 112 /* p */:\n          pos++;\n          if (charCodeChecked(pos) === 123 /* openBrace */) {\n            pos++;\n            const propertyNameOrValueStart = pos;\n            const propertyNameOrValue = scanWordCharacters();\n            if (charCodeChecked(pos) === 61 /* equals */) {\n              const propertyName = nonBinaryUnicodeProperties.get(propertyNameOrValue);\n              if (pos === propertyNameOrValueStart) {\n                error2(Diagnostics.Expected_a_Unicode_property_name);\n              } else if (propertyName === void 0) {\n                error2(Diagnostics.Unknown_Unicode_property_name, propertyNameOrValueStart, pos - propertyNameOrValueStart);\n                const suggestion = getSpellingSuggestion(propertyNameOrValue, nonBinaryUnicodeProperties.keys(), identity);\n                if (suggestion) {\n                  error2(Diagnostics.Did_you_mean_0, propertyNameOrValueStart, pos - propertyNameOrValueStart, suggestion);\n                }\n              }\n              pos++;\n              const propertyValueStart = pos;\n              const propertyValue = scanWordCharacters();\n              if (pos === propertyValueStart) {\n                error2(Diagnostics.Expected_a_Unicode_property_value);\n              } else if (propertyName !== void 0 && !valuesOfNonBinaryUnicodeProperties[propertyName].has(propertyValue)) {\n                error2(Diagnostics.Unknown_Unicode_property_value, propertyValueStart, pos - propertyValueStart);\n                const suggestion = getSpellingSuggestion(propertyValue, valuesOfNonBinaryUnicodeProperties[propertyName], identity);\n                if (suggestion) {\n                  error2(Diagnostics.Did_you_mean_0, propertyValueStart, pos - propertyValueStart, suggestion);\n                }\n              }\n            } else {\n              if (pos === propertyNameOrValueStart) {\n                error2(Diagnostics.Expected_a_Unicode_property_name_or_value);\n              } else if (binaryUnicodePropertiesOfStrings.has(propertyNameOrValue)) {\n                if (!unicodeSetsMode) {\n                  error2(Diagnostics.Any_Unicode_property_that_would_possibly_match_more_than_a_single_character_is_only_available_when_the_Unicode_Sets_v_flag_is_set, propertyNameOrValueStart, pos - propertyNameOrValueStart);\n                } else if (isCharacterComplement) {\n                  error2(Diagnostics.Anything_that_would_possibly_match_more_than_a_single_character_is_invalid_inside_a_negated_character_class, propertyNameOrValueStart, pos - propertyNameOrValueStart);\n                } else {\n                  mayContainStrings = true;\n                }\n              } else if (!valuesOfNonBinaryUnicodeProperties.General_Category.has(propertyNameOrValue) && !binaryUnicodeProperties.has(propertyNameOrValue)) {\n                error2(Diagnostics.Unknown_Unicode_property_name_or_value, propertyNameOrValueStart, pos - propertyNameOrValueStart);\n                const suggestion = getSpellingSuggestion(propertyNameOrValue, [...valuesOfNonBinaryUnicodeProperties.General_Category, ...binaryUnicodeProperties, ...binaryUnicodePropertiesOfStrings], identity);\n                if (suggestion) {\n                  error2(Diagnostics.Did_you_mean_0, propertyNameOrValueStart, pos - propertyNameOrValueStart, suggestion);\n                }\n              }\n            }\n            scanExpectedChar(125 /* closeBrace */);\n            if (!anyUnicodeMode) {\n              error2(Diagnostics.Unicode_property_value_expressions_are_only_available_when_the_Unicode_u_flag_or_the_Unicode_Sets_v_flag_is_set, start2, pos - start2);\n            }\n          } else if (anyUnicodeModeOrNonAnnexB) {\n            error2(Diagnostics._0_must_be_followed_by_a_Unicode_property_value_expression_enclosed_in_braces, pos - 2, 2, String.fromCharCode(ch));\n          } else {\n            pos--;\n            return false;\n          }\n          return true;\n      }\n      return false;\n    }\n    function scanWordCharacters() {\n      let value = \"\";\n      while (true) {\n        const ch = charCodeChecked(pos);\n        if (ch === -1 /* EOF */ || !isWordCharacter(ch)) {\n          break;\n        }\n        value += String.fromCharCode(ch);\n        pos++;\n      }\n      return value;\n    }\n    function scanSourceCharacter() {\n      const size = anyUnicodeMode ? charSize(codePointChecked(pos)) : 1;\n      pos += size;\n      return size > 0 ? text.substring(pos - size, pos) : \"\";\n    }\n    function scanExpectedChar(ch) {\n      if (charCodeChecked(pos) === ch) {\n        pos++;\n      } else {\n        error2(Diagnostics._0_expected, pos, 0, String.fromCharCode(ch));\n      }\n    }\n    scanDisjunction(\n      /*isInGroup*/\n      false\n    );\n    forEach(groupNameReferences, (reference) => {\n      if (!(groupSpecifiers == null ? void 0 : groupSpecifiers.has(reference.name))) {\n        error2(Diagnostics.There_is_no_capturing_group_named_0_in_this_regular_expression, reference.pos, reference.end - reference.pos, reference.name);\n        if (groupSpecifiers) {\n          const suggestion = getSpellingSuggestion(reference.name, groupSpecifiers, identity);\n          if (suggestion) {\n            error2(Diagnostics.Did_you_mean_0, reference.pos, reference.end - reference.pos, suggestion);\n          }\n        }\n      }\n    });\n    forEach(decimalEscapes, (escape) => {\n      if (escape.value > numberOfCapturingGroups) {\n        if (numberOfCapturingGroups) {\n          error2(Diagnostics.This_backreference_refers_to_a_group_that_does_not_exist_There_are_only_0_capturing_groups_in_this_regular_expression, escape.pos, escape.end - escape.pos, numberOfCapturingGroups);\n        } else {\n          error2(Diagnostics.This_backreference_refers_to_a_group_that_does_not_exist_There_are_no_capturing_groups_in_this_regular_expression, escape.pos, escape.end - escape.pos);\n        }\n      }\n    });\n  }\n  function checkRegularExpressionFlagAvailability(flag, size) {\n    const availableFrom = regExpFlagToFirstAvailableLanguageVersion.get(flag);\n    if (availableFrom && languageVersion < availableFrom) {\n      error2(Diagnostics.This_regular_expression_flag_is_only_available_when_targeting_0_or_later, pos, size, getNameOfScriptTarget(availableFrom));\n    }\n  }\n  function appendIfCommentDirective(commentDirectives2, text2, commentDirectiveRegEx, lineStart) {\n    const type = getDirectiveFromComment(text2.trimStart(), commentDirectiveRegEx);\n    if (type === void 0) {\n      return commentDirectives2;\n    }\n    return append(\n      commentDirectives2,\n      {\n        range: { pos: lineStart, end: pos },\n        type\n      }\n    );\n  }\n  function getDirectiveFromComment(text2, commentDirectiveRegEx) {\n    const match = commentDirectiveRegEx.exec(text2);\n    if (!match) {\n      return void 0;\n    }\n    switch (match[1]) {\n      case \"ts-expect-error\":\n        return 0 /* ExpectError */;\n      case \"ts-ignore\":\n        return 1 /* Ignore */;\n    }\n    return void 0;\n  }\n  function reScanTemplateToken(isTaggedTemplate) {\n    pos = tokenStart;\n    return token = scanTemplateAndSetTokenValue(!isTaggedTemplate);\n  }\n  function reScanTemplateHeadOrNoSubstitutionTemplate() {\n    pos = tokenStart;\n    return token = scanTemplateAndSetTokenValue(\n      /*shouldEmitInvalidEscapeError*/\n      true\n    );\n  }\n  function reScanJsxToken(allowMultilineJsxText = true) {\n    pos = tokenStart = fullStartPos;\n    return token = scanJsxToken(allowMultilineJsxText);\n  }\n  function reScanLessThanToken() {\n    if (token === 48 /* LessThanLessThanToken */) {\n      pos = tokenStart + 1;\n      return token = 30 /* LessThanToken */;\n    }\n    return token;\n  }\n  function reScanHashToken() {\n    if (token === 81 /* PrivateIdentifier */) {\n      pos = tokenStart + 1;\n      return token = 63 /* HashToken */;\n    }\n    return token;\n  }\n  function reScanQuestionToken() {\n    Debug.assert(token === 61 /* QuestionQuestionToken */, \"'reScanQuestionToken' should only be called on a '??'\");\n    pos = tokenStart + 1;\n    return token = 58 /* QuestionToken */;\n  }\n  function scanJsxToken(allowMultilineJsxText = true) {\n    fullStartPos = tokenStart = pos;\n    if (pos >= end) {\n      return token = 1 /* EndOfFileToken */;\n    }\n    let char = charCodeUnchecked(pos);\n    if (char === 60 /* lessThan */) {\n      if (charCodeUnchecked(pos + 1) === 47 /* slash */) {\n        pos += 2;\n        return token = 31 /* LessThanSlashToken */;\n      }\n      pos++;\n      return token = 30 /* LessThanToken */;\n    }\n    if (char === 123 /* openBrace */) {\n      pos++;\n      return token = 19 /* OpenBraceToken */;\n    }\n    let firstNonWhitespace = 0;\n    while (pos < end) {\n      char = charCodeUnchecked(pos);\n      if (char === 123 /* openBrace */) {\n        break;\n      }\n      if (char === 60 /* lessThan */) {\n        if (isConflictMarkerTrivia(text, pos)) {\n          pos = scanConflictMarkerTrivia(text, pos, error2);\n          return token = 7 /* ConflictMarkerTrivia */;\n        }\n        break;\n      }\n      if (char === 62 /* greaterThan */) {\n        error2(Diagnostics.Unexpected_token_Did_you_mean_or_gt, pos, 1);\n      }\n      if (char === 125 /* closeBrace */) {\n        error2(Diagnostics.Unexpected_token_Did_you_mean_or_rbrace, pos, 1);\n      }\n      if (isLineBreak(char) && firstNonWhitespace === 0) {\n        firstNonWhitespace = -1;\n      } else if (!allowMultilineJsxText && isLineBreak(char) && firstNonWhitespace > 0) {\n        break;\n      } else if (!isWhiteSpaceLike(char)) {\n        firstNonWhitespace = pos;\n      }\n      pos++;\n    }\n    tokenValue = text.substring(fullStartPos, pos);\n    return firstNonWhitespace === -1 ? 13 /* JsxTextAllWhiteSpaces */ : 12 /* JsxText */;\n  }\n  function scanJsxIdentifier() {\n    if (tokenIsIdentifierOrKeyword(token)) {\n      while (pos < end) {\n        const ch = charCodeUnchecked(pos);\n        if (ch === 45 /* minus */) {\n          tokenValue += \"-\";\n          pos++;\n          continue;\n        }\n        const oldPos = pos;\n        tokenValue += scanIdentifierParts();\n        if (pos === oldPos) {\n          break;\n        }\n      }\n      return getIdentifierToken();\n    }\n    return token;\n  }\n  function scanJsxAttributeValue() {\n    fullStartPos = pos;\n    switch (charCodeUnchecked(pos)) {\n      case 34 /* doubleQuote */:\n      case 39 /* singleQuote */:\n        tokenValue = scanString(\n          /*jsxAttributeString*/\n          true\n        );\n        return token = 11 /* StringLiteral */;\n      default:\n        return scan();\n    }\n  }\n  function reScanJsxAttributeValue() {\n    pos = tokenStart = fullStartPos;\n    return scanJsxAttributeValue();\n  }\n  function scanJSDocCommentTextToken(inBackticks) {\n    fullStartPos = tokenStart = pos;\n    tokenFlags = 0 /* None */;\n    if (pos >= end) {\n      return token = 1 /* EndOfFileToken */;\n    }\n    for (let ch = charCodeUnchecked(pos); pos < end && (!isLineBreak(ch) && ch !== 96 /* backtick */); ch = codePointUnchecked(++pos)) {\n      if (!inBackticks) {\n        if (ch === 123 /* openBrace */) {\n          break;\n        } else if (ch === 64 /* at */ && pos - 1 >= 0 && isWhiteSpaceSingleLine(charCodeUnchecked(pos - 1)) && !(pos + 1 < end && isWhiteSpaceLike(charCodeUnchecked(pos + 1)))) {\n          break;\n        }\n      }\n    }\n    if (pos === tokenStart) {\n      return scanJsDocToken();\n    }\n    tokenValue = text.substring(tokenStart, pos);\n    return token = 82 /* JSDocCommentTextToken */;\n  }\n  function scanJsDocToken() {\n    fullStartPos = tokenStart = pos;\n    tokenFlags = 0 /* None */;\n    if (pos >= end) {\n      return token = 1 /* EndOfFileToken */;\n    }\n    const ch = codePointUnchecked(pos);\n    pos += charSize(ch);\n    switch (ch) {\n      case 9 /* tab */:\n      case 11 /* verticalTab */:\n      case 12 /* formFeed */:\n      case 32 /* space */:\n        while (pos < end && isWhiteSpaceSingleLine(charCodeUnchecked(pos))) {\n          pos++;\n        }\n        return token = 5 /* WhitespaceTrivia */;\n      case 64 /* at */:\n        return token = 60 /* AtToken */;\n      case 13 /* carriageReturn */:\n        if (charCodeUnchecked(pos) === 10 /* lineFeed */) {\n          pos++;\n        }\n      // falls through\n      case 10 /* lineFeed */:\n        tokenFlags |= 1 /* PrecedingLineBreak */;\n        return token = 4 /* NewLineTrivia */;\n      case 42 /* asterisk */:\n        return token = 42 /* AsteriskToken */;\n      case 123 /* openBrace */:\n        return token = 19 /* OpenBraceToken */;\n      case 125 /* closeBrace */:\n        return token = 20 /* CloseBraceToken */;\n      case 91 /* openBracket */:\n        return token = 23 /* OpenBracketToken */;\n      case 93 /* closeBracket */:\n        return token = 24 /* CloseBracketToken */;\n      case 40 /* openParen */:\n        return token = 21 /* OpenParenToken */;\n      case 41 /* closeParen */:\n        return token = 22 /* CloseParenToken */;\n      case 60 /* lessThan */:\n        return token = 30 /* LessThanToken */;\n      case 62 /* greaterThan */:\n        return token = 32 /* GreaterThanToken */;\n      case 61 /* equals */:\n        return token = 64 /* EqualsToken */;\n      case 44 /* comma */:\n        return token = 28 /* CommaToken */;\n      case 46 /* dot */:\n        return token = 25 /* DotToken */;\n      case 96 /* backtick */:\n        return token = 62 /* BacktickToken */;\n      case 35 /* hash */:\n        return token = 63 /* HashToken */;\n      case 92 /* backslash */:\n        pos--;\n        const extendedCookedChar = peekExtendedUnicodeEscape();\n        if (extendedCookedChar >= 0 && isIdentifierStart(extendedCookedChar, languageVersion)) {\n          tokenValue = scanExtendedUnicodeEscape(\n            /*shouldEmitInvalidEscapeError*/\n            true\n          ) + scanIdentifierParts();\n          return token = getIdentifierToken();\n        }\n        const cookedChar = peekUnicodeEscape();\n        if (cookedChar >= 0 && isIdentifierStart(cookedChar, languageVersion)) {\n          pos += 6;\n          tokenFlags |= 1024 /* UnicodeEscape */;\n          tokenValue = String.fromCharCode(cookedChar) + scanIdentifierParts();\n          return token = getIdentifierToken();\n        }\n        pos++;\n        return token = 0 /* Unknown */;\n    }\n    if (isIdentifierStart(ch, languageVersion)) {\n      let char = ch;\n      while (pos < end && isIdentifierPart(char = codePointUnchecked(pos), languageVersion) || char === 45 /* minus */) pos += charSize(char);\n      tokenValue = text.substring(tokenStart, pos);\n      if (char === 92 /* backslash */) {\n        tokenValue += scanIdentifierParts();\n      }\n      return token = getIdentifierToken();\n    } else {\n      return token = 0 /* Unknown */;\n    }\n  }\n  function speculationHelper(callback, isLookahead) {\n    const savePos = pos;\n    const saveStartPos = fullStartPos;\n    const saveTokenPos = tokenStart;\n    const saveToken = token;\n    const saveTokenValue = tokenValue;\n    const saveTokenFlags = tokenFlags;\n    const result = callback();\n    if (!result || isLookahead) {\n      pos = savePos;\n      fullStartPos = saveStartPos;\n      tokenStart = saveTokenPos;\n      token = saveToken;\n      tokenValue = saveTokenValue;\n      tokenFlags = saveTokenFlags;\n    }\n    return result;\n  }\n  function scanRange(start2, length3, callback) {\n    const saveEnd = end;\n    const savePos = pos;\n    const saveStartPos = fullStartPos;\n    const saveTokenPos = tokenStart;\n    const saveToken = token;\n    const saveTokenValue = tokenValue;\n    const saveTokenFlags = tokenFlags;\n    const saveErrorExpectations = commentDirectives;\n    setText(text, start2, length3);\n    const result = callback();\n    end = saveEnd;\n    pos = savePos;\n    fullStartPos = saveStartPos;\n    tokenStart = saveTokenPos;\n    token = saveToken;\n    tokenValue = saveTokenValue;\n    tokenFlags = saveTokenFlags;\n    commentDirectives = saveErrorExpectations;\n    return result;\n  }\n  function lookAhead(callback) {\n    return speculationHelper(\n      callback,\n      /*isLookahead*/\n      true\n    );\n  }\n  function tryScan(callback) {\n    return speculationHelper(\n      callback,\n      /*isLookahead*/\n      false\n    );\n  }\n  function getText() {\n    return text;\n  }\n  function clearCommentDirectives() {\n    commentDirectives = void 0;\n  }\n  function setText(newText, start2, length3) {\n    text = newText || \"\";\n    end = length3 === void 0 ? text.length : start2 + length3;\n    resetTokenState(start2 || 0);\n  }\n  function setOnError(errorCallback) {\n    onError = errorCallback;\n  }\n  function setScriptTarget(scriptTarget) {\n    languageVersion = scriptTarget;\n  }\n  function setLanguageVariant(variant) {\n    languageVariant = variant;\n  }\n  function setScriptKind(kind) {\n    scriptKind = kind;\n  }\n  function setJSDocParsingMode(kind) {\n    jsDocParsingMode = kind;\n  }\n  function resetTokenState(position) {\n    Debug.assert(position >= 0);\n    pos = position;\n    fullStartPos = position;\n    tokenStart = position;\n    token = 0 /* Unknown */;\n    tokenValue = void 0;\n    tokenFlags = 0 /* None */;\n  }\n  function setSkipJsDocLeadingAsterisks(skip) {\n    skipJsDocLeadingAsterisks += skip ? 1 : -1;\n  }\n}\nfunction codePointAt(s, i) {\n  return s.codePointAt(i);\n}\nfunction charSize(ch) {\n  if (ch >= 65536) {\n    return 2;\n  }\n  if (ch === -1 /* EOF */) {\n    return 0;\n  }\n  return 1;\n}\nfunction utf16EncodeAsStringFallback(codePoint) {\n  Debug.assert(0 <= codePoint && codePoint <= 1114111);\n  if (codePoint <= 65535) {\n    return String.fromCharCode(codePoint);\n  }\n  const codeUnit1 = Math.floor((codePoint - 65536) / 1024) + 55296;\n  const codeUnit2 = (codePoint - 65536) % 1024 + 56320;\n  return String.fromCharCode(codeUnit1, codeUnit2);\n}\nvar utf16EncodeAsStringWorker = String.fromCodePoint ? (codePoint) => String.fromCodePoint(codePoint) : utf16EncodeAsStringFallback;\nfunction utf16EncodeAsString(codePoint) {\n  return utf16EncodeAsStringWorker(codePoint);\n}\nvar nonBinaryUnicodeProperties = new Map(Object.entries({\n  General_Category: \"General_Category\",\n  gc: \"General_Category\",\n  Script: \"Script\",\n  sc: \"Script\",\n  Script_Extensions: \"Script_Extensions\",\n  scx: \"Script_Extensions\"\n}));\nvar binaryUnicodeProperties = /* @__PURE__ */ new Set([\"ASCII\", \"ASCII_Hex_Digit\", \"AHex\", \"Alphabetic\", \"Alpha\", \"Any\", \"Assigned\", \"Bidi_Control\", \"Bidi_C\", \"Bidi_Mirrored\", \"Bidi_M\", \"Case_Ignorable\", \"CI\", \"Cased\", \"Changes_When_Casefolded\", \"CWCF\", \"Changes_When_Casemapped\", \"CWCM\", \"Changes_When_Lowercased\", \"CWL\", \"Changes_When_NFKC_Casefolded\", \"CWKCF\", \"Changes_When_Titlecased\", \"CWT\", \"Changes_When_Uppercased\", \"CWU\", \"Dash\", \"Default_Ignorable_Code_Point\", \"DI\", \"Deprecated\", \"Dep\", \"Diacritic\", \"Dia\", \"Emoji\", \"Emoji_Component\", \"EComp\", \"Emoji_Modifier\", \"EMod\", \"Emoji_Modifier_Base\", \"EBase\", \"Emoji_Presentation\", \"EPres\", \"Extended_Pictographic\", \"ExtPict\", \"Extender\", \"Ext\", \"Grapheme_Base\", \"Gr_Base\", \"Grapheme_Extend\", \"Gr_Ext\", \"Hex_Digit\", \"Hex\", \"IDS_Binary_Operator\", \"IDSB\", \"IDS_Trinary_Operator\", \"IDST\", \"ID_Continue\", \"IDC\", \"ID_Start\", \"IDS\", \"Ideographic\", \"Ideo\", \"Join_Control\", \"Join_C\", \"Logical_Order_Exception\", \"LOE\", \"Lowercase\", \"Lower\", \"Math\", \"Noncharacter_Code_Point\", \"NChar\", \"Pattern_Syntax\", \"Pat_Syn\", \"Pattern_White_Space\", \"Pat_WS\", \"Quotation_Mark\", \"QMark\", \"Radical\", \"Regional_Indicator\", \"RI\", \"Sentence_Terminal\", \"STerm\", \"Soft_Dotted\", \"SD\", \"Terminal_Punctuation\", \"Term\", \"Unified_Ideograph\", \"UIdeo\", \"Uppercase\", \"Upper\", \"Variation_Selector\", \"VS\", \"White_Space\", \"space\", \"XID_Continue\", \"XIDC\", \"XID_Start\", \"XIDS\"]);\nvar binaryUnicodePropertiesOfStrings = /* @__PURE__ */ new Set([\"Basic_Emoji\", \"Emoji_Keycap_Sequence\", \"RGI_Emoji_Modifier_Sequence\", \"RGI_Emoji_Flag_Sequence\", \"RGI_Emoji_Tag_Sequence\", \"RGI_Emoji_ZWJ_Sequence\", \"RGI_Emoji\"]);\nvar valuesOfNonBinaryUnicodeProperties = {\n  General_Category: /* @__PURE__ */ new Set([\"C\", \"Other\", \"Cc\", \"Control\", \"cntrl\", \"Cf\", \"Format\", \"Cn\", \"Unassigned\", \"Co\", \"Private_Use\", \"Cs\", \"Surrogate\", \"L\", \"Letter\", \"LC\", \"Cased_Letter\", \"Ll\", \"Lowercase_Letter\", \"Lm\", \"Modifier_Letter\", \"Lo\", \"Other_Letter\", \"Lt\", \"Titlecase_Letter\", \"Lu\", \"Uppercase_Letter\", \"M\", \"Mark\", \"Combining_Mark\", \"Mc\", \"Spacing_Mark\", \"Me\", \"Enclosing_Mark\", \"Mn\", \"Nonspacing_Mark\", \"N\", \"Number\", \"Nd\", \"Decimal_Number\", \"digit\", \"Nl\", \"Letter_Number\", \"No\", \"Other_Number\", \"P\", \"Punctuation\", \"punct\", \"Pc\", \"Connector_Punctuation\", \"Pd\", \"Dash_Punctuation\", \"Pe\", \"Close_Punctuation\", \"Pf\", \"Final_Punctuation\", \"Pi\", \"Initial_Punctuation\", \"Po\", \"Other_Punctuation\", \"Ps\", \"Open_Punctuation\", \"S\", \"Symbol\", \"Sc\", \"Currency_Symbol\", \"Sk\", \"Modifier_Symbol\", \"Sm\", \"Math_Symbol\", \"So\", \"Other_Symbol\", \"Z\", \"Separator\", \"Zl\", \"Line_Separator\", \"Zp\", \"Paragraph_Separator\", \"Zs\", \"Space_Separator\"]),\n  Script: /* @__PURE__ */ new Set([\"Adlm\", \"Adlam\", \"Aghb\", \"Caucasian_Albanian\", \"Ahom\", \"Arab\", \"Arabic\", \"Armi\", \"Imperial_Aramaic\", \"Armn\", \"Armenian\", \"Avst\", \"Avestan\", \"Bali\", \"Balinese\", \"Bamu\", \"Bamum\", \"Bass\", \"Bassa_Vah\", \"Batk\", \"Batak\", \"Beng\", \"Bengali\", \"Bhks\", \"Bhaiksuki\", \"Bopo\", \"Bopomofo\", \"Brah\", \"Brahmi\", \"Brai\", \"Braille\", \"Bugi\", \"Buginese\", \"Buhd\", \"Buhid\", \"Cakm\", \"Chakma\", \"Cans\", \"Canadian_Aboriginal\", \"Cari\", \"Carian\", \"Cham\", \"Cher\", \"Cherokee\", \"Chrs\", \"Chorasmian\", \"Copt\", \"Coptic\", \"Qaac\", \"Cpmn\", \"Cypro_Minoan\", \"Cprt\", \"Cypriot\", \"Cyrl\", \"Cyrillic\", \"Deva\", \"Devanagari\", \"Diak\", \"Dives_Akuru\", \"Dogr\", \"Dogra\", \"Dsrt\", \"Deseret\", \"Dupl\", \"Duployan\", \"Egyp\", \"Egyptian_Hieroglyphs\", \"Elba\", \"Elbasan\", \"Elym\", \"Elymaic\", \"Ethi\", \"Ethiopic\", \"Geor\", \"Georgian\", \"Glag\", \"Glagolitic\", \"Gong\", \"Gunjala_Gondi\", \"Gonm\", \"Masaram_Gondi\", \"Goth\", \"Gothic\", \"Gran\", \"Grantha\", \"Grek\", \"Greek\", \"Gujr\", \"Gujarati\", \"Guru\", \"Gurmukhi\", \"Hang\", \"Hangul\", \"Hani\", \"Han\", \"Hano\", \"Hanunoo\", \"Hatr\", \"Hatran\", \"Hebr\", \"Hebrew\", \"Hira\", \"Hiragana\", \"Hluw\", \"Anatolian_Hieroglyphs\", \"Hmng\", \"Pahawh_Hmong\", \"Hmnp\", \"Nyiakeng_Puachue_Hmong\", \"Hrkt\", \"Katakana_Or_Hiragana\", \"Hung\", \"Old_Hungarian\", \"Ital\", \"Old_Italic\", \"Java\", \"Javanese\", \"Kali\", \"Kayah_Li\", \"Kana\", \"Katakana\", \"Kawi\", \"Khar\", \"Kharoshthi\", \"Khmr\", \"Khmer\", \"Khoj\", \"Khojki\", \"Kits\", \"Khitan_Small_Script\", \"Knda\", \"Kannada\", \"Kthi\", \"Kaithi\", \"Lana\", \"Tai_Tham\", \"Laoo\", \"Lao\", \"Latn\", \"Latin\", \"Lepc\", \"Lepcha\", \"Limb\", \"Limbu\", \"Lina\", \"Linear_A\", \"Linb\", \"Linear_B\", \"Lisu\", \"Lyci\", \"Lycian\", \"Lydi\", \"Lydian\", \"Mahj\", \"Mahajani\", \"Maka\", \"Makasar\", \"Mand\", \"Mandaic\", \"Mani\", \"Manichaean\", \"Marc\", \"Marchen\", \"Medf\", \"Medefaidrin\", \"Mend\", \"Mende_Kikakui\", \"Merc\", \"Meroitic_Cursive\", \"Mero\", \"Meroitic_Hieroglyphs\", \"Mlym\", \"Malayalam\", \"Modi\", \"Mong\", \"Mongolian\", \"Mroo\", \"Mro\", \"Mtei\", \"Meetei_Mayek\", \"Mult\", \"Multani\", \"Mymr\", \"Myanmar\", \"Nagm\", \"Nag_Mundari\", \"Nand\", \"Nandinagari\", \"Narb\", \"Old_North_Arabian\", \"Nbat\", \"Nabataean\", \"Newa\", \"Nkoo\", \"Nko\", \"Nshu\", \"Nushu\", \"Ogam\", \"Ogham\", \"Olck\", \"Ol_Chiki\", \"Orkh\", \"Old_Turkic\", \"Orya\", \"Oriya\", \"Osge\", \"Osage\", \"Osma\", \"Osmanya\", \"Ougr\", \"Old_Uyghur\", \"Palm\", \"Palmyrene\", \"Pauc\", \"Pau_Cin_Hau\", \"Perm\", \"Old_Permic\", \"Phag\", \"Phags_Pa\", \"Phli\", \"Inscriptional_Pahlavi\", \"Phlp\", \"Psalter_Pahlavi\", \"Phnx\", \"Phoenician\", \"Plrd\", \"Miao\", \"Prti\", \"Inscriptional_Parthian\", \"Rjng\", \"Rejang\", \"Rohg\", \"Hanifi_Rohingya\", \"Runr\", \"Runic\", \"Samr\", \"Samaritan\", \"Sarb\", \"Old_South_Arabian\", \"Saur\", \"Saurashtra\", \"Sgnw\", \"SignWriting\", \"Shaw\", \"Shavian\", \"Shrd\", \"Sharada\", \"Sidd\", \"Siddham\", \"Sind\", \"Khudawadi\", \"Sinh\", \"Sinhala\", \"Sogd\", \"Sogdian\", \"Sogo\", \"Old_Sogdian\", \"Sora\", \"Sora_Sompeng\", \"Soyo\", \"Soyombo\", \"Sund\", \"Sundanese\", \"Sylo\", \"Syloti_Nagri\", \"Syrc\", \"Syriac\", \"Tagb\", \"Tagbanwa\", \"Takr\", \"Takri\", \"Tale\", \"Tai_Le\", \"Talu\", \"New_Tai_Lue\", \"Taml\", \"Tamil\", \"Tang\", \"Tangut\", \"Tavt\", \"Tai_Viet\", \"Telu\", \"Telugu\", \"Tfng\", \"Tifinagh\", \"Tglg\", \"Tagalog\", \"Thaa\", \"Thaana\", \"Thai\", \"Tibt\", \"Tibetan\", \"Tirh\", \"Tirhuta\", \"Tnsa\", \"Tangsa\", \"Toto\", \"Ugar\", \"Ugaritic\", \"Vaii\", \"Vai\", \"Vith\", \"Vithkuqi\", \"Wara\", \"Warang_Citi\", \"Wcho\", \"Wancho\", \"Xpeo\", \"Old_Persian\", \"Xsux\", \"Cuneiform\", \"Yezi\", \"Yezidi\", \"Yiii\", \"Yi\", \"Zanb\", \"Zanabazar_Square\", \"Zinh\", \"Inherited\", \"Qaai\", \"Zyyy\", \"Common\", \"Zzzz\", \"Unknown\"]),\n  Script_Extensions: void 0\n};\nvaluesOfNonBinaryUnicodeProperties.Script_Extensions = valuesOfNonBinaryUnicodeProperties.Script;\n\n// src/compiler/utilitiesPublic.ts\nfunction isExternalModuleNameRelative(moduleName) {\n  return pathIsRelative(moduleName) || isRootedDiskPath(moduleName);\n}\nfunction sortAndDeduplicateDiagnostics(diagnostics) {\n  return sortAndDeduplicate(diagnostics, compareDiagnostics, diagnosticsEqualityComparer);\n}\nvar targetToLibMap = /* @__PURE__ */ new Map([\n  [99 /* ESNext */, \"lib.esnext.full.d.ts\"],\n  [11 /* ES2024 */, \"lib.es2024.full.d.ts\"],\n  [10 /* ES2023 */, \"lib.es2023.full.d.ts\"],\n  [9 /* ES2022 */, \"lib.es2022.full.d.ts\"],\n  [8 /* ES2021 */, \"lib.es2021.full.d.ts\"],\n  [7 /* ES2020 */, \"lib.es2020.full.d.ts\"],\n  [6 /* ES2019 */, \"lib.es2019.full.d.ts\"],\n  [5 /* ES2018 */, \"lib.es2018.full.d.ts\"],\n  [4 /* ES2017 */, \"lib.es2017.full.d.ts\"],\n  [3 /* ES2016 */, \"lib.es2016.full.d.ts\"],\n  [2 /* ES2015 */, \"lib.es6.d.ts\"]\n  // We don't use lib.es2015.full.d.ts due to breaking change.\n]);\nfunction getDefaultLibFileName(options) {\n  const target = getEmitScriptTarget(options);\n  switch (target) {\n    case 99 /* ESNext */:\n    case 11 /* ES2024 */:\n    case 10 /* ES2023 */:\n    case 9 /* ES2022 */:\n    case 8 /* ES2021 */:\n    case 7 /* ES2020 */:\n    case 6 /* ES2019 */:\n    case 5 /* ES2018 */:\n    case 4 /* ES2017 */:\n    case 3 /* ES2016 */:\n    case 2 /* ES2015 */:\n      return targetToLibMap.get(target);\n    default:\n      return \"lib.d.ts\";\n  }\n}\nfunction textSpanEnd(span) {\n  return span.start + span.length;\n}\nfunction textSpanIsEmpty(span) {\n  return span.length === 0;\n}\nfunction textSpanContainsPosition(span, position) {\n  return position >= span.start && position < textSpanEnd(span);\n}\nfunction textRangeContainsPositionInclusive(range, position) {\n  return position >= range.pos && position <= range.end;\n}\nfunction textSpanContainsTextSpan(span, other) {\n  return other.start >= span.start && textSpanEnd(other) <= textSpanEnd(span);\n}\nfunction textSpanContainsTextRange(span, range) {\n  return range.pos >= span.start && range.end <= textSpanEnd(span);\n}\nfunction textRangeContainsTextSpan(range, span) {\n  return span.start >= range.pos && textSpanEnd(span) <= range.end;\n}\nfunction textSpanOverlapsWith(span, other) {\n  return textSpanOverlap(span, other) !== void 0;\n}\nfunction textSpanOverlap(span1, span2) {\n  const overlap = textSpanIntersection(span1, span2);\n  return overlap && overlap.length === 0 ? void 0 : overlap;\n}\nfunction textSpanIntersectsWithTextSpan(span, other) {\n  return decodedTextSpanIntersectsWith(span.start, span.length, other.start, other.length);\n}\nfunction textSpanIntersectsWith(span, start, length2) {\n  return decodedTextSpanIntersectsWith(span.start, span.length, start, length2);\n}\nfunction decodedTextSpanIntersectsWith(start1, length1, start2, length2) {\n  const end1 = start1 + length1;\n  const end2 = start2 + length2;\n  return start2 <= end1 && end2 >= start1;\n}\nfunction textSpanIntersectsWithPosition(span, position) {\n  return position <= textSpanEnd(span) && position >= span.start;\n}\nfunction textRangeIntersectsWithTextSpan(range, span) {\n  return textSpanIntersectsWith(span, range.pos, range.end - range.pos);\n}\nfunction textSpanIntersection(span1, span2) {\n  const start = Math.max(span1.start, span2.start);\n  const end = Math.min(textSpanEnd(span1), textSpanEnd(span2));\n  return start <= end ? createTextSpanFromBounds(start, end) : void 0;\n}\nfunction normalizeSpans(spans) {\n  spans = spans.filter((span) => span.length > 0).sort((a, b) => {\n    return a.start !== b.start ? a.start - b.start : a.length - b.length;\n  });\n  const result = [];\n  let i = 0;\n  while (i < spans.length) {\n    let span = spans[i];\n    let j = i + 1;\n    while (j < spans.length && textSpanIntersectsWithTextSpan(span, spans[j])) {\n      const start = Math.min(span.start, spans[j].start);\n      const end = Math.max(textSpanEnd(span), textSpanEnd(spans[j]));\n      span = createTextSpanFromBounds(start, end);\n      j++;\n    }\n    i = j;\n    result.push(span);\n  }\n  return result;\n}\nfunction createTextSpan(start, length2) {\n  if (start < 0) {\n    throw new Error(\"start < 0\");\n  }\n  if (length2 < 0) {\n    throw new Error(\"length < 0\");\n  }\n  return { start, length: length2 };\n}\nfunction createTextSpanFromBounds(start, end) {\n  return createTextSpan(start, end - start);\n}\nfunction textChangeRangeNewSpan(range) {\n  return createTextSpan(range.span.start, range.newLength);\n}\nfunction textChangeRangeIsUnchanged(range) {\n  return textSpanIsEmpty(range.span) && range.newLength === 0;\n}\nfunction createTextChangeRange(span, newLength) {\n  if (newLength < 0) {\n    throw new Error(\"newLength < 0\");\n  }\n  return { span, newLength };\n}\nvar unchangedTextChangeRange = createTextChangeRange(createTextSpan(0, 0), 0);\nfunction collapseTextChangeRangesAcrossMultipleVersions(changes) {\n  if (changes.length === 0) {\n    return unchangedTextChangeRange;\n  }\n  if (changes.length === 1) {\n    return changes[0];\n  }\n  const change0 = changes[0];\n  let oldStartN = change0.span.start;\n  let oldEndN = textSpanEnd(change0.span);\n  let newEndN = oldStartN + change0.newLength;\n  for (let i = 1; i < changes.length; i++) {\n    const nextChange = changes[i];\n    const oldStart1 = oldStartN;\n    const oldEnd1 = oldEndN;\n    const newEnd1 = newEndN;\n    const oldStart2 = nextChange.span.start;\n    const oldEnd2 = textSpanEnd(nextChange.span);\n    const newEnd2 = oldStart2 + nextChange.newLength;\n    oldStartN = Math.min(oldStart1, oldStart2);\n    oldEndN = Math.max(oldEnd1, oldEnd1 + (oldEnd2 - newEnd1));\n    newEndN = Math.max(newEnd2, newEnd2 + (newEnd1 - oldEnd2));\n  }\n  return createTextChangeRange(\n    createTextSpanFromBounds(oldStartN, oldEndN),\n    /*newLength*/\n    newEndN - oldStartN\n  );\n}\nfunction getTypeParameterOwner(d) {\n  if (d && d.kind === 169 /* TypeParameter */) {\n    for (let current = d; current; current = current.parent) {\n      if (isFunctionLike(current) || isClassLike(current) || current.kind === 265 /* InterfaceDeclaration */) {\n        return current;\n      }\n    }\n  }\n}\nfunction isParameterPropertyDeclaration(node, parent2) {\n  return isParameter(node) && hasSyntacticModifier(node, 31 /* ParameterPropertyModifier */) && parent2.kind === 177 /* Constructor */;\n}\nfunction isEmptyBindingPattern(node) {\n  if (isBindingPattern(node)) {\n    return every(node.elements, isEmptyBindingElement);\n  }\n  return false;\n}\nfunction isEmptyBindingElement(node) {\n  if (isOmittedExpression(node)) {\n    return true;\n  }\n  return isEmptyBindingPattern(node.name);\n}\nfunction walkUpBindingElementsAndPatterns(binding) {\n  let node = binding.parent;\n  while (isBindingElement(node.parent)) {\n    node = node.parent.parent;\n  }\n  return node.parent;\n}\nfunction getCombinedFlags(node, getFlags) {\n  if (isBindingElement(node)) {\n    node = walkUpBindingElementsAndPatterns(node);\n  }\n  let flags = getFlags(node);\n  if (node.kind === 261 /* VariableDeclaration */) {\n    node = node.parent;\n  }\n  if (node && node.kind === 262 /* VariableDeclarationList */) {\n    flags |= getFlags(node);\n    node = node.parent;\n  }\n  if (node && node.kind === 244 /* VariableStatement */) {\n    flags |= getFlags(node);\n  }\n  return flags;\n}\nfunction getCombinedModifierFlags(node) {\n  return getCombinedFlags(node, getEffectiveModifierFlags);\n}\nfunction getCombinedNodeFlagsAlwaysIncludeJSDoc(node) {\n  return getCombinedFlags(node, getEffectiveModifierFlagsAlwaysIncludeJSDoc);\n}\nfunction getCombinedNodeFlags(node) {\n  return getCombinedFlags(node, getNodeFlags);\n}\nfunction getNodeFlags(node) {\n  return node.flags;\n}\nvar supportedLocaleDirectories = [\"cs\", \"de\", \"es\", \"fr\", \"it\", \"ja\", \"ko\", \"pl\", \"pt-br\", \"ru\", \"tr\", \"zh-cn\", \"zh-tw\"];\nfunction validateLocaleAndSetLanguage(locale, sys2, errors) {\n  const lowerCaseLocale = locale.toLowerCase();\n  const matchResult = /^([a-z]+)(?:[_-]([a-z]+))?$/.exec(lowerCaseLocale);\n  if (!matchResult) {\n    if (errors) {\n      errors.push(createCompilerDiagnostic(Diagnostics.Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1, \"en\", \"ja-jp\"));\n    }\n    return;\n  }\n  const language = matchResult[1];\n  const territory = matchResult[2];\n  if (contains(supportedLocaleDirectories, lowerCaseLocale) && !trySetLanguageAndTerritory(language, territory, errors)) {\n    trySetLanguageAndTerritory(\n      language,\n      /*territory*/\n      void 0,\n      errors\n    );\n  }\n  setUILocale(locale);\n  function trySetLanguageAndTerritory(language2, territory2, errors2) {\n    const compilerFilePath = normalizePath(sys2.getExecutingFilePath());\n    const containingDirectoryPath = getDirectoryPath(compilerFilePath);\n    let filePath = combinePaths(containingDirectoryPath, language2);\n    if (territory2) {\n      filePath = filePath + \"-\" + territory2;\n    }\n    filePath = sys2.resolvePath(combinePaths(filePath, \"diagnosticMessages.generated.json\"));\n    if (!sys2.fileExists(filePath)) {\n      return false;\n    }\n    let fileContents = \"\";\n    try {\n      fileContents = sys2.readFile(filePath);\n    } catch {\n      if (errors2) {\n        errors2.push(createCompilerDiagnostic(Diagnostics.Unable_to_open_file_0, filePath));\n      }\n      return false;\n    }\n    try {\n      setLocalizedDiagnosticMessages(JSON.parse(fileContents));\n    } catch {\n      if (errors2) {\n        errors2.push(createCompilerDiagnostic(Diagnostics.Corrupted_locale_file_0, filePath));\n      }\n      return false;\n    }\n    return true;\n  }\n}\nfunction getOriginalNode(node, nodeTest) {\n  if (node) {\n    while (node.original !== void 0) {\n      node = node.original;\n    }\n  }\n  if (!node || !nodeTest) {\n    return node;\n  }\n  return nodeTest(node) ? node : void 0;\n}\nfunction findAncestor(node, callback) {\n  while (node) {\n    const result = callback(node);\n    if (result === \"quit\") {\n      return void 0;\n    } else if (result) {\n      return node;\n    }\n    node = node.parent;\n  }\n  return void 0;\n}\nfunction isParseTreeNode(node) {\n  return (node.flags & 16 /* Synthesized */) === 0;\n}\nfunction getParseTreeNode(node, nodeTest) {\n  if (node === void 0 || isParseTreeNode(node)) {\n    return node;\n  }\n  node = node.original;\n  while (node) {\n    if (isParseTreeNode(node)) {\n      return !nodeTest || nodeTest(node) ? node : void 0;\n    }\n    node = node.original;\n  }\n}\nfunction escapeLeadingUnderscores(identifier) {\n  return identifier.length >= 2 && identifier.charCodeAt(0) === 95 /* _ */ && identifier.charCodeAt(1) === 95 /* _ */ ? \"_\" + identifier : identifier;\n}\nfunction unescapeLeadingUnderscores(identifier) {\n  const id = identifier;\n  return id.length >= 3 && id.charCodeAt(0) === 95 /* _ */ && id.charCodeAt(1) === 95 /* _ */ && id.charCodeAt(2) === 95 /* _ */ ? id.substr(1) : id;\n}\nfunction idText(identifierOrPrivateName) {\n  return unescapeLeadingUnderscores(identifierOrPrivateName.escapedText);\n}\nfunction identifierToKeywordKind(node) {\n  const token = stringToToken(node.escapedText);\n  return token ? tryCast(token, isKeyword) : void 0;\n}\nfunction symbolName(symbol) {\n  if (symbol.valueDeclaration && isPrivateIdentifierClassElementDeclaration(symbol.valueDeclaration)) {\n    return idText(symbol.valueDeclaration.name);\n  }\n  return unescapeLeadingUnderscores(symbol.escapedName);\n}\nfunction nameForNamelessJSDocTypedef(declaration) {\n  const hostNode = declaration.parent.parent;\n  if (!hostNode) {\n    return void 0;\n  }\n  if (isDeclaration(hostNode)) {\n    return getDeclarationIdentifier(hostNode);\n  }\n  switch (hostNode.kind) {\n    case 244 /* VariableStatement */:\n      if (hostNode.declarationList && hostNode.declarationList.declarations[0]) {\n        return getDeclarationIdentifier(hostNode.declarationList.declarations[0]);\n      }\n      break;\n    case 245 /* ExpressionStatement */:\n      let expr = hostNode.expression;\n      if (expr.kind === 227 /* BinaryExpression */ && expr.operatorToken.kind === 64 /* EqualsToken */) {\n        expr = expr.left;\n      }\n      switch (expr.kind) {\n        case 212 /* PropertyAccessExpression */:\n          return expr.name;\n        case 213 /* ElementAccessExpression */:\n          const arg = expr.argumentExpression;\n          if (isIdentifier(arg)) {\n            return arg;\n          }\n      }\n      break;\n    case 218 /* ParenthesizedExpression */: {\n      return getDeclarationIdentifier(hostNode.expression);\n    }\n    case 257 /* LabeledStatement */: {\n      if (isDeclaration(hostNode.statement) || isExpression(hostNode.statement)) {\n        return getDeclarationIdentifier(hostNode.statement);\n      }\n      break;\n    }\n  }\n}\nfunction getDeclarationIdentifier(node) {\n  const name = getNameOfDeclaration(node);\n  return name && isIdentifier(name) ? name : void 0;\n}\nfunction nodeHasName(statement, name) {\n  if (isNamedDeclaration(statement) && isIdentifier(statement.name) && idText(statement.name) === idText(name)) {\n    return true;\n  }\n  if (isVariableStatement(statement) && some(statement.declarationList.declarations, (d) => nodeHasName(d, name))) {\n    return true;\n  }\n  return false;\n}\nfunction getNameOfJSDocTypedef(declaration) {\n  return declaration.name || nameForNamelessJSDocTypedef(declaration);\n}\nfunction isNamedDeclaration(node) {\n  return !!node.name;\n}\nfunction getNonAssignedNameOfDeclaration(declaration) {\n  switch (declaration.kind) {\n    case 80 /* Identifier */:\n      return declaration;\n    case 349 /* JSDocPropertyTag */:\n    case 342 /* JSDocParameterTag */: {\n      const { name } = declaration;\n      if (name.kind === 167 /* QualifiedName */) {\n        return name.right;\n      }\n      break;\n    }\n    case 214 /* CallExpression */:\n    case 227 /* BinaryExpression */: {\n      const expr2 = declaration;\n      switch (getAssignmentDeclarationKind(expr2)) {\n        case 1 /* ExportsProperty */:\n        case 4 /* ThisProperty */:\n        case 5 /* Property */:\n        case 3 /* PrototypeProperty */:\n          return getElementOrPropertyAccessArgumentExpressionOrName(expr2.left);\n        case 7 /* ObjectDefinePropertyValue */:\n        case 8 /* ObjectDefinePropertyExports */:\n        case 9 /* ObjectDefinePrototypeProperty */:\n          return expr2.arguments[1];\n        default:\n          return void 0;\n      }\n    }\n    case 347 /* JSDocTypedefTag */:\n      return getNameOfJSDocTypedef(declaration);\n    case 341 /* JSDocEnumTag */:\n      return nameForNamelessJSDocTypedef(declaration);\n    case 278 /* ExportAssignment */: {\n      const { expression } = declaration;\n      return isIdentifier(expression) ? expression : void 0;\n    }\n    case 213 /* ElementAccessExpression */:\n      const expr = declaration;\n      if (isBindableStaticElementAccessExpression(expr)) {\n        return expr.argumentExpression;\n      }\n  }\n  return declaration.name;\n}\nfunction getNameOfDeclaration(declaration) {\n  if (declaration === void 0) return void 0;\n  return getNonAssignedNameOfDeclaration(declaration) || (isFunctionExpression(declaration) || isArrowFunction(declaration) || isClassExpression(declaration) ? getAssignedName(declaration) : void 0);\n}\nfunction getAssignedName(node) {\n  if (!node.parent) {\n    return void 0;\n  } else if (isPropertyAssignment(node.parent) || isBindingElement(node.parent)) {\n    return node.parent.name;\n  } else if (isBinaryExpression(node.parent) && node === node.parent.right) {\n    if (isIdentifier(node.parent.left)) {\n      return node.parent.left;\n    } else if (isAccessExpression(node.parent.left)) {\n      return getElementOrPropertyAccessArgumentExpressionOrName(node.parent.left);\n    }\n  } else if (isVariableDeclaration(node.parent) && isIdentifier(node.parent.name)) {\n    return node.parent.name;\n  }\n}\nfunction getDecorators(node) {\n  if (hasDecorators(node)) {\n    return filter(node.modifiers, isDecorator);\n  }\n}\nfunction getModifiers(node) {\n  if (hasSyntacticModifier(node, 98303 /* Modifier */)) {\n    return filter(node.modifiers, isModifier);\n  }\n}\nfunction getJSDocParameterTagsWorker(param, noCache) {\n  if (param.name) {\n    if (isIdentifier(param.name)) {\n      const name = param.name.escapedText;\n      return getJSDocTagsWorker(param.parent, noCache).filter((tag) => isJSDocParameterTag(tag) && isIdentifier(tag.name) && tag.name.escapedText === name);\n    } else {\n      const i = param.parent.parameters.indexOf(param);\n      Debug.assert(i > -1, \"Parameters should always be in their parents' parameter list\");\n      const paramTags = getJSDocTagsWorker(param.parent, noCache).filter(isJSDocParameterTag);\n      if (i < paramTags.length) {\n        return [paramTags[i]];\n      }\n    }\n  }\n  return emptyArray;\n}\nfunction getJSDocParameterTags(param) {\n  return getJSDocParameterTagsWorker(\n    param,\n    /*noCache*/\n    false\n  );\n}\nfunction getJSDocParameterTagsNoCache(param) {\n  return getJSDocParameterTagsWorker(\n    param,\n    /*noCache*/\n    true\n  );\n}\nfunction getJSDocTypeParameterTagsWorker(param, noCache) {\n  const name = param.name.escapedText;\n  return getJSDocTagsWorker(param.parent, noCache).filter((tag) => isJSDocTemplateTag(tag) && tag.typeParameters.some((tp) => tp.name.escapedText === name));\n}\nfunction getJSDocTypeParameterTags(param) {\n  return getJSDocTypeParameterTagsWorker(\n    param,\n    /*noCache*/\n    false\n  );\n}\nfunction getJSDocTypeParameterTagsNoCache(param) {\n  return getJSDocTypeParameterTagsWorker(\n    param,\n    /*noCache*/\n    true\n  );\n}\nfunction hasJSDocParameterTags(node) {\n  return !!getFirstJSDocTag(node, isJSDocParameterTag);\n}\nfunction getJSDocAugmentsTag(node) {\n  return getFirstJSDocTag(node, isJSDocAugmentsTag);\n}\nfunction getJSDocImplementsTags(node) {\n  return getAllJSDocTags(node, isJSDocImplementsTag);\n}\nfunction getJSDocClassTag(node) {\n  return getFirstJSDocTag(node, isJSDocClassTag);\n}\nfunction getJSDocPublicTag(node) {\n  return getFirstJSDocTag(node, isJSDocPublicTag);\n}\nfunction getJSDocPublicTagNoCache(node) {\n  return getFirstJSDocTag(\n    node,\n    isJSDocPublicTag,\n    /*noCache*/\n    true\n  );\n}\nfunction getJSDocPrivateTag(node) {\n  return getFirstJSDocTag(node, isJSDocPrivateTag);\n}\nfunction getJSDocPrivateTagNoCache(node) {\n  return getFirstJSDocTag(\n    node,\n    isJSDocPrivateTag,\n    /*noCache*/\n    true\n  );\n}\nfunction getJSDocProtectedTag(node) {\n  return getFirstJSDocTag(node, isJSDocProtectedTag);\n}\nfunction getJSDocProtectedTagNoCache(node) {\n  return getFirstJSDocTag(\n    node,\n    isJSDocProtectedTag,\n    /*noCache*/\n    true\n  );\n}\nfunction getJSDocReadonlyTag(node) {\n  return getFirstJSDocTag(node, isJSDocReadonlyTag);\n}\nfunction getJSDocReadonlyTagNoCache(node) {\n  return getFirstJSDocTag(\n    node,\n    isJSDocReadonlyTag,\n    /*noCache*/\n    true\n  );\n}\nfunction getJSDocOverrideTagNoCache(node) {\n  return getFirstJSDocTag(\n    node,\n    isJSDocOverrideTag,\n    /*noCache*/\n    true\n  );\n}\nfunction getJSDocDeprecatedTag(node) {\n  return getFirstJSDocTag(node, isJSDocDeprecatedTag);\n}\nfunction getJSDocDeprecatedTagNoCache(node) {\n  return getFirstJSDocTag(\n    node,\n    isJSDocDeprecatedTag,\n    /*noCache*/\n    true\n  );\n}\nfunction getJSDocEnumTag(node) {\n  return getFirstJSDocTag(node, isJSDocEnumTag);\n}\nfunction getJSDocThisTag(node) {\n  return getFirstJSDocTag(node, isJSDocThisTag);\n}\nfunction getJSDocReturnTag(node) {\n  return getFirstJSDocTag(node, isJSDocReturnTag);\n}\nfunction getJSDocTemplateTag(node) {\n  return getFirstJSDocTag(node, isJSDocTemplateTag);\n}\nfunction getJSDocSatisfiesTag(node) {\n  return getFirstJSDocTag(node, isJSDocSatisfiesTag);\n}\nfunction getJSDocTypeTag(node) {\n  const tag = getFirstJSDocTag(node, isJSDocTypeTag);\n  if (tag && tag.typeExpression && tag.typeExpression.type) {\n    return tag;\n  }\n  return void 0;\n}\nfunction getJSDocType(node) {\n  let tag = getFirstJSDocTag(node, isJSDocTypeTag);\n  if (!tag && isParameter(node)) {\n    tag = find(getJSDocParameterTags(node), (tag2) => !!tag2.typeExpression);\n  }\n  return tag && tag.typeExpression && tag.typeExpression.type;\n}\nfunction getJSDocReturnType(node) {\n  const returnTag = getJSDocReturnTag(node);\n  if (returnTag && returnTag.typeExpression) {\n    return returnTag.typeExpression.type;\n  }\n  const typeTag = getJSDocTypeTag(node);\n  if (typeTag && typeTag.typeExpression) {\n    const type = typeTag.typeExpression.type;\n    if (isTypeLiteralNode(type)) {\n      const sig = find(type.members, isCallSignatureDeclaration);\n      return sig && sig.type;\n    }\n    if (isFunctionTypeNode(type) || isJSDocFunctionType(type)) {\n      return type.type;\n    }\n  }\n}\nfunction getJSDocTagsWorker(node, noCache) {\n  var _a;\n  if (!canHaveJSDoc(node)) return emptyArray;\n  let tags = (_a = node.jsDoc) == null ? void 0 : _a.jsDocCache;\n  if (tags === void 0 || noCache) {\n    const comments = getJSDocCommentsAndTags(node, noCache);\n    Debug.assert(comments.length < 2 || comments[0] !== comments[1]);\n    tags = flatMap(comments, (j) => isJSDoc(j) ? j.tags : j);\n    if (!noCache) {\n      node.jsDoc ?? (node.jsDoc = []);\n      node.jsDoc.jsDocCache = tags;\n    }\n  }\n  return tags;\n}\nfunction getJSDocTags(node) {\n  return getJSDocTagsWorker(\n    node,\n    /*noCache*/\n    false\n  );\n}\nfunction getFirstJSDocTag(node, predicate, noCache) {\n  return find(getJSDocTagsWorker(node, noCache), predicate);\n}\nfunction getAllJSDocTags(node, predicate) {\n  return getJSDocTags(node).filter(predicate);\n}\nfunction getAllJSDocTagsOfKind(node, kind) {\n  return getJSDocTags(node).filter((doc) => doc.kind === kind);\n}\nfunction getTextOfJSDocComment(comment) {\n  return typeof comment === \"string\" ? comment : comment == null ? void 0 : comment.map((c) => c.kind === 322 /* JSDocText */ ? c.text : formatJSDocLink(c)).join(\"\");\n}\nfunction formatJSDocLink(link) {\n  const kind = link.kind === 325 /* JSDocLink */ ? \"link\" : link.kind === 326 /* JSDocLinkCode */ ? \"linkcode\" : \"linkplain\";\n  const name = link.name ? entityNameToString(link.name) : \"\";\n  const space = link.name && (link.text === \"\" || link.text.startsWith(\"://\")) ? \"\" : \" \";\n  return `{@${kind} ${name}${space}${link.text}}`;\n}\nfunction getEffectiveTypeParameterDeclarations(node) {\n  if (isJSDocSignature(node)) {\n    if (isJSDocOverloadTag(node.parent)) {\n      const jsDoc = getJSDocRoot(node.parent);\n      if (jsDoc && length(jsDoc.tags)) {\n        return flatMap(jsDoc.tags, (tag) => isJSDocTemplateTag(tag) ? tag.typeParameters : void 0);\n      }\n    }\n    return emptyArray;\n  }\n  if (isJSDocTypeAlias(node)) {\n    Debug.assert(node.parent.kind === 321 /* JSDoc */);\n    return flatMap(node.parent.tags, (tag) => isJSDocTemplateTag(tag) ? tag.typeParameters : void 0);\n  }\n  if (node.typeParameters) {\n    return node.typeParameters;\n  }\n  if (canHaveIllegalTypeParameters(node) && node.typeParameters) {\n    return node.typeParameters;\n  }\n  if (isInJSFile(node)) {\n    const decls = getJSDocTypeParameterDeclarations(node);\n    if (decls.length) {\n      return decls;\n    }\n    const typeTag = getJSDocType(node);\n    if (typeTag && isFunctionTypeNode(typeTag) && typeTag.typeParameters) {\n      return typeTag.typeParameters;\n    }\n  }\n  return emptyArray;\n}\nfunction getEffectiveConstraintOfTypeParameter(node) {\n  return node.constraint ? node.constraint : isJSDocTemplateTag(node.parent) && node === node.parent.typeParameters[0] ? node.parent.constraint : void 0;\n}\nfunction isMemberName(node) {\n  return node.kind === 80 /* Identifier */ || node.kind === 81 /* PrivateIdentifier */;\n}\nfunction isGetOrSetAccessorDeclaration(node) {\n  return node.kind === 179 /* SetAccessor */ || node.kind === 178 /* GetAccessor */;\n}\nfunction isPropertyAccessChain(node) {\n  return isPropertyAccessExpression(node) && !!(node.flags & 64 /* OptionalChain */);\n}\nfunction isElementAccessChain(node) {\n  return isElementAccessExpression(node) && !!(node.flags & 64 /* OptionalChain */);\n}\nfunction isCallChain(node) {\n  return isCallExpression(node) && !!(node.flags & 64 /* OptionalChain */);\n}\nfunction isOptionalChain(node) {\n  const kind = node.kind;\n  return !!(node.flags & 64 /* OptionalChain */) && (kind === 212 /* PropertyAccessExpression */ || kind === 213 /* ElementAccessExpression */ || kind === 214 /* CallExpression */ || kind === 236 /* NonNullExpression */);\n}\nfunction isOptionalChainRoot(node) {\n  return isOptionalChain(node) && !isNonNullExpression(node) && !!node.questionDotToken;\n}\nfunction isExpressionOfOptionalChainRoot(node) {\n  return isOptionalChainRoot(node.parent) && node.parent.expression === node;\n}\nfunction isOutermostOptionalChain(node) {\n  return !isOptionalChain(node.parent) || isOptionalChainRoot(node.parent) || node !== node.parent.expression;\n}\nfunction isNullishCoalesce(node) {\n  return node.kind === 227 /* BinaryExpression */ && node.operatorToken.kind === 61 /* QuestionQuestionToken */;\n}\nfunction isConstTypeReference(node) {\n  return isTypeReferenceNode(node) && isIdentifier(node.typeName) && node.typeName.escapedText === \"const\" && !node.typeArguments;\n}\nfunction skipPartiallyEmittedExpressions(node) {\n  return skipOuterExpressions(node, 8 /* PartiallyEmittedExpressions */);\n}\nfunction isNonNullChain(node) {\n  return isNonNullExpression(node) && !!(node.flags & 64 /* OptionalChain */);\n}\nfunction isBreakOrContinueStatement(node) {\n  return node.kind === 253 /* BreakStatement */ || node.kind === 252 /* ContinueStatement */;\n}\nfunction isNamedExportBindings(node) {\n  return node.kind === 281 /* NamespaceExport */ || node.kind === 280 /* NamedExports */;\n}\nfunction isJSDocPropertyLikeTag(node) {\n  return node.kind === 349 /* JSDocPropertyTag */ || node.kind === 342 /* JSDocParameterTag */;\n}\nfunction isNodeKind(kind) {\n  return kind >= 167 /* FirstNode */;\n}\nfunction isTokenKind(kind) {\n  return kind >= 0 /* FirstToken */ && kind <= 166 /* LastToken */;\n}\nfunction isToken(n) {\n  return isTokenKind(n.kind);\n}\nfunction isNodeArray(array) {\n  return hasProperty(array, \"pos\") && hasProperty(array, \"end\");\n}\nfunction isLiteralKind(kind) {\n  return 9 /* FirstLiteralToken */ <= kind && kind <= 15 /* LastLiteralToken */;\n}\nfunction isLiteralExpression(node) {\n  return isLiteralKind(node.kind);\n}\nfunction isLiteralExpressionOfObject(node) {\n  switch (node.kind) {\n    case 211 /* ObjectLiteralExpression */:\n    case 210 /* ArrayLiteralExpression */:\n    case 14 /* RegularExpressionLiteral */:\n    case 219 /* FunctionExpression */:\n    case 232 /* ClassExpression */:\n      return true;\n  }\n  return false;\n}\nfunction isTemplateLiteralKind(kind) {\n  return 15 /* FirstTemplateToken */ <= kind && kind <= 18 /* LastTemplateToken */;\n}\nfunction isTemplateLiteralToken(node) {\n  return isTemplateLiteralKind(node.kind);\n}\nfunction isTemplateMiddleOrTemplateTail(node) {\n  const kind = node.kind;\n  return kind === 17 /* TemplateMiddle */ || kind === 18 /* TemplateTail */;\n}\nfunction isImportOrExportSpecifier(node) {\n  return isImportSpecifier(node) || isExportSpecifier(node);\n}\nfunction isTypeOnlyImportDeclaration(node) {\n  switch (node.kind) {\n    case 277 /* ImportSpecifier */:\n      return node.isTypeOnly || node.parent.parent.phaseModifier === 156 /* TypeKeyword */;\n    case 275 /* NamespaceImport */:\n      return node.parent.phaseModifier === 156 /* TypeKeyword */;\n    case 274 /* ImportClause */:\n      return node.phaseModifier === 156 /* TypeKeyword */;\n    case 272 /* ImportEqualsDeclaration */:\n      return node.isTypeOnly;\n  }\n  return false;\n}\nfunction isTypeOnlyExportDeclaration(node) {\n  switch (node.kind) {\n    case 282 /* ExportSpecifier */:\n      return node.isTypeOnly || node.parent.parent.isTypeOnly;\n    case 279 /* ExportDeclaration */:\n      return node.isTypeOnly && !!node.moduleSpecifier && !node.exportClause;\n    case 281 /* NamespaceExport */:\n      return node.parent.isTypeOnly;\n  }\n  return false;\n}\nfunction isTypeOnlyImportOrExportDeclaration(node) {\n  return isTypeOnlyImportDeclaration(node) || isTypeOnlyExportDeclaration(node);\n}\nfunction isPartOfTypeOnlyImportOrExportDeclaration(node) {\n  return findAncestor(node, isTypeOnlyImportOrExportDeclaration) !== void 0;\n}\nfunction isStringTextContainingNode(node) {\n  return node.kind === 11 /* StringLiteral */ || isTemplateLiteralKind(node.kind);\n}\nfunction isImportAttributeName(node) {\n  return isStringLiteral(node) || isIdentifier(node);\n}\nfunction isGeneratedIdentifier(node) {\n  var _a;\n  return isIdentifier(node) && ((_a = node.emitNode) == null ? void 0 : _a.autoGenerate) !== void 0;\n}\nfunction isGeneratedPrivateIdentifier(node) {\n  var _a;\n  return isPrivateIdentifier(node) && ((_a = node.emitNode) == null ? void 0 : _a.autoGenerate) !== void 0;\n}\nfunction isFileLevelReservedGeneratedIdentifier(node) {\n  const flags = node.emitNode.autoGenerate.flags;\n  return !!(flags & 32 /* FileLevel */) && !!(flags & 16 /* Optimistic */) && !!(flags & 8 /* ReservedInNestedScopes */);\n}\nfunction isPrivateIdentifierClassElementDeclaration(node) {\n  return (isPropertyDeclaration(node) || isMethodOrAccessor(node)) && isPrivateIdentifier(node.name);\n}\nfunction isPrivateIdentifierPropertyAccessExpression(node) {\n  return isPropertyAccessExpression(node) && isPrivateIdentifier(node.name);\n}\nfunction isModifierKind(token) {\n  switch (token) {\n    case 128 /* AbstractKeyword */:\n    case 129 /* AccessorKeyword */:\n    case 134 /* AsyncKeyword */:\n    case 87 /* ConstKeyword */:\n    case 138 /* DeclareKeyword */:\n    case 90 /* DefaultKeyword */:\n    case 95 /* ExportKeyword */:\n    case 103 /* InKeyword */:\n    case 125 /* PublicKeyword */:\n    case 123 /* PrivateKeyword */:\n    case 124 /* ProtectedKeyword */:\n    case 148 /* ReadonlyKeyword */:\n    case 126 /* StaticKeyword */:\n    case 147 /* OutKeyword */:\n    case 164 /* OverrideKeyword */:\n      return true;\n  }\n  return false;\n}\nfunction isParameterPropertyModifier(kind) {\n  return !!(modifierToFlag(kind) & 31 /* ParameterPropertyModifier */);\n}\nfunction isClassMemberModifier(idToken) {\n  return isParameterPropertyModifier(idToken) || idToken === 126 /* StaticKeyword */ || idToken === 164 /* OverrideKeyword */ || idToken === 129 /* AccessorKeyword */;\n}\nfunction isModifier(node) {\n  return isModifierKind(node.kind);\n}\nfunction isEntityName(node) {\n  const kind = node.kind;\n  return kind === 167 /* QualifiedName */ || kind === 80 /* Identifier */;\n}\nfunction isPropertyName(node) {\n  const kind = node.kind;\n  return kind === 80 /* Identifier */ || kind === 81 /* PrivateIdentifier */ || kind === 11 /* StringLiteral */ || kind === 9 /* NumericLiteral */ || kind === 168 /* ComputedPropertyName */;\n}\nfunction isBindingName(node) {\n  const kind = node.kind;\n  return kind === 80 /* Identifier */ || kind === 207 /* ObjectBindingPattern */ || kind === 208 /* ArrayBindingPattern */;\n}\nfunction isFunctionLike(node) {\n  return !!node && isFunctionLikeKind(node.kind);\n}\nfunction isFunctionLikeOrClassStaticBlockDeclaration(node) {\n  return !!node && (isFunctionLikeKind(node.kind) || isClassStaticBlockDeclaration(node));\n}\nfunction isFunctionLikeDeclaration(node) {\n  return node && isFunctionLikeDeclarationKind(node.kind);\n}\nfunction isBooleanLiteral(node) {\n  return node.kind === 112 /* TrueKeyword */ || node.kind === 97 /* FalseKeyword */;\n}\nfunction isFunctionLikeDeclarationKind(kind) {\n  switch (kind) {\n    case 263 /* FunctionDeclaration */:\n    case 175 /* MethodDeclaration */:\n    case 177 /* Constructor */:\n    case 178 /* GetAccessor */:\n    case 179 /* SetAccessor */:\n    case 219 /* FunctionExpression */:\n    case 220 /* ArrowFunction */:\n      return true;\n    default:\n      return false;\n  }\n}\nfunction isFunctionLikeKind(kind) {\n  switch (kind) {\n    case 174 /* MethodSignature */:\n    case 180 /* CallSignature */:\n    case 324 /* JSDocSignature */:\n    case 181 /* ConstructSignature */:\n    case 182 /* IndexSignature */:\n    case 185 /* FunctionType */:\n    case 318 /* JSDocFunctionType */:\n    case 186 /* ConstructorType */:\n      return true;\n    default:\n      return isFunctionLikeDeclarationKind(kind);\n  }\n}\nfunction isFunctionOrModuleBlock(node) {\n  return isSourceFile(node) || isModuleBlock(node) || isBlock(node) && isFunctionLike(node.parent);\n}\nfunction isClassElement(node) {\n  const kind = node.kind;\n  return kind === 177 /* Constructor */ || kind === 173 /* PropertyDeclaration */ || kind === 175 /* MethodDeclaration */ || kind === 178 /* GetAccessor */ || kind === 179 /* SetAccessor */ || kind === 182 /* IndexSignature */ || kind === 176 /* ClassStaticBlockDeclaration */ || kind === 241 /* SemicolonClassElement */;\n}\nfunction isClassLike(node) {\n  return node && (node.kind === 264 /* ClassDeclaration */ || node.kind === 232 /* ClassExpression */);\n}\nfunction isAccessor(node) {\n  return node && (node.kind === 178 /* GetAccessor */ || node.kind === 179 /* SetAccessor */);\n}\nfunction isAutoAccessorPropertyDeclaration(node) {\n  return isPropertyDeclaration(node) && hasAccessorModifier(node);\n}\nfunction isClassInstanceProperty(node) {\n  if (isInJSFile(node) && isExpandoPropertyDeclaration(node)) {\n    return (!isBindableStaticAccessExpression(node) || !isPrototypeAccess(node.expression)) && !isBindableStaticNameExpression(\n      node,\n      /*excludeThisKeyword*/\n      true\n    );\n  }\n  return node.parent && isClassLike(node.parent) && isPropertyDeclaration(node) && !hasAccessorModifier(node);\n}\nfunction isMethodOrAccessor(node) {\n  switch (node.kind) {\n    case 175 /* MethodDeclaration */:\n    case 178 /* GetAccessor */:\n    case 179 /* SetAccessor */:\n      return true;\n    default:\n      return false;\n  }\n}\nfunction isModifierLike(node) {\n  return isModifier(node) || isDecorator(node);\n}\nfunction isTypeElement(node) {\n  const kind = node.kind;\n  return kind === 181 /* ConstructSignature */ || kind === 180 /* CallSignature */ || kind === 172 /* PropertySignature */ || kind === 174 /* MethodSignature */ || kind === 182 /* IndexSignature */ || kind === 178 /* GetAccessor */ || kind === 179 /* SetAccessor */ || kind === 355 /* NotEmittedTypeElement */;\n}\nfunction isClassOrTypeElement(node) {\n  return isTypeElement(node) || isClassElement(node);\n}\nfunction isObjectLiteralElementLike(node) {\n  const kind = node.kind;\n  return kind === 304 /* PropertyAssignment */ || kind === 305 /* ShorthandPropertyAssignment */ || kind === 306 /* SpreadAssignment */ || kind === 175 /* MethodDeclaration */ || kind === 178 /* GetAccessor */ || kind === 179 /* SetAccessor */;\n}\nfunction isTypeNode(node) {\n  return isTypeNodeKind(node.kind);\n}\nfunction isFunctionOrConstructorTypeNode(node) {\n  switch (node.kind) {\n    case 185 /* FunctionType */:\n    case 186 /* ConstructorType */:\n      return true;\n  }\n  return false;\n}\nfunction isBindingPattern(node) {\n  if (node) {\n    const kind = node.kind;\n    return kind === 208 /* ArrayBindingPattern */ || kind === 207 /* ObjectBindingPattern */;\n  }\n  return false;\n}\nfunction isAssignmentPattern(node) {\n  const kind = node.kind;\n  return kind === 210 /* ArrayLiteralExpression */ || kind === 211 /* ObjectLiteralExpression */;\n}\nfunction isArrayBindingElement(node) {\n  const kind = node.kind;\n  return kind === 209 /* BindingElement */ || kind === 233 /* OmittedExpression */;\n}\nfunction isDeclarationBindingElement(bindingElement) {\n  switch (bindingElement.kind) {\n    case 261 /* VariableDeclaration */:\n    case 170 /* Parameter */:\n    case 209 /* BindingElement */:\n      return true;\n  }\n  return false;\n}\nfunction isBindingOrAssignmentElement(node) {\n  return isVariableDeclaration(node) || isParameter(node) || isObjectBindingOrAssignmentElement(node) || isArrayBindingOrAssignmentElement(node);\n}\nfunction isBindingOrAssignmentPattern(node) {\n  return isObjectBindingOrAssignmentPattern(node) || isArrayBindingOrAssignmentPattern(node);\n}\nfunction isObjectBindingOrAssignmentPattern(node) {\n  switch (node.kind) {\n    case 207 /* ObjectBindingPattern */:\n    case 211 /* ObjectLiteralExpression */:\n      return true;\n  }\n  return false;\n}\nfunction isObjectBindingOrAssignmentElement(node) {\n  switch (node.kind) {\n    case 209 /* BindingElement */:\n    case 304 /* PropertyAssignment */:\n    // AssignmentProperty\n    case 305 /* ShorthandPropertyAssignment */:\n    // AssignmentProperty\n    case 306 /* SpreadAssignment */:\n      return true;\n  }\n  return false;\n}\nfunction isArrayBindingOrAssignmentPattern(node) {\n  switch (node.kind) {\n    case 208 /* ArrayBindingPattern */:\n    case 210 /* ArrayLiteralExpression */:\n      return true;\n  }\n  return false;\n}\nfunction isArrayBindingOrAssignmentElement(node) {\n  switch (node.kind) {\n    case 209 /* BindingElement */:\n    case 233 /* OmittedExpression */:\n    // Elision\n    case 231 /* SpreadElement */:\n    // AssignmentRestElement\n    case 210 /* ArrayLiteralExpression */:\n    // ArrayAssignmentPattern\n    case 211 /* ObjectLiteralExpression */:\n    // ObjectAssignmentPattern\n    case 80 /* Identifier */:\n    // DestructuringAssignmentTarget\n    case 212 /* PropertyAccessExpression */:\n    // DestructuringAssignmentTarget\n    case 213 /* ElementAccessExpression */:\n      return true;\n  }\n  return isAssignmentExpression(\n    node,\n    /*excludeCompoundAssignment*/\n    true\n  );\n}\nfunction isPropertyAccessOrQualifiedNameOrImportTypeNode(node) {\n  const kind = node.kind;\n  return kind === 212 /* PropertyAccessExpression */ || kind === 167 /* QualifiedName */ || kind === 206 /* ImportType */;\n}\nfunction isPropertyAccessOrQualifiedName(node) {\n  const kind = node.kind;\n  return kind === 212 /* PropertyAccessExpression */ || kind === 167 /* QualifiedName */;\n}\nfunction isCallLikeOrFunctionLikeExpression(node) {\n  return isCallLikeExpression(node) || isFunctionExpressionOrArrowFunction(node);\n}\nfunction isCallLikeExpression(node) {\n  switch (node.kind) {\n    case 214 /* CallExpression */:\n    case 215 /* NewExpression */:\n    case 216 /* TaggedTemplateExpression */:\n    case 171 /* Decorator */:\n    case 287 /* JsxOpeningElement */:\n    case 286 /* JsxSelfClosingElement */:\n    case 290 /* JsxOpeningFragment */:\n      return true;\n    case 227 /* BinaryExpression */:\n      return node.operatorToken.kind === 104 /* InstanceOfKeyword */;\n    default:\n      return false;\n  }\n}\nfunction isCallOrNewExpression(node) {\n  return node.kind === 214 /* CallExpression */ || node.kind === 215 /* NewExpression */;\n}\nfunction isTemplateLiteral(node) {\n  const kind = node.kind;\n  return kind === 229 /* TemplateExpression */ || kind === 15 /* NoSubstitutionTemplateLiteral */;\n}\nfunction isLeftHandSideExpression(node) {\n  return isLeftHandSideExpressionKind(skipPartiallyEmittedExpressions(node).kind);\n}\nfunction isLeftHandSideExpressionKind(kind) {\n  switch (kind) {\n    case 212 /* PropertyAccessExpression */:\n    case 213 /* ElementAccessExpression */:\n    case 215 /* NewExpression */:\n    case 214 /* CallExpression */:\n    case 285 /* JsxElement */:\n    case 286 /* JsxSelfClosingElement */:\n    case 289 /* JsxFragment */:\n    case 216 /* TaggedTemplateExpression */:\n    case 210 /* ArrayLiteralExpression */:\n    case 218 /* ParenthesizedExpression */:\n    case 211 /* ObjectLiteralExpression */:\n    case 232 /* ClassExpression */:\n    case 219 /* FunctionExpression */:\n    case 80 /* Identifier */:\n    case 81 /* PrivateIdentifier */:\n    // technically this is only an Expression if it's in a `#field in expr` BinaryExpression\n    case 14 /* RegularExpressionLiteral */:\n    case 9 /* NumericLiteral */:\n    case 10 /* BigIntLiteral */:\n    case 11 /* StringLiteral */:\n    case 15 /* NoSubstitutionTemplateLiteral */:\n    case 229 /* TemplateExpression */:\n    case 97 /* FalseKeyword */:\n    case 106 /* NullKeyword */:\n    case 110 /* ThisKeyword */:\n    case 112 /* TrueKeyword */:\n    case 108 /* SuperKeyword */:\n    case 236 /* NonNullExpression */:\n    case 234 /* ExpressionWithTypeArguments */:\n    case 237 /* MetaProperty */:\n    case 102 /* ImportKeyword */:\n    // technically this is only an Expression if it's in a CallExpression\n    case 283 /* MissingDeclaration */:\n      return true;\n    default:\n      return false;\n  }\n}\nfunction isUnaryExpression(node) {\n  return isUnaryExpressionKind(skipPartiallyEmittedExpressions(node).kind);\n}\nfunction isUnaryExpressionKind(kind) {\n  switch (kind) {\n    case 225 /* PrefixUnaryExpression */:\n    case 226 /* PostfixUnaryExpression */:\n    case 221 /* DeleteExpression */:\n    case 222 /* TypeOfExpression */:\n    case 223 /* VoidExpression */:\n    case 224 /* AwaitExpression */:\n    case 217 /* TypeAssertionExpression */:\n      return true;\n    default:\n      return isLeftHandSideExpressionKind(kind);\n  }\n}\nfunction isUnaryExpressionWithWrite(expr) {\n  switch (expr.kind) {\n    case 226 /* PostfixUnaryExpression */:\n      return true;\n    case 225 /* PrefixUnaryExpression */:\n      return expr.operator === 46 /* PlusPlusToken */ || expr.operator === 47 /* MinusMinusToken */;\n    default:\n      return false;\n  }\n}\nfunction isLiteralTypeLiteral(node) {\n  switch (node.kind) {\n    case 106 /* NullKeyword */:\n    case 112 /* TrueKeyword */:\n    case 97 /* FalseKeyword */:\n    case 225 /* PrefixUnaryExpression */:\n      return true;\n    default:\n      return isLiteralExpression(node);\n  }\n}\nfunction isExpression(node) {\n  return isExpressionKind(skipPartiallyEmittedExpressions(node).kind);\n}\nfunction isExpressionKind(kind) {\n  switch (kind) {\n    case 228 /* ConditionalExpression */:\n    case 230 /* YieldExpression */:\n    case 220 /* ArrowFunction */:\n    case 227 /* BinaryExpression */:\n    case 231 /* SpreadElement */:\n    case 235 /* AsExpression */:\n    case 233 /* OmittedExpression */:\n    case 357 /* CommaListExpression */:\n    case 356 /* PartiallyEmittedExpression */:\n    case 239 /* SatisfiesExpression */:\n      return true;\n    default:\n      return isUnaryExpressionKind(kind);\n  }\n}\nfunction isAssertionExpression(node) {\n  const kind = node.kind;\n  return kind === 217 /* TypeAssertionExpression */ || kind === 235 /* AsExpression */;\n}\nfunction isIterationStatement(node, lookInLabeledStatements) {\n  switch (node.kind) {\n    case 249 /* ForStatement */:\n    case 250 /* ForInStatement */:\n    case 251 /* ForOfStatement */:\n    case 247 /* DoStatement */:\n    case 248 /* WhileStatement */:\n      return true;\n    case 257 /* LabeledStatement */:\n      return lookInLabeledStatements && isIterationStatement(node.statement, lookInLabeledStatements);\n  }\n  return false;\n}\nfunction isScopeMarker(node) {\n  return isExportAssignment(node) || isExportDeclaration(node);\n}\nfunction hasScopeMarker(statements) {\n  return some(statements, isScopeMarker);\n}\nfunction needsScopeMarker(result) {\n  return !isAnyImportOrReExport(result) && !isExportAssignment(result) && !hasSyntacticModifier(result, 32 /* Export */) && !isAmbientModule(result);\n}\nfunction isExternalModuleIndicator(result) {\n  return isAnyImportOrReExport(result) || isExportAssignment(result) || hasSyntacticModifier(result, 32 /* Export */);\n}\nfunction isForInOrOfStatement(node) {\n  return node.kind === 250 /* ForInStatement */ || node.kind === 251 /* ForOfStatement */;\n}\nfunction isConciseBody(node) {\n  return isBlock(node) || isExpression(node);\n}\nfunction isFunctionBody(node) {\n  return isBlock(node);\n}\nfunction isForInitializer(node) {\n  return isVariableDeclarationList(node) || isExpression(node);\n}\nfunction isModuleBody(node) {\n  const kind = node.kind;\n  return kind === 269 /* ModuleBlock */ || kind === 268 /* ModuleDeclaration */ || kind === 80 /* Identifier */;\n}\nfunction isNamespaceBody(node) {\n  const kind = node.kind;\n  return kind === 269 /* ModuleBlock */ || kind === 268 /* ModuleDeclaration */;\n}\nfunction isJSDocNamespaceBody(node) {\n  const kind = node.kind;\n  return kind === 80 /* Identifier */ || kind === 268 /* ModuleDeclaration */;\n}\nfunction isNamedImportBindings(node) {\n  const kind = node.kind;\n  return kind === 276 /* NamedImports */ || kind === 275 /* NamespaceImport */;\n}\nfunction isModuleOrEnumDeclaration(node) {\n  return node.kind === 268 /* ModuleDeclaration */ || node.kind === 267 /* EnumDeclaration */;\n}\nfunction canHaveSymbol(node) {\n  switch (node.kind) {\n    case 220 /* ArrowFunction */:\n    case 227 /* BinaryExpression */:\n    case 209 /* BindingElement */:\n    case 214 /* CallExpression */:\n    case 180 /* CallSignature */:\n    case 264 /* ClassDeclaration */:\n    case 232 /* ClassExpression */:\n    case 176 /* ClassStaticBlockDeclaration */:\n    case 177 /* Constructor */:\n    case 186 /* ConstructorType */:\n    case 181 /* ConstructSignature */:\n    case 213 /* ElementAccessExpression */:\n    case 267 /* EnumDeclaration */:\n    case 307 /* EnumMember */:\n    case 278 /* ExportAssignment */:\n    case 279 /* ExportDeclaration */:\n    case 282 /* ExportSpecifier */:\n    case 263 /* FunctionDeclaration */:\n    case 219 /* FunctionExpression */:\n    case 185 /* FunctionType */:\n    case 178 /* GetAccessor */:\n    case 80 /* Identifier */:\n    case 274 /* ImportClause */:\n    case 272 /* ImportEqualsDeclaration */:\n    case 277 /* ImportSpecifier */:\n    case 182 /* IndexSignature */:\n    case 265 /* InterfaceDeclaration */:\n    case 339 /* JSDocCallbackTag */:\n    case 341 /* JSDocEnumTag */:\n    case 318 /* JSDocFunctionType */:\n    case 342 /* JSDocParameterTag */:\n    case 349 /* JSDocPropertyTag */:\n    case 324 /* JSDocSignature */:\n    case 347 /* JSDocTypedefTag */:\n    case 323 /* JSDocTypeLiteral */:\n    case 292 /* JsxAttribute */:\n    case 293 /* JsxAttributes */:\n    case 294 /* JsxSpreadAttribute */:\n    case 201 /* MappedType */:\n    case 175 /* MethodDeclaration */:\n    case 174 /* MethodSignature */:\n    case 268 /* ModuleDeclaration */:\n    case 203 /* NamedTupleMember */:\n    case 281 /* NamespaceExport */:\n    case 271 /* NamespaceExportDeclaration */:\n    case 275 /* NamespaceImport */:\n    case 215 /* NewExpression */:\n    case 15 /* NoSubstitutionTemplateLiteral */:\n    case 9 /* NumericLiteral */:\n    case 211 /* ObjectLiteralExpression */:\n    case 170 /* Parameter */:\n    case 212 /* PropertyAccessExpression */:\n    case 304 /* PropertyAssignment */:\n    case 173 /* PropertyDeclaration */:\n    case 172 /* PropertySignature */:\n    case 179 /* SetAccessor */:\n    case 305 /* ShorthandPropertyAssignment */:\n    case 308 /* SourceFile */:\n    case 306 /* SpreadAssignment */:\n    case 11 /* StringLiteral */:\n    case 266 /* TypeAliasDeclaration */:\n    case 188 /* TypeLiteral */:\n    case 169 /* TypeParameter */:\n    case 261 /* VariableDeclaration */:\n      return true;\n    default:\n      return false;\n  }\n}\nfunction canHaveLocals(node) {\n  switch (node.kind) {\n    case 220 /* ArrowFunction */:\n    case 242 /* Block */:\n    case 180 /* CallSignature */:\n    case 270 /* CaseBlock */:\n    case 300 /* CatchClause */:\n    case 176 /* ClassStaticBlockDeclaration */:\n    case 195 /* ConditionalType */:\n    case 177 /* Constructor */:\n    case 186 /* ConstructorType */:\n    case 181 /* ConstructSignature */:\n    case 249 /* ForStatement */:\n    case 250 /* ForInStatement */:\n    case 251 /* ForOfStatement */:\n    case 263 /* FunctionDeclaration */:\n    case 219 /* FunctionExpression */:\n    case 185 /* FunctionType */:\n    case 178 /* GetAccessor */:\n    case 182 /* IndexSignature */:\n    case 339 /* JSDocCallbackTag */:\n    case 341 /* JSDocEnumTag */:\n    case 318 /* JSDocFunctionType */:\n    case 324 /* JSDocSignature */:\n    case 347 /* JSDocTypedefTag */:\n    case 201 /* MappedType */:\n    case 175 /* MethodDeclaration */:\n    case 174 /* MethodSignature */:\n    case 268 /* ModuleDeclaration */:\n    case 179 /* SetAccessor */:\n    case 308 /* SourceFile */:\n    case 266 /* TypeAliasDeclaration */:\n      return true;\n    default:\n      return false;\n  }\n}\nfunction isDeclarationKind(kind) {\n  return kind === 220 /* ArrowFunction */ || kind === 209 /* BindingElement */ || kind === 264 /* ClassDeclaration */ || kind === 232 /* ClassExpression */ || kind === 176 /* ClassStaticBlockDeclaration */ || kind === 177 /* Constructor */ || kind === 267 /* EnumDeclaration */ || kind === 307 /* EnumMember */ || kind === 282 /* ExportSpecifier */ || kind === 263 /* FunctionDeclaration */ || kind === 219 /* FunctionExpression */ || kind === 178 /* GetAccessor */ || kind === 274 /* ImportClause */ || kind === 272 /* ImportEqualsDeclaration */ || kind === 277 /* ImportSpecifier */ || kind === 265 /* InterfaceDeclaration */ || kind === 292 /* JsxAttribute */ || kind === 175 /* MethodDeclaration */ || kind === 174 /* MethodSignature */ || kind === 268 /* ModuleDeclaration */ || kind === 271 /* NamespaceExportDeclaration */ || kind === 275 /* NamespaceImport */ || kind === 281 /* NamespaceExport */ || kind === 170 /* Parameter */ || kind === 304 /* PropertyAssignment */ || kind === 173 /* PropertyDeclaration */ || kind === 172 /* PropertySignature */ || kind === 179 /* SetAccessor */ || kind === 305 /* ShorthandPropertyAssignment */ || kind === 266 /* TypeAliasDeclaration */ || kind === 169 /* TypeParameter */ || kind === 261 /* VariableDeclaration */ || kind === 347 /* JSDocTypedefTag */ || kind === 339 /* JSDocCallbackTag */ || kind === 349 /* JSDocPropertyTag */ || kind === 203 /* NamedTupleMember */;\n}\nfunction isDeclarationStatementKind(kind) {\n  return kind === 263 /* FunctionDeclaration */ || kind === 283 /* MissingDeclaration */ || kind === 264 /* ClassDeclaration */ || kind === 265 /* InterfaceDeclaration */ || kind === 266 /* TypeAliasDeclaration */ || kind === 267 /* EnumDeclaration */ || kind === 268 /* ModuleDeclaration */ || kind === 273 /* ImportDeclaration */ || kind === 272 /* ImportEqualsDeclaration */ || kind === 279 /* ExportDeclaration */ || kind === 278 /* ExportAssignment */ || kind === 271 /* NamespaceExportDeclaration */;\n}\nfunction isStatementKindButNotDeclarationKind(kind) {\n  return kind === 253 /* BreakStatement */ || kind === 252 /* ContinueStatement */ || kind === 260 /* DebuggerStatement */ || kind === 247 /* DoStatement */ || kind === 245 /* ExpressionStatement */ || kind === 243 /* EmptyStatement */ || kind === 250 /* ForInStatement */ || kind === 251 /* ForOfStatement */ || kind === 249 /* ForStatement */ || kind === 246 /* IfStatement */ || kind === 257 /* LabeledStatement */ || kind === 254 /* ReturnStatement */ || kind === 256 /* SwitchStatement */ || kind === 258 /* ThrowStatement */ || kind === 259 /* TryStatement */ || kind === 244 /* VariableStatement */ || kind === 248 /* WhileStatement */ || kind === 255 /* WithStatement */ || kind === 354 /* NotEmittedStatement */;\n}\nfunction isDeclaration(node) {\n  if (node.kind === 169 /* TypeParameter */) {\n    return node.parent && node.parent.kind !== 346 /* JSDocTemplateTag */ || isInJSFile(node);\n  }\n  return isDeclarationKind(node.kind);\n}\nfunction isDeclarationStatement(node) {\n  return isDeclarationStatementKind(node.kind);\n}\nfunction isStatementButNotDeclaration(node) {\n  return isStatementKindButNotDeclarationKind(node.kind);\n}\nfunction isStatement(node) {\n  const kind = node.kind;\n  return isStatementKindButNotDeclarationKind(kind) || isDeclarationStatementKind(kind) || isBlockStatement(node);\n}\nfunction isBlockStatement(node) {\n  if (node.kind !== 242 /* Block */) return false;\n  if (node.parent !== void 0) {\n    if (node.parent.kind === 259 /* TryStatement */ || node.parent.kind === 300 /* CatchClause */) {\n      return false;\n    }\n  }\n  return !isFunctionBlock(node);\n}\nfunction isStatementOrBlock(node) {\n  const kind = node.kind;\n  return isStatementKindButNotDeclarationKind(kind) || isDeclarationStatementKind(kind) || kind === 242 /* Block */;\n}\nfunction isModuleReference(node) {\n  const kind = node.kind;\n  return kind === 284 /* ExternalModuleReference */ || kind === 167 /* QualifiedName */ || kind === 80 /* Identifier */;\n}\nfunction isJsxTagNameExpression(node) {\n  const kind = node.kind;\n  return kind === 110 /* ThisKeyword */ || kind === 80 /* Identifier */ || kind === 212 /* PropertyAccessExpression */ || kind === 296 /* JsxNamespacedName */;\n}\nfunction isJsxChild(node) {\n  const kind = node.kind;\n  return kind === 285 /* JsxElement */ || kind === 295 /* JsxExpression */ || kind === 286 /* JsxSelfClosingElement */ || kind === 12 /* JsxText */ || kind === 289 /* JsxFragment */;\n}\nfunction isJsxAttributeLike(node) {\n  const kind = node.kind;\n  return kind === 292 /* JsxAttribute */ || kind === 294 /* JsxSpreadAttribute */;\n}\nfunction isStringLiteralOrJsxExpression(node) {\n  const kind = node.kind;\n  return kind === 11 /* StringLiteral */ || kind === 295 /* JsxExpression */;\n}\nfunction isJsxOpeningLikeElement(node) {\n  const kind = node.kind;\n  return kind === 287 /* JsxOpeningElement */ || kind === 286 /* JsxSelfClosingElement */;\n}\nfunction isJsxCallLike(node) {\n  const kind = node.kind;\n  return kind === 287 /* JsxOpeningElement */ || kind === 286 /* JsxSelfClosingElement */ || kind === 290 /* JsxOpeningFragment */;\n}\nfunction isCaseOrDefaultClause(node) {\n  const kind = node.kind;\n  return kind === 297 /* CaseClause */ || kind === 298 /* DefaultClause */;\n}\nfunction isJSDocNode(node) {\n  return node.kind >= 310 /* FirstJSDocNode */ && node.kind <= 352 /* LastJSDocNode */;\n}\nfunction isJSDocCommentContainingNode(node) {\n  return node.kind === 321 /* JSDoc */ || node.kind === 320 /* JSDocNamepathType */ || node.kind === 322 /* JSDocText */ || isJSDocLinkLike(node) || isJSDocTag(node) || isJSDocTypeLiteral(node) || isJSDocSignature(node);\n}\nfunction isJSDocTag(node) {\n  return node.kind >= 328 /* FirstJSDocTagNode */ && node.kind <= 352 /* LastJSDocTagNode */;\n}\nfunction isSetAccessor(node) {\n  return node.kind === 179 /* SetAccessor */;\n}\nfunction isGetAccessor(node) {\n  return node.kind === 178 /* GetAccessor */;\n}\nfunction hasJSDocNodes(node) {\n  if (!canHaveJSDoc(node)) return false;\n  const { jsDoc } = node;\n  return !!jsDoc && jsDoc.length > 0;\n}\nfunction hasType(node) {\n  return !!node.type;\n}\nfunction hasInitializer(node) {\n  return !!node.initializer;\n}\nfunction hasOnlyExpressionInitializer(node) {\n  switch (node.kind) {\n    case 261 /* VariableDeclaration */:\n    case 170 /* Parameter */:\n    case 209 /* BindingElement */:\n    case 173 /* PropertyDeclaration */:\n    case 304 /* PropertyAssignment */:\n    case 307 /* EnumMember */:\n      return true;\n    default:\n      return false;\n  }\n}\nfunction isObjectLiteralElement(node) {\n  return node.kind === 292 /* JsxAttribute */ || node.kind === 294 /* JsxSpreadAttribute */ || isObjectLiteralElementLike(node);\n}\nfunction isTypeReferenceType(node) {\n  return node.kind === 184 /* TypeReference */ || node.kind === 234 /* ExpressionWithTypeArguments */;\n}\nvar MAX_SMI_X86 = 1073741823;\nfunction guessIndentation(lines) {\n  let indentation = MAX_SMI_X86;\n  for (const line of lines) {\n    if (!line.length) {\n      continue;\n    }\n    let i = 0;\n    for (; i < line.length && i < indentation; i++) {\n      if (!isWhiteSpaceLike(line.charCodeAt(i))) {\n        break;\n      }\n    }\n    if (i < indentation) {\n      indentation = i;\n    }\n    if (indentation === 0) {\n      return 0;\n    }\n  }\n  return indentation === MAX_SMI_X86 ? void 0 : indentation;\n}\nfunction isStringLiteralLike(node) {\n  return node.kind === 11 /* StringLiteral */ || node.kind === 15 /* NoSubstitutionTemplateLiteral */;\n}\nfunction isJSDocLinkLike(node) {\n  return node.kind === 325 /* JSDocLink */ || node.kind === 326 /* JSDocLinkCode */ || node.kind === 327 /* JSDocLinkPlain */;\n}\nfunction hasRestParameter(s) {\n  const last2 = lastOrUndefined(s.parameters);\n  return !!last2 && isRestParameter(last2);\n}\nfunction isRestParameter(node) {\n  const type = isJSDocParameterTag(node) ? node.typeExpression && node.typeExpression.type : node.type;\n  return node.dotDotDotToken !== void 0 || !!type && type.kind === 319 /* JSDocVariadicType */;\n}\nfunction hasInternalAnnotation(range, sourceFile) {\n  const comment = sourceFile.text.substring(range.pos, range.end);\n  return comment.includes(\"@internal\");\n}\nfunction isInternalDeclaration(node, sourceFile) {\n  sourceFile ?? (sourceFile = getSourceFileOfNode(node));\n  const parseTreeNode = getParseTreeNode(node);\n  if (parseTreeNode && parseTreeNode.kind === 170 /* Parameter */) {\n    const paramIdx = parseTreeNode.parent.parameters.indexOf(parseTreeNode);\n    const previousSibling = paramIdx > 0 ? parseTreeNode.parent.parameters[paramIdx - 1] : void 0;\n    const text = sourceFile.text;\n    const commentRanges = previousSibling ? concatenate(\n      // to handle\n      // ... parameters, /** @internal */\n      // public param: string\n      getTrailingCommentRanges(text, skipTrivia(\n        text,\n        previousSibling.end + 1,\n        /*stopAfterLineBreak*/\n        false,\n        /*stopAtComments*/\n        true\n      )),\n      getLeadingCommentRanges(text, node.pos)\n    ) : getTrailingCommentRanges(text, skipTrivia(\n      text,\n      node.pos,\n      /*stopAfterLineBreak*/\n      false,\n      /*stopAtComments*/\n      true\n    ));\n    return some(commentRanges) && hasInternalAnnotation(last(commentRanges), sourceFile);\n  }\n  const leadingCommentRanges = parseTreeNode && getLeadingCommentRangesOfNode(parseTreeNode, sourceFile);\n  return !!forEach(leadingCommentRanges, (range) => {\n    return hasInternalAnnotation(range, sourceFile);\n  });\n}\n\n// src/compiler/utilities.ts\nvar resolvingEmptyArray = [];\nvar externalHelpersModuleNameText = \"tslib\";\nvar defaultMaximumTruncationLength = 160;\nvar noTruncationMaximumTruncationLength = 1e6;\nvar defaultHoverMaximumTruncationLength = 500;\nfunction getDeclarationOfKind(symbol, kind) {\n  const declarations = symbol.declarations;\n  if (declarations) {\n    for (const declaration of declarations) {\n      if (declaration.kind === kind) {\n        return declaration;\n      }\n    }\n  }\n  return void 0;\n}\nfunction getDeclarationsOfKind(symbol, kind) {\n  return filter(symbol.declarations || emptyArray, (d) => d.kind === kind);\n}\nfunction createSymbolTable(symbols) {\n  const result = /* @__PURE__ */ new Map();\n  if (symbols) {\n    for (const symbol of symbols) {\n      result.set(symbol.escapedName, symbol);\n    }\n  }\n  return result;\n}\nfunction isTransientSymbol(symbol) {\n  return (symbol.flags & 33554432 /* Transient */) !== 0;\n}\nfunction isExternalModuleSymbol(moduleSymbol) {\n  return !!(moduleSymbol.flags & 1536 /* Module */) && moduleSymbol.escapedName.charCodeAt(0) === 34 /* doubleQuote */;\n}\nvar stringWriter = createSingleLineStringWriter();\nfunction createSingleLineStringWriter() {\n  var str = \"\";\n  const writeText = (text) => str += text;\n  return {\n    getText: () => str,\n    write: writeText,\n    rawWrite: writeText,\n    writeKeyword: writeText,\n    writeOperator: writeText,\n    writePunctuation: writeText,\n    writeSpace: writeText,\n    writeStringLiteral: writeText,\n    writeLiteral: writeText,\n    writeParameter: writeText,\n    writeProperty: writeText,\n    writeSymbol: (s, _) => writeText(s),\n    writeTrailingSemicolon: writeText,\n    writeComment: writeText,\n    getTextPos: () => str.length,\n    getLine: () => 0,\n    getColumn: () => 0,\n    getIndent: () => 0,\n    isAtStartOfLine: () => false,\n    hasTrailingComment: () => false,\n    hasTrailingWhitespace: () => !!str.length && isWhiteSpaceLike(str.charCodeAt(str.length - 1)),\n    // Completely ignore indentation for string writers.  And map newlines to\n    // a single space.\n    writeLine: () => str += \" \",\n    increaseIndent: noop,\n    decreaseIndent: noop,\n    clear: () => str = \"\"\n  };\n}\nfunction changesAffectModuleResolution(oldOptions, newOptions) {\n  return oldOptions.configFilePath !== newOptions.configFilePath || optionsHaveModuleResolutionChanges(oldOptions, newOptions);\n}\nfunction optionsHaveModuleResolutionChanges(oldOptions, newOptions) {\n  return optionsHaveChanges(oldOptions, newOptions, moduleResolutionOptionDeclarations);\n}\nfunction changesAffectingProgramStructure(oldOptions, newOptions) {\n  return optionsHaveChanges(oldOptions, newOptions, optionsAffectingProgramStructure);\n}\nfunction optionsHaveChanges(oldOptions, newOptions, optionDeclarations2) {\n  return oldOptions !== newOptions && optionDeclarations2.some((o) => !isJsonEqual(getCompilerOptionValue(oldOptions, o), getCompilerOptionValue(newOptions, o)));\n}\nfunction forEachAncestor(node, callback) {\n  while (true) {\n    const res = callback(node);\n    if (res === \"quit\") return void 0;\n    if (res !== void 0) return res;\n    if (isSourceFile(node)) return void 0;\n    node = node.parent;\n  }\n}\nfunction forEachEntry(map2, callback) {\n  const iterator = map2.entries();\n  for (const [key, value] of iterator) {\n    const result = callback(value, key);\n    if (result) {\n      return result;\n    }\n  }\n  return void 0;\n}\nfunction forEachKey(map2, callback) {\n  const iterator = map2.keys();\n  for (const key of iterator) {\n    const result = callback(key);\n    if (result) {\n      return result;\n    }\n  }\n  return void 0;\n}\nfunction copyEntries(source, target) {\n  source.forEach((value, key) => {\n    target.set(key, value);\n  });\n}\nfunction usingSingleLineStringWriter(action) {\n  const oldString = stringWriter.getText();\n  try {\n    action(stringWriter);\n    return stringWriter.getText();\n  } finally {\n    stringWriter.clear();\n    stringWriter.writeKeyword(oldString);\n  }\n}\nfunction getFullWidth(node) {\n  return node.end - node.pos;\n}\nfunction projectReferenceIsEqualTo(oldRef, newRef) {\n  return oldRef.path === newRef.path && !oldRef.prepend === !newRef.prepend && !oldRef.circular === !newRef.circular;\n}\nfunction moduleResolutionIsEqualTo(oldResolution, newResolution) {\n  return oldResolution === newResolution || oldResolution.resolvedModule === newResolution.resolvedModule || !!oldResolution.resolvedModule && !!newResolution.resolvedModule && oldResolution.resolvedModule.isExternalLibraryImport === newResolution.resolvedModule.isExternalLibraryImport && oldResolution.resolvedModule.extension === newResolution.resolvedModule.extension && oldResolution.resolvedModule.resolvedFileName === newResolution.resolvedModule.resolvedFileName && oldResolution.resolvedModule.originalPath === newResolution.resolvedModule.originalPath && packageIdIsEqual(oldResolution.resolvedModule.packageId, newResolution.resolvedModule.packageId) && oldResolution.alternateResult === newResolution.alternateResult;\n}\nfunction getResolvedModuleFromResolution(resolution) {\n  return resolution.resolvedModule;\n}\nfunction getResolvedTypeReferenceDirectiveFromResolution(resolution) {\n  return resolution.resolvedTypeReferenceDirective;\n}\nfunction createModuleNotFoundChain(sourceFile, host, moduleReference, mode, packageName) {\n  var _a;\n  const alternateResult = (_a = host.getResolvedModule(sourceFile, moduleReference, mode)) == null ? void 0 : _a.alternateResult;\n  const alternateResultMessage = alternateResult && (getEmitModuleResolutionKind(host.getCompilerOptions()) === 2 /* Node10 */ ? [Diagnostics.There_are_types_at_0_but_this_result_could_not_be_resolved_under_your_current_moduleResolution_setting_Consider_updating_to_node16_nodenext_or_bundler, [alternateResult]] : [\n    Diagnostics.There_are_types_at_0_but_this_result_could_not_be_resolved_when_respecting_package_json_exports_The_1_library_may_need_to_update_its_package_json_or_typings,\n    [alternateResult, alternateResult.includes(nodeModulesPathPart + \"@types/\") ? `@types/${mangleScopedPackageName(packageName)}` : packageName]\n  ]);\n  const result = alternateResultMessage ? chainDiagnosticMessages(\n    /*details*/\n    void 0,\n    alternateResultMessage[0],\n    ...alternateResultMessage[1]\n  ) : host.typesPackageExists(packageName) ? chainDiagnosticMessages(\n    /*details*/\n    void 0,\n    Diagnostics.If_the_0_package_actually_exposes_this_module_consider_sending_a_pull_request_to_amend_https_Colon_Slash_Slashgithub_com_SlashDefinitelyTyped_SlashDefinitelyTyped_Slashtree_Slashmaster_Slashtypes_Slash_1,\n    packageName,\n    mangleScopedPackageName(packageName)\n  ) : host.packageBundlesTypes(packageName) ? chainDiagnosticMessages(\n    /*details*/\n    void 0,\n    Diagnostics.If_the_0_package_actually_exposes_this_module_try_adding_a_new_declaration_d_ts_file_containing_declare_module_1,\n    packageName,\n    moduleReference\n  ) : chainDiagnosticMessages(\n    /*details*/\n    void 0,\n    Diagnostics.Try_npm_i_save_dev_types_Slash_1_if_it_exists_or_add_a_new_declaration_d_ts_file_containing_declare_module_0,\n    moduleReference,\n    mangleScopedPackageName(packageName)\n  );\n  if (result) result.repopulateInfo = () => ({ moduleReference, mode, packageName: packageName === moduleReference ? void 0 : packageName });\n  return result;\n}\nfunction createModeMismatchDetails(currentSourceFile) {\n  const ext = tryGetExtensionFromPath2(currentSourceFile.fileName);\n  const scope = currentSourceFile.packageJsonScope;\n  const targetExt = ext === \".ts\" /* Ts */ ? \".mts\" /* Mts */ : ext === \".js\" /* Js */ ? \".mjs\" /* Mjs */ : void 0;\n  const result = scope && !scope.contents.packageJsonContent.type ? targetExt ? chainDiagnosticMessages(\n    /*details*/\n    void 0,\n    Diagnostics.To_convert_this_file_to_an_ECMAScript_module_change_its_file_extension_to_0_or_add_the_field_type_Colon_module_to_1,\n    targetExt,\n    combinePaths(scope.packageDirectory, \"package.json\")\n  ) : chainDiagnosticMessages(\n    /*details*/\n    void 0,\n    Diagnostics.To_convert_this_file_to_an_ECMAScript_module_add_the_field_type_Colon_module_to_0,\n    combinePaths(scope.packageDirectory, \"package.json\")\n  ) : targetExt ? chainDiagnosticMessages(\n    /*details*/\n    void 0,\n    Diagnostics.To_convert_this_file_to_an_ECMAScript_module_change_its_file_extension_to_0_or_create_a_local_package_json_file_with_type_Colon_module,\n    targetExt\n  ) : chainDiagnosticMessages(\n    /*details*/\n    void 0,\n    Diagnostics.To_convert_this_file_to_an_ECMAScript_module_create_a_local_package_json_file_with_type_Colon_module\n  );\n  result.repopulateInfo = () => true;\n  return result;\n}\nfunction packageIdIsEqual(a, b) {\n  return a === b || !!a && !!b && a.name === b.name && a.subModuleName === b.subModuleName && a.version === b.version && a.peerDependencies === b.peerDependencies;\n}\nfunction packageIdToPackageName({ name, subModuleName }) {\n  return subModuleName ? `${name}/${subModuleName}` : name;\n}\nfunction packageIdToString(packageId) {\n  return `${packageIdToPackageName(packageId)}@${packageId.version}${packageId.peerDependencies ?? \"\"}`;\n}\nfunction typeDirectiveIsEqualTo(oldResolution, newResolution) {\n  return oldResolution === newResolution || oldResolution.resolvedTypeReferenceDirective === newResolution.resolvedTypeReferenceDirective || !!oldResolution.resolvedTypeReferenceDirective && !!newResolution.resolvedTypeReferenceDirective && oldResolution.resolvedTypeReferenceDirective.resolvedFileName === newResolution.resolvedTypeReferenceDirective.resolvedFileName && !!oldResolution.resolvedTypeReferenceDirective.primary === !!newResolution.resolvedTypeReferenceDirective.primary && oldResolution.resolvedTypeReferenceDirective.originalPath === newResolution.resolvedTypeReferenceDirective.originalPath;\n}\nfunction hasChangesInResolutions(names, newResolutions, getOldResolution, comparer) {\n  Debug.assert(names.length === newResolutions.length);\n  for (let i = 0; i < names.length; i++) {\n    const newResolution = newResolutions[i];\n    const entry = names[i];\n    const oldResolution = getOldResolution(entry);\n    const changed = oldResolution ? !newResolution || !comparer(oldResolution, newResolution) : newResolution;\n    if (changed) {\n      return true;\n    }\n  }\n  return false;\n}\nfunction containsParseError(node) {\n  aggregateChildData(node);\n  return (node.flags & 1048576 /* ThisNodeOrAnySubNodesHasError */) !== 0;\n}\nfunction aggregateChildData(node) {\n  if (!(node.flags & 2097152 /* HasAggregatedChildData */)) {\n    const thisNodeOrAnySubNodesHasError = (node.flags & 262144 /* ThisNodeHasError */) !== 0 || forEachChild(node, containsParseError);\n    if (thisNodeOrAnySubNodesHasError) {\n      node.flags |= 1048576 /* ThisNodeOrAnySubNodesHasError */;\n    }\n    node.flags |= 2097152 /* HasAggregatedChildData */;\n  }\n}\nfunction getSourceFileOfNode(node) {\n  while (node && node.kind !== 308 /* SourceFile */) {\n    node = node.parent;\n  }\n  return node;\n}\nfunction getSourceFileOfModule(module2) {\n  return getSourceFileOfNode(module2.valueDeclaration || getNonAugmentationDeclaration(module2));\n}\nfunction isPlainJsFile(file, checkJs) {\n  return !!file && (file.scriptKind === 1 /* JS */ || file.scriptKind === 2 /* JSX */) && !file.checkJsDirective && checkJs === void 0;\n}\nfunction isStatementWithLocals(node) {\n  switch (node.kind) {\n    case 242 /* Block */:\n    case 270 /* CaseBlock */:\n    case 249 /* ForStatement */:\n    case 250 /* ForInStatement */:\n    case 251 /* ForOfStatement */:\n      return true;\n  }\n  return false;\n}\nfunction getStartPositionOfLine(line, sourceFile) {\n  Debug.assert(line >= 0);\n  return getLineStarts(sourceFile)[line];\n}\nfunction nodePosToString(node) {\n  const file = getSourceFileOfNode(node);\n  const loc = getLineAndCharacterOfPosition(file, node.pos);\n  return `${file.fileName}(${loc.line + 1},${loc.character + 1})`;\n}\nfunction getEndLinePosition(line, sourceFile) {\n  Debug.assert(line >= 0);\n  const lineStarts = getLineStarts(sourceFile);\n  const lineIndex = line;\n  const sourceText = sourceFile.text;\n  if (lineIndex + 1 === lineStarts.length) {\n    return sourceText.length - 1;\n  } else {\n    const start = lineStarts[lineIndex];\n    let pos = lineStarts[lineIndex + 1] - 1;\n    Debug.assert(isLineBreak(sourceText.charCodeAt(pos)));\n    while (start <= pos && isLineBreak(sourceText.charCodeAt(pos))) {\n      pos--;\n    }\n    return pos;\n  }\n}\nfunction isFileLevelUniqueName(sourceFile, name, hasGlobalName) {\n  return !(hasGlobalName && hasGlobalName(name)) && !sourceFile.identifiers.has(name);\n}\nfunction nodeIsMissing(node) {\n  if (node === void 0) {\n    return true;\n  }\n  return node.pos === node.end && node.pos >= 0 && node.kind !== 1 /* EndOfFileToken */;\n}\nfunction nodeIsPresent(node) {\n  return !nodeIsMissing(node);\n}\nfunction isGrammarError(parent2, child) {\n  if (isTypeParameterDeclaration(parent2)) return child === parent2.expression;\n  if (isClassStaticBlockDeclaration(parent2)) return child === parent2.modifiers;\n  if (isPropertySignature(parent2)) return child === parent2.initializer;\n  if (isPropertyDeclaration(parent2)) return child === parent2.questionToken && isAutoAccessorPropertyDeclaration(parent2);\n  if (isPropertyAssignment(parent2)) return child === parent2.modifiers || child === parent2.questionToken || child === parent2.exclamationToken || isGrammarErrorElement(parent2.modifiers, child, isModifierLike);\n  if (isShorthandPropertyAssignment(parent2)) return child === parent2.equalsToken || child === parent2.modifiers || child === parent2.questionToken || child === parent2.exclamationToken || isGrammarErrorElement(parent2.modifiers, child, isModifierLike);\n  if (isMethodDeclaration(parent2)) return child === parent2.exclamationToken;\n  if (isConstructorDeclaration(parent2)) return child === parent2.typeParameters || child === parent2.type || isGrammarErrorElement(parent2.typeParameters, child, isTypeParameterDeclaration);\n  if (isGetAccessorDeclaration(parent2)) return child === parent2.typeParameters || isGrammarErrorElement(parent2.typeParameters, child, isTypeParameterDeclaration);\n  if (isSetAccessorDeclaration(parent2)) return child === parent2.typeParameters || child === parent2.type || isGrammarErrorElement(parent2.typeParameters, child, isTypeParameterDeclaration);\n  if (isNamespaceExportDeclaration(parent2)) return child === parent2.modifiers || isGrammarErrorElement(parent2.modifiers, child, isModifierLike);\n  return false;\n}\nfunction isGrammarErrorElement(nodeArray, child, isElement) {\n  if (!nodeArray || isArray(child) || !isElement(child)) return false;\n  return contains(nodeArray, child);\n}\nfunction insertStatementsAfterPrologue(to, from, isPrologueDirective2) {\n  if (from === void 0 || from.length === 0) return to;\n  let statementIndex = 0;\n  for (; statementIndex < to.length; ++statementIndex) {\n    if (!isPrologueDirective2(to[statementIndex])) {\n      break;\n    }\n  }\n  to.splice(statementIndex, 0, ...from);\n  return to;\n}\nfunction insertStatementAfterPrologue(to, statement, isPrologueDirective2) {\n  if (statement === void 0) return to;\n  let statementIndex = 0;\n  for (; statementIndex < to.length; ++statementIndex) {\n    if (!isPrologueDirective2(to[statementIndex])) {\n      break;\n    }\n  }\n  to.splice(statementIndex, 0, statement);\n  return to;\n}\nfunction isAnyPrologueDirective(node) {\n  return isPrologueDirective(node) || !!(getEmitFlags(node) & 2097152 /* CustomPrologue */);\n}\nfunction insertStatementsAfterStandardPrologue(to, from) {\n  return insertStatementsAfterPrologue(to, from, isPrologueDirective);\n}\nfunction insertStatementsAfterCustomPrologue(to, from) {\n  return insertStatementsAfterPrologue(to, from, isAnyPrologueDirective);\n}\nfunction insertStatementAfterStandardPrologue(to, statement) {\n  return insertStatementAfterPrologue(to, statement, isPrologueDirective);\n}\nfunction insertStatementAfterCustomPrologue(to, statement) {\n  return insertStatementAfterPrologue(to, statement, isAnyPrologueDirective);\n}\nfunction isRecognizedTripleSlashComment(text, commentPos, commentEnd) {\n  if (text.charCodeAt(commentPos + 1) === 47 /* slash */ && commentPos + 2 < commentEnd && text.charCodeAt(commentPos + 2) === 47 /* slash */) {\n    const textSubStr = text.substring(commentPos, commentEnd);\n    return fullTripleSlashReferencePathRegEx.test(textSubStr) || fullTripleSlashAMDReferencePathRegEx.test(textSubStr) || fullTripleSlashAMDModuleRegEx.test(textSubStr) || fullTripleSlashReferenceTypeReferenceDirectiveRegEx.test(textSubStr) || fullTripleSlashLibReferenceRegEx.test(textSubStr) || defaultLibReferenceRegEx.test(textSubStr) ? true : false;\n  }\n  return false;\n}\nfunction isPinnedComment(text, start) {\n  return text.charCodeAt(start + 1) === 42 /* asterisk */ && text.charCodeAt(start + 2) === 33 /* exclamation */;\n}\nfunction createCommentDirectivesMap(sourceFile, commentDirectives) {\n  const directivesByLine = new Map(\n    commentDirectives.map((commentDirective) => [\n      `${getLineAndCharacterOfPosition(sourceFile, commentDirective.range.end).line}`,\n      commentDirective\n    ])\n  );\n  const usedLines = /* @__PURE__ */ new Map();\n  return { getUnusedExpectations, markUsed };\n  function getUnusedExpectations() {\n    return arrayFrom(directivesByLine.entries()).filter(([line, directive]) => directive.type === 0 /* ExpectError */ && !usedLines.get(line)).map(([_, directive]) => directive);\n  }\n  function markUsed(line) {\n    if (!directivesByLine.has(`${line}`)) {\n      return false;\n    }\n    usedLines.set(`${line}`, true);\n    return true;\n  }\n}\nfunction getTokenPosOfNode(node, sourceFile, includeJsDoc) {\n  if (nodeIsMissing(node)) {\n    return node.pos;\n  }\n  if (isJSDocNode(node) || node.kind === 12 /* JsxText */) {\n    return skipTrivia(\n      (sourceFile ?? getSourceFileOfNode(node)).text,\n      node.pos,\n      /*stopAfterLineBreak*/\n      false,\n      /*stopAtComments*/\n      true\n    );\n  }\n  if (includeJsDoc && hasJSDocNodes(node)) {\n    return getTokenPosOfNode(node.jsDoc[0], sourceFile);\n  }\n  if (node.kind === 353 /* SyntaxList */) {\n    sourceFile ?? (sourceFile = getSourceFileOfNode(node));\n    const first2 = firstOrUndefined(getNodeChildren(node, sourceFile));\n    if (first2) {\n      return getTokenPosOfNode(first2, sourceFile, includeJsDoc);\n    }\n  }\n  return skipTrivia(\n    (sourceFile ?? getSourceFileOfNode(node)).text,\n    node.pos,\n    /*stopAfterLineBreak*/\n    false,\n    /*stopAtComments*/\n    false,\n    isInJSDoc(node)\n  );\n}\nfunction getNonDecoratorTokenPosOfNode(node, sourceFile) {\n  const lastDecorator = !nodeIsMissing(node) && canHaveModifiers(node) ? findLast(node.modifiers, isDecorator) : void 0;\n  if (!lastDecorator) {\n    return getTokenPosOfNode(node, sourceFile);\n  }\n  return skipTrivia((sourceFile || getSourceFileOfNode(node)).text, lastDecorator.end);\n}\nfunction getNonModifierTokenPosOfNode(node, sourceFile) {\n  const lastModifier = !nodeIsMissing(node) && canHaveModifiers(node) && node.modifiers ? last(node.modifiers) : void 0;\n  if (!lastModifier) {\n    return getTokenPosOfNode(node, sourceFile);\n  }\n  return skipTrivia((sourceFile || getSourceFileOfNode(node)).text, lastModifier.end);\n}\nfunction getSourceTextOfNodeFromSourceFile(sourceFile, node, includeTrivia = false) {\n  return getTextOfNodeFromSourceText(sourceFile.text, node, includeTrivia);\n}\nfunction isJSDocTypeExpressionOrChild(node) {\n  return !!findAncestor(node, isJSDocTypeExpression);\n}\nfunction isExportNamespaceAsDefaultDeclaration(node) {\n  return !!(isExportDeclaration(node) && node.exportClause && isNamespaceExport(node.exportClause) && moduleExportNameIsDefault(node.exportClause.name));\n}\nfunction moduleExportNameTextUnescaped(node) {\n  return node.kind === 11 /* StringLiteral */ ? node.text : unescapeLeadingUnderscores(node.escapedText);\n}\nfunction moduleExportNameTextEscaped(node) {\n  return node.kind === 11 /* StringLiteral */ ? escapeLeadingUnderscores(node.text) : node.escapedText;\n}\nfunction moduleExportNameIsDefault(node) {\n  return (node.kind === 11 /* StringLiteral */ ? node.text : node.escapedText) === \"default\" /* Default */;\n}\nfunction getTextOfNodeFromSourceText(sourceText, node, includeTrivia = false) {\n  if (nodeIsMissing(node)) {\n    return \"\";\n  }\n  let text = sourceText.substring(includeTrivia ? node.pos : skipTrivia(sourceText, node.pos), node.end);\n  if (isJSDocTypeExpressionOrChild(node)) {\n    text = text.split(/\\r\\n|\\n|\\r/).map((line) => line.replace(/^\\s*\\*/, \"\").trimStart()).join(\"\\n\");\n  }\n  return text;\n}\nfunction getTextOfNode(node, includeTrivia = false) {\n  return getSourceTextOfNodeFromSourceFile(getSourceFileOfNode(node), node, includeTrivia);\n}\nfunction getPos(range) {\n  return range.pos;\n}\nfunction indexOfNode(nodeArray, node) {\n  return binarySearch(nodeArray, node, getPos, compareValues);\n}\nfunction getEmitFlags(node) {\n  const emitNode = node.emitNode;\n  return emitNode && emitNode.flags || 0;\n}\nfunction getInternalEmitFlags(node) {\n  const emitNode = node.emitNode;\n  return emitNode && emitNode.internalFlags || 0;\n}\nvar getScriptTargetFeatures = /* @__PURE__ */ memoize(\n  () => new Map(Object.entries({\n    Array: new Map(Object.entries({\n      es2015: [\n        \"find\",\n        \"findIndex\",\n        \"fill\",\n        \"copyWithin\",\n        \"entries\",\n        \"keys\",\n        \"values\"\n      ],\n      es2016: [\n        \"includes\"\n      ],\n      es2019: [\n        \"flat\",\n        \"flatMap\"\n      ],\n      es2022: [\n        \"at\"\n      ],\n      es2023: [\n        \"findLastIndex\",\n        \"findLast\",\n        \"toReversed\",\n        \"toSorted\",\n        \"toSpliced\",\n        \"with\"\n      ]\n    })),\n    Iterator: new Map(Object.entries({\n      es2015: emptyArray\n    })),\n    AsyncIterator: new Map(Object.entries({\n      es2015: emptyArray\n    })),\n    ArrayBuffer: new Map(Object.entries({\n      es2024: [\n        \"maxByteLength\",\n        \"resizable\",\n        \"resize\",\n        \"detached\",\n        \"transfer\",\n        \"transferToFixedLength\"\n      ]\n    })),\n    Atomics: new Map(Object.entries({\n      es2017: [\n        \"add\",\n        \"and\",\n        \"compareExchange\",\n        \"exchange\",\n        \"isLockFree\",\n        \"load\",\n        \"or\",\n        \"store\",\n        \"sub\",\n        \"wait\",\n        \"notify\",\n        \"xor\"\n      ],\n      es2024: [\n        \"waitAsync\"\n      ],\n      esnext: [\n        \"pause\"\n      ]\n    })),\n    SharedArrayBuffer: new Map(Object.entries({\n      es2017: [\n        \"byteLength\",\n        \"slice\"\n      ],\n      es2024: [\n        \"growable\",\n        \"maxByteLength\",\n        \"grow\"\n      ]\n    })),\n    AsyncIterable: new Map(Object.entries({\n      es2018: emptyArray\n    })),\n    AsyncIterableIterator: new Map(Object.entries({\n      es2018: emptyArray\n    })),\n    AsyncGenerator: new Map(Object.entries({\n      es2018: emptyArray\n    })),\n    AsyncGeneratorFunction: new Map(Object.entries({\n      es2018: emptyArray\n    })),\n    RegExp: new Map(Object.entries({\n      es2015: [\n        \"flags\",\n        \"sticky\",\n        \"unicode\"\n      ],\n      es2018: [\n        \"dotAll\"\n      ],\n      es2024: [\n        \"unicodeSets\"\n      ]\n    })),\n    Reflect: new Map(Object.entries({\n      es2015: [\n        \"apply\",\n        \"construct\",\n        \"defineProperty\",\n        \"deleteProperty\",\n        \"get\",\n        \"getOwnPropertyDescriptor\",\n        \"getPrototypeOf\",\n        \"has\",\n        \"isExtensible\",\n        \"ownKeys\",\n        \"preventExtensions\",\n        \"set\",\n        \"setPrototypeOf\"\n      ]\n    })),\n    ArrayConstructor: new Map(Object.entries({\n      es2015: [\n        \"from\",\n        \"of\"\n      ],\n      esnext: [\n        \"fromAsync\"\n      ]\n    })),\n    ObjectConstructor: new Map(Object.entries({\n      es2015: [\n        \"assign\",\n        \"getOwnPropertySymbols\",\n        \"keys\",\n        \"is\",\n        \"setPrototypeOf\"\n      ],\n      es2017: [\n        \"values\",\n        \"entries\",\n        \"getOwnPropertyDescriptors\"\n      ],\n      es2019: [\n        \"fromEntries\"\n      ],\n      es2022: [\n        \"hasOwn\"\n      ],\n      es2024: [\n        \"groupBy\"\n      ]\n    })),\n    NumberConstructor: new Map(Object.entries({\n      es2015: [\n        \"isFinite\",\n        \"isInteger\",\n        \"isNaN\",\n        \"isSafeInteger\",\n        \"parseFloat\",\n        \"parseInt\"\n      ]\n    })),\n    Math: new Map(Object.entries({\n      es2015: [\n        \"clz32\",\n        \"imul\",\n        \"sign\",\n        \"log10\",\n        \"log2\",\n        \"log1p\",\n        \"expm1\",\n        \"cosh\",\n        \"sinh\",\n        \"tanh\",\n        \"acosh\",\n        \"asinh\",\n        \"atanh\",\n        \"hypot\",\n        \"trunc\",\n        \"fround\",\n        \"cbrt\"\n      ],\n      esnext: [\n        \"f16round\"\n      ]\n    })),\n    Map: new Map(Object.entries({\n      es2015: [\n        \"entries\",\n        \"keys\",\n        \"values\"\n      ]\n    })),\n    MapConstructor: new Map(Object.entries({\n      es2024: [\n        \"groupBy\"\n      ]\n    })),\n    Set: new Map(Object.entries({\n      es2015: [\n        \"entries\",\n        \"keys\",\n        \"values\"\n      ],\n      esnext: [\n        \"union\",\n        \"intersection\",\n        \"difference\",\n        \"symmetricDifference\",\n        \"isSubsetOf\",\n        \"isSupersetOf\",\n        \"isDisjointFrom\"\n      ]\n    })),\n    PromiseConstructor: new Map(Object.entries({\n      es2015: [\n        \"all\",\n        \"race\",\n        \"reject\",\n        \"resolve\"\n      ],\n      es2020: [\n        \"allSettled\"\n      ],\n      es2021: [\n        \"any\"\n      ],\n      es2024: [\n        \"withResolvers\"\n      ]\n    })),\n    Symbol: new Map(Object.entries({\n      es2015: [\n        \"for\",\n        \"keyFor\"\n      ],\n      es2019: [\n        \"description\"\n      ]\n    })),\n    WeakMap: new Map(Object.entries({\n      es2015: [\n        \"entries\",\n        \"keys\",\n        \"values\"\n      ]\n    })),\n    WeakSet: new Map(Object.entries({\n      es2015: [\n        \"entries\",\n        \"keys\",\n        \"values\"\n      ]\n    })),\n    String: new Map(Object.entries({\n      es2015: [\n        \"codePointAt\",\n        \"includes\",\n        \"endsWith\",\n        \"normalize\",\n        \"repeat\",\n        \"startsWith\",\n        \"anchor\",\n        \"big\",\n        \"blink\",\n        \"bold\",\n        \"fixed\",\n        \"fontcolor\",\n        \"fontsize\",\n        \"italics\",\n        \"link\",\n        \"small\",\n        \"strike\",\n        \"sub\",\n        \"sup\"\n      ],\n      es2017: [\n        \"padStart\",\n        \"padEnd\"\n      ],\n      es2019: [\n        \"trimStart\",\n        \"trimEnd\",\n        \"trimLeft\",\n        \"trimRight\"\n      ],\n      es2020: [\n        \"matchAll\"\n      ],\n      es2021: [\n        \"replaceAll\"\n      ],\n      es2022: [\n        \"at\"\n      ],\n      es2024: [\n        \"isWellFormed\",\n        \"toWellFormed\"\n      ]\n    })),\n    StringConstructor: new Map(Object.entries({\n      es2015: [\n        \"fromCodePoint\",\n        \"raw\"\n      ]\n    })),\n    DateTimeFormat: new Map(Object.entries({\n      es2017: [\n        \"formatToParts\"\n      ]\n    })),\n    Promise: new Map(Object.entries({\n      es2015: emptyArray,\n      es2018: [\n        \"finally\"\n      ]\n    })),\n    RegExpMatchArray: new Map(Object.entries({\n      es2018: [\n        \"groups\"\n      ]\n    })),\n    RegExpExecArray: new Map(Object.entries({\n      es2018: [\n        \"groups\"\n      ]\n    })),\n    Intl: new Map(Object.entries({\n      es2018: [\n        \"PluralRules\"\n      ]\n    })),\n    NumberFormat: new Map(Object.entries({\n      es2018: [\n        \"formatToParts\"\n      ]\n    })),\n    SymbolConstructor: new Map(Object.entries({\n      es2020: [\n        \"matchAll\"\n      ],\n      esnext: [\n        \"metadata\",\n        \"dispose\",\n        \"asyncDispose\"\n      ]\n    })),\n    DataView: new Map(Object.entries({\n      es2020: [\n        \"setBigInt64\",\n        \"setBigUint64\",\n        \"getBigInt64\",\n        \"getBigUint64\"\n      ],\n      esnext: [\n        \"setFloat16\",\n        \"getFloat16\"\n      ]\n    })),\n    BigInt: new Map(Object.entries({\n      es2020: emptyArray\n    })),\n    RelativeTimeFormat: new Map(Object.entries({\n      es2020: [\n        \"format\",\n        \"formatToParts\",\n        \"resolvedOptions\"\n      ]\n    })),\n    Int8Array: new Map(Object.entries({\n      es2022: [\n        \"at\"\n      ],\n      es2023: [\n        \"findLastIndex\",\n        \"findLast\",\n        \"toReversed\",\n        \"toSorted\",\n        \"toSpliced\",\n        \"with\"\n      ]\n    })),\n    Uint8Array: new Map(Object.entries({\n      es2022: [\n        \"at\"\n      ],\n      es2023: [\n        \"findLastIndex\",\n        \"findLast\",\n        \"toReversed\",\n        \"toSorted\",\n        \"toSpliced\",\n        \"with\"\n      ]\n    })),\n    Uint8ClampedArray: new Map(Object.entries({\n      es2022: [\n        \"at\"\n      ],\n      es2023: [\n        \"findLastIndex\",\n        \"findLast\",\n        \"toReversed\",\n        \"toSorted\",\n        \"toSpliced\",\n        \"with\"\n      ]\n    })),\n    Int16Array: new Map(Object.entries({\n      es2022: [\n        \"at\"\n      ],\n      es2023: [\n        \"findLastIndex\",\n        \"findLast\",\n        \"toReversed\",\n        \"toSorted\",\n        \"toSpliced\",\n        \"with\"\n      ]\n    })),\n    Uint16Array: new Map(Object.entries({\n      es2022: [\n        \"at\"\n      ],\n      es2023: [\n        \"findLastIndex\",\n        \"findLast\",\n        \"toReversed\",\n        \"toSorted\",\n        \"toSpliced\",\n        \"with\"\n      ]\n    })),\n    Int32Array: new Map(Object.entries({\n      es2022: [\n        \"at\"\n      ],\n      es2023: [\n        \"findLastIndex\",\n        \"findLast\",\n        \"toReversed\",\n        \"toSorted\",\n        \"toSpliced\",\n        \"with\"\n      ]\n    })),\n    Uint32Array: new Map(Object.entries({\n      es2022: [\n        \"at\"\n      ],\n      es2023: [\n        \"findLastIndex\",\n        \"findLast\",\n        \"toReversed\",\n        \"toSorted\",\n        \"toSpliced\",\n        \"with\"\n      ]\n    })),\n    Float16Array: new Map(Object.entries({\n      esnext: emptyArray\n    })),\n    Float32Array: new Map(Object.entries({\n      es2022: [\n        \"at\"\n      ],\n      es2023: [\n        \"findLastIndex\",\n        \"findLast\",\n        \"toReversed\",\n        \"toSorted\",\n        \"toSpliced\",\n        \"with\"\n      ]\n    })),\n    Float64Array: new Map(Object.entries({\n      es2022: [\n        \"at\"\n      ],\n      es2023: [\n        \"findLastIndex\",\n        \"findLast\",\n        \"toReversed\",\n        \"toSorted\",\n        \"toSpliced\",\n        \"with\"\n      ]\n    })),\n    BigInt64Array: new Map(Object.entries({\n      es2020: emptyArray,\n      es2022: [\n        \"at\"\n      ],\n      es2023: [\n        \"findLastIndex\",\n        \"findLast\",\n        \"toReversed\",\n        \"toSorted\",\n        \"toSpliced\",\n        \"with\"\n      ]\n    })),\n    BigUint64Array: new Map(Object.entries({\n      es2020: emptyArray,\n      es2022: [\n        \"at\"\n      ],\n      es2023: [\n        \"findLastIndex\",\n        \"findLast\",\n        \"toReversed\",\n        \"toSorted\",\n        \"toSpliced\",\n        \"with\"\n      ]\n    })),\n    Error: new Map(Object.entries({\n      es2022: [\n        \"cause\"\n      ]\n    }))\n  }))\n);\nvar GetLiteralTextFlags = /* @__PURE__ */ ((GetLiteralTextFlags2) => {\n  GetLiteralTextFlags2[GetLiteralTextFlags2[\"None\"] = 0] = \"None\";\n  GetLiteralTextFlags2[GetLiteralTextFlags2[\"NeverAsciiEscape\"] = 1] = \"NeverAsciiEscape\";\n  GetLiteralTextFlags2[GetLiteralTextFlags2[\"JsxAttributeEscape\"] = 2] = \"JsxAttributeEscape\";\n  GetLiteralTextFlags2[GetLiteralTextFlags2[\"TerminateUnterminatedLiterals\"] = 4] = \"TerminateUnterminatedLiterals\";\n  GetLiteralTextFlags2[GetLiteralTextFlags2[\"AllowNumericSeparator\"] = 8] = \"AllowNumericSeparator\";\n  return GetLiteralTextFlags2;\n})(GetLiteralTextFlags || {});\nfunction getLiteralText(node, sourceFile, flags) {\n  if (sourceFile && canUseOriginalText(node, flags)) {\n    return getSourceTextOfNodeFromSourceFile(sourceFile, node);\n  }\n  switch (node.kind) {\n    case 11 /* StringLiteral */: {\n      const escapeText = flags & 2 /* JsxAttributeEscape */ ? escapeJsxAttributeString : flags & 1 /* NeverAsciiEscape */ || getEmitFlags(node) & 16777216 /* NoAsciiEscaping */ ? escapeString : escapeNonAsciiString;\n      if (node.singleQuote) {\n        return \"'\" + escapeText(node.text, 39 /* singleQuote */) + \"'\";\n      } else {\n        return '\"' + escapeText(node.text, 34 /* doubleQuote */) + '\"';\n      }\n    }\n    case 15 /* NoSubstitutionTemplateLiteral */:\n    case 16 /* TemplateHead */:\n    case 17 /* TemplateMiddle */:\n    case 18 /* TemplateTail */: {\n      const escapeText = flags & 1 /* NeverAsciiEscape */ || getEmitFlags(node) & 16777216 /* NoAsciiEscaping */ ? escapeString : escapeNonAsciiString;\n      const rawText = node.rawText ?? escapeTemplateSubstitution(escapeText(node.text, 96 /* backtick */));\n      switch (node.kind) {\n        case 15 /* NoSubstitutionTemplateLiteral */:\n          return \"`\" + rawText + \"`\";\n        case 16 /* TemplateHead */:\n          return \"`\" + rawText + \"${\";\n        case 17 /* TemplateMiddle */:\n          return \"}\" + rawText + \"${\";\n        case 18 /* TemplateTail */:\n          return \"}\" + rawText + \"`\";\n      }\n      break;\n    }\n    case 9 /* NumericLiteral */:\n    case 10 /* BigIntLiteral */:\n      return node.text;\n    case 14 /* RegularExpressionLiteral */:\n      if (flags & 4 /* TerminateUnterminatedLiterals */ && node.isUnterminated) {\n        return node.text + (node.text.charCodeAt(node.text.length - 1) === 92 /* backslash */ ? \" /\" : \"/\");\n      }\n      return node.text;\n  }\n  return Debug.fail(`Literal kind '${node.kind}' not accounted for.`);\n}\nfunction canUseOriginalText(node, flags) {\n  if (nodeIsSynthesized(node) || !node.parent || flags & 4 /* TerminateUnterminatedLiterals */ && node.isUnterminated) {\n    return false;\n  }\n  if (isNumericLiteral(node)) {\n    if (node.numericLiteralFlags & 26656 /* IsInvalid */) {\n      return false;\n    }\n    if (node.numericLiteralFlags & 512 /* ContainsSeparator */) {\n      return !!(flags & 8 /* AllowNumericSeparator */);\n    }\n  }\n  return !isBigIntLiteral(node);\n}\nfunction getTextOfConstantValue(value) {\n  return isString(value) ? `\"${escapeString(value)}\"` : \"\" + value;\n}\nfunction makeIdentifierFromModuleName(moduleName) {\n  return getBaseFileName(moduleName).replace(/^(\\d)/, \"_$1\").replace(/\\W/g, \"_\");\n}\nfunction isBlockOrCatchScoped(declaration) {\n  return (getCombinedNodeFlags(declaration) & 7 /* BlockScoped */) !== 0 || isCatchClauseVariableDeclarationOrBindingElement(declaration);\n}\nfunction isCatchClauseVariableDeclarationOrBindingElement(declaration) {\n  const node = getRootDeclaration(declaration);\n  return node.kind === 261 /* VariableDeclaration */ && node.parent.kind === 300 /* CatchClause */;\n}\nfunction isAmbientModule(node) {\n  return isModuleDeclaration(node) && (node.name.kind === 11 /* StringLiteral */ || isGlobalScopeAugmentation(node));\n}\nfunction isModuleWithStringLiteralName(node) {\n  return isModuleDeclaration(node) && node.name.kind === 11 /* StringLiteral */;\n}\nfunction isNonGlobalAmbientModule(node) {\n  return isModuleDeclaration(node) && isStringLiteral(node.name);\n}\nfunction isEffectiveModuleDeclaration(node) {\n  return isModuleDeclaration(node) || isIdentifier(node);\n}\nfunction isShorthandAmbientModuleSymbol(moduleSymbol) {\n  return isShorthandAmbientModule(moduleSymbol.valueDeclaration);\n}\nfunction isShorthandAmbientModule(node) {\n  return !!node && node.kind === 268 /* ModuleDeclaration */ && !node.body;\n}\nfunction isBlockScopedContainerTopLevel(node) {\n  return node.kind === 308 /* SourceFile */ || node.kind === 268 /* ModuleDeclaration */ || isFunctionLikeOrClassStaticBlockDeclaration(node);\n}\nfunction isGlobalScopeAugmentation(module2) {\n  return !!(module2.flags & 2048 /* GlobalAugmentation */);\n}\nfunction isExternalModuleAugmentation(node) {\n  return isAmbientModule(node) && isModuleAugmentationExternal(node);\n}\nfunction isModuleAugmentationExternal(node) {\n  switch (node.parent.kind) {\n    case 308 /* SourceFile */:\n      return isExternalModule(node.parent);\n    case 269 /* ModuleBlock */:\n      return isAmbientModule(node.parent.parent) && isSourceFile(node.parent.parent.parent) && !isExternalModule(node.parent.parent.parent);\n  }\n  return false;\n}\nfunction getNonAugmentationDeclaration(symbol) {\n  var _a;\n  return (_a = symbol.declarations) == null ? void 0 : _a.find((d) => !isExternalModuleAugmentation(d) && !(isModuleDeclaration(d) && isGlobalScopeAugmentation(d)));\n}\nfunction isCommonJSContainingModuleKind(kind) {\n  return kind === 1 /* CommonJS */ || 100 /* Node16 */ <= kind && kind <= 199 /* NodeNext */;\n}\nfunction isEffectiveExternalModule(node, compilerOptions) {\n  return isExternalModule(node) || isCommonJSContainingModuleKind(getEmitModuleKind(compilerOptions)) && !!node.commonJsModuleIndicator;\n}\nfunction isEffectiveStrictModeSourceFile(node, compilerOptions) {\n  switch (node.scriptKind) {\n    case 1 /* JS */:\n    case 3 /* TS */:\n    case 2 /* JSX */:\n    case 4 /* TSX */:\n      break;\n    default:\n      return false;\n  }\n  if (node.isDeclarationFile) {\n    return false;\n  }\n  if (getStrictOptionValue(compilerOptions, \"alwaysStrict\")) {\n    return true;\n  }\n  if (startsWithUseStrict(node.statements)) {\n    return true;\n  }\n  if (isExternalModule(node) || getIsolatedModules(compilerOptions)) {\n    return true;\n  }\n  return false;\n}\nfunction isAmbientPropertyDeclaration(node) {\n  return !!(node.flags & 33554432 /* Ambient */) || hasSyntacticModifier(node, 128 /* Ambient */);\n}\nfunction isBlockScope(node, parentNode) {\n  switch (node.kind) {\n    case 308 /* SourceFile */:\n    case 270 /* CaseBlock */:\n    case 300 /* CatchClause */:\n    case 268 /* ModuleDeclaration */:\n    case 249 /* ForStatement */:\n    case 250 /* ForInStatement */:\n    case 251 /* ForOfStatement */:\n    case 177 /* Constructor */:\n    case 175 /* MethodDeclaration */:\n    case 178 /* GetAccessor */:\n    case 179 /* SetAccessor */:\n    case 263 /* FunctionDeclaration */:\n    case 219 /* FunctionExpression */:\n    case 220 /* ArrowFunction */:\n    case 173 /* PropertyDeclaration */:\n    case 176 /* ClassStaticBlockDeclaration */:\n      return true;\n    case 242 /* Block */:\n      return !isFunctionLikeOrClassStaticBlockDeclaration(parentNode);\n  }\n  return false;\n}\nfunction isDeclarationWithTypeParameters(node) {\n  Debug.type(node);\n  switch (node.kind) {\n    case 339 /* JSDocCallbackTag */:\n    case 347 /* JSDocTypedefTag */:\n    case 324 /* JSDocSignature */:\n      return true;\n    default:\n      assertType(node);\n      return isDeclarationWithTypeParameterChildren(node);\n  }\n}\nfunction isDeclarationWithTypeParameterChildren(node) {\n  Debug.type(node);\n  switch (node.kind) {\n    case 180 /* CallSignature */:\n    case 181 /* ConstructSignature */:\n    case 174 /* MethodSignature */:\n    case 182 /* IndexSignature */:\n    case 185 /* FunctionType */:\n    case 186 /* ConstructorType */:\n    case 318 /* JSDocFunctionType */:\n    case 264 /* ClassDeclaration */:\n    case 232 /* ClassExpression */:\n    case 265 /* InterfaceDeclaration */:\n    case 266 /* TypeAliasDeclaration */:\n    case 346 /* JSDocTemplateTag */:\n    case 263 /* FunctionDeclaration */:\n    case 175 /* MethodDeclaration */:\n    case 177 /* Constructor */:\n    case 178 /* GetAccessor */:\n    case 179 /* SetAccessor */:\n    case 219 /* FunctionExpression */:\n    case 220 /* ArrowFunction */:\n      return true;\n    default:\n      assertType(node);\n      return false;\n  }\n}\nfunction isAnyImportSyntax(node) {\n  switch (node.kind) {\n    case 273 /* ImportDeclaration */:\n    case 272 /* ImportEqualsDeclaration */:\n      return true;\n    default:\n      return false;\n  }\n}\nfunction isAnyImportOrBareOrAccessedRequire(node) {\n  return isAnyImportSyntax(node) || isVariableDeclarationInitializedToBareOrAccessedRequire(node);\n}\nfunction isAnyImportOrRequireStatement(node) {\n  return isAnyImportSyntax(node) || isRequireVariableStatement(node);\n}\nfunction isLateVisibilityPaintedStatement(node) {\n  switch (node.kind) {\n    case 273 /* ImportDeclaration */:\n    case 272 /* ImportEqualsDeclaration */:\n    case 244 /* VariableStatement */:\n    case 264 /* ClassDeclaration */:\n    case 263 /* FunctionDeclaration */:\n    case 268 /* ModuleDeclaration */:\n    case 266 /* TypeAliasDeclaration */:\n    case 265 /* InterfaceDeclaration */:\n    case 267 /* EnumDeclaration */:\n      return true;\n    default:\n      return false;\n  }\n}\nfunction hasPossibleExternalModuleReference(node) {\n  return isAnyImportOrReExport(node) || isModuleDeclaration(node) || isImportTypeNode(node) || isImportCall(node);\n}\nfunction isAnyImportOrReExport(node) {\n  return isAnyImportSyntax(node) || isExportDeclaration(node);\n}\nfunction getEnclosingContainer(node) {\n  return findAncestor(node.parent, (n) => !!(getContainerFlags(n) & 1 /* IsContainer */));\n}\nfunction getEnclosingBlockScopeContainer(node) {\n  return findAncestor(node.parent, (current) => isBlockScope(current, current.parent));\n}\nfunction forEachEnclosingBlockScopeContainer(node, cb) {\n  let container = getEnclosingBlockScopeContainer(node);\n  while (container) {\n    cb(container);\n    container = getEnclosingBlockScopeContainer(container);\n  }\n}\nfunction declarationNameToString(name) {\n  return !name || getFullWidth(name) === 0 ? \"(Missing)\" : getTextOfNode(name);\n}\nfunction getNameFromIndexInfo(info) {\n  return info.declaration ? declarationNameToString(info.declaration.parameters[0].name) : void 0;\n}\nfunction isComputedNonLiteralName(name) {\n  return name.kind === 168 /* ComputedPropertyName */ && !isStringOrNumericLiteralLike(name.expression);\n}\nfunction tryGetTextOfPropertyName(name) {\n  var _a;\n  switch (name.kind) {\n    case 80 /* Identifier */:\n    case 81 /* PrivateIdentifier */:\n      return ((_a = name.emitNode) == null ? void 0 : _a.autoGenerate) ? void 0 : name.escapedText;\n    case 11 /* StringLiteral */:\n    case 9 /* NumericLiteral */:\n    case 10 /* BigIntLiteral */:\n    case 15 /* NoSubstitutionTemplateLiteral */:\n      return escapeLeadingUnderscores(name.text);\n    case 168 /* ComputedPropertyName */:\n      if (isStringOrNumericLiteralLike(name.expression)) return escapeLeadingUnderscores(name.expression.text);\n      return void 0;\n    case 296 /* JsxNamespacedName */:\n      return getEscapedTextOfJsxNamespacedName(name);\n    default:\n      return Debug.assertNever(name);\n  }\n}\nfunction getTextOfPropertyName(name) {\n  return Debug.checkDefined(tryGetTextOfPropertyName(name));\n}\nfunction entityNameToString(name) {\n  switch (name.kind) {\n    case 110 /* ThisKeyword */:\n      return \"this\";\n    case 81 /* PrivateIdentifier */:\n    case 80 /* Identifier */:\n      return getFullWidth(name) === 0 ? idText(name) : getTextOfNode(name);\n    case 167 /* QualifiedName */:\n      return entityNameToString(name.left) + \".\" + entityNameToString(name.right);\n    case 212 /* PropertyAccessExpression */:\n      if (isIdentifier(name.name) || isPrivateIdentifier(name.name)) {\n        return entityNameToString(name.expression) + \".\" + entityNameToString(name.name);\n      } else {\n        return Debug.assertNever(name.name);\n      }\n    case 312 /* JSDocMemberName */:\n      return entityNameToString(name.left) + \"#\" + entityNameToString(name.right);\n    case 296 /* JsxNamespacedName */:\n      return entityNameToString(name.namespace) + \":\" + entityNameToString(name.name);\n    default:\n      return Debug.assertNever(name);\n  }\n}\nfunction createDiagnosticForNode(node, message, ...args) {\n  const sourceFile = getSourceFileOfNode(node);\n  return createDiagnosticForNodeInSourceFile(sourceFile, node, message, ...args);\n}\nfunction createDiagnosticForNodeArray(sourceFile, nodes, message, ...args) {\n  const start = skipTrivia(sourceFile.text, nodes.pos);\n  return createFileDiagnostic(sourceFile, start, nodes.end - start, message, ...args);\n}\nfunction createDiagnosticForNodeInSourceFile(sourceFile, node, message, ...args) {\n  const span = getErrorSpanForNode(sourceFile, node);\n  return createFileDiagnostic(sourceFile, span.start, span.length, message, ...args);\n}\nfunction createDiagnosticForNodeFromMessageChain(sourceFile, node, messageChain, relatedInformation) {\n  const span = getErrorSpanForNode(sourceFile, node);\n  return createFileDiagnosticFromMessageChain(sourceFile, span.start, span.length, messageChain, relatedInformation);\n}\nfunction createDiagnosticForNodeArrayFromMessageChain(sourceFile, nodes, messageChain, relatedInformation) {\n  const start = skipTrivia(sourceFile.text, nodes.pos);\n  return createFileDiagnosticFromMessageChain(sourceFile, start, nodes.end - start, messageChain, relatedInformation);\n}\nfunction assertDiagnosticLocation(sourceText, start, length2) {\n  Debug.assertGreaterThanOrEqual(start, 0);\n  Debug.assertGreaterThanOrEqual(length2, 0);\n  Debug.assertLessThanOrEqual(start, sourceText.length);\n  Debug.assertLessThanOrEqual(start + length2, sourceText.length);\n}\nfunction createFileDiagnosticFromMessageChain(file, start, length2, messageChain, relatedInformation) {\n  assertDiagnosticLocation(file.text, start, length2);\n  return {\n    file,\n    start,\n    length: length2,\n    code: messageChain.code,\n    category: messageChain.category,\n    messageText: messageChain.next ? messageChain : messageChain.messageText,\n    relatedInformation,\n    canonicalHead: messageChain.canonicalHead\n  };\n}\nfunction createDiagnosticForFileFromMessageChain(sourceFile, messageChain, relatedInformation) {\n  return {\n    file: sourceFile,\n    start: 0,\n    length: 0,\n    code: messageChain.code,\n    category: messageChain.category,\n    messageText: messageChain.next ? messageChain : messageChain.messageText,\n    relatedInformation\n  };\n}\nfunction createDiagnosticMessageChainFromDiagnostic(diagnostic) {\n  return typeof diagnostic.messageText === \"string\" ? {\n    code: diagnostic.code,\n    category: diagnostic.category,\n    messageText: diagnostic.messageText,\n    next: diagnostic.next\n  } : diagnostic.messageText;\n}\nfunction createDiagnosticForRange(sourceFile, range, message) {\n  return {\n    file: sourceFile,\n    start: range.pos,\n    length: range.end - range.pos,\n    code: message.code,\n    category: message.category,\n    messageText: message.message\n  };\n}\nfunction getCanonicalDiagnostic(message, ...args) {\n  return {\n    code: message.code,\n    messageText: formatMessage(message, ...args)\n  };\n}\nfunction getSpanOfTokenAtPosition(sourceFile, pos) {\n  const scanner2 = createScanner(\n    sourceFile.languageVersion,\n    /*skipTrivia*/\n    true,\n    sourceFile.languageVariant,\n    sourceFile.text,\n    /*onError*/\n    void 0,\n    pos\n  );\n  scanner2.scan();\n  const start = scanner2.getTokenStart();\n  return createTextSpanFromBounds(start, scanner2.getTokenEnd());\n}\nfunction scanTokenAtPosition(sourceFile, pos) {\n  const scanner2 = createScanner(\n    sourceFile.languageVersion,\n    /*skipTrivia*/\n    true,\n    sourceFile.languageVariant,\n    sourceFile.text,\n    /*onError*/\n    void 0,\n    pos\n  );\n  scanner2.scan();\n  return scanner2.getToken();\n}\nfunction getErrorSpanForArrowFunction(sourceFile, node) {\n  const pos = skipTrivia(sourceFile.text, node.pos);\n  if (node.body && node.body.kind === 242 /* Block */) {\n    const { line: startLine } = getLineAndCharacterOfPosition(sourceFile, node.body.pos);\n    const { line: endLine } = getLineAndCharacterOfPosition(sourceFile, node.body.end);\n    if (startLine < endLine) {\n      return createTextSpan(pos, getEndLinePosition(startLine, sourceFile) - pos + 1);\n    }\n  }\n  return createTextSpanFromBounds(pos, node.end);\n}\nfunction getErrorSpanForNode(sourceFile, node) {\n  let errorNode = node;\n  switch (node.kind) {\n    case 308 /* SourceFile */: {\n      const pos2 = skipTrivia(\n        sourceFile.text,\n        0,\n        /*stopAfterLineBreak*/\n        false\n      );\n      if (pos2 === sourceFile.text.length) {\n        return createTextSpan(0, 0);\n      }\n      return getSpanOfTokenAtPosition(sourceFile, pos2);\n    }\n    // This list is a work in progress. Add missing node kinds to improve their error\n    // spans.\n    case 261 /* VariableDeclaration */:\n    case 209 /* BindingElement */:\n    case 264 /* ClassDeclaration */:\n    case 232 /* ClassExpression */:\n    case 265 /* InterfaceDeclaration */:\n    case 268 /* ModuleDeclaration */:\n    case 267 /* EnumDeclaration */:\n    case 307 /* EnumMember */:\n    case 263 /* FunctionDeclaration */:\n    case 219 /* FunctionExpression */:\n    case 175 /* MethodDeclaration */:\n    case 178 /* GetAccessor */:\n    case 179 /* SetAccessor */:\n    case 266 /* TypeAliasDeclaration */:\n    case 173 /* PropertyDeclaration */:\n    case 172 /* PropertySignature */:\n    case 275 /* NamespaceImport */:\n      errorNode = node.name;\n      break;\n    case 220 /* ArrowFunction */:\n      return getErrorSpanForArrowFunction(sourceFile, node);\n    case 297 /* CaseClause */:\n    case 298 /* DefaultClause */: {\n      const start = skipTrivia(sourceFile.text, node.pos);\n      const end = node.statements.length > 0 ? node.statements[0].pos : node.end;\n      return createTextSpanFromBounds(start, end);\n    }\n    case 254 /* ReturnStatement */:\n    case 230 /* YieldExpression */: {\n      const pos2 = skipTrivia(sourceFile.text, node.pos);\n      return getSpanOfTokenAtPosition(sourceFile, pos2);\n    }\n    case 239 /* SatisfiesExpression */: {\n      const pos2 = skipTrivia(sourceFile.text, node.expression.end);\n      return getSpanOfTokenAtPosition(sourceFile, pos2);\n    }\n    case 351 /* JSDocSatisfiesTag */: {\n      const pos2 = skipTrivia(sourceFile.text, node.tagName.pos);\n      return getSpanOfTokenAtPosition(sourceFile, pos2);\n    }\n    case 177 /* Constructor */: {\n      const constructorDeclaration = node;\n      const start = skipTrivia(sourceFile.text, constructorDeclaration.pos);\n      const scanner2 = createScanner(\n        sourceFile.languageVersion,\n        /*skipTrivia*/\n        true,\n        sourceFile.languageVariant,\n        sourceFile.text,\n        /*onError*/\n        void 0,\n        start\n      );\n      let token = scanner2.scan();\n      while (token !== 137 /* ConstructorKeyword */ && token !== 1 /* EndOfFileToken */) {\n        token = scanner2.scan();\n      }\n      const end = scanner2.getTokenEnd();\n      return createTextSpanFromBounds(start, end);\n    }\n  }\n  if (errorNode === void 0) {\n    return getSpanOfTokenAtPosition(sourceFile, node.pos);\n  }\n  Debug.assert(!isJSDoc(errorNode));\n  const isMissing = nodeIsMissing(errorNode);\n  const pos = isMissing || isJsxText(node) ? errorNode.pos : skipTrivia(sourceFile.text, errorNode.pos);\n  if (isMissing) {\n    Debug.assert(pos === errorNode.pos, \"This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809\");\n    Debug.assert(pos === errorNode.end, \"This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809\");\n  } else {\n    Debug.assert(pos >= errorNode.pos, \"This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809\");\n    Debug.assert(pos <= errorNode.end, \"This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809\");\n  }\n  return createTextSpanFromBounds(pos, errorNode.end);\n}\nfunction isGlobalSourceFile(node) {\n  return node.kind === 308 /* SourceFile */ && !isExternalOrCommonJsModule(node);\n}\nfunction isExternalOrCommonJsModule(file) {\n  return (file.externalModuleIndicator || file.commonJsModuleIndicator) !== void 0;\n}\nfunction isJsonSourceFile(file) {\n  return file.scriptKind === 6 /* JSON */;\n}\nfunction isEnumConst(node) {\n  return !!(getCombinedModifierFlags(node) & 4096 /* Const */);\n}\nfunction isDeclarationReadonly(declaration) {\n  return !!(getCombinedModifierFlags(declaration) & 8 /* Readonly */ && !isParameterPropertyDeclaration(declaration, declaration.parent));\n}\nfunction isVarAwaitUsing(node) {\n  return (getCombinedNodeFlags(node) & 7 /* BlockScoped */) === 6 /* AwaitUsing */;\n}\nfunction isVarUsing(node) {\n  return (getCombinedNodeFlags(node) & 7 /* BlockScoped */) === 4 /* Using */;\n}\nfunction isVarConst(node) {\n  return (getCombinedNodeFlags(node) & 7 /* BlockScoped */) === 2 /* Const */;\n}\nfunction isVarConstLike(node) {\n  const blockScopeKind = getCombinedNodeFlags(node) & 7 /* BlockScoped */;\n  return blockScopeKind === 2 /* Const */ || blockScopeKind === 4 /* Using */ || blockScopeKind === 6 /* AwaitUsing */;\n}\nfunction isLet(node) {\n  return (getCombinedNodeFlags(node) & 7 /* BlockScoped */) === 1 /* Let */;\n}\nfunction isSuperCall(n) {\n  return n.kind === 214 /* CallExpression */ && n.expression.kind === 108 /* SuperKeyword */;\n}\nfunction isImportCall(n) {\n  if (n.kind !== 214 /* CallExpression */) return false;\n  const e = n.expression;\n  return e.kind === 102 /* ImportKeyword */ || isMetaProperty(e) && e.keywordToken === 102 /* ImportKeyword */ && e.name.escapedText === \"defer\";\n}\nfunction isImportMeta(n) {\n  return isMetaProperty(n) && n.keywordToken === 102 /* ImportKeyword */ && n.name.escapedText === \"meta\";\n}\nfunction isLiteralImportTypeNode(n) {\n  return isImportTypeNode(n) && isLiteralTypeNode(n.argument) && isStringLiteral(n.argument.literal);\n}\nfunction isPrologueDirective(node) {\n  return node.kind === 245 /* ExpressionStatement */ && node.expression.kind === 11 /* StringLiteral */;\n}\nfunction isCustomPrologue(node) {\n  return !!(getEmitFlags(node) & 2097152 /* CustomPrologue */);\n}\nfunction isHoistedFunction(node) {\n  return isCustomPrologue(node) && isFunctionDeclaration(node);\n}\nfunction isHoistedVariable(node) {\n  return isIdentifier(node.name) && !node.initializer;\n}\nfunction isHoistedVariableStatement(node) {\n  return isCustomPrologue(node) && isVariableStatement(node) && every(node.declarationList.declarations, isHoistedVariable);\n}\nfunction getLeadingCommentRangesOfNode(node, sourceFileOfNode) {\n  return node.kind !== 12 /* JsxText */ ? getLeadingCommentRanges(sourceFileOfNode.text, node.pos) : void 0;\n}\nfunction getJSDocCommentRanges(node, text) {\n  const commentRanges = node.kind === 170 /* Parameter */ || node.kind === 169 /* TypeParameter */ || node.kind === 219 /* FunctionExpression */ || node.kind === 220 /* ArrowFunction */ || node.kind === 218 /* ParenthesizedExpression */ || node.kind === 261 /* VariableDeclaration */ || node.kind === 282 /* ExportSpecifier */ ? concatenate(getTrailingCommentRanges(text, node.pos), getLeadingCommentRanges(text, node.pos)) : getLeadingCommentRanges(text, node.pos);\n  return filter(commentRanges, (comment) => comment.end <= node.end && // Due to parse errors sometime empty parameter may get comments assigned to it that end up not in parameter range\n  text.charCodeAt(comment.pos + 1) === 42 /* asterisk */ && text.charCodeAt(comment.pos + 2) === 42 /* asterisk */ && text.charCodeAt(comment.pos + 3) !== 47 /* slash */);\n}\nvar fullTripleSlashReferencePathRegEx = /^\\/\\/\\/\\s*<reference\\s+path\\s*=\\s*(?:'[^']*'|\"[^\"]*\").*?\\/>/;\nvar fullTripleSlashReferenceTypeReferenceDirectiveRegEx = /^\\/\\/\\/\\s*<reference\\s+types\\s*=\\s*(?:'[^']*'|\"[^\"]*\").*?\\/>/;\nvar fullTripleSlashLibReferenceRegEx = /^\\/\\/\\/\\s*<reference\\s+lib\\s*=\\s*(?:'[^']*'|\"[^\"]*\").*?\\/>/;\nvar fullTripleSlashAMDReferencePathRegEx = /^\\/\\/\\/\\s*<amd-dependency\\s+path\\s*=\\s*(?:'[^']*'|\"[^\"]*\").*?\\/>/;\nvar fullTripleSlashAMDModuleRegEx = /^\\/\\/\\/\\s*<amd-module\\s+(?:\\S.*?)??\\/>/;\nvar defaultLibReferenceRegEx = /^\\/\\/\\/\\s*<reference\\s+no-default-lib\\s*=\\s*(?:'[^']*'|\"[^\"]*\")\\s*\\/>/;\nfunction isPartOfTypeNode(node) {\n  if (183 /* FirstTypeNode */ <= node.kind && node.kind <= 206 /* LastTypeNode */) {\n    return true;\n  }\n  switch (node.kind) {\n    case 133 /* AnyKeyword */:\n    case 159 /* UnknownKeyword */:\n    case 150 /* NumberKeyword */:\n    case 163 /* BigIntKeyword */:\n    case 154 /* StringKeyword */:\n    case 136 /* BooleanKeyword */:\n    case 155 /* SymbolKeyword */:\n    case 151 /* ObjectKeyword */:\n    case 157 /* UndefinedKeyword */:\n    case 106 /* NullKeyword */:\n    case 146 /* NeverKeyword */:\n      return true;\n    case 116 /* VoidKeyword */:\n      return node.parent.kind !== 223 /* VoidExpression */;\n    case 234 /* ExpressionWithTypeArguments */:\n      return isPartOfTypeExpressionWithTypeArguments(node);\n    case 169 /* TypeParameter */:\n      return node.parent.kind === 201 /* MappedType */ || node.parent.kind === 196 /* InferType */;\n    // Identifiers and qualified names may be type nodes, depending on their context. Climb\n    // above them to find the lowest container\n    case 80 /* Identifier */:\n      if (node.parent.kind === 167 /* QualifiedName */ && node.parent.right === node) {\n        node = node.parent;\n      } else if (node.parent.kind === 212 /* PropertyAccessExpression */ && node.parent.name === node) {\n        node = node.parent;\n      }\n      Debug.assert(node.kind === 80 /* Identifier */ || node.kind === 167 /* QualifiedName */ || node.kind === 212 /* PropertyAccessExpression */, \"'node' was expected to be a qualified name, identifier or property access in 'isPartOfTypeNode'.\");\n    // falls through\n    case 167 /* QualifiedName */:\n    case 212 /* PropertyAccessExpression */:\n    case 110 /* ThisKeyword */: {\n      const { parent: parent2 } = node;\n      if (parent2.kind === 187 /* TypeQuery */) {\n        return false;\n      }\n      if (parent2.kind === 206 /* ImportType */) {\n        return !parent2.isTypeOf;\n      }\n      if (183 /* FirstTypeNode */ <= parent2.kind && parent2.kind <= 206 /* LastTypeNode */) {\n        return true;\n      }\n      switch (parent2.kind) {\n        case 234 /* ExpressionWithTypeArguments */:\n          return isPartOfTypeExpressionWithTypeArguments(parent2);\n        case 169 /* TypeParameter */:\n          return node === parent2.constraint;\n        case 346 /* JSDocTemplateTag */:\n          return node === parent2.constraint;\n        case 173 /* PropertyDeclaration */:\n        case 172 /* PropertySignature */:\n        case 170 /* Parameter */:\n        case 261 /* VariableDeclaration */:\n          return node === parent2.type;\n        case 263 /* FunctionDeclaration */:\n        case 219 /* FunctionExpression */:\n        case 220 /* ArrowFunction */:\n        case 177 /* Constructor */:\n        case 175 /* MethodDeclaration */:\n        case 174 /* MethodSignature */:\n        case 178 /* GetAccessor */:\n        case 179 /* SetAccessor */:\n          return node === parent2.type;\n        case 180 /* CallSignature */:\n        case 181 /* ConstructSignature */:\n        case 182 /* IndexSignature */:\n          return node === parent2.type;\n        case 217 /* TypeAssertionExpression */:\n          return node === parent2.type;\n        case 214 /* CallExpression */:\n        case 215 /* NewExpression */:\n        case 216 /* TaggedTemplateExpression */:\n          return contains(parent2.typeArguments, node);\n      }\n    }\n  }\n  return false;\n}\nfunction isPartOfTypeExpressionWithTypeArguments(node) {\n  return isJSDocImplementsTag(node.parent) || isJSDocAugmentsTag(node.parent) || isHeritageClause(node.parent) && !isExpressionWithTypeArgumentsInClassExtendsClause(node);\n}\nfunction forEachReturnStatement(body, visitor) {\n  return traverse(body);\n  function traverse(node) {\n    switch (node.kind) {\n      case 254 /* ReturnStatement */:\n        return visitor(node);\n      case 270 /* CaseBlock */:\n      case 242 /* Block */:\n      case 246 /* IfStatement */:\n      case 247 /* DoStatement */:\n      case 248 /* WhileStatement */:\n      case 249 /* ForStatement */:\n      case 250 /* ForInStatement */:\n      case 251 /* ForOfStatement */:\n      case 255 /* WithStatement */:\n      case 256 /* SwitchStatement */:\n      case 297 /* CaseClause */:\n      case 298 /* DefaultClause */:\n      case 257 /* LabeledStatement */:\n      case 259 /* TryStatement */:\n      case 300 /* CatchClause */:\n        return forEachChild(node, traverse);\n    }\n  }\n}\nfunction forEachYieldExpression(body, visitor) {\n  return traverse(body);\n  function traverse(node) {\n    switch (node.kind) {\n      case 230 /* YieldExpression */:\n        visitor(node);\n        const operand = node.expression;\n        if (operand) {\n          traverse(operand);\n        }\n        return;\n      case 267 /* EnumDeclaration */:\n      case 265 /* InterfaceDeclaration */:\n      case 268 /* ModuleDeclaration */:\n      case 266 /* TypeAliasDeclaration */:\n        return;\n      default:\n        if (isFunctionLike(node)) {\n          if (node.name && node.name.kind === 168 /* ComputedPropertyName */) {\n            traverse(node.name.expression);\n            return;\n          }\n        } else if (!isPartOfTypeNode(node)) {\n          forEachChild(node, traverse);\n        }\n    }\n  }\n}\nfunction getRestParameterElementType(node) {\n  if (node && node.kind === 189 /* ArrayType */) {\n    return node.elementType;\n  } else if (node && node.kind === 184 /* TypeReference */) {\n    return singleOrUndefined(node.typeArguments);\n  } else {\n    return void 0;\n  }\n}\nfunction getMembersOfDeclaration(node) {\n  switch (node.kind) {\n    case 265 /* InterfaceDeclaration */:\n    case 264 /* ClassDeclaration */:\n    case 232 /* ClassExpression */:\n    case 188 /* TypeLiteral */:\n      return node.members;\n    case 211 /* ObjectLiteralExpression */:\n      return node.properties;\n  }\n}\nfunction isVariableLike(node) {\n  if (node) {\n    switch (node.kind) {\n      case 209 /* BindingElement */:\n      case 307 /* EnumMember */:\n      case 170 /* Parameter */:\n      case 304 /* PropertyAssignment */:\n      case 173 /* PropertyDeclaration */:\n      case 172 /* PropertySignature */:\n      case 305 /* ShorthandPropertyAssignment */:\n      case 261 /* VariableDeclaration */:\n        return true;\n    }\n  }\n  return false;\n}\nfunction isVariableDeclarationInVariableStatement(node) {\n  return node.parent.kind === 262 /* VariableDeclarationList */ && node.parent.parent.kind === 244 /* VariableStatement */;\n}\nfunction isCommonJsExportedExpression(node) {\n  if (!isInJSFile(node)) return false;\n  return isObjectLiteralExpression(node.parent) && isBinaryExpression(node.parent.parent) && getAssignmentDeclarationKind(node.parent.parent) === 2 /* ModuleExports */ || isCommonJsExportPropertyAssignment(node.parent);\n}\nfunction isCommonJsExportPropertyAssignment(node) {\n  if (!isInJSFile(node)) return false;\n  return isBinaryExpression(node) && getAssignmentDeclarationKind(node) === 1 /* ExportsProperty */;\n}\nfunction isValidESSymbolDeclaration(node) {\n  return (isVariableDeclaration(node) ? isVarConst(node) && isIdentifier(node.name) && isVariableDeclarationInVariableStatement(node) : isPropertyDeclaration(node) ? hasEffectiveReadonlyModifier(node) && hasStaticModifier(node) : isPropertySignature(node) && hasEffectiveReadonlyModifier(node)) || isCommonJsExportPropertyAssignment(node);\n}\nfunction introducesArgumentsExoticObject(node) {\n  switch (node.kind) {\n    case 175 /* MethodDeclaration */:\n    case 174 /* MethodSignature */:\n    case 177 /* Constructor */:\n    case 178 /* GetAccessor */:\n    case 179 /* SetAccessor */:\n    case 263 /* FunctionDeclaration */:\n    case 219 /* FunctionExpression */:\n      return true;\n  }\n  return false;\n}\nfunction unwrapInnermostStatementOfLabel(node, beforeUnwrapLabelCallback) {\n  while (true) {\n    if (beforeUnwrapLabelCallback) {\n      beforeUnwrapLabelCallback(node);\n    }\n    if (node.statement.kind !== 257 /* LabeledStatement */) {\n      return node.statement;\n    }\n    node = node.statement;\n  }\n}\nfunction isFunctionBlock(node) {\n  return node && node.kind === 242 /* Block */ && isFunctionLike(node.parent);\n}\nfunction isObjectLiteralMethod(node) {\n  return node && node.kind === 175 /* MethodDeclaration */ && node.parent.kind === 211 /* ObjectLiteralExpression */;\n}\nfunction isObjectLiteralOrClassExpressionMethodOrAccessor(node) {\n  return (node.kind === 175 /* MethodDeclaration */ || node.kind === 178 /* GetAccessor */ || node.kind === 179 /* SetAccessor */) && (node.parent.kind === 211 /* ObjectLiteralExpression */ || node.parent.kind === 232 /* ClassExpression */);\n}\nfunction isIdentifierTypePredicate(predicate) {\n  return predicate && predicate.kind === 1 /* Identifier */;\n}\nfunction isThisTypePredicate(predicate) {\n  return predicate && predicate.kind === 0 /* This */;\n}\nfunction forEachPropertyAssignment(objectLiteral, key, callback, key2) {\n  return forEach(objectLiteral == null ? void 0 : objectLiteral.properties, (property) => {\n    if (!isPropertyAssignment(property)) return void 0;\n    const propName = tryGetTextOfPropertyName(property.name);\n    return key === propName || key2 && key2 === propName ? callback(property) : void 0;\n  });\n}\nfunction getTsConfigObjectLiteralExpression(tsConfigSourceFile) {\n  if (tsConfigSourceFile && tsConfigSourceFile.statements.length) {\n    const expression = tsConfigSourceFile.statements[0].expression;\n    return tryCast(expression, isObjectLiteralExpression);\n  }\n}\nfunction getTsConfigPropArrayElementValue(tsConfigSourceFile, propKey, elementValue) {\n  return forEachTsConfigPropArray(tsConfigSourceFile, propKey, (property) => isArrayLiteralExpression(property.initializer) ? find(property.initializer.elements, (element) => isStringLiteral(element) && element.text === elementValue) : void 0);\n}\nfunction forEachTsConfigPropArray(tsConfigSourceFile, propKey, callback) {\n  return forEachPropertyAssignment(getTsConfigObjectLiteralExpression(tsConfigSourceFile), propKey, callback);\n}\nfunction getContainingFunction(node) {\n  return findAncestor(node.parent, isFunctionLike);\n}\nfunction getContainingFunctionDeclaration(node) {\n  return findAncestor(node.parent, isFunctionLikeDeclaration);\n}\nfunction getContainingClass(node) {\n  return findAncestor(node.parent, isClassLike);\n}\nfunction getContainingClassStaticBlock(node) {\n  return findAncestor(node.parent, (n) => {\n    if (isClassLike(n) || isFunctionLike(n)) {\n      return \"quit\";\n    }\n    return isClassStaticBlockDeclaration(n);\n  });\n}\nfunction getContainingFunctionOrClassStaticBlock(node) {\n  return findAncestor(node.parent, isFunctionLikeOrClassStaticBlockDeclaration);\n}\nfunction getContainingClassExcludingClassDecorators(node) {\n  const decorator = findAncestor(node.parent, (n) => isClassLike(n) ? \"quit\" : isDecorator(n));\n  return decorator && isClassLike(decorator.parent) ? getContainingClass(decorator.parent) : getContainingClass(decorator ?? node);\n}\nfunction getThisContainer(node, includeArrowFunctions, includeClassComputedPropertyName) {\n  Debug.assert(node.kind !== 308 /* SourceFile */);\n  while (true) {\n    node = node.parent;\n    if (!node) {\n      return Debug.fail();\n    }\n    switch (node.kind) {\n      case 168 /* ComputedPropertyName */:\n        if (includeClassComputedPropertyName && isClassLike(node.parent.parent)) {\n          return node;\n        }\n        node = node.parent.parent;\n        break;\n      case 171 /* Decorator */:\n        if (node.parent.kind === 170 /* Parameter */ && isClassElement(node.parent.parent)) {\n          node = node.parent.parent;\n        } else if (isClassElement(node.parent)) {\n          node = node.parent;\n        }\n        break;\n      case 220 /* ArrowFunction */:\n        if (!includeArrowFunctions) {\n          continue;\n        }\n      // falls through\n      case 263 /* FunctionDeclaration */:\n      case 219 /* FunctionExpression */:\n      case 268 /* ModuleDeclaration */:\n      case 176 /* ClassStaticBlockDeclaration */:\n      case 173 /* PropertyDeclaration */:\n      case 172 /* PropertySignature */:\n      case 175 /* MethodDeclaration */:\n      case 174 /* MethodSignature */:\n      case 177 /* Constructor */:\n      case 178 /* GetAccessor */:\n      case 179 /* SetAccessor */:\n      case 180 /* CallSignature */:\n      case 181 /* ConstructSignature */:\n      case 182 /* IndexSignature */:\n      case 267 /* EnumDeclaration */:\n      case 308 /* SourceFile */:\n        return node;\n    }\n  }\n}\nfunction isThisContainerOrFunctionBlock(node) {\n  switch (node.kind) {\n    // Arrow functions use the same scope, but may do so in a \"delayed\" manner\n    // For example, `const getThis = () => this` may be before a super() call in a derived constructor\n    case 220 /* ArrowFunction */:\n    case 263 /* FunctionDeclaration */:\n    case 219 /* FunctionExpression */:\n    case 173 /* PropertyDeclaration */:\n      return true;\n    case 242 /* Block */:\n      switch (node.parent.kind) {\n        case 177 /* Constructor */:\n        case 175 /* MethodDeclaration */:\n        case 178 /* GetAccessor */:\n        case 179 /* SetAccessor */:\n          return true;\n        default:\n          return false;\n      }\n    default:\n      return false;\n  }\n}\nfunction isInTopLevelContext(node) {\n  if (isIdentifier(node) && (isClassDeclaration(node.parent) || isFunctionDeclaration(node.parent)) && node.parent.name === node) {\n    node = node.parent;\n  }\n  const container = getThisContainer(\n    node,\n    /*includeArrowFunctions*/\n    true,\n    /*includeClassComputedPropertyName*/\n    false\n  );\n  return isSourceFile(container);\n}\nfunction getNewTargetContainer(node) {\n  const container = getThisContainer(\n    node,\n    /*includeArrowFunctions*/\n    false,\n    /*includeClassComputedPropertyName*/\n    false\n  );\n  if (container) {\n    switch (container.kind) {\n      case 177 /* Constructor */:\n      case 263 /* FunctionDeclaration */:\n      case 219 /* FunctionExpression */:\n        return container;\n    }\n  }\n  return void 0;\n}\nfunction getSuperContainer(node, stopOnFunctions) {\n  while (true) {\n    node = node.parent;\n    if (!node) {\n      return void 0;\n    }\n    switch (node.kind) {\n      case 168 /* ComputedPropertyName */:\n        node = node.parent;\n        break;\n      case 263 /* FunctionDeclaration */:\n      case 219 /* FunctionExpression */:\n      case 220 /* ArrowFunction */:\n        if (!stopOnFunctions) {\n          continue;\n        }\n      // falls through\n      case 173 /* PropertyDeclaration */:\n      case 172 /* PropertySignature */:\n      case 175 /* MethodDeclaration */:\n      case 174 /* MethodSignature */:\n      case 177 /* Constructor */:\n      case 178 /* GetAccessor */:\n      case 179 /* SetAccessor */:\n      case 176 /* ClassStaticBlockDeclaration */:\n        return node;\n      case 171 /* Decorator */:\n        if (node.parent.kind === 170 /* Parameter */ && isClassElement(node.parent.parent)) {\n          node = node.parent.parent;\n        } else if (isClassElement(node.parent)) {\n          node = node.parent;\n        }\n        break;\n    }\n  }\n}\nfunction getImmediatelyInvokedFunctionExpression(func) {\n  if (func.kind === 219 /* FunctionExpression */ || func.kind === 220 /* ArrowFunction */) {\n    let prev = func;\n    let parent2 = func.parent;\n    while (parent2.kind === 218 /* ParenthesizedExpression */) {\n      prev = parent2;\n      parent2 = parent2.parent;\n    }\n    if (parent2.kind === 214 /* CallExpression */ && parent2.expression === prev) {\n      return parent2;\n    }\n  }\n}\nfunction isSuperProperty(node) {\n  const kind = node.kind;\n  return (kind === 212 /* PropertyAccessExpression */ || kind === 213 /* ElementAccessExpression */) && node.expression.kind === 108 /* SuperKeyword */;\n}\nfunction isThisProperty(node) {\n  const kind = node.kind;\n  return (kind === 212 /* PropertyAccessExpression */ || kind === 213 /* ElementAccessExpression */) && node.expression.kind === 110 /* ThisKeyword */;\n}\nfunction isThisInitializedDeclaration(node) {\n  var _a;\n  return !!node && isVariableDeclaration(node) && ((_a = node.initializer) == null ? void 0 : _a.kind) === 110 /* ThisKeyword */;\n}\nfunction isThisInitializedObjectBindingExpression(node) {\n  return !!node && (isShorthandPropertyAssignment(node) || isPropertyAssignment(node)) && isBinaryExpression(node.parent.parent) && node.parent.parent.operatorToken.kind === 64 /* EqualsToken */ && node.parent.parent.right.kind === 110 /* ThisKeyword */;\n}\nfunction getEntityNameFromTypeNode(node) {\n  switch (node.kind) {\n    case 184 /* TypeReference */:\n      return node.typeName;\n    case 234 /* ExpressionWithTypeArguments */:\n      return isEntityNameExpression(node.expression) ? node.expression : void 0;\n    // TODO(rbuckton): These aren't valid TypeNodes, but we treat them as such because of `isPartOfTypeNode`, which returns `true` for things that aren't `TypeNode`s.\n    case 80 /* Identifier */:\n    case 167 /* QualifiedName */:\n      return node;\n  }\n  return void 0;\n}\nfunction getInvokedExpression(node) {\n  switch (node.kind) {\n    case 216 /* TaggedTemplateExpression */:\n      return node.tag;\n    case 287 /* JsxOpeningElement */:\n    case 286 /* JsxSelfClosingElement */:\n      return node.tagName;\n    case 227 /* BinaryExpression */:\n      return node.right;\n    case 290 /* JsxOpeningFragment */:\n      return node;\n    default:\n      return node.expression;\n  }\n}\nfunction nodeCanBeDecorated(useLegacyDecorators, node, parent2, grandparent) {\n  if (useLegacyDecorators && isNamedDeclaration(node) && isPrivateIdentifier(node.name)) {\n    return false;\n  }\n  switch (node.kind) {\n    case 264 /* ClassDeclaration */:\n      return true;\n    case 232 /* ClassExpression */:\n      return !useLegacyDecorators;\n    case 173 /* PropertyDeclaration */:\n      return parent2 !== void 0 && (useLegacyDecorators ? isClassDeclaration(parent2) : isClassLike(parent2) && !hasAbstractModifier(node) && !hasAmbientModifier(node));\n    case 178 /* GetAccessor */:\n    case 179 /* SetAccessor */:\n    case 175 /* MethodDeclaration */:\n      return node.body !== void 0 && parent2 !== void 0 && (useLegacyDecorators ? isClassDeclaration(parent2) : isClassLike(parent2));\n    case 170 /* Parameter */:\n      if (!useLegacyDecorators) return false;\n      return parent2 !== void 0 && parent2.body !== void 0 && (parent2.kind === 177 /* Constructor */ || parent2.kind === 175 /* MethodDeclaration */ || parent2.kind === 179 /* SetAccessor */) && getThisParameter(parent2) !== node && grandparent !== void 0 && grandparent.kind === 264 /* ClassDeclaration */;\n  }\n  return false;\n}\nfunction nodeIsDecorated(useLegacyDecorators, node, parent2, grandparent) {\n  return hasDecorators(node) && nodeCanBeDecorated(useLegacyDecorators, node, parent2, grandparent);\n}\nfunction nodeOrChildIsDecorated(useLegacyDecorators, node, parent2, grandparent) {\n  return nodeIsDecorated(useLegacyDecorators, node, parent2, grandparent) || childIsDecorated(useLegacyDecorators, node, parent2);\n}\nfunction childIsDecorated(useLegacyDecorators, node, parent2) {\n  switch (node.kind) {\n    case 264 /* ClassDeclaration */:\n      return some(node.members, (m) => nodeOrChildIsDecorated(useLegacyDecorators, m, node, parent2));\n    case 232 /* ClassExpression */:\n      return !useLegacyDecorators && some(node.members, (m) => nodeOrChildIsDecorated(useLegacyDecorators, m, node, parent2));\n    case 175 /* MethodDeclaration */:\n    case 179 /* SetAccessor */:\n    case 177 /* Constructor */:\n      return some(node.parameters, (p) => nodeIsDecorated(useLegacyDecorators, p, node, parent2));\n    default:\n      return false;\n  }\n}\nfunction classOrConstructorParameterIsDecorated(useLegacyDecorators, node) {\n  if (nodeIsDecorated(useLegacyDecorators, node)) return true;\n  const constructor = getFirstConstructorWithBody(node);\n  return !!constructor && childIsDecorated(useLegacyDecorators, constructor, node);\n}\nfunction classElementOrClassElementParameterIsDecorated(useLegacyDecorators, node, parent2) {\n  let parameters;\n  if (isAccessor(node)) {\n    const { firstAccessor, secondAccessor, setAccessor } = getAllAccessorDeclarations(parent2.members, node);\n    const firstAccessorWithDecorators = hasDecorators(firstAccessor) ? firstAccessor : secondAccessor && hasDecorators(secondAccessor) ? secondAccessor : void 0;\n    if (!firstAccessorWithDecorators || node !== firstAccessorWithDecorators) {\n      return false;\n    }\n    parameters = setAccessor == null ? void 0 : setAccessor.parameters;\n  } else if (isMethodDeclaration(node)) {\n    parameters = node.parameters;\n  }\n  if (nodeIsDecorated(useLegacyDecorators, node, parent2)) {\n    return true;\n  }\n  if (parameters) {\n    for (const parameter of parameters) {\n      if (parameterIsThisKeyword(parameter)) continue;\n      if (nodeIsDecorated(useLegacyDecorators, parameter, node, parent2)) return true;\n    }\n  }\n  return false;\n}\nfunction isEmptyStringLiteral(node) {\n  if (node.textSourceNode) {\n    switch (node.textSourceNode.kind) {\n      case 11 /* StringLiteral */:\n        return isEmptyStringLiteral(node.textSourceNode);\n      case 15 /* NoSubstitutionTemplateLiteral */:\n        return node.text === \"\";\n    }\n    return false;\n  }\n  return node.text === \"\";\n}\nfunction isJSXTagName(node) {\n  const { parent: parent2 } = node;\n  if (parent2.kind === 287 /* JsxOpeningElement */ || parent2.kind === 286 /* JsxSelfClosingElement */ || parent2.kind === 288 /* JsxClosingElement */) {\n    return parent2.tagName === node;\n  }\n  return false;\n}\nfunction isExpressionNode(node) {\n  switch (node.kind) {\n    case 108 /* SuperKeyword */:\n    case 106 /* NullKeyword */:\n    case 112 /* TrueKeyword */:\n    case 97 /* FalseKeyword */:\n    case 14 /* RegularExpressionLiteral */:\n    case 210 /* ArrayLiteralExpression */:\n    case 211 /* ObjectLiteralExpression */:\n    case 212 /* PropertyAccessExpression */:\n    case 213 /* ElementAccessExpression */:\n    case 214 /* CallExpression */:\n    case 215 /* NewExpression */:\n    case 216 /* TaggedTemplateExpression */:\n    case 235 /* AsExpression */:\n    case 217 /* TypeAssertionExpression */:\n    case 239 /* SatisfiesExpression */:\n    case 236 /* NonNullExpression */:\n    case 218 /* ParenthesizedExpression */:\n    case 219 /* FunctionExpression */:\n    case 232 /* ClassExpression */:\n    case 220 /* ArrowFunction */:\n    case 223 /* VoidExpression */:\n    case 221 /* DeleteExpression */:\n    case 222 /* TypeOfExpression */:\n    case 225 /* PrefixUnaryExpression */:\n    case 226 /* PostfixUnaryExpression */:\n    case 227 /* BinaryExpression */:\n    case 228 /* ConditionalExpression */:\n    case 231 /* SpreadElement */:\n    case 229 /* TemplateExpression */:\n    case 233 /* OmittedExpression */:\n    case 285 /* JsxElement */:\n    case 286 /* JsxSelfClosingElement */:\n    case 289 /* JsxFragment */:\n    case 230 /* YieldExpression */:\n    case 224 /* AwaitExpression */:\n      return true;\n    case 237 /* MetaProperty */:\n      return !isImportCall(node.parent) || node.parent.expression !== node;\n    case 234 /* ExpressionWithTypeArguments */:\n      return !isHeritageClause(node.parent) && !isJSDocAugmentsTag(node.parent);\n    case 167 /* QualifiedName */:\n      while (node.parent.kind === 167 /* QualifiedName */) {\n        node = node.parent;\n      }\n      return node.parent.kind === 187 /* TypeQuery */ || isJSDocLinkLike(node.parent) || isJSDocNameReference(node.parent) || isJSDocMemberName(node.parent) || isJSXTagName(node);\n    case 312 /* JSDocMemberName */:\n      while (isJSDocMemberName(node.parent)) {\n        node = node.parent;\n      }\n      return node.parent.kind === 187 /* TypeQuery */ || isJSDocLinkLike(node.parent) || isJSDocNameReference(node.parent) || isJSDocMemberName(node.parent) || isJSXTagName(node);\n    case 81 /* PrivateIdentifier */:\n      return isBinaryExpression(node.parent) && node.parent.left === node && node.parent.operatorToken.kind === 103 /* InKeyword */;\n    case 80 /* Identifier */:\n      if (node.parent.kind === 187 /* TypeQuery */ || isJSDocLinkLike(node.parent) || isJSDocNameReference(node.parent) || isJSDocMemberName(node.parent) || isJSXTagName(node)) {\n        return true;\n      }\n    // falls through\n    case 9 /* NumericLiteral */:\n    case 10 /* BigIntLiteral */:\n    case 11 /* StringLiteral */:\n    case 15 /* NoSubstitutionTemplateLiteral */:\n    case 110 /* ThisKeyword */:\n      return isInExpressionContext(node);\n    default:\n      return false;\n  }\n}\nfunction isInExpressionContext(node) {\n  const { parent: parent2 } = node;\n  switch (parent2.kind) {\n    case 261 /* VariableDeclaration */:\n    case 170 /* Parameter */:\n    case 173 /* PropertyDeclaration */:\n    case 172 /* PropertySignature */:\n    case 307 /* EnumMember */:\n    case 304 /* PropertyAssignment */:\n    case 209 /* BindingElement */:\n      return parent2.initializer === node;\n    case 245 /* ExpressionStatement */:\n    case 246 /* IfStatement */:\n    case 247 /* DoStatement */:\n    case 248 /* WhileStatement */:\n    case 254 /* ReturnStatement */:\n    case 255 /* WithStatement */:\n    case 256 /* SwitchStatement */:\n    case 297 /* CaseClause */:\n    case 258 /* ThrowStatement */:\n      return parent2.expression === node;\n    case 249 /* ForStatement */:\n      const forStatement = parent2;\n      return forStatement.initializer === node && forStatement.initializer.kind !== 262 /* VariableDeclarationList */ || forStatement.condition === node || forStatement.incrementor === node;\n    case 250 /* ForInStatement */:\n    case 251 /* ForOfStatement */:\n      const forInOrOfStatement = parent2;\n      return forInOrOfStatement.initializer === node && forInOrOfStatement.initializer.kind !== 262 /* VariableDeclarationList */ || forInOrOfStatement.expression === node;\n    case 217 /* TypeAssertionExpression */:\n    case 235 /* AsExpression */:\n      return node === parent2.expression;\n    case 240 /* TemplateSpan */:\n      return node === parent2.expression;\n    case 168 /* ComputedPropertyName */:\n      return node === parent2.expression;\n    case 171 /* Decorator */:\n    case 295 /* JsxExpression */:\n    case 294 /* JsxSpreadAttribute */:\n    case 306 /* SpreadAssignment */:\n      return true;\n    case 234 /* ExpressionWithTypeArguments */:\n      return parent2.expression === node && !isPartOfTypeNode(parent2);\n    case 305 /* ShorthandPropertyAssignment */:\n      return parent2.objectAssignmentInitializer === node;\n    case 239 /* SatisfiesExpression */:\n      return node === parent2.expression;\n    default:\n      return isExpressionNode(parent2);\n  }\n}\nfunction isPartOfTypeQuery(node) {\n  while (node.kind === 167 /* QualifiedName */ || node.kind === 80 /* Identifier */) {\n    node = node.parent;\n  }\n  return node.kind === 187 /* TypeQuery */;\n}\nfunction isNamespaceReexportDeclaration(node) {\n  return isNamespaceExport(node) && !!node.parent.moduleSpecifier;\n}\nfunction isExternalModuleImportEqualsDeclaration(node) {\n  return node.kind === 272 /* ImportEqualsDeclaration */ && node.moduleReference.kind === 284 /* ExternalModuleReference */;\n}\nfunction getExternalModuleImportEqualsDeclarationExpression(node) {\n  Debug.assert(isExternalModuleImportEqualsDeclaration(node));\n  return node.moduleReference.expression;\n}\nfunction getExternalModuleRequireArgument(node) {\n  return isVariableDeclarationInitializedToBareOrAccessedRequire(node) && getLeftmostAccessExpression(node.initializer).arguments[0];\n}\nfunction isInternalModuleImportEqualsDeclaration(node) {\n  return node.kind === 272 /* ImportEqualsDeclaration */ && node.moduleReference.kind !== 284 /* ExternalModuleReference */;\n}\nfunction isFullSourceFile(sourceFile) {\n  return (sourceFile == null ? void 0 : sourceFile.kind) === 308 /* SourceFile */;\n}\nfunction isSourceFileJS(file) {\n  return isInJSFile(file);\n}\nfunction isInJSFile(node) {\n  return !!node && !!(node.flags & 524288 /* JavaScriptFile */);\n}\nfunction isInJsonFile(node) {\n  return !!node && !!(node.flags & 134217728 /* JsonFile */);\n}\nfunction isSourceFileNotJson(file) {\n  return !isJsonSourceFile(file);\n}\nfunction isInJSDoc(node) {\n  return !!node && !!(node.flags & 16777216 /* JSDoc */);\n}\nfunction isJSDocIndexSignature(node) {\n  return isTypeReferenceNode(node) && isIdentifier(node.typeName) && node.typeName.escapedText === \"Object\" && node.typeArguments && node.typeArguments.length === 2 && (node.typeArguments[0].kind === 154 /* StringKeyword */ || node.typeArguments[0].kind === 150 /* NumberKeyword */);\n}\nfunction isRequireCall(callExpression, requireStringLiteralLikeArgument) {\n  if (callExpression.kind !== 214 /* CallExpression */) {\n    return false;\n  }\n  const { expression, arguments: args } = callExpression;\n  if (expression.kind !== 80 /* Identifier */ || expression.escapedText !== \"require\") {\n    return false;\n  }\n  if (args.length !== 1) {\n    return false;\n  }\n  const arg = args[0];\n  return !requireStringLiteralLikeArgument || isStringLiteralLike(arg);\n}\nfunction isVariableDeclarationInitializedToRequire(node) {\n  return isVariableDeclarationInitializedWithRequireHelper(\n    node,\n    /*allowAccessedRequire*/\n    false\n  );\n}\nfunction isVariableDeclarationInitializedToBareOrAccessedRequire(node) {\n  return isVariableDeclarationInitializedWithRequireHelper(\n    node,\n    /*allowAccessedRequire*/\n    true\n  );\n}\nfunction isBindingElementOfBareOrAccessedRequire(node) {\n  return isBindingElement(node) && isVariableDeclarationInitializedToBareOrAccessedRequire(node.parent.parent);\n}\nfunction isVariableDeclarationInitializedWithRequireHelper(node, allowAccessedRequire) {\n  return isVariableDeclaration(node) && !!node.initializer && isRequireCall(\n    allowAccessedRequire ? getLeftmostAccessExpression(node.initializer) : node.initializer,\n    /*requireStringLiteralLikeArgument*/\n    true\n  );\n}\nfunction isRequireVariableStatement(node) {\n  return isVariableStatement(node) && node.declarationList.declarations.length > 0 && every(node.declarationList.declarations, (decl) => isVariableDeclarationInitializedToRequire(decl));\n}\nfunction isSingleOrDoubleQuote(charCode) {\n  return charCode === 39 /* singleQuote */ || charCode === 34 /* doubleQuote */;\n}\nfunction isStringDoubleQuoted(str, sourceFile) {\n  return getSourceTextOfNodeFromSourceFile(sourceFile, str).charCodeAt(0) === 34 /* doubleQuote */;\n}\nfunction isAssignmentDeclaration(decl) {\n  return isBinaryExpression(decl) || isAccessExpression(decl) || isIdentifier(decl) || isCallExpression(decl);\n}\nfunction getEffectiveInitializer(node) {\n  if (isInJSFile(node) && node.initializer && isBinaryExpression(node.initializer) && (node.initializer.operatorToken.kind === 57 /* BarBarToken */ || node.initializer.operatorToken.kind === 61 /* QuestionQuestionToken */) && node.name && isEntityNameExpression(node.name) && isSameEntityName(node.name, node.initializer.left)) {\n    return node.initializer.right;\n  }\n  return node.initializer;\n}\nfunction getDeclaredExpandoInitializer(node) {\n  const init = getEffectiveInitializer(node);\n  return init && getExpandoInitializer(init, isPrototypeAccess(node.name));\n}\nfunction hasExpandoValueProperty(node, isPrototypeAssignment) {\n  return forEach(node.properties, (p) => isPropertyAssignment(p) && isIdentifier(p.name) && p.name.escapedText === \"value\" && p.initializer && getExpandoInitializer(p.initializer, isPrototypeAssignment));\n}\nfunction getAssignedExpandoInitializer(node) {\n  if (node && node.parent && isBinaryExpression(node.parent) && node.parent.operatorToken.kind === 64 /* EqualsToken */) {\n    const isPrototypeAssignment = isPrototypeAccess(node.parent.left);\n    return getExpandoInitializer(node.parent.right, isPrototypeAssignment) || getDefaultedExpandoInitializer(node.parent.left, node.parent.right, isPrototypeAssignment);\n  }\n  if (node && isCallExpression(node) && isBindableObjectDefinePropertyCall(node)) {\n    const result = hasExpandoValueProperty(node.arguments[2], node.arguments[1].text === \"prototype\");\n    if (result) {\n      return result;\n    }\n  }\n}\nfunction getExpandoInitializer(initializer, isPrototypeAssignment) {\n  if (isCallExpression(initializer)) {\n    const e = skipParentheses(initializer.expression);\n    return e.kind === 219 /* FunctionExpression */ || e.kind === 220 /* ArrowFunction */ ? initializer : void 0;\n  }\n  if (initializer.kind === 219 /* FunctionExpression */ || initializer.kind === 232 /* ClassExpression */ || initializer.kind === 220 /* ArrowFunction */) {\n    return initializer;\n  }\n  if (isObjectLiteralExpression(initializer) && (initializer.properties.length === 0 || isPrototypeAssignment)) {\n    return initializer;\n  }\n}\nfunction getDefaultedExpandoInitializer(name, initializer, isPrototypeAssignment) {\n  const e = isBinaryExpression(initializer) && (initializer.operatorToken.kind === 57 /* BarBarToken */ || initializer.operatorToken.kind === 61 /* QuestionQuestionToken */) && getExpandoInitializer(initializer.right, isPrototypeAssignment);\n  if (e && isSameEntityName(name, initializer.left)) {\n    return e;\n  }\n}\nfunction isDefaultedExpandoInitializer(node) {\n  const name = isVariableDeclaration(node.parent) ? node.parent.name : isBinaryExpression(node.parent) && node.parent.operatorToken.kind === 64 /* EqualsToken */ ? node.parent.left : void 0;\n  return name && getExpandoInitializer(node.right, isPrototypeAccess(name)) && isEntityNameExpression(name) && isSameEntityName(name, node.left);\n}\nfunction getNameOfExpando(node) {\n  if (isBinaryExpression(node.parent)) {\n    const parent2 = (node.parent.operatorToken.kind === 57 /* BarBarToken */ || node.parent.operatorToken.kind === 61 /* QuestionQuestionToken */) && isBinaryExpression(node.parent.parent) ? node.parent.parent : node.parent;\n    if (parent2.operatorToken.kind === 64 /* EqualsToken */ && isIdentifier(parent2.left)) {\n      return parent2.left;\n    }\n  } else if (isVariableDeclaration(node.parent)) {\n    return node.parent.name;\n  }\n}\nfunction isSameEntityName(name, initializer) {\n  if (isPropertyNameLiteral(name) && isPropertyNameLiteral(initializer)) {\n    return getTextOfIdentifierOrLiteral(name) === getTextOfIdentifierOrLiteral(initializer);\n  }\n  if (isMemberName(name) && isLiteralLikeAccess(initializer) && (initializer.expression.kind === 110 /* ThisKeyword */ || isIdentifier(initializer.expression) && (initializer.expression.escapedText === \"window\" || initializer.expression.escapedText === \"self\" || initializer.expression.escapedText === \"global\"))) {\n    return isSameEntityName(name, getNameOrArgument(initializer));\n  }\n  if (isLiteralLikeAccess(name) && isLiteralLikeAccess(initializer)) {\n    return getElementOrPropertyAccessName(name) === getElementOrPropertyAccessName(initializer) && isSameEntityName(name.expression, initializer.expression);\n  }\n  return false;\n}\nfunction getRightMostAssignedExpression(node) {\n  while (isAssignmentExpression(\n    node,\n    /*excludeCompoundAssignment*/\n    true\n  )) {\n    node = node.right;\n  }\n  return node;\n}\nfunction isExportsIdentifier(node) {\n  return isIdentifier(node) && node.escapedText === \"exports\";\n}\nfunction isModuleIdentifier(node) {\n  return isIdentifier(node) && node.escapedText === \"module\";\n}\nfunction isModuleExportsAccessExpression(node) {\n  return (isPropertyAccessExpression(node) || isLiteralLikeElementAccess(node)) && isModuleIdentifier(node.expression) && getElementOrPropertyAccessName(node) === \"exports\";\n}\nfunction getAssignmentDeclarationKind(expr) {\n  const special = getAssignmentDeclarationKindWorker(expr);\n  return special === 5 /* Property */ || isInJSFile(expr) ? special : 0 /* None */;\n}\nfunction isBindableObjectDefinePropertyCall(expr) {\n  return length(expr.arguments) === 3 && isPropertyAccessExpression(expr.expression) && isIdentifier(expr.expression.expression) && idText(expr.expression.expression) === \"Object\" && idText(expr.expression.name) === \"defineProperty\" && isStringOrNumericLiteralLike(expr.arguments[1]) && isBindableStaticNameExpression(\n    expr.arguments[0],\n    /*excludeThisKeyword*/\n    true\n  );\n}\nfunction isLiteralLikeAccess(node) {\n  return isPropertyAccessExpression(node) || isLiteralLikeElementAccess(node);\n}\nfunction isLiteralLikeElementAccess(node) {\n  return isElementAccessExpression(node) && isStringOrNumericLiteralLike(node.argumentExpression);\n}\nfunction isBindableStaticAccessExpression(node, excludeThisKeyword) {\n  return isPropertyAccessExpression(node) && (!excludeThisKeyword && node.expression.kind === 110 /* ThisKeyword */ || isIdentifier(node.name) && isBindableStaticNameExpression(\n    node.expression,\n    /*excludeThisKeyword*/\n    true\n  )) || isBindableStaticElementAccessExpression(node, excludeThisKeyword);\n}\nfunction isBindableStaticElementAccessExpression(node, excludeThisKeyword) {\n  return isLiteralLikeElementAccess(node) && (!excludeThisKeyword && node.expression.kind === 110 /* ThisKeyword */ || isEntityNameExpression(node.expression) || isBindableStaticAccessExpression(\n    node.expression,\n    /*excludeThisKeyword*/\n    true\n  ));\n}\nfunction isBindableStaticNameExpression(node, excludeThisKeyword) {\n  return isEntityNameExpression(node) || isBindableStaticAccessExpression(node, excludeThisKeyword);\n}\nfunction getNameOrArgument(expr) {\n  if (isPropertyAccessExpression(expr)) {\n    return expr.name;\n  }\n  return expr.argumentExpression;\n}\nfunction getAssignmentDeclarationKindWorker(expr) {\n  if (isCallExpression(expr)) {\n    if (!isBindableObjectDefinePropertyCall(expr)) {\n      return 0 /* None */;\n    }\n    const entityName = expr.arguments[0];\n    if (isExportsIdentifier(entityName) || isModuleExportsAccessExpression(entityName)) {\n      return 8 /* ObjectDefinePropertyExports */;\n    }\n    if (isBindableStaticAccessExpression(entityName) && getElementOrPropertyAccessName(entityName) === \"prototype\") {\n      return 9 /* ObjectDefinePrototypeProperty */;\n    }\n    return 7 /* ObjectDefinePropertyValue */;\n  }\n  if (expr.operatorToken.kind !== 64 /* EqualsToken */ || !isAccessExpression(expr.left) || isVoidZero(getRightMostAssignedExpression(expr))) {\n    return 0 /* None */;\n  }\n  if (isBindableStaticNameExpression(\n    expr.left.expression,\n    /*excludeThisKeyword*/\n    true\n  ) && getElementOrPropertyAccessName(expr.left) === \"prototype\" && isObjectLiteralExpression(getInitializerOfBinaryExpression(expr))) {\n    return 6 /* Prototype */;\n  }\n  return getAssignmentDeclarationPropertyAccessKind(expr.left);\n}\nfunction isVoidZero(node) {\n  return isVoidExpression(node) && isNumericLiteral(node.expression) && node.expression.text === \"0\";\n}\nfunction getElementOrPropertyAccessArgumentExpressionOrName(node) {\n  if (isPropertyAccessExpression(node)) {\n    return node.name;\n  }\n  const arg = skipParentheses(node.argumentExpression);\n  if (isNumericLiteral(arg) || isStringLiteralLike(arg)) {\n    return arg;\n  }\n  return node;\n}\nfunction getElementOrPropertyAccessName(node) {\n  const name = getElementOrPropertyAccessArgumentExpressionOrName(node);\n  if (name) {\n    if (isIdentifier(name)) {\n      return name.escapedText;\n    }\n    if (isStringLiteralLike(name) || isNumericLiteral(name)) {\n      return escapeLeadingUnderscores(name.text);\n    }\n  }\n  return void 0;\n}\nfunction getAssignmentDeclarationPropertyAccessKind(lhs) {\n  if (lhs.expression.kind === 110 /* ThisKeyword */) {\n    return 4 /* ThisProperty */;\n  } else if (isModuleExportsAccessExpression(lhs)) {\n    return 2 /* ModuleExports */;\n  } else if (isBindableStaticNameExpression(\n    lhs.expression,\n    /*excludeThisKeyword*/\n    true\n  )) {\n    if (isPrototypeAccess(lhs.expression)) {\n      return 3 /* PrototypeProperty */;\n    }\n    let nextToLast = lhs;\n    while (!isIdentifier(nextToLast.expression)) {\n      nextToLast = nextToLast.expression;\n    }\n    const id = nextToLast.expression;\n    if ((id.escapedText === \"exports\" || id.escapedText === \"module\" && getElementOrPropertyAccessName(nextToLast) === \"exports\") && // ExportsProperty does not support binding with computed names\n    isBindableStaticAccessExpression(lhs)) {\n      return 1 /* ExportsProperty */;\n    }\n    if (isBindableStaticNameExpression(\n      lhs,\n      /*excludeThisKeyword*/\n      true\n    ) || isElementAccessExpression(lhs) && isDynamicName(lhs)) {\n      return 5 /* Property */;\n    }\n  }\n  return 0 /* None */;\n}\nfunction getInitializerOfBinaryExpression(expr) {\n  while (isBinaryExpression(expr.right)) {\n    expr = expr.right;\n  }\n  return expr.right;\n}\nfunction isPrototypePropertyAssignment(node) {\n  return isBinaryExpression(node) && getAssignmentDeclarationKind(node) === 3 /* PrototypeProperty */;\n}\nfunction isSpecialPropertyDeclaration(expr) {\n  return isInJSFile(expr) && expr.parent && expr.parent.kind === 245 /* ExpressionStatement */ && (!isElementAccessExpression(expr) || isLiteralLikeElementAccess(expr)) && !!getJSDocTypeTag(expr.parent);\n}\nfunction setValueDeclaration(symbol, node) {\n  const { valueDeclaration } = symbol;\n  if (!valueDeclaration || !(node.flags & 33554432 /* Ambient */ && !isInJSFile(node) && !(valueDeclaration.flags & 33554432 /* Ambient */)) && (isAssignmentDeclaration(valueDeclaration) && !isAssignmentDeclaration(node)) || valueDeclaration.kind !== node.kind && isEffectiveModuleDeclaration(valueDeclaration)) {\n    symbol.valueDeclaration = node;\n  }\n}\nfunction isFunctionSymbol(symbol) {\n  if (!symbol || !symbol.valueDeclaration) {\n    return false;\n  }\n  const decl = symbol.valueDeclaration;\n  return decl.kind === 263 /* FunctionDeclaration */ || isVariableDeclaration(decl) && decl.initializer && isFunctionLike(decl.initializer);\n}\nfunction canHaveModuleSpecifier(node) {\n  switch (node == null ? void 0 : node.kind) {\n    case 261 /* VariableDeclaration */:\n    case 209 /* BindingElement */:\n    case 273 /* ImportDeclaration */:\n    case 279 /* ExportDeclaration */:\n    case 272 /* ImportEqualsDeclaration */:\n    case 274 /* ImportClause */:\n    case 281 /* NamespaceExport */:\n    case 275 /* NamespaceImport */:\n    case 282 /* ExportSpecifier */:\n    case 277 /* ImportSpecifier */:\n    case 206 /* ImportType */:\n      return true;\n  }\n  return false;\n}\nfunction tryGetModuleSpecifierFromDeclaration(node) {\n  var _a, _b;\n  switch (node.kind) {\n    case 261 /* VariableDeclaration */:\n    case 209 /* BindingElement */:\n      return (_a = findAncestor(node.initializer, (node2) => isRequireCall(\n        node2,\n        /*requireStringLiteralLikeArgument*/\n        true\n      ))) == null ? void 0 : _a.arguments[0];\n    case 273 /* ImportDeclaration */:\n    case 279 /* ExportDeclaration */:\n    case 352 /* JSDocImportTag */:\n      return tryCast(node.moduleSpecifier, isStringLiteralLike);\n    case 272 /* ImportEqualsDeclaration */:\n      return tryCast((_b = tryCast(node.moduleReference, isExternalModuleReference)) == null ? void 0 : _b.expression, isStringLiteralLike);\n    case 274 /* ImportClause */:\n    case 281 /* NamespaceExport */:\n      return tryCast(node.parent.moduleSpecifier, isStringLiteralLike);\n    case 275 /* NamespaceImport */:\n    case 282 /* ExportSpecifier */:\n      return tryCast(node.parent.parent.moduleSpecifier, isStringLiteralLike);\n    case 277 /* ImportSpecifier */:\n      return tryCast(node.parent.parent.parent.moduleSpecifier, isStringLiteralLike);\n    case 206 /* ImportType */:\n      return isLiteralImportTypeNode(node) ? node.argument.literal : void 0;\n    default:\n      Debug.assertNever(node);\n  }\n}\nfunction importFromModuleSpecifier(node) {\n  return tryGetImportFromModuleSpecifier(node) || Debug.failBadSyntaxKind(node.parent);\n}\nfunction tryGetImportFromModuleSpecifier(node) {\n  switch (node.parent.kind) {\n    case 273 /* ImportDeclaration */:\n    case 279 /* ExportDeclaration */:\n    case 352 /* JSDocImportTag */:\n      return node.parent;\n    case 284 /* ExternalModuleReference */:\n      return node.parent.parent;\n    case 214 /* CallExpression */:\n      return isImportCall(node.parent) || isRequireCall(\n        node.parent,\n        /*requireStringLiteralLikeArgument*/\n        false\n      ) ? node.parent : void 0;\n    case 202 /* LiteralType */:\n      if (!isStringLiteral(node)) {\n        break;\n      }\n      return tryCast(node.parent.parent, isImportTypeNode);\n    default:\n      return void 0;\n  }\n}\nfunction shouldRewriteModuleSpecifier(specifier, compilerOptions) {\n  return !!compilerOptions.rewriteRelativeImportExtensions && pathIsRelative(specifier) && !isDeclarationFileName(specifier) && hasTSFileExtension(specifier);\n}\nfunction getExternalModuleName(node) {\n  switch (node.kind) {\n    case 273 /* ImportDeclaration */:\n    case 279 /* ExportDeclaration */:\n    case 352 /* JSDocImportTag */:\n      return node.moduleSpecifier;\n    case 272 /* ImportEqualsDeclaration */:\n      return node.moduleReference.kind === 284 /* ExternalModuleReference */ ? node.moduleReference.expression : void 0;\n    case 206 /* ImportType */:\n      return isLiteralImportTypeNode(node) ? node.argument.literal : void 0;\n    case 214 /* CallExpression */:\n      return node.arguments[0];\n    case 268 /* ModuleDeclaration */:\n      return node.name.kind === 11 /* StringLiteral */ ? node.name : void 0;\n    default:\n      return Debug.assertNever(node);\n  }\n}\nfunction getNamespaceDeclarationNode(node) {\n  switch (node.kind) {\n    case 273 /* ImportDeclaration */:\n      return node.importClause && tryCast(node.importClause.namedBindings, isNamespaceImport);\n    case 272 /* ImportEqualsDeclaration */:\n      return node;\n    case 279 /* ExportDeclaration */:\n      return node.exportClause && tryCast(node.exportClause, isNamespaceExport);\n    default:\n      return Debug.assertNever(node);\n  }\n}\nfunction isDefaultImport(node) {\n  return (node.kind === 273 /* ImportDeclaration */ || node.kind === 352 /* JSDocImportTag */) && !!node.importClause && !!node.importClause.name;\n}\nfunction forEachImportClauseDeclaration(node, action) {\n  if (node.name) {\n    const result = action(node);\n    if (result) return result;\n  }\n  if (node.namedBindings) {\n    const result = isNamespaceImport(node.namedBindings) ? action(node.namedBindings) : forEach(node.namedBindings.elements, action);\n    if (result) return result;\n  }\n}\nfunction hasQuestionToken(node) {\n  switch (node.kind) {\n    case 170 /* Parameter */:\n    case 175 /* MethodDeclaration */:\n    case 174 /* MethodSignature */:\n    case 305 /* ShorthandPropertyAssignment */:\n    case 304 /* PropertyAssignment */:\n    case 173 /* PropertyDeclaration */:\n    case 172 /* PropertySignature */:\n      return node.questionToken !== void 0;\n  }\n  return false;\n}\nfunction isJSDocConstructSignature(node) {\n  const param = isJSDocFunctionType(node) ? firstOrUndefined(node.parameters) : void 0;\n  const name = tryCast(param && param.name, isIdentifier);\n  return !!name && name.escapedText === \"new\";\n}\nfunction isJSDocTypeAlias(node) {\n  return node.kind === 347 /* JSDocTypedefTag */ || node.kind === 339 /* JSDocCallbackTag */ || node.kind === 341 /* JSDocEnumTag */;\n}\nfunction isTypeAlias(node) {\n  return isJSDocTypeAlias(node) || isTypeAliasDeclaration(node);\n}\nfunction getSourceOfAssignment(node) {\n  return isExpressionStatement(node) && isBinaryExpression(node.expression) && node.expression.operatorToken.kind === 64 /* EqualsToken */ ? getRightMostAssignedExpression(node.expression) : void 0;\n}\nfunction getSourceOfDefaultedAssignment(node) {\n  return isExpressionStatement(node) && isBinaryExpression(node.expression) && getAssignmentDeclarationKind(node.expression) !== 0 /* None */ && isBinaryExpression(node.expression.right) && (node.expression.right.operatorToken.kind === 57 /* BarBarToken */ || node.expression.right.operatorToken.kind === 61 /* QuestionQuestionToken */) ? node.expression.right.right : void 0;\n}\nfunction getSingleInitializerOfVariableStatementOrPropertyDeclaration(node) {\n  switch (node.kind) {\n    case 244 /* VariableStatement */:\n      const v = getSingleVariableOfVariableStatement(node);\n      return v && v.initializer;\n    case 173 /* PropertyDeclaration */:\n      return node.initializer;\n    case 304 /* PropertyAssignment */:\n      return node.initializer;\n  }\n}\nfunction getSingleVariableOfVariableStatement(node) {\n  return isVariableStatement(node) ? firstOrUndefined(node.declarationList.declarations) : void 0;\n}\nfunction getNestedModuleDeclaration(node) {\n  return isModuleDeclaration(node) && node.body && node.body.kind === 268 /* ModuleDeclaration */ ? node.body : void 0;\n}\nfunction canHaveFlowNode(node) {\n  if (node.kind >= 244 /* FirstStatement */ && node.kind <= 260 /* LastStatement */) {\n    return true;\n  }\n  switch (node.kind) {\n    case 80 /* Identifier */:\n    case 110 /* ThisKeyword */:\n    case 108 /* SuperKeyword */:\n    case 167 /* QualifiedName */:\n    case 237 /* MetaProperty */:\n    case 213 /* ElementAccessExpression */:\n    case 212 /* PropertyAccessExpression */:\n    case 209 /* BindingElement */:\n    case 219 /* FunctionExpression */:\n    case 220 /* ArrowFunction */:\n    case 175 /* MethodDeclaration */:\n    case 178 /* GetAccessor */:\n    case 179 /* SetAccessor */:\n      return true;\n    default:\n      return false;\n  }\n}\nfunction canHaveJSDoc(node) {\n  switch (node.kind) {\n    case 220 /* ArrowFunction */:\n    case 227 /* BinaryExpression */:\n    case 242 /* Block */:\n    case 253 /* BreakStatement */:\n    case 180 /* CallSignature */:\n    case 297 /* CaseClause */:\n    case 264 /* ClassDeclaration */:\n    case 232 /* ClassExpression */:\n    case 176 /* ClassStaticBlockDeclaration */:\n    case 177 /* Constructor */:\n    case 186 /* ConstructorType */:\n    case 181 /* ConstructSignature */:\n    case 252 /* ContinueStatement */:\n    case 260 /* DebuggerStatement */:\n    case 247 /* DoStatement */:\n    case 213 /* ElementAccessExpression */:\n    case 243 /* EmptyStatement */:\n    case 1 /* EndOfFileToken */:\n    case 267 /* EnumDeclaration */:\n    case 307 /* EnumMember */:\n    case 278 /* ExportAssignment */:\n    case 279 /* ExportDeclaration */:\n    case 282 /* ExportSpecifier */:\n    case 245 /* ExpressionStatement */:\n    case 250 /* ForInStatement */:\n    case 251 /* ForOfStatement */:\n    case 249 /* ForStatement */:\n    case 263 /* FunctionDeclaration */:\n    case 219 /* FunctionExpression */:\n    case 185 /* FunctionType */:\n    case 178 /* GetAccessor */:\n    case 80 /* Identifier */:\n    case 246 /* IfStatement */:\n    case 273 /* ImportDeclaration */:\n    case 272 /* ImportEqualsDeclaration */:\n    case 182 /* IndexSignature */:\n    case 265 /* InterfaceDeclaration */:\n    case 318 /* JSDocFunctionType */:\n    case 324 /* JSDocSignature */:\n    case 257 /* LabeledStatement */:\n    case 175 /* MethodDeclaration */:\n    case 174 /* MethodSignature */:\n    case 268 /* ModuleDeclaration */:\n    case 203 /* NamedTupleMember */:\n    case 271 /* NamespaceExportDeclaration */:\n    case 211 /* ObjectLiteralExpression */:\n    case 170 /* Parameter */:\n    case 218 /* ParenthesizedExpression */:\n    case 212 /* PropertyAccessExpression */:\n    case 304 /* PropertyAssignment */:\n    case 173 /* PropertyDeclaration */:\n    case 172 /* PropertySignature */:\n    case 254 /* ReturnStatement */:\n    case 241 /* SemicolonClassElement */:\n    case 179 /* SetAccessor */:\n    case 305 /* ShorthandPropertyAssignment */:\n    case 306 /* SpreadAssignment */:\n    case 256 /* SwitchStatement */:\n    case 258 /* ThrowStatement */:\n    case 259 /* TryStatement */:\n    case 266 /* TypeAliasDeclaration */:\n    case 169 /* TypeParameter */:\n    case 261 /* VariableDeclaration */:\n    case 244 /* VariableStatement */:\n    case 248 /* WhileStatement */:\n    case 255 /* WithStatement */:\n      return true;\n    default:\n      return false;\n  }\n}\nfunction getJSDocCommentsAndTags(hostNode, noCache) {\n  let result;\n  if (isVariableLike(hostNode) && hasInitializer(hostNode) && hasJSDocNodes(hostNode.initializer)) {\n    result = addRange(result, filterOwnedJSDocTags(hostNode, hostNode.initializer.jsDoc));\n  }\n  let node = hostNode;\n  while (node && node.parent) {\n    if (hasJSDocNodes(node)) {\n      result = addRange(result, filterOwnedJSDocTags(hostNode, node.jsDoc));\n    }\n    if (node.kind === 170 /* Parameter */) {\n      result = addRange(result, (noCache ? getJSDocParameterTagsNoCache : getJSDocParameterTags)(node));\n      break;\n    }\n    if (node.kind === 169 /* TypeParameter */) {\n      result = addRange(result, (noCache ? getJSDocTypeParameterTagsNoCache : getJSDocTypeParameterTags)(node));\n      break;\n    }\n    node = getNextJSDocCommentLocation(node);\n  }\n  return result || emptyArray;\n}\nfunction filterOwnedJSDocTags(hostNode, comments) {\n  const lastJsDoc = last(comments);\n  return flatMap(comments, (jsDoc) => {\n    if (jsDoc === lastJsDoc) {\n      const ownedTags = filter(jsDoc.tags, (tag) => ownsJSDocTag(hostNode, tag));\n      return jsDoc.tags === ownedTags ? [jsDoc] : ownedTags;\n    } else {\n      return filter(jsDoc.tags, isJSDocOverloadTag);\n    }\n  });\n}\nfunction ownsJSDocTag(hostNode, tag) {\n  return !(isJSDocTypeTag(tag) || isJSDocSatisfiesTag(tag)) || !tag.parent || !isJSDoc(tag.parent) || !isParenthesizedExpression(tag.parent.parent) || tag.parent.parent === hostNode;\n}\nfunction getNextJSDocCommentLocation(node) {\n  const parent2 = node.parent;\n  if (parent2.kind === 304 /* PropertyAssignment */ || parent2.kind === 278 /* ExportAssignment */ || parent2.kind === 173 /* PropertyDeclaration */ || parent2.kind === 245 /* ExpressionStatement */ && node.kind === 212 /* PropertyAccessExpression */ || parent2.kind === 254 /* ReturnStatement */ || getNestedModuleDeclaration(parent2) || isAssignmentExpression(node)) {\n    return parent2;\n  } else if (parent2.parent && (getSingleVariableOfVariableStatement(parent2.parent) === node || isAssignmentExpression(parent2))) {\n    return parent2.parent;\n  } else if (parent2.parent && parent2.parent.parent && (getSingleVariableOfVariableStatement(parent2.parent.parent) || getSingleInitializerOfVariableStatementOrPropertyDeclaration(parent2.parent.parent) === node || getSourceOfDefaultedAssignment(parent2.parent.parent))) {\n    return parent2.parent.parent;\n  }\n}\nfunction getParameterSymbolFromJSDoc(node) {\n  if (node.symbol) {\n    return node.symbol;\n  }\n  if (!isIdentifier(node.name)) {\n    return void 0;\n  }\n  const name = node.name.escapedText;\n  const decl = getHostSignatureFromJSDoc(node);\n  if (!decl) {\n    return void 0;\n  }\n  const parameter = find(decl.parameters, (p) => p.name.kind === 80 /* Identifier */ && p.name.escapedText === name);\n  return parameter && parameter.symbol;\n}\nfunction getEffectiveContainerForJSDocTemplateTag(node) {\n  if (isJSDoc(node.parent) && node.parent.tags) {\n    const typeAlias = find(node.parent.tags, isJSDocTypeAlias);\n    if (typeAlias) {\n      return typeAlias;\n    }\n  }\n  return getHostSignatureFromJSDoc(node);\n}\nfunction getJSDocOverloadTags(node) {\n  return getAllJSDocTags(node, isJSDocOverloadTag);\n}\nfunction getHostSignatureFromJSDoc(node) {\n  const host = getEffectiveJSDocHost(node);\n  if (host) {\n    return isPropertySignature(host) && host.type && isFunctionLike(host.type) ? host.type : isFunctionLike(host) ? host : void 0;\n  }\n  return void 0;\n}\nfunction getEffectiveJSDocHost(node) {\n  const host = getJSDocHost(node);\n  if (host) {\n    return getSourceOfDefaultedAssignment(host) || getSourceOfAssignment(host) || getSingleInitializerOfVariableStatementOrPropertyDeclaration(host) || getSingleVariableOfVariableStatement(host) || getNestedModuleDeclaration(host) || host;\n  }\n}\nfunction getJSDocHost(node) {\n  const jsDoc = getJSDocRoot(node);\n  if (!jsDoc) {\n    return void 0;\n  }\n  const host = jsDoc.parent;\n  if (host && host.jsDoc && jsDoc === lastOrUndefined(host.jsDoc)) {\n    return host;\n  }\n}\nfunction getJSDocRoot(node) {\n  return findAncestor(node.parent, isJSDoc);\n}\nfunction getTypeParameterFromJsDoc(node) {\n  const name = node.name.escapedText;\n  const { typeParameters } = node.parent.parent.parent;\n  return typeParameters && find(typeParameters, (p) => p.name.escapedText === name);\n}\nfunction hasTypeArguments(node) {\n  return !!node.typeArguments;\n}\nvar AssignmentKind = /* @__PURE__ */ ((AssignmentKind2) => {\n  AssignmentKind2[AssignmentKind2[\"None\"] = 0] = \"None\";\n  AssignmentKind2[AssignmentKind2[\"Definite\"] = 1] = \"Definite\";\n  AssignmentKind2[AssignmentKind2[\"Compound\"] = 2] = \"Compound\";\n  return AssignmentKind2;\n})(AssignmentKind || {});\nfunction getAssignmentTarget(node) {\n  let parent2 = node.parent;\n  while (true) {\n    switch (parent2.kind) {\n      case 227 /* BinaryExpression */:\n        const binaryExpression = parent2;\n        const binaryOperator = binaryExpression.operatorToken.kind;\n        return isAssignmentOperator(binaryOperator) && binaryExpression.left === node ? binaryExpression : void 0;\n      case 225 /* PrefixUnaryExpression */:\n      case 226 /* PostfixUnaryExpression */:\n        const unaryExpression = parent2;\n        const unaryOperator = unaryExpression.operator;\n        return unaryOperator === 46 /* PlusPlusToken */ || unaryOperator === 47 /* MinusMinusToken */ ? unaryExpression : void 0;\n      case 250 /* ForInStatement */:\n      case 251 /* ForOfStatement */:\n        const forInOrOfStatement = parent2;\n        return forInOrOfStatement.initializer === node ? forInOrOfStatement : void 0;\n      case 218 /* ParenthesizedExpression */:\n      case 210 /* ArrayLiteralExpression */:\n      case 231 /* SpreadElement */:\n      case 236 /* NonNullExpression */:\n        node = parent2;\n        break;\n      case 306 /* SpreadAssignment */:\n        node = parent2.parent;\n        break;\n      case 305 /* ShorthandPropertyAssignment */:\n        if (parent2.name !== node) {\n          return void 0;\n        }\n        node = parent2.parent;\n        break;\n      case 304 /* PropertyAssignment */:\n        if (parent2.name === node) {\n          return void 0;\n        }\n        node = parent2.parent;\n        break;\n      default:\n        return void 0;\n    }\n    parent2 = node.parent;\n  }\n}\nfunction getAssignmentTargetKind(node) {\n  const target = getAssignmentTarget(node);\n  if (!target) {\n    return 0 /* None */;\n  }\n  switch (target.kind) {\n    case 227 /* BinaryExpression */:\n      const binaryOperator = target.operatorToken.kind;\n      return binaryOperator === 64 /* EqualsToken */ || isLogicalOrCoalescingAssignmentOperator(binaryOperator) ? 1 /* Definite */ : 2 /* Compound */;\n    case 225 /* PrefixUnaryExpression */:\n    case 226 /* PostfixUnaryExpression */:\n      return 2 /* Compound */;\n    case 250 /* ForInStatement */:\n    case 251 /* ForOfStatement */:\n      return 1 /* Definite */;\n  }\n}\nfunction isAssignmentTarget(node) {\n  return !!getAssignmentTarget(node);\n}\nfunction isCompoundLikeAssignment(assignment) {\n  const right = skipParentheses(assignment.right);\n  return right.kind === 227 /* BinaryExpression */ && isShiftOperatorOrHigher(right.operatorToken.kind);\n}\nfunction isInCompoundLikeAssignment(node) {\n  const target = getAssignmentTarget(node);\n  return !!target && isAssignmentExpression(\n    target,\n    /*excludeCompoundAssignment*/\n    true\n  ) && isCompoundLikeAssignment(target);\n}\nfunction isNodeWithPossibleHoistedDeclaration(node) {\n  switch (node.kind) {\n    case 242 /* Block */:\n    case 244 /* VariableStatement */:\n    case 255 /* WithStatement */:\n    case 246 /* IfStatement */:\n    case 256 /* SwitchStatement */:\n    case 270 /* CaseBlock */:\n    case 297 /* CaseClause */:\n    case 298 /* DefaultClause */:\n    case 257 /* LabeledStatement */:\n    case 249 /* ForStatement */:\n    case 250 /* ForInStatement */:\n    case 251 /* ForOfStatement */:\n    case 247 /* DoStatement */:\n    case 248 /* WhileStatement */:\n    case 259 /* TryStatement */:\n    case 300 /* CatchClause */:\n      return true;\n  }\n  return false;\n}\nfunction isValueSignatureDeclaration(node) {\n  return isFunctionExpression(node) || isArrowFunction(node) || isMethodOrAccessor(node) || isFunctionDeclaration(node) || isConstructorDeclaration(node);\n}\nfunction walkUp(node, kind) {\n  while (node && node.kind === kind) {\n    node = node.parent;\n  }\n  return node;\n}\nfunction walkUpParenthesizedTypes(node) {\n  return walkUp(node, 197 /* ParenthesizedType */);\n}\nfunction walkUpParenthesizedExpressions(node) {\n  return walkUp(node, 218 /* ParenthesizedExpression */);\n}\nfunction walkUpParenthesizedTypesAndGetParentAndChild(node) {\n  let child;\n  while (node && node.kind === 197 /* ParenthesizedType */) {\n    child = node;\n    node = node.parent;\n  }\n  return [child, node];\n}\nfunction skipTypeParentheses(node) {\n  while (isParenthesizedTypeNode(node)) node = node.type;\n  return node;\n}\nfunction skipParentheses(node, excludeJSDocTypeAssertions) {\n  const flags = excludeJSDocTypeAssertions ? 1 /* Parentheses */ | -2147483648 /* ExcludeJSDocTypeAssertion */ : 1 /* Parentheses */;\n  return skipOuterExpressions(node, flags);\n}\nfunction isDeleteTarget(node) {\n  if (node.kind !== 212 /* PropertyAccessExpression */ && node.kind !== 213 /* ElementAccessExpression */) {\n    return false;\n  }\n  node = walkUpParenthesizedExpressions(node.parent);\n  return node && node.kind === 221 /* DeleteExpression */;\n}\nfunction isNodeDescendantOf(node, ancestor) {\n  while (node) {\n    if (node === ancestor) return true;\n    node = node.parent;\n  }\n  return false;\n}\nfunction isDeclarationName(name) {\n  return !isSourceFile(name) && !isBindingPattern(name) && isDeclaration(name.parent) && name.parent.name === name;\n}\nfunction getDeclarationFromName(name) {\n  const parent2 = name.parent;\n  switch (name.kind) {\n    case 11 /* StringLiteral */:\n    case 15 /* NoSubstitutionTemplateLiteral */:\n    case 9 /* NumericLiteral */:\n      if (isComputedPropertyName(parent2)) return parent2.parent;\n    // falls through\n    case 80 /* Identifier */:\n      if (isDeclaration(parent2)) {\n        return parent2.name === name ? parent2 : void 0;\n      } else if (isQualifiedName(parent2)) {\n        const tag = parent2.parent;\n        return isJSDocParameterTag(tag) && tag.name === parent2 ? tag : void 0;\n      } else {\n        const binExp = parent2.parent;\n        return isBinaryExpression(binExp) && getAssignmentDeclarationKind(binExp) !== 0 /* None */ && (binExp.left.symbol || binExp.symbol) && getNameOfDeclaration(binExp) === name ? binExp : void 0;\n      }\n    case 81 /* PrivateIdentifier */:\n      return isDeclaration(parent2) && parent2.name === name ? parent2 : void 0;\n    default:\n      return void 0;\n  }\n}\nfunction isLiteralComputedPropertyDeclarationName(node) {\n  return isStringOrNumericLiteralLike(node) && node.parent.kind === 168 /* ComputedPropertyName */ && isDeclaration(node.parent.parent);\n}\nfunction isIdentifierName(node) {\n  const parent2 = node.parent;\n  switch (parent2.kind) {\n    case 173 /* PropertyDeclaration */:\n    case 172 /* PropertySignature */:\n    case 175 /* MethodDeclaration */:\n    case 174 /* MethodSignature */:\n    case 178 /* GetAccessor */:\n    case 179 /* SetAccessor */:\n    case 307 /* EnumMember */:\n    case 304 /* PropertyAssignment */:\n    case 212 /* PropertyAccessExpression */:\n      return parent2.name === node;\n    case 167 /* QualifiedName */:\n      return parent2.right === node;\n    case 209 /* BindingElement */:\n    case 277 /* ImportSpecifier */:\n      return parent2.propertyName === node;\n    case 282 /* ExportSpecifier */:\n    case 292 /* JsxAttribute */:\n    case 286 /* JsxSelfClosingElement */:\n    case 287 /* JsxOpeningElement */:\n    case 288 /* JsxClosingElement */:\n      return true;\n  }\n  return false;\n}\nfunction getAliasDeclarationFromName(node) {\n  switch (node.parent.kind) {\n    case 274 /* ImportClause */:\n    case 277 /* ImportSpecifier */:\n    case 275 /* NamespaceImport */:\n    case 282 /* ExportSpecifier */:\n    case 278 /* ExportAssignment */:\n    case 272 /* ImportEqualsDeclaration */:\n    case 281 /* NamespaceExport */:\n      return node.parent;\n    case 167 /* QualifiedName */:\n      do {\n        node = node.parent;\n      } while (node.parent.kind === 167 /* QualifiedName */);\n      return getAliasDeclarationFromName(node);\n  }\n}\nfunction isAliasableExpression(e) {\n  return isEntityNameExpression(e) || isClassExpression(e);\n}\nfunction exportAssignmentIsAlias(node) {\n  const e = getExportAssignmentExpression(node);\n  return isAliasableExpression(e);\n}\nfunction getExportAssignmentExpression(node) {\n  return isExportAssignment(node) ? node.expression : node.right;\n}\nfunction getPropertyAssignmentAliasLikeExpression(node) {\n  return node.kind === 305 /* ShorthandPropertyAssignment */ ? node.name : node.kind === 304 /* PropertyAssignment */ ? node.initializer : node.parent.right;\n}\nfunction getEffectiveBaseTypeNode(node) {\n  const baseType = getClassExtendsHeritageElement(node);\n  if (baseType && isInJSFile(node)) {\n    const tag = getJSDocAugmentsTag(node);\n    if (tag) {\n      return tag.class;\n    }\n  }\n  return baseType;\n}\nfunction getClassExtendsHeritageElement(node) {\n  const heritageClause = getHeritageClause(node.heritageClauses, 96 /* ExtendsKeyword */);\n  return heritageClause && heritageClause.types.length > 0 ? heritageClause.types[0] : void 0;\n}\nfunction getEffectiveImplementsTypeNodes(node) {\n  if (isInJSFile(node)) {\n    return getJSDocImplementsTags(node).map((n) => n.class);\n  } else {\n    const heritageClause = getHeritageClause(node.heritageClauses, 119 /* ImplementsKeyword */);\n    return heritageClause == null ? void 0 : heritageClause.types;\n  }\n}\nfunction getAllSuperTypeNodes(node) {\n  return isInterfaceDeclaration(node) ? getInterfaceBaseTypeNodes(node) || emptyArray : isClassLike(node) ? concatenate(singleElementArray(getEffectiveBaseTypeNode(node)), getEffectiveImplementsTypeNodes(node)) || emptyArray : emptyArray;\n}\nfunction getInterfaceBaseTypeNodes(node) {\n  const heritageClause = getHeritageClause(node.heritageClauses, 96 /* ExtendsKeyword */);\n  return heritageClause ? heritageClause.types : void 0;\n}\nfunction getHeritageClause(clauses, kind) {\n  if (clauses) {\n    for (const clause of clauses) {\n      if (clause.token === kind) {\n        return clause;\n      }\n    }\n  }\n  return void 0;\n}\nfunction getAncestor(node, kind) {\n  while (node) {\n    if (node.kind === kind) {\n      return node;\n    }\n    node = node.parent;\n  }\n  return void 0;\n}\nfunction isKeyword(token) {\n  return 83 /* FirstKeyword */ <= token && token <= 166 /* LastKeyword */;\n}\nfunction isPunctuation(token) {\n  return 19 /* FirstPunctuation */ <= token && token <= 79 /* LastPunctuation */;\n}\nfunction isKeywordOrPunctuation(token) {\n  return isKeyword(token) || isPunctuation(token);\n}\nfunction isContextualKeyword(token) {\n  return 128 /* FirstContextualKeyword */ <= token && token <= 166 /* LastContextualKeyword */;\n}\nfunction isNonContextualKeyword(token) {\n  return isKeyword(token) && !isContextualKeyword(token);\n}\nfunction isStringANonContextualKeyword(name) {\n  const token = stringToToken(name);\n  return token !== void 0 && isNonContextualKeyword(token);\n}\nfunction isIdentifierANonContextualKeyword(node) {\n  const originalKeywordKind = identifierToKeywordKind(node);\n  return !!originalKeywordKind && !isContextualKeyword(originalKeywordKind);\n}\nfunction isTrivia(token) {\n  return 2 /* FirstTriviaToken */ <= token && token <= 7 /* LastTriviaToken */;\n}\nvar FunctionFlags = /* @__PURE__ */ ((FunctionFlags2) => {\n  FunctionFlags2[FunctionFlags2[\"Normal\"] = 0] = \"Normal\";\n  FunctionFlags2[FunctionFlags2[\"Generator\"] = 1] = \"Generator\";\n  FunctionFlags2[FunctionFlags2[\"Async\"] = 2] = \"Async\";\n  FunctionFlags2[FunctionFlags2[\"Invalid\"] = 4] = \"Invalid\";\n  FunctionFlags2[FunctionFlags2[\"AsyncGenerator\"] = 3] = \"AsyncGenerator\";\n  return FunctionFlags2;\n})(FunctionFlags || {});\nfunction getFunctionFlags(node) {\n  if (!node) {\n    return 4 /* Invalid */;\n  }\n  let flags = 0 /* Normal */;\n  switch (node.kind) {\n    case 263 /* FunctionDeclaration */:\n    case 219 /* FunctionExpression */:\n    case 175 /* MethodDeclaration */:\n      if (node.asteriskToken) {\n        flags |= 1 /* Generator */;\n      }\n    // falls through\n    case 220 /* ArrowFunction */:\n      if (hasSyntacticModifier(node, 1024 /* Async */)) {\n        flags |= 2 /* Async */;\n      }\n      break;\n  }\n  if (!node.body) {\n    flags |= 4 /* Invalid */;\n  }\n  return flags;\n}\nfunction isAsyncFunction(node) {\n  switch (node.kind) {\n    case 263 /* FunctionDeclaration */:\n    case 219 /* FunctionExpression */:\n    case 220 /* ArrowFunction */:\n    case 175 /* MethodDeclaration */:\n      return node.body !== void 0 && node.asteriskToken === void 0 && hasSyntacticModifier(node, 1024 /* Async */);\n  }\n  return false;\n}\nfunction isStringOrNumericLiteralLike(node) {\n  return isStringLiteralLike(node) || isNumericLiteral(node);\n}\nfunction isSignedNumericLiteral(node) {\n  return isPrefixUnaryExpression(node) && (node.operator === 40 /* PlusToken */ || node.operator === 41 /* MinusToken */) && isNumericLiteral(node.operand);\n}\nfunction hasDynamicName(declaration) {\n  const name = getNameOfDeclaration(declaration);\n  return !!name && isDynamicName(name);\n}\nfunction isDynamicName(name) {\n  if (!(name.kind === 168 /* ComputedPropertyName */ || name.kind === 213 /* ElementAccessExpression */)) {\n    return false;\n  }\n  const expr = isElementAccessExpression(name) ? skipParentheses(name.argumentExpression) : name.expression;\n  return !isStringOrNumericLiteralLike(expr) && !isSignedNumericLiteral(expr);\n}\nfunction getPropertyNameForPropertyNameNode(name) {\n  switch (name.kind) {\n    case 80 /* Identifier */:\n    case 81 /* PrivateIdentifier */:\n      return name.escapedText;\n    case 11 /* StringLiteral */:\n    case 15 /* NoSubstitutionTemplateLiteral */:\n    case 9 /* NumericLiteral */:\n    case 10 /* BigIntLiteral */:\n      return escapeLeadingUnderscores(name.text);\n    case 168 /* ComputedPropertyName */:\n      const nameExpression = name.expression;\n      if (isStringOrNumericLiteralLike(nameExpression)) {\n        return escapeLeadingUnderscores(nameExpression.text);\n      } else if (isSignedNumericLiteral(nameExpression)) {\n        if (nameExpression.operator === 41 /* MinusToken */) {\n          return tokenToString(nameExpression.operator) + nameExpression.operand.text;\n        }\n        return nameExpression.operand.text;\n      }\n      return void 0;\n    case 296 /* JsxNamespacedName */:\n      return getEscapedTextOfJsxNamespacedName(name);\n    default:\n      return Debug.assertNever(name);\n  }\n}\nfunction isPropertyNameLiteral(node) {\n  switch (node.kind) {\n    case 80 /* Identifier */:\n    case 11 /* StringLiteral */:\n    case 15 /* NoSubstitutionTemplateLiteral */:\n    case 9 /* NumericLiteral */:\n      return true;\n    default:\n      return false;\n  }\n}\nfunction getTextOfIdentifierOrLiteral(node) {\n  return isMemberName(node) ? idText(node) : isJsxNamespacedName(node) ? getTextOfJsxNamespacedName(node) : node.text;\n}\nfunction getEscapedTextOfIdentifierOrLiteral(node) {\n  return isMemberName(node) ? node.escapedText : isJsxNamespacedName(node) ? getEscapedTextOfJsxNamespacedName(node) : escapeLeadingUnderscores(node.text);\n}\nfunction getSymbolNameForPrivateIdentifier(containingClassSymbol, description3) {\n  return `__#${getSymbolId(containingClassSymbol)}@${description3}`;\n}\nfunction isKnownSymbol(symbol) {\n  return startsWith(symbol.escapedName, \"__@\");\n}\nfunction isPrivateIdentifierSymbol(symbol) {\n  return startsWith(symbol.escapedName, \"__#\");\n}\nfunction isProtoSetter(node) {\n  return isIdentifier(node) ? idText(node) === \"__proto__\" : isStringLiteral(node) && node.text === \"__proto__\";\n}\nfunction isAnonymousFunctionDefinition(node, cb) {\n  node = skipOuterExpressions(node);\n  switch (node.kind) {\n    case 232 /* ClassExpression */:\n      if (classHasDeclaredOrExplicitlyAssignedName(node)) {\n        return false;\n      }\n      break;\n    case 219 /* FunctionExpression */:\n      if (node.name) {\n        return false;\n      }\n      break;\n    case 220 /* ArrowFunction */:\n      break;\n    default:\n      return false;\n  }\n  return typeof cb === \"function\" ? cb(node) : true;\n}\nfunction isNamedEvaluationSource(node) {\n  switch (node.kind) {\n    case 304 /* PropertyAssignment */:\n      return !isProtoSetter(node.name);\n    case 305 /* ShorthandPropertyAssignment */:\n      return !!node.objectAssignmentInitializer;\n    case 261 /* VariableDeclaration */:\n      return isIdentifier(node.name) && !!node.initializer;\n    case 170 /* Parameter */:\n      return isIdentifier(node.name) && !!node.initializer && !node.dotDotDotToken;\n    case 209 /* BindingElement */:\n      return isIdentifier(node.name) && !!node.initializer && !node.dotDotDotToken;\n    case 173 /* PropertyDeclaration */:\n      return !!node.initializer;\n    case 227 /* BinaryExpression */:\n      switch (node.operatorToken.kind) {\n        case 64 /* EqualsToken */:\n        case 77 /* AmpersandAmpersandEqualsToken */:\n        case 76 /* BarBarEqualsToken */:\n        case 78 /* QuestionQuestionEqualsToken */:\n          return isIdentifier(node.left);\n      }\n      break;\n    case 278 /* ExportAssignment */:\n      return true;\n  }\n  return false;\n}\nfunction isNamedEvaluation(node, cb) {\n  if (!isNamedEvaluationSource(node)) return false;\n  switch (node.kind) {\n    case 304 /* PropertyAssignment */:\n      return isAnonymousFunctionDefinition(node.initializer, cb);\n    case 305 /* ShorthandPropertyAssignment */:\n      return isAnonymousFunctionDefinition(node.objectAssignmentInitializer, cb);\n    case 261 /* VariableDeclaration */:\n    case 170 /* Parameter */:\n    case 209 /* BindingElement */:\n    case 173 /* PropertyDeclaration */:\n      return isAnonymousFunctionDefinition(node.initializer, cb);\n    case 227 /* BinaryExpression */:\n      return isAnonymousFunctionDefinition(node.right, cb);\n    case 278 /* ExportAssignment */:\n      return isAnonymousFunctionDefinition(node.expression, cb);\n  }\n}\nfunction isPushOrUnshiftIdentifier(node) {\n  return node.escapedText === \"push\" || node.escapedText === \"unshift\";\n}\nfunction isPartOfParameterDeclaration(node) {\n  const root = getRootDeclaration(node);\n  return root.kind === 170 /* Parameter */;\n}\nfunction getRootDeclaration(node) {\n  while (node.kind === 209 /* BindingElement */) {\n    node = node.parent.parent;\n  }\n  return node;\n}\nfunction nodeStartsNewLexicalEnvironment(node) {\n  const kind = node.kind;\n  return kind === 177 /* Constructor */ || kind === 219 /* FunctionExpression */ || kind === 263 /* FunctionDeclaration */ || kind === 220 /* ArrowFunction */ || kind === 175 /* MethodDeclaration */ || kind === 178 /* GetAccessor */ || kind === 179 /* SetAccessor */ || kind === 268 /* ModuleDeclaration */ || kind === 308 /* SourceFile */;\n}\nfunction nodeIsSynthesized(range) {\n  return positionIsSynthesized(range.pos) || positionIsSynthesized(range.end);\n}\nvar Associativity = /* @__PURE__ */ ((Associativity2) => {\n  Associativity2[Associativity2[\"Left\"] = 0] = \"Left\";\n  Associativity2[Associativity2[\"Right\"] = 1] = \"Right\";\n  return Associativity2;\n})(Associativity || {});\nfunction getExpressionAssociativity(expression) {\n  const operator = getOperator(expression);\n  const hasArguments = expression.kind === 215 /* NewExpression */ && expression.arguments !== void 0;\n  return getOperatorAssociativity(expression.kind, operator, hasArguments);\n}\nfunction getOperatorAssociativity(kind, operator, hasArguments) {\n  switch (kind) {\n    case 215 /* NewExpression */:\n      return hasArguments ? 0 /* Left */ : 1 /* Right */;\n    case 225 /* PrefixUnaryExpression */:\n    case 222 /* TypeOfExpression */:\n    case 223 /* VoidExpression */:\n    case 221 /* DeleteExpression */:\n    case 224 /* AwaitExpression */:\n    case 228 /* ConditionalExpression */:\n    case 230 /* YieldExpression */:\n      return 1 /* Right */;\n    case 227 /* BinaryExpression */:\n      switch (operator) {\n        case 43 /* AsteriskAsteriskToken */:\n        case 64 /* EqualsToken */:\n        case 65 /* PlusEqualsToken */:\n        case 66 /* MinusEqualsToken */:\n        case 68 /* AsteriskAsteriskEqualsToken */:\n        case 67 /* AsteriskEqualsToken */:\n        case 69 /* SlashEqualsToken */:\n        case 70 /* PercentEqualsToken */:\n        case 71 /* LessThanLessThanEqualsToken */:\n        case 72 /* GreaterThanGreaterThanEqualsToken */:\n        case 73 /* GreaterThanGreaterThanGreaterThanEqualsToken */:\n        case 74 /* AmpersandEqualsToken */:\n        case 79 /* CaretEqualsToken */:\n        case 75 /* BarEqualsToken */:\n        case 76 /* BarBarEqualsToken */:\n        case 77 /* AmpersandAmpersandEqualsToken */:\n        case 78 /* QuestionQuestionEqualsToken */:\n          return 1 /* Right */;\n      }\n  }\n  return 0 /* Left */;\n}\nfunction getExpressionPrecedence(expression) {\n  const operator = getOperator(expression);\n  const hasArguments = expression.kind === 215 /* NewExpression */ && expression.arguments !== void 0;\n  return getOperatorPrecedence(expression.kind, operator, hasArguments);\n}\nfunction getOperator(expression) {\n  if (expression.kind === 227 /* BinaryExpression */) {\n    return expression.operatorToken.kind;\n  } else if (expression.kind === 225 /* PrefixUnaryExpression */ || expression.kind === 226 /* PostfixUnaryExpression */) {\n    return expression.operator;\n  } else {\n    return expression.kind;\n  }\n}\nvar OperatorPrecedence = /* @__PURE__ */ ((OperatorPrecedence2) => {\n  OperatorPrecedence2[OperatorPrecedence2[\"Comma\"] = 0] = \"Comma\";\n  OperatorPrecedence2[OperatorPrecedence2[\"Spread\"] = 1] = \"Spread\";\n  OperatorPrecedence2[OperatorPrecedence2[\"Yield\"] = 2] = \"Yield\";\n  OperatorPrecedence2[OperatorPrecedence2[\"Assignment\"] = 3] = \"Assignment\";\n  OperatorPrecedence2[OperatorPrecedence2[\"Conditional\"] = 4] = \"Conditional\";\n  OperatorPrecedence2[OperatorPrecedence2[\"LogicalOR\"] = 5] = \"LogicalOR\";\n  OperatorPrecedence2[OperatorPrecedence2[\"Coalesce\"] = 5 /* LogicalOR */] = \"Coalesce\";\n  OperatorPrecedence2[OperatorPrecedence2[\"LogicalAND\"] = 6] = \"LogicalAND\";\n  OperatorPrecedence2[OperatorPrecedence2[\"BitwiseOR\"] = 7] = \"BitwiseOR\";\n  OperatorPrecedence2[OperatorPrecedence2[\"BitwiseXOR\"] = 8] = \"BitwiseXOR\";\n  OperatorPrecedence2[OperatorPrecedence2[\"BitwiseAND\"] = 9] = \"BitwiseAND\";\n  OperatorPrecedence2[OperatorPrecedence2[\"Equality\"] = 10] = \"Equality\";\n  OperatorPrecedence2[OperatorPrecedence2[\"Relational\"] = 11] = \"Relational\";\n  OperatorPrecedence2[OperatorPrecedence2[\"Shift\"] = 12] = \"Shift\";\n  OperatorPrecedence2[OperatorPrecedence2[\"Additive\"] = 13] = \"Additive\";\n  OperatorPrecedence2[OperatorPrecedence2[\"Multiplicative\"] = 14] = \"Multiplicative\";\n  OperatorPrecedence2[OperatorPrecedence2[\"Exponentiation\"] = 15] = \"Exponentiation\";\n  OperatorPrecedence2[OperatorPrecedence2[\"Unary\"] = 16] = \"Unary\";\n  OperatorPrecedence2[OperatorPrecedence2[\"Update\"] = 17] = \"Update\";\n  OperatorPrecedence2[OperatorPrecedence2[\"LeftHandSide\"] = 18] = \"LeftHandSide\";\n  OperatorPrecedence2[OperatorPrecedence2[\"Member\"] = 19] = \"Member\";\n  OperatorPrecedence2[OperatorPrecedence2[\"Primary\"] = 20] = \"Primary\";\n  OperatorPrecedence2[OperatorPrecedence2[\"Highest\"] = 20 /* Primary */] = \"Highest\";\n  OperatorPrecedence2[OperatorPrecedence2[\"Lowest\"] = 0 /* Comma */] = \"Lowest\";\n  OperatorPrecedence2[OperatorPrecedence2[\"Invalid\"] = -1] = \"Invalid\";\n  return OperatorPrecedence2;\n})(OperatorPrecedence || {});\nfunction getOperatorPrecedence(nodeKind, operatorKind, hasArguments) {\n  switch (nodeKind) {\n    case 357 /* CommaListExpression */:\n      return 0 /* Comma */;\n    case 231 /* SpreadElement */:\n      return 1 /* Spread */;\n    case 230 /* YieldExpression */:\n      return 2 /* Yield */;\n    case 228 /* ConditionalExpression */:\n      return 4 /* Conditional */;\n    case 227 /* BinaryExpression */:\n      switch (operatorKind) {\n        case 28 /* CommaToken */:\n          return 0 /* Comma */;\n        case 64 /* EqualsToken */:\n        case 65 /* PlusEqualsToken */:\n        case 66 /* MinusEqualsToken */:\n        case 68 /* AsteriskAsteriskEqualsToken */:\n        case 67 /* AsteriskEqualsToken */:\n        case 69 /* SlashEqualsToken */:\n        case 70 /* PercentEqualsToken */:\n        case 71 /* LessThanLessThanEqualsToken */:\n        case 72 /* GreaterThanGreaterThanEqualsToken */:\n        case 73 /* GreaterThanGreaterThanGreaterThanEqualsToken */:\n        case 74 /* AmpersandEqualsToken */:\n        case 79 /* CaretEqualsToken */:\n        case 75 /* BarEqualsToken */:\n        case 76 /* BarBarEqualsToken */:\n        case 77 /* AmpersandAmpersandEqualsToken */:\n        case 78 /* QuestionQuestionEqualsToken */:\n          return 3 /* Assignment */;\n        default:\n          return getBinaryOperatorPrecedence(operatorKind);\n      }\n    // TODO: Should prefix `++` and `--` be moved to the `Update` precedence?\n    case 217 /* TypeAssertionExpression */:\n    case 236 /* NonNullExpression */:\n    case 225 /* PrefixUnaryExpression */:\n    case 222 /* TypeOfExpression */:\n    case 223 /* VoidExpression */:\n    case 221 /* DeleteExpression */:\n    case 224 /* AwaitExpression */:\n      return 16 /* Unary */;\n    case 226 /* PostfixUnaryExpression */:\n      return 17 /* Update */;\n    case 214 /* CallExpression */:\n      return 18 /* LeftHandSide */;\n    case 215 /* NewExpression */:\n      return hasArguments ? 19 /* Member */ : 18 /* LeftHandSide */;\n    case 216 /* TaggedTemplateExpression */:\n    case 212 /* PropertyAccessExpression */:\n    case 213 /* ElementAccessExpression */:\n    case 237 /* MetaProperty */:\n      return 19 /* Member */;\n    case 235 /* AsExpression */:\n    case 239 /* SatisfiesExpression */:\n      return 11 /* Relational */;\n    case 110 /* ThisKeyword */:\n    case 108 /* SuperKeyword */:\n    case 80 /* Identifier */:\n    case 81 /* PrivateIdentifier */:\n    case 106 /* NullKeyword */:\n    case 112 /* TrueKeyword */:\n    case 97 /* FalseKeyword */:\n    case 9 /* NumericLiteral */:\n    case 10 /* BigIntLiteral */:\n    case 11 /* StringLiteral */:\n    case 210 /* ArrayLiteralExpression */:\n    case 211 /* ObjectLiteralExpression */:\n    case 219 /* FunctionExpression */:\n    case 220 /* ArrowFunction */:\n    case 232 /* ClassExpression */:\n    case 14 /* RegularExpressionLiteral */:\n    case 15 /* NoSubstitutionTemplateLiteral */:\n    case 229 /* TemplateExpression */:\n    case 218 /* ParenthesizedExpression */:\n    case 233 /* OmittedExpression */:\n    case 285 /* JsxElement */:\n    case 286 /* JsxSelfClosingElement */:\n    case 289 /* JsxFragment */:\n      return 20 /* Primary */;\n    default:\n      return -1 /* Invalid */;\n  }\n}\nfunction getBinaryOperatorPrecedence(kind) {\n  switch (kind) {\n    case 61 /* QuestionQuestionToken */:\n      return 5 /* Coalesce */;\n    case 57 /* BarBarToken */:\n      return 5 /* LogicalOR */;\n    case 56 /* AmpersandAmpersandToken */:\n      return 6 /* LogicalAND */;\n    case 52 /* BarToken */:\n      return 7 /* BitwiseOR */;\n    case 53 /* CaretToken */:\n      return 8 /* BitwiseXOR */;\n    case 51 /* AmpersandToken */:\n      return 9 /* BitwiseAND */;\n    case 35 /* EqualsEqualsToken */:\n    case 36 /* ExclamationEqualsToken */:\n    case 37 /* EqualsEqualsEqualsToken */:\n    case 38 /* ExclamationEqualsEqualsToken */:\n      return 10 /* Equality */;\n    case 30 /* LessThanToken */:\n    case 32 /* GreaterThanToken */:\n    case 33 /* LessThanEqualsToken */:\n    case 34 /* GreaterThanEqualsToken */:\n    case 104 /* InstanceOfKeyword */:\n    case 103 /* InKeyword */:\n    case 130 /* AsKeyword */:\n    case 152 /* SatisfiesKeyword */:\n      return 11 /* Relational */;\n    case 48 /* LessThanLessThanToken */:\n    case 49 /* GreaterThanGreaterThanToken */:\n    case 50 /* GreaterThanGreaterThanGreaterThanToken */:\n      return 12 /* Shift */;\n    case 40 /* PlusToken */:\n    case 41 /* MinusToken */:\n      return 13 /* Additive */;\n    case 42 /* AsteriskToken */:\n    case 44 /* SlashToken */:\n    case 45 /* PercentToken */:\n      return 14 /* Multiplicative */;\n    case 43 /* AsteriskAsteriskToken */:\n      return 15 /* Exponentiation */;\n  }\n  return -1;\n}\nfunction getSemanticJsxChildren(children) {\n  return filter(children, (i) => {\n    switch (i.kind) {\n      case 295 /* JsxExpression */:\n        return !!i.expression;\n      case 12 /* JsxText */:\n        return !i.containsOnlyTriviaWhiteSpaces;\n      default:\n        return true;\n    }\n  });\n}\nfunction createDiagnosticCollection() {\n  let nonFileDiagnostics = [];\n  const filesWithDiagnostics = [];\n  const fileDiagnostics = /* @__PURE__ */ new Map();\n  let hasReadNonFileDiagnostics = false;\n  return {\n    add,\n    lookup,\n    getGlobalDiagnostics,\n    getDiagnostics: getDiagnostics2\n  };\n  function lookup(diagnostic) {\n    let diagnostics;\n    if (diagnostic.file) {\n      diagnostics = fileDiagnostics.get(diagnostic.file.fileName);\n    } else {\n      diagnostics = nonFileDiagnostics;\n    }\n    if (!diagnostics) {\n      return void 0;\n    }\n    const result = binarySearch(diagnostics, diagnostic, identity, compareDiagnosticsSkipRelatedInformation);\n    if (result >= 0) {\n      return diagnostics[result];\n    }\n    if (~result > 0 && diagnosticsEqualityComparer(diagnostic, diagnostics[~result - 1])) {\n      return diagnostics[~result - 1];\n    }\n    return void 0;\n  }\n  function add(diagnostic) {\n    let diagnostics;\n    if (diagnostic.file) {\n      diagnostics = fileDiagnostics.get(diagnostic.file.fileName);\n      if (!diagnostics) {\n        diagnostics = [];\n        fileDiagnostics.set(diagnostic.file.fileName, diagnostics);\n        insertSorted(filesWithDiagnostics, diagnostic.file.fileName, compareStringsCaseSensitive);\n      }\n    } else {\n      if (hasReadNonFileDiagnostics) {\n        hasReadNonFileDiagnostics = false;\n        nonFileDiagnostics = nonFileDiagnostics.slice();\n      }\n      diagnostics = nonFileDiagnostics;\n    }\n    insertSorted(diagnostics, diagnostic, compareDiagnosticsSkipRelatedInformation, diagnosticsEqualityComparer);\n  }\n  function getGlobalDiagnostics() {\n    hasReadNonFileDiagnostics = true;\n    return nonFileDiagnostics;\n  }\n  function getDiagnostics2(fileName) {\n    if (fileName) {\n      return fileDiagnostics.get(fileName) || [];\n    }\n    const fileDiags = flatMapToMutable(filesWithDiagnostics, (f) => fileDiagnostics.get(f));\n    if (!nonFileDiagnostics.length) {\n      return fileDiags;\n    }\n    fileDiags.unshift(...nonFileDiagnostics);\n    return fileDiags;\n  }\n}\nvar templateSubstitutionRegExp = /\\$\\{/g;\nfunction escapeTemplateSubstitution(str) {\n  return str.replace(templateSubstitutionRegExp, \"\\\\${\");\n}\nfunction containsInvalidEscapeFlag(node) {\n  return !!((node.templateFlags || 0) & 2048 /* ContainsInvalidEscape */);\n}\nfunction hasInvalidEscape(template) {\n  return template && !!(isNoSubstitutionTemplateLiteral(template) ? containsInvalidEscapeFlag(template) : containsInvalidEscapeFlag(template.head) || some(template.templateSpans, (span) => containsInvalidEscapeFlag(span.literal)));\n}\nvar doubleQuoteEscapedCharsRegExp = /[\\\\\"\\u0000-\\u001f\\u2028\\u2029\\u0085]/g;\nvar singleQuoteEscapedCharsRegExp = /[\\\\'\\u0000-\\u001f\\u2028\\u2029\\u0085]/g;\nvar backtickQuoteEscapedCharsRegExp = /\\r\\n|[\\\\`\\u0000-\\u0009\\u000b-\\u001f\\u2028\\u2029\\u0085]/g;\nvar escapedCharsMap = new Map(Object.entries({\n  \"\t\": \"\\\\t\",\n  \"\\v\": \"\\\\v\",\n  \"\\f\": \"\\\\f\",\n  \"\\b\": \"\\\\b\",\n  \"\\r\": \"\\\\r\",\n  \"\\n\": \"\\\\n\",\n  \"\\\\\": \"\\\\\\\\\",\n  '\"': '\\\\\"',\n  \"'\": \"\\\\'\",\n  \"`\": \"\\\\`\",\n  \"\\u2028\": \"\\\\u2028\",\n  // lineSeparator\n  \"\\u2029\": \"\\\\u2029\",\n  // paragraphSeparator\n  \"\\x85\": \"\\\\u0085\",\n  // nextLine\n  \"\\r\\n\": \"\\\\r\\\\n\"\n  // special case for CRLFs in backticks\n}));\nfunction encodeUtf16EscapeSequence(charCode) {\n  const hexCharCode = charCode.toString(16).toUpperCase();\n  const paddedHexCode = (\"0000\" + hexCharCode).slice(-4);\n  return \"\\\\u\" + paddedHexCode;\n}\nfunction getReplacement(c, offset, input) {\n  if (c.charCodeAt(0) === 0 /* nullCharacter */) {\n    const lookAhead = input.charCodeAt(offset + c.length);\n    if (lookAhead >= 48 /* _0 */ && lookAhead <= 57 /* _9 */) {\n      return \"\\\\x00\";\n    }\n    return \"\\\\0\";\n  }\n  return escapedCharsMap.get(c) || encodeUtf16EscapeSequence(c.charCodeAt(0));\n}\nfunction escapeString(s, quoteChar) {\n  const escapedCharsRegExp = quoteChar === 96 /* backtick */ ? backtickQuoteEscapedCharsRegExp : quoteChar === 39 /* singleQuote */ ? singleQuoteEscapedCharsRegExp : doubleQuoteEscapedCharsRegExp;\n  return s.replace(escapedCharsRegExp, getReplacement);\n}\nvar nonAsciiCharacters = /[^\\u0000-\\u007F]/g;\nfunction escapeNonAsciiString(s, quoteChar) {\n  s = escapeString(s, quoteChar);\n  return nonAsciiCharacters.test(s) ? s.replace(nonAsciiCharacters, (c) => encodeUtf16EscapeSequence(c.charCodeAt(0))) : s;\n}\nvar jsxDoubleQuoteEscapedCharsRegExp = /[\"\\u0000-\\u001f\\u2028\\u2029\\u0085]/g;\nvar jsxSingleQuoteEscapedCharsRegExp = /['\\u0000-\\u001f\\u2028\\u2029\\u0085]/g;\nvar jsxEscapedCharsMap = new Map(Object.entries({\n  '\"': \"&quot;\",\n  \"'\": \"&apos;\"\n}));\nfunction encodeJsxCharacterEntity(charCode) {\n  const hexCharCode = charCode.toString(16).toUpperCase();\n  return \"&#x\" + hexCharCode + \";\";\n}\nfunction getJsxAttributeStringReplacement(c) {\n  if (c.charCodeAt(0) === 0 /* nullCharacter */) {\n    return \"&#0;\";\n  }\n  return jsxEscapedCharsMap.get(c) || encodeJsxCharacterEntity(c.charCodeAt(0));\n}\nfunction escapeJsxAttributeString(s, quoteChar) {\n  const escapedCharsRegExp = quoteChar === 39 /* singleQuote */ ? jsxSingleQuoteEscapedCharsRegExp : jsxDoubleQuoteEscapedCharsRegExp;\n  return s.replace(escapedCharsRegExp, getJsxAttributeStringReplacement);\n}\nfunction stripQuotes(name) {\n  const length2 = name.length;\n  if (length2 >= 2 && name.charCodeAt(0) === name.charCodeAt(length2 - 1) && isQuoteOrBacktick(name.charCodeAt(0))) {\n    return name.substring(1, length2 - 1);\n  }\n  return name;\n}\nfunction isQuoteOrBacktick(charCode) {\n  return charCode === 39 /* singleQuote */ || charCode === 34 /* doubleQuote */ || charCode === 96 /* backtick */;\n}\nfunction isIntrinsicJsxName(name) {\n  const ch = name.charCodeAt(0);\n  return ch >= 97 /* a */ && ch <= 122 /* z */ || name.includes(\"-\");\n}\nvar indentStrings = [\"\", \"    \"];\nfunction getIndentString(level) {\n  const singleLevel = indentStrings[1];\n  for (let current = indentStrings.length; current <= level; current++) {\n    indentStrings.push(indentStrings[current - 1] + singleLevel);\n  }\n  return indentStrings[level];\n}\nfunction getIndentSize() {\n  return indentStrings[1].length;\n}\nfunction createTextWriter(newLine) {\n  var output;\n  var indent3;\n  var lineStart;\n  var lineCount;\n  var linePos;\n  var hasTrailingComment = false;\n  function updateLineCountAndPosFor(s) {\n    const lineStartsOfS = computeLineStarts(s);\n    if (lineStartsOfS.length > 1) {\n      lineCount = lineCount + lineStartsOfS.length - 1;\n      linePos = output.length - s.length + last(lineStartsOfS);\n      lineStart = linePos - output.length === 0;\n    } else {\n      lineStart = false;\n    }\n  }\n  function writeText(s) {\n    if (s && s.length) {\n      if (lineStart) {\n        s = getIndentString(indent3) + s;\n        lineStart = false;\n      }\n      output += s;\n      updateLineCountAndPosFor(s);\n    }\n  }\n  function write(s) {\n    if (s) hasTrailingComment = false;\n    writeText(s);\n  }\n  function writeComment(s) {\n    if (s) hasTrailingComment = true;\n    writeText(s);\n  }\n  function reset2() {\n    output = \"\";\n    indent3 = 0;\n    lineStart = true;\n    lineCount = 0;\n    linePos = 0;\n    hasTrailingComment = false;\n  }\n  function rawWrite(s) {\n    if (s !== void 0) {\n      output += s;\n      updateLineCountAndPosFor(s);\n      hasTrailingComment = false;\n    }\n  }\n  function writeLiteral(s) {\n    if (s && s.length) {\n      write(s);\n    }\n  }\n  function writeLine(force) {\n    if (!lineStart || force) {\n      output += newLine;\n      lineCount++;\n      linePos = output.length;\n      lineStart = true;\n      hasTrailingComment = false;\n    }\n  }\n  reset2();\n  return {\n    write,\n    rawWrite,\n    writeLiteral,\n    writeLine,\n    increaseIndent: () => {\n      indent3++;\n    },\n    decreaseIndent: () => {\n      indent3--;\n    },\n    getIndent: () => indent3,\n    getTextPos: () => output.length,\n    getLine: () => lineCount,\n    getColumn: () => lineStart ? indent3 * getIndentSize() : output.length - linePos,\n    getText: () => output,\n    isAtStartOfLine: () => lineStart,\n    hasTrailingComment: () => hasTrailingComment,\n    hasTrailingWhitespace: () => !!output.length && isWhiteSpaceLike(output.charCodeAt(output.length - 1)),\n    clear: reset2,\n    writeKeyword: write,\n    writeOperator: write,\n    writeParameter: write,\n    writeProperty: write,\n    writePunctuation: write,\n    writeSpace: write,\n    writeStringLiteral: write,\n    writeSymbol: (s, _) => write(s),\n    writeTrailingSemicolon: write,\n    writeComment\n  };\n}\nfunction getTrailingSemicolonDeferringWriter(writer) {\n  let pendingTrailingSemicolon = false;\n  function commitPendingTrailingSemicolon() {\n    if (pendingTrailingSemicolon) {\n      writer.writeTrailingSemicolon(\";\");\n      pendingTrailingSemicolon = false;\n    }\n  }\n  return {\n    ...writer,\n    writeTrailingSemicolon() {\n      pendingTrailingSemicolon = true;\n    },\n    writeLiteral(s) {\n      commitPendingTrailingSemicolon();\n      writer.writeLiteral(s);\n    },\n    writeStringLiteral(s) {\n      commitPendingTrailingSemicolon();\n      writer.writeStringLiteral(s);\n    },\n    writeSymbol(s, sym) {\n      commitPendingTrailingSemicolon();\n      writer.writeSymbol(s, sym);\n    },\n    writePunctuation(s) {\n      commitPendingTrailingSemicolon();\n      writer.writePunctuation(s);\n    },\n    writeKeyword(s) {\n      commitPendingTrailingSemicolon();\n      writer.writeKeyword(s);\n    },\n    writeOperator(s) {\n      commitPendingTrailingSemicolon();\n      writer.writeOperator(s);\n    },\n    writeParameter(s) {\n      commitPendingTrailingSemicolon();\n      writer.writeParameter(s);\n    },\n    writeSpace(s) {\n      commitPendingTrailingSemicolon();\n      writer.writeSpace(s);\n    },\n    writeProperty(s) {\n      commitPendingTrailingSemicolon();\n      writer.writeProperty(s);\n    },\n    writeComment(s) {\n      commitPendingTrailingSemicolon();\n      writer.writeComment(s);\n    },\n    writeLine() {\n      commitPendingTrailingSemicolon();\n      writer.writeLine();\n    },\n    increaseIndent() {\n      commitPendingTrailingSemicolon();\n      writer.increaseIndent();\n    },\n    decreaseIndent() {\n      commitPendingTrailingSemicolon();\n      writer.decreaseIndent();\n    }\n  };\n}\nfunction hostUsesCaseSensitiveFileNames(host) {\n  return host.useCaseSensitiveFileNames ? host.useCaseSensitiveFileNames() : false;\n}\nfunction hostGetCanonicalFileName(host) {\n  return createGetCanonicalFileName(hostUsesCaseSensitiveFileNames(host));\n}\nfunction getResolvedExternalModuleName(host, file, referenceFile) {\n  return file.moduleName || getExternalModuleNameFromPath(host, file.fileName, referenceFile && referenceFile.fileName);\n}\nfunction getCanonicalAbsolutePath(host, path) {\n  return host.getCanonicalFileName(getNormalizedAbsolutePath(path, host.getCurrentDirectory()));\n}\nfunction getExternalModuleNameFromDeclaration(host, resolver, declaration) {\n  const file = resolver.getExternalModuleFileFromDeclaration(declaration);\n  if (!file || file.isDeclarationFile) {\n    return void 0;\n  }\n  const specifier = getExternalModuleName(declaration);\n  if (specifier && isStringLiteralLike(specifier) && !pathIsRelative(specifier.text) && !getCanonicalAbsolutePath(host, file.path).includes(getCanonicalAbsolutePath(host, ensureTrailingDirectorySeparator(host.getCommonSourceDirectory())))) {\n    return void 0;\n  }\n  return getResolvedExternalModuleName(host, file);\n}\nfunction getExternalModuleNameFromPath(host, fileName, referencePath) {\n  const getCanonicalFileName = (f) => host.getCanonicalFileName(f);\n  const dir = toPath(referencePath ? getDirectoryPath(referencePath) : host.getCommonSourceDirectory(), host.getCurrentDirectory(), getCanonicalFileName);\n  const filePath = getNormalizedAbsolutePath(fileName, host.getCurrentDirectory());\n  const relativePath = getRelativePathToDirectoryOrUrl(\n    dir,\n    filePath,\n    dir,\n    getCanonicalFileName,\n    /*isAbsolutePathAnUrl*/\n    false\n  );\n  const extensionless = removeFileExtension(relativePath);\n  return referencePath ? ensurePathIsNonModuleName(extensionless) : extensionless;\n}\nfunction getOwnEmitOutputFilePath(fileName, host, extension) {\n  const compilerOptions = host.getCompilerOptions();\n  let emitOutputFilePathWithoutExtension;\n  if (compilerOptions.outDir) {\n    emitOutputFilePathWithoutExtension = removeFileExtension(getSourceFilePathInNewDir(fileName, host, compilerOptions.outDir));\n  } else {\n    emitOutputFilePathWithoutExtension = removeFileExtension(fileName);\n  }\n  return emitOutputFilePathWithoutExtension + extension;\n}\nfunction getDeclarationEmitOutputFilePath(fileName, host) {\n  return getDeclarationEmitOutputFilePathWorker(fileName, host.getCompilerOptions(), host);\n}\nfunction getDeclarationEmitOutputFilePathWorker(fileName, options, host) {\n  const outputDir = options.declarationDir || options.outDir;\n  const path = outputDir ? getSourceFilePathInNewDirWorker(fileName, outputDir, host.getCurrentDirectory(), host.getCommonSourceDirectory(), (f) => host.getCanonicalFileName(f)) : fileName;\n  const declarationExtension = getDeclarationEmitExtensionForPath(path);\n  return removeFileExtension(path) + declarationExtension;\n}\nfunction getDeclarationEmitExtensionForPath(path) {\n  return fileExtensionIsOneOf(path, [\".mjs\" /* Mjs */, \".mts\" /* Mts */]) ? \".d.mts\" /* Dmts */ : fileExtensionIsOneOf(path, [\".cjs\" /* Cjs */, \".cts\" /* Cts */]) ? \".d.cts\" /* Dcts */ : fileExtensionIsOneOf(path, [\".json\" /* Json */]) ? `.d.json.ts` : (\n    // Drive-by redefinition of json declaration file output name so if it's ever enabled, it behaves well\n    \".d.ts\" /* Dts */\n  );\n}\nfunction getPossibleOriginalInputExtensionForExtension(path) {\n  return fileExtensionIsOneOf(path, [\".d.mts\" /* Dmts */, \".mjs\" /* Mjs */, \".mts\" /* Mts */]) ? [\".mts\" /* Mts */, \".mjs\" /* Mjs */] : fileExtensionIsOneOf(path, [\".d.cts\" /* Dcts */, \".cjs\" /* Cjs */, \".cts\" /* Cts */]) ? [\".cts\" /* Cts */, \".cjs\" /* Cjs */] : fileExtensionIsOneOf(path, [`.d.json.ts`]) ? [\".json\" /* Json */] : [\".tsx\" /* Tsx */, \".ts\" /* Ts */, \".jsx\" /* Jsx */, \".js\" /* Js */];\n}\nfunction getPossibleOriginalInputPathWithoutChangingExt(filePath, ignoreCase, outputDir, getCommonSourceDirectory2) {\n  return outputDir ? resolvePath(\n    getCommonSourceDirectory2(),\n    getRelativePathFromDirectory(outputDir, filePath, ignoreCase)\n  ) : filePath;\n}\nfunction getPathsBasePath(options, host) {\n  var _a;\n  if (!options.paths) return void 0;\n  return options.baseUrl ?? Debug.checkDefined(options.pathsBasePath || ((_a = host.getCurrentDirectory) == null ? void 0 : _a.call(host)), \"Encountered 'paths' without a 'baseUrl', config file, or host 'getCurrentDirectory'.\");\n}\nfunction getSourceFilesToEmit(host, targetSourceFile, forceDtsEmit) {\n  const options = host.getCompilerOptions();\n  if (options.outFile) {\n    const moduleKind = getEmitModuleKind(options);\n    const moduleEmitEnabled = options.emitDeclarationOnly || moduleKind === 2 /* AMD */ || moduleKind === 4 /* System */;\n    return filter(\n      host.getSourceFiles(),\n      (sourceFile) => (moduleEmitEnabled || !isExternalModule(sourceFile)) && sourceFileMayBeEmitted(sourceFile, host, forceDtsEmit)\n    );\n  } else {\n    const sourceFiles = targetSourceFile === void 0 ? host.getSourceFiles() : [targetSourceFile];\n    return filter(\n      sourceFiles,\n      (sourceFile) => sourceFileMayBeEmitted(sourceFile, host, forceDtsEmit)\n    );\n  }\n}\nfunction sourceFileMayBeEmitted(sourceFile, host, forceDtsEmit) {\n  const options = host.getCompilerOptions();\n  if (options.noEmitForJsFiles && isSourceFileJS(sourceFile)) return false;\n  if (sourceFile.isDeclarationFile) return false;\n  if (host.isSourceFileFromExternalLibrary(sourceFile)) return false;\n  if (forceDtsEmit) return true;\n  if (host.isSourceOfProjectReferenceRedirect(sourceFile.fileName)) return false;\n  if (!isJsonSourceFile(sourceFile)) return true;\n  if (host.getRedirectFromSourceFile(sourceFile.fileName)) return false;\n  if (options.outFile) return true;\n  if (!options.outDir) return false;\n  if (options.rootDir || options.composite && options.configFilePath) {\n    const commonDir = getNormalizedAbsolutePath(getCommonSourceDirectory(options, () => [], host.getCurrentDirectory(), host.getCanonicalFileName), host.getCurrentDirectory());\n    const outputPath = getSourceFilePathInNewDirWorker(sourceFile.fileName, options.outDir, host.getCurrentDirectory(), commonDir, host.getCanonicalFileName);\n    if (comparePaths(sourceFile.fileName, outputPath, host.getCurrentDirectory(), !host.useCaseSensitiveFileNames()) === 0 /* EqualTo */) return false;\n  }\n  return true;\n}\nfunction getSourceFilePathInNewDir(fileName, host, newDirPath) {\n  return getSourceFilePathInNewDirWorker(fileName, newDirPath, host.getCurrentDirectory(), host.getCommonSourceDirectory(), (f) => host.getCanonicalFileName(f));\n}\nfunction getSourceFilePathInNewDirWorker(fileName, newDirPath, currentDirectory, commonSourceDirectory, getCanonicalFileName) {\n  let sourceFilePath = getNormalizedAbsolutePath(fileName, currentDirectory);\n  const isSourceFileInCommonSourceDirectory = getCanonicalFileName(sourceFilePath).indexOf(getCanonicalFileName(commonSourceDirectory)) === 0;\n  sourceFilePath = isSourceFileInCommonSourceDirectory ? sourceFilePath.substring(commonSourceDirectory.length) : sourceFilePath;\n  return combinePaths(newDirPath, sourceFilePath);\n}\nfunction writeFile(host, diagnostics, fileName, text, writeByteOrderMark, sourceFiles, data) {\n  host.writeFile(\n    fileName,\n    text,\n    writeByteOrderMark,\n    (hostErrorMessage) => {\n      diagnostics.add(createCompilerDiagnostic(Diagnostics.Could_not_write_file_0_Colon_1, fileName, hostErrorMessage));\n    },\n    sourceFiles,\n    data\n  );\n}\nfunction ensureDirectoriesExist(directoryPath, createDirectory, directoryExists) {\n  if (directoryPath.length > getRootLength(directoryPath) && !directoryExists(directoryPath)) {\n    const parentDirectory = getDirectoryPath(directoryPath);\n    ensureDirectoriesExist(parentDirectory, createDirectory, directoryExists);\n    createDirectory(directoryPath);\n  }\n}\nfunction writeFileEnsuringDirectories(path, data, writeByteOrderMark, writeFile2, createDirectory, directoryExists) {\n  try {\n    writeFile2(path, data, writeByteOrderMark);\n  } catch {\n    ensureDirectoriesExist(getDirectoryPath(normalizePath(path)), createDirectory, directoryExists);\n    writeFile2(path, data, writeByteOrderMark);\n  }\n}\nfunction getLineOfLocalPosition(sourceFile, pos) {\n  const lineStarts = getLineStarts(sourceFile);\n  return computeLineOfPosition(lineStarts, pos);\n}\nfunction getLineOfLocalPositionFromLineMap(lineMap, pos) {\n  return computeLineOfPosition(lineMap, pos);\n}\nfunction getFirstConstructorWithBody(node) {\n  return find(node.members, (member) => isConstructorDeclaration(member) && nodeIsPresent(member.body));\n}\nfunction getSetAccessorValueParameter(accessor) {\n  if (accessor && accessor.parameters.length > 0) {\n    const hasThis = accessor.parameters.length === 2 && parameterIsThisKeyword(accessor.parameters[0]);\n    return accessor.parameters[hasThis ? 1 : 0];\n  }\n}\nfunction getSetAccessorTypeAnnotationNode(accessor) {\n  const parameter = getSetAccessorValueParameter(accessor);\n  return parameter && parameter.type;\n}\nfunction getThisParameter(signature) {\n  if (signature.parameters.length && !isJSDocSignature(signature)) {\n    const thisParameter = signature.parameters[0];\n    if (parameterIsThisKeyword(thisParameter)) {\n      return thisParameter;\n    }\n  }\n}\nfunction parameterIsThisKeyword(parameter) {\n  return isThisIdentifier(parameter.name);\n}\nfunction isThisIdentifier(node) {\n  return !!node && node.kind === 80 /* Identifier */ && identifierIsThisKeyword(node);\n}\nfunction isInTypeQuery(node) {\n  return !!findAncestor(\n    node,\n    (n) => n.kind === 187 /* TypeQuery */ ? true : n.kind === 80 /* Identifier */ || n.kind === 167 /* QualifiedName */ ? false : \"quit\"\n  );\n}\nfunction isThisInTypeQuery(node) {\n  if (!isThisIdentifier(node)) {\n    return false;\n  }\n  while (isQualifiedName(node.parent) && node.parent.left === node) {\n    node = node.parent;\n  }\n  return node.parent.kind === 187 /* TypeQuery */;\n}\nfunction identifierIsThisKeyword(id) {\n  return id.escapedText === \"this\";\n}\nfunction getAllAccessorDeclarations(declarations, accessor) {\n  let firstAccessor;\n  let secondAccessor;\n  let getAccessor;\n  let setAccessor;\n  if (hasDynamicName(accessor)) {\n    firstAccessor = accessor;\n    if (accessor.kind === 178 /* GetAccessor */) {\n      getAccessor = accessor;\n    } else if (accessor.kind === 179 /* SetAccessor */) {\n      setAccessor = accessor;\n    } else {\n      Debug.fail(\"Accessor has wrong kind\");\n    }\n  } else {\n    forEach(declarations, (member) => {\n      if (isAccessor(member) && isStatic(member) === isStatic(accessor)) {\n        const memberName = getPropertyNameForPropertyNameNode(member.name);\n        const accessorName = getPropertyNameForPropertyNameNode(accessor.name);\n        if (memberName === accessorName) {\n          if (!firstAccessor) {\n            firstAccessor = member;\n          } else if (!secondAccessor) {\n            secondAccessor = member;\n          }\n          if (member.kind === 178 /* GetAccessor */ && !getAccessor) {\n            getAccessor = member;\n          }\n          if (member.kind === 179 /* SetAccessor */ && !setAccessor) {\n            setAccessor = member;\n          }\n        }\n      }\n    });\n  }\n  return {\n    firstAccessor,\n    secondAccessor,\n    getAccessor,\n    setAccessor\n  };\n}\nfunction getEffectiveTypeAnnotationNode(node) {\n  if (!isInJSFile(node) && isFunctionDeclaration(node)) return void 0;\n  if (isTypeAliasDeclaration(node)) return void 0;\n  const type = node.type;\n  if (type || !isInJSFile(node)) return type;\n  return isJSDocPropertyLikeTag(node) ? node.typeExpression && node.typeExpression.type : getJSDocType(node);\n}\nfunction getTypeAnnotationNode(node) {\n  return node.type;\n}\nfunction getEffectiveReturnTypeNode(node) {\n  return isJSDocSignature(node) ? node.type && node.type.typeExpression && node.type.typeExpression.type : node.type || (isInJSFile(node) ? getJSDocReturnType(node) : void 0);\n}\nfunction getJSDocTypeParameterDeclarations(node) {\n  return flatMap(getJSDocTags(node), (tag) => isNonTypeAliasTemplate(tag) ? tag.typeParameters : void 0);\n}\nfunction isNonTypeAliasTemplate(tag) {\n  return isJSDocTemplateTag(tag) && !(tag.parent.kind === 321 /* JSDoc */ && (tag.parent.tags.some(isJSDocTypeAlias) || tag.parent.tags.some(isJSDocOverloadTag)));\n}\nfunction getEffectiveSetAccessorTypeAnnotationNode(node) {\n  const parameter = getSetAccessorValueParameter(node);\n  return parameter && getEffectiveTypeAnnotationNode(parameter);\n}\nfunction emitNewLineBeforeLeadingComments(lineMap, writer, node, leadingComments) {\n  emitNewLineBeforeLeadingCommentsOfPosition(lineMap, writer, node.pos, leadingComments);\n}\nfunction emitNewLineBeforeLeadingCommentsOfPosition(lineMap, writer, pos, leadingComments) {\n  if (leadingComments && leadingComments.length && pos !== leadingComments[0].pos && getLineOfLocalPositionFromLineMap(lineMap, pos) !== getLineOfLocalPositionFromLineMap(lineMap, leadingComments[0].pos)) {\n    writer.writeLine();\n  }\n}\nfunction emitNewLineBeforeLeadingCommentOfPosition(lineMap, writer, pos, commentPos) {\n  if (pos !== commentPos && getLineOfLocalPositionFromLineMap(lineMap, pos) !== getLineOfLocalPositionFromLineMap(lineMap, commentPos)) {\n    writer.writeLine();\n  }\n}\nfunction emitComments(text, lineMap, writer, comments, leadingSeparator, trailingSeparator, newLine, writeComment) {\n  if (comments && comments.length > 0) {\n    if (leadingSeparator) {\n      writer.writeSpace(\" \");\n    }\n    let emitInterveningSeparator = false;\n    for (const comment of comments) {\n      if (emitInterveningSeparator) {\n        writer.writeSpace(\" \");\n        emitInterveningSeparator = false;\n      }\n      writeComment(text, lineMap, writer, comment.pos, comment.end, newLine);\n      if (comment.hasTrailingNewLine) {\n        writer.writeLine();\n      } else {\n        emitInterveningSeparator = true;\n      }\n    }\n    if (emitInterveningSeparator && trailingSeparator) {\n      writer.writeSpace(\" \");\n    }\n  }\n}\nfunction emitDetachedComments(text, lineMap, writer, writeComment, node, newLine, removeComments) {\n  let leadingComments;\n  let currentDetachedCommentInfo;\n  if (removeComments) {\n    if (node.pos === 0) {\n      leadingComments = filter(getLeadingCommentRanges(text, node.pos), isPinnedCommentLocal);\n    }\n  } else {\n    leadingComments = getLeadingCommentRanges(text, node.pos);\n  }\n  if (leadingComments) {\n    const detachedComments = [];\n    let lastComment;\n    for (const comment of leadingComments) {\n      if (lastComment) {\n        const lastCommentLine = getLineOfLocalPositionFromLineMap(lineMap, lastComment.end);\n        const commentLine = getLineOfLocalPositionFromLineMap(lineMap, comment.pos);\n        if (commentLine >= lastCommentLine + 2) {\n          break;\n        }\n      }\n      detachedComments.push(comment);\n      lastComment = comment;\n    }\n    if (detachedComments.length) {\n      const lastCommentLine = getLineOfLocalPositionFromLineMap(lineMap, last(detachedComments).end);\n      const nodeLine = getLineOfLocalPositionFromLineMap(lineMap, skipTrivia(text, node.pos));\n      if (nodeLine >= lastCommentLine + 2) {\n        emitNewLineBeforeLeadingComments(lineMap, writer, node, leadingComments);\n        emitComments(\n          text,\n          lineMap,\n          writer,\n          detachedComments,\n          /*leadingSeparator*/\n          false,\n          /*trailingSeparator*/\n          true,\n          newLine,\n          writeComment\n        );\n        currentDetachedCommentInfo = { nodePos: node.pos, detachedCommentEndPos: last(detachedComments).end };\n      }\n    }\n  }\n  return currentDetachedCommentInfo;\n  function isPinnedCommentLocal(comment) {\n    return isPinnedComment(text, comment.pos);\n  }\n}\nfunction writeCommentRange(text, lineMap, writer, commentPos, commentEnd, newLine) {\n  if (text.charCodeAt(commentPos + 1) === 42 /* asterisk */) {\n    const firstCommentLineAndCharacter = computeLineAndCharacterOfPosition(lineMap, commentPos);\n    const lineCount = lineMap.length;\n    let firstCommentLineIndent;\n    for (let pos = commentPos, currentLine = firstCommentLineAndCharacter.line; pos < commentEnd; currentLine++) {\n      const nextLineStart = currentLine + 1 === lineCount ? text.length + 1 : lineMap[currentLine + 1];\n      if (pos !== commentPos) {\n        if (firstCommentLineIndent === void 0) {\n          firstCommentLineIndent = calculateIndent(text, lineMap[firstCommentLineAndCharacter.line], commentPos);\n        }\n        const currentWriterIndentSpacing = writer.getIndent() * getIndentSize();\n        const spacesToEmit = currentWriterIndentSpacing - firstCommentLineIndent + calculateIndent(text, pos, nextLineStart);\n        if (spacesToEmit > 0) {\n          let numberOfSingleSpacesToEmit = spacesToEmit % getIndentSize();\n          const indentSizeSpaceString = getIndentString((spacesToEmit - numberOfSingleSpacesToEmit) / getIndentSize());\n          writer.rawWrite(indentSizeSpaceString);\n          while (numberOfSingleSpacesToEmit) {\n            writer.rawWrite(\" \");\n            numberOfSingleSpacesToEmit--;\n          }\n        } else {\n          writer.rawWrite(\"\");\n        }\n      }\n      writeTrimmedCurrentLine(text, commentEnd, writer, newLine, pos, nextLineStart);\n      pos = nextLineStart;\n    }\n  } else {\n    writer.writeComment(text.substring(commentPos, commentEnd));\n  }\n}\nfunction writeTrimmedCurrentLine(text, commentEnd, writer, newLine, pos, nextLineStart) {\n  const end = Math.min(commentEnd, nextLineStart - 1);\n  const currentLineText = text.substring(pos, end).trim();\n  if (currentLineText) {\n    writer.writeComment(currentLineText);\n    if (end !== commentEnd) {\n      writer.writeLine();\n    }\n  } else {\n    writer.rawWrite(newLine);\n  }\n}\nfunction calculateIndent(text, pos, end) {\n  let currentLineIndent = 0;\n  for (; pos < end && isWhiteSpaceSingleLine(text.charCodeAt(pos)); pos++) {\n    if (text.charCodeAt(pos) === 9 /* tab */) {\n      currentLineIndent += getIndentSize() - currentLineIndent % getIndentSize();\n    } else {\n      currentLineIndent++;\n    }\n  }\n  return currentLineIndent;\n}\nfunction hasEffectiveModifiers(node) {\n  return getEffectiveModifierFlags(node) !== 0 /* None */;\n}\nfunction hasSyntacticModifiers(node) {\n  return getSyntacticModifierFlags(node) !== 0 /* None */;\n}\nfunction hasEffectiveModifier(node, flags) {\n  return !!getSelectedEffectiveModifierFlags(node, flags);\n}\nfunction hasSyntacticModifier(node, flags) {\n  return !!getSelectedSyntacticModifierFlags(node, flags);\n}\nfunction isStatic(node) {\n  return isClassElement(node) && hasStaticModifier(node) || isClassStaticBlockDeclaration(node);\n}\nfunction hasStaticModifier(node) {\n  return hasSyntacticModifier(node, 256 /* Static */);\n}\nfunction hasOverrideModifier(node) {\n  return hasEffectiveModifier(node, 16 /* Override */);\n}\nfunction hasAbstractModifier(node) {\n  return hasSyntacticModifier(node, 64 /* Abstract */);\n}\nfunction hasAmbientModifier(node) {\n  return hasSyntacticModifier(node, 128 /* Ambient */);\n}\nfunction hasAccessorModifier(node) {\n  return hasSyntacticModifier(node, 512 /* Accessor */);\n}\nfunction hasEffectiveReadonlyModifier(node) {\n  return hasEffectiveModifier(node, 8 /* Readonly */);\n}\nfunction hasDecorators(node) {\n  return hasSyntacticModifier(node, 32768 /* Decorator */);\n}\nfunction getSelectedEffectiveModifierFlags(node, flags) {\n  return getEffectiveModifierFlags(node) & flags;\n}\nfunction getSelectedSyntacticModifierFlags(node, flags) {\n  return getSyntacticModifierFlags(node) & flags;\n}\nfunction getModifierFlagsWorker(node, includeJSDoc, alwaysIncludeJSDoc) {\n  if (node.kind >= 0 /* FirstToken */ && node.kind <= 166 /* LastToken */) {\n    return 0 /* None */;\n  }\n  if (!(node.modifierFlagsCache & 536870912 /* HasComputedFlags */)) {\n    node.modifierFlagsCache = getSyntacticModifierFlagsNoCache(node) | 536870912 /* HasComputedFlags */;\n  }\n  if (alwaysIncludeJSDoc || includeJSDoc && isInJSFile(node)) {\n    if (!(node.modifierFlagsCache & 268435456 /* HasComputedJSDocModifiers */) && node.parent) {\n      node.modifierFlagsCache |= getRawJSDocModifierFlagsNoCache(node) | 268435456 /* HasComputedJSDocModifiers */;\n    }\n    return selectEffectiveModifierFlags(node.modifierFlagsCache);\n  }\n  return selectSyntacticModifierFlags(node.modifierFlagsCache);\n}\nfunction getEffectiveModifierFlags(node) {\n  return getModifierFlagsWorker(\n    node,\n    /*includeJSDoc*/\n    true\n  );\n}\nfunction getEffectiveModifierFlagsAlwaysIncludeJSDoc(node) {\n  return getModifierFlagsWorker(\n    node,\n    /*includeJSDoc*/\n    true,\n    /*alwaysIncludeJSDoc*/\n    true\n  );\n}\nfunction getSyntacticModifierFlags(node) {\n  return getModifierFlagsWorker(\n    node,\n    /*includeJSDoc*/\n    false\n  );\n}\nfunction getRawJSDocModifierFlagsNoCache(node) {\n  let flags = 0 /* None */;\n  if (!!node.parent && !isParameter(node)) {\n    if (isInJSFile(node)) {\n      if (getJSDocPublicTagNoCache(node)) flags |= 8388608 /* JSDocPublic */;\n      if (getJSDocPrivateTagNoCache(node)) flags |= 16777216 /* JSDocPrivate */;\n      if (getJSDocProtectedTagNoCache(node)) flags |= 33554432 /* JSDocProtected */;\n      if (getJSDocReadonlyTagNoCache(node)) flags |= 67108864 /* JSDocReadonly */;\n      if (getJSDocOverrideTagNoCache(node)) flags |= 134217728 /* JSDocOverride */;\n    }\n    if (getJSDocDeprecatedTagNoCache(node)) flags |= 65536 /* Deprecated */;\n  }\n  return flags;\n}\nfunction selectSyntacticModifierFlags(flags) {\n  return flags & 65535 /* SyntacticModifiers */;\n}\nfunction selectEffectiveModifierFlags(flags) {\n  return flags & 131071 /* NonCacheOnlyModifiers */ | (flags & 260046848 /* JSDocCacheOnlyModifiers */) >>> 23;\n}\nfunction getJSDocModifierFlagsNoCache(node) {\n  return selectEffectiveModifierFlags(getRawJSDocModifierFlagsNoCache(node));\n}\nfunction getEffectiveModifierFlagsNoCache(node) {\n  return getSyntacticModifierFlagsNoCache(node) | getJSDocModifierFlagsNoCache(node);\n}\nfunction getSyntacticModifierFlagsNoCache(node) {\n  let flags = canHaveModifiers(node) ? modifiersToFlags(node.modifiers) : 0 /* None */;\n  if (node.flags & 8 /* NestedNamespace */ || node.kind === 80 /* Identifier */ && node.flags & 4096 /* IdentifierIsInJSDocNamespace */) {\n    flags |= 32 /* Export */;\n  }\n  return flags;\n}\nfunction modifiersToFlags(modifiers) {\n  let flags = 0 /* None */;\n  if (modifiers) {\n    for (const modifier of modifiers) {\n      flags |= modifierToFlag(modifier.kind);\n    }\n  }\n  return flags;\n}\nfunction modifierToFlag(token) {\n  switch (token) {\n    case 126 /* StaticKeyword */:\n      return 256 /* Static */;\n    case 125 /* PublicKeyword */:\n      return 1 /* Public */;\n    case 124 /* ProtectedKeyword */:\n      return 4 /* Protected */;\n    case 123 /* PrivateKeyword */:\n      return 2 /* Private */;\n    case 128 /* AbstractKeyword */:\n      return 64 /* Abstract */;\n    case 129 /* AccessorKeyword */:\n      return 512 /* Accessor */;\n    case 95 /* ExportKeyword */:\n      return 32 /* Export */;\n    case 138 /* DeclareKeyword */:\n      return 128 /* Ambient */;\n    case 87 /* ConstKeyword */:\n      return 4096 /* Const */;\n    case 90 /* DefaultKeyword */:\n      return 2048 /* Default */;\n    case 134 /* AsyncKeyword */:\n      return 1024 /* Async */;\n    case 148 /* ReadonlyKeyword */:\n      return 8 /* Readonly */;\n    case 164 /* OverrideKeyword */:\n      return 16 /* Override */;\n    case 103 /* InKeyword */:\n      return 8192 /* In */;\n    case 147 /* OutKeyword */:\n      return 16384 /* Out */;\n    case 171 /* Decorator */:\n      return 32768 /* Decorator */;\n  }\n  return 0 /* None */;\n}\nfunction isBinaryLogicalOperator(token) {\n  return token === 57 /* BarBarToken */ || token === 56 /* AmpersandAmpersandToken */;\n}\nfunction isLogicalOperator(token) {\n  return isBinaryLogicalOperator(token) || token === 54 /* ExclamationToken */;\n}\nfunction isLogicalOrCoalescingAssignmentOperator(token) {\n  return token === 76 /* BarBarEqualsToken */ || token === 77 /* AmpersandAmpersandEqualsToken */ || token === 78 /* QuestionQuestionEqualsToken */;\n}\nfunction isLogicalOrCoalescingAssignmentExpression(expr) {\n  return isBinaryExpression(expr) && isLogicalOrCoalescingAssignmentOperator(expr.operatorToken.kind);\n}\nfunction isLogicalOrCoalescingBinaryOperator(token) {\n  return isBinaryLogicalOperator(token) || token === 61 /* QuestionQuestionToken */;\n}\nfunction isLogicalOrCoalescingBinaryExpression(expr) {\n  return isBinaryExpression(expr) && isLogicalOrCoalescingBinaryOperator(expr.operatorToken.kind);\n}\nfunction isAssignmentOperator(token) {\n  return token >= 64 /* FirstAssignment */ && token <= 79 /* LastAssignment */;\n}\nfunction tryGetClassExtendingExpressionWithTypeArguments(node) {\n  const cls = tryGetClassImplementingOrExtendingExpressionWithTypeArguments(node);\n  return cls && !cls.isImplements ? cls.class : void 0;\n}\nfunction tryGetClassImplementingOrExtendingExpressionWithTypeArguments(node) {\n  if (isExpressionWithTypeArguments(node)) {\n    if (isHeritageClause(node.parent) && isClassLike(node.parent.parent)) {\n      return { class: node.parent.parent, isImplements: node.parent.token === 119 /* ImplementsKeyword */ };\n    }\n    if (isJSDocAugmentsTag(node.parent)) {\n      const host = getEffectiveJSDocHost(node.parent);\n      if (host && isClassLike(host)) {\n        return { class: host, isImplements: false };\n      }\n    }\n  }\n  return void 0;\n}\nfunction isAssignmentExpression(node, excludeCompoundAssignment) {\n  return isBinaryExpression(node) && (excludeCompoundAssignment ? node.operatorToken.kind === 64 /* EqualsToken */ : isAssignmentOperator(node.operatorToken.kind)) && isLeftHandSideExpression(node.left);\n}\nfunction isDestructuringAssignment(node) {\n  if (isAssignmentExpression(\n    node,\n    /*excludeCompoundAssignment*/\n    true\n  )) {\n    const kind = node.left.kind;\n    return kind === 211 /* ObjectLiteralExpression */ || kind === 210 /* ArrayLiteralExpression */;\n  }\n  return false;\n}\nfunction isExpressionWithTypeArgumentsInClassExtendsClause(node) {\n  return tryGetClassExtendingExpressionWithTypeArguments(node) !== void 0;\n}\nfunction isEntityNameExpression(node) {\n  return node.kind === 80 /* Identifier */ || isPropertyAccessEntityNameExpression(node);\n}\nfunction getFirstIdentifier(node) {\n  switch (node.kind) {\n    case 80 /* Identifier */:\n      return node;\n    case 167 /* QualifiedName */:\n      do {\n        node = node.left;\n      } while (node.kind !== 80 /* Identifier */);\n      return node;\n    case 212 /* PropertyAccessExpression */:\n      do {\n        node = node.expression;\n      } while (node.kind !== 80 /* Identifier */);\n      return node;\n  }\n}\nfunction isDottedName(node) {\n  return node.kind === 80 /* Identifier */ || node.kind === 110 /* ThisKeyword */ || node.kind === 108 /* SuperKeyword */ || node.kind === 237 /* MetaProperty */ || node.kind === 212 /* PropertyAccessExpression */ && isDottedName(node.expression) || node.kind === 218 /* ParenthesizedExpression */ && isDottedName(node.expression);\n}\nfunction isPropertyAccessEntityNameExpression(node) {\n  return isPropertyAccessExpression(node) && isIdentifier(node.name) && isEntityNameExpression(node.expression);\n}\nfunction tryGetPropertyAccessOrIdentifierToString(expr) {\n  if (isPropertyAccessExpression(expr)) {\n    const baseStr = tryGetPropertyAccessOrIdentifierToString(expr.expression);\n    if (baseStr !== void 0) {\n      return baseStr + \".\" + entityNameToString(expr.name);\n    }\n  } else if (isElementAccessExpression(expr)) {\n    const baseStr = tryGetPropertyAccessOrIdentifierToString(expr.expression);\n    if (baseStr !== void 0 && isPropertyName(expr.argumentExpression)) {\n      return baseStr + \".\" + getPropertyNameForPropertyNameNode(expr.argumentExpression);\n    }\n  } else if (isIdentifier(expr)) {\n    return unescapeLeadingUnderscores(expr.escapedText);\n  } else if (isJsxNamespacedName(expr)) {\n    return getTextOfJsxNamespacedName(expr);\n  }\n  return void 0;\n}\nfunction isPrototypeAccess(node) {\n  return isBindableStaticAccessExpression(node) && getElementOrPropertyAccessName(node) === \"prototype\";\n}\nfunction isRightSideOfQualifiedNameOrPropertyAccess(node) {\n  return node.parent.kind === 167 /* QualifiedName */ && node.parent.right === node || node.parent.kind === 212 /* PropertyAccessExpression */ && node.parent.name === node || node.parent.kind === 237 /* MetaProperty */ && node.parent.name === node;\n}\nfunction isRightSideOfAccessExpression(node) {\n  return !!node.parent && (isPropertyAccessExpression(node.parent) && node.parent.name === node || isElementAccessExpression(node.parent) && node.parent.argumentExpression === node);\n}\nfunction isRightSideOfQualifiedNameOrPropertyAccessOrJSDocMemberName(node) {\n  return isQualifiedName(node.parent) && node.parent.right === node || isPropertyAccessExpression(node.parent) && node.parent.name === node || isJSDocMemberName(node.parent) && node.parent.right === node;\n}\nfunction isInstanceOfExpression(node) {\n  return isBinaryExpression(node) && node.operatorToken.kind === 104 /* InstanceOfKeyword */;\n}\nfunction isRightSideOfInstanceofExpression(node) {\n  return isInstanceOfExpression(node.parent) && node === node.parent.right;\n}\nfunction isEmptyObjectLiteral(expression) {\n  return expression.kind === 211 /* ObjectLiteralExpression */ && expression.properties.length === 0;\n}\nfunction isEmptyArrayLiteral(expression) {\n  return expression.kind === 210 /* ArrayLiteralExpression */ && expression.elements.length === 0;\n}\nfunction getLocalSymbolForExportDefault(symbol) {\n  if (!isExportDefaultSymbol(symbol) || !symbol.declarations) return void 0;\n  for (const decl of symbol.declarations) {\n    if (decl.localSymbol) return decl.localSymbol;\n  }\n  return void 0;\n}\nfunction isExportDefaultSymbol(symbol) {\n  return symbol && length(symbol.declarations) > 0 && hasSyntacticModifier(symbol.declarations[0], 2048 /* Default */);\n}\nfunction tryExtractTSExtension(fileName) {\n  return find(supportedTSExtensionsForExtractExtension, (extension) => fileExtensionIs(fileName, extension));\n}\nfunction getExpandedCharCodes(input) {\n  const output = [];\n  const length2 = input.length;\n  for (let i = 0; i < length2; i++) {\n    const charCode = input.charCodeAt(i);\n    if (charCode < 128) {\n      output.push(charCode);\n    } else if (charCode < 2048) {\n      output.push(charCode >> 6 | 192);\n      output.push(charCode & 63 | 128);\n    } else if (charCode < 65536) {\n      output.push(charCode >> 12 | 224);\n      output.push(charCode >> 6 & 63 | 128);\n      output.push(charCode & 63 | 128);\n    } else if (charCode < 131072) {\n      output.push(charCode >> 18 | 240);\n      output.push(charCode >> 12 & 63 | 128);\n      output.push(charCode >> 6 & 63 | 128);\n      output.push(charCode & 63 | 128);\n    } else {\n      Debug.assert(false, \"Unexpected code point\");\n    }\n  }\n  return output;\n}\nvar base64Digits = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\nfunction convertToBase64(input) {\n  let result = \"\";\n  const charCodes = getExpandedCharCodes(input);\n  let i = 0;\n  const length2 = charCodes.length;\n  let byte1, byte2, byte3, byte4;\n  while (i < length2) {\n    byte1 = charCodes[i] >> 2;\n    byte2 = (charCodes[i] & 3) << 4 | charCodes[i + 1] >> 4;\n    byte3 = (charCodes[i + 1] & 15) << 2 | charCodes[i + 2] >> 6;\n    byte4 = charCodes[i + 2] & 63;\n    if (i + 1 >= length2) {\n      byte3 = byte4 = 64;\n    } else if (i + 2 >= length2) {\n      byte4 = 64;\n    }\n    result += base64Digits.charAt(byte1) + base64Digits.charAt(byte2) + base64Digits.charAt(byte3) + base64Digits.charAt(byte4);\n    i += 3;\n  }\n  return result;\n}\nfunction getStringFromExpandedCharCodes(codes) {\n  let output = \"\";\n  let i = 0;\n  const length2 = codes.length;\n  while (i < length2) {\n    const charCode = codes[i];\n    if (charCode < 128) {\n      output += String.fromCharCode(charCode);\n      i++;\n    } else if ((charCode & 192) === 192) {\n      let value = charCode & 63;\n      i++;\n      let nextCode = codes[i];\n      while ((nextCode & 192) === 128) {\n        value = value << 6 | nextCode & 63;\n        i++;\n        nextCode = codes[i];\n      }\n      output += String.fromCharCode(value);\n    } else {\n      output += String.fromCharCode(charCode);\n      i++;\n    }\n  }\n  return output;\n}\nfunction base64encode(host, input) {\n  if (host && host.base64encode) {\n    return host.base64encode(input);\n  }\n  return convertToBase64(input);\n}\nfunction base64decode(host, input) {\n  if (host && host.base64decode) {\n    return host.base64decode(input);\n  }\n  const length2 = input.length;\n  const expandedCharCodes = [];\n  let i = 0;\n  while (i < length2) {\n    if (input.charCodeAt(i) === base64Digits.charCodeAt(64)) {\n      break;\n    }\n    const ch1 = base64Digits.indexOf(input[i]);\n    const ch2 = base64Digits.indexOf(input[i + 1]);\n    const ch3 = base64Digits.indexOf(input[i + 2]);\n    const ch4 = base64Digits.indexOf(input[i + 3]);\n    const code1 = (ch1 & 63) << 2 | ch2 >> 4 & 3;\n    const code2 = (ch2 & 15) << 4 | ch3 >> 2 & 15;\n    const code3 = (ch3 & 3) << 6 | ch4 & 63;\n    if (code2 === 0 && ch3 !== 0) {\n      expandedCharCodes.push(code1);\n    } else if (code3 === 0 && ch4 !== 0) {\n      expandedCharCodes.push(code1, code2);\n    } else {\n      expandedCharCodes.push(code1, code2, code3);\n    }\n    i += 4;\n  }\n  return getStringFromExpandedCharCodes(expandedCharCodes);\n}\nfunction readJsonOrUndefined(path, hostOrText) {\n  const jsonText = isString(hostOrText) ? hostOrText : hostOrText.readFile(path);\n  if (!jsonText) return void 0;\n  let result = tryParseJson(jsonText);\n  if (result === void 0) {\n    const looseResult = parseConfigFileTextToJson(path, jsonText);\n    if (!looseResult.error) {\n      result = looseResult.config;\n    }\n  }\n  return result;\n}\nfunction readJson(path, host) {\n  return readJsonOrUndefined(path, host) || {};\n}\nfunction tryParseJson(text) {\n  try {\n    return JSON.parse(text);\n  } catch {\n    return void 0;\n  }\n}\nfunction directoryProbablyExists(directoryName, host) {\n  return !host.directoryExists || host.directoryExists(directoryName);\n}\nvar carriageReturnLineFeed = \"\\r\\n\";\nvar lineFeed = \"\\n\";\nfunction getNewLineCharacter(options) {\n  switch (options.newLine) {\n    case 0 /* CarriageReturnLineFeed */:\n      return carriageReturnLineFeed;\n    case 1 /* LineFeed */:\n    case void 0:\n      return lineFeed;\n  }\n}\nfunction createRange(pos, end = pos) {\n  Debug.assert(end >= pos || end === -1);\n  return { pos, end };\n}\nfunction moveRangeEnd(range, end) {\n  return createRange(range.pos, end);\n}\nfunction moveRangePos(range, pos) {\n  return createRange(pos, range.end);\n}\nfunction moveRangePastDecorators(node) {\n  const lastDecorator = canHaveModifiers(node) ? findLast(node.modifiers, isDecorator) : void 0;\n  return lastDecorator && !positionIsSynthesized(lastDecorator.end) ? moveRangePos(node, lastDecorator.end) : node;\n}\nfunction moveRangePastModifiers(node) {\n  if (isPropertyDeclaration(node) || isMethodDeclaration(node)) {\n    return moveRangePos(node, node.name.pos);\n  }\n  const lastModifier = canHaveModifiers(node) ? lastOrUndefined(node.modifiers) : void 0;\n  return lastModifier && !positionIsSynthesized(lastModifier.end) ? moveRangePos(node, lastModifier.end) : moveRangePastDecorators(node);\n}\nfunction createTokenRange(pos, token) {\n  return createRange(pos, pos + tokenToString(token).length);\n}\nfunction rangeIsOnSingleLine(range, sourceFile) {\n  return rangeStartIsOnSameLineAsRangeEnd(range, range, sourceFile);\n}\nfunction rangeStartPositionsAreOnSameLine(range1, range2, sourceFile) {\n  return positionsAreOnSameLine(\n    getStartPositionOfRange(\n      range1,\n      sourceFile,\n      /*includeComments*/\n      false\n    ),\n    getStartPositionOfRange(\n      range2,\n      sourceFile,\n      /*includeComments*/\n      false\n    ),\n    sourceFile\n  );\n}\nfunction rangeEndPositionsAreOnSameLine(range1, range2, sourceFile) {\n  return positionsAreOnSameLine(range1.end, range2.end, sourceFile);\n}\nfunction rangeStartIsOnSameLineAsRangeEnd(range1, range2, sourceFile) {\n  return positionsAreOnSameLine(getStartPositionOfRange(\n    range1,\n    sourceFile,\n    /*includeComments*/\n    false\n  ), range2.end, sourceFile);\n}\nfunction rangeEndIsOnSameLineAsRangeStart(range1, range2, sourceFile) {\n  return positionsAreOnSameLine(range1.end, getStartPositionOfRange(\n    range2,\n    sourceFile,\n    /*includeComments*/\n    false\n  ), sourceFile);\n}\nfunction getLinesBetweenRangeEndAndRangeStart(range1, range2, sourceFile, includeSecondRangeComments) {\n  const range2Start = getStartPositionOfRange(range2, sourceFile, includeSecondRangeComments);\n  return getLinesBetweenPositions(sourceFile, range1.end, range2Start);\n}\nfunction getLinesBetweenRangeEndPositions(range1, range2, sourceFile) {\n  return getLinesBetweenPositions(sourceFile, range1.end, range2.end);\n}\nfunction isNodeArrayMultiLine(list, sourceFile) {\n  return !positionsAreOnSameLine(list.pos, list.end, sourceFile);\n}\nfunction positionsAreOnSameLine(pos1, pos2, sourceFile) {\n  return getLinesBetweenPositions(sourceFile, pos1, pos2) === 0;\n}\nfunction getStartPositionOfRange(range, sourceFile, includeComments) {\n  return positionIsSynthesized(range.pos) ? -1 : skipTrivia(\n    sourceFile.text,\n    range.pos,\n    /*stopAfterLineBreak*/\n    false,\n    includeComments\n  );\n}\nfunction getLinesBetweenPositionAndPrecedingNonWhitespaceCharacter(pos, stopPos, sourceFile, includeComments) {\n  const startPos = skipTrivia(\n    sourceFile.text,\n    pos,\n    /*stopAfterLineBreak*/\n    false,\n    includeComments\n  );\n  const prevPos = getPreviousNonWhitespacePosition(startPos, stopPos, sourceFile);\n  return getLinesBetweenPositions(sourceFile, prevPos ?? stopPos, startPos);\n}\nfunction getLinesBetweenPositionAndNextNonWhitespaceCharacter(pos, stopPos, sourceFile, includeComments) {\n  const nextPos = skipTrivia(\n    sourceFile.text,\n    pos,\n    /*stopAfterLineBreak*/\n    false,\n    includeComments\n  );\n  return getLinesBetweenPositions(sourceFile, pos, Math.min(stopPos, nextPos));\n}\nfunction rangeContainsRange(r1, r2) {\n  return startEndContainsRange(r1.pos, r1.end, r2);\n}\nfunction startEndContainsRange(start, end, range) {\n  return start <= range.pos && end >= range.end;\n}\nfunction getPreviousNonWhitespacePosition(pos, stopPos = 0, sourceFile) {\n  while (pos-- > stopPos) {\n    if (!isWhiteSpaceLike(sourceFile.text.charCodeAt(pos))) {\n      return pos;\n    }\n  }\n}\nfunction isDeclarationNameOfEnumOrNamespace(node) {\n  const parseNode = getParseTreeNode(node);\n  if (parseNode) {\n    switch (parseNode.parent.kind) {\n      case 267 /* EnumDeclaration */:\n      case 268 /* ModuleDeclaration */:\n        return parseNode === parseNode.parent.name;\n    }\n  }\n  return false;\n}\nfunction getInitializedVariables(node) {\n  return filter(node.declarations, isInitializedVariable);\n}\nfunction isInitializedVariable(node) {\n  return isVariableDeclaration(node) && node.initializer !== void 0;\n}\nfunction isWatchSet(options) {\n  return options.watch && hasProperty(options, \"watch\");\n}\nfunction closeFileWatcher(watcher) {\n  watcher.close();\n}\nfunction getCheckFlags(symbol) {\n  return symbol.flags & 33554432 /* Transient */ ? symbol.links.checkFlags : 0;\n}\nfunction getDeclarationModifierFlagsFromSymbol(s, isWrite = false) {\n  if (s.valueDeclaration) {\n    const declaration = isWrite && s.declarations && find(s.declarations, isSetAccessorDeclaration) || s.flags & 32768 /* GetAccessor */ && find(s.declarations, isGetAccessorDeclaration) || s.valueDeclaration;\n    const flags = getCombinedModifierFlags(declaration);\n    return s.parent && s.parent.flags & 32 /* Class */ ? flags : flags & ~7 /* AccessibilityModifier */;\n  }\n  if (getCheckFlags(s) & 6 /* Synthetic */) {\n    const checkFlags = s.links.checkFlags;\n    const accessModifier = checkFlags & 1024 /* ContainsPrivate */ ? 2 /* Private */ : checkFlags & 256 /* ContainsPublic */ ? 1 /* Public */ : 4 /* Protected */;\n    const staticModifier = checkFlags & 2048 /* ContainsStatic */ ? 256 /* Static */ : 0;\n    return accessModifier | staticModifier;\n  }\n  if (s.flags & 4194304 /* Prototype */) {\n    return 1 /* Public */ | 256 /* Static */;\n  }\n  return 0;\n}\nfunction skipAlias(symbol, checker) {\n  return symbol.flags & 2097152 /* Alias */ ? checker.getAliasedSymbol(symbol) : symbol;\n}\nfunction getCombinedLocalAndExportSymbolFlags(symbol) {\n  return symbol.exportSymbol ? symbol.exportSymbol.flags | symbol.flags : symbol.flags;\n}\nfunction isWriteOnlyAccess(node) {\n  return accessKind(node) === 1 /* Write */;\n}\nfunction isWriteAccess(node) {\n  return accessKind(node) !== 0 /* Read */;\n}\nfunction accessKind(node) {\n  const { parent: parent2 } = node;\n  switch (parent2 == null ? void 0 : parent2.kind) {\n    case 218 /* ParenthesizedExpression */:\n      return accessKind(parent2);\n    case 226 /* PostfixUnaryExpression */:\n    case 225 /* PrefixUnaryExpression */:\n      const { operator } = parent2;\n      return operator === 46 /* PlusPlusToken */ || operator === 47 /* MinusMinusToken */ ? 2 /* ReadWrite */ : 0 /* Read */;\n    case 227 /* BinaryExpression */:\n      const { left, operatorToken } = parent2;\n      return left === node && isAssignmentOperator(operatorToken.kind) ? operatorToken.kind === 64 /* EqualsToken */ ? 1 /* Write */ : 2 /* ReadWrite */ : 0 /* Read */;\n    case 212 /* PropertyAccessExpression */:\n      return parent2.name !== node ? 0 /* Read */ : accessKind(parent2);\n    case 304 /* PropertyAssignment */: {\n      const parentAccess = accessKind(parent2.parent);\n      return node === parent2.name ? reverseAccessKind(parentAccess) : parentAccess;\n    }\n    case 305 /* ShorthandPropertyAssignment */:\n      return node === parent2.objectAssignmentInitializer ? 0 /* Read */ : accessKind(parent2.parent);\n    case 210 /* ArrayLiteralExpression */:\n      return accessKind(parent2);\n    case 250 /* ForInStatement */:\n    case 251 /* ForOfStatement */:\n      return node === parent2.initializer ? 1 /* Write */ : 0 /* Read */;\n    default:\n      return 0 /* Read */;\n  }\n}\nfunction reverseAccessKind(a) {\n  switch (a) {\n    case 0 /* Read */:\n      return 1 /* Write */;\n    case 1 /* Write */:\n      return 0 /* Read */;\n    case 2 /* ReadWrite */:\n      return 2 /* ReadWrite */;\n    default:\n      return Debug.assertNever(a);\n  }\n}\nfunction compareDataObjects(dst, src) {\n  if (!dst || !src || Object.keys(dst).length !== Object.keys(src).length) {\n    return false;\n  }\n  for (const e in dst) {\n    if (typeof dst[e] === \"object\") {\n      if (!compareDataObjects(dst[e], src[e])) {\n        return false;\n      }\n    } else if (typeof dst[e] !== \"function\") {\n      if (dst[e] !== src[e]) {\n        return false;\n      }\n    }\n  }\n  return true;\n}\nfunction clearMap(map2, onDeleteValue) {\n  map2.forEach(onDeleteValue);\n  map2.clear();\n}\nfunction mutateMapSkippingNewValues(map2, newMap, options) {\n  const { onDeleteValue, onExistingValue } = options;\n  map2.forEach((existingValue, key) => {\n    var _a;\n    if (!(newMap == null ? void 0 : newMap.has(key))) {\n      map2.delete(key);\n      onDeleteValue(existingValue, key);\n    } else if (onExistingValue) {\n      onExistingValue(existingValue, (_a = newMap.get) == null ? void 0 : _a.call(newMap, key), key);\n    }\n  });\n}\nfunction mutateMap(map2, newMap, options) {\n  mutateMapSkippingNewValues(map2, newMap, options);\n  const { createNewValue } = options;\n  newMap == null ? void 0 : newMap.forEach((valueInNewMap, key) => {\n    if (!map2.has(key)) {\n      map2.set(key, createNewValue(key, valueInNewMap));\n    }\n  });\n}\nfunction isAbstractConstructorSymbol(symbol) {\n  if (symbol.flags & 32 /* Class */) {\n    const declaration = getClassLikeDeclarationOfSymbol(symbol);\n    return !!declaration && hasSyntacticModifier(declaration, 64 /* Abstract */);\n  }\n  return false;\n}\nfunction getClassLikeDeclarationOfSymbol(symbol) {\n  var _a;\n  return (_a = symbol.declarations) == null ? void 0 : _a.find(isClassLike);\n}\nfunction getObjectFlags(type) {\n  return type.flags & 3899393 /* ObjectFlagsType */ ? type.objectFlags : 0;\n}\nfunction isUMDExportSymbol(symbol) {\n  return !!symbol && !!symbol.declarations && !!symbol.declarations[0] && isNamespaceExportDeclaration(symbol.declarations[0]);\n}\nfunction showModuleSpecifier({ moduleSpecifier }) {\n  return isStringLiteral(moduleSpecifier) ? moduleSpecifier.text : getTextOfNode(moduleSpecifier);\n}\nfunction getLastChild(node) {\n  let lastChild;\n  forEachChild(node, (child) => {\n    if (nodeIsPresent(child)) lastChild = child;\n  }, (children) => {\n    for (let i = children.length - 1; i >= 0; i--) {\n      if (nodeIsPresent(children[i])) {\n        lastChild = children[i];\n        break;\n      }\n    }\n  });\n  return lastChild;\n}\nfunction addToSeen(seen, key) {\n  if (seen.has(key)) {\n    return false;\n  }\n  seen.add(key);\n  return true;\n}\nfunction isObjectTypeDeclaration(node) {\n  return isClassLike(node) || isInterfaceDeclaration(node) || isTypeLiteralNode(node);\n}\nfunction isTypeNodeKind(kind) {\n  return kind >= 183 /* FirstTypeNode */ && kind <= 206 /* LastTypeNode */ || kind === 133 /* AnyKeyword */ || kind === 159 /* UnknownKeyword */ || kind === 150 /* NumberKeyword */ || kind === 163 /* BigIntKeyword */ || kind === 151 /* ObjectKeyword */ || kind === 136 /* BooleanKeyword */ || kind === 154 /* StringKeyword */ || kind === 155 /* SymbolKeyword */ || kind === 116 /* VoidKeyword */ || kind === 157 /* UndefinedKeyword */ || kind === 146 /* NeverKeyword */ || kind === 141 /* IntrinsicKeyword */ || kind === 234 /* ExpressionWithTypeArguments */ || kind === 313 /* JSDocAllType */ || kind === 314 /* JSDocUnknownType */ || kind === 315 /* JSDocNullableType */ || kind === 316 /* JSDocNonNullableType */ || kind === 317 /* JSDocOptionalType */ || kind === 318 /* JSDocFunctionType */ || kind === 319 /* JSDocVariadicType */;\n}\nfunction isAccessExpression(node) {\n  return node.kind === 212 /* PropertyAccessExpression */ || node.kind === 213 /* ElementAccessExpression */;\n}\nfunction getNameOfAccessExpression(node) {\n  if (node.kind === 212 /* PropertyAccessExpression */) {\n    return node.name;\n  }\n  Debug.assert(node.kind === 213 /* ElementAccessExpression */);\n  return node.argumentExpression;\n}\nfunction isNamedImportsOrExports(node) {\n  return node.kind === 276 /* NamedImports */ || node.kind === 280 /* NamedExports */;\n}\nfunction getLeftmostAccessExpression(expr) {\n  while (isAccessExpression(expr)) {\n    expr = expr.expression;\n  }\n  return expr;\n}\nfunction forEachNameInAccessChainWalkingLeft(name, action) {\n  if (isAccessExpression(name.parent) && isRightSideOfAccessExpression(name)) {\n    return walkAccessExpression(name.parent);\n  }\n  function walkAccessExpression(access) {\n    if (access.kind === 212 /* PropertyAccessExpression */) {\n      const res = action(access.name);\n      if (res !== void 0) {\n        return res;\n      }\n    } else if (access.kind === 213 /* ElementAccessExpression */) {\n      if (isIdentifier(access.argumentExpression) || isStringLiteralLike(access.argumentExpression)) {\n        const res = action(access.argumentExpression);\n        if (res !== void 0) {\n          return res;\n        }\n      } else {\n        return void 0;\n      }\n    }\n    if (isAccessExpression(access.expression)) {\n      return walkAccessExpression(access.expression);\n    }\n    if (isIdentifier(access.expression)) {\n      return action(access.expression);\n    }\n    return void 0;\n  }\n}\nfunction getLeftmostExpression(node, stopAtCallExpressions) {\n  while (true) {\n    switch (node.kind) {\n      case 226 /* PostfixUnaryExpression */:\n        node = node.operand;\n        continue;\n      case 227 /* BinaryExpression */:\n        node = node.left;\n        continue;\n      case 228 /* ConditionalExpression */:\n        node = node.condition;\n        continue;\n      case 216 /* TaggedTemplateExpression */:\n        node = node.tag;\n        continue;\n      case 214 /* CallExpression */:\n        if (stopAtCallExpressions) {\n          return node;\n        }\n      // falls through\n      case 235 /* AsExpression */:\n      case 213 /* ElementAccessExpression */:\n      case 212 /* PropertyAccessExpression */:\n      case 236 /* NonNullExpression */:\n      case 356 /* PartiallyEmittedExpression */:\n      case 239 /* SatisfiesExpression */:\n        node = node.expression;\n        continue;\n    }\n    return node;\n  }\n}\nfunction Symbol4(flags, name) {\n  this.flags = flags;\n  this.escapedName = name;\n  this.declarations = void 0;\n  this.valueDeclaration = void 0;\n  this.id = 0;\n  this.mergeId = 0;\n  this.parent = void 0;\n  this.members = void 0;\n  this.exports = void 0;\n  this.exportSymbol = void 0;\n  this.constEnumOnlyModule = void 0;\n  this.isReferenced = void 0;\n  this.lastAssignmentPos = void 0;\n  this.links = void 0;\n}\nfunction Type3(checker, flags) {\n  this.flags = flags;\n  if (Debug.isDebugging || tracing) {\n    this.checker = checker;\n  }\n}\nfunction Signature2(checker, flags) {\n  this.flags = flags;\n  if (Debug.isDebugging) {\n    this.checker = checker;\n  }\n}\nfunction Node4(kind, pos, end) {\n  this.pos = pos;\n  this.end = end;\n  this.kind = kind;\n  this.id = 0;\n  this.flags = 0 /* None */;\n  this.modifierFlagsCache = 0 /* None */;\n  this.transformFlags = 0 /* None */;\n  this.parent = void 0;\n  this.original = void 0;\n  this.emitNode = void 0;\n}\nfunction Token(kind, pos, end) {\n  this.pos = pos;\n  this.end = end;\n  this.kind = kind;\n  this.id = 0;\n  this.flags = 0 /* None */;\n  this.transformFlags = 0 /* None */;\n  this.parent = void 0;\n  this.emitNode = void 0;\n}\nfunction Identifier2(kind, pos, end) {\n  this.pos = pos;\n  this.end = end;\n  this.kind = kind;\n  this.id = 0;\n  this.flags = 0 /* None */;\n  this.transformFlags = 0 /* None */;\n  this.parent = void 0;\n  this.original = void 0;\n  this.emitNode = void 0;\n}\nfunction SourceMapSource(fileName, text, skipTrivia2) {\n  this.fileName = fileName;\n  this.text = text;\n  this.skipTrivia = skipTrivia2 || ((pos) => pos);\n}\nvar objectAllocator = {\n  getNodeConstructor: () => Node4,\n  getTokenConstructor: () => Token,\n  getIdentifierConstructor: () => Identifier2,\n  getPrivateIdentifierConstructor: () => Node4,\n  getSourceFileConstructor: () => Node4,\n  getSymbolConstructor: () => Symbol4,\n  getTypeConstructor: () => Type3,\n  getSignatureConstructor: () => Signature2,\n  getSourceMapSourceConstructor: () => SourceMapSource\n};\nvar objectAllocatorPatchers = [];\nfunction addObjectAllocatorPatcher(fn) {\n  objectAllocatorPatchers.push(fn);\n  fn(objectAllocator);\n}\nfunction setObjectAllocator(alloc) {\n  Object.assign(objectAllocator, alloc);\n  forEach(objectAllocatorPatchers, (fn) => fn(objectAllocator));\n}\nfunction formatStringFromArgs(text, args) {\n  return text.replace(/\\{(\\d+)\\}/g, (_match, index) => \"\" + Debug.checkDefined(args[+index]));\n}\nvar localizedDiagnosticMessages;\nfunction setLocalizedDiagnosticMessages(messages) {\n  localizedDiagnosticMessages = messages;\n}\nfunction maybeSetLocalizedDiagnosticMessages(getMessages) {\n  if (!localizedDiagnosticMessages && getMessages) {\n    localizedDiagnosticMessages = getMessages();\n  }\n}\nfunction getLocaleSpecificMessage(message) {\n  return localizedDiagnosticMessages && localizedDiagnosticMessages[message.key] || message.message;\n}\nfunction createDetachedDiagnostic(fileName, sourceText, start, length2, message, ...args) {\n  if (start + length2 > sourceText.length) {\n    length2 = sourceText.length - start;\n  }\n  assertDiagnosticLocation(sourceText, start, length2);\n  let text = getLocaleSpecificMessage(message);\n  if (some(args)) {\n    text = formatStringFromArgs(text, args);\n  }\n  return {\n    file: void 0,\n    start,\n    length: length2,\n    messageText: text,\n    category: message.category,\n    code: message.code,\n    reportsUnnecessary: message.reportsUnnecessary,\n    fileName\n  };\n}\nfunction isDiagnosticWithDetachedLocation(diagnostic) {\n  return diagnostic.file === void 0 && diagnostic.start !== void 0 && diagnostic.length !== void 0 && typeof diagnostic.fileName === \"string\";\n}\nfunction attachFileToDiagnostic(diagnostic, file) {\n  const fileName = file.fileName || \"\";\n  const length2 = file.text.length;\n  Debug.assertEqual(diagnostic.fileName, fileName);\n  Debug.assertLessThanOrEqual(diagnostic.start, length2);\n  Debug.assertLessThanOrEqual(diagnostic.start + diagnostic.length, length2);\n  const diagnosticWithLocation = {\n    file,\n    start: diagnostic.start,\n    length: diagnostic.length,\n    messageText: diagnostic.messageText,\n    category: diagnostic.category,\n    code: diagnostic.code,\n    reportsUnnecessary: diagnostic.reportsUnnecessary\n  };\n  if (diagnostic.relatedInformation) {\n    diagnosticWithLocation.relatedInformation = [];\n    for (const related of diagnostic.relatedInformation) {\n      if (isDiagnosticWithDetachedLocation(related) && related.fileName === fileName) {\n        Debug.assertLessThanOrEqual(related.start, length2);\n        Debug.assertLessThanOrEqual(related.start + related.length, length2);\n        diagnosticWithLocation.relatedInformation.push(attachFileToDiagnostic(related, file));\n      } else {\n        diagnosticWithLocation.relatedInformation.push(related);\n      }\n    }\n  }\n  return diagnosticWithLocation;\n}\nfunction attachFileToDiagnostics(diagnostics, file) {\n  const diagnosticsWithLocation = [];\n  for (const diagnostic of diagnostics) {\n    diagnosticsWithLocation.push(attachFileToDiagnostic(diagnostic, file));\n  }\n  return diagnosticsWithLocation;\n}\nfunction createFileDiagnostic(file, start, length2, message, ...args) {\n  assertDiagnosticLocation(file.text, start, length2);\n  let text = getLocaleSpecificMessage(message);\n  if (some(args)) {\n    text = formatStringFromArgs(text, args);\n  }\n  return {\n    file,\n    start,\n    length: length2,\n    messageText: text,\n    category: message.category,\n    code: message.code,\n    reportsUnnecessary: message.reportsUnnecessary,\n    reportsDeprecated: message.reportsDeprecated\n  };\n}\nfunction formatMessage(message, ...args) {\n  let text = getLocaleSpecificMessage(message);\n  if (some(args)) {\n    text = formatStringFromArgs(text, args);\n  }\n  return text;\n}\nfunction createCompilerDiagnostic(message, ...args) {\n  let text = getLocaleSpecificMessage(message);\n  if (some(args)) {\n    text = formatStringFromArgs(text, args);\n  }\n  return {\n    file: void 0,\n    start: void 0,\n    length: void 0,\n    messageText: text,\n    category: message.category,\n    code: message.code,\n    reportsUnnecessary: message.reportsUnnecessary,\n    reportsDeprecated: message.reportsDeprecated\n  };\n}\nfunction createCompilerDiagnosticFromMessageChain(chain, relatedInformation) {\n  return {\n    file: void 0,\n    start: void 0,\n    length: void 0,\n    code: chain.code,\n    category: chain.category,\n    messageText: chain.next ? chain : chain.messageText,\n    relatedInformation\n  };\n}\nfunction chainDiagnosticMessages(details, message, ...args) {\n  let text = getLocaleSpecificMessage(message);\n  if (some(args)) {\n    text = formatStringFromArgs(text, args);\n  }\n  return {\n    messageText: text,\n    category: message.category,\n    code: message.code,\n    next: details === void 0 || Array.isArray(details) ? details : [details]\n  };\n}\nfunction concatenateDiagnosticMessageChains(headChain, tailChain) {\n  let lastChain = headChain;\n  while (lastChain.next) {\n    lastChain = lastChain.next[0];\n  }\n  lastChain.next = [tailChain];\n}\nfunction getDiagnosticFilePath(diagnostic) {\n  return diagnostic.file ? diagnostic.file.path : void 0;\n}\nfunction compareDiagnostics(d1, d2) {\n  return compareDiagnosticsSkipRelatedInformation(d1, d2) || compareRelatedInformation(d1, d2) || 0 /* EqualTo */;\n}\nfunction compareDiagnosticsSkipRelatedInformation(d1, d2) {\n  const code1 = getDiagnosticCode(d1);\n  const code2 = getDiagnosticCode(d2);\n  return compareStringsCaseSensitive(getDiagnosticFilePath(d1), getDiagnosticFilePath(d2)) || compareValues(d1.start, d2.start) || compareValues(d1.length, d2.length) || compareValues(code1, code2) || compareMessageText(d1, d2) || 0 /* EqualTo */;\n}\nfunction compareRelatedInformation(d1, d2) {\n  if (!d1.relatedInformation && !d2.relatedInformation) {\n    return 0 /* EqualTo */;\n  }\n  if (d1.relatedInformation && d2.relatedInformation) {\n    return compareValues(d2.relatedInformation.length, d1.relatedInformation.length) || forEach(d1.relatedInformation, (d1i, index) => {\n      const d2i = d2.relatedInformation[index];\n      return compareDiagnostics(d1i, d2i);\n    }) || 0 /* EqualTo */;\n  }\n  return d1.relatedInformation ? -1 /* LessThan */ : 1 /* GreaterThan */;\n}\nfunction compareMessageText(d1, d2) {\n  let headMsg1 = getDiagnosticMessage(d1);\n  let headMsg2 = getDiagnosticMessage(d2);\n  if (typeof headMsg1 !== \"string\") {\n    headMsg1 = headMsg1.messageText;\n  }\n  if (typeof headMsg2 !== \"string\") {\n    headMsg2 = headMsg2.messageText;\n  }\n  const chain1 = typeof d1.messageText !== \"string\" ? d1.messageText.next : void 0;\n  const chain2 = typeof d2.messageText !== \"string\" ? d2.messageText.next : void 0;\n  let res = compareStringsCaseSensitive(headMsg1, headMsg2);\n  if (res) {\n    return res;\n  }\n  res = compareMessageChain(chain1, chain2);\n  if (res) {\n    return res;\n  }\n  if (d1.canonicalHead && !d2.canonicalHead) {\n    return -1 /* LessThan */;\n  }\n  if (d2.canonicalHead && !d1.canonicalHead) {\n    return 1 /* GreaterThan */;\n  }\n  return 0 /* EqualTo */;\n}\nfunction compareMessageChain(c1, c2) {\n  if (c1 === void 0 && c2 === void 0) {\n    return 0 /* EqualTo */;\n  }\n  if (c1 === void 0) {\n    return 1 /* GreaterThan */;\n  }\n  if (c2 === void 0) {\n    return -1 /* LessThan */;\n  }\n  return compareMessageChainSize(c1, c2) || compareMessageChainContent(c1, c2);\n}\nfunction compareMessageChainSize(c1, c2) {\n  if (c1 === void 0 && c2 === void 0) {\n    return 0 /* EqualTo */;\n  }\n  if (c1 === void 0) {\n    return 1 /* GreaterThan */;\n  }\n  if (c2 === void 0) {\n    return -1 /* LessThan */;\n  }\n  let res = compareValues(c2.length, c1.length);\n  if (res) {\n    return res;\n  }\n  for (let i = 0; i < c2.length; i++) {\n    res = compareMessageChainSize(c1[i].next, c2[i].next);\n    if (res) {\n      return res;\n    }\n  }\n  return 0 /* EqualTo */;\n}\nfunction compareMessageChainContent(c1, c2) {\n  let res;\n  for (let i = 0; i < c2.length; i++) {\n    res = compareStringsCaseSensitive(c1[i].messageText, c2[i].messageText);\n    if (res) {\n      return res;\n    }\n    if (c1[i].next === void 0) {\n      continue;\n    }\n    res = compareMessageChainContent(c1[i].next, c2[i].next);\n    if (res) {\n      return res;\n    }\n  }\n  return 0 /* EqualTo */;\n}\nfunction diagnosticsEqualityComparer(d1, d2) {\n  const code1 = getDiagnosticCode(d1);\n  const code2 = getDiagnosticCode(d2);\n  const msg1 = getDiagnosticMessage(d1);\n  const msg2 = getDiagnosticMessage(d2);\n  return compareStringsCaseSensitive(getDiagnosticFilePath(d1), getDiagnosticFilePath(d2)) === 0 /* EqualTo */ && compareValues(d1.start, d2.start) === 0 /* EqualTo */ && compareValues(d1.length, d2.length) === 0 /* EqualTo */ && compareValues(code1, code2) === 0 /* EqualTo */ && messageTextEqualityComparer(msg1, msg2);\n}\nfunction getDiagnosticCode(d) {\n  var _a;\n  return ((_a = d.canonicalHead) == null ? void 0 : _a.code) || d.code;\n}\nfunction getDiagnosticMessage(d) {\n  var _a;\n  return ((_a = d.canonicalHead) == null ? void 0 : _a.messageText) || d.messageText;\n}\nfunction messageTextEqualityComparer(m1, m2) {\n  const t1 = typeof m1 === \"string\" ? m1 : m1.messageText;\n  const t2 = typeof m2 === \"string\" ? m2 : m2.messageText;\n  return compareStringsCaseSensitive(t1, t2) === 0 /* EqualTo */;\n}\nfunction getLanguageVariant(scriptKind) {\n  return scriptKind === 4 /* TSX */ || scriptKind === 2 /* JSX */ || scriptKind === 1 /* JS */ || scriptKind === 6 /* JSON */ ? 1 /* JSX */ : 0 /* Standard */;\n}\nfunction walkTreeForJSXTags(node) {\n  if (!(node.transformFlags & 2 /* ContainsJsx */)) return void 0;\n  return isJsxOpeningLikeElement(node) || isJsxFragment(node) ? node : forEachChild(node, walkTreeForJSXTags);\n}\nfunction isFileModuleFromUsingJSXTag(file) {\n  return !file.isDeclarationFile ? walkTreeForJSXTags(file) : void 0;\n}\nfunction isFileForcedToBeModuleByFormat(file, options) {\n  return (getImpliedNodeFormatForEmitWorker(file, options) === 99 /* ESNext */ || fileExtensionIsOneOf(file.fileName, [\".cjs\" /* Cjs */, \".cts\" /* Cts */, \".mjs\" /* Mjs */, \".mts\" /* Mts */])) && !file.isDeclarationFile ? true : void 0;\n}\nfunction getSetExternalModuleIndicator(options) {\n  switch (getEmitModuleDetectionKind(options)) {\n    case 3 /* Force */:\n      return (file) => {\n        file.externalModuleIndicator = isFileProbablyExternalModule(file) || !file.isDeclarationFile || void 0;\n      };\n    case 1 /* Legacy */:\n      return (file) => {\n        file.externalModuleIndicator = isFileProbablyExternalModule(file);\n      };\n    case 2 /* Auto */:\n      const checks = [isFileProbablyExternalModule];\n      if (options.jsx === 4 /* ReactJSX */ || options.jsx === 5 /* ReactJSXDev */) {\n        checks.push(isFileModuleFromUsingJSXTag);\n      }\n      checks.push(isFileForcedToBeModuleByFormat);\n      const combined = or(...checks);\n      const callback = (file) => void (file.externalModuleIndicator = combined(file, options));\n      return callback;\n  }\n}\nfunction importSyntaxAffectsModuleResolution(options) {\n  const moduleResolution = getEmitModuleResolutionKind(options);\n  return 3 /* Node16 */ <= moduleResolution && moduleResolution <= 99 /* NodeNext */ || getResolvePackageJsonExports(options) || getResolvePackageJsonImports(options);\n}\nfunction createComputedCompilerOptions(options) {\n  return options;\n}\nvar _computedOptions = createComputedCompilerOptions({\n  allowImportingTsExtensions: {\n    dependencies: [\"rewriteRelativeImportExtensions\"],\n    computeValue: (compilerOptions) => {\n      return !!(compilerOptions.allowImportingTsExtensions || compilerOptions.rewriteRelativeImportExtensions);\n    }\n  },\n  target: {\n    dependencies: [\"module\"],\n    computeValue: (compilerOptions) => {\n      const target = compilerOptions.target === 0 /* ES3 */ ? void 0 : compilerOptions.target;\n      return target ?? (compilerOptions.module === 100 /* Node16 */ && 9 /* ES2022 */ || compilerOptions.module === 101 /* Node18 */ && 9 /* ES2022 */ || compilerOptions.module === 102 /* Node20 */ && 10 /* ES2023 */ || compilerOptions.module === 199 /* NodeNext */ && 99 /* ESNext */ || 1 /* ES5 */);\n    }\n  },\n  module: {\n    dependencies: [\"target\"],\n    computeValue: (compilerOptions) => {\n      return typeof compilerOptions.module === \"number\" ? compilerOptions.module : _computedOptions.target.computeValue(compilerOptions) >= 2 /* ES2015 */ ? 5 /* ES2015 */ : 1 /* CommonJS */;\n    }\n  },\n  moduleResolution: {\n    dependencies: [\"module\", \"target\"],\n    computeValue: (compilerOptions) => {\n      let moduleResolution = compilerOptions.moduleResolution;\n      if (moduleResolution === void 0) {\n        switch (_computedOptions.module.computeValue(compilerOptions)) {\n          case 1 /* CommonJS */:\n            moduleResolution = 2 /* Node10 */;\n            break;\n          case 100 /* Node16 */:\n          case 101 /* Node18 */:\n          case 102 /* Node20 */:\n            moduleResolution = 3 /* Node16 */;\n            break;\n          case 199 /* NodeNext */:\n            moduleResolution = 99 /* NodeNext */;\n            break;\n          case 200 /* Preserve */:\n            moduleResolution = 100 /* Bundler */;\n            break;\n          default:\n            moduleResolution = 1 /* Classic */;\n            break;\n        }\n      }\n      return moduleResolution;\n    }\n  },\n  moduleDetection: {\n    dependencies: [\"module\", \"target\"],\n    computeValue: (compilerOptions) => {\n      if (compilerOptions.moduleDetection !== void 0) {\n        return compilerOptions.moduleDetection;\n      }\n      const moduleKind = _computedOptions.module.computeValue(compilerOptions);\n      return 100 /* Node16 */ <= moduleKind && moduleKind <= 199 /* NodeNext */ ? 3 /* Force */ : 2 /* Auto */;\n    }\n  },\n  isolatedModules: {\n    dependencies: [\"verbatimModuleSyntax\"],\n    computeValue: (compilerOptions) => {\n      return !!(compilerOptions.isolatedModules || compilerOptions.verbatimModuleSyntax);\n    }\n  },\n  esModuleInterop: {\n    dependencies: [\"module\", \"target\"],\n    computeValue: (compilerOptions) => {\n      if (compilerOptions.esModuleInterop !== void 0) {\n        return compilerOptions.esModuleInterop;\n      }\n      switch (_computedOptions.module.computeValue(compilerOptions)) {\n        case 100 /* Node16 */:\n        case 101 /* Node18 */:\n        case 102 /* Node20 */:\n        case 199 /* NodeNext */:\n        case 200 /* Preserve */:\n          return true;\n      }\n      return false;\n    }\n  },\n  allowSyntheticDefaultImports: {\n    dependencies: [\"module\", \"target\", \"moduleResolution\"],\n    computeValue: (compilerOptions) => {\n      if (compilerOptions.allowSyntheticDefaultImports !== void 0) {\n        return compilerOptions.allowSyntheticDefaultImports;\n      }\n      return _computedOptions.esModuleInterop.computeValue(compilerOptions) || _computedOptions.module.computeValue(compilerOptions) === 4 /* System */ || _computedOptions.moduleResolution.computeValue(compilerOptions) === 100 /* Bundler */;\n    }\n  },\n  resolvePackageJsonExports: {\n    dependencies: [\"moduleResolution\"],\n    computeValue: (compilerOptions) => {\n      const moduleResolution = _computedOptions.moduleResolution.computeValue(compilerOptions);\n      if (!moduleResolutionSupportsPackageJsonExportsAndImports(moduleResolution)) {\n        return false;\n      }\n      if (compilerOptions.resolvePackageJsonExports !== void 0) {\n        return compilerOptions.resolvePackageJsonExports;\n      }\n      switch (moduleResolution) {\n        case 3 /* Node16 */:\n        case 99 /* NodeNext */:\n        case 100 /* Bundler */:\n          return true;\n      }\n      return false;\n    }\n  },\n  resolvePackageJsonImports: {\n    dependencies: [\"moduleResolution\", \"resolvePackageJsonExports\"],\n    computeValue: (compilerOptions) => {\n      const moduleResolution = _computedOptions.moduleResolution.computeValue(compilerOptions);\n      if (!moduleResolutionSupportsPackageJsonExportsAndImports(moduleResolution)) {\n        return false;\n      }\n      if (compilerOptions.resolvePackageJsonImports !== void 0) {\n        return compilerOptions.resolvePackageJsonImports;\n      }\n      switch (moduleResolution) {\n        case 3 /* Node16 */:\n        case 99 /* NodeNext */:\n        case 100 /* Bundler */:\n          return true;\n      }\n      return false;\n    }\n  },\n  resolveJsonModule: {\n    dependencies: [\"moduleResolution\", \"module\", \"target\"],\n    computeValue: (compilerOptions) => {\n      if (compilerOptions.resolveJsonModule !== void 0) {\n        return compilerOptions.resolveJsonModule;\n      }\n      switch (_computedOptions.module.computeValue(compilerOptions)) {\n        // TODO in 6.0: uncomment\n        // case ModuleKind.Node16:\n        // case ModuleKind.Node18:\n        case 102 /* Node20 */:\n        case 199 /* NodeNext */:\n          return true;\n      }\n      return _computedOptions.moduleResolution.computeValue(compilerOptions) === 100 /* Bundler */;\n    }\n  },\n  declaration: {\n    dependencies: [\"composite\"],\n    computeValue: (compilerOptions) => {\n      return !!(compilerOptions.declaration || compilerOptions.composite);\n    }\n  },\n  preserveConstEnums: {\n    dependencies: [\"isolatedModules\", \"verbatimModuleSyntax\"],\n    computeValue: (compilerOptions) => {\n      return !!(compilerOptions.preserveConstEnums || _computedOptions.isolatedModules.computeValue(compilerOptions));\n    }\n  },\n  incremental: {\n    dependencies: [\"composite\"],\n    computeValue: (compilerOptions) => {\n      return !!(compilerOptions.incremental || compilerOptions.composite);\n    }\n  },\n  declarationMap: {\n    dependencies: [\"declaration\", \"composite\"],\n    computeValue: (compilerOptions) => {\n      return !!(compilerOptions.declarationMap && _computedOptions.declaration.computeValue(compilerOptions));\n    }\n  },\n  allowJs: {\n    dependencies: [\"checkJs\"],\n    computeValue: (compilerOptions) => {\n      return compilerOptions.allowJs === void 0 ? !!compilerOptions.checkJs : compilerOptions.allowJs;\n    }\n  },\n  useDefineForClassFields: {\n    dependencies: [\"target\", \"module\"],\n    computeValue: (compilerOptions) => {\n      return compilerOptions.useDefineForClassFields === void 0 ? _computedOptions.target.computeValue(compilerOptions) >= 9 /* ES2022 */ : compilerOptions.useDefineForClassFields;\n    }\n  },\n  noImplicitAny: {\n    dependencies: [\"strict\"],\n    computeValue: (compilerOptions) => {\n      return getStrictOptionValue(compilerOptions, \"noImplicitAny\");\n    }\n  },\n  noImplicitThis: {\n    dependencies: [\"strict\"],\n    computeValue: (compilerOptions) => {\n      return getStrictOptionValue(compilerOptions, \"noImplicitThis\");\n    }\n  },\n  strictNullChecks: {\n    dependencies: [\"strict\"],\n    computeValue: (compilerOptions) => {\n      return getStrictOptionValue(compilerOptions, \"strictNullChecks\");\n    }\n  },\n  strictFunctionTypes: {\n    dependencies: [\"strict\"],\n    computeValue: (compilerOptions) => {\n      return getStrictOptionValue(compilerOptions, \"strictFunctionTypes\");\n    }\n  },\n  strictBindCallApply: {\n    dependencies: [\"strict\"],\n    computeValue: (compilerOptions) => {\n      return getStrictOptionValue(compilerOptions, \"strictBindCallApply\");\n    }\n  },\n  strictPropertyInitialization: {\n    dependencies: [\"strict\"],\n    computeValue: (compilerOptions) => {\n      return getStrictOptionValue(compilerOptions, \"strictPropertyInitialization\");\n    }\n  },\n  strictBuiltinIteratorReturn: {\n    dependencies: [\"strict\"],\n    computeValue: (compilerOptions) => {\n      return getStrictOptionValue(compilerOptions, \"strictBuiltinIteratorReturn\");\n    }\n  },\n  alwaysStrict: {\n    dependencies: [\"strict\"],\n    computeValue: (compilerOptions) => {\n      return getStrictOptionValue(compilerOptions, \"alwaysStrict\");\n    }\n  },\n  useUnknownInCatchVariables: {\n    dependencies: [\"strict\"],\n    computeValue: (compilerOptions) => {\n      return getStrictOptionValue(compilerOptions, \"useUnknownInCatchVariables\");\n    }\n  }\n});\nvar computedOptions = _computedOptions;\nvar getAllowImportingTsExtensions = _computedOptions.allowImportingTsExtensions.computeValue;\nvar getEmitScriptTarget = _computedOptions.target.computeValue;\nvar getEmitModuleKind = _computedOptions.module.computeValue;\nvar getEmitModuleResolutionKind = _computedOptions.moduleResolution.computeValue;\nvar getEmitModuleDetectionKind = _computedOptions.moduleDetection.computeValue;\nvar getIsolatedModules = _computedOptions.isolatedModules.computeValue;\nvar getESModuleInterop = _computedOptions.esModuleInterop.computeValue;\nvar getAllowSyntheticDefaultImports = _computedOptions.allowSyntheticDefaultImports.computeValue;\nvar getResolvePackageJsonExports = _computedOptions.resolvePackageJsonExports.computeValue;\nvar getResolvePackageJsonImports = _computedOptions.resolvePackageJsonImports.computeValue;\nvar getResolveJsonModule = _computedOptions.resolveJsonModule.computeValue;\nvar getEmitDeclarations = _computedOptions.declaration.computeValue;\nvar shouldPreserveConstEnums = _computedOptions.preserveConstEnums.computeValue;\nvar isIncrementalCompilation = _computedOptions.incremental.computeValue;\nvar getAreDeclarationMapsEnabled = _computedOptions.declarationMap.computeValue;\nvar getAllowJSCompilerOption = _computedOptions.allowJs.computeValue;\nvar getUseDefineForClassFields = _computedOptions.useDefineForClassFields.computeValue;\nfunction emitModuleKindIsNonNodeESM(moduleKind) {\n  return moduleKind >= 5 /* ES2015 */ && moduleKind <= 99 /* ESNext */;\n}\nfunction hasJsonModuleEmitEnabled(options) {\n  switch (getEmitModuleKind(options)) {\n    case 0 /* None */:\n    case 4 /* System */:\n    case 3 /* UMD */:\n      return false;\n  }\n  return true;\n}\nfunction unreachableCodeIsError(options) {\n  return options.allowUnreachableCode === false;\n}\nfunction unusedLabelIsError(options) {\n  return options.allowUnusedLabels === false;\n}\nfunction moduleResolutionSupportsPackageJsonExportsAndImports(moduleResolution) {\n  return moduleResolution >= 3 /* Node16 */ && moduleResolution <= 99 /* NodeNext */ || moduleResolution === 100 /* Bundler */;\n}\nfunction moduleSupportsImportAttributes(moduleKind) {\n  return 101 /* Node18 */ <= moduleKind && moduleKind <= 199 /* NodeNext */ || moduleKind === 200 /* Preserve */ || moduleKind === 99 /* ESNext */;\n}\nfunction getStrictOptionValue(compilerOptions, flag) {\n  return compilerOptions[flag] === void 0 ? !!compilerOptions.strict : !!compilerOptions[flag];\n}\nfunction getNameOfScriptTarget(scriptTarget) {\n  return forEachEntry(targetOptionDeclaration.type, (value, key) => value === scriptTarget ? key : void 0);\n}\nfunction getEmitStandardClassFields(compilerOptions) {\n  return compilerOptions.useDefineForClassFields !== false && getEmitScriptTarget(compilerOptions) >= 9 /* ES2022 */;\n}\nfunction compilerOptionsAffectSemanticDiagnostics(newOptions, oldOptions) {\n  return optionsHaveChanges(oldOptions, newOptions, semanticDiagnosticsOptionDeclarations);\n}\nfunction compilerOptionsAffectEmit(newOptions, oldOptions) {\n  return optionsHaveChanges(oldOptions, newOptions, affectsEmitOptionDeclarations);\n}\nfunction compilerOptionsAffectDeclarationPath(newOptions, oldOptions) {\n  return optionsHaveChanges(oldOptions, newOptions, affectsDeclarationPathOptionDeclarations);\n}\nfunction getCompilerOptionValue(options, option) {\n  return option.strictFlag ? getStrictOptionValue(options, option.name) : option.allowJsFlag ? getAllowJSCompilerOption(options) : options[option.name];\n}\nfunction getJSXTransformEnabled(options) {\n  const jsx = options.jsx;\n  return jsx === 2 /* React */ || jsx === 4 /* ReactJSX */ || jsx === 5 /* ReactJSXDev */;\n}\nfunction getJSXImplicitImportBase(compilerOptions, file) {\n  const jsxImportSourcePragmas = file == null ? void 0 : file.pragmas.get(\"jsximportsource\");\n  const jsxImportSourcePragma = isArray(jsxImportSourcePragmas) ? jsxImportSourcePragmas[jsxImportSourcePragmas.length - 1] : jsxImportSourcePragmas;\n  const jsxRuntimePragmas = file == null ? void 0 : file.pragmas.get(\"jsxruntime\");\n  const jsxRuntimePragma = isArray(jsxRuntimePragmas) ? jsxRuntimePragmas[jsxRuntimePragmas.length - 1] : jsxRuntimePragmas;\n  if ((jsxRuntimePragma == null ? void 0 : jsxRuntimePragma.arguments.factory) === \"classic\") {\n    return void 0;\n  }\n  return compilerOptions.jsx === 4 /* ReactJSX */ || compilerOptions.jsx === 5 /* ReactJSXDev */ || compilerOptions.jsxImportSource || jsxImportSourcePragma || (jsxRuntimePragma == null ? void 0 : jsxRuntimePragma.arguments.factory) === \"automatic\" ? (jsxImportSourcePragma == null ? void 0 : jsxImportSourcePragma.arguments.factory) || compilerOptions.jsxImportSource || \"react\" : void 0;\n}\nfunction getJSXRuntimeImport(base, options) {\n  return base ? `${base}/${options.jsx === 5 /* ReactJSXDev */ ? \"jsx-dev-runtime\" : \"jsx-runtime\"}` : void 0;\n}\nfunction hasZeroOrOneAsteriskCharacter(str) {\n  let seenAsterisk = false;\n  for (let i = 0; i < str.length; i++) {\n    if (str.charCodeAt(i) === 42 /* asterisk */) {\n      if (!seenAsterisk) {\n        seenAsterisk = true;\n      } else {\n        return false;\n      }\n    }\n  }\n  return true;\n}\nfunction createSymlinkCache(cwd, getCanonicalFileName) {\n  let symlinkedDirectories;\n  let symlinkedDirectoriesByRealpath;\n  let symlinkedFiles;\n  let hasProcessedResolutions = false;\n  return {\n    getSymlinkedFiles: () => symlinkedFiles,\n    getSymlinkedDirectories: () => symlinkedDirectories,\n    getSymlinkedDirectoriesByRealpath: () => symlinkedDirectoriesByRealpath,\n    setSymlinkedFile: (path, real) => (symlinkedFiles || (symlinkedFiles = /* @__PURE__ */ new Map())).set(path, real),\n    setSymlinkedDirectory: (symlink, real) => {\n      let symlinkPath = toPath(symlink, cwd, getCanonicalFileName);\n      if (!containsIgnoredPath(symlinkPath)) {\n        symlinkPath = ensureTrailingDirectorySeparator(symlinkPath);\n        if (real !== false && !(symlinkedDirectories == null ? void 0 : symlinkedDirectories.has(symlinkPath))) {\n          (symlinkedDirectoriesByRealpath || (symlinkedDirectoriesByRealpath = createMultiMap())).add(real.realPath, symlink);\n        }\n        (symlinkedDirectories || (symlinkedDirectories = /* @__PURE__ */ new Map())).set(symlinkPath, real);\n      }\n    },\n    setSymlinksFromResolutions(forEachResolvedModule, forEachResolvedTypeReferenceDirective, typeReferenceDirectives) {\n      Debug.assert(!hasProcessedResolutions);\n      hasProcessedResolutions = true;\n      forEachResolvedModule((resolution) => processResolution(this, resolution.resolvedModule));\n      forEachResolvedTypeReferenceDirective((resolution) => processResolution(this, resolution.resolvedTypeReferenceDirective));\n      typeReferenceDirectives.forEach((resolution) => processResolution(this, resolution.resolvedTypeReferenceDirective));\n    },\n    hasProcessedResolutions: () => hasProcessedResolutions,\n    setSymlinksFromResolution(resolution) {\n      processResolution(this, resolution);\n    },\n    hasAnySymlinks\n  };\n  function hasAnySymlinks() {\n    return !!(symlinkedFiles == null ? void 0 : symlinkedFiles.size) || !!symlinkedDirectories && !!forEachEntry(symlinkedDirectories, (value) => !!value);\n  }\n  function processResolution(cache, resolution) {\n    if (!resolution || !resolution.originalPath || !resolution.resolvedFileName) return;\n    const { resolvedFileName, originalPath } = resolution;\n    cache.setSymlinkedFile(toPath(originalPath, cwd, getCanonicalFileName), resolvedFileName);\n    const [commonResolved, commonOriginal] = guessDirectorySymlink(resolvedFileName, originalPath, cwd, getCanonicalFileName) || emptyArray;\n    if (commonResolved && commonOriginal) {\n      cache.setSymlinkedDirectory(\n        commonOriginal,\n        {\n          real: ensureTrailingDirectorySeparator(commonResolved),\n          realPath: ensureTrailingDirectorySeparator(toPath(commonResolved, cwd, getCanonicalFileName))\n        }\n      );\n    }\n  }\n}\nfunction guessDirectorySymlink(a, b, cwd, getCanonicalFileName) {\n  const aParts = getPathComponents(getNormalizedAbsolutePath(a, cwd));\n  const bParts = getPathComponents(getNormalizedAbsolutePath(b, cwd));\n  let isDirectory = false;\n  while (aParts.length >= 2 && bParts.length >= 2 && !isNodeModulesOrScopedPackageDirectory(aParts[aParts.length - 2], getCanonicalFileName) && !isNodeModulesOrScopedPackageDirectory(bParts[bParts.length - 2], getCanonicalFileName) && getCanonicalFileName(aParts[aParts.length - 1]) === getCanonicalFileName(bParts[bParts.length - 1])) {\n    aParts.pop();\n    bParts.pop();\n    isDirectory = true;\n  }\n  return isDirectory ? [getPathFromPathComponents(aParts), getPathFromPathComponents(bParts)] : void 0;\n}\nfunction isNodeModulesOrScopedPackageDirectory(s, getCanonicalFileName) {\n  return s !== void 0 && (getCanonicalFileName(s) === \"node_modules\" || startsWith(s, \"@\"));\n}\nfunction stripLeadingDirectorySeparator(s) {\n  return isAnyDirectorySeparator(s.charCodeAt(0)) ? s.slice(1) : void 0;\n}\nfunction tryRemoveDirectoryPrefix(path, dirPath, getCanonicalFileName) {\n  const withoutPrefix = tryRemovePrefix(path, dirPath, getCanonicalFileName);\n  return withoutPrefix === void 0 ? void 0 : stripLeadingDirectorySeparator(withoutPrefix);\n}\nvar reservedCharacterPattern = /[^\\w\\s/]/g;\nfunction regExpEscape(text) {\n  return text.replace(reservedCharacterPattern, escapeRegExpCharacter);\n}\nfunction escapeRegExpCharacter(match) {\n  return \"\\\\\" + match;\n}\nvar wildcardCharCodes = [42 /* asterisk */, 63 /* question */];\nvar commonPackageFolders = [\"node_modules\", \"bower_components\", \"jspm_packages\"];\nvar implicitExcludePathRegexPattern = `(?!(?:${commonPackageFolders.join(\"|\")})(?:/|$))`;\nvar filesMatcher = {\n  /**\n   * Matches any single directory segment unless it is the last segment and a .min.js file\n   * Breakdown:\n   *  [^./]                   # matches everything up to the first . character (excluding directory separators)\n   *  (\\\\.(?!min\\\\.js$))?     # matches . characters but not if they are part of the .min.js file extension\n   */\n  singleAsteriskRegexFragment: \"(?:[^./]|(?:\\\\.(?!min\\\\.js$))?)*\",\n  /**\n   * Regex for the ** wildcard. Matches any number of subdirectories. When used for including\n   * files or directories, does not match subdirectories that start with a . character\n   */\n  doubleAsteriskRegexFragment: `(?:/${implicitExcludePathRegexPattern}[^/.][^/]*)*?`,\n  replaceWildcardCharacter: (match) => replaceWildcardCharacter(match, filesMatcher.singleAsteriskRegexFragment)\n};\nvar directoriesMatcher = {\n  singleAsteriskRegexFragment: \"[^/]*\",\n  /**\n   * Regex for the ** wildcard. Matches any number of subdirectories. When used for including\n   * files or directories, does not match subdirectories that start with a . character\n   */\n  doubleAsteriskRegexFragment: `(?:/${implicitExcludePathRegexPattern}[^/.][^/]*)*?`,\n  replaceWildcardCharacter: (match) => replaceWildcardCharacter(match, directoriesMatcher.singleAsteriskRegexFragment)\n};\nvar excludeMatcher = {\n  singleAsteriskRegexFragment: \"[^/]*\",\n  doubleAsteriskRegexFragment: \"(?:/.+?)?\",\n  replaceWildcardCharacter: (match) => replaceWildcardCharacter(match, excludeMatcher.singleAsteriskRegexFragment)\n};\nvar wildcardMatchers = {\n  files: filesMatcher,\n  directories: directoriesMatcher,\n  exclude: excludeMatcher\n};\nfunction getRegularExpressionForWildcard(specs, basePath, usage) {\n  const patterns = getRegularExpressionsForWildcards(specs, basePath, usage);\n  if (!patterns || !patterns.length) {\n    return void 0;\n  }\n  const pattern = patterns.map((pattern2) => `(?:${pattern2})`).join(\"|\");\n  const terminator = usage === \"exclude\" ? \"(?:$|/)\" : \"$\";\n  return `^(?:${pattern})${terminator}`;\n}\nfunction getRegularExpressionsForWildcards(specs, basePath, usage) {\n  if (specs === void 0 || specs.length === 0) {\n    return void 0;\n  }\n  return flatMap(specs, (spec) => spec && getSubPatternFromSpec(spec, basePath, usage, wildcardMatchers[usage]));\n}\nfunction isImplicitGlob(lastPathComponent) {\n  return !/[.*?]/.test(lastPathComponent);\n}\nfunction getPatternFromSpec(spec, basePath, usage) {\n  const pattern = spec && getSubPatternFromSpec(spec, basePath, usage, wildcardMatchers[usage]);\n  return pattern && `^(?:${pattern})${usage === \"exclude\" ? \"(?:$|/)\" : \"$\"}`;\n}\nfunction getSubPatternFromSpec(spec, basePath, usage, { singleAsteriskRegexFragment, doubleAsteriskRegexFragment, replaceWildcardCharacter: replaceWildcardCharacter2 } = wildcardMatchers[usage]) {\n  let subpattern = \"\";\n  let hasWrittenComponent = false;\n  const components = getNormalizedPathComponents(spec, basePath);\n  const lastComponent = last(components);\n  if (usage !== \"exclude\" && lastComponent === \"**\") {\n    return void 0;\n  }\n  components[0] = removeTrailingDirectorySeparator(components[0]);\n  if (isImplicitGlob(lastComponent)) {\n    components.push(\"**\", \"*\");\n  }\n  let optionalCount = 0;\n  for (let component of components) {\n    if (component === \"**\") {\n      subpattern += doubleAsteriskRegexFragment;\n    } else {\n      if (usage === \"directories\") {\n        subpattern += \"(?:\";\n        optionalCount++;\n      }\n      if (hasWrittenComponent) {\n        subpattern += directorySeparator;\n      }\n      if (usage !== \"exclude\") {\n        let componentPattern = \"\";\n        if (component.charCodeAt(0) === 42 /* asterisk */) {\n          componentPattern += \"(?:[^./]\" + singleAsteriskRegexFragment + \")?\";\n          component = component.substr(1);\n        } else if (component.charCodeAt(0) === 63 /* question */) {\n          componentPattern += \"[^./]\";\n          component = component.substr(1);\n        }\n        componentPattern += component.replace(reservedCharacterPattern, replaceWildcardCharacter2);\n        if (componentPattern !== component) {\n          subpattern += implicitExcludePathRegexPattern;\n        }\n        subpattern += componentPattern;\n      } else {\n        subpattern += component.replace(reservedCharacterPattern, replaceWildcardCharacter2);\n      }\n    }\n    hasWrittenComponent = true;\n  }\n  while (optionalCount > 0) {\n    subpattern += \")?\";\n    optionalCount--;\n  }\n  return subpattern;\n}\nfunction replaceWildcardCharacter(match, singleAsteriskRegexFragment) {\n  return match === \"*\" ? singleAsteriskRegexFragment : match === \"?\" ? \"[^/]\" : \"\\\\\" + match;\n}\nfunction getFileMatcherPatterns(path, excludes, includes, useCaseSensitiveFileNames2, currentDirectory) {\n  path = normalizePath(path);\n  currentDirectory = normalizePath(currentDirectory);\n  const absolutePath = combinePaths(currentDirectory, path);\n  return {\n    includeFilePatterns: map(getRegularExpressionsForWildcards(includes, absolutePath, \"files\"), (pattern) => `^${pattern}$`),\n    includeFilePattern: getRegularExpressionForWildcard(includes, absolutePath, \"files\"),\n    includeDirectoryPattern: getRegularExpressionForWildcard(includes, absolutePath, \"directories\"),\n    excludePattern: getRegularExpressionForWildcard(excludes, absolutePath, \"exclude\"),\n    basePaths: getBasePaths(path, includes, useCaseSensitiveFileNames2)\n  };\n}\nfunction getRegexFromPattern(pattern, useCaseSensitiveFileNames2) {\n  return new RegExp(pattern, useCaseSensitiveFileNames2 ? \"\" : \"i\");\n}\nfunction matchFiles(path, extensions, excludes, includes, useCaseSensitiveFileNames2, currentDirectory, depth, getFileSystemEntries, realpath) {\n  path = normalizePath(path);\n  currentDirectory = normalizePath(currentDirectory);\n  const patterns = getFileMatcherPatterns(path, excludes, includes, useCaseSensitiveFileNames2, currentDirectory);\n  const includeFileRegexes = patterns.includeFilePatterns && patterns.includeFilePatterns.map((pattern) => getRegexFromPattern(pattern, useCaseSensitiveFileNames2));\n  const includeDirectoryRegex = patterns.includeDirectoryPattern && getRegexFromPattern(patterns.includeDirectoryPattern, useCaseSensitiveFileNames2);\n  const excludeRegex = patterns.excludePattern && getRegexFromPattern(patterns.excludePattern, useCaseSensitiveFileNames2);\n  const results = includeFileRegexes ? includeFileRegexes.map(() => []) : [[]];\n  const visited = /* @__PURE__ */ new Map();\n  const toCanonical = createGetCanonicalFileName(useCaseSensitiveFileNames2);\n  for (const basePath of patterns.basePaths) {\n    visitDirectory(basePath, combinePaths(currentDirectory, basePath), depth);\n  }\n  return flatten(results);\n  function visitDirectory(path2, absolutePath, depth2) {\n    const canonicalPath = toCanonical(realpath(absolutePath));\n    if (visited.has(canonicalPath)) return;\n    visited.set(canonicalPath, true);\n    const { files, directories } = getFileSystemEntries(path2);\n    for (const current of toSorted(files, compareStringsCaseSensitive)) {\n      const name = combinePaths(path2, current);\n      const absoluteName = combinePaths(absolutePath, current);\n      if (extensions && !fileExtensionIsOneOf(name, extensions)) continue;\n      if (excludeRegex && excludeRegex.test(absoluteName)) continue;\n      if (!includeFileRegexes) {\n        results[0].push(name);\n      } else {\n        const includeIndex = findIndex(includeFileRegexes, (re) => re.test(absoluteName));\n        if (includeIndex !== -1) {\n          results[includeIndex].push(name);\n        }\n      }\n    }\n    if (depth2 !== void 0) {\n      depth2--;\n      if (depth2 === 0) {\n        return;\n      }\n    }\n    for (const current of toSorted(directories, compareStringsCaseSensitive)) {\n      const name = combinePaths(path2, current);\n      const absoluteName = combinePaths(absolutePath, current);\n      if ((!includeDirectoryRegex || includeDirectoryRegex.test(absoluteName)) && (!excludeRegex || !excludeRegex.test(absoluteName))) {\n        visitDirectory(name, absoluteName, depth2);\n      }\n    }\n  }\n}\nfunction getBasePaths(path, includes, useCaseSensitiveFileNames2) {\n  const basePaths = [path];\n  if (includes) {\n    const includeBasePaths = [];\n    for (const include of includes) {\n      const absolute = isRootedDiskPath(include) ? include : normalizePath(combinePaths(path, include));\n      includeBasePaths.push(getIncludeBasePath(absolute));\n    }\n    includeBasePaths.sort(getStringComparer(!useCaseSensitiveFileNames2));\n    for (const includeBasePath of includeBasePaths) {\n      if (every(basePaths, (basePath) => !containsPath(basePath, includeBasePath, path, !useCaseSensitiveFileNames2))) {\n        basePaths.push(includeBasePath);\n      }\n    }\n  }\n  return basePaths;\n}\nfunction getIncludeBasePath(absolute) {\n  const wildcardOffset = indexOfAnyCharCode(absolute, wildcardCharCodes);\n  if (wildcardOffset < 0) {\n    return !hasExtension(absolute) ? absolute : removeTrailingDirectorySeparator(getDirectoryPath(absolute));\n  }\n  return absolute.substring(0, absolute.lastIndexOf(directorySeparator, wildcardOffset));\n}\nfunction ensureScriptKind(fileName, scriptKind) {\n  return scriptKind || getScriptKindFromFileName(fileName) || 3 /* TS */;\n}\nfunction getScriptKindFromFileName(fileName) {\n  const ext = fileName.substr(fileName.lastIndexOf(\".\"));\n  switch (ext.toLowerCase()) {\n    case \".js\" /* Js */:\n    case \".cjs\" /* Cjs */:\n    case \".mjs\" /* Mjs */:\n      return 1 /* JS */;\n    case \".jsx\" /* Jsx */:\n      return 2 /* JSX */;\n    case \".ts\" /* Ts */:\n    case \".cts\" /* Cts */:\n    case \".mts\" /* Mts */:\n      return 3 /* TS */;\n    case \".tsx\" /* Tsx */:\n      return 4 /* TSX */;\n    case \".json\" /* Json */:\n      return 6 /* JSON */;\n    default:\n      return 0 /* Unknown */;\n  }\n}\nvar supportedTSExtensions = [[\".ts\" /* Ts */, \".tsx\" /* Tsx */, \".d.ts\" /* Dts */], [\".cts\" /* Cts */, \".d.cts\" /* Dcts */], [\".mts\" /* Mts */, \".d.mts\" /* Dmts */]];\nvar supportedTSExtensionsFlat = flatten(supportedTSExtensions);\nvar supportedTSExtensionsWithJson = [...supportedTSExtensions, [\".json\" /* Json */]];\nvar supportedTSExtensionsForExtractExtension = [\".d.ts\" /* Dts */, \".d.cts\" /* Dcts */, \".d.mts\" /* Dmts */, \".cts\" /* Cts */, \".mts\" /* Mts */, \".ts\" /* Ts */, \".tsx\" /* Tsx */];\nvar supportedJSExtensions = [[\".js\" /* Js */, \".jsx\" /* Jsx */], [\".mjs\" /* Mjs */], [\".cjs\" /* Cjs */]];\nvar supportedJSExtensionsFlat = flatten(supportedJSExtensions);\nvar allSupportedExtensions = [[\".ts\" /* Ts */, \".tsx\" /* Tsx */, \".d.ts\" /* Dts */, \".js\" /* Js */, \".jsx\" /* Jsx */], [\".cts\" /* Cts */, \".d.cts\" /* Dcts */, \".cjs\" /* Cjs */], [\".mts\" /* Mts */, \".d.mts\" /* Dmts */, \".mjs\" /* Mjs */]];\nvar allSupportedExtensionsWithJson = [...allSupportedExtensions, [\".json\" /* Json */]];\nvar supportedDeclarationExtensions = [\".d.ts\" /* Dts */, \".d.cts\" /* Dcts */, \".d.mts\" /* Dmts */];\nvar supportedTSImplementationExtensions = [\".ts\" /* Ts */, \".cts\" /* Cts */, \".mts\" /* Mts */, \".tsx\" /* Tsx */];\nvar extensionsNotSupportingExtensionlessResolution = [\".mts\" /* Mts */, \".d.mts\" /* Dmts */, \".mjs\" /* Mjs */, \".cts\" /* Cts */, \".d.cts\" /* Dcts */, \".cjs\" /* Cjs */];\nfunction getSupportedExtensions(options, extraFileExtensions) {\n  const needJsExtensions = options && getAllowJSCompilerOption(options);\n  if (!extraFileExtensions || extraFileExtensions.length === 0) {\n    return needJsExtensions ? allSupportedExtensions : supportedTSExtensions;\n  }\n  const builtins = needJsExtensions ? allSupportedExtensions : supportedTSExtensions;\n  const flatBuiltins = flatten(builtins);\n  const extensions = [\n    ...builtins,\n    ...mapDefined(extraFileExtensions, (x) => x.scriptKind === 7 /* Deferred */ || needJsExtensions && isJSLike(x.scriptKind) && !flatBuiltins.includes(x.extension) ? [x.extension] : void 0)\n  ];\n  return extensions;\n}\nfunction getSupportedExtensionsWithJsonIfResolveJsonModule(options, supportedExtensions) {\n  if (!options || !getResolveJsonModule(options)) return supportedExtensions;\n  if (supportedExtensions === allSupportedExtensions) return allSupportedExtensionsWithJson;\n  if (supportedExtensions === supportedTSExtensions) return supportedTSExtensionsWithJson;\n  return [...supportedExtensions, [\".json\" /* Json */]];\n}\nfunction isJSLike(scriptKind) {\n  return scriptKind === 1 /* JS */ || scriptKind === 2 /* JSX */;\n}\nfunction hasJSFileExtension(fileName) {\n  return some(supportedJSExtensionsFlat, (extension) => fileExtensionIs(fileName, extension));\n}\nfunction hasTSFileExtension(fileName) {\n  return some(supportedTSExtensionsFlat, (extension) => fileExtensionIs(fileName, extension));\n}\nfunction hasImplementationTSFileExtension(fileName) {\n  return some(supportedTSImplementationExtensions, (extension) => fileExtensionIs(fileName, extension)) && !isDeclarationFileName(fileName);\n}\nvar ModuleSpecifierEnding = /* @__PURE__ */ ((ModuleSpecifierEnding2) => {\n  ModuleSpecifierEnding2[ModuleSpecifierEnding2[\"Minimal\"] = 0] = \"Minimal\";\n  ModuleSpecifierEnding2[ModuleSpecifierEnding2[\"Index\"] = 1] = \"Index\";\n  ModuleSpecifierEnding2[ModuleSpecifierEnding2[\"JsExtension\"] = 2] = \"JsExtension\";\n  ModuleSpecifierEnding2[ModuleSpecifierEnding2[\"TsExtension\"] = 3] = \"TsExtension\";\n  return ModuleSpecifierEnding2;\n})(ModuleSpecifierEnding || {});\nfunction usesExtensionsOnImports({ imports }, hasExtension2 = or(hasJSFileExtension, hasTSFileExtension)) {\n  return firstDefined(imports, ({ text }) => pathIsRelative(text) && !fileExtensionIsOneOf(text, extensionsNotSupportingExtensionlessResolution) ? hasExtension2(text) : void 0) || false;\n}\nfunction getModuleSpecifierEndingPreference(preference, resolutionMode, compilerOptions, sourceFile) {\n  const moduleResolution = getEmitModuleResolutionKind(compilerOptions);\n  const moduleResolutionIsNodeNext = 3 /* Node16 */ <= moduleResolution && moduleResolution <= 99 /* NodeNext */;\n  if (preference === \"js\" || resolutionMode === 99 /* ESNext */ && moduleResolutionIsNodeNext) {\n    if (!shouldAllowImportingTsExtension(compilerOptions)) {\n      return 2 /* JsExtension */;\n    }\n    return inferPreference() !== 2 /* JsExtension */ ? 3 /* TsExtension */ : 2 /* JsExtension */;\n  }\n  if (preference === \"minimal\") {\n    return 0 /* Minimal */;\n  }\n  if (preference === \"index\") {\n    return 1 /* Index */;\n  }\n  if (!shouldAllowImportingTsExtension(compilerOptions)) {\n    return sourceFile && usesExtensionsOnImports(sourceFile) ? 2 /* JsExtension */ : 0 /* Minimal */;\n  }\n  return inferPreference();\n  function inferPreference() {\n    let usesJsExtensions = false;\n    const specifiers = (sourceFile == null ? void 0 : sourceFile.imports.length) ? sourceFile.imports : sourceFile && isSourceFileJS(sourceFile) ? getRequiresAtTopOfFile(sourceFile).map((r) => r.arguments[0]) : emptyArray;\n    for (const specifier of specifiers) {\n      if (pathIsRelative(specifier.text)) {\n        if (moduleResolutionIsNodeNext && resolutionMode === 1 /* CommonJS */ && getModeForUsageLocation(sourceFile, specifier, compilerOptions) === 99 /* ESNext */) {\n          continue;\n        }\n        if (fileExtensionIsOneOf(specifier.text, extensionsNotSupportingExtensionlessResolution)) {\n          continue;\n        }\n        if (hasTSFileExtension(specifier.text)) {\n          return 3 /* TsExtension */;\n        }\n        if (hasJSFileExtension(specifier.text)) {\n          usesJsExtensions = true;\n        }\n      }\n    }\n    return usesJsExtensions ? 2 /* JsExtension */ : 0 /* Minimal */;\n  }\n}\nfunction getRequiresAtTopOfFile(sourceFile) {\n  let nonRequireStatementCount = 0;\n  let requires;\n  for (const statement of sourceFile.statements) {\n    if (nonRequireStatementCount > 3) {\n      break;\n    }\n    if (isRequireVariableStatement(statement)) {\n      requires = concatenate(requires, statement.declarationList.declarations.map((d) => d.initializer));\n    } else if (isExpressionStatement(statement) && isRequireCall(\n      statement.expression,\n      /*requireStringLiteralLikeArgument*/\n      true\n    )) {\n      requires = append(requires, statement.expression);\n    } else {\n      nonRequireStatementCount++;\n    }\n  }\n  return requires || emptyArray;\n}\nfunction isSupportedSourceFileName(fileName, compilerOptions, extraFileExtensions) {\n  if (!fileName) return false;\n  const supportedExtensions = getSupportedExtensions(compilerOptions, extraFileExtensions);\n  for (const extension of flatten(getSupportedExtensionsWithJsonIfResolveJsonModule(compilerOptions, supportedExtensions))) {\n    if (fileExtensionIs(fileName, extension)) {\n      return true;\n    }\n  }\n  return false;\n}\nfunction numberOfDirectorySeparators(str) {\n  const match = str.match(/\\//g);\n  return match ? match.length : 0;\n}\nfunction compareNumberOfDirectorySeparators(path1, path2) {\n  return compareValues(\n    numberOfDirectorySeparators(path1),\n    numberOfDirectorySeparators(path2)\n  );\n}\nvar extensionsToRemove = [\".d.ts\" /* Dts */, \".d.mts\" /* Dmts */, \".d.cts\" /* Dcts */, \".mjs\" /* Mjs */, \".mts\" /* Mts */, \".cjs\" /* Cjs */, \".cts\" /* Cts */, \".ts\" /* Ts */, \".js\" /* Js */, \".tsx\" /* Tsx */, \".jsx\" /* Jsx */, \".json\" /* Json */];\nfunction removeFileExtension(path) {\n  for (const ext of extensionsToRemove) {\n    const extensionless = tryRemoveExtension(path, ext);\n    if (extensionless !== void 0) {\n      return extensionless;\n    }\n  }\n  return path;\n}\nfunction tryRemoveExtension(path, extension) {\n  return fileExtensionIs(path, extension) ? removeExtension(path, extension) : void 0;\n}\nfunction removeExtension(path, extension) {\n  return path.substring(0, path.length - extension.length);\n}\nfunction changeExtension(path, newExtension) {\n  return changeAnyExtension(\n    path,\n    newExtension,\n    extensionsToRemove,\n    /*ignoreCase*/\n    false\n  );\n}\nfunction tryParsePattern(pattern) {\n  const indexOfStar = pattern.indexOf(\"*\");\n  if (indexOfStar === -1) {\n    return pattern;\n  }\n  return pattern.indexOf(\"*\", indexOfStar + 1) !== -1 ? void 0 : {\n    prefix: pattern.substr(0, indexOfStar),\n    suffix: pattern.substr(indexOfStar + 1)\n  };\n}\nvar parsedPatternsCache = /* @__PURE__ */ new WeakMap();\nfunction tryParsePatterns(paths) {\n  let result = parsedPatternsCache.get(paths);\n  if (result !== void 0) {\n    return result;\n  }\n  let matchableStringSet;\n  let patterns;\n  const pathList = getOwnKeys(paths);\n  for (const path of pathList) {\n    const patternOrStr = tryParsePattern(path);\n    if (patternOrStr === void 0) {\n      continue;\n    } else if (typeof patternOrStr === \"string\") {\n      (matchableStringSet ?? (matchableStringSet = /* @__PURE__ */ new Set())).add(patternOrStr);\n    } else {\n      (patterns ?? (patterns = [])).push(patternOrStr);\n    }\n  }\n  parsedPatternsCache.set(\n    paths,\n    result = {\n      matchableStringSet,\n      patterns\n    }\n  );\n  return result;\n}\nfunction positionIsSynthesized(pos) {\n  return !(pos >= 0);\n}\nfunction extensionIsTS(ext) {\n  return ext === \".ts\" /* Ts */ || ext === \".tsx\" /* Tsx */ || ext === \".d.ts\" /* Dts */ || ext === \".cts\" /* Cts */ || ext === \".mts\" /* Mts */ || ext === \".d.mts\" /* Dmts */ || ext === \".d.cts\" /* Dcts */ || startsWith(ext, \".d.\") && endsWith(ext, \".ts\");\n}\nfunction resolutionExtensionIsTSOrJson(ext) {\n  return extensionIsTS(ext) || ext === \".json\" /* Json */;\n}\nfunction extensionFromPath(path) {\n  const ext = tryGetExtensionFromPath2(path);\n  return ext !== void 0 ? ext : Debug.fail(`File ${path} has unknown extension.`);\n}\nfunction isAnySupportedFileExtension(path) {\n  return tryGetExtensionFromPath2(path) !== void 0;\n}\nfunction tryGetExtensionFromPath2(path) {\n  return find(extensionsToRemove, (e) => fileExtensionIs(path, e));\n}\nfunction isCheckJsEnabledForFile(sourceFile, compilerOptions) {\n  return sourceFile.checkJsDirective ? sourceFile.checkJsDirective.enabled : compilerOptions.checkJs;\n}\nvar emptyFileSystemEntries = {\n  files: emptyArray,\n  directories: emptyArray\n};\nfunction matchPatternOrExact(parsedPatterns, candidate) {\n  const { matchableStringSet, patterns } = parsedPatterns;\n  if (matchableStringSet == null ? void 0 : matchableStringSet.has(candidate)) {\n    return candidate;\n  }\n  if (patterns === void 0 || patterns.length === 0) {\n    return void 0;\n  }\n  return findBestPatternMatch(patterns, (_) => _, candidate);\n}\nfunction sliceAfter(arr, value) {\n  const index = arr.indexOf(value);\n  Debug.assert(index !== -1);\n  return arr.slice(index);\n}\nfunction addRelatedInfo(diagnostic, ...relatedInformation) {\n  if (!relatedInformation.length) {\n    return diagnostic;\n  }\n  if (!diagnostic.relatedInformation) {\n    diagnostic.relatedInformation = [];\n  }\n  Debug.assert(diagnostic.relatedInformation !== emptyArray, \"Diagnostic had empty array singleton for related info, but is still being constructed!\");\n  diagnostic.relatedInformation.push(...relatedInformation);\n  return diagnostic;\n}\nfunction minAndMax(arr, getValue) {\n  Debug.assert(arr.length !== 0);\n  let min2 = getValue(arr[0]);\n  let max = min2;\n  for (let i = 1; i < arr.length; i++) {\n    const value = getValue(arr[i]);\n    if (value < min2) {\n      min2 = value;\n    } else if (value > max) {\n      max = value;\n    }\n  }\n  return { min: min2, max };\n}\nfunction rangeOfNode(node) {\n  return { pos: getTokenPosOfNode(node), end: node.end };\n}\nfunction rangeOfTypeParameters(sourceFile, typeParameters) {\n  const pos = typeParameters.pos - 1;\n  const end = Math.min(sourceFile.text.length, skipTrivia(sourceFile.text, typeParameters.end) + 1);\n  return { pos, end };\n}\nfunction skipTypeChecking(sourceFile, options, host) {\n  return skipTypeCheckingWorker(\n    sourceFile,\n    options,\n    host,\n    /*ignoreNoCheck*/\n    false\n  );\n}\nfunction skipTypeCheckingIgnoringNoCheck(sourceFile, options, host) {\n  return skipTypeCheckingWorker(\n    sourceFile,\n    options,\n    host,\n    /*ignoreNoCheck*/\n    true\n  );\n}\nfunction skipTypeCheckingWorker(sourceFile, options, host, ignoreNoCheck) {\n  return options.skipLibCheck && sourceFile.isDeclarationFile || options.skipDefaultLibCheck && sourceFile.hasNoDefaultLib || !ignoreNoCheck && options.noCheck || host.isSourceOfProjectReferenceRedirect(sourceFile.fileName) || !canIncludeBindAndCheckDiagnostics(sourceFile, options);\n}\nfunction canIncludeBindAndCheckDiagnostics(sourceFile, options) {\n  if (!!sourceFile.checkJsDirective && sourceFile.checkJsDirective.enabled === false) return false;\n  if (sourceFile.scriptKind === 3 /* TS */ || sourceFile.scriptKind === 4 /* TSX */ || sourceFile.scriptKind === 5 /* External */) return true;\n  const isJs = sourceFile.scriptKind === 1 /* JS */ || sourceFile.scriptKind === 2 /* JSX */;\n  const isCheckJs = isJs && isCheckJsEnabledForFile(sourceFile, options);\n  const isPlainJs = isPlainJsFile(sourceFile, options.checkJs);\n  return isPlainJs || isCheckJs || sourceFile.scriptKind === 7 /* Deferred */;\n}\nfunction isJsonEqual(a, b) {\n  return a === b || typeof a === \"object\" && a !== null && typeof b === \"object\" && b !== null && equalOwnProperties(a, b, isJsonEqual);\n}\nfunction parsePseudoBigInt(stringValue) {\n  let log2Base;\n  switch (stringValue.charCodeAt(1)) {\n    // \"x\" in \"0x123\"\n    case 98 /* b */:\n    case 66 /* B */:\n      log2Base = 1;\n      break;\n    case 111 /* o */:\n    case 79 /* O */:\n      log2Base = 3;\n      break;\n    case 120 /* x */:\n    case 88 /* X */:\n      log2Base = 4;\n      break;\n    default:\n      const nIndex = stringValue.length - 1;\n      let nonZeroStart = 0;\n      while (stringValue.charCodeAt(nonZeroStart) === 48 /* _0 */) {\n        nonZeroStart++;\n      }\n      return stringValue.slice(nonZeroStart, nIndex) || \"0\";\n  }\n  const startIndex = 2, endIndex = stringValue.length - 1;\n  const bitsNeeded = (endIndex - startIndex) * log2Base;\n  const segments = new Uint16Array((bitsNeeded >>> 4) + (bitsNeeded & 15 ? 1 : 0));\n  for (let i = endIndex - 1, bitOffset = 0; i >= startIndex; i--, bitOffset += log2Base) {\n    const segment = bitOffset >>> 4;\n    const digitChar = stringValue.charCodeAt(i);\n    const digit = digitChar <= 57 /* _9 */ ? digitChar - 48 /* _0 */ : 10 + digitChar - (digitChar <= 70 /* F */ ? 65 /* A */ : 97 /* a */);\n    const shiftedDigit = digit << (bitOffset & 15);\n    segments[segment] |= shiftedDigit;\n    const residual = shiftedDigit >>> 16;\n    if (residual) segments[segment + 1] |= residual;\n  }\n  let base10Value = \"\";\n  let firstNonzeroSegment = segments.length - 1;\n  let segmentsRemaining = true;\n  while (segmentsRemaining) {\n    let mod10 = 0;\n    segmentsRemaining = false;\n    for (let segment = firstNonzeroSegment; segment >= 0; segment--) {\n      const newSegment = mod10 << 16 | segments[segment];\n      const segmentValue = newSegment / 10 | 0;\n      segments[segment] = segmentValue;\n      mod10 = newSegment - segmentValue * 10;\n      if (segmentValue && !segmentsRemaining) {\n        firstNonzeroSegment = segment;\n        segmentsRemaining = true;\n      }\n    }\n    base10Value = mod10 + base10Value;\n  }\n  return base10Value;\n}\nfunction pseudoBigIntToString({ negative, base10Value }) {\n  return (negative && base10Value !== \"0\" ? \"-\" : \"\") + base10Value;\n}\nfunction parseBigInt(text) {\n  if (!isValidBigIntString(\n    text,\n    /*roundTripOnly*/\n    false\n  )) {\n    return void 0;\n  }\n  return parseValidBigInt(text);\n}\nfunction parseValidBigInt(text) {\n  const negative = text.startsWith(\"-\");\n  const base10Value = parsePseudoBigInt(`${negative ? text.slice(1) : text}n`);\n  return { negative, base10Value };\n}\nfunction isValidBigIntString(s, roundTripOnly) {\n  if (s === \"\") return false;\n  const scanner2 = createScanner(\n    99 /* ESNext */,\n    /*skipTrivia*/\n    false\n  );\n  let success = true;\n  scanner2.setOnError(() => success = false);\n  scanner2.setText(s + \"n\");\n  let result = scanner2.scan();\n  const negative = result === 41 /* MinusToken */;\n  if (negative) {\n    result = scanner2.scan();\n  }\n  const flags = scanner2.getTokenFlags();\n  return success && result === 10 /* BigIntLiteral */ && scanner2.getTokenEnd() === s.length + 1 && !(flags & 512 /* ContainsSeparator */) && (!roundTripOnly || s === pseudoBigIntToString({ negative, base10Value: parsePseudoBigInt(scanner2.getTokenValue()) }));\n}\nfunction isValidTypeOnlyAliasUseSite(useSite) {\n  return !!(useSite.flags & 33554432 /* Ambient */) || isInJSDoc(useSite) || isPartOfTypeQuery(useSite) || isIdentifierInNonEmittingHeritageClause(useSite) || isPartOfPossiblyValidTypeOrAbstractComputedPropertyName(useSite) || !(isExpressionNode(useSite) || isShorthandPropertyNameUseSite(useSite));\n}\nfunction isShorthandPropertyNameUseSite(useSite) {\n  return isIdentifier(useSite) && isShorthandPropertyAssignment(useSite.parent) && useSite.parent.name === useSite;\n}\nfunction isPartOfPossiblyValidTypeOrAbstractComputedPropertyName(node) {\n  while (node.kind === 80 /* Identifier */ || node.kind === 212 /* PropertyAccessExpression */) {\n    node = node.parent;\n  }\n  if (node.kind !== 168 /* ComputedPropertyName */) {\n    return false;\n  }\n  if (hasSyntacticModifier(node.parent, 64 /* Abstract */)) {\n    return true;\n  }\n  const containerKind = node.parent.parent.kind;\n  return containerKind === 265 /* InterfaceDeclaration */ || containerKind === 188 /* TypeLiteral */;\n}\nfunction isIdentifierInNonEmittingHeritageClause(node) {\n  if (node.kind !== 80 /* Identifier */) return false;\n  const heritageClause = findAncestor(node.parent, (parent2) => {\n    switch (parent2.kind) {\n      case 299 /* HeritageClause */:\n        return true;\n      case 212 /* PropertyAccessExpression */:\n      case 234 /* ExpressionWithTypeArguments */:\n        return false;\n      default:\n        return \"quit\";\n    }\n  });\n  return (heritageClause == null ? void 0 : heritageClause.token) === 119 /* ImplementsKeyword */ || (heritageClause == null ? void 0 : heritageClause.parent.kind) === 265 /* InterfaceDeclaration */;\n}\nfunction isIdentifierTypeReference(node) {\n  return isTypeReferenceNode(node) && isIdentifier(node.typeName);\n}\nfunction arrayIsHomogeneous(array, comparer = equateValues) {\n  if (array.length < 2) return true;\n  const first2 = array[0];\n  for (let i = 1, length2 = array.length; i < length2; i++) {\n    const target = array[i];\n    if (!comparer(first2, target)) return false;\n  }\n  return true;\n}\nfunction setTextRangePos(range, pos) {\n  range.pos = pos;\n  return range;\n}\nfunction setTextRangeEnd(range, end) {\n  range.end = end;\n  return range;\n}\nfunction setTextRangePosEnd(range, pos, end) {\n  return setTextRangeEnd(setTextRangePos(range, pos), end);\n}\nfunction setTextRangePosWidth(range, pos, width) {\n  return setTextRangePosEnd(range, pos, pos + width);\n}\nfunction setNodeFlags(node, newFlags) {\n  if (node) {\n    node.flags = newFlags;\n  }\n  return node;\n}\nfunction setParent(child, parent2) {\n  if (child && parent2) {\n    child.parent = parent2;\n  }\n  return child;\n}\nfunction setParentRecursive(rootNode, incremental) {\n  if (!rootNode) return rootNode;\n  forEachChildRecursively(rootNode, isJSDocNode(rootNode) ? bindParentToChildIgnoringJSDoc : bindParentToChild);\n  return rootNode;\n  function bindParentToChildIgnoringJSDoc(child, parent2) {\n    if (incremental && child.parent === parent2) {\n      return \"skip\";\n    }\n    setParent(child, parent2);\n  }\n  function bindJSDoc(child) {\n    if (hasJSDocNodes(child)) {\n      for (const doc of child.jsDoc) {\n        bindParentToChildIgnoringJSDoc(doc, child);\n        forEachChildRecursively(doc, bindParentToChildIgnoringJSDoc);\n      }\n    }\n  }\n  function bindParentToChild(child, parent2) {\n    return bindParentToChildIgnoringJSDoc(child, parent2) || bindJSDoc(child);\n  }\n}\nfunction isPackedElement(node) {\n  return !isOmittedExpression(node);\n}\nfunction isPackedArrayLiteral(node) {\n  return isArrayLiteralExpression(node) && every(node.elements, isPackedElement);\n}\nfunction expressionResultIsUnused(node) {\n  Debug.assertIsDefined(node.parent);\n  while (true) {\n    const parent2 = node.parent;\n    if (isParenthesizedExpression(parent2)) {\n      node = parent2;\n      continue;\n    }\n    if (isExpressionStatement(parent2) || isVoidExpression(parent2) || isForStatement(parent2) && (parent2.initializer === node || parent2.incrementor === node)) {\n      return true;\n    }\n    if (isCommaListExpression(parent2)) {\n      if (node !== last(parent2.elements)) return true;\n      node = parent2;\n      continue;\n    }\n    if (isBinaryExpression(parent2) && parent2.operatorToken.kind === 28 /* CommaToken */) {\n      if (node === parent2.left) return true;\n      node = parent2;\n      continue;\n    }\n    return false;\n  }\n}\nfunction containsIgnoredPath(path) {\n  return some(ignoredPaths, (p) => path.includes(p));\n}\nfunction getContainingNodeArray(node) {\n  if (!node.parent) return void 0;\n  switch (node.kind) {\n    case 169 /* TypeParameter */:\n      const { parent: parent3 } = node;\n      return parent3.kind === 196 /* InferType */ ? void 0 : parent3.typeParameters;\n    case 170 /* Parameter */:\n      return node.parent.parameters;\n    case 205 /* TemplateLiteralTypeSpan */:\n      return node.parent.templateSpans;\n    case 240 /* TemplateSpan */:\n      return node.parent.templateSpans;\n    case 171 /* Decorator */: {\n      const { parent: parent4 } = node;\n      return canHaveDecorators(parent4) ? parent4.modifiers : void 0;\n    }\n    case 299 /* HeritageClause */:\n      return node.parent.heritageClauses;\n  }\n  const { parent: parent2 } = node;\n  if (isJSDocTag(node)) {\n    return isJSDocTypeLiteral(node.parent) ? void 0 : node.parent.tags;\n  }\n  switch (parent2.kind) {\n    case 188 /* TypeLiteral */:\n    case 265 /* InterfaceDeclaration */:\n      return isTypeElement(node) ? parent2.members : void 0;\n    case 193 /* UnionType */:\n    case 194 /* IntersectionType */:\n      return parent2.types;\n    case 190 /* TupleType */:\n    case 210 /* ArrayLiteralExpression */:\n    case 357 /* CommaListExpression */:\n    case 276 /* NamedImports */:\n    case 280 /* NamedExports */:\n      return parent2.elements;\n    case 211 /* ObjectLiteralExpression */:\n    case 293 /* JsxAttributes */:\n      return parent2.properties;\n    case 214 /* CallExpression */:\n    case 215 /* NewExpression */:\n      return isTypeNode(node) ? parent2.typeArguments : parent2.expression === node ? void 0 : parent2.arguments;\n    case 285 /* JsxElement */:\n    case 289 /* JsxFragment */:\n      return isJsxChild(node) ? parent2.children : void 0;\n    case 287 /* JsxOpeningElement */:\n    case 286 /* JsxSelfClosingElement */:\n      return isTypeNode(node) ? parent2.typeArguments : void 0;\n    case 242 /* Block */:\n    case 297 /* CaseClause */:\n    case 298 /* DefaultClause */:\n    case 269 /* ModuleBlock */:\n      return parent2.statements;\n    case 270 /* CaseBlock */:\n      return parent2.clauses;\n    case 264 /* ClassDeclaration */:\n    case 232 /* ClassExpression */:\n      return isClassElement(node) ? parent2.members : void 0;\n    case 267 /* EnumDeclaration */:\n      return isEnumMember(node) ? parent2.members : void 0;\n    case 308 /* SourceFile */:\n      return parent2.statements;\n  }\n}\nfunction hasContextSensitiveParameters(node) {\n  if (!node.typeParameters) {\n    if (some(node.parameters, (p) => !getEffectiveTypeAnnotationNode(p))) {\n      return true;\n    }\n    if (node.kind !== 220 /* ArrowFunction */) {\n      const parameter = firstOrUndefined(node.parameters);\n      if (!(parameter && parameterIsThisKeyword(parameter))) {\n        return true;\n      }\n    }\n  }\n  return false;\n}\nfunction isInfinityOrNaNString(name) {\n  return name === \"Infinity\" || name === \"-Infinity\" || name === \"NaN\";\n}\nfunction isCatchClauseVariableDeclaration(node) {\n  return node.kind === 261 /* VariableDeclaration */ && node.parent.kind === 300 /* CatchClause */;\n}\nfunction isFunctionExpressionOrArrowFunction(node) {\n  return node.kind === 219 /* FunctionExpression */ || node.kind === 220 /* ArrowFunction */;\n}\nfunction escapeSnippetText(text) {\n  return text.replace(/\\$/g, () => \"\\\\$\");\n}\nfunction isNumericLiteralName(name) {\n  return (+name).toString() === name;\n}\nfunction createPropertyNameNodeForIdentifierOrLiteral(name, target, singleQuote, stringNamed, isMethod) {\n  const isMethodNamedNew = isMethod && name === \"new\";\n  return !isMethodNamedNew && isIdentifierText(name, target) ? factory.createIdentifier(name) : !stringNamed && !isMethodNamedNew && isNumericLiteralName(name) && +name >= 0 ? factory.createNumericLiteral(+name) : factory.createStringLiteral(name, !!singleQuote);\n}\nfunction isThisTypeParameter(type) {\n  return !!(type.flags & 262144 /* TypeParameter */ && type.isThisType);\n}\nfunction getNodeModulePathParts(fullPath) {\n  let topLevelNodeModulesIndex = 0;\n  let topLevelPackageNameIndex = 0;\n  let packageRootIndex = 0;\n  let fileNameIndex = 0;\n  let States;\n  ((States2) => {\n    States2[States2[\"BeforeNodeModules\"] = 0] = \"BeforeNodeModules\";\n    States2[States2[\"NodeModules\"] = 1] = \"NodeModules\";\n    States2[States2[\"Scope\"] = 2] = \"Scope\";\n    States2[States2[\"PackageContent\"] = 3] = \"PackageContent\";\n  })(States || (States = {}));\n  let partStart = 0;\n  let partEnd = 0;\n  let state = 0 /* BeforeNodeModules */;\n  while (partEnd >= 0) {\n    partStart = partEnd;\n    partEnd = fullPath.indexOf(\"/\", partStart + 1);\n    switch (state) {\n      case 0 /* BeforeNodeModules */:\n        if (fullPath.indexOf(nodeModulesPathPart, partStart) === partStart) {\n          topLevelNodeModulesIndex = partStart;\n          topLevelPackageNameIndex = partEnd;\n          state = 1 /* NodeModules */;\n        }\n        break;\n      case 1 /* NodeModules */:\n      case 2 /* Scope */:\n        if (state === 1 /* NodeModules */ && fullPath.charAt(partStart + 1) === \"@\") {\n          state = 2 /* Scope */;\n        } else {\n          packageRootIndex = partEnd;\n          state = 3 /* PackageContent */;\n        }\n        break;\n      case 3 /* PackageContent */:\n        if (fullPath.indexOf(nodeModulesPathPart, partStart) === partStart) {\n          state = 1 /* NodeModules */;\n        } else {\n          state = 3 /* PackageContent */;\n        }\n        break;\n    }\n  }\n  fileNameIndex = partStart;\n  return state > 1 /* NodeModules */ ? { topLevelNodeModulesIndex, topLevelPackageNameIndex, packageRootIndex, fileNameIndex } : void 0;\n}\nfunction isTypeDeclaration(node) {\n  switch (node.kind) {\n    case 169 /* TypeParameter */:\n    case 264 /* ClassDeclaration */:\n    case 265 /* InterfaceDeclaration */:\n    case 266 /* TypeAliasDeclaration */:\n    case 267 /* EnumDeclaration */:\n    case 347 /* JSDocTypedefTag */:\n    case 339 /* JSDocCallbackTag */:\n    case 341 /* JSDocEnumTag */:\n      return true;\n    case 274 /* ImportClause */:\n      return node.phaseModifier === 156 /* TypeKeyword */;\n    case 277 /* ImportSpecifier */:\n      return node.parent.parent.phaseModifier === 156 /* TypeKeyword */;\n    case 282 /* ExportSpecifier */:\n      return node.parent.parent.isTypeOnly;\n    default:\n      return false;\n  }\n}\nfunction canHaveExportModifier(node) {\n  return isEnumDeclaration(node) || isVariableStatement(node) || isFunctionDeclaration(node) || isClassDeclaration(node) || isInterfaceDeclaration(node) || isTypeDeclaration(node) || isModuleDeclaration(node) && !isExternalModuleAugmentation(node) && !isGlobalScopeAugmentation(node);\n}\nfunction isOptionalJSDocPropertyLikeTag(node) {\n  if (!isJSDocPropertyLikeTag(node)) {\n    return false;\n  }\n  const { isBracketed, typeExpression } = node;\n  return isBracketed || !!typeExpression && typeExpression.type.kind === 317 /* JSDocOptionalType */;\n}\nfunction canUsePropertyAccess(name, languageVersion) {\n  if (name.length === 0) {\n    return false;\n  }\n  const firstChar = name.charCodeAt(0);\n  return firstChar === 35 /* hash */ ? name.length > 1 && isIdentifierStart(name.charCodeAt(1), languageVersion) : isIdentifierStart(firstChar, languageVersion);\n}\nfunction hasTabstop(node) {\n  var _a;\n  return ((_a = getSnippetElement(node)) == null ? void 0 : _a.kind) === 0 /* TabStop */;\n}\nfunction isJSDocOptionalParameter(node) {\n  return isInJSFile(node) && // node.type should only be a JSDocOptionalType when node is a parameter of a JSDocFunctionType\n  (node.type && node.type.kind === 317 /* JSDocOptionalType */ || getJSDocParameterTags(node).some(isOptionalJSDocPropertyLikeTag));\n}\nfunction isOptionalDeclaration(declaration) {\n  switch (declaration.kind) {\n    case 173 /* PropertyDeclaration */:\n    case 172 /* PropertySignature */:\n      return !!declaration.questionToken;\n    case 170 /* Parameter */:\n      return !!declaration.questionToken || isJSDocOptionalParameter(declaration);\n    case 349 /* JSDocPropertyTag */:\n    case 342 /* JSDocParameterTag */:\n      return isOptionalJSDocPropertyLikeTag(declaration);\n    default:\n      return false;\n  }\n}\nfunction isNonNullAccess(node) {\n  const kind = node.kind;\n  return (kind === 212 /* PropertyAccessExpression */ || kind === 213 /* ElementAccessExpression */) && isNonNullExpression(node.expression);\n}\nfunction isJSDocSatisfiesExpression(node) {\n  return isInJSFile(node) && isParenthesizedExpression(node) && hasJSDocNodes(node) && !!getJSDocSatisfiesTag(node);\n}\nfunction getJSDocSatisfiesExpressionType(node) {\n  return Debug.checkDefined(tryGetJSDocSatisfiesTypeNode(node));\n}\nfunction tryGetJSDocSatisfiesTypeNode(node) {\n  const tag = getJSDocSatisfiesTag(node);\n  return tag && tag.typeExpression && tag.typeExpression.type;\n}\nfunction getEscapedTextOfJsxAttributeName(node) {\n  return isIdentifier(node) ? node.escapedText : getEscapedTextOfJsxNamespacedName(node);\n}\nfunction getTextOfJsxAttributeName(node) {\n  return isIdentifier(node) ? idText(node) : getTextOfJsxNamespacedName(node);\n}\nfunction isJsxAttributeName(node) {\n  const kind = node.kind;\n  return kind === 80 /* Identifier */ || kind === 296 /* JsxNamespacedName */;\n}\nfunction getEscapedTextOfJsxNamespacedName(node) {\n  return `${node.namespace.escapedText}:${idText(node.name)}`;\n}\nfunction getTextOfJsxNamespacedName(node) {\n  return `${idText(node.namespace)}:${idText(node.name)}`;\n}\nfunction intrinsicTagNameToString(node) {\n  return isIdentifier(node) ? idText(node) : getTextOfJsxNamespacedName(node);\n}\nfunction isTypeUsableAsPropertyName(type) {\n  return !!(type.flags & 8576 /* StringOrNumberLiteralOrUnique */);\n}\nfunction getPropertyNameFromType(type) {\n  if (type.flags & 8192 /* UniqueESSymbol */) {\n    return type.escapedName;\n  }\n  if (type.flags & (128 /* StringLiteral */ | 256 /* NumberLiteral */)) {\n    return escapeLeadingUnderscores(\"\" + type.value);\n  }\n  return Debug.fail();\n}\nfunction isExpandoPropertyDeclaration(declaration) {\n  return !!declaration && (isPropertyAccessExpression(declaration) || isElementAccessExpression(declaration) || isBinaryExpression(declaration));\n}\nfunction hasResolutionModeOverride(node) {\n  if (node === void 0) {\n    return false;\n  }\n  return !!getResolutionModeOverride(node.attributes);\n}\nvar stringReplace = String.prototype.replace;\nfunction replaceFirstStar(s, replacement) {\n  return stringReplace.call(s, \"*\", replacement);\n}\nfunction getNameFromImportAttribute(node) {\n  return isIdentifier(node.name) ? node.name.escapedText : escapeLeadingUnderscores(node.name.text);\n}\nfunction isSourceElement(node) {\n  switch (node.kind) {\n    case 169 /* TypeParameter */:\n    case 170 /* Parameter */:\n    case 173 /* PropertyDeclaration */:\n    case 172 /* PropertySignature */:\n    case 186 /* ConstructorType */:\n    case 185 /* FunctionType */:\n    case 180 /* CallSignature */:\n    case 181 /* ConstructSignature */:\n    case 182 /* IndexSignature */:\n    case 175 /* MethodDeclaration */:\n    case 174 /* MethodSignature */:\n    case 176 /* ClassStaticBlockDeclaration */:\n    case 177 /* Constructor */:\n    case 178 /* GetAccessor */:\n    case 179 /* SetAccessor */:\n    case 184 /* TypeReference */:\n    case 183 /* TypePredicate */:\n    case 187 /* TypeQuery */:\n    case 188 /* TypeLiteral */:\n    case 189 /* ArrayType */:\n    case 190 /* TupleType */:\n    case 193 /* UnionType */:\n    case 194 /* IntersectionType */:\n    case 197 /* ParenthesizedType */:\n    case 191 /* OptionalType */:\n    case 192 /* RestType */:\n    case 198 /* ThisType */:\n    case 199 /* TypeOperator */:\n    case 195 /* ConditionalType */:\n    case 196 /* InferType */:\n    case 204 /* TemplateLiteralType */:\n    case 206 /* ImportType */:\n    case 203 /* NamedTupleMember */:\n    case 329 /* JSDocAugmentsTag */:\n    case 330 /* JSDocImplementsTag */:\n    case 347 /* JSDocTypedefTag */:\n    case 339 /* JSDocCallbackTag */:\n    case 341 /* JSDocEnumTag */:\n    case 346 /* JSDocTemplateTag */:\n    case 345 /* JSDocTypeTag */:\n    case 325 /* JSDocLink */:\n    case 326 /* JSDocLinkCode */:\n    case 327 /* JSDocLinkPlain */:\n    case 342 /* JSDocParameterTag */:\n    case 349 /* JSDocPropertyTag */:\n    case 318 /* JSDocFunctionType */:\n    case 316 /* JSDocNonNullableType */:\n    case 315 /* JSDocNullableType */:\n    case 313 /* JSDocAllType */:\n    case 314 /* JSDocUnknownType */:\n    case 323 /* JSDocTypeLiteral */:\n    case 319 /* JSDocVariadicType */:\n    case 310 /* JSDocTypeExpression */:\n    case 334 /* JSDocPublicTag */:\n    case 336 /* JSDocProtectedTag */:\n    case 335 /* JSDocPrivateTag */:\n    case 351 /* JSDocSatisfiesTag */:\n    case 344 /* JSDocThisTag */:\n    case 200 /* IndexedAccessType */:\n    case 201 /* MappedType */:\n    case 263 /* FunctionDeclaration */:\n    case 242 /* Block */:\n    case 269 /* ModuleBlock */:\n    case 244 /* VariableStatement */:\n    case 245 /* ExpressionStatement */:\n    case 246 /* IfStatement */:\n    case 247 /* DoStatement */:\n    case 248 /* WhileStatement */:\n    case 249 /* ForStatement */:\n    case 250 /* ForInStatement */:\n    case 251 /* ForOfStatement */:\n    case 252 /* ContinueStatement */:\n    case 253 /* BreakStatement */:\n    case 254 /* ReturnStatement */:\n    case 255 /* WithStatement */:\n    case 256 /* SwitchStatement */:\n    case 257 /* LabeledStatement */:\n    case 258 /* ThrowStatement */:\n    case 259 /* TryStatement */:\n    case 261 /* VariableDeclaration */:\n    case 209 /* BindingElement */:\n    case 264 /* ClassDeclaration */:\n    case 265 /* InterfaceDeclaration */:\n    case 266 /* TypeAliasDeclaration */:\n    case 267 /* EnumDeclaration */:\n    case 268 /* ModuleDeclaration */:\n    case 273 /* ImportDeclaration */:\n    case 272 /* ImportEqualsDeclaration */:\n    case 279 /* ExportDeclaration */:\n    case 278 /* ExportAssignment */:\n    case 243 /* EmptyStatement */:\n    case 260 /* DebuggerStatement */:\n    case 283 /* MissingDeclaration */:\n      return true;\n  }\n  return false;\n}\nfunction evaluatorResult(value, isSyntacticallyString = false, resolvedOtherFiles = false, hasExternalReferences = false) {\n  return { value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences };\n}\nfunction createEvaluator({ evaluateElementAccessExpression, evaluateEntityNameExpression }) {\n  function evaluate(expr, location) {\n    let isSyntacticallyString = false;\n    let resolvedOtherFiles = false;\n    let hasExternalReferences = false;\n    expr = skipParentheses(expr);\n    switch (expr.kind) {\n      case 225 /* PrefixUnaryExpression */:\n        const result = evaluate(expr.operand, location);\n        resolvedOtherFiles = result.resolvedOtherFiles;\n        hasExternalReferences = result.hasExternalReferences;\n        if (typeof result.value === \"number\") {\n          switch (expr.operator) {\n            case 40 /* PlusToken */:\n              return evaluatorResult(result.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);\n            case 41 /* MinusToken */:\n              return evaluatorResult(-result.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);\n            case 55 /* TildeToken */:\n              return evaluatorResult(~result.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);\n          }\n        }\n        break;\n      case 227 /* BinaryExpression */: {\n        const left = evaluate(expr.left, location);\n        const right = evaluate(expr.right, location);\n        isSyntacticallyString = (left.isSyntacticallyString || right.isSyntacticallyString) && expr.operatorToken.kind === 40 /* PlusToken */;\n        resolvedOtherFiles = left.resolvedOtherFiles || right.resolvedOtherFiles;\n        hasExternalReferences = left.hasExternalReferences || right.hasExternalReferences;\n        if (typeof left.value === \"number\" && typeof right.value === \"number\") {\n          switch (expr.operatorToken.kind) {\n            case 52 /* BarToken */:\n              return evaluatorResult(left.value | right.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);\n            case 51 /* AmpersandToken */:\n              return evaluatorResult(left.value & right.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);\n            case 49 /* GreaterThanGreaterThanToken */:\n              return evaluatorResult(left.value >> right.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);\n            case 50 /* GreaterThanGreaterThanGreaterThanToken */:\n              return evaluatorResult(left.value >>> right.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);\n            case 48 /* LessThanLessThanToken */:\n              return evaluatorResult(left.value << right.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);\n            case 53 /* CaretToken */:\n              return evaluatorResult(left.value ^ right.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);\n            case 42 /* AsteriskToken */:\n              return evaluatorResult(left.value * right.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);\n            case 44 /* SlashToken */:\n              return evaluatorResult(left.value / right.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);\n            case 40 /* PlusToken */:\n              return evaluatorResult(left.value + right.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);\n            case 41 /* MinusToken */:\n              return evaluatorResult(left.value - right.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);\n            case 45 /* PercentToken */:\n              return evaluatorResult(left.value % right.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);\n            case 43 /* AsteriskAsteriskToken */:\n              return evaluatorResult(left.value ** right.value, isSyntacticallyString, resolvedOtherFiles, hasExternalReferences);\n          }\n        } else if ((typeof left.value === \"string\" || typeof left.value === \"number\") && (typeof right.value === \"string\" || typeof right.value === \"number\") && expr.operatorToken.kind === 40 /* PlusToken */) {\n          return evaluatorResult(\n            \"\" + left.value + right.value,\n            isSyntacticallyString,\n            resolvedOtherFiles,\n            hasExternalReferences\n          );\n        }\n        break;\n      }\n      case 11 /* StringLiteral */:\n      case 15 /* NoSubstitutionTemplateLiteral */:\n        return evaluatorResult(\n          expr.text,\n          /*isSyntacticallyString*/\n          true\n        );\n      case 229 /* TemplateExpression */:\n        return evaluateTemplateExpression(expr, location);\n      case 9 /* NumericLiteral */:\n        return evaluatorResult(+expr.text);\n      case 80 /* Identifier */:\n        return evaluateEntityNameExpression(expr, location);\n      case 212 /* PropertyAccessExpression */:\n        if (isEntityNameExpression(expr)) {\n          return evaluateEntityNameExpression(expr, location);\n        }\n        break;\n      case 213 /* ElementAccessExpression */:\n        return evaluateElementAccessExpression(expr, location);\n    }\n    return evaluatorResult(\n      /*value*/\n      void 0,\n      isSyntacticallyString,\n      resolvedOtherFiles,\n      hasExternalReferences\n    );\n  }\n  function evaluateTemplateExpression(expr, location) {\n    let result = expr.head.text;\n    let resolvedOtherFiles = false;\n    let hasExternalReferences = false;\n    for (const span of expr.templateSpans) {\n      const spanResult = evaluate(span.expression, location);\n      if (spanResult.value === void 0) {\n        return evaluatorResult(\n          /*value*/\n          void 0,\n          /*isSyntacticallyString*/\n          true\n        );\n      }\n      result += spanResult.value;\n      result += span.literal.text;\n      resolvedOtherFiles || (resolvedOtherFiles = spanResult.resolvedOtherFiles);\n      hasExternalReferences || (hasExternalReferences = spanResult.hasExternalReferences);\n    }\n    return evaluatorResult(\n      result,\n      /*isSyntacticallyString*/\n      true,\n      resolvedOtherFiles,\n      hasExternalReferences\n    );\n  }\n  return evaluate;\n}\nfunction isConstAssertion(location) {\n  return isAssertionExpression(location) && isConstTypeReference(location.type) || isJSDocTypeTag(location) && isConstTypeReference(location.typeExpression);\n}\nfunction findConstructorDeclaration(node) {\n  const members = node.members;\n  for (const member of members) {\n    if (member.kind === 177 /* Constructor */ && nodeIsPresent(member.body)) {\n      return member;\n    }\n  }\n}\nfunction createNameResolver({\n  compilerOptions,\n  requireSymbol,\n  argumentsSymbol,\n  error: error2,\n  getSymbolOfDeclaration,\n  globals,\n  lookup,\n  setRequiresScopeChangeCache = returnUndefined,\n  getRequiresScopeChangeCache = returnUndefined,\n  onPropertyWithInvalidInitializer = returnFalse,\n  onFailedToResolveSymbol = returnUndefined,\n  onSuccessfullyResolvedSymbol = returnUndefined\n}) {\n  var isolatedModulesLikeFlagName = compilerOptions.verbatimModuleSyntax ? \"verbatimModuleSyntax\" : \"isolatedModules\";\n  var emitStandardClassFields = getEmitStandardClassFields(compilerOptions);\n  var emptySymbols = createSymbolTable();\n  return resolveNameHelper;\n  function resolveNameHelper(location, nameArg, meaning, nameNotFoundMessage, isUse, excludeGlobals) {\n    var _a, _b, _c;\n    const originalLocation = location;\n    let result;\n    let lastLocation;\n    let lastSelfReferenceLocation;\n    let propertyWithInvalidInitializer;\n    let associatedDeclarationForContainingInitializerOrBindingName;\n    let withinDeferredContext = false;\n    let grandparent;\n    const name = isString(nameArg) ? nameArg : nameArg.escapedText;\n    loop:\n      while (location) {\n        if (name === \"const\" && isConstAssertion(location)) {\n          return void 0;\n        }\n        if (isModuleOrEnumDeclaration(location) && lastLocation && location.name === lastLocation) {\n          lastLocation = location;\n          location = location.parent;\n        }\n        if (canHaveLocals(location) && location.locals && !isGlobalSourceFile(location)) {\n          if (result = lookup(location.locals, name, meaning)) {\n            let useResult = true;\n            if (isFunctionLike(location) && lastLocation && lastLocation !== location.body) {\n              if (meaning & result.flags & 788968 /* Type */ && lastLocation.kind !== 321 /* JSDoc */) {\n                useResult = result.flags & 262144 /* TypeParameter */ ? !!(lastLocation.flags & 16 /* Synthesized */) || // Synthetic fake scopes are added for signatures so type parameters are accessible from them\n                lastLocation === location.type || lastLocation.kind === 170 /* Parameter */ || lastLocation.kind === 342 /* JSDocParameterTag */ || lastLocation.kind === 343 /* JSDocReturnTag */ || lastLocation.kind === 169 /* TypeParameter */ : false;\n              }\n              if (meaning & result.flags & 3 /* Variable */) {\n                if (useOuterVariableScopeInParameter(result, location, lastLocation)) {\n                  useResult = false;\n                } else if (result.flags & 1 /* FunctionScopedVariable */) {\n                  useResult = lastLocation.kind === 170 /* Parameter */ || !!(lastLocation.flags & 16 /* Synthesized */) || // Synthetic fake scopes are added for signatures so parameters are accessible from them\n                  lastLocation === location.type && !!findAncestor(result.valueDeclaration, isParameter);\n                }\n              }\n            } else if (location.kind === 195 /* ConditionalType */) {\n              useResult = lastLocation === location.trueType;\n            }\n            if (useResult) {\n              break loop;\n            } else {\n              result = void 0;\n            }\n          }\n        }\n        withinDeferredContext = withinDeferredContext || getIsDeferredContext(location, lastLocation);\n        switch (location.kind) {\n          case 308 /* SourceFile */:\n            if (!isExternalOrCommonJsModule(location)) break;\n          // falls through\n          case 268 /* ModuleDeclaration */:\n            const moduleExports = ((_a = getSymbolOfDeclaration(location)) == null ? void 0 : _a.exports) || emptySymbols;\n            if (location.kind === 308 /* SourceFile */ || isModuleDeclaration(location) && location.flags & 33554432 /* Ambient */ && !isGlobalScopeAugmentation(location)) {\n              if (result = moduleExports.get(\"default\" /* Default */)) {\n                const localSymbol = getLocalSymbolForExportDefault(result);\n                if (localSymbol && result.flags & meaning && localSymbol.escapedName === name) {\n                  break loop;\n                }\n                result = void 0;\n              }\n              const moduleExport = moduleExports.get(name);\n              if (moduleExport && moduleExport.flags === 2097152 /* Alias */ && (getDeclarationOfKind(moduleExport, 282 /* ExportSpecifier */) || getDeclarationOfKind(moduleExport, 281 /* NamespaceExport */))) {\n                break;\n              }\n            }\n            if (name !== \"default\" /* Default */ && (result = lookup(moduleExports, name, meaning & 2623475 /* ModuleMember */))) {\n              if (isSourceFile(location) && location.commonJsModuleIndicator && !((_b = result.declarations) == null ? void 0 : _b.some(isJSDocTypeAlias))) {\n                result = void 0;\n              } else {\n                break loop;\n              }\n            }\n            break;\n          case 267 /* EnumDeclaration */:\n            if (result = lookup(((_c = getSymbolOfDeclaration(location)) == null ? void 0 : _c.exports) || emptySymbols, name, meaning & 8 /* EnumMember */)) {\n              if (nameNotFoundMessage && getIsolatedModules(compilerOptions) && !(location.flags & 33554432 /* Ambient */) && getSourceFileOfNode(location) !== getSourceFileOfNode(result.valueDeclaration)) {\n                error2(\n                  originalLocation,\n                  Diagnostics.Cannot_access_0_from_another_file_without_qualification_when_1_is_enabled_Use_2_instead,\n                  unescapeLeadingUnderscores(name),\n                  isolatedModulesLikeFlagName,\n                  `${unescapeLeadingUnderscores(getSymbolOfDeclaration(location).escapedName)}.${unescapeLeadingUnderscores(name)}`\n                );\n              }\n              break loop;\n            }\n            break;\n          case 173 /* PropertyDeclaration */:\n            if (!isStatic(location)) {\n              const ctor = findConstructorDeclaration(location.parent);\n              if (ctor && ctor.locals) {\n                if (lookup(ctor.locals, name, meaning & 111551 /* Value */)) {\n                  Debug.assertNode(location, isPropertyDeclaration);\n                  propertyWithInvalidInitializer = location;\n                }\n              }\n            }\n            break;\n          case 264 /* ClassDeclaration */:\n          case 232 /* ClassExpression */:\n          case 265 /* InterfaceDeclaration */:\n            if (result = lookup(getSymbolOfDeclaration(location).members || emptySymbols, name, meaning & 788968 /* Type */)) {\n              if (!isTypeParameterSymbolDeclaredInContainer(result, location)) {\n                result = void 0;\n                break;\n              }\n              if (lastLocation && isStatic(lastLocation)) {\n                if (nameNotFoundMessage) {\n                  error2(originalLocation, Diagnostics.Static_members_cannot_reference_class_type_parameters);\n                }\n                return void 0;\n              }\n              break loop;\n            }\n            if (isClassExpression(location) && meaning & 32 /* Class */) {\n              const className = location.name;\n              if (className && name === className.escapedText) {\n                result = location.symbol;\n                break loop;\n              }\n            }\n            break;\n          case 234 /* ExpressionWithTypeArguments */:\n            if (lastLocation === location.expression && location.parent.token === 96 /* ExtendsKeyword */) {\n              const container = location.parent.parent;\n              if (isClassLike(container) && (result = lookup(getSymbolOfDeclaration(container).members, name, meaning & 788968 /* Type */))) {\n                if (nameNotFoundMessage) {\n                  error2(originalLocation, Diagnostics.Base_class_expressions_cannot_reference_class_type_parameters);\n                }\n                return void 0;\n              }\n            }\n            break;\n          // It is not legal to reference a class's own type parameters from a computed property name that\n          // belongs to the class. For example:\n          //\n          //   function foo<T>() { return '' }\n          //   class C<T> { // <-- Class's own type parameter T\n          //       [foo<T>()]() { } // <-- Reference to T from class's own computed property\n          //   }\n          //\n          case 168 /* ComputedPropertyName */:\n            grandparent = location.parent.parent;\n            if (isClassLike(grandparent) || grandparent.kind === 265 /* InterfaceDeclaration */) {\n              if (result = lookup(getSymbolOfDeclaration(grandparent).members, name, meaning & 788968 /* Type */)) {\n                if (nameNotFoundMessage) {\n                  error2(originalLocation, Diagnostics.A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type);\n                }\n                return void 0;\n              }\n            }\n            break;\n          case 220 /* ArrowFunction */:\n            if (getEmitScriptTarget(compilerOptions) >= 2 /* ES2015 */) {\n              break;\n            }\n          // falls through\n          case 175 /* MethodDeclaration */:\n          case 177 /* Constructor */:\n          case 178 /* GetAccessor */:\n          case 179 /* SetAccessor */:\n          case 263 /* FunctionDeclaration */:\n            if (meaning & 3 /* Variable */ && name === \"arguments\") {\n              result = argumentsSymbol;\n              break loop;\n            }\n            break;\n          case 219 /* FunctionExpression */:\n            if (meaning & 3 /* Variable */ && name === \"arguments\") {\n              result = argumentsSymbol;\n              break loop;\n            }\n            if (meaning & 16 /* Function */) {\n              const functionName = location.name;\n              if (functionName && name === functionName.escapedText) {\n                result = location.symbol;\n                break loop;\n              }\n            }\n            break;\n          case 171 /* Decorator */:\n            if (location.parent && location.parent.kind === 170 /* Parameter */) {\n              location = location.parent;\n            }\n            if (location.parent && (isClassElement(location.parent) || location.parent.kind === 264 /* ClassDeclaration */)) {\n              location = location.parent;\n            }\n            break;\n          case 347 /* JSDocTypedefTag */:\n          case 339 /* JSDocCallbackTag */:\n          case 341 /* JSDocEnumTag */:\n          case 352 /* JSDocImportTag */:\n            const root = getJSDocRoot(location);\n            if (root) {\n              location = root.parent;\n            }\n            break;\n          case 170 /* Parameter */:\n            if (lastLocation && (lastLocation === location.initializer || lastLocation === location.name && isBindingPattern(lastLocation))) {\n              if (!associatedDeclarationForContainingInitializerOrBindingName) {\n                associatedDeclarationForContainingInitializerOrBindingName = location;\n              }\n            }\n            break;\n          case 209 /* BindingElement */:\n            if (lastLocation && (lastLocation === location.initializer || lastLocation === location.name && isBindingPattern(lastLocation))) {\n              if (isPartOfParameterDeclaration(location) && !associatedDeclarationForContainingInitializerOrBindingName) {\n                associatedDeclarationForContainingInitializerOrBindingName = location;\n              }\n            }\n            break;\n          case 196 /* InferType */:\n            if (meaning & 262144 /* TypeParameter */) {\n              const parameterName = location.typeParameter.name;\n              if (parameterName && name === parameterName.escapedText) {\n                result = location.typeParameter.symbol;\n                break loop;\n              }\n            }\n            break;\n          case 282 /* ExportSpecifier */:\n            if (lastLocation && lastLocation === location.propertyName && location.parent.parent.moduleSpecifier) {\n              location = location.parent.parent.parent;\n            }\n            break;\n        }\n        if (isSelfReferenceLocation(location, lastLocation)) {\n          lastSelfReferenceLocation = location;\n        }\n        lastLocation = location;\n        location = isJSDocTemplateTag(location) ? getEffectiveContainerForJSDocTemplateTag(location) || location.parent : isJSDocParameterTag(location) || isJSDocReturnTag(location) ? getHostSignatureFromJSDoc(location) || location.parent : location.parent;\n      }\n    if (isUse && result && (!lastSelfReferenceLocation || result !== lastSelfReferenceLocation.symbol)) {\n      result.isReferenced |= meaning;\n    }\n    if (!result) {\n      if (lastLocation) {\n        Debug.assertNode(lastLocation, isSourceFile);\n        if (lastLocation.commonJsModuleIndicator && name === \"exports\" && meaning & lastLocation.symbol.flags) {\n          return lastLocation.symbol;\n        }\n      }\n      if (!excludeGlobals) {\n        result = lookup(globals, name, meaning);\n      }\n    }\n    if (!result) {\n      if (originalLocation && isInJSFile(originalLocation) && originalLocation.parent) {\n        if (isRequireCall(\n          originalLocation.parent,\n          /*requireStringLiteralLikeArgument*/\n          false\n        )) {\n          return requireSymbol;\n        }\n      }\n    }\n    if (nameNotFoundMessage) {\n      if (propertyWithInvalidInitializer && onPropertyWithInvalidInitializer(originalLocation, name, propertyWithInvalidInitializer, result)) {\n        return void 0;\n      }\n      if (!result) {\n        onFailedToResolveSymbol(originalLocation, nameArg, meaning, nameNotFoundMessage);\n      } else {\n        onSuccessfullyResolvedSymbol(originalLocation, result, meaning, lastLocation, associatedDeclarationForContainingInitializerOrBindingName, withinDeferredContext);\n      }\n    }\n    return result;\n  }\n  function useOuterVariableScopeInParameter(result, location, lastLocation) {\n    const target = getEmitScriptTarget(compilerOptions);\n    const functionLocation = location;\n    if (isParameter(lastLocation) && functionLocation.body && result.valueDeclaration && result.valueDeclaration.pos >= functionLocation.body.pos && result.valueDeclaration.end <= functionLocation.body.end) {\n      if (target >= 2 /* ES2015 */) {\n        let declarationRequiresScopeChange = getRequiresScopeChangeCache(functionLocation);\n        if (declarationRequiresScopeChange === void 0) {\n          declarationRequiresScopeChange = forEach(functionLocation.parameters, requiresScopeChange) || false;\n          setRequiresScopeChangeCache(functionLocation, declarationRequiresScopeChange);\n        }\n        return !declarationRequiresScopeChange;\n      }\n    }\n    return false;\n    function requiresScopeChange(node) {\n      return requiresScopeChangeWorker(node.name) || !!node.initializer && requiresScopeChangeWorker(node.initializer);\n    }\n    function requiresScopeChangeWorker(node) {\n      switch (node.kind) {\n        case 220 /* ArrowFunction */:\n        case 219 /* FunctionExpression */:\n        case 263 /* FunctionDeclaration */:\n        case 177 /* Constructor */:\n          return false;\n        case 175 /* MethodDeclaration */:\n        case 178 /* GetAccessor */:\n        case 179 /* SetAccessor */:\n        case 304 /* PropertyAssignment */:\n          return requiresScopeChangeWorker(node.name);\n        case 173 /* PropertyDeclaration */:\n          if (hasStaticModifier(node)) {\n            return !emitStandardClassFields;\n          }\n          return requiresScopeChangeWorker(node.name);\n        default:\n          if (isNullishCoalesce(node) || isOptionalChain(node)) {\n            return target < 7 /* ES2020 */;\n          }\n          if (isBindingElement(node) && node.dotDotDotToken && isObjectBindingPattern(node.parent)) {\n            return target < 4 /* ES2017 */;\n          }\n          if (isTypeNode(node)) return false;\n          return forEachChild(node, requiresScopeChangeWorker) || false;\n      }\n    }\n  }\n  function getIsDeferredContext(location, lastLocation) {\n    if (location.kind !== 220 /* ArrowFunction */ && location.kind !== 219 /* FunctionExpression */) {\n      return isTypeQueryNode(location) || (isFunctionLikeDeclaration(location) || location.kind === 173 /* PropertyDeclaration */ && !isStatic(location)) && (!lastLocation || lastLocation !== location.name);\n    }\n    if (lastLocation && lastLocation === location.name) {\n      return false;\n    }\n    if (location.asteriskToken || hasSyntacticModifier(location, 1024 /* Async */)) {\n      return true;\n    }\n    return !getImmediatelyInvokedFunctionExpression(location);\n  }\n  function isSelfReferenceLocation(node, lastLocation) {\n    switch (node.kind) {\n      case 170 /* Parameter */:\n        return !!lastLocation && lastLocation === node.name;\n      case 263 /* FunctionDeclaration */:\n      case 264 /* ClassDeclaration */:\n      case 265 /* InterfaceDeclaration */:\n      case 267 /* EnumDeclaration */:\n      case 266 /* TypeAliasDeclaration */:\n      case 268 /* ModuleDeclaration */:\n        return true;\n      default:\n        return false;\n    }\n  }\n  function isTypeParameterSymbolDeclaredInContainer(symbol, container) {\n    if (symbol.declarations) {\n      for (const decl of symbol.declarations) {\n        if (decl.kind === 169 /* TypeParameter */) {\n          const parent2 = isJSDocTemplateTag(decl.parent) ? getJSDocHost(decl.parent) : decl.parent;\n          if (parent2 === container) {\n            return !(isJSDocTemplateTag(decl.parent) && find(decl.parent.parent.tags, isJSDocTypeAlias));\n          }\n        }\n      }\n    }\n    return false;\n  }\n}\nfunction isPrimitiveLiteralValue(node, includeBigInt = true) {\n  Debug.type(node);\n  switch (node.kind) {\n    case 112 /* TrueKeyword */:\n    case 97 /* FalseKeyword */:\n    case 9 /* NumericLiteral */:\n    case 11 /* StringLiteral */:\n    case 15 /* NoSubstitutionTemplateLiteral */:\n      return true;\n    case 10 /* BigIntLiteral */:\n      return includeBigInt;\n    case 225 /* PrefixUnaryExpression */:\n      if (node.operator === 41 /* MinusToken */) {\n        return isNumericLiteral(node.operand) || includeBigInt && isBigIntLiteral(node.operand);\n      }\n      if (node.operator === 40 /* PlusToken */) {\n        return isNumericLiteral(node.operand);\n      }\n      return false;\n    default:\n      assertType(node);\n      return false;\n  }\n}\nfunction unwrapParenthesizedExpression(o) {\n  while (o.kind === 218 /* ParenthesizedExpression */) {\n    o = o.expression;\n  }\n  return o;\n}\nfunction hasInferredType(node) {\n  Debug.type(node);\n  switch (node.kind) {\n    case 170 /* Parameter */:\n    case 172 /* PropertySignature */:\n    case 173 /* PropertyDeclaration */:\n    case 209 /* BindingElement */:\n    case 212 /* PropertyAccessExpression */:\n    case 213 /* ElementAccessExpression */:\n    case 227 /* BinaryExpression */:\n    case 261 /* VariableDeclaration */:\n    case 278 /* ExportAssignment */:\n    case 304 /* PropertyAssignment */:\n    case 305 /* ShorthandPropertyAssignment */:\n    case 342 /* JSDocParameterTag */:\n    case 349 /* JSDocPropertyTag */:\n      return true;\n    default:\n      assertType(node);\n      return false;\n  }\n}\nfunction isSideEffectImport(node) {\n  const ancestor = findAncestor(node, isImportDeclaration);\n  return !!ancestor && !ancestor.importClause;\n}\nvar unprefixedNodeCoreModulesList = [\n  \"assert\",\n  \"assert/strict\",\n  \"async_hooks\",\n  \"buffer\",\n  \"child_process\",\n  \"cluster\",\n  \"console\",\n  \"constants\",\n  \"crypto\",\n  \"dgram\",\n  \"diagnostics_channel\",\n  \"dns\",\n  \"dns/promises\",\n  \"domain\",\n  \"events\",\n  \"fs\",\n  \"fs/promises\",\n  \"http\",\n  \"http2\",\n  \"https\",\n  \"inspector\",\n  \"inspector/promises\",\n  \"module\",\n  \"net\",\n  \"os\",\n  \"path\",\n  \"path/posix\",\n  \"path/win32\",\n  \"perf_hooks\",\n  \"process\",\n  \"punycode\",\n  \"querystring\",\n  \"readline\",\n  \"readline/promises\",\n  \"repl\",\n  \"stream\",\n  \"stream/consumers\",\n  \"stream/promises\",\n  \"stream/web\",\n  \"string_decoder\",\n  \"sys\",\n  \"test/mock_loader\",\n  \"timers\",\n  \"timers/promises\",\n  \"tls\",\n  \"trace_events\",\n  \"tty\",\n  \"url\",\n  \"util\",\n  \"util/types\",\n  \"v8\",\n  \"vm\",\n  \"wasi\",\n  \"worker_threads\",\n  \"zlib\"\n];\nvar unprefixedNodeCoreModules = new Set(unprefixedNodeCoreModulesList);\nvar exclusivelyPrefixedNodeCoreModules = /* @__PURE__ */ new Set([\n  \"node:sea\",\n  \"node:sqlite\",\n  \"node:test\",\n  \"node:test/reporters\"\n]);\nvar nodeCoreModules = /* @__PURE__ */ new Set([\n  ...unprefixedNodeCoreModulesList,\n  ...unprefixedNodeCoreModulesList.map((name) => `node:${name}`),\n  ...exclusivelyPrefixedNodeCoreModules\n]);\nfunction forEachDynamicImportOrRequireCall(file, includeTypeSpaceImports, requireStringLiteralLikeArgument, cb) {\n  const isJavaScriptFile = isInJSFile(file);\n  const r = /import|require/g;\n  while (r.exec(file.text) !== null) {\n    const node = getNodeAtPosition(\n      file,\n      r.lastIndex,\n      /*includeJSDoc*/\n      includeTypeSpaceImports\n    );\n    if (isJavaScriptFile && isRequireCall(node, requireStringLiteralLikeArgument)) {\n      cb(node, node.arguments[0]);\n    } else if (isImportCall(node) && node.arguments.length >= 1 && (!requireStringLiteralLikeArgument || isStringLiteralLike(node.arguments[0]))) {\n      cb(node, node.arguments[0]);\n    } else if (includeTypeSpaceImports && isLiteralImportTypeNode(node)) {\n      cb(node, node.argument.literal);\n    } else if (includeTypeSpaceImports && isJSDocImportTag(node)) {\n      const moduleNameExpr = getExternalModuleName(node);\n      if (moduleNameExpr && isStringLiteral(moduleNameExpr) && moduleNameExpr.text) {\n        cb(node, moduleNameExpr);\n      }\n    }\n  }\n}\nfunction getNodeAtPosition(sourceFile, position, includeJSDoc) {\n  const isJavaScriptFile = isInJSFile(sourceFile);\n  let current = sourceFile;\n  const getContainingChild = (child) => {\n    if (child.pos <= position && (position < child.end || position === child.end && child.kind === 1 /* EndOfFileToken */)) {\n      return child;\n    }\n  };\n  while (true) {\n    const child = isJavaScriptFile && includeJSDoc && hasJSDocNodes(current) && forEach(current.jsDoc, getContainingChild) || forEachChild(current, getContainingChild);\n    if (!child || isMetaProperty(child)) {\n      return current;\n    }\n    current = child;\n  }\n}\nfunction isNewScopeNode(node) {\n  return isFunctionLike(node) || isJSDocSignature(node) || isMappedTypeNode(node);\n}\nfunction getLibNameFromLibReference(libReference) {\n  return toFileNameLowerCase(libReference.fileName);\n}\nfunction getLibFileNameFromLibReference(libReference) {\n  const libName = getLibNameFromLibReference(libReference);\n  return libMap.get(libName);\n}\nfunction forEachResolvedProjectReference(resolvedProjectReferences, cb) {\n  return forEachProjectReference(\n    /*projectReferences*/\n    void 0,\n    resolvedProjectReferences,\n    (resolvedRef) => resolvedRef && cb(resolvedRef)\n  );\n}\nfunction forEachProjectReference(projectReferences, resolvedProjectReferences, cbResolvedRef, cbRef) {\n  let seenResolvedRefs;\n  return worker(\n    projectReferences,\n    resolvedProjectReferences,\n    /*parent*/\n    void 0\n  );\n  function worker(projectReferences2, resolvedProjectReferences2, parent2) {\n    if (cbRef) {\n      const result = cbRef(projectReferences2, parent2);\n      if (result) return result;\n    }\n    let skipChildren;\n    return forEach(\n      resolvedProjectReferences2,\n      (resolvedRef, index) => {\n        if (resolvedRef && (seenResolvedRefs == null ? void 0 : seenResolvedRefs.has(resolvedRef.sourceFile.path))) {\n          (skipChildren ?? (skipChildren = /* @__PURE__ */ new Set())).add(resolvedRef);\n          return void 0;\n        }\n        const result = cbResolvedRef(resolvedRef, parent2, index);\n        if (result || !resolvedRef) return result;\n        (seenResolvedRefs || (seenResolvedRefs = /* @__PURE__ */ new Set())).add(resolvedRef.sourceFile.path);\n      }\n    ) || forEach(\n      resolvedProjectReferences2,\n      (resolvedRef) => resolvedRef && !(skipChildren == null ? void 0 : skipChildren.has(resolvedRef)) ? worker(resolvedRef.commandLine.projectReferences, resolvedRef.references, resolvedRef) : void 0\n    );\n  }\n}\nfunction getOptionsSyntaxByArrayElementValue(optionsObject, name, value) {\n  return optionsObject && getPropertyArrayElementValue(optionsObject, name, value);\n}\nfunction getPropertyArrayElementValue(objectLiteral, propKey, elementValue) {\n  return forEachPropertyAssignment(objectLiteral, propKey, (property) => isArrayLiteralExpression(property.initializer) ? find(property.initializer.elements, (element) => isStringLiteral(element) && element.text === elementValue) : void 0);\n}\nfunction getOptionsSyntaxByValue(optionsObject, name, value) {\n  return forEachOptionsSyntaxByName(optionsObject, name, (property) => isStringLiteral(property.initializer) && property.initializer.text === value ? property.initializer : void 0);\n}\nfunction forEachOptionsSyntaxByName(optionsObject, name, callback) {\n  return forEachPropertyAssignment(optionsObject, name, callback);\n}\nfunction getSynthesizedDeepClone(node, includeTrivia = true) {\n  const clone2 = node && getSynthesizedDeepCloneWorker(node);\n  if (clone2 && !includeTrivia) suppressLeadingAndTrailingTrivia(clone2);\n  return setParentRecursive(\n    clone2,\n    /*incremental*/\n    false\n  );\n}\nfunction getSynthesizedDeepCloneWithReplacements(node, includeTrivia, replaceNode) {\n  let clone2 = replaceNode(node);\n  if (clone2) {\n    setOriginalNode(clone2, node);\n  } else {\n    clone2 = getSynthesizedDeepCloneWorker(node, replaceNode);\n  }\n  if (clone2 && !includeTrivia) suppressLeadingAndTrailingTrivia(clone2);\n  return clone2;\n}\nfunction getSynthesizedDeepCloneWorker(node, replaceNode) {\n  const nodeClone = replaceNode ? (n) => getSynthesizedDeepCloneWithReplacements(\n    n,\n    /*includeTrivia*/\n    true,\n    replaceNode\n  ) : getSynthesizedDeepClone;\n  const nodesClone = replaceNode ? (ns) => ns && getSynthesizedDeepClonesWithReplacements(\n    ns,\n    /*includeTrivia*/\n    true,\n    replaceNode\n  ) : (ns) => ns && getSynthesizedDeepClones(ns);\n  const visited = visitEachChild(\n    node,\n    nodeClone,\n    /*context*/\n    void 0,\n    nodesClone,\n    nodeClone\n  );\n  if (visited === node) {\n    const clone2 = isStringLiteral(node) ? setOriginalNode(factory.createStringLiteralFromNode(node), node) : isNumericLiteral(node) ? setOriginalNode(factory.createNumericLiteral(node.text, node.numericLiteralFlags), node) : factory.cloneNode(node);\n    return setTextRange(clone2, node);\n  }\n  visited.parent = void 0;\n  return visited;\n}\nfunction getSynthesizedDeepClones(nodes, includeTrivia = true) {\n  if (nodes) {\n    const cloned = factory.createNodeArray(nodes.map((n) => getSynthesizedDeepClone(n, includeTrivia)), nodes.hasTrailingComma);\n    setTextRange(cloned, nodes);\n    return cloned;\n  }\n  return nodes;\n}\nfunction getSynthesizedDeepClonesWithReplacements(nodes, includeTrivia, replaceNode) {\n  return factory.createNodeArray(nodes.map((n) => getSynthesizedDeepCloneWithReplacements(n, includeTrivia, replaceNode)), nodes.hasTrailingComma);\n}\nfunction suppressLeadingAndTrailingTrivia(node) {\n  suppressLeadingTrivia(node);\n  suppressTrailingTrivia(node);\n}\nfunction suppressLeadingTrivia(node) {\n  addEmitFlagsRecursively(node, 1024 /* NoLeadingComments */, getFirstChild);\n}\nfunction suppressTrailingTrivia(node) {\n  addEmitFlagsRecursively(node, 2048 /* NoTrailingComments */, getLastChild);\n}\nfunction addEmitFlagsRecursively(node, flag, getChild) {\n  addEmitFlags(node, flag);\n  const child = getChild(node);\n  if (child) addEmitFlagsRecursively(child, flag, getChild);\n}\nfunction getFirstChild(node) {\n  return forEachChild(node, (child) => child);\n}\n\n// src/compiler/factory/baseNodeFactory.ts\nfunction createBaseNodeFactory() {\n  let NodeConstructor2;\n  let TokenConstructor2;\n  let IdentifierConstructor2;\n  let PrivateIdentifierConstructor2;\n  let SourceFileConstructor2;\n  return {\n    createBaseSourceFileNode,\n    createBaseIdentifierNode,\n    createBasePrivateIdentifierNode,\n    createBaseTokenNode,\n    createBaseNode\n  };\n  function createBaseSourceFileNode(kind) {\n    return new (SourceFileConstructor2 || (SourceFileConstructor2 = objectAllocator.getSourceFileConstructor()))(\n      kind,\n      /*pos*/\n      -1,\n      /*end*/\n      -1\n    );\n  }\n  function createBaseIdentifierNode(kind) {\n    return new (IdentifierConstructor2 || (IdentifierConstructor2 = objectAllocator.getIdentifierConstructor()))(\n      kind,\n      /*pos*/\n      -1,\n      /*end*/\n      -1\n    );\n  }\n  function createBasePrivateIdentifierNode(kind) {\n    return new (PrivateIdentifierConstructor2 || (PrivateIdentifierConstructor2 = objectAllocator.getPrivateIdentifierConstructor()))(\n      kind,\n      /*pos*/\n      -1,\n      /*end*/\n      -1\n    );\n  }\n  function createBaseTokenNode(kind) {\n    return new (TokenConstructor2 || (TokenConstructor2 = objectAllocator.getTokenConstructor()))(\n      kind,\n      /*pos*/\n      -1,\n      /*end*/\n      -1\n    );\n  }\n  function createBaseNode(kind) {\n    return new (NodeConstructor2 || (NodeConstructor2 = objectAllocator.getNodeConstructor()))(\n      kind,\n      /*pos*/\n      -1,\n      /*end*/\n      -1\n    );\n  }\n}\n\n// src/compiler/factory/parenthesizerRules.ts\nfunction createParenthesizerRules(factory2) {\n  let binaryLeftOperandParenthesizerCache;\n  let binaryRightOperandParenthesizerCache;\n  return {\n    getParenthesizeLeftSideOfBinaryForOperator,\n    getParenthesizeRightSideOfBinaryForOperator,\n    parenthesizeLeftSideOfBinary,\n    parenthesizeRightSideOfBinary,\n    parenthesizeExpressionOfComputedPropertyName,\n    parenthesizeConditionOfConditionalExpression,\n    parenthesizeBranchOfConditionalExpression,\n    parenthesizeExpressionOfExportDefault,\n    parenthesizeExpressionOfNew,\n    parenthesizeLeftSideOfAccess,\n    parenthesizeOperandOfPostfixUnary,\n    parenthesizeOperandOfPrefixUnary,\n    parenthesizeExpressionsOfCommaDelimitedList,\n    parenthesizeExpressionForDisallowedComma,\n    parenthesizeExpressionOfExpressionStatement,\n    parenthesizeConciseBodyOfArrowFunction,\n    parenthesizeCheckTypeOfConditionalType,\n    parenthesizeExtendsTypeOfConditionalType,\n    parenthesizeConstituentTypesOfUnionType,\n    parenthesizeConstituentTypeOfUnionType,\n    parenthesizeConstituentTypesOfIntersectionType,\n    parenthesizeConstituentTypeOfIntersectionType,\n    parenthesizeOperandOfTypeOperator,\n    parenthesizeOperandOfReadonlyTypeOperator,\n    parenthesizeNonArrayTypeOfPostfixType,\n    parenthesizeElementTypesOfTupleType,\n    parenthesizeElementTypeOfTupleType,\n    parenthesizeTypeOfOptionalType,\n    parenthesizeTypeArguments,\n    parenthesizeLeadingTypeArgument\n  };\n  function getParenthesizeLeftSideOfBinaryForOperator(operatorKind) {\n    binaryLeftOperandParenthesizerCache || (binaryLeftOperandParenthesizerCache = /* @__PURE__ */ new Map());\n    let parenthesizerRule = binaryLeftOperandParenthesizerCache.get(operatorKind);\n    if (!parenthesizerRule) {\n      parenthesizerRule = (node) => parenthesizeLeftSideOfBinary(operatorKind, node);\n      binaryLeftOperandParenthesizerCache.set(operatorKind, parenthesizerRule);\n    }\n    return parenthesizerRule;\n  }\n  function getParenthesizeRightSideOfBinaryForOperator(operatorKind) {\n    binaryRightOperandParenthesizerCache || (binaryRightOperandParenthesizerCache = /* @__PURE__ */ new Map());\n    let parenthesizerRule = binaryRightOperandParenthesizerCache.get(operatorKind);\n    if (!parenthesizerRule) {\n      parenthesizerRule = (node) => parenthesizeRightSideOfBinary(\n        operatorKind,\n        /*leftSide*/\n        void 0,\n        node\n      );\n      binaryRightOperandParenthesizerCache.set(operatorKind, parenthesizerRule);\n    }\n    return parenthesizerRule;\n  }\n  function mixingBinaryOperatorsRequiresParentheses(a, b) {\n    if (a === 61 /* QuestionQuestionToken */) {\n      return b === 56 /* AmpersandAmpersandToken */ || b === 57 /* BarBarToken */;\n    }\n    if (b === 61 /* QuestionQuestionToken */) {\n      return a === 56 /* AmpersandAmpersandToken */ || a === 57 /* BarBarToken */;\n    }\n    return false;\n  }\n  function binaryOperandNeedsParentheses(binaryOperator, operand, isLeftSideOfBinary, leftOperand) {\n    const emittedOperand = skipPartiallyEmittedExpressions(operand);\n    if (isBinaryExpression(emittedOperand) && mixingBinaryOperatorsRequiresParentheses(binaryOperator, emittedOperand.operatorToken.kind)) {\n      return true;\n    }\n    const binaryOperatorPrecedence = getOperatorPrecedence(227 /* BinaryExpression */, binaryOperator);\n    const binaryOperatorAssociativity = getOperatorAssociativity(227 /* BinaryExpression */, binaryOperator);\n    if (!isLeftSideOfBinary && operand.kind === 220 /* ArrowFunction */ && binaryOperatorPrecedence > 3 /* Assignment */) {\n      return true;\n    }\n    const operandPrecedence = getExpressionPrecedence(emittedOperand);\n    switch (compareValues(operandPrecedence, binaryOperatorPrecedence)) {\n      case -1 /* LessThan */:\n        if (!isLeftSideOfBinary && binaryOperatorAssociativity === 1 /* Right */ && operand.kind === 230 /* YieldExpression */) {\n          return false;\n        }\n        return true;\n      case 1 /* GreaterThan */:\n        return false;\n      case 0 /* EqualTo */:\n        if (isLeftSideOfBinary) {\n          return binaryOperatorAssociativity === 1 /* Right */;\n        } else {\n          if (isBinaryExpression(emittedOperand) && emittedOperand.operatorToken.kind === binaryOperator) {\n            if (operatorHasAssociativeProperty(binaryOperator)) {\n              return false;\n            }\n            if (binaryOperator === 40 /* PlusToken */) {\n              const leftKind = leftOperand ? getLiteralKindOfBinaryPlusOperand(leftOperand) : 0 /* Unknown */;\n              if (isLiteralKind(leftKind) && leftKind === getLiteralKindOfBinaryPlusOperand(emittedOperand)) {\n                return false;\n              }\n            }\n          }\n          const operandAssociativity = getExpressionAssociativity(emittedOperand);\n          return operandAssociativity === 0 /* Left */;\n        }\n    }\n  }\n  function operatorHasAssociativeProperty(binaryOperator) {\n    return binaryOperator === 42 /* AsteriskToken */ || binaryOperator === 52 /* BarToken */ || binaryOperator === 51 /* AmpersandToken */ || binaryOperator === 53 /* CaretToken */ || binaryOperator === 28 /* CommaToken */;\n  }\n  function getLiteralKindOfBinaryPlusOperand(node) {\n    node = skipPartiallyEmittedExpressions(node);\n    if (isLiteralKind(node.kind)) {\n      return node.kind;\n    }\n    if (node.kind === 227 /* BinaryExpression */ && node.operatorToken.kind === 40 /* PlusToken */) {\n      if (node.cachedLiteralKind !== void 0) {\n        return node.cachedLiteralKind;\n      }\n      const leftKind = getLiteralKindOfBinaryPlusOperand(node.left);\n      const literalKind = isLiteralKind(leftKind) && leftKind === getLiteralKindOfBinaryPlusOperand(node.right) ? leftKind : 0 /* Unknown */;\n      node.cachedLiteralKind = literalKind;\n      return literalKind;\n    }\n    return 0 /* Unknown */;\n  }\n  function parenthesizeBinaryOperand(binaryOperator, operand, isLeftSideOfBinary, leftOperand) {\n    const skipped = skipPartiallyEmittedExpressions(operand);\n    if (skipped.kind === 218 /* ParenthesizedExpression */) {\n      return operand;\n    }\n    return binaryOperandNeedsParentheses(binaryOperator, operand, isLeftSideOfBinary, leftOperand) ? factory2.createParenthesizedExpression(operand) : operand;\n  }\n  function parenthesizeLeftSideOfBinary(binaryOperator, leftSide) {\n    return parenthesizeBinaryOperand(\n      binaryOperator,\n      leftSide,\n      /*isLeftSideOfBinary*/\n      true\n    );\n  }\n  function parenthesizeRightSideOfBinary(binaryOperator, leftSide, rightSide) {\n    return parenthesizeBinaryOperand(\n      binaryOperator,\n      rightSide,\n      /*isLeftSideOfBinary*/\n      false,\n      leftSide\n    );\n  }\n  function parenthesizeExpressionOfComputedPropertyName(expression) {\n    return isCommaSequence(expression) ? factory2.createParenthesizedExpression(expression) : expression;\n  }\n  function parenthesizeConditionOfConditionalExpression(condition) {\n    const conditionalPrecedence = getOperatorPrecedence(228 /* ConditionalExpression */, 58 /* QuestionToken */);\n    const emittedCondition = skipPartiallyEmittedExpressions(condition);\n    const conditionPrecedence = getExpressionPrecedence(emittedCondition);\n    if (compareValues(conditionPrecedence, conditionalPrecedence) !== 1 /* GreaterThan */) {\n      return factory2.createParenthesizedExpression(condition);\n    }\n    return condition;\n  }\n  function parenthesizeBranchOfConditionalExpression(branch) {\n    const emittedExpression = skipPartiallyEmittedExpressions(branch);\n    return isCommaSequence(emittedExpression) ? factory2.createParenthesizedExpression(branch) : branch;\n  }\n  function parenthesizeExpressionOfExportDefault(expression) {\n    const check = skipPartiallyEmittedExpressions(expression);\n    let needsParens = isCommaSequence(check);\n    if (!needsParens) {\n      switch (getLeftmostExpression(\n        check,\n        /*stopAtCallExpressions*/\n        false\n      ).kind) {\n        case 232 /* ClassExpression */:\n        case 219 /* FunctionExpression */:\n          needsParens = true;\n      }\n    }\n    return needsParens ? factory2.createParenthesizedExpression(expression) : expression;\n  }\n  function parenthesizeExpressionOfNew(expression) {\n    const leftmostExpr = getLeftmostExpression(\n      expression,\n      /*stopAtCallExpressions*/\n      true\n    );\n    switch (leftmostExpr.kind) {\n      case 214 /* CallExpression */:\n        return factory2.createParenthesizedExpression(expression);\n      case 215 /* NewExpression */:\n        return !leftmostExpr.arguments ? factory2.createParenthesizedExpression(expression) : expression;\n    }\n    return parenthesizeLeftSideOfAccess(expression);\n  }\n  function parenthesizeLeftSideOfAccess(expression, optionalChain) {\n    const emittedExpression = skipPartiallyEmittedExpressions(expression);\n    if (isLeftHandSideExpression(emittedExpression) && (emittedExpression.kind !== 215 /* NewExpression */ || emittedExpression.arguments) && (optionalChain || !isOptionalChain(emittedExpression))) {\n      return expression;\n    }\n    return setTextRange(factory2.createParenthesizedExpression(expression), expression);\n  }\n  function parenthesizeOperandOfPostfixUnary(operand) {\n    return isLeftHandSideExpression(operand) ? operand : setTextRange(factory2.createParenthesizedExpression(operand), operand);\n  }\n  function parenthesizeOperandOfPrefixUnary(operand) {\n    return isUnaryExpression(operand) ? operand : setTextRange(factory2.createParenthesizedExpression(operand), operand);\n  }\n  function parenthesizeExpressionsOfCommaDelimitedList(elements) {\n    const result = sameMap(elements, parenthesizeExpressionForDisallowedComma);\n    return setTextRange(factory2.createNodeArray(result, elements.hasTrailingComma), elements);\n  }\n  function parenthesizeExpressionForDisallowedComma(expression) {\n    const emittedExpression = skipPartiallyEmittedExpressions(expression);\n    const expressionPrecedence = getExpressionPrecedence(emittedExpression);\n    const commaPrecedence = getOperatorPrecedence(227 /* BinaryExpression */, 28 /* CommaToken */);\n    return expressionPrecedence > commaPrecedence ? expression : setTextRange(factory2.createParenthesizedExpression(expression), expression);\n  }\n  function parenthesizeExpressionOfExpressionStatement(expression) {\n    const emittedExpression = skipPartiallyEmittedExpressions(expression);\n    if (isCallExpression(emittedExpression)) {\n      const callee = emittedExpression.expression;\n      const kind = skipPartiallyEmittedExpressions(callee).kind;\n      if (kind === 219 /* FunctionExpression */ || kind === 220 /* ArrowFunction */) {\n        const updated = factory2.updateCallExpression(\n          emittedExpression,\n          setTextRange(factory2.createParenthesizedExpression(callee), callee),\n          emittedExpression.typeArguments,\n          emittedExpression.arguments\n        );\n        return factory2.restoreOuterExpressions(expression, updated, 8 /* PartiallyEmittedExpressions */);\n      }\n    }\n    const leftmostExpressionKind = getLeftmostExpression(\n      emittedExpression,\n      /*stopAtCallExpressions*/\n      false\n    ).kind;\n    if (leftmostExpressionKind === 211 /* ObjectLiteralExpression */ || leftmostExpressionKind === 219 /* FunctionExpression */) {\n      return setTextRange(factory2.createParenthesizedExpression(expression), expression);\n    }\n    return expression;\n  }\n  function parenthesizeConciseBodyOfArrowFunction(body) {\n    if (!isBlock(body) && (isCommaSequence(body) || getLeftmostExpression(\n      body,\n      /*stopAtCallExpressions*/\n      false\n    ).kind === 211 /* ObjectLiteralExpression */)) {\n      return setTextRange(factory2.createParenthesizedExpression(body), body);\n    }\n    return body;\n  }\n  function parenthesizeCheckTypeOfConditionalType(checkType) {\n    switch (checkType.kind) {\n      case 185 /* FunctionType */:\n      case 186 /* ConstructorType */:\n      case 195 /* ConditionalType */:\n        return factory2.createParenthesizedType(checkType);\n    }\n    return checkType;\n  }\n  function parenthesizeExtendsTypeOfConditionalType(extendsType) {\n    switch (extendsType.kind) {\n      case 195 /* ConditionalType */:\n        return factory2.createParenthesizedType(extendsType);\n    }\n    return extendsType;\n  }\n  function parenthesizeConstituentTypeOfUnionType(type) {\n    switch (type.kind) {\n      case 193 /* UnionType */:\n      // Not strictly necessary, but a union containing a union should have been flattened\n      case 194 /* IntersectionType */:\n        return factory2.createParenthesizedType(type);\n    }\n    return parenthesizeCheckTypeOfConditionalType(type);\n  }\n  function parenthesizeConstituentTypesOfUnionType(members) {\n    return factory2.createNodeArray(sameMap(members, parenthesizeConstituentTypeOfUnionType));\n  }\n  function parenthesizeConstituentTypeOfIntersectionType(type) {\n    switch (type.kind) {\n      case 193 /* UnionType */:\n      case 194 /* IntersectionType */:\n        return factory2.createParenthesizedType(type);\n    }\n    return parenthesizeConstituentTypeOfUnionType(type);\n  }\n  function parenthesizeConstituentTypesOfIntersectionType(members) {\n    return factory2.createNodeArray(sameMap(members, parenthesizeConstituentTypeOfIntersectionType));\n  }\n  function parenthesizeOperandOfTypeOperator(type) {\n    switch (type.kind) {\n      case 194 /* IntersectionType */:\n        return factory2.createParenthesizedType(type);\n    }\n    return parenthesizeConstituentTypeOfIntersectionType(type);\n  }\n  function parenthesizeOperandOfReadonlyTypeOperator(type) {\n    switch (type.kind) {\n      case 199 /* TypeOperator */:\n        return factory2.createParenthesizedType(type);\n    }\n    return parenthesizeOperandOfTypeOperator(type);\n  }\n  function parenthesizeNonArrayTypeOfPostfixType(type) {\n    switch (type.kind) {\n      case 196 /* InferType */:\n      case 199 /* TypeOperator */:\n      case 187 /* TypeQuery */:\n        return factory2.createParenthesizedType(type);\n    }\n    return parenthesizeOperandOfTypeOperator(type);\n  }\n  function parenthesizeElementTypesOfTupleType(types) {\n    return factory2.createNodeArray(sameMap(types, parenthesizeElementTypeOfTupleType));\n  }\n  function parenthesizeElementTypeOfTupleType(type) {\n    if (hasJSDocPostfixQuestion(type)) return factory2.createParenthesizedType(type);\n    return type;\n  }\n  function hasJSDocPostfixQuestion(type) {\n    if (isJSDocNullableType(type)) return type.postfix;\n    if (isNamedTupleMember(type)) return hasJSDocPostfixQuestion(type.type);\n    if (isFunctionTypeNode(type) || isConstructorTypeNode(type) || isTypeOperatorNode(type)) return hasJSDocPostfixQuestion(type.type);\n    if (isConditionalTypeNode(type)) return hasJSDocPostfixQuestion(type.falseType);\n    if (isUnionTypeNode(type)) return hasJSDocPostfixQuestion(last(type.types));\n    if (isIntersectionTypeNode(type)) return hasJSDocPostfixQuestion(last(type.types));\n    if (isInferTypeNode(type)) return !!type.typeParameter.constraint && hasJSDocPostfixQuestion(type.typeParameter.constraint);\n    return false;\n  }\n  function parenthesizeTypeOfOptionalType(type) {\n    if (hasJSDocPostfixQuestion(type)) return factory2.createParenthesizedType(type);\n    return parenthesizeNonArrayTypeOfPostfixType(type);\n  }\n  function parenthesizeLeadingTypeArgument(node) {\n    return isFunctionOrConstructorTypeNode(node) && node.typeParameters ? factory2.createParenthesizedType(node) : node;\n  }\n  function parenthesizeOrdinalTypeArgument(node, i) {\n    return i === 0 ? parenthesizeLeadingTypeArgument(node) : node;\n  }\n  function parenthesizeTypeArguments(typeArguments) {\n    if (some(typeArguments)) {\n      return factory2.createNodeArray(sameMap(typeArguments, parenthesizeOrdinalTypeArgument));\n    }\n  }\n}\nvar nullParenthesizerRules = {\n  getParenthesizeLeftSideOfBinaryForOperator: (_) => identity,\n  getParenthesizeRightSideOfBinaryForOperator: (_) => identity,\n  parenthesizeLeftSideOfBinary: (_binaryOperator, leftSide) => leftSide,\n  parenthesizeRightSideOfBinary: (_binaryOperator, _leftSide, rightSide) => rightSide,\n  parenthesizeExpressionOfComputedPropertyName: identity,\n  parenthesizeConditionOfConditionalExpression: identity,\n  parenthesizeBranchOfConditionalExpression: identity,\n  parenthesizeExpressionOfExportDefault: identity,\n  parenthesizeExpressionOfNew: (expression) => cast(expression, isLeftHandSideExpression),\n  parenthesizeLeftSideOfAccess: (expression) => cast(expression, isLeftHandSideExpression),\n  parenthesizeOperandOfPostfixUnary: (operand) => cast(operand, isLeftHandSideExpression),\n  parenthesizeOperandOfPrefixUnary: (operand) => cast(operand, isUnaryExpression),\n  parenthesizeExpressionsOfCommaDelimitedList: (nodes) => cast(nodes, isNodeArray),\n  parenthesizeExpressionForDisallowedComma: identity,\n  parenthesizeExpressionOfExpressionStatement: identity,\n  parenthesizeConciseBodyOfArrowFunction: identity,\n  parenthesizeCheckTypeOfConditionalType: identity,\n  parenthesizeExtendsTypeOfConditionalType: identity,\n  parenthesizeConstituentTypesOfUnionType: (nodes) => cast(nodes, isNodeArray),\n  parenthesizeConstituentTypeOfUnionType: identity,\n  parenthesizeConstituentTypesOfIntersectionType: (nodes) => cast(nodes, isNodeArray),\n  parenthesizeConstituentTypeOfIntersectionType: identity,\n  parenthesizeOperandOfTypeOperator: identity,\n  parenthesizeOperandOfReadonlyTypeOperator: identity,\n  parenthesizeNonArrayTypeOfPostfixType: identity,\n  parenthesizeElementTypesOfTupleType: (nodes) => cast(nodes, isNodeArray),\n  parenthesizeElementTypeOfTupleType: identity,\n  parenthesizeTypeOfOptionalType: identity,\n  parenthesizeTypeArguments: (nodes) => nodes && cast(nodes, isNodeArray),\n  parenthesizeLeadingTypeArgument: identity\n};\n\n// src/compiler/factory/nodeConverters.ts\nfunction createNodeConverters(factory2) {\n  return {\n    convertToFunctionBlock,\n    convertToFunctionExpression,\n    convertToClassExpression,\n    convertToArrayAssignmentElement,\n    convertToObjectAssignmentElement,\n    convertToAssignmentPattern,\n    convertToObjectAssignmentPattern,\n    convertToArrayAssignmentPattern,\n    convertToAssignmentElementTarget\n  };\n  function convertToFunctionBlock(node, multiLine) {\n    if (isBlock(node)) return node;\n    const returnStatement = factory2.createReturnStatement(node);\n    setTextRange(returnStatement, node);\n    const body = factory2.createBlock([returnStatement], multiLine);\n    setTextRange(body, node);\n    return body;\n  }\n  function convertToFunctionExpression(node) {\n    var _a;\n    if (!node.body) return Debug.fail(`Cannot convert a FunctionDeclaration without a body`);\n    const updated = factory2.createFunctionExpression(\n      (_a = getModifiers(node)) == null ? void 0 : _a.filter((modifier) => !isExportModifier(modifier) && !isDefaultModifier(modifier)),\n      node.asteriskToken,\n      node.name,\n      node.typeParameters,\n      node.parameters,\n      node.type,\n      node.body\n    );\n    setOriginalNode(updated, node);\n    setTextRange(updated, node);\n    if (getStartsOnNewLine(node)) {\n      setStartsOnNewLine(\n        updated,\n        /*newLine*/\n        true\n      );\n    }\n    return updated;\n  }\n  function convertToClassExpression(node) {\n    var _a;\n    const updated = factory2.createClassExpression(\n      (_a = node.modifiers) == null ? void 0 : _a.filter((modifier) => !isExportModifier(modifier) && !isDefaultModifier(modifier)),\n      node.name,\n      node.typeParameters,\n      node.heritageClauses,\n      node.members\n    );\n    setOriginalNode(updated, node);\n    setTextRange(updated, node);\n    if (getStartsOnNewLine(node)) {\n      setStartsOnNewLine(\n        updated,\n        /*newLine*/\n        true\n      );\n    }\n    return updated;\n  }\n  function convertToArrayAssignmentElement(element) {\n    if (isBindingElement(element)) {\n      if (element.dotDotDotToken) {\n        Debug.assertNode(element.name, isIdentifier);\n        return setOriginalNode(setTextRange(factory2.createSpreadElement(element.name), element), element);\n      }\n      const expression = convertToAssignmentElementTarget(element.name);\n      return element.initializer ? setOriginalNode(\n        setTextRange(\n          factory2.createAssignment(expression, element.initializer),\n          element\n        ),\n        element\n      ) : expression;\n    }\n    return cast(element, isExpression);\n  }\n  function convertToObjectAssignmentElement(element) {\n    if (isBindingElement(element)) {\n      if (element.dotDotDotToken) {\n        Debug.assertNode(element.name, isIdentifier);\n        return setOriginalNode(setTextRange(factory2.createSpreadAssignment(element.name), element), element);\n      }\n      if (element.propertyName) {\n        const expression = convertToAssignmentElementTarget(element.name);\n        return setOriginalNode(setTextRange(factory2.createPropertyAssignment(element.propertyName, element.initializer ? factory2.createAssignment(expression, element.initializer) : expression), element), element);\n      }\n      Debug.assertNode(element.name, isIdentifier);\n      return setOriginalNode(setTextRange(factory2.createShorthandPropertyAssignment(element.name, element.initializer), element), element);\n    }\n    return cast(element, isObjectLiteralElementLike);\n  }\n  function convertToAssignmentPattern(node) {\n    switch (node.kind) {\n      case 208 /* ArrayBindingPattern */:\n      case 210 /* ArrayLiteralExpression */:\n        return convertToArrayAssignmentPattern(node);\n      case 207 /* ObjectBindingPattern */:\n      case 211 /* ObjectLiteralExpression */:\n        return convertToObjectAssignmentPattern(node);\n    }\n  }\n  function convertToObjectAssignmentPattern(node) {\n    if (isObjectBindingPattern(node)) {\n      return setOriginalNode(\n        setTextRange(\n          factory2.createObjectLiteralExpression(map(node.elements, convertToObjectAssignmentElement)),\n          node\n        ),\n        node\n      );\n    }\n    return cast(node, isObjectLiteralExpression);\n  }\n  function convertToArrayAssignmentPattern(node) {\n    if (isArrayBindingPattern(node)) {\n      return setOriginalNode(\n        setTextRange(\n          factory2.createArrayLiteralExpression(map(node.elements, convertToArrayAssignmentElement)),\n          node\n        ),\n        node\n      );\n    }\n    return cast(node, isArrayLiteralExpression);\n  }\n  function convertToAssignmentElementTarget(node) {\n    if (isBindingPattern(node)) {\n      return convertToAssignmentPattern(node);\n    }\n    return cast(node, isExpression);\n  }\n}\nvar nullNodeConverters = {\n  convertToFunctionBlock: notImplemented,\n  convertToFunctionExpression: notImplemented,\n  convertToClassExpression: notImplemented,\n  convertToArrayAssignmentElement: notImplemented,\n  convertToObjectAssignmentElement: notImplemented,\n  convertToAssignmentPattern: notImplemented,\n  convertToObjectAssignmentPattern: notImplemented,\n  convertToArrayAssignmentPattern: notImplemented,\n  convertToAssignmentElementTarget: notImplemented\n};\n\n// src/compiler/factory/nodeFactory.ts\nvar nextAutoGenerateId = 0;\nvar NodeFactoryFlags = /* @__PURE__ */ ((NodeFactoryFlags2) => {\n  NodeFactoryFlags2[NodeFactoryFlags2[\"None\"] = 0] = \"None\";\n  NodeFactoryFlags2[NodeFactoryFlags2[\"NoParenthesizerRules\"] = 1] = \"NoParenthesizerRules\";\n  NodeFactoryFlags2[NodeFactoryFlags2[\"NoNodeConverters\"] = 2] = \"NoNodeConverters\";\n  NodeFactoryFlags2[NodeFactoryFlags2[\"NoIndentationOnFreshPropertyAccess\"] = 4] = \"NoIndentationOnFreshPropertyAccess\";\n  NodeFactoryFlags2[NodeFactoryFlags2[\"NoOriginalNode\"] = 8] = \"NoOriginalNode\";\n  return NodeFactoryFlags2;\n})(NodeFactoryFlags || {});\nvar nodeFactoryPatchers = [];\nfunction addNodeFactoryPatcher(fn) {\n  nodeFactoryPatchers.push(fn);\n}\nfunction createNodeFactory(flags, baseFactory2) {\n  const setOriginal = flags & 8 /* NoOriginalNode */ ? identity : setOriginalNode;\n  const parenthesizerRules = memoize(() => flags & 1 /* NoParenthesizerRules */ ? nullParenthesizerRules : createParenthesizerRules(factory2));\n  const converters = memoize(() => flags & 2 /* NoNodeConverters */ ? nullNodeConverters : createNodeConverters(factory2));\n  const getBinaryCreateFunction = memoizeOne((operator) => (left, right) => createBinaryExpression(left, operator, right));\n  const getPrefixUnaryCreateFunction = memoizeOne((operator) => (operand) => createPrefixUnaryExpression(operator, operand));\n  const getPostfixUnaryCreateFunction = memoizeOne((operator) => (operand) => createPostfixUnaryExpression(operand, operator));\n  const getJSDocPrimaryTypeCreateFunction = memoizeOne((kind) => () => createJSDocPrimaryTypeWorker(kind));\n  const getJSDocUnaryTypeCreateFunction = memoizeOne((kind) => (type) => createJSDocUnaryTypeWorker(kind, type));\n  const getJSDocUnaryTypeUpdateFunction = memoizeOne((kind) => (node, type) => updateJSDocUnaryTypeWorker(kind, node, type));\n  const getJSDocPrePostfixUnaryTypeCreateFunction = memoizeOne((kind) => (type, postfix) => createJSDocPrePostfixUnaryTypeWorker(kind, type, postfix));\n  const getJSDocPrePostfixUnaryTypeUpdateFunction = memoizeOne((kind) => (node, type) => updateJSDocPrePostfixUnaryTypeWorker(kind, node, type));\n  const getJSDocSimpleTagCreateFunction = memoizeOne((kind) => (tagName, comment) => createJSDocSimpleTagWorker(kind, tagName, comment));\n  const getJSDocSimpleTagUpdateFunction = memoizeOne((kind) => (node, tagName, comment) => updateJSDocSimpleTagWorker(kind, node, tagName, comment));\n  const getJSDocTypeLikeTagCreateFunction = memoizeOne((kind) => (tagName, typeExpression, comment) => createJSDocTypeLikeTagWorker(kind, tagName, typeExpression, comment));\n  const getJSDocTypeLikeTagUpdateFunction = memoizeOne((kind) => (node, tagName, typeExpression, comment) => updateJSDocTypeLikeTagWorker(kind, node, tagName, typeExpression, comment));\n  const factory2 = {\n    get parenthesizer() {\n      return parenthesizerRules();\n    },\n    get converters() {\n      return converters();\n    },\n    baseFactory: baseFactory2,\n    flags,\n    createNodeArray,\n    createNumericLiteral,\n    createBigIntLiteral,\n    createStringLiteral,\n    createStringLiteralFromNode,\n    createRegularExpressionLiteral,\n    createLiteralLikeNode,\n    createIdentifier,\n    createTempVariable,\n    createLoopVariable,\n    createUniqueName,\n    getGeneratedNameForNode,\n    createPrivateIdentifier,\n    createUniquePrivateName,\n    getGeneratedPrivateNameForNode,\n    createToken,\n    createSuper,\n    createThis,\n    createNull,\n    createTrue,\n    createFalse,\n    createModifier,\n    createModifiersFromModifierFlags,\n    createQualifiedName,\n    updateQualifiedName,\n    createComputedPropertyName,\n    updateComputedPropertyName,\n    createTypeParameterDeclaration,\n    updateTypeParameterDeclaration,\n    createParameterDeclaration,\n    updateParameterDeclaration,\n    createDecorator,\n    updateDecorator,\n    createPropertySignature,\n    updatePropertySignature,\n    createPropertyDeclaration,\n    updatePropertyDeclaration: updatePropertyDeclaration2,\n    createMethodSignature,\n    updateMethodSignature,\n    createMethodDeclaration,\n    updateMethodDeclaration,\n    createConstructorDeclaration,\n    updateConstructorDeclaration,\n    createGetAccessorDeclaration,\n    updateGetAccessorDeclaration,\n    createSetAccessorDeclaration,\n    updateSetAccessorDeclaration,\n    createCallSignature,\n    updateCallSignature,\n    createConstructSignature,\n    updateConstructSignature,\n    createIndexSignature,\n    updateIndexSignature,\n    createClassStaticBlockDeclaration,\n    updateClassStaticBlockDeclaration,\n    createTemplateLiteralTypeSpan,\n    updateTemplateLiteralTypeSpan,\n    createKeywordTypeNode,\n    createTypePredicateNode,\n    updateTypePredicateNode,\n    createTypeReferenceNode,\n    updateTypeReferenceNode,\n    createFunctionTypeNode,\n    updateFunctionTypeNode,\n    createConstructorTypeNode,\n    updateConstructorTypeNode,\n    createTypeQueryNode,\n    updateTypeQueryNode,\n    createTypeLiteralNode,\n    updateTypeLiteralNode,\n    createArrayTypeNode,\n    updateArrayTypeNode,\n    createTupleTypeNode,\n    updateTupleTypeNode,\n    createNamedTupleMember,\n    updateNamedTupleMember,\n    createOptionalTypeNode,\n    updateOptionalTypeNode,\n    createRestTypeNode,\n    updateRestTypeNode,\n    createUnionTypeNode,\n    updateUnionTypeNode,\n    createIntersectionTypeNode,\n    updateIntersectionTypeNode,\n    createConditionalTypeNode,\n    updateConditionalTypeNode,\n    createInferTypeNode,\n    updateInferTypeNode,\n    createImportTypeNode,\n    updateImportTypeNode,\n    createParenthesizedType,\n    updateParenthesizedType,\n    createThisTypeNode,\n    createTypeOperatorNode,\n    updateTypeOperatorNode,\n    createIndexedAccessTypeNode,\n    updateIndexedAccessTypeNode,\n    createMappedTypeNode,\n    updateMappedTypeNode,\n    createLiteralTypeNode,\n    updateLiteralTypeNode,\n    createTemplateLiteralType,\n    updateTemplateLiteralType,\n    createObjectBindingPattern,\n    updateObjectBindingPattern,\n    createArrayBindingPattern,\n    updateArrayBindingPattern,\n    createBindingElement,\n    updateBindingElement,\n    createArrayLiteralExpression,\n    updateArrayLiteralExpression,\n    createObjectLiteralExpression,\n    updateObjectLiteralExpression,\n    createPropertyAccessExpression: flags & 4 /* NoIndentationOnFreshPropertyAccess */ ? (expression, name) => setEmitFlags(createPropertyAccessExpression(expression, name), 262144 /* NoIndentation */) : createPropertyAccessExpression,\n    updatePropertyAccessExpression,\n    createPropertyAccessChain: flags & 4 /* NoIndentationOnFreshPropertyAccess */ ? (expression, questionDotToken, name) => setEmitFlags(createPropertyAccessChain(expression, questionDotToken, name), 262144 /* NoIndentation */) : createPropertyAccessChain,\n    updatePropertyAccessChain,\n    createElementAccessExpression,\n    updateElementAccessExpression,\n    createElementAccessChain,\n    updateElementAccessChain,\n    createCallExpression,\n    updateCallExpression,\n    createCallChain,\n    updateCallChain,\n    createNewExpression,\n    updateNewExpression,\n    createTaggedTemplateExpression,\n    updateTaggedTemplateExpression,\n    createTypeAssertion,\n    updateTypeAssertion,\n    createParenthesizedExpression,\n    updateParenthesizedExpression,\n    createFunctionExpression,\n    updateFunctionExpression,\n    createArrowFunction,\n    updateArrowFunction,\n    createDeleteExpression,\n    updateDeleteExpression,\n    createTypeOfExpression,\n    updateTypeOfExpression,\n    createVoidExpression,\n    updateVoidExpression,\n    createAwaitExpression,\n    updateAwaitExpression,\n    createPrefixUnaryExpression,\n    updatePrefixUnaryExpression,\n    createPostfixUnaryExpression,\n    updatePostfixUnaryExpression,\n    createBinaryExpression,\n    updateBinaryExpression,\n    createConditionalExpression,\n    updateConditionalExpression,\n    createTemplateExpression,\n    updateTemplateExpression,\n    createTemplateHead,\n    createTemplateMiddle,\n    createTemplateTail,\n    createNoSubstitutionTemplateLiteral,\n    createTemplateLiteralLikeNode,\n    createYieldExpression,\n    updateYieldExpression,\n    createSpreadElement,\n    updateSpreadElement,\n    createClassExpression,\n    updateClassExpression,\n    createOmittedExpression,\n    createExpressionWithTypeArguments,\n    updateExpressionWithTypeArguments,\n    createAsExpression,\n    updateAsExpression,\n    createNonNullExpression,\n    updateNonNullExpression,\n    createSatisfiesExpression,\n    updateSatisfiesExpression,\n    createNonNullChain,\n    updateNonNullChain,\n    createMetaProperty,\n    updateMetaProperty,\n    createTemplateSpan,\n    updateTemplateSpan,\n    createSemicolonClassElement,\n    createBlock,\n    updateBlock,\n    createVariableStatement,\n    updateVariableStatement,\n    createEmptyStatement,\n    createExpressionStatement,\n    updateExpressionStatement,\n    createIfStatement,\n    updateIfStatement,\n    createDoStatement,\n    updateDoStatement,\n    createWhileStatement,\n    updateWhileStatement,\n    createForStatement,\n    updateForStatement,\n    createForInStatement,\n    updateForInStatement,\n    createForOfStatement,\n    updateForOfStatement,\n    createContinueStatement,\n    updateContinueStatement,\n    createBreakStatement,\n    updateBreakStatement,\n    createReturnStatement,\n    updateReturnStatement,\n    createWithStatement,\n    updateWithStatement,\n    createSwitchStatement,\n    updateSwitchStatement,\n    createLabeledStatement,\n    updateLabeledStatement,\n    createThrowStatement,\n    updateThrowStatement,\n    createTryStatement,\n    updateTryStatement,\n    createDebuggerStatement,\n    createVariableDeclaration,\n    updateVariableDeclaration,\n    createVariableDeclarationList,\n    updateVariableDeclarationList,\n    createFunctionDeclaration,\n    updateFunctionDeclaration,\n    createClassDeclaration,\n    updateClassDeclaration,\n    createInterfaceDeclaration,\n    updateInterfaceDeclaration,\n    createTypeAliasDeclaration,\n    updateTypeAliasDeclaration,\n    createEnumDeclaration,\n    updateEnumDeclaration,\n    createModuleDeclaration,\n    updateModuleDeclaration,\n    createModuleBlock,\n    updateModuleBlock,\n    createCaseBlock,\n    updateCaseBlock,\n    createNamespaceExportDeclaration,\n    updateNamespaceExportDeclaration,\n    createImportEqualsDeclaration,\n    updateImportEqualsDeclaration,\n    createImportDeclaration,\n    updateImportDeclaration,\n    createImportClause: createImportClause2,\n    updateImportClause,\n    createAssertClause,\n    updateAssertClause,\n    createAssertEntry,\n    updateAssertEntry,\n    createImportTypeAssertionContainer,\n    updateImportTypeAssertionContainer,\n    createImportAttributes,\n    updateImportAttributes,\n    createImportAttribute,\n    updateImportAttribute,\n    createNamespaceImport,\n    updateNamespaceImport,\n    createNamespaceExport,\n    updateNamespaceExport,\n    createNamedImports,\n    updateNamedImports,\n    createImportSpecifier,\n    updateImportSpecifier,\n    createExportAssignment: createExportAssignment2,\n    updateExportAssignment,\n    createExportDeclaration,\n    updateExportDeclaration,\n    createNamedExports,\n    updateNamedExports,\n    createExportSpecifier,\n    updateExportSpecifier,\n    createMissingDeclaration,\n    createExternalModuleReference,\n    updateExternalModuleReference,\n    // lazily load factory members for JSDoc types with similar structure\n    get createJSDocAllType() {\n      return getJSDocPrimaryTypeCreateFunction(313 /* JSDocAllType */);\n    },\n    get createJSDocUnknownType() {\n      return getJSDocPrimaryTypeCreateFunction(314 /* JSDocUnknownType */);\n    },\n    get createJSDocNonNullableType() {\n      return getJSDocPrePostfixUnaryTypeCreateFunction(316 /* JSDocNonNullableType */);\n    },\n    get updateJSDocNonNullableType() {\n      return getJSDocPrePostfixUnaryTypeUpdateFunction(316 /* JSDocNonNullableType */);\n    },\n    get createJSDocNullableType() {\n      return getJSDocPrePostfixUnaryTypeCreateFunction(315 /* JSDocNullableType */);\n    },\n    get updateJSDocNullableType() {\n      return getJSDocPrePostfixUnaryTypeUpdateFunction(315 /* JSDocNullableType */);\n    },\n    get createJSDocOptionalType() {\n      return getJSDocUnaryTypeCreateFunction(317 /* JSDocOptionalType */);\n    },\n    get updateJSDocOptionalType() {\n      return getJSDocUnaryTypeUpdateFunction(317 /* JSDocOptionalType */);\n    },\n    get createJSDocVariadicType() {\n      return getJSDocUnaryTypeCreateFunction(319 /* JSDocVariadicType */);\n    },\n    get updateJSDocVariadicType() {\n      return getJSDocUnaryTypeUpdateFunction(319 /* JSDocVariadicType */);\n    },\n    get createJSDocNamepathType() {\n      return getJSDocUnaryTypeCreateFunction(320 /* JSDocNamepathType */);\n    },\n    get updateJSDocNamepathType() {\n      return getJSDocUnaryTypeUpdateFunction(320 /* JSDocNamepathType */);\n    },\n    createJSDocFunctionType,\n    updateJSDocFunctionType,\n    createJSDocTypeLiteral,\n    updateJSDocTypeLiteral,\n    createJSDocTypeExpression,\n    updateJSDocTypeExpression,\n    createJSDocSignature,\n    updateJSDocSignature,\n    createJSDocTemplateTag,\n    updateJSDocTemplateTag,\n    createJSDocTypedefTag,\n    updateJSDocTypedefTag,\n    createJSDocParameterTag,\n    updateJSDocParameterTag,\n    createJSDocPropertyTag,\n    updateJSDocPropertyTag,\n    createJSDocCallbackTag,\n    updateJSDocCallbackTag,\n    createJSDocOverloadTag,\n    updateJSDocOverloadTag,\n    createJSDocAugmentsTag,\n    updateJSDocAugmentsTag,\n    createJSDocImplementsTag,\n    updateJSDocImplementsTag,\n    createJSDocSeeTag,\n    updateJSDocSeeTag,\n    createJSDocImportTag,\n    updateJSDocImportTag,\n    createJSDocNameReference,\n    updateJSDocNameReference,\n    createJSDocMemberName,\n    updateJSDocMemberName,\n    createJSDocLink,\n    updateJSDocLink,\n    createJSDocLinkCode,\n    updateJSDocLinkCode,\n    createJSDocLinkPlain,\n    updateJSDocLinkPlain,\n    // lazily load factory members for JSDoc tags with similar structure\n    get createJSDocTypeTag() {\n      return getJSDocTypeLikeTagCreateFunction(345 /* JSDocTypeTag */);\n    },\n    get updateJSDocTypeTag() {\n      return getJSDocTypeLikeTagUpdateFunction(345 /* JSDocTypeTag */);\n    },\n    get createJSDocReturnTag() {\n      return getJSDocTypeLikeTagCreateFunction(343 /* JSDocReturnTag */);\n    },\n    get updateJSDocReturnTag() {\n      return getJSDocTypeLikeTagUpdateFunction(343 /* JSDocReturnTag */);\n    },\n    get createJSDocThisTag() {\n      return getJSDocTypeLikeTagCreateFunction(344 /* JSDocThisTag */);\n    },\n    get updateJSDocThisTag() {\n      return getJSDocTypeLikeTagUpdateFunction(344 /* JSDocThisTag */);\n    },\n    get createJSDocAuthorTag() {\n      return getJSDocSimpleTagCreateFunction(331 /* JSDocAuthorTag */);\n    },\n    get updateJSDocAuthorTag() {\n      return getJSDocSimpleTagUpdateFunction(331 /* JSDocAuthorTag */);\n    },\n    get createJSDocClassTag() {\n      return getJSDocSimpleTagCreateFunction(333 /* JSDocClassTag */);\n    },\n    get updateJSDocClassTag() {\n      return getJSDocSimpleTagUpdateFunction(333 /* JSDocClassTag */);\n    },\n    get createJSDocPublicTag() {\n      return getJSDocSimpleTagCreateFunction(334 /* JSDocPublicTag */);\n    },\n    get updateJSDocPublicTag() {\n      return getJSDocSimpleTagUpdateFunction(334 /* JSDocPublicTag */);\n    },\n    get createJSDocPrivateTag() {\n      return getJSDocSimpleTagCreateFunction(335 /* JSDocPrivateTag */);\n    },\n    get updateJSDocPrivateTag() {\n      return getJSDocSimpleTagUpdateFunction(335 /* JSDocPrivateTag */);\n    },\n    get createJSDocProtectedTag() {\n      return getJSDocSimpleTagCreateFunction(336 /* JSDocProtectedTag */);\n    },\n    get updateJSDocProtectedTag() {\n      return getJSDocSimpleTagUpdateFunction(336 /* JSDocProtectedTag */);\n    },\n    get createJSDocReadonlyTag() {\n      return getJSDocSimpleTagCreateFunction(337 /* JSDocReadonlyTag */);\n    },\n    get updateJSDocReadonlyTag() {\n      return getJSDocSimpleTagUpdateFunction(337 /* JSDocReadonlyTag */);\n    },\n    get createJSDocOverrideTag() {\n      return getJSDocSimpleTagCreateFunction(338 /* JSDocOverrideTag */);\n    },\n    get updateJSDocOverrideTag() {\n      return getJSDocSimpleTagUpdateFunction(338 /* JSDocOverrideTag */);\n    },\n    get createJSDocDeprecatedTag() {\n      return getJSDocSimpleTagCreateFunction(332 /* JSDocDeprecatedTag */);\n    },\n    get updateJSDocDeprecatedTag() {\n      return getJSDocSimpleTagUpdateFunction(332 /* JSDocDeprecatedTag */);\n    },\n    get createJSDocThrowsTag() {\n      return getJSDocTypeLikeTagCreateFunction(350 /* JSDocThrowsTag */);\n    },\n    get updateJSDocThrowsTag() {\n      return getJSDocTypeLikeTagUpdateFunction(350 /* JSDocThrowsTag */);\n    },\n    get createJSDocSatisfiesTag() {\n      return getJSDocTypeLikeTagCreateFunction(351 /* JSDocSatisfiesTag */);\n    },\n    get updateJSDocSatisfiesTag() {\n      return getJSDocTypeLikeTagUpdateFunction(351 /* JSDocSatisfiesTag */);\n    },\n    createJSDocEnumTag,\n    updateJSDocEnumTag,\n    createJSDocUnknownTag,\n    updateJSDocUnknownTag,\n    createJSDocText,\n    updateJSDocText,\n    createJSDocComment,\n    updateJSDocComment,\n    createJsxElement,\n    updateJsxElement,\n    createJsxSelfClosingElement,\n    updateJsxSelfClosingElement,\n    createJsxOpeningElement,\n    updateJsxOpeningElement,\n    createJsxClosingElement,\n    updateJsxClosingElement,\n    createJsxFragment,\n    createJsxText,\n    updateJsxText,\n    createJsxOpeningFragment,\n    createJsxJsxClosingFragment,\n    updateJsxFragment,\n    createJsxAttribute,\n    updateJsxAttribute,\n    createJsxAttributes,\n    updateJsxAttributes,\n    createJsxSpreadAttribute,\n    updateJsxSpreadAttribute,\n    createJsxExpression,\n    updateJsxExpression,\n    createJsxNamespacedName,\n    updateJsxNamespacedName,\n    createCaseClause,\n    updateCaseClause,\n    createDefaultClause,\n    updateDefaultClause,\n    createHeritageClause,\n    updateHeritageClause,\n    createCatchClause,\n    updateCatchClause,\n    createPropertyAssignment,\n    updatePropertyAssignment,\n    createShorthandPropertyAssignment,\n    updateShorthandPropertyAssignment,\n    createSpreadAssignment,\n    updateSpreadAssignment,\n    createEnumMember,\n    updateEnumMember,\n    createSourceFile: createSourceFile2,\n    updateSourceFile: updateSourceFile2,\n    createRedirectedSourceFile,\n    createBundle,\n    updateBundle,\n    createSyntheticExpression,\n    createSyntaxList: createSyntaxList3,\n    createNotEmittedStatement,\n    createNotEmittedTypeElement,\n    createPartiallyEmittedExpression,\n    updatePartiallyEmittedExpression,\n    createCommaListExpression,\n    updateCommaListExpression,\n    createSyntheticReferenceExpression,\n    updateSyntheticReferenceExpression,\n    cloneNode,\n    // Lazily load factory methods for common operator factories and utilities\n    get createComma() {\n      return getBinaryCreateFunction(28 /* CommaToken */);\n    },\n    get createAssignment() {\n      return getBinaryCreateFunction(64 /* EqualsToken */);\n    },\n    get createLogicalOr() {\n      return getBinaryCreateFunction(57 /* BarBarToken */);\n    },\n    get createLogicalAnd() {\n      return getBinaryCreateFunction(56 /* AmpersandAmpersandToken */);\n    },\n    get createBitwiseOr() {\n      return getBinaryCreateFunction(52 /* BarToken */);\n    },\n    get createBitwiseXor() {\n      return getBinaryCreateFunction(53 /* CaretToken */);\n    },\n    get createBitwiseAnd() {\n      return getBinaryCreateFunction(51 /* AmpersandToken */);\n    },\n    get createStrictEquality() {\n      return getBinaryCreateFunction(37 /* EqualsEqualsEqualsToken */);\n    },\n    get createStrictInequality() {\n      return getBinaryCreateFunction(38 /* ExclamationEqualsEqualsToken */);\n    },\n    get createEquality() {\n      return getBinaryCreateFunction(35 /* EqualsEqualsToken */);\n    },\n    get createInequality() {\n      return getBinaryCreateFunction(36 /* ExclamationEqualsToken */);\n    },\n    get createLessThan() {\n      return getBinaryCreateFunction(30 /* LessThanToken */);\n    },\n    get createLessThanEquals() {\n      return getBinaryCreateFunction(33 /* LessThanEqualsToken */);\n    },\n    get createGreaterThan() {\n      return getBinaryCreateFunction(32 /* GreaterThanToken */);\n    },\n    get createGreaterThanEquals() {\n      return getBinaryCreateFunction(34 /* GreaterThanEqualsToken */);\n    },\n    get createLeftShift() {\n      return getBinaryCreateFunction(48 /* LessThanLessThanToken */);\n    },\n    get createRightShift() {\n      return getBinaryCreateFunction(49 /* GreaterThanGreaterThanToken */);\n    },\n    get createUnsignedRightShift() {\n      return getBinaryCreateFunction(50 /* GreaterThanGreaterThanGreaterThanToken */);\n    },\n    get createAdd() {\n      return getBinaryCreateFunction(40 /* PlusToken */);\n    },\n    get createSubtract() {\n      return getBinaryCreateFunction(41 /* MinusToken */);\n    },\n    get createMultiply() {\n      return getBinaryCreateFunction(42 /* AsteriskToken */);\n    },\n    get createDivide() {\n      return getBinaryCreateFunction(44 /* SlashToken */);\n    },\n    get createModulo() {\n      return getBinaryCreateFunction(45 /* PercentToken */);\n    },\n    get createExponent() {\n      return getBinaryCreateFunction(43 /* AsteriskAsteriskToken */);\n    },\n    get createPrefixPlus() {\n      return getPrefixUnaryCreateFunction(40 /* PlusToken */);\n    },\n    get createPrefixMinus() {\n      return getPrefixUnaryCreateFunction(41 /* MinusToken */);\n    },\n    get createPrefixIncrement() {\n      return getPrefixUnaryCreateFunction(46 /* PlusPlusToken */);\n    },\n    get createPrefixDecrement() {\n      return getPrefixUnaryCreateFunction(47 /* MinusMinusToken */);\n    },\n    get createBitwiseNot() {\n      return getPrefixUnaryCreateFunction(55 /* TildeToken */);\n    },\n    get createLogicalNot() {\n      return getPrefixUnaryCreateFunction(54 /* ExclamationToken */);\n    },\n    get createPostfixIncrement() {\n      return getPostfixUnaryCreateFunction(46 /* PlusPlusToken */);\n    },\n    get createPostfixDecrement() {\n      return getPostfixUnaryCreateFunction(47 /* MinusMinusToken */);\n    },\n    // Compound nodes\n    createImmediatelyInvokedFunctionExpression,\n    createImmediatelyInvokedArrowFunction,\n    createVoidZero,\n    createExportDefault,\n    createExternalModuleExport,\n    createTypeCheck,\n    createIsNotTypeCheck,\n    createMethodCall,\n    createGlobalMethodCall,\n    createFunctionBindCall,\n    createFunctionCallCall,\n    createFunctionApplyCall,\n    createArraySliceCall,\n    createArrayConcatCall,\n    createObjectDefinePropertyCall,\n    createObjectGetOwnPropertyDescriptorCall,\n    createReflectGetCall,\n    createReflectSetCall,\n    createPropertyDescriptor,\n    createCallBinding,\n    createAssignmentTargetWrapper,\n    // Utilities\n    inlineExpressions,\n    getInternalName,\n    getLocalName,\n    getExportName,\n    getDeclarationName,\n    getNamespaceMemberName,\n    getExternalModuleOrNamespaceExportName,\n    restoreOuterExpressions,\n    restoreEnclosingLabel,\n    createUseStrictPrologue,\n    copyPrologue,\n    copyStandardPrologue,\n    copyCustomPrologue,\n    ensureUseStrict,\n    liftToBlock,\n    mergeLexicalEnvironment,\n    replaceModifiers,\n    replaceDecoratorsAndModifiers,\n    replacePropertyName\n  };\n  forEach(nodeFactoryPatchers, (fn) => fn(factory2));\n  return factory2;\n  function createNodeArray(elements, hasTrailingComma) {\n    if (elements === void 0 || elements === emptyArray) {\n      elements = [];\n    } else if (isNodeArray(elements)) {\n      if (hasTrailingComma === void 0 || elements.hasTrailingComma === hasTrailingComma) {\n        if (elements.transformFlags === void 0) {\n          aggregateChildrenFlags(elements);\n        }\n        Debug.attachNodeArrayDebugInfo(elements);\n        return elements;\n      }\n      const array2 = elements.slice();\n      array2.pos = elements.pos;\n      array2.end = elements.end;\n      array2.hasTrailingComma = hasTrailingComma;\n      array2.transformFlags = elements.transformFlags;\n      Debug.attachNodeArrayDebugInfo(array2);\n      return array2;\n    }\n    const length2 = elements.length;\n    const array = length2 >= 1 && length2 <= 4 ? elements.slice() : elements;\n    array.pos = -1;\n    array.end = -1;\n    array.hasTrailingComma = !!hasTrailingComma;\n    array.transformFlags = 0 /* None */;\n    aggregateChildrenFlags(array);\n    Debug.attachNodeArrayDebugInfo(array);\n    return array;\n  }\n  function createBaseNode(kind) {\n    return baseFactory2.createBaseNode(kind);\n  }\n  function createBaseDeclaration(kind) {\n    const node = createBaseNode(kind);\n    node.symbol = void 0;\n    node.localSymbol = void 0;\n    return node;\n  }\n  function finishUpdateBaseSignatureDeclaration(updated, original) {\n    if (updated !== original) {\n      updated.typeArguments = original.typeArguments;\n    }\n    return update(updated, original);\n  }\n  function createNumericLiteral(value, numericLiteralFlags = 0 /* None */) {\n    const text = typeof value === \"number\" ? value + \"\" : value;\n    Debug.assert(text.charCodeAt(0) !== 45 /* minus */, \"Negative numbers should be created in combination with createPrefixUnaryExpression\");\n    const node = createBaseDeclaration(9 /* NumericLiteral */);\n    node.text = text;\n    node.numericLiteralFlags = numericLiteralFlags;\n    if (numericLiteralFlags & 384 /* BinaryOrOctalSpecifier */) node.transformFlags |= 1024 /* ContainsES2015 */;\n    return node;\n  }\n  function createBigIntLiteral(value) {\n    const node = createBaseToken(10 /* BigIntLiteral */);\n    node.text = typeof value === \"string\" ? value : pseudoBigIntToString(value) + \"n\";\n    node.transformFlags |= 32 /* ContainsES2020 */;\n    return node;\n  }\n  function createBaseStringLiteral(text, isSingleQuote) {\n    const node = createBaseDeclaration(11 /* StringLiteral */);\n    node.text = text;\n    node.singleQuote = isSingleQuote;\n    return node;\n  }\n  function createStringLiteral(text, isSingleQuote, hasExtendedUnicodeEscape) {\n    const node = createBaseStringLiteral(text, isSingleQuote);\n    node.hasExtendedUnicodeEscape = hasExtendedUnicodeEscape;\n    if (hasExtendedUnicodeEscape) node.transformFlags |= 1024 /* ContainsES2015 */;\n    return node;\n  }\n  function createStringLiteralFromNode(sourceNode) {\n    const node = createBaseStringLiteral(\n      getTextOfIdentifierOrLiteral(sourceNode),\n      /*isSingleQuote*/\n      void 0\n    );\n    node.textSourceNode = sourceNode;\n    return node;\n  }\n  function createRegularExpressionLiteral(text) {\n    const node = createBaseToken(14 /* RegularExpressionLiteral */);\n    node.text = text;\n    return node;\n  }\n  function createLiteralLikeNode(kind, text) {\n    switch (kind) {\n      case 9 /* NumericLiteral */:\n        return createNumericLiteral(\n          text,\n          /*numericLiteralFlags*/\n          0\n        );\n      case 10 /* BigIntLiteral */:\n        return createBigIntLiteral(text);\n      case 11 /* StringLiteral */:\n        return createStringLiteral(\n          text,\n          /*isSingleQuote*/\n          void 0\n        );\n      case 12 /* JsxText */:\n        return createJsxText(\n          text,\n          /*containsOnlyTriviaWhiteSpaces*/\n          false\n        );\n      case 13 /* JsxTextAllWhiteSpaces */:\n        return createJsxText(\n          text,\n          /*containsOnlyTriviaWhiteSpaces*/\n          true\n        );\n      case 14 /* RegularExpressionLiteral */:\n        return createRegularExpressionLiteral(text);\n      case 15 /* NoSubstitutionTemplateLiteral */:\n        return createTemplateLiteralLikeNode(\n          kind,\n          text,\n          /*rawText*/\n          void 0,\n          /*templateFlags*/\n          0\n        );\n    }\n  }\n  function createBaseIdentifier(escapedText) {\n    const node = baseFactory2.createBaseIdentifierNode(80 /* Identifier */);\n    node.escapedText = escapedText;\n    node.jsDoc = void 0;\n    node.flowNode = void 0;\n    node.symbol = void 0;\n    return node;\n  }\n  function createBaseGeneratedIdentifier(text, autoGenerateFlags, prefix, suffix) {\n    const node = createBaseIdentifier(escapeLeadingUnderscores(text));\n    setIdentifierAutoGenerate(node, {\n      flags: autoGenerateFlags,\n      id: nextAutoGenerateId,\n      prefix,\n      suffix\n    });\n    nextAutoGenerateId++;\n    return node;\n  }\n  function createIdentifier(text, originalKeywordKind, hasExtendedUnicodeEscape) {\n    if (originalKeywordKind === void 0 && text) {\n      originalKeywordKind = stringToToken(text);\n    }\n    if (originalKeywordKind === 80 /* Identifier */) {\n      originalKeywordKind = void 0;\n    }\n    const node = createBaseIdentifier(escapeLeadingUnderscores(text));\n    if (hasExtendedUnicodeEscape) node.flags |= 256 /* IdentifierHasExtendedUnicodeEscape */;\n    if (node.escapedText === \"await\") {\n      node.transformFlags |= 67108864 /* ContainsPossibleTopLevelAwait */;\n    }\n    if (node.flags & 256 /* IdentifierHasExtendedUnicodeEscape */) {\n      node.transformFlags |= 1024 /* ContainsES2015 */;\n    }\n    return node;\n  }\n  function createTempVariable(recordTempVariable, reservedInNestedScopes, prefix, suffix) {\n    let flags2 = 1 /* Auto */;\n    if (reservedInNestedScopes) flags2 |= 8 /* ReservedInNestedScopes */;\n    const name = createBaseGeneratedIdentifier(\"\", flags2, prefix, suffix);\n    if (recordTempVariable) {\n      recordTempVariable(name);\n    }\n    return name;\n  }\n  function createLoopVariable(reservedInNestedScopes) {\n    let flags2 = 2 /* Loop */;\n    if (reservedInNestedScopes) flags2 |= 8 /* ReservedInNestedScopes */;\n    return createBaseGeneratedIdentifier(\n      \"\",\n      flags2,\n      /*prefix*/\n      void 0,\n      /*suffix*/\n      void 0\n    );\n  }\n  function createUniqueName(text, flags2 = 0 /* None */, prefix, suffix) {\n    Debug.assert(!(flags2 & 7 /* KindMask */), \"Argument out of range: flags\");\n    Debug.assert((flags2 & (16 /* Optimistic */ | 32 /* FileLevel */)) !== 32 /* FileLevel */, \"GeneratedIdentifierFlags.FileLevel cannot be set without also setting GeneratedIdentifierFlags.Optimistic\");\n    return createBaseGeneratedIdentifier(text, 3 /* Unique */ | flags2, prefix, suffix);\n  }\n  function getGeneratedNameForNode(node, flags2 = 0, prefix, suffix) {\n    Debug.assert(!(flags2 & 7 /* KindMask */), \"Argument out of range: flags\");\n    const text = !node ? \"\" : isMemberName(node) ? formatGeneratedName(\n      /*privateName*/\n      false,\n      prefix,\n      node,\n      suffix,\n      idText\n    ) : `generated@${getNodeId(node)}`;\n    if (prefix || suffix) flags2 |= 16 /* Optimistic */;\n    const name = createBaseGeneratedIdentifier(text, 4 /* Node */ | flags2, prefix, suffix);\n    name.original = node;\n    return name;\n  }\n  function createBasePrivateIdentifier(escapedText) {\n    const node = baseFactory2.createBasePrivateIdentifierNode(81 /* PrivateIdentifier */);\n    node.escapedText = escapedText;\n    node.transformFlags |= 16777216 /* ContainsClassFields */;\n    return node;\n  }\n  function createPrivateIdentifier(text) {\n    if (!startsWith(text, \"#\")) Debug.fail(\"First character of private identifier must be #: \" + text);\n    return createBasePrivateIdentifier(escapeLeadingUnderscores(text));\n  }\n  function createBaseGeneratedPrivateIdentifier(text, autoGenerateFlags, prefix, suffix) {\n    const node = createBasePrivateIdentifier(escapeLeadingUnderscores(text));\n    setIdentifierAutoGenerate(node, {\n      flags: autoGenerateFlags,\n      id: nextAutoGenerateId,\n      prefix,\n      suffix\n    });\n    nextAutoGenerateId++;\n    return node;\n  }\n  function createUniquePrivateName(text, prefix, suffix) {\n    if (text && !startsWith(text, \"#\")) Debug.fail(\"First character of private identifier must be #: \" + text);\n    const autoGenerateFlags = 8 /* ReservedInNestedScopes */ | (text ? 3 /* Unique */ : 1 /* Auto */);\n    return createBaseGeneratedPrivateIdentifier(text ?? \"\", autoGenerateFlags, prefix, suffix);\n  }\n  function getGeneratedPrivateNameForNode(node, prefix, suffix) {\n    const text = isMemberName(node) ? formatGeneratedName(\n      /*privateName*/\n      true,\n      prefix,\n      node,\n      suffix,\n      idText\n    ) : `#generated@${getNodeId(node)}`;\n    const flags2 = prefix || suffix ? 16 /* Optimistic */ : 0 /* None */;\n    const name = createBaseGeneratedPrivateIdentifier(text, 4 /* Node */ | flags2, prefix, suffix);\n    name.original = node;\n    return name;\n  }\n  function createBaseToken(kind) {\n    return baseFactory2.createBaseTokenNode(kind);\n  }\n  function createToken(token) {\n    Debug.assert(token >= 0 /* FirstToken */ && token <= 166 /* LastToken */, \"Invalid token\");\n    Debug.assert(token <= 15 /* FirstTemplateToken */ || token >= 18 /* LastTemplateToken */, \"Invalid token. Use 'createTemplateLiteralLikeNode' to create template literals.\");\n    Debug.assert(token <= 9 /* FirstLiteralToken */ || token >= 15 /* LastLiteralToken */, \"Invalid token. Use 'createLiteralLikeNode' to create literals.\");\n    Debug.assert(token !== 80 /* Identifier */, \"Invalid token. Use 'createIdentifier' to create identifiers\");\n    const node = createBaseToken(token);\n    let transformFlags = 0 /* None */;\n    switch (token) {\n      case 134 /* AsyncKeyword */:\n        transformFlags = 256 /* ContainsES2017 */ | 128 /* ContainsES2018 */;\n        break;\n      case 160 /* UsingKeyword */:\n        transformFlags = 4 /* ContainsESNext */;\n        break;\n      case 125 /* PublicKeyword */:\n      case 123 /* PrivateKeyword */:\n      case 124 /* ProtectedKeyword */:\n      case 148 /* ReadonlyKeyword */:\n      case 128 /* AbstractKeyword */:\n      case 138 /* DeclareKeyword */:\n      case 87 /* ConstKeyword */:\n      case 133 /* AnyKeyword */:\n      case 150 /* NumberKeyword */:\n      case 163 /* BigIntKeyword */:\n      case 146 /* NeverKeyword */:\n      case 151 /* ObjectKeyword */:\n      case 103 /* InKeyword */:\n      case 147 /* OutKeyword */:\n      case 164 /* OverrideKeyword */:\n      case 154 /* StringKeyword */:\n      case 136 /* BooleanKeyword */:\n      case 155 /* SymbolKeyword */:\n      case 116 /* VoidKeyword */:\n      case 159 /* UnknownKeyword */:\n      case 157 /* UndefinedKeyword */:\n        transformFlags = 1 /* ContainsTypeScript */;\n        break;\n      case 108 /* SuperKeyword */:\n        transformFlags = 1024 /* ContainsES2015 */ | 134217728 /* ContainsLexicalSuper */;\n        node.flowNode = void 0;\n        break;\n      case 126 /* StaticKeyword */:\n        transformFlags = 1024 /* ContainsES2015 */;\n        break;\n      case 129 /* AccessorKeyword */:\n        transformFlags = 16777216 /* ContainsClassFields */;\n        break;\n      case 110 /* ThisKeyword */:\n        transformFlags = 16384 /* ContainsLexicalThis */;\n        node.flowNode = void 0;\n        break;\n    }\n    if (transformFlags) {\n      node.transformFlags |= transformFlags;\n    }\n    return node;\n  }\n  function createSuper() {\n    return createToken(108 /* SuperKeyword */);\n  }\n  function createThis() {\n    return createToken(110 /* ThisKeyword */);\n  }\n  function createNull() {\n    return createToken(106 /* NullKeyword */);\n  }\n  function createTrue() {\n    return createToken(112 /* TrueKeyword */);\n  }\n  function createFalse() {\n    return createToken(97 /* FalseKeyword */);\n  }\n  function createModifier(kind) {\n    return createToken(kind);\n  }\n  function createModifiersFromModifierFlags(flags2) {\n    const result = [];\n    if (flags2 & 32 /* Export */) result.push(createModifier(95 /* ExportKeyword */));\n    if (flags2 & 128 /* Ambient */) result.push(createModifier(138 /* DeclareKeyword */));\n    if (flags2 & 2048 /* Default */) result.push(createModifier(90 /* DefaultKeyword */));\n    if (flags2 & 4096 /* Const */) result.push(createModifier(87 /* ConstKeyword */));\n    if (flags2 & 1 /* Public */) result.push(createModifier(125 /* PublicKeyword */));\n    if (flags2 & 2 /* Private */) result.push(createModifier(123 /* PrivateKeyword */));\n    if (flags2 & 4 /* Protected */) result.push(createModifier(124 /* ProtectedKeyword */));\n    if (flags2 & 64 /* Abstract */) result.push(createModifier(128 /* AbstractKeyword */));\n    if (flags2 & 256 /* Static */) result.push(createModifier(126 /* StaticKeyword */));\n    if (flags2 & 16 /* Override */) result.push(createModifier(164 /* OverrideKeyword */));\n    if (flags2 & 8 /* Readonly */) result.push(createModifier(148 /* ReadonlyKeyword */));\n    if (flags2 & 512 /* Accessor */) result.push(createModifier(129 /* AccessorKeyword */));\n    if (flags2 & 1024 /* Async */) result.push(createModifier(134 /* AsyncKeyword */));\n    if (flags2 & 8192 /* In */) result.push(createModifier(103 /* InKeyword */));\n    if (flags2 & 16384 /* Out */) result.push(createModifier(147 /* OutKeyword */));\n    return result.length ? result : void 0;\n  }\n  function createQualifiedName(left, right) {\n    const node = createBaseNode(167 /* QualifiedName */);\n    node.left = left;\n    node.right = asName(right);\n    node.transformFlags |= propagateChildFlags(node.left) | propagateIdentifierNameFlags(node.right);\n    node.flowNode = void 0;\n    return node;\n  }\n  function updateQualifiedName(node, left, right) {\n    return node.left !== left || node.right !== right ? update(createQualifiedName(left, right), node) : node;\n  }\n  function createComputedPropertyName(expression) {\n    const node = createBaseNode(168 /* ComputedPropertyName */);\n    node.expression = parenthesizerRules().parenthesizeExpressionOfComputedPropertyName(expression);\n    node.transformFlags |= propagateChildFlags(node.expression) | 1024 /* ContainsES2015 */ | 131072 /* ContainsComputedPropertyName */;\n    return node;\n  }\n  function updateComputedPropertyName(node, expression) {\n    return node.expression !== expression ? update(createComputedPropertyName(expression), node) : node;\n  }\n  function createTypeParameterDeclaration(modifiers, name, constraint, defaultType) {\n    const node = createBaseDeclaration(169 /* TypeParameter */);\n    node.modifiers = asNodeArray(modifiers);\n    node.name = asName(name);\n    node.constraint = constraint;\n    node.default = defaultType;\n    node.transformFlags = 1 /* ContainsTypeScript */;\n    node.expression = void 0;\n    node.jsDoc = void 0;\n    return node;\n  }\n  function updateTypeParameterDeclaration(node, modifiers, name, constraint, defaultType) {\n    return node.modifiers !== modifiers || node.name !== name || node.constraint !== constraint || node.default !== defaultType ? update(createTypeParameterDeclaration(modifiers, name, constraint, defaultType), node) : node;\n  }\n  function createParameterDeclaration(modifiers, dotDotDotToken, name, questionToken, type, initializer) {\n    const node = createBaseDeclaration(170 /* Parameter */);\n    node.modifiers = asNodeArray(modifiers);\n    node.dotDotDotToken = dotDotDotToken;\n    node.name = asName(name);\n    node.questionToken = questionToken;\n    node.type = type;\n    node.initializer = asInitializer(initializer);\n    if (isThisIdentifier(node.name)) {\n      node.transformFlags = 1 /* ContainsTypeScript */;\n    } else {\n      node.transformFlags = propagateChildrenFlags(node.modifiers) | propagateChildFlags(node.dotDotDotToken) | propagateNameFlags(node.name) | propagateChildFlags(node.questionToken) | propagateChildFlags(node.initializer) | (node.questionToken ?? node.type ? 1 /* ContainsTypeScript */ : 0 /* None */) | (node.dotDotDotToken ?? node.initializer ? 1024 /* ContainsES2015 */ : 0 /* None */) | (modifiersToFlags(node.modifiers) & 31 /* ParameterPropertyModifier */ ? 8192 /* ContainsTypeScriptClassSyntax */ : 0 /* None */);\n    }\n    node.jsDoc = void 0;\n    return node;\n  }\n  function updateParameterDeclaration(node, modifiers, dotDotDotToken, name, questionToken, type, initializer) {\n    return node.modifiers !== modifiers || node.dotDotDotToken !== dotDotDotToken || node.name !== name || node.questionToken !== questionToken || node.type !== type || node.initializer !== initializer ? update(createParameterDeclaration(modifiers, dotDotDotToken, name, questionToken, type, initializer), node) : node;\n  }\n  function createDecorator(expression) {\n    const node = createBaseNode(171 /* Decorator */);\n    node.expression = parenthesizerRules().parenthesizeLeftSideOfAccess(\n      expression,\n      /*optionalChain*/\n      false\n    );\n    node.transformFlags |= propagateChildFlags(node.expression) | 1 /* ContainsTypeScript */ | 8192 /* ContainsTypeScriptClassSyntax */ | 33554432 /* ContainsDecorators */;\n    return node;\n  }\n  function updateDecorator(node, expression) {\n    return node.expression !== expression ? update(createDecorator(expression), node) : node;\n  }\n  function createPropertySignature(modifiers, name, questionToken, type) {\n    const node = createBaseDeclaration(172 /* PropertySignature */);\n    node.modifiers = asNodeArray(modifiers);\n    node.name = asName(name);\n    node.type = type;\n    node.questionToken = questionToken;\n    node.transformFlags = 1 /* ContainsTypeScript */;\n    node.initializer = void 0;\n    node.jsDoc = void 0;\n    return node;\n  }\n  function updatePropertySignature(node, modifiers, name, questionToken, type) {\n    return node.modifiers !== modifiers || node.name !== name || node.questionToken !== questionToken || node.type !== type ? finishUpdatePropertySignature(createPropertySignature(modifiers, name, questionToken, type), node) : node;\n  }\n  function finishUpdatePropertySignature(updated, original) {\n    if (updated !== original) {\n      updated.initializer = original.initializer;\n    }\n    return update(updated, original);\n  }\n  function createPropertyDeclaration(modifiers, name, questionOrExclamationToken, type, initializer) {\n    const node = createBaseDeclaration(173 /* PropertyDeclaration */);\n    node.modifiers = asNodeArray(modifiers);\n    node.name = asName(name);\n    node.questionToken = questionOrExclamationToken && isQuestionToken(questionOrExclamationToken) ? questionOrExclamationToken : void 0;\n    node.exclamationToken = questionOrExclamationToken && isExclamationToken(questionOrExclamationToken) ? questionOrExclamationToken : void 0;\n    node.type = type;\n    node.initializer = asInitializer(initializer);\n    const isAmbient = node.flags & 33554432 /* Ambient */ || modifiersToFlags(node.modifiers) & 128 /* Ambient */;\n    node.transformFlags = propagateChildrenFlags(node.modifiers) | propagateNameFlags(node.name) | propagateChildFlags(node.initializer) | (isAmbient || node.questionToken || node.exclamationToken || node.type ? 1 /* ContainsTypeScript */ : 0 /* None */) | (isComputedPropertyName(node.name) || modifiersToFlags(node.modifiers) & 256 /* Static */ && node.initializer ? 8192 /* ContainsTypeScriptClassSyntax */ : 0 /* None */) | 16777216 /* ContainsClassFields */;\n    node.jsDoc = void 0;\n    return node;\n  }\n  function updatePropertyDeclaration2(node, modifiers, name, questionOrExclamationToken, type, initializer) {\n    return node.modifiers !== modifiers || node.name !== name || node.questionToken !== (questionOrExclamationToken !== void 0 && isQuestionToken(questionOrExclamationToken) ? questionOrExclamationToken : void 0) || node.exclamationToken !== (questionOrExclamationToken !== void 0 && isExclamationToken(questionOrExclamationToken) ? questionOrExclamationToken : void 0) || node.type !== type || node.initializer !== initializer ? update(createPropertyDeclaration(modifiers, name, questionOrExclamationToken, type, initializer), node) : node;\n  }\n  function createMethodSignature(modifiers, name, questionToken, typeParameters, parameters, type) {\n    const node = createBaseDeclaration(174 /* MethodSignature */);\n    node.modifiers = asNodeArray(modifiers);\n    node.name = asName(name);\n    node.questionToken = questionToken;\n    node.typeParameters = asNodeArray(typeParameters);\n    node.parameters = asNodeArray(parameters);\n    node.type = type;\n    node.transformFlags = 1 /* ContainsTypeScript */;\n    node.jsDoc = void 0;\n    node.locals = void 0;\n    node.nextContainer = void 0;\n    node.typeArguments = void 0;\n    return node;\n  }\n  function updateMethodSignature(node, modifiers, name, questionToken, typeParameters, parameters, type) {\n    return node.modifiers !== modifiers || node.name !== name || node.questionToken !== questionToken || node.typeParameters !== typeParameters || node.parameters !== parameters || node.type !== type ? finishUpdateBaseSignatureDeclaration(createMethodSignature(modifiers, name, questionToken, typeParameters, parameters, type), node) : node;\n  }\n  function createMethodDeclaration(modifiers, asteriskToken, name, questionToken, typeParameters, parameters, type, body) {\n    const node = createBaseDeclaration(175 /* MethodDeclaration */);\n    node.modifiers = asNodeArray(modifiers);\n    node.asteriskToken = asteriskToken;\n    node.name = asName(name);\n    node.questionToken = questionToken;\n    node.exclamationToken = void 0;\n    node.typeParameters = asNodeArray(typeParameters);\n    node.parameters = createNodeArray(parameters);\n    node.type = type;\n    node.body = body;\n    if (!node.body) {\n      node.transformFlags = 1 /* ContainsTypeScript */;\n    } else {\n      const isAsync = modifiersToFlags(node.modifiers) & 1024 /* Async */;\n      const isGenerator = !!node.asteriskToken;\n      const isAsyncGenerator = isAsync && isGenerator;\n      node.transformFlags = propagateChildrenFlags(node.modifiers) | propagateChildFlags(node.asteriskToken) | propagateNameFlags(node.name) | propagateChildFlags(node.questionToken) | propagateChildrenFlags(node.typeParameters) | propagateChildrenFlags(node.parameters) | propagateChildFlags(node.type) | propagateChildFlags(node.body) & ~67108864 /* ContainsPossibleTopLevelAwait */ | (isAsyncGenerator ? 128 /* ContainsES2018 */ : isAsync ? 256 /* ContainsES2017 */ : isGenerator ? 2048 /* ContainsGenerator */ : 0 /* None */) | (node.questionToken || node.typeParameters || node.type ? 1 /* ContainsTypeScript */ : 0 /* None */) | 1024 /* ContainsES2015 */;\n    }\n    node.typeArguments = void 0;\n    node.jsDoc = void 0;\n    node.locals = void 0;\n    node.nextContainer = void 0;\n    node.flowNode = void 0;\n    node.endFlowNode = void 0;\n    node.returnFlowNode = void 0;\n    return node;\n  }\n  function updateMethodDeclaration(node, modifiers, asteriskToken, name, questionToken, typeParameters, parameters, type, body) {\n    return node.modifiers !== modifiers || node.asteriskToken !== asteriskToken || node.name !== name || node.questionToken !== questionToken || node.typeParameters !== typeParameters || node.parameters !== parameters || node.type !== type || node.body !== body ? finishUpdateMethodDeclaration(createMethodDeclaration(modifiers, asteriskToken, name, questionToken, typeParameters, parameters, type, body), node) : node;\n  }\n  function finishUpdateMethodDeclaration(updated, original) {\n    if (updated !== original) {\n      updated.exclamationToken = original.exclamationToken;\n    }\n    return update(updated, original);\n  }\n  function createClassStaticBlockDeclaration(body) {\n    const node = createBaseDeclaration(176 /* ClassStaticBlockDeclaration */);\n    node.body = body;\n    node.transformFlags = propagateChildFlags(body) | 16777216 /* ContainsClassFields */;\n    node.modifiers = void 0;\n    node.jsDoc = void 0;\n    node.locals = void 0;\n    node.nextContainer = void 0;\n    node.endFlowNode = void 0;\n    node.returnFlowNode = void 0;\n    return node;\n  }\n  function updateClassStaticBlockDeclaration(node, body) {\n    return node.body !== body ? finishUpdateClassStaticBlockDeclaration(createClassStaticBlockDeclaration(body), node) : node;\n  }\n  function finishUpdateClassStaticBlockDeclaration(updated, original) {\n    if (updated !== original) {\n      updated.modifiers = original.modifiers;\n    }\n    return update(updated, original);\n  }\n  function createConstructorDeclaration(modifiers, parameters, body) {\n    const node = createBaseDeclaration(177 /* Constructor */);\n    node.modifiers = asNodeArray(modifiers);\n    node.parameters = createNodeArray(parameters);\n    node.body = body;\n    if (!node.body) {\n      node.transformFlags = 1 /* ContainsTypeScript */;\n    } else {\n      node.transformFlags = propagateChildrenFlags(node.modifiers) | propagateChildrenFlags(node.parameters) | propagateChildFlags(node.body) & ~67108864 /* ContainsPossibleTopLevelAwait */ | 1024 /* ContainsES2015 */;\n    }\n    node.typeParameters = void 0;\n    node.type = void 0;\n    node.typeArguments = void 0;\n    node.jsDoc = void 0;\n    node.locals = void 0;\n    node.nextContainer = void 0;\n    node.endFlowNode = void 0;\n    node.returnFlowNode = void 0;\n    return node;\n  }\n  function updateConstructorDeclaration(node, modifiers, parameters, body) {\n    return node.modifiers !== modifiers || node.parameters !== parameters || node.body !== body ? finishUpdateConstructorDeclaration(createConstructorDeclaration(modifiers, parameters, body), node) : node;\n  }\n  function finishUpdateConstructorDeclaration(updated, original) {\n    if (updated !== original) {\n      updated.typeParameters = original.typeParameters;\n      updated.type = original.type;\n    }\n    return finishUpdateBaseSignatureDeclaration(updated, original);\n  }\n  function createGetAccessorDeclaration(modifiers, name, parameters, type, body) {\n    const node = createBaseDeclaration(178 /* GetAccessor */);\n    node.modifiers = asNodeArray(modifiers);\n    node.name = asName(name);\n    node.parameters = createNodeArray(parameters);\n    node.type = type;\n    node.body = body;\n    if (!node.body) {\n      node.transformFlags = 1 /* ContainsTypeScript */;\n    } else {\n      node.transformFlags = propagateChildrenFlags(node.modifiers) | propagateNameFlags(node.name) | propagateChildrenFlags(node.parameters) | propagateChildFlags(node.type) | propagateChildFlags(node.body) & ~67108864 /* ContainsPossibleTopLevelAwait */ | (node.type ? 1 /* ContainsTypeScript */ : 0 /* None */);\n    }\n    node.typeArguments = void 0;\n    node.typeParameters = void 0;\n    node.jsDoc = void 0;\n    node.locals = void 0;\n    node.nextContainer = void 0;\n    node.flowNode = void 0;\n    node.endFlowNode = void 0;\n    node.returnFlowNode = void 0;\n    return node;\n  }\n  function updateGetAccessorDeclaration(node, modifiers, name, parameters, type, body) {\n    return node.modifiers !== modifiers || node.name !== name || node.parameters !== parameters || node.type !== type || node.body !== body ? finishUpdateGetAccessorDeclaration(createGetAccessorDeclaration(modifiers, name, parameters, type, body), node) : node;\n  }\n  function finishUpdateGetAccessorDeclaration(updated, original) {\n    if (updated !== original) {\n      updated.typeParameters = original.typeParameters;\n    }\n    return finishUpdateBaseSignatureDeclaration(updated, original);\n  }\n  function createSetAccessorDeclaration(modifiers, name, parameters, body) {\n    const node = createBaseDeclaration(179 /* SetAccessor */);\n    node.modifiers = asNodeArray(modifiers);\n    node.name = asName(name);\n    node.parameters = createNodeArray(parameters);\n    node.body = body;\n    if (!node.body) {\n      node.transformFlags = 1 /* ContainsTypeScript */;\n    } else {\n      node.transformFlags = propagateChildrenFlags(node.modifiers) | propagateNameFlags(node.name) | propagateChildrenFlags(node.parameters) | propagateChildFlags(node.body) & ~67108864 /* ContainsPossibleTopLevelAwait */ | (node.type ? 1 /* ContainsTypeScript */ : 0 /* None */);\n    }\n    node.typeArguments = void 0;\n    node.typeParameters = void 0;\n    node.type = void 0;\n    node.jsDoc = void 0;\n    node.locals = void 0;\n    node.nextContainer = void 0;\n    node.flowNode = void 0;\n    node.endFlowNode = void 0;\n    node.returnFlowNode = void 0;\n    return node;\n  }\n  function updateSetAccessorDeclaration(node, modifiers, name, parameters, body) {\n    return node.modifiers !== modifiers || node.name !== name || node.parameters !== parameters || node.body !== body ? finishUpdateSetAccessorDeclaration(createSetAccessorDeclaration(modifiers, name, parameters, body), node) : node;\n  }\n  function finishUpdateSetAccessorDeclaration(updated, original) {\n    if (updated !== original) {\n      updated.typeParameters = original.typeParameters;\n      updated.type = original.type;\n    }\n    return finishUpdateBaseSignatureDeclaration(updated, original);\n  }\n  function createCallSignature(typeParameters, parameters, type) {\n    const node = createBaseDeclaration(180 /* CallSignature */);\n    node.typeParameters = asNodeArray(typeParameters);\n    node.parameters = asNodeArray(parameters);\n    node.type = type;\n    node.transformFlags = 1 /* ContainsTypeScript */;\n    node.jsDoc = void 0;\n    node.locals = void 0;\n    node.nextContainer = void 0;\n    node.typeArguments = void 0;\n    return node;\n  }\n  function updateCallSignature(node, typeParameters, parameters, type) {\n    return node.typeParameters !== typeParameters || node.parameters !== parameters || node.type !== type ? finishUpdateBaseSignatureDeclaration(createCallSignature(typeParameters, parameters, type), node) : node;\n  }\n  function createConstructSignature(typeParameters, parameters, type) {\n    const node = createBaseDeclaration(181 /* ConstructSignature */);\n    node.typeParameters = asNodeArray(typeParameters);\n    node.parameters = asNodeArray(parameters);\n    node.type = type;\n    node.transformFlags = 1 /* ContainsTypeScript */;\n    node.jsDoc = void 0;\n    node.locals = void 0;\n    node.nextContainer = void 0;\n    node.typeArguments = void 0;\n    return node;\n  }\n  function updateConstructSignature(node, typeParameters, parameters, type) {\n    return node.typeParameters !== typeParameters || node.parameters !== parameters || node.type !== type ? finishUpdateBaseSignatureDeclaration(createConstructSignature(typeParameters, parameters, type), node) : node;\n  }\n  function createIndexSignature(modifiers, parameters, type) {\n    const node = createBaseDeclaration(182 /* IndexSignature */);\n    node.modifiers = asNodeArray(modifiers);\n    node.parameters = asNodeArray(parameters);\n    node.type = type;\n    node.transformFlags = 1 /* ContainsTypeScript */;\n    node.jsDoc = void 0;\n    node.locals = void 0;\n    node.nextContainer = void 0;\n    node.typeArguments = void 0;\n    return node;\n  }\n  function updateIndexSignature(node, modifiers, parameters, type) {\n    return node.parameters !== parameters || node.type !== type || node.modifiers !== modifiers ? finishUpdateBaseSignatureDeclaration(createIndexSignature(modifiers, parameters, type), node) : node;\n  }\n  function createTemplateLiteralTypeSpan(type, literal) {\n    const node = createBaseNode(205 /* TemplateLiteralTypeSpan */);\n    node.type = type;\n    node.literal = literal;\n    node.transformFlags = 1 /* ContainsTypeScript */;\n    return node;\n  }\n  function updateTemplateLiteralTypeSpan(node, type, literal) {\n    return node.type !== type || node.literal !== literal ? update(createTemplateLiteralTypeSpan(type, literal), node) : node;\n  }\n  function createKeywordTypeNode(kind) {\n    return createToken(kind);\n  }\n  function createTypePredicateNode(assertsModifier, parameterName, type) {\n    const node = createBaseNode(183 /* TypePredicate */);\n    node.assertsModifier = assertsModifier;\n    node.parameterName = asName(parameterName);\n    node.type = type;\n    node.transformFlags = 1 /* ContainsTypeScript */;\n    return node;\n  }\n  function updateTypePredicateNode(node, assertsModifier, parameterName, type) {\n    return node.assertsModifier !== assertsModifier || node.parameterName !== parameterName || node.type !== type ? update(createTypePredicateNode(assertsModifier, parameterName, type), node) : node;\n  }\n  function createTypeReferenceNode(typeName, typeArguments) {\n    const node = createBaseNode(184 /* TypeReference */);\n    node.typeName = asName(typeName);\n    node.typeArguments = typeArguments && parenthesizerRules().parenthesizeTypeArguments(createNodeArray(typeArguments));\n    node.transformFlags = 1 /* ContainsTypeScript */;\n    return node;\n  }\n  function updateTypeReferenceNode(node, typeName, typeArguments) {\n    return node.typeName !== typeName || node.typeArguments !== typeArguments ? update(createTypeReferenceNode(typeName, typeArguments), node) : node;\n  }\n  function createFunctionTypeNode(typeParameters, parameters, type) {\n    const node = createBaseDeclaration(185 /* FunctionType */);\n    node.typeParameters = asNodeArray(typeParameters);\n    node.parameters = asNodeArray(parameters);\n    node.type = type;\n    node.transformFlags = 1 /* ContainsTypeScript */;\n    node.modifiers = void 0;\n    node.jsDoc = void 0;\n    node.locals = void 0;\n    node.nextContainer = void 0;\n    node.typeArguments = void 0;\n    return node;\n  }\n  function updateFunctionTypeNode(node, typeParameters, parameters, type) {\n    return node.typeParameters !== typeParameters || node.parameters !== parameters || node.type !== type ? finishUpdateFunctionTypeNode(createFunctionTypeNode(typeParameters, parameters, type), node) : node;\n  }\n  function finishUpdateFunctionTypeNode(updated, original) {\n    if (updated !== original) {\n      updated.modifiers = original.modifiers;\n    }\n    return finishUpdateBaseSignatureDeclaration(updated, original);\n  }\n  function createConstructorTypeNode(...args) {\n    return args.length === 4 ? createConstructorTypeNode1(...args) : args.length === 3 ? createConstructorTypeNode2(...args) : Debug.fail(\"Incorrect number of arguments specified.\");\n  }\n  function createConstructorTypeNode1(modifiers, typeParameters, parameters, type) {\n    const node = createBaseDeclaration(186 /* ConstructorType */);\n    node.modifiers = asNodeArray(modifiers);\n    node.typeParameters = asNodeArray(typeParameters);\n    node.parameters = asNodeArray(parameters);\n    node.type = type;\n    node.transformFlags = 1 /* ContainsTypeScript */;\n    node.jsDoc = void 0;\n    node.locals = void 0;\n    node.nextContainer = void 0;\n    node.typeArguments = void 0;\n    return node;\n  }\n  function createConstructorTypeNode2(typeParameters, parameters, type) {\n    return createConstructorTypeNode1(\n      /*modifiers*/\n      void 0,\n      typeParameters,\n      parameters,\n      type\n    );\n  }\n  function updateConstructorTypeNode(...args) {\n    return args.length === 5 ? updateConstructorTypeNode1(...args) : args.length === 4 ? updateConstructorTypeNode2(...args) : Debug.fail(\"Incorrect number of arguments specified.\");\n  }\n  function updateConstructorTypeNode1(node, modifiers, typeParameters, parameters, type) {\n    return node.modifiers !== modifiers || node.typeParameters !== typeParameters || node.parameters !== parameters || node.type !== type ? finishUpdateBaseSignatureDeclaration(createConstructorTypeNode(modifiers, typeParameters, parameters, type), node) : node;\n  }\n  function updateConstructorTypeNode2(node, typeParameters, parameters, type) {\n    return updateConstructorTypeNode1(node, node.modifiers, typeParameters, parameters, type);\n  }\n  function createTypeQueryNode(exprName, typeArguments) {\n    const node = createBaseNode(187 /* TypeQuery */);\n    node.exprName = exprName;\n    node.typeArguments = typeArguments && parenthesizerRules().parenthesizeTypeArguments(typeArguments);\n    node.transformFlags = 1 /* ContainsTypeScript */;\n    return node;\n  }\n  function updateTypeQueryNode(node, exprName, typeArguments) {\n    return node.exprName !== exprName || node.typeArguments !== typeArguments ? update(createTypeQueryNode(exprName, typeArguments), node) : node;\n  }\n  function createTypeLiteralNode(members) {\n    const node = createBaseDeclaration(188 /* TypeLiteral */);\n    node.members = createNodeArray(members);\n    node.transformFlags = 1 /* ContainsTypeScript */;\n    return node;\n  }\n  function updateTypeLiteralNode(node, members) {\n    return node.members !== members ? update(createTypeLiteralNode(members), node) : node;\n  }\n  function createArrayTypeNode(elementType) {\n    const node = createBaseNode(189 /* ArrayType */);\n    node.elementType = parenthesizerRules().parenthesizeNonArrayTypeOfPostfixType(elementType);\n    node.transformFlags = 1 /* ContainsTypeScript */;\n    return node;\n  }\n  function updateArrayTypeNode(node, elementType) {\n    return node.elementType !== elementType ? update(createArrayTypeNode(elementType), node) : node;\n  }\n  function createTupleTypeNode(elements) {\n    const node = createBaseNode(190 /* TupleType */);\n    node.elements = createNodeArray(parenthesizerRules().parenthesizeElementTypesOfTupleType(elements));\n    node.transformFlags = 1 /* ContainsTypeScript */;\n    return node;\n  }\n  function updateTupleTypeNode(node, elements) {\n    return node.elements !== elements ? update(createTupleTypeNode(elements), node) : node;\n  }\n  function createNamedTupleMember(dotDotDotToken, name, questionToken, type) {\n    const node = createBaseDeclaration(203 /* NamedTupleMember */);\n    node.dotDotDotToken = dotDotDotToken;\n    node.name = name;\n    node.questionToken = questionToken;\n    node.type = type;\n    node.transformFlags = 1 /* ContainsTypeScript */;\n    node.jsDoc = void 0;\n    return node;\n  }\n  function updateNamedTupleMember(node, dotDotDotToken, name, questionToken, type) {\n    return node.dotDotDotToken !== dotDotDotToken || node.name !== name || node.questionToken !== questionToken || node.type !== type ? update(createNamedTupleMember(dotDotDotToken, name, questionToken, type), node) : node;\n  }\n  function createOptionalTypeNode(type) {\n    const node = createBaseNode(191 /* OptionalType */);\n    node.type = parenthesizerRules().parenthesizeTypeOfOptionalType(type);\n    node.transformFlags = 1 /* ContainsTypeScript */;\n    return node;\n  }\n  function updateOptionalTypeNode(node, type) {\n    return node.type !== type ? update(createOptionalTypeNode(type), node) : node;\n  }\n  function createRestTypeNode(type) {\n    const node = createBaseNode(192 /* RestType */);\n    node.type = type;\n    node.transformFlags = 1 /* ContainsTypeScript */;\n    return node;\n  }\n  function updateRestTypeNode(node, type) {\n    return node.type !== type ? update(createRestTypeNode(type), node) : node;\n  }\n  function createUnionOrIntersectionTypeNode(kind, types, parenthesize) {\n    const node = createBaseNode(kind);\n    node.types = factory2.createNodeArray(parenthesize(types));\n    node.transformFlags = 1 /* ContainsTypeScript */;\n    return node;\n  }\n  function updateUnionOrIntersectionTypeNode(node, types, parenthesize) {\n    return node.types !== types ? update(createUnionOrIntersectionTypeNode(node.kind, types, parenthesize), node) : node;\n  }\n  function createUnionTypeNode(types) {\n    return createUnionOrIntersectionTypeNode(193 /* UnionType */, types, parenthesizerRules().parenthesizeConstituentTypesOfUnionType);\n  }\n  function updateUnionTypeNode(node, types) {\n    return updateUnionOrIntersectionTypeNode(node, types, parenthesizerRules().parenthesizeConstituentTypesOfUnionType);\n  }\n  function createIntersectionTypeNode(types) {\n    return createUnionOrIntersectionTypeNode(194 /* IntersectionType */, types, parenthesizerRules().parenthesizeConstituentTypesOfIntersectionType);\n  }\n  function updateIntersectionTypeNode(node, types) {\n    return updateUnionOrIntersectionTypeNode(node, types, parenthesizerRules().parenthesizeConstituentTypesOfIntersectionType);\n  }\n  function createConditionalTypeNode(checkType, extendsType, trueType, falseType) {\n    const node = createBaseNode(195 /* ConditionalType */);\n    node.checkType = parenthesizerRules().parenthesizeCheckTypeOfConditionalType(checkType);\n    node.extendsType = parenthesizerRules().parenthesizeExtendsTypeOfConditionalType(extendsType);\n    node.trueType = trueType;\n    node.falseType = falseType;\n    node.transformFlags = 1 /* ContainsTypeScript */;\n    node.locals = void 0;\n    node.nextContainer = void 0;\n    return node;\n  }\n  function updateConditionalTypeNode(node, checkType, extendsType, trueType, falseType) {\n    return node.checkType !== checkType || node.extendsType !== extendsType || node.trueType !== trueType || node.falseType !== falseType ? update(createConditionalTypeNode(checkType, extendsType, trueType, falseType), node) : node;\n  }\n  function createInferTypeNode(typeParameter) {\n    const node = createBaseNode(196 /* InferType */);\n    node.typeParameter = typeParameter;\n    node.transformFlags = 1 /* ContainsTypeScript */;\n    return node;\n  }\n  function updateInferTypeNode(node, typeParameter) {\n    return node.typeParameter !== typeParameter ? update(createInferTypeNode(typeParameter), node) : node;\n  }\n  function createTemplateLiteralType(head, templateSpans) {\n    const node = createBaseNode(204 /* TemplateLiteralType */);\n    node.head = head;\n    node.templateSpans = createNodeArray(templateSpans);\n    node.transformFlags = 1 /* ContainsTypeScript */;\n    return node;\n  }\n  function updateTemplateLiteralType(node, head, templateSpans) {\n    return node.head !== head || node.templateSpans !== templateSpans ? update(createTemplateLiteralType(head, templateSpans), node) : node;\n  }\n  function createImportTypeNode(argument, attributes, qualifier, typeArguments, isTypeOf = false) {\n    const node = createBaseNode(206 /* ImportType */);\n    node.argument = argument;\n    node.attributes = attributes;\n    if (node.assertions && node.assertions.assertClause && node.attributes) {\n      node.assertions.assertClause = node.attributes;\n    }\n    node.qualifier = qualifier;\n    node.typeArguments = typeArguments && parenthesizerRules().parenthesizeTypeArguments(typeArguments);\n    node.isTypeOf = isTypeOf;\n    node.transformFlags = 1 /* ContainsTypeScript */;\n    return node;\n  }\n  function updateImportTypeNode(node, argument, attributes, qualifier, typeArguments, isTypeOf = node.isTypeOf) {\n    return node.argument !== argument || node.attributes !== attributes || node.qualifier !== qualifier || node.typeArguments !== typeArguments || node.isTypeOf !== isTypeOf ? update(createImportTypeNode(argument, attributes, qualifier, typeArguments, isTypeOf), node) : node;\n  }\n  function createParenthesizedType(type) {\n    const node = createBaseNode(197 /* ParenthesizedType */);\n    node.type = type;\n    node.transformFlags = 1 /* ContainsTypeScript */;\n    return node;\n  }\n  function updateParenthesizedType(node, type) {\n    return node.type !== type ? update(createParenthesizedType(type), node) : node;\n  }\n  function createThisTypeNode() {\n    const node = createBaseNode(198 /* ThisType */);\n    node.transformFlags = 1 /* ContainsTypeScript */;\n    return node;\n  }\n  function createTypeOperatorNode(operator, type) {\n    const node = createBaseNode(199 /* TypeOperator */);\n    node.operator = operator;\n    node.type = operator === 148 /* ReadonlyKeyword */ ? parenthesizerRules().parenthesizeOperandOfReadonlyTypeOperator(type) : parenthesizerRules().parenthesizeOperandOfTypeOperator(type);\n    node.transformFlags = 1 /* ContainsTypeScript */;\n    return node;\n  }\n  function updateTypeOperatorNode(node, type) {\n    return node.type !== type ? update(createTypeOperatorNode(node.operator, type), node) : node;\n  }\n  function createIndexedAccessTypeNode(objectType, indexType) {\n    const node = createBaseNode(200 /* IndexedAccessType */);\n    node.objectType = parenthesizerRules().parenthesizeNonArrayTypeOfPostfixType(objectType);\n    node.indexType = indexType;\n    node.transformFlags = 1 /* ContainsTypeScript */;\n    return node;\n  }\n  function updateIndexedAccessTypeNode(node, objectType, indexType) {\n    return node.objectType !== objectType || node.indexType !== indexType ? update(createIndexedAccessTypeNode(objectType, indexType), node) : node;\n  }\n  function createMappedTypeNode(readonlyToken, typeParameter, nameType, questionToken, type, members) {\n    const node = createBaseDeclaration(201 /* MappedType */);\n    node.readonlyToken = readonlyToken;\n    node.typeParameter = typeParameter;\n    node.nameType = nameType;\n    node.questionToken = questionToken;\n    node.type = type;\n    node.members = members && createNodeArray(members);\n    node.transformFlags = 1 /* ContainsTypeScript */;\n    node.locals = void 0;\n    node.nextContainer = void 0;\n    return node;\n  }\n  function updateMappedTypeNode(node, readonlyToken, typeParameter, nameType, questionToken, type, members) {\n    return node.readonlyToken !== readonlyToken || node.typeParameter !== typeParameter || node.nameType !== nameType || node.questionToken !== questionToken || node.type !== type || node.members !== members ? update(createMappedTypeNode(readonlyToken, typeParameter, nameType, questionToken, type, members), node) : node;\n  }\n  function createLiteralTypeNode(literal) {\n    const node = createBaseNode(202 /* LiteralType */);\n    node.literal = literal;\n    node.transformFlags = 1 /* ContainsTypeScript */;\n    return node;\n  }\n  function updateLiteralTypeNode(node, literal) {\n    return node.literal !== literal ? update(createLiteralTypeNode(literal), node) : node;\n  }\n  function createObjectBindingPattern(elements) {\n    const node = createBaseNode(207 /* ObjectBindingPattern */);\n    node.elements = createNodeArray(elements);\n    node.transformFlags |= propagateChildrenFlags(node.elements) | 1024 /* ContainsES2015 */ | 524288 /* ContainsBindingPattern */;\n    if (node.transformFlags & 32768 /* ContainsRestOrSpread */) {\n      node.transformFlags |= 128 /* ContainsES2018 */ | 65536 /* ContainsObjectRestOrSpread */;\n    }\n    return node;\n  }\n  function updateObjectBindingPattern(node, elements) {\n    return node.elements !== elements ? update(createObjectBindingPattern(elements), node) : node;\n  }\n  function createArrayBindingPattern(elements) {\n    const node = createBaseNode(208 /* ArrayBindingPattern */);\n    node.elements = createNodeArray(elements);\n    node.transformFlags |= propagateChildrenFlags(node.elements) | 1024 /* ContainsES2015 */ | 524288 /* ContainsBindingPattern */;\n    return node;\n  }\n  function updateArrayBindingPattern(node, elements) {\n    return node.elements !== elements ? update(createArrayBindingPattern(elements), node) : node;\n  }\n  function createBindingElement(dotDotDotToken, propertyName, name, initializer) {\n    const node = createBaseDeclaration(209 /* BindingElement */);\n    node.dotDotDotToken = dotDotDotToken;\n    node.propertyName = asName(propertyName);\n    node.name = asName(name);\n    node.initializer = asInitializer(initializer);\n    node.transformFlags |= propagateChildFlags(node.dotDotDotToken) | propagateNameFlags(node.propertyName) | propagateNameFlags(node.name) | propagateChildFlags(node.initializer) | (node.dotDotDotToken ? 32768 /* ContainsRestOrSpread */ : 0 /* None */) | 1024 /* ContainsES2015 */;\n    node.flowNode = void 0;\n    return node;\n  }\n  function updateBindingElement(node, dotDotDotToken, propertyName, name, initializer) {\n    return node.propertyName !== propertyName || node.dotDotDotToken !== dotDotDotToken || node.name !== name || node.initializer !== initializer ? update(createBindingElement(dotDotDotToken, propertyName, name, initializer), node) : node;\n  }\n  function createArrayLiteralExpression(elements, multiLine) {\n    const node = createBaseNode(210 /* ArrayLiteralExpression */);\n    const lastElement = elements && lastOrUndefined(elements);\n    const elementsArray = createNodeArray(elements, lastElement && isOmittedExpression(lastElement) ? true : void 0);\n    node.elements = parenthesizerRules().parenthesizeExpressionsOfCommaDelimitedList(elementsArray);\n    node.multiLine = multiLine;\n    node.transformFlags |= propagateChildrenFlags(node.elements);\n    return node;\n  }\n  function updateArrayLiteralExpression(node, elements) {\n    return node.elements !== elements ? update(createArrayLiteralExpression(elements, node.multiLine), node) : node;\n  }\n  function createObjectLiteralExpression(properties, multiLine) {\n    const node = createBaseDeclaration(211 /* ObjectLiteralExpression */);\n    node.properties = createNodeArray(properties);\n    node.multiLine = multiLine;\n    node.transformFlags |= propagateChildrenFlags(node.properties);\n    node.jsDoc = void 0;\n    return node;\n  }\n  function updateObjectLiteralExpression(node, properties) {\n    return node.properties !== properties ? update(createObjectLiteralExpression(properties, node.multiLine), node) : node;\n  }\n  function createBasePropertyAccessExpression(expression, questionDotToken, name) {\n    const node = createBaseDeclaration(212 /* PropertyAccessExpression */);\n    node.expression = expression;\n    node.questionDotToken = questionDotToken;\n    node.name = name;\n    node.transformFlags = propagateChildFlags(node.expression) | propagateChildFlags(node.questionDotToken) | (isIdentifier(node.name) ? propagateIdentifierNameFlags(node.name) : propagateChildFlags(node.name) | 536870912 /* ContainsPrivateIdentifierInExpression */);\n    node.jsDoc = void 0;\n    node.flowNode = void 0;\n    return node;\n  }\n  function createPropertyAccessExpression(expression, name) {\n    const node = createBasePropertyAccessExpression(\n      parenthesizerRules().parenthesizeLeftSideOfAccess(\n        expression,\n        /*optionalChain*/\n        false\n      ),\n      /*questionDotToken*/\n      void 0,\n      asName(name)\n    );\n    if (isSuperKeyword(expression)) {\n      node.transformFlags |= 256 /* ContainsES2017 */ | 128 /* ContainsES2018 */;\n    }\n    return node;\n  }\n  function updatePropertyAccessExpression(node, expression, name) {\n    if (isPropertyAccessChain(node)) {\n      return updatePropertyAccessChain(node, expression, node.questionDotToken, cast(name, isIdentifier));\n    }\n    return node.expression !== expression || node.name !== name ? update(createPropertyAccessExpression(expression, name), node) : node;\n  }\n  function createPropertyAccessChain(expression, questionDotToken, name) {\n    const node = createBasePropertyAccessExpression(\n      parenthesizerRules().parenthesizeLeftSideOfAccess(\n        expression,\n        /*optionalChain*/\n        true\n      ),\n      questionDotToken,\n      asName(name)\n    );\n    node.flags |= 64 /* OptionalChain */;\n    node.transformFlags |= 32 /* ContainsES2020 */;\n    return node;\n  }\n  function updatePropertyAccessChain(node, expression, questionDotToken, name) {\n    Debug.assert(!!(node.flags & 64 /* OptionalChain */), \"Cannot update a PropertyAccessExpression using updatePropertyAccessChain. Use updatePropertyAccess instead.\");\n    return node.expression !== expression || node.questionDotToken !== questionDotToken || node.name !== name ? update(createPropertyAccessChain(expression, questionDotToken, name), node) : node;\n  }\n  function createBaseElementAccessExpression(expression, questionDotToken, argumentExpression) {\n    const node = createBaseDeclaration(213 /* ElementAccessExpression */);\n    node.expression = expression;\n    node.questionDotToken = questionDotToken;\n    node.argumentExpression = argumentExpression;\n    node.transformFlags |= propagateChildFlags(node.expression) | propagateChildFlags(node.questionDotToken) | propagateChildFlags(node.argumentExpression);\n    node.jsDoc = void 0;\n    node.flowNode = void 0;\n    return node;\n  }\n  function createElementAccessExpression(expression, index) {\n    const node = createBaseElementAccessExpression(\n      parenthesizerRules().parenthesizeLeftSideOfAccess(\n        expression,\n        /*optionalChain*/\n        false\n      ),\n      /*questionDotToken*/\n      void 0,\n      asExpression(index)\n    );\n    if (isSuperKeyword(expression)) {\n      node.transformFlags |= 256 /* ContainsES2017 */ | 128 /* ContainsES2018 */;\n    }\n    return node;\n  }\n  function updateElementAccessExpression(node, expression, argumentExpression) {\n    if (isElementAccessChain(node)) {\n      return updateElementAccessChain(node, expression, node.questionDotToken, argumentExpression);\n    }\n    return node.expression !== expression || node.argumentExpression !== argumentExpression ? update(createElementAccessExpression(expression, argumentExpression), node) : node;\n  }\n  function createElementAccessChain(expression, questionDotToken, index) {\n    const node = createBaseElementAccessExpression(\n      parenthesizerRules().parenthesizeLeftSideOfAccess(\n        expression,\n        /*optionalChain*/\n        true\n      ),\n      questionDotToken,\n      asExpression(index)\n    );\n    node.flags |= 64 /* OptionalChain */;\n    node.transformFlags |= 32 /* ContainsES2020 */;\n    return node;\n  }\n  function updateElementAccessChain(node, expression, questionDotToken, argumentExpression) {\n    Debug.assert(!!(node.flags & 64 /* OptionalChain */), \"Cannot update a ElementAccessExpression using updateElementAccessChain. Use updateElementAccess instead.\");\n    return node.expression !== expression || node.questionDotToken !== questionDotToken || node.argumentExpression !== argumentExpression ? update(createElementAccessChain(expression, questionDotToken, argumentExpression), node) : node;\n  }\n  function createBaseCallExpression(expression, questionDotToken, typeArguments, argumentsArray) {\n    const node = createBaseDeclaration(214 /* CallExpression */);\n    node.expression = expression;\n    node.questionDotToken = questionDotToken;\n    node.typeArguments = typeArguments;\n    node.arguments = argumentsArray;\n    node.transformFlags |= propagateChildFlags(node.expression) | propagateChildFlags(node.questionDotToken) | propagateChildrenFlags(node.typeArguments) | propagateChildrenFlags(node.arguments);\n    if (node.typeArguments) {\n      node.transformFlags |= 1 /* ContainsTypeScript */;\n    }\n    if (isSuperProperty(node.expression)) {\n      node.transformFlags |= 16384 /* ContainsLexicalThis */;\n    }\n    return node;\n  }\n  function createCallExpression(expression, typeArguments, argumentsArray) {\n    const node = createBaseCallExpression(\n      parenthesizerRules().parenthesizeLeftSideOfAccess(\n        expression,\n        /*optionalChain*/\n        false\n      ),\n      /*questionDotToken*/\n      void 0,\n      asNodeArray(typeArguments),\n      parenthesizerRules().parenthesizeExpressionsOfCommaDelimitedList(createNodeArray(argumentsArray))\n    );\n    if (isImportKeyword(node.expression)) {\n      node.transformFlags |= 8388608 /* ContainsDynamicImport */;\n    }\n    return node;\n  }\n  function updateCallExpression(node, expression, typeArguments, argumentsArray) {\n    if (isCallChain(node)) {\n      return updateCallChain(node, expression, node.questionDotToken, typeArguments, argumentsArray);\n    }\n    return node.expression !== expression || node.typeArguments !== typeArguments || node.arguments !== argumentsArray ? update(createCallExpression(expression, typeArguments, argumentsArray), node) : node;\n  }\n  function createCallChain(expression, questionDotToken, typeArguments, argumentsArray) {\n    const node = createBaseCallExpression(\n      parenthesizerRules().parenthesizeLeftSideOfAccess(\n        expression,\n        /*optionalChain*/\n        true\n      ),\n      questionDotToken,\n      asNodeArray(typeArguments),\n      parenthesizerRules().parenthesizeExpressionsOfCommaDelimitedList(createNodeArray(argumentsArray))\n    );\n    node.flags |= 64 /* OptionalChain */;\n    node.transformFlags |= 32 /* ContainsES2020 */;\n    return node;\n  }\n  function updateCallChain(node, expression, questionDotToken, typeArguments, argumentsArray) {\n    Debug.assert(!!(node.flags & 64 /* OptionalChain */), \"Cannot update a CallExpression using updateCallChain. Use updateCall instead.\");\n    return node.expression !== expression || node.questionDotToken !== questionDotToken || node.typeArguments !== typeArguments || node.arguments !== argumentsArray ? update(createCallChain(expression, questionDotToken, typeArguments, argumentsArray), node) : node;\n  }\n  function createNewExpression(expression, typeArguments, argumentsArray) {\n    const node = createBaseDeclaration(215 /* NewExpression */);\n    node.expression = parenthesizerRules().parenthesizeExpressionOfNew(expression);\n    node.typeArguments = asNodeArray(typeArguments);\n    node.arguments = argumentsArray ? parenthesizerRules().parenthesizeExpressionsOfCommaDelimitedList(argumentsArray) : void 0;\n    node.transformFlags |= propagateChildFlags(node.expression) | propagateChildrenFlags(node.typeArguments) | propagateChildrenFlags(node.arguments) | 32 /* ContainsES2020 */;\n    if (node.typeArguments) {\n      node.transformFlags |= 1 /* ContainsTypeScript */;\n    }\n    return node;\n  }\n  function updateNewExpression(node, expression, typeArguments, argumentsArray) {\n    return node.expression !== expression || node.typeArguments !== typeArguments || node.arguments !== argumentsArray ? update(createNewExpression(expression, typeArguments, argumentsArray), node) : node;\n  }\n  function createTaggedTemplateExpression(tag, typeArguments, template) {\n    const node = createBaseNode(216 /* TaggedTemplateExpression */);\n    node.tag = parenthesizerRules().parenthesizeLeftSideOfAccess(\n      tag,\n      /*optionalChain*/\n      false\n    );\n    node.typeArguments = asNodeArray(typeArguments);\n    node.template = template;\n    node.transformFlags |= propagateChildFlags(node.tag) | propagateChildrenFlags(node.typeArguments) | propagateChildFlags(node.template) | 1024 /* ContainsES2015 */;\n    if (node.typeArguments) {\n      node.transformFlags |= 1 /* ContainsTypeScript */;\n    }\n    if (hasInvalidEscape(node.template)) {\n      node.transformFlags |= 128 /* ContainsES2018 */;\n    }\n    return node;\n  }\n  function updateTaggedTemplateExpression(node, tag, typeArguments, template) {\n    return node.tag !== tag || node.typeArguments !== typeArguments || node.template !== template ? update(createTaggedTemplateExpression(tag, typeArguments, template), node) : node;\n  }\n  function createTypeAssertion(type, expression) {\n    const node = createBaseNode(217 /* TypeAssertionExpression */);\n    node.expression = parenthesizerRules().parenthesizeOperandOfPrefixUnary(expression);\n    node.type = type;\n    node.transformFlags |= propagateChildFlags(node.expression) | propagateChildFlags(node.type) | 1 /* ContainsTypeScript */;\n    return node;\n  }\n  function updateTypeAssertion(node, type, expression) {\n    return node.type !== type || node.expression !== expression ? update(createTypeAssertion(type, expression), node) : node;\n  }\n  function createParenthesizedExpression(expression) {\n    const node = createBaseNode(218 /* ParenthesizedExpression */);\n    node.expression = expression;\n    node.transformFlags = propagateChildFlags(node.expression);\n    node.jsDoc = void 0;\n    return node;\n  }\n  function updateParenthesizedExpression(node, expression) {\n    return node.expression !== expression ? update(createParenthesizedExpression(expression), node) : node;\n  }\n  function createFunctionExpression(modifiers, asteriskToken, name, typeParameters, parameters, type, body) {\n    const node = createBaseDeclaration(219 /* FunctionExpression */);\n    node.modifiers = asNodeArray(modifiers);\n    node.asteriskToken = asteriskToken;\n    node.name = asName(name);\n    node.typeParameters = asNodeArray(typeParameters);\n    node.parameters = createNodeArray(parameters);\n    node.type = type;\n    node.body = body;\n    const isAsync = modifiersToFlags(node.modifiers) & 1024 /* Async */;\n    const isGenerator = !!node.asteriskToken;\n    const isAsyncGenerator = isAsync && isGenerator;\n    node.transformFlags = propagateChildrenFlags(node.modifiers) | propagateChildFlags(node.asteriskToken) | propagateNameFlags(node.name) | propagateChildrenFlags(node.typeParameters) | propagateChildrenFlags(node.parameters) | propagateChildFlags(node.type) | propagateChildFlags(node.body) & ~67108864 /* ContainsPossibleTopLevelAwait */ | (isAsyncGenerator ? 128 /* ContainsES2018 */ : isAsync ? 256 /* ContainsES2017 */ : isGenerator ? 2048 /* ContainsGenerator */ : 0 /* None */) | (node.typeParameters || node.type ? 1 /* ContainsTypeScript */ : 0 /* None */) | 4194304 /* ContainsHoistedDeclarationOrCompletion */;\n    node.typeArguments = void 0;\n    node.jsDoc = void 0;\n    node.locals = void 0;\n    node.nextContainer = void 0;\n    node.flowNode = void 0;\n    node.endFlowNode = void 0;\n    node.returnFlowNode = void 0;\n    return node;\n  }\n  function updateFunctionExpression(node, modifiers, asteriskToken, name, typeParameters, parameters, type, body) {\n    return node.name !== name || node.modifiers !== modifiers || node.asteriskToken !== asteriskToken || node.typeParameters !== typeParameters || node.parameters !== parameters || node.type !== type || node.body !== body ? finishUpdateBaseSignatureDeclaration(createFunctionExpression(modifiers, asteriskToken, name, typeParameters, parameters, type, body), node) : node;\n  }\n  function createArrowFunction(modifiers, typeParameters, parameters, type, equalsGreaterThanToken, body) {\n    const node = createBaseDeclaration(220 /* ArrowFunction */);\n    node.modifiers = asNodeArray(modifiers);\n    node.typeParameters = asNodeArray(typeParameters);\n    node.parameters = createNodeArray(parameters);\n    node.type = type;\n    node.equalsGreaterThanToken = equalsGreaterThanToken ?? createToken(39 /* EqualsGreaterThanToken */);\n    node.body = parenthesizerRules().parenthesizeConciseBodyOfArrowFunction(body);\n    const isAsync = modifiersToFlags(node.modifiers) & 1024 /* Async */;\n    node.transformFlags = propagateChildrenFlags(node.modifiers) | propagateChildrenFlags(node.typeParameters) | propagateChildrenFlags(node.parameters) | propagateChildFlags(node.type) | propagateChildFlags(node.equalsGreaterThanToken) | propagateChildFlags(node.body) & ~67108864 /* ContainsPossibleTopLevelAwait */ | (node.typeParameters || node.type ? 1 /* ContainsTypeScript */ : 0 /* None */) | (isAsync ? 256 /* ContainsES2017 */ | 16384 /* ContainsLexicalThis */ : 0 /* None */) | 1024 /* ContainsES2015 */;\n    node.typeArguments = void 0;\n    node.jsDoc = void 0;\n    node.locals = void 0;\n    node.nextContainer = void 0;\n    node.flowNode = void 0;\n    node.endFlowNode = void 0;\n    node.returnFlowNode = void 0;\n    return node;\n  }\n  function updateArrowFunction(node, modifiers, typeParameters, parameters, type, equalsGreaterThanToken, body) {\n    return node.modifiers !== modifiers || node.typeParameters !== typeParameters || node.parameters !== parameters || node.type !== type || node.equalsGreaterThanToken !== equalsGreaterThanToken || node.body !== body ? finishUpdateBaseSignatureDeclaration(createArrowFunction(modifiers, typeParameters, parameters, type, equalsGreaterThanToken, body), node) : node;\n  }\n  function createDeleteExpression(expression) {\n    const node = createBaseNode(221 /* DeleteExpression */);\n    node.expression = parenthesizerRules().parenthesizeOperandOfPrefixUnary(expression);\n    node.transformFlags |= propagateChildFlags(node.expression);\n    return node;\n  }\n  function updateDeleteExpression(node, expression) {\n    return node.expression !== expression ? update(createDeleteExpression(expression), node) : node;\n  }\n  function createTypeOfExpression(expression) {\n    const node = createBaseNode(222 /* TypeOfExpression */);\n    node.expression = parenthesizerRules().parenthesizeOperandOfPrefixUnary(expression);\n    node.transformFlags |= propagateChildFlags(node.expression);\n    return node;\n  }\n  function updateTypeOfExpression(node, expression) {\n    return node.expression !== expression ? update(createTypeOfExpression(expression), node) : node;\n  }\n  function createVoidExpression(expression) {\n    const node = createBaseNode(223 /* VoidExpression */);\n    node.expression = parenthesizerRules().parenthesizeOperandOfPrefixUnary(expression);\n    node.transformFlags |= propagateChildFlags(node.expression);\n    return node;\n  }\n  function updateVoidExpression(node, expression) {\n    return node.expression !== expression ? update(createVoidExpression(expression), node) : node;\n  }\n  function createAwaitExpression(expression) {\n    const node = createBaseNode(224 /* AwaitExpression */);\n    node.expression = parenthesizerRules().parenthesizeOperandOfPrefixUnary(expression);\n    node.transformFlags |= propagateChildFlags(node.expression) | 256 /* ContainsES2017 */ | 128 /* ContainsES2018 */ | 2097152 /* ContainsAwait */;\n    return node;\n  }\n  function updateAwaitExpression(node, expression) {\n    return node.expression !== expression ? update(createAwaitExpression(expression), node) : node;\n  }\n  function createPrefixUnaryExpression(operator, operand) {\n    const node = createBaseNode(225 /* PrefixUnaryExpression */);\n    node.operator = operator;\n    node.operand = parenthesizerRules().parenthesizeOperandOfPrefixUnary(operand);\n    node.transformFlags |= propagateChildFlags(node.operand);\n    if ((operator === 46 /* PlusPlusToken */ || operator === 47 /* MinusMinusToken */) && isIdentifier(node.operand) && !isGeneratedIdentifier(node.operand) && !isLocalName(node.operand)) {\n      node.transformFlags |= 268435456 /* ContainsUpdateExpressionForIdentifier */;\n    }\n    return node;\n  }\n  function updatePrefixUnaryExpression(node, operand) {\n    return node.operand !== operand ? update(createPrefixUnaryExpression(node.operator, operand), node) : node;\n  }\n  function createPostfixUnaryExpression(operand, operator) {\n    const node = createBaseNode(226 /* PostfixUnaryExpression */);\n    node.operator = operator;\n    node.operand = parenthesizerRules().parenthesizeOperandOfPostfixUnary(operand);\n    node.transformFlags |= propagateChildFlags(node.operand);\n    if (isIdentifier(node.operand) && !isGeneratedIdentifier(node.operand) && !isLocalName(node.operand)) {\n      node.transformFlags |= 268435456 /* ContainsUpdateExpressionForIdentifier */;\n    }\n    return node;\n  }\n  function updatePostfixUnaryExpression(node, operand) {\n    return node.operand !== operand ? update(createPostfixUnaryExpression(operand, node.operator), node) : node;\n  }\n  function createBinaryExpression(left, operator, right) {\n    const node = createBaseDeclaration(227 /* BinaryExpression */);\n    const operatorToken = asToken(operator);\n    const operatorKind = operatorToken.kind;\n    node.left = parenthesizerRules().parenthesizeLeftSideOfBinary(operatorKind, left);\n    node.operatorToken = operatorToken;\n    node.right = parenthesizerRules().parenthesizeRightSideOfBinary(operatorKind, node.left, right);\n    node.transformFlags |= propagateChildFlags(node.left) | propagateChildFlags(node.operatorToken) | propagateChildFlags(node.right);\n    if (operatorKind === 61 /* QuestionQuestionToken */) {\n      node.transformFlags |= 32 /* ContainsES2020 */;\n    } else if (operatorKind === 64 /* EqualsToken */) {\n      if (isObjectLiteralExpression(node.left)) {\n        node.transformFlags |= 1024 /* ContainsES2015 */ | 128 /* ContainsES2018 */ | 4096 /* ContainsDestructuringAssignment */ | propagateAssignmentPatternFlags(node.left);\n      } else if (isArrayLiteralExpression(node.left)) {\n        node.transformFlags |= 1024 /* ContainsES2015 */ | 4096 /* ContainsDestructuringAssignment */ | propagateAssignmentPatternFlags(node.left);\n      }\n    } else if (operatorKind === 43 /* AsteriskAsteriskToken */ || operatorKind === 68 /* AsteriskAsteriskEqualsToken */) {\n      node.transformFlags |= 512 /* ContainsES2016 */;\n    } else if (isLogicalOrCoalescingAssignmentOperator(operatorKind)) {\n      node.transformFlags |= 16 /* ContainsES2021 */;\n    }\n    if (operatorKind === 103 /* InKeyword */ && isPrivateIdentifier(node.left)) {\n      node.transformFlags |= 536870912 /* ContainsPrivateIdentifierInExpression */;\n    }\n    node.jsDoc = void 0;\n    return node;\n  }\n  function propagateAssignmentPatternFlags(node) {\n    return containsObjectRestOrSpread(node) ? 65536 /* ContainsObjectRestOrSpread */ : 0 /* None */;\n  }\n  function updateBinaryExpression(node, left, operator, right) {\n    return node.left !== left || node.operatorToken !== operator || node.right !== right ? update(createBinaryExpression(left, operator, right), node) : node;\n  }\n  function createConditionalExpression(condition, questionToken, whenTrue, colonToken, whenFalse) {\n    const node = createBaseNode(228 /* ConditionalExpression */);\n    node.condition = parenthesizerRules().parenthesizeConditionOfConditionalExpression(condition);\n    node.questionToken = questionToken ?? createToken(58 /* QuestionToken */);\n    node.whenTrue = parenthesizerRules().parenthesizeBranchOfConditionalExpression(whenTrue);\n    node.colonToken = colonToken ?? createToken(59 /* ColonToken */);\n    node.whenFalse = parenthesizerRules().parenthesizeBranchOfConditionalExpression(whenFalse);\n    node.transformFlags |= propagateChildFlags(node.condition) | propagateChildFlags(node.questionToken) | propagateChildFlags(node.whenTrue) | propagateChildFlags(node.colonToken) | propagateChildFlags(node.whenFalse);\n    node.flowNodeWhenFalse = void 0;\n    node.flowNodeWhenTrue = void 0;\n    return node;\n  }\n  function updateConditionalExpression(node, condition, questionToken, whenTrue, colonToken, whenFalse) {\n    return node.condition !== condition || node.questionToken !== questionToken || node.whenTrue !== whenTrue || node.colonToken !== colonToken || node.whenFalse !== whenFalse ? update(createConditionalExpression(condition, questionToken, whenTrue, colonToken, whenFalse), node) : node;\n  }\n  function createTemplateExpression(head, templateSpans) {\n    const node = createBaseNode(229 /* TemplateExpression */);\n    node.head = head;\n    node.templateSpans = createNodeArray(templateSpans);\n    node.transformFlags |= propagateChildFlags(node.head) | propagateChildrenFlags(node.templateSpans) | 1024 /* ContainsES2015 */;\n    return node;\n  }\n  function updateTemplateExpression(node, head, templateSpans) {\n    return node.head !== head || node.templateSpans !== templateSpans ? update(createTemplateExpression(head, templateSpans), node) : node;\n  }\n  function checkTemplateLiteralLikeNode(kind, text, rawText, templateFlags = 0 /* None */) {\n    Debug.assert(!(templateFlags & ~7176 /* TemplateLiteralLikeFlags */), \"Unsupported template flags.\");\n    let cooked = void 0;\n    if (rawText !== void 0 && rawText !== text) {\n      cooked = getCookedText(kind, rawText);\n      if (typeof cooked === \"object\") {\n        return Debug.fail(\"Invalid raw text\");\n      }\n    }\n    if (text === void 0) {\n      if (cooked === void 0) {\n        return Debug.fail(\"Arguments 'text' and 'rawText' may not both be undefined.\");\n      }\n      text = cooked;\n    } else if (cooked !== void 0) {\n      Debug.assert(text === cooked, \"Expected argument 'text' to be the normalized (i.e. 'cooked') version of argument 'rawText'.\");\n    }\n    return text;\n  }\n  function getTransformFlagsOfTemplateLiteralLike(templateFlags) {\n    let transformFlags = 1024 /* ContainsES2015 */;\n    if (templateFlags) {\n      transformFlags |= 128 /* ContainsES2018 */;\n    }\n    return transformFlags;\n  }\n  function createTemplateLiteralLikeToken(kind, text, rawText, templateFlags) {\n    const node = createBaseToken(kind);\n    node.text = text;\n    node.rawText = rawText;\n    node.templateFlags = templateFlags & 7176 /* TemplateLiteralLikeFlags */;\n    node.transformFlags = getTransformFlagsOfTemplateLiteralLike(node.templateFlags);\n    return node;\n  }\n  function createTemplateLiteralLikeDeclaration(kind, text, rawText, templateFlags) {\n    const node = createBaseDeclaration(kind);\n    node.text = text;\n    node.rawText = rawText;\n    node.templateFlags = templateFlags & 7176 /* TemplateLiteralLikeFlags */;\n    node.transformFlags = getTransformFlagsOfTemplateLiteralLike(node.templateFlags);\n    return node;\n  }\n  function createTemplateLiteralLikeNode(kind, text, rawText, templateFlags) {\n    if (kind === 15 /* NoSubstitutionTemplateLiteral */) {\n      return createTemplateLiteralLikeDeclaration(kind, text, rawText, templateFlags);\n    }\n    return createTemplateLiteralLikeToken(kind, text, rawText, templateFlags);\n  }\n  function createTemplateHead(text, rawText, templateFlags) {\n    text = checkTemplateLiteralLikeNode(16 /* TemplateHead */, text, rawText, templateFlags);\n    return createTemplateLiteralLikeNode(16 /* TemplateHead */, text, rawText, templateFlags);\n  }\n  function createTemplateMiddle(text, rawText, templateFlags) {\n    text = checkTemplateLiteralLikeNode(16 /* TemplateHead */, text, rawText, templateFlags);\n    return createTemplateLiteralLikeNode(17 /* TemplateMiddle */, text, rawText, templateFlags);\n  }\n  function createTemplateTail(text, rawText, templateFlags) {\n    text = checkTemplateLiteralLikeNode(16 /* TemplateHead */, text, rawText, templateFlags);\n    return createTemplateLiteralLikeNode(18 /* TemplateTail */, text, rawText, templateFlags);\n  }\n  function createNoSubstitutionTemplateLiteral(text, rawText, templateFlags) {\n    text = checkTemplateLiteralLikeNode(16 /* TemplateHead */, text, rawText, templateFlags);\n    return createTemplateLiteralLikeDeclaration(15 /* NoSubstitutionTemplateLiteral */, text, rawText, templateFlags);\n  }\n  function createYieldExpression(asteriskToken, expression) {\n    Debug.assert(!asteriskToken || !!expression, \"A `YieldExpression` with an asteriskToken must have an expression.\");\n    const node = createBaseNode(230 /* YieldExpression */);\n    node.expression = expression && parenthesizerRules().parenthesizeExpressionForDisallowedComma(expression);\n    node.asteriskToken = asteriskToken;\n    node.transformFlags |= propagateChildFlags(node.expression) | propagateChildFlags(node.asteriskToken) | 1024 /* ContainsES2015 */ | 128 /* ContainsES2018 */ | 1048576 /* ContainsYield */;\n    return node;\n  }\n  function updateYieldExpression(node, asteriskToken, expression) {\n    return node.expression !== expression || node.asteriskToken !== asteriskToken ? update(createYieldExpression(asteriskToken, expression), node) : node;\n  }\n  function createSpreadElement(expression) {\n    const node = createBaseNode(231 /* SpreadElement */);\n    node.expression = parenthesizerRules().parenthesizeExpressionForDisallowedComma(expression);\n    node.transformFlags |= propagateChildFlags(node.expression) | 1024 /* ContainsES2015 */ | 32768 /* ContainsRestOrSpread */;\n    return node;\n  }\n  function updateSpreadElement(node, expression) {\n    return node.expression !== expression ? update(createSpreadElement(expression), node) : node;\n  }\n  function createClassExpression(modifiers, name, typeParameters, heritageClauses, members) {\n    const node = createBaseDeclaration(232 /* ClassExpression */);\n    node.modifiers = asNodeArray(modifiers);\n    node.name = asName(name);\n    node.typeParameters = asNodeArray(typeParameters);\n    node.heritageClauses = asNodeArray(heritageClauses);\n    node.members = createNodeArray(members);\n    node.transformFlags |= propagateChildrenFlags(node.modifiers) | propagateNameFlags(node.name) | propagateChildrenFlags(node.typeParameters) | propagateChildrenFlags(node.heritageClauses) | propagateChildrenFlags(node.members) | (node.typeParameters ? 1 /* ContainsTypeScript */ : 0 /* None */) | 1024 /* ContainsES2015 */;\n    node.jsDoc = void 0;\n    return node;\n  }\n  function updateClassExpression(node, modifiers, name, typeParameters, heritageClauses, members) {\n    return node.modifiers !== modifiers || node.name !== name || node.typeParameters !== typeParameters || node.heritageClauses !== heritageClauses || node.members !== members ? update(createClassExpression(modifiers, name, typeParameters, heritageClauses, members), node) : node;\n  }\n  function createOmittedExpression() {\n    return createBaseNode(233 /* OmittedExpression */);\n  }\n  function createExpressionWithTypeArguments(expression, typeArguments) {\n    const node = createBaseNode(234 /* ExpressionWithTypeArguments */);\n    node.expression = parenthesizerRules().parenthesizeLeftSideOfAccess(\n      expression,\n      /*optionalChain*/\n      false\n    );\n    node.typeArguments = typeArguments && parenthesizerRules().parenthesizeTypeArguments(typeArguments);\n    node.transformFlags |= propagateChildFlags(node.expression) | propagateChildrenFlags(node.typeArguments) | 1024 /* ContainsES2015 */;\n    return node;\n  }\n  function updateExpressionWithTypeArguments(node, expression, typeArguments) {\n    return node.expression !== expression || node.typeArguments !== typeArguments ? update(createExpressionWithTypeArguments(expression, typeArguments), node) : node;\n  }\n  function createAsExpression(expression, type) {\n    const node = createBaseNode(235 /* AsExpression */);\n    node.expression = expression;\n    node.type = type;\n    node.transformFlags |= propagateChildFlags(node.expression) | propagateChildFlags(node.type) | 1 /* ContainsTypeScript */;\n    return node;\n  }\n  function updateAsExpression(node, expression, type) {\n    return node.expression !== expression || node.type !== type ? update(createAsExpression(expression, type), node) : node;\n  }\n  function createNonNullExpression(expression) {\n    const node = createBaseNode(236 /* NonNullExpression */);\n    node.expression = parenthesizerRules().parenthesizeLeftSideOfAccess(\n      expression,\n      /*optionalChain*/\n      false\n    );\n    node.transformFlags |= propagateChildFlags(node.expression) | 1 /* ContainsTypeScript */;\n    return node;\n  }\n  function updateNonNullExpression(node, expression) {\n    if (isNonNullChain(node)) {\n      return updateNonNullChain(node, expression);\n    }\n    return node.expression !== expression ? update(createNonNullExpression(expression), node) : node;\n  }\n  function createSatisfiesExpression(expression, type) {\n    const node = createBaseNode(239 /* SatisfiesExpression */);\n    node.expression = expression;\n    node.type = type;\n    node.transformFlags |= propagateChildFlags(node.expression) | propagateChildFlags(node.type) | 1 /* ContainsTypeScript */;\n    return node;\n  }\n  function updateSatisfiesExpression(node, expression, type) {\n    return node.expression !== expression || node.type !== type ? update(createSatisfiesExpression(expression, type), node) : node;\n  }\n  function createNonNullChain(expression) {\n    const node = createBaseNode(236 /* NonNullExpression */);\n    node.flags |= 64 /* OptionalChain */;\n    node.expression = parenthesizerRules().parenthesizeLeftSideOfAccess(\n      expression,\n      /*optionalChain*/\n      true\n    );\n    node.transformFlags |= propagateChildFlags(node.expression) | 1 /* ContainsTypeScript */;\n    return node;\n  }\n  function updateNonNullChain(node, expression) {\n    Debug.assert(!!(node.flags & 64 /* OptionalChain */), \"Cannot update a NonNullExpression using updateNonNullChain. Use updateNonNullExpression instead.\");\n    return node.expression !== expression ? update(createNonNullChain(expression), node) : node;\n  }\n  function createMetaProperty(keywordToken, name) {\n    const node = createBaseNode(237 /* MetaProperty */);\n    node.keywordToken = keywordToken;\n    node.name = name;\n    node.transformFlags |= propagateChildFlags(node.name);\n    switch (keywordToken) {\n      case 105 /* NewKeyword */:\n        node.transformFlags |= 1024 /* ContainsES2015 */;\n        break;\n      case 102 /* ImportKeyword */:\n        node.transformFlags |= 32 /* ContainsES2020 */;\n        break;\n      default:\n        return Debug.assertNever(keywordToken);\n    }\n    node.flowNode = void 0;\n    return node;\n  }\n  function updateMetaProperty(node, name) {\n    return node.name !== name ? update(createMetaProperty(node.keywordToken, name), node) : node;\n  }\n  function createTemplateSpan(expression, literal) {\n    const node = createBaseNode(240 /* TemplateSpan */);\n    node.expression = expression;\n    node.literal = literal;\n    node.transformFlags |= propagateChildFlags(node.expression) | propagateChildFlags(node.literal) | 1024 /* ContainsES2015 */;\n    return node;\n  }\n  function updateTemplateSpan(node, expression, literal) {\n    return node.expression !== expression || node.literal !== literal ? update(createTemplateSpan(expression, literal), node) : node;\n  }\n  function createSemicolonClassElement() {\n    const node = createBaseNode(241 /* SemicolonClassElement */);\n    node.transformFlags |= 1024 /* ContainsES2015 */;\n    return node;\n  }\n  function createBlock(statements, multiLine) {\n    const node = createBaseNode(242 /* Block */);\n    node.statements = createNodeArray(statements);\n    node.multiLine = multiLine;\n    node.transformFlags |= propagateChildrenFlags(node.statements);\n    node.jsDoc = void 0;\n    node.locals = void 0;\n    node.nextContainer = void 0;\n    return node;\n  }\n  function updateBlock(node, statements) {\n    return node.statements !== statements ? update(createBlock(statements, node.multiLine), node) : node;\n  }\n  function createVariableStatement(modifiers, declarationList) {\n    const node = createBaseNode(244 /* VariableStatement */);\n    node.modifiers = asNodeArray(modifiers);\n    node.declarationList = isArray(declarationList) ? createVariableDeclarationList(declarationList) : declarationList;\n    node.transformFlags |= propagateChildrenFlags(node.modifiers) | propagateChildFlags(node.declarationList);\n    if (modifiersToFlags(node.modifiers) & 128 /* Ambient */) {\n      node.transformFlags = 1 /* ContainsTypeScript */;\n    }\n    node.jsDoc = void 0;\n    node.flowNode = void 0;\n    return node;\n  }\n  function updateVariableStatement(node, modifiers, declarationList) {\n    return node.modifiers !== modifiers || node.declarationList !== declarationList ? update(createVariableStatement(modifiers, declarationList), node) : node;\n  }\n  function createEmptyStatement() {\n    const node = createBaseNode(243 /* EmptyStatement */);\n    node.jsDoc = void 0;\n    return node;\n  }\n  function createExpressionStatement(expression) {\n    const node = createBaseNode(245 /* ExpressionStatement */);\n    node.expression = parenthesizerRules().parenthesizeExpressionOfExpressionStatement(expression);\n    node.transformFlags |= propagateChildFlags(node.expression);\n    node.jsDoc = void 0;\n    node.flowNode = void 0;\n    return node;\n  }\n  function updateExpressionStatement(node, expression) {\n    return node.expression !== expression ? update(createExpressionStatement(expression), node) : node;\n  }\n  function createIfStatement(expression, thenStatement, elseStatement) {\n    const node = createBaseNode(246 /* IfStatement */);\n    node.expression = expression;\n    node.thenStatement = asEmbeddedStatement(thenStatement);\n    node.elseStatement = asEmbeddedStatement(elseStatement);\n    node.transformFlags |= propagateChildFlags(node.expression) | propagateChildFlags(node.thenStatement) | propagateChildFlags(node.elseStatement);\n    node.jsDoc = void 0;\n    node.flowNode = void 0;\n    return node;\n  }\n  function updateIfStatement(node, expression, thenStatement, elseStatement) {\n    return node.expression !== expression || node.thenStatement !== thenStatement || node.elseStatement !== elseStatement ? update(createIfStatement(expression, thenStatement, elseStatement), node) : node;\n  }\n  function createDoStatement(statement, expression) {\n    const node = createBaseNode(247 /* DoStatement */);\n    node.statement = asEmbeddedStatement(statement);\n    node.expression = expression;\n    node.transformFlags |= propagateChildFlags(node.statement) | propagateChildFlags(node.expression);\n    node.jsDoc = void 0;\n    node.flowNode = void 0;\n    return node;\n  }\n  function updateDoStatement(node, statement, expression) {\n    return node.statement !== statement || node.expression !== expression ? update(createDoStatement(statement, expression), node) : node;\n  }\n  function createWhileStatement(expression, statement) {\n    const node = createBaseNode(248 /* WhileStatement */);\n    node.expression = expression;\n    node.statement = asEmbeddedStatement(statement);\n    node.transformFlags |= propagateChildFlags(node.expression) | propagateChildFlags(node.statement);\n    node.jsDoc = void 0;\n    node.flowNode = void 0;\n    return node;\n  }\n  function updateWhileStatement(node, expression, statement) {\n    return node.expression !== expression || node.statement !== statement ? update(createWhileStatement(expression, statement), node) : node;\n  }\n  function createForStatement(initializer, condition, incrementor, statement) {\n    const node = createBaseNode(249 /* ForStatement */);\n    node.initializer = initializer;\n    node.condition = condition;\n    node.incrementor = incrementor;\n    node.statement = asEmbeddedStatement(statement);\n    node.transformFlags |= propagateChildFlags(node.initializer) | propagateChildFlags(node.condition) | propagateChildFlags(node.incrementor) | propagateChildFlags(node.statement);\n    node.jsDoc = void 0;\n    node.locals = void 0;\n    node.nextContainer = void 0;\n    node.flowNode = void 0;\n    return node;\n  }\n  function updateForStatement(node, initializer, condition, incrementor, statement) {\n    return node.initializer !== initializer || node.condition !== condition || node.incrementor !== incrementor || node.statement !== statement ? update(createForStatement(initializer, condition, incrementor, statement), node) : node;\n  }\n  function createForInStatement(initializer, expression, statement) {\n    const node = createBaseNode(250 /* ForInStatement */);\n    node.initializer = initializer;\n    node.expression = expression;\n    node.statement = asEmbeddedStatement(statement);\n    node.transformFlags |= propagateChildFlags(node.initializer) | propagateChildFlags(node.expression) | propagateChildFlags(node.statement);\n    node.jsDoc = void 0;\n    node.locals = void 0;\n    node.nextContainer = void 0;\n    node.flowNode = void 0;\n    return node;\n  }\n  function updateForInStatement(node, initializer, expression, statement) {\n    return node.initializer !== initializer || node.expression !== expression || node.statement !== statement ? update(createForInStatement(initializer, expression, statement), node) : node;\n  }\n  function createForOfStatement(awaitModifier, initializer, expression, statement) {\n    const node = createBaseNode(251 /* ForOfStatement */);\n    node.awaitModifier = awaitModifier;\n    node.initializer = initializer;\n    node.expression = parenthesizerRules().parenthesizeExpressionForDisallowedComma(expression);\n    node.statement = asEmbeddedStatement(statement);\n    node.transformFlags |= propagateChildFlags(node.awaitModifier) | propagateChildFlags(node.initializer) | propagateChildFlags(node.expression) | propagateChildFlags(node.statement) | 1024 /* ContainsES2015 */;\n    if (awaitModifier) node.transformFlags |= 128 /* ContainsES2018 */;\n    node.jsDoc = void 0;\n    node.locals = void 0;\n    node.nextContainer = void 0;\n    node.flowNode = void 0;\n    return node;\n  }\n  function updateForOfStatement(node, awaitModifier, initializer, expression, statement) {\n    return node.awaitModifier !== awaitModifier || node.initializer !== initializer || node.expression !== expression || node.statement !== statement ? update(createForOfStatement(awaitModifier, initializer, expression, statement), node) : node;\n  }\n  function createContinueStatement(label) {\n    const node = createBaseNode(252 /* ContinueStatement */);\n    node.label = asName(label);\n    node.transformFlags |= propagateChildFlags(node.label) | 4194304 /* ContainsHoistedDeclarationOrCompletion */;\n    node.jsDoc = void 0;\n    node.flowNode = void 0;\n    return node;\n  }\n  function updateContinueStatement(node, label) {\n    return node.label !== label ? update(createContinueStatement(label), node) : node;\n  }\n  function createBreakStatement(label) {\n    const node = createBaseNode(253 /* BreakStatement */);\n    node.label = asName(label);\n    node.transformFlags |= propagateChildFlags(node.label) | 4194304 /* ContainsHoistedDeclarationOrCompletion */;\n    node.jsDoc = void 0;\n    node.flowNode = void 0;\n    return node;\n  }\n  function updateBreakStatement(node, label) {\n    return node.label !== label ? update(createBreakStatement(label), node) : node;\n  }\n  function createReturnStatement(expression) {\n    const node = createBaseNode(254 /* ReturnStatement */);\n    node.expression = expression;\n    node.transformFlags |= propagateChildFlags(node.expression) | 128 /* ContainsES2018 */ | 4194304 /* ContainsHoistedDeclarationOrCompletion */;\n    node.jsDoc = void 0;\n    node.flowNode = void 0;\n    return node;\n  }\n  function updateReturnStatement(node, expression) {\n    return node.expression !== expression ? update(createReturnStatement(expression), node) : node;\n  }\n  function createWithStatement(expression, statement) {\n    const node = createBaseNode(255 /* WithStatement */);\n    node.expression = expression;\n    node.statement = asEmbeddedStatement(statement);\n    node.transformFlags |= propagateChildFlags(node.expression) | propagateChildFlags(node.statement);\n    node.jsDoc = void 0;\n    node.flowNode = void 0;\n    return node;\n  }\n  function updateWithStatement(node, expression, statement) {\n    return node.expression !== expression || node.statement !== statement ? update(createWithStatement(expression, statement), node) : node;\n  }\n  function createSwitchStatement(expression, caseBlock) {\n    const node = createBaseNode(256 /* SwitchStatement */);\n    node.expression = parenthesizerRules().parenthesizeExpressionForDisallowedComma(expression);\n    node.caseBlock = caseBlock;\n    node.transformFlags |= propagateChildFlags(node.expression) | propagateChildFlags(node.caseBlock);\n    node.jsDoc = void 0;\n    node.flowNode = void 0;\n    node.possiblyExhaustive = false;\n    return node;\n  }\n  function updateSwitchStatement(node, expression, caseBlock) {\n    return node.expression !== expression || node.caseBlock !== caseBlock ? update(createSwitchStatement(expression, caseBlock), node) : node;\n  }\n  function createLabeledStatement(label, statement) {\n    const node = createBaseNode(257 /* LabeledStatement */);\n    node.label = asName(label);\n    node.statement = asEmbeddedStatement(statement);\n    node.transformFlags |= propagateChildFlags(node.label) | propagateChildFlags(node.statement);\n    node.jsDoc = void 0;\n    node.flowNode = void 0;\n    return node;\n  }\n  function updateLabeledStatement(node, label, statement) {\n    return node.label !== label || node.statement !== statement ? update(createLabeledStatement(label, statement), node) : node;\n  }\n  function createThrowStatement(expression) {\n    const node = createBaseNode(258 /* ThrowStatement */);\n    node.expression = expression;\n    node.transformFlags |= propagateChildFlags(node.expression);\n    node.jsDoc = void 0;\n    node.flowNode = void 0;\n    return node;\n  }\n  function updateThrowStatement(node, expression) {\n    return node.expression !== expression ? update(createThrowStatement(expression), node) : node;\n  }\n  function createTryStatement(tryBlock, catchClause, finallyBlock) {\n    const node = createBaseNode(259 /* TryStatement */);\n    node.tryBlock = tryBlock;\n    node.catchClause = catchClause;\n    node.finallyBlock = finallyBlock;\n    node.transformFlags |= propagateChildFlags(node.tryBlock) | propagateChildFlags(node.catchClause) | propagateChildFlags(node.finallyBlock);\n    node.jsDoc = void 0;\n    node.flowNode = void 0;\n    return node;\n  }\n  function updateTryStatement(node, tryBlock, catchClause, finallyBlock) {\n    return node.tryBlock !== tryBlock || node.catchClause !== catchClause || node.finallyBlock !== finallyBlock ? update(createTryStatement(tryBlock, catchClause, finallyBlock), node) : node;\n  }\n  function createDebuggerStatement() {\n    const node = createBaseNode(260 /* DebuggerStatement */);\n    node.jsDoc = void 0;\n    node.flowNode = void 0;\n    return node;\n  }\n  function createVariableDeclaration(name, exclamationToken, type, initializer) {\n    const node = createBaseDeclaration(261 /* VariableDeclaration */);\n    node.name = asName(name);\n    node.exclamationToken = exclamationToken;\n    node.type = type;\n    node.initializer = asInitializer(initializer);\n    node.transformFlags |= propagateNameFlags(node.name) | propagateChildFlags(node.initializer) | (node.exclamationToken ?? node.type ? 1 /* ContainsTypeScript */ : 0 /* None */);\n    node.jsDoc = void 0;\n    return node;\n  }\n  function updateVariableDeclaration(node, name, exclamationToken, type, initializer) {\n    return node.name !== name || node.type !== type || node.exclamationToken !== exclamationToken || node.initializer !== initializer ? update(createVariableDeclaration(name, exclamationToken, type, initializer), node) : node;\n  }\n  function createVariableDeclarationList(declarations, flags2 = 0 /* None */) {\n    const node = createBaseNode(262 /* VariableDeclarationList */);\n    node.flags |= flags2 & 7 /* BlockScoped */;\n    node.declarations = createNodeArray(declarations);\n    node.transformFlags |= propagateChildrenFlags(node.declarations) | 4194304 /* ContainsHoistedDeclarationOrCompletion */;\n    if (flags2 & 7 /* BlockScoped */) {\n      node.transformFlags |= 1024 /* ContainsES2015 */ | 262144 /* ContainsBlockScopedBinding */;\n    }\n    if (flags2 & 4 /* Using */) {\n      node.transformFlags |= 4 /* ContainsESNext */;\n    }\n    return node;\n  }\n  function updateVariableDeclarationList(node, declarations) {\n    return node.declarations !== declarations ? update(createVariableDeclarationList(declarations, node.flags), node) : node;\n  }\n  function createFunctionDeclaration(modifiers, asteriskToken, name, typeParameters, parameters, type, body) {\n    const node = createBaseDeclaration(263 /* FunctionDeclaration */);\n    node.modifiers = asNodeArray(modifiers);\n    node.asteriskToken = asteriskToken;\n    node.name = asName(name);\n    node.typeParameters = asNodeArray(typeParameters);\n    node.parameters = createNodeArray(parameters);\n    node.type = type;\n    node.body = body;\n    if (!node.body || modifiersToFlags(node.modifiers) & 128 /* Ambient */) {\n      node.transformFlags = 1 /* ContainsTypeScript */;\n    } else {\n      const isAsync = modifiersToFlags(node.modifiers) & 1024 /* Async */;\n      const isGenerator = !!node.asteriskToken;\n      const isAsyncGenerator = isAsync && isGenerator;\n      node.transformFlags = propagateChildrenFlags(node.modifiers) | propagateChildFlags(node.asteriskToken) | propagateNameFlags(node.name) | propagateChildrenFlags(node.typeParameters) | propagateChildrenFlags(node.parameters) | propagateChildFlags(node.type) | propagateChildFlags(node.body) & ~67108864 /* ContainsPossibleTopLevelAwait */ | (isAsyncGenerator ? 128 /* ContainsES2018 */ : isAsync ? 256 /* ContainsES2017 */ : isGenerator ? 2048 /* ContainsGenerator */ : 0 /* None */) | (node.typeParameters || node.type ? 1 /* ContainsTypeScript */ : 0 /* None */) | 4194304 /* ContainsHoistedDeclarationOrCompletion */;\n    }\n    node.typeArguments = void 0;\n    node.jsDoc = void 0;\n    node.locals = void 0;\n    node.nextContainer = void 0;\n    node.endFlowNode = void 0;\n    node.returnFlowNode = void 0;\n    return node;\n  }\n  function updateFunctionDeclaration(node, modifiers, asteriskToken, name, typeParameters, parameters, type, body) {\n    return node.modifiers !== modifiers || node.asteriskToken !== asteriskToken || node.name !== name || node.typeParameters !== typeParameters || node.parameters !== parameters || node.type !== type || node.body !== body ? finishUpdateFunctionDeclaration(createFunctionDeclaration(modifiers, asteriskToken, name, typeParameters, parameters, type, body), node) : node;\n  }\n  function finishUpdateFunctionDeclaration(updated, original) {\n    if (updated !== original) {\n      if (updated.modifiers === original.modifiers) {\n        updated.modifiers = original.modifiers;\n      }\n    }\n    return finishUpdateBaseSignatureDeclaration(updated, original);\n  }\n  function createClassDeclaration(modifiers, name, typeParameters, heritageClauses, members) {\n    const node = createBaseDeclaration(264 /* ClassDeclaration */);\n    node.modifiers = asNodeArray(modifiers);\n    node.name = asName(name);\n    node.typeParameters = asNodeArray(typeParameters);\n    node.heritageClauses = asNodeArray(heritageClauses);\n    node.members = createNodeArray(members);\n    if (modifiersToFlags(node.modifiers) & 128 /* Ambient */) {\n      node.transformFlags = 1 /* ContainsTypeScript */;\n    } else {\n      node.transformFlags |= propagateChildrenFlags(node.modifiers) | propagateNameFlags(node.name) | propagateChildrenFlags(node.typeParameters) | propagateChildrenFlags(node.heritageClauses) | propagateChildrenFlags(node.members) | (node.typeParameters ? 1 /* ContainsTypeScript */ : 0 /* None */) | 1024 /* ContainsES2015 */;\n      if (node.transformFlags & 8192 /* ContainsTypeScriptClassSyntax */) {\n        node.transformFlags |= 1 /* ContainsTypeScript */;\n      }\n    }\n    node.jsDoc = void 0;\n    return node;\n  }\n  function updateClassDeclaration(node, modifiers, name, typeParameters, heritageClauses, members) {\n    return node.modifiers !== modifiers || node.name !== name || node.typeParameters !== typeParameters || node.heritageClauses !== heritageClauses || node.members !== members ? update(createClassDeclaration(modifiers, name, typeParameters, heritageClauses, members), node) : node;\n  }\n  function createInterfaceDeclaration(modifiers, name, typeParameters, heritageClauses, members) {\n    const node = createBaseDeclaration(265 /* InterfaceDeclaration */);\n    node.modifiers = asNodeArray(modifiers);\n    node.name = asName(name);\n    node.typeParameters = asNodeArray(typeParameters);\n    node.heritageClauses = asNodeArray(heritageClauses);\n    node.members = createNodeArray(members);\n    node.transformFlags = 1 /* ContainsTypeScript */;\n    node.jsDoc = void 0;\n    return node;\n  }\n  function updateInterfaceDeclaration(node, modifiers, name, typeParameters, heritageClauses, members) {\n    return node.modifiers !== modifiers || node.name !== name || node.typeParameters !== typeParameters || node.heritageClauses !== heritageClauses || node.members !== members ? update(createInterfaceDeclaration(modifiers, name, typeParameters, heritageClauses, members), node) : node;\n  }\n  function createTypeAliasDeclaration(modifiers, name, typeParameters, type) {\n    const node = createBaseDeclaration(266 /* TypeAliasDeclaration */);\n    node.modifiers = asNodeArray(modifiers);\n    node.name = asName(name);\n    node.typeParameters = asNodeArray(typeParameters);\n    node.type = type;\n    node.transformFlags = 1 /* ContainsTypeScript */;\n    node.jsDoc = void 0;\n    node.locals = void 0;\n    node.nextContainer = void 0;\n    return node;\n  }\n  function updateTypeAliasDeclaration(node, modifiers, name, typeParameters, type) {\n    return node.modifiers !== modifiers || node.name !== name || node.typeParameters !== typeParameters || node.type !== type ? update(createTypeAliasDeclaration(modifiers, name, typeParameters, type), node) : node;\n  }\n  function createEnumDeclaration(modifiers, name, members) {\n    const node = createBaseDeclaration(267 /* EnumDeclaration */);\n    node.modifiers = asNodeArray(modifiers);\n    node.name = asName(name);\n    node.members = createNodeArray(members);\n    node.transformFlags |= propagateChildrenFlags(node.modifiers) | propagateChildFlags(node.name) | propagateChildrenFlags(node.members) | 1 /* ContainsTypeScript */;\n    node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */;\n    node.jsDoc = void 0;\n    return node;\n  }\n  function updateEnumDeclaration(node, modifiers, name, members) {\n    return node.modifiers !== modifiers || node.name !== name || node.members !== members ? update(createEnumDeclaration(modifiers, name, members), node) : node;\n  }\n  function createModuleDeclaration(modifiers, name, body, flags2 = 0 /* None */) {\n    const node = createBaseDeclaration(268 /* ModuleDeclaration */);\n    node.modifiers = asNodeArray(modifiers);\n    node.flags |= flags2 & (32 /* Namespace */ | 8 /* NestedNamespace */ | 2048 /* GlobalAugmentation */);\n    node.name = name;\n    node.body = body;\n    if (modifiersToFlags(node.modifiers) & 128 /* Ambient */) {\n      node.transformFlags = 1 /* ContainsTypeScript */;\n    } else {\n      node.transformFlags |= propagateChildrenFlags(node.modifiers) | propagateChildFlags(node.name) | propagateChildFlags(node.body) | 1 /* ContainsTypeScript */;\n    }\n    node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */;\n    node.jsDoc = void 0;\n    node.locals = void 0;\n    node.nextContainer = void 0;\n    return node;\n  }\n  function updateModuleDeclaration(node, modifiers, name, body) {\n    return node.modifiers !== modifiers || node.name !== name || node.body !== body ? update(createModuleDeclaration(modifiers, name, body, node.flags), node) : node;\n  }\n  function createModuleBlock(statements) {\n    const node = createBaseNode(269 /* ModuleBlock */);\n    node.statements = createNodeArray(statements);\n    node.transformFlags |= propagateChildrenFlags(node.statements);\n    node.jsDoc = void 0;\n    return node;\n  }\n  function updateModuleBlock(node, statements) {\n    return node.statements !== statements ? update(createModuleBlock(statements), node) : node;\n  }\n  function createCaseBlock(clauses) {\n    const node = createBaseNode(270 /* CaseBlock */);\n    node.clauses = createNodeArray(clauses);\n    node.transformFlags |= propagateChildrenFlags(node.clauses);\n    node.locals = void 0;\n    node.nextContainer = void 0;\n    return node;\n  }\n  function updateCaseBlock(node, clauses) {\n    return node.clauses !== clauses ? update(createCaseBlock(clauses), node) : node;\n  }\n  function createNamespaceExportDeclaration(name) {\n    const node = createBaseDeclaration(271 /* NamespaceExportDeclaration */);\n    node.name = asName(name);\n    node.transformFlags |= propagateIdentifierNameFlags(node.name) | 1 /* ContainsTypeScript */;\n    node.modifiers = void 0;\n    node.jsDoc = void 0;\n    return node;\n  }\n  function updateNamespaceExportDeclaration(node, name) {\n    return node.name !== name ? finishUpdateNamespaceExportDeclaration(createNamespaceExportDeclaration(name), node) : node;\n  }\n  function finishUpdateNamespaceExportDeclaration(updated, original) {\n    if (updated !== original) {\n      updated.modifiers = original.modifiers;\n    }\n    return update(updated, original);\n  }\n  function createImportEqualsDeclaration(modifiers, isTypeOnly, name, moduleReference) {\n    const node = createBaseDeclaration(272 /* ImportEqualsDeclaration */);\n    node.modifiers = asNodeArray(modifiers);\n    node.name = asName(name);\n    node.isTypeOnly = isTypeOnly;\n    node.moduleReference = moduleReference;\n    node.transformFlags |= propagateChildrenFlags(node.modifiers) | propagateIdentifierNameFlags(node.name) | propagateChildFlags(node.moduleReference);\n    if (!isExternalModuleReference(node.moduleReference)) {\n      node.transformFlags |= 1 /* ContainsTypeScript */;\n    }\n    node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */;\n    node.jsDoc = void 0;\n    return node;\n  }\n  function updateImportEqualsDeclaration(node, modifiers, isTypeOnly, name, moduleReference) {\n    return node.modifiers !== modifiers || node.isTypeOnly !== isTypeOnly || node.name !== name || node.moduleReference !== moduleReference ? update(createImportEqualsDeclaration(modifiers, isTypeOnly, name, moduleReference), node) : node;\n  }\n  function createImportDeclaration(modifiers, importClause, moduleSpecifier, attributes) {\n    const node = createBaseNode(273 /* ImportDeclaration */);\n    node.modifiers = asNodeArray(modifiers);\n    node.importClause = importClause;\n    node.moduleSpecifier = moduleSpecifier;\n    node.attributes = node.assertClause = attributes;\n    node.transformFlags |= propagateChildFlags(node.importClause) | propagateChildFlags(node.moduleSpecifier);\n    node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */;\n    node.jsDoc = void 0;\n    return node;\n  }\n  function updateImportDeclaration(node, modifiers, importClause, moduleSpecifier, attributes) {\n    return node.modifiers !== modifiers || node.importClause !== importClause || node.moduleSpecifier !== moduleSpecifier || node.attributes !== attributes ? update(createImportDeclaration(modifiers, importClause, moduleSpecifier, attributes), node) : node;\n  }\n  function createImportClause2(phaseModifier, name, namedBindings) {\n    const node = createBaseDeclaration(274 /* ImportClause */);\n    if (typeof phaseModifier === \"boolean\") {\n      phaseModifier = phaseModifier ? 156 /* TypeKeyword */ : void 0;\n    }\n    node.isTypeOnly = phaseModifier === 156 /* TypeKeyword */;\n    node.phaseModifier = phaseModifier;\n    node.name = name;\n    node.namedBindings = namedBindings;\n    node.transformFlags |= propagateChildFlags(node.name) | propagateChildFlags(node.namedBindings);\n    if (phaseModifier === 156 /* TypeKeyword */) {\n      node.transformFlags |= 1 /* ContainsTypeScript */;\n    }\n    node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */;\n    return node;\n  }\n  function updateImportClause(node, phaseModifier, name, namedBindings) {\n    if (typeof phaseModifier === \"boolean\") {\n      phaseModifier = phaseModifier ? 156 /* TypeKeyword */ : void 0;\n    }\n    return node.phaseModifier !== phaseModifier || node.name !== name || node.namedBindings !== namedBindings ? update(createImportClause2(phaseModifier, name, namedBindings), node) : node;\n  }\n  function createAssertClause(elements, multiLine) {\n    const node = createBaseNode(301 /* AssertClause */);\n    node.elements = createNodeArray(elements);\n    node.multiLine = multiLine;\n    node.token = 132 /* AssertKeyword */;\n    node.transformFlags |= 4 /* ContainsESNext */;\n    return node;\n  }\n  function updateAssertClause(node, elements, multiLine) {\n    return node.elements !== elements || node.multiLine !== multiLine ? update(createAssertClause(elements, multiLine), node) : node;\n  }\n  function createAssertEntry(name, value) {\n    const node = createBaseNode(302 /* AssertEntry */);\n    node.name = name;\n    node.value = value;\n    node.transformFlags |= 4 /* ContainsESNext */;\n    return node;\n  }\n  function updateAssertEntry(node, name, value) {\n    return node.name !== name || node.value !== value ? update(createAssertEntry(name, value), node) : node;\n  }\n  function createImportTypeAssertionContainer(clause, multiLine) {\n    const node = createBaseNode(303 /* ImportTypeAssertionContainer */);\n    node.assertClause = clause;\n    node.multiLine = multiLine;\n    return node;\n  }\n  function updateImportTypeAssertionContainer(node, clause, multiLine) {\n    return node.assertClause !== clause || node.multiLine !== multiLine ? update(createImportTypeAssertionContainer(clause, multiLine), node) : node;\n  }\n  function createImportAttributes(elements, multiLine, token) {\n    const node = createBaseNode(301 /* ImportAttributes */);\n    node.token = token ?? 118 /* WithKeyword */;\n    node.elements = createNodeArray(elements);\n    node.multiLine = multiLine;\n    node.transformFlags |= 4 /* ContainsESNext */;\n    return node;\n  }\n  function updateImportAttributes(node, elements, multiLine) {\n    return node.elements !== elements || node.multiLine !== multiLine ? update(createImportAttributes(elements, multiLine, node.token), node) : node;\n  }\n  function createImportAttribute(name, value) {\n    const node = createBaseNode(302 /* ImportAttribute */);\n    node.name = name;\n    node.value = value;\n    node.transformFlags |= 4 /* ContainsESNext */;\n    return node;\n  }\n  function updateImportAttribute(node, name, value) {\n    return node.name !== name || node.value !== value ? update(createImportAttribute(name, value), node) : node;\n  }\n  function createNamespaceImport(name) {\n    const node = createBaseDeclaration(275 /* NamespaceImport */);\n    node.name = name;\n    node.transformFlags |= propagateChildFlags(node.name);\n    node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */;\n    return node;\n  }\n  function updateNamespaceImport(node, name) {\n    return node.name !== name ? update(createNamespaceImport(name), node) : node;\n  }\n  function createNamespaceExport(name) {\n    const node = createBaseDeclaration(281 /* NamespaceExport */);\n    node.name = name;\n    node.transformFlags |= propagateChildFlags(node.name) | 32 /* ContainsES2020 */;\n    node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */;\n    return node;\n  }\n  function updateNamespaceExport(node, name) {\n    return node.name !== name ? update(createNamespaceExport(name), node) : node;\n  }\n  function createNamedImports(elements) {\n    const node = createBaseNode(276 /* NamedImports */);\n    node.elements = createNodeArray(elements);\n    node.transformFlags |= propagateChildrenFlags(node.elements);\n    node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */;\n    return node;\n  }\n  function updateNamedImports(node, elements) {\n    return node.elements !== elements ? update(createNamedImports(elements), node) : node;\n  }\n  function createImportSpecifier(isTypeOnly, propertyName, name) {\n    const node = createBaseDeclaration(277 /* ImportSpecifier */);\n    node.isTypeOnly = isTypeOnly;\n    node.propertyName = propertyName;\n    node.name = name;\n    node.transformFlags |= propagateChildFlags(node.propertyName) | propagateChildFlags(node.name);\n    node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */;\n    return node;\n  }\n  function updateImportSpecifier(node, isTypeOnly, propertyName, name) {\n    return node.isTypeOnly !== isTypeOnly || node.propertyName !== propertyName || node.name !== name ? update(createImportSpecifier(isTypeOnly, propertyName, name), node) : node;\n  }\n  function createExportAssignment2(modifiers, isExportEquals, expression) {\n    const node = createBaseDeclaration(278 /* ExportAssignment */);\n    node.modifiers = asNodeArray(modifiers);\n    node.isExportEquals = isExportEquals;\n    node.expression = isExportEquals ? parenthesizerRules().parenthesizeRightSideOfBinary(\n      64 /* EqualsToken */,\n      /*leftSide*/\n      void 0,\n      expression\n    ) : parenthesizerRules().parenthesizeExpressionOfExportDefault(expression);\n    node.transformFlags |= propagateChildrenFlags(node.modifiers) | propagateChildFlags(node.expression);\n    node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */;\n    node.jsDoc = void 0;\n    return node;\n  }\n  function updateExportAssignment(node, modifiers, expression) {\n    return node.modifiers !== modifiers || node.expression !== expression ? update(createExportAssignment2(modifiers, node.isExportEquals, expression), node) : node;\n  }\n  function createExportDeclaration(modifiers, isTypeOnly, exportClause, moduleSpecifier, attributes) {\n    const node = createBaseDeclaration(279 /* ExportDeclaration */);\n    node.modifiers = asNodeArray(modifiers);\n    node.isTypeOnly = isTypeOnly;\n    node.exportClause = exportClause;\n    node.moduleSpecifier = moduleSpecifier;\n    node.attributes = node.assertClause = attributes;\n    node.transformFlags |= propagateChildrenFlags(node.modifiers) | propagateChildFlags(node.exportClause) | propagateChildFlags(node.moduleSpecifier);\n    node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */;\n    node.jsDoc = void 0;\n    return node;\n  }\n  function updateExportDeclaration(node, modifiers, isTypeOnly, exportClause, moduleSpecifier, attributes) {\n    return node.modifiers !== modifiers || node.isTypeOnly !== isTypeOnly || node.exportClause !== exportClause || node.moduleSpecifier !== moduleSpecifier || node.attributes !== attributes ? finishUpdateExportDeclaration(createExportDeclaration(modifiers, isTypeOnly, exportClause, moduleSpecifier, attributes), node) : node;\n  }\n  function finishUpdateExportDeclaration(updated, original) {\n    if (updated !== original) {\n      if (updated.modifiers === original.modifiers) {\n        updated.modifiers = original.modifiers;\n      }\n    }\n    return update(updated, original);\n  }\n  function createNamedExports(elements) {\n    const node = createBaseNode(280 /* NamedExports */);\n    node.elements = createNodeArray(elements);\n    node.transformFlags |= propagateChildrenFlags(node.elements);\n    node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */;\n    return node;\n  }\n  function updateNamedExports(node, elements) {\n    return node.elements !== elements ? update(createNamedExports(elements), node) : node;\n  }\n  function createExportSpecifier(isTypeOnly, propertyName, name) {\n    const node = createBaseNode(282 /* ExportSpecifier */);\n    node.isTypeOnly = isTypeOnly;\n    node.propertyName = asName(propertyName);\n    node.name = asName(name);\n    node.transformFlags |= propagateChildFlags(node.propertyName) | propagateChildFlags(node.name);\n    node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */;\n    node.jsDoc = void 0;\n    return node;\n  }\n  function updateExportSpecifier(node, isTypeOnly, propertyName, name) {\n    return node.isTypeOnly !== isTypeOnly || node.propertyName !== propertyName || node.name !== name ? update(createExportSpecifier(isTypeOnly, propertyName, name), node) : node;\n  }\n  function createMissingDeclaration() {\n    const node = createBaseDeclaration(283 /* MissingDeclaration */);\n    node.jsDoc = void 0;\n    return node;\n  }\n  function createExternalModuleReference(expression) {\n    const node = createBaseNode(284 /* ExternalModuleReference */);\n    node.expression = expression;\n    node.transformFlags |= propagateChildFlags(node.expression);\n    node.transformFlags &= ~67108864 /* ContainsPossibleTopLevelAwait */;\n    return node;\n  }\n  function updateExternalModuleReference(node, expression) {\n    return node.expression !== expression ? update(createExternalModuleReference(expression), node) : node;\n  }\n  function createJSDocPrimaryTypeWorker(kind) {\n    return createBaseNode(kind);\n  }\n  function createJSDocPrePostfixUnaryTypeWorker(kind, type, postfix = false) {\n    const node = createJSDocUnaryTypeWorker(\n      kind,\n      postfix ? type && parenthesizerRules().parenthesizeNonArrayTypeOfPostfixType(type) : type\n    );\n    node.postfix = postfix;\n    return node;\n  }\n  function createJSDocUnaryTypeWorker(kind, type) {\n    const node = createBaseNode(kind);\n    node.type = type;\n    return node;\n  }\n  function updateJSDocPrePostfixUnaryTypeWorker(kind, node, type) {\n    return node.type !== type ? update(createJSDocPrePostfixUnaryTypeWorker(kind, type, node.postfix), node) : node;\n  }\n  function updateJSDocUnaryTypeWorker(kind, node, type) {\n    return node.type !== type ? update(createJSDocUnaryTypeWorker(kind, type), node) : node;\n  }\n  function createJSDocFunctionType(parameters, type) {\n    const node = createBaseDeclaration(318 /* JSDocFunctionType */);\n    node.parameters = asNodeArray(parameters);\n    node.type = type;\n    node.transformFlags = propagateChildrenFlags(node.parameters) | (node.type ? 1 /* ContainsTypeScript */ : 0 /* None */);\n    node.jsDoc = void 0;\n    node.locals = void 0;\n    node.nextContainer = void 0;\n    node.typeArguments = void 0;\n    return node;\n  }\n  function updateJSDocFunctionType(node, parameters, type) {\n    return node.parameters !== parameters || node.type !== type ? update(createJSDocFunctionType(parameters, type), node) : node;\n  }\n  function createJSDocTypeLiteral(propertyTags, isArrayType = false) {\n    const node = createBaseDeclaration(323 /* JSDocTypeLiteral */);\n    node.jsDocPropertyTags = asNodeArray(propertyTags);\n    node.isArrayType = isArrayType;\n    return node;\n  }\n  function updateJSDocTypeLiteral(node, propertyTags, isArrayType) {\n    return node.jsDocPropertyTags !== propertyTags || node.isArrayType !== isArrayType ? update(createJSDocTypeLiteral(propertyTags, isArrayType), node) : node;\n  }\n  function createJSDocTypeExpression(type) {\n    const node = createBaseNode(310 /* JSDocTypeExpression */);\n    node.type = type;\n    return node;\n  }\n  function updateJSDocTypeExpression(node, type) {\n    return node.type !== type ? update(createJSDocTypeExpression(type), node) : node;\n  }\n  function createJSDocSignature(typeParameters, parameters, type) {\n    const node = createBaseDeclaration(324 /* JSDocSignature */);\n    node.typeParameters = asNodeArray(typeParameters);\n    node.parameters = createNodeArray(parameters);\n    node.type = type;\n    node.jsDoc = void 0;\n    node.locals = void 0;\n    node.nextContainer = void 0;\n    return node;\n  }\n  function updateJSDocSignature(node, typeParameters, parameters, type) {\n    return node.typeParameters !== typeParameters || node.parameters !== parameters || node.type !== type ? update(createJSDocSignature(typeParameters, parameters, type), node) : node;\n  }\n  function getDefaultTagName(node) {\n    const defaultTagName = getDefaultTagNameForKind(node.kind);\n    return node.tagName.escapedText === escapeLeadingUnderscores(defaultTagName) ? node.tagName : createIdentifier(defaultTagName);\n  }\n  function createBaseJSDocTag(kind, tagName, comment) {\n    const node = createBaseNode(kind);\n    node.tagName = tagName;\n    node.comment = comment;\n    return node;\n  }\n  function createBaseJSDocTagDeclaration(kind, tagName, comment) {\n    const node = createBaseDeclaration(kind);\n    node.tagName = tagName;\n    node.comment = comment;\n    return node;\n  }\n  function createJSDocTemplateTag(tagName, constraint, typeParameters, comment) {\n    const node = createBaseJSDocTag(346 /* JSDocTemplateTag */, tagName ?? createIdentifier(\"template\"), comment);\n    node.constraint = constraint;\n    node.typeParameters = createNodeArray(typeParameters);\n    return node;\n  }\n  function updateJSDocTemplateTag(node, tagName = getDefaultTagName(node), constraint, typeParameters, comment) {\n    return node.tagName !== tagName || node.constraint !== constraint || node.typeParameters !== typeParameters || node.comment !== comment ? update(createJSDocTemplateTag(tagName, constraint, typeParameters, comment), node) : node;\n  }\n  function createJSDocTypedefTag(tagName, typeExpression, fullName, comment) {\n    const node = createBaseJSDocTagDeclaration(347 /* JSDocTypedefTag */, tagName ?? createIdentifier(\"typedef\"), comment);\n    node.typeExpression = typeExpression;\n    node.fullName = fullName;\n    node.name = getJSDocTypeAliasName(fullName);\n    node.locals = void 0;\n    node.nextContainer = void 0;\n    return node;\n  }\n  function updateJSDocTypedefTag(node, tagName = getDefaultTagName(node), typeExpression, fullName, comment) {\n    return node.tagName !== tagName || node.typeExpression !== typeExpression || node.fullName !== fullName || node.comment !== comment ? update(createJSDocTypedefTag(tagName, typeExpression, fullName, comment), node) : node;\n  }\n  function createJSDocParameterTag(tagName, name, isBracketed, typeExpression, isNameFirst, comment) {\n    const node = createBaseJSDocTagDeclaration(342 /* JSDocParameterTag */, tagName ?? createIdentifier(\"param\"), comment);\n    node.typeExpression = typeExpression;\n    node.name = name;\n    node.isNameFirst = !!isNameFirst;\n    node.isBracketed = isBracketed;\n    return node;\n  }\n  function updateJSDocParameterTag(node, tagName = getDefaultTagName(node), name, isBracketed, typeExpression, isNameFirst, comment) {\n    return node.tagName !== tagName || node.name !== name || node.isBracketed !== isBracketed || node.typeExpression !== typeExpression || node.isNameFirst !== isNameFirst || node.comment !== comment ? update(createJSDocParameterTag(tagName, name, isBracketed, typeExpression, isNameFirst, comment), node) : node;\n  }\n  function createJSDocPropertyTag(tagName, name, isBracketed, typeExpression, isNameFirst, comment) {\n    const node = createBaseJSDocTagDeclaration(349 /* JSDocPropertyTag */, tagName ?? createIdentifier(\"prop\"), comment);\n    node.typeExpression = typeExpression;\n    node.name = name;\n    node.isNameFirst = !!isNameFirst;\n    node.isBracketed = isBracketed;\n    return node;\n  }\n  function updateJSDocPropertyTag(node, tagName = getDefaultTagName(node), name, isBracketed, typeExpression, isNameFirst, comment) {\n    return node.tagName !== tagName || node.name !== name || node.isBracketed !== isBracketed || node.typeExpression !== typeExpression || node.isNameFirst !== isNameFirst || node.comment !== comment ? update(createJSDocPropertyTag(tagName, name, isBracketed, typeExpression, isNameFirst, comment), node) : node;\n  }\n  function createJSDocCallbackTag(tagName, typeExpression, fullName, comment) {\n    const node = createBaseJSDocTagDeclaration(339 /* JSDocCallbackTag */, tagName ?? createIdentifier(\"callback\"), comment);\n    node.typeExpression = typeExpression;\n    node.fullName = fullName;\n    node.name = getJSDocTypeAliasName(fullName);\n    node.locals = void 0;\n    node.nextContainer = void 0;\n    return node;\n  }\n  function updateJSDocCallbackTag(node, tagName = getDefaultTagName(node), typeExpression, fullName, comment) {\n    return node.tagName !== tagName || node.typeExpression !== typeExpression || node.fullName !== fullName || node.comment !== comment ? update(createJSDocCallbackTag(tagName, typeExpression, fullName, comment), node) : node;\n  }\n  function createJSDocOverloadTag(tagName, typeExpression, comment) {\n    const node = createBaseJSDocTag(340 /* JSDocOverloadTag */, tagName ?? createIdentifier(\"overload\"), comment);\n    node.typeExpression = typeExpression;\n    return node;\n  }\n  function updateJSDocOverloadTag(node, tagName = getDefaultTagName(node), typeExpression, comment) {\n    return node.tagName !== tagName || node.typeExpression !== typeExpression || node.comment !== comment ? update(createJSDocOverloadTag(tagName, typeExpression, comment), node) : node;\n  }\n  function createJSDocAugmentsTag(tagName, className, comment) {\n    const node = createBaseJSDocTag(329 /* JSDocAugmentsTag */, tagName ?? createIdentifier(\"augments\"), comment);\n    node.class = className;\n    return node;\n  }\n  function updateJSDocAugmentsTag(node, tagName = getDefaultTagName(node), className, comment) {\n    return node.tagName !== tagName || node.class !== className || node.comment !== comment ? update(createJSDocAugmentsTag(tagName, className, comment), node) : node;\n  }\n  function createJSDocImplementsTag(tagName, className, comment) {\n    const node = createBaseJSDocTag(330 /* JSDocImplementsTag */, tagName ?? createIdentifier(\"implements\"), comment);\n    node.class = className;\n    return node;\n  }\n  function createJSDocSeeTag(tagName, name, comment) {\n    const node = createBaseJSDocTag(348 /* JSDocSeeTag */, tagName ?? createIdentifier(\"see\"), comment);\n    node.name = name;\n    return node;\n  }\n  function updateJSDocSeeTag(node, tagName, name, comment) {\n    return node.tagName !== tagName || node.name !== name || node.comment !== comment ? update(createJSDocSeeTag(tagName, name, comment), node) : node;\n  }\n  function createJSDocNameReference(name) {\n    const node = createBaseNode(311 /* JSDocNameReference */);\n    node.name = name;\n    return node;\n  }\n  function updateJSDocNameReference(node, name) {\n    return node.name !== name ? update(createJSDocNameReference(name), node) : node;\n  }\n  function createJSDocMemberName(left, right) {\n    const node = createBaseNode(312 /* JSDocMemberName */);\n    node.left = left;\n    node.right = right;\n    node.transformFlags |= propagateChildFlags(node.left) | propagateChildFlags(node.right);\n    return node;\n  }\n  function updateJSDocMemberName(node, left, right) {\n    return node.left !== left || node.right !== right ? update(createJSDocMemberName(left, right), node) : node;\n  }\n  function createJSDocLink(name, text) {\n    const node = createBaseNode(325 /* JSDocLink */);\n    node.name = name;\n    node.text = text;\n    return node;\n  }\n  function updateJSDocLink(node, name, text) {\n    return node.name !== name ? update(createJSDocLink(name, text), node) : node;\n  }\n  function createJSDocLinkCode(name, text) {\n    const node = createBaseNode(326 /* JSDocLinkCode */);\n    node.name = name;\n    node.text = text;\n    return node;\n  }\n  function updateJSDocLinkCode(node, name, text) {\n    return node.name !== name ? update(createJSDocLinkCode(name, text), node) : node;\n  }\n  function createJSDocLinkPlain(name, text) {\n    const node = createBaseNode(327 /* JSDocLinkPlain */);\n    node.name = name;\n    node.text = text;\n    return node;\n  }\n  function updateJSDocLinkPlain(node, name, text) {\n    return node.name !== name ? update(createJSDocLinkPlain(name, text), node) : node;\n  }\n  function updateJSDocImplementsTag(node, tagName = getDefaultTagName(node), className, comment) {\n    return node.tagName !== tagName || node.class !== className || node.comment !== comment ? update(createJSDocImplementsTag(tagName, className, comment), node) : node;\n  }\n  function createJSDocSimpleTagWorker(kind, tagName, comment) {\n    const node = createBaseJSDocTag(kind, tagName ?? createIdentifier(getDefaultTagNameForKind(kind)), comment);\n    return node;\n  }\n  function updateJSDocSimpleTagWorker(kind, node, tagName = getDefaultTagName(node), comment) {\n    return node.tagName !== tagName || node.comment !== comment ? update(createJSDocSimpleTagWorker(kind, tagName, comment), node) : node;\n  }\n  function createJSDocTypeLikeTagWorker(kind, tagName, typeExpression, comment) {\n    const node = createBaseJSDocTag(kind, tagName ?? createIdentifier(getDefaultTagNameForKind(kind)), comment);\n    node.typeExpression = typeExpression;\n    return node;\n  }\n  function updateJSDocTypeLikeTagWorker(kind, node, tagName = getDefaultTagName(node), typeExpression, comment) {\n    return node.tagName !== tagName || node.typeExpression !== typeExpression || node.comment !== comment ? update(createJSDocTypeLikeTagWorker(kind, tagName, typeExpression, comment), node) : node;\n  }\n  function createJSDocUnknownTag(tagName, comment) {\n    const node = createBaseJSDocTag(328 /* JSDocTag */, tagName, comment);\n    return node;\n  }\n  function updateJSDocUnknownTag(node, tagName, comment) {\n    return node.tagName !== tagName || node.comment !== comment ? update(createJSDocUnknownTag(tagName, comment), node) : node;\n  }\n  function createJSDocEnumTag(tagName, typeExpression, comment) {\n    const node = createBaseJSDocTagDeclaration(341 /* JSDocEnumTag */, tagName ?? createIdentifier(getDefaultTagNameForKind(341 /* JSDocEnumTag */)), comment);\n    node.typeExpression = typeExpression;\n    node.locals = void 0;\n    node.nextContainer = void 0;\n    return node;\n  }\n  function updateJSDocEnumTag(node, tagName = getDefaultTagName(node), typeExpression, comment) {\n    return node.tagName !== tagName || node.typeExpression !== typeExpression || node.comment !== comment ? update(createJSDocEnumTag(tagName, typeExpression, comment), node) : node;\n  }\n  function createJSDocImportTag(tagName, importClause, moduleSpecifier, attributes, comment) {\n    const node = createBaseJSDocTag(352 /* JSDocImportTag */, tagName ?? createIdentifier(\"import\"), comment);\n    node.importClause = importClause;\n    node.moduleSpecifier = moduleSpecifier;\n    node.attributes = attributes;\n    node.comment = comment;\n    return node;\n  }\n  function updateJSDocImportTag(node, tagName, importClause, moduleSpecifier, attributes, comment) {\n    return node.tagName !== tagName || node.comment !== comment || node.importClause !== importClause || node.moduleSpecifier !== moduleSpecifier || node.attributes !== attributes ? update(createJSDocImportTag(tagName, importClause, moduleSpecifier, attributes, comment), node) : node;\n  }\n  function createJSDocText(text) {\n    const node = createBaseNode(322 /* JSDocText */);\n    node.text = text;\n    return node;\n  }\n  function updateJSDocText(node, text) {\n    return node.text !== text ? update(createJSDocText(text), node) : node;\n  }\n  function createJSDocComment(comment, tags) {\n    const node = createBaseNode(321 /* JSDoc */);\n    node.comment = comment;\n    node.tags = asNodeArray(tags);\n    return node;\n  }\n  function updateJSDocComment(node, comment, tags) {\n    return node.comment !== comment || node.tags !== tags ? update(createJSDocComment(comment, tags), node) : node;\n  }\n  function createJsxElement(openingElement, children, closingElement) {\n    const node = createBaseNode(285 /* JsxElement */);\n    node.openingElement = openingElement;\n    node.children = createNodeArray(children);\n    node.closingElement = closingElement;\n    node.transformFlags |= propagateChildFlags(node.openingElement) | propagateChildrenFlags(node.children) | propagateChildFlags(node.closingElement) | 2 /* ContainsJsx */;\n    return node;\n  }\n  function updateJsxElement(node, openingElement, children, closingElement) {\n    return node.openingElement !== openingElement || node.children !== children || node.closingElement !== closingElement ? update(createJsxElement(openingElement, children, closingElement), node) : node;\n  }\n  function createJsxSelfClosingElement(tagName, typeArguments, attributes) {\n    const node = createBaseNode(286 /* JsxSelfClosingElement */);\n    node.tagName = tagName;\n    node.typeArguments = asNodeArray(typeArguments);\n    node.attributes = attributes;\n    node.transformFlags |= propagateChildFlags(node.tagName) | propagateChildrenFlags(node.typeArguments) | propagateChildFlags(node.attributes) | 2 /* ContainsJsx */;\n    if (node.typeArguments) {\n      node.transformFlags |= 1 /* ContainsTypeScript */;\n    }\n    return node;\n  }\n  function updateJsxSelfClosingElement(node, tagName, typeArguments, attributes) {\n    return node.tagName !== tagName || node.typeArguments !== typeArguments || node.attributes !== attributes ? update(createJsxSelfClosingElement(tagName, typeArguments, attributes), node) : node;\n  }\n  function createJsxOpeningElement(tagName, typeArguments, attributes) {\n    const node = createBaseNode(287 /* JsxOpeningElement */);\n    node.tagName = tagName;\n    node.typeArguments = asNodeArray(typeArguments);\n    node.attributes = attributes;\n    node.transformFlags |= propagateChildFlags(node.tagName) | propagateChildrenFlags(node.typeArguments) | propagateChildFlags(node.attributes) | 2 /* ContainsJsx */;\n    if (typeArguments) {\n      node.transformFlags |= 1 /* ContainsTypeScript */;\n    }\n    return node;\n  }\n  function updateJsxOpeningElement(node, tagName, typeArguments, attributes) {\n    return node.tagName !== tagName || node.typeArguments !== typeArguments || node.attributes !== attributes ? update(createJsxOpeningElement(tagName, typeArguments, attributes), node) : node;\n  }\n  function createJsxClosingElement(tagName) {\n    const node = createBaseNode(288 /* JsxClosingElement */);\n    node.tagName = tagName;\n    node.transformFlags |= propagateChildFlags(node.tagName) | 2 /* ContainsJsx */;\n    return node;\n  }\n  function updateJsxClosingElement(node, tagName) {\n    return node.tagName !== tagName ? update(createJsxClosingElement(tagName), node) : node;\n  }\n  function createJsxFragment(openingFragment, children, closingFragment) {\n    const node = createBaseNode(289 /* JsxFragment */);\n    node.openingFragment = openingFragment;\n    node.children = createNodeArray(children);\n    node.closingFragment = closingFragment;\n    node.transformFlags |= propagateChildFlags(node.openingFragment) | propagateChildrenFlags(node.children) | propagateChildFlags(node.closingFragment) | 2 /* ContainsJsx */;\n    return node;\n  }\n  function updateJsxFragment(node, openingFragment, children, closingFragment) {\n    return node.openingFragment !== openingFragment || node.children !== children || node.closingFragment !== closingFragment ? update(createJsxFragment(openingFragment, children, closingFragment), node) : node;\n  }\n  function createJsxText(text, containsOnlyTriviaWhiteSpaces) {\n    const node = createBaseNode(12 /* JsxText */);\n    node.text = text;\n    node.containsOnlyTriviaWhiteSpaces = !!containsOnlyTriviaWhiteSpaces;\n    node.transformFlags |= 2 /* ContainsJsx */;\n    return node;\n  }\n  function updateJsxText(node, text, containsOnlyTriviaWhiteSpaces) {\n    return node.text !== text || node.containsOnlyTriviaWhiteSpaces !== containsOnlyTriviaWhiteSpaces ? update(createJsxText(text, containsOnlyTriviaWhiteSpaces), node) : node;\n  }\n  function createJsxOpeningFragment() {\n    const node = createBaseNode(290 /* JsxOpeningFragment */);\n    node.transformFlags |= 2 /* ContainsJsx */;\n    return node;\n  }\n  function createJsxJsxClosingFragment() {\n    const node = createBaseNode(291 /* JsxClosingFragment */);\n    node.transformFlags |= 2 /* ContainsJsx */;\n    return node;\n  }\n  function createJsxAttribute(name, initializer) {\n    const node = createBaseDeclaration(292 /* JsxAttribute */);\n    node.name = name;\n    node.initializer = initializer;\n    node.transformFlags |= propagateChildFlags(node.name) | propagateChildFlags(node.initializer) | 2 /* ContainsJsx */;\n    return node;\n  }\n  function updateJsxAttribute(node, name, initializer) {\n    return node.name !== name || node.initializer !== initializer ? update(createJsxAttribute(name, initializer), node) : node;\n  }\n  function createJsxAttributes(properties) {\n    const node = createBaseDeclaration(293 /* JsxAttributes */);\n    node.properties = createNodeArray(properties);\n    node.transformFlags |= propagateChildrenFlags(node.properties) | 2 /* ContainsJsx */;\n    return node;\n  }\n  function updateJsxAttributes(node, properties) {\n    return node.properties !== properties ? update(createJsxAttributes(properties), node) : node;\n  }\n  function createJsxSpreadAttribute(expression) {\n    const node = createBaseNode(294 /* JsxSpreadAttribute */);\n    node.expression = expression;\n    node.transformFlags |= propagateChildFlags(node.expression) | 2 /* ContainsJsx */;\n    return node;\n  }\n  function updateJsxSpreadAttribute(node, expression) {\n    return node.expression !== expression ? update(createJsxSpreadAttribute(expression), node) : node;\n  }\n  function createJsxExpression(dotDotDotToken, expression) {\n    const node = createBaseNode(295 /* JsxExpression */);\n    node.dotDotDotToken = dotDotDotToken;\n    node.expression = expression;\n    node.transformFlags |= propagateChildFlags(node.dotDotDotToken) | propagateChildFlags(node.expression) | 2 /* ContainsJsx */;\n    return node;\n  }\n  function updateJsxExpression(node, expression) {\n    return node.expression !== expression ? update(createJsxExpression(node.dotDotDotToken, expression), node) : node;\n  }\n  function createJsxNamespacedName(namespace, name) {\n    const node = createBaseNode(296 /* JsxNamespacedName */);\n    node.namespace = namespace;\n    node.name = name;\n    node.transformFlags |= propagateChildFlags(node.namespace) | propagateChildFlags(node.name) | 2 /* ContainsJsx */;\n    return node;\n  }\n  function updateJsxNamespacedName(node, namespace, name) {\n    return node.namespace !== namespace || node.name !== name ? update(createJsxNamespacedName(namespace, name), node) : node;\n  }\n  function createCaseClause(expression, statements) {\n    const node = createBaseNode(297 /* CaseClause */);\n    node.expression = parenthesizerRules().parenthesizeExpressionForDisallowedComma(expression);\n    node.statements = createNodeArray(statements);\n    node.transformFlags |= propagateChildFlags(node.expression) | propagateChildrenFlags(node.statements);\n    node.jsDoc = void 0;\n    return node;\n  }\n  function updateCaseClause(node, expression, statements) {\n    return node.expression !== expression || node.statements !== statements ? update(createCaseClause(expression, statements), node) : node;\n  }\n  function createDefaultClause(statements) {\n    const node = createBaseNode(298 /* DefaultClause */);\n    node.statements = createNodeArray(statements);\n    node.transformFlags = propagateChildrenFlags(node.statements);\n    return node;\n  }\n  function updateDefaultClause(node, statements) {\n    return node.statements !== statements ? update(createDefaultClause(statements), node) : node;\n  }\n  function createHeritageClause(token, types) {\n    const node = createBaseNode(299 /* HeritageClause */);\n    node.token = token;\n    node.types = createNodeArray(types);\n    node.transformFlags |= propagateChildrenFlags(node.types);\n    switch (token) {\n      case 96 /* ExtendsKeyword */:\n        node.transformFlags |= 1024 /* ContainsES2015 */;\n        break;\n      case 119 /* ImplementsKeyword */:\n        node.transformFlags |= 1 /* ContainsTypeScript */;\n        break;\n      default:\n        return Debug.assertNever(token);\n    }\n    return node;\n  }\n  function updateHeritageClause(node, types) {\n    return node.types !== types ? update(createHeritageClause(node.token, types), node) : node;\n  }\n  function createCatchClause(variableDeclaration, block) {\n    const node = createBaseNode(300 /* CatchClause */);\n    node.variableDeclaration = asVariableDeclaration(variableDeclaration);\n    node.block = block;\n    node.transformFlags |= propagateChildFlags(node.variableDeclaration) | propagateChildFlags(node.block) | (!variableDeclaration ? 64 /* ContainsES2019 */ : 0 /* None */);\n    node.locals = void 0;\n    node.nextContainer = void 0;\n    return node;\n  }\n  function updateCatchClause(node, variableDeclaration, block) {\n    return node.variableDeclaration !== variableDeclaration || node.block !== block ? update(createCatchClause(variableDeclaration, block), node) : node;\n  }\n  function createPropertyAssignment(name, initializer) {\n    const node = createBaseDeclaration(304 /* PropertyAssignment */);\n    node.name = asName(name);\n    node.initializer = parenthesizerRules().parenthesizeExpressionForDisallowedComma(initializer);\n    node.transformFlags |= propagateNameFlags(node.name) | propagateChildFlags(node.initializer);\n    node.modifiers = void 0;\n    node.questionToken = void 0;\n    node.exclamationToken = void 0;\n    node.jsDoc = void 0;\n    return node;\n  }\n  function updatePropertyAssignment(node, name, initializer) {\n    return node.name !== name || node.initializer !== initializer ? finishUpdatePropertyAssignment(createPropertyAssignment(name, initializer), node) : node;\n  }\n  function finishUpdatePropertyAssignment(updated, original) {\n    if (updated !== original) {\n      updated.modifiers = original.modifiers;\n      updated.questionToken = original.questionToken;\n      updated.exclamationToken = original.exclamationToken;\n    }\n    return update(updated, original);\n  }\n  function createShorthandPropertyAssignment(name, objectAssignmentInitializer) {\n    const node = createBaseDeclaration(305 /* ShorthandPropertyAssignment */);\n    node.name = asName(name);\n    node.objectAssignmentInitializer = objectAssignmentInitializer && parenthesizerRules().parenthesizeExpressionForDisallowedComma(objectAssignmentInitializer);\n    node.transformFlags |= propagateIdentifierNameFlags(node.name) | propagateChildFlags(node.objectAssignmentInitializer) | 1024 /* ContainsES2015 */;\n    node.equalsToken = void 0;\n    node.modifiers = void 0;\n    node.questionToken = void 0;\n    node.exclamationToken = void 0;\n    node.jsDoc = void 0;\n    return node;\n  }\n  function updateShorthandPropertyAssignment(node, name, objectAssignmentInitializer) {\n    return node.name !== name || node.objectAssignmentInitializer !== objectAssignmentInitializer ? finishUpdateShorthandPropertyAssignment(createShorthandPropertyAssignment(name, objectAssignmentInitializer), node) : node;\n  }\n  function finishUpdateShorthandPropertyAssignment(updated, original) {\n    if (updated !== original) {\n      updated.modifiers = original.modifiers;\n      updated.questionToken = original.questionToken;\n      updated.exclamationToken = original.exclamationToken;\n      updated.equalsToken = original.equalsToken;\n    }\n    return update(updated, original);\n  }\n  function createSpreadAssignment(expression) {\n    const node = createBaseDeclaration(306 /* SpreadAssignment */);\n    node.expression = parenthesizerRules().parenthesizeExpressionForDisallowedComma(expression);\n    node.transformFlags |= propagateChildFlags(node.expression) | 128 /* ContainsES2018 */ | 65536 /* ContainsObjectRestOrSpread */;\n    node.jsDoc = void 0;\n    return node;\n  }\n  function updateSpreadAssignment(node, expression) {\n    return node.expression !== expression ? update(createSpreadAssignment(expression), node) : node;\n  }\n  function createEnumMember(name, initializer) {\n    const node = createBaseDeclaration(307 /* EnumMember */);\n    node.name = asName(name);\n    node.initializer = initializer && parenthesizerRules().parenthesizeExpressionForDisallowedComma(initializer);\n    node.transformFlags |= propagateChildFlags(node.name) | propagateChildFlags(node.initializer) | 1 /* ContainsTypeScript */;\n    node.jsDoc = void 0;\n    return node;\n  }\n  function updateEnumMember(node, name, initializer) {\n    return node.name !== name || node.initializer !== initializer ? update(createEnumMember(name, initializer), node) : node;\n  }\n  function createSourceFile2(statements, endOfFileToken, flags2) {\n    const node = baseFactory2.createBaseSourceFileNode(308 /* SourceFile */);\n    node.statements = createNodeArray(statements);\n    node.endOfFileToken = endOfFileToken;\n    node.flags |= flags2;\n    node.text = \"\";\n    node.fileName = \"\";\n    node.path = \"\";\n    node.resolvedPath = \"\";\n    node.originalFileName = \"\";\n    node.languageVersion = 1 /* ES5 */;\n    node.languageVariant = 0;\n    node.scriptKind = 0;\n    node.isDeclarationFile = false;\n    node.hasNoDefaultLib = false;\n    node.transformFlags |= propagateChildrenFlags(node.statements) | propagateChildFlags(node.endOfFileToken);\n    node.locals = void 0;\n    node.nextContainer = void 0;\n    node.endFlowNode = void 0;\n    node.nodeCount = 0;\n    node.identifierCount = 0;\n    node.symbolCount = 0;\n    node.parseDiagnostics = void 0;\n    node.bindDiagnostics = void 0;\n    node.bindSuggestionDiagnostics = void 0;\n    node.lineMap = void 0;\n    node.externalModuleIndicator = void 0;\n    node.setExternalModuleIndicator = void 0;\n    node.pragmas = void 0;\n    node.checkJsDirective = void 0;\n    node.referencedFiles = void 0;\n    node.typeReferenceDirectives = void 0;\n    node.libReferenceDirectives = void 0;\n    node.amdDependencies = void 0;\n    node.commentDirectives = void 0;\n    node.identifiers = void 0;\n    node.packageJsonLocations = void 0;\n    node.packageJsonScope = void 0;\n    node.imports = void 0;\n    node.moduleAugmentations = void 0;\n    node.ambientModuleNames = void 0;\n    node.classifiableNames = void 0;\n    node.impliedNodeFormat = void 0;\n    return node;\n  }\n  function createRedirectedSourceFile(redirectInfo) {\n    const node = Object.create(redirectInfo.redirectTarget);\n    Object.defineProperties(node, {\n      id: {\n        get() {\n          return this.redirectInfo.redirectTarget.id;\n        },\n        set(value) {\n          this.redirectInfo.redirectTarget.id = value;\n        }\n      },\n      symbol: {\n        get() {\n          return this.redirectInfo.redirectTarget.symbol;\n        },\n        set(value) {\n          this.redirectInfo.redirectTarget.symbol = value;\n        }\n      }\n    });\n    node.redirectInfo = redirectInfo;\n    return node;\n  }\n  function cloneRedirectedSourceFile(source) {\n    const node = createRedirectedSourceFile(source.redirectInfo);\n    node.flags |= source.flags & ~16 /* Synthesized */;\n    node.fileName = source.fileName;\n    node.path = source.path;\n    node.resolvedPath = source.resolvedPath;\n    node.originalFileName = source.originalFileName;\n    node.packageJsonLocations = source.packageJsonLocations;\n    node.packageJsonScope = source.packageJsonScope;\n    node.emitNode = void 0;\n    return node;\n  }\n  function cloneSourceFileWorker(source) {\n    const node = baseFactory2.createBaseSourceFileNode(308 /* SourceFile */);\n    node.flags |= source.flags & ~16 /* Synthesized */;\n    for (const p in source) {\n      if (hasProperty(node, p) || !hasProperty(source, p)) {\n        continue;\n      }\n      if (p === \"emitNode\") {\n        node.emitNode = void 0;\n        continue;\n      }\n      node[p] = source[p];\n    }\n    return node;\n  }\n  function cloneSourceFile(source) {\n    const node = source.redirectInfo ? cloneRedirectedSourceFile(source) : cloneSourceFileWorker(source);\n    setOriginal(node, source);\n    return node;\n  }\n  function cloneSourceFileWithChanges(source, statements, isDeclarationFile, referencedFiles, typeReferences, hasNoDefaultLib, libReferences) {\n    const node = cloneSourceFile(source);\n    node.statements = createNodeArray(statements);\n    node.isDeclarationFile = isDeclarationFile;\n    node.referencedFiles = referencedFiles;\n    node.typeReferenceDirectives = typeReferences;\n    node.hasNoDefaultLib = hasNoDefaultLib;\n    node.libReferenceDirectives = libReferences;\n    node.transformFlags = propagateChildrenFlags(node.statements) | propagateChildFlags(node.endOfFileToken);\n    return node;\n  }\n  function updateSourceFile2(node, statements, isDeclarationFile = node.isDeclarationFile, referencedFiles = node.referencedFiles, typeReferenceDirectives = node.typeReferenceDirectives, hasNoDefaultLib = node.hasNoDefaultLib, libReferenceDirectives = node.libReferenceDirectives) {\n    return node.statements !== statements || node.isDeclarationFile !== isDeclarationFile || node.referencedFiles !== referencedFiles || node.typeReferenceDirectives !== typeReferenceDirectives || node.hasNoDefaultLib !== hasNoDefaultLib || node.libReferenceDirectives !== libReferenceDirectives ? update(cloneSourceFileWithChanges(node, statements, isDeclarationFile, referencedFiles, typeReferenceDirectives, hasNoDefaultLib, libReferenceDirectives), node) : node;\n  }\n  function createBundle(sourceFiles) {\n    const node = createBaseNode(309 /* Bundle */);\n    node.sourceFiles = sourceFiles;\n    node.syntheticFileReferences = void 0;\n    node.syntheticTypeReferences = void 0;\n    node.syntheticLibReferences = void 0;\n    node.hasNoDefaultLib = void 0;\n    return node;\n  }\n  function updateBundle(node, sourceFiles) {\n    return node.sourceFiles !== sourceFiles ? update(createBundle(sourceFiles), node) : node;\n  }\n  function createSyntheticExpression(type, isSpread = false, tupleNameSource) {\n    const node = createBaseNode(238 /* SyntheticExpression */);\n    node.type = type;\n    node.isSpread = isSpread;\n    node.tupleNameSource = tupleNameSource;\n    return node;\n  }\n  function createSyntaxList3(children) {\n    const node = createBaseNode(353 /* SyntaxList */);\n    node._children = children;\n    return node;\n  }\n  function createNotEmittedStatement(original) {\n    const node = createBaseNode(354 /* NotEmittedStatement */);\n    node.original = original;\n    setTextRange(node, original);\n    return node;\n  }\n  function createPartiallyEmittedExpression(expression, original) {\n    const node = createBaseNode(356 /* PartiallyEmittedExpression */);\n    node.expression = expression;\n    node.original = original;\n    node.transformFlags |= propagateChildFlags(node.expression) | 1 /* ContainsTypeScript */;\n    setTextRange(node, original);\n    return node;\n  }\n  function updatePartiallyEmittedExpression(node, expression) {\n    return node.expression !== expression ? update(createPartiallyEmittedExpression(expression, node.original), node) : node;\n  }\n  function createNotEmittedTypeElement() {\n    return createBaseNode(355 /* NotEmittedTypeElement */);\n  }\n  function flattenCommaElements(node) {\n    if (nodeIsSynthesized(node) && !isParseTreeNode(node) && !node.original && !node.emitNode && !node.id) {\n      if (isCommaListExpression(node)) {\n        return node.elements;\n      }\n      if (isBinaryExpression(node) && isCommaToken(node.operatorToken)) {\n        return [node.left, node.right];\n      }\n    }\n    return node;\n  }\n  function createCommaListExpression(elements) {\n    const node = createBaseNode(357 /* CommaListExpression */);\n    node.elements = createNodeArray(sameFlatMap(elements, flattenCommaElements));\n    node.transformFlags |= propagateChildrenFlags(node.elements);\n    return node;\n  }\n  function updateCommaListExpression(node, elements) {\n    return node.elements !== elements ? update(createCommaListExpression(elements), node) : node;\n  }\n  function createSyntheticReferenceExpression(expression, thisArg) {\n    const node = createBaseNode(358 /* SyntheticReferenceExpression */);\n    node.expression = expression;\n    node.thisArg = thisArg;\n    node.transformFlags |= propagateChildFlags(node.expression) | propagateChildFlags(node.thisArg);\n    return node;\n  }\n  function updateSyntheticReferenceExpression(node, expression, thisArg) {\n    return node.expression !== expression || node.thisArg !== thisArg ? update(createSyntheticReferenceExpression(expression, thisArg), node) : node;\n  }\n  function cloneGeneratedIdentifier(node) {\n    const clone2 = createBaseIdentifier(node.escapedText);\n    clone2.flags |= node.flags & ~16 /* Synthesized */;\n    clone2.transformFlags = node.transformFlags;\n    setOriginal(clone2, node);\n    setIdentifierAutoGenerate(clone2, { ...node.emitNode.autoGenerate });\n    return clone2;\n  }\n  function cloneIdentifier(node) {\n    const clone2 = createBaseIdentifier(node.escapedText);\n    clone2.flags |= node.flags & ~16 /* Synthesized */;\n    clone2.jsDoc = node.jsDoc;\n    clone2.flowNode = node.flowNode;\n    clone2.symbol = node.symbol;\n    clone2.transformFlags = node.transformFlags;\n    setOriginal(clone2, node);\n    const typeArguments = getIdentifierTypeArguments(node);\n    if (typeArguments) setIdentifierTypeArguments(clone2, typeArguments);\n    return clone2;\n  }\n  function cloneGeneratedPrivateIdentifier(node) {\n    const clone2 = createBasePrivateIdentifier(node.escapedText);\n    clone2.flags |= node.flags & ~16 /* Synthesized */;\n    clone2.transformFlags = node.transformFlags;\n    setOriginal(clone2, node);\n    setIdentifierAutoGenerate(clone2, { ...node.emitNode.autoGenerate });\n    return clone2;\n  }\n  function clonePrivateIdentifier(node) {\n    const clone2 = createBasePrivateIdentifier(node.escapedText);\n    clone2.flags |= node.flags & ~16 /* Synthesized */;\n    clone2.transformFlags = node.transformFlags;\n    setOriginal(clone2, node);\n    return clone2;\n  }\n  function cloneNode(node) {\n    if (node === void 0) {\n      return node;\n    }\n    if (isSourceFile(node)) {\n      return cloneSourceFile(node);\n    }\n    if (isGeneratedIdentifier(node)) {\n      return cloneGeneratedIdentifier(node);\n    }\n    if (isIdentifier(node)) {\n      return cloneIdentifier(node);\n    }\n    if (isGeneratedPrivateIdentifier(node)) {\n      return cloneGeneratedPrivateIdentifier(node);\n    }\n    if (isPrivateIdentifier(node)) {\n      return clonePrivateIdentifier(node);\n    }\n    const clone2 = !isNodeKind(node.kind) ? baseFactory2.createBaseTokenNode(node.kind) : baseFactory2.createBaseNode(node.kind);\n    clone2.flags |= node.flags & ~16 /* Synthesized */;\n    clone2.transformFlags = node.transformFlags;\n    setOriginal(clone2, node);\n    for (const key in node) {\n      if (hasProperty(clone2, key) || !hasProperty(node, key)) {\n        continue;\n      }\n      clone2[key] = node[key];\n    }\n    return clone2;\n  }\n  function createImmediatelyInvokedFunctionExpression(statements, param, paramValue) {\n    return createCallExpression(\n      createFunctionExpression(\n        /*modifiers*/\n        void 0,\n        /*asteriskToken*/\n        void 0,\n        /*name*/\n        void 0,\n        /*typeParameters*/\n        void 0,\n        /*parameters*/\n        param ? [param] : [],\n        /*type*/\n        void 0,\n        createBlock(\n          statements,\n          /*multiLine*/\n          true\n        )\n      ),\n      /*typeArguments*/\n      void 0,\n      /*argumentsArray*/\n      paramValue ? [paramValue] : []\n    );\n  }\n  function createImmediatelyInvokedArrowFunction(statements, param, paramValue) {\n    return createCallExpression(\n      createArrowFunction(\n        /*modifiers*/\n        void 0,\n        /*typeParameters*/\n        void 0,\n        /*parameters*/\n        param ? [param] : [],\n        /*type*/\n        void 0,\n        /*equalsGreaterThanToken*/\n        void 0,\n        createBlock(\n          statements,\n          /*multiLine*/\n          true\n        )\n      ),\n      /*typeArguments*/\n      void 0,\n      /*argumentsArray*/\n      paramValue ? [paramValue] : []\n    );\n  }\n  function createVoidZero() {\n    return createVoidExpression(createNumericLiteral(\"0\"));\n  }\n  function createExportDefault(expression) {\n    return createExportAssignment2(\n      /*modifiers*/\n      void 0,\n      /*isExportEquals*/\n      false,\n      expression\n    );\n  }\n  function createExternalModuleExport(exportName) {\n    return createExportDeclaration(\n      /*modifiers*/\n      void 0,\n      /*isTypeOnly*/\n      false,\n      createNamedExports([\n        createExportSpecifier(\n          /*isTypeOnly*/\n          false,\n          /*propertyName*/\n          void 0,\n          exportName\n        )\n      ])\n    );\n  }\n  function createTypeCheck(value, tag) {\n    return tag === \"null\" ? factory2.createStrictEquality(value, createNull()) : tag === \"undefined\" ? factory2.createStrictEquality(value, createVoidZero()) : factory2.createStrictEquality(createTypeOfExpression(value), createStringLiteral(tag));\n  }\n  function createIsNotTypeCheck(value, tag) {\n    return tag === \"null\" ? factory2.createStrictInequality(value, createNull()) : tag === \"undefined\" ? factory2.createStrictInequality(value, createVoidZero()) : factory2.createStrictInequality(createTypeOfExpression(value), createStringLiteral(tag));\n  }\n  function createMethodCall(object, methodName, argumentsList) {\n    if (isCallChain(object)) {\n      return createCallChain(\n        createPropertyAccessChain(\n          object,\n          /*questionDotToken*/\n          void 0,\n          methodName\n        ),\n        /*questionDotToken*/\n        void 0,\n        /*typeArguments*/\n        void 0,\n        argumentsList\n      );\n    }\n    return createCallExpression(\n      createPropertyAccessExpression(object, methodName),\n      /*typeArguments*/\n      void 0,\n      argumentsList\n    );\n  }\n  function createFunctionBindCall(target, thisArg, argumentsList) {\n    return createMethodCall(target, \"bind\", [thisArg, ...argumentsList]);\n  }\n  function createFunctionCallCall(target, thisArg, argumentsList) {\n    return createMethodCall(target, \"call\", [thisArg, ...argumentsList]);\n  }\n  function createFunctionApplyCall(target, thisArg, argumentsExpression) {\n    return createMethodCall(target, \"apply\", [thisArg, argumentsExpression]);\n  }\n  function createGlobalMethodCall(globalObjectName, methodName, argumentsList) {\n    return createMethodCall(createIdentifier(globalObjectName), methodName, argumentsList);\n  }\n  function createArraySliceCall(array, start) {\n    return createMethodCall(array, \"slice\", start === void 0 ? [] : [asExpression(start)]);\n  }\n  function createArrayConcatCall(array, argumentsList) {\n    return createMethodCall(array, \"concat\", argumentsList);\n  }\n  function createObjectDefinePropertyCall(target, propertyName, attributes) {\n    return createGlobalMethodCall(\"Object\", \"defineProperty\", [target, asExpression(propertyName), attributes]);\n  }\n  function createObjectGetOwnPropertyDescriptorCall(target, propertyName) {\n    return createGlobalMethodCall(\"Object\", \"getOwnPropertyDescriptor\", [target, asExpression(propertyName)]);\n  }\n  function createReflectGetCall(target, propertyKey, receiver) {\n    return createGlobalMethodCall(\"Reflect\", \"get\", receiver ? [target, propertyKey, receiver] : [target, propertyKey]);\n  }\n  function createReflectSetCall(target, propertyKey, value, receiver) {\n    return createGlobalMethodCall(\"Reflect\", \"set\", receiver ? [target, propertyKey, value, receiver] : [target, propertyKey, value]);\n  }\n  function tryAddPropertyAssignment(properties, propertyName, expression) {\n    if (expression) {\n      properties.push(createPropertyAssignment(propertyName, expression));\n      return true;\n    }\n    return false;\n  }\n  function createPropertyDescriptor(attributes, singleLine) {\n    const properties = [];\n    tryAddPropertyAssignment(properties, \"enumerable\", asExpression(attributes.enumerable));\n    tryAddPropertyAssignment(properties, \"configurable\", asExpression(attributes.configurable));\n    let isData = tryAddPropertyAssignment(properties, \"writable\", asExpression(attributes.writable));\n    isData = tryAddPropertyAssignment(properties, \"value\", attributes.value) || isData;\n    let isAccessor2 = tryAddPropertyAssignment(properties, \"get\", attributes.get);\n    isAccessor2 = tryAddPropertyAssignment(properties, \"set\", attributes.set) || isAccessor2;\n    Debug.assert(!(isData && isAccessor2), \"A PropertyDescriptor may not be both an accessor descriptor and a data descriptor.\");\n    return createObjectLiteralExpression(properties, !singleLine);\n  }\n  function updateOuterExpression(outerExpression, expression) {\n    switch (outerExpression.kind) {\n      case 218 /* ParenthesizedExpression */:\n        return updateParenthesizedExpression(outerExpression, expression);\n      case 217 /* TypeAssertionExpression */:\n        return updateTypeAssertion(outerExpression, outerExpression.type, expression);\n      case 235 /* AsExpression */:\n        return updateAsExpression(outerExpression, expression, outerExpression.type);\n      case 239 /* SatisfiesExpression */:\n        return updateSatisfiesExpression(outerExpression, expression, outerExpression.type);\n      case 236 /* NonNullExpression */:\n        return updateNonNullExpression(outerExpression, expression);\n      case 234 /* ExpressionWithTypeArguments */:\n        return updateExpressionWithTypeArguments(outerExpression, expression, outerExpression.typeArguments);\n      case 356 /* PartiallyEmittedExpression */:\n        return updatePartiallyEmittedExpression(outerExpression, expression);\n    }\n  }\n  function isIgnorableParen(node) {\n    return isParenthesizedExpression(node) && nodeIsSynthesized(node) && nodeIsSynthesized(getSourceMapRange(node)) && nodeIsSynthesized(getCommentRange(node)) && !some(getSyntheticLeadingComments(node)) && !some(getSyntheticTrailingComments(node));\n  }\n  function restoreOuterExpressions(outerExpression, innerExpression, kinds = 63 /* All */) {\n    if (outerExpression && isOuterExpression(outerExpression, kinds) && !isIgnorableParen(outerExpression)) {\n      return updateOuterExpression(\n        outerExpression,\n        restoreOuterExpressions(outerExpression.expression, innerExpression)\n      );\n    }\n    return innerExpression;\n  }\n  function restoreEnclosingLabel(node, outermostLabeledStatement, afterRestoreLabelCallback) {\n    if (!outermostLabeledStatement) {\n      return node;\n    }\n    const updated = updateLabeledStatement(\n      outermostLabeledStatement,\n      outermostLabeledStatement.label,\n      isLabeledStatement(outermostLabeledStatement.statement) ? restoreEnclosingLabel(node, outermostLabeledStatement.statement) : node\n    );\n    if (afterRestoreLabelCallback) {\n      afterRestoreLabelCallback(outermostLabeledStatement);\n    }\n    return updated;\n  }\n  function shouldBeCapturedInTempVariable(node, cacheIdentifiers) {\n    const target = skipParentheses(node);\n    switch (target.kind) {\n      case 80 /* Identifier */:\n        return cacheIdentifiers;\n      case 110 /* ThisKeyword */:\n      case 9 /* NumericLiteral */:\n      case 10 /* BigIntLiteral */:\n      case 11 /* StringLiteral */:\n        return false;\n      case 210 /* ArrayLiteralExpression */:\n        const elements = target.elements;\n        if (elements.length === 0) {\n          return false;\n        }\n        return true;\n      case 211 /* ObjectLiteralExpression */:\n        return target.properties.length > 0;\n      default:\n        return true;\n    }\n  }\n  function createCallBinding(expression, recordTempVariable, languageVersion, cacheIdentifiers = false) {\n    const callee = skipOuterExpressions(expression, 63 /* All */);\n    let thisArg;\n    let target;\n    if (isSuperProperty(callee)) {\n      thisArg = createThis();\n      target = callee;\n    } else if (isSuperKeyword(callee)) {\n      thisArg = createThis();\n      target = languageVersion !== void 0 && languageVersion < 2 /* ES2015 */ ? setTextRange(createIdentifier(\"_super\"), callee) : callee;\n    } else if (getEmitFlags(callee) & 8192 /* HelperName */) {\n      thisArg = createVoidZero();\n      target = parenthesizerRules().parenthesizeLeftSideOfAccess(\n        callee,\n        /*optionalChain*/\n        false\n      );\n    } else if (isPropertyAccessExpression(callee)) {\n      if (shouldBeCapturedInTempVariable(callee.expression, cacheIdentifiers)) {\n        thisArg = createTempVariable(recordTempVariable);\n        target = createPropertyAccessExpression(\n          setTextRange(\n            factory2.createAssignment(\n              thisArg,\n              callee.expression\n            ),\n            callee.expression\n          ),\n          callee.name\n        );\n        setTextRange(target, callee);\n      } else {\n        thisArg = callee.expression;\n        target = callee;\n      }\n    } else if (isElementAccessExpression(callee)) {\n      if (shouldBeCapturedInTempVariable(callee.expression, cacheIdentifiers)) {\n        thisArg = createTempVariable(recordTempVariable);\n        target = createElementAccessExpression(\n          setTextRange(\n            factory2.createAssignment(\n              thisArg,\n              callee.expression\n            ),\n            callee.expression\n          ),\n          callee.argumentExpression\n        );\n        setTextRange(target, callee);\n      } else {\n        thisArg = callee.expression;\n        target = callee;\n      }\n    } else {\n      thisArg = createVoidZero();\n      target = parenthesizerRules().parenthesizeLeftSideOfAccess(\n        expression,\n        /*optionalChain*/\n        false\n      );\n    }\n    return { target, thisArg };\n  }\n  function createAssignmentTargetWrapper(paramName, expression) {\n    return createPropertyAccessExpression(\n      // Explicit parens required because of v8 regression (https://bugs.chromium.org/p/v8/issues/detail?id=9560)\n      createParenthesizedExpression(\n        createObjectLiteralExpression([\n          createSetAccessorDeclaration(\n            /*modifiers*/\n            void 0,\n            \"value\",\n            [createParameterDeclaration(\n              /*modifiers*/\n              void 0,\n              /*dotDotDotToken*/\n              void 0,\n              paramName,\n              /*questionToken*/\n              void 0,\n              /*type*/\n              void 0,\n              /*initializer*/\n              void 0\n            )],\n            createBlock([\n              createExpressionStatement(expression)\n            ])\n          )\n        ])\n      ),\n      \"value\"\n    );\n  }\n  function inlineExpressions(expressions) {\n    return expressions.length > 10 ? createCommaListExpression(expressions) : reduceLeft(expressions, factory2.createComma);\n  }\n  function getName(node, allowComments, allowSourceMaps, emitFlags = 0, ignoreAssignedName) {\n    const nodeName = ignoreAssignedName ? node && getNonAssignedNameOfDeclaration(node) : getNameOfDeclaration(node);\n    if (nodeName && isIdentifier(nodeName) && !isGeneratedIdentifier(nodeName)) {\n      const name = setParent(setTextRange(cloneNode(nodeName), nodeName), nodeName.parent);\n      emitFlags |= getEmitFlags(nodeName);\n      if (!allowSourceMaps) emitFlags |= 96 /* NoSourceMap */;\n      if (!allowComments) emitFlags |= 3072 /* NoComments */;\n      if (emitFlags) setEmitFlags(name, emitFlags);\n      return name;\n    }\n    return getGeneratedNameForNode(node);\n  }\n  function getInternalName(node, allowComments, allowSourceMaps) {\n    return getName(node, allowComments, allowSourceMaps, 32768 /* LocalName */ | 65536 /* InternalName */);\n  }\n  function getLocalName(node, allowComments, allowSourceMaps, ignoreAssignedName) {\n    return getName(node, allowComments, allowSourceMaps, 32768 /* LocalName */, ignoreAssignedName);\n  }\n  function getExportName(node, allowComments, allowSourceMaps) {\n    return getName(node, allowComments, allowSourceMaps, 16384 /* ExportName */);\n  }\n  function getDeclarationName(node, allowComments, allowSourceMaps) {\n    return getName(node, allowComments, allowSourceMaps);\n  }\n  function getNamespaceMemberName(ns, name, allowComments, allowSourceMaps) {\n    const qualifiedName = createPropertyAccessExpression(ns, nodeIsSynthesized(name) ? name : cloneNode(name));\n    setTextRange(qualifiedName, name);\n    let emitFlags = 0;\n    if (!allowSourceMaps) emitFlags |= 96 /* NoSourceMap */;\n    if (!allowComments) emitFlags |= 3072 /* NoComments */;\n    if (emitFlags) setEmitFlags(qualifiedName, emitFlags);\n    return qualifiedName;\n  }\n  function getExternalModuleOrNamespaceExportName(ns, node, allowComments, allowSourceMaps) {\n    if (ns && hasSyntacticModifier(node, 32 /* Export */)) {\n      return getNamespaceMemberName(ns, getName(node), allowComments, allowSourceMaps);\n    }\n    return getExportName(node, allowComments, allowSourceMaps);\n  }\n  function copyPrologue(source, target, ensureUseStrict2, visitor) {\n    const offset = copyStandardPrologue(source, target, 0, ensureUseStrict2);\n    return copyCustomPrologue(source, target, offset, visitor);\n  }\n  function isUseStrictPrologue2(node) {\n    return isStringLiteral(node.expression) && node.expression.text === \"use strict\";\n  }\n  function createUseStrictPrologue() {\n    return startOnNewLine(createExpressionStatement(createStringLiteral(\"use strict\")));\n  }\n  function copyStandardPrologue(source, target, statementOffset = 0, ensureUseStrict2) {\n    Debug.assert(target.length === 0, \"Prologue directives should be at the first statement in the target statements array\");\n    let foundUseStrict = false;\n    const numStatements = source.length;\n    while (statementOffset < numStatements) {\n      const statement = source[statementOffset];\n      if (isPrologueDirective(statement)) {\n        if (isUseStrictPrologue2(statement)) {\n          foundUseStrict = true;\n        }\n        target.push(statement);\n      } else {\n        break;\n      }\n      statementOffset++;\n    }\n    if (ensureUseStrict2 && !foundUseStrict) {\n      target.push(createUseStrictPrologue());\n    }\n    return statementOffset;\n  }\n  function copyCustomPrologue(source, target, statementOffset, visitor, filter2 = returnTrue) {\n    const numStatements = source.length;\n    while (statementOffset !== void 0 && statementOffset < numStatements) {\n      const statement = source[statementOffset];\n      if (getEmitFlags(statement) & 2097152 /* CustomPrologue */ && filter2(statement)) {\n        append(target, visitor ? visitNode(statement, visitor, isStatement) : statement);\n      } else {\n        break;\n      }\n      statementOffset++;\n    }\n    return statementOffset;\n  }\n  function ensureUseStrict(statements) {\n    const foundUseStrict = findUseStrictPrologue(statements);\n    if (!foundUseStrict) {\n      return setTextRange(createNodeArray([createUseStrictPrologue(), ...statements]), statements);\n    }\n    return statements;\n  }\n  function liftToBlock(nodes) {\n    Debug.assert(every(nodes, isStatementOrBlock), \"Cannot lift nodes to a Block.\");\n    return singleOrUndefined(nodes) || createBlock(nodes);\n  }\n  function findSpanEnd(array, test, start) {\n    let i = start;\n    while (i < array.length && test(array[i])) {\n      i++;\n    }\n    return i;\n  }\n  function mergeLexicalEnvironment(statements, declarations) {\n    if (!some(declarations)) {\n      return statements;\n    }\n    const leftStandardPrologueEnd = findSpanEnd(statements, isPrologueDirective, 0);\n    const leftHoistedFunctionsEnd = findSpanEnd(statements, isHoistedFunction, leftStandardPrologueEnd);\n    const leftHoistedVariablesEnd = findSpanEnd(statements, isHoistedVariableStatement, leftHoistedFunctionsEnd);\n    const rightStandardPrologueEnd = findSpanEnd(declarations, isPrologueDirective, 0);\n    const rightHoistedFunctionsEnd = findSpanEnd(declarations, isHoistedFunction, rightStandardPrologueEnd);\n    const rightHoistedVariablesEnd = findSpanEnd(declarations, isHoistedVariableStatement, rightHoistedFunctionsEnd);\n    const rightCustomPrologueEnd = findSpanEnd(declarations, isCustomPrologue, rightHoistedVariablesEnd);\n    Debug.assert(rightCustomPrologueEnd === declarations.length, \"Expected declarations to be valid standard or custom prologues\");\n    const left = isNodeArray(statements) ? statements.slice() : statements;\n    if (rightCustomPrologueEnd > rightHoistedVariablesEnd) {\n      left.splice(leftHoistedVariablesEnd, 0, ...declarations.slice(rightHoistedVariablesEnd, rightCustomPrologueEnd));\n    }\n    if (rightHoistedVariablesEnd > rightHoistedFunctionsEnd) {\n      left.splice(leftHoistedFunctionsEnd, 0, ...declarations.slice(rightHoistedFunctionsEnd, rightHoistedVariablesEnd));\n    }\n    if (rightHoistedFunctionsEnd > rightStandardPrologueEnd) {\n      left.splice(leftStandardPrologueEnd, 0, ...declarations.slice(rightStandardPrologueEnd, rightHoistedFunctionsEnd));\n    }\n    if (rightStandardPrologueEnd > 0) {\n      if (leftStandardPrologueEnd === 0) {\n        left.splice(0, 0, ...declarations.slice(0, rightStandardPrologueEnd));\n      } else {\n        const leftPrologues = /* @__PURE__ */ new Map();\n        for (let i = 0; i < leftStandardPrologueEnd; i++) {\n          const leftPrologue = statements[i];\n          leftPrologues.set(leftPrologue.expression.text, true);\n        }\n        for (let i = rightStandardPrologueEnd - 1; i >= 0; i--) {\n          const rightPrologue = declarations[i];\n          if (!leftPrologues.has(rightPrologue.expression.text)) {\n            left.unshift(rightPrologue);\n          }\n        }\n      }\n    }\n    if (isNodeArray(statements)) {\n      return setTextRange(createNodeArray(left, statements.hasTrailingComma), statements);\n    }\n    return statements;\n  }\n  function replaceModifiers(node, modifiers) {\n    let modifierArray;\n    if (typeof modifiers === \"number\") {\n      modifierArray = createModifiersFromModifierFlags(modifiers);\n    } else {\n      modifierArray = modifiers;\n    }\n    return isTypeParameterDeclaration(node) ? updateTypeParameterDeclaration(node, modifierArray, node.name, node.constraint, node.default) : isParameter(node) ? updateParameterDeclaration(node, modifierArray, node.dotDotDotToken, node.name, node.questionToken, node.type, node.initializer) : isConstructorTypeNode(node) ? updateConstructorTypeNode1(node, modifierArray, node.typeParameters, node.parameters, node.type) : isPropertySignature(node) ? updatePropertySignature(node, modifierArray, node.name, node.questionToken, node.type) : isPropertyDeclaration(node) ? updatePropertyDeclaration2(node, modifierArray, node.name, node.questionToken ?? node.exclamationToken, node.type, node.initializer) : isMethodSignature(node) ? updateMethodSignature(node, modifierArray, node.name, node.questionToken, node.typeParameters, node.parameters, node.type) : isMethodDeclaration(node) ? updateMethodDeclaration(node, modifierArray, node.asteriskToken, node.name, node.questionToken, node.typeParameters, node.parameters, node.type, node.body) : isConstructorDeclaration(node) ? updateConstructorDeclaration(node, modifierArray, node.parameters, node.body) : isGetAccessorDeclaration(node) ? updateGetAccessorDeclaration(node, modifierArray, node.name, node.parameters, node.type, node.body) : isSetAccessorDeclaration(node) ? updateSetAccessorDeclaration(node, modifierArray, node.name, node.parameters, node.body) : isIndexSignatureDeclaration(node) ? updateIndexSignature(node, modifierArray, node.parameters, node.type) : isFunctionExpression(node) ? updateFunctionExpression(node, modifierArray, node.asteriskToken, node.name, node.typeParameters, node.parameters, node.type, node.body) : isArrowFunction(node) ? updateArrowFunction(node, modifierArray, node.typeParameters, node.parameters, node.type, node.equalsGreaterThanToken, node.body) : isClassExpression(node) ? updateClassExpression(node, modifierArray, node.name, node.typeParameters, node.heritageClauses, node.members) : isVariableStatement(node) ? updateVariableStatement(node, modifierArray, node.declarationList) : isFunctionDeclaration(node) ? updateFunctionDeclaration(node, modifierArray, node.asteriskToken, node.name, node.typeParameters, node.parameters, node.type, node.body) : isClassDeclaration(node) ? updateClassDeclaration(node, modifierArray, node.name, node.typeParameters, node.heritageClauses, node.members) : isInterfaceDeclaration(node) ? updateInterfaceDeclaration(node, modifierArray, node.name, node.typeParameters, node.heritageClauses, node.members) : isTypeAliasDeclaration(node) ? updateTypeAliasDeclaration(node, modifierArray, node.name, node.typeParameters, node.type) : isEnumDeclaration(node) ? updateEnumDeclaration(node, modifierArray, node.name, node.members) : isModuleDeclaration(node) ? updateModuleDeclaration(node, modifierArray, node.name, node.body) : isImportEqualsDeclaration(node) ? updateImportEqualsDeclaration(node, modifierArray, node.isTypeOnly, node.name, node.moduleReference) : isImportDeclaration(node) ? updateImportDeclaration(node, modifierArray, node.importClause, node.moduleSpecifier, node.attributes) : isExportAssignment(node) ? updateExportAssignment(node, modifierArray, node.expression) : isExportDeclaration(node) ? updateExportDeclaration(node, modifierArray, node.isTypeOnly, node.exportClause, node.moduleSpecifier, node.attributes) : Debug.assertNever(node);\n  }\n  function replaceDecoratorsAndModifiers(node, modifierArray) {\n    return isParameter(node) ? updateParameterDeclaration(node, modifierArray, node.dotDotDotToken, node.name, node.questionToken, node.type, node.initializer) : isPropertyDeclaration(node) ? updatePropertyDeclaration2(node, modifierArray, node.name, node.questionToken ?? node.exclamationToken, node.type, node.initializer) : isMethodDeclaration(node) ? updateMethodDeclaration(node, modifierArray, node.asteriskToken, node.name, node.questionToken, node.typeParameters, node.parameters, node.type, node.body) : isGetAccessorDeclaration(node) ? updateGetAccessorDeclaration(node, modifierArray, node.name, node.parameters, node.type, node.body) : isSetAccessorDeclaration(node) ? updateSetAccessorDeclaration(node, modifierArray, node.name, node.parameters, node.body) : isClassExpression(node) ? updateClassExpression(node, modifierArray, node.name, node.typeParameters, node.heritageClauses, node.members) : isClassDeclaration(node) ? updateClassDeclaration(node, modifierArray, node.name, node.typeParameters, node.heritageClauses, node.members) : Debug.assertNever(node);\n  }\n  function replacePropertyName(node, name) {\n    switch (node.kind) {\n      case 178 /* GetAccessor */:\n        return updateGetAccessorDeclaration(node, node.modifiers, name, node.parameters, node.type, node.body);\n      case 179 /* SetAccessor */:\n        return updateSetAccessorDeclaration(node, node.modifiers, name, node.parameters, node.body);\n      case 175 /* MethodDeclaration */:\n        return updateMethodDeclaration(node, node.modifiers, node.asteriskToken, name, node.questionToken, node.typeParameters, node.parameters, node.type, node.body);\n      case 174 /* MethodSignature */:\n        return updateMethodSignature(node, node.modifiers, name, node.questionToken, node.typeParameters, node.parameters, node.type);\n      case 173 /* PropertyDeclaration */:\n        return updatePropertyDeclaration2(node, node.modifiers, name, node.questionToken ?? node.exclamationToken, node.type, node.initializer);\n      case 172 /* PropertySignature */:\n        return updatePropertySignature(node, node.modifiers, name, node.questionToken, node.type);\n      case 304 /* PropertyAssignment */:\n        return updatePropertyAssignment(node, name, node.initializer);\n    }\n  }\n  function asNodeArray(array) {\n    return array ? createNodeArray(array) : void 0;\n  }\n  function asName(name) {\n    return typeof name === \"string\" ? createIdentifier(name) : name;\n  }\n  function asExpression(value) {\n    return typeof value === \"string\" ? createStringLiteral(value) : typeof value === \"number\" ? createNumericLiteral(value) : typeof value === \"boolean\" ? value ? createTrue() : createFalse() : value;\n  }\n  function asInitializer(node) {\n    return node && parenthesizerRules().parenthesizeExpressionForDisallowedComma(node);\n  }\n  function asToken(value) {\n    return typeof value === \"number\" ? createToken(value) : value;\n  }\n  function asEmbeddedStatement(statement) {\n    return statement && isNotEmittedStatement(statement) ? setTextRange(setOriginal(createEmptyStatement(), statement), statement) : statement;\n  }\n  function asVariableDeclaration(variableDeclaration) {\n    if (typeof variableDeclaration === \"string\" || variableDeclaration && !isVariableDeclaration(variableDeclaration)) {\n      return createVariableDeclaration(\n        variableDeclaration,\n        /*exclamationToken*/\n        void 0,\n        /*type*/\n        void 0,\n        /*initializer*/\n        void 0\n      );\n    }\n    return variableDeclaration;\n  }\n  function update(updated, original) {\n    if (updated !== original) {\n      setOriginal(updated, original);\n      setTextRange(updated, original);\n    }\n    return updated;\n  }\n}\nfunction getDefaultTagNameForKind(kind) {\n  switch (kind) {\n    case 345 /* JSDocTypeTag */:\n      return \"type\";\n    case 343 /* JSDocReturnTag */:\n      return \"returns\";\n    case 344 /* JSDocThisTag */:\n      return \"this\";\n    case 341 /* JSDocEnumTag */:\n      return \"enum\";\n    case 331 /* JSDocAuthorTag */:\n      return \"author\";\n    case 333 /* JSDocClassTag */:\n      return \"class\";\n    case 334 /* JSDocPublicTag */:\n      return \"public\";\n    case 335 /* JSDocPrivateTag */:\n      return \"private\";\n    case 336 /* JSDocProtectedTag */:\n      return \"protected\";\n    case 337 /* JSDocReadonlyTag */:\n      return \"readonly\";\n    case 338 /* JSDocOverrideTag */:\n      return \"override\";\n    case 346 /* JSDocTemplateTag */:\n      return \"template\";\n    case 347 /* JSDocTypedefTag */:\n      return \"typedef\";\n    case 342 /* JSDocParameterTag */:\n      return \"param\";\n    case 349 /* JSDocPropertyTag */:\n      return \"prop\";\n    case 339 /* JSDocCallbackTag */:\n      return \"callback\";\n    case 340 /* JSDocOverloadTag */:\n      return \"overload\";\n    case 329 /* JSDocAugmentsTag */:\n      return \"augments\";\n    case 330 /* JSDocImplementsTag */:\n      return \"implements\";\n    case 352 /* JSDocImportTag */:\n      return \"import\";\n    default:\n      return Debug.fail(`Unsupported kind: ${Debug.formatSyntaxKind(kind)}`);\n  }\n}\nvar rawTextScanner;\nvar invalidValueSentinel = {};\nfunction getCookedText(kind, rawText) {\n  if (!rawTextScanner) {\n    rawTextScanner = createScanner(\n      99 /* Latest */,\n      /*skipTrivia*/\n      false,\n      0 /* Standard */\n    );\n  }\n  switch (kind) {\n    case 15 /* NoSubstitutionTemplateLiteral */:\n      rawTextScanner.setText(\"`\" + rawText + \"`\");\n      break;\n    case 16 /* TemplateHead */:\n      rawTextScanner.setText(\"`\" + rawText + \"${\");\n      break;\n    case 17 /* TemplateMiddle */:\n      rawTextScanner.setText(\"}\" + rawText + \"${\");\n      break;\n    case 18 /* TemplateTail */:\n      rawTextScanner.setText(\"}\" + rawText + \"`\");\n      break;\n  }\n  let token = rawTextScanner.scan();\n  if (token === 20 /* CloseBraceToken */) {\n    token = rawTextScanner.reScanTemplateToken(\n      /*isTaggedTemplate*/\n      false\n    );\n  }\n  if (rawTextScanner.isUnterminated()) {\n    rawTextScanner.setText(void 0);\n    return invalidValueSentinel;\n  }\n  let tokenValue;\n  switch (token) {\n    case 15 /* NoSubstitutionTemplateLiteral */:\n    case 16 /* TemplateHead */:\n    case 17 /* TemplateMiddle */:\n    case 18 /* TemplateTail */:\n      tokenValue = rawTextScanner.getTokenValue();\n      break;\n  }\n  if (tokenValue === void 0 || rawTextScanner.scan() !== 1 /* EndOfFileToken */) {\n    rawTextScanner.setText(void 0);\n    return invalidValueSentinel;\n  }\n  rawTextScanner.setText(void 0);\n  return tokenValue;\n}\nfunction propagateNameFlags(node) {\n  return node && isIdentifier(node) ? propagateIdentifierNameFlags(node) : propagateChildFlags(node);\n}\nfunction propagateIdentifierNameFlags(node) {\n  return propagateChildFlags(node) & ~67108864 /* ContainsPossibleTopLevelAwait */;\n}\nfunction propagatePropertyNameFlagsOfChild(node, transformFlags) {\n  return transformFlags | node.transformFlags & 134234112 /* PropertyNamePropagatingFlags */;\n}\nfunction propagateChildFlags(child) {\n  if (!child) return 0 /* None */;\n  const childFlags = child.transformFlags & ~getTransformFlagsSubtreeExclusions(child.kind);\n  return isNamedDeclaration(child) && isPropertyName(child.name) ? propagatePropertyNameFlagsOfChild(child.name, childFlags) : childFlags;\n}\nfunction propagateChildrenFlags(children) {\n  return children ? children.transformFlags : 0 /* None */;\n}\nfunction aggregateChildrenFlags(children) {\n  let subtreeFlags = 0 /* None */;\n  for (const child of children) {\n    subtreeFlags |= propagateChildFlags(child);\n  }\n  children.transformFlags = subtreeFlags;\n}\nfunction getTransformFlagsSubtreeExclusions(kind) {\n  if (kind >= 183 /* FirstTypeNode */ && kind <= 206 /* LastTypeNode */) {\n    return -2 /* TypeExcludes */;\n  }\n  switch (kind) {\n    case 214 /* CallExpression */:\n    case 215 /* NewExpression */:\n    case 210 /* ArrayLiteralExpression */:\n      return -2147450880 /* ArrayLiteralOrCallOrNewExcludes */;\n    case 268 /* ModuleDeclaration */:\n      return -1941676032 /* ModuleExcludes */;\n    case 170 /* Parameter */:\n      return -2147483648 /* ParameterExcludes */;\n    case 220 /* ArrowFunction */:\n      return -2072174592 /* ArrowFunctionExcludes */;\n    case 219 /* FunctionExpression */:\n    case 263 /* FunctionDeclaration */:\n      return -1937940480 /* FunctionExcludes */;\n    case 262 /* VariableDeclarationList */:\n      return -2146893824 /* VariableDeclarationListExcludes */;\n    case 264 /* ClassDeclaration */:\n    case 232 /* ClassExpression */:\n      return -2147344384 /* ClassExcludes */;\n    case 177 /* Constructor */:\n      return -1937948672 /* ConstructorExcludes */;\n    case 173 /* PropertyDeclaration */:\n      return -2013249536 /* PropertyExcludes */;\n    case 175 /* MethodDeclaration */:\n    case 178 /* GetAccessor */:\n    case 179 /* SetAccessor */:\n      return -2005057536 /* MethodOrAccessorExcludes */;\n    case 133 /* AnyKeyword */:\n    case 150 /* NumberKeyword */:\n    case 163 /* BigIntKeyword */:\n    case 146 /* NeverKeyword */:\n    case 154 /* StringKeyword */:\n    case 151 /* ObjectKeyword */:\n    case 136 /* BooleanKeyword */:\n    case 155 /* SymbolKeyword */:\n    case 116 /* VoidKeyword */:\n    case 169 /* TypeParameter */:\n    case 172 /* PropertySignature */:\n    case 174 /* MethodSignature */:\n    case 180 /* CallSignature */:\n    case 181 /* ConstructSignature */:\n    case 182 /* IndexSignature */:\n    case 265 /* InterfaceDeclaration */:\n    case 266 /* TypeAliasDeclaration */:\n      return -2 /* TypeExcludes */;\n    case 211 /* ObjectLiteralExpression */:\n      return -2147278848 /* ObjectLiteralExcludes */;\n    case 300 /* CatchClause */:\n      return -2147418112 /* CatchClauseExcludes */;\n    case 207 /* ObjectBindingPattern */:\n    case 208 /* ArrayBindingPattern */:\n      return -2147450880 /* BindingPatternExcludes */;\n    case 217 /* TypeAssertionExpression */:\n    case 239 /* SatisfiesExpression */:\n    case 235 /* AsExpression */:\n    case 356 /* PartiallyEmittedExpression */:\n    case 218 /* ParenthesizedExpression */:\n    case 108 /* SuperKeyword */:\n      return -2147483648 /* OuterExpressionExcludes */;\n    case 212 /* PropertyAccessExpression */:\n    case 213 /* ElementAccessExpression */:\n      return -2147483648 /* PropertyAccessExcludes */;\n    default:\n      return -2147483648 /* NodeExcludes */;\n  }\n}\nvar baseFactory = createBaseNodeFactory();\nfunction makeSynthetic(node) {\n  node.flags |= 16 /* Synthesized */;\n  return node;\n}\nvar syntheticFactory = {\n  createBaseSourceFileNode: (kind) => makeSynthetic(baseFactory.createBaseSourceFileNode(kind)),\n  createBaseIdentifierNode: (kind) => makeSynthetic(baseFactory.createBaseIdentifierNode(kind)),\n  createBasePrivateIdentifierNode: (kind) => makeSynthetic(baseFactory.createBasePrivateIdentifierNode(kind)),\n  createBaseTokenNode: (kind) => makeSynthetic(baseFactory.createBaseTokenNode(kind)),\n  createBaseNode: (kind) => makeSynthetic(baseFactory.createBaseNode(kind))\n};\nvar factory = createNodeFactory(4 /* NoIndentationOnFreshPropertyAccess */, syntheticFactory);\nvar SourceMapSource2;\nfunction createSourceMapSource(fileName, text, skipTrivia2) {\n  return new (SourceMapSource2 || (SourceMapSource2 = objectAllocator.getSourceMapSourceConstructor()))(fileName, text, skipTrivia2);\n}\nfunction setOriginalNode(node, original) {\n  if (node.original !== original) {\n    node.original = original;\n    if (original) {\n      const emitNode = original.emitNode;\n      if (emitNode) node.emitNode = mergeEmitNode(emitNode, node.emitNode);\n    }\n  }\n  return node;\n}\nfunction mergeEmitNode(sourceEmitNode, destEmitNode) {\n  const {\n    flags,\n    internalFlags,\n    leadingComments,\n    trailingComments,\n    commentRange,\n    sourceMapRange,\n    tokenSourceMapRanges,\n    constantValue,\n    helpers,\n    startsOnNewLine,\n    snippetElement,\n    classThis,\n    assignedName\n  } = sourceEmitNode;\n  if (!destEmitNode) destEmitNode = {};\n  if (flags) {\n    destEmitNode.flags = flags;\n  }\n  if (internalFlags) {\n    destEmitNode.internalFlags = internalFlags & ~8 /* Immutable */;\n  }\n  if (leadingComments) {\n    destEmitNode.leadingComments = addRange(leadingComments.slice(), destEmitNode.leadingComments);\n  }\n  if (trailingComments) {\n    destEmitNode.trailingComments = addRange(trailingComments.slice(), destEmitNode.trailingComments);\n  }\n  if (commentRange) {\n    destEmitNode.commentRange = commentRange;\n  }\n  if (sourceMapRange) {\n    destEmitNode.sourceMapRange = sourceMapRange;\n  }\n  if (tokenSourceMapRanges) {\n    destEmitNode.tokenSourceMapRanges = mergeTokenSourceMapRanges(tokenSourceMapRanges, destEmitNode.tokenSourceMapRanges);\n  }\n  if (constantValue !== void 0) {\n    destEmitNode.constantValue = constantValue;\n  }\n  if (helpers) {\n    for (const helper of helpers) {\n      destEmitNode.helpers = appendIfUnique(destEmitNode.helpers, helper);\n    }\n  }\n  if (startsOnNewLine !== void 0) {\n    destEmitNode.startsOnNewLine = startsOnNewLine;\n  }\n  if (snippetElement !== void 0) {\n    destEmitNode.snippetElement = snippetElement;\n  }\n  if (classThis) {\n    destEmitNode.classThis = classThis;\n  }\n  if (assignedName) {\n    destEmitNode.assignedName = assignedName;\n  }\n  return destEmitNode;\n}\nfunction mergeTokenSourceMapRanges(sourceRanges, destRanges) {\n  if (!destRanges) destRanges = [];\n  for (const key in sourceRanges) {\n    destRanges[key] = sourceRanges[key];\n  }\n  return destRanges;\n}\n\n// src/compiler/factory/emitNode.ts\nfunction getOrCreateEmitNode(node) {\n  if (!node.emitNode) {\n    if (isParseTreeNode(node)) {\n      if (node.kind === 308 /* SourceFile */) {\n        return node.emitNode = { annotatedNodes: [node] };\n      }\n      const sourceFile = getSourceFileOfNode(getParseTreeNode(getSourceFileOfNode(node))) ?? Debug.fail(\"Could not determine parsed source file.\");\n      getOrCreateEmitNode(sourceFile).annotatedNodes.push(node);\n    }\n    node.emitNode = {};\n  } else {\n    Debug.assert(!(node.emitNode.internalFlags & 8 /* Immutable */), \"Invalid attempt to mutate an immutable node.\");\n  }\n  return node.emitNode;\n}\nfunction disposeEmitNodes(sourceFile) {\n  var _a, _b;\n  const annotatedNodes = (_b = (_a = getSourceFileOfNode(getParseTreeNode(sourceFile))) == null ? void 0 : _a.emitNode) == null ? void 0 : _b.annotatedNodes;\n  if (annotatedNodes) {\n    for (const node of annotatedNodes) {\n      node.emitNode = void 0;\n    }\n  }\n}\nfunction removeAllComments(node) {\n  const emitNode = getOrCreateEmitNode(node);\n  emitNode.flags |= 3072 /* NoComments */;\n  emitNode.leadingComments = void 0;\n  emitNode.trailingComments = void 0;\n  return node;\n}\nfunction setEmitFlags(node, emitFlags) {\n  getOrCreateEmitNode(node).flags = emitFlags;\n  return node;\n}\nfunction addEmitFlags(node, emitFlags) {\n  const emitNode = getOrCreateEmitNode(node);\n  emitNode.flags = emitNode.flags | emitFlags;\n  return node;\n}\nfunction setInternalEmitFlags(node, emitFlags) {\n  getOrCreateEmitNode(node).internalFlags = emitFlags;\n  return node;\n}\nfunction addInternalEmitFlags(node, emitFlags) {\n  const emitNode = getOrCreateEmitNode(node);\n  emitNode.internalFlags = emitNode.internalFlags | emitFlags;\n  return node;\n}\nfunction getSourceMapRange(node) {\n  var _a;\n  return ((_a = node.emitNode) == null ? void 0 : _a.sourceMapRange) ?? node;\n}\nfunction setSourceMapRange(node, range) {\n  getOrCreateEmitNode(node).sourceMapRange = range;\n  return node;\n}\nfunction getTokenSourceMapRange(node, token) {\n  var _a, _b;\n  return (_b = (_a = node.emitNode) == null ? void 0 : _a.tokenSourceMapRanges) == null ? void 0 : _b[token];\n}\nfunction setTokenSourceMapRange(node, token, range) {\n  const emitNode = getOrCreateEmitNode(node);\n  const tokenSourceMapRanges = emitNode.tokenSourceMapRanges ?? (emitNode.tokenSourceMapRanges = []);\n  tokenSourceMapRanges[token] = range;\n  return node;\n}\nfunction getStartsOnNewLine(node) {\n  var _a;\n  return (_a = node.emitNode) == null ? void 0 : _a.startsOnNewLine;\n}\nfunction setStartsOnNewLine(node, newLine) {\n  getOrCreateEmitNode(node).startsOnNewLine = newLine;\n  return node;\n}\nfunction getCommentRange(node) {\n  var _a;\n  return ((_a = node.emitNode) == null ? void 0 : _a.commentRange) ?? node;\n}\nfunction setCommentRange(node, range) {\n  getOrCreateEmitNode(node).commentRange = range;\n  return node;\n}\nfunction getSyntheticLeadingComments(node) {\n  var _a;\n  return (_a = node.emitNode) == null ? void 0 : _a.leadingComments;\n}\nfunction setSyntheticLeadingComments(node, comments) {\n  getOrCreateEmitNode(node).leadingComments = comments;\n  return node;\n}\nfunction addSyntheticLeadingComment(node, kind, text, hasTrailingNewLine) {\n  return setSyntheticLeadingComments(node, append(getSyntheticLeadingComments(node), { kind, pos: -1, end: -1, hasTrailingNewLine, text }));\n}\nfunction getSyntheticTrailingComments(node) {\n  var _a;\n  return (_a = node.emitNode) == null ? void 0 : _a.trailingComments;\n}\nfunction setSyntheticTrailingComments(node, comments) {\n  getOrCreateEmitNode(node).trailingComments = comments;\n  return node;\n}\nfunction addSyntheticTrailingComment(node, kind, text, hasTrailingNewLine) {\n  return setSyntheticTrailingComments(node, append(getSyntheticTrailingComments(node), { kind, pos: -1, end: -1, hasTrailingNewLine, text }));\n}\nfunction moveSyntheticComments(node, original) {\n  setSyntheticLeadingComments(node, getSyntheticLeadingComments(original));\n  setSyntheticTrailingComments(node, getSyntheticTrailingComments(original));\n  const emit = getOrCreateEmitNode(original);\n  emit.leadingComments = void 0;\n  emit.trailingComments = void 0;\n  return node;\n}\nfunction getConstantValue(node) {\n  var _a;\n  return (_a = node.emitNode) == null ? void 0 : _a.constantValue;\n}\nfunction setConstantValue(node, value) {\n  const emitNode = getOrCreateEmitNode(node);\n  emitNode.constantValue = value;\n  return node;\n}\nfunction addEmitHelper(node, helper) {\n  const emitNode = getOrCreateEmitNode(node);\n  emitNode.helpers = append(emitNode.helpers, helper);\n  return node;\n}\nfunction addEmitHelpers(node, helpers) {\n  if (some(helpers)) {\n    const emitNode = getOrCreateEmitNode(node);\n    for (const helper of helpers) {\n      emitNode.helpers = appendIfUnique(emitNode.helpers, helper);\n    }\n  }\n  return node;\n}\nfunction removeEmitHelper(node, helper) {\n  var _a;\n  const helpers = (_a = node.emitNode) == null ? void 0 : _a.helpers;\n  if (helpers) {\n    return orderedRemoveItem(helpers, helper);\n  }\n  return false;\n}\nfunction getEmitHelpers(node) {\n  var _a;\n  return (_a = node.emitNode) == null ? void 0 : _a.helpers;\n}\nfunction moveEmitHelpers(source, target, predicate) {\n  const sourceEmitNode = source.emitNode;\n  const sourceEmitHelpers = sourceEmitNode && sourceEmitNode.helpers;\n  if (!some(sourceEmitHelpers)) return;\n  const targetEmitNode = getOrCreateEmitNode(target);\n  let helpersRemoved = 0;\n  for (let i = 0; i < sourceEmitHelpers.length; i++) {\n    const helper = sourceEmitHelpers[i];\n    if (predicate(helper)) {\n      helpersRemoved++;\n      targetEmitNode.helpers = appendIfUnique(targetEmitNode.helpers, helper);\n    } else if (helpersRemoved > 0) {\n      sourceEmitHelpers[i - helpersRemoved] = helper;\n    }\n  }\n  if (helpersRemoved > 0) {\n    sourceEmitHelpers.length -= helpersRemoved;\n  }\n}\nfunction getSnippetElement(node) {\n  var _a;\n  return (_a = node.emitNode) == null ? void 0 : _a.snippetElement;\n}\nfunction setSnippetElement(node, snippet) {\n  const emitNode = getOrCreateEmitNode(node);\n  emitNode.snippetElement = snippet;\n  return node;\n}\nfunction ignoreSourceNewlines(node) {\n  getOrCreateEmitNode(node).internalFlags |= 4 /* IgnoreSourceNewlines */;\n  return node;\n}\nfunction setTypeNode(node, type) {\n  const emitNode = getOrCreateEmitNode(node);\n  emitNode.typeNode = type;\n  return node;\n}\nfunction getTypeNode(node) {\n  var _a;\n  return (_a = node.emitNode) == null ? void 0 : _a.typeNode;\n}\nfunction setIdentifierTypeArguments(node, typeArguments) {\n  getOrCreateEmitNode(node).identifierTypeArguments = typeArguments;\n  return node;\n}\nfunction getIdentifierTypeArguments(node) {\n  var _a;\n  return (_a = node.emitNode) == null ? void 0 : _a.identifierTypeArguments;\n}\nfunction setIdentifierAutoGenerate(node, autoGenerate) {\n  getOrCreateEmitNode(node).autoGenerate = autoGenerate;\n  return node;\n}\nfunction getIdentifierAutoGenerate(node) {\n  var _a;\n  return (_a = node.emitNode) == null ? void 0 : _a.autoGenerate;\n}\nfunction setIdentifierGeneratedImportReference(node, value) {\n  getOrCreateEmitNode(node).generatedImportReference = value;\n  return node;\n}\nfunction getIdentifierGeneratedImportReference(node) {\n  var _a;\n  return (_a = node.emitNode) == null ? void 0 : _a.generatedImportReference;\n}\n\n// src/compiler/factory/emitHelpers.ts\nvar PrivateIdentifierKind = /* @__PURE__ */ ((PrivateIdentifierKind2) => {\n  PrivateIdentifierKind2[\"Field\"] = \"f\";\n  PrivateIdentifierKind2[\"Method\"] = \"m\";\n  PrivateIdentifierKind2[\"Accessor\"] = \"a\";\n  return PrivateIdentifierKind2;\n})(PrivateIdentifierKind || {});\nfunction createEmitHelperFactory(context) {\n  const factory2 = context.factory;\n  const immutableTrue = memoize(() => setInternalEmitFlags(factory2.createTrue(), 8 /* Immutable */));\n  const immutableFalse = memoize(() => setInternalEmitFlags(factory2.createFalse(), 8 /* Immutable */));\n  return {\n    getUnscopedHelperName,\n    // TypeScript Helpers\n    createDecorateHelper,\n    createMetadataHelper,\n    createParamHelper,\n    // ES Decorators Helpers\n    createESDecorateHelper,\n    createRunInitializersHelper,\n    // ES2018 Helpers\n    createAssignHelper,\n    createAwaitHelper,\n    createAsyncGeneratorHelper,\n    createAsyncDelegatorHelper,\n    createAsyncValuesHelper,\n    // ES2018 Destructuring Helpers\n    createRestHelper,\n    // ES2017 Helpers\n    createAwaiterHelper,\n    // ES2015 Helpers\n    createExtendsHelper,\n    createTemplateObjectHelper,\n    createSpreadArrayHelper,\n    createPropKeyHelper,\n    createSetFunctionNameHelper,\n    // ES2015 Destructuring Helpers\n    createValuesHelper,\n    createReadHelper,\n    // ES2015 Generator Helpers\n    createGeneratorHelper,\n    // ES Module Helpers\n    createImportStarHelper,\n    createImportStarCallbackHelper,\n    createImportDefaultHelper,\n    createExportStarHelper,\n    // Class Fields Helpers\n    createClassPrivateFieldGetHelper,\n    createClassPrivateFieldSetHelper,\n    createClassPrivateFieldInHelper,\n    // 'using' helpers\n    createAddDisposableResourceHelper,\n    createDisposeResourcesHelper,\n    // --rewriteRelativeImportExtensions helpers\n    createRewriteRelativeImportExtensionsHelper\n  };\n  function getUnscopedHelperName(name) {\n    return setEmitFlags(factory2.createIdentifier(name), 8192 /* HelperName */ | 4 /* AdviseOnEmitNode */);\n  }\n  function createDecorateHelper(decoratorExpressions, target, memberName, descriptor) {\n    context.requestEmitHelper(decorateHelper);\n    const argumentsArray = [];\n    argumentsArray.push(factory2.createArrayLiteralExpression(\n      decoratorExpressions,\n      /*multiLine*/\n      true\n    ));\n    argumentsArray.push(target);\n    if (memberName) {\n      argumentsArray.push(memberName);\n      if (descriptor) {\n        argumentsArray.push(descriptor);\n      }\n    }\n    return factory2.createCallExpression(\n      getUnscopedHelperName(\"__decorate\"),\n      /*typeArguments*/\n      void 0,\n      argumentsArray\n    );\n  }\n  function createMetadataHelper(metadataKey, metadataValue) {\n    context.requestEmitHelper(metadataHelper);\n    return factory2.createCallExpression(\n      getUnscopedHelperName(\"__metadata\"),\n      /*typeArguments*/\n      void 0,\n      [\n        factory2.createStringLiteral(metadataKey),\n        metadataValue\n      ]\n    );\n  }\n  function createParamHelper(expression, parameterOffset, location) {\n    context.requestEmitHelper(paramHelper);\n    return setTextRange(\n      factory2.createCallExpression(\n        getUnscopedHelperName(\"__param\"),\n        /*typeArguments*/\n        void 0,\n        [\n          factory2.createNumericLiteral(parameterOffset + \"\"),\n          expression\n        ]\n      ),\n      location\n    );\n  }\n  function createESDecorateClassContextObject(contextIn) {\n    const properties = [\n      factory2.createPropertyAssignment(factory2.createIdentifier(\"kind\"), factory2.createStringLiteral(\"class\")),\n      factory2.createPropertyAssignment(factory2.createIdentifier(\"name\"), contextIn.name),\n      factory2.createPropertyAssignment(factory2.createIdentifier(\"metadata\"), contextIn.metadata)\n    ];\n    return factory2.createObjectLiteralExpression(properties);\n  }\n  function createESDecorateClassElementAccessGetMethod(elementName) {\n    const accessor = elementName.computed ? factory2.createElementAccessExpression(factory2.createIdentifier(\"obj\"), elementName.name) : factory2.createPropertyAccessExpression(factory2.createIdentifier(\"obj\"), elementName.name);\n    return factory2.createPropertyAssignment(\n      \"get\",\n      factory2.createArrowFunction(\n        /*modifiers*/\n        void 0,\n        /*typeParameters*/\n        void 0,\n        [factory2.createParameterDeclaration(\n          /*modifiers*/\n          void 0,\n          /*dotDotDotToken*/\n          void 0,\n          factory2.createIdentifier(\"obj\")\n        )],\n        /*type*/\n        void 0,\n        /*equalsGreaterThanToken*/\n        void 0,\n        accessor\n      )\n    );\n  }\n  function createESDecorateClassElementAccessSetMethod(elementName) {\n    const accessor = elementName.computed ? factory2.createElementAccessExpression(factory2.createIdentifier(\"obj\"), elementName.name) : factory2.createPropertyAccessExpression(factory2.createIdentifier(\"obj\"), elementName.name);\n    return factory2.createPropertyAssignment(\n      \"set\",\n      factory2.createArrowFunction(\n        /*modifiers*/\n        void 0,\n        /*typeParameters*/\n        void 0,\n        [\n          factory2.createParameterDeclaration(\n            /*modifiers*/\n            void 0,\n            /*dotDotDotToken*/\n            void 0,\n            factory2.createIdentifier(\"obj\")\n          ),\n          factory2.createParameterDeclaration(\n            /*modifiers*/\n            void 0,\n            /*dotDotDotToken*/\n            void 0,\n            factory2.createIdentifier(\"value\")\n          )\n        ],\n        /*type*/\n        void 0,\n        /*equalsGreaterThanToken*/\n        void 0,\n        factory2.createBlock([\n          factory2.createExpressionStatement(\n            factory2.createAssignment(\n              accessor,\n              factory2.createIdentifier(\"value\")\n            )\n          )\n        ])\n      )\n    );\n  }\n  function createESDecorateClassElementAccessHasMethod(elementName) {\n    const propertyName = elementName.computed ? elementName.name : isIdentifier(elementName.name) ? factory2.createStringLiteralFromNode(elementName.name) : elementName.name;\n    return factory2.createPropertyAssignment(\n      \"has\",\n      factory2.createArrowFunction(\n        /*modifiers*/\n        void 0,\n        /*typeParameters*/\n        void 0,\n        [factory2.createParameterDeclaration(\n          /*modifiers*/\n          void 0,\n          /*dotDotDotToken*/\n          void 0,\n          factory2.createIdentifier(\"obj\")\n        )],\n        /*type*/\n        void 0,\n        /*equalsGreaterThanToken*/\n        void 0,\n        factory2.createBinaryExpression(\n          propertyName,\n          103 /* InKeyword */,\n          factory2.createIdentifier(\"obj\")\n        )\n      )\n    );\n  }\n  function createESDecorateClassElementAccessObject(name, access) {\n    const properties = [];\n    properties.push(createESDecorateClassElementAccessHasMethod(name));\n    if (access.get) properties.push(createESDecorateClassElementAccessGetMethod(name));\n    if (access.set) properties.push(createESDecorateClassElementAccessSetMethod(name));\n    return factory2.createObjectLiteralExpression(properties);\n  }\n  function createESDecorateClassElementContextObject(contextIn) {\n    const properties = [\n      factory2.createPropertyAssignment(factory2.createIdentifier(\"kind\"), factory2.createStringLiteral(contextIn.kind)),\n      factory2.createPropertyAssignment(factory2.createIdentifier(\"name\"), contextIn.name.computed ? contextIn.name.name : factory2.createStringLiteralFromNode(contextIn.name.name)),\n      factory2.createPropertyAssignment(factory2.createIdentifier(\"static\"), contextIn.static ? factory2.createTrue() : factory2.createFalse()),\n      factory2.createPropertyAssignment(factory2.createIdentifier(\"private\"), contextIn.private ? factory2.createTrue() : factory2.createFalse()),\n      factory2.createPropertyAssignment(factory2.createIdentifier(\"access\"), createESDecorateClassElementAccessObject(contextIn.name, contextIn.access)),\n      factory2.createPropertyAssignment(factory2.createIdentifier(\"metadata\"), contextIn.metadata)\n    ];\n    return factory2.createObjectLiteralExpression(properties);\n  }\n  function createESDecorateContextObject(contextIn) {\n    return contextIn.kind === \"class\" ? createESDecorateClassContextObject(contextIn) : createESDecorateClassElementContextObject(contextIn);\n  }\n  function createESDecorateHelper(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n    context.requestEmitHelper(esDecorateHelper);\n    return factory2.createCallExpression(\n      getUnscopedHelperName(\"__esDecorate\"),\n      /*typeArguments*/\n      void 0,\n      [\n        ctor ?? factory2.createNull(),\n        descriptorIn ?? factory2.createNull(),\n        decorators,\n        createESDecorateContextObject(contextIn),\n        initializers,\n        extraInitializers\n      ]\n    );\n  }\n  function createRunInitializersHelper(thisArg, initializers, value) {\n    context.requestEmitHelper(runInitializersHelper);\n    return factory2.createCallExpression(\n      getUnscopedHelperName(\"__runInitializers\"),\n      /*typeArguments*/\n      void 0,\n      value ? [thisArg, initializers, value] : [thisArg, initializers]\n    );\n  }\n  function createAssignHelper(attributesSegments) {\n    if (getEmitScriptTarget(context.getCompilerOptions()) >= 2 /* ES2015 */) {\n      return factory2.createCallExpression(\n        factory2.createPropertyAccessExpression(factory2.createIdentifier(\"Object\"), \"assign\"),\n        /*typeArguments*/\n        void 0,\n        attributesSegments\n      );\n    }\n    context.requestEmitHelper(assignHelper);\n    return factory2.createCallExpression(\n      getUnscopedHelperName(\"__assign\"),\n      /*typeArguments*/\n      void 0,\n      attributesSegments\n    );\n  }\n  function createAwaitHelper(expression) {\n    context.requestEmitHelper(awaitHelper);\n    return factory2.createCallExpression(\n      getUnscopedHelperName(\"__await\"),\n      /*typeArguments*/\n      void 0,\n      [expression]\n    );\n  }\n  function createAsyncGeneratorHelper(generatorFunc, hasLexicalThis) {\n    context.requestEmitHelper(awaitHelper);\n    context.requestEmitHelper(asyncGeneratorHelper);\n    (generatorFunc.emitNode || (generatorFunc.emitNode = {})).flags |= 524288 /* AsyncFunctionBody */ | 1048576 /* ReuseTempVariableScope */;\n    return factory2.createCallExpression(\n      getUnscopedHelperName(\"__asyncGenerator\"),\n      /*typeArguments*/\n      void 0,\n      [\n        hasLexicalThis ? factory2.createThis() : factory2.createVoidZero(),\n        factory2.createIdentifier(\"arguments\"),\n        generatorFunc\n      ]\n    );\n  }\n  function createAsyncDelegatorHelper(expression) {\n    context.requestEmitHelper(awaitHelper);\n    context.requestEmitHelper(asyncDelegator);\n    return factory2.createCallExpression(\n      getUnscopedHelperName(\"__asyncDelegator\"),\n      /*typeArguments*/\n      void 0,\n      [expression]\n    );\n  }\n  function createAsyncValuesHelper(expression) {\n    context.requestEmitHelper(asyncValues);\n    return factory2.createCallExpression(\n      getUnscopedHelperName(\"__asyncValues\"),\n      /*typeArguments*/\n      void 0,\n      [expression]\n    );\n  }\n  function createRestHelper(value, elements, computedTempVariables, location) {\n    context.requestEmitHelper(restHelper);\n    const propertyNames = [];\n    let computedTempVariableOffset = 0;\n    for (let i = 0; i < elements.length - 1; i++) {\n      const propertyName = getPropertyNameOfBindingOrAssignmentElement(elements[i]);\n      if (propertyName) {\n        if (isComputedPropertyName(propertyName)) {\n          Debug.assertIsDefined(computedTempVariables, \"Encountered computed property name but 'computedTempVariables' argument was not provided.\");\n          const temp = computedTempVariables[computedTempVariableOffset];\n          computedTempVariableOffset++;\n          propertyNames.push(\n            factory2.createConditionalExpression(\n              factory2.createTypeCheck(temp, \"symbol\"),\n              /*questionToken*/\n              void 0,\n              temp,\n              /*colonToken*/\n              void 0,\n              factory2.createAdd(temp, factory2.createStringLiteral(\"\"))\n            )\n          );\n        } else {\n          propertyNames.push(factory2.createStringLiteralFromNode(propertyName));\n        }\n      }\n    }\n    return factory2.createCallExpression(\n      getUnscopedHelperName(\"__rest\"),\n      /*typeArguments*/\n      void 0,\n      [\n        value,\n        setTextRange(\n          factory2.createArrayLiteralExpression(propertyNames),\n          location\n        )\n      ]\n    );\n  }\n  function createAwaiterHelper(hasLexicalThis, argumentsExpression, promiseConstructor, parameters, body) {\n    context.requestEmitHelper(awaiterHelper);\n    const generatorFunc = factory2.createFunctionExpression(\n      /*modifiers*/\n      void 0,\n      factory2.createToken(42 /* AsteriskToken */),\n      /*name*/\n      void 0,\n      /*typeParameters*/\n      void 0,\n      parameters ?? [],\n      /*type*/\n      void 0,\n      body\n    );\n    (generatorFunc.emitNode || (generatorFunc.emitNode = {})).flags |= 524288 /* AsyncFunctionBody */ | 1048576 /* ReuseTempVariableScope */;\n    return factory2.createCallExpression(\n      getUnscopedHelperName(\"__awaiter\"),\n      /*typeArguments*/\n      void 0,\n      [\n        hasLexicalThis ? factory2.createThis() : factory2.createVoidZero(),\n        argumentsExpression ?? factory2.createVoidZero(),\n        promiseConstructor ? createExpressionFromEntityName(factory2, promiseConstructor) : factory2.createVoidZero(),\n        generatorFunc\n      ]\n    );\n  }\n  function createExtendsHelper(name) {\n    context.requestEmitHelper(extendsHelper);\n    return factory2.createCallExpression(\n      getUnscopedHelperName(\"__extends\"),\n      /*typeArguments*/\n      void 0,\n      [name, factory2.createUniqueName(\"_super\", 16 /* Optimistic */ | 32 /* FileLevel */)]\n    );\n  }\n  function createTemplateObjectHelper(cooked, raw) {\n    context.requestEmitHelper(templateObjectHelper);\n    return factory2.createCallExpression(\n      getUnscopedHelperName(\"__makeTemplateObject\"),\n      /*typeArguments*/\n      void 0,\n      [cooked, raw]\n    );\n  }\n  function createSpreadArrayHelper(to, from, packFrom) {\n    context.requestEmitHelper(spreadArrayHelper);\n    return factory2.createCallExpression(\n      getUnscopedHelperName(\"__spreadArray\"),\n      /*typeArguments*/\n      void 0,\n      [to, from, packFrom ? immutableTrue() : immutableFalse()]\n    );\n  }\n  function createPropKeyHelper(expr) {\n    context.requestEmitHelper(propKeyHelper);\n    return factory2.createCallExpression(\n      getUnscopedHelperName(\"__propKey\"),\n      /*typeArguments*/\n      void 0,\n      [expr]\n    );\n  }\n  function createSetFunctionNameHelper(f, name, prefix) {\n    context.requestEmitHelper(setFunctionNameHelper);\n    return context.factory.createCallExpression(\n      getUnscopedHelperName(\"__setFunctionName\"),\n      /*typeArguments*/\n      void 0,\n      prefix ? [f, name, context.factory.createStringLiteral(prefix)] : [f, name]\n    );\n  }\n  function createValuesHelper(expression) {\n    context.requestEmitHelper(valuesHelper);\n    return factory2.createCallExpression(\n      getUnscopedHelperName(\"__values\"),\n      /*typeArguments*/\n      void 0,\n      [expression]\n    );\n  }\n  function createReadHelper(iteratorRecord, count) {\n    context.requestEmitHelper(readHelper);\n    return factory2.createCallExpression(\n      getUnscopedHelperName(\"__read\"),\n      /*typeArguments*/\n      void 0,\n      count !== void 0 ? [iteratorRecord, factory2.createNumericLiteral(count + \"\")] : [iteratorRecord]\n    );\n  }\n  function createGeneratorHelper(body) {\n    context.requestEmitHelper(generatorHelper);\n    return factory2.createCallExpression(\n      getUnscopedHelperName(\"__generator\"),\n      /*typeArguments*/\n      void 0,\n      [factory2.createThis(), body]\n    );\n  }\n  function createImportStarHelper(expression) {\n    context.requestEmitHelper(importStarHelper);\n    return factory2.createCallExpression(\n      getUnscopedHelperName(\"__importStar\"),\n      /*typeArguments*/\n      void 0,\n      [expression]\n    );\n  }\n  function createImportStarCallbackHelper() {\n    context.requestEmitHelper(importStarHelper);\n    return getUnscopedHelperName(\"__importStar\");\n  }\n  function createImportDefaultHelper(expression) {\n    context.requestEmitHelper(importDefaultHelper);\n    return factory2.createCallExpression(\n      getUnscopedHelperName(\"__importDefault\"),\n      /*typeArguments*/\n      void 0,\n      [expression]\n    );\n  }\n  function createExportStarHelper(moduleExpression, exportsExpression = factory2.createIdentifier(\"exports\")) {\n    context.requestEmitHelper(exportStarHelper);\n    context.requestEmitHelper(createBindingHelper);\n    return factory2.createCallExpression(\n      getUnscopedHelperName(\"__exportStar\"),\n      /*typeArguments*/\n      void 0,\n      [moduleExpression, exportsExpression]\n    );\n  }\n  function createClassPrivateFieldGetHelper(receiver, state, kind, f) {\n    context.requestEmitHelper(classPrivateFieldGetHelper);\n    let args;\n    if (!f) {\n      args = [receiver, state, factory2.createStringLiteral(kind)];\n    } else {\n      args = [receiver, state, factory2.createStringLiteral(kind), f];\n    }\n    return factory2.createCallExpression(\n      getUnscopedHelperName(\"__classPrivateFieldGet\"),\n      /*typeArguments*/\n      void 0,\n      args\n    );\n  }\n  function createClassPrivateFieldSetHelper(receiver, state, value, kind, f) {\n    context.requestEmitHelper(classPrivateFieldSetHelper);\n    let args;\n    if (!f) {\n      args = [receiver, state, value, factory2.createStringLiteral(kind)];\n    } else {\n      args = [receiver, state, value, factory2.createStringLiteral(kind), f];\n    }\n    return factory2.createCallExpression(\n      getUnscopedHelperName(\"__classPrivateFieldSet\"),\n      /*typeArguments*/\n      void 0,\n      args\n    );\n  }\n  function createClassPrivateFieldInHelper(state, receiver) {\n    context.requestEmitHelper(classPrivateFieldInHelper);\n    return factory2.createCallExpression(\n      getUnscopedHelperName(\"__classPrivateFieldIn\"),\n      /*typeArguments*/\n      void 0,\n      [state, receiver]\n    );\n  }\n  function createAddDisposableResourceHelper(envBinding, value, async) {\n    context.requestEmitHelper(addDisposableResourceHelper);\n    return factory2.createCallExpression(\n      getUnscopedHelperName(\"__addDisposableResource\"),\n      /*typeArguments*/\n      void 0,\n      [envBinding, value, async ? factory2.createTrue() : factory2.createFalse()]\n    );\n  }\n  function createDisposeResourcesHelper(envBinding) {\n    context.requestEmitHelper(disposeResourcesHelper);\n    return factory2.createCallExpression(\n      getUnscopedHelperName(\"__disposeResources\"),\n      /*typeArguments*/\n      void 0,\n      [envBinding]\n    );\n  }\n  function createRewriteRelativeImportExtensionsHelper(expression) {\n    context.requestEmitHelper(rewriteRelativeImportExtensionsHelper);\n    return factory2.createCallExpression(\n      getUnscopedHelperName(\"__rewriteRelativeImportExtension\"),\n      /*typeArguments*/\n      void 0,\n      context.getCompilerOptions().jsx === 1 /* Preserve */ ? [expression, factory2.createTrue()] : [expression]\n    );\n  }\n}\nfunction compareEmitHelpers(x, y) {\n  if (x === y) return 0 /* EqualTo */;\n  if (x.priority === y.priority) return 0 /* EqualTo */;\n  if (x.priority === void 0) return 1 /* GreaterThan */;\n  if (y.priority === void 0) return -1 /* LessThan */;\n  return compareValues(x.priority, y.priority);\n}\nfunction helperString(input, ...args) {\n  return (uniqueName) => {\n    let result = \"\";\n    for (let i = 0; i < args.length; i++) {\n      result += input[i];\n      result += uniqueName(args[i]);\n    }\n    result += input[input.length - 1];\n    return result;\n  };\n}\nvar decorateHelper = {\n  name: \"typescript:decorate\",\n  importName: \"__decorate\",\n  scoped: false,\n  priority: 2,\n  text: `\n            var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n                var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n                if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n                else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n                return c > 3 && r && Object.defineProperty(target, key, r), r;\n            };`\n};\nvar metadataHelper = {\n  name: \"typescript:metadata\",\n  importName: \"__metadata\",\n  scoped: false,\n  priority: 3,\n  text: `\n            var __metadata = (this && this.__metadata) || function (k, v) {\n                if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(k, v);\n            };`\n};\nvar paramHelper = {\n  name: \"typescript:param\",\n  importName: \"__param\",\n  scoped: false,\n  priority: 4,\n  text: `\n            var __param = (this && this.__param) || function (paramIndex, decorator) {\n                return function (target, key) { decorator(target, key, paramIndex); }\n            };`\n};\nvar esDecorateHelper = {\n  name: \"typescript:esDecorate\",\n  importName: \"__esDecorate\",\n  scoped: false,\n  priority: 2,\n  text: `\n        var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n            function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n            var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n            var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n            var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n            var _, done = false;\n            for (var i = decorators.length - 1; i >= 0; i--) {\n                var context = {};\n                for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n                for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n                context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n                var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n                if (kind === \"accessor\") {\n                    if (result === void 0) continue;\n                    if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n                    if (_ = accept(result.get)) descriptor.get = _;\n                    if (_ = accept(result.set)) descriptor.set = _;\n                    if (_ = accept(result.init)) initializers.unshift(_);\n                }\n                else if (_ = accept(result)) {\n                    if (kind === \"field\") initializers.unshift(_);\n                    else descriptor[key] = _;\n                }\n            }\n            if (target) Object.defineProperty(target, contextIn.name, descriptor);\n            done = true;\n        };`\n};\nvar runInitializersHelper = {\n  name: \"typescript:runInitializers\",\n  importName: \"__runInitializers\",\n  scoped: false,\n  priority: 2,\n  text: `\n        var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {\n            var useValue = arguments.length > 2;\n            for (var i = 0; i < initializers.length; i++) {\n                value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n            }\n            return useValue ? value : void 0;\n        };`\n};\nvar assignHelper = {\n  name: \"typescript:assign\",\n  importName: \"__assign\",\n  scoped: false,\n  priority: 1,\n  text: `\n            var __assign = (this && this.__assign) || function () {\n                __assign = Object.assign || function(t) {\n                    for (var s, i = 1, n = arguments.length; i < n; i++) {\n                        s = arguments[i];\n                        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n                            t[p] = s[p];\n                    }\n                    return t;\n                };\n                return __assign.apply(this, arguments);\n            };`\n};\nvar awaitHelper = {\n  name: \"typescript:await\",\n  importName: \"__await\",\n  scoped: false,\n  text: `\n            var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }`\n};\nvar asyncGeneratorHelper = {\n  name: \"typescript:asyncGenerator\",\n  importName: \"__asyncGenerator\",\n  scoped: false,\n  dependencies: [awaitHelper],\n  text: `\n        var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {\n            if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n            var g = generator.apply(thisArg, _arguments || []), i, q = [];\n            return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n            function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n            function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n            function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n            function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n            function fulfill(value) { resume(\"next\", value); }\n            function reject(value) { resume(\"throw\", value); }\n            function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n        };`\n};\nvar asyncDelegator = {\n  name: \"typescript:asyncDelegator\",\n  importName: \"__asyncDelegator\",\n  scoped: false,\n  dependencies: [awaitHelper],\n  text: `\n            var __asyncDelegator = (this && this.__asyncDelegator) || function (o) {\n                var i, p;\n                return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n                function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n            };`\n};\nvar asyncValues = {\n  name: \"typescript:asyncValues\",\n  importName: \"__asyncValues\",\n  scoped: false,\n  text: `\n            var __asyncValues = (this && this.__asyncValues) || function (o) {\n                if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n                var m = o[Symbol.asyncIterator], i;\n                return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n                function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n                function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n            };`\n};\nvar restHelper = {\n  name: \"typescript:rest\",\n  importName: \"__rest\",\n  scoped: false,\n  text: `\n            var __rest = (this && this.__rest) || function (s, e) {\n                var t = {};\n                for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n                    t[p] = s[p];\n                if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n                    for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n                        if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n                            t[p[i]] = s[p[i]];\n                    }\n                return t;\n            };`\n};\nvar awaiterHelper = {\n  name: \"typescript:awaiter\",\n  importName: \"__awaiter\",\n  scoped: false,\n  priority: 5,\n  text: `\n            var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n                function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n                return new (P || (P = Promise))(function (resolve, reject) {\n                    function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n                    function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n                    function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n                    step((generator = generator.apply(thisArg, _arguments || [])).next());\n                });\n            };`\n};\nvar extendsHelper = {\n  name: \"typescript:extends\",\n  importName: \"__extends\",\n  scoped: false,\n  priority: 0,\n  text: `\n            var __extends = (this && this.__extends) || (function () {\n                var extendStatics = function (d, b) {\n                    extendStatics = Object.setPrototypeOf ||\n                        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n                        function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n                    return extendStatics(d, b);\n                };\n\n                return function (d, b) {\n                    if (typeof b !== \"function\" && b !== null)\n                        throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n                    extendStatics(d, b);\n                    function __() { this.constructor = d; }\n                    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n                };\n            })();`\n};\nvar templateObjectHelper = {\n  name: \"typescript:makeTemplateObject\",\n  importName: \"__makeTemplateObject\",\n  scoped: false,\n  priority: 0,\n  text: `\n            var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {\n                if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n                return cooked;\n            };`\n};\nvar readHelper = {\n  name: \"typescript:read\",\n  importName: \"__read\",\n  scoped: false,\n  text: `\n            var __read = (this && this.__read) || function (o, n) {\n                var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n                if (!m) return o;\n                var i = m.call(o), r, ar = [], e;\n                try {\n                    while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n                }\n                catch (error) { e = { error: error }; }\n                finally {\n                    try {\n                        if (r && !r.done && (m = i[\"return\"])) m.call(i);\n                    }\n                    finally { if (e) throw e.error; }\n                }\n                return ar;\n            };`\n};\nvar spreadArrayHelper = {\n  name: \"typescript:spreadArray\",\n  importName: \"__spreadArray\",\n  scoped: false,\n  text: `\n            var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n                if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n                    if (ar || !(i in from)) {\n                        if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n                        ar[i] = from[i];\n                    }\n                }\n                return to.concat(ar || Array.prototype.slice.call(from));\n            };`\n};\nvar propKeyHelper = {\n  name: \"typescript:propKey\",\n  importName: \"__propKey\",\n  scoped: false,\n  text: `\n        var __propKey = (this && this.__propKey) || function (x) {\n            return typeof x === \"symbol\" ? x : \"\".concat(x);\n        };`\n};\nvar setFunctionNameHelper = {\n  name: \"typescript:setFunctionName\",\n  importName: \"__setFunctionName\",\n  scoped: false,\n  text: `\n        var __setFunctionName = (this && this.__setFunctionName) || function (f, name, prefix) {\n            if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n            return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n        };`\n};\nvar valuesHelper = {\n  name: \"typescript:values\",\n  importName: \"__values\",\n  scoped: false,\n  text: `\n            var __values = (this && this.__values) || function(o) {\n                var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n                if (m) return m.call(o);\n                if (o && typeof o.length === \"number\") return {\n                    next: function () {\n                        if (o && i >= o.length) o = void 0;\n                        return { value: o && o[i++], done: !o };\n                    }\n                };\n                throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n            };`\n};\nvar generatorHelper = {\n  name: \"typescript:generator\",\n  importName: \"__generator\",\n  scoped: false,\n  priority: 6,\n  text: `\n            var __generator = (this && this.__generator) || function (thisArg, body) {\n                var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n                return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n                function verb(n) { return function (v) { return step([n, v]); }; }\n                function step(op) {\n                    if (f) throw new TypeError(\"Generator is already executing.\");\n                    while (g && (g = 0, op[0] && (_ = 0)), _) try {\n                        if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n                        if (y = 0, t) op = [op[0] & 2, t.value];\n                        switch (op[0]) {\n                            case 0: case 1: t = op; break;\n                            case 4: _.label++; return { value: op[1], done: false };\n                            case 5: _.label++; y = op[1]; op = [0]; continue;\n                            case 7: op = _.ops.pop(); _.trys.pop(); continue;\n                            default:\n                                if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n                                if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n                                if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n                                if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n                                if (t[2]) _.ops.pop();\n                                _.trys.pop(); continue;\n                        }\n                        op = body.call(thisArg, _);\n                    } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n                    if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n                }\n            };`\n};\nvar createBindingHelper = {\n  name: \"typescript:commonjscreatebinding\",\n  importName: \"__createBinding\",\n  scoped: false,\n  priority: 1,\n  text: `\n            var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n                if (k2 === undefined) k2 = k;\n                var desc = Object.getOwnPropertyDescriptor(m, k);\n                if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n                  desc = { enumerable: true, get: function() { return m[k]; } };\n                }\n                Object.defineProperty(o, k2, desc);\n            }) : (function(o, m, k, k2) {\n                if (k2 === undefined) k2 = k;\n                o[k2] = m[k];\n            }));`\n};\nvar setModuleDefaultHelper = {\n  name: \"typescript:commonjscreatevalue\",\n  importName: \"__setModuleDefault\",\n  scoped: false,\n  priority: 1,\n  text: `\n            var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n                Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n            }) : function(o, v) {\n                o[\"default\"] = v;\n            });`\n};\nvar importStarHelper = {\n  name: \"typescript:commonjsimportstar\",\n  importName: \"__importStar\",\n  scoped: false,\n  dependencies: [createBindingHelper, setModuleDefaultHelper],\n  priority: 2,\n  text: `\n            var __importStar = (this && this.__importStar) || (function () {\n                var ownKeys = function(o) {\n                    ownKeys = Object.getOwnPropertyNames || function (o) {\n                        var ar = [];\n                        for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n                        return ar;\n                    };\n                    return ownKeys(o);\n                };\n                return function (mod) {\n                    if (mod && mod.__esModule) return mod;\n                    var result = {};\n                    if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n                    __setModuleDefault(result, mod);\n                    return result;\n                };\n            })();`\n};\nvar importDefaultHelper = {\n  name: \"typescript:commonjsimportdefault\",\n  importName: \"__importDefault\",\n  scoped: false,\n  text: `\n            var __importDefault = (this && this.__importDefault) || function (mod) {\n                return (mod && mod.__esModule) ? mod : { \"default\": mod };\n            };`\n};\nvar exportStarHelper = {\n  name: \"typescript:export-star\",\n  importName: \"__exportStar\",\n  scoped: false,\n  dependencies: [createBindingHelper],\n  priority: 2,\n  text: `\n            var __exportStar = (this && this.__exportStar) || function(m, exports) {\n                for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n            };`\n};\nvar classPrivateFieldGetHelper = {\n  name: \"typescript:classPrivateFieldGet\",\n  importName: \"__classPrivateFieldGet\",\n  scoped: false,\n  text: `\n            var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n                if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n                if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n                return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n            };`\n};\nvar classPrivateFieldSetHelper = {\n  name: \"typescript:classPrivateFieldSet\",\n  importName: \"__classPrivateFieldSet\",\n  scoped: false,\n  text: `\n            var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n                if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n                if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n                if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n                return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n            };`\n};\nvar classPrivateFieldInHelper = {\n  name: \"typescript:classPrivateFieldIn\",\n  importName: \"__classPrivateFieldIn\",\n  scoped: false,\n  text: `\n            var __classPrivateFieldIn = (this && this.__classPrivateFieldIn) || function(state, receiver) {\n                if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n                return typeof state === \"function\" ? receiver === state : state.has(receiver);\n            };`\n};\nvar addDisposableResourceHelper = {\n  name: \"typescript:addDisposableResource\",\n  importName: \"__addDisposableResource\",\n  scoped: false,\n  text: `\n        var __addDisposableResource = (this && this.__addDisposableResource) || function (env, value, async) {\n            if (value !== null && value !== void 0) {\n                if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n                var dispose, inner;\n                if (async) {\n                    if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n                    dispose = value[Symbol.asyncDispose];\n                }\n                if (dispose === void 0) {\n                    if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n                    dispose = value[Symbol.dispose];\n                    if (async) inner = dispose;\n                }\n                if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n                if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n                env.stack.push({ value: value, dispose: dispose, async: async });\n            }\n            else if (async) {\n                env.stack.push({ async: true });\n            }\n            return value;\n        };`\n};\nvar disposeResourcesHelper = {\n  name: \"typescript:disposeResources\",\n  importName: \"__disposeResources\",\n  scoped: false,\n  text: `\n        var __disposeResources = (this && this.__disposeResources) || (function (SuppressedError) {\n            return function (env) {\n                function fail(e) {\n                    env.error = env.hasError ? new SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n                    env.hasError = true;\n                }\n                var r, s = 0;\n                function next() {\n                    while (r = env.stack.pop()) {\n                        try {\n                            if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n                            if (r.dispose) {\n                                var result = r.dispose.call(r.value);\n                                if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n                            }\n                            else s |= 1;\n                        }\n                        catch (e) {\n                            fail(e);\n                        }\n                    }\n                    if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n                    if (env.hasError) throw env.error;\n                }\n                return next();\n            };\n        })(typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n            var e = new Error(message);\n            return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n        });`\n};\nvar rewriteRelativeImportExtensionsHelper = {\n  name: \"typescript:rewriteRelativeImportExtensions\",\n  importName: \"__rewriteRelativeImportExtension\",\n  scoped: false,\n  text: `\n        var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {\n            if (typeof path === \"string\" && /^\\\\.\\\\.?\\\\//.test(path)) {\n                return path.replace(/\\\\.(tsx)$|((?:\\\\.d)?)((?:\\\\.[^./]+?)?)\\\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n                    return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n                });\n            }\n            return path;\n        };`\n};\nvar asyncSuperHelper = {\n  name: \"typescript:async-super\",\n  scoped: true,\n  text: helperString`\n            const ${\"_superIndex\"} = name => super[name];`\n};\nvar advancedAsyncSuperHelper = {\n  name: \"typescript:advanced-async-super\",\n  scoped: true,\n  text: helperString`\n            const ${\"_superIndex\"} = (function (geti, seti) {\n                const cache = Object.create(null);\n                return name => cache[name] || (cache[name] = { get value() { return geti(name); }, set value(v) { seti(name, v); } });\n            })(name => super[name], (name, value) => super[name] = value);`\n};\nfunction isCallToHelper(firstSegment, helperName) {\n  return isCallExpression(firstSegment) && isIdentifier(firstSegment.expression) && (getEmitFlags(firstSegment.expression) & 8192 /* HelperName */) !== 0 && firstSegment.expression.escapedText === helperName;\n}\n\n// src/compiler/factory/nodeTests.ts\nfunction isNumericLiteral(node) {\n  return node.kind === 9 /* NumericLiteral */;\n}\nfunction isBigIntLiteral(node) {\n  return node.kind === 10 /* BigIntLiteral */;\n}\nfunction isStringLiteral(node) {\n  return node.kind === 11 /* StringLiteral */;\n}\nfunction isJsxText(node) {\n  return node.kind === 12 /* JsxText */;\n}\nfunction isRegularExpressionLiteral(node) {\n  return node.kind === 14 /* RegularExpressionLiteral */;\n}\nfunction isNoSubstitutionTemplateLiteral(node) {\n  return node.kind === 15 /* NoSubstitutionTemplateLiteral */;\n}\nfunction isTemplateHead(node) {\n  return node.kind === 16 /* TemplateHead */;\n}\nfunction isTemplateMiddle(node) {\n  return node.kind === 17 /* TemplateMiddle */;\n}\nfunction isTemplateTail(node) {\n  return node.kind === 18 /* TemplateTail */;\n}\nfunction isDotDotDotToken(node) {\n  return node.kind === 26 /* DotDotDotToken */;\n}\nfunction isCommaToken(node) {\n  return node.kind === 28 /* CommaToken */;\n}\nfunction isPlusToken(node) {\n  return node.kind === 40 /* PlusToken */;\n}\nfunction isMinusToken(node) {\n  return node.kind === 41 /* MinusToken */;\n}\nfunction isAsteriskToken(node) {\n  return node.kind === 42 /* AsteriskToken */;\n}\nfunction isExclamationToken(node) {\n  return node.kind === 54 /* ExclamationToken */;\n}\nfunction isQuestionToken(node) {\n  return node.kind === 58 /* QuestionToken */;\n}\nfunction isColonToken(node) {\n  return node.kind === 59 /* ColonToken */;\n}\nfunction isQuestionDotToken(node) {\n  return node.kind === 29 /* QuestionDotToken */;\n}\nfunction isEqualsGreaterThanToken(node) {\n  return node.kind === 39 /* EqualsGreaterThanToken */;\n}\nfunction isIdentifier(node) {\n  return node.kind === 80 /* Identifier */;\n}\nfunction isPrivateIdentifier(node) {\n  return node.kind === 81 /* PrivateIdentifier */;\n}\nfunction isExportModifier(node) {\n  return node.kind === 95 /* ExportKeyword */;\n}\nfunction isDefaultModifier(node) {\n  return node.kind === 90 /* DefaultKeyword */;\n}\nfunction isAsyncModifier(node) {\n  return node.kind === 134 /* AsyncKeyword */;\n}\nfunction isAssertsKeyword(node) {\n  return node.kind === 131 /* AssertsKeyword */;\n}\nfunction isAwaitKeyword(node) {\n  return node.kind === 135 /* AwaitKeyword */;\n}\nfunction isReadonlyKeyword(node) {\n  return node.kind === 148 /* ReadonlyKeyword */;\n}\nfunction isStaticModifier(node) {\n  return node.kind === 126 /* StaticKeyword */;\n}\nfunction isAbstractModifier(node) {\n  return node.kind === 128 /* AbstractKeyword */;\n}\nfunction isOverrideModifier(node) {\n  return node.kind === 164 /* OverrideKeyword */;\n}\nfunction isAccessorModifier(node) {\n  return node.kind === 129 /* AccessorKeyword */;\n}\nfunction isSuperKeyword(node) {\n  return node.kind === 108 /* SuperKeyword */;\n}\nfunction isImportKeyword(node) {\n  return node.kind === 102 /* ImportKeyword */;\n}\nfunction isCaseKeyword(node) {\n  return node.kind === 84 /* CaseKeyword */;\n}\nfunction isQualifiedName(node) {\n  return node.kind === 167 /* QualifiedName */;\n}\nfunction isComputedPropertyName(node) {\n  return node.kind === 168 /* ComputedPropertyName */;\n}\nfunction isTypeParameterDeclaration(node) {\n  return node.kind === 169 /* TypeParameter */;\n}\nfunction isParameter(node) {\n  return node.kind === 170 /* Parameter */;\n}\nfunction isDecorator(node) {\n  return node.kind === 171 /* Decorator */;\n}\nfunction isPropertySignature(node) {\n  return node.kind === 172 /* PropertySignature */;\n}\nfunction isPropertyDeclaration(node) {\n  return node.kind === 173 /* PropertyDeclaration */;\n}\nfunction isMethodSignature(node) {\n  return node.kind === 174 /* MethodSignature */;\n}\nfunction isMethodDeclaration(node) {\n  return node.kind === 175 /* MethodDeclaration */;\n}\nfunction isClassStaticBlockDeclaration(node) {\n  return node.kind === 176 /* ClassStaticBlockDeclaration */;\n}\nfunction isConstructorDeclaration(node) {\n  return node.kind === 177 /* Constructor */;\n}\nfunction isGetAccessorDeclaration(node) {\n  return node.kind === 178 /* GetAccessor */;\n}\nfunction isSetAccessorDeclaration(node) {\n  return node.kind === 179 /* SetAccessor */;\n}\nfunction isCallSignatureDeclaration(node) {\n  return node.kind === 180 /* CallSignature */;\n}\nfunction isConstructSignatureDeclaration(node) {\n  return node.kind === 181 /* ConstructSignature */;\n}\nfunction isIndexSignatureDeclaration(node) {\n  return node.kind === 182 /* IndexSignature */;\n}\nfunction isTypePredicateNode(node) {\n  return node.kind === 183 /* TypePredicate */;\n}\nfunction isTypeReferenceNode(node) {\n  return node.kind === 184 /* TypeReference */;\n}\nfunction isFunctionTypeNode(node) {\n  return node.kind === 185 /* FunctionType */;\n}\nfunction isConstructorTypeNode(node) {\n  return node.kind === 186 /* ConstructorType */;\n}\nfunction isTypeQueryNode(node) {\n  return node.kind === 187 /* TypeQuery */;\n}\nfunction isTypeLiteralNode(node) {\n  return node.kind === 188 /* TypeLiteral */;\n}\nfunction isArrayTypeNode(node) {\n  return node.kind === 189 /* ArrayType */;\n}\nfunction isTupleTypeNode(node) {\n  return node.kind === 190 /* TupleType */;\n}\nfunction isNamedTupleMember(node) {\n  return node.kind === 203 /* NamedTupleMember */;\n}\nfunction isOptionalTypeNode(node) {\n  return node.kind === 191 /* OptionalType */;\n}\nfunction isRestTypeNode(node) {\n  return node.kind === 192 /* RestType */;\n}\nfunction isUnionTypeNode(node) {\n  return node.kind === 193 /* UnionType */;\n}\nfunction isIntersectionTypeNode(node) {\n  return node.kind === 194 /* IntersectionType */;\n}\nfunction isConditionalTypeNode(node) {\n  return node.kind === 195 /* ConditionalType */;\n}\nfunction isInferTypeNode(node) {\n  return node.kind === 196 /* InferType */;\n}\nfunction isParenthesizedTypeNode(node) {\n  return node.kind === 197 /* ParenthesizedType */;\n}\nfunction isThisTypeNode(node) {\n  return node.kind === 198 /* ThisType */;\n}\nfunction isTypeOperatorNode(node) {\n  return node.kind === 199 /* TypeOperator */;\n}\nfunction isIndexedAccessTypeNode(node) {\n  return node.kind === 200 /* IndexedAccessType */;\n}\nfunction isMappedTypeNode(node) {\n  return node.kind === 201 /* MappedType */;\n}\nfunction isLiteralTypeNode(node) {\n  return node.kind === 202 /* LiteralType */;\n}\nfunction isImportTypeNode(node) {\n  return node.kind === 206 /* ImportType */;\n}\nfunction isTemplateLiteralTypeSpan(node) {\n  return node.kind === 205 /* TemplateLiteralTypeSpan */;\n}\nfunction isTemplateLiteralTypeNode(node) {\n  return node.kind === 204 /* TemplateLiteralType */;\n}\nfunction isObjectBindingPattern(node) {\n  return node.kind === 207 /* ObjectBindingPattern */;\n}\nfunction isArrayBindingPattern(node) {\n  return node.kind === 208 /* ArrayBindingPattern */;\n}\nfunction isBindingElement(node) {\n  return node.kind === 209 /* BindingElement */;\n}\nfunction isArrayLiteralExpression(node) {\n  return node.kind === 210 /* ArrayLiteralExpression */;\n}\nfunction isObjectLiteralExpression(node) {\n  return node.kind === 211 /* ObjectLiteralExpression */;\n}\nfunction isPropertyAccessExpression(node) {\n  return node.kind === 212 /* PropertyAccessExpression */;\n}\nfunction isElementAccessExpression(node) {\n  return node.kind === 213 /* ElementAccessExpression */;\n}\nfunction isCallExpression(node) {\n  return node.kind === 214 /* CallExpression */;\n}\nfunction isNewExpression(node) {\n  return node.kind === 215 /* NewExpression */;\n}\nfunction isTaggedTemplateExpression(node) {\n  return node.kind === 216 /* TaggedTemplateExpression */;\n}\nfunction isTypeAssertionExpression(node) {\n  return node.kind === 217 /* TypeAssertionExpression */;\n}\nfunction isParenthesizedExpression(node) {\n  return node.kind === 218 /* ParenthesizedExpression */;\n}\nfunction isFunctionExpression(node) {\n  return node.kind === 219 /* FunctionExpression */;\n}\nfunction isArrowFunction(node) {\n  return node.kind === 220 /* ArrowFunction */;\n}\nfunction isDeleteExpression(node) {\n  return node.kind === 221 /* DeleteExpression */;\n}\nfunction isTypeOfExpression(node) {\n  return node.kind === 222 /* TypeOfExpression */;\n}\nfunction isVoidExpression(node) {\n  return node.kind === 223 /* VoidExpression */;\n}\nfunction isAwaitExpression(node) {\n  return node.kind === 224 /* AwaitExpression */;\n}\nfunction isPrefixUnaryExpression(node) {\n  return node.kind === 225 /* PrefixUnaryExpression */;\n}\nfunction isPostfixUnaryExpression(node) {\n  return node.kind === 226 /* PostfixUnaryExpression */;\n}\nfunction isBinaryExpression(node) {\n  return node.kind === 227 /* BinaryExpression */;\n}\nfunction isConditionalExpression(node) {\n  return node.kind === 228 /* ConditionalExpression */;\n}\nfunction isTemplateExpression(node) {\n  return node.kind === 229 /* TemplateExpression */;\n}\nfunction isYieldExpression(node) {\n  return node.kind === 230 /* YieldExpression */;\n}\nfunction isSpreadElement(node) {\n  return node.kind === 231 /* SpreadElement */;\n}\nfunction isClassExpression(node) {\n  return node.kind === 232 /* ClassExpression */;\n}\nfunction isOmittedExpression(node) {\n  return node.kind === 233 /* OmittedExpression */;\n}\nfunction isExpressionWithTypeArguments(node) {\n  return node.kind === 234 /* ExpressionWithTypeArguments */;\n}\nfunction isAsExpression(node) {\n  return node.kind === 235 /* AsExpression */;\n}\nfunction isSatisfiesExpression(node) {\n  return node.kind === 239 /* SatisfiesExpression */;\n}\nfunction isNonNullExpression(node) {\n  return node.kind === 236 /* NonNullExpression */;\n}\nfunction isMetaProperty(node) {\n  return node.kind === 237 /* MetaProperty */;\n}\nfunction isSyntheticExpression(node) {\n  return node.kind === 238 /* SyntheticExpression */;\n}\nfunction isPartiallyEmittedExpression(node) {\n  return node.kind === 356 /* PartiallyEmittedExpression */;\n}\nfunction isCommaListExpression(node) {\n  return node.kind === 357 /* CommaListExpression */;\n}\nfunction isTemplateSpan(node) {\n  return node.kind === 240 /* TemplateSpan */;\n}\nfunction isSemicolonClassElement(node) {\n  return node.kind === 241 /* SemicolonClassElement */;\n}\nfunction isBlock(node) {\n  return node.kind === 242 /* Block */;\n}\nfunction isVariableStatement(node) {\n  return node.kind === 244 /* VariableStatement */;\n}\nfunction isEmptyStatement(node) {\n  return node.kind === 243 /* EmptyStatement */;\n}\nfunction isExpressionStatement(node) {\n  return node.kind === 245 /* ExpressionStatement */;\n}\nfunction isIfStatement(node) {\n  return node.kind === 246 /* IfStatement */;\n}\nfunction isDoStatement(node) {\n  return node.kind === 247 /* DoStatement */;\n}\nfunction isWhileStatement(node) {\n  return node.kind === 248 /* WhileStatement */;\n}\nfunction isForStatement(node) {\n  return node.kind === 249 /* ForStatement */;\n}\nfunction isForInStatement(node) {\n  return node.kind === 250 /* ForInStatement */;\n}\nfunction isForOfStatement(node) {\n  return node.kind === 251 /* ForOfStatement */;\n}\nfunction isContinueStatement(node) {\n  return node.kind === 252 /* ContinueStatement */;\n}\nfunction isBreakStatement(node) {\n  return node.kind === 253 /* BreakStatement */;\n}\nfunction isReturnStatement(node) {\n  return node.kind === 254 /* ReturnStatement */;\n}\nfunction isWithStatement(node) {\n  return node.kind === 255 /* WithStatement */;\n}\nfunction isSwitchStatement(node) {\n  return node.kind === 256 /* SwitchStatement */;\n}\nfunction isLabeledStatement(node) {\n  return node.kind === 257 /* LabeledStatement */;\n}\nfunction isThrowStatement(node) {\n  return node.kind === 258 /* ThrowStatement */;\n}\nfunction isTryStatement(node) {\n  return node.kind === 259 /* TryStatement */;\n}\nfunction isDebuggerStatement(node) {\n  return node.kind === 260 /* DebuggerStatement */;\n}\nfunction isVariableDeclaration(node) {\n  return node.kind === 261 /* VariableDeclaration */;\n}\nfunction isVariableDeclarationList(node) {\n  return node.kind === 262 /* VariableDeclarationList */;\n}\nfunction isFunctionDeclaration(node) {\n  return node.kind === 263 /* FunctionDeclaration */;\n}\nfunction isClassDeclaration(node) {\n  return node.kind === 264 /* ClassDeclaration */;\n}\nfunction isInterfaceDeclaration(node) {\n  return node.kind === 265 /* InterfaceDeclaration */;\n}\nfunction isTypeAliasDeclaration(node) {\n  return node.kind === 266 /* TypeAliasDeclaration */;\n}\nfunction isEnumDeclaration(node) {\n  return node.kind === 267 /* EnumDeclaration */;\n}\nfunction isModuleDeclaration(node) {\n  return node.kind === 268 /* ModuleDeclaration */;\n}\nfunction isModuleBlock(node) {\n  return node.kind === 269 /* ModuleBlock */;\n}\nfunction isCaseBlock(node) {\n  return node.kind === 270 /* CaseBlock */;\n}\nfunction isNamespaceExportDeclaration(node) {\n  return node.kind === 271 /* NamespaceExportDeclaration */;\n}\nfunction isImportEqualsDeclaration(node) {\n  return node.kind === 272 /* ImportEqualsDeclaration */;\n}\nfunction isImportDeclaration(node) {\n  return node.kind === 273 /* ImportDeclaration */;\n}\nfunction isImportClause(node) {\n  return node.kind === 274 /* ImportClause */;\n}\nfunction isImportTypeAssertionContainer(node) {\n  return node.kind === 303 /* ImportTypeAssertionContainer */;\n}\nfunction isAssertClause(node) {\n  return node.kind === 301 /* AssertClause */;\n}\nfunction isAssertEntry(node) {\n  return node.kind === 302 /* AssertEntry */;\n}\nfunction isImportAttributes(node) {\n  return node.kind === 301 /* ImportAttributes */;\n}\nfunction isImportAttribute(node) {\n  return node.kind === 302 /* ImportAttribute */;\n}\nfunction isNamespaceImport(node) {\n  return node.kind === 275 /* NamespaceImport */;\n}\nfunction isNamespaceExport(node) {\n  return node.kind === 281 /* NamespaceExport */;\n}\nfunction isNamedImports(node) {\n  return node.kind === 276 /* NamedImports */;\n}\nfunction isImportSpecifier(node) {\n  return node.kind === 277 /* ImportSpecifier */;\n}\nfunction isExportAssignment(node) {\n  return node.kind === 278 /* ExportAssignment */;\n}\nfunction isExportDeclaration(node) {\n  return node.kind === 279 /* ExportDeclaration */;\n}\nfunction isNamedExports(node) {\n  return node.kind === 280 /* NamedExports */;\n}\nfunction isExportSpecifier(node) {\n  return node.kind === 282 /* ExportSpecifier */;\n}\nfunction isModuleExportName(node) {\n  return node.kind === 80 /* Identifier */ || node.kind === 11 /* StringLiteral */;\n}\nfunction isMissingDeclaration(node) {\n  return node.kind === 283 /* MissingDeclaration */;\n}\nfunction isNotEmittedStatement(node) {\n  return node.kind === 354 /* NotEmittedStatement */;\n}\nfunction isSyntheticReference(node) {\n  return node.kind === 358 /* SyntheticReferenceExpression */;\n}\nfunction isExternalModuleReference(node) {\n  return node.kind === 284 /* ExternalModuleReference */;\n}\nfunction isJsxElement(node) {\n  return node.kind === 285 /* JsxElement */;\n}\nfunction isJsxSelfClosingElement(node) {\n  return node.kind === 286 /* JsxSelfClosingElement */;\n}\nfunction isJsxOpeningElement(node) {\n  return node.kind === 287 /* JsxOpeningElement */;\n}\nfunction isJsxClosingElement(node) {\n  return node.kind === 288 /* JsxClosingElement */;\n}\nfunction isJsxFragment(node) {\n  return node.kind === 289 /* JsxFragment */;\n}\nfunction isJsxOpeningFragment(node) {\n  return node.kind === 290 /* JsxOpeningFragment */;\n}\nfunction isJsxClosingFragment(node) {\n  return node.kind === 291 /* JsxClosingFragment */;\n}\nfunction isJsxAttribute(node) {\n  return node.kind === 292 /* JsxAttribute */;\n}\nfunction isJsxAttributes(node) {\n  return node.kind === 293 /* JsxAttributes */;\n}\nfunction isJsxSpreadAttribute(node) {\n  return node.kind === 294 /* JsxSpreadAttribute */;\n}\nfunction isJsxExpression(node) {\n  return node.kind === 295 /* JsxExpression */;\n}\nfunction isJsxNamespacedName(node) {\n  return node.kind === 296 /* JsxNamespacedName */;\n}\nfunction isCaseClause(node) {\n  return node.kind === 297 /* CaseClause */;\n}\nfunction isDefaultClause(node) {\n  return node.kind === 298 /* DefaultClause */;\n}\nfunction isHeritageClause(node) {\n  return node.kind === 299 /* HeritageClause */;\n}\nfunction isCatchClause(node) {\n  return node.kind === 300 /* CatchClause */;\n}\nfunction isPropertyAssignment(node) {\n  return node.kind === 304 /* PropertyAssignment */;\n}\nfunction isShorthandPropertyAssignment(node) {\n  return node.kind === 305 /* ShorthandPropertyAssignment */;\n}\nfunction isSpreadAssignment(node) {\n  return node.kind === 306 /* SpreadAssignment */;\n}\nfunction isEnumMember(node) {\n  return node.kind === 307 /* EnumMember */;\n}\nfunction isSourceFile(node) {\n  return node.kind === 308 /* SourceFile */;\n}\nfunction isBundle(node) {\n  return node.kind === 309 /* Bundle */;\n}\nfunction isJSDocTypeExpression(node) {\n  return node.kind === 310 /* JSDocTypeExpression */;\n}\nfunction isJSDocNameReference(node) {\n  return node.kind === 311 /* JSDocNameReference */;\n}\nfunction isJSDocMemberName(node) {\n  return node.kind === 312 /* JSDocMemberName */;\n}\nfunction isJSDocLink(node) {\n  return node.kind === 325 /* JSDocLink */;\n}\nfunction isJSDocLinkCode(node) {\n  return node.kind === 326 /* JSDocLinkCode */;\n}\nfunction isJSDocLinkPlain(node) {\n  return node.kind === 327 /* JSDocLinkPlain */;\n}\nfunction isJSDocAllType(node) {\n  return node.kind === 313 /* JSDocAllType */;\n}\nfunction isJSDocUnknownType(node) {\n  return node.kind === 314 /* JSDocUnknownType */;\n}\nfunction isJSDocNullableType(node) {\n  return node.kind === 315 /* JSDocNullableType */;\n}\nfunction isJSDocNonNullableType(node) {\n  return node.kind === 316 /* JSDocNonNullableType */;\n}\nfunction isJSDocOptionalType(node) {\n  return node.kind === 317 /* JSDocOptionalType */;\n}\nfunction isJSDocFunctionType(node) {\n  return node.kind === 318 /* JSDocFunctionType */;\n}\nfunction isJSDocVariadicType(node) {\n  return node.kind === 319 /* JSDocVariadicType */;\n}\nfunction isJSDocNamepathType(node) {\n  return node.kind === 320 /* JSDocNamepathType */;\n}\nfunction isJSDoc(node) {\n  return node.kind === 321 /* JSDoc */;\n}\nfunction isJSDocTypeLiteral(node) {\n  return node.kind === 323 /* JSDocTypeLiteral */;\n}\nfunction isJSDocSignature(node) {\n  return node.kind === 324 /* JSDocSignature */;\n}\nfunction isJSDocAugmentsTag(node) {\n  return node.kind === 329 /* JSDocAugmentsTag */;\n}\nfunction isJSDocAuthorTag(node) {\n  return node.kind === 331 /* JSDocAuthorTag */;\n}\nfunction isJSDocClassTag(node) {\n  return node.kind === 333 /* JSDocClassTag */;\n}\nfunction isJSDocCallbackTag(node) {\n  return node.kind === 339 /* JSDocCallbackTag */;\n}\nfunction isJSDocPublicTag(node) {\n  return node.kind === 334 /* JSDocPublicTag */;\n}\nfunction isJSDocPrivateTag(node) {\n  return node.kind === 335 /* JSDocPrivateTag */;\n}\nfunction isJSDocProtectedTag(node) {\n  return node.kind === 336 /* JSDocProtectedTag */;\n}\nfunction isJSDocReadonlyTag(node) {\n  return node.kind === 337 /* JSDocReadonlyTag */;\n}\nfunction isJSDocOverrideTag(node) {\n  return node.kind === 338 /* JSDocOverrideTag */;\n}\nfunction isJSDocOverloadTag(node) {\n  return node.kind === 340 /* JSDocOverloadTag */;\n}\nfunction isJSDocDeprecatedTag(node) {\n  return node.kind === 332 /* JSDocDeprecatedTag */;\n}\nfunction isJSDocSeeTag(node) {\n  return node.kind === 348 /* JSDocSeeTag */;\n}\nfunction isJSDocEnumTag(node) {\n  return node.kind === 341 /* JSDocEnumTag */;\n}\nfunction isJSDocParameterTag(node) {\n  return node.kind === 342 /* JSDocParameterTag */;\n}\nfunction isJSDocReturnTag(node) {\n  return node.kind === 343 /* JSDocReturnTag */;\n}\nfunction isJSDocThisTag(node) {\n  return node.kind === 344 /* JSDocThisTag */;\n}\nfunction isJSDocTypeTag(node) {\n  return node.kind === 345 /* JSDocTypeTag */;\n}\nfunction isJSDocTemplateTag(node) {\n  return node.kind === 346 /* JSDocTemplateTag */;\n}\nfunction isJSDocTypedefTag(node) {\n  return node.kind === 347 /* JSDocTypedefTag */;\n}\nfunction isJSDocUnknownTag(node) {\n  return node.kind === 328 /* JSDocTag */;\n}\nfunction isJSDocPropertyTag(node) {\n  return node.kind === 349 /* JSDocPropertyTag */;\n}\nfunction isJSDocImplementsTag(node) {\n  return node.kind === 330 /* JSDocImplementsTag */;\n}\nfunction isJSDocSatisfiesTag(node) {\n  return node.kind === 351 /* JSDocSatisfiesTag */;\n}\nfunction isJSDocThrowsTag(node) {\n  return node.kind === 350 /* JSDocThrowsTag */;\n}\nfunction isJSDocImportTag(node) {\n  return node.kind === 352 /* JSDocImportTag */;\n}\nfunction isSyntaxList(n) {\n  return n.kind === 353 /* SyntaxList */;\n}\n\n// src/compiler/factory/nodeChildren.ts\nvar sourceFileToNodeChildren = /* @__PURE__ */ new WeakMap();\nfunction getNodeChildren(node, sourceFile) {\n  var _a;\n  const kind = node.kind;\n  if (!isNodeKind(kind)) {\n    return emptyArray;\n  }\n  if (kind === 353 /* SyntaxList */) {\n    return node._children;\n  }\n  return (_a = sourceFileToNodeChildren.get(sourceFile)) == null ? void 0 : _a.get(node);\n}\nfunction setNodeChildren(node, sourceFile, children) {\n  if (node.kind === 353 /* SyntaxList */) {\n    Debug.fail(\"Should not need to re-set the children of a SyntaxList.\");\n  }\n  let map2 = sourceFileToNodeChildren.get(sourceFile);\n  if (map2 === void 0) {\n    map2 = /* @__PURE__ */ new WeakMap();\n    sourceFileToNodeChildren.set(sourceFile, map2);\n  }\n  map2.set(node, children);\n  return children;\n}\nfunction unsetNodeChildren(node, origSourceFile) {\n  var _a;\n  if (node.kind === 353 /* SyntaxList */) {\n    Debug.fail(\"Did not expect to unset the children of a SyntaxList.\");\n  }\n  (_a = sourceFileToNodeChildren.get(origSourceFile)) == null ? void 0 : _a.delete(node);\n}\nfunction transferSourceFileChildren(sourceFile, targetSourceFile) {\n  const map2 = sourceFileToNodeChildren.get(sourceFile);\n  if (map2 !== void 0) {\n    sourceFileToNodeChildren.delete(sourceFile);\n    sourceFileToNodeChildren.set(targetSourceFile, map2);\n  }\n}\n\n// src/compiler/factory/utilities.ts\nfunction createEmptyExports(factory2) {\n  return factory2.createExportDeclaration(\n    /*modifiers*/\n    void 0,\n    /*isTypeOnly*/\n    false,\n    factory2.createNamedExports([]),\n    /*moduleSpecifier*/\n    void 0\n  );\n}\nfunction createMemberAccessForPropertyName(factory2, target, memberName, location) {\n  if (isComputedPropertyName(memberName)) {\n    return setTextRange(factory2.createElementAccessExpression(target, memberName.expression), location);\n  } else {\n    const expression = setTextRange(\n      isMemberName(memberName) ? factory2.createPropertyAccessExpression(target, memberName) : factory2.createElementAccessExpression(target, memberName),\n      memberName\n    );\n    addEmitFlags(expression, 128 /* NoNestedSourceMaps */);\n    return expression;\n  }\n}\nfunction createReactNamespace(reactNamespace, parent2) {\n  const react = parseNodeFactory.createIdentifier(reactNamespace || \"React\");\n  setParent(react, getParseTreeNode(parent2));\n  return react;\n}\nfunction createJsxFactoryExpressionFromEntityName(factory2, jsxFactory, parent2) {\n  if (isQualifiedName(jsxFactory)) {\n    const left = createJsxFactoryExpressionFromEntityName(factory2, jsxFactory.left, parent2);\n    const right = factory2.createIdentifier(idText(jsxFactory.right));\n    right.escapedText = jsxFactory.right.escapedText;\n    return factory2.createPropertyAccessExpression(left, right);\n  } else {\n    return createReactNamespace(idText(jsxFactory), parent2);\n  }\n}\nfunction createJsxFactoryExpression(factory2, jsxFactoryEntity, reactNamespace, parent2) {\n  return jsxFactoryEntity ? createJsxFactoryExpressionFromEntityName(factory2, jsxFactoryEntity, parent2) : factory2.createPropertyAccessExpression(\n    createReactNamespace(reactNamespace, parent2),\n    \"createElement\"\n  );\n}\nfunction createJsxFragmentFactoryExpression(factory2, jsxFragmentFactoryEntity, reactNamespace, parent2) {\n  return jsxFragmentFactoryEntity ? createJsxFactoryExpressionFromEntityName(factory2, jsxFragmentFactoryEntity, parent2) : factory2.createPropertyAccessExpression(\n    createReactNamespace(reactNamespace, parent2),\n    \"Fragment\"\n  );\n}\nfunction createExpressionForJsxElement(factory2, callee, tagName, props, children, location) {\n  const argumentsList = [tagName];\n  if (props) {\n    argumentsList.push(props);\n  }\n  if (children && children.length > 0) {\n    if (!props) {\n      argumentsList.push(factory2.createNull());\n    }\n    if (children.length > 1) {\n      for (const child of children) {\n        startOnNewLine(child);\n        argumentsList.push(child);\n      }\n    } else {\n      argumentsList.push(children[0]);\n    }\n  }\n  return setTextRange(\n    factory2.createCallExpression(\n      callee,\n      /*typeArguments*/\n      void 0,\n      argumentsList\n    ),\n    location\n  );\n}\nfunction createExpressionForJsxFragment(factory2, jsxFactoryEntity, jsxFragmentFactoryEntity, reactNamespace, children, parentElement, location) {\n  const tagName = createJsxFragmentFactoryExpression(factory2, jsxFragmentFactoryEntity, reactNamespace, parentElement);\n  const argumentsList = [tagName, factory2.createNull()];\n  if (children && children.length > 0) {\n    if (children.length > 1) {\n      for (const child of children) {\n        startOnNewLine(child);\n        argumentsList.push(child);\n      }\n    } else {\n      argumentsList.push(children[0]);\n    }\n  }\n  return setTextRange(\n    factory2.createCallExpression(\n      createJsxFactoryExpression(factory2, jsxFactoryEntity, reactNamespace, parentElement),\n      /*typeArguments*/\n      void 0,\n      argumentsList\n    ),\n    location\n  );\n}\nfunction createForOfBindingStatement(factory2, node, boundValue) {\n  if (isVariableDeclarationList(node)) {\n    const firstDeclaration = first(node.declarations);\n    const updatedDeclaration = factory2.updateVariableDeclaration(\n      firstDeclaration,\n      firstDeclaration.name,\n      /*exclamationToken*/\n      void 0,\n      /*type*/\n      void 0,\n      boundValue\n    );\n    return setTextRange(\n      factory2.createVariableStatement(\n        /*modifiers*/\n        void 0,\n        factory2.updateVariableDeclarationList(node, [updatedDeclaration])\n      ),\n      /*location*/\n      node\n    );\n  } else {\n    const updatedExpression = setTextRange(\n      factory2.createAssignment(node, boundValue),\n      /*location*/\n      node\n    );\n    return setTextRange(\n      factory2.createExpressionStatement(updatedExpression),\n      /*location*/\n      node\n    );\n  }\n}\nfunction createExpressionFromEntityName(factory2, node) {\n  if (isQualifiedName(node)) {\n    const left = createExpressionFromEntityName(factory2, node.left);\n    const right = setParent(setTextRange(factory2.cloneNode(node.right), node.right), node.right.parent);\n    return setTextRange(factory2.createPropertyAccessExpression(left, right), node);\n  } else {\n    return setParent(setTextRange(factory2.cloneNode(node), node), node.parent);\n  }\n}\nfunction createExpressionForPropertyName(factory2, memberName) {\n  if (isIdentifier(memberName)) {\n    return factory2.createStringLiteralFromNode(memberName);\n  } else if (isComputedPropertyName(memberName)) {\n    return setParent(setTextRange(factory2.cloneNode(memberName.expression), memberName.expression), memberName.expression.parent);\n  } else {\n    return setParent(setTextRange(factory2.cloneNode(memberName), memberName), memberName.parent);\n  }\n}\nfunction createExpressionForAccessorDeclaration(factory2, properties, property, receiver, multiLine) {\n  const { firstAccessor, getAccessor, setAccessor } = getAllAccessorDeclarations(properties, property);\n  if (property === firstAccessor) {\n    return setTextRange(\n      factory2.createObjectDefinePropertyCall(\n        receiver,\n        createExpressionForPropertyName(factory2, property.name),\n        factory2.createPropertyDescriptor({\n          enumerable: factory2.createFalse(),\n          configurable: true,\n          get: getAccessor && setTextRange(\n            setOriginalNode(\n              factory2.createFunctionExpression(\n                getModifiers(getAccessor),\n                /*asteriskToken*/\n                void 0,\n                /*name*/\n                void 0,\n                /*typeParameters*/\n                void 0,\n                getAccessor.parameters,\n                /*type*/\n                void 0,\n                getAccessor.body\n                // TODO: GH#18217\n              ),\n              getAccessor\n            ),\n            getAccessor\n          ),\n          set: setAccessor && setTextRange(\n            setOriginalNode(\n              factory2.createFunctionExpression(\n                getModifiers(setAccessor),\n                /*asteriskToken*/\n                void 0,\n                /*name*/\n                void 0,\n                /*typeParameters*/\n                void 0,\n                setAccessor.parameters,\n                /*type*/\n                void 0,\n                setAccessor.body\n                // TODO: GH#18217\n              ),\n              setAccessor\n            ),\n            setAccessor\n          )\n        }, !multiLine)\n      ),\n      firstAccessor\n    );\n  }\n  return void 0;\n}\nfunction createExpressionForPropertyAssignment(factory2, property, receiver) {\n  return setOriginalNode(\n    setTextRange(\n      factory2.createAssignment(\n        createMemberAccessForPropertyName(\n          factory2,\n          receiver,\n          property.name,\n          /*location*/\n          property.name\n        ),\n        property.initializer\n      ),\n      property\n    ),\n    property\n  );\n}\nfunction createExpressionForShorthandPropertyAssignment(factory2, property, receiver) {\n  return setOriginalNode(\n    setTextRange(\n      factory2.createAssignment(\n        createMemberAccessForPropertyName(\n          factory2,\n          receiver,\n          property.name,\n          /*location*/\n          property.name\n        ),\n        factory2.cloneNode(property.name)\n      ),\n      /*location*/\n      property\n    ),\n    /*original*/\n    property\n  );\n}\nfunction createExpressionForMethodDeclaration(factory2, method, receiver) {\n  return setOriginalNode(\n    setTextRange(\n      factory2.createAssignment(\n        createMemberAccessForPropertyName(\n          factory2,\n          receiver,\n          method.name,\n          /*location*/\n          method.name\n        ),\n        setOriginalNode(\n          setTextRange(\n            factory2.createFunctionExpression(\n              getModifiers(method),\n              method.asteriskToken,\n              /*name*/\n              void 0,\n              /*typeParameters*/\n              void 0,\n              method.parameters,\n              /*type*/\n              void 0,\n              method.body\n              // TODO: GH#18217\n            ),\n            /*location*/\n            method\n          ),\n          /*original*/\n          method\n        )\n      ),\n      /*location*/\n      method\n    ),\n    /*original*/\n    method\n  );\n}\nfunction createExpressionForObjectLiteralElementLike(factory2, node, property, receiver) {\n  if (property.name && isPrivateIdentifier(property.name)) {\n    Debug.failBadSyntaxKind(property.name, \"Private identifiers are not allowed in object literals.\");\n  }\n  switch (property.kind) {\n    case 178 /* GetAccessor */:\n    case 179 /* SetAccessor */:\n      return createExpressionForAccessorDeclaration(factory2, node.properties, property, receiver, !!node.multiLine);\n    case 304 /* PropertyAssignment */:\n      return createExpressionForPropertyAssignment(factory2, property, receiver);\n    case 305 /* ShorthandPropertyAssignment */:\n      return createExpressionForShorthandPropertyAssignment(factory2, property, receiver);\n    case 175 /* MethodDeclaration */:\n      return createExpressionForMethodDeclaration(factory2, property, receiver);\n  }\n}\nfunction expandPreOrPostfixIncrementOrDecrementExpression(factory2, node, expression, recordTempVariable, resultVariable) {\n  const operator = node.operator;\n  Debug.assert(operator === 46 /* PlusPlusToken */ || operator === 47 /* MinusMinusToken */, \"Expected 'node' to be a pre- or post-increment or pre- or post-decrement expression\");\n  const temp = factory2.createTempVariable(recordTempVariable);\n  expression = factory2.createAssignment(temp, expression);\n  setTextRange(expression, node.operand);\n  let operation = isPrefixUnaryExpression(node) ? factory2.createPrefixUnaryExpression(operator, temp) : factory2.createPostfixUnaryExpression(temp, operator);\n  setTextRange(operation, node);\n  if (resultVariable) {\n    operation = factory2.createAssignment(resultVariable, operation);\n    setTextRange(operation, node);\n  }\n  expression = factory2.createComma(expression, operation);\n  setTextRange(expression, node);\n  if (isPostfixUnaryExpression(node)) {\n    expression = factory2.createComma(expression, temp);\n    setTextRange(expression, node);\n  }\n  return expression;\n}\nfunction isInternalName(node) {\n  return (getEmitFlags(node) & 65536 /* InternalName */) !== 0;\n}\nfunction isLocalName(node) {\n  return (getEmitFlags(node) & 32768 /* LocalName */) !== 0;\n}\nfunction isExportName(node) {\n  return (getEmitFlags(node) & 16384 /* ExportName */) !== 0;\n}\nfunction isUseStrictPrologue(node) {\n  return isStringLiteral(node.expression) && node.expression.text === \"use strict\";\n}\nfunction findUseStrictPrologue(statements) {\n  for (const statement of statements) {\n    if (isPrologueDirective(statement)) {\n      if (isUseStrictPrologue(statement)) {\n        return statement;\n      }\n    } else {\n      break;\n    }\n  }\n  return void 0;\n}\nfunction startsWithUseStrict(statements) {\n  const firstStatement = firstOrUndefined(statements);\n  return firstStatement !== void 0 && isPrologueDirective(firstStatement) && isUseStrictPrologue(firstStatement);\n}\nfunction isCommaExpression(node) {\n  return node.kind === 227 /* BinaryExpression */ && node.operatorToken.kind === 28 /* CommaToken */;\n}\nfunction isCommaSequence(node) {\n  return isCommaExpression(node) || isCommaListExpression(node);\n}\nfunction isJSDocTypeAssertion(node) {\n  return isParenthesizedExpression(node) && isInJSFile(node) && !!getJSDocTypeTag(node);\n}\nfunction getJSDocTypeAssertionType(node) {\n  const type = getJSDocType(node);\n  Debug.assertIsDefined(type);\n  return type;\n}\nfunction isOuterExpression(node, kinds = 63 /* All */) {\n  switch (node.kind) {\n    case 218 /* ParenthesizedExpression */:\n      if (kinds & -2147483648 /* ExcludeJSDocTypeAssertion */ && isJSDocTypeAssertion(node)) {\n        return false;\n      }\n      return (kinds & 1 /* Parentheses */) !== 0;\n    case 217 /* TypeAssertionExpression */:\n    case 235 /* AsExpression */:\n      return (kinds & 2 /* TypeAssertions */) !== 0;\n    case 239 /* SatisfiesExpression */:\n      return (kinds & (2 /* TypeAssertions */ | 32 /* Satisfies */)) !== 0;\n    case 234 /* ExpressionWithTypeArguments */:\n      return (kinds & 16 /* ExpressionsWithTypeArguments */) !== 0;\n    case 236 /* NonNullExpression */:\n      return (kinds & 4 /* NonNullAssertions */) !== 0;\n    case 356 /* PartiallyEmittedExpression */:\n      return (kinds & 8 /* PartiallyEmittedExpressions */) !== 0;\n  }\n  return false;\n}\nfunction skipOuterExpressions(node, kinds = 63 /* All */) {\n  while (isOuterExpression(node, kinds)) {\n    node = node.expression;\n  }\n  return node;\n}\nfunction walkUpOuterExpressions(node, kinds = 63 /* All */) {\n  let parent2 = node.parent;\n  while (isOuterExpression(parent2, kinds)) {\n    parent2 = parent2.parent;\n    Debug.assert(parent2);\n  }\n  return parent2;\n}\nfunction startOnNewLine(node) {\n  return setStartsOnNewLine(\n    node,\n    /*newLine*/\n    true\n  );\n}\nfunction getExternalHelpersModuleName(node) {\n  const parseNode = getOriginalNode(node, isSourceFile);\n  const emitNode = parseNode && parseNode.emitNode;\n  return emitNode && emitNode.externalHelpersModuleName;\n}\nfunction hasRecordedExternalHelpers(sourceFile) {\n  const parseNode = getOriginalNode(sourceFile, isSourceFile);\n  const emitNode = parseNode && parseNode.emitNode;\n  return !!emitNode && (!!emitNode.externalHelpersModuleName || !!emitNode.externalHelpers);\n}\nfunction createExternalHelpersImportDeclarationIfNeeded(nodeFactory, helperFactory, sourceFile, compilerOptions, hasExportStarsToExportValues, hasImportStar, hasImportDefault) {\n  if (compilerOptions.importHelpers && isEffectiveExternalModule(sourceFile, compilerOptions)) {\n    const moduleKind = getEmitModuleKind(compilerOptions);\n    const impliedModuleKind = getImpliedNodeFormatForEmitWorker(sourceFile, compilerOptions);\n    const helpers = getImportedHelpers(sourceFile);\n    if (impliedModuleKind !== 1 /* CommonJS */ && (moduleKind >= 5 /* ES2015 */ && moduleKind <= 99 /* ESNext */ || impliedModuleKind === 99 /* ESNext */ || impliedModuleKind === void 0 && moduleKind === 200 /* Preserve */)) {\n      if (helpers) {\n        const helperNames = [];\n        for (const helper of helpers) {\n          const importName = helper.importName;\n          if (importName) {\n            pushIfUnique(helperNames, importName);\n          }\n        }\n        if (some(helperNames)) {\n          helperNames.sort(compareStringsCaseSensitive);\n          const namedBindings = nodeFactory.createNamedImports(\n            map(helperNames, (name) => isFileLevelUniqueName(sourceFile, name) ? nodeFactory.createImportSpecifier(\n              /*isTypeOnly*/\n              false,\n              /*propertyName*/\n              void 0,\n              nodeFactory.createIdentifier(name)\n            ) : nodeFactory.createImportSpecifier(\n              /*isTypeOnly*/\n              false,\n              nodeFactory.createIdentifier(name),\n              helperFactory.getUnscopedHelperName(name)\n            ))\n          );\n          const parseNode = getOriginalNode(sourceFile, isSourceFile);\n          const emitNode = getOrCreateEmitNode(parseNode);\n          emitNode.externalHelpers = true;\n          const externalHelpersImportDeclaration = nodeFactory.createImportDeclaration(\n            /*modifiers*/\n            void 0,\n            nodeFactory.createImportClause(\n              /*phaseModifier*/\n              void 0,\n              /*name*/\n              void 0,\n              namedBindings\n            ),\n            nodeFactory.createStringLiteral(externalHelpersModuleNameText),\n            /*attributes*/\n            void 0\n          );\n          addInternalEmitFlags(externalHelpersImportDeclaration, 2 /* NeverApplyImportHelper */);\n          return externalHelpersImportDeclaration;\n        }\n      }\n    } else {\n      const externalHelpersModuleName = getOrCreateExternalHelpersModuleNameIfNeeded(nodeFactory, sourceFile, compilerOptions, helpers, hasExportStarsToExportValues, hasImportStar || hasImportDefault);\n      if (externalHelpersModuleName) {\n        const externalHelpersImportDeclaration = nodeFactory.createImportEqualsDeclaration(\n          /*modifiers*/\n          void 0,\n          /*isTypeOnly*/\n          false,\n          externalHelpersModuleName,\n          nodeFactory.createExternalModuleReference(nodeFactory.createStringLiteral(externalHelpersModuleNameText))\n        );\n        addInternalEmitFlags(externalHelpersImportDeclaration, 2 /* NeverApplyImportHelper */);\n        return externalHelpersImportDeclaration;\n      }\n    }\n  }\n}\nfunction getImportedHelpers(sourceFile) {\n  return filter(getEmitHelpers(sourceFile), (helper) => !helper.scoped);\n}\nfunction getOrCreateExternalHelpersModuleNameIfNeeded(factory2, node, compilerOptions, helpers, hasExportStarsToExportValues, hasImportStarOrImportDefault) {\n  const externalHelpersModuleName = getExternalHelpersModuleName(node);\n  if (externalHelpersModuleName) {\n    return externalHelpersModuleName;\n  }\n  const create = some(helpers) || (hasExportStarsToExportValues || getESModuleInterop(compilerOptions) && hasImportStarOrImportDefault) && getEmitModuleFormatOfFileWorker(node, compilerOptions) < 4 /* System */;\n  if (create) {\n    const parseNode = getOriginalNode(node, isSourceFile);\n    const emitNode = getOrCreateEmitNode(parseNode);\n    return emitNode.externalHelpersModuleName || (emitNode.externalHelpersModuleName = factory2.createUniqueName(externalHelpersModuleNameText));\n  }\n}\nfunction getLocalNameForExternalImport(factory2, node, sourceFile) {\n  const namespaceDeclaration = getNamespaceDeclarationNode(node);\n  if (namespaceDeclaration && !isDefaultImport(node) && !isExportNamespaceAsDefaultDeclaration(node)) {\n    const name = namespaceDeclaration.name;\n    if (name.kind === 11 /* StringLiteral */) {\n      return factory2.getGeneratedNameForNode(node);\n    }\n    return isGeneratedIdentifier(name) ? name : factory2.createIdentifier(getSourceTextOfNodeFromSourceFile(sourceFile, name) || idText(name));\n  }\n  if (node.kind === 273 /* ImportDeclaration */ && node.importClause) {\n    return factory2.getGeneratedNameForNode(node);\n  }\n  if (node.kind === 279 /* ExportDeclaration */ && node.moduleSpecifier) {\n    return factory2.getGeneratedNameForNode(node);\n  }\n  return void 0;\n}\nfunction getExternalModuleNameLiteral(factory2, importNode, sourceFile, host, resolver, compilerOptions) {\n  const moduleName = getExternalModuleName(importNode);\n  if (moduleName && isStringLiteral(moduleName)) {\n    return tryGetModuleNameFromDeclaration(importNode, host, factory2, resolver, compilerOptions) || tryRenameExternalModule(factory2, moduleName, sourceFile) || factory2.cloneNode(moduleName);\n  }\n  return void 0;\n}\nfunction tryRenameExternalModule(factory2, moduleName, sourceFile) {\n  const rename = sourceFile.renamedDependencies && sourceFile.renamedDependencies.get(moduleName.text);\n  return rename ? factory2.createStringLiteral(rename) : void 0;\n}\nfunction tryGetModuleNameFromFile(factory2, file, host, options) {\n  if (!file) {\n    return void 0;\n  }\n  if (file.moduleName) {\n    return factory2.createStringLiteral(file.moduleName);\n  }\n  if (!file.isDeclarationFile && options.outFile) {\n    return factory2.createStringLiteral(getExternalModuleNameFromPath(host, file.fileName));\n  }\n  return void 0;\n}\nfunction tryGetModuleNameFromDeclaration(declaration, host, factory2, resolver, compilerOptions) {\n  return tryGetModuleNameFromFile(factory2, resolver.getExternalModuleFileFromDeclaration(declaration), host, compilerOptions);\n}\nfunction getInitializerOfBindingOrAssignmentElement(bindingElement) {\n  if (isDeclarationBindingElement(bindingElement)) {\n    return bindingElement.initializer;\n  }\n  if (isPropertyAssignment(bindingElement)) {\n    const initializer = bindingElement.initializer;\n    return isAssignmentExpression(\n      initializer,\n      /*excludeCompoundAssignment*/\n      true\n    ) ? initializer.right : void 0;\n  }\n  if (isShorthandPropertyAssignment(bindingElement)) {\n    return bindingElement.objectAssignmentInitializer;\n  }\n  if (isAssignmentExpression(\n    bindingElement,\n    /*excludeCompoundAssignment*/\n    true\n  )) {\n    return bindingElement.right;\n  }\n  if (isSpreadElement(bindingElement)) {\n    return getInitializerOfBindingOrAssignmentElement(bindingElement.expression);\n  }\n}\nfunction getTargetOfBindingOrAssignmentElement(bindingElement) {\n  if (isDeclarationBindingElement(bindingElement)) {\n    return bindingElement.name;\n  }\n  if (isObjectLiteralElementLike(bindingElement)) {\n    switch (bindingElement.kind) {\n      case 304 /* PropertyAssignment */:\n        return getTargetOfBindingOrAssignmentElement(bindingElement.initializer);\n      case 305 /* ShorthandPropertyAssignment */:\n        return bindingElement.name;\n      case 306 /* SpreadAssignment */:\n        return getTargetOfBindingOrAssignmentElement(bindingElement.expression);\n    }\n    return void 0;\n  }\n  if (isAssignmentExpression(\n    bindingElement,\n    /*excludeCompoundAssignment*/\n    true\n  )) {\n    return getTargetOfBindingOrAssignmentElement(bindingElement.left);\n  }\n  if (isSpreadElement(bindingElement)) {\n    return getTargetOfBindingOrAssignmentElement(bindingElement.expression);\n  }\n  return bindingElement;\n}\nfunction getRestIndicatorOfBindingOrAssignmentElement(bindingElement) {\n  switch (bindingElement.kind) {\n    case 170 /* Parameter */:\n    case 209 /* BindingElement */:\n      return bindingElement.dotDotDotToken;\n    case 231 /* SpreadElement */:\n    case 306 /* SpreadAssignment */:\n      return bindingElement;\n  }\n  return void 0;\n}\nfunction getPropertyNameOfBindingOrAssignmentElement(bindingElement) {\n  const propertyName = tryGetPropertyNameOfBindingOrAssignmentElement(bindingElement);\n  Debug.assert(!!propertyName || isSpreadAssignment(bindingElement), \"Invalid property name for binding element.\");\n  return propertyName;\n}\nfunction tryGetPropertyNameOfBindingOrAssignmentElement(bindingElement) {\n  switch (bindingElement.kind) {\n    case 209 /* BindingElement */:\n      if (bindingElement.propertyName) {\n        const propertyName = bindingElement.propertyName;\n        if (isPrivateIdentifier(propertyName)) {\n          return Debug.failBadSyntaxKind(propertyName);\n        }\n        return isComputedPropertyName(propertyName) && isStringOrNumericLiteral(propertyName.expression) ? propertyName.expression : propertyName;\n      }\n      break;\n    case 304 /* PropertyAssignment */:\n      if (bindingElement.name) {\n        const propertyName = bindingElement.name;\n        if (isPrivateIdentifier(propertyName)) {\n          return Debug.failBadSyntaxKind(propertyName);\n        }\n        return isComputedPropertyName(propertyName) && isStringOrNumericLiteral(propertyName.expression) ? propertyName.expression : propertyName;\n      }\n      break;\n    case 306 /* SpreadAssignment */:\n      if (bindingElement.name && isPrivateIdentifier(bindingElement.name)) {\n        return Debug.failBadSyntaxKind(bindingElement.name);\n      }\n      return bindingElement.name;\n  }\n  const target = getTargetOfBindingOrAssignmentElement(bindingElement);\n  if (target && isPropertyName(target)) {\n    return target;\n  }\n}\nfunction isStringOrNumericLiteral(node) {\n  const kind = node.kind;\n  return kind === 11 /* StringLiteral */ || kind === 9 /* NumericLiteral */;\n}\nfunction getElementsOfBindingOrAssignmentPattern(name) {\n  switch (name.kind) {\n    case 207 /* ObjectBindingPattern */:\n    case 208 /* ArrayBindingPattern */:\n    case 210 /* ArrayLiteralExpression */:\n      return name.elements;\n    case 211 /* ObjectLiteralExpression */:\n      return name.properties;\n  }\n}\nfunction getJSDocTypeAliasName(fullName) {\n  if (fullName) {\n    let rightNode = fullName;\n    while (true) {\n      if (isIdentifier(rightNode) || !rightNode.body) {\n        return isIdentifier(rightNode) ? rightNode : rightNode.name;\n      }\n      rightNode = rightNode.body;\n    }\n  }\n}\nfunction canHaveIllegalType(node) {\n  const kind = node.kind;\n  return kind === 177 /* Constructor */ || kind === 179 /* SetAccessor */;\n}\nfunction canHaveIllegalTypeParameters(node) {\n  const kind = node.kind;\n  return kind === 177 /* Constructor */ || kind === 178 /* GetAccessor */ || kind === 179 /* SetAccessor */;\n}\nfunction canHaveIllegalDecorators(node) {\n  const kind = node.kind;\n  return kind === 304 /* PropertyAssignment */ || kind === 305 /* ShorthandPropertyAssignment */ || kind === 263 /* FunctionDeclaration */ || kind === 177 /* Constructor */ || kind === 182 /* IndexSignature */ || kind === 176 /* ClassStaticBlockDeclaration */ || kind === 283 /* MissingDeclaration */ || kind === 244 /* VariableStatement */ || kind === 265 /* InterfaceDeclaration */ || kind === 266 /* TypeAliasDeclaration */ || kind === 267 /* EnumDeclaration */ || kind === 268 /* ModuleDeclaration */ || kind === 272 /* ImportEqualsDeclaration */ || kind === 273 /* ImportDeclaration */ || kind === 271 /* NamespaceExportDeclaration */ || kind === 279 /* ExportDeclaration */ || kind === 278 /* ExportAssignment */;\n}\nfunction canHaveIllegalModifiers(node) {\n  const kind = node.kind;\n  return kind === 176 /* ClassStaticBlockDeclaration */ || kind === 304 /* PropertyAssignment */ || kind === 305 /* ShorthandPropertyAssignment */ || kind === 283 /* MissingDeclaration */ || kind === 271 /* NamespaceExportDeclaration */;\n}\nfunction isQuestionOrExclamationToken(node) {\n  return isQuestionToken(node) || isExclamationToken(node);\n}\nfunction isIdentifierOrThisTypeNode(node) {\n  return isIdentifier(node) || isThisTypeNode(node);\n}\nfunction isReadonlyKeywordOrPlusOrMinusToken(node) {\n  return isReadonlyKeyword(node) || isPlusToken(node) || isMinusToken(node);\n}\nfunction isQuestionOrPlusOrMinusToken(node) {\n  return isQuestionToken(node) || isPlusToken(node) || isMinusToken(node);\n}\nfunction isModuleName(node) {\n  return isIdentifier(node) || isStringLiteral(node);\n}\nfunction isExponentiationOperator(kind) {\n  return kind === 43 /* AsteriskAsteriskToken */;\n}\nfunction isMultiplicativeOperator(kind) {\n  return kind === 42 /* AsteriskToken */ || kind === 44 /* SlashToken */ || kind === 45 /* PercentToken */;\n}\nfunction isMultiplicativeOperatorOrHigher(kind) {\n  return isExponentiationOperator(kind) || isMultiplicativeOperator(kind);\n}\nfunction isAdditiveOperator(kind) {\n  return kind === 40 /* PlusToken */ || kind === 41 /* MinusToken */;\n}\nfunction isAdditiveOperatorOrHigher(kind) {\n  return isAdditiveOperator(kind) || isMultiplicativeOperatorOrHigher(kind);\n}\nfunction isShiftOperator(kind) {\n  return kind === 48 /* LessThanLessThanToken */ || kind === 49 /* GreaterThanGreaterThanToken */ || kind === 50 /* GreaterThanGreaterThanGreaterThanToken */;\n}\nfunction isShiftOperatorOrHigher(kind) {\n  return isShiftOperator(kind) || isAdditiveOperatorOrHigher(kind);\n}\nfunction isRelationalOperator(kind) {\n  return kind === 30 /* LessThanToken */ || kind === 33 /* LessThanEqualsToken */ || kind === 32 /* GreaterThanToken */ || kind === 34 /* GreaterThanEqualsToken */ || kind === 104 /* InstanceOfKeyword */ || kind === 103 /* InKeyword */;\n}\nfunction isRelationalOperatorOrHigher(kind) {\n  return isRelationalOperator(kind) || isShiftOperatorOrHigher(kind);\n}\nfunction isEqualityOperator(kind) {\n  return kind === 35 /* EqualsEqualsToken */ || kind === 37 /* EqualsEqualsEqualsToken */ || kind === 36 /* ExclamationEqualsToken */ || kind === 38 /* ExclamationEqualsEqualsToken */;\n}\nfunction isEqualityOperatorOrHigher(kind) {\n  return isEqualityOperator(kind) || isRelationalOperatorOrHigher(kind);\n}\nfunction isBitwiseOperator(kind) {\n  return kind === 51 /* AmpersandToken */ || kind === 52 /* BarToken */ || kind === 53 /* CaretToken */;\n}\nfunction isBitwiseOperatorOrHigher(kind) {\n  return isBitwiseOperator(kind) || isEqualityOperatorOrHigher(kind);\n}\nfunction isLogicalOperator2(kind) {\n  return kind === 56 /* AmpersandAmpersandToken */ || kind === 57 /* BarBarToken */;\n}\nfunction isLogicalOperatorOrHigher(kind) {\n  return isLogicalOperator2(kind) || isBitwiseOperatorOrHigher(kind);\n}\nfunction isAssignmentOperatorOrHigher(kind) {\n  return kind === 61 /* QuestionQuestionToken */ || isLogicalOperatorOrHigher(kind) || isAssignmentOperator(kind);\n}\nfunction isBinaryOperator(kind) {\n  return isAssignmentOperatorOrHigher(kind) || kind === 28 /* CommaToken */;\n}\nfunction isBinaryOperatorToken(node) {\n  return isBinaryOperator(node.kind);\n}\nvar BinaryExpressionState;\n((BinaryExpressionState2) => {\n  function enter(machine, stackIndex, stateStack, nodeStack, userStateStack, _resultHolder, outerState) {\n    const prevUserState = stackIndex > 0 ? userStateStack[stackIndex - 1] : void 0;\n    Debug.assertEqual(stateStack[stackIndex], enter);\n    userStateStack[stackIndex] = machine.onEnter(nodeStack[stackIndex], prevUserState, outerState);\n    stateStack[stackIndex] = nextState(machine, enter);\n    return stackIndex;\n  }\n  BinaryExpressionState2.enter = enter;\n  function left(machine, stackIndex, stateStack, nodeStack, userStateStack, _resultHolder, _outerState) {\n    Debug.assertEqual(stateStack[stackIndex], left);\n    Debug.assertIsDefined(machine.onLeft);\n    stateStack[stackIndex] = nextState(machine, left);\n    const nextNode = machine.onLeft(nodeStack[stackIndex].left, userStateStack[stackIndex], nodeStack[stackIndex]);\n    if (nextNode) {\n      checkCircularity(stackIndex, nodeStack, nextNode);\n      return pushStack(stackIndex, stateStack, nodeStack, userStateStack, nextNode);\n    }\n    return stackIndex;\n  }\n  BinaryExpressionState2.left = left;\n  function operator(machine, stackIndex, stateStack, nodeStack, userStateStack, _resultHolder, _outerState) {\n    Debug.assertEqual(stateStack[stackIndex], operator);\n    Debug.assertIsDefined(machine.onOperator);\n    stateStack[stackIndex] = nextState(machine, operator);\n    machine.onOperator(nodeStack[stackIndex].operatorToken, userStateStack[stackIndex], nodeStack[stackIndex]);\n    return stackIndex;\n  }\n  BinaryExpressionState2.operator = operator;\n  function right(machine, stackIndex, stateStack, nodeStack, userStateStack, _resultHolder, _outerState) {\n    Debug.assertEqual(stateStack[stackIndex], right);\n    Debug.assertIsDefined(machine.onRight);\n    stateStack[stackIndex] = nextState(machine, right);\n    const nextNode = machine.onRight(nodeStack[stackIndex].right, userStateStack[stackIndex], nodeStack[stackIndex]);\n    if (nextNode) {\n      checkCircularity(stackIndex, nodeStack, nextNode);\n      return pushStack(stackIndex, stateStack, nodeStack, userStateStack, nextNode);\n    }\n    return stackIndex;\n  }\n  BinaryExpressionState2.right = right;\n  function exit(machine, stackIndex, stateStack, nodeStack, userStateStack, resultHolder, _outerState) {\n    Debug.assertEqual(stateStack[stackIndex], exit);\n    stateStack[stackIndex] = nextState(machine, exit);\n    const result = machine.onExit(nodeStack[stackIndex], userStateStack[stackIndex]);\n    if (stackIndex > 0) {\n      stackIndex--;\n      if (machine.foldState) {\n        const side = stateStack[stackIndex] === exit ? \"right\" : \"left\";\n        userStateStack[stackIndex] = machine.foldState(userStateStack[stackIndex], result, side);\n      }\n    } else {\n      resultHolder.value = result;\n    }\n    return stackIndex;\n  }\n  BinaryExpressionState2.exit = exit;\n  function done(_machine, stackIndex, stateStack, _nodeStack, _userStateStack, _resultHolder, _outerState) {\n    Debug.assertEqual(stateStack[stackIndex], done);\n    return stackIndex;\n  }\n  BinaryExpressionState2.done = done;\n  function nextState(machine, currentState) {\n    switch (currentState) {\n      case enter:\n        if (machine.onLeft) return left;\n      // falls through\n      case left:\n        if (machine.onOperator) return operator;\n      // falls through\n      case operator:\n        if (machine.onRight) return right;\n      // falls through\n      case right:\n        return exit;\n      case exit:\n        return done;\n      case done:\n        return done;\n      default:\n        Debug.fail(\"Invalid state\");\n    }\n  }\n  BinaryExpressionState2.nextState = nextState;\n  function pushStack(stackIndex, stateStack, nodeStack, userStateStack, node) {\n    stackIndex++;\n    stateStack[stackIndex] = enter;\n    nodeStack[stackIndex] = node;\n    userStateStack[stackIndex] = void 0;\n    return stackIndex;\n  }\n  function checkCircularity(stackIndex, nodeStack, node) {\n    if (Debug.shouldAssert(2 /* Aggressive */)) {\n      while (stackIndex >= 0) {\n        Debug.assert(nodeStack[stackIndex] !== node, \"Circular traversal detected.\");\n        stackIndex--;\n      }\n    }\n  }\n})(BinaryExpressionState || (BinaryExpressionState = {}));\nvar BinaryExpressionStateMachine = class {\n  constructor(onEnter, onLeft, onOperator, onRight, onExit, foldState) {\n    this.onEnter = onEnter;\n    this.onLeft = onLeft;\n    this.onOperator = onOperator;\n    this.onRight = onRight;\n    this.onExit = onExit;\n    this.foldState = foldState;\n  }\n};\nfunction createBinaryExpressionTrampoline(onEnter, onLeft, onOperator, onRight, onExit, foldState) {\n  const machine = new BinaryExpressionStateMachine(onEnter, onLeft, onOperator, onRight, onExit, foldState);\n  return trampoline;\n  function trampoline(node, outerState) {\n    const resultHolder = { value: void 0 };\n    const stateStack = [BinaryExpressionState.enter];\n    const nodeStack = [node];\n    const userStateStack = [void 0];\n    let stackIndex = 0;\n    while (stateStack[stackIndex] !== BinaryExpressionState.done) {\n      stackIndex = stateStack[stackIndex](machine, stackIndex, stateStack, nodeStack, userStateStack, resultHolder, outerState);\n    }\n    Debug.assertEqual(stackIndex, 0);\n    return resultHolder.value;\n  }\n}\nfunction isExportOrDefaultKeywordKind(kind) {\n  return kind === 95 /* ExportKeyword */ || kind === 90 /* DefaultKeyword */;\n}\nfunction isExportOrDefaultModifier(node) {\n  const kind = node.kind;\n  return isExportOrDefaultKeywordKind(kind);\n}\nfunction elideNodes(factory2, nodes) {\n  if (nodes === void 0) return void 0;\n  if (nodes.length === 0) return nodes;\n  return setTextRange(factory2.createNodeArray([], nodes.hasTrailingComma), nodes);\n}\nfunction getNodeForGeneratedName(name) {\n  var _a;\n  const autoGenerate = name.emitNode.autoGenerate;\n  if (autoGenerate.flags & 4 /* Node */) {\n    const autoGenerateId = autoGenerate.id;\n    let node = name;\n    let original = node.original;\n    while (original) {\n      node = original;\n      const autoGenerate2 = (_a = node.emitNode) == null ? void 0 : _a.autoGenerate;\n      if (isMemberName(node) && (autoGenerate2 === void 0 || !!(autoGenerate2.flags & 4 /* Node */) && autoGenerate2.id !== autoGenerateId)) {\n        break;\n      }\n      original = node.original;\n    }\n    return node;\n  }\n  return name;\n}\nfunction formatGeneratedNamePart(part, generateName) {\n  return typeof part === \"object\" ? formatGeneratedName(\n    /*privateName*/\n    false,\n    part.prefix,\n    part.node,\n    part.suffix,\n    generateName\n  ) : typeof part === \"string\" ? part.length > 0 && part.charCodeAt(0) === 35 /* hash */ ? part.slice(1) : part : \"\";\n}\nfunction formatIdentifier(name, generateName) {\n  return typeof name === \"string\" ? name : formatIdentifierWorker(name, Debug.checkDefined(generateName));\n}\nfunction formatIdentifierWorker(node, generateName) {\n  return isGeneratedPrivateIdentifier(node) ? generateName(node).slice(1) : isGeneratedIdentifier(node) ? generateName(node) : isPrivateIdentifier(node) ? node.escapedText.slice(1) : idText(node);\n}\nfunction formatGeneratedName(privateName, prefix, baseName, suffix, generateName) {\n  prefix = formatGeneratedNamePart(prefix, generateName);\n  suffix = formatGeneratedNamePart(suffix, generateName);\n  baseName = formatIdentifier(baseName, generateName);\n  return `${privateName ? \"#\" : \"\"}${prefix}${baseName}${suffix}`;\n}\nfunction createAccessorPropertyBackingField(factory2, node, modifiers, initializer) {\n  return factory2.updatePropertyDeclaration(\n    node,\n    modifiers,\n    factory2.getGeneratedPrivateNameForNode(\n      node.name,\n      /*prefix*/\n      void 0,\n      \"_accessor_storage\"\n    ),\n    /*questionOrExclamationToken*/\n    void 0,\n    /*type*/\n    void 0,\n    initializer\n  );\n}\nfunction createAccessorPropertyGetRedirector(factory2, node, modifiers, name, receiver = factory2.createThis()) {\n  return factory2.createGetAccessorDeclaration(\n    modifiers,\n    name,\n    [],\n    /*type*/\n    void 0,\n    factory2.createBlock([\n      factory2.createReturnStatement(\n        factory2.createPropertyAccessExpression(\n          receiver,\n          factory2.getGeneratedPrivateNameForNode(\n            node.name,\n            /*prefix*/\n            void 0,\n            \"_accessor_storage\"\n          )\n        )\n      )\n    ])\n  );\n}\nfunction createAccessorPropertySetRedirector(factory2, node, modifiers, name, receiver = factory2.createThis()) {\n  return factory2.createSetAccessorDeclaration(\n    modifiers,\n    name,\n    [factory2.createParameterDeclaration(\n      /*modifiers*/\n      void 0,\n      /*dotDotDotToken*/\n      void 0,\n      \"value\"\n    )],\n    factory2.createBlock([\n      factory2.createExpressionStatement(\n        factory2.createAssignment(\n          factory2.createPropertyAccessExpression(\n            receiver,\n            factory2.getGeneratedPrivateNameForNode(\n              node.name,\n              /*prefix*/\n              void 0,\n              \"_accessor_storage\"\n            )\n          ),\n          factory2.createIdentifier(\"value\")\n        )\n      )\n    ])\n  );\n}\nfunction findComputedPropertyNameCacheAssignment(name) {\n  let node = name.expression;\n  while (true) {\n    node = skipOuterExpressions(node);\n    if (isCommaListExpression(node)) {\n      node = last(node.elements);\n      continue;\n    }\n    if (isCommaExpression(node)) {\n      node = node.right;\n      continue;\n    }\n    if (isAssignmentExpression(\n      node,\n      /*excludeCompoundAssignment*/\n      true\n    ) && isGeneratedIdentifier(node.left)) {\n      return node;\n    }\n    break;\n  }\n}\nfunction isSyntheticParenthesizedExpression(node) {\n  return isParenthesizedExpression(node) && nodeIsSynthesized(node) && !node.emitNode;\n}\nfunction flattenCommaListWorker(node, expressions) {\n  if (isSyntheticParenthesizedExpression(node)) {\n    flattenCommaListWorker(node.expression, expressions);\n  } else if (isCommaExpression(node)) {\n    flattenCommaListWorker(node.left, expressions);\n    flattenCommaListWorker(node.right, expressions);\n  } else if (isCommaListExpression(node)) {\n    for (const child of node.elements) {\n      flattenCommaListWorker(child, expressions);\n    }\n  } else {\n    expressions.push(node);\n  }\n}\nfunction flattenCommaList(node) {\n  const expressions = [];\n  flattenCommaListWorker(node, expressions);\n  return expressions;\n}\nfunction containsObjectRestOrSpread(node) {\n  if (node.transformFlags & 65536 /* ContainsObjectRestOrSpread */) return true;\n  if (node.transformFlags & 128 /* ContainsES2018 */) {\n    for (const element of getElementsOfBindingOrAssignmentPattern(node)) {\n      const target = getTargetOfBindingOrAssignmentElement(element);\n      if (target && isAssignmentPattern(target)) {\n        if (target.transformFlags & 65536 /* ContainsObjectRestOrSpread */) {\n          return true;\n        }\n        if (target.transformFlags & 128 /* ContainsES2018 */) {\n          if (containsObjectRestOrSpread(target)) return true;\n        }\n      }\n    }\n  }\n  return false;\n}\n\n// src/compiler/factory/utilitiesPublic.ts\nfunction setTextRange(range, location) {\n  return location ? setTextRangePosEnd(range, location.pos, location.end) : range;\n}\nfunction canHaveModifiers(node) {\n  const kind = node.kind;\n  return kind === 169 /* TypeParameter */ || kind === 170 /* Parameter */ || kind === 172 /* PropertySignature */ || kind === 173 /* PropertyDeclaration */ || kind === 174 /* MethodSignature */ || kind === 175 /* MethodDeclaration */ || kind === 177 /* Constructor */ || kind === 178 /* GetAccessor */ || kind === 179 /* SetAccessor */ || kind === 182 /* IndexSignature */ || kind === 186 /* ConstructorType */ || kind === 219 /* FunctionExpression */ || kind === 220 /* ArrowFunction */ || kind === 232 /* ClassExpression */ || kind === 244 /* VariableStatement */ || kind === 263 /* FunctionDeclaration */ || kind === 264 /* ClassDeclaration */ || kind === 265 /* InterfaceDeclaration */ || kind === 266 /* TypeAliasDeclaration */ || kind === 267 /* EnumDeclaration */ || kind === 268 /* ModuleDeclaration */ || kind === 272 /* ImportEqualsDeclaration */ || kind === 273 /* ImportDeclaration */ || kind === 278 /* ExportAssignment */ || kind === 279 /* ExportDeclaration */;\n}\nfunction canHaveDecorators(node) {\n  const kind = node.kind;\n  return kind === 170 /* Parameter */ || kind === 173 /* PropertyDeclaration */ || kind === 175 /* MethodDeclaration */ || kind === 178 /* GetAccessor */ || kind === 179 /* SetAccessor */ || kind === 232 /* ClassExpression */ || kind === 264 /* ClassDeclaration */;\n}\n\n// src/compiler/parser.ts\nvar NodeConstructor;\nvar TokenConstructor;\nvar IdentifierConstructor;\nvar PrivateIdentifierConstructor;\nvar SourceFileConstructor;\nvar parseBaseNodeFactory = {\n  createBaseSourceFileNode: (kind) => new (SourceFileConstructor || (SourceFileConstructor = objectAllocator.getSourceFileConstructor()))(kind, -1, -1),\n  createBaseIdentifierNode: (kind) => new (IdentifierConstructor || (IdentifierConstructor = objectAllocator.getIdentifierConstructor()))(kind, -1, -1),\n  createBasePrivateIdentifierNode: (kind) => new (PrivateIdentifierConstructor || (PrivateIdentifierConstructor = objectAllocator.getPrivateIdentifierConstructor()))(kind, -1, -1),\n  createBaseTokenNode: (kind) => new (TokenConstructor || (TokenConstructor = objectAllocator.getTokenConstructor()))(kind, -1, -1),\n  createBaseNode: (kind) => new (NodeConstructor || (NodeConstructor = objectAllocator.getNodeConstructor()))(kind, -1, -1)\n};\nvar parseNodeFactory = createNodeFactory(1 /* NoParenthesizerRules */, parseBaseNodeFactory);\nfunction visitNode2(cbNode, node) {\n  return node && cbNode(node);\n}\nfunction visitNodes(cbNode, cbNodes, nodes) {\n  if (nodes) {\n    if (cbNodes) {\n      return cbNodes(nodes);\n    }\n    for (const node of nodes) {\n      const result = cbNode(node);\n      if (result) {\n        return result;\n      }\n    }\n  }\n}\nfunction isJSDocLikeText(text, start) {\n  return text.charCodeAt(start + 1) === 42 /* asterisk */ && text.charCodeAt(start + 2) === 42 /* asterisk */ && text.charCodeAt(start + 3) !== 47 /* slash */;\n}\nfunction isFileProbablyExternalModule(sourceFile) {\n  return forEach(sourceFile.statements, isAnExternalModuleIndicatorNode) || getImportMetaIfNecessary(sourceFile);\n}\nfunction isAnExternalModuleIndicatorNode(node) {\n  return canHaveModifiers(node) && hasModifierOfKind(node, 95 /* ExportKeyword */) || isImportEqualsDeclaration(node) && isExternalModuleReference(node.moduleReference) || isImportDeclaration(node) || isExportAssignment(node) || isExportDeclaration(node) ? node : void 0;\n}\nfunction getImportMetaIfNecessary(sourceFile) {\n  return sourceFile.flags & 8388608 /* PossiblyContainsImportMeta */ ? walkTreeForImportMeta(sourceFile) : void 0;\n}\nfunction walkTreeForImportMeta(node) {\n  return isImportMeta2(node) ? node : forEachChild(node, walkTreeForImportMeta);\n}\nfunction hasModifierOfKind(node, kind) {\n  return some(node.modifiers, (m) => m.kind === kind);\n}\nfunction isImportMeta2(node) {\n  return isMetaProperty(node) && node.keywordToken === 102 /* ImportKeyword */ && node.name.escapedText === \"meta\";\n}\nvar forEachChildTable = {\n  [167 /* QualifiedName */]: function forEachChildInQualifiedName(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.left) || visitNode2(cbNode, node.right);\n  },\n  [169 /* TypeParameter */]: function forEachChildInTypeParameter(node, cbNode, cbNodes) {\n    return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.name) || visitNode2(cbNode, node.constraint) || visitNode2(cbNode, node.default) || visitNode2(cbNode, node.expression);\n  },\n  [305 /* ShorthandPropertyAssignment */]: function forEachChildInShorthandPropertyAssignment(node, cbNode, cbNodes) {\n    return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.name) || visitNode2(cbNode, node.questionToken) || visitNode2(cbNode, node.exclamationToken) || visitNode2(cbNode, node.equalsToken) || visitNode2(cbNode, node.objectAssignmentInitializer);\n  },\n  [306 /* SpreadAssignment */]: function forEachChildInSpreadAssignment(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.expression);\n  },\n  [170 /* Parameter */]: function forEachChildInParameter(node, cbNode, cbNodes) {\n    return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.dotDotDotToken) || visitNode2(cbNode, node.name) || visitNode2(cbNode, node.questionToken) || visitNode2(cbNode, node.type) || visitNode2(cbNode, node.initializer);\n  },\n  [173 /* PropertyDeclaration */]: function forEachChildInPropertyDeclaration(node, cbNode, cbNodes) {\n    return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.name) || visitNode2(cbNode, node.questionToken) || visitNode2(cbNode, node.exclamationToken) || visitNode2(cbNode, node.type) || visitNode2(cbNode, node.initializer);\n  },\n  [172 /* PropertySignature */]: function forEachChildInPropertySignature(node, cbNode, cbNodes) {\n    return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.name) || visitNode2(cbNode, node.questionToken) || visitNode2(cbNode, node.type) || visitNode2(cbNode, node.initializer);\n  },\n  [304 /* PropertyAssignment */]: function forEachChildInPropertyAssignment(node, cbNode, cbNodes) {\n    return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.name) || visitNode2(cbNode, node.questionToken) || visitNode2(cbNode, node.exclamationToken) || visitNode2(cbNode, node.initializer);\n  },\n  [261 /* VariableDeclaration */]: function forEachChildInVariableDeclaration(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.name) || visitNode2(cbNode, node.exclamationToken) || visitNode2(cbNode, node.type) || visitNode2(cbNode, node.initializer);\n  },\n  [209 /* BindingElement */]: function forEachChildInBindingElement(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.dotDotDotToken) || visitNode2(cbNode, node.propertyName) || visitNode2(cbNode, node.name) || visitNode2(cbNode, node.initializer);\n  },\n  [182 /* IndexSignature */]: function forEachChildInIndexSignature(node, cbNode, cbNodes) {\n    return visitNodes(cbNode, cbNodes, node.modifiers) || visitNodes(cbNode, cbNodes, node.typeParameters) || visitNodes(cbNode, cbNodes, node.parameters) || visitNode2(cbNode, node.type);\n  },\n  [186 /* ConstructorType */]: function forEachChildInConstructorType(node, cbNode, cbNodes) {\n    return visitNodes(cbNode, cbNodes, node.modifiers) || visitNodes(cbNode, cbNodes, node.typeParameters) || visitNodes(cbNode, cbNodes, node.parameters) || visitNode2(cbNode, node.type);\n  },\n  [185 /* FunctionType */]: function forEachChildInFunctionType(node, cbNode, cbNodes) {\n    return visitNodes(cbNode, cbNodes, node.modifiers) || visitNodes(cbNode, cbNodes, node.typeParameters) || visitNodes(cbNode, cbNodes, node.parameters) || visitNode2(cbNode, node.type);\n  },\n  [180 /* CallSignature */]: forEachChildInCallOrConstructSignature,\n  [181 /* ConstructSignature */]: forEachChildInCallOrConstructSignature,\n  [175 /* MethodDeclaration */]: function forEachChildInMethodDeclaration(node, cbNode, cbNodes) {\n    return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.asteriskToken) || visitNode2(cbNode, node.name) || visitNode2(cbNode, node.questionToken) || visitNode2(cbNode, node.exclamationToken) || visitNodes(cbNode, cbNodes, node.typeParameters) || visitNodes(cbNode, cbNodes, node.parameters) || visitNode2(cbNode, node.type) || visitNode2(cbNode, node.body);\n  },\n  [174 /* MethodSignature */]: function forEachChildInMethodSignature(node, cbNode, cbNodes) {\n    return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.name) || visitNode2(cbNode, node.questionToken) || visitNodes(cbNode, cbNodes, node.typeParameters) || visitNodes(cbNode, cbNodes, node.parameters) || visitNode2(cbNode, node.type);\n  },\n  [177 /* Constructor */]: function forEachChildInConstructor(node, cbNode, cbNodes) {\n    return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.name) || visitNodes(cbNode, cbNodes, node.typeParameters) || visitNodes(cbNode, cbNodes, node.parameters) || visitNode2(cbNode, node.type) || visitNode2(cbNode, node.body);\n  },\n  [178 /* GetAccessor */]: function forEachChildInGetAccessor(node, cbNode, cbNodes) {\n    return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.name) || visitNodes(cbNode, cbNodes, node.typeParameters) || visitNodes(cbNode, cbNodes, node.parameters) || visitNode2(cbNode, node.type) || visitNode2(cbNode, node.body);\n  },\n  [179 /* SetAccessor */]: function forEachChildInSetAccessor(node, cbNode, cbNodes) {\n    return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.name) || visitNodes(cbNode, cbNodes, node.typeParameters) || visitNodes(cbNode, cbNodes, node.parameters) || visitNode2(cbNode, node.type) || visitNode2(cbNode, node.body);\n  },\n  [263 /* FunctionDeclaration */]: function forEachChildInFunctionDeclaration(node, cbNode, cbNodes) {\n    return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.asteriskToken) || visitNode2(cbNode, node.name) || visitNodes(cbNode, cbNodes, node.typeParameters) || visitNodes(cbNode, cbNodes, node.parameters) || visitNode2(cbNode, node.type) || visitNode2(cbNode, node.body);\n  },\n  [219 /* FunctionExpression */]: function forEachChildInFunctionExpression(node, cbNode, cbNodes) {\n    return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.asteriskToken) || visitNode2(cbNode, node.name) || visitNodes(cbNode, cbNodes, node.typeParameters) || visitNodes(cbNode, cbNodes, node.parameters) || visitNode2(cbNode, node.type) || visitNode2(cbNode, node.body);\n  },\n  [220 /* ArrowFunction */]: function forEachChildInArrowFunction(node, cbNode, cbNodes) {\n    return visitNodes(cbNode, cbNodes, node.modifiers) || visitNodes(cbNode, cbNodes, node.typeParameters) || visitNodes(cbNode, cbNodes, node.parameters) || visitNode2(cbNode, node.type) || visitNode2(cbNode, node.equalsGreaterThanToken) || visitNode2(cbNode, node.body);\n  },\n  [176 /* ClassStaticBlockDeclaration */]: function forEachChildInClassStaticBlockDeclaration(node, cbNode, cbNodes) {\n    return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.body);\n  },\n  [184 /* TypeReference */]: function forEachChildInTypeReference(node, cbNode, cbNodes) {\n    return visitNode2(cbNode, node.typeName) || visitNodes(cbNode, cbNodes, node.typeArguments);\n  },\n  [183 /* TypePredicate */]: function forEachChildInTypePredicate(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.assertsModifier) || visitNode2(cbNode, node.parameterName) || visitNode2(cbNode, node.type);\n  },\n  [187 /* TypeQuery */]: function forEachChildInTypeQuery(node, cbNode, cbNodes) {\n    return visitNode2(cbNode, node.exprName) || visitNodes(cbNode, cbNodes, node.typeArguments);\n  },\n  [188 /* TypeLiteral */]: function forEachChildInTypeLiteral(node, cbNode, cbNodes) {\n    return visitNodes(cbNode, cbNodes, node.members);\n  },\n  [189 /* ArrayType */]: function forEachChildInArrayType(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.elementType);\n  },\n  [190 /* TupleType */]: function forEachChildInTupleType(node, cbNode, cbNodes) {\n    return visitNodes(cbNode, cbNodes, node.elements);\n  },\n  [193 /* UnionType */]: forEachChildInUnionOrIntersectionType,\n  [194 /* IntersectionType */]: forEachChildInUnionOrIntersectionType,\n  [195 /* ConditionalType */]: function forEachChildInConditionalType(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.checkType) || visitNode2(cbNode, node.extendsType) || visitNode2(cbNode, node.trueType) || visitNode2(cbNode, node.falseType);\n  },\n  [196 /* InferType */]: function forEachChildInInferType(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.typeParameter);\n  },\n  [206 /* ImportType */]: function forEachChildInImportType(node, cbNode, cbNodes) {\n    return visitNode2(cbNode, node.argument) || visitNode2(cbNode, node.attributes) || visitNode2(cbNode, node.qualifier) || visitNodes(cbNode, cbNodes, node.typeArguments);\n  },\n  [303 /* ImportTypeAssertionContainer */]: function forEachChildInImportTypeAssertionContainer(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.assertClause);\n  },\n  [197 /* ParenthesizedType */]: forEachChildInParenthesizedTypeOrTypeOperator,\n  [199 /* TypeOperator */]: forEachChildInParenthesizedTypeOrTypeOperator,\n  [200 /* IndexedAccessType */]: function forEachChildInIndexedAccessType(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.objectType) || visitNode2(cbNode, node.indexType);\n  },\n  [201 /* MappedType */]: function forEachChildInMappedType(node, cbNode, cbNodes) {\n    return visitNode2(cbNode, node.readonlyToken) || visitNode2(cbNode, node.typeParameter) || visitNode2(cbNode, node.nameType) || visitNode2(cbNode, node.questionToken) || visitNode2(cbNode, node.type) || visitNodes(cbNode, cbNodes, node.members);\n  },\n  [202 /* LiteralType */]: function forEachChildInLiteralType(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.literal);\n  },\n  [203 /* NamedTupleMember */]: function forEachChildInNamedTupleMember(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.dotDotDotToken) || visitNode2(cbNode, node.name) || visitNode2(cbNode, node.questionToken) || visitNode2(cbNode, node.type);\n  },\n  [207 /* ObjectBindingPattern */]: forEachChildInObjectOrArrayBindingPattern,\n  [208 /* ArrayBindingPattern */]: forEachChildInObjectOrArrayBindingPattern,\n  [210 /* ArrayLiteralExpression */]: function forEachChildInArrayLiteralExpression(node, cbNode, cbNodes) {\n    return visitNodes(cbNode, cbNodes, node.elements);\n  },\n  [211 /* ObjectLiteralExpression */]: function forEachChildInObjectLiteralExpression(node, cbNode, cbNodes) {\n    return visitNodes(cbNode, cbNodes, node.properties);\n  },\n  [212 /* PropertyAccessExpression */]: function forEachChildInPropertyAccessExpression(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.expression) || visitNode2(cbNode, node.questionDotToken) || visitNode2(cbNode, node.name);\n  },\n  [213 /* ElementAccessExpression */]: function forEachChildInElementAccessExpression(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.expression) || visitNode2(cbNode, node.questionDotToken) || visitNode2(cbNode, node.argumentExpression);\n  },\n  [214 /* CallExpression */]: forEachChildInCallOrNewExpression,\n  [215 /* NewExpression */]: forEachChildInCallOrNewExpression,\n  [216 /* TaggedTemplateExpression */]: function forEachChildInTaggedTemplateExpression(node, cbNode, cbNodes) {\n    return visitNode2(cbNode, node.tag) || visitNode2(cbNode, node.questionDotToken) || visitNodes(cbNode, cbNodes, node.typeArguments) || visitNode2(cbNode, node.template);\n  },\n  [217 /* TypeAssertionExpression */]: function forEachChildInTypeAssertionExpression(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.type) || visitNode2(cbNode, node.expression);\n  },\n  [218 /* ParenthesizedExpression */]: function forEachChildInParenthesizedExpression(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.expression);\n  },\n  [221 /* DeleteExpression */]: function forEachChildInDeleteExpression(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.expression);\n  },\n  [222 /* TypeOfExpression */]: function forEachChildInTypeOfExpression(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.expression);\n  },\n  [223 /* VoidExpression */]: function forEachChildInVoidExpression(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.expression);\n  },\n  [225 /* PrefixUnaryExpression */]: function forEachChildInPrefixUnaryExpression(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.operand);\n  },\n  [230 /* YieldExpression */]: function forEachChildInYieldExpression(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.asteriskToken) || visitNode2(cbNode, node.expression);\n  },\n  [224 /* AwaitExpression */]: function forEachChildInAwaitExpression(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.expression);\n  },\n  [226 /* PostfixUnaryExpression */]: function forEachChildInPostfixUnaryExpression(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.operand);\n  },\n  [227 /* BinaryExpression */]: function forEachChildInBinaryExpression(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.left) || visitNode2(cbNode, node.operatorToken) || visitNode2(cbNode, node.right);\n  },\n  [235 /* AsExpression */]: function forEachChildInAsExpression(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.expression) || visitNode2(cbNode, node.type);\n  },\n  [236 /* NonNullExpression */]: function forEachChildInNonNullExpression(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.expression);\n  },\n  [239 /* SatisfiesExpression */]: function forEachChildInSatisfiesExpression(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.expression) || visitNode2(cbNode, node.type);\n  },\n  [237 /* MetaProperty */]: function forEachChildInMetaProperty(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.name);\n  },\n  [228 /* ConditionalExpression */]: function forEachChildInConditionalExpression(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.condition) || visitNode2(cbNode, node.questionToken) || visitNode2(cbNode, node.whenTrue) || visitNode2(cbNode, node.colonToken) || visitNode2(cbNode, node.whenFalse);\n  },\n  [231 /* SpreadElement */]: function forEachChildInSpreadElement(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.expression);\n  },\n  [242 /* Block */]: forEachChildInBlock,\n  [269 /* ModuleBlock */]: forEachChildInBlock,\n  [308 /* SourceFile */]: function forEachChildInSourceFile(node, cbNode, cbNodes) {\n    return visitNodes(cbNode, cbNodes, node.statements) || visitNode2(cbNode, node.endOfFileToken);\n  },\n  [244 /* VariableStatement */]: function forEachChildInVariableStatement(node, cbNode, cbNodes) {\n    return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.declarationList);\n  },\n  [262 /* VariableDeclarationList */]: function forEachChildInVariableDeclarationList(node, cbNode, cbNodes) {\n    return visitNodes(cbNode, cbNodes, node.declarations);\n  },\n  [245 /* ExpressionStatement */]: function forEachChildInExpressionStatement(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.expression);\n  },\n  [246 /* IfStatement */]: function forEachChildInIfStatement(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.expression) || visitNode2(cbNode, node.thenStatement) || visitNode2(cbNode, node.elseStatement);\n  },\n  [247 /* DoStatement */]: function forEachChildInDoStatement(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.statement) || visitNode2(cbNode, node.expression);\n  },\n  [248 /* WhileStatement */]: function forEachChildInWhileStatement(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.expression) || visitNode2(cbNode, node.statement);\n  },\n  [249 /* ForStatement */]: function forEachChildInForStatement(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.initializer) || visitNode2(cbNode, node.condition) || visitNode2(cbNode, node.incrementor) || visitNode2(cbNode, node.statement);\n  },\n  [250 /* ForInStatement */]: function forEachChildInForInStatement(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.initializer) || visitNode2(cbNode, node.expression) || visitNode2(cbNode, node.statement);\n  },\n  [251 /* ForOfStatement */]: function forEachChildInForOfStatement(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.awaitModifier) || visitNode2(cbNode, node.initializer) || visitNode2(cbNode, node.expression) || visitNode2(cbNode, node.statement);\n  },\n  [252 /* ContinueStatement */]: forEachChildInContinueOrBreakStatement,\n  [253 /* BreakStatement */]: forEachChildInContinueOrBreakStatement,\n  [254 /* ReturnStatement */]: function forEachChildInReturnStatement(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.expression);\n  },\n  [255 /* WithStatement */]: function forEachChildInWithStatement(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.expression) || visitNode2(cbNode, node.statement);\n  },\n  [256 /* SwitchStatement */]: function forEachChildInSwitchStatement(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.expression) || visitNode2(cbNode, node.caseBlock);\n  },\n  [270 /* CaseBlock */]: function forEachChildInCaseBlock(node, cbNode, cbNodes) {\n    return visitNodes(cbNode, cbNodes, node.clauses);\n  },\n  [297 /* CaseClause */]: function forEachChildInCaseClause(node, cbNode, cbNodes) {\n    return visitNode2(cbNode, node.expression) || visitNodes(cbNode, cbNodes, node.statements);\n  },\n  [298 /* DefaultClause */]: function forEachChildInDefaultClause(node, cbNode, cbNodes) {\n    return visitNodes(cbNode, cbNodes, node.statements);\n  },\n  [257 /* LabeledStatement */]: function forEachChildInLabeledStatement(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.label) || visitNode2(cbNode, node.statement);\n  },\n  [258 /* ThrowStatement */]: function forEachChildInThrowStatement(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.expression);\n  },\n  [259 /* TryStatement */]: function forEachChildInTryStatement(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.tryBlock) || visitNode2(cbNode, node.catchClause) || visitNode2(cbNode, node.finallyBlock);\n  },\n  [300 /* CatchClause */]: function forEachChildInCatchClause(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.variableDeclaration) || visitNode2(cbNode, node.block);\n  },\n  [171 /* Decorator */]: function forEachChildInDecorator(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.expression);\n  },\n  [264 /* ClassDeclaration */]: forEachChildInClassDeclarationOrExpression,\n  [232 /* ClassExpression */]: forEachChildInClassDeclarationOrExpression,\n  [265 /* InterfaceDeclaration */]: function forEachChildInInterfaceDeclaration(node, cbNode, cbNodes) {\n    return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.name) || visitNodes(cbNode, cbNodes, node.typeParameters) || visitNodes(cbNode, cbNodes, node.heritageClauses) || visitNodes(cbNode, cbNodes, node.members);\n  },\n  [266 /* TypeAliasDeclaration */]: function forEachChildInTypeAliasDeclaration(node, cbNode, cbNodes) {\n    return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.name) || visitNodes(cbNode, cbNodes, node.typeParameters) || visitNode2(cbNode, node.type);\n  },\n  [267 /* EnumDeclaration */]: function forEachChildInEnumDeclaration(node, cbNode, cbNodes) {\n    return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.name) || visitNodes(cbNode, cbNodes, node.members);\n  },\n  [307 /* EnumMember */]: function forEachChildInEnumMember(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.name) || visitNode2(cbNode, node.initializer);\n  },\n  [268 /* ModuleDeclaration */]: function forEachChildInModuleDeclaration(node, cbNode, cbNodes) {\n    return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.name) || visitNode2(cbNode, node.body);\n  },\n  [272 /* ImportEqualsDeclaration */]: function forEachChildInImportEqualsDeclaration(node, cbNode, cbNodes) {\n    return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.name) || visitNode2(cbNode, node.moduleReference);\n  },\n  [273 /* ImportDeclaration */]: function forEachChildInImportDeclaration(node, cbNode, cbNodes) {\n    return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.importClause) || visitNode2(cbNode, node.moduleSpecifier) || visitNode2(cbNode, node.attributes);\n  },\n  [274 /* ImportClause */]: function forEachChildInImportClause(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.name) || visitNode2(cbNode, node.namedBindings);\n  },\n  [301 /* ImportAttributes */]: function forEachChildInImportAttributes(node, cbNode, cbNodes) {\n    return visitNodes(cbNode, cbNodes, node.elements);\n  },\n  [302 /* ImportAttribute */]: function forEachChildInImportAttribute(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.name) || visitNode2(cbNode, node.value);\n  },\n  [271 /* NamespaceExportDeclaration */]: function forEachChildInNamespaceExportDeclaration(node, cbNode, cbNodes) {\n    return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.name);\n  },\n  [275 /* NamespaceImport */]: function forEachChildInNamespaceImport(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.name);\n  },\n  [281 /* NamespaceExport */]: function forEachChildInNamespaceExport(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.name);\n  },\n  [276 /* NamedImports */]: forEachChildInNamedImportsOrExports,\n  [280 /* NamedExports */]: forEachChildInNamedImportsOrExports,\n  [279 /* ExportDeclaration */]: function forEachChildInExportDeclaration(node, cbNode, cbNodes) {\n    return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.exportClause) || visitNode2(cbNode, node.moduleSpecifier) || visitNode2(cbNode, node.attributes);\n  },\n  [277 /* ImportSpecifier */]: forEachChildInImportOrExportSpecifier,\n  [282 /* ExportSpecifier */]: forEachChildInImportOrExportSpecifier,\n  [278 /* ExportAssignment */]: function forEachChildInExportAssignment(node, cbNode, cbNodes) {\n    return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.expression);\n  },\n  [229 /* TemplateExpression */]: function forEachChildInTemplateExpression(node, cbNode, cbNodes) {\n    return visitNode2(cbNode, node.head) || visitNodes(cbNode, cbNodes, node.templateSpans);\n  },\n  [240 /* TemplateSpan */]: function forEachChildInTemplateSpan(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.expression) || visitNode2(cbNode, node.literal);\n  },\n  [204 /* TemplateLiteralType */]: function forEachChildInTemplateLiteralType(node, cbNode, cbNodes) {\n    return visitNode2(cbNode, node.head) || visitNodes(cbNode, cbNodes, node.templateSpans);\n  },\n  [205 /* TemplateLiteralTypeSpan */]: function forEachChildInTemplateLiteralTypeSpan(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.type) || visitNode2(cbNode, node.literal);\n  },\n  [168 /* ComputedPropertyName */]: function forEachChildInComputedPropertyName(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.expression);\n  },\n  [299 /* HeritageClause */]: function forEachChildInHeritageClause(node, cbNode, cbNodes) {\n    return visitNodes(cbNode, cbNodes, node.types);\n  },\n  [234 /* ExpressionWithTypeArguments */]: function forEachChildInExpressionWithTypeArguments(node, cbNode, cbNodes) {\n    return visitNode2(cbNode, node.expression) || visitNodes(cbNode, cbNodes, node.typeArguments);\n  },\n  [284 /* ExternalModuleReference */]: function forEachChildInExternalModuleReference(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.expression);\n  },\n  [283 /* MissingDeclaration */]: function forEachChildInMissingDeclaration(node, cbNode, cbNodes) {\n    return visitNodes(cbNode, cbNodes, node.modifiers);\n  },\n  [357 /* CommaListExpression */]: function forEachChildInCommaListExpression(node, cbNode, cbNodes) {\n    return visitNodes(cbNode, cbNodes, node.elements);\n  },\n  [285 /* JsxElement */]: function forEachChildInJsxElement(node, cbNode, cbNodes) {\n    return visitNode2(cbNode, node.openingElement) || visitNodes(cbNode, cbNodes, node.children) || visitNode2(cbNode, node.closingElement);\n  },\n  [289 /* JsxFragment */]: function forEachChildInJsxFragment(node, cbNode, cbNodes) {\n    return visitNode2(cbNode, node.openingFragment) || visitNodes(cbNode, cbNodes, node.children) || visitNode2(cbNode, node.closingFragment);\n  },\n  [286 /* JsxSelfClosingElement */]: forEachChildInJsxOpeningOrSelfClosingElement,\n  [287 /* JsxOpeningElement */]: forEachChildInJsxOpeningOrSelfClosingElement,\n  [293 /* JsxAttributes */]: function forEachChildInJsxAttributes(node, cbNode, cbNodes) {\n    return visitNodes(cbNode, cbNodes, node.properties);\n  },\n  [292 /* JsxAttribute */]: function forEachChildInJsxAttribute(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.name) || visitNode2(cbNode, node.initializer);\n  },\n  [294 /* JsxSpreadAttribute */]: function forEachChildInJsxSpreadAttribute(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.expression);\n  },\n  [295 /* JsxExpression */]: function forEachChildInJsxExpression(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.dotDotDotToken) || visitNode2(cbNode, node.expression);\n  },\n  [288 /* JsxClosingElement */]: function forEachChildInJsxClosingElement(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.tagName);\n  },\n  [296 /* JsxNamespacedName */]: function forEachChildInJsxNamespacedName(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.namespace) || visitNode2(cbNode, node.name);\n  },\n  [191 /* OptionalType */]: forEachChildInOptionalRestOrJSDocParameterModifier,\n  [192 /* RestType */]: forEachChildInOptionalRestOrJSDocParameterModifier,\n  [310 /* JSDocTypeExpression */]: forEachChildInOptionalRestOrJSDocParameterModifier,\n  [316 /* JSDocNonNullableType */]: forEachChildInOptionalRestOrJSDocParameterModifier,\n  [315 /* JSDocNullableType */]: forEachChildInOptionalRestOrJSDocParameterModifier,\n  [317 /* JSDocOptionalType */]: forEachChildInOptionalRestOrJSDocParameterModifier,\n  [319 /* JSDocVariadicType */]: forEachChildInOptionalRestOrJSDocParameterModifier,\n  [318 /* JSDocFunctionType */]: function forEachChildInJSDocFunctionType(node, cbNode, cbNodes) {\n    return visitNodes(cbNode, cbNodes, node.parameters) || visitNode2(cbNode, node.type);\n  },\n  [321 /* JSDoc */]: function forEachChildInJSDoc(node, cbNode, cbNodes) {\n    return (typeof node.comment === \"string\" ? void 0 : visitNodes(cbNode, cbNodes, node.comment)) || visitNodes(cbNode, cbNodes, node.tags);\n  },\n  [348 /* JSDocSeeTag */]: function forEachChildInJSDocSeeTag(node, cbNode, cbNodes) {\n    return visitNode2(cbNode, node.tagName) || visitNode2(cbNode, node.name) || (typeof node.comment === \"string\" ? void 0 : visitNodes(cbNode, cbNodes, node.comment));\n  },\n  [311 /* JSDocNameReference */]: function forEachChildInJSDocNameReference(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.name);\n  },\n  [312 /* JSDocMemberName */]: function forEachChildInJSDocMemberName(node, cbNode, _cbNodes) {\n    return visitNode2(cbNode, node.left) || visitNode2(cbNode, node.right);\n  },\n  [342 /* JSDocParameterTag */]: forEachChildInJSDocParameterOrPropertyTag,\n  [349 /* JSDocPropertyTag */]: forEachChildInJSDocParameterOrPropertyTag,\n  [331 /* JSDocAuthorTag */]: function forEachChildInJSDocAuthorTag(node, cbNode, cbNodes) {\n    return visitNode2(cbNode, node.tagName) || (typeof node.comment === \"string\" ? void 0 : visitNodes(cbNode, cbNodes, node.comment));\n  },\n  [330 /* JSDocImplementsTag */]: function forEachChildInJSDocImplementsTag(node, cbNode, cbNodes) {\n    return visitNode2(cbNode, node.tagName) || visitNode2(cbNode, node.class) || (typeof node.comment === \"string\" ? void 0 : visitNodes(cbNode, cbNodes, node.comment));\n  },\n  [329 /* JSDocAugmentsTag */]: function forEachChildInJSDocAugmentsTag(node, cbNode, cbNodes) {\n    return visitNode2(cbNode, node.tagName) || visitNode2(cbNode, node.class) || (typeof node.comment === \"string\" ? void 0 : visitNodes(cbNode, cbNodes, node.comment));\n  },\n  [346 /* JSDocTemplateTag */]: function forEachChildInJSDocTemplateTag(node, cbNode, cbNodes) {\n    return visitNode2(cbNode, node.tagName) || visitNode2(cbNode, node.constraint) || visitNodes(cbNode, cbNodes, node.typeParameters) || (typeof node.comment === \"string\" ? void 0 : visitNodes(cbNode, cbNodes, node.comment));\n  },\n  [347 /* JSDocTypedefTag */]: function forEachChildInJSDocTypedefTag(node, cbNode, cbNodes) {\n    return visitNode2(cbNode, node.tagName) || (node.typeExpression && node.typeExpression.kind === 310 /* JSDocTypeExpression */ ? visitNode2(cbNode, node.typeExpression) || visitNode2(cbNode, node.fullName) || (typeof node.comment === \"string\" ? void 0 : visitNodes(cbNode, cbNodes, node.comment)) : visitNode2(cbNode, node.fullName) || visitNode2(cbNode, node.typeExpression) || (typeof node.comment === \"string\" ? void 0 : visitNodes(cbNode, cbNodes, node.comment)));\n  },\n  [339 /* JSDocCallbackTag */]: function forEachChildInJSDocCallbackTag(node, cbNode, cbNodes) {\n    return visitNode2(cbNode, node.tagName) || visitNode2(cbNode, node.fullName) || visitNode2(cbNode, node.typeExpression) || (typeof node.comment === \"string\" ? void 0 : visitNodes(cbNode, cbNodes, node.comment));\n  },\n  [343 /* JSDocReturnTag */]: forEachChildInJSDocTypeLikeTag,\n  [345 /* JSDocTypeTag */]: forEachChildInJSDocTypeLikeTag,\n  [344 /* JSDocThisTag */]: forEachChildInJSDocTypeLikeTag,\n  [341 /* JSDocEnumTag */]: forEachChildInJSDocTypeLikeTag,\n  [351 /* JSDocSatisfiesTag */]: forEachChildInJSDocTypeLikeTag,\n  [350 /* JSDocThrowsTag */]: forEachChildInJSDocTypeLikeTag,\n  [340 /* JSDocOverloadTag */]: forEachChildInJSDocTypeLikeTag,\n  [324 /* JSDocSignature */]: function forEachChildInJSDocSignature(node, cbNode, _cbNodes) {\n    return forEach(node.typeParameters, cbNode) || forEach(node.parameters, cbNode) || visitNode2(cbNode, node.type);\n  },\n  [325 /* JSDocLink */]: forEachChildInJSDocLinkCodeOrPlain,\n  [326 /* JSDocLinkCode */]: forEachChildInJSDocLinkCodeOrPlain,\n  [327 /* JSDocLinkPlain */]: forEachChildInJSDocLinkCodeOrPlain,\n  [323 /* JSDocTypeLiteral */]: function forEachChildInJSDocTypeLiteral(node, cbNode, _cbNodes) {\n    return forEach(node.jsDocPropertyTags, cbNode);\n  },\n  [328 /* JSDocTag */]: forEachChildInJSDocTag,\n  [333 /* JSDocClassTag */]: forEachChildInJSDocTag,\n  [334 /* JSDocPublicTag */]: forEachChildInJSDocTag,\n  [335 /* JSDocPrivateTag */]: forEachChildInJSDocTag,\n  [336 /* JSDocProtectedTag */]: forEachChildInJSDocTag,\n  [337 /* JSDocReadonlyTag */]: forEachChildInJSDocTag,\n  [332 /* JSDocDeprecatedTag */]: forEachChildInJSDocTag,\n  [338 /* JSDocOverrideTag */]: forEachChildInJSDocTag,\n  [352 /* JSDocImportTag */]: forEachChildInJSDocImportTag,\n  [356 /* PartiallyEmittedExpression */]: forEachChildInPartiallyEmittedExpression\n};\nfunction forEachChildInCallOrConstructSignature(node, cbNode, cbNodes) {\n  return visitNodes(cbNode, cbNodes, node.typeParameters) || visitNodes(cbNode, cbNodes, node.parameters) || visitNode2(cbNode, node.type);\n}\nfunction forEachChildInUnionOrIntersectionType(node, cbNode, cbNodes) {\n  return visitNodes(cbNode, cbNodes, node.types);\n}\nfunction forEachChildInParenthesizedTypeOrTypeOperator(node, cbNode, _cbNodes) {\n  return visitNode2(cbNode, node.type);\n}\nfunction forEachChildInObjectOrArrayBindingPattern(node, cbNode, cbNodes) {\n  return visitNodes(cbNode, cbNodes, node.elements);\n}\nfunction forEachChildInCallOrNewExpression(node, cbNode, cbNodes) {\n  return visitNode2(cbNode, node.expression) || // TODO: should we separate these branches out?\n  visitNode2(cbNode, node.questionDotToken) || visitNodes(cbNode, cbNodes, node.typeArguments) || visitNodes(cbNode, cbNodes, node.arguments);\n}\nfunction forEachChildInBlock(node, cbNode, cbNodes) {\n  return visitNodes(cbNode, cbNodes, node.statements);\n}\nfunction forEachChildInContinueOrBreakStatement(node, cbNode, _cbNodes) {\n  return visitNode2(cbNode, node.label);\n}\nfunction forEachChildInClassDeclarationOrExpression(node, cbNode, cbNodes) {\n  return visitNodes(cbNode, cbNodes, node.modifiers) || visitNode2(cbNode, node.name) || visitNodes(cbNode, cbNodes, node.typeParameters) || visitNodes(cbNode, cbNodes, node.heritageClauses) || visitNodes(cbNode, cbNodes, node.members);\n}\nfunction forEachChildInNamedImportsOrExports(node, cbNode, cbNodes) {\n  return visitNodes(cbNode, cbNodes, node.elements);\n}\nfunction forEachChildInImportOrExportSpecifier(node, cbNode, _cbNodes) {\n  return visitNode2(cbNode, node.propertyName) || visitNode2(cbNode, node.name);\n}\nfunction forEachChildInJsxOpeningOrSelfClosingElement(node, cbNode, cbNodes) {\n  return visitNode2(cbNode, node.tagName) || visitNodes(cbNode, cbNodes, node.typeArguments) || visitNode2(cbNode, node.attributes);\n}\nfunction forEachChildInOptionalRestOrJSDocParameterModifier(node, cbNode, _cbNodes) {\n  return visitNode2(cbNode, node.type);\n}\nfunction forEachChildInJSDocParameterOrPropertyTag(node, cbNode, cbNodes) {\n  return visitNode2(cbNode, node.tagName) || (node.isNameFirst ? visitNode2(cbNode, node.name) || visitNode2(cbNode, node.typeExpression) : visitNode2(cbNode, node.typeExpression) || visitNode2(cbNode, node.name)) || (typeof node.comment === \"string\" ? void 0 : visitNodes(cbNode, cbNodes, node.comment));\n}\nfunction forEachChildInJSDocTypeLikeTag(node, cbNode, cbNodes) {\n  return visitNode2(cbNode, node.tagName) || visitNode2(cbNode, node.typeExpression) || (typeof node.comment === \"string\" ? void 0 : visitNodes(cbNode, cbNodes, node.comment));\n}\nfunction forEachChildInJSDocLinkCodeOrPlain(node, cbNode, _cbNodes) {\n  return visitNode2(cbNode, node.name);\n}\nfunction forEachChildInJSDocTag(node, cbNode, cbNodes) {\n  return visitNode2(cbNode, node.tagName) || (typeof node.comment === \"string\" ? void 0 : visitNodes(cbNode, cbNodes, node.comment));\n}\nfunction forEachChildInJSDocImportTag(node, cbNode, cbNodes) {\n  return visitNode2(cbNode, node.tagName) || visitNode2(cbNode, node.importClause) || visitNode2(cbNode, node.moduleSpecifier) || visitNode2(cbNode, node.attributes) || (typeof node.comment === \"string\" ? void 0 : visitNodes(cbNode, cbNodes, node.comment));\n}\nfunction forEachChildInPartiallyEmittedExpression(node, cbNode, _cbNodes) {\n  return visitNode2(cbNode, node.expression);\n}\nfunction forEachChild(node, cbNode, cbNodes) {\n  if (node === void 0 || node.kind <= 166 /* LastToken */) {\n    return;\n  }\n  const fn = forEachChildTable[node.kind];\n  return fn === void 0 ? void 0 : fn(node, cbNode, cbNodes);\n}\nfunction forEachChildRecursively(rootNode, cbNode, cbNodes) {\n  const queue = gatherPossibleChildren(rootNode);\n  const parents = [];\n  while (parents.length < queue.length) {\n    parents.push(rootNode);\n  }\n  while (queue.length !== 0) {\n    const current = queue.pop();\n    const parent2 = parents.pop();\n    if (isArray(current)) {\n      if (cbNodes) {\n        const res = cbNodes(current, parent2);\n        if (res) {\n          if (res === \"skip\") continue;\n          return res;\n        }\n      }\n      for (let i = current.length - 1; i >= 0; --i) {\n        queue.push(current[i]);\n        parents.push(parent2);\n      }\n    } else {\n      const res = cbNode(current, parent2);\n      if (res) {\n        if (res === \"skip\") continue;\n        return res;\n      }\n      if (current.kind >= 167 /* FirstNode */) {\n        for (const child of gatherPossibleChildren(current)) {\n          queue.push(child);\n          parents.push(current);\n        }\n      }\n    }\n  }\n}\nfunction gatherPossibleChildren(node) {\n  const children = [];\n  forEachChild(node, addWorkItem, addWorkItem);\n  return children;\n  function addWorkItem(n) {\n    children.unshift(n);\n  }\n}\nfunction setExternalModuleIndicator(sourceFile) {\n  sourceFile.externalModuleIndicator = isFileProbablyExternalModule(sourceFile);\n}\nfunction createSourceFile(fileName, sourceText, languageVersionOrOptions, setParentNodes = false, scriptKind) {\n  var _a, _b;\n  (_a = tracing) == null ? void 0 : _a.push(\n    tracing.Phase.Parse,\n    \"createSourceFile\",\n    { path: fileName },\n    /*separateBeginAndEnd*/\n    true\n  );\n  mark(\"beforeParse\");\n  let result;\n  const {\n    languageVersion,\n    setExternalModuleIndicator: overrideSetExternalModuleIndicator,\n    impliedNodeFormat: format,\n    jsDocParsingMode\n  } = typeof languageVersionOrOptions === \"object\" ? languageVersionOrOptions : { languageVersion: languageVersionOrOptions };\n  if (languageVersion === 100 /* JSON */) {\n    result = Parser.parseSourceFile(\n      fileName,\n      sourceText,\n      languageVersion,\n      /*syntaxCursor*/\n      void 0,\n      setParentNodes,\n      6 /* JSON */,\n      noop,\n      jsDocParsingMode\n    );\n  } else {\n    const setIndicator = format === void 0 ? overrideSetExternalModuleIndicator : (file) => {\n      file.impliedNodeFormat = format;\n      return (overrideSetExternalModuleIndicator || setExternalModuleIndicator)(file);\n    };\n    result = Parser.parseSourceFile(\n      fileName,\n      sourceText,\n      languageVersion,\n      /*syntaxCursor*/\n      void 0,\n      setParentNodes,\n      scriptKind,\n      setIndicator,\n      jsDocParsingMode\n    );\n  }\n  mark(\"afterParse\");\n  measure(\"Parse\", \"beforeParse\", \"afterParse\");\n  (_b = tracing) == null ? void 0 : _b.pop();\n  return result;\n}\nfunction parseIsolatedEntityName(text, languageVersion) {\n  return Parser.parseIsolatedEntityName(text, languageVersion);\n}\nfunction parseJsonText(fileName, sourceText) {\n  return Parser.parseJsonText(fileName, sourceText);\n}\nfunction isExternalModule(file) {\n  return file.externalModuleIndicator !== void 0;\n}\nfunction updateSourceFile(sourceFile, newText, textChangeRange, aggressiveChecks = false) {\n  const newSourceFile = IncrementalParser.updateSourceFile(sourceFile, newText, textChangeRange, aggressiveChecks);\n  newSourceFile.flags |= sourceFile.flags & 12582912 /* PermanentlySetIncrementalFlags */;\n  return newSourceFile;\n}\nfunction parseIsolatedJSDocComment(content, start, length2) {\n  const result = Parser.JSDocParser.parseIsolatedJSDocComment(content, start, length2);\n  if (result && result.jsDoc) {\n    Parser.fixupParentReferences(result.jsDoc);\n  }\n  return result;\n}\nfunction parseJSDocTypeExpressionForTests(content, start, length2) {\n  return Parser.JSDocParser.parseJSDocTypeExpressionForTests(content, start, length2);\n}\nvar Parser;\n((Parser2) => {\n  var scanner2 = createScanner(\n    99 /* Latest */,\n    /*skipTrivia*/\n    true\n  );\n  var disallowInAndDecoratorContext = 8192 /* DisallowInContext */ | 32768 /* DecoratorContext */;\n  var NodeConstructor2;\n  var TokenConstructor2;\n  var IdentifierConstructor2;\n  var PrivateIdentifierConstructor2;\n  var SourceFileConstructor2;\n  function countNode(node) {\n    nodeCount++;\n    return node;\n  }\n  var baseNodeFactory = {\n    createBaseSourceFileNode: (kind) => countNode(new SourceFileConstructor2(\n      kind,\n      /*pos*/\n      0,\n      /*end*/\n      0\n    )),\n    createBaseIdentifierNode: (kind) => countNode(new IdentifierConstructor2(\n      kind,\n      /*pos*/\n      0,\n      /*end*/\n      0\n    )),\n    createBasePrivateIdentifierNode: (kind) => countNode(new PrivateIdentifierConstructor2(\n      kind,\n      /*pos*/\n      0,\n      /*end*/\n      0\n    )),\n    createBaseTokenNode: (kind) => countNode(new TokenConstructor2(\n      kind,\n      /*pos*/\n      0,\n      /*end*/\n      0\n    )),\n    createBaseNode: (kind) => countNode(new NodeConstructor2(\n      kind,\n      /*pos*/\n      0,\n      /*end*/\n      0\n    ))\n  };\n  var factory2 = createNodeFactory(1 /* NoParenthesizerRules */ | 2 /* NoNodeConverters */ | 8 /* NoOriginalNode */, baseNodeFactory);\n  var {\n    createNodeArray: factoryCreateNodeArray,\n    createNumericLiteral: factoryCreateNumericLiteral,\n    createStringLiteral: factoryCreateStringLiteral,\n    createLiteralLikeNode: factoryCreateLiteralLikeNode,\n    createIdentifier: factoryCreateIdentifier,\n    createPrivateIdentifier: factoryCreatePrivateIdentifier,\n    createToken: factoryCreateToken,\n    createArrayLiteralExpression: factoryCreateArrayLiteralExpression,\n    createObjectLiteralExpression: factoryCreateObjectLiteralExpression,\n    createPropertyAccessExpression: factoryCreatePropertyAccessExpression,\n    createPropertyAccessChain: factoryCreatePropertyAccessChain,\n    createElementAccessExpression: factoryCreateElementAccessExpression,\n    createElementAccessChain: factoryCreateElementAccessChain,\n    createCallExpression: factoryCreateCallExpression,\n    createCallChain: factoryCreateCallChain,\n    createNewExpression: factoryCreateNewExpression,\n    createParenthesizedExpression: factoryCreateParenthesizedExpression,\n    createBlock: factoryCreateBlock,\n    createVariableStatement: factoryCreateVariableStatement,\n    createExpressionStatement: factoryCreateExpressionStatement,\n    createIfStatement: factoryCreateIfStatement,\n    createWhileStatement: factoryCreateWhileStatement,\n    createForStatement: factoryCreateForStatement,\n    createForOfStatement: factoryCreateForOfStatement,\n    createVariableDeclaration: factoryCreateVariableDeclaration,\n    createVariableDeclarationList: factoryCreateVariableDeclarationList\n  } = factory2;\n  var fileName;\n  var sourceFlags;\n  var sourceText;\n  var languageVersion;\n  var scriptKind;\n  var languageVariant;\n  var parseDiagnostics;\n  var jsDocDiagnostics;\n  var syntaxCursor;\n  var currentToken;\n  var nodeCount;\n  var identifiers;\n  var identifierCount;\n  var parsingContext;\n  var notParenthesizedArrow;\n  var contextFlags;\n  var topLevel = true;\n  var parseErrorBeforeNextFinishedNode = false;\n  function parseSourceFile(fileName2, sourceText2, languageVersion2, syntaxCursor2, setParentNodes = false, scriptKind2, setExternalModuleIndicatorOverride, jsDocParsingMode = 0 /* ParseAll */) {\n    var _a;\n    scriptKind2 = ensureScriptKind(fileName2, scriptKind2);\n    if (scriptKind2 === 6 /* JSON */) {\n      const result2 = parseJsonText2(fileName2, sourceText2, languageVersion2, syntaxCursor2, setParentNodes);\n      convertToJson(\n        result2,\n        (_a = result2.statements[0]) == null ? void 0 : _a.expression,\n        result2.parseDiagnostics,\n        /*returnValue*/\n        false,\n        /*jsonConversionNotifier*/\n        void 0\n      );\n      result2.referencedFiles = emptyArray;\n      result2.typeReferenceDirectives = emptyArray;\n      result2.libReferenceDirectives = emptyArray;\n      result2.amdDependencies = emptyArray;\n      result2.hasNoDefaultLib = false;\n      result2.pragmas = emptyMap;\n      return result2;\n    }\n    initializeState(fileName2, sourceText2, languageVersion2, syntaxCursor2, scriptKind2, jsDocParsingMode);\n    const result = parseSourceFileWorker(languageVersion2, setParentNodes, scriptKind2, setExternalModuleIndicatorOverride || setExternalModuleIndicator, jsDocParsingMode);\n    clearState();\n    return result;\n  }\n  Parser2.parseSourceFile = parseSourceFile;\n  function parseIsolatedEntityName2(content, languageVersion2) {\n    initializeState(\n      \"\",\n      content,\n      languageVersion2,\n      /*syntaxCursor*/\n      void 0,\n      1 /* JS */,\n      0 /* ParseAll */\n    );\n    nextToken();\n    const entityName = parseEntityName(\n      /*allowReservedWords*/\n      true\n    );\n    const isValid = token() === 1 /* EndOfFileToken */ && !parseDiagnostics.length;\n    clearState();\n    return isValid ? entityName : void 0;\n  }\n  Parser2.parseIsolatedEntityName = parseIsolatedEntityName2;\n  function parseJsonText2(fileName2, sourceText2, languageVersion2 = 2 /* ES2015 */, syntaxCursor2, setParentNodes = false) {\n    initializeState(fileName2, sourceText2, languageVersion2, syntaxCursor2, 6 /* JSON */, 0 /* ParseAll */);\n    sourceFlags = contextFlags;\n    nextToken();\n    const pos = getNodePos();\n    let statements, endOfFileToken;\n    if (token() === 1 /* EndOfFileToken */) {\n      statements = createNodeArray([], pos, pos);\n      endOfFileToken = parseTokenNode();\n    } else {\n      let expressions;\n      while (token() !== 1 /* EndOfFileToken */) {\n        let expression2;\n        switch (token()) {\n          case 23 /* OpenBracketToken */:\n            expression2 = parseArrayLiteralExpression();\n            break;\n          case 112 /* TrueKeyword */:\n          case 97 /* FalseKeyword */:\n          case 106 /* NullKeyword */:\n            expression2 = parseTokenNode();\n            break;\n          case 41 /* MinusToken */:\n            if (lookAhead(() => nextToken() === 9 /* NumericLiteral */ && nextToken() !== 59 /* ColonToken */)) {\n              expression2 = parsePrefixUnaryExpression();\n            } else {\n              expression2 = parseObjectLiteralExpression();\n            }\n            break;\n          case 9 /* NumericLiteral */:\n          case 11 /* StringLiteral */:\n            if (lookAhead(() => nextToken() !== 59 /* ColonToken */)) {\n              expression2 = parseLiteralNode();\n              break;\n            }\n          // falls through\n          default:\n            expression2 = parseObjectLiteralExpression();\n            break;\n        }\n        if (expressions && isArray(expressions)) {\n          expressions.push(expression2);\n        } else if (expressions) {\n          expressions = [expressions, expression2];\n        } else {\n          expressions = expression2;\n          if (token() !== 1 /* EndOfFileToken */) {\n            parseErrorAtCurrentToken(Diagnostics.Unexpected_token);\n          }\n        }\n      }\n      const expression = isArray(expressions) ? finishNode(factoryCreateArrayLiteralExpression(expressions), pos) : Debug.checkDefined(expressions);\n      const statement = factoryCreateExpressionStatement(expression);\n      finishNode(statement, pos);\n      statements = createNodeArray([statement], pos);\n      endOfFileToken = parseExpectedToken(1 /* EndOfFileToken */, Diagnostics.Unexpected_token);\n    }\n    const sourceFile = createSourceFile2(\n      fileName2,\n      2 /* ES2015 */,\n      6 /* JSON */,\n      /*isDeclarationFile*/\n      false,\n      statements,\n      endOfFileToken,\n      sourceFlags,\n      noop\n    );\n    if (setParentNodes) {\n      fixupParentReferences(sourceFile);\n    }\n    sourceFile.nodeCount = nodeCount;\n    sourceFile.identifierCount = identifierCount;\n    sourceFile.identifiers = identifiers;\n    sourceFile.parseDiagnostics = attachFileToDiagnostics(parseDiagnostics, sourceFile);\n    if (jsDocDiagnostics) {\n      sourceFile.jsDocDiagnostics = attachFileToDiagnostics(jsDocDiagnostics, sourceFile);\n    }\n    const result = sourceFile;\n    clearState();\n    return result;\n  }\n  Parser2.parseJsonText = parseJsonText2;\n  function initializeState(_fileName, _sourceText, _languageVersion, _syntaxCursor, _scriptKind, _jsDocParsingMode) {\n    NodeConstructor2 = objectAllocator.getNodeConstructor();\n    TokenConstructor2 = objectAllocator.getTokenConstructor();\n    IdentifierConstructor2 = objectAllocator.getIdentifierConstructor();\n    PrivateIdentifierConstructor2 = objectAllocator.getPrivateIdentifierConstructor();\n    SourceFileConstructor2 = objectAllocator.getSourceFileConstructor();\n    fileName = normalizePath(_fileName);\n    sourceText = _sourceText;\n    languageVersion = _languageVersion;\n    syntaxCursor = _syntaxCursor;\n    scriptKind = _scriptKind;\n    languageVariant = getLanguageVariant(_scriptKind);\n    parseDiagnostics = [];\n    parsingContext = 0;\n    identifiers = /* @__PURE__ */ new Map();\n    identifierCount = 0;\n    nodeCount = 0;\n    sourceFlags = 0;\n    topLevel = true;\n    switch (scriptKind) {\n      case 1 /* JS */:\n      case 2 /* JSX */:\n        contextFlags = 524288 /* JavaScriptFile */;\n        break;\n      case 6 /* JSON */:\n        contextFlags = 524288 /* JavaScriptFile */ | 134217728 /* JsonFile */;\n        break;\n      default:\n        contextFlags = 0 /* None */;\n        break;\n    }\n    parseErrorBeforeNextFinishedNode = false;\n    scanner2.setText(sourceText);\n    scanner2.setOnError(scanError);\n    scanner2.setScriptTarget(languageVersion);\n    scanner2.setLanguageVariant(languageVariant);\n    scanner2.setScriptKind(scriptKind);\n    scanner2.setJSDocParsingMode(_jsDocParsingMode);\n  }\n  function clearState() {\n    scanner2.clearCommentDirectives();\n    scanner2.setText(\"\");\n    scanner2.setOnError(void 0);\n    scanner2.setScriptKind(0 /* Unknown */);\n    scanner2.setJSDocParsingMode(0 /* ParseAll */);\n    sourceText = void 0;\n    languageVersion = void 0;\n    syntaxCursor = void 0;\n    scriptKind = void 0;\n    languageVariant = void 0;\n    sourceFlags = 0;\n    parseDiagnostics = void 0;\n    jsDocDiagnostics = void 0;\n    parsingContext = 0;\n    identifiers = void 0;\n    notParenthesizedArrow = void 0;\n    topLevel = true;\n  }\n  function parseSourceFileWorker(languageVersion2, setParentNodes, scriptKind2, setExternalModuleIndicator2, jsDocParsingMode) {\n    const isDeclarationFile = isDeclarationFileName(fileName);\n    if (isDeclarationFile) {\n      contextFlags |= 33554432 /* Ambient */;\n    }\n    sourceFlags = contextFlags;\n    nextToken();\n    const statements = parseList(0 /* SourceElements */, parseStatement);\n    Debug.assert(token() === 1 /* EndOfFileToken */);\n    const endHasJSDoc = hasPrecedingJSDocComment();\n    const endOfFileToken = withJSDoc(parseTokenNode(), endHasJSDoc);\n    const sourceFile = createSourceFile2(fileName, languageVersion2, scriptKind2, isDeclarationFile, statements, endOfFileToken, sourceFlags, setExternalModuleIndicator2);\n    processCommentPragmas(sourceFile, sourceText);\n    processPragmasIntoFields(sourceFile, reportPragmaDiagnostic);\n    sourceFile.commentDirectives = scanner2.getCommentDirectives();\n    sourceFile.nodeCount = nodeCount;\n    sourceFile.identifierCount = identifierCount;\n    sourceFile.identifiers = identifiers;\n    sourceFile.parseDiagnostics = attachFileToDiagnostics(parseDiagnostics, sourceFile);\n    sourceFile.jsDocParsingMode = jsDocParsingMode;\n    if (jsDocDiagnostics) {\n      sourceFile.jsDocDiagnostics = attachFileToDiagnostics(jsDocDiagnostics, sourceFile);\n    }\n    if (setParentNodes) {\n      fixupParentReferences(sourceFile);\n    }\n    return sourceFile;\n    function reportPragmaDiagnostic(pos, end, diagnostic) {\n      parseDiagnostics.push(createDetachedDiagnostic(fileName, sourceText, pos, end, diagnostic));\n    }\n  }\n  let hasDeprecatedTag = false;\n  function withJSDoc(node, hasJSDoc) {\n    if (!hasJSDoc) {\n      return node;\n    }\n    Debug.assert(!node.jsDoc);\n    const jsDoc = mapDefined(getJSDocCommentRanges(node, sourceText), (comment) => JSDocParser.parseJSDocComment(node, comment.pos, comment.end - comment.pos));\n    if (jsDoc.length) node.jsDoc = jsDoc;\n    if (hasDeprecatedTag) {\n      hasDeprecatedTag = false;\n      node.flags |= 536870912 /* Deprecated */;\n    }\n    return node;\n  }\n  function reparseTopLevelAwait(sourceFile) {\n    const savedSyntaxCursor = syntaxCursor;\n    const baseSyntaxCursor = IncrementalParser.createSyntaxCursor(sourceFile);\n    syntaxCursor = { currentNode: currentNode2 };\n    const statements = [];\n    const savedParseDiagnostics = parseDiagnostics;\n    parseDiagnostics = [];\n    let pos = 0;\n    let start = findNextStatementWithAwait(sourceFile.statements, 0);\n    while (start !== -1) {\n      const prevStatement = sourceFile.statements[pos];\n      const nextStatement = sourceFile.statements[start];\n      addRange(statements, sourceFile.statements, pos, start);\n      pos = findNextStatementWithoutAwait(sourceFile.statements, start);\n      const diagnosticStart = findIndex(savedParseDiagnostics, (diagnostic) => diagnostic.start >= prevStatement.pos);\n      const diagnosticEnd = diagnosticStart >= 0 ? findIndex(savedParseDiagnostics, (diagnostic) => diagnostic.start >= nextStatement.pos, diagnosticStart) : -1;\n      if (diagnosticStart >= 0) {\n        addRange(parseDiagnostics, savedParseDiagnostics, diagnosticStart, diagnosticEnd >= 0 ? diagnosticEnd : void 0);\n      }\n      speculationHelper(() => {\n        const savedContextFlags = contextFlags;\n        contextFlags |= 65536 /* AwaitContext */;\n        scanner2.resetTokenState(nextStatement.pos);\n        nextToken();\n        while (token() !== 1 /* EndOfFileToken */) {\n          const startPos = scanner2.getTokenFullStart();\n          const statement = parseListElement(0 /* SourceElements */, parseStatement);\n          statements.push(statement);\n          if (startPos === scanner2.getTokenFullStart()) {\n            nextToken();\n          }\n          if (pos >= 0) {\n            const nonAwaitStatement = sourceFile.statements[pos];\n            if (statement.end === nonAwaitStatement.pos) {\n              break;\n            }\n            if (statement.end > nonAwaitStatement.pos) {\n              pos = findNextStatementWithoutAwait(sourceFile.statements, pos + 1);\n            }\n          }\n        }\n        contextFlags = savedContextFlags;\n      }, 2 /* Reparse */);\n      start = pos >= 0 ? findNextStatementWithAwait(sourceFile.statements, pos) : -1;\n    }\n    if (pos >= 0) {\n      const prevStatement = sourceFile.statements[pos];\n      addRange(statements, sourceFile.statements, pos);\n      const diagnosticStart = findIndex(savedParseDiagnostics, (diagnostic) => diagnostic.start >= prevStatement.pos);\n      if (diagnosticStart >= 0) {\n        addRange(parseDiagnostics, savedParseDiagnostics, diagnosticStart);\n      }\n    }\n    syntaxCursor = savedSyntaxCursor;\n    return factory2.updateSourceFile(sourceFile, setTextRange(factoryCreateNodeArray(statements), sourceFile.statements));\n    function containsPossibleTopLevelAwait(node) {\n      return !(node.flags & 65536 /* AwaitContext */) && !!(node.transformFlags & 67108864 /* ContainsPossibleTopLevelAwait */);\n    }\n    function findNextStatementWithAwait(statements2, start2) {\n      for (let i = start2; i < statements2.length; i++) {\n        if (containsPossibleTopLevelAwait(statements2[i])) {\n          return i;\n        }\n      }\n      return -1;\n    }\n    function findNextStatementWithoutAwait(statements2, start2) {\n      for (let i = start2; i < statements2.length; i++) {\n        if (!containsPossibleTopLevelAwait(statements2[i])) {\n          return i;\n        }\n      }\n      return -1;\n    }\n    function currentNode2(position) {\n      const node = baseSyntaxCursor.currentNode(position);\n      if (topLevel && node && containsPossibleTopLevelAwait(node)) {\n        markAsIntersectingIncrementalChange(node);\n      }\n      return node;\n    }\n  }\n  function fixupParentReferences(rootNode) {\n    setParentRecursive(\n      rootNode,\n      /*incremental*/\n      true\n    );\n  }\n  Parser2.fixupParentReferences = fixupParentReferences;\n  function createSourceFile2(fileName2, languageVersion2, scriptKind2, isDeclarationFile, statements, endOfFileToken, flags, setExternalModuleIndicator2) {\n    let sourceFile = factory2.createSourceFile(statements, endOfFileToken, flags);\n    setTextRangePosWidth(sourceFile, 0, sourceText.length);\n    setFields(sourceFile);\n    if (!isDeclarationFile && isExternalModule(sourceFile) && sourceFile.transformFlags & 67108864 /* ContainsPossibleTopLevelAwait */) {\n      const oldSourceFile = sourceFile;\n      sourceFile = reparseTopLevelAwait(sourceFile);\n      if (oldSourceFile !== sourceFile) setFields(sourceFile);\n    }\n    return sourceFile;\n    function setFields(sourceFile2) {\n      sourceFile2.text = sourceText;\n      sourceFile2.bindDiagnostics = [];\n      sourceFile2.bindSuggestionDiagnostics = void 0;\n      sourceFile2.languageVersion = languageVersion2;\n      sourceFile2.fileName = fileName2;\n      sourceFile2.languageVariant = getLanguageVariant(scriptKind2);\n      sourceFile2.isDeclarationFile = isDeclarationFile;\n      sourceFile2.scriptKind = scriptKind2;\n      setExternalModuleIndicator2(sourceFile2);\n      sourceFile2.setExternalModuleIndicator = setExternalModuleIndicator2;\n    }\n  }\n  function setContextFlag(val, flag) {\n    if (val) {\n      contextFlags |= flag;\n    } else {\n      contextFlags &= ~flag;\n    }\n  }\n  function setDisallowInContext(val) {\n    setContextFlag(val, 8192 /* DisallowInContext */);\n  }\n  function setYieldContext(val) {\n    setContextFlag(val, 16384 /* YieldContext */);\n  }\n  function setDecoratorContext(val) {\n    setContextFlag(val, 32768 /* DecoratorContext */);\n  }\n  function setAwaitContext(val) {\n    setContextFlag(val, 65536 /* AwaitContext */);\n  }\n  function doOutsideOfContext(context, func) {\n    const contextFlagsToClear = context & contextFlags;\n    if (contextFlagsToClear) {\n      setContextFlag(\n        /*val*/\n        false,\n        contextFlagsToClear\n      );\n      const result = func();\n      setContextFlag(\n        /*val*/\n        true,\n        contextFlagsToClear\n      );\n      return result;\n    }\n    return func();\n  }\n  function doInsideOfContext(context, func) {\n    const contextFlagsToSet = context & ~contextFlags;\n    if (contextFlagsToSet) {\n      setContextFlag(\n        /*val*/\n        true,\n        contextFlagsToSet\n      );\n      const result = func();\n      setContextFlag(\n        /*val*/\n        false,\n        contextFlagsToSet\n      );\n      return result;\n    }\n    return func();\n  }\n  function allowInAnd(func) {\n    return doOutsideOfContext(8192 /* DisallowInContext */, func);\n  }\n  function disallowInAnd(func) {\n    return doInsideOfContext(8192 /* DisallowInContext */, func);\n  }\n  function allowConditionalTypesAnd(func) {\n    return doOutsideOfContext(131072 /* DisallowConditionalTypesContext */, func);\n  }\n  function disallowConditionalTypesAnd(func) {\n    return doInsideOfContext(131072 /* DisallowConditionalTypesContext */, func);\n  }\n  function doInYieldContext(func) {\n    return doInsideOfContext(16384 /* YieldContext */, func);\n  }\n  function doInDecoratorContext(func) {\n    return doInsideOfContext(32768 /* DecoratorContext */, func);\n  }\n  function doInAwaitContext(func) {\n    return doInsideOfContext(65536 /* AwaitContext */, func);\n  }\n  function doOutsideOfAwaitContext(func) {\n    return doOutsideOfContext(65536 /* AwaitContext */, func);\n  }\n  function doInYieldAndAwaitContext(func) {\n    return doInsideOfContext(16384 /* YieldContext */ | 65536 /* AwaitContext */, func);\n  }\n  function doOutsideOfYieldAndAwaitContext(func) {\n    return doOutsideOfContext(16384 /* YieldContext */ | 65536 /* AwaitContext */, func);\n  }\n  function inContext(flags) {\n    return (contextFlags & flags) !== 0;\n  }\n  function inYieldContext() {\n    return inContext(16384 /* YieldContext */);\n  }\n  function inDisallowInContext() {\n    return inContext(8192 /* DisallowInContext */);\n  }\n  function inDisallowConditionalTypesContext() {\n    return inContext(131072 /* DisallowConditionalTypesContext */);\n  }\n  function inDecoratorContext() {\n    return inContext(32768 /* DecoratorContext */);\n  }\n  function inAwaitContext() {\n    return inContext(65536 /* AwaitContext */);\n  }\n  function parseErrorAtCurrentToken(message, ...args) {\n    return parseErrorAt(scanner2.getTokenStart(), scanner2.getTokenEnd(), message, ...args);\n  }\n  function parseErrorAtPosition(start, length2, message, ...args) {\n    const lastError = lastOrUndefined(parseDiagnostics);\n    let result;\n    if (!lastError || start !== lastError.start) {\n      result = createDetachedDiagnostic(fileName, sourceText, start, length2, message, ...args);\n      parseDiagnostics.push(result);\n    }\n    parseErrorBeforeNextFinishedNode = true;\n    return result;\n  }\n  function parseErrorAt(start, end, message, ...args) {\n    return parseErrorAtPosition(start, end - start, message, ...args);\n  }\n  function parseErrorAtRange(range, message, ...args) {\n    parseErrorAt(range.pos, range.end, message, ...args);\n  }\n  function scanError(message, length2, arg0) {\n    parseErrorAtPosition(scanner2.getTokenEnd(), length2, message, arg0);\n  }\n  function getNodePos() {\n    return scanner2.getTokenFullStart();\n  }\n  function hasPrecedingJSDocComment() {\n    return scanner2.hasPrecedingJSDocComment();\n  }\n  function token() {\n    return currentToken;\n  }\n  function nextTokenWithoutCheck() {\n    return currentToken = scanner2.scan();\n  }\n  function nextTokenAnd(func) {\n    nextToken();\n    return func();\n  }\n  function nextToken() {\n    if (isKeyword(currentToken) && (scanner2.hasUnicodeEscape() || scanner2.hasExtendedUnicodeEscape())) {\n      parseErrorAt(scanner2.getTokenStart(), scanner2.getTokenEnd(), Diagnostics.Keywords_cannot_contain_escape_characters);\n    }\n    return nextTokenWithoutCheck();\n  }\n  function nextTokenJSDoc() {\n    return currentToken = scanner2.scanJsDocToken();\n  }\n  function nextJSDocCommentTextToken(inBackticks) {\n    return currentToken = scanner2.scanJSDocCommentTextToken(inBackticks);\n  }\n  function reScanGreaterToken() {\n    return currentToken = scanner2.reScanGreaterToken();\n  }\n  function reScanSlashToken() {\n    return currentToken = scanner2.reScanSlashToken();\n  }\n  function reScanTemplateToken(isTaggedTemplate) {\n    return currentToken = scanner2.reScanTemplateToken(isTaggedTemplate);\n  }\n  function reScanLessThanToken() {\n    return currentToken = scanner2.reScanLessThanToken();\n  }\n  function reScanHashToken() {\n    return currentToken = scanner2.reScanHashToken();\n  }\n  function scanJsxIdentifier() {\n    return currentToken = scanner2.scanJsxIdentifier();\n  }\n  function scanJsxText() {\n    return currentToken = scanner2.scanJsxToken();\n  }\n  function scanJsxAttributeValue() {\n    return currentToken = scanner2.scanJsxAttributeValue();\n  }\n  function speculationHelper(callback, speculationKind) {\n    const saveToken = currentToken;\n    const saveParseDiagnosticsLength = parseDiagnostics.length;\n    const saveParseErrorBeforeNextFinishedNode = parseErrorBeforeNextFinishedNode;\n    const saveContextFlags = contextFlags;\n    const result = speculationKind !== 0 /* TryParse */ ? scanner2.lookAhead(callback) : scanner2.tryScan(callback);\n    Debug.assert(saveContextFlags === contextFlags);\n    if (!result || speculationKind !== 0 /* TryParse */) {\n      currentToken = saveToken;\n      if (speculationKind !== 2 /* Reparse */) {\n        parseDiagnostics.length = saveParseDiagnosticsLength;\n      }\n      parseErrorBeforeNextFinishedNode = saveParseErrorBeforeNextFinishedNode;\n    }\n    return result;\n  }\n  function lookAhead(callback) {\n    return speculationHelper(callback, 1 /* Lookahead */);\n  }\n  function tryParse(callback) {\n    return speculationHelper(callback, 0 /* TryParse */);\n  }\n  function isBindingIdentifier() {\n    if (token() === 80 /* Identifier */) {\n      return true;\n    }\n    return token() > 118 /* LastReservedWord */;\n  }\n  function isIdentifier2() {\n    if (token() === 80 /* Identifier */) {\n      return true;\n    }\n    if (token() === 127 /* YieldKeyword */ && inYieldContext()) {\n      return false;\n    }\n    if (token() === 135 /* AwaitKeyword */ && inAwaitContext()) {\n      return false;\n    }\n    return token() > 118 /* LastReservedWord */;\n  }\n  function parseExpected(kind, diagnosticMessage, shouldAdvance = true) {\n    if (token() === kind) {\n      if (shouldAdvance) {\n        nextToken();\n      }\n      return true;\n    }\n    if (diagnosticMessage) {\n      parseErrorAtCurrentToken(diagnosticMessage);\n    } else {\n      parseErrorAtCurrentToken(Diagnostics._0_expected, tokenToString(kind));\n    }\n    return false;\n  }\n  const viableKeywordSuggestions = Object.keys(textToKeywordObj).filter((keyword) => keyword.length > 2);\n  function parseErrorForMissingSemicolonAfter(node) {\n    if (isTaggedTemplateExpression(node)) {\n      parseErrorAt(skipTrivia(sourceText, node.template.pos), node.template.end, Diagnostics.Module_declaration_names_may_only_use_or_quoted_strings);\n      return;\n    }\n    const expressionText = isIdentifier(node) ? idText(node) : void 0;\n    if (!expressionText || !isIdentifierText(expressionText, languageVersion)) {\n      parseErrorAtCurrentToken(Diagnostics._0_expected, tokenToString(27 /* SemicolonToken */));\n      return;\n    }\n    const pos = skipTrivia(sourceText, node.pos);\n    switch (expressionText) {\n      case \"const\":\n      case \"let\":\n      case \"var\":\n        parseErrorAt(pos, node.end, Diagnostics.Variable_declaration_not_allowed_at_this_location);\n        return;\n      case \"declare\":\n        return;\n      case \"interface\":\n        parseErrorForInvalidName(Diagnostics.Interface_name_cannot_be_0, Diagnostics.Interface_must_be_given_a_name, 19 /* OpenBraceToken */);\n        return;\n      case \"is\":\n        parseErrorAt(pos, scanner2.getTokenStart(), Diagnostics.A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods);\n        return;\n      case \"module\":\n      case \"namespace\":\n        parseErrorForInvalidName(Diagnostics.Namespace_name_cannot_be_0, Diagnostics.Namespace_must_be_given_a_name, 19 /* OpenBraceToken */);\n        return;\n      case \"type\":\n        parseErrorForInvalidName(Diagnostics.Type_alias_name_cannot_be_0, Diagnostics.Type_alias_must_be_given_a_name, 64 /* EqualsToken */);\n        return;\n    }\n    const suggestion = getSpellingSuggestion(expressionText, viableKeywordSuggestions, identity) ?? getSpaceSuggestion(expressionText);\n    if (suggestion) {\n      parseErrorAt(pos, node.end, Diagnostics.Unknown_keyword_or_identifier_Did_you_mean_0, suggestion);\n      return;\n    }\n    if (token() === 0 /* Unknown */) {\n      return;\n    }\n    parseErrorAt(pos, node.end, Diagnostics.Unexpected_keyword_or_identifier);\n  }\n  function parseErrorForInvalidName(nameDiagnostic, blankDiagnostic, tokenIfBlankName) {\n    if (token() === tokenIfBlankName) {\n      parseErrorAtCurrentToken(blankDiagnostic);\n    } else {\n      parseErrorAtCurrentToken(nameDiagnostic, scanner2.getTokenValue());\n    }\n  }\n  function getSpaceSuggestion(expressionText) {\n    for (const keyword of viableKeywordSuggestions) {\n      if (expressionText.length > keyword.length + 2 && startsWith(expressionText, keyword)) {\n        return `${keyword} ${expressionText.slice(keyword.length)}`;\n      }\n    }\n    return void 0;\n  }\n  function parseSemicolonAfterPropertyName(name, type, initializer) {\n    if (token() === 60 /* AtToken */ && !scanner2.hasPrecedingLineBreak()) {\n      parseErrorAtCurrentToken(Diagnostics.Decorators_must_precede_the_name_and_all_keywords_of_property_declarations);\n      return;\n    }\n    if (token() === 21 /* OpenParenToken */) {\n      parseErrorAtCurrentToken(Diagnostics.Cannot_start_a_function_call_in_a_type_annotation);\n      nextToken();\n      return;\n    }\n    if (type && !canParseSemicolon()) {\n      if (initializer) {\n        parseErrorAtCurrentToken(Diagnostics._0_expected, tokenToString(27 /* SemicolonToken */));\n      } else {\n        parseErrorAtCurrentToken(Diagnostics.Expected_for_property_initializer);\n      }\n      return;\n    }\n    if (tryParseSemicolon()) {\n      return;\n    }\n    if (initializer) {\n      parseErrorAtCurrentToken(Diagnostics._0_expected, tokenToString(27 /* SemicolonToken */));\n      return;\n    }\n    parseErrorForMissingSemicolonAfter(name);\n  }\n  function parseExpectedJSDoc(kind) {\n    if (token() === kind) {\n      nextTokenJSDoc();\n      return true;\n    }\n    Debug.assert(isKeywordOrPunctuation(kind));\n    parseErrorAtCurrentToken(Diagnostics._0_expected, tokenToString(kind));\n    return false;\n  }\n  function parseExpectedMatchingBrackets(openKind, closeKind, openParsed, openPosition) {\n    if (token() === closeKind) {\n      nextToken();\n      return;\n    }\n    const lastError = parseErrorAtCurrentToken(Diagnostics._0_expected, tokenToString(closeKind));\n    if (!openParsed) {\n      return;\n    }\n    if (lastError) {\n      addRelatedInfo(\n        lastError,\n        createDetachedDiagnostic(fileName, sourceText, openPosition, 1, Diagnostics.The_parser_expected_to_find_a_1_to_match_the_0_token_here, tokenToString(openKind), tokenToString(closeKind))\n      );\n    }\n  }\n  function parseOptional(t) {\n    if (token() === t) {\n      nextToken();\n      return true;\n    }\n    return false;\n  }\n  function parseOptionalToken(t) {\n    if (token() === t) {\n      return parseTokenNode();\n    }\n    return void 0;\n  }\n  function parseOptionalTokenJSDoc(t) {\n    if (token() === t) {\n      return parseTokenNodeJSDoc();\n    }\n    return void 0;\n  }\n  function parseExpectedToken(t, diagnosticMessage, arg0) {\n    return parseOptionalToken(t) || createMissingNode(\n      t,\n      /*reportAtCurrentPosition*/\n      false,\n      diagnosticMessage || Diagnostics._0_expected,\n      arg0 || tokenToString(t)\n    );\n  }\n  function parseExpectedTokenJSDoc(t) {\n    const optional = parseOptionalTokenJSDoc(t);\n    if (optional) return optional;\n    Debug.assert(isKeywordOrPunctuation(t));\n    return createMissingNode(\n      t,\n      /*reportAtCurrentPosition*/\n      false,\n      Diagnostics._0_expected,\n      tokenToString(t)\n    );\n  }\n  function parseTokenNode() {\n    const pos = getNodePos();\n    const kind = token();\n    nextToken();\n    return finishNode(factoryCreateToken(kind), pos);\n  }\n  function parseTokenNodeJSDoc() {\n    const pos = getNodePos();\n    const kind = token();\n    nextTokenJSDoc();\n    return finishNode(factoryCreateToken(kind), pos);\n  }\n  function canParseSemicolon() {\n    if (token() === 27 /* SemicolonToken */) {\n      return true;\n    }\n    return token() === 20 /* CloseBraceToken */ || token() === 1 /* EndOfFileToken */ || scanner2.hasPrecedingLineBreak();\n  }\n  function tryParseSemicolon() {\n    if (!canParseSemicolon()) {\n      return false;\n    }\n    if (token() === 27 /* SemicolonToken */) {\n      nextToken();\n    }\n    return true;\n  }\n  function parseSemicolon() {\n    return tryParseSemicolon() || parseExpected(27 /* SemicolonToken */);\n  }\n  function createNodeArray(elements, pos, end, hasTrailingComma) {\n    const array = factoryCreateNodeArray(elements, hasTrailingComma);\n    setTextRangePosEnd(array, pos, end ?? scanner2.getTokenFullStart());\n    return array;\n  }\n  function finishNode(node, pos, end) {\n    setTextRangePosEnd(node, pos, end ?? scanner2.getTokenFullStart());\n    if (contextFlags) {\n      node.flags |= contextFlags;\n    }\n    if (parseErrorBeforeNextFinishedNode) {\n      parseErrorBeforeNextFinishedNode = false;\n      node.flags |= 262144 /* ThisNodeHasError */;\n    }\n    return node;\n  }\n  function createMissingNode(kind, reportAtCurrentPosition, diagnosticMessage, ...args) {\n    if (reportAtCurrentPosition) {\n      parseErrorAtPosition(scanner2.getTokenFullStart(), 0, diagnosticMessage, ...args);\n    } else if (diagnosticMessage) {\n      parseErrorAtCurrentToken(diagnosticMessage, ...args);\n    }\n    const pos = getNodePos();\n    const result = kind === 80 /* Identifier */ ? factoryCreateIdentifier(\n      \"\",\n      /*originalKeywordKind*/\n      void 0\n    ) : isTemplateLiteralKind(kind) ? factory2.createTemplateLiteralLikeNode(\n      kind,\n      \"\",\n      \"\",\n      /*templateFlags*/\n      void 0\n    ) : kind === 9 /* NumericLiteral */ ? factoryCreateNumericLiteral(\n      \"\",\n      /*numericLiteralFlags*/\n      void 0\n    ) : kind === 11 /* StringLiteral */ ? factoryCreateStringLiteral(\n      \"\",\n      /*isSingleQuote*/\n      void 0\n    ) : kind === 283 /* MissingDeclaration */ ? factory2.createMissingDeclaration() : factoryCreateToken(kind);\n    return finishNode(result, pos);\n  }\n  function internIdentifier(text) {\n    let identifier = identifiers.get(text);\n    if (identifier === void 0) {\n      identifiers.set(text, identifier = text);\n    }\n    return identifier;\n  }\n  function createIdentifier(isIdentifier3, diagnosticMessage, privateIdentifierDiagnosticMessage) {\n    if (isIdentifier3) {\n      identifierCount++;\n      const pos = scanner2.hasPrecedingJSDocLeadingAsterisks() ? scanner2.getTokenStart() : getNodePos();\n      const originalKeywordKind = token();\n      const text = internIdentifier(scanner2.getTokenValue());\n      const hasExtendedUnicodeEscape = scanner2.hasExtendedUnicodeEscape();\n      nextTokenWithoutCheck();\n      return finishNode(factoryCreateIdentifier(text, originalKeywordKind, hasExtendedUnicodeEscape), pos);\n    }\n    if (token() === 81 /* PrivateIdentifier */) {\n      parseErrorAtCurrentToken(privateIdentifierDiagnosticMessage || Diagnostics.Private_identifiers_are_not_allowed_outside_class_bodies);\n      return createIdentifier(\n        /*isIdentifier*/\n        true\n      );\n    }\n    if (token() === 0 /* Unknown */ && scanner2.tryScan(() => scanner2.reScanInvalidIdentifier() === 80 /* Identifier */)) {\n      return createIdentifier(\n        /*isIdentifier*/\n        true\n      );\n    }\n    identifierCount++;\n    const reportAtCurrentPosition = token() === 1 /* EndOfFileToken */;\n    const isReservedWord = scanner2.isReservedWord();\n    const msgArg = scanner2.getTokenText();\n    const defaultMessage = isReservedWord ? Diagnostics.Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here : Diagnostics.Identifier_expected;\n    return createMissingNode(80 /* Identifier */, reportAtCurrentPosition, diagnosticMessage || defaultMessage, msgArg);\n  }\n  function parseBindingIdentifier(privateIdentifierDiagnosticMessage) {\n    return createIdentifier(\n      isBindingIdentifier(),\n      /*diagnosticMessage*/\n      void 0,\n      privateIdentifierDiagnosticMessage\n    );\n  }\n  function parseIdentifier(diagnosticMessage, privateIdentifierDiagnosticMessage) {\n    return createIdentifier(isIdentifier2(), diagnosticMessage, privateIdentifierDiagnosticMessage);\n  }\n  function parseIdentifierName(diagnosticMessage) {\n    return createIdentifier(tokenIsIdentifierOrKeyword(token()), diagnosticMessage);\n  }\n  function parseIdentifierNameErrorOnUnicodeEscapeSequence() {\n    if (scanner2.hasUnicodeEscape() || scanner2.hasExtendedUnicodeEscape()) {\n      parseErrorAtCurrentToken(Diagnostics.Unicode_escape_sequence_cannot_appear_here);\n    }\n    return createIdentifier(tokenIsIdentifierOrKeyword(token()));\n  }\n  function isLiteralPropertyName() {\n    return tokenIsIdentifierOrKeyword(token()) || token() === 11 /* StringLiteral */ || token() === 9 /* NumericLiteral */ || token() === 10 /* BigIntLiteral */;\n  }\n  function isImportAttributeName2() {\n    return tokenIsIdentifierOrKeyword(token()) || token() === 11 /* StringLiteral */;\n  }\n  function parsePropertyNameWorker(allowComputedPropertyNames) {\n    if (token() === 11 /* StringLiteral */ || token() === 9 /* NumericLiteral */ || token() === 10 /* BigIntLiteral */) {\n      const node = parseLiteralNode();\n      node.text = internIdentifier(node.text);\n      return node;\n    }\n    if (allowComputedPropertyNames && token() === 23 /* OpenBracketToken */) {\n      return parseComputedPropertyName();\n    }\n    if (token() === 81 /* PrivateIdentifier */) {\n      return parsePrivateIdentifier();\n    }\n    return parseIdentifierName();\n  }\n  function parsePropertyName() {\n    return parsePropertyNameWorker(\n      /*allowComputedPropertyNames*/\n      true\n    );\n  }\n  function parseComputedPropertyName() {\n    const pos = getNodePos();\n    parseExpected(23 /* OpenBracketToken */);\n    const expression = allowInAnd(parseExpression);\n    parseExpected(24 /* CloseBracketToken */);\n    return finishNode(factory2.createComputedPropertyName(expression), pos);\n  }\n  function parsePrivateIdentifier() {\n    const pos = getNodePos();\n    const node = factoryCreatePrivateIdentifier(internIdentifier(scanner2.getTokenValue()));\n    nextToken();\n    return finishNode(node, pos);\n  }\n  function parseContextualModifier(t) {\n    return token() === t && tryParse(nextTokenCanFollowModifier);\n  }\n  function nextTokenIsOnSameLineAndCanFollowModifier() {\n    nextToken();\n    if (scanner2.hasPrecedingLineBreak()) {\n      return false;\n    }\n    return canFollowModifier();\n  }\n  function nextTokenCanFollowModifier() {\n    switch (token()) {\n      case 87 /* ConstKeyword */:\n        return nextToken() === 94 /* EnumKeyword */;\n      case 95 /* ExportKeyword */:\n        nextToken();\n        if (token() === 90 /* DefaultKeyword */) {\n          return lookAhead(nextTokenCanFollowDefaultKeyword);\n        }\n        if (token() === 156 /* TypeKeyword */) {\n          return lookAhead(nextTokenCanFollowExportModifier);\n        }\n        return canFollowExportModifier();\n      case 90 /* DefaultKeyword */:\n        return nextTokenCanFollowDefaultKeyword();\n      case 126 /* StaticKeyword */:\n        nextToken();\n        return canFollowModifier();\n      case 139 /* GetKeyword */:\n      case 153 /* SetKeyword */:\n        nextToken();\n        return canFollowGetOrSetKeyword();\n      default:\n        return nextTokenIsOnSameLineAndCanFollowModifier();\n    }\n  }\n  function canFollowExportModifier() {\n    return token() === 60 /* AtToken */ || token() !== 42 /* AsteriskToken */ && token() !== 130 /* AsKeyword */ && token() !== 19 /* OpenBraceToken */ && canFollowModifier();\n  }\n  function nextTokenCanFollowExportModifier() {\n    nextToken();\n    return canFollowExportModifier();\n  }\n  function parseAnyContextualModifier() {\n    return isModifierKind(token()) && tryParse(nextTokenCanFollowModifier);\n  }\n  function canFollowModifier() {\n    return token() === 23 /* OpenBracketToken */ || token() === 19 /* OpenBraceToken */ || token() === 42 /* AsteriskToken */ || token() === 26 /* DotDotDotToken */ || isLiteralPropertyName();\n  }\n  function canFollowGetOrSetKeyword() {\n    return token() === 23 /* OpenBracketToken */ || isLiteralPropertyName();\n  }\n  function nextTokenCanFollowDefaultKeyword() {\n    nextToken();\n    return token() === 86 /* ClassKeyword */ || token() === 100 /* FunctionKeyword */ || token() === 120 /* InterfaceKeyword */ || token() === 60 /* AtToken */ || token() === 128 /* AbstractKeyword */ && lookAhead(nextTokenIsClassKeywordOnSameLine) || token() === 134 /* AsyncKeyword */ && lookAhead(nextTokenIsFunctionKeywordOnSameLine);\n  }\n  function isListElement2(parsingContext2, inErrorRecovery) {\n    const node = currentNode(parsingContext2);\n    if (node) {\n      return true;\n    }\n    switch (parsingContext2) {\n      case 0 /* SourceElements */:\n      case 1 /* BlockStatements */:\n      case 3 /* SwitchClauseStatements */:\n        return !(token() === 27 /* SemicolonToken */ && inErrorRecovery) && isStartOfStatement();\n      case 2 /* SwitchClauses */:\n        return token() === 84 /* CaseKeyword */ || token() === 90 /* DefaultKeyword */;\n      case 4 /* TypeMembers */:\n        return lookAhead(isTypeMemberStart);\n      case 5 /* ClassMembers */:\n        return lookAhead(isClassMemberStart) || token() === 27 /* SemicolonToken */ && !inErrorRecovery;\n      case 6 /* EnumMembers */:\n        return token() === 23 /* OpenBracketToken */ || isLiteralPropertyName();\n      case 12 /* ObjectLiteralMembers */:\n        switch (token()) {\n          case 23 /* OpenBracketToken */:\n          case 42 /* AsteriskToken */:\n          case 26 /* DotDotDotToken */:\n          case 25 /* DotToken */:\n            return true;\n          default:\n            return isLiteralPropertyName();\n        }\n      case 18 /* RestProperties */:\n        return isLiteralPropertyName();\n      case 9 /* ObjectBindingElements */:\n        return token() === 23 /* OpenBracketToken */ || token() === 26 /* DotDotDotToken */ || isLiteralPropertyName();\n      case 24 /* ImportAttributes */:\n        return isImportAttributeName2();\n      case 7 /* HeritageClauseElement */:\n        if (token() === 19 /* OpenBraceToken */) {\n          return lookAhead(isValidHeritageClauseObjectLiteral);\n        }\n        if (!inErrorRecovery) {\n          return isStartOfLeftHandSideExpression() && !isHeritageClauseExtendsOrImplementsKeyword();\n        } else {\n          return isIdentifier2() && !isHeritageClauseExtendsOrImplementsKeyword();\n        }\n      case 8 /* VariableDeclarations */:\n        return isBindingIdentifierOrPrivateIdentifierOrPattern();\n      case 10 /* ArrayBindingElements */:\n        return token() === 28 /* CommaToken */ || token() === 26 /* DotDotDotToken */ || isBindingIdentifierOrPrivateIdentifierOrPattern();\n      case 19 /* TypeParameters */:\n        return token() === 103 /* InKeyword */ || token() === 87 /* ConstKeyword */ || isIdentifier2();\n      case 15 /* ArrayLiteralMembers */:\n        switch (token()) {\n          case 28 /* CommaToken */:\n          case 25 /* DotToken */:\n            return true;\n        }\n      // falls through\n      case 11 /* ArgumentExpressions */:\n        return token() === 26 /* DotDotDotToken */ || isStartOfExpression();\n      case 16 /* Parameters */:\n        return isStartOfParameter(\n          /*isJSDocParameter*/\n          false\n        );\n      case 17 /* JSDocParameters */:\n        return isStartOfParameter(\n          /*isJSDocParameter*/\n          true\n        );\n      case 20 /* TypeArguments */:\n      case 21 /* TupleElementTypes */:\n        return token() === 28 /* CommaToken */ || isStartOfType();\n      case 22 /* HeritageClauses */:\n        return isHeritageClause2();\n      case 23 /* ImportOrExportSpecifiers */:\n        if (token() === 161 /* FromKeyword */ && lookAhead(nextTokenIsStringLiteral)) {\n          return false;\n        }\n        if (token() === 11 /* StringLiteral */) {\n          return true;\n        }\n        return tokenIsIdentifierOrKeyword(token());\n      case 13 /* JsxAttributes */:\n        return tokenIsIdentifierOrKeyword(token()) || token() === 19 /* OpenBraceToken */;\n      case 14 /* JsxChildren */:\n        return true;\n      case 25 /* JSDocComment */:\n        return true;\n      case 26 /* Count */:\n        return Debug.fail(\"ParsingContext.Count used as a context\");\n      // Not a real context, only a marker.\n      default:\n        Debug.assertNever(parsingContext2, \"Non-exhaustive case in 'isListElement'.\");\n    }\n  }\n  function isValidHeritageClauseObjectLiteral() {\n    Debug.assert(token() === 19 /* OpenBraceToken */);\n    if (nextToken() === 20 /* CloseBraceToken */) {\n      const next = nextToken();\n      return next === 28 /* CommaToken */ || next === 19 /* OpenBraceToken */ || next === 96 /* ExtendsKeyword */ || next === 119 /* ImplementsKeyword */;\n    }\n    return true;\n  }\n  function nextTokenIsIdentifier() {\n    nextToken();\n    return isIdentifier2();\n  }\n  function nextTokenIsIdentifierOrKeyword() {\n    nextToken();\n    return tokenIsIdentifierOrKeyword(token());\n  }\n  function nextTokenIsIdentifierOrKeywordOrGreaterThan() {\n    nextToken();\n    return tokenIsIdentifierOrKeywordOrGreaterThan(token());\n  }\n  function isHeritageClauseExtendsOrImplementsKeyword() {\n    if (token() === 119 /* ImplementsKeyword */ || token() === 96 /* ExtendsKeyword */) {\n      return lookAhead(nextTokenIsStartOfExpression);\n    }\n    return false;\n  }\n  function nextTokenIsStartOfExpression() {\n    nextToken();\n    return isStartOfExpression();\n  }\n  function nextTokenIsStartOfType() {\n    nextToken();\n    return isStartOfType();\n  }\n  function isListTerminator(kind) {\n    if (token() === 1 /* EndOfFileToken */) {\n      return true;\n    }\n    switch (kind) {\n      case 1 /* BlockStatements */:\n      case 2 /* SwitchClauses */:\n      case 4 /* TypeMembers */:\n      case 5 /* ClassMembers */:\n      case 6 /* EnumMembers */:\n      case 12 /* ObjectLiteralMembers */:\n      case 9 /* ObjectBindingElements */:\n      case 23 /* ImportOrExportSpecifiers */:\n      case 24 /* ImportAttributes */:\n        return token() === 20 /* CloseBraceToken */;\n      case 3 /* SwitchClauseStatements */:\n        return token() === 20 /* CloseBraceToken */ || token() === 84 /* CaseKeyword */ || token() === 90 /* DefaultKeyword */;\n      case 7 /* HeritageClauseElement */:\n        return token() === 19 /* OpenBraceToken */ || token() === 96 /* ExtendsKeyword */ || token() === 119 /* ImplementsKeyword */;\n      case 8 /* VariableDeclarations */:\n        return isVariableDeclaratorListTerminator();\n      case 19 /* TypeParameters */:\n        return token() === 32 /* GreaterThanToken */ || token() === 21 /* OpenParenToken */ || token() === 19 /* OpenBraceToken */ || token() === 96 /* ExtendsKeyword */ || token() === 119 /* ImplementsKeyword */;\n      case 11 /* ArgumentExpressions */:\n        return token() === 22 /* CloseParenToken */ || token() === 27 /* SemicolonToken */;\n      case 15 /* ArrayLiteralMembers */:\n      case 21 /* TupleElementTypes */:\n      case 10 /* ArrayBindingElements */:\n        return token() === 24 /* CloseBracketToken */;\n      case 17 /* JSDocParameters */:\n      case 16 /* Parameters */:\n      case 18 /* RestProperties */:\n        return token() === 22 /* CloseParenToken */ || token() === 24 /* CloseBracketToken */;\n      case 20 /* TypeArguments */:\n        return token() !== 28 /* CommaToken */;\n      case 22 /* HeritageClauses */:\n        return token() === 19 /* OpenBraceToken */ || token() === 20 /* CloseBraceToken */;\n      case 13 /* JsxAttributes */:\n        return token() === 32 /* GreaterThanToken */ || token() === 44 /* SlashToken */;\n      case 14 /* JsxChildren */:\n        return token() === 30 /* LessThanToken */ && lookAhead(nextTokenIsSlash);\n      default:\n        return false;\n    }\n  }\n  function isVariableDeclaratorListTerminator() {\n    if (canParseSemicolon()) {\n      return true;\n    }\n    if (isInOrOfKeyword(token())) {\n      return true;\n    }\n    if (token() === 39 /* EqualsGreaterThanToken */) {\n      return true;\n    }\n    return false;\n  }\n  function isInSomeParsingContext() {\n    Debug.assert(parsingContext, \"Missing parsing context\");\n    for (let kind = 0; kind < 26 /* Count */; kind++) {\n      if (parsingContext & 1 << kind) {\n        if (isListElement2(\n          kind,\n          /*inErrorRecovery*/\n          true\n        ) || isListTerminator(kind)) {\n          return true;\n        }\n      }\n    }\n    return false;\n  }\n  function parseList(kind, parseElement) {\n    const saveParsingContext = parsingContext;\n    parsingContext |= 1 << kind;\n    const list = [];\n    const listPos = getNodePos();\n    while (!isListTerminator(kind)) {\n      if (isListElement2(\n        kind,\n        /*inErrorRecovery*/\n        false\n      )) {\n        list.push(parseListElement(kind, parseElement));\n        continue;\n      }\n      if (abortParsingListOrMoveToNextToken(kind)) {\n        break;\n      }\n    }\n    parsingContext = saveParsingContext;\n    return createNodeArray(list, listPos);\n  }\n  function parseListElement(parsingContext2, parseElement) {\n    const node = currentNode(parsingContext2);\n    if (node) {\n      return consumeNode(node);\n    }\n    return parseElement();\n  }\n  function currentNode(parsingContext2, pos) {\n    var _a;\n    if (!syntaxCursor || !isReusableParsingContext(parsingContext2) || parseErrorBeforeNextFinishedNode) {\n      return void 0;\n    }\n    const node = syntaxCursor.currentNode(pos ?? scanner2.getTokenFullStart());\n    if (nodeIsMissing(node) || intersectsIncrementalChange(node) || containsParseError(node)) {\n      return void 0;\n    }\n    const nodeContextFlags = node.flags & 101441536 /* ContextFlags */;\n    if (nodeContextFlags !== contextFlags) {\n      return void 0;\n    }\n    if (!canReuseNode(node, parsingContext2)) {\n      return void 0;\n    }\n    if (canHaveJSDoc(node) && ((_a = node.jsDoc) == null ? void 0 : _a.jsDocCache)) {\n      node.jsDoc.jsDocCache = void 0;\n    }\n    return node;\n  }\n  function consumeNode(node) {\n    scanner2.resetTokenState(node.end);\n    nextToken();\n    return node;\n  }\n  function isReusableParsingContext(parsingContext2) {\n    switch (parsingContext2) {\n      case 5 /* ClassMembers */:\n      case 2 /* SwitchClauses */:\n      case 0 /* SourceElements */:\n      case 1 /* BlockStatements */:\n      case 3 /* SwitchClauseStatements */:\n      case 6 /* EnumMembers */:\n      case 4 /* TypeMembers */:\n      case 8 /* VariableDeclarations */:\n      case 17 /* JSDocParameters */:\n      case 16 /* Parameters */:\n        return true;\n    }\n    return false;\n  }\n  function canReuseNode(node, parsingContext2) {\n    switch (parsingContext2) {\n      case 5 /* ClassMembers */:\n        return isReusableClassMember(node);\n      case 2 /* SwitchClauses */:\n        return isReusableSwitchClause(node);\n      case 0 /* SourceElements */:\n      case 1 /* BlockStatements */:\n      case 3 /* SwitchClauseStatements */:\n        return isReusableStatement(node);\n      case 6 /* EnumMembers */:\n        return isReusableEnumMember(node);\n      case 4 /* TypeMembers */:\n        return isReusableTypeMember(node);\n      case 8 /* VariableDeclarations */:\n        return isReusableVariableDeclaration(node);\n      case 17 /* JSDocParameters */:\n      case 16 /* Parameters */:\n        return isReusableParameter(node);\n    }\n    return false;\n  }\n  function isReusableClassMember(node) {\n    if (node) {\n      switch (node.kind) {\n        case 177 /* Constructor */:\n        case 182 /* IndexSignature */:\n        case 178 /* GetAccessor */:\n        case 179 /* SetAccessor */:\n        case 173 /* PropertyDeclaration */:\n        case 241 /* SemicolonClassElement */:\n          return true;\n        case 175 /* MethodDeclaration */:\n          const methodDeclaration = node;\n          const nameIsConstructor = methodDeclaration.name.kind === 80 /* Identifier */ && methodDeclaration.name.escapedText === \"constructor\";\n          return !nameIsConstructor;\n      }\n    }\n    return false;\n  }\n  function isReusableSwitchClause(node) {\n    if (node) {\n      switch (node.kind) {\n        case 297 /* CaseClause */:\n        case 298 /* DefaultClause */:\n          return true;\n      }\n    }\n    return false;\n  }\n  function isReusableStatement(node) {\n    if (node) {\n      switch (node.kind) {\n        case 263 /* FunctionDeclaration */:\n        case 244 /* VariableStatement */:\n        case 242 /* Block */:\n        case 246 /* IfStatement */:\n        case 245 /* ExpressionStatement */:\n        case 258 /* ThrowStatement */:\n        case 254 /* ReturnStatement */:\n        case 256 /* SwitchStatement */:\n        case 253 /* BreakStatement */:\n        case 252 /* ContinueStatement */:\n        case 250 /* ForInStatement */:\n        case 251 /* ForOfStatement */:\n        case 249 /* ForStatement */:\n        case 248 /* WhileStatement */:\n        case 255 /* WithStatement */:\n        case 243 /* EmptyStatement */:\n        case 259 /* TryStatement */:\n        case 257 /* LabeledStatement */:\n        case 247 /* DoStatement */:\n        case 260 /* DebuggerStatement */:\n        case 273 /* ImportDeclaration */:\n        case 272 /* ImportEqualsDeclaration */:\n        case 279 /* ExportDeclaration */:\n        case 278 /* ExportAssignment */:\n        case 268 /* ModuleDeclaration */:\n        case 264 /* ClassDeclaration */:\n        case 265 /* InterfaceDeclaration */:\n        case 267 /* EnumDeclaration */:\n        case 266 /* TypeAliasDeclaration */:\n          return true;\n      }\n    }\n    return false;\n  }\n  function isReusableEnumMember(node) {\n    return node.kind === 307 /* EnumMember */;\n  }\n  function isReusableTypeMember(node) {\n    if (node) {\n      switch (node.kind) {\n        case 181 /* ConstructSignature */:\n        case 174 /* MethodSignature */:\n        case 182 /* IndexSignature */:\n        case 172 /* PropertySignature */:\n        case 180 /* CallSignature */:\n          return true;\n      }\n    }\n    return false;\n  }\n  function isReusableVariableDeclaration(node) {\n    if (node.kind !== 261 /* VariableDeclaration */) {\n      return false;\n    }\n    const variableDeclarator = node;\n    return variableDeclarator.initializer === void 0;\n  }\n  function isReusableParameter(node) {\n    if (node.kind !== 170 /* Parameter */) {\n      return false;\n    }\n    const parameter = node;\n    return parameter.initializer === void 0;\n  }\n  function abortParsingListOrMoveToNextToken(kind) {\n    parsingContextErrors(kind);\n    if (isInSomeParsingContext()) {\n      return true;\n    }\n    nextToken();\n    return false;\n  }\n  function parsingContextErrors(context) {\n    switch (context) {\n      case 0 /* SourceElements */:\n        return token() === 90 /* DefaultKeyword */ ? parseErrorAtCurrentToken(Diagnostics._0_expected, tokenToString(95 /* ExportKeyword */)) : parseErrorAtCurrentToken(Diagnostics.Declaration_or_statement_expected);\n      case 1 /* BlockStatements */:\n        return parseErrorAtCurrentToken(Diagnostics.Declaration_or_statement_expected);\n      case 2 /* SwitchClauses */:\n        return parseErrorAtCurrentToken(Diagnostics.case_or_default_expected);\n      case 3 /* SwitchClauseStatements */:\n        return parseErrorAtCurrentToken(Diagnostics.Statement_expected);\n      case 18 /* RestProperties */:\n      // fallthrough\n      case 4 /* TypeMembers */:\n        return parseErrorAtCurrentToken(Diagnostics.Property_or_signature_expected);\n      case 5 /* ClassMembers */:\n        return parseErrorAtCurrentToken(Diagnostics.Unexpected_token_A_constructor_method_accessor_or_property_was_expected);\n      case 6 /* EnumMembers */:\n        return parseErrorAtCurrentToken(Diagnostics.Enum_member_expected);\n      case 7 /* HeritageClauseElement */:\n        return parseErrorAtCurrentToken(Diagnostics.Expression_expected);\n      case 8 /* VariableDeclarations */:\n        return isKeyword(token()) ? parseErrorAtCurrentToken(Diagnostics._0_is_not_allowed_as_a_variable_declaration_name, tokenToString(token())) : parseErrorAtCurrentToken(Diagnostics.Variable_declaration_expected);\n      case 9 /* ObjectBindingElements */:\n        return parseErrorAtCurrentToken(Diagnostics.Property_destructuring_pattern_expected);\n      case 10 /* ArrayBindingElements */:\n        return parseErrorAtCurrentToken(Diagnostics.Array_element_destructuring_pattern_expected);\n      case 11 /* ArgumentExpressions */:\n        return parseErrorAtCurrentToken(Diagnostics.Argument_expression_expected);\n      case 12 /* ObjectLiteralMembers */:\n        return parseErrorAtCurrentToken(Diagnostics.Property_assignment_expected);\n      case 15 /* ArrayLiteralMembers */:\n        return parseErrorAtCurrentToken(Diagnostics.Expression_or_comma_expected);\n      case 17 /* JSDocParameters */:\n        return parseErrorAtCurrentToken(Diagnostics.Parameter_declaration_expected);\n      case 16 /* Parameters */:\n        return isKeyword(token()) ? parseErrorAtCurrentToken(Diagnostics._0_is_not_allowed_as_a_parameter_name, tokenToString(token())) : parseErrorAtCurrentToken(Diagnostics.Parameter_declaration_expected);\n      case 19 /* TypeParameters */:\n        return parseErrorAtCurrentToken(Diagnostics.Type_parameter_declaration_expected);\n      case 20 /* TypeArguments */:\n        return parseErrorAtCurrentToken(Diagnostics.Type_argument_expected);\n      case 21 /* TupleElementTypes */:\n        return parseErrorAtCurrentToken(Diagnostics.Type_expected);\n      case 22 /* HeritageClauses */:\n        return parseErrorAtCurrentToken(Diagnostics.Unexpected_token_expected);\n      case 23 /* ImportOrExportSpecifiers */:\n        if (token() === 161 /* FromKeyword */) {\n          return parseErrorAtCurrentToken(Diagnostics._0_expected, \"}\");\n        }\n        return parseErrorAtCurrentToken(Diagnostics.Identifier_expected);\n      case 13 /* JsxAttributes */:\n        return parseErrorAtCurrentToken(Diagnostics.Identifier_expected);\n      case 14 /* JsxChildren */:\n        return parseErrorAtCurrentToken(Diagnostics.Identifier_expected);\n      case 24 /* ImportAttributes */:\n        return parseErrorAtCurrentToken(Diagnostics.Identifier_or_string_literal_expected);\n      case 25 /* JSDocComment */:\n        return parseErrorAtCurrentToken(Diagnostics.Identifier_expected);\n      case 26 /* Count */:\n        return Debug.fail(\"ParsingContext.Count used as a context\");\n      // Not a real context, only a marker.\n      default:\n        Debug.assertNever(context);\n    }\n  }\n  function parseDelimitedList(kind, parseElement, considerSemicolonAsDelimiter) {\n    const saveParsingContext = parsingContext;\n    parsingContext |= 1 << kind;\n    const list = [];\n    const listPos = getNodePos();\n    let commaStart = -1;\n    while (true) {\n      if (isListElement2(\n        kind,\n        /*inErrorRecovery*/\n        false\n      )) {\n        const startPos = scanner2.getTokenFullStart();\n        const result = parseListElement(kind, parseElement);\n        if (!result) {\n          parsingContext = saveParsingContext;\n          return void 0;\n        }\n        list.push(result);\n        commaStart = scanner2.getTokenStart();\n        if (parseOptional(28 /* CommaToken */)) {\n          continue;\n        }\n        commaStart = -1;\n        if (isListTerminator(kind)) {\n          break;\n        }\n        parseExpected(28 /* CommaToken */, getExpectedCommaDiagnostic(kind));\n        if (considerSemicolonAsDelimiter && token() === 27 /* SemicolonToken */ && !scanner2.hasPrecedingLineBreak()) {\n          nextToken();\n        }\n        if (startPos === scanner2.getTokenFullStart()) {\n          nextToken();\n        }\n        continue;\n      }\n      if (isListTerminator(kind)) {\n        break;\n      }\n      if (abortParsingListOrMoveToNextToken(kind)) {\n        break;\n      }\n    }\n    parsingContext = saveParsingContext;\n    return createNodeArray(\n      list,\n      listPos,\n      /*end*/\n      void 0,\n      commaStart >= 0\n    );\n  }\n  function getExpectedCommaDiagnostic(kind) {\n    return kind === 6 /* EnumMembers */ ? Diagnostics.An_enum_member_name_must_be_followed_by_a_or : void 0;\n  }\n  function createMissingList() {\n    const list = createNodeArray([], getNodePos());\n    list.isMissingList = true;\n    return list;\n  }\n  function isMissingList(arr) {\n    return !!arr.isMissingList;\n  }\n  function parseBracketedList(kind, parseElement, open, close) {\n    if (parseExpected(open)) {\n      const result = parseDelimitedList(kind, parseElement);\n      parseExpected(close);\n      return result;\n    }\n    return createMissingList();\n  }\n  function parseEntityName(allowReservedWords, diagnosticMessage) {\n    const pos = getNodePos();\n    let entity = allowReservedWords ? parseIdentifierName(diagnosticMessage) : parseIdentifier(diagnosticMessage);\n    while (parseOptional(25 /* DotToken */)) {\n      if (token() === 30 /* LessThanToken */) {\n        break;\n      }\n      entity = finishNode(\n        factory2.createQualifiedName(\n          entity,\n          parseRightSideOfDot(\n            allowReservedWords,\n            /*allowPrivateIdentifiers*/\n            false,\n            /*allowUnicodeEscapeSequenceInIdentifierName*/\n            true\n          )\n        ),\n        pos\n      );\n    }\n    return entity;\n  }\n  function createQualifiedName(entity, name) {\n    return finishNode(factory2.createQualifiedName(entity, name), entity.pos);\n  }\n  function parseRightSideOfDot(allowIdentifierNames, allowPrivateIdentifiers, allowUnicodeEscapeSequenceInIdentifierName) {\n    if (scanner2.hasPrecedingLineBreak() && tokenIsIdentifierOrKeyword(token())) {\n      const matchesPattern = lookAhead(nextTokenIsIdentifierOrKeywordOnSameLine);\n      if (matchesPattern) {\n        return createMissingNode(\n          80 /* Identifier */,\n          /*reportAtCurrentPosition*/\n          true,\n          Diagnostics.Identifier_expected\n        );\n      }\n    }\n    if (token() === 81 /* PrivateIdentifier */) {\n      const node = parsePrivateIdentifier();\n      return allowPrivateIdentifiers ? node : createMissingNode(\n        80 /* Identifier */,\n        /*reportAtCurrentPosition*/\n        true,\n        Diagnostics.Identifier_expected\n      );\n    }\n    if (allowIdentifierNames) {\n      return allowUnicodeEscapeSequenceInIdentifierName ? parseIdentifierName() : parseIdentifierNameErrorOnUnicodeEscapeSequence();\n    }\n    return parseIdentifier();\n  }\n  function parseTemplateSpans(isTaggedTemplate) {\n    const pos = getNodePos();\n    const list = [];\n    let node;\n    do {\n      node = parseTemplateSpan(isTaggedTemplate);\n      list.push(node);\n    } while (node.literal.kind === 17 /* TemplateMiddle */);\n    return createNodeArray(list, pos);\n  }\n  function parseTemplateExpression(isTaggedTemplate) {\n    const pos = getNodePos();\n    return finishNode(\n      factory2.createTemplateExpression(\n        parseTemplateHead(isTaggedTemplate),\n        parseTemplateSpans(isTaggedTemplate)\n      ),\n      pos\n    );\n  }\n  function parseTemplateType() {\n    const pos = getNodePos();\n    return finishNode(\n      factory2.createTemplateLiteralType(\n        parseTemplateHead(\n          /*isTaggedTemplate*/\n          false\n        ),\n        parseTemplateTypeSpans()\n      ),\n      pos\n    );\n  }\n  function parseTemplateTypeSpans() {\n    const pos = getNodePos();\n    const list = [];\n    let node;\n    do {\n      node = parseTemplateTypeSpan();\n      list.push(node);\n    } while (node.literal.kind === 17 /* TemplateMiddle */);\n    return createNodeArray(list, pos);\n  }\n  function parseTemplateTypeSpan() {\n    const pos = getNodePos();\n    return finishNode(\n      factory2.createTemplateLiteralTypeSpan(\n        parseType(),\n        parseLiteralOfTemplateSpan(\n          /*isTaggedTemplate*/\n          false\n        )\n      ),\n      pos\n    );\n  }\n  function parseLiteralOfTemplateSpan(isTaggedTemplate) {\n    if (token() === 20 /* CloseBraceToken */) {\n      reScanTemplateToken(isTaggedTemplate);\n      return parseTemplateMiddleOrTemplateTail();\n    } else {\n      return parseExpectedToken(18 /* TemplateTail */, Diagnostics._0_expected, tokenToString(20 /* CloseBraceToken */));\n    }\n  }\n  function parseTemplateSpan(isTaggedTemplate) {\n    const pos = getNodePos();\n    return finishNode(\n      factory2.createTemplateSpan(\n        allowInAnd(parseExpression),\n        parseLiteralOfTemplateSpan(isTaggedTemplate)\n      ),\n      pos\n    );\n  }\n  function parseLiteralNode() {\n    return parseLiteralLikeNode(token());\n  }\n  function parseTemplateHead(isTaggedTemplate) {\n    if (!isTaggedTemplate && scanner2.getTokenFlags() & 26656 /* IsInvalid */) {\n      reScanTemplateToken(\n        /*isTaggedTemplate*/\n        false\n      );\n    }\n    const fragment = parseLiteralLikeNode(token());\n    Debug.assert(fragment.kind === 16 /* TemplateHead */, \"Template head has wrong token kind\");\n    return fragment;\n  }\n  function parseTemplateMiddleOrTemplateTail() {\n    const fragment = parseLiteralLikeNode(token());\n    Debug.assert(fragment.kind === 17 /* TemplateMiddle */ || fragment.kind === 18 /* TemplateTail */, \"Template fragment has wrong token kind\");\n    return fragment;\n  }\n  function getTemplateLiteralRawText(kind) {\n    const isLast = kind === 15 /* NoSubstitutionTemplateLiteral */ || kind === 18 /* TemplateTail */;\n    const tokenText = scanner2.getTokenText();\n    return tokenText.substring(1, tokenText.length - (scanner2.isUnterminated() ? 0 : isLast ? 1 : 2));\n  }\n  function parseLiteralLikeNode(kind) {\n    const pos = getNodePos();\n    const node = isTemplateLiteralKind(kind) ? factory2.createTemplateLiteralLikeNode(kind, scanner2.getTokenValue(), getTemplateLiteralRawText(kind), scanner2.getTokenFlags() & 7176 /* TemplateLiteralLikeFlags */) : (\n      // Note that theoretically the following condition would hold true literals like 009,\n      // which is not octal. But because of how the scanner separates the tokens, we would\n      // never get a token like this. Instead, we would get 00 and 9 as two separate tokens.\n      // We also do not need to check for negatives because any prefix operator would be part of a\n      // parent unary expression.\n      kind === 9 /* NumericLiteral */ ? factoryCreateNumericLiteral(scanner2.getTokenValue(), scanner2.getNumericLiteralFlags()) : kind === 11 /* StringLiteral */ ? factoryCreateStringLiteral(\n        scanner2.getTokenValue(),\n        /*isSingleQuote*/\n        void 0,\n        scanner2.hasExtendedUnicodeEscape()\n      ) : isLiteralKind(kind) ? factoryCreateLiteralLikeNode(kind, scanner2.getTokenValue()) : Debug.fail()\n    );\n    if (scanner2.hasExtendedUnicodeEscape()) {\n      node.hasExtendedUnicodeEscape = true;\n    }\n    if (scanner2.isUnterminated()) {\n      node.isUnterminated = true;\n    }\n    nextToken();\n    return finishNode(node, pos);\n  }\n  function parseEntityNameOfTypeReference() {\n    return parseEntityName(\n      /*allowReservedWords*/\n      true,\n      Diagnostics.Type_expected\n    );\n  }\n  function parseTypeArgumentsOfTypeReference() {\n    if (!scanner2.hasPrecedingLineBreak() && reScanLessThanToken() === 30 /* LessThanToken */) {\n      return parseBracketedList(20 /* TypeArguments */, parseType, 30 /* LessThanToken */, 32 /* GreaterThanToken */);\n    }\n  }\n  function parseTypeReference() {\n    const pos = getNodePos();\n    return finishNode(\n      factory2.createTypeReferenceNode(\n        parseEntityNameOfTypeReference(),\n        parseTypeArgumentsOfTypeReference()\n      ),\n      pos\n    );\n  }\n  function typeHasArrowFunctionBlockingParseError(node) {\n    switch (node.kind) {\n      case 184 /* TypeReference */:\n        return nodeIsMissing(node.typeName);\n      case 185 /* FunctionType */:\n      case 186 /* ConstructorType */: {\n        const { parameters, type } = node;\n        return isMissingList(parameters) || typeHasArrowFunctionBlockingParseError(type);\n      }\n      case 197 /* ParenthesizedType */:\n        return typeHasArrowFunctionBlockingParseError(node.type);\n      default:\n        return false;\n    }\n  }\n  function parseThisTypePredicate(lhs) {\n    nextToken();\n    return finishNode(factory2.createTypePredicateNode(\n      /*assertsModifier*/\n      void 0,\n      lhs,\n      parseType()\n    ), lhs.pos);\n  }\n  function parseThisTypeNode() {\n    const pos = getNodePos();\n    nextToken();\n    return finishNode(factory2.createThisTypeNode(), pos);\n  }\n  function parseJSDocAllType() {\n    const pos = getNodePos();\n    nextToken();\n    return finishNode(factory2.createJSDocAllType(), pos);\n  }\n  function parseJSDocNonNullableType() {\n    const pos = getNodePos();\n    nextToken();\n    return finishNode(factory2.createJSDocNonNullableType(\n      parseNonArrayType(),\n      /*postfix*/\n      false\n    ), pos);\n  }\n  function parseJSDocUnknownOrNullableType() {\n    const pos = getNodePos();\n    nextToken();\n    if (token() === 28 /* CommaToken */ || token() === 20 /* CloseBraceToken */ || token() === 22 /* CloseParenToken */ || token() === 32 /* GreaterThanToken */ || token() === 64 /* EqualsToken */ || token() === 52 /* BarToken */) {\n      return finishNode(factory2.createJSDocUnknownType(), pos);\n    } else {\n      return finishNode(factory2.createJSDocNullableType(\n        parseType(),\n        /*postfix*/\n        false\n      ), pos);\n    }\n  }\n  function parseJSDocFunctionType() {\n    const pos = getNodePos();\n    const hasJSDoc = hasPrecedingJSDocComment();\n    if (tryParse(nextTokenIsOpenParen)) {\n      const parameters = parseParameters(4 /* Type */ | 32 /* JSDoc */);\n      const type = parseReturnType(\n        59 /* ColonToken */,\n        /*isType*/\n        false\n      );\n      return withJSDoc(finishNode(factory2.createJSDocFunctionType(parameters, type), pos), hasJSDoc);\n    }\n    return finishNode(factory2.createTypeReferenceNode(\n      parseIdentifierName(),\n      /*typeArguments*/\n      void 0\n    ), pos);\n  }\n  function parseJSDocParameter() {\n    const pos = getNodePos();\n    let name;\n    if (token() === 110 /* ThisKeyword */ || token() === 105 /* NewKeyword */) {\n      name = parseIdentifierName();\n      parseExpected(59 /* ColonToken */);\n    }\n    return finishNode(\n      factory2.createParameterDeclaration(\n        /*modifiers*/\n        void 0,\n        /*dotDotDotToken*/\n        void 0,\n        // TODO(rbuckton): JSDoc parameters don't have names (except `this`/`new`), should we manufacture an empty identifier?\n        name,\n        /*questionToken*/\n        void 0,\n        parseJSDocType(),\n        /*initializer*/\n        void 0\n      ),\n      pos\n    );\n  }\n  function parseJSDocType() {\n    scanner2.setSkipJsDocLeadingAsterisks(true);\n    const pos = getNodePos();\n    if (parseOptional(144 /* ModuleKeyword */)) {\n      const moduleTag = factory2.createJSDocNamepathType(\n        /*type*/\n        void 0\n      );\n      terminate:\n        while (true) {\n          switch (token()) {\n            case 20 /* CloseBraceToken */:\n            case 1 /* EndOfFileToken */:\n            case 28 /* CommaToken */:\n            case 5 /* WhitespaceTrivia */:\n              break terminate;\n            default:\n              nextTokenJSDoc();\n          }\n        }\n      scanner2.setSkipJsDocLeadingAsterisks(false);\n      return finishNode(moduleTag, pos);\n    }\n    const hasDotDotDot = parseOptional(26 /* DotDotDotToken */);\n    let type = parseTypeOrTypePredicate();\n    scanner2.setSkipJsDocLeadingAsterisks(false);\n    if (hasDotDotDot) {\n      type = finishNode(factory2.createJSDocVariadicType(type), pos);\n    }\n    if (token() === 64 /* EqualsToken */) {\n      nextToken();\n      return finishNode(factory2.createJSDocOptionalType(type), pos);\n    }\n    return type;\n  }\n  function parseTypeQuery() {\n    const pos = getNodePos();\n    parseExpected(114 /* TypeOfKeyword */);\n    const entityName = parseEntityName(\n      /*allowReservedWords*/\n      true\n    );\n    const typeArguments = !scanner2.hasPrecedingLineBreak() ? tryParseTypeArguments() : void 0;\n    return finishNode(factory2.createTypeQueryNode(entityName, typeArguments), pos);\n  }\n  function parseTypeParameter() {\n    const pos = getNodePos();\n    const modifiers = parseModifiers(\n      /*allowDecorators*/\n      false,\n      /*permitConstAsModifier*/\n      true\n    );\n    const name = parseIdentifier();\n    let constraint;\n    let expression;\n    if (parseOptional(96 /* ExtendsKeyword */)) {\n      if (isStartOfType() || !isStartOfExpression()) {\n        constraint = parseType();\n      } else {\n        expression = parseUnaryExpressionOrHigher();\n      }\n    }\n    const defaultType = parseOptional(64 /* EqualsToken */) ? parseType() : void 0;\n    const node = factory2.createTypeParameterDeclaration(modifiers, name, constraint, defaultType);\n    node.expression = expression;\n    return finishNode(node, pos);\n  }\n  function parseTypeParameters() {\n    if (token() === 30 /* LessThanToken */) {\n      return parseBracketedList(19 /* TypeParameters */, parseTypeParameter, 30 /* LessThanToken */, 32 /* GreaterThanToken */);\n    }\n  }\n  function isStartOfParameter(isJSDocParameter) {\n    return token() === 26 /* DotDotDotToken */ || isBindingIdentifierOrPrivateIdentifierOrPattern() || isModifierKind(token()) || token() === 60 /* AtToken */ || isStartOfType(\n      /*inStartOfParameter*/\n      !isJSDocParameter\n    );\n  }\n  function parseNameOfParameter(modifiers) {\n    const name = parseIdentifierOrPattern(Diagnostics.Private_identifiers_cannot_be_used_as_parameters);\n    if (getFullWidth(name) === 0 && !some(modifiers) && isModifierKind(token())) {\n      nextToken();\n    }\n    return name;\n  }\n  function isParameterNameStart() {\n    return isBindingIdentifier() || token() === 23 /* OpenBracketToken */ || token() === 19 /* OpenBraceToken */;\n  }\n  function parseParameter(inOuterAwaitContext) {\n    return parseParameterWorker(inOuterAwaitContext);\n  }\n  function parseParameterForSpeculation(inOuterAwaitContext) {\n    return parseParameterWorker(\n      inOuterAwaitContext,\n      /*allowAmbiguity*/\n      false\n    );\n  }\n  function parseParameterWorker(inOuterAwaitContext, allowAmbiguity = true) {\n    const pos = getNodePos();\n    const hasJSDoc = hasPrecedingJSDocComment();\n    const modifiers = inOuterAwaitContext ? doInAwaitContext(() => parseModifiers(\n      /*allowDecorators*/\n      true\n    )) : doOutsideOfAwaitContext(() => parseModifiers(\n      /*allowDecorators*/\n      true\n    ));\n    if (token() === 110 /* ThisKeyword */) {\n      const node2 = factory2.createParameterDeclaration(\n        modifiers,\n        /*dotDotDotToken*/\n        void 0,\n        createIdentifier(\n          /*isIdentifier*/\n          true\n        ),\n        /*questionToken*/\n        void 0,\n        parseTypeAnnotation(),\n        /*initializer*/\n        void 0\n      );\n      const modifier = firstOrUndefined(modifiers);\n      if (modifier) {\n        parseErrorAtRange(modifier, Diagnostics.Neither_decorators_nor_modifiers_may_be_applied_to_this_parameters);\n      }\n      return withJSDoc(finishNode(node2, pos), hasJSDoc);\n    }\n    const savedTopLevel = topLevel;\n    topLevel = false;\n    const dotDotDotToken = parseOptionalToken(26 /* DotDotDotToken */);\n    if (!allowAmbiguity && !isParameterNameStart()) {\n      return void 0;\n    }\n    const node = withJSDoc(\n      finishNode(\n        factory2.createParameterDeclaration(\n          modifiers,\n          dotDotDotToken,\n          parseNameOfParameter(modifiers),\n          parseOptionalToken(58 /* QuestionToken */),\n          parseTypeAnnotation(),\n          parseInitializer()\n        ),\n        pos\n      ),\n      hasJSDoc\n    );\n    topLevel = savedTopLevel;\n    return node;\n  }\n  function parseReturnType(returnToken, isType) {\n    if (shouldParseReturnType(returnToken, isType)) {\n      return allowConditionalTypesAnd(parseTypeOrTypePredicate);\n    }\n  }\n  function shouldParseReturnType(returnToken, isType) {\n    if (returnToken === 39 /* EqualsGreaterThanToken */) {\n      parseExpected(returnToken);\n      return true;\n    } else if (parseOptional(59 /* ColonToken */)) {\n      return true;\n    } else if (isType && token() === 39 /* EqualsGreaterThanToken */) {\n      parseErrorAtCurrentToken(Diagnostics._0_expected, tokenToString(59 /* ColonToken */));\n      nextToken();\n      return true;\n    }\n    return false;\n  }\n  function parseParametersWorker(flags, allowAmbiguity) {\n    const savedYieldContext = inYieldContext();\n    const savedAwaitContext = inAwaitContext();\n    setYieldContext(!!(flags & 1 /* Yield */));\n    setAwaitContext(!!(flags & 2 /* Await */));\n    const parameters = flags & 32 /* JSDoc */ ? parseDelimitedList(17 /* JSDocParameters */, parseJSDocParameter) : parseDelimitedList(16 /* Parameters */, () => allowAmbiguity ? parseParameter(savedAwaitContext) : parseParameterForSpeculation(savedAwaitContext));\n    setYieldContext(savedYieldContext);\n    setAwaitContext(savedAwaitContext);\n    return parameters;\n  }\n  function parseParameters(flags) {\n    if (!parseExpected(21 /* OpenParenToken */)) {\n      return createMissingList();\n    }\n    const parameters = parseParametersWorker(\n      flags,\n      /*allowAmbiguity*/\n      true\n    );\n    parseExpected(22 /* CloseParenToken */);\n    return parameters;\n  }\n  function parseTypeMemberSemicolon() {\n    if (parseOptional(28 /* CommaToken */)) {\n      return;\n    }\n    parseSemicolon();\n  }\n  function parseSignatureMember(kind) {\n    const pos = getNodePos();\n    const hasJSDoc = hasPrecedingJSDocComment();\n    if (kind === 181 /* ConstructSignature */) {\n      parseExpected(105 /* NewKeyword */);\n    }\n    const typeParameters = parseTypeParameters();\n    const parameters = parseParameters(4 /* Type */);\n    const type = parseReturnType(\n      59 /* ColonToken */,\n      /*isType*/\n      true\n    );\n    parseTypeMemberSemicolon();\n    const node = kind === 180 /* CallSignature */ ? factory2.createCallSignature(typeParameters, parameters, type) : factory2.createConstructSignature(typeParameters, parameters, type);\n    return withJSDoc(finishNode(node, pos), hasJSDoc);\n  }\n  function isIndexSignature() {\n    return token() === 23 /* OpenBracketToken */ && lookAhead(isUnambiguouslyIndexSignature);\n  }\n  function isUnambiguouslyIndexSignature() {\n    nextToken();\n    if (token() === 26 /* DotDotDotToken */ || token() === 24 /* CloseBracketToken */) {\n      return true;\n    }\n    if (isModifierKind(token())) {\n      nextToken();\n      if (isIdentifier2()) {\n        return true;\n      }\n    } else if (!isIdentifier2()) {\n      return false;\n    } else {\n      nextToken();\n    }\n    if (token() === 59 /* ColonToken */ || token() === 28 /* CommaToken */) {\n      return true;\n    }\n    if (token() !== 58 /* QuestionToken */) {\n      return false;\n    }\n    nextToken();\n    return token() === 59 /* ColonToken */ || token() === 28 /* CommaToken */ || token() === 24 /* CloseBracketToken */;\n  }\n  function parseIndexSignatureDeclaration(pos, hasJSDoc, modifiers) {\n    const parameters = parseBracketedList(16 /* Parameters */, () => parseParameter(\n      /*inOuterAwaitContext*/\n      false\n    ), 23 /* OpenBracketToken */, 24 /* CloseBracketToken */);\n    const type = parseTypeAnnotation();\n    parseTypeMemberSemicolon();\n    const node = factory2.createIndexSignature(modifiers, parameters, type);\n    return withJSDoc(finishNode(node, pos), hasJSDoc);\n  }\n  function parsePropertyOrMethodSignature(pos, hasJSDoc, modifiers) {\n    const name = parsePropertyName();\n    const questionToken = parseOptionalToken(58 /* QuestionToken */);\n    let node;\n    if (token() === 21 /* OpenParenToken */ || token() === 30 /* LessThanToken */) {\n      const typeParameters = parseTypeParameters();\n      const parameters = parseParameters(4 /* Type */);\n      const type = parseReturnType(\n        59 /* ColonToken */,\n        /*isType*/\n        true\n      );\n      node = factory2.createMethodSignature(modifiers, name, questionToken, typeParameters, parameters, type);\n    } else {\n      const type = parseTypeAnnotation();\n      node = factory2.createPropertySignature(modifiers, name, questionToken, type);\n      if (token() === 64 /* EqualsToken */) node.initializer = parseInitializer();\n    }\n    parseTypeMemberSemicolon();\n    return withJSDoc(finishNode(node, pos), hasJSDoc);\n  }\n  function isTypeMemberStart() {\n    if (token() === 21 /* OpenParenToken */ || token() === 30 /* LessThanToken */ || token() === 139 /* GetKeyword */ || token() === 153 /* SetKeyword */) {\n      return true;\n    }\n    let idToken = false;\n    while (isModifierKind(token())) {\n      idToken = true;\n      nextToken();\n    }\n    if (token() === 23 /* OpenBracketToken */) {\n      return true;\n    }\n    if (isLiteralPropertyName()) {\n      idToken = true;\n      nextToken();\n    }\n    if (idToken) {\n      return token() === 21 /* OpenParenToken */ || token() === 30 /* LessThanToken */ || token() === 58 /* QuestionToken */ || token() === 59 /* ColonToken */ || token() === 28 /* CommaToken */ || canParseSemicolon();\n    }\n    return false;\n  }\n  function parseTypeMember() {\n    if (token() === 21 /* OpenParenToken */ || token() === 30 /* LessThanToken */) {\n      return parseSignatureMember(180 /* CallSignature */);\n    }\n    if (token() === 105 /* NewKeyword */ && lookAhead(nextTokenIsOpenParenOrLessThan)) {\n      return parseSignatureMember(181 /* ConstructSignature */);\n    }\n    const pos = getNodePos();\n    const hasJSDoc = hasPrecedingJSDocComment();\n    const modifiers = parseModifiers(\n      /*allowDecorators*/\n      false\n    );\n    if (parseContextualModifier(139 /* GetKeyword */)) {\n      return parseAccessorDeclaration(pos, hasJSDoc, modifiers, 178 /* GetAccessor */, 4 /* Type */);\n    }\n    if (parseContextualModifier(153 /* SetKeyword */)) {\n      return parseAccessorDeclaration(pos, hasJSDoc, modifiers, 179 /* SetAccessor */, 4 /* Type */);\n    }\n    if (isIndexSignature()) {\n      return parseIndexSignatureDeclaration(pos, hasJSDoc, modifiers);\n    }\n    return parsePropertyOrMethodSignature(pos, hasJSDoc, modifiers);\n  }\n  function nextTokenIsOpenParenOrLessThan() {\n    nextToken();\n    return token() === 21 /* OpenParenToken */ || token() === 30 /* LessThanToken */;\n  }\n  function nextTokenIsDot() {\n    return nextToken() === 25 /* DotToken */;\n  }\n  function nextTokenIsOpenParenOrLessThanOrDot() {\n    switch (nextToken()) {\n      case 21 /* OpenParenToken */:\n      case 30 /* LessThanToken */:\n      case 25 /* DotToken */:\n        return true;\n    }\n    return false;\n  }\n  function parseTypeLiteral() {\n    const pos = getNodePos();\n    return finishNode(factory2.createTypeLiteralNode(parseObjectTypeMembers()), pos);\n  }\n  function parseObjectTypeMembers() {\n    let members;\n    if (parseExpected(19 /* OpenBraceToken */)) {\n      members = parseList(4 /* TypeMembers */, parseTypeMember);\n      parseExpected(20 /* CloseBraceToken */);\n    } else {\n      members = createMissingList();\n    }\n    return members;\n  }\n  function isStartOfMappedType() {\n    nextToken();\n    if (token() === 40 /* PlusToken */ || token() === 41 /* MinusToken */) {\n      return nextToken() === 148 /* ReadonlyKeyword */;\n    }\n    if (token() === 148 /* ReadonlyKeyword */) {\n      nextToken();\n    }\n    return token() === 23 /* OpenBracketToken */ && nextTokenIsIdentifier() && nextToken() === 103 /* InKeyword */;\n  }\n  function parseMappedTypeParameter() {\n    const pos = getNodePos();\n    const name = parseIdentifierName();\n    parseExpected(103 /* InKeyword */);\n    const type = parseType();\n    return finishNode(factory2.createTypeParameterDeclaration(\n      /*modifiers*/\n      void 0,\n      name,\n      type,\n      /*defaultType*/\n      void 0\n    ), pos);\n  }\n  function parseMappedType() {\n    const pos = getNodePos();\n    parseExpected(19 /* OpenBraceToken */);\n    let readonlyToken;\n    if (token() === 148 /* ReadonlyKeyword */ || token() === 40 /* PlusToken */ || token() === 41 /* MinusToken */) {\n      readonlyToken = parseTokenNode();\n      if (readonlyToken.kind !== 148 /* ReadonlyKeyword */) {\n        parseExpected(148 /* ReadonlyKeyword */);\n      }\n    }\n    parseExpected(23 /* OpenBracketToken */);\n    const typeParameter = parseMappedTypeParameter();\n    const nameType = parseOptional(130 /* AsKeyword */) ? parseType() : void 0;\n    parseExpected(24 /* CloseBracketToken */);\n    let questionToken;\n    if (token() === 58 /* QuestionToken */ || token() === 40 /* PlusToken */ || token() === 41 /* MinusToken */) {\n      questionToken = parseTokenNode();\n      if (questionToken.kind !== 58 /* QuestionToken */) {\n        parseExpected(58 /* QuestionToken */);\n      }\n    }\n    const type = parseTypeAnnotation();\n    parseSemicolon();\n    const members = parseList(4 /* TypeMembers */, parseTypeMember);\n    parseExpected(20 /* CloseBraceToken */);\n    return finishNode(factory2.createMappedTypeNode(readonlyToken, typeParameter, nameType, questionToken, type, members), pos);\n  }\n  function parseTupleElementType() {\n    const pos = getNodePos();\n    if (parseOptional(26 /* DotDotDotToken */)) {\n      return finishNode(factory2.createRestTypeNode(parseType()), pos);\n    }\n    const type = parseType();\n    if (isJSDocNullableType(type) && type.pos === type.type.pos) {\n      const node = factory2.createOptionalTypeNode(type.type);\n      setTextRange(node, type);\n      node.flags = type.flags;\n      return node;\n    }\n    return type;\n  }\n  function isNextTokenColonOrQuestionColon() {\n    return nextToken() === 59 /* ColonToken */ || token() === 58 /* QuestionToken */ && nextToken() === 59 /* ColonToken */;\n  }\n  function isTupleElementName() {\n    if (token() === 26 /* DotDotDotToken */) {\n      return tokenIsIdentifierOrKeyword(nextToken()) && isNextTokenColonOrQuestionColon();\n    }\n    return tokenIsIdentifierOrKeyword(token()) && isNextTokenColonOrQuestionColon();\n  }\n  function parseTupleElementNameOrTupleElementType() {\n    if (lookAhead(isTupleElementName)) {\n      const pos = getNodePos();\n      const hasJSDoc = hasPrecedingJSDocComment();\n      const dotDotDotToken = parseOptionalToken(26 /* DotDotDotToken */);\n      const name = parseIdentifierName();\n      const questionToken = parseOptionalToken(58 /* QuestionToken */);\n      parseExpected(59 /* ColonToken */);\n      const type = parseTupleElementType();\n      const node = factory2.createNamedTupleMember(dotDotDotToken, name, questionToken, type);\n      return withJSDoc(finishNode(node, pos), hasJSDoc);\n    }\n    return parseTupleElementType();\n  }\n  function parseTupleType() {\n    const pos = getNodePos();\n    return finishNode(\n      factory2.createTupleTypeNode(\n        parseBracketedList(21 /* TupleElementTypes */, parseTupleElementNameOrTupleElementType, 23 /* OpenBracketToken */, 24 /* CloseBracketToken */)\n      ),\n      pos\n    );\n  }\n  function parseParenthesizedType() {\n    const pos = getNodePos();\n    parseExpected(21 /* OpenParenToken */);\n    const type = parseType();\n    parseExpected(22 /* CloseParenToken */);\n    return finishNode(factory2.createParenthesizedType(type), pos);\n  }\n  function parseModifiersForConstructorType() {\n    let modifiers;\n    if (token() === 128 /* AbstractKeyword */) {\n      const pos = getNodePos();\n      nextToken();\n      const modifier = finishNode(factoryCreateToken(128 /* AbstractKeyword */), pos);\n      modifiers = createNodeArray([modifier], pos);\n    }\n    return modifiers;\n  }\n  function parseFunctionOrConstructorType() {\n    const pos = getNodePos();\n    const hasJSDoc = hasPrecedingJSDocComment();\n    const modifiers = parseModifiersForConstructorType();\n    const isConstructorType = parseOptional(105 /* NewKeyword */);\n    Debug.assert(!modifiers || isConstructorType, \"Per isStartOfFunctionOrConstructorType, a function type cannot have modifiers.\");\n    const typeParameters = parseTypeParameters();\n    const parameters = parseParameters(4 /* Type */);\n    const type = parseReturnType(\n      39 /* EqualsGreaterThanToken */,\n      /*isType*/\n      false\n    );\n    const node = isConstructorType ? factory2.createConstructorTypeNode(modifiers, typeParameters, parameters, type) : factory2.createFunctionTypeNode(typeParameters, parameters, type);\n    return withJSDoc(finishNode(node, pos), hasJSDoc);\n  }\n  function parseKeywordAndNoDot() {\n    const node = parseTokenNode();\n    return token() === 25 /* DotToken */ ? void 0 : node;\n  }\n  function parseLiteralTypeNode(negative) {\n    const pos = getNodePos();\n    if (negative) {\n      nextToken();\n    }\n    let expression = token() === 112 /* TrueKeyword */ || token() === 97 /* FalseKeyword */ || token() === 106 /* NullKeyword */ ? parseTokenNode() : parseLiteralLikeNode(token());\n    if (negative) {\n      expression = finishNode(factory2.createPrefixUnaryExpression(41 /* MinusToken */, expression), pos);\n    }\n    return finishNode(factory2.createLiteralTypeNode(expression), pos);\n  }\n  function isStartOfTypeOfImportType() {\n    nextToken();\n    return token() === 102 /* ImportKeyword */;\n  }\n  function parseImportType() {\n    sourceFlags |= 4194304 /* PossiblyContainsDynamicImport */;\n    const pos = getNodePos();\n    const isTypeOf = parseOptional(114 /* TypeOfKeyword */);\n    parseExpected(102 /* ImportKeyword */);\n    parseExpected(21 /* OpenParenToken */);\n    const type = parseType();\n    let attributes;\n    if (parseOptional(28 /* CommaToken */)) {\n      const openBracePosition = scanner2.getTokenStart();\n      parseExpected(19 /* OpenBraceToken */);\n      const currentToken2 = token();\n      if (currentToken2 === 118 /* WithKeyword */ || currentToken2 === 132 /* AssertKeyword */) {\n        nextToken();\n      } else {\n        parseErrorAtCurrentToken(Diagnostics._0_expected, tokenToString(118 /* WithKeyword */));\n      }\n      parseExpected(59 /* ColonToken */);\n      attributes = parseImportAttributes(\n        currentToken2,\n        /*skipKeyword*/\n        true\n      );\n      parseOptional(28 /* CommaToken */);\n      if (!parseExpected(20 /* CloseBraceToken */)) {\n        const lastError = lastOrUndefined(parseDiagnostics);\n        if (lastError && lastError.code === Diagnostics._0_expected.code) {\n          addRelatedInfo(\n            lastError,\n            createDetachedDiagnostic(fileName, sourceText, openBracePosition, 1, Diagnostics.The_parser_expected_to_find_a_1_to_match_the_0_token_here, \"{\", \"}\")\n          );\n        }\n      }\n    }\n    parseExpected(22 /* CloseParenToken */);\n    const qualifier = parseOptional(25 /* DotToken */) ? parseEntityNameOfTypeReference() : void 0;\n    const typeArguments = parseTypeArgumentsOfTypeReference();\n    return finishNode(factory2.createImportTypeNode(type, attributes, qualifier, typeArguments, isTypeOf), pos);\n  }\n  function nextTokenIsNumericOrBigIntLiteral() {\n    nextToken();\n    return token() === 9 /* NumericLiteral */ || token() === 10 /* BigIntLiteral */;\n  }\n  function parseNonArrayType() {\n    switch (token()) {\n      case 133 /* AnyKeyword */:\n      case 159 /* UnknownKeyword */:\n      case 154 /* StringKeyword */:\n      case 150 /* NumberKeyword */:\n      case 163 /* BigIntKeyword */:\n      case 155 /* SymbolKeyword */:\n      case 136 /* BooleanKeyword */:\n      case 157 /* UndefinedKeyword */:\n      case 146 /* NeverKeyword */:\n      case 151 /* ObjectKeyword */:\n        return tryParse(parseKeywordAndNoDot) || parseTypeReference();\n      case 67 /* AsteriskEqualsToken */:\n        scanner2.reScanAsteriskEqualsToken();\n      // falls through\n      case 42 /* AsteriskToken */:\n        return parseJSDocAllType();\n      case 61 /* QuestionQuestionToken */:\n        scanner2.reScanQuestionToken();\n      // falls through\n      case 58 /* QuestionToken */:\n        return parseJSDocUnknownOrNullableType();\n      case 100 /* FunctionKeyword */:\n        return parseJSDocFunctionType();\n      case 54 /* ExclamationToken */:\n        return parseJSDocNonNullableType();\n      case 15 /* NoSubstitutionTemplateLiteral */:\n      case 11 /* StringLiteral */:\n      case 9 /* NumericLiteral */:\n      case 10 /* BigIntLiteral */:\n      case 112 /* TrueKeyword */:\n      case 97 /* FalseKeyword */:\n      case 106 /* NullKeyword */:\n        return parseLiteralTypeNode();\n      case 41 /* MinusToken */:\n        return lookAhead(nextTokenIsNumericOrBigIntLiteral) ? parseLiteralTypeNode(\n          /*negative*/\n          true\n        ) : parseTypeReference();\n      case 116 /* VoidKeyword */:\n        return parseTokenNode();\n      case 110 /* ThisKeyword */: {\n        const thisKeyword = parseThisTypeNode();\n        if (token() === 142 /* IsKeyword */ && !scanner2.hasPrecedingLineBreak()) {\n          return parseThisTypePredicate(thisKeyword);\n        } else {\n          return thisKeyword;\n        }\n      }\n      case 114 /* TypeOfKeyword */:\n        return lookAhead(isStartOfTypeOfImportType) ? parseImportType() : parseTypeQuery();\n      case 19 /* OpenBraceToken */:\n        return lookAhead(isStartOfMappedType) ? parseMappedType() : parseTypeLiteral();\n      case 23 /* OpenBracketToken */:\n        return parseTupleType();\n      case 21 /* OpenParenToken */:\n        return parseParenthesizedType();\n      case 102 /* ImportKeyword */:\n        return parseImportType();\n      case 131 /* AssertsKeyword */:\n        return lookAhead(nextTokenIsIdentifierOrKeywordOnSameLine) ? parseAssertsTypePredicate() : parseTypeReference();\n      case 16 /* TemplateHead */:\n        return parseTemplateType();\n      default:\n        return parseTypeReference();\n    }\n  }\n  function isStartOfType(inStartOfParameter) {\n    switch (token()) {\n      case 133 /* AnyKeyword */:\n      case 159 /* UnknownKeyword */:\n      case 154 /* StringKeyword */:\n      case 150 /* NumberKeyword */:\n      case 163 /* BigIntKeyword */:\n      case 136 /* BooleanKeyword */:\n      case 148 /* ReadonlyKeyword */:\n      case 155 /* SymbolKeyword */:\n      case 158 /* UniqueKeyword */:\n      case 116 /* VoidKeyword */:\n      case 157 /* UndefinedKeyword */:\n      case 106 /* NullKeyword */:\n      case 110 /* ThisKeyword */:\n      case 114 /* TypeOfKeyword */:\n      case 146 /* NeverKeyword */:\n      case 19 /* OpenBraceToken */:\n      case 23 /* OpenBracketToken */:\n      case 30 /* LessThanToken */:\n      case 52 /* BarToken */:\n      case 51 /* AmpersandToken */:\n      case 105 /* NewKeyword */:\n      case 11 /* StringLiteral */:\n      case 9 /* NumericLiteral */:\n      case 10 /* BigIntLiteral */:\n      case 112 /* TrueKeyword */:\n      case 97 /* FalseKeyword */:\n      case 151 /* ObjectKeyword */:\n      case 42 /* AsteriskToken */:\n      case 58 /* QuestionToken */:\n      case 54 /* ExclamationToken */:\n      case 26 /* DotDotDotToken */:\n      case 140 /* InferKeyword */:\n      case 102 /* ImportKeyword */:\n      case 131 /* AssertsKeyword */:\n      case 15 /* NoSubstitutionTemplateLiteral */:\n      case 16 /* TemplateHead */:\n        return true;\n      case 100 /* FunctionKeyword */:\n        return !inStartOfParameter;\n      case 41 /* MinusToken */:\n        return !inStartOfParameter && lookAhead(nextTokenIsNumericOrBigIntLiteral);\n      case 21 /* OpenParenToken */:\n        return !inStartOfParameter && lookAhead(isStartOfParenthesizedOrFunctionType);\n      default:\n        return isIdentifier2();\n    }\n  }\n  function isStartOfParenthesizedOrFunctionType() {\n    nextToken();\n    return token() === 22 /* CloseParenToken */ || isStartOfParameter(\n      /*isJSDocParameter*/\n      false\n    ) || isStartOfType();\n  }\n  function parsePostfixTypeOrHigher() {\n    const pos = getNodePos();\n    let type = parseNonArrayType();\n    while (!scanner2.hasPrecedingLineBreak()) {\n      switch (token()) {\n        case 54 /* ExclamationToken */:\n          nextToken();\n          type = finishNode(factory2.createJSDocNonNullableType(\n            type,\n            /*postfix*/\n            true\n          ), pos);\n          break;\n        case 58 /* QuestionToken */:\n          if (lookAhead(nextTokenIsStartOfType)) {\n            return type;\n          }\n          nextToken();\n          type = finishNode(factory2.createJSDocNullableType(\n            type,\n            /*postfix*/\n            true\n          ), pos);\n          break;\n        case 23 /* OpenBracketToken */:\n          parseExpected(23 /* OpenBracketToken */);\n          if (isStartOfType()) {\n            const indexType = parseType();\n            parseExpected(24 /* CloseBracketToken */);\n            type = finishNode(factory2.createIndexedAccessTypeNode(type, indexType), pos);\n          } else {\n            parseExpected(24 /* CloseBracketToken */);\n            type = finishNode(factory2.createArrayTypeNode(type), pos);\n          }\n          break;\n        default:\n          return type;\n      }\n    }\n    return type;\n  }\n  function parseTypeOperator(operator) {\n    const pos = getNodePos();\n    parseExpected(operator);\n    return finishNode(factory2.createTypeOperatorNode(operator, parseTypeOperatorOrHigher()), pos);\n  }\n  function tryParseConstraintOfInferType() {\n    if (parseOptional(96 /* ExtendsKeyword */)) {\n      const constraint = disallowConditionalTypesAnd(parseType);\n      if (inDisallowConditionalTypesContext() || token() !== 58 /* QuestionToken */) {\n        return constraint;\n      }\n    }\n  }\n  function parseTypeParameterOfInferType() {\n    const pos = getNodePos();\n    const name = parseIdentifier();\n    const constraint = tryParse(tryParseConstraintOfInferType);\n    const node = factory2.createTypeParameterDeclaration(\n      /*modifiers*/\n      void 0,\n      name,\n      constraint\n    );\n    return finishNode(node, pos);\n  }\n  function parseInferType() {\n    const pos = getNodePos();\n    parseExpected(140 /* InferKeyword */);\n    return finishNode(factory2.createInferTypeNode(parseTypeParameterOfInferType()), pos);\n  }\n  function parseTypeOperatorOrHigher() {\n    const operator = token();\n    switch (operator) {\n      case 143 /* KeyOfKeyword */:\n      case 158 /* UniqueKeyword */:\n      case 148 /* ReadonlyKeyword */:\n        return parseTypeOperator(operator);\n      case 140 /* InferKeyword */:\n        return parseInferType();\n    }\n    return allowConditionalTypesAnd(parsePostfixTypeOrHigher);\n  }\n  function parseFunctionOrConstructorTypeToError(isInUnionType) {\n    if (isStartOfFunctionTypeOrConstructorType()) {\n      const type = parseFunctionOrConstructorType();\n      let diagnostic;\n      if (isFunctionTypeNode(type)) {\n        diagnostic = isInUnionType ? Diagnostics.Function_type_notation_must_be_parenthesized_when_used_in_a_union_type : Diagnostics.Function_type_notation_must_be_parenthesized_when_used_in_an_intersection_type;\n      } else {\n        diagnostic = isInUnionType ? Diagnostics.Constructor_type_notation_must_be_parenthesized_when_used_in_a_union_type : Diagnostics.Constructor_type_notation_must_be_parenthesized_when_used_in_an_intersection_type;\n      }\n      parseErrorAtRange(type, diagnostic);\n      return type;\n    }\n    return void 0;\n  }\n  function parseUnionOrIntersectionType(operator, parseConstituentType, createTypeNode) {\n    const pos = getNodePos();\n    const isUnionType = operator === 52 /* BarToken */;\n    const hasLeadingOperator = parseOptional(operator);\n    let type = hasLeadingOperator && parseFunctionOrConstructorTypeToError(isUnionType) || parseConstituentType();\n    if (token() === operator || hasLeadingOperator) {\n      const types = [type];\n      while (parseOptional(operator)) {\n        types.push(parseFunctionOrConstructorTypeToError(isUnionType) || parseConstituentType());\n      }\n      type = finishNode(createTypeNode(createNodeArray(types, pos)), pos);\n    }\n    return type;\n  }\n  function parseIntersectionTypeOrHigher() {\n    return parseUnionOrIntersectionType(51 /* AmpersandToken */, parseTypeOperatorOrHigher, factory2.createIntersectionTypeNode);\n  }\n  function parseUnionTypeOrHigher() {\n    return parseUnionOrIntersectionType(52 /* BarToken */, parseIntersectionTypeOrHigher, factory2.createUnionTypeNode);\n  }\n  function nextTokenIsNewKeyword() {\n    nextToken();\n    return token() === 105 /* NewKeyword */;\n  }\n  function isStartOfFunctionTypeOrConstructorType() {\n    if (token() === 30 /* LessThanToken */) {\n      return true;\n    }\n    if (token() === 21 /* OpenParenToken */ && lookAhead(isUnambiguouslyStartOfFunctionType)) {\n      return true;\n    }\n    return token() === 105 /* NewKeyword */ || token() === 128 /* AbstractKeyword */ && lookAhead(nextTokenIsNewKeyword);\n  }\n  function skipParameterStart() {\n    if (isModifierKind(token())) {\n      parseModifiers(\n        /*allowDecorators*/\n        false\n      );\n    }\n    if (isIdentifier2() || token() === 110 /* ThisKeyword */) {\n      nextToken();\n      return true;\n    }\n    if (token() === 23 /* OpenBracketToken */ || token() === 19 /* OpenBraceToken */) {\n      const previousErrorCount = parseDiagnostics.length;\n      parseIdentifierOrPattern();\n      return previousErrorCount === parseDiagnostics.length;\n    }\n    return false;\n  }\n  function isUnambiguouslyStartOfFunctionType() {\n    nextToken();\n    if (token() === 22 /* CloseParenToken */ || token() === 26 /* DotDotDotToken */) {\n      return true;\n    }\n    if (skipParameterStart()) {\n      if (token() === 59 /* ColonToken */ || token() === 28 /* CommaToken */ || token() === 58 /* QuestionToken */ || token() === 64 /* EqualsToken */) {\n        return true;\n      }\n      if (token() === 22 /* CloseParenToken */) {\n        nextToken();\n        if (token() === 39 /* EqualsGreaterThanToken */) {\n          return true;\n        }\n      }\n    }\n    return false;\n  }\n  function parseTypeOrTypePredicate() {\n    const pos = getNodePos();\n    const typePredicateVariable = isIdentifier2() && tryParse(parseTypePredicatePrefix);\n    const type = parseType();\n    if (typePredicateVariable) {\n      return finishNode(factory2.createTypePredicateNode(\n        /*assertsModifier*/\n        void 0,\n        typePredicateVariable,\n        type\n      ), pos);\n    } else {\n      return type;\n    }\n  }\n  function parseTypePredicatePrefix() {\n    const id = parseIdentifier();\n    if (token() === 142 /* IsKeyword */ && !scanner2.hasPrecedingLineBreak()) {\n      nextToken();\n      return id;\n    }\n  }\n  function parseAssertsTypePredicate() {\n    const pos = getNodePos();\n    const assertsModifier = parseExpectedToken(131 /* AssertsKeyword */);\n    const parameterName = token() === 110 /* ThisKeyword */ ? parseThisTypeNode() : parseIdentifier();\n    const type = parseOptional(142 /* IsKeyword */) ? parseType() : void 0;\n    return finishNode(factory2.createTypePredicateNode(assertsModifier, parameterName, type), pos);\n  }\n  function parseType() {\n    if (contextFlags & 81920 /* TypeExcludesFlags */) {\n      return doOutsideOfContext(81920 /* TypeExcludesFlags */, parseType);\n    }\n    if (isStartOfFunctionTypeOrConstructorType()) {\n      return parseFunctionOrConstructorType();\n    }\n    const pos = getNodePos();\n    const type = parseUnionTypeOrHigher();\n    if (!inDisallowConditionalTypesContext() && !scanner2.hasPrecedingLineBreak() && parseOptional(96 /* ExtendsKeyword */)) {\n      const extendsType = disallowConditionalTypesAnd(parseType);\n      parseExpected(58 /* QuestionToken */);\n      const trueType = allowConditionalTypesAnd(parseType);\n      parseExpected(59 /* ColonToken */);\n      const falseType = allowConditionalTypesAnd(parseType);\n      return finishNode(factory2.createConditionalTypeNode(type, extendsType, trueType, falseType), pos);\n    }\n    return type;\n  }\n  function parseTypeAnnotation() {\n    return parseOptional(59 /* ColonToken */) ? parseType() : void 0;\n  }\n  function isStartOfLeftHandSideExpression() {\n    switch (token()) {\n      case 110 /* ThisKeyword */:\n      case 108 /* SuperKeyword */:\n      case 106 /* NullKeyword */:\n      case 112 /* TrueKeyword */:\n      case 97 /* FalseKeyword */:\n      case 9 /* NumericLiteral */:\n      case 10 /* BigIntLiteral */:\n      case 11 /* StringLiteral */:\n      case 15 /* NoSubstitutionTemplateLiteral */:\n      case 16 /* TemplateHead */:\n      case 21 /* OpenParenToken */:\n      case 23 /* OpenBracketToken */:\n      case 19 /* OpenBraceToken */:\n      case 100 /* FunctionKeyword */:\n      case 86 /* ClassKeyword */:\n      case 105 /* NewKeyword */:\n      case 44 /* SlashToken */:\n      case 69 /* SlashEqualsToken */:\n      case 80 /* Identifier */:\n        return true;\n      case 102 /* ImportKeyword */:\n        return lookAhead(nextTokenIsOpenParenOrLessThanOrDot);\n      default:\n        return isIdentifier2();\n    }\n  }\n  function isStartOfExpression() {\n    if (isStartOfLeftHandSideExpression()) {\n      return true;\n    }\n    switch (token()) {\n      case 40 /* PlusToken */:\n      case 41 /* MinusToken */:\n      case 55 /* TildeToken */:\n      case 54 /* ExclamationToken */:\n      case 91 /* DeleteKeyword */:\n      case 114 /* TypeOfKeyword */:\n      case 116 /* VoidKeyword */:\n      case 46 /* PlusPlusToken */:\n      case 47 /* MinusMinusToken */:\n      case 30 /* LessThanToken */:\n      case 135 /* AwaitKeyword */:\n      case 127 /* YieldKeyword */:\n      case 81 /* PrivateIdentifier */:\n      case 60 /* AtToken */:\n        return true;\n      default:\n        if (isBinaryOperator2()) {\n          return true;\n        }\n        return isIdentifier2();\n    }\n  }\n  function isStartOfExpressionStatement() {\n    return token() !== 19 /* OpenBraceToken */ && token() !== 100 /* FunctionKeyword */ && token() !== 86 /* ClassKeyword */ && token() !== 60 /* AtToken */ && isStartOfExpression();\n  }\n  function parseExpression() {\n    const saveDecoratorContext = inDecoratorContext();\n    if (saveDecoratorContext) {\n      setDecoratorContext(\n        /*val*/\n        false\n      );\n    }\n    const pos = getNodePos();\n    let expr = parseAssignmentExpressionOrHigher(\n      /*allowReturnTypeInArrowFunction*/\n      true\n    );\n    let operatorToken;\n    while (operatorToken = parseOptionalToken(28 /* CommaToken */)) {\n      expr = makeBinaryExpression(expr, operatorToken, parseAssignmentExpressionOrHigher(\n        /*allowReturnTypeInArrowFunction*/\n        true\n      ), pos);\n    }\n    if (saveDecoratorContext) {\n      setDecoratorContext(\n        /*val*/\n        true\n      );\n    }\n    return expr;\n  }\n  function parseInitializer() {\n    return parseOptional(64 /* EqualsToken */) ? parseAssignmentExpressionOrHigher(\n      /*allowReturnTypeInArrowFunction*/\n      true\n    ) : void 0;\n  }\n  function parseAssignmentExpressionOrHigher(allowReturnTypeInArrowFunction) {\n    if (isYieldExpression2()) {\n      return parseYieldExpression();\n    }\n    const arrowExpression = tryParseParenthesizedArrowFunctionExpression(allowReturnTypeInArrowFunction) || tryParseAsyncSimpleArrowFunctionExpression(allowReturnTypeInArrowFunction);\n    if (arrowExpression) {\n      return arrowExpression;\n    }\n    const pos = getNodePos();\n    const hasJSDoc = hasPrecedingJSDocComment();\n    const expr = parseBinaryExpressionOrHigher(0 /* Lowest */);\n    if (expr.kind === 80 /* Identifier */ && token() === 39 /* EqualsGreaterThanToken */) {\n      return parseSimpleArrowFunctionExpression(\n        pos,\n        expr,\n        allowReturnTypeInArrowFunction,\n        hasJSDoc,\n        /*asyncModifier*/\n        void 0\n      );\n    }\n    if (isLeftHandSideExpression(expr) && isAssignmentOperator(reScanGreaterToken())) {\n      return makeBinaryExpression(expr, parseTokenNode(), parseAssignmentExpressionOrHigher(allowReturnTypeInArrowFunction), pos);\n    }\n    return parseConditionalExpressionRest(expr, pos, allowReturnTypeInArrowFunction);\n  }\n  function isYieldExpression2() {\n    if (token() === 127 /* YieldKeyword */) {\n      if (inYieldContext()) {\n        return true;\n      }\n      return lookAhead(nextTokenIsIdentifierOrKeywordOrLiteralOnSameLine);\n    }\n    return false;\n  }\n  function nextTokenIsIdentifierOnSameLine() {\n    nextToken();\n    return !scanner2.hasPrecedingLineBreak() && isIdentifier2();\n  }\n  function parseYieldExpression() {\n    const pos = getNodePos();\n    nextToken();\n    if (!scanner2.hasPrecedingLineBreak() && (token() === 42 /* AsteriskToken */ || isStartOfExpression())) {\n      return finishNode(\n        factory2.createYieldExpression(\n          parseOptionalToken(42 /* AsteriskToken */),\n          parseAssignmentExpressionOrHigher(\n            /*allowReturnTypeInArrowFunction*/\n            true\n          )\n        ),\n        pos\n      );\n    } else {\n      return finishNode(factory2.createYieldExpression(\n        /*asteriskToken*/\n        void 0,\n        /*expression*/\n        void 0\n      ), pos);\n    }\n  }\n  function parseSimpleArrowFunctionExpression(pos, identifier, allowReturnTypeInArrowFunction, hasJSDoc, asyncModifier) {\n    Debug.assert(token() === 39 /* EqualsGreaterThanToken */, \"parseSimpleArrowFunctionExpression should only have been called if we had a =>\");\n    const parameter = factory2.createParameterDeclaration(\n      /*modifiers*/\n      void 0,\n      /*dotDotDotToken*/\n      void 0,\n      identifier,\n      /*questionToken*/\n      void 0,\n      /*type*/\n      void 0,\n      /*initializer*/\n      void 0\n    );\n    finishNode(parameter, identifier.pos);\n    const parameters = createNodeArray([parameter], parameter.pos, parameter.end);\n    const equalsGreaterThanToken = parseExpectedToken(39 /* EqualsGreaterThanToken */);\n    const body = parseArrowFunctionExpressionBody(\n      /*isAsync*/\n      !!asyncModifier,\n      allowReturnTypeInArrowFunction\n    );\n    const node = factory2.createArrowFunction(\n      asyncModifier,\n      /*typeParameters*/\n      void 0,\n      parameters,\n      /*type*/\n      void 0,\n      equalsGreaterThanToken,\n      body\n    );\n    return withJSDoc(finishNode(node, pos), hasJSDoc);\n  }\n  function tryParseParenthesizedArrowFunctionExpression(allowReturnTypeInArrowFunction) {\n    const triState = isParenthesizedArrowFunctionExpression();\n    if (triState === 0 /* False */) {\n      return void 0;\n    }\n    return triState === 1 /* True */ ? parseParenthesizedArrowFunctionExpression(\n      /*allowAmbiguity*/\n      true,\n      /*allowReturnTypeInArrowFunction*/\n      true\n    ) : tryParse(() => parsePossibleParenthesizedArrowFunctionExpression(allowReturnTypeInArrowFunction));\n  }\n  function isParenthesizedArrowFunctionExpression() {\n    if (token() === 21 /* OpenParenToken */ || token() === 30 /* LessThanToken */ || token() === 134 /* AsyncKeyword */) {\n      return lookAhead(isParenthesizedArrowFunctionExpressionWorker);\n    }\n    if (token() === 39 /* EqualsGreaterThanToken */) {\n      return 1 /* True */;\n    }\n    return 0 /* False */;\n  }\n  function isParenthesizedArrowFunctionExpressionWorker() {\n    if (token() === 134 /* AsyncKeyword */) {\n      nextToken();\n      if (scanner2.hasPrecedingLineBreak()) {\n        return 0 /* False */;\n      }\n      if (token() !== 21 /* OpenParenToken */ && token() !== 30 /* LessThanToken */) {\n        return 0 /* False */;\n      }\n    }\n    const first2 = token();\n    const second = nextToken();\n    if (first2 === 21 /* OpenParenToken */) {\n      if (second === 22 /* CloseParenToken */) {\n        const third = nextToken();\n        switch (third) {\n          case 39 /* EqualsGreaterThanToken */:\n          case 59 /* ColonToken */:\n          case 19 /* OpenBraceToken */:\n            return 1 /* True */;\n          default:\n            return 0 /* False */;\n        }\n      }\n      if (second === 23 /* OpenBracketToken */ || second === 19 /* OpenBraceToken */) {\n        return 2 /* Unknown */;\n      }\n      if (second === 26 /* DotDotDotToken */) {\n        return 1 /* True */;\n      }\n      if (isModifierKind(second) && second !== 134 /* AsyncKeyword */ && lookAhead(nextTokenIsIdentifier)) {\n        if (nextToken() === 130 /* AsKeyword */) {\n          return 0 /* False */;\n        }\n        return 1 /* True */;\n      }\n      if (!isIdentifier2() && second !== 110 /* ThisKeyword */) {\n        return 0 /* False */;\n      }\n      switch (nextToken()) {\n        case 59 /* ColonToken */:\n          return 1 /* True */;\n        case 58 /* QuestionToken */:\n          nextToken();\n          if (token() === 59 /* ColonToken */ || token() === 28 /* CommaToken */ || token() === 64 /* EqualsToken */ || token() === 22 /* CloseParenToken */) {\n            return 1 /* True */;\n          }\n          return 0 /* False */;\n        case 28 /* CommaToken */:\n        case 64 /* EqualsToken */:\n        case 22 /* CloseParenToken */:\n          return 2 /* Unknown */;\n      }\n      return 0 /* False */;\n    } else {\n      Debug.assert(first2 === 30 /* LessThanToken */);\n      if (!isIdentifier2() && token() !== 87 /* ConstKeyword */) {\n        return 0 /* False */;\n      }\n      if (languageVariant === 1 /* JSX */) {\n        const isArrowFunctionInJsx = lookAhead(() => {\n          parseOptional(87 /* ConstKeyword */);\n          const third = nextToken();\n          if (third === 96 /* ExtendsKeyword */) {\n            const fourth = nextToken();\n            switch (fourth) {\n              case 64 /* EqualsToken */:\n              case 32 /* GreaterThanToken */:\n              case 44 /* SlashToken */:\n                return false;\n              default:\n                return true;\n            }\n          } else if (third === 28 /* CommaToken */ || third === 64 /* EqualsToken */) {\n            return true;\n          }\n          return false;\n        });\n        if (isArrowFunctionInJsx) {\n          return 1 /* True */;\n        }\n        return 0 /* False */;\n      }\n      return 2 /* Unknown */;\n    }\n  }\n  function parsePossibleParenthesizedArrowFunctionExpression(allowReturnTypeInArrowFunction) {\n    const tokenPos = scanner2.getTokenStart();\n    if (notParenthesizedArrow == null ? void 0 : notParenthesizedArrow.has(tokenPos)) {\n      return void 0;\n    }\n    const result = parseParenthesizedArrowFunctionExpression(\n      /*allowAmbiguity*/\n      false,\n      allowReturnTypeInArrowFunction\n    );\n    if (!result) {\n      (notParenthesizedArrow || (notParenthesizedArrow = /* @__PURE__ */ new Set())).add(tokenPos);\n    }\n    return result;\n  }\n  function tryParseAsyncSimpleArrowFunctionExpression(allowReturnTypeInArrowFunction) {\n    if (token() === 134 /* AsyncKeyword */) {\n      if (lookAhead(isUnParenthesizedAsyncArrowFunctionWorker) === 1 /* True */) {\n        const pos = getNodePos();\n        const hasJSDoc = hasPrecedingJSDocComment();\n        const asyncModifier = parseModifiersForArrowFunction();\n        const expr = parseBinaryExpressionOrHigher(0 /* Lowest */);\n        return parseSimpleArrowFunctionExpression(pos, expr, allowReturnTypeInArrowFunction, hasJSDoc, asyncModifier);\n      }\n    }\n    return void 0;\n  }\n  function isUnParenthesizedAsyncArrowFunctionWorker() {\n    if (token() === 134 /* AsyncKeyword */) {\n      nextToken();\n      if (scanner2.hasPrecedingLineBreak() || token() === 39 /* EqualsGreaterThanToken */) {\n        return 0 /* False */;\n      }\n      const expr = parseBinaryExpressionOrHigher(0 /* Lowest */);\n      if (!scanner2.hasPrecedingLineBreak() && expr.kind === 80 /* Identifier */ && token() === 39 /* EqualsGreaterThanToken */) {\n        return 1 /* True */;\n      }\n    }\n    return 0 /* False */;\n  }\n  function parseParenthesizedArrowFunctionExpression(allowAmbiguity, allowReturnTypeInArrowFunction) {\n    const pos = getNodePos();\n    const hasJSDoc = hasPrecedingJSDocComment();\n    const modifiers = parseModifiersForArrowFunction();\n    const isAsync = some(modifiers, isAsyncModifier) ? 2 /* Await */ : 0 /* None */;\n    const typeParameters = parseTypeParameters();\n    let parameters;\n    if (!parseExpected(21 /* OpenParenToken */)) {\n      if (!allowAmbiguity) {\n        return void 0;\n      }\n      parameters = createMissingList();\n    } else {\n      if (!allowAmbiguity) {\n        const maybeParameters = parseParametersWorker(isAsync, allowAmbiguity);\n        if (!maybeParameters) {\n          return void 0;\n        }\n        parameters = maybeParameters;\n      } else {\n        parameters = parseParametersWorker(isAsync, allowAmbiguity);\n      }\n      if (!parseExpected(22 /* CloseParenToken */) && !allowAmbiguity) {\n        return void 0;\n      }\n    }\n    const hasReturnColon = token() === 59 /* ColonToken */;\n    const type = parseReturnType(\n      59 /* ColonToken */,\n      /*isType*/\n      false\n    );\n    if (type && !allowAmbiguity && typeHasArrowFunctionBlockingParseError(type)) {\n      return void 0;\n    }\n    let unwrappedType = type;\n    while ((unwrappedType == null ? void 0 : unwrappedType.kind) === 197 /* ParenthesizedType */) {\n      unwrappedType = unwrappedType.type;\n    }\n    const hasJSDocFunctionType = unwrappedType && isJSDocFunctionType(unwrappedType);\n    if (!allowAmbiguity && token() !== 39 /* EqualsGreaterThanToken */ && (hasJSDocFunctionType || token() !== 19 /* OpenBraceToken */)) {\n      return void 0;\n    }\n    const lastToken = token();\n    const equalsGreaterThanToken = parseExpectedToken(39 /* EqualsGreaterThanToken */);\n    const body = lastToken === 39 /* EqualsGreaterThanToken */ || lastToken === 19 /* OpenBraceToken */ ? parseArrowFunctionExpressionBody(some(modifiers, isAsyncModifier), allowReturnTypeInArrowFunction) : parseIdentifier();\n    if (!allowReturnTypeInArrowFunction && hasReturnColon) {\n      if (token() !== 59 /* ColonToken */) {\n        return void 0;\n      }\n    }\n    const node = factory2.createArrowFunction(modifiers, typeParameters, parameters, type, equalsGreaterThanToken, body);\n    return withJSDoc(finishNode(node, pos), hasJSDoc);\n  }\n  function parseArrowFunctionExpressionBody(isAsync, allowReturnTypeInArrowFunction) {\n    if (token() === 19 /* OpenBraceToken */) {\n      return parseFunctionBlock(isAsync ? 2 /* Await */ : 0 /* None */);\n    }\n    if (token() !== 27 /* SemicolonToken */ && token() !== 100 /* FunctionKeyword */ && token() !== 86 /* ClassKeyword */ && isStartOfStatement() && !isStartOfExpressionStatement()) {\n      return parseFunctionBlock(16 /* IgnoreMissingOpenBrace */ | (isAsync ? 2 /* Await */ : 0 /* None */));\n    }\n    const savedYieldContext = inYieldContext();\n    setYieldContext(false);\n    const savedTopLevel = topLevel;\n    topLevel = false;\n    const node = isAsync ? doInAwaitContext(() => parseAssignmentExpressionOrHigher(allowReturnTypeInArrowFunction)) : doOutsideOfAwaitContext(() => parseAssignmentExpressionOrHigher(allowReturnTypeInArrowFunction));\n    topLevel = savedTopLevel;\n    setYieldContext(savedYieldContext);\n    return node;\n  }\n  function parseConditionalExpressionRest(leftOperand, pos, allowReturnTypeInArrowFunction) {\n    const questionToken = parseOptionalToken(58 /* QuestionToken */);\n    if (!questionToken) {\n      return leftOperand;\n    }\n    let colonToken;\n    return finishNode(\n      factory2.createConditionalExpression(\n        leftOperand,\n        questionToken,\n        doOutsideOfContext(disallowInAndDecoratorContext, () => parseAssignmentExpressionOrHigher(\n          /*allowReturnTypeInArrowFunction*/\n          false\n        )),\n        colonToken = parseExpectedToken(59 /* ColonToken */),\n        nodeIsPresent(colonToken) ? parseAssignmentExpressionOrHigher(allowReturnTypeInArrowFunction) : createMissingNode(\n          80 /* Identifier */,\n          /*reportAtCurrentPosition*/\n          false,\n          Diagnostics._0_expected,\n          tokenToString(59 /* ColonToken */)\n        )\n      ),\n      pos\n    );\n  }\n  function parseBinaryExpressionOrHigher(precedence) {\n    const pos = getNodePos();\n    const leftOperand = parseUnaryExpressionOrHigher();\n    return parseBinaryExpressionRest(precedence, leftOperand, pos);\n  }\n  function isInOrOfKeyword(t) {\n    return t === 103 /* InKeyword */ || t === 165 /* OfKeyword */;\n  }\n  function parseBinaryExpressionRest(precedence, leftOperand, pos) {\n    while (true) {\n      reScanGreaterToken();\n      const newPrecedence = getBinaryOperatorPrecedence(token());\n      const consumeCurrentOperator = token() === 43 /* AsteriskAsteriskToken */ ? newPrecedence >= precedence : newPrecedence > precedence;\n      if (!consumeCurrentOperator) {\n        break;\n      }\n      if (token() === 103 /* InKeyword */ && inDisallowInContext()) {\n        break;\n      }\n      if (token() === 130 /* AsKeyword */ || token() === 152 /* SatisfiesKeyword */) {\n        if (scanner2.hasPrecedingLineBreak()) {\n          break;\n        } else {\n          const keywordKind = token();\n          nextToken();\n          leftOperand = keywordKind === 152 /* SatisfiesKeyword */ ? makeSatisfiesExpression(leftOperand, parseType()) : makeAsExpression(leftOperand, parseType());\n        }\n      } else {\n        leftOperand = makeBinaryExpression(leftOperand, parseTokenNode(), parseBinaryExpressionOrHigher(newPrecedence), pos);\n      }\n    }\n    return leftOperand;\n  }\n  function isBinaryOperator2() {\n    if (inDisallowInContext() && token() === 103 /* InKeyword */) {\n      return false;\n    }\n    return getBinaryOperatorPrecedence(token()) > 0;\n  }\n  function makeSatisfiesExpression(left, right) {\n    return finishNode(factory2.createSatisfiesExpression(left, right), left.pos);\n  }\n  function makeBinaryExpression(left, operatorToken, right, pos) {\n    return finishNode(factory2.createBinaryExpression(left, operatorToken, right), pos);\n  }\n  function makeAsExpression(left, right) {\n    return finishNode(factory2.createAsExpression(left, right), left.pos);\n  }\n  function parsePrefixUnaryExpression() {\n    const pos = getNodePos();\n    return finishNode(factory2.createPrefixUnaryExpression(token(), nextTokenAnd(parseSimpleUnaryExpression)), pos);\n  }\n  function parseDeleteExpression() {\n    const pos = getNodePos();\n    return finishNode(factory2.createDeleteExpression(nextTokenAnd(parseSimpleUnaryExpression)), pos);\n  }\n  function parseTypeOfExpression() {\n    const pos = getNodePos();\n    return finishNode(factory2.createTypeOfExpression(nextTokenAnd(parseSimpleUnaryExpression)), pos);\n  }\n  function parseVoidExpression() {\n    const pos = getNodePos();\n    return finishNode(factory2.createVoidExpression(nextTokenAnd(parseSimpleUnaryExpression)), pos);\n  }\n  function isAwaitExpression2() {\n    if (token() === 135 /* AwaitKeyword */) {\n      if (inAwaitContext()) {\n        return true;\n      }\n      return lookAhead(nextTokenIsIdentifierOrKeywordOrLiteralOnSameLine);\n    }\n    return false;\n  }\n  function parseAwaitExpression() {\n    const pos = getNodePos();\n    return finishNode(factory2.createAwaitExpression(nextTokenAnd(parseSimpleUnaryExpression)), pos);\n  }\n  function parseUnaryExpressionOrHigher() {\n    if (isUpdateExpression()) {\n      const pos = getNodePos();\n      const updateExpression = parseUpdateExpression();\n      return token() === 43 /* AsteriskAsteriskToken */ ? parseBinaryExpressionRest(getBinaryOperatorPrecedence(token()), updateExpression, pos) : updateExpression;\n    }\n    const unaryOperator = token();\n    const simpleUnaryExpression = parseSimpleUnaryExpression();\n    if (token() === 43 /* AsteriskAsteriskToken */) {\n      const pos = skipTrivia(sourceText, simpleUnaryExpression.pos);\n      const { end } = simpleUnaryExpression;\n      if (simpleUnaryExpression.kind === 217 /* TypeAssertionExpression */) {\n        parseErrorAt(pos, end, Diagnostics.A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses);\n      } else {\n        Debug.assert(isKeywordOrPunctuation(unaryOperator));\n        parseErrorAt(pos, end, Diagnostics.An_unary_expression_with_the_0_operator_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses, tokenToString(unaryOperator));\n      }\n    }\n    return simpleUnaryExpression;\n  }\n  function parseSimpleUnaryExpression() {\n    switch (token()) {\n      case 40 /* PlusToken */:\n      case 41 /* MinusToken */:\n      case 55 /* TildeToken */:\n      case 54 /* ExclamationToken */:\n        return parsePrefixUnaryExpression();\n      case 91 /* DeleteKeyword */:\n        return parseDeleteExpression();\n      case 114 /* TypeOfKeyword */:\n        return parseTypeOfExpression();\n      case 116 /* VoidKeyword */:\n        return parseVoidExpression();\n      case 30 /* LessThanToken */:\n        if (languageVariant === 1 /* JSX */) {\n          return parseJsxElementOrSelfClosingElementOrFragment(\n            /*inExpressionContext*/\n            true,\n            /*topInvalidNodePosition*/\n            void 0,\n            /*openingTag*/\n            void 0,\n            /*mustBeUnary*/\n            true\n          );\n        }\n        return parseTypeAssertion();\n      case 135 /* AwaitKeyword */:\n        if (isAwaitExpression2()) {\n          return parseAwaitExpression();\n        }\n      // falls through\n      default:\n        return parseUpdateExpression();\n    }\n  }\n  function isUpdateExpression() {\n    switch (token()) {\n      case 40 /* PlusToken */:\n      case 41 /* MinusToken */:\n      case 55 /* TildeToken */:\n      case 54 /* ExclamationToken */:\n      case 91 /* DeleteKeyword */:\n      case 114 /* TypeOfKeyword */:\n      case 116 /* VoidKeyword */:\n      case 135 /* AwaitKeyword */:\n        return false;\n      case 30 /* LessThanToken */:\n        if (languageVariant !== 1 /* JSX */) {\n          return false;\n        }\n      // We are in JSX context and the token is part of JSXElement.\n      // falls through\n      default:\n        return true;\n    }\n  }\n  function parseUpdateExpression() {\n    if (token() === 46 /* PlusPlusToken */ || token() === 47 /* MinusMinusToken */) {\n      const pos = getNodePos();\n      return finishNode(factory2.createPrefixUnaryExpression(token(), nextTokenAnd(parseLeftHandSideExpressionOrHigher)), pos);\n    } else if (languageVariant === 1 /* JSX */ && token() === 30 /* LessThanToken */ && lookAhead(nextTokenIsIdentifierOrKeywordOrGreaterThan)) {\n      return parseJsxElementOrSelfClosingElementOrFragment(\n        /*inExpressionContext*/\n        true\n      );\n    }\n    const expression = parseLeftHandSideExpressionOrHigher();\n    Debug.assert(isLeftHandSideExpression(expression));\n    if ((token() === 46 /* PlusPlusToken */ || token() === 47 /* MinusMinusToken */) && !scanner2.hasPrecedingLineBreak()) {\n      const operator = token();\n      nextToken();\n      return finishNode(factory2.createPostfixUnaryExpression(expression, operator), expression.pos);\n    }\n    return expression;\n  }\n  function parseLeftHandSideExpressionOrHigher() {\n    const pos = getNodePos();\n    let expression;\n    if (token() === 102 /* ImportKeyword */) {\n      if (lookAhead(nextTokenIsOpenParenOrLessThan)) {\n        sourceFlags |= 4194304 /* PossiblyContainsDynamicImport */;\n        expression = parseTokenNode();\n      } else if (lookAhead(nextTokenIsDot)) {\n        nextToken();\n        nextToken();\n        expression = finishNode(factory2.createMetaProperty(102 /* ImportKeyword */, parseIdentifierName()), pos);\n        if (expression.name.escapedText === \"defer\") {\n          if (token() === 21 /* OpenParenToken */ || token() === 30 /* LessThanToken */) {\n            sourceFlags |= 4194304 /* PossiblyContainsDynamicImport */;\n          }\n        } else {\n          sourceFlags |= 8388608 /* PossiblyContainsImportMeta */;\n        }\n      } else {\n        expression = parseMemberExpressionOrHigher();\n      }\n    } else {\n      expression = token() === 108 /* SuperKeyword */ ? parseSuperExpression() : parseMemberExpressionOrHigher();\n    }\n    return parseCallExpressionRest(pos, expression);\n  }\n  function parseMemberExpressionOrHigher() {\n    const pos = getNodePos();\n    const expression = parsePrimaryExpression();\n    return parseMemberExpressionRest(\n      pos,\n      expression,\n      /*allowOptionalChain*/\n      true\n    );\n  }\n  function parseSuperExpression() {\n    const pos = getNodePos();\n    let expression = parseTokenNode();\n    if (token() === 30 /* LessThanToken */) {\n      const startPos = getNodePos();\n      const typeArguments = tryParse(parseTypeArgumentsInExpression);\n      if (typeArguments !== void 0) {\n        parseErrorAt(startPos, getNodePos(), Diagnostics.super_may_not_use_type_arguments);\n        if (!isTemplateStartOfTaggedTemplate()) {\n          expression = factory2.createExpressionWithTypeArguments(expression, typeArguments);\n        }\n      }\n    }\n    if (token() === 21 /* OpenParenToken */ || token() === 25 /* DotToken */ || token() === 23 /* OpenBracketToken */) {\n      return expression;\n    }\n    parseExpectedToken(25 /* DotToken */, Diagnostics.super_must_be_followed_by_an_argument_list_or_member_access);\n    return finishNode(factoryCreatePropertyAccessExpression(expression, parseRightSideOfDot(\n      /*allowIdentifierNames*/\n      true,\n      /*allowPrivateIdentifiers*/\n      true,\n      /*allowUnicodeEscapeSequenceInIdentifierName*/\n      true\n    )), pos);\n  }\n  function parseJsxElementOrSelfClosingElementOrFragment(inExpressionContext, topInvalidNodePosition, openingTag, mustBeUnary = false) {\n    const pos = getNodePos();\n    const opening = parseJsxOpeningOrSelfClosingElementOrOpeningFragment(inExpressionContext);\n    let result;\n    if (opening.kind === 287 /* JsxOpeningElement */) {\n      let children = parseJsxChildren(opening);\n      let closingElement;\n      const lastChild = children[children.length - 1];\n      if ((lastChild == null ? void 0 : lastChild.kind) === 285 /* JsxElement */ && !tagNamesAreEquivalent(lastChild.openingElement.tagName, lastChild.closingElement.tagName) && tagNamesAreEquivalent(opening.tagName, lastChild.closingElement.tagName)) {\n        const end = lastChild.children.end;\n        const newLast = finishNode(\n          factory2.createJsxElement(\n            lastChild.openingElement,\n            lastChild.children,\n            finishNode(factory2.createJsxClosingElement(finishNode(factoryCreateIdentifier(\"\"), end, end)), end, end)\n          ),\n          lastChild.openingElement.pos,\n          end\n        );\n        children = createNodeArray([...children.slice(0, children.length - 1), newLast], children.pos, end);\n        closingElement = lastChild.closingElement;\n      } else {\n        closingElement = parseJsxClosingElement(opening, inExpressionContext);\n        if (!tagNamesAreEquivalent(opening.tagName, closingElement.tagName)) {\n          if (openingTag && isJsxOpeningElement(openingTag) && tagNamesAreEquivalent(closingElement.tagName, openingTag.tagName)) {\n            parseErrorAtRange(opening.tagName, Diagnostics.JSX_element_0_has_no_corresponding_closing_tag, getTextOfNodeFromSourceText(sourceText, opening.tagName));\n          } else {\n            parseErrorAtRange(closingElement.tagName, Diagnostics.Expected_corresponding_JSX_closing_tag_for_0, getTextOfNodeFromSourceText(sourceText, opening.tagName));\n          }\n        }\n      }\n      result = finishNode(factory2.createJsxElement(opening, children, closingElement), pos);\n    } else if (opening.kind === 290 /* JsxOpeningFragment */) {\n      result = finishNode(factory2.createJsxFragment(opening, parseJsxChildren(opening), parseJsxClosingFragment(inExpressionContext)), pos);\n    } else {\n      Debug.assert(opening.kind === 286 /* JsxSelfClosingElement */);\n      result = opening;\n    }\n    if (!mustBeUnary && inExpressionContext && token() === 30 /* LessThanToken */) {\n      const topBadPos = typeof topInvalidNodePosition === \"undefined\" ? result.pos : topInvalidNodePosition;\n      const invalidElement = tryParse(() => parseJsxElementOrSelfClosingElementOrFragment(\n        /*inExpressionContext*/\n        true,\n        topBadPos\n      ));\n      if (invalidElement) {\n        const operatorToken = createMissingNode(\n          28 /* CommaToken */,\n          /*reportAtCurrentPosition*/\n          false\n        );\n        setTextRangePosWidth(operatorToken, invalidElement.pos, 0);\n        parseErrorAt(skipTrivia(sourceText, topBadPos), invalidElement.end, Diagnostics.JSX_expressions_must_have_one_parent_element);\n        return finishNode(factory2.createBinaryExpression(result, operatorToken, invalidElement), pos);\n      }\n    }\n    return result;\n  }\n  function parseJsxText() {\n    const pos = getNodePos();\n    const node = factory2.createJsxText(scanner2.getTokenValue(), currentToken === 13 /* JsxTextAllWhiteSpaces */);\n    currentToken = scanner2.scanJsxToken();\n    return finishNode(node, pos);\n  }\n  function parseJsxChild(openingTag, token2) {\n    switch (token2) {\n      case 1 /* EndOfFileToken */:\n        if (isJsxOpeningFragment(openingTag)) {\n          parseErrorAtRange(openingTag, Diagnostics.JSX_fragment_has_no_corresponding_closing_tag);\n        } else {\n          const tag = openingTag.tagName;\n          const start = Math.min(skipTrivia(sourceText, tag.pos), tag.end);\n          parseErrorAt(start, tag.end, Diagnostics.JSX_element_0_has_no_corresponding_closing_tag, getTextOfNodeFromSourceText(sourceText, openingTag.tagName));\n        }\n        return void 0;\n      case 31 /* LessThanSlashToken */:\n      case 7 /* ConflictMarkerTrivia */:\n        return void 0;\n      case 12 /* JsxText */:\n      case 13 /* JsxTextAllWhiteSpaces */:\n        return parseJsxText();\n      case 19 /* OpenBraceToken */:\n        return parseJsxExpression(\n          /*inExpressionContext*/\n          false\n        );\n      case 30 /* LessThanToken */:\n        return parseJsxElementOrSelfClosingElementOrFragment(\n          /*inExpressionContext*/\n          false,\n          /*topInvalidNodePosition*/\n          void 0,\n          openingTag\n        );\n      default:\n        return Debug.assertNever(token2);\n    }\n  }\n  function parseJsxChildren(openingTag) {\n    const list = [];\n    const listPos = getNodePos();\n    const saveParsingContext = parsingContext;\n    parsingContext |= 1 << 14 /* JsxChildren */;\n    while (true) {\n      const child = parseJsxChild(openingTag, currentToken = scanner2.reScanJsxToken());\n      if (!child) break;\n      list.push(child);\n      if (isJsxOpeningElement(openingTag) && (child == null ? void 0 : child.kind) === 285 /* JsxElement */ && !tagNamesAreEquivalent(child.openingElement.tagName, child.closingElement.tagName) && tagNamesAreEquivalent(openingTag.tagName, child.closingElement.tagName)) {\n        break;\n      }\n    }\n    parsingContext = saveParsingContext;\n    return createNodeArray(list, listPos);\n  }\n  function parseJsxAttributes() {\n    const pos = getNodePos();\n    return finishNode(factory2.createJsxAttributes(parseList(13 /* JsxAttributes */, parseJsxAttribute)), pos);\n  }\n  function parseJsxOpeningOrSelfClosingElementOrOpeningFragment(inExpressionContext) {\n    const pos = getNodePos();\n    parseExpected(30 /* LessThanToken */);\n    if (token() === 32 /* GreaterThanToken */) {\n      scanJsxText();\n      return finishNode(factory2.createJsxOpeningFragment(), pos);\n    }\n    const tagName = parseJsxElementName();\n    const typeArguments = (contextFlags & 524288 /* JavaScriptFile */) === 0 ? tryParseTypeArguments() : void 0;\n    const attributes = parseJsxAttributes();\n    let node;\n    if (token() === 32 /* GreaterThanToken */) {\n      scanJsxText();\n      node = factory2.createJsxOpeningElement(tagName, typeArguments, attributes);\n    } else {\n      parseExpected(44 /* SlashToken */);\n      if (parseExpected(\n        32 /* GreaterThanToken */,\n        /*diagnosticMessage*/\n        void 0,\n        /*shouldAdvance*/\n        false\n      )) {\n        if (inExpressionContext) {\n          nextToken();\n        } else {\n          scanJsxText();\n        }\n      }\n      node = factory2.createJsxSelfClosingElement(tagName, typeArguments, attributes);\n    }\n    return finishNode(node, pos);\n  }\n  function parseJsxElementName() {\n    const pos = getNodePos();\n    const initialExpression = parseJsxTagName();\n    if (isJsxNamespacedName(initialExpression)) {\n      return initialExpression;\n    }\n    let expression = initialExpression;\n    while (parseOptional(25 /* DotToken */)) {\n      expression = finishNode(factoryCreatePropertyAccessExpression(expression, parseRightSideOfDot(\n        /*allowIdentifierNames*/\n        true,\n        /*allowPrivateIdentifiers*/\n        false,\n        /*allowUnicodeEscapeSequenceInIdentifierName*/\n        false\n      )), pos);\n    }\n    return expression;\n  }\n  function parseJsxTagName() {\n    const pos = getNodePos();\n    scanJsxIdentifier();\n    const isThis2 = token() === 110 /* ThisKeyword */;\n    const tagName = parseIdentifierNameErrorOnUnicodeEscapeSequence();\n    if (parseOptional(59 /* ColonToken */)) {\n      scanJsxIdentifier();\n      return finishNode(factory2.createJsxNamespacedName(tagName, parseIdentifierNameErrorOnUnicodeEscapeSequence()), pos);\n    }\n    return isThis2 ? finishNode(factory2.createToken(110 /* ThisKeyword */), pos) : tagName;\n  }\n  function parseJsxExpression(inExpressionContext) {\n    const pos = getNodePos();\n    if (!parseExpected(19 /* OpenBraceToken */)) {\n      return void 0;\n    }\n    let dotDotDotToken;\n    let expression;\n    if (token() !== 20 /* CloseBraceToken */) {\n      if (!inExpressionContext) {\n        dotDotDotToken = parseOptionalToken(26 /* DotDotDotToken */);\n      }\n      expression = parseExpression();\n    }\n    if (inExpressionContext) {\n      parseExpected(20 /* CloseBraceToken */);\n    } else {\n      if (parseExpected(\n        20 /* CloseBraceToken */,\n        /*diagnosticMessage*/\n        void 0,\n        /*shouldAdvance*/\n        false\n      )) {\n        scanJsxText();\n      }\n    }\n    return finishNode(factory2.createJsxExpression(dotDotDotToken, expression), pos);\n  }\n  function parseJsxAttribute() {\n    if (token() === 19 /* OpenBraceToken */) {\n      return parseJsxSpreadAttribute();\n    }\n    const pos = getNodePos();\n    return finishNode(factory2.createJsxAttribute(parseJsxAttributeName(), parseJsxAttributeValue()), pos);\n  }\n  function parseJsxAttributeValue() {\n    if (token() === 64 /* EqualsToken */) {\n      if (scanJsxAttributeValue() === 11 /* StringLiteral */) {\n        return parseLiteralNode();\n      }\n      if (token() === 19 /* OpenBraceToken */) {\n        return parseJsxExpression(\n          /*inExpressionContext*/\n          true\n        );\n      }\n      if (token() === 30 /* LessThanToken */) {\n        return parseJsxElementOrSelfClosingElementOrFragment(\n          /*inExpressionContext*/\n          true\n        );\n      }\n      parseErrorAtCurrentToken(Diagnostics.or_JSX_element_expected);\n    }\n    return void 0;\n  }\n  function parseJsxAttributeName() {\n    const pos = getNodePos();\n    scanJsxIdentifier();\n    const attrName = parseIdentifierNameErrorOnUnicodeEscapeSequence();\n    if (parseOptional(59 /* ColonToken */)) {\n      scanJsxIdentifier();\n      return finishNode(factory2.createJsxNamespacedName(attrName, parseIdentifierNameErrorOnUnicodeEscapeSequence()), pos);\n    }\n    return attrName;\n  }\n  function parseJsxSpreadAttribute() {\n    const pos = getNodePos();\n    parseExpected(19 /* OpenBraceToken */);\n    parseExpected(26 /* DotDotDotToken */);\n    const expression = parseExpression();\n    parseExpected(20 /* CloseBraceToken */);\n    return finishNode(factory2.createJsxSpreadAttribute(expression), pos);\n  }\n  function parseJsxClosingElement(open, inExpressionContext) {\n    const pos = getNodePos();\n    parseExpected(31 /* LessThanSlashToken */);\n    const tagName = parseJsxElementName();\n    if (parseExpected(\n      32 /* GreaterThanToken */,\n      /*diagnosticMessage*/\n      void 0,\n      /*shouldAdvance*/\n      false\n    )) {\n      if (inExpressionContext || !tagNamesAreEquivalent(open.tagName, tagName)) {\n        nextToken();\n      } else {\n        scanJsxText();\n      }\n    }\n    return finishNode(factory2.createJsxClosingElement(tagName), pos);\n  }\n  function parseJsxClosingFragment(inExpressionContext) {\n    const pos = getNodePos();\n    parseExpected(31 /* LessThanSlashToken */);\n    if (parseExpected(\n      32 /* GreaterThanToken */,\n      Diagnostics.Expected_corresponding_closing_tag_for_JSX_fragment,\n      /*shouldAdvance*/\n      false\n    )) {\n      if (inExpressionContext) {\n        nextToken();\n      } else {\n        scanJsxText();\n      }\n    }\n    return finishNode(factory2.createJsxJsxClosingFragment(), pos);\n  }\n  function parseTypeAssertion() {\n    Debug.assert(languageVariant !== 1 /* JSX */, \"Type assertions should never be parsed in JSX; they should be parsed as comparisons or JSX elements/fragments.\");\n    const pos = getNodePos();\n    parseExpected(30 /* LessThanToken */);\n    const type = parseType();\n    parseExpected(32 /* GreaterThanToken */);\n    const expression = parseSimpleUnaryExpression();\n    return finishNode(factory2.createTypeAssertion(type, expression), pos);\n  }\n  function nextTokenIsIdentifierOrKeywordOrOpenBracketOrTemplate() {\n    nextToken();\n    return tokenIsIdentifierOrKeyword(token()) || token() === 23 /* OpenBracketToken */ || isTemplateStartOfTaggedTemplate();\n  }\n  function isStartOfOptionalPropertyOrElementAccessChain() {\n    return token() === 29 /* QuestionDotToken */ && lookAhead(nextTokenIsIdentifierOrKeywordOrOpenBracketOrTemplate);\n  }\n  function tryReparseOptionalChain(node) {\n    if (node.flags & 64 /* OptionalChain */) {\n      return true;\n    }\n    if (isNonNullExpression(node)) {\n      let expr = node.expression;\n      while (isNonNullExpression(expr) && !(expr.flags & 64 /* OptionalChain */)) {\n        expr = expr.expression;\n      }\n      if (expr.flags & 64 /* OptionalChain */) {\n        while (isNonNullExpression(node)) {\n          node.flags |= 64 /* OptionalChain */;\n          node = node.expression;\n        }\n        return true;\n      }\n    }\n    return false;\n  }\n  function parsePropertyAccessExpressionRest(pos, expression, questionDotToken) {\n    const name = parseRightSideOfDot(\n      /*allowIdentifierNames*/\n      true,\n      /*allowPrivateIdentifiers*/\n      true,\n      /*allowUnicodeEscapeSequenceInIdentifierName*/\n      true\n    );\n    const isOptionalChain2 = questionDotToken || tryReparseOptionalChain(expression);\n    const propertyAccess = isOptionalChain2 ? factoryCreatePropertyAccessChain(expression, questionDotToken, name) : factoryCreatePropertyAccessExpression(expression, name);\n    if (isOptionalChain2 && isPrivateIdentifier(propertyAccess.name)) {\n      parseErrorAtRange(propertyAccess.name, Diagnostics.An_optional_chain_cannot_contain_private_identifiers);\n    }\n    if (isExpressionWithTypeArguments(expression) && expression.typeArguments) {\n      const pos2 = expression.typeArguments.pos - 1;\n      const end = skipTrivia(sourceText, expression.typeArguments.end) + 1;\n      parseErrorAt(pos2, end, Diagnostics.An_instantiation_expression_cannot_be_followed_by_a_property_access);\n    }\n    return finishNode(propertyAccess, pos);\n  }\n  function parseElementAccessExpressionRest(pos, expression, questionDotToken) {\n    let argumentExpression;\n    if (token() === 24 /* CloseBracketToken */) {\n      argumentExpression = createMissingNode(\n        80 /* Identifier */,\n        /*reportAtCurrentPosition*/\n        true,\n        Diagnostics.An_element_access_expression_should_take_an_argument\n      );\n    } else {\n      const argument = allowInAnd(parseExpression);\n      if (isStringOrNumericLiteralLike(argument)) {\n        argument.text = internIdentifier(argument.text);\n      }\n      argumentExpression = argument;\n    }\n    parseExpected(24 /* CloseBracketToken */);\n    const indexedAccess = questionDotToken || tryReparseOptionalChain(expression) ? factoryCreateElementAccessChain(expression, questionDotToken, argumentExpression) : factoryCreateElementAccessExpression(expression, argumentExpression);\n    return finishNode(indexedAccess, pos);\n  }\n  function parseMemberExpressionRest(pos, expression, allowOptionalChain) {\n    while (true) {\n      let questionDotToken;\n      let isPropertyAccess = false;\n      if (allowOptionalChain && isStartOfOptionalPropertyOrElementAccessChain()) {\n        questionDotToken = parseExpectedToken(29 /* QuestionDotToken */);\n        isPropertyAccess = tokenIsIdentifierOrKeyword(token());\n      } else {\n        isPropertyAccess = parseOptional(25 /* DotToken */);\n      }\n      if (isPropertyAccess) {\n        expression = parsePropertyAccessExpressionRest(pos, expression, questionDotToken);\n        continue;\n      }\n      if ((questionDotToken || !inDecoratorContext()) && parseOptional(23 /* OpenBracketToken */)) {\n        expression = parseElementAccessExpressionRest(pos, expression, questionDotToken);\n        continue;\n      }\n      if (isTemplateStartOfTaggedTemplate()) {\n        expression = !questionDotToken && expression.kind === 234 /* ExpressionWithTypeArguments */ ? parseTaggedTemplateRest(pos, expression.expression, questionDotToken, expression.typeArguments) : parseTaggedTemplateRest(\n          pos,\n          expression,\n          questionDotToken,\n          /*typeArguments*/\n          void 0\n        );\n        continue;\n      }\n      if (!questionDotToken) {\n        if (token() === 54 /* ExclamationToken */ && !scanner2.hasPrecedingLineBreak()) {\n          nextToken();\n          expression = finishNode(factory2.createNonNullExpression(expression), pos);\n          continue;\n        }\n        const typeArguments = tryParse(parseTypeArgumentsInExpression);\n        if (typeArguments) {\n          expression = finishNode(factory2.createExpressionWithTypeArguments(expression, typeArguments), pos);\n          continue;\n        }\n      }\n      return expression;\n    }\n  }\n  function isTemplateStartOfTaggedTemplate() {\n    return token() === 15 /* NoSubstitutionTemplateLiteral */ || token() === 16 /* TemplateHead */;\n  }\n  function parseTaggedTemplateRest(pos, tag, questionDotToken, typeArguments) {\n    const tagExpression = factory2.createTaggedTemplateExpression(\n      tag,\n      typeArguments,\n      token() === 15 /* NoSubstitutionTemplateLiteral */ ? (reScanTemplateToken(\n        /*isTaggedTemplate*/\n        true\n      ), parseLiteralNode()) : parseTemplateExpression(\n        /*isTaggedTemplate*/\n        true\n      )\n    );\n    if (questionDotToken || tag.flags & 64 /* OptionalChain */) {\n      tagExpression.flags |= 64 /* OptionalChain */;\n    }\n    tagExpression.questionDotToken = questionDotToken;\n    return finishNode(tagExpression, pos);\n  }\n  function parseCallExpressionRest(pos, expression) {\n    while (true) {\n      expression = parseMemberExpressionRest(\n        pos,\n        expression,\n        /*allowOptionalChain*/\n        true\n      );\n      let typeArguments;\n      const questionDotToken = parseOptionalToken(29 /* QuestionDotToken */);\n      if (questionDotToken) {\n        typeArguments = tryParse(parseTypeArgumentsInExpression);\n        if (isTemplateStartOfTaggedTemplate()) {\n          expression = parseTaggedTemplateRest(pos, expression, questionDotToken, typeArguments);\n          continue;\n        }\n      }\n      if (typeArguments || token() === 21 /* OpenParenToken */) {\n        if (!questionDotToken && expression.kind === 234 /* ExpressionWithTypeArguments */) {\n          typeArguments = expression.typeArguments;\n          expression = expression.expression;\n        }\n        const argumentList = parseArgumentList();\n        const callExpr = questionDotToken || tryReparseOptionalChain(expression) ? factoryCreateCallChain(expression, questionDotToken, typeArguments, argumentList) : factoryCreateCallExpression(expression, typeArguments, argumentList);\n        expression = finishNode(callExpr, pos);\n        continue;\n      }\n      if (questionDotToken) {\n        const name = createMissingNode(\n          80 /* Identifier */,\n          /*reportAtCurrentPosition*/\n          false,\n          Diagnostics.Identifier_expected\n        );\n        expression = finishNode(factoryCreatePropertyAccessChain(expression, questionDotToken, name), pos);\n      }\n      break;\n    }\n    return expression;\n  }\n  function parseArgumentList() {\n    parseExpected(21 /* OpenParenToken */);\n    const result = parseDelimitedList(11 /* ArgumentExpressions */, parseArgumentExpression);\n    parseExpected(22 /* CloseParenToken */);\n    return result;\n  }\n  function parseTypeArgumentsInExpression() {\n    if ((contextFlags & 524288 /* JavaScriptFile */) !== 0) {\n      return void 0;\n    }\n    if (reScanLessThanToken() !== 30 /* LessThanToken */) {\n      return void 0;\n    }\n    nextToken();\n    const typeArguments = parseDelimitedList(20 /* TypeArguments */, parseType);\n    if (reScanGreaterToken() !== 32 /* GreaterThanToken */) {\n      return void 0;\n    }\n    nextToken();\n    return typeArguments && canFollowTypeArgumentsInExpression() ? typeArguments : void 0;\n  }\n  function canFollowTypeArgumentsInExpression() {\n    switch (token()) {\n      // These tokens can follow a type argument list in a call expression.\n      case 21 /* OpenParenToken */:\n      // foo<x>(\n      case 15 /* NoSubstitutionTemplateLiteral */:\n      // foo<T> `...`\n      case 16 /* TemplateHead */:\n        return true;\n      // A type argument list followed by `<` never makes sense, and a type argument list followed\n      // by `>` is ambiguous with a (re-scanned) `>>` operator, so we disqualify both. Also, in\n      // this context, `+` and `-` are unary operators, not binary operators.\n      case 30 /* LessThanToken */:\n      case 32 /* GreaterThanToken */:\n      case 40 /* PlusToken */:\n      case 41 /* MinusToken */:\n        return false;\n    }\n    return scanner2.hasPrecedingLineBreak() || isBinaryOperator2() || !isStartOfExpression();\n  }\n  function parsePrimaryExpression() {\n    switch (token()) {\n      case 15 /* NoSubstitutionTemplateLiteral */:\n        if (scanner2.getTokenFlags() & 26656 /* IsInvalid */) {\n          reScanTemplateToken(\n            /*isTaggedTemplate*/\n            false\n          );\n        }\n      // falls through\n      case 9 /* NumericLiteral */:\n      case 10 /* BigIntLiteral */:\n      case 11 /* StringLiteral */:\n        return parseLiteralNode();\n      case 110 /* ThisKeyword */:\n      case 108 /* SuperKeyword */:\n      case 106 /* NullKeyword */:\n      case 112 /* TrueKeyword */:\n      case 97 /* FalseKeyword */:\n        return parseTokenNode();\n      case 21 /* OpenParenToken */:\n        return parseParenthesizedExpression();\n      case 23 /* OpenBracketToken */:\n        return parseArrayLiteralExpression();\n      case 19 /* OpenBraceToken */:\n        return parseObjectLiteralExpression();\n      case 134 /* AsyncKeyword */:\n        if (!lookAhead(nextTokenIsFunctionKeywordOnSameLine)) {\n          break;\n        }\n        return parseFunctionExpression();\n      case 60 /* AtToken */:\n        return parseDecoratedExpression();\n      case 86 /* ClassKeyword */:\n        return parseClassExpression();\n      case 100 /* FunctionKeyword */:\n        return parseFunctionExpression();\n      case 105 /* NewKeyword */:\n        return parseNewExpressionOrNewDotTarget();\n      case 44 /* SlashToken */:\n      case 69 /* SlashEqualsToken */:\n        if (reScanSlashToken() === 14 /* RegularExpressionLiteral */) {\n          return parseLiteralNode();\n        }\n        break;\n      case 16 /* TemplateHead */:\n        return parseTemplateExpression(\n          /*isTaggedTemplate*/\n          false\n        );\n      case 81 /* PrivateIdentifier */:\n        return parsePrivateIdentifier();\n    }\n    return parseIdentifier(Diagnostics.Expression_expected);\n  }\n  function parseParenthesizedExpression() {\n    const pos = getNodePos();\n    const hasJSDoc = hasPrecedingJSDocComment();\n    parseExpected(21 /* OpenParenToken */);\n    const expression = allowInAnd(parseExpression);\n    parseExpected(22 /* CloseParenToken */);\n    return withJSDoc(finishNode(factoryCreateParenthesizedExpression(expression), pos), hasJSDoc);\n  }\n  function parseSpreadElement() {\n    const pos = getNodePos();\n    parseExpected(26 /* DotDotDotToken */);\n    const expression = parseAssignmentExpressionOrHigher(\n      /*allowReturnTypeInArrowFunction*/\n      true\n    );\n    return finishNode(factory2.createSpreadElement(expression), pos);\n  }\n  function parseArgumentOrArrayLiteralElement() {\n    return token() === 26 /* DotDotDotToken */ ? parseSpreadElement() : token() === 28 /* CommaToken */ ? finishNode(factory2.createOmittedExpression(), getNodePos()) : parseAssignmentExpressionOrHigher(\n      /*allowReturnTypeInArrowFunction*/\n      true\n    );\n  }\n  function parseArgumentExpression() {\n    return doOutsideOfContext(disallowInAndDecoratorContext, parseArgumentOrArrayLiteralElement);\n  }\n  function parseArrayLiteralExpression() {\n    const pos = getNodePos();\n    const openBracketPosition = scanner2.getTokenStart();\n    const openBracketParsed = parseExpected(23 /* OpenBracketToken */);\n    const multiLine = scanner2.hasPrecedingLineBreak();\n    const elements = parseDelimitedList(15 /* ArrayLiteralMembers */, parseArgumentOrArrayLiteralElement);\n    parseExpectedMatchingBrackets(23 /* OpenBracketToken */, 24 /* CloseBracketToken */, openBracketParsed, openBracketPosition);\n    return finishNode(factoryCreateArrayLiteralExpression(elements, multiLine), pos);\n  }\n  function parseObjectLiteralElement() {\n    const pos = getNodePos();\n    const hasJSDoc = hasPrecedingJSDocComment();\n    if (parseOptionalToken(26 /* DotDotDotToken */)) {\n      const expression = parseAssignmentExpressionOrHigher(\n        /*allowReturnTypeInArrowFunction*/\n        true\n      );\n      return withJSDoc(finishNode(factory2.createSpreadAssignment(expression), pos), hasJSDoc);\n    }\n    const modifiers = parseModifiers(\n      /*allowDecorators*/\n      true\n    );\n    if (parseContextualModifier(139 /* GetKeyword */)) {\n      return parseAccessorDeclaration(pos, hasJSDoc, modifiers, 178 /* GetAccessor */, 0 /* None */);\n    }\n    if (parseContextualModifier(153 /* SetKeyword */)) {\n      return parseAccessorDeclaration(pos, hasJSDoc, modifiers, 179 /* SetAccessor */, 0 /* None */);\n    }\n    const asteriskToken = parseOptionalToken(42 /* AsteriskToken */);\n    const tokenIsIdentifier = isIdentifier2();\n    const name = parsePropertyName();\n    const questionToken = parseOptionalToken(58 /* QuestionToken */);\n    const exclamationToken = parseOptionalToken(54 /* ExclamationToken */);\n    if (asteriskToken || token() === 21 /* OpenParenToken */ || token() === 30 /* LessThanToken */) {\n      return parseMethodDeclaration(pos, hasJSDoc, modifiers, asteriskToken, name, questionToken, exclamationToken);\n    }\n    let node;\n    const isShorthandPropertyAssignment2 = tokenIsIdentifier && token() !== 59 /* ColonToken */;\n    if (isShorthandPropertyAssignment2) {\n      const equalsToken = parseOptionalToken(64 /* EqualsToken */);\n      const objectAssignmentInitializer = equalsToken ? allowInAnd(() => parseAssignmentExpressionOrHigher(\n        /*allowReturnTypeInArrowFunction*/\n        true\n      )) : void 0;\n      node = factory2.createShorthandPropertyAssignment(name, objectAssignmentInitializer);\n      node.equalsToken = equalsToken;\n    } else {\n      parseExpected(59 /* ColonToken */);\n      const initializer = allowInAnd(() => parseAssignmentExpressionOrHigher(\n        /*allowReturnTypeInArrowFunction*/\n        true\n      ));\n      node = factory2.createPropertyAssignment(name, initializer);\n    }\n    node.modifiers = modifiers;\n    node.questionToken = questionToken;\n    node.exclamationToken = exclamationToken;\n    return withJSDoc(finishNode(node, pos), hasJSDoc);\n  }\n  function parseObjectLiteralExpression() {\n    const pos = getNodePos();\n    const openBracePosition = scanner2.getTokenStart();\n    const openBraceParsed = parseExpected(19 /* OpenBraceToken */);\n    const multiLine = scanner2.hasPrecedingLineBreak();\n    const properties = parseDelimitedList(\n      12 /* ObjectLiteralMembers */,\n      parseObjectLiteralElement,\n      /*considerSemicolonAsDelimiter*/\n      true\n    );\n    parseExpectedMatchingBrackets(19 /* OpenBraceToken */, 20 /* CloseBraceToken */, openBraceParsed, openBracePosition);\n    return finishNode(factoryCreateObjectLiteralExpression(properties, multiLine), pos);\n  }\n  function parseFunctionExpression() {\n    const savedDecoratorContext = inDecoratorContext();\n    setDecoratorContext(\n      /*val*/\n      false\n    );\n    const pos = getNodePos();\n    const hasJSDoc = hasPrecedingJSDocComment();\n    const modifiers = parseModifiers(\n      /*allowDecorators*/\n      false\n    );\n    parseExpected(100 /* FunctionKeyword */);\n    const asteriskToken = parseOptionalToken(42 /* AsteriskToken */);\n    const isGenerator = asteriskToken ? 1 /* Yield */ : 0 /* None */;\n    const isAsync = some(modifiers, isAsyncModifier) ? 2 /* Await */ : 0 /* None */;\n    const name = isGenerator && isAsync ? doInYieldAndAwaitContext(parseOptionalBindingIdentifier) : isGenerator ? doInYieldContext(parseOptionalBindingIdentifier) : isAsync ? doInAwaitContext(parseOptionalBindingIdentifier) : parseOptionalBindingIdentifier();\n    const typeParameters = parseTypeParameters();\n    const parameters = parseParameters(isGenerator | isAsync);\n    const type = parseReturnType(\n      59 /* ColonToken */,\n      /*isType*/\n      false\n    );\n    const body = parseFunctionBlock(isGenerator | isAsync);\n    setDecoratorContext(savedDecoratorContext);\n    const node = factory2.createFunctionExpression(modifiers, asteriskToken, name, typeParameters, parameters, type, body);\n    return withJSDoc(finishNode(node, pos), hasJSDoc);\n  }\n  function parseOptionalBindingIdentifier() {\n    return isBindingIdentifier() ? parseBindingIdentifier() : void 0;\n  }\n  function parseNewExpressionOrNewDotTarget() {\n    const pos = getNodePos();\n    parseExpected(105 /* NewKeyword */);\n    if (parseOptional(25 /* DotToken */)) {\n      const name = parseIdentifierName();\n      return finishNode(factory2.createMetaProperty(105 /* NewKeyword */, name), pos);\n    }\n    const expressionPos = getNodePos();\n    let expression = parseMemberExpressionRest(\n      expressionPos,\n      parsePrimaryExpression(),\n      /*allowOptionalChain*/\n      false\n    );\n    let typeArguments;\n    if (expression.kind === 234 /* ExpressionWithTypeArguments */) {\n      typeArguments = expression.typeArguments;\n      expression = expression.expression;\n    }\n    if (token() === 29 /* QuestionDotToken */) {\n      parseErrorAtCurrentToken(Diagnostics.Invalid_optional_chain_from_new_expression_Did_you_mean_to_call_0, getTextOfNodeFromSourceText(sourceText, expression));\n    }\n    const argumentList = token() === 21 /* OpenParenToken */ ? parseArgumentList() : void 0;\n    return finishNode(factoryCreateNewExpression(expression, typeArguments, argumentList), pos);\n  }\n  function parseBlock(ignoreMissingOpenBrace, diagnosticMessage) {\n    const pos = getNodePos();\n    const hasJSDoc = hasPrecedingJSDocComment();\n    const openBracePosition = scanner2.getTokenStart();\n    const openBraceParsed = parseExpected(19 /* OpenBraceToken */, diagnosticMessage);\n    if (openBraceParsed || ignoreMissingOpenBrace) {\n      const multiLine = scanner2.hasPrecedingLineBreak();\n      const statements = parseList(1 /* BlockStatements */, parseStatement);\n      parseExpectedMatchingBrackets(19 /* OpenBraceToken */, 20 /* CloseBraceToken */, openBraceParsed, openBracePosition);\n      const result = withJSDoc(finishNode(factoryCreateBlock(statements, multiLine), pos), hasJSDoc);\n      if (token() === 64 /* EqualsToken */) {\n        parseErrorAtCurrentToken(Diagnostics.Declaration_or_statement_expected_This_follows_a_block_of_statements_so_if_you_intended_to_write_a_destructuring_assignment_you_might_need_to_wrap_the_whole_assignment_in_parentheses);\n        nextToken();\n      }\n      return result;\n    } else {\n      const statements = createMissingList();\n      return withJSDoc(finishNode(factoryCreateBlock(\n        statements,\n        /*multiLine*/\n        void 0\n      ), pos), hasJSDoc);\n    }\n  }\n  function parseFunctionBlock(flags, diagnosticMessage) {\n    const savedYieldContext = inYieldContext();\n    setYieldContext(!!(flags & 1 /* Yield */));\n    const savedAwaitContext = inAwaitContext();\n    setAwaitContext(!!(flags & 2 /* Await */));\n    const savedTopLevel = topLevel;\n    topLevel = false;\n    const saveDecoratorContext = inDecoratorContext();\n    if (saveDecoratorContext) {\n      setDecoratorContext(\n        /*val*/\n        false\n      );\n    }\n    const block = parseBlock(!!(flags & 16 /* IgnoreMissingOpenBrace */), diagnosticMessage);\n    if (saveDecoratorContext) {\n      setDecoratorContext(\n        /*val*/\n        true\n      );\n    }\n    topLevel = savedTopLevel;\n    setYieldContext(savedYieldContext);\n    setAwaitContext(savedAwaitContext);\n    return block;\n  }\n  function parseEmptyStatement() {\n    const pos = getNodePos();\n    const hasJSDoc = hasPrecedingJSDocComment();\n    parseExpected(27 /* SemicolonToken */);\n    return withJSDoc(finishNode(factory2.createEmptyStatement(), pos), hasJSDoc);\n  }\n  function parseIfStatement() {\n    const pos = getNodePos();\n    const hasJSDoc = hasPrecedingJSDocComment();\n    parseExpected(101 /* IfKeyword */);\n    const openParenPosition = scanner2.getTokenStart();\n    const openParenParsed = parseExpected(21 /* OpenParenToken */);\n    const expression = allowInAnd(parseExpression);\n    parseExpectedMatchingBrackets(21 /* OpenParenToken */, 22 /* CloseParenToken */, openParenParsed, openParenPosition);\n    const thenStatement = parseStatement();\n    const elseStatement = parseOptional(93 /* ElseKeyword */) ? parseStatement() : void 0;\n    return withJSDoc(finishNode(factoryCreateIfStatement(expression, thenStatement, elseStatement), pos), hasJSDoc);\n  }\n  function parseDoStatement() {\n    const pos = getNodePos();\n    const hasJSDoc = hasPrecedingJSDocComment();\n    parseExpected(92 /* DoKeyword */);\n    const statement = parseStatement();\n    parseExpected(117 /* WhileKeyword */);\n    const openParenPosition = scanner2.getTokenStart();\n    const openParenParsed = parseExpected(21 /* OpenParenToken */);\n    const expression = allowInAnd(parseExpression);\n    parseExpectedMatchingBrackets(21 /* OpenParenToken */, 22 /* CloseParenToken */, openParenParsed, openParenPosition);\n    parseOptional(27 /* SemicolonToken */);\n    return withJSDoc(finishNode(factory2.createDoStatement(statement, expression), pos), hasJSDoc);\n  }\n  function parseWhileStatement() {\n    const pos = getNodePos();\n    const hasJSDoc = hasPrecedingJSDocComment();\n    parseExpected(117 /* WhileKeyword */);\n    const openParenPosition = scanner2.getTokenStart();\n    const openParenParsed = parseExpected(21 /* OpenParenToken */);\n    const expression = allowInAnd(parseExpression);\n    parseExpectedMatchingBrackets(21 /* OpenParenToken */, 22 /* CloseParenToken */, openParenParsed, openParenPosition);\n    const statement = parseStatement();\n    return withJSDoc(finishNode(factoryCreateWhileStatement(expression, statement), pos), hasJSDoc);\n  }\n  function parseForOrForInOrForOfStatement() {\n    const pos = getNodePos();\n    const hasJSDoc = hasPrecedingJSDocComment();\n    parseExpected(99 /* ForKeyword */);\n    const awaitToken = parseOptionalToken(135 /* AwaitKeyword */);\n    parseExpected(21 /* OpenParenToken */);\n    let initializer;\n    if (token() !== 27 /* SemicolonToken */) {\n      if (token() === 115 /* VarKeyword */ || token() === 121 /* LetKeyword */ || token() === 87 /* ConstKeyword */ || token() === 160 /* UsingKeyword */ && lookAhead(nextTokenIsBindingIdentifierOrStartOfDestructuringOnSameLineDisallowOf) || // this one is meant to allow of\n      token() === 135 /* AwaitKeyword */ && lookAhead(nextTokenIsUsingKeywordThenBindingIdentifierOrStartOfObjectDestructuringOnSameLine)) {\n        initializer = parseVariableDeclarationList(\n          /*inForStatementInitializer*/\n          true\n        );\n      } else {\n        initializer = disallowInAnd(parseExpression);\n      }\n    }\n    let node;\n    if (awaitToken ? parseExpected(165 /* OfKeyword */) : parseOptional(165 /* OfKeyword */)) {\n      const expression = allowInAnd(() => parseAssignmentExpressionOrHigher(\n        /*allowReturnTypeInArrowFunction*/\n        true\n      ));\n      parseExpected(22 /* CloseParenToken */);\n      node = factoryCreateForOfStatement(awaitToken, initializer, expression, parseStatement());\n    } else if (parseOptional(103 /* InKeyword */)) {\n      const expression = allowInAnd(parseExpression);\n      parseExpected(22 /* CloseParenToken */);\n      node = factory2.createForInStatement(initializer, expression, parseStatement());\n    } else {\n      parseExpected(27 /* SemicolonToken */);\n      const condition = token() !== 27 /* SemicolonToken */ && token() !== 22 /* CloseParenToken */ ? allowInAnd(parseExpression) : void 0;\n      parseExpected(27 /* SemicolonToken */);\n      const incrementor = token() !== 22 /* CloseParenToken */ ? allowInAnd(parseExpression) : void 0;\n      parseExpected(22 /* CloseParenToken */);\n      node = factoryCreateForStatement(initializer, condition, incrementor, parseStatement());\n    }\n    return withJSDoc(finishNode(node, pos), hasJSDoc);\n  }\n  function parseBreakOrContinueStatement(kind) {\n    const pos = getNodePos();\n    const hasJSDoc = hasPrecedingJSDocComment();\n    parseExpected(kind === 253 /* BreakStatement */ ? 83 /* BreakKeyword */ : 88 /* ContinueKeyword */);\n    const label = canParseSemicolon() ? void 0 : parseIdentifier();\n    parseSemicolon();\n    const node = kind === 253 /* BreakStatement */ ? factory2.createBreakStatement(label) : factory2.createContinueStatement(label);\n    return withJSDoc(finishNode(node, pos), hasJSDoc);\n  }\n  function parseReturnStatement() {\n    const pos = getNodePos();\n    const hasJSDoc = hasPrecedingJSDocComment();\n    parseExpected(107 /* ReturnKeyword */);\n    const expression = canParseSemicolon() ? void 0 : allowInAnd(parseExpression);\n    parseSemicolon();\n    return withJSDoc(finishNode(factory2.createReturnStatement(expression), pos), hasJSDoc);\n  }\n  function parseWithStatement() {\n    const pos = getNodePos();\n    const hasJSDoc = hasPrecedingJSDocComment();\n    parseExpected(118 /* WithKeyword */);\n    const openParenPosition = scanner2.getTokenStart();\n    const openParenParsed = parseExpected(21 /* OpenParenToken */);\n    const expression = allowInAnd(parseExpression);\n    parseExpectedMatchingBrackets(21 /* OpenParenToken */, 22 /* CloseParenToken */, openParenParsed, openParenPosition);\n    const statement = doInsideOfContext(67108864 /* InWithStatement */, parseStatement);\n    return withJSDoc(finishNode(factory2.createWithStatement(expression, statement), pos), hasJSDoc);\n  }\n  function parseCaseClause() {\n    const pos = getNodePos();\n    const hasJSDoc = hasPrecedingJSDocComment();\n    parseExpected(84 /* CaseKeyword */);\n    const expression = allowInAnd(parseExpression);\n    parseExpected(59 /* ColonToken */);\n    const statements = parseList(3 /* SwitchClauseStatements */, parseStatement);\n    return withJSDoc(finishNode(factory2.createCaseClause(expression, statements), pos), hasJSDoc);\n  }\n  function parseDefaultClause() {\n    const pos = getNodePos();\n    parseExpected(90 /* DefaultKeyword */);\n    parseExpected(59 /* ColonToken */);\n    const statements = parseList(3 /* SwitchClauseStatements */, parseStatement);\n    return finishNode(factory2.createDefaultClause(statements), pos);\n  }\n  function parseCaseOrDefaultClause() {\n    return token() === 84 /* CaseKeyword */ ? parseCaseClause() : parseDefaultClause();\n  }\n  function parseCaseBlock() {\n    const pos = getNodePos();\n    parseExpected(19 /* OpenBraceToken */);\n    const clauses = parseList(2 /* SwitchClauses */, parseCaseOrDefaultClause);\n    parseExpected(20 /* CloseBraceToken */);\n    return finishNode(factory2.createCaseBlock(clauses), pos);\n  }\n  function parseSwitchStatement() {\n    const pos = getNodePos();\n    const hasJSDoc = hasPrecedingJSDocComment();\n    parseExpected(109 /* SwitchKeyword */);\n    parseExpected(21 /* OpenParenToken */);\n    const expression = allowInAnd(parseExpression);\n    parseExpected(22 /* CloseParenToken */);\n    const caseBlock = parseCaseBlock();\n    return withJSDoc(finishNode(factory2.createSwitchStatement(expression, caseBlock), pos), hasJSDoc);\n  }\n  function parseThrowStatement() {\n    const pos = getNodePos();\n    const hasJSDoc = hasPrecedingJSDocComment();\n    parseExpected(111 /* ThrowKeyword */);\n    let expression = scanner2.hasPrecedingLineBreak() ? void 0 : allowInAnd(parseExpression);\n    if (expression === void 0) {\n      identifierCount++;\n      expression = finishNode(factoryCreateIdentifier(\"\"), getNodePos());\n    }\n    if (!tryParseSemicolon()) {\n      parseErrorForMissingSemicolonAfter(expression);\n    }\n    return withJSDoc(finishNode(factory2.createThrowStatement(expression), pos), hasJSDoc);\n  }\n  function parseTryStatement() {\n    const pos = getNodePos();\n    const hasJSDoc = hasPrecedingJSDocComment();\n    parseExpected(113 /* TryKeyword */);\n    const tryBlock = parseBlock(\n      /*ignoreMissingOpenBrace*/\n      false\n    );\n    const catchClause = token() === 85 /* CatchKeyword */ ? parseCatchClause() : void 0;\n    let finallyBlock;\n    if (!catchClause || token() === 98 /* FinallyKeyword */) {\n      parseExpected(98 /* FinallyKeyword */, Diagnostics.catch_or_finally_expected);\n      finallyBlock = parseBlock(\n        /*ignoreMissingOpenBrace*/\n        false\n      );\n    }\n    return withJSDoc(finishNode(factory2.createTryStatement(tryBlock, catchClause, finallyBlock), pos), hasJSDoc);\n  }\n  function parseCatchClause() {\n    const pos = getNodePos();\n    parseExpected(85 /* CatchKeyword */);\n    let variableDeclaration;\n    if (parseOptional(21 /* OpenParenToken */)) {\n      variableDeclaration = parseVariableDeclaration();\n      parseExpected(22 /* CloseParenToken */);\n    } else {\n      variableDeclaration = void 0;\n    }\n    const block = parseBlock(\n      /*ignoreMissingOpenBrace*/\n      false\n    );\n    return finishNode(factory2.createCatchClause(variableDeclaration, block), pos);\n  }\n  function parseDebuggerStatement() {\n    const pos = getNodePos();\n    const hasJSDoc = hasPrecedingJSDocComment();\n    parseExpected(89 /* DebuggerKeyword */);\n    parseSemicolon();\n    return withJSDoc(finishNode(factory2.createDebuggerStatement(), pos), hasJSDoc);\n  }\n  function parseExpressionOrLabeledStatement() {\n    const pos = getNodePos();\n    let hasJSDoc = hasPrecedingJSDocComment();\n    let node;\n    const hasParen = token() === 21 /* OpenParenToken */;\n    const expression = allowInAnd(parseExpression);\n    if (isIdentifier(expression) && parseOptional(59 /* ColonToken */)) {\n      node = factory2.createLabeledStatement(expression, parseStatement());\n    } else {\n      if (!tryParseSemicolon()) {\n        parseErrorForMissingSemicolonAfter(expression);\n      }\n      node = factoryCreateExpressionStatement(expression);\n      if (hasParen) {\n        hasJSDoc = false;\n      }\n    }\n    return withJSDoc(finishNode(node, pos), hasJSDoc);\n  }\n  function nextTokenIsIdentifierOrKeywordOnSameLine() {\n    nextToken();\n    return tokenIsIdentifierOrKeyword(token()) && !scanner2.hasPrecedingLineBreak();\n  }\n  function nextTokenIsClassKeywordOnSameLine() {\n    nextToken();\n    return token() === 86 /* ClassKeyword */ && !scanner2.hasPrecedingLineBreak();\n  }\n  function nextTokenIsFunctionKeywordOnSameLine() {\n    nextToken();\n    return token() === 100 /* FunctionKeyword */ && !scanner2.hasPrecedingLineBreak();\n  }\n  function nextTokenIsIdentifierOrKeywordOrLiteralOnSameLine() {\n    nextToken();\n    return (tokenIsIdentifierOrKeyword(token()) || token() === 9 /* NumericLiteral */ || token() === 10 /* BigIntLiteral */ || token() === 11 /* StringLiteral */) && !scanner2.hasPrecedingLineBreak();\n  }\n  function isDeclaration2() {\n    while (true) {\n      switch (token()) {\n        case 115 /* VarKeyword */:\n        case 121 /* LetKeyword */:\n        case 87 /* ConstKeyword */:\n        case 100 /* FunctionKeyword */:\n        case 86 /* ClassKeyword */:\n        case 94 /* EnumKeyword */:\n          return true;\n        case 160 /* UsingKeyword */:\n          return isUsingDeclaration();\n        case 135 /* AwaitKeyword */:\n          return isAwaitUsingDeclaration();\n        // 'declare', 'module', 'namespace', 'interface'* and 'type' are all legal JavaScript identifiers;\n        // however, an identifier cannot be followed by another identifier on the same line. This is what we\n        // count on to parse out the respective declarations. For instance, we exploit this to say that\n        //\n        //    namespace n\n        //\n        // can be none other than the beginning of a namespace declaration, but need to respect that JavaScript sees\n        //\n        //    namespace\n        //    n\n        //\n        // as the identifier 'namespace' on one line followed by the identifier 'n' on another.\n        // We need to look one token ahead to see if it permissible to try parsing a declaration.\n        //\n        // *Note*: 'interface' is actually a strict mode reserved word. So while\n        //\n        //   \"use strict\"\n        //   interface\n        //   I {}\n        //\n        // could be legal, it would add complexity for very little gain.\n        case 120 /* InterfaceKeyword */:\n        case 156 /* TypeKeyword */:\n        case 166 /* DeferKeyword */:\n          return nextTokenIsIdentifierOnSameLine();\n        case 144 /* ModuleKeyword */:\n        case 145 /* NamespaceKeyword */:\n          return nextTokenIsIdentifierOrStringLiteralOnSameLine();\n        case 128 /* AbstractKeyword */:\n        case 129 /* AccessorKeyword */:\n        case 134 /* AsyncKeyword */:\n        case 138 /* DeclareKeyword */:\n        case 123 /* PrivateKeyword */:\n        case 124 /* ProtectedKeyword */:\n        case 125 /* PublicKeyword */:\n        case 148 /* ReadonlyKeyword */:\n          const previousToken = token();\n          nextToken();\n          if (scanner2.hasPrecedingLineBreak()) {\n            return false;\n          }\n          if (previousToken === 138 /* DeclareKeyword */ && token() === 156 /* TypeKeyword */) {\n            return true;\n          }\n          continue;\n        case 162 /* GlobalKeyword */:\n          nextToken();\n          return token() === 19 /* OpenBraceToken */ || token() === 80 /* Identifier */ || token() === 95 /* ExportKeyword */;\n        case 102 /* ImportKeyword */:\n          nextToken();\n          return token() === 166 /* DeferKeyword */ || token() === 11 /* StringLiteral */ || token() === 42 /* AsteriskToken */ || token() === 19 /* OpenBraceToken */ || tokenIsIdentifierOrKeyword(token());\n        case 95 /* ExportKeyword */:\n          let currentToken2 = nextToken();\n          if (currentToken2 === 156 /* TypeKeyword */) {\n            currentToken2 = lookAhead(nextToken);\n          }\n          if (currentToken2 === 64 /* EqualsToken */ || currentToken2 === 42 /* AsteriskToken */ || currentToken2 === 19 /* OpenBraceToken */ || currentToken2 === 90 /* DefaultKeyword */ || currentToken2 === 130 /* AsKeyword */ || currentToken2 === 60 /* AtToken */) {\n            return true;\n          }\n          continue;\n        case 126 /* StaticKeyword */:\n          nextToken();\n          continue;\n        default:\n          return false;\n      }\n    }\n  }\n  function isStartOfDeclaration() {\n    return lookAhead(isDeclaration2);\n  }\n  function isStartOfStatement() {\n    switch (token()) {\n      case 60 /* AtToken */:\n      case 27 /* SemicolonToken */:\n      case 19 /* OpenBraceToken */:\n      case 115 /* VarKeyword */:\n      case 121 /* LetKeyword */:\n      case 160 /* UsingKeyword */:\n      case 100 /* FunctionKeyword */:\n      case 86 /* ClassKeyword */:\n      case 94 /* EnumKeyword */:\n      case 101 /* IfKeyword */:\n      case 92 /* DoKeyword */:\n      case 117 /* WhileKeyword */:\n      case 99 /* ForKeyword */:\n      case 88 /* ContinueKeyword */:\n      case 83 /* BreakKeyword */:\n      case 107 /* ReturnKeyword */:\n      case 118 /* WithKeyword */:\n      case 109 /* SwitchKeyword */:\n      case 111 /* ThrowKeyword */:\n      case 113 /* TryKeyword */:\n      case 89 /* DebuggerKeyword */:\n      // 'catch' and 'finally' do not actually indicate that the code is part of a statement,\n      // however, we say they are here so that we may gracefully parse them and error later.\n      // falls through\n      case 85 /* CatchKeyword */:\n      case 98 /* FinallyKeyword */:\n        return true;\n      case 102 /* ImportKeyword */:\n        return isStartOfDeclaration() || lookAhead(nextTokenIsOpenParenOrLessThanOrDot);\n      case 87 /* ConstKeyword */:\n      case 95 /* ExportKeyword */:\n        return isStartOfDeclaration();\n      case 134 /* AsyncKeyword */:\n      case 138 /* DeclareKeyword */:\n      case 120 /* InterfaceKeyword */:\n      case 144 /* ModuleKeyword */:\n      case 145 /* NamespaceKeyword */:\n      case 156 /* TypeKeyword */:\n      case 162 /* GlobalKeyword */:\n      case 166 /* DeferKeyword */:\n        return true;\n      case 129 /* AccessorKeyword */:\n      case 125 /* PublicKeyword */:\n      case 123 /* PrivateKeyword */:\n      case 124 /* ProtectedKeyword */:\n      case 126 /* StaticKeyword */:\n      case 148 /* ReadonlyKeyword */:\n        return isStartOfDeclaration() || !lookAhead(nextTokenIsIdentifierOrKeywordOnSameLine);\n      default:\n        return isStartOfExpression();\n    }\n  }\n  function nextTokenIsBindingIdentifierOrStartOfDestructuring() {\n    nextToken();\n    return isBindingIdentifier() || token() === 19 /* OpenBraceToken */ || token() === 23 /* OpenBracketToken */;\n  }\n  function isLetDeclaration() {\n    return lookAhead(nextTokenIsBindingIdentifierOrStartOfDestructuring);\n  }\n  function nextTokenIsBindingIdentifierOrStartOfDestructuringOnSameLineDisallowOf() {\n    return nextTokenIsBindingIdentifierOrStartOfDestructuringOnSameLine(\n      /*disallowOf*/\n      true\n    );\n  }\n  function nextTokenIsEqualsOrSemicolonOrColonToken() {\n    nextToken();\n    return token() === 64 /* EqualsToken */ || token() === 27 /* SemicolonToken */ || token() === 59 /* ColonToken */;\n  }\n  function nextTokenIsBindingIdentifierOrStartOfDestructuringOnSameLine(disallowOf) {\n    nextToken();\n    if (disallowOf && token() === 165 /* OfKeyword */) {\n      return lookAhead(nextTokenIsEqualsOrSemicolonOrColonToken);\n    }\n    return (isBindingIdentifier() || token() === 19 /* OpenBraceToken */) && !scanner2.hasPrecedingLineBreak();\n  }\n  function isUsingDeclaration() {\n    return lookAhead(nextTokenIsBindingIdentifierOrStartOfDestructuringOnSameLine);\n  }\n  function nextTokenIsUsingKeywordThenBindingIdentifierOrStartOfObjectDestructuringOnSameLine(disallowOf) {\n    if (nextToken() === 160 /* UsingKeyword */) {\n      return nextTokenIsBindingIdentifierOrStartOfDestructuringOnSameLine(disallowOf);\n    }\n    return false;\n  }\n  function isAwaitUsingDeclaration() {\n    return lookAhead(nextTokenIsUsingKeywordThenBindingIdentifierOrStartOfObjectDestructuringOnSameLine);\n  }\n  function parseStatement() {\n    switch (token()) {\n      case 27 /* SemicolonToken */:\n        return parseEmptyStatement();\n      case 19 /* OpenBraceToken */:\n        return parseBlock(\n          /*ignoreMissingOpenBrace*/\n          false\n        );\n      case 115 /* VarKeyword */:\n        return parseVariableStatement(\n          getNodePos(),\n          hasPrecedingJSDocComment(),\n          /*modifiers*/\n          void 0\n        );\n      case 121 /* LetKeyword */:\n        if (isLetDeclaration()) {\n          return parseVariableStatement(\n            getNodePos(),\n            hasPrecedingJSDocComment(),\n            /*modifiers*/\n            void 0\n          );\n        }\n        break;\n      case 135 /* AwaitKeyword */:\n        if (isAwaitUsingDeclaration()) {\n          return parseVariableStatement(\n            getNodePos(),\n            hasPrecedingJSDocComment(),\n            /*modifiers*/\n            void 0\n          );\n        }\n        break;\n      case 160 /* UsingKeyword */:\n        if (isUsingDeclaration()) {\n          return parseVariableStatement(\n            getNodePos(),\n            hasPrecedingJSDocComment(),\n            /*modifiers*/\n            void 0\n          );\n        }\n        break;\n      case 100 /* FunctionKeyword */:\n        return parseFunctionDeclaration(\n          getNodePos(),\n          hasPrecedingJSDocComment(),\n          /*modifiers*/\n          void 0\n        );\n      case 86 /* ClassKeyword */:\n        return parseClassDeclaration(\n          getNodePos(),\n          hasPrecedingJSDocComment(),\n          /*modifiers*/\n          void 0\n        );\n      case 101 /* IfKeyword */:\n        return parseIfStatement();\n      case 92 /* DoKeyword */:\n        return parseDoStatement();\n      case 117 /* WhileKeyword */:\n        return parseWhileStatement();\n      case 99 /* ForKeyword */:\n        return parseForOrForInOrForOfStatement();\n      case 88 /* ContinueKeyword */:\n        return parseBreakOrContinueStatement(252 /* ContinueStatement */);\n      case 83 /* BreakKeyword */:\n        return parseBreakOrContinueStatement(253 /* BreakStatement */);\n      case 107 /* ReturnKeyword */:\n        return parseReturnStatement();\n      case 118 /* WithKeyword */:\n        return parseWithStatement();\n      case 109 /* SwitchKeyword */:\n        return parseSwitchStatement();\n      case 111 /* ThrowKeyword */:\n        return parseThrowStatement();\n      case 113 /* TryKeyword */:\n      // Include 'catch' and 'finally' for error recovery.\n      // falls through\n      case 85 /* CatchKeyword */:\n      case 98 /* FinallyKeyword */:\n        return parseTryStatement();\n      case 89 /* DebuggerKeyword */:\n        return parseDebuggerStatement();\n      case 60 /* AtToken */:\n        return parseDeclaration();\n      case 134 /* AsyncKeyword */:\n      case 120 /* InterfaceKeyword */:\n      case 156 /* TypeKeyword */:\n      case 144 /* ModuleKeyword */:\n      case 145 /* NamespaceKeyword */:\n      case 138 /* DeclareKeyword */:\n      case 87 /* ConstKeyword */:\n      case 94 /* EnumKeyword */:\n      case 95 /* ExportKeyword */:\n      case 102 /* ImportKeyword */:\n      case 123 /* PrivateKeyword */:\n      case 124 /* ProtectedKeyword */:\n      case 125 /* PublicKeyword */:\n      case 128 /* AbstractKeyword */:\n      case 129 /* AccessorKeyword */:\n      case 126 /* StaticKeyword */:\n      case 148 /* ReadonlyKeyword */:\n      case 162 /* GlobalKeyword */:\n        if (isStartOfDeclaration()) {\n          return parseDeclaration();\n        }\n        break;\n    }\n    return parseExpressionOrLabeledStatement();\n  }\n  function isDeclareModifier(modifier) {\n    return modifier.kind === 138 /* DeclareKeyword */;\n  }\n  function parseDeclaration() {\n    const pos = getNodePos();\n    const hasJSDoc = hasPrecedingJSDocComment();\n    const modifiers = parseModifiers(\n      /*allowDecorators*/\n      true\n    );\n    const isAmbient = some(modifiers, isDeclareModifier);\n    if (isAmbient) {\n      const node = tryReuseAmbientDeclaration(pos);\n      if (node) {\n        return node;\n      }\n      for (const m of modifiers) {\n        m.flags |= 33554432 /* Ambient */;\n      }\n      return doInsideOfContext(33554432 /* Ambient */, () => parseDeclarationWorker(pos, hasJSDoc, modifiers));\n    } else {\n      return parseDeclarationWorker(pos, hasJSDoc, modifiers);\n    }\n  }\n  function tryReuseAmbientDeclaration(pos) {\n    return doInsideOfContext(33554432 /* Ambient */, () => {\n      const node = currentNode(parsingContext, pos);\n      if (node) {\n        return consumeNode(node);\n      }\n    });\n  }\n  function parseDeclarationWorker(pos, hasJSDoc, modifiersIn) {\n    switch (token()) {\n      case 115 /* VarKeyword */:\n      case 121 /* LetKeyword */:\n      case 87 /* ConstKeyword */:\n      case 160 /* UsingKeyword */:\n      case 135 /* AwaitKeyword */:\n        return parseVariableStatement(pos, hasJSDoc, modifiersIn);\n      case 100 /* FunctionKeyword */:\n        return parseFunctionDeclaration(pos, hasJSDoc, modifiersIn);\n      case 86 /* ClassKeyword */:\n        return parseClassDeclaration(pos, hasJSDoc, modifiersIn);\n      case 120 /* InterfaceKeyword */:\n        return parseInterfaceDeclaration(pos, hasJSDoc, modifiersIn);\n      case 156 /* TypeKeyword */:\n        return parseTypeAliasDeclaration(pos, hasJSDoc, modifiersIn);\n      case 94 /* EnumKeyword */:\n        return parseEnumDeclaration(pos, hasJSDoc, modifiersIn);\n      case 162 /* GlobalKeyword */:\n      case 144 /* ModuleKeyword */:\n      case 145 /* NamespaceKeyword */:\n        return parseModuleDeclaration(pos, hasJSDoc, modifiersIn);\n      case 102 /* ImportKeyword */:\n        return parseImportDeclarationOrImportEqualsDeclaration(pos, hasJSDoc, modifiersIn);\n      case 95 /* ExportKeyword */:\n        nextToken();\n        switch (token()) {\n          case 90 /* DefaultKeyword */:\n          case 64 /* EqualsToken */:\n            return parseExportAssignment(pos, hasJSDoc, modifiersIn);\n          case 130 /* AsKeyword */:\n            return parseNamespaceExportDeclaration(pos, hasJSDoc, modifiersIn);\n          default:\n            return parseExportDeclaration(pos, hasJSDoc, modifiersIn);\n        }\n      default:\n        if (modifiersIn) {\n          const missing = createMissingNode(\n            283 /* MissingDeclaration */,\n            /*reportAtCurrentPosition*/\n            true,\n            Diagnostics.Declaration_expected\n          );\n          setTextRangePos(missing, pos);\n          missing.modifiers = modifiersIn;\n          return missing;\n        }\n        return void 0;\n    }\n  }\n  function nextTokenIsStringLiteral() {\n    return nextToken() === 11 /* StringLiteral */;\n  }\n  function nextTokenIsFromKeywordOrEqualsToken() {\n    nextToken();\n    return token() === 161 /* FromKeyword */ || token() === 64 /* EqualsToken */;\n  }\n  function nextTokenIsIdentifierOrStringLiteralOnSameLine() {\n    nextToken();\n    return !scanner2.hasPrecedingLineBreak() && (isIdentifier2() || token() === 11 /* StringLiteral */);\n  }\n  function parseFunctionBlockOrSemicolon(flags, diagnosticMessage) {\n    if (token() !== 19 /* OpenBraceToken */) {\n      if (flags & 4 /* Type */) {\n        parseTypeMemberSemicolon();\n        return;\n      }\n      if (canParseSemicolon()) {\n        parseSemicolon();\n        return;\n      }\n    }\n    return parseFunctionBlock(flags, diagnosticMessage);\n  }\n  function parseArrayBindingElement() {\n    const pos = getNodePos();\n    if (token() === 28 /* CommaToken */) {\n      return finishNode(factory2.createOmittedExpression(), pos);\n    }\n    const dotDotDotToken = parseOptionalToken(26 /* DotDotDotToken */);\n    const name = parseIdentifierOrPattern();\n    const initializer = parseInitializer();\n    return finishNode(factory2.createBindingElement(\n      dotDotDotToken,\n      /*propertyName*/\n      void 0,\n      name,\n      initializer\n    ), pos);\n  }\n  function parseObjectBindingElement() {\n    const pos = getNodePos();\n    const dotDotDotToken = parseOptionalToken(26 /* DotDotDotToken */);\n    const tokenIsIdentifier = isBindingIdentifier();\n    let propertyName = parsePropertyName();\n    let name;\n    if (tokenIsIdentifier && token() !== 59 /* ColonToken */) {\n      name = propertyName;\n      propertyName = void 0;\n    } else {\n      parseExpected(59 /* ColonToken */);\n      name = parseIdentifierOrPattern();\n    }\n    const initializer = parseInitializer();\n    return finishNode(factory2.createBindingElement(dotDotDotToken, propertyName, name, initializer), pos);\n  }\n  function parseObjectBindingPattern() {\n    const pos = getNodePos();\n    parseExpected(19 /* OpenBraceToken */);\n    const elements = allowInAnd(() => parseDelimitedList(9 /* ObjectBindingElements */, parseObjectBindingElement));\n    parseExpected(20 /* CloseBraceToken */);\n    return finishNode(factory2.createObjectBindingPattern(elements), pos);\n  }\n  function parseArrayBindingPattern() {\n    const pos = getNodePos();\n    parseExpected(23 /* OpenBracketToken */);\n    const elements = allowInAnd(() => parseDelimitedList(10 /* ArrayBindingElements */, parseArrayBindingElement));\n    parseExpected(24 /* CloseBracketToken */);\n    return finishNode(factory2.createArrayBindingPattern(elements), pos);\n  }\n  function isBindingIdentifierOrPrivateIdentifierOrPattern() {\n    return token() === 19 /* OpenBraceToken */ || token() === 23 /* OpenBracketToken */ || token() === 81 /* PrivateIdentifier */ || isBindingIdentifier();\n  }\n  function parseIdentifierOrPattern(privateIdentifierDiagnosticMessage) {\n    if (token() === 23 /* OpenBracketToken */) {\n      return parseArrayBindingPattern();\n    }\n    if (token() === 19 /* OpenBraceToken */) {\n      return parseObjectBindingPattern();\n    }\n    return parseBindingIdentifier(privateIdentifierDiagnosticMessage);\n  }\n  function parseVariableDeclarationAllowExclamation() {\n    return parseVariableDeclaration(\n      /*allowExclamation*/\n      true\n    );\n  }\n  function parseVariableDeclaration(allowExclamation) {\n    const pos = getNodePos();\n    const hasJSDoc = hasPrecedingJSDocComment();\n    const name = parseIdentifierOrPattern(Diagnostics.Private_identifiers_are_not_allowed_in_variable_declarations);\n    let exclamationToken;\n    if (allowExclamation && name.kind === 80 /* Identifier */ && token() === 54 /* ExclamationToken */ && !scanner2.hasPrecedingLineBreak()) {\n      exclamationToken = parseTokenNode();\n    }\n    const type = parseTypeAnnotation();\n    const initializer = isInOrOfKeyword(token()) ? void 0 : parseInitializer();\n    const node = factoryCreateVariableDeclaration(name, exclamationToken, type, initializer);\n    return withJSDoc(finishNode(node, pos), hasJSDoc);\n  }\n  function parseVariableDeclarationList(inForStatementInitializer) {\n    const pos = getNodePos();\n    let flags = 0;\n    switch (token()) {\n      case 115 /* VarKeyword */:\n        break;\n      case 121 /* LetKeyword */:\n        flags |= 1 /* Let */;\n        break;\n      case 87 /* ConstKeyword */:\n        flags |= 2 /* Const */;\n        break;\n      case 160 /* UsingKeyword */:\n        flags |= 4 /* Using */;\n        break;\n      case 135 /* AwaitKeyword */:\n        Debug.assert(isAwaitUsingDeclaration());\n        flags |= 6 /* AwaitUsing */;\n        nextToken();\n        break;\n      default:\n        Debug.fail();\n    }\n    nextToken();\n    let declarations;\n    if (token() === 165 /* OfKeyword */ && lookAhead(canFollowContextualOfKeyword)) {\n      declarations = createMissingList();\n    } else {\n      const savedDisallowIn = inDisallowInContext();\n      setDisallowInContext(inForStatementInitializer);\n      declarations = parseDelimitedList(\n        8 /* VariableDeclarations */,\n        inForStatementInitializer ? parseVariableDeclaration : parseVariableDeclarationAllowExclamation\n      );\n      setDisallowInContext(savedDisallowIn);\n    }\n    return finishNode(factoryCreateVariableDeclarationList(declarations, flags), pos);\n  }\n  function canFollowContextualOfKeyword() {\n    return nextTokenIsIdentifier() && nextToken() === 22 /* CloseParenToken */;\n  }\n  function parseVariableStatement(pos, hasJSDoc, modifiers) {\n    const declarationList = parseVariableDeclarationList(\n      /*inForStatementInitializer*/\n      false\n    );\n    parseSemicolon();\n    const node = factoryCreateVariableStatement(modifiers, declarationList);\n    return withJSDoc(finishNode(node, pos), hasJSDoc);\n  }\n  function parseFunctionDeclaration(pos, hasJSDoc, modifiers) {\n    const savedAwaitContext = inAwaitContext();\n    const modifierFlags = modifiersToFlags(modifiers);\n    parseExpected(100 /* FunctionKeyword */);\n    const asteriskToken = parseOptionalToken(42 /* AsteriskToken */);\n    const name = modifierFlags & 2048 /* Default */ ? parseOptionalBindingIdentifier() : parseBindingIdentifier();\n    const isGenerator = asteriskToken ? 1 /* Yield */ : 0 /* None */;\n    const isAsync = modifierFlags & 1024 /* Async */ ? 2 /* Await */ : 0 /* None */;\n    const typeParameters = parseTypeParameters();\n    if (modifierFlags & 32 /* Export */) setAwaitContext(\n      /*value*/\n      true\n    );\n    const parameters = parseParameters(isGenerator | isAsync);\n    const type = parseReturnType(\n      59 /* ColonToken */,\n      /*isType*/\n      false\n    );\n    const body = parseFunctionBlockOrSemicolon(isGenerator | isAsync, Diagnostics.or_expected);\n    setAwaitContext(savedAwaitContext);\n    const node = factory2.createFunctionDeclaration(modifiers, asteriskToken, name, typeParameters, parameters, type, body);\n    return withJSDoc(finishNode(node, pos), hasJSDoc);\n  }\n  function parseConstructorName() {\n    if (token() === 137 /* ConstructorKeyword */) {\n      return parseExpected(137 /* ConstructorKeyword */);\n    }\n    if (token() === 11 /* StringLiteral */ && lookAhead(nextToken) === 21 /* OpenParenToken */) {\n      return tryParse(() => {\n        const literalNode = parseLiteralNode();\n        return literalNode.text === \"constructor\" ? literalNode : void 0;\n      });\n    }\n  }\n  function tryParseConstructorDeclaration(pos, hasJSDoc, modifiers) {\n    return tryParse(() => {\n      if (parseConstructorName()) {\n        const typeParameters = parseTypeParameters();\n        const parameters = parseParameters(0 /* None */);\n        const type = parseReturnType(\n          59 /* ColonToken */,\n          /*isType*/\n          false\n        );\n        const body = parseFunctionBlockOrSemicolon(0 /* None */, Diagnostics.or_expected);\n        const node = factory2.createConstructorDeclaration(modifiers, parameters, body);\n        node.typeParameters = typeParameters;\n        node.type = type;\n        return withJSDoc(finishNode(node, pos), hasJSDoc);\n      }\n    });\n  }\n  function parseMethodDeclaration(pos, hasJSDoc, modifiers, asteriskToken, name, questionToken, exclamationToken, diagnosticMessage) {\n    const isGenerator = asteriskToken ? 1 /* Yield */ : 0 /* None */;\n    const isAsync = some(modifiers, isAsyncModifier) ? 2 /* Await */ : 0 /* None */;\n    const typeParameters = parseTypeParameters();\n    const parameters = parseParameters(isGenerator | isAsync);\n    const type = parseReturnType(\n      59 /* ColonToken */,\n      /*isType*/\n      false\n    );\n    const body = parseFunctionBlockOrSemicolon(isGenerator | isAsync, diagnosticMessage);\n    const node = factory2.createMethodDeclaration(\n      modifiers,\n      asteriskToken,\n      name,\n      questionToken,\n      typeParameters,\n      parameters,\n      type,\n      body\n    );\n    node.exclamationToken = exclamationToken;\n    return withJSDoc(finishNode(node, pos), hasJSDoc);\n  }\n  function parsePropertyDeclaration(pos, hasJSDoc, modifiers, name, questionToken) {\n    const exclamationToken = !questionToken && !scanner2.hasPrecedingLineBreak() ? parseOptionalToken(54 /* ExclamationToken */) : void 0;\n    const type = parseTypeAnnotation();\n    const initializer = doOutsideOfContext(16384 /* YieldContext */ | 65536 /* AwaitContext */ | 8192 /* DisallowInContext */, parseInitializer);\n    parseSemicolonAfterPropertyName(name, type, initializer);\n    const node = factory2.createPropertyDeclaration(\n      modifiers,\n      name,\n      questionToken || exclamationToken,\n      type,\n      initializer\n    );\n    return withJSDoc(finishNode(node, pos), hasJSDoc);\n  }\n  function parsePropertyOrMethodDeclaration(pos, hasJSDoc, modifiers) {\n    const asteriskToken = parseOptionalToken(42 /* AsteriskToken */);\n    const name = parsePropertyName();\n    const questionToken = parseOptionalToken(58 /* QuestionToken */);\n    if (asteriskToken || token() === 21 /* OpenParenToken */ || token() === 30 /* LessThanToken */) {\n      return parseMethodDeclaration(\n        pos,\n        hasJSDoc,\n        modifiers,\n        asteriskToken,\n        name,\n        questionToken,\n        /*exclamationToken*/\n        void 0,\n        Diagnostics.or_expected\n      );\n    }\n    return parsePropertyDeclaration(pos, hasJSDoc, modifiers, name, questionToken);\n  }\n  function parseAccessorDeclaration(pos, hasJSDoc, modifiers, kind, flags) {\n    const name = parsePropertyName();\n    const typeParameters = parseTypeParameters();\n    const parameters = parseParameters(0 /* None */);\n    const type = parseReturnType(\n      59 /* ColonToken */,\n      /*isType*/\n      false\n    );\n    const body = parseFunctionBlockOrSemicolon(flags);\n    const node = kind === 178 /* GetAccessor */ ? factory2.createGetAccessorDeclaration(modifiers, name, parameters, type, body) : factory2.createSetAccessorDeclaration(modifiers, name, parameters, body);\n    node.typeParameters = typeParameters;\n    if (isSetAccessorDeclaration(node)) node.type = type;\n    return withJSDoc(finishNode(node, pos), hasJSDoc);\n  }\n  function isClassMemberStart() {\n    let idToken;\n    if (token() === 60 /* AtToken */) {\n      return true;\n    }\n    while (isModifierKind(token())) {\n      idToken = token();\n      if (isClassMemberModifier(idToken)) {\n        return true;\n      }\n      nextToken();\n    }\n    if (token() === 42 /* AsteriskToken */) {\n      return true;\n    }\n    if (isLiteralPropertyName()) {\n      idToken = token();\n      nextToken();\n    }\n    if (token() === 23 /* OpenBracketToken */) {\n      return true;\n    }\n    if (idToken !== void 0) {\n      if (!isKeyword(idToken) || idToken === 153 /* SetKeyword */ || idToken === 139 /* GetKeyword */) {\n        return true;\n      }\n      switch (token()) {\n        case 21 /* OpenParenToken */:\n        // Method declaration\n        case 30 /* LessThanToken */:\n        // Generic Method declaration\n        case 54 /* ExclamationToken */:\n        // Non-null assertion on property name\n        case 59 /* ColonToken */:\n        // Type Annotation for declaration\n        case 64 /* EqualsToken */:\n        // Initializer for declaration\n        case 58 /* QuestionToken */:\n          return true;\n        default:\n          return canParseSemicolon();\n      }\n    }\n    return false;\n  }\n  function parseClassStaticBlockDeclaration(pos, hasJSDoc, modifiers) {\n    parseExpectedToken(126 /* StaticKeyword */);\n    const body = parseClassStaticBlockBody();\n    const node = withJSDoc(finishNode(factory2.createClassStaticBlockDeclaration(body), pos), hasJSDoc);\n    node.modifiers = modifiers;\n    return node;\n  }\n  function parseClassStaticBlockBody() {\n    const savedYieldContext = inYieldContext();\n    const savedAwaitContext = inAwaitContext();\n    setYieldContext(false);\n    setAwaitContext(true);\n    const body = parseBlock(\n      /*ignoreMissingOpenBrace*/\n      false\n    );\n    setYieldContext(savedYieldContext);\n    setAwaitContext(savedAwaitContext);\n    return body;\n  }\n  function parseDecoratorExpression() {\n    if (inAwaitContext() && token() === 135 /* AwaitKeyword */) {\n      const pos = getNodePos();\n      const awaitExpression = parseIdentifier(Diagnostics.Expression_expected);\n      nextToken();\n      const memberExpression = parseMemberExpressionRest(\n        pos,\n        awaitExpression,\n        /*allowOptionalChain*/\n        true\n      );\n      return parseCallExpressionRest(pos, memberExpression);\n    }\n    return parseLeftHandSideExpressionOrHigher();\n  }\n  function tryParseDecorator() {\n    const pos = getNodePos();\n    if (!parseOptional(60 /* AtToken */)) {\n      return void 0;\n    }\n    const expression = doInDecoratorContext(parseDecoratorExpression);\n    return finishNode(factory2.createDecorator(expression), pos);\n  }\n  function tryParseModifier(hasSeenStaticModifier, permitConstAsModifier, stopOnStartOfClassStaticBlock) {\n    const pos = getNodePos();\n    const kind = token();\n    if (token() === 87 /* ConstKeyword */ && permitConstAsModifier) {\n      if (!tryParse(nextTokenIsOnSameLineAndCanFollowModifier)) {\n        return void 0;\n      }\n    } else if (stopOnStartOfClassStaticBlock && token() === 126 /* StaticKeyword */ && lookAhead(nextTokenIsOpenBrace)) {\n      return void 0;\n    } else if (hasSeenStaticModifier && token() === 126 /* StaticKeyword */) {\n      return void 0;\n    } else {\n      if (!parseAnyContextualModifier()) {\n        return void 0;\n      }\n    }\n    return finishNode(factoryCreateToken(kind), pos);\n  }\n  function parseModifiers(allowDecorators, permitConstAsModifier, stopOnStartOfClassStaticBlock) {\n    const pos = getNodePos();\n    let list;\n    let decorator, modifier, hasSeenStaticModifier = false, hasLeadingModifier = false, hasTrailingDecorator = false;\n    if (allowDecorators && token() === 60 /* AtToken */) {\n      while (decorator = tryParseDecorator()) {\n        list = append(list, decorator);\n      }\n    }\n    while (modifier = tryParseModifier(hasSeenStaticModifier, permitConstAsModifier, stopOnStartOfClassStaticBlock)) {\n      if (modifier.kind === 126 /* StaticKeyword */) hasSeenStaticModifier = true;\n      list = append(list, modifier);\n      hasLeadingModifier = true;\n    }\n    if (hasLeadingModifier && allowDecorators && token() === 60 /* AtToken */) {\n      while (decorator = tryParseDecorator()) {\n        list = append(list, decorator);\n        hasTrailingDecorator = true;\n      }\n    }\n    if (hasTrailingDecorator) {\n      while (modifier = tryParseModifier(hasSeenStaticModifier, permitConstAsModifier, stopOnStartOfClassStaticBlock)) {\n        if (modifier.kind === 126 /* StaticKeyword */) hasSeenStaticModifier = true;\n        list = append(list, modifier);\n      }\n    }\n    return list && createNodeArray(list, pos);\n  }\n  function parseModifiersForArrowFunction() {\n    let modifiers;\n    if (token() === 134 /* AsyncKeyword */) {\n      const pos = getNodePos();\n      nextToken();\n      const modifier = finishNode(factoryCreateToken(134 /* AsyncKeyword */), pos);\n      modifiers = createNodeArray([modifier], pos);\n    }\n    return modifiers;\n  }\n  function parseClassElement() {\n    const pos = getNodePos();\n    const hasJSDoc = hasPrecedingJSDocComment();\n    if (token() === 27 /* SemicolonToken */) {\n      nextToken();\n      return withJSDoc(finishNode(factory2.createSemicolonClassElement(), pos), hasJSDoc);\n    }\n    const modifiers = parseModifiers(\n      /*allowDecorators*/\n      true,\n      /*permitConstAsModifier*/\n      true,\n      /*stopOnStartOfClassStaticBlock*/\n      true\n    );\n    if (token() === 126 /* StaticKeyword */ && lookAhead(nextTokenIsOpenBrace)) {\n      return parseClassStaticBlockDeclaration(pos, hasJSDoc, modifiers);\n    }\n    if (parseContextualModifier(139 /* GetKeyword */)) {\n      return parseAccessorDeclaration(pos, hasJSDoc, modifiers, 178 /* GetAccessor */, 0 /* None */);\n    }\n    if (parseContextualModifier(153 /* SetKeyword */)) {\n      return parseAccessorDeclaration(pos, hasJSDoc, modifiers, 179 /* SetAccessor */, 0 /* None */);\n    }\n    if (token() === 137 /* ConstructorKeyword */ || token() === 11 /* StringLiteral */) {\n      const constructorDeclaration = tryParseConstructorDeclaration(pos, hasJSDoc, modifiers);\n      if (constructorDeclaration) {\n        return constructorDeclaration;\n      }\n    }\n    if (isIndexSignature()) {\n      return parseIndexSignatureDeclaration(pos, hasJSDoc, modifiers);\n    }\n    if (tokenIsIdentifierOrKeyword(token()) || token() === 11 /* StringLiteral */ || token() === 9 /* NumericLiteral */ || token() === 10 /* BigIntLiteral */ || token() === 42 /* AsteriskToken */ || token() === 23 /* OpenBracketToken */) {\n      const isAmbient = some(modifiers, isDeclareModifier);\n      if (isAmbient) {\n        for (const m of modifiers) {\n          m.flags |= 33554432 /* Ambient */;\n        }\n        return doInsideOfContext(33554432 /* Ambient */, () => parsePropertyOrMethodDeclaration(pos, hasJSDoc, modifiers));\n      } else {\n        return parsePropertyOrMethodDeclaration(pos, hasJSDoc, modifiers);\n      }\n    }\n    if (modifiers) {\n      const name = createMissingNode(\n        80 /* Identifier */,\n        /*reportAtCurrentPosition*/\n        true,\n        Diagnostics.Declaration_expected\n      );\n      return parsePropertyDeclaration(\n        pos,\n        hasJSDoc,\n        modifiers,\n        name,\n        /*questionToken*/\n        void 0\n      );\n    }\n    return Debug.fail(\"Should not have attempted to parse class member declaration.\");\n  }\n  function parseDecoratedExpression() {\n    const pos = getNodePos();\n    const hasJSDoc = hasPrecedingJSDocComment();\n    const modifiers = parseModifiers(\n      /*allowDecorators*/\n      true\n    );\n    if (token() === 86 /* ClassKeyword */) {\n      return parseClassDeclarationOrExpression(pos, hasJSDoc, modifiers, 232 /* ClassExpression */);\n    }\n    const missing = createMissingNode(\n      283 /* MissingDeclaration */,\n      /*reportAtCurrentPosition*/\n      true,\n      Diagnostics.Expression_expected\n    );\n    setTextRangePos(missing, pos);\n    missing.modifiers = modifiers;\n    return missing;\n  }\n  function parseClassExpression() {\n    return parseClassDeclarationOrExpression(\n      getNodePos(),\n      hasPrecedingJSDocComment(),\n      /*modifiers*/\n      void 0,\n      232 /* ClassExpression */\n    );\n  }\n  function parseClassDeclaration(pos, hasJSDoc, modifiers) {\n    return parseClassDeclarationOrExpression(pos, hasJSDoc, modifiers, 264 /* ClassDeclaration */);\n  }\n  function parseClassDeclarationOrExpression(pos, hasJSDoc, modifiers, kind) {\n    const savedAwaitContext = inAwaitContext();\n    parseExpected(86 /* ClassKeyword */);\n    const name = parseNameOfClassDeclarationOrExpression();\n    const typeParameters = parseTypeParameters();\n    if (some(modifiers, isExportModifier)) setAwaitContext(\n      /*value*/\n      true\n    );\n    const heritageClauses = parseHeritageClauses();\n    let members;\n    if (parseExpected(19 /* OpenBraceToken */)) {\n      members = parseClassMembers();\n      parseExpected(20 /* CloseBraceToken */);\n    } else {\n      members = createMissingList();\n    }\n    setAwaitContext(savedAwaitContext);\n    const node = kind === 264 /* ClassDeclaration */ ? factory2.createClassDeclaration(modifiers, name, typeParameters, heritageClauses, members) : factory2.createClassExpression(modifiers, name, typeParameters, heritageClauses, members);\n    return withJSDoc(finishNode(node, pos), hasJSDoc);\n  }\n  function parseNameOfClassDeclarationOrExpression() {\n    return isBindingIdentifier() && !isImplementsClause() ? createIdentifier(isBindingIdentifier()) : void 0;\n  }\n  function isImplementsClause() {\n    return token() === 119 /* ImplementsKeyword */ && lookAhead(nextTokenIsIdentifierOrKeyword);\n  }\n  function parseHeritageClauses() {\n    if (isHeritageClause2()) {\n      return parseList(22 /* HeritageClauses */, parseHeritageClause);\n    }\n    return void 0;\n  }\n  function parseHeritageClause() {\n    const pos = getNodePos();\n    const tok = token();\n    Debug.assert(tok === 96 /* ExtendsKeyword */ || tok === 119 /* ImplementsKeyword */);\n    nextToken();\n    const types = parseDelimitedList(7 /* HeritageClauseElement */, parseExpressionWithTypeArguments);\n    return finishNode(factory2.createHeritageClause(tok, types), pos);\n  }\n  function parseExpressionWithTypeArguments() {\n    const pos = getNodePos();\n    const expression = parseLeftHandSideExpressionOrHigher();\n    if (expression.kind === 234 /* ExpressionWithTypeArguments */) {\n      return expression;\n    }\n    const typeArguments = tryParseTypeArguments();\n    return finishNode(factory2.createExpressionWithTypeArguments(expression, typeArguments), pos);\n  }\n  function tryParseTypeArguments() {\n    return token() === 30 /* LessThanToken */ ? parseBracketedList(20 /* TypeArguments */, parseType, 30 /* LessThanToken */, 32 /* GreaterThanToken */) : void 0;\n  }\n  function isHeritageClause2() {\n    return token() === 96 /* ExtendsKeyword */ || token() === 119 /* ImplementsKeyword */;\n  }\n  function parseClassMembers() {\n    return parseList(5 /* ClassMembers */, parseClassElement);\n  }\n  function parseInterfaceDeclaration(pos, hasJSDoc, modifiers) {\n    parseExpected(120 /* InterfaceKeyword */);\n    const name = parseIdentifier();\n    const typeParameters = parseTypeParameters();\n    const heritageClauses = parseHeritageClauses();\n    const members = parseObjectTypeMembers();\n    const node = factory2.createInterfaceDeclaration(modifiers, name, typeParameters, heritageClauses, members);\n    return withJSDoc(finishNode(node, pos), hasJSDoc);\n  }\n  function parseTypeAliasDeclaration(pos, hasJSDoc, modifiers) {\n    parseExpected(156 /* TypeKeyword */);\n    if (scanner2.hasPrecedingLineBreak()) {\n      parseErrorAtCurrentToken(Diagnostics.Line_break_not_permitted_here);\n    }\n    const name = parseIdentifier();\n    const typeParameters = parseTypeParameters();\n    parseExpected(64 /* EqualsToken */);\n    const type = token() === 141 /* IntrinsicKeyword */ && tryParse(parseKeywordAndNoDot) || parseType();\n    parseSemicolon();\n    const node = factory2.createTypeAliasDeclaration(modifiers, name, typeParameters, type);\n    return withJSDoc(finishNode(node, pos), hasJSDoc);\n  }\n  function parseEnumMember() {\n    const pos = getNodePos();\n    const hasJSDoc = hasPrecedingJSDocComment();\n    const name = parsePropertyName();\n    const initializer = allowInAnd(parseInitializer);\n    return withJSDoc(finishNode(factory2.createEnumMember(name, initializer), pos), hasJSDoc);\n  }\n  function parseEnumDeclaration(pos, hasJSDoc, modifiers) {\n    parseExpected(94 /* EnumKeyword */);\n    const name = parseIdentifier();\n    let members;\n    if (parseExpected(19 /* OpenBraceToken */)) {\n      members = doOutsideOfYieldAndAwaitContext(() => parseDelimitedList(6 /* EnumMembers */, parseEnumMember));\n      parseExpected(20 /* CloseBraceToken */);\n    } else {\n      members = createMissingList();\n    }\n    const node = factory2.createEnumDeclaration(modifiers, name, members);\n    return withJSDoc(finishNode(node, pos), hasJSDoc);\n  }\n  function parseModuleBlock() {\n    const pos = getNodePos();\n    let statements;\n    if (parseExpected(19 /* OpenBraceToken */)) {\n      statements = parseList(1 /* BlockStatements */, parseStatement);\n      parseExpected(20 /* CloseBraceToken */);\n    } else {\n      statements = createMissingList();\n    }\n    return finishNode(factory2.createModuleBlock(statements), pos);\n  }\n  function parseModuleOrNamespaceDeclaration(pos, hasJSDoc, modifiers, flags) {\n    const namespaceFlag = flags & 32 /* Namespace */;\n    const name = flags & 8 /* NestedNamespace */ ? parseIdentifierName() : parseIdentifier();\n    const body = parseOptional(25 /* DotToken */) ? parseModuleOrNamespaceDeclaration(\n      getNodePos(),\n      /*hasJSDoc*/\n      false,\n      /*modifiers*/\n      void 0,\n      8 /* NestedNamespace */ | namespaceFlag\n    ) : parseModuleBlock();\n    const node = factory2.createModuleDeclaration(modifiers, name, body, flags);\n    return withJSDoc(finishNode(node, pos), hasJSDoc);\n  }\n  function parseAmbientExternalModuleDeclaration(pos, hasJSDoc, modifiersIn) {\n    let flags = 0;\n    let name;\n    if (token() === 162 /* GlobalKeyword */) {\n      name = parseIdentifier();\n      flags |= 2048 /* GlobalAugmentation */;\n    } else {\n      name = parseLiteralNode();\n      name.text = internIdentifier(name.text);\n    }\n    let body;\n    if (token() === 19 /* OpenBraceToken */) {\n      body = parseModuleBlock();\n    } else {\n      parseSemicolon();\n    }\n    const node = factory2.createModuleDeclaration(modifiersIn, name, body, flags);\n    return withJSDoc(finishNode(node, pos), hasJSDoc);\n  }\n  function parseModuleDeclaration(pos, hasJSDoc, modifiersIn) {\n    let flags = 0;\n    if (token() === 162 /* GlobalKeyword */) {\n      return parseAmbientExternalModuleDeclaration(pos, hasJSDoc, modifiersIn);\n    } else if (parseOptional(145 /* NamespaceKeyword */)) {\n      flags |= 32 /* Namespace */;\n    } else {\n      parseExpected(144 /* ModuleKeyword */);\n      if (token() === 11 /* StringLiteral */) {\n        return parseAmbientExternalModuleDeclaration(pos, hasJSDoc, modifiersIn);\n      }\n    }\n    return parseModuleOrNamespaceDeclaration(pos, hasJSDoc, modifiersIn, flags);\n  }\n  function isExternalModuleReference2() {\n    return token() === 149 /* RequireKeyword */ && lookAhead(nextTokenIsOpenParen);\n  }\n  function nextTokenIsOpenParen() {\n    return nextToken() === 21 /* OpenParenToken */;\n  }\n  function nextTokenIsOpenBrace() {\n    return nextToken() === 19 /* OpenBraceToken */;\n  }\n  function nextTokenIsSlash() {\n    return nextToken() === 44 /* SlashToken */;\n  }\n  function parseNamespaceExportDeclaration(pos, hasJSDoc, modifiers) {\n    parseExpected(130 /* AsKeyword */);\n    parseExpected(145 /* NamespaceKeyword */);\n    const name = parseIdentifier();\n    parseSemicolon();\n    const node = factory2.createNamespaceExportDeclaration(name);\n    node.modifiers = modifiers;\n    return withJSDoc(finishNode(node, pos), hasJSDoc);\n  }\n  function parseImportDeclarationOrImportEqualsDeclaration(pos, hasJSDoc, modifiers) {\n    parseExpected(102 /* ImportKeyword */);\n    const afterImportPos = scanner2.getTokenFullStart();\n    let identifier;\n    if (isIdentifier2()) {\n      identifier = parseIdentifier();\n    }\n    let phaseModifier;\n    if ((identifier == null ? void 0 : identifier.escapedText) === \"type\" && (token() !== 161 /* FromKeyword */ || isIdentifier2() && lookAhead(nextTokenIsFromKeywordOrEqualsToken)) && (isIdentifier2() || tokenAfterImportDefinitelyProducesImportDeclaration())) {\n      phaseModifier = 156 /* TypeKeyword */;\n      identifier = isIdentifier2() ? parseIdentifier() : void 0;\n    } else if ((identifier == null ? void 0 : identifier.escapedText) === \"defer\" && (token() === 161 /* FromKeyword */ ? !lookAhead(nextTokenIsStringLiteral) : token() !== 28 /* CommaToken */ && token() !== 64 /* EqualsToken */)) {\n      phaseModifier = 166 /* DeferKeyword */;\n      identifier = isIdentifier2() ? parseIdentifier() : void 0;\n    }\n    if (identifier && !tokenAfterImportedIdentifierDefinitelyProducesImportDeclaration() && phaseModifier !== 166 /* DeferKeyword */) {\n      return parseImportEqualsDeclaration(pos, hasJSDoc, modifiers, identifier, phaseModifier === 156 /* TypeKeyword */);\n    }\n    const importClause = tryParseImportClause(\n      identifier,\n      afterImportPos,\n      phaseModifier,\n      /*skipJsDocLeadingAsterisks*/\n      void 0\n    );\n    const moduleSpecifier = parseModuleSpecifier();\n    const attributes = tryParseImportAttributes();\n    parseSemicolon();\n    const node = factory2.createImportDeclaration(modifiers, importClause, moduleSpecifier, attributes);\n    return withJSDoc(finishNode(node, pos), hasJSDoc);\n  }\n  function tryParseImportClause(identifier, pos, phaseModifier, skipJsDocLeadingAsterisks = false) {\n    let importClause;\n    if (identifier || // import id\n    token() === 42 /* AsteriskToken */ || // import *\n    token() === 19 /* OpenBraceToken */) {\n      importClause = parseImportClause(identifier, pos, phaseModifier, skipJsDocLeadingAsterisks);\n      parseExpected(161 /* FromKeyword */);\n    }\n    return importClause;\n  }\n  function tryParseImportAttributes() {\n    const currentToken2 = token();\n    if ((currentToken2 === 118 /* WithKeyword */ || currentToken2 === 132 /* AssertKeyword */) && !scanner2.hasPrecedingLineBreak()) {\n      return parseImportAttributes(currentToken2);\n    }\n  }\n  function parseImportAttribute() {\n    const pos = getNodePos();\n    const name = tokenIsIdentifierOrKeyword(token()) ? parseIdentifierName() : parseLiteralLikeNode(11 /* StringLiteral */);\n    parseExpected(59 /* ColonToken */);\n    const value = parseAssignmentExpressionOrHigher(\n      /*allowReturnTypeInArrowFunction*/\n      true\n    );\n    return finishNode(factory2.createImportAttribute(name, value), pos);\n  }\n  function parseImportAttributes(token2, skipKeyword) {\n    const pos = getNodePos();\n    if (!skipKeyword) {\n      parseExpected(token2);\n    }\n    const openBracePosition = scanner2.getTokenStart();\n    if (parseExpected(19 /* OpenBraceToken */)) {\n      const multiLine = scanner2.hasPrecedingLineBreak();\n      const elements = parseDelimitedList(\n        24 /* ImportAttributes */,\n        parseImportAttribute,\n        /*considerSemicolonAsDelimiter*/\n        true\n      );\n      if (!parseExpected(20 /* CloseBraceToken */)) {\n        const lastError = lastOrUndefined(parseDiagnostics);\n        if (lastError && lastError.code === Diagnostics._0_expected.code) {\n          addRelatedInfo(\n            lastError,\n            createDetachedDiagnostic(fileName, sourceText, openBracePosition, 1, Diagnostics.The_parser_expected_to_find_a_1_to_match_the_0_token_here, \"{\", \"}\")\n          );\n        }\n      }\n      return finishNode(factory2.createImportAttributes(elements, multiLine, token2), pos);\n    } else {\n      const elements = createNodeArray(\n        [],\n        getNodePos(),\n        /*end*/\n        void 0,\n        /*hasTrailingComma*/\n        false\n      );\n      return finishNode(factory2.createImportAttributes(\n        elements,\n        /*multiLine*/\n        false,\n        token2\n      ), pos);\n    }\n  }\n  function tokenAfterImportDefinitelyProducesImportDeclaration() {\n    return token() === 42 /* AsteriskToken */ || token() === 19 /* OpenBraceToken */;\n  }\n  function tokenAfterImportedIdentifierDefinitelyProducesImportDeclaration() {\n    return token() === 28 /* CommaToken */ || token() === 161 /* FromKeyword */;\n  }\n  function parseImportEqualsDeclaration(pos, hasJSDoc, modifiers, identifier, isTypeOnly) {\n    parseExpected(64 /* EqualsToken */);\n    const moduleReference = parseModuleReference();\n    parseSemicolon();\n    const node = factory2.createImportEqualsDeclaration(modifiers, isTypeOnly, identifier, moduleReference);\n    const finished = withJSDoc(finishNode(node, pos), hasJSDoc);\n    return finished;\n  }\n  function parseImportClause(identifier, pos, phaseModifier, skipJsDocLeadingAsterisks) {\n    let namedBindings;\n    if (!identifier || parseOptional(28 /* CommaToken */)) {\n      if (skipJsDocLeadingAsterisks) scanner2.setSkipJsDocLeadingAsterisks(true);\n      if (token() === 42 /* AsteriskToken */) {\n        namedBindings = parseNamespaceImport();\n      } else {\n        namedBindings = parseNamedImportsOrExports(276 /* NamedImports */);\n      }\n      if (skipJsDocLeadingAsterisks) scanner2.setSkipJsDocLeadingAsterisks(false);\n    }\n    return finishNode(factory2.createImportClause(phaseModifier, identifier, namedBindings), pos);\n  }\n  function parseModuleReference() {\n    return isExternalModuleReference2() ? parseExternalModuleReference() : parseEntityName(\n      /*allowReservedWords*/\n      false\n    );\n  }\n  function parseExternalModuleReference() {\n    const pos = getNodePos();\n    parseExpected(149 /* RequireKeyword */);\n    parseExpected(21 /* OpenParenToken */);\n    const expression = parseModuleSpecifier();\n    parseExpected(22 /* CloseParenToken */);\n    return finishNode(factory2.createExternalModuleReference(expression), pos);\n  }\n  function parseModuleSpecifier() {\n    if (token() === 11 /* StringLiteral */) {\n      const result = parseLiteralNode();\n      result.text = internIdentifier(result.text);\n      return result;\n    } else {\n      return parseExpression();\n    }\n  }\n  function parseNamespaceImport() {\n    const pos = getNodePos();\n    parseExpected(42 /* AsteriskToken */);\n    parseExpected(130 /* AsKeyword */);\n    const name = parseIdentifier();\n    return finishNode(factory2.createNamespaceImport(name), pos);\n  }\n  function canParseModuleExportName() {\n    return tokenIsIdentifierOrKeyword(token()) || token() === 11 /* StringLiteral */;\n  }\n  function parseModuleExportName(parseName) {\n    return token() === 11 /* StringLiteral */ ? parseLiteralNode() : parseName();\n  }\n  function parseNamedImportsOrExports(kind) {\n    const pos = getNodePos();\n    const node = kind === 276 /* NamedImports */ ? factory2.createNamedImports(parseBracketedList(23 /* ImportOrExportSpecifiers */, parseImportSpecifier, 19 /* OpenBraceToken */, 20 /* CloseBraceToken */)) : factory2.createNamedExports(parseBracketedList(23 /* ImportOrExportSpecifiers */, parseExportSpecifier, 19 /* OpenBraceToken */, 20 /* CloseBraceToken */));\n    return finishNode(node, pos);\n  }\n  function parseExportSpecifier() {\n    const hasJSDoc = hasPrecedingJSDocComment();\n    return withJSDoc(parseImportOrExportSpecifier(282 /* ExportSpecifier */), hasJSDoc);\n  }\n  function parseImportSpecifier() {\n    return parseImportOrExportSpecifier(277 /* ImportSpecifier */);\n  }\n  function parseImportOrExportSpecifier(kind) {\n    const pos = getNodePos();\n    let checkIdentifierIsKeyword = isKeyword(token()) && !isIdentifier2();\n    let checkIdentifierStart = scanner2.getTokenStart();\n    let checkIdentifierEnd = scanner2.getTokenEnd();\n    let isTypeOnly = false;\n    let propertyName;\n    let canParseAsKeyword = true;\n    let name = parseModuleExportName(parseIdentifierName);\n    if (name.kind === 80 /* Identifier */ && name.escapedText === \"type\") {\n      if (token() === 130 /* AsKeyword */) {\n        const firstAs = parseIdentifierName();\n        if (token() === 130 /* AsKeyword */) {\n          const secondAs = parseIdentifierName();\n          if (canParseModuleExportName()) {\n            isTypeOnly = true;\n            propertyName = firstAs;\n            name = parseModuleExportName(parseNameWithKeywordCheck);\n            canParseAsKeyword = false;\n          } else {\n            propertyName = name;\n            name = secondAs;\n            canParseAsKeyword = false;\n          }\n        } else if (canParseModuleExportName()) {\n          propertyName = name;\n          canParseAsKeyword = false;\n          name = parseModuleExportName(parseNameWithKeywordCheck);\n        } else {\n          isTypeOnly = true;\n          name = firstAs;\n        }\n      } else if (canParseModuleExportName()) {\n        isTypeOnly = true;\n        name = parseModuleExportName(parseNameWithKeywordCheck);\n      }\n    }\n    if (canParseAsKeyword && token() === 130 /* AsKeyword */) {\n      propertyName = name;\n      parseExpected(130 /* AsKeyword */);\n      name = parseModuleExportName(parseNameWithKeywordCheck);\n    }\n    if (kind === 277 /* ImportSpecifier */) {\n      if (name.kind !== 80 /* Identifier */) {\n        parseErrorAt(skipTrivia(sourceText, name.pos), name.end, Diagnostics.Identifier_expected);\n        name = setTextRangePosEnd(createMissingNode(\n          80 /* Identifier */,\n          /*reportAtCurrentPosition*/\n          false\n        ), name.pos, name.pos);\n      } else if (checkIdentifierIsKeyword) {\n        parseErrorAt(checkIdentifierStart, checkIdentifierEnd, Diagnostics.Identifier_expected);\n      }\n    }\n    const node = kind === 277 /* ImportSpecifier */ ? factory2.createImportSpecifier(isTypeOnly, propertyName, name) : factory2.createExportSpecifier(isTypeOnly, propertyName, name);\n    return finishNode(node, pos);\n    function parseNameWithKeywordCheck() {\n      checkIdentifierIsKeyword = isKeyword(token()) && !isIdentifier2();\n      checkIdentifierStart = scanner2.getTokenStart();\n      checkIdentifierEnd = scanner2.getTokenEnd();\n      return parseIdentifierName();\n    }\n  }\n  function parseNamespaceExport(pos) {\n    return finishNode(factory2.createNamespaceExport(parseModuleExportName(parseIdentifierName)), pos);\n  }\n  function parseExportDeclaration(pos, hasJSDoc, modifiers) {\n    const savedAwaitContext = inAwaitContext();\n    setAwaitContext(\n      /*value*/\n      true\n    );\n    let exportClause;\n    let moduleSpecifier;\n    let attributes;\n    const isTypeOnly = parseOptional(156 /* TypeKeyword */);\n    const namespaceExportPos = getNodePos();\n    if (parseOptional(42 /* AsteriskToken */)) {\n      if (parseOptional(130 /* AsKeyword */)) {\n        exportClause = parseNamespaceExport(namespaceExportPos);\n      }\n      parseExpected(161 /* FromKeyword */);\n      moduleSpecifier = parseModuleSpecifier();\n    } else {\n      exportClause = parseNamedImportsOrExports(280 /* NamedExports */);\n      if (token() === 161 /* FromKeyword */ || token() === 11 /* StringLiteral */ && !scanner2.hasPrecedingLineBreak()) {\n        parseExpected(161 /* FromKeyword */);\n        moduleSpecifier = parseModuleSpecifier();\n      }\n    }\n    const currentToken2 = token();\n    if (moduleSpecifier && (currentToken2 === 118 /* WithKeyword */ || currentToken2 === 132 /* AssertKeyword */) && !scanner2.hasPrecedingLineBreak()) {\n      attributes = parseImportAttributes(currentToken2);\n    }\n    parseSemicolon();\n    setAwaitContext(savedAwaitContext);\n    const node = factory2.createExportDeclaration(modifiers, isTypeOnly, exportClause, moduleSpecifier, attributes);\n    return withJSDoc(finishNode(node, pos), hasJSDoc);\n  }\n  function parseExportAssignment(pos, hasJSDoc, modifiers) {\n    const savedAwaitContext = inAwaitContext();\n    setAwaitContext(\n      /*value*/\n      true\n    );\n    let isExportEquals;\n    if (parseOptional(64 /* EqualsToken */)) {\n      isExportEquals = true;\n    } else {\n      parseExpected(90 /* DefaultKeyword */);\n    }\n    const expression = parseAssignmentExpressionOrHigher(\n      /*allowReturnTypeInArrowFunction*/\n      true\n    );\n    parseSemicolon();\n    setAwaitContext(savedAwaitContext);\n    const node = factory2.createExportAssignment(modifiers, isExportEquals, expression);\n    return withJSDoc(finishNode(node, pos), hasJSDoc);\n  }\n  let ParsingContext;\n  ((ParsingContext2) => {\n    ParsingContext2[ParsingContext2[\"SourceElements\"] = 0] = \"SourceElements\";\n    ParsingContext2[ParsingContext2[\"BlockStatements\"] = 1] = \"BlockStatements\";\n    ParsingContext2[ParsingContext2[\"SwitchClauses\"] = 2] = \"SwitchClauses\";\n    ParsingContext2[ParsingContext2[\"SwitchClauseStatements\"] = 3] = \"SwitchClauseStatements\";\n    ParsingContext2[ParsingContext2[\"TypeMembers\"] = 4] = \"TypeMembers\";\n    ParsingContext2[ParsingContext2[\"ClassMembers\"] = 5] = \"ClassMembers\";\n    ParsingContext2[ParsingContext2[\"EnumMembers\"] = 6] = \"EnumMembers\";\n    ParsingContext2[ParsingContext2[\"HeritageClauseElement\"] = 7] = \"HeritageClauseElement\";\n    ParsingContext2[ParsingContext2[\"VariableDeclarations\"] = 8] = \"VariableDeclarations\";\n    ParsingContext2[ParsingContext2[\"ObjectBindingElements\"] = 9] = \"ObjectBindingElements\";\n    ParsingContext2[ParsingContext2[\"ArrayBindingElements\"] = 10] = \"ArrayBindingElements\";\n    ParsingContext2[ParsingContext2[\"ArgumentExpressions\"] = 11] = \"ArgumentExpressions\";\n    ParsingContext2[ParsingContext2[\"ObjectLiteralMembers\"] = 12] = \"ObjectLiteralMembers\";\n    ParsingContext2[ParsingContext2[\"JsxAttributes\"] = 13] = \"JsxAttributes\";\n    ParsingContext2[ParsingContext2[\"JsxChildren\"] = 14] = \"JsxChildren\";\n    ParsingContext2[ParsingContext2[\"ArrayLiteralMembers\"] = 15] = \"ArrayLiteralMembers\";\n    ParsingContext2[ParsingContext2[\"Parameters\"] = 16] = \"Parameters\";\n    ParsingContext2[ParsingContext2[\"JSDocParameters\"] = 17] = \"JSDocParameters\";\n    ParsingContext2[ParsingContext2[\"RestProperties\"] = 18] = \"RestProperties\";\n    ParsingContext2[ParsingContext2[\"TypeParameters\"] = 19] = \"TypeParameters\";\n    ParsingContext2[ParsingContext2[\"TypeArguments\"] = 20] = \"TypeArguments\";\n    ParsingContext2[ParsingContext2[\"TupleElementTypes\"] = 21] = \"TupleElementTypes\";\n    ParsingContext2[ParsingContext2[\"HeritageClauses\"] = 22] = \"HeritageClauses\";\n    ParsingContext2[ParsingContext2[\"ImportOrExportSpecifiers\"] = 23] = \"ImportOrExportSpecifiers\";\n    ParsingContext2[ParsingContext2[\"ImportAttributes\"] = 24] = \"ImportAttributes\";\n    ParsingContext2[ParsingContext2[\"JSDocComment\"] = 25] = \"JSDocComment\";\n    ParsingContext2[ParsingContext2[\"Count\"] = 26] = \"Count\";\n  })(ParsingContext || (ParsingContext = {}));\n  let Tristate;\n  ((Tristate2) => {\n    Tristate2[Tristate2[\"False\"] = 0] = \"False\";\n    Tristate2[Tristate2[\"True\"] = 1] = \"True\";\n    Tristate2[Tristate2[\"Unknown\"] = 2] = \"Unknown\";\n  })(Tristate || (Tristate = {}));\n  let JSDocParser;\n  ((JSDocParser2) => {\n    function parseJSDocTypeExpressionForTests2(content, start, length2) {\n      initializeState(\n        \"file.js\",\n        content,\n        99 /* Latest */,\n        /*syntaxCursor*/\n        void 0,\n        1 /* JS */,\n        0 /* ParseAll */\n      );\n      scanner2.setText(content, start, length2);\n      currentToken = scanner2.scan();\n      const jsDocTypeExpression = parseJSDocTypeExpression();\n      const sourceFile = createSourceFile2(\n        \"file.js\",\n        99 /* Latest */,\n        1 /* JS */,\n        /*isDeclarationFile*/\n        false,\n        [],\n        factoryCreateToken(1 /* EndOfFileToken */),\n        0 /* None */,\n        noop\n      );\n      const diagnostics = attachFileToDiagnostics(parseDiagnostics, sourceFile);\n      if (jsDocDiagnostics) {\n        sourceFile.jsDocDiagnostics = attachFileToDiagnostics(jsDocDiagnostics, sourceFile);\n      }\n      clearState();\n      return jsDocTypeExpression ? { jsDocTypeExpression, diagnostics } : void 0;\n    }\n    JSDocParser2.parseJSDocTypeExpressionForTests = parseJSDocTypeExpressionForTests2;\n    function parseJSDocTypeExpression(mayOmitBraces) {\n      const pos = getNodePos();\n      const hasBrace = (mayOmitBraces ? parseOptional : parseExpected)(19 /* OpenBraceToken */);\n      const type = doInsideOfContext(16777216 /* JSDoc */, parseJSDocType);\n      if (!mayOmitBraces || hasBrace) {\n        parseExpectedJSDoc(20 /* CloseBraceToken */);\n      }\n      const result = factory2.createJSDocTypeExpression(type);\n      fixupParentReferences(result);\n      return finishNode(result, pos);\n    }\n    JSDocParser2.parseJSDocTypeExpression = parseJSDocTypeExpression;\n    function parseJSDocNameReference() {\n      const pos = getNodePos();\n      const hasBrace = parseOptional(19 /* OpenBraceToken */);\n      const p2 = getNodePos();\n      let entityName = parseEntityName(\n        /*allowReservedWords*/\n        false\n      );\n      while (token() === 81 /* PrivateIdentifier */) {\n        reScanHashToken();\n        nextTokenJSDoc();\n        entityName = finishNode(factory2.createJSDocMemberName(entityName, parseIdentifier()), p2);\n      }\n      if (hasBrace) {\n        parseExpectedJSDoc(20 /* CloseBraceToken */);\n      }\n      const result = factory2.createJSDocNameReference(entityName);\n      fixupParentReferences(result);\n      return finishNode(result, pos);\n    }\n    JSDocParser2.parseJSDocNameReference = parseJSDocNameReference;\n    function parseIsolatedJSDocComment2(content, start, length2) {\n      initializeState(\n        \"\",\n        content,\n        99 /* Latest */,\n        /*syntaxCursor*/\n        void 0,\n        1 /* JS */,\n        0 /* ParseAll */\n      );\n      const jsDoc = doInsideOfContext(16777216 /* JSDoc */, () => parseJSDocCommentWorker(start, length2));\n      const sourceFile = { languageVariant: 0 /* Standard */, text: content };\n      const diagnostics = attachFileToDiagnostics(parseDiagnostics, sourceFile);\n      clearState();\n      return jsDoc ? { jsDoc, diagnostics } : void 0;\n    }\n    JSDocParser2.parseIsolatedJSDocComment = parseIsolatedJSDocComment2;\n    function parseJSDocComment(parent2, start, length2) {\n      const saveToken = currentToken;\n      const saveParseDiagnosticsLength = parseDiagnostics.length;\n      const saveParseErrorBeforeNextFinishedNode = parseErrorBeforeNextFinishedNode;\n      const comment = doInsideOfContext(16777216 /* JSDoc */, () => parseJSDocCommentWorker(start, length2));\n      setParent(comment, parent2);\n      if (contextFlags & 524288 /* JavaScriptFile */) {\n        if (!jsDocDiagnostics) {\n          jsDocDiagnostics = [];\n        }\n        addRange(jsDocDiagnostics, parseDiagnostics, saveParseDiagnosticsLength);\n      }\n      currentToken = saveToken;\n      parseDiagnostics.length = saveParseDiagnosticsLength;\n      parseErrorBeforeNextFinishedNode = saveParseErrorBeforeNextFinishedNode;\n      return comment;\n    }\n    JSDocParser2.parseJSDocComment = parseJSDocComment;\n    let JSDocState;\n    ((JSDocState2) => {\n      JSDocState2[JSDocState2[\"BeginningOfLine\"] = 0] = \"BeginningOfLine\";\n      JSDocState2[JSDocState2[\"SawAsterisk\"] = 1] = \"SawAsterisk\";\n      JSDocState2[JSDocState2[\"SavingComments\"] = 2] = \"SavingComments\";\n      JSDocState2[JSDocState2[\"SavingBackticks\"] = 3] = \"SavingBackticks\";\n    })(JSDocState || (JSDocState = {}));\n    let PropertyLikeParse;\n    ((PropertyLikeParse2) => {\n      PropertyLikeParse2[PropertyLikeParse2[\"Property\"] = 1] = \"Property\";\n      PropertyLikeParse2[PropertyLikeParse2[\"Parameter\"] = 2] = \"Parameter\";\n      PropertyLikeParse2[PropertyLikeParse2[\"CallbackParameter\"] = 4] = \"CallbackParameter\";\n    })(PropertyLikeParse || (PropertyLikeParse = {}));\n    function parseJSDocCommentWorker(start = 0, length2) {\n      const content = sourceText;\n      const end = length2 === void 0 ? content.length : start + length2;\n      length2 = end - start;\n      Debug.assert(start >= 0);\n      Debug.assert(start <= end);\n      Debug.assert(end <= content.length);\n      if (!isJSDocLikeText(content, start)) {\n        return void 0;\n      }\n      let tags;\n      let tagsPos;\n      let tagsEnd;\n      let linkEnd;\n      let commentsPos;\n      let comments = [];\n      const parts = [];\n      const saveParsingContext = parsingContext;\n      parsingContext |= 1 << 25 /* JSDocComment */;\n      const result = scanner2.scanRange(start + 3, length2 - 5, doJSDocScan);\n      parsingContext = saveParsingContext;\n      return result;\n      function doJSDocScan() {\n        let state = 1 /* SawAsterisk */;\n        let margin;\n        let indent3 = start - (content.lastIndexOf(\"\\n\", start) + 1) + 4;\n        function pushComment(text) {\n          if (!margin) {\n            margin = indent3;\n          }\n          comments.push(text);\n          indent3 += text.length;\n        }\n        nextTokenJSDoc();\n        while (parseOptionalJsdoc(5 /* WhitespaceTrivia */)) ;\n        if (parseOptionalJsdoc(4 /* NewLineTrivia */)) {\n          state = 0 /* BeginningOfLine */;\n          indent3 = 0;\n        }\n        loop:\n          while (true) {\n            switch (token()) {\n              case 60 /* AtToken */:\n                removeTrailingWhitespace(comments);\n                if (!commentsPos) commentsPos = getNodePos();\n                addTag(parseTag(indent3));\n                state = 0 /* BeginningOfLine */;\n                margin = void 0;\n                break;\n              case 4 /* NewLineTrivia */:\n                comments.push(scanner2.getTokenText());\n                state = 0 /* BeginningOfLine */;\n                indent3 = 0;\n                break;\n              case 42 /* AsteriskToken */:\n                const asterisk = scanner2.getTokenText();\n                if (state === 1 /* SawAsterisk */) {\n                  state = 2 /* SavingComments */;\n                  pushComment(asterisk);\n                } else {\n                  Debug.assert(state === 0 /* BeginningOfLine */);\n                  state = 1 /* SawAsterisk */;\n                  indent3 += asterisk.length;\n                }\n                break;\n              case 5 /* WhitespaceTrivia */:\n                Debug.assert(state !== 2 /* SavingComments */, \"whitespace shouldn't come from the scanner while saving top-level comment text\");\n                const whitespace = scanner2.getTokenText();\n                if (margin !== void 0 && indent3 + whitespace.length > margin) {\n                  comments.push(whitespace.slice(margin - indent3));\n                }\n                indent3 += whitespace.length;\n                break;\n              case 1 /* EndOfFileToken */:\n                break loop;\n              case 82 /* JSDocCommentTextToken */:\n                state = 2 /* SavingComments */;\n                pushComment(scanner2.getTokenValue());\n                break;\n              case 19 /* OpenBraceToken */:\n                state = 2 /* SavingComments */;\n                const commentEnd = scanner2.getTokenFullStart();\n                const linkStart = scanner2.getTokenEnd() - 1;\n                const link = parseJSDocLink(linkStart);\n                if (link) {\n                  if (!linkEnd) {\n                    removeLeadingNewlines(comments);\n                  }\n                  parts.push(finishNode(factory2.createJSDocText(comments.join(\"\")), linkEnd ?? start, commentEnd));\n                  parts.push(link);\n                  comments = [];\n                  linkEnd = scanner2.getTokenEnd();\n                  break;\n                }\n              // fallthrough if it's not a {@link sequence\n              default:\n                state = 2 /* SavingComments */;\n                pushComment(scanner2.getTokenText());\n                break;\n            }\n            if (state === 2 /* SavingComments */) {\n              nextJSDocCommentTextToken(\n                /*inBackticks*/\n                false\n              );\n            } else {\n              nextTokenJSDoc();\n            }\n          }\n        const trimmedComments = comments.join(\"\").trimEnd();\n        if (parts.length && trimmedComments.length) {\n          parts.push(finishNode(factory2.createJSDocText(trimmedComments), linkEnd ?? start, commentsPos));\n        }\n        if (parts.length && tags) Debug.assertIsDefined(commentsPos, \"having parsed tags implies that the end of the comment span should be set\");\n        const tagsArray = tags && createNodeArray(tags, tagsPos, tagsEnd);\n        return finishNode(factory2.createJSDocComment(parts.length ? createNodeArray(parts, start, commentsPos) : trimmedComments.length ? trimmedComments : void 0, tagsArray), start, end);\n      }\n      function removeLeadingNewlines(comments2) {\n        while (comments2.length && (comments2[0] === \"\\n\" || comments2[0] === \"\\r\")) {\n          comments2.shift();\n        }\n      }\n      function removeTrailingWhitespace(comments2) {\n        while (comments2.length) {\n          const trimmed = comments2[comments2.length - 1].trimEnd();\n          if (trimmed === \"\") {\n            comments2.pop();\n          } else if (trimmed.length < comments2[comments2.length - 1].length) {\n            comments2[comments2.length - 1] = trimmed;\n            break;\n          } else {\n            break;\n          }\n        }\n      }\n      function isNextNonwhitespaceTokenEndOfFile() {\n        while (true) {\n          nextTokenJSDoc();\n          if (token() === 1 /* EndOfFileToken */) {\n            return true;\n          }\n          if (!(token() === 5 /* WhitespaceTrivia */ || token() === 4 /* NewLineTrivia */)) {\n            return false;\n          }\n        }\n      }\n      function skipWhitespace() {\n        if (token() === 5 /* WhitespaceTrivia */ || token() === 4 /* NewLineTrivia */) {\n          if (lookAhead(isNextNonwhitespaceTokenEndOfFile)) {\n            return;\n          }\n        }\n        while (token() === 5 /* WhitespaceTrivia */ || token() === 4 /* NewLineTrivia */) {\n          nextTokenJSDoc();\n        }\n      }\n      function skipWhitespaceOrAsterisk() {\n        if (token() === 5 /* WhitespaceTrivia */ || token() === 4 /* NewLineTrivia */) {\n          if (lookAhead(isNextNonwhitespaceTokenEndOfFile)) {\n            return \"\";\n          }\n        }\n        let precedingLineBreak = scanner2.hasPrecedingLineBreak();\n        let seenLineBreak = false;\n        let indentText = \"\";\n        while (precedingLineBreak && token() === 42 /* AsteriskToken */ || token() === 5 /* WhitespaceTrivia */ || token() === 4 /* NewLineTrivia */) {\n          indentText += scanner2.getTokenText();\n          if (token() === 4 /* NewLineTrivia */) {\n            precedingLineBreak = true;\n            seenLineBreak = true;\n            indentText = \"\";\n          } else if (token() === 42 /* AsteriskToken */) {\n            precedingLineBreak = false;\n          }\n          nextTokenJSDoc();\n        }\n        return seenLineBreak ? indentText : \"\";\n      }\n      function parseTag(margin) {\n        Debug.assert(token() === 60 /* AtToken */);\n        const start2 = scanner2.getTokenStart();\n        nextTokenJSDoc();\n        const tagName = parseJSDocIdentifierName(\n          /*message*/\n          void 0\n        );\n        const indentText = skipWhitespaceOrAsterisk();\n        let tag;\n        switch (tagName.escapedText) {\n          case \"author\":\n            tag = parseAuthorTag(start2, tagName, margin, indentText);\n            break;\n          case \"implements\":\n            tag = parseImplementsTag(start2, tagName, margin, indentText);\n            break;\n          case \"augments\":\n          case \"extends\":\n            tag = parseAugmentsTag(start2, tagName, margin, indentText);\n            break;\n          case \"class\":\n          case \"constructor\":\n            tag = parseSimpleTag(start2, factory2.createJSDocClassTag, tagName, margin, indentText);\n            break;\n          case \"public\":\n            tag = parseSimpleTag(start2, factory2.createJSDocPublicTag, tagName, margin, indentText);\n            break;\n          case \"private\":\n            tag = parseSimpleTag(start2, factory2.createJSDocPrivateTag, tagName, margin, indentText);\n            break;\n          case \"protected\":\n            tag = parseSimpleTag(start2, factory2.createJSDocProtectedTag, tagName, margin, indentText);\n            break;\n          case \"readonly\":\n            tag = parseSimpleTag(start2, factory2.createJSDocReadonlyTag, tagName, margin, indentText);\n            break;\n          case \"override\":\n            tag = parseSimpleTag(start2, factory2.createJSDocOverrideTag, tagName, margin, indentText);\n            break;\n          case \"deprecated\":\n            hasDeprecatedTag = true;\n            tag = parseSimpleTag(start2, factory2.createJSDocDeprecatedTag, tagName, margin, indentText);\n            break;\n          case \"this\":\n            tag = parseThisTag(start2, tagName, margin, indentText);\n            break;\n          case \"enum\":\n            tag = parseEnumTag(start2, tagName, margin, indentText);\n            break;\n          case \"arg\":\n          case \"argument\":\n          case \"param\":\n            return parseParameterOrPropertyTag(start2, tagName, 2 /* Parameter */, margin);\n          case \"return\":\n          case \"returns\":\n            tag = parseReturnTag(start2, tagName, margin, indentText);\n            break;\n          case \"template\":\n            tag = parseTemplateTag(start2, tagName, margin, indentText);\n            break;\n          case \"type\":\n            tag = parseTypeTag(start2, tagName, margin, indentText);\n            break;\n          case \"typedef\":\n            tag = parseTypedefTag(start2, tagName, margin, indentText);\n            break;\n          case \"callback\":\n            tag = parseCallbackTag(start2, tagName, margin, indentText);\n            break;\n          case \"overload\":\n            tag = parseOverloadTag(start2, tagName, margin, indentText);\n            break;\n          case \"satisfies\":\n            tag = parseSatisfiesTag(start2, tagName, margin, indentText);\n            break;\n          case \"see\":\n            tag = parseSeeTag(start2, tagName, margin, indentText);\n            break;\n          case \"exception\":\n          case \"throws\":\n            tag = parseThrowsTag(start2, tagName, margin, indentText);\n            break;\n          case \"import\":\n            tag = parseImportTag(start2, tagName, margin, indentText);\n            break;\n          default:\n            tag = parseUnknownTag(start2, tagName, margin, indentText);\n            break;\n        }\n        return tag;\n      }\n      function parseTrailingTagComments(pos, end2, margin, indentText) {\n        if (!indentText) {\n          margin += end2 - pos;\n        }\n        return parseTagComments(margin, indentText.slice(margin));\n      }\n      function parseTagComments(indent3, initialMargin) {\n        const commentsPos2 = getNodePos();\n        let comments2 = [];\n        const parts2 = [];\n        let linkEnd2;\n        let state = 0 /* BeginningOfLine */;\n        let margin;\n        function pushComment(text) {\n          if (!margin) {\n            margin = indent3;\n          }\n          comments2.push(text);\n          indent3 += text.length;\n        }\n        if (initialMargin !== void 0) {\n          if (initialMargin !== \"\") {\n            pushComment(initialMargin);\n          }\n          state = 1 /* SawAsterisk */;\n        }\n        let tok = token();\n        loop:\n          while (true) {\n            switch (tok) {\n              case 4 /* NewLineTrivia */:\n                state = 0 /* BeginningOfLine */;\n                comments2.push(scanner2.getTokenText());\n                indent3 = 0;\n                break;\n              case 60 /* AtToken */:\n                scanner2.resetTokenState(scanner2.getTokenEnd() - 1);\n                break loop;\n              case 1 /* EndOfFileToken */:\n                break loop;\n              case 5 /* WhitespaceTrivia */:\n                Debug.assert(state !== 2 /* SavingComments */ && state !== 3 /* SavingBackticks */, \"whitespace shouldn't come from the scanner while saving comment text\");\n                const whitespace = scanner2.getTokenText();\n                if (margin !== void 0 && indent3 + whitespace.length > margin) {\n                  comments2.push(whitespace.slice(margin - indent3));\n                  state = 2 /* SavingComments */;\n                }\n                indent3 += whitespace.length;\n                break;\n              case 19 /* OpenBraceToken */:\n                state = 2 /* SavingComments */;\n                const commentEnd = scanner2.getTokenFullStart();\n                const linkStart = scanner2.getTokenEnd() - 1;\n                const link = parseJSDocLink(linkStart);\n                if (link) {\n                  parts2.push(finishNode(factory2.createJSDocText(comments2.join(\"\")), linkEnd2 ?? commentsPos2, commentEnd));\n                  parts2.push(link);\n                  comments2 = [];\n                  linkEnd2 = scanner2.getTokenEnd();\n                } else {\n                  pushComment(scanner2.getTokenText());\n                }\n                break;\n              case 62 /* BacktickToken */:\n                if (state === 3 /* SavingBackticks */) {\n                  state = 2 /* SavingComments */;\n                } else {\n                  state = 3 /* SavingBackticks */;\n                }\n                pushComment(scanner2.getTokenText());\n                break;\n              case 82 /* JSDocCommentTextToken */:\n                if (state !== 3 /* SavingBackticks */) {\n                  state = 2 /* SavingComments */;\n                }\n                pushComment(scanner2.getTokenValue());\n                break;\n              case 42 /* AsteriskToken */:\n                if (state === 0 /* BeginningOfLine */) {\n                  state = 1 /* SawAsterisk */;\n                  indent3 += 1;\n                  break;\n                }\n              // record the * as a comment\n              // falls through\n              default:\n                if (state !== 3 /* SavingBackticks */) {\n                  state = 2 /* SavingComments */;\n                }\n                pushComment(scanner2.getTokenText());\n                break;\n            }\n            if (state === 2 /* SavingComments */ || state === 3 /* SavingBackticks */) {\n              tok = nextJSDocCommentTextToken(state === 3 /* SavingBackticks */);\n            } else {\n              tok = nextTokenJSDoc();\n            }\n          }\n        removeLeadingNewlines(comments2);\n        const trimmedComments = comments2.join(\"\").trimEnd();\n        if (parts2.length) {\n          if (trimmedComments.length) {\n            parts2.push(finishNode(factory2.createJSDocText(trimmedComments), linkEnd2 ?? commentsPos2));\n          }\n          return createNodeArray(parts2, commentsPos2, scanner2.getTokenEnd());\n        } else if (trimmedComments.length) {\n          return trimmedComments;\n        }\n      }\n      function parseJSDocLink(start2) {\n        const linkType = tryParse(parseJSDocLinkPrefix);\n        if (!linkType) {\n          return void 0;\n        }\n        nextTokenJSDoc();\n        skipWhitespace();\n        const name = parseJSDocLinkName();\n        const text = [];\n        while (token() !== 20 /* CloseBraceToken */ && token() !== 4 /* NewLineTrivia */ && token() !== 1 /* EndOfFileToken */) {\n          text.push(scanner2.getTokenText());\n          nextTokenJSDoc();\n        }\n        const create = linkType === \"link\" ? factory2.createJSDocLink : linkType === \"linkcode\" ? factory2.createJSDocLinkCode : factory2.createJSDocLinkPlain;\n        return finishNode(create(name, text.join(\"\")), start2, scanner2.getTokenEnd());\n      }\n      function parseJSDocLinkName() {\n        if (tokenIsIdentifierOrKeyword(token())) {\n          const pos = getNodePos();\n          let name = parseIdentifierName();\n          while (parseOptional(25 /* DotToken */)) {\n            name = finishNode(factory2.createQualifiedName(name, token() === 81 /* PrivateIdentifier */ ? createMissingNode(\n              80 /* Identifier */,\n              /*reportAtCurrentPosition*/\n              false\n            ) : parseIdentifierName()), pos);\n          }\n          while (token() === 81 /* PrivateIdentifier */) {\n            reScanHashToken();\n            nextTokenJSDoc();\n            name = finishNode(factory2.createJSDocMemberName(name, parseIdentifier()), pos);\n          }\n          return name;\n        }\n        return void 0;\n      }\n      function parseJSDocLinkPrefix() {\n        skipWhitespaceOrAsterisk();\n        if (token() === 19 /* OpenBraceToken */ && nextTokenJSDoc() === 60 /* AtToken */ && tokenIsIdentifierOrKeyword(nextTokenJSDoc())) {\n          const kind = scanner2.getTokenValue();\n          if (isJSDocLinkTag(kind)) return kind;\n        }\n      }\n      function isJSDocLinkTag(kind) {\n        return kind === \"link\" || kind === \"linkcode\" || kind === \"linkplain\";\n      }\n      function parseUnknownTag(start2, tagName, indent3, indentText) {\n        return finishNode(factory2.createJSDocUnknownTag(tagName, parseTrailingTagComments(start2, getNodePos(), indent3, indentText)), start2);\n      }\n      function addTag(tag) {\n        if (!tag) {\n          return;\n        }\n        if (!tags) {\n          tags = [tag];\n          tagsPos = tag.pos;\n        } else {\n          tags.push(tag);\n        }\n        tagsEnd = tag.end;\n      }\n      function tryParseTypeExpression() {\n        skipWhitespaceOrAsterisk();\n        return token() === 19 /* OpenBraceToken */ ? parseJSDocTypeExpression() : void 0;\n      }\n      function parseBracketNameInPropertyAndParamTag() {\n        const isBracketed = parseOptionalJsdoc(23 /* OpenBracketToken */);\n        if (isBracketed) {\n          skipWhitespace();\n        }\n        const isBackquoted = parseOptionalJsdoc(62 /* BacktickToken */);\n        const name = parseJSDocEntityName();\n        if (isBackquoted) {\n          parseExpectedTokenJSDoc(62 /* BacktickToken */);\n        }\n        if (isBracketed) {\n          skipWhitespace();\n          if (parseOptionalToken(64 /* EqualsToken */)) {\n            parseExpression();\n          }\n          parseExpected(24 /* CloseBracketToken */);\n        }\n        return { name, isBracketed };\n      }\n      function isObjectOrObjectArrayTypeReference(node) {\n        switch (node.kind) {\n          case 151 /* ObjectKeyword */:\n            return true;\n          case 189 /* ArrayType */:\n            return isObjectOrObjectArrayTypeReference(node.elementType);\n          default:\n            return isTypeReferenceNode(node) && isIdentifier(node.typeName) && node.typeName.escapedText === \"Object\" && !node.typeArguments;\n        }\n      }\n      function parseParameterOrPropertyTag(start2, tagName, target, indent3) {\n        let typeExpression = tryParseTypeExpression();\n        let isNameFirst = !typeExpression;\n        skipWhitespaceOrAsterisk();\n        const { name, isBracketed } = parseBracketNameInPropertyAndParamTag();\n        const indentText = skipWhitespaceOrAsterisk();\n        if (isNameFirst && !lookAhead(parseJSDocLinkPrefix)) {\n          typeExpression = tryParseTypeExpression();\n        }\n        const comment = parseTrailingTagComments(start2, getNodePos(), indent3, indentText);\n        const nestedTypeLiteral = parseNestedTypeLiteral(typeExpression, name, target, indent3);\n        if (nestedTypeLiteral) {\n          typeExpression = nestedTypeLiteral;\n          isNameFirst = true;\n        }\n        const result2 = target === 1 /* Property */ ? factory2.createJSDocPropertyTag(tagName, name, isBracketed, typeExpression, isNameFirst, comment) : factory2.createJSDocParameterTag(tagName, name, isBracketed, typeExpression, isNameFirst, comment);\n        return finishNode(result2, start2);\n      }\n      function parseNestedTypeLiteral(typeExpression, name, target, indent3) {\n        if (typeExpression && isObjectOrObjectArrayTypeReference(typeExpression.type)) {\n          const pos = getNodePos();\n          let child;\n          let children;\n          while (child = tryParse(() => parseChildParameterOrPropertyTag(target, indent3, name))) {\n            if (child.kind === 342 /* JSDocParameterTag */ || child.kind === 349 /* JSDocPropertyTag */) {\n              children = append(children, child);\n            } else if (child.kind === 346 /* JSDocTemplateTag */) {\n              parseErrorAtRange(child.tagName, Diagnostics.A_JSDoc_template_tag_may_not_follow_a_typedef_callback_or_overload_tag);\n            }\n          }\n          if (children) {\n            const literal = finishNode(factory2.createJSDocTypeLiteral(children, typeExpression.type.kind === 189 /* ArrayType */), pos);\n            return finishNode(factory2.createJSDocTypeExpression(literal), pos);\n          }\n        }\n      }\n      function parseReturnTag(start2, tagName, indent3, indentText) {\n        if (some(tags, isJSDocReturnTag)) {\n          parseErrorAt(tagName.pos, scanner2.getTokenStart(), Diagnostics._0_tag_already_specified, unescapeLeadingUnderscores(tagName.escapedText));\n        }\n        const typeExpression = tryParseTypeExpression();\n        return finishNode(factory2.createJSDocReturnTag(tagName, typeExpression, parseTrailingTagComments(start2, getNodePos(), indent3, indentText)), start2);\n      }\n      function parseTypeTag(start2, tagName, indent3, indentText) {\n        if (some(tags, isJSDocTypeTag)) {\n          parseErrorAt(tagName.pos, scanner2.getTokenStart(), Diagnostics._0_tag_already_specified, unescapeLeadingUnderscores(tagName.escapedText));\n        }\n        const typeExpression = parseJSDocTypeExpression(\n          /*mayOmitBraces*/\n          true\n        );\n        const comments2 = indent3 !== void 0 && indentText !== void 0 ? parseTrailingTagComments(start2, getNodePos(), indent3, indentText) : void 0;\n        return finishNode(factory2.createJSDocTypeTag(tagName, typeExpression, comments2), start2);\n      }\n      function parseSeeTag(start2, tagName, indent3, indentText) {\n        const isMarkdownOrJSDocLink = token() === 23 /* OpenBracketToken */ || lookAhead(() => nextTokenJSDoc() === 60 /* AtToken */ && tokenIsIdentifierOrKeyword(nextTokenJSDoc()) && isJSDocLinkTag(scanner2.getTokenValue()));\n        const nameExpression = isMarkdownOrJSDocLink ? void 0 : parseJSDocNameReference();\n        const comments2 = indent3 !== void 0 && indentText !== void 0 ? parseTrailingTagComments(start2, getNodePos(), indent3, indentText) : void 0;\n        return finishNode(factory2.createJSDocSeeTag(tagName, nameExpression, comments2), start2);\n      }\n      function parseThrowsTag(start2, tagName, indent3, indentText) {\n        const typeExpression = tryParseTypeExpression();\n        const comment = parseTrailingTagComments(start2, getNodePos(), indent3, indentText);\n        return finishNode(factory2.createJSDocThrowsTag(tagName, typeExpression, comment), start2);\n      }\n      function parseAuthorTag(start2, tagName, indent3, indentText) {\n        const commentStart = getNodePos();\n        const textOnly = parseAuthorNameAndEmail();\n        let commentEnd = scanner2.getTokenFullStart();\n        const comments2 = parseTrailingTagComments(start2, commentEnd, indent3, indentText);\n        if (!comments2) {\n          commentEnd = scanner2.getTokenFullStart();\n        }\n        const allParts = typeof comments2 !== \"string\" ? createNodeArray(concatenate([finishNode(textOnly, commentStart, commentEnd)], comments2), commentStart) : textOnly.text + comments2;\n        return finishNode(factory2.createJSDocAuthorTag(tagName, allParts), start2);\n      }\n      function parseAuthorNameAndEmail() {\n        const comments2 = [];\n        let inEmail = false;\n        let token2 = scanner2.getToken();\n        while (token2 !== 1 /* EndOfFileToken */ && token2 !== 4 /* NewLineTrivia */) {\n          if (token2 === 30 /* LessThanToken */) {\n            inEmail = true;\n          } else if (token2 === 60 /* AtToken */ && !inEmail) {\n            break;\n          } else if (token2 === 32 /* GreaterThanToken */ && inEmail) {\n            comments2.push(scanner2.getTokenText());\n            scanner2.resetTokenState(scanner2.getTokenEnd());\n            break;\n          }\n          comments2.push(scanner2.getTokenText());\n          token2 = nextTokenJSDoc();\n        }\n        return factory2.createJSDocText(comments2.join(\"\"));\n      }\n      function parseImplementsTag(start2, tagName, margin, indentText) {\n        const className = parseExpressionWithTypeArgumentsForAugments();\n        return finishNode(factory2.createJSDocImplementsTag(tagName, className, parseTrailingTagComments(start2, getNodePos(), margin, indentText)), start2);\n      }\n      function parseAugmentsTag(start2, tagName, margin, indentText) {\n        const className = parseExpressionWithTypeArgumentsForAugments();\n        return finishNode(factory2.createJSDocAugmentsTag(tagName, className, parseTrailingTagComments(start2, getNodePos(), margin, indentText)), start2);\n      }\n      function parseSatisfiesTag(start2, tagName, margin, indentText) {\n        const typeExpression = parseJSDocTypeExpression(\n          /*mayOmitBraces*/\n          false\n        );\n        const comments2 = margin !== void 0 && indentText !== void 0 ? parseTrailingTagComments(start2, getNodePos(), margin, indentText) : void 0;\n        return finishNode(factory2.createJSDocSatisfiesTag(tagName, typeExpression, comments2), start2);\n      }\n      function parseImportTag(start2, tagName, margin, indentText) {\n        const afterImportTagPos = scanner2.getTokenFullStart();\n        let identifier;\n        if (isIdentifier2()) {\n          identifier = parseIdentifier();\n        }\n        const importClause = tryParseImportClause(\n          identifier,\n          afterImportTagPos,\n          156 /* TypeKeyword */,\n          /*skipJsDocLeadingAsterisks*/\n          true\n        );\n        const moduleSpecifier = parseModuleSpecifier();\n        const attributes = tryParseImportAttributes();\n        const comments2 = margin !== void 0 && indentText !== void 0 ? parseTrailingTagComments(start2, getNodePos(), margin, indentText) : void 0;\n        return finishNode(factory2.createJSDocImportTag(tagName, importClause, moduleSpecifier, attributes, comments2), start2);\n      }\n      function parseExpressionWithTypeArgumentsForAugments() {\n        const usedBrace = parseOptional(19 /* OpenBraceToken */);\n        const pos = getNodePos();\n        const expression = parsePropertyAccessEntityNameExpression();\n        scanner2.setSkipJsDocLeadingAsterisks(true);\n        const typeArguments = tryParseTypeArguments();\n        scanner2.setSkipJsDocLeadingAsterisks(false);\n        const node = factory2.createExpressionWithTypeArguments(expression, typeArguments);\n        const res = finishNode(node, pos);\n        if (usedBrace) {\n          skipWhitespace();\n          parseExpected(20 /* CloseBraceToken */);\n        }\n        return res;\n      }\n      function parsePropertyAccessEntityNameExpression() {\n        const pos = getNodePos();\n        let node = parseJSDocIdentifierName();\n        while (parseOptional(25 /* DotToken */)) {\n          const name = parseJSDocIdentifierName();\n          node = finishNode(factoryCreatePropertyAccessExpression(node, name), pos);\n        }\n        return node;\n      }\n      function parseSimpleTag(start2, createTag, tagName, margin, indentText) {\n        return finishNode(createTag(tagName, parseTrailingTagComments(start2, getNodePos(), margin, indentText)), start2);\n      }\n      function parseThisTag(start2, tagName, margin, indentText) {\n        const typeExpression = parseJSDocTypeExpression(\n          /*mayOmitBraces*/\n          true\n        );\n        skipWhitespace();\n        return finishNode(factory2.createJSDocThisTag(tagName, typeExpression, parseTrailingTagComments(start2, getNodePos(), margin, indentText)), start2);\n      }\n      function parseEnumTag(start2, tagName, margin, indentText) {\n        const typeExpression = parseJSDocTypeExpression(\n          /*mayOmitBraces*/\n          true\n        );\n        skipWhitespace();\n        return finishNode(factory2.createJSDocEnumTag(tagName, typeExpression, parseTrailingTagComments(start2, getNodePos(), margin, indentText)), start2);\n      }\n      function parseTypedefTag(start2, tagName, indent3, indentText) {\n        let typeExpression = tryParseTypeExpression();\n        skipWhitespaceOrAsterisk();\n        const fullName = parseJSDocTypeNameWithNamespace();\n        skipWhitespace();\n        let comment = parseTagComments(indent3);\n        let end2;\n        if (!typeExpression || isObjectOrObjectArrayTypeReference(typeExpression.type)) {\n          let child;\n          let childTypeTag;\n          let jsDocPropertyTags;\n          let hasChildren = false;\n          while (child = tryParse(() => parseChildPropertyTag(indent3))) {\n            if (child.kind === 346 /* JSDocTemplateTag */) {\n              break;\n            }\n            hasChildren = true;\n            if (child.kind === 345 /* JSDocTypeTag */) {\n              if (childTypeTag) {\n                const lastError = parseErrorAtCurrentToken(Diagnostics.A_JSDoc_typedef_comment_may_not_contain_multiple_type_tags);\n                if (lastError) {\n                  addRelatedInfo(lastError, createDetachedDiagnostic(fileName, sourceText, 0, 0, Diagnostics.The_tag_was_first_specified_here));\n                }\n                break;\n              } else {\n                childTypeTag = child;\n              }\n            } else {\n              jsDocPropertyTags = append(jsDocPropertyTags, child);\n            }\n          }\n          if (hasChildren) {\n            const isArrayType = typeExpression && typeExpression.type.kind === 189 /* ArrayType */;\n            const jsdocTypeLiteral = factory2.createJSDocTypeLiteral(jsDocPropertyTags, isArrayType);\n            typeExpression = childTypeTag && childTypeTag.typeExpression && !isObjectOrObjectArrayTypeReference(childTypeTag.typeExpression.type) ? childTypeTag.typeExpression : finishNode(jsdocTypeLiteral, start2);\n            end2 = typeExpression.end;\n          }\n        }\n        end2 = end2 || comment !== void 0 ? getNodePos() : (fullName ?? typeExpression ?? tagName).end;\n        if (!comment) {\n          comment = parseTrailingTagComments(start2, end2, indent3, indentText);\n        }\n        const typedefTag = factory2.createJSDocTypedefTag(tagName, typeExpression, fullName, comment);\n        return finishNode(typedefTag, start2, end2);\n      }\n      function parseJSDocTypeNameWithNamespace(nested) {\n        const start2 = scanner2.getTokenStart();\n        if (!tokenIsIdentifierOrKeyword(token())) {\n          return void 0;\n        }\n        const typeNameOrNamespaceName = parseJSDocIdentifierName();\n        if (parseOptional(25 /* DotToken */)) {\n          const body = parseJSDocTypeNameWithNamespace(\n            /*nested*/\n            true\n          );\n          const jsDocNamespaceNode = factory2.createModuleDeclaration(\n            /*modifiers*/\n            void 0,\n            typeNameOrNamespaceName,\n            body,\n            nested ? 8 /* NestedNamespace */ : void 0\n          );\n          return finishNode(jsDocNamespaceNode, start2);\n        }\n        if (nested) {\n          typeNameOrNamespaceName.flags |= 4096 /* IdentifierIsInJSDocNamespace */;\n        }\n        return typeNameOrNamespaceName;\n      }\n      function parseCallbackTagParameters(indent3) {\n        const pos = getNodePos();\n        let child;\n        let parameters;\n        while (child = tryParse(() => parseChildParameterOrPropertyTag(4 /* CallbackParameter */, indent3))) {\n          if (child.kind === 346 /* JSDocTemplateTag */) {\n            parseErrorAtRange(child.tagName, Diagnostics.A_JSDoc_template_tag_may_not_follow_a_typedef_callback_or_overload_tag);\n            break;\n          }\n          parameters = append(parameters, child);\n        }\n        return createNodeArray(parameters || [], pos);\n      }\n      function parseJSDocSignature(start2, indent3) {\n        const parameters = parseCallbackTagParameters(indent3);\n        const returnTag = tryParse(() => {\n          if (parseOptionalJsdoc(60 /* AtToken */)) {\n            const tag = parseTag(indent3);\n            if (tag && tag.kind === 343 /* JSDocReturnTag */) {\n              return tag;\n            }\n          }\n        });\n        return finishNode(factory2.createJSDocSignature(\n          /*typeParameters*/\n          void 0,\n          parameters,\n          returnTag\n        ), start2);\n      }\n      function parseCallbackTag(start2, tagName, indent3, indentText) {\n        const fullName = parseJSDocTypeNameWithNamespace();\n        skipWhitespace();\n        let comment = parseTagComments(indent3);\n        const typeExpression = parseJSDocSignature(start2, indent3);\n        if (!comment) {\n          comment = parseTrailingTagComments(start2, getNodePos(), indent3, indentText);\n        }\n        const end2 = comment !== void 0 ? getNodePos() : typeExpression.end;\n        return finishNode(factory2.createJSDocCallbackTag(tagName, typeExpression, fullName, comment), start2, end2);\n      }\n      function parseOverloadTag(start2, tagName, indent3, indentText) {\n        skipWhitespace();\n        let comment = parseTagComments(indent3);\n        const typeExpression = parseJSDocSignature(start2, indent3);\n        if (!comment) {\n          comment = parseTrailingTagComments(start2, getNodePos(), indent3, indentText);\n        }\n        const end2 = comment !== void 0 ? getNodePos() : typeExpression.end;\n        return finishNode(factory2.createJSDocOverloadTag(tagName, typeExpression, comment), start2, end2);\n      }\n      function escapedTextsEqual(a, b) {\n        while (!isIdentifier(a) || !isIdentifier(b)) {\n          if (!isIdentifier(a) && !isIdentifier(b) && a.right.escapedText === b.right.escapedText) {\n            a = a.left;\n            b = b.left;\n          } else {\n            return false;\n          }\n        }\n        return a.escapedText === b.escapedText;\n      }\n      function parseChildPropertyTag(indent3) {\n        return parseChildParameterOrPropertyTag(1 /* Property */, indent3);\n      }\n      function parseChildParameterOrPropertyTag(target, indent3, name) {\n        let canParseTag = true;\n        let seenAsterisk = false;\n        while (true) {\n          switch (nextTokenJSDoc()) {\n            case 60 /* AtToken */:\n              if (canParseTag) {\n                const child = tryParseChildTag(target, indent3);\n                if (child && (child.kind === 342 /* JSDocParameterTag */ || child.kind === 349 /* JSDocPropertyTag */) && name && (isIdentifier(child.name) || !escapedTextsEqual(name, child.name.left))) {\n                  return false;\n                }\n                return child;\n              }\n              seenAsterisk = false;\n              break;\n            case 4 /* NewLineTrivia */:\n              canParseTag = true;\n              seenAsterisk = false;\n              break;\n            case 42 /* AsteriskToken */:\n              if (seenAsterisk) {\n                canParseTag = false;\n              }\n              seenAsterisk = true;\n              break;\n            case 80 /* Identifier */:\n              canParseTag = false;\n              break;\n            case 1 /* EndOfFileToken */:\n              return false;\n          }\n        }\n      }\n      function tryParseChildTag(target, indent3) {\n        Debug.assert(token() === 60 /* AtToken */);\n        const start2 = scanner2.getTokenFullStart();\n        nextTokenJSDoc();\n        const tagName = parseJSDocIdentifierName();\n        const indentText = skipWhitespaceOrAsterisk();\n        let t;\n        switch (tagName.escapedText) {\n          case \"type\":\n            return target === 1 /* Property */ && parseTypeTag(start2, tagName);\n          case \"prop\":\n          case \"property\":\n            t = 1 /* Property */;\n            break;\n          case \"arg\":\n          case \"argument\":\n          case \"param\":\n            t = 2 /* Parameter */ | 4 /* CallbackParameter */;\n            break;\n          case \"template\":\n            return parseTemplateTag(start2, tagName, indent3, indentText);\n          case \"this\":\n            return parseThisTag(start2, tagName, indent3, indentText);\n          default:\n            return false;\n        }\n        if (!(target & t)) {\n          return false;\n        }\n        return parseParameterOrPropertyTag(start2, tagName, target, indent3);\n      }\n      function parseTemplateTagTypeParameter() {\n        const typeParameterPos = getNodePos();\n        const isBracketed = parseOptionalJsdoc(23 /* OpenBracketToken */);\n        if (isBracketed) {\n          skipWhitespace();\n        }\n        const modifiers = parseModifiers(\n          /*allowDecorators*/\n          false,\n          /*permitConstAsModifier*/\n          true\n        );\n        const name = parseJSDocIdentifierName(Diagnostics.Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces);\n        let defaultType;\n        if (isBracketed) {\n          skipWhitespace();\n          parseExpected(64 /* EqualsToken */);\n          defaultType = doInsideOfContext(16777216 /* JSDoc */, parseJSDocType);\n          parseExpected(24 /* CloseBracketToken */);\n        }\n        if (nodeIsMissing(name)) {\n          return void 0;\n        }\n        return finishNode(factory2.createTypeParameterDeclaration(\n          modifiers,\n          name,\n          /*constraint*/\n          void 0,\n          defaultType\n        ), typeParameterPos);\n      }\n      function parseTemplateTagTypeParameters() {\n        const pos = getNodePos();\n        const typeParameters = [];\n        do {\n          skipWhitespace();\n          const node = parseTemplateTagTypeParameter();\n          if (node !== void 0) {\n            typeParameters.push(node);\n          }\n          skipWhitespaceOrAsterisk();\n        } while (parseOptionalJsdoc(28 /* CommaToken */));\n        return createNodeArray(typeParameters, pos);\n      }\n      function parseTemplateTag(start2, tagName, indent3, indentText) {\n        const constraint = token() === 19 /* OpenBraceToken */ ? parseJSDocTypeExpression() : void 0;\n        const typeParameters = parseTemplateTagTypeParameters();\n        return finishNode(factory2.createJSDocTemplateTag(tagName, constraint, typeParameters, parseTrailingTagComments(start2, getNodePos(), indent3, indentText)), start2);\n      }\n      function parseOptionalJsdoc(t) {\n        if (token() === t) {\n          nextTokenJSDoc();\n          return true;\n        }\n        return false;\n      }\n      function parseJSDocEntityName() {\n        let entity = parseJSDocIdentifierName();\n        if (parseOptional(23 /* OpenBracketToken */)) {\n          parseExpected(24 /* CloseBracketToken */);\n        }\n        while (parseOptional(25 /* DotToken */)) {\n          const name = parseJSDocIdentifierName();\n          if (parseOptional(23 /* OpenBracketToken */)) {\n            parseExpected(24 /* CloseBracketToken */);\n          }\n          entity = createQualifiedName(entity, name);\n        }\n        return entity;\n      }\n      function parseJSDocIdentifierName(message) {\n        if (!tokenIsIdentifierOrKeyword(token())) {\n          return createMissingNode(\n            80 /* Identifier */,\n            /*reportAtCurrentPosition*/\n            !message,\n            message || Diagnostics.Identifier_expected\n          );\n        }\n        identifierCount++;\n        const start2 = scanner2.getTokenStart();\n        const end2 = scanner2.getTokenEnd();\n        const originalKeywordKind = token();\n        const text = internIdentifier(scanner2.getTokenValue());\n        const result2 = finishNode(factoryCreateIdentifier(text, originalKeywordKind), start2, end2);\n        nextTokenJSDoc();\n        return result2;\n      }\n    }\n  })(JSDocParser = Parser2.JSDocParser || (Parser2.JSDocParser = {}));\n})(Parser || (Parser = {}));\nvar incrementallyParsedFiles = /* @__PURE__ */ new WeakSet();\nfunction markAsIncrementallyParsed(sourceFile) {\n  if (incrementallyParsedFiles.has(sourceFile)) {\n    Debug.fail(\"Source file has already been incrementally parsed\");\n  }\n  incrementallyParsedFiles.add(sourceFile);\n}\nvar intersectingChangeSet = /* @__PURE__ */ new WeakSet();\nfunction intersectsIncrementalChange(node) {\n  return intersectingChangeSet.has(node);\n}\nfunction markAsIntersectingIncrementalChange(node) {\n  intersectingChangeSet.add(node);\n}\nvar IncrementalParser;\n((IncrementalParser2) => {\n  function updateSourceFile2(sourceFile, newText, textChangeRange, aggressiveChecks) {\n    aggressiveChecks = aggressiveChecks || Debug.shouldAssert(2 /* Aggressive */);\n    checkChangeRange(sourceFile, newText, textChangeRange, aggressiveChecks);\n    if (textChangeRangeIsUnchanged(textChangeRange)) {\n      return sourceFile;\n    }\n    if (sourceFile.statements.length === 0) {\n      return Parser.parseSourceFile(\n        sourceFile.fileName,\n        newText,\n        sourceFile.languageVersion,\n        /*syntaxCursor*/\n        void 0,\n        /*setParentNodes*/\n        true,\n        sourceFile.scriptKind,\n        sourceFile.setExternalModuleIndicator,\n        sourceFile.jsDocParsingMode\n      );\n    }\n    markAsIncrementallyParsed(sourceFile);\n    Parser.fixupParentReferences(sourceFile);\n    const oldText = sourceFile.text;\n    const syntaxCursor = createSyntaxCursor(sourceFile);\n    const changeRange = extendToAffectedRange(sourceFile, textChangeRange);\n    checkChangeRange(sourceFile, newText, changeRange, aggressiveChecks);\n    Debug.assert(changeRange.span.start <= textChangeRange.span.start);\n    Debug.assert(textSpanEnd(changeRange.span) === textSpanEnd(textChangeRange.span));\n    Debug.assert(textSpanEnd(textChangeRangeNewSpan(changeRange)) === textSpanEnd(textChangeRangeNewSpan(textChangeRange)));\n    const delta = textChangeRangeNewSpan(changeRange).length - changeRange.span.length;\n    updateTokenPositionsAndMarkElements(sourceFile, changeRange.span.start, textSpanEnd(changeRange.span), textSpanEnd(textChangeRangeNewSpan(changeRange)), delta, oldText, newText, aggressiveChecks);\n    const result = Parser.parseSourceFile(\n      sourceFile.fileName,\n      newText,\n      sourceFile.languageVersion,\n      syntaxCursor,\n      /*setParentNodes*/\n      true,\n      sourceFile.scriptKind,\n      sourceFile.setExternalModuleIndicator,\n      sourceFile.jsDocParsingMode\n    );\n    result.commentDirectives = getNewCommentDirectives(\n      sourceFile.commentDirectives,\n      result.commentDirectives,\n      changeRange.span.start,\n      textSpanEnd(changeRange.span),\n      delta,\n      oldText,\n      newText,\n      aggressiveChecks\n    );\n    result.impliedNodeFormat = sourceFile.impliedNodeFormat;\n    transferSourceFileChildren(sourceFile, result);\n    return result;\n  }\n  IncrementalParser2.updateSourceFile = updateSourceFile2;\n  function getNewCommentDirectives(oldDirectives, newDirectives, changeStart, changeRangeOldEnd, delta, oldText, newText, aggressiveChecks) {\n    if (!oldDirectives) return newDirectives;\n    let commentDirectives;\n    let addedNewlyScannedDirectives = false;\n    for (const directive of oldDirectives) {\n      const { range, type } = directive;\n      if (range.end < changeStart) {\n        commentDirectives = append(commentDirectives, directive);\n      } else if (range.pos > changeRangeOldEnd) {\n        addNewlyScannedDirectives();\n        const updatedDirective = {\n          range: { pos: range.pos + delta, end: range.end + delta },\n          type\n        };\n        commentDirectives = append(commentDirectives, updatedDirective);\n        if (aggressiveChecks) {\n          Debug.assert(oldText.substring(range.pos, range.end) === newText.substring(updatedDirective.range.pos, updatedDirective.range.end));\n        }\n      }\n    }\n    addNewlyScannedDirectives();\n    return commentDirectives;\n    function addNewlyScannedDirectives() {\n      if (addedNewlyScannedDirectives) return;\n      addedNewlyScannedDirectives = true;\n      if (!commentDirectives) {\n        commentDirectives = newDirectives;\n      } else if (newDirectives) {\n        commentDirectives.push(...newDirectives);\n      }\n    }\n  }\n  function moveElementEntirelyPastChangeRange(element, origSourceFile, isArray2, delta, oldText, newText, aggressiveChecks) {\n    if (isArray2) {\n      visitArray2(element);\n    } else {\n      visitNode3(element);\n    }\n    return;\n    function visitNode3(node) {\n      let text = \"\";\n      if (aggressiveChecks && shouldCheckNode(node)) {\n        text = oldText.substring(node.pos, node.end);\n      }\n      unsetNodeChildren(node, origSourceFile);\n      setTextRangePosEnd(node, node.pos + delta, node.end + delta);\n      if (aggressiveChecks && shouldCheckNode(node)) {\n        Debug.assert(text === newText.substring(node.pos, node.end));\n      }\n      forEachChild(node, visitNode3, visitArray2);\n      if (hasJSDocNodes(node)) {\n        for (const jsDocComment of node.jsDoc) {\n          visitNode3(jsDocComment);\n        }\n      }\n      checkNodePositions(node, aggressiveChecks);\n    }\n    function visitArray2(array) {\n      setTextRangePosEnd(array, array.pos + delta, array.end + delta);\n      for (const node of array) {\n        visitNode3(node);\n      }\n    }\n  }\n  function shouldCheckNode(node) {\n    switch (node.kind) {\n      case 11 /* StringLiteral */:\n      case 9 /* NumericLiteral */:\n      case 80 /* Identifier */:\n        return true;\n    }\n    return false;\n  }\n  function adjustIntersectingElement(element, changeStart, changeRangeOldEnd, changeRangeNewEnd, delta) {\n    Debug.assert(element.end >= changeStart, \"Adjusting an element that was entirely before the change range\");\n    Debug.assert(element.pos <= changeRangeOldEnd, \"Adjusting an element that was entirely after the change range\");\n    Debug.assert(element.pos <= element.end);\n    const pos = Math.min(element.pos, changeRangeNewEnd);\n    const end = element.end >= changeRangeOldEnd ? (\n      // Element ends after the change range.  Always adjust the end pos.\n      element.end + delta\n    ) : (\n      // Element ends in the change range.  The element will keep its position if\n      // possible. Or Move backward to the new-end if it's in the 'Y' range.\n      Math.min(element.end, changeRangeNewEnd)\n    );\n    Debug.assert(pos <= end);\n    if (element.parent) {\n      const parent2 = element.parent;\n      Debug.assertGreaterThanOrEqual(pos, parent2.pos);\n      Debug.assertLessThanOrEqual(end, parent2.end);\n    }\n    setTextRangePosEnd(element, pos, end);\n  }\n  function checkNodePositions(node, aggressiveChecks) {\n    if (aggressiveChecks) {\n      let pos = node.pos;\n      const visitNode3 = (child) => {\n        Debug.assert(child.pos >= pos);\n        pos = child.end;\n      };\n      if (hasJSDocNodes(node)) {\n        for (const jsDocComment of node.jsDoc) {\n          visitNode3(jsDocComment);\n        }\n      }\n      forEachChild(node, visitNode3);\n      Debug.assert(pos <= node.end);\n    }\n  }\n  function updateTokenPositionsAndMarkElements(sourceFile, changeStart, changeRangeOldEnd, changeRangeNewEnd, delta, oldText, newText, aggressiveChecks) {\n    visitNode3(sourceFile);\n    return;\n    function visitNode3(child) {\n      Debug.assert(child.pos <= child.end);\n      if (child.pos > changeRangeOldEnd) {\n        moveElementEntirelyPastChangeRange(\n          child,\n          sourceFile,\n          /*isArray*/\n          false,\n          delta,\n          oldText,\n          newText,\n          aggressiveChecks\n        );\n        return;\n      }\n      const fullEnd = child.end;\n      if (fullEnd >= changeStart) {\n        markAsIntersectingIncrementalChange(child);\n        unsetNodeChildren(child, sourceFile);\n        adjustIntersectingElement(child, changeStart, changeRangeOldEnd, changeRangeNewEnd, delta);\n        forEachChild(child, visitNode3, visitArray2);\n        if (hasJSDocNodes(child)) {\n          for (const jsDocComment of child.jsDoc) {\n            visitNode3(jsDocComment);\n          }\n        }\n        checkNodePositions(child, aggressiveChecks);\n        return;\n      }\n      Debug.assert(fullEnd < changeStart);\n    }\n    function visitArray2(array) {\n      Debug.assert(array.pos <= array.end);\n      if (array.pos > changeRangeOldEnd) {\n        moveElementEntirelyPastChangeRange(\n          array,\n          sourceFile,\n          /*isArray*/\n          true,\n          delta,\n          oldText,\n          newText,\n          aggressiveChecks\n        );\n        return;\n      }\n      const fullEnd = array.end;\n      if (fullEnd >= changeStart) {\n        markAsIntersectingIncrementalChange(array);\n        adjustIntersectingElement(array, changeStart, changeRangeOldEnd, changeRangeNewEnd, delta);\n        for (const node of array) {\n          visitNode3(node);\n        }\n        return;\n      }\n      Debug.assert(fullEnd < changeStart);\n    }\n  }\n  function extendToAffectedRange(sourceFile, changeRange) {\n    const maxLookahead = 1;\n    let start = changeRange.span.start;\n    for (let i = 0; start > 0 && i <= maxLookahead; i++) {\n      const nearestNode = findNearestNodeStartingBeforeOrAtPosition(sourceFile, start);\n      Debug.assert(nearestNode.pos <= start);\n      const position = nearestNode.pos;\n      start = Math.max(0, position - 1);\n    }\n    const finalSpan = createTextSpanFromBounds(start, textSpanEnd(changeRange.span));\n    const finalLength = changeRange.newLength + (changeRange.span.start - start);\n    return createTextChangeRange(finalSpan, finalLength);\n  }\n  function findNearestNodeStartingBeforeOrAtPosition(sourceFile, position) {\n    let bestResult = sourceFile;\n    let lastNodeEntirelyBeforePosition;\n    forEachChild(sourceFile, visit);\n    if (lastNodeEntirelyBeforePosition) {\n      const lastChildOfLastEntireNodeBeforePosition = getLastDescendant(lastNodeEntirelyBeforePosition);\n      if (lastChildOfLastEntireNodeBeforePosition.pos > bestResult.pos) {\n        bestResult = lastChildOfLastEntireNodeBeforePosition;\n      }\n    }\n    return bestResult;\n    function getLastDescendant(node) {\n      while (true) {\n        const lastChild = getLastChild(node);\n        if (lastChild) {\n          node = lastChild;\n        } else {\n          return node;\n        }\n      }\n    }\n    function visit(child) {\n      if (nodeIsMissing(child)) {\n        return;\n      }\n      if (child.pos <= position) {\n        if (child.pos >= bestResult.pos) {\n          bestResult = child;\n        }\n        if (position < child.end) {\n          forEachChild(child, visit);\n          return true;\n        } else {\n          Debug.assert(child.end <= position);\n          lastNodeEntirelyBeforePosition = child;\n        }\n      } else {\n        Debug.assert(child.pos > position);\n        return true;\n      }\n    }\n  }\n  function checkChangeRange(sourceFile, newText, textChangeRange, aggressiveChecks) {\n    const oldText = sourceFile.text;\n    if (textChangeRange) {\n      Debug.assert(oldText.length - textChangeRange.span.length + textChangeRange.newLength === newText.length);\n      if (aggressiveChecks || Debug.shouldAssert(3 /* VeryAggressive */)) {\n        const oldTextPrefix = oldText.substr(0, textChangeRange.span.start);\n        const newTextPrefix = newText.substr(0, textChangeRange.span.start);\n        Debug.assert(oldTextPrefix === newTextPrefix);\n        const oldTextSuffix = oldText.substring(textSpanEnd(textChangeRange.span), oldText.length);\n        const newTextSuffix = newText.substring(textSpanEnd(textChangeRangeNewSpan(textChangeRange)), newText.length);\n        Debug.assert(oldTextSuffix === newTextSuffix);\n      }\n    }\n  }\n  function createSyntaxCursor(sourceFile) {\n    let currentArray = sourceFile.statements;\n    let currentArrayIndex = 0;\n    Debug.assert(currentArrayIndex < currentArray.length);\n    let current = currentArray[currentArrayIndex];\n    let lastQueriedPosition = -1 /* Value */;\n    return {\n      currentNode(position) {\n        if (position !== lastQueriedPosition) {\n          if (current && current.end === position && currentArrayIndex < currentArray.length - 1) {\n            currentArrayIndex++;\n            current = currentArray[currentArrayIndex];\n          }\n          if (!current || current.pos !== position) {\n            findHighestListElementThatStartsAtPosition(position);\n          }\n        }\n        lastQueriedPosition = position;\n        Debug.assert(!current || current.pos === position);\n        return current;\n      }\n    };\n    function findHighestListElementThatStartsAtPosition(position) {\n      currentArray = void 0;\n      currentArrayIndex = -1 /* Value */;\n      current = void 0;\n      forEachChild(sourceFile, visitNode3, visitArray2);\n      return;\n      function visitNode3(node) {\n        if (position >= node.pos && position < node.end) {\n          forEachChild(node, visitNode3, visitArray2);\n          return true;\n        }\n        return false;\n      }\n      function visitArray2(array) {\n        if (position >= array.pos && position < array.end) {\n          for (let i = 0; i < array.length; i++) {\n            const child = array[i];\n            if (child) {\n              if (child.pos === position) {\n                currentArray = array;\n                currentArrayIndex = i;\n                current = child;\n                return true;\n              } else {\n                if (child.pos < position && position < child.end) {\n                  forEachChild(child, visitNode3, visitArray2);\n                  return true;\n                }\n              }\n            }\n          }\n        }\n        return false;\n      }\n    }\n  }\n  IncrementalParser2.createSyntaxCursor = createSyntaxCursor;\n  let InvalidPosition;\n  ((InvalidPosition2) => {\n    InvalidPosition2[InvalidPosition2[\"Value\"] = -1] = \"Value\";\n  })(InvalidPosition || (InvalidPosition = {}));\n})(IncrementalParser || (IncrementalParser = {}));\nfunction isDeclarationFileName(fileName) {\n  return getDeclarationFileExtension(fileName) !== void 0;\n}\nfunction getDeclarationFileExtension(fileName) {\n  const standardExtension = getAnyExtensionFromPath(\n    fileName,\n    supportedDeclarationExtensions,\n    /*ignoreCase*/\n    false\n  );\n  if (standardExtension) {\n    return standardExtension;\n  }\n  if (fileExtensionIs(fileName, \".ts\" /* Ts */)) {\n    const baseName = getBaseFileName(fileName);\n    const index = baseName.lastIndexOf(\".d.\");\n    if (index >= 0) {\n      return baseName.substring(index);\n    }\n  }\n  return void 0;\n}\nfunction parseResolutionMode(mode, pos, end, reportDiagnostic) {\n  if (!mode) {\n    return void 0;\n  }\n  if (mode === \"import\") {\n    return 99 /* ESNext */;\n  }\n  if (mode === \"require\") {\n    return 1 /* CommonJS */;\n  }\n  reportDiagnostic(pos, end - pos, Diagnostics.resolution_mode_should_be_either_require_or_import);\n  return void 0;\n}\nfunction processCommentPragmas(context, sourceText) {\n  const pragmas = [];\n  for (const range of getLeadingCommentRanges(sourceText, 0) || emptyArray) {\n    const comment = sourceText.substring(range.pos, range.end);\n    extractPragmas(pragmas, range, comment);\n  }\n  context.pragmas = /* @__PURE__ */ new Map();\n  for (const pragma of pragmas) {\n    if (context.pragmas.has(pragma.name)) {\n      const currentValue = context.pragmas.get(pragma.name);\n      if (currentValue instanceof Array) {\n        currentValue.push(pragma.args);\n      } else {\n        context.pragmas.set(pragma.name, [currentValue, pragma.args]);\n      }\n      continue;\n    }\n    context.pragmas.set(pragma.name, pragma.args);\n  }\n}\nfunction processPragmasIntoFields(context, reportDiagnostic) {\n  context.checkJsDirective = void 0;\n  context.referencedFiles = [];\n  context.typeReferenceDirectives = [];\n  context.libReferenceDirectives = [];\n  context.amdDependencies = [];\n  context.hasNoDefaultLib = false;\n  context.pragmas.forEach((entryOrList, key) => {\n    switch (key) {\n      case \"reference\": {\n        const referencedFiles = context.referencedFiles;\n        const typeReferenceDirectives = context.typeReferenceDirectives;\n        const libReferenceDirectives = context.libReferenceDirectives;\n        forEach(toArray(entryOrList), (arg) => {\n          const { types, lib, path, [\"resolution-mode\"]: res, preserve: _preserve } = arg.arguments;\n          const preserve = _preserve === \"true\" ? true : void 0;\n          if (arg.arguments[\"no-default-lib\"] === \"true\") {\n            context.hasNoDefaultLib = true;\n          } else if (types) {\n            const parsed = parseResolutionMode(res, types.pos, types.end, reportDiagnostic);\n            typeReferenceDirectives.push({ pos: types.pos, end: types.end, fileName: types.value, ...parsed ? { resolutionMode: parsed } : {}, ...preserve ? { preserve } : {} });\n          } else if (lib) {\n            libReferenceDirectives.push({ pos: lib.pos, end: lib.end, fileName: lib.value, ...preserve ? { preserve } : {} });\n          } else if (path) {\n            referencedFiles.push({ pos: path.pos, end: path.end, fileName: path.value, ...preserve ? { preserve } : {} });\n          } else {\n            reportDiagnostic(arg.range.pos, arg.range.end - arg.range.pos, Diagnostics.Invalid_reference_directive_syntax);\n          }\n        });\n        break;\n      }\n      case \"amd-dependency\": {\n        context.amdDependencies = map(\n          toArray(entryOrList),\n          (x) => ({ name: x.arguments.name, path: x.arguments.path })\n        );\n        break;\n      }\n      case \"amd-module\": {\n        if (entryOrList instanceof Array) {\n          for (const entry of entryOrList) {\n            if (context.moduleName) {\n              reportDiagnostic(entry.range.pos, entry.range.end - entry.range.pos, Diagnostics.An_AMD_module_cannot_have_multiple_name_assignments);\n            }\n            context.moduleName = entry.arguments.name;\n          }\n        } else {\n          context.moduleName = entryOrList.arguments.name;\n        }\n        break;\n      }\n      case \"ts-nocheck\":\n      case \"ts-check\": {\n        forEach(toArray(entryOrList), (entry) => {\n          if (!context.checkJsDirective || entry.range.pos > context.checkJsDirective.pos) {\n            context.checkJsDirective = {\n              enabled: key === \"ts-check\",\n              end: entry.range.end,\n              pos: entry.range.pos\n            };\n          }\n        });\n        break;\n      }\n      case \"jsx\":\n      case \"jsxfrag\":\n      case \"jsximportsource\":\n      case \"jsxruntime\":\n        return;\n      // Accessed directly\n      default:\n        Debug.fail(\"Unhandled pragma kind\");\n    }\n  });\n}\nvar namedArgRegExCache = /* @__PURE__ */ new Map();\nfunction getNamedArgRegEx(name) {\n  if (namedArgRegExCache.has(name)) {\n    return namedArgRegExCache.get(name);\n  }\n  const result = new RegExp(`(\\\\s${name}\\\\s*=\\\\s*)(?:(?:'([^']*)')|(?:\"([^\"]*)\"))`, \"im\");\n  namedArgRegExCache.set(name, result);\n  return result;\n}\nvar tripleSlashXMLCommentStartRegEx = /^\\/\\/\\/\\s*<(\\S+)\\s.*?\\/>/m;\nvar singleLinePragmaRegEx = /^\\/\\/\\/?\\s*@([^\\s:]+)((?:[^\\S\\r\\n]|:).*)?$/m;\nfunction extractPragmas(pragmas, range, text) {\n  const tripleSlash = range.kind === 2 /* SingleLineCommentTrivia */ && tripleSlashXMLCommentStartRegEx.exec(text);\n  if (tripleSlash) {\n    const name = tripleSlash[1].toLowerCase();\n    const pragma = commentPragmas[name];\n    if (!pragma || !(pragma.kind & 1 /* TripleSlashXML */)) {\n      return;\n    }\n    if (pragma.args) {\n      const argument = {};\n      for (const arg of pragma.args) {\n        const matcher = getNamedArgRegEx(arg.name);\n        const matchResult = matcher.exec(text);\n        if (!matchResult && !arg.optional) {\n          return;\n        } else if (matchResult) {\n          const value = matchResult[2] || matchResult[3];\n          if (arg.captureSpan) {\n            const startPos = range.pos + matchResult.index + matchResult[1].length + 1;\n            argument[arg.name] = {\n              value,\n              pos: startPos,\n              end: startPos + value.length\n            };\n          } else {\n            argument[arg.name] = value;\n          }\n        }\n      }\n      pragmas.push({ name, args: { arguments: argument, range } });\n    } else {\n      pragmas.push({ name, args: { arguments: {}, range } });\n    }\n    return;\n  }\n  const singleLine = range.kind === 2 /* SingleLineCommentTrivia */ && singleLinePragmaRegEx.exec(text);\n  if (singleLine) {\n    return addPragmaForMatch(pragmas, range, 2 /* SingleLine */, singleLine);\n  }\n  if (range.kind === 3 /* MultiLineCommentTrivia */) {\n    const multiLinePragmaRegEx = /@(\\S+)(\\s+(?:\\S.*)?)?$/gm;\n    let multiLineMatch;\n    while (multiLineMatch = multiLinePragmaRegEx.exec(text)) {\n      addPragmaForMatch(pragmas, range, 4 /* MultiLine */, multiLineMatch);\n    }\n  }\n}\nfunction addPragmaForMatch(pragmas, range, kind, match) {\n  if (!match) return;\n  const name = match[1].toLowerCase();\n  const pragma = commentPragmas[name];\n  if (!pragma || !(pragma.kind & kind)) {\n    return;\n  }\n  const args = match[2];\n  const argument = getNamedPragmaArguments(pragma, args);\n  if (argument === \"fail\") return;\n  pragmas.push({ name, args: { arguments: argument, range } });\n  return;\n}\nfunction getNamedPragmaArguments(pragma, text) {\n  if (!text) return {};\n  if (!pragma.args) return {};\n  const args = text.trim().split(/\\s+/);\n  const argMap = {};\n  for (let i = 0; i < pragma.args.length; i++) {\n    const argument = pragma.args[i];\n    if (!args[i] && !argument.optional) {\n      return \"fail\";\n    }\n    if (argument.captureSpan) {\n      return Debug.fail(\"Capture spans not yet implemented for non-xml pragmas\");\n    }\n    argMap[argument.name] = args[i];\n  }\n  return argMap;\n}\nfunction tagNamesAreEquivalent(lhs, rhs) {\n  if (lhs.kind !== rhs.kind) {\n    return false;\n  }\n  if (lhs.kind === 80 /* Identifier */) {\n    return lhs.escapedText === rhs.escapedText;\n  }\n  if (lhs.kind === 110 /* ThisKeyword */) {\n    return true;\n  }\n  if (lhs.kind === 296 /* JsxNamespacedName */) {\n    return lhs.namespace.escapedText === rhs.namespace.escapedText && lhs.name.escapedText === rhs.name.escapedText;\n  }\n  return lhs.name.escapedText === rhs.name.escapedText && tagNamesAreEquivalent(lhs.expression, rhs.expression);\n}\n\n// src/compiler/commandLineParser.ts\nvar compileOnSaveCommandLineOption = {\n  name: \"compileOnSave\",\n  type: \"boolean\",\n  defaultValueDescription: false\n};\nvar jsxOptionMap = new Map(Object.entries({\n  \"preserve\": 1 /* Preserve */,\n  \"react-native\": 3 /* ReactNative */,\n  \"react-jsx\": 4 /* ReactJSX */,\n  \"react-jsxdev\": 5 /* ReactJSXDev */,\n  \"react\": 2 /* React */\n}));\nvar inverseJsxOptionMap = new Map(mapIterator(jsxOptionMap.entries(), ([key, value]) => [\"\" + value, key]));\nvar libEntries = [\n  // JavaScript only\n  [\"es5\", \"lib.es5.d.ts\"],\n  [\"es6\", \"lib.es2015.d.ts\"],\n  [\"es2015\", \"lib.es2015.d.ts\"],\n  [\"es7\", \"lib.es2016.d.ts\"],\n  [\"es2016\", \"lib.es2016.d.ts\"],\n  [\"es2017\", \"lib.es2017.d.ts\"],\n  [\"es2018\", \"lib.es2018.d.ts\"],\n  [\"es2019\", \"lib.es2019.d.ts\"],\n  [\"es2020\", \"lib.es2020.d.ts\"],\n  [\"es2021\", \"lib.es2021.d.ts\"],\n  [\"es2022\", \"lib.es2022.d.ts\"],\n  [\"es2023\", \"lib.es2023.d.ts\"],\n  [\"es2024\", \"lib.es2024.d.ts\"],\n  [\"esnext\", \"lib.esnext.d.ts\"],\n  // Host only\n  [\"dom\", \"lib.dom.d.ts\"],\n  [\"dom.iterable\", \"lib.dom.iterable.d.ts\"],\n  [\"dom.asynciterable\", \"lib.dom.asynciterable.d.ts\"],\n  [\"webworker\", \"lib.webworker.d.ts\"],\n  [\"webworker.importscripts\", \"lib.webworker.importscripts.d.ts\"],\n  [\"webworker.iterable\", \"lib.webworker.iterable.d.ts\"],\n  [\"webworker.asynciterable\", \"lib.webworker.asynciterable.d.ts\"],\n  [\"scripthost\", \"lib.scripthost.d.ts\"],\n  // ES2015 Or ESNext By-feature options\n  [\"es2015.core\", \"lib.es2015.core.d.ts\"],\n  [\"es2015.collection\", \"lib.es2015.collection.d.ts\"],\n  [\"es2015.generator\", \"lib.es2015.generator.d.ts\"],\n  [\"es2015.iterable\", \"lib.es2015.iterable.d.ts\"],\n  [\"es2015.promise\", \"lib.es2015.promise.d.ts\"],\n  [\"es2015.proxy\", \"lib.es2015.proxy.d.ts\"],\n  [\"es2015.reflect\", \"lib.es2015.reflect.d.ts\"],\n  [\"es2015.symbol\", \"lib.es2015.symbol.d.ts\"],\n  [\"es2015.symbol.wellknown\", \"lib.es2015.symbol.wellknown.d.ts\"],\n  [\"es2016.array.include\", \"lib.es2016.array.include.d.ts\"],\n  [\"es2016.intl\", \"lib.es2016.intl.d.ts\"],\n  [\"es2017.arraybuffer\", \"lib.es2017.arraybuffer.d.ts\"],\n  [\"es2017.date\", \"lib.es2017.date.d.ts\"],\n  [\"es2017.object\", \"lib.es2017.object.d.ts\"],\n  [\"es2017.sharedmemory\", \"lib.es2017.sharedmemory.d.ts\"],\n  [\"es2017.string\", \"lib.es2017.string.d.ts\"],\n  [\"es2017.intl\", \"lib.es2017.intl.d.ts\"],\n  [\"es2017.typedarrays\", \"lib.es2017.typedarrays.d.ts\"],\n  [\"es2018.asyncgenerator\", \"lib.es2018.asyncgenerator.d.ts\"],\n  [\"es2018.asynciterable\", \"lib.es2018.asynciterable.d.ts\"],\n  [\"es2018.intl\", \"lib.es2018.intl.d.ts\"],\n  [\"es2018.promise\", \"lib.es2018.promise.d.ts\"],\n  [\"es2018.regexp\", \"lib.es2018.regexp.d.ts\"],\n  [\"es2019.array\", \"lib.es2019.array.d.ts\"],\n  [\"es2019.object\", \"lib.es2019.object.d.ts\"],\n  [\"es2019.string\", \"lib.es2019.string.d.ts\"],\n  [\"es2019.symbol\", \"lib.es2019.symbol.d.ts\"],\n  [\"es2019.intl\", \"lib.es2019.intl.d.ts\"],\n  [\"es2020.bigint\", \"lib.es2020.bigint.d.ts\"],\n  [\"es2020.date\", \"lib.es2020.date.d.ts\"],\n  [\"es2020.promise\", \"lib.es2020.promise.d.ts\"],\n  [\"es2020.sharedmemory\", \"lib.es2020.sharedmemory.d.ts\"],\n  [\"es2020.string\", \"lib.es2020.string.d.ts\"],\n  [\"es2020.symbol.wellknown\", \"lib.es2020.symbol.wellknown.d.ts\"],\n  [\"es2020.intl\", \"lib.es2020.intl.d.ts\"],\n  [\"es2020.number\", \"lib.es2020.number.d.ts\"],\n  [\"es2021.promise\", \"lib.es2021.promise.d.ts\"],\n  [\"es2021.string\", \"lib.es2021.string.d.ts\"],\n  [\"es2021.weakref\", \"lib.es2021.weakref.d.ts\"],\n  [\"es2021.intl\", \"lib.es2021.intl.d.ts\"],\n  [\"es2022.array\", \"lib.es2022.array.d.ts\"],\n  [\"es2022.error\", \"lib.es2022.error.d.ts\"],\n  [\"es2022.intl\", \"lib.es2022.intl.d.ts\"],\n  [\"es2022.object\", \"lib.es2022.object.d.ts\"],\n  [\"es2022.string\", \"lib.es2022.string.d.ts\"],\n  [\"es2022.regexp\", \"lib.es2022.regexp.d.ts\"],\n  [\"es2023.array\", \"lib.es2023.array.d.ts\"],\n  [\"es2023.collection\", \"lib.es2023.collection.d.ts\"],\n  [\"es2023.intl\", \"lib.es2023.intl.d.ts\"],\n  [\"es2024.arraybuffer\", \"lib.es2024.arraybuffer.d.ts\"],\n  [\"es2024.collection\", \"lib.es2024.collection.d.ts\"],\n  [\"es2024.object\", \"lib.es2024.object.d.ts\"],\n  [\"es2024.promise\", \"lib.es2024.promise.d.ts\"],\n  [\"es2024.regexp\", \"lib.es2024.regexp.d.ts\"],\n  [\"es2024.sharedmemory\", \"lib.es2024.sharedmemory.d.ts\"],\n  [\"es2024.string\", \"lib.es2024.string.d.ts\"],\n  [\"esnext.array\", \"lib.es2023.array.d.ts\"],\n  [\"esnext.collection\", \"lib.esnext.collection.d.ts\"],\n  [\"esnext.symbol\", \"lib.es2019.symbol.d.ts\"],\n  [\"esnext.asynciterable\", \"lib.es2018.asynciterable.d.ts\"],\n  [\"esnext.intl\", \"lib.esnext.intl.d.ts\"],\n  [\"esnext.disposable\", \"lib.esnext.disposable.d.ts\"],\n  [\"esnext.bigint\", \"lib.es2020.bigint.d.ts\"],\n  [\"esnext.string\", \"lib.es2022.string.d.ts\"],\n  [\"esnext.promise\", \"lib.es2024.promise.d.ts\"],\n  [\"esnext.weakref\", \"lib.es2021.weakref.d.ts\"],\n  [\"esnext.decorators\", \"lib.esnext.decorators.d.ts\"],\n  [\"esnext.object\", \"lib.es2024.object.d.ts\"],\n  [\"esnext.array\", \"lib.esnext.array.d.ts\"],\n  [\"esnext.regexp\", \"lib.es2024.regexp.d.ts\"],\n  [\"esnext.string\", \"lib.es2024.string.d.ts\"],\n  [\"esnext.iterator\", \"lib.esnext.iterator.d.ts\"],\n  [\"esnext.promise\", \"lib.esnext.promise.d.ts\"],\n  [\"esnext.float16\", \"lib.esnext.float16.d.ts\"],\n  [\"esnext.error\", \"lib.esnext.error.d.ts\"],\n  [\"esnext.sharedmemory\", \"lib.esnext.sharedmemory.d.ts\"],\n  [\"decorators\", \"lib.decorators.d.ts\"],\n  [\"decorators.legacy\", \"lib.decorators.legacy.d.ts\"]\n];\nvar libs = libEntries.map((entry) => entry[0]);\nvar libMap = new Map(libEntries);\nvar optionsForWatch = [\n  {\n    name: \"watchFile\",\n    type: new Map(Object.entries({\n      fixedpollinginterval: 0 /* FixedPollingInterval */,\n      prioritypollinginterval: 1 /* PriorityPollingInterval */,\n      dynamicprioritypolling: 2 /* DynamicPriorityPolling */,\n      fixedchunksizepolling: 3 /* FixedChunkSizePolling */,\n      usefsevents: 4 /* UseFsEvents */,\n      usefseventsonparentdirectory: 5 /* UseFsEventsOnParentDirectory */\n    })),\n    category: Diagnostics.Watch_and_Build_Modes,\n    description: Diagnostics.Specify_how_the_TypeScript_watch_mode_works,\n    defaultValueDescription: 4 /* UseFsEvents */\n  },\n  {\n    name: \"watchDirectory\",\n    type: new Map(Object.entries({\n      usefsevents: 0 /* UseFsEvents */,\n      fixedpollinginterval: 1 /* FixedPollingInterval */,\n      dynamicprioritypolling: 2 /* DynamicPriorityPolling */,\n      fixedchunksizepolling: 3 /* FixedChunkSizePolling */\n    })),\n    category: Diagnostics.Watch_and_Build_Modes,\n    description: Diagnostics.Specify_how_directories_are_watched_on_systems_that_lack_recursive_file_watching_functionality,\n    defaultValueDescription: 0 /* UseFsEvents */\n  },\n  {\n    name: \"fallbackPolling\",\n    type: new Map(Object.entries({\n      fixedinterval: 0 /* FixedInterval */,\n      priorityinterval: 1 /* PriorityInterval */,\n      dynamicpriority: 2 /* DynamicPriority */,\n      fixedchunksize: 3 /* FixedChunkSize */\n    })),\n    category: Diagnostics.Watch_and_Build_Modes,\n    description: Diagnostics.Specify_what_approach_the_watcher_should_use_if_the_system_runs_out_of_native_file_watchers,\n    defaultValueDescription: 1 /* PriorityInterval */\n  },\n  {\n    name: \"synchronousWatchDirectory\",\n    type: \"boolean\",\n    category: Diagnostics.Watch_and_Build_Modes,\n    description: Diagnostics.Synchronously_call_callbacks_and_update_the_state_of_directory_watchers_on_platforms_that_don_t_support_recursive_watching_natively,\n    defaultValueDescription: false\n  },\n  {\n    name: \"excludeDirectories\",\n    type: \"list\",\n    element: {\n      name: \"excludeDirectory\",\n      type: \"string\",\n      isFilePath: true,\n      extraValidation: specToDiagnostic\n    },\n    allowConfigDirTemplateSubstitution: true,\n    category: Diagnostics.Watch_and_Build_Modes,\n    description: Diagnostics.Remove_a_list_of_directories_from_the_watch_process\n  },\n  {\n    name: \"excludeFiles\",\n    type: \"list\",\n    element: {\n      name: \"excludeFile\",\n      type: \"string\",\n      isFilePath: true,\n      extraValidation: specToDiagnostic\n    },\n    allowConfigDirTemplateSubstitution: true,\n    category: Diagnostics.Watch_and_Build_Modes,\n    description: Diagnostics.Remove_a_list_of_files_from_the_watch_mode_s_processing\n  }\n];\nvar commonOptionsWithBuild = [\n  {\n    name: \"help\",\n    shortName: \"h\",\n    type: \"boolean\",\n    showInSimplifiedHelpView: true,\n    isCommandLineOnly: true,\n    category: Diagnostics.Command_line_Options,\n    description: Diagnostics.Print_this_message,\n    defaultValueDescription: false\n  },\n  {\n    name: \"help\",\n    shortName: \"?\",\n    type: \"boolean\",\n    isCommandLineOnly: true,\n    category: Diagnostics.Command_line_Options,\n    defaultValueDescription: false\n  },\n  {\n    name: \"watch\",\n    shortName: \"w\",\n    type: \"boolean\",\n    showInSimplifiedHelpView: true,\n    isCommandLineOnly: true,\n    category: Diagnostics.Command_line_Options,\n    description: Diagnostics.Watch_input_files,\n    defaultValueDescription: false\n  },\n  {\n    name: \"preserveWatchOutput\",\n    type: \"boolean\",\n    showInSimplifiedHelpView: false,\n    category: Diagnostics.Output_Formatting,\n    description: Diagnostics.Disable_wiping_the_console_in_watch_mode,\n    defaultValueDescription: false\n  },\n  {\n    name: \"listFiles\",\n    type: \"boolean\",\n    category: Diagnostics.Compiler_Diagnostics,\n    description: Diagnostics.Print_all_of_the_files_read_during_the_compilation,\n    defaultValueDescription: false\n  },\n  {\n    name: \"explainFiles\",\n    type: \"boolean\",\n    category: Diagnostics.Compiler_Diagnostics,\n    description: Diagnostics.Print_files_read_during_the_compilation_including_why_it_was_included,\n    defaultValueDescription: false\n  },\n  {\n    name: \"listEmittedFiles\",\n    type: \"boolean\",\n    category: Diagnostics.Compiler_Diagnostics,\n    description: Diagnostics.Print_the_names_of_emitted_files_after_a_compilation,\n    defaultValueDescription: false\n  },\n  {\n    name: \"pretty\",\n    type: \"boolean\",\n    showInSimplifiedHelpView: true,\n    category: Diagnostics.Output_Formatting,\n    description: Diagnostics.Enable_color_and_formatting_in_TypeScript_s_output_to_make_compiler_errors_easier_to_read,\n    defaultValueDescription: true\n  },\n  {\n    name: \"traceResolution\",\n    type: \"boolean\",\n    category: Diagnostics.Compiler_Diagnostics,\n    description: Diagnostics.Log_paths_used_during_the_moduleResolution_process,\n    defaultValueDescription: false\n  },\n  {\n    name: \"diagnostics\",\n    type: \"boolean\",\n    category: Diagnostics.Compiler_Diagnostics,\n    description: Diagnostics.Output_compiler_performance_information_after_building,\n    defaultValueDescription: false\n  },\n  {\n    name: \"extendedDiagnostics\",\n    type: \"boolean\",\n    category: Diagnostics.Compiler_Diagnostics,\n    description: Diagnostics.Output_more_detailed_compiler_performance_information_after_building,\n    defaultValueDescription: false\n  },\n  {\n    name: \"generateCpuProfile\",\n    type: \"string\",\n    isFilePath: true,\n    paramType: Diagnostics.FILE_OR_DIRECTORY,\n    category: Diagnostics.Compiler_Diagnostics,\n    description: Diagnostics.Emit_a_v8_CPU_profile_of_the_compiler_run_for_debugging,\n    defaultValueDescription: \"profile.cpuprofile\"\n  },\n  {\n    name: \"generateTrace\",\n    type: \"string\",\n    isFilePath: true,\n    paramType: Diagnostics.DIRECTORY,\n    category: Diagnostics.Compiler_Diagnostics,\n    description: Diagnostics.Generates_an_event_trace_and_a_list_of_types\n  },\n  {\n    name: \"incremental\",\n    shortName: \"i\",\n    type: \"boolean\",\n    category: Diagnostics.Projects,\n    description: Diagnostics.Save_tsbuildinfo_files_to_allow_for_incremental_compilation_of_projects,\n    transpileOptionValue: void 0,\n    defaultValueDescription: Diagnostics.false_unless_composite_is_set\n  },\n  {\n    name: \"declaration\",\n    shortName: \"d\",\n    type: \"boolean\",\n    // Not setting affectsEmit because we calculate this flag might not affect full emit\n    affectsBuildInfo: true,\n    showInSimplifiedHelpView: true,\n    category: Diagnostics.Emit,\n    transpileOptionValue: void 0,\n    description: Diagnostics.Generate_d_ts_files_from_TypeScript_and_JavaScript_files_in_your_project,\n    defaultValueDescription: Diagnostics.false_unless_composite_is_set\n  },\n  {\n    name: \"declarationMap\",\n    type: \"boolean\",\n    // Not setting affectsEmit because we calculate this flag might not affect full emit\n    affectsBuildInfo: true,\n    showInSimplifiedHelpView: true,\n    category: Diagnostics.Emit,\n    defaultValueDescription: false,\n    description: Diagnostics.Create_sourcemaps_for_d_ts_files\n  },\n  {\n    name: \"emitDeclarationOnly\",\n    type: \"boolean\",\n    // Not setting affectsEmit because we calculate this flag might not affect full emit\n    affectsBuildInfo: true,\n    showInSimplifiedHelpView: true,\n    category: Diagnostics.Emit,\n    description: Diagnostics.Only_output_d_ts_files_and_not_JavaScript_files,\n    transpileOptionValue: void 0,\n    defaultValueDescription: false\n  },\n  {\n    name: \"sourceMap\",\n    type: \"boolean\",\n    // Not setting affectsEmit because we calculate this flag might not affect full emit\n    affectsBuildInfo: true,\n    showInSimplifiedHelpView: true,\n    category: Diagnostics.Emit,\n    defaultValueDescription: false,\n    description: Diagnostics.Create_source_map_files_for_emitted_JavaScript_files\n  },\n  {\n    name: \"inlineSourceMap\",\n    type: \"boolean\",\n    // Not setting affectsEmit because we calculate this flag might not affect full emit\n    affectsBuildInfo: true,\n    category: Diagnostics.Emit,\n    description: Diagnostics.Include_sourcemap_files_inside_the_emitted_JavaScript,\n    defaultValueDescription: false\n  },\n  {\n    name: \"noCheck\",\n    type: \"boolean\",\n    showInSimplifiedHelpView: false,\n    category: Diagnostics.Compiler_Diagnostics,\n    description: Diagnostics.Disable_full_type_checking_only_critical_parse_and_emit_errors_will_be_reported,\n    transpileOptionValue: true,\n    defaultValueDescription: false\n    // Not setting affectsSemanticDiagnostics or affectsBuildInfo because we dont want all diagnostics to go away, its handled in builder\n  },\n  {\n    name: \"noEmit\",\n    type: \"boolean\",\n    showInSimplifiedHelpView: true,\n    category: Diagnostics.Emit,\n    description: Diagnostics.Disable_emitting_files_from_a_compilation,\n    transpileOptionValue: void 0,\n    defaultValueDescription: false\n  },\n  {\n    name: \"assumeChangesOnlyAffectDirectDependencies\",\n    type: \"boolean\",\n    affectsSemanticDiagnostics: true,\n    affectsEmit: true,\n    affectsBuildInfo: true,\n    category: Diagnostics.Watch_and_Build_Modes,\n    description: Diagnostics.Have_recompiles_in_projects_that_use_incremental_and_watch_mode_assume_that_changes_within_a_file_will_only_affect_files_directly_depending_on_it,\n    defaultValueDescription: false\n  },\n  {\n    name: \"locale\",\n    type: \"string\",\n    category: Diagnostics.Command_line_Options,\n    isCommandLineOnly: true,\n    description: Diagnostics.Set_the_language_of_the_messaging_from_TypeScript_This_does_not_affect_emit,\n    defaultValueDescription: Diagnostics.Platform_specific\n  }\n];\nvar targetOptionDeclaration = {\n  name: \"target\",\n  shortName: \"t\",\n  type: new Map(Object.entries({\n    es3: 0 /* ES3 */,\n    es5: 1 /* ES5 */,\n    es6: 2 /* ES2015 */,\n    es2015: 2 /* ES2015 */,\n    es2016: 3 /* ES2016 */,\n    es2017: 4 /* ES2017 */,\n    es2018: 5 /* ES2018 */,\n    es2019: 6 /* ES2019 */,\n    es2020: 7 /* ES2020 */,\n    es2021: 8 /* ES2021 */,\n    es2022: 9 /* ES2022 */,\n    es2023: 10 /* ES2023 */,\n    es2024: 11 /* ES2024 */,\n    esnext: 99 /* ESNext */\n  })),\n  affectsSourceFile: true,\n  affectsModuleResolution: true,\n  affectsEmit: true,\n  affectsBuildInfo: true,\n  deprecatedKeys: /* @__PURE__ */ new Set([\"es3\"]),\n  paramType: Diagnostics.VERSION,\n  showInSimplifiedHelpView: true,\n  category: Diagnostics.Language_and_Environment,\n  description: Diagnostics.Set_the_JavaScript_language_version_for_emitted_JavaScript_and_include_compatible_library_declarations,\n  defaultValueDescription: 1 /* ES5 */\n};\nvar moduleOptionDeclaration = {\n  name: \"module\",\n  shortName: \"m\",\n  type: new Map(Object.entries({\n    none: 0 /* None */,\n    commonjs: 1 /* CommonJS */,\n    amd: 2 /* AMD */,\n    system: 4 /* System */,\n    umd: 3 /* UMD */,\n    es6: 5 /* ES2015 */,\n    es2015: 5 /* ES2015 */,\n    es2020: 6 /* ES2020 */,\n    es2022: 7 /* ES2022 */,\n    esnext: 99 /* ESNext */,\n    node16: 100 /* Node16 */,\n    node18: 101 /* Node18 */,\n    node20: 102 /* Node20 */,\n    nodenext: 199 /* NodeNext */,\n    preserve: 200 /* Preserve */\n  })),\n  affectsSourceFile: true,\n  affectsModuleResolution: true,\n  affectsEmit: true,\n  affectsBuildInfo: true,\n  paramType: Diagnostics.KIND,\n  showInSimplifiedHelpView: true,\n  category: Diagnostics.Modules,\n  description: Diagnostics.Specify_what_module_code_is_generated,\n  defaultValueDescription: void 0\n};\nvar commandOptionsWithoutBuild = [\n  // CommandLine only options\n  {\n    name: \"all\",\n    type: \"boolean\",\n    showInSimplifiedHelpView: true,\n    category: Diagnostics.Command_line_Options,\n    description: Diagnostics.Show_all_compiler_options,\n    defaultValueDescription: false\n  },\n  {\n    name: \"version\",\n    shortName: \"v\",\n    type: \"boolean\",\n    showInSimplifiedHelpView: true,\n    category: Diagnostics.Command_line_Options,\n    description: Diagnostics.Print_the_compiler_s_version,\n    defaultValueDescription: false\n  },\n  {\n    name: \"init\",\n    type: \"boolean\",\n    showInSimplifiedHelpView: true,\n    category: Diagnostics.Command_line_Options,\n    description: Diagnostics.Initializes_a_TypeScript_project_and_creates_a_tsconfig_json_file,\n    defaultValueDescription: false\n  },\n  {\n    name: \"project\",\n    shortName: \"p\",\n    type: \"string\",\n    isFilePath: true,\n    showInSimplifiedHelpView: true,\n    category: Diagnostics.Command_line_Options,\n    paramType: Diagnostics.FILE_OR_DIRECTORY,\n    description: Diagnostics.Compile_the_project_given_the_path_to_its_configuration_file_or_to_a_folder_with_a_tsconfig_json\n  },\n  {\n    name: \"showConfig\",\n    type: \"boolean\",\n    showInSimplifiedHelpView: true,\n    category: Diagnostics.Command_line_Options,\n    isCommandLineOnly: true,\n    description: Diagnostics.Print_the_final_configuration_instead_of_building,\n    defaultValueDescription: false\n  },\n  {\n    name: \"listFilesOnly\",\n    type: \"boolean\",\n    category: Diagnostics.Command_line_Options,\n    isCommandLineOnly: true,\n    description: Diagnostics.Print_names_of_files_that_are_part_of_the_compilation_and_then_stop_processing,\n    defaultValueDescription: false\n  },\n  // Basic\n  targetOptionDeclaration,\n  moduleOptionDeclaration,\n  {\n    name: \"lib\",\n    type: \"list\",\n    element: {\n      name: \"lib\",\n      type: libMap,\n      defaultValueDescription: void 0\n    },\n    affectsProgramStructure: true,\n    showInSimplifiedHelpView: true,\n    category: Diagnostics.Language_and_Environment,\n    description: Diagnostics.Specify_a_set_of_bundled_library_declaration_files_that_describe_the_target_runtime_environment,\n    transpileOptionValue: void 0\n  },\n  {\n    name: \"allowJs\",\n    type: \"boolean\",\n    allowJsFlag: true,\n    affectsBuildInfo: true,\n    showInSimplifiedHelpView: true,\n    category: Diagnostics.JavaScript_Support,\n    description: Diagnostics.Allow_JavaScript_files_to_be_a_part_of_your_program_Use_the_checkJs_option_to_get_errors_from_these_files,\n    defaultValueDescription: false\n  },\n  {\n    name: \"checkJs\",\n    type: \"boolean\",\n    affectsModuleResolution: true,\n    affectsSemanticDiagnostics: true,\n    affectsBuildInfo: true,\n    showInSimplifiedHelpView: true,\n    category: Diagnostics.JavaScript_Support,\n    description: Diagnostics.Enable_error_reporting_in_type_checked_JavaScript_files,\n    defaultValueDescription: false\n  },\n  {\n    name: \"jsx\",\n    type: jsxOptionMap,\n    affectsSourceFile: true,\n    affectsEmit: true,\n    affectsBuildInfo: true,\n    affectsModuleResolution: true,\n    // The checker emits an error when it sees JSX but this option is not set in compilerOptions.\n    // This is effectively a semantic error, so mark this option as affecting semantic diagnostics\n    // so we know to refresh errors when this option is changed.\n    affectsSemanticDiagnostics: true,\n    paramType: Diagnostics.KIND,\n    showInSimplifiedHelpView: true,\n    category: Diagnostics.Language_and_Environment,\n    description: Diagnostics.Specify_what_JSX_code_is_generated,\n    defaultValueDescription: void 0\n  },\n  {\n    name: \"outFile\",\n    type: \"string\",\n    affectsEmit: true,\n    affectsBuildInfo: true,\n    affectsDeclarationPath: true,\n    isFilePath: true,\n    paramType: Diagnostics.FILE,\n    showInSimplifiedHelpView: true,\n    category: Diagnostics.Emit,\n    description: Diagnostics.Specify_a_file_that_bundles_all_outputs_into_one_JavaScript_file_If_declaration_is_true_also_designates_a_file_that_bundles_all_d_ts_output,\n    transpileOptionValue: void 0\n  },\n  {\n    name: \"outDir\",\n    type: \"string\",\n    affectsEmit: true,\n    affectsBuildInfo: true,\n    affectsDeclarationPath: true,\n    isFilePath: true,\n    paramType: Diagnostics.DIRECTORY,\n    showInSimplifiedHelpView: true,\n    category: Diagnostics.Emit,\n    description: Diagnostics.Specify_an_output_folder_for_all_emitted_files\n  },\n  {\n    name: \"rootDir\",\n    type: \"string\",\n    affectsEmit: true,\n    affectsBuildInfo: true,\n    affectsDeclarationPath: true,\n    isFilePath: true,\n    paramType: Diagnostics.LOCATION,\n    category: Diagnostics.Modules,\n    description: Diagnostics.Specify_the_root_folder_within_your_source_files,\n    defaultValueDescription: Diagnostics.Computed_from_the_list_of_input_files\n  },\n  {\n    name: \"composite\",\n    type: \"boolean\",\n    // Not setting affectsEmit because we calculate this flag might not affect full emit\n    affectsBuildInfo: true,\n    isTSConfigOnly: true,\n    category: Diagnostics.Projects,\n    transpileOptionValue: void 0,\n    defaultValueDescription: false,\n    description: Diagnostics.Enable_constraints_that_allow_a_TypeScript_project_to_be_used_with_project_references\n  },\n  {\n    name: \"tsBuildInfoFile\",\n    type: \"string\",\n    affectsEmit: true,\n    affectsBuildInfo: true,\n    isFilePath: true,\n    paramType: Diagnostics.FILE,\n    category: Diagnostics.Projects,\n    transpileOptionValue: void 0,\n    defaultValueDescription: \".tsbuildinfo\",\n    description: Diagnostics.Specify_the_path_to_tsbuildinfo_incremental_compilation_file\n  },\n  {\n    name: \"removeComments\",\n    type: \"boolean\",\n    affectsEmit: true,\n    affectsBuildInfo: true,\n    showInSimplifiedHelpView: true,\n    category: Diagnostics.Emit,\n    defaultValueDescription: false,\n    description: Diagnostics.Disable_emitting_comments\n  },\n  {\n    name: \"importHelpers\",\n    type: \"boolean\",\n    affectsEmit: true,\n    affectsBuildInfo: true,\n    affectsSourceFile: true,\n    category: Diagnostics.Emit,\n    description: Diagnostics.Allow_importing_helper_functions_from_tslib_once_per_project_instead_of_including_them_per_file,\n    defaultValueDescription: false\n  },\n  {\n    name: \"importsNotUsedAsValues\",\n    type: new Map(Object.entries({\n      remove: 0 /* Remove */,\n      preserve: 1 /* Preserve */,\n      error: 2 /* Error */\n    })),\n    affectsEmit: true,\n    affectsSemanticDiagnostics: true,\n    affectsBuildInfo: true,\n    category: Diagnostics.Backwards_Compatibility,\n    description: Diagnostics.Specify_emit_Slashchecking_behavior_for_imports_that_are_only_used_for_types,\n    defaultValueDescription: 0 /* Remove */\n  },\n  {\n    name: \"downlevelIteration\",\n    type: \"boolean\",\n    affectsEmit: true,\n    affectsBuildInfo: true,\n    category: Diagnostics.Emit,\n    description: Diagnostics.Emit_more_compliant_but_verbose_and_less_performant_JavaScript_for_iteration,\n    defaultValueDescription: false\n  },\n  {\n    name: \"isolatedModules\",\n    type: \"boolean\",\n    category: Diagnostics.Interop_Constraints,\n    description: Diagnostics.Ensure_that_each_file_can_be_safely_transpiled_without_relying_on_other_imports,\n    transpileOptionValue: true,\n    defaultValueDescription: false\n  },\n  {\n    name: \"verbatimModuleSyntax\",\n    type: \"boolean\",\n    affectsEmit: true,\n    affectsSemanticDiagnostics: true,\n    affectsBuildInfo: true,\n    category: Diagnostics.Interop_Constraints,\n    description: Diagnostics.Do_not_transform_or_elide_any_imports_or_exports_not_marked_as_type_only_ensuring_they_are_written_in_the_output_file_s_format_based_on_the_module_setting,\n    defaultValueDescription: false\n  },\n  {\n    name: \"isolatedDeclarations\",\n    type: \"boolean\",\n    category: Diagnostics.Interop_Constraints,\n    description: Diagnostics.Require_sufficient_annotation_on_exports_so_other_tools_can_trivially_generate_declaration_files,\n    defaultValueDescription: false,\n    affectsBuildInfo: true,\n    affectsSemanticDiagnostics: true\n  },\n  {\n    name: \"erasableSyntaxOnly\",\n    type: \"boolean\",\n    category: Diagnostics.Interop_Constraints,\n    description: Diagnostics.Do_not_allow_runtime_constructs_that_are_not_part_of_ECMAScript,\n    defaultValueDescription: false,\n    affectsBuildInfo: true,\n    affectsSemanticDiagnostics: true\n  },\n  {\n    name: \"libReplacement\",\n    type: \"boolean\",\n    affectsProgramStructure: true,\n    category: Diagnostics.Language_and_Environment,\n    description: Diagnostics.Enable_lib_replacement,\n    defaultValueDescription: true\n  },\n  // Strict Type Checks\n  {\n    name: \"strict\",\n    type: \"boolean\",\n    // Though this affects semantic diagnostics, affectsSemanticDiagnostics is not set here\n    // The value of each strictFlag depends on own strictFlag value or this and never accessed directly.\n    // But we need to store `strict` in builf info, even though it won't be examined directly, so that the\n    // flags it controls (e.g. `strictNullChecks`) will be retrieved correctly\n    affectsBuildInfo: true,\n    showInSimplifiedHelpView: true,\n    category: Diagnostics.Type_Checking,\n    description: Diagnostics.Enable_all_strict_type_checking_options,\n    defaultValueDescription: false\n  },\n  {\n    name: \"noImplicitAny\",\n    type: \"boolean\",\n    affectsSemanticDiagnostics: true,\n    affectsBuildInfo: true,\n    strictFlag: true,\n    category: Diagnostics.Type_Checking,\n    description: Diagnostics.Enable_error_reporting_for_expressions_and_declarations_with_an_implied_any_type,\n    defaultValueDescription: Diagnostics.false_unless_strict_is_set\n  },\n  {\n    name: \"strictNullChecks\",\n    type: \"boolean\",\n    affectsSemanticDiagnostics: true,\n    affectsBuildInfo: true,\n    strictFlag: true,\n    category: Diagnostics.Type_Checking,\n    description: Diagnostics.When_type_checking_take_into_account_null_and_undefined,\n    defaultValueDescription: Diagnostics.false_unless_strict_is_set\n  },\n  {\n    name: \"strictFunctionTypes\",\n    type: \"boolean\",\n    affectsSemanticDiagnostics: true,\n    affectsBuildInfo: true,\n    strictFlag: true,\n    category: Diagnostics.Type_Checking,\n    description: Diagnostics.When_assigning_functions_check_to_ensure_parameters_and_the_return_values_are_subtype_compatible,\n    defaultValueDescription: Diagnostics.false_unless_strict_is_set\n  },\n  {\n    name: \"strictBindCallApply\",\n    type: \"boolean\",\n    affectsSemanticDiagnostics: true,\n    affectsBuildInfo: true,\n    strictFlag: true,\n    category: Diagnostics.Type_Checking,\n    description: Diagnostics.Check_that_the_arguments_for_bind_call_and_apply_methods_match_the_original_function,\n    defaultValueDescription: Diagnostics.false_unless_strict_is_set\n  },\n  {\n    name: \"strictPropertyInitialization\",\n    type: \"boolean\",\n    affectsSemanticDiagnostics: true,\n    affectsBuildInfo: true,\n    strictFlag: true,\n    category: Diagnostics.Type_Checking,\n    description: Diagnostics.Check_for_class_properties_that_are_declared_but_not_set_in_the_constructor,\n    defaultValueDescription: Diagnostics.false_unless_strict_is_set\n  },\n  {\n    name: \"strictBuiltinIteratorReturn\",\n    type: \"boolean\",\n    affectsSemanticDiagnostics: true,\n    affectsBuildInfo: true,\n    strictFlag: true,\n    category: Diagnostics.Type_Checking,\n    description: Diagnostics.Built_in_iterators_are_instantiated_with_a_TReturn_type_of_undefined_instead_of_any,\n    defaultValueDescription: Diagnostics.false_unless_strict_is_set\n  },\n  {\n    name: \"noImplicitThis\",\n    type: \"boolean\",\n    affectsSemanticDiagnostics: true,\n    affectsBuildInfo: true,\n    strictFlag: true,\n    category: Diagnostics.Type_Checking,\n    description: Diagnostics.Enable_error_reporting_when_this_is_given_the_type_any,\n    defaultValueDescription: Diagnostics.false_unless_strict_is_set\n  },\n  {\n    name: \"useUnknownInCatchVariables\",\n    type: \"boolean\",\n    affectsSemanticDiagnostics: true,\n    affectsBuildInfo: true,\n    strictFlag: true,\n    category: Diagnostics.Type_Checking,\n    description: Diagnostics.Default_catch_clause_variables_as_unknown_instead_of_any,\n    defaultValueDescription: Diagnostics.false_unless_strict_is_set\n  },\n  {\n    name: \"alwaysStrict\",\n    type: \"boolean\",\n    affectsSourceFile: true,\n    affectsEmit: true,\n    affectsBuildInfo: true,\n    strictFlag: true,\n    category: Diagnostics.Type_Checking,\n    description: Diagnostics.Ensure_use_strict_is_always_emitted,\n    defaultValueDescription: Diagnostics.false_unless_strict_is_set\n  },\n  // Additional Checks\n  {\n    name: \"noUnusedLocals\",\n    type: \"boolean\",\n    affectsSemanticDiagnostics: true,\n    affectsBuildInfo: true,\n    category: Diagnostics.Type_Checking,\n    description: Diagnostics.Enable_error_reporting_when_local_variables_aren_t_read,\n    defaultValueDescription: false\n  },\n  {\n    name: \"noUnusedParameters\",\n    type: \"boolean\",\n    affectsSemanticDiagnostics: true,\n    affectsBuildInfo: true,\n    category: Diagnostics.Type_Checking,\n    description: Diagnostics.Raise_an_error_when_a_function_parameter_isn_t_read,\n    defaultValueDescription: false\n  },\n  {\n    name: \"exactOptionalPropertyTypes\",\n    type: \"boolean\",\n    affectsSemanticDiagnostics: true,\n    affectsBuildInfo: true,\n    category: Diagnostics.Type_Checking,\n    description: Diagnostics.Interpret_optional_property_types_as_written_rather_than_adding_undefined,\n    defaultValueDescription: false\n  },\n  {\n    name: \"noImplicitReturns\",\n    type: \"boolean\",\n    affectsSemanticDiagnostics: true,\n    affectsBuildInfo: true,\n    category: Diagnostics.Type_Checking,\n    description: Diagnostics.Enable_error_reporting_for_codepaths_that_do_not_explicitly_return_in_a_function,\n    defaultValueDescription: false\n  },\n  {\n    name: \"noFallthroughCasesInSwitch\",\n    type: \"boolean\",\n    affectsBindDiagnostics: true,\n    affectsSemanticDiagnostics: true,\n    affectsBuildInfo: true,\n    category: Diagnostics.Type_Checking,\n    description: Diagnostics.Enable_error_reporting_for_fallthrough_cases_in_switch_statements,\n    defaultValueDescription: false\n  },\n  {\n    name: \"noUncheckedIndexedAccess\",\n    type: \"boolean\",\n    affectsSemanticDiagnostics: true,\n    affectsBuildInfo: true,\n    category: Diagnostics.Type_Checking,\n    description: Diagnostics.Add_undefined_to_a_type_when_accessed_using_an_index,\n    defaultValueDescription: false\n  },\n  {\n    name: \"noImplicitOverride\",\n    type: \"boolean\",\n    affectsSemanticDiagnostics: true,\n    affectsBuildInfo: true,\n    category: Diagnostics.Type_Checking,\n    description: Diagnostics.Ensure_overriding_members_in_derived_classes_are_marked_with_an_override_modifier,\n    defaultValueDescription: false\n  },\n  {\n    name: \"noPropertyAccessFromIndexSignature\",\n    type: \"boolean\",\n    affectsSemanticDiagnostics: true,\n    affectsBuildInfo: true,\n    showInSimplifiedHelpView: false,\n    category: Diagnostics.Type_Checking,\n    description: Diagnostics.Enforces_using_indexed_accessors_for_keys_declared_using_an_indexed_type,\n    defaultValueDescription: false\n  },\n  // Module Resolution\n  {\n    name: \"moduleResolution\",\n    type: new Map(Object.entries({\n      // N.B. The first entry specifies the value shown in `tsc --init`\n      node10: 2 /* Node10 */,\n      node: 2 /* Node10 */,\n      classic: 1 /* Classic */,\n      node16: 3 /* Node16 */,\n      nodenext: 99 /* NodeNext */,\n      bundler: 100 /* Bundler */\n    })),\n    deprecatedKeys: /* @__PURE__ */ new Set([\"node\"]),\n    affectsSourceFile: true,\n    affectsModuleResolution: true,\n    paramType: Diagnostics.STRATEGY,\n    category: Diagnostics.Modules,\n    description: Diagnostics.Specify_how_TypeScript_looks_up_a_file_from_a_given_module_specifier,\n    defaultValueDescription: Diagnostics.module_AMD_or_UMD_or_System_or_ES6_then_Classic_Otherwise_Node\n  },\n  {\n    name: \"baseUrl\",\n    type: \"string\",\n    affectsModuleResolution: true,\n    isFilePath: true,\n    category: Diagnostics.Modules,\n    description: Diagnostics.Specify_the_base_directory_to_resolve_non_relative_module_names\n  },\n  {\n    // this option can only be specified in tsconfig.json\n    // use type = object to copy the value as-is\n    name: \"paths\",\n    type: \"object\",\n    affectsModuleResolution: true,\n    allowConfigDirTemplateSubstitution: true,\n    isTSConfigOnly: true,\n    category: Diagnostics.Modules,\n    description: Diagnostics.Specify_a_set_of_entries_that_re_map_imports_to_additional_lookup_locations,\n    transpileOptionValue: void 0\n  },\n  {\n    // this option can only be specified in tsconfig.json\n    // use type = object to copy the value as-is\n    name: \"rootDirs\",\n    type: \"list\",\n    isTSConfigOnly: true,\n    element: {\n      name: \"rootDirs\",\n      type: \"string\",\n      isFilePath: true\n    },\n    affectsModuleResolution: true,\n    allowConfigDirTemplateSubstitution: true,\n    category: Diagnostics.Modules,\n    description: Diagnostics.Allow_multiple_folders_to_be_treated_as_one_when_resolving_modules,\n    transpileOptionValue: void 0,\n    defaultValueDescription: Diagnostics.Computed_from_the_list_of_input_files\n  },\n  {\n    name: \"typeRoots\",\n    type: \"list\",\n    element: {\n      name: \"typeRoots\",\n      type: \"string\",\n      isFilePath: true\n    },\n    affectsModuleResolution: true,\n    allowConfigDirTemplateSubstitution: true,\n    category: Diagnostics.Modules,\n    description: Diagnostics.Specify_multiple_folders_that_act_like_Slashnode_modules_Slash_types\n  },\n  {\n    name: \"types\",\n    type: \"list\",\n    element: {\n      name: \"types\",\n      type: \"string\"\n    },\n    affectsProgramStructure: true,\n    showInSimplifiedHelpView: true,\n    category: Diagnostics.Modules,\n    description: Diagnostics.Specify_type_package_names_to_be_included_without_being_referenced_in_a_source_file,\n    transpileOptionValue: void 0\n  },\n  {\n    name: \"allowSyntheticDefaultImports\",\n    type: \"boolean\",\n    affectsSemanticDiagnostics: true,\n    affectsBuildInfo: true,\n    category: Diagnostics.Interop_Constraints,\n    description: Diagnostics.Allow_import_x_from_y_when_a_module_doesn_t_have_a_default_export,\n    defaultValueDescription: Diagnostics.module_system_or_esModuleInterop\n  },\n  {\n    name: \"esModuleInterop\",\n    type: \"boolean\",\n    affectsSemanticDiagnostics: true,\n    affectsEmit: true,\n    affectsBuildInfo: true,\n    showInSimplifiedHelpView: true,\n    category: Diagnostics.Interop_Constraints,\n    description: Diagnostics.Emit_additional_JavaScript_to_ease_support_for_importing_CommonJS_modules_This_enables_allowSyntheticDefaultImports_for_type_compatibility,\n    defaultValueDescription: false\n  },\n  {\n    name: \"preserveSymlinks\",\n    type: \"boolean\",\n    category: Diagnostics.Interop_Constraints,\n    description: Diagnostics.Disable_resolving_symlinks_to_their_realpath_This_correlates_to_the_same_flag_in_node,\n    defaultValueDescription: false\n  },\n  {\n    name: \"allowUmdGlobalAccess\",\n    type: \"boolean\",\n    affectsSemanticDiagnostics: true,\n    affectsBuildInfo: true,\n    category: Diagnostics.Modules,\n    description: Diagnostics.Allow_accessing_UMD_globals_from_modules,\n    defaultValueDescription: false\n  },\n  {\n    name: \"moduleSuffixes\",\n    type: \"list\",\n    element: {\n      name: \"suffix\",\n      type: \"string\"\n    },\n    listPreserveFalsyValues: true,\n    affectsModuleResolution: true,\n    category: Diagnostics.Modules,\n    description: Diagnostics.List_of_file_name_suffixes_to_search_when_resolving_a_module\n  },\n  {\n    name: \"allowImportingTsExtensions\",\n    type: \"boolean\",\n    affectsSemanticDiagnostics: true,\n    affectsBuildInfo: true,\n    category: Diagnostics.Modules,\n    description: Diagnostics.Allow_imports_to_include_TypeScript_file_extensions_Requires_moduleResolution_bundler_and_either_noEmit_or_emitDeclarationOnly_to_be_set,\n    defaultValueDescription: false,\n    transpileOptionValue: void 0\n  },\n  {\n    name: \"rewriteRelativeImportExtensions\",\n    type: \"boolean\",\n    affectsSemanticDiagnostics: true,\n    affectsBuildInfo: true,\n    category: Diagnostics.Modules,\n    description: Diagnostics.Rewrite_ts_tsx_mts_and_cts_file_extensions_in_relative_import_paths_to_their_JavaScript_equivalent_in_output_files,\n    defaultValueDescription: false\n  },\n  {\n    name: \"resolvePackageJsonExports\",\n    type: \"boolean\",\n    affectsModuleResolution: true,\n    category: Diagnostics.Modules,\n    description: Diagnostics.Use_the_package_json_exports_field_when_resolving_package_imports,\n    defaultValueDescription: Diagnostics.true_when_moduleResolution_is_node16_nodenext_or_bundler_otherwise_false\n  },\n  {\n    name: \"resolvePackageJsonImports\",\n    type: \"boolean\",\n    affectsModuleResolution: true,\n    category: Diagnostics.Modules,\n    description: Diagnostics.Use_the_package_json_imports_field_when_resolving_imports,\n    defaultValueDescription: Diagnostics.true_when_moduleResolution_is_node16_nodenext_or_bundler_otherwise_false\n  },\n  {\n    name: \"customConditions\",\n    type: \"list\",\n    element: {\n      name: \"condition\",\n      type: \"string\"\n    },\n    affectsModuleResolution: true,\n    category: Diagnostics.Modules,\n    description: Diagnostics.Conditions_to_set_in_addition_to_the_resolver_specific_defaults_when_resolving_imports\n  },\n  {\n    name: \"noUncheckedSideEffectImports\",\n    type: \"boolean\",\n    affectsSemanticDiagnostics: true,\n    affectsBuildInfo: true,\n    category: Diagnostics.Modules,\n    description: Diagnostics.Check_side_effect_imports,\n    defaultValueDescription: false\n  },\n  // Source Maps\n  {\n    name: \"sourceRoot\",\n    type: \"string\",\n    affectsEmit: true,\n    affectsBuildInfo: true,\n    paramType: Diagnostics.LOCATION,\n    category: Diagnostics.Emit,\n    description: Diagnostics.Specify_the_root_path_for_debuggers_to_find_the_reference_source_code\n  },\n  {\n    name: \"mapRoot\",\n    type: \"string\",\n    affectsEmit: true,\n    affectsBuildInfo: true,\n    paramType: Diagnostics.LOCATION,\n    category: Diagnostics.Emit,\n    description: Diagnostics.Specify_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations\n  },\n  {\n    name: \"inlineSources\",\n    type: \"boolean\",\n    affectsEmit: true,\n    affectsBuildInfo: true,\n    category: Diagnostics.Emit,\n    description: Diagnostics.Include_source_code_in_the_sourcemaps_inside_the_emitted_JavaScript,\n    defaultValueDescription: false\n  },\n  // Experimental\n  {\n    name: \"experimentalDecorators\",\n    type: \"boolean\",\n    affectsEmit: true,\n    affectsSemanticDiagnostics: true,\n    affectsBuildInfo: true,\n    category: Diagnostics.Language_and_Environment,\n    description: Diagnostics.Enable_experimental_support_for_legacy_experimental_decorators,\n    defaultValueDescription: false\n  },\n  {\n    name: \"emitDecoratorMetadata\",\n    type: \"boolean\",\n    affectsSemanticDiagnostics: true,\n    affectsEmit: true,\n    affectsBuildInfo: true,\n    category: Diagnostics.Language_and_Environment,\n    description: Diagnostics.Emit_design_type_metadata_for_decorated_declarations_in_source_files,\n    defaultValueDescription: false\n  },\n  // Advanced\n  {\n    name: \"jsxFactory\",\n    type: \"string\",\n    category: Diagnostics.Language_and_Environment,\n    description: Diagnostics.Specify_the_JSX_factory_function_used_when_targeting_React_JSX_emit_e_g_React_createElement_or_h,\n    defaultValueDescription: \"`React.createElement`\"\n  },\n  {\n    name: \"jsxFragmentFactory\",\n    type: \"string\",\n    category: Diagnostics.Language_and_Environment,\n    description: Diagnostics.Specify_the_JSX_Fragment_reference_used_for_fragments_when_targeting_React_JSX_emit_e_g_React_Fragment_or_Fragment,\n    defaultValueDescription: \"React.Fragment\"\n  },\n  {\n    name: \"jsxImportSource\",\n    type: \"string\",\n    affectsSemanticDiagnostics: true,\n    affectsEmit: true,\n    affectsBuildInfo: true,\n    affectsModuleResolution: true,\n    affectsSourceFile: true,\n    category: Diagnostics.Language_and_Environment,\n    description: Diagnostics.Specify_module_specifier_used_to_import_the_JSX_factory_functions_when_using_jsx_Colon_react_jsx_Asterisk,\n    defaultValueDescription: \"react\"\n  },\n  {\n    name: \"resolveJsonModule\",\n    type: \"boolean\",\n    affectsModuleResolution: true,\n    category: Diagnostics.Modules,\n    description: Diagnostics.Enable_importing_json_files,\n    defaultValueDescription: false\n  },\n  {\n    name: \"allowArbitraryExtensions\",\n    type: \"boolean\",\n    affectsProgramStructure: true,\n    category: Diagnostics.Modules,\n    description: Diagnostics.Enable_importing_files_with_any_extension_provided_a_declaration_file_is_present,\n    defaultValueDescription: false\n  },\n  {\n    name: \"out\",\n    type: \"string\",\n    affectsEmit: true,\n    affectsBuildInfo: true,\n    affectsDeclarationPath: true,\n    isFilePath: false,\n    // This is intentionally broken to support compatibility with existing tsconfig files\n    // for correct behaviour, please use outFile\n    category: Diagnostics.Backwards_Compatibility,\n    paramType: Diagnostics.FILE,\n    transpileOptionValue: void 0,\n    description: Diagnostics.Deprecated_setting_Use_outFile_instead\n  },\n  {\n    name: \"reactNamespace\",\n    type: \"string\",\n    affectsEmit: true,\n    affectsBuildInfo: true,\n    category: Diagnostics.Language_and_Environment,\n    description: Diagnostics.Specify_the_object_invoked_for_createElement_This_only_applies_when_targeting_react_JSX_emit,\n    defaultValueDescription: \"`React`\"\n  },\n  {\n    name: \"skipDefaultLibCheck\",\n    type: \"boolean\",\n    // We need to store these to determine whether `lib` files need to be rechecked\n    affectsBuildInfo: true,\n    category: Diagnostics.Completeness,\n    description: Diagnostics.Skip_type_checking_d_ts_files_that_are_included_with_TypeScript,\n    defaultValueDescription: false\n  },\n  {\n    name: \"charset\",\n    type: \"string\",\n    category: Diagnostics.Backwards_Compatibility,\n    description: Diagnostics.No_longer_supported_In_early_versions_manually_set_the_text_encoding_for_reading_files,\n    defaultValueDescription: \"utf8\"\n  },\n  {\n    name: \"emitBOM\",\n    type: \"boolean\",\n    affectsEmit: true,\n    affectsBuildInfo: true,\n    category: Diagnostics.Emit,\n    description: Diagnostics.Emit_a_UTF_8_Byte_Order_Mark_BOM_in_the_beginning_of_output_files,\n    defaultValueDescription: false\n  },\n  {\n    name: \"newLine\",\n    type: new Map(Object.entries({\n      crlf: 0 /* CarriageReturnLineFeed */,\n      lf: 1 /* LineFeed */\n    })),\n    affectsEmit: true,\n    affectsBuildInfo: true,\n    paramType: Diagnostics.NEWLINE,\n    category: Diagnostics.Emit,\n    description: Diagnostics.Set_the_newline_character_for_emitting_files,\n    defaultValueDescription: \"lf\"\n  },\n  {\n    name: \"noErrorTruncation\",\n    type: \"boolean\",\n    affectsSemanticDiagnostics: true,\n    affectsBuildInfo: true,\n    category: Diagnostics.Output_Formatting,\n    description: Diagnostics.Disable_truncating_types_in_error_messages,\n    defaultValueDescription: false\n  },\n  {\n    name: \"noLib\",\n    type: \"boolean\",\n    category: Diagnostics.Language_and_Environment,\n    affectsProgramStructure: true,\n    description: Diagnostics.Disable_including_any_library_files_including_the_default_lib_d_ts,\n    // We are not returning a sourceFile for lib file when asked by the program,\n    // so pass --noLib to avoid reporting a file not found error.\n    transpileOptionValue: true,\n    defaultValueDescription: false\n  },\n  {\n    name: \"noResolve\",\n    type: \"boolean\",\n    affectsModuleResolution: true,\n    category: Diagnostics.Modules,\n    description: Diagnostics.Disallow_import_s_require_s_or_reference_s_from_expanding_the_number_of_files_TypeScript_should_add_to_a_project,\n    // We are not doing a full typecheck, we are not resolving the whole context,\n    // so pass --noResolve to avoid reporting missing file errors.\n    transpileOptionValue: true,\n    defaultValueDescription: false\n  },\n  {\n    name: \"stripInternal\",\n    type: \"boolean\",\n    affectsEmit: true,\n    affectsBuildInfo: true,\n    category: Diagnostics.Emit,\n    description: Diagnostics.Disable_emitting_declarations_that_have_internal_in_their_JSDoc_comments,\n    defaultValueDescription: false\n  },\n  {\n    name: \"disableSizeLimit\",\n    type: \"boolean\",\n    affectsProgramStructure: true,\n    category: Diagnostics.Editor_Support,\n    description: Diagnostics.Remove_the_20mb_cap_on_total_source_code_size_for_JavaScript_files_in_the_TypeScript_language_server,\n    defaultValueDescription: false\n  },\n  {\n    name: \"disableSourceOfProjectReferenceRedirect\",\n    type: \"boolean\",\n    isTSConfigOnly: true,\n    category: Diagnostics.Projects,\n    description: Diagnostics.Disable_preferring_source_files_instead_of_declaration_files_when_referencing_composite_projects,\n    defaultValueDescription: false\n  },\n  {\n    name: \"disableSolutionSearching\",\n    type: \"boolean\",\n    isTSConfigOnly: true,\n    category: Diagnostics.Projects,\n    description: Diagnostics.Opt_a_project_out_of_multi_project_reference_checking_when_editing,\n    defaultValueDescription: false\n  },\n  {\n    name: \"disableReferencedProjectLoad\",\n    type: \"boolean\",\n    isTSConfigOnly: true,\n    category: Diagnostics.Projects,\n    description: Diagnostics.Reduce_the_number_of_projects_loaded_automatically_by_TypeScript,\n    defaultValueDescription: false\n  },\n  {\n    name: \"noImplicitUseStrict\",\n    type: \"boolean\",\n    affectsSemanticDiagnostics: true,\n    affectsBuildInfo: true,\n    category: Diagnostics.Backwards_Compatibility,\n    description: Diagnostics.Disable_adding_use_strict_directives_in_emitted_JavaScript_files,\n    defaultValueDescription: false\n  },\n  {\n    name: \"noEmitHelpers\",\n    type: \"boolean\",\n    affectsEmit: true,\n    affectsBuildInfo: true,\n    category: Diagnostics.Emit,\n    description: Diagnostics.Disable_generating_custom_helper_functions_like_extends_in_compiled_output,\n    defaultValueDescription: false\n  },\n  {\n    name: \"noEmitOnError\",\n    type: \"boolean\",\n    affectsEmit: true,\n    affectsBuildInfo: true,\n    category: Diagnostics.Emit,\n    transpileOptionValue: void 0,\n    description: Diagnostics.Disable_emitting_files_if_any_type_checking_errors_are_reported,\n    defaultValueDescription: false\n  },\n  {\n    name: \"preserveConstEnums\",\n    type: \"boolean\",\n    affectsEmit: true,\n    affectsBuildInfo: true,\n    category: Diagnostics.Emit,\n    description: Diagnostics.Disable_erasing_const_enum_declarations_in_generated_code,\n    defaultValueDescription: false\n  },\n  {\n    name: \"declarationDir\",\n    type: \"string\",\n    affectsEmit: true,\n    affectsBuildInfo: true,\n    affectsDeclarationPath: true,\n    isFilePath: true,\n    paramType: Diagnostics.DIRECTORY,\n    category: Diagnostics.Emit,\n    transpileOptionValue: void 0,\n    description: Diagnostics.Specify_the_output_directory_for_generated_declaration_files\n  },\n  {\n    name: \"skipLibCheck\",\n    type: \"boolean\",\n    // We need to store these to determine whether `lib` files need to be rechecked\n    affectsBuildInfo: true,\n    category: Diagnostics.Completeness,\n    description: Diagnostics.Skip_type_checking_all_d_ts_files,\n    defaultValueDescription: false\n  },\n  {\n    name: \"allowUnusedLabels\",\n    type: \"boolean\",\n    affectsBindDiagnostics: true,\n    affectsSemanticDiagnostics: true,\n    affectsBuildInfo: true,\n    category: Diagnostics.Type_Checking,\n    description: Diagnostics.Disable_error_reporting_for_unused_labels,\n    defaultValueDescription: void 0\n  },\n  {\n    name: \"allowUnreachableCode\",\n    type: \"boolean\",\n    affectsBindDiagnostics: true,\n    affectsSemanticDiagnostics: true,\n    affectsBuildInfo: true,\n    category: Diagnostics.Type_Checking,\n    description: Diagnostics.Disable_error_reporting_for_unreachable_code,\n    defaultValueDescription: void 0\n  },\n  {\n    name: \"suppressExcessPropertyErrors\",\n    type: \"boolean\",\n    affectsSemanticDiagnostics: true,\n    affectsBuildInfo: true,\n    category: Diagnostics.Backwards_Compatibility,\n    description: Diagnostics.Disable_reporting_of_excess_property_errors_during_the_creation_of_object_literals,\n    defaultValueDescription: false\n  },\n  {\n    name: \"suppressImplicitAnyIndexErrors\",\n    type: \"boolean\",\n    affectsSemanticDiagnostics: true,\n    affectsBuildInfo: true,\n    category: Diagnostics.Backwards_Compatibility,\n    description: Diagnostics.Suppress_noImplicitAny_errors_when_indexing_objects_that_lack_index_signatures,\n    defaultValueDescription: false\n  },\n  {\n    name: \"forceConsistentCasingInFileNames\",\n    type: \"boolean\",\n    affectsModuleResolution: true,\n    category: Diagnostics.Interop_Constraints,\n    description: Diagnostics.Ensure_that_casing_is_correct_in_imports,\n    defaultValueDescription: true\n  },\n  {\n    name: \"maxNodeModuleJsDepth\",\n    type: \"number\",\n    affectsModuleResolution: true,\n    category: Diagnostics.JavaScript_Support,\n    description: Diagnostics.Specify_the_maximum_folder_depth_used_for_checking_JavaScript_files_from_node_modules_Only_applicable_with_allowJs,\n    defaultValueDescription: 0\n  },\n  {\n    name: \"noStrictGenericChecks\",\n    type: \"boolean\",\n    affectsSemanticDiagnostics: true,\n    affectsBuildInfo: true,\n    category: Diagnostics.Backwards_Compatibility,\n    description: Diagnostics.Disable_strict_checking_of_generic_signatures_in_function_types,\n    defaultValueDescription: false\n  },\n  {\n    name: \"useDefineForClassFields\",\n    type: \"boolean\",\n    affectsSemanticDiagnostics: true,\n    affectsEmit: true,\n    affectsBuildInfo: true,\n    category: Diagnostics.Language_and_Environment,\n    description: Diagnostics.Emit_ECMAScript_standard_compliant_class_fields,\n    defaultValueDescription: Diagnostics.true_for_ES2022_and_above_including_ESNext\n  },\n  {\n    name: \"preserveValueImports\",\n    type: \"boolean\",\n    affectsEmit: true,\n    affectsBuildInfo: true,\n    category: Diagnostics.Backwards_Compatibility,\n    description: Diagnostics.Preserve_unused_imported_values_in_the_JavaScript_output_that_would_otherwise_be_removed,\n    defaultValueDescription: false\n  },\n  {\n    name: \"keyofStringsOnly\",\n    type: \"boolean\",\n    category: Diagnostics.Backwards_Compatibility,\n    description: Diagnostics.Make_keyof_only_return_strings_instead_of_string_numbers_or_symbols_Legacy_option,\n    defaultValueDescription: false\n  },\n  {\n    // A list of plugins to load in the language service\n    name: \"plugins\",\n    type: \"list\",\n    isTSConfigOnly: true,\n    element: {\n      name: \"plugin\",\n      type: \"object\"\n    },\n    description: Diagnostics.Specify_a_list_of_language_service_plugins_to_include,\n    category: Diagnostics.Editor_Support\n  },\n  {\n    name: \"moduleDetection\",\n    type: new Map(Object.entries({\n      auto: 2 /* Auto */,\n      legacy: 1 /* Legacy */,\n      force: 3 /* Force */\n    })),\n    affectsSourceFile: true,\n    affectsModuleResolution: true,\n    description: Diagnostics.Control_what_method_is_used_to_detect_module_format_JS_files,\n    category: Diagnostics.Language_and_Environment,\n    defaultValueDescription: Diagnostics.auto_Colon_Treat_files_with_imports_exports_import_meta_jsx_with_jsx_Colon_react_jsx_or_esm_format_with_module_Colon_node16_as_modules\n  },\n  {\n    name: \"ignoreDeprecations\",\n    type: \"string\",\n    defaultValueDescription: void 0\n  }\n];\nvar optionDeclarations = [\n  ...commonOptionsWithBuild,\n  ...commandOptionsWithoutBuild\n];\nvar semanticDiagnosticsOptionDeclarations = optionDeclarations.filter((option) => !!option.affectsSemanticDiagnostics);\nvar affectsEmitOptionDeclarations = optionDeclarations.filter((option) => !!option.affectsEmit);\nvar affectsDeclarationPathOptionDeclarations = optionDeclarations.filter((option) => !!option.affectsDeclarationPath);\nvar moduleResolutionOptionDeclarations = optionDeclarations.filter((option) => !!option.affectsModuleResolution);\nvar sourceFileAffectingCompilerOptions = optionDeclarations.filter((option) => !!option.affectsSourceFile || !!option.affectsBindDiagnostics);\nvar optionsAffectingProgramStructure = optionDeclarations.filter((option) => !!option.affectsProgramStructure);\nvar transpileOptionValueCompilerOptions = optionDeclarations.filter((option) => hasProperty(option, \"transpileOptionValue\"));\nvar configDirTemplateSubstitutionOptions = optionDeclarations.filter(\n  (option) => option.allowConfigDirTemplateSubstitution || !option.isCommandLineOnly && option.isFilePath\n);\nvar configDirTemplateSubstitutionWatchOptions = optionsForWatch.filter(\n  (option) => option.allowConfigDirTemplateSubstitution || !option.isCommandLineOnly && option.isFilePath\n);\nvar commandLineOptionOfCustomType = optionDeclarations.filter(isCommandLineOptionOfCustomType);\nfunction isCommandLineOptionOfCustomType(option) {\n  return !isString(option.type);\n}\nvar tscBuildOption = {\n  name: \"build\",\n  type: \"boolean\",\n  shortName: \"b\",\n  showInSimplifiedHelpView: true,\n  category: Diagnostics.Command_line_Options,\n  description: Diagnostics.Build_one_or_more_projects_and_their_dependencies_if_out_of_date,\n  defaultValueDescription: false\n};\nvar optionsForBuild = [\n  tscBuildOption,\n  {\n    name: \"verbose\",\n    shortName: \"v\",\n    category: Diagnostics.Command_line_Options,\n    description: Diagnostics.Enable_verbose_logging,\n    type: \"boolean\",\n    defaultValueDescription: false\n  },\n  {\n    name: \"dry\",\n    shortName: \"d\",\n    category: Diagnostics.Command_line_Options,\n    description: Diagnostics.Show_what_would_be_built_or_deleted_if_specified_with_clean,\n    type: \"boolean\",\n    defaultValueDescription: false\n  },\n  {\n    name: \"force\",\n    shortName: \"f\",\n    category: Diagnostics.Command_line_Options,\n    description: Diagnostics.Build_all_projects_including_those_that_appear_to_be_up_to_date,\n    type: \"boolean\",\n    defaultValueDescription: false\n  },\n  {\n    name: \"clean\",\n    category: Diagnostics.Command_line_Options,\n    description: Diagnostics.Delete_the_outputs_of_all_projects,\n    type: \"boolean\",\n    defaultValueDescription: false\n  },\n  {\n    name: \"stopBuildOnErrors\",\n    category: Diagnostics.Command_line_Options,\n    description: Diagnostics.Skip_building_downstream_projects_on_error_in_upstream_project,\n    type: \"boolean\",\n    defaultValueDescription: false\n  }\n];\nvar buildOpts = [\n  ...commonOptionsWithBuild,\n  ...optionsForBuild\n];\nvar typeAcquisitionDeclarations = [\n  {\n    name: \"enable\",\n    type: \"boolean\",\n    defaultValueDescription: false\n  },\n  {\n    name: \"include\",\n    type: \"list\",\n    element: {\n      name: \"include\",\n      type: \"string\"\n    }\n  },\n  {\n    name: \"exclude\",\n    type: \"list\",\n    element: {\n      name: \"exclude\",\n      type: \"string\"\n    }\n  },\n  {\n    name: \"disableFilenameBasedTypeAcquisition\",\n    type: \"boolean\",\n    defaultValueDescription: false\n  }\n];\nfunction createOptionNameMap(optionDeclarations2) {\n  const optionsNameMap = /* @__PURE__ */ new Map();\n  const shortOptionNames = /* @__PURE__ */ new Map();\n  forEach(optionDeclarations2, (option) => {\n    optionsNameMap.set(option.name.toLowerCase(), option);\n    if (option.shortName) {\n      shortOptionNames.set(option.shortName, option.name);\n    }\n  });\n  return { optionsNameMap, shortOptionNames };\n}\nvar optionsNameMapCache;\nfunction getOptionsNameMap() {\n  return optionsNameMapCache || (optionsNameMapCache = createOptionNameMap(optionDeclarations));\n}\nvar compilerOptionsAlternateMode = {\n  diagnostic: Diagnostics.Compiler_option_0_may_only_be_used_with_build,\n  getOptionsNameMap: getBuildOptionsNameMap\n};\nvar defaultInitCompilerOptions = {\n  module: 1 /* CommonJS */,\n  target: 3 /* ES2016 */,\n  strict: true,\n  esModuleInterop: true,\n  forceConsistentCasingInFileNames: true,\n  skipLibCheck: true\n};\nfunction createCompilerDiagnosticForInvalidCustomType(opt) {\n  return createDiagnosticForInvalidCustomType(opt, createCompilerDiagnostic);\n}\nfunction createDiagnosticForInvalidCustomType(opt, createDiagnostic) {\n  const namesOfType = arrayFrom(opt.type.keys());\n  const stringNames = (opt.deprecatedKeys ? namesOfType.filter((k) => !opt.deprecatedKeys.has(k)) : namesOfType).map((key) => `'${key}'`).join(\", \");\n  return createDiagnostic(Diagnostics.Argument_for_0_option_must_be_Colon_1, `--${opt.name}`, stringNames);\n}\nfunction parseCustomTypeOption(opt, value, errors) {\n  return convertJsonOptionOfCustomType(opt, (value ?? \"\").trim(), errors);\n}\nfunction parseListTypeOption(opt, value = \"\", errors) {\n  value = value.trim();\n  if (startsWith(value, \"-\")) {\n    return void 0;\n  }\n  if (opt.type === \"listOrElement\" && !value.includes(\",\")) {\n    return validateJsonOptionValue(opt, value, errors);\n  }\n  if (value === \"\") {\n    return [];\n  }\n  const values = value.split(\",\");\n  switch (opt.element.type) {\n    case \"number\":\n      return mapDefined(values, (v) => validateJsonOptionValue(opt.element, parseInt(v), errors));\n    case \"string\":\n      return mapDefined(values, (v) => validateJsonOptionValue(opt.element, v || \"\", errors));\n    case \"boolean\":\n    case \"object\":\n      return Debug.fail(`List of ${opt.element.type} is not yet supported.`);\n    default:\n      return mapDefined(values, (v) => parseCustomTypeOption(opt.element, v, errors));\n  }\n}\nfunction getOptionName(option) {\n  return option.name;\n}\nfunction createUnknownOptionError(unknownOption, diagnostics, unknownOptionErrorText, node, sourceFile) {\n  var _a;\n  const otherOption = (_a = diagnostics.alternateMode) == null ? void 0 : _a.getOptionsNameMap().optionsNameMap.get(unknownOption.toLowerCase());\n  if (otherOption) {\n    return createDiagnosticForNodeInSourceFileOrCompilerDiagnostic(\n      sourceFile,\n      node,\n      otherOption !== tscBuildOption ? diagnostics.alternateMode.diagnostic : Diagnostics.Option_build_must_be_the_first_command_line_argument,\n      unknownOption\n    );\n  }\n  const possibleOption = getSpellingSuggestion(unknownOption, diagnostics.optionDeclarations, getOptionName);\n  return possibleOption ? createDiagnosticForNodeInSourceFileOrCompilerDiagnostic(sourceFile, node, diagnostics.unknownDidYouMeanDiagnostic, unknownOptionErrorText || unknownOption, possibleOption.name) : createDiagnosticForNodeInSourceFileOrCompilerDiagnostic(sourceFile, node, diagnostics.unknownOptionDiagnostic, unknownOptionErrorText || unknownOption);\n}\nfunction parseCommandLineWorker(diagnostics, commandLine, readFile) {\n  const options = {};\n  let watchOptions;\n  const fileNames = [];\n  const errors = [];\n  parseStrings(commandLine);\n  return {\n    options,\n    watchOptions,\n    fileNames,\n    errors\n  };\n  function parseStrings(args) {\n    let i = 0;\n    while (i < args.length) {\n      const s = args[i];\n      i++;\n      if (s.charCodeAt(0) === 64 /* at */) {\n        parseResponseFile(s.slice(1));\n      } else if (s.charCodeAt(0) === 45 /* minus */) {\n        const inputOptionName = s.slice(s.charCodeAt(1) === 45 /* minus */ ? 2 : 1);\n        const opt = getOptionDeclarationFromName(\n          diagnostics.getOptionsNameMap,\n          inputOptionName,\n          /*allowShort*/\n          true\n        );\n        if (opt) {\n          i = parseOptionValue(args, i, diagnostics, opt, options, errors);\n        } else {\n          const watchOpt = getOptionDeclarationFromName(\n            watchOptionsDidYouMeanDiagnostics.getOptionsNameMap,\n            inputOptionName,\n            /*allowShort*/\n            true\n          );\n          if (watchOpt) {\n            i = parseOptionValue(args, i, watchOptionsDidYouMeanDiagnostics, watchOpt, watchOptions || (watchOptions = {}), errors);\n          } else {\n            errors.push(createUnknownOptionError(inputOptionName, diagnostics, s));\n          }\n        }\n      } else {\n        fileNames.push(s);\n      }\n    }\n  }\n  function parseResponseFile(fileName) {\n    const text = tryReadFile(fileName, readFile || ((fileName2) => sys.readFile(fileName2)));\n    if (!isString(text)) {\n      errors.push(text);\n      return;\n    }\n    const args = [];\n    let pos = 0;\n    while (true) {\n      while (pos < text.length && text.charCodeAt(pos) <= 32 /* space */) pos++;\n      if (pos >= text.length) break;\n      const start = pos;\n      if (text.charCodeAt(start) === 34 /* doubleQuote */) {\n        pos++;\n        while (pos < text.length && text.charCodeAt(pos) !== 34 /* doubleQuote */) pos++;\n        if (pos < text.length) {\n          args.push(text.substring(start + 1, pos));\n          pos++;\n        } else {\n          errors.push(createCompilerDiagnostic(Diagnostics.Unterminated_quoted_string_in_response_file_0, fileName));\n        }\n      } else {\n        while (text.charCodeAt(pos) > 32 /* space */) pos++;\n        args.push(text.substring(start, pos));\n      }\n    }\n    parseStrings(args);\n  }\n}\nfunction parseOptionValue(args, i, diagnostics, opt, options, errors) {\n  if (opt.isTSConfigOnly) {\n    const optValue = args[i];\n    if (optValue === \"null\") {\n      options[opt.name] = void 0;\n      i++;\n    } else if (opt.type === \"boolean\") {\n      if (optValue === \"false\") {\n        options[opt.name] = validateJsonOptionValue(\n          opt,\n          /*value*/\n          false,\n          errors\n        );\n        i++;\n      } else {\n        if (optValue === \"true\") i++;\n        errors.push(createCompilerDiagnostic(Diagnostics.Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_false_or_null_on_command_line, opt.name));\n      }\n    } else {\n      errors.push(createCompilerDiagnostic(Diagnostics.Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_null_on_command_line, opt.name));\n      if (optValue && !startsWith(optValue, \"-\")) i++;\n    }\n  } else {\n    if (!args[i] && opt.type !== \"boolean\") {\n      errors.push(createCompilerDiagnostic(diagnostics.optionTypeMismatchDiagnostic, opt.name, getCompilerOptionValueTypeString(opt)));\n    }\n    if (args[i] !== \"null\") {\n      switch (opt.type) {\n        case \"number\":\n          options[opt.name] = validateJsonOptionValue(opt, parseInt(args[i]), errors);\n          i++;\n          break;\n        case \"boolean\":\n          const optValue = args[i];\n          options[opt.name] = validateJsonOptionValue(opt, optValue !== \"false\", errors);\n          if (optValue === \"false\" || optValue === \"true\") {\n            i++;\n          }\n          break;\n        case \"string\":\n          options[opt.name] = validateJsonOptionValue(opt, args[i] || \"\", errors);\n          i++;\n          break;\n        case \"list\":\n          const result = parseListTypeOption(opt, args[i], errors);\n          options[opt.name] = result || [];\n          if (result) {\n            i++;\n          }\n          break;\n        case \"listOrElement\":\n          Debug.fail(\"listOrElement not supported here\");\n          break;\n        // If not a primitive, the possible types are specified in what is effectively a map of options.\n        default:\n          options[opt.name] = parseCustomTypeOption(opt, args[i], errors);\n          i++;\n          break;\n      }\n    } else {\n      options[opt.name] = void 0;\n      i++;\n    }\n  }\n  return i;\n}\nvar compilerOptionsDidYouMeanDiagnostics = {\n  alternateMode: compilerOptionsAlternateMode,\n  getOptionsNameMap,\n  optionDeclarations,\n  unknownOptionDiagnostic: Diagnostics.Unknown_compiler_option_0,\n  unknownDidYouMeanDiagnostic: Diagnostics.Unknown_compiler_option_0_Did_you_mean_1,\n  optionTypeMismatchDiagnostic: Diagnostics.Compiler_option_0_expects_an_argument\n};\nfunction parseCommandLine(commandLine, readFile) {\n  return parseCommandLineWorker(compilerOptionsDidYouMeanDiagnostics, commandLine, readFile);\n}\nfunction getOptionFromName(optionName, allowShort) {\n  return getOptionDeclarationFromName(getOptionsNameMap, optionName, allowShort);\n}\nfunction getOptionDeclarationFromName(getOptionNameMap, optionName, allowShort = false) {\n  optionName = optionName.toLowerCase();\n  const { optionsNameMap, shortOptionNames } = getOptionNameMap();\n  if (allowShort) {\n    const short = shortOptionNames.get(optionName);\n    if (short !== void 0) {\n      optionName = short;\n    }\n  }\n  return optionsNameMap.get(optionName);\n}\nvar buildOptionsNameMapCache;\nfunction getBuildOptionsNameMap() {\n  return buildOptionsNameMapCache || (buildOptionsNameMapCache = createOptionNameMap(buildOpts));\n}\nvar buildOptionsAlternateMode = {\n  diagnostic: Diagnostics.Compiler_option_0_may_not_be_used_with_build,\n  getOptionsNameMap\n};\nvar buildOptionsDidYouMeanDiagnostics = {\n  alternateMode: buildOptionsAlternateMode,\n  getOptionsNameMap: getBuildOptionsNameMap,\n  optionDeclarations: buildOpts,\n  unknownOptionDiagnostic: Diagnostics.Unknown_build_option_0,\n  unknownDidYouMeanDiagnostic: Diagnostics.Unknown_build_option_0_Did_you_mean_1,\n  optionTypeMismatchDiagnostic: Diagnostics.Build_option_0_requires_a_value_of_type_1\n};\nfunction parseBuildCommand(commandLine) {\n  const { options, watchOptions, fileNames: projects, errors } = parseCommandLineWorker(\n    buildOptionsDidYouMeanDiagnostics,\n    commandLine\n  );\n  const buildOptions = options;\n  if (projects.length === 0) {\n    projects.push(\".\");\n  }\n  if (buildOptions.clean && buildOptions.force) {\n    errors.push(createCompilerDiagnostic(Diagnostics.Options_0_and_1_cannot_be_combined, \"clean\", \"force\"));\n  }\n  if (buildOptions.clean && buildOptions.verbose) {\n    errors.push(createCompilerDiagnostic(Diagnostics.Options_0_and_1_cannot_be_combined, \"clean\", \"verbose\"));\n  }\n  if (buildOptions.clean && buildOptions.watch) {\n    errors.push(createCompilerDiagnostic(Diagnostics.Options_0_and_1_cannot_be_combined, \"clean\", \"watch\"));\n  }\n  if (buildOptions.watch && buildOptions.dry) {\n    errors.push(createCompilerDiagnostic(Diagnostics.Options_0_and_1_cannot_be_combined, \"watch\", \"dry\"));\n  }\n  return { buildOptions, watchOptions, projects, errors };\n}\nfunction getDiagnosticText(message, ...args) {\n  return cast(createCompilerDiagnostic(message, ...args).messageText, isString);\n}\nfunction getParsedCommandLineOfConfigFile(configFileName, optionsToExtend, host, extendedConfigCache, watchOptionsToExtend, extraFileExtensions) {\n  const configFileText = tryReadFile(configFileName, (fileName) => host.readFile(fileName));\n  if (!isString(configFileText)) {\n    host.onUnRecoverableConfigFileDiagnostic(configFileText);\n    return void 0;\n  }\n  const result = parseJsonText(configFileName, configFileText);\n  const cwd = host.getCurrentDirectory();\n  result.path = toPath(configFileName, cwd, createGetCanonicalFileName(host.useCaseSensitiveFileNames));\n  result.resolvedPath = result.path;\n  result.originalFileName = result.fileName;\n  return parseJsonSourceFileConfigFileContent(\n    result,\n    host,\n    getNormalizedAbsolutePath(getDirectoryPath(configFileName), cwd),\n    optionsToExtend,\n    getNormalizedAbsolutePath(configFileName, cwd),\n    /*resolutionStack*/\n    void 0,\n    extraFileExtensions,\n    extendedConfigCache,\n    watchOptionsToExtend\n  );\n}\nfunction readConfigFile(fileName, readFile) {\n  const textOrDiagnostic = tryReadFile(fileName, readFile);\n  return isString(textOrDiagnostic) ? parseConfigFileTextToJson(fileName, textOrDiagnostic) : { config: {}, error: textOrDiagnostic };\n}\nfunction parseConfigFileTextToJson(fileName, jsonText) {\n  const jsonSourceFile = parseJsonText(fileName, jsonText);\n  return {\n    config: convertConfigFileToObject(\n      jsonSourceFile,\n      jsonSourceFile.parseDiagnostics,\n      /*jsonConversionNotifier*/\n      void 0\n    ),\n    error: jsonSourceFile.parseDiagnostics.length ? jsonSourceFile.parseDiagnostics[0] : void 0\n  };\n}\nfunction readJsonConfigFile(fileName, readFile) {\n  const textOrDiagnostic = tryReadFile(fileName, readFile);\n  return isString(textOrDiagnostic) ? parseJsonText(fileName, textOrDiagnostic) : { fileName, parseDiagnostics: [textOrDiagnostic] };\n}\nfunction tryReadFile(fileName, readFile) {\n  let text;\n  try {\n    text = readFile(fileName);\n  } catch (e) {\n    return createCompilerDiagnostic(Diagnostics.Cannot_read_file_0_Colon_1, fileName, e.message);\n  }\n  return text === void 0 ? createCompilerDiagnostic(Diagnostics.Cannot_read_file_0, fileName) : text;\n}\nfunction commandLineOptionsToMap(options) {\n  return arrayToMap(options, getOptionName);\n}\nvar typeAcquisitionDidYouMeanDiagnostics = {\n  optionDeclarations: typeAcquisitionDeclarations,\n  unknownOptionDiagnostic: Diagnostics.Unknown_type_acquisition_option_0,\n  unknownDidYouMeanDiagnostic: Diagnostics.Unknown_type_acquisition_option_0_Did_you_mean_1\n};\nvar watchOptionsNameMapCache;\nfunction getWatchOptionsNameMap() {\n  return watchOptionsNameMapCache || (watchOptionsNameMapCache = createOptionNameMap(optionsForWatch));\n}\nvar watchOptionsDidYouMeanDiagnostics = {\n  getOptionsNameMap: getWatchOptionsNameMap,\n  optionDeclarations: optionsForWatch,\n  unknownOptionDiagnostic: Diagnostics.Unknown_watch_option_0,\n  unknownDidYouMeanDiagnostic: Diagnostics.Unknown_watch_option_0_Did_you_mean_1,\n  optionTypeMismatchDiagnostic: Diagnostics.Watch_option_0_requires_a_value_of_type_1\n};\nvar commandLineCompilerOptionsMapCache;\nfunction getCommandLineCompilerOptionsMap() {\n  return commandLineCompilerOptionsMapCache || (commandLineCompilerOptionsMapCache = commandLineOptionsToMap(optionDeclarations));\n}\nvar commandLineWatchOptionsMapCache;\nfunction getCommandLineWatchOptionsMap() {\n  return commandLineWatchOptionsMapCache || (commandLineWatchOptionsMapCache = commandLineOptionsToMap(optionsForWatch));\n}\nvar commandLineTypeAcquisitionMapCache;\nfunction getCommandLineTypeAcquisitionMap() {\n  return commandLineTypeAcquisitionMapCache || (commandLineTypeAcquisitionMapCache = commandLineOptionsToMap(typeAcquisitionDeclarations));\n}\nvar extendsOptionDeclaration = {\n  name: \"extends\",\n  type: \"listOrElement\",\n  element: {\n    name: \"extends\",\n    type: \"string\"\n  },\n  category: Diagnostics.File_Management,\n  disallowNullOrUndefined: true\n};\nvar compilerOptionsDeclaration = {\n  name: \"compilerOptions\",\n  type: \"object\",\n  elementOptions: getCommandLineCompilerOptionsMap(),\n  extraKeyDiagnostics: compilerOptionsDidYouMeanDiagnostics\n};\nvar watchOptionsDeclaration = {\n  name: \"watchOptions\",\n  type: \"object\",\n  elementOptions: getCommandLineWatchOptionsMap(),\n  extraKeyDiagnostics: watchOptionsDidYouMeanDiagnostics\n};\nvar typeAcquisitionDeclaration = {\n  name: \"typeAcquisition\",\n  type: \"object\",\n  elementOptions: getCommandLineTypeAcquisitionMap(),\n  extraKeyDiagnostics: typeAcquisitionDidYouMeanDiagnostics\n};\nvar _tsconfigRootOptions;\nfunction getTsconfigRootOptionsMap() {\n  if (_tsconfigRootOptions === void 0) {\n    _tsconfigRootOptions = {\n      name: void 0,\n      // should never be needed since this is root\n      type: \"object\",\n      elementOptions: commandLineOptionsToMap([\n        compilerOptionsDeclaration,\n        watchOptionsDeclaration,\n        typeAcquisitionDeclaration,\n        extendsOptionDeclaration,\n        {\n          name: \"references\",\n          type: \"list\",\n          element: {\n            name: \"references\",\n            type: \"object\"\n          },\n          category: Diagnostics.Projects\n        },\n        {\n          name: \"files\",\n          type: \"list\",\n          element: {\n            name: \"files\",\n            type: \"string\"\n          },\n          category: Diagnostics.File_Management\n        },\n        {\n          name: \"include\",\n          type: \"list\",\n          element: {\n            name: \"include\",\n            type: \"string\"\n          },\n          category: Diagnostics.File_Management,\n          defaultValueDescription: Diagnostics.if_files_is_specified_otherwise_Asterisk_Asterisk_Slash_Asterisk\n        },\n        {\n          name: \"exclude\",\n          type: \"list\",\n          element: {\n            name: \"exclude\",\n            type: \"string\"\n          },\n          category: Diagnostics.File_Management,\n          defaultValueDescription: Diagnostics.node_modules_bower_components_jspm_packages_plus_the_value_of_outDir_if_one_is_specified\n        },\n        compileOnSaveCommandLineOption\n      ])\n    };\n  }\n  return _tsconfigRootOptions;\n}\nfunction convertConfigFileToObject(sourceFile, errors, jsonConversionNotifier) {\n  var _a;\n  const rootExpression = (_a = sourceFile.statements[0]) == null ? void 0 : _a.expression;\n  if (rootExpression && rootExpression.kind !== 211 /* ObjectLiteralExpression */) {\n    errors.push(createDiagnosticForNodeInSourceFile(\n      sourceFile,\n      rootExpression,\n      Diagnostics.The_root_value_of_a_0_file_must_be_an_object,\n      getBaseFileName(sourceFile.fileName) === \"jsconfig.json\" ? \"jsconfig.json\" : \"tsconfig.json\"\n    ));\n    if (isArrayLiteralExpression(rootExpression)) {\n      const firstObject = find(rootExpression.elements, isObjectLiteralExpression);\n      if (firstObject) {\n        return convertToJson(\n          sourceFile,\n          firstObject,\n          errors,\n          /*returnValue*/\n          true,\n          jsonConversionNotifier\n        );\n      }\n    }\n    return {};\n  }\n  return convertToJson(\n    sourceFile,\n    rootExpression,\n    errors,\n    /*returnValue*/\n    true,\n    jsonConversionNotifier\n  );\n}\nfunction convertToObject(sourceFile, errors) {\n  var _a;\n  return convertToJson(\n    sourceFile,\n    (_a = sourceFile.statements[0]) == null ? void 0 : _a.expression,\n    errors,\n    /*returnValue*/\n    true,\n    /*jsonConversionNotifier*/\n    void 0\n  );\n}\nfunction convertToJson(sourceFile, rootExpression, errors, returnValue, jsonConversionNotifier) {\n  if (!rootExpression) {\n    return returnValue ? {} : void 0;\n  }\n  return convertPropertyValueToJson(rootExpression, jsonConversionNotifier == null ? void 0 : jsonConversionNotifier.rootOptions);\n  function convertObjectLiteralExpressionToJson(node, objectOption) {\n    var _a;\n    const result = returnValue ? {} : void 0;\n    for (const element of node.properties) {\n      if (element.kind !== 304 /* PropertyAssignment */) {\n        errors.push(createDiagnosticForNodeInSourceFile(sourceFile, element, Diagnostics.Property_assignment_expected));\n        continue;\n      }\n      if (element.questionToken) {\n        errors.push(createDiagnosticForNodeInSourceFile(sourceFile, element.questionToken, Diagnostics.The_0_modifier_can_only_be_used_in_TypeScript_files, \"?\"));\n      }\n      if (!isDoubleQuotedString(element.name)) {\n        errors.push(createDiagnosticForNodeInSourceFile(sourceFile, element.name, Diagnostics.String_literal_with_double_quotes_expected));\n      }\n      const textOfKey = isComputedNonLiteralName(element.name) ? void 0 : getTextOfPropertyName(element.name);\n      const keyText = textOfKey && unescapeLeadingUnderscores(textOfKey);\n      const option = keyText ? (_a = objectOption == null ? void 0 : objectOption.elementOptions) == null ? void 0 : _a.get(keyText) : void 0;\n      const value = convertPropertyValueToJson(element.initializer, option);\n      if (typeof keyText !== \"undefined\") {\n        if (returnValue) {\n          result[keyText] = value;\n        }\n        jsonConversionNotifier == null ? void 0 : jsonConversionNotifier.onPropertySet(keyText, value, element, objectOption, option);\n      }\n    }\n    return result;\n  }\n  function convertArrayLiteralExpressionToJson(elements, elementOption) {\n    if (!returnValue) {\n      elements.forEach((element) => convertPropertyValueToJson(element, elementOption));\n      return void 0;\n    }\n    return filter(elements.map((element) => convertPropertyValueToJson(element, elementOption)), (v) => v !== void 0);\n  }\n  function convertPropertyValueToJson(valueExpression, option) {\n    switch (valueExpression.kind) {\n      case 112 /* TrueKeyword */:\n        return true;\n      case 97 /* FalseKeyword */:\n        return false;\n      case 106 /* NullKeyword */:\n        return null;\n      // eslint-disable-line no-restricted-syntax\n      case 11 /* StringLiteral */:\n        if (!isDoubleQuotedString(valueExpression)) {\n          errors.push(createDiagnosticForNodeInSourceFile(sourceFile, valueExpression, Diagnostics.String_literal_with_double_quotes_expected));\n        }\n        return valueExpression.text;\n      case 9 /* NumericLiteral */:\n        return Number(valueExpression.text);\n      case 225 /* PrefixUnaryExpression */:\n        if (valueExpression.operator !== 41 /* MinusToken */ || valueExpression.operand.kind !== 9 /* NumericLiteral */) {\n          break;\n        }\n        return -Number(valueExpression.operand.text);\n      case 211 /* ObjectLiteralExpression */:\n        const objectLiteralExpression = valueExpression;\n        return convertObjectLiteralExpressionToJson(objectLiteralExpression, option);\n      case 210 /* ArrayLiteralExpression */:\n        return convertArrayLiteralExpressionToJson(\n          valueExpression.elements,\n          option && option.element\n        );\n    }\n    if (option) {\n      errors.push(createDiagnosticForNodeInSourceFile(sourceFile, valueExpression, Diagnostics.Compiler_option_0_requires_a_value_of_type_1, option.name, getCompilerOptionValueTypeString(option)));\n    } else {\n      errors.push(createDiagnosticForNodeInSourceFile(sourceFile, valueExpression, Diagnostics.Property_value_can_only_be_string_literal_numeric_literal_true_false_null_object_literal_or_array_literal));\n    }\n    return void 0;\n  }\n  function isDoubleQuotedString(node) {\n    return isStringLiteral(node) && isStringDoubleQuoted(node, sourceFile);\n  }\n}\nfunction getCompilerOptionValueTypeString(option) {\n  return option.type === \"listOrElement\" ? `${getCompilerOptionValueTypeString(option.element)} or Array` : option.type === \"list\" ? \"Array\" : isString(option.type) ? option.type : \"string\";\n}\nfunction isCompilerOptionsValue(option, value) {\n  if (option) {\n    if (isNullOrUndefined(value)) return !option.disallowNullOrUndefined;\n    if (option.type === \"list\") {\n      return isArray(value);\n    }\n    if (option.type === \"listOrElement\") {\n      return isArray(value) || isCompilerOptionsValue(option.element, value);\n    }\n    const expectedType = isString(option.type) ? option.type : \"string\";\n    return typeof value === expectedType;\n  }\n  return false;\n}\nfunction convertToTSConfig(configParseResult, configFileName, host) {\n  var _a, _b, _c;\n  const getCanonicalFileName = createGetCanonicalFileName(host.useCaseSensitiveFileNames);\n  const files = map(\n    filter(\n      configParseResult.fileNames,\n      !((_b = (_a = configParseResult.options.configFile) == null ? void 0 : _a.configFileSpecs) == null ? void 0 : _b.validatedIncludeSpecs) ? returnTrue : matchesSpecs(\n        configFileName,\n        configParseResult.options.configFile.configFileSpecs.validatedIncludeSpecs,\n        configParseResult.options.configFile.configFileSpecs.validatedExcludeSpecs,\n        host\n      )\n    ),\n    (f) => getRelativePathFromFile(getNormalizedAbsolutePath(configFileName, host.getCurrentDirectory()), getNormalizedAbsolutePath(f, host.getCurrentDirectory()), getCanonicalFileName)\n  );\n  const pathOptions = { configFilePath: getNormalizedAbsolutePath(configFileName, host.getCurrentDirectory()), useCaseSensitiveFileNames: host.useCaseSensitiveFileNames };\n  const optionMap = serializeCompilerOptions(configParseResult.options, pathOptions);\n  const watchOptionMap = configParseResult.watchOptions && serializeWatchOptions(configParseResult.watchOptions);\n  const config = {\n    compilerOptions: {\n      ...optionMapToObject(optionMap),\n      showConfig: void 0,\n      configFile: void 0,\n      configFilePath: void 0,\n      help: void 0,\n      init: void 0,\n      listFiles: void 0,\n      listEmittedFiles: void 0,\n      project: void 0,\n      build: void 0,\n      version: void 0\n    },\n    watchOptions: watchOptionMap && optionMapToObject(watchOptionMap),\n    references: map(configParseResult.projectReferences, (r) => ({ ...r, path: r.originalPath ? r.originalPath : \"\", originalPath: void 0 })),\n    files: length(files) ? files : void 0,\n    ...((_c = configParseResult.options.configFile) == null ? void 0 : _c.configFileSpecs) ? {\n      include: filterSameAsDefaultInclude(configParseResult.options.configFile.configFileSpecs.validatedIncludeSpecs),\n      exclude: configParseResult.options.configFile.configFileSpecs.validatedExcludeSpecs\n    } : {},\n    compileOnSave: !!configParseResult.compileOnSave ? true : void 0\n  };\n  const providedKeys = new Set(optionMap.keys());\n  const impliedCompilerOptions = {};\n  for (const option in computedOptions) {\n    if (!providedKeys.has(option) && optionDependsOn(option, providedKeys)) {\n      const implied = computedOptions[option].computeValue(configParseResult.options);\n      const defaultValue = computedOptions[option].computeValue({});\n      if (implied !== defaultValue) {\n        impliedCompilerOptions[option] = computedOptions[option].computeValue(configParseResult.options);\n      }\n    }\n  }\n  assign(config.compilerOptions, optionMapToObject(serializeCompilerOptions(impliedCompilerOptions, pathOptions)));\n  return config;\n}\nfunction optionDependsOn(option, dependsOn) {\n  const seen = /* @__PURE__ */ new Set();\n  return optionDependsOnRecursive(option);\n  function optionDependsOnRecursive(option2) {\n    var _a;\n    if (addToSeen(seen, option2)) {\n      return some((_a = computedOptions[option2]) == null ? void 0 : _a.dependencies, (dep) => dependsOn.has(dep) || optionDependsOnRecursive(dep));\n    }\n    return false;\n  }\n}\nfunction optionMapToObject(optionMap) {\n  return Object.fromEntries(optionMap);\n}\nfunction filterSameAsDefaultInclude(specs) {\n  if (!length(specs)) return void 0;\n  if (length(specs) !== 1) return specs;\n  if (specs[0] === defaultIncludeSpec) return void 0;\n  return specs;\n}\nfunction matchesSpecs(path, includeSpecs, excludeSpecs, host) {\n  if (!includeSpecs) return returnTrue;\n  const patterns = getFileMatcherPatterns(path, excludeSpecs, includeSpecs, host.useCaseSensitiveFileNames, host.getCurrentDirectory());\n  const excludeRe = patterns.excludePattern && getRegexFromPattern(patterns.excludePattern, host.useCaseSensitiveFileNames);\n  const includeRe = patterns.includeFilePattern && getRegexFromPattern(patterns.includeFilePattern, host.useCaseSensitiveFileNames);\n  if (includeRe) {\n    if (excludeRe) {\n      return (path2) => !(includeRe.test(path2) && !excludeRe.test(path2));\n    }\n    return (path2) => !includeRe.test(path2);\n  }\n  if (excludeRe) {\n    return (path2) => excludeRe.test(path2);\n  }\n  return returnTrue;\n}\nfunction getCustomTypeMapOfCommandLineOption(optionDefinition) {\n  switch (optionDefinition.type) {\n    case \"string\":\n    case \"number\":\n    case \"boolean\":\n    case \"object\":\n      return void 0;\n    case \"list\":\n    case \"listOrElement\":\n      return getCustomTypeMapOfCommandLineOption(optionDefinition.element);\n    default:\n      return optionDefinition.type;\n  }\n}\nfunction getNameOfCompilerOptionValue(value, customTypeMap) {\n  return forEachEntry(customTypeMap, (mapValue, key) => {\n    if (mapValue === value) {\n      return key;\n    }\n  });\n}\nfunction serializeCompilerOptions(options, pathOptions) {\n  return serializeOptionBaseObject(options, getOptionsNameMap(), pathOptions);\n}\nfunction serializeWatchOptions(options) {\n  return serializeOptionBaseObject(options, getWatchOptionsNameMap());\n}\nfunction serializeOptionBaseObject(options, { optionsNameMap }, pathOptions) {\n  const result = /* @__PURE__ */ new Map();\n  const getCanonicalFileName = pathOptions && createGetCanonicalFileName(pathOptions.useCaseSensitiveFileNames);\n  for (const name in options) {\n    if (hasProperty(options, name)) {\n      if (optionsNameMap.has(name) && (optionsNameMap.get(name).category === Diagnostics.Command_line_Options || optionsNameMap.get(name).category === Diagnostics.Output_Formatting)) {\n        continue;\n      }\n      const value = options[name];\n      const optionDefinition = optionsNameMap.get(name.toLowerCase());\n      if (optionDefinition) {\n        Debug.assert(optionDefinition.type !== \"listOrElement\");\n        const customTypeMap = getCustomTypeMapOfCommandLineOption(optionDefinition);\n        if (!customTypeMap) {\n          if (pathOptions && optionDefinition.isFilePath) {\n            result.set(name, getRelativePathFromFile(pathOptions.configFilePath, getNormalizedAbsolutePath(value, getDirectoryPath(pathOptions.configFilePath)), getCanonicalFileName));\n          } else if (pathOptions && optionDefinition.type === \"list\" && optionDefinition.element.isFilePath) {\n            result.set(name, value.map((v) => getRelativePathFromFile(pathOptions.configFilePath, getNormalizedAbsolutePath(v, getDirectoryPath(pathOptions.configFilePath)), getCanonicalFileName)));\n          } else {\n            result.set(name, value);\n          }\n        } else {\n          if (optionDefinition.type === \"list\") {\n            result.set(name, value.map((element) => getNameOfCompilerOptionValue(element, customTypeMap)));\n          } else {\n            result.set(name, getNameOfCompilerOptionValue(value, customTypeMap));\n          }\n        }\n      }\n    }\n  }\n  return result;\n}\nfunction generateTSConfig(options, newLine) {\n  const tab = \"  \";\n  const result = [];\n  const allSetOptions = Object.keys(options).filter((k) => k !== \"init\" && k !== \"help\" && k !== \"watch\");\n  result.push(`{`);\n  result.push(`${tab}// ${getLocaleSpecificMessage(Diagnostics.Visit_https_Colon_Slash_Slashaka_ms_Slashtsconfig_to_read_more_about_this_file)}`);\n  result.push(`${tab}\"compilerOptions\": {`);\n  emitHeader(Diagnostics.File_Layout);\n  emitOption(\"rootDir\", \"./src\", \"optional\");\n  emitOption(\"outDir\", \"./dist\", \"optional\");\n  newline();\n  emitHeader(Diagnostics.Environment_Settings);\n  emitHeader(Diagnostics.See_also_https_Colon_Slash_Slashaka_ms_Slashtsconfig_Slashmodule);\n  emitOption(\"module\", 199 /* NodeNext */);\n  emitOption(\"target\", 99 /* ESNext */);\n  emitOption(\"types\", []);\n  if (options.lib) {\n    emitOption(\"lib\", options.lib);\n  }\n  emitHeader(Diagnostics.For_nodejs_Colon);\n  result.push(`${tab}${tab}// \"lib\": [\"esnext\"],`);\n  result.push(`${tab}${tab}// \"types\": [\"node\"],`);\n  emitHeader(Diagnostics.and_npm_install_D_types_Slashnode);\n  newline();\n  emitHeader(Diagnostics.Other_Outputs);\n  emitOption(\n    \"sourceMap\",\n    /*defaultValue*/\n    true\n  );\n  emitOption(\n    \"declaration\",\n    /*defaultValue*/\n    true\n  );\n  emitOption(\n    \"declarationMap\",\n    /*defaultValue*/\n    true\n  );\n  newline();\n  emitHeader(Diagnostics.Stricter_Typechecking_Options);\n  emitOption(\n    \"noUncheckedIndexedAccess\",\n    /*defaultValue*/\n    true\n  );\n  emitOption(\n    \"exactOptionalPropertyTypes\",\n    /*defaultValue*/\n    true\n  );\n  newline();\n  emitHeader(Diagnostics.Style_Options);\n  emitOption(\n    \"noImplicitReturns\",\n    /*defaultValue*/\n    true,\n    \"optional\"\n  );\n  emitOption(\n    \"noImplicitOverride\",\n    /*defaultValue*/\n    true,\n    \"optional\"\n  );\n  emitOption(\n    \"noUnusedLocals\",\n    /*defaultValue*/\n    true,\n    \"optional\"\n  );\n  emitOption(\n    \"noUnusedParameters\",\n    /*defaultValue*/\n    true,\n    \"optional\"\n  );\n  emitOption(\n    \"noFallthroughCasesInSwitch\",\n    /*defaultValue*/\n    true,\n    \"optional\"\n  );\n  emitOption(\n    \"noPropertyAccessFromIndexSignature\",\n    /*defaultValue*/\n    true,\n    \"optional\"\n  );\n  newline();\n  emitHeader(Diagnostics.Recommended_Options);\n  emitOption(\n    \"strict\",\n    /*defaultValue*/\n    true\n  );\n  emitOption(\"jsx\", 4 /* ReactJSX */);\n  emitOption(\n    \"verbatimModuleSyntax\",\n    /*defaultValue*/\n    true\n  );\n  emitOption(\n    \"isolatedModules\",\n    /*defaultValue*/\n    true\n  );\n  emitOption(\n    \"noUncheckedSideEffectImports\",\n    /*defaultValue*/\n    true\n  );\n  emitOption(\"moduleDetection\", 3 /* Force */);\n  emitOption(\n    \"skipLibCheck\",\n    /*defaultValue*/\n    true\n  );\n  if (allSetOptions.length > 0) {\n    newline();\n    while (allSetOptions.length > 0) {\n      emitOption(allSetOptions[0], options[allSetOptions[0]]);\n    }\n  }\n  function newline() {\n    result.push(\"\");\n  }\n  function emitHeader(header) {\n    result.push(`${tab}${tab}// ${getLocaleSpecificMessage(header)}`);\n  }\n  function emitOption(setting, defaultValue, commented = \"never\") {\n    const existingOptionIndex = allSetOptions.indexOf(setting);\n    if (existingOptionIndex >= 0) {\n      allSetOptions.splice(existingOptionIndex, 1);\n    }\n    let comment;\n    if (commented === \"always\") {\n      comment = true;\n    } else if (commented === \"never\") {\n      comment = false;\n    } else {\n      comment = !hasProperty(options, setting);\n    }\n    const value = options[setting] ?? defaultValue;\n    if (comment) {\n      result.push(`${tab}${tab}// \"${setting}\": ${formatValueOrArray(setting, value)},`);\n    } else {\n      result.push(`${tab}${tab}\"${setting}\": ${formatValueOrArray(setting, value)},`);\n    }\n  }\n  function formatValueOrArray(settingName, value) {\n    const option = optionDeclarations.filter((c) => c.name === settingName)[0];\n    if (!option) Debug.fail(`No option named ${settingName}?`);\n    const map2 = option.type instanceof Map ? option.type : void 0;\n    if (isArray(value)) {\n      const map3 = \"element\" in option && option.element.type instanceof Map ? option.element.type : void 0;\n      return `[${value.map((v) => formatSingleValue(v, map3)).join(\", \")}]`;\n    } else {\n      return formatSingleValue(value, map2);\n    }\n  }\n  function formatSingleValue(value, map2) {\n    if (map2) {\n      value = getNameOfCompilerOptionValue(value, map2) ?? Debug.fail(`No matching value of ${value}`);\n    }\n    return JSON.stringify(value);\n  }\n  result.push(`${tab}}`);\n  result.push(`}`);\n  result.push(``);\n  return result.join(newLine);\n}\nfunction convertToOptionsWithAbsolutePaths(options, toAbsolutePath) {\n  const result = {};\n  const optionsNameMap = getOptionsNameMap().optionsNameMap;\n  for (const name in options) {\n    if (hasProperty(options, name)) {\n      result[name] = convertToOptionValueWithAbsolutePaths(\n        optionsNameMap.get(name.toLowerCase()),\n        options[name],\n        toAbsolutePath\n      );\n    }\n  }\n  if (result.configFilePath) {\n    result.configFilePath = toAbsolutePath(result.configFilePath);\n  }\n  return result;\n}\nfunction convertToOptionValueWithAbsolutePaths(option, value, toAbsolutePath) {\n  if (option && !isNullOrUndefined(value)) {\n    if (option.type === \"list\") {\n      const values = value;\n      if (option.element.isFilePath && values.length) {\n        return values.map(toAbsolutePath);\n      }\n    } else if (option.isFilePath) {\n      return toAbsolutePath(value);\n    }\n    Debug.assert(option.type !== \"listOrElement\");\n  }\n  return value;\n}\nfunction parseJsonConfigFileContent(json, host, basePath, existingOptions, configFileName, resolutionStack, extraFileExtensions, extendedConfigCache, existingWatchOptions) {\n  return parseJsonConfigFileContentWorker(\n    json,\n    /*sourceFile*/\n    void 0,\n    host,\n    basePath,\n    existingOptions,\n    existingWatchOptions,\n    configFileName,\n    resolutionStack,\n    extraFileExtensions,\n    extendedConfigCache\n  );\n}\nfunction parseJsonSourceFileConfigFileContent(sourceFile, host, basePath, existingOptions, configFileName, resolutionStack, extraFileExtensions, extendedConfigCache, existingWatchOptions) {\n  var _a, _b;\n  (_a = tracing) == null ? void 0 : _a.push(tracing.Phase.Parse, \"parseJsonSourceFileConfigFileContent\", { path: sourceFile.fileName });\n  const result = parseJsonConfigFileContentWorker(\n    /*json*/\n    void 0,\n    sourceFile,\n    host,\n    basePath,\n    existingOptions,\n    existingWatchOptions,\n    configFileName,\n    resolutionStack,\n    extraFileExtensions,\n    extendedConfigCache\n  );\n  (_b = tracing) == null ? void 0 : _b.pop();\n  return result;\n}\nfunction setConfigFileInOptions(options, configFile) {\n  if (configFile) {\n    Object.defineProperty(options, \"configFile\", { enumerable: false, writable: false, value: configFile });\n  }\n}\nfunction isNullOrUndefined(x) {\n  return x === void 0 || x === null;\n}\nfunction directoryOfCombinedPath(fileName, basePath) {\n  return getDirectoryPath(getNormalizedAbsolutePath(fileName, basePath));\n}\nvar defaultIncludeSpec = \"**/*\";\nfunction parseJsonConfigFileContentWorker(json, sourceFile, host, basePath, existingOptions = {}, existingWatchOptions, configFileName, resolutionStack = [], extraFileExtensions = [], extendedConfigCache) {\n  Debug.assert(json === void 0 && sourceFile !== void 0 || json !== void 0 && sourceFile === void 0);\n  const errors = [];\n  const parsedConfig = parseConfig(json, sourceFile, host, basePath, configFileName, resolutionStack, errors, extendedConfigCache);\n  const { raw } = parsedConfig;\n  const options = handleOptionConfigDirTemplateSubstitution(\n    extend(existingOptions, parsedConfig.options || {}),\n    configDirTemplateSubstitutionOptions,\n    basePath\n  );\n  const watchOptions = handleWatchOptionsConfigDirTemplateSubstitution(\n    existingWatchOptions && parsedConfig.watchOptions ? extend(existingWatchOptions, parsedConfig.watchOptions) : parsedConfig.watchOptions || existingWatchOptions,\n    basePath\n  );\n  options.configFilePath = configFileName && normalizeSlashes(configFileName);\n  const basePathForFileNames = normalizePath(configFileName ? directoryOfCombinedPath(configFileName, basePath) : basePath);\n  const configFileSpecs = getConfigFileSpecs();\n  if (sourceFile) sourceFile.configFileSpecs = configFileSpecs;\n  setConfigFileInOptions(options, sourceFile);\n  return {\n    options,\n    watchOptions,\n    fileNames: getFileNames(basePathForFileNames),\n    projectReferences: getProjectReferences(basePathForFileNames),\n    typeAcquisition: parsedConfig.typeAcquisition || getDefaultTypeAcquisition(),\n    raw,\n    errors,\n    // Wildcard directories (provided as part of a wildcard path) are stored in a\n    // file map that marks whether it was a regular wildcard match (with a `*` or `?` token),\n    // or a recursive directory. This information is used by filesystem watchers to monitor for\n    // new entries in these paths.\n    wildcardDirectories: getWildcardDirectories(configFileSpecs, basePathForFileNames, host.useCaseSensitiveFileNames),\n    compileOnSave: !!raw.compileOnSave\n  };\n  function getConfigFileSpecs() {\n    const referencesOfRaw = getPropFromRaw(\"references\", (element) => typeof element === \"object\", \"object\");\n    const filesSpecs = toPropValue(getSpecsFromRaw(\"files\"));\n    if (filesSpecs) {\n      const hasZeroOrNoReferences = referencesOfRaw === \"no-prop\" || isArray(referencesOfRaw) && referencesOfRaw.length === 0;\n      const hasExtends = hasProperty(raw, \"extends\");\n      if (filesSpecs.length === 0 && hasZeroOrNoReferences && !hasExtends) {\n        if (sourceFile) {\n          const fileName = configFileName || \"tsconfig.json\";\n          const diagnosticMessage = Diagnostics.The_files_list_in_config_file_0_is_empty;\n          const nodeValue = forEachTsConfigPropArray(sourceFile, \"files\", (property) => property.initializer);\n          const error2 = createDiagnosticForNodeInSourceFileOrCompilerDiagnostic(sourceFile, nodeValue, diagnosticMessage, fileName);\n          errors.push(error2);\n        } else {\n          createCompilerDiagnosticOnlyIfJson(Diagnostics.The_files_list_in_config_file_0_is_empty, configFileName || \"tsconfig.json\");\n        }\n      }\n    }\n    let includeSpecs = toPropValue(getSpecsFromRaw(\"include\"));\n    const excludeOfRaw = getSpecsFromRaw(\"exclude\");\n    let isDefaultIncludeSpec = false;\n    let excludeSpecs = toPropValue(excludeOfRaw);\n    if (excludeOfRaw === \"no-prop\") {\n      const outDir = options.outDir;\n      const declarationDir = options.declarationDir;\n      if (outDir || declarationDir) {\n        excludeSpecs = filter([outDir, declarationDir], (d) => !!d);\n      }\n    }\n    if (filesSpecs === void 0 && includeSpecs === void 0) {\n      includeSpecs = [defaultIncludeSpec];\n      isDefaultIncludeSpec = true;\n    }\n    let validatedIncludeSpecsBeforeSubstitution, validatedExcludeSpecsBeforeSubstitution;\n    let validatedIncludeSpecs, validatedExcludeSpecs;\n    if (includeSpecs) {\n      validatedIncludeSpecsBeforeSubstitution = validateSpecs(\n        includeSpecs,\n        errors,\n        /*disallowTrailingRecursion*/\n        true,\n        sourceFile,\n        \"include\"\n      );\n      validatedIncludeSpecs = getSubstitutedStringArrayWithConfigDirTemplate(\n        validatedIncludeSpecsBeforeSubstitution,\n        basePathForFileNames\n      ) || validatedIncludeSpecsBeforeSubstitution;\n    }\n    if (excludeSpecs) {\n      validatedExcludeSpecsBeforeSubstitution = validateSpecs(\n        excludeSpecs,\n        errors,\n        /*disallowTrailingRecursion*/\n        false,\n        sourceFile,\n        \"exclude\"\n      );\n      validatedExcludeSpecs = getSubstitutedStringArrayWithConfigDirTemplate(\n        validatedExcludeSpecsBeforeSubstitution,\n        basePathForFileNames\n      ) || validatedExcludeSpecsBeforeSubstitution;\n    }\n    const validatedFilesSpecBeforeSubstitution = filter(filesSpecs, isString);\n    const validatedFilesSpec = getSubstitutedStringArrayWithConfigDirTemplate(\n      validatedFilesSpecBeforeSubstitution,\n      basePathForFileNames\n    ) || validatedFilesSpecBeforeSubstitution;\n    return {\n      filesSpecs,\n      includeSpecs,\n      excludeSpecs,\n      validatedFilesSpec,\n      validatedIncludeSpecs,\n      validatedExcludeSpecs,\n      validatedFilesSpecBeforeSubstitution,\n      validatedIncludeSpecsBeforeSubstitution,\n      validatedExcludeSpecsBeforeSubstitution,\n      isDefaultIncludeSpec\n    };\n  }\n  function getFileNames(basePath2) {\n    const fileNames = getFileNamesFromConfigSpecs(configFileSpecs, basePath2, options, host, extraFileExtensions);\n    if (shouldReportNoInputFiles(fileNames, canJsonReportNoInputFiles(raw), resolutionStack)) {\n      errors.push(getErrorForNoInputFiles(configFileSpecs, configFileName));\n    }\n    return fileNames;\n  }\n  function getProjectReferences(basePath2) {\n    let projectReferences;\n    const referencesOfRaw = getPropFromRaw(\"references\", (element) => typeof element === \"object\", \"object\");\n    if (isArray(referencesOfRaw)) {\n      for (const ref of referencesOfRaw) {\n        if (typeof ref.path !== \"string\") {\n          createCompilerDiagnosticOnlyIfJson(Diagnostics.Compiler_option_0_requires_a_value_of_type_1, \"reference.path\", \"string\");\n        } else {\n          (projectReferences || (projectReferences = [])).push({\n            path: getNormalizedAbsolutePath(ref.path, basePath2),\n            originalPath: ref.path,\n            prepend: ref.prepend,\n            circular: ref.circular\n          });\n        }\n      }\n    }\n    return projectReferences;\n  }\n  function toPropValue(specResult) {\n    return isArray(specResult) ? specResult : void 0;\n  }\n  function getSpecsFromRaw(prop) {\n    return getPropFromRaw(prop, isString, \"string\");\n  }\n  function getPropFromRaw(prop, validateElement, elementTypeName) {\n    if (hasProperty(raw, prop) && !isNullOrUndefined(raw[prop])) {\n      if (isArray(raw[prop])) {\n        const result = raw[prop];\n        if (!sourceFile && !every(result, validateElement)) {\n          errors.push(createCompilerDiagnostic(Diagnostics.Compiler_option_0_requires_a_value_of_type_1, prop, elementTypeName));\n        }\n        return result;\n      } else {\n        createCompilerDiagnosticOnlyIfJson(Diagnostics.Compiler_option_0_requires_a_value_of_type_1, prop, \"Array\");\n        return \"not-array\";\n      }\n    }\n    return \"no-prop\";\n  }\n  function createCompilerDiagnosticOnlyIfJson(message, ...args) {\n    if (!sourceFile) {\n      errors.push(createCompilerDiagnostic(message, ...args));\n    }\n  }\n}\nfunction handleWatchOptionsConfigDirTemplateSubstitution(watchOptions, basePath) {\n  return handleOptionConfigDirTemplateSubstitution(watchOptions, configDirTemplateSubstitutionWatchOptions, basePath);\n}\nfunction handleOptionConfigDirTemplateSubstitution(options, optionDeclarations2, basePath) {\n  if (!options) return options;\n  let result;\n  for (const option of optionDeclarations2) {\n    if (options[option.name] !== void 0) {\n      const value = options[option.name];\n      switch (option.type) {\n        case \"string\":\n          Debug.assert(option.isFilePath);\n          if (startsWithConfigDirTemplate(value)) {\n            setOptionValue(option, getSubstitutedPathWithConfigDirTemplate(value, basePath));\n          }\n          break;\n        case \"list\":\n          Debug.assert(option.element.isFilePath);\n          const listResult = getSubstitutedStringArrayWithConfigDirTemplate(value, basePath);\n          if (listResult) setOptionValue(option, listResult);\n          break;\n        case \"object\":\n          Debug.assert(option.name === \"paths\");\n          const objectResult = getSubstitutedMapLikeOfStringArrayWithConfigDirTemplate(value, basePath);\n          if (objectResult) setOptionValue(option, objectResult);\n          break;\n        default:\n          Debug.fail(\"option type not supported\");\n      }\n    }\n  }\n  return result || options;\n  function setOptionValue(option, value) {\n    (result ?? (result = assign({}, options)))[option.name] = value;\n  }\n}\nvar configDirTemplate = `\\${configDir}`;\nfunction startsWithConfigDirTemplate(value) {\n  return isString(value) && startsWith(\n    value,\n    configDirTemplate,\n    /*ignoreCase*/\n    true\n  );\n}\nfunction getSubstitutedPathWithConfigDirTemplate(value, basePath) {\n  return getNormalizedAbsolutePath(value.replace(configDirTemplate, \"./\"), basePath);\n}\nfunction getSubstitutedStringArrayWithConfigDirTemplate(list, basePath) {\n  if (!list) return list;\n  let result;\n  list.forEach((element, index) => {\n    if (!startsWithConfigDirTemplate(element)) return;\n    (result ?? (result = list.slice()))[index] = getSubstitutedPathWithConfigDirTemplate(element, basePath);\n  });\n  return result;\n}\nfunction getSubstitutedMapLikeOfStringArrayWithConfigDirTemplate(mapLike, basePath) {\n  let result;\n  const ownKeys = getOwnKeys(mapLike);\n  ownKeys.forEach((key) => {\n    if (!isArray(mapLike[key])) return;\n    const subStitution = getSubstitutedStringArrayWithConfigDirTemplate(mapLike[key], basePath);\n    if (!subStitution) return;\n    (result ?? (result = assign({}, mapLike)))[key] = subStitution;\n  });\n  return result;\n}\nfunction isErrorNoInputFiles(error2) {\n  return error2.code === Diagnostics.No_inputs_were_found_in_config_file_0_Specified_include_paths_were_1_and_exclude_paths_were_2.code;\n}\nfunction getErrorForNoInputFiles({ includeSpecs, excludeSpecs }, configFileName) {\n  return createCompilerDiagnostic(\n    Diagnostics.No_inputs_were_found_in_config_file_0_Specified_include_paths_were_1_and_exclude_paths_were_2,\n    configFileName || \"tsconfig.json\",\n    JSON.stringify(includeSpecs || []),\n    JSON.stringify(excludeSpecs || [])\n  );\n}\nfunction shouldReportNoInputFiles(fileNames, canJsonReportNoInutFiles, resolutionStack) {\n  return fileNames.length === 0 && canJsonReportNoInutFiles && (!resolutionStack || resolutionStack.length === 0);\n}\nfunction isSolutionConfig(config) {\n  return !config.fileNames.length && hasProperty(config.raw, \"references\");\n}\nfunction canJsonReportNoInputFiles(raw) {\n  return !hasProperty(raw, \"files\") && !hasProperty(raw, \"references\");\n}\nfunction updateErrorForNoInputFiles(fileNames, configFileName, configFileSpecs, configParseDiagnostics, canJsonReportNoInutFiles) {\n  const existingErrors = configParseDiagnostics.length;\n  if (shouldReportNoInputFiles(fileNames, canJsonReportNoInutFiles)) {\n    configParseDiagnostics.push(getErrorForNoInputFiles(configFileSpecs, configFileName));\n  } else {\n    filterMutate(configParseDiagnostics, (error2) => !isErrorNoInputFiles(error2));\n  }\n  return existingErrors !== configParseDiagnostics.length;\n}\nfunction isSuccessfulParsedTsconfig(value) {\n  return !!value.options;\n}\nfunction parseConfig(json, sourceFile, host, basePath, configFileName, resolutionStack, errors, extendedConfigCache) {\n  var _a;\n  basePath = normalizeSlashes(basePath);\n  const resolvedPath = getNormalizedAbsolutePath(configFileName || \"\", basePath);\n  if (resolutionStack.includes(resolvedPath)) {\n    errors.push(createCompilerDiagnostic(Diagnostics.Circularity_detected_while_resolving_configuration_Colon_0, [...resolutionStack, resolvedPath].join(\" -> \")));\n    return { raw: json || convertToObject(sourceFile, errors) };\n  }\n  const ownConfig = json ? parseOwnConfigOfJson(json, host, basePath, configFileName, errors) : parseOwnConfigOfJsonSourceFile(sourceFile, host, basePath, configFileName, errors);\n  if ((_a = ownConfig.options) == null ? void 0 : _a.paths) {\n    ownConfig.options.pathsBasePath = basePath;\n  }\n  if (ownConfig.extendedConfigPath) {\n    resolutionStack = resolutionStack.concat([resolvedPath]);\n    const result = { options: {} };\n    if (isString(ownConfig.extendedConfigPath)) {\n      applyExtendedConfig(result, ownConfig.extendedConfigPath);\n    } else {\n      ownConfig.extendedConfigPath.forEach((extendedConfigPath) => applyExtendedConfig(result, extendedConfigPath));\n    }\n    if (result.include) ownConfig.raw.include = result.include;\n    if (result.exclude) ownConfig.raw.exclude = result.exclude;\n    if (result.files) ownConfig.raw.files = result.files;\n    if (ownConfig.raw.compileOnSave === void 0 && result.compileOnSave) ownConfig.raw.compileOnSave = result.compileOnSave;\n    if (sourceFile && result.extendedSourceFiles) sourceFile.extendedSourceFiles = arrayFrom(result.extendedSourceFiles.keys());\n    ownConfig.options = assign(result.options, ownConfig.options);\n    ownConfig.watchOptions = ownConfig.watchOptions && result.watchOptions ? assignWatchOptions(result, ownConfig.watchOptions) : ownConfig.watchOptions || result.watchOptions;\n  }\n  return ownConfig;\n  function applyExtendedConfig(result, extendedConfigPath) {\n    const extendedConfig = getExtendedConfig(sourceFile, extendedConfigPath, host, resolutionStack, errors, extendedConfigCache, result);\n    if (extendedConfig && isSuccessfulParsedTsconfig(extendedConfig)) {\n      const extendsRaw = extendedConfig.raw;\n      let relativeDifference;\n      const setPropertyInResultIfNotUndefined = (propertyName) => {\n        if (ownConfig.raw[propertyName]) return;\n        if (extendsRaw[propertyName]) {\n          result[propertyName] = map(extendsRaw[propertyName], (path) => startsWithConfigDirTemplate(path) || isRootedDiskPath(path) ? path : combinePaths(\n            relativeDifference || (relativeDifference = convertToRelativePath(getDirectoryPath(extendedConfigPath), basePath, createGetCanonicalFileName(host.useCaseSensitiveFileNames))),\n            path\n          ));\n        }\n      };\n      setPropertyInResultIfNotUndefined(\"include\");\n      setPropertyInResultIfNotUndefined(\"exclude\");\n      setPropertyInResultIfNotUndefined(\"files\");\n      if (extendsRaw.compileOnSave !== void 0) {\n        result.compileOnSave = extendsRaw.compileOnSave;\n      }\n      assign(result.options, extendedConfig.options);\n      result.watchOptions = result.watchOptions && extendedConfig.watchOptions ? assignWatchOptions(result, extendedConfig.watchOptions) : result.watchOptions || extendedConfig.watchOptions;\n    }\n  }\n  function assignWatchOptions(result, watchOptions) {\n    if (result.watchOptionsCopied) return assign(result.watchOptions, watchOptions);\n    result.watchOptionsCopied = true;\n    return assign({}, result.watchOptions, watchOptions);\n  }\n}\nfunction parseOwnConfigOfJson(json, host, basePath, configFileName, errors) {\n  if (hasProperty(json, \"excludes\")) {\n    errors.push(createCompilerDiagnostic(Diagnostics.Unknown_option_excludes_Did_you_mean_exclude));\n  }\n  const options = convertCompilerOptionsFromJsonWorker(json.compilerOptions, basePath, errors, configFileName);\n  const typeAcquisition = convertTypeAcquisitionFromJsonWorker(json.typeAcquisition, basePath, errors, configFileName);\n  const watchOptions = convertWatchOptionsFromJsonWorker(json.watchOptions, basePath, errors);\n  json.compileOnSave = convertCompileOnSaveOptionFromJson(json, basePath, errors);\n  const extendedConfigPath = json.extends || json.extends === \"\" ? getExtendsConfigPathOrArray(json.extends, host, basePath, configFileName, errors) : void 0;\n  return { raw: json, options, watchOptions, typeAcquisition, extendedConfigPath };\n}\nfunction getExtendsConfigPathOrArray(value, host, basePath, configFileName, errors, propertyAssignment, valueExpression, sourceFile) {\n  let extendedConfigPath;\n  const newBase = configFileName ? directoryOfCombinedPath(configFileName, basePath) : basePath;\n  if (isString(value)) {\n    extendedConfigPath = getExtendsConfigPath(\n      value,\n      host,\n      newBase,\n      errors,\n      valueExpression,\n      sourceFile\n    );\n  } else if (isArray(value)) {\n    extendedConfigPath = [];\n    for (let index = 0; index < value.length; index++) {\n      const fileName = value[index];\n      if (isString(fileName)) {\n        extendedConfigPath = append(\n          extendedConfigPath,\n          getExtendsConfigPath(\n            fileName,\n            host,\n            newBase,\n            errors,\n            valueExpression == null ? void 0 : valueExpression.elements[index],\n            sourceFile\n          )\n        );\n      } else {\n        convertJsonOption(extendsOptionDeclaration.element, value, basePath, errors, propertyAssignment, valueExpression == null ? void 0 : valueExpression.elements[index], sourceFile);\n      }\n    }\n  } else {\n    convertJsonOption(extendsOptionDeclaration, value, basePath, errors, propertyAssignment, valueExpression, sourceFile);\n  }\n  return extendedConfigPath;\n}\nfunction parseOwnConfigOfJsonSourceFile(sourceFile, host, basePath, configFileName, errors) {\n  const options = getDefaultCompilerOptions(configFileName);\n  let typeAcquisition;\n  let watchOptions;\n  let extendedConfigPath;\n  let rootCompilerOptions;\n  const rootOptions = getTsconfigRootOptionsMap();\n  const json = convertConfigFileToObject(\n    sourceFile,\n    errors,\n    { rootOptions, onPropertySet }\n  );\n  if (!typeAcquisition) {\n    typeAcquisition = getDefaultTypeAcquisition(configFileName);\n  }\n  if (rootCompilerOptions && json && json.compilerOptions === void 0) {\n    errors.push(createDiagnosticForNodeInSourceFile(sourceFile, rootCompilerOptions[0], Diagnostics._0_should_be_set_inside_the_compilerOptions_object_of_the_config_json_file, getTextOfPropertyName(rootCompilerOptions[0])));\n  }\n  return { raw: json, options, watchOptions, typeAcquisition, extendedConfigPath };\n  function onPropertySet(keyText, value, propertyAssignment, parentOption, option) {\n    if (option && option !== extendsOptionDeclaration) value = convertJsonOption(option, value, basePath, errors, propertyAssignment, propertyAssignment.initializer, sourceFile);\n    if (parentOption == null ? void 0 : parentOption.name) {\n      if (option) {\n        let currentOption;\n        if (parentOption === compilerOptionsDeclaration) currentOption = options;\n        else if (parentOption === watchOptionsDeclaration) currentOption = watchOptions ?? (watchOptions = {});\n        else if (parentOption === typeAcquisitionDeclaration) currentOption = typeAcquisition ?? (typeAcquisition = getDefaultTypeAcquisition(configFileName));\n        else Debug.fail(\"Unknown option\");\n        currentOption[option.name] = value;\n      } else if (keyText && (parentOption == null ? void 0 : parentOption.extraKeyDiagnostics)) {\n        if (parentOption.elementOptions) {\n          errors.push(createUnknownOptionError(\n            keyText,\n            parentOption.extraKeyDiagnostics,\n            /*unknownOptionErrorText*/\n            void 0,\n            propertyAssignment.name,\n            sourceFile\n          ));\n        } else {\n          errors.push(createDiagnosticForNodeInSourceFile(sourceFile, propertyAssignment.name, parentOption.extraKeyDiagnostics.unknownOptionDiagnostic, keyText));\n        }\n      }\n    } else if (parentOption === rootOptions) {\n      if (option === extendsOptionDeclaration) {\n        extendedConfigPath = getExtendsConfigPathOrArray(value, host, basePath, configFileName, errors, propertyAssignment, propertyAssignment.initializer, sourceFile);\n      } else if (!option) {\n        if (keyText === \"excludes\") {\n          errors.push(createDiagnosticForNodeInSourceFile(sourceFile, propertyAssignment.name, Diagnostics.Unknown_option_excludes_Did_you_mean_exclude));\n        }\n        if (find(commandOptionsWithoutBuild, (opt) => opt.name === keyText)) {\n          rootCompilerOptions = append(rootCompilerOptions, propertyAssignment.name);\n        }\n      }\n    }\n  }\n}\nfunction getExtendsConfigPath(extendedConfig, host, basePath, errors, valueExpression, sourceFile) {\n  extendedConfig = normalizeSlashes(extendedConfig);\n  if (isRootedDiskPath(extendedConfig) || startsWith(extendedConfig, \"./\") || startsWith(extendedConfig, \"../\")) {\n    let extendedConfigPath = getNormalizedAbsolutePath(extendedConfig, basePath);\n    if (!host.fileExists(extendedConfigPath) && !endsWith(extendedConfigPath, \".json\" /* Json */)) {\n      extendedConfigPath = `${extendedConfigPath}.json`;\n      if (!host.fileExists(extendedConfigPath)) {\n        errors.push(createDiagnosticForNodeInSourceFileOrCompilerDiagnostic(sourceFile, valueExpression, Diagnostics.File_0_not_found, extendedConfig));\n        return void 0;\n      }\n    }\n    return extendedConfigPath;\n  }\n  const resolved = nodeNextJsonConfigResolver(extendedConfig, combinePaths(basePath, \"tsconfig.json\"), host);\n  if (resolved.resolvedModule) {\n    return resolved.resolvedModule.resolvedFileName;\n  }\n  if (extendedConfig === \"\") {\n    errors.push(createDiagnosticForNodeInSourceFileOrCompilerDiagnostic(sourceFile, valueExpression, Diagnostics.Compiler_option_0_cannot_be_given_an_empty_string, \"extends\"));\n  } else {\n    errors.push(createDiagnosticForNodeInSourceFileOrCompilerDiagnostic(sourceFile, valueExpression, Diagnostics.File_0_not_found, extendedConfig));\n  }\n  return void 0;\n}\nfunction getExtendedConfig(sourceFile, extendedConfigPath, host, resolutionStack, errors, extendedConfigCache, result) {\n  const path = host.useCaseSensitiveFileNames ? extendedConfigPath : toFileNameLowerCase(extendedConfigPath);\n  let value;\n  let extendedResult;\n  let extendedConfig;\n  if (extendedConfigCache && (value = extendedConfigCache.get(path))) {\n    ({ extendedResult, extendedConfig } = value);\n  } else {\n    extendedResult = readJsonConfigFile(extendedConfigPath, (path2) => host.readFile(path2));\n    if (!extendedResult.parseDiagnostics.length) {\n      extendedConfig = parseConfig(\n        /*json*/\n        void 0,\n        extendedResult,\n        host,\n        getDirectoryPath(extendedConfigPath),\n        getBaseFileName(extendedConfigPath),\n        resolutionStack,\n        errors,\n        extendedConfigCache\n      );\n    }\n    if (extendedConfigCache) {\n      extendedConfigCache.set(path, { extendedResult, extendedConfig });\n    }\n  }\n  if (sourceFile) {\n    (result.extendedSourceFiles ?? (result.extendedSourceFiles = /* @__PURE__ */ new Set())).add(extendedResult.fileName);\n    if (extendedResult.extendedSourceFiles) {\n      for (const extenedSourceFile of extendedResult.extendedSourceFiles) {\n        result.extendedSourceFiles.add(extenedSourceFile);\n      }\n    }\n  }\n  if (extendedResult.parseDiagnostics.length) {\n    errors.push(...extendedResult.parseDiagnostics);\n    return void 0;\n  }\n  return extendedConfig;\n}\nfunction convertCompileOnSaveOptionFromJson(jsonOption, basePath, errors) {\n  if (!hasProperty(jsonOption, compileOnSaveCommandLineOption.name)) {\n    return false;\n  }\n  const result = convertJsonOption(compileOnSaveCommandLineOption, jsonOption.compileOnSave, basePath, errors);\n  return typeof result === \"boolean\" && result;\n}\nfunction convertCompilerOptionsFromJson(jsonOptions, basePath, configFileName) {\n  const errors = [];\n  const options = convertCompilerOptionsFromJsonWorker(jsonOptions, basePath, errors, configFileName);\n  return { options, errors };\n}\nfunction convertTypeAcquisitionFromJson(jsonOptions, basePath, configFileName) {\n  const errors = [];\n  const options = convertTypeAcquisitionFromJsonWorker(jsonOptions, basePath, errors, configFileName);\n  return { options, errors };\n}\nfunction getDefaultCompilerOptions(configFileName) {\n  const options = configFileName && getBaseFileName(configFileName) === \"jsconfig.json\" ? { allowJs: true, maxNodeModuleJsDepth: 2, allowSyntheticDefaultImports: true, skipLibCheck: true, noEmit: true } : {};\n  return options;\n}\nfunction convertCompilerOptionsFromJsonWorker(jsonOptions, basePath, errors, configFileName) {\n  const options = getDefaultCompilerOptions(configFileName);\n  convertOptionsFromJson(getCommandLineCompilerOptionsMap(), jsonOptions, basePath, options, compilerOptionsDidYouMeanDiagnostics, errors);\n  if (configFileName) {\n    options.configFilePath = normalizeSlashes(configFileName);\n  }\n  return options;\n}\nfunction getDefaultTypeAcquisition(configFileName) {\n  return { enable: !!configFileName && getBaseFileName(configFileName) === \"jsconfig.json\", include: [], exclude: [] };\n}\nfunction convertTypeAcquisitionFromJsonWorker(jsonOptions, basePath, errors, configFileName) {\n  const options = getDefaultTypeAcquisition(configFileName);\n  convertOptionsFromJson(getCommandLineTypeAcquisitionMap(), jsonOptions, basePath, options, typeAcquisitionDidYouMeanDiagnostics, errors);\n  return options;\n}\nfunction convertWatchOptionsFromJsonWorker(jsonOptions, basePath, errors) {\n  return convertOptionsFromJson(\n    getCommandLineWatchOptionsMap(),\n    jsonOptions,\n    basePath,\n    /*defaultOptions*/\n    void 0,\n    watchOptionsDidYouMeanDiagnostics,\n    errors\n  );\n}\nfunction convertOptionsFromJson(optionsNameMap, jsonOptions, basePath, defaultOptions, diagnostics, errors) {\n  if (!jsonOptions) {\n    return;\n  }\n  for (const id in jsonOptions) {\n    const opt = optionsNameMap.get(id);\n    if (opt) {\n      (defaultOptions || (defaultOptions = {}))[opt.name] = convertJsonOption(opt, jsonOptions[id], basePath, errors);\n    } else {\n      errors.push(createUnknownOptionError(id, diagnostics));\n    }\n  }\n  return defaultOptions;\n}\nfunction createDiagnosticForNodeInSourceFileOrCompilerDiagnostic(sourceFile, node, message, ...args) {\n  return sourceFile && node ? createDiagnosticForNodeInSourceFile(sourceFile, node, message, ...args) : createCompilerDiagnostic(message, ...args);\n}\nfunction convertJsonOption(opt, value, basePath, errors, propertyAssignment, valueExpression, sourceFile) {\n  if (opt.isCommandLineOnly) {\n    errors.push(createDiagnosticForNodeInSourceFileOrCompilerDiagnostic(sourceFile, propertyAssignment == null ? void 0 : propertyAssignment.name, Diagnostics.Option_0_can_only_be_specified_on_command_line, opt.name));\n    return void 0;\n  }\n  if (isCompilerOptionsValue(opt, value)) {\n    const optType = opt.type;\n    if (optType === \"list\" && isArray(value)) {\n      return convertJsonOptionOfListType(opt, value, basePath, errors, propertyAssignment, valueExpression, sourceFile);\n    } else if (optType === \"listOrElement\") {\n      return isArray(value) ? convertJsonOptionOfListType(opt, value, basePath, errors, propertyAssignment, valueExpression, sourceFile) : convertJsonOption(opt.element, value, basePath, errors, propertyAssignment, valueExpression, sourceFile);\n    } else if (!isString(opt.type)) {\n      return convertJsonOptionOfCustomType(opt, value, errors, valueExpression, sourceFile);\n    }\n    const validatedValue = validateJsonOptionValue(opt, value, errors, valueExpression, sourceFile);\n    return isNullOrUndefined(validatedValue) ? validatedValue : normalizeNonListOptionValue(opt, basePath, validatedValue);\n  } else {\n    errors.push(createDiagnosticForNodeInSourceFileOrCompilerDiagnostic(sourceFile, valueExpression, Diagnostics.Compiler_option_0_requires_a_value_of_type_1, opt.name, getCompilerOptionValueTypeString(opt)));\n  }\n}\nfunction normalizeNonListOptionValue(option, basePath, value) {\n  if (option.isFilePath) {\n    value = normalizeSlashes(value);\n    value = !startsWithConfigDirTemplate(value) ? getNormalizedAbsolutePath(value, basePath) : value;\n    if (value === \"\") {\n      value = \".\";\n    }\n  }\n  return value;\n}\nfunction validateJsonOptionValue(opt, value, errors, valueExpression, sourceFile) {\n  var _a;\n  if (isNullOrUndefined(value)) return void 0;\n  const d = (_a = opt.extraValidation) == null ? void 0 : _a.call(opt, value);\n  if (!d) return value;\n  errors.push(createDiagnosticForNodeInSourceFileOrCompilerDiagnostic(sourceFile, valueExpression, ...d));\n  return void 0;\n}\nfunction convertJsonOptionOfCustomType(opt, value, errors, valueExpression, sourceFile) {\n  if (isNullOrUndefined(value)) return void 0;\n  const key = value.toLowerCase();\n  const val = opt.type.get(key);\n  if (val !== void 0) {\n    return validateJsonOptionValue(opt, val, errors, valueExpression, sourceFile);\n  } else {\n    errors.push(createDiagnosticForInvalidCustomType(opt, (message, ...args) => createDiagnosticForNodeInSourceFileOrCompilerDiagnostic(sourceFile, valueExpression, message, ...args)));\n  }\n}\nfunction convertJsonOptionOfListType(option, values, basePath, errors, propertyAssignment, valueExpression, sourceFile) {\n  return filter(map(values, (v, index) => convertJsonOption(option.element, v, basePath, errors, propertyAssignment, valueExpression == null ? void 0 : valueExpression.elements[index], sourceFile)), (v) => option.listPreserveFalsyValues ? true : !!v);\n}\nvar invalidTrailingRecursionPattern = /(?:^|\\/)\\*\\*\\/?$/;\nvar wildcardDirectoryPattern = /^[^*?]*(?=\\/[^/]*[*?])/;\nfunction getFileNamesFromConfigSpecs(configFileSpecs, basePath, options, host, extraFileExtensions = emptyArray) {\n  basePath = normalizePath(basePath);\n  const keyMapper = createGetCanonicalFileName(host.useCaseSensitiveFileNames);\n  const literalFileMap = /* @__PURE__ */ new Map();\n  const wildcardFileMap = /* @__PURE__ */ new Map();\n  const wildCardJsonFileMap = /* @__PURE__ */ new Map();\n  const { validatedFilesSpec, validatedIncludeSpecs, validatedExcludeSpecs } = configFileSpecs;\n  const supportedExtensions = getSupportedExtensions(options, extraFileExtensions);\n  const supportedExtensionsWithJsonIfResolveJsonModule = getSupportedExtensionsWithJsonIfResolveJsonModule(options, supportedExtensions);\n  if (validatedFilesSpec) {\n    for (const fileName of validatedFilesSpec) {\n      const file = getNormalizedAbsolutePath(fileName, basePath);\n      literalFileMap.set(keyMapper(file), file);\n    }\n  }\n  let jsonOnlyIncludeRegexes;\n  if (validatedIncludeSpecs && validatedIncludeSpecs.length > 0) {\n    for (const file of host.readDirectory(\n      basePath,\n      flatten(supportedExtensionsWithJsonIfResolveJsonModule),\n      validatedExcludeSpecs,\n      validatedIncludeSpecs,\n      /*depth*/\n      void 0\n    )) {\n      if (fileExtensionIs(file, \".json\" /* Json */)) {\n        if (!jsonOnlyIncludeRegexes) {\n          const includes = validatedIncludeSpecs.filter((s) => endsWith(s, \".json\" /* Json */));\n          const includeFilePatterns = map(getRegularExpressionsForWildcards(includes, basePath, \"files\"), (pattern) => `^${pattern}$`);\n          jsonOnlyIncludeRegexes = includeFilePatterns ? includeFilePatterns.map((pattern) => getRegexFromPattern(pattern, host.useCaseSensitiveFileNames)) : emptyArray;\n        }\n        const includeIndex = findIndex(jsonOnlyIncludeRegexes, (re) => re.test(file));\n        if (includeIndex !== -1) {\n          const key2 = keyMapper(file);\n          if (!literalFileMap.has(key2) && !wildCardJsonFileMap.has(key2)) {\n            wildCardJsonFileMap.set(key2, file);\n          }\n        }\n        continue;\n      }\n      if (hasFileWithHigherPriorityExtension(file, literalFileMap, wildcardFileMap, supportedExtensions, keyMapper)) {\n        continue;\n      }\n      removeWildcardFilesWithLowerPriorityExtension(file, wildcardFileMap, supportedExtensions, keyMapper);\n      const key = keyMapper(file);\n      if (!literalFileMap.has(key) && !wildcardFileMap.has(key)) {\n        wildcardFileMap.set(key, file);\n      }\n    }\n  }\n  const literalFiles = arrayFrom(literalFileMap.values());\n  const wildcardFiles = arrayFrom(wildcardFileMap.values());\n  return literalFiles.concat(wildcardFiles, arrayFrom(wildCardJsonFileMap.values()));\n}\nfunction isExcludedFile(pathToCheck, spec, basePath, useCaseSensitiveFileNames2, currentDirectory) {\n  const { validatedFilesSpec, validatedIncludeSpecs, validatedExcludeSpecs } = spec;\n  if (!length(validatedIncludeSpecs) || !length(validatedExcludeSpecs)) return false;\n  basePath = normalizePath(basePath);\n  const keyMapper = createGetCanonicalFileName(useCaseSensitiveFileNames2);\n  if (validatedFilesSpec) {\n    for (const fileName of validatedFilesSpec) {\n      if (keyMapper(getNormalizedAbsolutePath(fileName, basePath)) === pathToCheck) return false;\n    }\n  }\n  return matchesExcludeWorker(pathToCheck, validatedExcludeSpecs, useCaseSensitiveFileNames2, currentDirectory, basePath);\n}\nfunction invalidDotDotAfterRecursiveWildcard(s) {\n  const wildcardIndex = startsWith(s, \"**/\") ? 0 : s.indexOf(\"/**/\");\n  if (wildcardIndex === -1) {\n    return false;\n  }\n  const lastDotIndex = endsWith(s, \"/..\") ? s.length : s.lastIndexOf(\"/../\");\n  return lastDotIndex > wildcardIndex;\n}\nfunction matchesExclude(pathToCheck, excludeSpecs, useCaseSensitiveFileNames2, currentDirectory) {\n  return matchesExcludeWorker(\n    pathToCheck,\n    filter(excludeSpecs, (spec) => !invalidDotDotAfterRecursiveWildcard(spec)),\n    useCaseSensitiveFileNames2,\n    currentDirectory\n  );\n}\nfunction matchesExcludeWorker(pathToCheck, excludeSpecs, useCaseSensitiveFileNames2, currentDirectory, basePath) {\n  const excludePattern = getRegularExpressionForWildcard(excludeSpecs, combinePaths(normalizePath(currentDirectory), basePath), \"exclude\");\n  const excludeRegex = excludePattern && getRegexFromPattern(excludePattern, useCaseSensitiveFileNames2);\n  if (!excludeRegex) return false;\n  if (excludeRegex.test(pathToCheck)) return true;\n  return !hasExtension(pathToCheck) && excludeRegex.test(ensureTrailingDirectorySeparator(pathToCheck));\n}\nfunction validateSpecs(specs, errors, disallowTrailingRecursion, jsonSourceFile, specKey) {\n  return specs.filter((spec) => {\n    if (!isString(spec)) return false;\n    const diag2 = specToDiagnostic(spec, disallowTrailingRecursion);\n    if (diag2 !== void 0) {\n      errors.push(createDiagnostic(...diag2));\n    }\n    return diag2 === void 0;\n  });\n  function createDiagnostic(message, spec) {\n    const element = getTsConfigPropArrayElementValue(jsonSourceFile, specKey, spec);\n    return createDiagnosticForNodeInSourceFileOrCompilerDiagnostic(jsonSourceFile, element, message, spec);\n  }\n}\nfunction specToDiagnostic(spec, disallowTrailingRecursion) {\n  Debug.assert(typeof spec === \"string\");\n  if (disallowTrailingRecursion && invalidTrailingRecursionPattern.test(spec)) {\n    return [Diagnostics.File_specification_cannot_end_in_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0, spec];\n  } else if (invalidDotDotAfterRecursiveWildcard(spec)) {\n    return [Diagnostics.File_specification_cannot_contain_a_parent_directory_that_appears_after_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0, spec];\n  }\n}\nfunction getWildcardDirectories({ validatedIncludeSpecs: include, validatedExcludeSpecs: exclude }, basePath, useCaseSensitiveFileNames2) {\n  const rawExcludeRegex = getRegularExpressionForWildcard(exclude, basePath, \"exclude\");\n  const excludeRegex = rawExcludeRegex && new RegExp(rawExcludeRegex, useCaseSensitiveFileNames2 ? \"\" : \"i\");\n  const wildcardDirectories = {};\n  const wildCardKeyToPath = /* @__PURE__ */ new Map();\n  if (include !== void 0) {\n    const recursiveKeys = [];\n    for (const file of include) {\n      const spec = normalizePath(combinePaths(basePath, file));\n      if (excludeRegex && excludeRegex.test(spec)) {\n        continue;\n      }\n      const match = getWildcardDirectoryFromSpec(spec, useCaseSensitiveFileNames2);\n      if (match) {\n        const { key, path, flags } = match;\n        const existingPath = wildCardKeyToPath.get(key);\n        const existingFlags = existingPath !== void 0 ? wildcardDirectories[existingPath] : void 0;\n        if (existingFlags === void 0 || existingFlags < flags) {\n          wildcardDirectories[existingPath !== void 0 ? existingPath : path] = flags;\n          if (existingPath === void 0) wildCardKeyToPath.set(key, path);\n          if (flags === 1 /* Recursive */) {\n            recursiveKeys.push(key);\n          }\n        }\n      }\n    }\n    for (const path in wildcardDirectories) {\n      if (hasProperty(wildcardDirectories, path)) {\n        for (const recursiveKey of recursiveKeys) {\n          const key = toCanonicalKey(path, useCaseSensitiveFileNames2);\n          if (key !== recursiveKey && containsPath(recursiveKey, key, basePath, !useCaseSensitiveFileNames2)) {\n            delete wildcardDirectories[path];\n          }\n        }\n      }\n    }\n  }\n  return wildcardDirectories;\n}\nfunction toCanonicalKey(path, useCaseSensitiveFileNames2) {\n  return useCaseSensitiveFileNames2 ? path : toFileNameLowerCase(path);\n}\nfunction getWildcardDirectoryFromSpec(spec, useCaseSensitiveFileNames2) {\n  const match = wildcardDirectoryPattern.exec(spec);\n  if (match) {\n    const questionWildcardIndex = spec.indexOf(\"?\");\n    const starWildcardIndex = spec.indexOf(\"*\");\n    const lastDirectorySeperatorIndex = spec.lastIndexOf(directorySeparator);\n    return {\n      key: toCanonicalKey(match[0], useCaseSensitiveFileNames2),\n      path: match[0],\n      flags: questionWildcardIndex !== -1 && questionWildcardIndex < lastDirectorySeperatorIndex || starWildcardIndex !== -1 && starWildcardIndex < lastDirectorySeperatorIndex ? 1 /* Recursive */ : 0 /* None */\n    };\n  }\n  if (isImplicitGlob(spec.substring(spec.lastIndexOf(directorySeparator) + 1))) {\n    const path = removeTrailingDirectorySeparator(spec);\n    return {\n      key: toCanonicalKey(path, useCaseSensitiveFileNames2),\n      path,\n      flags: 1 /* Recursive */\n    };\n  }\n  return void 0;\n}\nfunction hasFileWithHigherPriorityExtension(file, literalFiles, wildcardFiles, extensions, keyMapper) {\n  const extensionGroup = forEach(extensions, (group2) => fileExtensionIsOneOf(file, group2) ? group2 : void 0);\n  if (!extensionGroup) {\n    return false;\n  }\n  for (const ext of extensionGroup) {\n    if (fileExtensionIs(file, ext) && (ext !== \".ts\" /* Ts */ || !fileExtensionIs(file, \".d.ts\" /* Dts */))) {\n      return false;\n    }\n    const higherPriorityPath = keyMapper(changeExtension(file, ext));\n    if (literalFiles.has(higherPriorityPath) || wildcardFiles.has(higherPriorityPath)) {\n      if (ext === \".d.ts\" /* Dts */ && (fileExtensionIs(file, \".js\" /* Js */) || fileExtensionIs(file, \".jsx\" /* Jsx */))) {\n        continue;\n      }\n      return true;\n    }\n  }\n  return false;\n}\nfunction removeWildcardFilesWithLowerPriorityExtension(file, wildcardFiles, extensions, keyMapper) {\n  const extensionGroup = forEach(extensions, (group2) => fileExtensionIsOneOf(file, group2) ? group2 : void 0);\n  if (!extensionGroup) {\n    return;\n  }\n  for (let i = extensionGroup.length - 1; i >= 0; i--) {\n    const ext = extensionGroup[i];\n    if (fileExtensionIs(file, ext)) {\n      return;\n    }\n    const lowerPriorityPath = keyMapper(changeExtension(file, ext));\n    wildcardFiles.delete(lowerPriorityPath);\n  }\n}\nfunction convertCompilerOptionsForTelemetry(opts) {\n  const out = {};\n  for (const key in opts) {\n    if (hasProperty(opts, key)) {\n      const type = getOptionFromName(key);\n      if (type !== void 0) {\n        out[key] = getOptionValueWithEmptyStrings(opts[key], type);\n      }\n    }\n  }\n  return out;\n}\nfunction getOptionValueWithEmptyStrings(value, option) {\n  if (value === void 0) return value;\n  switch (option.type) {\n    case \"object\":\n      return \"\";\n    case \"string\":\n      return \"\";\n    case \"number\":\n      return typeof value === \"number\" ? value : \"\";\n    case \"boolean\":\n      return typeof value === \"boolean\" ? value : \"\";\n    case \"listOrElement\":\n      if (!isArray(value)) return getOptionValueWithEmptyStrings(value, option.element);\n    // fall through to list\n    case \"list\":\n      const elementType = option.element;\n      return isArray(value) ? mapDefined(value, (v) => getOptionValueWithEmptyStrings(v, elementType)) : \"\";\n    default:\n      return forEachEntry(option.type, (optionEnumValue, optionStringValue) => {\n        if (optionEnumValue === value) {\n          return optionStringValue;\n        }\n      });\n  }\n}\n\n// src/compiler/moduleNameResolver.ts\nfunction trace(host, message, ...args) {\n  host.trace(formatMessage(message, ...args));\n}\nfunction isTraceEnabled(compilerOptions, host) {\n  return !!compilerOptions.traceResolution && host.trace !== void 0;\n}\nfunction withPackageId(packageInfo, r, state) {\n  let packageId;\n  if (r && packageInfo) {\n    const packageJsonContent = packageInfo.contents.packageJsonContent;\n    if (typeof packageJsonContent.name === \"string\" && typeof packageJsonContent.version === \"string\") {\n      packageId = {\n        name: packageJsonContent.name,\n        subModuleName: r.path.slice(packageInfo.packageDirectory.length + directorySeparator.length),\n        version: packageJsonContent.version,\n        peerDependencies: getPeerDependenciesOfPackageJsonInfo(packageInfo, state)\n      };\n    }\n  }\n  return r && { path: r.path, extension: r.ext, packageId, resolvedUsingTsExtension: r.resolvedUsingTsExtension };\n}\nfunction noPackageId(r) {\n  return withPackageId(\n    /*packageInfo*/\n    void 0,\n    r,\n    /*state*/\n    void 0\n  );\n}\nfunction removeIgnoredPackageId(r) {\n  if (r) {\n    Debug.assert(r.packageId === void 0);\n    return { path: r.path, ext: r.extension, resolvedUsingTsExtension: r.resolvedUsingTsExtension };\n  }\n}\nfunction formatExtensions(extensions) {\n  const result = [];\n  if (extensions & 1 /* TypeScript */) result.push(\"TypeScript\");\n  if (extensions & 2 /* JavaScript */) result.push(\"JavaScript\");\n  if (extensions & 4 /* Declaration */) result.push(\"Declaration\");\n  if (extensions & 8 /* Json */) result.push(\"JSON\");\n  return result.join(\", \");\n}\nfunction extensionsToExtensionsArray(extensions) {\n  const result = [];\n  if (extensions & 1 /* TypeScript */) result.push(...supportedTSImplementationExtensions);\n  if (extensions & 2 /* JavaScript */) result.push(...supportedJSExtensionsFlat);\n  if (extensions & 4 /* Declaration */) result.push(...supportedDeclarationExtensions);\n  if (extensions & 8 /* Json */) result.push(\".json\" /* Json */);\n  return result;\n}\nfunction resolvedTypeScriptOnly(resolved) {\n  if (!resolved) {\n    return void 0;\n  }\n  Debug.assert(extensionIsTS(resolved.extension));\n  return { fileName: resolved.path, packageId: resolved.packageId };\n}\nfunction createResolvedModuleWithFailedLookupLocationsHandlingSymlink(moduleName, resolved, isExternalLibraryImport, failedLookupLocations, affectingLocations, diagnostics, state, cache, alternateResult) {\n  if (!state.resultFromCache && !state.compilerOptions.preserveSymlinks && resolved && isExternalLibraryImport && !resolved.originalPath && !isExternalModuleNameRelative(moduleName)) {\n    const { resolvedFileName, originalPath } = getOriginalAndResolvedFileName(resolved.path, state.host, state.traceEnabled);\n    if (originalPath) resolved = { ...resolved, path: resolvedFileName, originalPath };\n  }\n  return createResolvedModuleWithFailedLookupLocations(\n    resolved,\n    isExternalLibraryImport,\n    failedLookupLocations,\n    affectingLocations,\n    diagnostics,\n    state.resultFromCache,\n    cache,\n    alternateResult\n  );\n}\nfunction createResolvedModuleWithFailedLookupLocations(resolved, isExternalLibraryImport, failedLookupLocations, affectingLocations, diagnostics, resultFromCache, cache, alternateResult) {\n  if (resultFromCache) {\n    if (!(cache == null ? void 0 : cache.isReadonly)) {\n      resultFromCache.failedLookupLocations = updateResolutionField(resultFromCache.failedLookupLocations, failedLookupLocations);\n      resultFromCache.affectingLocations = updateResolutionField(resultFromCache.affectingLocations, affectingLocations);\n      resultFromCache.resolutionDiagnostics = updateResolutionField(resultFromCache.resolutionDiagnostics, diagnostics);\n      return resultFromCache;\n    } else {\n      return {\n        ...resultFromCache,\n        failedLookupLocations: initializeResolutionFieldForReadonlyCache(resultFromCache.failedLookupLocations, failedLookupLocations),\n        affectingLocations: initializeResolutionFieldForReadonlyCache(resultFromCache.affectingLocations, affectingLocations),\n        resolutionDiagnostics: initializeResolutionFieldForReadonlyCache(resultFromCache.resolutionDiagnostics, diagnostics)\n      };\n    }\n  }\n  return {\n    resolvedModule: resolved && {\n      resolvedFileName: resolved.path,\n      originalPath: resolved.originalPath === true ? void 0 : resolved.originalPath,\n      extension: resolved.extension,\n      isExternalLibraryImport,\n      packageId: resolved.packageId,\n      resolvedUsingTsExtension: !!resolved.resolvedUsingTsExtension\n    },\n    failedLookupLocations: initializeResolutionField(failedLookupLocations),\n    affectingLocations: initializeResolutionField(affectingLocations),\n    resolutionDiagnostics: initializeResolutionField(diagnostics),\n    alternateResult\n  };\n}\nfunction initializeResolutionField(value) {\n  return value.length ? value : void 0;\n}\nfunction updateResolutionField(to, value) {\n  if (!(value == null ? void 0 : value.length)) return to;\n  if (!(to == null ? void 0 : to.length)) return value;\n  to.push(...value);\n  return to;\n}\nfunction initializeResolutionFieldForReadonlyCache(fromCache, value) {\n  if (!(fromCache == null ? void 0 : fromCache.length)) return initializeResolutionField(value);\n  if (!value.length) return fromCache.slice();\n  return [...fromCache, ...value];\n}\nfunction readPackageJsonField(jsonContent, fieldName, typeOfTag, state) {\n  if (!hasProperty(jsonContent, fieldName)) {\n    if (state.traceEnabled) {\n      trace(state.host, Diagnostics.package_json_does_not_have_a_0_field, fieldName);\n    }\n    return;\n  }\n  const value = jsonContent[fieldName];\n  if (typeof value !== typeOfTag || value === null) {\n    if (state.traceEnabled) {\n      trace(state.host, Diagnostics.Expected_type_of_0_field_in_package_json_to_be_1_got_2, fieldName, typeOfTag, value === null ? \"null\" : typeof value);\n    }\n    return;\n  }\n  return value;\n}\nfunction readPackageJsonPathField(jsonContent, fieldName, baseDirectory, state) {\n  const fileName = readPackageJsonField(jsonContent, fieldName, \"string\", state);\n  if (fileName === void 0) {\n    return;\n  }\n  if (!fileName) {\n    if (state.traceEnabled) {\n      trace(state.host, Diagnostics.package_json_had_a_falsy_0_field, fieldName);\n    }\n    return;\n  }\n  const path = normalizePath(combinePaths(baseDirectory, fileName));\n  if (state.traceEnabled) {\n    trace(state.host, Diagnostics.package_json_has_0_field_1_that_references_2, fieldName, fileName, path);\n  }\n  return path;\n}\nfunction readPackageJsonTypesFields(jsonContent, baseDirectory, state) {\n  return readPackageJsonPathField(jsonContent, \"typings\", baseDirectory, state) || readPackageJsonPathField(jsonContent, \"types\", baseDirectory, state);\n}\nfunction readPackageJsonTSConfigField(jsonContent, baseDirectory, state) {\n  return readPackageJsonPathField(jsonContent, \"tsconfig\", baseDirectory, state);\n}\nfunction readPackageJsonMainField(jsonContent, baseDirectory, state) {\n  return readPackageJsonPathField(jsonContent, \"main\", baseDirectory, state);\n}\nfunction readPackageJsonTypesVersionsField(jsonContent, state) {\n  const typesVersions = readPackageJsonField(jsonContent, \"typesVersions\", \"object\", state);\n  if (typesVersions === void 0) return;\n  if (state.traceEnabled) {\n    trace(state.host, Diagnostics.package_json_has_a_typesVersions_field_with_version_specific_path_mappings);\n  }\n  return typesVersions;\n}\nfunction readPackageJsonTypesVersionPaths(jsonContent, state) {\n  const typesVersions = readPackageJsonTypesVersionsField(jsonContent, state);\n  if (typesVersions === void 0) return;\n  if (state.traceEnabled) {\n    for (const key in typesVersions) {\n      if (hasProperty(typesVersions, key) && !VersionRange.tryParse(key)) {\n        trace(state.host, Diagnostics.package_json_has_a_typesVersions_entry_0_that_is_not_a_valid_semver_range, key);\n      }\n    }\n  }\n  const result = getPackageJsonTypesVersionsPaths(typesVersions);\n  if (!result) {\n    if (state.traceEnabled) {\n      trace(state.host, Diagnostics.package_json_does_not_have_a_typesVersions_entry_that_matches_version_0, versionMajorMinor);\n    }\n    return;\n  }\n  const { version: bestVersionKey, paths: bestVersionPaths } = result;\n  if (typeof bestVersionPaths !== \"object\") {\n    if (state.traceEnabled) {\n      trace(state.host, Diagnostics.Expected_type_of_0_field_in_package_json_to_be_1_got_2, `typesVersions['${bestVersionKey}']`, \"object\", typeof bestVersionPaths);\n    }\n    return;\n  }\n  return result;\n}\nvar typeScriptVersion;\nfunction getPackageJsonTypesVersionsPaths(typesVersions) {\n  if (!typeScriptVersion) typeScriptVersion = new Version(version);\n  for (const key in typesVersions) {\n    if (!hasProperty(typesVersions, key)) continue;\n    const keyRange = VersionRange.tryParse(key);\n    if (keyRange === void 0) {\n      continue;\n    }\n    if (keyRange.test(typeScriptVersion)) {\n      return { version: key, paths: typesVersions[key] };\n    }\n  }\n}\nfunction getEffectiveTypeRoots(options, host) {\n  if (options.typeRoots) {\n    return options.typeRoots;\n  }\n  let currentDirectory;\n  if (options.configFilePath) {\n    currentDirectory = getDirectoryPath(options.configFilePath);\n  } else if (host.getCurrentDirectory) {\n    currentDirectory = host.getCurrentDirectory();\n  }\n  if (currentDirectory !== void 0) {\n    return getDefaultTypeRoots(currentDirectory);\n  }\n}\nfunction getDefaultTypeRoots(currentDirectory) {\n  let typeRoots;\n  forEachAncestorDirectory(normalizePath(currentDirectory), (directory) => {\n    const atTypes = combinePaths(directory, nodeModulesAtTypes);\n    (typeRoots ?? (typeRoots = [])).push(atTypes);\n  });\n  return typeRoots;\n}\nvar nodeModulesAtTypes = combinePaths(\"node_modules\", \"@types\");\nfunction arePathsEqual(path1, path2, host) {\n  const useCaseSensitiveFileNames2 = typeof host.useCaseSensitiveFileNames === \"function\" ? host.useCaseSensitiveFileNames() : host.useCaseSensitiveFileNames;\n  return comparePaths(path1, path2, !useCaseSensitiveFileNames2) === 0 /* EqualTo */;\n}\nfunction getOriginalAndResolvedFileName(fileName, host, traceEnabled) {\n  const resolvedFileName = realPath(fileName, host, traceEnabled);\n  const pathsAreEqual = arePathsEqual(fileName, resolvedFileName, host);\n  return {\n    // If the fileName and realpath are differing only in casing prefer fileName so that we can issue correct errors for casing under forceConsistentCasingInFileNames\n    resolvedFileName: pathsAreEqual ? fileName : resolvedFileName,\n    originalPath: pathsAreEqual ? void 0 : fileName\n  };\n}\nfunction getCandidateFromTypeRoot(typeRoot, typeReferenceDirectiveName, moduleResolutionState) {\n  const nameForLookup = endsWith(typeRoot, \"/node_modules/@types\") || endsWith(typeRoot, \"/node_modules/@types/\") ? mangleScopedPackageNameWithTrace(typeReferenceDirectiveName, moduleResolutionState) : typeReferenceDirectiveName;\n  return combinePaths(typeRoot, nameForLookup);\n}\nfunction resolveTypeReferenceDirective(typeReferenceDirectiveName, containingFile, options, host, redirectedReference, cache, resolutionMode) {\n  Debug.assert(typeof typeReferenceDirectiveName === \"string\", \"Non-string value passed to `ts.resolveTypeReferenceDirective`, likely by a wrapping package working with an outdated `resolveTypeReferenceDirectives` signature. This is probably not a problem in TS itself.\");\n  const traceEnabled = isTraceEnabled(options, host);\n  if (redirectedReference) {\n    options = redirectedReference.commandLine.options;\n  }\n  const containingDirectory = containingFile ? getDirectoryPath(containingFile) : void 0;\n  let result = containingDirectory ? cache == null ? void 0 : cache.getFromDirectoryCache(typeReferenceDirectiveName, resolutionMode, containingDirectory, redirectedReference) : void 0;\n  if (!result && containingDirectory && !isExternalModuleNameRelative(typeReferenceDirectiveName)) {\n    result = cache == null ? void 0 : cache.getFromNonRelativeNameCache(typeReferenceDirectiveName, resolutionMode, containingDirectory, redirectedReference);\n  }\n  if (result) {\n    if (traceEnabled) {\n      trace(host, Diagnostics.Resolving_type_reference_directive_0_containing_file_1, typeReferenceDirectiveName, containingFile);\n      if (redirectedReference) trace(host, Diagnostics.Using_compiler_options_of_project_reference_redirect_0, redirectedReference.sourceFile.fileName);\n      trace(host, Diagnostics.Resolution_for_type_reference_directive_0_was_found_in_cache_from_location_1, typeReferenceDirectiveName, containingDirectory);\n      traceResult(result);\n    }\n    return result;\n  }\n  const typeRoots = getEffectiveTypeRoots(options, host);\n  if (traceEnabled) {\n    if (containingFile === void 0) {\n      if (typeRoots === void 0) {\n        trace(host, Diagnostics.Resolving_type_reference_directive_0_containing_file_not_set_root_directory_not_set, typeReferenceDirectiveName);\n      } else {\n        trace(host, Diagnostics.Resolving_type_reference_directive_0_containing_file_not_set_root_directory_1, typeReferenceDirectiveName, typeRoots);\n      }\n    } else {\n      if (typeRoots === void 0) {\n        trace(host, Diagnostics.Resolving_type_reference_directive_0_containing_file_1_root_directory_not_set, typeReferenceDirectiveName, containingFile);\n      } else {\n        trace(host, Diagnostics.Resolving_type_reference_directive_0_containing_file_1_root_directory_2, typeReferenceDirectiveName, containingFile, typeRoots);\n      }\n    }\n    if (redirectedReference) {\n      trace(host, Diagnostics.Using_compiler_options_of_project_reference_redirect_0, redirectedReference.sourceFile.fileName);\n    }\n  }\n  const failedLookupLocations = [];\n  const affectingLocations = [];\n  let features = getNodeResolutionFeatures(options);\n  if (resolutionMode !== void 0) {\n    features |= 30 /* AllFeatures */;\n  }\n  const moduleResolution = getEmitModuleResolutionKind(options);\n  if (resolutionMode === 99 /* ESNext */ && (3 /* Node16 */ <= moduleResolution && moduleResolution <= 99 /* NodeNext */)) {\n    features |= 32 /* EsmMode */;\n  }\n  const conditions = features & 8 /* Exports */ ? getConditions(options, resolutionMode) : [];\n  const diagnostics = [];\n  const moduleResolutionState = {\n    compilerOptions: options,\n    host,\n    traceEnabled,\n    failedLookupLocations,\n    affectingLocations,\n    packageJsonInfoCache: cache,\n    features,\n    conditions,\n    requestContainingDirectory: containingDirectory,\n    reportDiagnostic: (diag2) => void diagnostics.push(diag2),\n    isConfigLookup: false,\n    candidateIsFromPackageJsonField: false,\n    resolvedPackageDirectory: false\n  };\n  let resolved = primaryLookup();\n  let primary = true;\n  if (!resolved) {\n    resolved = secondaryLookup();\n    primary = false;\n  }\n  let resolvedTypeReferenceDirective;\n  if (resolved) {\n    const { fileName, packageId } = resolved;\n    let resolvedFileName = fileName, originalPath;\n    if (!options.preserveSymlinks) ({ resolvedFileName, originalPath } = getOriginalAndResolvedFileName(fileName, host, traceEnabled));\n    resolvedTypeReferenceDirective = {\n      primary,\n      resolvedFileName,\n      originalPath,\n      packageId,\n      isExternalLibraryImport: pathContainsNodeModules(fileName)\n    };\n  }\n  result = {\n    resolvedTypeReferenceDirective,\n    failedLookupLocations: initializeResolutionField(failedLookupLocations),\n    affectingLocations: initializeResolutionField(affectingLocations),\n    resolutionDiagnostics: initializeResolutionField(diagnostics)\n  };\n  if (containingDirectory && cache && !cache.isReadonly) {\n    cache.getOrCreateCacheForDirectory(containingDirectory, redirectedReference).set(\n      typeReferenceDirectiveName,\n      /*mode*/\n      resolutionMode,\n      result\n    );\n    if (!isExternalModuleNameRelative(typeReferenceDirectiveName)) {\n      cache.getOrCreateCacheForNonRelativeName(typeReferenceDirectiveName, resolutionMode, redirectedReference).set(containingDirectory, result);\n    }\n  }\n  if (traceEnabled) traceResult(result);\n  return result;\n  function traceResult(result2) {\n    var _a;\n    if (!((_a = result2.resolvedTypeReferenceDirective) == null ? void 0 : _a.resolvedFileName)) {\n      trace(host, Diagnostics.Type_reference_directive_0_was_not_resolved, typeReferenceDirectiveName);\n    } else if (result2.resolvedTypeReferenceDirective.packageId) {\n      trace(host, Diagnostics.Type_reference_directive_0_was_successfully_resolved_to_1_with_Package_ID_2_primary_Colon_3, typeReferenceDirectiveName, result2.resolvedTypeReferenceDirective.resolvedFileName, packageIdToString(result2.resolvedTypeReferenceDirective.packageId), result2.resolvedTypeReferenceDirective.primary);\n    } else {\n      trace(host, Diagnostics.Type_reference_directive_0_was_successfully_resolved_to_1_primary_Colon_2, typeReferenceDirectiveName, result2.resolvedTypeReferenceDirective.resolvedFileName, result2.resolvedTypeReferenceDirective.primary);\n    }\n  }\n  function primaryLookup() {\n    if (typeRoots && typeRoots.length) {\n      if (traceEnabled) {\n        trace(host, Diagnostics.Resolving_with_primary_search_path_0, typeRoots.join(\", \"));\n      }\n      return firstDefined(typeRoots, (typeRoot) => {\n        const candidate = getCandidateFromTypeRoot(typeRoot, typeReferenceDirectiveName, moduleResolutionState);\n        const directoryExists = directoryProbablyExists(typeRoot, host);\n        if (!directoryExists && traceEnabled) {\n          trace(host, Diagnostics.Directory_0_does_not_exist_skipping_all_lookups_in_it, typeRoot);\n        }\n        if (options.typeRoots) {\n          const resolvedFromFile = loadModuleFromFile(4 /* Declaration */, candidate, !directoryExists, moduleResolutionState);\n          if (resolvedFromFile) {\n            const packageDirectory = parseNodeModuleFromPath(resolvedFromFile.path);\n            const packageInfo = packageDirectory ? getPackageJsonInfo(\n              packageDirectory,\n              /*onlyRecordFailures*/\n              false,\n              moduleResolutionState\n            ) : void 0;\n            return resolvedTypeScriptOnly(withPackageId(packageInfo, resolvedFromFile, moduleResolutionState));\n          }\n        }\n        return resolvedTypeScriptOnly(\n          loadNodeModuleFromDirectory(4 /* Declaration */, candidate, !directoryExists, moduleResolutionState)\n        );\n      });\n    } else {\n      if (traceEnabled) {\n        trace(host, Diagnostics.Root_directory_cannot_be_determined_skipping_primary_search_paths);\n      }\n    }\n  }\n  function secondaryLookup() {\n    const initialLocationForSecondaryLookup = containingFile && getDirectoryPath(containingFile);\n    if (initialLocationForSecondaryLookup !== void 0) {\n      let result2;\n      if (!options.typeRoots || !endsWith(containingFile, inferredTypesContainingFile)) {\n        if (traceEnabled) {\n          trace(host, Diagnostics.Looking_up_in_node_modules_folder_initial_location_0, initialLocationForSecondaryLookup);\n        }\n        if (!isExternalModuleNameRelative(typeReferenceDirectiveName)) {\n          const searchResult = loadModuleFromNearestNodeModulesDirectory(\n            4 /* Declaration */,\n            typeReferenceDirectiveName,\n            initialLocationForSecondaryLookup,\n            moduleResolutionState,\n            /*cache*/\n            void 0,\n            /*redirectedReference*/\n            void 0\n          );\n          result2 = searchResult && searchResult.value;\n        } else {\n          const { path: candidate } = normalizePathForCJSResolution(initialLocationForSecondaryLookup, typeReferenceDirectiveName);\n          result2 = nodeLoadModuleByRelativeName(\n            4 /* Declaration */,\n            candidate,\n            /*onlyRecordFailures*/\n            false,\n            moduleResolutionState,\n            /*considerPackageJson*/\n            true\n          );\n        }\n      } else if (traceEnabled) {\n        trace(host, Diagnostics.Resolving_type_reference_directive_for_program_that_specifies_custom_typeRoots_skipping_lookup_in_node_modules_folder);\n      }\n      return resolvedTypeScriptOnly(result2);\n    } else {\n      if (traceEnabled) {\n        trace(host, Diagnostics.Containing_file_is_not_specified_and_root_directory_cannot_be_determined_skipping_lookup_in_node_modules_folder);\n      }\n    }\n  }\n}\nfunction getNodeResolutionFeatures(options) {\n  let features = 0 /* None */;\n  switch (getEmitModuleResolutionKind(options)) {\n    case 3 /* Node16 */:\n      features = 30 /* Node16Default */;\n      break;\n    case 99 /* NodeNext */:\n      features = 30 /* NodeNextDefault */;\n      break;\n    case 100 /* Bundler */:\n      features = 30 /* BundlerDefault */;\n      break;\n  }\n  if (options.resolvePackageJsonExports) {\n    features |= 8 /* Exports */;\n  } else if (options.resolvePackageJsonExports === false) {\n    features &= ~8 /* Exports */;\n  }\n  if (options.resolvePackageJsonImports) {\n    features |= 2 /* Imports */;\n  } else if (options.resolvePackageJsonImports === false) {\n    features &= ~2 /* Imports */;\n  }\n  return features;\n}\nfunction getConditions(options, resolutionMode) {\n  const moduleResolution = getEmitModuleResolutionKind(options);\n  if (resolutionMode === void 0) {\n    if (moduleResolution === 100 /* Bundler */) {\n      resolutionMode = 99 /* ESNext */;\n    } else if (moduleResolution === 2 /* Node10 */) {\n      return [];\n    }\n  }\n  const conditions = resolutionMode === 99 /* ESNext */ ? [\"import\"] : [\"require\"];\n  if (!options.noDtsResolution) {\n    conditions.push(\"types\");\n  }\n  if (moduleResolution !== 100 /* Bundler */) {\n    conditions.push(\"node\");\n  }\n  return concatenate(conditions, options.customConditions);\n}\nfunction resolvePackageNameToPackageJson(packageName, containingDirectory, options, host, cache) {\n  const moduleResolutionState = getTemporaryModuleResolutionState(cache == null ? void 0 : cache.getPackageJsonInfoCache(), host, options);\n  return forEachAncestorDirectoryStoppingAtGlobalCache(host, containingDirectory, (ancestorDirectory) => {\n    if (getBaseFileName(ancestorDirectory) !== \"node_modules\") {\n      const nodeModulesFolder = combinePaths(ancestorDirectory, \"node_modules\");\n      const candidate = combinePaths(nodeModulesFolder, packageName);\n      return getPackageJsonInfo(\n        candidate,\n        /*onlyRecordFailures*/\n        false,\n        moduleResolutionState\n      );\n    }\n  });\n}\nfunction getAutomaticTypeDirectiveNames(options, host) {\n  if (options.types) {\n    return options.types;\n  }\n  const result = [];\n  if (host.directoryExists && host.getDirectories) {\n    const typeRoots = getEffectiveTypeRoots(options, host);\n    if (typeRoots) {\n      for (const root of typeRoots) {\n        if (host.directoryExists(root)) {\n          for (const typeDirectivePath of host.getDirectories(root)) {\n            const normalized = normalizePath(typeDirectivePath);\n            const packageJsonPath = combinePaths(root, normalized, \"package.json\");\n            const isNotNeededPackage = host.fileExists(packageJsonPath) && readJson(packageJsonPath, host).typings === null;\n            if (!isNotNeededPackage) {\n              const baseFileName = getBaseFileName(normalized);\n              if (baseFileName.charCodeAt(0) !== 46 /* dot */) {\n                result.push(baseFileName);\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n  return result;\n}\nfunction isPackageJsonInfo(entry) {\n  return !!(entry == null ? void 0 : entry.contents);\n}\nfunction isMissingPackageJsonInfo(entry) {\n  return !!entry && !entry.contents;\n}\nfunction compilerOptionValueToString(value) {\n  var _a;\n  if (value === null || typeof value !== \"object\") {\n    return \"\" + value;\n  }\n  if (isArray(value)) {\n    return `[${(_a = value.map((e) => compilerOptionValueToString(e))) == null ? void 0 : _a.join(\",\")}]`;\n  }\n  let str = \"{\";\n  for (const key in value) {\n    if (hasProperty(value, key)) {\n      str += `${key}: ${compilerOptionValueToString(value[key])}`;\n    }\n  }\n  return str + \"}\";\n}\nfunction getKeyForCompilerOptions(options, affectingOptionDeclarations) {\n  return affectingOptionDeclarations.map((option) => compilerOptionValueToString(getCompilerOptionValue(options, option))).join(\"|\") + `|${options.pathsBasePath}`;\n}\nfunction createCacheWithRedirects(ownOptions, optionsToRedirectsKey) {\n  const redirectsMap = /* @__PURE__ */ new Map();\n  const redirectsKeyToMap = /* @__PURE__ */ new Map();\n  let ownMap = /* @__PURE__ */ new Map();\n  if (ownOptions) redirectsMap.set(ownOptions, ownMap);\n  return {\n    getMapOfCacheRedirects,\n    getOrCreateMapOfCacheRedirects,\n    update,\n    clear: clear2,\n    getOwnMap: () => ownMap\n  };\n  function getMapOfCacheRedirects(redirectedReference) {\n    return redirectedReference ? getOrCreateMap(\n      redirectedReference.commandLine.options,\n      /*create*/\n      false\n    ) : ownMap;\n  }\n  function getOrCreateMapOfCacheRedirects(redirectedReference) {\n    return redirectedReference ? getOrCreateMap(\n      redirectedReference.commandLine.options,\n      /*create*/\n      true\n    ) : ownMap;\n  }\n  function update(newOptions) {\n    if (ownOptions !== newOptions) {\n      if (ownOptions) ownMap = getOrCreateMap(\n        newOptions,\n        /*create*/\n        true\n      );\n      else redirectsMap.set(newOptions, ownMap);\n      ownOptions = newOptions;\n    }\n  }\n  function getOrCreateMap(redirectOptions, create) {\n    let result = redirectsMap.get(redirectOptions);\n    if (result) return result;\n    const key = getRedirectsCacheKey(redirectOptions);\n    result = redirectsKeyToMap.get(key);\n    if (!result) {\n      if (ownOptions) {\n        const ownKey = getRedirectsCacheKey(ownOptions);\n        if (ownKey === key) result = ownMap;\n        else if (!redirectsKeyToMap.has(ownKey)) redirectsKeyToMap.set(ownKey, ownMap);\n      }\n      if (create) result ?? (result = /* @__PURE__ */ new Map());\n      if (result) redirectsKeyToMap.set(key, result);\n    }\n    if (result) redirectsMap.set(redirectOptions, result);\n    return result;\n  }\n  function clear2() {\n    const ownKey = ownOptions && optionsToRedirectsKey.get(ownOptions);\n    ownMap.clear();\n    redirectsMap.clear();\n    optionsToRedirectsKey.clear();\n    redirectsKeyToMap.clear();\n    if (ownOptions) {\n      if (ownKey) optionsToRedirectsKey.set(ownOptions, ownKey);\n      redirectsMap.set(ownOptions, ownMap);\n    }\n  }\n  function getRedirectsCacheKey(options) {\n    let result = optionsToRedirectsKey.get(options);\n    if (!result) {\n      optionsToRedirectsKey.set(options, result = getKeyForCompilerOptions(options, moduleResolutionOptionDeclarations));\n    }\n    return result;\n  }\n}\nfunction createPackageJsonInfoCache(currentDirectory, getCanonicalFileName) {\n  let cache;\n  return { getPackageJsonInfo: getPackageJsonInfo2, setPackageJsonInfo, clear: clear2, getInternalMap };\n  function getPackageJsonInfo2(packageJsonPath) {\n    return cache == null ? void 0 : cache.get(toPath(packageJsonPath, currentDirectory, getCanonicalFileName));\n  }\n  function setPackageJsonInfo(packageJsonPath, info) {\n    (cache || (cache = /* @__PURE__ */ new Map())).set(toPath(packageJsonPath, currentDirectory, getCanonicalFileName), info);\n  }\n  function clear2() {\n    cache = void 0;\n  }\n  function getInternalMap() {\n    return cache;\n  }\n}\nfunction getOrCreateCache(cacheWithRedirects, redirectedReference, key, create) {\n  const cache = cacheWithRedirects.getOrCreateMapOfCacheRedirects(redirectedReference);\n  let result = cache.get(key);\n  if (!result) {\n    result = create();\n    cache.set(key, result);\n  }\n  return result;\n}\nfunction createPerDirectoryResolutionCache(currentDirectory, getCanonicalFileName, options, optionsToRedirectsKey) {\n  const directoryToModuleNameMap = createCacheWithRedirects(options, optionsToRedirectsKey);\n  return {\n    getFromDirectoryCache,\n    getOrCreateCacheForDirectory,\n    clear: clear2,\n    update,\n    directoryToModuleNameMap\n  };\n  function clear2() {\n    directoryToModuleNameMap.clear();\n  }\n  function update(options2) {\n    directoryToModuleNameMap.update(options2);\n  }\n  function getOrCreateCacheForDirectory(directoryName, redirectedReference) {\n    const path = toPath(directoryName, currentDirectory, getCanonicalFileName);\n    return getOrCreateCache(directoryToModuleNameMap, redirectedReference, path, () => createModeAwareCache());\n  }\n  function getFromDirectoryCache(name, mode, directoryName, redirectedReference) {\n    var _a, _b;\n    const path = toPath(directoryName, currentDirectory, getCanonicalFileName);\n    return (_b = (_a = directoryToModuleNameMap.getMapOfCacheRedirects(redirectedReference)) == null ? void 0 : _a.get(path)) == null ? void 0 : _b.get(name, mode);\n  }\n}\nfunction createModeAwareCacheKey(specifier, mode) {\n  return mode === void 0 ? specifier : `${mode}|${specifier}`;\n}\nfunction createModeAwareCache() {\n  const underlying = /* @__PURE__ */ new Map();\n  const memoizedReverseKeys = /* @__PURE__ */ new Map();\n  const cache = {\n    get(specifier, mode) {\n      return underlying.get(getUnderlyingCacheKey(specifier, mode));\n    },\n    set(specifier, mode, value) {\n      underlying.set(getUnderlyingCacheKey(specifier, mode), value);\n      return cache;\n    },\n    delete(specifier, mode) {\n      underlying.delete(getUnderlyingCacheKey(specifier, mode));\n      return cache;\n    },\n    has(specifier, mode) {\n      return underlying.has(getUnderlyingCacheKey(specifier, mode));\n    },\n    forEach(cb) {\n      return underlying.forEach((elem, key) => {\n        const [specifier, mode] = memoizedReverseKeys.get(key);\n        return cb(elem, specifier, mode);\n      });\n    },\n    size() {\n      return underlying.size;\n    }\n  };\n  return cache;\n  function getUnderlyingCacheKey(specifier, mode) {\n    const result = createModeAwareCacheKey(specifier, mode);\n    memoizedReverseKeys.set(result, [specifier, mode]);\n    return result;\n  }\n}\nfunction getOriginalOrResolvedModuleFileName(result) {\n  return result.resolvedModule && (result.resolvedModule.originalPath || result.resolvedModule.resolvedFileName);\n}\nfunction getOriginalOrResolvedTypeReferenceFileName(result) {\n  return result.resolvedTypeReferenceDirective && (result.resolvedTypeReferenceDirective.originalPath || result.resolvedTypeReferenceDirective.resolvedFileName);\n}\nfunction createNonRelativeNameResolutionCache(currentDirectory, getCanonicalFileName, options, getResolvedFileName, optionsToRedirectsKey) {\n  const moduleNameToDirectoryMap = createCacheWithRedirects(options, optionsToRedirectsKey);\n  return {\n    getFromNonRelativeNameCache,\n    getOrCreateCacheForNonRelativeName,\n    clear: clear2,\n    update\n  };\n  function clear2() {\n    moduleNameToDirectoryMap.clear();\n  }\n  function update(options2) {\n    moduleNameToDirectoryMap.update(options2);\n  }\n  function getFromNonRelativeNameCache(nonRelativeModuleName, mode, directoryName, redirectedReference) {\n    var _a, _b;\n    Debug.assert(!isExternalModuleNameRelative(nonRelativeModuleName));\n    return (_b = (_a = moduleNameToDirectoryMap.getMapOfCacheRedirects(redirectedReference)) == null ? void 0 : _a.get(createModeAwareCacheKey(nonRelativeModuleName, mode))) == null ? void 0 : _b.get(directoryName);\n  }\n  function getOrCreateCacheForNonRelativeName(nonRelativeModuleName, mode, redirectedReference) {\n    Debug.assert(!isExternalModuleNameRelative(nonRelativeModuleName));\n    return getOrCreateCache(moduleNameToDirectoryMap, redirectedReference, createModeAwareCacheKey(nonRelativeModuleName, mode), createPerModuleNameCache);\n  }\n  function createPerModuleNameCache() {\n    const directoryPathMap = /* @__PURE__ */ new Map();\n    return { get, set };\n    function get(directory) {\n      return directoryPathMap.get(toPath(directory, currentDirectory, getCanonicalFileName));\n    }\n    function set(directory, result) {\n      const path = toPath(directory, currentDirectory, getCanonicalFileName);\n      if (directoryPathMap.has(path)) {\n        return;\n      }\n      directoryPathMap.set(path, result);\n      const resolvedFileName = getResolvedFileName(result);\n      const commonPrefix = resolvedFileName && getCommonPrefix(path, resolvedFileName);\n      let current = path;\n      while (current !== commonPrefix) {\n        const parent2 = getDirectoryPath(current);\n        if (parent2 === current || directoryPathMap.has(parent2)) {\n          break;\n        }\n        directoryPathMap.set(parent2, result);\n        current = parent2;\n      }\n    }\n    function getCommonPrefix(directory, resolution) {\n      const resolutionDirectory = toPath(getDirectoryPath(resolution), currentDirectory, getCanonicalFileName);\n      let i = 0;\n      const limit = Math.min(directory.length, resolutionDirectory.length);\n      while (i < limit && directory.charCodeAt(i) === resolutionDirectory.charCodeAt(i)) {\n        i++;\n      }\n      if (i === directory.length && (resolutionDirectory.length === i || resolutionDirectory[i] === directorySeparator)) {\n        return directory;\n      }\n      const rootLength = getRootLength(directory);\n      if (i < rootLength) {\n        return void 0;\n      }\n      const sep = directory.lastIndexOf(directorySeparator, i - 1);\n      if (sep === -1) {\n        return void 0;\n      }\n      return directory.substr(0, Math.max(sep, rootLength));\n    }\n  }\n}\nfunction createModuleOrTypeReferenceResolutionCache(currentDirectory, getCanonicalFileName, options, packageJsonInfoCache, getResolvedFileName, optionsToRedirectsKey) {\n  optionsToRedirectsKey ?? (optionsToRedirectsKey = /* @__PURE__ */ new Map());\n  const perDirectoryResolutionCache = createPerDirectoryResolutionCache(\n    currentDirectory,\n    getCanonicalFileName,\n    options,\n    optionsToRedirectsKey\n  );\n  const nonRelativeNameResolutionCache = createNonRelativeNameResolutionCache(\n    currentDirectory,\n    getCanonicalFileName,\n    options,\n    getResolvedFileName,\n    optionsToRedirectsKey\n  );\n  packageJsonInfoCache ?? (packageJsonInfoCache = createPackageJsonInfoCache(currentDirectory, getCanonicalFileName));\n  return {\n    ...packageJsonInfoCache,\n    ...perDirectoryResolutionCache,\n    ...nonRelativeNameResolutionCache,\n    clear: clear2,\n    update,\n    getPackageJsonInfoCache: () => packageJsonInfoCache,\n    clearAllExceptPackageJsonInfoCache,\n    optionsToRedirectsKey\n  };\n  function clear2() {\n    clearAllExceptPackageJsonInfoCache();\n    packageJsonInfoCache.clear();\n  }\n  function clearAllExceptPackageJsonInfoCache() {\n    perDirectoryResolutionCache.clear();\n    nonRelativeNameResolutionCache.clear();\n  }\n  function update(options2) {\n    perDirectoryResolutionCache.update(options2);\n    nonRelativeNameResolutionCache.update(options2);\n  }\n}\nfunction createModuleResolutionCache(currentDirectory, getCanonicalFileName, options, packageJsonInfoCache, optionsToRedirectsKey) {\n  const result = createModuleOrTypeReferenceResolutionCache(\n    currentDirectory,\n    getCanonicalFileName,\n    options,\n    packageJsonInfoCache,\n    getOriginalOrResolvedModuleFileName,\n    optionsToRedirectsKey\n  );\n  result.getOrCreateCacheForModuleName = (nonRelativeName, mode, redirectedReference) => result.getOrCreateCacheForNonRelativeName(nonRelativeName, mode, redirectedReference);\n  return result;\n}\nfunction createTypeReferenceDirectiveResolutionCache(currentDirectory, getCanonicalFileName, options, packageJsonInfoCache, optionsToRedirectsKey) {\n  return createModuleOrTypeReferenceResolutionCache(\n    currentDirectory,\n    getCanonicalFileName,\n    options,\n    packageJsonInfoCache,\n    getOriginalOrResolvedTypeReferenceFileName,\n    optionsToRedirectsKey\n  );\n}\nfunction getOptionsForLibraryResolution(options) {\n  return { moduleResolution: 2 /* Node10 */, traceResolution: options.traceResolution };\n}\nfunction resolveLibrary(libraryName, resolveFrom, compilerOptions, host, cache) {\n  return resolveModuleName(libraryName, resolveFrom, getOptionsForLibraryResolution(compilerOptions), host, cache);\n}\nfunction resolveModuleNameFromCache(moduleName, containingFile, cache, mode) {\n  const containingDirectory = getDirectoryPath(containingFile);\n  return cache.getFromDirectoryCache(\n    moduleName,\n    mode,\n    containingDirectory,\n    /*redirectedReference*/\n    void 0\n  );\n}\nfunction resolveModuleName(moduleName, containingFile, compilerOptions, host, cache, redirectedReference, resolutionMode) {\n  const traceEnabled = isTraceEnabled(compilerOptions, host);\n  if (redirectedReference) {\n    compilerOptions = redirectedReference.commandLine.options;\n  }\n  if (traceEnabled) {\n    trace(host, Diagnostics.Resolving_module_0_from_1, moduleName, containingFile);\n    if (redirectedReference) {\n      trace(host, Diagnostics.Using_compiler_options_of_project_reference_redirect_0, redirectedReference.sourceFile.fileName);\n    }\n  }\n  const containingDirectory = getDirectoryPath(containingFile);\n  let result = cache == null ? void 0 : cache.getFromDirectoryCache(moduleName, resolutionMode, containingDirectory, redirectedReference);\n  if (result) {\n    if (traceEnabled) {\n      trace(host, Diagnostics.Resolution_for_module_0_was_found_in_cache_from_location_1, moduleName, containingDirectory);\n    }\n  } else {\n    let moduleResolution = compilerOptions.moduleResolution;\n    if (moduleResolution === void 0) {\n      moduleResolution = getEmitModuleResolutionKind(compilerOptions);\n      if (traceEnabled) {\n        trace(host, Diagnostics.Module_resolution_kind_is_not_specified_using_0, ModuleResolutionKind[moduleResolution]);\n      }\n    } else {\n      if (traceEnabled) {\n        trace(host, Diagnostics.Explicitly_specified_module_resolution_kind_Colon_0, ModuleResolutionKind[moduleResolution]);\n      }\n    }\n    switch (moduleResolution) {\n      case 3 /* Node16 */:\n        result = node16ModuleNameResolver(moduleName, containingFile, compilerOptions, host, cache, redirectedReference, resolutionMode);\n        break;\n      case 99 /* NodeNext */:\n        result = nodeNextModuleNameResolver(moduleName, containingFile, compilerOptions, host, cache, redirectedReference, resolutionMode);\n        break;\n      case 2 /* Node10 */:\n        result = nodeModuleNameResolver(moduleName, containingFile, compilerOptions, host, cache, redirectedReference, resolutionMode ? getConditions(compilerOptions, resolutionMode) : void 0);\n        break;\n      case 1 /* Classic */:\n        result = classicNameResolver(moduleName, containingFile, compilerOptions, host, cache, redirectedReference);\n        break;\n      case 100 /* Bundler */:\n        result = bundlerModuleNameResolver(moduleName, containingFile, compilerOptions, host, cache, redirectedReference, resolutionMode ? getConditions(compilerOptions, resolutionMode) : void 0);\n        break;\n      default:\n        return Debug.fail(`Unexpected moduleResolution: ${moduleResolution}`);\n    }\n    if (cache && !cache.isReadonly) {\n      cache.getOrCreateCacheForDirectory(containingDirectory, redirectedReference).set(moduleName, resolutionMode, result);\n      if (!isExternalModuleNameRelative(moduleName)) {\n        cache.getOrCreateCacheForNonRelativeName(moduleName, resolutionMode, redirectedReference).set(containingDirectory, result);\n      }\n    }\n  }\n  if (traceEnabled) {\n    if (result.resolvedModule) {\n      if (result.resolvedModule.packageId) {\n        trace(host, Diagnostics.Module_name_0_was_successfully_resolved_to_1_with_Package_ID_2, moduleName, result.resolvedModule.resolvedFileName, packageIdToString(result.resolvedModule.packageId));\n      } else {\n        trace(host, Diagnostics.Module_name_0_was_successfully_resolved_to_1, moduleName, result.resolvedModule.resolvedFileName);\n      }\n    } else {\n      trace(host, Diagnostics.Module_name_0_was_not_resolved, moduleName);\n    }\n  }\n  return result;\n}\nfunction tryLoadModuleUsingOptionalResolutionSettings(extensions, moduleName, containingDirectory, loader, state) {\n  const resolved = tryLoadModuleUsingPathsIfEligible(extensions, moduleName, loader, state);\n  if (resolved) return resolved.value;\n  if (!isExternalModuleNameRelative(moduleName)) {\n    return tryLoadModuleUsingBaseUrl(extensions, moduleName, loader, state);\n  } else {\n    return tryLoadModuleUsingRootDirs(extensions, moduleName, containingDirectory, loader, state);\n  }\n}\nfunction tryLoadModuleUsingPathsIfEligible(extensions, moduleName, loader, state) {\n  const { baseUrl, paths } = state.compilerOptions;\n  if (paths && !pathIsRelative(moduleName)) {\n    if (state.traceEnabled) {\n      if (baseUrl) {\n        trace(state.host, Diagnostics.baseUrl_option_is_set_to_0_using_this_value_to_resolve_non_relative_module_name_1, baseUrl, moduleName);\n      }\n      trace(state.host, Diagnostics.paths_option_is_specified_looking_for_a_pattern_to_match_module_name_0, moduleName);\n    }\n    const baseDirectory = getPathsBasePath(state.compilerOptions, state.host);\n    const pathPatterns = tryParsePatterns(paths);\n    return tryLoadModuleUsingPaths(\n      extensions,\n      moduleName,\n      baseDirectory,\n      paths,\n      pathPatterns,\n      loader,\n      /*onlyRecordFailures*/\n      false,\n      state\n    );\n  }\n}\nfunction tryLoadModuleUsingRootDirs(extensions, moduleName, containingDirectory, loader, state) {\n  if (!state.compilerOptions.rootDirs) {\n    return void 0;\n  }\n  if (state.traceEnabled) {\n    trace(state.host, Diagnostics.rootDirs_option_is_set_using_it_to_resolve_relative_module_name_0, moduleName);\n  }\n  const candidate = normalizePath(combinePaths(containingDirectory, moduleName));\n  let matchedRootDir;\n  let matchedNormalizedPrefix;\n  for (const rootDir of state.compilerOptions.rootDirs) {\n    let normalizedRoot = normalizePath(rootDir);\n    if (!endsWith(normalizedRoot, directorySeparator)) {\n      normalizedRoot += directorySeparator;\n    }\n    const isLongestMatchingPrefix = startsWith(candidate, normalizedRoot) && (matchedNormalizedPrefix === void 0 || matchedNormalizedPrefix.length < normalizedRoot.length);\n    if (state.traceEnabled) {\n      trace(state.host, Diagnostics.Checking_if_0_is_the_longest_matching_prefix_for_1_2, normalizedRoot, candidate, isLongestMatchingPrefix);\n    }\n    if (isLongestMatchingPrefix) {\n      matchedNormalizedPrefix = normalizedRoot;\n      matchedRootDir = rootDir;\n    }\n  }\n  if (matchedNormalizedPrefix) {\n    if (state.traceEnabled) {\n      trace(state.host, Diagnostics.Longest_matching_prefix_for_0_is_1, candidate, matchedNormalizedPrefix);\n    }\n    const suffix = candidate.substr(matchedNormalizedPrefix.length);\n    if (state.traceEnabled) {\n      trace(state.host, Diagnostics.Loading_0_from_the_root_dir_1_candidate_location_2, suffix, matchedNormalizedPrefix, candidate);\n    }\n    const resolvedFileName = loader(extensions, candidate, !directoryProbablyExists(containingDirectory, state.host), state);\n    if (resolvedFileName) {\n      return resolvedFileName;\n    }\n    if (state.traceEnabled) {\n      trace(state.host, Diagnostics.Trying_other_entries_in_rootDirs);\n    }\n    for (const rootDir of state.compilerOptions.rootDirs) {\n      if (rootDir === matchedRootDir) {\n        continue;\n      }\n      const candidate2 = combinePaths(normalizePath(rootDir), suffix);\n      if (state.traceEnabled) {\n        trace(state.host, Diagnostics.Loading_0_from_the_root_dir_1_candidate_location_2, suffix, rootDir, candidate2);\n      }\n      const baseDirectory = getDirectoryPath(candidate2);\n      const resolvedFileName2 = loader(extensions, candidate2, !directoryProbablyExists(baseDirectory, state.host), state);\n      if (resolvedFileName2) {\n        return resolvedFileName2;\n      }\n    }\n    if (state.traceEnabled) {\n      trace(state.host, Diagnostics.Module_resolution_using_rootDirs_has_failed);\n    }\n  }\n  return void 0;\n}\nfunction tryLoadModuleUsingBaseUrl(extensions, moduleName, loader, state) {\n  const { baseUrl } = state.compilerOptions;\n  if (!baseUrl) {\n    return void 0;\n  }\n  if (state.traceEnabled) {\n    trace(state.host, Diagnostics.baseUrl_option_is_set_to_0_using_this_value_to_resolve_non_relative_module_name_1, baseUrl, moduleName);\n  }\n  const candidate = normalizePath(combinePaths(baseUrl, moduleName));\n  if (state.traceEnabled) {\n    trace(state.host, Diagnostics.Resolving_module_name_0_relative_to_base_url_1_2, moduleName, baseUrl, candidate);\n  }\n  return loader(extensions, candidate, !directoryProbablyExists(getDirectoryPath(candidate), state.host), state);\n}\nfunction resolveJSModule(moduleName, initialDir, host) {\n  const { resolvedModule, failedLookupLocations } = tryResolveJSModuleWorker(moduleName, initialDir, host);\n  if (!resolvedModule) {\n    throw new Error(`Could not resolve JS module '${moduleName}' starting at '${initialDir}'. Looked in: ${failedLookupLocations == null ? void 0 : failedLookupLocations.join(\", \")}`);\n  }\n  return resolvedModule.resolvedFileName;\n}\nvar NodeResolutionFeatures = /* @__PURE__ */ ((NodeResolutionFeatures2) => {\n  NodeResolutionFeatures2[NodeResolutionFeatures2[\"None\"] = 0] = \"None\";\n  NodeResolutionFeatures2[NodeResolutionFeatures2[\"Imports\"] = 2] = \"Imports\";\n  NodeResolutionFeatures2[NodeResolutionFeatures2[\"SelfName\"] = 4] = \"SelfName\";\n  NodeResolutionFeatures2[NodeResolutionFeatures2[\"Exports\"] = 8] = \"Exports\";\n  NodeResolutionFeatures2[NodeResolutionFeatures2[\"ExportsPatternTrailers\"] = 16] = \"ExportsPatternTrailers\";\n  NodeResolutionFeatures2[NodeResolutionFeatures2[\"AllFeatures\"] = 30] = \"AllFeatures\";\n  NodeResolutionFeatures2[NodeResolutionFeatures2[\"Node16Default\"] = 30] = \"Node16Default\";\n  NodeResolutionFeatures2[NodeResolutionFeatures2[\"NodeNextDefault\"] = 30 /* AllFeatures */] = \"NodeNextDefault\";\n  NodeResolutionFeatures2[NodeResolutionFeatures2[\"BundlerDefault\"] = 30] = \"BundlerDefault\";\n  NodeResolutionFeatures2[NodeResolutionFeatures2[\"EsmMode\"] = 32] = \"EsmMode\";\n  return NodeResolutionFeatures2;\n})(NodeResolutionFeatures || {});\nfunction node16ModuleNameResolver(moduleName, containingFile, compilerOptions, host, cache, redirectedReference, resolutionMode) {\n  return nodeNextModuleNameResolverWorker(\n    30 /* Node16Default */,\n    moduleName,\n    containingFile,\n    compilerOptions,\n    host,\n    cache,\n    redirectedReference,\n    resolutionMode\n  );\n}\nfunction nodeNextModuleNameResolver(moduleName, containingFile, compilerOptions, host, cache, redirectedReference, resolutionMode) {\n  return nodeNextModuleNameResolverWorker(\n    30 /* NodeNextDefault */,\n    moduleName,\n    containingFile,\n    compilerOptions,\n    host,\n    cache,\n    redirectedReference,\n    resolutionMode\n  );\n}\nfunction nodeNextModuleNameResolverWorker(features, moduleName, containingFile, compilerOptions, host, cache, redirectedReference, resolutionMode, conditions) {\n  const containingDirectory = getDirectoryPath(containingFile);\n  const esmMode = resolutionMode === 99 /* ESNext */ ? 32 /* EsmMode */ : 0;\n  let extensions = compilerOptions.noDtsResolution ? 3 /* ImplementationFiles */ : 1 /* TypeScript */ | 2 /* JavaScript */ | 4 /* Declaration */;\n  if (getResolveJsonModule(compilerOptions)) {\n    extensions |= 8 /* Json */;\n  }\n  return nodeModuleNameResolverWorker(\n    features | esmMode,\n    moduleName,\n    containingDirectory,\n    compilerOptions,\n    host,\n    cache,\n    extensions,\n    /*isConfigLookup*/\n    false,\n    redirectedReference,\n    conditions\n  );\n}\nfunction tryResolveJSModuleWorker(moduleName, initialDir, host) {\n  return nodeModuleNameResolverWorker(\n    0 /* None */,\n    moduleName,\n    initialDir,\n    { moduleResolution: 2 /* Node10 */, allowJs: true },\n    host,\n    /*cache*/\n    void 0,\n    2 /* JavaScript */,\n    /*isConfigLookup*/\n    false,\n    /*redirectedReference*/\n    void 0,\n    /*conditions*/\n    void 0\n  );\n}\nfunction bundlerModuleNameResolver(moduleName, containingFile, compilerOptions, host, cache, redirectedReference, conditions) {\n  const containingDirectory = getDirectoryPath(containingFile);\n  let extensions = compilerOptions.noDtsResolution ? 3 /* ImplementationFiles */ : 1 /* TypeScript */ | 2 /* JavaScript */ | 4 /* Declaration */;\n  if (getResolveJsonModule(compilerOptions)) {\n    extensions |= 8 /* Json */;\n  }\n  return nodeModuleNameResolverWorker(\n    getNodeResolutionFeatures(compilerOptions),\n    moduleName,\n    containingDirectory,\n    compilerOptions,\n    host,\n    cache,\n    extensions,\n    /*isConfigLookup*/\n    false,\n    redirectedReference,\n    conditions\n  );\n}\nfunction nodeModuleNameResolver(moduleName, containingFile, compilerOptions, host, cache, redirectedReference, conditions, isConfigLookup) {\n  let extensions;\n  if (isConfigLookup) {\n    extensions = 8 /* Json */;\n  } else if (compilerOptions.noDtsResolution) {\n    extensions = 3 /* ImplementationFiles */;\n    if (getResolveJsonModule(compilerOptions)) extensions |= 8 /* Json */;\n  } else {\n    extensions = getResolveJsonModule(compilerOptions) ? 1 /* TypeScript */ | 2 /* JavaScript */ | 4 /* Declaration */ | 8 /* Json */ : 1 /* TypeScript */ | 2 /* JavaScript */ | 4 /* Declaration */;\n  }\n  return nodeModuleNameResolverWorker(conditions ? 30 /* AllFeatures */ : 0 /* None */, moduleName, getDirectoryPath(containingFile), compilerOptions, host, cache, extensions, !!isConfigLookup, redirectedReference, conditions);\n}\nfunction nodeNextJsonConfigResolver(moduleName, containingFile, host) {\n  return nodeModuleNameResolverWorker(\n    30 /* NodeNextDefault */,\n    moduleName,\n    getDirectoryPath(containingFile),\n    { moduleResolution: 99 /* NodeNext */ },\n    host,\n    /*cache*/\n    void 0,\n    8 /* Json */,\n    /*isConfigLookup*/\n    true,\n    /*redirectedReference*/\n    void 0,\n    /*conditions*/\n    void 0\n  );\n}\nfunction nodeModuleNameResolverWorker(features, moduleName, containingDirectory, compilerOptions, host, cache, extensions, isConfigLookup, redirectedReference, conditions) {\n  var _a, _b, _c, _d, _e;\n  const traceEnabled = isTraceEnabled(compilerOptions, host);\n  const failedLookupLocations = [];\n  const affectingLocations = [];\n  const moduleResolution = getEmitModuleResolutionKind(compilerOptions);\n  conditions ?? (conditions = getConditions(\n    compilerOptions,\n    moduleResolution === 100 /* Bundler */ || moduleResolution === 2 /* Node10 */ ? void 0 : features & 32 /* EsmMode */ ? 99 /* ESNext */ : 1 /* CommonJS */\n  ));\n  const diagnostics = [];\n  const state = {\n    compilerOptions,\n    host,\n    traceEnabled,\n    failedLookupLocations,\n    affectingLocations,\n    packageJsonInfoCache: cache,\n    features,\n    conditions: conditions ?? emptyArray,\n    requestContainingDirectory: containingDirectory,\n    reportDiagnostic: (diag2) => void diagnostics.push(diag2),\n    isConfigLookup,\n    candidateIsFromPackageJsonField: false,\n    resolvedPackageDirectory: false\n  };\n  if (traceEnabled && moduleResolutionSupportsPackageJsonExportsAndImports(moduleResolution)) {\n    trace(host, Diagnostics.Resolving_in_0_mode_with_conditions_1, features & 32 /* EsmMode */ ? \"ESM\" : \"CJS\", state.conditions.map((c) => `'${c}'`).join(\", \"));\n  }\n  let result;\n  if (moduleResolution === 2 /* Node10 */) {\n    const priorityExtensions = extensions & (1 /* TypeScript */ | 4 /* Declaration */);\n    const secondaryExtensions = extensions & ~(1 /* TypeScript */ | 4 /* Declaration */);\n    result = priorityExtensions && tryResolve(priorityExtensions, state) || secondaryExtensions && tryResolve(secondaryExtensions, state) || void 0;\n  } else {\n    result = tryResolve(extensions, state);\n  }\n  let alternateResult;\n  if (state.resolvedPackageDirectory && !isConfigLookup && !isExternalModuleNameRelative(moduleName)) {\n    const wantedTypesButGotJs = (result == null ? void 0 : result.value) && extensions & (1 /* TypeScript */ | 4 /* Declaration */) && !extensionIsOk(1 /* TypeScript */ | 4 /* Declaration */, result.value.resolved.extension);\n    if (((_a = result == null ? void 0 : result.value) == null ? void 0 : _a.isExternalLibraryImport) && wantedTypesButGotJs && features & 8 /* Exports */ && (conditions == null ? void 0 : conditions.includes(\"import\"))) {\n      traceIfEnabled(state, Diagnostics.Resolution_of_non_relative_name_failed_trying_with_modern_Node_resolution_features_disabled_to_see_if_npm_library_needs_configuration_update);\n      const diagnosticState = {\n        ...state,\n        features: state.features & ~8 /* Exports */,\n        reportDiagnostic: noop\n      };\n      const diagnosticResult = tryResolve(extensions & (1 /* TypeScript */ | 4 /* Declaration */), diagnosticState);\n      if ((_b = diagnosticResult == null ? void 0 : diagnosticResult.value) == null ? void 0 : _b.isExternalLibraryImport) {\n        alternateResult = diagnosticResult.value.resolved.path;\n      }\n    } else if ((!(result == null ? void 0 : result.value) || wantedTypesButGotJs) && moduleResolution === 2 /* Node10 */) {\n      traceIfEnabled(state, Diagnostics.Resolution_of_non_relative_name_failed_trying_with_moduleResolution_bundler_to_see_if_project_may_need_configuration_update);\n      const diagnosticsCompilerOptions = { ...state.compilerOptions, moduleResolution: 100 /* Bundler */ };\n      const diagnosticState = {\n        ...state,\n        compilerOptions: diagnosticsCompilerOptions,\n        features: 30 /* BundlerDefault */,\n        conditions: getConditions(diagnosticsCompilerOptions),\n        reportDiagnostic: noop\n      };\n      const diagnosticResult = tryResolve(extensions & (1 /* TypeScript */ | 4 /* Declaration */), diagnosticState);\n      if ((_c = diagnosticResult == null ? void 0 : diagnosticResult.value) == null ? void 0 : _c.isExternalLibraryImport) {\n        alternateResult = diagnosticResult.value.resolved.path;\n      }\n    }\n  }\n  return createResolvedModuleWithFailedLookupLocationsHandlingSymlink(\n    moduleName,\n    (_d = result == null ? void 0 : result.value) == null ? void 0 : _d.resolved,\n    (_e = result == null ? void 0 : result.value) == null ? void 0 : _e.isExternalLibraryImport,\n    failedLookupLocations,\n    affectingLocations,\n    diagnostics,\n    state,\n    cache,\n    alternateResult\n  );\n  function tryResolve(extensions2, state2) {\n    const loader = (extensions3, candidate, onlyRecordFailures, state3) => nodeLoadModuleByRelativeName(\n      extensions3,\n      candidate,\n      onlyRecordFailures,\n      state3,\n      /*considerPackageJson*/\n      true\n    );\n    const resolved = tryLoadModuleUsingOptionalResolutionSettings(extensions2, moduleName, containingDirectory, loader, state2);\n    if (resolved) {\n      return toSearchResult({ resolved, isExternalLibraryImport: pathContainsNodeModules(resolved.path) });\n    }\n    if (!isExternalModuleNameRelative(moduleName)) {\n      if (features & 2 /* Imports */ && startsWith(moduleName, \"#\")) {\n        const resolved3 = loadModuleFromImports(extensions2, moduleName, containingDirectory, state2, cache, redirectedReference);\n        if (resolved3) {\n          return resolved3.value && { value: { resolved: resolved3.value, isExternalLibraryImport: false } };\n        }\n      }\n      if (features & 4 /* SelfName */) {\n        const resolved3 = loadModuleFromSelfNameReference(extensions2, moduleName, containingDirectory, state2, cache, redirectedReference);\n        if (resolved3) {\n          return resolved3.value && { value: { resolved: resolved3.value, isExternalLibraryImport: false } };\n        }\n      }\n      if (moduleName.includes(\":\")) {\n        if (traceEnabled) {\n          trace(host, Diagnostics.Skipping_module_0_that_looks_like_an_absolute_URI_target_file_types_Colon_1, moduleName, formatExtensions(extensions2));\n        }\n        return void 0;\n      }\n      if (traceEnabled) {\n        trace(host, Diagnostics.Loading_module_0_from_node_modules_folder_target_file_types_Colon_1, moduleName, formatExtensions(extensions2));\n      }\n      let resolved2 = loadModuleFromNearestNodeModulesDirectory(extensions2, moduleName, containingDirectory, state2, cache, redirectedReference);\n      if (extensions2 & 4 /* Declaration */) {\n        resolved2 ?? (resolved2 = resolveFromTypeRoot(moduleName, state2));\n      }\n      return resolved2 && { value: resolved2.value && { resolved: resolved2.value, isExternalLibraryImport: true } };\n    } else {\n      const { path: candidate, parts } = normalizePathForCJSResolution(containingDirectory, moduleName);\n      const resolved2 = nodeLoadModuleByRelativeName(\n        extensions2,\n        candidate,\n        /*onlyRecordFailures*/\n        false,\n        state2,\n        /*considerPackageJson*/\n        true\n      );\n      return resolved2 && toSearchResult({ resolved: resolved2, isExternalLibraryImport: contains(parts, \"node_modules\") });\n    }\n  }\n}\nfunction normalizePathForCJSResolution(containingDirectory, moduleName) {\n  const combined = combinePaths(containingDirectory, moduleName);\n  const parts = getPathComponents(combined);\n  const lastPart = lastOrUndefined(parts);\n  const path = lastPart === \".\" || lastPart === \"..\" ? ensureTrailingDirectorySeparator(normalizePath(combined)) : normalizePath(combined);\n  return { path, parts };\n}\nfunction realPath(path, host, traceEnabled) {\n  if (!host.realpath) {\n    return path;\n  }\n  const real = normalizePath(host.realpath(path));\n  if (traceEnabled) {\n    trace(host, Diagnostics.Resolving_real_path_for_0_result_1, path, real);\n  }\n  return real;\n}\nfunction nodeLoadModuleByRelativeName(extensions, candidate, onlyRecordFailures, state, considerPackageJson) {\n  if (state.traceEnabled) {\n    trace(state.host, Diagnostics.Loading_module_as_file_Slash_folder_candidate_module_location_0_target_file_types_Colon_1, candidate, formatExtensions(extensions));\n  }\n  if (!hasTrailingDirectorySeparator(candidate)) {\n    if (!onlyRecordFailures) {\n      const parentOfCandidate = getDirectoryPath(candidate);\n      if (!directoryProbablyExists(parentOfCandidate, state.host)) {\n        if (state.traceEnabled) {\n          trace(state.host, Diagnostics.Directory_0_does_not_exist_skipping_all_lookups_in_it, parentOfCandidate);\n        }\n        onlyRecordFailures = true;\n      }\n    }\n    const resolvedFromFile = loadModuleFromFile(extensions, candidate, onlyRecordFailures, state);\n    if (resolvedFromFile) {\n      const packageDirectory = considerPackageJson ? parseNodeModuleFromPath(resolvedFromFile.path) : void 0;\n      const packageInfo = packageDirectory ? getPackageJsonInfo(\n        packageDirectory,\n        /*onlyRecordFailures*/\n        false,\n        state\n      ) : void 0;\n      return withPackageId(packageInfo, resolvedFromFile, state);\n    }\n  }\n  if (!onlyRecordFailures) {\n    const candidateExists = directoryProbablyExists(candidate, state.host);\n    if (!candidateExists) {\n      if (state.traceEnabled) {\n        trace(state.host, Diagnostics.Directory_0_does_not_exist_skipping_all_lookups_in_it, candidate);\n      }\n      onlyRecordFailures = true;\n    }\n  }\n  if (!(state.features & 32 /* EsmMode */)) {\n    return loadNodeModuleFromDirectory(extensions, candidate, onlyRecordFailures, state, considerPackageJson);\n  }\n  return void 0;\n}\nvar nodeModulesPathPart = \"/node_modules/\";\nfunction pathContainsNodeModules(path) {\n  return path.includes(nodeModulesPathPart);\n}\nfunction parseNodeModuleFromPath(resolved, isFolder) {\n  const path = normalizePath(resolved);\n  const idx = path.lastIndexOf(nodeModulesPathPart);\n  if (idx === -1) {\n    return void 0;\n  }\n  const indexAfterNodeModules = idx + nodeModulesPathPart.length;\n  let indexAfterPackageName = moveToNextDirectorySeparatorIfAvailable(path, indexAfterNodeModules, isFolder);\n  if (path.charCodeAt(indexAfterNodeModules) === 64 /* at */) {\n    indexAfterPackageName = moveToNextDirectorySeparatorIfAvailable(path, indexAfterPackageName, isFolder);\n  }\n  return path.slice(0, indexAfterPackageName);\n}\nfunction moveToNextDirectorySeparatorIfAvailable(path, prevSeparatorIndex, isFolder) {\n  const nextSeparatorIndex = path.indexOf(directorySeparator, prevSeparatorIndex + 1);\n  return nextSeparatorIndex === -1 ? isFolder ? path.length : prevSeparatorIndex : nextSeparatorIndex;\n}\nfunction loadModuleFromFileNoPackageId(extensions, candidate, onlyRecordFailures, state) {\n  return noPackageId(loadModuleFromFile(extensions, candidate, onlyRecordFailures, state));\n}\nfunction loadModuleFromFile(extensions, candidate, onlyRecordFailures, state) {\n  const resolvedByReplacingExtension = loadModuleFromFileNoImplicitExtensions(extensions, candidate, onlyRecordFailures, state);\n  if (resolvedByReplacingExtension) {\n    return resolvedByReplacingExtension;\n  }\n  if (!(state.features & 32 /* EsmMode */)) {\n    const resolvedByAddingExtension = tryAddingExtensions(candidate, extensions, \"\", onlyRecordFailures, state);\n    if (resolvedByAddingExtension) {\n      return resolvedByAddingExtension;\n    }\n  }\n}\nfunction loadModuleFromFileNoImplicitExtensions(extensions, candidate, onlyRecordFailures, state) {\n  const filename = getBaseFileName(candidate);\n  if (!filename.includes(\".\")) {\n    return void 0;\n  }\n  let extensionless = removeFileExtension(candidate);\n  if (extensionless === candidate) {\n    extensionless = candidate.substring(0, candidate.lastIndexOf(\".\"));\n  }\n  const extension = candidate.substring(extensionless.length);\n  if (state.traceEnabled) {\n    trace(state.host, Diagnostics.File_name_0_has_a_1_extension_stripping_it, candidate, extension);\n  }\n  return tryAddingExtensions(extensionless, extensions, extension, onlyRecordFailures, state);\n}\nfunction loadFileNameFromPackageJsonField(extensions, candidate, packageJsonValue, onlyRecordFailures, state) {\n  if (extensions & 1 /* TypeScript */ && fileExtensionIsOneOf(candidate, supportedTSImplementationExtensions) || extensions & 4 /* Declaration */ && fileExtensionIsOneOf(candidate, supportedDeclarationExtensions)) {\n    const result = tryFile(candidate, onlyRecordFailures, state);\n    const ext = tryExtractTSExtension(candidate);\n    return result !== void 0 ? { path: candidate, ext, resolvedUsingTsExtension: packageJsonValue ? !endsWith(packageJsonValue, ext) : void 0 } : void 0;\n  }\n  if (state.isConfigLookup && extensions === 8 /* Json */ && fileExtensionIs(candidate, \".json\" /* Json */)) {\n    const result = tryFile(candidate, onlyRecordFailures, state);\n    return result !== void 0 ? { path: candidate, ext: \".json\" /* Json */, resolvedUsingTsExtension: void 0 } : void 0;\n  }\n  return loadModuleFromFileNoImplicitExtensions(extensions, candidate, onlyRecordFailures, state);\n}\nfunction tryAddingExtensions(candidate, extensions, originalExtension, onlyRecordFailures, state) {\n  if (!onlyRecordFailures) {\n    const directory = getDirectoryPath(candidate);\n    if (directory) {\n      onlyRecordFailures = !directoryProbablyExists(directory, state.host);\n    }\n  }\n  switch (originalExtension) {\n    case \".mjs\" /* Mjs */:\n    case \".mts\" /* Mts */:\n    case \".d.mts\" /* Dmts */:\n      return extensions & 1 /* TypeScript */ && tryExtension(\".mts\" /* Mts */, originalExtension === \".mts\" /* Mts */ || originalExtension === \".d.mts\" /* Dmts */) || extensions & 4 /* Declaration */ && tryExtension(\".d.mts\" /* Dmts */, originalExtension === \".mts\" /* Mts */ || originalExtension === \".d.mts\" /* Dmts */) || extensions & 2 /* JavaScript */ && tryExtension(\".mjs\" /* Mjs */) || void 0;\n    case \".cjs\" /* Cjs */:\n    case \".cts\" /* Cts */:\n    case \".d.cts\" /* Dcts */:\n      return extensions & 1 /* TypeScript */ && tryExtension(\".cts\" /* Cts */, originalExtension === \".cts\" /* Cts */ || originalExtension === \".d.cts\" /* Dcts */) || extensions & 4 /* Declaration */ && tryExtension(\".d.cts\" /* Dcts */, originalExtension === \".cts\" /* Cts */ || originalExtension === \".d.cts\" /* Dcts */) || extensions & 2 /* JavaScript */ && tryExtension(\".cjs\" /* Cjs */) || void 0;\n    case \".json\" /* Json */:\n      return extensions & 4 /* Declaration */ && tryExtension(\".d.json.ts\") || extensions & 8 /* Json */ && tryExtension(\".json\" /* Json */) || void 0;\n    case \".tsx\" /* Tsx */:\n    case \".jsx\" /* Jsx */:\n      return extensions & 1 /* TypeScript */ && (tryExtension(\".tsx\" /* Tsx */, originalExtension === \".tsx\" /* Tsx */) || tryExtension(\".ts\" /* Ts */, originalExtension === \".tsx\" /* Tsx */)) || extensions & 4 /* Declaration */ && tryExtension(\".d.ts\" /* Dts */, originalExtension === \".tsx\" /* Tsx */) || extensions & 2 /* JavaScript */ && (tryExtension(\".jsx\" /* Jsx */) || tryExtension(\".js\" /* Js */)) || void 0;\n    case \".ts\" /* Ts */:\n    case \".d.ts\" /* Dts */:\n    case \".js\" /* Js */:\n    case \"\":\n      return extensions & 1 /* TypeScript */ && (tryExtension(\".ts\" /* Ts */, originalExtension === \".ts\" /* Ts */ || originalExtension === \".d.ts\" /* Dts */) || tryExtension(\".tsx\" /* Tsx */, originalExtension === \".ts\" /* Ts */ || originalExtension === \".d.ts\" /* Dts */)) || extensions & 4 /* Declaration */ && tryExtension(\".d.ts\" /* Dts */, originalExtension === \".ts\" /* Ts */ || originalExtension === \".d.ts\" /* Dts */) || extensions & 2 /* JavaScript */ && (tryExtension(\".js\" /* Js */) || tryExtension(\".jsx\" /* Jsx */)) || state.isConfigLookup && tryExtension(\".json\" /* Json */) || void 0;\n    default:\n      return extensions & 4 /* Declaration */ && !isDeclarationFileName(candidate + originalExtension) && tryExtension(`.d${originalExtension}.ts`) || void 0;\n  }\n  function tryExtension(ext, resolvedUsingTsExtension) {\n    const path = tryFile(candidate + ext, onlyRecordFailures, state);\n    return path === void 0 ? void 0 : { path, ext, resolvedUsingTsExtension: !state.candidateIsFromPackageJsonField && resolvedUsingTsExtension };\n  }\n}\nfunction tryFile(fileName, onlyRecordFailures, state) {\n  var _a;\n  if (!((_a = state.compilerOptions.moduleSuffixes) == null ? void 0 : _a.length)) {\n    return tryFileLookup(fileName, onlyRecordFailures, state);\n  }\n  const ext = tryGetExtensionFromPath2(fileName) ?? \"\";\n  const fileNameNoExtension = ext ? removeExtension(fileName, ext) : fileName;\n  return forEach(state.compilerOptions.moduleSuffixes, (suffix) => tryFileLookup(fileNameNoExtension + suffix + ext, onlyRecordFailures, state));\n}\nfunction tryFileLookup(fileName, onlyRecordFailures, state) {\n  var _a;\n  if (!onlyRecordFailures) {\n    if (state.host.fileExists(fileName)) {\n      if (state.traceEnabled) {\n        trace(state.host, Diagnostics.File_0_exists_use_it_as_a_name_resolution_result, fileName);\n      }\n      return fileName;\n    } else {\n      if (state.traceEnabled) {\n        trace(state.host, Diagnostics.File_0_does_not_exist, fileName);\n      }\n    }\n  }\n  (_a = state.failedLookupLocations) == null ? void 0 : _a.push(fileName);\n  return void 0;\n}\nfunction loadNodeModuleFromDirectory(extensions, candidate, onlyRecordFailures, state, considerPackageJson = true) {\n  const packageInfo = considerPackageJson ? getPackageJsonInfo(candidate, onlyRecordFailures, state) : void 0;\n  return withPackageId(packageInfo, loadNodeModuleFromDirectoryWorker(extensions, candidate, onlyRecordFailures, state, packageInfo), state);\n}\nfunction getEntrypointsFromPackageJsonInfo(packageJsonInfo, options, host, cache, resolveJs) {\n  if (!resolveJs && packageJsonInfo.contents.resolvedEntrypoints !== void 0) {\n    return packageJsonInfo.contents.resolvedEntrypoints;\n  }\n  let entrypoints;\n  const extensions = 1 /* TypeScript */ | 4 /* Declaration */ | (resolveJs ? 2 /* JavaScript */ : 0);\n  const features = getNodeResolutionFeatures(options);\n  const loadPackageJsonMainState = getTemporaryModuleResolutionState(cache == null ? void 0 : cache.getPackageJsonInfoCache(), host, options);\n  loadPackageJsonMainState.conditions = getConditions(options);\n  loadPackageJsonMainState.requestContainingDirectory = packageJsonInfo.packageDirectory;\n  const mainResolution = loadNodeModuleFromDirectoryWorker(\n    extensions,\n    packageJsonInfo.packageDirectory,\n    /*onlyRecordFailures*/\n    false,\n    loadPackageJsonMainState,\n    packageJsonInfo\n  );\n  entrypoints = append(entrypoints, mainResolution == null ? void 0 : mainResolution.path);\n  if (features & 8 /* Exports */ && packageJsonInfo.contents.packageJsonContent.exports) {\n    const conditionSets = deduplicate(\n      [getConditions(options, 99 /* ESNext */), getConditions(options, 1 /* CommonJS */)],\n      arrayIsEqualTo\n    );\n    for (const conditions of conditionSets) {\n      const loadPackageJsonExportsState = { ...loadPackageJsonMainState, failedLookupLocations: [], conditions, host };\n      const exportResolutions = loadEntrypointsFromExportMap(\n        packageJsonInfo,\n        packageJsonInfo.contents.packageJsonContent.exports,\n        loadPackageJsonExportsState,\n        extensions\n      );\n      if (exportResolutions) {\n        for (const resolution of exportResolutions) {\n          entrypoints = appendIfUnique(entrypoints, resolution.path);\n        }\n      }\n    }\n  }\n  return packageJsonInfo.contents.resolvedEntrypoints = entrypoints || false;\n}\nfunction loadEntrypointsFromExportMap(scope, exports2, state, extensions) {\n  let entrypoints;\n  if (isArray(exports2)) {\n    for (const target of exports2) {\n      loadEntrypointsFromTargetExports(target);\n    }\n  } else if (typeof exports2 === \"object\" && exports2 !== null && allKeysStartWithDot(exports2)) {\n    for (const key in exports2) {\n      loadEntrypointsFromTargetExports(exports2[key]);\n    }\n  } else {\n    loadEntrypointsFromTargetExports(exports2);\n  }\n  return entrypoints;\n  function loadEntrypointsFromTargetExports(target) {\n    var _a, _b;\n    if (typeof target === \"string\" && startsWith(target, \"./\")) {\n      if (target.includes(\"*\") && state.host.readDirectory) {\n        if (target.indexOf(\"*\") !== target.lastIndexOf(\"*\")) {\n          return false;\n        }\n        state.host.readDirectory(\n          scope.packageDirectory,\n          extensionsToExtensionsArray(extensions),\n          /*excludes*/\n          void 0,\n          [\n            changeFullExtension(replaceFirstStar(target, \"**/*\"), \".*\")\n          ]\n        ).forEach((entry) => {\n          entrypoints = appendIfUnique(entrypoints, {\n            path: entry,\n            ext: getAnyExtensionFromPath(entry),\n            resolvedUsingTsExtension: void 0\n          });\n        });\n      } else {\n        const partsAfterFirst = getPathComponents(target).slice(2);\n        if (partsAfterFirst.includes(\"..\") || partsAfterFirst.includes(\".\") || partsAfterFirst.includes(\"node_modules\")) {\n          return false;\n        }\n        const resolvedTarget = combinePaths(scope.packageDirectory, target);\n        const finalPath = getNormalizedAbsolutePath(resolvedTarget, (_b = (_a = state.host).getCurrentDirectory) == null ? void 0 : _b.call(_a));\n        const result = loadFileNameFromPackageJsonField(\n          extensions,\n          finalPath,\n          target,\n          /*onlyRecordFailures*/\n          false,\n          state\n        );\n        if (result) {\n          entrypoints = appendIfUnique(entrypoints, result, (a, b) => a.path === b.path);\n          return true;\n        }\n      }\n    } else if (Array.isArray(target)) {\n      for (const t of target) {\n        const success = loadEntrypointsFromTargetExports(t);\n        if (success) {\n          return true;\n        }\n      }\n    } else if (typeof target === \"object\" && target !== null) {\n      return forEach(getOwnKeys(target), (key) => {\n        if (key === \"default\" || contains(state.conditions, key) || isApplicableVersionedTypesKey(state.conditions, key)) {\n          loadEntrypointsFromTargetExports(target[key]);\n          return true;\n        }\n      });\n    }\n  }\n}\nfunction getTemporaryModuleResolutionState(packageJsonInfoCache, host, options) {\n  return {\n    host,\n    compilerOptions: options,\n    traceEnabled: isTraceEnabled(options, host),\n    failedLookupLocations: void 0,\n    affectingLocations: void 0,\n    packageJsonInfoCache,\n    features: 0 /* None */,\n    conditions: emptyArray,\n    requestContainingDirectory: void 0,\n    reportDiagnostic: noop,\n    isConfigLookup: false,\n    candidateIsFromPackageJsonField: false,\n    resolvedPackageDirectory: false\n  };\n}\nfunction getPackageScopeForPath(directory, state) {\n  return forEachAncestorDirectoryStoppingAtGlobalCache(\n    state.host,\n    directory,\n    (dir) => getPackageJsonInfo(\n      dir,\n      /*onlyRecordFailures*/\n      false,\n      state\n    )\n  );\n}\nfunction getVersionPathsOfPackageJsonInfo(packageJsonInfo, state) {\n  if (packageJsonInfo.contents.versionPaths === void 0) {\n    packageJsonInfo.contents.versionPaths = readPackageJsonTypesVersionPaths(packageJsonInfo.contents.packageJsonContent, state) || false;\n  }\n  return packageJsonInfo.contents.versionPaths || void 0;\n}\nfunction getPeerDependenciesOfPackageJsonInfo(packageJsonInfo, state) {\n  if (packageJsonInfo.contents.peerDependencies === void 0) {\n    packageJsonInfo.contents.peerDependencies = readPackageJsonPeerDependencies(packageJsonInfo, state) || false;\n  }\n  return packageJsonInfo.contents.peerDependencies || void 0;\n}\nfunction readPackageJsonPeerDependencies(packageJsonInfo, state) {\n  const peerDependencies = readPackageJsonField(packageJsonInfo.contents.packageJsonContent, \"peerDependencies\", \"object\", state);\n  if (peerDependencies === void 0) return void 0;\n  if (state.traceEnabled) trace(state.host, Diagnostics.package_json_has_a_peerDependencies_field);\n  const packageDirectory = realPath(packageJsonInfo.packageDirectory, state.host, state.traceEnabled);\n  const nodeModules = packageDirectory.substring(0, packageDirectory.lastIndexOf(\"node_modules\") + \"node_modules\".length) + directorySeparator;\n  let result = \"\";\n  for (const key in peerDependencies) {\n    if (hasProperty(peerDependencies, key)) {\n      const peerPackageJson = getPackageJsonInfo(\n        nodeModules + key,\n        /*onlyRecordFailures*/\n        false,\n        state\n      );\n      if (peerPackageJson) {\n        const version2 = peerPackageJson.contents.packageJsonContent.version;\n        result += `+${key}@${version2}`;\n        if (state.traceEnabled) trace(state.host, Diagnostics.Found_peerDependency_0_with_1_version, key, version2);\n      } else {\n        if (state.traceEnabled) trace(state.host, Diagnostics.Failed_to_find_peerDependency_0, key);\n      }\n    }\n  }\n  return result;\n}\nfunction getPackageJsonInfo(packageDirectory, onlyRecordFailures, state) {\n  var _a, _b, _c, _d, _e, _f;\n  const { host, traceEnabled } = state;\n  const packageJsonPath = combinePaths(packageDirectory, \"package.json\");\n  if (onlyRecordFailures) {\n    (_a = state.failedLookupLocations) == null ? void 0 : _a.push(packageJsonPath);\n    return void 0;\n  }\n  const existing = (_b = state.packageJsonInfoCache) == null ? void 0 : _b.getPackageJsonInfo(packageJsonPath);\n  if (existing !== void 0) {\n    if (isPackageJsonInfo(existing)) {\n      if (traceEnabled) trace(host, Diagnostics.File_0_exists_according_to_earlier_cached_lookups, packageJsonPath);\n      (_c = state.affectingLocations) == null ? void 0 : _c.push(packageJsonPath);\n      return existing.packageDirectory === packageDirectory ? existing : { packageDirectory, contents: existing.contents };\n    } else {\n      if (existing.directoryExists && traceEnabled) trace(host, Diagnostics.File_0_does_not_exist_according_to_earlier_cached_lookups, packageJsonPath);\n      (_d = state.failedLookupLocations) == null ? void 0 : _d.push(packageJsonPath);\n      return void 0;\n    }\n  }\n  const directoryExists = directoryProbablyExists(packageDirectory, host);\n  if (directoryExists && host.fileExists(packageJsonPath)) {\n    const packageJsonContent = readJson(packageJsonPath, host);\n    if (traceEnabled) {\n      trace(host, Diagnostics.Found_package_json_at_0, packageJsonPath);\n    }\n    const result = { packageDirectory, contents: { packageJsonContent, versionPaths: void 0, resolvedEntrypoints: void 0, peerDependencies: void 0 } };\n    if (state.packageJsonInfoCache && !state.packageJsonInfoCache.isReadonly) state.packageJsonInfoCache.setPackageJsonInfo(packageJsonPath, result);\n    (_e = state.affectingLocations) == null ? void 0 : _e.push(packageJsonPath);\n    return result;\n  } else {\n    if (directoryExists && traceEnabled) {\n      trace(host, Diagnostics.File_0_does_not_exist, packageJsonPath);\n    }\n    if (state.packageJsonInfoCache && !state.packageJsonInfoCache.isReadonly) state.packageJsonInfoCache.setPackageJsonInfo(packageJsonPath, { packageDirectory, directoryExists });\n    (_f = state.failedLookupLocations) == null ? void 0 : _f.push(packageJsonPath);\n  }\n}\nfunction loadNodeModuleFromDirectoryWorker(extensions, candidate, onlyRecordFailures, state, packageJson) {\n  const versionPaths = packageJson && getVersionPathsOfPackageJsonInfo(packageJson, state);\n  let packageFile;\n  if (packageJson && arePathsEqual(packageJson == null ? void 0 : packageJson.packageDirectory, candidate, state.host)) {\n    if (state.isConfigLookup) {\n      packageFile = readPackageJsonTSConfigField(packageJson.contents.packageJsonContent, packageJson.packageDirectory, state);\n    } else {\n      packageFile = extensions & 4 /* Declaration */ && readPackageJsonTypesFields(packageJson.contents.packageJsonContent, packageJson.packageDirectory, state) || extensions & (3 /* ImplementationFiles */ | 4 /* Declaration */) && readPackageJsonMainField(packageJson.contents.packageJsonContent, packageJson.packageDirectory, state) || void 0;\n    }\n  }\n  const loader = (extensions2, candidate2, onlyRecordFailures2, state2) => {\n    const fromFile = loadFileNameFromPackageJsonField(\n      extensions2,\n      candidate2,\n      /*packageJsonValue*/\n      void 0,\n      onlyRecordFailures2,\n      state2\n    );\n    if (fromFile) {\n      return noPackageId(fromFile);\n    }\n    const expandedExtensions = extensions2 === 4 /* Declaration */ ? 1 /* TypeScript */ | 4 /* Declaration */ : extensions2;\n    const features = state2.features;\n    const candidateIsFromPackageJsonField = state2.candidateIsFromPackageJsonField;\n    state2.candidateIsFromPackageJsonField = true;\n    if ((packageJson == null ? void 0 : packageJson.contents.packageJsonContent.type) !== \"module\") {\n      state2.features &= ~32 /* EsmMode */;\n    }\n    const result = nodeLoadModuleByRelativeName(\n      expandedExtensions,\n      candidate2,\n      onlyRecordFailures2,\n      state2,\n      /*considerPackageJson*/\n      false\n    );\n    state2.features = features;\n    state2.candidateIsFromPackageJsonField = candidateIsFromPackageJsonField;\n    return result;\n  };\n  const onlyRecordFailuresForPackageFile = packageFile ? !directoryProbablyExists(getDirectoryPath(packageFile), state.host) : void 0;\n  const onlyRecordFailuresForIndex = onlyRecordFailures || !directoryProbablyExists(candidate, state.host);\n  const indexPath = combinePaths(candidate, state.isConfigLookup ? \"tsconfig\" : \"index\");\n  if (versionPaths && (!packageFile || containsPath(candidate, packageFile))) {\n    const moduleName = getRelativePathFromDirectory(\n      candidate,\n      packageFile || indexPath,\n      /*ignoreCase*/\n      false\n    );\n    if (state.traceEnabled) {\n      trace(state.host, Diagnostics.package_json_has_a_typesVersions_entry_0_that_matches_compiler_version_1_looking_for_a_pattern_to_match_module_name_2, versionPaths.version, version, moduleName);\n    }\n    const pathPatterns = tryParsePatterns(versionPaths.paths);\n    const result = tryLoadModuleUsingPaths(extensions, moduleName, candidate, versionPaths.paths, pathPatterns, loader, onlyRecordFailuresForPackageFile || onlyRecordFailuresForIndex, state);\n    if (result) {\n      return removeIgnoredPackageId(result.value);\n    }\n  }\n  const packageFileResult = packageFile && removeIgnoredPackageId(loader(extensions, packageFile, onlyRecordFailuresForPackageFile, state));\n  if (packageFileResult) return packageFileResult;\n  if (!(state.features & 32 /* EsmMode */)) {\n    return loadModuleFromFile(extensions, indexPath, onlyRecordFailuresForIndex, state);\n  }\n}\nfunction extensionIsOk(extensions, extension) {\n  return extensions & 2 /* JavaScript */ && (extension === \".js\" /* Js */ || extension === \".jsx\" /* Jsx */ || extension === \".mjs\" /* Mjs */ || extension === \".cjs\" /* Cjs */) || extensions & 1 /* TypeScript */ && (extension === \".ts\" /* Ts */ || extension === \".tsx\" /* Tsx */ || extension === \".mts\" /* Mts */ || extension === \".cts\" /* Cts */) || extensions & 4 /* Declaration */ && (extension === \".d.ts\" /* Dts */ || extension === \".d.mts\" /* Dmts */ || extension === \".d.cts\" /* Dcts */) || extensions & 8 /* Json */ && extension === \".json\" /* Json */ || false;\n}\nfunction parsePackageName(moduleName) {\n  let idx = moduleName.indexOf(directorySeparator);\n  if (moduleName[0] === \"@\") {\n    idx = moduleName.indexOf(directorySeparator, idx + 1);\n  }\n  return idx === -1 ? { packageName: moduleName, rest: \"\" } : { packageName: moduleName.slice(0, idx), rest: moduleName.slice(idx + 1) };\n}\nfunction allKeysStartWithDot(obj) {\n  return every(getOwnKeys(obj), (k) => startsWith(k, \".\"));\n}\nfunction noKeyStartsWithDot(obj) {\n  return !some(getOwnKeys(obj), (k) => startsWith(k, \".\"));\n}\nfunction loadModuleFromSelfNameReference(extensions, moduleName, directory, state, cache, redirectedReference) {\n  var _a, _b;\n  const directoryPath = getNormalizedAbsolutePath(directory, (_b = (_a = state.host).getCurrentDirectory) == null ? void 0 : _b.call(_a));\n  const scope = getPackageScopeForPath(directoryPath, state);\n  if (!scope || !scope.contents.packageJsonContent.exports) {\n    return void 0;\n  }\n  if (typeof scope.contents.packageJsonContent.name !== \"string\") {\n    return void 0;\n  }\n  const parts = getPathComponents(moduleName);\n  const nameParts = getPathComponents(scope.contents.packageJsonContent.name);\n  if (!every(nameParts, (p, i) => parts[i] === p)) {\n    return void 0;\n  }\n  const trailingParts = parts.slice(nameParts.length);\n  const subpath = !length(trailingParts) ? \".\" : `.${directorySeparator}${trailingParts.join(directorySeparator)}`;\n  if (getAllowJSCompilerOption(state.compilerOptions) && !pathContainsNodeModules(directory)) {\n    return loadModuleFromExports(scope, extensions, subpath, state, cache, redirectedReference);\n  }\n  const priorityExtensions = extensions & (1 /* TypeScript */ | 4 /* Declaration */);\n  const secondaryExtensions = extensions & ~(1 /* TypeScript */ | 4 /* Declaration */);\n  return loadModuleFromExports(scope, priorityExtensions, subpath, state, cache, redirectedReference) || loadModuleFromExports(scope, secondaryExtensions, subpath, state, cache, redirectedReference);\n}\nfunction loadModuleFromExports(scope, extensions, subpath, state, cache, redirectedReference) {\n  if (!scope.contents.packageJsonContent.exports) {\n    return void 0;\n  }\n  if (subpath === \".\") {\n    let mainExport;\n    if (typeof scope.contents.packageJsonContent.exports === \"string\" || Array.isArray(scope.contents.packageJsonContent.exports) || typeof scope.contents.packageJsonContent.exports === \"object\" && noKeyStartsWithDot(scope.contents.packageJsonContent.exports)) {\n      mainExport = scope.contents.packageJsonContent.exports;\n    } else if (hasProperty(scope.contents.packageJsonContent.exports, \".\")) {\n      mainExport = scope.contents.packageJsonContent.exports[\".\"];\n    }\n    if (mainExport) {\n      const loadModuleFromTargetExportOrImport = getLoadModuleFromTargetExportOrImport(\n        extensions,\n        state,\n        cache,\n        redirectedReference,\n        subpath,\n        scope,\n        /*isImports*/\n        false\n      );\n      return loadModuleFromTargetExportOrImport(\n        mainExport,\n        \"\",\n        /*pattern*/\n        false,\n        \".\"\n      );\n    }\n  } else if (allKeysStartWithDot(scope.contents.packageJsonContent.exports)) {\n    if (typeof scope.contents.packageJsonContent.exports !== \"object\") {\n      if (state.traceEnabled) {\n        trace(state.host, Diagnostics.Export_specifier_0_does_not_exist_in_package_json_scope_at_path_1, subpath, scope.packageDirectory);\n      }\n      return toSearchResult(\n        /*value*/\n        void 0\n      );\n    }\n    const result = loadModuleFromExportsOrImports(\n      extensions,\n      state,\n      cache,\n      redirectedReference,\n      subpath,\n      scope.contents.packageJsonContent.exports,\n      scope,\n      /*isImports*/\n      false\n    );\n    if (result) {\n      return result;\n    }\n  }\n  if (state.traceEnabled) {\n    trace(state.host, Diagnostics.Export_specifier_0_does_not_exist_in_package_json_scope_at_path_1, subpath, scope.packageDirectory);\n  }\n  return toSearchResult(\n    /*value*/\n    void 0\n  );\n}\nfunction loadModuleFromImports(extensions, moduleName, directory, state, cache, redirectedReference) {\n  var _a, _b;\n  if (moduleName === \"#\" || startsWith(moduleName, \"#/\")) {\n    if (state.traceEnabled) {\n      trace(state.host, Diagnostics.Invalid_import_specifier_0_has_no_possible_resolutions, moduleName);\n    }\n    return toSearchResult(\n      /*value*/\n      void 0\n    );\n  }\n  const directoryPath = getNormalizedAbsolutePath(directory, (_b = (_a = state.host).getCurrentDirectory) == null ? void 0 : _b.call(_a));\n  const scope = getPackageScopeForPath(directoryPath, state);\n  if (!scope) {\n    if (state.traceEnabled) {\n      trace(state.host, Diagnostics.Directory_0_has_no_containing_package_json_scope_Imports_will_not_resolve, directoryPath);\n    }\n    return toSearchResult(\n      /*value*/\n      void 0\n    );\n  }\n  if (!scope.contents.packageJsonContent.imports) {\n    if (state.traceEnabled) {\n      trace(state.host, Diagnostics.package_json_scope_0_has_no_imports_defined, scope.packageDirectory);\n    }\n    return toSearchResult(\n      /*value*/\n      void 0\n    );\n  }\n  const result = loadModuleFromExportsOrImports(\n    extensions,\n    state,\n    cache,\n    redirectedReference,\n    moduleName,\n    scope.contents.packageJsonContent.imports,\n    scope,\n    /*isImports*/\n    true\n  );\n  if (result) {\n    return result;\n  }\n  if (state.traceEnabled) {\n    trace(state.host, Diagnostics.Import_specifier_0_does_not_exist_in_package_json_scope_at_path_1, moduleName, scope.packageDirectory);\n  }\n  return toSearchResult(\n    /*value*/\n    void 0\n  );\n}\nfunction comparePatternKeys(a, b) {\n  const aPatternIndex = a.indexOf(\"*\");\n  const bPatternIndex = b.indexOf(\"*\");\n  const baseLenA = aPatternIndex === -1 ? a.length : aPatternIndex + 1;\n  const baseLenB = bPatternIndex === -1 ? b.length : bPatternIndex + 1;\n  if (baseLenA > baseLenB) return -1 /* LessThan */;\n  if (baseLenB > baseLenA) return 1 /* GreaterThan */;\n  if (aPatternIndex === -1) return 1 /* GreaterThan */;\n  if (bPatternIndex === -1) return -1 /* LessThan */;\n  if (a.length > b.length) return -1 /* LessThan */;\n  if (b.length > a.length) return 1 /* GreaterThan */;\n  return 0 /* EqualTo */;\n}\nfunction loadModuleFromExportsOrImports(extensions, state, cache, redirectedReference, moduleName, lookupTable, scope, isImports) {\n  const loadModuleFromTargetExportOrImport = getLoadModuleFromTargetExportOrImport(extensions, state, cache, redirectedReference, moduleName, scope, isImports);\n  if (!endsWith(moduleName, directorySeparator) && !moduleName.includes(\"*\") && hasProperty(lookupTable, moduleName)) {\n    const target = lookupTable[moduleName];\n    return loadModuleFromTargetExportOrImport(\n      target,\n      /*subpath*/\n      \"\",\n      /*pattern*/\n      false,\n      moduleName\n    );\n  }\n  const expandingKeys = toSorted(filter(getOwnKeys(lookupTable), (k) => hasOneAsterisk(k) || endsWith(k, \"/\")), comparePatternKeys);\n  for (const potentialTarget of expandingKeys) {\n    if (state.features & 16 /* ExportsPatternTrailers */ && matchesPatternWithTrailer(potentialTarget, moduleName)) {\n      const target = lookupTable[potentialTarget];\n      const starPos = potentialTarget.indexOf(\"*\");\n      const subpath = moduleName.substring(potentialTarget.substring(0, starPos).length, moduleName.length - (potentialTarget.length - 1 - starPos));\n      return loadModuleFromTargetExportOrImport(\n        target,\n        subpath,\n        /*pattern*/\n        true,\n        potentialTarget\n      );\n    } else if (endsWith(potentialTarget, \"*\") && startsWith(moduleName, potentialTarget.substring(0, potentialTarget.length - 1))) {\n      const target = lookupTable[potentialTarget];\n      const subpath = moduleName.substring(potentialTarget.length - 1);\n      return loadModuleFromTargetExportOrImport(\n        target,\n        subpath,\n        /*pattern*/\n        true,\n        potentialTarget\n      );\n    } else if (startsWith(moduleName, potentialTarget)) {\n      const target = lookupTable[potentialTarget];\n      const subpath = moduleName.substring(potentialTarget.length);\n      return loadModuleFromTargetExportOrImport(\n        target,\n        subpath,\n        /*pattern*/\n        false,\n        potentialTarget\n      );\n    }\n  }\n  function matchesPatternWithTrailer(target, name) {\n    if (endsWith(target, \"*\")) return false;\n    const starPos = target.indexOf(\"*\");\n    if (starPos === -1) return false;\n    return startsWith(name, target.substring(0, starPos)) && endsWith(name, target.substring(starPos + 1));\n  }\n}\nfunction hasOneAsterisk(patternKey) {\n  const firstStar = patternKey.indexOf(\"*\");\n  return firstStar !== -1 && firstStar === patternKey.lastIndexOf(\"*\");\n}\nfunction getLoadModuleFromTargetExportOrImport(extensions, state, cache, redirectedReference, moduleName, scope, isImports) {\n  return loadModuleFromTargetExportOrImport;\n  function loadModuleFromTargetExportOrImport(target, subpath, pattern, key) {\n    var _a, _b;\n    if (typeof target === \"string\") {\n      if (!pattern && subpath.length > 0 && !endsWith(target, \"/\")) {\n        if (state.traceEnabled) {\n          trace(state.host, Diagnostics.package_json_scope_0_has_invalid_type_for_target_of_specifier_1, scope.packageDirectory, moduleName);\n        }\n        return toSearchResult(\n          /*value*/\n          void 0\n        );\n      }\n      if (!startsWith(target, \"./\")) {\n        if (isImports && !startsWith(target, \"../\") && !startsWith(target, \"/\") && !isRootedDiskPath(target)) {\n          const combinedLookup = pattern ? target.replace(/\\*/g, subpath) : target + subpath;\n          traceIfEnabled(state, Diagnostics.Using_0_subpath_1_with_target_2, \"imports\", key, combinedLookup);\n          traceIfEnabled(state, Diagnostics.Resolving_module_0_from_1, combinedLookup, scope.packageDirectory + \"/\");\n          const result = nodeModuleNameResolverWorker(\n            state.features,\n            combinedLookup,\n            scope.packageDirectory + \"/\",\n            state.compilerOptions,\n            state.host,\n            cache,\n            extensions,\n            /*isConfigLookup*/\n            false,\n            redirectedReference,\n            state.conditions\n          );\n          (_a = state.failedLookupLocations) == null ? void 0 : _a.push(...result.failedLookupLocations ?? emptyArray);\n          (_b = state.affectingLocations) == null ? void 0 : _b.push(...result.affectingLocations ?? emptyArray);\n          return toSearchResult(\n            result.resolvedModule ? {\n              path: result.resolvedModule.resolvedFileName,\n              extension: result.resolvedModule.extension,\n              packageId: result.resolvedModule.packageId,\n              originalPath: result.resolvedModule.originalPath,\n              resolvedUsingTsExtension: result.resolvedModule.resolvedUsingTsExtension\n            } : void 0\n          );\n        }\n        if (state.traceEnabled) {\n          trace(state.host, Diagnostics.package_json_scope_0_has_invalid_type_for_target_of_specifier_1, scope.packageDirectory, moduleName);\n        }\n        return toSearchResult(\n          /*value*/\n          void 0\n        );\n      }\n      const parts = pathIsRelative(target) ? getPathComponents(target).slice(1) : getPathComponents(target);\n      const partsAfterFirst = parts.slice(1);\n      if (partsAfterFirst.includes(\"..\") || partsAfterFirst.includes(\".\") || partsAfterFirst.includes(\"node_modules\")) {\n        if (state.traceEnabled) {\n          trace(state.host, Diagnostics.package_json_scope_0_has_invalid_type_for_target_of_specifier_1, scope.packageDirectory, moduleName);\n        }\n        return toSearchResult(\n          /*value*/\n          void 0\n        );\n      }\n      const resolvedTarget = combinePaths(scope.packageDirectory, target);\n      const subpathParts = getPathComponents(subpath);\n      if (subpathParts.includes(\"..\") || subpathParts.includes(\".\") || subpathParts.includes(\"node_modules\")) {\n        if (state.traceEnabled) {\n          trace(state.host, Diagnostics.package_json_scope_0_has_invalid_type_for_target_of_specifier_1, scope.packageDirectory, moduleName);\n        }\n        return toSearchResult(\n          /*value*/\n          void 0\n        );\n      }\n      if (state.traceEnabled) {\n        trace(state.host, Diagnostics.Using_0_subpath_1_with_target_2, isImports ? \"imports\" : \"exports\", key, pattern ? target.replace(/\\*/g, subpath) : target + subpath);\n      }\n      const finalPath = toAbsolutePath(pattern ? resolvedTarget.replace(/\\*/g, subpath) : resolvedTarget + subpath);\n      const inputLink = tryLoadInputFileForPath(finalPath, subpath, combinePaths(scope.packageDirectory, \"package.json\"), isImports);\n      if (inputLink) return inputLink;\n      return toSearchResult(withPackageId(scope, loadFileNameFromPackageJsonField(\n        extensions,\n        finalPath,\n        target,\n        /*onlyRecordFailures*/\n        false,\n        state\n      ), state));\n    } else if (typeof target === \"object\" && target !== null) {\n      if (!Array.isArray(target)) {\n        traceIfEnabled(state, Diagnostics.Entering_conditional_exports);\n        for (const condition of getOwnKeys(target)) {\n          if (condition === \"default\" || state.conditions.includes(condition) || isApplicableVersionedTypesKey(state.conditions, condition)) {\n            traceIfEnabled(state, Diagnostics.Matched_0_condition_1, isImports ? \"imports\" : \"exports\", condition);\n            const subTarget = target[condition];\n            const result = loadModuleFromTargetExportOrImport(subTarget, subpath, pattern, key);\n            if (result) {\n              traceIfEnabled(state, Diagnostics.Resolved_under_condition_0, condition);\n              traceIfEnabled(state, Diagnostics.Exiting_conditional_exports);\n              return result;\n            } else {\n              traceIfEnabled(state, Diagnostics.Failed_to_resolve_under_condition_0, condition);\n            }\n          } else {\n            traceIfEnabled(state, Diagnostics.Saw_non_matching_condition_0, condition);\n          }\n        }\n        traceIfEnabled(state, Diagnostics.Exiting_conditional_exports);\n        return void 0;\n      } else {\n        if (!length(target)) {\n          if (state.traceEnabled) {\n            trace(state.host, Diagnostics.package_json_scope_0_has_invalid_type_for_target_of_specifier_1, scope.packageDirectory, moduleName);\n          }\n          return toSearchResult(\n            /*value*/\n            void 0\n          );\n        }\n        for (const elem of target) {\n          const result = loadModuleFromTargetExportOrImport(elem, subpath, pattern, key);\n          if (result) {\n            return result;\n          }\n        }\n      }\n    } else if (target === null) {\n      if (state.traceEnabled) {\n        trace(state.host, Diagnostics.package_json_scope_0_explicitly_maps_specifier_1_to_null, scope.packageDirectory, moduleName);\n      }\n      return toSearchResult(\n        /*value*/\n        void 0\n      );\n    }\n    if (state.traceEnabled) {\n      trace(state.host, Diagnostics.package_json_scope_0_has_invalid_type_for_target_of_specifier_1, scope.packageDirectory, moduleName);\n    }\n    return toSearchResult(\n      /*value*/\n      void 0\n    );\n    function toAbsolutePath(path) {\n      var _a2, _b2;\n      if (path === void 0) return path;\n      return getNormalizedAbsolutePath(path, (_b2 = (_a2 = state.host).getCurrentDirectory) == null ? void 0 : _b2.call(_a2));\n    }\n    function combineDirectoryPath(root, dir) {\n      return ensureTrailingDirectorySeparator(combinePaths(root, dir));\n    }\n    function tryLoadInputFileForPath(finalPath, entry, packagePath, isImports2) {\n      var _a2, _b2, _c, _d;\n      if (!state.isConfigLookup && (state.compilerOptions.declarationDir || state.compilerOptions.outDir) && !finalPath.includes(\"/node_modules/\") && (state.compilerOptions.configFile ? containsPath(scope.packageDirectory, toAbsolutePath(state.compilerOptions.configFile.fileName), !useCaseSensitiveFileNames(state)) : true)) {\n        const getCanonicalFileName = hostGetCanonicalFileName({ useCaseSensitiveFileNames: () => useCaseSensitiveFileNames(state) });\n        const commonSourceDirGuesses = [];\n        if (state.compilerOptions.rootDir || state.compilerOptions.composite && state.compilerOptions.configFilePath) {\n          const commonDir = toAbsolutePath(getCommonSourceDirectory(state.compilerOptions, () => [], ((_b2 = (_a2 = state.host).getCurrentDirectory) == null ? void 0 : _b2.call(_a2)) || \"\", getCanonicalFileName));\n          commonSourceDirGuesses.push(commonDir);\n        } else if (state.requestContainingDirectory) {\n          const requestingFile = toAbsolutePath(combinePaths(state.requestContainingDirectory, \"index.ts\"));\n          const commonDir = toAbsolutePath(getCommonSourceDirectory(state.compilerOptions, () => [requestingFile, toAbsolutePath(packagePath)], ((_d = (_c = state.host).getCurrentDirectory) == null ? void 0 : _d.call(_c)) || \"\", getCanonicalFileName));\n          commonSourceDirGuesses.push(commonDir);\n          let fragment = ensureTrailingDirectorySeparator(commonDir);\n          while (fragment && fragment.length > 1) {\n            const parts = getPathComponents(fragment);\n            parts.pop();\n            const commonDir2 = getPathFromPathComponents(parts);\n            commonSourceDirGuesses.unshift(commonDir2);\n            fragment = ensureTrailingDirectorySeparator(commonDir2);\n          }\n        }\n        if (commonSourceDirGuesses.length > 1) {\n          state.reportDiagnostic(createCompilerDiagnostic(\n            isImports2 ? Diagnostics.The_project_root_is_ambiguous_but_is_required_to_resolve_import_map_entry_0_in_file_1_Supply_the_rootDir_compiler_option_to_disambiguate : Diagnostics.The_project_root_is_ambiguous_but_is_required_to_resolve_export_map_entry_0_in_file_1_Supply_the_rootDir_compiler_option_to_disambiguate,\n            entry === \"\" ? \".\" : entry,\n            // replace empty string with `.` - the reverse of the operation done when entries are built - so main entrypoint errors don't look weird\n            packagePath\n          ));\n        }\n        for (const commonSourceDirGuess of commonSourceDirGuesses) {\n          const candidateDirectories = getOutputDirectoriesForBaseDirectory(commonSourceDirGuess);\n          for (const candidateDir of candidateDirectories) {\n            if (containsPath(candidateDir, finalPath, !useCaseSensitiveFileNames(state))) {\n              const pathFragment = finalPath.slice(candidateDir.length + 1);\n              const possibleInputBase = combinePaths(commonSourceDirGuess, pathFragment);\n              const jsAndDtsExtensions = [\".mjs\" /* Mjs */, \".cjs\" /* Cjs */, \".js\" /* Js */, \".json\" /* Json */, \".d.mts\" /* Dmts */, \".d.cts\" /* Dcts */, \".d.ts\" /* Dts */];\n              for (const ext of jsAndDtsExtensions) {\n                if (fileExtensionIs(possibleInputBase, ext)) {\n                  const inputExts = getPossibleOriginalInputExtensionForExtension(possibleInputBase);\n                  for (const possibleExt of inputExts) {\n                    if (!extensionIsOk(extensions, possibleExt)) continue;\n                    const possibleInputWithInputExtension = changeAnyExtension(possibleInputBase, possibleExt, ext, !useCaseSensitiveFileNames(state));\n                    if (state.host.fileExists(possibleInputWithInputExtension)) {\n                      return toSearchResult(withPackageId(scope, loadFileNameFromPackageJsonField(\n                        extensions,\n                        possibleInputWithInputExtension,\n                        /*packageJsonValue*/\n                        void 0,\n                        /*onlyRecordFailures*/\n                        false,\n                        state\n                      ), state));\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\n      }\n      return void 0;\n      function getOutputDirectoriesForBaseDirectory(commonSourceDirGuess) {\n        var _a3, _b3;\n        const currentDir = state.compilerOptions.configFile ? ((_b3 = (_a3 = state.host).getCurrentDirectory) == null ? void 0 : _b3.call(_a3)) || \"\" : commonSourceDirGuess;\n        const candidateDirectories = [];\n        if (state.compilerOptions.declarationDir) {\n          candidateDirectories.push(toAbsolutePath(combineDirectoryPath(currentDir, state.compilerOptions.declarationDir)));\n        }\n        if (state.compilerOptions.outDir && state.compilerOptions.outDir !== state.compilerOptions.declarationDir) {\n          candidateDirectories.push(toAbsolutePath(combineDirectoryPath(currentDir, state.compilerOptions.outDir)));\n        }\n        return candidateDirectories;\n      }\n    }\n  }\n}\nfunction isApplicableVersionedTypesKey(conditions, key) {\n  if (!conditions.includes(\"types\")) return false;\n  if (!startsWith(key, \"types@\")) return false;\n  const range = VersionRange.tryParse(key.substring(\"types@\".length));\n  if (!range) return false;\n  return range.test(version);\n}\nfunction loadModuleFromNearestNodeModulesDirectory(extensions, moduleName, directory, state, cache, redirectedReference) {\n  return loadModuleFromNearestNodeModulesDirectoryWorker(\n    extensions,\n    moduleName,\n    directory,\n    state,\n    /*typesScopeOnly*/\n    false,\n    cache,\n    redirectedReference\n  );\n}\nfunction loadModuleFromNearestNodeModulesDirectoryTypesScope(moduleName, directory, state) {\n  return loadModuleFromNearestNodeModulesDirectoryWorker(\n    4 /* Declaration */,\n    moduleName,\n    directory,\n    state,\n    /*typesScopeOnly*/\n    true,\n    /*cache*/\n    void 0,\n    /*redirectedReference*/\n    void 0\n  );\n}\nfunction loadModuleFromNearestNodeModulesDirectoryWorker(extensions, moduleName, directory, state, typesScopeOnly, cache, redirectedReference) {\n  const mode = state.features === 0 ? void 0 : state.features & 32 /* EsmMode */ || state.conditions.includes(\"import\") ? 99 /* ESNext */ : 1 /* CommonJS */;\n  const priorityExtensions = extensions & (1 /* TypeScript */ | 4 /* Declaration */);\n  const secondaryExtensions = extensions & ~(1 /* TypeScript */ | 4 /* Declaration */);\n  if (priorityExtensions) {\n    traceIfEnabled(state, Diagnostics.Searching_all_ancestor_node_modules_directories_for_preferred_extensions_Colon_0, formatExtensions(priorityExtensions));\n    const result = lookup(priorityExtensions);\n    if (result) return result;\n  }\n  if (secondaryExtensions && !typesScopeOnly) {\n    traceIfEnabled(state, Diagnostics.Searching_all_ancestor_node_modules_directories_for_fallback_extensions_Colon_0, formatExtensions(secondaryExtensions));\n    return lookup(secondaryExtensions);\n  }\n  function lookup(extensions2) {\n    return forEachAncestorDirectoryStoppingAtGlobalCache(\n      state.host,\n      normalizeSlashes(directory),\n      (ancestorDirectory) => {\n        if (getBaseFileName(ancestorDirectory) !== \"node_modules\") {\n          const resolutionFromCache = tryFindNonRelativeModuleNameInCache(cache, moduleName, mode, ancestorDirectory, redirectedReference, state);\n          if (resolutionFromCache) {\n            return resolutionFromCache;\n          }\n          return toSearchResult(loadModuleFromImmediateNodeModulesDirectory(extensions2, moduleName, ancestorDirectory, state, typesScopeOnly, cache, redirectedReference));\n        }\n      }\n    );\n  }\n}\nfunction forEachAncestorDirectoryStoppingAtGlobalCache(host, directory, callback) {\n  var _a;\n  const globalCache = (_a = host == null ? void 0 : host.getGlobalTypingsCacheLocation) == null ? void 0 : _a.call(host);\n  return forEachAncestorDirectory(directory, (ancestorDirectory) => {\n    const result = callback(ancestorDirectory);\n    if (result !== void 0) return result;\n    if (ancestorDirectory === globalCache) return false;\n  }) || void 0;\n}\nfunction loadModuleFromImmediateNodeModulesDirectory(extensions, moduleName, directory, state, typesScopeOnly, cache, redirectedReference) {\n  const nodeModulesFolder = combinePaths(directory, \"node_modules\");\n  const nodeModulesFolderExists = directoryProbablyExists(nodeModulesFolder, state.host);\n  if (!nodeModulesFolderExists && state.traceEnabled) {\n    trace(state.host, Diagnostics.Directory_0_does_not_exist_skipping_all_lookups_in_it, nodeModulesFolder);\n  }\n  if (!typesScopeOnly) {\n    const packageResult = loadModuleFromSpecificNodeModulesDirectory(extensions, moduleName, nodeModulesFolder, nodeModulesFolderExists, state, cache, redirectedReference);\n    if (packageResult) {\n      return packageResult;\n    }\n  }\n  if (extensions & 4 /* Declaration */) {\n    const nodeModulesAtTypes2 = combinePaths(nodeModulesFolder, \"@types\");\n    let nodeModulesAtTypesExists = nodeModulesFolderExists;\n    if (nodeModulesFolderExists && !directoryProbablyExists(nodeModulesAtTypes2, state.host)) {\n      if (state.traceEnabled) {\n        trace(state.host, Diagnostics.Directory_0_does_not_exist_skipping_all_lookups_in_it, nodeModulesAtTypes2);\n      }\n      nodeModulesAtTypesExists = false;\n    }\n    return loadModuleFromSpecificNodeModulesDirectory(4 /* Declaration */, mangleScopedPackageNameWithTrace(moduleName, state), nodeModulesAtTypes2, nodeModulesAtTypesExists, state, cache, redirectedReference);\n  }\n}\nfunction loadModuleFromSpecificNodeModulesDirectory(extensions, moduleName, nodeModulesDirectory, nodeModulesDirectoryExists, state, cache, redirectedReference) {\n  var _a, _b;\n  const candidate = normalizePath(combinePaths(nodeModulesDirectory, moduleName));\n  const { packageName, rest } = parsePackageName(moduleName);\n  const packageDirectory = combinePaths(nodeModulesDirectory, packageName);\n  let rootPackageInfo;\n  let packageInfo = getPackageJsonInfo(candidate, !nodeModulesDirectoryExists, state);\n  if (rest !== \"\" && packageInfo && (!(state.features & 8 /* Exports */) || !hasProperty(((_a = rootPackageInfo = getPackageJsonInfo(packageDirectory, !nodeModulesDirectoryExists, state)) == null ? void 0 : _a.contents.packageJsonContent) ?? emptyArray, \"exports\"))) {\n    const fromFile = loadModuleFromFile(extensions, candidate, !nodeModulesDirectoryExists, state);\n    if (fromFile) {\n      return noPackageId(fromFile);\n    }\n    const fromDirectory = loadNodeModuleFromDirectoryWorker(\n      extensions,\n      candidate,\n      !nodeModulesDirectoryExists,\n      state,\n      packageInfo\n    );\n    return withPackageId(packageInfo, fromDirectory, state);\n  }\n  const loader = (extensions2, candidate2, onlyRecordFailures, state2) => {\n    let pathAndExtension = (rest || !(state2.features & 32 /* EsmMode */)) && loadModuleFromFile(extensions2, candidate2, onlyRecordFailures, state2) || loadNodeModuleFromDirectoryWorker(\n      extensions2,\n      candidate2,\n      onlyRecordFailures,\n      state2,\n      packageInfo\n    );\n    if (!pathAndExtension && !rest && packageInfo && (packageInfo.contents.packageJsonContent.exports === void 0 || packageInfo.contents.packageJsonContent.exports === null) && state2.features & 32 /* EsmMode */) {\n      pathAndExtension = loadModuleFromFile(extensions2, combinePaths(candidate2, \"index.js\"), onlyRecordFailures, state2);\n    }\n    return withPackageId(packageInfo, pathAndExtension, state2);\n  };\n  if (rest !== \"\") {\n    packageInfo = rootPackageInfo ?? getPackageJsonInfo(packageDirectory, !nodeModulesDirectoryExists, state);\n  }\n  if (packageInfo) {\n    state.resolvedPackageDirectory = true;\n  }\n  if (packageInfo && packageInfo.contents.packageJsonContent.exports && state.features & 8 /* Exports */) {\n    return (_b = loadModuleFromExports(packageInfo, extensions, combinePaths(\".\", rest), state, cache, redirectedReference)) == null ? void 0 : _b.value;\n  }\n  const versionPaths = rest !== \"\" && packageInfo ? getVersionPathsOfPackageJsonInfo(packageInfo, state) : void 0;\n  if (versionPaths) {\n    if (state.traceEnabled) {\n      trace(state.host, Diagnostics.package_json_has_a_typesVersions_entry_0_that_matches_compiler_version_1_looking_for_a_pattern_to_match_module_name_2, versionPaths.version, version, rest);\n    }\n    const packageDirectoryExists = nodeModulesDirectoryExists && directoryProbablyExists(packageDirectory, state.host);\n    const pathPatterns = tryParsePatterns(versionPaths.paths);\n    const fromPaths = tryLoadModuleUsingPaths(extensions, rest, packageDirectory, versionPaths.paths, pathPatterns, loader, !packageDirectoryExists, state);\n    if (fromPaths) {\n      return fromPaths.value;\n    }\n  }\n  return loader(extensions, candidate, !nodeModulesDirectoryExists, state);\n}\nfunction tryLoadModuleUsingPaths(extensions, moduleName, baseDirectory, paths, pathPatterns, loader, onlyRecordFailures, state) {\n  const matchedPattern = matchPatternOrExact(pathPatterns, moduleName);\n  if (matchedPattern) {\n    const matchedStar = isString(matchedPattern) ? void 0 : matchedText(matchedPattern, moduleName);\n    const matchedPatternText = isString(matchedPattern) ? matchedPattern : patternText(matchedPattern);\n    if (state.traceEnabled) {\n      trace(state.host, Diagnostics.Module_name_0_matched_pattern_1, moduleName, matchedPatternText);\n    }\n    const resolved = forEach(paths[matchedPatternText], (subst) => {\n      const path = matchedStar ? replaceFirstStar(subst, matchedStar) : subst;\n      const candidate = normalizePath(combinePaths(baseDirectory, path));\n      if (state.traceEnabled) {\n        trace(state.host, Diagnostics.Trying_substitution_0_candidate_module_location_Colon_1, subst, path);\n      }\n      const extension = tryGetExtensionFromPath2(subst);\n      if (extension !== void 0) {\n        const path2 = tryFile(candidate, onlyRecordFailures, state);\n        if (path2 !== void 0) {\n          return noPackageId({ path: path2, ext: extension, resolvedUsingTsExtension: void 0 });\n        }\n      }\n      return loader(extensions, candidate, onlyRecordFailures || !directoryProbablyExists(getDirectoryPath(candidate), state.host), state);\n    });\n    return { value: resolved };\n  }\n}\nvar mangledScopedPackageSeparator = \"__\";\nfunction mangleScopedPackageNameWithTrace(packageName, state) {\n  const mangled = mangleScopedPackageName(packageName);\n  if (state.traceEnabled && mangled !== packageName) {\n    trace(state.host, Diagnostics.Scoped_package_detected_looking_in_0, mangled);\n  }\n  return mangled;\n}\nfunction getTypesPackageName(packageName) {\n  return `@types/${mangleScopedPackageName(packageName)}`;\n}\nfunction mangleScopedPackageName(packageName) {\n  if (startsWith(packageName, \"@\")) {\n    const replaceSlash = packageName.replace(directorySeparator, mangledScopedPackageSeparator);\n    if (replaceSlash !== packageName) {\n      return replaceSlash.slice(1);\n    }\n  }\n  return packageName;\n}\nfunction getPackageNameFromTypesPackageName(mangledName) {\n  const withoutAtTypePrefix = removePrefix(mangledName, \"@types/\");\n  if (withoutAtTypePrefix !== mangledName) {\n    return unmangleScopedPackageName(withoutAtTypePrefix);\n  }\n  return mangledName;\n}\nfunction unmangleScopedPackageName(typesPackageName) {\n  return typesPackageName.includes(mangledScopedPackageSeparator) ? \"@\" + typesPackageName.replace(mangledScopedPackageSeparator, directorySeparator) : typesPackageName;\n}\nfunction tryFindNonRelativeModuleNameInCache(cache, moduleName, mode, containingDirectory, redirectedReference, state) {\n  const result = cache && cache.getFromNonRelativeNameCache(moduleName, mode, containingDirectory, redirectedReference);\n  if (result) {\n    if (state.traceEnabled) {\n      trace(state.host, Diagnostics.Resolution_for_module_0_was_found_in_cache_from_location_1, moduleName, containingDirectory);\n    }\n    state.resultFromCache = result;\n    return {\n      value: result.resolvedModule && {\n        path: result.resolvedModule.resolvedFileName,\n        originalPath: result.resolvedModule.originalPath || true,\n        extension: result.resolvedModule.extension,\n        packageId: result.resolvedModule.packageId,\n        resolvedUsingTsExtension: result.resolvedModule.resolvedUsingTsExtension\n      }\n    };\n  }\n}\nfunction classicNameResolver(moduleName, containingFile, compilerOptions, host, cache, redirectedReference) {\n  const traceEnabled = isTraceEnabled(compilerOptions, host);\n  const failedLookupLocations = [];\n  const affectingLocations = [];\n  const containingDirectory = getDirectoryPath(containingFile);\n  const diagnostics = [];\n  const state = {\n    compilerOptions,\n    host,\n    traceEnabled,\n    failedLookupLocations,\n    affectingLocations,\n    packageJsonInfoCache: cache,\n    features: 0 /* None */,\n    conditions: [],\n    requestContainingDirectory: containingDirectory,\n    reportDiagnostic: (diag2) => void diagnostics.push(diag2),\n    isConfigLookup: false,\n    candidateIsFromPackageJsonField: false,\n    resolvedPackageDirectory: false\n  };\n  const resolved = tryResolve(1 /* TypeScript */ | 4 /* Declaration */) || tryResolve(2 /* JavaScript */ | (compilerOptions.resolveJsonModule ? 8 /* Json */ : 0));\n  return createResolvedModuleWithFailedLookupLocationsHandlingSymlink(\n    moduleName,\n    resolved && resolved.value,\n    (resolved == null ? void 0 : resolved.value) && pathContainsNodeModules(resolved.value.path),\n    failedLookupLocations,\n    affectingLocations,\n    diagnostics,\n    state,\n    cache\n  );\n  function tryResolve(extensions) {\n    const resolvedUsingSettings = tryLoadModuleUsingOptionalResolutionSettings(extensions, moduleName, containingDirectory, loadModuleFromFileNoPackageId, state);\n    if (resolvedUsingSettings) {\n      return { value: resolvedUsingSettings };\n    }\n    if (!isExternalModuleNameRelative(moduleName)) {\n      const resolved2 = forEachAncestorDirectoryStoppingAtGlobalCache(\n        state.host,\n        containingDirectory,\n        (directory) => {\n          const resolutionFromCache = tryFindNonRelativeModuleNameInCache(\n            cache,\n            moduleName,\n            /*mode*/\n            void 0,\n            directory,\n            redirectedReference,\n            state\n          );\n          if (resolutionFromCache) {\n            return resolutionFromCache;\n          }\n          const searchName = normalizePath(combinePaths(directory, moduleName));\n          return toSearchResult(loadModuleFromFileNoPackageId(\n            extensions,\n            searchName,\n            /*onlyRecordFailures*/\n            false,\n            state\n          ));\n        }\n      );\n      if (resolved2) return resolved2;\n      if (extensions & (1 /* TypeScript */ | 4 /* Declaration */)) {\n        let resolved3 = loadModuleFromNearestNodeModulesDirectoryTypesScope(moduleName, containingDirectory, state);\n        if (extensions & 4 /* Declaration */) resolved3 ?? (resolved3 = resolveFromTypeRoot(moduleName, state));\n        return resolved3;\n      }\n    } else {\n      const candidate = normalizePath(combinePaths(containingDirectory, moduleName));\n      return toSearchResult(loadModuleFromFileNoPackageId(\n        extensions,\n        candidate,\n        /*onlyRecordFailures*/\n        false,\n        state\n      ));\n    }\n  }\n}\nfunction resolveFromTypeRoot(moduleName, state) {\n  if (!state.compilerOptions.typeRoots) return;\n  for (const typeRoot of state.compilerOptions.typeRoots) {\n    const candidate = getCandidateFromTypeRoot(typeRoot, moduleName, state);\n    const directoryExists = directoryProbablyExists(typeRoot, state.host);\n    if (!directoryExists && state.traceEnabled) {\n      trace(state.host, Diagnostics.Directory_0_does_not_exist_skipping_all_lookups_in_it, typeRoot);\n    }\n    const resolvedFromFile = loadModuleFromFile(4 /* Declaration */, candidate, !directoryExists, state);\n    if (resolvedFromFile) {\n      const packageDirectory = parseNodeModuleFromPath(resolvedFromFile.path);\n      const packageInfo = packageDirectory ? getPackageJsonInfo(\n        packageDirectory,\n        /*onlyRecordFailures*/\n        false,\n        state\n      ) : void 0;\n      return toSearchResult(withPackageId(packageInfo, resolvedFromFile, state));\n    }\n    const resolved = loadNodeModuleFromDirectory(4 /* Declaration */, candidate, !directoryExists, state);\n    if (resolved) return toSearchResult(resolved);\n  }\n}\nfunction shouldAllowImportingTsExtension(compilerOptions, fromFileName) {\n  return getAllowImportingTsExtensions(compilerOptions) || !!fromFileName && isDeclarationFileName(fromFileName);\n}\nfunction loadModuleFromGlobalCache(moduleName, projectName, compilerOptions, host, globalCache, packageJsonInfoCache) {\n  const traceEnabled = isTraceEnabled(compilerOptions, host);\n  if (traceEnabled) {\n    trace(host, Diagnostics.Auto_discovery_for_typings_is_enabled_in_project_0_Running_extra_resolution_pass_for_module_1_using_cache_location_2, projectName, moduleName, globalCache);\n  }\n  const failedLookupLocations = [];\n  const affectingLocations = [];\n  const diagnostics = [];\n  const state = {\n    compilerOptions,\n    host,\n    traceEnabled,\n    failedLookupLocations,\n    affectingLocations,\n    packageJsonInfoCache,\n    features: 0 /* None */,\n    conditions: [],\n    requestContainingDirectory: void 0,\n    reportDiagnostic: (diag2) => void diagnostics.push(diag2),\n    isConfigLookup: false,\n    candidateIsFromPackageJsonField: false,\n    resolvedPackageDirectory: false\n  };\n  const resolved = loadModuleFromImmediateNodeModulesDirectory(\n    4 /* Declaration */,\n    moduleName,\n    globalCache,\n    state,\n    /*typesScopeOnly*/\n    false,\n    /*cache*/\n    void 0,\n    /*redirectedReference*/\n    void 0\n  );\n  return createResolvedModuleWithFailedLookupLocations(\n    resolved,\n    /*isExternalLibraryImport*/\n    true,\n    failedLookupLocations,\n    affectingLocations,\n    diagnostics,\n    state.resultFromCache,\n    /*cache*/\n    void 0\n  );\n}\nfunction toSearchResult(value) {\n  return value !== void 0 ? { value } : void 0;\n}\nfunction traceIfEnabled(state, diagnostic, ...args) {\n  if (state.traceEnabled) {\n    trace(state.host, diagnostic, ...args);\n  }\n}\nfunction useCaseSensitiveFileNames(state) {\n  return !state.host.useCaseSensitiveFileNames ? true : typeof state.host.useCaseSensitiveFileNames === \"boolean\" ? state.host.useCaseSensitiveFileNames : state.host.useCaseSensitiveFileNames();\n}\n\n// src/compiler/binder.ts\nvar ModuleInstanceState = /* @__PURE__ */ ((ModuleInstanceState2) => {\n  ModuleInstanceState2[ModuleInstanceState2[\"NonInstantiated\"] = 0] = \"NonInstantiated\";\n  ModuleInstanceState2[ModuleInstanceState2[\"Instantiated\"] = 1] = \"Instantiated\";\n  ModuleInstanceState2[ModuleInstanceState2[\"ConstEnumOnly\"] = 2] = \"ConstEnumOnly\";\n  return ModuleInstanceState2;\n})(ModuleInstanceState || {});\nfunction getModuleInstanceState(node, visited) {\n  if (node.body && !node.body.parent) {\n    setParent(node.body, node);\n    setParentRecursive(\n      node.body,\n      /*incremental*/\n      false\n    );\n  }\n  return node.body ? getModuleInstanceStateCached(node.body, visited) : 1 /* Instantiated */;\n}\nfunction getModuleInstanceStateCached(node, visited = /* @__PURE__ */ new Map()) {\n  const nodeId = getNodeId(node);\n  if (visited.has(nodeId)) {\n    return visited.get(nodeId) || 0 /* NonInstantiated */;\n  }\n  visited.set(nodeId, void 0);\n  const result = getModuleInstanceStateWorker(node, visited);\n  visited.set(nodeId, result);\n  return result;\n}\nfunction getModuleInstanceStateWorker(node, visited) {\n  switch (node.kind) {\n    // 1. interface declarations, type alias declarations\n    case 265 /* InterfaceDeclaration */:\n    case 266 /* TypeAliasDeclaration */:\n      return 0 /* NonInstantiated */;\n    // 2. const enum declarations\n    case 267 /* EnumDeclaration */:\n      if (isEnumConst(node)) {\n        return 2 /* ConstEnumOnly */;\n      }\n      break;\n    // 3. non-exported import declarations\n    case 273 /* ImportDeclaration */:\n    case 272 /* ImportEqualsDeclaration */:\n      if (!hasSyntacticModifier(node, 32 /* Export */)) {\n        return 0 /* NonInstantiated */;\n      }\n      break;\n    // 4. Export alias declarations pointing at only uninstantiated modules or things uninstantiated modules contain\n    case 279 /* ExportDeclaration */:\n      const exportDeclaration = node;\n      if (!exportDeclaration.moduleSpecifier && exportDeclaration.exportClause && exportDeclaration.exportClause.kind === 280 /* NamedExports */) {\n        let state = 0 /* NonInstantiated */;\n        for (const specifier of exportDeclaration.exportClause.elements) {\n          const specifierState = getModuleInstanceStateForAliasTarget(specifier, visited);\n          if (specifierState > state) {\n            state = specifierState;\n          }\n          if (state === 1 /* Instantiated */) {\n            return state;\n          }\n        }\n        return state;\n      }\n      break;\n    // 5. other uninstantiated module declarations.\n    case 269 /* ModuleBlock */: {\n      let state = 0 /* NonInstantiated */;\n      forEachChild(node, (n) => {\n        const childState = getModuleInstanceStateCached(n, visited);\n        switch (childState) {\n          case 0 /* NonInstantiated */:\n            return;\n          case 2 /* ConstEnumOnly */:\n            state = 2 /* ConstEnumOnly */;\n            return;\n          case 1 /* Instantiated */:\n            state = 1 /* Instantiated */;\n            return true;\n          default:\n            Debug.assertNever(childState);\n        }\n      });\n      return state;\n    }\n    case 268 /* ModuleDeclaration */:\n      return getModuleInstanceState(node, visited);\n    case 80 /* Identifier */:\n      if (node.flags & 4096 /* IdentifierIsInJSDocNamespace */) {\n        return 0 /* NonInstantiated */;\n      }\n  }\n  return 1 /* Instantiated */;\n}\nfunction getModuleInstanceStateForAliasTarget(specifier, visited) {\n  const name = specifier.propertyName || specifier.name;\n  if (name.kind !== 80 /* Identifier */) {\n    return 1 /* Instantiated */;\n  }\n  let p = specifier.parent;\n  while (p) {\n    if (isBlock(p) || isModuleBlock(p) || isSourceFile(p)) {\n      const statements = p.statements;\n      let found;\n      for (const statement of statements) {\n        if (nodeHasName(statement, name)) {\n          if (!statement.parent) {\n            setParent(statement, p);\n            setParentRecursive(\n              statement,\n              /*incremental*/\n              false\n            );\n          }\n          const state = getModuleInstanceStateCached(statement, visited);\n          if (found === void 0 || state > found) {\n            found = state;\n          }\n          if (found === 1 /* Instantiated */) {\n            return found;\n          }\n          if (statement.kind === 272 /* ImportEqualsDeclaration */) {\n            found = 1 /* Instantiated */;\n          }\n        }\n      }\n      if (found !== void 0) {\n        return found;\n      }\n    }\n    p = p.parent;\n  }\n  return 1 /* Instantiated */;\n}\nvar ContainerFlags = /* @__PURE__ */ ((ContainerFlags2) => {\n  ContainerFlags2[ContainerFlags2[\"None\"] = 0] = \"None\";\n  ContainerFlags2[ContainerFlags2[\"IsContainer\"] = 1] = \"IsContainer\";\n  ContainerFlags2[ContainerFlags2[\"IsBlockScopedContainer\"] = 2] = \"IsBlockScopedContainer\";\n  ContainerFlags2[ContainerFlags2[\"IsControlFlowContainer\"] = 4] = \"IsControlFlowContainer\";\n  ContainerFlags2[ContainerFlags2[\"IsFunctionLike\"] = 8] = \"IsFunctionLike\";\n  ContainerFlags2[ContainerFlags2[\"IsFunctionExpression\"] = 16] = \"IsFunctionExpression\";\n  ContainerFlags2[ContainerFlags2[\"HasLocals\"] = 32] = \"HasLocals\";\n  ContainerFlags2[ContainerFlags2[\"IsInterface\"] = 64] = \"IsInterface\";\n  ContainerFlags2[ContainerFlags2[\"IsObjectLiteralOrClassExpressionMethodOrAccessor\"] = 128] = \"IsObjectLiteralOrClassExpressionMethodOrAccessor\";\n  return ContainerFlags2;\n})(ContainerFlags || {});\nfunction createFlowNode(flags, node, antecedent) {\n  return Debug.attachFlowNodeDebugInfo({ flags, id: 0, node, antecedent });\n}\nvar binder = /* @__PURE__ */ createBinder();\nfunction bindSourceFile(file, options) {\n  mark(\"beforeBind\");\n  binder(file, options);\n  mark(\"afterBind\");\n  measure(\"Bind\", \"beforeBind\", \"afterBind\");\n}\nfunction createBinder() {\n  var file;\n  var options;\n  var languageVersion;\n  var parent2;\n  var container;\n  var thisParentContainer;\n  var blockScopeContainer;\n  var lastContainer;\n  var delayedTypeAliases;\n  var seenThisKeyword;\n  var jsDocImports;\n  var currentFlow;\n  var currentBreakTarget;\n  var currentContinueTarget;\n  var currentReturnTarget;\n  var currentTrueTarget;\n  var currentFalseTarget;\n  var currentExceptionTarget;\n  var preSwitchCaseFlow;\n  var activeLabelList;\n  var hasExplicitReturn;\n  var inReturnPosition;\n  var hasFlowEffects;\n  var emitFlags;\n  var inStrictMode;\n  var inAssignmentPattern = false;\n  var symbolCount = 0;\n  var Symbol48;\n  var classifiableNames;\n  var unreachableFlow = createFlowNode(\n    1 /* Unreachable */,\n    /*node*/\n    void 0,\n    /*antecedent*/\n    void 0\n  );\n  var reportedUnreachableFlow = createFlowNode(\n    1 /* Unreachable */,\n    /*node*/\n    void 0,\n    /*antecedent*/\n    void 0\n  );\n  var bindBinaryExpressionFlow = createBindBinaryExpressionFlow();\n  return bindSourceFile2;\n  function createDiagnosticForNode2(node, message, ...args) {\n    return createDiagnosticForNodeInSourceFile(getSourceFileOfNode(node) || file, node, message, ...args);\n  }\n  function bindSourceFile2(f, opts) {\n    var _a, _b;\n    file = f;\n    options = opts;\n    languageVersion = getEmitScriptTarget(options);\n    inStrictMode = bindInStrictMode(file, opts);\n    classifiableNames = /* @__PURE__ */ new Set();\n    symbolCount = 0;\n    Symbol48 = objectAllocator.getSymbolConstructor();\n    Debug.attachFlowNodeDebugInfo(unreachableFlow);\n    Debug.attachFlowNodeDebugInfo(reportedUnreachableFlow);\n    if (!file.locals) {\n      (_a = tracing) == null ? void 0 : _a.push(\n        tracing.Phase.Bind,\n        \"bindSourceFile\",\n        { path: file.path },\n        /*separateBeginAndEnd*/\n        true\n      );\n      bind(file);\n      (_b = tracing) == null ? void 0 : _b.pop();\n      file.symbolCount = symbolCount;\n      file.classifiableNames = classifiableNames;\n      delayedBindJSDocTypedefTag();\n      bindJSDocImports();\n    }\n    file = void 0;\n    options = void 0;\n    languageVersion = void 0;\n    parent2 = void 0;\n    container = void 0;\n    thisParentContainer = void 0;\n    blockScopeContainer = void 0;\n    lastContainer = void 0;\n    delayedTypeAliases = void 0;\n    jsDocImports = void 0;\n    seenThisKeyword = false;\n    currentFlow = void 0;\n    currentBreakTarget = void 0;\n    currentContinueTarget = void 0;\n    currentReturnTarget = void 0;\n    currentTrueTarget = void 0;\n    currentFalseTarget = void 0;\n    currentExceptionTarget = void 0;\n    activeLabelList = void 0;\n    hasExplicitReturn = false;\n    inReturnPosition = false;\n    hasFlowEffects = false;\n    inAssignmentPattern = false;\n    emitFlags = 0 /* None */;\n  }\n  function bindInStrictMode(file2, opts) {\n    if (getStrictOptionValue(opts, \"alwaysStrict\") && !file2.isDeclarationFile) {\n      return true;\n    } else {\n      return !!file2.externalModuleIndicator;\n    }\n  }\n  function createSymbol(flags, name) {\n    symbolCount++;\n    return new Symbol48(flags, name);\n  }\n  function addDeclarationToSymbol(symbol, node, symbolFlags) {\n    symbol.flags |= symbolFlags;\n    node.symbol = symbol;\n    symbol.declarations = appendIfUnique(symbol.declarations, node);\n    if (symbolFlags & (32 /* Class */ | 384 /* Enum */ | 1536 /* Module */ | 3 /* Variable */) && !symbol.exports) {\n      symbol.exports = createSymbolTable();\n    }\n    if (symbolFlags & (32 /* Class */ | 64 /* Interface */ | 2048 /* TypeLiteral */ | 4096 /* ObjectLiteral */) && !symbol.members) {\n      symbol.members = createSymbolTable();\n    }\n    if (symbol.constEnumOnlyModule && symbol.flags & (16 /* Function */ | 32 /* Class */ | 256 /* RegularEnum */)) {\n      symbol.constEnumOnlyModule = false;\n    }\n    if (symbolFlags & 111551 /* Value */) {\n      setValueDeclaration(symbol, node);\n    }\n  }\n  function getDeclarationName(node) {\n    if (node.kind === 278 /* ExportAssignment */) {\n      return node.isExportEquals ? \"export=\" /* ExportEquals */ : \"default\" /* Default */;\n    }\n    const name = getNameOfDeclaration(node);\n    if (name) {\n      if (isAmbientModule(node)) {\n        const moduleName = getTextOfIdentifierOrLiteral(name);\n        return isGlobalScopeAugmentation(node) ? \"__global\" : `\"${moduleName}\"`;\n      }\n      if (name.kind === 168 /* ComputedPropertyName */) {\n        const nameExpression = name.expression;\n        if (isStringOrNumericLiteralLike(nameExpression)) {\n          return escapeLeadingUnderscores(nameExpression.text);\n        }\n        if (isSignedNumericLiteral(nameExpression)) {\n          return tokenToString(nameExpression.operator) + nameExpression.operand.text;\n        } else {\n          Debug.fail(\"Only computed properties with literal names have declaration names\");\n        }\n      }\n      if (isPrivateIdentifier(name)) {\n        const containingClass = getContainingClass(node);\n        if (!containingClass) {\n          return void 0;\n        }\n        const containingClassSymbol = containingClass.symbol;\n        return getSymbolNameForPrivateIdentifier(containingClassSymbol, name.escapedText);\n      }\n      if (isJsxNamespacedName(name)) {\n        return getEscapedTextOfJsxNamespacedName(name);\n      }\n      return isPropertyNameLiteral(name) ? getEscapedTextOfIdentifierOrLiteral(name) : void 0;\n    }\n    switch (node.kind) {\n      case 177 /* Constructor */:\n        return \"__constructor\" /* Constructor */;\n      case 185 /* FunctionType */:\n      case 180 /* CallSignature */:\n      case 324 /* JSDocSignature */:\n        return \"__call\" /* Call */;\n      case 186 /* ConstructorType */:\n      case 181 /* ConstructSignature */:\n        return \"__new\" /* New */;\n      case 182 /* IndexSignature */:\n        return \"__index\" /* Index */;\n      case 279 /* ExportDeclaration */:\n        return \"__export\" /* ExportStar */;\n      case 308 /* SourceFile */:\n        return \"export=\" /* ExportEquals */;\n      case 227 /* BinaryExpression */:\n        if (getAssignmentDeclarationKind(node) === 2 /* ModuleExports */) {\n          return \"export=\" /* ExportEquals */;\n        }\n        Debug.fail(\"Unknown binary declaration kind\");\n        break;\n      case 318 /* JSDocFunctionType */:\n        return isJSDocConstructSignature(node) ? \"__new\" /* New */ : \"__call\" /* Call */;\n      case 170 /* Parameter */:\n        Debug.assert(node.parent.kind === 318 /* JSDocFunctionType */, \"Impossible parameter parent kind\", () => `parent is: ${Debug.formatSyntaxKind(node.parent.kind)}, expected JSDocFunctionType`);\n        const functionType = node.parent;\n        const index = functionType.parameters.indexOf(node);\n        return \"arg\" + index;\n    }\n  }\n  function getDisplayName(node) {\n    return isNamedDeclaration(node) ? declarationNameToString(node.name) : unescapeLeadingUnderscores(Debug.checkDefined(getDeclarationName(node)));\n  }\n  function declareSymbol(symbolTable, parent3, node, includes, excludes, isReplaceableByMethod, isComputedName) {\n    Debug.assert(isComputedName || !hasDynamicName(node));\n    const isDefaultExport = hasSyntacticModifier(node, 2048 /* Default */) || isExportSpecifier(node) && moduleExportNameIsDefault(node.name);\n    const name = isComputedName ? \"__computed\" /* Computed */ : isDefaultExport && parent3 ? \"default\" /* Default */ : getDeclarationName(node);\n    let symbol;\n    if (name === void 0) {\n      symbol = createSymbol(0 /* None */, \"__missing\" /* Missing */);\n    } else {\n      symbol = symbolTable.get(name);\n      if (includes & 2885600 /* Classifiable */) {\n        classifiableNames.add(name);\n      }\n      if (!symbol) {\n        symbolTable.set(name, symbol = createSymbol(0 /* None */, name));\n        if (isReplaceableByMethod) symbol.isReplaceableByMethod = true;\n      } else if (isReplaceableByMethod && !symbol.isReplaceableByMethod) {\n        return symbol;\n      } else if (symbol.flags & excludes) {\n        if (symbol.isReplaceableByMethod) {\n          symbolTable.set(name, symbol = createSymbol(0 /* None */, name));\n        } else if (!(includes & 3 /* Variable */ && symbol.flags & 67108864 /* Assignment */)) {\n          if (isNamedDeclaration(node)) {\n            setParent(node.name, node);\n          }\n          let message = symbol.flags & 2 /* BlockScopedVariable */ ? Diagnostics.Cannot_redeclare_block_scoped_variable_0 : Diagnostics.Duplicate_identifier_0;\n          let messageNeedsName = true;\n          if (symbol.flags & 384 /* Enum */ || includes & 384 /* Enum */) {\n            message = Diagnostics.Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations;\n            messageNeedsName = false;\n          }\n          let multipleDefaultExports = false;\n          if (length(symbol.declarations)) {\n            if (isDefaultExport) {\n              message = Diagnostics.A_module_cannot_have_multiple_default_exports;\n              messageNeedsName = false;\n              multipleDefaultExports = true;\n            } else {\n              if (symbol.declarations && symbol.declarations.length && (node.kind === 278 /* ExportAssignment */ && !node.isExportEquals)) {\n                message = Diagnostics.A_module_cannot_have_multiple_default_exports;\n                messageNeedsName = false;\n                multipleDefaultExports = true;\n              }\n            }\n          }\n          const relatedInformation = [];\n          if (isTypeAliasDeclaration(node) && nodeIsMissing(node.type) && hasSyntacticModifier(node, 32 /* Export */) && symbol.flags & (2097152 /* Alias */ | 788968 /* Type */ | 1920 /* Namespace */)) {\n            relatedInformation.push(createDiagnosticForNode2(node, Diagnostics.Did_you_mean_0, `export type { ${unescapeLeadingUnderscores(node.name.escapedText)} }`));\n          }\n          const declarationName = getNameOfDeclaration(node) || node;\n          forEach(symbol.declarations, (declaration, index) => {\n            const decl = getNameOfDeclaration(declaration) || declaration;\n            const diag3 = messageNeedsName ? createDiagnosticForNode2(decl, message, getDisplayName(declaration)) : createDiagnosticForNode2(decl, message);\n            file.bindDiagnostics.push(\n              multipleDefaultExports ? addRelatedInfo(diag3, createDiagnosticForNode2(declarationName, index === 0 ? Diagnostics.Another_export_default_is_here : Diagnostics.and_here)) : diag3\n            );\n            if (multipleDefaultExports) {\n              relatedInformation.push(createDiagnosticForNode2(decl, Diagnostics.The_first_export_default_is_here));\n            }\n          });\n          const diag2 = messageNeedsName ? createDiagnosticForNode2(declarationName, message, getDisplayName(node)) : createDiagnosticForNode2(declarationName, message);\n          file.bindDiagnostics.push(addRelatedInfo(diag2, ...relatedInformation));\n          symbol = createSymbol(0 /* None */, name);\n        }\n      }\n    }\n    addDeclarationToSymbol(symbol, node, includes);\n    if (symbol.parent) {\n      Debug.assert(symbol.parent === parent3, \"Existing symbol parent should match new one\");\n    } else {\n      symbol.parent = parent3;\n    }\n    return symbol;\n  }\n  function declareModuleMember(node, symbolFlags, symbolExcludes) {\n    const hasExportModifier = !!(getCombinedModifierFlags(node) & 32 /* Export */) || jsdocTreatAsExported(node);\n    if (symbolFlags & 2097152 /* Alias */) {\n      if (node.kind === 282 /* ExportSpecifier */ || node.kind === 272 /* ImportEqualsDeclaration */ && hasExportModifier) {\n        return declareSymbol(container.symbol.exports, container.symbol, node, symbolFlags, symbolExcludes);\n      } else {\n        Debug.assertNode(container, canHaveLocals);\n        return declareSymbol(\n          container.locals,\n          /*parent*/\n          void 0,\n          node,\n          symbolFlags,\n          symbolExcludes\n        );\n      }\n    } else {\n      if (isJSDocTypeAlias(node)) Debug.assert(isInJSFile(node));\n      if (!isAmbientModule(node) && (hasExportModifier || container.flags & 128 /* ExportContext */)) {\n        if (!canHaveLocals(container) || !container.locals || hasSyntacticModifier(node, 2048 /* Default */) && !getDeclarationName(node)) {\n          return declareSymbol(container.symbol.exports, container.symbol, node, symbolFlags, symbolExcludes);\n        }\n        const exportKind = symbolFlags & 111551 /* Value */ ? 1048576 /* ExportValue */ : 0;\n        const local = declareSymbol(\n          container.locals,\n          /*parent*/\n          void 0,\n          node,\n          exportKind,\n          symbolExcludes\n        );\n        local.exportSymbol = declareSymbol(container.symbol.exports, container.symbol, node, symbolFlags, symbolExcludes);\n        node.localSymbol = local;\n        return local;\n      } else {\n        Debug.assertNode(container, canHaveLocals);\n        return declareSymbol(\n          container.locals,\n          /*parent*/\n          void 0,\n          node,\n          symbolFlags,\n          symbolExcludes\n        );\n      }\n    }\n  }\n  function jsdocTreatAsExported(node) {\n    if (node.parent && isModuleDeclaration(node)) {\n      node = node.parent;\n    }\n    if (!isJSDocTypeAlias(node)) return false;\n    if (!isJSDocEnumTag(node) && !!node.fullName) return true;\n    const declName = getNameOfDeclaration(node);\n    if (!declName) return false;\n    if (isPropertyAccessEntityNameExpression(declName.parent) && isTopLevelNamespaceAssignment(declName.parent)) return true;\n    if (isDeclaration(declName.parent) && getCombinedModifierFlags(declName.parent) & 32 /* Export */) return true;\n    return false;\n  }\n  function bindContainer(node, containerFlags) {\n    const saveContainer = container;\n    const saveThisParentContainer = thisParentContainer;\n    const savedBlockScopeContainer = blockScopeContainer;\n    const savedInReturnPosition = inReturnPosition;\n    if (node.kind === 220 /* ArrowFunction */ && node.body.kind !== 242 /* Block */) inReturnPosition = true;\n    if (containerFlags & 1 /* IsContainer */) {\n      if (node.kind !== 220 /* ArrowFunction */) {\n        thisParentContainer = container;\n      }\n      container = blockScopeContainer = node;\n      if (containerFlags & 32 /* HasLocals */) {\n        container.locals = createSymbolTable();\n        addToContainerChain(container);\n      }\n    } else if (containerFlags & 2 /* IsBlockScopedContainer */) {\n      blockScopeContainer = node;\n      if (containerFlags & 32 /* HasLocals */) {\n        blockScopeContainer.locals = void 0;\n      }\n    }\n    if (containerFlags & 4 /* IsControlFlowContainer */) {\n      const saveCurrentFlow = currentFlow;\n      const saveBreakTarget = currentBreakTarget;\n      const saveContinueTarget = currentContinueTarget;\n      const saveReturnTarget = currentReturnTarget;\n      const saveExceptionTarget = currentExceptionTarget;\n      const saveActiveLabelList = activeLabelList;\n      const saveHasExplicitReturn = hasExplicitReturn;\n      const isImmediatelyInvoked = containerFlags & 16 /* IsFunctionExpression */ && !hasSyntacticModifier(node, 1024 /* Async */) && !node.asteriskToken && !!getImmediatelyInvokedFunctionExpression(node) || node.kind === 176 /* ClassStaticBlockDeclaration */;\n      if (!isImmediatelyInvoked) {\n        currentFlow = createFlowNode(\n          2 /* Start */,\n          /*node*/\n          void 0,\n          /*antecedent*/\n          void 0\n        );\n        if (containerFlags & (16 /* IsFunctionExpression */ | 128 /* IsObjectLiteralOrClassExpressionMethodOrAccessor */)) {\n          currentFlow.node = node;\n        }\n      }\n      currentReturnTarget = isImmediatelyInvoked || node.kind === 177 /* Constructor */ || isInJSFile(node) && (node.kind === 263 /* FunctionDeclaration */ || node.kind === 219 /* FunctionExpression */) ? createBranchLabel() : void 0;\n      currentExceptionTarget = void 0;\n      currentBreakTarget = void 0;\n      currentContinueTarget = void 0;\n      activeLabelList = void 0;\n      hasExplicitReturn = false;\n      bindChildren(node);\n      node.flags &= ~5632 /* ReachabilityAndEmitFlags */;\n      if (!(currentFlow.flags & 1 /* Unreachable */) && containerFlags & 8 /* IsFunctionLike */ && nodeIsPresent(node.body)) {\n        node.flags |= 512 /* HasImplicitReturn */;\n        if (hasExplicitReturn) node.flags |= 1024 /* HasExplicitReturn */;\n        node.endFlowNode = currentFlow;\n      }\n      if (node.kind === 308 /* SourceFile */) {\n        node.flags |= emitFlags;\n        node.endFlowNode = currentFlow;\n      }\n      if (currentReturnTarget) {\n        addAntecedent(currentReturnTarget, currentFlow);\n        currentFlow = finishFlowLabel(currentReturnTarget);\n        if (node.kind === 177 /* Constructor */ || node.kind === 176 /* ClassStaticBlockDeclaration */ || isInJSFile(node) && (node.kind === 263 /* FunctionDeclaration */ || node.kind === 219 /* FunctionExpression */)) {\n          node.returnFlowNode = currentFlow;\n        }\n      }\n      if (!isImmediatelyInvoked) {\n        currentFlow = saveCurrentFlow;\n      }\n      currentBreakTarget = saveBreakTarget;\n      currentContinueTarget = saveContinueTarget;\n      currentReturnTarget = saveReturnTarget;\n      currentExceptionTarget = saveExceptionTarget;\n      activeLabelList = saveActiveLabelList;\n      hasExplicitReturn = saveHasExplicitReturn;\n    } else if (containerFlags & 64 /* IsInterface */) {\n      seenThisKeyword = false;\n      bindChildren(node);\n      Debug.assertNotNode(node, isIdentifier);\n      node.flags = seenThisKeyword ? node.flags | 256 /* ContainsThis */ : node.flags & ~256 /* ContainsThis */;\n    } else {\n      bindChildren(node);\n    }\n    inReturnPosition = savedInReturnPosition;\n    container = saveContainer;\n    thisParentContainer = saveThisParentContainer;\n    blockScopeContainer = savedBlockScopeContainer;\n  }\n  function bindEachFunctionsFirst(nodes) {\n    bindEach(nodes, (n) => n.kind === 263 /* FunctionDeclaration */ ? bind(n) : void 0);\n    bindEach(nodes, (n) => n.kind !== 263 /* FunctionDeclaration */ ? bind(n) : void 0);\n  }\n  function bindEach(nodes, bindFunction = bind) {\n    if (nodes === void 0) {\n      return;\n    }\n    forEach(nodes, bindFunction);\n  }\n  function bindEachChild(node) {\n    forEachChild(node, bind, bindEach);\n  }\n  function bindChildren(node) {\n    const saveInAssignmentPattern = inAssignmentPattern;\n    inAssignmentPattern = false;\n    if (checkUnreachable(node)) {\n      if (canHaveFlowNode(node) && node.flowNode) {\n        node.flowNode = void 0;\n      }\n      bindEachChild(node);\n      bindJSDoc(node);\n      inAssignmentPattern = saveInAssignmentPattern;\n      return;\n    }\n    if (node.kind >= 244 /* FirstStatement */ && node.kind <= 260 /* LastStatement */ && (!options.allowUnreachableCode || node.kind === 254 /* ReturnStatement */)) {\n      node.flowNode = currentFlow;\n    }\n    switch (node.kind) {\n      case 248 /* WhileStatement */:\n        bindWhileStatement(node);\n        break;\n      case 247 /* DoStatement */:\n        bindDoStatement(node);\n        break;\n      case 249 /* ForStatement */:\n        bindForStatement(node);\n        break;\n      case 250 /* ForInStatement */:\n      case 251 /* ForOfStatement */:\n        bindForInOrForOfStatement(node);\n        break;\n      case 246 /* IfStatement */:\n        bindIfStatement(node);\n        break;\n      case 254 /* ReturnStatement */:\n      case 258 /* ThrowStatement */:\n        bindReturnOrThrow(node);\n        break;\n      case 253 /* BreakStatement */:\n      case 252 /* ContinueStatement */:\n        bindBreakOrContinueStatement(node);\n        break;\n      case 259 /* TryStatement */:\n        bindTryStatement(node);\n        break;\n      case 256 /* SwitchStatement */:\n        bindSwitchStatement(node);\n        break;\n      case 270 /* CaseBlock */:\n        bindCaseBlock(node);\n        break;\n      case 297 /* CaseClause */:\n        bindCaseClause(node);\n        break;\n      case 245 /* ExpressionStatement */:\n        bindExpressionStatement(node);\n        break;\n      case 257 /* LabeledStatement */:\n        bindLabeledStatement(node);\n        break;\n      case 225 /* PrefixUnaryExpression */:\n        bindPrefixUnaryExpressionFlow(node);\n        break;\n      case 226 /* PostfixUnaryExpression */:\n        bindPostfixUnaryExpressionFlow(node);\n        break;\n      case 227 /* BinaryExpression */:\n        if (isDestructuringAssignment(node)) {\n          inAssignmentPattern = saveInAssignmentPattern;\n          bindDestructuringAssignmentFlow(node);\n          return;\n        }\n        bindBinaryExpressionFlow(node);\n        break;\n      case 221 /* DeleteExpression */:\n        bindDeleteExpressionFlow(node);\n        break;\n      case 228 /* ConditionalExpression */:\n        bindConditionalExpressionFlow(node);\n        break;\n      case 261 /* VariableDeclaration */:\n        bindVariableDeclarationFlow(node);\n        break;\n      case 212 /* PropertyAccessExpression */:\n      case 213 /* ElementAccessExpression */:\n        bindAccessExpressionFlow(node);\n        break;\n      case 214 /* CallExpression */:\n        bindCallExpressionFlow(node);\n        break;\n      case 236 /* NonNullExpression */:\n        bindNonNullExpressionFlow(node);\n        break;\n      case 347 /* JSDocTypedefTag */:\n      case 339 /* JSDocCallbackTag */:\n      case 341 /* JSDocEnumTag */:\n        bindJSDocTypeAlias(node);\n        break;\n      case 352 /* JSDocImportTag */:\n        bindJSDocImportTag(node);\n        break;\n      // In source files and blocks, bind functions first to match hoisting that occurs at runtime\n      case 308 /* SourceFile */: {\n        bindEachFunctionsFirst(node.statements);\n        bind(node.endOfFileToken);\n        break;\n      }\n      case 242 /* Block */:\n      case 269 /* ModuleBlock */:\n        bindEachFunctionsFirst(node.statements);\n        break;\n      case 209 /* BindingElement */:\n        bindBindingElementFlow(node);\n        break;\n      case 170 /* Parameter */:\n        bindParameterFlow(node);\n        break;\n      case 211 /* ObjectLiteralExpression */:\n      case 210 /* ArrayLiteralExpression */:\n      case 304 /* PropertyAssignment */:\n      case 231 /* SpreadElement */:\n        inAssignmentPattern = saveInAssignmentPattern;\n      // falls through\n      default:\n        bindEachChild(node);\n        break;\n    }\n    bindJSDoc(node);\n    inAssignmentPattern = saveInAssignmentPattern;\n  }\n  function isNarrowingExpression(expr) {\n    switch (expr.kind) {\n      case 80 /* Identifier */:\n      case 110 /* ThisKeyword */:\n        return true;\n      case 212 /* PropertyAccessExpression */:\n      case 213 /* ElementAccessExpression */:\n        return containsNarrowableReference(expr);\n      case 214 /* CallExpression */:\n        return hasNarrowableArgument(expr);\n      case 218 /* ParenthesizedExpression */:\n        if (isJSDocTypeAssertion(expr)) {\n          return false;\n        }\n      // fallthrough\n      case 236 /* NonNullExpression */:\n        return isNarrowingExpression(expr.expression);\n      case 227 /* BinaryExpression */:\n        return isNarrowingBinaryExpression(expr);\n      case 225 /* PrefixUnaryExpression */:\n        return expr.operator === 54 /* ExclamationToken */ && isNarrowingExpression(expr.operand);\n      case 222 /* TypeOfExpression */:\n        return isNarrowingExpression(expr.expression);\n    }\n    return false;\n  }\n  function isNarrowableReference(expr) {\n    switch (expr.kind) {\n      case 80 /* Identifier */:\n      case 110 /* ThisKeyword */:\n      case 108 /* SuperKeyword */:\n      case 237 /* MetaProperty */:\n        return true;\n      case 212 /* PropertyAccessExpression */:\n      case 218 /* ParenthesizedExpression */:\n      case 236 /* NonNullExpression */:\n        return isNarrowableReference(expr.expression);\n      case 213 /* ElementAccessExpression */:\n        return (isStringOrNumericLiteralLike(expr.argumentExpression) || isEntityNameExpression(expr.argumentExpression)) && isNarrowableReference(expr.expression);\n      case 227 /* BinaryExpression */:\n        return expr.operatorToken.kind === 28 /* CommaToken */ && isNarrowableReference(expr.right) || isAssignmentOperator(expr.operatorToken.kind) && isLeftHandSideExpression(expr.left);\n    }\n    return false;\n  }\n  function containsNarrowableReference(expr) {\n    return isNarrowableReference(expr) || isOptionalChain(expr) && containsNarrowableReference(expr.expression);\n  }\n  function hasNarrowableArgument(expr) {\n    if (expr.arguments) {\n      for (const argument of expr.arguments) {\n        if (containsNarrowableReference(argument)) {\n          return true;\n        }\n      }\n    }\n    if (expr.expression.kind === 212 /* PropertyAccessExpression */ && containsNarrowableReference(expr.expression.expression)) {\n      return true;\n    }\n    return false;\n  }\n  function isNarrowingTypeofOperands(expr1, expr2) {\n    return isTypeOfExpression(expr1) && isNarrowableOperand(expr1.expression) && isStringLiteralLike(expr2);\n  }\n  function isNarrowingBinaryExpression(expr) {\n    switch (expr.operatorToken.kind) {\n      case 64 /* EqualsToken */:\n      case 76 /* BarBarEqualsToken */:\n      case 77 /* AmpersandAmpersandEqualsToken */:\n      case 78 /* QuestionQuestionEqualsToken */:\n        return containsNarrowableReference(expr.left);\n      case 35 /* EqualsEqualsToken */:\n      case 36 /* ExclamationEqualsToken */:\n      case 37 /* EqualsEqualsEqualsToken */:\n      case 38 /* ExclamationEqualsEqualsToken */:\n        const left = skipParentheses(expr.left);\n        const right = skipParentheses(expr.right);\n        return isNarrowableOperand(left) || isNarrowableOperand(right) || isNarrowingTypeofOperands(right, left) || isNarrowingTypeofOperands(left, right) || (isBooleanLiteral(right) && isNarrowingExpression(left) || isBooleanLiteral(left) && isNarrowingExpression(right));\n      case 104 /* InstanceOfKeyword */:\n        return isNarrowableOperand(expr.left);\n      case 103 /* InKeyword */:\n        return isNarrowingExpression(expr.right);\n      case 28 /* CommaToken */:\n        return isNarrowingExpression(expr.right);\n    }\n    return false;\n  }\n  function isNarrowableOperand(expr) {\n    switch (expr.kind) {\n      case 218 /* ParenthesizedExpression */:\n        return isNarrowableOperand(expr.expression);\n      case 227 /* BinaryExpression */:\n        switch (expr.operatorToken.kind) {\n          case 64 /* EqualsToken */:\n            return isNarrowableOperand(expr.left);\n          case 28 /* CommaToken */:\n            return isNarrowableOperand(expr.right);\n        }\n    }\n    return containsNarrowableReference(expr);\n  }\n  function createBranchLabel() {\n    return createFlowNode(\n      4 /* BranchLabel */,\n      /*node*/\n      void 0,\n      /*antecedent*/\n      void 0\n    );\n  }\n  function createLoopLabel() {\n    return createFlowNode(\n      8 /* LoopLabel */,\n      /*node*/\n      void 0,\n      /*antecedent*/\n      void 0\n    );\n  }\n  function createReduceLabel(target, antecedents, antecedent) {\n    return createFlowNode(1024 /* ReduceLabel */, { target, antecedents }, antecedent);\n  }\n  function setFlowNodeReferenced(flow) {\n    flow.flags |= flow.flags & 2048 /* Referenced */ ? 4096 /* Shared */ : 2048 /* Referenced */;\n  }\n  function addAntecedent(label, antecedent) {\n    if (!(antecedent.flags & 1 /* Unreachable */) && !contains(label.antecedent, antecedent)) {\n      (label.antecedent || (label.antecedent = [])).push(antecedent);\n      setFlowNodeReferenced(antecedent);\n    }\n  }\n  function createFlowCondition(flags, antecedent, expression) {\n    if (antecedent.flags & 1 /* Unreachable */) {\n      return antecedent;\n    }\n    if (!expression) {\n      return flags & 32 /* TrueCondition */ ? antecedent : unreachableFlow;\n    }\n    if ((expression.kind === 112 /* TrueKeyword */ && flags & 64 /* FalseCondition */ || expression.kind === 97 /* FalseKeyword */ && flags & 32 /* TrueCondition */) && !isExpressionOfOptionalChainRoot(expression) && !isNullishCoalesce(expression.parent)) {\n      return unreachableFlow;\n    }\n    if (!isNarrowingExpression(expression)) {\n      return antecedent;\n    }\n    setFlowNodeReferenced(antecedent);\n    return createFlowNode(flags, expression, antecedent);\n  }\n  function createFlowSwitchClause(antecedent, switchStatement, clauseStart, clauseEnd) {\n    setFlowNodeReferenced(antecedent);\n    return createFlowNode(128 /* SwitchClause */, { switchStatement, clauseStart, clauseEnd }, antecedent);\n  }\n  function createFlowMutation(flags, antecedent, node) {\n    setFlowNodeReferenced(antecedent);\n    hasFlowEffects = true;\n    const result = createFlowNode(flags, node, antecedent);\n    if (currentExceptionTarget) {\n      addAntecedent(currentExceptionTarget, result);\n    }\n    return result;\n  }\n  function createFlowCall(antecedent, node) {\n    setFlowNodeReferenced(antecedent);\n    hasFlowEffects = true;\n    return createFlowNode(512 /* Call */, node, antecedent);\n  }\n  function finishFlowLabel(flow) {\n    const antecedents = flow.antecedent;\n    if (!antecedents) {\n      return unreachableFlow;\n    }\n    if (antecedents.length === 1) {\n      return antecedents[0];\n    }\n    return flow;\n  }\n  function isStatementCondition(node) {\n    const parent3 = node.parent;\n    switch (parent3.kind) {\n      case 246 /* IfStatement */:\n      case 248 /* WhileStatement */:\n      case 247 /* DoStatement */:\n        return parent3.expression === node;\n      case 249 /* ForStatement */:\n      case 228 /* ConditionalExpression */:\n        return parent3.condition === node;\n    }\n    return false;\n  }\n  function isLogicalExpression(node) {\n    while (true) {\n      if (node.kind === 218 /* ParenthesizedExpression */) {\n        node = node.expression;\n      } else if (node.kind === 225 /* PrefixUnaryExpression */ && node.operator === 54 /* ExclamationToken */) {\n        node = node.operand;\n      } else {\n        return isLogicalOrCoalescingBinaryExpression(node);\n      }\n    }\n  }\n  function isLogicalAssignmentExpression(node) {\n    return isLogicalOrCoalescingAssignmentExpression(skipParentheses(node));\n  }\n  function isTopLevelLogicalExpression(node) {\n    while (isParenthesizedExpression(node.parent) || isPrefixUnaryExpression(node.parent) && node.parent.operator === 54 /* ExclamationToken */) {\n      node = node.parent;\n    }\n    return !isStatementCondition(node) && !isLogicalExpression(node.parent) && !(isOptionalChain(node.parent) && node.parent.expression === node);\n  }\n  function doWithConditionalBranches(action, value, trueTarget, falseTarget) {\n    const savedTrueTarget = currentTrueTarget;\n    const savedFalseTarget = currentFalseTarget;\n    currentTrueTarget = trueTarget;\n    currentFalseTarget = falseTarget;\n    action(value);\n    currentTrueTarget = savedTrueTarget;\n    currentFalseTarget = savedFalseTarget;\n  }\n  function bindCondition(node, trueTarget, falseTarget) {\n    doWithConditionalBranches(bind, node, trueTarget, falseTarget);\n    if (!node || !isLogicalAssignmentExpression(node) && !isLogicalExpression(node) && !(isOptionalChain(node) && isOutermostOptionalChain(node))) {\n      addAntecedent(trueTarget, createFlowCondition(32 /* TrueCondition */, currentFlow, node));\n      addAntecedent(falseTarget, createFlowCondition(64 /* FalseCondition */, currentFlow, node));\n    }\n  }\n  function bindIterativeStatement(node, breakTarget, continueTarget) {\n    const saveBreakTarget = currentBreakTarget;\n    const saveContinueTarget = currentContinueTarget;\n    currentBreakTarget = breakTarget;\n    currentContinueTarget = continueTarget;\n    bind(node);\n    currentBreakTarget = saveBreakTarget;\n    currentContinueTarget = saveContinueTarget;\n  }\n  function setContinueTarget(node, target) {\n    let label = activeLabelList;\n    while (label && node.parent.kind === 257 /* LabeledStatement */) {\n      label.continueTarget = target;\n      label = label.next;\n      node = node.parent;\n    }\n    return target;\n  }\n  function bindWhileStatement(node) {\n    const preWhileLabel = setContinueTarget(node, createLoopLabel());\n    const preBodyLabel = createBranchLabel();\n    const postWhileLabel = createBranchLabel();\n    addAntecedent(preWhileLabel, currentFlow);\n    currentFlow = preWhileLabel;\n    bindCondition(node.expression, preBodyLabel, postWhileLabel);\n    currentFlow = finishFlowLabel(preBodyLabel);\n    bindIterativeStatement(node.statement, postWhileLabel, preWhileLabel);\n    addAntecedent(preWhileLabel, currentFlow);\n    currentFlow = finishFlowLabel(postWhileLabel);\n  }\n  function bindDoStatement(node) {\n    const preDoLabel = createLoopLabel();\n    const preConditionLabel = setContinueTarget(node, createBranchLabel());\n    const postDoLabel = createBranchLabel();\n    addAntecedent(preDoLabel, currentFlow);\n    currentFlow = preDoLabel;\n    bindIterativeStatement(node.statement, postDoLabel, preConditionLabel);\n    addAntecedent(preConditionLabel, currentFlow);\n    currentFlow = finishFlowLabel(preConditionLabel);\n    bindCondition(node.expression, preDoLabel, postDoLabel);\n    currentFlow = finishFlowLabel(postDoLabel);\n  }\n  function bindForStatement(node) {\n    const preLoopLabel = setContinueTarget(node, createLoopLabel());\n    const preBodyLabel = createBranchLabel();\n    const preIncrementorLabel = createBranchLabel();\n    const postLoopLabel = createBranchLabel();\n    bind(node.initializer);\n    addAntecedent(preLoopLabel, currentFlow);\n    currentFlow = preLoopLabel;\n    bindCondition(node.condition, preBodyLabel, postLoopLabel);\n    currentFlow = finishFlowLabel(preBodyLabel);\n    bindIterativeStatement(node.statement, postLoopLabel, preIncrementorLabel);\n    addAntecedent(preIncrementorLabel, currentFlow);\n    currentFlow = finishFlowLabel(preIncrementorLabel);\n    bind(node.incrementor);\n    addAntecedent(preLoopLabel, currentFlow);\n    currentFlow = finishFlowLabel(postLoopLabel);\n  }\n  function bindForInOrForOfStatement(node) {\n    const preLoopLabel = setContinueTarget(node, createLoopLabel());\n    const postLoopLabel = createBranchLabel();\n    bind(node.expression);\n    addAntecedent(preLoopLabel, currentFlow);\n    currentFlow = preLoopLabel;\n    if (node.kind === 251 /* ForOfStatement */) {\n      bind(node.awaitModifier);\n    }\n    addAntecedent(postLoopLabel, currentFlow);\n    bind(node.initializer);\n    if (node.initializer.kind !== 262 /* VariableDeclarationList */) {\n      bindAssignmentTargetFlow(node.initializer);\n    }\n    bindIterativeStatement(node.statement, postLoopLabel, preLoopLabel);\n    addAntecedent(preLoopLabel, currentFlow);\n    currentFlow = finishFlowLabel(postLoopLabel);\n  }\n  function bindIfStatement(node) {\n    const thenLabel = createBranchLabel();\n    const elseLabel = createBranchLabel();\n    const postIfLabel = createBranchLabel();\n    bindCondition(node.expression, thenLabel, elseLabel);\n    currentFlow = finishFlowLabel(thenLabel);\n    bind(node.thenStatement);\n    addAntecedent(postIfLabel, currentFlow);\n    currentFlow = finishFlowLabel(elseLabel);\n    bind(node.elseStatement);\n    addAntecedent(postIfLabel, currentFlow);\n    currentFlow = finishFlowLabel(postIfLabel);\n  }\n  function bindReturnOrThrow(node) {\n    const savedInReturnPosition = inReturnPosition;\n    inReturnPosition = true;\n    bind(node.expression);\n    inReturnPosition = savedInReturnPosition;\n    if (node.kind === 254 /* ReturnStatement */) {\n      hasExplicitReturn = true;\n      if (currentReturnTarget) {\n        addAntecedent(currentReturnTarget, currentFlow);\n      }\n    }\n    currentFlow = unreachableFlow;\n    hasFlowEffects = true;\n  }\n  function findActiveLabel(name) {\n    for (let label = activeLabelList; label; label = label.next) {\n      if (label.name === name) {\n        return label;\n      }\n    }\n    return void 0;\n  }\n  function bindBreakOrContinueFlow(node, breakTarget, continueTarget) {\n    const flowLabel = node.kind === 253 /* BreakStatement */ ? breakTarget : continueTarget;\n    if (flowLabel) {\n      addAntecedent(flowLabel, currentFlow);\n      currentFlow = unreachableFlow;\n      hasFlowEffects = true;\n    }\n  }\n  function bindBreakOrContinueStatement(node) {\n    bind(node.label);\n    if (node.label) {\n      const activeLabel = findActiveLabel(node.label.escapedText);\n      if (activeLabel) {\n        activeLabel.referenced = true;\n        bindBreakOrContinueFlow(node, activeLabel.breakTarget, activeLabel.continueTarget);\n      }\n    } else {\n      bindBreakOrContinueFlow(node, currentBreakTarget, currentContinueTarget);\n    }\n  }\n  function bindTryStatement(node) {\n    const saveReturnTarget = currentReturnTarget;\n    const saveExceptionTarget = currentExceptionTarget;\n    const normalExitLabel = createBranchLabel();\n    const returnLabel = createBranchLabel();\n    let exceptionLabel = createBranchLabel();\n    if (node.finallyBlock) {\n      currentReturnTarget = returnLabel;\n    }\n    addAntecedent(exceptionLabel, currentFlow);\n    currentExceptionTarget = exceptionLabel;\n    bind(node.tryBlock);\n    addAntecedent(normalExitLabel, currentFlow);\n    if (node.catchClause) {\n      currentFlow = finishFlowLabel(exceptionLabel);\n      exceptionLabel = createBranchLabel();\n      addAntecedent(exceptionLabel, currentFlow);\n      currentExceptionTarget = exceptionLabel;\n      bind(node.catchClause);\n      addAntecedent(normalExitLabel, currentFlow);\n    }\n    currentReturnTarget = saveReturnTarget;\n    currentExceptionTarget = saveExceptionTarget;\n    if (node.finallyBlock) {\n      const finallyLabel = createBranchLabel();\n      finallyLabel.antecedent = concatenate(concatenate(normalExitLabel.antecedent, exceptionLabel.antecedent), returnLabel.antecedent);\n      currentFlow = finallyLabel;\n      bind(node.finallyBlock);\n      if (currentFlow.flags & 1 /* Unreachable */) {\n        currentFlow = unreachableFlow;\n      } else {\n        if (currentReturnTarget && returnLabel.antecedent) {\n          addAntecedent(currentReturnTarget, createReduceLabel(finallyLabel, returnLabel.antecedent, currentFlow));\n        }\n        if (currentExceptionTarget && exceptionLabel.antecedent) {\n          addAntecedent(currentExceptionTarget, createReduceLabel(finallyLabel, exceptionLabel.antecedent, currentFlow));\n        }\n        currentFlow = normalExitLabel.antecedent ? createReduceLabel(finallyLabel, normalExitLabel.antecedent, currentFlow) : unreachableFlow;\n      }\n    } else {\n      currentFlow = finishFlowLabel(normalExitLabel);\n    }\n  }\n  function bindSwitchStatement(node) {\n    const postSwitchLabel = createBranchLabel();\n    bind(node.expression);\n    const saveBreakTarget = currentBreakTarget;\n    const savePreSwitchCaseFlow = preSwitchCaseFlow;\n    currentBreakTarget = postSwitchLabel;\n    preSwitchCaseFlow = currentFlow;\n    bind(node.caseBlock);\n    addAntecedent(postSwitchLabel, currentFlow);\n    const hasDefault = forEach(node.caseBlock.clauses, (c) => c.kind === 298 /* DefaultClause */);\n    node.possiblyExhaustive = !hasDefault && !postSwitchLabel.antecedent;\n    if (!hasDefault) {\n      addAntecedent(postSwitchLabel, createFlowSwitchClause(preSwitchCaseFlow, node, 0, 0));\n    }\n    currentBreakTarget = saveBreakTarget;\n    preSwitchCaseFlow = savePreSwitchCaseFlow;\n    currentFlow = finishFlowLabel(postSwitchLabel);\n  }\n  function bindCaseBlock(node) {\n    const clauses = node.clauses;\n    const isNarrowingSwitch = node.parent.expression.kind === 112 /* TrueKeyword */ || isNarrowingExpression(node.parent.expression);\n    let fallthroughFlow = unreachableFlow;\n    for (let i = 0; i < clauses.length; i++) {\n      const clauseStart = i;\n      while (!clauses[i].statements.length && i + 1 < clauses.length) {\n        if (fallthroughFlow === unreachableFlow) {\n          currentFlow = preSwitchCaseFlow;\n        }\n        bind(clauses[i]);\n        i++;\n      }\n      const preCaseLabel = createBranchLabel();\n      addAntecedent(preCaseLabel, isNarrowingSwitch ? createFlowSwitchClause(preSwitchCaseFlow, node.parent, clauseStart, i + 1) : preSwitchCaseFlow);\n      addAntecedent(preCaseLabel, fallthroughFlow);\n      currentFlow = finishFlowLabel(preCaseLabel);\n      const clause = clauses[i];\n      bind(clause);\n      fallthroughFlow = currentFlow;\n      if (!(currentFlow.flags & 1 /* Unreachable */) && i !== clauses.length - 1 && options.noFallthroughCasesInSwitch) {\n        clause.fallthroughFlowNode = currentFlow;\n      }\n    }\n  }\n  function bindCaseClause(node) {\n    const saveCurrentFlow = currentFlow;\n    currentFlow = preSwitchCaseFlow;\n    bind(node.expression);\n    currentFlow = saveCurrentFlow;\n    bindEach(node.statements);\n  }\n  function bindExpressionStatement(node) {\n    bind(node.expression);\n    maybeBindExpressionFlowIfCall(node.expression);\n  }\n  function maybeBindExpressionFlowIfCall(node) {\n    if (node.kind === 214 /* CallExpression */) {\n      const call = node;\n      if (call.expression.kind !== 108 /* SuperKeyword */ && isDottedName(call.expression)) {\n        currentFlow = createFlowCall(currentFlow, call);\n      }\n    }\n  }\n  function bindLabeledStatement(node) {\n    const postStatementLabel = createBranchLabel();\n    activeLabelList = {\n      next: activeLabelList,\n      name: node.label.escapedText,\n      breakTarget: postStatementLabel,\n      continueTarget: void 0,\n      referenced: false\n    };\n    bind(node.label);\n    bind(node.statement);\n    if (!activeLabelList.referenced && !options.allowUnusedLabels) {\n      errorOrSuggestionOnNode(unusedLabelIsError(options), node.label, Diagnostics.Unused_label);\n    }\n    activeLabelList = activeLabelList.next;\n    addAntecedent(postStatementLabel, currentFlow);\n    currentFlow = finishFlowLabel(postStatementLabel);\n  }\n  function bindDestructuringTargetFlow(node) {\n    if (node.kind === 227 /* BinaryExpression */ && node.operatorToken.kind === 64 /* EqualsToken */) {\n      bindAssignmentTargetFlow(node.left);\n    } else {\n      bindAssignmentTargetFlow(node);\n    }\n  }\n  function bindAssignmentTargetFlow(node) {\n    if (isNarrowableReference(node)) {\n      currentFlow = createFlowMutation(16 /* Assignment */, currentFlow, node);\n    } else if (node.kind === 210 /* ArrayLiteralExpression */) {\n      for (const e of node.elements) {\n        if (e.kind === 231 /* SpreadElement */) {\n          bindAssignmentTargetFlow(e.expression);\n        } else {\n          bindDestructuringTargetFlow(e);\n        }\n      }\n    } else if (node.kind === 211 /* ObjectLiteralExpression */) {\n      for (const p of node.properties) {\n        if (p.kind === 304 /* PropertyAssignment */) {\n          bindDestructuringTargetFlow(p.initializer);\n        } else if (p.kind === 305 /* ShorthandPropertyAssignment */) {\n          bindAssignmentTargetFlow(p.name);\n        } else if (p.kind === 306 /* SpreadAssignment */) {\n          bindAssignmentTargetFlow(p.expression);\n        }\n      }\n    }\n  }\n  function bindLogicalLikeExpression(node, trueTarget, falseTarget) {\n    const preRightLabel = createBranchLabel();\n    if (node.operatorToken.kind === 56 /* AmpersandAmpersandToken */ || node.operatorToken.kind === 77 /* AmpersandAmpersandEqualsToken */) {\n      bindCondition(node.left, preRightLabel, falseTarget);\n    } else {\n      bindCondition(node.left, trueTarget, preRightLabel);\n    }\n    currentFlow = finishFlowLabel(preRightLabel);\n    bind(node.operatorToken);\n    if (isLogicalOrCoalescingAssignmentOperator(node.operatorToken.kind)) {\n      doWithConditionalBranches(bind, node.right, trueTarget, falseTarget);\n      bindAssignmentTargetFlow(node.left);\n      addAntecedent(trueTarget, createFlowCondition(32 /* TrueCondition */, currentFlow, node));\n      addAntecedent(falseTarget, createFlowCondition(64 /* FalseCondition */, currentFlow, node));\n    } else {\n      bindCondition(node.right, trueTarget, falseTarget);\n    }\n  }\n  function bindPrefixUnaryExpressionFlow(node) {\n    if (node.operator === 54 /* ExclamationToken */) {\n      const saveTrueTarget = currentTrueTarget;\n      currentTrueTarget = currentFalseTarget;\n      currentFalseTarget = saveTrueTarget;\n      bindEachChild(node);\n      currentFalseTarget = currentTrueTarget;\n      currentTrueTarget = saveTrueTarget;\n    } else {\n      bindEachChild(node);\n      if (node.operator === 46 /* PlusPlusToken */ || node.operator === 47 /* MinusMinusToken */) {\n        bindAssignmentTargetFlow(node.operand);\n      }\n    }\n  }\n  function bindPostfixUnaryExpressionFlow(node) {\n    bindEachChild(node);\n    if (node.operator === 46 /* PlusPlusToken */ || node.operator === 47 /* MinusMinusToken */) {\n      bindAssignmentTargetFlow(node.operand);\n    }\n  }\n  function bindDestructuringAssignmentFlow(node) {\n    if (inAssignmentPattern) {\n      inAssignmentPattern = false;\n      bind(node.operatorToken);\n      bind(node.right);\n      inAssignmentPattern = true;\n      bind(node.left);\n    } else {\n      inAssignmentPattern = true;\n      bind(node.left);\n      inAssignmentPattern = false;\n      bind(node.operatorToken);\n      bind(node.right);\n    }\n    bindAssignmentTargetFlow(node.left);\n  }\n  function createBindBinaryExpressionFlow() {\n    return createBinaryExpressionTrampoline(\n      onEnter,\n      onLeft,\n      onOperator,\n      onRight,\n      onExit,\n      /*foldState*/\n      void 0\n    );\n    function onEnter(node, state) {\n      if (state) {\n        state.stackIndex++;\n        setParent(node, parent2);\n        const saveInStrictMode = inStrictMode;\n        bindWorker(node);\n        const saveParent = parent2;\n        parent2 = node;\n        state.skip = false;\n        state.inStrictModeStack[state.stackIndex] = saveInStrictMode;\n        state.parentStack[state.stackIndex] = saveParent;\n      } else {\n        state = {\n          stackIndex: 0,\n          skip: false,\n          inStrictModeStack: [void 0],\n          parentStack: [void 0]\n        };\n      }\n      const operator = node.operatorToken.kind;\n      if (isLogicalOrCoalescingBinaryOperator(operator) || isLogicalOrCoalescingAssignmentOperator(operator)) {\n        if (isTopLevelLogicalExpression(node)) {\n          const postExpressionLabel = createBranchLabel();\n          const saveCurrentFlow = currentFlow;\n          const saveHasFlowEffects = hasFlowEffects;\n          hasFlowEffects = false;\n          bindLogicalLikeExpression(node, postExpressionLabel, postExpressionLabel);\n          currentFlow = hasFlowEffects ? finishFlowLabel(postExpressionLabel) : saveCurrentFlow;\n          hasFlowEffects || (hasFlowEffects = saveHasFlowEffects);\n        } else {\n          bindLogicalLikeExpression(node, currentTrueTarget, currentFalseTarget);\n        }\n        state.skip = true;\n      }\n      return state;\n    }\n    function onLeft(left, state, node) {\n      if (!state.skip) {\n        const maybeBound = maybeBind2(left);\n        if (node.operatorToken.kind === 28 /* CommaToken */) {\n          maybeBindExpressionFlowIfCall(left);\n        }\n        return maybeBound;\n      }\n    }\n    function onOperator(operatorToken, state, _node) {\n      if (!state.skip) {\n        bind(operatorToken);\n      }\n    }\n    function onRight(right, state, node) {\n      if (!state.skip) {\n        const maybeBound = maybeBind2(right);\n        if (node.operatorToken.kind === 28 /* CommaToken */) {\n          maybeBindExpressionFlowIfCall(right);\n        }\n        return maybeBound;\n      }\n    }\n    function onExit(node, state) {\n      if (!state.skip) {\n        const operator = node.operatorToken.kind;\n        if (isAssignmentOperator(operator) && !isAssignmentTarget(node)) {\n          bindAssignmentTargetFlow(node.left);\n          if (operator === 64 /* EqualsToken */ && node.left.kind === 213 /* ElementAccessExpression */) {\n            const elementAccess = node.left;\n            if (isNarrowableOperand(elementAccess.expression)) {\n              currentFlow = createFlowMutation(256 /* ArrayMutation */, currentFlow, node);\n            }\n          }\n        }\n      }\n      const savedInStrictMode = state.inStrictModeStack[state.stackIndex];\n      const savedParent = state.parentStack[state.stackIndex];\n      if (savedInStrictMode !== void 0) {\n        inStrictMode = savedInStrictMode;\n      }\n      if (savedParent !== void 0) {\n        parent2 = savedParent;\n      }\n      state.skip = false;\n      state.stackIndex--;\n    }\n    function maybeBind2(node) {\n      if (node && isBinaryExpression(node) && !isDestructuringAssignment(node)) {\n        return node;\n      }\n      bind(node);\n    }\n  }\n  function bindDeleteExpressionFlow(node) {\n    bindEachChild(node);\n    if (node.expression.kind === 212 /* PropertyAccessExpression */) {\n      bindAssignmentTargetFlow(node.expression);\n    }\n  }\n  function bindConditionalExpressionFlow(node) {\n    const trueLabel = createBranchLabel();\n    const falseLabel = createBranchLabel();\n    const postExpressionLabel = createBranchLabel();\n    const saveCurrentFlow = currentFlow;\n    const saveHasFlowEffects = hasFlowEffects;\n    hasFlowEffects = false;\n    bindCondition(node.condition, trueLabel, falseLabel);\n    currentFlow = finishFlowLabel(trueLabel);\n    if (inReturnPosition) {\n      node.flowNodeWhenTrue = currentFlow;\n    }\n    bind(node.questionToken);\n    bind(node.whenTrue);\n    addAntecedent(postExpressionLabel, currentFlow);\n    currentFlow = finishFlowLabel(falseLabel);\n    if (inReturnPosition) {\n      node.flowNodeWhenFalse = currentFlow;\n    }\n    bind(node.colonToken);\n    bind(node.whenFalse);\n    addAntecedent(postExpressionLabel, currentFlow);\n    currentFlow = hasFlowEffects ? finishFlowLabel(postExpressionLabel) : saveCurrentFlow;\n    hasFlowEffects || (hasFlowEffects = saveHasFlowEffects);\n  }\n  function bindInitializedVariableFlow(node) {\n    const name = !isOmittedExpression(node) ? node.name : void 0;\n    if (isBindingPattern(name)) {\n      for (const child of name.elements) {\n        bindInitializedVariableFlow(child);\n      }\n    } else {\n      currentFlow = createFlowMutation(16 /* Assignment */, currentFlow, node);\n    }\n  }\n  function bindVariableDeclarationFlow(node) {\n    bindEachChild(node);\n    if (node.initializer || isForInOrOfStatement(node.parent.parent)) {\n      bindInitializedVariableFlow(node);\n    }\n  }\n  function bindBindingElementFlow(node) {\n    bind(node.dotDotDotToken);\n    bind(node.propertyName);\n    bindInitializer(node.initializer);\n    bind(node.name);\n  }\n  function bindParameterFlow(node) {\n    bindEach(node.modifiers);\n    bind(node.dotDotDotToken);\n    bind(node.questionToken);\n    bind(node.type);\n    bindInitializer(node.initializer);\n    bind(node.name);\n  }\n  function bindInitializer(node) {\n    if (!node) {\n      return;\n    }\n    const entryFlow = currentFlow;\n    bind(node);\n    if (entryFlow === unreachableFlow || entryFlow === currentFlow) {\n      return;\n    }\n    const exitFlow = createBranchLabel();\n    addAntecedent(exitFlow, entryFlow);\n    addAntecedent(exitFlow, currentFlow);\n    currentFlow = finishFlowLabel(exitFlow);\n  }\n  function bindJSDocTypeAlias(node) {\n    bind(node.tagName);\n    if (node.kind !== 341 /* JSDocEnumTag */ && node.fullName) {\n      setParent(node.fullName, node);\n      setParentRecursive(\n        node.fullName,\n        /*incremental*/\n        false\n      );\n    }\n    if (typeof node.comment !== \"string\") {\n      bindEach(node.comment);\n    }\n  }\n  function bindJSDocClassTag(node) {\n    bindEachChild(node);\n    const host = getHostSignatureFromJSDoc(node);\n    if (host && host.kind !== 175 /* MethodDeclaration */) {\n      addDeclarationToSymbol(host.symbol, host, 32 /* Class */);\n    }\n  }\n  function bindJSDocImportTag(node) {\n    bind(node.tagName);\n    bind(node.moduleSpecifier);\n    bind(node.attributes);\n    if (typeof node.comment !== \"string\") {\n      bindEach(node.comment);\n    }\n  }\n  function bindOptionalExpression(node, trueTarget, falseTarget) {\n    doWithConditionalBranches(bind, node, trueTarget, falseTarget);\n    if (!isOptionalChain(node) || isOutermostOptionalChain(node)) {\n      addAntecedent(trueTarget, createFlowCondition(32 /* TrueCondition */, currentFlow, node));\n      addAntecedent(falseTarget, createFlowCondition(64 /* FalseCondition */, currentFlow, node));\n    }\n  }\n  function bindOptionalChainRest(node) {\n    switch (node.kind) {\n      case 212 /* PropertyAccessExpression */:\n        bind(node.questionDotToken);\n        bind(node.name);\n        break;\n      case 213 /* ElementAccessExpression */:\n        bind(node.questionDotToken);\n        bind(node.argumentExpression);\n        break;\n      case 214 /* CallExpression */:\n        bind(node.questionDotToken);\n        bindEach(node.typeArguments);\n        bindEach(node.arguments);\n        break;\n    }\n  }\n  function bindOptionalChain(node, trueTarget, falseTarget) {\n    const preChainLabel = isOptionalChainRoot(node) ? createBranchLabel() : void 0;\n    bindOptionalExpression(node.expression, preChainLabel || trueTarget, falseTarget);\n    if (preChainLabel) {\n      currentFlow = finishFlowLabel(preChainLabel);\n    }\n    doWithConditionalBranches(bindOptionalChainRest, node, trueTarget, falseTarget);\n    if (isOutermostOptionalChain(node)) {\n      addAntecedent(trueTarget, createFlowCondition(32 /* TrueCondition */, currentFlow, node));\n      addAntecedent(falseTarget, createFlowCondition(64 /* FalseCondition */, currentFlow, node));\n    }\n  }\n  function bindOptionalChainFlow(node) {\n    if (isTopLevelLogicalExpression(node)) {\n      const postExpressionLabel = createBranchLabel();\n      const saveCurrentFlow = currentFlow;\n      const saveHasFlowEffects = hasFlowEffects;\n      bindOptionalChain(node, postExpressionLabel, postExpressionLabel);\n      currentFlow = hasFlowEffects ? finishFlowLabel(postExpressionLabel) : saveCurrentFlow;\n      hasFlowEffects || (hasFlowEffects = saveHasFlowEffects);\n    } else {\n      bindOptionalChain(node, currentTrueTarget, currentFalseTarget);\n    }\n  }\n  function bindNonNullExpressionFlow(node) {\n    if (isOptionalChain(node)) {\n      bindOptionalChainFlow(node);\n    } else {\n      bindEachChild(node);\n    }\n  }\n  function bindAccessExpressionFlow(node) {\n    if (isOptionalChain(node)) {\n      bindOptionalChainFlow(node);\n    } else {\n      bindEachChild(node);\n    }\n  }\n  function bindCallExpressionFlow(node) {\n    if (isOptionalChain(node)) {\n      bindOptionalChainFlow(node);\n    } else {\n      const expr = skipParentheses(node.expression);\n      if (expr.kind === 219 /* FunctionExpression */ || expr.kind === 220 /* ArrowFunction */) {\n        bindEach(node.typeArguments);\n        bindEach(node.arguments);\n        bind(node.expression);\n      } else {\n        bindEachChild(node);\n        if (node.expression.kind === 108 /* SuperKeyword */) {\n          currentFlow = createFlowCall(currentFlow, node);\n        }\n      }\n    }\n    if (node.expression.kind === 212 /* PropertyAccessExpression */) {\n      const propertyAccess = node.expression;\n      if (isIdentifier(propertyAccess.name) && isNarrowableOperand(propertyAccess.expression) && isPushOrUnshiftIdentifier(propertyAccess.name)) {\n        currentFlow = createFlowMutation(256 /* ArrayMutation */, currentFlow, node);\n      }\n    }\n  }\n  function addToContainerChain(next) {\n    if (lastContainer) {\n      lastContainer.nextContainer = next;\n    }\n    lastContainer = next;\n  }\n  function declareSymbolAndAddToSymbolTable(node, symbolFlags, symbolExcludes) {\n    switch (container.kind) {\n      // Modules, source files, and classes need specialized handling for how their\n      // members are declared (for example, a member of a class will go into a specific\n      // symbol table depending on if it is static or not). We defer to specialized\n      // handlers to take care of declaring these child members.\n      case 268 /* ModuleDeclaration */:\n        return declareModuleMember(node, symbolFlags, symbolExcludes);\n      case 308 /* SourceFile */:\n        return declareSourceFileMember(node, symbolFlags, symbolExcludes);\n      case 232 /* ClassExpression */:\n      case 264 /* ClassDeclaration */:\n        return declareClassMember(node, symbolFlags, symbolExcludes);\n      case 267 /* EnumDeclaration */:\n        return declareSymbol(container.symbol.exports, container.symbol, node, symbolFlags, symbolExcludes);\n      case 188 /* TypeLiteral */:\n      case 323 /* JSDocTypeLiteral */:\n      case 211 /* ObjectLiteralExpression */:\n      case 265 /* InterfaceDeclaration */:\n      case 293 /* JsxAttributes */:\n        return declareSymbol(container.symbol.members, container.symbol, node, symbolFlags, symbolExcludes);\n      case 185 /* FunctionType */:\n      case 186 /* ConstructorType */:\n      case 180 /* CallSignature */:\n      case 181 /* ConstructSignature */:\n      case 324 /* JSDocSignature */:\n      case 182 /* IndexSignature */:\n      case 175 /* MethodDeclaration */:\n      case 174 /* MethodSignature */:\n      case 177 /* Constructor */:\n      case 178 /* GetAccessor */:\n      case 179 /* SetAccessor */:\n      case 263 /* FunctionDeclaration */:\n      case 219 /* FunctionExpression */:\n      case 220 /* ArrowFunction */:\n      case 318 /* JSDocFunctionType */:\n      case 176 /* ClassStaticBlockDeclaration */:\n      case 266 /* TypeAliasDeclaration */:\n      case 201 /* MappedType */:\n        if (container.locals) Debug.assertNode(container, canHaveLocals);\n        return declareSymbol(\n          container.locals,\n          /*parent*/\n          void 0,\n          node,\n          symbolFlags,\n          symbolExcludes\n        );\n    }\n  }\n  function declareClassMember(node, symbolFlags, symbolExcludes) {\n    return isStatic(node) ? declareSymbol(container.symbol.exports, container.symbol, node, symbolFlags, symbolExcludes) : declareSymbol(container.symbol.members, container.symbol, node, symbolFlags, symbolExcludes);\n  }\n  function declareSourceFileMember(node, symbolFlags, symbolExcludes) {\n    return isExternalModule(file) ? declareModuleMember(node, symbolFlags, symbolExcludes) : declareSymbol(\n      file.locals,\n      /*parent*/\n      void 0,\n      node,\n      symbolFlags,\n      symbolExcludes\n    );\n  }\n  function hasExportDeclarations(node) {\n    const body = isSourceFile(node) ? node : tryCast(node.body, isModuleBlock);\n    return !!body && body.statements.some((s) => isExportDeclaration(s) || isExportAssignment(s));\n  }\n  function setExportContextFlag(node) {\n    if (node.flags & 33554432 /* Ambient */ && !hasExportDeclarations(node)) {\n      node.flags |= 128 /* ExportContext */;\n    } else {\n      node.flags &= ~128 /* ExportContext */;\n    }\n  }\n  function bindModuleDeclaration(node) {\n    setExportContextFlag(node);\n    if (isAmbientModule(node)) {\n      if (hasSyntacticModifier(node, 32 /* Export */)) {\n        errorOnFirstToken(node, Diagnostics.export_modifier_cannot_be_applied_to_ambient_modules_and_module_augmentations_since_they_are_always_visible);\n      }\n      if (isModuleAugmentationExternal(node)) {\n        declareModuleSymbol(node);\n      } else {\n        let pattern;\n        if (node.name.kind === 11 /* StringLiteral */) {\n          const { text } = node.name;\n          pattern = tryParsePattern(text);\n          if (pattern === void 0) {\n            errorOnFirstToken(node.name, Diagnostics.Pattern_0_can_have_at_most_one_Asterisk_character, text);\n          }\n        }\n        const symbol = declareSymbolAndAddToSymbolTable(node, 512 /* ValueModule */, 110735 /* ValueModuleExcludes */);\n        file.patternAmbientModules = append(file.patternAmbientModules, pattern && !isString(pattern) ? { pattern, symbol } : void 0);\n      }\n    } else {\n      const state = declareModuleSymbol(node);\n      if (state !== 0 /* NonInstantiated */) {\n        const { symbol } = node;\n        symbol.constEnumOnlyModule = !(symbol.flags & (16 /* Function */ | 32 /* Class */ | 256 /* RegularEnum */)) && state === 2 /* ConstEnumOnly */ && symbol.constEnumOnlyModule !== false;\n      }\n    }\n  }\n  function declareModuleSymbol(node) {\n    const state = getModuleInstanceState(node);\n    const instantiated = state !== 0 /* NonInstantiated */;\n    declareSymbolAndAddToSymbolTable(\n      node,\n      instantiated ? 512 /* ValueModule */ : 1024 /* NamespaceModule */,\n      instantiated ? 110735 /* ValueModuleExcludes */ : 0 /* NamespaceModuleExcludes */\n    );\n    return state;\n  }\n  function bindFunctionOrConstructorType(node) {\n    const symbol = createSymbol(131072 /* Signature */, getDeclarationName(node));\n    addDeclarationToSymbol(symbol, node, 131072 /* Signature */);\n    const typeLiteralSymbol = createSymbol(2048 /* TypeLiteral */, \"__type\" /* Type */);\n    addDeclarationToSymbol(typeLiteralSymbol, node, 2048 /* TypeLiteral */);\n    typeLiteralSymbol.members = createSymbolTable();\n    typeLiteralSymbol.members.set(symbol.escapedName, symbol);\n  }\n  function bindObjectLiteralExpression(node) {\n    return bindAnonymousDeclaration(node, 4096 /* ObjectLiteral */, \"__object\" /* Object */);\n  }\n  function bindJsxAttributes(node) {\n    return bindAnonymousDeclaration(node, 4096 /* ObjectLiteral */, \"__jsxAttributes\" /* JSXAttributes */);\n  }\n  function bindJsxAttribute(node, symbolFlags, symbolExcludes) {\n    return declareSymbolAndAddToSymbolTable(node, symbolFlags, symbolExcludes);\n  }\n  function bindAnonymousDeclaration(node, symbolFlags, name) {\n    const symbol = createSymbol(symbolFlags, name);\n    if (symbolFlags & (8 /* EnumMember */ | 106500 /* ClassMember */)) {\n      symbol.parent = container.symbol;\n    }\n    addDeclarationToSymbol(symbol, node, symbolFlags);\n    return symbol;\n  }\n  function bindBlockScopedDeclaration(node, symbolFlags, symbolExcludes) {\n    switch (blockScopeContainer.kind) {\n      case 268 /* ModuleDeclaration */:\n        declareModuleMember(node, symbolFlags, symbolExcludes);\n        break;\n      case 308 /* SourceFile */:\n        if (isExternalOrCommonJsModule(container)) {\n          declareModuleMember(node, symbolFlags, symbolExcludes);\n          break;\n        }\n      // falls through\n      default:\n        Debug.assertNode(blockScopeContainer, canHaveLocals);\n        if (!blockScopeContainer.locals) {\n          blockScopeContainer.locals = createSymbolTable();\n          addToContainerChain(blockScopeContainer);\n        }\n        declareSymbol(\n          blockScopeContainer.locals,\n          /*parent*/\n          void 0,\n          node,\n          symbolFlags,\n          symbolExcludes\n        );\n    }\n  }\n  function delayedBindJSDocTypedefTag() {\n    if (!delayedTypeAliases) {\n      return;\n    }\n    const saveContainer = container;\n    const saveLastContainer = lastContainer;\n    const saveBlockScopeContainer = blockScopeContainer;\n    const saveParent = parent2;\n    const saveCurrentFlow = currentFlow;\n    for (const typeAlias of delayedTypeAliases) {\n      const host = typeAlias.parent.parent;\n      container = getEnclosingContainer(host) || file;\n      blockScopeContainer = getEnclosingBlockScopeContainer(host) || file;\n      currentFlow = createFlowNode(\n        2 /* Start */,\n        /*node*/\n        void 0,\n        /*antecedent*/\n        void 0\n      );\n      parent2 = typeAlias;\n      bind(typeAlias.typeExpression);\n      const declName = getNameOfDeclaration(typeAlias);\n      if ((isJSDocEnumTag(typeAlias) || !typeAlias.fullName) && declName && isPropertyAccessEntityNameExpression(declName.parent)) {\n        const isTopLevel = isTopLevelNamespaceAssignment(declName.parent);\n        if (isTopLevel) {\n          bindPotentiallyMissingNamespaces(\n            file.symbol,\n            declName.parent,\n            isTopLevel,\n            !!findAncestor(declName, (d) => isPropertyAccessExpression(d) && d.name.escapedText === \"prototype\"),\n            /*containerIsClass*/\n            false\n          );\n          const oldContainer = container;\n          switch (getAssignmentDeclarationPropertyAccessKind(declName.parent)) {\n            case 1 /* ExportsProperty */:\n            case 2 /* ModuleExports */:\n              if (!isExternalOrCommonJsModule(file)) {\n                container = void 0;\n              } else {\n                container = file;\n              }\n              break;\n            case 4 /* ThisProperty */:\n              container = declName.parent.expression;\n              break;\n            case 3 /* PrototypeProperty */:\n              container = declName.parent.expression.name;\n              break;\n            case 5 /* Property */:\n              container = isExportsOrModuleExportsOrAlias(file, declName.parent.expression) ? file : isPropertyAccessExpression(declName.parent.expression) ? declName.parent.expression.name : declName.parent.expression;\n              break;\n            case 0 /* None */:\n              return Debug.fail(\"Shouldn't have detected typedef or enum on non-assignment declaration\");\n          }\n          if (container) {\n            declareModuleMember(typeAlias, 524288 /* TypeAlias */, 788968 /* TypeAliasExcludes */);\n          }\n          container = oldContainer;\n        }\n      } else if (isJSDocEnumTag(typeAlias) || !typeAlias.fullName || typeAlias.fullName.kind === 80 /* Identifier */) {\n        parent2 = typeAlias.parent;\n        bindBlockScopedDeclaration(typeAlias, 524288 /* TypeAlias */, 788968 /* TypeAliasExcludes */);\n      } else {\n        bind(typeAlias.fullName);\n      }\n    }\n    container = saveContainer;\n    lastContainer = saveLastContainer;\n    blockScopeContainer = saveBlockScopeContainer;\n    parent2 = saveParent;\n    currentFlow = saveCurrentFlow;\n  }\n  function bindJSDocImports() {\n    if (jsDocImports === void 0) {\n      return;\n    }\n    const saveContainer = container;\n    const saveLastContainer = lastContainer;\n    const saveBlockScopeContainer = blockScopeContainer;\n    const saveParent = parent2;\n    const saveCurrentFlow = currentFlow;\n    for (const jsDocImportTag of jsDocImports) {\n      const host = getJSDocHost(jsDocImportTag);\n      const enclosingContainer = host ? getEnclosingContainer(host) : void 0;\n      const enclosingBlockScopeContainer = host ? getEnclosingBlockScopeContainer(host) : void 0;\n      container = enclosingContainer || file;\n      blockScopeContainer = enclosingBlockScopeContainer || file;\n      currentFlow = createFlowNode(\n        2 /* Start */,\n        /*node*/\n        void 0,\n        /*antecedent*/\n        void 0\n      );\n      parent2 = jsDocImportTag;\n      bind(jsDocImportTag.importClause);\n    }\n    container = saveContainer;\n    lastContainer = saveLastContainer;\n    blockScopeContainer = saveBlockScopeContainer;\n    parent2 = saveParent;\n    currentFlow = saveCurrentFlow;\n  }\n  function checkContextualIdentifier(node) {\n    if (!file.parseDiagnostics.length && !(node.flags & 33554432 /* Ambient */) && !(node.flags & 16777216 /* JSDoc */) && !isIdentifierName(node)) {\n      const originalKeywordKind = identifierToKeywordKind(node);\n      if (originalKeywordKind === void 0) {\n        return;\n      }\n      if (inStrictMode && originalKeywordKind >= 119 /* FirstFutureReservedWord */ && originalKeywordKind <= 127 /* LastFutureReservedWord */) {\n        file.bindDiagnostics.push(createDiagnosticForNode2(node, getStrictModeIdentifierMessage(node), declarationNameToString(node)));\n      } else if (originalKeywordKind === 135 /* AwaitKeyword */) {\n        if (isExternalModule(file) && isInTopLevelContext(node)) {\n          file.bindDiagnostics.push(createDiagnosticForNode2(node, Diagnostics.Identifier_expected_0_is_a_reserved_word_at_the_top_level_of_a_module, declarationNameToString(node)));\n        } else if (node.flags & 65536 /* AwaitContext */) {\n          file.bindDiagnostics.push(createDiagnosticForNode2(node, Diagnostics.Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here, declarationNameToString(node)));\n        }\n      } else if (originalKeywordKind === 127 /* YieldKeyword */ && node.flags & 16384 /* YieldContext */) {\n        file.bindDiagnostics.push(createDiagnosticForNode2(node, Diagnostics.Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here, declarationNameToString(node)));\n      }\n    }\n  }\n  function getStrictModeIdentifierMessage(node) {\n    if (getContainingClass(node)) {\n      return Diagnostics.Identifier_expected_0_is_a_reserved_word_in_strict_mode_Class_definitions_are_automatically_in_strict_mode;\n    }\n    if (file.externalModuleIndicator) {\n      return Diagnostics.Identifier_expected_0_is_a_reserved_word_in_strict_mode_Modules_are_automatically_in_strict_mode;\n    }\n    return Diagnostics.Identifier_expected_0_is_a_reserved_word_in_strict_mode;\n  }\n  function checkPrivateIdentifier(node) {\n    if (node.escapedText === \"#constructor\") {\n      if (!file.parseDiagnostics.length) {\n        file.bindDiagnostics.push(createDiagnosticForNode2(node, Diagnostics.constructor_is_a_reserved_word, declarationNameToString(node)));\n      }\n    }\n  }\n  function checkStrictModeBinaryExpression(node) {\n    if (inStrictMode && isLeftHandSideExpression(node.left) && isAssignmentOperator(node.operatorToken.kind)) {\n      checkStrictModeEvalOrArguments(node, node.left);\n    }\n  }\n  function checkStrictModeCatchClause(node) {\n    if (inStrictMode && node.variableDeclaration) {\n      checkStrictModeEvalOrArguments(node, node.variableDeclaration.name);\n    }\n  }\n  function checkStrictModeDeleteExpression(node) {\n    if (inStrictMode && node.expression.kind === 80 /* Identifier */) {\n      const span = getErrorSpanForNode(file, node.expression);\n      file.bindDiagnostics.push(createFileDiagnostic(file, span.start, span.length, Diagnostics.delete_cannot_be_called_on_an_identifier_in_strict_mode));\n    }\n  }\n  function isEvalOrArgumentsIdentifier(node) {\n    return isIdentifier(node) && (node.escapedText === \"eval\" || node.escapedText === \"arguments\");\n  }\n  function checkStrictModeEvalOrArguments(contextNode, name) {\n    if (name && name.kind === 80 /* Identifier */) {\n      const identifier = name;\n      if (isEvalOrArgumentsIdentifier(identifier)) {\n        const span = getErrorSpanForNode(file, name);\n        file.bindDiagnostics.push(createFileDiagnostic(file, span.start, span.length, getStrictModeEvalOrArgumentsMessage(contextNode), idText(identifier)));\n      }\n    }\n  }\n  function getStrictModeEvalOrArgumentsMessage(node) {\n    if (getContainingClass(node)) {\n      return Diagnostics.Code_contained_in_a_class_is_evaluated_in_JavaScript_s_strict_mode_which_does_not_allow_this_use_of_0_For_more_information_see_https_Colon_Slash_Slashdeveloper_mozilla_org_Slashen_US_Slashdocs_SlashWeb_SlashJavaScript_SlashReference_SlashStrict_mode;\n    }\n    if (file.externalModuleIndicator) {\n      return Diagnostics.Invalid_use_of_0_Modules_are_automatically_in_strict_mode;\n    }\n    return Diagnostics.Invalid_use_of_0_in_strict_mode;\n  }\n  function checkStrictModeFunctionName(node) {\n    if (inStrictMode && !(node.flags & 33554432 /* Ambient */)) {\n      checkStrictModeEvalOrArguments(node, node.name);\n    }\n  }\n  function getStrictModeBlockScopeFunctionDeclarationMessage(node) {\n    if (getContainingClass(node)) {\n      return Diagnostics.Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5_Class_definitions_are_automatically_in_strict_mode;\n    }\n    if (file.externalModuleIndicator) {\n      return Diagnostics.Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5_Modules_are_automatically_in_strict_mode;\n    }\n    return Diagnostics.Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES5;\n  }\n  function checkStrictModeFunctionDeclaration(node) {\n    if (languageVersion < 2 /* ES2015 */) {\n      if (blockScopeContainer.kind !== 308 /* SourceFile */ && blockScopeContainer.kind !== 268 /* ModuleDeclaration */ && !isFunctionLikeOrClassStaticBlockDeclaration(blockScopeContainer)) {\n        const errorSpan = getErrorSpanForNode(file, node);\n        file.bindDiagnostics.push(createFileDiagnostic(file, errorSpan.start, errorSpan.length, getStrictModeBlockScopeFunctionDeclarationMessage(node)));\n      }\n    }\n  }\n  function checkStrictModePostfixUnaryExpression(node) {\n    if (inStrictMode) {\n      checkStrictModeEvalOrArguments(node, node.operand);\n    }\n  }\n  function checkStrictModePrefixUnaryExpression(node) {\n    if (inStrictMode) {\n      if (node.operator === 46 /* PlusPlusToken */ || node.operator === 47 /* MinusMinusToken */) {\n        checkStrictModeEvalOrArguments(node, node.operand);\n      }\n    }\n  }\n  function checkStrictModeWithStatement(node) {\n    if (inStrictMode) {\n      errorOnFirstToken(node, Diagnostics.with_statements_are_not_allowed_in_strict_mode);\n    }\n  }\n  function checkStrictModeLabeledStatement(node) {\n    if (inStrictMode && getEmitScriptTarget(options) >= 2 /* ES2015 */) {\n      if (isDeclarationStatement(node.statement) || isVariableStatement(node.statement)) {\n        errorOnFirstToken(node.label, Diagnostics.A_label_is_not_allowed_here);\n      }\n    }\n  }\n  function errorOnFirstToken(node, message, ...args) {\n    const span = getSpanOfTokenAtPosition(file, node.pos);\n    file.bindDiagnostics.push(createFileDiagnostic(file, span.start, span.length, message, ...args));\n  }\n  function errorOrSuggestionOnNode(isError, node, message) {\n    errorOrSuggestionOnRange(isError, node, node, message);\n  }\n  function errorOrSuggestionOnRange(isError, startNode2, endNode2, message) {\n    addErrorOrSuggestionDiagnostic(isError, { pos: getTokenPosOfNode(startNode2, file), end: endNode2.end }, message);\n  }\n  function addErrorOrSuggestionDiagnostic(isError, range, message) {\n    const diag2 = createFileDiagnostic(file, range.pos, range.end - range.pos, message);\n    if (isError) {\n      file.bindDiagnostics.push(diag2);\n    } else {\n      file.bindSuggestionDiagnostics = append(file.bindSuggestionDiagnostics, { ...diag2, category: 2 /* Suggestion */ });\n    }\n  }\n  function bind(node) {\n    if (!node) {\n      return;\n    }\n    setParent(node, parent2);\n    if (tracing) node.tracingPath = file.path;\n    const saveInStrictMode = inStrictMode;\n    bindWorker(node);\n    if (node.kind > 166 /* LastToken */) {\n      const saveParent = parent2;\n      parent2 = node;\n      const containerFlags = getContainerFlags(node);\n      if (containerFlags === 0 /* None */) {\n        bindChildren(node);\n      } else {\n        bindContainer(node, containerFlags);\n      }\n      parent2 = saveParent;\n    } else {\n      const saveParent = parent2;\n      if (node.kind === 1 /* EndOfFileToken */) parent2 = node;\n      bindJSDoc(node);\n      parent2 = saveParent;\n    }\n    inStrictMode = saveInStrictMode;\n  }\n  function bindJSDoc(node) {\n    if (hasJSDocNodes(node)) {\n      if (isInJSFile(node)) {\n        for (const j of node.jsDoc) {\n          bind(j);\n        }\n      } else {\n        for (const j of node.jsDoc) {\n          setParent(j, node);\n          setParentRecursive(\n            j,\n            /*incremental*/\n            false\n          );\n        }\n      }\n    }\n  }\n  function updateStrictModeStatementList(statements) {\n    if (!inStrictMode) {\n      for (const statement of statements) {\n        if (!isPrologueDirective(statement)) {\n          return;\n        }\n        if (isUseStrictPrologueDirective(statement)) {\n          inStrictMode = true;\n          return;\n        }\n      }\n    }\n  }\n  function isUseStrictPrologueDirective(node) {\n    const nodeText2 = getSourceTextOfNodeFromSourceFile(file, node.expression);\n    return nodeText2 === '\"use strict\"' || nodeText2 === \"'use strict'\";\n  }\n  function bindWorker(node) {\n    switch (node.kind) {\n      /* Strict mode checks */\n      case 80 /* Identifier */:\n        if (node.flags & 4096 /* IdentifierIsInJSDocNamespace */) {\n          let parentNode = node.parent;\n          while (parentNode && !isJSDocTypeAlias(parentNode)) {\n            parentNode = parentNode.parent;\n          }\n          bindBlockScopedDeclaration(parentNode, 524288 /* TypeAlias */, 788968 /* TypeAliasExcludes */);\n          break;\n        }\n      // falls through\n      case 110 /* ThisKeyword */:\n        if (currentFlow && (isExpression(node) || parent2.kind === 305 /* ShorthandPropertyAssignment */)) {\n          node.flowNode = currentFlow;\n        }\n        return checkContextualIdentifier(node);\n      case 167 /* QualifiedName */:\n        if (currentFlow && isPartOfTypeQuery(node)) {\n          node.flowNode = currentFlow;\n        }\n        break;\n      case 237 /* MetaProperty */:\n      case 108 /* SuperKeyword */:\n        node.flowNode = currentFlow;\n        break;\n      case 81 /* PrivateIdentifier */:\n        return checkPrivateIdentifier(node);\n      case 212 /* PropertyAccessExpression */:\n      case 213 /* ElementAccessExpression */:\n        const expr = node;\n        if (currentFlow && isNarrowableReference(expr)) {\n          expr.flowNode = currentFlow;\n        }\n        if (isSpecialPropertyDeclaration(expr)) {\n          bindSpecialPropertyDeclaration(expr);\n        }\n        if (isInJSFile(expr) && file.commonJsModuleIndicator && isModuleExportsAccessExpression(expr) && !lookupSymbolForName(blockScopeContainer, \"module\")) {\n          declareSymbol(\n            file.locals,\n            /*parent*/\n            void 0,\n            expr.expression,\n            1 /* FunctionScopedVariable */ | 134217728 /* ModuleExports */,\n            111550 /* FunctionScopedVariableExcludes */\n          );\n        }\n        break;\n      case 227 /* BinaryExpression */:\n        const specialKind = getAssignmentDeclarationKind(node);\n        switch (specialKind) {\n          case 1 /* ExportsProperty */:\n            bindExportsPropertyAssignment(node);\n            break;\n          case 2 /* ModuleExports */:\n            bindModuleExportsAssignment(node);\n            break;\n          case 3 /* PrototypeProperty */:\n            bindPrototypePropertyAssignment(node.left, node);\n            break;\n          case 6 /* Prototype */:\n            bindPrototypeAssignment(node);\n            break;\n          case 4 /* ThisProperty */:\n            bindThisPropertyAssignment(node);\n            break;\n          case 5 /* Property */:\n            const expression = node.left.expression;\n            if (isInJSFile(node) && isIdentifier(expression)) {\n              const symbol = lookupSymbolForName(blockScopeContainer, expression.escapedText);\n              if (isThisInitializedDeclaration(symbol == null ? void 0 : symbol.valueDeclaration)) {\n                bindThisPropertyAssignment(node);\n                break;\n              }\n            }\n            bindSpecialPropertyAssignment(node);\n            break;\n          case 0 /* None */:\n            break;\n          default:\n            Debug.fail(\"Unknown binary expression special property assignment kind\");\n        }\n        return checkStrictModeBinaryExpression(node);\n      case 300 /* CatchClause */:\n        return checkStrictModeCatchClause(node);\n      case 221 /* DeleteExpression */:\n        return checkStrictModeDeleteExpression(node);\n      case 226 /* PostfixUnaryExpression */:\n        return checkStrictModePostfixUnaryExpression(node);\n      case 225 /* PrefixUnaryExpression */:\n        return checkStrictModePrefixUnaryExpression(node);\n      case 255 /* WithStatement */:\n        return checkStrictModeWithStatement(node);\n      case 257 /* LabeledStatement */:\n        return checkStrictModeLabeledStatement(node);\n      case 198 /* ThisType */:\n        seenThisKeyword = true;\n        return;\n      case 183 /* TypePredicate */:\n        break;\n      // Binding the children will handle everything\n      case 169 /* TypeParameter */:\n        return bindTypeParameter(node);\n      case 170 /* Parameter */:\n        return bindParameter(node);\n      case 261 /* VariableDeclaration */:\n        return bindVariableDeclarationOrBindingElement(node);\n      case 209 /* BindingElement */:\n        node.flowNode = currentFlow;\n        return bindVariableDeclarationOrBindingElement(node);\n      case 173 /* PropertyDeclaration */:\n      case 172 /* PropertySignature */:\n        return bindPropertyWorker(node);\n      case 304 /* PropertyAssignment */:\n      case 305 /* ShorthandPropertyAssignment */:\n        return bindPropertyOrMethodOrAccessor(node, 4 /* Property */, 0 /* PropertyExcludes */);\n      case 307 /* EnumMember */:\n        return bindPropertyOrMethodOrAccessor(node, 8 /* EnumMember */, 900095 /* EnumMemberExcludes */);\n      case 180 /* CallSignature */:\n      case 181 /* ConstructSignature */:\n      case 182 /* IndexSignature */:\n        return declareSymbolAndAddToSymbolTable(node, 131072 /* Signature */, 0 /* None */);\n      case 175 /* MethodDeclaration */:\n      case 174 /* MethodSignature */:\n        return bindPropertyOrMethodOrAccessor(node, 8192 /* Method */ | (node.questionToken ? 16777216 /* Optional */ : 0 /* None */), isObjectLiteralMethod(node) ? 0 /* PropertyExcludes */ : 103359 /* MethodExcludes */);\n      case 263 /* FunctionDeclaration */:\n        return bindFunctionDeclaration(node);\n      case 177 /* Constructor */:\n        return declareSymbolAndAddToSymbolTable(\n          node,\n          16384 /* Constructor */,\n          /*symbolExcludes:*/\n          0 /* None */\n        );\n      case 178 /* GetAccessor */:\n        return bindPropertyOrMethodOrAccessor(node, 32768 /* GetAccessor */, 46015 /* GetAccessorExcludes */);\n      case 179 /* SetAccessor */:\n        return bindPropertyOrMethodOrAccessor(node, 65536 /* SetAccessor */, 78783 /* SetAccessorExcludes */);\n      case 185 /* FunctionType */:\n      case 318 /* JSDocFunctionType */:\n      case 324 /* JSDocSignature */:\n      case 186 /* ConstructorType */:\n        return bindFunctionOrConstructorType(node);\n      case 188 /* TypeLiteral */:\n      case 323 /* JSDocTypeLiteral */:\n      case 201 /* MappedType */:\n        return bindAnonymousTypeWorker(node);\n      case 333 /* JSDocClassTag */:\n        return bindJSDocClassTag(node);\n      case 211 /* ObjectLiteralExpression */:\n        return bindObjectLiteralExpression(node);\n      case 219 /* FunctionExpression */:\n      case 220 /* ArrowFunction */:\n        return bindFunctionExpression(node);\n      case 214 /* CallExpression */:\n        const assignmentKind = getAssignmentDeclarationKind(node);\n        switch (assignmentKind) {\n          case 7 /* ObjectDefinePropertyValue */:\n            return bindObjectDefinePropertyAssignment(node);\n          case 8 /* ObjectDefinePropertyExports */:\n            return bindObjectDefinePropertyExport(node);\n          case 9 /* ObjectDefinePrototypeProperty */:\n            return bindObjectDefinePrototypeProperty(node);\n          case 0 /* None */:\n            break;\n          // Nothing to do\n          default:\n            return Debug.fail(\"Unknown call expression assignment declaration kind\");\n        }\n        if (isInJSFile(node)) {\n          bindCallExpression(node);\n        }\n        break;\n      // Members of classes, interfaces, and modules\n      case 232 /* ClassExpression */:\n      case 264 /* ClassDeclaration */:\n        inStrictMode = true;\n        return bindClassLikeDeclaration(node);\n      case 265 /* InterfaceDeclaration */:\n        return bindBlockScopedDeclaration(node, 64 /* Interface */, 788872 /* InterfaceExcludes */);\n      case 266 /* TypeAliasDeclaration */:\n        return bindBlockScopedDeclaration(node, 524288 /* TypeAlias */, 788968 /* TypeAliasExcludes */);\n      case 267 /* EnumDeclaration */:\n        return bindEnumDeclaration(node);\n      case 268 /* ModuleDeclaration */:\n        return bindModuleDeclaration(node);\n      // Jsx-attributes\n      case 293 /* JsxAttributes */:\n        return bindJsxAttributes(node);\n      case 292 /* JsxAttribute */:\n        return bindJsxAttribute(node, 4 /* Property */, 0 /* PropertyExcludes */);\n      // Imports and exports\n      case 272 /* ImportEqualsDeclaration */:\n      case 275 /* NamespaceImport */:\n      case 277 /* ImportSpecifier */:\n      case 282 /* ExportSpecifier */:\n        return declareSymbolAndAddToSymbolTable(node, 2097152 /* Alias */, 2097152 /* AliasExcludes */);\n      case 271 /* NamespaceExportDeclaration */:\n        return bindNamespaceExportDeclaration(node);\n      case 274 /* ImportClause */:\n        return bindImportClause(node);\n      case 279 /* ExportDeclaration */:\n        return bindExportDeclaration(node);\n      case 278 /* ExportAssignment */:\n        return bindExportAssignment(node);\n      case 308 /* SourceFile */:\n        updateStrictModeStatementList(node.statements);\n        return bindSourceFileIfExternalModule();\n      case 242 /* Block */:\n        if (!isFunctionLikeOrClassStaticBlockDeclaration(node.parent)) {\n          return;\n        }\n      // falls through\n      case 269 /* ModuleBlock */:\n        return updateStrictModeStatementList(node.statements);\n      case 342 /* JSDocParameterTag */:\n        if (node.parent.kind === 324 /* JSDocSignature */) {\n          return bindParameter(node);\n        }\n        if (node.parent.kind !== 323 /* JSDocTypeLiteral */) {\n          break;\n        }\n      // falls through\n      case 349 /* JSDocPropertyTag */:\n        const propTag = node;\n        const flags = propTag.isBracketed || propTag.typeExpression && propTag.typeExpression.type.kind === 317 /* JSDocOptionalType */ ? 4 /* Property */ | 16777216 /* Optional */ : 4 /* Property */;\n        return declareSymbolAndAddToSymbolTable(propTag, flags, 0 /* PropertyExcludes */);\n      case 347 /* JSDocTypedefTag */:\n      case 339 /* JSDocCallbackTag */:\n      case 341 /* JSDocEnumTag */:\n        return (delayedTypeAliases || (delayedTypeAliases = [])).push(node);\n      case 340 /* JSDocOverloadTag */:\n        return bind(node.typeExpression);\n      case 352 /* JSDocImportTag */:\n        return (jsDocImports || (jsDocImports = [])).push(node);\n    }\n  }\n  function bindPropertyWorker(node) {\n    const isAutoAccessor = isAutoAccessorPropertyDeclaration(node);\n    const includes = isAutoAccessor ? 98304 /* Accessor */ : 4 /* Property */;\n    const excludes = isAutoAccessor ? 13247 /* AccessorExcludes */ : 0 /* PropertyExcludes */;\n    return bindPropertyOrMethodOrAccessor(node, includes | (node.questionToken ? 16777216 /* Optional */ : 0 /* None */), excludes);\n  }\n  function bindAnonymousTypeWorker(node) {\n    return bindAnonymousDeclaration(node, 2048 /* TypeLiteral */, \"__type\" /* Type */);\n  }\n  function bindSourceFileIfExternalModule() {\n    setExportContextFlag(file);\n    if (isExternalModule(file)) {\n      bindSourceFileAsExternalModule();\n    } else if (isJsonSourceFile(file)) {\n      bindSourceFileAsExternalModule();\n      const originalSymbol = file.symbol;\n      declareSymbol(file.symbol.exports, file.symbol, file, 4 /* Property */, -1 /* All */);\n      file.symbol = originalSymbol;\n    }\n  }\n  function bindSourceFileAsExternalModule() {\n    bindAnonymousDeclaration(file, 512 /* ValueModule */, `\"${removeFileExtension(file.fileName)}\"`);\n  }\n  function bindExportAssignment(node) {\n    if (!container.symbol || !container.symbol.exports) {\n      bindAnonymousDeclaration(node, 111551 /* Value */, getDeclarationName(node));\n    } else {\n      const flags = exportAssignmentIsAlias(node) ? 2097152 /* Alias */ : 4 /* Property */;\n      const symbol = declareSymbol(container.symbol.exports, container.symbol, node, flags, -1 /* All */);\n      if (node.isExportEquals) {\n        setValueDeclaration(symbol, node);\n      }\n    }\n  }\n  function bindNamespaceExportDeclaration(node) {\n    if (some(node.modifiers)) {\n      file.bindDiagnostics.push(createDiagnosticForNode2(node, Diagnostics.Modifiers_cannot_appear_here));\n    }\n    const diag2 = !isSourceFile(node.parent) ? Diagnostics.Global_module_exports_may_only_appear_at_top_level : !isExternalModule(node.parent) ? Diagnostics.Global_module_exports_may_only_appear_in_module_files : !node.parent.isDeclarationFile ? Diagnostics.Global_module_exports_may_only_appear_in_declaration_files : void 0;\n    if (diag2) {\n      file.bindDiagnostics.push(createDiagnosticForNode2(node, diag2));\n    } else {\n      file.symbol.globalExports = file.symbol.globalExports || createSymbolTable();\n      declareSymbol(file.symbol.globalExports, file.symbol, node, 2097152 /* Alias */, 2097152 /* AliasExcludes */);\n    }\n  }\n  function bindExportDeclaration(node) {\n    if (!container.symbol || !container.symbol.exports) {\n      bindAnonymousDeclaration(node, 8388608 /* ExportStar */, getDeclarationName(node));\n    } else if (!node.exportClause) {\n      declareSymbol(container.symbol.exports, container.symbol, node, 8388608 /* ExportStar */, 0 /* None */);\n    } else if (isNamespaceExport(node.exportClause)) {\n      setParent(node.exportClause, node);\n      declareSymbol(container.symbol.exports, container.symbol, node.exportClause, 2097152 /* Alias */, 2097152 /* AliasExcludes */);\n    }\n  }\n  function bindImportClause(node) {\n    if (node.name) {\n      declareSymbolAndAddToSymbolTable(node, 2097152 /* Alias */, 2097152 /* AliasExcludes */);\n    }\n  }\n  function setCommonJsModuleIndicator(node) {\n    if (file.externalModuleIndicator && file.externalModuleIndicator !== true) {\n      return false;\n    }\n    if (!file.commonJsModuleIndicator) {\n      file.commonJsModuleIndicator = node;\n      if (!file.externalModuleIndicator) {\n        bindSourceFileAsExternalModule();\n      }\n    }\n    return true;\n  }\n  function bindObjectDefinePropertyExport(node) {\n    if (!setCommonJsModuleIndicator(node)) {\n      return;\n    }\n    const symbol = forEachIdentifierInEntityName(\n      node.arguments[0],\n      /*parent*/\n      void 0,\n      (id, symbol2) => {\n        if (symbol2) {\n          addDeclarationToSymbol(symbol2, id, 1536 /* Module */ | 67108864 /* Assignment */);\n        }\n        return symbol2;\n      }\n    );\n    if (symbol) {\n      const flags = 4 /* Property */ | 1048576 /* ExportValue */;\n      declareSymbol(symbol.exports, symbol, node, flags, 0 /* None */);\n    }\n  }\n  function bindExportsPropertyAssignment(node) {\n    if (!setCommonJsModuleIndicator(node)) {\n      return;\n    }\n    const symbol = forEachIdentifierInEntityName(\n      node.left.expression,\n      /*parent*/\n      void 0,\n      (id, symbol2) => {\n        if (symbol2) {\n          addDeclarationToSymbol(symbol2, id, 1536 /* Module */ | 67108864 /* Assignment */);\n        }\n        return symbol2;\n      }\n    );\n    if (symbol) {\n      const isAlias = isAliasableExpression(node.right) && (isExportsIdentifier(node.left.expression) || isModuleExportsAccessExpression(node.left.expression));\n      const flags = isAlias ? 2097152 /* Alias */ : 4 /* Property */ | 1048576 /* ExportValue */;\n      setParent(node.left, node);\n      declareSymbol(symbol.exports, symbol, node.left, flags, 0 /* None */);\n    }\n  }\n  function bindModuleExportsAssignment(node) {\n    if (!setCommonJsModuleIndicator(node)) {\n      return;\n    }\n    const assignedExpression = getRightMostAssignedExpression(node.right);\n    if (isEmptyObjectLiteral(assignedExpression) || container === file && isExportsOrModuleExportsOrAlias(file, assignedExpression)) {\n      return;\n    }\n    if (isObjectLiteralExpression(assignedExpression) && every(assignedExpression.properties, isShorthandPropertyAssignment)) {\n      forEach(assignedExpression.properties, bindExportAssignedObjectMemberAlias);\n      return;\n    }\n    const flags = exportAssignmentIsAlias(node) ? 2097152 /* Alias */ : 4 /* Property */ | 1048576 /* ExportValue */ | 512 /* ValueModule */;\n    const symbol = declareSymbol(file.symbol.exports, file.symbol, node, flags | 67108864 /* Assignment */, 0 /* None */);\n    setValueDeclaration(symbol, node);\n  }\n  function bindExportAssignedObjectMemberAlias(node) {\n    declareSymbol(file.symbol.exports, file.symbol, node, 2097152 /* Alias */ | 67108864 /* Assignment */, 0 /* None */);\n  }\n  function bindThisPropertyAssignment(node) {\n    Debug.assert(isInJSFile(node));\n    const hasPrivateIdentifier = isBinaryExpression(node) && isPropertyAccessExpression(node.left) && isPrivateIdentifier(node.left.name) || isPropertyAccessExpression(node) && isPrivateIdentifier(node.name);\n    if (hasPrivateIdentifier) {\n      return;\n    }\n    const thisContainer = getThisContainer(\n      node,\n      /*includeArrowFunctions*/\n      false,\n      /*includeClassComputedPropertyName*/\n      false\n    );\n    switch (thisContainer.kind) {\n      case 263 /* FunctionDeclaration */:\n      case 219 /* FunctionExpression */:\n        let constructorSymbol = thisContainer.symbol;\n        if (isBinaryExpression(thisContainer.parent) && thisContainer.parent.operatorToken.kind === 64 /* EqualsToken */) {\n          const l = thisContainer.parent.left;\n          if (isBindableStaticAccessExpression(l) && isPrototypeAccess(l.expression)) {\n            constructorSymbol = lookupSymbolForPropertyAccess(l.expression.expression, thisParentContainer);\n          }\n        }\n        if (constructorSymbol && constructorSymbol.valueDeclaration) {\n          constructorSymbol.members = constructorSymbol.members || createSymbolTable();\n          if (hasDynamicName(node)) {\n            bindDynamicallyNamedThisPropertyAssignment(node, constructorSymbol, constructorSymbol.members);\n          } else {\n            declareSymbol(constructorSymbol.members, constructorSymbol, node, 4 /* Property */ | 67108864 /* Assignment */, 0 /* PropertyExcludes */ & ~4 /* Property */);\n          }\n          addDeclarationToSymbol(constructorSymbol, constructorSymbol.valueDeclaration, 32 /* Class */);\n        }\n        break;\n      case 177 /* Constructor */:\n      case 173 /* PropertyDeclaration */:\n      case 175 /* MethodDeclaration */:\n      case 178 /* GetAccessor */:\n      case 179 /* SetAccessor */:\n      case 176 /* ClassStaticBlockDeclaration */:\n        const containingClass = thisContainer.parent;\n        const symbolTable = isStatic(thisContainer) ? containingClass.symbol.exports : containingClass.symbol.members;\n        if (hasDynamicName(node)) {\n          bindDynamicallyNamedThisPropertyAssignment(node, containingClass.symbol, symbolTable);\n        } else {\n          declareSymbol(\n            symbolTable,\n            containingClass.symbol,\n            node,\n            4 /* Property */ | 67108864 /* Assignment */,\n            0 /* None */,\n            /*isReplaceableByMethod*/\n            true\n          );\n        }\n        break;\n      case 308 /* SourceFile */:\n        if (hasDynamicName(node)) {\n          break;\n        } else if (thisContainer.commonJsModuleIndicator) {\n          declareSymbol(thisContainer.symbol.exports, thisContainer.symbol, node, 4 /* Property */ | 1048576 /* ExportValue */, 0 /* None */);\n        } else {\n          declareSymbolAndAddToSymbolTable(node, 1 /* FunctionScopedVariable */, 111550 /* FunctionScopedVariableExcludes */);\n        }\n        break;\n      // Namespaces are not allowed in javascript files, so do nothing here\n      case 268 /* ModuleDeclaration */:\n        break;\n      default:\n        Debug.failBadSyntaxKind(thisContainer);\n    }\n  }\n  function bindDynamicallyNamedThisPropertyAssignment(node, symbol, symbolTable) {\n    declareSymbol(\n      symbolTable,\n      symbol,\n      node,\n      4 /* Property */,\n      0 /* None */,\n      /*isReplaceableByMethod*/\n      true,\n      /*isComputedName*/\n      true\n    );\n    addLateBoundAssignmentDeclarationToSymbol(node, symbol);\n  }\n  function addLateBoundAssignmentDeclarationToSymbol(node, symbol) {\n    if (symbol) {\n      (symbol.assignmentDeclarationMembers || (symbol.assignmentDeclarationMembers = /* @__PURE__ */ new Map())).set(getNodeId(node), node);\n    }\n  }\n  function bindSpecialPropertyDeclaration(node) {\n    if (node.expression.kind === 110 /* ThisKeyword */) {\n      bindThisPropertyAssignment(node);\n    } else if (isBindableStaticAccessExpression(node) && node.parent.parent.kind === 308 /* SourceFile */) {\n      if (isPrototypeAccess(node.expression)) {\n        bindPrototypePropertyAssignment(node, node.parent);\n      } else {\n        bindStaticPropertyAssignment(node);\n      }\n    }\n  }\n  function bindPrototypeAssignment(node) {\n    setParent(node.left, node);\n    setParent(node.right, node);\n    bindPropertyAssignment(\n      node.left.expression,\n      node.left,\n      /*isPrototypeProperty*/\n      false,\n      /*containerIsClass*/\n      true\n    );\n  }\n  function bindObjectDefinePrototypeProperty(node) {\n    const namespaceSymbol = lookupSymbolForPropertyAccess(node.arguments[0].expression);\n    if (namespaceSymbol && namespaceSymbol.valueDeclaration) {\n      addDeclarationToSymbol(namespaceSymbol, namespaceSymbol.valueDeclaration, 32 /* Class */);\n    }\n    bindPotentiallyNewExpandoMemberToNamespace(\n      node,\n      namespaceSymbol,\n      /*isPrototypeProperty*/\n      true\n    );\n  }\n  function bindPrototypePropertyAssignment(lhs, parent3) {\n    const classPrototype = lhs.expression;\n    const constructorFunction = classPrototype.expression;\n    setParent(constructorFunction, classPrototype);\n    setParent(classPrototype, lhs);\n    setParent(lhs, parent3);\n    bindPropertyAssignment(\n      constructorFunction,\n      lhs,\n      /*isPrototypeProperty*/\n      true,\n      /*containerIsClass*/\n      true\n    );\n  }\n  function bindObjectDefinePropertyAssignment(node) {\n    let namespaceSymbol = lookupSymbolForPropertyAccess(node.arguments[0]);\n    const isToplevel = node.parent.parent.kind === 308 /* SourceFile */;\n    namespaceSymbol = bindPotentiallyMissingNamespaces(\n      namespaceSymbol,\n      node.arguments[0],\n      isToplevel,\n      /*isPrototypeProperty*/\n      false,\n      /*containerIsClass*/\n      false\n    );\n    bindPotentiallyNewExpandoMemberToNamespace(\n      node,\n      namespaceSymbol,\n      /*isPrototypeProperty*/\n      false\n    );\n  }\n  function bindSpecialPropertyAssignment(node) {\n    var _a;\n    const parentSymbol = lookupSymbolForPropertyAccess(node.left.expression, blockScopeContainer) || lookupSymbolForPropertyAccess(node.left.expression, container);\n    if (!isInJSFile(node) && !isFunctionSymbol(parentSymbol)) {\n      return;\n    }\n    const rootExpr = getLeftmostAccessExpression(node.left);\n    if (isIdentifier(rootExpr) && ((_a = lookupSymbolForName(container, rootExpr.escapedText)) == null ? void 0 : _a.flags) & 2097152 /* Alias */) {\n      return;\n    }\n    setParent(node.left, node);\n    setParent(node.right, node);\n    if (isIdentifier(node.left.expression) && container === file && isExportsOrModuleExportsOrAlias(file, node.left.expression)) {\n      bindExportsPropertyAssignment(node);\n    } else if (hasDynamicName(node)) {\n      bindAnonymousDeclaration(node, 4 /* Property */ | 67108864 /* Assignment */, \"__computed\" /* Computed */);\n      const sym = bindPotentiallyMissingNamespaces(\n        parentSymbol,\n        node.left.expression,\n        isTopLevelNamespaceAssignment(node.left),\n        /*isPrototypeProperty*/\n        false,\n        /*containerIsClass*/\n        false\n      );\n      addLateBoundAssignmentDeclarationToSymbol(node, sym);\n    } else {\n      bindStaticPropertyAssignment(cast(node.left, isBindableStaticNameExpression));\n    }\n  }\n  function bindStaticPropertyAssignment(node) {\n    Debug.assert(!isIdentifier(node));\n    setParent(node.expression, node);\n    bindPropertyAssignment(\n      node.expression,\n      node,\n      /*isPrototypeProperty*/\n      false,\n      /*containerIsClass*/\n      false\n    );\n  }\n  function bindPotentiallyMissingNamespaces(namespaceSymbol, entityName, isToplevel, isPrototypeProperty, containerIsClass) {\n    if ((namespaceSymbol == null ? void 0 : namespaceSymbol.flags) & 2097152 /* Alias */) {\n      return namespaceSymbol;\n    }\n    if (isToplevel && !isPrototypeProperty) {\n      const flags = 1536 /* Module */ | 67108864 /* Assignment */;\n      const excludeFlags = 110735 /* ValueModuleExcludes */ & ~67108864 /* Assignment */;\n      namespaceSymbol = forEachIdentifierInEntityName(entityName, namespaceSymbol, (id, symbol, parent3) => {\n        if (symbol) {\n          addDeclarationToSymbol(symbol, id, flags);\n          return symbol;\n        } else {\n          const table = parent3 ? parent3.exports : file.jsGlobalAugmentations || (file.jsGlobalAugmentations = createSymbolTable());\n          return declareSymbol(table, parent3, id, flags, excludeFlags);\n        }\n      });\n    }\n    if (containerIsClass && namespaceSymbol && namespaceSymbol.valueDeclaration) {\n      addDeclarationToSymbol(namespaceSymbol, namespaceSymbol.valueDeclaration, 32 /* Class */);\n    }\n    return namespaceSymbol;\n  }\n  function bindPotentiallyNewExpandoMemberToNamespace(declaration, namespaceSymbol, isPrototypeProperty) {\n    if (!namespaceSymbol || !isExpandoSymbol(namespaceSymbol)) {\n      return;\n    }\n    const symbolTable = isPrototypeProperty ? namespaceSymbol.members || (namespaceSymbol.members = createSymbolTable()) : namespaceSymbol.exports || (namespaceSymbol.exports = createSymbolTable());\n    let includes = 0 /* None */;\n    let excludes = 0 /* None */;\n    if (isFunctionLikeDeclaration(getAssignedExpandoInitializer(declaration))) {\n      includes = 8192 /* Method */;\n      excludes = 103359 /* MethodExcludes */;\n    } else if (isCallExpression(declaration) && isBindableObjectDefinePropertyCall(declaration)) {\n      if (some(declaration.arguments[2].properties, (p) => {\n        const id = getNameOfDeclaration(p);\n        return !!id && isIdentifier(id) && idText(id) === \"set\";\n      })) {\n        includes |= 65536 /* SetAccessor */ | 4 /* Property */;\n        excludes |= 78783 /* SetAccessorExcludes */;\n      }\n      if (some(declaration.arguments[2].properties, (p) => {\n        const id = getNameOfDeclaration(p);\n        return !!id && isIdentifier(id) && idText(id) === \"get\";\n      })) {\n        includes |= 32768 /* GetAccessor */ | 4 /* Property */;\n        excludes |= 46015 /* GetAccessorExcludes */;\n      }\n    }\n    if (includes === 0 /* None */) {\n      includes = 4 /* Property */;\n      excludes = 0 /* PropertyExcludes */;\n    }\n    declareSymbol(symbolTable, namespaceSymbol, declaration, includes | 67108864 /* Assignment */, excludes & ~67108864 /* Assignment */);\n  }\n  function isTopLevelNamespaceAssignment(propertyAccess) {\n    return isBinaryExpression(propertyAccess.parent) ? getParentOfBinaryExpression(propertyAccess.parent).parent.kind === 308 /* SourceFile */ : propertyAccess.parent.parent.kind === 308 /* SourceFile */;\n  }\n  function bindPropertyAssignment(name, propertyAccess, isPrototypeProperty, containerIsClass) {\n    let namespaceSymbol = lookupSymbolForPropertyAccess(name, blockScopeContainer) || lookupSymbolForPropertyAccess(name, container);\n    const isToplevel = isTopLevelNamespaceAssignment(propertyAccess);\n    namespaceSymbol = bindPotentiallyMissingNamespaces(namespaceSymbol, propertyAccess.expression, isToplevel, isPrototypeProperty, containerIsClass);\n    bindPotentiallyNewExpandoMemberToNamespace(propertyAccess, namespaceSymbol, isPrototypeProperty);\n  }\n  function isExpandoSymbol(symbol) {\n    if (symbol.flags & (16 /* Function */ | 32 /* Class */ | 1024 /* NamespaceModule */)) {\n      return true;\n    }\n    const node = symbol.valueDeclaration;\n    if (node && isCallExpression(node)) {\n      return !!getAssignedExpandoInitializer(node);\n    }\n    let init = !node ? void 0 : isVariableDeclaration(node) ? node.initializer : isBinaryExpression(node) ? node.right : isPropertyAccessExpression(node) && isBinaryExpression(node.parent) ? node.parent.right : void 0;\n    init = init && getRightMostAssignedExpression(init);\n    if (init) {\n      const isPrototypeAssignment = isPrototypeAccess(isVariableDeclaration(node) ? node.name : isBinaryExpression(node) ? node.left : node);\n      return !!getExpandoInitializer(isBinaryExpression(init) && (init.operatorToken.kind === 57 /* BarBarToken */ || init.operatorToken.kind === 61 /* QuestionQuestionToken */) ? init.right : init, isPrototypeAssignment);\n    }\n    return false;\n  }\n  function getParentOfBinaryExpression(expr) {\n    while (isBinaryExpression(expr.parent)) {\n      expr = expr.parent;\n    }\n    return expr.parent;\n  }\n  function lookupSymbolForPropertyAccess(node, lookupContainer = container) {\n    if (isIdentifier(node)) {\n      return lookupSymbolForName(lookupContainer, node.escapedText);\n    } else {\n      const symbol = lookupSymbolForPropertyAccess(node.expression);\n      return symbol && symbol.exports && symbol.exports.get(getElementOrPropertyAccessName(node));\n    }\n  }\n  function forEachIdentifierInEntityName(e, parent3, action) {\n    if (isExportsOrModuleExportsOrAlias(file, e)) {\n      return file.symbol;\n    } else if (isIdentifier(e)) {\n      return action(e, lookupSymbolForPropertyAccess(e), parent3);\n    } else {\n      const s = forEachIdentifierInEntityName(e.expression, parent3, action);\n      const name = getNameOrArgument(e);\n      if (isPrivateIdentifier(name)) {\n        Debug.fail(\"unexpected PrivateIdentifier\");\n      }\n      return action(name, s && s.exports && s.exports.get(getElementOrPropertyAccessName(e)), s);\n    }\n  }\n  function bindCallExpression(node) {\n    if (!file.commonJsModuleIndicator && isRequireCall(\n      node,\n      /*requireStringLiteralLikeArgument*/\n      false\n    )) {\n      setCommonJsModuleIndicator(node);\n    }\n  }\n  function bindClassLikeDeclaration(node) {\n    if (node.kind === 264 /* ClassDeclaration */) {\n      bindBlockScopedDeclaration(node, 32 /* Class */, 899503 /* ClassExcludes */);\n    } else {\n      const bindingName = node.name ? node.name.escapedText : \"__class\" /* Class */;\n      bindAnonymousDeclaration(node, 32 /* Class */, bindingName);\n      if (node.name) {\n        classifiableNames.add(node.name.escapedText);\n      }\n    }\n    const { symbol } = node;\n    const prototypeSymbol = createSymbol(4 /* Property */ | 4194304 /* Prototype */, \"prototype\");\n    const symbolExport = symbol.exports.get(prototypeSymbol.escapedName);\n    if (symbolExport) {\n      if (node.name) {\n        setParent(node.name, node);\n      }\n      file.bindDiagnostics.push(createDiagnosticForNode2(symbolExport.declarations[0], Diagnostics.Duplicate_identifier_0, symbolName(prototypeSymbol)));\n    }\n    symbol.exports.set(prototypeSymbol.escapedName, prototypeSymbol);\n    prototypeSymbol.parent = symbol;\n  }\n  function bindEnumDeclaration(node) {\n    return isEnumConst(node) ? bindBlockScopedDeclaration(node, 128 /* ConstEnum */, 899967 /* ConstEnumExcludes */) : bindBlockScopedDeclaration(node, 256 /* RegularEnum */, 899327 /* RegularEnumExcludes */);\n  }\n  function bindVariableDeclarationOrBindingElement(node) {\n    if (inStrictMode) {\n      checkStrictModeEvalOrArguments(node, node.name);\n    }\n    if (!isBindingPattern(node.name)) {\n      const possibleVariableDecl = node.kind === 261 /* VariableDeclaration */ ? node : node.parent.parent;\n      if (isInJSFile(node) && isVariableDeclarationInitializedToBareOrAccessedRequire(possibleVariableDecl) && !getJSDocTypeTag(node) && !(getCombinedModifierFlags(node) & 32 /* Export */)) {\n        declareSymbolAndAddToSymbolTable(node, 2097152 /* Alias */, 2097152 /* AliasExcludes */);\n      } else if (isBlockOrCatchScoped(node)) {\n        bindBlockScopedDeclaration(node, 2 /* BlockScopedVariable */, 111551 /* BlockScopedVariableExcludes */);\n      } else if (isPartOfParameterDeclaration(node)) {\n        declareSymbolAndAddToSymbolTable(node, 1 /* FunctionScopedVariable */, 111551 /* ParameterExcludes */);\n      } else {\n        declareSymbolAndAddToSymbolTable(node, 1 /* FunctionScopedVariable */, 111550 /* FunctionScopedVariableExcludes */);\n      }\n    }\n  }\n  function bindParameter(node) {\n    if (node.kind === 342 /* JSDocParameterTag */ && container.kind !== 324 /* JSDocSignature */) {\n      return;\n    }\n    if (inStrictMode && !(node.flags & 33554432 /* Ambient */)) {\n      checkStrictModeEvalOrArguments(node, node.name);\n    }\n    if (isBindingPattern(node.name)) {\n      bindAnonymousDeclaration(node, 1 /* FunctionScopedVariable */, \"__\" + node.parent.parameters.indexOf(node));\n    } else {\n      declareSymbolAndAddToSymbolTable(node, 1 /* FunctionScopedVariable */, 111551 /* ParameterExcludes */);\n    }\n    if (isParameterPropertyDeclaration(node, node.parent)) {\n      const classDeclaration = node.parent.parent;\n      declareSymbol(classDeclaration.symbol.members, classDeclaration.symbol, node, 4 /* Property */ | (node.questionToken ? 16777216 /* Optional */ : 0 /* None */), 0 /* PropertyExcludes */);\n    }\n  }\n  function bindFunctionDeclaration(node) {\n    if (!file.isDeclarationFile && !(node.flags & 33554432 /* Ambient */)) {\n      if (isAsyncFunction(node)) {\n        emitFlags |= 4096 /* HasAsyncFunctions */;\n      }\n    }\n    checkStrictModeFunctionName(node);\n    if (inStrictMode) {\n      checkStrictModeFunctionDeclaration(node);\n      bindBlockScopedDeclaration(node, 16 /* Function */, 110991 /* FunctionExcludes */);\n    } else {\n      declareSymbolAndAddToSymbolTable(node, 16 /* Function */, 110991 /* FunctionExcludes */);\n    }\n  }\n  function bindFunctionExpression(node) {\n    if (!file.isDeclarationFile && !(node.flags & 33554432 /* Ambient */)) {\n      if (isAsyncFunction(node)) {\n        emitFlags |= 4096 /* HasAsyncFunctions */;\n      }\n    }\n    if (currentFlow) {\n      node.flowNode = currentFlow;\n    }\n    checkStrictModeFunctionName(node);\n    const bindingName = node.name ? node.name.escapedText : \"__function\" /* Function */;\n    return bindAnonymousDeclaration(node, 16 /* Function */, bindingName);\n  }\n  function bindPropertyOrMethodOrAccessor(node, symbolFlags, symbolExcludes) {\n    if (!file.isDeclarationFile && !(node.flags & 33554432 /* Ambient */) && isAsyncFunction(node)) {\n      emitFlags |= 4096 /* HasAsyncFunctions */;\n    }\n    if (currentFlow && isObjectLiteralOrClassExpressionMethodOrAccessor(node)) {\n      node.flowNode = currentFlow;\n    }\n    return hasDynamicName(node) ? bindAnonymousDeclaration(node, symbolFlags, \"__computed\" /* Computed */) : declareSymbolAndAddToSymbolTable(node, symbolFlags, symbolExcludes);\n  }\n  function getInferTypeContainer(node) {\n    const extendsType = findAncestor(node, (n) => n.parent && isConditionalTypeNode(n.parent) && n.parent.extendsType === n);\n    return extendsType && extendsType.parent;\n  }\n  function bindTypeParameter(node) {\n    if (isJSDocTemplateTag(node.parent)) {\n      const container2 = getEffectiveContainerForJSDocTemplateTag(node.parent);\n      if (container2) {\n        Debug.assertNode(container2, canHaveLocals);\n        container2.locals ?? (container2.locals = createSymbolTable());\n        declareSymbol(\n          container2.locals,\n          /*parent*/\n          void 0,\n          node,\n          262144 /* TypeParameter */,\n          526824 /* TypeParameterExcludes */\n        );\n      } else {\n        declareSymbolAndAddToSymbolTable(node, 262144 /* TypeParameter */, 526824 /* TypeParameterExcludes */);\n      }\n    } else if (node.parent.kind === 196 /* InferType */) {\n      const container2 = getInferTypeContainer(node.parent);\n      if (container2) {\n        Debug.assertNode(container2, canHaveLocals);\n        container2.locals ?? (container2.locals = createSymbolTable());\n        declareSymbol(\n          container2.locals,\n          /*parent*/\n          void 0,\n          node,\n          262144 /* TypeParameter */,\n          526824 /* TypeParameterExcludes */\n        );\n      } else {\n        bindAnonymousDeclaration(node, 262144 /* TypeParameter */, getDeclarationName(node));\n      }\n    } else {\n      declareSymbolAndAddToSymbolTable(node, 262144 /* TypeParameter */, 526824 /* TypeParameterExcludes */);\n    }\n  }\n  function shouldReportErrorOnModuleDeclaration(node) {\n    const instanceState = getModuleInstanceState(node);\n    return instanceState === 1 /* Instantiated */ || instanceState === 2 /* ConstEnumOnly */ && shouldPreserveConstEnums(options);\n  }\n  function checkUnreachable(node) {\n    if (!(currentFlow.flags & 1 /* Unreachable */)) {\n      return false;\n    }\n    if (currentFlow === unreachableFlow) {\n      const reportError = (\n        // report error on all statements except empty ones\n        isStatementButNotDeclaration(node) && node.kind !== 243 /* EmptyStatement */ || // report error on class declarations\n        node.kind === 264 /* ClassDeclaration */ || // report errors on enums with preserved emit\n        isEnumDeclarationWithPreservedEmit(node, options) || // report error on instantiated modules\n        node.kind === 268 /* ModuleDeclaration */ && shouldReportErrorOnModuleDeclaration(node)\n      );\n      if (reportError) {\n        currentFlow = reportedUnreachableFlow;\n        if (!options.allowUnreachableCode) {\n          const isError = unreachableCodeIsError(options) && !(node.flags & 33554432 /* Ambient */) && (!isVariableStatement(node) || !!(getCombinedNodeFlags(node.declarationList) & 7 /* BlockScoped */) || node.declarationList.declarations.some((d) => !!d.initializer));\n          eachUnreachableRange(node, options, (start, end) => errorOrSuggestionOnRange(isError, start, end, Diagnostics.Unreachable_code_detected));\n        }\n      }\n    }\n    return true;\n  }\n}\nfunction isEnumDeclarationWithPreservedEmit(node, options) {\n  return node.kind === 267 /* EnumDeclaration */ && (!isEnumConst(node) || shouldPreserveConstEnums(options));\n}\nfunction eachUnreachableRange(node, options, cb) {\n  if (isStatement(node) && isExecutableStatement(node) && isBlock(node.parent)) {\n    const { statements } = node.parent;\n    const slice = sliceAfter(statements, node);\n    getRangesWhere(slice, isExecutableStatement, (start, afterEnd) => cb(slice[start], slice[afterEnd - 1]));\n  } else {\n    cb(node, node);\n  }\n  function isExecutableStatement(s) {\n    return !isFunctionDeclaration(s) && !isPurelyTypeDeclaration(s) && // `var x;` may declare a variable used above\n    !(isVariableStatement(s) && !(getCombinedNodeFlags(s) & 7 /* BlockScoped */) && s.declarationList.declarations.some((d) => !d.initializer));\n  }\n  function isPurelyTypeDeclaration(s) {\n    switch (s.kind) {\n      case 265 /* InterfaceDeclaration */:\n      case 266 /* TypeAliasDeclaration */:\n        return true;\n      case 268 /* ModuleDeclaration */:\n        return getModuleInstanceState(s) !== 1 /* Instantiated */;\n      case 267 /* EnumDeclaration */:\n        return !isEnumDeclarationWithPreservedEmit(s, options);\n      default:\n        return false;\n    }\n  }\n}\nfunction isExportsOrModuleExportsOrAlias(sourceFile, node) {\n  let i = 0;\n  const q = createQueue();\n  q.enqueue(node);\n  while (!q.isEmpty() && i < 100) {\n    i++;\n    node = q.dequeue();\n    if (isExportsIdentifier(node) || isModuleExportsAccessExpression(node)) {\n      return true;\n    } else if (isIdentifier(node)) {\n      const symbol = lookupSymbolForName(sourceFile, node.escapedText);\n      if (!!symbol && !!symbol.valueDeclaration && isVariableDeclaration(symbol.valueDeclaration) && !!symbol.valueDeclaration.initializer) {\n        const init = symbol.valueDeclaration.initializer;\n        q.enqueue(init);\n        if (isAssignmentExpression(\n          init,\n          /*excludeCompoundAssignment*/\n          true\n        )) {\n          q.enqueue(init.left);\n          q.enqueue(init.right);\n        }\n      }\n    }\n  }\n  return false;\n}\nfunction getContainerFlags(node) {\n  switch (node.kind) {\n    case 232 /* ClassExpression */:\n    case 264 /* ClassDeclaration */:\n    case 267 /* EnumDeclaration */:\n    case 211 /* ObjectLiteralExpression */:\n    case 188 /* TypeLiteral */:\n    case 323 /* JSDocTypeLiteral */:\n    case 293 /* JsxAttributes */:\n      return 1 /* IsContainer */;\n    case 265 /* InterfaceDeclaration */:\n      return 1 /* IsContainer */ | 64 /* IsInterface */;\n    case 268 /* ModuleDeclaration */:\n    case 266 /* TypeAliasDeclaration */:\n    case 201 /* MappedType */:\n    case 182 /* IndexSignature */:\n      return 1 /* IsContainer */ | 32 /* HasLocals */;\n    case 308 /* SourceFile */:\n      return 1 /* IsContainer */ | 4 /* IsControlFlowContainer */ | 32 /* HasLocals */;\n    case 178 /* GetAccessor */:\n    case 179 /* SetAccessor */:\n    case 175 /* MethodDeclaration */:\n      if (isObjectLiteralOrClassExpressionMethodOrAccessor(node)) {\n        return 1 /* IsContainer */ | 4 /* IsControlFlowContainer */ | 32 /* HasLocals */ | 8 /* IsFunctionLike */ | 128 /* IsObjectLiteralOrClassExpressionMethodOrAccessor */;\n      }\n    // falls through\n    case 177 /* Constructor */:\n    case 263 /* FunctionDeclaration */:\n    case 174 /* MethodSignature */:\n    case 180 /* CallSignature */:\n    case 324 /* JSDocSignature */:\n    case 318 /* JSDocFunctionType */:\n    case 185 /* FunctionType */:\n    case 181 /* ConstructSignature */:\n    case 186 /* ConstructorType */:\n    case 176 /* ClassStaticBlockDeclaration */:\n      return 1 /* IsContainer */ | 4 /* IsControlFlowContainer */ | 32 /* HasLocals */ | 8 /* IsFunctionLike */;\n    case 352 /* JSDocImportTag */:\n      return 1 /* IsContainer */ | 4 /* IsControlFlowContainer */ | 32 /* HasLocals */;\n    case 219 /* FunctionExpression */:\n    case 220 /* ArrowFunction */:\n      return 1 /* IsContainer */ | 4 /* IsControlFlowContainer */ | 32 /* HasLocals */ | 8 /* IsFunctionLike */ | 16 /* IsFunctionExpression */;\n    case 269 /* ModuleBlock */:\n      return 4 /* IsControlFlowContainer */;\n    case 173 /* PropertyDeclaration */:\n      return node.initializer ? 4 /* IsControlFlowContainer */ : 0;\n    case 300 /* CatchClause */:\n    case 249 /* ForStatement */:\n    case 250 /* ForInStatement */:\n    case 251 /* ForOfStatement */:\n    case 270 /* CaseBlock */:\n      return 2 /* IsBlockScopedContainer */ | 32 /* HasLocals */;\n    case 242 /* Block */:\n      return isFunctionLike(node.parent) || isClassStaticBlockDeclaration(node.parent) ? 0 /* None */ : 2 /* IsBlockScopedContainer */ | 32 /* HasLocals */;\n  }\n  return 0 /* None */;\n}\nfunction lookupSymbolForName(container, name) {\n  var _a, _b, _c, _d;\n  const local = (_b = (_a = tryCast(container, canHaveLocals)) == null ? void 0 : _a.locals) == null ? void 0 : _b.get(name);\n  if (local) {\n    return local.exportSymbol ?? local;\n  }\n  if (isSourceFile(container) && container.jsGlobalAugmentations && container.jsGlobalAugmentations.has(name)) {\n    return container.jsGlobalAugmentations.get(name);\n  }\n  if (canHaveSymbol(container)) {\n    return (_d = (_c = container.symbol) == null ? void 0 : _c.exports) == null ? void 0 : _d.get(name);\n  }\n}\n\n// src/compiler/symbolWalker.ts\nfunction createGetSymbolWalker(getRestTypeOfSignature, getTypePredicateOfSignature, getReturnTypeOfSignature, getBaseTypes, resolveStructuredTypeMembers, getTypeOfSymbol, getResolvedSymbol, getConstraintOfTypeParameter, getFirstIdentifier2, getTypeArguments) {\n  return getSymbolWalker;\n  function getSymbolWalker(accept = () => true) {\n    const visitedTypes = [];\n    const visitedSymbols = [];\n    return {\n      walkType: (type) => {\n        try {\n          visitType(type);\n          return { visitedTypes: getOwnValues(visitedTypes), visitedSymbols: getOwnValues(visitedSymbols) };\n        } finally {\n          clear(visitedTypes);\n          clear(visitedSymbols);\n        }\n      },\n      walkSymbol: (symbol) => {\n        try {\n          visitSymbol(symbol);\n          return { visitedTypes: getOwnValues(visitedTypes), visitedSymbols: getOwnValues(visitedSymbols) };\n        } finally {\n          clear(visitedTypes);\n          clear(visitedSymbols);\n        }\n      }\n    };\n    function visitType(type) {\n      if (!type) {\n        return;\n      }\n      if (visitedTypes[type.id]) {\n        return;\n      }\n      visitedTypes[type.id] = type;\n      const shouldBail = visitSymbol(type.symbol);\n      if (shouldBail) return;\n      if (type.flags & 524288 /* Object */) {\n        const objectType = type;\n        const objectFlags = objectType.objectFlags;\n        if (objectFlags & 4 /* Reference */) {\n          visitTypeReference(type);\n        }\n        if (objectFlags & 32 /* Mapped */) {\n          visitMappedType(type);\n        }\n        if (objectFlags & (1 /* Class */ | 2 /* Interface */)) {\n          visitInterfaceType(type);\n        }\n        if (objectFlags & (8 /* Tuple */ | 16 /* Anonymous */)) {\n          visitObjectType(objectType);\n        }\n      }\n      if (type.flags & 262144 /* TypeParameter */) {\n        visitTypeParameter(type);\n      }\n      if (type.flags & 3145728 /* UnionOrIntersection */) {\n        visitUnionOrIntersectionType(type);\n      }\n      if (type.flags & 4194304 /* Index */) {\n        visitIndexType(type);\n      }\n      if (type.flags & 8388608 /* IndexedAccess */) {\n        visitIndexedAccessType(type);\n      }\n    }\n    function visitTypeReference(type) {\n      visitType(type.target);\n      forEach(getTypeArguments(type), visitType);\n    }\n    function visitTypeParameter(type) {\n      visitType(getConstraintOfTypeParameter(type));\n    }\n    function visitUnionOrIntersectionType(type) {\n      forEach(type.types, visitType);\n    }\n    function visitIndexType(type) {\n      visitType(type.type);\n    }\n    function visitIndexedAccessType(type) {\n      visitType(type.objectType);\n      visitType(type.indexType);\n      visitType(type.constraint);\n    }\n    function visitMappedType(type) {\n      visitType(type.typeParameter);\n      visitType(type.constraintType);\n      visitType(type.templateType);\n      visitType(type.modifiersType);\n    }\n    function visitSignature(signature) {\n      const typePredicate = getTypePredicateOfSignature(signature);\n      if (typePredicate) {\n        visitType(typePredicate.type);\n      }\n      forEach(signature.typeParameters, visitType);\n      for (const parameter of signature.parameters) {\n        visitSymbol(parameter);\n      }\n      visitType(getRestTypeOfSignature(signature));\n      visitType(getReturnTypeOfSignature(signature));\n    }\n    function visitInterfaceType(interfaceT) {\n      visitObjectType(interfaceT);\n      forEach(interfaceT.typeParameters, visitType);\n      forEach(getBaseTypes(interfaceT), visitType);\n      visitType(interfaceT.thisType);\n    }\n    function visitObjectType(type) {\n      const resolved = resolveStructuredTypeMembers(type);\n      for (const info of resolved.indexInfos) {\n        visitType(info.keyType);\n        visitType(info.type);\n      }\n      for (const signature of resolved.callSignatures) {\n        visitSignature(signature);\n      }\n      for (const signature of resolved.constructSignatures) {\n        visitSignature(signature);\n      }\n      for (const p of resolved.properties) {\n        visitSymbol(p);\n      }\n    }\n    function visitSymbol(symbol) {\n      if (!symbol) {\n        return false;\n      }\n      const symbolId = getSymbolId(symbol);\n      if (visitedSymbols[symbolId]) {\n        return false;\n      }\n      visitedSymbols[symbolId] = symbol;\n      if (!accept(symbol)) {\n        return true;\n      }\n      const t = getTypeOfSymbol(symbol);\n      visitType(t);\n      if (symbol.exports) {\n        symbol.exports.forEach(visitSymbol);\n      }\n      forEach(symbol.declarations, (d) => {\n        if (d.type && d.type.kind === 187 /* TypeQuery */) {\n          const query = d.type;\n          const entity = getResolvedSymbol(getFirstIdentifier2(query.exprName));\n          visitSymbol(entity);\n        }\n      });\n      return false;\n    }\n  }\n}\n\n// src/compiler/_namespaces/ts.moduleSpecifiers.ts\nvar ts_moduleSpecifiers_exports = {};\n__export(ts_moduleSpecifiers_exports, {\n  RelativePreference: () => RelativePreference,\n  countPathComponents: () => countPathComponents,\n  forEachFileNameOfModule: () => forEachFileNameOfModule,\n  getLocalModuleSpecifierBetweenFileNames: () => getLocalModuleSpecifierBetweenFileNames,\n  getModuleSpecifier: () => getModuleSpecifier,\n  getModuleSpecifierPreferences: () => getModuleSpecifierPreferences,\n  getModuleSpecifiers: () => getModuleSpecifiers,\n  getModuleSpecifiersWithCacheInfo: () => getModuleSpecifiersWithCacheInfo,\n  getNodeModulesPackageName: () => getNodeModulesPackageName,\n  tryGetJSExtensionForFile: () => tryGetJSExtensionForFile,\n  tryGetModuleSpecifiersFromCache: () => tryGetModuleSpecifiersFromCache,\n  tryGetRealFileNameForNonJsDeclarationFileName: () => tryGetRealFileNameForNonJsDeclarationFileName,\n  updateModuleSpecifier: () => updateModuleSpecifier\n});\n\n// src/compiler/moduleSpecifiers.ts\nvar stringToRegex = memoizeOne((pattern) => {\n  try {\n    let slash = pattern.indexOf(\"/\");\n    if (slash !== 0) {\n      return new RegExp(pattern);\n    }\n    const lastSlash = pattern.lastIndexOf(\"/\");\n    if (slash === lastSlash) {\n      return new RegExp(pattern);\n    }\n    while ((slash = pattern.indexOf(\"/\", slash + 1)) !== lastSlash) {\n      if (pattern[slash - 1] !== \"\\\\\") {\n        return new RegExp(pattern);\n      }\n    }\n    const flags = pattern.substring(lastSlash + 1).replace(/[^iu]/g, \"\");\n    pattern = pattern.substring(1, lastSlash);\n    return new RegExp(pattern, flags);\n  } catch {\n    return void 0;\n  }\n});\nvar RelativePreference = /* @__PURE__ */ ((RelativePreference2) => {\n  RelativePreference2[RelativePreference2[\"Relative\"] = 0] = \"Relative\";\n  RelativePreference2[RelativePreference2[\"NonRelative\"] = 1] = \"NonRelative\";\n  RelativePreference2[RelativePreference2[\"Shortest\"] = 2] = \"Shortest\";\n  RelativePreference2[RelativePreference2[\"ExternalNonRelative\"] = 3] = \"ExternalNonRelative\";\n  return RelativePreference2;\n})(RelativePreference || {});\nfunction getModuleSpecifierPreferences({ importModuleSpecifierPreference, importModuleSpecifierEnding, autoImportSpecifierExcludeRegexes }, host, compilerOptions, importingSourceFile, oldImportSpecifier) {\n  const filePreferredEnding = getPreferredEnding();\n  return {\n    excludeRegexes: autoImportSpecifierExcludeRegexes,\n    relativePreference: oldImportSpecifier !== void 0 ? isExternalModuleNameRelative(oldImportSpecifier) ? 0 /* Relative */ : 1 /* NonRelative */ : importModuleSpecifierPreference === \"relative\" ? 0 /* Relative */ : importModuleSpecifierPreference === \"non-relative\" ? 1 /* NonRelative */ : importModuleSpecifierPreference === \"project-relative\" ? 3 /* ExternalNonRelative */ : 2 /* Shortest */,\n    getAllowedEndingsInPreferredOrder: (syntaxImpliedNodeFormat) => {\n      const impliedNodeFormat = getDefaultResolutionModeForFile(importingSourceFile, host, compilerOptions);\n      const preferredEnding = syntaxImpliedNodeFormat !== impliedNodeFormat ? getPreferredEnding(syntaxImpliedNodeFormat) : filePreferredEnding;\n      const moduleResolution = getEmitModuleResolutionKind(compilerOptions);\n      if ((syntaxImpliedNodeFormat ?? impliedNodeFormat) === 99 /* ESNext */ && 3 /* Node16 */ <= moduleResolution && moduleResolution <= 99 /* NodeNext */) {\n        if (shouldAllowImportingTsExtension(compilerOptions, importingSourceFile.fileName)) {\n          return [3 /* TsExtension */, 2 /* JsExtension */];\n        }\n        return [2 /* JsExtension */];\n      }\n      if (getEmitModuleResolutionKind(compilerOptions) === 1 /* Classic */) {\n        return preferredEnding === 2 /* JsExtension */ ? [2 /* JsExtension */, 1 /* Index */] : [1 /* Index */, 2 /* JsExtension */];\n      }\n      const allowImportingTsExtension = shouldAllowImportingTsExtension(compilerOptions, importingSourceFile.fileName);\n      switch (preferredEnding) {\n        case 2 /* JsExtension */:\n          return allowImportingTsExtension ? [2 /* JsExtension */, 3 /* TsExtension */, 0 /* Minimal */, 1 /* Index */] : [2 /* JsExtension */, 0 /* Minimal */, 1 /* Index */];\n        case 3 /* TsExtension */:\n          return [3 /* TsExtension */, 0 /* Minimal */, 2 /* JsExtension */, 1 /* Index */];\n        case 1 /* Index */:\n          return allowImportingTsExtension ? [1 /* Index */, 0 /* Minimal */, 3 /* TsExtension */, 2 /* JsExtension */] : [1 /* Index */, 0 /* Minimal */, 2 /* JsExtension */];\n        case 0 /* Minimal */:\n          return allowImportingTsExtension ? [0 /* Minimal */, 1 /* Index */, 3 /* TsExtension */, 2 /* JsExtension */] : [0 /* Minimal */, 1 /* Index */, 2 /* JsExtension */];\n        default:\n          Debug.assertNever(preferredEnding);\n      }\n    }\n  };\n  function getPreferredEnding(resolutionMode) {\n    if (oldImportSpecifier !== void 0) {\n      if (hasJSFileExtension(oldImportSpecifier)) return 2 /* JsExtension */;\n      if (endsWith(oldImportSpecifier, \"/index\")) return 1 /* Index */;\n    }\n    return getModuleSpecifierEndingPreference(\n      importModuleSpecifierEnding,\n      resolutionMode ?? getDefaultResolutionModeForFile(importingSourceFile, host, compilerOptions),\n      compilerOptions,\n      isFullSourceFile(importingSourceFile) ? importingSourceFile : void 0\n    );\n  }\n}\nfunction updateModuleSpecifier(compilerOptions, importingSourceFile, importingSourceFileName, toFileName2, host, oldImportSpecifier, options = {}) {\n  const res = getModuleSpecifierWorker(compilerOptions, importingSourceFile, importingSourceFileName, toFileName2, host, getModuleSpecifierPreferences({}, host, compilerOptions, importingSourceFile, oldImportSpecifier), {}, options);\n  if (res === oldImportSpecifier) return void 0;\n  return res;\n}\nfunction getModuleSpecifier(compilerOptions, importingSourceFile, importingSourceFileName, toFileName2, host, options = {}) {\n  return getModuleSpecifierWorker(compilerOptions, importingSourceFile, importingSourceFileName, toFileName2, host, getModuleSpecifierPreferences({}, host, compilerOptions, importingSourceFile), {}, options);\n}\nfunction getNodeModulesPackageName(compilerOptions, importingSourceFile, nodeModulesFileName, host, preferences, options = {}) {\n  const info = getInfo(importingSourceFile.fileName, host);\n  const modulePaths = getAllModulePaths(info, nodeModulesFileName, host, preferences, compilerOptions, options);\n  return firstDefined(modulePaths, (modulePath) => tryGetModuleNameAsNodeModule(\n    modulePath,\n    info,\n    importingSourceFile,\n    host,\n    compilerOptions,\n    preferences,\n    /*packageNameOnly*/\n    true,\n    options.overrideImportMode\n  ));\n}\nfunction getModuleSpecifierWorker(compilerOptions, importingSourceFile, importingSourceFileName, toFileName2, host, preferences, userPreferences, options = {}) {\n  const info = getInfo(importingSourceFileName, host);\n  const modulePaths = getAllModulePaths(info, toFileName2, host, userPreferences, compilerOptions, options);\n  return firstDefined(modulePaths, (modulePath) => tryGetModuleNameAsNodeModule(\n    modulePath,\n    info,\n    importingSourceFile,\n    host,\n    compilerOptions,\n    userPreferences,\n    /*packageNameOnly*/\n    void 0,\n    options.overrideImportMode\n  )) || getLocalModuleSpecifier(toFileName2, info, compilerOptions, host, options.overrideImportMode || getDefaultResolutionModeForFile(importingSourceFile, host, compilerOptions), preferences);\n}\nfunction tryGetModuleSpecifiersFromCache(moduleSymbol, importingSourceFile, host, userPreferences, options = {}) {\n  const result = tryGetModuleSpecifiersFromCacheWorker(\n    moduleSymbol,\n    importingSourceFile,\n    host,\n    userPreferences,\n    options\n  );\n  return result[1] && { kind: result[0], moduleSpecifiers: result[1], computedWithoutCache: false };\n}\nfunction tryGetModuleSpecifiersFromCacheWorker(moduleSymbol, importingSourceFile, host, userPreferences, options = {}) {\n  var _a;\n  const moduleSourceFile = getSourceFileOfModule(moduleSymbol);\n  if (!moduleSourceFile) {\n    return emptyArray;\n  }\n  const cache = (_a = host.getModuleSpecifierCache) == null ? void 0 : _a.call(host);\n  const cached = cache == null ? void 0 : cache.get(importingSourceFile.path, moduleSourceFile.path, userPreferences, options);\n  return [cached == null ? void 0 : cached.kind, cached == null ? void 0 : cached.moduleSpecifiers, moduleSourceFile, cached == null ? void 0 : cached.modulePaths, cache];\n}\nfunction getModuleSpecifiers(moduleSymbol, checker, compilerOptions, importingSourceFile, host, userPreferences, options = {}) {\n  return getModuleSpecifiersWithCacheInfo(\n    moduleSymbol,\n    checker,\n    compilerOptions,\n    importingSourceFile,\n    host,\n    userPreferences,\n    options,\n    /*forAutoImport*/\n    false\n  ).moduleSpecifiers;\n}\nfunction getModuleSpecifiersWithCacheInfo(moduleSymbol, checker, compilerOptions, importingSourceFile, host, userPreferences, options = {}, forAutoImport) {\n  let computedWithoutCache = false;\n  const ambient = tryGetModuleNameFromAmbientModule(moduleSymbol, checker);\n  if (ambient) {\n    return {\n      kind: \"ambient\",\n      moduleSpecifiers: !(forAutoImport && isExcludedByRegex(ambient, userPreferences.autoImportSpecifierExcludeRegexes)) ? [ambient] : emptyArray,\n      computedWithoutCache\n    };\n  }\n  let [kind, specifiers, moduleSourceFile, modulePaths, cache] = tryGetModuleSpecifiersFromCacheWorker(\n    moduleSymbol,\n    importingSourceFile,\n    host,\n    userPreferences,\n    options\n  );\n  if (specifiers) return { kind, moduleSpecifiers: specifiers, computedWithoutCache };\n  if (!moduleSourceFile) return { kind: void 0, moduleSpecifiers: emptyArray, computedWithoutCache };\n  computedWithoutCache = true;\n  modulePaths || (modulePaths = getAllModulePathsWorker(getInfo(importingSourceFile.fileName, host), moduleSourceFile.originalFileName, host, compilerOptions, options));\n  const result = computeModuleSpecifiers(\n    modulePaths,\n    compilerOptions,\n    importingSourceFile,\n    host,\n    userPreferences,\n    options,\n    forAutoImport\n  );\n  cache == null ? void 0 : cache.set(importingSourceFile.path, moduleSourceFile.path, userPreferences, options, result.kind, modulePaths, result.moduleSpecifiers);\n  return result;\n}\nfunction getLocalModuleSpecifierBetweenFileNames(importingFile, targetFileName, compilerOptions, host, preferences, options = {}) {\n  const info = getInfo(importingFile.fileName, host);\n  const importMode = options.overrideImportMode ?? importingFile.impliedNodeFormat;\n  return getLocalModuleSpecifier(\n    targetFileName,\n    info,\n    compilerOptions,\n    host,\n    importMode,\n    getModuleSpecifierPreferences(preferences, host, compilerOptions, importingFile)\n  );\n}\nfunction computeModuleSpecifiers(modulePaths, compilerOptions, importingSourceFile, host, userPreferences, options = {}, forAutoImport) {\n  const info = getInfo(importingSourceFile.fileName, host);\n  const preferences = getModuleSpecifierPreferences(userPreferences, host, compilerOptions, importingSourceFile);\n  const existingSpecifier = isFullSourceFile(importingSourceFile) && forEach(modulePaths, (modulePath) => forEach(\n    host.getFileIncludeReasons().get(toPath(modulePath.path, host.getCurrentDirectory(), info.getCanonicalFileName)),\n    (reason) => {\n      if (reason.kind !== 3 /* Import */ || reason.file !== importingSourceFile.path) return void 0;\n      const existingMode = host.getModeForResolutionAtIndex(importingSourceFile, reason.index);\n      const targetMode = options.overrideImportMode ?? host.getDefaultResolutionModeForFile(importingSourceFile);\n      if (existingMode !== targetMode && existingMode !== void 0 && targetMode !== void 0) {\n        return void 0;\n      }\n      const specifier = getModuleNameStringLiteralAt(importingSourceFile, reason.index).text;\n      return preferences.relativePreference !== 1 /* NonRelative */ || !pathIsRelative(specifier) ? specifier : void 0;\n    }\n  ));\n  if (existingSpecifier) {\n    return { kind: void 0, moduleSpecifiers: [existingSpecifier], computedWithoutCache: true };\n  }\n  const importedFileIsInNodeModules = some(modulePaths, (p) => p.isInNodeModules);\n  let nodeModulesSpecifiers;\n  let pathsSpecifiers;\n  let redirectPathsSpecifiers;\n  let relativeSpecifiers;\n  for (const modulePath of modulePaths) {\n    const specifier = modulePath.isInNodeModules ? tryGetModuleNameAsNodeModule(\n      modulePath,\n      info,\n      importingSourceFile,\n      host,\n      compilerOptions,\n      userPreferences,\n      /*packageNameOnly*/\n      void 0,\n      options.overrideImportMode\n    ) : void 0;\n    if (specifier && !(forAutoImport && isExcludedByRegex(specifier, preferences.excludeRegexes))) {\n      nodeModulesSpecifiers = append(nodeModulesSpecifiers, specifier);\n      if (modulePath.isRedirect) {\n        return { kind: \"node_modules\", moduleSpecifiers: nodeModulesSpecifiers, computedWithoutCache: true };\n      }\n    }\n    const local = getLocalModuleSpecifier(\n      modulePath.path,\n      info,\n      compilerOptions,\n      host,\n      options.overrideImportMode || importingSourceFile.impliedNodeFormat,\n      preferences,\n      /*pathsOnly*/\n      modulePath.isRedirect || !!specifier\n    );\n    if (!local || forAutoImport && isExcludedByRegex(local, preferences.excludeRegexes)) {\n      continue;\n    }\n    if (modulePath.isRedirect) {\n      redirectPathsSpecifiers = append(redirectPathsSpecifiers, local);\n    } else if (pathIsBareSpecifier(local)) {\n      if (pathContainsNodeModules(local)) {\n        relativeSpecifiers = append(relativeSpecifiers, local);\n      } else {\n        pathsSpecifiers = append(pathsSpecifiers, local);\n      }\n    } else if (forAutoImport || !importedFileIsInNodeModules || modulePath.isInNodeModules) {\n      relativeSpecifiers = append(relativeSpecifiers, local);\n    }\n  }\n  return (pathsSpecifiers == null ? void 0 : pathsSpecifiers.length) ? { kind: \"paths\", moduleSpecifiers: pathsSpecifiers, computedWithoutCache: true } : (redirectPathsSpecifiers == null ? void 0 : redirectPathsSpecifiers.length) ? { kind: \"redirect\", moduleSpecifiers: redirectPathsSpecifiers, computedWithoutCache: true } : (nodeModulesSpecifiers == null ? void 0 : nodeModulesSpecifiers.length) ? { kind: \"node_modules\", moduleSpecifiers: nodeModulesSpecifiers, computedWithoutCache: true } : { kind: \"relative\", moduleSpecifiers: relativeSpecifiers ?? emptyArray, computedWithoutCache: true };\n}\nfunction isExcludedByRegex(moduleSpecifier, excludeRegexes) {\n  return some(excludeRegexes, (pattern) => {\n    var _a;\n    return !!((_a = stringToRegex(pattern)) == null ? void 0 : _a.test(moduleSpecifier));\n  });\n}\nfunction getInfo(importingSourceFileName, host) {\n  importingSourceFileName = getNormalizedAbsolutePath(importingSourceFileName, host.getCurrentDirectory());\n  const getCanonicalFileName = createGetCanonicalFileName(host.useCaseSensitiveFileNames ? host.useCaseSensitiveFileNames() : true);\n  const sourceDirectory = getDirectoryPath(importingSourceFileName);\n  return {\n    getCanonicalFileName,\n    importingSourceFileName,\n    sourceDirectory,\n    canonicalSourceDirectory: getCanonicalFileName(sourceDirectory)\n  };\n}\nfunction getLocalModuleSpecifier(moduleFileName, info, compilerOptions, host, importMode, { getAllowedEndingsInPreferredOrder: getAllowedEndingsInPrefererredOrder, relativePreference, excludeRegexes }, pathsOnly) {\n  const { baseUrl, paths, rootDirs } = compilerOptions;\n  if (pathsOnly && !paths) {\n    return void 0;\n  }\n  const { sourceDirectory, canonicalSourceDirectory, getCanonicalFileName } = info;\n  const allowedEndings = getAllowedEndingsInPrefererredOrder(importMode);\n  const relativePath = rootDirs && tryGetModuleNameFromRootDirs(rootDirs, moduleFileName, sourceDirectory, getCanonicalFileName, allowedEndings, compilerOptions) || processEnding(ensurePathIsNonModuleName(getRelativePathFromDirectory(sourceDirectory, moduleFileName, getCanonicalFileName)), allowedEndings, compilerOptions);\n  if (!baseUrl && !paths && !getResolvePackageJsonImports(compilerOptions) || relativePreference === 0 /* Relative */) {\n    return pathsOnly ? void 0 : relativePath;\n  }\n  const baseDirectory = getNormalizedAbsolutePath(getPathsBasePath(compilerOptions, host) || baseUrl, host.getCurrentDirectory());\n  const relativeToBaseUrl = getRelativePathIfInSameVolume(moduleFileName, baseDirectory, getCanonicalFileName);\n  if (!relativeToBaseUrl) {\n    return pathsOnly ? void 0 : relativePath;\n  }\n  const fromPackageJsonImports = pathsOnly ? void 0 : tryGetModuleNameFromPackageJsonImports(\n    moduleFileName,\n    sourceDirectory,\n    compilerOptions,\n    host,\n    importMode,\n    prefersTsExtension(allowedEndings)\n  );\n  const fromPaths = pathsOnly || fromPackageJsonImports === void 0 ? paths && tryGetModuleNameFromPaths(relativeToBaseUrl, paths, allowedEndings, baseDirectory, getCanonicalFileName, host, compilerOptions) : void 0;\n  if (pathsOnly) {\n    return fromPaths;\n  }\n  const maybeNonRelative = fromPackageJsonImports ?? (fromPaths === void 0 && baseUrl !== void 0 ? processEnding(relativeToBaseUrl, allowedEndings, compilerOptions) : fromPaths);\n  if (!maybeNonRelative) {\n    return relativePath;\n  }\n  const relativeIsExcluded = isExcludedByRegex(relativePath, excludeRegexes);\n  const nonRelativeIsExcluded = isExcludedByRegex(maybeNonRelative, excludeRegexes);\n  if (!relativeIsExcluded && nonRelativeIsExcluded) {\n    return relativePath;\n  }\n  if (relativeIsExcluded && !nonRelativeIsExcluded) {\n    return maybeNonRelative;\n  }\n  if (relativePreference === 1 /* NonRelative */ && !pathIsRelative(maybeNonRelative)) {\n    return maybeNonRelative;\n  }\n  if (relativePreference === 3 /* ExternalNonRelative */ && !pathIsRelative(maybeNonRelative)) {\n    const projectDirectory = compilerOptions.configFilePath ? toPath(getDirectoryPath(compilerOptions.configFilePath), host.getCurrentDirectory(), info.getCanonicalFileName) : info.getCanonicalFileName(host.getCurrentDirectory());\n    const modulePath = toPath(moduleFileName, projectDirectory, getCanonicalFileName);\n    const sourceIsInternal = startsWith(canonicalSourceDirectory, projectDirectory);\n    const targetIsInternal = startsWith(modulePath, projectDirectory);\n    if (sourceIsInternal && !targetIsInternal || !sourceIsInternal && targetIsInternal) {\n      return maybeNonRelative;\n    }\n    const nearestTargetPackageJson = getNearestAncestorDirectoryWithPackageJson(host, getDirectoryPath(modulePath));\n    const nearestSourcePackageJson = getNearestAncestorDirectoryWithPackageJson(host, sourceDirectory);\n    const ignoreCase = !hostUsesCaseSensitiveFileNames(host);\n    if (!packageJsonPathsAreEqual(nearestTargetPackageJson, nearestSourcePackageJson, ignoreCase)) {\n      return maybeNonRelative;\n    }\n    return relativePath;\n  }\n  return isPathRelativeToParent(maybeNonRelative) || countPathComponents(relativePath) < countPathComponents(maybeNonRelative) ? relativePath : maybeNonRelative;\n}\nfunction packageJsonPathsAreEqual(a, b, ignoreCase) {\n  if (a === b) return true;\n  if (a === void 0 || b === void 0) return false;\n  return comparePaths(a, b, ignoreCase) === 0 /* EqualTo */;\n}\nfunction countPathComponents(path) {\n  let count = 0;\n  for (let i = startsWith(path, \"./\") ? 2 : 0; i < path.length; i++) {\n    if (path.charCodeAt(i) === 47 /* slash */) count++;\n  }\n  return count;\n}\nfunction comparePathsByRedirectAndNumberOfDirectorySeparators(a, b) {\n  return compareBooleans(b.isRedirect, a.isRedirect) || compareNumberOfDirectorySeparators(a.path, b.path);\n}\nfunction getNearestAncestorDirectoryWithPackageJson(host, fileName) {\n  if (host.getNearestAncestorDirectoryWithPackageJson) {\n    return host.getNearestAncestorDirectoryWithPackageJson(fileName);\n  }\n  return forEachAncestorDirectoryStoppingAtGlobalCache(\n    host,\n    fileName,\n    (directory) => host.fileExists(combinePaths(directory, \"package.json\")) ? directory : void 0\n  );\n}\nfunction forEachFileNameOfModule(importingFileName, importedFileName, host, preferSymlinks, cb) {\n  var _a, _b;\n  const getCanonicalFileName = hostGetCanonicalFileName(host);\n  const cwd = host.getCurrentDirectory();\n  const referenceRedirect = host.isSourceOfProjectReferenceRedirect(importedFileName) ? (_a = host.getRedirectFromSourceFile(importedFileName)) == null ? void 0 : _a.outputDts : void 0;\n  const importedPath = toPath(importedFileName, cwd, getCanonicalFileName);\n  const redirects = host.redirectTargetsMap.get(importedPath) || emptyArray;\n  const importedFileNames = [...referenceRedirect ? [referenceRedirect] : emptyArray, importedFileName, ...redirects];\n  const targets = importedFileNames.map((f) => getNormalizedAbsolutePath(f, cwd));\n  let shouldFilterIgnoredPaths = !every(targets, containsIgnoredPath);\n  if (!preferSymlinks) {\n    const result2 = forEach(targets, (p) => !(shouldFilterIgnoredPaths && containsIgnoredPath(p)) && cb(p, referenceRedirect === p));\n    if (result2) return result2;\n  }\n  const symlinkedDirectories = (_b = host.getSymlinkCache) == null ? void 0 : _b.call(host).getSymlinkedDirectoriesByRealpath();\n  const fullImportedFileName = getNormalizedAbsolutePath(importedFileName, cwd);\n  const result = symlinkedDirectories && forEachAncestorDirectoryStoppingAtGlobalCache(\n    host,\n    getDirectoryPath(fullImportedFileName),\n    (realPathDirectory) => {\n      const symlinkDirectories = symlinkedDirectories.get(ensureTrailingDirectorySeparator(toPath(realPathDirectory, cwd, getCanonicalFileName)));\n      if (!symlinkDirectories) return void 0;\n      if (startsWithDirectory(importingFileName, realPathDirectory, getCanonicalFileName)) {\n        return false;\n      }\n      return forEach(targets, (target) => {\n        if (!startsWithDirectory(target, realPathDirectory, getCanonicalFileName)) {\n          return;\n        }\n        const relative = getRelativePathFromDirectory(realPathDirectory, target, getCanonicalFileName);\n        for (const symlinkDirectory of symlinkDirectories) {\n          const option = resolvePath(symlinkDirectory, relative);\n          const result2 = cb(option, target === referenceRedirect);\n          shouldFilterIgnoredPaths = true;\n          if (result2) return result2;\n        }\n      });\n    }\n  );\n  return result || (preferSymlinks ? forEach(targets, (p) => shouldFilterIgnoredPaths && containsIgnoredPath(p) ? void 0 : cb(p, p === referenceRedirect)) : void 0);\n}\nfunction getAllModulePaths(info, importedFileName, host, preferences, compilerOptions, options = {}) {\n  var _a;\n  const importingFilePath = toPath(info.importingSourceFileName, host.getCurrentDirectory(), hostGetCanonicalFileName(host));\n  const importedFilePath = toPath(importedFileName, host.getCurrentDirectory(), hostGetCanonicalFileName(host));\n  const cache = (_a = host.getModuleSpecifierCache) == null ? void 0 : _a.call(host);\n  if (cache) {\n    const cached = cache.get(importingFilePath, importedFilePath, preferences, options);\n    if (cached == null ? void 0 : cached.modulePaths) return cached.modulePaths;\n  }\n  const modulePaths = getAllModulePathsWorker(info, importedFileName, host, compilerOptions, options);\n  if (cache) {\n    cache.setModulePaths(importingFilePath, importedFilePath, preferences, options, modulePaths);\n  }\n  return modulePaths;\n}\nvar runtimeDependencyFields = [\"dependencies\", \"peerDependencies\", \"optionalDependencies\"];\nfunction getAllRuntimeDependencies(packageJson) {\n  let result;\n  for (const field of runtimeDependencyFields) {\n    const deps = packageJson[field];\n    if (deps && typeof deps === \"object\") {\n      result = concatenate(result, getOwnKeys(deps));\n    }\n  }\n  return result;\n}\nfunction getAllModulePathsWorker(info, importedFileName, host, compilerOptions, options) {\n  var _a, _b;\n  const cache = (_a = host.getModuleResolutionCache) == null ? void 0 : _a.call(host);\n  const links = (_b = host.getSymlinkCache) == null ? void 0 : _b.call(host);\n  if (cache && links && host.readFile && !pathContainsNodeModules(info.importingSourceFileName)) {\n    Debug.type(host);\n    const state = getTemporaryModuleResolutionState(cache.getPackageJsonInfoCache(), host, {});\n    const packageJson = getPackageScopeForPath(getDirectoryPath(info.importingSourceFileName), state);\n    if (packageJson) {\n      const toResolve = getAllRuntimeDependencies(packageJson.contents.packageJsonContent);\n      for (const depName of toResolve || emptyArray) {\n        const resolved = resolveModuleName(\n          depName,\n          combinePaths(packageJson.packageDirectory, \"package.json\"),\n          compilerOptions,\n          host,\n          cache,\n          /*redirectedReference*/\n          void 0,\n          options.overrideImportMode\n        );\n        links.setSymlinksFromResolution(resolved.resolvedModule);\n      }\n    }\n  }\n  const allFileNames = /* @__PURE__ */ new Map();\n  let importedFileFromNodeModules = false;\n  forEachFileNameOfModule(\n    info.importingSourceFileName,\n    importedFileName,\n    host,\n    /*preferSymlinks*/\n    true,\n    (path, isRedirect) => {\n      const isInNodeModules = pathContainsNodeModules(path);\n      allFileNames.set(path, { path: info.getCanonicalFileName(path), isRedirect, isInNodeModules });\n      importedFileFromNodeModules = importedFileFromNodeModules || isInNodeModules;\n    }\n  );\n  const sortedPaths = [];\n  for (let directory = info.canonicalSourceDirectory; allFileNames.size !== 0; ) {\n    const directoryStart = ensureTrailingDirectorySeparator(directory);\n    let pathsInDirectory;\n    allFileNames.forEach(({ path, isRedirect, isInNodeModules }, fileName) => {\n      if (startsWith(path, directoryStart)) {\n        (pathsInDirectory || (pathsInDirectory = [])).push({ path: fileName, isRedirect, isInNodeModules });\n        allFileNames.delete(fileName);\n      }\n    });\n    if (pathsInDirectory) {\n      if (pathsInDirectory.length > 1) {\n        pathsInDirectory.sort(comparePathsByRedirectAndNumberOfDirectorySeparators);\n      }\n      sortedPaths.push(...pathsInDirectory);\n    }\n    const newDirectory = getDirectoryPath(directory);\n    if (newDirectory === directory) break;\n    directory = newDirectory;\n  }\n  if (allFileNames.size) {\n    const remainingPaths = arrayFrom(\n      allFileNames.entries(),\n      ([fileName, { isRedirect, isInNodeModules }]) => ({ path: fileName, isRedirect, isInNodeModules })\n    );\n    if (remainingPaths.length > 1) remainingPaths.sort(comparePathsByRedirectAndNumberOfDirectorySeparators);\n    sortedPaths.push(...remainingPaths);\n  }\n  return sortedPaths;\n}\nfunction tryGetModuleNameFromAmbientModule(moduleSymbol, checker) {\n  var _a;\n  const decl = (_a = moduleSymbol.declarations) == null ? void 0 : _a.find(\n    (d) => isNonGlobalAmbientModule(d) && (!isExternalModuleAugmentation(d) || !isExternalModuleNameRelative(getTextOfIdentifierOrLiteral(d.name)))\n  );\n  if (decl) {\n    return decl.name.text;\n  }\n  const ambientModuleDeclareCandidates = mapDefined(moduleSymbol.declarations, (d) => {\n    var _a2, _b, _c, _d;\n    if (!isModuleDeclaration(d)) return;\n    const topNamespace = getTopNamespace(d);\n    if (!(((_a2 = topNamespace == null ? void 0 : topNamespace.parent) == null ? void 0 : _a2.parent) && isModuleBlock(topNamespace.parent) && isAmbientModule(topNamespace.parent.parent) && isSourceFile(topNamespace.parent.parent.parent))) return;\n    const exportAssignment = (_d = (_c = (_b = topNamespace.parent.parent.symbol.exports) == null ? void 0 : _b.get(\"export=\")) == null ? void 0 : _c.valueDeclaration) == null ? void 0 : _d.expression;\n    if (!exportAssignment) return;\n    const exportSymbol = checker.getSymbolAtLocation(exportAssignment);\n    if (!exportSymbol) return;\n    const originalExportSymbol = (exportSymbol == null ? void 0 : exportSymbol.flags) & 2097152 /* Alias */ ? checker.getAliasedSymbol(exportSymbol) : exportSymbol;\n    if (originalExportSymbol === d.symbol) return topNamespace.parent.parent;\n    function getTopNamespace(namespaceDeclaration) {\n      while (namespaceDeclaration.flags & 8 /* NestedNamespace */) {\n        namespaceDeclaration = namespaceDeclaration.parent;\n      }\n      return namespaceDeclaration;\n    }\n  });\n  const ambientModuleDeclare = ambientModuleDeclareCandidates[0];\n  if (ambientModuleDeclare) {\n    return ambientModuleDeclare.name.text;\n  }\n}\nfunction tryGetModuleNameFromPaths(relativeToBaseUrl, paths, allowedEndings, baseDirectory, getCanonicalFileName, host, compilerOptions) {\n  for (const key in paths) {\n    for (const patternText2 of paths[key]) {\n      const normalized = normalizePath(patternText2);\n      const pattern = getRelativePathIfInSameVolume(normalized, baseDirectory, getCanonicalFileName) ?? normalized;\n      const indexOfStar = pattern.indexOf(\"*\");\n      const candidates = allowedEndings.map((ending) => ({\n        ending,\n        value: processEnding(relativeToBaseUrl, [ending], compilerOptions)\n      }));\n      if (tryGetExtensionFromPath2(pattern)) {\n        candidates.push({ ending: void 0, value: relativeToBaseUrl });\n      }\n      if (indexOfStar !== -1) {\n        const prefix = pattern.substring(0, indexOfStar);\n        const suffix = pattern.substring(indexOfStar + 1);\n        for (const { ending, value } of candidates) {\n          if (value.length >= prefix.length + suffix.length && startsWith(value, prefix) && endsWith(value, suffix) && validateEnding({ ending, value })) {\n            const matchedStar = value.substring(prefix.length, value.length - suffix.length);\n            if (!pathIsRelative(matchedStar)) {\n              return replaceFirstStar(key, matchedStar);\n            }\n          }\n        }\n      } else if (some(candidates, (c) => c.ending !== 0 /* Minimal */ && pattern === c.value) || some(candidates, (c) => c.ending === 0 /* Minimal */ && pattern === c.value && validateEnding(c))) {\n        return key;\n      }\n    }\n  }\n  function validateEnding({ ending, value }) {\n    return ending !== 0 /* Minimal */ || value === processEnding(relativeToBaseUrl, [ending], compilerOptions, host);\n  }\n}\nfunction tryGetModuleNameFromExportsOrImports(options, host, targetFilePath, packageDirectory, packageName, exports2, conditions, mode, isImports, preferTsExtension) {\n  if (typeof exports2 === \"string\") {\n    const ignoreCase = !hostUsesCaseSensitiveFileNames(host);\n    const getCommonSourceDirectory2 = () => host.getCommonSourceDirectory();\n    const outputFile = isImports && getOutputJSFileNameWorker(targetFilePath, options, ignoreCase, getCommonSourceDirectory2);\n    const declarationFile = isImports && getOutputDeclarationFileNameWorker(targetFilePath, options, ignoreCase, getCommonSourceDirectory2);\n    const pathOrPattern = getNormalizedAbsolutePath(\n      combinePaths(packageDirectory, exports2),\n      /*currentDirectory*/\n      void 0\n    );\n    const extensionSwappedTarget = hasTSFileExtension(targetFilePath) ? removeFileExtension(targetFilePath) + tryGetJSExtensionForFile(targetFilePath, options) : void 0;\n    const canTryTsExtension = preferTsExtension && hasImplementationTSFileExtension(targetFilePath);\n    switch (mode) {\n      case 0 /* Exact */:\n        if (extensionSwappedTarget && comparePaths(extensionSwappedTarget, pathOrPattern, ignoreCase) === 0 /* EqualTo */ || comparePaths(targetFilePath, pathOrPattern, ignoreCase) === 0 /* EqualTo */ || outputFile && comparePaths(outputFile, pathOrPattern, ignoreCase) === 0 /* EqualTo */ || declarationFile && comparePaths(declarationFile, pathOrPattern, ignoreCase) === 0 /* EqualTo */) {\n          return { moduleFileToTry: packageName };\n        }\n        break;\n      case 1 /* Directory */:\n        if (canTryTsExtension && containsPath(targetFilePath, pathOrPattern, ignoreCase)) {\n          const fragment = getRelativePathFromDirectory(\n            pathOrPattern,\n            targetFilePath,\n            /*ignoreCase*/\n            false\n          );\n          return { moduleFileToTry: getNormalizedAbsolutePath(\n            combinePaths(combinePaths(packageName, exports2), fragment),\n            /*currentDirectory*/\n            void 0\n          ) };\n        }\n        if (extensionSwappedTarget && containsPath(pathOrPattern, extensionSwappedTarget, ignoreCase)) {\n          const fragment = getRelativePathFromDirectory(\n            pathOrPattern,\n            extensionSwappedTarget,\n            /*ignoreCase*/\n            false\n          );\n          return { moduleFileToTry: getNormalizedAbsolutePath(\n            combinePaths(combinePaths(packageName, exports2), fragment),\n            /*currentDirectory*/\n            void 0\n          ) };\n        }\n        if (!canTryTsExtension && containsPath(pathOrPattern, targetFilePath, ignoreCase)) {\n          const fragment = getRelativePathFromDirectory(\n            pathOrPattern,\n            targetFilePath,\n            /*ignoreCase*/\n            false\n          );\n          return { moduleFileToTry: getNormalizedAbsolutePath(\n            combinePaths(combinePaths(packageName, exports2), fragment),\n            /*currentDirectory*/\n            void 0\n          ) };\n        }\n        if (outputFile && containsPath(pathOrPattern, outputFile, ignoreCase)) {\n          const fragment = getRelativePathFromDirectory(\n            pathOrPattern,\n            outputFile,\n            /*ignoreCase*/\n            false\n          );\n          return { moduleFileToTry: combinePaths(packageName, fragment) };\n        }\n        if (declarationFile && containsPath(pathOrPattern, declarationFile, ignoreCase)) {\n          const fragment = changeFullExtension(getRelativePathFromDirectory(\n            pathOrPattern,\n            declarationFile,\n            /*ignoreCase*/\n            false\n          ), getJSExtensionForFile(declarationFile, options));\n          return { moduleFileToTry: combinePaths(packageName, fragment) };\n        }\n        break;\n      case 2 /* Pattern */:\n        const starPos = pathOrPattern.indexOf(\"*\");\n        const leadingSlice = pathOrPattern.slice(0, starPos);\n        const trailingSlice = pathOrPattern.slice(starPos + 1);\n        if (canTryTsExtension && startsWith(targetFilePath, leadingSlice, ignoreCase) && endsWith(targetFilePath, trailingSlice, ignoreCase)) {\n          const starReplacement = targetFilePath.slice(leadingSlice.length, targetFilePath.length - trailingSlice.length);\n          return { moduleFileToTry: replaceFirstStar(packageName, starReplacement) };\n        }\n        if (extensionSwappedTarget && startsWith(extensionSwappedTarget, leadingSlice, ignoreCase) && endsWith(extensionSwappedTarget, trailingSlice, ignoreCase)) {\n          const starReplacement = extensionSwappedTarget.slice(leadingSlice.length, extensionSwappedTarget.length - trailingSlice.length);\n          return { moduleFileToTry: replaceFirstStar(packageName, starReplacement) };\n        }\n        if (!canTryTsExtension && startsWith(targetFilePath, leadingSlice, ignoreCase) && endsWith(targetFilePath, trailingSlice, ignoreCase)) {\n          const starReplacement = targetFilePath.slice(leadingSlice.length, targetFilePath.length - trailingSlice.length);\n          return { moduleFileToTry: replaceFirstStar(packageName, starReplacement) };\n        }\n        if (outputFile && startsWith(outputFile, leadingSlice, ignoreCase) && endsWith(outputFile, trailingSlice, ignoreCase)) {\n          const starReplacement = outputFile.slice(leadingSlice.length, outputFile.length - trailingSlice.length);\n          return { moduleFileToTry: replaceFirstStar(packageName, starReplacement) };\n        }\n        if (declarationFile && startsWith(declarationFile, leadingSlice, ignoreCase) && endsWith(declarationFile, trailingSlice, ignoreCase)) {\n          const starReplacement = declarationFile.slice(leadingSlice.length, declarationFile.length - trailingSlice.length);\n          const substituted = replaceFirstStar(packageName, starReplacement);\n          const jsExtension = tryGetJSExtensionForFile(declarationFile, options);\n          return jsExtension ? { moduleFileToTry: changeFullExtension(substituted, jsExtension) } : void 0;\n        }\n        break;\n    }\n  } else if (Array.isArray(exports2)) {\n    return forEach(exports2, (e) => tryGetModuleNameFromExportsOrImports(options, host, targetFilePath, packageDirectory, packageName, e, conditions, mode, isImports, preferTsExtension));\n  } else if (typeof exports2 === \"object\" && exports2 !== null) {\n    for (const key of getOwnKeys(exports2)) {\n      if (key === \"default\" || conditions.indexOf(key) >= 0 || isApplicableVersionedTypesKey(conditions, key)) {\n        const subTarget = exports2[key];\n        const result = tryGetModuleNameFromExportsOrImports(options, host, targetFilePath, packageDirectory, packageName, subTarget, conditions, mode, isImports, preferTsExtension);\n        if (result) {\n          return result;\n        }\n      }\n    }\n  }\n  return void 0;\n}\nfunction tryGetModuleNameFromExports(options, host, targetFilePath, packageDirectory, packageName, exports2, conditions) {\n  if (typeof exports2 === \"object\" && exports2 !== null && !Array.isArray(exports2) && allKeysStartWithDot(exports2)) {\n    return forEach(getOwnKeys(exports2), (k) => {\n      const subPackageName = getNormalizedAbsolutePath(\n        combinePaths(packageName, k),\n        /*currentDirectory*/\n        void 0\n      );\n      const mode = endsWith(k, \"/\") ? 1 /* Directory */ : k.includes(\"*\") ? 2 /* Pattern */ : 0 /* Exact */;\n      return tryGetModuleNameFromExportsOrImports(\n        options,\n        host,\n        targetFilePath,\n        packageDirectory,\n        subPackageName,\n        exports2[k],\n        conditions,\n        mode,\n        /*isImports*/\n        false,\n        /*preferTsExtension*/\n        false\n      );\n    });\n  }\n  return tryGetModuleNameFromExportsOrImports(\n    options,\n    host,\n    targetFilePath,\n    packageDirectory,\n    packageName,\n    exports2,\n    conditions,\n    0 /* Exact */,\n    /*isImports*/\n    false,\n    /*preferTsExtension*/\n    false\n  );\n}\nfunction tryGetModuleNameFromPackageJsonImports(moduleFileName, sourceDirectory, options, host, importMode, preferTsExtension) {\n  var _a, _b, _c;\n  if (!host.readFile || !getResolvePackageJsonImports(options)) {\n    return void 0;\n  }\n  const ancestorDirectoryWithPackageJson = getNearestAncestorDirectoryWithPackageJson(host, sourceDirectory);\n  if (!ancestorDirectoryWithPackageJson) {\n    return void 0;\n  }\n  const packageJsonPath = combinePaths(ancestorDirectoryWithPackageJson, \"package.json\");\n  const cachedPackageJson = (_b = (_a = host.getPackageJsonInfoCache) == null ? void 0 : _a.call(host)) == null ? void 0 : _b.getPackageJsonInfo(packageJsonPath);\n  if (isMissingPackageJsonInfo(cachedPackageJson) || !host.fileExists(packageJsonPath)) {\n    return void 0;\n  }\n  const packageJsonContent = (cachedPackageJson == null ? void 0 : cachedPackageJson.contents.packageJsonContent) || tryParseJson(host.readFile(packageJsonPath));\n  const imports = packageJsonContent == null ? void 0 : packageJsonContent.imports;\n  if (!imports) {\n    return void 0;\n  }\n  const conditions = getConditions(options, importMode);\n  return (_c = forEach(getOwnKeys(imports), (k) => {\n    if (!startsWith(k, \"#\") || k === \"#\" || startsWith(k, \"#/\")) return void 0;\n    const mode = endsWith(k, \"/\") ? 1 /* Directory */ : k.includes(\"*\") ? 2 /* Pattern */ : 0 /* Exact */;\n    return tryGetModuleNameFromExportsOrImports(\n      options,\n      host,\n      moduleFileName,\n      ancestorDirectoryWithPackageJson,\n      k,\n      imports[k],\n      conditions,\n      mode,\n      /*isImports*/\n      true,\n      preferTsExtension\n    );\n  })) == null ? void 0 : _c.moduleFileToTry;\n}\nfunction tryGetModuleNameFromRootDirs(rootDirs, moduleFileName, sourceDirectory, getCanonicalFileName, allowedEndings, compilerOptions) {\n  const normalizedTargetPaths = getPathsRelativeToRootDirs(moduleFileName, rootDirs, getCanonicalFileName);\n  if (normalizedTargetPaths === void 0) {\n    return void 0;\n  }\n  const normalizedSourcePaths = getPathsRelativeToRootDirs(sourceDirectory, rootDirs, getCanonicalFileName);\n  const relativePaths = flatMap(normalizedSourcePaths, (sourcePath) => {\n    return map(normalizedTargetPaths, (targetPath) => ensurePathIsNonModuleName(getRelativePathFromDirectory(sourcePath, targetPath, getCanonicalFileName)));\n  });\n  const shortest = min(relativePaths, compareNumberOfDirectorySeparators);\n  if (!shortest) {\n    return void 0;\n  }\n  return processEnding(shortest, allowedEndings, compilerOptions);\n}\nfunction tryGetModuleNameAsNodeModule({ path, isRedirect }, { getCanonicalFileName, canonicalSourceDirectory }, importingSourceFile, host, options, userPreferences, packageNameOnly, overrideMode) {\n  if (!host.fileExists || !host.readFile) {\n    return void 0;\n  }\n  const parts = getNodeModulePathParts(path);\n  if (!parts) {\n    return void 0;\n  }\n  const preferences = getModuleSpecifierPreferences(userPreferences, host, options, importingSourceFile);\n  const allowedEndings = preferences.getAllowedEndingsInPreferredOrder();\n  let moduleSpecifier = path;\n  let isPackageRootPath = false;\n  if (!packageNameOnly) {\n    let packageRootIndex = parts.packageRootIndex;\n    let moduleFileName;\n    while (true) {\n      const { moduleFileToTry, packageRootPath, blockedByExports, verbatimFromExports } = tryDirectoryWithPackageJson(packageRootIndex);\n      if (getEmitModuleResolutionKind(options) !== 1 /* Classic */) {\n        if (blockedByExports) {\n          return void 0;\n        }\n        if (verbatimFromExports) {\n          return moduleFileToTry;\n        }\n      }\n      if (packageRootPath) {\n        moduleSpecifier = packageRootPath;\n        isPackageRootPath = true;\n        break;\n      }\n      if (!moduleFileName) moduleFileName = moduleFileToTry;\n      packageRootIndex = path.indexOf(directorySeparator, packageRootIndex + 1);\n      if (packageRootIndex === -1) {\n        moduleSpecifier = processEnding(moduleFileName, allowedEndings, options, host);\n        break;\n      }\n    }\n  }\n  if (isRedirect && !isPackageRootPath) {\n    return void 0;\n  }\n  const globalTypingsCacheLocation = host.getGlobalTypingsCacheLocation && host.getGlobalTypingsCacheLocation();\n  const pathToTopLevelNodeModules = getCanonicalFileName(moduleSpecifier.substring(0, parts.topLevelNodeModulesIndex));\n  if (!(startsWith(canonicalSourceDirectory, pathToTopLevelNodeModules) || globalTypingsCacheLocation && startsWith(getCanonicalFileName(globalTypingsCacheLocation), pathToTopLevelNodeModules))) {\n    return void 0;\n  }\n  const nodeModulesDirectoryName = moduleSpecifier.substring(parts.topLevelPackageNameIndex + 1);\n  const packageName = getPackageNameFromTypesPackageName(nodeModulesDirectoryName);\n  return getEmitModuleResolutionKind(options) === 1 /* Classic */ && packageName === nodeModulesDirectoryName ? void 0 : packageName;\n  function tryDirectoryWithPackageJson(packageRootIndex) {\n    var _a, _b;\n    const packageRootPath = path.substring(0, packageRootIndex);\n    const packageJsonPath = combinePaths(packageRootPath, \"package.json\");\n    let moduleFileToTry = path;\n    let maybeBlockedByTypesVersions = false;\n    const cachedPackageJson = (_b = (_a = host.getPackageJsonInfoCache) == null ? void 0 : _a.call(host)) == null ? void 0 : _b.getPackageJsonInfo(packageJsonPath);\n    if (isPackageJsonInfo(cachedPackageJson) || cachedPackageJson === void 0 && host.fileExists(packageJsonPath)) {\n      const packageJsonContent = (cachedPackageJson == null ? void 0 : cachedPackageJson.contents.packageJsonContent) || tryParseJson(host.readFile(packageJsonPath));\n      const importMode = overrideMode || getDefaultResolutionModeForFile(importingSourceFile, host, options);\n      if (getResolvePackageJsonExports(options)) {\n        const nodeModulesDirectoryName2 = packageRootPath.substring(parts.topLevelPackageNameIndex + 1);\n        const packageName2 = getPackageNameFromTypesPackageName(nodeModulesDirectoryName2);\n        const conditions = getConditions(options, importMode);\n        const fromExports = (packageJsonContent == null ? void 0 : packageJsonContent.exports) ? tryGetModuleNameFromExports(\n          options,\n          host,\n          path,\n          packageRootPath,\n          packageName2,\n          packageJsonContent.exports,\n          conditions\n        ) : void 0;\n        if (fromExports) {\n          return { ...fromExports, verbatimFromExports: true };\n        }\n        if (packageJsonContent == null ? void 0 : packageJsonContent.exports) {\n          return { moduleFileToTry: path, blockedByExports: true };\n        }\n      }\n      const versionPaths = (packageJsonContent == null ? void 0 : packageJsonContent.typesVersions) ? getPackageJsonTypesVersionsPaths(packageJsonContent.typesVersions) : void 0;\n      if (versionPaths) {\n        const subModuleName = path.slice(packageRootPath.length + 1);\n        const fromPaths = tryGetModuleNameFromPaths(\n          subModuleName,\n          versionPaths.paths,\n          allowedEndings,\n          packageRootPath,\n          getCanonicalFileName,\n          host,\n          options\n        );\n        if (fromPaths === void 0) {\n          maybeBlockedByTypesVersions = true;\n        } else {\n          moduleFileToTry = combinePaths(packageRootPath, fromPaths);\n        }\n      }\n      const mainFileRelative = (packageJsonContent == null ? void 0 : packageJsonContent.typings) || (packageJsonContent == null ? void 0 : packageJsonContent.types) || (packageJsonContent == null ? void 0 : packageJsonContent.main) || \"index.js\";\n      if (isString(mainFileRelative) && !(maybeBlockedByTypesVersions && matchPatternOrExact(tryParsePatterns(versionPaths.paths), mainFileRelative))) {\n        const mainExportFile = toPath(mainFileRelative, packageRootPath, getCanonicalFileName);\n        const canonicalModuleFileToTry = getCanonicalFileName(moduleFileToTry);\n        if (removeFileExtension(mainExportFile) === removeFileExtension(canonicalModuleFileToTry)) {\n          return { packageRootPath, moduleFileToTry };\n        } else if ((packageJsonContent == null ? void 0 : packageJsonContent.type) !== \"module\" && !fileExtensionIsOneOf(canonicalModuleFileToTry, extensionsNotSupportingExtensionlessResolution) && startsWith(canonicalModuleFileToTry, mainExportFile) && getDirectoryPath(canonicalModuleFileToTry) === removeTrailingDirectorySeparator(mainExportFile) && removeFileExtension(getBaseFileName(canonicalModuleFileToTry)) === \"index\") {\n          return { packageRootPath, moduleFileToTry };\n        }\n      }\n    } else {\n      const fileName = getCanonicalFileName(moduleFileToTry.substring(parts.packageRootIndex + 1));\n      if (fileName === \"index.d.ts\" || fileName === \"index.js\" || fileName === \"index.ts\" || fileName === \"index.tsx\") {\n        return { moduleFileToTry, packageRootPath };\n      }\n    }\n    return { moduleFileToTry };\n  }\n}\nfunction tryGetAnyFileFromPath(host, path) {\n  if (!host.fileExists) return;\n  const extensions = flatten(getSupportedExtensions({ allowJs: true }, [{ extension: \"node\", isMixedContent: false }, { extension: \"json\", isMixedContent: false, scriptKind: 6 /* JSON */ }]));\n  for (const e of extensions) {\n    const fullPath = path + e;\n    if (host.fileExists(fullPath)) {\n      return fullPath;\n    }\n  }\n}\nfunction getPathsRelativeToRootDirs(path, rootDirs, getCanonicalFileName) {\n  return mapDefined(rootDirs, (rootDir) => {\n    const relativePath = getRelativePathIfInSameVolume(path, rootDir, getCanonicalFileName);\n    return relativePath !== void 0 && isPathRelativeToParent(relativePath) ? void 0 : relativePath;\n  });\n}\nfunction processEnding(fileName, allowedEndings, options, host) {\n  if (fileExtensionIsOneOf(fileName, [\".json\" /* Json */, \".mjs\" /* Mjs */, \".cjs\" /* Cjs */])) {\n    return fileName;\n  }\n  const noExtension = removeFileExtension(fileName);\n  if (fileName === noExtension) {\n    return fileName;\n  }\n  const jsPriority = allowedEndings.indexOf(2 /* JsExtension */);\n  const tsPriority = allowedEndings.indexOf(3 /* TsExtension */);\n  if (fileExtensionIsOneOf(fileName, [\".mts\" /* Mts */, \".cts\" /* Cts */]) && tsPriority !== -1 && tsPriority < jsPriority) {\n    return fileName;\n  } else if (fileExtensionIsOneOf(fileName, [\".d.mts\" /* Dmts */, \".mts\" /* Mts */, \".d.cts\" /* Dcts */, \".cts\" /* Cts */])) {\n    return noExtension + getJSExtensionForFile(fileName, options);\n  } else if (!fileExtensionIsOneOf(fileName, [\".d.ts\" /* Dts */]) && fileExtensionIsOneOf(fileName, [\".ts\" /* Ts */]) && fileName.includes(\".d.\")) {\n    return tryGetRealFileNameForNonJsDeclarationFileName(fileName);\n  }\n  switch (allowedEndings[0]) {\n    case 0 /* Minimal */:\n      const withoutIndex = removeSuffix(noExtension, \"/index\");\n      if (host && withoutIndex !== noExtension && tryGetAnyFileFromPath(host, withoutIndex)) {\n        return noExtension;\n      }\n      return withoutIndex;\n    case 1 /* Index */:\n      return noExtension;\n    case 2 /* JsExtension */:\n      return noExtension + getJSExtensionForFile(fileName, options);\n    case 3 /* TsExtension */:\n      if (isDeclarationFileName(fileName)) {\n        const extensionlessPriority = allowedEndings.findIndex((e) => e === 0 /* Minimal */ || e === 1 /* Index */);\n        return extensionlessPriority !== -1 && extensionlessPriority < jsPriority ? noExtension : noExtension + getJSExtensionForFile(fileName, options);\n      }\n      return fileName;\n    default:\n      return Debug.assertNever(allowedEndings[0]);\n  }\n}\nfunction tryGetRealFileNameForNonJsDeclarationFileName(fileName) {\n  const baseName = getBaseFileName(fileName);\n  if (!endsWith(fileName, \".ts\" /* Ts */) || !baseName.includes(\".d.\") || fileExtensionIsOneOf(baseName, [\".d.ts\" /* Dts */])) return void 0;\n  const noExtension = removeExtension(fileName, \".ts\" /* Ts */);\n  const ext = noExtension.substring(noExtension.lastIndexOf(\".\"));\n  return noExtension.substring(0, noExtension.indexOf(\".d.\")) + ext;\n}\nfunction getJSExtensionForFile(fileName, options) {\n  return tryGetJSExtensionForFile(fileName, options) ?? Debug.fail(`Extension ${extensionFromPath(fileName)} is unsupported:: FileName:: ${fileName}`);\n}\nfunction tryGetJSExtensionForFile(fileName, options) {\n  const ext = tryGetExtensionFromPath2(fileName);\n  switch (ext) {\n    case \".ts\" /* Ts */:\n    case \".d.ts\" /* Dts */:\n      return \".js\" /* Js */;\n    case \".tsx\" /* Tsx */:\n      return options.jsx === 1 /* Preserve */ ? \".jsx\" /* Jsx */ : \".js\" /* Js */;\n    case \".js\" /* Js */:\n    case \".jsx\" /* Jsx */:\n    case \".json\" /* Json */:\n      return ext;\n    case \".d.mts\" /* Dmts */:\n    case \".mts\" /* Mts */:\n    case \".mjs\" /* Mjs */:\n      return \".mjs\" /* Mjs */;\n    case \".d.cts\" /* Dcts */:\n    case \".cts\" /* Cts */:\n    case \".cjs\" /* Cjs */:\n      return \".cjs\" /* Cjs */;\n    default:\n      return void 0;\n  }\n}\nfunction getRelativePathIfInSameVolume(path, directoryPath, getCanonicalFileName) {\n  const relativePath = getRelativePathToDirectoryOrUrl(\n    directoryPath,\n    path,\n    directoryPath,\n    getCanonicalFileName,\n    /*isAbsolutePathAnUrl*/\n    false\n  );\n  return isRootedDiskPath(relativePath) ? void 0 : relativePath;\n}\nfunction isPathRelativeToParent(path) {\n  return startsWith(path, \"..\");\n}\nfunction getDefaultResolutionModeForFile(file, host, compilerOptions) {\n  return isFullSourceFile(file) ? host.getDefaultResolutionModeForFile(file) : getDefaultResolutionModeForFileWorker(file, compilerOptions);\n}\nfunction prefersTsExtension(allowedEndings) {\n  const tsPriority = allowedEndings.indexOf(3 /* TsExtension */);\n  return tsPriority > -1 && tsPriority < allowedEndings.indexOf(2 /* JsExtension */);\n}\n\n// src/compiler/checker.ts\nvar ambientModuleSymbolRegex = /^\".+\"$/;\nvar anon = \"(anonymous)\";\nvar nextSymbolId = 1;\nvar nextNodeId = 1;\nvar nextMergeId = 1;\nvar nextFlowId = 1;\nvar TypeFacts = /* @__PURE__ */ ((TypeFacts3) => {\n  TypeFacts3[TypeFacts3[\"None\"] = 0] = \"None\";\n  TypeFacts3[TypeFacts3[\"TypeofEQString\"] = 1] = \"TypeofEQString\";\n  TypeFacts3[TypeFacts3[\"TypeofEQNumber\"] = 2] = \"TypeofEQNumber\";\n  TypeFacts3[TypeFacts3[\"TypeofEQBigInt\"] = 4] = \"TypeofEQBigInt\";\n  TypeFacts3[TypeFacts3[\"TypeofEQBoolean\"] = 8] = \"TypeofEQBoolean\";\n  TypeFacts3[TypeFacts3[\"TypeofEQSymbol\"] = 16] = \"TypeofEQSymbol\";\n  TypeFacts3[TypeFacts3[\"TypeofEQObject\"] = 32] = \"TypeofEQObject\";\n  TypeFacts3[TypeFacts3[\"TypeofEQFunction\"] = 64] = \"TypeofEQFunction\";\n  TypeFacts3[TypeFacts3[\"TypeofEQHostObject\"] = 128] = \"TypeofEQHostObject\";\n  TypeFacts3[TypeFacts3[\"TypeofNEString\"] = 256] = \"TypeofNEString\";\n  TypeFacts3[TypeFacts3[\"TypeofNENumber\"] = 512] = \"TypeofNENumber\";\n  TypeFacts3[TypeFacts3[\"TypeofNEBigInt\"] = 1024] = \"TypeofNEBigInt\";\n  TypeFacts3[TypeFacts3[\"TypeofNEBoolean\"] = 2048] = \"TypeofNEBoolean\";\n  TypeFacts3[TypeFacts3[\"TypeofNESymbol\"] = 4096] = \"TypeofNESymbol\";\n  TypeFacts3[TypeFacts3[\"TypeofNEObject\"] = 8192] = \"TypeofNEObject\";\n  TypeFacts3[TypeFacts3[\"TypeofNEFunction\"] = 16384] = \"TypeofNEFunction\";\n  TypeFacts3[TypeFacts3[\"TypeofNEHostObject\"] = 32768] = \"TypeofNEHostObject\";\n  TypeFacts3[TypeFacts3[\"EQUndefined\"] = 65536] = \"EQUndefined\";\n  TypeFacts3[TypeFacts3[\"EQNull\"] = 131072] = \"EQNull\";\n  TypeFacts3[TypeFacts3[\"EQUndefinedOrNull\"] = 262144] = \"EQUndefinedOrNull\";\n  TypeFacts3[TypeFacts3[\"NEUndefined\"] = 524288] = \"NEUndefined\";\n  TypeFacts3[TypeFacts3[\"NENull\"] = 1048576] = \"NENull\";\n  TypeFacts3[TypeFacts3[\"NEUndefinedOrNull\"] = 2097152] = \"NEUndefinedOrNull\";\n  TypeFacts3[TypeFacts3[\"Truthy\"] = 4194304] = \"Truthy\";\n  TypeFacts3[TypeFacts3[\"Falsy\"] = 8388608] = \"Falsy\";\n  TypeFacts3[TypeFacts3[\"IsUndefined\"] = 16777216] = \"IsUndefined\";\n  TypeFacts3[TypeFacts3[\"IsNull\"] = 33554432] = \"IsNull\";\n  TypeFacts3[TypeFacts3[\"IsUndefinedOrNull\"] = 50331648] = \"IsUndefinedOrNull\";\n  TypeFacts3[TypeFacts3[\"All\"] = 134217727] = \"All\";\n  TypeFacts3[TypeFacts3[\"BaseStringStrictFacts\"] = 3735041] = \"BaseStringStrictFacts\";\n  TypeFacts3[TypeFacts3[\"BaseStringFacts\"] = 12582401] = \"BaseStringFacts\";\n  TypeFacts3[TypeFacts3[\"StringStrictFacts\"] = 16317953] = \"StringStrictFacts\";\n  TypeFacts3[TypeFacts3[\"StringFacts\"] = 16776705] = \"StringFacts\";\n  TypeFacts3[TypeFacts3[\"EmptyStringStrictFacts\"] = 12123649] = \"EmptyStringStrictFacts\";\n  TypeFacts3[TypeFacts3[\"EmptyStringFacts\"] = 12582401 /* BaseStringFacts */] = \"EmptyStringFacts\";\n  TypeFacts3[TypeFacts3[\"NonEmptyStringStrictFacts\"] = 7929345] = \"NonEmptyStringStrictFacts\";\n  TypeFacts3[TypeFacts3[\"NonEmptyStringFacts\"] = 16776705] = \"NonEmptyStringFacts\";\n  TypeFacts3[TypeFacts3[\"BaseNumberStrictFacts\"] = 3734786] = \"BaseNumberStrictFacts\";\n  TypeFacts3[TypeFacts3[\"BaseNumberFacts\"] = 12582146] = \"BaseNumberFacts\";\n  TypeFacts3[TypeFacts3[\"NumberStrictFacts\"] = 16317698] = \"NumberStrictFacts\";\n  TypeFacts3[TypeFacts3[\"NumberFacts\"] = 16776450] = \"NumberFacts\";\n  TypeFacts3[TypeFacts3[\"ZeroNumberStrictFacts\"] = 12123394] = \"ZeroNumberStrictFacts\";\n  TypeFacts3[TypeFacts3[\"ZeroNumberFacts\"] = 12582146 /* BaseNumberFacts */] = \"ZeroNumberFacts\";\n  TypeFacts3[TypeFacts3[\"NonZeroNumberStrictFacts\"] = 7929090] = \"NonZeroNumberStrictFacts\";\n  TypeFacts3[TypeFacts3[\"NonZeroNumberFacts\"] = 16776450] = \"NonZeroNumberFacts\";\n  TypeFacts3[TypeFacts3[\"BaseBigIntStrictFacts\"] = 3734276] = \"BaseBigIntStrictFacts\";\n  TypeFacts3[TypeFacts3[\"BaseBigIntFacts\"] = 12581636] = \"BaseBigIntFacts\";\n  TypeFacts3[TypeFacts3[\"BigIntStrictFacts\"] = 16317188] = \"BigIntStrictFacts\";\n  TypeFacts3[TypeFacts3[\"BigIntFacts\"] = 16775940] = \"BigIntFacts\";\n  TypeFacts3[TypeFacts3[\"ZeroBigIntStrictFacts\"] = 12122884] = \"ZeroBigIntStrictFacts\";\n  TypeFacts3[TypeFacts3[\"ZeroBigIntFacts\"] = 12581636 /* BaseBigIntFacts */] = \"ZeroBigIntFacts\";\n  TypeFacts3[TypeFacts3[\"NonZeroBigIntStrictFacts\"] = 7928580] = \"NonZeroBigIntStrictFacts\";\n  TypeFacts3[TypeFacts3[\"NonZeroBigIntFacts\"] = 16775940] = \"NonZeroBigIntFacts\";\n  TypeFacts3[TypeFacts3[\"BaseBooleanStrictFacts\"] = 3733256] = \"BaseBooleanStrictFacts\";\n  TypeFacts3[TypeFacts3[\"BaseBooleanFacts\"] = 12580616] = \"BaseBooleanFacts\";\n  TypeFacts3[TypeFacts3[\"BooleanStrictFacts\"] = 16316168] = \"BooleanStrictFacts\";\n  TypeFacts3[TypeFacts3[\"BooleanFacts\"] = 16774920] = \"BooleanFacts\";\n  TypeFacts3[TypeFacts3[\"FalseStrictFacts\"] = 12121864] = \"FalseStrictFacts\";\n  TypeFacts3[TypeFacts3[\"FalseFacts\"] = 12580616 /* BaseBooleanFacts */] = \"FalseFacts\";\n  TypeFacts3[TypeFacts3[\"TrueStrictFacts\"] = 7927560] = \"TrueStrictFacts\";\n  TypeFacts3[TypeFacts3[\"TrueFacts\"] = 16774920] = \"TrueFacts\";\n  TypeFacts3[TypeFacts3[\"SymbolStrictFacts\"] = 7925520] = \"SymbolStrictFacts\";\n  TypeFacts3[TypeFacts3[\"SymbolFacts\"] = 16772880] = \"SymbolFacts\";\n  TypeFacts3[TypeFacts3[\"ObjectStrictFacts\"] = 7888800] = \"ObjectStrictFacts\";\n  TypeFacts3[TypeFacts3[\"ObjectFacts\"] = 16736160] = \"ObjectFacts\";\n  TypeFacts3[TypeFacts3[\"FunctionStrictFacts\"] = 7880640] = \"FunctionStrictFacts\";\n  TypeFacts3[TypeFacts3[\"FunctionFacts\"] = 16728e3] = \"FunctionFacts\";\n  TypeFacts3[TypeFacts3[\"VoidFacts\"] = 9830144] = \"VoidFacts\";\n  TypeFacts3[TypeFacts3[\"UndefinedFacts\"] = 26607360] = \"UndefinedFacts\";\n  TypeFacts3[TypeFacts3[\"NullFacts\"] = 42917664] = \"NullFacts\";\n  TypeFacts3[TypeFacts3[\"EmptyObjectStrictFacts\"] = 83427327] = \"EmptyObjectStrictFacts\";\n  TypeFacts3[TypeFacts3[\"EmptyObjectFacts\"] = 83886079] = \"EmptyObjectFacts\";\n  TypeFacts3[TypeFacts3[\"UnknownFacts\"] = 83886079] = \"UnknownFacts\";\n  TypeFacts3[TypeFacts3[\"AllTypeofNE\"] = 556800] = \"AllTypeofNE\";\n  TypeFacts3[TypeFacts3[\"OrFactsMask\"] = 8256] = \"OrFactsMask\";\n  TypeFacts3[TypeFacts3[\"AndFactsMask\"] = 134209471] = \"AndFactsMask\";\n  return TypeFacts3;\n})(TypeFacts || {});\nvar typeofNEFacts = new Map(Object.entries({\n  string: 256 /* TypeofNEString */,\n  number: 512 /* TypeofNENumber */,\n  bigint: 1024 /* TypeofNEBigInt */,\n  boolean: 2048 /* TypeofNEBoolean */,\n  symbol: 4096 /* TypeofNESymbol */,\n  undefined: 524288 /* NEUndefined */,\n  object: 8192 /* TypeofNEObject */,\n  function: 16384 /* TypeofNEFunction */\n}));\nvar CheckMode = /* @__PURE__ */ ((CheckMode3) => {\n  CheckMode3[CheckMode3[\"Normal\"] = 0] = \"Normal\";\n  CheckMode3[CheckMode3[\"Contextual\"] = 1] = \"Contextual\";\n  CheckMode3[CheckMode3[\"Inferential\"] = 2] = \"Inferential\";\n  CheckMode3[CheckMode3[\"SkipContextSensitive\"] = 4] = \"SkipContextSensitive\";\n  CheckMode3[CheckMode3[\"SkipGenericFunctions\"] = 8] = \"SkipGenericFunctions\";\n  CheckMode3[CheckMode3[\"IsForSignatureHelp\"] = 16] = \"IsForSignatureHelp\";\n  CheckMode3[CheckMode3[\"RestBindingElement\"] = 32] = \"RestBindingElement\";\n  CheckMode3[CheckMode3[\"TypeOnly\"] = 64] = \"TypeOnly\";\n  return CheckMode3;\n})(CheckMode || {});\nvar SignatureCheckMode = /* @__PURE__ */ ((SignatureCheckMode3) => {\n  SignatureCheckMode3[SignatureCheckMode3[\"None\"] = 0] = \"None\";\n  SignatureCheckMode3[SignatureCheckMode3[\"BivariantCallback\"] = 1] = \"BivariantCallback\";\n  SignatureCheckMode3[SignatureCheckMode3[\"StrictCallback\"] = 2] = \"StrictCallback\";\n  SignatureCheckMode3[SignatureCheckMode3[\"IgnoreReturnTypes\"] = 4] = \"IgnoreReturnTypes\";\n  SignatureCheckMode3[SignatureCheckMode3[\"StrictArity\"] = 8] = \"StrictArity\";\n  SignatureCheckMode3[SignatureCheckMode3[\"StrictTopSignature\"] = 16] = \"StrictTopSignature\";\n  SignatureCheckMode3[SignatureCheckMode3[\"Callback\"] = 3] = \"Callback\";\n  return SignatureCheckMode3;\n})(SignatureCheckMode || {});\nvar isNotOverloadAndNotAccessor = and(isNotOverload, isNotAccessor);\nvar intrinsicTypeKinds = new Map(Object.entries({\n  Uppercase: 0 /* Uppercase */,\n  Lowercase: 1 /* Lowercase */,\n  Capitalize: 2 /* Capitalize */,\n  Uncapitalize: 3 /* Uncapitalize */,\n  NoInfer: 4 /* NoInfer */\n}));\nvar SymbolLinks = class {\n};\nfunction NodeLinks() {\n  this.flags = 0 /* None */;\n}\nfunction getNodeId(node) {\n  if (!node.id) {\n    node.id = nextNodeId;\n    nextNodeId++;\n  }\n  return node.id;\n}\nfunction getSymbolId(symbol) {\n  if (!symbol.id) {\n    symbol.id = nextSymbolId;\n    nextSymbolId++;\n  }\n  return symbol.id;\n}\nfunction isInstantiatedModule(node, preserveConstEnums) {\n  const moduleState = getModuleInstanceState(node);\n  return moduleState === 1 /* Instantiated */ || preserveConstEnums && moduleState === 2 /* ConstEnumOnly */;\n}\nfunction createTypeChecker(host) {\n  var deferredDiagnosticsCallbacks = [];\n  var addLazyDiagnostic = (arg) => {\n    deferredDiagnosticsCallbacks.push(arg);\n  };\n  var cancellationToken;\n  var scanner2;\n  var Symbol48 = objectAllocator.getSymbolConstructor();\n  var Type29 = objectAllocator.getTypeConstructor();\n  var Signature13 = objectAllocator.getSignatureConstructor();\n  var typeCount = 0;\n  var symbolCount = 0;\n  var totalInstantiationCount = 0;\n  var instantiationCount = 0;\n  var instantiationDepth = 0;\n  var inlineLevel = 0;\n  var currentNode;\n  var varianceTypeParameter;\n  var isInferencePartiallyBlocked = false;\n  var emptySymbols = createSymbolTable();\n  var arrayVariances = [1 /* Covariant */];\n  var compilerOptions = host.getCompilerOptions();\n  var languageVersion = getEmitScriptTarget(compilerOptions);\n  var moduleKind = getEmitModuleKind(compilerOptions);\n  var legacyDecorators = !!compilerOptions.experimentalDecorators;\n  var useDefineForClassFields = getUseDefineForClassFields(compilerOptions);\n  var emitStandardClassFields = getEmitStandardClassFields(compilerOptions);\n  var allowSyntheticDefaultImports = getAllowSyntheticDefaultImports(compilerOptions);\n  var strictNullChecks = getStrictOptionValue(compilerOptions, \"strictNullChecks\");\n  var strictFunctionTypes = getStrictOptionValue(compilerOptions, \"strictFunctionTypes\");\n  var strictBindCallApply = getStrictOptionValue(compilerOptions, \"strictBindCallApply\");\n  var strictPropertyInitialization = getStrictOptionValue(compilerOptions, \"strictPropertyInitialization\");\n  var strictBuiltinIteratorReturn = getStrictOptionValue(compilerOptions, \"strictBuiltinIteratorReturn\");\n  var noImplicitAny = getStrictOptionValue(compilerOptions, \"noImplicitAny\");\n  var noImplicitThis = getStrictOptionValue(compilerOptions, \"noImplicitThis\");\n  var useUnknownInCatchVariables = getStrictOptionValue(compilerOptions, \"useUnknownInCatchVariables\");\n  var exactOptionalPropertyTypes = compilerOptions.exactOptionalPropertyTypes;\n  var noUncheckedSideEffectImports = !!compilerOptions.noUncheckedSideEffectImports;\n  var checkBinaryExpression = createCheckBinaryExpression();\n  var emitResolver = createResolver();\n  var nodeBuilder = createNodeBuilder();\n  var syntacticNodeBuilder = createSyntacticTypeNodeBuilder(compilerOptions, nodeBuilder.syntacticBuilderResolver);\n  var evaluate = createEvaluator({\n    evaluateElementAccessExpression,\n    evaluateEntityNameExpression\n  });\n  var globals = createSymbolTable();\n  var undefinedSymbol = createSymbol(4 /* Property */, \"undefined\");\n  undefinedSymbol.declarations = [];\n  var globalThisSymbol = createSymbol(1536 /* Module */, \"globalThis\", 8 /* Readonly */);\n  globalThisSymbol.exports = globals;\n  globalThisSymbol.declarations = [];\n  globals.set(globalThisSymbol.escapedName, globalThisSymbol);\n  var argumentsSymbol = createSymbol(4 /* Property */, \"arguments\");\n  var requireSymbol = createSymbol(4 /* Property */, \"require\");\n  var isolatedModulesLikeFlagName = compilerOptions.verbatimModuleSyntax ? \"verbatimModuleSyntax\" : \"isolatedModules\";\n  var canCollectSymbolAliasAccessabilityData = !compilerOptions.verbatimModuleSyntax;\n  var apparentArgumentCount;\n  var lastGetCombinedNodeFlagsNode;\n  var lastGetCombinedNodeFlagsResult = 0 /* None */;\n  var lastGetCombinedModifierFlagsNode;\n  var lastGetCombinedModifierFlagsResult = 0 /* None */;\n  var resolveName = createNameResolver({\n    compilerOptions,\n    requireSymbol,\n    argumentsSymbol,\n    globals,\n    getSymbolOfDeclaration,\n    error: error2,\n    getRequiresScopeChangeCache,\n    setRequiresScopeChangeCache,\n    lookup: getSymbol2,\n    onPropertyWithInvalidInitializer: checkAndReportErrorForInvalidInitializer,\n    onFailedToResolveSymbol,\n    onSuccessfullyResolvedSymbol\n  });\n  var resolveNameForSymbolSuggestion = createNameResolver({\n    compilerOptions,\n    requireSymbol,\n    argumentsSymbol,\n    globals,\n    getSymbolOfDeclaration,\n    error: error2,\n    getRequiresScopeChangeCache,\n    setRequiresScopeChangeCache,\n    lookup: getSuggestionForSymbolNameLookup\n  });\n  const checker = {\n    getNodeCount: () => reduceLeft(host.getSourceFiles(), (n, s) => n + s.nodeCount, 0),\n    getIdentifierCount: () => reduceLeft(host.getSourceFiles(), (n, s) => n + s.identifierCount, 0),\n    getSymbolCount: () => reduceLeft(host.getSourceFiles(), (n, s) => n + s.symbolCount, symbolCount),\n    getTypeCount: () => typeCount,\n    getInstantiationCount: () => totalInstantiationCount,\n    getRelationCacheSizes: () => ({\n      assignable: assignableRelation.size,\n      identity: identityRelation.size,\n      subtype: subtypeRelation.size,\n      strictSubtype: strictSubtypeRelation.size\n    }),\n    isUndefinedSymbol: (symbol) => symbol === undefinedSymbol,\n    isArgumentsSymbol: (symbol) => symbol === argumentsSymbol,\n    isUnknownSymbol: (symbol) => symbol === unknownSymbol,\n    getMergedSymbol,\n    symbolIsValue,\n    getDiagnostics: getDiagnostics2,\n    getGlobalDiagnostics,\n    getRecursionIdentity,\n    getUnmatchedProperties,\n    getTypeOfSymbolAtLocation: (symbol, locationIn) => {\n      const location = getParseTreeNode(locationIn);\n      return location ? getTypeOfSymbolAtLocation(symbol, location) : errorType;\n    },\n    getTypeOfSymbol,\n    getSymbolsOfParameterPropertyDeclaration: (parameterIn, parameterName) => {\n      const parameter = getParseTreeNode(parameterIn, isParameter);\n      if (parameter === void 0) return Debug.fail(\"Cannot get symbols of a synthetic parameter that cannot be resolved to a parse-tree node.\");\n      Debug.assert(isParameterPropertyDeclaration(parameter, parameter.parent));\n      return getSymbolsOfParameterPropertyDeclaration(parameter, escapeLeadingUnderscores(parameterName));\n    },\n    getDeclaredTypeOfSymbol,\n    getPropertiesOfType,\n    getPropertyOfType: (type, name) => getPropertyOfType(type, escapeLeadingUnderscores(name)),\n    getPrivateIdentifierPropertyOfType: (leftType, name, location) => {\n      const node = getParseTreeNode(location);\n      if (!node) {\n        return void 0;\n      }\n      const propName = escapeLeadingUnderscores(name);\n      const lexicallyScopedIdentifier = lookupSymbolForPrivateIdentifierDeclaration(propName, node);\n      return lexicallyScopedIdentifier ? getPrivateIdentifierPropertyOfType(leftType, lexicallyScopedIdentifier) : void 0;\n    },\n    getTypeOfPropertyOfType: (type, name) => getTypeOfPropertyOfType(type, escapeLeadingUnderscores(name)),\n    getIndexInfoOfType: (type, kind) => getIndexInfoOfType(type, kind === 0 /* String */ ? stringType : numberType),\n    getIndexInfosOfType,\n    getIndexInfosOfIndexSymbol,\n    getSignaturesOfType,\n    getIndexTypeOfType: (type, kind) => getIndexTypeOfType(type, kind === 0 /* String */ ? stringType : numberType),\n    getIndexType: (type) => getIndexType(type),\n    getBaseTypes,\n    getBaseTypeOfLiteralType,\n    getWidenedType,\n    getWidenedLiteralType,\n    fillMissingTypeArguments,\n    getTypeFromTypeNode: (nodeIn) => {\n      const node = getParseTreeNode(nodeIn, isTypeNode);\n      return node ? getTypeFromTypeNode(node) : errorType;\n    },\n    getParameterType: getTypeAtPosition,\n    getParameterIdentifierInfoAtPosition,\n    getPromisedTypeOfPromise,\n    getAwaitedType: (type) => getAwaitedType(type),\n    getReturnTypeOfSignature,\n    isNullableType,\n    getNullableType,\n    getNonNullableType,\n    getNonOptionalType: removeOptionalTypeMarker,\n    getTypeArguments,\n    typeToTypeNode: nodeBuilder.typeToTypeNode,\n    typePredicateToTypePredicateNode: nodeBuilder.typePredicateToTypePredicateNode,\n    indexInfoToIndexSignatureDeclaration: nodeBuilder.indexInfoToIndexSignatureDeclaration,\n    signatureToSignatureDeclaration: nodeBuilder.signatureToSignatureDeclaration,\n    symbolToEntityName: nodeBuilder.symbolToEntityName,\n    symbolToExpression: nodeBuilder.symbolToExpression,\n    symbolToNode: nodeBuilder.symbolToNode,\n    symbolToTypeParameterDeclarations: nodeBuilder.symbolToTypeParameterDeclarations,\n    symbolToParameterDeclaration: nodeBuilder.symbolToParameterDeclaration,\n    typeParameterToDeclaration: nodeBuilder.typeParameterToDeclaration,\n    getSymbolsInScope: (locationIn, meaning) => {\n      const location = getParseTreeNode(locationIn);\n      return location ? getSymbolsInScope(location, meaning) : [];\n    },\n    getSymbolAtLocation: (nodeIn) => {\n      const node = getParseTreeNode(nodeIn);\n      return node ? getSymbolAtLocation(\n        node,\n        /*ignoreErrors*/\n        true\n      ) : void 0;\n    },\n    getIndexInfosAtLocation: (nodeIn) => {\n      const node = getParseTreeNode(nodeIn);\n      return node ? getIndexInfosAtLocation(node) : void 0;\n    },\n    getShorthandAssignmentValueSymbol: (nodeIn) => {\n      const node = getParseTreeNode(nodeIn);\n      return node ? getShorthandAssignmentValueSymbol(node) : void 0;\n    },\n    getExportSpecifierLocalTargetSymbol: (nodeIn) => {\n      const node = getParseTreeNode(nodeIn, isExportSpecifier);\n      return node ? getExportSpecifierLocalTargetSymbol(node) : void 0;\n    },\n    getExportSymbolOfSymbol(symbol) {\n      return getMergedSymbol(symbol.exportSymbol || symbol);\n    },\n    getTypeAtLocation: (nodeIn) => {\n      const node = getParseTreeNode(nodeIn);\n      return node ? getTypeOfNode(node) : errorType;\n    },\n    getTypeOfAssignmentPattern: (nodeIn) => {\n      const node = getParseTreeNode(nodeIn, isAssignmentPattern);\n      return node && getTypeOfAssignmentPattern(node) || errorType;\n    },\n    getPropertySymbolOfDestructuringAssignment: (locationIn) => {\n      const location = getParseTreeNode(locationIn, isIdentifier);\n      return location ? getPropertySymbolOfDestructuringAssignment(location) : void 0;\n    },\n    signatureToString: (signature, enclosingDeclaration, flags, kind) => {\n      return signatureToString(signature, getParseTreeNode(enclosingDeclaration), flags, kind);\n    },\n    typeToString: (type, enclosingDeclaration, flags) => {\n      return typeToString(type, getParseTreeNode(enclosingDeclaration), flags);\n    },\n    symbolToString: (symbol, enclosingDeclaration, meaning, flags) => {\n      return symbolToString(symbol, getParseTreeNode(enclosingDeclaration), meaning, flags);\n    },\n    typePredicateToString: (predicate, enclosingDeclaration, flags) => {\n      return typePredicateToString(predicate, getParseTreeNode(enclosingDeclaration), flags);\n    },\n    writeSignature: (signature, enclosingDeclaration, flags, kind, writer, maximumLength, verbosityLevel, out) => {\n      return signatureToString(signature, getParseTreeNode(enclosingDeclaration), flags, kind, writer, maximumLength, verbosityLevel, out);\n    },\n    writeType: (type, enclosingDeclaration, flags, writer, maximumLength, verbosityLevel, out) => {\n      return typeToString(type, getParseTreeNode(enclosingDeclaration), flags, writer, maximumLength, verbosityLevel, out);\n    },\n    writeSymbol: (symbol, enclosingDeclaration, meaning, flags, writer) => {\n      return symbolToString(symbol, getParseTreeNode(enclosingDeclaration), meaning, flags, writer);\n    },\n    writeTypePredicate: (predicate, enclosingDeclaration, flags, writer) => {\n      return typePredicateToString(predicate, getParseTreeNode(enclosingDeclaration), flags, writer);\n    },\n    getAugmentedPropertiesOfType,\n    getRootSymbols,\n    getSymbolOfExpando,\n    getContextualType: (nodeIn, contextFlags) => {\n      const node = getParseTreeNode(nodeIn, isExpression);\n      if (!node) {\n        return void 0;\n      }\n      if (contextFlags & 4 /* Completions */) {\n        return runWithInferenceBlockedFromSourceNode(node, () => getContextualType2(node, contextFlags));\n      }\n      return getContextualType2(node, contextFlags);\n    },\n    getContextualTypeForObjectLiteralElement: (nodeIn) => {\n      const node = getParseTreeNode(nodeIn, isObjectLiteralElementLike);\n      return node ? getContextualTypeForObjectLiteralElement(\n        node,\n        /*contextFlags*/\n        void 0\n      ) : void 0;\n    },\n    getContextualTypeForArgumentAtIndex: (nodeIn, argIndex) => {\n      const node = getParseTreeNode(nodeIn, isCallLikeExpression);\n      return node && getContextualTypeForArgumentAtIndex(node, argIndex);\n    },\n    getContextualTypeForJsxAttribute: (nodeIn) => {\n      const node = getParseTreeNode(nodeIn, isJsxAttributeLike);\n      return node && getContextualTypeForJsxAttribute(\n        node,\n        /*contextFlags*/\n        void 0\n      );\n    },\n    isContextSensitive,\n    getTypeOfPropertyOfContextualType,\n    getFullyQualifiedName,\n    getResolvedSignature: (node, candidatesOutArray, argumentCount) => getResolvedSignatureWorker(node, candidatesOutArray, argumentCount, 0 /* Normal */),\n    getCandidateSignaturesForStringLiteralCompletions,\n    getResolvedSignatureForSignatureHelp: (node, candidatesOutArray, argumentCount) => runWithoutResolvedSignatureCaching(node, () => getResolvedSignatureWorker(node, candidatesOutArray, argumentCount, 16 /* IsForSignatureHelp */)),\n    getExpandedParameters,\n    hasEffectiveRestParameter,\n    containsArgumentsReference,\n    getConstantValue: (nodeIn) => {\n      const node = getParseTreeNode(nodeIn, canHaveConstantValue);\n      return node ? getConstantValue2(node) : void 0;\n    },\n    isValidPropertyAccess: (nodeIn, propertyName) => {\n      const node = getParseTreeNode(nodeIn, isPropertyAccessOrQualifiedNameOrImportTypeNode);\n      return !!node && isValidPropertyAccess(node, escapeLeadingUnderscores(propertyName));\n    },\n    isValidPropertyAccessForCompletions: (nodeIn, type, property) => {\n      const node = getParseTreeNode(nodeIn, isPropertyAccessExpression);\n      return !!node && isValidPropertyAccessForCompletions(node, type, property);\n    },\n    getSignatureFromDeclaration: (declarationIn) => {\n      const declaration = getParseTreeNode(declarationIn, isFunctionLike);\n      return declaration ? getSignatureFromDeclaration(declaration) : void 0;\n    },\n    isImplementationOfOverload: (nodeIn) => {\n      const node = getParseTreeNode(nodeIn, isFunctionLike);\n      return node ? isImplementationOfOverload(node) : void 0;\n    },\n    getImmediateAliasedSymbol,\n    getAliasedSymbol: resolveAlias,\n    getEmitResolver,\n    requiresAddingImplicitUndefined,\n    getExportsOfModule: getExportsOfModuleAsArray,\n    getExportsAndPropertiesOfModule,\n    forEachExportAndPropertyOfModule,\n    getSymbolWalker: createGetSymbolWalker(\n      getRestTypeOfSignature,\n      getTypePredicateOfSignature,\n      getReturnTypeOfSignature,\n      getBaseTypes,\n      resolveStructuredTypeMembers,\n      getTypeOfSymbol,\n      getResolvedSymbol,\n      getConstraintOfTypeParameter,\n      getFirstIdentifier,\n      getTypeArguments\n    ),\n    getAmbientModules,\n    getJsxIntrinsicTagNamesAt,\n    isOptionalParameter: (nodeIn) => {\n      const node = getParseTreeNode(nodeIn, isParameter);\n      return node ? isOptionalParameter(node) : false;\n    },\n    tryGetMemberInModuleExports: (name, symbol) => tryGetMemberInModuleExports(escapeLeadingUnderscores(name), symbol),\n    tryGetMemberInModuleExportsAndProperties: (name, symbol) => tryGetMemberInModuleExportsAndProperties(escapeLeadingUnderscores(name), symbol),\n    tryFindAmbientModule: (moduleName) => tryFindAmbientModule(\n      moduleName,\n      /*withAugmentations*/\n      true\n    ),\n    getApparentType,\n    getUnionType,\n    isTypeAssignableTo,\n    createAnonymousType,\n    createSignature,\n    createSymbol,\n    createIndexInfo,\n    getAnyType: () => anyType,\n    getStringType: () => stringType,\n    getStringLiteralType,\n    getNumberType: () => numberType,\n    getNumberLiteralType,\n    getBigIntType: () => bigintType,\n    getBigIntLiteralType,\n    getUnknownType: () => unknownType,\n    createPromiseType,\n    createArrayType,\n    getElementTypeOfArrayType,\n    getBooleanType: () => booleanType,\n    getFalseType: (fresh) => fresh ? falseType : regularFalseType,\n    getTrueType: (fresh) => fresh ? trueType : regularTrueType,\n    getVoidType: () => voidType,\n    getUndefinedType: () => undefinedType,\n    getNullType: () => nullType,\n    getESSymbolType: () => esSymbolType,\n    getNeverType: () => neverType,\n    getNonPrimitiveType: () => nonPrimitiveType,\n    getOptionalType: () => optionalType,\n    getPromiseType: () => getGlobalPromiseType(\n      /*reportErrors*/\n      false\n    ),\n    getPromiseLikeType: () => getGlobalPromiseLikeType(\n      /*reportErrors*/\n      false\n    ),\n    getAnyAsyncIterableType: () => {\n      const type = getGlobalAsyncIterableType(\n        /*reportErrors*/\n        false\n      );\n      if (type === emptyGenericType) return void 0;\n      return createTypeReference(type, [anyType, anyType, anyType]);\n    },\n    isSymbolAccessible,\n    isArrayType,\n    isTupleType,\n    isArrayLikeType,\n    isEmptyAnonymousObjectType,\n    isTypeInvalidDueToUnionDiscriminant,\n    getExactOptionalProperties,\n    getAllPossiblePropertiesOfTypes,\n    getSuggestedSymbolForNonexistentProperty,\n    getSuggestedSymbolForNonexistentJSXAttribute,\n    getSuggestedSymbolForNonexistentSymbol: (location, name, meaning) => getSuggestedSymbolForNonexistentSymbol(location, escapeLeadingUnderscores(name), meaning),\n    getSuggestedSymbolForNonexistentModule,\n    getSuggestedSymbolForNonexistentClassMember,\n    getBaseConstraintOfType,\n    getDefaultFromTypeParameter: (type) => type && type.flags & 262144 /* TypeParameter */ ? getDefaultFromTypeParameter(type) : void 0,\n    resolveName(name, location, meaning, excludeGlobals) {\n      return resolveName(\n        location,\n        escapeLeadingUnderscores(name),\n        meaning,\n        /*nameNotFoundMessage*/\n        void 0,\n        /*isUse*/\n        false,\n        excludeGlobals\n      );\n    },\n    getJsxNamespace: (n) => unescapeLeadingUnderscores(getJsxNamespace(n)),\n    getJsxFragmentFactory: (n) => {\n      const jsxFragmentFactory = getJsxFragmentFactoryEntity(n);\n      return jsxFragmentFactory && unescapeLeadingUnderscores(getFirstIdentifier(jsxFragmentFactory).escapedText);\n    },\n    getAccessibleSymbolChain,\n    getTypePredicateOfSignature,\n    resolveExternalModuleName: (moduleSpecifierIn) => {\n      const moduleSpecifier = getParseTreeNode(moduleSpecifierIn, isExpression);\n      return moduleSpecifier && resolveExternalModuleName(\n        moduleSpecifier,\n        moduleSpecifier,\n        /*ignoreErrors*/\n        true\n      );\n    },\n    resolveExternalModuleSymbol,\n    tryGetThisTypeAt: (nodeIn, includeGlobalThis, container) => {\n      const node = getParseTreeNode(nodeIn);\n      return node && tryGetThisTypeAt(node, includeGlobalThis, container);\n    },\n    getTypeArgumentConstraint: (nodeIn) => {\n      const node = getParseTreeNode(nodeIn, isTypeNode);\n      return node && getTypeArgumentConstraint(node);\n    },\n    getSuggestionDiagnostics: (fileIn, ct) => {\n      const file = getParseTreeNode(fileIn, isSourceFile) || Debug.fail(\"Could not determine parsed source file.\");\n      if (skipTypeChecking(file, compilerOptions, host)) {\n        return emptyArray;\n      }\n      let diagnostics2;\n      try {\n        cancellationToken = ct;\n        checkSourceFileWithEagerDiagnostics(file);\n        Debug.assert(!!(getNodeLinks(file).flags & 1 /* TypeChecked */));\n        diagnostics2 = addRange(diagnostics2, suggestionDiagnostics.getDiagnostics(file.fileName));\n        checkUnusedIdentifiers(getPotentiallyUnusedIdentifiers(file), (containingNode, kind, diag2) => {\n          if (!containsParseError(containingNode) && !unusedIsError(kind, !!(containingNode.flags & 33554432 /* Ambient */))) {\n            (diagnostics2 || (diagnostics2 = [])).push({ ...diag2, category: 2 /* Suggestion */ });\n          }\n        });\n        return diagnostics2 || emptyArray;\n      } finally {\n        cancellationToken = void 0;\n      }\n    },\n    runWithCancellationToken: (token, callback) => {\n      try {\n        cancellationToken = token;\n        return callback(checker);\n      } finally {\n        cancellationToken = void 0;\n      }\n    },\n    getLocalTypeParametersOfClassOrInterfaceOrTypeAlias,\n    isDeclarationVisible,\n    isPropertyAccessible,\n    getTypeOnlyAliasDeclaration,\n    getMemberOverrideModifierStatus,\n    isTypeParameterPossiblyReferenced,\n    typeHasCallOrConstructSignatures,\n    getSymbolFlags,\n    getTypeArgumentsForResolvedSignature,\n    isLibType\n  };\n  function getTypeArgumentsForResolvedSignature(signature) {\n    if (signature.mapper === void 0) return void 0;\n    return instantiateTypes((signature.target || signature).typeParameters, signature.mapper);\n  }\n  function getCandidateSignaturesForStringLiteralCompletions(call, editingArgument) {\n    const candidatesSet = /* @__PURE__ */ new Set();\n    const candidates = [];\n    runWithInferenceBlockedFromSourceNode(editingArgument, () => getResolvedSignatureWorker(\n      call,\n      candidates,\n      /*argumentCount*/\n      void 0,\n      0 /* Normal */\n    ));\n    for (const candidate of candidates) {\n      candidatesSet.add(candidate);\n    }\n    candidates.length = 0;\n    runWithoutResolvedSignatureCaching(editingArgument, () => getResolvedSignatureWorker(\n      call,\n      candidates,\n      /*argumentCount*/\n      void 0,\n      0 /* Normal */\n    ));\n    for (const candidate of candidates) {\n      candidatesSet.add(candidate);\n    }\n    return arrayFrom(candidatesSet);\n  }\n  function runWithoutResolvedSignatureCaching(node, fn) {\n    node = findAncestor(node, isCallLikeOrFunctionLikeExpression);\n    if (node) {\n      const cachedResolvedSignatures = [];\n      const cachedTypes2 = [];\n      while (node) {\n        const nodeLinks2 = getNodeLinks(node);\n        cachedResolvedSignatures.push([nodeLinks2, nodeLinks2.resolvedSignature]);\n        nodeLinks2.resolvedSignature = void 0;\n        if (isFunctionExpressionOrArrowFunction(node)) {\n          const symbolLinks2 = getSymbolLinks(getSymbolOfDeclaration(node));\n          const type = symbolLinks2.type;\n          cachedTypes2.push([symbolLinks2, type]);\n          symbolLinks2.type = void 0;\n        }\n        node = findAncestor(node.parent, isCallLikeOrFunctionLikeExpression);\n      }\n      const result = fn();\n      for (const [nodeLinks2, resolvedSignature] of cachedResolvedSignatures) {\n        nodeLinks2.resolvedSignature = resolvedSignature;\n      }\n      for (const [symbolLinks2, type] of cachedTypes2) {\n        symbolLinks2.type = type;\n      }\n      return result;\n    }\n    return fn();\n  }\n  function runWithInferenceBlockedFromSourceNode(node, fn) {\n    const containingCall = findAncestor(node, isCallLikeExpression);\n    if (containingCall) {\n      let toMarkSkip = node;\n      do {\n        getNodeLinks(toMarkSkip).skipDirectInference = true;\n        toMarkSkip = toMarkSkip.parent;\n      } while (toMarkSkip && toMarkSkip !== containingCall);\n    }\n    isInferencePartiallyBlocked = true;\n    const result = runWithoutResolvedSignatureCaching(node, fn);\n    isInferencePartiallyBlocked = false;\n    if (containingCall) {\n      let toMarkSkip = node;\n      do {\n        getNodeLinks(toMarkSkip).skipDirectInference = void 0;\n        toMarkSkip = toMarkSkip.parent;\n      } while (toMarkSkip && toMarkSkip !== containingCall);\n    }\n    return result;\n  }\n  function getResolvedSignatureWorker(nodeIn, candidatesOutArray, argumentCount, checkMode) {\n    const node = getParseTreeNode(nodeIn, isCallLikeExpression);\n    apparentArgumentCount = argumentCount;\n    const res = !node ? void 0 : getResolvedSignature(node, candidatesOutArray, checkMode);\n    apparentArgumentCount = void 0;\n    return res;\n  }\n  var tupleTypes = /* @__PURE__ */ new Map();\n  var unionTypes = /* @__PURE__ */ new Map();\n  var unionOfUnionTypes = /* @__PURE__ */ new Map();\n  var intersectionTypes = /* @__PURE__ */ new Map();\n  var stringLiteralTypes = /* @__PURE__ */ new Map();\n  var numberLiteralTypes = /* @__PURE__ */ new Map();\n  var bigIntLiteralTypes = /* @__PURE__ */ new Map();\n  var enumLiteralTypes = /* @__PURE__ */ new Map();\n  var indexedAccessTypes = /* @__PURE__ */ new Map();\n  var templateLiteralTypes = /* @__PURE__ */ new Map();\n  var stringMappingTypes = /* @__PURE__ */ new Map();\n  var substitutionTypes = /* @__PURE__ */ new Map();\n  var subtypeReductionCache = /* @__PURE__ */ new Map();\n  var decoratorContextOverrideTypeCache = /* @__PURE__ */ new Map();\n  var cachedTypes = /* @__PURE__ */ new Map();\n  var evolvingArrayTypes = [];\n  var undefinedProperties = /* @__PURE__ */ new Map();\n  var markerTypes = /* @__PURE__ */ new Set();\n  var unknownSymbol = createSymbol(4 /* Property */, \"unknown\");\n  var resolvingSymbol = createSymbol(0, \"__resolving__\" /* Resolving */);\n  var unresolvedSymbols = /* @__PURE__ */ new Map();\n  var errorTypes = /* @__PURE__ */ new Map();\n  var seenIntrinsicNames = /* @__PURE__ */ new Set();\n  var anyType = createIntrinsicType(1 /* Any */, \"any\");\n  var autoType = createIntrinsicType(1 /* Any */, \"any\", 262144 /* NonInferrableType */, \"auto\");\n  var wildcardType = createIntrinsicType(\n    1 /* Any */,\n    \"any\",\n    /*objectFlags*/\n    void 0,\n    \"wildcard\"\n  );\n  var blockedStringType = createIntrinsicType(\n    1 /* Any */,\n    \"any\",\n    /*objectFlags*/\n    void 0,\n    \"blocked string\"\n  );\n  var errorType = createIntrinsicType(1 /* Any */, \"error\");\n  var unresolvedType = createIntrinsicType(1 /* Any */, \"unresolved\");\n  var nonInferrableAnyType = createIntrinsicType(1 /* Any */, \"any\", 65536 /* ContainsWideningType */, \"non-inferrable\");\n  var intrinsicMarkerType = createIntrinsicType(1 /* Any */, \"intrinsic\");\n  var unknownType = createIntrinsicType(2 /* Unknown */, \"unknown\");\n  var undefinedType = createIntrinsicType(32768 /* Undefined */, \"undefined\");\n  var undefinedWideningType = strictNullChecks ? undefinedType : createIntrinsicType(32768 /* Undefined */, \"undefined\", 65536 /* ContainsWideningType */, \"widening\");\n  var missingType = createIntrinsicType(\n    32768 /* Undefined */,\n    \"undefined\",\n    /*objectFlags*/\n    void 0,\n    \"missing\"\n  );\n  var undefinedOrMissingType = exactOptionalPropertyTypes ? missingType : undefinedType;\n  var optionalType = createIntrinsicType(\n    32768 /* Undefined */,\n    \"undefined\",\n    /*objectFlags*/\n    void 0,\n    \"optional\"\n  );\n  var nullType = createIntrinsicType(65536 /* Null */, \"null\");\n  var nullWideningType = strictNullChecks ? nullType : createIntrinsicType(65536 /* Null */, \"null\", 65536 /* ContainsWideningType */, \"widening\");\n  var stringType = createIntrinsicType(4 /* String */, \"string\");\n  var numberType = createIntrinsicType(8 /* Number */, \"number\");\n  var bigintType = createIntrinsicType(64 /* BigInt */, \"bigint\");\n  var falseType = createIntrinsicType(\n    512 /* BooleanLiteral */,\n    \"false\",\n    /*objectFlags*/\n    void 0,\n    \"fresh\"\n  );\n  var regularFalseType = createIntrinsicType(512 /* BooleanLiteral */, \"false\");\n  var trueType = createIntrinsicType(\n    512 /* BooleanLiteral */,\n    \"true\",\n    /*objectFlags*/\n    void 0,\n    \"fresh\"\n  );\n  var regularTrueType = createIntrinsicType(512 /* BooleanLiteral */, \"true\");\n  trueType.regularType = regularTrueType;\n  trueType.freshType = trueType;\n  regularTrueType.regularType = regularTrueType;\n  regularTrueType.freshType = trueType;\n  falseType.regularType = regularFalseType;\n  falseType.freshType = falseType;\n  regularFalseType.regularType = regularFalseType;\n  regularFalseType.freshType = falseType;\n  var booleanType = getUnionType([regularFalseType, regularTrueType]);\n  var esSymbolType = createIntrinsicType(4096 /* ESSymbol */, \"symbol\");\n  var voidType = createIntrinsicType(16384 /* Void */, \"void\");\n  var neverType = createIntrinsicType(131072 /* Never */, \"never\");\n  var silentNeverType = createIntrinsicType(131072 /* Never */, \"never\", 262144 /* NonInferrableType */, \"silent\");\n  var implicitNeverType = createIntrinsicType(\n    131072 /* Never */,\n    \"never\",\n    /*objectFlags*/\n    void 0,\n    \"implicit\"\n  );\n  var unreachableNeverType = createIntrinsicType(\n    131072 /* Never */,\n    \"never\",\n    /*objectFlags*/\n    void 0,\n    \"unreachable\"\n  );\n  var nonPrimitiveType = createIntrinsicType(67108864 /* NonPrimitive */, \"object\");\n  var stringOrNumberType = getUnionType([stringType, numberType]);\n  var stringNumberSymbolType = getUnionType([stringType, numberType, esSymbolType]);\n  var numberOrBigIntType = getUnionType([numberType, bigintType]);\n  var templateConstraintType = getUnionType([stringType, numberType, booleanType, bigintType, nullType, undefinedType]);\n  var numericStringType = getTemplateLiteralType([\"\", \"\"], [numberType]);\n  var restrictiveMapper = makeFunctionTypeMapper((t) => t.flags & 262144 /* TypeParameter */ ? getRestrictiveTypeParameter(t) : t, () => \"(restrictive mapper)\");\n  var permissiveMapper = makeFunctionTypeMapper((t) => t.flags & 262144 /* TypeParameter */ ? wildcardType : t, () => \"(permissive mapper)\");\n  var uniqueLiteralType = createIntrinsicType(\n    131072 /* Never */,\n    \"never\",\n    /*objectFlags*/\n    void 0,\n    \"unique literal\"\n  );\n  var uniqueLiteralMapper = makeFunctionTypeMapper((t) => t.flags & 262144 /* TypeParameter */ ? uniqueLiteralType : t, () => \"(unique literal mapper)\");\n  var outofbandVarianceMarkerHandler;\n  var reportUnreliableMapper = makeFunctionTypeMapper((t) => {\n    if (outofbandVarianceMarkerHandler && (t === markerSuperType || t === markerSubType || t === markerOtherType)) {\n      outofbandVarianceMarkerHandler(\n        /*onlyUnreliable*/\n        true\n      );\n    }\n    return t;\n  }, () => \"(unmeasurable reporter)\");\n  var reportUnmeasurableMapper = makeFunctionTypeMapper((t) => {\n    if (outofbandVarianceMarkerHandler && (t === markerSuperType || t === markerSubType || t === markerOtherType)) {\n      outofbandVarianceMarkerHandler(\n        /*onlyUnreliable*/\n        false\n      );\n    }\n    return t;\n  }, () => \"(unreliable reporter)\");\n  var emptyObjectType = createAnonymousType(\n    /*symbol*/\n    void 0,\n    emptySymbols,\n    emptyArray,\n    emptyArray,\n    emptyArray\n  );\n  var emptyJsxObjectType = createAnonymousType(\n    /*symbol*/\n    void 0,\n    emptySymbols,\n    emptyArray,\n    emptyArray,\n    emptyArray\n  );\n  emptyJsxObjectType.objectFlags |= 2048 /* JsxAttributes */;\n  var emptyFreshJsxObjectType = createAnonymousType(\n    /*symbol*/\n    void 0,\n    emptySymbols,\n    emptyArray,\n    emptyArray,\n    emptyArray\n  );\n  emptyFreshJsxObjectType.objectFlags |= 2048 /* JsxAttributes */ | 8192 /* FreshLiteral */ | 128 /* ObjectLiteral */ | 131072 /* ContainsObjectOrArrayLiteral */;\n  var emptyTypeLiteralSymbol = createSymbol(2048 /* TypeLiteral */, \"__type\" /* Type */);\n  emptyTypeLiteralSymbol.members = createSymbolTable();\n  var emptyTypeLiteralType = createAnonymousType(emptyTypeLiteralSymbol, emptySymbols, emptyArray, emptyArray, emptyArray);\n  var unknownEmptyObjectType = createAnonymousType(\n    /*symbol*/\n    void 0,\n    emptySymbols,\n    emptyArray,\n    emptyArray,\n    emptyArray\n  );\n  var unknownUnionType = strictNullChecks ? getUnionType([undefinedType, nullType, unknownEmptyObjectType]) : unknownType;\n  var emptyGenericType = createAnonymousType(\n    /*symbol*/\n    void 0,\n    emptySymbols,\n    emptyArray,\n    emptyArray,\n    emptyArray\n  );\n  emptyGenericType.instantiations = /* @__PURE__ */ new Map();\n  var anyFunctionType = createAnonymousType(\n    /*symbol*/\n    void 0,\n    emptySymbols,\n    emptyArray,\n    emptyArray,\n    emptyArray\n  );\n  anyFunctionType.objectFlags |= 262144 /* NonInferrableType */;\n  var noConstraintType = createAnonymousType(\n    /*symbol*/\n    void 0,\n    emptySymbols,\n    emptyArray,\n    emptyArray,\n    emptyArray\n  );\n  var circularConstraintType = createAnonymousType(\n    /*symbol*/\n    void 0,\n    emptySymbols,\n    emptyArray,\n    emptyArray,\n    emptyArray\n  );\n  var resolvingDefaultType = createAnonymousType(\n    /*symbol*/\n    void 0,\n    emptySymbols,\n    emptyArray,\n    emptyArray,\n    emptyArray\n  );\n  var markerSuperType = createTypeParameter();\n  var markerSubType = createTypeParameter();\n  markerSubType.constraint = markerSuperType;\n  var markerOtherType = createTypeParameter();\n  var markerSuperTypeForCheck = createTypeParameter();\n  var markerSubTypeForCheck = createTypeParameter();\n  markerSubTypeForCheck.constraint = markerSuperTypeForCheck;\n  var noTypePredicate = createTypePredicate(1 /* Identifier */, \"<<unresolved>>\", 0, anyType);\n  var anySignature = createSignature(\n    /*declaration*/\n    void 0,\n    /*typeParameters*/\n    void 0,\n    /*thisParameter*/\n    void 0,\n    emptyArray,\n    anyType,\n    /*resolvedTypePredicate*/\n    void 0,\n    0,\n    0 /* None */\n  );\n  var unknownSignature = createSignature(\n    /*declaration*/\n    void 0,\n    /*typeParameters*/\n    void 0,\n    /*thisParameter*/\n    void 0,\n    emptyArray,\n    errorType,\n    /*resolvedTypePredicate*/\n    void 0,\n    0,\n    0 /* None */\n  );\n  var resolvingSignature = createSignature(\n    /*declaration*/\n    void 0,\n    /*typeParameters*/\n    void 0,\n    /*thisParameter*/\n    void 0,\n    emptyArray,\n    anyType,\n    /*resolvedTypePredicate*/\n    void 0,\n    0,\n    0 /* None */\n  );\n  var silentNeverSignature = createSignature(\n    /*declaration*/\n    void 0,\n    /*typeParameters*/\n    void 0,\n    /*thisParameter*/\n    void 0,\n    emptyArray,\n    silentNeverType,\n    /*resolvedTypePredicate*/\n    void 0,\n    0,\n    0 /* None */\n  );\n  var enumNumberIndexInfo = createIndexInfo(\n    numberType,\n    stringType,\n    /*isReadonly*/\n    true\n  );\n  var anyBaseTypeIndexInfo = createIndexInfo(\n    stringType,\n    anyType,\n    /*isReadonly*/\n    false\n  );\n  var iterationTypesCache = /* @__PURE__ */ new Map();\n  var noIterationTypes = {\n    get yieldType() {\n      return Debug.fail(\"Not supported\");\n    },\n    get returnType() {\n      return Debug.fail(\"Not supported\");\n    },\n    get nextType() {\n      return Debug.fail(\"Not supported\");\n    }\n  };\n  var anyIterationTypes = createIterationTypes(anyType, anyType, anyType);\n  var silentNeverIterationTypes = createIterationTypes(silentNeverType, silentNeverType, silentNeverType);\n  var asyncIterationTypesResolver = {\n    iterableCacheKey: \"iterationTypesOfAsyncIterable\",\n    iteratorCacheKey: \"iterationTypesOfAsyncIterator\",\n    iteratorSymbolName: \"asyncIterator\",\n    getGlobalIteratorType: getGlobalAsyncIteratorType,\n    getGlobalIterableType: getGlobalAsyncIterableType,\n    getGlobalIterableIteratorType: getGlobalAsyncIterableIteratorType,\n    getGlobalIteratorObjectType: getGlobalAsyncIteratorObjectType,\n    getGlobalGeneratorType: getGlobalAsyncGeneratorType,\n    getGlobalBuiltinIteratorTypes: getGlobalBuiltinAsyncIteratorTypes,\n    resolveIterationType: (type, errorNode) => getAwaitedType(type, errorNode, Diagnostics.Type_of_await_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member),\n    mustHaveANextMethodDiagnostic: Diagnostics.An_async_iterator_must_have_a_next_method,\n    mustBeAMethodDiagnostic: Diagnostics.The_0_property_of_an_async_iterator_must_be_a_method,\n    mustHaveAValueDiagnostic: Diagnostics.The_type_returned_by_the_0_method_of_an_async_iterator_must_be_a_promise_for_a_type_with_a_value_property\n  };\n  var syncIterationTypesResolver = {\n    iterableCacheKey: \"iterationTypesOfIterable\",\n    iteratorCacheKey: \"iterationTypesOfIterator\",\n    iteratorSymbolName: \"iterator\",\n    getGlobalIteratorType,\n    getGlobalIterableType,\n    getGlobalIterableIteratorType,\n    getGlobalIteratorObjectType,\n    getGlobalGeneratorType,\n    getGlobalBuiltinIteratorTypes,\n    resolveIterationType: (type, _errorNode) => type,\n    mustHaveANextMethodDiagnostic: Diagnostics.An_iterator_must_have_a_next_method,\n    mustBeAMethodDiagnostic: Diagnostics.The_0_property_of_an_iterator_must_be_a_method,\n    mustHaveAValueDiagnostic: Diagnostics.The_type_returned_by_the_0_method_of_an_iterator_must_have_a_value_property\n  };\n  var amalgamatedDuplicates;\n  var reverseMappedCache = /* @__PURE__ */ new Map();\n  var reverseHomomorphicMappedCache = /* @__PURE__ */ new Map();\n  var ambientModulesCache;\n  var patternAmbientModules;\n  var patternAmbientModuleAugmentations;\n  var globalObjectType;\n  var globalFunctionType;\n  var globalCallableFunctionType;\n  var globalNewableFunctionType;\n  var globalArrayType;\n  var globalReadonlyArrayType;\n  var globalStringType;\n  var globalNumberType;\n  var globalBooleanType;\n  var globalRegExpType;\n  var globalThisType;\n  var anyArrayType;\n  var autoArrayType;\n  var anyReadonlyArrayType;\n  var deferredGlobalNonNullableTypeAlias;\n  var deferredGlobalESSymbolConstructorSymbol;\n  var deferredGlobalESSymbolConstructorTypeSymbol;\n  var deferredGlobalESSymbolType;\n  var deferredGlobalTypedPropertyDescriptorType;\n  var deferredGlobalPromiseType;\n  var deferredGlobalPromiseLikeType;\n  var deferredGlobalPromiseConstructorSymbol;\n  var deferredGlobalPromiseConstructorLikeType;\n  var deferredGlobalIterableType;\n  var deferredGlobalIteratorType;\n  var deferredGlobalIterableIteratorType;\n  var deferredGlobalIteratorObjectType;\n  var deferredGlobalGeneratorType;\n  var deferredGlobalIteratorYieldResultType;\n  var deferredGlobalIteratorReturnResultType;\n  var deferredGlobalAsyncIterableType;\n  var deferredGlobalAsyncIteratorType;\n  var deferredGlobalAsyncIterableIteratorType;\n  var deferredGlobalBuiltinIteratorTypes;\n  var deferredGlobalBuiltinAsyncIteratorTypes;\n  var deferredGlobalAsyncIteratorObjectType;\n  var deferredGlobalAsyncGeneratorType;\n  var deferredGlobalTemplateStringsArrayType;\n  var deferredGlobalImportMetaType;\n  var deferredGlobalImportMetaExpressionType;\n  var deferredGlobalImportCallOptionsType;\n  var deferredGlobalImportAttributesType;\n  var deferredGlobalDisposableType;\n  var deferredGlobalAsyncDisposableType;\n  var deferredGlobalExtractSymbol;\n  var deferredGlobalOmitSymbol;\n  var deferredGlobalAwaitedSymbol;\n  var deferredGlobalBigIntType;\n  var deferredGlobalNaNSymbol;\n  var deferredGlobalRecordSymbol;\n  var deferredGlobalClassDecoratorContextType;\n  var deferredGlobalClassMethodDecoratorContextType;\n  var deferredGlobalClassGetterDecoratorContextType;\n  var deferredGlobalClassSetterDecoratorContextType;\n  var deferredGlobalClassAccessorDecoratorContextType;\n  var deferredGlobalClassAccessorDecoratorTargetType;\n  var deferredGlobalClassAccessorDecoratorResultType;\n  var deferredGlobalClassFieldDecoratorContextType;\n  var allPotentiallyUnusedIdentifiers = /* @__PURE__ */ new Map();\n  var flowLoopStart = 0;\n  var flowLoopCount = 0;\n  var sharedFlowCount = 0;\n  var flowAnalysisDisabled = false;\n  var flowInvocationCount = 0;\n  var lastFlowNode;\n  var lastFlowNodeReachable;\n  var flowTypeCache;\n  var contextualTypeNodes = [];\n  var contextualTypes = [];\n  var contextualIsCache = [];\n  var contextualTypeCount = 0;\n  var contextualBindingPatterns = [];\n  var inferenceContextNodes = [];\n  var inferenceContexts = [];\n  var inferenceContextCount = 0;\n  var activeTypeMappers = [];\n  var activeTypeMappersCaches = [];\n  var activeTypeMappersCount = 0;\n  var emptyStringType = getStringLiteralType(\"\");\n  var zeroType = getNumberLiteralType(0);\n  var zeroBigIntType = getBigIntLiteralType({ negative: false, base10Value: \"0\" });\n  var resolutionTargets = [];\n  var resolutionResults = [];\n  var resolutionPropertyNames = [];\n  var resolutionStart = 0;\n  var inVarianceComputation = false;\n  var suggestionCount = 0;\n  var maximumSuggestionCount = 10;\n  var mergedSymbols = [];\n  var symbolLinks = [];\n  var nodeLinks = [];\n  var flowLoopCaches = [];\n  var flowLoopNodes = [];\n  var flowLoopKeys = [];\n  var flowLoopTypes = [];\n  var sharedFlowNodes = [];\n  var sharedFlowTypes = [];\n  var flowNodeReachable = [];\n  var flowNodePostSuper = [];\n  var potentialThisCollisions = [];\n  var potentialNewTargetCollisions = [];\n  var potentialWeakMapSetCollisions = [];\n  var potentialReflectCollisions = [];\n  var potentialUnusedRenamedBindingElementsInTypes = [];\n  var awaitedTypeStack = [];\n  var reverseMappedSourceStack = [];\n  var reverseMappedTargetStack = [];\n  var reverseExpandingFlags = 0 /* None */;\n  var diagnostics = createDiagnosticCollection();\n  var suggestionDiagnostics = createDiagnosticCollection();\n  var typeofType = createTypeofType();\n  var _jsxNamespace;\n  var _jsxFactoryEntity;\n  var subtypeRelation = /* @__PURE__ */ new Map();\n  var strictSubtypeRelation = /* @__PURE__ */ new Map();\n  var assignableRelation = /* @__PURE__ */ new Map();\n  var comparableRelation = /* @__PURE__ */ new Map();\n  var identityRelation = /* @__PURE__ */ new Map();\n  var enumRelation = /* @__PURE__ */ new Map();\n  var suggestedExtensions = [\n    [\".mts\", \".mjs\"],\n    [\".ts\", \".js\"],\n    [\".cts\", \".cjs\"],\n    [\".mjs\", \".mjs\"],\n    [\".js\", \".js\"],\n    [\".cjs\", \".cjs\"],\n    [\".tsx\", compilerOptions.jsx === 1 /* Preserve */ ? \".jsx\" : \".js\"],\n    [\".jsx\", \".jsx\"],\n    [\".json\", \".json\"]\n  ];\n  initializeTypeChecker();\n  return checker;\n  function isDefinitelyReferenceToGlobalSymbolObject(node) {\n    if (!isPropertyAccessExpression(node)) return false;\n    if (!isIdentifier(node.name)) return false;\n    if (!isPropertyAccessExpression(node.expression) && !isIdentifier(node.expression)) return false;\n    if (isIdentifier(node.expression)) {\n      return idText(node.expression) === \"Symbol\" && getResolvedSymbol(node.expression) === (getGlobalSymbol(\n        \"Symbol\",\n        111551 /* Value */ | 1048576 /* ExportValue */,\n        /*diagnostic*/\n        void 0\n      ) || unknownSymbol);\n    }\n    if (!isIdentifier(node.expression.expression)) return false;\n    return idText(node.expression.name) === \"Symbol\" && idText(node.expression.expression) === \"globalThis\" && getResolvedSymbol(node.expression.expression) === globalThisSymbol;\n  }\n  function getCachedType(key) {\n    return key ? cachedTypes.get(key) : void 0;\n  }\n  function setCachedType(key, type) {\n    if (key) cachedTypes.set(key, type);\n    return type;\n  }\n  function getJsxNamespace(location) {\n    if (location) {\n      const file = getSourceFileOfNode(location);\n      if (file) {\n        if (isJsxOpeningFragment(location)) {\n          if (file.localJsxFragmentNamespace) {\n            return file.localJsxFragmentNamespace;\n          }\n          const jsxFragmentPragma = file.pragmas.get(\"jsxfrag\");\n          if (jsxFragmentPragma) {\n            const chosenPragma = isArray(jsxFragmentPragma) ? jsxFragmentPragma[0] : jsxFragmentPragma;\n            file.localJsxFragmentFactory = parseIsolatedEntityName(chosenPragma.arguments.factory, languageVersion);\n            visitNode(file.localJsxFragmentFactory, markAsSynthetic, isEntityName);\n            if (file.localJsxFragmentFactory) {\n              return file.localJsxFragmentNamespace = getFirstIdentifier(file.localJsxFragmentFactory).escapedText;\n            }\n          }\n          const entity = getJsxFragmentFactoryEntity(location);\n          if (entity) {\n            file.localJsxFragmentFactory = entity;\n            return file.localJsxFragmentNamespace = getFirstIdentifier(entity).escapedText;\n          }\n        } else {\n          const localJsxNamespace = getLocalJsxNamespace(file);\n          if (localJsxNamespace) {\n            return file.localJsxNamespace = localJsxNamespace;\n          }\n        }\n      }\n    }\n    if (!_jsxNamespace) {\n      _jsxNamespace = \"React\";\n      if (compilerOptions.jsxFactory) {\n        _jsxFactoryEntity = parseIsolatedEntityName(compilerOptions.jsxFactory, languageVersion);\n        visitNode(_jsxFactoryEntity, markAsSynthetic);\n        if (_jsxFactoryEntity) {\n          _jsxNamespace = getFirstIdentifier(_jsxFactoryEntity).escapedText;\n        }\n      } else if (compilerOptions.reactNamespace) {\n        _jsxNamespace = escapeLeadingUnderscores(compilerOptions.reactNamespace);\n      }\n    }\n    if (!_jsxFactoryEntity) {\n      _jsxFactoryEntity = factory.createQualifiedName(factory.createIdentifier(unescapeLeadingUnderscores(_jsxNamespace)), \"createElement\");\n    }\n    return _jsxNamespace;\n  }\n  function getLocalJsxNamespace(file) {\n    if (file.localJsxNamespace) {\n      return file.localJsxNamespace;\n    }\n    const jsxPragma = file.pragmas.get(\"jsx\");\n    if (jsxPragma) {\n      const chosenPragma = isArray(jsxPragma) ? jsxPragma[0] : jsxPragma;\n      file.localJsxFactory = parseIsolatedEntityName(chosenPragma.arguments.factory, languageVersion);\n      visitNode(file.localJsxFactory, markAsSynthetic, isEntityName);\n      if (file.localJsxFactory) {\n        return file.localJsxNamespace = getFirstIdentifier(file.localJsxFactory).escapedText;\n      }\n    }\n  }\n  function markAsSynthetic(node) {\n    setTextRangePosEnd(node, -1, -1);\n    return visitEachChild(\n      node,\n      markAsSynthetic,\n      /*context*/\n      void 0\n    );\n  }\n  function getEmitResolver(sourceFile, cancellationToken2, skipDiagnostics) {\n    if (!skipDiagnostics) getDiagnostics2(sourceFile, cancellationToken2);\n    return emitResolver;\n  }\n  function lookupOrIssueError(location, message, ...args) {\n    const diagnostic = location ? createDiagnosticForNode(location, message, ...args) : createCompilerDiagnostic(message, ...args);\n    const existing = diagnostics.lookup(diagnostic);\n    if (existing) {\n      return existing;\n    } else {\n      diagnostics.add(diagnostic);\n      return diagnostic;\n    }\n  }\n  function errorSkippedOn(key, location, message, ...args) {\n    const diagnostic = error2(location, message, ...args);\n    diagnostic.skippedOn = key;\n    return diagnostic;\n  }\n  function createError(location, message, ...args) {\n    return location ? createDiagnosticForNode(location, message, ...args) : createCompilerDiagnostic(message, ...args);\n  }\n  function error2(location, message, ...args) {\n    const diagnostic = createError(location, message, ...args);\n    diagnostics.add(diagnostic);\n    return diagnostic;\n  }\n  function getVerbatimModuleSyntaxErrorMessage(node) {\n    const sourceFile = getSourceFileOfNode(node);\n    const fileName = sourceFile.fileName;\n    if (fileExtensionIsOneOf(fileName, [\".cts\" /* Cts */, \".cjs\" /* Cjs */])) {\n      return Diagnostics.ECMAScript_imports_and_exports_cannot_be_written_in_a_CommonJS_file_under_verbatimModuleSyntax;\n    } else {\n      return Diagnostics.ECMAScript_imports_and_exports_cannot_be_written_in_a_CommonJS_file_under_verbatimModuleSyntax_Adjust_the_type_field_in_the_nearest_package_json_to_make_this_file_an_ECMAScript_module_or_adjust_your_verbatimModuleSyntax_module_and_moduleResolution_settings_in_TypeScript;\n    }\n  }\n  function addErrorOrSuggestion(isError, diagnostic) {\n    if (isError) {\n      diagnostics.add(diagnostic);\n    } else {\n      suggestionDiagnostics.add({ ...diagnostic, category: 2 /* Suggestion */ });\n    }\n  }\n  function errorOrSuggestion(isError, location, message, ...args) {\n    if (location.pos < 0 || location.end < 0) {\n      if (!isError) {\n        return;\n      }\n      const file = getSourceFileOfNode(location);\n      addErrorOrSuggestion(isError, \"message\" in message ? createFileDiagnostic(file, 0, 0, message, ...args) : createDiagnosticForFileFromMessageChain(file, message));\n      return;\n    }\n    addErrorOrSuggestion(isError, \"message\" in message ? createDiagnosticForNode(location, message, ...args) : createDiagnosticForNodeFromMessageChain(getSourceFileOfNode(location), location, message));\n  }\n  function errorAndMaybeSuggestAwait(location, maybeMissingAwait, message, ...args) {\n    const diagnostic = error2(location, message, ...args);\n    if (maybeMissingAwait) {\n      const related = createDiagnosticForNode(location, Diagnostics.Did_you_forget_to_use_await);\n      addRelatedInfo(diagnostic, related);\n    }\n    return diagnostic;\n  }\n  function addDeprecatedSuggestionWorker(declarations, diagnostic) {\n    const deprecatedTag = Array.isArray(declarations) ? forEach(declarations, getJSDocDeprecatedTag) : getJSDocDeprecatedTag(declarations);\n    if (deprecatedTag) {\n      addRelatedInfo(\n        diagnostic,\n        createDiagnosticForNode(deprecatedTag, Diagnostics.The_declaration_was_marked_as_deprecated_here)\n      );\n    }\n    suggestionDiagnostics.add(diagnostic);\n    return diagnostic;\n  }\n  function isDeprecatedSymbol(symbol) {\n    const parentSymbol = getParentOfSymbol(symbol);\n    if (parentSymbol && length(symbol.declarations) > 1) {\n      return parentSymbol.flags & 64 /* Interface */ ? some(symbol.declarations, isDeprecatedDeclaration2) : every(symbol.declarations, isDeprecatedDeclaration2);\n    }\n    return !!symbol.valueDeclaration && isDeprecatedDeclaration2(symbol.valueDeclaration) || length(symbol.declarations) && every(symbol.declarations, isDeprecatedDeclaration2);\n  }\n  function isDeprecatedDeclaration2(declaration) {\n    return !!(getCombinedNodeFlagsCached(declaration) & 536870912 /* Deprecated */);\n  }\n  function addDeprecatedSuggestion(location, declarations, deprecatedEntity) {\n    const diagnostic = createDiagnosticForNode(location, Diagnostics._0_is_deprecated, deprecatedEntity);\n    return addDeprecatedSuggestionWorker(declarations, diagnostic);\n  }\n  function addDeprecatedSuggestionWithSignature(location, declaration, deprecatedEntity, signatureString) {\n    const diagnostic = deprecatedEntity ? createDiagnosticForNode(location, Diagnostics.The_signature_0_of_1_is_deprecated, signatureString, deprecatedEntity) : createDiagnosticForNode(location, Diagnostics._0_is_deprecated, signatureString);\n    return addDeprecatedSuggestionWorker(declaration, diagnostic);\n  }\n  function createSymbol(flags, name, checkFlags) {\n    symbolCount++;\n    const symbol = new Symbol48(flags | 33554432 /* Transient */, name);\n    symbol.links = new SymbolLinks();\n    symbol.links.checkFlags = checkFlags || 0 /* None */;\n    return symbol;\n  }\n  function createParameter2(name, type) {\n    const symbol = createSymbol(1 /* FunctionScopedVariable */, name);\n    symbol.links.type = type;\n    return symbol;\n  }\n  function createProperty(name, type) {\n    const symbol = createSymbol(4 /* Property */, name);\n    symbol.links.type = type;\n    return symbol;\n  }\n  function getExcludedSymbolFlags(flags) {\n    let result = 0;\n    if (flags & 2 /* BlockScopedVariable */) result |= 111551 /* BlockScopedVariableExcludes */;\n    if (flags & 1 /* FunctionScopedVariable */) result |= 111550 /* FunctionScopedVariableExcludes */;\n    if (flags & 4 /* Property */) result |= 0 /* PropertyExcludes */;\n    if (flags & 8 /* EnumMember */) result |= 900095 /* EnumMemberExcludes */;\n    if (flags & 16 /* Function */) result |= 110991 /* FunctionExcludes */;\n    if (flags & 32 /* Class */) result |= 899503 /* ClassExcludes */;\n    if (flags & 64 /* Interface */) result |= 788872 /* InterfaceExcludes */;\n    if (flags & 256 /* RegularEnum */) result |= 899327 /* RegularEnumExcludes */;\n    if (flags & 128 /* ConstEnum */) result |= 899967 /* ConstEnumExcludes */;\n    if (flags & 512 /* ValueModule */) result |= 110735 /* ValueModuleExcludes */;\n    if (flags & 8192 /* Method */) result |= 103359 /* MethodExcludes */;\n    if (flags & 32768 /* GetAccessor */) result |= 46015 /* GetAccessorExcludes */;\n    if (flags & 65536 /* SetAccessor */) result |= 78783 /* SetAccessorExcludes */;\n    if (flags & 262144 /* TypeParameter */) result |= 526824 /* TypeParameterExcludes */;\n    if (flags & 524288 /* TypeAlias */) result |= 788968 /* TypeAliasExcludes */;\n    if (flags & 2097152 /* Alias */) result |= 2097152 /* AliasExcludes */;\n    return result;\n  }\n  function recordMergedSymbol(target, source) {\n    if (!source.mergeId) {\n      source.mergeId = nextMergeId;\n      nextMergeId++;\n    }\n    mergedSymbols[source.mergeId] = target;\n  }\n  function cloneSymbol(symbol) {\n    const result = createSymbol(symbol.flags, symbol.escapedName);\n    result.declarations = symbol.declarations ? symbol.declarations.slice() : [];\n    result.parent = symbol.parent;\n    if (symbol.valueDeclaration) result.valueDeclaration = symbol.valueDeclaration;\n    if (symbol.constEnumOnlyModule) result.constEnumOnlyModule = true;\n    if (symbol.members) result.members = new Map(symbol.members);\n    if (symbol.exports) result.exports = new Map(symbol.exports);\n    recordMergedSymbol(result, symbol);\n    return result;\n  }\n  function mergeSymbol(target, source, unidirectional = false) {\n    if (!(target.flags & getExcludedSymbolFlags(source.flags)) || (source.flags | target.flags) & 67108864 /* Assignment */) {\n      if (source === target) {\n        return target;\n      }\n      if (!(target.flags & 33554432 /* Transient */)) {\n        const resolvedTarget = resolveSymbol(target);\n        if (resolvedTarget === unknownSymbol) {\n          return source;\n        }\n        if (!(resolvedTarget.flags & getExcludedSymbolFlags(source.flags)) || (source.flags | resolvedTarget.flags) & 67108864 /* Assignment */) {\n          target = cloneSymbol(resolvedTarget);\n        } else {\n          reportMergeSymbolError(target, source);\n          return source;\n        }\n      }\n      if (source.flags & 512 /* ValueModule */ && target.flags & 512 /* ValueModule */ && target.constEnumOnlyModule && !source.constEnumOnlyModule) {\n        target.constEnumOnlyModule = false;\n      }\n      target.flags |= source.flags;\n      if (source.valueDeclaration) {\n        setValueDeclaration(target, source.valueDeclaration);\n      }\n      addRange(target.declarations, source.declarations);\n      if (source.members) {\n        if (!target.members) target.members = createSymbolTable();\n        mergeSymbolTable(target.members, source.members, unidirectional);\n      }\n      if (source.exports) {\n        if (!target.exports) target.exports = createSymbolTable();\n        mergeSymbolTable(target.exports, source.exports, unidirectional, target);\n      }\n      if (!unidirectional) {\n        recordMergedSymbol(target, source);\n      }\n    } else if (target.flags & 1024 /* NamespaceModule */) {\n      if (target !== globalThisSymbol) {\n        error2(\n          source.declarations && getNameOfDeclaration(source.declarations[0]),\n          Diagnostics.Cannot_augment_module_0_with_value_exports_because_it_resolves_to_a_non_module_entity,\n          symbolToString(target)\n        );\n      }\n    } else {\n      reportMergeSymbolError(target, source);\n    }\n    return target;\n    function reportMergeSymbolError(target2, source2) {\n      const isEitherEnum = !!(target2.flags & 384 /* Enum */ || source2.flags & 384 /* Enum */);\n      const isEitherBlockScoped = !!(target2.flags & 2 /* BlockScopedVariable */ || source2.flags & 2 /* BlockScopedVariable */);\n      const message = isEitherEnum ? Diagnostics.Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations : isEitherBlockScoped ? Diagnostics.Cannot_redeclare_block_scoped_variable_0 : Diagnostics.Duplicate_identifier_0;\n      const sourceSymbolFile = source2.declarations && getSourceFileOfNode(source2.declarations[0]);\n      const targetSymbolFile = target2.declarations && getSourceFileOfNode(target2.declarations[0]);\n      const isSourcePlainJs = isPlainJsFile(sourceSymbolFile, compilerOptions.checkJs);\n      const isTargetPlainJs = isPlainJsFile(targetSymbolFile, compilerOptions.checkJs);\n      const symbolName2 = symbolToString(source2);\n      if (sourceSymbolFile && targetSymbolFile && amalgamatedDuplicates && !isEitherEnum && sourceSymbolFile !== targetSymbolFile) {\n        const firstFile = comparePaths(sourceSymbolFile.path, targetSymbolFile.path) === -1 /* LessThan */ ? sourceSymbolFile : targetSymbolFile;\n        const secondFile = firstFile === sourceSymbolFile ? targetSymbolFile : sourceSymbolFile;\n        const filesDuplicates = getOrUpdate(amalgamatedDuplicates, `${firstFile.path}|${secondFile.path}`, () => ({ firstFile, secondFile, conflictingSymbols: /* @__PURE__ */ new Map() }));\n        const conflictingSymbolInfo = getOrUpdate(filesDuplicates.conflictingSymbols, symbolName2, () => ({ isBlockScoped: isEitherBlockScoped, firstFileLocations: [], secondFileLocations: [] }));\n        if (!isSourcePlainJs) addDuplicateLocations(conflictingSymbolInfo.firstFileLocations, source2);\n        if (!isTargetPlainJs) addDuplicateLocations(conflictingSymbolInfo.secondFileLocations, target2);\n      } else {\n        if (!isSourcePlainJs) addDuplicateDeclarationErrorsForSymbols(source2, message, symbolName2, target2);\n        if (!isTargetPlainJs) addDuplicateDeclarationErrorsForSymbols(target2, message, symbolName2, source2);\n      }\n    }\n    function addDuplicateLocations(locs, symbol) {\n      if (symbol.declarations) {\n        for (const decl of symbol.declarations) {\n          pushIfUnique(locs, decl);\n        }\n      }\n    }\n  }\n  function addDuplicateDeclarationErrorsForSymbols(target, message, symbolName2, source) {\n    forEach(target.declarations, (node) => {\n      addDuplicateDeclarationError(node, message, symbolName2, source.declarations);\n    });\n  }\n  function addDuplicateDeclarationError(node, message, symbolName2, relatedNodes) {\n    const errorNode = (getExpandoInitializer(\n      node,\n      /*isPrototypeAssignment*/\n      false\n    ) ? getNameOfExpando(node) : getNameOfDeclaration(node)) || node;\n    const err = lookupOrIssueError(errorNode, message, symbolName2);\n    for (const relatedNode of relatedNodes || emptyArray) {\n      const adjustedNode = (getExpandoInitializer(\n        relatedNode,\n        /*isPrototypeAssignment*/\n        false\n      ) ? getNameOfExpando(relatedNode) : getNameOfDeclaration(relatedNode)) || relatedNode;\n      if (adjustedNode === errorNode) continue;\n      err.relatedInformation = err.relatedInformation || [];\n      const leadingMessage = createDiagnosticForNode(adjustedNode, Diagnostics._0_was_also_declared_here, symbolName2);\n      const followOnMessage = createDiagnosticForNode(adjustedNode, Diagnostics.and_here);\n      if (length(err.relatedInformation) >= 5 || some(err.relatedInformation, (r) => compareDiagnostics(r, followOnMessage) === 0 /* EqualTo */ || compareDiagnostics(r, leadingMessage) === 0 /* EqualTo */)) continue;\n      addRelatedInfo(err, !length(err.relatedInformation) ? leadingMessage : followOnMessage);\n    }\n  }\n  function combineSymbolTables(first2, second) {\n    if (!(first2 == null ? void 0 : first2.size)) return second;\n    if (!(second == null ? void 0 : second.size)) return first2;\n    const combined = createSymbolTable();\n    mergeSymbolTable(combined, first2);\n    mergeSymbolTable(combined, second);\n    return combined;\n  }\n  function mergeSymbolTable(target, source, unidirectional = false, mergedParent) {\n    source.forEach((sourceSymbol, id) => {\n      const targetSymbol = target.get(id);\n      const merged = targetSymbol ? mergeSymbol(targetSymbol, sourceSymbol, unidirectional) : getMergedSymbol(sourceSymbol);\n      if (mergedParent && targetSymbol) {\n        merged.parent = mergedParent;\n      }\n      target.set(id, merged);\n    });\n  }\n  function mergeModuleAugmentation(moduleName) {\n    var _a, _b, _c;\n    const moduleAugmentation = moduleName.parent;\n    if (((_a = moduleAugmentation.symbol.declarations) == null ? void 0 : _a[0]) !== moduleAugmentation) {\n      Debug.assert(moduleAugmentation.symbol.declarations.length > 1);\n      return;\n    }\n    if (isGlobalScopeAugmentation(moduleAugmentation)) {\n      mergeSymbolTable(globals, moduleAugmentation.symbol.exports);\n    } else {\n      const moduleNotFoundError = !(moduleName.parent.parent.flags & 33554432 /* Ambient */) ? Diagnostics.Invalid_module_name_in_augmentation_module_0_cannot_be_found : void 0;\n      let mainModule = resolveExternalModuleNameWorker(\n        moduleName,\n        moduleName,\n        moduleNotFoundError,\n        /*ignoreErrors*/\n        false,\n        /*isForAugmentation*/\n        true\n      );\n      if (!mainModule) {\n        return;\n      }\n      mainModule = resolveExternalModuleSymbol(mainModule);\n      if (mainModule.flags & 1920 /* Namespace */) {\n        if (some(patternAmbientModules, (module2) => mainModule === module2.symbol)) {\n          const merged = mergeSymbol(\n            moduleAugmentation.symbol,\n            mainModule,\n            /*unidirectional*/\n            true\n          );\n          if (!patternAmbientModuleAugmentations) {\n            patternAmbientModuleAugmentations = /* @__PURE__ */ new Map();\n          }\n          patternAmbientModuleAugmentations.set(moduleName.text, merged);\n        } else {\n          if (((_b = mainModule.exports) == null ? void 0 : _b.get(\"__export\" /* ExportStar */)) && ((_c = moduleAugmentation.symbol.exports) == null ? void 0 : _c.size)) {\n            const resolvedExports = getResolvedMembersOrExportsOfSymbol(mainModule, \"resolvedExports\" /* resolvedExports */);\n            for (const [key, value] of arrayFrom(moduleAugmentation.symbol.exports.entries())) {\n              if (resolvedExports.has(key) && !mainModule.exports.has(key)) {\n                mergeSymbol(resolvedExports.get(key), value);\n              }\n            }\n          }\n          mergeSymbol(mainModule, moduleAugmentation.symbol);\n        }\n      } else {\n        error2(moduleName, Diagnostics.Cannot_augment_module_0_because_it_resolves_to_a_non_module_entity, moduleName.text);\n      }\n    }\n  }\n  function addUndefinedToGlobalsOrErrorOnRedeclaration() {\n    const name = undefinedSymbol.escapedName;\n    const targetSymbol = globals.get(name);\n    if (targetSymbol) {\n      forEach(targetSymbol.declarations, (declaration) => {\n        if (!isTypeDeclaration(declaration)) {\n          diagnostics.add(createDiagnosticForNode(declaration, Diagnostics.Declaration_name_conflicts_with_built_in_global_identifier_0, unescapeLeadingUnderscores(name)));\n        }\n      });\n    } else {\n      globals.set(name, undefinedSymbol);\n    }\n  }\n  function getSymbolLinks(symbol) {\n    if (symbol.flags & 33554432 /* Transient */) return symbol.links;\n    const id = getSymbolId(symbol);\n    return symbolLinks[id] ?? (symbolLinks[id] = new SymbolLinks());\n  }\n  function getNodeLinks(node) {\n    const nodeId = getNodeId(node);\n    return nodeLinks[nodeId] || (nodeLinks[nodeId] = new NodeLinks());\n  }\n  function getSymbol2(symbols, name, meaning) {\n    if (meaning) {\n      const symbol = getMergedSymbol(symbols.get(name));\n      if (symbol) {\n        if (symbol.flags & meaning) {\n          return symbol;\n        }\n        if (symbol.flags & 2097152 /* Alias */) {\n          const targetFlags = getSymbolFlags(symbol);\n          if (targetFlags & meaning) {\n            return symbol;\n          }\n        }\n      }\n    }\n  }\n  function getSymbolsOfParameterPropertyDeclaration(parameter, parameterName) {\n    const constructorDeclaration = parameter.parent;\n    const classDeclaration = parameter.parent.parent;\n    const parameterSymbol = getSymbol2(constructorDeclaration.locals, parameterName, 111551 /* Value */);\n    const propertySymbol = getSymbol2(getMembersOfSymbol(classDeclaration.symbol), parameterName, 111551 /* Value */);\n    if (parameterSymbol && propertySymbol) {\n      return [parameterSymbol, propertySymbol];\n    }\n    return Debug.fail(\"There should exist two symbols, one as property declaration and one as parameter declaration\");\n  }\n  function isBlockScopedNameDeclaredBeforeUse(declaration, usage) {\n    const declarationFile = getSourceFileOfNode(declaration);\n    const useFile = getSourceFileOfNode(usage);\n    const declContainer = getEnclosingBlockScopeContainer(declaration);\n    if (declarationFile !== useFile) {\n      if (moduleKind && (declarationFile.externalModuleIndicator || useFile.externalModuleIndicator) || !compilerOptions.outFile || isInTypeQuery(usage) || declaration.flags & 33554432 /* Ambient */) {\n        return true;\n      }\n      if (isUsedInFunctionOrInstanceProperty(usage, declaration)) {\n        return true;\n      }\n      const sourceFiles = host.getSourceFiles();\n      return sourceFiles.indexOf(declarationFile) <= sourceFiles.indexOf(useFile);\n    }\n    if (!!(usage.flags & 16777216 /* JSDoc */) || isInTypeQuery(usage) || isInAmbientOrTypeNode(usage)) {\n      return true;\n    }\n    if (declaration.pos <= usage.pos && !(isPropertyDeclaration(declaration) && isThisProperty(usage.parent) && !declaration.initializer && !declaration.exclamationToken)) {\n      if (declaration.kind === 209 /* BindingElement */) {\n        const errorBindingElement = getAncestor(usage, 209 /* BindingElement */);\n        if (errorBindingElement) {\n          return findAncestor(errorBindingElement, isBindingElement) !== findAncestor(declaration, isBindingElement) || declaration.pos < errorBindingElement.pos;\n        }\n        return isBlockScopedNameDeclaredBeforeUse(getAncestor(declaration, 261 /* VariableDeclaration */), usage);\n      } else if (declaration.kind === 261 /* VariableDeclaration */) {\n        return !isImmediatelyUsedInInitializerOfBlockScopedVariable(declaration, usage);\n      } else if (isClassLike(declaration)) {\n        const container = findAncestor(usage, (n) => n === declaration ? \"quit\" : isComputedPropertyName(n) ? n.parent.parent === declaration : !legacyDecorators && isDecorator(n) && (n.parent === declaration || isMethodDeclaration(n.parent) && n.parent.parent === declaration || isGetOrSetAccessorDeclaration(n.parent) && n.parent.parent === declaration || isPropertyDeclaration(n.parent) && n.parent.parent === declaration || isParameter(n.parent) && n.parent.parent.parent === declaration));\n        if (!container) {\n          return true;\n        }\n        if (!legacyDecorators && isDecorator(container)) {\n          return !!findAncestor(usage, (n) => n === container ? \"quit\" : isFunctionLike(n) && !getImmediatelyInvokedFunctionExpression(n));\n        }\n        return false;\n      } else if (isPropertyDeclaration(declaration)) {\n        return !isPropertyImmediatelyReferencedWithinDeclaration(\n          declaration,\n          usage,\n          /*stopAtAnyPropertyDeclaration*/\n          false\n        );\n      } else if (isParameterPropertyDeclaration(declaration, declaration.parent)) {\n        return !(emitStandardClassFields && getContainingClass(declaration) === getContainingClass(usage) && isUsedInFunctionOrInstanceProperty(usage, declaration));\n      }\n      return true;\n    }\n    if (usage.parent.kind === 282 /* ExportSpecifier */ || usage.parent.kind === 278 /* ExportAssignment */ && usage.parent.isExportEquals) {\n      return true;\n    }\n    if (usage.kind === 278 /* ExportAssignment */ && usage.isExportEquals) {\n      return true;\n    }\n    if (isUsedInFunctionOrInstanceProperty(usage, declaration)) {\n      if (emitStandardClassFields && getContainingClass(declaration) && (isPropertyDeclaration(declaration) || isParameterPropertyDeclaration(declaration, declaration.parent))) {\n        return !isPropertyImmediatelyReferencedWithinDeclaration(\n          declaration,\n          usage,\n          /*stopAtAnyPropertyDeclaration*/\n          true\n        );\n      } else {\n        return true;\n      }\n    }\n    return false;\n    function isImmediatelyUsedInInitializerOfBlockScopedVariable(declaration2, usage2) {\n      switch (declaration2.parent.parent.kind) {\n        case 244 /* VariableStatement */:\n        case 249 /* ForStatement */:\n        case 251 /* ForOfStatement */:\n          if (isSameScopeDescendentOf(usage2, declaration2, declContainer)) {\n            return true;\n          }\n          break;\n      }\n      const grandparent = declaration2.parent.parent;\n      return isForInOrOfStatement(grandparent) && isSameScopeDescendentOf(usage2, grandparent.expression, declContainer);\n    }\n    function isUsedInFunctionOrInstanceProperty(usage2, declaration2) {\n      return isUsedInFunctionOrInstancePropertyWorker(usage2, declaration2);\n    }\n    function isUsedInFunctionOrInstancePropertyWorker(usage2, declaration2) {\n      return !!findAncestor(usage2, (current) => {\n        if (current === declContainer) {\n          return \"quit\";\n        }\n        if (isFunctionLike(current)) {\n          return !getImmediatelyInvokedFunctionExpression(current);\n        }\n        if (isClassStaticBlockDeclaration(current)) {\n          return declaration2.pos < usage2.pos;\n        }\n        const propertyDeclaration = tryCast(current.parent, isPropertyDeclaration);\n        if (propertyDeclaration) {\n          const initializerOfProperty = propertyDeclaration.initializer === current;\n          if (initializerOfProperty) {\n            if (isStatic(current.parent)) {\n              if (declaration2.kind === 175 /* MethodDeclaration */) {\n                return true;\n              }\n              if (isPropertyDeclaration(declaration2) && getContainingClass(usage2) === getContainingClass(declaration2)) {\n                const propName = declaration2.name;\n                if (isIdentifier(propName) || isPrivateIdentifier(propName)) {\n                  const type = getTypeOfSymbol(getSymbolOfDeclaration(declaration2));\n                  const staticBlocks = filter(declaration2.parent.members, isClassStaticBlockDeclaration);\n                  if (isPropertyInitializedInStaticBlocks(propName, type, staticBlocks, declaration2.parent.pos, current.pos)) {\n                    return true;\n                  }\n                }\n              }\n            } else {\n              const isDeclarationInstanceProperty = declaration2.kind === 173 /* PropertyDeclaration */ && !isStatic(declaration2);\n              if (!isDeclarationInstanceProperty || getContainingClass(usage2) !== getContainingClass(declaration2)) {\n                return true;\n              }\n            }\n          }\n        }\n        const decorator = tryCast(current.parent, isDecorator);\n        if (decorator && decorator.expression === current) {\n          if (isParameter(decorator.parent)) {\n            return isUsedInFunctionOrInstancePropertyWorker(decorator.parent.parent.parent, declaration2) ? true : \"quit\";\n          }\n          if (isMethodDeclaration(decorator.parent)) {\n            return isUsedInFunctionOrInstancePropertyWorker(decorator.parent.parent, declaration2) ? true : \"quit\";\n          }\n        }\n        return false;\n      });\n    }\n    function isPropertyImmediatelyReferencedWithinDeclaration(declaration2, usage2, stopAtAnyPropertyDeclaration) {\n      if (usage2.end > declaration2.end) {\n        return false;\n      }\n      const ancestorChangingReferenceScope = findAncestor(usage2, (node) => {\n        if (node === declaration2) {\n          return \"quit\";\n        }\n        switch (node.kind) {\n          case 220 /* ArrowFunction */:\n            return true;\n          case 173 /* PropertyDeclaration */:\n            return stopAtAnyPropertyDeclaration && (isPropertyDeclaration(declaration2) && node.parent === declaration2.parent || isParameterPropertyDeclaration(declaration2, declaration2.parent) && node.parent === declaration2.parent.parent) ? \"quit\" : true;\n          case 242 /* Block */:\n            switch (node.parent.kind) {\n              case 178 /* GetAccessor */:\n              case 175 /* MethodDeclaration */:\n              case 179 /* SetAccessor */:\n                return true;\n              default:\n                return false;\n            }\n          default:\n            return false;\n        }\n      });\n      return ancestorChangingReferenceScope === void 0;\n    }\n  }\n  function getRequiresScopeChangeCache(node) {\n    return getNodeLinks(node).declarationRequiresScopeChange;\n  }\n  function setRequiresScopeChangeCache(node, value) {\n    getNodeLinks(node).declarationRequiresScopeChange = value;\n  }\n  function checkAndReportErrorForInvalidInitializer(errorLocation, name, propertyWithInvalidInitializer, result) {\n    if (!emitStandardClassFields) {\n      if (errorLocation && !result && checkAndReportErrorForMissingPrefix(errorLocation, name, name)) {\n        return true;\n      }\n      error2(\n        errorLocation,\n        errorLocation && propertyWithInvalidInitializer.type && textRangeContainsPositionInclusive(propertyWithInvalidInitializer.type, errorLocation.pos) ? Diagnostics.Type_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor : Diagnostics.Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor,\n        declarationNameToString(propertyWithInvalidInitializer.name),\n        diagnosticName(name)\n      );\n      return true;\n    }\n    return false;\n  }\n  function onFailedToResolveSymbol(errorLocation, nameArg, meaning, nameNotFoundMessage) {\n    const name = isString(nameArg) ? nameArg : nameArg.escapedText;\n    addLazyDiagnostic(() => {\n      if (!errorLocation || errorLocation.parent.kind !== 325 /* JSDocLink */ && !checkAndReportErrorForMissingPrefix(errorLocation, name, nameArg) && !checkAndReportErrorForExtendingInterface(errorLocation) && !checkAndReportErrorForUsingTypeAsNamespace(errorLocation, name, meaning) && !checkAndReportErrorForExportingPrimitiveType(errorLocation, name) && !checkAndReportErrorForUsingNamespaceAsTypeOrValue(errorLocation, name, meaning) && !checkAndReportErrorForUsingTypeAsValue(errorLocation, name, meaning) && !checkAndReportErrorForUsingValueAsType(errorLocation, name, meaning)) {\n        let suggestion;\n        let suggestedLib;\n        if (nameArg) {\n          suggestedLib = getSuggestedLibForNonExistentName(nameArg);\n          if (suggestedLib) {\n            error2(errorLocation, nameNotFoundMessage, diagnosticName(nameArg), suggestedLib);\n          }\n        }\n        if (!suggestedLib && suggestionCount < maximumSuggestionCount) {\n          suggestion = getSuggestedSymbolForNonexistentSymbol(errorLocation, name, meaning);\n          const isGlobalScopeAugmentationDeclaration = (suggestion == null ? void 0 : suggestion.valueDeclaration) && isAmbientModule(suggestion.valueDeclaration) && isGlobalScopeAugmentation(suggestion.valueDeclaration);\n          if (isGlobalScopeAugmentationDeclaration) {\n            suggestion = void 0;\n          }\n          if (suggestion) {\n            const suggestionName = symbolToString(suggestion);\n            const isUncheckedJS = isUncheckedJSSuggestion(\n              errorLocation,\n              suggestion,\n              /*excludeClasses*/\n              false\n            );\n            const message = meaning === 1920 /* Namespace */ || nameArg && typeof nameArg !== \"string\" && nodeIsSynthesized(nameArg) ? Diagnostics.Cannot_find_namespace_0_Did_you_mean_1 : isUncheckedJS ? Diagnostics.Could_not_find_name_0_Did_you_mean_1 : Diagnostics.Cannot_find_name_0_Did_you_mean_1;\n            const diagnostic = createError(errorLocation, message, diagnosticName(nameArg), suggestionName);\n            diagnostic.canonicalHead = getCanonicalDiagnostic(nameNotFoundMessage, diagnosticName(nameArg));\n            addErrorOrSuggestion(!isUncheckedJS, diagnostic);\n            if (suggestion.valueDeclaration) {\n              addRelatedInfo(\n                diagnostic,\n                createDiagnosticForNode(suggestion.valueDeclaration, Diagnostics._0_is_declared_here, suggestionName)\n              );\n            }\n          }\n        }\n        if (!suggestion && !suggestedLib && nameArg) {\n          error2(errorLocation, nameNotFoundMessage, diagnosticName(nameArg));\n        }\n        suggestionCount++;\n      }\n    });\n  }\n  function onSuccessfullyResolvedSymbol(errorLocation, result, meaning, lastLocation, associatedDeclarationForContainingInitializerOrBindingName, withinDeferredContext) {\n    addLazyDiagnostic(() => {\n      var _a;\n      const name = result.escapedName;\n      const isInExternalModule = lastLocation && isSourceFile(lastLocation) && isExternalOrCommonJsModule(lastLocation);\n      if (errorLocation && (meaning & 2 /* BlockScopedVariable */ || (meaning & 32 /* Class */ || meaning & 384 /* Enum */) && (meaning & 111551 /* Value */) === 111551 /* Value */)) {\n        const exportOrLocalSymbol = getExportSymbolOfValueSymbolIfExported(result);\n        if (exportOrLocalSymbol.flags & 2 /* BlockScopedVariable */ || exportOrLocalSymbol.flags & 32 /* Class */ || exportOrLocalSymbol.flags & 384 /* Enum */) {\n          checkResolvedBlockScopedVariable(exportOrLocalSymbol, errorLocation);\n        }\n      }\n      if (isInExternalModule && (meaning & 111551 /* Value */) === 111551 /* Value */ && !(errorLocation.flags & 16777216 /* JSDoc */)) {\n        const merged = getMergedSymbol(result);\n        if (length(merged.declarations) && every(merged.declarations, (d) => isNamespaceExportDeclaration(d) || isSourceFile(d) && !!d.symbol.globalExports)) {\n          errorOrSuggestion(!compilerOptions.allowUmdGlobalAccess, errorLocation, Diagnostics._0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead, unescapeLeadingUnderscores(name));\n        }\n      }\n      if (associatedDeclarationForContainingInitializerOrBindingName && !withinDeferredContext && (meaning & 111551 /* Value */) === 111551 /* Value */) {\n        const candidate = getMergedSymbol(getLateBoundSymbol(result));\n        const root = getRootDeclaration(associatedDeclarationForContainingInitializerOrBindingName);\n        if (candidate === getSymbolOfDeclaration(associatedDeclarationForContainingInitializerOrBindingName)) {\n          error2(errorLocation, Diagnostics.Parameter_0_cannot_reference_itself, declarationNameToString(associatedDeclarationForContainingInitializerOrBindingName.name));\n        } else if (candidate.valueDeclaration && candidate.valueDeclaration.pos > associatedDeclarationForContainingInitializerOrBindingName.pos && root.parent.locals && getSymbol2(root.parent.locals, candidate.escapedName, meaning) === candidate) {\n          error2(errorLocation, Diagnostics.Parameter_0_cannot_reference_identifier_1_declared_after_it, declarationNameToString(associatedDeclarationForContainingInitializerOrBindingName.name), declarationNameToString(errorLocation));\n        }\n      }\n      if (errorLocation && meaning & 111551 /* Value */ && result.flags & 2097152 /* Alias */ && !(result.flags & 111551 /* Value */) && !isValidTypeOnlyAliasUseSite(errorLocation)) {\n        const typeOnlyDeclaration = getTypeOnlyAliasDeclaration(result, 111551 /* Value */);\n        if (typeOnlyDeclaration) {\n          const message = typeOnlyDeclaration.kind === 282 /* ExportSpecifier */ || typeOnlyDeclaration.kind === 279 /* ExportDeclaration */ || typeOnlyDeclaration.kind === 281 /* NamespaceExport */ ? Diagnostics._0_cannot_be_used_as_a_value_because_it_was_exported_using_export_type : Diagnostics._0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type;\n          const unescapedName = unescapeLeadingUnderscores(name);\n          addTypeOnlyDeclarationRelatedInfo(\n            error2(errorLocation, message, unescapedName),\n            typeOnlyDeclaration,\n            unescapedName\n          );\n        }\n      }\n      if (compilerOptions.isolatedModules && result && isInExternalModule && (meaning & 111551 /* Value */) === 111551 /* Value */) {\n        const isGlobal = getSymbol2(globals, name, meaning) === result;\n        const nonValueSymbol = isGlobal && isSourceFile(lastLocation) && lastLocation.locals && getSymbol2(lastLocation.locals, name, ~111551 /* Value */);\n        if (nonValueSymbol) {\n          const importDecl = (_a = nonValueSymbol.declarations) == null ? void 0 : _a.find((d) => d.kind === 277 /* ImportSpecifier */ || d.kind === 274 /* ImportClause */ || d.kind === 275 /* NamespaceImport */ || d.kind === 272 /* ImportEqualsDeclaration */);\n          if (importDecl && !isTypeOnlyImportDeclaration(importDecl)) {\n            error2(importDecl, Diagnostics.Import_0_conflicts_with_global_value_used_in_this_file_so_must_be_declared_with_a_type_only_import_when_isolatedModules_is_enabled, unescapeLeadingUnderscores(name));\n          }\n        }\n      }\n    });\n  }\n  function addTypeOnlyDeclarationRelatedInfo(diagnostic, typeOnlyDeclaration, unescapedName) {\n    if (!typeOnlyDeclaration) return diagnostic;\n    return addRelatedInfo(\n      diagnostic,\n      createDiagnosticForNode(\n        typeOnlyDeclaration,\n        typeOnlyDeclaration.kind === 282 /* ExportSpecifier */ || typeOnlyDeclaration.kind === 279 /* ExportDeclaration */ || typeOnlyDeclaration.kind === 281 /* NamespaceExport */ ? Diagnostics._0_was_exported_here : Diagnostics._0_was_imported_here,\n        unescapedName\n      )\n    );\n  }\n  function diagnosticName(nameArg) {\n    return isString(nameArg) ? unescapeLeadingUnderscores(nameArg) : declarationNameToString(nameArg);\n  }\n  function checkAndReportErrorForMissingPrefix(errorLocation, name, nameArg) {\n    if (!isIdentifier(errorLocation) || errorLocation.escapedText !== name || isTypeReferenceIdentifier(errorLocation) || isInTypeQuery(errorLocation)) {\n      return false;\n    }\n    const container = getThisContainer(\n      errorLocation,\n      /*includeArrowFunctions*/\n      false,\n      /*includeClassComputedPropertyName*/\n      false\n    );\n    let location = container;\n    while (location) {\n      if (isClassLike(location.parent)) {\n        const classSymbol = getSymbolOfDeclaration(location.parent);\n        if (!classSymbol) {\n          break;\n        }\n        const constructorType = getTypeOfSymbol(classSymbol);\n        if (getPropertyOfType(constructorType, name)) {\n          error2(errorLocation, Diagnostics.Cannot_find_name_0_Did_you_mean_the_static_member_1_0, diagnosticName(nameArg), symbolToString(classSymbol));\n          return true;\n        }\n        if (location === container && !isStatic(location)) {\n          const instanceType = getDeclaredTypeOfSymbol(classSymbol).thisType;\n          if (getPropertyOfType(instanceType, name)) {\n            error2(errorLocation, Diagnostics.Cannot_find_name_0_Did_you_mean_the_instance_member_this_0, diagnosticName(nameArg));\n            return true;\n          }\n        }\n      }\n      location = location.parent;\n    }\n    return false;\n  }\n  function checkAndReportErrorForExtendingInterface(errorLocation) {\n    const expression = getEntityNameForExtendingInterface(errorLocation);\n    if (expression && resolveEntityName(\n      expression,\n      64 /* Interface */,\n      /*ignoreErrors*/\n      true\n    )) {\n      error2(errorLocation, Diagnostics.Cannot_extend_an_interface_0_Did_you_mean_implements, getTextOfNode(expression));\n      return true;\n    }\n    return false;\n  }\n  function getEntityNameForExtendingInterface(node) {\n    switch (node.kind) {\n      case 80 /* Identifier */:\n      case 212 /* PropertyAccessExpression */:\n        return node.parent ? getEntityNameForExtendingInterface(node.parent) : void 0;\n      case 234 /* ExpressionWithTypeArguments */:\n        if (isEntityNameExpression(node.expression)) {\n          return node.expression;\n        }\n      // falls through\n      default:\n        return void 0;\n    }\n  }\n  function checkAndReportErrorForUsingTypeAsNamespace(errorLocation, name, meaning) {\n    const namespaceMeaning = 1920 /* Namespace */ | (isInJSFile(errorLocation) ? 111551 /* Value */ : 0);\n    if (meaning === namespaceMeaning) {\n      const symbol = resolveSymbol(resolveName(\n        errorLocation,\n        name,\n        788968 /* Type */ & ~namespaceMeaning,\n        /*nameNotFoundMessage*/\n        void 0,\n        /*isUse*/\n        false\n      ));\n      const parent2 = errorLocation.parent;\n      if (symbol) {\n        if (isQualifiedName(parent2)) {\n          Debug.assert(parent2.left === errorLocation, \"Should only be resolving left side of qualified name as a namespace\");\n          const propName = parent2.right.escapedText;\n          const propType = getPropertyOfType(getDeclaredTypeOfSymbol(symbol), propName);\n          if (propType) {\n            error2(\n              parent2,\n              Diagnostics.Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_property_1_in_0_with_0_1,\n              unescapeLeadingUnderscores(name),\n              unescapeLeadingUnderscores(propName)\n            );\n            return true;\n          }\n        }\n        error2(errorLocation, Diagnostics._0_only_refers_to_a_type_but_is_being_used_as_a_namespace_here, unescapeLeadingUnderscores(name));\n        return true;\n      }\n    }\n    return false;\n  }\n  function checkAndReportErrorForUsingValueAsType(errorLocation, name, meaning) {\n    if (meaning & (788968 /* Type */ & ~1920 /* Namespace */)) {\n      const symbol = resolveSymbol(resolveName(\n        errorLocation,\n        name,\n        ~788968 /* Type */ & 111551 /* Value */,\n        /*nameNotFoundMessage*/\n        void 0,\n        /*isUse*/\n        false\n      ));\n      if (symbol && !(symbol.flags & 1920 /* Namespace */)) {\n        error2(errorLocation, Diagnostics._0_refers_to_a_value_but_is_being_used_as_a_type_here_Did_you_mean_typeof_0, unescapeLeadingUnderscores(name));\n        return true;\n      }\n    }\n    return false;\n  }\n  function isPrimitiveTypeName(name) {\n    return name === \"any\" || name === \"string\" || name === \"number\" || name === \"boolean\" || name === \"never\" || name === \"unknown\";\n  }\n  function checkAndReportErrorForExportingPrimitiveType(errorLocation, name) {\n    if (isPrimitiveTypeName(name) && errorLocation.parent.kind === 282 /* ExportSpecifier */) {\n      error2(errorLocation, Diagnostics.Cannot_export_0_Only_local_declarations_can_be_exported_from_a_module, name);\n      return true;\n    }\n    return false;\n  }\n  function checkAndReportErrorForUsingTypeAsValue(errorLocation, name, meaning) {\n    if (meaning & 111551 /* Value */) {\n      if (isPrimitiveTypeName(name)) {\n        const grandparent = errorLocation.parent.parent;\n        if (grandparent && grandparent.parent && isHeritageClause(grandparent)) {\n          const heritageKind = grandparent.token;\n          const containerKind = grandparent.parent.kind;\n          if (containerKind === 265 /* InterfaceDeclaration */ && heritageKind === 96 /* ExtendsKeyword */) {\n            error2(errorLocation, Diagnostics.An_interface_cannot_extend_a_primitive_type_like_0_It_can_only_extend_other_named_object_types, unescapeLeadingUnderscores(name));\n          } else if (isClassLike(grandparent.parent) && heritageKind === 96 /* ExtendsKeyword */) {\n            error2(errorLocation, Diagnostics.A_class_cannot_extend_a_primitive_type_like_0_Classes_can_only_extend_constructable_values, unescapeLeadingUnderscores(name));\n          } else if (isClassLike(grandparent.parent) && heritageKind === 119 /* ImplementsKeyword */) {\n            error2(errorLocation, Diagnostics.A_class_cannot_implement_a_primitive_type_like_0_It_can_only_implement_other_named_object_types, unescapeLeadingUnderscores(name));\n          }\n        } else {\n          error2(errorLocation, Diagnostics._0_only_refers_to_a_type_but_is_being_used_as_a_value_here, unescapeLeadingUnderscores(name));\n        }\n        return true;\n      }\n      const symbol = resolveSymbol(resolveName(\n        errorLocation,\n        name,\n        788968 /* Type */ & ~111551 /* Value */,\n        /*nameNotFoundMessage*/\n        void 0,\n        /*isUse*/\n        false\n      ));\n      const allFlags = symbol && getSymbolFlags(symbol);\n      if (symbol && allFlags !== void 0 && !(allFlags & 111551 /* Value */)) {\n        const rawName = unescapeLeadingUnderscores(name);\n        if (isES2015OrLaterConstructorName(name)) {\n          error2(errorLocation, Diagnostics._0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_es2015_or_later, rawName);\n        } else if (maybeMappedType(errorLocation, symbol)) {\n          error2(errorLocation, Diagnostics._0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Did_you_mean_to_use_1_in_0, rawName, rawName === \"K\" ? \"P\" : \"K\");\n        } else {\n          error2(errorLocation, Diagnostics._0_only_refers_to_a_type_but_is_being_used_as_a_value_here, rawName);\n        }\n        return true;\n      }\n    }\n    return false;\n  }\n  function maybeMappedType(node, symbol) {\n    const container = findAncestor(node.parent, (n) => isComputedPropertyName(n) || isPropertySignature(n) ? false : isTypeLiteralNode(n) || \"quit\");\n    if (container && container.members.length === 1) {\n      const type = getDeclaredTypeOfSymbol(symbol);\n      return !!(type.flags & 1048576 /* Union */) && allTypesAssignableToKind(\n        type,\n        384 /* StringOrNumberLiteral */,\n        /*strict*/\n        true\n      );\n    }\n    return false;\n  }\n  function isES2015OrLaterConstructorName(n) {\n    switch (n) {\n      case \"Promise\":\n      case \"Symbol\":\n      case \"Map\":\n      case \"WeakMap\":\n      case \"Set\":\n      case \"WeakSet\":\n        return true;\n    }\n    return false;\n  }\n  function checkAndReportErrorForUsingNamespaceAsTypeOrValue(errorLocation, name, meaning) {\n    if (meaning & (111551 /* Value */ & ~788968 /* Type */)) {\n      const symbol = resolveSymbol(resolveName(\n        errorLocation,\n        name,\n        1024 /* NamespaceModule */,\n        /*nameNotFoundMessage*/\n        void 0,\n        /*isUse*/\n        false\n      ));\n      if (symbol) {\n        error2(\n          errorLocation,\n          Diagnostics.Cannot_use_namespace_0_as_a_value,\n          unescapeLeadingUnderscores(name)\n        );\n        return true;\n      }\n    } else if (meaning & (788968 /* Type */ & ~111551 /* Value */)) {\n      const symbol = resolveSymbol(resolveName(\n        errorLocation,\n        name,\n        1536 /* Module */,\n        /*nameNotFoundMessage*/\n        void 0,\n        /*isUse*/\n        false\n      ));\n      if (symbol) {\n        error2(errorLocation, Diagnostics.Cannot_use_namespace_0_as_a_type, unescapeLeadingUnderscores(name));\n        return true;\n      }\n    }\n    return false;\n  }\n  function checkResolvedBlockScopedVariable(result, errorLocation) {\n    var _a;\n    Debug.assert(!!(result.flags & 2 /* BlockScopedVariable */ || result.flags & 32 /* Class */ || result.flags & 384 /* Enum */));\n    if (result.flags & (16 /* Function */ | 1 /* FunctionScopedVariable */ | 67108864 /* Assignment */) && result.flags & 32 /* Class */) {\n      return;\n    }\n    const declaration = (_a = result.declarations) == null ? void 0 : _a.find(\n      (d) => isBlockOrCatchScoped(d) || isClassLike(d) || d.kind === 267 /* EnumDeclaration */\n    );\n    if (declaration === void 0) return Debug.fail(\"checkResolvedBlockScopedVariable could not find block-scoped declaration\");\n    if (!(declaration.flags & 33554432 /* Ambient */) && !isBlockScopedNameDeclaredBeforeUse(declaration, errorLocation)) {\n      let diagnosticMessage;\n      const declarationName = declarationNameToString(getNameOfDeclaration(declaration));\n      if (result.flags & 2 /* BlockScopedVariable */) {\n        diagnosticMessage = error2(errorLocation, Diagnostics.Block_scoped_variable_0_used_before_its_declaration, declarationName);\n      } else if (result.flags & 32 /* Class */) {\n        diagnosticMessage = error2(errorLocation, Diagnostics.Class_0_used_before_its_declaration, declarationName);\n      } else if (result.flags & 256 /* RegularEnum */) {\n        diagnosticMessage = error2(errorLocation, Diagnostics.Enum_0_used_before_its_declaration, declarationName);\n      } else {\n        Debug.assert(!!(result.flags & 128 /* ConstEnum */));\n        if (getIsolatedModules(compilerOptions)) {\n          diagnosticMessage = error2(errorLocation, Diagnostics.Enum_0_used_before_its_declaration, declarationName);\n        }\n      }\n      if (diagnosticMessage) {\n        addRelatedInfo(diagnosticMessage, createDiagnosticForNode(declaration, Diagnostics._0_is_declared_here, declarationName));\n      }\n    }\n  }\n  function isSameScopeDescendentOf(initial, parent2, stopAt) {\n    return !!parent2 && !!findAncestor(initial, (n) => n === parent2 || (n === stopAt || isFunctionLike(n) && (!getImmediatelyInvokedFunctionExpression(n) || getFunctionFlags(n) & 3 /* AsyncGenerator */) ? \"quit\" : false));\n  }\n  function getAnyImportSyntax(node) {\n    switch (node.kind) {\n      case 272 /* ImportEqualsDeclaration */:\n        return node;\n      case 274 /* ImportClause */:\n        return node.parent;\n      case 275 /* NamespaceImport */:\n        return node.parent.parent;\n      case 277 /* ImportSpecifier */:\n        return node.parent.parent.parent;\n      default:\n        return void 0;\n    }\n  }\n  function getDeclarationOfAliasSymbol(symbol) {\n    return symbol.declarations && findLast(symbol.declarations, isAliasSymbolDeclaration);\n  }\n  function isAliasSymbolDeclaration(node) {\n    return node.kind === 272 /* ImportEqualsDeclaration */ || node.kind === 271 /* NamespaceExportDeclaration */ || node.kind === 274 /* ImportClause */ && !!node.name || node.kind === 275 /* NamespaceImport */ || node.kind === 281 /* NamespaceExport */ || node.kind === 277 /* ImportSpecifier */ || node.kind === 282 /* ExportSpecifier */ || node.kind === 278 /* ExportAssignment */ && exportAssignmentIsAlias(node) || isBinaryExpression(node) && getAssignmentDeclarationKind(node) === 2 /* ModuleExports */ && exportAssignmentIsAlias(node) || isAccessExpression(node) && isBinaryExpression(node.parent) && node.parent.left === node && node.parent.operatorToken.kind === 64 /* EqualsToken */ && isAliasableOrJsExpression(node.parent.right) || node.kind === 305 /* ShorthandPropertyAssignment */ || node.kind === 304 /* PropertyAssignment */ && isAliasableOrJsExpression(node.initializer) || node.kind === 261 /* VariableDeclaration */ && isVariableDeclarationInitializedToBareOrAccessedRequire(node) || node.kind === 209 /* BindingElement */ && isVariableDeclarationInitializedToBareOrAccessedRequire(node.parent.parent);\n  }\n  function isAliasableOrJsExpression(e) {\n    return isAliasableExpression(e) || isFunctionExpression(e) && isJSConstructor(e);\n  }\n  function getTargetOfImportEqualsDeclaration(node, dontResolveAlias) {\n    const commonJSPropertyAccess = getCommonJSPropertyAccess(node);\n    if (commonJSPropertyAccess) {\n      const name = getLeftmostAccessExpression(commonJSPropertyAccess.expression).arguments[0];\n      return isIdentifier(commonJSPropertyAccess.name) ? resolveSymbol(getPropertyOfType(resolveExternalModuleTypeByLiteral(name), commonJSPropertyAccess.name.escapedText)) : void 0;\n    }\n    if (isVariableDeclaration(node) || node.moduleReference.kind === 284 /* ExternalModuleReference */) {\n      const immediate = resolveExternalModuleName(\n        node,\n        getExternalModuleRequireArgument(node) || getExternalModuleImportEqualsDeclarationExpression(node)\n      );\n      const resolved2 = resolveExternalModuleSymbol(immediate);\n      if (resolved2 && 102 /* Node20 */ <= moduleKind && moduleKind <= 199 /* NodeNext */) {\n        const moduleExports = getExportOfModule(resolved2, \"module.exports\", node, dontResolveAlias);\n        if (moduleExports) {\n          return moduleExports;\n        }\n      }\n      markSymbolOfAliasDeclarationIfTypeOnly(\n        node,\n        immediate,\n        resolved2,\n        /*overwriteEmpty*/\n        false\n      );\n      return resolved2;\n    }\n    const resolved = getSymbolOfPartOfRightHandSideOfImportEquals(node.moduleReference, dontResolveAlias);\n    checkAndReportErrorForResolvingImportAliasToTypeOnlySymbol(node, resolved);\n    return resolved;\n  }\n  function checkAndReportErrorForResolvingImportAliasToTypeOnlySymbol(node, resolved) {\n    if (markSymbolOfAliasDeclarationIfTypeOnly(\n      node,\n      /*immediateTarget*/\n      void 0,\n      resolved,\n      /*overwriteEmpty*/\n      false\n    ) && !node.isTypeOnly) {\n      const typeOnlyDeclaration = getTypeOnlyAliasDeclaration(getSymbolOfDeclaration(node));\n      const isExport = typeOnlyDeclaration.kind === 282 /* ExportSpecifier */ || typeOnlyDeclaration.kind === 279 /* ExportDeclaration */;\n      const message = isExport ? Diagnostics.An_import_alias_cannot_reference_a_declaration_that_was_exported_using_export_type : Diagnostics.An_import_alias_cannot_reference_a_declaration_that_was_imported_using_import_type;\n      const relatedMessage = isExport ? Diagnostics._0_was_exported_here : Diagnostics._0_was_imported_here;\n      const name = typeOnlyDeclaration.kind === 279 /* ExportDeclaration */ ? \"*\" : moduleExportNameTextUnescaped(typeOnlyDeclaration.name);\n      addRelatedInfo(error2(node.moduleReference, message), createDiagnosticForNode(typeOnlyDeclaration, relatedMessage, name));\n    }\n  }\n  function resolveExportByName(moduleSymbol, name, sourceNode, dontResolveAlias) {\n    const exportValue = moduleSymbol.exports.get(\"export=\" /* ExportEquals */);\n    const exportSymbol = exportValue ? getPropertyOfType(\n      getTypeOfSymbol(exportValue),\n      name,\n      /*skipObjectFunctionPropertyAugment*/\n      true\n    ) : moduleSymbol.exports.get(name);\n    const resolved = resolveSymbol(exportSymbol, dontResolveAlias);\n    markSymbolOfAliasDeclarationIfTypeOnly(\n      sourceNode,\n      exportSymbol,\n      resolved,\n      /*overwriteEmpty*/\n      false\n    );\n    return resolved;\n  }\n  function isSyntacticDefault(node) {\n    return isExportAssignment(node) && !node.isExportEquals || hasSyntacticModifier(node, 2048 /* Default */) || isExportSpecifier(node) || isNamespaceExport(node);\n  }\n  function getEmitSyntaxForModuleSpecifierExpression(usage) {\n    return isStringLiteralLike(usage) ? host.getEmitSyntaxForUsageLocation(getSourceFileOfNode(usage), usage) : void 0;\n  }\n  function isESMFormatImportImportingCommonjsFormatFile(usageMode, targetMode) {\n    return usageMode === 99 /* ESNext */ && targetMode === 1 /* CommonJS */;\n  }\n  function isOnlyImportableAsDefault(usage, resolvedModule) {\n    if (100 /* Node16 */ <= moduleKind && moduleKind <= 199 /* NodeNext */) {\n      const usageMode = getEmitSyntaxForModuleSpecifierExpression(usage);\n      if (usageMode === 99 /* ESNext */) {\n        resolvedModule ?? (resolvedModule = resolveExternalModuleName(\n          usage,\n          usage,\n          /*ignoreErrors*/\n          true\n        ));\n        const targetFile = resolvedModule && getSourceFileOfModule(resolvedModule);\n        return targetFile && (isJsonSourceFile(targetFile) || getDeclarationFileExtension(targetFile.fileName) === \".d.json.ts\");\n      }\n    }\n    return false;\n  }\n  function canHaveSyntheticDefault(file, moduleSymbol, dontResolveAlias, usage) {\n    const usageMode = file && getEmitSyntaxForModuleSpecifierExpression(usage);\n    if (file && usageMode !== void 0) {\n      const targetMode = host.getImpliedNodeFormatForEmit(file);\n      if (usageMode === 99 /* ESNext */ && targetMode === 1 /* CommonJS */ && 100 /* Node16 */ <= moduleKind && moduleKind <= 199 /* NodeNext */) {\n        return true;\n      }\n      if (usageMode === 99 /* ESNext */ && targetMode === 99 /* ESNext */) {\n        return false;\n      }\n    }\n    if (!allowSyntheticDefaultImports) {\n      return false;\n    }\n    if (!file || file.isDeclarationFile) {\n      const defaultExportSymbol = resolveExportByName(\n        moduleSymbol,\n        \"default\" /* Default */,\n        /*sourceNode*/\n        void 0,\n        /*dontResolveAlias*/\n        true\n      );\n      if (defaultExportSymbol && some(defaultExportSymbol.declarations, isSyntacticDefault)) {\n        return false;\n      }\n      if (resolveExportByName(\n        moduleSymbol,\n        escapeLeadingUnderscores(\"__esModule\"),\n        /*sourceNode*/\n        void 0,\n        dontResolveAlias\n      )) {\n        return false;\n      }\n      return true;\n    }\n    if (!isSourceFileJS(file)) {\n      return hasExportAssignmentSymbol(moduleSymbol);\n    }\n    return typeof file.externalModuleIndicator !== \"object\" && !resolveExportByName(\n      moduleSymbol,\n      escapeLeadingUnderscores(\"__esModule\"),\n      /*sourceNode*/\n      void 0,\n      dontResolveAlias\n    );\n  }\n  function getTargetOfImportClause(node, dontResolveAlias) {\n    const moduleSymbol = resolveExternalModuleName(node, node.parent.moduleSpecifier);\n    if (moduleSymbol) {\n      return getTargetofModuleDefault(moduleSymbol, node, dontResolveAlias);\n    }\n  }\n  function getTargetofModuleDefault(moduleSymbol, node, dontResolveAlias) {\n    var _a;\n    const file = (_a = moduleSymbol.declarations) == null ? void 0 : _a.find(isSourceFile);\n    const specifier = getModuleSpecifierForImportOrExport(node);\n    let exportDefaultSymbol;\n    let exportModuleDotExportsSymbol;\n    if (isShorthandAmbientModuleSymbol(moduleSymbol)) {\n      exportDefaultSymbol = moduleSymbol;\n    } else if (file && specifier && 102 /* Node20 */ <= moduleKind && moduleKind <= 199 /* NodeNext */ && getEmitSyntaxForModuleSpecifierExpression(specifier) === 1 /* CommonJS */ && host.getImpliedNodeFormatForEmit(file) === 99 /* ESNext */ && (exportModuleDotExportsSymbol = resolveExportByName(moduleSymbol, \"module.exports\", node, dontResolveAlias))) {\n      if (!getESModuleInterop(compilerOptions)) {\n        error2(node.name, Diagnostics.Module_0_can_only_be_default_imported_using_the_1_flag, symbolToString(moduleSymbol), \"esModuleInterop\");\n        return void 0;\n      }\n      markSymbolOfAliasDeclarationIfTypeOnly(\n        node,\n        exportModuleDotExportsSymbol,\n        /*finalTarget*/\n        void 0,\n        /*overwriteEmpty*/\n        false\n      );\n      return exportModuleDotExportsSymbol;\n    } else {\n      exportDefaultSymbol = resolveExportByName(moduleSymbol, \"default\" /* Default */, node, dontResolveAlias);\n    }\n    if (!specifier) {\n      return exportDefaultSymbol;\n    }\n    const hasDefaultOnly = isOnlyImportableAsDefault(specifier, moduleSymbol);\n    const hasSyntheticDefault = canHaveSyntheticDefault(file, moduleSymbol, dontResolveAlias, specifier);\n    if (!exportDefaultSymbol && !hasSyntheticDefault && !hasDefaultOnly) {\n      if (hasExportAssignmentSymbol(moduleSymbol) && !allowSyntheticDefaultImports) {\n        const compilerOptionName = moduleKind >= 5 /* ES2015 */ ? \"allowSyntheticDefaultImports\" : \"esModuleInterop\";\n        const exportEqualsSymbol = moduleSymbol.exports.get(\"export=\" /* ExportEquals */);\n        const exportAssignment = exportEqualsSymbol.valueDeclaration;\n        const err = error2(node.name, Diagnostics.Module_0_can_only_be_default_imported_using_the_1_flag, symbolToString(moduleSymbol), compilerOptionName);\n        if (exportAssignment) {\n          addRelatedInfo(\n            err,\n            createDiagnosticForNode(\n              exportAssignment,\n              Diagnostics.This_module_is_declared_with_export_and_can_only_be_used_with_a_default_import_when_using_the_0_flag,\n              compilerOptionName\n            )\n          );\n        }\n      } else if (isImportClause(node)) {\n        reportNonDefaultExport(moduleSymbol, node);\n      } else {\n        errorNoModuleMemberSymbol(moduleSymbol, moduleSymbol, node, isImportOrExportSpecifier(node) && node.propertyName || node.name);\n      }\n    } else if (hasSyntheticDefault || hasDefaultOnly) {\n      const resolved = resolveExternalModuleSymbol(moduleSymbol, dontResolveAlias) || resolveSymbol(moduleSymbol, dontResolveAlias);\n      markSymbolOfAliasDeclarationIfTypeOnly(\n        node,\n        moduleSymbol,\n        resolved,\n        /*overwriteEmpty*/\n        false\n      );\n      return resolved;\n    }\n    markSymbolOfAliasDeclarationIfTypeOnly(\n      node,\n      exportDefaultSymbol,\n      /*finalTarget*/\n      void 0,\n      /*overwriteEmpty*/\n      false\n    );\n    return exportDefaultSymbol;\n  }\n  function getModuleSpecifierForImportOrExport(node) {\n    switch (node.kind) {\n      case 274 /* ImportClause */:\n        return node.parent.moduleSpecifier;\n      case 272 /* ImportEqualsDeclaration */:\n        return isExternalModuleReference(node.moduleReference) ? node.moduleReference.expression : void 0;\n      case 275 /* NamespaceImport */:\n        return node.parent.parent.moduleSpecifier;\n      case 277 /* ImportSpecifier */:\n        return node.parent.parent.parent.moduleSpecifier;\n      case 282 /* ExportSpecifier */:\n        return node.parent.parent.moduleSpecifier;\n      default:\n        return Debug.assertNever(node);\n    }\n  }\n  function reportNonDefaultExport(moduleSymbol, node) {\n    var _a, _b, _c;\n    if ((_a = moduleSymbol.exports) == null ? void 0 : _a.has(node.symbol.escapedName)) {\n      error2(\n        node.name,\n        Diagnostics.Module_0_has_no_default_export_Did_you_mean_to_use_import_1_from_0_instead,\n        symbolToString(moduleSymbol),\n        symbolToString(node.symbol)\n      );\n    } else {\n      const diagnostic = error2(node.name, Diagnostics.Module_0_has_no_default_export, symbolToString(moduleSymbol));\n      const exportStar = (_b = moduleSymbol.exports) == null ? void 0 : _b.get(\"__export\" /* ExportStar */);\n      if (exportStar) {\n        const defaultExport = (_c = exportStar.declarations) == null ? void 0 : _c.find(\n          (decl) => {\n            var _a2, _b2;\n            return !!(isExportDeclaration(decl) && decl.moduleSpecifier && ((_b2 = (_a2 = resolveExternalModuleName(decl, decl.moduleSpecifier)) == null ? void 0 : _a2.exports) == null ? void 0 : _b2.has(\"default\" /* Default */)));\n          }\n        );\n        if (defaultExport) {\n          addRelatedInfo(diagnostic, createDiagnosticForNode(defaultExport, Diagnostics.export_Asterisk_does_not_re_export_a_default));\n        }\n      }\n    }\n  }\n  function getTargetOfNamespaceImport(node, dontResolveAlias) {\n    const moduleSpecifier = node.parent.parent.moduleSpecifier;\n    const immediate = resolveExternalModuleName(node, moduleSpecifier);\n    const resolved = resolveESModuleSymbol(\n      immediate,\n      moduleSpecifier,\n      dontResolveAlias,\n      /*suppressInteropError*/\n      false\n    );\n    markSymbolOfAliasDeclarationIfTypeOnly(\n      node,\n      immediate,\n      resolved,\n      /*overwriteEmpty*/\n      false\n    );\n    return resolved;\n  }\n  function getTargetOfNamespaceExport(node, dontResolveAlias) {\n    const moduleSpecifier = node.parent.moduleSpecifier;\n    const immediate = moduleSpecifier && resolveExternalModuleName(node, moduleSpecifier);\n    const resolved = moduleSpecifier && resolveESModuleSymbol(\n      immediate,\n      moduleSpecifier,\n      dontResolveAlias,\n      /*suppressInteropError*/\n      false\n    );\n    markSymbolOfAliasDeclarationIfTypeOnly(\n      node,\n      immediate,\n      resolved,\n      /*overwriteEmpty*/\n      false\n    );\n    return resolved;\n  }\n  function combineValueAndTypeSymbols(valueSymbol, typeSymbol) {\n    if (valueSymbol === unknownSymbol && typeSymbol === unknownSymbol) {\n      return unknownSymbol;\n    }\n    if (valueSymbol.flags & (788968 /* Type */ | 1920 /* Namespace */)) {\n      return valueSymbol;\n    }\n    const result = createSymbol(valueSymbol.flags | typeSymbol.flags, valueSymbol.escapedName);\n    Debug.assert(valueSymbol.declarations || typeSymbol.declarations);\n    result.declarations = deduplicate(concatenate(valueSymbol.declarations, typeSymbol.declarations), equateValues);\n    result.parent = valueSymbol.parent || typeSymbol.parent;\n    if (valueSymbol.valueDeclaration) result.valueDeclaration = valueSymbol.valueDeclaration;\n    if (typeSymbol.members) result.members = new Map(typeSymbol.members);\n    if (valueSymbol.exports) result.exports = new Map(valueSymbol.exports);\n    return result;\n  }\n  function getExportOfModule(symbol, nameText, specifier, dontResolveAlias) {\n    var _a;\n    if (symbol.flags & 1536 /* Module */) {\n      const exportSymbol = getExportsOfSymbol(symbol).get(nameText);\n      const resolved = resolveSymbol(exportSymbol, dontResolveAlias);\n      const exportStarDeclaration = (_a = getSymbolLinks(symbol).typeOnlyExportStarMap) == null ? void 0 : _a.get(nameText);\n      markSymbolOfAliasDeclarationIfTypeOnly(\n        specifier,\n        exportSymbol,\n        resolved,\n        /*overwriteEmpty*/\n        false,\n        exportStarDeclaration,\n        nameText\n      );\n      return resolved;\n    }\n  }\n  function getPropertyOfVariable(symbol, name) {\n    if (symbol.flags & 3 /* Variable */) {\n      const typeAnnotation = symbol.valueDeclaration.type;\n      if (typeAnnotation) {\n        return resolveSymbol(getPropertyOfType(getTypeFromTypeNode(typeAnnotation), name));\n      }\n    }\n  }\n  function getExternalModuleMember(node, specifier, dontResolveAlias = false) {\n    var _a;\n    const moduleSpecifier = getExternalModuleRequireArgument(node) || node.moduleSpecifier;\n    const moduleSymbol = resolveExternalModuleName(node, moduleSpecifier);\n    const name = !isPropertyAccessExpression(specifier) && specifier.propertyName || specifier.name;\n    if (!isIdentifier(name) && name.kind !== 11 /* StringLiteral */) {\n      return void 0;\n    }\n    const nameText = moduleExportNameTextEscaped(name);\n    const suppressInteropError = nameText === \"default\" /* Default */ && allowSyntheticDefaultImports;\n    const targetSymbol = resolveESModuleSymbol(\n      moduleSymbol,\n      moduleSpecifier,\n      /*dontResolveAlias*/\n      false,\n      suppressInteropError\n    );\n    if (targetSymbol) {\n      if (nameText || name.kind === 11 /* StringLiteral */) {\n        if (isShorthandAmbientModuleSymbol(moduleSymbol)) {\n          return moduleSymbol;\n        }\n        let symbolFromVariable;\n        if (moduleSymbol && moduleSymbol.exports && moduleSymbol.exports.get(\"export=\" /* ExportEquals */)) {\n          symbolFromVariable = getPropertyOfType(\n            getTypeOfSymbol(targetSymbol),\n            nameText,\n            /*skipObjectFunctionPropertyAugment*/\n            true\n          );\n        } else {\n          symbolFromVariable = getPropertyOfVariable(targetSymbol, nameText);\n        }\n        symbolFromVariable = resolveSymbol(symbolFromVariable, dontResolveAlias);\n        let symbolFromModule = getExportOfModule(targetSymbol, nameText, specifier, dontResolveAlias);\n        if (symbolFromModule === void 0 && nameText === \"default\" /* Default */) {\n          const file = (_a = moduleSymbol.declarations) == null ? void 0 : _a.find(isSourceFile);\n          if (isOnlyImportableAsDefault(moduleSpecifier, moduleSymbol) || canHaveSyntheticDefault(file, moduleSymbol, dontResolveAlias, moduleSpecifier)) {\n            symbolFromModule = resolveExternalModuleSymbol(moduleSymbol, dontResolveAlias) || resolveSymbol(moduleSymbol, dontResolveAlias);\n          }\n        }\n        const symbol = symbolFromModule && symbolFromVariable && symbolFromModule !== symbolFromVariable ? combineValueAndTypeSymbols(symbolFromVariable, symbolFromModule) : symbolFromModule || symbolFromVariable;\n        if (isImportOrExportSpecifier(specifier) && isOnlyImportableAsDefault(moduleSpecifier, moduleSymbol) && nameText !== \"default\" /* Default */) {\n          error2(name, Diagnostics.Named_imports_from_a_JSON_file_into_an_ECMAScript_module_are_not_allowed_when_module_is_set_to_0, ModuleKind[moduleKind]);\n        } else if (!symbol) {\n          errorNoModuleMemberSymbol(moduleSymbol, targetSymbol, node, name);\n        }\n        return symbol;\n      }\n    }\n  }\n  function errorNoModuleMemberSymbol(moduleSymbol, targetSymbol, node, name) {\n    var _a;\n    const moduleName = getFullyQualifiedName(moduleSymbol, node);\n    const declarationName = declarationNameToString(name);\n    const suggestion = isIdentifier(name) ? getSuggestedSymbolForNonexistentModule(name, targetSymbol) : void 0;\n    if (suggestion !== void 0) {\n      const suggestionName = symbolToString(suggestion);\n      const diagnostic = error2(name, Diagnostics._0_has_no_exported_member_named_1_Did_you_mean_2, moduleName, declarationName, suggestionName);\n      if (suggestion.valueDeclaration) {\n        addRelatedInfo(diagnostic, createDiagnosticForNode(suggestion.valueDeclaration, Diagnostics._0_is_declared_here, suggestionName));\n      }\n    } else {\n      if ((_a = moduleSymbol.exports) == null ? void 0 : _a.has(\"default\" /* Default */)) {\n        error2(\n          name,\n          Diagnostics.Module_0_has_no_exported_member_1_Did_you_mean_to_use_import_1_from_0_instead,\n          moduleName,\n          declarationName\n        );\n      } else {\n        reportNonExportedMember(node, name, declarationName, moduleSymbol, moduleName);\n      }\n    }\n  }\n  function reportNonExportedMember(node, name, declarationName, moduleSymbol, moduleName) {\n    var _a, _b;\n    const localSymbol = (_b = (_a = tryCast(moduleSymbol.valueDeclaration, canHaveLocals)) == null ? void 0 : _a.locals) == null ? void 0 : _b.get(moduleExportNameTextEscaped(name));\n    const exports2 = moduleSymbol.exports;\n    if (localSymbol) {\n      const exportedEqualsSymbol = exports2 == null ? void 0 : exports2.get(\"export=\" /* ExportEquals */);\n      if (exportedEqualsSymbol) {\n        getSymbolIfSameReference(exportedEqualsSymbol, localSymbol) ? reportInvalidImportEqualsExportMember(node, name, declarationName, moduleName) : error2(name, Diagnostics.Module_0_has_no_exported_member_1, moduleName, declarationName);\n      } else {\n        const exportedSymbol = exports2 ? find(symbolsToArray(exports2), (symbol) => !!getSymbolIfSameReference(symbol, localSymbol)) : void 0;\n        const diagnostic = exportedSymbol ? error2(name, Diagnostics.Module_0_declares_1_locally_but_it_is_exported_as_2, moduleName, declarationName, symbolToString(exportedSymbol)) : error2(name, Diagnostics.Module_0_declares_1_locally_but_it_is_not_exported, moduleName, declarationName);\n        if (localSymbol.declarations) {\n          addRelatedInfo(diagnostic, ...map(localSymbol.declarations, (decl, index) => createDiagnosticForNode(decl, index === 0 ? Diagnostics._0_is_declared_here : Diagnostics.and_here, declarationName)));\n        }\n      }\n    } else {\n      error2(name, Diagnostics.Module_0_has_no_exported_member_1, moduleName, declarationName);\n    }\n  }\n  function reportInvalidImportEqualsExportMember(node, name, declarationName, moduleName) {\n    if (moduleKind >= 5 /* ES2015 */) {\n      const message = getESModuleInterop(compilerOptions) ? Diagnostics._0_can_only_be_imported_by_using_a_default_import : Diagnostics._0_can_only_be_imported_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import;\n      error2(name, message, declarationName);\n    } else {\n      if (isInJSFile(node)) {\n        const message = getESModuleInterop(compilerOptions) ? Diagnostics._0_can_only_be_imported_by_using_a_require_call_or_by_using_a_default_import : Diagnostics._0_can_only_be_imported_by_using_a_require_call_or_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import;\n        error2(name, message, declarationName);\n      } else {\n        const message = getESModuleInterop(compilerOptions) ? Diagnostics._0_can_only_be_imported_by_using_import_1_require_2_or_a_default_import : Diagnostics._0_can_only_be_imported_by_using_import_1_require_2_or_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import;\n        error2(name, message, declarationName, declarationName, moduleName);\n      }\n    }\n  }\n  function getTargetOfImportSpecifier(node, dontResolveAlias) {\n    if (isImportSpecifier(node) && moduleExportNameIsDefault(node.propertyName || node.name)) {\n      const specifier = getModuleSpecifierForImportOrExport(node);\n      const moduleSymbol = specifier && resolveExternalModuleName(node, specifier);\n      if (moduleSymbol) {\n        return getTargetofModuleDefault(moduleSymbol, node, dontResolveAlias);\n      }\n    }\n    const root = isBindingElement(node) ? getRootDeclaration(node) : node.parent.parent.parent;\n    const commonJSPropertyAccess = getCommonJSPropertyAccess(root);\n    const resolved = getExternalModuleMember(root, commonJSPropertyAccess || node, dontResolveAlias);\n    const name = node.propertyName || node.name;\n    if (commonJSPropertyAccess && resolved && isIdentifier(name)) {\n      return resolveSymbol(getPropertyOfType(getTypeOfSymbol(resolved), name.escapedText), dontResolveAlias);\n    }\n    markSymbolOfAliasDeclarationIfTypeOnly(\n      node,\n      /*immediateTarget*/\n      void 0,\n      resolved,\n      /*overwriteEmpty*/\n      false\n    );\n    return resolved;\n  }\n  function getCommonJSPropertyAccess(node) {\n    if (isVariableDeclaration(node) && node.initializer && isPropertyAccessExpression(node.initializer)) {\n      return node.initializer;\n    }\n  }\n  function getTargetOfNamespaceExportDeclaration(node, dontResolveAlias) {\n    if (canHaveSymbol(node.parent)) {\n      const resolved = resolveExternalModuleSymbol(node.parent.symbol, dontResolveAlias);\n      markSymbolOfAliasDeclarationIfTypeOnly(\n        node,\n        /*immediateTarget*/\n        void 0,\n        resolved,\n        /*overwriteEmpty*/\n        false\n      );\n      return resolved;\n    }\n  }\n  function getTargetOfExportSpecifier(node, meaning, dontResolveAlias) {\n    const name = node.propertyName || node.name;\n    if (moduleExportNameIsDefault(name)) {\n      const specifier = getModuleSpecifierForImportOrExport(node);\n      const moduleSymbol = specifier && resolveExternalModuleName(node, specifier);\n      if (moduleSymbol) {\n        return getTargetofModuleDefault(moduleSymbol, node, !!dontResolveAlias);\n      }\n    }\n    const resolved = node.parent.parent.moduleSpecifier ? getExternalModuleMember(node.parent.parent, node, dontResolveAlias) : name.kind === 11 /* StringLiteral */ ? void 0 : (\n      // Skip for invalid syntax like this: export { \"x\" }\n      resolveEntityName(\n        name,\n        meaning,\n        /*ignoreErrors*/\n        false,\n        dontResolveAlias\n      )\n    );\n    markSymbolOfAliasDeclarationIfTypeOnly(\n      node,\n      /*immediateTarget*/\n      void 0,\n      resolved,\n      /*overwriteEmpty*/\n      false\n    );\n    return resolved;\n  }\n  function getTargetOfExportAssignment(node, dontResolveAlias) {\n    const expression = isExportAssignment(node) ? node.expression : node.right;\n    const resolved = getTargetOfAliasLikeExpression(expression, dontResolveAlias);\n    markSymbolOfAliasDeclarationIfTypeOnly(\n      node,\n      /*immediateTarget*/\n      void 0,\n      resolved,\n      /*overwriteEmpty*/\n      false\n    );\n    return resolved;\n  }\n  function getTargetOfAliasLikeExpression(expression, dontResolveAlias) {\n    if (isClassExpression(expression)) {\n      return checkExpressionCached(expression).symbol;\n    }\n    if (!isEntityName(expression) && !isEntityNameExpression(expression)) {\n      return void 0;\n    }\n    const aliasLike = resolveEntityName(\n      expression,\n      111551 /* Value */ | 788968 /* Type */ | 1920 /* Namespace */,\n      /*ignoreErrors*/\n      true,\n      dontResolveAlias\n    );\n    if (aliasLike) {\n      return aliasLike;\n    }\n    checkExpressionCached(expression);\n    return getNodeLinks(expression).resolvedSymbol;\n  }\n  function getTargetOfAccessExpression(node, dontRecursivelyResolve) {\n    if (!(isBinaryExpression(node.parent) && node.parent.left === node && node.parent.operatorToken.kind === 64 /* EqualsToken */)) {\n      return void 0;\n    }\n    return getTargetOfAliasLikeExpression(node.parent.right, dontRecursivelyResolve);\n  }\n  function getTargetOfAliasDeclaration(node, dontRecursivelyResolve = false) {\n    switch (node.kind) {\n      case 272 /* ImportEqualsDeclaration */:\n      case 261 /* VariableDeclaration */:\n        return getTargetOfImportEqualsDeclaration(node, dontRecursivelyResolve);\n      case 274 /* ImportClause */:\n        return getTargetOfImportClause(node, dontRecursivelyResolve);\n      case 275 /* NamespaceImport */:\n        return getTargetOfNamespaceImport(node, dontRecursivelyResolve);\n      case 281 /* NamespaceExport */:\n        return getTargetOfNamespaceExport(node, dontRecursivelyResolve);\n      case 277 /* ImportSpecifier */:\n      case 209 /* BindingElement */:\n        return getTargetOfImportSpecifier(node, dontRecursivelyResolve);\n      case 282 /* ExportSpecifier */:\n        return getTargetOfExportSpecifier(node, 111551 /* Value */ | 788968 /* Type */ | 1920 /* Namespace */, dontRecursivelyResolve);\n      case 278 /* ExportAssignment */:\n      case 227 /* BinaryExpression */:\n        return getTargetOfExportAssignment(node, dontRecursivelyResolve);\n      case 271 /* NamespaceExportDeclaration */:\n        return getTargetOfNamespaceExportDeclaration(node, dontRecursivelyResolve);\n      case 305 /* ShorthandPropertyAssignment */:\n        return resolveEntityName(\n          node.name,\n          111551 /* Value */ | 788968 /* Type */ | 1920 /* Namespace */,\n          /*ignoreErrors*/\n          true,\n          dontRecursivelyResolve\n        );\n      case 304 /* PropertyAssignment */:\n        return getTargetOfAliasLikeExpression(node.initializer, dontRecursivelyResolve);\n      case 213 /* ElementAccessExpression */:\n      case 212 /* PropertyAccessExpression */:\n        return getTargetOfAccessExpression(node, dontRecursivelyResolve);\n      default:\n        return Debug.fail();\n    }\n  }\n  function isNonLocalAlias(symbol, excludes = 111551 /* Value */ | 788968 /* Type */ | 1920 /* Namespace */) {\n    if (!symbol) return false;\n    return (symbol.flags & (2097152 /* Alias */ | excludes)) === 2097152 /* Alias */ || !!(symbol.flags & 2097152 /* Alias */ && symbol.flags & 67108864 /* Assignment */);\n  }\n  function resolveSymbol(symbol, dontResolveAlias) {\n    return !dontResolveAlias && isNonLocalAlias(symbol) ? resolveAlias(symbol) : symbol;\n  }\n  function resolveAlias(symbol) {\n    Debug.assert((symbol.flags & 2097152 /* Alias */) !== 0, \"Should only get Alias here.\");\n    const links = getSymbolLinks(symbol);\n    if (!links.aliasTarget) {\n      links.aliasTarget = resolvingSymbol;\n      const node = getDeclarationOfAliasSymbol(symbol);\n      if (!node) return Debug.fail();\n      const target = getTargetOfAliasDeclaration(node);\n      if (links.aliasTarget === resolvingSymbol) {\n        links.aliasTarget = target || unknownSymbol;\n      } else {\n        error2(node, Diagnostics.Circular_definition_of_import_alias_0, symbolToString(symbol));\n      }\n    } else if (links.aliasTarget === resolvingSymbol) {\n      links.aliasTarget = unknownSymbol;\n    }\n    return links.aliasTarget;\n  }\n  function tryResolveAlias(symbol) {\n    const links = getSymbolLinks(symbol);\n    if (links.aliasTarget !== resolvingSymbol) {\n      return resolveAlias(symbol);\n    }\n    return void 0;\n  }\n  function getSymbolFlags(symbol, excludeTypeOnlyMeanings, excludeLocalMeanings) {\n    const typeOnlyDeclaration = excludeTypeOnlyMeanings && getTypeOnlyAliasDeclaration(symbol);\n    const typeOnlyDeclarationIsExportStar = typeOnlyDeclaration && isExportDeclaration(typeOnlyDeclaration);\n    const typeOnlyResolution = typeOnlyDeclaration && (typeOnlyDeclarationIsExportStar ? resolveExternalModuleName(\n      typeOnlyDeclaration.moduleSpecifier,\n      typeOnlyDeclaration.moduleSpecifier,\n      /*ignoreErrors*/\n      true\n    ) : resolveAlias(typeOnlyDeclaration.symbol));\n    const typeOnlyExportStarTargets = typeOnlyDeclarationIsExportStar && typeOnlyResolution ? getExportsOfModule(typeOnlyResolution) : void 0;\n    let flags = excludeLocalMeanings ? 0 /* None */ : symbol.flags;\n    let seenSymbols;\n    while (symbol.flags & 2097152 /* Alias */) {\n      const target = getExportSymbolOfValueSymbolIfExported(resolveAlias(symbol));\n      if (!typeOnlyDeclarationIsExportStar && target === typeOnlyResolution || (typeOnlyExportStarTargets == null ? void 0 : typeOnlyExportStarTargets.get(target.escapedName)) === target) {\n        break;\n      }\n      if (target === unknownSymbol) {\n        return -1 /* All */;\n      }\n      if (target === symbol || (seenSymbols == null ? void 0 : seenSymbols.has(target))) {\n        break;\n      }\n      if (target.flags & 2097152 /* Alias */) {\n        if (seenSymbols) {\n          seenSymbols.add(target);\n        } else {\n          seenSymbols = /* @__PURE__ */ new Set([symbol, target]);\n        }\n      }\n      flags |= target.flags;\n      symbol = target;\n    }\n    return flags;\n  }\n  function markSymbolOfAliasDeclarationIfTypeOnly(aliasDeclaration, immediateTarget, finalTarget, overwriteEmpty, exportStarDeclaration, exportStarName) {\n    if (!aliasDeclaration || isPropertyAccessExpression(aliasDeclaration)) return false;\n    const sourceSymbol = getSymbolOfDeclaration(aliasDeclaration);\n    if (isTypeOnlyImportOrExportDeclaration(aliasDeclaration)) {\n      const links2 = getSymbolLinks(sourceSymbol);\n      links2.typeOnlyDeclaration = aliasDeclaration;\n      return true;\n    }\n    if (exportStarDeclaration) {\n      const links2 = getSymbolLinks(sourceSymbol);\n      links2.typeOnlyDeclaration = exportStarDeclaration;\n      if (sourceSymbol.escapedName !== exportStarName) {\n        links2.typeOnlyExportStarName = exportStarName;\n      }\n      return true;\n    }\n    const links = getSymbolLinks(sourceSymbol);\n    return markSymbolOfAliasDeclarationIfTypeOnlyWorker(links, immediateTarget, overwriteEmpty) || markSymbolOfAliasDeclarationIfTypeOnlyWorker(links, finalTarget, overwriteEmpty);\n  }\n  function markSymbolOfAliasDeclarationIfTypeOnlyWorker(aliasDeclarationLinks, target, overwriteEmpty) {\n    var _a;\n    if (target && (aliasDeclarationLinks.typeOnlyDeclaration === void 0 || overwriteEmpty && aliasDeclarationLinks.typeOnlyDeclaration === false)) {\n      const exportSymbol = ((_a = target.exports) == null ? void 0 : _a.get(\"export=\" /* ExportEquals */)) ?? target;\n      const typeOnly = exportSymbol.declarations && find(exportSymbol.declarations, isTypeOnlyImportOrExportDeclaration);\n      aliasDeclarationLinks.typeOnlyDeclaration = typeOnly ?? getSymbolLinks(exportSymbol).typeOnlyDeclaration ?? false;\n    }\n    return !!aliasDeclarationLinks.typeOnlyDeclaration;\n  }\n  function getTypeOnlyAliasDeclaration(symbol, include) {\n    var _a;\n    if (!(symbol.flags & 2097152 /* Alias */)) {\n      return void 0;\n    }\n    const links = getSymbolLinks(symbol);\n    if (links.typeOnlyDeclaration === void 0) {\n      links.typeOnlyDeclaration = false;\n      const resolved = resolveSymbol(symbol);\n      markSymbolOfAliasDeclarationIfTypeOnly(\n        (_a = symbol.declarations) == null ? void 0 : _a[0],\n        getDeclarationOfAliasSymbol(symbol) && getImmediateAliasedSymbol(symbol),\n        resolved,\n        /*overwriteEmpty*/\n        true\n      );\n    }\n    if (include === void 0) {\n      return links.typeOnlyDeclaration || void 0;\n    }\n    if (links.typeOnlyDeclaration) {\n      const resolved = links.typeOnlyDeclaration.kind === 279 /* ExportDeclaration */ ? resolveSymbol(getExportsOfModule(links.typeOnlyDeclaration.symbol.parent).get(links.typeOnlyExportStarName || symbol.escapedName)) : resolveAlias(links.typeOnlyDeclaration.symbol);\n      return getSymbolFlags(resolved) & include ? links.typeOnlyDeclaration : void 0;\n    }\n    return void 0;\n  }\n  function getSymbolOfPartOfRightHandSideOfImportEquals(entityName, dontResolveAlias) {\n    if (entityName.kind === 80 /* Identifier */ && isRightSideOfQualifiedNameOrPropertyAccess(entityName)) {\n      entityName = entityName.parent;\n    }\n    if (entityName.kind === 80 /* Identifier */ || entityName.parent.kind === 167 /* QualifiedName */) {\n      return resolveEntityName(\n        entityName,\n        1920 /* Namespace */,\n        /*ignoreErrors*/\n        false,\n        dontResolveAlias\n      );\n    } else {\n      Debug.assert(entityName.parent.kind === 272 /* ImportEqualsDeclaration */);\n      return resolveEntityName(\n        entityName,\n        111551 /* Value */ | 788968 /* Type */ | 1920 /* Namespace */,\n        /*ignoreErrors*/\n        false,\n        dontResolveAlias\n      );\n    }\n  }\n  function getFullyQualifiedName(symbol, containingLocation) {\n    return symbol.parent ? getFullyQualifiedName(symbol.parent, containingLocation) + \".\" + symbolToString(symbol) : symbolToString(\n      symbol,\n      containingLocation,\n      /*meaning*/\n      void 0,\n      32 /* DoNotIncludeSymbolChain */ | 4 /* AllowAnyNodeKind */\n    );\n  }\n  function getContainingQualifiedNameNode(node) {\n    while (isQualifiedName(node.parent)) {\n      node = node.parent;\n    }\n    return node;\n  }\n  function tryGetQualifiedNameAsValue(node) {\n    let left = getFirstIdentifier(node);\n    let symbol = resolveName(\n      left,\n      left,\n      111551 /* Value */,\n      /*nameNotFoundMessage*/\n      void 0,\n      /*isUse*/\n      true\n    );\n    if (!symbol) {\n      return void 0;\n    }\n    while (isQualifiedName(left.parent)) {\n      const type = getTypeOfSymbol(symbol);\n      symbol = getPropertyOfType(type, left.parent.right.escapedText);\n      if (!symbol) {\n        return void 0;\n      }\n      left = left.parent;\n    }\n    return symbol;\n  }\n  function resolveEntityName(name, meaning, ignoreErrors, dontResolveAlias, location) {\n    if (nodeIsMissing(name)) {\n      return void 0;\n    }\n    const namespaceMeaning = 1920 /* Namespace */ | (isInJSFile(name) ? meaning & 111551 /* Value */ : 0);\n    let symbol;\n    if (name.kind === 80 /* Identifier */) {\n      const message = meaning === namespaceMeaning || nodeIsSynthesized(name) ? Diagnostics.Cannot_find_namespace_0 : getCannotFindNameDiagnosticForName(getFirstIdentifier(name));\n      const symbolFromJSPrototype = isInJSFile(name) && !nodeIsSynthesized(name) ? resolveEntityNameFromAssignmentDeclaration(name, meaning) : void 0;\n      symbol = getMergedSymbol(resolveName(\n        location || name,\n        name,\n        meaning,\n        ignoreErrors || symbolFromJSPrototype ? void 0 : message,\n        /*isUse*/\n        true,\n        /*excludeGlobals*/\n        false\n      ));\n      if (!symbol) {\n        return getMergedSymbol(symbolFromJSPrototype);\n      }\n    } else if (name.kind === 167 /* QualifiedName */ || name.kind === 212 /* PropertyAccessExpression */) {\n      const left = name.kind === 167 /* QualifiedName */ ? name.left : name.expression;\n      const right = name.kind === 167 /* QualifiedName */ ? name.right : name.name;\n      let namespace = resolveEntityName(\n        left,\n        namespaceMeaning,\n        ignoreErrors,\n        /*dontResolveAlias*/\n        false,\n        location\n      );\n      if (!namespace || nodeIsMissing(right)) {\n        return void 0;\n      } else if (namespace === unknownSymbol) {\n        return namespace;\n      }\n      if (namespace.valueDeclaration && isInJSFile(namespace.valueDeclaration) && getEmitModuleResolutionKind(compilerOptions) !== 100 /* Bundler */ && isVariableDeclaration(namespace.valueDeclaration) && namespace.valueDeclaration.initializer && isCommonJsRequire(namespace.valueDeclaration.initializer)) {\n        const moduleName = namespace.valueDeclaration.initializer.arguments[0];\n        const moduleSym = resolveExternalModuleName(moduleName, moduleName);\n        if (moduleSym) {\n          const resolvedModuleSymbol = resolveExternalModuleSymbol(moduleSym);\n          if (resolvedModuleSymbol) {\n            namespace = resolvedModuleSymbol;\n          }\n        }\n      }\n      symbol = getMergedSymbol(getSymbol2(getExportsOfSymbol(namespace), right.escapedText, meaning));\n      if (!symbol && namespace.flags & 2097152 /* Alias */) {\n        symbol = getMergedSymbol(getSymbol2(getExportsOfSymbol(resolveAlias(namespace)), right.escapedText, meaning));\n      }\n      if (!symbol) {\n        if (!ignoreErrors) {\n          const namespaceName = getFullyQualifiedName(namespace);\n          const declarationName = declarationNameToString(right);\n          const suggestionForNonexistentModule = getSuggestedSymbolForNonexistentModule(right, namespace);\n          if (suggestionForNonexistentModule) {\n            error2(right, Diagnostics._0_has_no_exported_member_named_1_Did_you_mean_2, namespaceName, declarationName, symbolToString(suggestionForNonexistentModule));\n            return void 0;\n          }\n          const containingQualifiedName = isQualifiedName(name) && getContainingQualifiedNameNode(name);\n          const canSuggestTypeof = globalObjectType && meaning & 788968 /* Type */ && containingQualifiedName && !isTypeOfExpression(containingQualifiedName.parent) && tryGetQualifiedNameAsValue(containingQualifiedName);\n          if (canSuggestTypeof) {\n            error2(\n              containingQualifiedName,\n              Diagnostics._0_refers_to_a_value_but_is_being_used_as_a_type_here_Did_you_mean_typeof_0,\n              entityNameToString(containingQualifiedName)\n            );\n            return void 0;\n          }\n          if (meaning & 1920 /* Namespace */ && isQualifiedName(name.parent)) {\n            const exportedTypeSymbol = getMergedSymbol(getSymbol2(getExportsOfSymbol(namespace), right.escapedText, 788968 /* Type */));\n            if (exportedTypeSymbol) {\n              error2(\n                name.parent.right,\n                Diagnostics.Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_property_1_in_0_with_0_1,\n                symbolToString(exportedTypeSymbol),\n                unescapeLeadingUnderscores(name.parent.right.escapedText)\n              );\n              return void 0;\n            }\n          }\n          error2(right, Diagnostics.Namespace_0_has_no_exported_member_1, namespaceName, declarationName);\n        }\n        return void 0;\n      }\n    } else {\n      Debug.assertNever(name, \"Unknown entity name kind.\");\n    }\n    if (!nodeIsSynthesized(name) && isEntityName(name) && (symbol.flags & 2097152 /* Alias */ || name.parent.kind === 278 /* ExportAssignment */)) {\n      markSymbolOfAliasDeclarationIfTypeOnly(\n        getAliasDeclarationFromName(name),\n        symbol,\n        /*finalTarget*/\n        void 0,\n        /*overwriteEmpty*/\n        true\n      );\n    }\n    return symbol.flags & meaning || dontResolveAlias ? symbol : resolveAlias(symbol);\n  }\n  function resolveEntityNameFromAssignmentDeclaration(name, meaning) {\n    if (isJSDocTypeReference(name.parent)) {\n      const secondaryLocation = getAssignmentDeclarationLocation(name.parent);\n      if (secondaryLocation) {\n        return resolveName(\n          secondaryLocation,\n          name,\n          meaning,\n          /*nameNotFoundMessage*/\n          void 0,\n          /*isUse*/\n          true\n        );\n      }\n    }\n  }\n  function getAssignmentDeclarationLocation(node) {\n    const typeAlias = findAncestor(node, (node2) => !(isJSDocNode(node2) || node2.flags & 16777216 /* JSDoc */) ? \"quit\" : isJSDocTypeAlias(node2));\n    if (typeAlias) {\n      return;\n    }\n    const host2 = getJSDocHost(node);\n    if (host2 && isExpressionStatement(host2) && isPrototypePropertyAssignment(host2.expression)) {\n      const symbol = getSymbolOfDeclaration(host2.expression.left);\n      if (symbol) {\n        return getDeclarationOfJSPrototypeContainer(symbol);\n      }\n    }\n    if (host2 && isFunctionExpression(host2) && isPrototypePropertyAssignment(host2.parent) && isExpressionStatement(host2.parent.parent)) {\n      const symbol = getSymbolOfDeclaration(host2.parent.left);\n      if (symbol) {\n        return getDeclarationOfJSPrototypeContainer(symbol);\n      }\n    }\n    if (host2 && (isObjectLiteralMethod(host2) || isPropertyAssignment(host2)) && isBinaryExpression(host2.parent.parent) && getAssignmentDeclarationKind(host2.parent.parent) === 6 /* Prototype */) {\n      const symbol = getSymbolOfDeclaration(host2.parent.parent.left);\n      if (symbol) {\n        return getDeclarationOfJSPrototypeContainer(symbol);\n      }\n    }\n    const sig = getEffectiveJSDocHost(node);\n    if (sig && isFunctionLike(sig)) {\n      const symbol = getSymbolOfDeclaration(sig);\n      return symbol && symbol.valueDeclaration;\n    }\n  }\n  function getDeclarationOfJSPrototypeContainer(symbol) {\n    const decl = symbol.parent.valueDeclaration;\n    if (!decl) {\n      return void 0;\n    }\n    const initializer = isAssignmentDeclaration(decl) ? getAssignedExpandoInitializer(decl) : hasOnlyExpressionInitializer(decl) ? getDeclaredExpandoInitializer(decl) : void 0;\n    return initializer || decl;\n  }\n  function getExpandoSymbol(symbol) {\n    const decl = symbol.valueDeclaration;\n    if (!decl || !isInJSFile(decl) || symbol.flags & 524288 /* TypeAlias */ || getExpandoInitializer(\n      decl,\n      /*isPrototypeAssignment*/\n      false\n    )) {\n      return void 0;\n    }\n    const init = isVariableDeclaration(decl) ? getDeclaredExpandoInitializer(decl) : getAssignedExpandoInitializer(decl);\n    if (init) {\n      const initSymbol = getSymbolOfNode(init);\n      if (initSymbol) {\n        return mergeJSSymbols(initSymbol, symbol);\n      }\n    }\n  }\n  function resolveExternalModuleName(location, moduleReferenceExpression, ignoreErrors) {\n    const isClassic = getEmitModuleResolutionKind(compilerOptions) === 1 /* Classic */;\n    const errorMessage = isClassic ? Diagnostics.Cannot_find_module_0_Did_you_mean_to_set_the_moduleResolution_option_to_nodenext_or_to_add_aliases_to_the_paths_option : Diagnostics.Cannot_find_module_0_or_its_corresponding_type_declarations;\n    return resolveExternalModuleNameWorker(location, moduleReferenceExpression, ignoreErrors ? void 0 : errorMessage, ignoreErrors);\n  }\n  function resolveExternalModuleNameWorker(location, moduleReferenceExpression, moduleNotFoundError, ignoreErrors = false, isForAugmentation = false) {\n    return isStringLiteralLike(moduleReferenceExpression) ? resolveExternalModule(location, moduleReferenceExpression.text, moduleNotFoundError, !ignoreErrors ? moduleReferenceExpression : void 0, isForAugmentation) : void 0;\n  }\n  function resolveExternalModule(location, moduleReference, moduleNotFoundError, errorNode, isForAugmentation = false) {\n    var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;\n    if (errorNode && startsWith(moduleReference, \"@types/\")) {\n      const diag2 = Diagnostics.Cannot_import_type_declaration_files_Consider_importing_0_instead_of_1;\n      const withoutAtTypePrefix = removePrefix(moduleReference, \"@types/\");\n      error2(errorNode, diag2, withoutAtTypePrefix, moduleReference);\n    }\n    const ambientModule = tryFindAmbientModule(\n      moduleReference,\n      /*withAugmentations*/\n      true\n    );\n    if (ambientModule) {\n      return ambientModule;\n    }\n    const currentSourceFile = getSourceFileOfNode(location);\n    const contextSpecifier = isStringLiteralLike(location) ? location : ((_a = isModuleDeclaration(location) ? location : location.parent && isModuleDeclaration(location.parent) && location.parent.name === location ? location.parent : void 0) == null ? void 0 : _a.name) || ((_b = isLiteralImportTypeNode(location) ? location : void 0) == null ? void 0 : _b.argument.literal) || (isVariableDeclaration(location) && location.initializer && isRequireCall(\n      location.initializer,\n      /*requireStringLiteralLikeArgument*/\n      true\n    ) ? location.initializer.arguments[0] : void 0) || ((_c = findAncestor(location, isImportCall)) == null ? void 0 : _c.arguments[0]) || ((_d = findAncestor(location, or(isImportDeclaration, isJSDocImportTag, isExportDeclaration))) == null ? void 0 : _d.moduleSpecifier) || ((_e = findAncestor(location, isExternalModuleImportEqualsDeclaration)) == null ? void 0 : _e.moduleReference.expression);\n    const mode = contextSpecifier && isStringLiteralLike(contextSpecifier) ? host.getModeForUsageLocation(currentSourceFile, contextSpecifier) : host.getDefaultResolutionModeForFile(currentSourceFile);\n    const moduleResolutionKind = getEmitModuleResolutionKind(compilerOptions);\n    const resolvedModule = (_f = host.getResolvedModule(currentSourceFile, moduleReference, mode)) == null ? void 0 : _f.resolvedModule;\n    const resolutionDiagnostic = errorNode && resolvedModule && getResolutionDiagnostic(compilerOptions, resolvedModule, currentSourceFile);\n    const sourceFile = resolvedModule && (!resolutionDiagnostic || resolutionDiagnostic === Diagnostics.Module_0_was_resolved_to_1_but_jsx_is_not_set) && host.getSourceFile(resolvedModule.resolvedFileName);\n    if (sourceFile) {\n      if (resolutionDiagnostic) {\n        error2(errorNode, resolutionDiagnostic, moduleReference, resolvedModule.resolvedFileName);\n      }\n      if (resolvedModule.resolvedUsingTsExtension && isDeclarationFileName(moduleReference)) {\n        const importOrExport = ((_g = findAncestor(location, isImportDeclaration)) == null ? void 0 : _g.importClause) || findAncestor(location, or(isImportEqualsDeclaration, isExportDeclaration));\n        if (errorNode && importOrExport && !importOrExport.isTypeOnly || findAncestor(location, isImportCall)) {\n          error2(\n            errorNode,\n            Diagnostics.A_declaration_file_cannot_be_imported_without_import_type_Did_you_mean_to_import_an_implementation_file_0_instead,\n            getSuggestedImportSource(Debug.checkDefined(tryExtractTSExtension(moduleReference)))\n          );\n        }\n      } else if (resolvedModule.resolvedUsingTsExtension && !shouldAllowImportingTsExtension(compilerOptions, currentSourceFile.fileName)) {\n        const importOrExport = ((_h = findAncestor(location, isImportDeclaration)) == null ? void 0 : _h.importClause) || findAncestor(location, or(isImportEqualsDeclaration, isExportDeclaration));\n        if (errorNode && !((importOrExport == null ? void 0 : importOrExport.isTypeOnly) || findAncestor(location, isImportTypeNode))) {\n          const tsExtension = Debug.checkDefined(tryExtractTSExtension(moduleReference));\n          error2(errorNode, Diagnostics.An_import_path_can_only_end_with_a_0_extension_when_allowImportingTsExtensions_is_enabled, tsExtension);\n        }\n      } else if (compilerOptions.rewriteRelativeImportExtensions && !(location.flags & 33554432 /* Ambient */) && !isDeclarationFileName(moduleReference) && !isLiteralImportTypeNode(location) && !isPartOfTypeOnlyImportOrExportDeclaration(location)) {\n        const shouldRewrite = shouldRewriteModuleSpecifier(moduleReference, compilerOptions);\n        if (!resolvedModule.resolvedUsingTsExtension && shouldRewrite) {\n          error2(\n            errorNode,\n            Diagnostics.This_relative_import_path_is_unsafe_to_rewrite_because_it_looks_like_a_file_name_but_actually_resolves_to_0,\n            getRelativePathFromFile(getNormalizedAbsolutePath(currentSourceFile.fileName, host.getCurrentDirectory()), resolvedModule.resolvedFileName, hostGetCanonicalFileName(host))\n          );\n        } else if (resolvedModule.resolvedUsingTsExtension && !shouldRewrite && sourceFileMayBeEmitted(sourceFile, host)) {\n          error2(\n            errorNode,\n            Diagnostics.This_import_uses_a_0_extension_to_resolve_to_an_input_TypeScript_file_but_will_not_be_rewritten_during_emit_because_it_is_not_a_relative_path,\n            getAnyExtensionFromPath(moduleReference)\n          );\n        } else if (resolvedModule.resolvedUsingTsExtension && shouldRewrite) {\n          const redirect = (_i = host.getRedirectFromSourceFile(sourceFile.path)) == null ? void 0 : _i.resolvedRef;\n          if (redirect) {\n            const ignoreCase = !host.useCaseSensitiveFileNames();\n            const ownRootDir = host.getCommonSourceDirectory();\n            const otherRootDir = getCommonSourceDirectoryOfConfig(redirect.commandLine, ignoreCase);\n            const rootDirPath = getRelativePathFromDirectory(ownRootDir, otherRootDir, ignoreCase);\n            const outDirPath = getRelativePathFromDirectory(compilerOptions.outDir || ownRootDir, redirect.commandLine.options.outDir || otherRootDir, ignoreCase);\n            if (rootDirPath !== outDirPath) {\n              error2(\n                errorNode,\n                Diagnostics.This_import_path_is_unsafe_to_rewrite_because_it_resolves_to_another_project_and_the_relative_path_between_the_projects_output_files_is_not_the_same_as_the_relative_path_between_its_input_files\n              );\n            }\n          }\n        }\n      }\n      if (sourceFile.symbol) {\n        if (errorNode && resolvedModule.isExternalLibraryImport && !resolutionExtensionIsTSOrJson(resolvedModule.extension)) {\n          errorOnImplicitAnyModule(\n            /*isError*/\n            false,\n            errorNode,\n            currentSourceFile,\n            mode,\n            resolvedModule,\n            moduleReference\n          );\n        }\n        if (errorNode && (moduleKind === 100 /* Node16 */ || moduleKind === 101 /* Node18 */)) {\n          const isSyncImport = currentSourceFile.impliedNodeFormat === 1 /* CommonJS */ && !findAncestor(location, isImportCall) || !!findAncestor(location, isImportEqualsDeclaration);\n          const overrideHost = findAncestor(location, (l) => isImportTypeNode(l) || isExportDeclaration(l) || isImportDeclaration(l) || isJSDocImportTag(l));\n          if (isSyncImport && sourceFile.impliedNodeFormat === 99 /* ESNext */ && !hasResolutionModeOverride(overrideHost)) {\n            if (findAncestor(location, isImportEqualsDeclaration)) {\n              error2(errorNode, Diagnostics.Module_0_cannot_be_imported_using_this_construct_The_specifier_only_resolves_to_an_ES_module_which_cannot_be_imported_with_require_Use_an_ECMAScript_import_instead, moduleReference);\n            } else {\n              let diagnosticDetails;\n              const ext = tryGetExtensionFromPath2(currentSourceFile.fileName);\n              if (ext === \".ts\" /* Ts */ || ext === \".js\" /* Js */ || ext === \".tsx\" /* Tsx */ || ext === \".jsx\" /* Jsx */) {\n                diagnosticDetails = createModeMismatchDetails(currentSourceFile);\n              }\n              const message = (overrideHost == null ? void 0 : overrideHost.kind) === 273 /* ImportDeclaration */ && ((_j = overrideHost.importClause) == null ? void 0 : _j.isTypeOnly) ? Diagnostics.Type_only_import_of_an_ECMAScript_module_from_a_CommonJS_module_must_have_a_resolution_mode_attribute : (overrideHost == null ? void 0 : overrideHost.kind) === 206 /* ImportType */ ? Diagnostics.Type_import_of_an_ECMAScript_module_from_a_CommonJS_module_must_have_a_resolution_mode_attribute : Diagnostics.The_current_file_is_a_CommonJS_module_whose_imports_will_produce_require_calls_however_the_referenced_file_is_an_ECMAScript_module_and_cannot_be_imported_with_require_Consider_writing_a_dynamic_import_0_call_instead;\n              diagnostics.add(createDiagnosticForNodeFromMessageChain(\n                getSourceFileOfNode(errorNode),\n                errorNode,\n                chainDiagnosticMessages(diagnosticDetails, message, moduleReference)\n              ));\n            }\n          }\n        }\n        return getMergedSymbol(sourceFile.symbol);\n      }\n      if (errorNode && moduleNotFoundError && !isSideEffectImport(errorNode)) {\n        error2(errorNode, Diagnostics.File_0_is_not_a_module, sourceFile.fileName);\n      }\n      return void 0;\n    }\n    if (patternAmbientModules) {\n      const pattern = findBestPatternMatch(patternAmbientModules, (_) => _.pattern, moduleReference);\n      if (pattern) {\n        const augmentation = patternAmbientModuleAugmentations && patternAmbientModuleAugmentations.get(moduleReference);\n        if (augmentation) {\n          return getMergedSymbol(augmentation);\n        }\n        return getMergedSymbol(pattern.symbol);\n      }\n    }\n    if (!errorNode) {\n      return void 0;\n    }\n    if (resolvedModule && !resolutionExtensionIsTSOrJson(resolvedModule.extension) && resolutionDiagnostic === void 0 || resolutionDiagnostic === Diagnostics.Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type) {\n      if (isForAugmentation) {\n        const diag2 = Diagnostics.Invalid_module_name_in_augmentation_Module_0_resolves_to_an_untyped_module_at_1_which_cannot_be_augmented;\n        error2(errorNode, diag2, moduleReference, resolvedModule.resolvedFileName);\n      } else {\n        errorOnImplicitAnyModule(\n          /*isError*/\n          noImplicitAny && !!moduleNotFoundError,\n          errorNode,\n          currentSourceFile,\n          mode,\n          resolvedModule,\n          moduleReference\n        );\n      }\n      return void 0;\n    }\n    if (moduleNotFoundError) {\n      if (resolvedModule) {\n        const redirect = host.getRedirectFromSourceFile(resolvedModule.resolvedFileName);\n        if (redirect == null ? void 0 : redirect.outputDts) {\n          error2(errorNode, Diagnostics.Output_file_0_has_not_been_built_from_source_file_1, redirect.outputDts, resolvedModule.resolvedFileName);\n          return void 0;\n        }\n      }\n      if (resolutionDiagnostic) {\n        error2(errorNode, resolutionDiagnostic, moduleReference, resolvedModule.resolvedFileName);\n      } else {\n        const isExtensionlessRelativePathImport = pathIsRelative(moduleReference) && !hasExtension(moduleReference);\n        const resolutionIsNode16OrNext = moduleResolutionKind === 3 /* Node16 */ || moduleResolutionKind === 99 /* NodeNext */;\n        if (!getResolveJsonModule(compilerOptions) && fileExtensionIs(moduleReference, \".json\" /* Json */) && moduleResolutionKind !== 1 /* Classic */ && hasJsonModuleEmitEnabled(compilerOptions)) {\n          error2(errorNode, Diagnostics.Cannot_find_module_0_Consider_using_resolveJsonModule_to_import_module_with_json_extension, moduleReference);\n        } else if (mode === 99 /* ESNext */ && resolutionIsNode16OrNext && isExtensionlessRelativePathImport) {\n          const absoluteRef = getNormalizedAbsolutePath(moduleReference, getDirectoryPath(currentSourceFile.path));\n          const suggestedExt = (_k = suggestedExtensions.find(([actualExt, _importExt]) => host.fileExists(absoluteRef + actualExt))) == null ? void 0 : _k[1];\n          if (suggestedExt) {\n            error2(errorNode, Diagnostics.Relative_import_paths_need_explicit_file_extensions_in_ECMAScript_imports_when_moduleResolution_is_node16_or_nodenext_Did_you_mean_0, moduleReference + suggestedExt);\n          } else {\n            error2(errorNode, Diagnostics.Relative_import_paths_need_explicit_file_extensions_in_ECMAScript_imports_when_moduleResolution_is_node16_or_nodenext_Consider_adding_an_extension_to_the_import_path);\n          }\n        } else {\n          if ((_l = host.getResolvedModule(currentSourceFile, moduleReference, mode)) == null ? void 0 : _l.alternateResult) {\n            const errorInfo = createModuleNotFoundChain(currentSourceFile, host, moduleReference, mode, moduleReference);\n            errorOrSuggestion(\n              /*isError*/\n              true,\n              errorNode,\n              chainDiagnosticMessages(errorInfo, moduleNotFoundError, moduleReference)\n            );\n          } else {\n            error2(errorNode, moduleNotFoundError, moduleReference);\n          }\n        }\n      }\n    }\n    return void 0;\n    function getSuggestedImportSource(tsExtension) {\n      const importSourceWithoutExtension = removeExtension(moduleReference, tsExtension);\n      if (emitModuleKindIsNonNodeESM(moduleKind) || mode === 99 /* ESNext */) {\n        const preferTs = isDeclarationFileName(moduleReference) && shouldAllowImportingTsExtension(compilerOptions);\n        const ext = tsExtension === \".mts\" /* Mts */ || tsExtension === \".d.mts\" /* Dmts */ ? preferTs ? \".mts\" : \".mjs\" : tsExtension === \".cts\" /* Cts */ || tsExtension === \".d.mts\" /* Dmts */ ? preferTs ? \".cts\" : \".cjs\" : preferTs ? \".ts\" : \".js\";\n        return importSourceWithoutExtension + ext;\n      }\n      return importSourceWithoutExtension;\n    }\n  }\n  function errorOnImplicitAnyModule(isError, errorNode, sourceFile, mode, { packageId, resolvedFileName }, moduleReference) {\n    if (isSideEffectImport(errorNode)) {\n      return;\n    }\n    let errorInfo;\n    if (!isExternalModuleNameRelative(moduleReference) && packageId) {\n      errorInfo = createModuleNotFoundChain(sourceFile, host, moduleReference, mode, packageId.name);\n    }\n    errorOrSuggestion(\n      isError,\n      errorNode,\n      chainDiagnosticMessages(\n        errorInfo,\n        Diagnostics.Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type,\n        moduleReference,\n        resolvedFileName\n      )\n    );\n  }\n  function resolveExternalModuleSymbol(moduleSymbol, dontResolveAlias) {\n    if (moduleSymbol == null ? void 0 : moduleSymbol.exports) {\n      const exportEquals = resolveSymbol(moduleSymbol.exports.get(\"export=\" /* ExportEquals */), dontResolveAlias);\n      const exported = getCommonJsExportEquals(getMergedSymbol(exportEquals), getMergedSymbol(moduleSymbol));\n      return getMergedSymbol(exported) || moduleSymbol;\n    }\n    return void 0;\n  }\n  function getCommonJsExportEquals(exported, moduleSymbol) {\n    if (!exported || exported === unknownSymbol || exported === moduleSymbol || moduleSymbol.exports.size === 1 || exported.flags & 2097152 /* Alias */) {\n      return exported;\n    }\n    const links = getSymbolLinks(exported);\n    if (links.cjsExportMerged) {\n      return links.cjsExportMerged;\n    }\n    const merged = exported.flags & 33554432 /* Transient */ ? exported : cloneSymbol(exported);\n    merged.flags = merged.flags | 512 /* ValueModule */;\n    if (merged.exports === void 0) {\n      merged.exports = createSymbolTable();\n    }\n    moduleSymbol.exports.forEach((s, name) => {\n      if (name === \"export=\" /* ExportEquals */) return;\n      merged.exports.set(name, merged.exports.has(name) ? mergeSymbol(merged.exports.get(name), s) : s);\n    });\n    if (merged === exported) {\n      getSymbolLinks(merged).resolvedExports = void 0;\n      getSymbolLinks(merged).resolvedMembers = void 0;\n    }\n    getSymbolLinks(merged).cjsExportMerged = merged;\n    return links.cjsExportMerged = merged;\n  }\n  function resolveESModuleSymbol(moduleSymbol, referencingLocation, dontResolveAlias, suppressInteropError) {\n    var _a;\n    const symbol = resolveExternalModuleSymbol(moduleSymbol, dontResolveAlias);\n    if (!dontResolveAlias && symbol) {\n      if (!suppressInteropError && !(symbol.flags & (1536 /* Module */ | 3 /* Variable */)) && !getDeclarationOfKind(symbol, 308 /* SourceFile */)) {\n        const compilerOptionName = moduleKind >= 5 /* ES2015 */ ? \"allowSyntheticDefaultImports\" : \"esModuleInterop\";\n        error2(referencingLocation, Diagnostics.This_module_can_only_be_referenced_with_ECMAScript_imports_Slashexports_by_turning_on_the_0_flag_and_referencing_its_default_export, compilerOptionName);\n        return symbol;\n      }\n      const referenceParent = referencingLocation.parent;\n      const namespaceImport = isImportDeclaration(referenceParent) && getNamespaceDeclarationNode(referenceParent);\n      if (namespaceImport || isImportCall(referenceParent)) {\n        const reference = isImportCall(referenceParent) ? referenceParent.arguments[0] : referenceParent.moduleSpecifier;\n        const type = getTypeOfSymbol(symbol);\n        const defaultOnlyType = getTypeWithSyntheticDefaultOnly(type, symbol, moduleSymbol, reference);\n        if (defaultOnlyType) {\n          return cloneTypeAsModuleType(symbol, defaultOnlyType, referenceParent);\n        }\n        const targetFile = (_a = moduleSymbol == null ? void 0 : moduleSymbol.declarations) == null ? void 0 : _a.find(isSourceFile);\n        const usageMode = getEmitSyntaxForModuleSpecifierExpression(reference);\n        let exportModuleDotExportsSymbol;\n        if (namespaceImport && targetFile && 102 /* Node20 */ <= moduleKind && moduleKind <= 199 /* NodeNext */ && usageMode === 1 /* CommonJS */ && host.getImpliedNodeFormatForEmit(targetFile) === 99 /* ESNext */ && (exportModuleDotExportsSymbol = resolveExportByName(symbol, \"module.exports\", namespaceImport, dontResolveAlias))) {\n          if (!suppressInteropError && !(symbol.flags & (1536 /* Module */ | 3 /* Variable */))) {\n            error2(referencingLocation, Diagnostics.This_module_can_only_be_referenced_with_ECMAScript_imports_Slashexports_by_turning_on_the_0_flag_and_referencing_its_default_export, \"esModuleInterop\");\n          }\n          if (getESModuleInterop(compilerOptions) && hasSignatures(type)) {\n            return cloneTypeAsModuleType(exportModuleDotExportsSymbol, type, referenceParent);\n          }\n          return exportModuleDotExportsSymbol;\n        }\n        const isEsmCjsRef = targetFile && isESMFormatImportImportingCommonjsFormatFile(usageMode, host.getImpliedNodeFormatForEmit(targetFile));\n        if (getESModuleInterop(compilerOptions) || isEsmCjsRef) {\n          if (hasSignatures(type) || getPropertyOfType(\n            type,\n            \"default\" /* Default */,\n            /*skipObjectFunctionPropertyAugment*/\n            true\n          ) || isEsmCjsRef) {\n            const moduleType = type.flags & 3670016 /* StructuredType */ ? getTypeWithSyntheticDefaultImportType(type, symbol, moduleSymbol, reference) : createDefaultPropertyWrapperForModule(symbol, symbol.parent);\n            return cloneTypeAsModuleType(symbol, moduleType, referenceParent);\n          }\n        }\n      }\n    }\n    return symbol;\n  }\n  function hasSignatures(type) {\n    return some(getSignaturesOfStructuredType(type, 0 /* Call */)) || some(getSignaturesOfStructuredType(type, 1 /* Construct */));\n  }\n  function cloneTypeAsModuleType(symbol, moduleType, referenceParent) {\n    const result = createSymbol(symbol.flags, symbol.escapedName);\n    result.declarations = symbol.declarations ? symbol.declarations.slice() : [];\n    result.parent = symbol.parent;\n    result.links.target = symbol;\n    result.links.originatingImport = referenceParent;\n    if (symbol.valueDeclaration) result.valueDeclaration = symbol.valueDeclaration;\n    if (symbol.constEnumOnlyModule) result.constEnumOnlyModule = true;\n    if (symbol.members) result.members = new Map(symbol.members);\n    if (symbol.exports) result.exports = new Map(symbol.exports);\n    const resolvedModuleType = resolveStructuredTypeMembers(moduleType);\n    result.links.type = createAnonymousType(result, resolvedModuleType.members, emptyArray, emptyArray, resolvedModuleType.indexInfos);\n    return result;\n  }\n  function hasExportAssignmentSymbol(moduleSymbol) {\n    return moduleSymbol.exports.get(\"export=\" /* ExportEquals */) !== void 0;\n  }\n  function getExportsOfModuleAsArray(moduleSymbol) {\n    return symbolsToArray(getExportsOfModule(moduleSymbol));\n  }\n  function getExportsAndPropertiesOfModule(moduleSymbol) {\n    const exports2 = getExportsOfModuleAsArray(moduleSymbol);\n    const exportEquals = resolveExternalModuleSymbol(moduleSymbol);\n    if (exportEquals !== moduleSymbol) {\n      const type = getTypeOfSymbol(exportEquals);\n      if (shouldTreatPropertiesOfExternalModuleAsExports(type)) {\n        addRange(exports2, getPropertiesOfType(type));\n      }\n    }\n    return exports2;\n  }\n  function forEachExportAndPropertyOfModule(moduleSymbol, cb) {\n    const exports2 = getExportsOfModule(moduleSymbol);\n    exports2.forEach((symbol, key) => {\n      if (!isReservedMemberName(key)) {\n        cb(symbol, key);\n      }\n    });\n    const exportEquals = resolveExternalModuleSymbol(moduleSymbol);\n    if (exportEquals !== moduleSymbol) {\n      const type = getTypeOfSymbol(exportEquals);\n      if (shouldTreatPropertiesOfExternalModuleAsExports(type)) {\n        forEachPropertyOfType(type, (symbol, escapedName) => {\n          cb(symbol, escapedName);\n        });\n      }\n    }\n  }\n  function tryGetMemberInModuleExports(memberName, moduleSymbol) {\n    const symbolTable = getExportsOfModule(moduleSymbol);\n    if (symbolTable) {\n      return symbolTable.get(memberName);\n    }\n  }\n  function tryGetMemberInModuleExportsAndProperties(memberName, moduleSymbol) {\n    const symbol = tryGetMemberInModuleExports(memberName, moduleSymbol);\n    if (symbol) {\n      return symbol;\n    }\n    const exportEquals = resolveExternalModuleSymbol(moduleSymbol);\n    if (exportEquals === moduleSymbol) {\n      return void 0;\n    }\n    const type = getTypeOfSymbol(exportEquals);\n    return shouldTreatPropertiesOfExternalModuleAsExports(type) ? getPropertyOfType(type, memberName) : void 0;\n  }\n  function shouldTreatPropertiesOfExternalModuleAsExports(resolvedExternalModuleType) {\n    return !(resolvedExternalModuleType.flags & 402784252 /* Primitive */ || getObjectFlags(resolvedExternalModuleType) & 1 /* Class */ || // `isArrayOrTupleLikeType` is too expensive to use in this auto-imports hot path\n    isArrayType(resolvedExternalModuleType) || isTupleType(resolvedExternalModuleType));\n  }\n  function getExportsOfSymbol(symbol) {\n    return symbol.flags & 6256 /* LateBindingContainer */ ? getResolvedMembersOrExportsOfSymbol(symbol, \"resolvedExports\" /* resolvedExports */) : symbol.flags & 1536 /* Module */ ? getExportsOfModule(symbol) : symbol.exports || emptySymbols;\n  }\n  function getExportsOfModule(moduleSymbol) {\n    const links = getSymbolLinks(moduleSymbol);\n    if (!links.resolvedExports) {\n      const { exports: exports2, typeOnlyExportStarMap } = getExportsOfModuleWorker(moduleSymbol);\n      links.resolvedExports = exports2;\n      links.typeOnlyExportStarMap = typeOnlyExportStarMap;\n    }\n    return links.resolvedExports;\n  }\n  function extendExportSymbols(target, source, lookupTable, exportNode) {\n    if (!source) return;\n    source.forEach((sourceSymbol, id) => {\n      if (id === \"default\" /* Default */) return;\n      const targetSymbol = target.get(id);\n      if (!targetSymbol) {\n        target.set(id, sourceSymbol);\n        if (lookupTable && exportNode) {\n          lookupTable.set(id, {\n            specifierText: getTextOfNode(exportNode.moduleSpecifier)\n          });\n        }\n      } else if (lookupTable && exportNode && targetSymbol && resolveSymbol(targetSymbol) !== resolveSymbol(sourceSymbol)) {\n        const collisionTracker = lookupTable.get(id);\n        if (!collisionTracker.exportsWithDuplicate) {\n          collisionTracker.exportsWithDuplicate = [exportNode];\n        } else {\n          collisionTracker.exportsWithDuplicate.push(exportNode);\n        }\n      }\n    });\n  }\n  function getExportsOfModuleWorker(moduleSymbol) {\n    const visitedSymbols = [];\n    let typeOnlyExportStarMap;\n    const nonTypeOnlyNames = /* @__PURE__ */ new Set();\n    moduleSymbol = resolveExternalModuleSymbol(moduleSymbol);\n    const exports2 = visit(moduleSymbol) || emptySymbols;\n    if (typeOnlyExportStarMap) {\n      nonTypeOnlyNames.forEach((name) => typeOnlyExportStarMap.delete(name));\n    }\n    return {\n      exports: exports2,\n      typeOnlyExportStarMap\n    };\n    function visit(symbol, exportStar, isTypeOnly) {\n      if (!isTypeOnly && (symbol == null ? void 0 : symbol.exports)) {\n        symbol.exports.forEach((_, name) => nonTypeOnlyNames.add(name));\n      }\n      if (!(symbol && symbol.exports && pushIfUnique(visitedSymbols, symbol))) {\n        return;\n      }\n      const symbols = new Map(symbol.exports);\n      const exportStars = symbol.exports.get(\"__export\" /* ExportStar */);\n      if (exportStars) {\n        const nestedSymbols = createSymbolTable();\n        const lookupTable = /* @__PURE__ */ new Map();\n        if (exportStars.declarations) {\n          for (const node of exportStars.declarations) {\n            const resolvedModule = resolveExternalModuleName(node, node.moduleSpecifier);\n            const exportedSymbols = visit(resolvedModule, node, isTypeOnly || node.isTypeOnly);\n            extendExportSymbols(\n              nestedSymbols,\n              exportedSymbols,\n              lookupTable,\n              node\n            );\n          }\n        }\n        lookupTable.forEach(({ exportsWithDuplicate }, id) => {\n          if (id === \"export=\" || !(exportsWithDuplicate && exportsWithDuplicate.length) || symbols.has(id)) {\n            return;\n          }\n          for (const node of exportsWithDuplicate) {\n            diagnostics.add(createDiagnosticForNode(\n              node,\n              Diagnostics.Module_0_has_already_exported_a_member_named_1_Consider_explicitly_re_exporting_to_resolve_the_ambiguity,\n              lookupTable.get(id).specifierText,\n              unescapeLeadingUnderscores(id)\n            ));\n          }\n        });\n        extendExportSymbols(symbols, nestedSymbols);\n      }\n      if (exportStar == null ? void 0 : exportStar.isTypeOnly) {\n        typeOnlyExportStarMap ?? (typeOnlyExportStarMap = /* @__PURE__ */ new Map());\n        symbols.forEach(\n          (_, escapedName) => typeOnlyExportStarMap.set(\n            escapedName,\n            exportStar\n          )\n        );\n      }\n      return symbols;\n    }\n  }\n  function getMergedSymbol(symbol) {\n    let merged;\n    return symbol && symbol.mergeId && (merged = mergedSymbols[symbol.mergeId]) ? merged : symbol;\n  }\n  function getSymbolOfDeclaration(node) {\n    return getMergedSymbol(node.symbol && getLateBoundSymbol(node.symbol));\n  }\n  function getSymbolOfNode(node) {\n    return canHaveSymbol(node) ? getSymbolOfDeclaration(node) : void 0;\n  }\n  function getParentOfSymbol(symbol) {\n    return getMergedSymbol(symbol.parent && getLateBoundSymbol(symbol.parent));\n  }\n  function getFunctionExpressionParentSymbolOrSymbol(symbol) {\n    var _a, _b;\n    return ((_a = symbol.valueDeclaration) == null ? void 0 : _a.kind) === 220 /* ArrowFunction */ || ((_b = symbol.valueDeclaration) == null ? void 0 : _b.kind) === 219 /* FunctionExpression */ ? getSymbolOfNode(symbol.valueDeclaration.parent) || symbol : symbol;\n  }\n  function getAlternativeContainingModules(symbol, enclosingDeclaration) {\n    const containingFile = getSourceFileOfNode(enclosingDeclaration);\n    const id = getNodeId(containingFile);\n    const links = getSymbolLinks(symbol);\n    let results;\n    if (links.extendedContainersByFile && (results = links.extendedContainersByFile.get(id))) {\n      return results;\n    }\n    if (containingFile && containingFile.imports) {\n      for (const importRef of containingFile.imports) {\n        if (nodeIsSynthesized(importRef)) continue;\n        const resolvedModule = resolveExternalModuleName(\n          enclosingDeclaration,\n          importRef,\n          /*ignoreErrors*/\n          true\n        );\n        if (!resolvedModule) continue;\n        const ref = getAliasForSymbolInContainer(resolvedModule, symbol);\n        if (!ref) continue;\n        results = append(results, resolvedModule);\n      }\n      if (length(results)) {\n        (links.extendedContainersByFile || (links.extendedContainersByFile = /* @__PURE__ */ new Map())).set(id, results);\n        return results;\n      }\n    }\n    if (links.extendedContainers) {\n      return links.extendedContainers;\n    }\n    const otherFiles = host.getSourceFiles();\n    for (const file of otherFiles) {\n      if (!isExternalModule(file)) continue;\n      const sym = getSymbolOfDeclaration(file);\n      const ref = getAliasForSymbolInContainer(sym, symbol);\n      if (!ref) continue;\n      results = append(results, sym);\n    }\n    return links.extendedContainers = results || emptyArray;\n  }\n  function getContainersOfSymbol(symbol, enclosingDeclaration, meaning) {\n    const container = getParentOfSymbol(symbol);\n    if (container && !(symbol.flags & 262144 /* TypeParameter */)) {\n      return getWithAlternativeContainers(container);\n    }\n    const candidates = mapDefined(symbol.declarations, (d) => {\n      if (!isAmbientModule(d) && d.parent) {\n        if (hasNonGlobalAugmentationExternalModuleSymbol(d.parent)) {\n          return getSymbolOfDeclaration(d.parent);\n        }\n        if (isModuleBlock(d.parent) && d.parent.parent && resolveExternalModuleSymbol(getSymbolOfDeclaration(d.parent.parent)) === symbol) {\n          return getSymbolOfDeclaration(d.parent.parent);\n        }\n      }\n      if (isClassExpression(d) && isBinaryExpression(d.parent) && d.parent.operatorToken.kind === 64 /* EqualsToken */ && isAccessExpression(d.parent.left) && isEntityNameExpression(d.parent.left.expression)) {\n        if (isModuleExportsAccessExpression(d.parent.left) || isExportsIdentifier(d.parent.left.expression)) {\n          return getSymbolOfDeclaration(getSourceFileOfNode(d));\n        }\n        checkExpressionCached(d.parent.left.expression);\n        return getNodeLinks(d.parent.left.expression).resolvedSymbol;\n      }\n    });\n    if (!length(candidates)) {\n      return void 0;\n    }\n    const containers = mapDefined(candidates, (candidate) => getAliasForSymbolInContainer(candidate, symbol) ? candidate : void 0);\n    let bestContainers = [];\n    let alternativeContainers = [];\n    for (const container2 of containers) {\n      const [bestMatch, ...rest] = getWithAlternativeContainers(container2);\n      bestContainers = append(bestContainers, bestMatch);\n      alternativeContainers = addRange(alternativeContainers, rest);\n    }\n    return concatenate(bestContainers, alternativeContainers);\n    function getWithAlternativeContainers(container2) {\n      const additionalContainers = mapDefined(container2.declarations, fileSymbolIfFileSymbolExportEqualsContainer);\n      const reexportContainers = enclosingDeclaration && getAlternativeContainingModules(symbol, enclosingDeclaration);\n      const objectLiteralContainer = getVariableDeclarationOfObjectLiteral(container2, meaning);\n      if (enclosingDeclaration && container2.flags & getQualifiedLeftMeaning(meaning) && getAccessibleSymbolChain(\n        container2,\n        enclosingDeclaration,\n        1920 /* Namespace */,\n        /*useOnlyExternalAliasing*/\n        false\n      )) {\n        return append(concatenate(concatenate([container2], additionalContainers), reexportContainers), objectLiteralContainer);\n      }\n      const firstVariableMatch = !(container2.flags & getQualifiedLeftMeaning(meaning)) && container2.flags & 788968 /* Type */ && getDeclaredTypeOfSymbol(container2).flags & 524288 /* Object */ && meaning === 111551 /* Value */ ? forEachSymbolTableInScope(enclosingDeclaration, (t) => {\n        return forEachEntry(t, (s) => {\n          if (s.flags & getQualifiedLeftMeaning(meaning) && getTypeOfSymbol(s) === getDeclaredTypeOfSymbol(container2)) {\n            return s;\n          }\n        });\n      }) : void 0;\n      let res = firstVariableMatch ? [firstVariableMatch, ...additionalContainers, container2] : [...additionalContainers, container2];\n      res = append(res, objectLiteralContainer);\n      res = addRange(res, reexportContainers);\n      return res;\n    }\n    function fileSymbolIfFileSymbolExportEqualsContainer(d) {\n      return container && getFileSymbolIfFileSymbolExportEqualsContainer(d, container);\n    }\n  }\n  function getVariableDeclarationOfObjectLiteral(symbol, meaning) {\n    const firstDecl = !!length(symbol.declarations) && first(symbol.declarations);\n    if (meaning & 111551 /* Value */ && firstDecl && firstDecl.parent && isVariableDeclaration(firstDecl.parent)) {\n      if (isObjectLiteralExpression(firstDecl) && firstDecl === firstDecl.parent.initializer || isTypeLiteralNode(firstDecl) && firstDecl === firstDecl.parent.type) {\n        return getSymbolOfDeclaration(firstDecl.parent);\n      }\n    }\n  }\n  function getFileSymbolIfFileSymbolExportEqualsContainer(d, container) {\n    const fileSymbol = getExternalModuleContainer(d);\n    const exported = fileSymbol && fileSymbol.exports && fileSymbol.exports.get(\"export=\" /* ExportEquals */);\n    return exported && getSymbolIfSameReference(exported, container) ? fileSymbol : void 0;\n  }\n  function getAliasForSymbolInContainer(container, symbol) {\n    if (container === getParentOfSymbol(symbol)) {\n      return symbol;\n    }\n    const exportEquals = container.exports && container.exports.get(\"export=\" /* ExportEquals */);\n    if (exportEquals && getSymbolIfSameReference(exportEquals, symbol)) {\n      return container;\n    }\n    const exports2 = getExportsOfSymbol(container);\n    const quick = exports2.get(symbol.escapedName);\n    if (quick && getSymbolIfSameReference(quick, symbol)) {\n      return quick;\n    }\n    return forEachEntry(exports2, (exported) => {\n      if (getSymbolIfSameReference(exported, symbol)) {\n        return exported;\n      }\n    });\n  }\n  function getSymbolIfSameReference(s1, s2) {\n    if (getMergedSymbol(resolveSymbol(getMergedSymbol(s1))) === getMergedSymbol(resolveSymbol(getMergedSymbol(s2)))) {\n      return s1;\n    }\n  }\n  function getExportSymbolOfValueSymbolIfExported(symbol) {\n    return getMergedSymbol(symbol && (symbol.flags & 1048576 /* ExportValue */) !== 0 && symbol.exportSymbol || symbol);\n  }\n  function symbolIsValue(symbol, includeTypeOnlyMembers) {\n    return !!(symbol.flags & 111551 /* Value */ || symbol.flags & 2097152 /* Alias */ && getSymbolFlags(symbol, !includeTypeOnlyMembers) & 111551 /* Value */);\n  }\n  function createType(flags) {\n    var _a;\n    const result = new Type29(checker, flags);\n    typeCount++;\n    result.id = typeCount;\n    (_a = tracing) == null ? void 0 : _a.recordType(result);\n    return result;\n  }\n  function createTypeWithSymbol(flags, symbol) {\n    const result = createType(flags);\n    result.symbol = symbol;\n    return result;\n  }\n  function createOriginType(flags) {\n    return new Type29(checker, flags);\n  }\n  function createIntrinsicType(kind, intrinsicName, objectFlags = 0 /* None */, debugIntrinsicName) {\n    checkIntrinsicName(intrinsicName, debugIntrinsicName);\n    const type = createType(kind);\n    type.intrinsicName = intrinsicName;\n    type.debugIntrinsicName = debugIntrinsicName;\n    type.objectFlags = objectFlags | 524288 /* CouldContainTypeVariablesComputed */ | 2097152 /* IsGenericTypeComputed */ | 33554432 /* IsUnknownLikeUnionComputed */ | 16777216 /* IsNeverIntersectionComputed */;\n    return type;\n  }\n  function checkIntrinsicName(name, debug) {\n    const key = `${name},${debug ?? \"\"}`;\n    if (seenIntrinsicNames.has(key)) {\n      Debug.fail(`Duplicate intrinsic type name ${name}${debug ? ` (${debug})` : \"\"}; you may need to pass a name to createIntrinsicType.`);\n    }\n    seenIntrinsicNames.add(key);\n  }\n  function createObjectType(objectFlags, symbol) {\n    const type = createTypeWithSymbol(524288 /* Object */, symbol);\n    type.objectFlags = objectFlags;\n    type.members = void 0;\n    type.properties = void 0;\n    type.callSignatures = void 0;\n    type.constructSignatures = void 0;\n    type.indexInfos = void 0;\n    return type;\n  }\n  function createTypeofType() {\n    return getUnionType(arrayFrom(typeofNEFacts.keys(), getStringLiteralType));\n  }\n  function createTypeParameter(symbol) {\n    return createTypeWithSymbol(262144 /* TypeParameter */, symbol);\n  }\n  function isReservedMemberName(name) {\n    return name.charCodeAt(0) === 95 /* _ */ && name.charCodeAt(1) === 95 /* _ */ && name.charCodeAt(2) !== 95 /* _ */ && name.charCodeAt(2) !== 64 /* at */ && name.charCodeAt(2) !== 35 /* hash */;\n  }\n  function getNamedMembers(members) {\n    let result;\n    members.forEach((symbol, id) => {\n      if (isNamedMember(symbol, id)) {\n        (result || (result = [])).push(symbol);\n      }\n    });\n    return result || emptyArray;\n  }\n  function isNamedMember(member, escapedName) {\n    return !isReservedMemberName(escapedName) && symbolIsValue(member);\n  }\n  function getNamedOrIndexSignatureMembers(members) {\n    const result = getNamedMembers(members);\n    const index = getIndexSymbolFromSymbolTable(members);\n    return index ? concatenate(result, [index]) : result;\n  }\n  function setStructuredTypeMembers(type, members, callSignatures, constructSignatures, indexInfos) {\n    const resolved = type;\n    resolved.members = members;\n    resolved.properties = emptyArray;\n    resolved.callSignatures = callSignatures;\n    resolved.constructSignatures = constructSignatures;\n    resolved.indexInfos = indexInfos;\n    if (members !== emptySymbols) resolved.properties = getNamedMembers(members);\n    return resolved;\n  }\n  function createAnonymousType(symbol, members, callSignatures, constructSignatures, indexInfos) {\n    return setStructuredTypeMembers(createObjectType(16 /* Anonymous */, symbol), members, callSignatures, constructSignatures, indexInfos);\n  }\n  function getResolvedTypeWithoutAbstractConstructSignatures(type) {\n    if (type.constructSignatures.length === 0) return type;\n    if (type.objectTypeWithoutAbstractConstructSignatures) return type.objectTypeWithoutAbstractConstructSignatures;\n    const constructSignatures = filter(type.constructSignatures, (signature) => !(signature.flags & 4 /* Abstract */));\n    if (type.constructSignatures === constructSignatures) return type;\n    const typeCopy = createAnonymousType(\n      type.symbol,\n      type.members,\n      type.callSignatures,\n      some(constructSignatures) ? constructSignatures : emptyArray,\n      type.indexInfos\n    );\n    type.objectTypeWithoutAbstractConstructSignatures = typeCopy;\n    typeCopy.objectTypeWithoutAbstractConstructSignatures = typeCopy;\n    return typeCopy;\n  }\n  function forEachSymbolTableInScope(enclosingDeclaration, callback) {\n    let result;\n    for (let location = enclosingDeclaration; location; location = location.parent) {\n      if (canHaveLocals(location) && location.locals && !isGlobalSourceFile(location)) {\n        if (result = callback(\n          location.locals,\n          /*ignoreQualification*/\n          void 0,\n          /*isLocalNameLookup*/\n          true,\n          location\n        )) {\n          return result;\n        }\n      }\n      switch (location.kind) {\n        case 308 /* SourceFile */:\n          if (!isExternalOrCommonJsModule(location)) {\n            break;\n          }\n        // falls through\n        case 268 /* ModuleDeclaration */:\n          const sym = getSymbolOfDeclaration(location);\n          if (result = callback(\n            (sym == null ? void 0 : sym.exports) || emptySymbols,\n            /*ignoreQualification*/\n            void 0,\n            /*isLocalNameLookup*/\n            true,\n            location\n          )) {\n            return result;\n          }\n          break;\n        case 264 /* ClassDeclaration */:\n        case 232 /* ClassExpression */:\n        case 265 /* InterfaceDeclaration */:\n          let table;\n          (getSymbolOfDeclaration(location).members || emptySymbols).forEach((memberSymbol, key) => {\n            if (memberSymbol.flags & (788968 /* Type */ & ~67108864 /* Assignment */)) {\n              (table || (table = createSymbolTable())).set(key, memberSymbol);\n            }\n          });\n          if (table && (result = callback(\n            table,\n            /*ignoreQualification*/\n            void 0,\n            /*isLocalNameLookup*/\n            false,\n            location\n          ))) {\n            return result;\n          }\n          break;\n      }\n    }\n    return callback(\n      globals,\n      /*ignoreQualification*/\n      void 0,\n      /*isLocalNameLookup*/\n      true\n    );\n  }\n  function getQualifiedLeftMeaning(rightMeaning) {\n    return rightMeaning === 111551 /* Value */ ? 111551 /* Value */ : 1920 /* Namespace */;\n  }\n  function getAccessibleSymbolChain(symbol, enclosingDeclaration, meaning, useOnlyExternalAliasing, visitedSymbolTablesMap = /* @__PURE__ */ new Map()) {\n    if (!(symbol && !isPropertyOrMethodDeclarationSymbol(symbol))) {\n      return void 0;\n    }\n    const links = getSymbolLinks(symbol);\n    const cache = links.accessibleChainCache || (links.accessibleChainCache = /* @__PURE__ */ new Map());\n    const firstRelevantLocation = forEachSymbolTableInScope(enclosingDeclaration, (_, __, ___, node) => node);\n    const key = `${useOnlyExternalAliasing ? 0 : 1}|${firstRelevantLocation ? getNodeId(firstRelevantLocation) : 0}|${meaning}`;\n    if (cache.has(key)) {\n      return cache.get(key);\n    }\n    const id = getSymbolId(symbol);\n    let visitedSymbolTables = visitedSymbolTablesMap.get(id);\n    if (!visitedSymbolTables) {\n      visitedSymbolTablesMap.set(id, visitedSymbolTables = []);\n    }\n    const result = forEachSymbolTableInScope(enclosingDeclaration, getAccessibleSymbolChainFromSymbolTable);\n    cache.set(key, result);\n    return result;\n    function getAccessibleSymbolChainFromSymbolTable(symbols, ignoreQualification, isLocalNameLookup) {\n      if (!pushIfUnique(visitedSymbolTables, symbols)) {\n        return void 0;\n      }\n      const result2 = trySymbolTable(symbols, ignoreQualification, isLocalNameLookup);\n      visitedSymbolTables.pop();\n      return result2;\n    }\n    function canQualifySymbol(symbolFromSymbolTable, meaning2) {\n      return !needsQualification(symbolFromSymbolTable, enclosingDeclaration, meaning2) || // If symbol needs qualification, make sure that parent is accessible, if it is then this symbol is accessible too\n      !!getAccessibleSymbolChain(symbolFromSymbolTable.parent, enclosingDeclaration, getQualifiedLeftMeaning(meaning2), useOnlyExternalAliasing, visitedSymbolTablesMap);\n    }\n    function isAccessible(symbolFromSymbolTable, resolvedAliasSymbol, ignoreQualification) {\n      return (symbol === (resolvedAliasSymbol || symbolFromSymbolTable) || getMergedSymbol(symbol) === getMergedSymbol(resolvedAliasSymbol || symbolFromSymbolTable)) && // if the symbolFromSymbolTable is not external module (it could be if it was determined as ambient external module and would be in globals table)\n      // and if symbolFromSymbolTable or alias resolution matches the symbol,\n      // check the symbol can be qualified, it is only then this symbol is accessible\n      !some(symbolFromSymbolTable.declarations, hasNonGlobalAugmentationExternalModuleSymbol) && (ignoreQualification || canQualifySymbol(getMergedSymbol(symbolFromSymbolTable), meaning));\n    }\n    function trySymbolTable(symbols, ignoreQualification, isLocalNameLookup) {\n      if (isAccessible(\n        symbols.get(symbol.escapedName),\n        /*resolvedAliasSymbol*/\n        void 0,\n        ignoreQualification\n      )) {\n        return [symbol];\n      }\n      const result2 = forEachEntry(symbols, (symbolFromSymbolTable) => {\n        if (symbolFromSymbolTable.flags & 2097152 /* Alias */ && symbolFromSymbolTable.escapedName !== \"export=\" /* ExportEquals */ && symbolFromSymbolTable.escapedName !== \"default\" /* Default */ && !(isUMDExportSymbol(symbolFromSymbolTable) && enclosingDeclaration && isExternalModule(getSourceFileOfNode(enclosingDeclaration))) && (!useOnlyExternalAliasing || some(symbolFromSymbolTable.declarations, isExternalModuleImportEqualsDeclaration)) && (isLocalNameLookup ? !some(symbolFromSymbolTable.declarations, isNamespaceReexportDeclaration) : true) && (ignoreQualification || !getDeclarationOfKind(symbolFromSymbolTable, 282 /* ExportSpecifier */))) {\n          const resolvedImportedSymbol = resolveAlias(symbolFromSymbolTable);\n          const candidate = getCandidateListForSymbol(symbolFromSymbolTable, resolvedImportedSymbol, ignoreQualification);\n          if (candidate) {\n            return candidate;\n          }\n        }\n        if (symbolFromSymbolTable.escapedName === symbol.escapedName && symbolFromSymbolTable.exportSymbol) {\n          if (isAccessible(\n            getMergedSymbol(symbolFromSymbolTable.exportSymbol),\n            /*resolvedAliasSymbol*/\n            void 0,\n            ignoreQualification\n          )) {\n            return [symbol];\n          }\n        }\n      });\n      return result2 || (symbols === globals ? getCandidateListForSymbol(globalThisSymbol, globalThisSymbol, ignoreQualification) : void 0);\n    }\n    function getCandidateListForSymbol(symbolFromSymbolTable, resolvedImportedSymbol, ignoreQualification) {\n      if (isAccessible(symbolFromSymbolTable, resolvedImportedSymbol, ignoreQualification)) {\n        return [symbolFromSymbolTable];\n      }\n      const candidateTable = getExportsOfSymbol(resolvedImportedSymbol);\n      const accessibleSymbolsFromExports = candidateTable && getAccessibleSymbolChainFromSymbolTable(\n        candidateTable,\n        /*ignoreQualification*/\n        true\n      );\n      if (accessibleSymbolsFromExports && canQualifySymbol(symbolFromSymbolTable, getQualifiedLeftMeaning(meaning))) {\n        return [symbolFromSymbolTable].concat(accessibleSymbolsFromExports);\n      }\n    }\n  }\n  function needsQualification(symbol, enclosingDeclaration, meaning) {\n    let qualify = false;\n    forEachSymbolTableInScope(enclosingDeclaration, (symbolTable) => {\n      let symbolFromSymbolTable = getMergedSymbol(symbolTable.get(symbol.escapedName));\n      if (!symbolFromSymbolTable) {\n        return false;\n      }\n      if (symbolFromSymbolTable === symbol) {\n        return true;\n      }\n      const shouldResolveAlias = symbolFromSymbolTable.flags & 2097152 /* Alias */ && !getDeclarationOfKind(symbolFromSymbolTable, 282 /* ExportSpecifier */);\n      symbolFromSymbolTable = shouldResolveAlias ? resolveAlias(symbolFromSymbolTable) : symbolFromSymbolTable;\n      const flags = shouldResolveAlias ? getSymbolFlags(symbolFromSymbolTable) : symbolFromSymbolTable.flags;\n      if (flags & meaning) {\n        qualify = true;\n        return true;\n      }\n      return false;\n    });\n    return qualify;\n  }\n  function isPropertyOrMethodDeclarationSymbol(symbol) {\n    if (symbol.declarations && symbol.declarations.length) {\n      for (const declaration of symbol.declarations) {\n        switch (declaration.kind) {\n          case 173 /* PropertyDeclaration */:\n          case 175 /* MethodDeclaration */:\n          case 178 /* GetAccessor */:\n          case 179 /* SetAccessor */:\n            continue;\n          default:\n            return false;\n        }\n      }\n      return true;\n    }\n    return false;\n  }\n  function isTypeSymbolAccessible(typeSymbol, enclosingDeclaration) {\n    const access = isSymbolAccessibleWorker(\n      typeSymbol,\n      enclosingDeclaration,\n      788968 /* Type */,\n      /*shouldComputeAliasesToMakeVisible*/\n      false,\n      /*allowModules*/\n      true\n    );\n    return access.accessibility === 0 /* Accessible */;\n  }\n  function isValueSymbolAccessible(typeSymbol, enclosingDeclaration) {\n    const access = isSymbolAccessibleWorker(\n      typeSymbol,\n      enclosingDeclaration,\n      111551 /* Value */,\n      /*shouldComputeAliasesToMakeVisible*/\n      false,\n      /*allowModules*/\n      true\n    );\n    return access.accessibility === 0 /* Accessible */;\n  }\n  function isSymbolAccessibleByFlags(typeSymbol, enclosingDeclaration, flags) {\n    const access = isSymbolAccessibleWorker(\n      typeSymbol,\n      enclosingDeclaration,\n      flags,\n      /*shouldComputeAliasesToMakeVisible*/\n      false,\n      /*allowModules*/\n      false\n    );\n    return access.accessibility === 0 /* Accessible */;\n  }\n  function isAnySymbolAccessible(symbols, enclosingDeclaration, initialSymbol, meaning, shouldComputeAliasesToMakeVisible, allowModules) {\n    if (!length(symbols)) return;\n    let hadAccessibleChain;\n    let earlyModuleBail = false;\n    for (const symbol of symbols) {\n      const accessibleSymbolChain = getAccessibleSymbolChain(\n        symbol,\n        enclosingDeclaration,\n        meaning,\n        /*useOnlyExternalAliasing*/\n        false\n      );\n      if (accessibleSymbolChain) {\n        hadAccessibleChain = symbol;\n        const hasAccessibleDeclarations = hasVisibleDeclarations(accessibleSymbolChain[0], shouldComputeAliasesToMakeVisible);\n        if (hasAccessibleDeclarations) {\n          return hasAccessibleDeclarations;\n        }\n      }\n      if (allowModules) {\n        if (some(symbol.declarations, hasNonGlobalAugmentationExternalModuleSymbol)) {\n          if (shouldComputeAliasesToMakeVisible) {\n            earlyModuleBail = true;\n            continue;\n          }\n          return {\n            accessibility: 0 /* Accessible */\n          };\n        }\n      }\n      const containers = getContainersOfSymbol(symbol, enclosingDeclaration, meaning);\n      const parentResult = isAnySymbolAccessible(containers, enclosingDeclaration, initialSymbol, initialSymbol === symbol ? getQualifiedLeftMeaning(meaning) : meaning, shouldComputeAliasesToMakeVisible, allowModules);\n      if (parentResult) {\n        return parentResult;\n      }\n    }\n    if (earlyModuleBail) {\n      return {\n        accessibility: 0 /* Accessible */\n      };\n    }\n    if (hadAccessibleChain) {\n      return {\n        accessibility: 1 /* NotAccessible */,\n        errorSymbolName: symbolToString(initialSymbol, enclosingDeclaration, meaning),\n        errorModuleName: hadAccessibleChain !== initialSymbol ? symbolToString(hadAccessibleChain, enclosingDeclaration, 1920 /* Namespace */) : void 0\n      };\n    }\n  }\n  function isSymbolAccessible(symbol, enclosingDeclaration, meaning, shouldComputeAliasesToMakeVisible) {\n    return isSymbolAccessibleWorker(\n      symbol,\n      enclosingDeclaration,\n      meaning,\n      shouldComputeAliasesToMakeVisible,\n      /*allowModules*/\n      true\n    );\n  }\n  function isSymbolAccessibleWorker(symbol, enclosingDeclaration, meaning, shouldComputeAliasesToMakeVisible, allowModules) {\n    if (symbol && enclosingDeclaration) {\n      const result = isAnySymbolAccessible([symbol], enclosingDeclaration, symbol, meaning, shouldComputeAliasesToMakeVisible, allowModules);\n      if (result) {\n        return result;\n      }\n      const symbolExternalModule = forEach(symbol.declarations, getExternalModuleContainer);\n      if (symbolExternalModule) {\n        const enclosingExternalModule = getExternalModuleContainer(enclosingDeclaration);\n        if (symbolExternalModule !== enclosingExternalModule) {\n          return {\n            accessibility: 2 /* CannotBeNamed */,\n            errorSymbolName: symbolToString(symbol, enclosingDeclaration, meaning),\n            errorModuleName: symbolToString(symbolExternalModule),\n            errorNode: isInJSFile(enclosingDeclaration) ? enclosingDeclaration : void 0\n          };\n        }\n      }\n      return {\n        accessibility: 1 /* NotAccessible */,\n        errorSymbolName: symbolToString(symbol, enclosingDeclaration, meaning)\n      };\n    }\n    return { accessibility: 0 /* Accessible */ };\n  }\n  function getExternalModuleContainer(declaration) {\n    const node = findAncestor(declaration, hasExternalModuleSymbol);\n    return node && getSymbolOfDeclaration(node);\n  }\n  function hasExternalModuleSymbol(declaration) {\n    return isAmbientModule(declaration) || declaration.kind === 308 /* SourceFile */ && isExternalOrCommonJsModule(declaration);\n  }\n  function hasNonGlobalAugmentationExternalModuleSymbol(declaration) {\n    return isModuleWithStringLiteralName(declaration) || declaration.kind === 308 /* SourceFile */ && isExternalOrCommonJsModule(declaration);\n  }\n  function hasVisibleDeclarations(symbol, shouldComputeAliasToMakeVisible) {\n    let aliasesToMakeVisible;\n    if (!every(filter(symbol.declarations, (d) => d.kind !== 80 /* Identifier */), getIsDeclarationVisible)) {\n      return void 0;\n    }\n    return { accessibility: 0 /* Accessible */, aliasesToMakeVisible };\n    function getIsDeclarationVisible(declaration) {\n      var _a, _b;\n      if (!isDeclarationVisible(declaration)) {\n        const anyImportSyntax = getAnyImportSyntax(declaration);\n        if (anyImportSyntax && !hasSyntacticModifier(anyImportSyntax, 32 /* Export */) && // import clause without export\n        isDeclarationVisible(anyImportSyntax.parent)) {\n          return addVisibleAlias(declaration, anyImportSyntax);\n        } else if (isVariableDeclaration(declaration) && isVariableStatement(declaration.parent.parent) && !hasSyntacticModifier(declaration.parent.parent, 32 /* Export */) && // unexported variable statement\n        isDeclarationVisible(declaration.parent.parent.parent)) {\n          return addVisibleAlias(declaration, declaration.parent.parent);\n        } else if (isLateVisibilityPaintedStatement(declaration) && !hasSyntacticModifier(declaration, 32 /* Export */) && isDeclarationVisible(declaration.parent)) {\n          return addVisibleAlias(declaration, declaration);\n        } else if (isBindingElement(declaration)) {\n          if (symbol.flags & 2097152 /* Alias */ && isInJSFile(declaration) && ((_a = declaration.parent) == null ? void 0 : _a.parent) && isVariableDeclaration(declaration.parent.parent) && ((_b = declaration.parent.parent.parent) == null ? void 0 : _b.parent) && isVariableStatement(declaration.parent.parent.parent.parent) && !hasSyntacticModifier(declaration.parent.parent.parent.parent, 32 /* Export */) && declaration.parent.parent.parent.parent.parent && isDeclarationVisible(declaration.parent.parent.parent.parent.parent)) {\n            return addVisibleAlias(declaration, declaration.parent.parent.parent.parent);\n          } else if (symbol.flags & 2 /* BlockScopedVariable */) {\n            const rootDeclaration = walkUpBindingElementsAndPatterns(declaration);\n            if (rootDeclaration.kind === 170 /* Parameter */) {\n              return false;\n            }\n            const variableStatement = rootDeclaration.parent.parent;\n            if (variableStatement.kind !== 244 /* VariableStatement */) {\n              return false;\n            }\n            if (hasSyntacticModifier(variableStatement, 32 /* Export */)) {\n              return true;\n            }\n            if (!isDeclarationVisible(variableStatement.parent)) {\n              return false;\n            }\n            return addVisibleAlias(declaration, variableStatement);\n          }\n        }\n        return false;\n      }\n      return true;\n    }\n    function addVisibleAlias(declaration, aliasingStatement) {\n      if (shouldComputeAliasToMakeVisible) {\n        getNodeLinks(declaration).isVisible = true;\n        aliasesToMakeVisible = appendIfUnique(aliasesToMakeVisible, aliasingStatement);\n      }\n      return true;\n    }\n  }\n  function getMeaningOfEntityNameReference(entityName) {\n    let meaning;\n    if (entityName.parent.kind === 187 /* TypeQuery */ || entityName.parent.kind === 234 /* ExpressionWithTypeArguments */ && !isPartOfTypeNode(entityName.parent) || entityName.parent.kind === 168 /* ComputedPropertyName */ || entityName.parent.kind === 183 /* TypePredicate */ && entityName.parent.parameterName === entityName) {\n      meaning = 111551 /* Value */ | 1048576 /* ExportValue */;\n    } else if (entityName.kind === 167 /* QualifiedName */ || entityName.kind === 212 /* PropertyAccessExpression */ || entityName.parent.kind === 272 /* ImportEqualsDeclaration */ || entityName.parent.kind === 167 /* QualifiedName */ && entityName.parent.left === entityName || entityName.parent.kind === 212 /* PropertyAccessExpression */ && entityName.parent.expression === entityName || entityName.parent.kind === 213 /* ElementAccessExpression */ && entityName.parent.expression === entityName) {\n      meaning = 1920 /* Namespace */;\n    } else {\n      meaning = 788968 /* Type */;\n    }\n    return meaning;\n  }\n  function isEntityNameVisible(entityName, enclosingDeclaration, shouldComputeAliasToMakeVisible = true) {\n    const meaning = getMeaningOfEntityNameReference(entityName);\n    const firstIdentifier = getFirstIdentifier(entityName);\n    const symbol = resolveName(\n      enclosingDeclaration,\n      firstIdentifier.escapedText,\n      meaning,\n      /*nameNotFoundMessage*/\n      void 0,\n      /*isUse*/\n      false\n    );\n    if (symbol && symbol.flags & 262144 /* TypeParameter */ && meaning & 788968 /* Type */) {\n      return { accessibility: 0 /* Accessible */ };\n    }\n    if (!symbol && isThisIdentifier(firstIdentifier) && isSymbolAccessible(\n      getSymbolOfDeclaration(getThisContainer(\n        firstIdentifier,\n        /*includeArrowFunctions*/\n        false,\n        /*includeClassComputedPropertyName*/\n        false\n      )),\n      firstIdentifier,\n      meaning,\n      /*shouldComputeAliasesToMakeVisible*/\n      false\n    ).accessibility === 0 /* Accessible */) {\n      return { accessibility: 0 /* Accessible */ };\n    }\n    if (!symbol) {\n      return {\n        accessibility: 3 /* NotResolved */,\n        errorSymbolName: getTextOfNode(firstIdentifier),\n        errorNode: firstIdentifier\n      };\n    }\n    return hasVisibleDeclarations(symbol, shouldComputeAliasToMakeVisible) || {\n      accessibility: 1 /* NotAccessible */,\n      errorSymbolName: getTextOfNode(firstIdentifier),\n      errorNode: firstIdentifier\n    };\n  }\n  function symbolToString(symbol, enclosingDeclaration, meaning, flags = 4 /* AllowAnyNodeKind */, writer) {\n    let nodeFlags = 70221824 /* IgnoreErrors */;\n    let internalNodeFlags = 0 /* None */;\n    if (flags & 2 /* UseOnlyExternalAliasing */) {\n      nodeFlags |= 128 /* UseOnlyExternalAliasing */;\n    }\n    if (flags & 1 /* WriteTypeParametersOrArguments */) {\n      nodeFlags |= 512 /* WriteTypeParametersInQualifiedName */;\n    }\n    if (flags & 8 /* UseAliasDefinedOutsideCurrentScope */) {\n      nodeFlags |= 16384 /* UseAliasDefinedOutsideCurrentScope */;\n    }\n    if (flags & 32 /* DoNotIncludeSymbolChain */) {\n      internalNodeFlags |= 4 /* DoNotIncludeSymbolChain */;\n    }\n    if (flags & 16 /* WriteComputedProps */) {\n      internalNodeFlags |= 1 /* WriteComputedProps */;\n    }\n    const builder = flags & 4 /* AllowAnyNodeKind */ ? nodeBuilder.symbolToNode : nodeBuilder.symbolToEntityName;\n    return writer ? symbolToStringWorker(writer).getText() : usingSingleLineStringWriter(symbolToStringWorker);\n    function symbolToStringWorker(writer2) {\n      const entity = builder(symbol, meaning, enclosingDeclaration, nodeFlags, internalNodeFlags);\n      const printer = (enclosingDeclaration == null ? void 0 : enclosingDeclaration.kind) === 308 /* SourceFile */ ? createPrinterWithRemoveCommentsNeverAsciiEscape() : createPrinterWithRemoveComments();\n      const sourceFile = enclosingDeclaration && getSourceFileOfNode(enclosingDeclaration);\n      printer.writeNode(\n        4 /* Unspecified */,\n        entity,\n        /*sourceFile*/\n        sourceFile,\n        writer2\n      );\n      return writer2;\n    }\n  }\n  function signatureToString(signature, enclosingDeclaration, flags = 0 /* None */, kind, writer, maximumLength, verbosityLevel, out) {\n    return writer ? signatureToStringWorker(writer).getText() : usingSingleLineStringWriter(signatureToStringWorker);\n    function signatureToStringWorker(writer2) {\n      let sigOutput;\n      if (flags & 262144 /* WriteArrowStyleSignature */) {\n        sigOutput = kind === 1 /* Construct */ ? 186 /* ConstructorType */ : 185 /* FunctionType */;\n      } else {\n        sigOutput = kind === 1 /* Construct */ ? 181 /* ConstructSignature */ : 180 /* CallSignature */;\n      }\n      const sig = nodeBuilder.signatureToSignatureDeclaration(\n        signature,\n        sigOutput,\n        enclosingDeclaration,\n        toNodeBuilderFlags(flags) | 70221824 /* IgnoreErrors */ | 512 /* WriteTypeParametersInQualifiedName */,\n        /*internalFlags*/\n        void 0,\n        /*tracker*/\n        void 0,\n        maximumLength,\n        verbosityLevel,\n        out\n      );\n      const printer = createPrinterWithRemoveCommentsOmitTrailingSemicolon();\n      const sourceFile = enclosingDeclaration && getSourceFileOfNode(enclosingDeclaration);\n      printer.writeNode(\n        4 /* Unspecified */,\n        sig,\n        /*sourceFile*/\n        sourceFile,\n        getTrailingSemicolonDeferringWriter(writer2)\n      );\n      return writer2;\n    }\n  }\n  function typeToString(type, enclosingDeclaration, flags = 1048576 /* AllowUniqueESSymbolType */ | 16384 /* UseAliasDefinedOutsideCurrentScope */, writer = createTextWriter(\"\"), maximumLength, verbosityLevel, out) {\n    const noTruncation = !maximumLength && compilerOptions.noErrorTruncation || flags & 1 /* NoTruncation */;\n    const typeNode = nodeBuilder.typeToTypeNode(\n      type,\n      enclosingDeclaration,\n      toNodeBuilderFlags(flags) | 70221824 /* IgnoreErrors */ | (noTruncation ? 1 /* NoTruncation */ : 0),\n      /*internalFlags*/\n      void 0,\n      /*tracker*/\n      void 0,\n      maximumLength,\n      verbosityLevel,\n      out\n    );\n    if (typeNode === void 0) return Debug.fail(\"should always get typenode\");\n    const printer = type !== unresolvedType ? createPrinterWithRemoveComments() : createPrinterWithDefaults();\n    const sourceFile = enclosingDeclaration && getSourceFileOfNode(enclosingDeclaration);\n    printer.writeNode(\n      4 /* Unspecified */,\n      typeNode,\n      /*sourceFile*/\n      sourceFile,\n      writer\n    );\n    const result = writer.getText();\n    const maxLength2 = maximumLength || (noTruncation ? noTruncationMaximumTruncationLength * 2 : defaultMaximumTruncationLength * 2);\n    if (maxLength2 && result && result.length >= maxLength2) {\n      return result.substr(0, maxLength2 - \"...\".length) + \"...\";\n    }\n    return result;\n  }\n  function getTypeNamesForErrorDisplay(left, right) {\n    let leftStr = symbolValueDeclarationIsContextSensitive(left.symbol) ? typeToString(left, left.symbol.valueDeclaration) : typeToString(left);\n    let rightStr = symbolValueDeclarationIsContextSensitive(right.symbol) ? typeToString(right, right.symbol.valueDeclaration) : typeToString(right);\n    if (leftStr === rightStr) {\n      leftStr = getTypeNameForErrorDisplay(left);\n      rightStr = getTypeNameForErrorDisplay(right);\n    }\n    return [leftStr, rightStr];\n  }\n  function getTypeNameForErrorDisplay(type) {\n    return typeToString(\n      type,\n      /*enclosingDeclaration*/\n      void 0,\n      64 /* UseFullyQualifiedType */\n    );\n  }\n  function symbolValueDeclarationIsContextSensitive(symbol) {\n    return symbol && !!symbol.valueDeclaration && isExpression(symbol.valueDeclaration) && !isContextSensitive(symbol.valueDeclaration);\n  }\n  function toNodeBuilderFlags(flags = 0 /* None */) {\n    return flags & 848330095 /* NodeBuilderFlagsMask */;\n  }\n  function isClassInstanceSide(type) {\n    return !!type.symbol && !!(type.symbol.flags & 32 /* Class */) && (type === getDeclaredTypeOfClassOrInterface(type.symbol) || !!(type.flags & 524288 /* Object */) && !!(getObjectFlags(type) & 16777216 /* IsClassInstanceClone */));\n  }\n  function getTypeFromTypeNodeWithoutContext(node) {\n    return getTypeFromTypeNode(node);\n  }\n  function createNodeBuilder() {\n    const syntacticBuilderResolver = {\n      evaluateEntityNameExpression,\n      isExpandoFunctionDeclaration,\n      hasLateBindableName,\n      shouldRemoveDeclaration(context, node) {\n        return !(context.internalFlags & 8 /* AllowUnresolvedNames */ && isEntityNameExpression(node.name.expression) && checkComputedPropertyName(node.name).flags & 1 /* Any */);\n      },\n      createRecoveryBoundary(context) {\n        return createRecoveryBoundary(context);\n      },\n      isDefinitelyReferenceToGlobalSymbolObject,\n      getAllAccessorDeclarations: getAllAccessorDeclarationsForDeclaration,\n      requiresAddingImplicitUndefined(declaration, symbol, enclosingDeclaration) {\n        var _a;\n        switch (declaration.kind) {\n          case 173 /* PropertyDeclaration */:\n          case 172 /* PropertySignature */:\n          case 349 /* JSDocPropertyTag */:\n            symbol ?? (symbol = getSymbolOfDeclaration(declaration));\n            const type = getTypeOfSymbol(symbol);\n            return !!(symbol.flags & 4 /* Property */ && symbol.flags & 16777216 /* Optional */ && isOptionalDeclaration(declaration) && ((_a = symbol.links) == null ? void 0 : _a.mappedType) && containsNonMissingUndefinedType(type));\n          case 170 /* Parameter */:\n          case 342 /* JSDocParameterTag */:\n            return requiresAddingImplicitUndefined(declaration, enclosingDeclaration);\n          default:\n            Debug.assertNever(declaration);\n        }\n      },\n      isOptionalParameter,\n      isUndefinedIdentifierExpression(node) {\n        return getSymbolAtLocation(node) === undefinedSymbol;\n      },\n      isEntityNameVisible(context, entityName, shouldComputeAliasToMakeVisible) {\n        return isEntityNameVisible(entityName, context.enclosingDeclaration, shouldComputeAliasToMakeVisible);\n      },\n      serializeExistingTypeNode(context, typeNode, addUndefined) {\n        return serializeExistingTypeNode(context, typeNode, !!addUndefined);\n      },\n      serializeReturnTypeForSignature(syntacticContext, signatureDeclaration, symbol) {\n        const context = syntacticContext;\n        const signature = getSignatureFromDeclaration(signatureDeclaration);\n        symbol ?? (symbol = getSymbolOfDeclaration(signatureDeclaration));\n        const returnType = context.enclosingSymbolTypes.get(getSymbolId(symbol)) ?? instantiateType(getReturnTypeOfSignature(signature), context.mapper);\n        return serializeInferredReturnTypeForSignature(context, signature, returnType);\n      },\n      serializeTypeOfExpression(syntacticContext, expr) {\n        const context = syntacticContext;\n        const type = instantiateType(getWidenedType(getRegularTypeOfExpression(expr)), context.mapper);\n        return typeToTypeNodeHelper(type, context);\n      },\n      serializeTypeOfDeclaration(syntacticContext, declaration, symbol) {\n        var _a;\n        const context = syntacticContext;\n        symbol ?? (symbol = getSymbolOfDeclaration(declaration));\n        let type = (_a = context.enclosingSymbolTypes) == null ? void 0 : _a.get(getSymbolId(symbol));\n        if (type === void 0) {\n          type = symbol.flags & 98304 /* Accessor */ && declaration.kind === 179 /* SetAccessor */ ? instantiateType(getWriteTypeOfSymbol(symbol), context.mapper) : symbol && !(symbol.flags & (2048 /* TypeLiteral */ | 131072 /* Signature */)) ? instantiateType(getWidenedLiteralType(getTypeOfSymbol(symbol)), context.mapper) : errorType;\n        }\n        const addUndefinedForParameter = declaration && (isParameter(declaration) || isJSDocParameterTag(declaration)) && requiresAddingImplicitUndefined(declaration, context.enclosingDeclaration);\n        if (addUndefinedForParameter) {\n          type = getOptionalType(type);\n        }\n        return serializeInferredTypeForDeclaration(symbol, context, type);\n      },\n      serializeNameOfParameter(context, parameter) {\n        return parameterToParameterDeclarationName(getSymbolOfDeclaration(parameter), parameter, context);\n      },\n      serializeEntityName(syntacticContext, node) {\n        const context = syntacticContext;\n        const symbol = getSymbolAtLocation(\n          node,\n          /*ignoreErrors*/\n          true\n        );\n        if (!symbol) return void 0;\n        if (!isValueSymbolAccessible(symbol, context.enclosingDeclaration)) return void 0;\n        return symbolToExpression(symbol, context, 111551 /* Value */ | 1048576 /* ExportValue */);\n      },\n      serializeTypeName(context, node, isTypeOf, typeArguments) {\n        return serializeTypeName(context, node, isTypeOf, typeArguments);\n      },\n      getJsDocPropertyOverride(syntacticContext, jsDocTypeLiteral, jsDocProperty) {\n        const context = syntacticContext;\n        const name = isIdentifier(jsDocProperty.name) ? jsDocProperty.name : jsDocProperty.name.right;\n        const typeViaParent = getTypeOfPropertyOfType(getTypeFromTypeNode2(context, jsDocTypeLiteral), name.escapedText);\n        const overrideTypeNode = typeViaParent && jsDocProperty.typeExpression && getTypeFromTypeNode2(context, jsDocProperty.typeExpression.type) !== typeViaParent ? typeToTypeNodeHelper(typeViaParent, context) : void 0;\n        return overrideTypeNode;\n      },\n      enterNewScope(context, node) {\n        if (isFunctionLike(node) || isJSDocSignature(node)) {\n          const signature = getSignatureFromDeclaration(node);\n          return enterNewScope(context, node, signature.parameters, signature.typeParameters);\n        } else {\n          const typeParameters = isConditionalTypeNode(node) ? getInferTypeParameters(node) : [getDeclaredTypeOfTypeParameter(getSymbolOfDeclaration(node.typeParameter))];\n          return enterNewScope(\n            context,\n            node,\n            /*expandedParams*/\n            void 0,\n            typeParameters\n          );\n        }\n      },\n      markNodeReuse(context, range, location) {\n        return setTextRange2(context, range, location);\n      },\n      trackExistingEntityName(context, node) {\n        return trackExistingEntityName(node, context);\n      },\n      trackComputedName(context, accessExpression) {\n        trackComputedName(accessExpression, context.enclosingDeclaration, context);\n      },\n      getModuleSpecifierOverride(syntacticContext, parent2, lit) {\n        const context = syntacticContext;\n        if (context.bundled || context.enclosingFile !== getSourceFileOfNode(lit)) {\n          let name = lit.text;\n          const originalName = name;\n          const nodeSymbol = getNodeLinks(parent2).resolvedSymbol;\n          const meaning = parent2.isTypeOf ? 111551 /* Value */ : 788968 /* Type */;\n          const parentSymbol = nodeSymbol && isSymbolAccessible(\n            nodeSymbol,\n            context.enclosingDeclaration,\n            meaning,\n            /*shouldComputeAliasesToMakeVisible*/\n            false\n          ).accessibility === 0 /* Accessible */ && lookupSymbolChain(\n            nodeSymbol,\n            context,\n            meaning,\n            /*yieldModuleSymbol*/\n            true\n          )[0];\n          if (parentSymbol && isExternalModuleSymbol(parentSymbol)) {\n            name = getSpecifierForModuleSymbol(parentSymbol, context);\n          } else {\n            const targetFile = getExternalModuleFileFromDeclaration(parent2);\n            if (targetFile) {\n              name = getSpecifierForModuleSymbol(targetFile.symbol, context);\n            }\n          }\n          if (name.includes(\"/node_modules/\")) {\n            context.encounteredError = true;\n            if (context.tracker.reportLikelyUnsafeImportRequiredError) {\n              context.tracker.reportLikelyUnsafeImportRequiredError(name);\n            }\n          }\n          if (name !== originalName) {\n            return name;\n          }\n        }\n      },\n      canReuseTypeNode(context, typeNode) {\n        return canReuseTypeNode(context, typeNode);\n      },\n      canReuseTypeNodeAnnotation(syntacticContext, node, existing, symbol, requiresAddingUndefined) {\n        var _a;\n        const context = syntacticContext;\n        if (context.enclosingDeclaration === void 0) return false;\n        symbol ?? (symbol = getSymbolOfDeclaration(node));\n        let type = (_a = context.enclosingSymbolTypes) == null ? void 0 : _a.get(getSymbolId(symbol));\n        if (type === void 0) {\n          if (symbol.flags & 98304 /* Accessor */) {\n            type = node.kind === 179 /* SetAccessor */ ? getWriteTypeOfSymbol(symbol) : getTypeOfAccessors(symbol);\n          } else if (isValueSignatureDeclaration(node)) {\n            type = getReturnTypeOfSignature(getSignatureFromDeclaration(node));\n          } else {\n            type = getTypeOfSymbol(symbol);\n          }\n        }\n        let annotationType = getTypeFromTypeNodeWithoutContext(existing);\n        if (isErrorType(annotationType)) {\n          return true;\n        }\n        if (requiresAddingUndefined && annotationType) {\n          annotationType = addOptionality(annotationType, !isParameter(node));\n        }\n        return !!annotationType && typeNodeIsEquivalentToType(node, type, annotationType) && existingTypeNodeIsNotReferenceOrIsReferenceWithCompatibleTypeArgumentCount(existing, type);\n      }\n    };\n    return {\n      syntacticBuilderResolver,\n      typeToTypeNode: (type, enclosingDeclaration, flags, internalFlags, tracker, maximumLength, verbosityLevel, out) => withContext2(enclosingDeclaration, flags, internalFlags, tracker, maximumLength, verbosityLevel, (context) => typeToTypeNodeHelper(type, context), out),\n      typePredicateToTypePredicateNode: (typePredicate, enclosingDeclaration, flags, internalFlags, tracker) => withContext2(\n        enclosingDeclaration,\n        flags,\n        internalFlags,\n        tracker,\n        /*maximumLength*/\n        void 0,\n        /*verbosityLevel*/\n        void 0,\n        (context) => typePredicateToTypePredicateNodeHelper(typePredicate, context)\n      ),\n      serializeTypeForDeclaration: (declaration, symbol, enclosingDeclaration, flags, internalFlags, tracker) => withContext2(\n        enclosingDeclaration,\n        flags,\n        internalFlags,\n        tracker,\n        /*maximumLength*/\n        void 0,\n        /*verbosityLevel*/\n        void 0,\n        (context) => syntacticNodeBuilder.serializeTypeOfDeclaration(declaration, symbol, context)\n      ),\n      serializeReturnTypeForSignature: (signature, enclosingDeclaration, flags, internalFlags, tracker) => withContext2(\n        enclosingDeclaration,\n        flags,\n        internalFlags,\n        tracker,\n        /*maximumLength*/\n        void 0,\n        /*verbosityLevel*/\n        void 0,\n        (context) => syntacticNodeBuilder.serializeReturnTypeForSignature(signature, getSymbolOfDeclaration(signature), context)\n      ),\n      serializeTypeForExpression: (expr, enclosingDeclaration, flags, internalFlags, tracker) => withContext2(\n        enclosingDeclaration,\n        flags,\n        internalFlags,\n        tracker,\n        /*maximumLength*/\n        void 0,\n        /*verbosityLevel*/\n        void 0,\n        (context) => syntacticNodeBuilder.serializeTypeOfExpression(expr, context)\n      ),\n      indexInfoToIndexSignatureDeclaration: (indexInfo, enclosingDeclaration, flags, internalFlags, tracker) => withContext2(\n        enclosingDeclaration,\n        flags,\n        internalFlags,\n        tracker,\n        /*maximumLength*/\n        void 0,\n        /*verbosityLevel*/\n        void 0,\n        (context) => indexInfoToIndexSignatureDeclarationHelper(\n          indexInfo,\n          context,\n          /*typeNode*/\n          void 0\n        )\n      ),\n      signatureToSignatureDeclaration: (signature, kind, enclosingDeclaration, flags, internalFlags, tracker, maximumLength, verbosityLevel, out) => withContext2(enclosingDeclaration, flags, internalFlags, tracker, maximumLength, verbosityLevel, (context) => signatureToSignatureDeclarationHelper(signature, kind, context), out),\n      symbolToEntityName: (symbol, meaning, enclosingDeclaration, flags, internalFlags, tracker) => withContext2(\n        enclosingDeclaration,\n        flags,\n        internalFlags,\n        tracker,\n        /*maximumLength*/\n        void 0,\n        /*verbosityLevel*/\n        void 0,\n        (context) => symbolToName(\n          symbol,\n          context,\n          meaning,\n          /*expectsIdentifier*/\n          false\n        )\n      ),\n      symbolToExpression: (symbol, meaning, enclosingDeclaration, flags, internalFlags, tracker) => withContext2(\n        enclosingDeclaration,\n        flags,\n        internalFlags,\n        tracker,\n        /*maximumLength*/\n        void 0,\n        /*verbosityLevel*/\n        void 0,\n        (context) => symbolToExpression(symbol, context, meaning)\n      ),\n      symbolToTypeParameterDeclarations: (symbol, enclosingDeclaration, flags, internalFlags, tracker) => withContext2(\n        enclosingDeclaration,\n        flags,\n        internalFlags,\n        tracker,\n        /*maximumLength*/\n        void 0,\n        /*verbosityLevel*/\n        void 0,\n        (context) => typeParametersToTypeParameterDeclarations(symbol, context)\n      ),\n      symbolToParameterDeclaration: (symbol, enclosingDeclaration, flags, internalFlags, tracker) => withContext2(\n        enclosingDeclaration,\n        flags,\n        internalFlags,\n        tracker,\n        /*maximumLength*/\n        void 0,\n        /*verbosityLevel*/\n        void 0,\n        (context) => symbolToParameterDeclaration(symbol, context)\n      ),\n      typeParameterToDeclaration: (parameter, enclosingDeclaration, flags, internalFlags, tracker, maximumLength, verbosityLevel, out) => withContext2(enclosingDeclaration, flags, internalFlags, tracker, maximumLength, verbosityLevel, (context) => typeParameterToDeclaration(parameter, context), out),\n      symbolTableToDeclarationStatements: (symbolTable, enclosingDeclaration, flags, internalFlags, tracker) => withContext2(\n        enclosingDeclaration,\n        flags,\n        internalFlags,\n        tracker,\n        /*maximumLength*/\n        void 0,\n        /*verbosityLevel*/\n        void 0,\n        (context) => symbolTableToDeclarationStatements(symbolTable, context)\n      ),\n      symbolToNode: (symbol, meaning, enclosingDeclaration, flags, internalFlags, tracker) => withContext2(\n        enclosingDeclaration,\n        flags,\n        internalFlags,\n        tracker,\n        /*maximumLength*/\n        void 0,\n        /*verbosityLevel*/\n        void 0,\n        (context) => symbolToNode(symbol, context, meaning)\n      ),\n      symbolToDeclarations\n    };\n    function getTypeFromTypeNode2(context, node, noMappedTypes) {\n      const type = getTypeFromTypeNodeWithoutContext(node);\n      if (!context.mapper) return type;\n      const mappedType = instantiateType(type, context.mapper);\n      return noMappedTypes && mappedType !== type ? void 0 : mappedType;\n    }\n    function setTextRange2(context, range, location) {\n      if (!nodeIsSynthesized(range) || !(range.flags & 16 /* Synthesized */) || !context.enclosingFile || context.enclosingFile !== getSourceFileOfNode(getOriginalNode(range))) {\n        range = factory.cloneNode(range);\n      }\n      if (range === location) return range;\n      if (!location) {\n        return range;\n      }\n      let original = range.original;\n      while (original && original !== location) {\n        original = original.original;\n      }\n      if (!original) {\n        setOriginalNode(range, location);\n      }\n      if (context.enclosingFile && context.enclosingFile === getSourceFileOfNode(getOriginalNode(location))) {\n        return setTextRange(range, location);\n      }\n      return range;\n    }\n    function symbolToNode(symbol, context, meaning) {\n      if (context.internalFlags & 1 /* WriteComputedProps */) {\n        if (symbol.valueDeclaration) {\n          const name = getNameOfDeclaration(symbol.valueDeclaration);\n          if (name && isComputedPropertyName(name)) return name;\n        }\n        const nameType = getSymbolLinks(symbol).nameType;\n        if (nameType && nameType.flags & (1024 /* EnumLiteral */ | 8192 /* UniqueESSymbol */)) {\n          context.enclosingDeclaration = nameType.symbol.valueDeclaration;\n          return factory.createComputedPropertyName(symbolToExpression(nameType.symbol, context, meaning));\n        }\n      }\n      return symbolToExpression(symbol, context, meaning);\n    }\n    function symbolToDeclarations(symbol, meaning, flags, maximumLength, verbosityLevel, out) {\n      const nodes = withContext2(\n        /*enclosingDeclaration*/\n        void 0,\n        flags,\n        /*internalFlags*/\n        void 0,\n        /*tracker*/\n        void 0,\n        maximumLength,\n        verbosityLevel,\n        (context) => symbolToDeclarationsWorker(symbol, context),\n        out\n      );\n      return mapDefined(nodes, (node) => {\n        switch (node.kind) {\n          case 264 /* ClassDeclaration */:\n            return simplifyClassDeclaration(node, symbol);\n          case 267 /* EnumDeclaration */:\n            return simplifyModifiers(node, isEnumDeclaration, symbol);\n          case 265 /* InterfaceDeclaration */:\n            return simplifyInterfaceDeclaration(node, symbol, meaning);\n          case 268 /* ModuleDeclaration */:\n            return simplifyModifiers(node, isModuleDeclaration, symbol);\n          default:\n            return void 0;\n        }\n      });\n    }\n    function simplifyClassDeclaration(classDecl, symbol) {\n      const classDeclarations = filter(symbol.declarations, isClassLike);\n      const originalClassDecl = classDeclarations && classDeclarations.length > 0 ? classDeclarations[0] : classDecl;\n      const modifiers = getEffectiveModifierFlags(originalClassDecl) & ~(32 /* Export */ | 128 /* Ambient */);\n      const isAnonymous = isClassExpression(originalClassDecl);\n      if (isAnonymous) {\n        classDecl = factory.updateClassDeclaration(\n          classDecl,\n          classDecl.modifiers,\n          /*name*/\n          void 0,\n          classDecl.typeParameters,\n          classDecl.heritageClauses,\n          classDecl.members\n        );\n      }\n      return factory.replaceModifiers(classDecl, modifiers);\n    }\n    function simplifyModifiers(newDecl, isDeclKind, symbol) {\n      const decls = filter(symbol.declarations, isDeclKind);\n      const declWithModifiers = decls && decls.length > 0 ? decls[0] : newDecl;\n      const modifiers = getEffectiveModifierFlags(declWithModifiers) & ~(32 /* Export */ | 128 /* Ambient */);\n      return factory.replaceModifiers(newDecl, modifiers);\n    }\n    function simplifyInterfaceDeclaration(interfaceDecl, symbol, meaning) {\n      if (!(meaning & 64 /* Interface */)) {\n        return void 0;\n      }\n      return simplifyModifiers(interfaceDecl, isInterfaceDeclaration, symbol);\n    }\n    function symbolToDeclarationsWorker(symbol, context) {\n      const type = getDeclaredTypeOfSymbol(symbol);\n      context.typeStack.push(type.id);\n      context.typeStack.push(-1);\n      const table = createSymbolTable([symbol]);\n      const statements = symbolTableToDeclarationStatements(table, context);\n      context.typeStack.pop();\n      context.typeStack.pop();\n      return statements;\n    }\n    function withContext2(enclosingDeclaration, flags, internalFlags, tracker, maximumLength, verbosityLevel, cb, out) {\n      const moduleResolverHost = (tracker == null ? void 0 : tracker.trackSymbol) ? tracker.moduleResolverHost : (internalFlags || 0 /* None */) & 4 /* DoNotIncludeSymbolChain */ ? createBasicNodeBuilderModuleSpecifierResolutionHost(host) : void 0;\n      flags = flags || 0 /* None */;\n      const maxTruncationLength = maximumLength || (flags & 1 /* NoTruncation */ ? noTruncationMaximumTruncationLength : defaultMaximumTruncationLength);\n      const context = {\n        enclosingDeclaration,\n        enclosingFile: enclosingDeclaration && getSourceFileOfNode(enclosingDeclaration),\n        flags,\n        internalFlags: internalFlags || 0 /* None */,\n        tracker: void 0,\n        maxTruncationLength,\n        maxExpansionDepth: verbosityLevel ?? -1,\n        encounteredError: false,\n        suppressReportInferenceFallback: false,\n        reportedDiagnostic: false,\n        visitedTypes: void 0,\n        symbolDepth: void 0,\n        inferTypeParameters: void 0,\n        approximateLength: 0,\n        trackedSymbols: void 0,\n        bundled: !!compilerOptions.outFile && !!enclosingDeclaration && isExternalOrCommonJsModule(getSourceFileOfNode(enclosingDeclaration)),\n        truncating: false,\n        usedSymbolNames: void 0,\n        remappedSymbolNames: void 0,\n        remappedSymbolReferences: void 0,\n        reverseMappedStack: void 0,\n        mustCreateTypeParameterSymbolList: true,\n        typeParameterSymbolList: void 0,\n        mustCreateTypeParametersNamesLookups: true,\n        typeParameterNames: void 0,\n        typeParameterNamesByText: void 0,\n        typeParameterNamesByTextNextNameCount: void 0,\n        enclosingSymbolTypes: /* @__PURE__ */ new Map(),\n        mapper: void 0,\n        depth: 0,\n        typeStack: [],\n        out: {\n          canIncreaseExpansionDepth: false,\n          truncated: false\n        }\n      };\n      context.tracker = new SymbolTrackerImpl(context, tracker, moduleResolverHost);\n      const resultingNode = cb(context);\n      if (context.truncating && context.flags & 1 /* NoTruncation */) {\n        context.tracker.reportTruncationError();\n      }\n      if (out) {\n        out.canIncreaseExpansionDepth = context.out.canIncreaseExpansionDepth;\n        out.truncated = context.out.truncated;\n      }\n      return context.encounteredError ? void 0 : resultingNode;\n    }\n    function addSymbolTypeToContext(context, symbol, type) {\n      const id = getSymbolId(symbol);\n      const oldType = context.enclosingSymbolTypes.get(id);\n      context.enclosingSymbolTypes.set(id, type);\n      return restore;\n      function restore() {\n        if (oldType) {\n          context.enclosingSymbolTypes.set(id, oldType);\n        } else {\n          context.enclosingSymbolTypes.delete(id);\n        }\n      }\n    }\n    function saveRestoreFlags(context) {\n      const flags = context.flags;\n      const internalFlags = context.internalFlags;\n      const depth = context.depth;\n      return restore;\n      function restore() {\n        context.flags = flags;\n        context.internalFlags = internalFlags;\n        context.depth = depth;\n      }\n    }\n    function checkTruncationLengthIfExpanding(context) {\n      return context.maxExpansionDepth >= 0 && checkTruncationLength(context);\n    }\n    function checkTruncationLength(context) {\n      if (context.truncating) return context.truncating;\n      return context.truncating = context.approximateLength > context.maxTruncationLength;\n    }\n    function canPossiblyExpandType(type, context) {\n      for (let i = 0; i < context.typeStack.length - 1; i++) {\n        if (context.typeStack[i] === type.id) {\n          return false;\n        }\n      }\n      return context.depth < context.maxExpansionDepth || context.depth === context.maxExpansionDepth && !context.out.canIncreaseExpansionDepth;\n    }\n    function shouldExpandType(type, context, isAlias = false) {\n      if (!isAlias && isLibType(type)) {\n        return false;\n      }\n      for (let i = 0; i < context.typeStack.length - 1; i++) {\n        if (context.typeStack[i] === type.id) {\n          return false;\n        }\n      }\n      const result = context.depth < context.maxExpansionDepth;\n      if (!result) {\n        context.out.canIncreaseExpansionDepth = true;\n      }\n      return result;\n    }\n    function typeToTypeNodeHelper(type, context) {\n      const restoreFlags = saveRestoreFlags(context);\n      if (type) context.typeStack.push(type.id);\n      const typeNode = typeToTypeNodeWorker(type, context);\n      if (type) context.typeStack.pop();\n      restoreFlags();\n      return typeNode;\n    }\n    function typeToTypeNodeWorker(type, context) {\n      var _a, _b;\n      if (cancellationToken && cancellationToken.throwIfCancellationRequested) {\n        cancellationToken.throwIfCancellationRequested();\n      }\n      const inTypeAlias = context.flags & 8388608 /* InTypeAlias */;\n      context.flags &= ~8388608 /* InTypeAlias */;\n      let expandingEnum = false;\n      if (!type) {\n        if (!(context.flags & 262144 /* AllowEmptyUnionOrIntersection */)) {\n          context.encounteredError = true;\n          return void 0;\n        }\n        context.approximateLength += 3;\n        return factory.createKeywordTypeNode(133 /* AnyKeyword */);\n      }\n      if (!(context.flags & 536870912 /* NoTypeReduction */)) {\n        type = getReducedType(type);\n      }\n      if (type.flags & 1 /* Any */) {\n        if (type.aliasSymbol) {\n          return factory.createTypeReferenceNode(symbolToEntityNameNode(type.aliasSymbol), mapToTypeNodes(type.aliasTypeArguments, context));\n        }\n        if (type === unresolvedType) {\n          return addSyntheticLeadingComment(factory.createKeywordTypeNode(133 /* AnyKeyword */), 3 /* MultiLineCommentTrivia */, \"unresolved\");\n        }\n        context.approximateLength += 3;\n        return factory.createKeywordTypeNode(type === intrinsicMarkerType ? 141 /* IntrinsicKeyword */ : 133 /* AnyKeyword */);\n      }\n      if (type.flags & 2 /* Unknown */) {\n        return factory.createKeywordTypeNode(159 /* UnknownKeyword */);\n      }\n      if (type.flags & 4 /* String */) {\n        context.approximateLength += 6;\n        return factory.createKeywordTypeNode(154 /* StringKeyword */);\n      }\n      if (type.flags & 8 /* Number */) {\n        context.approximateLength += 6;\n        return factory.createKeywordTypeNode(150 /* NumberKeyword */);\n      }\n      if (type.flags & 64 /* BigInt */) {\n        context.approximateLength += 6;\n        return factory.createKeywordTypeNode(163 /* BigIntKeyword */);\n      }\n      if (type.flags & 16 /* Boolean */ && !type.aliasSymbol) {\n        context.approximateLength += 7;\n        return factory.createKeywordTypeNode(136 /* BooleanKeyword */);\n      }\n      if (type.flags & 1056 /* EnumLike */) {\n        if (type.symbol.flags & 8 /* EnumMember */) {\n          const parentSymbol = getParentOfSymbol(type.symbol);\n          const parentName = symbolToTypeNode(parentSymbol, context, 788968 /* Type */);\n          if (getDeclaredTypeOfSymbol(parentSymbol) === type) {\n            return parentName;\n          }\n          const memberName = symbolName(type.symbol);\n          if (isIdentifierText(memberName, 1 /* ES5 */)) {\n            return appendReferenceToType(\n              parentName,\n              factory.createTypeReferenceNode(\n                memberName,\n                /*typeArguments*/\n                void 0\n              )\n            );\n          }\n          if (isImportTypeNode(parentName)) {\n            parentName.isTypeOf = true;\n            return factory.createIndexedAccessTypeNode(parentName, factory.createLiteralTypeNode(factory.createStringLiteral(memberName)));\n          } else if (isTypeReferenceNode(parentName)) {\n            return factory.createIndexedAccessTypeNode(factory.createTypeQueryNode(parentName.typeName), factory.createLiteralTypeNode(factory.createStringLiteral(memberName)));\n          } else {\n            return Debug.fail(\"Unhandled type node kind returned from `symbolToTypeNode`.\");\n          }\n        }\n        if (!shouldExpandType(type, context)) {\n          return symbolToTypeNode(type.symbol, context, 788968 /* Type */);\n        } else {\n          expandingEnum = true;\n        }\n      }\n      if (type.flags & 128 /* StringLiteral */) {\n        context.approximateLength += type.value.length + 2;\n        return factory.createLiteralTypeNode(setEmitFlags(factory.createStringLiteral(type.value, !!(context.flags & 268435456 /* UseSingleQuotesForStringLiteralType */)), 16777216 /* NoAsciiEscaping */));\n      }\n      if (type.flags & 256 /* NumberLiteral */) {\n        const value = type.value;\n        context.approximateLength += (\"\" + value).length;\n        return factory.createLiteralTypeNode(value < 0 ? factory.createPrefixUnaryExpression(41 /* MinusToken */, factory.createNumericLiteral(-value)) : factory.createNumericLiteral(value));\n      }\n      if (type.flags & 2048 /* BigIntLiteral */) {\n        context.approximateLength += pseudoBigIntToString(type.value).length + 1;\n        return factory.createLiteralTypeNode(factory.createBigIntLiteral(type.value));\n      }\n      if (type.flags & 512 /* BooleanLiteral */) {\n        context.approximateLength += type.intrinsicName.length;\n        return factory.createLiteralTypeNode(type.intrinsicName === \"true\" ? factory.createTrue() : factory.createFalse());\n      }\n      if (type.flags & 8192 /* UniqueESSymbol */) {\n        if (!(context.flags & 1048576 /* AllowUniqueESSymbolType */)) {\n          if (isValueSymbolAccessible(type.symbol, context.enclosingDeclaration)) {\n            context.approximateLength += 6;\n            return symbolToTypeNode(type.symbol, context, 111551 /* Value */);\n          }\n          if (context.tracker.reportInaccessibleUniqueSymbolError) {\n            context.tracker.reportInaccessibleUniqueSymbolError();\n          }\n        }\n        context.approximateLength += 13;\n        return factory.createTypeOperatorNode(158 /* UniqueKeyword */, factory.createKeywordTypeNode(155 /* SymbolKeyword */));\n      }\n      if (type.flags & 16384 /* Void */) {\n        context.approximateLength += 4;\n        return factory.createKeywordTypeNode(116 /* VoidKeyword */);\n      }\n      if (type.flags & 32768 /* Undefined */) {\n        context.approximateLength += 9;\n        return factory.createKeywordTypeNode(157 /* UndefinedKeyword */);\n      }\n      if (type.flags & 65536 /* Null */) {\n        context.approximateLength += 4;\n        return factory.createLiteralTypeNode(factory.createNull());\n      }\n      if (type.flags & 131072 /* Never */) {\n        context.approximateLength += 5;\n        return factory.createKeywordTypeNode(146 /* NeverKeyword */);\n      }\n      if (type.flags & 4096 /* ESSymbol */) {\n        context.approximateLength += 6;\n        return factory.createKeywordTypeNode(155 /* SymbolKeyword */);\n      }\n      if (type.flags & 67108864 /* NonPrimitive */) {\n        context.approximateLength += 6;\n        return factory.createKeywordTypeNode(151 /* ObjectKeyword */);\n      }\n      if (isThisTypeParameter(type)) {\n        if (context.flags & 4194304 /* InObjectTypeLiteral */) {\n          if (!context.encounteredError && !(context.flags & 32768 /* AllowThisInObjectLiteral */)) {\n            context.encounteredError = true;\n          }\n          (_b = (_a = context.tracker).reportInaccessibleThisError) == null ? void 0 : _b.call(_a);\n        }\n        context.approximateLength += 4;\n        return factory.createThisTypeNode();\n      }\n      if (!inTypeAlias && type.aliasSymbol && (context.flags & 16384 /* UseAliasDefinedOutsideCurrentScope */ || isTypeSymbolAccessible(type.aliasSymbol, context.enclosingDeclaration))) {\n        if (!shouldExpandType(\n          type,\n          context,\n          /*isAlias*/\n          true\n        )) {\n          const typeArgumentNodes = mapToTypeNodes(type.aliasTypeArguments, context);\n          if (isReservedMemberName(type.aliasSymbol.escapedName) && !(type.aliasSymbol.flags & 32 /* Class */)) return factory.createTypeReferenceNode(factory.createIdentifier(\"\"), typeArgumentNodes);\n          if (length(typeArgumentNodes) === 1 && type.aliasSymbol === globalArrayType.symbol) {\n            return factory.createArrayTypeNode(typeArgumentNodes[0]);\n          }\n          return symbolToTypeNode(type.aliasSymbol, context, 788968 /* Type */, typeArgumentNodes);\n        }\n        context.depth += 1;\n      }\n      const objectFlags = getObjectFlags(type);\n      if (objectFlags & 4 /* Reference */) {\n        Debug.assert(!!(type.flags & 524288 /* Object */));\n        if (shouldExpandType(type, context)) {\n          context.depth += 1;\n          return createAnonymousTypeNode(\n            type,\n            /*forceClassExpansion*/\n            true,\n            /*forceExpansion*/\n            true\n          );\n        }\n        return type.node ? visitAndTransformType(type, typeReferenceToTypeNode) : typeReferenceToTypeNode(type);\n      }\n      if (type.flags & 262144 /* TypeParameter */ || objectFlags & 3 /* ClassOrInterface */) {\n        if (type.flags & 262144 /* TypeParameter */ && contains(context.inferTypeParameters, type)) {\n          context.approximateLength += symbolName(type.symbol).length + 6;\n          let constraintNode;\n          const constraint = getConstraintOfTypeParameter(type);\n          if (constraint) {\n            const inferredConstraint = getInferredTypeParameterConstraint(\n              type,\n              /*omitTypeReferences*/\n              true\n            );\n            if (!(inferredConstraint && isTypeIdenticalTo(constraint, inferredConstraint))) {\n              context.approximateLength += 9;\n              constraintNode = constraint && typeToTypeNodeHelper(constraint, context);\n            }\n          }\n          return factory.createInferTypeNode(typeParameterToDeclarationWithConstraint(type, context, constraintNode));\n        }\n        if (context.flags & 4 /* GenerateNamesForShadowedTypeParams */ && type.flags & 262144 /* TypeParameter */) {\n          const name2 = typeParameterToName(type, context);\n          context.approximateLength += idText(name2).length;\n          return factory.createTypeReferenceNode(\n            factory.createIdentifier(idText(name2)),\n            /*typeArguments*/\n            void 0\n          );\n        }\n        if (objectFlags & 3 /* ClassOrInterface */ && shouldExpandType(type, context)) {\n          context.depth += 1;\n          return createAnonymousTypeNode(\n            type,\n            /*forceClassExpansion*/\n            true,\n            /*forceExpansion*/\n            true\n          );\n        }\n        if (type.symbol) {\n          return symbolToTypeNode(type.symbol, context, 788968 /* Type */);\n        }\n        const name = (type === markerSuperTypeForCheck || type === markerSubTypeForCheck) && varianceTypeParameter && varianceTypeParameter.symbol ? (type === markerSubTypeForCheck ? \"sub-\" : \"super-\") + symbolName(varianceTypeParameter.symbol) : \"?\";\n        return factory.createTypeReferenceNode(\n          factory.createIdentifier(name),\n          /*typeArguments*/\n          void 0\n        );\n      }\n      if (type.flags & 1048576 /* Union */ && type.origin) {\n        type = type.origin;\n      }\n      if (type.flags & (1048576 /* Union */ | 2097152 /* Intersection */)) {\n        const types = type.flags & 1048576 /* Union */ ? formatUnionTypes(type.types, expandingEnum) : type.types;\n        if (length(types) === 1) {\n          return typeToTypeNodeHelper(types[0], context);\n        }\n        const typeNodes = mapToTypeNodes(\n          types,\n          context,\n          /*isBareList*/\n          true\n        );\n        if (typeNodes && typeNodes.length > 0) {\n          return type.flags & 1048576 /* Union */ ? factory.createUnionTypeNode(typeNodes) : factory.createIntersectionTypeNode(typeNodes);\n        } else {\n          if (!context.encounteredError && !(context.flags & 262144 /* AllowEmptyUnionOrIntersection */)) {\n            context.encounteredError = true;\n          }\n          return void 0;\n        }\n      }\n      if (objectFlags & (16 /* Anonymous */ | 32 /* Mapped */)) {\n        Debug.assert(!!(type.flags & 524288 /* Object */));\n        return createAnonymousTypeNode(type);\n      }\n      if (type.flags & 4194304 /* Index */) {\n        const indexedType = type.type;\n        context.approximateLength += 6;\n        const indexTypeNode = typeToTypeNodeHelper(indexedType, context);\n        return factory.createTypeOperatorNode(143 /* KeyOfKeyword */, indexTypeNode);\n      }\n      if (type.flags & 134217728 /* TemplateLiteral */) {\n        const texts = type.texts;\n        const types = type.types;\n        const templateHead = factory.createTemplateHead(texts[0]);\n        const templateSpans = factory.createNodeArray(\n          map(types, (t, i) => factory.createTemplateLiteralTypeSpan(\n            typeToTypeNodeHelper(t, context),\n            (i < types.length - 1 ? factory.createTemplateMiddle : factory.createTemplateTail)(texts[i + 1])\n          ))\n        );\n        context.approximateLength += 2;\n        return factory.createTemplateLiteralType(templateHead, templateSpans);\n      }\n      if (type.flags & 268435456 /* StringMapping */) {\n        const typeNode = typeToTypeNodeHelper(type.type, context);\n        return symbolToTypeNode(type.symbol, context, 788968 /* Type */, [typeNode]);\n      }\n      if (type.flags & 8388608 /* IndexedAccess */) {\n        const objectTypeNode = typeToTypeNodeHelper(type.objectType, context);\n        const indexTypeNode = typeToTypeNodeHelper(type.indexType, context);\n        context.approximateLength += 2;\n        return factory.createIndexedAccessTypeNode(objectTypeNode, indexTypeNode);\n      }\n      if (type.flags & 16777216 /* Conditional */) {\n        return visitAndTransformType(type, (type2) => conditionalTypeToTypeNode(type2));\n      }\n      if (type.flags & 33554432 /* Substitution */) {\n        const typeNode = typeToTypeNodeHelper(type.baseType, context);\n        const noInferSymbol = isNoInferType(type) && getGlobalTypeSymbol(\n          \"NoInfer\",\n          /*reportErrors*/\n          false\n        );\n        return noInferSymbol ? symbolToTypeNode(noInferSymbol, context, 788968 /* Type */, [typeNode]) : typeNode;\n      }\n      return Debug.fail(\"Should be unreachable.\");\n      function conditionalTypeToTypeNode(type2) {\n        const checkTypeNode = typeToTypeNodeHelper(type2.checkType, context);\n        context.approximateLength += 15;\n        if (context.flags & 4 /* GenerateNamesForShadowedTypeParams */ && type2.root.isDistributive && !(type2.checkType.flags & 262144 /* TypeParameter */)) {\n          const newParam = createTypeParameter(createSymbol(262144 /* TypeParameter */, \"T\"));\n          const name = typeParameterToName(newParam, context);\n          const newTypeVariable = factory.createTypeReferenceNode(name);\n          context.approximateLength += 37;\n          const newMapper = prependTypeMapping(type2.root.checkType, newParam, type2.mapper);\n          const saveInferTypeParameters2 = context.inferTypeParameters;\n          context.inferTypeParameters = type2.root.inferTypeParameters;\n          const extendsTypeNode2 = typeToTypeNodeHelper(instantiateType(type2.root.extendsType, newMapper), context);\n          context.inferTypeParameters = saveInferTypeParameters2;\n          const trueTypeNode2 = typeToTypeNodeOrCircularityElision(instantiateType(getTypeFromTypeNode2(context, type2.root.node.trueType), newMapper));\n          const falseTypeNode2 = typeToTypeNodeOrCircularityElision(instantiateType(getTypeFromTypeNode2(context, type2.root.node.falseType), newMapper));\n          return factory.createConditionalTypeNode(\n            checkTypeNode,\n            factory.createInferTypeNode(factory.createTypeParameterDeclaration(\n              /*modifiers*/\n              void 0,\n              factory.cloneNode(newTypeVariable.typeName)\n            )),\n            factory.createConditionalTypeNode(\n              factory.createTypeReferenceNode(factory.cloneNode(name)),\n              typeToTypeNodeHelper(type2.checkType, context),\n              factory.createConditionalTypeNode(newTypeVariable, extendsTypeNode2, trueTypeNode2, falseTypeNode2),\n              factory.createKeywordTypeNode(146 /* NeverKeyword */)\n            ),\n            factory.createKeywordTypeNode(146 /* NeverKeyword */)\n          );\n        }\n        const saveInferTypeParameters = context.inferTypeParameters;\n        context.inferTypeParameters = type2.root.inferTypeParameters;\n        const extendsTypeNode = typeToTypeNodeHelper(type2.extendsType, context);\n        context.inferTypeParameters = saveInferTypeParameters;\n        const trueTypeNode = typeToTypeNodeOrCircularityElision(getTrueTypeFromConditionalType(type2));\n        const falseTypeNode = typeToTypeNodeOrCircularityElision(getFalseTypeFromConditionalType(type2));\n        return factory.createConditionalTypeNode(checkTypeNode, extendsTypeNode, trueTypeNode, falseTypeNode);\n      }\n      function typeToTypeNodeOrCircularityElision(type2) {\n        var _a2, _b2, _c;\n        if (type2.flags & 1048576 /* Union */) {\n          if ((_a2 = context.visitedTypes) == null ? void 0 : _a2.has(getTypeId(type2))) {\n            if (!(context.flags & 131072 /* AllowAnonymousIdentifier */)) {\n              context.encounteredError = true;\n              (_c = (_b2 = context.tracker) == null ? void 0 : _b2.reportCyclicStructureError) == null ? void 0 : _c.call(_b2);\n            }\n            return createElidedInformationPlaceholder(context);\n          }\n          return visitAndTransformType(type2, (type3) => typeToTypeNodeHelper(type3, context));\n        }\n        return typeToTypeNodeHelper(type2, context);\n      }\n      function isMappedTypeHomomorphic(type2) {\n        return !!getHomomorphicTypeVariable(type2);\n      }\n      function isHomomorphicMappedTypeWithNonHomomorphicInstantiation(type2) {\n        return !!type2.target && isMappedTypeHomomorphic(type2.target) && !isMappedTypeHomomorphic(type2);\n      }\n      function createMappedTypeNodeFromType(type2) {\n        var _a2;\n        Debug.assert(!!(type2.flags & 524288 /* Object */));\n        const readonlyToken = type2.declaration.readonlyToken ? factory.createToken(type2.declaration.readonlyToken.kind) : void 0;\n        const questionToken = type2.declaration.questionToken ? factory.createToken(type2.declaration.questionToken.kind) : void 0;\n        let appropriateConstraintTypeNode;\n        let newTypeVariable;\n        let templateType = getTemplateTypeFromMappedType(type2);\n        const typeParameter = getTypeParameterFromMappedType(type2);\n        const needsModifierPreservingWrapper = !isMappedTypeWithKeyofConstraintDeclaration(type2) && !(getModifiersTypeFromMappedType(type2).flags & 2 /* Unknown */) && context.flags & 4 /* GenerateNamesForShadowedTypeParams */ && !(getConstraintTypeFromMappedType(type2).flags & 262144 /* TypeParameter */ && ((_a2 = getConstraintOfTypeParameter(getConstraintTypeFromMappedType(type2))) == null ? void 0 : _a2.flags) & 4194304 /* Index */);\n        if (isMappedTypeWithKeyofConstraintDeclaration(type2)) {\n          if (isHomomorphicMappedTypeWithNonHomomorphicInstantiation(type2) && context.flags & 4 /* GenerateNamesForShadowedTypeParams */) {\n            const newConstraintParam = createTypeParameter(createSymbol(262144 /* TypeParameter */, \"T\"));\n            const name = typeParameterToName(newConstraintParam, context);\n            const target = type2.target;\n            newTypeVariable = factory.createTypeReferenceNode(name);\n            templateType = instantiateType(\n              getTemplateTypeFromMappedType(target),\n              makeArrayTypeMapper([getTypeParameterFromMappedType(target), getModifiersTypeFromMappedType(target)], [typeParameter, newConstraintParam])\n            );\n          }\n          appropriateConstraintTypeNode = factory.createTypeOperatorNode(143 /* KeyOfKeyword */, newTypeVariable || typeToTypeNodeHelper(getModifiersTypeFromMappedType(type2), context));\n        } else if (needsModifierPreservingWrapper) {\n          const newParam = createTypeParameter(createSymbol(262144 /* TypeParameter */, \"T\"));\n          const name = typeParameterToName(newParam, context);\n          newTypeVariable = factory.createTypeReferenceNode(name);\n          appropriateConstraintTypeNode = newTypeVariable;\n        } else {\n          appropriateConstraintTypeNode = typeToTypeNodeHelper(getConstraintTypeFromMappedType(type2), context);\n        }\n        const typeParameterNode = typeParameterToDeclarationWithConstraint(typeParameter, context, appropriateConstraintTypeNode);\n        const cleanup = enterNewScope(\n          context,\n          type2.declaration,\n          /*expandedParams*/\n          void 0,\n          [getDeclaredTypeOfTypeParameter(getSymbolOfDeclaration(type2.declaration.typeParameter))]\n        );\n        const nameTypeNode = type2.declaration.nameType ? typeToTypeNodeHelper(getNameTypeFromMappedType(type2), context) : void 0;\n        const templateTypeNode = typeToTypeNodeHelper(removeMissingType(templateType, !!(getMappedTypeModifiers(type2) & 4 /* IncludeOptional */)), context);\n        cleanup();\n        const mappedTypeNode = factory.createMappedTypeNode(\n          readonlyToken,\n          typeParameterNode,\n          nameTypeNode,\n          questionToken,\n          templateTypeNode,\n          /*members*/\n          void 0\n        );\n        context.approximateLength += 10;\n        const result = setEmitFlags(mappedTypeNode, 1 /* SingleLine */);\n        if (isHomomorphicMappedTypeWithNonHomomorphicInstantiation(type2) && context.flags & 4 /* GenerateNamesForShadowedTypeParams */) {\n          const originalConstraint = instantiateType(getConstraintOfTypeParameter(getTypeFromTypeNode2(context, type2.declaration.typeParameter.constraint.type)) || unknownType, type2.mapper);\n          return factory.createConditionalTypeNode(\n            typeToTypeNodeHelper(getModifiersTypeFromMappedType(type2), context),\n            factory.createInferTypeNode(factory.createTypeParameterDeclaration(\n              /*modifiers*/\n              void 0,\n              factory.cloneNode(newTypeVariable.typeName),\n              originalConstraint.flags & 2 /* Unknown */ ? void 0 : typeToTypeNodeHelper(originalConstraint, context)\n            )),\n            result,\n            factory.createKeywordTypeNode(146 /* NeverKeyword */)\n          );\n        } else if (needsModifierPreservingWrapper) {\n          return factory.createConditionalTypeNode(\n            typeToTypeNodeHelper(getConstraintTypeFromMappedType(type2), context),\n            factory.createInferTypeNode(factory.createTypeParameterDeclaration(\n              /*modifiers*/\n              void 0,\n              factory.cloneNode(newTypeVariable.typeName),\n              factory.createTypeOperatorNode(143 /* KeyOfKeyword */, typeToTypeNodeHelper(getModifiersTypeFromMappedType(type2), context))\n            )),\n            result,\n            factory.createKeywordTypeNode(146 /* NeverKeyword */)\n          );\n        }\n        return result;\n      }\n      function createAnonymousTypeNode(type2, forceClassExpansion = false, forceExpansion = false) {\n        var _a2, _b2;\n        const typeId = type2.id;\n        const symbol = type2.symbol;\n        if (symbol) {\n          const isInstantiationExpressionType = !!(getObjectFlags(type2) & 8388608 /* InstantiationExpressionType */);\n          if (isInstantiationExpressionType) {\n            const instantiationExpressionType = type2;\n            const existing = instantiationExpressionType.node;\n            if (isTypeQueryNode(existing) && getTypeFromTypeNode2(context, existing) === type2) {\n              const typeNode = syntacticNodeBuilder.tryReuseExistingTypeNode(context, existing);\n              if (typeNode) {\n                return typeNode;\n              }\n            }\n            if ((_a2 = context.visitedTypes) == null ? void 0 : _a2.has(typeId)) {\n              return createElidedInformationPlaceholder(context);\n            }\n            return visitAndTransformType(type2, createTypeNodeFromObjectType);\n          }\n          const isInstanceType = isClassInstanceSide(type2) ? 788968 /* Type */ : 111551 /* Value */;\n          if (isJSConstructor(symbol.valueDeclaration)) {\n            return symbolToTypeNode(symbol, context, isInstanceType);\n          } else if (!forceExpansion && (symbol.flags & 32 /* Class */ && !forceClassExpansion && !getBaseTypeVariableOfClass(symbol) && !(symbol.valueDeclaration && isClassLike(symbol.valueDeclaration) && context.flags & 2048 /* WriteClassExpressionAsTypeLiteral */ && (!isClassDeclaration(symbol.valueDeclaration) || isSymbolAccessible(\n            symbol,\n            context.enclosingDeclaration,\n            isInstanceType,\n            /*shouldComputeAliasesToMakeVisible*/\n            false\n          ).accessibility !== 0 /* Accessible */)) || symbol.flags & (384 /* Enum */ | 512 /* ValueModule */) || shouldWriteTypeOfFunctionSymbol())) {\n            if (shouldExpandType(type2, context)) {\n              context.depth += 1;\n            } else {\n              return symbolToTypeNode(symbol, context, isInstanceType);\n            }\n          }\n          if ((_b2 = context.visitedTypes) == null ? void 0 : _b2.has(typeId)) {\n            const typeAlias = getTypeAliasForTypeLiteral(type2);\n            if (typeAlias) {\n              return symbolToTypeNode(typeAlias, context, 788968 /* Type */);\n            } else {\n              return createElidedInformationPlaceholder(context);\n            }\n          } else {\n            return visitAndTransformType(type2, createTypeNodeFromObjectType);\n          }\n        } else {\n          return createTypeNodeFromObjectType(type2);\n        }\n        function shouldWriteTypeOfFunctionSymbol() {\n          var _a3;\n          const isStaticMethodSymbol = !!(symbol.flags & 8192 /* Method */) && // typeof static method\n          some(symbol.declarations, (declaration) => isStatic(declaration) && !isLateBindableIndexSignature(getNameOfDeclaration(declaration)));\n          const isNonLocalFunctionSymbol = !!(symbol.flags & 16 /* Function */) && (symbol.parent || // is exported function symbol\n          forEach(symbol.declarations, (declaration) => declaration.parent.kind === 308 /* SourceFile */ || declaration.parent.kind === 269 /* ModuleBlock */));\n          if (isStaticMethodSymbol || isNonLocalFunctionSymbol) {\n            return (!!(context.flags & 4096 /* UseTypeOfFunction */) || ((_a3 = context.visitedTypes) == null ? void 0 : _a3.has(typeId))) && // it is type of the symbol uses itself recursively\n            (!(context.flags & 8 /* UseStructuralFallback */) || isValueSymbolAccessible(symbol, context.enclosingDeclaration));\n          }\n        }\n      }\n      function visitAndTransformType(type2, transform2) {\n        var _a2, _b2, _c;\n        const typeId = type2.id;\n        const isConstructorObject = getObjectFlags(type2) & 16 /* Anonymous */ && type2.symbol && type2.symbol.flags & 32 /* Class */;\n        const id = getObjectFlags(type2) & 4 /* Reference */ && type2.node ? \"N\" + getNodeId(type2.node) : type2.flags & 16777216 /* Conditional */ ? \"N\" + getNodeId(type2.root.node) : type2.symbol ? (isConstructorObject ? \"+\" : \"\") + getSymbolId(type2.symbol) : void 0;\n        if (!context.visitedTypes) {\n          context.visitedTypes = /* @__PURE__ */ new Set();\n        }\n        if (id && !context.symbolDepth) {\n          context.symbolDepth = /* @__PURE__ */ new Map();\n        }\n        const links = context.maxExpansionDepth >= 0 ? void 0 : context.enclosingDeclaration && getNodeLinks(context.enclosingDeclaration);\n        const key = `${getTypeId(type2)}|${context.flags}|${context.internalFlags}`;\n        if (links) {\n          links.serializedTypes || (links.serializedTypes = /* @__PURE__ */ new Map());\n        }\n        const cachedResult = (_a2 = links == null ? void 0 : links.serializedTypes) == null ? void 0 : _a2.get(key);\n        if (cachedResult) {\n          (_b2 = cachedResult.trackedSymbols) == null ? void 0 : _b2.forEach(\n            ([symbol, enclosingDeclaration, meaning]) => context.tracker.trackSymbol(\n              symbol,\n              enclosingDeclaration,\n              meaning\n            )\n          );\n          if (cachedResult.truncating) {\n            context.truncating = true;\n          }\n          context.approximateLength += cachedResult.addedLength;\n          return deepCloneOrReuseNode(cachedResult.node);\n        }\n        let depth;\n        if (id) {\n          depth = context.symbolDepth.get(id) || 0;\n          if (depth > 10) {\n            return createElidedInformationPlaceholder(context);\n          }\n          context.symbolDepth.set(id, depth + 1);\n        }\n        context.visitedTypes.add(typeId);\n        const prevTrackedSymbols = context.trackedSymbols;\n        context.trackedSymbols = void 0;\n        const startLength = context.approximateLength;\n        const result = transform2(type2);\n        const addedLength = context.approximateLength - startLength;\n        if (!context.reportedDiagnostic && !context.encounteredError) {\n          (_c = links == null ? void 0 : links.serializedTypes) == null ? void 0 : _c.set(key, {\n            node: result,\n            truncating: context.truncating,\n            addedLength,\n            trackedSymbols: context.trackedSymbols\n          });\n        }\n        context.visitedTypes.delete(typeId);\n        if (id) {\n          context.symbolDepth.set(id, depth);\n        }\n        context.trackedSymbols = prevTrackedSymbols;\n        return result;\n        function deepCloneOrReuseNode(node) {\n          if (!nodeIsSynthesized(node) && getParseTreeNode(node) === node) {\n            return node;\n          }\n          return setTextRange2(context, factory.cloneNode(visitEachChild(\n            node,\n            deepCloneOrReuseNode,\n            /*context*/\n            void 0,\n            deepCloneOrReuseNodes,\n            deepCloneOrReuseNode\n          )), node);\n        }\n        function deepCloneOrReuseNodes(nodes, visitor, test, start, count) {\n          if (nodes && nodes.length === 0) {\n            return setTextRange(factory.createNodeArray(\n              /*elements*/\n              void 0,\n              nodes.hasTrailingComma\n            ), nodes);\n          }\n          return visitNodes2(nodes, visitor, test, start, count);\n        }\n      }\n      function createTypeNodeFromObjectType(type2) {\n        if (isGenericMappedType(type2) || type2.containsError) {\n          return createMappedTypeNodeFromType(type2);\n        }\n        const resolved = resolveStructuredTypeMembers(type2);\n        if (!resolved.properties.length && !resolved.indexInfos.length) {\n          if (!resolved.callSignatures.length && !resolved.constructSignatures.length) {\n            context.approximateLength += 2;\n            return setEmitFlags(factory.createTypeLiteralNode(\n              /*members*/\n              void 0\n            ), 1 /* SingleLine */);\n          }\n          if (resolved.callSignatures.length === 1 && !resolved.constructSignatures.length) {\n            const signature = resolved.callSignatures[0];\n            const signatureNode = signatureToSignatureDeclarationHelper(signature, 185 /* FunctionType */, context);\n            return signatureNode;\n          }\n          if (resolved.constructSignatures.length === 1 && !resolved.callSignatures.length) {\n            const signature = resolved.constructSignatures[0];\n            const signatureNode = signatureToSignatureDeclarationHelper(signature, 186 /* ConstructorType */, context);\n            return signatureNode;\n          }\n        }\n        const abstractSignatures = filter(resolved.constructSignatures, (signature) => !!(signature.flags & 4 /* Abstract */));\n        if (some(abstractSignatures)) {\n          const types = map(abstractSignatures, getOrCreateTypeFromSignature);\n          const typeElementCount = resolved.callSignatures.length + (resolved.constructSignatures.length - abstractSignatures.length) + resolved.indexInfos.length + // exclude `prototype` when writing a class expression as a type literal, as per\n          // the logic in `createTypeNodesFromResolvedType`.\n          (context.flags & 2048 /* WriteClassExpressionAsTypeLiteral */ ? countWhere(resolved.properties, (p) => !(p.flags & 4194304 /* Prototype */)) : length(resolved.properties));\n          if (typeElementCount) {\n            types.push(getResolvedTypeWithoutAbstractConstructSignatures(resolved));\n          }\n          return typeToTypeNodeHelper(getIntersectionType(types), context);\n        }\n        const restoreFlags = saveRestoreFlags(context);\n        context.flags |= 4194304 /* InObjectTypeLiteral */;\n        const members = createTypeNodesFromResolvedType(resolved);\n        restoreFlags();\n        const typeLiteralNode = factory.createTypeLiteralNode(members);\n        context.approximateLength += 2;\n        setEmitFlags(typeLiteralNode, context.flags & 1024 /* MultilineObjectLiterals */ ? 0 : 1 /* SingleLine */);\n        return typeLiteralNode;\n      }\n      function typeReferenceToTypeNode(type2) {\n        let typeArguments = getTypeArguments(type2);\n        if (type2.target === globalArrayType || type2.target === globalReadonlyArrayType) {\n          if (context.flags & 2 /* WriteArrayAsGenericType */) {\n            const typeArgumentNode = typeToTypeNodeHelper(typeArguments[0], context);\n            return factory.createTypeReferenceNode(type2.target === globalArrayType ? \"Array\" : \"ReadonlyArray\", [typeArgumentNode]);\n          }\n          const elementType = typeToTypeNodeHelper(typeArguments[0], context);\n          const arrayType = factory.createArrayTypeNode(elementType);\n          return type2.target === globalArrayType ? arrayType : factory.createTypeOperatorNode(148 /* ReadonlyKeyword */, arrayType);\n        } else if (type2.target.objectFlags & 8 /* Tuple */) {\n          typeArguments = sameMap(typeArguments, (t, i) => removeMissingType(t, !!(type2.target.elementFlags[i] & 2 /* Optional */)));\n          if (typeArguments.length > 0) {\n            const arity = getTypeReferenceArity(type2);\n            const tupleConstituentNodes = mapToTypeNodes(typeArguments.slice(0, arity), context);\n            if (tupleConstituentNodes) {\n              const { labeledElementDeclarations } = type2.target;\n              for (let i = 0; i < tupleConstituentNodes.length; i++) {\n                const flags = type2.target.elementFlags[i];\n                const labeledElementDeclaration = labeledElementDeclarations == null ? void 0 : labeledElementDeclarations[i];\n                if (labeledElementDeclaration) {\n                  tupleConstituentNodes[i] = factory.createNamedTupleMember(\n                    flags & 12 /* Variable */ ? factory.createToken(26 /* DotDotDotToken */) : void 0,\n                    factory.createIdentifier(unescapeLeadingUnderscores(getTupleElementLabel(labeledElementDeclaration))),\n                    flags & 2 /* Optional */ ? factory.createToken(58 /* QuestionToken */) : void 0,\n                    flags & 4 /* Rest */ ? factory.createArrayTypeNode(tupleConstituentNodes[i]) : tupleConstituentNodes[i]\n                  );\n                } else {\n                  tupleConstituentNodes[i] = flags & 12 /* Variable */ ? factory.createRestTypeNode(flags & 4 /* Rest */ ? factory.createArrayTypeNode(tupleConstituentNodes[i]) : tupleConstituentNodes[i]) : flags & 2 /* Optional */ ? factory.createOptionalTypeNode(tupleConstituentNodes[i]) : tupleConstituentNodes[i];\n                }\n              }\n              const tupleTypeNode = setEmitFlags(factory.createTupleTypeNode(tupleConstituentNodes), 1 /* SingleLine */);\n              return type2.target.readonly ? factory.createTypeOperatorNode(148 /* ReadonlyKeyword */, tupleTypeNode) : tupleTypeNode;\n            }\n          }\n          if (context.encounteredError || context.flags & 524288 /* AllowEmptyTuple */) {\n            const tupleTypeNode = setEmitFlags(factory.createTupleTypeNode([]), 1 /* SingleLine */);\n            return type2.target.readonly ? factory.createTypeOperatorNode(148 /* ReadonlyKeyword */, tupleTypeNode) : tupleTypeNode;\n          }\n          context.encounteredError = true;\n          return void 0;\n        } else if (context.flags & 2048 /* WriteClassExpressionAsTypeLiteral */ && type2.symbol.valueDeclaration && isClassLike(type2.symbol.valueDeclaration) && !isValueSymbolAccessible(type2.symbol, context.enclosingDeclaration)) {\n          return createAnonymousTypeNode(type2);\n        } else {\n          const outerTypeParameters = type2.target.outerTypeParameters;\n          let i = 0;\n          let resultType;\n          if (outerTypeParameters) {\n            const length2 = outerTypeParameters.length;\n            while (i < length2) {\n              const start = i;\n              const parent2 = getParentSymbolOfTypeParameter(outerTypeParameters[i]);\n              do {\n                i++;\n              } while (i < length2 && getParentSymbolOfTypeParameter(outerTypeParameters[i]) === parent2);\n              if (!rangeEquals(outerTypeParameters, typeArguments, start, i)) {\n                const typeArgumentSlice = mapToTypeNodes(typeArguments.slice(start, i), context);\n                const restoreFlags2 = saveRestoreFlags(context);\n                context.flags |= 16 /* ForbidIndexedAccessSymbolReferences */;\n                const ref = symbolToTypeNode(parent2, context, 788968 /* Type */, typeArgumentSlice);\n                restoreFlags2();\n                resultType = !resultType ? ref : appendReferenceToType(resultType, ref);\n              }\n            }\n          }\n          let typeArgumentNodes;\n          if (typeArguments.length > 0) {\n            let typeParameterCount = 0;\n            if (type2.target.typeParameters) {\n              typeParameterCount = Math.min(type2.target.typeParameters.length, typeArguments.length);\n              if (isReferenceToType2(type2, getGlobalIterableType(\n                /*reportErrors*/\n                false\n              )) || isReferenceToType2(type2, getGlobalIterableIteratorType(\n                /*reportErrors*/\n                false\n              )) || isReferenceToType2(type2, getGlobalAsyncIterableType(\n                /*reportErrors*/\n                false\n              )) || isReferenceToType2(type2, getGlobalAsyncIterableIteratorType(\n                /*reportErrors*/\n                false\n              ))) {\n                if (!type2.node || !isTypeReferenceNode(type2.node) || !type2.node.typeArguments || type2.node.typeArguments.length < typeParameterCount) {\n                  while (typeParameterCount > 0) {\n                    const typeArgument = typeArguments[typeParameterCount - 1];\n                    const typeParameter = type2.target.typeParameters[typeParameterCount - 1];\n                    const defaultType = getDefaultFromTypeParameter(typeParameter);\n                    if (!defaultType || !isTypeIdenticalTo(typeArgument, defaultType)) {\n                      break;\n                    }\n                    typeParameterCount--;\n                  }\n                }\n              }\n            }\n            typeArgumentNodes = mapToTypeNodes(typeArguments.slice(i, typeParameterCount), context);\n          }\n          const restoreFlags = saveRestoreFlags(context);\n          context.flags |= 16 /* ForbidIndexedAccessSymbolReferences */;\n          const finalRef = symbolToTypeNode(type2.symbol, context, 788968 /* Type */, typeArgumentNodes);\n          restoreFlags();\n          return !resultType ? finalRef : appendReferenceToType(resultType, finalRef);\n        }\n      }\n      function appendReferenceToType(root, ref) {\n        if (isImportTypeNode(root)) {\n          let typeArguments = root.typeArguments;\n          let qualifier = root.qualifier;\n          if (qualifier) {\n            if (isIdentifier(qualifier)) {\n              if (typeArguments !== getIdentifierTypeArguments(qualifier)) {\n                qualifier = setIdentifierTypeArguments(factory.cloneNode(qualifier), typeArguments);\n              }\n            } else {\n              if (typeArguments !== getIdentifierTypeArguments(qualifier.right)) {\n                qualifier = factory.updateQualifiedName(qualifier, qualifier.left, setIdentifierTypeArguments(factory.cloneNode(qualifier.right), typeArguments));\n              }\n            }\n          }\n          typeArguments = ref.typeArguments;\n          const ids = getAccessStack(ref);\n          for (const id of ids) {\n            qualifier = qualifier ? factory.createQualifiedName(qualifier, id) : id;\n          }\n          return factory.updateImportTypeNode(\n            root,\n            root.argument,\n            root.attributes,\n            qualifier,\n            typeArguments,\n            root.isTypeOf\n          );\n        } else {\n          let typeArguments = root.typeArguments;\n          let typeName = root.typeName;\n          if (isIdentifier(typeName)) {\n            if (typeArguments !== getIdentifierTypeArguments(typeName)) {\n              typeName = setIdentifierTypeArguments(factory.cloneNode(typeName), typeArguments);\n            }\n          } else {\n            if (typeArguments !== getIdentifierTypeArguments(typeName.right)) {\n              typeName = factory.updateQualifiedName(typeName, typeName.left, setIdentifierTypeArguments(factory.cloneNode(typeName.right), typeArguments));\n            }\n          }\n          typeArguments = ref.typeArguments;\n          const ids = getAccessStack(ref);\n          for (const id of ids) {\n            typeName = factory.createQualifiedName(typeName, id);\n          }\n          return factory.updateTypeReferenceNode(\n            root,\n            typeName,\n            typeArguments\n          );\n        }\n      }\n      function getAccessStack(ref) {\n        let state = ref.typeName;\n        const ids = [];\n        while (!isIdentifier(state)) {\n          ids.unshift(state.right);\n          state = state.left;\n        }\n        ids.unshift(state);\n        return ids;\n      }\n      function indexInfoToObjectComputedNamesOrSignatureDeclaration(indexInfo, context2, typeNode) {\n        if (indexInfo.components) {\n          const allComponentComputedNamesSerializable = every(indexInfo.components, (e) => {\n            var _a2;\n            return !!(e.name && isComputedPropertyName(e.name) && isEntityNameExpression(e.name.expression) && context2.enclosingDeclaration && ((_a2 = isEntityNameVisible(\n              e.name.expression,\n              context2.enclosingDeclaration,\n              /*shouldComputeAliasToMakeVisible*/\n              false\n            )) == null ? void 0 : _a2.accessibility) === 0 /* Accessible */);\n          });\n          if (allComponentComputedNamesSerializable) {\n            const newComponents = filter(indexInfo.components, (e) => {\n              return !hasLateBindableName(e);\n            });\n            return map(newComponents, (e) => {\n              trackComputedName(e.name.expression, context2.enclosingDeclaration, context2);\n              return setTextRange2(\n                context2,\n                factory.createPropertySignature(\n                  indexInfo.isReadonly ? [factory.createModifier(148 /* ReadonlyKeyword */)] : void 0,\n                  e.name,\n                  (isPropertySignature(e) || isPropertyDeclaration(e) || isMethodSignature(e) || isMethodDeclaration(e) || isGetAccessor(e) || isSetAccessor(e)) && e.questionToken ? factory.createToken(58 /* QuestionToken */) : void 0,\n                  typeNode || typeToTypeNodeHelper(getTypeOfSymbol(e.symbol), context2)\n                ),\n                e\n              );\n            });\n          }\n        }\n        return [indexInfoToIndexSignatureDeclarationHelper(indexInfo, context2, typeNode)];\n      }\n      function createTypeNodesFromResolvedType(resolvedType) {\n        if (checkTruncationLength(context)) {\n          context.out.truncated = true;\n          if (context.flags & 1 /* NoTruncation */) {\n            return [addSyntheticTrailingComment(factory.createNotEmittedTypeElement(), 3 /* MultiLineCommentTrivia */, \"elided\")];\n          }\n          return [factory.createPropertySignature(\n            /*modifiers*/\n            void 0,\n            \"...\",\n            /*questionToken*/\n            void 0,\n            /*type*/\n            void 0\n          )];\n        }\n        context.typeStack.push(-1);\n        const typeElements = [];\n        for (const signature of resolvedType.callSignatures) {\n          typeElements.push(signatureToSignatureDeclarationHelper(signature, 180 /* CallSignature */, context));\n        }\n        for (const signature of resolvedType.constructSignatures) {\n          if (signature.flags & 4 /* Abstract */) continue;\n          typeElements.push(signatureToSignatureDeclarationHelper(signature, 181 /* ConstructSignature */, context));\n        }\n        for (const info of resolvedType.indexInfos) {\n          typeElements.push(...indexInfoToObjectComputedNamesOrSignatureDeclaration(info, context, resolvedType.objectFlags & 1024 /* ReverseMapped */ ? createElidedInformationPlaceholder(context) : void 0));\n        }\n        const properties = resolvedType.properties;\n        if (!properties) {\n          context.typeStack.pop();\n          return typeElements;\n        }\n        let i = 0;\n        for (const propertySymbol of properties) {\n          if (isExpanding(context) && propertySymbol.flags & 4194304 /* Prototype */) {\n            continue;\n          }\n          i++;\n          if (context.flags & 2048 /* WriteClassExpressionAsTypeLiteral */) {\n            if (propertySymbol.flags & 4194304 /* Prototype */) {\n              continue;\n            }\n            if (getDeclarationModifierFlagsFromSymbol(propertySymbol) & (2 /* Private */ | 4 /* Protected */) && context.tracker.reportPrivateInBaseOfClassExpression) {\n              context.tracker.reportPrivateInBaseOfClassExpression(unescapeLeadingUnderscores(propertySymbol.escapedName));\n            }\n          }\n          if (checkTruncationLength(context) && i + 2 < properties.length - 1) {\n            context.out.truncated = true;\n            if (context.flags & 1 /* NoTruncation */) {\n              const typeElement = typeElements.pop();\n              typeElements.push(addSyntheticTrailingComment(typeElement, 3 /* MultiLineCommentTrivia */, `... ${properties.length - i} more elided ...`));\n            } else {\n              typeElements.push(factory.createPropertySignature(\n                /*modifiers*/\n                void 0,\n                `... ${properties.length - i} more ...`,\n                /*questionToken*/\n                void 0,\n                /*type*/\n                void 0\n              ));\n            }\n            addPropertyToElementList(properties[properties.length - 1], context, typeElements);\n            break;\n          }\n          addPropertyToElementList(propertySymbol, context, typeElements);\n        }\n        context.typeStack.pop();\n        return typeElements.length ? typeElements : void 0;\n      }\n    }\n    function createElidedInformationPlaceholder(context) {\n      context.approximateLength += 3;\n      if (!(context.flags & 1 /* NoTruncation */)) {\n        return factory.createTypeReferenceNode(\n          factory.createIdentifier(\"...\"),\n          /*typeArguments*/\n          void 0\n        );\n      }\n      return addSyntheticLeadingComment(factory.createKeywordTypeNode(133 /* AnyKeyword */), 3 /* MultiLineCommentTrivia */, \"elided\");\n    }\n    function shouldUsePlaceholderForProperty(propertySymbol, context) {\n      var _a;\n      const depth = 3;\n      return !!(getCheckFlags(propertySymbol) & 8192 /* ReverseMapped */) && (contains(context.reverseMappedStack, propertySymbol) || ((_a = context.reverseMappedStack) == null ? void 0 : _a[0]) && !(getObjectFlags(last(context.reverseMappedStack).links.propertyType) & 16 /* Anonymous */) || isDeeplyNestedReverseMappedTypeProperty());\n      function isDeeplyNestedReverseMappedTypeProperty() {\n        var _a2;\n        if ((((_a2 = context.reverseMappedStack) == null ? void 0 : _a2.length) ?? 0) < depth) {\n          return false;\n        }\n        for (let i = 0; i < depth; i++) {\n          const prop = context.reverseMappedStack[context.reverseMappedStack.length - 1 - i];\n          if (prop.links.mappedType.symbol !== propertySymbol.links.mappedType.symbol) {\n            return false;\n          }\n        }\n        return true;\n      }\n    }\n    function addPropertyToElementList(propertySymbol, context, typeElements) {\n      var _a;\n      const propertyIsReverseMapped = !!(getCheckFlags(propertySymbol) & 8192 /* ReverseMapped */);\n      const propertyType = shouldUsePlaceholderForProperty(propertySymbol, context) ? anyType : getNonMissingTypeOfSymbol(propertySymbol);\n      const saveEnclosingDeclaration = context.enclosingDeclaration;\n      context.enclosingDeclaration = void 0;\n      if (context.tracker.canTrackSymbol && isLateBoundName(propertySymbol.escapedName)) {\n        if (propertySymbol.declarations) {\n          const decl = first(propertySymbol.declarations);\n          if (hasLateBindableName(decl)) {\n            if (isBinaryExpression(decl)) {\n              const name = getNameOfDeclaration(decl);\n              if (name && isElementAccessExpression(name) && isPropertyAccessEntityNameExpression(name.argumentExpression)) {\n                trackComputedName(name.argumentExpression, saveEnclosingDeclaration, context);\n              }\n            } else {\n              trackComputedName(decl.name.expression, saveEnclosingDeclaration, context);\n            }\n          }\n        } else {\n          context.tracker.reportNonSerializableProperty(symbolToString(propertySymbol));\n        }\n      }\n      context.enclosingDeclaration = propertySymbol.valueDeclaration || ((_a = propertySymbol.declarations) == null ? void 0 : _a[0]) || saveEnclosingDeclaration;\n      const propertyName = getPropertyNameNodeForSymbol(propertySymbol, context);\n      context.enclosingDeclaration = saveEnclosingDeclaration;\n      context.approximateLength += symbolName(propertySymbol).length + 1;\n      if (propertySymbol.flags & 98304 /* Accessor */) {\n        const writeType = getWriteTypeOfSymbol(propertySymbol);\n        if (!isErrorType(propertyType) && !isErrorType(writeType)) {\n          const symbolMapper = getSymbolLinks(propertySymbol).mapper;\n          const propDeclaration = getDeclarationOfKind(propertySymbol, 173 /* PropertyDeclaration */);\n          if (propertyType !== writeType || propertySymbol.parent.flags & 32 /* Class */ && !propDeclaration) {\n            const getterDeclaration = getDeclarationOfKind(propertySymbol, 178 /* GetAccessor */);\n            if (getterDeclaration) {\n              const getterSignature = getSignatureFromDeclaration(getterDeclaration);\n              typeElements.push(\n                setCommentRange2(\n                  context,\n                  signatureToSignatureDeclarationHelper(symbolMapper ? instantiateSignature(getterSignature, symbolMapper) : getterSignature, 178 /* GetAccessor */, context, { name: propertyName }),\n                  getterDeclaration\n                )\n              );\n            }\n            const setterDeclaration = getDeclarationOfKind(propertySymbol, 179 /* SetAccessor */);\n            if (setterDeclaration) {\n              const setterSignature = getSignatureFromDeclaration(setterDeclaration);\n              typeElements.push(\n                setCommentRange2(\n                  context,\n                  signatureToSignatureDeclarationHelper(symbolMapper ? instantiateSignature(setterSignature, symbolMapper) : setterSignature, 179 /* SetAccessor */, context, { name: propertyName }),\n                  setterDeclaration\n                )\n              );\n            }\n            return;\n          }\n          if (propertySymbol.parent.flags & 32 /* Class */ && propDeclaration && find(propDeclaration.modifiers, isAccessorModifier)) {\n            const fakeGetterSignature = createSignature(\n              /*declaration*/\n              void 0,\n              /*typeParameters*/\n              void 0,\n              /*thisParameter*/\n              void 0,\n              emptyArray,\n              propertyType,\n              /*resolvedTypePredicate*/\n              void 0,\n              0,\n              0 /* None */\n            );\n            typeElements.push(\n              setCommentRange2(\n                context,\n                signatureToSignatureDeclarationHelper(fakeGetterSignature, 178 /* GetAccessor */, context, { name: propertyName }),\n                propDeclaration\n              )\n            );\n            const setterParam = createSymbol(1 /* FunctionScopedVariable */, \"arg\");\n            setterParam.links.type = writeType;\n            const fakeSetterSignature = createSignature(\n              /*declaration*/\n              void 0,\n              /*typeParameters*/\n              void 0,\n              /*thisParameter*/\n              void 0,\n              [setterParam],\n              voidType,\n              /*resolvedTypePredicate*/\n              void 0,\n              0,\n              0 /* None */\n            );\n            typeElements.push(\n              signatureToSignatureDeclarationHelper(fakeSetterSignature, 179 /* SetAccessor */, context, { name: propertyName })\n            );\n            return;\n          }\n        }\n      }\n      const optionalToken = propertySymbol.flags & 16777216 /* Optional */ ? factory.createToken(58 /* QuestionToken */) : void 0;\n      if (propertySymbol.flags & (16 /* Function */ | 8192 /* Method */) && !getPropertiesOfObjectType(propertyType).length && !isReadonlySymbol(propertySymbol)) {\n        const signatures = getSignaturesOfType(filterType(propertyType, (t) => !(t.flags & 32768 /* Undefined */)), 0 /* Call */);\n        for (const signature of signatures) {\n          const methodDeclaration = signatureToSignatureDeclarationHelper(signature, 174 /* MethodSignature */, context, { name: propertyName, questionToken: optionalToken });\n          typeElements.push(preserveCommentsOn(methodDeclaration, signature.declaration || propertySymbol.valueDeclaration));\n        }\n        if (signatures.length || !optionalToken) {\n          return;\n        }\n      }\n      let propertyTypeNode;\n      if (shouldUsePlaceholderForProperty(propertySymbol, context)) {\n        propertyTypeNode = createElidedInformationPlaceholder(context);\n      } else {\n        if (propertyIsReverseMapped) {\n          context.reverseMappedStack || (context.reverseMappedStack = []);\n          context.reverseMappedStack.push(propertySymbol);\n        }\n        propertyTypeNode = propertyType ? serializeTypeForDeclaration(\n          context,\n          /*declaration*/\n          void 0,\n          propertyType,\n          propertySymbol\n        ) : factory.createKeywordTypeNode(133 /* AnyKeyword */);\n        if (propertyIsReverseMapped) {\n          context.reverseMappedStack.pop();\n        }\n      }\n      const modifiers = isReadonlySymbol(propertySymbol) ? [factory.createToken(148 /* ReadonlyKeyword */)] : void 0;\n      if (modifiers) {\n        context.approximateLength += 9;\n      }\n      const propertySignature = factory.createPropertySignature(\n        modifiers,\n        propertyName,\n        optionalToken,\n        propertyTypeNode\n      );\n      typeElements.push(preserveCommentsOn(propertySignature, propertySymbol.valueDeclaration));\n      function preserveCommentsOn(node, range) {\n        var _a2;\n        const jsdocPropertyTag = (_a2 = propertySymbol.declarations) == null ? void 0 : _a2.find((d) => d.kind === 349 /* JSDocPropertyTag */);\n        if (jsdocPropertyTag) {\n          const commentText = getTextOfJSDocComment(jsdocPropertyTag.comment);\n          if (commentText) {\n            setSyntheticLeadingComments(node, [{ kind: 3 /* MultiLineCommentTrivia */, text: \"*\\n * \" + commentText.replace(/\\n/g, \"\\n * \") + \"\\n \", pos: -1, end: -1, hasTrailingNewLine: true }]);\n          }\n        } else if (range) {\n          setCommentRange2(context, node, range);\n        }\n        return node;\n      }\n    }\n    function setCommentRange2(context, node, range) {\n      if (context.enclosingFile && context.enclosingFile === getSourceFileOfNode(range)) {\n        return setCommentRange(node, range);\n      }\n      return node;\n    }\n    function mapToTypeNodes(types, context, isBareList) {\n      if (some(types)) {\n        if (checkTruncationLength(context)) {\n          context.out.truncated = true;\n          if (!isBareList) {\n            return [\n              context.flags & 1 /* NoTruncation */ ? addSyntheticLeadingComment(factory.createKeywordTypeNode(133 /* AnyKeyword */), 3 /* MultiLineCommentTrivia */, \"elided\") : factory.createTypeReferenceNode(\n                \"...\",\n                /*typeArguments*/\n                void 0\n              )\n            ];\n          } else if (types.length > 2) {\n            return [\n              typeToTypeNodeHelper(types[0], context),\n              context.flags & 1 /* NoTruncation */ ? addSyntheticLeadingComment(factory.createKeywordTypeNode(133 /* AnyKeyword */), 3 /* MultiLineCommentTrivia */, `... ${types.length - 2} more elided ...`) : factory.createTypeReferenceNode(\n                `... ${types.length - 2} more ...`,\n                /*typeArguments*/\n                void 0\n              ),\n              typeToTypeNodeHelper(types[types.length - 1], context)\n            ];\n          }\n        }\n        const mayHaveNameCollisions = !(context.flags & 64 /* UseFullyQualifiedType */);\n        const seenNames = mayHaveNameCollisions ? createMultiMap() : void 0;\n        const result = [];\n        let i = 0;\n        for (const type of types) {\n          i++;\n          if (checkTruncationLength(context) && i + 2 < types.length - 1) {\n            context.out.truncated = true;\n            result.push(\n              context.flags & 1 /* NoTruncation */ ? addSyntheticLeadingComment(factory.createKeywordTypeNode(133 /* AnyKeyword */), 3 /* MultiLineCommentTrivia */, `... ${types.length - i} more elided ...`) : factory.createTypeReferenceNode(\n                `... ${types.length - i} more ...`,\n                /*typeArguments*/\n                void 0\n              )\n            );\n            const typeNode2 = typeToTypeNodeHelper(types[types.length - 1], context);\n            if (typeNode2) {\n              result.push(typeNode2);\n            }\n            break;\n          }\n          context.approximateLength += 2;\n          const typeNode = typeToTypeNodeHelper(type, context);\n          if (typeNode) {\n            result.push(typeNode);\n            if (seenNames && isIdentifierTypeReference(typeNode)) {\n              seenNames.add(typeNode.typeName.escapedText, [type, result.length - 1]);\n            }\n          }\n        }\n        if (seenNames) {\n          const restoreFlags = saveRestoreFlags(context);\n          context.flags |= 64 /* UseFullyQualifiedType */;\n          seenNames.forEach((types2) => {\n            if (!arrayIsHomogeneous(types2, ([a], [b]) => typesAreSameReference(a, b))) {\n              for (const [type, resultIndex] of types2) {\n                result[resultIndex] = typeToTypeNodeHelper(type, context);\n              }\n            }\n          });\n          restoreFlags();\n        }\n        return result;\n      }\n    }\n    function typesAreSameReference(a, b) {\n      return a === b || !!a.symbol && a.symbol === b.symbol || !!a.aliasSymbol && a.aliasSymbol === b.aliasSymbol;\n    }\n    function indexInfoToIndexSignatureDeclarationHelper(indexInfo, context, typeNode) {\n      const name = getNameFromIndexInfo(indexInfo) || \"x\";\n      const indexerTypeNode = typeToTypeNodeHelper(indexInfo.keyType, context);\n      const indexingParameter = factory.createParameterDeclaration(\n        /*modifiers*/\n        void 0,\n        /*dotDotDotToken*/\n        void 0,\n        name,\n        /*questionToken*/\n        void 0,\n        indexerTypeNode,\n        /*initializer*/\n        void 0\n      );\n      if (!typeNode) {\n        typeNode = typeToTypeNodeHelper(indexInfo.type || anyType, context);\n      }\n      if (!indexInfo.type && !(context.flags & 2097152 /* AllowEmptyIndexInfoType */)) {\n        context.encounteredError = true;\n      }\n      context.approximateLength += name.length + 4;\n      return factory.createIndexSignature(\n        indexInfo.isReadonly ? [factory.createToken(148 /* ReadonlyKeyword */)] : void 0,\n        [indexingParameter],\n        typeNode\n      );\n    }\n    function signatureToSignatureDeclarationHelper(signature, kind, context, options) {\n      var _a;\n      let typeParameters;\n      let typeArguments;\n      const expandedParams = getExpandedParameters(\n        signature,\n        /*skipUnionExpanding*/\n        true\n      )[0];\n      const cleanup = enterNewScope(context, signature.declaration, expandedParams, signature.typeParameters, signature.parameters, signature.mapper);\n      context.approximateLength += 3;\n      if (context.flags & 32 /* WriteTypeArgumentsOfSignature */ && signature.target && signature.mapper && signature.target.typeParameters) {\n        typeArguments = signature.target.typeParameters.map((parameter) => typeToTypeNodeHelper(instantiateType(parameter, signature.mapper), context));\n      } else {\n        typeParameters = signature.typeParameters && signature.typeParameters.map((parameter) => typeParameterToDeclaration(parameter, context));\n      }\n      const restoreFlags = saveRestoreFlags(context);\n      context.flags &= ~256 /* SuppressAnyReturnType */;\n      const parameters = (some(expandedParams, (p) => p !== expandedParams[expandedParams.length - 1] && !!(getCheckFlags(p) & 32768 /* RestParameter */)) ? signature.parameters : expandedParams).map((parameter) => symbolToParameterDeclaration(parameter, context, kind === 177 /* Constructor */));\n      const thisParameter = context.flags & 33554432 /* OmitThisParameter */ ? void 0 : tryGetThisParameterDeclaration(signature, context);\n      if (thisParameter) {\n        parameters.unshift(thisParameter);\n      }\n      restoreFlags();\n      const returnTypeNode = serializeReturnTypeForSignature(context, signature);\n      let modifiers = options == null ? void 0 : options.modifiers;\n      if (kind === 186 /* ConstructorType */ && signature.flags & 4 /* Abstract */) {\n        const flags = modifiersToFlags(modifiers);\n        modifiers = factory.createModifiersFromModifierFlags(flags | 64 /* Abstract */);\n      }\n      const node = kind === 180 /* CallSignature */ ? factory.createCallSignature(typeParameters, parameters, returnTypeNode) : kind === 181 /* ConstructSignature */ ? factory.createConstructSignature(typeParameters, parameters, returnTypeNode) : kind === 174 /* MethodSignature */ ? factory.createMethodSignature(modifiers, (options == null ? void 0 : options.name) ?? factory.createIdentifier(\"\"), options == null ? void 0 : options.questionToken, typeParameters, parameters, returnTypeNode) : kind === 175 /* MethodDeclaration */ ? factory.createMethodDeclaration(\n        modifiers,\n        /*asteriskToken*/\n        void 0,\n        (options == null ? void 0 : options.name) ?? factory.createIdentifier(\"\"),\n        /*questionToken*/\n        void 0,\n        typeParameters,\n        parameters,\n        returnTypeNode,\n        /*body*/\n        void 0\n      ) : kind === 177 /* Constructor */ ? factory.createConstructorDeclaration(\n        modifiers,\n        parameters,\n        /*body*/\n        void 0\n      ) : kind === 178 /* GetAccessor */ ? factory.createGetAccessorDeclaration(\n        modifiers,\n        (options == null ? void 0 : options.name) ?? factory.createIdentifier(\"\"),\n        parameters,\n        returnTypeNode,\n        /*body*/\n        void 0\n      ) : kind === 179 /* SetAccessor */ ? factory.createSetAccessorDeclaration(\n        modifiers,\n        (options == null ? void 0 : options.name) ?? factory.createIdentifier(\"\"),\n        parameters,\n        /*body*/\n        void 0\n      ) : kind === 182 /* IndexSignature */ ? factory.createIndexSignature(modifiers, parameters, returnTypeNode) : kind === 318 /* JSDocFunctionType */ ? factory.createJSDocFunctionType(parameters, returnTypeNode) : kind === 185 /* FunctionType */ ? factory.createFunctionTypeNode(typeParameters, parameters, returnTypeNode ?? factory.createTypeReferenceNode(factory.createIdentifier(\"\"))) : kind === 186 /* ConstructorType */ ? factory.createConstructorTypeNode(modifiers, typeParameters, parameters, returnTypeNode ?? factory.createTypeReferenceNode(factory.createIdentifier(\"\"))) : kind === 263 /* FunctionDeclaration */ ? factory.createFunctionDeclaration(\n        modifiers,\n        /*asteriskToken*/\n        void 0,\n        (options == null ? void 0 : options.name) ? cast(options.name, isIdentifier) : factory.createIdentifier(\"\"),\n        typeParameters,\n        parameters,\n        returnTypeNode,\n        /*body*/\n        void 0\n      ) : kind === 219 /* FunctionExpression */ ? factory.createFunctionExpression(\n        modifiers,\n        /*asteriskToken*/\n        void 0,\n        (options == null ? void 0 : options.name) ? cast(options.name, isIdentifier) : factory.createIdentifier(\"\"),\n        typeParameters,\n        parameters,\n        returnTypeNode,\n        factory.createBlock([])\n      ) : kind === 220 /* ArrowFunction */ ? factory.createArrowFunction(\n        modifiers,\n        typeParameters,\n        parameters,\n        returnTypeNode,\n        /*equalsGreaterThanToken*/\n        void 0,\n        factory.createBlock([])\n      ) : Debug.assertNever(kind);\n      if (typeArguments) {\n        node.typeArguments = factory.createNodeArray(typeArguments);\n      }\n      if (((_a = signature.declaration) == null ? void 0 : _a.kind) === 324 /* JSDocSignature */ && signature.declaration.parent.kind === 340 /* JSDocOverloadTag */) {\n        const comment = getTextOfNode(\n          signature.declaration.parent.parent,\n          /*includeTrivia*/\n          true\n        ).slice(2, -2).split(/\\r\\n|\\n|\\r/).map((line) => line.replace(/^\\s+/, \" \")).join(\"\\n\");\n        addSyntheticLeadingComment(\n          node,\n          3 /* MultiLineCommentTrivia */,\n          comment,\n          /*hasTrailingNewLine*/\n          true\n        );\n      }\n      cleanup == null ? void 0 : cleanup();\n      return node;\n    }\n    function createRecoveryBoundary(context) {\n      if (cancellationToken && cancellationToken.throwIfCancellationRequested) {\n        cancellationToken.throwIfCancellationRequested();\n      }\n      let trackedSymbols;\n      let unreportedErrors;\n      let hadError = false;\n      const oldTracker = context.tracker;\n      const oldTrackedSymbols = context.trackedSymbols;\n      context.trackedSymbols = void 0;\n      const oldEncounteredError = context.encounteredError;\n      context.tracker = new SymbolTrackerImpl(context, {\n        ...oldTracker.inner,\n        reportCyclicStructureError() {\n          markError(() => oldTracker.reportCyclicStructureError());\n        },\n        reportInaccessibleThisError() {\n          markError(() => oldTracker.reportInaccessibleThisError());\n        },\n        reportInaccessibleUniqueSymbolError() {\n          markError(() => oldTracker.reportInaccessibleUniqueSymbolError());\n        },\n        reportLikelyUnsafeImportRequiredError(specifier) {\n          markError(() => oldTracker.reportLikelyUnsafeImportRequiredError(specifier));\n        },\n        reportNonSerializableProperty(name) {\n          markError(() => oldTracker.reportNonSerializableProperty(name));\n        },\n        reportPrivateInBaseOfClassExpression(propertyName) {\n          markError(() => oldTracker.reportPrivateInBaseOfClassExpression(propertyName));\n        },\n        trackSymbol(sym, decl, meaning) {\n          (trackedSymbols ?? (trackedSymbols = [])).push([sym, decl, meaning]);\n          return false;\n        },\n        moduleResolverHost: context.tracker.moduleResolverHost\n      }, context.tracker.moduleResolverHost);\n      return {\n        startRecoveryScope,\n        finalizeBoundary,\n        markError,\n        hadError: () => hadError\n      };\n      function markError(unreportedError) {\n        hadError = true;\n        if (unreportedError) {\n          (unreportedErrors ?? (unreportedErrors = [])).push(unreportedError);\n        }\n      }\n      function startRecoveryScope() {\n        const trackedSymbolsTop = (trackedSymbols == null ? void 0 : trackedSymbols.length) ?? 0;\n        const unreportedErrorsTop = (unreportedErrors == null ? void 0 : unreportedErrors.length) ?? 0;\n        return () => {\n          hadError = false;\n          if (trackedSymbols) {\n            trackedSymbols.length = trackedSymbolsTop;\n          }\n          if (unreportedErrors) {\n            unreportedErrors.length = unreportedErrorsTop;\n          }\n        };\n      }\n      function finalizeBoundary() {\n        context.tracker = oldTracker;\n        context.trackedSymbols = oldTrackedSymbols;\n        context.encounteredError = oldEncounteredError;\n        unreportedErrors == null ? void 0 : unreportedErrors.forEach((fn) => fn());\n        if (hadError) {\n          return false;\n        }\n        trackedSymbols == null ? void 0 : trackedSymbols.forEach(\n          ([symbol, enclosingDeclaration, meaning]) => context.tracker.trackSymbol(\n            symbol,\n            enclosingDeclaration,\n            meaning\n          )\n        );\n        return true;\n      }\n    }\n    function enterNewScope(context, declaration, expandedParams, typeParameters, originalParameters, mapper) {\n      const cleanupContext = cloneNodeBuilderContext(context);\n      let cleanupParams;\n      let cleanupTypeParams;\n      const oldEnclosingDecl = context.enclosingDeclaration;\n      const oldMapper = context.mapper;\n      if (mapper) {\n        context.mapper = mapper;\n      }\n      if (context.enclosingDeclaration && declaration) {\n        let pushFakeScope2 = function(kind, addAll) {\n          Debug.assert(context.enclosingDeclaration);\n          let existingFakeScope;\n          if (getNodeLinks(context.enclosingDeclaration).fakeScopeForSignatureDeclaration === kind) {\n            existingFakeScope = context.enclosingDeclaration;\n          } else if (context.enclosingDeclaration.parent && getNodeLinks(context.enclosingDeclaration.parent).fakeScopeForSignatureDeclaration === kind) {\n            existingFakeScope = context.enclosingDeclaration.parent;\n          }\n          Debug.assertOptionalNode(existingFakeScope, isBlock);\n          const locals = (existingFakeScope == null ? void 0 : existingFakeScope.locals) ?? createSymbolTable();\n          let newLocals;\n          let oldLocals;\n          addAll((name, symbol) => {\n            if (existingFakeScope) {\n              const oldSymbol = locals.get(name);\n              if (!oldSymbol) {\n                newLocals = append(newLocals, name);\n              } else {\n                oldLocals = append(oldLocals, { name, oldSymbol });\n              }\n            }\n            locals.set(name, symbol);\n          });\n          if (!existingFakeScope) {\n            const fakeScope = factory.createBlock(emptyArray);\n            getNodeLinks(fakeScope).fakeScopeForSignatureDeclaration = kind;\n            fakeScope.locals = locals;\n            setParent(fakeScope, context.enclosingDeclaration);\n            context.enclosingDeclaration = fakeScope;\n          } else {\n            return function undo() {\n              forEach(newLocals, (s) => locals.delete(s));\n              forEach(oldLocals, (s) => locals.set(s.name, s.oldSymbol));\n            };\n          }\n        };\n        var pushFakeScope = pushFakeScope2;\n        cleanupParams = !some(expandedParams) ? void 0 : pushFakeScope2(\n          \"params\",\n          (add) => {\n            if (!expandedParams) return;\n            for (let pIndex = 0; pIndex < expandedParams.length; pIndex++) {\n              const param = expandedParams[pIndex];\n              const originalParam = originalParameters == null ? void 0 : originalParameters[pIndex];\n              if (originalParameters && originalParam !== param) {\n                add(param.escapedName, unknownSymbol);\n                if (originalParam) {\n                  add(originalParam.escapedName, unknownSymbol);\n                }\n              } else if (!forEach(param.declarations, (d) => {\n                if (isParameter(d) && isBindingPattern(d.name)) {\n                  bindPattern(d.name);\n                  return true;\n                }\n                return void 0;\n                function bindPattern(p) {\n                  forEach(p.elements, (e) => {\n                    switch (e.kind) {\n                      case 233 /* OmittedExpression */:\n                        return;\n                      case 209 /* BindingElement */:\n                        return bindElement(e);\n                      default:\n                        return Debug.assertNever(e);\n                    }\n                  });\n                }\n                function bindElement(e) {\n                  if (isBindingPattern(e.name)) {\n                    return bindPattern(e.name);\n                  }\n                  const symbol = getSymbolOfDeclaration(e);\n                  add(symbol.escapedName, symbol);\n                }\n              })) {\n                add(param.escapedName, param);\n              }\n            }\n          }\n        );\n        if (context.flags & 4 /* GenerateNamesForShadowedTypeParams */ && some(typeParameters)) {\n          cleanupTypeParams = pushFakeScope2(\n            \"typeParams\",\n            (add) => {\n              for (const typeParam of typeParameters ?? emptyArray) {\n                const typeParamName = typeParameterToName(typeParam, context).escapedText;\n                add(typeParamName, typeParam.symbol);\n              }\n            }\n          );\n        }\n      }\n      return () => {\n        cleanupParams == null ? void 0 : cleanupParams();\n        cleanupTypeParams == null ? void 0 : cleanupTypeParams();\n        cleanupContext();\n        context.enclosingDeclaration = oldEnclosingDecl;\n        context.mapper = oldMapper;\n      };\n    }\n    function tryGetThisParameterDeclaration(signature, context) {\n      if (signature.thisParameter) {\n        return symbolToParameterDeclaration(signature.thisParameter, context);\n      }\n      if (signature.declaration && isInJSFile(signature.declaration)) {\n        const thisTag = getJSDocThisTag(signature.declaration);\n        if (thisTag && thisTag.typeExpression) {\n          return factory.createParameterDeclaration(\n            /*modifiers*/\n            void 0,\n            /*dotDotDotToken*/\n            void 0,\n            \"this\",\n            /*questionToken*/\n            void 0,\n            typeToTypeNodeHelper(getTypeFromTypeNode2(context, thisTag.typeExpression), context)\n          );\n        }\n      }\n    }\n    function typeParameterToDeclarationWithConstraint(type, context, constraintNode) {\n      const restoreFlags = saveRestoreFlags(context);\n      context.flags &= ~512 /* WriteTypeParametersInQualifiedName */;\n      const modifiers = factory.createModifiersFromModifierFlags(getTypeParameterModifiers(type));\n      const name = typeParameterToName(type, context);\n      const defaultParameter = getDefaultFromTypeParameter(type);\n      const defaultParameterNode = defaultParameter && typeToTypeNodeHelper(defaultParameter, context);\n      restoreFlags();\n      return factory.createTypeParameterDeclaration(modifiers, name, constraintNode, defaultParameterNode);\n    }\n    function typeToTypeNodeHelperWithPossibleReusableTypeNode(type, typeNode, context) {\n      return !canPossiblyExpandType(type, context) && typeNode && getTypeFromTypeNode2(context, typeNode) === type && syntacticNodeBuilder.tryReuseExistingTypeNode(context, typeNode) || typeToTypeNodeHelper(type, context);\n    }\n    function typeParameterToDeclaration(type, context, constraint = getConstraintOfTypeParameter(type)) {\n      const constraintNode = constraint && typeToTypeNodeHelperWithPossibleReusableTypeNode(constraint, getConstraintDeclaration(type), context);\n      return typeParameterToDeclarationWithConstraint(type, context, constraintNode);\n    }\n    function typePredicateToTypePredicateNodeHelper(typePredicate, context) {\n      const assertsModifier = typePredicate.kind === 2 /* AssertsThis */ || typePredicate.kind === 3 /* AssertsIdentifier */ ? factory.createToken(131 /* AssertsKeyword */) : void 0;\n      const parameterName = typePredicate.kind === 1 /* Identifier */ || typePredicate.kind === 3 /* AssertsIdentifier */ ? setEmitFlags(factory.createIdentifier(typePredicate.parameterName), 16777216 /* NoAsciiEscaping */) : factory.createThisTypeNode();\n      const typeNode = typePredicate.type && typeToTypeNodeHelper(typePredicate.type, context);\n      return factory.createTypePredicateNode(assertsModifier, parameterName, typeNode);\n    }\n    function getEffectiveParameterDeclaration(parameterSymbol) {\n      const parameterDeclaration = getDeclarationOfKind(parameterSymbol, 170 /* Parameter */);\n      if (parameterDeclaration) {\n        return parameterDeclaration;\n      }\n      if (!isTransientSymbol(parameterSymbol)) {\n        return getDeclarationOfKind(parameterSymbol, 342 /* JSDocParameterTag */);\n      }\n    }\n    function symbolToParameterDeclaration(parameterSymbol, context, preserveModifierFlags) {\n      const parameterDeclaration = getEffectiveParameterDeclaration(parameterSymbol);\n      const parameterType = getTypeOfSymbol(parameterSymbol);\n      const parameterTypeNode = serializeTypeForDeclaration(context, parameterDeclaration, parameterType, parameterSymbol);\n      const modifiers = !(context.flags & 8192 /* OmitParameterModifiers */) && preserveModifierFlags && parameterDeclaration && canHaveModifiers(parameterDeclaration) ? map(getModifiers(parameterDeclaration), factory.cloneNode) : void 0;\n      const isRest = parameterDeclaration && isRestParameter(parameterDeclaration) || getCheckFlags(parameterSymbol) & 32768 /* RestParameter */;\n      const dotDotDotToken = isRest ? factory.createToken(26 /* DotDotDotToken */) : void 0;\n      const name = parameterToParameterDeclarationName(parameterSymbol, parameterDeclaration, context);\n      const isOptional = parameterDeclaration && isOptionalParameter(parameterDeclaration) || getCheckFlags(parameterSymbol) & 16384 /* OptionalParameter */;\n      const questionToken = isOptional ? factory.createToken(58 /* QuestionToken */) : void 0;\n      const parameterNode = factory.createParameterDeclaration(\n        modifiers,\n        dotDotDotToken,\n        name,\n        questionToken,\n        parameterTypeNode,\n        /*initializer*/\n        void 0\n      );\n      context.approximateLength += symbolName(parameterSymbol).length + 3;\n      return parameterNode;\n    }\n    function parameterToParameterDeclarationName(parameterSymbol, parameterDeclaration, context) {\n      return parameterDeclaration ? parameterDeclaration.name ? parameterDeclaration.name.kind === 80 /* Identifier */ ? setEmitFlags(factory.cloneNode(parameterDeclaration.name), 16777216 /* NoAsciiEscaping */) : parameterDeclaration.name.kind === 167 /* QualifiedName */ ? setEmitFlags(factory.cloneNode(parameterDeclaration.name.right), 16777216 /* NoAsciiEscaping */) : cloneBindingName(parameterDeclaration.name) : symbolName(parameterSymbol) : symbolName(parameterSymbol);\n      function cloneBindingName(node) {\n        return elideInitializerAndSetEmitFlags(node);\n        function elideInitializerAndSetEmitFlags(node2) {\n          if (context.tracker.canTrackSymbol && isComputedPropertyName(node2) && isLateBindableName(node2)) {\n            trackComputedName(node2.expression, context.enclosingDeclaration, context);\n          }\n          let visited = visitEachChild(\n            node2,\n            elideInitializerAndSetEmitFlags,\n            /*context*/\n            void 0,\n            /*nodesVisitor*/\n            void 0,\n            elideInitializerAndSetEmitFlags\n          );\n          if (isBindingElement(visited)) {\n            visited = factory.updateBindingElement(\n              visited,\n              visited.dotDotDotToken,\n              visited.propertyName,\n              visited.name,\n              /*initializer*/\n              void 0\n            );\n          }\n          if (!nodeIsSynthesized(visited)) {\n            visited = factory.cloneNode(visited);\n          }\n          return setEmitFlags(visited, 1 /* SingleLine */ | 16777216 /* NoAsciiEscaping */);\n        }\n      }\n    }\n    function trackComputedName(accessExpression, enclosingDeclaration, context) {\n      if (!context.tracker.canTrackSymbol) return;\n      const firstIdentifier = getFirstIdentifier(accessExpression);\n      const name = resolveName(\n        enclosingDeclaration,\n        firstIdentifier.escapedText,\n        111551 /* Value */ | 1048576 /* ExportValue */,\n        /*nameNotFoundMessage*/\n        void 0,\n        /*isUse*/\n        true\n      );\n      if (name) {\n        context.tracker.trackSymbol(name, enclosingDeclaration, 111551 /* Value */);\n      } else {\n        const fallback = resolveName(\n          firstIdentifier,\n          firstIdentifier.escapedText,\n          111551 /* Value */ | 1048576 /* ExportValue */,\n          /*nameNotFoundMessage*/\n          void 0,\n          /*isUse*/\n          true\n        );\n        if (fallback) {\n          context.tracker.trackSymbol(fallback, enclosingDeclaration, 111551 /* Value */);\n        }\n      }\n    }\n    function lookupSymbolChain(symbol, context, meaning, yieldModuleSymbol) {\n      context.tracker.trackSymbol(symbol, context.enclosingDeclaration, meaning);\n      return lookupSymbolChainWorker(symbol, context, meaning, yieldModuleSymbol);\n    }\n    function lookupSymbolChainWorker(symbol, context, meaning, yieldModuleSymbol) {\n      let chain;\n      const isTypeParameter = symbol.flags & 262144 /* TypeParameter */;\n      if (!isTypeParameter && (context.enclosingDeclaration || context.flags & 64 /* UseFullyQualifiedType */) && !(context.internalFlags & 4 /* DoNotIncludeSymbolChain */)) {\n        chain = Debug.checkDefined(getSymbolChain(\n          symbol,\n          meaning,\n          /*endOfChain*/\n          true\n        ));\n        Debug.assert(chain && chain.length > 0);\n      } else {\n        chain = [symbol];\n      }\n      return chain;\n      function getSymbolChain(symbol2, meaning2, endOfChain) {\n        let accessibleSymbolChain = getAccessibleSymbolChain(symbol2, context.enclosingDeclaration, meaning2, !!(context.flags & 128 /* UseOnlyExternalAliasing */));\n        let parentSpecifiers;\n        if (!accessibleSymbolChain || needsQualification(accessibleSymbolChain[0], context.enclosingDeclaration, accessibleSymbolChain.length === 1 ? meaning2 : getQualifiedLeftMeaning(meaning2))) {\n          const parents = getContainersOfSymbol(accessibleSymbolChain ? accessibleSymbolChain[0] : symbol2, context.enclosingDeclaration, meaning2);\n          if (length(parents)) {\n            parentSpecifiers = parents.map(\n              (symbol3) => some(symbol3.declarations, hasNonGlobalAugmentationExternalModuleSymbol) ? getSpecifierForModuleSymbol(symbol3, context) : void 0\n            );\n            const indices = parents.map((_, i) => i);\n            indices.sort(sortByBestName);\n            const sortedParents = indices.map((i) => parents[i]);\n            for (const parent2 of sortedParents) {\n              const parentChain = getSymbolChain(\n                parent2,\n                getQualifiedLeftMeaning(meaning2),\n                /*endOfChain*/\n                false\n              );\n              if (parentChain) {\n                if (parent2.exports && parent2.exports.get(\"export=\" /* ExportEquals */) && getSymbolIfSameReference(parent2.exports.get(\"export=\" /* ExportEquals */), symbol2)) {\n                  accessibleSymbolChain = parentChain;\n                  break;\n                }\n                accessibleSymbolChain = parentChain.concat(accessibleSymbolChain || [getAliasForSymbolInContainer(parent2, symbol2) || symbol2]);\n                break;\n              }\n            }\n          }\n        }\n        if (accessibleSymbolChain) {\n          return accessibleSymbolChain;\n        }\n        if (\n          // If this is the last part of outputting the symbol, always output. The cases apply only to parent symbols.\n          endOfChain || // If a parent symbol is an anonymous type, don't write it.\n          !(symbol2.flags & (2048 /* TypeLiteral */ | 4096 /* ObjectLiteral */))\n        ) {\n          if (!endOfChain && !yieldModuleSymbol && !!forEach(symbol2.declarations, hasNonGlobalAugmentationExternalModuleSymbol)) {\n            return;\n          }\n          return [symbol2];\n        }\n        function sortByBestName(a, b) {\n          const specifierA = parentSpecifiers[a];\n          const specifierB = parentSpecifiers[b];\n          if (specifierA && specifierB) {\n            const isBRelative = pathIsRelative(specifierB);\n            if (pathIsRelative(specifierA) === isBRelative) {\n              return countPathComponents(specifierA) - countPathComponents(specifierB);\n            }\n            if (isBRelative) {\n              return -1;\n            }\n            return 1;\n          }\n          return 0;\n        }\n      }\n    }\n    function typeParametersToTypeParameterDeclarations(symbol, context) {\n      let typeParameterNodes;\n      const targetSymbol = getTargetSymbol(symbol);\n      if (targetSymbol.flags & (32 /* Class */ | 64 /* Interface */ | 524288 /* TypeAlias */)) {\n        typeParameterNodes = factory.createNodeArray(map(getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(symbol), (tp) => typeParameterToDeclaration(tp, context)));\n      }\n      return typeParameterNodes;\n    }\n    function lookupTypeParameterNodes(chain, index, context) {\n      var _a;\n      Debug.assert(chain && 0 <= index && index < chain.length);\n      const symbol = chain[index];\n      const symbolId = getSymbolId(symbol);\n      if ((_a = context.typeParameterSymbolList) == null ? void 0 : _a.has(symbolId)) {\n        return void 0;\n      }\n      if (context.mustCreateTypeParameterSymbolList) {\n        context.mustCreateTypeParameterSymbolList = false;\n        context.typeParameterSymbolList = new Set(context.typeParameterSymbolList);\n      }\n      context.typeParameterSymbolList.add(symbolId);\n      let typeParameterNodes;\n      if (context.flags & 512 /* WriteTypeParametersInQualifiedName */ && index < chain.length - 1) {\n        const parentSymbol = symbol;\n        const nextSymbol = chain[index + 1];\n        if (getCheckFlags(nextSymbol) & 1 /* Instantiated */) {\n          const params = getTypeParametersOfClassOrInterface(\n            parentSymbol.flags & 2097152 /* Alias */ ? resolveAlias(parentSymbol) : parentSymbol\n          );\n          typeParameterNodes = mapToTypeNodes(map(params, (t) => getMappedType(t, nextSymbol.links.mapper)), context);\n        } else {\n          typeParameterNodes = typeParametersToTypeParameterDeclarations(symbol, context);\n        }\n      }\n      return typeParameterNodes;\n    }\n    function getTopmostIndexedAccessType(top) {\n      if (isIndexedAccessTypeNode(top.objectType)) {\n        return getTopmostIndexedAccessType(top.objectType);\n      }\n      return top;\n    }\n    function getSpecifierForModuleSymbol(symbol, context, overrideImportMode) {\n      let file = getDeclarationOfKind(symbol, 308 /* SourceFile */);\n      if (!file) {\n        const equivalentFileSymbol = firstDefined(symbol.declarations, (d) => getFileSymbolIfFileSymbolExportEqualsContainer(d, symbol));\n        if (equivalentFileSymbol) {\n          file = getDeclarationOfKind(equivalentFileSymbol, 308 /* SourceFile */);\n        }\n      }\n      if (file && file.moduleName !== void 0) {\n        return file.moduleName;\n      }\n      if (!file) {\n        if (ambientModuleSymbolRegex.test(symbol.escapedName)) {\n          return symbol.escapedName.substring(1, symbol.escapedName.length - 1);\n        }\n      }\n      if (!context.enclosingFile || !context.tracker.moduleResolverHost) {\n        if (ambientModuleSymbolRegex.test(symbol.escapedName)) {\n          return symbol.escapedName.substring(1, symbol.escapedName.length - 1);\n        }\n        return getSourceFileOfNode(getNonAugmentationDeclaration(symbol)).fileName;\n      }\n      const enclosingDeclaration = getOriginalNode(context.enclosingDeclaration);\n      const originalModuleSpecifier = canHaveModuleSpecifier(enclosingDeclaration) ? tryGetModuleSpecifierFromDeclaration(enclosingDeclaration) : void 0;\n      const contextFile = context.enclosingFile;\n      const resolutionMode = overrideImportMode || originalModuleSpecifier && host.getModeForUsageLocation(contextFile, originalModuleSpecifier) || contextFile && host.getDefaultResolutionModeForFile(contextFile);\n      const cacheKey = createModeAwareCacheKey(contextFile.path, resolutionMode);\n      const links = getSymbolLinks(symbol);\n      let specifier = links.specifierCache && links.specifierCache.get(cacheKey);\n      if (!specifier) {\n        const isBundle2 = !!compilerOptions.outFile;\n        const { moduleResolverHost } = context.tracker;\n        const specifierCompilerOptions = isBundle2 ? { ...compilerOptions, baseUrl: moduleResolverHost.getCommonSourceDirectory() } : compilerOptions;\n        specifier = first(getModuleSpecifiers(\n          symbol,\n          checker,\n          specifierCompilerOptions,\n          contextFile,\n          moduleResolverHost,\n          {\n            importModuleSpecifierPreference: isBundle2 ? \"non-relative\" : \"project-relative\",\n            importModuleSpecifierEnding: isBundle2 ? \"minimal\" : resolutionMode === 99 /* ESNext */ ? \"js\" : void 0\n          },\n          { overrideImportMode }\n        ));\n        links.specifierCache ?? (links.specifierCache = /* @__PURE__ */ new Map());\n        links.specifierCache.set(cacheKey, specifier);\n      }\n      return specifier;\n    }\n    function symbolToEntityNameNode(symbol) {\n      const identifier = factory.createIdentifier(unescapeLeadingUnderscores(symbol.escapedName));\n      return symbol.parent ? factory.createQualifiedName(symbolToEntityNameNode(symbol.parent), identifier) : identifier;\n    }\n    function symbolToTypeNode(symbol, context, meaning, overrideTypeArguments) {\n      const chain = lookupSymbolChain(symbol, context, meaning, !(context.flags & 16384 /* UseAliasDefinedOutsideCurrentScope */));\n      const isTypeOf = meaning === 111551 /* Value */;\n      if (some(chain[0].declarations, hasNonGlobalAugmentationExternalModuleSymbol)) {\n        const nonRootParts = chain.length > 1 ? createAccessFromSymbolChain(chain, chain.length - 1, 1) : void 0;\n        const typeParameterNodes = overrideTypeArguments || lookupTypeParameterNodes(chain, 0, context);\n        const contextFile = getSourceFileOfNode(getOriginalNode(context.enclosingDeclaration));\n        const targetFile = getSourceFileOfModule(chain[0]);\n        let specifier;\n        let attributes;\n        if (getEmitModuleResolutionKind(compilerOptions) === 3 /* Node16 */ || getEmitModuleResolutionKind(compilerOptions) === 99 /* NodeNext */) {\n          if ((targetFile == null ? void 0 : targetFile.impliedNodeFormat) === 99 /* ESNext */ && targetFile.impliedNodeFormat !== (contextFile == null ? void 0 : contextFile.impliedNodeFormat)) {\n            specifier = getSpecifierForModuleSymbol(chain[0], context, 99 /* ESNext */);\n            attributes = factory.createImportAttributes(\n              factory.createNodeArray([\n                factory.createImportAttribute(\n                  factory.createStringLiteral(\"resolution-mode\"),\n                  factory.createStringLiteral(\"import\")\n                )\n              ])\n            );\n          }\n        }\n        if (!specifier) {\n          specifier = getSpecifierForModuleSymbol(chain[0], context);\n        }\n        if (!(context.flags & 67108864 /* AllowNodeModulesRelativePaths */) && getEmitModuleResolutionKind(compilerOptions) !== 1 /* Classic */ && specifier.includes(\"/node_modules/\")) {\n          const oldSpecifier = specifier;\n          if (getEmitModuleResolutionKind(compilerOptions) === 3 /* Node16 */ || getEmitModuleResolutionKind(compilerOptions) === 99 /* NodeNext */) {\n            const swappedMode = (contextFile == null ? void 0 : contextFile.impliedNodeFormat) === 99 /* ESNext */ ? 1 /* CommonJS */ : 99 /* ESNext */;\n            specifier = getSpecifierForModuleSymbol(chain[0], context, swappedMode);\n            if (specifier.includes(\"/node_modules/\")) {\n              specifier = oldSpecifier;\n            } else {\n              attributes = factory.createImportAttributes(\n                factory.createNodeArray([\n                  factory.createImportAttribute(\n                    factory.createStringLiteral(\"resolution-mode\"),\n                    factory.createStringLiteral(swappedMode === 99 /* ESNext */ ? \"import\" : \"require\")\n                  )\n                ])\n              );\n            }\n          }\n          if (!attributes) {\n            context.encounteredError = true;\n            if (context.tracker.reportLikelyUnsafeImportRequiredError) {\n              context.tracker.reportLikelyUnsafeImportRequiredError(oldSpecifier);\n            }\n          }\n        }\n        const lit = factory.createLiteralTypeNode(factory.createStringLiteral(specifier));\n        context.approximateLength += specifier.length + 10;\n        if (!nonRootParts || isEntityName(nonRootParts)) {\n          if (nonRootParts) {\n            const lastId = isIdentifier(nonRootParts) ? nonRootParts : nonRootParts.right;\n            setIdentifierTypeArguments(\n              lastId,\n              /*typeArguments*/\n              void 0\n            );\n          }\n          return factory.createImportTypeNode(lit, attributes, nonRootParts, typeParameterNodes, isTypeOf);\n        } else {\n          const splitNode = getTopmostIndexedAccessType(nonRootParts);\n          const qualifier = splitNode.objectType.typeName;\n          return factory.createIndexedAccessTypeNode(factory.createImportTypeNode(lit, attributes, qualifier, typeParameterNodes, isTypeOf), splitNode.indexType);\n        }\n      }\n      const entityName = createAccessFromSymbolChain(chain, chain.length - 1, 0);\n      if (isIndexedAccessTypeNode(entityName)) {\n        return entityName;\n      }\n      if (isTypeOf) {\n        return factory.createTypeQueryNode(entityName);\n      } else {\n        const lastId = isIdentifier(entityName) ? entityName : entityName.right;\n        const lastTypeArgs = getIdentifierTypeArguments(lastId);\n        setIdentifierTypeArguments(\n          lastId,\n          /*typeArguments*/\n          void 0\n        );\n        return factory.createTypeReferenceNode(entityName, lastTypeArgs);\n      }\n      function createAccessFromSymbolChain(chain2, index, stopper) {\n        const typeParameterNodes = index === chain2.length - 1 ? overrideTypeArguments : lookupTypeParameterNodes(chain2, index, context);\n        const symbol2 = chain2[index];\n        const parent2 = chain2[index - 1];\n        let symbolName2;\n        if (index === 0) {\n          context.flags |= 16777216 /* InInitialEntityName */;\n          symbolName2 = getNameOfSymbolAsWritten(symbol2, context);\n          context.approximateLength += (symbolName2 ? symbolName2.length : 0) + 1;\n          context.flags ^= 16777216 /* InInitialEntityName */;\n        } else {\n          if (parent2 && getExportsOfSymbol(parent2)) {\n            const exports2 = getExportsOfSymbol(parent2);\n            forEachEntry(exports2, (ex, name) => {\n              if (getSymbolIfSameReference(ex, symbol2) && !isLateBoundName(name) && name !== \"export=\" /* ExportEquals */) {\n                symbolName2 = unescapeLeadingUnderscores(name);\n                return true;\n              }\n            });\n          }\n        }\n        if (symbolName2 === void 0) {\n          const name = firstDefined(symbol2.declarations, getNameOfDeclaration);\n          if (name && isComputedPropertyName(name) && isEntityName(name.expression)) {\n            const LHS = createAccessFromSymbolChain(chain2, index - 1, stopper);\n            if (isEntityName(LHS)) {\n              return factory.createIndexedAccessTypeNode(factory.createParenthesizedType(factory.createTypeQueryNode(LHS)), factory.createTypeQueryNode(name.expression));\n            }\n            return LHS;\n          }\n          symbolName2 = getNameOfSymbolAsWritten(symbol2, context);\n        }\n        context.approximateLength += symbolName2.length + 1;\n        if (!(context.flags & 16 /* ForbidIndexedAccessSymbolReferences */) && parent2 && getMembersOfSymbol(parent2) && getMembersOfSymbol(parent2).get(symbol2.escapedName) && getSymbolIfSameReference(getMembersOfSymbol(parent2).get(symbol2.escapedName), symbol2)) {\n          const LHS = createAccessFromSymbolChain(chain2, index - 1, stopper);\n          if (isIndexedAccessTypeNode(LHS)) {\n            return factory.createIndexedAccessTypeNode(LHS, factory.createLiteralTypeNode(factory.createStringLiteral(symbolName2)));\n          } else {\n            return factory.createIndexedAccessTypeNode(factory.createTypeReferenceNode(LHS, typeParameterNodes), factory.createLiteralTypeNode(factory.createStringLiteral(symbolName2)));\n          }\n        }\n        const identifier = setEmitFlags(factory.createIdentifier(symbolName2), 16777216 /* NoAsciiEscaping */);\n        if (typeParameterNodes) setIdentifierTypeArguments(identifier, factory.createNodeArray(typeParameterNodes));\n        identifier.symbol = symbol2;\n        if (index > stopper) {\n          const LHS = createAccessFromSymbolChain(chain2, index - 1, stopper);\n          if (!isEntityName(LHS)) {\n            return Debug.fail(\"Impossible construct - an export of an indexed access cannot be reachable\");\n          }\n          return factory.createQualifiedName(LHS, identifier);\n        }\n        return identifier;\n      }\n    }\n    function typeParameterShadowsOtherTypeParameterInScope(escapedName, context, type) {\n      const result = resolveName(\n        context.enclosingDeclaration,\n        escapedName,\n        788968 /* Type */,\n        /*nameNotFoundMessage*/\n        void 0,\n        /*isUse*/\n        false\n      );\n      if (result && result.flags & 262144 /* TypeParameter */) {\n        return result !== type.symbol;\n      }\n      return false;\n    }\n    function typeParameterToName(type, context) {\n      var _a, _b, _c, _d;\n      if (context.flags & 4 /* GenerateNamesForShadowedTypeParams */ && context.typeParameterNames) {\n        const cached = context.typeParameterNames.get(getTypeId(type));\n        if (cached) {\n          return cached;\n        }\n      }\n      let result = symbolToName(\n        type.symbol,\n        context,\n        788968 /* Type */,\n        /*expectsIdentifier*/\n        true\n      );\n      if (!(result.kind & 80 /* Identifier */)) {\n        return factory.createIdentifier(\"(Missing type parameter)\");\n      }\n      const decl = (_b = (_a = type.symbol) == null ? void 0 : _a.declarations) == null ? void 0 : _b[0];\n      if (decl && isTypeParameterDeclaration(decl)) {\n        result = setTextRange2(context, result, decl.name);\n      }\n      if (context.flags & 4 /* GenerateNamesForShadowedTypeParams */) {\n        const rawtext = result.escapedText;\n        let i = ((_c = context.typeParameterNamesByTextNextNameCount) == null ? void 0 : _c.get(rawtext)) || 0;\n        let text = rawtext;\n        while (((_d = context.typeParameterNamesByText) == null ? void 0 : _d.has(text)) || typeParameterShadowsOtherTypeParameterInScope(text, context, type)) {\n          i++;\n          text = `${rawtext}_${i}`;\n        }\n        if (text !== rawtext) {\n          const typeArguments = getIdentifierTypeArguments(result);\n          result = factory.createIdentifier(text);\n          setIdentifierTypeArguments(result, typeArguments);\n        }\n        if (context.mustCreateTypeParametersNamesLookups) {\n          context.mustCreateTypeParametersNamesLookups = false;\n          context.typeParameterNames = new Map(context.typeParameterNames);\n          context.typeParameterNamesByTextNextNameCount = new Map(context.typeParameterNamesByTextNextNameCount);\n          context.typeParameterNamesByText = new Set(context.typeParameterNamesByText);\n        }\n        context.typeParameterNamesByTextNextNameCount.set(rawtext, i);\n        context.typeParameterNames.set(getTypeId(type), result);\n        context.typeParameterNamesByText.add(text);\n      }\n      return result;\n    }\n    function symbolToName(symbol, context, meaning, expectsIdentifier) {\n      const chain = lookupSymbolChain(symbol, context, meaning);\n      if (expectsIdentifier && chain.length !== 1 && !context.encounteredError && !(context.flags & 65536 /* AllowQualifiedNameInPlaceOfIdentifier */)) {\n        context.encounteredError = true;\n      }\n      return createEntityNameFromSymbolChain(chain, chain.length - 1);\n      function createEntityNameFromSymbolChain(chain2, index) {\n        const typeParameterNodes = lookupTypeParameterNodes(chain2, index, context);\n        const symbol2 = chain2[index];\n        if (index === 0) {\n          context.flags |= 16777216 /* InInitialEntityName */;\n        }\n        const symbolName2 = getNameOfSymbolAsWritten(symbol2, context);\n        if (index === 0) {\n          context.flags ^= 16777216 /* InInitialEntityName */;\n        }\n        const identifier = setEmitFlags(factory.createIdentifier(symbolName2), 16777216 /* NoAsciiEscaping */);\n        if (typeParameterNodes) setIdentifierTypeArguments(identifier, factory.createNodeArray(typeParameterNodes));\n        identifier.symbol = symbol2;\n        return index > 0 ? factory.createQualifiedName(createEntityNameFromSymbolChain(chain2, index - 1), identifier) : identifier;\n      }\n    }\n    function symbolToExpression(symbol, context, meaning) {\n      const chain = lookupSymbolChain(symbol, context, meaning);\n      return createExpressionFromSymbolChain(chain, chain.length - 1);\n      function createExpressionFromSymbolChain(chain2, index) {\n        const typeParameterNodes = lookupTypeParameterNodes(chain2, index, context);\n        const symbol2 = chain2[index];\n        if (index === 0) {\n          context.flags |= 16777216 /* InInitialEntityName */;\n        }\n        let symbolName2 = getNameOfSymbolAsWritten(symbol2, context);\n        if (index === 0) {\n          context.flags ^= 16777216 /* InInitialEntityName */;\n        }\n        let firstChar = symbolName2.charCodeAt(0);\n        if (isSingleOrDoubleQuote(firstChar) && some(symbol2.declarations, hasNonGlobalAugmentationExternalModuleSymbol)) {\n          const specifier = getSpecifierForModuleSymbol(symbol2, context);\n          context.approximateLength += 2 + specifier.length;\n          return factory.createStringLiteral(specifier);\n        }\n        if (index === 0 || canUsePropertyAccess(symbolName2, languageVersion)) {\n          const identifier = setEmitFlags(factory.createIdentifier(symbolName2), 16777216 /* NoAsciiEscaping */);\n          if (typeParameterNodes) setIdentifierTypeArguments(identifier, factory.createNodeArray(typeParameterNodes));\n          identifier.symbol = symbol2;\n          context.approximateLength += 1 + symbolName2.length;\n          return index > 0 ? factory.createPropertyAccessExpression(createExpressionFromSymbolChain(chain2, index - 1), identifier) : identifier;\n        } else {\n          if (firstChar === 91 /* openBracket */) {\n            symbolName2 = symbolName2.substring(1, symbolName2.length - 1);\n            firstChar = symbolName2.charCodeAt(0);\n          }\n          let expression;\n          if (isSingleOrDoubleQuote(firstChar) && !(symbol2.flags & 8 /* EnumMember */)) {\n            const literalText = stripQuotes(symbolName2).replace(/\\\\./g, (s) => s.substring(1));\n            context.approximateLength += literalText.length + 2;\n            expression = factory.createStringLiteral(literalText, firstChar === 39 /* singleQuote */);\n          } else if (\"\" + +symbolName2 === symbolName2) {\n            context.approximateLength += symbolName2.length;\n            expression = factory.createNumericLiteral(+symbolName2);\n          }\n          if (!expression) {\n            const identifier = setEmitFlags(factory.createIdentifier(symbolName2), 16777216 /* NoAsciiEscaping */);\n            if (typeParameterNodes) setIdentifierTypeArguments(identifier, factory.createNodeArray(typeParameterNodes));\n            identifier.symbol = symbol2;\n            context.approximateLength += symbolName2.length;\n            expression = identifier;\n          }\n          context.approximateLength += 2;\n          return factory.createElementAccessExpression(createExpressionFromSymbolChain(chain2, index - 1), expression);\n        }\n      }\n    }\n    function isStringNamed(d) {\n      const name = getNameOfDeclaration(d);\n      if (!name) {\n        return false;\n      }\n      if (isComputedPropertyName(name)) {\n        const type = checkExpression(name.expression);\n        return !!(type.flags & 402653316 /* StringLike */);\n      }\n      if (isElementAccessExpression(name)) {\n        const type = checkExpression(name.argumentExpression);\n        return !!(type.flags & 402653316 /* StringLike */);\n      }\n      return isStringLiteral(name);\n    }\n    function isSingleQuotedStringNamed(d) {\n      const name = getNameOfDeclaration(d);\n      return !!(name && isStringLiteral(name) && (name.singleQuote || !nodeIsSynthesized(name) && startsWith(getTextOfNode(\n        name,\n        /*includeTrivia*/\n        false\n      ), \"'\")));\n    }\n    function getPropertyNameNodeForSymbol(symbol, context) {\n      const hashPrivateName = getClonedHashPrivateName(symbol);\n      if (hashPrivateName) {\n        const shouldEmitErroneousFieldName = !!context.tracker.reportPrivateInBaseOfClassExpression && context.flags & 2048 /* WriteClassExpressionAsTypeLiteral */;\n        if (!shouldEmitErroneousFieldName) {\n          return hashPrivateName;\n        } else {\n          let rawName2 = unescapeLeadingUnderscores(symbol.escapedName);\n          rawName2 = rawName2.replace(/__#\\d+@#/g, \"__#private@#\");\n          return createPropertyNameNodeForIdentifierOrLiteral(\n            rawName2,\n            getEmitScriptTarget(compilerOptions),\n            /*singleQuote*/\n            false,\n            /*stringNamed*/\n            true,\n            !!(symbol.flags & 8192 /* Method */)\n          );\n        }\n      }\n      const stringNamed = !!length(symbol.declarations) && every(symbol.declarations, isStringNamed);\n      const singleQuote = !!length(symbol.declarations) && every(symbol.declarations, isSingleQuotedStringNamed);\n      const isMethod = !!(symbol.flags & 8192 /* Method */);\n      const fromNameType = getPropertyNameNodeForSymbolFromNameType(symbol, context, singleQuote, stringNamed, isMethod);\n      if (fromNameType) {\n        return fromNameType;\n      }\n      const rawName = unescapeLeadingUnderscores(symbol.escapedName);\n      return createPropertyNameNodeForIdentifierOrLiteral(rawName, getEmitScriptTarget(compilerOptions), singleQuote, stringNamed, isMethod);\n    }\n    function getPropertyNameNodeForSymbolFromNameType(symbol, context, singleQuote, stringNamed, isMethod) {\n      const nameType = getSymbolLinks(symbol).nameType;\n      if (nameType) {\n        if (nameType.flags & 384 /* StringOrNumberLiteral */) {\n          const name = \"\" + nameType.value;\n          if (!isIdentifierText(name, getEmitScriptTarget(compilerOptions)) && (stringNamed || !isNumericLiteralName(name))) {\n            return factory.createStringLiteral(name, !!singleQuote);\n          }\n          if (isNumericLiteralName(name) && startsWith(name, \"-\")) {\n            return factory.createComputedPropertyName(factory.createPrefixUnaryExpression(41 /* MinusToken */, factory.createNumericLiteral(-name)));\n          }\n          return createPropertyNameNodeForIdentifierOrLiteral(name, getEmitScriptTarget(compilerOptions), singleQuote, stringNamed, isMethod);\n        }\n        if (nameType.flags & 8192 /* UniqueESSymbol */) {\n          return factory.createComputedPropertyName(symbolToExpression(nameType.symbol, context, 111551 /* Value */));\n        }\n      }\n    }\n    function cloneNodeBuilderContext(context) {\n      const oldMustCreateTypeParameterSymbolList = context.mustCreateTypeParameterSymbolList;\n      const oldMustCreateTypeParametersNamesLookups = context.mustCreateTypeParametersNamesLookups;\n      context.mustCreateTypeParameterSymbolList = true;\n      context.mustCreateTypeParametersNamesLookups = true;\n      const oldTypeParameterNames = context.typeParameterNames;\n      const oldTypeParameterNamesByText = context.typeParameterNamesByText;\n      const oldTypeParameterNamesByTextNextNameCount = context.typeParameterNamesByTextNextNameCount;\n      const oldTypeParameterSymbolList = context.typeParameterSymbolList;\n      return () => {\n        context.typeParameterNames = oldTypeParameterNames;\n        context.typeParameterNamesByText = oldTypeParameterNamesByText;\n        context.typeParameterNamesByTextNextNameCount = oldTypeParameterNamesByTextNextNameCount;\n        context.typeParameterSymbolList = oldTypeParameterSymbolList;\n        context.mustCreateTypeParameterSymbolList = oldMustCreateTypeParameterSymbolList;\n        context.mustCreateTypeParametersNamesLookups = oldMustCreateTypeParametersNamesLookups;\n      };\n    }\n    function getDeclarationWithTypeAnnotation(symbol, enclosingDeclaration) {\n      return symbol.declarations && find(symbol.declarations, (s) => !!getNonlocalEffectiveTypeAnnotationNode(s) && (!enclosingDeclaration || !!findAncestor(s, (n) => n === enclosingDeclaration)));\n    }\n    function existingTypeNodeIsNotReferenceOrIsReferenceWithCompatibleTypeArgumentCount(existing, type) {\n      if (!(getObjectFlags(type) & 4 /* Reference */)) return true;\n      if (!isTypeReferenceNode(existing)) return true;\n      void getTypeFromTypeReference(existing);\n      const symbol = getNodeLinks(existing).resolvedSymbol;\n      const existingTarget = symbol && getDeclaredTypeOfSymbol(symbol);\n      if (!existingTarget || existingTarget !== type.target) return true;\n      return length(existing.typeArguments) >= getMinTypeArgumentCount(type.target.typeParameters);\n    }\n    function getEnclosingDeclarationIgnoringFakeScope(enclosingDeclaration) {\n      while (getNodeLinks(enclosingDeclaration).fakeScopeForSignatureDeclaration) {\n        enclosingDeclaration = enclosingDeclaration.parent;\n      }\n      return enclosingDeclaration;\n    }\n    function serializeInferredTypeForDeclaration(symbol, context, type) {\n      if (type.flags & 8192 /* UniqueESSymbol */ && type.symbol === symbol && (!context.enclosingDeclaration || some(symbol.declarations, (d) => getSourceFileOfNode(d) === context.enclosingFile))) {\n        context.flags |= 1048576 /* AllowUniqueESSymbolType */;\n      }\n      const result = typeToTypeNodeHelper(type, context);\n      return result;\n    }\n    function serializeTypeForDeclaration(context, declaration, type, symbol) {\n      var _a;\n      let result;\n      const addUndefinedForParameter = declaration && (isParameter(declaration) || isJSDocParameterTag(declaration)) && requiresAddingImplicitUndefined(declaration, context.enclosingDeclaration);\n      const decl = declaration ?? symbol.valueDeclaration ?? getDeclarationWithTypeAnnotation(symbol) ?? ((_a = symbol.declarations) == null ? void 0 : _a[0]);\n      if (!canPossiblyExpandType(type, context) && decl) {\n        const restore = addSymbolTypeToContext(context, symbol, type);\n        if (isAccessor(decl)) {\n          result = syntacticNodeBuilder.serializeTypeOfAccessor(decl, symbol, context);\n        } else if (hasInferredType(decl) && !nodeIsSynthesized(decl) && !(getObjectFlags(type) & 196608 /* RequiresWidening */)) {\n          result = syntacticNodeBuilder.serializeTypeOfDeclaration(decl, symbol, context);\n        }\n        restore();\n      }\n      if (!result) {\n        if (addUndefinedForParameter) {\n          type = getOptionalType(type);\n        }\n        result = serializeInferredTypeForDeclaration(symbol, context, type);\n      }\n      return result ?? factory.createKeywordTypeNode(133 /* AnyKeyword */);\n    }\n    function typeNodeIsEquivalentToType(annotatedDeclaration, type, typeFromTypeNode) {\n      if (typeFromTypeNode === type) {\n        return true;\n      }\n      if (!annotatedDeclaration) {\n        return false;\n      }\n      if ((isPropertySignature(annotatedDeclaration) || isPropertyDeclaration(annotatedDeclaration)) && annotatedDeclaration.questionToken) {\n        return getTypeWithFacts(type, 524288 /* NEUndefined */) === typeFromTypeNode;\n      }\n      if (isParameter(annotatedDeclaration) && hasEffectiveQuestionToken(annotatedDeclaration)) {\n        return getTypeWithFacts(type, 524288 /* NEUndefined */) === typeFromTypeNode;\n      }\n      return false;\n    }\n    function serializeReturnTypeForSignature(context, signature) {\n      const suppressAny = context.flags & 256 /* SuppressAnyReturnType */;\n      const restoreFlags = saveRestoreFlags(context);\n      if (suppressAny) context.flags &= ~256 /* SuppressAnyReturnType */;\n      let returnTypeNode;\n      const returnType = getReturnTypeOfSignature(signature);\n      if (!(suppressAny && isTypeAny(returnType))) {\n        if (signature.declaration && !nodeIsSynthesized(signature.declaration) && !canPossiblyExpandType(returnType, context)) {\n          const declarationSymbol = getSymbolOfDeclaration(signature.declaration);\n          const restore = addSymbolTypeToContext(context, declarationSymbol, returnType);\n          returnTypeNode = syntacticNodeBuilder.serializeReturnTypeForSignature(signature.declaration, declarationSymbol, context);\n          restore();\n        }\n        if (!returnTypeNode) {\n          returnTypeNode = serializeInferredReturnTypeForSignature(context, signature, returnType);\n        }\n      }\n      if (!returnTypeNode && !suppressAny) {\n        returnTypeNode = factory.createKeywordTypeNode(133 /* AnyKeyword */);\n      }\n      restoreFlags();\n      return returnTypeNode;\n    }\n    function serializeInferredReturnTypeForSignature(context, signature, returnType) {\n      const oldSuppressReportInferenceFallback = context.suppressReportInferenceFallback;\n      context.suppressReportInferenceFallback = true;\n      const typePredicate = getTypePredicateOfSignature(signature);\n      const returnTypeNode = typePredicate ? typePredicateToTypePredicateNodeHelper(context.mapper ? instantiateTypePredicate(typePredicate, context.mapper) : typePredicate, context) : typeToTypeNodeHelper(returnType, context);\n      context.suppressReportInferenceFallback = oldSuppressReportInferenceFallback;\n      return returnTypeNode;\n    }\n    function trackExistingEntityName(node, context, enclosingDeclaration = context.enclosingDeclaration) {\n      let introducesError = false;\n      const leftmost = getFirstIdentifier(node);\n      if (isInJSFile(node) && (isExportsIdentifier(leftmost) || isModuleExportsAccessExpression(leftmost.parent) || isQualifiedName(leftmost.parent) && isModuleIdentifier(leftmost.parent.left) && isExportsIdentifier(leftmost.parent.right))) {\n        introducesError = true;\n        return { introducesError, node };\n      }\n      const meaning = getMeaningOfEntityNameReference(node);\n      let sym;\n      if (isThisIdentifier(leftmost)) {\n        sym = getSymbolOfDeclaration(getThisContainer(\n          leftmost,\n          /*includeArrowFunctions*/\n          false,\n          /*includeClassComputedPropertyName*/\n          false\n        ));\n        if (isSymbolAccessible(\n          sym,\n          leftmost,\n          meaning,\n          /*shouldComputeAliasesToMakeVisible*/\n          false\n        ).accessibility !== 0 /* Accessible */) {\n          introducesError = true;\n          context.tracker.reportInaccessibleThisError();\n        }\n        return { introducesError, node: attachSymbolToLeftmostIdentifier(node) };\n      }\n      sym = resolveEntityName(\n        leftmost,\n        meaning,\n        /*ignoreErrors*/\n        true,\n        /*dontResolveAlias*/\n        true\n      );\n      if (context.enclosingDeclaration && !(sym && sym.flags & 262144 /* TypeParameter */)) {\n        sym = getExportSymbolOfValueSymbolIfExported(sym);\n        const symAtLocation = resolveEntityName(\n          leftmost,\n          meaning,\n          /*ignoreErrors*/\n          true,\n          /*dontResolveAlias*/\n          true,\n          context.enclosingDeclaration\n        );\n        if (\n          // Check for unusable parameters symbols\n          symAtLocation === unknownSymbol || // If the symbol is not found, but was not found in the original scope either we probably have an error, don't reuse the node\n          symAtLocation === void 0 && sym !== void 0 || // If the symbol is found both in declaration scope and in current scope then it should point to the same reference\n          symAtLocation && sym && !getSymbolIfSameReference(getExportSymbolOfValueSymbolIfExported(symAtLocation), sym)\n        ) {\n          if (symAtLocation !== unknownSymbol) {\n            context.tracker.reportInferenceFallback(node);\n          }\n          introducesError = true;\n          return { introducesError, node, sym };\n        } else {\n          sym = symAtLocation;\n        }\n      }\n      if (sym) {\n        if (sym.flags & 1 /* FunctionScopedVariable */ && sym.valueDeclaration) {\n          if (isPartOfParameterDeclaration(sym.valueDeclaration) || isJSDocParameterTag(sym.valueDeclaration)) {\n            return { introducesError, node: attachSymbolToLeftmostIdentifier(node) };\n          }\n        }\n        if (!(sym.flags & 262144 /* TypeParameter */) && // Type parameters are visible in the current context if they are are resolvable\n        !isDeclarationName(node) && isSymbolAccessible(\n          sym,\n          enclosingDeclaration,\n          meaning,\n          /*shouldComputeAliasesToMakeVisible*/\n          false\n        ).accessibility !== 0 /* Accessible */) {\n          context.tracker.reportInferenceFallback(node);\n          introducesError = true;\n        } else {\n          context.tracker.trackSymbol(sym, enclosingDeclaration, meaning);\n        }\n        return { introducesError, node: attachSymbolToLeftmostIdentifier(node) };\n      }\n      return { introducesError, node };\n      function attachSymbolToLeftmostIdentifier(node2) {\n        if (node2 === leftmost) {\n          const type = getDeclaredTypeOfSymbol(sym);\n          const name = sym.flags & 262144 /* TypeParameter */ ? typeParameterToName(type, context) : factory.cloneNode(node2);\n          name.symbol = sym;\n          return setTextRange2(context, setEmitFlags(name, 16777216 /* NoAsciiEscaping */), node2);\n        }\n        const updated = visitEachChild(\n          node2,\n          (c) => attachSymbolToLeftmostIdentifier(c),\n          /*context*/\n          void 0\n        );\n        return setTextRange2(context, updated, node2);\n      }\n    }\n    function serializeTypeName(context, node, isTypeOf, typeArguments) {\n      const meaning = isTypeOf ? 111551 /* Value */ : 788968 /* Type */;\n      const symbol = resolveEntityName(\n        node,\n        meaning,\n        /*ignoreErrors*/\n        true\n      );\n      if (!symbol) return void 0;\n      const resolvedSymbol = symbol.flags & 2097152 /* Alias */ ? resolveAlias(symbol) : symbol;\n      if (isSymbolAccessible(\n        symbol,\n        context.enclosingDeclaration,\n        meaning,\n        /*shouldComputeAliasesToMakeVisible*/\n        false\n      ).accessibility !== 0 /* Accessible */) return void 0;\n      return symbolToTypeNode(resolvedSymbol, context, meaning, typeArguments);\n    }\n    function canReuseTypeNode(context, existing) {\n      const type = getTypeFromTypeNode2(\n        context,\n        existing,\n        /*noMappedTypes*/\n        true\n      );\n      if (!type) {\n        return false;\n      }\n      if (isInJSFile(existing)) {\n        if (isLiteralImportTypeNode(existing)) {\n          void getTypeFromImportTypeNode(existing);\n          const nodeSymbol = getNodeLinks(existing).resolvedSymbol;\n          return !nodeSymbol || !// The import type resolved using jsdoc fallback logic\n          (!existing.isTypeOf && !(nodeSymbol.flags & 788968 /* Type */) || // The import type had type arguments autofilled by js fallback logic\n          !(length(existing.typeArguments) >= getMinTypeArgumentCount(getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(nodeSymbol))));\n        }\n      }\n      if (isTypeReferenceNode(existing)) {\n        if (isConstTypeReference(existing)) return false;\n        const symbol = getNodeLinks(existing).resolvedSymbol;\n        if (!symbol) return false;\n        if (symbol.flags & 262144 /* TypeParameter */) {\n          const declaredType = getDeclaredTypeOfSymbol(symbol);\n          return !(context.mapper && getMappedType(declaredType, context.mapper) !== declaredType);\n        }\n        if (isInJSDoc(existing)) {\n          return existingTypeNodeIsNotReferenceOrIsReferenceWithCompatibleTypeArgumentCount(existing, type) && !getIntendedTypeFromJSDocTypeReference(existing) && !!(symbol.flags & 788968 /* Type */);\n        }\n      }\n      if (isTypeOperatorNode(existing) && existing.operator === 158 /* UniqueKeyword */ && existing.type.kind === 155 /* SymbolKeyword */) {\n        const effectiveEnclosingContext = context.enclosingDeclaration && getEnclosingDeclarationIgnoringFakeScope(context.enclosingDeclaration);\n        return !!findAncestor(existing, (n) => n === effectiveEnclosingContext);\n      }\n      return true;\n    }\n    function serializeExistingTypeNode(context, typeNode, addUndefined) {\n      const type = getTypeFromTypeNode2(context, typeNode);\n      if (addUndefined && !someType(type, (t) => !!(t.flags & 32768 /* Undefined */)) && canReuseTypeNode(context, typeNode)) {\n        const clone2 = syntacticNodeBuilder.tryReuseExistingTypeNode(context, typeNode);\n        if (clone2) {\n          return factory.createUnionTypeNode([clone2, factory.createKeywordTypeNode(157 /* UndefinedKeyword */)]);\n        }\n      }\n      return typeToTypeNodeHelper(type, context);\n    }\n    function symbolTableToDeclarationStatements(symbolTable, context) {\n      var _a;\n      const serializePropertySymbolForClass = makeSerializePropertySymbol(\n        factory.createPropertyDeclaration,\n        175 /* MethodDeclaration */,\n        /*useAccessors*/\n        true\n      );\n      const serializePropertySymbolForInterfaceWorker = makeSerializePropertySymbol(\n        (mods, name, question, type) => factory.createPropertySignature(mods, name, question, type),\n        174 /* MethodSignature */,\n        /*useAccessors*/\n        false\n      );\n      const enclosingDeclaration = context.enclosingDeclaration;\n      let results = [];\n      const visitedSymbols = /* @__PURE__ */ new Set();\n      const deferredPrivatesStack = [];\n      const oldcontext = context;\n      context = {\n        ...oldcontext,\n        usedSymbolNames: new Set(oldcontext.usedSymbolNames),\n        remappedSymbolNames: /* @__PURE__ */ new Map(),\n        remappedSymbolReferences: new Map((_a = oldcontext.remappedSymbolReferences) == null ? void 0 : _a.entries()),\n        tracker: void 0\n      };\n      const tracker = {\n        ...oldcontext.tracker.inner,\n        trackSymbol: (sym, decl, meaning) => {\n          var _a2, _b;\n          if ((_a2 = context.remappedSymbolNames) == null ? void 0 : _a2.has(getSymbolId(sym))) return false;\n          const accessibleResult = isSymbolAccessible(\n            sym,\n            decl,\n            meaning,\n            /*shouldComputeAliasesToMakeVisible*/\n            false\n          );\n          if (accessibleResult.accessibility === 0 /* Accessible */) {\n            const chain = lookupSymbolChainWorker(sym, context, meaning);\n            if (!(sym.flags & 4 /* Property */)) {\n              const root = chain[0];\n              const contextFile = getSourceFileOfNode(oldcontext.enclosingDeclaration);\n              if (some(root.declarations, (d) => getSourceFileOfNode(d) === contextFile)) {\n                includePrivateSymbol(root);\n              }\n            }\n          } else if ((_b = oldcontext.tracker.inner) == null ? void 0 : _b.trackSymbol) {\n            return oldcontext.tracker.inner.trackSymbol(sym, decl, meaning);\n          }\n          return false;\n        }\n      };\n      context.tracker = new SymbolTrackerImpl(context, tracker, oldcontext.tracker.moduleResolverHost);\n      forEachEntry(symbolTable, (symbol, name) => {\n        const baseName = unescapeLeadingUnderscores(name);\n        void getInternalSymbolName(symbol, baseName);\n      });\n      let addingDeclare = !context.bundled;\n      const exportEquals = symbolTable.get(\"export=\" /* ExportEquals */);\n      if (exportEquals && symbolTable.size > 1 && exportEquals.flags & (2097152 /* Alias */ | 1536 /* Module */)) {\n        symbolTable = createSymbolTable();\n        symbolTable.set(\"export=\" /* ExportEquals */, exportEquals);\n      }\n      visitSymbolTable(symbolTable);\n      return mergeRedundantStatements(results);\n      function isIdentifierAndNotUndefined(node) {\n        return !!node && node.kind === 80 /* Identifier */;\n      }\n      function getNamesOfDeclaration(statement) {\n        if (isVariableStatement(statement)) {\n          return filter(map(statement.declarationList.declarations, getNameOfDeclaration), isIdentifierAndNotUndefined);\n        }\n        return filter([getNameOfDeclaration(statement)], isIdentifierAndNotUndefined);\n      }\n      function flattenExportAssignedNamespace(statements) {\n        const exportAssignment = find(statements, isExportAssignment);\n        const nsIndex = findIndex(statements, isModuleDeclaration);\n        let ns = nsIndex !== -1 ? statements[nsIndex] : void 0;\n        if (ns && exportAssignment && exportAssignment.isExportEquals && isIdentifier(exportAssignment.expression) && isIdentifier(ns.name) && idText(ns.name) === idText(exportAssignment.expression) && ns.body && isModuleBlock(ns.body)) {\n          const excessExports = filter(statements, (s) => !!(getEffectiveModifierFlags(s) & 32 /* Export */));\n          const name = ns.name;\n          let body = ns.body;\n          if (length(excessExports)) {\n            ns = factory.updateModuleDeclaration(\n              ns,\n              ns.modifiers,\n              ns.name,\n              body = factory.updateModuleBlock(\n                body,\n                factory.createNodeArray([\n                  ...ns.body.statements,\n                  factory.createExportDeclaration(\n                    /*modifiers*/\n                    void 0,\n                    /*isTypeOnly*/\n                    false,\n                    factory.createNamedExports(map(flatMap(excessExports, (e) => getNamesOfDeclaration(e)), (id) => factory.createExportSpecifier(\n                      /*isTypeOnly*/\n                      false,\n                      /*propertyName*/\n                      void 0,\n                      id\n                    ))),\n                    /*moduleSpecifier*/\n                    void 0\n                  )\n                ])\n              )\n            );\n            statements = [...statements.slice(0, nsIndex), ns, ...statements.slice(nsIndex + 1)];\n          }\n          if (!find(statements, (s) => s !== ns && nodeHasName(s, name))) {\n            results = [];\n            const mixinExportFlag = !some(body.statements, (s) => hasSyntacticModifier(s, 32 /* Export */) || isExportAssignment(s) || isExportDeclaration(s));\n            forEach(body.statements, (s) => {\n              addResult(s, mixinExportFlag ? 32 /* Export */ : 0 /* None */);\n            });\n            statements = [...filter(statements, (s) => s !== ns && s !== exportAssignment), ...results];\n          }\n        }\n        return statements;\n      }\n      function mergeExportDeclarations(statements) {\n        const exports2 = filter(statements, (d) => isExportDeclaration(d) && !d.moduleSpecifier && !!d.exportClause && isNamedExports(d.exportClause));\n        if (length(exports2) > 1) {\n          const nonExports = filter(statements, (d) => !isExportDeclaration(d) || !!d.moduleSpecifier || !d.exportClause);\n          statements = [\n            ...nonExports,\n            factory.createExportDeclaration(\n              /*modifiers*/\n              void 0,\n              /*isTypeOnly*/\n              false,\n              factory.createNamedExports(flatMap(exports2, (e) => cast(e.exportClause, isNamedExports).elements)),\n              /*moduleSpecifier*/\n              void 0\n            )\n          ];\n        }\n        const reexports = filter(statements, (d) => isExportDeclaration(d) && !!d.moduleSpecifier && !!d.exportClause && isNamedExports(d.exportClause));\n        if (length(reexports) > 1) {\n          const groups = group(reexports, (decl) => isStringLiteral(decl.moduleSpecifier) ? \">\" + decl.moduleSpecifier.text : \">\");\n          if (groups.length !== reexports.length) {\n            for (const group2 of groups) {\n              if (group2.length > 1) {\n                statements = [\n                  ...filter(statements, (s) => !group2.includes(s)),\n                  factory.createExportDeclaration(\n                    /*modifiers*/\n                    void 0,\n                    /*isTypeOnly*/\n                    false,\n                    factory.createNamedExports(flatMap(group2, (e) => cast(e.exportClause, isNamedExports).elements)),\n                    group2[0].moduleSpecifier\n                  )\n                ];\n              }\n            }\n          }\n        }\n        return statements;\n      }\n      function inlineExportModifiers(statements) {\n        const index = findIndex(statements, (d) => isExportDeclaration(d) && !d.moduleSpecifier && !d.attributes && !!d.exportClause && isNamedExports(d.exportClause));\n        if (index >= 0) {\n          const exportDecl = statements[index];\n          const replacements = mapDefined(exportDecl.exportClause.elements, (e) => {\n            if (!e.propertyName && e.name.kind !== 11 /* StringLiteral */) {\n              const name = e.name;\n              const indices = indicesOf(statements);\n              const associatedIndices = filter(indices, (i) => nodeHasName(statements[i], name));\n              if (length(associatedIndices) && every(associatedIndices, (i) => canHaveExportModifier(statements[i]))) {\n                for (const index2 of associatedIndices) {\n                  statements[index2] = addExportModifier(statements[index2]);\n                }\n                return void 0;\n              }\n            }\n            return e;\n          });\n          if (!length(replacements)) {\n            orderedRemoveItemAt(statements, index);\n          } else {\n            statements[index] = factory.updateExportDeclaration(\n              exportDecl,\n              exportDecl.modifiers,\n              exportDecl.isTypeOnly,\n              factory.updateNamedExports(\n                exportDecl.exportClause,\n                replacements\n              ),\n              exportDecl.moduleSpecifier,\n              exportDecl.attributes\n            );\n          }\n        }\n        return statements;\n      }\n      function mergeRedundantStatements(statements) {\n        statements = flattenExportAssignedNamespace(statements);\n        statements = mergeExportDeclarations(statements);\n        statements = inlineExportModifiers(statements);\n        if (enclosingDeclaration && (isSourceFile(enclosingDeclaration) && isExternalOrCommonJsModule(enclosingDeclaration) || isModuleDeclaration(enclosingDeclaration)) && (!some(statements, isExternalModuleIndicator) || !hasScopeMarker(statements) && some(statements, needsScopeMarker))) {\n          statements.push(createEmptyExports(factory));\n        }\n        return statements;\n      }\n      function addExportModifier(node) {\n        const flags = (getEffectiveModifierFlags(node) | 32 /* Export */) & ~128 /* Ambient */;\n        return factory.replaceModifiers(node, flags);\n      }\n      function removeExportModifier(node) {\n        const flags = getEffectiveModifierFlags(node) & ~32 /* Export */;\n        return factory.replaceModifiers(node, flags);\n      }\n      function visitSymbolTable(symbolTable2, suppressNewPrivateContext, propertyAsAlias) {\n        if (!suppressNewPrivateContext) {\n          deferredPrivatesStack.push(/* @__PURE__ */ new Map());\n        }\n        let i = 0;\n        const symbols = Array.from(symbolTable2.values());\n        for (const symbol of symbols) {\n          i++;\n          if (checkTruncationLengthIfExpanding(context) && i + 2 < symbolTable2.size - 1) {\n            context.out.truncated = true;\n            results.push(createTruncationStatement(`... (${symbolTable2.size - i} more ...)`));\n            serializeSymbol(\n              symbols[symbols.length - 1],\n              /*isPrivate*/\n              false,\n              !!propertyAsAlias\n            );\n            break;\n          }\n          serializeSymbol(\n            symbol,\n            /*isPrivate*/\n            false,\n            !!propertyAsAlias\n          );\n        }\n        if (!suppressNewPrivateContext) {\n          deferredPrivatesStack[deferredPrivatesStack.length - 1].forEach((symbol) => {\n            serializeSymbol(\n              symbol,\n              /*isPrivate*/\n              true,\n              !!propertyAsAlias\n            );\n          });\n          deferredPrivatesStack.pop();\n        }\n      }\n      function serializeSymbol(symbol, isPrivate, propertyAsAlias) {\n        void getPropertiesOfType(getTypeOfSymbol(symbol));\n        const visitedSym = getMergedSymbol(symbol);\n        if (visitedSymbols.has(getSymbolId(visitedSym))) {\n          return;\n        }\n        visitedSymbols.add(getSymbolId(visitedSym));\n        const skipMembershipCheck = !isPrivate;\n        if (skipMembershipCheck || !!length(symbol.declarations) && some(symbol.declarations, (d) => !!findAncestor(d, (n) => n === enclosingDeclaration))) {\n          const scopeCleanup = cloneNodeBuilderContext(context);\n          context.tracker.pushErrorFallbackNode(find(symbol.declarations, (d) => getSourceFileOfNode(d) === context.enclosingFile));\n          serializeSymbolWorker(symbol, isPrivate, propertyAsAlias);\n          context.tracker.popErrorFallbackNode();\n          scopeCleanup();\n        }\n      }\n      function serializeSymbolWorker(symbol, isPrivate, propertyAsAlias, escapedSymbolName = symbol.escapedName) {\n        var _a2, _b, _c, _d, _e, _f, _g;\n        const symbolName2 = unescapeLeadingUnderscores(escapedSymbolName);\n        const isDefault = escapedSymbolName === \"default\" /* Default */;\n        if (isPrivate && !(context.flags & 131072 /* AllowAnonymousIdentifier */) && isStringANonContextualKeyword(symbolName2) && !isDefault) {\n          context.encounteredError = true;\n          return;\n        }\n        let needsPostExportDefault = isDefault && !!(symbol.flags & -113 /* ExportDoesNotSupportDefaultModifier */ || symbol.flags & 16 /* Function */ && length(getPropertiesOfType(getTypeOfSymbol(symbol)))) && !(symbol.flags & 2097152 /* Alias */);\n        let needsExportDeclaration = !needsPostExportDefault && !isPrivate && isStringANonContextualKeyword(symbolName2) && !isDefault;\n        if (needsPostExportDefault || needsExportDeclaration) {\n          isPrivate = true;\n        }\n        const modifierFlags = (!isPrivate ? 32 /* Export */ : 0) | (isDefault && !needsPostExportDefault ? 2048 /* Default */ : 0);\n        const isConstMergedWithNS = symbol.flags & 1536 /* Module */ && symbol.flags & (2 /* BlockScopedVariable */ | 1 /* FunctionScopedVariable */ | 4 /* Property */) && escapedSymbolName !== \"export=\" /* ExportEquals */;\n        const isConstMergedWithNSPrintableAsSignatureMerge = isConstMergedWithNS && isTypeRepresentableAsFunctionNamespaceMerge(getTypeOfSymbol(symbol), symbol);\n        if (symbol.flags & (16 /* Function */ | 8192 /* Method */) || isConstMergedWithNSPrintableAsSignatureMerge) {\n          serializeAsFunctionNamespaceMerge(getTypeOfSymbol(symbol), symbol, getInternalSymbolName(symbol, symbolName2), modifierFlags);\n        }\n        if (symbol.flags & 524288 /* TypeAlias */) {\n          serializeTypeAlias(symbol, symbolName2, modifierFlags);\n        }\n        if (symbol.flags & (2 /* BlockScopedVariable */ | 1 /* FunctionScopedVariable */ | 4 /* Property */ | 98304 /* Accessor */) && escapedSymbolName !== \"export=\" /* ExportEquals */ && !(symbol.flags & 4194304 /* Prototype */) && !(symbol.flags & 32 /* Class */) && !(symbol.flags & 8192 /* Method */) && !isConstMergedWithNSPrintableAsSignatureMerge) {\n          if (propertyAsAlias) {\n            const createdExport = serializeMaybeAliasAssignment(symbol);\n            if (createdExport) {\n              needsExportDeclaration = false;\n              needsPostExportDefault = false;\n            }\n          } else {\n            const type = getTypeOfSymbol(symbol);\n            const localName = getInternalSymbolName(symbol, symbolName2);\n            if (type.symbol && type.symbol !== symbol && type.symbol.flags & 16 /* Function */ && some(type.symbol.declarations, isFunctionExpressionOrArrowFunction) && (((_a2 = type.symbol.members) == null ? void 0 : _a2.size) || ((_b = type.symbol.exports) == null ? void 0 : _b.size))) {\n              if (!context.remappedSymbolReferences) {\n                context.remappedSymbolReferences = /* @__PURE__ */ new Map();\n              }\n              context.remappedSymbolReferences.set(getSymbolId(type.symbol), symbol);\n              serializeSymbolWorker(type.symbol, isPrivate, propertyAsAlias, escapedSymbolName);\n              context.remappedSymbolReferences.delete(getSymbolId(type.symbol));\n            } else if (!(symbol.flags & 16 /* Function */) && isTypeRepresentableAsFunctionNamespaceMerge(type, symbol)) {\n              serializeAsFunctionNamespaceMerge(type, symbol, localName, modifierFlags);\n            } else {\n              const flags = !(symbol.flags & 2 /* BlockScopedVariable */) ? ((_c = symbol.parent) == null ? void 0 : _c.valueDeclaration) && isSourceFile((_d = symbol.parent) == null ? void 0 : _d.valueDeclaration) ? 2 /* Const */ : void 0 : isConstantVariable(symbol) ? 2 /* Const */ : 1 /* Let */;\n              const name = needsPostExportDefault || !(symbol.flags & 4 /* Property */) ? localName : getUnusedName(localName, symbol);\n              let textRange = symbol.declarations && find(symbol.declarations, (d) => isVariableDeclaration(d));\n              if (textRange && isVariableDeclarationList(textRange.parent) && textRange.parent.declarations.length === 1) {\n                textRange = textRange.parent.parent;\n              }\n              const propertyAccessRequire = (_e = symbol.declarations) == null ? void 0 : _e.find(isPropertyAccessExpression);\n              if (propertyAccessRequire && isBinaryExpression(propertyAccessRequire.parent) && isIdentifier(propertyAccessRequire.parent.right) && ((_f = type.symbol) == null ? void 0 : _f.valueDeclaration) && isSourceFile(type.symbol.valueDeclaration)) {\n                const alias = localName === propertyAccessRequire.parent.right.escapedText ? void 0 : propertyAccessRequire.parent.right;\n                context.approximateLength += 12 + (((_g = alias == null ? void 0 : alias.escapedText) == null ? void 0 : _g.length) ?? 0);\n                addResult(\n                  factory.createExportDeclaration(\n                    /*modifiers*/\n                    void 0,\n                    /*isTypeOnly*/\n                    false,\n                    factory.createNamedExports([factory.createExportSpecifier(\n                      /*isTypeOnly*/\n                      false,\n                      alias,\n                      localName\n                    )])\n                  ),\n                  0 /* None */\n                );\n                context.tracker.trackSymbol(type.symbol, context.enclosingDeclaration, 111551 /* Value */);\n              } else {\n                const statement = setTextRange2(\n                  context,\n                  factory.createVariableStatement(\n                    /*modifiers*/\n                    void 0,\n                    factory.createVariableDeclarationList([\n                      factory.createVariableDeclaration(\n                        name,\n                        /*exclamationToken*/\n                        void 0,\n                        serializeTypeForDeclaration(\n                          context,\n                          /*declaration*/\n                          void 0,\n                          type,\n                          symbol\n                        )\n                      )\n                    ], flags)\n                  ),\n                  textRange\n                );\n                context.approximateLength += 7 + name.length;\n                addResult(statement, name !== localName ? modifierFlags & ~32 /* Export */ : modifierFlags);\n                if (name !== localName && !isPrivate) {\n                  context.approximateLength += 16 + name.length + localName.length;\n                  addResult(\n                    factory.createExportDeclaration(\n                      /*modifiers*/\n                      void 0,\n                      /*isTypeOnly*/\n                      false,\n                      factory.createNamedExports([factory.createExportSpecifier(\n                        /*isTypeOnly*/\n                        false,\n                        name,\n                        localName\n                      )])\n                    ),\n                    0 /* None */\n                  );\n                  needsExportDeclaration = false;\n                  needsPostExportDefault = false;\n                }\n              }\n            }\n          }\n        }\n        if (symbol.flags & 384 /* Enum */) {\n          serializeEnum(symbol, symbolName2, modifierFlags);\n        }\n        if (symbol.flags & 32 /* Class */) {\n          if (symbol.flags & 4 /* Property */ && symbol.valueDeclaration && isBinaryExpression(symbol.valueDeclaration.parent) && isClassExpression(symbol.valueDeclaration.parent.right)) {\n            serializeAsAlias(symbol, getInternalSymbolName(symbol, symbolName2), modifierFlags);\n          } else {\n            serializeAsClass(symbol, getInternalSymbolName(symbol, symbolName2), modifierFlags);\n          }\n        }\n        if (symbol.flags & (512 /* ValueModule */ | 1024 /* NamespaceModule */) && (!isConstMergedWithNS || isTypeOnlyNamespace(symbol)) || isConstMergedWithNSPrintableAsSignatureMerge) {\n          serializeModule(symbol, symbolName2, modifierFlags);\n        }\n        if (symbol.flags & 64 /* Interface */ && !(symbol.flags & 32 /* Class */)) {\n          serializeInterface(symbol, symbolName2, modifierFlags);\n        }\n        if (symbol.flags & 2097152 /* Alias */) {\n          serializeAsAlias(symbol, getInternalSymbolName(symbol, symbolName2), modifierFlags);\n        }\n        if (symbol.flags & 4 /* Property */ && symbol.escapedName === \"export=\" /* ExportEquals */) {\n          serializeMaybeAliasAssignment(symbol);\n        }\n        if (symbol.flags & 8388608 /* ExportStar */) {\n          if (symbol.declarations) {\n            for (const node of symbol.declarations) {\n              const resolvedModule = resolveExternalModuleName(node, node.moduleSpecifier);\n              if (!resolvedModule) continue;\n              const isTypeOnly = node.isTypeOnly;\n              const specifier = getSpecifierForModuleSymbol(resolvedModule, context);\n              context.approximateLength += 17 + specifier.length;\n              addResult(factory.createExportDeclaration(\n                /*modifiers*/\n                void 0,\n                isTypeOnly,\n                /*exportClause*/\n                void 0,\n                factory.createStringLiteral(specifier)\n              ), 0 /* None */);\n            }\n          }\n        }\n        if (needsPostExportDefault) {\n          const internalSymbolName = getInternalSymbolName(symbol, symbolName2);\n          context.approximateLength += 16 + internalSymbolName.length;\n          addResult(factory.createExportAssignment(\n            /*modifiers*/\n            void 0,\n            /*isExportEquals*/\n            false,\n            factory.createIdentifier(internalSymbolName)\n          ), 0 /* None */);\n        } else if (needsExportDeclaration) {\n          const internalSymbolName = getInternalSymbolName(symbol, symbolName2);\n          context.approximateLength += 22 + symbolName2.length + internalSymbolName.length;\n          addResult(\n            factory.createExportDeclaration(\n              /*modifiers*/\n              void 0,\n              /*isTypeOnly*/\n              false,\n              factory.createNamedExports([factory.createExportSpecifier(\n                /*isTypeOnly*/\n                false,\n                internalSymbolName,\n                symbolName2\n              )])\n            ),\n            0 /* None */\n          );\n        }\n      }\n      function includePrivateSymbol(symbol) {\n        if (some(symbol.declarations, isPartOfParameterDeclaration)) return;\n        Debug.assertIsDefined(deferredPrivatesStack[deferredPrivatesStack.length - 1]);\n        getUnusedName(unescapeLeadingUnderscores(symbol.escapedName), symbol);\n        const isExternalImportAlias = !!(symbol.flags & 2097152 /* Alias */) && !some(symbol.declarations, (d) => !!findAncestor(d, isExportDeclaration) || isNamespaceExport(d) || isImportEqualsDeclaration(d) && !isExternalModuleReference(d.moduleReference));\n        deferredPrivatesStack[isExternalImportAlias ? 0 : deferredPrivatesStack.length - 1].set(getSymbolId(symbol), symbol);\n      }\n      function isExportingScope(enclosingDeclaration2) {\n        return isSourceFile(enclosingDeclaration2) && (isExternalOrCommonJsModule(enclosingDeclaration2) || isJsonSourceFile(enclosingDeclaration2)) || isAmbientModule(enclosingDeclaration2) && !isGlobalScopeAugmentation(enclosingDeclaration2);\n      }\n      function addResult(node, additionalModifierFlags) {\n        if (canHaveModifiers(node)) {\n          const oldModifierFlags = getEffectiveModifierFlags(node);\n          let newModifierFlags = 0 /* None */;\n          const enclosingDeclaration2 = context.enclosingDeclaration && (isJSDocTypeAlias(context.enclosingDeclaration) ? getSourceFileOfNode(context.enclosingDeclaration) : context.enclosingDeclaration);\n          if (additionalModifierFlags & 32 /* Export */ && enclosingDeclaration2 && (isExportingScope(enclosingDeclaration2) || isModuleDeclaration(enclosingDeclaration2)) && canHaveExportModifier(node)) {\n            newModifierFlags |= 32 /* Export */;\n          }\n          if (addingDeclare && !(newModifierFlags & 32 /* Export */) && (!enclosingDeclaration2 || !(enclosingDeclaration2.flags & 33554432 /* Ambient */)) && (isEnumDeclaration(node) || isVariableStatement(node) || isFunctionDeclaration(node) || isClassDeclaration(node) || isModuleDeclaration(node))) {\n            newModifierFlags |= 128 /* Ambient */;\n          }\n          if (additionalModifierFlags & 2048 /* Default */ && (isClassDeclaration(node) || isInterfaceDeclaration(node) || isFunctionDeclaration(node))) {\n            newModifierFlags |= 2048 /* Default */;\n          }\n          if (newModifierFlags) {\n            node = factory.replaceModifiers(node, newModifierFlags | oldModifierFlags);\n          }\n          context.approximateLength += modifiersLength(newModifierFlags | oldModifierFlags);\n        }\n        results.push(node);\n      }\n      function serializeTypeAlias(symbol, symbolName2, modifierFlags) {\n        var _a2;\n        const aliasType = getDeclaredTypeOfTypeAlias(symbol);\n        const typeParams = getSymbolLinks(symbol).typeParameters;\n        const typeParamDecls = map(typeParams, (p) => typeParameterToDeclaration(p, context));\n        const jsdocAliasDecl = (_a2 = symbol.declarations) == null ? void 0 : _a2.find(isJSDocTypeAlias);\n        const commentText = getTextOfJSDocComment(jsdocAliasDecl ? jsdocAliasDecl.comment || jsdocAliasDecl.parent.comment : void 0);\n        const restoreFlags = saveRestoreFlags(context);\n        context.flags |= 8388608 /* InTypeAlias */;\n        const oldEnclosingDecl = context.enclosingDeclaration;\n        context.enclosingDeclaration = jsdocAliasDecl;\n        const typeNode = jsdocAliasDecl && jsdocAliasDecl.typeExpression && isJSDocTypeExpression(jsdocAliasDecl.typeExpression) && syntacticNodeBuilder.tryReuseExistingTypeNode(context, jsdocAliasDecl.typeExpression.type) || typeToTypeNodeHelper(aliasType, context);\n        const internalSymbolName = getInternalSymbolName(symbol, symbolName2);\n        context.approximateLength += 8 + ((commentText == null ? void 0 : commentText.length) ?? 0) + internalSymbolName.length;\n        addResult(\n          setSyntheticLeadingComments(\n            factory.createTypeAliasDeclaration(\n              /*modifiers*/\n              void 0,\n              internalSymbolName,\n              typeParamDecls,\n              typeNode\n            ),\n            !commentText ? [] : [{ kind: 3 /* MultiLineCommentTrivia */, text: \"*\\n * \" + commentText.replace(/\\n/g, \"\\n * \") + \"\\n \", pos: -1, end: -1, hasTrailingNewLine: true }]\n          ),\n          modifierFlags\n        );\n        restoreFlags();\n        context.enclosingDeclaration = oldEnclosingDecl;\n      }\n      function serializeInterface(symbol, symbolName2, modifierFlags) {\n        const internalSymbolName = getInternalSymbolName(symbol, symbolName2);\n        context.approximateLength += 14 + internalSymbolName.length;\n        const interfaceType = getDeclaredTypeOfClassOrInterface(symbol);\n        const localParams = getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(symbol);\n        const typeParamDecls = map(localParams, (p) => typeParameterToDeclaration(p, context));\n        const baseTypes = getBaseTypes(interfaceType);\n        const baseType = length(baseTypes) ? getIntersectionType(baseTypes) : void 0;\n        const members = serializePropertySymbolsForClassOrInterface(\n          getPropertiesOfType(interfaceType),\n          /*isClass*/\n          false,\n          baseType\n        );\n        const callSignatures = serializeSignatures(0 /* Call */, interfaceType, baseType, 180 /* CallSignature */);\n        const constructSignatures = serializeSignatures(1 /* Construct */, interfaceType, baseType, 181 /* ConstructSignature */);\n        const indexSignatures = serializeIndexSignatures(interfaceType, baseType);\n        const heritageClauses = !length(baseTypes) ? void 0 : [factory.createHeritageClause(96 /* ExtendsKeyword */, mapDefined(baseTypes, (b) => trySerializeAsTypeReference(b, 111551 /* Value */)))];\n        addResult(\n          factory.createInterfaceDeclaration(\n            /*modifiers*/\n            void 0,\n            internalSymbolName,\n            typeParamDecls,\n            heritageClauses,\n            [...indexSignatures, ...constructSignatures, ...callSignatures, ...members]\n          ),\n          modifierFlags\n        );\n      }\n      function serializePropertySymbolsForClassOrInterface(props, isClass, baseType, isStatic2) {\n        const elements = [];\n        let i = 0;\n        for (const prop of props) {\n          i++;\n          if (checkTruncationLengthIfExpanding(context) && i + 2 < props.length - 1) {\n            context.out.truncated = true;\n            const placeholder = createTruncationProperty(`... ${props.length - i} more ... `, isClass);\n            elements.push(placeholder);\n            const result2 = isClass ? serializePropertySymbolForClass(props[props.length - 1], isStatic2, baseType) : serializePropertySymbolForInterface(props[props.length - 1], baseType);\n            if (isArray(result2)) {\n              elements.push(...result2);\n            } else {\n              elements.push(result2);\n            }\n            break;\n          }\n          context.approximateLength += 1;\n          const result = isClass ? serializePropertySymbolForClass(prop, isStatic2, baseType) : serializePropertySymbolForInterface(prop, baseType);\n          if (isArray(result)) {\n            elements.push(...result);\n          } else {\n            elements.push(result);\n          }\n        }\n        return elements;\n      }\n      function createTruncationProperty(dotDotDotText, isClass) {\n        if (context.flags & 1 /* NoTruncation */) {\n          return addSyntheticLeadingComment(factory.createNotEmittedTypeElement(), 3 /* MultiLineCommentTrivia */, dotDotDotText);\n        }\n        return isClass ? factory.createPropertyDeclaration(\n          /*modifiers*/\n          void 0,\n          dotDotDotText,\n          /*questionOrExclamationToken*/\n          void 0,\n          /*type*/\n          void 0,\n          /*initializer*/\n          void 0\n        ) : factory.createPropertySignature(\n          /*modifiers*/\n          void 0,\n          dotDotDotText,\n          /*questionToken*/\n          void 0,\n          /*type*/\n          void 0\n        );\n      }\n      function getNamespaceMembersForSerialization(symbol) {\n        let exports2 = arrayFrom(getExportsOfSymbol(symbol).values());\n        const merged = getMergedSymbol(symbol);\n        if (merged !== symbol) {\n          const membersSet = new Set(exports2);\n          for (const exported of getExportsOfSymbol(merged).values()) {\n            if (!(getSymbolFlags(resolveSymbol(exported)) & 111551 /* Value */)) {\n              membersSet.add(exported);\n            }\n          }\n          exports2 = arrayFrom(membersSet);\n        }\n        return filter(exports2, (m) => isNamespaceMember(m) && isIdentifierText(m.escapedName, 99 /* ESNext */));\n      }\n      function isTypeOnlyNamespace(symbol) {\n        return every(getNamespaceMembersForSerialization(symbol), (m) => !(getSymbolFlags(resolveSymbol(m)) & 111551 /* Value */));\n      }\n      function serializeModule(symbol, symbolName2, modifierFlags) {\n        const members = getNamespaceMembersForSerialization(symbol);\n        const expanding = isExpanding(context);\n        const locationMap = arrayToMultiMap(members, (m) => m.parent && m.parent === symbol || expanding ? \"real\" : \"merged\");\n        const realMembers = locationMap.get(\"real\") || emptyArray;\n        const mergedMembers = locationMap.get(\"merged\") || emptyArray;\n        if (length(realMembers) || expanding) {\n          let localName;\n          if (expanding) {\n            const oldFlags = context.flags;\n            context.flags |= 512 /* WriteTypeParametersInQualifiedName */ | 2 /* UseOnlyExternalAliasing */;\n            localName = symbolToNode(\n              symbol,\n              context,\n              /*meaning*/\n              -1 /* All */\n            );\n            context.flags = oldFlags;\n          } else {\n            const localText = getInternalSymbolName(symbol, symbolName2);\n            localName = factory.createIdentifier(localText);\n            context.approximateLength += localText.length;\n          }\n          serializeAsNamespaceDeclaration(realMembers, localName, modifierFlags, !!(symbol.flags & (16 /* Function */ | 67108864 /* Assignment */)));\n        }\n        if (length(mergedMembers)) {\n          const containingFile = getSourceFileOfNode(context.enclosingDeclaration);\n          const localName = getInternalSymbolName(symbol, symbolName2);\n          const nsBody = factory.createModuleBlock([factory.createExportDeclaration(\n            /*modifiers*/\n            void 0,\n            /*isTypeOnly*/\n            false,\n            factory.createNamedExports(mapDefined(filter(mergedMembers, (n) => n.escapedName !== \"export=\" /* ExportEquals */), (s) => {\n              var _a2, _b;\n              const name = unescapeLeadingUnderscores(s.escapedName);\n              const localName2 = getInternalSymbolName(s, name);\n              const aliasDecl = s.declarations && getDeclarationOfAliasSymbol(s);\n              if (containingFile && (aliasDecl ? containingFile !== getSourceFileOfNode(aliasDecl) : !some(s.declarations, (d) => getSourceFileOfNode(d) === containingFile))) {\n                (_b = (_a2 = context.tracker) == null ? void 0 : _a2.reportNonlocalAugmentation) == null ? void 0 : _b.call(_a2, containingFile, symbol, s);\n                return void 0;\n              }\n              const target = aliasDecl && getTargetOfAliasDeclaration(\n                aliasDecl,\n                /*dontRecursivelyResolve*/\n                true\n              );\n              includePrivateSymbol(target || s);\n              const targetName = target ? getInternalSymbolName(target, unescapeLeadingUnderscores(target.escapedName)) : localName2;\n              return factory.createExportSpecifier(\n                /*isTypeOnly*/\n                false,\n                name === targetName ? void 0 : targetName,\n                name\n              );\n            }))\n          )]);\n          addResult(\n            factory.createModuleDeclaration(\n              /*modifiers*/\n              void 0,\n              factory.createIdentifier(localName),\n              nsBody,\n              32 /* Namespace */\n            ),\n            0 /* None */\n          );\n        }\n      }\n      function serializeEnum(symbol, symbolName2, modifierFlags) {\n        const internalSymbolName = getInternalSymbolName(symbol, symbolName2);\n        context.approximateLength += 9 + internalSymbolName.length;\n        const members = [];\n        const memberProps = filter(getPropertiesOfType(getTypeOfSymbol(symbol)), (p) => !!(p.flags & 8 /* EnumMember */));\n        let i = 0;\n        for (const p of memberProps) {\n          i++;\n          if (checkTruncationLengthIfExpanding(context) && i + 2 < memberProps.length - 1) {\n            context.out.truncated = true;\n            members.push(factory.createEnumMember(` ... ${memberProps.length - i} more ... `));\n            const last2 = memberProps[memberProps.length - 1];\n            const initializedValue = last2.declarations && last2.declarations[0] && isEnumMember(last2.declarations[0]) ? getConstantValue2(last2.declarations[0]) : void 0;\n            const initializer2 = initializedValue === void 0 ? void 0 : typeof initializedValue === \"string\" ? factory.createStringLiteral(initializedValue) : factory.createNumericLiteral(initializedValue);\n            const memberName2 = unescapeLeadingUnderscores(last2.escapedName);\n            const member2 = factory.createEnumMember(\n              memberName2,\n              initializer2\n            );\n            members.push(member2);\n            break;\n          }\n          const memberDecl = p.declarations && p.declarations[0] && isEnumMember(p.declarations[0]) ? p.declarations[0] : void 0;\n          let initializer;\n          let initializerLength;\n          if (isExpanding(context) && memberDecl && memberDecl.initializer) {\n            initializer = getSynthesizedDeepClone(memberDecl.initializer);\n            initializerLength = memberDecl.initializer.end - memberDecl.initializer.pos;\n          } else {\n            const initializedValue = memberDecl && getConstantValue2(memberDecl);\n            initializer = initializedValue === void 0 ? void 0 : typeof initializedValue === \"string\" ? factory.createStringLiteral(initializedValue) : factory.createNumericLiteral(initializedValue);\n            initializerLength = (initializer == null ? void 0 : initializer.text.length) ?? 0;\n          }\n          const memberName = unescapeLeadingUnderscores(p.escapedName);\n          context.approximateLength += 4 + memberName.length + initializerLength;\n          const member = factory.createEnumMember(\n            memberName,\n            initializer\n          );\n          members.push(member);\n        }\n        addResult(\n          factory.createEnumDeclaration(\n            factory.createModifiersFromModifierFlags(isConstEnumSymbol(symbol) ? 4096 /* Const */ : 0),\n            internalSymbolName,\n            members\n          ),\n          modifierFlags\n        );\n      }\n      function serializeAsFunctionNamespaceMerge(type, symbol, localName, modifierFlags) {\n        const signatures = getSignaturesOfType(type, 0 /* Call */);\n        for (const sig of signatures) {\n          context.approximateLength += 1;\n          const decl = signatureToSignatureDeclarationHelper(sig, 263 /* FunctionDeclaration */, context, { name: factory.createIdentifier(localName) });\n          addResult(setTextRange2(context, decl, getSignatureTextRangeLocation(sig)), modifierFlags);\n        }\n        if (!(symbol.flags & (512 /* ValueModule */ | 1024 /* NamespaceModule */) && !!symbol.exports && !!symbol.exports.size)) {\n          const props = filter(getPropertiesOfType(type), isNamespaceMember);\n          context.approximateLength += localName.length;\n          serializeAsNamespaceDeclaration(\n            props,\n            factory.createIdentifier(localName),\n            modifierFlags,\n            /*suppressNewPrivateContext*/\n            true\n          );\n        }\n      }\n      function createTruncationStatement(dotDotDotText) {\n        if (context.flags & 1 /* NoTruncation */) {\n          return addSyntheticLeadingComment(factory.createEmptyStatement(), 3 /* MultiLineCommentTrivia */, dotDotDotText);\n        }\n        return factory.createExpressionStatement(factory.createIdentifier(dotDotDotText));\n      }\n      function getSignatureTextRangeLocation(signature) {\n        if (signature.declaration && signature.declaration.parent) {\n          if (isBinaryExpression(signature.declaration.parent) && getAssignmentDeclarationKind(signature.declaration.parent) === 5 /* Property */) {\n            return signature.declaration.parent;\n          }\n          if (isVariableDeclaration(signature.declaration.parent) && signature.declaration.parent.parent) {\n            return signature.declaration.parent.parent;\n          }\n        }\n        return signature.declaration;\n      }\n      function serializeAsNamespaceDeclaration(props, localName, modifierFlags, suppressNewPrivateContext) {\n        const nodeFlags = isIdentifier(localName) ? 32 /* Namespace */ : 0 /* None */;\n        const expanding = isExpanding(context);\n        if (length(props)) {\n          context.approximateLength += 14;\n          const localVsRemoteMap = arrayToMultiMap(props, (p) => !length(p.declarations) || some(p.declarations, (d) => getSourceFileOfNode(d) === getSourceFileOfNode(context.enclosingDeclaration)) || expanding ? \"local\" : \"remote\");\n          const localProps = localVsRemoteMap.get(\"local\") || emptyArray;\n          let fakespace = parseNodeFactory.createModuleDeclaration(\n            /*modifiers*/\n            void 0,\n            localName,\n            factory.createModuleBlock([]),\n            nodeFlags\n          );\n          setParent(fakespace, enclosingDeclaration);\n          fakespace.locals = createSymbolTable(props);\n          fakespace.symbol = props[0].parent;\n          const oldResults = results;\n          results = [];\n          const oldAddingDeclare = addingDeclare;\n          addingDeclare = false;\n          const subcontext = { ...context, enclosingDeclaration: fakespace };\n          const oldContext = context;\n          context = subcontext;\n          visitSymbolTable(\n            createSymbolTable(localProps),\n            suppressNewPrivateContext,\n            /*propertyAsAlias*/\n            true\n          );\n          context = oldContext;\n          addingDeclare = oldAddingDeclare;\n          const declarations = results;\n          results = oldResults;\n          const defaultReplaced = map(declarations, (d) => isExportAssignment(d) && !d.isExportEquals && isIdentifier(d.expression) ? factory.createExportDeclaration(\n            /*modifiers*/\n            void 0,\n            /*isTypeOnly*/\n            false,\n            factory.createNamedExports([factory.createExportSpecifier(\n              /*isTypeOnly*/\n              false,\n              d.expression,\n              factory.createIdentifier(\"default\" /* Default */)\n            )])\n          ) : d);\n          const exportModifierStripped = every(defaultReplaced, (d) => hasSyntacticModifier(d, 32 /* Export */)) ? map(defaultReplaced, removeExportModifier) : defaultReplaced;\n          fakespace = factory.updateModuleDeclaration(\n            fakespace,\n            fakespace.modifiers,\n            fakespace.name,\n            factory.createModuleBlock(exportModifierStripped)\n          );\n          addResult(fakespace, modifierFlags);\n        } else if (expanding) {\n          context.approximateLength += 14;\n          addResult(\n            factory.createModuleDeclaration(\n              /*modifiers*/\n              void 0,\n              localName,\n              factory.createModuleBlock([]),\n              nodeFlags\n            ),\n            modifierFlags\n          );\n        }\n      }\n      function isNamespaceMember(p) {\n        return !!(p.flags & (788968 /* Type */ | 1920 /* Namespace */ | 2097152 /* Alias */)) || !(p.flags & 4194304 /* Prototype */ || p.escapedName === \"prototype\" || p.valueDeclaration && isStatic(p.valueDeclaration) && isClassLike(p.valueDeclaration.parent));\n      }\n      function sanitizeJSDocImplements(clauses) {\n        const result = mapDefined(clauses, (e) => {\n          const oldEnclosing = context.enclosingDeclaration;\n          context.enclosingDeclaration = e;\n          let expr = e.expression;\n          if (isEntityNameExpression(expr)) {\n            if (isIdentifier(expr) && idText(expr) === \"\") {\n              return cleanup(\n                /*result*/\n                void 0\n              );\n            }\n            let introducesError;\n            ({ introducesError, node: expr } = trackExistingEntityName(expr, context));\n            if (introducesError) {\n              return cleanup(\n                /*result*/\n                void 0\n              );\n            }\n          }\n          return cleanup(factory.createExpressionWithTypeArguments(\n            expr,\n            map(e.typeArguments, (a) => syntacticNodeBuilder.tryReuseExistingTypeNode(context, a) || typeToTypeNodeHelper(getTypeFromTypeNode2(context, a), context))\n          ));\n          function cleanup(result2) {\n            context.enclosingDeclaration = oldEnclosing;\n            return result2;\n          }\n        });\n        if (result.length === clauses.length) {\n          return result;\n        }\n        return void 0;\n      }\n      function serializeAsClass(symbol, localName, modifierFlags) {\n        var _a2, _b;\n        context.approximateLength += 9 + localName.length;\n        const originalDecl = (_a2 = symbol.declarations) == null ? void 0 : _a2.find(isClassLike);\n        const oldEnclosing = context.enclosingDeclaration;\n        context.enclosingDeclaration = originalDecl || oldEnclosing;\n        const localParams = getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(symbol);\n        const typeParamDecls = map(localParams, (p) => typeParameterToDeclaration(p, context));\n        forEach(localParams, (p) => context.approximateLength += symbolName(p.symbol).length);\n        const classType = getTypeWithThisArgument(getDeclaredTypeOfClassOrInterface(symbol));\n        const baseTypes = getBaseTypes(classType);\n        const originalImplements = originalDecl && getEffectiveImplementsTypeNodes(originalDecl);\n        const implementsExpressions = originalImplements && sanitizeJSDocImplements(originalImplements) || mapDefined(getImplementsTypes(classType), serializeImplementedType);\n        const staticType = getTypeOfSymbol(symbol);\n        const isClass = !!((_b = staticType.symbol) == null ? void 0 : _b.valueDeclaration) && isClassLike(staticType.symbol.valueDeclaration);\n        const staticBaseType = isClass ? getBaseConstructorTypeOfClass(staticType) : anyType;\n        context.approximateLength += (length(baseTypes) ? 8 : 0) + (length(implementsExpressions) ? 11 : 0);\n        const heritageClauses = [\n          ...!length(baseTypes) ? [] : [factory.createHeritageClause(96 /* ExtendsKeyword */, map(baseTypes, (b) => serializeBaseType(b, staticBaseType, localName)))],\n          ...!length(implementsExpressions) ? [] : [factory.createHeritageClause(119 /* ImplementsKeyword */, implementsExpressions)]\n        ];\n        const symbolProps = getNonInheritedProperties(classType, baseTypes, getPropertiesOfType(classType));\n        const publicSymbolProps = filter(symbolProps, (s) => !isHashPrivate(s));\n        const hasPrivateIdentifier = some(symbolProps, isHashPrivate);\n        const privateProperties = hasPrivateIdentifier ? isExpanding(context) ? serializePropertySymbolsForClassOrInterface(\n          filter(symbolProps, isHashPrivate),\n          /*isClass*/\n          true,\n          baseTypes[0],\n          /*isStatic*/\n          false\n        ) : [factory.createPropertyDeclaration(\n          /*modifiers*/\n          void 0,\n          factory.createPrivateIdentifier(\"#private\"),\n          /*questionOrExclamationToken*/\n          void 0,\n          /*type*/\n          void 0,\n          /*initializer*/\n          void 0\n        )] : emptyArray;\n        if (hasPrivateIdentifier && !isExpanding(context)) {\n          context.approximateLength += 9;\n        }\n        const publicProperties = serializePropertySymbolsForClassOrInterface(\n          publicSymbolProps,\n          /*isClass*/\n          true,\n          baseTypes[0],\n          /*isStatic*/\n          false\n        );\n        const staticMembers = serializePropertySymbolsForClassOrInterface(\n          filter(getPropertiesOfType(staticType), (p) => !(p.flags & 4194304 /* Prototype */) && p.escapedName !== \"prototype\" && !isNamespaceMember(p)),\n          /*isClass*/\n          true,\n          staticBaseType,\n          /*isStatic*/\n          true\n        );\n        const isNonConstructableClassLikeInJsFile = !isClass && !!symbol.valueDeclaration && isInJSFile(symbol.valueDeclaration) && !some(getSignaturesOfType(staticType, 1 /* Construct */));\n        if (isNonConstructableClassLikeInJsFile) context.approximateLength += 21;\n        const constructors = isNonConstructableClassLikeInJsFile ? [factory.createConstructorDeclaration(\n          factory.createModifiersFromModifierFlags(2 /* Private */),\n          [],\n          /*body*/\n          void 0\n        )] : serializeSignatures(1 /* Construct */, staticType, staticBaseType, 177 /* Constructor */);\n        const indexSignatures = serializeIndexSignatures(classType, baseTypes[0]);\n        context.enclosingDeclaration = oldEnclosing;\n        addResult(\n          setTextRange2(\n            context,\n            factory.createClassDeclaration(\n              /*modifiers*/\n              void 0,\n              localName,\n              typeParamDecls,\n              heritageClauses,\n              [...indexSignatures, ...staticMembers, ...constructors, ...publicProperties, ...privateProperties]\n            ),\n            symbol.declarations && filter(symbol.declarations, (d) => isClassDeclaration(d) || isClassExpression(d))[0]\n          ),\n          modifierFlags\n        );\n      }\n      function getSomeTargetNameFromDeclarations(declarations) {\n        return firstDefined(declarations, (d) => {\n          if (isImportSpecifier(d) || isExportSpecifier(d)) {\n            return moduleExportNameTextUnescaped(d.propertyName || d.name);\n          }\n          if (isBinaryExpression(d) || isExportAssignment(d)) {\n            const expression = isExportAssignment(d) ? d.expression : d.right;\n            if (isPropertyAccessExpression(expression)) {\n              return idText(expression.name);\n            }\n          }\n          if (isAliasSymbolDeclaration(d)) {\n            const name = getNameOfDeclaration(d);\n            if (name && isIdentifier(name)) {\n              return idText(name);\n            }\n          }\n          return void 0;\n        });\n      }\n      function serializeAsAlias(symbol, localName, modifierFlags) {\n        var _a2, _b, _c, _d, _e;\n        const node = getDeclarationOfAliasSymbol(symbol);\n        if (!node) return Debug.fail();\n        const target = getMergedSymbol(getTargetOfAliasDeclaration(\n          node,\n          /*dontRecursivelyResolve*/\n          true\n        ));\n        if (!target) {\n          return;\n        }\n        let verbatimTargetName = isShorthandAmbientModuleSymbol(target) && getSomeTargetNameFromDeclarations(symbol.declarations) || unescapeLeadingUnderscores(target.escapedName);\n        if (verbatimTargetName === \"export=\" /* ExportEquals */ && allowSyntheticDefaultImports) {\n          verbatimTargetName = \"default\" /* Default */;\n        }\n        const targetName = getInternalSymbolName(target, verbatimTargetName);\n        includePrivateSymbol(target);\n        switch (node.kind) {\n          case 209 /* BindingElement */:\n            if (((_b = (_a2 = node.parent) == null ? void 0 : _a2.parent) == null ? void 0 : _b.kind) === 261 /* VariableDeclaration */) {\n              const specifier2 = getSpecifierForModuleSymbol(target.parent || target, context);\n              const { propertyName } = node;\n              const propertyNameText = propertyName && isIdentifier(propertyName) ? idText(propertyName) : void 0;\n              context.approximateLength += 24 + localName.length + specifier2.length + ((propertyNameText == null ? void 0 : propertyNameText.length) ?? 0);\n              addResult(\n                factory.createImportDeclaration(\n                  /*modifiers*/\n                  void 0,\n                  factory.createImportClause(\n                    /*phaseModifier*/\n                    void 0,\n                    /*name*/\n                    void 0,\n                    factory.createNamedImports([factory.createImportSpecifier(\n                      /*isTypeOnly*/\n                      false,\n                      propertyNameText ? factory.createIdentifier(propertyNameText) : void 0,\n                      factory.createIdentifier(localName)\n                    )])\n                  ),\n                  factory.createStringLiteral(specifier2),\n                  /*attributes*/\n                  void 0\n                ),\n                0 /* None */\n              );\n              break;\n            }\n            Debug.failBadSyntaxKind(((_c = node.parent) == null ? void 0 : _c.parent) || node, \"Unhandled binding element grandparent kind in declaration serialization\");\n            break;\n          case 305 /* ShorthandPropertyAssignment */:\n            if (((_e = (_d = node.parent) == null ? void 0 : _d.parent) == null ? void 0 : _e.kind) === 227 /* BinaryExpression */) {\n              serializeExportSpecifier(\n                unescapeLeadingUnderscores(symbol.escapedName),\n                targetName\n              );\n            }\n            break;\n          case 261 /* VariableDeclaration */:\n            if (isPropertyAccessExpression(node.initializer)) {\n              const initializer = node.initializer;\n              const uniqueName = factory.createUniqueName(localName);\n              const specifier2 = getSpecifierForModuleSymbol(target.parent || target, context);\n              context.approximateLength += 22 + specifier2.length + idText(uniqueName).length;\n              addResult(\n                factory.createImportEqualsDeclaration(\n                  /*modifiers*/\n                  void 0,\n                  /*isTypeOnly*/\n                  false,\n                  uniqueName,\n                  factory.createExternalModuleReference(factory.createStringLiteral(specifier2))\n                ),\n                0 /* None */\n              );\n              context.approximateLength += 12 + localName.length + idText(uniqueName).length + idText(initializer.name).length;\n              addResult(\n                factory.createImportEqualsDeclaration(\n                  /*modifiers*/\n                  void 0,\n                  /*isTypeOnly*/\n                  false,\n                  factory.createIdentifier(localName),\n                  factory.createQualifiedName(uniqueName, initializer.name)\n                ),\n                modifierFlags\n              );\n              break;\n            }\n          // else fall through and treat commonjs require just like import=\n          case 272 /* ImportEqualsDeclaration */:\n            if (target.escapedName === \"export=\" /* ExportEquals */ && some(target.declarations, (d) => isSourceFile(d) && isJsonSourceFile(d))) {\n              serializeMaybeAliasAssignment(symbol);\n              break;\n            }\n            const isLocalImport = !(target.flags & 512 /* ValueModule */) && !isVariableDeclaration(node);\n            context.approximateLength += 11 + localName.length + unescapeLeadingUnderscores(target.escapedName).length;\n            addResult(\n              factory.createImportEqualsDeclaration(\n                /*modifiers*/\n                void 0,\n                /*isTypeOnly*/\n                false,\n                factory.createIdentifier(localName),\n                isLocalImport ? symbolToName(\n                  target,\n                  context,\n                  -1 /* All */,\n                  /*expectsIdentifier*/\n                  false\n                ) : factory.createExternalModuleReference(factory.createStringLiteral(getSpecifierForModuleSymbol(target, context)))\n              ),\n              isLocalImport ? modifierFlags : 0 /* None */\n            );\n            break;\n          case 271 /* NamespaceExportDeclaration */:\n            addResult(factory.createNamespaceExportDeclaration(idText(node.name)), 0 /* None */);\n            break;\n          case 274 /* ImportClause */: {\n            const generatedSpecifier = getSpecifierForModuleSymbol(target.parent || target, context);\n            const specifier2 = context.bundled ? factory.createStringLiteral(generatedSpecifier) : node.parent.moduleSpecifier;\n            const attributes = isImportDeclaration(node.parent) ? node.parent.attributes : void 0;\n            const isTypeOnly = isJSDocImportTag(node.parent);\n            context.approximateLength += 14 + localName.length + 3 + (isTypeOnly ? 4 : 0);\n            addResult(\n              factory.createImportDeclaration(\n                /*modifiers*/\n                void 0,\n                factory.createImportClause(\n                  /* phaseModifier */\n                  isTypeOnly ? 156 /* TypeKeyword */ : void 0,\n                  factory.createIdentifier(localName),\n                  /*namedBindings*/\n                  void 0\n                ),\n                specifier2,\n                attributes\n              ),\n              0 /* None */\n            );\n            break;\n          }\n          case 275 /* NamespaceImport */: {\n            const generatedSpecifier = getSpecifierForModuleSymbol(target.parent || target, context);\n            const specifier2 = context.bundled ? factory.createStringLiteral(generatedSpecifier) : node.parent.parent.moduleSpecifier;\n            const isTypeOnly = isJSDocImportTag(node.parent.parent);\n            context.approximateLength += 19 + localName.length + 3 + (isTypeOnly ? 4 : 0);\n            addResult(\n              factory.createImportDeclaration(\n                /*modifiers*/\n                void 0,\n                factory.createImportClause(\n                  /* phaseModifier */\n                  isTypeOnly ? 156 /* TypeKeyword */ : void 0,\n                  /*name*/\n                  void 0,\n                  factory.createNamespaceImport(factory.createIdentifier(localName))\n                ),\n                specifier2,\n                node.parent.attributes\n              ),\n              0 /* None */\n            );\n            break;\n          }\n          case 281 /* NamespaceExport */:\n            context.approximateLength += 19 + localName.length + 3;\n            addResult(\n              factory.createExportDeclaration(\n                /*modifiers*/\n                void 0,\n                /*isTypeOnly*/\n                false,\n                factory.createNamespaceExport(factory.createIdentifier(localName)),\n                factory.createStringLiteral(getSpecifierForModuleSymbol(target, context))\n              ),\n              0 /* None */\n            );\n            break;\n          case 277 /* ImportSpecifier */: {\n            const generatedSpecifier = getSpecifierForModuleSymbol(target.parent || target, context);\n            const specifier2 = context.bundled ? factory.createStringLiteral(generatedSpecifier) : node.parent.parent.parent.moduleSpecifier;\n            const isTypeOnly = isJSDocImportTag(node.parent.parent.parent);\n            context.approximateLength += 19 + localName.length + 3 + (isTypeOnly ? 4 : 0);\n            addResult(\n              factory.createImportDeclaration(\n                /*modifiers*/\n                void 0,\n                factory.createImportClause(\n                  /* phaseModifier */\n                  isTypeOnly ? 156 /* TypeKeyword */ : void 0,\n                  /*name*/\n                  void 0,\n                  factory.createNamedImports([\n                    factory.createImportSpecifier(\n                      /*isTypeOnly*/\n                      false,\n                      localName !== verbatimTargetName ? factory.createIdentifier(verbatimTargetName) : void 0,\n                      factory.createIdentifier(localName)\n                    )\n                  ])\n                ),\n                specifier2,\n                node.parent.parent.parent.attributes\n              ),\n              0 /* None */\n            );\n            break;\n          }\n          case 282 /* ExportSpecifier */:\n            const specifier = node.parent.parent.moduleSpecifier;\n            if (specifier) {\n              const propertyName = node.propertyName;\n              if (propertyName && moduleExportNameIsDefault(propertyName)) {\n                verbatimTargetName = \"default\" /* Default */;\n              }\n            }\n            serializeExportSpecifier(\n              unescapeLeadingUnderscores(symbol.escapedName),\n              specifier ? verbatimTargetName : targetName,\n              specifier && isStringLiteralLike(specifier) ? factory.createStringLiteral(specifier.text) : void 0\n            );\n            break;\n          case 278 /* ExportAssignment */:\n            serializeMaybeAliasAssignment(symbol);\n            break;\n          case 227 /* BinaryExpression */:\n          case 212 /* PropertyAccessExpression */:\n          case 213 /* ElementAccessExpression */:\n            if (symbol.escapedName === \"default\" /* Default */ || symbol.escapedName === \"export=\" /* ExportEquals */) {\n              serializeMaybeAliasAssignment(symbol);\n            } else {\n              serializeExportSpecifier(localName, targetName);\n            }\n            break;\n          default:\n            return Debug.failBadSyntaxKind(node, \"Unhandled alias declaration kind in symbol serializer!\");\n        }\n      }\n      function serializeExportSpecifier(localName, targetName, specifier) {\n        context.approximateLength += 16 + localName.length + (localName !== targetName ? targetName.length : 0);\n        addResult(\n          factory.createExportDeclaration(\n            /*modifiers*/\n            void 0,\n            /*isTypeOnly*/\n            false,\n            factory.createNamedExports([factory.createExportSpecifier(\n              /*isTypeOnly*/\n              false,\n              localName !== targetName ? targetName : void 0,\n              localName\n            )]),\n            specifier\n          ),\n          0 /* None */\n        );\n      }\n      function serializeMaybeAliasAssignment(symbol) {\n        var _a2;\n        if (symbol.flags & 4194304 /* Prototype */) {\n          return false;\n        }\n        const name = unescapeLeadingUnderscores(symbol.escapedName);\n        const isExportEquals = name === \"export=\" /* ExportEquals */;\n        const isDefault = name === \"default\" /* Default */;\n        const isExportAssignmentCompatibleSymbolName = isExportEquals || isDefault;\n        const aliasDecl = symbol.declarations && getDeclarationOfAliasSymbol(symbol);\n        const target = aliasDecl && getTargetOfAliasDeclaration(\n          aliasDecl,\n          /*dontRecursivelyResolve*/\n          true\n        );\n        if (target && length(target.declarations) && some(target.declarations, (d) => getSourceFileOfNode(d) === getSourceFileOfNode(enclosingDeclaration))) {\n          const expr = aliasDecl && (isExportAssignment(aliasDecl) || isBinaryExpression(aliasDecl) ? getExportAssignmentExpression(aliasDecl) : getPropertyAssignmentAliasLikeExpression(aliasDecl));\n          const first2 = expr && isEntityNameExpression(expr) ? getFirstNonModuleExportsIdentifier(expr) : void 0;\n          const referenced = first2 && resolveEntityName(\n            first2,\n            -1 /* All */,\n            /*ignoreErrors*/\n            true,\n            /*dontResolveAlias*/\n            true,\n            enclosingDeclaration\n          );\n          if (referenced || target) {\n            includePrivateSymbol(referenced || target);\n          }\n          const prevDisableTrackSymbol = context.tracker.disableTrackSymbol;\n          context.tracker.disableTrackSymbol = true;\n          if (isExportAssignmentCompatibleSymbolName) {\n            context.approximateLength += 10;\n            results.push(factory.createExportAssignment(\n              /*modifiers*/\n              void 0,\n              isExportEquals,\n              symbolToExpression(target, context, -1 /* All */)\n            ));\n          } else {\n            if (first2 === expr && first2) {\n              serializeExportSpecifier(name, idText(first2));\n            } else if (expr && isClassExpression(expr)) {\n              serializeExportSpecifier(name, getInternalSymbolName(target, symbolName(target)));\n            } else {\n              const varName = getUnusedName(name, symbol);\n              context.approximateLength += varName.length + 10;\n              addResult(\n                factory.createImportEqualsDeclaration(\n                  /*modifiers*/\n                  void 0,\n                  /*isTypeOnly*/\n                  false,\n                  factory.createIdentifier(varName),\n                  symbolToName(\n                    target,\n                    context,\n                    -1 /* All */,\n                    /*expectsIdentifier*/\n                    false\n                  )\n                ),\n                0 /* None */\n              );\n              serializeExportSpecifier(name, varName);\n            }\n          }\n          context.tracker.disableTrackSymbol = prevDisableTrackSymbol;\n          return true;\n        } else {\n          const varName = getUnusedName(name, symbol);\n          const typeToSerialize = getWidenedType(getTypeOfSymbol(getMergedSymbol(symbol)));\n          if (isTypeRepresentableAsFunctionNamespaceMerge(typeToSerialize, symbol)) {\n            serializeAsFunctionNamespaceMerge(typeToSerialize, symbol, varName, isExportAssignmentCompatibleSymbolName ? 0 /* None */ : 32 /* Export */);\n          } else {\n            const flags = ((_a2 = context.enclosingDeclaration) == null ? void 0 : _a2.kind) === 268 /* ModuleDeclaration */ && (!(symbol.flags & 98304 /* Accessor */) || symbol.flags & 65536 /* SetAccessor */) ? 1 /* Let */ : 2 /* Const */;\n            context.approximateLength += varName.length + 5;\n            const statement = factory.createVariableStatement(\n              /*modifiers*/\n              void 0,\n              factory.createVariableDeclarationList([\n                factory.createVariableDeclaration(\n                  varName,\n                  /*exclamationToken*/\n                  void 0,\n                  serializeTypeForDeclaration(\n                    context,\n                    /*declaration*/\n                    void 0,\n                    typeToSerialize,\n                    symbol\n                  )\n                )\n              ], flags)\n            );\n            addResult(\n              statement,\n              target && target.flags & 4 /* Property */ && target.escapedName === \"export=\" /* ExportEquals */ ? 128 /* Ambient */ : name === varName ? 32 /* Export */ : 0 /* None */\n            );\n          }\n          if (isExportAssignmentCompatibleSymbolName) {\n            context.approximateLength += varName.length + 10;\n            results.push(factory.createExportAssignment(\n              /*modifiers*/\n              void 0,\n              isExportEquals,\n              factory.createIdentifier(varName)\n            ));\n            return true;\n          } else if (name !== varName) {\n            serializeExportSpecifier(name, varName);\n            return true;\n          }\n          return false;\n        }\n      }\n      function isTypeRepresentableAsFunctionNamespaceMerge(typeToSerialize, hostSymbol) {\n        var _a2;\n        const ctxSrc = getSourceFileOfNode(context.enclosingDeclaration);\n        return getObjectFlags(typeToSerialize) & (16 /* Anonymous */ | 32 /* Mapped */) && !some((_a2 = typeToSerialize.symbol) == null ? void 0 : _a2.declarations, isTypeNode) && // If the type comes straight from a type node, we shouldn't try to break it up\n        !length(getIndexInfosOfType(typeToSerialize)) && !isClassInstanceSide(typeToSerialize) && // While a class instance is potentially representable as a NS, prefer printing a reference to the instance type and serializing the class\n        !!(length(filter(getPropertiesOfType(typeToSerialize), isNamespaceMember)) || length(getSignaturesOfType(typeToSerialize, 0 /* Call */))) && !length(getSignaturesOfType(typeToSerialize, 1 /* Construct */)) && // TODO: could probably serialize as function + ns + class, now that that's OK\n        !getDeclarationWithTypeAnnotation(hostSymbol, enclosingDeclaration) && !(typeToSerialize.symbol && some(typeToSerialize.symbol.declarations, (d) => getSourceFileOfNode(d) !== ctxSrc)) && !some(getPropertiesOfType(typeToSerialize), (p) => isLateBoundName(p.escapedName)) && !some(getPropertiesOfType(typeToSerialize), (p) => some(p.declarations, (d) => getSourceFileOfNode(d) !== ctxSrc)) && every(getPropertiesOfType(typeToSerialize), (p) => {\n          if (!isIdentifierText(symbolName(p), languageVersion)) {\n            return false;\n          }\n          if (!(p.flags & 98304 /* Accessor */)) {\n            return true;\n          }\n          return getNonMissingTypeOfSymbol(p) === getWriteTypeOfSymbol(p);\n        });\n      }\n      function makeSerializePropertySymbol(createProperty2, methodKind, useAccessors) {\n        return function serializePropertySymbol(p, isStatic2, baseType) {\n          var _a2, _b, _c, _d, _e, _f;\n          const modifierFlags = getDeclarationModifierFlagsFromSymbol(p);\n          const omitType = !!(modifierFlags & 2 /* Private */) && !isExpanding(context);\n          if (isStatic2 && p.flags & (788968 /* Type */ | 1920 /* Namespace */ | 2097152 /* Alias */)) {\n            return [];\n          }\n          if (p.flags & 4194304 /* Prototype */ || p.escapedName === \"constructor\" || baseType && getPropertyOfType(baseType, p.escapedName) && isReadonlySymbol(getPropertyOfType(baseType, p.escapedName)) === isReadonlySymbol(p) && (p.flags & 16777216 /* Optional */) === (getPropertyOfType(baseType, p.escapedName).flags & 16777216 /* Optional */) && isTypeIdenticalTo(getTypeOfSymbol(p), getTypeOfPropertyOfType(baseType, p.escapedName))) {\n            return [];\n          }\n          const flag = modifierFlags & ~1024 /* Async */ | (isStatic2 ? 256 /* Static */ : 0);\n          const name = getPropertyNameNodeForSymbol(p, context);\n          const firstPropertyLikeDecl = (_a2 = p.declarations) == null ? void 0 : _a2.find(or(isPropertyDeclaration, isAccessor, isVariableDeclaration, isPropertySignature, isBinaryExpression, isPropertyAccessExpression));\n          if (p.flags & 98304 /* Accessor */ && useAccessors) {\n            const result = [];\n            if (p.flags & 65536 /* SetAccessor */) {\n              const setter = p.declarations && forEach(p.declarations, (d) => {\n                if (d.kind === 179 /* SetAccessor */) {\n                  return d;\n                }\n                if (isCallExpression(d) && isBindableObjectDefinePropertyCall(d)) {\n                  return forEach(d.arguments[2].properties, (propDecl) => {\n                    const id = getNameOfDeclaration(propDecl);\n                    if (!!id && isIdentifier(id) && idText(id) === \"set\") {\n                      return propDecl;\n                    }\n                  });\n                }\n              });\n              Debug.assert(!!setter);\n              const paramSymbol = isFunctionLikeDeclaration(setter) ? getSignatureFromDeclaration(setter).parameters[0] : void 0;\n              const setterDeclaration = (_b = p.declarations) == null ? void 0 : _b.find(isSetAccessor);\n              context.approximateLength += modifiersLength(flag) + 7 + (paramSymbol ? symbolName(paramSymbol).length : 5) + (omitType ? 0 : 2);\n              result.push(setTextRange2(\n                context,\n                factory.createSetAccessorDeclaration(\n                  factory.createModifiersFromModifierFlags(flag),\n                  name,\n                  [factory.createParameterDeclaration(\n                    /*modifiers*/\n                    void 0,\n                    /*dotDotDotToken*/\n                    void 0,\n                    paramSymbol ? parameterToParameterDeclarationName(paramSymbol, getEffectiveParameterDeclaration(paramSymbol), context) : \"value\",\n                    /*questionToken*/\n                    void 0,\n                    omitType ? void 0 : serializeTypeForDeclaration(context, setterDeclaration, getWriteTypeOfSymbol(p), p)\n                  )],\n                  /*body*/\n                  void 0\n                ),\n                setterDeclaration ?? firstPropertyLikeDecl\n              ));\n            }\n            if (p.flags & 32768 /* GetAccessor */) {\n              const getterDeclaration = (_c = p.declarations) == null ? void 0 : _c.find(isGetAccessor);\n              context.approximateLength += modifiersLength(flag) + 8 + (omitType ? 0 : 2);\n              result.push(setTextRange2(\n                context,\n                factory.createGetAccessorDeclaration(\n                  factory.createModifiersFromModifierFlags(flag),\n                  name,\n                  [],\n                  omitType ? void 0 : serializeTypeForDeclaration(context, getterDeclaration, getTypeOfSymbol(p), p),\n                  /*body*/\n                  void 0\n                ),\n                getterDeclaration ?? firstPropertyLikeDecl\n              ));\n            }\n            return result;\n          } else if (p.flags & (4 /* Property */ | 3 /* Variable */ | 98304 /* Accessor */)) {\n            const modifierFlags2 = (isReadonlySymbol(p) ? 8 /* Readonly */ : 0) | flag;\n            context.approximateLength += 2 + (omitType ? 0 : 2) + modifiersLength(modifierFlags2);\n            return setTextRange2(\n              context,\n              createProperty2(\n                factory.createModifiersFromModifierFlags(modifierFlags2),\n                name,\n                p.flags & 16777216 /* Optional */ ? factory.createToken(58 /* QuestionToken */) : void 0,\n                omitType ? void 0 : serializeTypeForDeclaration(context, (_d = p.declarations) == null ? void 0 : _d.find(isSetAccessorDeclaration), getWriteTypeOfSymbol(p), p),\n                // TODO: https://github.com/microsoft/TypeScript/pull/32372#discussion_r328386357\n                // interface members can't have initializers, however class members _can_\n                /*initializer*/\n                void 0\n              ),\n              ((_e = p.declarations) == null ? void 0 : _e.find(or(isPropertyDeclaration, isVariableDeclaration))) || firstPropertyLikeDecl\n            );\n          }\n          if (p.flags & (8192 /* Method */ | 16 /* Function */)) {\n            const type = getTypeOfSymbol(p);\n            const signatures = getSignaturesOfType(type, 0 /* Call */);\n            if (omitType) {\n              const modifierFlags2 = (isReadonlySymbol(p) ? 8 /* Readonly */ : 0) | flag;\n              context.approximateLength += 1 + modifiersLength(modifierFlags2);\n              return setTextRange2(\n                context,\n                createProperty2(\n                  factory.createModifiersFromModifierFlags(modifierFlags2),\n                  name,\n                  p.flags & 16777216 /* Optional */ ? factory.createToken(58 /* QuestionToken */) : void 0,\n                  /*type*/\n                  void 0,\n                  /*initializer*/\n                  void 0\n                ),\n                ((_f = p.declarations) == null ? void 0 : _f.find(isFunctionLikeDeclaration)) || signatures[0] && signatures[0].declaration || p.declarations && p.declarations[0]\n              );\n            }\n            const results2 = [];\n            for (const sig of signatures) {\n              context.approximateLength += 1;\n              const decl = signatureToSignatureDeclarationHelper(\n                sig,\n                methodKind,\n                context,\n                {\n                  name,\n                  questionToken: p.flags & 16777216 /* Optional */ ? factory.createToken(58 /* QuestionToken */) : void 0,\n                  modifiers: flag ? factory.createModifiersFromModifierFlags(flag) : void 0\n                }\n              );\n              const location = sig.declaration && isPrototypePropertyAssignment(sig.declaration.parent) ? sig.declaration.parent : sig.declaration;\n              results2.push(setTextRange2(context, decl, location));\n            }\n            return results2;\n          }\n          return Debug.fail(`Unhandled class member kind! ${p.__debugFlags || p.flags}`);\n        };\n      }\n      function modifiersLength(flags) {\n        let result = 0;\n        if (flags & 32 /* Export */) result += 7;\n        if (flags & 128 /* Ambient */) result += 8;\n        if (flags & 2048 /* Default */) result += 8;\n        if (flags & 4096 /* Const */) result += 6;\n        if (flags & 1 /* Public */) result += 7;\n        if (flags & 2 /* Private */) result += 8;\n        if (flags & 4 /* Protected */) result += 10;\n        if (flags & 64 /* Abstract */) result += 9;\n        if (flags & 256 /* Static */) result += 7;\n        if (flags & 16 /* Override */) result += 9;\n        if (flags & 8 /* Readonly */) result += 9;\n        if (flags & 512 /* Accessor */) result += 9;\n        if (flags & 1024 /* Async */) result += 6;\n        if (flags & 8192 /* In */) result += 3;\n        if (flags & 16384 /* Out */) result += 4;\n        return result;\n      }\n      function serializePropertySymbolForInterface(p, baseType) {\n        return serializePropertySymbolForInterfaceWorker(\n          p,\n          /*isStatic*/\n          false,\n          baseType\n        );\n      }\n      function serializeSignatures(kind, input, baseType, outputKind) {\n        const signatures = getSignaturesOfType(input, kind);\n        if (kind === 1 /* Construct */) {\n          if (!baseType && every(signatures, (s) => length(s.parameters) === 0)) {\n            return [];\n          }\n          if (baseType) {\n            const baseSigs = getSignaturesOfType(baseType, 1 /* Construct */);\n            if (!length(baseSigs) && every(signatures, (s) => length(s.parameters) === 0)) {\n              return [];\n            }\n            if (baseSigs.length === signatures.length) {\n              let failed2 = false;\n              for (let i = 0; i < baseSigs.length; i++) {\n                if (!compareSignaturesIdentical(\n                  signatures[i],\n                  baseSigs[i],\n                  /*partialMatch*/\n                  false,\n                  /*ignoreThisTypes*/\n                  false,\n                  /*ignoreReturnTypes*/\n                  true,\n                  compareTypesIdentical\n                )) {\n                  failed2 = true;\n                  break;\n                }\n              }\n              if (!failed2) {\n                return [];\n              }\n            }\n          }\n          let privateProtected = 0;\n          for (const s of signatures) {\n            if (s.declaration) {\n              privateProtected |= getSelectedEffectiveModifierFlags(s.declaration, 2 /* Private */ | 4 /* Protected */);\n            }\n          }\n          if (privateProtected) {\n            return [setTextRange2(\n              context,\n              factory.createConstructorDeclaration(\n                factory.createModifiersFromModifierFlags(privateProtected),\n                /*parameters*/\n                [],\n                /*body*/\n                void 0\n              ),\n              signatures[0].declaration\n            )];\n          }\n        }\n        const results2 = [];\n        for (const sig of signatures) {\n          context.approximateLength += 1;\n          const decl = signatureToSignatureDeclarationHelper(sig, outputKind, context);\n          results2.push(setTextRange2(context, decl, sig.declaration));\n        }\n        return results2;\n      }\n      function serializeIndexSignatures(input, baseType) {\n        const results2 = [];\n        for (const info of getIndexInfosOfType(input)) {\n          if (baseType) {\n            const baseInfo = getIndexInfoOfType(baseType, info.keyType);\n            if (baseInfo) {\n              if (isTypeIdenticalTo(info.type, baseInfo.type)) {\n                continue;\n              }\n            }\n          }\n          results2.push(indexInfoToIndexSignatureDeclarationHelper(\n            info,\n            context,\n            /*typeNode*/\n            void 0\n          ));\n        }\n        return results2;\n      }\n      function serializeBaseType(t, staticType, rootName) {\n        const ref = trySerializeAsTypeReference(t, 111551 /* Value */);\n        if (ref) {\n          return ref;\n        }\n        const tempName = getUnusedName(`${rootName}_base`);\n        const statement = factory.createVariableStatement(\n          /*modifiers*/\n          void 0,\n          factory.createVariableDeclarationList([\n            factory.createVariableDeclaration(\n              tempName,\n              /*exclamationToken*/\n              void 0,\n              typeToTypeNodeHelper(staticType, context)\n            )\n          ], 2 /* Const */)\n        );\n        addResult(statement, 0 /* None */);\n        return factory.createExpressionWithTypeArguments(\n          factory.createIdentifier(tempName),\n          /*typeArguments*/\n          void 0\n        );\n      }\n      function trySerializeAsTypeReference(t, flags) {\n        let typeArgs;\n        let reference;\n        if (t.target && isSymbolAccessibleByFlags(t.target.symbol, enclosingDeclaration, flags)) {\n          typeArgs = map(getTypeArguments(t), (t2) => typeToTypeNodeHelper(t2, context));\n          reference = symbolToExpression(t.target.symbol, context, 788968 /* Type */);\n        } else if (t.symbol && isSymbolAccessibleByFlags(t.symbol, enclosingDeclaration, flags)) {\n          reference = symbolToExpression(t.symbol, context, 788968 /* Type */);\n        }\n        if (reference) {\n          return factory.createExpressionWithTypeArguments(reference, typeArgs);\n        }\n      }\n      function serializeImplementedType(t) {\n        const ref = trySerializeAsTypeReference(t, 788968 /* Type */);\n        if (ref) {\n          return ref;\n        }\n        if (t.symbol) {\n          return factory.createExpressionWithTypeArguments(\n            symbolToExpression(t.symbol, context, 788968 /* Type */),\n            /*typeArguments*/\n            void 0\n          );\n        }\n      }\n      function getUnusedName(input, symbol) {\n        var _a2, _b;\n        const id = symbol ? getSymbolId(symbol) : void 0;\n        if (id) {\n          if (context.remappedSymbolNames.has(id)) {\n            return context.remappedSymbolNames.get(id);\n          }\n        }\n        if (symbol) {\n          input = getNameCandidateWorker(symbol, input);\n        }\n        let i = 0;\n        const original = input;\n        while ((_a2 = context.usedSymbolNames) == null ? void 0 : _a2.has(input)) {\n          i++;\n          input = `${original}_${i}`;\n        }\n        (_b = context.usedSymbolNames) == null ? void 0 : _b.add(input);\n        if (id) {\n          context.remappedSymbolNames.set(id, input);\n        }\n        return input;\n      }\n      function getNameCandidateWorker(symbol, localName) {\n        if (localName === \"default\" /* Default */ || localName === \"__class\" /* Class */ || localName === \"__function\" /* Function */) {\n          const restoreFlags = saveRestoreFlags(context);\n          context.flags |= 16777216 /* InInitialEntityName */;\n          const nameCandidate = getNameOfSymbolAsWritten(symbol, context);\n          restoreFlags();\n          localName = nameCandidate.length > 0 && isSingleOrDoubleQuote(nameCandidate.charCodeAt(0)) ? stripQuotes(nameCandidate) : nameCandidate;\n        }\n        if (localName === \"default\" /* Default */) {\n          localName = \"_default\";\n        } else if (localName === \"export=\" /* ExportEquals */) {\n          localName = \"_exports\";\n        }\n        localName = isIdentifierText(localName, languageVersion) && !isStringANonContextualKeyword(localName) ? localName : \"_\" + localName.replace(/[^a-z0-9]/gi, \"_\");\n        return localName;\n      }\n      function getInternalSymbolName(symbol, localName) {\n        const id = getSymbolId(symbol);\n        if (context.remappedSymbolNames.has(id)) {\n          return context.remappedSymbolNames.get(id);\n        }\n        localName = getNameCandidateWorker(symbol, localName);\n        context.remappedSymbolNames.set(id, localName);\n        return localName;\n      }\n    }\n    function isExpanding(context) {\n      return context.maxExpansionDepth !== -1;\n    }\n    function isHashPrivate(s) {\n      return !!s.valueDeclaration && isNamedDeclaration(s.valueDeclaration) && isPrivateIdentifier(s.valueDeclaration.name);\n    }\n    function getClonedHashPrivateName(s) {\n      if (s.valueDeclaration && isNamedDeclaration(s.valueDeclaration) && isPrivateIdentifier(s.valueDeclaration.name)) {\n        return factory.cloneNode(s.valueDeclaration.name);\n      }\n      return void 0;\n    }\n  }\n  function isLibType(type) {\n    var _a;\n    const symbol = (getObjectFlags(type) & 4 /* Reference */) !== 0 ? type.target.symbol : type.symbol;\n    return isTupleType(type) || !!((_a = symbol == null ? void 0 : symbol.declarations) == null ? void 0 : _a.some((decl) => host.isSourceFileDefaultLibrary(getSourceFileOfNode(decl))));\n  }\n  function typePredicateToString(typePredicate, enclosingDeclaration, flags = 16384 /* UseAliasDefinedOutsideCurrentScope */, writer) {\n    return writer ? typePredicateToStringWorker(writer).getText() : usingSingleLineStringWriter(typePredicateToStringWorker);\n    function typePredicateToStringWorker(writer2) {\n      const nodeBuilderFlags = toNodeBuilderFlags(flags) | 70221824 /* IgnoreErrors */ | 512 /* WriteTypeParametersInQualifiedName */;\n      const predicate = nodeBuilder.typePredicateToTypePredicateNode(typePredicate, enclosingDeclaration, nodeBuilderFlags);\n      const printer = createPrinterWithRemoveComments();\n      const sourceFile = enclosingDeclaration && getSourceFileOfNode(enclosingDeclaration);\n      printer.writeNode(\n        4 /* Unspecified */,\n        predicate,\n        /*sourceFile*/\n        sourceFile,\n        writer2\n      );\n      return writer2;\n    }\n  }\n  function formatUnionTypes(types, expandingEnum) {\n    const result = [];\n    let flags = 0;\n    for (let i = 0; i < types.length; i++) {\n      const t = types[i];\n      flags |= t.flags;\n      if (!(t.flags & 98304 /* Nullable */)) {\n        if (t.flags & 512 /* BooleanLiteral */ || !expandingEnum && t.flags | 1056 /* EnumLike */) {\n          const baseType = t.flags & 512 /* BooleanLiteral */ ? booleanType : getBaseTypeOfEnumLikeType(t);\n          if (baseType.flags & 1048576 /* Union */) {\n            const count = baseType.types.length;\n            if (i + count <= types.length && getRegularTypeOfLiteralType(types[i + count - 1]) === getRegularTypeOfLiteralType(baseType.types[count - 1])) {\n              result.push(baseType);\n              i += count - 1;\n              continue;\n            }\n          }\n        }\n        result.push(t);\n      }\n    }\n    if (flags & 65536 /* Null */) result.push(nullType);\n    if (flags & 32768 /* Undefined */) result.push(undefinedType);\n    return result || types;\n  }\n  function visibilityToString(flags) {\n    if (flags === 2 /* Private */) {\n      return \"private\";\n    }\n    if (flags === 4 /* Protected */) {\n      return \"protected\";\n    }\n    return \"public\";\n  }\n  function getTypeAliasForTypeLiteral(type) {\n    if (type.symbol && type.symbol.flags & 2048 /* TypeLiteral */ && type.symbol.declarations) {\n      const node = walkUpParenthesizedTypes(type.symbol.declarations[0].parent);\n      if (isTypeAliasDeclaration(node)) {\n        return getSymbolOfDeclaration(node);\n      }\n    }\n    return void 0;\n  }\n  function isTopLevelInExternalModuleAugmentation(node) {\n    return node && node.parent && node.parent.kind === 269 /* ModuleBlock */ && isExternalModuleAugmentation(node.parent.parent);\n  }\n  function isDefaultBindingContext(location) {\n    return location.kind === 308 /* SourceFile */ || isAmbientModule(location);\n  }\n  function getNameOfSymbolFromNameType(symbol, context) {\n    const nameType = getSymbolLinks(symbol).nameType;\n    if (nameType) {\n      if (nameType.flags & 384 /* StringOrNumberLiteral */) {\n        const name = \"\" + nameType.value;\n        if (!isIdentifierText(name, getEmitScriptTarget(compilerOptions)) && !isNumericLiteralName(name)) {\n          return `\"${escapeString(name, 34 /* doubleQuote */)}\"`;\n        }\n        if (isNumericLiteralName(name) && startsWith(name, \"-\")) {\n          return `[${name}]`;\n        }\n        return name;\n      }\n      if (nameType.flags & 8192 /* UniqueESSymbol */) {\n        return `[${getNameOfSymbolAsWritten(nameType.symbol, context)}]`;\n      }\n    }\n  }\n  function getNameOfSymbolAsWritten(symbol, context) {\n    var _a;\n    if ((_a = context == null ? void 0 : context.remappedSymbolReferences) == null ? void 0 : _a.has(getSymbolId(symbol))) {\n      symbol = context.remappedSymbolReferences.get(getSymbolId(symbol));\n    }\n    if (context && symbol.escapedName === \"default\" /* Default */ && !(context.flags & 16384 /* UseAliasDefinedOutsideCurrentScope */) && // If it's not the first part of an entity name, it must print as `default`\n    (!(context.flags & 16777216 /* InInitialEntityName */) || // if the symbol is synthesized, it will only be referenced externally it must print as `default`\n    !symbol.declarations || // if not in the same binding context (source file, module declaration), it must print as `default`\n    context.enclosingDeclaration && findAncestor(symbol.declarations[0], isDefaultBindingContext) !== findAncestor(context.enclosingDeclaration, isDefaultBindingContext))) {\n      return \"default\";\n    }\n    if (symbol.declarations && symbol.declarations.length) {\n      let declaration = firstDefined(symbol.declarations, (d) => getNameOfDeclaration(d) ? d : void 0);\n      const name2 = declaration && getNameOfDeclaration(declaration);\n      if (declaration && name2) {\n        if (isCallExpression(declaration) && isBindableObjectDefinePropertyCall(declaration)) {\n          return symbolName(symbol);\n        }\n        if (isComputedPropertyName(name2) && !(getCheckFlags(symbol) & 4096 /* Late */)) {\n          const nameType = getSymbolLinks(symbol).nameType;\n          if (nameType && nameType.flags & 384 /* StringOrNumberLiteral */) {\n            const result = getNameOfSymbolFromNameType(symbol, context);\n            if (result !== void 0) {\n              return result;\n            }\n          }\n        }\n        return declarationNameToString(name2);\n      }\n      if (!declaration) {\n        declaration = symbol.declarations[0];\n      }\n      if (declaration.parent && declaration.parent.kind === 261 /* VariableDeclaration */) {\n        return declarationNameToString(declaration.parent.name);\n      }\n      switch (declaration.kind) {\n        case 232 /* ClassExpression */:\n        case 219 /* FunctionExpression */:\n        case 220 /* ArrowFunction */:\n          if (context && !context.encounteredError && !(context.flags & 131072 /* AllowAnonymousIdentifier */)) {\n            context.encounteredError = true;\n          }\n          return declaration.kind === 232 /* ClassExpression */ ? \"(Anonymous class)\" : \"(Anonymous function)\";\n      }\n    }\n    const name = getNameOfSymbolFromNameType(symbol, context);\n    return name !== void 0 ? name : symbolName(symbol);\n  }\n  function isDeclarationVisible(node) {\n    if (node) {\n      const links = getNodeLinks(node);\n      if (links.isVisible === void 0) {\n        links.isVisible = !!determineIfDeclarationIsVisible();\n      }\n      return links.isVisible;\n    }\n    return false;\n    function determineIfDeclarationIsVisible() {\n      switch (node.kind) {\n        case 339 /* JSDocCallbackTag */:\n        case 347 /* JSDocTypedefTag */:\n        case 341 /* JSDocEnumTag */:\n          return !!(node.parent && node.parent.parent && node.parent.parent.parent && isSourceFile(node.parent.parent.parent));\n        case 209 /* BindingElement */:\n          return isDeclarationVisible(node.parent.parent);\n        case 261 /* VariableDeclaration */:\n          if (isBindingPattern(node.name) && !node.name.elements.length) {\n            return false;\n          }\n        // falls through\n        case 268 /* ModuleDeclaration */:\n        case 264 /* ClassDeclaration */:\n        case 265 /* InterfaceDeclaration */:\n        case 266 /* TypeAliasDeclaration */:\n        case 263 /* FunctionDeclaration */:\n        case 267 /* EnumDeclaration */:\n        case 272 /* ImportEqualsDeclaration */:\n          if (isExternalModuleAugmentation(node)) {\n            return true;\n          }\n          const parent2 = getDeclarationContainer(node);\n          if (!(getCombinedModifierFlagsCached(node) & 32 /* Export */) && !(node.kind !== 272 /* ImportEqualsDeclaration */ && parent2.kind !== 308 /* SourceFile */ && parent2.flags & 33554432 /* Ambient */)) {\n            return isGlobalSourceFile(parent2);\n          }\n          return isDeclarationVisible(parent2);\n        case 173 /* PropertyDeclaration */:\n        case 172 /* PropertySignature */:\n        case 178 /* GetAccessor */:\n        case 179 /* SetAccessor */:\n        case 175 /* MethodDeclaration */:\n        case 174 /* MethodSignature */:\n          if (hasEffectiveModifier(node, 2 /* Private */ | 4 /* Protected */)) {\n            return false;\n          }\n        // Public properties/methods are visible if its parents are visible, so:\n        // falls through\n        case 177 /* Constructor */:\n        case 181 /* ConstructSignature */:\n        case 180 /* CallSignature */:\n        case 182 /* IndexSignature */:\n        case 170 /* Parameter */:\n        case 269 /* ModuleBlock */:\n        case 185 /* FunctionType */:\n        case 186 /* ConstructorType */:\n        case 188 /* TypeLiteral */:\n        case 184 /* TypeReference */:\n        case 189 /* ArrayType */:\n        case 190 /* TupleType */:\n        case 193 /* UnionType */:\n        case 194 /* IntersectionType */:\n        case 197 /* ParenthesizedType */:\n        case 203 /* NamedTupleMember */:\n          return isDeclarationVisible(node.parent);\n        // Default binding, import specifier and namespace import is visible\n        // only on demand so by default it is not visible\n        case 274 /* ImportClause */:\n        case 275 /* NamespaceImport */:\n        case 277 /* ImportSpecifier */:\n          return false;\n        // Type parameters are always visible\n        case 169 /* TypeParameter */:\n        // Source file and namespace export are always visible\n        // falls through\n        case 308 /* SourceFile */:\n        case 271 /* NamespaceExportDeclaration */:\n          return true;\n        // Export assignments do not create name bindings outside the module\n        case 278 /* ExportAssignment */:\n          return false;\n        default:\n          return false;\n      }\n    }\n  }\n  function collectLinkedAliases(node, setVisibility) {\n    let exportSymbol;\n    if (node.kind !== 11 /* StringLiteral */ && node.parent && node.parent.kind === 278 /* ExportAssignment */) {\n      exportSymbol = resolveName(\n        node,\n        node,\n        111551 /* Value */ | 788968 /* Type */ | 1920 /* Namespace */ | 2097152 /* Alias */,\n        /*nameNotFoundMessage*/\n        void 0,\n        /*isUse*/\n        false\n      );\n    } else if (node.parent.kind === 282 /* ExportSpecifier */) {\n      exportSymbol = getTargetOfExportSpecifier(node.parent, 111551 /* Value */ | 788968 /* Type */ | 1920 /* Namespace */ | 2097152 /* Alias */);\n    }\n    let result;\n    let visited;\n    if (exportSymbol) {\n      visited = /* @__PURE__ */ new Set();\n      visited.add(getSymbolId(exportSymbol));\n      buildVisibleNodeList(exportSymbol.declarations);\n    }\n    return result;\n    function buildVisibleNodeList(declarations) {\n      forEach(declarations, (declaration) => {\n        const resultNode = getAnyImportSyntax(declaration) || declaration;\n        if (setVisibility) {\n          getNodeLinks(declaration).isVisible = true;\n        } else {\n          result = result || [];\n          pushIfUnique(result, resultNode);\n        }\n        if (isInternalModuleImportEqualsDeclaration(declaration)) {\n          const internalModuleReference = declaration.moduleReference;\n          const firstIdentifier = getFirstIdentifier(internalModuleReference);\n          const importSymbol = resolveName(\n            declaration,\n            firstIdentifier.escapedText,\n            111551 /* Value */ | 788968 /* Type */ | 1920 /* Namespace */,\n            /*nameNotFoundMessage*/\n            void 0,\n            /*isUse*/\n            false\n          );\n          if (importSymbol && visited) {\n            if (tryAddToSet(visited, getSymbolId(importSymbol))) {\n              buildVisibleNodeList(importSymbol.declarations);\n            }\n          }\n        }\n      });\n    }\n  }\n  function pushTypeResolution(target, propertyName) {\n    const resolutionCycleStartIndex = findResolutionCycleStartIndex(target, propertyName);\n    if (resolutionCycleStartIndex >= 0) {\n      const { length: length2 } = resolutionTargets;\n      for (let i = resolutionCycleStartIndex; i < length2; i++) {\n        resolutionResults[i] = false;\n      }\n      return false;\n    }\n    resolutionTargets.push(target);\n    resolutionResults.push(\n      /*items*/\n      true\n    );\n    resolutionPropertyNames.push(propertyName);\n    return true;\n  }\n  function findResolutionCycleStartIndex(target, propertyName) {\n    for (let i = resolutionTargets.length - 1; i >= resolutionStart; i--) {\n      if (resolutionTargetHasProperty(resolutionTargets[i], resolutionPropertyNames[i])) {\n        return -1;\n      }\n      if (resolutionTargets[i] === target && resolutionPropertyNames[i] === propertyName) {\n        return i;\n      }\n    }\n    return -1;\n  }\n  function resolutionTargetHasProperty(target, propertyName) {\n    switch (propertyName) {\n      case 0 /* Type */:\n        return !!getSymbolLinks(target).type;\n      case 2 /* DeclaredType */:\n        return !!getSymbolLinks(target).declaredType;\n      case 1 /* ResolvedBaseConstructorType */:\n        return !!target.resolvedBaseConstructorType;\n      case 3 /* ResolvedReturnType */:\n        return !!target.resolvedReturnType;\n      case 4 /* ImmediateBaseConstraint */:\n        return !!target.immediateBaseConstraint;\n      case 5 /* ResolvedTypeArguments */:\n        return !!target.resolvedTypeArguments;\n      case 6 /* ResolvedBaseTypes */:\n        return !!target.baseTypesResolved;\n      case 7 /* WriteType */:\n        return !!getSymbolLinks(target).writeType;\n      case 8 /* ParameterInitializerContainsUndefined */:\n        return getNodeLinks(target).parameterInitializerContainsUndefined !== void 0;\n    }\n    return Debug.assertNever(propertyName);\n  }\n  function popTypeResolution() {\n    resolutionTargets.pop();\n    resolutionPropertyNames.pop();\n    return resolutionResults.pop();\n  }\n  function getDeclarationContainer(node) {\n    return findAncestor(getRootDeclaration(node), (node2) => {\n      switch (node2.kind) {\n        case 261 /* VariableDeclaration */:\n        case 262 /* VariableDeclarationList */:\n        case 277 /* ImportSpecifier */:\n        case 276 /* NamedImports */:\n        case 275 /* NamespaceImport */:\n        case 274 /* ImportClause */:\n          return false;\n        default:\n          return true;\n      }\n    }).parent;\n  }\n  function getTypeOfPrototypeProperty(prototype) {\n    const classType = getDeclaredTypeOfSymbol(getParentOfSymbol(prototype));\n    return classType.typeParameters ? createTypeReference(classType, map(classType.typeParameters, (_) => anyType)) : classType;\n  }\n  function getTypeOfPropertyOfType(type, name) {\n    const prop = getPropertyOfType(type, name);\n    return prop ? getTypeOfSymbol(prop) : void 0;\n  }\n  function getTypeOfPropertyOrIndexSignatureOfType(type, name) {\n    var _a;\n    let propType;\n    return getTypeOfPropertyOfType(type, name) || (propType = (_a = getApplicableIndexInfoForName(type, name)) == null ? void 0 : _a.type) && addOptionality(\n      propType,\n      /*isProperty*/\n      true,\n      /*isOptional*/\n      true\n    );\n  }\n  function isTypeAny(type) {\n    return type && (type.flags & 1 /* Any */) !== 0;\n  }\n  function isErrorType(type) {\n    return type === errorType || !!(type.flags & 1 /* Any */ && type.aliasSymbol);\n  }\n  function getTypeForBindingElementParent(node, checkMode) {\n    if (checkMode !== 0 /* Normal */) {\n      return getTypeForVariableLikeDeclaration(\n        node,\n        /*includeOptionality*/\n        false,\n        checkMode\n      );\n    }\n    const symbol = getSymbolOfDeclaration(node);\n    return symbol && getSymbolLinks(symbol).type || getTypeForVariableLikeDeclaration(\n      node,\n      /*includeOptionality*/\n      false,\n      checkMode\n    );\n  }\n  function getRestType(source, properties, symbol) {\n    source = filterType(source, (t) => !(t.flags & 98304 /* Nullable */));\n    if (source.flags & 131072 /* Never */) {\n      return emptyObjectType;\n    }\n    if (source.flags & 1048576 /* Union */) {\n      return mapType(source, (t) => getRestType(t, properties, symbol));\n    }\n    let omitKeyType = getUnionType(map(properties, getLiteralTypeFromPropertyName));\n    const spreadableProperties = [];\n    const unspreadableToRestKeys = [];\n    for (const prop of getPropertiesOfType(source)) {\n      const literalTypeFromProperty = getLiteralTypeFromProperty(prop, 8576 /* StringOrNumberLiteralOrUnique */);\n      if (!isTypeAssignableTo(literalTypeFromProperty, omitKeyType) && !(getDeclarationModifierFlagsFromSymbol(prop) & (2 /* Private */ | 4 /* Protected */)) && isSpreadableProperty(prop)) {\n        spreadableProperties.push(prop);\n      } else {\n        unspreadableToRestKeys.push(literalTypeFromProperty);\n      }\n    }\n    if (isGenericObjectType(source) || isGenericIndexType(omitKeyType)) {\n      if (unspreadableToRestKeys.length) {\n        omitKeyType = getUnionType([omitKeyType, ...unspreadableToRestKeys]);\n      }\n      if (omitKeyType.flags & 131072 /* Never */) {\n        return source;\n      }\n      const omitTypeAlias = getGlobalOmitSymbol();\n      if (!omitTypeAlias) {\n        return errorType;\n      }\n      return getTypeAliasInstantiation(omitTypeAlias, [source, omitKeyType]);\n    }\n    const members = createSymbolTable();\n    for (const prop of spreadableProperties) {\n      members.set(prop.escapedName, getSpreadSymbol(\n        prop,\n        /*readonly*/\n        false\n      ));\n    }\n    const result = createAnonymousType(symbol, members, emptyArray, emptyArray, getIndexInfosOfType(source));\n    result.objectFlags |= 4194304 /* ObjectRestType */;\n    return result;\n  }\n  function isGenericTypeWithUndefinedConstraint(type) {\n    return !!(type.flags & 465829888 /* Instantiable */) && maybeTypeOfKind(getBaseConstraintOfType(type) || unknownType, 32768 /* Undefined */);\n  }\n  function getNonUndefinedType(type) {\n    const typeOrConstraint = someType(type, isGenericTypeWithUndefinedConstraint) ? mapType(type, (t) => t.flags & 465829888 /* Instantiable */ ? getBaseConstraintOrType(t) : t) : type;\n    return getTypeWithFacts(typeOrConstraint, 524288 /* NEUndefined */);\n  }\n  function getFlowTypeOfDestructuring(node, declaredType) {\n    const reference = getSyntheticElementAccess(node);\n    return reference ? getFlowTypeOfReference(reference, declaredType) : declaredType;\n  }\n  function getSyntheticElementAccess(node) {\n    const parentAccess = getParentElementAccess(node);\n    if (parentAccess && canHaveFlowNode(parentAccess) && parentAccess.flowNode) {\n      const propName = getDestructuringPropertyName(node);\n      if (propName) {\n        const literal = setTextRange(parseNodeFactory.createStringLiteral(propName), node);\n        const lhsExpr = isLeftHandSideExpression(parentAccess) ? parentAccess : parseNodeFactory.createParenthesizedExpression(parentAccess);\n        const result = setTextRange(parseNodeFactory.createElementAccessExpression(lhsExpr, literal), node);\n        setParent(literal, result);\n        setParent(result, node);\n        if (lhsExpr !== parentAccess) {\n          setParent(lhsExpr, result);\n        }\n        result.flowNode = parentAccess.flowNode;\n        return result;\n      }\n    }\n  }\n  function getParentElementAccess(node) {\n    const ancestor = node.parent.parent;\n    switch (ancestor.kind) {\n      case 209 /* BindingElement */:\n      case 304 /* PropertyAssignment */:\n        return getSyntheticElementAccess(ancestor);\n      case 210 /* ArrayLiteralExpression */:\n        return getSyntheticElementAccess(node.parent);\n      case 261 /* VariableDeclaration */:\n        return ancestor.initializer;\n      case 227 /* BinaryExpression */:\n        return ancestor.right;\n    }\n  }\n  function getDestructuringPropertyName(node) {\n    const parent2 = node.parent;\n    if (node.kind === 209 /* BindingElement */ && parent2.kind === 207 /* ObjectBindingPattern */) {\n      return getLiteralPropertyNameText(node.propertyName || node.name);\n    }\n    if (node.kind === 304 /* PropertyAssignment */ || node.kind === 305 /* ShorthandPropertyAssignment */) {\n      return getLiteralPropertyNameText(node.name);\n    }\n    return \"\" + parent2.elements.indexOf(node);\n  }\n  function getLiteralPropertyNameText(name) {\n    const type = getLiteralTypeFromPropertyName(name);\n    return type.flags & (128 /* StringLiteral */ | 256 /* NumberLiteral */) ? \"\" + type.value : void 0;\n  }\n  function getTypeForBindingElement(declaration) {\n    const checkMode = declaration.dotDotDotToken ? 32 /* RestBindingElement */ : 0 /* Normal */;\n    const parentType = getTypeForBindingElementParent(declaration.parent.parent, checkMode);\n    return parentType && getBindingElementTypeFromParentType(\n      declaration,\n      parentType,\n      /*noTupleBoundsCheck*/\n      false\n    );\n  }\n  function getBindingElementTypeFromParentType(declaration, parentType, noTupleBoundsCheck) {\n    if (isTypeAny(parentType)) {\n      return parentType;\n    }\n    const pattern = declaration.parent;\n    if (strictNullChecks && declaration.flags & 33554432 /* Ambient */ && isPartOfParameterDeclaration(declaration)) {\n      parentType = getNonNullableType(parentType);\n    } else if (strictNullChecks && pattern.parent.initializer && !hasTypeFacts(getTypeOfInitializer(pattern.parent.initializer), 65536 /* EQUndefined */)) {\n      parentType = getTypeWithFacts(parentType, 524288 /* NEUndefined */);\n    }\n    const accessFlags = 32 /* ExpressionPosition */ | (noTupleBoundsCheck || hasDefaultValue(declaration) ? 16 /* AllowMissing */ : 0);\n    let type;\n    if (pattern.kind === 207 /* ObjectBindingPattern */) {\n      if (declaration.dotDotDotToken) {\n        parentType = getReducedType(parentType);\n        if (parentType.flags & 2 /* Unknown */ || !isValidSpreadType(parentType)) {\n          error2(declaration, Diagnostics.Rest_types_may_only_be_created_from_object_types);\n          return errorType;\n        }\n        const literalMembers = [];\n        for (const element of pattern.elements) {\n          if (!element.dotDotDotToken) {\n            literalMembers.push(element.propertyName || element.name);\n          }\n        }\n        type = getRestType(parentType, literalMembers, declaration.symbol);\n      } else {\n        const name = declaration.propertyName || declaration.name;\n        const indexType = getLiteralTypeFromPropertyName(name);\n        const declaredType = getIndexedAccessType(parentType, indexType, accessFlags, name);\n        type = getFlowTypeOfDestructuring(declaration, declaredType);\n      }\n    } else {\n      const elementType = checkIteratedTypeOrElementType(65 /* Destructuring */ | (declaration.dotDotDotToken ? 0 : 128 /* PossiblyOutOfBounds */), parentType, undefinedType, pattern);\n      const index = pattern.elements.indexOf(declaration);\n      if (declaration.dotDotDotToken) {\n        const baseConstraint = mapType(parentType, (t) => t.flags & 58982400 /* InstantiableNonPrimitive */ ? getBaseConstraintOrType(t) : t);\n        type = everyType(baseConstraint, isTupleType) ? mapType(baseConstraint, (t) => sliceTupleType(t, index)) : createArrayType(elementType);\n      } else if (isArrayLikeType(parentType)) {\n        const indexType = getNumberLiteralType(index);\n        const declaredType = getIndexedAccessTypeOrUndefined(parentType, indexType, accessFlags, declaration.name) || errorType;\n        type = getFlowTypeOfDestructuring(declaration, declaredType);\n      } else {\n        type = elementType;\n      }\n    }\n    if (!declaration.initializer) {\n      return type;\n    }\n    if (getEffectiveTypeAnnotationNode(walkUpBindingElementsAndPatterns(declaration))) {\n      return strictNullChecks && !hasTypeFacts(checkDeclarationInitializer(declaration, 0 /* Normal */), 16777216 /* IsUndefined */) ? getNonUndefinedType(type) : type;\n    }\n    return widenTypeInferredFromInitializer(declaration, getUnionType([getNonUndefinedType(type), checkDeclarationInitializer(declaration, 0 /* Normal */)], 2 /* Subtype */));\n  }\n  function getTypeForDeclarationFromJSDocComment(declaration) {\n    const jsdocType = getJSDocType(declaration);\n    if (jsdocType) {\n      return getTypeFromTypeNode(jsdocType);\n    }\n    return void 0;\n  }\n  function isNullOrUndefined3(node) {\n    const expr = skipParentheses(\n      node,\n      /*excludeJSDocTypeAssertions*/\n      true\n    );\n    return expr.kind === 106 /* NullKeyword */ || expr.kind === 80 /* Identifier */ && getResolvedSymbol(expr) === undefinedSymbol;\n  }\n  function isEmptyArrayLiteral2(node) {\n    const expr = skipParentheses(\n      node,\n      /*excludeJSDocTypeAssertions*/\n      true\n    );\n    return expr.kind === 210 /* ArrayLiteralExpression */ && expr.elements.length === 0;\n  }\n  function addOptionality(type, isProperty = false, isOptional = true) {\n    return strictNullChecks && isOptional ? getOptionalType(type, isProperty) : type;\n  }\n  function getTypeForVariableLikeDeclaration(declaration, includeOptionality, checkMode) {\n    if (isVariableDeclaration(declaration) && declaration.parent.parent.kind === 250 /* ForInStatement */) {\n      const indexType = getIndexType(getNonNullableTypeIfNeeded(checkExpression(\n        declaration.parent.parent.expression,\n        /*checkMode*/\n        checkMode\n      )));\n      return indexType.flags & (262144 /* TypeParameter */ | 4194304 /* Index */) ? getExtractStringType(indexType) : stringType;\n    }\n    if (isVariableDeclaration(declaration) && declaration.parent.parent.kind === 251 /* ForOfStatement */) {\n      const forOfStatement = declaration.parent.parent;\n      return checkRightHandSideOfForOf(forOfStatement) || anyType;\n    }\n    if (isBindingPattern(declaration.parent)) {\n      return getTypeForBindingElement(declaration);\n    }\n    const isProperty = isPropertyDeclaration(declaration) && !hasAccessorModifier(declaration) || isPropertySignature(declaration) || isJSDocPropertyTag(declaration);\n    const isOptional = includeOptionality && isOptionalDeclaration(declaration);\n    const declaredType = tryGetTypeFromEffectiveTypeNode(declaration);\n    if (isCatchClauseVariableDeclarationOrBindingElement(declaration)) {\n      if (declaredType) {\n        return isTypeAny(declaredType) || declaredType === unknownType ? declaredType : errorType;\n      }\n      return useUnknownInCatchVariables ? unknownType : anyType;\n    }\n    if (declaredType) {\n      return addOptionality(declaredType, isProperty, isOptional);\n    }\n    if ((noImplicitAny || isInJSFile(declaration)) && isVariableDeclaration(declaration) && !isBindingPattern(declaration.name) && !(getCombinedModifierFlagsCached(declaration) & 32 /* Export */) && !(declaration.flags & 33554432 /* Ambient */)) {\n      if (!(getCombinedNodeFlagsCached(declaration) & 6 /* Constant */) && (!declaration.initializer || isNullOrUndefined3(declaration.initializer))) {\n        return autoType;\n      }\n      if (declaration.initializer && isEmptyArrayLiteral2(declaration.initializer)) {\n        return autoArrayType;\n      }\n    }\n    if (isParameter(declaration)) {\n      if (!declaration.symbol) {\n        return;\n      }\n      const func = declaration.parent;\n      if (func.kind === 179 /* SetAccessor */ && hasBindableName(func)) {\n        const getter = getDeclarationOfKind(getSymbolOfDeclaration(declaration.parent), 178 /* GetAccessor */);\n        if (getter) {\n          const getterSignature = getSignatureFromDeclaration(getter);\n          const thisParameter = getAccessorThisParameter(func);\n          if (thisParameter && declaration === thisParameter) {\n            Debug.assert(!thisParameter.type);\n            return getTypeOfSymbol(getterSignature.thisParameter);\n          }\n          return getReturnTypeOfSignature(getterSignature);\n        }\n      }\n      const parameterTypeOfTypeTag = getParameterTypeOfTypeTag(func, declaration);\n      if (parameterTypeOfTypeTag) return parameterTypeOfTypeTag;\n      const type = declaration.symbol.escapedName === \"this\" /* This */ ? getContextualThisParameterType(func) : getContextuallyTypedParameterType(declaration);\n      if (type) {\n        return addOptionality(\n          type,\n          /*isProperty*/\n          false,\n          isOptional\n        );\n      }\n    }\n    if (hasOnlyExpressionInitializer(declaration) && !!declaration.initializer) {\n      if (isInJSFile(declaration) && !isParameter(declaration)) {\n        const containerObjectType = getJSContainerObjectType(declaration, getSymbolOfDeclaration(declaration), getDeclaredExpandoInitializer(declaration));\n        if (containerObjectType) {\n          return containerObjectType;\n        }\n      }\n      const type = widenTypeInferredFromInitializer(declaration, checkDeclarationInitializer(declaration, checkMode));\n      return addOptionality(type, isProperty, isOptional);\n    }\n    if (isPropertyDeclaration(declaration) && (noImplicitAny || isInJSFile(declaration))) {\n      if (!hasStaticModifier(declaration)) {\n        const constructor = findConstructorDeclaration(declaration.parent);\n        const type = constructor ? getFlowTypeInConstructor(declaration.symbol, constructor) : getEffectiveModifierFlags(declaration) & 128 /* Ambient */ ? getTypeOfPropertyInBaseClass(declaration.symbol) : void 0;\n        return type && addOptionality(\n          type,\n          /*isProperty*/\n          true,\n          isOptional\n        );\n      } else {\n        const staticBlocks = filter(declaration.parent.members, isClassStaticBlockDeclaration);\n        const type = staticBlocks.length ? getFlowTypeInStaticBlocks(declaration.symbol, staticBlocks) : getEffectiveModifierFlags(declaration) & 128 /* Ambient */ ? getTypeOfPropertyInBaseClass(declaration.symbol) : void 0;\n        return type && addOptionality(\n          type,\n          /*isProperty*/\n          true,\n          isOptional\n        );\n      }\n    }\n    if (isJsxAttribute(declaration)) {\n      return trueType;\n    }\n    if (isBindingPattern(declaration.name)) {\n      return getTypeFromBindingPattern(\n        declaration.name,\n        /*includePatternInType*/\n        false,\n        /*reportErrors*/\n        true\n      );\n    }\n    return void 0;\n  }\n  function isConstructorDeclaredProperty(symbol) {\n    if (symbol.valueDeclaration && isBinaryExpression(symbol.valueDeclaration)) {\n      const links = getSymbolLinks(symbol);\n      if (links.isConstructorDeclaredProperty === void 0) {\n        links.isConstructorDeclaredProperty = false;\n        links.isConstructorDeclaredProperty = !!getDeclaringConstructor(symbol) && every(symbol.declarations, (declaration) => isBinaryExpression(declaration) && isPossiblyAliasedThisProperty(declaration) && (declaration.left.kind !== 213 /* ElementAccessExpression */ || isStringOrNumericLiteralLike(declaration.left.argumentExpression)) && !getAnnotatedTypeForAssignmentDeclaration(\n          /*declaredType*/\n          void 0,\n          declaration,\n          symbol,\n          declaration\n        ));\n      }\n      return links.isConstructorDeclaredProperty;\n    }\n    return false;\n  }\n  function isAutoTypedProperty(symbol) {\n    const declaration = symbol.valueDeclaration;\n    return declaration && isPropertyDeclaration(declaration) && !getEffectiveTypeAnnotationNode(declaration) && !declaration.initializer && (noImplicitAny || isInJSFile(declaration));\n  }\n  function getDeclaringConstructor(symbol) {\n    if (!symbol.declarations) {\n      return;\n    }\n    for (const declaration of symbol.declarations) {\n      const container = getThisContainer(\n        declaration,\n        /*includeArrowFunctions*/\n        false,\n        /*includeClassComputedPropertyName*/\n        false\n      );\n      if (container && (container.kind === 177 /* Constructor */ || isJSConstructor(container))) {\n        return container;\n      }\n    }\n  }\n  function getFlowTypeFromCommonJSExport(symbol) {\n    const file = getSourceFileOfNode(symbol.declarations[0]);\n    const accessName = unescapeLeadingUnderscores(symbol.escapedName);\n    const areAllModuleExports = symbol.declarations.every((d) => isInJSFile(d) && isAccessExpression(d) && isModuleExportsAccessExpression(d.expression));\n    const reference = areAllModuleExports ? factory.createPropertyAccessExpression(factory.createPropertyAccessExpression(factory.createIdentifier(\"module\"), factory.createIdentifier(\"exports\")), accessName) : factory.createPropertyAccessExpression(factory.createIdentifier(\"exports\"), accessName);\n    if (areAllModuleExports) {\n      setParent(reference.expression.expression, reference.expression);\n    }\n    setParent(reference.expression, reference);\n    setParent(reference, file);\n    reference.flowNode = file.endFlowNode;\n    return getFlowTypeOfReference(reference, autoType, undefinedType);\n  }\n  function getFlowTypeInStaticBlocks(symbol, staticBlocks) {\n    const accessName = startsWith(symbol.escapedName, \"__#\") ? factory.createPrivateIdentifier(symbol.escapedName.split(\"@\")[1]) : unescapeLeadingUnderscores(symbol.escapedName);\n    for (const staticBlock of staticBlocks) {\n      const reference = factory.createPropertyAccessExpression(factory.createThis(), accessName);\n      setParent(reference.expression, reference);\n      setParent(reference, staticBlock);\n      reference.flowNode = staticBlock.returnFlowNode;\n      const flowType = getFlowTypeOfProperty(reference, symbol);\n      if (noImplicitAny && (flowType === autoType || flowType === autoArrayType)) {\n        error2(symbol.valueDeclaration, Diagnostics.Member_0_implicitly_has_an_1_type, symbolToString(symbol), typeToString(flowType));\n      }\n      if (everyType(flowType, isNullableType)) {\n        continue;\n      }\n      return convertAutoToAny(flowType);\n    }\n  }\n  function getFlowTypeInConstructor(symbol, constructor) {\n    const accessName = startsWith(symbol.escapedName, \"__#\") ? factory.createPrivateIdentifier(symbol.escapedName.split(\"@\")[1]) : unescapeLeadingUnderscores(symbol.escapedName);\n    const reference = factory.createPropertyAccessExpression(factory.createThis(), accessName);\n    setParent(reference.expression, reference);\n    setParent(reference, constructor);\n    reference.flowNode = constructor.returnFlowNode;\n    const flowType = getFlowTypeOfProperty(reference, symbol);\n    if (noImplicitAny && (flowType === autoType || flowType === autoArrayType)) {\n      error2(symbol.valueDeclaration, Diagnostics.Member_0_implicitly_has_an_1_type, symbolToString(symbol), typeToString(flowType));\n    }\n    return everyType(flowType, isNullableType) ? void 0 : convertAutoToAny(flowType);\n  }\n  function getFlowTypeOfProperty(reference, prop) {\n    const initialType = (prop == null ? void 0 : prop.valueDeclaration) && (!isAutoTypedProperty(prop) || getEffectiveModifierFlags(prop.valueDeclaration) & 128 /* Ambient */) && getTypeOfPropertyInBaseClass(prop) || undefinedType;\n    return getFlowTypeOfReference(reference, autoType, initialType);\n  }\n  function getWidenedTypeForAssignmentDeclaration(symbol, resolvedSymbol) {\n    const container = getAssignedExpandoInitializer(symbol.valueDeclaration);\n    if (container) {\n      const tag = isInJSFile(container) ? getJSDocTypeTag(container) : void 0;\n      if (tag && tag.typeExpression) {\n        return getTypeFromTypeNode(tag.typeExpression);\n      }\n      const containerObjectType = symbol.valueDeclaration && getJSContainerObjectType(symbol.valueDeclaration, symbol, container);\n      return containerObjectType || getWidenedLiteralType(checkExpressionCached(container));\n    }\n    let type;\n    let definedInConstructor = false;\n    let definedInMethod = false;\n    if (isConstructorDeclaredProperty(symbol)) {\n      type = getFlowTypeInConstructor(symbol, getDeclaringConstructor(symbol));\n    }\n    if (!type) {\n      let types;\n      if (symbol.declarations) {\n        let jsdocType;\n        for (const declaration of symbol.declarations) {\n          const expression = isBinaryExpression(declaration) || isCallExpression(declaration) ? declaration : isAccessExpression(declaration) ? isBinaryExpression(declaration.parent) ? declaration.parent : declaration : void 0;\n          if (!expression) {\n            continue;\n          }\n          const kind = isAccessExpression(expression) ? getAssignmentDeclarationPropertyAccessKind(expression) : getAssignmentDeclarationKind(expression);\n          if (kind === 4 /* ThisProperty */ || isBinaryExpression(expression) && isPossiblyAliasedThisProperty(expression, kind)) {\n            if (isDeclarationInConstructor(expression)) {\n              definedInConstructor = true;\n            } else {\n              definedInMethod = true;\n            }\n          }\n          if (!isCallExpression(expression)) {\n            jsdocType = getAnnotatedTypeForAssignmentDeclaration(jsdocType, expression, symbol, declaration);\n          }\n          if (!jsdocType) {\n            (types || (types = [])).push(isBinaryExpression(expression) || isCallExpression(expression) ? getInitializerTypeFromAssignmentDeclaration(symbol, resolvedSymbol, expression, kind) : neverType);\n          }\n        }\n        type = jsdocType;\n      }\n      if (!type) {\n        if (!length(types)) {\n          return errorType;\n        }\n        let constructorTypes = definedInConstructor && symbol.declarations ? getConstructorDefinedThisAssignmentTypes(types, symbol.declarations) : void 0;\n        if (definedInMethod) {\n          const propType = getTypeOfPropertyInBaseClass(symbol);\n          if (propType) {\n            (constructorTypes || (constructorTypes = [])).push(propType);\n            definedInConstructor = true;\n          }\n        }\n        const sourceTypes = some(constructorTypes, (t) => !!(t.flags & ~98304 /* Nullable */)) ? constructorTypes : types;\n        type = getUnionType(sourceTypes);\n      }\n    }\n    const widened = getWidenedType(addOptionality(\n      type,\n      /*isProperty*/\n      false,\n      definedInMethod && !definedInConstructor\n    ));\n    if (symbol.valueDeclaration && isInJSFile(symbol.valueDeclaration) && filterType(widened, (t) => !!(t.flags & ~98304 /* Nullable */)) === neverType) {\n      reportImplicitAny(symbol.valueDeclaration, anyType);\n      return anyType;\n    }\n    return widened;\n  }\n  function getJSContainerObjectType(decl, symbol, init) {\n    var _a, _b;\n    if (!isInJSFile(decl) || !init || !isObjectLiteralExpression(init) || init.properties.length) {\n      return void 0;\n    }\n    const exports2 = createSymbolTable();\n    while (isBinaryExpression(decl) || isPropertyAccessExpression(decl)) {\n      const s2 = getSymbolOfNode(decl);\n      if ((_a = s2 == null ? void 0 : s2.exports) == null ? void 0 : _a.size) {\n        mergeSymbolTable(exports2, s2.exports);\n      }\n      decl = isBinaryExpression(decl) ? decl.parent : decl.parent.parent;\n    }\n    const s = getSymbolOfNode(decl);\n    if ((_b = s == null ? void 0 : s.exports) == null ? void 0 : _b.size) {\n      mergeSymbolTable(exports2, s.exports);\n    }\n    const type = createAnonymousType(symbol, exports2, emptyArray, emptyArray, emptyArray);\n    type.objectFlags |= 4096 /* JSLiteral */;\n    return type;\n  }\n  function getAnnotatedTypeForAssignmentDeclaration(declaredType, expression, symbol, declaration) {\n    var _a;\n    const typeNode = getEffectiveTypeAnnotationNode(expression.parent);\n    if (typeNode) {\n      const type = getWidenedType(getTypeFromTypeNode(typeNode));\n      if (!declaredType) {\n        return type;\n      } else if (!isErrorType(declaredType) && !isErrorType(type) && !isTypeIdenticalTo(declaredType, type)) {\n        errorNextVariableOrPropertyDeclarationMustHaveSameType(\n          /*firstDeclaration*/\n          void 0,\n          declaredType,\n          declaration,\n          type\n        );\n      }\n    }\n    if ((_a = symbol.parent) == null ? void 0 : _a.valueDeclaration) {\n      const possiblyAnnotatedSymbol = getFunctionExpressionParentSymbolOrSymbol(symbol.parent);\n      if (possiblyAnnotatedSymbol.valueDeclaration) {\n        const typeNode2 = getEffectiveTypeAnnotationNode(possiblyAnnotatedSymbol.valueDeclaration);\n        if (typeNode2) {\n          const annotationSymbol = getPropertyOfType(getTypeFromTypeNode(typeNode2), symbol.escapedName);\n          if (annotationSymbol) {\n            return getNonMissingTypeOfSymbol(annotationSymbol);\n          }\n        }\n      }\n    }\n    return declaredType;\n  }\n  function getInitializerTypeFromAssignmentDeclaration(symbol, resolvedSymbol, expression, kind) {\n    if (isCallExpression(expression)) {\n      if (resolvedSymbol) {\n        return getTypeOfSymbol(resolvedSymbol);\n      }\n      const objectLitType = checkExpressionCached(expression.arguments[2]);\n      const valueType = getTypeOfPropertyOfType(objectLitType, \"value\");\n      if (valueType) {\n        return valueType;\n      }\n      const getFunc = getTypeOfPropertyOfType(objectLitType, \"get\");\n      if (getFunc) {\n        const getSig = getSingleCallSignature(getFunc);\n        if (getSig) {\n          return getReturnTypeOfSignature(getSig);\n        }\n      }\n      const setFunc = getTypeOfPropertyOfType(objectLitType, \"set\");\n      if (setFunc) {\n        const setSig = getSingleCallSignature(setFunc);\n        if (setSig) {\n          return getTypeOfFirstParameterOfSignature(setSig);\n        }\n      }\n      return anyType;\n    }\n    if (containsSameNamedThisProperty(expression.left, expression.right)) {\n      return anyType;\n    }\n    const isDirectExport = kind === 1 /* ExportsProperty */ && (isPropertyAccessExpression(expression.left) || isElementAccessExpression(expression.left)) && (isModuleExportsAccessExpression(expression.left.expression) || isIdentifier(expression.left.expression) && isExportsIdentifier(expression.left.expression));\n    const type = resolvedSymbol ? getTypeOfSymbol(resolvedSymbol) : isDirectExport ? getRegularTypeOfLiteralType(checkExpressionCached(expression.right)) : getWidenedLiteralType(checkExpressionCached(expression.right));\n    if (type.flags & 524288 /* Object */ && kind === 2 /* ModuleExports */ && symbol.escapedName === \"export=\" /* ExportEquals */) {\n      const exportedType = resolveStructuredTypeMembers(type);\n      const members = createSymbolTable();\n      copyEntries(exportedType.members, members);\n      const initialSize = members.size;\n      if (resolvedSymbol && !resolvedSymbol.exports) {\n        resolvedSymbol.exports = createSymbolTable();\n      }\n      (resolvedSymbol || symbol).exports.forEach((s, name) => {\n        var _a;\n        const exportedMember = members.get(name);\n        if (exportedMember && exportedMember !== s && !(s.flags & 2097152 /* Alias */)) {\n          if (s.flags & 111551 /* Value */ && exportedMember.flags & 111551 /* Value */) {\n            if (s.valueDeclaration && exportedMember.valueDeclaration && getSourceFileOfNode(s.valueDeclaration) !== getSourceFileOfNode(exportedMember.valueDeclaration)) {\n              const unescapedName = unescapeLeadingUnderscores(s.escapedName);\n              const exportedMemberName = ((_a = tryCast(exportedMember.valueDeclaration, isNamedDeclaration)) == null ? void 0 : _a.name) || exportedMember.valueDeclaration;\n              addRelatedInfo(\n                error2(s.valueDeclaration, Diagnostics.Duplicate_identifier_0, unescapedName),\n                createDiagnosticForNode(exportedMemberName, Diagnostics._0_was_also_declared_here, unescapedName)\n              );\n              addRelatedInfo(\n                error2(exportedMemberName, Diagnostics.Duplicate_identifier_0, unescapedName),\n                createDiagnosticForNode(s.valueDeclaration, Diagnostics._0_was_also_declared_here, unescapedName)\n              );\n            }\n            const union = createSymbol(s.flags | exportedMember.flags, name);\n            union.links.type = getUnionType([getTypeOfSymbol(s), getTypeOfSymbol(exportedMember)]);\n            union.valueDeclaration = exportedMember.valueDeclaration;\n            union.declarations = concatenate(exportedMember.declarations, s.declarations);\n            members.set(name, union);\n          } else {\n            members.set(name, mergeSymbol(s, exportedMember));\n          }\n        } else {\n          members.set(name, s);\n        }\n      });\n      const result = createAnonymousType(\n        initialSize !== members.size ? void 0 : exportedType.symbol,\n        // Only set the type's symbol if it looks to be the same as the original type\n        members,\n        exportedType.callSignatures,\n        exportedType.constructSignatures,\n        exportedType.indexInfos\n      );\n      if (initialSize === members.size) {\n        if (type.aliasSymbol) {\n          result.aliasSymbol = type.aliasSymbol;\n          result.aliasTypeArguments = type.aliasTypeArguments;\n        }\n        if (getObjectFlags(type) & 4 /* Reference */) {\n          result.aliasSymbol = type.symbol;\n          const args = getTypeArguments(type);\n          result.aliasTypeArguments = length(args) ? args : void 0;\n        }\n      }\n      result.objectFlags |= getPropagatingFlagsOfTypes([type]) | getObjectFlags(type) & (4096 /* JSLiteral */ | 16384 /* ArrayLiteral */ | 128 /* ObjectLiteral */);\n      if (result.symbol && result.symbol.flags & 32 /* Class */ && type === getDeclaredTypeOfClassOrInterface(result.symbol)) {\n        result.objectFlags |= 16777216 /* IsClassInstanceClone */;\n      }\n      return result;\n    }\n    if (isEmptyArrayLiteralType(type)) {\n      reportImplicitAny(expression, anyArrayType);\n      return anyArrayType;\n    }\n    return type;\n  }\n  function containsSameNamedThisProperty(thisProperty, expression) {\n    return isPropertyAccessExpression(thisProperty) && thisProperty.expression.kind === 110 /* ThisKeyword */ && forEachChildRecursively(expression, (n) => isMatchingReference(thisProperty, n));\n  }\n  function isDeclarationInConstructor(expression) {\n    const thisContainer = getThisContainer(\n      expression,\n      /*includeArrowFunctions*/\n      false,\n      /*includeClassComputedPropertyName*/\n      false\n    );\n    return thisContainer.kind === 177 /* Constructor */ || thisContainer.kind === 263 /* FunctionDeclaration */ || thisContainer.kind === 219 /* FunctionExpression */ && !isPrototypePropertyAssignment(thisContainer.parent);\n  }\n  function getConstructorDefinedThisAssignmentTypes(types, declarations) {\n    Debug.assert(types.length === declarations.length);\n    return types.filter((_, i) => {\n      const declaration = declarations[i];\n      const expression = isBinaryExpression(declaration) ? declaration : isBinaryExpression(declaration.parent) ? declaration.parent : void 0;\n      return expression && isDeclarationInConstructor(expression);\n    });\n  }\n  function getTypeFromBindingElement(element, includePatternInType, reportErrors2) {\n    if (element.initializer) {\n      const contextualType = isBindingPattern(element.name) ? getTypeFromBindingPattern(\n        element.name,\n        /*includePatternInType*/\n        true,\n        /*reportErrors*/\n        false\n      ) : unknownType;\n      return addOptionality(getWidenedLiteralTypeForInitializer(element, checkDeclarationInitializer(element, 0 /* Normal */, contextualType)));\n    }\n    if (isBindingPattern(element.name)) {\n      return getTypeFromBindingPattern(element.name, includePatternInType, reportErrors2);\n    }\n    if (reportErrors2 && !declarationBelongsToPrivateAmbientMember(element)) {\n      reportImplicitAny(element, anyType);\n    }\n    return includePatternInType ? nonInferrableAnyType : anyType;\n  }\n  function getTypeFromObjectBindingPattern(pattern, includePatternInType, reportErrors2) {\n    const members = createSymbolTable();\n    let stringIndexInfo;\n    let objectFlags = 128 /* ObjectLiteral */ | 131072 /* ContainsObjectOrArrayLiteral */;\n    forEach(pattern.elements, (e) => {\n      const name = e.propertyName || e.name;\n      if (e.dotDotDotToken) {\n        stringIndexInfo = createIndexInfo(\n          stringType,\n          anyType,\n          /*isReadonly*/\n          false\n        );\n        return;\n      }\n      const exprType = getLiteralTypeFromPropertyName(name);\n      if (!isTypeUsableAsPropertyName(exprType)) {\n        objectFlags |= 512 /* ObjectLiteralPatternWithComputedProperties */;\n        return;\n      }\n      const text = getPropertyNameFromType(exprType);\n      const flags = 4 /* Property */ | (e.initializer ? 16777216 /* Optional */ : 0);\n      const symbol = createSymbol(flags, text);\n      symbol.links.type = getTypeFromBindingElement(e, includePatternInType, reportErrors2);\n      members.set(symbol.escapedName, symbol);\n    });\n    const result = createAnonymousType(\n      /*symbol*/\n      void 0,\n      members,\n      emptyArray,\n      emptyArray,\n      stringIndexInfo ? [stringIndexInfo] : emptyArray\n    );\n    result.objectFlags |= objectFlags;\n    if (includePatternInType) {\n      result.pattern = pattern;\n      result.objectFlags |= 131072 /* ContainsObjectOrArrayLiteral */;\n    }\n    return result;\n  }\n  function getTypeFromArrayBindingPattern(pattern, includePatternInType, reportErrors2) {\n    const elements = pattern.elements;\n    const lastElement = lastOrUndefined(elements);\n    const restElement = lastElement && lastElement.kind === 209 /* BindingElement */ && lastElement.dotDotDotToken ? lastElement : void 0;\n    if (elements.length === 0 || elements.length === 1 && restElement) {\n      return languageVersion >= 2 /* ES2015 */ ? createIterableType(anyType) : anyArrayType;\n    }\n    const elementTypes = map(elements, (e) => isOmittedExpression(e) ? anyType : getTypeFromBindingElement(e, includePatternInType, reportErrors2));\n    const minLength = findLastIndex(elements, (e) => !(e === restElement || isOmittedExpression(e) || hasDefaultValue(e)), elements.length - 1) + 1;\n    const elementFlags = map(elements, (e, i) => e === restElement ? 4 /* Rest */ : i >= minLength ? 2 /* Optional */ : 1 /* Required */);\n    let result = createTupleType(elementTypes, elementFlags);\n    if (includePatternInType) {\n      result = cloneTypeReference(result);\n      result.pattern = pattern;\n      result.objectFlags |= 131072 /* ContainsObjectOrArrayLiteral */;\n    }\n    return result;\n  }\n  function getTypeFromBindingPattern(pattern, includePatternInType = false, reportErrors2 = false) {\n    if (includePatternInType) contextualBindingPatterns.push(pattern);\n    const result = pattern.kind === 207 /* ObjectBindingPattern */ ? getTypeFromObjectBindingPattern(pattern, includePatternInType, reportErrors2) : getTypeFromArrayBindingPattern(pattern, includePatternInType, reportErrors2);\n    if (includePatternInType) contextualBindingPatterns.pop();\n    return result;\n  }\n  function getWidenedTypeForVariableLikeDeclaration(declaration, reportErrors2) {\n    return widenTypeForVariableLikeDeclaration(getTypeForVariableLikeDeclaration(\n      declaration,\n      /*includeOptionality*/\n      true,\n      0 /* Normal */\n    ), declaration, reportErrors2);\n  }\n  function getTypeFromImportAttributes(node) {\n    const links = getNodeLinks(node);\n    if (!links.resolvedType) {\n      const symbol = createSymbol(4096 /* ObjectLiteral */, \"__importAttributes\" /* ImportAttributes */);\n      const members = createSymbolTable();\n      forEach(node.elements, (attr) => {\n        const member = createSymbol(4 /* Property */, getNameFromImportAttribute(attr));\n        member.parent = symbol;\n        member.links.type = checkImportAttribute(attr);\n        member.links.target = member;\n        members.set(member.escapedName, member);\n      });\n      const type = createAnonymousType(symbol, members, emptyArray, emptyArray, emptyArray);\n      type.objectFlags |= 128 /* ObjectLiteral */ | 262144 /* NonInferrableType */;\n      links.resolvedType = type;\n    }\n    return links.resolvedType;\n  }\n  function isGlobalSymbolConstructor(node) {\n    const symbol = getSymbolOfNode(node);\n    const globalSymbol = getGlobalESSymbolConstructorTypeSymbol(\n      /*reportErrors*/\n      false\n    );\n    return globalSymbol && symbol && symbol === globalSymbol;\n  }\n  function widenTypeForVariableLikeDeclaration(type, declaration, reportErrors2) {\n    if (type) {\n      if (type.flags & 4096 /* ESSymbol */ && isGlobalSymbolConstructor(declaration.parent)) {\n        type = getESSymbolLikeTypeForNode(declaration);\n      }\n      if (reportErrors2) {\n        reportErrorsFromWidening(declaration, type);\n      }\n      if (type.flags & 8192 /* UniqueESSymbol */ && (isBindingElement(declaration) || !tryGetTypeFromEffectiveTypeNode(declaration)) && type.symbol !== getSymbolOfDeclaration(declaration)) {\n        type = esSymbolType;\n      }\n      return getWidenedType(type);\n    }\n    type = isParameter(declaration) && declaration.dotDotDotToken ? anyArrayType : anyType;\n    if (reportErrors2) {\n      if (!declarationBelongsToPrivateAmbientMember(declaration)) {\n        reportImplicitAny(declaration, type);\n      }\n    }\n    return type;\n  }\n  function declarationBelongsToPrivateAmbientMember(declaration) {\n    const root = getRootDeclaration(declaration);\n    const memberDeclaration = root.kind === 170 /* Parameter */ ? root.parent : root;\n    return isPrivateWithinAmbient(memberDeclaration);\n  }\n  function tryGetTypeFromEffectiveTypeNode(node) {\n    const typeNode = getEffectiveTypeAnnotationNode(node);\n    if (typeNode) {\n      return getTypeFromTypeNode(typeNode);\n    }\n  }\n  function isParameterOfContextSensitiveSignature(symbol) {\n    let decl = symbol.valueDeclaration;\n    if (!decl) {\n      return false;\n    }\n    if (isBindingElement(decl)) {\n      decl = walkUpBindingElementsAndPatterns(decl);\n    }\n    if (isParameter(decl)) {\n      return isContextSensitiveFunctionOrObjectLiteralMethod(decl.parent);\n    }\n    return false;\n  }\n  function getTypeOfVariableOrParameterOrProperty(symbol) {\n    const links = getSymbolLinks(symbol);\n    if (!links.type) {\n      const type = getTypeOfVariableOrParameterOrPropertyWorker(symbol);\n      if (!links.type && !isParameterOfContextSensitiveSignature(symbol)) {\n        links.type = type;\n      }\n      return type;\n    }\n    return links.type;\n  }\n  function getTypeOfVariableOrParameterOrPropertyWorker(symbol) {\n    if (symbol.flags & 4194304 /* Prototype */) {\n      return getTypeOfPrototypeProperty(symbol);\n    }\n    if (symbol === requireSymbol) {\n      return anyType;\n    }\n    if (symbol.flags & 134217728 /* ModuleExports */ && symbol.valueDeclaration) {\n      const fileSymbol = getSymbolOfDeclaration(getSourceFileOfNode(symbol.valueDeclaration));\n      const result = createSymbol(fileSymbol.flags, \"exports\");\n      result.declarations = fileSymbol.declarations ? fileSymbol.declarations.slice() : [];\n      result.parent = symbol;\n      result.links.target = fileSymbol;\n      if (fileSymbol.valueDeclaration) result.valueDeclaration = fileSymbol.valueDeclaration;\n      if (fileSymbol.members) result.members = new Map(fileSymbol.members);\n      if (fileSymbol.exports) result.exports = new Map(fileSymbol.exports);\n      const members = createSymbolTable();\n      members.set(\"exports\", result);\n      return createAnonymousType(symbol, members, emptyArray, emptyArray, emptyArray);\n    }\n    Debug.assertIsDefined(symbol.valueDeclaration);\n    const declaration = symbol.valueDeclaration;\n    if (isSourceFile(declaration) && isJsonSourceFile(declaration)) {\n      if (!declaration.statements.length) {\n        return emptyObjectType;\n      }\n      return getWidenedType(getWidenedLiteralType(checkExpression(declaration.statements[0].expression)));\n    }\n    if (isAccessor(declaration)) {\n      return getTypeOfAccessors(symbol);\n    }\n    if (!pushTypeResolution(symbol, 0 /* Type */)) {\n      if (symbol.flags & 512 /* ValueModule */ && !(symbol.flags & 67108864 /* Assignment */)) {\n        return getTypeOfFuncClassEnumModule(symbol);\n      }\n      return reportCircularityError(symbol);\n    }\n    let type;\n    if (declaration.kind === 278 /* ExportAssignment */) {\n      type = widenTypeForVariableLikeDeclaration(tryGetTypeFromEffectiveTypeNode(declaration) || checkExpressionCached(declaration.expression), declaration);\n    } else if (isBinaryExpression(declaration) || isInJSFile(declaration) && (isCallExpression(declaration) || (isPropertyAccessExpression(declaration) || isBindableStaticElementAccessExpression(declaration)) && isBinaryExpression(declaration.parent))) {\n      type = getWidenedTypeForAssignmentDeclaration(symbol);\n    } else if (isPropertyAccessExpression(declaration) || isElementAccessExpression(declaration) || isIdentifier(declaration) || isStringLiteralLike(declaration) || isNumericLiteral(declaration) || isClassDeclaration(declaration) || isFunctionDeclaration(declaration) || isMethodDeclaration(declaration) && !isObjectLiteralMethod(declaration) || isMethodSignature(declaration) || isSourceFile(declaration)) {\n      if (symbol.flags & (16 /* Function */ | 8192 /* Method */ | 32 /* Class */ | 384 /* Enum */ | 512 /* ValueModule */)) {\n        return getTypeOfFuncClassEnumModule(symbol);\n      }\n      type = isBinaryExpression(declaration.parent) ? getWidenedTypeForAssignmentDeclaration(symbol) : tryGetTypeFromEffectiveTypeNode(declaration) || anyType;\n    } else if (isPropertyAssignment(declaration)) {\n      type = tryGetTypeFromEffectiveTypeNode(declaration) || checkPropertyAssignment(declaration);\n    } else if (isJsxAttribute(declaration)) {\n      type = tryGetTypeFromEffectiveTypeNode(declaration) || checkJsxAttribute(declaration);\n    } else if (isShorthandPropertyAssignment(declaration)) {\n      type = tryGetTypeFromEffectiveTypeNode(declaration) || checkExpressionForMutableLocation(declaration.name, 0 /* Normal */);\n    } else if (isObjectLiteralMethod(declaration)) {\n      type = tryGetTypeFromEffectiveTypeNode(declaration) || checkObjectLiteralMethod(declaration, 0 /* Normal */);\n    } else if (isParameter(declaration) || isPropertyDeclaration(declaration) || isPropertySignature(declaration) || isVariableDeclaration(declaration) || isBindingElement(declaration) || isJSDocPropertyLikeTag(declaration)) {\n      type = getWidenedTypeForVariableLikeDeclaration(\n        declaration,\n        /*reportErrors*/\n        true\n      );\n    } else if (isEnumDeclaration(declaration)) {\n      type = getTypeOfFuncClassEnumModule(symbol);\n    } else if (isEnumMember(declaration)) {\n      type = getTypeOfEnumMember(symbol);\n    } else {\n      return Debug.fail(\"Unhandled declaration kind! \" + Debug.formatSyntaxKind(declaration.kind) + \" for \" + Debug.formatSymbol(symbol));\n    }\n    if (!popTypeResolution()) {\n      if (symbol.flags & 512 /* ValueModule */ && !(symbol.flags & 67108864 /* Assignment */)) {\n        return getTypeOfFuncClassEnumModule(symbol);\n      }\n      return reportCircularityError(symbol);\n    }\n    return type;\n  }\n  function getAnnotatedAccessorTypeNode(accessor) {\n    if (accessor) {\n      switch (accessor.kind) {\n        case 178 /* GetAccessor */:\n          const getterTypeAnnotation = getEffectiveReturnTypeNode(accessor);\n          return getterTypeAnnotation;\n        case 179 /* SetAccessor */:\n          const setterTypeAnnotation = getEffectiveSetAccessorTypeAnnotationNode(accessor);\n          return setterTypeAnnotation;\n        case 173 /* PropertyDeclaration */:\n          Debug.assert(hasAccessorModifier(accessor));\n          const accessorTypeAnnotation = getEffectiveTypeAnnotationNode(accessor);\n          return accessorTypeAnnotation;\n      }\n    }\n    return void 0;\n  }\n  function getAnnotatedAccessorType(accessor) {\n    const node = getAnnotatedAccessorTypeNode(accessor);\n    return node && getTypeFromTypeNode(node);\n  }\n  function getAnnotatedAccessorThisParameter(accessor) {\n    const parameter = getAccessorThisParameter(accessor);\n    return parameter && parameter.symbol;\n  }\n  function getThisTypeOfDeclaration(declaration) {\n    return getThisTypeOfSignature(getSignatureFromDeclaration(declaration));\n  }\n  function getTypeOfAccessors(symbol) {\n    const links = getSymbolLinks(symbol);\n    if (!links.type) {\n      if (!pushTypeResolution(symbol, 0 /* Type */)) {\n        return errorType;\n      }\n      const getter = getDeclarationOfKind(symbol, 178 /* GetAccessor */);\n      const setter = getDeclarationOfKind(symbol, 179 /* SetAccessor */);\n      const accessor = tryCast(getDeclarationOfKind(symbol, 173 /* PropertyDeclaration */), isAutoAccessorPropertyDeclaration);\n      let type = getter && isInJSFile(getter) && getTypeForDeclarationFromJSDocComment(getter) || getAnnotatedAccessorType(getter) || getAnnotatedAccessorType(setter) || getAnnotatedAccessorType(accessor) || getter && getter.body && getReturnTypeFromBody(getter) || accessor && getWidenedTypeForVariableLikeDeclaration(\n        accessor,\n        /*reportErrors*/\n        true\n      );\n      if (!type) {\n        if (setter && !isPrivateWithinAmbient(setter)) {\n          errorOrSuggestion(noImplicitAny, setter, Diagnostics.Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation, symbolToString(symbol));\n        } else if (getter && !isPrivateWithinAmbient(getter)) {\n          errorOrSuggestion(noImplicitAny, getter, Diagnostics.Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation, symbolToString(symbol));\n        } else if (accessor && !isPrivateWithinAmbient(accessor)) {\n          errorOrSuggestion(noImplicitAny, accessor, Diagnostics.Member_0_implicitly_has_an_1_type, symbolToString(symbol), \"any\");\n        }\n        type = anyType;\n      }\n      if (!popTypeResolution()) {\n        if (getAnnotatedAccessorTypeNode(getter)) {\n          error2(getter, Diagnostics._0_is_referenced_directly_or_indirectly_in_its_own_type_annotation, symbolToString(symbol));\n        } else if (getAnnotatedAccessorTypeNode(setter)) {\n          error2(setter, Diagnostics._0_is_referenced_directly_or_indirectly_in_its_own_type_annotation, symbolToString(symbol));\n        } else if (getAnnotatedAccessorTypeNode(accessor)) {\n          error2(setter, Diagnostics._0_is_referenced_directly_or_indirectly_in_its_own_type_annotation, symbolToString(symbol));\n        } else if (getter && noImplicitAny) {\n          error2(getter, Diagnostics._0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions, symbolToString(symbol));\n        }\n        type = anyType;\n      }\n      links.type ?? (links.type = type);\n    }\n    return links.type;\n  }\n  function getWriteTypeOfAccessors(symbol) {\n    const links = getSymbolLinks(symbol);\n    if (!links.writeType) {\n      if (!pushTypeResolution(symbol, 7 /* WriteType */)) {\n        return errorType;\n      }\n      const setter = getDeclarationOfKind(symbol, 179 /* SetAccessor */) ?? tryCast(getDeclarationOfKind(symbol, 173 /* PropertyDeclaration */), isAutoAccessorPropertyDeclaration);\n      let writeType = getAnnotatedAccessorType(setter);\n      if (!popTypeResolution()) {\n        if (getAnnotatedAccessorTypeNode(setter)) {\n          error2(setter, Diagnostics._0_is_referenced_directly_or_indirectly_in_its_own_type_annotation, symbolToString(symbol));\n        }\n        writeType = anyType;\n      }\n      links.writeType ?? (links.writeType = writeType || getTypeOfAccessors(symbol));\n    }\n    return links.writeType;\n  }\n  function getBaseTypeVariableOfClass(symbol) {\n    const baseConstructorType = getBaseConstructorTypeOfClass(getDeclaredTypeOfClassOrInterface(symbol));\n    return baseConstructorType.flags & 8650752 /* TypeVariable */ ? baseConstructorType : baseConstructorType.flags & 2097152 /* Intersection */ ? find(baseConstructorType.types, (t) => !!(t.flags & 8650752 /* TypeVariable */)) : void 0;\n  }\n  function getTypeOfFuncClassEnumModule(symbol) {\n    let links = getSymbolLinks(symbol);\n    const originalLinks = links;\n    if (!links.type) {\n      const expando = symbol.valueDeclaration && getSymbolOfExpando(\n        symbol.valueDeclaration,\n        /*allowDeclaration*/\n        false\n      );\n      if (expando) {\n        const merged = mergeJSSymbols(symbol, expando);\n        if (merged) {\n          symbol = merged;\n          links = merged.links;\n        }\n      }\n      originalLinks.type = links.type = getTypeOfFuncClassEnumModuleWorker(symbol);\n    }\n    return links.type;\n  }\n  function getTypeOfFuncClassEnumModuleWorker(symbol) {\n    const declaration = symbol.valueDeclaration;\n    if (symbol.flags & 1536 /* Module */ && isShorthandAmbientModuleSymbol(symbol)) {\n      return anyType;\n    } else if (declaration && (declaration.kind === 227 /* BinaryExpression */ || isAccessExpression(declaration) && declaration.parent.kind === 227 /* BinaryExpression */)) {\n      return getWidenedTypeForAssignmentDeclaration(symbol);\n    } else if (symbol.flags & 512 /* ValueModule */ && declaration && isSourceFile(declaration) && declaration.commonJsModuleIndicator) {\n      const resolvedModule = resolveExternalModuleSymbol(symbol);\n      if (resolvedModule !== symbol) {\n        if (!pushTypeResolution(symbol, 0 /* Type */)) {\n          return errorType;\n        }\n        const exportEquals = getMergedSymbol(symbol.exports.get(\"export=\" /* ExportEquals */));\n        const type2 = getWidenedTypeForAssignmentDeclaration(exportEquals, exportEquals === resolvedModule ? void 0 : resolvedModule);\n        if (!popTypeResolution()) {\n          return reportCircularityError(symbol);\n        }\n        return type2;\n      }\n    }\n    const type = createObjectType(16 /* Anonymous */, symbol);\n    if (symbol.flags & 32 /* Class */) {\n      const baseTypeVariable = getBaseTypeVariableOfClass(symbol);\n      return baseTypeVariable ? getIntersectionType([type, baseTypeVariable]) : type;\n    } else {\n      return strictNullChecks && symbol.flags & 16777216 /* Optional */ ? getOptionalType(\n        type,\n        /*isProperty*/\n        true\n      ) : type;\n    }\n  }\n  function getTypeOfEnumMember(symbol) {\n    const links = getSymbolLinks(symbol);\n    return links.type || (links.type = getDeclaredTypeOfEnumMember(symbol));\n  }\n  function getTypeOfAlias(symbol) {\n    const links = getSymbolLinks(symbol);\n    if (!links.type) {\n      if (!pushTypeResolution(symbol, 0 /* Type */)) {\n        return errorType;\n      }\n      const targetSymbol = resolveAlias(symbol);\n      const exportSymbol = symbol.declarations && getTargetOfAliasDeclaration(\n        getDeclarationOfAliasSymbol(symbol),\n        /*dontRecursivelyResolve*/\n        true\n      );\n      const declaredType = firstDefined(exportSymbol == null ? void 0 : exportSymbol.declarations, (d) => isExportAssignment(d) ? tryGetTypeFromEffectiveTypeNode(d) : void 0);\n      links.type ?? (links.type = (exportSymbol == null ? void 0 : exportSymbol.declarations) && isDuplicatedCommonJSExport(exportSymbol.declarations) && symbol.declarations.length ? getFlowTypeFromCommonJSExport(exportSymbol) : isDuplicatedCommonJSExport(symbol.declarations) ? autoType : declaredType ? declaredType : getSymbolFlags(targetSymbol) & 111551 /* Value */ ? getTypeOfSymbol(targetSymbol) : errorType);\n      if (!popTypeResolution()) {\n        reportCircularityError(exportSymbol ?? symbol);\n        return links.type ?? (links.type = errorType);\n      }\n    }\n    return links.type;\n  }\n  function getTypeOfInstantiatedSymbol(symbol) {\n    const links = getSymbolLinks(symbol);\n    return links.type || (links.type = instantiateType(getTypeOfSymbol(links.target), links.mapper));\n  }\n  function getWriteTypeOfInstantiatedSymbol(symbol) {\n    const links = getSymbolLinks(symbol);\n    return links.writeType || (links.writeType = instantiateType(getWriteTypeOfSymbol(links.target), links.mapper));\n  }\n  function reportCircularityError(symbol) {\n    const declaration = symbol.valueDeclaration;\n    if (declaration) {\n      if (getEffectiveTypeAnnotationNode(declaration)) {\n        error2(symbol.valueDeclaration, Diagnostics._0_is_referenced_directly_or_indirectly_in_its_own_type_annotation, symbolToString(symbol));\n        return errorType;\n      }\n      if (noImplicitAny && (declaration.kind !== 170 /* Parameter */ || declaration.initializer)) {\n        error2(symbol.valueDeclaration, Diagnostics._0_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_and_is_referenced_directly_or_indirectly_in_its_own_initializer, symbolToString(symbol));\n      }\n    } else if (symbol.flags & 2097152 /* Alias */) {\n      const node = getDeclarationOfAliasSymbol(symbol);\n      if (node) {\n        error2(node, Diagnostics.Circular_definition_of_import_alias_0, symbolToString(symbol));\n      }\n    }\n    return anyType;\n  }\n  function getTypeOfSymbolWithDeferredType(symbol) {\n    const links = getSymbolLinks(symbol);\n    if (!links.type) {\n      Debug.assertIsDefined(links.deferralParent);\n      Debug.assertIsDefined(links.deferralConstituents);\n      links.type = links.deferralParent.flags & 1048576 /* Union */ ? getUnionType(links.deferralConstituents) : getIntersectionType(links.deferralConstituents);\n    }\n    return links.type;\n  }\n  function getWriteTypeOfSymbolWithDeferredType(symbol) {\n    const links = getSymbolLinks(symbol);\n    if (!links.writeType && links.deferralWriteConstituents) {\n      Debug.assertIsDefined(links.deferralParent);\n      Debug.assertIsDefined(links.deferralConstituents);\n      links.writeType = links.deferralParent.flags & 1048576 /* Union */ ? getUnionType(links.deferralWriteConstituents) : getIntersectionType(links.deferralWriteConstituents);\n    }\n    return links.writeType;\n  }\n  function getWriteTypeOfSymbol(symbol) {\n    const checkFlags = getCheckFlags(symbol);\n    if (checkFlags & 2 /* SyntheticProperty */) {\n      return checkFlags & 65536 /* DeferredType */ ? getWriteTypeOfSymbolWithDeferredType(symbol) || getTypeOfSymbolWithDeferredType(symbol) : (\n        // NOTE: cast to TransientSymbol should be safe because only TransientSymbols can have CheckFlags.SyntheticProperty\n        symbol.links.writeType || symbol.links.type\n      );\n    }\n    if (symbol.flags & 4 /* Property */) {\n      return removeMissingType(getTypeOfSymbol(symbol), !!(symbol.flags & 16777216 /* Optional */));\n    }\n    if (symbol.flags & 98304 /* Accessor */) {\n      return checkFlags & 1 /* Instantiated */ ? getWriteTypeOfInstantiatedSymbol(symbol) : getWriteTypeOfAccessors(symbol);\n    }\n    return getTypeOfSymbol(symbol);\n  }\n  function getTypeOfSymbol(symbol) {\n    const checkFlags = getCheckFlags(symbol);\n    if (checkFlags & 65536 /* DeferredType */) {\n      return getTypeOfSymbolWithDeferredType(symbol);\n    }\n    if (checkFlags & 1 /* Instantiated */) {\n      return getTypeOfInstantiatedSymbol(symbol);\n    }\n    if (checkFlags & 262144 /* Mapped */) {\n      return getTypeOfMappedSymbol(symbol);\n    }\n    if (checkFlags & 8192 /* ReverseMapped */) {\n      return getTypeOfReverseMappedSymbol(symbol);\n    }\n    if (symbol.flags & (3 /* Variable */ | 4 /* Property */)) {\n      return getTypeOfVariableOrParameterOrProperty(symbol);\n    }\n    if (symbol.flags & (16 /* Function */ | 8192 /* Method */ | 32 /* Class */ | 384 /* Enum */ | 512 /* ValueModule */)) {\n      return getTypeOfFuncClassEnumModule(symbol);\n    }\n    if (symbol.flags & 8 /* EnumMember */) {\n      return getTypeOfEnumMember(symbol);\n    }\n    if (symbol.flags & 98304 /* Accessor */) {\n      return getTypeOfAccessors(symbol);\n    }\n    if (symbol.flags & 2097152 /* Alias */) {\n      return getTypeOfAlias(symbol);\n    }\n    return errorType;\n  }\n  function getNonMissingTypeOfSymbol(symbol) {\n    return removeMissingType(getTypeOfSymbol(symbol), !!(symbol.flags & 16777216 /* Optional */));\n  }\n  function isReferenceToSomeType(type, targets) {\n    if (type === void 0 || (getObjectFlags(type) & 4 /* Reference */) === 0) {\n      return false;\n    }\n    for (const target of targets) {\n      if (type.target === target) {\n        return true;\n      }\n    }\n    return false;\n  }\n  function isReferenceToType2(type, target) {\n    return type !== void 0 && target !== void 0 && (getObjectFlags(type) & 4 /* Reference */) !== 0 && type.target === target;\n  }\n  function getTargetType(type) {\n    return getObjectFlags(type) & 4 /* Reference */ ? type.target : type;\n  }\n  function hasBaseType(type, checkBase) {\n    return check(type);\n    function check(type2) {\n      if (getObjectFlags(type2) & (3 /* ClassOrInterface */ | 4 /* Reference */)) {\n        const target = getTargetType(type2);\n        return target === checkBase || some(getBaseTypes(target), check);\n      } else if (type2.flags & 2097152 /* Intersection */) {\n        return some(type2.types, check);\n      }\n      return false;\n    }\n  }\n  function appendTypeParameters(typeParameters, declarations) {\n    for (const declaration of declarations) {\n      typeParameters = appendIfUnique(typeParameters, getDeclaredTypeOfTypeParameter(getSymbolOfDeclaration(declaration)));\n    }\n    return typeParameters;\n  }\n  function getOuterTypeParameters(node, includeThisTypes) {\n    while (true) {\n      node = node.parent;\n      if (node && isBinaryExpression(node)) {\n        const assignmentKind = getAssignmentDeclarationKind(node);\n        if (assignmentKind === 6 /* Prototype */ || assignmentKind === 3 /* PrototypeProperty */) {\n          const symbol = getSymbolOfDeclaration(node.left);\n          if (symbol && symbol.parent && !findAncestor(symbol.parent.valueDeclaration, (d) => node === d)) {\n            node = symbol.parent.valueDeclaration;\n          }\n        }\n      }\n      if (!node) {\n        return void 0;\n      }\n      const kind = node.kind;\n      switch (kind) {\n        case 264 /* ClassDeclaration */:\n        case 232 /* ClassExpression */:\n        case 265 /* InterfaceDeclaration */:\n        case 180 /* CallSignature */:\n        case 181 /* ConstructSignature */:\n        case 174 /* MethodSignature */:\n        case 185 /* FunctionType */:\n        case 186 /* ConstructorType */:\n        case 318 /* JSDocFunctionType */:\n        case 263 /* FunctionDeclaration */:\n        case 175 /* MethodDeclaration */:\n        case 219 /* FunctionExpression */:\n        case 220 /* ArrowFunction */:\n        case 266 /* TypeAliasDeclaration */:\n        case 346 /* JSDocTemplateTag */:\n        case 347 /* JSDocTypedefTag */:\n        case 341 /* JSDocEnumTag */:\n        case 339 /* JSDocCallbackTag */:\n        case 201 /* MappedType */:\n        case 195 /* ConditionalType */: {\n          const outerTypeParameters = getOuterTypeParameters(node, includeThisTypes);\n          if ((kind === 219 /* FunctionExpression */ || kind === 220 /* ArrowFunction */ || isObjectLiteralMethod(node)) && isContextSensitive(node)) {\n            const signature = firstOrUndefined(getSignaturesOfType(getTypeOfSymbol(getSymbolOfDeclaration(node)), 0 /* Call */));\n            if (signature && signature.typeParameters) {\n              return [...outerTypeParameters || emptyArray, ...signature.typeParameters];\n            }\n          }\n          if (kind === 201 /* MappedType */) {\n            return append(outerTypeParameters, getDeclaredTypeOfTypeParameter(getSymbolOfDeclaration(node.typeParameter)));\n          } else if (kind === 195 /* ConditionalType */) {\n            return concatenate(outerTypeParameters, getInferTypeParameters(node));\n          }\n          const outerAndOwnTypeParameters = appendTypeParameters(outerTypeParameters, getEffectiveTypeParameterDeclarations(node));\n          const thisType = includeThisTypes && (kind === 264 /* ClassDeclaration */ || kind === 232 /* ClassExpression */ || kind === 265 /* InterfaceDeclaration */ || isJSConstructor(node)) && getDeclaredTypeOfClassOrInterface(getSymbolOfDeclaration(node)).thisType;\n          return thisType ? append(outerAndOwnTypeParameters, thisType) : outerAndOwnTypeParameters;\n        }\n        case 342 /* JSDocParameterTag */:\n          const paramSymbol = getParameterSymbolFromJSDoc(node);\n          if (paramSymbol) {\n            node = paramSymbol.valueDeclaration;\n          }\n          break;\n        case 321 /* JSDoc */: {\n          const outerTypeParameters = getOuterTypeParameters(node, includeThisTypes);\n          return node.tags ? appendTypeParameters(outerTypeParameters, flatMap(node.tags, (t) => isJSDocTemplateTag(t) ? t.typeParameters : void 0)) : outerTypeParameters;\n        }\n      }\n    }\n  }\n  function getOuterTypeParametersOfClassOrInterface(symbol) {\n    var _a;\n    const declaration = symbol.flags & 32 /* Class */ || symbol.flags & 16 /* Function */ ? symbol.valueDeclaration : (_a = symbol.declarations) == null ? void 0 : _a.find((decl) => {\n      if (decl.kind === 265 /* InterfaceDeclaration */) {\n        return true;\n      }\n      if (decl.kind !== 261 /* VariableDeclaration */) {\n        return false;\n      }\n      const initializer = decl.initializer;\n      return !!initializer && (initializer.kind === 219 /* FunctionExpression */ || initializer.kind === 220 /* ArrowFunction */);\n    });\n    Debug.assert(!!declaration, \"Class was missing valueDeclaration -OR- non-class had no interface declarations\");\n    return getOuterTypeParameters(declaration);\n  }\n  function getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(symbol) {\n    if (!symbol.declarations) {\n      return;\n    }\n    let result;\n    for (const node of symbol.declarations) {\n      if (node.kind === 265 /* InterfaceDeclaration */ || node.kind === 264 /* ClassDeclaration */ || node.kind === 232 /* ClassExpression */ || isJSConstructor(node) || isTypeAlias(node)) {\n        const declaration = node;\n        result = appendTypeParameters(result, getEffectiveTypeParameterDeclarations(declaration));\n      }\n    }\n    return result;\n  }\n  function getTypeParametersOfClassOrInterface(symbol) {\n    return concatenate(getOuterTypeParametersOfClassOrInterface(symbol), getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(symbol));\n  }\n  function isMixinConstructorType(type) {\n    const signatures = getSignaturesOfType(type, 1 /* Construct */);\n    if (signatures.length === 1) {\n      const s = signatures[0];\n      if (!s.typeParameters && s.parameters.length === 1 && signatureHasRestParameter(s)) {\n        const paramType = getTypeOfParameter(s.parameters[0]);\n        return isTypeAny(paramType) || getElementTypeOfArrayType(paramType) === anyType;\n      }\n    }\n    return false;\n  }\n  function isConstructorType(type) {\n    if (getSignaturesOfType(type, 1 /* Construct */).length > 0) {\n      return true;\n    }\n    if (type.flags & 8650752 /* TypeVariable */) {\n      const constraint = getBaseConstraintOfType(type);\n      return !!constraint && isMixinConstructorType(constraint);\n    }\n    return false;\n  }\n  function getBaseTypeNodeOfClass(type) {\n    const decl = getClassLikeDeclarationOfSymbol(type.symbol);\n    return decl && getEffectiveBaseTypeNode(decl);\n  }\n  function getConstructorsForTypeArguments(type, typeArgumentNodes, location) {\n    const typeArgCount = length(typeArgumentNodes);\n    const isJavascript = isInJSFile(location);\n    return filter(getSignaturesOfType(type, 1 /* Construct */), (sig) => (isJavascript || typeArgCount >= getMinTypeArgumentCount(sig.typeParameters)) && typeArgCount <= length(sig.typeParameters));\n  }\n  function getInstantiatedConstructorsForTypeArguments(type, typeArgumentNodes, location) {\n    const signatures = getConstructorsForTypeArguments(type, typeArgumentNodes, location);\n    const typeArguments = map(typeArgumentNodes, getTypeFromTypeNode);\n    return sameMap(signatures, (sig) => some(sig.typeParameters) ? getSignatureInstantiation(sig, typeArguments, isInJSFile(location)) : sig);\n  }\n  function getBaseConstructorTypeOfClass(type) {\n    if (!type.resolvedBaseConstructorType) {\n      const decl = getClassLikeDeclarationOfSymbol(type.symbol);\n      const extended = decl && getEffectiveBaseTypeNode(decl);\n      const baseTypeNode = getBaseTypeNodeOfClass(type);\n      if (!baseTypeNode) {\n        return type.resolvedBaseConstructorType = undefinedType;\n      }\n      if (!pushTypeResolution(type, 1 /* ResolvedBaseConstructorType */)) {\n        return errorType;\n      }\n      const baseConstructorType = checkExpression(baseTypeNode.expression);\n      if (extended && baseTypeNode !== extended) {\n        Debug.assert(!extended.typeArguments);\n        checkExpression(extended.expression);\n      }\n      if (baseConstructorType.flags & (524288 /* Object */ | 2097152 /* Intersection */)) {\n        resolveStructuredTypeMembers(baseConstructorType);\n      }\n      if (!popTypeResolution()) {\n        error2(type.symbol.valueDeclaration, Diagnostics._0_is_referenced_directly_or_indirectly_in_its_own_base_expression, symbolToString(type.symbol));\n        return type.resolvedBaseConstructorType ?? (type.resolvedBaseConstructorType = errorType);\n      }\n      if (!(baseConstructorType.flags & 1 /* Any */) && baseConstructorType !== nullWideningType && !isConstructorType(baseConstructorType)) {\n        const err = error2(baseTypeNode.expression, Diagnostics.Type_0_is_not_a_constructor_function_type, typeToString(baseConstructorType));\n        if (baseConstructorType.flags & 262144 /* TypeParameter */) {\n          const constraint = getConstraintFromTypeParameter(baseConstructorType);\n          let ctorReturn = unknownType;\n          if (constraint) {\n            const ctorSig = getSignaturesOfType(constraint, 1 /* Construct */);\n            if (ctorSig[0]) {\n              ctorReturn = getReturnTypeOfSignature(ctorSig[0]);\n            }\n          }\n          if (baseConstructorType.symbol.declarations) {\n            addRelatedInfo(err, createDiagnosticForNode(baseConstructorType.symbol.declarations[0], Diagnostics.Did_you_mean_for_0_to_be_constrained_to_type_new_args_Colon_any_1, symbolToString(baseConstructorType.symbol), typeToString(ctorReturn)));\n          }\n        }\n        return type.resolvedBaseConstructorType ?? (type.resolvedBaseConstructorType = errorType);\n      }\n      type.resolvedBaseConstructorType ?? (type.resolvedBaseConstructorType = baseConstructorType);\n    }\n    return type.resolvedBaseConstructorType;\n  }\n  function getImplementsTypes(type) {\n    let resolvedImplementsTypes = emptyArray;\n    if (type.symbol.declarations) {\n      for (const declaration of type.symbol.declarations) {\n        const implementsTypeNodes = getEffectiveImplementsTypeNodes(declaration);\n        if (!implementsTypeNodes) continue;\n        for (const node of implementsTypeNodes) {\n          const implementsType = getTypeFromTypeNode(node);\n          if (!isErrorType(implementsType)) {\n            if (resolvedImplementsTypes === emptyArray) {\n              resolvedImplementsTypes = [implementsType];\n            } else {\n              resolvedImplementsTypes.push(implementsType);\n            }\n          }\n        }\n      }\n    }\n    return resolvedImplementsTypes;\n  }\n  function reportCircularBaseType(node, type) {\n    error2(node, Diagnostics.Type_0_recursively_references_itself_as_a_base_type, typeToString(\n      type,\n      /*enclosingDeclaration*/\n      void 0,\n      2 /* WriteArrayAsGenericType */\n    ));\n  }\n  function getBaseTypes(type) {\n    if (!type.baseTypesResolved) {\n      if (pushTypeResolution(type, 6 /* ResolvedBaseTypes */)) {\n        if (type.objectFlags & 8 /* Tuple */) {\n          type.resolvedBaseTypes = [getTupleBaseType(type)];\n        } else if (type.symbol.flags & (32 /* Class */ | 64 /* Interface */)) {\n          if (type.symbol.flags & 32 /* Class */) {\n            resolveBaseTypesOfClass(type);\n          }\n          if (type.symbol.flags & 64 /* Interface */) {\n            resolveBaseTypesOfInterface(type);\n          }\n        } else {\n          Debug.fail(\"type must be class or interface\");\n        }\n        if (!popTypeResolution() && type.symbol.declarations) {\n          for (const declaration of type.symbol.declarations) {\n            if (declaration.kind === 264 /* ClassDeclaration */ || declaration.kind === 265 /* InterfaceDeclaration */) {\n              reportCircularBaseType(declaration, type);\n            }\n          }\n        }\n      }\n      type.baseTypesResolved = true;\n    }\n    return type.resolvedBaseTypes;\n  }\n  function getTupleBaseType(type) {\n    const elementTypes = sameMap(type.typeParameters, (t, i) => type.elementFlags[i] & 8 /* Variadic */ ? getIndexedAccessType(t, numberType) : t);\n    return createArrayType(getUnionType(elementTypes || emptyArray), type.readonly);\n  }\n  function resolveBaseTypesOfClass(type) {\n    type.resolvedBaseTypes = resolvingEmptyArray;\n    const baseConstructorType = getApparentType(getBaseConstructorTypeOfClass(type));\n    if (!(baseConstructorType.flags & (524288 /* Object */ | 2097152 /* Intersection */ | 1 /* Any */))) {\n      return type.resolvedBaseTypes = emptyArray;\n    }\n    const baseTypeNode = getBaseTypeNodeOfClass(type);\n    let baseType;\n    const originalBaseType = baseConstructorType.symbol ? getDeclaredTypeOfSymbol(baseConstructorType.symbol) : void 0;\n    if (baseConstructorType.symbol && baseConstructorType.symbol.flags & 32 /* Class */ && areAllOuterTypeParametersApplied(originalBaseType)) {\n      baseType = getTypeFromClassOrInterfaceReference(baseTypeNode, baseConstructorType.symbol);\n    } else if (baseConstructorType.flags & 1 /* Any */) {\n      baseType = baseConstructorType;\n    } else {\n      const constructors = getInstantiatedConstructorsForTypeArguments(baseConstructorType, baseTypeNode.typeArguments, baseTypeNode);\n      if (!constructors.length) {\n        error2(baseTypeNode.expression, Diagnostics.No_base_constructor_has_the_specified_number_of_type_arguments);\n        return type.resolvedBaseTypes = emptyArray;\n      }\n      baseType = getReturnTypeOfSignature(constructors[0]);\n    }\n    if (isErrorType(baseType)) {\n      return type.resolvedBaseTypes = emptyArray;\n    }\n    const reducedBaseType = getReducedType(baseType);\n    if (!isValidBaseType(reducedBaseType)) {\n      const elaboration = elaborateNeverIntersection(\n        /*errorInfo*/\n        void 0,\n        baseType\n      );\n      const diagnostic = chainDiagnosticMessages(elaboration, Diagnostics.Base_constructor_return_type_0_is_not_an_object_type_or_intersection_of_object_types_with_statically_known_members, typeToString(reducedBaseType));\n      diagnostics.add(createDiagnosticForNodeFromMessageChain(getSourceFileOfNode(baseTypeNode.expression), baseTypeNode.expression, diagnostic));\n      return type.resolvedBaseTypes = emptyArray;\n    }\n    if (type === reducedBaseType || hasBaseType(reducedBaseType, type)) {\n      error2(type.symbol.valueDeclaration, Diagnostics.Type_0_recursively_references_itself_as_a_base_type, typeToString(\n        type,\n        /*enclosingDeclaration*/\n        void 0,\n        2 /* WriteArrayAsGenericType */\n      ));\n      return type.resolvedBaseTypes = emptyArray;\n    }\n    if (type.resolvedBaseTypes === resolvingEmptyArray) {\n      type.members = void 0;\n    }\n    return type.resolvedBaseTypes = [reducedBaseType];\n  }\n  function areAllOuterTypeParametersApplied(type) {\n    const outerTypeParameters = type.outerTypeParameters;\n    if (outerTypeParameters) {\n      const last2 = outerTypeParameters.length - 1;\n      const typeArguments = getTypeArguments(type);\n      return outerTypeParameters[last2].symbol !== typeArguments[last2].symbol;\n    }\n    return true;\n  }\n  function isValidBaseType(type) {\n    if (type.flags & 262144 /* TypeParameter */) {\n      const constraint = getBaseConstraintOfType(type);\n      if (constraint) {\n        return isValidBaseType(constraint);\n      }\n    }\n    return !!(type.flags & (524288 /* Object */ | 67108864 /* NonPrimitive */ | 1 /* Any */) && !isGenericMappedType(type) || type.flags & 2097152 /* Intersection */ && every(type.types, isValidBaseType));\n  }\n  function resolveBaseTypesOfInterface(type) {\n    type.resolvedBaseTypes = type.resolvedBaseTypes || emptyArray;\n    if (type.symbol.declarations) {\n      for (const declaration of type.symbol.declarations) {\n        if (declaration.kind === 265 /* InterfaceDeclaration */ && getInterfaceBaseTypeNodes(declaration)) {\n          for (const node of getInterfaceBaseTypeNodes(declaration)) {\n            const baseType = getReducedType(getTypeFromTypeNode(node));\n            if (!isErrorType(baseType)) {\n              if (isValidBaseType(baseType)) {\n                if (type !== baseType && !hasBaseType(baseType, type)) {\n                  if (type.resolvedBaseTypes === emptyArray) {\n                    type.resolvedBaseTypes = [baseType];\n                  } else {\n                    type.resolvedBaseTypes.push(baseType);\n                  }\n                } else {\n                  reportCircularBaseType(declaration, type);\n                }\n              } else {\n                error2(node, Diagnostics.An_interface_can_only_extend_an_object_type_or_intersection_of_object_types_with_statically_known_members);\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n  function isThislessInterface(symbol) {\n    if (!symbol.declarations) {\n      return true;\n    }\n    for (const declaration of symbol.declarations) {\n      if (declaration.kind === 265 /* InterfaceDeclaration */) {\n        if (declaration.flags & 256 /* ContainsThis */) {\n          return false;\n        }\n        const baseTypeNodes = getInterfaceBaseTypeNodes(declaration);\n        if (baseTypeNodes) {\n          for (const node of baseTypeNodes) {\n            if (isEntityNameExpression(node.expression)) {\n              const baseSymbol = resolveEntityName(\n                node.expression,\n                788968 /* Type */,\n                /*ignoreErrors*/\n                true\n              );\n              if (!baseSymbol || !(baseSymbol.flags & 64 /* Interface */) || getDeclaredTypeOfClassOrInterface(baseSymbol).thisType) {\n                return false;\n              }\n            }\n          }\n        }\n      }\n    }\n    return true;\n  }\n  function getDeclaredTypeOfClassOrInterface(symbol) {\n    let links = getSymbolLinks(symbol);\n    const originalLinks = links;\n    if (!links.declaredType) {\n      const kind = symbol.flags & 32 /* Class */ ? 1 /* Class */ : 2 /* Interface */;\n      const merged = mergeJSSymbols(symbol, symbol.valueDeclaration && getAssignedClassSymbol(symbol.valueDeclaration));\n      if (merged) {\n        symbol = merged;\n        links = merged.links;\n      }\n      const type = originalLinks.declaredType = links.declaredType = createObjectType(kind, symbol);\n      const outerTypeParameters = getOuterTypeParametersOfClassOrInterface(symbol);\n      const localTypeParameters = getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(symbol);\n      if (outerTypeParameters || localTypeParameters || kind === 1 /* Class */ || !isThislessInterface(symbol)) {\n        type.objectFlags |= 4 /* Reference */;\n        type.typeParameters = concatenate(outerTypeParameters, localTypeParameters);\n        type.outerTypeParameters = outerTypeParameters;\n        type.localTypeParameters = localTypeParameters;\n        type.instantiations = /* @__PURE__ */ new Map();\n        type.instantiations.set(getTypeListId(type.typeParameters), type);\n        type.target = type;\n        type.resolvedTypeArguments = type.typeParameters;\n        type.thisType = createTypeParameter(symbol);\n        type.thisType.isThisType = true;\n        type.thisType.constraint = type;\n      }\n    }\n    return links.declaredType;\n  }\n  function getDeclaredTypeOfTypeAlias(symbol) {\n    var _a;\n    const links = getSymbolLinks(symbol);\n    if (!links.declaredType) {\n      if (!pushTypeResolution(symbol, 2 /* DeclaredType */)) {\n        return errorType;\n      }\n      const declaration = Debug.checkDefined((_a = symbol.declarations) == null ? void 0 : _a.find(isTypeAlias), \"Type alias symbol with no valid declaration found\");\n      const typeNode = isJSDocTypeAlias(declaration) ? declaration.typeExpression : declaration.type;\n      let type = typeNode ? getTypeFromTypeNode(typeNode) : errorType;\n      if (popTypeResolution()) {\n        const typeParameters = getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(symbol);\n        if (typeParameters) {\n          links.typeParameters = typeParameters;\n          links.instantiations = /* @__PURE__ */ new Map();\n          links.instantiations.set(getTypeListId(typeParameters), type);\n        }\n        if (type === intrinsicMarkerType && symbol.escapedName === \"BuiltinIteratorReturn\") {\n          type = getBuiltinIteratorReturnType();\n        }\n      } else {\n        type = errorType;\n        if (declaration.kind === 341 /* JSDocEnumTag */) {\n          error2(declaration.typeExpression.type, Diagnostics.Type_alias_0_circularly_references_itself, symbolToString(symbol));\n        } else {\n          error2(isNamedDeclaration(declaration) ? declaration.name || declaration : declaration, Diagnostics.Type_alias_0_circularly_references_itself, symbolToString(symbol));\n        }\n      }\n      links.declaredType ?? (links.declaredType = type);\n    }\n    return links.declaredType;\n  }\n  function getBaseTypeOfEnumLikeType(type) {\n    return type.flags & 1056 /* EnumLike */ && type.symbol.flags & 8 /* EnumMember */ ? getDeclaredTypeOfSymbol(getParentOfSymbol(type.symbol)) : type;\n  }\n  function getDeclaredTypeOfEnum(symbol) {\n    const links = getSymbolLinks(symbol);\n    if (!links.declaredType) {\n      const memberTypeList = [];\n      if (symbol.declarations) {\n        for (const declaration of symbol.declarations) {\n          if (declaration.kind === 267 /* EnumDeclaration */) {\n            for (const member of declaration.members) {\n              if (hasBindableName(member)) {\n                const memberSymbol = getSymbolOfDeclaration(member);\n                const value = getEnumMemberValue(member).value;\n                const memberType = getFreshTypeOfLiteralType(\n                  value !== void 0 ? getEnumLiteralType(value, getSymbolId(symbol), memberSymbol) : createComputedEnumType(memberSymbol)\n                );\n                getSymbolLinks(memberSymbol).declaredType = memberType;\n                memberTypeList.push(getRegularTypeOfLiteralType(memberType));\n              }\n            }\n          }\n        }\n      }\n      const enumType = memberTypeList.length ? getUnionType(\n        memberTypeList,\n        1 /* Literal */,\n        symbol,\n        /*aliasTypeArguments*/\n        void 0\n      ) : createComputedEnumType(symbol);\n      if (enumType.flags & 1048576 /* Union */) {\n        enumType.flags |= 1024 /* EnumLiteral */;\n        enumType.symbol = symbol;\n      }\n      links.declaredType = enumType;\n    }\n    return links.declaredType;\n  }\n  function createComputedEnumType(symbol) {\n    const regularType = createTypeWithSymbol(32 /* Enum */, symbol);\n    const freshType = createTypeWithSymbol(32 /* Enum */, symbol);\n    regularType.regularType = regularType;\n    regularType.freshType = freshType;\n    freshType.regularType = regularType;\n    freshType.freshType = freshType;\n    return regularType;\n  }\n  function getDeclaredTypeOfEnumMember(symbol) {\n    const links = getSymbolLinks(symbol);\n    if (!links.declaredType) {\n      const enumType = getDeclaredTypeOfEnum(getParentOfSymbol(symbol));\n      if (!links.declaredType) {\n        links.declaredType = enumType;\n      }\n    }\n    return links.declaredType;\n  }\n  function getDeclaredTypeOfTypeParameter(symbol) {\n    const links = getSymbolLinks(symbol);\n    return links.declaredType || (links.declaredType = createTypeParameter(symbol));\n  }\n  function getDeclaredTypeOfAlias(symbol) {\n    const links = getSymbolLinks(symbol);\n    return links.declaredType || (links.declaredType = getDeclaredTypeOfSymbol(resolveAlias(symbol)));\n  }\n  function getDeclaredTypeOfSymbol(symbol) {\n    return tryGetDeclaredTypeOfSymbol(symbol) || errorType;\n  }\n  function tryGetDeclaredTypeOfSymbol(symbol) {\n    if (symbol.flags & (32 /* Class */ | 64 /* Interface */)) {\n      return getDeclaredTypeOfClassOrInterface(symbol);\n    }\n    if (symbol.flags & 524288 /* TypeAlias */) {\n      return getDeclaredTypeOfTypeAlias(symbol);\n    }\n    if (symbol.flags & 262144 /* TypeParameter */) {\n      return getDeclaredTypeOfTypeParameter(symbol);\n    }\n    if (symbol.flags & 384 /* Enum */) {\n      return getDeclaredTypeOfEnum(symbol);\n    }\n    if (symbol.flags & 8 /* EnumMember */) {\n      return getDeclaredTypeOfEnumMember(symbol);\n    }\n    if (symbol.flags & 2097152 /* Alias */) {\n      return getDeclaredTypeOfAlias(symbol);\n    }\n    return void 0;\n  }\n  function isThislessType(node) {\n    switch (node.kind) {\n      case 133 /* AnyKeyword */:\n      case 159 /* UnknownKeyword */:\n      case 154 /* StringKeyword */:\n      case 150 /* NumberKeyword */:\n      case 163 /* BigIntKeyword */:\n      case 136 /* BooleanKeyword */:\n      case 155 /* SymbolKeyword */:\n      case 151 /* ObjectKeyword */:\n      case 116 /* VoidKeyword */:\n      case 157 /* UndefinedKeyword */:\n      case 146 /* NeverKeyword */:\n      case 202 /* LiteralType */:\n        return true;\n      case 189 /* ArrayType */:\n        return isThislessType(node.elementType);\n      case 184 /* TypeReference */:\n        return !node.typeArguments || node.typeArguments.every(isThislessType);\n    }\n    return false;\n  }\n  function isThislessTypeParameter(node) {\n    const constraint = getEffectiveConstraintOfTypeParameter(node);\n    return !constraint || isThislessType(constraint);\n  }\n  function isThislessVariableLikeDeclaration(node) {\n    const typeNode = getEffectiveTypeAnnotationNode(node);\n    return typeNode ? isThislessType(typeNode) : !hasInitializer(node);\n  }\n  function isThislessFunctionLikeDeclaration(node) {\n    const returnType = getEffectiveReturnTypeNode(node);\n    const typeParameters = getEffectiveTypeParameterDeclarations(node);\n    return (node.kind === 177 /* Constructor */ || !!returnType && isThislessType(returnType)) && node.parameters.every(isThislessVariableLikeDeclaration) && typeParameters.every(isThislessTypeParameter);\n  }\n  function isThisless(symbol) {\n    if (symbol.declarations && symbol.declarations.length === 1) {\n      const declaration = symbol.declarations[0];\n      if (declaration) {\n        switch (declaration.kind) {\n          case 173 /* PropertyDeclaration */:\n          case 172 /* PropertySignature */:\n            return isThislessVariableLikeDeclaration(declaration);\n          case 175 /* MethodDeclaration */:\n          case 174 /* MethodSignature */:\n          case 177 /* Constructor */:\n          case 178 /* GetAccessor */:\n          case 179 /* SetAccessor */:\n            return isThislessFunctionLikeDeclaration(declaration);\n        }\n      }\n    }\n    return false;\n  }\n  function createInstantiatedSymbolTable(symbols, mapper, mappingThisOnly) {\n    const result = createSymbolTable();\n    for (const symbol of symbols) {\n      result.set(symbol.escapedName, mappingThisOnly && isThisless(symbol) ? symbol : instantiateSymbol(symbol, mapper));\n    }\n    return result;\n  }\n  function addInheritedMembers(symbols, baseSymbols) {\n    for (const base of baseSymbols) {\n      if (isStaticPrivateIdentifierProperty(base)) {\n        continue;\n      }\n      const derived = symbols.get(base.escapedName);\n      if (!derived || derived.valueDeclaration && isBinaryExpression(derived.valueDeclaration) && !isConstructorDeclaredProperty(derived) && !getContainingClassStaticBlock(derived.valueDeclaration)) {\n        symbols.set(base.escapedName, base);\n        symbols.set(base.escapedName, base);\n      }\n    }\n  }\n  function isStaticPrivateIdentifierProperty(s) {\n    return !!s.valueDeclaration && isPrivateIdentifierClassElementDeclaration(s.valueDeclaration) && isStatic(s.valueDeclaration);\n  }\n  function resolveDeclaredMembers(type) {\n    if (!type.declaredProperties) {\n      const symbol = type.symbol;\n      const members = getMembersOfSymbol(symbol);\n      type.declaredProperties = getNamedMembers(members);\n      type.declaredCallSignatures = emptyArray;\n      type.declaredConstructSignatures = emptyArray;\n      type.declaredIndexInfos = emptyArray;\n      type.declaredCallSignatures = getSignaturesOfSymbol(members.get(\"__call\" /* Call */));\n      type.declaredConstructSignatures = getSignaturesOfSymbol(members.get(\"__new\" /* New */));\n      type.declaredIndexInfos = getIndexInfosOfSymbol(symbol);\n    }\n    return type;\n  }\n  function isLateBindableName(node) {\n    return isLateBindableAST(node) && isTypeUsableAsPropertyName(isComputedPropertyName(node) ? checkComputedPropertyName(node) : checkExpressionCached(node.argumentExpression));\n  }\n  function isLateBindableIndexSignature(node) {\n    return isLateBindableAST(node) && isTypeUsableAsIndexSignature(isComputedPropertyName(node) ? checkComputedPropertyName(node) : checkExpressionCached(node.argumentExpression));\n  }\n  function isLateBindableAST(node) {\n    if (!isComputedPropertyName(node) && !isElementAccessExpression(node)) {\n      return false;\n    }\n    const expr = isComputedPropertyName(node) ? node.expression : node.argumentExpression;\n    return isEntityNameExpression(expr);\n  }\n  function isTypeUsableAsIndexSignature(type) {\n    return isTypeAssignableTo(type, stringNumberSymbolType);\n  }\n  function isLateBoundName(name) {\n    return name.charCodeAt(0) === 95 /* _ */ && name.charCodeAt(1) === 95 /* _ */ && name.charCodeAt(2) === 64 /* at */;\n  }\n  function hasLateBindableName(node) {\n    const name = getNameOfDeclaration(node);\n    return !!name && isLateBindableName(name);\n  }\n  function hasLateBindableIndexSignature(node) {\n    const name = getNameOfDeclaration(node);\n    return !!name && isLateBindableIndexSignature(name);\n  }\n  function hasBindableName(node) {\n    return !hasDynamicName(node) || hasLateBindableName(node);\n  }\n  function isNonBindableDynamicName(node) {\n    return isDynamicName(node) && !isLateBindableName(node);\n  }\n  function addDeclarationToLateBoundSymbol(symbol, member, symbolFlags) {\n    Debug.assert(!!(getCheckFlags(symbol) & 4096 /* Late */), \"Expected a late-bound symbol.\");\n    symbol.flags |= symbolFlags;\n    getSymbolLinks(member.symbol).lateSymbol = symbol;\n    if (!symbol.declarations) {\n      symbol.declarations = [member];\n    } else if (!member.symbol.isReplaceableByMethod) {\n      symbol.declarations.push(member);\n    }\n    if (symbolFlags & 111551 /* Value */) {\n      setValueDeclaration(symbol, member);\n    }\n  }\n  function lateBindMember(parent2, earlySymbols, lateSymbols, decl) {\n    Debug.assert(!!decl.symbol, \"The member is expected to have a symbol.\");\n    const links = getNodeLinks(decl);\n    if (!links.resolvedSymbol) {\n      links.resolvedSymbol = decl.symbol;\n      const declName = isBinaryExpression(decl) ? decl.left : decl.name;\n      const type = isElementAccessExpression(declName) ? checkExpressionCached(declName.argumentExpression) : checkComputedPropertyName(declName);\n      if (isTypeUsableAsPropertyName(type)) {\n        const memberName = getPropertyNameFromType(type);\n        const symbolFlags = decl.symbol.flags;\n        let lateSymbol = lateSymbols.get(memberName);\n        if (!lateSymbol) lateSymbols.set(memberName, lateSymbol = createSymbol(0 /* None */, memberName, 4096 /* Late */));\n        const earlySymbol = earlySymbols && earlySymbols.get(memberName);\n        if (!(parent2.flags & 32 /* Class */) && lateSymbol.flags & getExcludedSymbolFlags(symbolFlags)) {\n          const declarations = earlySymbol ? concatenate(earlySymbol.declarations, lateSymbol.declarations) : lateSymbol.declarations;\n          const name = !(type.flags & 8192 /* UniqueESSymbol */) && unescapeLeadingUnderscores(memberName) || declarationNameToString(declName);\n          forEach(declarations, (declaration) => error2(getNameOfDeclaration(declaration) || declaration, Diagnostics.Property_0_was_also_declared_here, name));\n          error2(declName || decl, Diagnostics.Duplicate_property_0, name);\n          lateSymbol = createSymbol(0 /* None */, memberName, 4096 /* Late */);\n        }\n        lateSymbol.links.nameType = type;\n        addDeclarationToLateBoundSymbol(lateSymbol, decl, symbolFlags);\n        if (lateSymbol.parent) {\n          Debug.assert(lateSymbol.parent === parent2, \"Existing symbol parent should match new one\");\n        } else {\n          lateSymbol.parent = parent2;\n        }\n        return links.resolvedSymbol = lateSymbol;\n      }\n    }\n    return links.resolvedSymbol;\n  }\n  function lateBindIndexSignature(parent2, earlySymbols, lateSymbols, decl) {\n    let indexSymbol = lateSymbols.get(\"__index\" /* Index */);\n    if (!indexSymbol) {\n      const early = earlySymbols == null ? void 0 : earlySymbols.get(\"__index\" /* Index */);\n      if (!early) {\n        indexSymbol = createSymbol(0 /* None */, \"__index\" /* Index */, 4096 /* Late */);\n      } else {\n        indexSymbol = cloneSymbol(early);\n        indexSymbol.links.checkFlags |= 4096 /* Late */;\n      }\n      lateSymbols.set(\"__index\" /* Index */, indexSymbol);\n    }\n    if (!indexSymbol.declarations) {\n      indexSymbol.declarations = [decl];\n    } else if (!decl.symbol.isReplaceableByMethod) {\n      indexSymbol.declarations.push(decl);\n    }\n  }\n  function getResolvedMembersOrExportsOfSymbol(symbol, resolutionKind) {\n    const links = getSymbolLinks(symbol);\n    if (!links[resolutionKind]) {\n      const isStatic2 = resolutionKind === \"resolvedExports\" /* resolvedExports */;\n      const earlySymbols = !isStatic2 ? symbol.members : symbol.flags & 1536 /* Module */ ? getExportsOfModuleWorker(symbol).exports : symbol.exports;\n      links[resolutionKind] = earlySymbols || emptySymbols;\n      const lateSymbols = createSymbolTable();\n      for (const decl of symbol.declarations || emptyArray) {\n        const members = getMembersOfDeclaration(decl);\n        if (members) {\n          for (const member of members) {\n            if (isStatic2 === hasStaticModifier(member)) {\n              if (hasLateBindableName(member)) {\n                lateBindMember(symbol, earlySymbols, lateSymbols, member);\n              } else if (hasLateBindableIndexSignature(member)) {\n                lateBindIndexSignature(symbol, earlySymbols, lateSymbols, member);\n              }\n            }\n          }\n        }\n      }\n      const assignments = getFunctionExpressionParentSymbolOrSymbol(symbol).assignmentDeclarationMembers;\n      if (assignments) {\n        const decls = arrayFrom(assignments.values());\n        for (const member of decls) {\n          const assignmentKind = getAssignmentDeclarationKind(member);\n          const isInstanceMember = assignmentKind === 3 /* PrototypeProperty */ || isBinaryExpression(member) && isPossiblyAliasedThisProperty(member, assignmentKind) || assignmentKind === 9 /* ObjectDefinePrototypeProperty */ || assignmentKind === 6 /* Prototype */;\n          if (isStatic2 === !isInstanceMember) {\n            if (hasLateBindableName(member)) {\n              lateBindMember(symbol, earlySymbols, lateSymbols, member);\n            }\n          }\n        }\n      }\n      let resolved = combineSymbolTables(earlySymbols, lateSymbols);\n      if (symbol.flags & 33554432 /* Transient */ && links.cjsExportMerged && symbol.declarations) {\n        for (const decl of symbol.declarations) {\n          const original = getSymbolLinks(decl.symbol)[resolutionKind];\n          if (!resolved) {\n            resolved = original;\n            continue;\n          }\n          if (!original) continue;\n          original.forEach((s, name) => {\n            const existing = resolved.get(name);\n            if (!existing) resolved.set(name, s);\n            else if (existing === s) return;\n            else resolved.set(name, mergeSymbol(existing, s));\n          });\n        }\n      }\n      links[resolutionKind] = resolved || emptySymbols;\n    }\n    return links[resolutionKind];\n  }\n  function getMembersOfSymbol(symbol) {\n    return symbol.flags & 6256 /* LateBindingContainer */ ? getResolvedMembersOrExportsOfSymbol(symbol, \"resolvedMembers\" /* resolvedMembers */) : symbol.members || emptySymbols;\n  }\n  function getLateBoundSymbol(symbol) {\n    if (symbol.flags & 106500 /* ClassMember */ && symbol.escapedName === \"__computed\" /* Computed */) {\n      const links = getSymbolLinks(symbol);\n      if (!links.lateSymbol && some(symbol.declarations, hasLateBindableName)) {\n        const parent2 = getMergedSymbol(symbol.parent);\n        if (some(symbol.declarations, hasStaticModifier)) {\n          getExportsOfSymbol(parent2);\n        } else {\n          getMembersOfSymbol(parent2);\n        }\n      }\n      return links.lateSymbol || (links.lateSymbol = symbol);\n    }\n    return symbol;\n  }\n  function getTypeWithThisArgument(type, thisArgument, needApparentType) {\n    if (getObjectFlags(type) & 4 /* Reference */) {\n      const target = type.target;\n      const typeArguments = getTypeArguments(type);\n      return length(target.typeParameters) === length(typeArguments) ? createTypeReference(target, concatenate(typeArguments, [thisArgument || target.thisType])) : type;\n    } else if (type.flags & 2097152 /* Intersection */) {\n      const types = sameMap(type.types, (t) => getTypeWithThisArgument(t, thisArgument, needApparentType));\n      return types !== type.types ? getIntersectionType(types) : type;\n    }\n    return needApparentType ? getApparentType(type) : type;\n  }\n  function resolveObjectTypeMembers(type, source, typeParameters, typeArguments) {\n    let mapper;\n    let members;\n    let callSignatures;\n    let constructSignatures;\n    let indexInfos;\n    if (rangeEquals(typeParameters, typeArguments, 0, typeParameters.length)) {\n      members = source.symbol ? getMembersOfSymbol(source.symbol) : createSymbolTable(source.declaredProperties);\n      callSignatures = source.declaredCallSignatures;\n      constructSignatures = source.declaredConstructSignatures;\n      indexInfos = source.declaredIndexInfos;\n    } else {\n      mapper = createTypeMapper(typeParameters, typeArguments);\n      members = createInstantiatedSymbolTable(\n        source.declaredProperties,\n        mapper,\n        /*mappingThisOnly*/\n        typeParameters.length === 1\n      );\n      callSignatures = instantiateSignatures(source.declaredCallSignatures, mapper);\n      constructSignatures = instantiateSignatures(source.declaredConstructSignatures, mapper);\n      indexInfos = instantiateIndexInfos(source.declaredIndexInfos, mapper);\n    }\n    const baseTypes = getBaseTypes(source);\n    if (baseTypes.length) {\n      if (source.symbol && members === getMembersOfSymbol(source.symbol)) {\n        const symbolTable = createSymbolTable(source.declaredProperties);\n        const sourceIndex = getIndexSymbol(source.symbol);\n        if (sourceIndex) {\n          symbolTable.set(\"__index\" /* Index */, sourceIndex);\n        }\n        members = symbolTable;\n      }\n      setStructuredTypeMembers(type, members, callSignatures, constructSignatures, indexInfos);\n      const thisArgument = lastOrUndefined(typeArguments);\n      for (const baseType of baseTypes) {\n        const instantiatedBaseType = thisArgument ? getTypeWithThisArgument(instantiateType(baseType, mapper), thisArgument) : baseType;\n        addInheritedMembers(members, getPropertiesOfType(instantiatedBaseType));\n        callSignatures = concatenate(callSignatures, getSignaturesOfType(instantiatedBaseType, 0 /* Call */));\n        constructSignatures = concatenate(constructSignatures, getSignaturesOfType(instantiatedBaseType, 1 /* Construct */));\n        const inheritedIndexInfos = instantiatedBaseType !== anyType ? getIndexInfosOfType(instantiatedBaseType) : [anyBaseTypeIndexInfo];\n        indexInfos = concatenate(indexInfos, filter(inheritedIndexInfos, (info) => !findIndexInfo(indexInfos, info.keyType)));\n      }\n    }\n    setStructuredTypeMembers(type, members, callSignatures, constructSignatures, indexInfos);\n  }\n  function resolveClassOrInterfaceMembers(type) {\n    resolveObjectTypeMembers(type, resolveDeclaredMembers(type), emptyArray, emptyArray);\n  }\n  function resolveTypeReferenceMembers(type) {\n    const source = resolveDeclaredMembers(type.target);\n    const typeParameters = concatenate(source.typeParameters, [source.thisType]);\n    const typeArguments = getTypeArguments(type);\n    const paddedTypeArguments = typeArguments.length === typeParameters.length ? typeArguments : concatenate(typeArguments, [type]);\n    resolveObjectTypeMembers(type, source, typeParameters, paddedTypeArguments);\n  }\n  function createSignature(declaration, typeParameters, thisParameter, parameters, resolvedReturnType, resolvedTypePredicate, minArgumentCount, flags) {\n    const sig = new Signature13(checker, flags);\n    sig.declaration = declaration;\n    sig.typeParameters = typeParameters;\n    sig.parameters = parameters;\n    sig.thisParameter = thisParameter;\n    sig.resolvedReturnType = resolvedReturnType;\n    sig.resolvedTypePredicate = resolvedTypePredicate;\n    sig.minArgumentCount = minArgumentCount;\n    sig.resolvedMinArgumentCount = void 0;\n    sig.target = void 0;\n    sig.mapper = void 0;\n    sig.compositeSignatures = void 0;\n    sig.compositeKind = void 0;\n    return sig;\n  }\n  function cloneSignature(sig) {\n    const result = createSignature(\n      sig.declaration,\n      sig.typeParameters,\n      sig.thisParameter,\n      sig.parameters,\n      /*resolvedReturnType*/\n      void 0,\n      /*resolvedTypePredicate*/\n      void 0,\n      sig.minArgumentCount,\n      sig.flags & 167 /* PropagatingFlags */\n    );\n    result.target = sig.target;\n    result.mapper = sig.mapper;\n    result.compositeSignatures = sig.compositeSignatures;\n    result.compositeKind = sig.compositeKind;\n    return result;\n  }\n  function createUnionSignature(signature, unionSignatures) {\n    const result = cloneSignature(signature);\n    result.compositeSignatures = unionSignatures;\n    result.compositeKind = 1048576 /* Union */;\n    result.target = void 0;\n    result.mapper = void 0;\n    return result;\n  }\n  function getOptionalCallSignature(signature, callChainFlags) {\n    if ((signature.flags & 24 /* CallChainFlags */) === callChainFlags) {\n      return signature;\n    }\n    if (!signature.optionalCallSignatureCache) {\n      signature.optionalCallSignatureCache = {};\n    }\n    const key = callChainFlags === 8 /* IsInnerCallChain */ ? \"inner\" : \"outer\";\n    return signature.optionalCallSignatureCache[key] || (signature.optionalCallSignatureCache[key] = createOptionalCallSignature(signature, callChainFlags));\n  }\n  function createOptionalCallSignature(signature, callChainFlags) {\n    Debug.assert(callChainFlags === 8 /* IsInnerCallChain */ || callChainFlags === 16 /* IsOuterCallChain */, \"An optional call signature can either be for an inner call chain or an outer call chain, but not both.\");\n    const result = cloneSignature(signature);\n    result.flags |= callChainFlags;\n    return result;\n  }\n  function getExpandedParameters(sig, skipUnionExpanding) {\n    if (signatureHasRestParameter(sig)) {\n      const restIndex = sig.parameters.length - 1;\n      const restSymbol = sig.parameters[restIndex];\n      const restType = getTypeOfSymbol(restSymbol);\n      if (isTupleType(restType)) {\n        return [expandSignatureParametersWithTupleMembers(restType, restIndex, restSymbol)];\n      } else if (!skipUnionExpanding && restType.flags & 1048576 /* Union */ && every(restType.types, isTupleType)) {\n        return map(restType.types, (t) => expandSignatureParametersWithTupleMembers(t, restIndex, restSymbol));\n      }\n    }\n    return [sig.parameters];\n    function expandSignatureParametersWithTupleMembers(restType, restIndex, restSymbol) {\n      const elementTypes = getTypeArguments(restType);\n      const associatedNames = getUniqAssociatedNamesFromTupleType(restType, restSymbol);\n      const restParams = map(elementTypes, (t, i) => {\n        const name = associatedNames && associatedNames[i] ? associatedNames[i] : getParameterNameAtPosition(sig, restIndex + i, restType);\n        const flags = restType.target.elementFlags[i];\n        const checkFlags = flags & 12 /* Variable */ ? 32768 /* RestParameter */ : flags & 2 /* Optional */ ? 16384 /* OptionalParameter */ : 0;\n        const symbol = createSymbol(1 /* FunctionScopedVariable */, name, checkFlags);\n        symbol.links.type = flags & 4 /* Rest */ ? createArrayType(t) : t;\n        return symbol;\n      });\n      return concatenate(sig.parameters.slice(0, restIndex), restParams);\n    }\n    function getUniqAssociatedNamesFromTupleType(type, restSymbol) {\n      const names = map(type.target.labeledElementDeclarations, (labeledElement, i) => getTupleElementLabel(labeledElement, i, type.target.elementFlags[i], restSymbol));\n      if (names) {\n        const duplicates = [];\n        const uniqueNames = /* @__PURE__ */ new Set();\n        for (let i = 0; i < names.length; i++) {\n          const name = names[i];\n          if (!tryAddToSet(uniqueNames, name)) {\n            duplicates.push(i);\n          }\n        }\n        const counters = /* @__PURE__ */ new Map();\n        for (const i of duplicates) {\n          let counter = counters.get(names[i]) ?? 1;\n          let name;\n          while (!tryAddToSet(uniqueNames, name = `${names[i]}_${counter}`)) {\n            counter++;\n          }\n          names[i] = name;\n          counters.set(names[i], counter + 1);\n        }\n      }\n      return names;\n    }\n  }\n  function getDefaultConstructSignatures(classType) {\n    const baseConstructorType = getBaseConstructorTypeOfClass(classType);\n    const baseSignatures = getSignaturesOfType(baseConstructorType, 1 /* Construct */);\n    const declaration = getClassLikeDeclarationOfSymbol(classType.symbol);\n    const isAbstract = !!declaration && hasSyntacticModifier(declaration, 64 /* Abstract */);\n    if (baseSignatures.length === 0) {\n      return [createSignature(\n        /*declaration*/\n        void 0,\n        classType.localTypeParameters,\n        /*thisParameter*/\n        void 0,\n        emptyArray,\n        classType,\n        /*resolvedTypePredicate*/\n        void 0,\n        0,\n        isAbstract ? 4 /* Abstract */ : 0 /* None */\n      )];\n    }\n    const baseTypeNode = getBaseTypeNodeOfClass(classType);\n    const isJavaScript = isInJSFile(baseTypeNode);\n    const typeArguments = typeArgumentsFromTypeReferenceNode(baseTypeNode);\n    const typeArgCount = length(typeArguments);\n    const result = [];\n    for (const baseSig of baseSignatures) {\n      const minTypeArgumentCount = getMinTypeArgumentCount(baseSig.typeParameters);\n      const typeParamCount = length(baseSig.typeParameters);\n      if (isJavaScript || typeArgCount >= minTypeArgumentCount && typeArgCount <= typeParamCount) {\n        const sig = typeParamCount ? createSignatureInstantiation(baseSig, fillMissingTypeArguments(typeArguments, baseSig.typeParameters, minTypeArgumentCount, isJavaScript)) : cloneSignature(baseSig);\n        sig.typeParameters = classType.localTypeParameters;\n        sig.resolvedReturnType = classType;\n        sig.flags = isAbstract ? sig.flags | 4 /* Abstract */ : sig.flags & ~4 /* Abstract */;\n        result.push(sig);\n      }\n    }\n    return result;\n  }\n  function findMatchingSignature(signatureList, signature, partialMatch, ignoreThisTypes, ignoreReturnTypes) {\n    for (const s of signatureList) {\n      if (compareSignaturesIdentical(s, signature, partialMatch, ignoreThisTypes, ignoreReturnTypes, partialMatch ? compareTypesSubtypeOf : compareTypesIdentical)) {\n        return s;\n      }\n    }\n  }\n  function findMatchingSignatures(signatureLists, signature, listIndex) {\n    if (signature.typeParameters) {\n      if (listIndex > 0) {\n        return void 0;\n      }\n      for (let i = 1; i < signatureLists.length; i++) {\n        if (!findMatchingSignature(\n          signatureLists[i],\n          signature,\n          /*partialMatch*/\n          false,\n          /*ignoreThisTypes*/\n          false,\n          /*ignoreReturnTypes*/\n          false\n        )) {\n          return void 0;\n        }\n      }\n      return [signature];\n    }\n    let result;\n    for (let i = 0; i < signatureLists.length; i++) {\n      const match = i === listIndex ? signature : findMatchingSignature(\n        signatureLists[i],\n        signature,\n        /*partialMatch*/\n        false,\n        /*ignoreThisTypes*/\n        false,\n        /*ignoreReturnTypes*/\n        true\n      ) || findMatchingSignature(\n        signatureLists[i],\n        signature,\n        /*partialMatch*/\n        true,\n        /*ignoreThisTypes*/\n        false,\n        /*ignoreReturnTypes*/\n        true\n      );\n      if (!match) {\n        return void 0;\n      }\n      result = appendIfUnique(result, match);\n    }\n    return result;\n  }\n  function getUnionSignatures(signatureLists) {\n    let result;\n    let indexWithLengthOverOne;\n    for (let i = 0; i < signatureLists.length; i++) {\n      if (signatureLists[i].length === 0) return emptyArray;\n      if (signatureLists[i].length > 1) {\n        indexWithLengthOverOne = indexWithLengthOverOne === void 0 ? i : -1;\n      }\n      for (const signature of signatureLists[i]) {\n        if (!result || !findMatchingSignature(\n          result,\n          signature,\n          /*partialMatch*/\n          false,\n          /*ignoreThisTypes*/\n          false,\n          /*ignoreReturnTypes*/\n          true\n        )) {\n          const unionSignatures = findMatchingSignatures(signatureLists, signature, i);\n          if (unionSignatures) {\n            let s = signature;\n            if (unionSignatures.length > 1) {\n              let thisParameter = signature.thisParameter;\n              const firstThisParameterOfUnionSignatures = forEach(unionSignatures, (sig) => sig.thisParameter);\n              if (firstThisParameterOfUnionSignatures) {\n                const thisType = getIntersectionType(mapDefined(unionSignatures, (sig) => sig.thisParameter && getTypeOfSymbol(sig.thisParameter)));\n                thisParameter = createSymbolWithType(firstThisParameterOfUnionSignatures, thisType);\n              }\n              s = createUnionSignature(signature, unionSignatures);\n              s.thisParameter = thisParameter;\n            }\n            (result || (result = [])).push(s);\n          }\n        }\n      }\n    }\n    if (!length(result) && indexWithLengthOverOne !== -1) {\n      const masterList = signatureLists[indexWithLengthOverOne !== void 0 ? indexWithLengthOverOne : 0];\n      let results = masterList.slice();\n      for (const signatures of signatureLists) {\n        if (signatures !== masterList) {\n          const signature = signatures[0];\n          Debug.assert(!!signature, \"getUnionSignatures bails early on empty signature lists and should not have empty lists on second pass\");\n          results = !!signature.typeParameters && some(results, (s) => !!s.typeParameters && !compareTypeParametersIdentical(signature.typeParameters, s.typeParameters)) ? void 0 : map(results, (sig) => combineSignaturesOfUnionMembers(sig, signature));\n          if (!results) {\n            break;\n          }\n        }\n      }\n      result = results;\n    }\n    return result || emptyArray;\n  }\n  function compareTypeParametersIdentical(sourceParams, targetParams) {\n    if (length(sourceParams) !== length(targetParams)) {\n      return false;\n    }\n    if (!sourceParams || !targetParams) {\n      return true;\n    }\n    const mapper = createTypeMapper(targetParams, sourceParams);\n    for (let i = 0; i < sourceParams.length; i++) {\n      const source = sourceParams[i];\n      const target = targetParams[i];\n      if (source === target) continue;\n      if (!isTypeIdenticalTo(getConstraintFromTypeParameter(source) || unknownType, instantiateType(getConstraintFromTypeParameter(target) || unknownType, mapper))) return false;\n    }\n    return true;\n  }\n  function combineUnionThisParam(left, right, mapper) {\n    if (!left || !right) {\n      return left || right;\n    }\n    const thisType = getIntersectionType([getTypeOfSymbol(left), instantiateType(getTypeOfSymbol(right), mapper)]);\n    return createSymbolWithType(left, thisType);\n  }\n  function combineUnionParameters(left, right, mapper) {\n    const leftCount = getParameterCount(left);\n    const rightCount = getParameterCount(right);\n    const longest = leftCount >= rightCount ? left : right;\n    const shorter = longest === left ? right : left;\n    const longestCount = longest === left ? leftCount : rightCount;\n    const eitherHasEffectiveRest = hasEffectiveRestParameter(left) || hasEffectiveRestParameter(right);\n    const needsExtraRestElement = eitherHasEffectiveRest && !hasEffectiveRestParameter(longest);\n    const params = new Array(longestCount + (needsExtraRestElement ? 1 : 0));\n    for (let i = 0; i < longestCount; i++) {\n      let longestParamType = tryGetTypeAtPosition(longest, i);\n      if (longest === right) {\n        longestParamType = instantiateType(longestParamType, mapper);\n      }\n      let shorterParamType = tryGetTypeAtPosition(shorter, i) || unknownType;\n      if (shorter === right) {\n        shorterParamType = instantiateType(shorterParamType, mapper);\n      }\n      const unionParamType = getIntersectionType([longestParamType, shorterParamType]);\n      const isRestParam = eitherHasEffectiveRest && !needsExtraRestElement && i === longestCount - 1;\n      const isOptional = i >= getMinArgumentCount(longest) && i >= getMinArgumentCount(shorter);\n      const leftName = i >= leftCount ? void 0 : getParameterNameAtPosition(left, i);\n      const rightName = i >= rightCount ? void 0 : getParameterNameAtPosition(right, i);\n      const paramName = leftName === rightName ? leftName : !leftName ? rightName : !rightName ? leftName : void 0;\n      const paramSymbol = createSymbol(\n        1 /* FunctionScopedVariable */ | (isOptional && !isRestParam ? 16777216 /* Optional */ : 0),\n        paramName || `arg${i}`,\n        isRestParam ? 32768 /* RestParameter */ : isOptional ? 16384 /* OptionalParameter */ : 0\n      );\n      paramSymbol.links.type = isRestParam ? createArrayType(unionParamType) : unionParamType;\n      params[i] = paramSymbol;\n    }\n    if (needsExtraRestElement) {\n      const restParamSymbol = createSymbol(1 /* FunctionScopedVariable */, \"args\", 32768 /* RestParameter */);\n      restParamSymbol.links.type = createArrayType(getTypeAtPosition(shorter, longestCount));\n      if (shorter === right) {\n        restParamSymbol.links.type = instantiateType(restParamSymbol.links.type, mapper);\n      }\n      params[longestCount] = restParamSymbol;\n    }\n    return params;\n  }\n  function combineSignaturesOfUnionMembers(left, right) {\n    const typeParams = left.typeParameters || right.typeParameters;\n    let paramMapper;\n    if (left.typeParameters && right.typeParameters) {\n      paramMapper = createTypeMapper(right.typeParameters, left.typeParameters);\n    }\n    let flags = (left.flags | right.flags) & (167 /* PropagatingFlags */ & ~1 /* HasRestParameter */);\n    const declaration = left.declaration;\n    const params = combineUnionParameters(left, right, paramMapper);\n    const lastParam = lastOrUndefined(params);\n    if (lastParam && getCheckFlags(lastParam) & 32768 /* RestParameter */) {\n      flags |= 1 /* HasRestParameter */;\n    }\n    const thisParam = combineUnionThisParam(left.thisParameter, right.thisParameter, paramMapper);\n    const minArgCount = Math.max(left.minArgumentCount, right.minArgumentCount);\n    const result = createSignature(\n      declaration,\n      typeParams,\n      thisParam,\n      params,\n      /*resolvedReturnType*/\n      void 0,\n      /*resolvedTypePredicate*/\n      void 0,\n      minArgCount,\n      flags\n    );\n    result.compositeKind = 1048576 /* Union */;\n    result.compositeSignatures = concatenate(left.compositeKind !== 2097152 /* Intersection */ && left.compositeSignatures || [left], [right]);\n    if (paramMapper) {\n      result.mapper = left.compositeKind !== 2097152 /* Intersection */ && left.mapper && left.compositeSignatures ? combineTypeMappers(left.mapper, paramMapper) : paramMapper;\n    } else if (left.compositeKind !== 2097152 /* Intersection */ && left.mapper && left.compositeSignatures) {\n      result.mapper = left.mapper;\n    }\n    return result;\n  }\n  function getUnionIndexInfos(types) {\n    const sourceInfos = getIndexInfosOfType(types[0]);\n    if (sourceInfos) {\n      const result = [];\n      for (const info of sourceInfos) {\n        const indexType = info.keyType;\n        if (every(types, (t) => !!getIndexInfoOfType(t, indexType))) {\n          result.push(createIndexInfo(indexType, getUnionType(map(types, (t) => getIndexTypeOfType(t, indexType))), some(types, (t) => getIndexInfoOfType(t, indexType).isReadonly)));\n        }\n      }\n      return result;\n    }\n    return emptyArray;\n  }\n  function resolveUnionTypeMembers(type) {\n    const callSignatures = getUnionSignatures(map(type.types, (t) => t === globalFunctionType ? [unknownSignature] : getSignaturesOfType(t, 0 /* Call */)));\n    const constructSignatures = getUnionSignatures(map(type.types, (t) => getSignaturesOfType(t, 1 /* Construct */)));\n    const indexInfos = getUnionIndexInfos(type.types);\n    setStructuredTypeMembers(type, emptySymbols, callSignatures, constructSignatures, indexInfos);\n  }\n  function intersectTypes(type1, type2) {\n    return !type1 ? type2 : !type2 ? type1 : getIntersectionType([type1, type2]);\n  }\n  function findMixins(types) {\n    const constructorTypeCount = countWhere(types, (t) => getSignaturesOfType(t, 1 /* Construct */).length > 0);\n    const mixinFlags = map(types, isMixinConstructorType);\n    if (constructorTypeCount > 0 && constructorTypeCount === countWhere(mixinFlags, (b) => b)) {\n      const firstMixinIndex = mixinFlags.indexOf(\n        /*searchElement*/\n        true\n      );\n      mixinFlags[firstMixinIndex] = false;\n    }\n    return mixinFlags;\n  }\n  function includeMixinType(type, types, mixinFlags, index) {\n    const mixedTypes = [];\n    for (let i = 0; i < types.length; i++) {\n      if (i === index) {\n        mixedTypes.push(type);\n      } else if (mixinFlags[i]) {\n        mixedTypes.push(getReturnTypeOfSignature(getSignaturesOfType(types[i], 1 /* Construct */)[0]));\n      }\n    }\n    return getIntersectionType(mixedTypes);\n  }\n  function resolveIntersectionTypeMembers(type) {\n    let callSignatures;\n    let constructSignatures;\n    let indexInfos;\n    const types = type.types;\n    const mixinFlags = findMixins(types);\n    const mixinCount = countWhere(mixinFlags, (b) => b);\n    for (let i = 0; i < types.length; i++) {\n      const t = type.types[i];\n      if (!mixinFlags[i]) {\n        let signatures = getSignaturesOfType(t, 1 /* Construct */);\n        if (signatures.length && mixinCount > 0) {\n          signatures = map(signatures, (s) => {\n            const clone2 = cloneSignature(s);\n            clone2.resolvedReturnType = includeMixinType(getReturnTypeOfSignature(s), types, mixinFlags, i);\n            return clone2;\n          });\n        }\n        constructSignatures = appendSignatures(constructSignatures, signatures);\n      }\n      callSignatures = appendSignatures(callSignatures, getSignaturesOfType(t, 0 /* Call */));\n      indexInfos = reduceLeft(getIndexInfosOfType(t), (infos, newInfo) => appendIndexInfo(\n        infos,\n        newInfo,\n        /*union*/\n        false\n      ), indexInfos);\n    }\n    setStructuredTypeMembers(type, emptySymbols, callSignatures || emptyArray, constructSignatures || emptyArray, indexInfos || emptyArray);\n  }\n  function appendSignatures(signatures, newSignatures) {\n    for (const sig of newSignatures) {\n      if (!signatures || every(signatures, (s) => !compareSignaturesIdentical(\n        s,\n        sig,\n        /*partialMatch*/\n        false,\n        /*ignoreThisTypes*/\n        false,\n        /*ignoreReturnTypes*/\n        false,\n        compareTypesIdentical\n      ))) {\n        signatures = append(signatures, sig);\n      }\n    }\n    return signatures;\n  }\n  function appendIndexInfo(indexInfos, newInfo, union) {\n    if (indexInfos) {\n      for (let i = 0; i < indexInfos.length; i++) {\n        const info = indexInfos[i];\n        if (info.keyType === newInfo.keyType) {\n          indexInfos[i] = createIndexInfo(info.keyType, union ? getUnionType([info.type, newInfo.type]) : getIntersectionType([info.type, newInfo.type]), union ? info.isReadonly || newInfo.isReadonly : info.isReadonly && newInfo.isReadonly);\n          return indexInfos;\n        }\n      }\n    }\n    return append(indexInfos, newInfo);\n  }\n  function resolveAnonymousTypeMembers(type) {\n    if (type.target) {\n      setStructuredTypeMembers(type, emptySymbols, emptyArray, emptyArray, emptyArray);\n      const members2 = createInstantiatedSymbolTable(\n        getPropertiesOfObjectType(type.target),\n        type.mapper,\n        /*mappingThisOnly*/\n        false\n      );\n      const callSignatures = instantiateSignatures(getSignaturesOfType(type.target, 0 /* Call */), type.mapper);\n      const constructSignatures = instantiateSignatures(getSignaturesOfType(type.target, 1 /* Construct */), type.mapper);\n      const indexInfos2 = instantiateIndexInfos(getIndexInfosOfType(type.target), type.mapper);\n      setStructuredTypeMembers(type, members2, callSignatures, constructSignatures, indexInfos2);\n      return;\n    }\n    const symbol = getMergedSymbol(type.symbol);\n    if (symbol.flags & 2048 /* TypeLiteral */) {\n      setStructuredTypeMembers(type, emptySymbols, emptyArray, emptyArray, emptyArray);\n      const members2 = getMembersOfSymbol(symbol);\n      const callSignatures = getSignaturesOfSymbol(members2.get(\"__call\" /* Call */));\n      const constructSignatures = getSignaturesOfSymbol(members2.get(\"__new\" /* New */));\n      const indexInfos2 = getIndexInfosOfSymbol(symbol);\n      setStructuredTypeMembers(type, members2, callSignatures, constructSignatures, indexInfos2);\n      return;\n    }\n    let members = getExportsOfSymbol(symbol);\n    let indexInfos;\n    if (symbol === globalThisSymbol) {\n      const varsOnly = /* @__PURE__ */ new Map();\n      members.forEach((p) => {\n        var _a;\n        if (!(p.flags & 418 /* BlockScoped */) && !(p.flags & 512 /* ValueModule */ && ((_a = p.declarations) == null ? void 0 : _a.length) && every(p.declarations, isAmbientModule))) {\n          varsOnly.set(p.escapedName, p);\n        }\n      });\n      members = varsOnly;\n    }\n    let baseConstructorIndexInfo;\n    setStructuredTypeMembers(type, members, emptyArray, emptyArray, emptyArray);\n    if (symbol.flags & 32 /* Class */) {\n      const classType = getDeclaredTypeOfClassOrInterface(symbol);\n      const baseConstructorType = getBaseConstructorTypeOfClass(classType);\n      if (baseConstructorType.flags & (524288 /* Object */ | 2097152 /* Intersection */ | 8650752 /* TypeVariable */)) {\n        members = createSymbolTable(getNamedOrIndexSignatureMembers(members));\n        addInheritedMembers(members, getPropertiesOfType(baseConstructorType));\n      } else if (baseConstructorType === anyType) {\n        baseConstructorIndexInfo = anyBaseTypeIndexInfo;\n      }\n    }\n    const indexSymbol = getIndexSymbolFromSymbolTable(members);\n    if (indexSymbol) {\n      indexInfos = getIndexInfosOfIndexSymbol(indexSymbol, arrayFrom(members.values()));\n    } else {\n      if (baseConstructorIndexInfo) {\n        indexInfos = append(indexInfos, baseConstructorIndexInfo);\n      }\n      if (symbol.flags & 384 /* Enum */ && (getDeclaredTypeOfSymbol(symbol).flags & 32 /* Enum */ || some(type.properties, (prop) => !!(getTypeOfSymbol(prop).flags & 296 /* NumberLike */)))) {\n        indexInfos = append(indexInfos, enumNumberIndexInfo);\n      }\n    }\n    setStructuredTypeMembers(type, members, emptyArray, emptyArray, indexInfos || emptyArray);\n    if (symbol.flags & (16 /* Function */ | 8192 /* Method */)) {\n      type.callSignatures = getSignaturesOfSymbol(symbol);\n    }\n    if (symbol.flags & 32 /* Class */) {\n      const classType = getDeclaredTypeOfClassOrInterface(symbol);\n      let constructSignatures = symbol.members ? getSignaturesOfSymbol(symbol.members.get(\"__constructor\" /* Constructor */)) : emptyArray;\n      if (symbol.flags & 16 /* Function */) {\n        constructSignatures = addRange(\n          constructSignatures.slice(),\n          mapDefined(\n            type.callSignatures,\n            (sig) => isJSConstructor(sig.declaration) ? createSignature(\n              sig.declaration,\n              sig.typeParameters,\n              sig.thisParameter,\n              sig.parameters,\n              classType,\n              /*resolvedTypePredicate*/\n              void 0,\n              sig.minArgumentCount,\n              sig.flags & 167 /* PropagatingFlags */\n            ) : void 0\n          )\n        );\n      }\n      if (!constructSignatures.length) {\n        constructSignatures = getDefaultConstructSignatures(classType);\n      }\n      type.constructSignatures = constructSignatures;\n    }\n  }\n  function replaceIndexedAccess(instantiable, type, replacement) {\n    return instantiateType(instantiable, createTypeMapper([type.indexType, type.objectType], [getNumberLiteralType(0), createTupleType([replacement])]));\n  }\n  function getLimitedConstraint(type) {\n    const constraint = getConstraintTypeFromMappedType(type.mappedType);\n    if (!(constraint.flags & 1048576 /* Union */ || constraint.flags & 2097152 /* Intersection */)) {\n      return;\n    }\n    const origin = constraint.flags & 1048576 /* Union */ ? constraint.origin : constraint;\n    if (!origin || !(origin.flags & 2097152 /* Intersection */)) {\n      return;\n    }\n    const limitedConstraint = getIntersectionType(origin.types.filter((t) => t !== type.constraintType));\n    return limitedConstraint !== neverType ? limitedConstraint : void 0;\n  }\n  function resolveReverseMappedTypeMembers(type) {\n    const indexInfo = getIndexInfoOfType(type.source, stringType);\n    const modifiers = getMappedTypeModifiers(type.mappedType);\n    const readonlyMask = modifiers & 1 /* IncludeReadonly */ ? false : true;\n    const optionalMask = modifiers & 4 /* IncludeOptional */ ? 0 : 16777216 /* Optional */;\n    const indexInfos = indexInfo ? [createIndexInfo(stringType, inferReverseMappedType(indexInfo.type, type.mappedType, type.constraintType) || unknownType, readonlyMask && indexInfo.isReadonly)] : emptyArray;\n    const members = createSymbolTable();\n    const limitedConstraint = getLimitedConstraint(type);\n    for (const prop of getPropertiesOfType(type.source)) {\n      if (limitedConstraint) {\n        const propertyNameType = getLiteralTypeFromProperty(prop, 8576 /* StringOrNumberLiteralOrUnique */);\n        if (!isTypeAssignableTo(propertyNameType, limitedConstraint)) {\n          continue;\n        }\n      }\n      const checkFlags = 8192 /* ReverseMapped */ | (readonlyMask && isReadonlySymbol(prop) ? 8 /* Readonly */ : 0);\n      const inferredProp = createSymbol(4 /* Property */ | prop.flags & optionalMask, prop.escapedName, checkFlags);\n      inferredProp.declarations = prop.declarations;\n      inferredProp.links.nameType = getSymbolLinks(prop).nameType;\n      inferredProp.links.propertyType = getTypeOfSymbol(prop);\n      if (type.constraintType.type.flags & 8388608 /* IndexedAccess */ && type.constraintType.type.objectType.flags & 262144 /* TypeParameter */ && type.constraintType.type.indexType.flags & 262144 /* TypeParameter */) {\n        const newTypeParam = type.constraintType.type.objectType;\n        const newMappedType = replaceIndexedAccess(type.mappedType, type.constraintType.type, newTypeParam);\n        inferredProp.links.mappedType = newMappedType;\n        inferredProp.links.constraintType = getIndexType(newTypeParam);\n      } else {\n        inferredProp.links.mappedType = type.mappedType;\n        inferredProp.links.constraintType = type.constraintType;\n      }\n      members.set(prop.escapedName, inferredProp);\n    }\n    setStructuredTypeMembers(type, members, emptyArray, emptyArray, indexInfos);\n  }\n  function getLowerBoundOfKeyType(type) {\n    if (type.flags & 4194304 /* Index */) {\n      const t = getApparentType(type.type);\n      return isGenericTupleType(t) ? getKnownKeysOfTupleType(t) : getIndexType(t);\n    }\n    if (type.flags & 16777216 /* Conditional */) {\n      if (type.root.isDistributive) {\n        const checkType = type.checkType;\n        const constraint = getLowerBoundOfKeyType(checkType);\n        if (constraint !== checkType) {\n          return getConditionalTypeInstantiation(\n            type,\n            prependTypeMapping(type.root.checkType, constraint, type.mapper),\n            /*forConstraint*/\n            false\n          );\n        }\n      }\n      return type;\n    }\n    if (type.flags & 1048576 /* Union */) {\n      return mapType(\n        type,\n        getLowerBoundOfKeyType,\n        /*noReductions*/\n        true\n      );\n    }\n    if (type.flags & 2097152 /* Intersection */) {\n      const types = type.types;\n      if (types.length === 2 && !!(types[0].flags & (4 /* String */ | 8 /* Number */ | 64 /* BigInt */)) && types[1] === emptyTypeLiteralType) {\n        return type;\n      }\n      return getIntersectionType(sameMap(type.types, getLowerBoundOfKeyType));\n    }\n    return type;\n  }\n  function getIsLateCheckFlag(s) {\n    return getCheckFlags(s) & 4096 /* Late */;\n  }\n  function forEachMappedTypePropertyKeyTypeAndIndexSignatureKeyType(type, include, stringsOnly, cb) {\n    for (const prop of getPropertiesOfType(type)) {\n      cb(getLiteralTypeFromProperty(prop, include));\n    }\n    if (type.flags & 1 /* Any */) {\n      cb(stringType);\n    } else {\n      for (const info of getIndexInfosOfType(type)) {\n        if (!stringsOnly || info.keyType.flags & (4 /* String */ | 134217728 /* TemplateLiteral */)) {\n          cb(info.keyType);\n        }\n      }\n    }\n  }\n  function resolveMappedTypeMembers(type) {\n    const members = createSymbolTable();\n    let indexInfos;\n    setStructuredTypeMembers(type, emptySymbols, emptyArray, emptyArray, emptyArray);\n    const typeParameter = getTypeParameterFromMappedType(type);\n    const constraintType = getConstraintTypeFromMappedType(type);\n    const mappedType = type.target || type;\n    const nameType = getNameTypeFromMappedType(mappedType);\n    const shouldLinkPropDeclarations = getMappedTypeNameTypeKind(mappedType) !== 2 /* Remapping */;\n    const templateType = getTemplateTypeFromMappedType(mappedType);\n    const modifiersType = getApparentType(getModifiersTypeFromMappedType(type));\n    const templateModifiers = getMappedTypeModifiers(type);\n    const include = 8576 /* StringOrNumberLiteralOrUnique */;\n    if (isMappedTypeWithKeyofConstraintDeclaration(type)) {\n      forEachMappedTypePropertyKeyTypeAndIndexSignatureKeyType(\n        modifiersType,\n        include,\n        /*stringsOnly*/\n        false,\n        addMemberForKeyType\n      );\n    } else {\n      forEachType(getLowerBoundOfKeyType(constraintType), addMemberForKeyType);\n    }\n    setStructuredTypeMembers(type, members, emptyArray, emptyArray, indexInfos || emptyArray);\n    function addMemberForKeyType(keyType) {\n      const propNameType = nameType ? instantiateType(nameType, appendTypeMapping(type.mapper, typeParameter, keyType)) : keyType;\n      forEachType(propNameType, (t) => addMemberForKeyTypeWorker(keyType, t));\n    }\n    function addMemberForKeyTypeWorker(keyType, propNameType) {\n      if (isTypeUsableAsPropertyName(propNameType)) {\n        const propName = getPropertyNameFromType(propNameType);\n        const existingProp = members.get(propName);\n        if (existingProp) {\n          existingProp.links.nameType = getUnionType([existingProp.links.nameType, propNameType]);\n          existingProp.links.keyType = getUnionType([existingProp.links.keyType, keyType]);\n        } else {\n          const modifiersProp = isTypeUsableAsPropertyName(keyType) ? getPropertyOfType(modifiersType, getPropertyNameFromType(keyType)) : void 0;\n          const isOptional = !!(templateModifiers & 4 /* IncludeOptional */ || !(templateModifiers & 8 /* ExcludeOptional */) && modifiersProp && modifiersProp.flags & 16777216 /* Optional */);\n          const isReadonly = !!(templateModifiers & 1 /* IncludeReadonly */ || !(templateModifiers & 2 /* ExcludeReadonly */) && modifiersProp && isReadonlySymbol(modifiersProp));\n          const stripOptional = strictNullChecks && !isOptional && modifiersProp && modifiersProp.flags & 16777216 /* Optional */;\n          const lateFlag = modifiersProp ? getIsLateCheckFlag(modifiersProp) : 0;\n          const prop = createSymbol(4 /* Property */ | (isOptional ? 16777216 /* Optional */ : 0), propName, lateFlag | 262144 /* Mapped */ | (isReadonly ? 8 /* Readonly */ : 0) | (stripOptional ? 524288 /* StripOptional */ : 0));\n          prop.links.mappedType = type;\n          prop.links.nameType = propNameType;\n          prop.links.keyType = keyType;\n          if (modifiersProp) {\n            prop.links.syntheticOrigin = modifiersProp;\n            prop.declarations = shouldLinkPropDeclarations ? modifiersProp.declarations : void 0;\n          }\n          members.set(propName, prop);\n        }\n      } else if (isValidIndexKeyType(propNameType) || propNameType.flags & (1 /* Any */ | 32 /* Enum */)) {\n        const indexKeyType = propNameType.flags & (1 /* Any */ | 4 /* String */) ? stringType : propNameType.flags & (8 /* Number */ | 32 /* Enum */) ? numberType : propNameType;\n        const propType = instantiateType(templateType, appendTypeMapping(type.mapper, typeParameter, keyType));\n        const modifiersIndexInfo = getApplicableIndexInfo(modifiersType, propNameType);\n        const isReadonly = !!(templateModifiers & 1 /* IncludeReadonly */ || !(templateModifiers & 2 /* ExcludeReadonly */) && (modifiersIndexInfo == null ? void 0 : modifiersIndexInfo.isReadonly));\n        const indexInfo = createIndexInfo(indexKeyType, propType, isReadonly);\n        indexInfos = appendIndexInfo(\n          indexInfos,\n          indexInfo,\n          /*union*/\n          true\n        );\n      }\n    }\n  }\n  function getTypeOfMappedSymbol(symbol) {\n    var _a;\n    if (!symbol.links.type) {\n      const mappedType = symbol.links.mappedType;\n      if (!pushTypeResolution(symbol, 0 /* Type */)) {\n        mappedType.containsError = true;\n        return errorType;\n      }\n      const templateType = getTemplateTypeFromMappedType(mappedType.target || mappedType);\n      const mapper = appendTypeMapping(mappedType.mapper, getTypeParameterFromMappedType(mappedType), symbol.links.keyType);\n      const propType = instantiateType(templateType, mapper);\n      let type = strictNullChecks && symbol.flags & 16777216 /* Optional */ && !maybeTypeOfKind(propType, 32768 /* Undefined */ | 16384 /* Void */) ? getOptionalType(\n        propType,\n        /*isProperty*/\n        true\n      ) : symbol.links.checkFlags & 524288 /* StripOptional */ ? removeMissingOrUndefinedType(propType) : propType;\n      if (!popTypeResolution()) {\n        error2(currentNode, Diagnostics.Type_of_property_0_circularly_references_itself_in_mapped_type_1, symbolToString(symbol), typeToString(mappedType));\n        type = errorType;\n      }\n      (_a = symbol.links).type ?? (_a.type = type);\n    }\n    return symbol.links.type;\n  }\n  function getTypeParameterFromMappedType(type) {\n    return type.typeParameter || (type.typeParameter = getDeclaredTypeOfTypeParameter(getSymbolOfDeclaration(type.declaration.typeParameter)));\n  }\n  function getConstraintTypeFromMappedType(type) {\n    return type.constraintType || (type.constraintType = getConstraintOfTypeParameter(getTypeParameterFromMappedType(type)) || errorType);\n  }\n  function getNameTypeFromMappedType(type) {\n    return type.declaration.nameType ? type.nameType || (type.nameType = instantiateType(getTypeFromTypeNode(type.declaration.nameType), type.mapper)) : void 0;\n  }\n  function getTemplateTypeFromMappedType(type) {\n    return type.templateType || (type.templateType = type.declaration.type ? instantiateType(addOptionality(\n      getTypeFromTypeNode(type.declaration.type),\n      /*isProperty*/\n      true,\n      !!(getMappedTypeModifiers(type) & 4 /* IncludeOptional */)\n    ), type.mapper) : errorType);\n  }\n  function getConstraintDeclarationForMappedType(type) {\n    return getEffectiveConstraintOfTypeParameter(type.declaration.typeParameter);\n  }\n  function isMappedTypeWithKeyofConstraintDeclaration(type) {\n    const constraintDeclaration = getConstraintDeclarationForMappedType(type);\n    return constraintDeclaration.kind === 199 /* TypeOperator */ && constraintDeclaration.operator === 143 /* KeyOfKeyword */;\n  }\n  function getModifiersTypeFromMappedType(type) {\n    if (!type.modifiersType) {\n      if (isMappedTypeWithKeyofConstraintDeclaration(type)) {\n        type.modifiersType = instantiateType(getTypeFromTypeNode(getConstraintDeclarationForMappedType(type).type), type.mapper);\n      } else {\n        const declaredType = getTypeFromMappedTypeNode(type.declaration);\n        const constraint = getConstraintTypeFromMappedType(declaredType);\n        const extendedConstraint = constraint && constraint.flags & 262144 /* TypeParameter */ ? getConstraintOfTypeParameter(constraint) : constraint;\n        type.modifiersType = extendedConstraint && extendedConstraint.flags & 4194304 /* Index */ ? instantiateType(extendedConstraint.type, type.mapper) : unknownType;\n      }\n    }\n    return type.modifiersType;\n  }\n  function getMappedTypeModifiers(type) {\n    const declaration = type.declaration;\n    return (declaration.readonlyToken ? declaration.readonlyToken.kind === 41 /* MinusToken */ ? 2 /* ExcludeReadonly */ : 1 /* IncludeReadonly */ : 0) | (declaration.questionToken ? declaration.questionToken.kind === 41 /* MinusToken */ ? 8 /* ExcludeOptional */ : 4 /* IncludeOptional */ : 0);\n  }\n  function getMappedTypeOptionality(type) {\n    const modifiers = getMappedTypeModifiers(type);\n    return modifiers & 8 /* ExcludeOptional */ ? -1 : modifiers & 4 /* IncludeOptional */ ? 1 : 0;\n  }\n  function getCombinedMappedTypeOptionality(type) {\n    if (getObjectFlags(type) & 32 /* Mapped */) {\n      return getMappedTypeOptionality(type) || getCombinedMappedTypeOptionality(getModifiersTypeFromMappedType(type));\n    }\n    if (type.flags & 2097152 /* Intersection */) {\n      const optionality = getCombinedMappedTypeOptionality(type.types[0]);\n      return every(type.types, (t, i) => i === 0 || getCombinedMappedTypeOptionality(t) === optionality) ? optionality : 0;\n    }\n    return 0;\n  }\n  function isPartialMappedType(type) {\n    return !!(getObjectFlags(type) & 32 /* Mapped */ && getMappedTypeModifiers(type) & 4 /* IncludeOptional */);\n  }\n  function isGenericMappedType(type) {\n    if (getObjectFlags(type) & 32 /* Mapped */) {\n      const constraint = getConstraintTypeFromMappedType(type);\n      if (isGenericIndexType(constraint)) {\n        return true;\n      }\n      const nameType = getNameTypeFromMappedType(type);\n      if (nameType && isGenericIndexType(instantiateType(nameType, makeUnaryTypeMapper(getTypeParameterFromMappedType(type), constraint)))) {\n        return true;\n      }\n    }\n    return false;\n  }\n  function getMappedTypeNameTypeKind(type) {\n    const nameType = getNameTypeFromMappedType(type);\n    if (!nameType) {\n      return 0 /* None */;\n    }\n    return isTypeAssignableTo(nameType, getTypeParameterFromMappedType(type)) ? 1 /* Filtering */ : 2 /* Remapping */;\n  }\n  function resolveStructuredTypeMembers(type) {\n    if (!type.members) {\n      if (type.flags & 524288 /* Object */) {\n        if (type.objectFlags & 4 /* Reference */) {\n          resolveTypeReferenceMembers(type);\n        } else if (type.objectFlags & 3 /* ClassOrInterface */) {\n          resolveClassOrInterfaceMembers(type);\n        } else if (type.objectFlags & 1024 /* ReverseMapped */) {\n          resolveReverseMappedTypeMembers(type);\n        } else if (type.objectFlags & 16 /* Anonymous */) {\n          resolveAnonymousTypeMembers(type);\n        } else if (type.objectFlags & 32 /* Mapped */) {\n          resolveMappedTypeMembers(type);\n        } else {\n          Debug.fail(\"Unhandled object type \" + Debug.formatObjectFlags(type.objectFlags));\n        }\n      } else if (type.flags & 1048576 /* Union */) {\n        resolveUnionTypeMembers(type);\n      } else if (type.flags & 2097152 /* Intersection */) {\n        resolveIntersectionTypeMembers(type);\n      } else {\n        Debug.fail(\"Unhandled type \" + Debug.formatTypeFlags(type.flags));\n      }\n    }\n    return type;\n  }\n  function getPropertiesOfObjectType(type) {\n    if (type.flags & 524288 /* Object */) {\n      return resolveStructuredTypeMembers(type).properties;\n    }\n    return emptyArray;\n  }\n  function getPropertyOfObjectType(type, name) {\n    if (type.flags & 524288 /* Object */) {\n      const resolved = resolveStructuredTypeMembers(type);\n      const symbol = resolved.members.get(name);\n      if (symbol && symbolIsValue(symbol)) {\n        return symbol;\n      }\n    }\n  }\n  function getPropertiesOfUnionOrIntersectionType(type) {\n    if (!type.resolvedProperties) {\n      const members = createSymbolTable();\n      for (const current of type.types) {\n        for (const prop of getPropertiesOfType(current)) {\n          if (!members.has(prop.escapedName)) {\n            const combinedProp = getPropertyOfUnionOrIntersectionType(\n              type,\n              prop.escapedName,\n              /*skipObjectFunctionPropertyAugment*/\n              !!(type.flags & 2097152 /* Intersection */)\n            );\n            if (combinedProp) {\n              members.set(prop.escapedName, combinedProp);\n            }\n          }\n        }\n        if (type.flags & 1048576 /* Union */ && getIndexInfosOfType(current).length === 0) {\n          break;\n        }\n      }\n      type.resolvedProperties = getNamedMembers(members);\n    }\n    return type.resolvedProperties;\n  }\n  function getPropertiesOfType(type) {\n    type = getReducedApparentType(type);\n    return type.flags & 3145728 /* UnionOrIntersection */ ? getPropertiesOfUnionOrIntersectionType(type) : getPropertiesOfObjectType(type);\n  }\n  function forEachPropertyOfType(type, action) {\n    type = getReducedApparentType(type);\n    if (type.flags & 3670016 /* StructuredType */) {\n      resolveStructuredTypeMembers(type).members.forEach((symbol, escapedName) => {\n        if (isNamedMember(symbol, escapedName)) {\n          action(symbol, escapedName);\n        }\n      });\n    }\n  }\n  function isTypeInvalidDueToUnionDiscriminant(contextualType, obj) {\n    const list = obj.properties;\n    return list.some((property) => {\n      const nameType = property.name && (isJsxNamespacedName(property.name) ? getStringLiteralType(getTextOfJsxAttributeName(property.name)) : getLiteralTypeFromPropertyName(property.name));\n      const name = nameType && isTypeUsableAsPropertyName(nameType) ? getPropertyNameFromType(nameType) : void 0;\n      const expected = name === void 0 ? void 0 : getTypeOfPropertyOfType(contextualType, name);\n      return !!expected && isLiteralType(expected) && !isTypeAssignableTo(getTypeOfNode(property), expected);\n    });\n  }\n  function getAllPossiblePropertiesOfTypes(types) {\n    const unionType = getUnionType(types);\n    if (!(unionType.flags & 1048576 /* Union */)) {\n      return getAugmentedPropertiesOfType(unionType);\n    }\n    const props = createSymbolTable();\n    for (const memberType of types) {\n      for (const { escapedName } of getAugmentedPropertiesOfType(memberType)) {\n        if (!props.has(escapedName)) {\n          const prop = createUnionOrIntersectionProperty(unionType, escapedName);\n          if (prop) props.set(escapedName, prop);\n        }\n      }\n    }\n    return arrayFrom(props.values());\n  }\n  function getConstraintOfType(type) {\n    return type.flags & 262144 /* TypeParameter */ ? getConstraintOfTypeParameter(type) : type.flags & 8388608 /* IndexedAccess */ ? getConstraintOfIndexedAccess(type) : type.flags & 16777216 /* Conditional */ ? getConstraintOfConditionalType(type) : getBaseConstraintOfType(type);\n  }\n  function getConstraintOfTypeParameter(typeParameter) {\n    return hasNonCircularBaseConstraint(typeParameter) ? getConstraintFromTypeParameter(typeParameter) : void 0;\n  }\n  function isConstMappedType(type, depth) {\n    const typeVariable = getHomomorphicTypeVariable(type);\n    return !!typeVariable && isConstTypeVariable(typeVariable, depth);\n  }\n  function isConstTypeVariable(type, depth = 0) {\n    var _a;\n    return depth < 5 && !!(type && (type.flags & 262144 /* TypeParameter */ && some((_a = type.symbol) == null ? void 0 : _a.declarations, (d) => hasSyntacticModifier(d, 4096 /* Const */)) || type.flags & 3145728 /* UnionOrIntersection */ && some(type.types, (t) => isConstTypeVariable(t, depth)) || type.flags & 8388608 /* IndexedAccess */ && isConstTypeVariable(type.objectType, depth + 1) || type.flags & 16777216 /* Conditional */ && isConstTypeVariable(getConstraintOfConditionalType(type), depth + 1) || type.flags & 33554432 /* Substitution */ && isConstTypeVariable(type.baseType, depth) || getObjectFlags(type) & 32 /* Mapped */ && isConstMappedType(type, depth) || isGenericTupleType(type) && findIndex(getElementTypes(type), (t, i) => !!(type.target.elementFlags[i] & 8 /* Variadic */) && isConstTypeVariable(t, depth)) >= 0));\n  }\n  function getConstraintOfIndexedAccess(type) {\n    return hasNonCircularBaseConstraint(type) ? getConstraintFromIndexedAccess(type) : void 0;\n  }\n  function getSimplifiedTypeOrConstraint(type) {\n    const simplified = getSimplifiedType(\n      type,\n      /*writing*/\n      false\n    );\n    return simplified !== type ? simplified : getConstraintOfType(type);\n  }\n  function getConstraintFromIndexedAccess(type) {\n    if (isMappedTypeGenericIndexedAccess(type)) {\n      return substituteIndexedMappedType(type.objectType, type.indexType);\n    }\n    const indexConstraint = getSimplifiedTypeOrConstraint(type.indexType);\n    if (indexConstraint && indexConstraint !== type.indexType) {\n      const indexedAccess = getIndexedAccessTypeOrUndefined(type.objectType, indexConstraint, type.accessFlags);\n      if (indexedAccess) {\n        return indexedAccess;\n      }\n    }\n    const objectConstraint = getSimplifiedTypeOrConstraint(type.objectType);\n    if (objectConstraint && objectConstraint !== type.objectType) {\n      return getIndexedAccessTypeOrUndefined(objectConstraint, type.indexType, type.accessFlags);\n    }\n    return void 0;\n  }\n  function getDefaultConstraintOfConditionalType(type) {\n    if (!type.resolvedDefaultConstraint) {\n      const trueConstraint = getInferredTrueTypeFromConditionalType(type);\n      const falseConstraint = getFalseTypeFromConditionalType(type);\n      type.resolvedDefaultConstraint = isTypeAny(trueConstraint) ? falseConstraint : isTypeAny(falseConstraint) ? trueConstraint : getUnionType([trueConstraint, falseConstraint]);\n    }\n    return type.resolvedDefaultConstraint;\n  }\n  function getConstraintOfDistributiveConditionalType(type) {\n    if (type.resolvedConstraintOfDistributive !== void 0) {\n      return type.resolvedConstraintOfDistributive || void 0;\n    }\n    if (type.root.isDistributive && type.restrictiveInstantiation !== type) {\n      const simplified = getSimplifiedType(\n        type.checkType,\n        /*writing*/\n        false\n      );\n      const constraint = simplified === type.checkType ? getConstraintOfType(simplified) : simplified;\n      if (constraint && constraint !== type.checkType) {\n        const instantiated = getConditionalTypeInstantiation(\n          type,\n          prependTypeMapping(type.root.checkType, constraint, type.mapper),\n          /*forConstraint*/\n          true\n        );\n        if (!(instantiated.flags & 131072 /* Never */)) {\n          type.resolvedConstraintOfDistributive = instantiated;\n          return instantiated;\n        }\n      }\n    }\n    type.resolvedConstraintOfDistributive = false;\n    return void 0;\n  }\n  function getConstraintFromConditionalType(type) {\n    return getConstraintOfDistributiveConditionalType(type) || getDefaultConstraintOfConditionalType(type);\n  }\n  function getConstraintOfConditionalType(type) {\n    return hasNonCircularBaseConstraint(type) ? getConstraintFromConditionalType(type) : void 0;\n  }\n  function getEffectiveConstraintOfIntersection(types, targetIsUnion) {\n    let constraints;\n    let hasDisjointDomainType = false;\n    for (const t of types) {\n      if (t.flags & 465829888 /* Instantiable */) {\n        let constraint = getConstraintOfType(t);\n        while (constraint && constraint.flags & (262144 /* TypeParameter */ | 4194304 /* Index */ | 16777216 /* Conditional */)) {\n          constraint = getConstraintOfType(constraint);\n        }\n        if (constraint) {\n          constraints = append(constraints, constraint);\n          if (targetIsUnion) {\n            constraints = append(constraints, t);\n          }\n        }\n      } else if (t.flags & 469892092 /* DisjointDomains */ || isEmptyAnonymousObjectType(t)) {\n        hasDisjointDomainType = true;\n      }\n    }\n    if (constraints && (targetIsUnion || hasDisjointDomainType)) {\n      if (hasDisjointDomainType) {\n        for (const t of types) {\n          if (t.flags & 469892092 /* DisjointDomains */ || isEmptyAnonymousObjectType(t)) {\n            constraints = append(constraints, t);\n          }\n        }\n      }\n      return getNormalizedType(\n        getIntersectionType(constraints, 2 /* NoConstraintReduction */),\n        /*writing*/\n        false\n      );\n    }\n    return void 0;\n  }\n  function getBaseConstraintOfType(type) {\n    if (type.flags & (58982400 /* InstantiableNonPrimitive */ | 3145728 /* UnionOrIntersection */ | 134217728 /* TemplateLiteral */ | 268435456 /* StringMapping */) || isGenericTupleType(type)) {\n      const constraint = getResolvedBaseConstraint(type);\n      return constraint !== noConstraintType && constraint !== circularConstraintType ? constraint : void 0;\n    }\n    return type.flags & 4194304 /* Index */ ? stringNumberSymbolType : void 0;\n  }\n  function getBaseConstraintOrType(type) {\n    return getBaseConstraintOfType(type) || type;\n  }\n  function hasNonCircularBaseConstraint(type) {\n    return getResolvedBaseConstraint(type) !== circularConstraintType;\n  }\n  function getResolvedBaseConstraint(type) {\n    if (type.resolvedBaseConstraint) {\n      return type.resolvedBaseConstraint;\n    }\n    const stack = [];\n    return type.resolvedBaseConstraint = getImmediateBaseConstraint(type);\n    function getImmediateBaseConstraint(t) {\n      if (!t.immediateBaseConstraint) {\n        if (!pushTypeResolution(t, 4 /* ImmediateBaseConstraint */)) {\n          return circularConstraintType;\n        }\n        let result;\n        const identity2 = getRecursionIdentity(t);\n        if (stack.length < 10 || stack.length < 50 && !contains(stack, identity2)) {\n          stack.push(identity2);\n          result = computeBaseConstraint(getSimplifiedType(\n            t,\n            /*writing*/\n            false\n          ));\n          stack.pop();\n        }\n        if (!popTypeResolution()) {\n          if (t.flags & 262144 /* TypeParameter */) {\n            const errorNode = getConstraintDeclaration(t);\n            if (errorNode) {\n              const diagnostic = error2(errorNode, Diagnostics.Type_parameter_0_has_a_circular_constraint, typeToString(t));\n              if (currentNode && !isNodeDescendantOf(errorNode, currentNode) && !isNodeDescendantOf(currentNode, errorNode)) {\n                addRelatedInfo(diagnostic, createDiagnosticForNode(currentNode, Diagnostics.Circularity_originates_in_type_at_this_location));\n              }\n            }\n          }\n          result = circularConstraintType;\n        }\n        t.immediateBaseConstraint ?? (t.immediateBaseConstraint = result || noConstraintType);\n      }\n      return t.immediateBaseConstraint;\n    }\n    function getBaseConstraint(t) {\n      const c = getImmediateBaseConstraint(t);\n      return c !== noConstraintType && c !== circularConstraintType ? c : void 0;\n    }\n    function computeBaseConstraint(t) {\n      if (t.flags & 262144 /* TypeParameter */) {\n        const constraint = getConstraintFromTypeParameter(t);\n        return t.isThisType || !constraint ? constraint : getBaseConstraint(constraint);\n      }\n      if (t.flags & 3145728 /* UnionOrIntersection */) {\n        const types = t.types;\n        const baseTypes = [];\n        let different = false;\n        for (const type2 of types) {\n          const baseType = getBaseConstraint(type2);\n          if (baseType) {\n            if (baseType !== type2) {\n              different = true;\n            }\n            baseTypes.push(baseType);\n          } else {\n            different = true;\n          }\n        }\n        if (!different) {\n          return t;\n        }\n        return t.flags & 1048576 /* Union */ && baseTypes.length === types.length ? getUnionType(baseTypes) : t.flags & 2097152 /* Intersection */ && baseTypes.length ? getIntersectionType(baseTypes) : void 0;\n      }\n      if (t.flags & 4194304 /* Index */) {\n        return stringNumberSymbolType;\n      }\n      if (t.flags & 134217728 /* TemplateLiteral */) {\n        const types = t.types;\n        const constraints = mapDefined(types, getBaseConstraint);\n        return constraints.length === types.length ? getTemplateLiteralType(t.texts, constraints) : stringType;\n      }\n      if (t.flags & 268435456 /* StringMapping */) {\n        const constraint = getBaseConstraint(t.type);\n        return constraint && constraint !== t.type ? getStringMappingType(t.symbol, constraint) : stringType;\n      }\n      if (t.flags & 8388608 /* IndexedAccess */) {\n        if (isMappedTypeGenericIndexedAccess(t)) {\n          return getBaseConstraint(substituteIndexedMappedType(t.objectType, t.indexType));\n        }\n        const baseObjectType = getBaseConstraint(t.objectType);\n        const baseIndexType = getBaseConstraint(t.indexType);\n        const baseIndexedAccess = baseObjectType && baseIndexType && getIndexedAccessTypeOrUndefined(baseObjectType, baseIndexType, t.accessFlags);\n        return baseIndexedAccess && getBaseConstraint(baseIndexedAccess);\n      }\n      if (t.flags & 16777216 /* Conditional */) {\n        const constraint = getConstraintFromConditionalType(t);\n        return constraint && getBaseConstraint(constraint);\n      }\n      if (t.flags & 33554432 /* Substitution */) {\n        return getBaseConstraint(getSubstitutionIntersection(t));\n      }\n      if (isGenericTupleType(t)) {\n        const newElements = map(getElementTypes(t), (v, i) => {\n          const constraint = v.flags & 262144 /* TypeParameter */ && t.target.elementFlags[i] & 8 /* Variadic */ && getBaseConstraint(v) || v;\n          return constraint !== v && everyType(constraint, (c) => isArrayOrTupleType(c) && !isGenericTupleType(c)) ? constraint : v;\n        });\n        return createTupleType(newElements, t.target.elementFlags, t.target.readonly, t.target.labeledElementDeclarations);\n      }\n      return t;\n    }\n  }\n  function getApparentTypeOfIntersectionType(type, thisArgument) {\n    if (type === thisArgument) {\n      return type.resolvedApparentType || (type.resolvedApparentType = getTypeWithThisArgument(\n        type,\n        thisArgument,\n        /*needApparentType*/\n        true\n      ));\n    }\n    const key = `I${getTypeId(type)},${getTypeId(thisArgument)}`;\n    return getCachedType(key) ?? setCachedType(key, getTypeWithThisArgument(\n      type,\n      thisArgument,\n      /*needApparentType*/\n      true\n    ));\n  }\n  function getResolvedTypeParameterDefault(typeParameter) {\n    if (!typeParameter.default) {\n      if (typeParameter.target) {\n        const targetDefault = getResolvedTypeParameterDefault(typeParameter.target);\n        typeParameter.default = targetDefault ? instantiateType(targetDefault, typeParameter.mapper) : noConstraintType;\n      } else {\n        typeParameter.default = resolvingDefaultType;\n        const defaultDeclaration = typeParameter.symbol && forEach(typeParameter.symbol.declarations, (decl) => isTypeParameterDeclaration(decl) && decl.default);\n        const defaultType = defaultDeclaration ? getTypeFromTypeNode(defaultDeclaration) : noConstraintType;\n        if (typeParameter.default === resolvingDefaultType) {\n          typeParameter.default = defaultType;\n        }\n      }\n    } else if (typeParameter.default === resolvingDefaultType) {\n      typeParameter.default = circularConstraintType;\n    }\n    return typeParameter.default;\n  }\n  function getDefaultFromTypeParameter(typeParameter) {\n    const defaultType = getResolvedTypeParameterDefault(typeParameter);\n    return defaultType !== noConstraintType && defaultType !== circularConstraintType ? defaultType : void 0;\n  }\n  function hasNonCircularTypeParameterDefault(typeParameter) {\n    return getResolvedTypeParameterDefault(typeParameter) !== circularConstraintType;\n  }\n  function hasTypeParameterDefault(typeParameter) {\n    return !!(typeParameter.symbol && forEach(typeParameter.symbol.declarations, (decl) => isTypeParameterDeclaration(decl) && decl.default));\n  }\n  function getApparentTypeOfMappedType(type) {\n    return type.resolvedApparentType || (type.resolvedApparentType = getResolvedApparentTypeOfMappedType(type));\n  }\n  function getResolvedApparentTypeOfMappedType(type) {\n    const target = type.target ?? type;\n    const typeVariable = getHomomorphicTypeVariable(target);\n    if (typeVariable && !target.declaration.nameType) {\n      const modifiersType = getModifiersTypeFromMappedType(type);\n      const baseConstraint = isGenericMappedType(modifiersType) ? getApparentTypeOfMappedType(modifiersType) : getBaseConstraintOfType(modifiersType);\n      if (baseConstraint && everyType(baseConstraint, (t) => isArrayOrTupleType(t) || isArrayOrTupleOrIntersection(t))) {\n        return instantiateType(target, prependTypeMapping(typeVariable, baseConstraint, type.mapper));\n      }\n    }\n    return type;\n  }\n  function isArrayOrTupleOrIntersection(type) {\n    return !!(type.flags & 2097152 /* Intersection */) && every(type.types, isArrayOrTupleType);\n  }\n  function isMappedTypeGenericIndexedAccess(type) {\n    let objectType;\n    return !!(type.flags & 8388608 /* IndexedAccess */ && getObjectFlags(objectType = type.objectType) & 32 /* Mapped */ && !isGenericMappedType(objectType) && isGenericIndexType(type.indexType) && !(getMappedTypeModifiers(objectType) & 8 /* ExcludeOptional */) && !objectType.declaration.nameType);\n  }\n  function getApparentType(type) {\n    const t = type.flags & 465829888 /* Instantiable */ ? getBaseConstraintOfType(type) || unknownType : type;\n    const objectFlags = getObjectFlags(t);\n    return objectFlags & 32 /* Mapped */ ? getApparentTypeOfMappedType(t) : objectFlags & 4 /* Reference */ && t !== type ? getTypeWithThisArgument(t, type) : t.flags & 2097152 /* Intersection */ ? getApparentTypeOfIntersectionType(t, type) : t.flags & 402653316 /* StringLike */ ? globalStringType : t.flags & 296 /* NumberLike */ ? globalNumberType : t.flags & 2112 /* BigIntLike */ ? getGlobalBigIntType() : t.flags & 528 /* BooleanLike */ ? globalBooleanType : t.flags & 12288 /* ESSymbolLike */ ? getGlobalESSymbolType() : t.flags & 67108864 /* NonPrimitive */ ? emptyObjectType : t.flags & 4194304 /* Index */ ? stringNumberSymbolType : t.flags & 2 /* Unknown */ && !strictNullChecks ? emptyObjectType : t;\n  }\n  function getReducedApparentType(type) {\n    return getReducedType(getApparentType(getReducedType(type)));\n  }\n  function createUnionOrIntersectionProperty(containingType, name, skipObjectFunctionPropertyAugment) {\n    var _a, _b, _c;\n    let propFlags = 0 /* None */;\n    let singleProp;\n    let propSet;\n    let indexTypes;\n    const isUnion = containingType.flags & 1048576 /* Union */;\n    let optionalFlag;\n    let syntheticFlag = 4 /* SyntheticMethod */;\n    let checkFlags = isUnion ? 0 : 8 /* Readonly */;\n    let mergedInstantiations = false;\n    for (const current of containingType.types) {\n      const type = getApparentType(current);\n      if (!(isErrorType(type) || type.flags & 131072 /* Never */)) {\n        const prop = getPropertyOfType(type, name, skipObjectFunctionPropertyAugment);\n        const modifiers = prop ? getDeclarationModifierFlagsFromSymbol(prop) : 0;\n        if (prop) {\n          if (prop.flags & 106500 /* ClassMember */) {\n            optionalFlag ?? (optionalFlag = isUnion ? 0 /* None */ : 16777216 /* Optional */);\n            if (isUnion) {\n              optionalFlag |= prop.flags & 16777216 /* Optional */;\n            } else {\n              optionalFlag &= prop.flags;\n            }\n          }\n          if (!singleProp) {\n            singleProp = prop;\n            propFlags = prop.flags & 98304 /* Accessor */ || 4 /* Property */;\n          } else if (prop !== singleProp) {\n            const isInstantiation = (getTargetSymbol(prop) || prop) === (getTargetSymbol(singleProp) || singleProp);\n            if (isInstantiation && compareProperties2(singleProp, prop, (a, b) => a === b ? -1 /* True */ : 0 /* False */) === -1 /* True */) {\n              mergedInstantiations = !!singleProp.parent && !!length(getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(singleProp.parent));\n            } else {\n              if (!propSet) {\n                propSet = /* @__PURE__ */ new Map();\n                propSet.set(getSymbolId(singleProp), singleProp);\n              }\n              const id = getSymbolId(prop);\n              if (!propSet.has(id)) {\n                propSet.set(id, prop);\n              }\n            }\n            if (propFlags & 98304 /* Accessor */ && (prop.flags & 98304 /* Accessor */) !== (propFlags & 98304 /* Accessor */)) {\n              propFlags = propFlags & ~98304 /* Accessor */ | 4 /* Property */;\n            }\n          }\n          if (isUnion && isReadonlySymbol(prop)) {\n            checkFlags |= 8 /* Readonly */;\n          } else if (!isUnion && !isReadonlySymbol(prop)) {\n            checkFlags &= ~8 /* Readonly */;\n          }\n          checkFlags |= (!(modifiers & 6 /* NonPublicAccessibilityModifier */) ? 256 /* ContainsPublic */ : 0) | (modifiers & 4 /* Protected */ ? 512 /* ContainsProtected */ : 0) | (modifiers & 2 /* Private */ ? 1024 /* ContainsPrivate */ : 0) | (modifiers & 256 /* Static */ ? 2048 /* ContainsStatic */ : 0);\n          if (!isPrototypeProperty(prop)) {\n            syntheticFlag = 2 /* SyntheticProperty */;\n          }\n        } else if (isUnion) {\n          const indexInfo = !isLateBoundName(name) && getApplicableIndexInfoForName(type, name);\n          if (indexInfo) {\n            propFlags = propFlags & ~98304 /* Accessor */ | 4 /* Property */;\n            checkFlags |= 32 /* WritePartial */ | (indexInfo.isReadonly ? 8 /* Readonly */ : 0);\n            indexTypes = append(indexTypes, isTupleType(type) ? getRestTypeOfTupleType(type) || undefinedType : indexInfo.type);\n          } else if (isObjectLiteralType2(type) && !(getObjectFlags(type) & 2097152 /* ContainsSpread */)) {\n            checkFlags |= 32 /* WritePartial */;\n            indexTypes = append(indexTypes, undefinedType);\n          } else {\n            checkFlags |= 16 /* ReadPartial */;\n          }\n        }\n      }\n    }\n    if (!singleProp || isUnion && (propSet || checkFlags & 48 /* Partial */) && checkFlags & (1024 /* ContainsPrivate */ | 512 /* ContainsProtected */) && !(propSet && getCommonDeclarationsOfSymbols(propSet.values()))) {\n      return void 0;\n    }\n    if (!propSet && !(checkFlags & 16 /* ReadPartial */) && !indexTypes) {\n      if (mergedInstantiations) {\n        const links = (_a = tryCast(singleProp, isTransientSymbol)) == null ? void 0 : _a.links;\n        const clone2 = createSymbolWithType(singleProp, links == null ? void 0 : links.type);\n        clone2.parent = (_c = (_b = singleProp.valueDeclaration) == null ? void 0 : _b.symbol) == null ? void 0 : _c.parent;\n        clone2.links.containingType = containingType;\n        clone2.links.mapper = links == null ? void 0 : links.mapper;\n        clone2.links.writeType = getWriteTypeOfSymbol(singleProp);\n        return clone2;\n      } else {\n        return singleProp;\n      }\n    }\n    const props = propSet ? arrayFrom(propSet.values()) : [singleProp];\n    let declarations;\n    let firstType;\n    let nameType;\n    const propTypes = [];\n    let writeTypes;\n    let firstValueDeclaration;\n    let hasNonUniformValueDeclaration = false;\n    for (const prop of props) {\n      if (!firstValueDeclaration) {\n        firstValueDeclaration = prop.valueDeclaration;\n      } else if (prop.valueDeclaration && prop.valueDeclaration !== firstValueDeclaration) {\n        hasNonUniformValueDeclaration = true;\n      }\n      declarations = addRange(declarations, prop.declarations);\n      const type = getTypeOfSymbol(prop);\n      if (!firstType) {\n        firstType = type;\n        nameType = getSymbolLinks(prop).nameType;\n      }\n      const writeType = getWriteTypeOfSymbol(prop);\n      if (writeTypes || writeType !== type) {\n        writeTypes = append(!writeTypes ? propTypes.slice() : writeTypes, writeType);\n      }\n      if (type !== firstType) {\n        checkFlags |= 64 /* HasNonUniformType */;\n      }\n      if (isLiteralType(type) || isPatternLiteralType(type)) {\n        checkFlags |= 128 /* HasLiteralType */;\n      }\n      if (type.flags & 131072 /* Never */ && type !== uniqueLiteralType) {\n        checkFlags |= 131072 /* HasNeverType */;\n      }\n      propTypes.push(type);\n    }\n    addRange(propTypes, indexTypes);\n    const result = createSymbol(propFlags | (optionalFlag ?? 0), name, syntheticFlag | checkFlags);\n    result.links.containingType = containingType;\n    if (!hasNonUniformValueDeclaration && firstValueDeclaration) {\n      result.valueDeclaration = firstValueDeclaration;\n      if (firstValueDeclaration.symbol.parent) {\n        result.parent = firstValueDeclaration.symbol.parent;\n      }\n    }\n    result.declarations = declarations;\n    result.links.nameType = nameType;\n    if (propTypes.length > 2) {\n      result.links.checkFlags |= 65536 /* DeferredType */;\n      result.links.deferralParent = containingType;\n      result.links.deferralConstituents = propTypes;\n      result.links.deferralWriteConstituents = writeTypes;\n    } else {\n      result.links.type = isUnion ? getUnionType(propTypes) : getIntersectionType(propTypes);\n      if (writeTypes) {\n        result.links.writeType = isUnion ? getUnionType(writeTypes) : getIntersectionType(writeTypes);\n      }\n    }\n    return result;\n  }\n  function getUnionOrIntersectionProperty(type, name, skipObjectFunctionPropertyAugment) {\n    var _a, _b, _c;\n    let property = skipObjectFunctionPropertyAugment ? (_a = type.propertyCacheWithoutObjectFunctionPropertyAugment) == null ? void 0 : _a.get(name) : (_b = type.propertyCache) == null ? void 0 : _b.get(name);\n    if (!property) {\n      property = createUnionOrIntersectionProperty(type, name, skipObjectFunctionPropertyAugment);\n      if (property) {\n        const properties = skipObjectFunctionPropertyAugment ? type.propertyCacheWithoutObjectFunctionPropertyAugment || (type.propertyCacheWithoutObjectFunctionPropertyAugment = createSymbolTable()) : type.propertyCache || (type.propertyCache = createSymbolTable());\n        properties.set(name, property);\n        if (skipObjectFunctionPropertyAugment && !(getCheckFlags(property) & 48 /* Partial */) && !((_c = type.propertyCache) == null ? void 0 : _c.get(name))) {\n          const properties2 = type.propertyCache || (type.propertyCache = createSymbolTable());\n          properties2.set(name, property);\n        }\n      }\n    }\n    return property;\n  }\n  function getCommonDeclarationsOfSymbols(symbols) {\n    let commonDeclarations;\n    for (const symbol of symbols) {\n      if (!symbol.declarations) {\n        return void 0;\n      }\n      if (!commonDeclarations) {\n        commonDeclarations = new Set(symbol.declarations);\n        continue;\n      }\n      commonDeclarations.forEach((declaration) => {\n        if (!contains(symbol.declarations, declaration)) {\n          commonDeclarations.delete(declaration);\n        }\n      });\n      if (commonDeclarations.size === 0) {\n        return void 0;\n      }\n    }\n    return commonDeclarations;\n  }\n  function getPropertyOfUnionOrIntersectionType(type, name, skipObjectFunctionPropertyAugment) {\n    const property = getUnionOrIntersectionProperty(type, name, skipObjectFunctionPropertyAugment);\n    return property && !(getCheckFlags(property) & 16 /* ReadPartial */) ? property : void 0;\n  }\n  function getReducedType(type) {\n    if (type.flags & 1048576 /* Union */ && type.objectFlags & 16777216 /* ContainsIntersections */) {\n      return type.resolvedReducedType || (type.resolvedReducedType = getReducedUnionType(type));\n    } else if (type.flags & 2097152 /* Intersection */) {\n      if (!(type.objectFlags & 16777216 /* IsNeverIntersectionComputed */)) {\n        type.objectFlags |= 16777216 /* IsNeverIntersectionComputed */ | (some(getPropertiesOfUnionOrIntersectionType(type), isNeverReducedProperty) ? 33554432 /* IsNeverIntersection */ : 0);\n      }\n      return type.objectFlags & 33554432 /* IsNeverIntersection */ ? neverType : type;\n    }\n    return type;\n  }\n  function getReducedUnionType(unionType) {\n    const reducedTypes = sameMap(unionType.types, getReducedType);\n    if (reducedTypes === unionType.types) {\n      return unionType;\n    }\n    const reduced = getUnionType(reducedTypes);\n    if (reduced.flags & 1048576 /* Union */) {\n      reduced.resolvedReducedType = reduced;\n    }\n    return reduced;\n  }\n  function isNeverReducedProperty(prop) {\n    return isDiscriminantWithNeverType(prop) || isConflictingPrivateProperty(prop);\n  }\n  function isDiscriminantWithNeverType(prop) {\n    return !(prop.flags & 16777216 /* Optional */) && (getCheckFlags(prop) & (192 /* Discriminant */ | 131072 /* HasNeverType */)) === 192 /* Discriminant */ && !!(getTypeOfSymbol(prop).flags & 131072 /* Never */);\n  }\n  function isConflictingPrivateProperty(prop) {\n    return !prop.valueDeclaration && !!(getCheckFlags(prop) & 1024 /* ContainsPrivate */);\n  }\n  function isGenericReducibleType(type) {\n    return !!(type.flags & 1048576 /* Union */ && type.objectFlags & 16777216 /* ContainsIntersections */ && some(type.types, isGenericReducibleType) || type.flags & 2097152 /* Intersection */ && isReducibleIntersection(type));\n  }\n  function isReducibleIntersection(type) {\n    const uniqueFilled = type.uniqueLiteralFilledInstantiation || (type.uniqueLiteralFilledInstantiation = instantiateType(type, uniqueLiteralMapper));\n    return getReducedType(uniqueFilled) !== uniqueFilled;\n  }\n  function elaborateNeverIntersection(errorInfo, type) {\n    if (type.flags & 2097152 /* Intersection */ && getObjectFlags(type) & 33554432 /* IsNeverIntersection */) {\n      const neverProp = find(getPropertiesOfUnionOrIntersectionType(type), isDiscriminantWithNeverType);\n      if (neverProp) {\n        return chainDiagnosticMessages(errorInfo, Diagnostics.The_intersection_0_was_reduced_to_never_because_property_1_has_conflicting_types_in_some_constituents, typeToString(\n          type,\n          /*enclosingDeclaration*/\n          void 0,\n          536870912 /* NoTypeReduction */\n        ), symbolToString(neverProp));\n      }\n      const privateProp = find(getPropertiesOfUnionOrIntersectionType(type), isConflictingPrivateProperty);\n      if (privateProp) {\n        return chainDiagnosticMessages(errorInfo, Diagnostics.The_intersection_0_was_reduced_to_never_because_property_1_exists_in_multiple_constituents_and_is_private_in_some, typeToString(\n          type,\n          /*enclosingDeclaration*/\n          void 0,\n          536870912 /* NoTypeReduction */\n        ), symbolToString(privateProp));\n      }\n    }\n    return errorInfo;\n  }\n  function getPropertyOfType(type, name, skipObjectFunctionPropertyAugment, includeTypeOnlyMembers) {\n    var _a, _b;\n    type = getReducedApparentType(type);\n    if (type.flags & 524288 /* Object */) {\n      const resolved = resolveStructuredTypeMembers(type);\n      const symbol = resolved.members.get(name);\n      if (symbol && !includeTypeOnlyMembers && ((_a = type.symbol) == null ? void 0 : _a.flags) & 512 /* ValueModule */ && ((_b = getSymbolLinks(type.symbol).typeOnlyExportStarMap) == null ? void 0 : _b.has(name))) {\n        return void 0;\n      }\n      if (symbol && symbolIsValue(symbol, includeTypeOnlyMembers)) {\n        return symbol;\n      }\n      if (skipObjectFunctionPropertyAugment) return void 0;\n      const functionType = resolved === anyFunctionType ? globalFunctionType : resolved.callSignatures.length ? globalCallableFunctionType : resolved.constructSignatures.length ? globalNewableFunctionType : void 0;\n      if (functionType) {\n        const symbol2 = getPropertyOfObjectType(functionType, name);\n        if (symbol2) {\n          return symbol2;\n        }\n      }\n      return getPropertyOfObjectType(globalObjectType, name);\n    }\n    if (type.flags & 2097152 /* Intersection */) {\n      const prop = getPropertyOfUnionOrIntersectionType(\n        type,\n        name,\n        /*skipObjectFunctionPropertyAugment*/\n        true\n      );\n      if (prop) {\n        return prop;\n      }\n      if (!skipObjectFunctionPropertyAugment) {\n        return getPropertyOfUnionOrIntersectionType(type, name, skipObjectFunctionPropertyAugment);\n      }\n      return void 0;\n    }\n    if (type.flags & 1048576 /* Union */) {\n      return getPropertyOfUnionOrIntersectionType(type, name, skipObjectFunctionPropertyAugment);\n    }\n    return void 0;\n  }\n  function getSignaturesOfStructuredType(type, kind) {\n    if (type.flags & 3670016 /* StructuredType */) {\n      const resolved = resolveStructuredTypeMembers(type);\n      return kind === 0 /* Call */ ? resolved.callSignatures : resolved.constructSignatures;\n    }\n    return emptyArray;\n  }\n  function getSignaturesOfType(type, kind) {\n    const result = getSignaturesOfStructuredType(getReducedApparentType(type), kind);\n    if (kind === 0 /* Call */ && !length(result) && type.flags & 1048576 /* Union */) {\n      if (type.arrayFallbackSignatures) {\n        return type.arrayFallbackSignatures;\n      }\n      let memberName;\n      if (everyType(type, (t) => {\n        var _a;\n        return !!((_a = t.symbol) == null ? void 0 : _a.parent) && isArrayOrTupleSymbol(t.symbol.parent) && (!memberName ? (memberName = t.symbol.escapedName, true) : memberName === t.symbol.escapedName);\n      })) {\n        const arrayArg = mapType(type, (t) => getMappedType((isReadonlyArraySymbol(t.symbol.parent) ? globalReadonlyArrayType : globalArrayType).typeParameters[0], t.mapper));\n        const arrayType = createArrayType(arrayArg, someType(type, (t) => isReadonlyArraySymbol(t.symbol.parent)));\n        return type.arrayFallbackSignatures = getSignaturesOfType(getTypeOfPropertyOfType(arrayType, memberName), kind);\n      }\n      type.arrayFallbackSignatures = result;\n    }\n    return result;\n  }\n  function isArrayOrTupleSymbol(symbol) {\n    if (!symbol || !globalArrayType.symbol || !globalReadonlyArrayType.symbol) {\n      return false;\n    }\n    return !!getSymbolIfSameReference(symbol, globalArrayType.symbol) || !!getSymbolIfSameReference(symbol, globalReadonlyArrayType.symbol);\n  }\n  function isReadonlyArraySymbol(symbol) {\n    if (!symbol || !globalReadonlyArrayType.symbol) {\n      return false;\n    }\n    return !!getSymbolIfSameReference(symbol, globalReadonlyArrayType.symbol);\n  }\n  function findIndexInfo(indexInfos, keyType) {\n    return find(indexInfos, (info) => info.keyType === keyType);\n  }\n  function findApplicableIndexInfo(indexInfos, keyType) {\n    let stringIndexInfo;\n    let applicableInfo;\n    let applicableInfos;\n    for (const info of indexInfos) {\n      if (info.keyType === stringType) {\n        stringIndexInfo = info;\n      } else if (isApplicableIndexType(keyType, info.keyType)) {\n        if (!applicableInfo) {\n          applicableInfo = info;\n        } else {\n          (applicableInfos || (applicableInfos = [applicableInfo])).push(info);\n        }\n      }\n    }\n    return applicableInfos ? createIndexInfo(unknownType, getIntersectionType(map(applicableInfos, (info) => info.type)), reduceLeft(\n      applicableInfos,\n      (isReadonly, info) => isReadonly && info.isReadonly,\n      /*initial*/\n      true\n    )) : applicableInfo ? applicableInfo : stringIndexInfo && isApplicableIndexType(keyType, stringType) ? stringIndexInfo : void 0;\n  }\n  function isApplicableIndexType(source, target) {\n    return isTypeAssignableTo(source, target) || target === stringType && isTypeAssignableTo(source, numberType) || target === numberType && (source === numericStringType || !!(source.flags & 128 /* StringLiteral */) && isNumericLiteralName(source.value));\n  }\n  function getIndexInfosOfStructuredType(type) {\n    if (type.flags & 3670016 /* StructuredType */) {\n      const resolved = resolveStructuredTypeMembers(type);\n      return resolved.indexInfos;\n    }\n    return emptyArray;\n  }\n  function getIndexInfosOfType(type) {\n    return getIndexInfosOfStructuredType(getReducedApparentType(type));\n  }\n  function getIndexInfoOfType(type, keyType) {\n    return findIndexInfo(getIndexInfosOfType(type), keyType);\n  }\n  function getIndexTypeOfType(type, keyType) {\n    var _a;\n    return (_a = getIndexInfoOfType(type, keyType)) == null ? void 0 : _a.type;\n  }\n  function getApplicableIndexInfos(type, keyType) {\n    return getIndexInfosOfType(type).filter((info) => isApplicableIndexType(keyType, info.keyType));\n  }\n  function getApplicableIndexInfo(type, keyType) {\n    return findApplicableIndexInfo(getIndexInfosOfType(type), keyType);\n  }\n  function getApplicableIndexInfoForName(type, name) {\n    return getApplicableIndexInfo(type, isLateBoundName(name) ? esSymbolType : getStringLiteralType(unescapeLeadingUnderscores(name)));\n  }\n  function getTypeParametersFromDeclaration(declaration) {\n    var _a;\n    let result;\n    for (const node of getEffectiveTypeParameterDeclarations(declaration)) {\n      result = appendIfUnique(result, getDeclaredTypeOfTypeParameter(node.symbol));\n    }\n    return (result == null ? void 0 : result.length) ? result : isFunctionDeclaration(declaration) ? (_a = getSignatureOfTypeTag(declaration)) == null ? void 0 : _a.typeParameters : void 0;\n  }\n  function symbolsToArray(symbols) {\n    const result = [];\n    symbols.forEach((symbol, id) => {\n      if (!isReservedMemberName(id)) {\n        result.push(symbol);\n      }\n    });\n    return result;\n  }\n  function tryFindAmbientModule(moduleName, withAugmentations) {\n    if (isExternalModuleNameRelative(moduleName)) {\n      return void 0;\n    }\n    const symbol = getSymbol2(globals, '\"' + moduleName + '\"', 512 /* ValueModule */);\n    return symbol && withAugmentations ? getMergedSymbol(symbol) : symbol;\n  }\n  function hasEffectiveQuestionToken(node) {\n    return hasQuestionToken(node) || isOptionalJSDocPropertyLikeTag(node) || isParameter(node) && isJSDocOptionalParameter(node);\n  }\n  function isOptionalParameter(node) {\n    if (hasEffectiveQuestionToken(node)) {\n      return true;\n    }\n    if (!isParameter(node)) {\n      return false;\n    }\n    if (node.initializer) {\n      const signature = getSignatureFromDeclaration(node.parent);\n      const parameterIndex = node.parent.parameters.indexOf(node);\n      Debug.assert(parameterIndex >= 0);\n      return parameterIndex >= getMinArgumentCount(signature, 1 /* StrongArityForUntypedJS */ | 2 /* VoidIsNonOptional */);\n    }\n    const iife = getImmediatelyInvokedFunctionExpression(node.parent);\n    if (iife) {\n      return !node.type && !node.dotDotDotToken && node.parent.parameters.indexOf(node) >= getEffectiveCallArguments(iife).length;\n    }\n    return false;\n  }\n  function isOptionalPropertyDeclaration(node) {\n    return isPropertyDeclaration(node) && !hasAccessorModifier(node) && node.questionToken;\n  }\n  function createTypePredicate(kind, parameterName, parameterIndex, type) {\n    return { kind, parameterName, parameterIndex, type };\n  }\n  function getMinTypeArgumentCount(typeParameters) {\n    let minTypeArgumentCount = 0;\n    if (typeParameters) {\n      for (let i = 0; i < typeParameters.length; i++) {\n        if (!hasTypeParameterDefault(typeParameters[i])) {\n          minTypeArgumentCount = i + 1;\n        }\n      }\n    }\n    return minTypeArgumentCount;\n  }\n  function fillMissingTypeArguments(typeArguments, typeParameters, minTypeArgumentCount, isJavaScriptImplicitAny) {\n    const numTypeParameters = length(typeParameters);\n    if (!numTypeParameters) {\n      return [];\n    }\n    const numTypeArguments = length(typeArguments);\n    if (isJavaScriptImplicitAny || numTypeArguments >= minTypeArgumentCount && numTypeArguments <= numTypeParameters) {\n      const result = typeArguments ? typeArguments.slice() : [];\n      for (let i = numTypeArguments; i < numTypeParameters; i++) {\n        result[i] = errorType;\n      }\n      const baseDefaultType = getDefaultTypeArgumentType(isJavaScriptImplicitAny);\n      for (let i = numTypeArguments; i < numTypeParameters; i++) {\n        let defaultType = getDefaultFromTypeParameter(typeParameters[i]);\n        if (isJavaScriptImplicitAny && defaultType && (isTypeIdenticalTo(defaultType, unknownType) || isTypeIdenticalTo(defaultType, emptyObjectType))) {\n          defaultType = anyType;\n        }\n        result[i] = defaultType ? instantiateType(defaultType, createTypeMapper(typeParameters, result)) : baseDefaultType;\n      }\n      result.length = typeParameters.length;\n      return result;\n    }\n    return typeArguments && typeArguments.slice();\n  }\n  function getSignatureFromDeclaration(declaration) {\n    const links = getNodeLinks(declaration);\n    if (!links.resolvedSignature) {\n      const parameters = [];\n      let flags = 0 /* None */;\n      let minArgumentCount = 0;\n      let thisParameter;\n      let thisTag = isInJSFile(declaration) ? getJSDocThisTag(declaration) : void 0;\n      let hasThisParameter2 = false;\n      const iife = getImmediatelyInvokedFunctionExpression(declaration);\n      const isJSConstructSignature = isJSDocConstructSignature(declaration);\n      const isUntypedSignatureInJSFile = !iife && isInJSFile(declaration) && isValueSignatureDeclaration(declaration) && !hasJSDocParameterTags(declaration) && !some(declaration.parameters, (p) => !!getJSDocType(p)) && !getJSDocType(declaration) && !getContextualSignatureForFunctionLikeDeclaration(declaration);\n      if (isUntypedSignatureInJSFile) {\n        flags |= 32 /* IsUntypedSignatureInJSFile */;\n      }\n      for (let i = isJSConstructSignature ? 1 : 0; i < declaration.parameters.length; i++) {\n        const param = declaration.parameters[i];\n        if (isInJSFile(param) && isJSDocThisTag(param)) {\n          thisTag = param;\n          continue;\n        }\n        let paramSymbol = param.symbol;\n        const type = isJSDocParameterTag(param) ? param.typeExpression && param.typeExpression.type : param.type;\n        if (paramSymbol && !!(paramSymbol.flags & 4 /* Property */) && !isBindingPattern(param.name)) {\n          const resolvedSymbol = resolveName(\n            param,\n            paramSymbol.escapedName,\n            111551 /* Value */,\n            /*nameNotFoundMessage*/\n            void 0,\n            /*isUse*/\n            false\n          );\n          paramSymbol = resolvedSymbol;\n        }\n        if (i === 0 && paramSymbol.escapedName === \"this\" /* This */) {\n          hasThisParameter2 = true;\n          thisParameter = param.symbol;\n        } else {\n          parameters.push(paramSymbol);\n        }\n        if (type && type.kind === 202 /* LiteralType */) {\n          flags |= 2 /* HasLiteralTypes */;\n        }\n        const isOptionalParameter2 = hasEffectiveQuestionToken(param) || isParameter(param) && param.initializer || isRestParameter(param) || iife && parameters.length > iife.arguments.length && !type;\n        if (!isOptionalParameter2) {\n          minArgumentCount = parameters.length;\n        }\n      }\n      if ((declaration.kind === 178 /* GetAccessor */ || declaration.kind === 179 /* SetAccessor */) && hasBindableName(declaration) && (!hasThisParameter2 || !thisParameter)) {\n        const otherKind = declaration.kind === 178 /* GetAccessor */ ? 179 /* SetAccessor */ : 178 /* GetAccessor */;\n        const other = getDeclarationOfKind(getSymbolOfDeclaration(declaration), otherKind);\n        if (other) {\n          thisParameter = getAnnotatedAccessorThisParameter(other);\n        }\n      }\n      if (thisTag && thisTag.typeExpression) {\n        thisParameter = createSymbolWithType(createSymbol(1 /* FunctionScopedVariable */, \"this\" /* This */), getTypeFromTypeNode(thisTag.typeExpression));\n      }\n      const hostDeclaration = isJSDocSignature(declaration) ? getEffectiveJSDocHost(declaration) : declaration;\n      const classType = hostDeclaration && isConstructorDeclaration(hostDeclaration) ? getDeclaredTypeOfClassOrInterface(getMergedSymbol(hostDeclaration.parent.symbol)) : void 0;\n      const typeParameters = classType ? classType.localTypeParameters : getTypeParametersFromDeclaration(declaration);\n      if (hasRestParameter(declaration) || isInJSFile(declaration) && maybeAddJsSyntheticRestParameter(declaration, parameters)) {\n        flags |= 1 /* HasRestParameter */;\n      }\n      if (isConstructorTypeNode(declaration) && hasSyntacticModifier(declaration, 64 /* Abstract */) || isConstructorDeclaration(declaration) && hasSyntacticModifier(declaration.parent, 64 /* Abstract */)) {\n        flags |= 4 /* Abstract */;\n      }\n      links.resolvedSignature = createSignature(\n        declaration,\n        typeParameters,\n        thisParameter,\n        parameters,\n        /*resolvedReturnType*/\n        void 0,\n        /*resolvedTypePredicate*/\n        void 0,\n        minArgumentCount,\n        flags\n      );\n    }\n    return links.resolvedSignature;\n  }\n  function maybeAddJsSyntheticRestParameter(declaration, parameters) {\n    if (isJSDocSignature(declaration) || !containsArgumentsReference(declaration)) {\n      return false;\n    }\n    const lastParam = lastOrUndefined(declaration.parameters);\n    const lastParamTags = lastParam ? getJSDocParameterTags(lastParam) : getJSDocTags(declaration).filter(isJSDocParameterTag);\n    const lastParamVariadicType = firstDefined(lastParamTags, (p) => p.typeExpression && isJSDocVariadicType(p.typeExpression.type) ? p.typeExpression.type : void 0);\n    const syntheticArgsSymbol = createSymbol(3 /* Variable */, \"args\", 32768 /* RestParameter */);\n    if (lastParamVariadicType) {\n      syntheticArgsSymbol.links.type = createArrayType(getTypeFromTypeNode(lastParamVariadicType.type));\n    } else {\n      syntheticArgsSymbol.links.checkFlags |= 65536 /* DeferredType */;\n      syntheticArgsSymbol.links.deferralParent = neverType;\n      syntheticArgsSymbol.links.deferralConstituents = [anyArrayType];\n      syntheticArgsSymbol.links.deferralWriteConstituents = [anyArrayType];\n    }\n    if (lastParamVariadicType) {\n      parameters.pop();\n    }\n    parameters.push(syntheticArgsSymbol);\n    return true;\n  }\n  function getSignatureOfTypeTag(node) {\n    if (!(isInJSFile(node) && isFunctionLikeDeclaration(node))) return void 0;\n    const typeTag = getJSDocTypeTag(node);\n    return (typeTag == null ? void 0 : typeTag.typeExpression) && getSingleCallSignature(getTypeFromTypeNode(typeTag.typeExpression));\n  }\n  function getParameterTypeOfTypeTag(func, parameter) {\n    const signature = getSignatureOfTypeTag(func);\n    if (!signature) return void 0;\n    const pos = func.parameters.indexOf(parameter);\n    return parameter.dotDotDotToken ? getRestTypeAtPosition(signature, pos) : getTypeAtPosition(signature, pos);\n  }\n  function getReturnTypeOfTypeTag(node) {\n    const signature = getSignatureOfTypeTag(node);\n    return signature && getReturnTypeOfSignature(signature);\n  }\n  function containsArgumentsReference(declaration) {\n    const links = getNodeLinks(declaration);\n    if (links.containsArgumentsReference === void 0) {\n      if (links.flags & 512 /* CaptureArguments */) {\n        links.containsArgumentsReference = true;\n      } else {\n        links.containsArgumentsReference = traverse(declaration.body);\n      }\n    }\n    return links.containsArgumentsReference;\n    function traverse(node) {\n      if (!node) return false;\n      switch (node.kind) {\n        case 80 /* Identifier */:\n          return node.escapedText === argumentsSymbol.escapedName && getReferencedValueSymbol(node) === argumentsSymbol;\n        case 173 /* PropertyDeclaration */:\n        case 175 /* MethodDeclaration */:\n        case 178 /* GetAccessor */:\n        case 179 /* SetAccessor */:\n          return node.name.kind === 168 /* ComputedPropertyName */ && traverse(node.name);\n        case 212 /* PropertyAccessExpression */:\n        case 213 /* ElementAccessExpression */:\n          return traverse(node.expression);\n        case 304 /* PropertyAssignment */:\n          return traverse(node.initializer);\n        default:\n          return !nodeStartsNewLexicalEnvironment(node) && !isPartOfTypeNode(node) && !!forEachChild(node, traverse);\n      }\n    }\n  }\n  function getSignaturesOfSymbol(symbol) {\n    if (!symbol || !symbol.declarations) return emptyArray;\n    const result = [];\n    for (let i = 0; i < symbol.declarations.length; i++) {\n      const decl = symbol.declarations[i];\n      if (!isFunctionLike(decl)) continue;\n      if (i > 0 && decl.body) {\n        const previous = symbol.declarations[i - 1];\n        if (decl.parent === previous.parent && decl.kind === previous.kind && decl.pos === previous.end) {\n          continue;\n        }\n      }\n      if (isInJSFile(decl) && decl.jsDoc) {\n        const tags = getJSDocOverloadTags(decl);\n        if (length(tags)) {\n          for (const tag of tags) {\n            const jsDocSignature = tag.typeExpression;\n            if (jsDocSignature.type === void 0 && !isConstructorDeclaration(decl)) {\n              reportImplicitAny(jsDocSignature, anyType);\n            }\n            result.push(getSignatureFromDeclaration(jsDocSignature));\n          }\n          continue;\n        }\n      }\n      result.push(\n        !isFunctionExpressionOrArrowFunction(decl) && !isObjectLiteralMethod(decl) && getSignatureOfTypeTag(decl) || getSignatureFromDeclaration(decl)\n      );\n    }\n    return result;\n  }\n  function resolveExternalModuleTypeByLiteral(name) {\n    const moduleSym = resolveExternalModuleName(name, name);\n    if (moduleSym) {\n      const resolvedModuleSymbol = resolveExternalModuleSymbol(moduleSym);\n      if (resolvedModuleSymbol) {\n        return getTypeOfSymbol(resolvedModuleSymbol);\n      }\n    }\n    return anyType;\n  }\n  function getThisTypeOfSignature(signature) {\n    if (signature.thisParameter) {\n      return getTypeOfSymbol(signature.thisParameter);\n    }\n  }\n  function getTypePredicateOfSignature(signature) {\n    if (!signature.resolvedTypePredicate) {\n      if (signature.target) {\n        const targetTypePredicate = getTypePredicateOfSignature(signature.target);\n        signature.resolvedTypePredicate = targetTypePredicate ? instantiateTypePredicate(targetTypePredicate, signature.mapper) : noTypePredicate;\n      } else if (signature.compositeSignatures) {\n        signature.resolvedTypePredicate = getUnionOrIntersectionTypePredicate(signature.compositeSignatures, signature.compositeKind) || noTypePredicate;\n      } else {\n        const type = signature.declaration && getEffectiveReturnTypeNode(signature.declaration);\n        let jsdocPredicate;\n        if (!type) {\n          const jsdocSignature = getSignatureOfTypeTag(signature.declaration);\n          if (jsdocSignature && signature !== jsdocSignature) {\n            jsdocPredicate = getTypePredicateOfSignature(jsdocSignature);\n          }\n        }\n        if (type || jsdocPredicate) {\n          signature.resolvedTypePredicate = type && isTypePredicateNode(type) ? createTypePredicateFromTypePredicateNode(type, signature) : jsdocPredicate || noTypePredicate;\n        } else if (signature.declaration && isFunctionLikeDeclaration(signature.declaration) && (!signature.resolvedReturnType || signature.resolvedReturnType.flags & 16 /* Boolean */) && getParameterCount(signature) > 0) {\n          const { declaration } = signature;\n          signature.resolvedTypePredicate = noTypePredicate;\n          signature.resolvedTypePredicate = getTypePredicateFromBody(declaration) || noTypePredicate;\n        } else {\n          signature.resolvedTypePredicate = noTypePredicate;\n        }\n      }\n      Debug.assert(!!signature.resolvedTypePredicate);\n    }\n    return signature.resolvedTypePredicate === noTypePredicate ? void 0 : signature.resolvedTypePredicate;\n  }\n  function createTypePredicateFromTypePredicateNode(node, signature) {\n    const parameterName = node.parameterName;\n    const type = node.type && getTypeFromTypeNode(node.type);\n    return parameterName.kind === 198 /* ThisType */ ? createTypePredicate(\n      node.assertsModifier ? 2 /* AssertsThis */ : 0 /* This */,\n      /*parameterName*/\n      void 0,\n      /*parameterIndex*/\n      void 0,\n      type\n    ) : createTypePredicate(node.assertsModifier ? 3 /* AssertsIdentifier */ : 1 /* Identifier */, parameterName.escapedText, findIndex(signature.parameters, (p) => p.escapedName === parameterName.escapedText), type);\n  }\n  function getUnionOrIntersectionType(types, kind, unionReduction) {\n    return kind !== 2097152 /* Intersection */ ? getUnionType(types, unionReduction) : getIntersectionType(types);\n  }\n  function getReturnTypeOfSignature(signature) {\n    if (!signature.resolvedReturnType) {\n      if (!pushTypeResolution(signature, 3 /* ResolvedReturnType */)) {\n        return errorType;\n      }\n      let type = signature.target ? instantiateType(getReturnTypeOfSignature(signature.target), signature.mapper) : signature.compositeSignatures ? instantiateType(getUnionOrIntersectionType(map(signature.compositeSignatures, getReturnTypeOfSignature), signature.compositeKind, 2 /* Subtype */), signature.mapper) : getReturnTypeFromAnnotation(signature.declaration) || (nodeIsMissing(signature.declaration.body) ? anyType : getReturnTypeFromBody(signature.declaration));\n      if (signature.flags & 8 /* IsInnerCallChain */) {\n        type = addOptionalTypeMarker(type);\n      } else if (signature.flags & 16 /* IsOuterCallChain */) {\n        type = getOptionalType(type);\n      }\n      if (!popTypeResolution()) {\n        if (signature.declaration) {\n          const typeNode = getEffectiveReturnTypeNode(signature.declaration);\n          if (typeNode) {\n            error2(typeNode, Diagnostics.Return_type_annotation_circularly_references_itself);\n          } else if (noImplicitAny) {\n            const declaration = signature.declaration;\n            const name = getNameOfDeclaration(declaration);\n            if (name) {\n              error2(name, Diagnostics._0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions, declarationNameToString(name));\n            } else {\n              error2(declaration, Diagnostics.Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions);\n            }\n          }\n        }\n        type = anyType;\n      }\n      signature.resolvedReturnType ?? (signature.resolvedReturnType = type);\n    }\n    return signature.resolvedReturnType;\n  }\n  function getReturnTypeFromAnnotation(declaration) {\n    if (declaration.kind === 177 /* Constructor */) {\n      return getDeclaredTypeOfClassOrInterface(getMergedSymbol(declaration.parent.symbol));\n    }\n    const typeNode = getEffectiveReturnTypeNode(declaration);\n    if (isJSDocSignature(declaration)) {\n      const root = getJSDocRoot(declaration);\n      if (root && isConstructorDeclaration(root.parent) && !typeNode) {\n        return getDeclaredTypeOfClassOrInterface(getMergedSymbol(root.parent.parent.symbol));\n      }\n    }\n    if (isJSDocConstructSignature(declaration)) {\n      return getTypeFromTypeNode(declaration.parameters[0].type);\n    }\n    if (typeNode) {\n      return getTypeFromTypeNode(typeNode);\n    }\n    if (declaration.kind === 178 /* GetAccessor */ && hasBindableName(declaration)) {\n      const jsDocType = isInJSFile(declaration) && getTypeForDeclarationFromJSDocComment(declaration);\n      if (jsDocType) {\n        return jsDocType;\n      }\n      const setter = getDeclarationOfKind(getSymbolOfDeclaration(declaration), 179 /* SetAccessor */);\n      const setterType = getAnnotatedAccessorType(setter);\n      if (setterType) {\n        return setterType;\n      }\n    }\n    return getReturnTypeOfTypeTag(declaration);\n  }\n  function isResolvingReturnTypeOfSignature(signature) {\n    return signature.compositeSignatures && some(signature.compositeSignatures, isResolvingReturnTypeOfSignature) || !signature.resolvedReturnType && findResolutionCycleStartIndex(signature, 3 /* ResolvedReturnType */) >= 0;\n  }\n  function getRestTypeOfSignature(signature) {\n    return tryGetRestTypeOfSignature(signature) || anyType;\n  }\n  function tryGetRestTypeOfSignature(signature) {\n    if (signatureHasRestParameter(signature)) {\n      const sigRestType = getTypeOfSymbol(signature.parameters[signature.parameters.length - 1]);\n      const restType = isTupleType(sigRestType) ? getRestTypeOfTupleType(sigRestType) : sigRestType;\n      return restType && getIndexTypeOfType(restType, numberType);\n    }\n    return void 0;\n  }\n  function getSignatureInstantiation(signature, typeArguments, isJavascript, inferredTypeParameters) {\n    const instantiatedSignature = getSignatureInstantiationWithoutFillingInTypeArguments(signature, fillMissingTypeArguments(typeArguments, signature.typeParameters, getMinTypeArgumentCount(signature.typeParameters), isJavascript));\n    if (inferredTypeParameters) {\n      const returnSignature = getSingleCallOrConstructSignature(getReturnTypeOfSignature(instantiatedSignature));\n      if (returnSignature) {\n        const newReturnSignature = cloneSignature(returnSignature);\n        newReturnSignature.typeParameters = inferredTypeParameters;\n        const newReturnType = getOrCreateTypeFromSignature(newReturnSignature);\n        newReturnType.mapper = instantiatedSignature.mapper;\n        const newInstantiatedSignature = cloneSignature(instantiatedSignature);\n        newInstantiatedSignature.resolvedReturnType = newReturnType;\n        return newInstantiatedSignature;\n      }\n    }\n    return instantiatedSignature;\n  }\n  function getSignatureInstantiationWithoutFillingInTypeArguments(signature, typeArguments) {\n    const instantiations = signature.instantiations || (signature.instantiations = /* @__PURE__ */ new Map());\n    const id = getTypeListId(typeArguments);\n    let instantiation = instantiations.get(id);\n    if (!instantiation) {\n      instantiations.set(id, instantiation = createSignatureInstantiation(signature, typeArguments));\n    }\n    return instantiation;\n  }\n  function createSignatureInstantiation(signature, typeArguments) {\n    return instantiateSignature(\n      signature,\n      createSignatureTypeMapper(signature, typeArguments),\n      /*eraseTypeParameters*/\n      true\n    );\n  }\n  function getTypeParametersForMapper(signature) {\n    return sameMap(signature.typeParameters, (tp) => tp.mapper ? instantiateType(tp, tp.mapper) : tp);\n  }\n  function createSignatureTypeMapper(signature, typeArguments) {\n    return createTypeMapper(getTypeParametersForMapper(signature), typeArguments);\n  }\n  function getErasedSignature(signature) {\n    return signature.typeParameters ? signature.erasedSignatureCache || (signature.erasedSignatureCache = createErasedSignature(signature)) : signature;\n  }\n  function createErasedSignature(signature) {\n    return instantiateSignature(\n      signature,\n      createTypeEraser(signature.typeParameters),\n      /*eraseTypeParameters*/\n      true\n    );\n  }\n  function getCanonicalSignature(signature) {\n    return signature.typeParameters ? signature.canonicalSignatureCache || (signature.canonicalSignatureCache = createCanonicalSignature(signature)) : signature;\n  }\n  function createCanonicalSignature(signature) {\n    return getSignatureInstantiation(\n      signature,\n      map(signature.typeParameters, (tp) => tp.target && !getConstraintOfTypeParameter(tp.target) ? tp.target : tp),\n      isInJSFile(signature.declaration)\n    );\n  }\n  function getBaseSignature(signature) {\n    const typeParameters = signature.typeParameters;\n    if (typeParameters) {\n      if (signature.baseSignatureCache) {\n        return signature.baseSignatureCache;\n      }\n      const typeEraser = createTypeEraser(typeParameters);\n      const baseConstraintMapper = createTypeMapper(typeParameters, map(typeParameters, (tp) => getConstraintOfTypeParameter(tp) || unknownType));\n      let baseConstraints = map(typeParameters, (tp) => instantiateType(tp, baseConstraintMapper) || unknownType);\n      for (let i = 0; i < typeParameters.length - 1; i++) {\n        baseConstraints = instantiateTypes(baseConstraints, baseConstraintMapper);\n      }\n      baseConstraints = instantiateTypes(baseConstraints, typeEraser);\n      return signature.baseSignatureCache = instantiateSignature(\n        signature,\n        createTypeMapper(typeParameters, baseConstraints),\n        /*eraseTypeParameters*/\n        true\n      );\n    }\n    return signature;\n  }\n  function getOrCreateTypeFromSignature(signature) {\n    var _a, _b;\n    if (!signature.isolatedSignatureType) {\n      const kind = (_a = signature.declaration) == null ? void 0 : _a.kind;\n      const isConstructor = kind === void 0 || kind === 177 /* Constructor */ || kind === 181 /* ConstructSignature */ || kind === 186 /* ConstructorType */;\n      const type = createObjectType(16 /* Anonymous */ | 134217728 /* SingleSignatureType */, (_b = signature.declaration) == null ? void 0 : _b.symbol);\n      type.members = emptySymbols;\n      type.properties = emptyArray;\n      type.callSignatures = !isConstructor ? [signature] : emptyArray;\n      type.constructSignatures = isConstructor ? [signature] : emptyArray;\n      type.indexInfos = emptyArray;\n      signature.isolatedSignatureType = type;\n    }\n    return signature.isolatedSignatureType;\n  }\n  function getIndexSymbol(symbol) {\n    return symbol.members ? getIndexSymbolFromSymbolTable(getMembersOfSymbol(symbol)) : void 0;\n  }\n  function getIndexSymbolFromSymbolTable(symbolTable) {\n    return symbolTable.get(\"__index\" /* Index */);\n  }\n  function createIndexInfo(keyType, type, isReadonly, declaration, components) {\n    return { keyType, type, isReadonly, declaration, components };\n  }\n  function getIndexInfosOfSymbol(symbol) {\n    const indexSymbol = getIndexSymbol(symbol);\n    return indexSymbol ? getIndexInfosOfIndexSymbol(indexSymbol, arrayFrom(getMembersOfSymbol(symbol).values())) : emptyArray;\n  }\n  function getIndexInfosOfIndexSymbol(indexSymbol, siblingSymbols = indexSymbol.parent ? arrayFrom(getMembersOfSymbol(indexSymbol.parent).values()) : void 0) {\n    if (indexSymbol.declarations) {\n      const indexInfos = [];\n      let hasComputedNumberProperty = false;\n      let readonlyComputedNumberProperty = true;\n      let hasComputedSymbolProperty = false;\n      let readonlyComputedSymbolProperty = true;\n      let hasComputedStringProperty = false;\n      let readonlyComputedStringProperty = true;\n      const computedPropertySymbols = [];\n      for (const declaration of indexSymbol.declarations) {\n        if (isIndexSignatureDeclaration(declaration)) {\n          if (declaration.parameters.length === 1) {\n            const parameter = declaration.parameters[0];\n            if (parameter.type) {\n              forEachType(getTypeFromTypeNode(parameter.type), (keyType) => {\n                if (isValidIndexKeyType(keyType) && !findIndexInfo(indexInfos, keyType)) {\n                  indexInfos.push(createIndexInfo(keyType, declaration.type ? getTypeFromTypeNode(declaration.type) : anyType, hasEffectiveModifier(declaration, 8 /* Readonly */), declaration));\n                }\n              });\n            }\n          }\n        } else if (hasLateBindableIndexSignature(declaration)) {\n          const declName = isBinaryExpression(declaration) ? declaration.left : declaration.name;\n          const keyType = isElementAccessExpression(declName) ? checkExpressionCached(declName.argumentExpression) : checkComputedPropertyName(declName);\n          if (findIndexInfo(indexInfos, keyType)) {\n            continue;\n          }\n          if (isTypeAssignableTo(keyType, stringNumberSymbolType)) {\n            if (isTypeAssignableTo(keyType, numberType)) {\n              hasComputedNumberProperty = true;\n              if (!hasEffectiveReadonlyModifier(declaration)) {\n                readonlyComputedNumberProperty = false;\n              }\n            } else if (isTypeAssignableTo(keyType, esSymbolType)) {\n              hasComputedSymbolProperty = true;\n              if (!hasEffectiveReadonlyModifier(declaration)) {\n                readonlyComputedSymbolProperty = false;\n              }\n            } else {\n              hasComputedStringProperty = true;\n              if (!hasEffectiveReadonlyModifier(declaration)) {\n                readonlyComputedStringProperty = false;\n              }\n            }\n            computedPropertySymbols.push(declaration.symbol);\n          }\n        }\n      }\n      const allPropertySymbols = concatenate(computedPropertySymbols, filter(siblingSymbols, (s) => s !== indexSymbol));\n      if (hasComputedStringProperty && !findIndexInfo(indexInfos, stringType)) indexInfos.push(getObjectLiteralIndexInfo(readonlyComputedStringProperty, 0, allPropertySymbols, stringType));\n      if (hasComputedNumberProperty && !findIndexInfo(indexInfos, numberType)) indexInfos.push(getObjectLiteralIndexInfo(readonlyComputedNumberProperty, 0, allPropertySymbols, numberType));\n      if (hasComputedSymbolProperty && !findIndexInfo(indexInfos, esSymbolType)) indexInfos.push(getObjectLiteralIndexInfo(readonlyComputedSymbolProperty, 0, allPropertySymbols, esSymbolType));\n      return indexInfos;\n    }\n    return emptyArray;\n  }\n  function isValidIndexKeyType(type) {\n    return !!(type.flags & (4 /* String */ | 8 /* Number */ | 4096 /* ESSymbol */)) || isPatternLiteralType(type) || !!(type.flags & 2097152 /* Intersection */) && !isGenericType(type) && some(type.types, isValidIndexKeyType);\n  }\n  function getConstraintDeclaration(type) {\n    return mapDefined(filter(type.symbol && type.symbol.declarations, isTypeParameterDeclaration), getEffectiveConstraintOfTypeParameter)[0];\n  }\n  function getInferredTypeParameterConstraint(typeParameter, omitTypeReferences) {\n    var _a;\n    let inferences;\n    if ((_a = typeParameter.symbol) == null ? void 0 : _a.declarations) {\n      for (const declaration of typeParameter.symbol.declarations) {\n        if (declaration.parent.kind === 196 /* InferType */) {\n          const [childTypeParameter = declaration.parent, grandParent] = walkUpParenthesizedTypesAndGetParentAndChild(declaration.parent.parent);\n          if (grandParent.kind === 184 /* TypeReference */ && !omitTypeReferences) {\n            const typeReference = grandParent;\n            const typeParameters = getTypeParametersForTypeReferenceOrImport(typeReference);\n            if (typeParameters) {\n              const index = typeReference.typeArguments.indexOf(childTypeParameter);\n              if (index < typeParameters.length) {\n                const declaredConstraint = getConstraintOfTypeParameter(typeParameters[index]);\n                if (declaredConstraint) {\n                  const mapper = makeDeferredTypeMapper(\n                    typeParameters,\n                    typeParameters.map((_, index2) => () => {\n                      return getEffectiveTypeArgumentAtIndex(typeReference, typeParameters, index2);\n                    })\n                  );\n                  const constraint = instantiateType(declaredConstraint, mapper);\n                  if (constraint !== typeParameter) {\n                    inferences = append(inferences, constraint);\n                  }\n                }\n              }\n            }\n          } else if (grandParent.kind === 170 /* Parameter */ && grandParent.dotDotDotToken || grandParent.kind === 192 /* RestType */ || grandParent.kind === 203 /* NamedTupleMember */ && grandParent.dotDotDotToken) {\n            inferences = append(inferences, createArrayType(unknownType));\n          } else if (grandParent.kind === 205 /* TemplateLiteralTypeSpan */) {\n            inferences = append(inferences, stringType);\n          } else if (grandParent.kind === 169 /* TypeParameter */ && grandParent.parent.kind === 201 /* MappedType */) {\n            inferences = append(inferences, stringNumberSymbolType);\n          } else if (grandParent.kind === 201 /* MappedType */ && grandParent.type && skipParentheses(grandParent.type) === declaration.parent && grandParent.parent.kind === 195 /* ConditionalType */ && grandParent.parent.extendsType === grandParent && grandParent.parent.checkType.kind === 201 /* MappedType */ && grandParent.parent.checkType.type) {\n            const checkMappedType2 = grandParent.parent.checkType;\n            const nodeType = getTypeFromTypeNode(checkMappedType2.type);\n            inferences = append(inferences, instantiateType(nodeType, makeUnaryTypeMapper(getDeclaredTypeOfTypeParameter(getSymbolOfDeclaration(checkMappedType2.typeParameter)), checkMappedType2.typeParameter.constraint ? getTypeFromTypeNode(checkMappedType2.typeParameter.constraint) : stringNumberSymbolType)));\n          }\n        }\n      }\n    }\n    return inferences && getIntersectionType(inferences);\n  }\n  function getConstraintFromTypeParameter(typeParameter) {\n    if (!typeParameter.constraint) {\n      if (typeParameter.target) {\n        const targetConstraint = getConstraintOfTypeParameter(typeParameter.target);\n        typeParameter.constraint = targetConstraint ? instantiateType(targetConstraint, typeParameter.mapper) : noConstraintType;\n      } else {\n        const constraintDeclaration = getConstraintDeclaration(typeParameter);\n        if (!constraintDeclaration) {\n          typeParameter.constraint = getInferredTypeParameterConstraint(typeParameter) || noConstraintType;\n        } else {\n          let type = getTypeFromTypeNode(constraintDeclaration);\n          if (type.flags & 1 /* Any */ && !isErrorType(type)) {\n            type = constraintDeclaration.parent.parent.kind === 201 /* MappedType */ ? stringNumberSymbolType : unknownType;\n          }\n          typeParameter.constraint = type;\n        }\n      }\n    }\n    return typeParameter.constraint === noConstraintType ? void 0 : typeParameter.constraint;\n  }\n  function getParentSymbolOfTypeParameter(typeParameter) {\n    const tp = getDeclarationOfKind(typeParameter.symbol, 169 /* TypeParameter */);\n    const host2 = isJSDocTemplateTag(tp.parent) ? getEffectiveContainerForJSDocTemplateTag(tp.parent) : tp.parent;\n    return host2 && getSymbolOfNode(host2);\n  }\n  function getTypeListId(types) {\n    let result = \"\";\n    if (types) {\n      const length2 = types.length;\n      let i = 0;\n      while (i < length2) {\n        const startId = types[i].id;\n        let count = 1;\n        while (i + count < length2 && types[i + count].id === startId + count) {\n          count++;\n        }\n        if (result.length) {\n          result += \",\";\n        }\n        result += startId;\n        if (count > 1) {\n          result += \":\" + count;\n        }\n        i += count;\n      }\n    }\n    return result;\n  }\n  function getAliasId(aliasSymbol, aliasTypeArguments) {\n    return aliasSymbol ? `@${getSymbolId(aliasSymbol)}` + (aliasTypeArguments ? `:${getTypeListId(aliasTypeArguments)}` : \"\") : \"\";\n  }\n  function getPropagatingFlagsOfTypes(types, excludeKinds) {\n    let result = 0;\n    for (const type of types) {\n      if (excludeKinds === void 0 || !(type.flags & excludeKinds)) {\n        result |= getObjectFlags(type);\n      }\n    }\n    return result & 458752 /* PropagatingFlags */;\n  }\n  function tryCreateTypeReference(target, typeArguments) {\n    if (some(typeArguments) && target === emptyGenericType) {\n      return unknownType;\n    }\n    return createTypeReference(target, typeArguments);\n  }\n  function createTypeReference(target, typeArguments) {\n    const id = getTypeListId(typeArguments);\n    let type = target.instantiations.get(id);\n    if (!type) {\n      type = createObjectType(4 /* Reference */, target.symbol);\n      target.instantiations.set(id, type);\n      type.objectFlags |= typeArguments ? getPropagatingFlagsOfTypes(typeArguments) : 0;\n      type.target = target;\n      type.resolvedTypeArguments = typeArguments;\n    }\n    return type;\n  }\n  function cloneTypeReference(source) {\n    const type = createTypeWithSymbol(source.flags, source.symbol);\n    type.objectFlags = source.objectFlags;\n    type.target = source.target;\n    type.resolvedTypeArguments = source.resolvedTypeArguments;\n    return type;\n  }\n  function createDeferredTypeReference(target, node, mapper, aliasSymbol, aliasTypeArguments) {\n    if (!aliasSymbol) {\n      aliasSymbol = getAliasSymbolForTypeNode(node);\n      const localAliasTypeArguments = getTypeArgumentsForAliasSymbol(aliasSymbol);\n      aliasTypeArguments = mapper ? instantiateTypes(localAliasTypeArguments, mapper) : localAliasTypeArguments;\n    }\n    const type = createObjectType(4 /* Reference */, target.symbol);\n    type.target = target;\n    type.node = node;\n    type.mapper = mapper;\n    type.aliasSymbol = aliasSymbol;\n    type.aliasTypeArguments = aliasTypeArguments;\n    return type;\n  }\n  function getTypeArguments(type) {\n    var _a, _b;\n    if (!type.resolvedTypeArguments) {\n      if (!pushTypeResolution(type, 5 /* ResolvedTypeArguments */)) {\n        return concatenate(type.target.outerTypeParameters, (_a = type.target.localTypeParameters) == null ? void 0 : _a.map(() => errorType)) || emptyArray;\n      }\n      const node = type.node;\n      const typeArguments = !node ? emptyArray : node.kind === 184 /* TypeReference */ ? concatenate(type.target.outerTypeParameters, getEffectiveTypeArguments2(node, type.target.localTypeParameters)) : node.kind === 189 /* ArrayType */ ? [getTypeFromTypeNode(node.elementType)] : map(node.elements, getTypeFromTypeNode);\n      if (popTypeResolution()) {\n        type.resolvedTypeArguments ?? (type.resolvedTypeArguments = type.mapper ? instantiateTypes(typeArguments, type.mapper) : typeArguments);\n      } else {\n        type.resolvedTypeArguments ?? (type.resolvedTypeArguments = concatenate(type.target.outerTypeParameters, ((_b = type.target.localTypeParameters) == null ? void 0 : _b.map(() => errorType)) || emptyArray));\n        error2(\n          type.node || currentNode,\n          type.target.symbol ? Diagnostics.Type_arguments_for_0_circularly_reference_themselves : Diagnostics.Tuple_type_arguments_circularly_reference_themselves,\n          type.target.symbol && symbolToString(type.target.symbol)\n        );\n      }\n    }\n    return type.resolvedTypeArguments;\n  }\n  function getTypeReferenceArity(type) {\n    return length(type.target.typeParameters);\n  }\n  function getTypeFromClassOrInterfaceReference(node, symbol) {\n    const type = getDeclaredTypeOfSymbol(getMergedSymbol(symbol));\n    const typeParameters = type.localTypeParameters;\n    if (typeParameters) {\n      const numTypeArguments = length(node.typeArguments);\n      const minTypeArgumentCount = getMinTypeArgumentCount(typeParameters);\n      const isJs = isInJSFile(node);\n      const isJsImplicitAny = !noImplicitAny && isJs;\n      if (!isJsImplicitAny && (numTypeArguments < minTypeArgumentCount || numTypeArguments > typeParameters.length)) {\n        const missingAugmentsTag = isJs && isExpressionWithTypeArguments(node) && !isJSDocAugmentsTag(node.parent);\n        const diag2 = minTypeArgumentCount === typeParameters.length ? missingAugmentsTag ? Diagnostics.Expected_0_type_arguments_provide_these_with_an_extends_tag : Diagnostics.Generic_type_0_requires_1_type_argument_s : missingAugmentsTag ? Diagnostics.Expected_0_1_type_arguments_provide_these_with_an_extends_tag : Diagnostics.Generic_type_0_requires_between_1_and_2_type_arguments;\n        const typeStr = typeToString(\n          type,\n          /*enclosingDeclaration*/\n          void 0,\n          2 /* WriteArrayAsGenericType */\n        );\n        error2(node, diag2, typeStr, minTypeArgumentCount, typeParameters.length);\n        if (!isJs) {\n          return errorType;\n        }\n      }\n      if (node.kind === 184 /* TypeReference */ && isDeferredTypeReferenceNode(node, length(node.typeArguments) !== typeParameters.length)) {\n        return createDeferredTypeReference(\n          type,\n          node,\n          /*mapper*/\n          void 0\n        );\n      }\n      const typeArguments = concatenate(type.outerTypeParameters, fillMissingTypeArguments(typeArgumentsFromTypeReferenceNode(node), typeParameters, minTypeArgumentCount, isJs));\n      return createTypeReference(type, typeArguments);\n    }\n    return checkNoTypeArguments(node, symbol) ? type : errorType;\n  }\n  function getTypeAliasInstantiation(symbol, typeArguments, aliasSymbol, aliasTypeArguments) {\n    const type = getDeclaredTypeOfSymbol(symbol);\n    if (type === intrinsicMarkerType) {\n      const typeKind = intrinsicTypeKinds.get(symbol.escapedName);\n      if (typeKind !== void 0 && typeArguments && typeArguments.length === 1) {\n        return typeKind === 4 /* NoInfer */ ? getNoInferType(typeArguments[0]) : getStringMappingType(symbol, typeArguments[0]);\n      }\n    }\n    const links = getSymbolLinks(symbol);\n    const typeParameters = links.typeParameters;\n    const id = getTypeListId(typeArguments) + getAliasId(aliasSymbol, aliasTypeArguments);\n    let instantiation = links.instantiations.get(id);\n    if (!instantiation) {\n      links.instantiations.set(id, instantiation = instantiateTypeWithAlias(type, createTypeMapper(typeParameters, fillMissingTypeArguments(typeArguments, typeParameters, getMinTypeArgumentCount(typeParameters), isInJSFile(symbol.valueDeclaration))), aliasSymbol, aliasTypeArguments));\n    }\n    return instantiation;\n  }\n  function getTypeFromTypeAliasReference(node, symbol) {\n    if (getCheckFlags(symbol) & 1048576 /* Unresolved */) {\n      const typeArguments = typeArgumentsFromTypeReferenceNode(node);\n      const id = getAliasId(symbol, typeArguments);\n      let errorType2 = errorTypes.get(id);\n      if (!errorType2) {\n        errorType2 = createIntrinsicType(\n          1 /* Any */,\n          \"error\",\n          /*objectFlags*/\n          void 0,\n          `alias ${id}`\n        );\n        errorType2.aliasSymbol = symbol;\n        errorType2.aliasTypeArguments = typeArguments;\n        errorTypes.set(id, errorType2);\n      }\n      return errorType2;\n    }\n    const type = getDeclaredTypeOfSymbol(symbol);\n    const typeParameters = getSymbolLinks(symbol).typeParameters;\n    if (typeParameters) {\n      const numTypeArguments = length(node.typeArguments);\n      const minTypeArgumentCount = getMinTypeArgumentCount(typeParameters);\n      if (numTypeArguments < minTypeArgumentCount || numTypeArguments > typeParameters.length) {\n        error2(\n          node,\n          minTypeArgumentCount === typeParameters.length ? Diagnostics.Generic_type_0_requires_1_type_argument_s : Diagnostics.Generic_type_0_requires_between_1_and_2_type_arguments,\n          symbolToString(symbol),\n          minTypeArgumentCount,\n          typeParameters.length\n        );\n        return errorType;\n      }\n      const aliasSymbol = getAliasSymbolForTypeNode(node);\n      let newAliasSymbol = aliasSymbol && (isLocalTypeAlias(symbol) || !isLocalTypeAlias(aliasSymbol)) ? aliasSymbol : void 0;\n      let aliasTypeArguments;\n      if (newAliasSymbol) {\n        aliasTypeArguments = getTypeArgumentsForAliasSymbol(newAliasSymbol);\n      } else if (isTypeReferenceType(node)) {\n        const aliasSymbol2 = resolveTypeReferenceName(\n          node,\n          2097152 /* Alias */,\n          /*ignoreErrors*/\n          true\n        );\n        if (aliasSymbol2 && aliasSymbol2 !== unknownSymbol) {\n          const resolved = resolveAlias(aliasSymbol2);\n          if (resolved && resolved.flags & 524288 /* TypeAlias */) {\n            newAliasSymbol = resolved;\n            aliasTypeArguments = typeArgumentsFromTypeReferenceNode(node) || (typeParameters ? [] : void 0);\n          }\n        }\n      }\n      return getTypeAliasInstantiation(symbol, typeArgumentsFromTypeReferenceNode(node), newAliasSymbol, aliasTypeArguments);\n    }\n    return checkNoTypeArguments(node, symbol) ? type : errorType;\n  }\n  function isLocalTypeAlias(symbol) {\n    var _a;\n    const declaration = (_a = symbol.declarations) == null ? void 0 : _a.find(isTypeAlias);\n    return !!(declaration && getContainingFunction(declaration));\n  }\n  function getTypeReferenceName(node) {\n    switch (node.kind) {\n      case 184 /* TypeReference */:\n        return node.typeName;\n      case 234 /* ExpressionWithTypeArguments */:\n        const expr = node.expression;\n        if (isEntityNameExpression(expr)) {\n          return expr;\n        }\n    }\n    return void 0;\n  }\n  function getSymbolPath(symbol) {\n    return symbol.parent ? `${getSymbolPath(symbol.parent)}.${symbol.escapedName}` : symbol.escapedName;\n  }\n  function getUnresolvedSymbolForEntityName(name) {\n    const identifier = name.kind === 167 /* QualifiedName */ ? name.right : name.kind === 212 /* PropertyAccessExpression */ ? name.name : name;\n    const text = identifier.escapedText;\n    if (text) {\n      const parentSymbol = name.kind === 167 /* QualifiedName */ ? getUnresolvedSymbolForEntityName(name.left) : name.kind === 212 /* PropertyAccessExpression */ ? getUnresolvedSymbolForEntityName(name.expression) : void 0;\n      const path = parentSymbol ? `${getSymbolPath(parentSymbol)}.${text}` : text;\n      let result = unresolvedSymbols.get(path);\n      if (!result) {\n        unresolvedSymbols.set(path, result = createSymbol(524288 /* TypeAlias */, text, 1048576 /* Unresolved */));\n        result.parent = parentSymbol;\n        result.links.declaredType = unresolvedType;\n      }\n      return result;\n    }\n    return unknownSymbol;\n  }\n  function resolveTypeReferenceName(typeReference, meaning, ignoreErrors) {\n    const name = getTypeReferenceName(typeReference);\n    if (!name) {\n      return unknownSymbol;\n    }\n    const symbol = resolveEntityName(name, meaning, ignoreErrors);\n    return symbol && symbol !== unknownSymbol ? symbol : ignoreErrors ? unknownSymbol : getUnresolvedSymbolForEntityName(name);\n  }\n  function getTypeReferenceType(node, symbol) {\n    if (symbol === unknownSymbol) {\n      return errorType;\n    }\n    symbol = getExpandoSymbol(symbol) || symbol;\n    if (symbol.flags & (32 /* Class */ | 64 /* Interface */)) {\n      return getTypeFromClassOrInterfaceReference(node, symbol);\n    }\n    if (symbol.flags & 524288 /* TypeAlias */) {\n      return getTypeFromTypeAliasReference(node, symbol);\n    }\n    const res = tryGetDeclaredTypeOfSymbol(symbol);\n    if (res) {\n      return checkNoTypeArguments(node, symbol) ? getRegularTypeOfLiteralType(res) : errorType;\n    }\n    if (symbol.flags & 111551 /* Value */ && isJSDocTypeReference(node)) {\n      const jsdocType = getTypeFromJSDocValueReference(node, symbol);\n      if (jsdocType) {\n        return jsdocType;\n      } else {\n        resolveTypeReferenceName(node, 788968 /* Type */);\n        return getTypeOfSymbol(symbol);\n      }\n    }\n    return errorType;\n  }\n  function getTypeFromJSDocValueReference(node, symbol) {\n    const links = getNodeLinks(node);\n    if (!links.resolvedJSDocType) {\n      const valueType = getTypeOfSymbol(symbol);\n      let typeType = valueType;\n      if (symbol.valueDeclaration) {\n        const isImportTypeWithQualifier = node.kind === 206 /* ImportType */ && node.qualifier;\n        if (valueType.symbol && valueType.symbol !== symbol && isImportTypeWithQualifier) {\n          typeType = getTypeReferenceType(node, valueType.symbol);\n        }\n      }\n      links.resolvedJSDocType = typeType;\n    }\n    return links.resolvedJSDocType;\n  }\n  function getNoInferType(type) {\n    return isNoInferTargetType(type) ? getOrCreateSubstitutionType(type, unknownType) : type;\n  }\n  function isNoInferTargetType(type) {\n    return !!(type.flags & 3145728 /* UnionOrIntersection */ && some(type.types, isNoInferTargetType) || type.flags & 33554432 /* Substitution */ && !isNoInferType(type) && isNoInferTargetType(type.baseType) || type.flags & 524288 /* Object */ && !isEmptyAnonymousObjectType(type) || type.flags & (465829888 /* Instantiable */ & ~33554432 /* Substitution */) && !isPatternLiteralType(type));\n  }\n  function isNoInferType(type) {\n    return !!(type.flags & 33554432 /* Substitution */ && type.constraint.flags & 2 /* Unknown */);\n  }\n  function getSubstitutionType(baseType, constraint) {\n    return constraint.flags & 3 /* AnyOrUnknown */ || constraint === baseType || baseType.flags & 1 /* Any */ ? baseType : getOrCreateSubstitutionType(baseType, constraint);\n  }\n  function getOrCreateSubstitutionType(baseType, constraint) {\n    const id = `${getTypeId(baseType)}>${getTypeId(constraint)}`;\n    const cached = substitutionTypes.get(id);\n    if (cached) {\n      return cached;\n    }\n    const result = createType(33554432 /* Substitution */);\n    result.baseType = baseType;\n    result.constraint = constraint;\n    substitutionTypes.set(id, result);\n    return result;\n  }\n  function getSubstitutionIntersection(substitutionType) {\n    return isNoInferType(substitutionType) ? substitutionType.baseType : getIntersectionType([substitutionType.constraint, substitutionType.baseType]);\n  }\n  function isUnaryTupleTypeNode(node) {\n    return node.kind === 190 /* TupleType */ && node.elements.length === 1;\n  }\n  function getImpliedConstraint(type, checkNode, extendsNode) {\n    return isUnaryTupleTypeNode(checkNode) && isUnaryTupleTypeNode(extendsNode) ? getImpliedConstraint(type, checkNode.elements[0], extendsNode.elements[0]) : getActualTypeVariable(getTypeFromTypeNode(checkNode)) === getActualTypeVariable(type) ? getTypeFromTypeNode(extendsNode) : void 0;\n  }\n  function getConditionalFlowTypeOfType(type, node) {\n    let constraints;\n    let covariant = true;\n    while (node && !isStatement(node) && node.kind !== 321 /* JSDoc */) {\n      const parent2 = node.parent;\n      if (parent2.kind === 170 /* Parameter */) {\n        covariant = !covariant;\n      }\n      if ((covariant || type.flags & 8650752 /* TypeVariable */) && parent2.kind === 195 /* ConditionalType */ && node === parent2.trueType) {\n        const constraint = getImpliedConstraint(type, parent2.checkType, parent2.extendsType);\n        if (constraint) {\n          constraints = append(constraints, constraint);\n        }\n      } else if (type.flags & 262144 /* TypeParameter */ && parent2.kind === 201 /* MappedType */ && !parent2.nameType && node === parent2.type) {\n        const mappedType = getTypeFromTypeNode(parent2);\n        if (getTypeParameterFromMappedType(mappedType) === getActualTypeVariable(type)) {\n          const typeParameter = getHomomorphicTypeVariable(mappedType);\n          if (typeParameter) {\n            const constraint = getConstraintOfTypeParameter(typeParameter);\n            if (constraint && everyType(constraint, isArrayOrTupleType)) {\n              constraints = append(constraints, getUnionType([numberType, numericStringType]));\n            }\n          }\n        }\n      }\n      node = parent2;\n    }\n    return constraints ? getSubstitutionType(type, getIntersectionType(constraints)) : type;\n  }\n  function isJSDocTypeReference(node) {\n    return !!(node.flags & 16777216 /* JSDoc */) && (node.kind === 184 /* TypeReference */ || node.kind === 206 /* ImportType */);\n  }\n  function checkNoTypeArguments(node, symbol) {\n    if (node.typeArguments) {\n      error2(node, Diagnostics.Type_0_is_not_generic, symbol ? symbolToString(symbol) : node.typeName ? declarationNameToString(node.typeName) : anon);\n      return false;\n    }\n    return true;\n  }\n  function getIntendedTypeFromJSDocTypeReference(node) {\n    if (isIdentifier(node.typeName)) {\n      const typeArgs = node.typeArguments;\n      switch (node.typeName.escapedText) {\n        case \"String\":\n          checkNoTypeArguments(node);\n          return stringType;\n        case \"Number\":\n          checkNoTypeArguments(node);\n          return numberType;\n        case \"BigInt\":\n          checkNoTypeArguments(node);\n          return bigintType;\n        case \"Boolean\":\n          checkNoTypeArguments(node);\n          return booleanType;\n        case \"Void\":\n          checkNoTypeArguments(node);\n          return voidType;\n        case \"Undefined\":\n          checkNoTypeArguments(node);\n          return undefinedType;\n        case \"Null\":\n          checkNoTypeArguments(node);\n          return nullType;\n        case \"Function\":\n        case \"function\":\n          checkNoTypeArguments(node);\n          return globalFunctionType;\n        case \"array\":\n          return (!typeArgs || !typeArgs.length) && !noImplicitAny ? anyArrayType : void 0;\n        case \"promise\":\n          return (!typeArgs || !typeArgs.length) && !noImplicitAny ? createPromiseType(anyType) : void 0;\n        case \"Object\":\n          if (typeArgs && typeArgs.length === 2) {\n            if (isJSDocIndexSignature(node)) {\n              const indexed = getTypeFromTypeNode(typeArgs[0]);\n              const target = getTypeFromTypeNode(typeArgs[1]);\n              const indexInfo = indexed === stringType || indexed === numberType ? [createIndexInfo(\n                indexed,\n                target,\n                /*isReadonly*/\n                false\n              )] : emptyArray;\n              return createAnonymousType(\n                /*symbol*/\n                void 0,\n                emptySymbols,\n                emptyArray,\n                emptyArray,\n                indexInfo\n              );\n            }\n            return anyType;\n          }\n          checkNoTypeArguments(node);\n          return !noImplicitAny ? anyType : void 0;\n      }\n    }\n  }\n  function getTypeFromJSDocNullableTypeNode(node) {\n    const type = getTypeFromTypeNode(node.type);\n    return strictNullChecks ? getNullableType(type, 65536 /* Null */) : type;\n  }\n  function getTypeFromTypeReference(node) {\n    const links = getNodeLinks(node);\n    if (!links.resolvedType) {\n      if (isConstTypeReference(node) && isAssertionExpression(node.parent)) {\n        links.resolvedSymbol = unknownSymbol;\n        return links.resolvedType = checkExpressionCached(node.parent.expression);\n      }\n      let symbol;\n      let type;\n      const meaning = 788968 /* Type */;\n      if (isJSDocTypeReference(node)) {\n        type = getIntendedTypeFromJSDocTypeReference(node);\n        if (!type) {\n          symbol = resolveTypeReferenceName(\n            node,\n            meaning,\n            /*ignoreErrors*/\n            true\n          );\n          if (symbol === unknownSymbol) {\n            symbol = resolveTypeReferenceName(node, meaning | 111551 /* Value */);\n          } else {\n            resolveTypeReferenceName(node, meaning);\n          }\n          type = getTypeReferenceType(node, symbol);\n        }\n      }\n      if (!type) {\n        symbol = resolveTypeReferenceName(node, meaning);\n        type = getTypeReferenceType(node, symbol);\n      }\n      links.resolvedSymbol = symbol;\n      links.resolvedType = type;\n    }\n    return links.resolvedType;\n  }\n  function typeArgumentsFromTypeReferenceNode(node) {\n    return map(node.typeArguments, getTypeFromTypeNode);\n  }\n  function getTypeFromTypeQueryNode(node) {\n    const links = getNodeLinks(node);\n    if (!links.resolvedType) {\n      const type = checkExpressionWithTypeArguments(node);\n      links.resolvedType = getRegularTypeOfLiteralType(getWidenedType(type));\n    }\n    return links.resolvedType;\n  }\n  function getTypeOfGlobalSymbol(symbol, arity) {\n    function getTypeDeclaration(symbol2) {\n      const declarations = symbol2.declarations;\n      if (declarations) {\n        for (const declaration of declarations) {\n          switch (declaration.kind) {\n            case 264 /* ClassDeclaration */:\n            case 265 /* InterfaceDeclaration */:\n            case 267 /* EnumDeclaration */:\n              return declaration;\n          }\n        }\n      }\n    }\n    if (!symbol) {\n      return arity ? emptyGenericType : emptyObjectType;\n    }\n    const type = getDeclaredTypeOfSymbol(symbol);\n    if (!(type.flags & 524288 /* Object */)) {\n      error2(getTypeDeclaration(symbol), Diagnostics.Global_type_0_must_be_a_class_or_interface_type, symbolName(symbol));\n      return arity ? emptyGenericType : emptyObjectType;\n    }\n    if (length(type.typeParameters) !== arity) {\n      error2(getTypeDeclaration(symbol), Diagnostics.Global_type_0_must_have_1_type_parameter_s, symbolName(symbol), arity);\n      return arity ? emptyGenericType : emptyObjectType;\n    }\n    return type;\n  }\n  function getGlobalValueSymbol(name, reportErrors2) {\n    return getGlobalSymbol(name, 111551 /* Value */, reportErrors2 ? Diagnostics.Cannot_find_global_value_0 : void 0);\n  }\n  function getGlobalTypeSymbol(name, reportErrors2) {\n    return getGlobalSymbol(name, 788968 /* Type */, reportErrors2 ? Diagnostics.Cannot_find_global_type_0 : void 0);\n  }\n  function getGlobalTypeAliasSymbol(name, arity, reportErrors2) {\n    const symbol = getGlobalSymbol(name, 788968 /* Type */, reportErrors2 ? Diagnostics.Cannot_find_global_type_0 : void 0);\n    if (symbol) {\n      getDeclaredTypeOfSymbol(symbol);\n      if (length(getSymbolLinks(symbol).typeParameters) !== arity) {\n        const decl = symbol.declarations && find(symbol.declarations, isTypeAliasDeclaration);\n        error2(decl, Diagnostics.Global_type_0_must_have_1_type_parameter_s, symbolName(symbol), arity);\n        return void 0;\n      }\n    }\n    return symbol;\n  }\n  function getGlobalSymbol(name, meaning, diagnostic) {\n    return resolveName(\n      /*location*/\n      void 0,\n      name,\n      meaning,\n      diagnostic,\n      /*isUse*/\n      false,\n      /*excludeGlobals*/\n      false\n    );\n  }\n  function getGlobalType(name, arity, reportErrors2) {\n    const symbol = getGlobalTypeSymbol(name, reportErrors2);\n    return symbol || reportErrors2 ? getTypeOfGlobalSymbol(symbol, arity) : void 0;\n  }\n  function getGlobalBuiltinTypes(typeNames, arity) {\n    let types;\n    for (const typeName of typeNames) {\n      types = append(types, getGlobalType(\n        typeName,\n        arity,\n        /*reportErrors*/\n        false\n      ));\n    }\n    return types ?? emptyArray;\n  }\n  function getGlobalTypedPropertyDescriptorType() {\n    return deferredGlobalTypedPropertyDescriptorType || (deferredGlobalTypedPropertyDescriptorType = getGlobalType(\n      \"TypedPropertyDescriptor\",\n      /*arity*/\n      1,\n      /*reportErrors*/\n      true\n    ) || emptyGenericType);\n  }\n  function getGlobalTemplateStringsArrayType() {\n    return deferredGlobalTemplateStringsArrayType || (deferredGlobalTemplateStringsArrayType = getGlobalType(\n      \"TemplateStringsArray\",\n      /*arity*/\n      0,\n      /*reportErrors*/\n      true\n    ) || emptyObjectType);\n  }\n  function getGlobalImportMetaType() {\n    return deferredGlobalImportMetaType || (deferredGlobalImportMetaType = getGlobalType(\n      \"ImportMeta\",\n      /*arity*/\n      0,\n      /*reportErrors*/\n      true\n    ) || emptyObjectType);\n  }\n  function getGlobalImportMetaExpressionType() {\n    if (!deferredGlobalImportMetaExpressionType) {\n      const symbol = createSymbol(0 /* None */, \"ImportMetaExpression\");\n      const importMetaType = getGlobalImportMetaType();\n      const metaPropertySymbol = createSymbol(4 /* Property */, \"meta\", 8 /* Readonly */);\n      metaPropertySymbol.parent = symbol;\n      metaPropertySymbol.links.type = importMetaType;\n      const members = createSymbolTable([metaPropertySymbol]);\n      symbol.members = members;\n      deferredGlobalImportMetaExpressionType = createAnonymousType(symbol, members, emptyArray, emptyArray, emptyArray);\n    }\n    return deferredGlobalImportMetaExpressionType;\n  }\n  function getGlobalImportCallOptionsType(reportErrors2) {\n    return deferredGlobalImportCallOptionsType || (deferredGlobalImportCallOptionsType = getGlobalType(\n      \"ImportCallOptions\",\n      /*arity*/\n      0,\n      reportErrors2\n    )) || emptyObjectType;\n  }\n  function getGlobalImportAttributesType(reportErrors2) {\n    return deferredGlobalImportAttributesType || (deferredGlobalImportAttributesType = getGlobalType(\n      \"ImportAttributes\",\n      /*arity*/\n      0,\n      reportErrors2\n    )) || emptyObjectType;\n  }\n  function getGlobalESSymbolConstructorSymbol(reportErrors2) {\n    return deferredGlobalESSymbolConstructorSymbol || (deferredGlobalESSymbolConstructorSymbol = getGlobalValueSymbol(\"Symbol\", reportErrors2));\n  }\n  function getGlobalESSymbolConstructorTypeSymbol(reportErrors2) {\n    return deferredGlobalESSymbolConstructorTypeSymbol || (deferredGlobalESSymbolConstructorTypeSymbol = getGlobalTypeSymbol(\"SymbolConstructor\", reportErrors2));\n  }\n  function getGlobalESSymbolType() {\n    return deferredGlobalESSymbolType || (deferredGlobalESSymbolType = getGlobalType(\n      \"Symbol\",\n      /*arity*/\n      0,\n      /*reportErrors*/\n      false\n    )) || emptyObjectType;\n  }\n  function getGlobalPromiseType(reportErrors2) {\n    return deferredGlobalPromiseType || (deferredGlobalPromiseType = getGlobalType(\n      \"Promise\",\n      /*arity*/\n      1,\n      reportErrors2\n    )) || emptyGenericType;\n  }\n  function getGlobalPromiseLikeType(reportErrors2) {\n    return deferredGlobalPromiseLikeType || (deferredGlobalPromiseLikeType = getGlobalType(\n      \"PromiseLike\",\n      /*arity*/\n      1,\n      reportErrors2\n    )) || emptyGenericType;\n  }\n  function getGlobalPromiseConstructorSymbol(reportErrors2) {\n    return deferredGlobalPromiseConstructorSymbol || (deferredGlobalPromiseConstructorSymbol = getGlobalValueSymbol(\"Promise\", reportErrors2));\n  }\n  function getGlobalPromiseConstructorLikeType(reportErrors2) {\n    return deferredGlobalPromiseConstructorLikeType || (deferredGlobalPromiseConstructorLikeType = getGlobalType(\n      \"PromiseConstructorLike\",\n      /*arity*/\n      0,\n      reportErrors2\n    )) || emptyObjectType;\n  }\n  function getGlobalAsyncIterableType(reportErrors2) {\n    return deferredGlobalAsyncIterableType || (deferredGlobalAsyncIterableType = getGlobalType(\n      \"AsyncIterable\",\n      /*arity*/\n      3,\n      reportErrors2\n    )) || emptyGenericType;\n  }\n  function getGlobalAsyncIteratorType(reportErrors2) {\n    return deferredGlobalAsyncIteratorType || (deferredGlobalAsyncIteratorType = getGlobalType(\n      \"AsyncIterator\",\n      /*arity*/\n      3,\n      reportErrors2\n    )) || emptyGenericType;\n  }\n  function getGlobalAsyncIterableIteratorType(reportErrors2) {\n    return deferredGlobalAsyncIterableIteratorType || (deferredGlobalAsyncIterableIteratorType = getGlobalType(\n      \"AsyncIterableIterator\",\n      /*arity*/\n      3,\n      reportErrors2\n    )) || emptyGenericType;\n  }\n  function getGlobalBuiltinAsyncIteratorTypes() {\n    return deferredGlobalBuiltinAsyncIteratorTypes ?? (deferredGlobalBuiltinAsyncIteratorTypes = getGlobalBuiltinTypes([\"ReadableStreamAsyncIterator\"], 1));\n  }\n  function getGlobalAsyncIteratorObjectType(reportErrors2) {\n    return deferredGlobalAsyncIteratorObjectType || (deferredGlobalAsyncIteratorObjectType = getGlobalType(\n      \"AsyncIteratorObject\",\n      /*arity*/\n      3,\n      reportErrors2\n    )) || emptyGenericType;\n  }\n  function getGlobalAsyncGeneratorType(reportErrors2) {\n    return deferredGlobalAsyncGeneratorType || (deferredGlobalAsyncGeneratorType = getGlobalType(\n      \"AsyncGenerator\",\n      /*arity*/\n      3,\n      reportErrors2\n    )) || emptyGenericType;\n  }\n  function getGlobalIterableType(reportErrors2) {\n    return deferredGlobalIterableType || (deferredGlobalIterableType = getGlobalType(\n      \"Iterable\",\n      /*arity*/\n      3,\n      reportErrors2\n    )) || emptyGenericType;\n  }\n  function getGlobalIteratorType(reportErrors2) {\n    return deferredGlobalIteratorType || (deferredGlobalIteratorType = getGlobalType(\n      \"Iterator\",\n      /*arity*/\n      3,\n      reportErrors2\n    )) || emptyGenericType;\n  }\n  function getGlobalIterableIteratorType(reportErrors2) {\n    return deferredGlobalIterableIteratorType || (deferredGlobalIterableIteratorType = getGlobalType(\n      \"IterableIterator\",\n      /*arity*/\n      3,\n      reportErrors2\n    )) || emptyGenericType;\n  }\n  function getBuiltinIteratorReturnType() {\n    return strictBuiltinIteratorReturn ? undefinedType : anyType;\n  }\n  function getGlobalBuiltinIteratorTypes() {\n    return deferredGlobalBuiltinIteratorTypes ?? (deferredGlobalBuiltinIteratorTypes = getGlobalBuiltinTypes([\"ArrayIterator\", \"MapIterator\", \"SetIterator\", \"StringIterator\"], 1));\n  }\n  function getGlobalIteratorObjectType(reportErrors2) {\n    return deferredGlobalIteratorObjectType || (deferredGlobalIteratorObjectType = getGlobalType(\n      \"IteratorObject\",\n      /*arity*/\n      3,\n      reportErrors2\n    )) || emptyGenericType;\n  }\n  function getGlobalGeneratorType(reportErrors2) {\n    return deferredGlobalGeneratorType || (deferredGlobalGeneratorType = getGlobalType(\n      \"Generator\",\n      /*arity*/\n      3,\n      reportErrors2\n    )) || emptyGenericType;\n  }\n  function getGlobalIteratorYieldResultType(reportErrors2) {\n    return deferredGlobalIteratorYieldResultType || (deferredGlobalIteratorYieldResultType = getGlobalType(\n      \"IteratorYieldResult\",\n      /*arity*/\n      1,\n      reportErrors2\n    )) || emptyGenericType;\n  }\n  function getGlobalIteratorReturnResultType(reportErrors2) {\n    return deferredGlobalIteratorReturnResultType || (deferredGlobalIteratorReturnResultType = getGlobalType(\n      \"IteratorReturnResult\",\n      /*arity*/\n      1,\n      reportErrors2\n    )) || emptyGenericType;\n  }\n  function getGlobalDisposableType(reportErrors2) {\n    return deferredGlobalDisposableType || (deferredGlobalDisposableType = getGlobalType(\n      \"Disposable\",\n      /*arity*/\n      0,\n      reportErrors2\n    )) || emptyObjectType;\n  }\n  function getGlobalAsyncDisposableType(reportErrors2) {\n    return deferredGlobalAsyncDisposableType || (deferredGlobalAsyncDisposableType = getGlobalType(\n      \"AsyncDisposable\",\n      /*arity*/\n      0,\n      reportErrors2\n    )) || emptyObjectType;\n  }\n  function getGlobalTypeOrUndefined(name, arity = 0) {\n    const symbol = getGlobalSymbol(\n      name,\n      788968 /* Type */,\n      /*diagnostic*/\n      void 0\n    );\n    return symbol && getTypeOfGlobalSymbol(symbol, arity);\n  }\n  function getGlobalExtractSymbol() {\n    deferredGlobalExtractSymbol || (deferredGlobalExtractSymbol = getGlobalTypeAliasSymbol(\n      \"Extract\",\n      /*arity*/\n      2,\n      /*reportErrors*/\n      true\n    ) || unknownSymbol);\n    return deferredGlobalExtractSymbol === unknownSymbol ? void 0 : deferredGlobalExtractSymbol;\n  }\n  function getGlobalOmitSymbol() {\n    deferredGlobalOmitSymbol || (deferredGlobalOmitSymbol = getGlobalTypeAliasSymbol(\n      \"Omit\",\n      /*arity*/\n      2,\n      /*reportErrors*/\n      true\n    ) || unknownSymbol);\n    return deferredGlobalOmitSymbol === unknownSymbol ? void 0 : deferredGlobalOmitSymbol;\n  }\n  function getGlobalAwaitedSymbol(reportErrors2) {\n    deferredGlobalAwaitedSymbol || (deferredGlobalAwaitedSymbol = getGlobalTypeAliasSymbol(\n      \"Awaited\",\n      /*arity*/\n      1,\n      reportErrors2\n    ) || (reportErrors2 ? unknownSymbol : void 0));\n    return deferredGlobalAwaitedSymbol === unknownSymbol ? void 0 : deferredGlobalAwaitedSymbol;\n  }\n  function getGlobalBigIntType() {\n    return deferredGlobalBigIntType || (deferredGlobalBigIntType = getGlobalType(\n      \"BigInt\",\n      /*arity*/\n      0,\n      /*reportErrors*/\n      false\n    )) || emptyObjectType;\n  }\n  function getGlobalClassDecoratorContextType(reportErrors2) {\n    return deferredGlobalClassDecoratorContextType ?? (deferredGlobalClassDecoratorContextType = getGlobalType(\n      \"ClassDecoratorContext\",\n      /*arity*/\n      1,\n      reportErrors2\n    )) ?? emptyGenericType;\n  }\n  function getGlobalClassMethodDecoratorContextType(reportErrors2) {\n    return deferredGlobalClassMethodDecoratorContextType ?? (deferredGlobalClassMethodDecoratorContextType = getGlobalType(\n      \"ClassMethodDecoratorContext\",\n      /*arity*/\n      2,\n      reportErrors2\n    )) ?? emptyGenericType;\n  }\n  function getGlobalClassGetterDecoratorContextType(reportErrors2) {\n    return deferredGlobalClassGetterDecoratorContextType ?? (deferredGlobalClassGetterDecoratorContextType = getGlobalType(\n      \"ClassGetterDecoratorContext\",\n      /*arity*/\n      2,\n      reportErrors2\n    )) ?? emptyGenericType;\n  }\n  function getGlobalClassSetterDecoratorContextType(reportErrors2) {\n    return deferredGlobalClassSetterDecoratorContextType ?? (deferredGlobalClassSetterDecoratorContextType = getGlobalType(\n      \"ClassSetterDecoratorContext\",\n      /*arity*/\n      2,\n      reportErrors2\n    )) ?? emptyGenericType;\n  }\n  function getGlobalClassAccessorDecoratorContextType(reportErrors2) {\n    return deferredGlobalClassAccessorDecoratorContextType ?? (deferredGlobalClassAccessorDecoratorContextType = getGlobalType(\n      \"ClassAccessorDecoratorContext\",\n      /*arity*/\n      2,\n      reportErrors2\n    )) ?? emptyGenericType;\n  }\n  function getGlobalClassAccessorDecoratorTargetType(reportErrors2) {\n    return deferredGlobalClassAccessorDecoratorTargetType ?? (deferredGlobalClassAccessorDecoratorTargetType = getGlobalType(\n      \"ClassAccessorDecoratorTarget\",\n      /*arity*/\n      2,\n      reportErrors2\n    )) ?? emptyGenericType;\n  }\n  function getGlobalClassAccessorDecoratorResultType(reportErrors2) {\n    return deferredGlobalClassAccessorDecoratorResultType ?? (deferredGlobalClassAccessorDecoratorResultType = getGlobalType(\n      \"ClassAccessorDecoratorResult\",\n      /*arity*/\n      2,\n      reportErrors2\n    )) ?? emptyGenericType;\n  }\n  function getGlobalClassFieldDecoratorContextType(reportErrors2) {\n    return deferredGlobalClassFieldDecoratorContextType ?? (deferredGlobalClassFieldDecoratorContextType = getGlobalType(\n      \"ClassFieldDecoratorContext\",\n      /*arity*/\n      2,\n      reportErrors2\n    )) ?? emptyGenericType;\n  }\n  function getGlobalNaNSymbol() {\n    return deferredGlobalNaNSymbol || (deferredGlobalNaNSymbol = getGlobalValueSymbol(\n      \"NaN\",\n      /*reportErrors*/\n      false\n    ));\n  }\n  function getGlobalRecordSymbol() {\n    deferredGlobalRecordSymbol || (deferredGlobalRecordSymbol = getGlobalTypeAliasSymbol(\n      \"Record\",\n      /*arity*/\n      2,\n      /*reportErrors*/\n      true\n    ) || unknownSymbol);\n    return deferredGlobalRecordSymbol === unknownSymbol ? void 0 : deferredGlobalRecordSymbol;\n  }\n  function createTypeFromGenericGlobalType(genericGlobalType, typeArguments) {\n    return genericGlobalType !== emptyGenericType ? createTypeReference(genericGlobalType, typeArguments) : emptyObjectType;\n  }\n  function createTypedPropertyDescriptorType(propertyType) {\n    return createTypeFromGenericGlobalType(getGlobalTypedPropertyDescriptorType(), [propertyType]);\n  }\n  function createIterableType(iteratedType) {\n    return createTypeFromGenericGlobalType(getGlobalIterableType(\n      /*reportErrors*/\n      true\n    ), [iteratedType, voidType, undefinedType]);\n  }\n  function createArrayType(elementType, readonly) {\n    return createTypeFromGenericGlobalType(readonly ? globalReadonlyArrayType : globalArrayType, [elementType]);\n  }\n  function getTupleElementFlags(node) {\n    switch (node.kind) {\n      case 191 /* OptionalType */:\n        return 2 /* Optional */;\n      case 192 /* RestType */:\n        return getRestTypeElementFlags(node);\n      case 203 /* NamedTupleMember */:\n        return node.questionToken ? 2 /* Optional */ : node.dotDotDotToken ? getRestTypeElementFlags(node) : 1 /* Required */;\n      default:\n        return 1 /* Required */;\n    }\n  }\n  function getRestTypeElementFlags(node) {\n    return getArrayElementTypeNode(node.type) ? 4 /* Rest */ : 8 /* Variadic */;\n  }\n  function getArrayOrTupleTargetType(node) {\n    const readonly = isReadonlyTypeOperator(node.parent);\n    const elementType = getArrayElementTypeNode(node);\n    if (elementType) {\n      return readonly ? globalReadonlyArrayType : globalArrayType;\n    }\n    const elementFlags = map(node.elements, getTupleElementFlags);\n    return getTupleTargetType(elementFlags, readonly, map(node.elements, memberIfLabeledElementDeclaration));\n  }\n  function memberIfLabeledElementDeclaration(member) {\n    return isNamedTupleMember(member) || isParameter(member) ? member : void 0;\n  }\n  function isDeferredTypeReferenceNode(node, hasDefaultTypeArguments) {\n    return !!getAliasSymbolForTypeNode(node) || isResolvedByTypeAlias(node) && (node.kind === 189 /* ArrayType */ ? mayResolveTypeAlias(node.elementType) : node.kind === 190 /* TupleType */ ? some(node.elements, mayResolveTypeAlias) : hasDefaultTypeArguments || some(node.typeArguments, mayResolveTypeAlias));\n  }\n  function isResolvedByTypeAlias(node) {\n    const parent2 = node.parent;\n    switch (parent2.kind) {\n      case 197 /* ParenthesizedType */:\n      case 203 /* NamedTupleMember */:\n      case 184 /* TypeReference */:\n      case 193 /* UnionType */:\n      case 194 /* IntersectionType */:\n      case 200 /* IndexedAccessType */:\n      case 195 /* ConditionalType */:\n      case 199 /* TypeOperator */:\n      case 189 /* ArrayType */:\n      case 190 /* TupleType */:\n        return isResolvedByTypeAlias(parent2);\n      case 266 /* TypeAliasDeclaration */:\n        return true;\n    }\n    return false;\n  }\n  function mayResolveTypeAlias(node) {\n    switch (node.kind) {\n      case 184 /* TypeReference */:\n        return isJSDocTypeReference(node) || !!(resolveTypeReferenceName(node, 788968 /* Type */).flags & 524288 /* TypeAlias */);\n      case 187 /* TypeQuery */:\n        return true;\n      case 199 /* TypeOperator */:\n        return node.operator !== 158 /* UniqueKeyword */ && mayResolveTypeAlias(node.type);\n      case 197 /* ParenthesizedType */:\n      case 191 /* OptionalType */:\n      case 203 /* NamedTupleMember */:\n      case 317 /* JSDocOptionalType */:\n      case 315 /* JSDocNullableType */:\n      case 316 /* JSDocNonNullableType */:\n      case 310 /* JSDocTypeExpression */:\n        return mayResolveTypeAlias(node.type);\n      case 192 /* RestType */:\n        return node.type.kind !== 189 /* ArrayType */ || mayResolveTypeAlias(node.type.elementType);\n      case 193 /* UnionType */:\n      case 194 /* IntersectionType */:\n        return some(node.types, mayResolveTypeAlias);\n      case 200 /* IndexedAccessType */:\n        return mayResolveTypeAlias(node.objectType) || mayResolveTypeAlias(node.indexType);\n      case 195 /* ConditionalType */:\n        return mayResolveTypeAlias(node.checkType) || mayResolveTypeAlias(node.extendsType) || mayResolveTypeAlias(node.trueType) || mayResolveTypeAlias(node.falseType);\n    }\n    return false;\n  }\n  function getTypeFromArrayOrTupleTypeNode(node) {\n    const links = getNodeLinks(node);\n    if (!links.resolvedType) {\n      const target = getArrayOrTupleTargetType(node);\n      if (target === emptyGenericType) {\n        links.resolvedType = emptyObjectType;\n      } else if (!(node.kind === 190 /* TupleType */ && some(node.elements, (e) => !!(getTupleElementFlags(e) & 8 /* Variadic */))) && isDeferredTypeReferenceNode(node)) {\n        links.resolvedType = node.kind === 190 /* TupleType */ && node.elements.length === 0 ? target : createDeferredTypeReference(\n          target,\n          node,\n          /*mapper*/\n          void 0\n        );\n      } else {\n        const elementTypes = node.kind === 189 /* ArrayType */ ? [getTypeFromTypeNode(node.elementType)] : map(node.elements, getTypeFromTypeNode);\n        links.resolvedType = createNormalizedTypeReference(target, elementTypes);\n      }\n    }\n    return links.resolvedType;\n  }\n  function isReadonlyTypeOperator(node) {\n    return isTypeOperatorNode(node) && node.operator === 148 /* ReadonlyKeyword */;\n  }\n  function createTupleType(elementTypes, elementFlags, readonly = false, namedMemberDeclarations = []) {\n    const tupleTarget = getTupleTargetType(elementFlags || map(elementTypes, (_) => 1 /* Required */), readonly, namedMemberDeclarations);\n    return tupleTarget === emptyGenericType ? emptyObjectType : elementTypes.length ? createNormalizedTypeReference(tupleTarget, elementTypes) : tupleTarget;\n  }\n  function getTupleTargetType(elementFlags, readonly, namedMemberDeclarations) {\n    if (elementFlags.length === 1 && elementFlags[0] & 4 /* Rest */) {\n      return readonly ? globalReadonlyArrayType : globalArrayType;\n    }\n    const key = map(elementFlags, (f) => f & 1 /* Required */ ? \"#\" : f & 2 /* Optional */ ? \"?\" : f & 4 /* Rest */ ? \".\" : \"*\").join() + (readonly ? \"R\" : \"\") + (some(namedMemberDeclarations, (node) => !!node) ? \",\" + map(namedMemberDeclarations, (node) => node ? getNodeId(node) : \"_\").join(\",\") : \"\");\n    let type = tupleTypes.get(key);\n    if (!type) {\n      tupleTypes.set(key, type = createTupleTargetType(elementFlags, readonly, namedMemberDeclarations));\n    }\n    return type;\n  }\n  function createTupleTargetType(elementFlags, readonly, namedMemberDeclarations) {\n    const arity = elementFlags.length;\n    const minLength = countWhere(elementFlags, (f) => !!(f & (1 /* Required */ | 8 /* Variadic */)));\n    let typeParameters;\n    const properties = [];\n    let combinedFlags = 0;\n    if (arity) {\n      typeParameters = new Array(arity);\n      for (let i = 0; i < arity; i++) {\n        const typeParameter = typeParameters[i] = createTypeParameter();\n        const flags = elementFlags[i];\n        combinedFlags |= flags;\n        if (!(combinedFlags & 12 /* Variable */)) {\n          const property = createSymbol(4 /* Property */ | (flags & 2 /* Optional */ ? 16777216 /* Optional */ : 0), \"\" + i, readonly ? 8 /* Readonly */ : 0);\n          property.links.tupleLabelDeclaration = namedMemberDeclarations == null ? void 0 : namedMemberDeclarations[i];\n          property.links.type = typeParameter;\n          properties.push(property);\n        }\n      }\n    }\n    const fixedLength = properties.length;\n    const lengthSymbol = createSymbol(4 /* Property */, \"length\", readonly ? 8 /* Readonly */ : 0);\n    if (combinedFlags & 12 /* Variable */) {\n      lengthSymbol.links.type = numberType;\n    } else {\n      const literalTypes = [];\n      for (let i = minLength; i <= arity; i++) literalTypes.push(getNumberLiteralType(i));\n      lengthSymbol.links.type = getUnionType(literalTypes);\n    }\n    properties.push(lengthSymbol);\n    const type = createObjectType(8 /* Tuple */ | 4 /* Reference */);\n    type.typeParameters = typeParameters;\n    type.outerTypeParameters = void 0;\n    type.localTypeParameters = typeParameters;\n    type.instantiations = /* @__PURE__ */ new Map();\n    type.instantiations.set(getTypeListId(type.typeParameters), type);\n    type.target = type;\n    type.resolvedTypeArguments = type.typeParameters;\n    type.thisType = createTypeParameter();\n    type.thisType.isThisType = true;\n    type.thisType.constraint = type;\n    type.declaredProperties = properties;\n    type.declaredCallSignatures = emptyArray;\n    type.declaredConstructSignatures = emptyArray;\n    type.declaredIndexInfos = emptyArray;\n    type.elementFlags = elementFlags;\n    type.minLength = minLength;\n    type.fixedLength = fixedLength;\n    type.hasRestElement = !!(combinedFlags & 12 /* Variable */);\n    type.combinedFlags = combinedFlags;\n    type.readonly = readonly;\n    type.labeledElementDeclarations = namedMemberDeclarations;\n    return type;\n  }\n  function createNormalizedTypeReference(target, typeArguments) {\n    return target.objectFlags & 8 /* Tuple */ ? createNormalizedTupleType(target, typeArguments) : createTypeReference(target, typeArguments);\n  }\n  function createNormalizedTupleType(target, elementTypes) {\n    var _a, _b, _c, _d;\n    if (!(target.combinedFlags & 14 /* NonRequired */)) {\n      return createTypeReference(target, elementTypes);\n    }\n    if (target.combinedFlags & 8 /* Variadic */) {\n      const unionIndex = findIndex(elementTypes, (t, i) => !!(target.elementFlags[i] & 8 /* Variadic */ && t.flags & (131072 /* Never */ | 1048576 /* Union */)));\n      if (unionIndex >= 0) {\n        return checkCrossProductUnion(map(elementTypes, (t, i) => target.elementFlags[i] & 8 /* Variadic */ ? t : unknownType)) ? mapType(elementTypes[unionIndex], (t) => createNormalizedTupleType(target, replaceElement(elementTypes, unionIndex, t))) : errorType;\n      }\n    }\n    const expandedTypes = [];\n    const expandedFlags = [];\n    const expandedDeclarations = [];\n    let lastRequiredIndex = -1;\n    let firstRestIndex = -1;\n    let lastOptionalOrRestIndex = -1;\n    for (let i = 0; i < elementTypes.length; i++) {\n      const type = elementTypes[i];\n      const flags = target.elementFlags[i];\n      if (flags & 8 /* Variadic */) {\n        if (type.flags & 1 /* Any */) {\n          addElement(type, 4 /* Rest */, (_a = target.labeledElementDeclarations) == null ? void 0 : _a[i]);\n        } else if (type.flags & 58982400 /* InstantiableNonPrimitive */ || isGenericMappedType(type)) {\n          addElement(type, 8 /* Variadic */, (_b = target.labeledElementDeclarations) == null ? void 0 : _b[i]);\n        } else if (isTupleType(type)) {\n          const elements = getElementTypes(type);\n          if (elements.length + expandedTypes.length >= 1e4) {\n            error2(\n              currentNode,\n              isPartOfTypeNode(currentNode) ? Diagnostics.Type_produces_a_tuple_type_that_is_too_large_to_represent : Diagnostics.Expression_produces_a_tuple_type_that_is_too_large_to_represent\n            );\n            return errorType;\n          }\n          forEach(elements, (t, n) => {\n            var _a2;\n            return addElement(t, type.target.elementFlags[n], (_a2 = type.target.labeledElementDeclarations) == null ? void 0 : _a2[n]);\n          });\n        } else {\n          addElement(isArrayLikeType(type) && getIndexTypeOfType(type, numberType) || errorType, 4 /* Rest */, (_c = target.labeledElementDeclarations) == null ? void 0 : _c[i]);\n        }\n      } else {\n        addElement(type, flags, (_d = target.labeledElementDeclarations) == null ? void 0 : _d[i]);\n      }\n    }\n    for (let i = 0; i < lastRequiredIndex; i++) {\n      if (expandedFlags[i] & 2 /* Optional */) expandedFlags[i] = 1 /* Required */;\n    }\n    if (firstRestIndex >= 0 && firstRestIndex < lastOptionalOrRestIndex) {\n      expandedTypes[firstRestIndex] = getUnionType(sameMap(expandedTypes.slice(firstRestIndex, lastOptionalOrRestIndex + 1), (t, i) => expandedFlags[firstRestIndex + i] & 8 /* Variadic */ ? getIndexedAccessType(t, numberType) : t));\n      expandedTypes.splice(firstRestIndex + 1, lastOptionalOrRestIndex - firstRestIndex);\n      expandedFlags.splice(firstRestIndex + 1, lastOptionalOrRestIndex - firstRestIndex);\n      expandedDeclarations.splice(firstRestIndex + 1, lastOptionalOrRestIndex - firstRestIndex);\n    }\n    const tupleTarget = getTupleTargetType(expandedFlags, target.readonly, expandedDeclarations);\n    return tupleTarget === emptyGenericType ? emptyObjectType : expandedFlags.length ? createTypeReference(tupleTarget, expandedTypes) : tupleTarget;\n    function addElement(type, flags, declaration) {\n      if (flags & 1 /* Required */) {\n        lastRequiredIndex = expandedFlags.length;\n      }\n      if (flags & 4 /* Rest */ && firstRestIndex < 0) {\n        firstRestIndex = expandedFlags.length;\n      }\n      if (flags & (2 /* Optional */ | 4 /* Rest */)) {\n        lastOptionalOrRestIndex = expandedFlags.length;\n      }\n      expandedTypes.push(flags & 2 /* Optional */ ? addOptionality(\n        type,\n        /*isProperty*/\n        true\n      ) : type);\n      expandedFlags.push(flags);\n      expandedDeclarations.push(declaration);\n    }\n  }\n  function sliceTupleType(type, index, endSkipCount = 0) {\n    const target = type.target;\n    const endIndex = getTypeReferenceArity(type) - endSkipCount;\n    return index > target.fixedLength ? getRestArrayTypeOfTupleType(type) || createTupleType(emptyArray) : createTupleType(\n      getTypeArguments(type).slice(index, endIndex),\n      target.elementFlags.slice(index, endIndex),\n      /*readonly*/\n      false,\n      target.labeledElementDeclarations && target.labeledElementDeclarations.slice(index, endIndex)\n    );\n  }\n  function getKnownKeysOfTupleType(type) {\n    return getUnionType(append(arrayOf(type.target.fixedLength, (i) => getStringLiteralType(\"\" + i)), getIndexType(type.target.readonly ? globalReadonlyArrayType : globalArrayType)));\n  }\n  function getStartElementCount(type, flags) {\n    const index = findIndex(type.elementFlags, (f) => !(f & flags));\n    return index >= 0 ? index : type.elementFlags.length;\n  }\n  function getEndElementCount(type, flags) {\n    return type.elementFlags.length - findLastIndex(type.elementFlags, (f) => !(f & flags)) - 1;\n  }\n  function getTotalFixedElementCount(type) {\n    return type.fixedLength + getEndElementCount(type, 3 /* Fixed */);\n  }\n  function getElementTypes(type) {\n    const typeArguments = getTypeArguments(type);\n    const arity = getTypeReferenceArity(type);\n    return typeArguments.length === arity ? typeArguments : typeArguments.slice(0, arity);\n  }\n  function getTypeFromOptionalTypeNode(node) {\n    return addOptionality(\n      getTypeFromTypeNode(node.type),\n      /*isProperty*/\n      true\n    );\n  }\n  function getTypeId(type) {\n    return type.id;\n  }\n  function containsType(types, type) {\n    return binarySearch(types, type, getTypeId, compareValues) >= 0;\n  }\n  function insertType(types, type) {\n    const index = binarySearch(types, type, getTypeId, compareValues);\n    if (index < 0) {\n      types.splice(~index, 0, type);\n      return true;\n    }\n    return false;\n  }\n  function addTypeToUnion(typeSet, includes, type) {\n    const flags = type.flags;\n    if (!(flags & 131072 /* Never */)) {\n      includes |= flags & 473694207 /* IncludesMask */;\n      if (flags & 465829888 /* Instantiable */) includes |= 33554432 /* IncludesInstantiable */;\n      if (flags & 2097152 /* Intersection */ && getObjectFlags(type) & 67108864 /* IsConstrainedTypeVariable */) includes |= 536870912 /* IncludesConstrainedTypeVariable */;\n      if (type === wildcardType) includes |= 8388608 /* IncludesWildcard */;\n      if (isErrorType(type)) includes |= 1073741824 /* IncludesError */;\n      if (!strictNullChecks && flags & 98304 /* Nullable */) {\n        if (!(getObjectFlags(type) & 65536 /* ContainsWideningType */)) includes |= 4194304 /* IncludesNonWideningType */;\n      } else {\n        const len = typeSet.length;\n        const index = len && type.id > typeSet[len - 1].id ? ~len : binarySearch(typeSet, type, getTypeId, compareValues);\n        if (index < 0) {\n          typeSet.splice(~index, 0, type);\n        }\n      }\n    }\n    return includes;\n  }\n  function addTypesToUnion(typeSet, includes, types) {\n    let lastType;\n    for (const type of types) {\n      if (type !== lastType) {\n        includes = type.flags & 1048576 /* Union */ ? addTypesToUnion(typeSet, includes | (isNamedUnionType(type) ? 1048576 /* Union */ : 0), type.types) : addTypeToUnion(typeSet, includes, type);\n        lastType = type;\n      }\n    }\n    return includes;\n  }\n  function removeSubtypes(types, hasObjectTypes) {\n    var _a;\n    if (types.length < 2) {\n      return types;\n    }\n    const id = getTypeListId(types);\n    const match = subtypeReductionCache.get(id);\n    if (match) {\n      return match;\n    }\n    const hasEmptyObject = hasObjectTypes && some(types, (t) => !!(t.flags & 524288 /* Object */) && !isGenericMappedType(t) && isEmptyResolvedType(resolveStructuredTypeMembers(t)));\n    const len = types.length;\n    let i = len;\n    let count = 0;\n    while (i > 0) {\n      i--;\n      const source = types[i];\n      if (hasEmptyObject || source.flags & 469499904 /* StructuredOrInstantiable */) {\n        if (source.flags & 262144 /* TypeParameter */ && getBaseConstraintOrType(source).flags & 1048576 /* Union */) {\n          if (isTypeRelatedTo(source, getUnionType(map(types, (t) => t === source ? neverType : t)), strictSubtypeRelation)) {\n            orderedRemoveItemAt(types, i);\n          }\n          continue;\n        }\n        const keyProperty = source.flags & (524288 /* Object */ | 2097152 /* Intersection */ | 58982400 /* InstantiableNonPrimitive */) ? find(getPropertiesOfType(source), (p) => isUnitType(getTypeOfSymbol(p))) : void 0;\n        const keyPropertyType = keyProperty && getRegularTypeOfLiteralType(getTypeOfSymbol(keyProperty));\n        for (const target of types) {\n          if (source !== target) {\n            if (count === 1e5) {\n              const estimatedCount = count / (len - i) * len;\n              if (estimatedCount > 1e6) {\n                (_a = tracing) == null ? void 0 : _a.instant(tracing.Phase.CheckTypes, \"removeSubtypes_DepthLimit\", { typeIds: types.map((t) => t.id) });\n                error2(currentNode, Diagnostics.Expression_produces_a_union_type_that_is_too_complex_to_represent);\n                return void 0;\n              }\n            }\n            count++;\n            if (keyProperty && target.flags & (524288 /* Object */ | 2097152 /* Intersection */ | 58982400 /* InstantiableNonPrimitive */)) {\n              const t = getTypeOfPropertyOfType(target, keyProperty.escapedName);\n              if (t && isUnitType(t) && getRegularTypeOfLiteralType(t) !== keyPropertyType) {\n                continue;\n              }\n            }\n            if (isTypeRelatedTo(source, target, strictSubtypeRelation) && (!(getObjectFlags(getTargetType(source)) & 1 /* Class */) || !(getObjectFlags(getTargetType(target)) & 1 /* Class */) || isTypeDerivedFrom(source, target))) {\n              orderedRemoveItemAt(types, i);\n              break;\n            }\n          }\n        }\n      }\n    }\n    subtypeReductionCache.set(id, types);\n    return types;\n  }\n  function removeRedundantLiteralTypes(types, includes, reduceVoidUndefined) {\n    let i = types.length;\n    while (i > 0) {\n      i--;\n      const t = types[i];\n      const flags = t.flags;\n      const remove = flags & (128 /* StringLiteral */ | 134217728 /* TemplateLiteral */ | 268435456 /* StringMapping */) && includes & 4 /* String */ || flags & 256 /* NumberLiteral */ && includes & 8 /* Number */ || flags & 2048 /* BigIntLiteral */ && includes & 64 /* BigInt */ || flags & 8192 /* UniqueESSymbol */ && includes & 4096 /* ESSymbol */ || reduceVoidUndefined && flags & 32768 /* Undefined */ && includes & 16384 /* Void */ || isFreshLiteralType(t) && containsType(types, t.regularType);\n      if (remove) {\n        orderedRemoveItemAt(types, i);\n      }\n    }\n  }\n  function removeStringLiteralsMatchedByTemplateLiterals(types) {\n    const templates = filter(types, isPatternLiteralType);\n    if (templates.length) {\n      let i = types.length;\n      while (i > 0) {\n        i--;\n        const t = types[i];\n        if (t.flags & 128 /* StringLiteral */ && some(templates, (template) => isTypeMatchedByTemplateLiteralOrStringMapping(t, template))) {\n          orderedRemoveItemAt(types, i);\n        }\n      }\n    }\n  }\n  function isTypeMatchedByTemplateLiteralOrStringMapping(type, template) {\n    return template.flags & 134217728 /* TemplateLiteral */ ? isTypeMatchedByTemplateLiteralType(type, template) : isMemberOfStringMapping(type, template);\n  }\n  function removeConstrainedTypeVariables(types) {\n    const typeVariables = [];\n    for (const type of types) {\n      if (type.flags & 2097152 /* Intersection */ && getObjectFlags(type) & 67108864 /* IsConstrainedTypeVariable */) {\n        const index = type.types[0].flags & 8650752 /* TypeVariable */ ? 0 : 1;\n        pushIfUnique(typeVariables, type.types[index]);\n      }\n    }\n    for (const typeVariable of typeVariables) {\n      const primitives = [];\n      for (const type of types) {\n        if (type.flags & 2097152 /* Intersection */ && getObjectFlags(type) & 67108864 /* IsConstrainedTypeVariable */) {\n          const index = type.types[0].flags & 8650752 /* TypeVariable */ ? 0 : 1;\n          if (type.types[index] === typeVariable) {\n            insertType(primitives, type.types[1 - index]);\n          }\n        }\n      }\n      const constraint = getBaseConstraintOfType(typeVariable);\n      if (everyType(constraint, (t) => containsType(primitives, t))) {\n        let i = types.length;\n        while (i > 0) {\n          i--;\n          const type = types[i];\n          if (type.flags & 2097152 /* Intersection */ && getObjectFlags(type) & 67108864 /* IsConstrainedTypeVariable */) {\n            const index = type.types[0].flags & 8650752 /* TypeVariable */ ? 0 : 1;\n            if (type.types[index] === typeVariable && containsType(primitives, type.types[1 - index])) {\n              orderedRemoveItemAt(types, i);\n            }\n          }\n        }\n        insertType(types, typeVariable);\n      }\n    }\n  }\n  function isNamedUnionType(type) {\n    return !!(type.flags & 1048576 /* Union */ && (type.aliasSymbol || type.origin));\n  }\n  function addNamedUnions(namedUnions, types) {\n    for (const t of types) {\n      if (t.flags & 1048576 /* Union */) {\n        const origin = t.origin;\n        if (t.aliasSymbol || origin && !(origin.flags & 1048576 /* Union */)) {\n          pushIfUnique(namedUnions, t);\n        } else if (origin && origin.flags & 1048576 /* Union */) {\n          addNamedUnions(namedUnions, origin.types);\n        }\n      }\n    }\n  }\n  function createOriginUnionOrIntersectionType(flags, types) {\n    const result = createOriginType(flags);\n    result.types = types;\n    return result;\n  }\n  function getUnionType(types, unionReduction = 1 /* Literal */, aliasSymbol, aliasTypeArguments, origin) {\n    if (types.length === 0) {\n      return neverType;\n    }\n    if (types.length === 1) {\n      return types[0];\n    }\n    if (types.length === 2 && !origin && (types[0].flags & 1048576 /* Union */ || types[1].flags & 1048576 /* Union */)) {\n      const infix = unionReduction === 0 /* None */ ? \"N\" : unionReduction === 2 /* Subtype */ ? \"S\" : \"L\";\n      const index = types[0].id < types[1].id ? 0 : 1;\n      const id = types[index].id + infix + types[1 - index].id + getAliasId(aliasSymbol, aliasTypeArguments);\n      let type = unionOfUnionTypes.get(id);\n      if (!type) {\n        type = getUnionTypeWorker(\n          types,\n          unionReduction,\n          aliasSymbol,\n          aliasTypeArguments,\n          /*origin*/\n          void 0\n        );\n        unionOfUnionTypes.set(id, type);\n      }\n      return type;\n    }\n    return getUnionTypeWorker(types, unionReduction, aliasSymbol, aliasTypeArguments, origin);\n  }\n  function getUnionTypeWorker(types, unionReduction, aliasSymbol, aliasTypeArguments, origin) {\n    let typeSet = [];\n    const includes = addTypesToUnion(typeSet, 0, types);\n    if (unionReduction !== 0 /* None */) {\n      if (includes & 3 /* AnyOrUnknown */) {\n        return includes & 1 /* Any */ ? includes & 8388608 /* IncludesWildcard */ ? wildcardType : includes & 1073741824 /* IncludesError */ ? errorType : anyType : unknownType;\n      }\n      if (includes & 32768 /* Undefined */) {\n        if (typeSet.length >= 2 && typeSet[0] === undefinedType && typeSet[1] === missingType) {\n          orderedRemoveItemAt(typeSet, 1);\n        }\n      }\n      if (includes & (32 /* Enum */ | 2944 /* Literal */ | 8192 /* UniqueESSymbol */ | 134217728 /* TemplateLiteral */ | 268435456 /* StringMapping */) || includes & 16384 /* Void */ && includes & 32768 /* Undefined */) {\n        removeRedundantLiteralTypes(typeSet, includes, !!(unionReduction & 2 /* Subtype */));\n      }\n      if (includes & 128 /* StringLiteral */ && includes & (134217728 /* TemplateLiteral */ | 268435456 /* StringMapping */)) {\n        removeStringLiteralsMatchedByTemplateLiterals(typeSet);\n      }\n      if (includes & 536870912 /* IncludesConstrainedTypeVariable */) {\n        removeConstrainedTypeVariables(typeSet);\n      }\n      if (unionReduction === 2 /* Subtype */) {\n        typeSet = removeSubtypes(typeSet, !!(includes & 524288 /* Object */));\n        if (!typeSet) {\n          return errorType;\n        }\n      }\n      if (typeSet.length === 0) {\n        return includes & 65536 /* Null */ ? includes & 4194304 /* IncludesNonWideningType */ ? nullType : nullWideningType : includes & 32768 /* Undefined */ ? includes & 4194304 /* IncludesNonWideningType */ ? undefinedType : undefinedWideningType : neverType;\n      }\n    }\n    if (!origin && includes & 1048576 /* Union */) {\n      const namedUnions = [];\n      addNamedUnions(namedUnions, types);\n      const reducedTypes = [];\n      for (const t of typeSet) {\n        if (!some(namedUnions, (union) => containsType(union.types, t))) {\n          reducedTypes.push(t);\n        }\n      }\n      if (!aliasSymbol && namedUnions.length === 1 && reducedTypes.length === 0) {\n        return namedUnions[0];\n      }\n      const namedTypesCount = reduceLeft(namedUnions, (sum, union) => sum + union.types.length, 0);\n      if (namedTypesCount + reducedTypes.length === typeSet.length) {\n        for (const t of namedUnions) {\n          insertType(reducedTypes, t);\n        }\n        origin = createOriginUnionOrIntersectionType(1048576 /* Union */, reducedTypes);\n      }\n    }\n    const objectFlags = (includes & 36323331 /* NotPrimitiveUnion */ ? 0 : 32768 /* PrimitiveUnion */) | (includes & 2097152 /* Intersection */ ? 16777216 /* ContainsIntersections */ : 0);\n    return getUnionTypeFromSortedList(typeSet, objectFlags, aliasSymbol, aliasTypeArguments, origin);\n  }\n  function getUnionOrIntersectionTypePredicate(signatures, kind) {\n    let last2;\n    const types = [];\n    for (const sig of signatures) {\n      const pred = getTypePredicateOfSignature(sig);\n      if (pred) {\n        if (pred.kind !== 0 /* This */ && pred.kind !== 1 /* Identifier */ || last2 && !typePredicateKindsMatch(last2, pred)) {\n          return void 0;\n        }\n        last2 = pred;\n        types.push(pred.type);\n      } else {\n        const returnType = kind !== 2097152 /* Intersection */ ? getReturnTypeOfSignature(sig) : void 0;\n        if (returnType !== falseType && returnType !== regularFalseType) {\n          return void 0;\n        }\n      }\n    }\n    if (!last2) {\n      return void 0;\n    }\n    const compositeType = getUnionOrIntersectionType(types, kind);\n    return createTypePredicate(last2.kind, last2.parameterName, last2.parameterIndex, compositeType);\n  }\n  function typePredicateKindsMatch(a, b) {\n    return a.kind === b.kind && a.parameterIndex === b.parameterIndex;\n  }\n  function getUnionTypeFromSortedList(types, precomputedObjectFlags, aliasSymbol, aliasTypeArguments, origin) {\n    if (types.length === 0) {\n      return neverType;\n    }\n    if (types.length === 1) {\n      return types[0];\n    }\n    const typeKey = !origin ? getTypeListId(types) : origin.flags & 1048576 /* Union */ ? `|${getTypeListId(origin.types)}` : origin.flags & 2097152 /* Intersection */ ? `&${getTypeListId(origin.types)}` : `#${origin.type.id}|${getTypeListId(types)}`;\n    const id = typeKey + getAliasId(aliasSymbol, aliasTypeArguments);\n    let type = unionTypes.get(id);\n    if (!type) {\n      type = createType(1048576 /* Union */);\n      type.objectFlags = precomputedObjectFlags | getPropagatingFlagsOfTypes(\n        types,\n        /*excludeKinds*/\n        98304 /* Nullable */\n      );\n      type.types = types;\n      type.origin = origin;\n      type.aliasSymbol = aliasSymbol;\n      type.aliasTypeArguments = aliasTypeArguments;\n      if (types.length === 2 && types[0].flags & 512 /* BooleanLiteral */ && types[1].flags & 512 /* BooleanLiteral */) {\n        type.flags |= 16 /* Boolean */;\n        type.intrinsicName = \"boolean\";\n      }\n      unionTypes.set(id, type);\n    }\n    return type;\n  }\n  function getTypeFromUnionTypeNode(node) {\n    const links = getNodeLinks(node);\n    if (!links.resolvedType) {\n      const aliasSymbol = getAliasSymbolForTypeNode(node);\n      links.resolvedType = getUnionType(map(node.types, getTypeFromTypeNode), 1 /* Literal */, aliasSymbol, getTypeArgumentsForAliasSymbol(aliasSymbol));\n    }\n    return links.resolvedType;\n  }\n  function addTypeToIntersection(typeSet, includes, type) {\n    const flags = type.flags;\n    if (flags & 2097152 /* Intersection */) {\n      return addTypesToIntersection(typeSet, includes, type.types);\n    }\n    if (isEmptyAnonymousObjectType(type)) {\n      if (!(includes & 16777216 /* IncludesEmptyObject */)) {\n        includes |= 16777216 /* IncludesEmptyObject */;\n        typeSet.set(type.id.toString(), type);\n      }\n    } else {\n      if (flags & 3 /* AnyOrUnknown */) {\n        if (type === wildcardType) includes |= 8388608 /* IncludesWildcard */;\n        if (isErrorType(type)) includes |= 1073741824 /* IncludesError */;\n      } else if (strictNullChecks || !(flags & 98304 /* Nullable */)) {\n        if (type === missingType) {\n          includes |= 262144 /* IncludesMissingType */;\n          type = undefinedType;\n        }\n        if (!typeSet.has(type.id.toString())) {\n          if (type.flags & 109472 /* Unit */ && includes & 109472 /* Unit */) {\n            includes |= 67108864 /* NonPrimitive */;\n          }\n          typeSet.set(type.id.toString(), type);\n        }\n      }\n      includes |= flags & 473694207 /* IncludesMask */;\n    }\n    return includes;\n  }\n  function addTypesToIntersection(typeSet, includes, types) {\n    for (const type of types) {\n      includes = addTypeToIntersection(typeSet, includes, getRegularTypeOfLiteralType(type));\n    }\n    return includes;\n  }\n  function removeRedundantSupertypes(types, includes) {\n    let i = types.length;\n    while (i > 0) {\n      i--;\n      const t = types[i];\n      const remove = t.flags & 4 /* String */ && includes & (128 /* StringLiteral */ | 134217728 /* TemplateLiteral */ | 268435456 /* StringMapping */) || t.flags & 8 /* Number */ && includes & 256 /* NumberLiteral */ || t.flags & 64 /* BigInt */ && includes & 2048 /* BigIntLiteral */ || t.flags & 4096 /* ESSymbol */ && includes & 8192 /* UniqueESSymbol */ || t.flags & 16384 /* Void */ && includes & 32768 /* Undefined */ || isEmptyAnonymousObjectType(t) && includes & 470302716 /* DefinitelyNonNullable */;\n      if (remove) {\n        orderedRemoveItemAt(types, i);\n      }\n    }\n  }\n  function eachUnionContains(unionTypes2, type) {\n    for (const u of unionTypes2) {\n      if (!containsType(u.types, type)) {\n        if (type === missingType) {\n          return containsType(u.types, undefinedType);\n        }\n        if (type === undefinedType) {\n          return containsType(u.types, missingType);\n        }\n        const primitive = type.flags & 128 /* StringLiteral */ ? stringType : type.flags & (32 /* Enum */ | 256 /* NumberLiteral */) ? numberType : type.flags & 2048 /* BigIntLiteral */ ? bigintType : type.flags & 8192 /* UniqueESSymbol */ ? esSymbolType : void 0;\n        if (!primitive || !containsType(u.types, primitive)) {\n          return false;\n        }\n      }\n    }\n    return true;\n  }\n  function extractRedundantTemplateLiterals(types) {\n    let i = types.length;\n    const literals = filter(types, (t) => !!(t.flags & 128 /* StringLiteral */));\n    while (i > 0) {\n      i--;\n      const t = types[i];\n      if (!(t.flags & (134217728 /* TemplateLiteral */ | 268435456 /* StringMapping */))) continue;\n      for (const t2 of literals) {\n        if (isTypeSubtypeOf(t2, t)) {\n          orderedRemoveItemAt(types, i);\n          break;\n        } else if (isPatternLiteralType(t)) {\n          return true;\n        }\n      }\n    }\n    return false;\n  }\n  function removeFromEach(types, flag) {\n    for (let i = 0; i < types.length; i++) {\n      types[i] = filterType(types[i], (t) => !(t.flags & flag));\n    }\n  }\n  function intersectUnionsOfPrimitiveTypes(types) {\n    let unionTypes2;\n    const index = findIndex(types, (t) => !!(getObjectFlags(t) & 32768 /* PrimitiveUnion */));\n    if (index < 0) {\n      return false;\n    }\n    let i = index + 1;\n    while (i < types.length) {\n      const t = types[i];\n      if (getObjectFlags(t) & 32768 /* PrimitiveUnion */) {\n        (unionTypes2 || (unionTypes2 = [types[index]])).push(t);\n        orderedRemoveItemAt(types, i);\n      } else {\n        i++;\n      }\n    }\n    if (!unionTypes2) {\n      return false;\n    }\n    const checked = [];\n    const result = [];\n    for (const u of unionTypes2) {\n      for (const t of u.types) {\n        if (insertType(checked, t)) {\n          if (eachUnionContains(unionTypes2, t)) {\n            if (t === undefinedType && result.length && result[0] === missingType) {\n              continue;\n            }\n            if (t === missingType && result.length && result[0] === undefinedType) {\n              result[0] = missingType;\n              continue;\n            }\n            insertType(result, t);\n          }\n        }\n      }\n    }\n    types[index] = getUnionTypeFromSortedList(result, 32768 /* PrimitiveUnion */);\n    return true;\n  }\n  function createIntersectionType(types, objectFlags, aliasSymbol, aliasTypeArguments) {\n    const result = createType(2097152 /* Intersection */);\n    result.objectFlags = objectFlags | getPropagatingFlagsOfTypes(\n      types,\n      /*excludeKinds*/\n      98304 /* Nullable */\n    );\n    result.types = types;\n    result.aliasSymbol = aliasSymbol;\n    result.aliasTypeArguments = aliasTypeArguments;\n    return result;\n  }\n  function getIntersectionType(types, flags = 0 /* None */, aliasSymbol, aliasTypeArguments) {\n    const typeMembershipMap = /* @__PURE__ */ new Map();\n    const includes = addTypesToIntersection(typeMembershipMap, 0, types);\n    const typeSet = arrayFrom(typeMembershipMap.values());\n    let objectFlags = 0 /* None */;\n    if (includes & 131072 /* Never */) {\n      return contains(typeSet, silentNeverType) ? silentNeverType : neverType;\n    }\n    if (strictNullChecks && includes & 98304 /* Nullable */ && includes & (524288 /* Object */ | 67108864 /* NonPrimitive */ | 16777216 /* IncludesEmptyObject */) || includes & 67108864 /* NonPrimitive */ && includes & (469892092 /* DisjointDomains */ & ~67108864 /* NonPrimitive */) || includes & 402653316 /* StringLike */ && includes & (469892092 /* DisjointDomains */ & ~402653316 /* StringLike */) || includes & 296 /* NumberLike */ && includes & (469892092 /* DisjointDomains */ & ~296 /* NumberLike */) || includes & 2112 /* BigIntLike */ && includes & (469892092 /* DisjointDomains */ & ~2112 /* BigIntLike */) || includes & 12288 /* ESSymbolLike */ && includes & (469892092 /* DisjointDomains */ & ~12288 /* ESSymbolLike */) || includes & 49152 /* VoidLike */ && includes & (469892092 /* DisjointDomains */ & ~49152 /* VoidLike */)) {\n      return neverType;\n    }\n    if (includes & (134217728 /* TemplateLiteral */ | 268435456 /* StringMapping */) && includes & 128 /* StringLiteral */ && extractRedundantTemplateLiterals(typeSet)) {\n      return neverType;\n    }\n    if (includes & 1 /* Any */) {\n      return includes & 8388608 /* IncludesWildcard */ ? wildcardType : includes & 1073741824 /* IncludesError */ ? errorType : anyType;\n    }\n    if (!strictNullChecks && includes & 98304 /* Nullable */) {\n      return includes & 16777216 /* IncludesEmptyObject */ ? neverType : includes & 32768 /* Undefined */ ? undefinedType : nullType;\n    }\n    if (includes & 4 /* String */ && includes & (128 /* StringLiteral */ | 134217728 /* TemplateLiteral */ | 268435456 /* StringMapping */) || includes & 8 /* Number */ && includes & 256 /* NumberLiteral */ || includes & 64 /* BigInt */ && includes & 2048 /* BigIntLiteral */ || includes & 4096 /* ESSymbol */ && includes & 8192 /* UniqueESSymbol */ || includes & 16384 /* Void */ && includes & 32768 /* Undefined */ || includes & 16777216 /* IncludesEmptyObject */ && includes & 470302716 /* DefinitelyNonNullable */) {\n      if (!(flags & 1 /* NoSupertypeReduction */)) removeRedundantSupertypes(typeSet, includes);\n    }\n    if (includes & 262144 /* IncludesMissingType */) {\n      typeSet[typeSet.indexOf(undefinedType)] = missingType;\n    }\n    if (typeSet.length === 0) {\n      return unknownType;\n    }\n    if (typeSet.length === 1) {\n      return typeSet[0];\n    }\n    if (typeSet.length === 2 && !(flags & 2 /* NoConstraintReduction */)) {\n      const typeVarIndex = typeSet[0].flags & 8650752 /* TypeVariable */ ? 0 : 1;\n      const typeVariable = typeSet[typeVarIndex];\n      const primitiveType = typeSet[1 - typeVarIndex];\n      if (typeVariable.flags & 8650752 /* TypeVariable */ && (primitiveType.flags & (402784252 /* Primitive */ | 67108864 /* NonPrimitive */) && !isGenericStringLikeType(primitiveType) || includes & 16777216 /* IncludesEmptyObject */)) {\n        const constraint = getBaseConstraintOfType(typeVariable);\n        if (constraint && everyType(constraint, (t) => !!(t.flags & (402784252 /* Primitive */ | 67108864 /* NonPrimitive */)) || isEmptyAnonymousObjectType(t))) {\n          if (isTypeStrictSubtypeOf(constraint, primitiveType)) {\n            return typeVariable;\n          }\n          if (!(constraint.flags & 1048576 /* Union */ && someType(constraint, (c) => isTypeStrictSubtypeOf(c, primitiveType)))) {\n            if (!isTypeStrictSubtypeOf(primitiveType, constraint)) {\n              return neverType;\n            }\n          }\n          objectFlags = 67108864 /* IsConstrainedTypeVariable */;\n        }\n      }\n    }\n    const id = getTypeListId(typeSet) + (flags & 2 /* NoConstraintReduction */ ? \"*\" : getAliasId(aliasSymbol, aliasTypeArguments));\n    let result = intersectionTypes.get(id);\n    if (!result) {\n      if (includes & 1048576 /* Union */) {\n        if (intersectUnionsOfPrimitiveTypes(typeSet)) {\n          result = getIntersectionType(typeSet, flags, aliasSymbol, aliasTypeArguments);\n        } else if (every(typeSet, (t) => !!(t.flags & 1048576 /* Union */ && t.types[0].flags & 32768 /* Undefined */))) {\n          const containedUndefinedType = some(typeSet, containsMissingType) ? missingType : undefinedType;\n          removeFromEach(typeSet, 32768 /* Undefined */);\n          result = getUnionType([getIntersectionType(typeSet, flags), containedUndefinedType], 1 /* Literal */, aliasSymbol, aliasTypeArguments);\n        } else if (every(typeSet, (t) => !!(t.flags & 1048576 /* Union */ && (t.types[0].flags & 65536 /* Null */ || t.types[1].flags & 65536 /* Null */)))) {\n          removeFromEach(typeSet, 65536 /* Null */);\n          result = getUnionType([getIntersectionType(typeSet, flags), nullType], 1 /* Literal */, aliasSymbol, aliasTypeArguments);\n        } else if (typeSet.length >= 3 && types.length > 2) {\n          const middle = Math.floor(typeSet.length / 2);\n          result = getIntersectionType([getIntersectionType(typeSet.slice(0, middle), flags), getIntersectionType(typeSet.slice(middle), flags)], flags, aliasSymbol, aliasTypeArguments);\n        } else {\n          if (!checkCrossProductUnion(typeSet)) {\n            return errorType;\n          }\n          const constituents = getCrossProductIntersections(typeSet, flags);\n          const origin = some(constituents, (t) => !!(t.flags & 2097152 /* Intersection */)) && getConstituentCountOfTypes(constituents) > getConstituentCountOfTypes(typeSet) ? createOriginUnionOrIntersectionType(2097152 /* Intersection */, typeSet) : void 0;\n          result = getUnionType(constituents, 1 /* Literal */, aliasSymbol, aliasTypeArguments, origin);\n        }\n      } else {\n        result = createIntersectionType(typeSet, objectFlags, aliasSymbol, aliasTypeArguments);\n      }\n      intersectionTypes.set(id, result);\n    }\n    return result;\n  }\n  function getCrossProductUnionSize(types) {\n    return reduceLeft(types, (n, t) => t.flags & 1048576 /* Union */ ? n * t.types.length : t.flags & 131072 /* Never */ ? 0 : n, 1);\n  }\n  function checkCrossProductUnion(types) {\n    var _a;\n    const size = getCrossProductUnionSize(types);\n    if (size >= 1e5) {\n      (_a = tracing) == null ? void 0 : _a.instant(tracing.Phase.CheckTypes, \"checkCrossProductUnion_DepthLimit\", { typeIds: types.map((t) => t.id), size });\n      error2(currentNode, Diagnostics.Expression_produces_a_union_type_that_is_too_complex_to_represent);\n      return false;\n    }\n    return true;\n  }\n  function getCrossProductIntersections(types, flags) {\n    const count = getCrossProductUnionSize(types);\n    const intersections = [];\n    for (let i = 0; i < count; i++) {\n      const constituents = types.slice();\n      let n = i;\n      for (let j = types.length - 1; j >= 0; j--) {\n        if (types[j].flags & 1048576 /* Union */) {\n          const sourceTypes = types[j].types;\n          const length2 = sourceTypes.length;\n          constituents[j] = sourceTypes[n % length2];\n          n = Math.floor(n / length2);\n        }\n      }\n      const t = getIntersectionType(constituents, flags);\n      if (!(t.flags & 131072 /* Never */)) intersections.push(t);\n    }\n    return intersections;\n  }\n  function getConstituentCount(type) {\n    return !(type.flags & 3145728 /* UnionOrIntersection */) || type.aliasSymbol ? 1 : type.flags & 1048576 /* Union */ && type.origin ? getConstituentCount(type.origin) : getConstituentCountOfTypes(type.types);\n  }\n  function getConstituentCountOfTypes(types) {\n    return reduceLeft(types, (n, t) => n + getConstituentCount(t), 0);\n  }\n  function getTypeFromIntersectionTypeNode(node) {\n    const links = getNodeLinks(node);\n    if (!links.resolvedType) {\n      const aliasSymbol = getAliasSymbolForTypeNode(node);\n      const types = map(node.types, getTypeFromTypeNode);\n      const emptyIndex = types.length === 2 ? types.indexOf(emptyTypeLiteralType) : -1;\n      const t = emptyIndex >= 0 ? types[1 - emptyIndex] : unknownType;\n      const noSupertypeReduction = !!(t.flags & (4 /* String */ | 8 /* Number */ | 64 /* BigInt */) || t.flags & 134217728 /* TemplateLiteral */ && isPatternLiteralType(t));\n      links.resolvedType = getIntersectionType(types, noSupertypeReduction ? 1 /* NoSupertypeReduction */ : 0, aliasSymbol, getTypeArgumentsForAliasSymbol(aliasSymbol));\n    }\n    return links.resolvedType;\n  }\n  function createIndexType(type, indexFlags) {\n    const result = createType(4194304 /* Index */);\n    result.type = type;\n    result.indexFlags = indexFlags;\n    return result;\n  }\n  function createOriginIndexType(type) {\n    const result = createOriginType(4194304 /* Index */);\n    result.type = type;\n    return result;\n  }\n  function getIndexTypeForGenericType(type, indexFlags) {\n    return indexFlags & 1 /* StringsOnly */ ? type.resolvedStringIndexType || (type.resolvedStringIndexType = createIndexType(type, 1 /* StringsOnly */)) : type.resolvedIndexType || (type.resolvedIndexType = createIndexType(type, 0 /* None */));\n  }\n  function getIndexTypeForMappedType(type, indexFlags) {\n    const typeParameter = getTypeParameterFromMappedType(type);\n    const constraintType = getConstraintTypeFromMappedType(type);\n    const nameType = getNameTypeFromMappedType(type.target || type);\n    if (!nameType && !(indexFlags & 2 /* NoIndexSignatures */)) {\n      return constraintType;\n    }\n    const keyTypes = [];\n    if (isGenericIndexType(constraintType)) {\n      if (isMappedTypeWithKeyofConstraintDeclaration(type)) {\n        return getIndexTypeForGenericType(type, indexFlags);\n      }\n      forEachType(constraintType, addMemberForKeyType);\n    } else if (isMappedTypeWithKeyofConstraintDeclaration(type)) {\n      const modifiersType = getApparentType(getModifiersTypeFromMappedType(type));\n      forEachMappedTypePropertyKeyTypeAndIndexSignatureKeyType(modifiersType, 8576 /* StringOrNumberLiteralOrUnique */, !!(indexFlags & 1 /* StringsOnly */), addMemberForKeyType);\n    } else {\n      forEachType(getLowerBoundOfKeyType(constraintType), addMemberForKeyType);\n    }\n    const result = indexFlags & 2 /* NoIndexSignatures */ ? filterType(getUnionType(keyTypes), (t) => !(t.flags & (1 /* Any */ | 4 /* String */))) : getUnionType(keyTypes);\n    if (result.flags & 1048576 /* Union */ && constraintType.flags & 1048576 /* Union */ && getTypeListId(result.types) === getTypeListId(constraintType.types)) {\n      return constraintType;\n    }\n    return result;\n    function addMemberForKeyType(keyType) {\n      const propNameType = nameType ? instantiateType(nameType, appendTypeMapping(type.mapper, typeParameter, keyType)) : keyType;\n      keyTypes.push(propNameType === stringType ? stringOrNumberType : propNameType);\n    }\n  }\n  function hasDistributiveNameType(mappedType) {\n    const typeVariable = getTypeParameterFromMappedType(mappedType);\n    return isDistributive(getNameTypeFromMappedType(mappedType) || typeVariable);\n    function isDistributive(type) {\n      return type.flags & (3 /* AnyOrUnknown */ | 402784252 /* Primitive */ | 131072 /* Never */ | 262144 /* TypeParameter */ | 524288 /* Object */ | 67108864 /* NonPrimitive */) ? true : type.flags & 16777216 /* Conditional */ ? type.root.isDistributive && type.checkType === typeVariable : type.flags & (3145728 /* UnionOrIntersection */ | 134217728 /* TemplateLiteral */) ? every(type.types, isDistributive) : type.flags & 8388608 /* IndexedAccess */ ? isDistributive(type.objectType) && isDistributive(type.indexType) : type.flags & 33554432 /* Substitution */ ? isDistributive(type.baseType) && isDistributive(type.constraint) : type.flags & 268435456 /* StringMapping */ ? isDistributive(type.type) : false;\n    }\n  }\n  function getLiteralTypeFromPropertyName(name) {\n    if (isPrivateIdentifier(name)) {\n      return neverType;\n    }\n    if (isNumericLiteral(name)) {\n      return getRegularTypeOfLiteralType(checkExpression(name));\n    }\n    if (isComputedPropertyName(name)) {\n      return getRegularTypeOfLiteralType(checkComputedPropertyName(name));\n    }\n    const propertyName = getPropertyNameForPropertyNameNode(name);\n    if (propertyName !== void 0) {\n      return getStringLiteralType(unescapeLeadingUnderscores(propertyName));\n    }\n    if (isExpression(name)) {\n      return getRegularTypeOfLiteralType(checkExpression(name));\n    }\n    return neverType;\n  }\n  function getLiteralTypeFromProperty(prop, include, includeNonPublic) {\n    if (includeNonPublic || !(getDeclarationModifierFlagsFromSymbol(prop) & 6 /* NonPublicAccessibilityModifier */)) {\n      let type = getSymbolLinks(getLateBoundSymbol(prop)).nameType;\n      if (!type) {\n        const name = getNameOfDeclaration(prop.valueDeclaration);\n        type = prop.escapedName === \"default\" /* Default */ ? getStringLiteralType(\"default\") : name && getLiteralTypeFromPropertyName(name) || (!isKnownSymbol(prop) ? getStringLiteralType(symbolName(prop)) : void 0);\n      }\n      if (type && type.flags & include) {\n        return type;\n      }\n    }\n    return neverType;\n  }\n  function isKeyTypeIncluded(keyType, include) {\n    return !!(keyType.flags & include || keyType.flags & 2097152 /* Intersection */ && some(keyType.types, (t) => isKeyTypeIncluded(t, include)));\n  }\n  function getLiteralTypeFromProperties(type, include, includeOrigin) {\n    const origin = includeOrigin && (getObjectFlags(type) & (3 /* ClassOrInterface */ | 4 /* Reference */) || type.aliasSymbol) ? createOriginIndexType(type) : void 0;\n    const propertyTypes = map(getPropertiesOfType(type), (prop) => getLiteralTypeFromProperty(prop, include));\n    const indexKeyTypes = map(getIndexInfosOfType(type), (info) => info !== enumNumberIndexInfo && isKeyTypeIncluded(info.keyType, include) ? info.keyType === stringType && include & 8 /* Number */ ? stringOrNumberType : info.keyType : neverType);\n    return getUnionType(\n      concatenate(propertyTypes, indexKeyTypes),\n      1 /* Literal */,\n      /*aliasSymbol*/\n      void 0,\n      /*aliasTypeArguments*/\n      void 0,\n      origin\n    );\n  }\n  function shouldDeferIndexType(type, indexFlags = 0 /* None */) {\n    return !!(type.flags & 58982400 /* InstantiableNonPrimitive */ || isGenericTupleType(type) || isGenericMappedType(type) && (!hasDistributiveNameType(type) || getMappedTypeNameTypeKind(type) === 2 /* Remapping */) || type.flags & 1048576 /* Union */ && !(indexFlags & 4 /* NoReducibleCheck */) && isGenericReducibleType(type) || type.flags & 2097152 /* Intersection */ && maybeTypeOfKind(type, 465829888 /* Instantiable */) && some(type.types, isEmptyAnonymousObjectType));\n  }\n  function getIndexType(type, indexFlags = 0 /* None */) {\n    type = getReducedType(type);\n    return isNoInferType(type) ? getNoInferType(getIndexType(type.baseType, indexFlags)) : shouldDeferIndexType(type, indexFlags) ? getIndexTypeForGenericType(type, indexFlags) : type.flags & 1048576 /* Union */ ? getIntersectionType(map(type.types, (t) => getIndexType(t, indexFlags))) : type.flags & 2097152 /* Intersection */ ? getUnionType(map(type.types, (t) => getIndexType(t, indexFlags))) : getObjectFlags(type) & 32 /* Mapped */ ? getIndexTypeForMappedType(type, indexFlags) : type === wildcardType ? wildcardType : type.flags & 2 /* Unknown */ ? neverType : type.flags & (1 /* Any */ | 131072 /* Never */) ? stringNumberSymbolType : getLiteralTypeFromProperties(type, (indexFlags & 2 /* NoIndexSignatures */ ? 128 /* StringLiteral */ : 402653316 /* StringLike */) | (indexFlags & 1 /* StringsOnly */ ? 0 : 296 /* NumberLike */ | 12288 /* ESSymbolLike */), indexFlags === 0 /* None */);\n  }\n  function getExtractStringType(type) {\n    const extractTypeAlias = getGlobalExtractSymbol();\n    return extractTypeAlias ? getTypeAliasInstantiation(extractTypeAlias, [type, stringType]) : stringType;\n  }\n  function getIndexTypeOrString(type) {\n    const indexType = getExtractStringType(getIndexType(type));\n    return indexType.flags & 131072 /* Never */ ? stringType : indexType;\n  }\n  function getTypeFromTypeOperatorNode(node) {\n    const links = getNodeLinks(node);\n    if (!links.resolvedType) {\n      switch (node.operator) {\n        case 143 /* KeyOfKeyword */:\n          links.resolvedType = getIndexType(getTypeFromTypeNode(node.type));\n          break;\n        case 158 /* UniqueKeyword */:\n          links.resolvedType = node.type.kind === 155 /* SymbolKeyword */ ? getESSymbolLikeTypeForNode(walkUpParenthesizedTypes(node.parent)) : errorType;\n          break;\n        case 148 /* ReadonlyKeyword */:\n          links.resolvedType = getTypeFromTypeNode(node.type);\n          break;\n        default:\n          Debug.assertNever(node.operator);\n      }\n    }\n    return links.resolvedType;\n  }\n  function getTypeFromTemplateTypeNode(node) {\n    const links = getNodeLinks(node);\n    if (!links.resolvedType) {\n      links.resolvedType = getTemplateLiteralType(\n        [node.head.text, ...map(node.templateSpans, (span) => span.literal.text)],\n        map(node.templateSpans, (span) => getTypeFromTypeNode(span.type))\n      );\n    }\n    return links.resolvedType;\n  }\n  function getTemplateLiteralType(texts, types) {\n    const unionIndex = findIndex(types, (t) => !!(t.flags & (131072 /* Never */ | 1048576 /* Union */)));\n    if (unionIndex >= 0) {\n      return checkCrossProductUnion(types) ? mapType(types[unionIndex], (t) => getTemplateLiteralType(texts, replaceElement(types, unionIndex, t))) : errorType;\n    }\n    if (contains(types, wildcardType)) {\n      return wildcardType;\n    }\n    const newTypes = [];\n    const newTexts = [];\n    let text = texts[0];\n    if (!addSpans(texts, types)) {\n      return stringType;\n    }\n    if (newTypes.length === 0) {\n      return getStringLiteralType(text);\n    }\n    newTexts.push(text);\n    if (every(newTexts, (t) => t === \"\")) {\n      if (every(newTypes, (t) => !!(t.flags & 4 /* String */))) {\n        return stringType;\n      }\n      if (newTypes.length === 1 && isPatternLiteralType(newTypes[0])) {\n        return newTypes[0];\n      }\n    }\n    const id = `${getTypeListId(newTypes)}|${map(newTexts, (t) => t.length).join(\",\")}|${newTexts.join(\"\")}`;\n    let type = templateLiteralTypes.get(id);\n    if (!type) {\n      templateLiteralTypes.set(id, type = createTemplateLiteralType(newTexts, newTypes));\n    }\n    return type;\n    function addSpans(texts2, types2) {\n      for (let i = 0; i < types2.length; i++) {\n        const t = types2[i];\n        if (t.flags & (2944 /* Literal */ | 65536 /* Null */ | 32768 /* Undefined */)) {\n          text += getTemplateStringForType(t) || \"\";\n          text += texts2[i + 1];\n        } else if (t.flags & 134217728 /* TemplateLiteral */) {\n          text += t.texts[0];\n          if (!addSpans(t.texts, t.types)) return false;\n          text += texts2[i + 1];\n        } else if (isGenericIndexType(t) || isPatternLiteralPlaceholderType(t)) {\n          newTypes.push(t);\n          newTexts.push(text);\n          text = texts2[i + 1];\n        } else {\n          return false;\n        }\n      }\n      return true;\n    }\n  }\n  function getTemplateStringForType(type) {\n    return type.flags & 128 /* StringLiteral */ ? type.value : type.flags & 256 /* NumberLiteral */ ? \"\" + type.value : type.flags & 2048 /* BigIntLiteral */ ? pseudoBigIntToString(type.value) : type.flags & (512 /* BooleanLiteral */ | 98304 /* Nullable */) ? type.intrinsicName : void 0;\n  }\n  function createTemplateLiteralType(texts, types) {\n    const type = createType(134217728 /* TemplateLiteral */);\n    type.texts = texts;\n    type.types = types;\n    return type;\n  }\n  function getStringMappingType(symbol, type) {\n    return type.flags & (1048576 /* Union */ | 131072 /* Never */) ? mapType(type, (t) => getStringMappingType(symbol, t)) : type.flags & 128 /* StringLiteral */ ? getStringLiteralType(applyStringMapping(symbol, type.value)) : type.flags & 134217728 /* TemplateLiteral */ ? getTemplateLiteralType(...applyTemplateStringMapping(symbol, type.texts, type.types)) : (\n      // Mapping<Mapping<T>> === Mapping<T>\n      type.flags & 268435456 /* StringMapping */ && symbol === type.symbol ? type : type.flags & (1 /* Any */ | 4 /* String */ | 268435456 /* StringMapping */) || isGenericIndexType(type) ? getStringMappingTypeForGenericType(symbol, type) : (\n        // This handles Mapping<`${number}`> and Mapping<`${bigint}`>\n        isPatternLiteralPlaceholderType(type) ? getStringMappingTypeForGenericType(symbol, getTemplateLiteralType([\"\", \"\"], [type])) : type\n      )\n    );\n  }\n  function applyStringMapping(symbol, str) {\n    switch (intrinsicTypeKinds.get(symbol.escapedName)) {\n      case 0 /* Uppercase */:\n        return str.toUpperCase();\n      case 1 /* Lowercase */:\n        return str.toLowerCase();\n      case 2 /* Capitalize */:\n        return str.charAt(0).toUpperCase() + str.slice(1);\n      case 3 /* Uncapitalize */:\n        return str.charAt(0).toLowerCase() + str.slice(1);\n    }\n    return str;\n  }\n  function applyTemplateStringMapping(symbol, texts, types) {\n    switch (intrinsicTypeKinds.get(symbol.escapedName)) {\n      case 0 /* Uppercase */:\n        return [texts.map((t) => t.toUpperCase()), types.map((t) => getStringMappingType(symbol, t))];\n      case 1 /* Lowercase */:\n        return [texts.map((t) => t.toLowerCase()), types.map((t) => getStringMappingType(symbol, t))];\n      case 2 /* Capitalize */:\n        return [texts[0] === \"\" ? texts : [texts[0].charAt(0).toUpperCase() + texts[0].slice(1), ...texts.slice(1)], texts[0] === \"\" ? [getStringMappingType(symbol, types[0]), ...types.slice(1)] : types];\n      case 3 /* Uncapitalize */:\n        return [texts[0] === \"\" ? texts : [texts[0].charAt(0).toLowerCase() + texts[0].slice(1), ...texts.slice(1)], texts[0] === \"\" ? [getStringMappingType(symbol, types[0]), ...types.slice(1)] : types];\n    }\n    return [texts, types];\n  }\n  function getStringMappingTypeForGenericType(symbol, type) {\n    const id = `${getSymbolId(symbol)},${getTypeId(type)}`;\n    let result = stringMappingTypes.get(id);\n    if (!result) {\n      stringMappingTypes.set(id, result = createStringMappingType(symbol, type));\n    }\n    return result;\n  }\n  function createStringMappingType(symbol, type) {\n    const result = createTypeWithSymbol(268435456 /* StringMapping */, symbol);\n    result.type = type;\n    return result;\n  }\n  function createIndexedAccessType(objectType, indexType, accessFlags, aliasSymbol, aliasTypeArguments) {\n    const type = createType(8388608 /* IndexedAccess */);\n    type.objectType = objectType;\n    type.indexType = indexType;\n    type.accessFlags = accessFlags;\n    type.aliasSymbol = aliasSymbol;\n    type.aliasTypeArguments = aliasTypeArguments;\n    return type;\n  }\n  function isJSLiteralType(type) {\n    if (noImplicitAny) {\n      return false;\n    }\n    if (getObjectFlags(type) & 4096 /* JSLiteral */) {\n      return true;\n    }\n    if (type.flags & 1048576 /* Union */) {\n      return every(type.types, isJSLiteralType);\n    }\n    if (type.flags & 2097152 /* Intersection */) {\n      return some(type.types, isJSLiteralType);\n    }\n    if (type.flags & 465829888 /* Instantiable */) {\n      const constraint = getResolvedBaseConstraint(type);\n      return constraint !== type && isJSLiteralType(constraint);\n    }\n    return false;\n  }\n  function getPropertyNameFromIndex(indexType, accessNode) {\n    return isTypeUsableAsPropertyName(indexType) ? getPropertyNameFromType(indexType) : accessNode && isPropertyName(accessNode) ? (\n      // late bound names are handled in the first branch, so here we only need to handle normal names\n      getPropertyNameForPropertyNameNode(accessNode)\n    ) : void 0;\n  }\n  function isUncalledFunctionReference(node, symbol) {\n    if (symbol.flags & (16 /* Function */ | 8192 /* Method */)) {\n      const parent2 = findAncestor(node.parent, (n) => !isAccessExpression(n)) || node.parent;\n      if (isCallLikeExpression(parent2)) {\n        return isCallOrNewExpression(parent2) && isIdentifier(node) && hasMatchingArgument(parent2, node);\n      }\n      return every(symbol.declarations, (d) => !isFunctionLike(d) || isDeprecatedDeclaration2(d));\n    }\n    return true;\n  }\n  function getPropertyTypeForIndexType(originalObjectType, objectType, indexType, fullIndexType, accessNode, accessFlags) {\n    const accessExpression = accessNode && accessNode.kind === 213 /* ElementAccessExpression */ ? accessNode : void 0;\n    const propName = accessNode && isPrivateIdentifier(accessNode) ? void 0 : getPropertyNameFromIndex(indexType, accessNode);\n    if (propName !== void 0) {\n      if (accessFlags & 256 /* Contextual */) {\n        return getTypeOfPropertyOfContextualType(objectType, propName) || anyType;\n      }\n      const prop = getPropertyOfType(objectType, propName);\n      if (prop) {\n        if (accessFlags & 64 /* ReportDeprecated */ && accessNode && prop.declarations && isDeprecatedSymbol(prop) && isUncalledFunctionReference(accessNode, prop)) {\n          const deprecatedNode = (accessExpression == null ? void 0 : accessExpression.argumentExpression) ?? (isIndexedAccessTypeNode(accessNode) ? accessNode.indexType : accessNode);\n          addDeprecatedSuggestion(deprecatedNode, prop.declarations, propName);\n        }\n        if (accessExpression) {\n          markPropertyAsReferenced(prop, accessExpression, isSelfTypeAccess(accessExpression.expression, objectType.symbol));\n          if (isAssignmentToReadonlyEntity(accessExpression, prop, getAssignmentTargetKind(accessExpression))) {\n            error2(accessExpression.argumentExpression, Diagnostics.Cannot_assign_to_0_because_it_is_a_read_only_property, symbolToString(prop));\n            return void 0;\n          }\n          if (accessFlags & 8 /* CacheSymbol */) {\n            getNodeLinks(accessNode).resolvedSymbol = prop;\n          }\n          if (isThisPropertyAccessInConstructor(accessExpression, prop)) {\n            return autoType;\n          }\n        }\n        const propType = accessFlags & 4 /* Writing */ ? getWriteTypeOfSymbol(prop) : getTypeOfSymbol(prop);\n        return accessExpression && getAssignmentTargetKind(accessExpression) !== 1 /* Definite */ ? getFlowTypeOfReference(accessExpression, propType) : accessNode && isIndexedAccessTypeNode(accessNode) && containsMissingType(propType) ? getUnionType([propType, undefinedType]) : propType;\n      }\n      if (everyType(objectType, isTupleType) && isNumericLiteralName(propName)) {\n        const index = +propName;\n        if (accessNode && everyType(objectType, (t) => !(t.target.combinedFlags & 12 /* Variable */)) && !(accessFlags & 16 /* AllowMissing */)) {\n          const indexNode = getIndexNodeForAccessExpression(accessNode);\n          if (isTupleType(objectType)) {\n            if (index < 0) {\n              error2(indexNode, Diagnostics.A_tuple_type_cannot_be_indexed_with_a_negative_value);\n              return undefinedType;\n            }\n            error2(indexNode, Diagnostics.Tuple_type_0_of_length_1_has_no_element_at_index_2, typeToString(objectType), getTypeReferenceArity(objectType), unescapeLeadingUnderscores(propName));\n          } else {\n            error2(indexNode, Diagnostics.Property_0_does_not_exist_on_type_1, unescapeLeadingUnderscores(propName), typeToString(objectType));\n          }\n        }\n        if (index >= 0) {\n          errorIfWritingToReadonlyIndex(getIndexInfoOfType(objectType, numberType));\n          return getTupleElementTypeOutOfStartCount(objectType, index, accessFlags & 1 /* IncludeUndefined */ ? missingType : void 0);\n        }\n      }\n    }\n    if (!(indexType.flags & 98304 /* Nullable */) && isTypeAssignableToKind(indexType, 402653316 /* StringLike */ | 296 /* NumberLike */ | 12288 /* ESSymbolLike */)) {\n      if (objectType.flags & (1 /* Any */ | 131072 /* Never */)) {\n        return objectType;\n      }\n      const indexInfo = getApplicableIndexInfo(objectType, indexType) || getIndexInfoOfType(objectType, stringType);\n      if (indexInfo) {\n        if (accessFlags & 2 /* NoIndexSignatures */ && indexInfo.keyType !== numberType) {\n          if (accessExpression) {\n            if (accessFlags & 4 /* Writing */) {\n              error2(accessExpression, Diagnostics.Type_0_is_generic_and_can_only_be_indexed_for_reading, typeToString(originalObjectType));\n            } else {\n              error2(accessExpression, Diagnostics.Type_0_cannot_be_used_to_index_type_1, typeToString(indexType), typeToString(originalObjectType));\n            }\n          }\n          return void 0;\n        }\n        if (accessNode && indexInfo.keyType === stringType && !isTypeAssignableToKind(indexType, 4 /* String */ | 8 /* Number */)) {\n          const indexNode = getIndexNodeForAccessExpression(accessNode);\n          error2(indexNode, Diagnostics.Type_0_cannot_be_used_as_an_index_type, typeToString(indexType));\n          return accessFlags & 1 /* IncludeUndefined */ ? getUnionType([indexInfo.type, missingType]) : indexInfo.type;\n        }\n        errorIfWritingToReadonlyIndex(indexInfo);\n        if (accessFlags & 1 /* IncludeUndefined */ && !(objectType.symbol && objectType.symbol.flags & (256 /* RegularEnum */ | 128 /* ConstEnum */) && (indexType.symbol && indexType.flags & 1024 /* EnumLiteral */ && getParentOfSymbol(indexType.symbol) === objectType.symbol))) {\n          return getUnionType([indexInfo.type, missingType]);\n        }\n        return indexInfo.type;\n      }\n      if (indexType.flags & 131072 /* Never */) {\n        return neverType;\n      }\n      if (isJSLiteralType(objectType)) {\n        return anyType;\n      }\n      if (accessExpression && !isConstEnumObjectType(objectType)) {\n        if (isObjectLiteralType2(objectType)) {\n          if (noImplicitAny && indexType.flags & (128 /* StringLiteral */ | 256 /* NumberLiteral */)) {\n            diagnostics.add(createDiagnosticForNode(accessExpression, Diagnostics.Property_0_does_not_exist_on_type_1, indexType.value, typeToString(objectType)));\n            return undefinedType;\n          } else if (indexType.flags & (8 /* Number */ | 4 /* String */)) {\n            const types = map(objectType.properties, (property) => {\n              return getTypeOfSymbol(property);\n            });\n            return getUnionType(append(types, undefinedType));\n          }\n        }\n        if (objectType.symbol === globalThisSymbol && propName !== void 0 && globalThisSymbol.exports.has(propName) && globalThisSymbol.exports.get(propName).flags & 418 /* BlockScoped */) {\n          error2(accessExpression, Diagnostics.Property_0_does_not_exist_on_type_1, unescapeLeadingUnderscores(propName), typeToString(objectType));\n        } else if (noImplicitAny && !(accessFlags & 128 /* SuppressNoImplicitAnyError */)) {\n          if (propName !== void 0 && typeHasStaticProperty(propName, objectType)) {\n            const typeName = typeToString(objectType);\n            error2(accessExpression, Diagnostics.Property_0_does_not_exist_on_type_1_Did_you_mean_to_access_the_static_member_2_instead, propName, typeName, typeName + \"[\" + getTextOfNode(accessExpression.argumentExpression) + \"]\");\n          } else if (getIndexTypeOfType(objectType, numberType)) {\n            error2(accessExpression.argumentExpression, Diagnostics.Element_implicitly_has_an_any_type_because_index_expression_is_not_of_type_number);\n          } else {\n            let suggestion;\n            if (propName !== void 0 && (suggestion = getSuggestionForNonexistentProperty(propName, objectType))) {\n              if (suggestion !== void 0) {\n                error2(accessExpression.argumentExpression, Diagnostics.Property_0_does_not_exist_on_type_1_Did_you_mean_2, propName, typeToString(objectType), suggestion);\n              }\n            } else {\n              const suggestion2 = getSuggestionForNonexistentIndexSignature(objectType, accessExpression, indexType);\n              if (suggestion2 !== void 0) {\n                error2(accessExpression, Diagnostics.Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_Did_you_mean_to_call_1, typeToString(objectType), suggestion2);\n              } else {\n                let errorInfo;\n                if (indexType.flags & 1024 /* EnumLiteral */) {\n                  errorInfo = chainDiagnosticMessages(\n                    /*details*/\n                    void 0,\n                    Diagnostics.Property_0_does_not_exist_on_type_1,\n                    \"[\" + typeToString(indexType) + \"]\",\n                    typeToString(objectType)\n                  );\n                } else if (indexType.flags & 8192 /* UniqueESSymbol */) {\n                  const symbolName2 = getFullyQualifiedName(indexType.symbol, accessExpression);\n                  errorInfo = chainDiagnosticMessages(\n                    /*details*/\n                    void 0,\n                    Diagnostics.Property_0_does_not_exist_on_type_1,\n                    \"[\" + symbolName2 + \"]\",\n                    typeToString(objectType)\n                  );\n                } else if (indexType.flags & 128 /* StringLiteral */) {\n                  errorInfo = chainDiagnosticMessages(\n                    /*details*/\n                    void 0,\n                    Diagnostics.Property_0_does_not_exist_on_type_1,\n                    indexType.value,\n                    typeToString(objectType)\n                  );\n                } else if (indexType.flags & 256 /* NumberLiteral */) {\n                  errorInfo = chainDiagnosticMessages(\n                    /*details*/\n                    void 0,\n                    Diagnostics.Property_0_does_not_exist_on_type_1,\n                    indexType.value,\n                    typeToString(objectType)\n                  );\n                } else if (indexType.flags & (8 /* Number */ | 4 /* String */)) {\n                  errorInfo = chainDiagnosticMessages(\n                    /*details*/\n                    void 0,\n                    Diagnostics.No_index_signature_with_a_parameter_of_type_0_was_found_on_type_1,\n                    typeToString(indexType),\n                    typeToString(objectType)\n                  );\n                }\n                errorInfo = chainDiagnosticMessages(\n                  errorInfo,\n                  Diagnostics.Element_implicitly_has_an_any_type_because_expression_of_type_0_can_t_be_used_to_index_type_1,\n                  typeToString(fullIndexType),\n                  typeToString(objectType)\n                );\n                diagnostics.add(createDiagnosticForNodeFromMessageChain(getSourceFileOfNode(accessExpression), accessExpression, errorInfo));\n              }\n            }\n          }\n        }\n        return void 0;\n      }\n    }\n    if (accessFlags & 16 /* AllowMissing */ && isObjectLiteralType2(objectType)) {\n      return undefinedType;\n    }\n    if (isJSLiteralType(objectType)) {\n      return anyType;\n    }\n    if (accessNode) {\n      const indexNode = getIndexNodeForAccessExpression(accessNode);\n      if (indexNode.kind !== 10 /* BigIntLiteral */ && indexType.flags & (128 /* StringLiteral */ | 256 /* NumberLiteral */)) {\n        error2(indexNode, Diagnostics.Property_0_does_not_exist_on_type_1, \"\" + indexType.value, typeToString(objectType));\n      } else if (indexType.flags & (4 /* String */ | 8 /* Number */)) {\n        error2(indexNode, Diagnostics.Type_0_has_no_matching_index_signature_for_type_1, typeToString(objectType), typeToString(indexType));\n      } else {\n        const typeString = indexNode.kind === 10 /* BigIntLiteral */ ? \"bigint\" : typeToString(indexType);\n        error2(indexNode, Diagnostics.Type_0_cannot_be_used_as_an_index_type, typeString);\n      }\n    }\n    if (isTypeAny(indexType)) {\n      return indexType;\n    }\n    return void 0;\n    function errorIfWritingToReadonlyIndex(indexInfo) {\n      if (indexInfo && indexInfo.isReadonly && accessExpression && (isAssignmentTarget(accessExpression) || isDeleteTarget(accessExpression))) {\n        error2(accessExpression, Diagnostics.Index_signature_in_type_0_only_permits_reading, typeToString(objectType));\n      }\n    }\n  }\n  function getIndexNodeForAccessExpression(accessNode) {\n    return accessNode.kind === 213 /* ElementAccessExpression */ ? accessNode.argumentExpression : accessNode.kind === 200 /* IndexedAccessType */ ? accessNode.indexType : accessNode.kind === 168 /* ComputedPropertyName */ ? accessNode.expression : accessNode;\n  }\n  function isPatternLiteralPlaceholderType(type) {\n    if (type.flags & 2097152 /* Intersection */) {\n      let seenPlaceholder = false;\n      for (const t of type.types) {\n        if (t.flags & (2944 /* Literal */ | 98304 /* Nullable */) || isPatternLiteralPlaceholderType(t)) {\n          seenPlaceholder = true;\n        } else if (!(t.flags & 524288 /* Object */)) {\n          return false;\n        }\n      }\n      return seenPlaceholder;\n    }\n    return !!(type.flags & (1 /* Any */ | 4 /* String */ | 8 /* Number */ | 64 /* BigInt */)) || isPatternLiteralType(type);\n  }\n  function isPatternLiteralType(type) {\n    return !!(type.flags & 134217728 /* TemplateLiteral */) && every(type.types, isPatternLiteralPlaceholderType) || !!(type.flags & 268435456 /* StringMapping */) && isPatternLiteralPlaceholderType(type.type);\n  }\n  function isGenericStringLikeType(type) {\n    return !!(type.flags & (134217728 /* TemplateLiteral */ | 268435456 /* StringMapping */)) && !isPatternLiteralType(type);\n  }\n  function isGenericType(type) {\n    return !!getGenericObjectFlags(type);\n  }\n  function isGenericObjectType(type) {\n    return !!(getGenericObjectFlags(type) & 4194304 /* IsGenericObjectType */);\n  }\n  function isGenericIndexType(type) {\n    return !!(getGenericObjectFlags(type) & 8388608 /* IsGenericIndexType */);\n  }\n  function getGenericObjectFlags(type) {\n    if (type.flags & 3145728 /* UnionOrIntersection */) {\n      if (!(type.objectFlags & 2097152 /* IsGenericTypeComputed */)) {\n        type.objectFlags |= 2097152 /* IsGenericTypeComputed */ | reduceLeft(type.types, (flags, t) => flags | getGenericObjectFlags(t), 0);\n      }\n      return type.objectFlags & 12582912 /* IsGenericType */;\n    }\n    if (type.flags & 33554432 /* Substitution */) {\n      if (!(type.objectFlags & 2097152 /* IsGenericTypeComputed */)) {\n        type.objectFlags |= 2097152 /* IsGenericTypeComputed */ | getGenericObjectFlags(type.baseType) | getGenericObjectFlags(type.constraint);\n      }\n      return type.objectFlags & 12582912 /* IsGenericType */;\n    }\n    return (type.flags & 58982400 /* InstantiableNonPrimitive */ || isGenericMappedType(type) || isGenericTupleType(type) ? 4194304 /* IsGenericObjectType */ : 0) | (type.flags & (58982400 /* InstantiableNonPrimitive */ | 4194304 /* Index */) || isGenericStringLikeType(type) ? 8388608 /* IsGenericIndexType */ : 0);\n  }\n  function getSimplifiedType(type, writing) {\n    return type.flags & 8388608 /* IndexedAccess */ ? getSimplifiedIndexedAccessType(type, writing) : type.flags & 16777216 /* Conditional */ ? getSimplifiedConditionalType(type, writing) : type;\n  }\n  function distributeIndexOverObjectType(objectType, indexType, writing) {\n    if (objectType.flags & 1048576 /* Union */ || objectType.flags & 2097152 /* Intersection */ && !shouldDeferIndexType(objectType)) {\n      const types = map(objectType.types, (t) => getSimplifiedType(getIndexedAccessType(t, indexType), writing));\n      return objectType.flags & 2097152 /* Intersection */ || writing ? getIntersectionType(types) : getUnionType(types);\n    }\n  }\n  function distributeObjectOverIndexType(objectType, indexType, writing) {\n    if (indexType.flags & 1048576 /* Union */) {\n      const types = map(indexType.types, (t) => getSimplifiedType(getIndexedAccessType(objectType, t), writing));\n      return writing ? getIntersectionType(types) : getUnionType(types);\n    }\n  }\n  function getSimplifiedIndexedAccessType(type, writing) {\n    const cache = writing ? \"simplifiedForWriting\" : \"simplifiedForReading\";\n    if (type[cache]) {\n      return type[cache] === circularConstraintType ? type : type[cache];\n    }\n    type[cache] = circularConstraintType;\n    const objectType = getSimplifiedType(type.objectType, writing);\n    const indexType = getSimplifiedType(type.indexType, writing);\n    const distributedOverIndex = distributeObjectOverIndexType(objectType, indexType, writing);\n    if (distributedOverIndex) {\n      return type[cache] = distributedOverIndex;\n    }\n    if (!(indexType.flags & 465829888 /* Instantiable */)) {\n      const distributedOverObject = distributeIndexOverObjectType(objectType, indexType, writing);\n      if (distributedOverObject) {\n        return type[cache] = distributedOverObject;\n      }\n    }\n    if (isGenericTupleType(objectType) && indexType.flags & 296 /* NumberLike */) {\n      const elementType = getElementTypeOfSliceOfTupleType(\n        objectType,\n        indexType.flags & 8 /* Number */ ? 0 : objectType.target.fixedLength,\n        /*endSkipCount*/\n        0,\n        writing\n      );\n      if (elementType) {\n        return type[cache] = elementType;\n      }\n    }\n    if (isGenericMappedType(objectType)) {\n      if (getMappedTypeNameTypeKind(objectType) !== 2 /* Remapping */) {\n        return type[cache] = mapType(substituteIndexedMappedType(objectType, type.indexType), (t) => getSimplifiedType(t, writing));\n      }\n    }\n    return type[cache] = type;\n  }\n  function getSimplifiedConditionalType(type, writing) {\n    const checkType = type.checkType;\n    const extendsType = type.extendsType;\n    const trueType2 = getTrueTypeFromConditionalType(type);\n    const falseType2 = getFalseTypeFromConditionalType(type);\n    if (falseType2.flags & 131072 /* Never */ && getActualTypeVariable(trueType2) === getActualTypeVariable(checkType)) {\n      if (checkType.flags & 1 /* Any */ || isTypeAssignableTo(getRestrictiveInstantiation(checkType), getRestrictiveInstantiation(extendsType))) {\n        return getSimplifiedType(trueType2, writing);\n      } else if (isIntersectionEmpty(checkType, extendsType)) {\n        return neverType;\n      }\n    } else if (trueType2.flags & 131072 /* Never */ && getActualTypeVariable(falseType2) === getActualTypeVariable(checkType)) {\n      if (!(checkType.flags & 1 /* Any */) && isTypeAssignableTo(getRestrictiveInstantiation(checkType), getRestrictiveInstantiation(extendsType))) {\n        return neverType;\n      } else if (checkType.flags & 1 /* Any */ || isIntersectionEmpty(checkType, extendsType)) {\n        return getSimplifiedType(falseType2, writing);\n      }\n    }\n    return type;\n  }\n  function isIntersectionEmpty(type1, type2) {\n    return !!(getUnionType([intersectTypes(type1, type2), neverType]).flags & 131072 /* Never */);\n  }\n  function substituteIndexedMappedType(objectType, index) {\n    const mapper = createTypeMapper([getTypeParameterFromMappedType(objectType)], [index]);\n    const templateMapper = combineTypeMappers(objectType.mapper, mapper);\n    const instantiatedTemplateType = instantiateType(getTemplateTypeFromMappedType(objectType.target || objectType), templateMapper);\n    const isOptional = getMappedTypeOptionality(objectType) > 0 || (isGenericType(objectType) ? getCombinedMappedTypeOptionality(getModifiersTypeFromMappedType(objectType)) > 0 : couldAccessOptionalProperty(objectType, index));\n    return addOptionality(\n      instantiatedTemplateType,\n      /*isProperty*/\n      true,\n      isOptional\n    );\n  }\n  function couldAccessOptionalProperty(objectType, indexType) {\n    const indexConstraint = getBaseConstraintOfType(indexType);\n    return !!indexConstraint && some(getPropertiesOfType(objectType), (p) => !!(p.flags & 16777216 /* Optional */) && isTypeAssignableTo(getLiteralTypeFromProperty(p, 8576 /* StringOrNumberLiteralOrUnique */), indexConstraint));\n  }\n  function getIndexedAccessType(objectType, indexType, accessFlags = 0 /* None */, accessNode, aliasSymbol, aliasTypeArguments) {\n    return getIndexedAccessTypeOrUndefined(objectType, indexType, accessFlags, accessNode, aliasSymbol, aliasTypeArguments) || (accessNode ? errorType : unknownType);\n  }\n  function indexTypeLessThan(indexType, limit) {\n    return everyType(indexType, (t) => {\n      if (t.flags & 384 /* StringOrNumberLiteral */) {\n        const propName = getPropertyNameFromType(t);\n        if (isNumericLiteralName(propName)) {\n          const index = +propName;\n          return index >= 0 && index < limit;\n        }\n      }\n      return false;\n    });\n  }\n  function getIndexedAccessTypeOrUndefined(objectType, indexType, accessFlags = 0 /* None */, accessNode, aliasSymbol, aliasTypeArguments) {\n    if (objectType === wildcardType || indexType === wildcardType) {\n      return wildcardType;\n    }\n    objectType = getReducedType(objectType);\n    if (isStringIndexSignatureOnlyType(objectType) && !(indexType.flags & 98304 /* Nullable */) && isTypeAssignableToKind(indexType, 4 /* String */ | 8 /* Number */)) {\n      indexType = stringType;\n    }\n    if (compilerOptions.noUncheckedIndexedAccess && accessFlags & 32 /* ExpressionPosition */) accessFlags |= 1 /* IncludeUndefined */;\n    if (isGenericIndexType(indexType) || (accessNode && accessNode.kind !== 200 /* IndexedAccessType */ ? isGenericTupleType(objectType) && !indexTypeLessThan(indexType, getTotalFixedElementCount(objectType.target)) : isGenericObjectType(objectType) && !(isTupleType(objectType) && indexTypeLessThan(indexType, getTotalFixedElementCount(objectType.target))) || isGenericReducibleType(objectType))) {\n      if (objectType.flags & 3 /* AnyOrUnknown */) {\n        return objectType;\n      }\n      const persistentAccessFlags = accessFlags & 1 /* Persistent */;\n      const id = objectType.id + \",\" + indexType.id + \",\" + persistentAccessFlags + getAliasId(aliasSymbol, aliasTypeArguments);\n      let type = indexedAccessTypes.get(id);\n      if (!type) {\n        indexedAccessTypes.set(id, type = createIndexedAccessType(objectType, indexType, persistentAccessFlags, aliasSymbol, aliasTypeArguments));\n      }\n      return type;\n    }\n    const apparentObjectType = getReducedApparentType(objectType);\n    if (indexType.flags & 1048576 /* Union */ && !(indexType.flags & 16 /* Boolean */)) {\n      const propTypes = [];\n      let wasMissingProp = false;\n      for (const t of indexType.types) {\n        const propType = getPropertyTypeForIndexType(objectType, apparentObjectType, t, indexType, accessNode, accessFlags | (wasMissingProp ? 128 /* SuppressNoImplicitAnyError */ : 0));\n        if (propType) {\n          propTypes.push(propType);\n        } else if (!accessNode) {\n          return void 0;\n        } else {\n          wasMissingProp = true;\n        }\n      }\n      if (wasMissingProp) {\n        return void 0;\n      }\n      return accessFlags & 4 /* Writing */ ? getIntersectionType(propTypes, 0 /* None */, aliasSymbol, aliasTypeArguments) : getUnionType(propTypes, 1 /* Literal */, aliasSymbol, aliasTypeArguments);\n    }\n    return getPropertyTypeForIndexType(objectType, apparentObjectType, indexType, indexType, accessNode, accessFlags | 8 /* CacheSymbol */ | 64 /* ReportDeprecated */);\n  }\n  function getTypeFromIndexedAccessTypeNode(node) {\n    const links = getNodeLinks(node);\n    if (!links.resolvedType) {\n      const objectType = getTypeFromTypeNode(node.objectType);\n      const indexType = getTypeFromTypeNode(node.indexType);\n      const potentialAlias = getAliasSymbolForTypeNode(node);\n      links.resolvedType = getIndexedAccessType(objectType, indexType, 0 /* None */, node, potentialAlias, getTypeArgumentsForAliasSymbol(potentialAlias));\n    }\n    return links.resolvedType;\n  }\n  function getTypeFromMappedTypeNode(node) {\n    const links = getNodeLinks(node);\n    if (!links.resolvedType) {\n      const type = createObjectType(32 /* Mapped */, node.symbol);\n      type.declaration = node;\n      type.aliasSymbol = getAliasSymbolForTypeNode(node);\n      type.aliasTypeArguments = getTypeArgumentsForAliasSymbol(type.aliasSymbol);\n      links.resolvedType = type;\n      getConstraintTypeFromMappedType(type);\n    }\n    return links.resolvedType;\n  }\n  function getActualTypeVariable(type) {\n    if (type.flags & 33554432 /* Substitution */) {\n      return getActualTypeVariable(type.baseType);\n    }\n    if (type.flags & 8388608 /* IndexedAccess */ && (type.objectType.flags & 33554432 /* Substitution */ || type.indexType.flags & 33554432 /* Substitution */)) {\n      return getIndexedAccessType(getActualTypeVariable(type.objectType), getActualTypeVariable(type.indexType));\n    }\n    return type;\n  }\n  function isSimpleTupleType(node) {\n    return isTupleTypeNode(node) && length(node.elements) > 0 && !some(node.elements, (e) => isOptionalTypeNode(e) || isRestTypeNode(e) || isNamedTupleMember(e) && !!(e.questionToken || e.dotDotDotToken));\n  }\n  function isDeferredType(type, checkTuples) {\n    return isGenericType(type) || checkTuples && isTupleType(type) && some(getElementTypes(type), isGenericType);\n  }\n  function getConditionalType(root, mapper, forConstraint, aliasSymbol, aliasTypeArguments) {\n    let result;\n    let extraTypes;\n    let tailCount = 0;\n    while (true) {\n      if (tailCount === 1e3) {\n        error2(currentNode, Diagnostics.Type_instantiation_is_excessively_deep_and_possibly_infinite);\n        return errorType;\n      }\n      const checkType = instantiateType(getActualTypeVariable(root.checkType), mapper);\n      const extendsType = instantiateType(root.extendsType, mapper);\n      if (checkType === errorType || extendsType === errorType) {\n        return errorType;\n      }\n      if (checkType === wildcardType || extendsType === wildcardType) {\n        return wildcardType;\n      }\n      const checkTypeNode = skipTypeParentheses(root.node.checkType);\n      const extendsTypeNode = skipTypeParentheses(root.node.extendsType);\n      const checkTuples = isSimpleTupleType(checkTypeNode) && isSimpleTupleType(extendsTypeNode) && length(checkTypeNode.elements) === length(extendsTypeNode.elements);\n      const checkTypeDeferred = isDeferredType(checkType, checkTuples);\n      let combinedMapper;\n      if (root.inferTypeParameters) {\n        const context = createInferenceContext(\n          root.inferTypeParameters,\n          /*signature*/\n          void 0,\n          0 /* None */\n        );\n        if (mapper) {\n          context.nonFixingMapper = combineTypeMappers(context.nonFixingMapper, mapper);\n        }\n        if (!checkTypeDeferred) {\n          inferTypes(context.inferences, checkType, extendsType, 512 /* NoConstraints */ | 1024 /* AlwaysStrict */);\n        }\n        combinedMapper = mapper ? combineTypeMappers(context.mapper, mapper) : context.mapper;\n      }\n      const inferredExtendsType = combinedMapper ? instantiateType(root.extendsType, combinedMapper) : extendsType;\n      if (!checkTypeDeferred && !isDeferredType(inferredExtendsType, checkTuples)) {\n        if (!(inferredExtendsType.flags & 3 /* AnyOrUnknown */) && (checkType.flags & 1 /* Any */ || !isTypeAssignableTo(getPermissiveInstantiation(checkType), getPermissiveInstantiation(inferredExtendsType)))) {\n          if (checkType.flags & 1 /* Any */ || forConstraint && !(inferredExtendsType.flags & 131072 /* Never */) && someType(getPermissiveInstantiation(inferredExtendsType), (t) => isTypeAssignableTo(t, getPermissiveInstantiation(checkType)))) {\n            (extraTypes || (extraTypes = [])).push(instantiateType(getTypeFromTypeNode(root.node.trueType), combinedMapper || mapper));\n          }\n          const falseType2 = getTypeFromTypeNode(root.node.falseType);\n          if (falseType2.flags & 16777216 /* Conditional */) {\n            const newRoot = falseType2.root;\n            if (newRoot.node.parent === root.node && (!newRoot.isDistributive || newRoot.checkType === root.checkType)) {\n              root = newRoot;\n              continue;\n            }\n            if (canTailRecurse(falseType2, mapper)) {\n              continue;\n            }\n          }\n          result = instantiateType(falseType2, mapper);\n          break;\n        }\n        if (inferredExtendsType.flags & 3 /* AnyOrUnknown */ || isTypeAssignableTo(getRestrictiveInstantiation(checkType), getRestrictiveInstantiation(inferredExtendsType))) {\n          const trueType2 = getTypeFromTypeNode(root.node.trueType);\n          const trueMapper = combinedMapper || mapper;\n          if (canTailRecurse(trueType2, trueMapper)) {\n            continue;\n          }\n          result = instantiateType(trueType2, trueMapper);\n          break;\n        }\n      }\n      result = createType(16777216 /* Conditional */);\n      result.root = root;\n      result.checkType = instantiateType(root.checkType, mapper);\n      result.extendsType = instantiateType(root.extendsType, mapper);\n      result.mapper = mapper;\n      result.combinedMapper = combinedMapper;\n      result.aliasSymbol = aliasSymbol || root.aliasSymbol;\n      result.aliasTypeArguments = aliasSymbol ? aliasTypeArguments : instantiateTypes(root.aliasTypeArguments, mapper);\n      break;\n    }\n    return extraTypes ? getUnionType(append(extraTypes, result)) : result;\n    function canTailRecurse(newType, newMapper) {\n      if (newType.flags & 16777216 /* Conditional */ && newMapper) {\n        const newRoot = newType.root;\n        if (newRoot.outerTypeParameters) {\n          const typeParamMapper = combineTypeMappers(newType.mapper, newMapper);\n          const typeArguments = map(newRoot.outerTypeParameters, (t) => getMappedType(t, typeParamMapper));\n          const newRootMapper = createTypeMapper(newRoot.outerTypeParameters, typeArguments);\n          const newCheckType = newRoot.isDistributive ? getMappedType(newRoot.checkType, newRootMapper) : void 0;\n          if (!newCheckType || newCheckType === newRoot.checkType || !(newCheckType.flags & (1048576 /* Union */ | 131072 /* Never */))) {\n            root = newRoot;\n            mapper = newRootMapper;\n            aliasSymbol = void 0;\n            aliasTypeArguments = void 0;\n            if (newRoot.aliasSymbol) {\n              tailCount++;\n            }\n            return true;\n          }\n        }\n      }\n      return false;\n    }\n  }\n  function getTrueTypeFromConditionalType(type) {\n    return type.resolvedTrueType || (type.resolvedTrueType = instantiateType(getTypeFromTypeNode(type.root.node.trueType), type.mapper));\n  }\n  function getFalseTypeFromConditionalType(type) {\n    return type.resolvedFalseType || (type.resolvedFalseType = instantiateType(getTypeFromTypeNode(type.root.node.falseType), type.mapper));\n  }\n  function getInferredTrueTypeFromConditionalType(type) {\n    return type.resolvedInferredTrueType || (type.resolvedInferredTrueType = type.combinedMapper ? instantiateType(getTypeFromTypeNode(type.root.node.trueType), type.combinedMapper) : getTrueTypeFromConditionalType(type));\n  }\n  function getInferTypeParameters(node) {\n    let result;\n    if (node.locals) {\n      node.locals.forEach((symbol) => {\n        if (symbol.flags & 262144 /* TypeParameter */) {\n          result = append(result, getDeclaredTypeOfSymbol(symbol));\n        }\n      });\n    }\n    return result;\n  }\n  function isDistributionDependent(root) {\n    return root.isDistributive && (isTypeParameterPossiblyReferenced(root.checkType, root.node.trueType) || isTypeParameterPossiblyReferenced(root.checkType, root.node.falseType));\n  }\n  function getTypeFromConditionalTypeNode(node) {\n    const links = getNodeLinks(node);\n    if (!links.resolvedType) {\n      const checkType = getTypeFromTypeNode(node.checkType);\n      const aliasSymbol = getAliasSymbolForTypeNode(node);\n      const aliasTypeArguments = getTypeArgumentsForAliasSymbol(aliasSymbol);\n      const allOuterTypeParameters = getOuterTypeParameters(\n        node,\n        /*includeThisTypes*/\n        true\n      );\n      const outerTypeParameters = aliasTypeArguments ? allOuterTypeParameters : filter(allOuterTypeParameters, (tp) => isTypeParameterPossiblyReferenced(tp, node));\n      const root = {\n        node,\n        checkType,\n        extendsType: getTypeFromTypeNode(node.extendsType),\n        isDistributive: !!(checkType.flags & 262144 /* TypeParameter */),\n        inferTypeParameters: getInferTypeParameters(node),\n        outerTypeParameters,\n        instantiations: void 0,\n        aliasSymbol,\n        aliasTypeArguments\n      };\n      links.resolvedType = getConditionalType(\n        root,\n        /*mapper*/\n        void 0,\n        /*forConstraint*/\n        false\n      );\n      if (outerTypeParameters) {\n        root.instantiations = /* @__PURE__ */ new Map();\n        root.instantiations.set(getTypeListId(outerTypeParameters), links.resolvedType);\n      }\n    }\n    return links.resolvedType;\n  }\n  function getTypeFromInferTypeNode(node) {\n    const links = getNodeLinks(node);\n    if (!links.resolvedType) {\n      links.resolvedType = getDeclaredTypeOfTypeParameter(getSymbolOfDeclaration(node.typeParameter));\n    }\n    return links.resolvedType;\n  }\n  function getIdentifierChain(node) {\n    if (isIdentifier(node)) {\n      return [node];\n    } else {\n      return append(getIdentifierChain(node.left), node.right);\n    }\n  }\n  function getTypeFromImportTypeNode(node) {\n    var _a;\n    const links = getNodeLinks(node);\n    if (!links.resolvedType) {\n      if (!isLiteralImportTypeNode(node)) {\n        error2(node.argument, Diagnostics.String_literal_expected);\n        links.resolvedSymbol = unknownSymbol;\n        return links.resolvedType = errorType;\n      }\n      const targetMeaning = node.isTypeOf ? 111551 /* Value */ : node.flags & 16777216 /* JSDoc */ ? 111551 /* Value */ | 788968 /* Type */ : 788968 /* Type */;\n      const innerModuleSymbol = resolveExternalModuleName(node, node.argument.literal);\n      if (!innerModuleSymbol) {\n        links.resolvedSymbol = unknownSymbol;\n        return links.resolvedType = errorType;\n      }\n      const isExportEquals = !!((_a = innerModuleSymbol.exports) == null ? void 0 : _a.get(\"export=\" /* ExportEquals */));\n      const moduleSymbol = resolveExternalModuleSymbol(\n        innerModuleSymbol,\n        /*dontResolveAlias*/\n        false\n      );\n      if (!nodeIsMissing(node.qualifier)) {\n        const nameStack = getIdentifierChain(node.qualifier);\n        let currentNamespace = moduleSymbol;\n        let current;\n        while (current = nameStack.shift()) {\n          const meaning = nameStack.length ? 1920 /* Namespace */ : targetMeaning;\n          const mergedResolvedSymbol = getMergedSymbol(resolveSymbol(currentNamespace));\n          const symbolFromVariable = node.isTypeOf || isInJSFile(node) && isExportEquals ? getPropertyOfType(\n            getTypeOfSymbol(mergedResolvedSymbol),\n            current.escapedText,\n            /*skipObjectFunctionPropertyAugment*/\n            false,\n            /*includeTypeOnlyMembers*/\n            true\n          ) : void 0;\n          const symbolFromModule = node.isTypeOf ? void 0 : getSymbol2(getExportsOfSymbol(mergedResolvedSymbol), current.escapedText, meaning);\n          const next = symbolFromModule ?? symbolFromVariable;\n          if (!next) {\n            error2(current, Diagnostics.Namespace_0_has_no_exported_member_1, getFullyQualifiedName(currentNamespace), declarationNameToString(current));\n            return links.resolvedType = errorType;\n          }\n          getNodeLinks(current).resolvedSymbol = next;\n          getNodeLinks(current.parent).resolvedSymbol = next;\n          currentNamespace = next;\n        }\n        links.resolvedType = resolveImportSymbolType(node, links, currentNamespace, targetMeaning);\n      } else {\n        if (moduleSymbol.flags & targetMeaning) {\n          links.resolvedType = resolveImportSymbolType(node, links, moduleSymbol, targetMeaning);\n        } else {\n          const errorMessage = targetMeaning === 111551 /* Value */ ? Diagnostics.Module_0_does_not_refer_to_a_value_but_is_used_as_a_value_here : Diagnostics.Module_0_does_not_refer_to_a_type_but_is_used_as_a_type_here_Did_you_mean_typeof_import_0;\n          error2(node, errorMessage, node.argument.literal.text);\n          links.resolvedSymbol = unknownSymbol;\n          links.resolvedType = errorType;\n        }\n      }\n    }\n    return links.resolvedType;\n  }\n  function resolveImportSymbolType(node, links, symbol, meaning) {\n    const resolvedSymbol = resolveSymbol(symbol);\n    links.resolvedSymbol = resolvedSymbol;\n    if (meaning === 111551 /* Value */) {\n      return getInstantiationExpressionType(getTypeOfSymbol(symbol), node);\n    } else {\n      return getTypeReferenceType(node, resolvedSymbol);\n    }\n  }\n  function getTypeFromTypeLiteralOrFunctionOrConstructorTypeNode(node) {\n    const links = getNodeLinks(node);\n    if (!links.resolvedType) {\n      const aliasSymbol = getAliasSymbolForTypeNode(node);\n      if (!node.symbol || getMembersOfSymbol(node.symbol).size === 0 && !aliasSymbol) {\n        links.resolvedType = emptyTypeLiteralType;\n      } else {\n        let type = createObjectType(16 /* Anonymous */, node.symbol);\n        type.aliasSymbol = aliasSymbol;\n        type.aliasTypeArguments = getTypeArgumentsForAliasSymbol(aliasSymbol);\n        if (isJSDocTypeLiteral(node) && node.isArrayType) {\n          type = createArrayType(type);\n        }\n        links.resolvedType = type;\n      }\n    }\n    return links.resolvedType;\n  }\n  function getAliasSymbolForTypeNode(node) {\n    let host2 = node.parent;\n    while (isParenthesizedTypeNode(host2) || isJSDocTypeExpression(host2) || isTypeOperatorNode(host2) && host2.operator === 148 /* ReadonlyKeyword */) {\n      host2 = host2.parent;\n    }\n    return isTypeAlias(host2) ? getSymbolOfDeclaration(host2) : void 0;\n  }\n  function getTypeArgumentsForAliasSymbol(symbol) {\n    return symbol ? getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(symbol) : void 0;\n  }\n  function isNonGenericObjectType(type) {\n    return !!(type.flags & 524288 /* Object */) && !isGenericMappedType(type);\n  }\n  function isEmptyObjectTypeOrSpreadsIntoEmptyObject(type) {\n    return isEmptyObjectType(type) || !!(type.flags & (65536 /* Null */ | 32768 /* Undefined */ | 528 /* BooleanLike */ | 296 /* NumberLike */ | 2112 /* BigIntLike */ | 402653316 /* StringLike */ | 1056 /* EnumLike */ | 67108864 /* NonPrimitive */ | 4194304 /* Index */));\n  }\n  function tryMergeUnionOfObjectTypeAndEmptyObject(type, readonly) {\n    if (!(type.flags & 1048576 /* Union */)) {\n      return type;\n    }\n    if (every(type.types, isEmptyObjectTypeOrSpreadsIntoEmptyObject)) {\n      return find(type.types, isEmptyObjectType) || emptyObjectType;\n    }\n    const firstType = find(type.types, (t) => !isEmptyObjectTypeOrSpreadsIntoEmptyObject(t));\n    if (!firstType) {\n      return type;\n    }\n    const secondType = find(type.types, (t) => t !== firstType && !isEmptyObjectTypeOrSpreadsIntoEmptyObject(t));\n    if (secondType) {\n      return type;\n    }\n    return getAnonymousPartialType(firstType);\n    function getAnonymousPartialType(type2) {\n      const members = createSymbolTable();\n      for (const prop of getPropertiesOfType(type2)) {\n        if (getDeclarationModifierFlagsFromSymbol(prop) & (2 /* Private */ | 4 /* Protected */)) {\n        } else if (isSpreadableProperty(prop)) {\n          const isSetonlyAccessor = prop.flags & 65536 /* SetAccessor */ && !(prop.flags & 32768 /* GetAccessor */);\n          const flags = 4 /* Property */ | 16777216 /* Optional */;\n          const result = createSymbol(flags, prop.escapedName, getIsLateCheckFlag(prop) | (readonly ? 8 /* Readonly */ : 0));\n          result.links.type = isSetonlyAccessor ? undefinedType : addOptionality(\n            getTypeOfSymbol(prop),\n            /*isProperty*/\n            true\n          );\n          result.declarations = prop.declarations;\n          result.links.nameType = getSymbolLinks(prop).nameType;\n          result.links.syntheticOrigin = prop;\n          members.set(prop.escapedName, result);\n        }\n      }\n      const spread = createAnonymousType(type2.symbol, members, emptyArray, emptyArray, getIndexInfosOfType(type2));\n      spread.objectFlags |= 128 /* ObjectLiteral */ | 131072 /* ContainsObjectOrArrayLiteral */;\n      return spread;\n    }\n  }\n  function getSpreadType(left, right, symbol, objectFlags, readonly) {\n    if (left.flags & 1 /* Any */ || right.flags & 1 /* Any */) {\n      return anyType;\n    }\n    if (left.flags & 2 /* Unknown */ || right.flags & 2 /* Unknown */) {\n      return unknownType;\n    }\n    if (left.flags & 131072 /* Never */) {\n      return right;\n    }\n    if (right.flags & 131072 /* Never */) {\n      return left;\n    }\n    left = tryMergeUnionOfObjectTypeAndEmptyObject(left, readonly);\n    if (left.flags & 1048576 /* Union */) {\n      return checkCrossProductUnion([left, right]) ? mapType(left, (t) => getSpreadType(t, right, symbol, objectFlags, readonly)) : errorType;\n    }\n    right = tryMergeUnionOfObjectTypeAndEmptyObject(right, readonly);\n    if (right.flags & 1048576 /* Union */) {\n      return checkCrossProductUnion([left, right]) ? mapType(right, (t) => getSpreadType(left, t, symbol, objectFlags, readonly)) : errorType;\n    }\n    if (right.flags & (528 /* BooleanLike */ | 296 /* NumberLike */ | 2112 /* BigIntLike */ | 402653316 /* StringLike */ | 1056 /* EnumLike */ | 67108864 /* NonPrimitive */ | 4194304 /* Index */)) {\n      return left;\n    }\n    if (isGenericObjectType(left) || isGenericObjectType(right)) {\n      if (isEmptyObjectType(left)) {\n        return right;\n      }\n      if (left.flags & 2097152 /* Intersection */) {\n        const types = left.types;\n        const lastLeft = types[types.length - 1];\n        if (isNonGenericObjectType(lastLeft) && isNonGenericObjectType(right)) {\n          return getIntersectionType(concatenate(types.slice(0, types.length - 1), [getSpreadType(lastLeft, right, symbol, objectFlags, readonly)]));\n        }\n      }\n      return getIntersectionType([left, right]);\n    }\n    const members = createSymbolTable();\n    const skippedPrivateMembers = /* @__PURE__ */ new Set();\n    const indexInfos = left === emptyObjectType ? getIndexInfosOfType(right) : getUnionIndexInfos([left, right]);\n    for (const rightProp of getPropertiesOfType(right)) {\n      if (getDeclarationModifierFlagsFromSymbol(rightProp) & (2 /* Private */ | 4 /* Protected */)) {\n        skippedPrivateMembers.add(rightProp.escapedName);\n      } else if (isSpreadableProperty(rightProp)) {\n        members.set(rightProp.escapedName, getSpreadSymbol(rightProp, readonly));\n      }\n    }\n    for (const leftProp of getPropertiesOfType(left)) {\n      if (skippedPrivateMembers.has(leftProp.escapedName) || !isSpreadableProperty(leftProp)) {\n        continue;\n      }\n      if (members.has(leftProp.escapedName)) {\n        const rightProp = members.get(leftProp.escapedName);\n        const rightType = getTypeOfSymbol(rightProp);\n        if (rightProp.flags & 16777216 /* Optional */) {\n          const declarations = concatenate(leftProp.declarations, rightProp.declarations);\n          const flags = 4 /* Property */ | leftProp.flags & 16777216 /* Optional */;\n          const result = createSymbol(flags, leftProp.escapedName);\n          const leftType = getTypeOfSymbol(leftProp);\n          const leftTypeWithoutUndefined = removeMissingOrUndefinedType(leftType);\n          const rightTypeWithoutUndefined = removeMissingOrUndefinedType(rightType);\n          result.links.type = leftTypeWithoutUndefined === rightTypeWithoutUndefined ? leftType : getUnionType([leftType, rightTypeWithoutUndefined], 2 /* Subtype */);\n          result.links.leftSpread = leftProp;\n          result.links.rightSpread = rightProp;\n          result.declarations = declarations;\n          result.links.nameType = getSymbolLinks(leftProp).nameType;\n          members.set(leftProp.escapedName, result);\n        }\n      } else {\n        members.set(leftProp.escapedName, getSpreadSymbol(leftProp, readonly));\n      }\n    }\n    const spread = createAnonymousType(symbol, members, emptyArray, emptyArray, sameMap(indexInfos, (info) => getIndexInfoWithReadonly(info, readonly)));\n    spread.objectFlags |= 128 /* ObjectLiteral */ | 131072 /* ContainsObjectOrArrayLiteral */ | 2097152 /* ContainsSpread */ | objectFlags;\n    return spread;\n  }\n  function isSpreadableProperty(prop) {\n    var _a;\n    return !some(prop.declarations, isPrivateIdentifierClassElementDeclaration) && (!(prop.flags & (8192 /* Method */ | 32768 /* GetAccessor */ | 65536 /* SetAccessor */)) || !((_a = prop.declarations) == null ? void 0 : _a.some((decl) => isClassLike(decl.parent))));\n  }\n  function getSpreadSymbol(prop, readonly) {\n    const isSetonlyAccessor = prop.flags & 65536 /* SetAccessor */ && !(prop.flags & 32768 /* GetAccessor */);\n    if (!isSetonlyAccessor && readonly === isReadonlySymbol(prop)) {\n      return prop;\n    }\n    const flags = 4 /* Property */ | prop.flags & 16777216 /* Optional */;\n    const result = createSymbol(flags, prop.escapedName, getIsLateCheckFlag(prop) | (readonly ? 8 /* Readonly */ : 0));\n    result.links.type = isSetonlyAccessor ? undefinedType : getTypeOfSymbol(prop);\n    result.declarations = prop.declarations;\n    result.links.nameType = getSymbolLinks(prop).nameType;\n    result.links.syntheticOrigin = prop;\n    return result;\n  }\n  function getIndexInfoWithReadonly(info, readonly) {\n    return info.isReadonly !== readonly ? createIndexInfo(info.keyType, info.type, readonly, info.declaration, info.components) : info;\n  }\n  function createLiteralType(flags, value, symbol, regularType) {\n    const type = createTypeWithSymbol(flags, symbol);\n    type.value = value;\n    type.regularType = regularType || type;\n    return type;\n  }\n  function getFreshTypeOfLiteralType(type) {\n    if (type.flags & 2976 /* Freshable */) {\n      if (!type.freshType) {\n        const freshType = createLiteralType(type.flags, type.value, type.symbol, type);\n        freshType.freshType = freshType;\n        type.freshType = freshType;\n      }\n      return type.freshType;\n    }\n    return type;\n  }\n  function getRegularTypeOfLiteralType(type) {\n    return type.flags & 2976 /* Freshable */ ? type.regularType : type.flags & 1048576 /* Union */ ? type.regularType || (type.regularType = mapType(type, getRegularTypeOfLiteralType)) : type;\n  }\n  function isFreshLiteralType(type) {\n    return !!(type.flags & 2976 /* Freshable */) && type.freshType === type;\n  }\n  function getStringLiteralType(value) {\n    let type;\n    return stringLiteralTypes.get(value) || (stringLiteralTypes.set(value, type = createLiteralType(128 /* StringLiteral */, value)), type);\n  }\n  function getNumberLiteralType(value) {\n    let type;\n    return numberLiteralTypes.get(value) || (numberLiteralTypes.set(value, type = createLiteralType(256 /* NumberLiteral */, value)), type);\n  }\n  function getBigIntLiteralType(value) {\n    let type;\n    const key = pseudoBigIntToString(value);\n    return bigIntLiteralTypes.get(key) || (bigIntLiteralTypes.set(key, type = createLiteralType(2048 /* BigIntLiteral */, value)), type);\n  }\n  function getEnumLiteralType(value, enumId, symbol) {\n    let type;\n    const key = `${enumId}${typeof value === \"string\" ? \"@\" : \"#\"}${value}`;\n    const flags = 1024 /* EnumLiteral */ | (typeof value === \"string\" ? 128 /* StringLiteral */ : 256 /* NumberLiteral */);\n    return enumLiteralTypes.get(key) || (enumLiteralTypes.set(key, type = createLiteralType(flags, value, symbol)), type);\n  }\n  function getTypeFromLiteralTypeNode(node) {\n    if (node.literal.kind === 106 /* NullKeyword */) {\n      return nullType;\n    }\n    const links = getNodeLinks(node);\n    if (!links.resolvedType) {\n      links.resolvedType = getRegularTypeOfLiteralType(checkExpression(node.literal));\n    }\n    return links.resolvedType;\n  }\n  function createUniqueESSymbolType(symbol) {\n    const type = createTypeWithSymbol(8192 /* UniqueESSymbol */, symbol);\n    type.escapedName = `__@${type.symbol.escapedName}@${getSymbolId(type.symbol)}`;\n    return type;\n  }\n  function getESSymbolLikeTypeForNode(node) {\n    if (isInJSFile(node) && isJSDocTypeExpression(node)) {\n      const host2 = getJSDocHost(node);\n      if (host2) {\n        node = getSingleVariableOfVariableStatement(host2) || host2;\n      }\n    }\n    if (isValidESSymbolDeclaration(node)) {\n      const symbol = isCommonJsExportPropertyAssignment(node) ? getSymbolOfNode(node.left) : getSymbolOfNode(node);\n      if (symbol) {\n        const links = getSymbolLinks(symbol);\n        return links.uniqueESSymbolType || (links.uniqueESSymbolType = createUniqueESSymbolType(symbol));\n      }\n    }\n    return esSymbolType;\n  }\n  function getThisType(node) {\n    const container = getThisContainer(\n      node,\n      /*includeArrowFunctions*/\n      false,\n      /*includeClassComputedPropertyName*/\n      false\n    );\n    const parent2 = container && container.parent;\n    if (parent2 && (isClassLike(parent2) || parent2.kind === 265 /* InterfaceDeclaration */)) {\n      if (!isStatic(container) && (!isConstructorDeclaration(container) || isNodeDescendantOf(node, container.body))) {\n        return getDeclaredTypeOfClassOrInterface(getSymbolOfDeclaration(parent2)).thisType;\n      }\n    }\n    if (parent2 && isObjectLiteralExpression(parent2) && isBinaryExpression(parent2.parent) && getAssignmentDeclarationKind(parent2.parent) === 6 /* Prototype */) {\n      return getDeclaredTypeOfClassOrInterface(getSymbolOfNode(parent2.parent.left).parent).thisType;\n    }\n    const host2 = node.flags & 16777216 /* JSDoc */ ? getHostSignatureFromJSDoc(node) : void 0;\n    if (host2 && isFunctionExpression(host2) && isBinaryExpression(host2.parent) && getAssignmentDeclarationKind(host2.parent) === 3 /* PrototypeProperty */) {\n      return getDeclaredTypeOfClassOrInterface(getSymbolOfNode(host2.parent.left).parent).thisType;\n    }\n    if (isJSConstructor(container) && isNodeDescendantOf(node, container.body)) {\n      return getDeclaredTypeOfClassOrInterface(getSymbolOfDeclaration(container)).thisType;\n    }\n    error2(node, Diagnostics.A_this_type_is_available_only_in_a_non_static_member_of_a_class_or_interface);\n    return errorType;\n  }\n  function getTypeFromThisTypeNode(node) {\n    const links = getNodeLinks(node);\n    if (!links.resolvedType) {\n      links.resolvedType = getThisType(node);\n    }\n    return links.resolvedType;\n  }\n  function getTypeFromRestTypeNode(node) {\n    return getTypeFromTypeNode(getArrayElementTypeNode(node.type) || node.type);\n  }\n  function getArrayElementTypeNode(node) {\n    switch (node.kind) {\n      case 197 /* ParenthesizedType */:\n        return getArrayElementTypeNode(node.type);\n      case 190 /* TupleType */:\n        if (node.elements.length === 1) {\n          node = node.elements[0];\n          if (node.kind === 192 /* RestType */ || node.kind === 203 /* NamedTupleMember */ && node.dotDotDotToken) {\n            return getArrayElementTypeNode(node.type);\n          }\n        }\n        break;\n      case 189 /* ArrayType */:\n        return node.elementType;\n    }\n    return void 0;\n  }\n  function getTypeFromNamedTupleTypeNode(node) {\n    const links = getNodeLinks(node);\n    return links.resolvedType || (links.resolvedType = node.dotDotDotToken ? getTypeFromRestTypeNode(node) : addOptionality(\n      getTypeFromTypeNode(node.type),\n      /*isProperty*/\n      true,\n      !!node.questionToken\n    ));\n  }\n  function getTypeFromTypeNode(node) {\n    return getConditionalFlowTypeOfType(getTypeFromTypeNodeWorker(node), node);\n  }\n  function getTypeFromTypeNodeWorker(node) {\n    switch (node.kind) {\n      case 133 /* AnyKeyword */:\n      case 313 /* JSDocAllType */:\n      case 314 /* JSDocUnknownType */:\n        return anyType;\n      case 159 /* UnknownKeyword */:\n        return unknownType;\n      case 154 /* StringKeyword */:\n        return stringType;\n      case 150 /* NumberKeyword */:\n        return numberType;\n      case 163 /* BigIntKeyword */:\n        return bigintType;\n      case 136 /* BooleanKeyword */:\n        return booleanType;\n      case 155 /* SymbolKeyword */:\n        return esSymbolType;\n      case 116 /* VoidKeyword */:\n        return voidType;\n      case 157 /* UndefinedKeyword */:\n        return undefinedType;\n      case 106 /* NullKeyword */:\n        return nullType;\n      case 146 /* NeverKeyword */:\n        return neverType;\n      case 151 /* ObjectKeyword */:\n        return node.flags & 524288 /* JavaScriptFile */ && !noImplicitAny ? anyType : nonPrimitiveType;\n      case 141 /* IntrinsicKeyword */:\n        return intrinsicMarkerType;\n      case 198 /* ThisType */:\n      case 110 /* ThisKeyword */:\n        return getTypeFromThisTypeNode(node);\n      case 202 /* LiteralType */:\n        return getTypeFromLiteralTypeNode(node);\n      case 184 /* TypeReference */:\n        return getTypeFromTypeReference(node);\n      case 183 /* TypePredicate */:\n        return node.assertsModifier ? voidType : booleanType;\n      case 234 /* ExpressionWithTypeArguments */:\n        return getTypeFromTypeReference(node);\n      case 187 /* TypeQuery */:\n        return getTypeFromTypeQueryNode(node);\n      case 189 /* ArrayType */:\n      case 190 /* TupleType */:\n        return getTypeFromArrayOrTupleTypeNode(node);\n      case 191 /* OptionalType */:\n        return getTypeFromOptionalTypeNode(node);\n      case 193 /* UnionType */:\n        return getTypeFromUnionTypeNode(node);\n      case 194 /* IntersectionType */:\n        return getTypeFromIntersectionTypeNode(node);\n      case 315 /* JSDocNullableType */:\n        return getTypeFromJSDocNullableTypeNode(node);\n      case 317 /* JSDocOptionalType */:\n        return addOptionality(getTypeFromTypeNode(node.type));\n      case 203 /* NamedTupleMember */:\n        return getTypeFromNamedTupleTypeNode(node);\n      case 197 /* ParenthesizedType */:\n      case 316 /* JSDocNonNullableType */:\n      case 310 /* JSDocTypeExpression */:\n        return getTypeFromTypeNode(node.type);\n      case 192 /* RestType */:\n        return getTypeFromRestTypeNode(node);\n      case 319 /* JSDocVariadicType */:\n        return getTypeFromJSDocVariadicType(node);\n      case 185 /* FunctionType */:\n      case 186 /* ConstructorType */:\n      case 188 /* TypeLiteral */:\n      case 323 /* JSDocTypeLiteral */:\n      case 318 /* JSDocFunctionType */:\n      case 324 /* JSDocSignature */:\n        return getTypeFromTypeLiteralOrFunctionOrConstructorTypeNode(node);\n      case 199 /* TypeOperator */:\n        return getTypeFromTypeOperatorNode(node);\n      case 200 /* IndexedAccessType */:\n        return getTypeFromIndexedAccessTypeNode(node);\n      case 201 /* MappedType */:\n        return getTypeFromMappedTypeNode(node);\n      case 195 /* ConditionalType */:\n        return getTypeFromConditionalTypeNode(node);\n      case 196 /* InferType */:\n        return getTypeFromInferTypeNode(node);\n      case 204 /* TemplateLiteralType */:\n        return getTypeFromTemplateTypeNode(node);\n      case 206 /* ImportType */:\n        return getTypeFromImportTypeNode(node);\n      // This function assumes that an identifier, qualified name, or property access expression is a type expression\n      // Callers should first ensure this by calling `isPartOfTypeNode`\n      // TODO(rbuckton): These aren't valid TypeNodes, but we treat them as such because of `isPartOfTypeNode`, which returns `true` for things that aren't `TypeNode`s.\n      case 80 /* Identifier */:\n      case 167 /* QualifiedName */:\n      case 212 /* PropertyAccessExpression */:\n        const symbol = getSymbolAtLocation(node);\n        return symbol ? getDeclaredTypeOfSymbol(symbol) : errorType;\n      default:\n        return errorType;\n    }\n  }\n  function instantiateList(items, mapper, instantiator) {\n    if (items && items.length) {\n      for (let i = 0; i < items.length; i++) {\n        const item = items[i];\n        const mapped = instantiator(item, mapper);\n        if (item !== mapped) {\n          const result = i === 0 ? [] : items.slice(0, i);\n          result.push(mapped);\n          for (i++; i < items.length; i++) {\n            result.push(instantiator(items[i], mapper));\n          }\n          return result;\n        }\n      }\n    }\n    return items;\n  }\n  function instantiateTypes(types, mapper) {\n    return instantiateList(types, mapper, instantiateType);\n  }\n  function instantiateSignatures(signatures, mapper) {\n    return instantiateList(signatures, mapper, instantiateSignature);\n  }\n  function instantiateIndexInfos(indexInfos, mapper) {\n    return instantiateList(indexInfos, mapper, instantiateIndexInfo);\n  }\n  function createTypeMapper(sources, targets) {\n    return sources.length === 1 ? makeUnaryTypeMapper(sources[0], targets ? targets[0] : anyType) : makeArrayTypeMapper(sources, targets);\n  }\n  function getMappedType(type, mapper) {\n    switch (mapper.kind) {\n      case 0 /* Simple */:\n        return type === mapper.source ? mapper.target : type;\n      case 1 /* Array */: {\n        const sources = mapper.sources;\n        const targets = mapper.targets;\n        for (let i = 0; i < sources.length; i++) {\n          if (type === sources[i]) {\n            return targets ? targets[i] : anyType;\n          }\n        }\n        return type;\n      }\n      case 2 /* Deferred */: {\n        const sources = mapper.sources;\n        const targets = mapper.targets;\n        for (let i = 0; i < sources.length; i++) {\n          if (type === sources[i]) {\n            return targets[i]();\n          }\n        }\n        return type;\n      }\n      case 3 /* Function */:\n        return mapper.func(type);\n      case 4 /* Composite */:\n      case 5 /* Merged */:\n        const t1 = getMappedType(type, mapper.mapper1);\n        return t1 !== type && mapper.kind === 4 /* Composite */ ? instantiateType(t1, mapper.mapper2) : getMappedType(t1, mapper.mapper2);\n    }\n  }\n  function makeUnaryTypeMapper(source, target) {\n    return Debug.attachDebugPrototypeIfDebug({ kind: 0 /* Simple */, source, target });\n  }\n  function makeArrayTypeMapper(sources, targets) {\n    return Debug.attachDebugPrototypeIfDebug({ kind: 1 /* Array */, sources, targets });\n  }\n  function makeFunctionTypeMapper(func, debugInfo) {\n    return Debug.attachDebugPrototypeIfDebug({ kind: 3 /* Function */, func, debugInfo: Debug.isDebugging ? debugInfo : void 0 });\n  }\n  function makeDeferredTypeMapper(sources, targets) {\n    return Debug.attachDebugPrototypeIfDebug({ kind: 2 /* Deferred */, sources, targets });\n  }\n  function makeCompositeTypeMapper(kind, mapper1, mapper2) {\n    return Debug.attachDebugPrototypeIfDebug({ kind, mapper1, mapper2 });\n  }\n  function createTypeEraser(sources) {\n    return createTypeMapper(\n      sources,\n      /*targets*/\n      void 0\n    );\n  }\n  function createBackreferenceMapper(context, index) {\n    const forwardInferences = context.inferences.slice(index);\n    return createTypeMapper(map(forwardInferences, (i) => i.typeParameter), map(forwardInferences, () => unknownType));\n  }\n  function createOuterReturnMapper(context) {\n    return context.outerReturnMapper ?? (context.outerReturnMapper = mergeTypeMappers(context.returnMapper, cloneInferenceContext(context).mapper));\n  }\n  function combineTypeMappers(mapper1, mapper2) {\n    return mapper1 ? makeCompositeTypeMapper(4 /* Composite */, mapper1, mapper2) : mapper2;\n  }\n  function mergeTypeMappers(mapper1, mapper2) {\n    return mapper1 ? makeCompositeTypeMapper(5 /* Merged */, mapper1, mapper2) : mapper2;\n  }\n  function prependTypeMapping(source, target, mapper) {\n    return !mapper ? makeUnaryTypeMapper(source, target) : makeCompositeTypeMapper(5 /* Merged */, makeUnaryTypeMapper(source, target), mapper);\n  }\n  function appendTypeMapping(mapper, source, target) {\n    return !mapper ? makeUnaryTypeMapper(source, target) : makeCompositeTypeMapper(5 /* Merged */, mapper, makeUnaryTypeMapper(source, target));\n  }\n  function getRestrictiveTypeParameter(tp) {\n    return !tp.constraint && !getConstraintDeclaration(tp) || tp.constraint === noConstraintType ? tp : tp.restrictiveInstantiation || (tp.restrictiveInstantiation = createTypeParameter(tp.symbol), tp.restrictiveInstantiation.constraint = noConstraintType, tp.restrictiveInstantiation);\n  }\n  function cloneTypeParameter(typeParameter) {\n    const result = createTypeParameter(typeParameter.symbol);\n    result.target = typeParameter;\n    return result;\n  }\n  function instantiateTypePredicate(predicate, mapper) {\n    return createTypePredicate(predicate.kind, predicate.parameterName, predicate.parameterIndex, instantiateType(predicate.type, mapper));\n  }\n  function instantiateSignature(signature, mapper, eraseTypeParameters) {\n    let freshTypeParameters;\n    if (signature.typeParameters && !eraseTypeParameters) {\n      freshTypeParameters = map(signature.typeParameters, cloneTypeParameter);\n      mapper = combineTypeMappers(createTypeMapper(signature.typeParameters, freshTypeParameters), mapper);\n      for (const tp of freshTypeParameters) {\n        tp.mapper = mapper;\n      }\n    }\n    const result = createSignature(\n      signature.declaration,\n      freshTypeParameters,\n      signature.thisParameter && instantiateSymbol(signature.thisParameter, mapper),\n      instantiateList(signature.parameters, mapper, instantiateSymbol),\n      /*resolvedReturnType*/\n      void 0,\n      /*resolvedTypePredicate*/\n      void 0,\n      signature.minArgumentCount,\n      signature.flags & 167 /* PropagatingFlags */\n    );\n    result.target = signature;\n    result.mapper = mapper;\n    return result;\n  }\n  function instantiateSymbol(symbol, mapper) {\n    const links = getSymbolLinks(symbol);\n    if (links.type && !couldContainTypeVariables(links.type)) {\n      if (!(symbol.flags & 65536 /* SetAccessor */)) {\n        return symbol;\n      }\n      if (links.writeType && !couldContainTypeVariables(links.writeType)) {\n        return symbol;\n      }\n    }\n    if (getCheckFlags(symbol) & 1 /* Instantiated */) {\n      symbol = links.target;\n      mapper = combineTypeMappers(links.mapper, mapper);\n    }\n    const result = createSymbol(symbol.flags, symbol.escapedName, 1 /* Instantiated */ | getCheckFlags(symbol) & (8 /* Readonly */ | 4096 /* Late */ | 16384 /* OptionalParameter */ | 32768 /* RestParameter */));\n    result.declarations = symbol.declarations;\n    result.parent = symbol.parent;\n    result.links.target = symbol;\n    result.links.mapper = mapper;\n    if (symbol.valueDeclaration) {\n      result.valueDeclaration = symbol.valueDeclaration;\n    }\n    if (links.nameType) {\n      result.links.nameType = links.nameType;\n    }\n    return result;\n  }\n  function getObjectTypeInstantiation(type, mapper, aliasSymbol, aliasTypeArguments) {\n    const declaration = type.objectFlags & 4 /* Reference */ ? type.node : type.objectFlags & 8388608 /* InstantiationExpressionType */ ? type.node : type.symbol.declarations[0];\n    const links = getNodeLinks(declaration);\n    const target = type.objectFlags & 4 /* Reference */ ? links.resolvedType : type.objectFlags & 64 /* Instantiated */ ? type.target : type;\n    let typeParameters = links.outerTypeParameters;\n    if (!typeParameters) {\n      let outerTypeParameters = getOuterTypeParameters(\n        declaration,\n        /*includeThisTypes*/\n        true\n      );\n      if (isJSConstructor(declaration)) {\n        const templateTagParameters = getTypeParametersFromDeclaration(declaration);\n        outerTypeParameters = addRange(outerTypeParameters, templateTagParameters);\n      }\n      typeParameters = outerTypeParameters || emptyArray;\n      const allDeclarations = type.objectFlags & (4 /* Reference */ | 8388608 /* InstantiationExpressionType */) ? [declaration] : type.symbol.declarations;\n      typeParameters = (target.objectFlags & (4 /* Reference */ | 8388608 /* InstantiationExpressionType */) || target.symbol.flags & 8192 /* Method */ || target.symbol.flags & 2048 /* TypeLiteral */) && !target.aliasTypeArguments ? filter(typeParameters, (tp) => some(allDeclarations, (d) => isTypeParameterPossiblyReferenced(tp, d))) : typeParameters;\n      links.outerTypeParameters = typeParameters;\n    }\n    if (typeParameters.length) {\n      const combinedMapper = combineTypeMappers(type.mapper, mapper);\n      const typeArguments = map(typeParameters, (t) => getMappedType(t, combinedMapper));\n      const newAliasSymbol = aliasSymbol || type.aliasSymbol;\n      const newAliasTypeArguments = aliasSymbol ? aliasTypeArguments : instantiateTypes(type.aliasTypeArguments, mapper);\n      const id = getTypeListId(typeArguments) + getAliasId(newAliasSymbol, newAliasTypeArguments);\n      if (!target.instantiations) {\n        target.instantiations = /* @__PURE__ */ new Map();\n        target.instantiations.set(getTypeListId(typeParameters) + getAliasId(target.aliasSymbol, target.aliasTypeArguments), target);\n      }\n      let result = target.instantiations.get(id);\n      if (!result) {\n        let newMapper = createTypeMapper(typeParameters, typeArguments);\n        if (target.objectFlags & 134217728 /* SingleSignatureType */ && mapper) {\n          newMapper = combineTypeMappers(newMapper, mapper);\n        }\n        result = target.objectFlags & 4 /* Reference */ ? createDeferredTypeReference(type.target, type.node, newMapper, newAliasSymbol, newAliasTypeArguments) : target.objectFlags & 32 /* Mapped */ ? instantiateMappedType(target, newMapper, newAliasSymbol, newAliasTypeArguments) : instantiateAnonymousType(target, newMapper, newAliasSymbol, newAliasTypeArguments);\n        target.instantiations.set(id, result);\n        const resultObjectFlags = getObjectFlags(result);\n        if (result.flags & 3899393 /* ObjectFlagsType */ && !(resultObjectFlags & 524288 /* CouldContainTypeVariablesComputed */)) {\n          const resultCouldContainTypeVariables = some(typeArguments, couldContainTypeVariables);\n          if (!(getObjectFlags(result) & 524288 /* CouldContainTypeVariablesComputed */)) {\n            if (resultObjectFlags & (32 /* Mapped */ | 16 /* Anonymous */ | 4 /* Reference */)) {\n              result.objectFlags |= 524288 /* CouldContainTypeVariablesComputed */ | (resultCouldContainTypeVariables ? 1048576 /* CouldContainTypeVariables */ : 0);\n            } else {\n              result.objectFlags |= !resultCouldContainTypeVariables ? 524288 /* CouldContainTypeVariablesComputed */ : 0;\n            }\n          }\n        }\n      }\n      return result;\n    }\n    return type;\n  }\n  function maybeTypeParameterReference(node) {\n    return !(node.parent.kind === 184 /* TypeReference */ && node.parent.typeArguments && node === node.parent.typeName || node.parent.kind === 206 /* ImportType */ && node.parent.typeArguments && node === node.parent.qualifier);\n  }\n  function isTypeParameterPossiblyReferenced(tp, node) {\n    if (tp.symbol && tp.symbol.declarations && tp.symbol.declarations.length === 1) {\n      const container = tp.symbol.declarations[0].parent;\n      for (let n = node; n !== container; n = n.parent) {\n        if (!n || n.kind === 242 /* Block */ || n.kind === 195 /* ConditionalType */ && forEachChild(n.extendsType, containsReference)) {\n          return true;\n        }\n      }\n      return containsReference(node);\n    }\n    return true;\n    function containsReference(node2) {\n      switch (node2.kind) {\n        case 198 /* ThisType */:\n          return !!tp.isThisType;\n        case 80 /* Identifier */:\n          return !tp.isThisType && isPartOfTypeNode(node2) && maybeTypeParameterReference(node2) && getTypeFromTypeNodeWorker(node2) === tp;\n        // use worker because we're looking for === equality\n        case 187 /* TypeQuery */:\n          const entityName = node2.exprName;\n          const firstIdentifier = getFirstIdentifier(entityName);\n          if (!isThisIdentifier(firstIdentifier)) {\n            const firstIdentifierSymbol = getResolvedSymbol(firstIdentifier);\n            const tpDeclaration = tp.symbol.declarations[0];\n            const tpScope = tpDeclaration.kind === 169 /* TypeParameter */ ? tpDeclaration.parent : (\n              // Type parameter is a regular type parameter, e.g. foo<T>\n              tp.isThisType ? tpDeclaration : (\n                // Type parameter is the this type, and its declaration is the class declaration.\n                void 0\n              )\n            );\n            if (firstIdentifierSymbol.declarations && tpScope) {\n              return some(firstIdentifierSymbol.declarations, (idDecl) => isNodeDescendantOf(idDecl, tpScope)) || some(node2.typeArguments, containsReference);\n            }\n          }\n          return true;\n        case 175 /* MethodDeclaration */:\n        case 174 /* MethodSignature */:\n          return !node2.type && !!node2.body || some(node2.typeParameters, containsReference) || some(node2.parameters, containsReference) || !!node2.type && containsReference(node2.type);\n      }\n      return !!forEachChild(node2, containsReference);\n    }\n  }\n  function getHomomorphicTypeVariable(type) {\n    const constraintType = getConstraintTypeFromMappedType(type);\n    if (constraintType.flags & 4194304 /* Index */) {\n      const typeVariable = getActualTypeVariable(constraintType.type);\n      if (typeVariable.flags & 262144 /* TypeParameter */) {\n        return typeVariable;\n      }\n    }\n    return void 0;\n  }\n  function instantiateMappedType(type, mapper, aliasSymbol, aliasTypeArguments) {\n    const typeVariable = getHomomorphicTypeVariable(type);\n    if (typeVariable) {\n      const mappedTypeVariable = instantiateType(typeVariable, mapper);\n      if (typeVariable !== mappedTypeVariable) {\n        return mapTypeWithAlias(getReducedType(mappedTypeVariable), instantiateConstituent, aliasSymbol, aliasTypeArguments);\n      }\n    }\n    return instantiateType(getConstraintTypeFromMappedType(type), mapper) === wildcardType ? wildcardType : instantiateAnonymousType(type, mapper, aliasSymbol, aliasTypeArguments);\n    function instantiateConstituent(t) {\n      if (t.flags & (3 /* AnyOrUnknown */ | 58982400 /* InstantiableNonPrimitive */ | 524288 /* Object */ | 2097152 /* Intersection */) && t !== wildcardType && !isErrorType(t)) {\n        if (!type.declaration.nameType) {\n          let constraint;\n          if (isArrayType(t) || t.flags & 1 /* Any */ && findResolutionCycleStartIndex(typeVariable, 4 /* ImmediateBaseConstraint */) < 0 && (constraint = getConstraintOfTypeParameter(typeVariable)) && everyType(constraint, isArrayOrTupleType)) {\n            return instantiateMappedArrayType(t, type, prependTypeMapping(typeVariable, t, mapper));\n          }\n          if (isTupleType(t)) {\n            return instantiateMappedTupleType(t, type, typeVariable, mapper);\n          }\n          if (isArrayOrTupleOrIntersection(t)) {\n            return getIntersectionType(map(t.types, instantiateConstituent));\n          }\n        }\n        return instantiateAnonymousType(type, prependTypeMapping(typeVariable, t, mapper));\n      }\n      return t;\n    }\n  }\n  function getModifiedReadonlyState(state, modifiers) {\n    return modifiers & 1 /* IncludeReadonly */ ? true : modifiers & 2 /* ExcludeReadonly */ ? false : state;\n  }\n  function instantiateMappedTupleType(tupleType, mappedType, typeVariable, mapper) {\n    const elementFlags = tupleType.target.elementFlags;\n    const fixedLength = tupleType.target.fixedLength;\n    const fixedMapper = fixedLength ? prependTypeMapping(typeVariable, tupleType, mapper) : mapper;\n    const newElementTypes = map(getElementTypes(tupleType), (type, i) => {\n      const flags = elementFlags[i];\n      return i < fixedLength ? instantiateMappedTypeTemplate(mappedType, getStringLiteralType(\"\" + i), !!(flags & 2 /* Optional */), fixedMapper) : flags & 8 /* Variadic */ ? instantiateType(mappedType, prependTypeMapping(typeVariable, type, mapper)) : getElementTypeOfArrayType(instantiateType(mappedType, prependTypeMapping(typeVariable, createArrayType(type), mapper))) ?? unknownType;\n    });\n    const modifiers = getMappedTypeModifiers(mappedType);\n    const newElementFlags = modifiers & 4 /* IncludeOptional */ ? map(elementFlags, (f) => f & 1 /* Required */ ? 2 /* Optional */ : f) : modifiers & 8 /* ExcludeOptional */ ? map(elementFlags, (f) => f & 2 /* Optional */ ? 1 /* Required */ : f) : elementFlags;\n    const newReadonly = getModifiedReadonlyState(tupleType.target.readonly, getMappedTypeModifiers(mappedType));\n    return contains(newElementTypes, errorType) ? errorType : createTupleType(newElementTypes, newElementFlags, newReadonly, tupleType.target.labeledElementDeclarations);\n  }\n  function instantiateMappedArrayType(arrayType, mappedType, mapper) {\n    const elementType = instantiateMappedTypeTemplate(\n      mappedType,\n      numberType,\n      /*isOptional*/\n      true,\n      mapper\n    );\n    return isErrorType(elementType) ? errorType : createArrayType(elementType, getModifiedReadonlyState(isReadonlyArrayType(arrayType), getMappedTypeModifiers(mappedType)));\n  }\n  function instantiateMappedTypeTemplate(type, key, isOptional, mapper) {\n    const templateMapper = appendTypeMapping(mapper, getTypeParameterFromMappedType(type), key);\n    const propType = instantiateType(getTemplateTypeFromMappedType(type.target || type), templateMapper);\n    const modifiers = getMappedTypeModifiers(type);\n    return strictNullChecks && modifiers & 4 /* IncludeOptional */ && !maybeTypeOfKind(propType, 32768 /* Undefined */ | 16384 /* Void */) ? getOptionalType(\n      propType,\n      /*isProperty*/\n      true\n    ) : strictNullChecks && modifiers & 8 /* ExcludeOptional */ && isOptional ? getTypeWithFacts(propType, 524288 /* NEUndefined */) : propType;\n  }\n  function instantiateAnonymousType(type, mapper, aliasSymbol, aliasTypeArguments) {\n    Debug.assert(type.symbol, \"anonymous type must have symbol to be instantiated\");\n    const result = createObjectType(type.objectFlags & ~(524288 /* CouldContainTypeVariablesComputed */ | 1048576 /* CouldContainTypeVariables */) | 64 /* Instantiated */, type.symbol);\n    if (type.objectFlags & 32 /* Mapped */) {\n      result.declaration = type.declaration;\n      const origTypeParameter = getTypeParameterFromMappedType(type);\n      const freshTypeParameter = cloneTypeParameter(origTypeParameter);\n      result.typeParameter = freshTypeParameter;\n      mapper = combineTypeMappers(makeUnaryTypeMapper(origTypeParameter, freshTypeParameter), mapper);\n      freshTypeParameter.mapper = mapper;\n    }\n    if (type.objectFlags & 8388608 /* InstantiationExpressionType */) {\n      result.node = type.node;\n    }\n    result.target = type;\n    result.mapper = mapper;\n    result.aliasSymbol = aliasSymbol || type.aliasSymbol;\n    result.aliasTypeArguments = aliasSymbol ? aliasTypeArguments : instantiateTypes(type.aliasTypeArguments, mapper);\n    result.objectFlags |= result.aliasTypeArguments ? getPropagatingFlagsOfTypes(result.aliasTypeArguments) : 0;\n    return result;\n  }\n  function getConditionalTypeInstantiation(type, mapper, forConstraint, aliasSymbol, aliasTypeArguments) {\n    const root = type.root;\n    if (root.outerTypeParameters) {\n      const typeArguments = map(root.outerTypeParameters, (t) => getMappedType(t, mapper));\n      const id = (forConstraint ? \"C\" : \"\") + getTypeListId(typeArguments) + getAliasId(aliasSymbol, aliasTypeArguments);\n      let result = root.instantiations.get(id);\n      if (!result) {\n        const newMapper = createTypeMapper(root.outerTypeParameters, typeArguments);\n        const checkType = root.checkType;\n        const distributionType = root.isDistributive ? getReducedType(getMappedType(checkType, newMapper)) : void 0;\n        result = distributionType && checkType !== distributionType && distributionType.flags & (1048576 /* Union */ | 131072 /* Never */) ? mapTypeWithAlias(distributionType, (t) => getConditionalType(root, prependTypeMapping(checkType, t, newMapper), forConstraint), aliasSymbol, aliasTypeArguments) : getConditionalType(root, newMapper, forConstraint, aliasSymbol, aliasTypeArguments);\n        root.instantiations.set(id, result);\n      }\n      return result;\n    }\n    return type;\n  }\n  function instantiateType(type, mapper) {\n    return type && mapper ? instantiateTypeWithAlias(\n      type,\n      mapper,\n      /*aliasSymbol*/\n      void 0,\n      /*aliasTypeArguments*/\n      void 0\n    ) : type;\n  }\n  function instantiateTypeWithAlias(type, mapper, aliasSymbol, aliasTypeArguments) {\n    var _a;\n    if (!couldContainTypeVariables(type)) {\n      return type;\n    }\n    if (instantiationDepth === 100 || instantiationCount >= 5e6) {\n      (_a = tracing) == null ? void 0 : _a.instant(tracing.Phase.CheckTypes, \"instantiateType_DepthLimit\", { typeId: type.id, instantiationDepth, instantiationCount });\n      error2(currentNode, Diagnostics.Type_instantiation_is_excessively_deep_and_possibly_infinite);\n      return errorType;\n    }\n    const index = findActiveMapper(mapper);\n    if (index === -1) {\n      pushActiveMapper(mapper);\n    }\n    const key = type.id + getAliasId(aliasSymbol, aliasTypeArguments);\n    const mapperCache = activeTypeMappersCaches[index !== -1 ? index : activeTypeMappersCount - 1];\n    const cached = mapperCache.get(key);\n    if (cached) {\n      return cached;\n    }\n    totalInstantiationCount++;\n    instantiationCount++;\n    instantiationDepth++;\n    const result = instantiateTypeWorker(type, mapper, aliasSymbol, aliasTypeArguments);\n    if (index === -1) {\n      popActiveMapper();\n    } else {\n      mapperCache.set(key, result);\n    }\n    instantiationDepth--;\n    return result;\n  }\n  function instantiateTypeWorker(type, mapper, aliasSymbol, aliasTypeArguments) {\n    const flags = type.flags;\n    if (flags & 262144 /* TypeParameter */) {\n      return getMappedType(type, mapper);\n    }\n    if (flags & 524288 /* Object */) {\n      const objectFlags = type.objectFlags;\n      if (objectFlags & (4 /* Reference */ | 16 /* Anonymous */ | 32 /* Mapped */)) {\n        if (objectFlags & 4 /* Reference */ && !type.node) {\n          const resolvedTypeArguments = type.resolvedTypeArguments;\n          const newTypeArguments = instantiateTypes(resolvedTypeArguments, mapper);\n          return newTypeArguments !== resolvedTypeArguments ? createNormalizedTypeReference(type.target, newTypeArguments) : type;\n        }\n        if (objectFlags & 1024 /* ReverseMapped */) {\n          return instantiateReverseMappedType(type, mapper);\n        }\n        return getObjectTypeInstantiation(type, mapper, aliasSymbol, aliasTypeArguments);\n      }\n      return type;\n    }\n    if (flags & 3145728 /* UnionOrIntersection */) {\n      const origin = type.flags & 1048576 /* Union */ ? type.origin : void 0;\n      const types = origin && origin.flags & 3145728 /* UnionOrIntersection */ ? origin.types : type.types;\n      const newTypes = instantiateTypes(types, mapper);\n      if (newTypes === types && aliasSymbol === type.aliasSymbol) {\n        return type;\n      }\n      const newAliasSymbol = aliasSymbol || type.aliasSymbol;\n      const newAliasTypeArguments = aliasSymbol ? aliasTypeArguments : instantiateTypes(type.aliasTypeArguments, mapper);\n      return flags & 2097152 /* Intersection */ || origin && origin.flags & 2097152 /* Intersection */ ? getIntersectionType(newTypes, 0 /* None */, newAliasSymbol, newAliasTypeArguments) : getUnionType(newTypes, 1 /* Literal */, newAliasSymbol, newAliasTypeArguments);\n    }\n    if (flags & 4194304 /* Index */) {\n      return getIndexType(instantiateType(type.type, mapper));\n    }\n    if (flags & 134217728 /* TemplateLiteral */) {\n      return getTemplateLiteralType(type.texts, instantiateTypes(type.types, mapper));\n    }\n    if (flags & 268435456 /* StringMapping */) {\n      return getStringMappingType(type.symbol, instantiateType(type.type, mapper));\n    }\n    if (flags & 8388608 /* IndexedAccess */) {\n      const newAliasSymbol = aliasSymbol || type.aliasSymbol;\n      const newAliasTypeArguments = aliasSymbol ? aliasTypeArguments : instantiateTypes(type.aliasTypeArguments, mapper);\n      return getIndexedAccessType(\n        instantiateType(type.objectType, mapper),\n        instantiateType(type.indexType, mapper),\n        type.accessFlags,\n        /*accessNode*/\n        void 0,\n        newAliasSymbol,\n        newAliasTypeArguments\n      );\n    }\n    if (flags & 16777216 /* Conditional */) {\n      return getConditionalTypeInstantiation(\n        type,\n        combineTypeMappers(type.mapper, mapper),\n        /*forConstraint*/\n        false,\n        aliasSymbol,\n        aliasTypeArguments\n      );\n    }\n    if (flags & 33554432 /* Substitution */) {\n      const newBaseType = instantiateType(type.baseType, mapper);\n      if (isNoInferType(type)) {\n        return getNoInferType(newBaseType);\n      }\n      const newConstraint = instantiateType(type.constraint, mapper);\n      if (newBaseType.flags & 8650752 /* TypeVariable */ && isGenericType(newConstraint)) {\n        return getSubstitutionType(newBaseType, newConstraint);\n      }\n      if (newConstraint.flags & 3 /* AnyOrUnknown */ || isTypeAssignableTo(getRestrictiveInstantiation(newBaseType), getRestrictiveInstantiation(newConstraint))) {\n        return newBaseType;\n      }\n      return newBaseType.flags & 8650752 /* TypeVariable */ ? getSubstitutionType(newBaseType, newConstraint) : getIntersectionType([newConstraint, newBaseType]);\n    }\n    return type;\n  }\n  function instantiateReverseMappedType(type, mapper) {\n    const innerMappedType = instantiateType(type.mappedType, mapper);\n    if (!(getObjectFlags(innerMappedType) & 32 /* Mapped */)) {\n      return type;\n    }\n    const innerIndexType = instantiateType(type.constraintType, mapper);\n    if (!(innerIndexType.flags & 4194304 /* Index */)) {\n      return type;\n    }\n    const instantiated = inferTypeForHomomorphicMappedType(\n      instantiateType(type.source, mapper),\n      innerMappedType,\n      innerIndexType\n    );\n    if (instantiated) {\n      return instantiated;\n    }\n    return type;\n  }\n  function getPermissiveInstantiation(type) {\n    return type.flags & (402784252 /* Primitive */ | 3 /* AnyOrUnknown */ | 131072 /* Never */) ? type : type.permissiveInstantiation || (type.permissiveInstantiation = instantiateType(type, permissiveMapper));\n  }\n  function getRestrictiveInstantiation(type) {\n    if (type.flags & (402784252 /* Primitive */ | 3 /* AnyOrUnknown */ | 131072 /* Never */)) {\n      return type;\n    }\n    if (type.restrictiveInstantiation) {\n      return type.restrictiveInstantiation;\n    }\n    type.restrictiveInstantiation = instantiateType(type, restrictiveMapper);\n    type.restrictiveInstantiation.restrictiveInstantiation = type.restrictiveInstantiation;\n    return type.restrictiveInstantiation;\n  }\n  function instantiateIndexInfo(info, mapper) {\n    return createIndexInfo(info.keyType, instantiateType(info.type, mapper), info.isReadonly, info.declaration, info.components);\n  }\n  function isContextSensitive(node) {\n    Debug.assert(node.kind !== 175 /* MethodDeclaration */ || isObjectLiteralMethod(node));\n    switch (node.kind) {\n      case 219 /* FunctionExpression */:\n      case 220 /* ArrowFunction */:\n      case 175 /* MethodDeclaration */:\n      case 263 /* FunctionDeclaration */:\n        return isContextSensitiveFunctionLikeDeclaration(node);\n      case 211 /* ObjectLiteralExpression */:\n        return some(node.properties, isContextSensitive);\n      case 210 /* ArrayLiteralExpression */:\n        return some(node.elements, isContextSensitive);\n      case 228 /* ConditionalExpression */:\n        return isContextSensitive(node.whenTrue) || isContextSensitive(node.whenFalse);\n      case 227 /* BinaryExpression */:\n        return (node.operatorToken.kind === 57 /* BarBarToken */ || node.operatorToken.kind === 61 /* QuestionQuestionToken */) && (isContextSensitive(node.left) || isContextSensitive(node.right));\n      case 304 /* PropertyAssignment */:\n        return isContextSensitive(node.initializer);\n      case 218 /* ParenthesizedExpression */:\n        return isContextSensitive(node.expression);\n      case 293 /* JsxAttributes */:\n        return some(node.properties, isContextSensitive) || isJsxOpeningElement(node.parent) && some(node.parent.parent.children, isContextSensitive);\n      case 292 /* JsxAttribute */: {\n        const { initializer } = node;\n        return !!initializer && isContextSensitive(initializer);\n      }\n      case 295 /* JsxExpression */: {\n        const { expression } = node;\n        return !!expression && isContextSensitive(expression);\n      }\n    }\n    return false;\n  }\n  function isContextSensitiveFunctionLikeDeclaration(node) {\n    return hasContextSensitiveParameters(node) || hasContextSensitiveReturnExpression(node);\n  }\n  function hasContextSensitiveReturnExpression(node) {\n    if (node.typeParameters || getEffectiveReturnTypeNode(node) || !node.body) {\n      return false;\n    }\n    if (node.body.kind !== 242 /* Block */) {\n      return isContextSensitive(node.body);\n    }\n    return !!forEachReturnStatement(node.body, (statement) => !!statement.expression && isContextSensitive(statement.expression));\n  }\n  function isContextSensitiveFunctionOrObjectLiteralMethod(func) {\n    return (isFunctionExpressionOrArrowFunction(func) || isObjectLiteralMethod(func)) && isContextSensitiveFunctionLikeDeclaration(func);\n  }\n  function getTypeWithoutSignatures(type) {\n    if (type.flags & 524288 /* Object */) {\n      const resolved = resolveStructuredTypeMembers(type);\n      if (resolved.constructSignatures.length || resolved.callSignatures.length) {\n        const result = createObjectType(16 /* Anonymous */, type.symbol);\n        result.members = resolved.members;\n        result.properties = resolved.properties;\n        result.callSignatures = emptyArray;\n        result.constructSignatures = emptyArray;\n        result.indexInfos = emptyArray;\n        return result;\n      }\n    } else if (type.flags & 2097152 /* Intersection */) {\n      return getIntersectionType(map(type.types, getTypeWithoutSignatures));\n    }\n    return type;\n  }\n  function isTypeIdenticalTo(source, target) {\n    return isTypeRelatedTo(source, target, identityRelation);\n  }\n  function compareTypesIdentical(source, target) {\n    return isTypeRelatedTo(source, target, identityRelation) ? -1 /* True */ : 0 /* False */;\n  }\n  function compareTypesAssignable(source, target) {\n    return isTypeRelatedTo(source, target, assignableRelation) ? -1 /* True */ : 0 /* False */;\n  }\n  function compareTypesSubtypeOf(source, target) {\n    return isTypeRelatedTo(source, target, subtypeRelation) ? -1 /* True */ : 0 /* False */;\n  }\n  function isTypeSubtypeOf(source, target) {\n    return isTypeRelatedTo(source, target, subtypeRelation);\n  }\n  function isTypeStrictSubtypeOf(source, target) {\n    return isTypeRelatedTo(source, target, strictSubtypeRelation);\n  }\n  function isTypeAssignableTo(source, target) {\n    return isTypeRelatedTo(source, target, assignableRelation);\n  }\n  function isTypeDerivedFrom(source, target) {\n    return source.flags & 1048576 /* Union */ ? every(source.types, (t) => isTypeDerivedFrom(t, target)) : target.flags & 1048576 /* Union */ ? some(target.types, (t) => isTypeDerivedFrom(source, t)) : source.flags & 2097152 /* Intersection */ ? some(source.types, (t) => isTypeDerivedFrom(t, target)) : source.flags & 58982400 /* InstantiableNonPrimitive */ ? isTypeDerivedFrom(getBaseConstraintOfType(source) || unknownType, target) : isEmptyAnonymousObjectType(target) ? !!(source.flags & (524288 /* Object */ | 67108864 /* NonPrimitive */)) : target === globalObjectType ? !!(source.flags & (524288 /* Object */ | 67108864 /* NonPrimitive */)) && !isEmptyAnonymousObjectType(source) : target === globalFunctionType ? !!(source.flags & 524288 /* Object */) && isFunctionObjectType(source) : hasBaseType(source, getTargetType(target)) || isArrayType(target) && !isReadonlyArrayType(target) && isTypeDerivedFrom(source, globalReadonlyArrayType);\n  }\n  function isTypeComparableTo(source, target) {\n    return isTypeRelatedTo(source, target, comparableRelation);\n  }\n  function areTypesComparable(type1, type2) {\n    return isTypeComparableTo(type1, type2) || isTypeComparableTo(type2, type1);\n  }\n  function checkTypeAssignableTo(source, target, errorNode, headMessage, containingMessageChain, errorOutputObject) {\n    return checkTypeRelatedTo(source, target, assignableRelation, errorNode, headMessage, containingMessageChain, errorOutputObject);\n  }\n  function checkTypeAssignableToAndOptionallyElaborate(source, target, errorNode, expr, headMessage, containingMessageChain) {\n    return checkTypeRelatedToAndOptionallyElaborate(\n      source,\n      target,\n      assignableRelation,\n      errorNode,\n      expr,\n      headMessage,\n      containingMessageChain,\n      /*errorOutputContainer*/\n      void 0\n    );\n  }\n  function checkTypeRelatedToAndOptionallyElaborate(source, target, relation, errorNode, expr, headMessage, containingMessageChain, errorOutputContainer) {\n    if (isTypeRelatedTo(source, target, relation)) return true;\n    if (!errorNode || !elaborateError(expr, source, target, relation, headMessage, containingMessageChain, errorOutputContainer)) {\n      return checkTypeRelatedTo(source, target, relation, errorNode, headMessage, containingMessageChain, errorOutputContainer);\n    }\n    return false;\n  }\n  function isOrHasGenericConditional(type) {\n    return !!(type.flags & 16777216 /* Conditional */ || type.flags & 2097152 /* Intersection */ && some(type.types, isOrHasGenericConditional));\n  }\n  function elaborateError(node, source, target, relation, headMessage, containingMessageChain, errorOutputContainer) {\n    if (!node || isOrHasGenericConditional(target)) return false;\n    if (!checkTypeRelatedTo(\n      source,\n      target,\n      relation,\n      /*errorNode*/\n      void 0\n    ) && elaborateDidYouMeanToCallOrConstruct(node, source, target, relation, headMessage, containingMessageChain, errorOutputContainer)) {\n      return true;\n    }\n    switch (node.kind) {\n      case 235 /* AsExpression */:\n        if (!isConstAssertion(node)) {\n          break;\n        }\n      // fallthrough\n      case 295 /* JsxExpression */:\n      case 218 /* ParenthesizedExpression */:\n        return elaborateError(node.expression, source, target, relation, headMessage, containingMessageChain, errorOutputContainer);\n      case 227 /* BinaryExpression */:\n        switch (node.operatorToken.kind) {\n          case 64 /* EqualsToken */:\n          case 28 /* CommaToken */:\n            return elaborateError(node.right, source, target, relation, headMessage, containingMessageChain, errorOutputContainer);\n        }\n        break;\n      case 211 /* ObjectLiteralExpression */:\n        return elaborateObjectLiteral(node, source, target, relation, containingMessageChain, errorOutputContainer);\n      case 210 /* ArrayLiteralExpression */:\n        return elaborateArrayLiteral(node, source, target, relation, containingMessageChain, errorOutputContainer);\n      case 293 /* JsxAttributes */:\n        return elaborateJsxComponents(node, source, target, relation, containingMessageChain, errorOutputContainer);\n      case 220 /* ArrowFunction */:\n        return elaborateArrowFunction(node, source, target, relation, containingMessageChain, errorOutputContainer);\n    }\n    return false;\n  }\n  function elaborateDidYouMeanToCallOrConstruct(node, source, target, relation, headMessage, containingMessageChain, errorOutputContainer) {\n    const callSignatures = getSignaturesOfType(source, 0 /* Call */);\n    const constructSignatures = getSignaturesOfType(source, 1 /* Construct */);\n    for (const signatures of [constructSignatures, callSignatures]) {\n      if (some(signatures, (s) => {\n        const returnType = getReturnTypeOfSignature(s);\n        return !(returnType.flags & (1 /* Any */ | 131072 /* Never */)) && checkTypeRelatedTo(\n          returnType,\n          target,\n          relation,\n          /*errorNode*/\n          void 0\n        );\n      })) {\n        const resultObj = errorOutputContainer || {};\n        checkTypeAssignableTo(source, target, node, headMessage, containingMessageChain, resultObj);\n        const diagnostic = resultObj.errors[resultObj.errors.length - 1];\n        addRelatedInfo(\n          diagnostic,\n          createDiagnosticForNode(\n            node,\n            signatures === constructSignatures ? Diagnostics.Did_you_mean_to_use_new_with_this_expression : Diagnostics.Did_you_mean_to_call_this_expression\n          )\n        );\n        return true;\n      }\n    }\n    return false;\n  }\n  function elaborateArrowFunction(node, source, target, relation, containingMessageChain, errorOutputContainer) {\n    if (isBlock(node.body)) {\n      return false;\n    }\n    if (some(node.parameters, hasType)) {\n      return false;\n    }\n    const sourceSig = getSingleCallSignature(source);\n    if (!sourceSig) {\n      return false;\n    }\n    const targetSignatures = getSignaturesOfType(target, 0 /* Call */);\n    if (!length(targetSignatures)) {\n      return false;\n    }\n    const returnExpression = node.body;\n    const sourceReturn = getReturnTypeOfSignature(sourceSig);\n    const targetReturn = getUnionType(map(targetSignatures, getReturnTypeOfSignature));\n    if (!checkTypeRelatedTo(\n      sourceReturn,\n      targetReturn,\n      relation,\n      /*errorNode*/\n      void 0\n    )) {\n      const elaborated = returnExpression && elaborateError(\n        returnExpression,\n        sourceReturn,\n        targetReturn,\n        relation,\n        /*headMessage*/\n        void 0,\n        containingMessageChain,\n        errorOutputContainer\n      );\n      if (elaborated) {\n        return elaborated;\n      }\n      const resultObj = errorOutputContainer || {};\n      checkTypeRelatedTo(\n        sourceReturn,\n        targetReturn,\n        relation,\n        returnExpression,\n        /*headMessage*/\n        void 0,\n        containingMessageChain,\n        resultObj\n      );\n      if (resultObj.errors) {\n        if (target.symbol && length(target.symbol.declarations)) {\n          addRelatedInfo(\n            resultObj.errors[resultObj.errors.length - 1],\n            createDiagnosticForNode(\n              target.symbol.declarations[0],\n              Diagnostics.The_expected_type_comes_from_the_return_type_of_this_signature\n            )\n          );\n        }\n        if ((getFunctionFlags(node) & 2 /* Async */) === 0 && !getTypeOfPropertyOfType(sourceReturn, \"then\") && checkTypeRelatedTo(\n          createPromiseType(sourceReturn),\n          targetReturn,\n          relation,\n          /*errorNode*/\n          void 0\n        )) {\n          addRelatedInfo(\n            resultObj.errors[resultObj.errors.length - 1],\n            createDiagnosticForNode(\n              node,\n              Diagnostics.Did_you_mean_to_mark_this_function_as_async\n            )\n          );\n        }\n        return true;\n      }\n    }\n    return false;\n  }\n  function getBestMatchIndexedAccessTypeOrUndefined(source, target, nameType) {\n    const idx = getIndexedAccessTypeOrUndefined(target, nameType);\n    if (idx) {\n      return idx;\n    }\n    if (target.flags & 1048576 /* Union */) {\n      const best = getBestMatchingType(source, target);\n      if (best) {\n        return getIndexedAccessTypeOrUndefined(best, nameType);\n      }\n    }\n  }\n  function checkExpressionForMutableLocationWithContextualType(next, sourcePropType) {\n    pushContextualType(\n      next,\n      sourcePropType,\n      /*isCache*/\n      false\n    );\n    const result = checkExpressionForMutableLocation(next, 1 /* Contextual */);\n    popContextualType();\n    return result;\n  }\n  function elaborateElementwise(iterator, source, target, relation, containingMessageChain, errorOutputContainer) {\n    let reportedError = false;\n    for (const value of iterator) {\n      const { errorNode: prop, innerExpression: next, nameType, errorMessage } = value;\n      let targetPropType = getBestMatchIndexedAccessTypeOrUndefined(source, target, nameType);\n      if (!targetPropType || targetPropType.flags & 8388608 /* IndexedAccess */) continue;\n      let sourcePropType = getIndexedAccessTypeOrUndefined(source, nameType);\n      if (!sourcePropType) continue;\n      const propName = getPropertyNameFromIndex(\n        nameType,\n        /*accessNode*/\n        void 0\n      );\n      if (!checkTypeRelatedTo(\n        sourcePropType,\n        targetPropType,\n        relation,\n        /*errorNode*/\n        void 0\n      )) {\n        const elaborated = next && elaborateError(\n          next,\n          sourcePropType,\n          targetPropType,\n          relation,\n          /*headMessage*/\n          void 0,\n          containingMessageChain,\n          errorOutputContainer\n        );\n        reportedError = true;\n        if (!elaborated) {\n          const resultObj = errorOutputContainer || {};\n          const specificSource = next ? checkExpressionForMutableLocationWithContextualType(next, sourcePropType) : sourcePropType;\n          if (exactOptionalPropertyTypes && isExactOptionalPropertyMismatch(specificSource, targetPropType)) {\n            const diag2 = createDiagnosticForNode(prop, Diagnostics.Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_type_of_the_target, typeToString(specificSource), typeToString(targetPropType));\n            diagnostics.add(diag2);\n            resultObj.errors = [diag2];\n          } else {\n            const targetIsOptional = !!(propName && (getPropertyOfType(target, propName) || unknownSymbol).flags & 16777216 /* Optional */);\n            const sourceIsOptional = !!(propName && (getPropertyOfType(source, propName) || unknownSymbol).flags & 16777216 /* Optional */);\n            targetPropType = removeMissingType(targetPropType, targetIsOptional);\n            sourcePropType = removeMissingType(sourcePropType, targetIsOptional && sourceIsOptional);\n            const result = checkTypeRelatedTo(specificSource, targetPropType, relation, prop, errorMessage, containingMessageChain, resultObj);\n            if (result && specificSource !== sourcePropType) {\n              checkTypeRelatedTo(sourcePropType, targetPropType, relation, prop, errorMessage, containingMessageChain, resultObj);\n            }\n          }\n          if (resultObj.errors) {\n            const reportedDiag = resultObj.errors[resultObj.errors.length - 1];\n            const propertyName = isTypeUsableAsPropertyName(nameType) ? getPropertyNameFromType(nameType) : void 0;\n            const targetProp = propertyName !== void 0 ? getPropertyOfType(target, propertyName) : void 0;\n            let issuedElaboration = false;\n            if (!targetProp) {\n              const indexInfo = getApplicableIndexInfo(target, nameType);\n              if (indexInfo && indexInfo.declaration && !getSourceFileOfNode(indexInfo.declaration).hasNoDefaultLib) {\n                issuedElaboration = true;\n                addRelatedInfo(reportedDiag, createDiagnosticForNode(indexInfo.declaration, Diagnostics.The_expected_type_comes_from_this_index_signature));\n              }\n            }\n            if (!issuedElaboration && (targetProp && length(targetProp.declarations) || target.symbol && length(target.symbol.declarations))) {\n              const targetNode = targetProp && length(targetProp.declarations) ? targetProp.declarations[0] : target.symbol.declarations[0];\n              if (!getSourceFileOfNode(targetNode).hasNoDefaultLib) {\n                addRelatedInfo(\n                  reportedDiag,\n                  createDiagnosticForNode(\n                    targetNode,\n                    Diagnostics.The_expected_type_comes_from_property_0_which_is_declared_here_on_type_1,\n                    propertyName && !(nameType.flags & 8192 /* UniqueESSymbol */) ? unescapeLeadingUnderscores(propertyName) : typeToString(nameType),\n                    typeToString(target)\n                  )\n                );\n              }\n            }\n          }\n        }\n      }\n    }\n    return reportedError;\n  }\n  function elaborateIterableOrArrayLikeTargetElementwise(iterator, source, target, relation, containingMessageChain, errorOutputContainer) {\n    const tupleOrArrayLikeTargetParts = filterType(target, isArrayOrTupleLikeType);\n    const nonTupleOrArrayLikeTargetParts = filterType(target, (t) => !isArrayOrTupleLikeType(t));\n    const iterationType = nonTupleOrArrayLikeTargetParts !== neverType ? getIterationTypeOfIterable(\n      13 /* ForOf */,\n      0 /* Yield */,\n      nonTupleOrArrayLikeTargetParts,\n      /*errorNode*/\n      void 0\n    ) : void 0;\n    let reportedError = false;\n    for (let status = iterator.next(); !status.done; status = iterator.next()) {\n      const { errorNode: prop, innerExpression: next, nameType, errorMessage } = status.value;\n      let targetPropType = iterationType;\n      const targetIndexedPropType = tupleOrArrayLikeTargetParts !== neverType ? getBestMatchIndexedAccessTypeOrUndefined(source, tupleOrArrayLikeTargetParts, nameType) : void 0;\n      if (targetIndexedPropType && !(targetIndexedPropType.flags & 8388608 /* IndexedAccess */)) {\n        targetPropType = iterationType ? getUnionType([iterationType, targetIndexedPropType]) : targetIndexedPropType;\n      }\n      if (!targetPropType) continue;\n      let sourcePropType = getIndexedAccessTypeOrUndefined(source, nameType);\n      if (!sourcePropType) continue;\n      const propName = getPropertyNameFromIndex(\n        nameType,\n        /*accessNode*/\n        void 0\n      );\n      if (!checkTypeRelatedTo(\n        sourcePropType,\n        targetPropType,\n        relation,\n        /*errorNode*/\n        void 0\n      )) {\n        const elaborated = next && elaborateError(\n          next,\n          sourcePropType,\n          targetPropType,\n          relation,\n          /*headMessage*/\n          void 0,\n          containingMessageChain,\n          errorOutputContainer\n        );\n        reportedError = true;\n        if (!elaborated) {\n          const resultObj = errorOutputContainer || {};\n          const specificSource = next ? checkExpressionForMutableLocationWithContextualType(next, sourcePropType) : sourcePropType;\n          if (exactOptionalPropertyTypes && isExactOptionalPropertyMismatch(specificSource, targetPropType)) {\n            const diag2 = createDiagnosticForNode(prop, Diagnostics.Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_type_of_the_target, typeToString(specificSource), typeToString(targetPropType));\n            diagnostics.add(diag2);\n            resultObj.errors = [diag2];\n          } else {\n            const targetIsOptional = !!(propName && (getPropertyOfType(tupleOrArrayLikeTargetParts, propName) || unknownSymbol).flags & 16777216 /* Optional */);\n            const sourceIsOptional = !!(propName && (getPropertyOfType(source, propName) || unknownSymbol).flags & 16777216 /* Optional */);\n            targetPropType = removeMissingType(targetPropType, targetIsOptional);\n            sourcePropType = removeMissingType(sourcePropType, targetIsOptional && sourceIsOptional);\n            const result = checkTypeRelatedTo(specificSource, targetPropType, relation, prop, errorMessage, containingMessageChain, resultObj);\n            if (result && specificSource !== sourcePropType) {\n              checkTypeRelatedTo(sourcePropType, targetPropType, relation, prop, errorMessage, containingMessageChain, resultObj);\n            }\n          }\n        }\n      }\n    }\n    return reportedError;\n  }\n  function* generateJsxAttributes(node) {\n    if (!length(node.properties)) return;\n    for (const prop of node.properties) {\n      if (isJsxSpreadAttribute(prop) || isHyphenatedJsxName(getTextOfJsxAttributeName(prop.name))) continue;\n      yield { errorNode: prop.name, innerExpression: prop.initializer, nameType: getStringLiteralType(getTextOfJsxAttributeName(prop.name)) };\n    }\n  }\n  function* generateJsxChildren(node, getInvalidTextDiagnostic) {\n    if (!length(node.children)) return;\n    let memberOffset = 0;\n    for (let i = 0; i < node.children.length; i++) {\n      const child = node.children[i];\n      const nameType = getNumberLiteralType(i - memberOffset);\n      const elem = getElaborationElementForJsxChild(child, nameType, getInvalidTextDiagnostic);\n      if (elem) {\n        yield elem;\n      } else {\n        memberOffset++;\n      }\n    }\n  }\n  function getElaborationElementForJsxChild(child, nameType, getInvalidTextDiagnostic) {\n    switch (child.kind) {\n      case 295 /* JsxExpression */:\n        return { errorNode: child, innerExpression: child.expression, nameType };\n      case 12 /* JsxText */:\n        if (child.containsOnlyTriviaWhiteSpaces) {\n          break;\n        }\n        return { errorNode: child, innerExpression: void 0, nameType, errorMessage: getInvalidTextDiagnostic() };\n      case 285 /* JsxElement */:\n      case 286 /* JsxSelfClosingElement */:\n      case 289 /* JsxFragment */:\n        return { errorNode: child, innerExpression: child, nameType };\n      default:\n        return Debug.assertNever(child, \"Found invalid jsx child\");\n    }\n  }\n  function elaborateJsxComponents(node, source, target, relation, containingMessageChain, errorOutputContainer) {\n    let result = elaborateElementwise(generateJsxAttributes(node), source, target, relation, containingMessageChain, errorOutputContainer);\n    let invalidTextDiagnostic;\n    if (isJsxOpeningElement(node.parent) && isJsxElement(node.parent.parent)) {\n      const containingElement = node.parent.parent;\n      const childPropName = getJsxElementChildrenPropertyName(getJsxNamespaceAt(node));\n      const childrenPropName = childPropName === void 0 ? \"children\" : unescapeLeadingUnderscores(childPropName);\n      const childrenNameType = getStringLiteralType(childrenPropName);\n      const childrenTargetType = getIndexedAccessType(target, childrenNameType);\n      const validChildren = getSemanticJsxChildren(containingElement.children);\n      if (!length(validChildren)) {\n        return result;\n      }\n      const moreThanOneRealChildren = length(validChildren) > 1;\n      let arrayLikeTargetParts;\n      let nonArrayLikeTargetParts;\n      const iterableType = getGlobalIterableType(\n        /*reportErrors*/\n        false\n      );\n      if (iterableType !== emptyGenericType) {\n        const anyIterable = createIterableType(anyType);\n        arrayLikeTargetParts = filterType(childrenTargetType, (t) => isTypeAssignableTo(t, anyIterable));\n        nonArrayLikeTargetParts = filterType(childrenTargetType, (t) => !isTypeAssignableTo(t, anyIterable));\n      } else {\n        arrayLikeTargetParts = filterType(childrenTargetType, isArrayOrTupleLikeType);\n        nonArrayLikeTargetParts = filterType(childrenTargetType, (t) => !isArrayOrTupleLikeType(t));\n      }\n      if (moreThanOneRealChildren) {\n        if (arrayLikeTargetParts !== neverType) {\n          const realSource = createTupleType(checkJsxChildren(containingElement, 0 /* Normal */));\n          const children = generateJsxChildren(containingElement, getInvalidTextualChildDiagnostic);\n          result = elaborateIterableOrArrayLikeTargetElementwise(children, realSource, arrayLikeTargetParts, relation, containingMessageChain, errorOutputContainer) || result;\n        } else if (!isTypeRelatedTo(getIndexedAccessType(source, childrenNameType), childrenTargetType, relation)) {\n          result = true;\n          const diag2 = error2(\n            containingElement.openingElement.tagName,\n            Diagnostics.This_JSX_tag_s_0_prop_expects_a_single_child_of_type_1_but_multiple_children_were_provided,\n            childrenPropName,\n            typeToString(childrenTargetType)\n          );\n          if (errorOutputContainer && errorOutputContainer.skipLogging) {\n            (errorOutputContainer.errors || (errorOutputContainer.errors = [])).push(diag2);\n          }\n        }\n      } else {\n        if (nonArrayLikeTargetParts !== neverType) {\n          const child = validChildren[0];\n          const elem = getElaborationElementForJsxChild(child, childrenNameType, getInvalidTextualChildDiagnostic);\n          if (elem) {\n            result = elaborateElementwise(\n              function* () {\n                yield elem;\n              }(),\n              source,\n              target,\n              relation,\n              containingMessageChain,\n              errorOutputContainer\n            ) || result;\n          }\n        } else if (!isTypeRelatedTo(getIndexedAccessType(source, childrenNameType), childrenTargetType, relation)) {\n          result = true;\n          const diag2 = error2(\n            containingElement.openingElement.tagName,\n            Diagnostics.This_JSX_tag_s_0_prop_expects_type_1_which_requires_multiple_children_but_only_a_single_child_was_provided,\n            childrenPropName,\n            typeToString(childrenTargetType)\n          );\n          if (errorOutputContainer && errorOutputContainer.skipLogging) {\n            (errorOutputContainer.errors || (errorOutputContainer.errors = [])).push(diag2);\n          }\n        }\n      }\n    }\n    return result;\n    function getInvalidTextualChildDiagnostic() {\n      if (!invalidTextDiagnostic) {\n        const tagNameText = getTextOfNode(node.parent.tagName);\n        const childPropName = getJsxElementChildrenPropertyName(getJsxNamespaceAt(node));\n        const childrenPropName = childPropName === void 0 ? \"children\" : unescapeLeadingUnderscores(childPropName);\n        const childrenTargetType = getIndexedAccessType(target, getStringLiteralType(childrenPropName));\n        const diagnostic = Diagnostics._0_components_don_t_accept_text_as_child_elements_Text_in_JSX_has_the_type_string_but_the_expected_type_of_1_is_2;\n        invalidTextDiagnostic = { ...diagnostic, key: \"!!ALREADY FORMATTED!!\", message: formatMessage(diagnostic, tagNameText, childrenPropName, typeToString(childrenTargetType)) };\n      }\n      return invalidTextDiagnostic;\n    }\n  }\n  function* generateLimitedTupleElements(node, target) {\n    const len = length(node.elements);\n    if (!len) return;\n    for (let i = 0; i < len; i++) {\n      if (isTupleLikeType(target) && !getPropertyOfType(target, \"\" + i)) continue;\n      const elem = node.elements[i];\n      if (isOmittedExpression(elem)) continue;\n      const nameType = getNumberLiteralType(i);\n      const checkNode = getEffectiveCheckNode(elem);\n      yield { errorNode: checkNode, innerExpression: checkNode, nameType };\n    }\n  }\n  function elaborateArrayLiteral(node, source, target, relation, containingMessageChain, errorOutputContainer) {\n    if (target.flags & (402784252 /* Primitive */ | 131072 /* Never */)) return false;\n    if (isTupleLikeType(source)) {\n      return elaborateElementwise(generateLimitedTupleElements(node, target), source, target, relation, containingMessageChain, errorOutputContainer);\n    }\n    pushContextualType(\n      node,\n      target,\n      /*isCache*/\n      false\n    );\n    const tupleizedType = checkArrayLiteral(\n      node,\n      1 /* Contextual */,\n      /*forceTuple*/\n      true\n    );\n    popContextualType();\n    if (isTupleLikeType(tupleizedType)) {\n      return elaborateElementwise(generateLimitedTupleElements(node, target), tupleizedType, target, relation, containingMessageChain, errorOutputContainer);\n    }\n    return false;\n  }\n  function* generateObjectLiteralElements(node) {\n    if (!length(node.properties)) return;\n    for (const prop of node.properties) {\n      if (isSpreadAssignment(prop)) continue;\n      const type = getLiteralTypeFromProperty(getSymbolOfDeclaration(prop), 8576 /* StringOrNumberLiteralOrUnique */);\n      if (!type || type.flags & 131072 /* Never */) {\n        continue;\n      }\n      switch (prop.kind) {\n        case 179 /* SetAccessor */:\n        case 178 /* GetAccessor */:\n        case 175 /* MethodDeclaration */:\n        case 305 /* ShorthandPropertyAssignment */:\n          yield { errorNode: prop.name, innerExpression: void 0, nameType: type };\n          break;\n        case 304 /* PropertyAssignment */:\n          yield { errorNode: prop.name, innerExpression: prop.initializer, nameType: type, errorMessage: isComputedNonLiteralName(prop.name) ? Diagnostics.Type_of_computed_property_s_value_is_0_which_is_not_assignable_to_type_1 : void 0 };\n          break;\n        default:\n          Debug.assertNever(prop);\n      }\n    }\n  }\n  function elaborateObjectLiteral(node, source, target, relation, containingMessageChain, errorOutputContainer) {\n    if (target.flags & (402784252 /* Primitive */ | 131072 /* Never */)) return false;\n    return elaborateElementwise(generateObjectLiteralElements(node), source, target, relation, containingMessageChain, errorOutputContainer);\n  }\n  function checkTypeComparableTo(source, target, errorNode, headMessage, containingMessageChain) {\n    return checkTypeRelatedTo(source, target, comparableRelation, errorNode, headMessage, containingMessageChain);\n  }\n  function isSignatureAssignableTo(source, target, ignoreReturnTypes) {\n    return compareSignaturesRelated(\n      source,\n      target,\n      ignoreReturnTypes ? 4 /* IgnoreReturnTypes */ : 0 /* None */,\n      /*reportErrors*/\n      false,\n      /*errorReporter*/\n      void 0,\n      /*incompatibleErrorReporter*/\n      void 0,\n      compareTypesAssignable,\n      /*reportUnreliableMarkers*/\n      void 0\n    ) !== 0 /* False */;\n  }\n  function isTopSignature(s) {\n    if (!s.typeParameters && (!s.thisParameter || isTypeAny(getTypeOfParameter(s.thisParameter))) && s.parameters.length === 1 && signatureHasRestParameter(s)) {\n      const paramType = getTypeOfParameter(s.parameters[0]);\n      const restType = isArrayType(paramType) ? getTypeArguments(paramType)[0] : paramType;\n      return !!(restType.flags & (1 /* Any */ | 131072 /* Never */) && getReturnTypeOfSignature(s).flags & 3 /* AnyOrUnknown */);\n    }\n    return false;\n  }\n  function compareSignaturesRelated(source, target, checkMode, reportErrors2, errorReporter, incompatibleErrorReporter, compareTypes, reportUnreliableMarkers) {\n    if (source === target) {\n      return -1 /* True */;\n    }\n    if (!(checkMode & 16 /* StrictTopSignature */ && isTopSignature(source)) && isTopSignature(target)) {\n      return -1 /* True */;\n    }\n    if (checkMode & 16 /* StrictTopSignature */ && isTopSignature(source) && !isTopSignature(target)) {\n      return 0 /* False */;\n    }\n    const targetCount = getParameterCount(target);\n    const sourceHasMoreParameters = !hasEffectiveRestParameter(target) && (checkMode & 8 /* StrictArity */ ? hasEffectiveRestParameter(source) || getParameterCount(source) > targetCount : getMinArgumentCount(source) > targetCount);\n    if (sourceHasMoreParameters) {\n      if (reportErrors2 && !(checkMode & 8 /* StrictArity */)) {\n        errorReporter(Diagnostics.Target_signature_provides_too_few_arguments_Expected_0_or_more_but_got_1, getMinArgumentCount(source), targetCount);\n      }\n      return 0 /* False */;\n    }\n    if (source.typeParameters && source.typeParameters !== target.typeParameters) {\n      target = getCanonicalSignature(target);\n      source = instantiateSignatureInContextOf(\n        source,\n        target,\n        /*inferenceContext*/\n        void 0,\n        compareTypes\n      );\n    }\n    const sourceCount = getParameterCount(source);\n    const sourceRestType = getNonArrayRestType(source);\n    const targetRestType = getNonArrayRestType(target);\n    if (sourceRestType || targetRestType) {\n      void instantiateType(sourceRestType || targetRestType, reportUnreliableMarkers);\n    }\n    const kind = target.declaration ? target.declaration.kind : 0 /* Unknown */;\n    const strictVariance = !(checkMode & 3 /* Callback */) && strictFunctionTypes && kind !== 175 /* MethodDeclaration */ && kind !== 174 /* MethodSignature */ && kind !== 177 /* Constructor */;\n    let result = -1 /* True */;\n    const sourceThisType = getThisTypeOfSignature(source);\n    if (sourceThisType && sourceThisType !== voidType) {\n      const targetThisType = getThisTypeOfSignature(target);\n      if (targetThisType) {\n        const related = !strictVariance && compareTypes(\n          sourceThisType,\n          targetThisType,\n          /*reportErrors*/\n          false\n        ) || compareTypes(targetThisType, sourceThisType, reportErrors2);\n        if (!related) {\n          if (reportErrors2) {\n            errorReporter(Diagnostics.The_this_types_of_each_signature_are_incompatible);\n          }\n          return 0 /* False */;\n        }\n        result &= related;\n      }\n    }\n    const paramCount = sourceRestType || targetRestType ? Math.min(sourceCount, targetCount) : Math.max(sourceCount, targetCount);\n    const restIndex = sourceRestType || targetRestType ? paramCount - 1 : -1;\n    for (let i = 0; i < paramCount; i++) {\n      const sourceType = i === restIndex ? getRestOrAnyTypeAtPosition(source, i) : tryGetTypeAtPosition(source, i);\n      const targetType = i === restIndex ? getRestOrAnyTypeAtPosition(target, i) : tryGetTypeAtPosition(target, i);\n      if (sourceType && targetType && (sourceType !== targetType || checkMode & 8 /* StrictArity */)) {\n        const sourceSig = checkMode & 3 /* Callback */ || isInstantiatedGenericParameter(source, i) ? void 0 : getSingleCallSignature(getNonNullableType(sourceType));\n        const targetSig = checkMode & 3 /* Callback */ || isInstantiatedGenericParameter(target, i) ? void 0 : getSingleCallSignature(getNonNullableType(targetType));\n        const callbacks = sourceSig && targetSig && !getTypePredicateOfSignature(sourceSig) && !getTypePredicateOfSignature(targetSig) && getTypeFacts(sourceType, 50331648 /* IsUndefinedOrNull */) === getTypeFacts(targetType, 50331648 /* IsUndefinedOrNull */);\n        let related = callbacks ? compareSignaturesRelated(targetSig, sourceSig, checkMode & 8 /* StrictArity */ | (strictVariance ? 2 /* StrictCallback */ : 1 /* BivariantCallback */), reportErrors2, errorReporter, incompatibleErrorReporter, compareTypes, reportUnreliableMarkers) : !(checkMode & 3 /* Callback */) && !strictVariance && compareTypes(\n          sourceType,\n          targetType,\n          /*reportErrors*/\n          false\n        ) || compareTypes(targetType, sourceType, reportErrors2);\n        if (related && checkMode & 8 /* StrictArity */ && i >= getMinArgumentCount(source) && i < getMinArgumentCount(target) && compareTypes(\n          sourceType,\n          targetType,\n          /*reportErrors*/\n          false\n        )) {\n          related = 0 /* False */;\n        }\n        if (!related) {\n          if (reportErrors2) {\n            errorReporter(Diagnostics.Types_of_parameters_0_and_1_are_incompatible, unescapeLeadingUnderscores(getParameterNameAtPosition(source, i)), unescapeLeadingUnderscores(getParameterNameAtPosition(target, i)));\n          }\n          return 0 /* False */;\n        }\n        result &= related;\n      }\n    }\n    if (!(checkMode & 4 /* IgnoreReturnTypes */)) {\n      const targetReturnType = isResolvingReturnTypeOfSignature(target) ? anyType : target.declaration && isJSConstructor(target.declaration) ? getDeclaredTypeOfClassOrInterface(getMergedSymbol(target.declaration.symbol)) : getReturnTypeOfSignature(target);\n      if (targetReturnType === voidType || targetReturnType === anyType) {\n        return result;\n      }\n      const sourceReturnType = isResolvingReturnTypeOfSignature(source) ? anyType : source.declaration && isJSConstructor(source.declaration) ? getDeclaredTypeOfClassOrInterface(getMergedSymbol(source.declaration.symbol)) : getReturnTypeOfSignature(source);\n      const targetTypePredicate = getTypePredicateOfSignature(target);\n      if (targetTypePredicate) {\n        const sourceTypePredicate = getTypePredicateOfSignature(source);\n        if (sourceTypePredicate) {\n          result &= compareTypePredicateRelatedTo(sourceTypePredicate, targetTypePredicate, reportErrors2, errorReporter, compareTypes);\n        } else if (isIdentifierTypePredicate(targetTypePredicate) || isThisTypePredicate(targetTypePredicate)) {\n          if (reportErrors2) {\n            errorReporter(Diagnostics.Signature_0_must_be_a_type_predicate, signatureToString(source));\n          }\n          return 0 /* False */;\n        }\n      } else {\n        result &= checkMode & 1 /* BivariantCallback */ && compareTypes(\n          targetReturnType,\n          sourceReturnType,\n          /*reportErrors*/\n          false\n        ) || compareTypes(sourceReturnType, targetReturnType, reportErrors2);\n        if (!result && reportErrors2 && incompatibleErrorReporter) {\n          incompatibleErrorReporter(sourceReturnType, targetReturnType);\n        }\n      }\n    }\n    return result;\n  }\n  function compareTypePredicateRelatedTo(source, target, reportErrors2, errorReporter, compareTypes) {\n    if (source.kind !== target.kind) {\n      if (reportErrors2) {\n        errorReporter(Diagnostics.A_this_based_type_guard_is_not_compatible_with_a_parameter_based_type_guard);\n        errorReporter(Diagnostics.Type_predicate_0_is_not_assignable_to_1, typePredicateToString(source), typePredicateToString(target));\n      }\n      return 0 /* False */;\n    }\n    if (source.kind === 1 /* Identifier */ || source.kind === 3 /* AssertsIdentifier */) {\n      if (source.parameterIndex !== target.parameterIndex) {\n        if (reportErrors2) {\n          errorReporter(Diagnostics.Parameter_0_is_not_in_the_same_position_as_parameter_1, source.parameterName, target.parameterName);\n          errorReporter(Diagnostics.Type_predicate_0_is_not_assignable_to_1, typePredicateToString(source), typePredicateToString(target));\n        }\n        return 0 /* False */;\n      }\n    }\n    const related = source.type === target.type ? -1 /* True */ : source.type && target.type ? compareTypes(source.type, target.type, reportErrors2) : 0 /* False */;\n    if (related === 0 /* False */ && reportErrors2) {\n      errorReporter(Diagnostics.Type_predicate_0_is_not_assignable_to_1, typePredicateToString(source), typePredicateToString(target));\n    }\n    return related;\n  }\n  function isImplementationCompatibleWithOverload(implementation, overload) {\n    const erasedSource = getErasedSignature(implementation);\n    const erasedTarget = getErasedSignature(overload);\n    const sourceReturnType = getReturnTypeOfSignature(erasedSource);\n    const targetReturnType = getReturnTypeOfSignature(erasedTarget);\n    if (targetReturnType === voidType || isTypeRelatedTo(targetReturnType, sourceReturnType, assignableRelation) || isTypeRelatedTo(sourceReturnType, targetReturnType, assignableRelation)) {\n      return isSignatureAssignableTo(\n        erasedSource,\n        erasedTarget,\n        /*ignoreReturnTypes*/\n        true\n      );\n    }\n    return false;\n  }\n  function isEmptyResolvedType(t) {\n    return t !== anyFunctionType && t.properties.length === 0 && t.callSignatures.length === 0 && t.constructSignatures.length === 0 && t.indexInfos.length === 0;\n  }\n  function isEmptyObjectType(type) {\n    return type.flags & 524288 /* Object */ ? !isGenericMappedType(type) && isEmptyResolvedType(resolveStructuredTypeMembers(type)) : type.flags & 67108864 /* NonPrimitive */ ? true : type.flags & 1048576 /* Union */ ? some(type.types, isEmptyObjectType) : type.flags & 2097152 /* Intersection */ ? every(type.types, isEmptyObjectType) : false;\n  }\n  function isEmptyAnonymousObjectType(type) {\n    return !!(getObjectFlags(type) & 16 /* Anonymous */ && (type.members && isEmptyResolvedType(type) || type.symbol && type.symbol.flags & 2048 /* TypeLiteral */ && getMembersOfSymbol(type.symbol).size === 0));\n  }\n  function isUnknownLikeUnionType(type) {\n    if (strictNullChecks && type.flags & 1048576 /* Union */) {\n      if (!(type.objectFlags & 33554432 /* IsUnknownLikeUnionComputed */)) {\n        const types = type.types;\n        type.objectFlags |= 33554432 /* IsUnknownLikeUnionComputed */ | (types.length >= 3 && types[0].flags & 32768 /* Undefined */ && types[1].flags & 65536 /* Null */ && some(types, isEmptyAnonymousObjectType) ? 67108864 /* IsUnknownLikeUnion */ : 0);\n      }\n      return !!(type.objectFlags & 67108864 /* IsUnknownLikeUnion */);\n    }\n    return false;\n  }\n  function containsUndefinedType(type) {\n    return !!((type.flags & 1048576 /* Union */ ? type.types[0] : type).flags & 32768 /* Undefined */);\n  }\n  function containsNonMissingUndefinedType(type) {\n    const candidate = type.flags & 1048576 /* Union */ ? type.types[0] : type;\n    return !!(candidate.flags & 32768 /* Undefined */) && candidate !== missingType;\n  }\n  function isStringIndexSignatureOnlyType(type) {\n    return type.flags & 524288 /* Object */ && !isGenericMappedType(type) && getPropertiesOfType(type).length === 0 && getIndexInfosOfType(type).length === 1 && !!getIndexInfoOfType(type, stringType) || type.flags & 3145728 /* UnionOrIntersection */ && every(type.types, isStringIndexSignatureOnlyType) || false;\n  }\n  function isEnumTypeRelatedTo(source, target, errorReporter) {\n    const sourceSymbol = source.flags & 8 /* EnumMember */ ? getParentOfSymbol(source) : source;\n    const targetSymbol = target.flags & 8 /* EnumMember */ ? getParentOfSymbol(target) : target;\n    if (sourceSymbol === targetSymbol) {\n      return true;\n    }\n    if (sourceSymbol.escapedName !== targetSymbol.escapedName || !(sourceSymbol.flags & 256 /* RegularEnum */) || !(targetSymbol.flags & 256 /* RegularEnum */)) {\n      return false;\n    }\n    const id = getSymbolId(sourceSymbol) + \",\" + getSymbolId(targetSymbol);\n    const entry = enumRelation.get(id);\n    if (entry !== void 0 && !(entry & 2 /* Failed */ && errorReporter)) {\n      return !!(entry & 1 /* Succeeded */);\n    }\n    const targetEnumType = getTypeOfSymbol(targetSymbol);\n    for (const sourceProperty of getPropertiesOfType(getTypeOfSymbol(sourceSymbol))) {\n      if (sourceProperty.flags & 8 /* EnumMember */) {\n        const targetProperty = getPropertyOfType(targetEnumType, sourceProperty.escapedName);\n        if (!targetProperty || !(targetProperty.flags & 8 /* EnumMember */)) {\n          if (errorReporter) {\n            errorReporter(Diagnostics.Property_0_is_missing_in_type_1, symbolName(sourceProperty), typeToString(\n              getDeclaredTypeOfSymbol(targetSymbol),\n              /*enclosingDeclaration*/\n              void 0,\n              64 /* UseFullyQualifiedType */\n            ));\n          }\n          enumRelation.set(id, 2 /* Failed */);\n          return false;\n        }\n        const sourceValue = getEnumMemberValue(getDeclarationOfKind(sourceProperty, 307 /* EnumMember */)).value;\n        const targetValue = getEnumMemberValue(getDeclarationOfKind(targetProperty, 307 /* EnumMember */)).value;\n        if (sourceValue !== targetValue) {\n          const sourceIsString = typeof sourceValue === \"string\";\n          const targetIsString = typeof targetValue === \"string\";\n          if (sourceValue !== void 0 && targetValue !== void 0) {\n            if (errorReporter) {\n              const escapedSource = sourceIsString ? `\"${escapeString(sourceValue)}\"` : sourceValue;\n              const escapedTarget = targetIsString ? `\"${escapeString(targetValue)}\"` : targetValue;\n              errorReporter(Diagnostics.Each_declaration_of_0_1_differs_in_its_value_where_2_was_expected_but_3_was_given, symbolName(targetSymbol), symbolName(targetProperty), escapedTarget, escapedSource);\n            }\n            enumRelation.set(id, 2 /* Failed */);\n            return false;\n          }\n          if (sourceIsString || targetIsString) {\n            if (errorReporter) {\n              const knownStringValue = sourceValue ?? targetValue;\n              Debug.assert(typeof knownStringValue === \"string\");\n              const escapedValue = `\"${escapeString(knownStringValue)}\"`;\n              errorReporter(Diagnostics.One_value_of_0_1_is_the_string_2_and_the_other_is_assumed_to_be_an_unknown_numeric_value, symbolName(targetSymbol), symbolName(targetProperty), escapedValue);\n            }\n            enumRelation.set(id, 2 /* Failed */);\n            return false;\n          }\n        }\n      }\n    }\n    enumRelation.set(id, 1 /* Succeeded */);\n    return true;\n  }\n  function isSimpleTypeRelatedTo(source, target, relation, errorReporter) {\n    const s = source.flags;\n    const t = target.flags;\n    if (t & 1 /* Any */ || s & 131072 /* Never */ || source === wildcardType) return true;\n    if (t & 2 /* Unknown */ && !(relation === strictSubtypeRelation && s & 1 /* Any */)) return true;\n    if (t & 131072 /* Never */) return false;\n    if (s & 402653316 /* StringLike */ && t & 4 /* String */) return true;\n    if (s & 128 /* StringLiteral */ && s & 1024 /* EnumLiteral */ && t & 128 /* StringLiteral */ && !(t & 1024 /* EnumLiteral */) && source.value === target.value) return true;\n    if (s & 296 /* NumberLike */ && t & 8 /* Number */) return true;\n    if (s & 256 /* NumberLiteral */ && s & 1024 /* EnumLiteral */ && t & 256 /* NumberLiteral */ && !(t & 1024 /* EnumLiteral */) && source.value === target.value) return true;\n    if (s & 2112 /* BigIntLike */ && t & 64 /* BigInt */) return true;\n    if (s & 528 /* BooleanLike */ && t & 16 /* Boolean */) return true;\n    if (s & 12288 /* ESSymbolLike */ && t & 4096 /* ESSymbol */) return true;\n    if (s & 32 /* Enum */ && t & 32 /* Enum */ && source.symbol.escapedName === target.symbol.escapedName && isEnumTypeRelatedTo(source.symbol, target.symbol, errorReporter)) return true;\n    if (s & 1024 /* EnumLiteral */ && t & 1024 /* EnumLiteral */) {\n      if (s & 1048576 /* Union */ && t & 1048576 /* Union */ && isEnumTypeRelatedTo(source.symbol, target.symbol, errorReporter)) return true;\n      if (s & 2944 /* Literal */ && t & 2944 /* Literal */ && source.value === target.value && isEnumTypeRelatedTo(source.symbol, target.symbol, errorReporter)) return true;\n    }\n    if (s & 32768 /* Undefined */ && (!strictNullChecks && !(t & 3145728 /* UnionOrIntersection */) || t & (32768 /* Undefined */ | 16384 /* Void */))) return true;\n    if (s & 65536 /* Null */ && (!strictNullChecks && !(t & 3145728 /* UnionOrIntersection */) || t & 65536 /* Null */)) return true;\n    if (s & 524288 /* Object */ && t & 67108864 /* NonPrimitive */ && !(relation === strictSubtypeRelation && isEmptyAnonymousObjectType(source) && !(getObjectFlags(source) & 8192 /* FreshLiteral */))) return true;\n    if (relation === assignableRelation || relation === comparableRelation) {\n      if (s & 1 /* Any */) return true;\n      if (s & 8 /* Number */ && (t & 32 /* Enum */ || t & 256 /* NumberLiteral */ && t & 1024 /* EnumLiteral */)) return true;\n      if (s & 256 /* NumberLiteral */ && !(s & 1024 /* EnumLiteral */) && (t & 32 /* Enum */ || t & 256 /* NumberLiteral */ && t & 1024 /* EnumLiteral */ && source.value === target.value)) return true;\n      if (isUnknownLikeUnionType(target)) return true;\n    }\n    return false;\n  }\n  function isTypeRelatedTo(source, target, relation) {\n    if (isFreshLiteralType(source)) {\n      source = source.regularType;\n    }\n    if (isFreshLiteralType(target)) {\n      target = target.regularType;\n    }\n    if (source === target) {\n      return true;\n    }\n    if (relation !== identityRelation) {\n      if (relation === comparableRelation && !(target.flags & 131072 /* Never */) && isSimpleTypeRelatedTo(target, source, relation) || isSimpleTypeRelatedTo(source, target, relation)) {\n        return true;\n      }\n    } else if (!((source.flags | target.flags) & (3145728 /* UnionOrIntersection */ | 8388608 /* IndexedAccess */ | 16777216 /* Conditional */ | 33554432 /* Substitution */))) {\n      if (source.flags !== target.flags) return false;\n      if (source.flags & 67358815 /* Singleton */) return true;\n    }\n    if (source.flags & 524288 /* Object */ && target.flags & 524288 /* Object */) {\n      const related = relation.get(getRelationKey(\n        source,\n        target,\n        0 /* None */,\n        relation,\n        /*ignoreConstraints*/\n        false\n      ));\n      if (related !== void 0) {\n        return !!(related & 1 /* Succeeded */);\n      }\n    }\n    if (source.flags & 469499904 /* StructuredOrInstantiable */ || target.flags & 469499904 /* StructuredOrInstantiable */) {\n      return checkTypeRelatedTo(\n        source,\n        target,\n        relation,\n        /*errorNode*/\n        void 0\n      );\n    }\n    return false;\n  }\n  function isIgnoredJsxProperty(source, sourceProp) {\n    return getObjectFlags(source) & 2048 /* JsxAttributes */ && isHyphenatedJsxName(sourceProp.escapedName);\n  }\n  function getNormalizedType(type, writing) {\n    while (true) {\n      const t = isFreshLiteralType(type) ? type.regularType : isGenericTupleType(type) ? getNormalizedTupleType(type, writing) : getObjectFlags(type) & 4 /* Reference */ ? type.node ? createTypeReference(type.target, getTypeArguments(type)) : getSingleBaseForNonAugmentingSubtype(type) || type : type.flags & 3145728 /* UnionOrIntersection */ ? getNormalizedUnionOrIntersectionType(type, writing) : type.flags & 33554432 /* Substitution */ ? writing ? type.baseType : getSubstitutionIntersection(type) : type.flags & 25165824 /* Simplifiable */ ? getSimplifiedType(type, writing) : type;\n      if (t === type) return t;\n      type = t;\n    }\n  }\n  function getNormalizedUnionOrIntersectionType(type, writing) {\n    const reduced = getReducedType(type);\n    if (reduced !== type) {\n      return reduced;\n    }\n    if (type.flags & 2097152 /* Intersection */ && shouldNormalizeIntersection(type)) {\n      const normalizedTypes = sameMap(type.types, (t) => getNormalizedType(t, writing));\n      if (normalizedTypes !== type.types) {\n        return getIntersectionType(normalizedTypes);\n      }\n    }\n    return type;\n  }\n  function shouldNormalizeIntersection(type) {\n    let hasInstantiable = false;\n    let hasNullableOrEmpty = false;\n    for (const t of type.types) {\n      hasInstantiable || (hasInstantiable = !!(t.flags & 465829888 /* Instantiable */));\n      hasNullableOrEmpty || (hasNullableOrEmpty = !!(t.flags & 98304 /* Nullable */) || isEmptyAnonymousObjectType(t));\n      if (hasInstantiable && hasNullableOrEmpty) return true;\n    }\n    return false;\n  }\n  function getNormalizedTupleType(type, writing) {\n    const elements = getElementTypes(type);\n    const normalizedElements = sameMap(elements, (t) => t.flags & 25165824 /* Simplifiable */ ? getSimplifiedType(t, writing) : t);\n    return elements !== normalizedElements ? createNormalizedTupleType(type.target, normalizedElements) : type;\n  }\n  function checkTypeRelatedTo(source, target, relation, errorNode, headMessage, containingMessageChain, errorOutputContainer) {\n    var _a;\n    let errorInfo;\n    let relatedInfo;\n    let maybeKeys;\n    let maybeKeysSet;\n    let sourceStack;\n    let targetStack;\n    let maybeCount = 0;\n    let sourceDepth = 0;\n    let targetDepth = 0;\n    let expandingFlags = 0 /* None */;\n    let overflow = false;\n    let overrideNextErrorInfo = 0;\n    let skipParentCounter = 0;\n    let lastSkippedInfo;\n    let incompatibleStack;\n    let relationCount = 16e6 - relation.size >> 3;\n    Debug.assert(relation !== identityRelation || !errorNode, \"no error reporting in identity checking\");\n    const result = isRelatedTo(\n      source,\n      target,\n      3 /* Both */,\n      /*reportErrors*/\n      !!errorNode,\n      headMessage\n    );\n    if (incompatibleStack) {\n      reportIncompatibleStack();\n    }\n    if (overflow) {\n      const id = getRelationKey(\n        source,\n        target,\n        /*intersectionState*/\n        0 /* None */,\n        relation,\n        /*ignoreConstraints*/\n        false\n      );\n      relation.set(id, 2 /* Failed */ | (relationCount <= 0 ? 32 /* ComplexityOverflow */ : 64 /* StackDepthOverflow */));\n      (_a = tracing) == null ? void 0 : _a.instant(tracing.Phase.CheckTypes, \"checkTypeRelatedTo_DepthLimit\", { sourceId: source.id, targetId: target.id, depth: sourceDepth, targetDepth });\n      const message = relationCount <= 0 ? Diagnostics.Excessive_complexity_comparing_types_0_and_1 : Diagnostics.Excessive_stack_depth_comparing_types_0_and_1;\n      const diag2 = error2(errorNode || currentNode, message, typeToString(source), typeToString(target));\n      if (errorOutputContainer) {\n        (errorOutputContainer.errors || (errorOutputContainer.errors = [])).push(diag2);\n      }\n    } else if (errorInfo) {\n      if (containingMessageChain) {\n        const chain = containingMessageChain();\n        if (chain) {\n          concatenateDiagnosticMessageChains(chain, errorInfo);\n          errorInfo = chain;\n        }\n      }\n      let relatedInformation;\n      if (headMessage && errorNode && !result && source.symbol) {\n        const links = getSymbolLinks(source.symbol);\n        if (links.originatingImport && !isImportCall(links.originatingImport)) {\n          const helpfulRetry = checkTypeRelatedTo(\n            getTypeOfSymbol(links.target),\n            target,\n            relation,\n            /*errorNode*/\n            void 0\n          );\n          if (helpfulRetry) {\n            const diag3 = createDiagnosticForNode(links.originatingImport, Diagnostics.Type_originates_at_this_import_A_namespace_style_import_cannot_be_called_or_constructed_and_will_cause_a_failure_at_runtime_Consider_using_a_default_import_or_import_require_here_instead);\n            relatedInformation = append(relatedInformation, diag3);\n          }\n        }\n      }\n      const diag2 = createDiagnosticForNodeFromMessageChain(getSourceFileOfNode(errorNode), errorNode, errorInfo, relatedInformation);\n      if (relatedInfo) {\n        addRelatedInfo(diag2, ...relatedInfo);\n      }\n      if (errorOutputContainer) {\n        (errorOutputContainer.errors || (errorOutputContainer.errors = [])).push(diag2);\n      }\n      if (!errorOutputContainer || !errorOutputContainer.skipLogging) {\n        diagnostics.add(diag2);\n      }\n    }\n    if (errorNode && errorOutputContainer && errorOutputContainer.skipLogging && result === 0 /* False */) {\n      Debug.assert(!!errorOutputContainer.errors, \"missed opportunity to interact with error.\");\n    }\n    return result !== 0 /* False */;\n    function resetErrorInfo(saved) {\n      errorInfo = saved.errorInfo;\n      lastSkippedInfo = saved.lastSkippedInfo;\n      incompatibleStack = saved.incompatibleStack;\n      overrideNextErrorInfo = saved.overrideNextErrorInfo;\n      skipParentCounter = saved.skipParentCounter;\n      relatedInfo = saved.relatedInfo;\n    }\n    function captureErrorCalculationState() {\n      return {\n        errorInfo,\n        lastSkippedInfo,\n        incompatibleStack: incompatibleStack == null ? void 0 : incompatibleStack.slice(),\n        overrideNextErrorInfo,\n        skipParentCounter,\n        relatedInfo: relatedInfo == null ? void 0 : relatedInfo.slice()\n      };\n    }\n    function reportIncompatibleError(message, ...args) {\n      overrideNextErrorInfo++;\n      lastSkippedInfo = void 0;\n      (incompatibleStack || (incompatibleStack = [])).push([message, ...args]);\n    }\n    function reportIncompatibleStack() {\n      const stack = incompatibleStack || [];\n      incompatibleStack = void 0;\n      const info = lastSkippedInfo;\n      lastSkippedInfo = void 0;\n      if (stack.length === 1) {\n        reportError(...stack[0]);\n        if (info) {\n          reportRelationError(\n            /*message*/\n            void 0,\n            ...info\n          );\n        }\n        return;\n      }\n      let path = \"\";\n      const secondaryRootErrors = [];\n      while (stack.length) {\n        const [msg, ...args] = stack.pop();\n        switch (msg.code) {\n          case Diagnostics.Types_of_property_0_are_incompatible.code: {\n            if (path.indexOf(\"new \") === 0) {\n              path = `(${path})`;\n            }\n            const str = \"\" + args[0];\n            if (path.length === 0) {\n              path = `${str}`;\n            } else if (isIdentifierText(str, getEmitScriptTarget(compilerOptions))) {\n              path = `${path}.${str}`;\n            } else if (str[0] === \"[\" && str[str.length - 1] === \"]\") {\n              path = `${path}${str}`;\n            } else {\n              path = `${path}[${str}]`;\n            }\n            break;\n          }\n          case Diagnostics.Call_signature_return_types_0_and_1_are_incompatible.code:\n          case Diagnostics.Construct_signature_return_types_0_and_1_are_incompatible.code:\n          case Diagnostics.Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1.code:\n          case Diagnostics.Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1.code: {\n            if (path.length === 0) {\n              let mappedMsg = msg;\n              if (msg.code === Diagnostics.Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1.code) {\n                mappedMsg = Diagnostics.Call_signature_return_types_0_and_1_are_incompatible;\n              } else if (msg.code === Diagnostics.Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1.code) {\n                mappedMsg = Diagnostics.Construct_signature_return_types_0_and_1_are_incompatible;\n              }\n              secondaryRootErrors.unshift([mappedMsg, args[0], args[1]]);\n            } else {\n              const prefix = msg.code === Diagnostics.Construct_signature_return_types_0_and_1_are_incompatible.code || msg.code === Diagnostics.Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1.code ? \"new \" : \"\";\n              const params = msg.code === Diagnostics.Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1.code || msg.code === Diagnostics.Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1.code ? \"\" : \"...\";\n              path = `${prefix}${path}(${params})`;\n            }\n            break;\n          }\n          case Diagnostics.Type_at_position_0_in_source_is_not_compatible_with_type_at_position_1_in_target.code: {\n            secondaryRootErrors.unshift([Diagnostics.Type_at_position_0_in_source_is_not_compatible_with_type_at_position_1_in_target, args[0], args[1]]);\n            break;\n          }\n          case Diagnostics.Type_at_positions_0_through_1_in_source_is_not_compatible_with_type_at_position_2_in_target.code: {\n            secondaryRootErrors.unshift([Diagnostics.Type_at_positions_0_through_1_in_source_is_not_compatible_with_type_at_position_2_in_target, args[0], args[1], args[2]]);\n            break;\n          }\n          default:\n            return Debug.fail(`Unhandled Diagnostic: ${msg.code}`);\n        }\n      }\n      if (path) {\n        reportError(\n          path[path.length - 1] === \")\" ? Diagnostics.The_types_returned_by_0_are_incompatible_between_these_types : Diagnostics.The_types_of_0_are_incompatible_between_these_types,\n          path\n        );\n      } else {\n        secondaryRootErrors.shift();\n      }\n      for (const [msg, ...args] of secondaryRootErrors) {\n        const originalValue = msg.elidedInCompatabilityPyramid;\n        msg.elidedInCompatabilityPyramid = false;\n        reportError(msg, ...args);\n        msg.elidedInCompatabilityPyramid = originalValue;\n      }\n      if (info) {\n        reportRelationError(\n          /*message*/\n          void 0,\n          ...info\n        );\n      }\n    }\n    function reportError(message, ...args) {\n      Debug.assert(!!errorNode);\n      if (incompatibleStack) reportIncompatibleStack();\n      if (message.elidedInCompatabilityPyramid) return;\n      if (skipParentCounter === 0) {\n        errorInfo = chainDiagnosticMessages(errorInfo, message, ...args);\n      } else {\n        skipParentCounter--;\n      }\n    }\n    function reportParentSkippedError(message, ...args) {\n      reportError(message, ...args);\n      skipParentCounter++;\n    }\n    function associateRelatedInfo(info) {\n      Debug.assert(!!errorInfo);\n      if (!relatedInfo) {\n        relatedInfo = [info];\n      } else {\n        relatedInfo.push(info);\n      }\n    }\n    function reportRelationError(message, source2, target2) {\n      if (incompatibleStack) reportIncompatibleStack();\n      const [sourceType, targetType] = getTypeNamesForErrorDisplay(source2, target2);\n      let generalizedSource = source2;\n      let generalizedSourceType = sourceType;\n      if (!(target2.flags & 131072 /* Never */) && isLiteralType(source2) && !typeCouldHaveTopLevelSingletonTypes(target2)) {\n        generalizedSource = getBaseTypeOfLiteralType(source2);\n        Debug.assert(!isTypeAssignableTo(generalizedSource, target2), \"generalized source shouldn't be assignable\");\n        generalizedSourceType = getTypeNameForErrorDisplay(generalizedSource);\n      }\n      const targetFlags = target2.flags & 8388608 /* IndexedAccess */ && !(source2.flags & 8388608 /* IndexedAccess */) ? target2.objectType.flags : target2.flags;\n      if (targetFlags & 262144 /* TypeParameter */ && target2 !== markerSuperTypeForCheck && target2 !== markerSubTypeForCheck) {\n        const constraint = getBaseConstraintOfType(target2);\n        let needsOriginalSource;\n        if (constraint && (isTypeAssignableTo(generalizedSource, constraint) || (needsOriginalSource = isTypeAssignableTo(source2, constraint)))) {\n          reportError(\n            Diagnostics._0_is_assignable_to_the_constraint_of_type_1_but_1_could_be_instantiated_with_a_different_subtype_of_constraint_2,\n            needsOriginalSource ? sourceType : generalizedSourceType,\n            targetType,\n            typeToString(constraint)\n          );\n        } else {\n          errorInfo = void 0;\n          reportError(\n            Diagnostics._0_could_be_instantiated_with_an_arbitrary_type_which_could_be_unrelated_to_1,\n            targetType,\n            generalizedSourceType\n          );\n        }\n      }\n      if (!message) {\n        if (relation === comparableRelation) {\n          message = Diagnostics.Type_0_is_not_comparable_to_type_1;\n        } else if (sourceType === targetType) {\n          message = Diagnostics.Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated;\n        } else if (exactOptionalPropertyTypes && getExactOptionalUnassignableProperties(source2, target2).length) {\n          message = Diagnostics.Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties;\n        } else {\n          if (source2.flags & 128 /* StringLiteral */ && target2.flags & 1048576 /* Union */) {\n            const suggestedType = getSuggestedTypeForNonexistentStringLiteralType(source2, target2);\n            if (suggestedType) {\n              reportError(Diagnostics.Type_0_is_not_assignable_to_type_1_Did_you_mean_2, generalizedSourceType, targetType, typeToString(suggestedType));\n              return;\n            }\n          }\n          message = Diagnostics.Type_0_is_not_assignable_to_type_1;\n        }\n      } else if (message === Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1 && exactOptionalPropertyTypes && getExactOptionalUnassignableProperties(source2, target2).length) {\n        message = Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties;\n      }\n      reportError(message, generalizedSourceType, targetType);\n    }\n    function tryElaborateErrorsForPrimitivesAndObjects(source2, target2) {\n      const sourceType = symbolValueDeclarationIsContextSensitive(source2.symbol) ? typeToString(source2, source2.symbol.valueDeclaration) : typeToString(source2);\n      const targetType = symbolValueDeclarationIsContextSensitive(target2.symbol) ? typeToString(target2, target2.symbol.valueDeclaration) : typeToString(target2);\n      if (globalStringType === source2 && stringType === target2 || globalNumberType === source2 && numberType === target2 || globalBooleanType === source2 && booleanType === target2 || getGlobalESSymbolType() === source2 && esSymbolType === target2) {\n        reportError(Diagnostics._0_is_a_primitive_but_1_is_a_wrapper_object_Prefer_using_0_when_possible, targetType, sourceType);\n      }\n    }\n    function tryElaborateArrayLikeErrors(source2, target2, reportErrors2) {\n      if (isTupleType(source2)) {\n        if (source2.target.readonly && isMutableArrayOrTuple(target2)) {\n          if (reportErrors2) {\n            reportError(Diagnostics.The_type_0_is_readonly_and_cannot_be_assigned_to_the_mutable_type_1, typeToString(source2), typeToString(target2));\n          }\n          return false;\n        }\n        return isArrayOrTupleType(target2);\n      }\n      if (isReadonlyArrayType(source2) && isMutableArrayOrTuple(target2)) {\n        if (reportErrors2) {\n          reportError(Diagnostics.The_type_0_is_readonly_and_cannot_be_assigned_to_the_mutable_type_1, typeToString(source2), typeToString(target2));\n        }\n        return false;\n      }\n      if (isTupleType(target2)) {\n        return isArrayType(source2);\n      }\n      return true;\n    }\n    function isRelatedToWorker(source2, target2, reportErrors2) {\n      return isRelatedTo(source2, target2, 3 /* Both */, reportErrors2);\n    }\n    function isRelatedTo(originalSource, originalTarget, recursionFlags = 3 /* Both */, reportErrors2 = false, headMessage2, intersectionState = 0 /* None */) {\n      if (originalSource === originalTarget) return -1 /* True */;\n      if (originalSource.flags & 524288 /* Object */ && originalTarget.flags & 402784252 /* Primitive */) {\n        if (relation === comparableRelation && !(originalTarget.flags & 131072 /* Never */) && isSimpleTypeRelatedTo(originalTarget, originalSource, relation) || isSimpleTypeRelatedTo(originalSource, originalTarget, relation, reportErrors2 ? reportError : void 0)) {\n          return -1 /* True */;\n        }\n        if (reportErrors2) {\n          reportErrorResults(originalSource, originalTarget, originalSource, originalTarget, headMessage2);\n        }\n        return 0 /* False */;\n      }\n      const source2 = getNormalizedType(\n        originalSource,\n        /*writing*/\n        false\n      );\n      let target2 = getNormalizedType(\n        originalTarget,\n        /*writing*/\n        true\n      );\n      if (source2 === target2) return -1 /* True */;\n      if (relation === identityRelation) {\n        if (source2.flags !== target2.flags) return 0 /* False */;\n        if (source2.flags & 67358815 /* Singleton */) return -1 /* True */;\n        traceUnionsOrIntersectionsTooLarge(source2, target2);\n        return recursiveTypeRelatedTo(\n          source2,\n          target2,\n          /*reportErrors*/\n          false,\n          0 /* None */,\n          recursionFlags\n        );\n      }\n      if (source2.flags & 262144 /* TypeParameter */ && getConstraintOfType(source2) === target2) {\n        return -1 /* True */;\n      }\n      if (source2.flags & 470302716 /* DefinitelyNonNullable */ && target2.flags & 1048576 /* Union */) {\n        const types = target2.types;\n        const candidate = types.length === 2 && types[0].flags & 98304 /* Nullable */ ? types[1] : types.length === 3 && types[0].flags & 98304 /* Nullable */ && types[1].flags & 98304 /* Nullable */ ? types[2] : void 0;\n        if (candidate && !(candidate.flags & 98304 /* Nullable */)) {\n          target2 = getNormalizedType(\n            candidate,\n            /*writing*/\n            true\n          );\n          if (source2 === target2) return -1 /* True */;\n        }\n      }\n      if (relation === comparableRelation && !(target2.flags & 131072 /* Never */) && isSimpleTypeRelatedTo(target2, source2, relation) || isSimpleTypeRelatedTo(source2, target2, relation, reportErrors2 ? reportError : void 0)) return -1 /* True */;\n      if (source2.flags & 469499904 /* StructuredOrInstantiable */ || target2.flags & 469499904 /* StructuredOrInstantiable */) {\n        const isPerformingExcessPropertyChecks = !(intersectionState & 2 /* Target */) && (isObjectLiteralType2(source2) && getObjectFlags(source2) & 8192 /* FreshLiteral */);\n        if (isPerformingExcessPropertyChecks) {\n          if (hasExcessProperties(source2, target2, reportErrors2)) {\n            if (reportErrors2) {\n              reportRelationError(headMessage2, source2, originalTarget.aliasSymbol ? originalTarget : target2);\n            }\n            return 0 /* False */;\n          }\n        }\n        const isPerformingCommonPropertyChecks = (relation !== comparableRelation || isUnitType(source2)) && !(intersectionState & 2 /* Target */) && source2.flags & (402784252 /* Primitive */ | 524288 /* Object */ | 2097152 /* Intersection */) && source2 !== globalObjectType && target2.flags & (524288 /* Object */ | 2097152 /* Intersection */) && isWeakType(target2) && (getPropertiesOfType(source2).length > 0 || typeHasCallOrConstructSignatures(source2));\n        const isComparingJsxAttributes = !!(getObjectFlags(source2) & 2048 /* JsxAttributes */);\n        if (isPerformingCommonPropertyChecks && !hasCommonProperties(source2, target2, isComparingJsxAttributes)) {\n          if (reportErrors2) {\n            const sourceString = typeToString(originalSource.aliasSymbol ? originalSource : source2);\n            const targetString = typeToString(originalTarget.aliasSymbol ? originalTarget : target2);\n            const calls = getSignaturesOfType(source2, 0 /* Call */);\n            const constructs = getSignaturesOfType(source2, 1 /* Construct */);\n            if (calls.length > 0 && isRelatedTo(\n              getReturnTypeOfSignature(calls[0]),\n              target2,\n              1 /* Source */,\n              /*reportErrors*/\n              false\n            ) || constructs.length > 0 && isRelatedTo(\n              getReturnTypeOfSignature(constructs[0]),\n              target2,\n              1 /* Source */,\n              /*reportErrors*/\n              false\n            )) {\n              reportError(Diagnostics.Value_of_type_0_has_no_properties_in_common_with_type_1_Did_you_mean_to_call_it, sourceString, targetString);\n            } else {\n              reportError(Diagnostics.Type_0_has_no_properties_in_common_with_type_1, sourceString, targetString);\n            }\n          }\n          return 0 /* False */;\n        }\n        traceUnionsOrIntersectionsTooLarge(source2, target2);\n        const skipCaching = source2.flags & 1048576 /* Union */ && source2.types.length < 4 && !(target2.flags & 1048576 /* Union */) || target2.flags & 1048576 /* Union */ && target2.types.length < 4 && !(source2.flags & 469499904 /* StructuredOrInstantiable */);\n        const result2 = skipCaching ? unionOrIntersectionRelatedTo(source2, target2, reportErrors2, intersectionState) : recursiveTypeRelatedTo(source2, target2, reportErrors2, intersectionState, recursionFlags);\n        if (result2) {\n          return result2;\n        }\n      }\n      if (reportErrors2) {\n        reportErrorResults(originalSource, originalTarget, source2, target2, headMessage2);\n      }\n      return 0 /* False */;\n    }\n    function reportErrorResults(originalSource, originalTarget, source2, target2, headMessage2) {\n      var _a2, _b;\n      const sourceHasBase = !!getSingleBaseForNonAugmentingSubtype(originalSource);\n      const targetHasBase = !!getSingleBaseForNonAugmentingSubtype(originalTarget);\n      source2 = originalSource.aliasSymbol || sourceHasBase ? originalSource : source2;\n      target2 = originalTarget.aliasSymbol || targetHasBase ? originalTarget : target2;\n      let maybeSuppress = overrideNextErrorInfo > 0;\n      if (maybeSuppress) {\n        overrideNextErrorInfo--;\n      }\n      if (source2.flags & 524288 /* Object */ && target2.flags & 524288 /* Object */) {\n        const currentError = errorInfo;\n        tryElaborateArrayLikeErrors(\n          source2,\n          target2,\n          /*reportErrors*/\n          true\n        );\n        if (errorInfo !== currentError) {\n          maybeSuppress = !!errorInfo;\n        }\n      }\n      if (source2.flags & 524288 /* Object */ && target2.flags & 402784252 /* Primitive */) {\n        tryElaborateErrorsForPrimitivesAndObjects(source2, target2);\n      } else if (source2.symbol && source2.flags & 524288 /* Object */ && globalObjectType === source2) {\n        reportError(Diagnostics.The_Object_type_is_assignable_to_very_few_other_types_Did_you_mean_to_use_the_any_type_instead);\n      } else if (getObjectFlags(source2) & 2048 /* JsxAttributes */ && target2.flags & 2097152 /* Intersection */) {\n        const targetTypes = target2.types;\n        const intrinsicAttributes = getJsxType(JsxNames.IntrinsicAttributes, errorNode);\n        const intrinsicClassAttributes = getJsxType(JsxNames.IntrinsicClassAttributes, errorNode);\n        if (!isErrorType(intrinsicAttributes) && !isErrorType(intrinsicClassAttributes) && (contains(targetTypes, intrinsicAttributes) || contains(targetTypes, intrinsicClassAttributes))) {\n          return;\n        }\n      } else {\n        errorInfo = elaborateNeverIntersection(errorInfo, originalTarget);\n      }\n      if (!headMessage2 && maybeSuppress) {\n        const savedErrorState = captureErrorCalculationState();\n        reportRelationError(headMessage2, source2, target2);\n        let canonical;\n        if (errorInfo && errorInfo !== savedErrorState.errorInfo) {\n          canonical = { code: errorInfo.code, messageText: errorInfo.messageText };\n        }\n        resetErrorInfo(savedErrorState);\n        if (canonical && errorInfo) {\n          errorInfo.canonicalHead = canonical;\n        }\n        lastSkippedInfo = [source2, target2];\n        return;\n      }\n      reportRelationError(headMessage2, source2, target2);\n      if (source2.flags & 262144 /* TypeParameter */ && ((_b = (_a2 = source2.symbol) == null ? void 0 : _a2.declarations) == null ? void 0 : _b[0]) && !getConstraintOfType(source2)) {\n        const syntheticParam = cloneTypeParameter(source2);\n        syntheticParam.constraint = instantiateType(target2, makeUnaryTypeMapper(source2, syntheticParam));\n        if (hasNonCircularBaseConstraint(syntheticParam)) {\n          const targetConstraintString = typeToString(target2, source2.symbol.declarations[0]);\n          associateRelatedInfo(createDiagnosticForNode(source2.symbol.declarations[0], Diagnostics.This_type_parameter_might_need_an_extends_0_constraint, targetConstraintString));\n        }\n      }\n    }\n    function traceUnionsOrIntersectionsTooLarge(source2, target2) {\n      if (!tracing) {\n        return;\n      }\n      if (source2.flags & 3145728 /* UnionOrIntersection */ && target2.flags & 3145728 /* UnionOrIntersection */) {\n        const sourceUnionOrIntersection = source2;\n        const targetUnionOrIntersection = target2;\n        if (sourceUnionOrIntersection.objectFlags & targetUnionOrIntersection.objectFlags & 32768 /* PrimitiveUnion */) {\n          return;\n        }\n        const sourceSize = sourceUnionOrIntersection.types.length;\n        const targetSize = targetUnionOrIntersection.types.length;\n        if (sourceSize * targetSize > 1e6) {\n          tracing.instant(tracing.Phase.CheckTypes, \"traceUnionsOrIntersectionsTooLarge_DepthLimit\", {\n            sourceId: source2.id,\n            sourceSize,\n            targetId: target2.id,\n            targetSize,\n            pos: errorNode == null ? void 0 : errorNode.pos,\n            end: errorNode == null ? void 0 : errorNode.end\n          });\n        }\n      }\n    }\n    function getTypeOfPropertyInTypes(types, name) {\n      const appendPropType = (propTypes, type) => {\n        var _a2;\n        type = getApparentType(type);\n        const prop = type.flags & 3145728 /* UnionOrIntersection */ ? getPropertyOfUnionOrIntersectionType(type, name) : getPropertyOfObjectType(type, name);\n        const propType = prop && getTypeOfSymbol(prop) || ((_a2 = getApplicableIndexInfoForName(type, name)) == null ? void 0 : _a2.type) || undefinedType;\n        return append(propTypes, propType);\n      };\n      return getUnionType(reduceLeft(\n        types,\n        appendPropType,\n        /*initial*/\n        void 0\n      ) || emptyArray);\n    }\n    function hasExcessProperties(source2, target2, reportErrors2) {\n      var _a2;\n      if (!isExcessPropertyCheckTarget(target2) || !noImplicitAny && getObjectFlags(target2) & 4096 /* JSLiteral */) {\n        return false;\n      }\n      const isComparingJsxAttributes = !!(getObjectFlags(source2) & 2048 /* JsxAttributes */);\n      if ((relation === assignableRelation || relation === comparableRelation) && (isTypeSubsetOf(globalObjectType, target2) || !isComparingJsxAttributes && isEmptyObjectType(target2))) {\n        return false;\n      }\n      let reducedTarget = target2;\n      let checkTypes;\n      if (target2.flags & 1048576 /* Union */) {\n        reducedTarget = findMatchingDiscriminantType(source2, target2, isRelatedTo) || filterPrimitivesIfContainsNonPrimitive(target2);\n        checkTypes = reducedTarget.flags & 1048576 /* Union */ ? reducedTarget.types : [reducedTarget];\n      }\n      for (const prop of getPropertiesOfType(source2)) {\n        if (shouldCheckAsExcessProperty(prop, source2.symbol) && !isIgnoredJsxProperty(source2, prop)) {\n          if (!isKnownProperty(reducedTarget, prop.escapedName, isComparingJsxAttributes)) {\n            if (reportErrors2) {\n              const errorTarget = filterType(reducedTarget, isExcessPropertyCheckTarget);\n              if (!errorNode) return Debug.fail();\n              if (isJsxAttributes(errorNode) || isJsxOpeningLikeElement(errorNode) || isJsxOpeningLikeElement(errorNode.parent)) {\n                if (prop.valueDeclaration && isJsxAttribute(prop.valueDeclaration) && getSourceFileOfNode(errorNode) === getSourceFileOfNode(prop.valueDeclaration.name)) {\n                  errorNode = prop.valueDeclaration.name;\n                }\n                const propName = symbolToString(prop);\n                const suggestionSymbol = getSuggestedSymbolForNonexistentJSXAttribute(propName, errorTarget);\n                const suggestion = suggestionSymbol ? symbolToString(suggestionSymbol) : void 0;\n                if (suggestion) {\n                  reportError(Diagnostics.Property_0_does_not_exist_on_type_1_Did_you_mean_2, propName, typeToString(errorTarget), suggestion);\n                } else {\n                  reportError(Diagnostics.Property_0_does_not_exist_on_type_1, propName, typeToString(errorTarget));\n                }\n              } else {\n                const objectLiteralDeclaration = ((_a2 = source2.symbol) == null ? void 0 : _a2.declarations) && firstOrUndefined(source2.symbol.declarations);\n                let suggestion;\n                if (prop.valueDeclaration && findAncestor(prop.valueDeclaration, (d) => d === objectLiteralDeclaration) && getSourceFileOfNode(objectLiteralDeclaration) === getSourceFileOfNode(errorNode)) {\n                  const propDeclaration = prop.valueDeclaration;\n                  Debug.assertNode(propDeclaration, isObjectLiteralElementLike);\n                  const name = propDeclaration.name;\n                  errorNode = name;\n                  if (isIdentifier(name)) {\n                    suggestion = getSuggestionForNonexistentProperty(name, errorTarget);\n                  }\n                }\n                if (suggestion !== void 0) {\n                  reportParentSkippedError(Diagnostics.Object_literal_may_only_specify_known_properties_but_0_does_not_exist_in_type_1_Did_you_mean_to_write_2, symbolToString(prop), typeToString(errorTarget), suggestion);\n                } else {\n                  reportParentSkippedError(Diagnostics.Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1, symbolToString(prop), typeToString(errorTarget));\n                }\n              }\n            }\n            return true;\n          }\n          if (checkTypes && !isRelatedTo(getTypeOfSymbol(prop), getTypeOfPropertyInTypes(checkTypes, prop.escapedName), 3 /* Both */, reportErrors2)) {\n            if (reportErrors2) {\n              reportIncompatibleError(Diagnostics.Types_of_property_0_are_incompatible, symbolToString(prop));\n            }\n            return true;\n          }\n        }\n      }\n      return false;\n    }\n    function shouldCheckAsExcessProperty(prop, container) {\n      return prop.valueDeclaration && container.valueDeclaration && prop.valueDeclaration.parent === container.valueDeclaration;\n    }\n    function unionOrIntersectionRelatedTo(source2, target2, reportErrors2, intersectionState) {\n      if (source2.flags & 1048576 /* Union */) {\n        if (target2.flags & 1048576 /* Union */) {\n          const sourceOrigin = source2.origin;\n          if (sourceOrigin && sourceOrigin.flags & 2097152 /* Intersection */ && target2.aliasSymbol && contains(sourceOrigin.types, target2)) {\n            return -1 /* True */;\n          }\n          const targetOrigin = target2.origin;\n          if (targetOrigin && targetOrigin.flags & 1048576 /* Union */ && source2.aliasSymbol && contains(targetOrigin.types, source2)) {\n            return -1 /* True */;\n          }\n        }\n        return relation === comparableRelation ? someTypeRelatedToType(source2, target2, reportErrors2 && !(source2.flags & 402784252 /* Primitive */), intersectionState) : eachTypeRelatedToType(source2, target2, reportErrors2 && !(source2.flags & 402784252 /* Primitive */), intersectionState);\n      }\n      if (target2.flags & 1048576 /* Union */) {\n        return typeRelatedToSomeType(getRegularTypeOfObjectLiteral(source2), target2, reportErrors2 && !(source2.flags & 402784252 /* Primitive */) && !(target2.flags & 402784252 /* Primitive */), intersectionState);\n      }\n      if (target2.flags & 2097152 /* Intersection */) {\n        return typeRelatedToEachType(source2, target2, reportErrors2, 2 /* Target */);\n      }\n      if (relation === comparableRelation && target2.flags & 402784252 /* Primitive */) {\n        const constraints = sameMap(source2.types, (t) => t.flags & 465829888 /* Instantiable */ ? getBaseConstraintOfType(t) || unknownType : t);\n        if (constraints !== source2.types) {\n          source2 = getIntersectionType(constraints);\n          if (source2.flags & 131072 /* Never */) {\n            return 0 /* False */;\n          }\n          if (!(source2.flags & 2097152 /* Intersection */)) {\n            return isRelatedTo(\n              source2,\n              target2,\n              1 /* Source */,\n              /*reportErrors*/\n              false\n            ) || isRelatedTo(\n              target2,\n              source2,\n              1 /* Source */,\n              /*reportErrors*/\n              false\n            );\n          }\n        }\n      }\n      return someTypeRelatedToType(\n        source2,\n        target2,\n        /*reportErrors*/\n        false,\n        1 /* Source */\n      );\n    }\n    function eachTypeRelatedToSomeType(source2, target2) {\n      let result2 = -1 /* True */;\n      const sourceTypes = source2.types;\n      for (const sourceType of sourceTypes) {\n        const related = typeRelatedToSomeType(\n          sourceType,\n          target2,\n          /*reportErrors*/\n          false,\n          0 /* None */\n        );\n        if (!related) {\n          return 0 /* False */;\n        }\n        result2 &= related;\n      }\n      return result2;\n    }\n    function typeRelatedToSomeType(source2, target2, reportErrors2, intersectionState) {\n      const targetTypes = target2.types;\n      if (target2.flags & 1048576 /* Union */) {\n        if (containsType(targetTypes, source2)) {\n          return -1 /* True */;\n        }\n        if (relation !== comparableRelation && getObjectFlags(target2) & 32768 /* PrimitiveUnion */ && !(source2.flags & 1024 /* EnumLiteral */) && (source2.flags & (128 /* StringLiteral */ | 512 /* BooleanLiteral */ | 2048 /* BigIntLiteral */) || (relation === subtypeRelation || relation === strictSubtypeRelation) && source2.flags & 256 /* NumberLiteral */)) {\n          const alternateForm = source2 === source2.regularType ? source2.freshType : source2.regularType;\n          const primitive = source2.flags & 128 /* StringLiteral */ ? stringType : source2.flags & 256 /* NumberLiteral */ ? numberType : source2.flags & 2048 /* BigIntLiteral */ ? bigintType : void 0;\n          return primitive && containsType(targetTypes, primitive) || alternateForm && containsType(targetTypes, alternateForm) ? -1 /* True */ : 0 /* False */;\n        }\n        const match = getMatchingUnionConstituentForType(target2, source2);\n        if (match) {\n          const related = isRelatedTo(\n            source2,\n            match,\n            2 /* Target */,\n            /*reportErrors*/\n            false,\n            /*headMessage*/\n            void 0,\n            intersectionState\n          );\n          if (related) {\n            return related;\n          }\n        }\n      }\n      for (const type of targetTypes) {\n        const related = isRelatedTo(\n          source2,\n          type,\n          2 /* Target */,\n          /*reportErrors*/\n          false,\n          /*headMessage*/\n          void 0,\n          intersectionState\n        );\n        if (related) {\n          return related;\n        }\n      }\n      if (reportErrors2) {\n        const bestMatchingType = getBestMatchingType(source2, target2, isRelatedTo);\n        if (bestMatchingType) {\n          isRelatedTo(\n            source2,\n            bestMatchingType,\n            2 /* Target */,\n            /*reportErrors*/\n            true,\n            /*headMessage*/\n            void 0,\n            intersectionState\n          );\n        }\n      }\n      return 0 /* False */;\n    }\n    function typeRelatedToEachType(source2, target2, reportErrors2, intersectionState) {\n      let result2 = -1 /* True */;\n      const targetTypes = target2.types;\n      for (const targetType of targetTypes) {\n        const related = isRelatedTo(\n          source2,\n          targetType,\n          2 /* Target */,\n          reportErrors2,\n          /*headMessage*/\n          void 0,\n          intersectionState\n        );\n        if (!related) {\n          return 0 /* False */;\n        }\n        result2 &= related;\n      }\n      return result2;\n    }\n    function someTypeRelatedToType(source2, target2, reportErrors2, intersectionState) {\n      const sourceTypes = source2.types;\n      if (source2.flags & 1048576 /* Union */ && containsType(sourceTypes, target2)) {\n        return -1 /* True */;\n      }\n      const len = sourceTypes.length;\n      for (let i = 0; i < len; i++) {\n        const related = isRelatedTo(\n          sourceTypes[i],\n          target2,\n          1 /* Source */,\n          reportErrors2 && i === len - 1,\n          /*headMessage*/\n          void 0,\n          intersectionState\n        );\n        if (related) {\n          return related;\n        }\n      }\n      return 0 /* False */;\n    }\n    function getUndefinedStrippedTargetIfNeeded(source2, target2) {\n      if (source2.flags & 1048576 /* Union */ && target2.flags & 1048576 /* Union */ && !(source2.types[0].flags & 32768 /* Undefined */) && target2.types[0].flags & 32768 /* Undefined */) {\n        return extractTypesOfKind(target2, ~32768 /* Undefined */);\n      }\n      return target2;\n    }\n    function eachTypeRelatedToType(source2, target2, reportErrors2, intersectionState) {\n      let result2 = -1 /* True */;\n      const sourceTypes = source2.types;\n      const undefinedStrippedTarget = getUndefinedStrippedTargetIfNeeded(source2, target2);\n      for (let i = 0; i < sourceTypes.length; i++) {\n        const sourceType = sourceTypes[i];\n        if (undefinedStrippedTarget.flags & 1048576 /* Union */ && sourceTypes.length >= undefinedStrippedTarget.types.length && sourceTypes.length % undefinedStrippedTarget.types.length === 0) {\n          const related2 = isRelatedTo(\n            sourceType,\n            undefinedStrippedTarget.types[i % undefinedStrippedTarget.types.length],\n            3 /* Both */,\n            /*reportErrors*/\n            false,\n            /*headMessage*/\n            void 0,\n            intersectionState\n          );\n          if (related2) {\n            result2 &= related2;\n            continue;\n          }\n        }\n        const related = isRelatedTo(\n          sourceType,\n          target2,\n          1 /* Source */,\n          reportErrors2,\n          /*headMessage*/\n          void 0,\n          intersectionState\n        );\n        if (!related) {\n          return 0 /* False */;\n        }\n        result2 &= related;\n      }\n      return result2;\n    }\n    function typeArgumentsRelatedTo(sources = emptyArray, targets = emptyArray, variances = emptyArray, reportErrors2, intersectionState) {\n      if (sources.length !== targets.length && relation === identityRelation) {\n        return 0 /* False */;\n      }\n      const length2 = sources.length <= targets.length ? sources.length : targets.length;\n      let result2 = -1 /* True */;\n      for (let i = 0; i < length2; i++) {\n        const varianceFlags = i < variances.length ? variances[i] : 1 /* Covariant */;\n        const variance = varianceFlags & 7 /* VarianceMask */;\n        if (variance !== 4 /* Independent */) {\n          const s = sources[i];\n          const t = targets[i];\n          let related = -1 /* True */;\n          if (varianceFlags & 8 /* Unmeasurable */) {\n            related = relation === identityRelation ? isRelatedTo(\n              s,\n              t,\n              3 /* Both */,\n              /*reportErrors*/\n              false\n            ) : compareTypesIdentical(s, t);\n          } else if (variance === 1 /* Covariant */) {\n            related = isRelatedTo(\n              s,\n              t,\n              3 /* Both */,\n              reportErrors2,\n              /*headMessage*/\n              void 0,\n              intersectionState\n            );\n          } else if (variance === 2 /* Contravariant */) {\n            related = isRelatedTo(\n              t,\n              s,\n              3 /* Both */,\n              reportErrors2,\n              /*headMessage*/\n              void 0,\n              intersectionState\n            );\n          } else if (variance === 3 /* Bivariant */) {\n            related = isRelatedTo(\n              t,\n              s,\n              3 /* Both */,\n              /*reportErrors*/\n              false\n            );\n            if (!related) {\n              related = isRelatedTo(\n                s,\n                t,\n                3 /* Both */,\n                reportErrors2,\n                /*headMessage*/\n                void 0,\n                intersectionState\n              );\n            }\n          } else {\n            related = isRelatedTo(\n              s,\n              t,\n              3 /* Both */,\n              reportErrors2,\n              /*headMessage*/\n              void 0,\n              intersectionState\n            );\n            if (related) {\n              related &= isRelatedTo(\n                t,\n                s,\n                3 /* Both */,\n                reportErrors2,\n                /*headMessage*/\n                void 0,\n                intersectionState\n              );\n            }\n          }\n          if (!related) {\n            return 0 /* False */;\n          }\n          result2 &= related;\n        }\n      }\n      return result2;\n    }\n    function recursiveTypeRelatedTo(source2, target2, reportErrors2, intersectionState, recursionFlags) {\n      var _a2, _b, _c;\n      if (overflow) {\n        return 0 /* False */;\n      }\n      const id = getRelationKey(\n        source2,\n        target2,\n        intersectionState,\n        relation,\n        /*ignoreConstraints*/\n        false\n      );\n      const entry = relation.get(id);\n      if (entry !== void 0) {\n        if (reportErrors2 && entry & 2 /* Failed */ && !(entry & 96 /* Overflow */)) {\n        } else {\n          if (outofbandVarianceMarkerHandler) {\n            const saved = entry & 24 /* ReportsMask */;\n            if (saved & 8 /* ReportsUnmeasurable */) {\n              instantiateType(source2, reportUnmeasurableMapper);\n            }\n            if (saved & 16 /* ReportsUnreliable */) {\n              instantiateType(source2, reportUnreliableMapper);\n            }\n          }\n          if (reportErrors2 && entry & 96 /* Overflow */) {\n            const message = entry & 32 /* ComplexityOverflow */ ? Diagnostics.Excessive_complexity_comparing_types_0_and_1 : Diagnostics.Excessive_stack_depth_comparing_types_0_and_1;\n            reportError(message, typeToString(source2), typeToString(target2));\n            overrideNextErrorInfo++;\n          }\n          return entry & 1 /* Succeeded */ ? -1 /* True */ : 0 /* False */;\n        }\n      }\n      if (relationCount <= 0) {\n        overflow = true;\n        return 0 /* False */;\n      }\n      if (!maybeKeys) {\n        maybeKeys = [];\n        maybeKeysSet = /* @__PURE__ */ new Set();\n        sourceStack = [];\n        targetStack = [];\n      } else {\n        if (maybeKeysSet.has(id)) {\n          return 3 /* Maybe */;\n        }\n        const broadestEquivalentId = id.startsWith(\"*\") ? getRelationKey(\n          source2,\n          target2,\n          intersectionState,\n          relation,\n          /*ignoreConstraints*/\n          true\n        ) : void 0;\n        if (broadestEquivalentId && maybeKeysSet.has(broadestEquivalentId)) {\n          return 3 /* Maybe */;\n        }\n        if (sourceDepth === 100 || targetDepth === 100) {\n          overflow = true;\n          return 0 /* False */;\n        }\n      }\n      const maybeStart = maybeCount;\n      maybeKeys[maybeCount] = id;\n      maybeKeysSet.add(id);\n      maybeCount++;\n      const saveExpandingFlags = expandingFlags;\n      if (recursionFlags & 1 /* Source */) {\n        sourceStack[sourceDepth] = source2;\n        sourceDepth++;\n        if (!(expandingFlags & 1 /* Source */) && isDeeplyNestedType(source2, sourceStack, sourceDepth)) expandingFlags |= 1 /* Source */;\n      }\n      if (recursionFlags & 2 /* Target */) {\n        targetStack[targetDepth] = target2;\n        targetDepth++;\n        if (!(expandingFlags & 2 /* Target */) && isDeeplyNestedType(target2, targetStack, targetDepth)) expandingFlags |= 2 /* Target */;\n      }\n      let originalHandler;\n      let propagatingVarianceFlags = 0;\n      if (outofbandVarianceMarkerHandler) {\n        originalHandler = outofbandVarianceMarkerHandler;\n        outofbandVarianceMarkerHandler = (onlyUnreliable) => {\n          propagatingVarianceFlags |= onlyUnreliable ? 16 /* ReportsUnreliable */ : 8 /* ReportsUnmeasurable */;\n          return originalHandler(onlyUnreliable);\n        };\n      }\n      let result2;\n      if (expandingFlags === 3 /* Both */) {\n        (_a2 = tracing) == null ? void 0 : _a2.instant(tracing.Phase.CheckTypes, \"recursiveTypeRelatedTo_DepthLimit\", {\n          sourceId: source2.id,\n          sourceIdStack: sourceStack.map((t) => t.id),\n          targetId: target2.id,\n          targetIdStack: targetStack.map((t) => t.id),\n          depth: sourceDepth,\n          targetDepth\n        });\n        result2 = 3 /* Maybe */;\n      } else {\n        (_b = tracing) == null ? void 0 : _b.push(tracing.Phase.CheckTypes, \"structuredTypeRelatedTo\", { sourceId: source2.id, targetId: target2.id });\n        result2 = structuredTypeRelatedTo(source2, target2, reportErrors2, intersectionState);\n        (_c = tracing) == null ? void 0 : _c.pop();\n      }\n      if (outofbandVarianceMarkerHandler) {\n        outofbandVarianceMarkerHandler = originalHandler;\n      }\n      if (recursionFlags & 1 /* Source */) {\n        sourceDepth--;\n      }\n      if (recursionFlags & 2 /* Target */) {\n        targetDepth--;\n      }\n      expandingFlags = saveExpandingFlags;\n      if (result2) {\n        if (result2 === -1 /* True */ || sourceDepth === 0 && targetDepth === 0) {\n          if (result2 === -1 /* True */ || result2 === 3 /* Maybe */) {\n            resetMaybeStack(\n              /*markAllAsSucceeded*/\n              true\n            );\n          } else {\n            resetMaybeStack(\n              /*markAllAsSucceeded*/\n              false\n            );\n          }\n        }\n      } else {\n        relation.set(id, 2 /* Failed */ | propagatingVarianceFlags);\n        relationCount--;\n        resetMaybeStack(\n          /*markAllAsSucceeded*/\n          false\n        );\n      }\n      return result2;\n      function resetMaybeStack(markAllAsSucceeded) {\n        for (let i = maybeStart; i < maybeCount; i++) {\n          maybeKeysSet.delete(maybeKeys[i]);\n          if (markAllAsSucceeded) {\n            relation.set(maybeKeys[i], 1 /* Succeeded */ | propagatingVarianceFlags);\n            relationCount--;\n          }\n        }\n        maybeCount = maybeStart;\n      }\n    }\n    function structuredTypeRelatedTo(source2, target2, reportErrors2, intersectionState) {\n      const saveErrorInfo = captureErrorCalculationState();\n      let result2 = structuredTypeRelatedToWorker(source2, target2, reportErrors2, intersectionState, saveErrorInfo);\n      if (relation !== identityRelation) {\n        if (!result2 && (source2.flags & 2097152 /* Intersection */ || source2.flags & 262144 /* TypeParameter */ && target2.flags & 1048576 /* Union */)) {\n          const constraint = getEffectiveConstraintOfIntersection(source2.flags & 2097152 /* Intersection */ ? source2.types : [source2], !!(target2.flags & 1048576 /* Union */));\n          if (constraint && everyType(constraint, (c) => c !== source2)) {\n            result2 = isRelatedTo(\n              constraint,\n              target2,\n              1 /* Source */,\n              /*reportErrors*/\n              false,\n              /*headMessage*/\n              void 0,\n              intersectionState\n            );\n          }\n        }\n        if (result2 && !(intersectionState & 2 /* Target */) && target2.flags & 2097152 /* Intersection */ && !isGenericObjectType(target2) && source2.flags & (524288 /* Object */ | 2097152 /* Intersection */)) {\n          result2 &= propertiesRelatedTo(\n            source2,\n            target2,\n            reportErrors2,\n            /*excludedProperties*/\n            void 0,\n            /*optionalsOnly*/\n            false,\n            0 /* None */\n          );\n          if (result2 && isObjectLiteralType2(source2) && getObjectFlags(source2) & 8192 /* FreshLiteral */) {\n            result2 &= indexSignaturesRelatedTo(\n              source2,\n              target2,\n              /*sourceIsPrimitive*/\n              false,\n              reportErrors2,\n              0 /* None */\n            );\n          }\n        } else if (result2 && isNonGenericObjectType(target2) && !isArrayOrTupleType(target2) && source2.flags & 2097152 /* Intersection */ && getApparentType(source2).flags & 3670016 /* StructuredType */ && !some(source2.types, (t) => t === target2 || !!(getObjectFlags(t) & 262144 /* NonInferrableType */))) {\n          result2 &= propertiesRelatedTo(\n            source2,\n            target2,\n            reportErrors2,\n            /*excludedProperties*/\n            void 0,\n            /*optionalsOnly*/\n            true,\n            intersectionState\n          );\n        }\n      }\n      if (result2) {\n        resetErrorInfo(saveErrorInfo);\n      }\n      return result2;\n    }\n    function getApparentMappedTypeKeys(nameType, targetType) {\n      const modifiersType = getApparentType(getModifiersTypeFromMappedType(targetType));\n      const mappedKeys = [];\n      forEachMappedTypePropertyKeyTypeAndIndexSignatureKeyType(\n        modifiersType,\n        8576 /* StringOrNumberLiteralOrUnique */,\n        /*stringsOnly*/\n        false,\n        (t) => void mappedKeys.push(instantiateType(nameType, appendTypeMapping(targetType.mapper, getTypeParameterFromMappedType(targetType), t)))\n      );\n      return getUnionType(mappedKeys);\n    }\n    function structuredTypeRelatedToWorker(source2, target2, reportErrors2, intersectionState, saveErrorInfo) {\n      let result2;\n      let originalErrorInfo;\n      let varianceCheckFailed = false;\n      let sourceFlags = source2.flags;\n      const targetFlags = target2.flags;\n      if (relation === identityRelation) {\n        if (sourceFlags & 3145728 /* UnionOrIntersection */) {\n          let result3 = eachTypeRelatedToSomeType(source2, target2);\n          if (result3) {\n            result3 &= eachTypeRelatedToSomeType(target2, source2);\n          }\n          return result3;\n        }\n        if (sourceFlags & 4194304 /* Index */) {\n          return isRelatedTo(\n            source2.type,\n            target2.type,\n            3 /* Both */,\n            /*reportErrors*/\n            false\n          );\n        }\n        if (sourceFlags & 8388608 /* IndexedAccess */) {\n          if (result2 = isRelatedTo(\n            source2.objectType,\n            target2.objectType,\n            3 /* Both */,\n            /*reportErrors*/\n            false\n          )) {\n            if (result2 &= isRelatedTo(\n              source2.indexType,\n              target2.indexType,\n              3 /* Both */,\n              /*reportErrors*/\n              false\n            )) {\n              return result2;\n            }\n          }\n        }\n        if (sourceFlags & 16777216 /* Conditional */) {\n          if (source2.root.isDistributive === target2.root.isDistributive) {\n            if (result2 = isRelatedTo(\n              source2.checkType,\n              target2.checkType,\n              3 /* Both */,\n              /*reportErrors*/\n              false\n            )) {\n              if (result2 &= isRelatedTo(\n                source2.extendsType,\n                target2.extendsType,\n                3 /* Both */,\n                /*reportErrors*/\n                false\n              )) {\n                if (result2 &= isRelatedTo(\n                  getTrueTypeFromConditionalType(source2),\n                  getTrueTypeFromConditionalType(target2),\n                  3 /* Both */,\n                  /*reportErrors*/\n                  false\n                )) {\n                  if (result2 &= isRelatedTo(\n                    getFalseTypeFromConditionalType(source2),\n                    getFalseTypeFromConditionalType(target2),\n                    3 /* Both */,\n                    /*reportErrors*/\n                    false\n                  )) {\n                    return result2;\n                  }\n                }\n              }\n            }\n          }\n        }\n        if (sourceFlags & 33554432 /* Substitution */) {\n          if (result2 = isRelatedTo(\n            source2.baseType,\n            target2.baseType,\n            3 /* Both */,\n            /*reportErrors*/\n            false\n          )) {\n            if (result2 &= isRelatedTo(\n              source2.constraint,\n              target2.constraint,\n              3 /* Both */,\n              /*reportErrors*/\n              false\n            )) {\n              return result2;\n            }\n          }\n        }\n        if (sourceFlags & 134217728 /* TemplateLiteral */) {\n          if (arrayIsEqualTo(source2.texts, target2.texts)) {\n            const sourceTypes = source2.types;\n            const targetTypes = target2.types;\n            result2 = -1 /* True */;\n            for (let i = 0; i < sourceTypes.length; i++) {\n              if (!(result2 &= isRelatedTo(\n                sourceTypes[i],\n                targetTypes[i],\n                3 /* Both */,\n                /*reportErrors*/\n                false\n              ))) {\n                break;\n              }\n            }\n            return result2;\n          }\n        }\n        if (sourceFlags & 268435456 /* StringMapping */) {\n          if (source2.symbol === target2.symbol) {\n            return isRelatedTo(\n              source2.type,\n              target2.type,\n              3 /* Both */,\n              /*reportErrors*/\n              false\n            );\n          }\n        }\n        if (!(sourceFlags & 524288 /* Object */)) {\n          return 0 /* False */;\n        }\n      } else if (sourceFlags & 3145728 /* UnionOrIntersection */ || targetFlags & 3145728 /* UnionOrIntersection */) {\n        if (result2 = unionOrIntersectionRelatedTo(source2, target2, reportErrors2, intersectionState)) {\n          return result2;\n        }\n        if (!(sourceFlags & 465829888 /* Instantiable */ || sourceFlags & 524288 /* Object */ && targetFlags & 1048576 /* Union */ || sourceFlags & 2097152 /* Intersection */ && targetFlags & (524288 /* Object */ | 1048576 /* Union */ | 465829888 /* Instantiable */))) {\n          return 0 /* False */;\n        }\n      }\n      if (sourceFlags & (524288 /* Object */ | 16777216 /* Conditional */) && source2.aliasSymbol && source2.aliasTypeArguments && source2.aliasSymbol === target2.aliasSymbol && !(isMarkerType(source2) || isMarkerType(target2))) {\n        const variances = getAliasVariances(source2.aliasSymbol);\n        if (variances === emptyArray) {\n          return 1 /* Unknown */;\n        }\n        const params = getSymbolLinks(source2.aliasSymbol).typeParameters;\n        const minParams = getMinTypeArgumentCount(params);\n        const sourceTypes = fillMissingTypeArguments(source2.aliasTypeArguments, params, minParams, isInJSFile(source2.aliasSymbol.valueDeclaration));\n        const targetTypes = fillMissingTypeArguments(target2.aliasTypeArguments, params, minParams, isInJSFile(source2.aliasSymbol.valueDeclaration));\n        const varianceResult = relateVariances(sourceTypes, targetTypes, variances, intersectionState);\n        if (varianceResult !== void 0) {\n          return varianceResult;\n        }\n      }\n      if (isSingleElementGenericTupleType(source2) && !source2.target.readonly && (result2 = isRelatedTo(getTypeArguments(source2)[0], target2, 1 /* Source */)) || isSingleElementGenericTupleType(target2) && (target2.target.readonly || isMutableArrayOrTuple(getBaseConstraintOfType(source2) || source2)) && (result2 = isRelatedTo(source2, getTypeArguments(target2)[0], 2 /* Target */))) {\n        return result2;\n      }\n      if (targetFlags & 262144 /* TypeParameter */) {\n        if (getObjectFlags(source2) & 32 /* Mapped */ && !source2.declaration.nameType && isRelatedTo(getIndexType(target2), getConstraintTypeFromMappedType(source2), 3 /* Both */)) {\n          if (!(getMappedTypeModifiers(source2) & 4 /* IncludeOptional */)) {\n            const templateType = getTemplateTypeFromMappedType(source2);\n            const indexedAccessType = getIndexedAccessType(target2, getTypeParameterFromMappedType(source2));\n            if (result2 = isRelatedTo(templateType, indexedAccessType, 3 /* Both */, reportErrors2)) {\n              return result2;\n            }\n          }\n        }\n        if (relation === comparableRelation && sourceFlags & 262144 /* TypeParameter */) {\n          let constraint = getConstraintOfTypeParameter(source2);\n          if (constraint) {\n            while (constraint && someType(constraint, (c) => !!(c.flags & 262144 /* TypeParameter */))) {\n              if (result2 = isRelatedTo(\n                constraint,\n                target2,\n                1 /* Source */,\n                /*reportErrors*/\n                false\n              )) {\n                return result2;\n              }\n              constraint = getConstraintOfTypeParameter(constraint);\n            }\n          }\n          return 0 /* False */;\n        }\n      } else if (targetFlags & 4194304 /* Index */) {\n        const targetType = target2.type;\n        if (sourceFlags & 4194304 /* Index */) {\n          if (result2 = isRelatedTo(\n            targetType,\n            source2.type,\n            3 /* Both */,\n            /*reportErrors*/\n            false\n          )) {\n            return result2;\n          }\n        }\n        if (isTupleType(targetType)) {\n          if (result2 = isRelatedTo(source2, getKnownKeysOfTupleType(targetType), 2 /* Target */, reportErrors2)) {\n            return result2;\n          }\n        } else {\n          const constraint = getSimplifiedTypeOrConstraint(targetType);\n          if (constraint) {\n            if (isRelatedTo(source2, getIndexType(constraint, target2.indexFlags | 4 /* NoReducibleCheck */), 2 /* Target */, reportErrors2) === -1 /* True */) {\n              return -1 /* True */;\n            }\n          } else if (isGenericMappedType(targetType)) {\n            const nameType = getNameTypeFromMappedType(targetType);\n            const constraintType = getConstraintTypeFromMappedType(targetType);\n            let targetKeys;\n            if (nameType && isMappedTypeWithKeyofConstraintDeclaration(targetType)) {\n              const mappedKeys = getApparentMappedTypeKeys(nameType, targetType);\n              targetKeys = getUnionType([mappedKeys, nameType]);\n            } else {\n              targetKeys = nameType || constraintType;\n            }\n            if (isRelatedTo(source2, targetKeys, 2 /* Target */, reportErrors2) === -1 /* True */) {\n              return -1 /* True */;\n            }\n          }\n        }\n      } else if (targetFlags & 8388608 /* IndexedAccess */) {\n        if (sourceFlags & 8388608 /* IndexedAccess */) {\n          if (result2 = isRelatedTo(source2.objectType, target2.objectType, 3 /* Both */, reportErrors2)) {\n            result2 &= isRelatedTo(source2.indexType, target2.indexType, 3 /* Both */, reportErrors2);\n          }\n          if (result2) {\n            return result2;\n          }\n          if (reportErrors2) {\n            originalErrorInfo = errorInfo;\n          }\n        }\n        if (relation === assignableRelation || relation === comparableRelation) {\n          const objectType = target2.objectType;\n          const indexType = target2.indexType;\n          const baseObjectType = getBaseConstraintOfType(objectType) || objectType;\n          const baseIndexType = getBaseConstraintOfType(indexType) || indexType;\n          if (!isGenericObjectType(baseObjectType) && !isGenericIndexType(baseIndexType)) {\n            const accessFlags = 4 /* Writing */ | (baseObjectType !== objectType ? 2 /* NoIndexSignatures */ : 0);\n            const constraint = getIndexedAccessTypeOrUndefined(baseObjectType, baseIndexType, accessFlags);\n            if (constraint) {\n              if (reportErrors2 && originalErrorInfo) {\n                resetErrorInfo(saveErrorInfo);\n              }\n              if (result2 = isRelatedTo(\n                source2,\n                constraint,\n                2 /* Target */,\n                reportErrors2,\n                /*headMessage*/\n                void 0,\n                intersectionState\n              )) {\n                return result2;\n              }\n              if (reportErrors2 && originalErrorInfo && errorInfo) {\n                errorInfo = countMessageChainBreadth([originalErrorInfo]) <= countMessageChainBreadth([errorInfo]) ? originalErrorInfo : errorInfo;\n              }\n            }\n          }\n        }\n        if (reportErrors2) {\n          originalErrorInfo = void 0;\n        }\n      } else if (isGenericMappedType(target2) && relation !== identityRelation) {\n        const keysRemapped = !!target2.declaration.nameType;\n        const templateType = getTemplateTypeFromMappedType(target2);\n        const modifiers = getMappedTypeModifiers(target2);\n        if (!(modifiers & 8 /* ExcludeOptional */)) {\n          if (!keysRemapped && templateType.flags & 8388608 /* IndexedAccess */ && templateType.objectType === source2 && templateType.indexType === getTypeParameterFromMappedType(target2)) {\n            return -1 /* True */;\n          }\n          if (!isGenericMappedType(source2)) {\n            const targetKeys = keysRemapped ? getNameTypeFromMappedType(target2) : getConstraintTypeFromMappedType(target2);\n            const sourceKeys = getIndexType(source2, 2 /* NoIndexSignatures */);\n            const includeOptional = modifiers & 4 /* IncludeOptional */;\n            const filteredByApplicability = includeOptional ? intersectTypes(targetKeys, sourceKeys) : void 0;\n            if (includeOptional ? !(filteredByApplicability.flags & 131072 /* Never */) : isRelatedTo(targetKeys, sourceKeys, 3 /* Both */)) {\n              const templateType2 = getTemplateTypeFromMappedType(target2);\n              const typeParameter = getTypeParameterFromMappedType(target2);\n              const nonNullComponent = extractTypesOfKind(templateType2, ~98304 /* Nullable */);\n              if (!keysRemapped && nonNullComponent.flags & 8388608 /* IndexedAccess */ && nonNullComponent.indexType === typeParameter) {\n                if (result2 = isRelatedTo(source2, nonNullComponent.objectType, 2 /* Target */, reportErrors2)) {\n                  return result2;\n                }\n              } else {\n                const indexingType = keysRemapped ? filteredByApplicability || targetKeys : filteredByApplicability ? getIntersectionType([filteredByApplicability, typeParameter]) : typeParameter;\n                const indexedAccessType = getIndexedAccessType(source2, indexingType);\n                if (result2 = isRelatedTo(indexedAccessType, templateType2, 3 /* Both */, reportErrors2)) {\n                  return result2;\n                }\n              }\n            }\n            originalErrorInfo = errorInfo;\n            resetErrorInfo(saveErrorInfo);\n          }\n        }\n      } else if (targetFlags & 16777216 /* Conditional */) {\n        if (isDeeplyNestedType(target2, targetStack, targetDepth, 10)) {\n          return 3 /* Maybe */;\n        }\n        const c = target2;\n        if (!c.root.inferTypeParameters && !isDistributionDependent(c.root) && !(source2.flags & 16777216 /* Conditional */ && source2.root === c.root)) {\n          const skipTrue = !isTypeAssignableTo(getPermissiveInstantiation(c.checkType), getPermissiveInstantiation(c.extendsType));\n          const skipFalse = !skipTrue && isTypeAssignableTo(getRestrictiveInstantiation(c.checkType), getRestrictiveInstantiation(c.extendsType));\n          if (result2 = skipTrue ? -1 /* True */ : isRelatedTo(\n            source2,\n            getTrueTypeFromConditionalType(c),\n            2 /* Target */,\n            /*reportErrors*/\n            false,\n            /*headMessage*/\n            void 0,\n            intersectionState\n          )) {\n            result2 &= skipFalse ? -1 /* True */ : isRelatedTo(\n              source2,\n              getFalseTypeFromConditionalType(c),\n              2 /* Target */,\n              /*reportErrors*/\n              false,\n              /*headMessage*/\n              void 0,\n              intersectionState\n            );\n            if (result2) {\n              return result2;\n            }\n          }\n        }\n      } else if (targetFlags & 134217728 /* TemplateLiteral */) {\n        if (sourceFlags & 134217728 /* TemplateLiteral */) {\n          if (relation === comparableRelation) {\n            return templateLiteralTypesDefinitelyUnrelated(source2, target2) ? 0 /* False */ : -1 /* True */;\n          }\n          instantiateType(source2, reportUnreliableMapper);\n        }\n        if (isTypeMatchedByTemplateLiteralType(source2, target2)) {\n          return -1 /* True */;\n        }\n      } else if (target2.flags & 268435456 /* StringMapping */) {\n        if (!(source2.flags & 268435456 /* StringMapping */)) {\n          if (isMemberOfStringMapping(source2, target2)) {\n            return -1 /* True */;\n          }\n        }\n      }\n      if (sourceFlags & 8650752 /* TypeVariable */) {\n        if (!(sourceFlags & 8388608 /* IndexedAccess */ && targetFlags & 8388608 /* IndexedAccess */)) {\n          const constraint = getConstraintOfType(source2) || unknownType;\n          if (result2 = isRelatedTo(\n            constraint,\n            target2,\n            1 /* Source */,\n            /*reportErrors*/\n            false,\n            /*headMessage*/\n            void 0,\n            intersectionState\n          )) {\n            return result2;\n          } else if (result2 = isRelatedTo(\n            getTypeWithThisArgument(constraint, source2),\n            target2,\n            1 /* Source */,\n            reportErrors2 && constraint !== unknownType && !(targetFlags & sourceFlags & 262144 /* TypeParameter */),\n            /*headMessage*/\n            void 0,\n            intersectionState\n          )) {\n            return result2;\n          }\n          if (isMappedTypeGenericIndexedAccess(source2)) {\n            const indexConstraint = getConstraintOfType(source2.indexType);\n            if (indexConstraint) {\n              if (result2 = isRelatedTo(getIndexedAccessType(source2.objectType, indexConstraint), target2, 1 /* Source */, reportErrors2)) {\n                return result2;\n              }\n            }\n          }\n        }\n      } else if (sourceFlags & 4194304 /* Index */) {\n        const isDeferredMappedIndex = shouldDeferIndexType(source2.type, source2.indexFlags) && getObjectFlags(source2.type) & 32 /* Mapped */;\n        if (result2 = isRelatedTo(stringNumberSymbolType, target2, 1 /* Source */, reportErrors2 && !isDeferredMappedIndex)) {\n          return result2;\n        }\n        if (isDeferredMappedIndex) {\n          const mappedType = source2.type;\n          const nameType = getNameTypeFromMappedType(mappedType);\n          const sourceMappedKeys = nameType && isMappedTypeWithKeyofConstraintDeclaration(mappedType) ? getApparentMappedTypeKeys(nameType, mappedType) : nameType || getConstraintTypeFromMappedType(mappedType);\n          if (result2 = isRelatedTo(sourceMappedKeys, target2, 1 /* Source */, reportErrors2)) {\n            return result2;\n          }\n        }\n      } else if (sourceFlags & 134217728 /* TemplateLiteral */ && !(targetFlags & 524288 /* Object */)) {\n        if (!(targetFlags & 134217728 /* TemplateLiteral */)) {\n          const constraint = getBaseConstraintOfType(source2);\n          if (constraint && constraint !== source2 && (result2 = isRelatedTo(constraint, target2, 1 /* Source */, reportErrors2))) {\n            return result2;\n          }\n        }\n      } else if (sourceFlags & 268435456 /* StringMapping */) {\n        if (targetFlags & 268435456 /* StringMapping */) {\n          if (source2.symbol !== target2.symbol) {\n            return 0 /* False */;\n          }\n          if (result2 = isRelatedTo(source2.type, target2.type, 3 /* Both */, reportErrors2)) {\n            return result2;\n          }\n        } else {\n          const constraint = getBaseConstraintOfType(source2);\n          if (constraint && (result2 = isRelatedTo(constraint, target2, 1 /* Source */, reportErrors2))) {\n            return result2;\n          }\n        }\n      } else if (sourceFlags & 16777216 /* Conditional */) {\n        if (isDeeplyNestedType(source2, sourceStack, sourceDepth, 10)) {\n          return 3 /* Maybe */;\n        }\n        if (targetFlags & 16777216 /* Conditional */) {\n          const sourceParams = source2.root.inferTypeParameters;\n          let sourceExtends = source2.extendsType;\n          let mapper;\n          if (sourceParams) {\n            const ctx = createInferenceContext(\n              sourceParams,\n              /*signature*/\n              void 0,\n              0 /* None */,\n              isRelatedToWorker\n            );\n            inferTypes(ctx.inferences, target2.extendsType, sourceExtends, 512 /* NoConstraints */ | 1024 /* AlwaysStrict */);\n            sourceExtends = instantiateType(sourceExtends, ctx.mapper);\n            mapper = ctx.mapper;\n          }\n          if (isTypeIdenticalTo(sourceExtends, target2.extendsType) && (isRelatedTo(source2.checkType, target2.checkType, 3 /* Both */) || isRelatedTo(target2.checkType, source2.checkType, 3 /* Both */))) {\n            if (result2 = isRelatedTo(instantiateType(getTrueTypeFromConditionalType(source2), mapper), getTrueTypeFromConditionalType(target2), 3 /* Both */, reportErrors2)) {\n              result2 &= isRelatedTo(getFalseTypeFromConditionalType(source2), getFalseTypeFromConditionalType(target2), 3 /* Both */, reportErrors2);\n            }\n            if (result2) {\n              return result2;\n            }\n          }\n        }\n        const defaultConstraint = getDefaultConstraintOfConditionalType(source2);\n        if (defaultConstraint) {\n          if (result2 = isRelatedTo(defaultConstraint, target2, 1 /* Source */, reportErrors2)) {\n            return result2;\n          }\n        }\n        const distributiveConstraint = !(targetFlags & 16777216 /* Conditional */) && hasNonCircularBaseConstraint(source2) ? getConstraintOfDistributiveConditionalType(source2) : void 0;\n        if (distributiveConstraint) {\n          resetErrorInfo(saveErrorInfo);\n          if (result2 = isRelatedTo(distributiveConstraint, target2, 1 /* Source */, reportErrors2)) {\n            return result2;\n          }\n        }\n      } else {\n        if (relation !== subtypeRelation && relation !== strictSubtypeRelation && isPartialMappedType(target2) && isEmptyObjectType(source2)) {\n          return -1 /* True */;\n        }\n        if (isGenericMappedType(target2)) {\n          if (isGenericMappedType(source2)) {\n            if (result2 = mappedTypeRelatedTo(source2, target2, reportErrors2)) {\n              return result2;\n            }\n          }\n          return 0 /* False */;\n        }\n        const sourceIsPrimitive = !!(sourceFlags & 402784252 /* Primitive */);\n        if (relation !== identityRelation) {\n          source2 = getApparentType(source2);\n          sourceFlags = source2.flags;\n        } else if (isGenericMappedType(source2)) {\n          return 0 /* False */;\n        }\n        if (getObjectFlags(source2) & 4 /* Reference */ && getObjectFlags(target2) & 4 /* Reference */ && source2.target === target2.target && !isTupleType(source2) && !(isMarkerType(source2) || isMarkerType(target2))) {\n          if (isEmptyArrayLiteralType(source2)) {\n            return -1 /* True */;\n          }\n          const variances = getVariances(source2.target);\n          if (variances === emptyArray) {\n            return 1 /* Unknown */;\n          }\n          const varianceResult = relateVariances(getTypeArguments(source2), getTypeArguments(target2), variances, intersectionState);\n          if (varianceResult !== void 0) {\n            return varianceResult;\n          }\n        } else if (isReadonlyArrayType(target2) ? everyType(source2, isArrayOrTupleType) : isArrayType(target2) && everyType(source2, (t) => isTupleType(t) && !t.target.readonly)) {\n          if (relation !== identityRelation) {\n            return isRelatedTo(getIndexTypeOfType(source2, numberType) || anyType, getIndexTypeOfType(target2, numberType) || anyType, 3 /* Both */, reportErrors2);\n          } else {\n            return 0 /* False */;\n          }\n        } else if (isGenericTupleType(source2) && isTupleType(target2) && !isGenericTupleType(target2)) {\n          const constraint = getBaseConstraintOrType(source2);\n          if (constraint !== source2) {\n            return isRelatedTo(constraint, target2, 1 /* Source */, reportErrors2);\n          }\n        } else if ((relation === subtypeRelation || relation === strictSubtypeRelation) && isEmptyObjectType(target2) && getObjectFlags(target2) & 8192 /* FreshLiteral */ && !isEmptyObjectType(source2)) {\n          return 0 /* False */;\n        }\n        if (sourceFlags & (524288 /* Object */ | 2097152 /* Intersection */) && targetFlags & 524288 /* Object */) {\n          const reportStructuralErrors = reportErrors2 && errorInfo === saveErrorInfo.errorInfo && !sourceIsPrimitive;\n          result2 = propertiesRelatedTo(\n            source2,\n            target2,\n            reportStructuralErrors,\n            /*excludedProperties*/\n            void 0,\n            /*optionalsOnly*/\n            false,\n            intersectionState\n          );\n          if (result2) {\n            result2 &= signaturesRelatedTo(source2, target2, 0 /* Call */, reportStructuralErrors, intersectionState);\n            if (result2) {\n              result2 &= signaturesRelatedTo(source2, target2, 1 /* Construct */, reportStructuralErrors, intersectionState);\n              if (result2) {\n                result2 &= indexSignaturesRelatedTo(source2, target2, sourceIsPrimitive, reportStructuralErrors, intersectionState);\n              }\n            }\n          }\n          if (varianceCheckFailed && result2) {\n            errorInfo = originalErrorInfo || errorInfo || saveErrorInfo.errorInfo;\n          } else if (result2) {\n            return result2;\n          }\n        }\n        if (sourceFlags & (524288 /* Object */ | 2097152 /* Intersection */) && targetFlags & 1048576 /* Union */) {\n          const objectOnlyTarget = extractTypesOfKind(target2, 524288 /* Object */ | 2097152 /* Intersection */ | 33554432 /* Substitution */);\n          if (objectOnlyTarget.flags & 1048576 /* Union */) {\n            const result3 = typeRelatedToDiscriminatedType(source2, objectOnlyTarget);\n            if (result3) {\n              return result3;\n            }\n          }\n        }\n      }\n      return 0 /* False */;\n      function countMessageChainBreadth(info) {\n        if (!info) return 0;\n        return reduceLeft(info, (value, chain) => value + 1 + countMessageChainBreadth(chain.next), 0);\n      }\n      function relateVariances(sourceTypeArguments, targetTypeArguments, variances, intersectionState2) {\n        if (result2 = typeArgumentsRelatedTo(sourceTypeArguments, targetTypeArguments, variances, reportErrors2, intersectionState2)) {\n          return result2;\n        }\n        if (some(variances, (v) => !!(v & 24 /* AllowsStructuralFallback */))) {\n          originalErrorInfo = void 0;\n          resetErrorInfo(saveErrorInfo);\n          return void 0;\n        }\n        const allowStructuralFallback = targetTypeArguments && hasCovariantVoidArgument(targetTypeArguments, variances);\n        varianceCheckFailed = !allowStructuralFallback;\n        if (variances !== emptyArray && !allowStructuralFallback) {\n          if (varianceCheckFailed && !(reportErrors2 && some(variances, (v) => (v & 7 /* VarianceMask */) === 0 /* Invariant */))) {\n            return 0 /* False */;\n          }\n          originalErrorInfo = errorInfo;\n          resetErrorInfo(saveErrorInfo);\n        }\n      }\n    }\n    function mappedTypeRelatedTo(source2, target2, reportErrors2) {\n      const modifiersRelated = relation === comparableRelation || (relation === identityRelation ? getMappedTypeModifiers(source2) === getMappedTypeModifiers(target2) : getCombinedMappedTypeOptionality(source2) <= getCombinedMappedTypeOptionality(target2));\n      if (modifiersRelated) {\n        let result2;\n        const targetConstraint = getConstraintTypeFromMappedType(target2);\n        const sourceConstraint = instantiateType(getConstraintTypeFromMappedType(source2), getCombinedMappedTypeOptionality(source2) < 0 ? reportUnmeasurableMapper : reportUnreliableMapper);\n        if (result2 = isRelatedTo(targetConstraint, sourceConstraint, 3 /* Both */, reportErrors2)) {\n          const mapper = createTypeMapper([getTypeParameterFromMappedType(source2)], [getTypeParameterFromMappedType(target2)]);\n          if (instantiateType(getNameTypeFromMappedType(source2), mapper) === instantiateType(getNameTypeFromMappedType(target2), mapper)) {\n            return result2 & isRelatedTo(instantiateType(getTemplateTypeFromMappedType(source2), mapper), getTemplateTypeFromMappedType(target2), 3 /* Both */, reportErrors2);\n          }\n        }\n      }\n      return 0 /* False */;\n    }\n    function typeRelatedToDiscriminatedType(source2, target2) {\n      var _a2;\n      const sourceProperties = getPropertiesOfType(source2);\n      const sourcePropertiesFiltered = findDiscriminantProperties(sourceProperties, target2);\n      if (!sourcePropertiesFiltered) return 0 /* False */;\n      let numCombinations = 1;\n      for (const sourceProperty of sourcePropertiesFiltered) {\n        numCombinations *= countTypes(getNonMissingTypeOfSymbol(sourceProperty));\n        if (numCombinations > 25) {\n          (_a2 = tracing) == null ? void 0 : _a2.instant(tracing.Phase.CheckTypes, \"typeRelatedToDiscriminatedType_DepthLimit\", { sourceId: source2.id, targetId: target2.id, numCombinations });\n          return 0 /* False */;\n        }\n      }\n      const sourceDiscriminantTypes = new Array(sourcePropertiesFiltered.length);\n      const excludedProperties = /* @__PURE__ */ new Set();\n      for (let i = 0; i < sourcePropertiesFiltered.length; i++) {\n        const sourceProperty = sourcePropertiesFiltered[i];\n        const sourcePropertyType = getNonMissingTypeOfSymbol(sourceProperty);\n        sourceDiscriminantTypes[i] = sourcePropertyType.flags & 1048576 /* Union */ ? sourcePropertyType.types : [sourcePropertyType];\n        excludedProperties.add(sourceProperty.escapedName);\n      }\n      const discriminantCombinations = cartesianProduct(sourceDiscriminantTypes);\n      const matchingTypes = [];\n      for (const combination of discriminantCombinations) {\n        let hasMatch = false;\n        outer:\n          for (const type of target2.types) {\n            for (let i = 0; i < sourcePropertiesFiltered.length; i++) {\n              const sourceProperty = sourcePropertiesFiltered[i];\n              const targetProperty = getPropertyOfType(type, sourceProperty.escapedName);\n              if (!targetProperty) continue outer;\n              if (sourceProperty === targetProperty) continue;\n              const related = propertyRelatedTo(\n                source2,\n                target2,\n                sourceProperty,\n                targetProperty,\n                (_) => combination[i],\n                /*reportErrors*/\n                false,\n                0 /* None */,\n                /*skipOptional*/\n                strictNullChecks || relation === comparableRelation\n              );\n              if (!related) {\n                continue outer;\n              }\n            }\n            pushIfUnique(matchingTypes, type, equateValues);\n            hasMatch = true;\n          }\n        if (!hasMatch) {\n          return 0 /* False */;\n        }\n      }\n      let result2 = -1 /* True */;\n      for (const type of matchingTypes) {\n        result2 &= propertiesRelatedTo(\n          source2,\n          type,\n          /*reportErrors*/\n          false,\n          excludedProperties,\n          /*optionalsOnly*/\n          false,\n          0 /* None */\n        );\n        if (result2) {\n          result2 &= signaturesRelatedTo(\n            source2,\n            type,\n            0 /* Call */,\n            /*reportErrors*/\n            false,\n            0 /* None */\n          );\n          if (result2) {\n            result2 &= signaturesRelatedTo(\n              source2,\n              type,\n              1 /* Construct */,\n              /*reportErrors*/\n              false,\n              0 /* None */\n            );\n            if (result2 && !(isTupleType(source2) && isTupleType(type))) {\n              result2 &= indexSignaturesRelatedTo(\n                source2,\n                type,\n                /*sourceIsPrimitive*/\n                false,\n                /*reportErrors*/\n                false,\n                0 /* None */\n              );\n            }\n          }\n        }\n        if (!result2) {\n          return result2;\n        }\n      }\n      return result2;\n    }\n    function excludeProperties(properties, excludedProperties) {\n      if (!excludedProperties || properties.length === 0) return properties;\n      let result2;\n      for (let i = 0; i < properties.length; i++) {\n        if (!excludedProperties.has(properties[i].escapedName)) {\n          if (result2) {\n            result2.push(properties[i]);\n          }\n        } else if (!result2) {\n          result2 = properties.slice(0, i);\n        }\n      }\n      return result2 || properties;\n    }\n    function isPropertySymbolTypeRelated(sourceProp, targetProp, getTypeOfSourceProperty, reportErrors2, intersectionState) {\n      const targetIsOptional = strictNullChecks && !!(getCheckFlags(targetProp) & 48 /* Partial */);\n      const effectiveTarget = addOptionality(\n        getNonMissingTypeOfSymbol(targetProp),\n        /*isProperty*/\n        false,\n        targetIsOptional\n      );\n      if (effectiveTarget.flags & (relation === strictSubtypeRelation ? 1 /* Any */ : 3 /* AnyOrUnknown */)) {\n        return -1 /* True */;\n      }\n      const effectiveSource = getTypeOfSourceProperty(sourceProp);\n      return isRelatedTo(\n        effectiveSource,\n        effectiveTarget,\n        3 /* Both */,\n        reportErrors2,\n        /*headMessage*/\n        void 0,\n        intersectionState\n      );\n    }\n    function propertyRelatedTo(source2, target2, sourceProp, targetProp, getTypeOfSourceProperty, reportErrors2, intersectionState, skipOptional) {\n      const sourcePropFlags = getDeclarationModifierFlagsFromSymbol(sourceProp);\n      const targetPropFlags = getDeclarationModifierFlagsFromSymbol(targetProp);\n      if (sourcePropFlags & 2 /* Private */ || targetPropFlags & 2 /* Private */) {\n        if (sourceProp.valueDeclaration !== targetProp.valueDeclaration) {\n          if (reportErrors2) {\n            if (sourcePropFlags & 2 /* Private */ && targetPropFlags & 2 /* Private */) {\n              reportError(Diagnostics.Types_have_separate_declarations_of_a_private_property_0, symbolToString(targetProp));\n            } else {\n              reportError(Diagnostics.Property_0_is_private_in_type_1_but_not_in_type_2, symbolToString(targetProp), typeToString(sourcePropFlags & 2 /* Private */ ? source2 : target2), typeToString(sourcePropFlags & 2 /* Private */ ? target2 : source2));\n            }\n          }\n          return 0 /* False */;\n        }\n      } else if (targetPropFlags & 4 /* Protected */) {\n        if (!isValidOverrideOf(sourceProp, targetProp)) {\n          if (reportErrors2) {\n            reportError(Diagnostics.Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2, symbolToString(targetProp), typeToString(getDeclaringClass(sourceProp) || source2), typeToString(getDeclaringClass(targetProp) || target2));\n          }\n          return 0 /* False */;\n        }\n      } else if (sourcePropFlags & 4 /* Protected */) {\n        if (reportErrors2) {\n          reportError(Diagnostics.Property_0_is_protected_in_type_1_but_public_in_type_2, symbolToString(targetProp), typeToString(source2), typeToString(target2));\n        }\n        return 0 /* False */;\n      }\n      if (relation === strictSubtypeRelation && isReadonlySymbol(sourceProp) && !isReadonlySymbol(targetProp)) {\n        return 0 /* False */;\n      }\n      const related = isPropertySymbolTypeRelated(sourceProp, targetProp, getTypeOfSourceProperty, reportErrors2, intersectionState);\n      if (!related) {\n        if (reportErrors2) {\n          reportIncompatibleError(Diagnostics.Types_of_property_0_are_incompatible, symbolToString(targetProp));\n        }\n        return 0 /* False */;\n      }\n      if (!skipOptional && sourceProp.flags & 16777216 /* Optional */ && targetProp.flags & 106500 /* ClassMember */ && !(targetProp.flags & 16777216 /* Optional */)) {\n        if (reportErrors2) {\n          reportError(Diagnostics.Property_0_is_optional_in_type_1_but_required_in_type_2, symbolToString(targetProp), typeToString(source2), typeToString(target2));\n        }\n        return 0 /* False */;\n      }\n      return related;\n    }\n    function reportUnmatchedProperty(source2, target2, unmatchedProperty, requireOptionalProperties) {\n      let shouldSkipElaboration = false;\n      if (unmatchedProperty.valueDeclaration && isNamedDeclaration(unmatchedProperty.valueDeclaration) && isPrivateIdentifier(unmatchedProperty.valueDeclaration.name) && source2.symbol && source2.symbol.flags & 32 /* Class */) {\n        const privateIdentifierDescription = unmatchedProperty.valueDeclaration.name.escapedText;\n        const symbolTableKey = getSymbolNameForPrivateIdentifier(source2.symbol, privateIdentifierDescription);\n        if (symbolTableKey && getPropertyOfType(source2, symbolTableKey)) {\n          const sourceName = factory.getDeclarationName(source2.symbol.valueDeclaration);\n          const targetName = factory.getDeclarationName(target2.symbol.valueDeclaration);\n          reportError(\n            Diagnostics.Property_0_in_type_1_refers_to_a_different_member_that_cannot_be_accessed_from_within_type_2,\n            diagnosticName(privateIdentifierDescription),\n            diagnosticName(sourceName.escapedText === \"\" ? anon : sourceName),\n            diagnosticName(targetName.escapedText === \"\" ? anon : targetName)\n          );\n          return;\n        }\n      }\n      const props = arrayFrom(getUnmatchedProperties(\n        source2,\n        target2,\n        requireOptionalProperties,\n        /*matchDiscriminantProperties*/\n        false\n      ));\n      if (!headMessage || headMessage.code !== Diagnostics.Class_0_incorrectly_implements_interface_1.code && headMessage.code !== Diagnostics.Class_0_incorrectly_implements_class_1_Did_you_mean_to_extend_1_and_inherit_its_members_as_a_subclass.code) {\n        shouldSkipElaboration = true;\n      }\n      if (props.length === 1) {\n        const propName = symbolToString(\n          unmatchedProperty,\n          /*enclosingDeclaration*/\n          void 0,\n          0 /* None */,\n          4 /* AllowAnyNodeKind */ | 16 /* WriteComputedProps */\n        );\n        reportError(Diagnostics.Property_0_is_missing_in_type_1_but_required_in_type_2, propName, ...getTypeNamesForErrorDisplay(source2, target2));\n        if (length(unmatchedProperty.declarations)) {\n          associateRelatedInfo(createDiagnosticForNode(unmatchedProperty.declarations[0], Diagnostics._0_is_declared_here, propName));\n        }\n        if (shouldSkipElaboration && errorInfo) {\n          overrideNextErrorInfo++;\n        }\n      } else if (tryElaborateArrayLikeErrors(\n        source2,\n        target2,\n        /*reportErrors*/\n        false\n      )) {\n        if (props.length > 5) {\n          reportError(Diagnostics.Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more, typeToString(source2), typeToString(target2), map(props.slice(0, 4), (p) => symbolToString(p)).join(\", \"), props.length - 4);\n        } else {\n          reportError(Diagnostics.Type_0_is_missing_the_following_properties_from_type_1_Colon_2, typeToString(source2), typeToString(target2), map(props, (p) => symbolToString(p)).join(\", \"));\n        }\n        if (shouldSkipElaboration && errorInfo) {\n          overrideNextErrorInfo++;\n        }\n      }\n    }\n    function propertiesRelatedTo(source2, target2, reportErrors2, excludedProperties, optionalsOnly, intersectionState) {\n      if (relation === identityRelation) {\n        return propertiesIdenticalTo(source2, target2, excludedProperties);\n      }\n      let result2 = -1 /* True */;\n      if (isTupleType(target2)) {\n        if (isArrayOrTupleType(source2)) {\n          if (!target2.target.readonly && (isReadonlyArrayType(source2) || isTupleType(source2) && source2.target.readonly)) {\n            return 0 /* False */;\n          }\n          const sourceArity = getTypeReferenceArity(source2);\n          const targetArity = getTypeReferenceArity(target2);\n          const sourceRestFlag = isTupleType(source2) ? source2.target.combinedFlags & 4 /* Rest */ : 4 /* Rest */;\n          const targetHasRestElement = !!(target2.target.combinedFlags & 12 /* Variable */);\n          const sourceMinLength = isTupleType(source2) ? source2.target.minLength : 0;\n          const targetMinLength = target2.target.minLength;\n          if (!sourceRestFlag && sourceArity < targetMinLength) {\n            if (reportErrors2) {\n              reportError(Diagnostics.Source_has_0_element_s_but_target_requires_1, sourceArity, targetMinLength);\n            }\n            return 0 /* False */;\n          }\n          if (!targetHasRestElement && targetArity < sourceMinLength) {\n            if (reportErrors2) {\n              reportError(Diagnostics.Source_has_0_element_s_but_target_allows_only_1, sourceMinLength, targetArity);\n            }\n            return 0 /* False */;\n          }\n          if (!targetHasRestElement && (sourceRestFlag || targetArity < sourceArity)) {\n            if (reportErrors2) {\n              if (sourceMinLength < targetMinLength) {\n                reportError(Diagnostics.Target_requires_0_element_s_but_source_may_have_fewer, targetMinLength);\n              } else {\n                reportError(Diagnostics.Target_allows_only_0_element_s_but_source_may_have_more, targetArity);\n              }\n            }\n            return 0 /* False */;\n          }\n          const sourceTypeArguments = getTypeArguments(source2);\n          const targetTypeArguments = getTypeArguments(target2);\n          const targetStartCount = getStartElementCount(target2.target, 11 /* NonRest */);\n          const targetEndCount = getEndElementCount(target2.target, 11 /* NonRest */);\n          let canExcludeDiscriminants = !!excludedProperties;\n          for (let sourcePosition = 0; sourcePosition < sourceArity; sourcePosition++) {\n            const sourceFlags = isTupleType(source2) ? source2.target.elementFlags[sourcePosition] : 4 /* Rest */;\n            const sourcePositionFromEnd = sourceArity - 1 - sourcePosition;\n            const targetPosition = targetHasRestElement && sourcePosition >= targetStartCount ? targetArity - 1 - Math.min(sourcePositionFromEnd, targetEndCount) : sourcePosition;\n            const targetFlags = target2.target.elementFlags[targetPosition];\n            if (targetFlags & 8 /* Variadic */ && !(sourceFlags & 8 /* Variadic */)) {\n              if (reportErrors2) {\n                reportError(Diagnostics.Source_provides_no_match_for_variadic_element_at_position_0_in_target, targetPosition);\n              }\n              return 0 /* False */;\n            }\n            if (sourceFlags & 8 /* Variadic */ && !(targetFlags & 12 /* Variable */)) {\n              if (reportErrors2) {\n                reportError(Diagnostics.Variadic_element_at_position_0_in_source_does_not_match_element_at_position_1_in_target, sourcePosition, targetPosition);\n              }\n              return 0 /* False */;\n            }\n            if (targetFlags & 1 /* Required */ && !(sourceFlags & 1 /* Required */)) {\n              if (reportErrors2) {\n                reportError(Diagnostics.Source_provides_no_match_for_required_element_at_position_0_in_target, targetPosition);\n              }\n              return 0 /* False */;\n            }\n            if (canExcludeDiscriminants) {\n              if (sourceFlags & 12 /* Variable */ || targetFlags & 12 /* Variable */) {\n                canExcludeDiscriminants = false;\n              }\n              if (canExcludeDiscriminants && (excludedProperties == null ? void 0 : excludedProperties.has(\"\" + sourcePosition))) {\n                continue;\n              }\n            }\n            const sourceType = removeMissingType(sourceTypeArguments[sourcePosition], !!(sourceFlags & targetFlags & 2 /* Optional */));\n            const targetType = targetTypeArguments[targetPosition];\n            const targetCheckType = sourceFlags & 8 /* Variadic */ && targetFlags & 4 /* Rest */ ? createArrayType(targetType) : removeMissingType(targetType, !!(targetFlags & 2 /* Optional */));\n            const related = isRelatedTo(\n              sourceType,\n              targetCheckType,\n              3 /* Both */,\n              reportErrors2,\n              /*headMessage*/\n              void 0,\n              intersectionState\n            );\n            if (!related) {\n              if (reportErrors2 && (targetArity > 1 || sourceArity > 1)) {\n                if (targetHasRestElement && sourcePosition >= targetStartCount && sourcePositionFromEnd >= targetEndCount && targetStartCount !== sourceArity - targetEndCount - 1) {\n                  reportIncompatibleError(Diagnostics.Type_at_positions_0_through_1_in_source_is_not_compatible_with_type_at_position_2_in_target, targetStartCount, sourceArity - targetEndCount - 1, targetPosition);\n                } else {\n                  reportIncompatibleError(Diagnostics.Type_at_position_0_in_source_is_not_compatible_with_type_at_position_1_in_target, sourcePosition, targetPosition);\n                }\n              }\n              return 0 /* False */;\n            }\n            result2 &= related;\n          }\n          return result2;\n        }\n        if (target2.target.combinedFlags & 12 /* Variable */) {\n          return 0 /* False */;\n        }\n      }\n      const requireOptionalProperties = (relation === subtypeRelation || relation === strictSubtypeRelation) && !isObjectLiteralType2(source2) && !isEmptyArrayLiteralType(source2) && !isTupleType(source2);\n      const unmatchedProperty = getUnmatchedProperty(\n        source2,\n        target2,\n        requireOptionalProperties,\n        /*matchDiscriminantProperties*/\n        false\n      );\n      if (unmatchedProperty) {\n        if (reportErrors2 && shouldReportUnmatchedPropertyError(source2, target2)) {\n          reportUnmatchedProperty(source2, target2, unmatchedProperty, requireOptionalProperties);\n        }\n        return 0 /* False */;\n      }\n      if (isObjectLiteralType2(target2)) {\n        for (const sourceProp of excludeProperties(getPropertiesOfType(source2), excludedProperties)) {\n          if (!getPropertyOfObjectType(target2, sourceProp.escapedName)) {\n            const sourceType = getTypeOfSymbol(sourceProp);\n            if (!(sourceType.flags & 32768 /* Undefined */)) {\n              if (reportErrors2) {\n                reportError(Diagnostics.Property_0_does_not_exist_on_type_1, symbolToString(sourceProp), typeToString(target2));\n              }\n              return 0 /* False */;\n            }\n          }\n        }\n      }\n      const properties = getPropertiesOfType(target2);\n      const numericNamesOnly = isTupleType(source2) && isTupleType(target2);\n      for (const targetProp of excludeProperties(properties, excludedProperties)) {\n        const name = targetProp.escapedName;\n        if (!(targetProp.flags & 4194304 /* Prototype */) && (!numericNamesOnly || isNumericLiteralName(name) || name === \"length\") && (!optionalsOnly || targetProp.flags & 16777216 /* Optional */)) {\n          const sourceProp = getPropertyOfType(source2, name);\n          if (sourceProp && sourceProp !== targetProp) {\n            const related = propertyRelatedTo(source2, target2, sourceProp, targetProp, getNonMissingTypeOfSymbol, reportErrors2, intersectionState, relation === comparableRelation);\n            if (!related) {\n              return 0 /* False */;\n            }\n            result2 &= related;\n          }\n        }\n      }\n      return result2;\n    }\n    function propertiesIdenticalTo(source2, target2, excludedProperties) {\n      if (!(source2.flags & 524288 /* Object */ && target2.flags & 524288 /* Object */)) {\n        return 0 /* False */;\n      }\n      const sourceProperties = excludeProperties(getPropertiesOfObjectType(source2), excludedProperties);\n      const targetProperties = excludeProperties(getPropertiesOfObjectType(target2), excludedProperties);\n      if (sourceProperties.length !== targetProperties.length) {\n        return 0 /* False */;\n      }\n      let result2 = -1 /* True */;\n      for (const sourceProp of sourceProperties) {\n        const targetProp = getPropertyOfObjectType(target2, sourceProp.escapedName);\n        if (!targetProp) {\n          return 0 /* False */;\n        }\n        const related = compareProperties2(sourceProp, targetProp, isRelatedTo);\n        if (!related) {\n          return 0 /* False */;\n        }\n        result2 &= related;\n      }\n      return result2;\n    }\n    function signaturesRelatedTo(source2, target2, kind, reportErrors2, intersectionState) {\n      var _a2, _b;\n      if (relation === identityRelation) {\n        return signaturesIdenticalTo(source2, target2, kind);\n      }\n      if (target2 === anyFunctionType || source2 === anyFunctionType) {\n        return -1 /* True */;\n      }\n      const sourceIsJSConstructor = source2.symbol && isJSConstructor(source2.symbol.valueDeclaration);\n      const targetIsJSConstructor = target2.symbol && isJSConstructor(target2.symbol.valueDeclaration);\n      const sourceSignatures = getSignaturesOfType(\n        source2,\n        sourceIsJSConstructor && kind === 1 /* Construct */ ? 0 /* Call */ : kind\n      );\n      const targetSignatures = getSignaturesOfType(\n        target2,\n        targetIsJSConstructor && kind === 1 /* Construct */ ? 0 /* Call */ : kind\n      );\n      if (kind === 1 /* Construct */ && sourceSignatures.length && targetSignatures.length) {\n        const sourceIsAbstract = !!(sourceSignatures[0].flags & 4 /* Abstract */);\n        const targetIsAbstract = !!(targetSignatures[0].flags & 4 /* Abstract */);\n        if (sourceIsAbstract && !targetIsAbstract) {\n          if (reportErrors2) {\n            reportError(Diagnostics.Cannot_assign_an_abstract_constructor_type_to_a_non_abstract_constructor_type);\n          }\n          return 0 /* False */;\n        }\n        if (!constructorVisibilitiesAreCompatible(sourceSignatures[0], targetSignatures[0], reportErrors2)) {\n          return 0 /* False */;\n        }\n      }\n      let result2 = -1 /* True */;\n      const incompatibleReporter = kind === 1 /* Construct */ ? reportIncompatibleConstructSignatureReturn : reportIncompatibleCallSignatureReturn;\n      const sourceObjectFlags = getObjectFlags(source2);\n      const targetObjectFlags = getObjectFlags(target2);\n      if (sourceObjectFlags & 64 /* Instantiated */ && targetObjectFlags & 64 /* Instantiated */ && source2.symbol === target2.symbol || sourceObjectFlags & 4 /* Reference */ && targetObjectFlags & 4 /* Reference */ && source2.target === target2.target) {\n        Debug.assertEqual(sourceSignatures.length, targetSignatures.length);\n        for (let i = 0; i < targetSignatures.length; i++) {\n          const related = signatureRelatedTo(\n            sourceSignatures[i],\n            targetSignatures[i],\n            /*erase*/\n            true,\n            reportErrors2,\n            intersectionState,\n            incompatibleReporter(sourceSignatures[i], targetSignatures[i])\n          );\n          if (!related) {\n            return 0 /* False */;\n          }\n          result2 &= related;\n        }\n      } else if (sourceSignatures.length === 1 && targetSignatures.length === 1) {\n        const eraseGenerics = relation === comparableRelation;\n        const sourceSignature = first(sourceSignatures);\n        const targetSignature = first(targetSignatures);\n        result2 = signatureRelatedTo(sourceSignature, targetSignature, eraseGenerics, reportErrors2, intersectionState, incompatibleReporter(sourceSignature, targetSignature));\n        if (!result2 && reportErrors2 && kind === 1 /* Construct */ && sourceObjectFlags & targetObjectFlags && (((_a2 = targetSignature.declaration) == null ? void 0 : _a2.kind) === 177 /* Constructor */ || ((_b = sourceSignature.declaration) == null ? void 0 : _b.kind) === 177 /* Constructor */)) {\n          const constructSignatureToString = (signature) => signatureToString(\n            signature,\n            /*enclosingDeclaration*/\n            void 0,\n            262144 /* WriteArrowStyleSignature */,\n            kind\n          );\n          reportError(Diagnostics.Type_0_is_not_assignable_to_type_1, constructSignatureToString(sourceSignature), constructSignatureToString(targetSignature));\n          reportError(Diagnostics.Types_of_construct_signatures_are_incompatible);\n          return result2;\n        }\n      } else {\n        outer:\n          for (const t of targetSignatures) {\n            const saveErrorInfo = captureErrorCalculationState();\n            let shouldElaborateErrors = reportErrors2;\n            for (const s of sourceSignatures) {\n              const related = signatureRelatedTo(\n                s,\n                t,\n                /*erase*/\n                true,\n                shouldElaborateErrors,\n                intersectionState,\n                incompatibleReporter(s, t)\n              );\n              if (related) {\n                result2 &= related;\n                resetErrorInfo(saveErrorInfo);\n                continue outer;\n              }\n              shouldElaborateErrors = false;\n            }\n            if (shouldElaborateErrors) {\n              reportError(Diagnostics.Type_0_provides_no_match_for_the_signature_1, typeToString(source2), signatureToString(\n                t,\n                /*enclosingDeclaration*/\n                void 0,\n                /*flags*/\n                void 0,\n                kind\n              ));\n            }\n            return 0 /* False */;\n          }\n      }\n      return result2;\n    }\n    function shouldReportUnmatchedPropertyError(source2, target2) {\n      const typeCallSignatures = getSignaturesOfStructuredType(source2, 0 /* Call */);\n      const typeConstructSignatures = getSignaturesOfStructuredType(source2, 1 /* Construct */);\n      const typeProperties = getPropertiesOfObjectType(source2);\n      if ((typeCallSignatures.length || typeConstructSignatures.length) && !typeProperties.length) {\n        if (getSignaturesOfType(target2, 0 /* Call */).length && typeCallSignatures.length || getSignaturesOfType(target2, 1 /* Construct */).length && typeConstructSignatures.length) {\n          return true;\n        }\n        return false;\n      }\n      return true;\n    }\n    function reportIncompatibleCallSignatureReturn(siga, sigb) {\n      if (siga.parameters.length === 0 && sigb.parameters.length === 0) {\n        return (source2, target2) => reportIncompatibleError(Diagnostics.Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1, typeToString(source2), typeToString(target2));\n      }\n      return (source2, target2) => reportIncompatibleError(Diagnostics.Call_signature_return_types_0_and_1_are_incompatible, typeToString(source2), typeToString(target2));\n    }\n    function reportIncompatibleConstructSignatureReturn(siga, sigb) {\n      if (siga.parameters.length === 0 && sigb.parameters.length === 0) {\n        return (source2, target2) => reportIncompatibleError(Diagnostics.Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1, typeToString(source2), typeToString(target2));\n      }\n      return (source2, target2) => reportIncompatibleError(Diagnostics.Construct_signature_return_types_0_and_1_are_incompatible, typeToString(source2), typeToString(target2));\n    }\n    function signatureRelatedTo(source2, target2, erase, reportErrors2, intersectionState, incompatibleReporter) {\n      const checkMode = relation === subtypeRelation ? 16 /* StrictTopSignature */ : relation === strictSubtypeRelation ? 16 /* StrictTopSignature */ | 8 /* StrictArity */ : 0 /* None */;\n      return compareSignaturesRelated(erase ? getErasedSignature(source2) : source2, erase ? getErasedSignature(target2) : target2, checkMode, reportErrors2, reportError, incompatibleReporter, isRelatedToWorker2, reportUnreliableMapper);\n      function isRelatedToWorker2(source3, target3, reportErrors3) {\n        return isRelatedTo(\n          source3,\n          target3,\n          3 /* Both */,\n          reportErrors3,\n          /*headMessage*/\n          void 0,\n          intersectionState\n        );\n      }\n    }\n    function signaturesIdenticalTo(source2, target2, kind) {\n      const sourceSignatures = getSignaturesOfType(source2, kind);\n      const targetSignatures = getSignaturesOfType(target2, kind);\n      if (sourceSignatures.length !== targetSignatures.length) {\n        return 0 /* False */;\n      }\n      let result2 = -1 /* True */;\n      for (let i = 0; i < sourceSignatures.length; i++) {\n        const related = compareSignaturesIdentical(\n          sourceSignatures[i],\n          targetSignatures[i],\n          /*partialMatch*/\n          false,\n          /*ignoreThisTypes*/\n          false,\n          /*ignoreReturnTypes*/\n          false,\n          isRelatedTo\n        );\n        if (!related) {\n          return 0 /* False */;\n        }\n        result2 &= related;\n      }\n      return result2;\n    }\n    function membersRelatedToIndexInfo(source2, targetInfo, reportErrors2, intersectionState) {\n      let result2 = -1 /* True */;\n      const keyType = targetInfo.keyType;\n      const props = source2.flags & 2097152 /* Intersection */ ? getPropertiesOfUnionOrIntersectionType(source2) : getPropertiesOfObjectType(source2);\n      for (const prop of props) {\n        if (isIgnoredJsxProperty(source2, prop)) {\n          continue;\n        }\n        if (isApplicableIndexType(getLiteralTypeFromProperty(prop, 8576 /* StringOrNumberLiteralOrUnique */), keyType)) {\n          const propType = getNonMissingTypeOfSymbol(prop);\n          const type = exactOptionalPropertyTypes || propType.flags & 32768 /* Undefined */ || keyType === numberType || !(prop.flags & 16777216 /* Optional */) ? propType : getTypeWithFacts(propType, 524288 /* NEUndefined */);\n          const related = isRelatedTo(\n            type,\n            targetInfo.type,\n            3 /* Both */,\n            reportErrors2,\n            /*headMessage*/\n            void 0,\n            intersectionState\n          );\n          if (!related) {\n            if (reportErrors2) {\n              reportError(Diagnostics.Property_0_is_incompatible_with_index_signature, symbolToString(prop));\n            }\n            return 0 /* False */;\n          }\n          result2 &= related;\n        }\n      }\n      for (const info of getIndexInfosOfType(source2)) {\n        if (isApplicableIndexType(info.keyType, keyType)) {\n          const related = indexInfoRelatedTo(info, targetInfo, reportErrors2, intersectionState);\n          if (!related) {\n            return 0 /* False */;\n          }\n          result2 &= related;\n        }\n      }\n      return result2;\n    }\n    function indexInfoRelatedTo(sourceInfo, targetInfo, reportErrors2, intersectionState) {\n      const related = isRelatedTo(\n        sourceInfo.type,\n        targetInfo.type,\n        3 /* Both */,\n        reportErrors2,\n        /*headMessage*/\n        void 0,\n        intersectionState\n      );\n      if (!related && reportErrors2) {\n        if (sourceInfo.keyType === targetInfo.keyType) {\n          reportError(Diagnostics._0_index_signatures_are_incompatible, typeToString(sourceInfo.keyType));\n        } else {\n          reportError(Diagnostics._0_and_1_index_signatures_are_incompatible, typeToString(sourceInfo.keyType), typeToString(targetInfo.keyType));\n        }\n      }\n      return related;\n    }\n    function indexSignaturesRelatedTo(source2, target2, sourceIsPrimitive, reportErrors2, intersectionState) {\n      if (relation === identityRelation) {\n        return indexSignaturesIdenticalTo(source2, target2);\n      }\n      const indexInfos = getIndexInfosOfType(target2);\n      const targetHasStringIndex = some(indexInfos, (info) => info.keyType === stringType);\n      let result2 = -1 /* True */;\n      for (const targetInfo of indexInfos) {\n        const related = relation !== strictSubtypeRelation && !sourceIsPrimitive && targetHasStringIndex && targetInfo.type.flags & 1 /* Any */ ? -1 /* True */ : isGenericMappedType(source2) && targetHasStringIndex ? isRelatedTo(getTemplateTypeFromMappedType(source2), targetInfo.type, 3 /* Both */, reportErrors2) : typeRelatedToIndexInfo(source2, targetInfo, reportErrors2, intersectionState);\n        if (!related) {\n          return 0 /* False */;\n        }\n        result2 &= related;\n      }\n      return result2;\n    }\n    function typeRelatedToIndexInfo(source2, targetInfo, reportErrors2, intersectionState) {\n      const sourceInfo = getApplicableIndexInfo(source2, targetInfo.keyType);\n      if (sourceInfo) {\n        return indexInfoRelatedTo(sourceInfo, targetInfo, reportErrors2, intersectionState);\n      }\n      if (!(intersectionState & 1 /* Source */) && (relation !== strictSubtypeRelation || getObjectFlags(source2) & 8192 /* FreshLiteral */) && isObjectTypeWithInferableIndex(source2)) {\n        return membersRelatedToIndexInfo(source2, targetInfo, reportErrors2, intersectionState);\n      }\n      if (reportErrors2) {\n        reportError(Diagnostics.Index_signature_for_type_0_is_missing_in_type_1, typeToString(targetInfo.keyType), typeToString(source2));\n      }\n      return 0 /* False */;\n    }\n    function indexSignaturesIdenticalTo(source2, target2) {\n      const sourceInfos = getIndexInfosOfType(source2);\n      const targetInfos = getIndexInfosOfType(target2);\n      if (sourceInfos.length !== targetInfos.length) {\n        return 0 /* False */;\n      }\n      for (const targetInfo of targetInfos) {\n        const sourceInfo = getIndexInfoOfType(source2, targetInfo.keyType);\n        if (!(sourceInfo && isRelatedTo(sourceInfo.type, targetInfo.type, 3 /* Both */) && sourceInfo.isReadonly === targetInfo.isReadonly)) {\n          return 0 /* False */;\n        }\n      }\n      return -1 /* True */;\n    }\n    function constructorVisibilitiesAreCompatible(sourceSignature, targetSignature, reportErrors2) {\n      if (!sourceSignature.declaration || !targetSignature.declaration) {\n        return true;\n      }\n      const sourceAccessibility = getSelectedEffectiveModifierFlags(sourceSignature.declaration, 6 /* NonPublicAccessibilityModifier */);\n      const targetAccessibility = getSelectedEffectiveModifierFlags(targetSignature.declaration, 6 /* NonPublicAccessibilityModifier */);\n      if (targetAccessibility === 2 /* Private */) {\n        return true;\n      }\n      if (targetAccessibility === 4 /* Protected */ && sourceAccessibility !== 2 /* Private */) {\n        return true;\n      }\n      if (targetAccessibility !== 4 /* Protected */ && !sourceAccessibility) {\n        return true;\n      }\n      if (reportErrors2) {\n        reportError(Diagnostics.Cannot_assign_a_0_constructor_type_to_a_1_constructor_type, visibilityToString(sourceAccessibility), visibilityToString(targetAccessibility));\n      }\n      return false;\n    }\n  }\n  function typeCouldHaveTopLevelSingletonTypes(type) {\n    if (type.flags & 16 /* Boolean */) {\n      return false;\n    }\n    if (type.flags & 3145728 /* UnionOrIntersection */) {\n      return !!forEach(type.types, typeCouldHaveTopLevelSingletonTypes);\n    }\n    if (type.flags & 465829888 /* Instantiable */) {\n      const constraint = getConstraintOfType(type);\n      if (constraint && constraint !== type) {\n        return typeCouldHaveTopLevelSingletonTypes(constraint);\n      }\n    }\n    return isUnitType(type) || !!(type.flags & 134217728 /* TemplateLiteral */) || !!(type.flags & 268435456 /* StringMapping */);\n  }\n  function getExactOptionalUnassignableProperties(source, target) {\n    if (isTupleType(source) && isTupleType(target)) return emptyArray;\n    return getPropertiesOfType(target).filter((targetProp) => isExactOptionalPropertyMismatch(getTypeOfPropertyOfType(source, targetProp.escapedName), getTypeOfSymbol(targetProp)));\n  }\n  function isExactOptionalPropertyMismatch(source, target) {\n    return !!source && !!target && maybeTypeOfKind(source, 32768 /* Undefined */) && !!containsMissingType(target);\n  }\n  function getExactOptionalProperties(type) {\n    return getPropertiesOfType(type).filter((targetProp) => containsMissingType(getTypeOfSymbol(targetProp)));\n  }\n  function getBestMatchingType(source, target, isRelatedTo = compareTypesAssignable) {\n    return findMatchingDiscriminantType(source, target, isRelatedTo) || findMatchingTypeReferenceOrTypeAliasReference(source, target) || findBestTypeForObjectLiteral(source, target) || findBestTypeForInvokable(source, target) || findMostOverlappyType(source, target);\n  }\n  function discriminateTypeByDiscriminableItems(target, discriminators, related) {\n    const types = target.types;\n    const include = types.map((t) => t.flags & 402784252 /* Primitive */ ? 0 /* False */ : -1 /* True */);\n    for (const [getDiscriminatingType, propertyName] of discriminators) {\n      let matched = false;\n      for (let i = 0; i < types.length; i++) {\n        if (include[i]) {\n          const targetType = getTypeOfPropertyOrIndexSignatureOfType(types[i], propertyName);\n          if (targetType) {\n            if (someType(getDiscriminatingType(), (t) => !!related(t, targetType))) {\n              matched = true;\n            } else {\n              include[i] = 3 /* Maybe */;\n            }\n          }\n        }\n      }\n      for (let i = 0; i < types.length; i++) {\n        if (include[i] === 3 /* Maybe */) {\n          include[i] = matched ? 0 /* False */ : -1 /* True */;\n        }\n      }\n    }\n    const filtered = contains(include, 0 /* False */) ? getUnionType(types.filter((_, i) => include[i]), 0 /* None */) : target;\n    return filtered.flags & 131072 /* Never */ ? target : filtered;\n  }\n  function isWeakType(type) {\n    if (type.flags & 524288 /* Object */) {\n      const resolved = resolveStructuredTypeMembers(type);\n      return resolved.callSignatures.length === 0 && resolved.constructSignatures.length === 0 && resolved.indexInfos.length === 0 && resolved.properties.length > 0 && every(resolved.properties, (p) => !!(p.flags & 16777216 /* Optional */));\n    }\n    if (type.flags & 33554432 /* Substitution */) {\n      return isWeakType(type.baseType);\n    }\n    if (type.flags & 2097152 /* Intersection */) {\n      return every(type.types, isWeakType);\n    }\n    return false;\n  }\n  function hasCommonProperties(source, target, isComparingJsxAttributes) {\n    for (const prop of getPropertiesOfType(source)) {\n      if (isKnownProperty(target, prop.escapedName, isComparingJsxAttributes)) {\n        return true;\n      }\n    }\n    return false;\n  }\n  function getVariances(type) {\n    return type === globalArrayType || type === globalReadonlyArrayType || type.objectFlags & 8 /* Tuple */ ? arrayVariances : getVariancesWorker(type.symbol, type.typeParameters);\n  }\n  function getAliasVariances(symbol) {\n    return getVariancesWorker(symbol, getSymbolLinks(symbol).typeParameters);\n  }\n  function getVariancesWorker(symbol, typeParameters = emptyArray) {\n    var _a, _b;\n    const links = getSymbolLinks(symbol);\n    if (!links.variances) {\n      (_a = tracing) == null ? void 0 : _a.push(tracing.Phase.CheckTypes, \"getVariancesWorker\", { arity: typeParameters.length, id: getTypeId(getDeclaredTypeOfSymbol(symbol)) });\n      const oldVarianceComputation = inVarianceComputation;\n      const saveResolutionStart = resolutionStart;\n      if (!inVarianceComputation) {\n        inVarianceComputation = true;\n        resolutionStart = resolutionTargets.length;\n      }\n      links.variances = emptyArray;\n      const variances = [];\n      for (const tp of typeParameters) {\n        const modifiers = getTypeParameterModifiers(tp);\n        let variance = modifiers & 16384 /* Out */ ? modifiers & 8192 /* In */ ? 0 /* Invariant */ : 1 /* Covariant */ : modifiers & 8192 /* In */ ? 2 /* Contravariant */ : void 0;\n        if (variance === void 0) {\n          let unmeasurable = false;\n          let unreliable = false;\n          const oldHandler = outofbandVarianceMarkerHandler;\n          outofbandVarianceMarkerHandler = (onlyUnreliable) => onlyUnreliable ? unreliable = true : unmeasurable = true;\n          const typeWithSuper = createMarkerType(symbol, tp, markerSuperType);\n          const typeWithSub = createMarkerType(symbol, tp, markerSubType);\n          variance = (isTypeAssignableTo(typeWithSub, typeWithSuper) ? 1 /* Covariant */ : 0) | (isTypeAssignableTo(typeWithSuper, typeWithSub) ? 2 /* Contravariant */ : 0);\n          if (variance === 3 /* Bivariant */ && isTypeAssignableTo(createMarkerType(symbol, tp, markerOtherType), typeWithSuper)) {\n            variance = 4 /* Independent */;\n          }\n          outofbandVarianceMarkerHandler = oldHandler;\n          if (unmeasurable || unreliable) {\n            if (unmeasurable) {\n              variance |= 8 /* Unmeasurable */;\n            }\n            if (unreliable) {\n              variance |= 16 /* Unreliable */;\n            }\n          }\n        }\n        variances.push(variance);\n      }\n      if (!oldVarianceComputation) {\n        inVarianceComputation = false;\n        resolutionStart = saveResolutionStart;\n      }\n      links.variances = variances;\n      (_b = tracing) == null ? void 0 : _b.pop({ variances: variances.map(Debug.formatVariance) });\n    }\n    return links.variances;\n  }\n  function createMarkerType(symbol, source, target) {\n    const mapper = makeUnaryTypeMapper(source, target);\n    const type = getDeclaredTypeOfSymbol(symbol);\n    if (isErrorType(type)) {\n      return type;\n    }\n    const result = symbol.flags & 524288 /* TypeAlias */ ? getTypeAliasInstantiation(symbol, instantiateTypes(getSymbolLinks(symbol).typeParameters, mapper)) : createTypeReference(type, instantiateTypes(type.typeParameters, mapper));\n    markerTypes.add(getTypeId(result));\n    return result;\n  }\n  function isMarkerType(type) {\n    return markerTypes.has(getTypeId(type));\n  }\n  function getTypeParameterModifiers(tp) {\n    var _a;\n    return reduceLeft((_a = tp.symbol) == null ? void 0 : _a.declarations, (modifiers, d) => modifiers | getEffectiveModifierFlags(d), 0 /* None */) & (8192 /* In */ | 16384 /* Out */ | 4096 /* Const */);\n  }\n  function hasCovariantVoidArgument(typeArguments, variances) {\n    for (let i = 0; i < variances.length; i++) {\n      if ((variances[i] & 7 /* VarianceMask */) === 1 /* Covariant */ && typeArguments[i].flags & 16384 /* Void */) {\n        return true;\n      }\n    }\n    return false;\n  }\n  function isUnconstrainedTypeParameter(type) {\n    return type.flags & 262144 /* TypeParameter */ && !getConstraintOfTypeParameter(type);\n  }\n  function isNonDeferredTypeReference(type) {\n    return !!(getObjectFlags(type) & 4 /* Reference */) && !type.node;\n  }\n  function isTypeReferenceWithGenericArguments(type) {\n    return isNonDeferredTypeReference(type) && some(getTypeArguments(type), (t) => !!(t.flags & 262144 /* TypeParameter */) || isTypeReferenceWithGenericArguments(t));\n  }\n  function getGenericTypeReferenceRelationKey(source, target, postFix, ignoreConstraints) {\n    const typeParameters = [];\n    let constraintMarker = \"\";\n    const sourceId = getTypeReferenceId(source, 0);\n    const targetId = getTypeReferenceId(target, 0);\n    return `${constraintMarker}${sourceId},${targetId}${postFix}`;\n    function getTypeReferenceId(type, depth = 0) {\n      let result = \"\" + type.target.id;\n      for (const t of getTypeArguments(type)) {\n        if (t.flags & 262144 /* TypeParameter */) {\n          if (ignoreConstraints || isUnconstrainedTypeParameter(t)) {\n            let index = typeParameters.indexOf(t);\n            if (index < 0) {\n              index = typeParameters.length;\n              typeParameters.push(t);\n            }\n            result += \"=\" + index;\n            continue;\n          }\n          constraintMarker = \"*\";\n        } else if (depth < 4 && isTypeReferenceWithGenericArguments(t)) {\n          result += \"<\" + getTypeReferenceId(t, depth + 1) + \">\";\n          continue;\n        }\n        result += \"-\" + t.id;\n      }\n      return result;\n    }\n  }\n  function getRelationKey(source, target, intersectionState, relation, ignoreConstraints) {\n    if (relation === identityRelation && source.id > target.id) {\n      const temp = source;\n      source = target;\n      target = temp;\n    }\n    const postFix = intersectionState ? \":\" + intersectionState : \"\";\n    return isTypeReferenceWithGenericArguments(source) && isTypeReferenceWithGenericArguments(target) ? getGenericTypeReferenceRelationKey(source, target, postFix, ignoreConstraints) : `${source.id},${target.id}${postFix}`;\n  }\n  function forEachProperty2(prop, callback) {\n    if (getCheckFlags(prop) & 6 /* Synthetic */) {\n      for (const t of prop.links.containingType.types) {\n        const p = getPropertyOfType(t, prop.escapedName);\n        const result = p && forEachProperty2(p, callback);\n        if (result) {\n          return result;\n        }\n      }\n      return void 0;\n    }\n    return callback(prop);\n  }\n  function getDeclaringClass(prop) {\n    return prop.parent && prop.parent.flags & 32 /* Class */ ? getDeclaredTypeOfSymbol(getParentOfSymbol(prop)) : void 0;\n  }\n  function getTypeOfPropertyInBaseClass(property) {\n    const classType = getDeclaringClass(property);\n    const baseClassType = classType && getBaseTypes(classType)[0];\n    return baseClassType && getTypeOfPropertyOfType(baseClassType, property.escapedName);\n  }\n  function isPropertyInClassDerivedFrom(prop, baseClass) {\n    return forEachProperty2(prop, (sp) => {\n      const sourceClass = getDeclaringClass(sp);\n      return sourceClass ? hasBaseType(sourceClass, baseClass) : false;\n    });\n  }\n  function isValidOverrideOf(sourceProp, targetProp) {\n    return !forEachProperty2(targetProp, (tp) => getDeclarationModifierFlagsFromSymbol(tp) & 4 /* Protected */ ? !isPropertyInClassDerivedFrom(sourceProp, getDeclaringClass(tp)) : false);\n  }\n  function isClassDerivedFromDeclaringClasses(checkClass, prop, writing) {\n    return forEachProperty2(prop, (p) => getDeclarationModifierFlagsFromSymbol(p, writing) & 4 /* Protected */ ? !hasBaseType(checkClass, getDeclaringClass(p)) : false) ? void 0 : checkClass;\n  }\n  function isDeeplyNestedType(type, stack, depth, maxDepth = 3) {\n    if (depth >= maxDepth) {\n      if ((getObjectFlags(type) & 96 /* InstantiatedMapped */) === 96 /* InstantiatedMapped */) {\n        type = getMappedTargetWithSymbol(type);\n      }\n      if (type.flags & 2097152 /* Intersection */) {\n        return some(type.types, (t) => isDeeplyNestedType(t, stack, depth, maxDepth));\n      }\n      const identity2 = getRecursionIdentity(type);\n      let count = 0;\n      let lastTypeId = 0;\n      for (let i = 0; i < depth; i++) {\n        const t = stack[i];\n        if (hasMatchingRecursionIdentity(t, identity2)) {\n          if (t.id >= lastTypeId) {\n            count++;\n            if (count >= maxDepth) {\n              return true;\n            }\n          }\n          lastTypeId = t.id;\n        }\n      }\n    }\n    return false;\n  }\n  function getMappedTargetWithSymbol(type) {\n    let target;\n    while ((getObjectFlags(type) & 96 /* InstantiatedMapped */) === 96 /* InstantiatedMapped */ && (target = getModifiersTypeFromMappedType(type)) && (target.symbol || target.flags & 2097152 /* Intersection */ && some(target.types, (t) => !!t.symbol))) {\n      type = target;\n    }\n    return type;\n  }\n  function hasMatchingRecursionIdentity(type, identity2) {\n    if ((getObjectFlags(type) & 96 /* InstantiatedMapped */) === 96 /* InstantiatedMapped */) {\n      type = getMappedTargetWithSymbol(type);\n    }\n    if (type.flags & 2097152 /* Intersection */) {\n      return some(type.types, (t) => hasMatchingRecursionIdentity(t, identity2));\n    }\n    return getRecursionIdentity(type) === identity2;\n  }\n  function getRecursionIdentity(type) {\n    if (type.flags & 524288 /* Object */ && !isObjectOrArrayLiteralType(type)) {\n      if (getObjectFlags(type) & 4 /* Reference */ && type.node) {\n        return type.node;\n      }\n      if (type.symbol && !(getObjectFlags(type) & 16 /* Anonymous */ && type.symbol.flags & 32 /* Class */)) {\n        return type.symbol;\n      }\n      if (isTupleType(type)) {\n        return type.target;\n      }\n    }\n    if (type.flags & 262144 /* TypeParameter */) {\n      return type.symbol;\n    }\n    if (type.flags & 8388608 /* IndexedAccess */) {\n      do {\n        type = type.objectType;\n      } while (type.flags & 8388608 /* IndexedAccess */);\n      return type;\n    }\n    if (type.flags & 16777216 /* Conditional */) {\n      return type.root;\n    }\n    return type;\n  }\n  function isPropertyIdenticalTo(sourceProp, targetProp) {\n    return compareProperties2(sourceProp, targetProp, compareTypesIdentical) !== 0 /* False */;\n  }\n  function compareProperties2(sourceProp, targetProp, compareTypes) {\n    if (sourceProp === targetProp) {\n      return -1 /* True */;\n    }\n    const sourcePropAccessibility = getDeclarationModifierFlagsFromSymbol(sourceProp) & 6 /* NonPublicAccessibilityModifier */;\n    const targetPropAccessibility = getDeclarationModifierFlagsFromSymbol(targetProp) & 6 /* NonPublicAccessibilityModifier */;\n    if (sourcePropAccessibility !== targetPropAccessibility) {\n      return 0 /* False */;\n    }\n    if (sourcePropAccessibility) {\n      if (getTargetSymbol(sourceProp) !== getTargetSymbol(targetProp)) {\n        return 0 /* False */;\n      }\n    } else {\n      if ((sourceProp.flags & 16777216 /* Optional */) !== (targetProp.flags & 16777216 /* Optional */)) {\n        return 0 /* False */;\n      }\n    }\n    if (isReadonlySymbol(sourceProp) !== isReadonlySymbol(targetProp)) {\n      return 0 /* False */;\n    }\n    return compareTypes(getTypeOfSymbol(sourceProp), getTypeOfSymbol(targetProp));\n  }\n  function isMatchingSignature(source, target, partialMatch) {\n    const sourceParameterCount = getParameterCount(source);\n    const targetParameterCount = getParameterCount(target);\n    const sourceMinArgumentCount = getMinArgumentCount(source);\n    const targetMinArgumentCount = getMinArgumentCount(target);\n    const sourceHasRestParameter = hasEffectiveRestParameter(source);\n    const targetHasRestParameter = hasEffectiveRestParameter(target);\n    if (sourceParameterCount === targetParameterCount && sourceMinArgumentCount === targetMinArgumentCount && sourceHasRestParameter === targetHasRestParameter) {\n      return true;\n    }\n    if (partialMatch && sourceMinArgumentCount <= targetMinArgumentCount) {\n      return true;\n    }\n    return false;\n  }\n  function compareSignaturesIdentical(source, target, partialMatch, ignoreThisTypes, ignoreReturnTypes, compareTypes) {\n    if (source === target) {\n      return -1 /* True */;\n    }\n    if (!isMatchingSignature(source, target, partialMatch)) {\n      return 0 /* False */;\n    }\n    if (length(source.typeParameters) !== length(target.typeParameters)) {\n      return 0 /* False */;\n    }\n    if (target.typeParameters) {\n      const mapper = createTypeMapper(source.typeParameters, target.typeParameters);\n      for (let i = 0; i < target.typeParameters.length; i++) {\n        const s = source.typeParameters[i];\n        const t = target.typeParameters[i];\n        if (!(s === t || compareTypes(instantiateType(getConstraintFromTypeParameter(s), mapper) || unknownType, getConstraintFromTypeParameter(t) || unknownType) && compareTypes(instantiateType(getDefaultFromTypeParameter(s), mapper) || unknownType, getDefaultFromTypeParameter(t) || unknownType))) {\n          return 0 /* False */;\n        }\n      }\n      source = instantiateSignature(\n        source,\n        mapper,\n        /*eraseTypeParameters*/\n        true\n      );\n    }\n    let result = -1 /* True */;\n    if (!ignoreThisTypes) {\n      const sourceThisType = getThisTypeOfSignature(source);\n      if (sourceThisType) {\n        const targetThisType = getThisTypeOfSignature(target);\n        if (targetThisType) {\n          const related = compareTypes(sourceThisType, targetThisType);\n          if (!related) {\n            return 0 /* False */;\n          }\n          result &= related;\n        }\n      }\n    }\n    const targetLen = getParameterCount(target);\n    for (let i = 0; i < targetLen; i++) {\n      const s = getTypeAtPosition(source, i);\n      const t = getTypeAtPosition(target, i);\n      const related = compareTypes(t, s);\n      if (!related) {\n        return 0 /* False */;\n      }\n      result &= related;\n    }\n    if (!ignoreReturnTypes) {\n      const sourceTypePredicate = getTypePredicateOfSignature(source);\n      const targetTypePredicate = getTypePredicateOfSignature(target);\n      result &= sourceTypePredicate || targetTypePredicate ? compareTypePredicatesIdentical(sourceTypePredicate, targetTypePredicate, compareTypes) : compareTypes(getReturnTypeOfSignature(source), getReturnTypeOfSignature(target));\n    }\n    return result;\n  }\n  function compareTypePredicatesIdentical(source, target, compareTypes) {\n    return !(source && target && typePredicateKindsMatch(source, target)) ? 0 /* False */ : source.type === target.type ? -1 /* True */ : source.type && target.type ? compareTypes(source.type, target.type) : 0 /* False */;\n  }\n  function literalTypesWithSameBaseType(types) {\n    let commonBaseType;\n    for (const t of types) {\n      if (!(t.flags & 131072 /* Never */)) {\n        const baseType = getBaseTypeOfLiteralType(t);\n        commonBaseType ?? (commonBaseType = baseType);\n        if (baseType === t || baseType !== commonBaseType) {\n          return false;\n        }\n      }\n    }\n    return true;\n  }\n  function getCombinedTypeFlags(types) {\n    return reduceLeft(types, (flags, t) => flags | (t.flags & 1048576 /* Union */ ? getCombinedTypeFlags(t.types) : t.flags), 0);\n  }\n  function getCommonSupertype(types) {\n    if (types.length === 1) {\n      return types[0];\n    }\n    const primaryTypes = strictNullChecks ? sameMap(types, (t) => filterType(t, (u) => !(u.flags & 98304 /* Nullable */))) : types;\n    const superTypeOrUnion = literalTypesWithSameBaseType(primaryTypes) ? getUnionType(primaryTypes) : getSingleCommonSupertype(primaryTypes);\n    return primaryTypes === types ? superTypeOrUnion : getNullableType(superTypeOrUnion, getCombinedTypeFlags(types) & 98304 /* Nullable */);\n  }\n  function getSingleCommonSupertype(types) {\n    const candidate = reduceLeft(types, (s, t) => isTypeStrictSubtypeOf(s, t) ? t : s);\n    return every(types, (t) => t === candidate || isTypeStrictSubtypeOf(t, candidate)) ? candidate : reduceLeft(types, (s, t) => isTypeSubtypeOf(s, t) ? t : s);\n  }\n  function getCommonSubtype(types) {\n    return reduceLeft(types, (s, t) => isTypeSubtypeOf(t, s) ? t : s);\n  }\n  function isArrayType(type) {\n    return !!(getObjectFlags(type) & 4 /* Reference */) && (type.target === globalArrayType || type.target === globalReadonlyArrayType);\n  }\n  function isReadonlyArrayType(type) {\n    return !!(getObjectFlags(type) & 4 /* Reference */) && type.target === globalReadonlyArrayType;\n  }\n  function isArrayOrTupleType(type) {\n    return isArrayType(type) || isTupleType(type);\n  }\n  function isMutableArrayOrTuple(type) {\n    return isArrayType(type) && !isReadonlyArrayType(type) || isTupleType(type) && !type.target.readonly;\n  }\n  function getElementTypeOfArrayType(type) {\n    return isArrayType(type) ? getTypeArguments(type)[0] : void 0;\n  }\n  function isArrayLikeType(type) {\n    return isArrayType(type) || !(type.flags & 98304 /* Nullable */) && isTypeAssignableTo(type, anyReadonlyArrayType);\n  }\n  function isMutableArrayLikeType(type) {\n    return isMutableArrayOrTuple(type) || !(type.flags & (1 /* Any */ | 98304 /* Nullable */)) && isTypeAssignableTo(type, anyArrayType);\n  }\n  function getSingleBaseForNonAugmentingSubtype(type) {\n    if (!(getObjectFlags(type) & 4 /* Reference */) || !(getObjectFlags(type.target) & 3 /* ClassOrInterface */)) {\n      return void 0;\n    }\n    if (getObjectFlags(type) & 33554432 /* IdenticalBaseTypeCalculated */) {\n      return getObjectFlags(type) & 67108864 /* IdenticalBaseTypeExists */ ? type.cachedEquivalentBaseType : void 0;\n    }\n    type.objectFlags |= 33554432 /* IdenticalBaseTypeCalculated */;\n    const target = type.target;\n    if (getObjectFlags(target) & 1 /* Class */) {\n      const baseTypeNode = getBaseTypeNodeOfClass(target);\n      if (baseTypeNode && baseTypeNode.expression.kind !== 80 /* Identifier */ && baseTypeNode.expression.kind !== 212 /* PropertyAccessExpression */) {\n        return void 0;\n      }\n    }\n    const bases = getBaseTypes(target);\n    if (bases.length !== 1) {\n      return void 0;\n    }\n    if (getMembersOfSymbol(type.symbol).size) {\n      return void 0;\n    }\n    let instantiatedBase = !length(target.typeParameters) ? bases[0] : instantiateType(bases[0], createTypeMapper(target.typeParameters, getTypeArguments(type).slice(0, target.typeParameters.length)));\n    if (length(getTypeArguments(type)) > length(target.typeParameters)) {\n      instantiatedBase = getTypeWithThisArgument(instantiatedBase, last(getTypeArguments(type)));\n    }\n    type.objectFlags |= 67108864 /* IdenticalBaseTypeExists */;\n    return type.cachedEquivalentBaseType = instantiatedBase;\n  }\n  function isEmptyLiteralType(type) {\n    return strictNullChecks ? type === implicitNeverType : type === undefinedWideningType;\n  }\n  function isEmptyArrayLiteralType(type) {\n    const elementType = getElementTypeOfArrayType(type);\n    return !!elementType && isEmptyLiteralType(elementType);\n  }\n  function isTupleLikeType(type) {\n    let lengthType;\n    return isTupleType(type) || !!getPropertyOfType(type, \"0\") || isArrayLikeType(type) && !!(lengthType = getTypeOfPropertyOfType(type, \"length\")) && everyType(lengthType, (t) => !!(t.flags & 256 /* NumberLiteral */));\n  }\n  function isArrayOrTupleLikeType(type) {\n    return isArrayLikeType(type) || isTupleLikeType(type);\n  }\n  function getTupleElementType(type, index) {\n    const propType = getTypeOfPropertyOfType(type, \"\" + index);\n    if (propType) {\n      return propType;\n    }\n    if (everyType(type, isTupleType)) {\n      return getTupleElementTypeOutOfStartCount(type, index, compilerOptions.noUncheckedIndexedAccess ? undefinedType : void 0);\n    }\n    return void 0;\n  }\n  function isNeitherUnitTypeNorNever(type) {\n    return !(type.flags & (109472 /* Unit */ | 131072 /* Never */));\n  }\n  function isUnitType(type) {\n    return !!(type.flags & 109472 /* Unit */);\n  }\n  function isUnitLikeType(type) {\n    const t = getBaseConstraintOrType(type);\n    return t.flags & 2097152 /* Intersection */ ? some(t.types, isUnitType) : isUnitType(t);\n  }\n  function extractUnitType(type) {\n    return type.flags & 2097152 /* Intersection */ ? find(type.types, isUnitType) || type : type;\n  }\n  function isLiteralType(type) {\n    return type.flags & 16 /* Boolean */ ? true : type.flags & 1048576 /* Union */ ? type.flags & 1024 /* EnumLiteral */ ? true : every(type.types, isUnitType) : isUnitType(type);\n  }\n  function getBaseTypeOfLiteralType(type) {\n    return type.flags & 1056 /* EnumLike */ ? getBaseTypeOfEnumLikeType(type) : type.flags & (128 /* StringLiteral */ | 134217728 /* TemplateLiteral */ | 268435456 /* StringMapping */) ? stringType : type.flags & 256 /* NumberLiteral */ ? numberType : type.flags & 2048 /* BigIntLiteral */ ? bigintType : type.flags & 512 /* BooleanLiteral */ ? booleanType : type.flags & 1048576 /* Union */ ? getBaseTypeOfLiteralTypeUnion(type) : type;\n  }\n  function getBaseTypeOfLiteralTypeUnion(type) {\n    const key = `B${getTypeId(type)}`;\n    return getCachedType(key) ?? setCachedType(key, mapType(type, getBaseTypeOfLiteralType));\n  }\n  function getBaseTypeOfLiteralTypeForComparison(type) {\n    return type.flags & (128 /* StringLiteral */ | 134217728 /* TemplateLiteral */ | 268435456 /* StringMapping */) ? stringType : type.flags & (256 /* NumberLiteral */ | 32 /* Enum */) ? numberType : type.flags & 2048 /* BigIntLiteral */ ? bigintType : type.flags & 512 /* BooleanLiteral */ ? booleanType : type.flags & 1048576 /* Union */ ? mapType(type, getBaseTypeOfLiteralTypeForComparison) : type;\n  }\n  function getWidenedLiteralType(type) {\n    return type.flags & 1056 /* EnumLike */ && isFreshLiteralType(type) ? getBaseTypeOfEnumLikeType(type) : type.flags & 128 /* StringLiteral */ && isFreshLiteralType(type) ? stringType : type.flags & 256 /* NumberLiteral */ && isFreshLiteralType(type) ? numberType : type.flags & 2048 /* BigIntLiteral */ && isFreshLiteralType(type) ? bigintType : type.flags & 512 /* BooleanLiteral */ && isFreshLiteralType(type) ? booleanType : type.flags & 1048576 /* Union */ ? mapType(type, getWidenedLiteralType) : type;\n  }\n  function getWidenedUniqueESSymbolType(type) {\n    return type.flags & 8192 /* UniqueESSymbol */ ? esSymbolType : type.flags & 1048576 /* Union */ ? mapType(type, getWidenedUniqueESSymbolType) : type;\n  }\n  function getWidenedLiteralLikeTypeForContextualType(type, contextualType) {\n    if (!isLiteralOfContextualType(type, contextualType)) {\n      type = getWidenedUniqueESSymbolType(getWidenedLiteralType(type));\n    }\n    return getRegularTypeOfLiteralType(type);\n  }\n  function getWidenedLiteralLikeTypeForContextualReturnTypeIfNeeded(type, contextualSignatureReturnType, isAsync) {\n    if (type && isUnitType(type)) {\n      const contextualType = !contextualSignatureReturnType ? void 0 : isAsync ? getPromisedTypeOfPromise(contextualSignatureReturnType) : contextualSignatureReturnType;\n      type = getWidenedLiteralLikeTypeForContextualType(type, contextualType);\n    }\n    return type;\n  }\n  function getWidenedLiteralLikeTypeForContextualIterationTypeIfNeeded(type, contextualSignatureReturnType, kind, isAsyncGenerator) {\n    if (type && isUnitType(type)) {\n      const contextualType = !contextualSignatureReturnType ? void 0 : getIterationTypeOfGeneratorFunctionReturnType(kind, contextualSignatureReturnType, isAsyncGenerator);\n      type = getWidenedLiteralLikeTypeForContextualType(type, contextualType);\n    }\n    return type;\n  }\n  function isTupleType(type) {\n    return !!(getObjectFlags(type) & 4 /* Reference */ && type.target.objectFlags & 8 /* Tuple */);\n  }\n  function isGenericTupleType(type) {\n    return isTupleType(type) && !!(type.target.combinedFlags & 8 /* Variadic */);\n  }\n  function isSingleElementGenericTupleType(type) {\n    return isGenericTupleType(type) && type.target.elementFlags.length === 1;\n  }\n  function getRestTypeOfTupleType(type) {\n    return getElementTypeOfSliceOfTupleType(type, type.target.fixedLength);\n  }\n  function getTupleElementTypeOutOfStartCount(type, index, undefinedOrMissingType2) {\n    return mapType(type, (t) => {\n      const tupleType = t;\n      const restType = getRestTypeOfTupleType(tupleType);\n      if (!restType) {\n        return undefinedType;\n      }\n      if (undefinedOrMissingType2 && index >= getTotalFixedElementCount(tupleType.target)) {\n        return getUnionType([restType, undefinedOrMissingType2]);\n      }\n      return restType;\n    });\n  }\n  function getRestArrayTypeOfTupleType(type) {\n    const restType = getRestTypeOfTupleType(type);\n    return restType && createArrayType(restType);\n  }\n  function getElementTypeOfSliceOfTupleType(type, index, endSkipCount = 0, writing = false, noReductions = false) {\n    const length2 = getTypeReferenceArity(type) - endSkipCount;\n    if (index < length2) {\n      const typeArguments = getTypeArguments(type);\n      const elementTypes = [];\n      for (let i = index; i < length2; i++) {\n        const t = typeArguments[i];\n        elementTypes.push(type.target.elementFlags[i] & 8 /* Variadic */ ? getIndexedAccessType(t, numberType) : t);\n      }\n      return writing ? getIntersectionType(elementTypes) : getUnionType(elementTypes, noReductions ? 0 /* None */ : 1 /* Literal */);\n    }\n    return void 0;\n  }\n  function isTupleTypeStructureMatching(t1, t2) {\n    return getTypeReferenceArity(t1) === getTypeReferenceArity(t2) && every(t1.target.elementFlags, (f, i) => (f & 12 /* Variable */) === (t2.target.elementFlags[i] & 12 /* Variable */));\n  }\n  function isZeroBigInt({ value }) {\n    return value.base10Value === \"0\";\n  }\n  function removeDefinitelyFalsyTypes(type) {\n    return filterType(type, (t) => hasTypeFacts(t, 4194304 /* Truthy */));\n  }\n  function extractDefinitelyFalsyTypes(type) {\n    return mapType(type, getDefinitelyFalsyPartOfType);\n  }\n  function getDefinitelyFalsyPartOfType(type) {\n    return type.flags & 4 /* String */ ? emptyStringType : type.flags & 8 /* Number */ ? zeroType : type.flags & 64 /* BigInt */ ? zeroBigIntType : type === regularFalseType || type === falseType || type.flags & (16384 /* Void */ | 32768 /* Undefined */ | 65536 /* Null */ | 3 /* AnyOrUnknown */) || type.flags & 128 /* StringLiteral */ && type.value === \"\" || type.flags & 256 /* NumberLiteral */ && type.value === 0 || type.flags & 2048 /* BigIntLiteral */ && isZeroBigInt(type) ? type : neverType;\n  }\n  function getNullableType(type, flags) {\n    const missing = flags & ~type.flags & (32768 /* Undefined */ | 65536 /* Null */);\n    return missing === 0 ? type : missing === 32768 /* Undefined */ ? getUnionType([type, undefinedType]) : missing === 65536 /* Null */ ? getUnionType([type, nullType]) : getUnionType([type, undefinedType, nullType]);\n  }\n  function getOptionalType(type, isProperty = false) {\n    Debug.assert(strictNullChecks);\n    const missingOrUndefined = isProperty ? undefinedOrMissingType : undefinedType;\n    return type === missingOrUndefined || type.flags & 1048576 /* Union */ && type.types[0] === missingOrUndefined ? type : getUnionType([type, missingOrUndefined]);\n  }\n  function getGlobalNonNullableTypeInstantiation(type) {\n    if (!deferredGlobalNonNullableTypeAlias) {\n      deferredGlobalNonNullableTypeAlias = getGlobalSymbol(\n        \"NonNullable\",\n        524288 /* TypeAlias */,\n        /*diagnostic*/\n        void 0\n      ) || unknownSymbol;\n    }\n    return deferredGlobalNonNullableTypeAlias !== unknownSymbol ? getTypeAliasInstantiation(deferredGlobalNonNullableTypeAlias, [type]) : getIntersectionType([type, emptyObjectType]);\n  }\n  function getNonNullableType(type) {\n    return strictNullChecks ? getAdjustedTypeWithFacts(type, 2097152 /* NEUndefinedOrNull */) : type;\n  }\n  function addOptionalTypeMarker(type) {\n    return strictNullChecks ? getUnionType([type, optionalType]) : type;\n  }\n  function removeOptionalTypeMarker(type) {\n    return strictNullChecks ? removeType(type, optionalType) : type;\n  }\n  function propagateOptionalTypeMarker(type, node, wasOptional) {\n    return wasOptional ? isOutermostOptionalChain(node) ? getOptionalType(type) : addOptionalTypeMarker(type) : type;\n  }\n  function getOptionalExpressionType(exprType, expression) {\n    return isExpressionOfOptionalChainRoot(expression) ? getNonNullableType(exprType) : isOptionalChain(expression) ? removeOptionalTypeMarker(exprType) : exprType;\n  }\n  function removeMissingType(type, isOptional) {\n    return exactOptionalPropertyTypes && isOptional ? removeType(type, missingType) : type;\n  }\n  function containsMissingType(type) {\n    return type === missingType || !!(type.flags & 1048576 /* Union */) && type.types[0] === missingType;\n  }\n  function removeMissingOrUndefinedType(type) {\n    return exactOptionalPropertyTypes ? removeType(type, missingType) : getTypeWithFacts(type, 524288 /* NEUndefined */);\n  }\n  function isCoercibleUnderDoubleEquals(source, target) {\n    return (source.flags & (8 /* Number */ | 4 /* String */ | 512 /* BooleanLiteral */)) !== 0 && (target.flags & (8 /* Number */ | 4 /* String */ | 16 /* Boolean */)) !== 0;\n  }\n  function isObjectTypeWithInferableIndex(type) {\n    const objectFlags = getObjectFlags(type);\n    return type.flags & 2097152 /* Intersection */ ? every(type.types, isObjectTypeWithInferableIndex) : !!(type.symbol && (type.symbol.flags & (4096 /* ObjectLiteral */ | 2048 /* TypeLiteral */ | 384 /* Enum */ | 512 /* ValueModule */)) !== 0 && !(type.symbol.flags & 32 /* Class */) && !typeHasCallOrConstructSignatures(type)) || !!(objectFlags & 4194304 /* ObjectRestType */) || !!(objectFlags & 1024 /* ReverseMapped */ && isObjectTypeWithInferableIndex(type.source));\n  }\n  function createSymbolWithType(source, type) {\n    const symbol = createSymbol(source.flags, source.escapedName, getCheckFlags(source) & 8 /* Readonly */);\n    symbol.declarations = source.declarations;\n    symbol.parent = source.parent;\n    symbol.links.type = type;\n    symbol.links.target = source;\n    if (source.valueDeclaration) {\n      symbol.valueDeclaration = source.valueDeclaration;\n    }\n    const nameType = getSymbolLinks(source).nameType;\n    if (nameType) {\n      symbol.links.nameType = nameType;\n    }\n    return symbol;\n  }\n  function transformTypeOfMembers(type, f) {\n    const members = createSymbolTable();\n    for (const property of getPropertiesOfObjectType(type)) {\n      const original = getTypeOfSymbol(property);\n      const updated = f(original);\n      members.set(property.escapedName, updated === original ? property : createSymbolWithType(property, updated));\n    }\n    return members;\n  }\n  function getRegularTypeOfObjectLiteral(type) {\n    if (!(isObjectLiteralType2(type) && getObjectFlags(type) & 8192 /* FreshLiteral */)) {\n      return type;\n    }\n    const regularType = type.regularType;\n    if (regularType) {\n      return regularType;\n    }\n    const resolved = type;\n    const members = transformTypeOfMembers(type, getRegularTypeOfObjectLiteral);\n    const regularNew = createAnonymousType(resolved.symbol, members, resolved.callSignatures, resolved.constructSignatures, resolved.indexInfos);\n    regularNew.flags = resolved.flags;\n    regularNew.objectFlags |= resolved.objectFlags & ~8192 /* FreshLiteral */;\n    type.regularType = regularNew;\n    return regularNew;\n  }\n  function createWideningContext(parent2, propertyName, siblings) {\n    return { parent: parent2, propertyName, siblings, resolvedProperties: void 0 };\n  }\n  function getSiblingsOfContext(context) {\n    if (!context.siblings) {\n      const siblings = [];\n      for (const type of getSiblingsOfContext(context.parent)) {\n        if (isObjectLiteralType2(type)) {\n          const prop = getPropertyOfObjectType(type, context.propertyName);\n          if (prop) {\n            forEachType(getTypeOfSymbol(prop), (t) => {\n              siblings.push(t);\n            });\n          }\n        }\n      }\n      context.siblings = siblings;\n    }\n    return context.siblings;\n  }\n  function getPropertiesOfContext(context) {\n    if (!context.resolvedProperties) {\n      const names = /* @__PURE__ */ new Map();\n      for (const t of getSiblingsOfContext(context)) {\n        if (isObjectLiteralType2(t) && !(getObjectFlags(t) & 2097152 /* ContainsSpread */)) {\n          for (const prop of getPropertiesOfType(t)) {\n            names.set(prop.escapedName, prop);\n          }\n        }\n      }\n      context.resolvedProperties = arrayFrom(names.values());\n    }\n    return context.resolvedProperties;\n  }\n  function getWidenedProperty(prop, context) {\n    if (!(prop.flags & 4 /* Property */)) {\n      return prop;\n    }\n    const original = getTypeOfSymbol(prop);\n    const propContext = context && createWideningContext(\n      context,\n      prop.escapedName,\n      /*siblings*/\n      void 0\n    );\n    const widened = getWidenedTypeWithContext(original, propContext);\n    return widened === original ? prop : createSymbolWithType(prop, widened);\n  }\n  function getUndefinedProperty(prop) {\n    const cached = undefinedProperties.get(prop.escapedName);\n    if (cached) {\n      return cached;\n    }\n    const result = createSymbolWithType(prop, undefinedOrMissingType);\n    result.flags |= 16777216 /* Optional */;\n    undefinedProperties.set(prop.escapedName, result);\n    return result;\n  }\n  function getWidenedTypeOfObjectLiteral(type, context) {\n    const members = createSymbolTable();\n    for (const prop of getPropertiesOfObjectType(type)) {\n      members.set(prop.escapedName, getWidenedProperty(prop, context));\n    }\n    if (context) {\n      for (const prop of getPropertiesOfContext(context)) {\n        if (!members.has(prop.escapedName)) {\n          members.set(prop.escapedName, getUndefinedProperty(prop));\n        }\n      }\n    }\n    const result = createAnonymousType(type.symbol, members, emptyArray, emptyArray, sameMap(getIndexInfosOfType(type), (info) => createIndexInfo(info.keyType, getWidenedType(info.type), info.isReadonly, info.declaration, info.components)));\n    result.objectFlags |= getObjectFlags(type) & (4096 /* JSLiteral */ | 262144 /* NonInferrableType */);\n    return result;\n  }\n  function getWidenedType(type) {\n    return getWidenedTypeWithContext(\n      type,\n      /*context*/\n      void 0\n    );\n  }\n  function getWidenedTypeWithContext(type, context) {\n    if (getObjectFlags(type) & 196608 /* RequiresWidening */) {\n      if (context === void 0 && type.widened) {\n        return type.widened;\n      }\n      let result;\n      if (type.flags & (1 /* Any */ | 98304 /* Nullable */)) {\n        result = anyType;\n      } else if (isObjectLiteralType2(type)) {\n        result = getWidenedTypeOfObjectLiteral(type, context);\n      } else if (type.flags & 1048576 /* Union */) {\n        const unionContext = context || createWideningContext(\n          /*parent*/\n          void 0,\n          /*propertyName*/\n          void 0,\n          type.types\n        );\n        const widenedTypes = sameMap(type.types, (t) => t.flags & 98304 /* Nullable */ ? t : getWidenedTypeWithContext(t, unionContext));\n        result = getUnionType(widenedTypes, some(widenedTypes, isEmptyObjectType) ? 2 /* Subtype */ : 1 /* Literal */);\n      } else if (type.flags & 2097152 /* Intersection */) {\n        result = getIntersectionType(sameMap(type.types, getWidenedType));\n      } else if (isArrayOrTupleType(type)) {\n        result = createTypeReference(type.target, sameMap(getTypeArguments(type), getWidenedType));\n      }\n      if (result && context === void 0) {\n        type.widened = result;\n      }\n      return result || type;\n    }\n    return type;\n  }\n  function reportWideningErrorsInType(type) {\n    var _a;\n    let errorReported = false;\n    if (getObjectFlags(type) & 65536 /* ContainsWideningType */) {\n      if (type.flags & 1048576 /* Union */) {\n        if (some(type.types, isEmptyObjectType)) {\n          errorReported = true;\n        } else {\n          for (const t of type.types) {\n            errorReported || (errorReported = reportWideningErrorsInType(t));\n          }\n        }\n      } else if (isArrayOrTupleType(type)) {\n        for (const t of getTypeArguments(type)) {\n          errorReported || (errorReported = reportWideningErrorsInType(t));\n        }\n      } else if (isObjectLiteralType2(type)) {\n        for (const p of getPropertiesOfObjectType(type)) {\n          const t = getTypeOfSymbol(p);\n          if (getObjectFlags(t) & 65536 /* ContainsWideningType */) {\n            errorReported = reportWideningErrorsInType(t);\n            if (!errorReported) {\n              const valueDeclaration = (_a = p.declarations) == null ? void 0 : _a.find((d) => {\n                var _a2;\n                return ((_a2 = d.symbol.valueDeclaration) == null ? void 0 : _a2.parent) === type.symbol.valueDeclaration;\n              });\n              if (valueDeclaration) {\n                error2(valueDeclaration, Diagnostics.Object_literal_s_property_0_implicitly_has_an_1_type, symbolToString(p), typeToString(getWidenedType(t)));\n                errorReported = true;\n              }\n            }\n          }\n        }\n      }\n    }\n    return errorReported;\n  }\n  function reportImplicitAny(declaration, type, wideningKind) {\n    const typeAsString = typeToString(getWidenedType(type));\n    if (isInJSFile(declaration) && !isCheckJsEnabledForFile(getSourceFileOfNode(declaration), compilerOptions)) {\n      return;\n    }\n    let diagnostic;\n    switch (declaration.kind) {\n      case 227 /* BinaryExpression */:\n      case 173 /* PropertyDeclaration */:\n      case 172 /* PropertySignature */:\n        diagnostic = noImplicitAny ? Diagnostics.Member_0_implicitly_has_an_1_type : Diagnostics.Member_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage;\n        break;\n      case 170 /* Parameter */:\n        const param = declaration;\n        if (isIdentifier(param.name)) {\n          const originalKeywordKind = identifierToKeywordKind(param.name);\n          if ((isCallSignatureDeclaration(param.parent) || isMethodSignature(param.parent) || isFunctionTypeNode(param.parent)) && param.parent.parameters.includes(param) && (resolveName(\n            param,\n            param.name.escapedText,\n            788968 /* Type */,\n            /*nameNotFoundMessage*/\n            void 0,\n            /*isUse*/\n            true\n          ) || originalKeywordKind && isTypeNodeKind(originalKeywordKind))) {\n            const newName = \"arg\" + param.parent.parameters.indexOf(param);\n            const typeName = declarationNameToString(param.name) + (param.dotDotDotToken ? \"[]\" : \"\");\n            errorOrSuggestion(noImplicitAny, declaration, Diagnostics.Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1, newName, typeName);\n            return;\n          }\n        }\n        diagnostic = declaration.dotDotDotToken ? noImplicitAny ? Diagnostics.Rest_parameter_0_implicitly_has_an_any_type : Diagnostics.Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage : noImplicitAny ? Diagnostics.Parameter_0_implicitly_has_an_1_type : Diagnostics.Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage;\n        break;\n      case 209 /* BindingElement */:\n        diagnostic = Diagnostics.Binding_element_0_implicitly_has_an_1_type;\n        if (!noImplicitAny) {\n          return;\n        }\n        break;\n      case 318 /* JSDocFunctionType */:\n        error2(declaration, Diagnostics.Function_type_which_lacks_return_type_annotation_implicitly_has_an_0_return_type, typeAsString);\n        return;\n      case 324 /* JSDocSignature */:\n        if (noImplicitAny && isJSDocOverloadTag(declaration.parent)) {\n          error2(declaration.parent.tagName, Diagnostics.This_overload_implicitly_returns_the_type_0_because_it_lacks_a_return_type_annotation, typeAsString);\n        }\n        return;\n      case 263 /* FunctionDeclaration */:\n      case 175 /* MethodDeclaration */:\n      case 174 /* MethodSignature */:\n      case 178 /* GetAccessor */:\n      case 179 /* SetAccessor */:\n      case 219 /* FunctionExpression */:\n      case 220 /* ArrowFunction */:\n        if (noImplicitAny && !declaration.name) {\n          if (wideningKind === 3 /* GeneratorYield */) {\n            error2(declaration, Diagnostics.Generator_implicitly_has_yield_type_0_Consider_supplying_a_return_type_annotation, typeAsString);\n          } else {\n            error2(declaration, Diagnostics.Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type, typeAsString);\n          }\n          return;\n        }\n        diagnostic = !noImplicitAny ? Diagnostics._0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage : wideningKind === 3 /* GeneratorYield */ ? Diagnostics._0_which_lacks_return_type_annotation_implicitly_has_an_1_yield_type : Diagnostics._0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type;\n        break;\n      case 201 /* MappedType */:\n        if (noImplicitAny) {\n          error2(declaration, Diagnostics.Mapped_object_type_implicitly_has_an_any_template_type);\n        }\n        return;\n      default:\n        diagnostic = noImplicitAny ? Diagnostics.Variable_0_implicitly_has_an_1_type : Diagnostics.Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage;\n    }\n    errorOrSuggestion(noImplicitAny, declaration, diagnostic, declarationNameToString(getNameOfDeclaration(declaration)), typeAsString);\n  }\n  function shouldReportErrorsFromWideningWithContextualSignature(declaration, wideningKind) {\n    const signature = getContextualSignatureForFunctionLikeDeclaration(declaration);\n    if (!signature) {\n      return true;\n    }\n    let returnType = getReturnTypeOfSignature(signature);\n    const flags = getFunctionFlags(declaration);\n    switch (wideningKind) {\n      case 1 /* FunctionReturn */:\n        if (flags & 1 /* Generator */) {\n          returnType = getIterationTypeOfGeneratorFunctionReturnType(1 /* Return */, returnType, !!(flags & 2 /* Async */)) ?? returnType;\n        } else if (flags & 2 /* Async */) {\n          returnType = getAwaitedTypeNoAlias(returnType) ?? returnType;\n        }\n        return isGenericType(returnType);\n      case 3 /* GeneratorYield */:\n        const yieldType = getIterationTypeOfGeneratorFunctionReturnType(0 /* Yield */, returnType, !!(flags & 2 /* Async */));\n        return !!yieldType && isGenericType(yieldType);\n      case 2 /* GeneratorNext */:\n        const nextType = getIterationTypeOfGeneratorFunctionReturnType(2 /* Next */, returnType, !!(flags & 2 /* Async */));\n        return !!nextType && isGenericType(nextType);\n    }\n    return false;\n  }\n  function reportErrorsFromWidening(declaration, type, wideningKind) {\n    addLazyDiagnostic(() => {\n      if (noImplicitAny && getObjectFlags(type) & 65536 /* ContainsWideningType */) {\n        if (!wideningKind || isFunctionLikeDeclaration(declaration) && shouldReportErrorsFromWideningWithContextualSignature(declaration, wideningKind)) {\n          if (!reportWideningErrorsInType(type)) {\n            reportImplicitAny(declaration, type, wideningKind);\n          }\n        }\n      }\n    });\n  }\n  function applyToParameterTypes(source, target, callback) {\n    const sourceCount = getParameterCount(source);\n    const targetCount = getParameterCount(target);\n    const sourceRestType = getEffectiveRestType(source);\n    const targetRestType = getEffectiveRestType(target);\n    const targetNonRestCount = targetRestType ? targetCount - 1 : targetCount;\n    const paramCount = sourceRestType ? targetNonRestCount : Math.min(sourceCount, targetNonRestCount);\n    const sourceThisType = getThisTypeOfSignature(source);\n    if (sourceThisType) {\n      const targetThisType = getThisTypeOfSignature(target);\n      if (targetThisType) {\n        callback(sourceThisType, targetThisType);\n      }\n    }\n    for (let i = 0; i < paramCount; i++) {\n      callback(getTypeAtPosition(source, i), getTypeAtPosition(target, i));\n    }\n    if (targetRestType) {\n      callback(getRestTypeAtPosition(\n        source,\n        paramCount,\n        /*readonly*/\n        isConstTypeVariable(targetRestType) && !someType(targetRestType, isMutableArrayLikeType)\n      ), targetRestType);\n    }\n  }\n  function applyToReturnTypes(source, target, callback) {\n    const targetTypePredicate = getTypePredicateOfSignature(target);\n    if (targetTypePredicate) {\n      const sourceTypePredicate = getTypePredicateOfSignature(source);\n      if (sourceTypePredicate && typePredicateKindsMatch(sourceTypePredicate, targetTypePredicate) && sourceTypePredicate.type && targetTypePredicate.type) {\n        callback(sourceTypePredicate.type, targetTypePredicate.type);\n        return;\n      }\n    }\n    const targetReturnType = getReturnTypeOfSignature(target);\n    if (couldContainTypeVariables(targetReturnType)) {\n      callback(getReturnTypeOfSignature(source), targetReturnType);\n    }\n  }\n  function createInferenceContext(typeParameters, signature, flags, compareTypes) {\n    return createInferenceContextWorker(typeParameters.map(createInferenceInfo), signature, flags, compareTypes || compareTypesAssignable);\n  }\n  function cloneInferenceContext(context, extraFlags = 0) {\n    return context && createInferenceContextWorker(map(context.inferences, cloneInferenceInfo), context.signature, context.flags | extraFlags, context.compareTypes);\n  }\n  function createInferenceContextWorker(inferences, signature, flags, compareTypes) {\n    const context = {\n      inferences,\n      signature,\n      flags,\n      compareTypes,\n      mapper: reportUnmeasurableMapper,\n      // initialize to a noop mapper so the context object is available, but the underlying object shape is right upon construction\n      nonFixingMapper: reportUnmeasurableMapper\n    };\n    context.mapper = makeFixingMapperForContext(context);\n    context.nonFixingMapper = makeNonFixingMapperForContext(context);\n    return context;\n  }\n  function makeFixingMapperForContext(context) {\n    return makeDeferredTypeMapper(\n      map(context.inferences, (i) => i.typeParameter),\n      map(context.inferences, (inference, i) => () => {\n        if (!inference.isFixed) {\n          inferFromIntraExpressionSites(context);\n          clearCachedInferences(context.inferences);\n          inference.isFixed = true;\n        }\n        return getInferredType(context, i);\n      })\n    );\n  }\n  function makeNonFixingMapperForContext(context) {\n    return makeDeferredTypeMapper(\n      map(context.inferences, (i) => i.typeParameter),\n      map(context.inferences, (_, i) => () => {\n        return getInferredType(context, i);\n      })\n    );\n  }\n  function clearCachedInferences(inferences) {\n    for (const inference of inferences) {\n      if (!inference.isFixed) {\n        inference.inferredType = void 0;\n      }\n    }\n  }\n  function addIntraExpressionInferenceSite(context, node, type) {\n    (context.intraExpressionInferenceSites ?? (context.intraExpressionInferenceSites = [])).push({ node, type });\n  }\n  function inferFromIntraExpressionSites(context) {\n    if (context.intraExpressionInferenceSites) {\n      for (const { node, type } of context.intraExpressionInferenceSites) {\n        const contextualType = node.kind === 175 /* MethodDeclaration */ ? getContextualTypeForObjectLiteralMethod(node, 2 /* NoConstraints */) : getContextualType2(node, 2 /* NoConstraints */);\n        if (contextualType) {\n          inferTypes(context.inferences, type, contextualType);\n        }\n      }\n      context.intraExpressionInferenceSites = void 0;\n    }\n  }\n  function createInferenceInfo(typeParameter) {\n    return {\n      typeParameter,\n      candidates: void 0,\n      contraCandidates: void 0,\n      inferredType: void 0,\n      priority: void 0,\n      topLevel: true,\n      isFixed: false,\n      impliedArity: void 0\n    };\n  }\n  function cloneInferenceInfo(inference) {\n    return {\n      typeParameter: inference.typeParameter,\n      candidates: inference.candidates && inference.candidates.slice(),\n      contraCandidates: inference.contraCandidates && inference.contraCandidates.slice(),\n      inferredType: inference.inferredType,\n      priority: inference.priority,\n      topLevel: inference.topLevel,\n      isFixed: inference.isFixed,\n      impliedArity: inference.impliedArity\n    };\n  }\n  function cloneInferredPartOfContext(context) {\n    const inferences = filter(context.inferences, hasInferenceCandidates);\n    return inferences.length ? createInferenceContextWorker(map(inferences, cloneInferenceInfo), context.signature, context.flags, context.compareTypes) : void 0;\n  }\n  function getMapperFromContext(context) {\n    return context && context.mapper;\n  }\n  function couldContainTypeVariables(type) {\n    const objectFlags = getObjectFlags(type);\n    if (objectFlags & 524288 /* CouldContainTypeVariablesComputed */) {\n      return !!(objectFlags & 1048576 /* CouldContainTypeVariables */);\n    }\n    const result = !!(type.flags & 465829888 /* Instantiable */ || type.flags & 524288 /* Object */ && !isNonGenericTopLevelType(type) && (objectFlags & 4 /* Reference */ && (type.node || some(getTypeArguments(type), couldContainTypeVariables)) || objectFlags & 16 /* Anonymous */ && type.symbol && type.symbol.flags & (16 /* Function */ | 8192 /* Method */ | 32 /* Class */ | 2048 /* TypeLiteral */ | 4096 /* ObjectLiteral */) && type.symbol.declarations || objectFlags & (32 /* Mapped */ | 1024 /* ReverseMapped */ | 4194304 /* ObjectRestType */ | 8388608 /* InstantiationExpressionType */)) || type.flags & 3145728 /* UnionOrIntersection */ && !(type.flags & 1024 /* EnumLiteral */) && !isNonGenericTopLevelType(type) && some(type.types, couldContainTypeVariables));\n    if (type.flags & 3899393 /* ObjectFlagsType */) {\n      type.objectFlags |= 524288 /* CouldContainTypeVariablesComputed */ | (result ? 1048576 /* CouldContainTypeVariables */ : 0);\n    }\n    return result;\n  }\n  function isNonGenericTopLevelType(type) {\n    if (type.aliasSymbol && !type.aliasTypeArguments) {\n      const declaration = getDeclarationOfKind(type.aliasSymbol, 266 /* TypeAliasDeclaration */);\n      return !!(declaration && findAncestor(declaration.parent, (n) => n.kind === 308 /* SourceFile */ ? true : n.kind === 268 /* ModuleDeclaration */ ? false : \"quit\"));\n    }\n    return false;\n  }\n  function isTypeParameterAtTopLevel(type, tp, depth = 0) {\n    return !!(type === tp || type.flags & 3145728 /* UnionOrIntersection */ && some(type.types, (t) => isTypeParameterAtTopLevel(t, tp, depth)) || depth < 3 && type.flags & 16777216 /* Conditional */ && (isTypeParameterAtTopLevel(getTrueTypeFromConditionalType(type), tp, depth + 1) || isTypeParameterAtTopLevel(getFalseTypeFromConditionalType(type), tp, depth + 1)));\n  }\n  function isTypeParameterAtTopLevelInReturnType(signature, typeParameter) {\n    const typePredicate = getTypePredicateOfSignature(signature);\n    return typePredicate ? !!typePredicate.type && isTypeParameterAtTopLevel(typePredicate.type, typeParameter) : isTypeParameterAtTopLevel(getReturnTypeOfSignature(signature), typeParameter);\n  }\n  function createEmptyObjectTypeFromStringLiteral(type) {\n    const members = createSymbolTable();\n    forEachType(type, (t) => {\n      if (!(t.flags & 128 /* StringLiteral */)) {\n        return;\n      }\n      const name = escapeLeadingUnderscores(t.value);\n      const literalProp = createSymbol(4 /* Property */, name);\n      literalProp.links.type = anyType;\n      if (t.symbol) {\n        literalProp.declarations = t.symbol.declarations;\n        literalProp.valueDeclaration = t.symbol.valueDeclaration;\n      }\n      members.set(name, literalProp);\n    });\n    const indexInfos = type.flags & 4 /* String */ ? [createIndexInfo(\n      stringType,\n      emptyObjectType,\n      /*isReadonly*/\n      false\n    )] : emptyArray;\n    return createAnonymousType(\n      /*symbol*/\n      void 0,\n      members,\n      emptyArray,\n      emptyArray,\n      indexInfos\n    );\n  }\n  function inferTypeForHomomorphicMappedType(source, target, constraint) {\n    const cacheKey = source.id + \",\" + target.id + \",\" + constraint.id;\n    if (reverseHomomorphicMappedCache.has(cacheKey)) {\n      return reverseHomomorphicMappedCache.get(cacheKey);\n    }\n    const type = createReverseMappedType(source, target, constraint);\n    reverseHomomorphicMappedCache.set(cacheKey, type);\n    return type;\n  }\n  function isPartiallyInferableType(type) {\n    return !(getObjectFlags(type) & 262144 /* NonInferrableType */) || isObjectLiteralType2(type) && some(getPropertiesOfType(type), (prop) => isPartiallyInferableType(getTypeOfSymbol(prop))) || isTupleType(type) && some(getElementTypes(type), isPartiallyInferableType);\n  }\n  function createReverseMappedType(source, target, constraint) {\n    if (!(getIndexInfoOfType(source, stringType) || getPropertiesOfType(source).length !== 0 && isPartiallyInferableType(source))) {\n      return void 0;\n    }\n    if (isArrayType(source)) {\n      const elementType = inferReverseMappedType(getTypeArguments(source)[0], target, constraint);\n      if (!elementType) {\n        return void 0;\n      }\n      return createArrayType(elementType, isReadonlyArrayType(source));\n    }\n    if (isTupleType(source)) {\n      const elementTypes = map(getElementTypes(source), (t) => inferReverseMappedType(t, target, constraint));\n      if (!every(elementTypes, (t) => !!t)) {\n        return void 0;\n      }\n      const elementFlags = getMappedTypeModifiers(target) & 4 /* IncludeOptional */ ? sameMap(source.target.elementFlags, (f) => f & 2 /* Optional */ ? 1 /* Required */ : f) : source.target.elementFlags;\n      return createTupleType(elementTypes, elementFlags, source.target.readonly, source.target.labeledElementDeclarations);\n    }\n    const reversed = createObjectType(\n      1024 /* ReverseMapped */ | 16 /* Anonymous */,\n      /*symbol*/\n      void 0\n    );\n    reversed.source = source;\n    reversed.mappedType = target;\n    reversed.constraintType = constraint;\n    return reversed;\n  }\n  function getTypeOfReverseMappedSymbol(symbol) {\n    const links = getSymbolLinks(symbol);\n    if (!links.type) {\n      links.type = inferReverseMappedType(symbol.links.propertyType, symbol.links.mappedType, symbol.links.constraintType) || unknownType;\n    }\n    return links.type;\n  }\n  function inferReverseMappedTypeWorker(sourceType, target, constraint) {\n    const typeParameter = getIndexedAccessType(constraint.type, getTypeParameterFromMappedType(target));\n    const templateType = getTemplateTypeFromMappedType(target);\n    const inference = createInferenceInfo(typeParameter);\n    inferTypes([inference], sourceType, templateType);\n    return getTypeFromInference(inference) || unknownType;\n  }\n  function inferReverseMappedType(source, target, constraint) {\n    const cacheKey = source.id + \",\" + target.id + \",\" + constraint.id;\n    if (reverseMappedCache.has(cacheKey)) {\n      return reverseMappedCache.get(cacheKey) || unknownType;\n    }\n    reverseMappedSourceStack.push(source);\n    reverseMappedTargetStack.push(target);\n    const saveExpandingFlags = reverseExpandingFlags;\n    if (isDeeplyNestedType(source, reverseMappedSourceStack, reverseMappedSourceStack.length, 2)) reverseExpandingFlags |= 1 /* Source */;\n    if (isDeeplyNestedType(target, reverseMappedTargetStack, reverseMappedTargetStack.length, 2)) reverseExpandingFlags |= 2 /* Target */;\n    let type;\n    if (reverseExpandingFlags !== 3 /* Both */) {\n      type = inferReverseMappedTypeWorker(source, target, constraint);\n    }\n    reverseMappedSourceStack.pop();\n    reverseMappedTargetStack.pop();\n    reverseExpandingFlags = saveExpandingFlags;\n    reverseMappedCache.set(cacheKey, type);\n    return type;\n  }\n  function* getUnmatchedProperties(source, target, requireOptionalProperties, matchDiscriminantProperties) {\n    const properties = getPropertiesOfType(target);\n    for (const targetProp of properties) {\n      if (isStaticPrivateIdentifierProperty(targetProp)) {\n        continue;\n      }\n      if (requireOptionalProperties || !(targetProp.flags & 16777216 /* Optional */ || getCheckFlags(targetProp) & 48 /* Partial */)) {\n        const sourceProp = getPropertyOfType(source, targetProp.escapedName);\n        if (!sourceProp) {\n          yield targetProp;\n        } else if (matchDiscriminantProperties) {\n          const targetType = getTypeOfSymbol(targetProp);\n          if (targetType.flags & 109472 /* Unit */) {\n            const sourceType = getTypeOfSymbol(sourceProp);\n            if (!(sourceType.flags & 1 /* Any */ || getRegularTypeOfLiteralType(sourceType) === getRegularTypeOfLiteralType(targetType))) {\n              yield targetProp;\n            }\n          }\n        }\n      }\n    }\n  }\n  function getUnmatchedProperty(source, target, requireOptionalProperties, matchDiscriminantProperties) {\n    return firstOrUndefinedIterator(getUnmatchedProperties(source, target, requireOptionalProperties, matchDiscriminantProperties));\n  }\n  function tupleTypesDefinitelyUnrelated(source, target) {\n    return !(target.target.combinedFlags & 8 /* Variadic */) && target.target.minLength > source.target.minLength || !(target.target.combinedFlags & 12 /* Variable */) && (!!(source.target.combinedFlags & 12 /* Variable */) || target.target.fixedLength < source.target.fixedLength);\n  }\n  function typesDefinitelyUnrelated(source, target) {\n    return isTupleType(source) && isTupleType(target) ? tupleTypesDefinitelyUnrelated(source, target) : !!getUnmatchedProperty(\n      source,\n      target,\n      /*requireOptionalProperties*/\n      false,\n      /*matchDiscriminantProperties*/\n      true\n    ) && !!getUnmatchedProperty(\n      target,\n      source,\n      /*requireOptionalProperties*/\n      false,\n      /*matchDiscriminantProperties*/\n      false\n    );\n  }\n  function getTypeFromInference(inference) {\n    return inference.candidates ? getUnionType(inference.candidates, 2 /* Subtype */) : inference.contraCandidates ? getIntersectionType(inference.contraCandidates) : void 0;\n  }\n  function hasSkipDirectInferenceFlag(node) {\n    return !!getNodeLinks(node).skipDirectInference;\n  }\n  function isFromInferenceBlockedSource(type) {\n    return !!(type.symbol && some(type.symbol.declarations, hasSkipDirectInferenceFlag));\n  }\n  function templateLiteralTypesDefinitelyUnrelated(source, target) {\n    const sourceStart = source.texts[0];\n    const targetStart = target.texts[0];\n    const sourceEnd = source.texts[source.texts.length - 1];\n    const targetEnd = target.texts[target.texts.length - 1];\n    const startLen = Math.min(sourceStart.length, targetStart.length);\n    const endLen = Math.min(sourceEnd.length, targetEnd.length);\n    return sourceStart.slice(0, startLen) !== targetStart.slice(0, startLen) || sourceEnd.slice(sourceEnd.length - endLen) !== targetEnd.slice(targetEnd.length - endLen);\n  }\n  function isValidNumberString(s, roundTripOnly) {\n    if (s === \"\") return false;\n    const n = +s;\n    return isFinite(n) && (!roundTripOnly || \"\" + n === s);\n  }\n  function parseBigIntLiteralType(text) {\n    return getBigIntLiteralType(parseValidBigInt(text));\n  }\n  function isMemberOfStringMapping(source, target) {\n    if (target.flags & 1 /* Any */) {\n      return true;\n    }\n    if (target.flags & (4 /* String */ | 134217728 /* TemplateLiteral */)) {\n      return isTypeAssignableTo(source, target);\n    }\n    if (target.flags & 268435456 /* StringMapping */) {\n      const mappingStack = [];\n      while (target.flags & 268435456 /* StringMapping */) {\n        mappingStack.unshift(target.symbol);\n        target = target.type;\n      }\n      const mappedSource = reduceLeft(mappingStack, (memo, value) => getStringMappingType(value, memo), source);\n      return mappedSource === source && isMemberOfStringMapping(source, target);\n    }\n    return false;\n  }\n  function isValidTypeForTemplateLiteralPlaceholder(source, target) {\n    if (target.flags & 2097152 /* Intersection */) {\n      return every(target.types, (t) => t === emptyTypeLiteralType || isValidTypeForTemplateLiteralPlaceholder(source, t));\n    }\n    if (target.flags & 4 /* String */ || isTypeAssignableTo(source, target)) {\n      return true;\n    }\n    if (source.flags & 128 /* StringLiteral */) {\n      const value = source.value;\n      return !!(target.flags & 8 /* Number */ && isValidNumberString(\n        value,\n        /*roundTripOnly*/\n        false\n      ) || target.flags & 64 /* BigInt */ && isValidBigIntString(\n        value,\n        /*roundTripOnly*/\n        false\n      ) || target.flags & (512 /* BooleanLiteral */ | 98304 /* Nullable */) && value === target.intrinsicName || target.flags & 268435456 /* StringMapping */ && isMemberOfStringMapping(source, target) || target.flags & 134217728 /* TemplateLiteral */ && isTypeMatchedByTemplateLiteralType(source, target));\n    }\n    if (source.flags & 134217728 /* TemplateLiteral */) {\n      const texts = source.texts;\n      return texts.length === 2 && texts[0] === \"\" && texts[1] === \"\" && isTypeAssignableTo(source.types[0], target);\n    }\n    return false;\n  }\n  function inferTypesFromTemplateLiteralType(source, target) {\n    return source.flags & 128 /* StringLiteral */ ? inferFromLiteralPartsToTemplateLiteral([source.value], emptyArray, target) : source.flags & 134217728 /* TemplateLiteral */ ? arrayIsEqualTo(source.texts, target.texts) ? map(source.types, (s, i) => {\n      return isTypeAssignableTo(getBaseConstraintOrType(s), getBaseConstraintOrType(target.types[i])) ? s : getStringLikeTypeForType(s);\n    }) : inferFromLiteralPartsToTemplateLiteral(source.texts, source.types, target) : void 0;\n  }\n  function isTypeMatchedByTemplateLiteralType(source, target) {\n    const inferences = inferTypesFromTemplateLiteralType(source, target);\n    return !!inferences && every(inferences, (r, i) => isValidTypeForTemplateLiteralPlaceholder(r, target.types[i]));\n  }\n  function getStringLikeTypeForType(type) {\n    return type.flags & (1 /* Any */ | 402653316 /* StringLike */) ? type : getTemplateLiteralType([\"\", \"\"], [type]);\n  }\n  function inferFromLiteralPartsToTemplateLiteral(sourceTexts, sourceTypes, target) {\n    const lastSourceIndex = sourceTexts.length - 1;\n    const sourceStartText = sourceTexts[0];\n    const sourceEndText = sourceTexts[lastSourceIndex];\n    const targetTexts = target.texts;\n    const lastTargetIndex = targetTexts.length - 1;\n    const targetStartText = targetTexts[0];\n    const targetEndText = targetTexts[lastTargetIndex];\n    if (lastSourceIndex === 0 && sourceStartText.length < targetStartText.length + targetEndText.length || !sourceStartText.startsWith(targetStartText) || !sourceEndText.endsWith(targetEndText)) return void 0;\n    const remainingEndText = sourceEndText.slice(0, sourceEndText.length - targetEndText.length);\n    const matches = [];\n    let seg = 0;\n    let pos = targetStartText.length;\n    for (let i = 1; i < lastTargetIndex; i++) {\n      const delim = targetTexts[i];\n      if (delim.length > 0) {\n        let s = seg;\n        let p = pos;\n        while (true) {\n          p = getSourceText(s).indexOf(delim, p);\n          if (p >= 0) break;\n          s++;\n          if (s === sourceTexts.length) return void 0;\n          p = 0;\n        }\n        addMatch(s, p);\n        pos += delim.length;\n      } else if (pos < getSourceText(seg).length) {\n        addMatch(seg, pos + 1);\n      } else if (seg < lastSourceIndex) {\n        addMatch(seg + 1, 0);\n      } else {\n        return void 0;\n      }\n    }\n    addMatch(lastSourceIndex, getSourceText(lastSourceIndex).length);\n    return matches;\n    function getSourceText(index) {\n      return index < lastSourceIndex ? sourceTexts[index] : remainingEndText;\n    }\n    function addMatch(s, p) {\n      const matchType = s === seg ? getStringLiteralType(getSourceText(s).slice(pos, p)) : getTemplateLiteralType(\n        [sourceTexts[seg].slice(pos), ...sourceTexts.slice(seg + 1, s), getSourceText(s).slice(0, p)],\n        sourceTypes.slice(seg, s)\n      );\n      matches.push(matchType);\n      seg = s;\n      pos = p;\n    }\n  }\n  function inferTypes(inferences, originalSource, originalTarget, priority = 0 /* None */, contravariant = false) {\n    let bivariant = false;\n    let propagationType;\n    let inferencePriority = 2048 /* MaxValue */;\n    let visited;\n    let sourceStack;\n    let targetStack;\n    let expandingFlags = 0 /* None */;\n    inferFromTypes(originalSource, originalTarget);\n    function inferFromTypes(source, target) {\n      if (!couldContainTypeVariables(target) || isNoInferType(target)) {\n        return;\n      }\n      if (source === wildcardType || source === blockedStringType) {\n        const savePropagationType = propagationType;\n        propagationType = source;\n        inferFromTypes(target, target);\n        propagationType = savePropagationType;\n        return;\n      }\n      if (source.aliasSymbol && source.aliasSymbol === target.aliasSymbol) {\n        if (source.aliasTypeArguments) {\n          const params = getSymbolLinks(source.aliasSymbol).typeParameters;\n          const minParams = getMinTypeArgumentCount(params);\n          const sourceTypes = fillMissingTypeArguments(source.aliasTypeArguments, params, minParams, isInJSFile(source.aliasSymbol.valueDeclaration));\n          const targetTypes = fillMissingTypeArguments(target.aliasTypeArguments, params, minParams, isInJSFile(source.aliasSymbol.valueDeclaration));\n          inferFromTypeArguments(sourceTypes, targetTypes, getAliasVariances(source.aliasSymbol));\n        }\n        return;\n      }\n      if (source === target && source.flags & 3145728 /* UnionOrIntersection */) {\n        for (const t of source.types) {\n          inferFromTypes(t, t);\n        }\n        return;\n      }\n      if (target.flags & 1048576 /* Union */) {\n        const [tempSources, tempTargets] = inferFromMatchingTypes(source.flags & 1048576 /* Union */ ? source.types : [source], target.types, isTypeOrBaseIdenticalTo);\n        const [sources, targets] = inferFromMatchingTypes(tempSources, tempTargets, isTypeCloselyMatchedBy);\n        if (targets.length === 0) {\n          return;\n        }\n        target = getUnionType(targets);\n        if (sources.length === 0) {\n          inferWithPriority(source, target, 1 /* NakedTypeVariable */);\n          return;\n        }\n        source = getUnionType(sources);\n      } else if (target.flags & 2097152 /* Intersection */ && !every(target.types, isNonGenericObjectType)) {\n        if (!(source.flags & 1048576 /* Union */)) {\n          const [sources, targets] = inferFromMatchingTypes(source.flags & 2097152 /* Intersection */ ? source.types : [source], target.types, isTypeIdenticalTo);\n          if (sources.length === 0 || targets.length === 0) {\n            return;\n          }\n          source = getIntersectionType(sources);\n          target = getIntersectionType(targets);\n        }\n      }\n      if (target.flags & (8388608 /* IndexedAccess */ | 33554432 /* Substitution */)) {\n        if (isNoInferType(target)) {\n          return;\n        }\n        target = getActualTypeVariable(target);\n      }\n      if (target.flags & 8650752 /* TypeVariable */) {\n        if (isFromInferenceBlockedSource(source)) {\n          return;\n        }\n        const inference = getInferenceInfoForType(target);\n        if (inference) {\n          if (getObjectFlags(source) & 262144 /* NonInferrableType */ || source === nonInferrableAnyType) {\n            return;\n          }\n          if (!inference.isFixed) {\n            const candidate = propagationType || source;\n            if (candidate === blockedStringType) {\n              return;\n            }\n            if (inference.priority === void 0 || priority < inference.priority) {\n              inference.candidates = void 0;\n              inference.contraCandidates = void 0;\n              inference.topLevel = true;\n              inference.priority = priority;\n            }\n            if (priority === inference.priority) {\n              if (contravariant && !bivariant) {\n                if (!contains(inference.contraCandidates, candidate)) {\n                  inference.contraCandidates = append(inference.contraCandidates, candidate);\n                  clearCachedInferences(inferences);\n                }\n              } else if (!contains(inference.candidates, candidate)) {\n                inference.candidates = append(inference.candidates, candidate);\n                clearCachedInferences(inferences);\n              }\n            }\n            if (!(priority & 128 /* ReturnType */) && target.flags & 262144 /* TypeParameter */ && inference.topLevel && !isTypeParameterAtTopLevel(originalTarget, target)) {\n              inference.topLevel = false;\n              clearCachedInferences(inferences);\n            }\n          }\n          inferencePriority = Math.min(inferencePriority, priority);\n          return;\n        }\n        const simplified = getSimplifiedType(\n          target,\n          /*writing*/\n          false\n        );\n        if (simplified !== target) {\n          inferFromTypes(source, simplified);\n        } else if (target.flags & 8388608 /* IndexedAccess */) {\n          const indexType = getSimplifiedType(\n            target.indexType,\n            /*writing*/\n            false\n          );\n          if (indexType.flags & 465829888 /* Instantiable */) {\n            const simplified2 = distributeIndexOverObjectType(\n              getSimplifiedType(\n                target.objectType,\n                /*writing*/\n                false\n              ),\n              indexType,\n              /*writing*/\n              false\n            );\n            if (simplified2 && simplified2 !== target) {\n              inferFromTypes(source, simplified2);\n            }\n          }\n        }\n      }\n      if (getObjectFlags(source) & 4 /* Reference */ && getObjectFlags(target) & 4 /* Reference */ && (source.target === target.target || isArrayType(source) && isArrayType(target)) && !(source.node && target.node)) {\n        inferFromTypeArguments(getTypeArguments(source), getTypeArguments(target), getVariances(source.target));\n      } else if (source.flags & 4194304 /* Index */ && target.flags & 4194304 /* Index */) {\n        inferFromContravariantTypes(source.type, target.type);\n      } else if ((isLiteralType(source) || source.flags & 4 /* String */) && target.flags & 4194304 /* Index */) {\n        const empty = createEmptyObjectTypeFromStringLiteral(source);\n        inferFromContravariantTypesWithPriority(empty, target.type, 256 /* LiteralKeyof */);\n      } else if (source.flags & 8388608 /* IndexedAccess */ && target.flags & 8388608 /* IndexedAccess */) {\n        inferFromTypes(source.objectType, target.objectType);\n        inferFromTypes(source.indexType, target.indexType);\n      } else if (source.flags & 268435456 /* StringMapping */ && target.flags & 268435456 /* StringMapping */) {\n        if (source.symbol === target.symbol) {\n          inferFromTypes(source.type, target.type);\n        }\n      } else if (source.flags & 33554432 /* Substitution */) {\n        inferFromTypes(source.baseType, target);\n        inferWithPriority(getSubstitutionIntersection(source), target, 4 /* SubstituteSource */);\n      } else if (target.flags & 16777216 /* Conditional */) {\n        invokeOnce(source, target, inferToConditionalType);\n      } else if (target.flags & 3145728 /* UnionOrIntersection */) {\n        inferToMultipleTypes(source, target.types, target.flags);\n      } else if (source.flags & 1048576 /* Union */) {\n        const sourceTypes = source.types;\n        for (const sourceType of sourceTypes) {\n          inferFromTypes(sourceType, target);\n        }\n      } else if (target.flags & 134217728 /* TemplateLiteral */) {\n        inferToTemplateLiteralType(source, target);\n      } else {\n        source = getReducedType(source);\n        if (isGenericMappedType(source) && isGenericMappedType(target)) {\n          invokeOnce(source, target, inferFromGenericMappedTypes);\n        }\n        if (!(priority & 512 /* NoConstraints */ && source.flags & (2097152 /* Intersection */ | 465829888 /* Instantiable */))) {\n          const apparentSource = getApparentType(source);\n          if (apparentSource !== source && !(apparentSource.flags & (524288 /* Object */ | 2097152 /* Intersection */))) {\n            return inferFromTypes(apparentSource, target);\n          }\n          source = apparentSource;\n        }\n        if (source.flags & (524288 /* Object */ | 2097152 /* Intersection */)) {\n          invokeOnce(source, target, inferFromObjectTypes);\n        }\n      }\n    }\n    function inferWithPriority(source, target, newPriority) {\n      const savePriority = priority;\n      priority |= newPriority;\n      inferFromTypes(source, target);\n      priority = savePriority;\n    }\n    function inferFromContravariantTypesWithPriority(source, target, newPriority) {\n      const savePriority = priority;\n      priority |= newPriority;\n      inferFromContravariantTypes(source, target);\n      priority = savePriority;\n    }\n    function inferToMultipleTypesWithPriority(source, targets, targetFlags, newPriority) {\n      const savePriority = priority;\n      priority |= newPriority;\n      inferToMultipleTypes(source, targets, targetFlags);\n      priority = savePriority;\n    }\n    function invokeOnce(source, target, action) {\n      const key = source.id + \",\" + target.id;\n      const status = visited && visited.get(key);\n      if (status !== void 0) {\n        inferencePriority = Math.min(inferencePriority, status);\n        return;\n      }\n      (visited || (visited = /* @__PURE__ */ new Map())).set(key, -1 /* Circularity */);\n      const saveInferencePriority = inferencePriority;\n      inferencePriority = 2048 /* MaxValue */;\n      const saveExpandingFlags = expandingFlags;\n      (sourceStack ?? (sourceStack = [])).push(source);\n      (targetStack ?? (targetStack = [])).push(target);\n      if (isDeeplyNestedType(source, sourceStack, sourceStack.length, 2)) expandingFlags |= 1 /* Source */;\n      if (isDeeplyNestedType(target, targetStack, targetStack.length, 2)) expandingFlags |= 2 /* Target */;\n      if (expandingFlags !== 3 /* Both */) {\n        action(source, target);\n      } else {\n        inferencePriority = -1 /* Circularity */;\n      }\n      targetStack.pop();\n      sourceStack.pop();\n      expandingFlags = saveExpandingFlags;\n      visited.set(key, inferencePriority);\n      inferencePriority = Math.min(inferencePriority, saveInferencePriority);\n    }\n    function inferFromMatchingTypes(sources, targets, matches) {\n      let matchedSources;\n      let matchedTargets;\n      for (const t of targets) {\n        for (const s of sources) {\n          if (matches(s, t)) {\n            inferFromTypes(s, t);\n            matchedSources = appendIfUnique(matchedSources, s);\n            matchedTargets = appendIfUnique(matchedTargets, t);\n          }\n        }\n      }\n      return [\n        matchedSources ? filter(sources, (t) => !contains(matchedSources, t)) : sources,\n        matchedTargets ? filter(targets, (t) => !contains(matchedTargets, t)) : targets\n      ];\n    }\n    function inferFromTypeArguments(sourceTypes, targetTypes, variances) {\n      const count = sourceTypes.length < targetTypes.length ? sourceTypes.length : targetTypes.length;\n      for (let i = 0; i < count; i++) {\n        if (i < variances.length && (variances[i] & 7 /* VarianceMask */) === 2 /* Contravariant */) {\n          inferFromContravariantTypes(sourceTypes[i], targetTypes[i]);\n        } else {\n          inferFromTypes(sourceTypes[i], targetTypes[i]);\n        }\n      }\n    }\n    function inferFromContravariantTypes(source, target) {\n      contravariant = !contravariant;\n      inferFromTypes(source, target);\n      contravariant = !contravariant;\n    }\n    function inferFromContravariantTypesIfStrictFunctionTypes(source, target) {\n      if (strictFunctionTypes || priority & 1024 /* AlwaysStrict */) {\n        inferFromContravariantTypes(source, target);\n      } else {\n        inferFromTypes(source, target);\n      }\n    }\n    function getInferenceInfoForType(type) {\n      if (type.flags & 8650752 /* TypeVariable */) {\n        for (const inference of inferences) {\n          if (type === inference.typeParameter) {\n            return inference;\n          }\n        }\n      }\n      return void 0;\n    }\n    function getSingleTypeVariableFromIntersectionTypes(types) {\n      let typeVariable;\n      for (const type of types) {\n        const t = type.flags & 2097152 /* Intersection */ && find(type.types, (t2) => !!getInferenceInfoForType(t2));\n        if (!t || typeVariable && t !== typeVariable) {\n          return void 0;\n        }\n        typeVariable = t;\n      }\n      return typeVariable;\n    }\n    function inferToMultipleTypes(source, targets, targetFlags) {\n      let typeVariableCount = 0;\n      if (targetFlags & 1048576 /* Union */) {\n        let nakedTypeVariable;\n        const sources = source.flags & 1048576 /* Union */ ? source.types : [source];\n        const matched = new Array(sources.length);\n        let inferenceCircularity = false;\n        for (const t of targets) {\n          if (getInferenceInfoForType(t)) {\n            nakedTypeVariable = t;\n            typeVariableCount++;\n          } else {\n            for (let i = 0; i < sources.length; i++) {\n              const saveInferencePriority = inferencePriority;\n              inferencePriority = 2048 /* MaxValue */;\n              inferFromTypes(sources[i], t);\n              if (inferencePriority === priority) matched[i] = true;\n              inferenceCircularity = inferenceCircularity || inferencePriority === -1 /* Circularity */;\n              inferencePriority = Math.min(inferencePriority, saveInferencePriority);\n            }\n          }\n        }\n        if (typeVariableCount === 0) {\n          const intersectionTypeVariable = getSingleTypeVariableFromIntersectionTypes(targets);\n          if (intersectionTypeVariable) {\n            inferWithPriority(source, intersectionTypeVariable, 1 /* NakedTypeVariable */);\n          }\n          return;\n        }\n        if (typeVariableCount === 1 && !inferenceCircularity) {\n          const unmatched = flatMap(sources, (s, i) => matched[i] ? void 0 : s);\n          if (unmatched.length) {\n            inferFromTypes(getUnionType(unmatched), nakedTypeVariable);\n            return;\n          }\n        }\n      } else {\n        for (const t of targets) {\n          if (getInferenceInfoForType(t)) {\n            typeVariableCount++;\n          } else {\n            inferFromTypes(source, t);\n          }\n        }\n      }\n      if (targetFlags & 2097152 /* Intersection */ ? typeVariableCount === 1 : typeVariableCount > 0) {\n        for (const t of targets) {\n          if (getInferenceInfoForType(t)) {\n            inferWithPriority(source, t, 1 /* NakedTypeVariable */);\n          }\n        }\n      }\n    }\n    function inferToMappedType(source, target, constraintType) {\n      if (constraintType.flags & 1048576 /* Union */ || constraintType.flags & 2097152 /* Intersection */) {\n        let result = false;\n        for (const type of constraintType.types) {\n          result = inferToMappedType(source, target, type) || result;\n        }\n        return result;\n      }\n      if (constraintType.flags & 4194304 /* Index */) {\n        const inference = getInferenceInfoForType(constraintType.type);\n        if (inference && !inference.isFixed && !isFromInferenceBlockedSource(source)) {\n          const inferredType = inferTypeForHomomorphicMappedType(source, target, constraintType);\n          if (inferredType) {\n            inferWithPriority(\n              inferredType,\n              inference.typeParameter,\n              getObjectFlags(source) & 262144 /* NonInferrableType */ ? 16 /* PartialHomomorphicMappedType */ : 8 /* HomomorphicMappedType */\n            );\n          }\n        }\n        return true;\n      }\n      if (constraintType.flags & 262144 /* TypeParameter */) {\n        inferWithPriority(getIndexType(\n          source,\n          /*indexFlags*/\n          !!source.pattern ? 2 /* NoIndexSignatures */ : 0 /* None */\n        ), constraintType, 32 /* MappedTypeConstraint */);\n        const extendedConstraint = getConstraintOfType(constraintType);\n        if (extendedConstraint && inferToMappedType(source, target, extendedConstraint)) {\n          return true;\n        }\n        const propTypes = map(getPropertiesOfType(source), getTypeOfSymbol);\n        const indexTypes = map(getIndexInfosOfType(source), (info) => info !== enumNumberIndexInfo ? info.type : neverType);\n        inferFromTypes(getUnionType(concatenate(propTypes, indexTypes)), getTemplateTypeFromMappedType(target));\n        return true;\n      }\n      return false;\n    }\n    function inferToConditionalType(source, target) {\n      if (source.flags & 16777216 /* Conditional */) {\n        inferFromTypes(source.checkType, target.checkType);\n        inferFromTypes(source.extendsType, target.extendsType);\n        inferFromTypes(getTrueTypeFromConditionalType(source), getTrueTypeFromConditionalType(target));\n        inferFromTypes(getFalseTypeFromConditionalType(source), getFalseTypeFromConditionalType(target));\n      } else {\n        const targetTypes = [getTrueTypeFromConditionalType(target), getFalseTypeFromConditionalType(target)];\n        inferToMultipleTypesWithPriority(source, targetTypes, target.flags, contravariant ? 64 /* ContravariantConditional */ : 0);\n      }\n    }\n    function inferToTemplateLiteralType(source, target) {\n      const matches = inferTypesFromTemplateLiteralType(source, target);\n      const types = target.types;\n      if (matches || every(target.texts, (s) => s.length === 0)) {\n        for (let i = 0; i < types.length; i++) {\n          const source2 = matches ? matches[i] : neverType;\n          const target2 = types[i];\n          if (source2.flags & 128 /* StringLiteral */ && target2.flags & 8650752 /* TypeVariable */) {\n            const inferenceContext = getInferenceInfoForType(target2);\n            const constraint = inferenceContext ? getBaseConstraintOfType(inferenceContext.typeParameter) : void 0;\n            if (constraint && !isTypeAny(constraint)) {\n              const constraintTypes = constraint.flags & 1048576 /* Union */ ? constraint.types : [constraint];\n              let allTypeFlags = reduceLeft(constraintTypes, (flags, t) => flags | t.flags, 0);\n              if (!(allTypeFlags & 4 /* String */)) {\n                const str = source2.value;\n                if (allTypeFlags & 296 /* NumberLike */ && !isValidNumberString(\n                  str,\n                  /*roundTripOnly*/\n                  true\n                )) {\n                  allTypeFlags &= ~296 /* NumberLike */;\n                }\n                if (allTypeFlags & 2112 /* BigIntLike */ && !isValidBigIntString(\n                  str,\n                  /*roundTripOnly*/\n                  true\n                )) {\n                  allTypeFlags &= ~2112 /* BigIntLike */;\n                }\n                const matchingType = reduceLeft(constraintTypes, (left, right) => !(right.flags & allTypeFlags) ? left : left.flags & 4 /* String */ ? left : right.flags & 4 /* String */ ? source2 : left.flags & 134217728 /* TemplateLiteral */ ? left : right.flags & 134217728 /* TemplateLiteral */ && isTypeMatchedByTemplateLiteralType(source2, right) ? source2 : left.flags & 268435456 /* StringMapping */ ? left : right.flags & 268435456 /* StringMapping */ && str === applyStringMapping(right.symbol, str) ? source2 : left.flags & 128 /* StringLiteral */ ? left : right.flags & 128 /* StringLiteral */ && right.value === str ? right : left.flags & 8 /* Number */ ? left : right.flags & 8 /* Number */ ? getNumberLiteralType(+str) : left.flags & 32 /* Enum */ ? left : right.flags & 32 /* Enum */ ? getNumberLiteralType(+str) : left.flags & 256 /* NumberLiteral */ ? left : right.flags & 256 /* NumberLiteral */ && right.value === +str ? right : left.flags & 64 /* BigInt */ ? left : right.flags & 64 /* BigInt */ ? parseBigIntLiteralType(str) : left.flags & 2048 /* BigIntLiteral */ ? left : right.flags & 2048 /* BigIntLiteral */ && pseudoBigIntToString(right.value) === str ? right : left.flags & 16 /* Boolean */ ? left : right.flags & 16 /* Boolean */ ? str === \"true\" ? trueType : str === \"false\" ? falseType : booleanType : left.flags & 512 /* BooleanLiteral */ ? left : right.flags & 512 /* BooleanLiteral */ && right.intrinsicName === str ? right : left.flags & 32768 /* Undefined */ ? left : right.flags & 32768 /* Undefined */ && right.intrinsicName === str ? right : left.flags & 65536 /* Null */ ? left : right.flags & 65536 /* Null */ && right.intrinsicName === str ? right : left, neverType);\n                if (!(matchingType.flags & 131072 /* Never */)) {\n                  inferFromTypes(matchingType, target2);\n                  continue;\n                }\n              }\n            }\n          }\n          inferFromTypes(source2, target2);\n        }\n      }\n    }\n    function inferFromGenericMappedTypes(source, target) {\n      inferFromTypes(getConstraintTypeFromMappedType(source), getConstraintTypeFromMappedType(target));\n      inferFromTypes(getTemplateTypeFromMappedType(source), getTemplateTypeFromMappedType(target));\n      const sourceNameType = getNameTypeFromMappedType(source);\n      const targetNameType = getNameTypeFromMappedType(target);\n      if (sourceNameType && targetNameType) inferFromTypes(sourceNameType, targetNameType);\n    }\n    function inferFromObjectTypes(source, target) {\n      var _a, _b;\n      if (getObjectFlags(source) & 4 /* Reference */ && getObjectFlags(target) & 4 /* Reference */ && (source.target === target.target || isArrayType(source) && isArrayType(target))) {\n        inferFromTypeArguments(getTypeArguments(source), getTypeArguments(target), getVariances(source.target));\n        return;\n      }\n      if (isGenericMappedType(source) && isGenericMappedType(target)) {\n        inferFromGenericMappedTypes(source, target);\n      }\n      if (getObjectFlags(target) & 32 /* Mapped */ && !target.declaration.nameType) {\n        const constraintType = getConstraintTypeFromMappedType(target);\n        if (inferToMappedType(source, target, constraintType)) {\n          return;\n        }\n      }\n      if (!typesDefinitelyUnrelated(source, target)) {\n        if (isArrayOrTupleType(source)) {\n          if (isTupleType(target)) {\n            const sourceArity = getTypeReferenceArity(source);\n            const targetArity = getTypeReferenceArity(target);\n            const elementTypes = getTypeArguments(target);\n            const elementFlags = target.target.elementFlags;\n            if (isTupleType(source) && isTupleTypeStructureMatching(source, target)) {\n              for (let i = 0; i < targetArity; i++) {\n                inferFromTypes(getTypeArguments(source)[i], elementTypes[i]);\n              }\n              return;\n            }\n            const startLength = isTupleType(source) ? Math.min(source.target.fixedLength, target.target.fixedLength) : 0;\n            const endLength = Math.min(isTupleType(source) ? getEndElementCount(source.target, 3 /* Fixed */) : 0, target.target.combinedFlags & 12 /* Variable */ ? getEndElementCount(target.target, 3 /* Fixed */) : 0);\n            for (let i = 0; i < startLength; i++) {\n              inferFromTypes(getTypeArguments(source)[i], elementTypes[i]);\n            }\n            if (!isTupleType(source) || sourceArity - startLength - endLength === 1 && source.target.elementFlags[startLength] & 4 /* Rest */) {\n              const restType = getTypeArguments(source)[startLength];\n              for (let i = startLength; i < targetArity - endLength; i++) {\n                inferFromTypes(elementFlags[i] & 8 /* Variadic */ ? createArrayType(restType) : restType, elementTypes[i]);\n              }\n            } else {\n              const middleLength = targetArity - startLength - endLength;\n              if (middleLength === 2) {\n                if (elementFlags[startLength] & elementFlags[startLength + 1] & 8 /* Variadic */) {\n                  const targetInfo = getInferenceInfoForType(elementTypes[startLength]);\n                  if (targetInfo && targetInfo.impliedArity !== void 0) {\n                    inferFromTypes(sliceTupleType(source, startLength, endLength + sourceArity - targetInfo.impliedArity), elementTypes[startLength]);\n                    inferFromTypes(sliceTupleType(source, startLength + targetInfo.impliedArity, endLength), elementTypes[startLength + 1]);\n                  }\n                } else if (elementFlags[startLength] & 8 /* Variadic */ && elementFlags[startLength + 1] & 4 /* Rest */) {\n                  const param = (_a = getInferenceInfoForType(elementTypes[startLength])) == null ? void 0 : _a.typeParameter;\n                  const constraint = param && getBaseConstraintOfType(param);\n                  if (constraint && isTupleType(constraint) && !(constraint.target.combinedFlags & 12 /* Variable */)) {\n                    const impliedArity = constraint.target.fixedLength;\n                    inferFromTypes(sliceTupleType(source, startLength, sourceArity - (startLength + impliedArity)), elementTypes[startLength]);\n                    inferFromTypes(getElementTypeOfSliceOfTupleType(source, startLength + impliedArity, endLength), elementTypes[startLength + 1]);\n                  }\n                } else if (elementFlags[startLength] & 4 /* Rest */ && elementFlags[startLength + 1] & 8 /* Variadic */) {\n                  const param = (_b = getInferenceInfoForType(elementTypes[startLength + 1])) == null ? void 0 : _b.typeParameter;\n                  const constraint = param && getBaseConstraintOfType(param);\n                  if (constraint && isTupleType(constraint) && !(constraint.target.combinedFlags & 12 /* Variable */)) {\n                    const impliedArity = constraint.target.fixedLength;\n                    const endIndex = sourceArity - getEndElementCount(target.target, 3 /* Fixed */);\n                    const startIndex = endIndex - impliedArity;\n                    const trailingSlice = createTupleType(\n                      getTypeArguments(source).slice(startIndex, endIndex),\n                      source.target.elementFlags.slice(startIndex, endIndex),\n                      /*readonly*/\n                      false,\n                      source.target.labeledElementDeclarations && source.target.labeledElementDeclarations.slice(startIndex, endIndex)\n                    );\n                    inferFromTypes(getElementTypeOfSliceOfTupleType(source, startLength, endLength + impliedArity), elementTypes[startLength]);\n                    inferFromTypes(trailingSlice, elementTypes[startLength + 1]);\n                  }\n                }\n              } else if (middleLength === 1 && elementFlags[startLength] & 8 /* Variadic */) {\n                const endsInOptional = target.target.elementFlags[targetArity - 1] & 2 /* Optional */;\n                const sourceSlice = sliceTupleType(source, startLength, endLength);\n                inferWithPriority(sourceSlice, elementTypes[startLength], endsInOptional ? 2 /* SpeculativeTuple */ : 0);\n              } else if (middleLength === 1 && elementFlags[startLength] & 4 /* Rest */) {\n                const restType = getElementTypeOfSliceOfTupleType(source, startLength, endLength);\n                if (restType) {\n                  inferFromTypes(restType, elementTypes[startLength]);\n                }\n              }\n            }\n            for (let i = 0; i < endLength; i++) {\n              inferFromTypes(getTypeArguments(source)[sourceArity - i - 1], elementTypes[targetArity - i - 1]);\n            }\n            return;\n          }\n          if (isArrayType(target)) {\n            inferFromIndexTypes(source, target);\n            return;\n          }\n        }\n        inferFromProperties(source, target);\n        inferFromSignatures(source, target, 0 /* Call */);\n        inferFromSignatures(source, target, 1 /* Construct */);\n        inferFromIndexTypes(source, target);\n      }\n    }\n    function inferFromProperties(source, target) {\n      const properties = getPropertiesOfObjectType(target);\n      for (const targetProp of properties) {\n        const sourceProp = getPropertyOfType(source, targetProp.escapedName);\n        if (sourceProp && !some(sourceProp.declarations, hasSkipDirectInferenceFlag)) {\n          inferFromTypes(\n            removeMissingType(getTypeOfSymbol(sourceProp), !!(sourceProp.flags & 16777216 /* Optional */)),\n            removeMissingType(getTypeOfSymbol(targetProp), !!(targetProp.flags & 16777216 /* Optional */))\n          );\n        }\n      }\n    }\n    function inferFromSignatures(source, target, kind) {\n      const sourceSignatures = getSignaturesOfType(source, kind);\n      const sourceLen = sourceSignatures.length;\n      if (sourceLen > 0) {\n        const targetSignatures = getSignaturesOfType(target, kind);\n        const targetLen = targetSignatures.length;\n        for (let i = 0; i < targetLen; i++) {\n          const sourceIndex = Math.max(sourceLen - targetLen + i, 0);\n          inferFromSignature(getBaseSignature(sourceSignatures[sourceIndex]), getErasedSignature(targetSignatures[i]));\n        }\n      }\n    }\n    function inferFromSignature(source, target) {\n      if (!(source.flags & 64 /* IsNonInferrable */)) {\n        const saveBivariant = bivariant;\n        const kind = target.declaration ? target.declaration.kind : 0 /* Unknown */;\n        bivariant = bivariant || kind === 175 /* MethodDeclaration */ || kind === 174 /* MethodSignature */ || kind === 177 /* Constructor */;\n        applyToParameterTypes(source, target, inferFromContravariantTypesIfStrictFunctionTypes);\n        bivariant = saveBivariant;\n      }\n      applyToReturnTypes(source, target, inferFromTypes);\n    }\n    function inferFromIndexTypes(source, target) {\n      const priority2 = getObjectFlags(source) & getObjectFlags(target) & 32 /* Mapped */ ? 8 /* HomomorphicMappedType */ : 0;\n      const indexInfos = getIndexInfosOfType(target);\n      if (isObjectTypeWithInferableIndex(source)) {\n        for (const targetInfo of indexInfos) {\n          const propTypes = [];\n          for (const prop of getPropertiesOfType(source)) {\n            if (isApplicableIndexType(getLiteralTypeFromProperty(prop, 8576 /* StringOrNumberLiteralOrUnique */), targetInfo.keyType)) {\n              const propType = getTypeOfSymbol(prop);\n              propTypes.push(prop.flags & 16777216 /* Optional */ ? removeMissingOrUndefinedType(propType) : propType);\n            }\n          }\n          for (const info of getIndexInfosOfType(source)) {\n            if (isApplicableIndexType(info.keyType, targetInfo.keyType)) {\n              propTypes.push(info.type);\n            }\n          }\n          if (propTypes.length) {\n            inferWithPriority(getUnionType(propTypes), targetInfo.type, priority2);\n          }\n        }\n      }\n      for (const targetInfo of indexInfos) {\n        const sourceInfo = getApplicableIndexInfo(source, targetInfo.keyType);\n        if (sourceInfo) {\n          inferWithPriority(sourceInfo.type, targetInfo.type, priority2);\n        }\n      }\n    }\n  }\n  function isTypeOrBaseIdenticalTo(s, t) {\n    return t === missingType ? s === t : isTypeIdenticalTo(s, t) || !!(t.flags & 4 /* String */ && s.flags & 128 /* StringLiteral */ || t.flags & 8 /* Number */ && s.flags & 256 /* NumberLiteral */);\n  }\n  function isTypeCloselyMatchedBy(s, t) {\n    return !!(s.flags & 524288 /* Object */ && t.flags & 524288 /* Object */ && s.symbol && s.symbol === t.symbol || s.aliasSymbol && s.aliasTypeArguments && s.aliasSymbol === t.aliasSymbol);\n  }\n  function hasPrimitiveConstraint(type) {\n    const constraint = getConstraintOfTypeParameter(type);\n    return !!constraint && maybeTypeOfKind(constraint.flags & 16777216 /* Conditional */ ? getDefaultConstraintOfConditionalType(constraint) : constraint, 402784252 /* Primitive */ | 4194304 /* Index */ | 134217728 /* TemplateLiteral */ | 268435456 /* StringMapping */);\n  }\n  function isObjectLiteralType2(type) {\n    return !!(getObjectFlags(type) & 128 /* ObjectLiteral */);\n  }\n  function isObjectOrArrayLiteralType(type) {\n    return !!(getObjectFlags(type) & (128 /* ObjectLiteral */ | 16384 /* ArrayLiteral */));\n  }\n  function unionObjectAndArrayLiteralCandidates(candidates) {\n    if (candidates.length > 1) {\n      const objectLiterals = filter(candidates, isObjectOrArrayLiteralType);\n      if (objectLiterals.length) {\n        const literalsType = getUnionType(objectLiterals, 2 /* Subtype */);\n        return concatenate(filter(candidates, (t) => !isObjectOrArrayLiteralType(t)), [literalsType]);\n      }\n    }\n    return candidates;\n  }\n  function getContravariantInference(inference) {\n    return inference.priority & 416 /* PriorityImpliesCombination */ ? getIntersectionType(inference.contraCandidates) : getCommonSubtype(inference.contraCandidates);\n  }\n  function getCovariantInference(inference, signature) {\n    const candidates = unionObjectAndArrayLiteralCandidates(inference.candidates);\n    const primitiveConstraint = hasPrimitiveConstraint(inference.typeParameter) || isConstTypeVariable(inference.typeParameter);\n    const widenLiteralTypes = !primitiveConstraint && inference.topLevel && (inference.isFixed || !isTypeParameterAtTopLevelInReturnType(signature, inference.typeParameter));\n    const baseCandidates = primitiveConstraint ? sameMap(candidates, getRegularTypeOfLiteralType) : widenLiteralTypes ? sameMap(candidates, getWidenedLiteralType) : candidates;\n    const unwidenedType = inference.priority & 416 /* PriorityImpliesCombination */ ? getUnionType(baseCandidates, 2 /* Subtype */) : getCommonSupertype(baseCandidates);\n    return getWidenedType(unwidenedType);\n  }\n  function getInferredType(context, index) {\n    const inference = context.inferences[index];\n    if (!inference.inferredType) {\n      let inferredType;\n      let fallbackType;\n      if (context.signature) {\n        const inferredCovariantType = inference.candidates ? getCovariantInference(inference, context.signature) : void 0;\n        const inferredContravariantType = inference.contraCandidates ? getContravariantInference(inference) : void 0;\n        if (inferredCovariantType || inferredContravariantType) {\n          const preferCovariantType = inferredCovariantType && (!inferredContravariantType || !(inferredCovariantType.flags & (131072 /* Never */ | 1 /* Any */)) && some(inference.contraCandidates, (t) => isTypeAssignableTo(inferredCovariantType, t)) && every(context.inferences, (other) => other !== inference && getConstraintOfTypeParameter(other.typeParameter) !== inference.typeParameter || every(other.candidates, (t) => isTypeAssignableTo(t, inferredCovariantType))));\n          inferredType = preferCovariantType ? inferredCovariantType : inferredContravariantType;\n          fallbackType = preferCovariantType ? inferredContravariantType : inferredCovariantType;\n        } else if (context.flags & 1 /* NoDefault */) {\n          inferredType = silentNeverType;\n        } else {\n          const defaultType = getDefaultFromTypeParameter(inference.typeParameter);\n          if (defaultType) {\n            inferredType = instantiateType(defaultType, mergeTypeMappers(createBackreferenceMapper(context, index), context.nonFixingMapper));\n          }\n        }\n      } else {\n        inferredType = getTypeFromInference(inference);\n      }\n      inference.inferredType = inferredType || getDefaultTypeArgumentType(!!(context.flags & 2 /* AnyDefault */));\n      const constraint = getConstraintOfTypeParameter(inference.typeParameter);\n      if (constraint) {\n        const instantiatedConstraint = instantiateType(constraint, context.nonFixingMapper);\n        if (!inferredType || !context.compareTypes(inferredType, getTypeWithThisArgument(instantiatedConstraint, inferredType))) {\n          inference.inferredType = fallbackType && context.compareTypes(fallbackType, getTypeWithThisArgument(instantiatedConstraint, fallbackType)) ? fallbackType : instantiatedConstraint;\n        }\n      }\n      clearActiveMapperCaches();\n    }\n    return inference.inferredType;\n  }\n  function getDefaultTypeArgumentType(isInJavaScriptFile) {\n    return isInJavaScriptFile ? anyType : unknownType;\n  }\n  function getInferredTypes(context) {\n    const result = [];\n    for (let i = 0; i < context.inferences.length; i++) {\n      result.push(getInferredType(context, i));\n    }\n    return result;\n  }\n  function getCannotFindNameDiagnosticForName(node) {\n    switch (node.escapedText) {\n      case \"document\":\n      case \"console\":\n        return Diagnostics.Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_include_dom;\n      case \"$\":\n        return compilerOptions.types ? Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slashjquery_and_then_add_jquery_to_the_types_field_in_your_tsconfig : Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slashjquery;\n      case \"describe\":\n      case \"suite\":\n      case \"it\":\n      case \"test\":\n        return compilerOptions.types ? Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_types_Slashjest_or_npm_i_save_dev_types_Slashmocha_and_then_add_jest_or_mocha_to_the_types_field_in_your_tsconfig : Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_types_Slashjest_or_npm_i_save_dev_types_Slashmocha;\n      case \"process\":\n      case \"require\":\n      case \"Buffer\":\n      case \"module\":\n        return compilerOptions.types ? Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashnode_and_then_add_node_to_the_types_field_in_your_tsconfig : Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashnode;\n      case \"Bun\":\n        return compilerOptions.types ? Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_Bun_Try_npm_i_save_dev_types_Slashbun_and_then_add_bun_to_the_types_field_in_your_tsconfig : Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_Bun_Try_npm_i_save_dev_types_Slashbun;\n      case \"Map\":\n      case \"Set\":\n      case \"Promise\":\n      case \"Symbol\":\n      case \"WeakMap\":\n      case \"WeakSet\":\n      case \"Iterator\":\n      case \"AsyncIterator\":\n      case \"SharedArrayBuffer\":\n      case \"Atomics\":\n      case \"AsyncIterable\":\n      case \"AsyncIterableIterator\":\n      case \"AsyncGenerator\":\n      case \"AsyncGeneratorFunction\":\n      case \"BigInt\":\n      case \"Reflect\":\n      case \"BigInt64Array\":\n      case \"BigUint64Array\":\n        return Diagnostics.Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_1_or_later;\n      case \"await\":\n        if (isCallExpression(node.parent)) {\n          return Diagnostics.Cannot_find_name_0_Did_you_mean_to_write_this_in_an_async_function;\n        }\n      // falls through\n      default:\n        if (node.parent.kind === 305 /* ShorthandPropertyAssignment */) {\n          return Diagnostics.No_value_exists_in_scope_for_the_shorthand_property_0_Either_declare_one_or_provide_an_initializer;\n        } else {\n          return Diagnostics.Cannot_find_name_0;\n        }\n    }\n  }\n  function getResolvedSymbol(node) {\n    const links = getNodeLinks(node);\n    if (!links.resolvedSymbol) {\n      links.resolvedSymbol = !nodeIsMissing(node) && resolveName(\n        node,\n        node,\n        111551 /* Value */ | 1048576 /* ExportValue */,\n        getCannotFindNameDiagnosticForName(node),\n        !isWriteOnlyAccess(node),\n        /*excludeGlobals*/\n        false\n      ) || unknownSymbol;\n    }\n    return links.resolvedSymbol;\n  }\n  function isInAmbientOrTypeNode(node) {\n    return !!(node.flags & 33554432 /* Ambient */ || findAncestor(node, (n) => isInterfaceDeclaration(n) || isTypeAliasDeclaration(n) || isTypeLiteralNode(n)));\n  }\n  function getFlowCacheKey(node, declaredType, initialType, flowContainer) {\n    switch (node.kind) {\n      case 80 /* Identifier */:\n        if (!isThisInTypeQuery(node)) {\n          const symbol = getResolvedSymbol(node);\n          return symbol !== unknownSymbol ? `${flowContainer ? getNodeId(flowContainer) : \"-1\"}|${getTypeId(declaredType)}|${getTypeId(initialType)}|${getSymbolId(symbol)}` : void 0;\n        }\n      // falls through\n      case 110 /* ThisKeyword */:\n        return `0|${flowContainer ? getNodeId(flowContainer) : \"-1\"}|${getTypeId(declaredType)}|${getTypeId(initialType)}`;\n      case 236 /* NonNullExpression */:\n      case 218 /* ParenthesizedExpression */:\n        return getFlowCacheKey(node.expression, declaredType, initialType, flowContainer);\n      case 167 /* QualifiedName */:\n        const left = getFlowCacheKey(node.left, declaredType, initialType, flowContainer);\n        return left && `${left}.${node.right.escapedText}`;\n      case 212 /* PropertyAccessExpression */:\n      case 213 /* ElementAccessExpression */:\n        const propName = getAccessedPropertyName(node);\n        if (propName !== void 0) {\n          const key = getFlowCacheKey(node.expression, declaredType, initialType, flowContainer);\n          return key && `${key}.${propName}`;\n        }\n        if (isElementAccessExpression(node) && isIdentifier(node.argumentExpression)) {\n          const symbol = getResolvedSymbol(node.argumentExpression);\n          if (isConstantVariable(symbol) || isParameterOrMutableLocalVariable(symbol) && !isSymbolAssigned(symbol)) {\n            const key = getFlowCacheKey(node.expression, declaredType, initialType, flowContainer);\n            return key && `${key}.@${getSymbolId(symbol)}`;\n          }\n        }\n        break;\n      case 207 /* ObjectBindingPattern */:\n      case 208 /* ArrayBindingPattern */:\n      case 263 /* FunctionDeclaration */:\n      case 219 /* FunctionExpression */:\n      case 220 /* ArrowFunction */:\n      case 175 /* MethodDeclaration */:\n        return `${getNodeId(node)}#${getTypeId(declaredType)}`;\n    }\n    return void 0;\n  }\n  function isMatchingReference(source, target) {\n    switch (target.kind) {\n      case 218 /* ParenthesizedExpression */:\n      case 236 /* NonNullExpression */:\n        return isMatchingReference(source, target.expression);\n      case 227 /* BinaryExpression */:\n        return isAssignmentExpression(target) && isMatchingReference(source, target.left) || isBinaryExpression(target) && target.operatorToken.kind === 28 /* CommaToken */ && isMatchingReference(source, target.right);\n    }\n    switch (source.kind) {\n      case 237 /* MetaProperty */:\n        return target.kind === 237 /* MetaProperty */ && source.keywordToken === target.keywordToken && source.name.escapedText === target.name.escapedText;\n      case 80 /* Identifier */:\n      case 81 /* PrivateIdentifier */:\n        return isThisInTypeQuery(source) ? target.kind === 110 /* ThisKeyword */ : target.kind === 80 /* Identifier */ && getResolvedSymbol(source) === getResolvedSymbol(target) || (isVariableDeclaration(target) || isBindingElement(target)) && getExportSymbolOfValueSymbolIfExported(getResolvedSymbol(source)) === getSymbolOfDeclaration(target);\n      case 110 /* ThisKeyword */:\n        return target.kind === 110 /* ThisKeyword */;\n      case 108 /* SuperKeyword */:\n        return target.kind === 108 /* SuperKeyword */;\n      case 236 /* NonNullExpression */:\n      case 218 /* ParenthesizedExpression */:\n      case 239 /* SatisfiesExpression */:\n        return isMatchingReference(source.expression, target);\n      case 212 /* PropertyAccessExpression */:\n      case 213 /* ElementAccessExpression */:\n        const sourcePropertyName = getAccessedPropertyName(source);\n        if (sourcePropertyName !== void 0) {\n          const targetPropertyName = isAccessExpression(target) ? getAccessedPropertyName(target) : void 0;\n          if (targetPropertyName !== void 0) {\n            return targetPropertyName === sourcePropertyName && isMatchingReference(source.expression, target.expression);\n          }\n        }\n        if (isElementAccessExpression(source) && isElementAccessExpression(target) && isIdentifier(source.argumentExpression) && isIdentifier(target.argumentExpression)) {\n          const symbol = getResolvedSymbol(source.argumentExpression);\n          if (symbol === getResolvedSymbol(target.argumentExpression) && (isConstantVariable(symbol) || isParameterOrMutableLocalVariable(symbol) && !isSymbolAssigned(symbol))) {\n            return isMatchingReference(source.expression, target.expression);\n          }\n        }\n        break;\n      case 167 /* QualifiedName */:\n        return isAccessExpression(target) && source.right.escapedText === getAccessedPropertyName(target) && isMatchingReference(source.left, target.expression);\n      case 227 /* BinaryExpression */:\n        return isBinaryExpression(source) && source.operatorToken.kind === 28 /* CommaToken */ && isMatchingReference(source.right, target);\n    }\n    return false;\n  }\n  function getAccessedPropertyName(access) {\n    if (isPropertyAccessExpression(access)) {\n      return access.name.escapedText;\n    }\n    if (isElementAccessExpression(access)) {\n      return tryGetElementAccessExpressionName(access);\n    }\n    if (isBindingElement(access)) {\n      const name = getDestructuringPropertyName(access);\n      return name ? escapeLeadingUnderscores(name) : void 0;\n    }\n    if (isParameter(access)) {\n      return \"\" + access.parent.parameters.indexOf(access);\n    }\n    return void 0;\n  }\n  function tryGetNameFromType(type) {\n    return type.flags & 8192 /* UniqueESSymbol */ ? type.escapedName : type.flags & 384 /* StringOrNumberLiteral */ ? escapeLeadingUnderscores(\"\" + type.value) : void 0;\n  }\n  function tryGetElementAccessExpressionName(node) {\n    return isStringOrNumericLiteralLike(node.argumentExpression) ? escapeLeadingUnderscores(node.argumentExpression.text) : isEntityNameExpression(node.argumentExpression) ? tryGetNameFromEntityNameExpression(node.argumentExpression) : void 0;\n  }\n  function tryGetNameFromEntityNameExpression(node) {\n    const symbol = resolveEntityName(\n      node,\n      111551 /* Value */,\n      /*ignoreErrors*/\n      true\n    );\n    if (!symbol || !(isConstantVariable(symbol) || symbol.flags & 8 /* EnumMember */)) return void 0;\n    const declaration = symbol.valueDeclaration;\n    if (declaration === void 0) return void 0;\n    const type = tryGetTypeFromEffectiveTypeNode(declaration);\n    if (type) {\n      const name = tryGetNameFromType(type);\n      if (name !== void 0) {\n        return name;\n      }\n    }\n    if (hasOnlyExpressionInitializer(declaration) && isBlockScopedNameDeclaredBeforeUse(declaration, node)) {\n      const initializer = getEffectiveInitializer(declaration);\n      if (initializer) {\n        const initializerType = isBindingPattern(declaration.parent) ? getTypeForBindingElement(declaration) : getTypeOfExpression(initializer);\n        return initializerType && tryGetNameFromType(initializerType);\n      }\n      if (isEnumMember(declaration)) {\n        return getTextOfPropertyName(declaration.name);\n      }\n    }\n    return void 0;\n  }\n  function containsMatchingReference(source, target) {\n    while (isAccessExpression(source)) {\n      source = source.expression;\n      if (isMatchingReference(source, target)) {\n        return true;\n      }\n    }\n    return false;\n  }\n  function optionalChainContainsReference(source, target) {\n    while (isOptionalChain(source)) {\n      source = source.expression;\n      if (isMatchingReference(source, target)) {\n        return true;\n      }\n    }\n    return false;\n  }\n  function isDiscriminantProperty(type, name) {\n    if (type && type.flags & 1048576 /* Union */) {\n      const prop = getUnionOrIntersectionProperty(type, name);\n      if (prop && getCheckFlags(prop) & 2 /* SyntheticProperty */) {\n        if (prop.links.isDiscriminantProperty === void 0) {\n          prop.links.isDiscriminantProperty = (prop.links.checkFlags & 192 /* Discriminant */) === 192 /* Discriminant */ && !isGenericType(getTypeOfSymbol(prop));\n        }\n        return !!prop.links.isDiscriminantProperty;\n      }\n    }\n    return false;\n  }\n  function findDiscriminantProperties(sourceProperties, target) {\n    let result;\n    for (const sourceProperty of sourceProperties) {\n      if (isDiscriminantProperty(target, sourceProperty.escapedName)) {\n        if (result) {\n          result.push(sourceProperty);\n          continue;\n        }\n        result = [sourceProperty];\n      }\n    }\n    return result;\n  }\n  function mapTypesByKeyProperty(types, name) {\n    const map2 = /* @__PURE__ */ new Map();\n    let count = 0;\n    for (const type of types) {\n      if (type.flags & (524288 /* Object */ | 2097152 /* Intersection */ | 58982400 /* InstantiableNonPrimitive */)) {\n        const discriminant = getTypeOfPropertyOfType(type, name);\n        if (discriminant) {\n          if (!isLiteralType(discriminant)) {\n            return void 0;\n          }\n          let duplicate = false;\n          forEachType(discriminant, (t) => {\n            const id = getTypeId(getRegularTypeOfLiteralType(t));\n            const existing = map2.get(id);\n            if (!existing) {\n              map2.set(id, type);\n            } else if (existing !== unknownType) {\n              map2.set(id, unknownType);\n              duplicate = true;\n            }\n          });\n          if (!duplicate) count++;\n        }\n      }\n    }\n    return count >= 10 && count * 2 >= types.length ? map2 : void 0;\n  }\n  function getKeyPropertyName(unionType) {\n    const types = unionType.types;\n    if (types.length < 10 || getObjectFlags(unionType) & 32768 /* PrimitiveUnion */ || countWhere(types, (t) => !!(t.flags & (524288 /* Object */ | 58982400 /* InstantiableNonPrimitive */))) < 10) {\n      return void 0;\n    }\n    if (unionType.keyPropertyName === void 0) {\n      const keyPropertyName = forEach(types, (t) => t.flags & (524288 /* Object */ | 58982400 /* InstantiableNonPrimitive */) ? forEach(getPropertiesOfType(t), (p) => isUnitType(getTypeOfSymbol(p)) ? p.escapedName : void 0) : void 0);\n      const mapByKeyProperty = keyPropertyName && mapTypesByKeyProperty(types, keyPropertyName);\n      unionType.keyPropertyName = mapByKeyProperty ? keyPropertyName : \"\";\n      unionType.constituentMap = mapByKeyProperty;\n    }\n    return unionType.keyPropertyName.length ? unionType.keyPropertyName : void 0;\n  }\n  function getConstituentTypeForKeyType(unionType, keyType) {\n    var _a;\n    const result = (_a = unionType.constituentMap) == null ? void 0 : _a.get(getTypeId(getRegularTypeOfLiteralType(keyType)));\n    return result !== unknownType ? result : void 0;\n  }\n  function getMatchingUnionConstituentForType(unionType, type) {\n    const keyPropertyName = getKeyPropertyName(unionType);\n    const propType = keyPropertyName && getTypeOfPropertyOfType(type, keyPropertyName);\n    return propType && getConstituentTypeForKeyType(unionType, propType);\n  }\n  function getMatchingUnionConstituentForObjectLiteral(unionType, node) {\n    const keyPropertyName = getKeyPropertyName(unionType);\n    const propNode = keyPropertyName && find(node.properties, (p) => p.symbol && p.kind === 304 /* PropertyAssignment */ && p.symbol.escapedName === keyPropertyName && isPossiblyDiscriminantValue(p.initializer));\n    const propType = propNode && getContextFreeTypeOfExpression(propNode.initializer);\n    return propType && getConstituentTypeForKeyType(unionType, propType);\n  }\n  function isOrContainsMatchingReference(source, target) {\n    return isMatchingReference(source, target) || containsMatchingReference(source, target);\n  }\n  function hasMatchingArgument(expression, reference) {\n    if (expression.arguments) {\n      for (const argument of expression.arguments) {\n        if (isOrContainsMatchingReference(reference, argument) || optionalChainContainsReference(argument, reference)) {\n          return true;\n        }\n      }\n    }\n    if (expression.expression.kind === 212 /* PropertyAccessExpression */ && isOrContainsMatchingReference(reference, expression.expression.expression)) {\n      return true;\n    }\n    return false;\n  }\n  function getFlowNodeId(flow) {\n    if (flow.id <= 0) {\n      flow.id = nextFlowId;\n      nextFlowId++;\n    }\n    return flow.id;\n  }\n  function typeMaybeAssignableTo(source, target) {\n    if (!(source.flags & 1048576 /* Union */)) {\n      return isTypeAssignableTo(source, target);\n    }\n    for (const t of source.types) {\n      if (isTypeAssignableTo(t, target)) {\n        return true;\n      }\n    }\n    return false;\n  }\n  function getAssignmentReducedType(declaredType, assignedType) {\n    if (declaredType === assignedType) {\n      return declaredType;\n    }\n    if (assignedType.flags & 131072 /* Never */) {\n      return assignedType;\n    }\n    const key = `A${getTypeId(declaredType)},${getTypeId(assignedType)}`;\n    return getCachedType(key) ?? setCachedType(key, getAssignmentReducedTypeWorker(declaredType, assignedType));\n  }\n  function getAssignmentReducedTypeWorker(declaredType, assignedType) {\n    const filteredType = filterType(declaredType, (t) => typeMaybeAssignableTo(assignedType, t));\n    const reducedType = assignedType.flags & 512 /* BooleanLiteral */ && isFreshLiteralType(assignedType) ? mapType(filteredType, getFreshTypeOfLiteralType) : filteredType;\n    return isTypeAssignableTo(assignedType, reducedType) ? reducedType : declaredType;\n  }\n  function isFunctionObjectType(type) {\n    if (getObjectFlags(type) & 256 /* EvolvingArray */) {\n      return false;\n    }\n    const resolved = resolveStructuredTypeMembers(type);\n    return !!(resolved.callSignatures.length || resolved.constructSignatures.length || resolved.members.get(\"bind\") && isTypeSubtypeOf(type, globalFunctionType));\n  }\n  function getTypeFacts(type, mask2) {\n    return getTypeFactsWorker(type, mask2) & mask2;\n  }\n  function hasTypeFacts(type, mask2) {\n    return getTypeFacts(type, mask2) !== 0;\n  }\n  function getTypeFactsWorker(type, callerOnlyNeeds) {\n    if (type.flags & (2097152 /* Intersection */ | 465829888 /* Instantiable */)) {\n      type = getBaseConstraintOfType(type) || unknownType;\n    }\n    const flags = type.flags;\n    if (flags & (4 /* String */ | 268435456 /* StringMapping */)) {\n      return strictNullChecks ? 16317953 /* StringStrictFacts */ : 16776705 /* StringFacts */;\n    }\n    if (flags & (128 /* StringLiteral */ | 134217728 /* TemplateLiteral */)) {\n      const isEmpty = flags & 128 /* StringLiteral */ && type.value === \"\";\n      return strictNullChecks ? isEmpty ? 12123649 /* EmptyStringStrictFacts */ : 7929345 /* NonEmptyStringStrictFacts */ : isEmpty ? 12582401 /* EmptyStringFacts */ : 16776705 /* NonEmptyStringFacts */;\n    }\n    if (flags & (8 /* Number */ | 32 /* Enum */)) {\n      return strictNullChecks ? 16317698 /* NumberStrictFacts */ : 16776450 /* NumberFacts */;\n    }\n    if (flags & 256 /* NumberLiteral */) {\n      const isZero = type.value === 0;\n      return strictNullChecks ? isZero ? 12123394 /* ZeroNumberStrictFacts */ : 7929090 /* NonZeroNumberStrictFacts */ : isZero ? 12582146 /* ZeroNumberFacts */ : 16776450 /* NonZeroNumberFacts */;\n    }\n    if (flags & 64 /* BigInt */) {\n      return strictNullChecks ? 16317188 /* BigIntStrictFacts */ : 16775940 /* BigIntFacts */;\n    }\n    if (flags & 2048 /* BigIntLiteral */) {\n      const isZero = isZeroBigInt(type);\n      return strictNullChecks ? isZero ? 12122884 /* ZeroBigIntStrictFacts */ : 7928580 /* NonZeroBigIntStrictFacts */ : isZero ? 12581636 /* ZeroBigIntFacts */ : 16775940 /* NonZeroBigIntFacts */;\n    }\n    if (flags & 16 /* Boolean */) {\n      return strictNullChecks ? 16316168 /* BooleanStrictFacts */ : 16774920 /* BooleanFacts */;\n    }\n    if (flags & 528 /* BooleanLike */) {\n      return strictNullChecks ? type === falseType || type === regularFalseType ? 12121864 /* FalseStrictFacts */ : 7927560 /* TrueStrictFacts */ : type === falseType || type === regularFalseType ? 12580616 /* FalseFacts */ : 16774920 /* TrueFacts */;\n    }\n    if (flags & 524288 /* Object */) {\n      const possibleFacts = strictNullChecks ? 83427327 /* EmptyObjectStrictFacts */ | 7880640 /* FunctionStrictFacts */ | 7888800 /* ObjectStrictFacts */ : 83886079 /* EmptyObjectFacts */ | 16728e3 /* FunctionFacts */ | 16736160 /* ObjectFacts */;\n      if ((callerOnlyNeeds & possibleFacts) === 0) {\n        return 0;\n      }\n      return getObjectFlags(type) & 16 /* Anonymous */ && isEmptyObjectType(type) ? strictNullChecks ? 83427327 /* EmptyObjectStrictFacts */ : 83886079 /* EmptyObjectFacts */ : isFunctionObjectType(type) ? strictNullChecks ? 7880640 /* FunctionStrictFacts */ : 16728e3 /* FunctionFacts */ : strictNullChecks ? 7888800 /* ObjectStrictFacts */ : 16736160 /* ObjectFacts */;\n    }\n    if (flags & 16384 /* Void */) {\n      return 9830144 /* VoidFacts */;\n    }\n    if (flags & 32768 /* Undefined */) {\n      return 26607360 /* UndefinedFacts */;\n    }\n    if (flags & 65536 /* Null */) {\n      return 42917664 /* NullFacts */;\n    }\n    if (flags & 12288 /* ESSymbolLike */) {\n      return strictNullChecks ? 7925520 /* SymbolStrictFacts */ : 16772880 /* SymbolFacts */;\n    }\n    if (flags & 67108864 /* NonPrimitive */) {\n      return strictNullChecks ? 7888800 /* ObjectStrictFacts */ : 16736160 /* ObjectFacts */;\n    }\n    if (flags & 131072 /* Never */) {\n      return 0 /* None */;\n    }\n    if (flags & 1048576 /* Union */) {\n      return reduceLeft(type.types, (facts, t) => facts | getTypeFactsWorker(t, callerOnlyNeeds), 0 /* None */);\n    }\n    if (flags & 2097152 /* Intersection */) {\n      return getIntersectionTypeFacts(type, callerOnlyNeeds);\n    }\n    return 83886079 /* UnknownFacts */;\n  }\n  function getIntersectionTypeFacts(type, callerOnlyNeeds) {\n    const ignoreObjects = maybeTypeOfKind(type, 402784252 /* Primitive */);\n    let oredFacts = 0 /* None */;\n    let andedFacts = 134217727 /* All */;\n    for (const t of type.types) {\n      if (!(ignoreObjects && t.flags & 524288 /* Object */)) {\n        const f = getTypeFactsWorker(t, callerOnlyNeeds);\n        oredFacts |= f;\n        andedFacts &= f;\n      }\n    }\n    return oredFacts & 8256 /* OrFactsMask */ | andedFacts & 134209471 /* AndFactsMask */;\n  }\n  function getTypeWithFacts(type, include) {\n    return filterType(type, (t) => hasTypeFacts(t, include));\n  }\n  function getAdjustedTypeWithFacts(type, facts) {\n    const reduced = recombineUnknownType(getTypeWithFacts(strictNullChecks && type.flags & 2 /* Unknown */ ? unknownUnionType : type, facts));\n    if (strictNullChecks) {\n      switch (facts) {\n        case 524288 /* NEUndefined */:\n          return removeNullableByIntersection(reduced, 65536 /* EQUndefined */, 131072 /* EQNull */, 33554432 /* IsNull */, nullType);\n        case 1048576 /* NENull */:\n          return removeNullableByIntersection(reduced, 131072 /* EQNull */, 65536 /* EQUndefined */, 16777216 /* IsUndefined */, undefinedType);\n        case 2097152 /* NEUndefinedOrNull */:\n        case 4194304 /* Truthy */:\n          return mapType(reduced, (t) => hasTypeFacts(t, 262144 /* EQUndefinedOrNull */) ? getGlobalNonNullableTypeInstantiation(t) : t);\n      }\n    }\n    return reduced;\n  }\n  function removeNullableByIntersection(type, targetFacts, otherFacts, otherIncludesFacts, otherType) {\n    const facts = getTypeFacts(type, 65536 /* EQUndefined */ | 131072 /* EQNull */ | 16777216 /* IsUndefined */ | 33554432 /* IsNull */);\n    if (!(facts & targetFacts)) {\n      return type;\n    }\n    const emptyAndOtherUnion = getUnionType([emptyObjectType, otherType]);\n    return mapType(type, (t) => hasTypeFacts(t, targetFacts) ? getIntersectionType([t, !(facts & otherIncludesFacts) && hasTypeFacts(t, otherFacts) ? emptyAndOtherUnion : emptyObjectType]) : t);\n  }\n  function recombineUnknownType(type) {\n    return type === unknownUnionType ? unknownType : type;\n  }\n  function getTypeWithDefault(type, defaultExpression) {\n    return defaultExpression ? getUnionType([getNonUndefinedType(type), getTypeOfExpression(defaultExpression)]) : type;\n  }\n  function getTypeOfDestructuredProperty(type, name) {\n    var _a;\n    const nameType = getLiteralTypeFromPropertyName(name);\n    if (!isTypeUsableAsPropertyName(nameType)) return errorType;\n    const text = getPropertyNameFromType(nameType);\n    return getTypeOfPropertyOfType(type, text) || includeUndefinedInIndexSignature((_a = getApplicableIndexInfoForName(type, text)) == null ? void 0 : _a.type) || errorType;\n  }\n  function getTypeOfDestructuredArrayElement(type, index) {\n    return everyType(type, isTupleLikeType) && getTupleElementType(type, index) || includeUndefinedInIndexSignature(checkIteratedTypeOrElementType(\n      65 /* Destructuring */,\n      type,\n      undefinedType,\n      /*errorNode*/\n      void 0\n    )) || errorType;\n  }\n  function includeUndefinedInIndexSignature(type) {\n    if (!type) return type;\n    return compilerOptions.noUncheckedIndexedAccess ? getUnionType([type, missingType]) : type;\n  }\n  function getTypeOfDestructuredSpreadExpression(type) {\n    return createArrayType(checkIteratedTypeOrElementType(\n      65 /* Destructuring */,\n      type,\n      undefinedType,\n      /*errorNode*/\n      void 0\n    ) || errorType);\n  }\n  function getAssignedTypeOfBinaryExpression(node) {\n    const isDestructuringDefaultAssignment = node.parent.kind === 210 /* ArrayLiteralExpression */ && isDestructuringAssignmentTarget(node.parent) || node.parent.kind === 304 /* PropertyAssignment */ && isDestructuringAssignmentTarget(node.parent.parent);\n    return isDestructuringDefaultAssignment ? getTypeWithDefault(getAssignedType(node), node.right) : getTypeOfExpression(node.right);\n  }\n  function isDestructuringAssignmentTarget(parent2) {\n    return parent2.parent.kind === 227 /* BinaryExpression */ && parent2.parent.left === parent2 || parent2.parent.kind === 251 /* ForOfStatement */ && parent2.parent.initializer === parent2;\n  }\n  function getAssignedTypeOfArrayLiteralElement(node, element) {\n    return getTypeOfDestructuredArrayElement(getAssignedType(node), node.elements.indexOf(element));\n  }\n  function getAssignedTypeOfSpreadExpression(node) {\n    return getTypeOfDestructuredSpreadExpression(getAssignedType(node.parent));\n  }\n  function getAssignedTypeOfPropertyAssignment(node) {\n    return getTypeOfDestructuredProperty(getAssignedType(node.parent), node.name);\n  }\n  function getAssignedTypeOfShorthandPropertyAssignment(node) {\n    return getTypeWithDefault(getAssignedTypeOfPropertyAssignment(node), node.objectAssignmentInitializer);\n  }\n  function getAssignedType(node) {\n    const { parent: parent2 } = node;\n    switch (parent2.kind) {\n      case 250 /* ForInStatement */:\n        return stringType;\n      case 251 /* ForOfStatement */:\n        return checkRightHandSideOfForOf(parent2) || errorType;\n      case 227 /* BinaryExpression */:\n        return getAssignedTypeOfBinaryExpression(parent2);\n      case 221 /* DeleteExpression */:\n        return undefinedType;\n      case 210 /* ArrayLiteralExpression */:\n        return getAssignedTypeOfArrayLiteralElement(parent2, node);\n      case 231 /* SpreadElement */:\n        return getAssignedTypeOfSpreadExpression(parent2);\n      case 304 /* PropertyAssignment */:\n        return getAssignedTypeOfPropertyAssignment(parent2);\n      case 305 /* ShorthandPropertyAssignment */:\n        return getAssignedTypeOfShorthandPropertyAssignment(parent2);\n    }\n    return errorType;\n  }\n  function getInitialTypeOfBindingElement(node) {\n    const pattern = node.parent;\n    const parentType = getInitialType(pattern.parent);\n    const type = pattern.kind === 207 /* ObjectBindingPattern */ ? getTypeOfDestructuredProperty(parentType, node.propertyName || node.name) : !node.dotDotDotToken ? getTypeOfDestructuredArrayElement(parentType, pattern.elements.indexOf(node)) : getTypeOfDestructuredSpreadExpression(parentType);\n    return getTypeWithDefault(type, node.initializer);\n  }\n  function getTypeOfInitializer(node) {\n    const links = getNodeLinks(node);\n    return links.resolvedType || getTypeOfExpression(node);\n  }\n  function getInitialTypeOfVariableDeclaration(node) {\n    if (node.initializer) {\n      return getTypeOfInitializer(node.initializer);\n    }\n    if (node.parent.parent.kind === 250 /* ForInStatement */) {\n      return stringType;\n    }\n    if (node.parent.parent.kind === 251 /* ForOfStatement */) {\n      return checkRightHandSideOfForOf(node.parent.parent) || errorType;\n    }\n    return errorType;\n  }\n  function getInitialType(node) {\n    return node.kind === 261 /* VariableDeclaration */ ? getInitialTypeOfVariableDeclaration(node) : getInitialTypeOfBindingElement(node);\n  }\n  function isEmptyArrayAssignment(node) {\n    return node.kind === 261 /* VariableDeclaration */ && node.initializer && isEmptyArrayLiteral2(node.initializer) || node.kind !== 209 /* BindingElement */ && node.parent.kind === 227 /* BinaryExpression */ && isEmptyArrayLiteral2(node.parent.right);\n  }\n  function getReferenceCandidate(node) {\n    switch (node.kind) {\n      case 218 /* ParenthesizedExpression */:\n        return getReferenceCandidate(node.expression);\n      case 227 /* BinaryExpression */:\n        switch (node.operatorToken.kind) {\n          case 64 /* EqualsToken */:\n          case 76 /* BarBarEqualsToken */:\n          case 77 /* AmpersandAmpersandEqualsToken */:\n          case 78 /* QuestionQuestionEqualsToken */:\n            return getReferenceCandidate(node.left);\n          case 28 /* CommaToken */:\n            return getReferenceCandidate(node.right);\n        }\n    }\n    return node;\n  }\n  function getReferenceRoot(node) {\n    const { parent: parent2 } = node;\n    return parent2.kind === 218 /* ParenthesizedExpression */ || parent2.kind === 227 /* BinaryExpression */ && parent2.operatorToken.kind === 64 /* EqualsToken */ && parent2.left === node || parent2.kind === 227 /* BinaryExpression */ && parent2.operatorToken.kind === 28 /* CommaToken */ && parent2.right === node ? getReferenceRoot(parent2) : node;\n  }\n  function getTypeOfSwitchClause(clause) {\n    if (clause.kind === 297 /* CaseClause */) {\n      return getRegularTypeOfLiteralType(getTypeOfExpression(clause.expression));\n    }\n    return neverType;\n  }\n  function getSwitchClauseTypes(switchStatement) {\n    const links = getNodeLinks(switchStatement);\n    if (!links.switchTypes) {\n      links.switchTypes = [];\n      for (const clause of switchStatement.caseBlock.clauses) {\n        links.switchTypes.push(getTypeOfSwitchClause(clause));\n      }\n    }\n    return links.switchTypes;\n  }\n  function getSwitchClauseTypeOfWitnesses(switchStatement) {\n    if (some(switchStatement.caseBlock.clauses, (clause) => clause.kind === 297 /* CaseClause */ && !isStringLiteralLike(clause.expression))) {\n      return void 0;\n    }\n    const witnesses = [];\n    for (const clause of switchStatement.caseBlock.clauses) {\n      const text = clause.kind === 297 /* CaseClause */ ? clause.expression.text : void 0;\n      witnesses.push(text && !contains(witnesses, text) ? text : void 0);\n    }\n    return witnesses;\n  }\n  function eachTypeContainedIn(source, types) {\n    return source.flags & 1048576 /* Union */ ? !forEach(source.types, (t) => !contains(types, t)) : contains(types, source);\n  }\n  function isTypeSubsetOf(source, target) {\n    return !!(source === target || source.flags & 131072 /* Never */ || target.flags & 1048576 /* Union */ && isTypeSubsetOfUnion(source, target));\n  }\n  function isTypeSubsetOfUnion(source, target) {\n    if (source.flags & 1048576 /* Union */) {\n      for (const t of source.types) {\n        if (!containsType(target.types, t)) {\n          return false;\n        }\n      }\n      return true;\n    }\n    if (source.flags & 1056 /* EnumLike */ && getBaseTypeOfEnumLikeType(source) === target) {\n      return true;\n    }\n    return containsType(target.types, source);\n  }\n  function forEachType(type, f) {\n    return type.flags & 1048576 /* Union */ ? forEach(type.types, f) : f(type);\n  }\n  function someType(type, f) {\n    return type.flags & 1048576 /* Union */ ? some(type.types, f) : f(type);\n  }\n  function everyType(type, f) {\n    return type.flags & 1048576 /* Union */ ? every(type.types, f) : f(type);\n  }\n  function everyContainedType(type, f) {\n    return type.flags & 3145728 /* UnionOrIntersection */ ? every(type.types, f) : f(type);\n  }\n  function filterType(type, f) {\n    if (type.flags & 1048576 /* Union */) {\n      const types = type.types;\n      const filtered = filter(types, f);\n      if (filtered === types) {\n        return type;\n      }\n      const origin = type.origin;\n      let newOrigin;\n      if (origin && origin.flags & 1048576 /* Union */) {\n        const originTypes = origin.types;\n        const originFiltered = filter(originTypes, (t) => !!(t.flags & 1048576 /* Union */) || f(t));\n        if (originTypes.length - originFiltered.length === types.length - filtered.length) {\n          if (originFiltered.length === 1) {\n            return originFiltered[0];\n          }\n          newOrigin = createOriginUnionOrIntersectionType(1048576 /* Union */, originFiltered);\n        }\n      }\n      return getUnionTypeFromSortedList(\n        filtered,\n        type.objectFlags & (32768 /* PrimitiveUnion */ | 16777216 /* ContainsIntersections */),\n        /*aliasSymbol*/\n        void 0,\n        /*aliasTypeArguments*/\n        void 0,\n        newOrigin\n      );\n    }\n    return type.flags & 131072 /* Never */ || f(type) ? type : neverType;\n  }\n  function removeType(type, targetType) {\n    return filterType(type, (t) => t !== targetType);\n  }\n  function countTypes(type) {\n    return type.flags & 1048576 /* Union */ ? type.types.length : 1;\n  }\n  function mapType(type, mapper, noReductions) {\n    if (type.flags & 131072 /* Never */) {\n      return type;\n    }\n    if (!(type.flags & 1048576 /* Union */)) {\n      return mapper(type);\n    }\n    const origin = type.origin;\n    const types = origin && origin.flags & 1048576 /* Union */ ? origin.types : type.types;\n    let mappedTypes;\n    let changed = false;\n    for (const t of types) {\n      const mapped = t.flags & 1048576 /* Union */ ? mapType(t, mapper, noReductions) : mapper(t);\n      changed || (changed = t !== mapped);\n      if (mapped) {\n        if (!mappedTypes) {\n          mappedTypes = [mapped];\n        } else {\n          mappedTypes.push(mapped);\n        }\n      }\n    }\n    return changed ? mappedTypes && getUnionType(mappedTypes, noReductions ? 0 /* None */ : 1 /* Literal */) : type;\n  }\n  function mapTypeWithAlias(type, mapper, aliasSymbol, aliasTypeArguments) {\n    return type.flags & 1048576 /* Union */ && aliasSymbol ? getUnionType(map(type.types, mapper), 1 /* Literal */, aliasSymbol, aliasTypeArguments) : mapType(type, mapper);\n  }\n  function extractTypesOfKind(type, kind) {\n    return filterType(type, (t) => (t.flags & kind) !== 0);\n  }\n  function replacePrimitivesWithLiterals(typeWithPrimitives, typeWithLiterals) {\n    if (maybeTypeOfKind(typeWithPrimitives, 4 /* String */ | 134217728 /* TemplateLiteral */ | 8 /* Number */ | 64 /* BigInt */) && maybeTypeOfKind(typeWithLiterals, 128 /* StringLiteral */ | 134217728 /* TemplateLiteral */ | 268435456 /* StringMapping */ | 256 /* NumberLiteral */ | 2048 /* BigIntLiteral */)) {\n      return mapType(typeWithPrimitives, (t) => t.flags & 4 /* String */ ? extractTypesOfKind(typeWithLiterals, 4 /* String */ | 128 /* StringLiteral */ | 134217728 /* TemplateLiteral */ | 268435456 /* StringMapping */) : isPatternLiteralType(t) && !maybeTypeOfKind(typeWithLiterals, 4 /* String */ | 134217728 /* TemplateLiteral */ | 268435456 /* StringMapping */) ? extractTypesOfKind(typeWithLiterals, 128 /* StringLiteral */) : t.flags & 8 /* Number */ ? extractTypesOfKind(typeWithLiterals, 8 /* Number */ | 256 /* NumberLiteral */) : t.flags & 64 /* BigInt */ ? extractTypesOfKind(typeWithLiterals, 64 /* BigInt */ | 2048 /* BigIntLiteral */) : t);\n    }\n    return typeWithPrimitives;\n  }\n  function isIncomplete(flowType) {\n    return flowType.flags === 0;\n  }\n  function getTypeFromFlowType(flowType) {\n    return flowType.flags === 0 ? flowType.type : flowType;\n  }\n  function createFlowType(type, incomplete) {\n    return incomplete ? { flags: 0, type: type.flags & 131072 /* Never */ ? silentNeverType : type } : type;\n  }\n  function createEvolvingArrayType(elementType) {\n    const result = createObjectType(256 /* EvolvingArray */);\n    result.elementType = elementType;\n    return result;\n  }\n  function getEvolvingArrayType(elementType) {\n    return evolvingArrayTypes[elementType.id] || (evolvingArrayTypes[elementType.id] = createEvolvingArrayType(elementType));\n  }\n  function addEvolvingArrayElementType(evolvingArrayType, node) {\n    const elementType = getRegularTypeOfObjectLiteral(getBaseTypeOfLiteralType(getContextFreeTypeOfExpression(node)));\n    return isTypeSubsetOf(elementType, evolvingArrayType.elementType) ? evolvingArrayType : getEvolvingArrayType(getUnionType([evolvingArrayType.elementType, elementType]));\n  }\n  function createFinalArrayType(elementType) {\n    return elementType.flags & 131072 /* Never */ ? autoArrayType : createArrayType(\n      elementType.flags & 1048576 /* Union */ ? getUnionType(elementType.types, 2 /* Subtype */) : elementType\n    );\n  }\n  function getFinalArrayType(evolvingArrayType) {\n    return evolvingArrayType.finalArrayType || (evolvingArrayType.finalArrayType = createFinalArrayType(evolvingArrayType.elementType));\n  }\n  function finalizeEvolvingArrayType(type) {\n    return getObjectFlags(type) & 256 /* EvolvingArray */ ? getFinalArrayType(type) : type;\n  }\n  function getElementTypeOfEvolvingArrayType(type) {\n    return getObjectFlags(type) & 256 /* EvolvingArray */ ? type.elementType : neverType;\n  }\n  function isEvolvingArrayTypeList(types) {\n    let hasEvolvingArrayType = false;\n    for (const t of types) {\n      if (!(t.flags & 131072 /* Never */)) {\n        if (!(getObjectFlags(t) & 256 /* EvolvingArray */)) {\n          return false;\n        }\n        hasEvolvingArrayType = true;\n      }\n    }\n    return hasEvolvingArrayType;\n  }\n  function isEvolvingArrayOperationTarget(node) {\n    const root = getReferenceRoot(node);\n    const parent2 = root.parent;\n    const isLengthPushOrUnshift = isPropertyAccessExpression(parent2) && (parent2.name.escapedText === \"length\" || parent2.parent.kind === 214 /* CallExpression */ && isIdentifier(parent2.name) && isPushOrUnshiftIdentifier(parent2.name));\n    const isElementAssignment = parent2.kind === 213 /* ElementAccessExpression */ && parent2.expression === root && parent2.parent.kind === 227 /* BinaryExpression */ && parent2.parent.operatorToken.kind === 64 /* EqualsToken */ && parent2.parent.left === parent2 && !isAssignmentTarget(parent2.parent) && isTypeAssignableToKind(getTypeOfExpression(parent2.argumentExpression), 296 /* NumberLike */);\n    return isLengthPushOrUnshift || isElementAssignment;\n  }\n  function isDeclarationWithExplicitTypeAnnotation(node) {\n    return (isVariableDeclaration(node) || isPropertyDeclaration(node) || isPropertySignature(node) || isParameter(node)) && !!(getEffectiveTypeAnnotationNode(node) || isInJSFile(node) && hasInitializer(node) && node.initializer && isFunctionExpressionOrArrowFunction(node.initializer) && getEffectiveReturnTypeNode(node.initializer));\n  }\n  function getExplicitTypeOfSymbol(symbol, diagnostic) {\n    symbol = resolveSymbol(symbol);\n    if (symbol.flags & (16 /* Function */ | 8192 /* Method */ | 32 /* Class */ | 512 /* ValueModule */)) {\n      return getTypeOfSymbol(symbol);\n    }\n    if (symbol.flags & (3 /* Variable */ | 4 /* Property */)) {\n      if (getCheckFlags(symbol) & 262144 /* Mapped */) {\n        const origin = symbol.links.syntheticOrigin;\n        if (origin && getExplicitTypeOfSymbol(origin)) {\n          return getTypeOfSymbol(symbol);\n        }\n      }\n      const declaration = symbol.valueDeclaration;\n      if (declaration) {\n        if (isDeclarationWithExplicitTypeAnnotation(declaration)) {\n          return getTypeOfSymbol(symbol);\n        }\n        if (isVariableDeclaration(declaration) && declaration.parent.parent.kind === 251 /* ForOfStatement */) {\n          const statement = declaration.parent.parent;\n          const expressionType = getTypeOfDottedName(\n            statement.expression,\n            /*diagnostic*/\n            void 0\n          );\n          if (expressionType) {\n            const use = statement.awaitModifier ? 15 /* ForAwaitOf */ : 13 /* ForOf */;\n            return checkIteratedTypeOrElementType(\n              use,\n              expressionType,\n              undefinedType,\n              /*errorNode*/\n              void 0\n            );\n          }\n        }\n        if (diagnostic) {\n          addRelatedInfo(diagnostic, createDiagnosticForNode(declaration, Diagnostics._0_needs_an_explicit_type_annotation, symbolToString(symbol)));\n        }\n      }\n    }\n  }\n  function getTypeOfDottedName(node, diagnostic) {\n    if (!(node.flags & 67108864 /* InWithStatement */)) {\n      switch (node.kind) {\n        case 80 /* Identifier */:\n          const symbol = getExportSymbolOfValueSymbolIfExported(getResolvedSymbol(node));\n          return getExplicitTypeOfSymbol(symbol, diagnostic);\n        case 110 /* ThisKeyword */:\n          return getExplicitThisType(node);\n        case 108 /* SuperKeyword */:\n          return checkSuperExpression(node);\n        case 212 /* PropertyAccessExpression */: {\n          const type = getTypeOfDottedName(node.expression, diagnostic);\n          if (type) {\n            const name = node.name;\n            let prop;\n            if (isPrivateIdentifier(name)) {\n              if (!type.symbol) {\n                return void 0;\n              }\n              prop = getPropertyOfType(type, getSymbolNameForPrivateIdentifier(type.symbol, name.escapedText));\n            } else {\n              prop = getPropertyOfType(type, name.escapedText);\n            }\n            return prop && getExplicitTypeOfSymbol(prop, diagnostic);\n          }\n          return void 0;\n        }\n        case 218 /* ParenthesizedExpression */:\n          return getTypeOfDottedName(node.expression, diagnostic);\n      }\n    }\n  }\n  function getEffectsSignature(node) {\n    const links = getNodeLinks(node);\n    let signature = links.effectsSignature;\n    if (signature === void 0) {\n      let funcType;\n      if (isBinaryExpression(node)) {\n        const rightType = checkNonNullExpression(node.right);\n        funcType = getSymbolHasInstanceMethodOfObjectType(rightType);\n      } else if (node.parent.kind === 245 /* ExpressionStatement */) {\n        funcType = getTypeOfDottedName(\n          node.expression,\n          /*diagnostic*/\n          void 0\n        );\n      } else if (node.expression.kind !== 108 /* SuperKeyword */) {\n        if (isOptionalChain(node)) {\n          funcType = checkNonNullType(\n            getOptionalExpressionType(checkExpression(node.expression), node.expression),\n            node.expression\n          );\n        } else {\n          funcType = checkNonNullExpression(node.expression);\n        }\n      }\n      const signatures = getSignaturesOfType(funcType && getApparentType(funcType) || unknownType, 0 /* Call */);\n      const candidate = signatures.length === 1 && !signatures[0].typeParameters ? signatures[0] : some(signatures, hasTypePredicateOrNeverReturnType) ? getResolvedSignature(node) : void 0;\n      signature = links.effectsSignature = candidate && hasTypePredicateOrNeverReturnType(candidate) ? candidate : unknownSignature;\n    }\n    return signature === unknownSignature ? void 0 : signature;\n  }\n  function hasTypePredicateOrNeverReturnType(signature) {\n    return !!(getTypePredicateOfSignature(signature) || signature.declaration && (getReturnTypeFromAnnotation(signature.declaration) || unknownType).flags & 131072 /* Never */);\n  }\n  function getTypePredicateArgument(predicate, callExpression) {\n    if (predicate.kind === 1 /* Identifier */ || predicate.kind === 3 /* AssertsIdentifier */) {\n      return callExpression.arguments[predicate.parameterIndex];\n    }\n    const invokedExpression = skipParentheses(callExpression.expression);\n    return isAccessExpression(invokedExpression) ? skipParentheses(invokedExpression.expression) : void 0;\n  }\n  function reportFlowControlError(node) {\n    const block = findAncestor(node, isFunctionOrModuleBlock);\n    const sourceFile = getSourceFileOfNode(node);\n    const span = getSpanOfTokenAtPosition(sourceFile, block.statements.pos);\n    diagnostics.add(createFileDiagnostic(sourceFile, span.start, span.length, Diagnostics.The_containing_function_or_module_body_is_too_large_for_control_flow_analysis));\n  }\n  function isReachableFlowNode(flow) {\n    const result = isReachableFlowNodeWorker(\n      flow,\n      /*noCacheCheck*/\n      false\n    );\n    lastFlowNode = flow;\n    lastFlowNodeReachable = result;\n    return result;\n  }\n  function isFalseExpression(expr) {\n    const node = skipParentheses(\n      expr,\n      /*excludeJSDocTypeAssertions*/\n      true\n    );\n    return node.kind === 97 /* FalseKeyword */ || node.kind === 227 /* BinaryExpression */ && (node.operatorToken.kind === 56 /* AmpersandAmpersandToken */ && (isFalseExpression(node.left) || isFalseExpression(node.right)) || node.operatorToken.kind === 57 /* BarBarToken */ && isFalseExpression(node.left) && isFalseExpression(node.right));\n  }\n  function isReachableFlowNodeWorker(flow, noCacheCheck) {\n    while (true) {\n      if (flow === lastFlowNode) {\n        return lastFlowNodeReachable;\n      }\n      const flags = flow.flags;\n      if (flags & 4096 /* Shared */) {\n        if (!noCacheCheck) {\n          const id = getFlowNodeId(flow);\n          const reachable = flowNodeReachable[id];\n          return reachable !== void 0 ? reachable : flowNodeReachable[id] = isReachableFlowNodeWorker(\n            flow,\n            /*noCacheCheck*/\n            true\n          );\n        }\n        noCacheCheck = false;\n      }\n      if (flags & (16 /* Assignment */ | 96 /* Condition */ | 256 /* ArrayMutation */)) {\n        flow = flow.antecedent;\n      } else if (flags & 512 /* Call */) {\n        const signature = getEffectsSignature(flow.node);\n        if (signature) {\n          const predicate = getTypePredicateOfSignature(signature);\n          if (predicate && predicate.kind === 3 /* AssertsIdentifier */ && !predicate.type) {\n            const predicateArgument = flow.node.arguments[predicate.parameterIndex];\n            if (predicateArgument && isFalseExpression(predicateArgument)) {\n              return false;\n            }\n          }\n          if (getReturnTypeOfSignature(signature).flags & 131072 /* Never */) {\n            return false;\n          }\n        }\n        flow = flow.antecedent;\n      } else if (flags & 4 /* BranchLabel */) {\n        return some(flow.antecedent, (f) => isReachableFlowNodeWorker(\n          f,\n          /*noCacheCheck*/\n          false\n        ));\n      } else if (flags & 8 /* LoopLabel */) {\n        const antecedents = flow.antecedent;\n        if (antecedents === void 0 || antecedents.length === 0) {\n          return false;\n        }\n        flow = antecedents[0];\n      } else if (flags & 128 /* SwitchClause */) {\n        const data = flow.node;\n        if (data.clauseStart === data.clauseEnd && isExhaustiveSwitchStatement(data.switchStatement)) {\n          return false;\n        }\n        flow = flow.antecedent;\n      } else if (flags & 1024 /* ReduceLabel */) {\n        lastFlowNode = void 0;\n        const target = flow.node.target;\n        const saveAntecedents = target.antecedent;\n        target.antecedent = flow.node.antecedents;\n        const result = isReachableFlowNodeWorker(\n          flow.antecedent,\n          /*noCacheCheck*/\n          false\n        );\n        target.antecedent = saveAntecedents;\n        return result;\n      } else {\n        return !(flags & 1 /* Unreachable */);\n      }\n    }\n  }\n  function isPostSuperFlowNode(flow, noCacheCheck) {\n    while (true) {\n      const flags = flow.flags;\n      if (flags & 4096 /* Shared */) {\n        if (!noCacheCheck) {\n          const id = getFlowNodeId(flow);\n          const postSuper = flowNodePostSuper[id];\n          return postSuper !== void 0 ? postSuper : flowNodePostSuper[id] = isPostSuperFlowNode(\n            flow,\n            /*noCacheCheck*/\n            true\n          );\n        }\n        noCacheCheck = false;\n      }\n      if (flags & (16 /* Assignment */ | 96 /* Condition */ | 256 /* ArrayMutation */ | 128 /* SwitchClause */)) {\n        flow = flow.antecedent;\n      } else if (flags & 512 /* Call */) {\n        if (flow.node.expression.kind === 108 /* SuperKeyword */) {\n          return true;\n        }\n        flow = flow.antecedent;\n      } else if (flags & 4 /* BranchLabel */) {\n        return every(flow.antecedent, (f) => isPostSuperFlowNode(\n          f,\n          /*noCacheCheck*/\n          false\n        ));\n      } else if (flags & 8 /* LoopLabel */) {\n        flow = flow.antecedent[0];\n      } else if (flags & 1024 /* ReduceLabel */) {\n        const target = flow.node.target;\n        const saveAntecedents = target.antecedent;\n        target.antecedent = flow.node.antecedents;\n        const result = isPostSuperFlowNode(\n          flow.antecedent,\n          /*noCacheCheck*/\n          false\n        );\n        target.antecedent = saveAntecedents;\n        return result;\n      } else {\n        return !!(flags & 1 /* Unreachable */);\n      }\n    }\n  }\n  function isConstantReference(node) {\n    switch (node.kind) {\n      case 110 /* ThisKeyword */:\n        return true;\n      case 80 /* Identifier */:\n        if (!isThisInTypeQuery(node)) {\n          const symbol = getResolvedSymbol(node);\n          return isConstantVariable(symbol) || isParameterOrMutableLocalVariable(symbol) && !isSymbolAssigned(symbol) || !!symbol.valueDeclaration && isFunctionExpression(symbol.valueDeclaration);\n        }\n        break;\n      case 212 /* PropertyAccessExpression */:\n      case 213 /* ElementAccessExpression */:\n        return isConstantReference(node.expression) && isReadonlySymbol(getNodeLinks(node).resolvedSymbol || unknownSymbol);\n      case 207 /* ObjectBindingPattern */:\n      case 208 /* ArrayBindingPattern */:\n        const rootDeclaration = getRootDeclaration(node.parent);\n        return isParameter(rootDeclaration) || isCatchClauseVariableDeclaration(rootDeclaration) ? !isSomeSymbolAssigned(rootDeclaration) : isVariableDeclaration(rootDeclaration) && isVarConstLike2(rootDeclaration);\n    }\n    return false;\n  }\n  function getFlowTypeOfReference(reference, declaredType, initialType = declaredType, flowContainer, flowNode = ((_a) => (_a = tryCast(reference, canHaveFlowNode)) == null ? void 0 : _a.flowNode)()) {\n    let key;\n    let isKeySet = false;\n    let flowDepth = 0;\n    if (flowAnalysisDisabled) {\n      return errorType;\n    }\n    if (!flowNode) {\n      return declaredType;\n    }\n    flowInvocationCount++;\n    const sharedFlowStart = sharedFlowCount;\n    const evolvedType = getTypeFromFlowType(getTypeAtFlowNode(flowNode));\n    sharedFlowCount = sharedFlowStart;\n    const resultType = getObjectFlags(evolvedType) & 256 /* EvolvingArray */ && isEvolvingArrayOperationTarget(reference) ? autoArrayType : finalizeEvolvingArrayType(evolvedType);\n    if (resultType === unreachableNeverType || reference.parent && reference.parent.kind === 236 /* NonNullExpression */ && !(resultType.flags & 131072 /* Never */) && getTypeWithFacts(resultType, 2097152 /* NEUndefinedOrNull */).flags & 131072 /* Never */) {\n      return declaredType;\n    }\n    return resultType;\n    function getOrSetCacheKey() {\n      if (isKeySet) {\n        return key;\n      }\n      isKeySet = true;\n      return key = getFlowCacheKey(reference, declaredType, initialType, flowContainer);\n    }\n    function getTypeAtFlowNode(flow) {\n      var _a2;\n      if (flowDepth === 2e3) {\n        (_a2 = tracing) == null ? void 0 : _a2.instant(tracing.Phase.CheckTypes, \"getTypeAtFlowNode_DepthLimit\", { flowId: flow.id });\n        flowAnalysisDisabled = true;\n        reportFlowControlError(reference);\n        return errorType;\n      }\n      flowDepth++;\n      let sharedFlow;\n      while (true) {\n        const flags = flow.flags;\n        if (flags & 4096 /* Shared */) {\n          for (let i = sharedFlowStart; i < sharedFlowCount; i++) {\n            if (sharedFlowNodes[i] === flow) {\n              flowDepth--;\n              return sharedFlowTypes[i];\n            }\n          }\n          sharedFlow = flow;\n        }\n        let type;\n        if (flags & 16 /* Assignment */) {\n          type = getTypeAtFlowAssignment(flow);\n          if (!type) {\n            flow = flow.antecedent;\n            continue;\n          }\n        } else if (flags & 512 /* Call */) {\n          type = getTypeAtFlowCall(flow);\n          if (!type) {\n            flow = flow.antecedent;\n            continue;\n          }\n        } else if (flags & 96 /* Condition */) {\n          type = getTypeAtFlowCondition(flow);\n        } else if (flags & 128 /* SwitchClause */) {\n          type = getTypeAtSwitchClause(flow);\n        } else if (flags & 12 /* Label */) {\n          if (flow.antecedent.length === 1) {\n            flow = flow.antecedent[0];\n            continue;\n          }\n          type = flags & 4 /* BranchLabel */ ? getTypeAtFlowBranchLabel(flow) : getTypeAtFlowLoopLabel(flow);\n        } else if (flags & 256 /* ArrayMutation */) {\n          type = getTypeAtFlowArrayMutation(flow);\n          if (!type) {\n            flow = flow.antecedent;\n            continue;\n          }\n        } else if (flags & 1024 /* ReduceLabel */) {\n          const target = flow.node.target;\n          const saveAntecedents = target.antecedent;\n          target.antecedent = flow.node.antecedents;\n          type = getTypeAtFlowNode(flow.antecedent);\n          target.antecedent = saveAntecedents;\n        } else if (flags & 2 /* Start */) {\n          const container = flow.node;\n          if (container && container !== flowContainer && reference.kind !== 212 /* PropertyAccessExpression */ && reference.kind !== 213 /* ElementAccessExpression */ && !(reference.kind === 110 /* ThisKeyword */ && container.kind !== 220 /* ArrowFunction */)) {\n            flow = container.flowNode;\n            continue;\n          }\n          type = initialType;\n        } else {\n          type = convertAutoToAny(declaredType);\n        }\n        if (sharedFlow) {\n          sharedFlowNodes[sharedFlowCount] = sharedFlow;\n          sharedFlowTypes[sharedFlowCount] = type;\n          sharedFlowCount++;\n        }\n        flowDepth--;\n        return type;\n      }\n    }\n    function getInitialOrAssignedType(flow) {\n      const node = flow.node;\n      return getNarrowableTypeForReference(\n        node.kind === 261 /* VariableDeclaration */ || node.kind === 209 /* BindingElement */ ? getInitialType(node) : getAssignedType(node),\n        reference\n      );\n    }\n    function getTypeAtFlowAssignment(flow) {\n      const node = flow.node;\n      if (isMatchingReference(reference, node)) {\n        if (!isReachableFlowNode(flow)) {\n          return unreachableNeverType;\n        }\n        if (getAssignmentTargetKind(node) === 2 /* Compound */) {\n          const flowType = getTypeAtFlowNode(flow.antecedent);\n          return createFlowType(getBaseTypeOfLiteralType(getTypeFromFlowType(flowType)), isIncomplete(flowType));\n        }\n        if (declaredType === autoType || declaredType === autoArrayType) {\n          if (isEmptyArrayAssignment(node)) {\n            return getEvolvingArrayType(neverType);\n          }\n          const assignedType = getWidenedLiteralType(getInitialOrAssignedType(flow));\n          return isTypeAssignableTo(assignedType, declaredType) ? assignedType : anyArrayType;\n        }\n        const t = isInCompoundLikeAssignment(node) ? getBaseTypeOfLiteralType(declaredType) : declaredType;\n        if (t.flags & 1048576 /* Union */) {\n          return getAssignmentReducedType(t, getInitialOrAssignedType(flow));\n        }\n        return t;\n      }\n      if (containsMatchingReference(reference, node)) {\n        if (!isReachableFlowNode(flow)) {\n          return unreachableNeverType;\n        }\n        if (isVariableDeclaration(node) && (isInJSFile(node) || isVarConstLike2(node))) {\n          const init = getDeclaredExpandoInitializer(node);\n          if (init && (init.kind === 219 /* FunctionExpression */ || init.kind === 220 /* ArrowFunction */)) {\n            return getTypeAtFlowNode(flow.antecedent);\n          }\n        }\n        return declaredType;\n      }\n      if (isVariableDeclaration(node) && node.parent.parent.kind === 250 /* ForInStatement */ && (isMatchingReference(reference, node.parent.parent.expression) || optionalChainContainsReference(node.parent.parent.expression, reference))) {\n        return getNonNullableTypeIfNeeded(finalizeEvolvingArrayType(getTypeFromFlowType(getTypeAtFlowNode(flow.antecedent))));\n      }\n      return void 0;\n    }\n    function narrowTypeByAssertion(type, expr) {\n      const node = skipParentheses(\n        expr,\n        /*excludeJSDocTypeAssertions*/\n        true\n      );\n      if (node.kind === 97 /* FalseKeyword */) {\n        return unreachableNeverType;\n      }\n      if (node.kind === 227 /* BinaryExpression */) {\n        if (node.operatorToken.kind === 56 /* AmpersandAmpersandToken */) {\n          return narrowTypeByAssertion(narrowTypeByAssertion(type, node.left), node.right);\n        }\n        if (node.operatorToken.kind === 57 /* BarBarToken */) {\n          return getUnionType([narrowTypeByAssertion(type, node.left), narrowTypeByAssertion(type, node.right)]);\n        }\n      }\n      return narrowType(\n        type,\n        node,\n        /*assumeTrue*/\n        true\n      );\n    }\n    function getTypeAtFlowCall(flow) {\n      const signature = getEffectsSignature(flow.node);\n      if (signature) {\n        const predicate = getTypePredicateOfSignature(signature);\n        if (predicate && (predicate.kind === 2 /* AssertsThis */ || predicate.kind === 3 /* AssertsIdentifier */)) {\n          const flowType = getTypeAtFlowNode(flow.antecedent);\n          const type = finalizeEvolvingArrayType(getTypeFromFlowType(flowType));\n          const narrowedType = predicate.type ? narrowTypeByTypePredicate(\n            type,\n            predicate,\n            flow.node,\n            /*assumeTrue*/\n            true\n          ) : predicate.kind === 3 /* AssertsIdentifier */ && predicate.parameterIndex >= 0 && predicate.parameterIndex < flow.node.arguments.length ? narrowTypeByAssertion(type, flow.node.arguments[predicate.parameterIndex]) : type;\n          return narrowedType === type ? flowType : createFlowType(narrowedType, isIncomplete(flowType));\n        }\n        if (getReturnTypeOfSignature(signature).flags & 131072 /* Never */) {\n          return unreachableNeverType;\n        }\n      }\n      return void 0;\n    }\n    function getTypeAtFlowArrayMutation(flow) {\n      if (declaredType === autoType || declaredType === autoArrayType) {\n        const node = flow.node;\n        const expr = node.kind === 214 /* CallExpression */ ? node.expression.expression : node.left.expression;\n        if (isMatchingReference(reference, getReferenceCandidate(expr))) {\n          const flowType = getTypeAtFlowNode(flow.antecedent);\n          const type = getTypeFromFlowType(flowType);\n          if (getObjectFlags(type) & 256 /* EvolvingArray */) {\n            let evolvedType2 = type;\n            if (node.kind === 214 /* CallExpression */) {\n              for (const arg of node.arguments) {\n                evolvedType2 = addEvolvingArrayElementType(evolvedType2, arg);\n              }\n            } else {\n              const indexType = getContextFreeTypeOfExpression(node.left.argumentExpression);\n              if (isTypeAssignableToKind(indexType, 296 /* NumberLike */)) {\n                evolvedType2 = addEvolvingArrayElementType(evolvedType2, node.right);\n              }\n            }\n            return evolvedType2 === type ? flowType : createFlowType(evolvedType2, isIncomplete(flowType));\n          }\n          return flowType;\n        }\n      }\n      return void 0;\n    }\n    function getTypeAtFlowCondition(flow) {\n      const flowType = getTypeAtFlowNode(flow.antecedent);\n      const type = getTypeFromFlowType(flowType);\n      if (type.flags & 131072 /* Never */) {\n        return flowType;\n      }\n      const assumeTrue = (flow.flags & 32 /* TrueCondition */) !== 0;\n      const nonEvolvingType = finalizeEvolvingArrayType(type);\n      const narrowedType = narrowType(nonEvolvingType, flow.node, assumeTrue);\n      if (narrowedType === nonEvolvingType) {\n        return flowType;\n      }\n      return createFlowType(narrowedType, isIncomplete(flowType));\n    }\n    function getTypeAtSwitchClause(flow) {\n      const expr = skipParentheses(flow.node.switchStatement.expression);\n      const flowType = getTypeAtFlowNode(flow.antecedent);\n      let type = getTypeFromFlowType(flowType);\n      if (isMatchingReference(reference, expr)) {\n        type = narrowTypeBySwitchOnDiscriminant(type, flow.node);\n      } else if (expr.kind === 222 /* TypeOfExpression */ && isMatchingReference(reference, expr.expression)) {\n        type = narrowTypeBySwitchOnTypeOf(type, flow.node);\n      } else if (expr.kind === 112 /* TrueKeyword */) {\n        type = narrowTypeBySwitchOnTrue(type, flow.node);\n      } else {\n        if (strictNullChecks) {\n          if (optionalChainContainsReference(expr, reference)) {\n            type = narrowTypeBySwitchOptionalChainContainment(type, flow.node, (t) => !(t.flags & (32768 /* Undefined */ | 131072 /* Never */)));\n          } else if (expr.kind === 222 /* TypeOfExpression */ && optionalChainContainsReference(expr.expression, reference)) {\n            type = narrowTypeBySwitchOptionalChainContainment(type, flow.node, (t) => !(t.flags & 131072 /* Never */ || t.flags & 128 /* StringLiteral */ && t.value === \"undefined\"));\n          }\n        }\n        const access = getDiscriminantPropertyAccess(expr, type);\n        if (access) {\n          type = narrowTypeBySwitchOnDiscriminantProperty(type, access, flow.node);\n        }\n      }\n      return createFlowType(type, isIncomplete(flowType));\n    }\n    function getTypeAtFlowBranchLabel(flow) {\n      const antecedentTypes = [];\n      let subtypeReduction = false;\n      let seenIncomplete = false;\n      let bypassFlow;\n      for (const antecedent of flow.antecedent) {\n        if (!bypassFlow && antecedent.flags & 128 /* SwitchClause */ && antecedent.node.clauseStart === antecedent.node.clauseEnd) {\n          bypassFlow = antecedent;\n          continue;\n        }\n        const flowType = getTypeAtFlowNode(antecedent);\n        const type = getTypeFromFlowType(flowType);\n        if (type === declaredType && declaredType === initialType) {\n          return type;\n        }\n        pushIfUnique(antecedentTypes, type);\n        if (!isTypeSubsetOf(type, initialType)) {\n          subtypeReduction = true;\n        }\n        if (isIncomplete(flowType)) {\n          seenIncomplete = true;\n        }\n      }\n      if (bypassFlow) {\n        const flowType = getTypeAtFlowNode(bypassFlow);\n        const type = getTypeFromFlowType(flowType);\n        if (!(type.flags & 131072 /* Never */) && !contains(antecedentTypes, type) && !isExhaustiveSwitchStatement(bypassFlow.node.switchStatement)) {\n          if (type === declaredType && declaredType === initialType) {\n            return type;\n          }\n          antecedentTypes.push(type);\n          if (!isTypeSubsetOf(type, initialType)) {\n            subtypeReduction = true;\n          }\n          if (isIncomplete(flowType)) {\n            seenIncomplete = true;\n          }\n        }\n      }\n      return createFlowType(getUnionOrEvolvingArrayType(antecedentTypes, subtypeReduction ? 2 /* Subtype */ : 1 /* Literal */), seenIncomplete);\n    }\n    function getTypeAtFlowLoopLabel(flow) {\n      const id = getFlowNodeId(flow);\n      const cache = flowLoopCaches[id] || (flowLoopCaches[id] = /* @__PURE__ */ new Map());\n      const key2 = getOrSetCacheKey();\n      if (!key2) {\n        return declaredType;\n      }\n      const cached = cache.get(key2);\n      if (cached) {\n        return cached;\n      }\n      for (let i = flowLoopStart; i < flowLoopCount; i++) {\n        if (flowLoopNodes[i] === flow && flowLoopKeys[i] === key2 && flowLoopTypes[i].length) {\n          return createFlowType(\n            getUnionOrEvolvingArrayType(flowLoopTypes[i], 1 /* Literal */),\n            /*incomplete*/\n            true\n          );\n        }\n      }\n      const antecedentTypes = [];\n      let subtypeReduction = false;\n      let firstAntecedentType;\n      for (const antecedent of flow.antecedent) {\n        let flowType;\n        if (!firstAntecedentType) {\n          flowType = firstAntecedentType = getTypeAtFlowNode(antecedent);\n        } else {\n          flowLoopNodes[flowLoopCount] = flow;\n          flowLoopKeys[flowLoopCount] = key2;\n          flowLoopTypes[flowLoopCount] = antecedentTypes;\n          flowLoopCount++;\n          const saveFlowTypeCache = flowTypeCache;\n          flowTypeCache = void 0;\n          flowType = getTypeAtFlowNode(antecedent);\n          flowTypeCache = saveFlowTypeCache;\n          flowLoopCount--;\n          const cached2 = cache.get(key2);\n          if (cached2) {\n            return cached2;\n          }\n        }\n        const type = getTypeFromFlowType(flowType);\n        pushIfUnique(antecedentTypes, type);\n        if (!isTypeSubsetOf(type, initialType)) {\n          subtypeReduction = true;\n        }\n        if (type === declaredType) {\n          break;\n        }\n      }\n      const result = getUnionOrEvolvingArrayType(antecedentTypes, subtypeReduction ? 2 /* Subtype */ : 1 /* Literal */);\n      if (isIncomplete(firstAntecedentType)) {\n        return createFlowType(\n          result,\n          /*incomplete*/\n          true\n        );\n      }\n      cache.set(key2, result);\n      return result;\n    }\n    function getUnionOrEvolvingArrayType(types, subtypeReduction) {\n      if (isEvolvingArrayTypeList(types)) {\n        return getEvolvingArrayType(getUnionType(map(types, getElementTypeOfEvolvingArrayType)));\n      }\n      const result = recombineUnknownType(getUnionType(sameMap(types, finalizeEvolvingArrayType), subtypeReduction));\n      if (result !== declaredType && result.flags & declaredType.flags & 1048576 /* Union */ && arrayIsEqualTo(result.types, declaredType.types)) {\n        return declaredType;\n      }\n      return result;\n    }\n    function getCandidateDiscriminantPropertyAccess(expr) {\n      if (isBindingPattern(reference) || isFunctionExpressionOrArrowFunction(reference) || isObjectLiteralMethod(reference)) {\n        if (isIdentifier(expr)) {\n          const symbol = getResolvedSymbol(expr);\n          const declaration = getExportSymbolOfValueSymbolIfExported(symbol).valueDeclaration;\n          if (declaration && (isBindingElement(declaration) || isParameter(declaration)) && reference === declaration.parent && !declaration.initializer && !declaration.dotDotDotToken) {\n            return declaration;\n          }\n        }\n      } else if (isAccessExpression(expr)) {\n        if (isMatchingReference(reference, expr.expression)) {\n          return expr;\n        }\n      } else if (isIdentifier(expr)) {\n        const symbol = getResolvedSymbol(expr);\n        if (isConstantVariable(symbol)) {\n          const declaration = symbol.valueDeclaration;\n          if (isVariableDeclaration(declaration) && !declaration.type && declaration.initializer && isAccessExpression(declaration.initializer) && isMatchingReference(reference, declaration.initializer.expression)) {\n            return declaration.initializer;\n          }\n          if (isBindingElement(declaration) && !declaration.initializer) {\n            const parent2 = declaration.parent.parent;\n            if (isVariableDeclaration(parent2) && !parent2.type && parent2.initializer && (isIdentifier(parent2.initializer) || isAccessExpression(parent2.initializer)) && isMatchingReference(reference, parent2.initializer)) {\n              return declaration;\n            }\n          }\n        }\n      }\n      return void 0;\n    }\n    function getDiscriminantPropertyAccess(expr, computedType) {\n      if (declaredType.flags & 1048576 /* Union */ || computedType.flags & 1048576 /* Union */) {\n        const access = getCandidateDiscriminantPropertyAccess(expr);\n        if (access) {\n          const name = getAccessedPropertyName(access);\n          if (name) {\n            const type = declaredType.flags & 1048576 /* Union */ && isTypeSubsetOf(computedType, declaredType) ? declaredType : computedType;\n            if (isDiscriminantProperty(type, name)) {\n              return access;\n            }\n          }\n        }\n      }\n      return void 0;\n    }\n    function narrowTypeByDiscriminant(type, access, narrowType2) {\n      const propName = getAccessedPropertyName(access);\n      if (propName === void 0) {\n        return type;\n      }\n      const optionalChain = isOptionalChain(access);\n      const removeNullable = strictNullChecks && (optionalChain || isNonNullAccess(access)) && maybeTypeOfKind(type, 98304 /* Nullable */);\n      let propType = getTypeOfPropertyOfType(removeNullable ? getTypeWithFacts(type, 2097152 /* NEUndefinedOrNull */) : type, propName);\n      if (!propType) {\n        return type;\n      }\n      propType = removeNullable && optionalChain ? getOptionalType(propType) : propType;\n      const narrowedPropType = narrowType2(propType);\n      return filterType(type, (t) => {\n        const discriminantType = getTypeOfPropertyOrIndexSignatureOfType(t, propName) || unknownType;\n        return !(discriminantType.flags & 131072 /* Never */) && !(narrowedPropType.flags & 131072 /* Never */) && areTypesComparable(narrowedPropType, discriminantType);\n      });\n    }\n    function narrowTypeByDiscriminantProperty(type, access, operator, value, assumeTrue) {\n      if ((operator === 37 /* EqualsEqualsEqualsToken */ || operator === 38 /* ExclamationEqualsEqualsToken */) && type.flags & 1048576 /* Union */) {\n        const keyPropertyName = getKeyPropertyName(type);\n        if (keyPropertyName && keyPropertyName === getAccessedPropertyName(access)) {\n          const candidate = getConstituentTypeForKeyType(type, getTypeOfExpression(value));\n          if (candidate) {\n            return operator === (assumeTrue ? 37 /* EqualsEqualsEqualsToken */ : 38 /* ExclamationEqualsEqualsToken */) ? candidate : isUnitType(getTypeOfPropertyOfType(candidate, keyPropertyName) || unknownType) ? removeType(type, candidate) : type;\n          }\n        }\n      }\n      return narrowTypeByDiscriminant(type, access, (t) => narrowTypeByEquality(t, operator, value, assumeTrue));\n    }\n    function narrowTypeBySwitchOnDiscriminantProperty(type, access, data) {\n      if (data.clauseStart < data.clauseEnd && type.flags & 1048576 /* Union */ && getKeyPropertyName(type) === getAccessedPropertyName(access)) {\n        const clauseTypes = getSwitchClauseTypes(data.switchStatement).slice(data.clauseStart, data.clauseEnd);\n        const candidate = getUnionType(map(clauseTypes, (t) => getConstituentTypeForKeyType(type, t) || unknownType));\n        if (candidate !== unknownType) {\n          return candidate;\n        }\n      }\n      return narrowTypeByDiscriminant(type, access, (t) => narrowTypeBySwitchOnDiscriminant(t, data));\n    }\n    function narrowTypeByTruthiness(type, expr, assumeTrue) {\n      if (isMatchingReference(reference, expr)) {\n        return getAdjustedTypeWithFacts(type, assumeTrue ? 4194304 /* Truthy */ : 8388608 /* Falsy */);\n      }\n      if (strictNullChecks && assumeTrue && optionalChainContainsReference(expr, reference)) {\n        type = getAdjustedTypeWithFacts(type, 2097152 /* NEUndefinedOrNull */);\n      }\n      const access = getDiscriminantPropertyAccess(expr, type);\n      if (access) {\n        return narrowTypeByDiscriminant(type, access, (t) => getTypeWithFacts(t, assumeTrue ? 4194304 /* Truthy */ : 8388608 /* Falsy */));\n      }\n      return type;\n    }\n    function isTypePresencePossible(type, propName, assumeTrue) {\n      const prop = getPropertyOfType(type, propName);\n      return prop ? !!(prop.flags & 16777216 /* Optional */ || getCheckFlags(prop) & 48 /* Partial */) || assumeTrue : !!getApplicableIndexInfoForName(type, propName) || !assumeTrue;\n    }\n    function narrowTypeByInKeyword(type, nameType, assumeTrue) {\n      const name = getPropertyNameFromType(nameType);\n      const isKnownProperty2 = someType(type, (t) => isTypePresencePossible(\n        t,\n        name,\n        /*assumeTrue*/\n        true\n      ));\n      if (isKnownProperty2) {\n        return filterType(type, (t) => isTypePresencePossible(t, name, assumeTrue));\n      }\n      if (assumeTrue) {\n        const recordSymbol = getGlobalRecordSymbol();\n        if (recordSymbol) {\n          return getIntersectionType([type, getTypeAliasInstantiation(recordSymbol, [nameType, unknownType])]);\n        }\n      }\n      return type;\n    }\n    function narrowTypeByBooleanComparison(type, expr, bool, operator, assumeTrue) {\n      assumeTrue = assumeTrue !== (bool.kind === 112 /* TrueKeyword */) !== (operator !== 38 /* ExclamationEqualsEqualsToken */ && operator !== 36 /* ExclamationEqualsToken */);\n      return narrowType(type, expr, assumeTrue);\n    }\n    function narrowTypeByBinaryExpression(type, expr, assumeTrue) {\n      switch (expr.operatorToken.kind) {\n        case 64 /* EqualsToken */:\n        case 76 /* BarBarEqualsToken */:\n        case 77 /* AmpersandAmpersandEqualsToken */:\n        case 78 /* QuestionQuestionEqualsToken */:\n          return narrowTypeByTruthiness(narrowType(type, expr.right, assumeTrue), expr.left, assumeTrue);\n        case 35 /* EqualsEqualsToken */:\n        case 36 /* ExclamationEqualsToken */:\n        case 37 /* EqualsEqualsEqualsToken */:\n        case 38 /* ExclamationEqualsEqualsToken */:\n          const operator = expr.operatorToken.kind;\n          const left = getReferenceCandidate(expr.left);\n          const right = getReferenceCandidate(expr.right);\n          if (left.kind === 222 /* TypeOfExpression */ && isStringLiteralLike(right)) {\n            return narrowTypeByTypeof(type, left, operator, right, assumeTrue);\n          }\n          if (right.kind === 222 /* TypeOfExpression */ && isStringLiteralLike(left)) {\n            return narrowTypeByTypeof(type, right, operator, left, assumeTrue);\n          }\n          if (isMatchingReference(reference, left)) {\n            return narrowTypeByEquality(type, operator, right, assumeTrue);\n          }\n          if (isMatchingReference(reference, right)) {\n            return narrowTypeByEquality(type, operator, left, assumeTrue);\n          }\n          if (strictNullChecks) {\n            if (optionalChainContainsReference(left, reference)) {\n              type = narrowTypeByOptionalChainContainment(type, operator, right, assumeTrue);\n            } else if (optionalChainContainsReference(right, reference)) {\n              type = narrowTypeByOptionalChainContainment(type, operator, left, assumeTrue);\n            }\n          }\n          const leftAccess = getDiscriminantPropertyAccess(left, type);\n          if (leftAccess) {\n            return narrowTypeByDiscriminantProperty(type, leftAccess, operator, right, assumeTrue);\n          }\n          const rightAccess = getDiscriminantPropertyAccess(right, type);\n          if (rightAccess) {\n            return narrowTypeByDiscriminantProperty(type, rightAccess, operator, left, assumeTrue);\n          }\n          if (isMatchingConstructorReference(left)) {\n            return narrowTypeByConstructor(type, operator, right, assumeTrue);\n          }\n          if (isMatchingConstructorReference(right)) {\n            return narrowTypeByConstructor(type, operator, left, assumeTrue);\n          }\n          if (isBooleanLiteral(right) && !isAccessExpression(left)) {\n            return narrowTypeByBooleanComparison(type, left, right, operator, assumeTrue);\n          }\n          if (isBooleanLiteral(left) && !isAccessExpression(right)) {\n            return narrowTypeByBooleanComparison(type, right, left, operator, assumeTrue);\n          }\n          break;\n        case 104 /* InstanceOfKeyword */:\n          return narrowTypeByInstanceof(type, expr, assumeTrue);\n        case 103 /* InKeyword */:\n          if (isPrivateIdentifier(expr.left)) {\n            return narrowTypeByPrivateIdentifierInInExpression(type, expr, assumeTrue);\n          }\n          const target = getReferenceCandidate(expr.right);\n          if (containsMissingType(type) && isAccessExpression(reference) && isMatchingReference(reference.expression, target)) {\n            const leftType = getTypeOfExpression(expr.left);\n            if (isTypeUsableAsPropertyName(leftType) && getAccessedPropertyName(reference) === getPropertyNameFromType(leftType)) {\n              return getTypeWithFacts(type, assumeTrue ? 524288 /* NEUndefined */ : 65536 /* EQUndefined */);\n            }\n          }\n          if (isMatchingReference(reference, target)) {\n            const leftType = getTypeOfExpression(expr.left);\n            if (isTypeUsableAsPropertyName(leftType)) {\n              return narrowTypeByInKeyword(type, leftType, assumeTrue);\n            }\n          }\n          break;\n        case 28 /* CommaToken */:\n          return narrowType(type, expr.right, assumeTrue);\n        // Ordinarily we won't see && and || expressions in control flow analysis because the Binder breaks those\n        // expressions down to individual conditional control flows. However, we may encounter them when analyzing\n        // aliased conditional expressions.\n        case 56 /* AmpersandAmpersandToken */:\n          return assumeTrue ? narrowType(\n            narrowType(\n              type,\n              expr.left,\n              /*assumeTrue*/\n              true\n            ),\n            expr.right,\n            /*assumeTrue*/\n            true\n          ) : getUnionType([narrowType(\n            type,\n            expr.left,\n            /*assumeTrue*/\n            false\n          ), narrowType(\n            type,\n            expr.right,\n            /*assumeTrue*/\n            false\n          )]);\n        case 57 /* BarBarToken */:\n          return assumeTrue ? getUnionType([narrowType(\n            type,\n            expr.left,\n            /*assumeTrue*/\n            true\n          ), narrowType(\n            type,\n            expr.right,\n            /*assumeTrue*/\n            true\n          )]) : narrowType(\n            narrowType(\n              type,\n              expr.left,\n              /*assumeTrue*/\n              false\n            ),\n            expr.right,\n            /*assumeTrue*/\n            false\n          );\n      }\n      return type;\n    }\n    function narrowTypeByPrivateIdentifierInInExpression(type, expr, assumeTrue) {\n      const target = getReferenceCandidate(expr.right);\n      if (!isMatchingReference(reference, target)) {\n        return type;\n      }\n      Debug.assertNode(expr.left, isPrivateIdentifier);\n      const symbol = getSymbolForPrivateIdentifierExpression(expr.left);\n      if (symbol === void 0) {\n        return type;\n      }\n      const classSymbol = symbol.parent;\n      const targetType = hasStaticModifier(Debug.checkDefined(symbol.valueDeclaration, \"should always have a declaration\")) ? getTypeOfSymbol(classSymbol) : getDeclaredTypeOfSymbol(classSymbol);\n      return getNarrowedType(\n        type,\n        targetType,\n        assumeTrue,\n        /*checkDerived*/\n        true\n      );\n    }\n    function narrowTypeByOptionalChainContainment(type, operator, value, assumeTrue) {\n      const equalsOperator = operator === 35 /* EqualsEqualsToken */ || operator === 37 /* EqualsEqualsEqualsToken */;\n      const nullableFlags = operator === 35 /* EqualsEqualsToken */ || operator === 36 /* ExclamationEqualsToken */ ? 98304 /* Nullable */ : 32768 /* Undefined */;\n      const valueType = getTypeOfExpression(value);\n      const removeNullable = equalsOperator !== assumeTrue && everyType(valueType, (t) => !!(t.flags & nullableFlags)) || equalsOperator === assumeTrue && everyType(valueType, (t) => !(t.flags & (3 /* AnyOrUnknown */ | nullableFlags)));\n      return removeNullable ? getAdjustedTypeWithFacts(type, 2097152 /* NEUndefinedOrNull */) : type;\n    }\n    function narrowTypeByEquality(type, operator, value, assumeTrue) {\n      if (type.flags & 1 /* Any */) {\n        return type;\n      }\n      if (operator === 36 /* ExclamationEqualsToken */ || operator === 38 /* ExclamationEqualsEqualsToken */) {\n        assumeTrue = !assumeTrue;\n      }\n      const valueType = getTypeOfExpression(value);\n      const doubleEquals = operator === 35 /* EqualsEqualsToken */ || operator === 36 /* ExclamationEqualsToken */;\n      if (valueType.flags & 98304 /* Nullable */) {\n        if (!strictNullChecks) {\n          return type;\n        }\n        const facts = doubleEquals ? assumeTrue ? 262144 /* EQUndefinedOrNull */ : 2097152 /* NEUndefinedOrNull */ : valueType.flags & 65536 /* Null */ ? assumeTrue ? 131072 /* EQNull */ : 1048576 /* NENull */ : assumeTrue ? 65536 /* EQUndefined */ : 524288 /* NEUndefined */;\n        return getAdjustedTypeWithFacts(type, facts);\n      }\n      if (assumeTrue) {\n        if (!doubleEquals && (type.flags & 2 /* Unknown */ || someType(type, isEmptyAnonymousObjectType))) {\n          if (valueType.flags & (402784252 /* Primitive */ | 67108864 /* NonPrimitive */) || isEmptyAnonymousObjectType(valueType)) {\n            return valueType;\n          }\n          if (valueType.flags & 524288 /* Object */) {\n            return nonPrimitiveType;\n          }\n        }\n        const filteredType = filterType(type, (t) => areTypesComparable(t, valueType) || doubleEquals && isCoercibleUnderDoubleEquals(t, valueType));\n        return replacePrimitivesWithLiterals(filteredType, valueType);\n      }\n      if (isUnitType(valueType)) {\n        return filterType(type, (t) => !(isUnitLikeType(t) && areTypesComparable(t, valueType)));\n      }\n      return type;\n    }\n    function narrowTypeByTypeof(type, typeOfExpr, operator, literal, assumeTrue) {\n      if (operator === 36 /* ExclamationEqualsToken */ || operator === 38 /* ExclamationEqualsEqualsToken */) {\n        assumeTrue = !assumeTrue;\n      }\n      const target = getReferenceCandidate(typeOfExpr.expression);\n      if (!isMatchingReference(reference, target)) {\n        if (strictNullChecks && optionalChainContainsReference(target, reference) && assumeTrue === (literal.text !== \"undefined\")) {\n          type = getAdjustedTypeWithFacts(type, 2097152 /* NEUndefinedOrNull */);\n        }\n        const propertyAccess = getDiscriminantPropertyAccess(target, type);\n        if (propertyAccess) {\n          return narrowTypeByDiscriminant(type, propertyAccess, (t) => narrowTypeByLiteralExpression(t, literal, assumeTrue));\n        }\n        return type;\n      }\n      return narrowTypeByLiteralExpression(type, literal, assumeTrue);\n    }\n    function narrowTypeByLiteralExpression(type, literal, assumeTrue) {\n      return assumeTrue ? narrowTypeByTypeName(type, literal.text) : getAdjustedTypeWithFacts(type, typeofNEFacts.get(literal.text) || 32768 /* TypeofNEHostObject */);\n    }\n    function narrowTypeBySwitchOptionalChainContainment(type, { switchStatement, clauseStart, clauseEnd }, clauseCheck) {\n      const everyClauseChecks = clauseStart !== clauseEnd && every(getSwitchClauseTypes(switchStatement).slice(clauseStart, clauseEnd), clauseCheck);\n      return everyClauseChecks ? getTypeWithFacts(type, 2097152 /* NEUndefinedOrNull */) : type;\n    }\n    function narrowTypeBySwitchOnDiscriminant(type, { switchStatement, clauseStart, clauseEnd }) {\n      const switchTypes = getSwitchClauseTypes(switchStatement);\n      if (!switchTypes.length) {\n        return type;\n      }\n      const clauseTypes = switchTypes.slice(clauseStart, clauseEnd);\n      const hasDefaultClause = clauseStart === clauseEnd || contains(clauseTypes, neverType);\n      if (type.flags & 2 /* Unknown */ && !hasDefaultClause) {\n        let groundClauseTypes;\n        for (let i = 0; i < clauseTypes.length; i += 1) {\n          const t = clauseTypes[i];\n          if (t.flags & (402784252 /* Primitive */ | 67108864 /* NonPrimitive */)) {\n            if (groundClauseTypes !== void 0) {\n              groundClauseTypes.push(t);\n            }\n          } else if (t.flags & 524288 /* Object */) {\n            if (groundClauseTypes === void 0) {\n              groundClauseTypes = clauseTypes.slice(0, i);\n            }\n            groundClauseTypes.push(nonPrimitiveType);\n          } else {\n            return type;\n          }\n        }\n        return getUnionType(groundClauseTypes === void 0 ? clauseTypes : groundClauseTypes);\n      }\n      const discriminantType = getUnionType(clauseTypes);\n      const caseType = discriminantType.flags & 131072 /* Never */ ? neverType : replacePrimitivesWithLiterals(filterType(type, (t) => areTypesComparable(discriminantType, t)), discriminantType);\n      if (!hasDefaultClause) {\n        return caseType;\n      }\n      const defaultType = filterType(type, (t) => !(isUnitLikeType(t) && contains(switchTypes, t.flags & 32768 /* Undefined */ ? undefinedType : getRegularTypeOfLiteralType(extractUnitType(t)))));\n      return caseType.flags & 131072 /* Never */ ? defaultType : getUnionType([caseType, defaultType]);\n    }\n    function narrowTypeByTypeName(type, typeName) {\n      switch (typeName) {\n        case \"string\":\n          return narrowTypeByTypeFacts(type, stringType, 1 /* TypeofEQString */);\n        case \"number\":\n          return narrowTypeByTypeFacts(type, numberType, 2 /* TypeofEQNumber */);\n        case \"bigint\":\n          return narrowTypeByTypeFacts(type, bigintType, 4 /* TypeofEQBigInt */);\n        case \"boolean\":\n          return narrowTypeByTypeFacts(type, booleanType, 8 /* TypeofEQBoolean */);\n        case \"symbol\":\n          return narrowTypeByTypeFacts(type, esSymbolType, 16 /* TypeofEQSymbol */);\n        case \"object\":\n          return type.flags & 1 /* Any */ ? type : getUnionType([narrowTypeByTypeFacts(type, nonPrimitiveType, 32 /* TypeofEQObject */), narrowTypeByTypeFacts(type, nullType, 131072 /* EQNull */)]);\n        case \"function\":\n          return type.flags & 1 /* Any */ ? type : narrowTypeByTypeFacts(type, globalFunctionType, 64 /* TypeofEQFunction */);\n        case \"undefined\":\n          return narrowTypeByTypeFacts(type, undefinedType, 65536 /* EQUndefined */);\n      }\n      return narrowTypeByTypeFacts(type, nonPrimitiveType, 128 /* TypeofEQHostObject */);\n    }\n    function narrowTypeByTypeFacts(type, impliedType, facts) {\n      return mapType(type, (t) => (\n        // We first check if a constituent is a subtype of the implied type. If so, we either keep or eliminate\n        // the constituent based on its type facts. We use the strict subtype relation because it treats `object`\n        // as a subtype of `{}`, and we need the type facts check because function types are subtypes of `object`,\n        // but are classified as \"function\" according to `typeof`.\n        isTypeRelatedTo(t, impliedType, strictSubtypeRelation) ? hasTypeFacts(t, facts) ? t : neverType : (\n          // We next check if the consituent is a supertype of the implied type. If so, we substitute the implied\n          // type. This handles top types like `unknown` and `{}`, and supertypes like `{ toString(): string }`.\n          isTypeSubtypeOf(impliedType, t) ? impliedType : (\n            // Neither the constituent nor the implied type is a subtype of the other, however their domains may still\n            // overlap. For example, an unconstrained type parameter and type `string`. If the type facts indicate\n            // possible overlap, we form an intersection. Otherwise, we eliminate the constituent.\n            hasTypeFacts(t, facts) ? getIntersectionType([t, impliedType]) : neverType\n          )\n        )\n      ));\n    }\n    function narrowTypeBySwitchOnTypeOf(type, { switchStatement, clauseStart, clauseEnd }) {\n      const witnesses = getSwitchClauseTypeOfWitnesses(switchStatement);\n      if (!witnesses) {\n        return type;\n      }\n      const defaultIndex = findIndex(switchStatement.caseBlock.clauses, (clause) => clause.kind === 298 /* DefaultClause */);\n      const hasDefaultClause = clauseStart === clauseEnd || defaultIndex >= clauseStart && defaultIndex < clauseEnd;\n      if (hasDefaultClause) {\n        const notEqualFacts = getNotEqualFactsFromTypeofSwitch(clauseStart, clauseEnd, witnesses);\n        return filterType(type, (t) => getTypeFacts(t, notEqualFacts) === notEqualFacts);\n      }\n      const clauseWitnesses = witnesses.slice(clauseStart, clauseEnd);\n      return getUnionType(map(clauseWitnesses, (text) => text ? narrowTypeByTypeName(type, text) : neverType));\n    }\n    function narrowTypeBySwitchOnTrue(type, { switchStatement, clauseStart, clauseEnd }) {\n      const defaultIndex = findIndex(switchStatement.caseBlock.clauses, (clause) => clause.kind === 298 /* DefaultClause */);\n      const hasDefaultClause = clauseStart === clauseEnd || defaultIndex >= clauseStart && defaultIndex < clauseEnd;\n      for (let i = 0; i < clauseStart; i++) {\n        const clause = switchStatement.caseBlock.clauses[i];\n        if (clause.kind === 297 /* CaseClause */) {\n          type = narrowType(\n            type,\n            clause.expression,\n            /*assumeTrue*/\n            false\n          );\n        }\n      }\n      if (hasDefaultClause) {\n        for (let i = clauseEnd; i < switchStatement.caseBlock.clauses.length; i++) {\n          const clause = switchStatement.caseBlock.clauses[i];\n          if (clause.kind === 297 /* CaseClause */) {\n            type = narrowType(\n              type,\n              clause.expression,\n              /*assumeTrue*/\n              false\n            );\n          }\n        }\n        return type;\n      }\n      const clauses = switchStatement.caseBlock.clauses.slice(clauseStart, clauseEnd);\n      return getUnionType(map(clauses, (clause) => clause.kind === 297 /* CaseClause */ ? narrowType(\n        type,\n        clause.expression,\n        /*assumeTrue*/\n        true\n      ) : neverType));\n    }\n    function isMatchingConstructorReference(expr) {\n      return (isPropertyAccessExpression(expr) && idText(expr.name) === \"constructor\" || isElementAccessExpression(expr) && isStringLiteralLike(expr.argumentExpression) && expr.argumentExpression.text === \"constructor\") && isMatchingReference(reference, expr.expression);\n    }\n    function narrowTypeByConstructor(type, operator, identifier, assumeTrue) {\n      if (assumeTrue ? operator !== 35 /* EqualsEqualsToken */ && operator !== 37 /* EqualsEqualsEqualsToken */ : operator !== 36 /* ExclamationEqualsToken */ && operator !== 38 /* ExclamationEqualsEqualsToken */) {\n        return type;\n      }\n      const identifierType = getTypeOfExpression(identifier);\n      if (!isFunctionType(identifierType) && !isConstructorType(identifierType)) {\n        return type;\n      }\n      const prototypeProperty = getPropertyOfType(identifierType, \"prototype\");\n      if (!prototypeProperty) {\n        return type;\n      }\n      const prototypeType = getTypeOfSymbol(prototypeProperty);\n      const candidate = !isTypeAny(prototypeType) ? prototypeType : void 0;\n      if (!candidate || candidate === globalObjectType || candidate === globalFunctionType) {\n        return type;\n      }\n      if (isTypeAny(type)) {\n        return candidate;\n      }\n      return filterType(type, (t) => isConstructedBy(t, candidate));\n      function isConstructedBy(source, target) {\n        if (source.flags & 524288 /* Object */ && getObjectFlags(source) & 1 /* Class */ || target.flags & 524288 /* Object */ && getObjectFlags(target) & 1 /* Class */) {\n          return source.symbol === target.symbol;\n        }\n        return isTypeSubtypeOf(source, target);\n      }\n    }\n    function narrowTypeByInstanceof(type, expr, assumeTrue) {\n      const left = getReferenceCandidate(expr.left);\n      if (!isMatchingReference(reference, left)) {\n        if (assumeTrue && strictNullChecks && optionalChainContainsReference(left, reference)) {\n          return getAdjustedTypeWithFacts(type, 2097152 /* NEUndefinedOrNull */);\n        }\n        return type;\n      }\n      const right = expr.right;\n      const rightType = getTypeOfExpression(right);\n      if (!isTypeDerivedFrom(rightType, globalObjectType)) {\n        return type;\n      }\n      const signature = getEffectsSignature(expr);\n      const predicate = signature && getTypePredicateOfSignature(signature);\n      if (predicate && predicate.kind === 1 /* Identifier */ && predicate.parameterIndex === 0) {\n        return getNarrowedType(\n          type,\n          predicate.type,\n          assumeTrue,\n          /*checkDerived*/\n          true\n        );\n      }\n      if (!isTypeDerivedFrom(rightType, globalFunctionType)) {\n        return type;\n      }\n      const instanceType = mapType(rightType, getInstanceType);\n      if (isTypeAny(type) && (instanceType === globalObjectType || instanceType === globalFunctionType) || !assumeTrue && !(instanceType.flags & 524288 /* Object */ && !isEmptyAnonymousObjectType(instanceType))) {\n        return type;\n      }\n      return getNarrowedType(\n        type,\n        instanceType,\n        assumeTrue,\n        /*checkDerived*/\n        true\n      );\n    }\n    function getInstanceType(constructorType) {\n      const prototypePropertyType = getTypeOfPropertyOfType(constructorType, \"prototype\");\n      if (prototypePropertyType && !isTypeAny(prototypePropertyType)) {\n        return prototypePropertyType;\n      }\n      const constructSignatures = getSignaturesOfType(constructorType, 1 /* Construct */);\n      if (constructSignatures.length) {\n        return getUnionType(map(constructSignatures, (signature) => getReturnTypeOfSignature(getErasedSignature(signature))));\n      }\n      return emptyObjectType;\n    }\n    function getNarrowedType(type, candidate, assumeTrue, checkDerived) {\n      const key2 = type.flags & 1048576 /* Union */ ? `N${getTypeId(type)},${getTypeId(candidate)},${(assumeTrue ? 1 : 0) | (checkDerived ? 2 : 0)}` : void 0;\n      return getCachedType(key2) ?? setCachedType(key2, getNarrowedTypeWorker(type, candidate, assumeTrue, checkDerived));\n    }\n    function getNarrowedTypeWorker(type, candidate, assumeTrue, checkDerived) {\n      if (!assumeTrue) {\n        if (type === candidate) {\n          return neverType;\n        }\n        if (checkDerived) {\n          return filterType(type, (t) => !isTypeDerivedFrom(t, candidate));\n        }\n        type = type.flags & 2 /* Unknown */ ? unknownUnionType : type;\n        const trueType2 = getNarrowedType(\n          type,\n          candidate,\n          /*assumeTrue*/\n          true,\n          /*checkDerived*/\n          false\n        );\n        return recombineUnknownType(filterType(type, (t) => !isTypeSubsetOf(t, trueType2)));\n      }\n      if (type.flags & 3 /* AnyOrUnknown */) {\n        return candidate;\n      }\n      if (type === candidate) {\n        return candidate;\n      }\n      const isRelated = checkDerived ? isTypeDerivedFrom : isTypeSubtypeOf;\n      const keyPropertyName = type.flags & 1048576 /* Union */ ? getKeyPropertyName(type) : void 0;\n      const narrowedType = mapType(candidate, (c) => {\n        const discriminant = keyPropertyName && getTypeOfPropertyOfType(c, keyPropertyName);\n        const matching = discriminant && getConstituentTypeForKeyType(type, discriminant);\n        const directlyRelated = mapType(\n          matching || type,\n          checkDerived ? (t) => isTypeDerivedFrom(t, c) ? t : isTypeDerivedFrom(c, t) ? c : neverType : (t) => isTypeStrictSubtypeOf(t, c) ? t : isTypeStrictSubtypeOf(c, t) ? c : isTypeSubtypeOf(t, c) ? t : isTypeSubtypeOf(c, t) ? c : neverType\n        );\n        return directlyRelated.flags & 131072 /* Never */ ? mapType(type, (t) => maybeTypeOfKind(t, 465829888 /* Instantiable */) && isRelated(c, getBaseConstraintOfType(t) || unknownType) ? getIntersectionType([t, c]) : neverType) : directlyRelated;\n      });\n      return !(narrowedType.flags & 131072 /* Never */) ? narrowedType : isTypeSubtypeOf(candidate, type) ? candidate : isTypeAssignableTo(type, candidate) ? type : isTypeAssignableTo(candidate, type) ? candidate : getIntersectionType([type, candidate]);\n    }\n    function narrowTypeByCallExpression(type, callExpression, assumeTrue) {\n      if (hasMatchingArgument(callExpression, reference)) {\n        const signature = assumeTrue || !isCallChain(callExpression) ? getEffectsSignature(callExpression) : void 0;\n        const predicate = signature && getTypePredicateOfSignature(signature);\n        if (predicate && (predicate.kind === 0 /* This */ || predicate.kind === 1 /* Identifier */)) {\n          return narrowTypeByTypePredicate(type, predicate, callExpression, assumeTrue);\n        }\n      }\n      if (containsMissingType(type) && isAccessExpression(reference) && isPropertyAccessExpression(callExpression.expression)) {\n        const callAccess = callExpression.expression;\n        if (isMatchingReference(reference.expression, getReferenceCandidate(callAccess.expression)) && isIdentifier(callAccess.name) && callAccess.name.escapedText === \"hasOwnProperty\" && callExpression.arguments.length === 1) {\n          const argument = callExpression.arguments[0];\n          if (isStringLiteralLike(argument) && getAccessedPropertyName(reference) === escapeLeadingUnderscores(argument.text)) {\n            return getTypeWithFacts(type, assumeTrue ? 524288 /* NEUndefined */ : 65536 /* EQUndefined */);\n          }\n        }\n      }\n      return type;\n    }\n    function narrowTypeByTypePredicate(type, predicate, callExpression, assumeTrue) {\n      if (predicate.type && !(isTypeAny(type) && (predicate.type === globalObjectType || predicate.type === globalFunctionType))) {\n        const predicateArgument = getTypePredicateArgument(predicate, callExpression);\n        if (predicateArgument) {\n          if (isMatchingReference(reference, predicateArgument)) {\n            return getNarrowedType(\n              type,\n              predicate.type,\n              assumeTrue,\n              /*checkDerived*/\n              false\n            );\n          }\n          if (strictNullChecks && optionalChainContainsReference(predicateArgument, reference) && (assumeTrue && !hasTypeFacts(predicate.type, 65536 /* EQUndefined */) || !assumeTrue && everyType(predicate.type, isNullableType))) {\n            type = getAdjustedTypeWithFacts(type, 2097152 /* NEUndefinedOrNull */);\n          }\n          const access = getDiscriminantPropertyAccess(predicateArgument, type);\n          if (access) {\n            return narrowTypeByDiscriminant(type, access, (t) => getNarrowedType(\n              t,\n              predicate.type,\n              assumeTrue,\n              /*checkDerived*/\n              false\n            ));\n          }\n        }\n      }\n      return type;\n    }\n    function narrowType(type, expr, assumeTrue) {\n      if (isExpressionOfOptionalChainRoot(expr) || isBinaryExpression(expr.parent) && (expr.parent.operatorToken.kind === 61 /* QuestionQuestionToken */ || expr.parent.operatorToken.kind === 78 /* QuestionQuestionEqualsToken */) && expr.parent.left === expr) {\n        return narrowTypeByOptionality(type, expr, assumeTrue);\n      }\n      switch (expr.kind) {\n        case 80 /* Identifier */:\n          if (!isMatchingReference(reference, expr) && inlineLevel < 5) {\n            const symbol = getResolvedSymbol(expr);\n            if (isConstantVariable(symbol)) {\n              const declaration = symbol.valueDeclaration;\n              if (declaration && isVariableDeclaration(declaration) && !declaration.type && declaration.initializer && isConstantReference(reference)) {\n                inlineLevel++;\n                const result = narrowType(type, declaration.initializer, assumeTrue);\n                inlineLevel--;\n                return result;\n              }\n            }\n          }\n        // falls through\n        case 110 /* ThisKeyword */:\n        case 108 /* SuperKeyword */:\n        case 212 /* PropertyAccessExpression */:\n        case 213 /* ElementAccessExpression */:\n          return narrowTypeByTruthiness(type, expr, assumeTrue);\n        case 214 /* CallExpression */:\n          return narrowTypeByCallExpression(type, expr, assumeTrue);\n        case 218 /* ParenthesizedExpression */:\n        case 236 /* NonNullExpression */:\n        case 239 /* SatisfiesExpression */:\n          return narrowType(type, expr.expression, assumeTrue);\n        case 227 /* BinaryExpression */:\n          return narrowTypeByBinaryExpression(type, expr, assumeTrue);\n        case 225 /* PrefixUnaryExpression */:\n          if (expr.operator === 54 /* ExclamationToken */) {\n            return narrowType(type, expr.operand, !assumeTrue);\n          }\n          break;\n      }\n      return type;\n    }\n    function narrowTypeByOptionality(type, expr, assumePresent) {\n      if (isMatchingReference(reference, expr)) {\n        return getAdjustedTypeWithFacts(type, assumePresent ? 2097152 /* NEUndefinedOrNull */ : 262144 /* EQUndefinedOrNull */);\n      }\n      const access = getDiscriminantPropertyAccess(expr, type);\n      if (access) {\n        return narrowTypeByDiscriminant(type, access, (t) => getTypeWithFacts(t, assumePresent ? 2097152 /* NEUndefinedOrNull */ : 262144 /* EQUndefinedOrNull */));\n      }\n      return type;\n    }\n  }\n  function getTypeOfSymbolAtLocation(symbol, location) {\n    symbol = getExportSymbolOfValueSymbolIfExported(symbol);\n    if (location.kind === 80 /* Identifier */ || location.kind === 81 /* PrivateIdentifier */) {\n      if (isRightSideOfQualifiedNameOrPropertyAccess(location)) {\n        location = location.parent;\n      }\n      if (isExpressionNode(location) && (!isAssignmentTarget(location) || isWriteAccess(location))) {\n        const type = removeOptionalTypeMarker(\n          isWriteAccess(location) && location.kind === 212 /* PropertyAccessExpression */ ? checkPropertyAccessExpression(\n            location,\n            /*checkMode*/\n            void 0,\n            /*writeOnly*/\n            true\n          ) : getTypeOfExpression(location)\n        );\n        if (getExportSymbolOfValueSymbolIfExported(getNodeLinks(location).resolvedSymbol) === symbol) {\n          return type;\n        }\n      }\n    }\n    if (isDeclarationName(location) && isSetAccessor(location.parent) && getAnnotatedAccessorTypeNode(location.parent)) {\n      return getWriteTypeOfAccessors(location.parent.symbol);\n    }\n    return isRightSideOfAccessExpression(location) && isWriteAccess(location.parent) ? getWriteTypeOfSymbol(symbol) : getNonMissingTypeOfSymbol(symbol);\n  }\n  function getControlFlowContainer(node) {\n    return findAncestor(node.parent, (node2) => isFunctionLike(node2) && !getImmediatelyInvokedFunctionExpression(node2) || node2.kind === 269 /* ModuleBlock */ || node2.kind === 308 /* SourceFile */ || node2.kind === 173 /* PropertyDeclaration */);\n  }\n  function isSymbolAssignedDefinitely(symbol) {\n    if (symbol.lastAssignmentPos !== void 0) {\n      return symbol.lastAssignmentPos < 0;\n    }\n    return isSymbolAssigned(symbol) && symbol.lastAssignmentPos !== void 0 && symbol.lastAssignmentPos < 0;\n  }\n  function isSymbolAssigned(symbol) {\n    return !isPastLastAssignment(\n      symbol,\n      /*location*/\n      void 0\n    );\n  }\n  function isPastLastAssignment(symbol, location) {\n    const parent2 = findAncestor(symbol.valueDeclaration, isFunctionOrSourceFile);\n    if (!parent2) {\n      return false;\n    }\n    const links = getNodeLinks(parent2);\n    if (!(links.flags & 131072 /* AssignmentsMarked */)) {\n      links.flags |= 131072 /* AssignmentsMarked */;\n      if (!hasParentWithAssignmentsMarked(parent2)) {\n        markNodeAssignments(parent2);\n      }\n    }\n    return !symbol.lastAssignmentPos || location && Math.abs(symbol.lastAssignmentPos) < location.pos;\n  }\n  function isSomeSymbolAssigned(rootDeclaration) {\n    Debug.assert(isVariableDeclaration(rootDeclaration) || isParameter(rootDeclaration));\n    return isSomeSymbolAssignedWorker(rootDeclaration.name);\n  }\n  function isSomeSymbolAssignedWorker(node) {\n    if (node.kind === 80 /* Identifier */) {\n      return isSymbolAssigned(getSymbolOfDeclaration(node.parent));\n    }\n    return some(node.elements, (e) => e.kind !== 233 /* OmittedExpression */ && isSomeSymbolAssignedWorker(e.name));\n  }\n  function hasParentWithAssignmentsMarked(node) {\n    return !!findAncestor(node.parent, (node2) => isFunctionOrSourceFile(node2) && !!(getNodeLinks(node2).flags & 131072 /* AssignmentsMarked */));\n  }\n  function isFunctionOrSourceFile(node) {\n    return isFunctionLikeDeclaration(node) || isSourceFile(node);\n  }\n  function markNodeAssignments(node) {\n    switch (node.kind) {\n      case 80 /* Identifier */:\n        const assigmentTarget = getAssignmentTargetKind(node);\n        if (assigmentTarget !== 0 /* None */) {\n          const symbol = getResolvedSymbol(node);\n          const hasDefiniteAssignment = assigmentTarget === 1 /* Definite */ || symbol.lastAssignmentPos !== void 0 && symbol.lastAssignmentPos < 0;\n          if (isParameterOrMutableLocalVariable(symbol)) {\n            if (symbol.lastAssignmentPos === void 0 || Math.abs(symbol.lastAssignmentPos) !== Number.MAX_VALUE) {\n              const referencingFunction = findAncestor(node, isFunctionOrSourceFile);\n              const declaringFunction = findAncestor(symbol.valueDeclaration, isFunctionOrSourceFile);\n              symbol.lastAssignmentPos = referencingFunction === declaringFunction ? extendAssignmentPosition(node, symbol.valueDeclaration) : Number.MAX_VALUE;\n            }\n            if (hasDefiniteAssignment && symbol.lastAssignmentPos > 0) {\n              symbol.lastAssignmentPos *= -1;\n            }\n          }\n        }\n        return;\n      case 282 /* ExportSpecifier */:\n        const exportDeclaration = node.parent.parent;\n        const name = node.propertyName || node.name;\n        if (!node.isTypeOnly && !exportDeclaration.isTypeOnly && !exportDeclaration.moduleSpecifier && name.kind !== 11 /* StringLiteral */) {\n          const symbol = resolveEntityName(\n            name,\n            111551 /* Value */,\n            /*ignoreErrors*/\n            true,\n            /*dontResolveAlias*/\n            true\n          );\n          if (symbol && isParameterOrMutableLocalVariable(symbol)) {\n            const sign = symbol.lastAssignmentPos !== void 0 && symbol.lastAssignmentPos < 0 ? -1 : 1;\n            symbol.lastAssignmentPos = sign * Number.MAX_VALUE;\n          }\n        }\n        return;\n      case 265 /* InterfaceDeclaration */:\n      case 266 /* TypeAliasDeclaration */:\n      case 267 /* EnumDeclaration */:\n        return;\n    }\n    if (isTypeNode(node)) {\n      return;\n    }\n    forEachChild(node, markNodeAssignments);\n  }\n  function extendAssignmentPosition(node, declaration) {\n    let pos = node.pos;\n    while (node && node.pos > declaration.pos) {\n      switch (node.kind) {\n        case 244 /* VariableStatement */:\n        case 245 /* ExpressionStatement */:\n        case 246 /* IfStatement */:\n        case 247 /* DoStatement */:\n        case 248 /* WhileStatement */:\n        case 249 /* ForStatement */:\n        case 250 /* ForInStatement */:\n        case 251 /* ForOfStatement */:\n        case 255 /* WithStatement */:\n        case 256 /* SwitchStatement */:\n        case 259 /* TryStatement */:\n        case 264 /* ClassDeclaration */:\n          pos = node.end;\n      }\n      node = node.parent;\n    }\n    return pos;\n  }\n  function isConstantVariable(symbol) {\n    return symbol.flags & 3 /* Variable */ && (getDeclarationNodeFlagsFromSymbol(symbol) & 6 /* Constant */) !== 0;\n  }\n  function isParameterOrMutableLocalVariable(symbol) {\n    const declaration = symbol.valueDeclaration && getRootDeclaration(symbol.valueDeclaration);\n    return !!declaration && (isParameter(declaration) || isVariableDeclaration(declaration) && (isCatchClause(declaration.parent) || isMutableLocalVariableDeclaration(declaration)));\n  }\n  function isMutableLocalVariableDeclaration(declaration) {\n    return !!(declaration.parent.flags & 1 /* Let */) && !(getCombinedModifierFlags(declaration) & 32 /* Export */ || declaration.parent.parent.kind === 244 /* VariableStatement */ && isGlobalSourceFile(declaration.parent.parent.parent));\n  }\n  function parameterInitializerContainsUndefined(declaration) {\n    const links = getNodeLinks(declaration);\n    if (links.parameterInitializerContainsUndefined === void 0) {\n      if (!pushTypeResolution(declaration, 8 /* ParameterInitializerContainsUndefined */)) {\n        reportCircularityError(declaration.symbol);\n        return true;\n      }\n      const containsUndefined = !!hasTypeFacts(checkDeclarationInitializer(declaration, 0 /* Normal */), 16777216 /* IsUndefined */);\n      if (!popTypeResolution()) {\n        reportCircularityError(declaration.symbol);\n        return true;\n      }\n      links.parameterInitializerContainsUndefined ?? (links.parameterInitializerContainsUndefined = containsUndefined);\n    }\n    return links.parameterInitializerContainsUndefined;\n  }\n  function removeOptionalityFromDeclaredType(declaredType, declaration) {\n    const removeUndefined = strictNullChecks && declaration.kind === 170 /* Parameter */ && declaration.initializer && hasTypeFacts(declaredType, 16777216 /* IsUndefined */) && !parameterInitializerContainsUndefined(declaration);\n    return removeUndefined ? getTypeWithFacts(declaredType, 524288 /* NEUndefined */) : declaredType;\n  }\n  function isConstraintPosition(type, node) {\n    const parent2 = node.parent;\n    return parent2.kind === 212 /* PropertyAccessExpression */ || parent2.kind === 167 /* QualifiedName */ || parent2.kind === 214 /* CallExpression */ && parent2.expression === node || parent2.kind === 215 /* NewExpression */ && parent2.expression === node || parent2.kind === 213 /* ElementAccessExpression */ && parent2.expression === node && !(someType(type, isGenericTypeWithoutNullableConstraint) && isGenericIndexType(getTypeOfExpression(parent2.argumentExpression)));\n  }\n  function isGenericTypeWithUnionConstraint(type) {\n    return type.flags & 2097152 /* Intersection */ ? some(type.types, isGenericTypeWithUnionConstraint) : !!(type.flags & 465829888 /* Instantiable */ && getBaseConstraintOrType(type).flags & (98304 /* Nullable */ | 1048576 /* Union */));\n  }\n  function isGenericTypeWithoutNullableConstraint(type) {\n    return type.flags & 2097152 /* Intersection */ ? some(type.types, isGenericTypeWithoutNullableConstraint) : !!(type.flags & 465829888 /* Instantiable */ && !maybeTypeOfKind(getBaseConstraintOrType(type), 98304 /* Nullable */));\n  }\n  function hasContextualTypeWithNoGenericTypes(node, checkMode) {\n    const contextualType = (isIdentifier(node) || isPropertyAccessExpression(node) || isElementAccessExpression(node)) && !((isJsxOpeningElement(node.parent) || isJsxSelfClosingElement(node.parent)) && node.parent.tagName === node) && (checkMode && checkMode & 32 /* RestBindingElement */ ? getContextualType2(node, 8 /* SkipBindingPatterns */) : getContextualType2(\n      node,\n      /*contextFlags*/\n      void 0\n    ));\n    return contextualType && !isGenericType(contextualType);\n  }\n  function getNarrowableTypeForReference(type, reference, checkMode) {\n    if (isNoInferType(type)) {\n      type = type.baseType;\n    }\n    const substituteConstraints = !(checkMode && checkMode & 2 /* Inferential */) && someType(type, isGenericTypeWithUnionConstraint) && (isConstraintPosition(type, reference) || hasContextualTypeWithNoGenericTypes(reference, checkMode));\n    return substituteConstraints ? mapType(type, getBaseConstraintOrType) : type;\n  }\n  function isExportOrExportExpression(location) {\n    return !!findAncestor(location, (n) => {\n      const parent2 = n.parent;\n      if (parent2 === void 0) {\n        return \"quit\";\n      }\n      if (isExportAssignment(parent2)) {\n        return parent2.expression === n && isEntityNameExpression(n);\n      }\n      if (isExportSpecifier(parent2)) {\n        return parent2.name === n || parent2.propertyName === n;\n      }\n      return false;\n    });\n  }\n  function markLinkedReferences(location, hint, propSymbol, parentType) {\n    if (!canCollectSymbolAliasAccessabilityData) {\n      return;\n    }\n    if (location.flags & 33554432 /* Ambient */ && !isPropertySignature(location) && !isPropertyDeclaration(location)) {\n      return;\n    }\n    switch (hint) {\n      case 1 /* Identifier */:\n        return markIdentifierAliasReferenced(location);\n      case 2 /* Property */:\n        return markPropertyAliasReferenced(location, propSymbol, parentType);\n      case 3 /* ExportAssignment */:\n        return markExportAssignmentAliasReferenced(location);\n      case 4 /* Jsx */:\n        return markJsxAliasReferenced(location);\n      case 5 /* AsyncFunction */:\n        return markAsyncFunctionAliasReferenced(location);\n      case 6 /* ExportImportEquals */:\n        return markImportEqualsAliasReferenced(location);\n      case 7 /* ExportSpecifier */:\n        return markExportSpecifierAliasReferenced(location);\n      case 8 /* Decorator */:\n        return markDecoratorAliasReferenced(location);\n      case 0 /* Unspecified */: {\n        if (isIdentifier(location) && (isExpressionNode(location) || isShorthandPropertyAssignment(location.parent) || isImportEqualsDeclaration(location.parent) && location.parent.moduleReference === location) && shouldMarkIdentifierAliasReferenced(location)) {\n          if (isPropertyAccessOrQualifiedName(location.parent)) {\n            const left = isPropertyAccessExpression(location.parent) ? location.parent.expression : location.parent.left;\n            if (left !== location) return;\n          }\n          markIdentifierAliasReferenced(location);\n          return;\n        }\n        if (isPropertyAccessOrQualifiedName(location)) {\n          let topProp = location;\n          while (isPropertyAccessOrQualifiedName(topProp)) {\n            if (isPartOfTypeNode(topProp)) return;\n            topProp = topProp.parent;\n          }\n          return markPropertyAliasReferenced(location);\n        }\n        if (isExportAssignment(location)) {\n          return markExportAssignmentAliasReferenced(location);\n        }\n        if (isJsxOpeningLikeElement(location) || isJsxOpeningFragment(location)) {\n          return markJsxAliasReferenced(location);\n        }\n        if (isImportEqualsDeclaration(location)) {\n          if (isInternalModuleImportEqualsDeclaration(location) || checkExternalImportOrExportDeclaration(location)) {\n            return markImportEqualsAliasReferenced(location);\n          }\n          return;\n        }\n        if (isExportSpecifier(location)) {\n          return markExportSpecifierAliasReferenced(location);\n        }\n        if (isFunctionLikeDeclaration(location) || isMethodSignature(location)) {\n          markAsyncFunctionAliasReferenced(location);\n        }\n        if (!compilerOptions.emitDecoratorMetadata) {\n          return;\n        }\n        if (!canHaveDecorators(location) || !hasDecorators(location) || !location.modifiers || !nodeCanBeDecorated(legacyDecorators, location, location.parent, location.parent.parent)) {\n          return;\n        }\n        return markDecoratorAliasReferenced(location);\n      }\n      default:\n        Debug.assertNever(hint, `Unhandled reference hint: ${hint}`);\n    }\n  }\n  function markIdentifierAliasReferenced(location) {\n    const symbol = getResolvedSymbol(location);\n    if (symbol && symbol !== argumentsSymbol && symbol !== unknownSymbol && !isThisInTypeQuery(location)) {\n      markAliasReferenced(symbol, location);\n    }\n  }\n  function markPropertyAliasReferenced(location, propSymbol, parentType) {\n    const left = isPropertyAccessExpression(location) ? location.expression : location.left;\n    if (isThisIdentifier(left) || !isIdentifier(left)) {\n      return;\n    }\n    const parentSymbol = getResolvedSymbol(left);\n    if (!parentSymbol || parentSymbol === unknownSymbol) {\n      return;\n    }\n    if (getIsolatedModules(compilerOptions) || shouldPreserveConstEnums(compilerOptions) && isExportOrExportExpression(location)) {\n      markAliasReferenced(parentSymbol, location);\n      return;\n    }\n    const leftType = parentType || checkExpressionCached(left);\n    if (isTypeAny(leftType) || leftType === silentNeverType) {\n      markAliasReferenced(parentSymbol, location);\n      return;\n    }\n    let prop = propSymbol;\n    if (!prop && !parentType) {\n      const right = isPropertyAccessExpression(location) ? location.name : location.right;\n      const lexicallyScopedSymbol = isPrivateIdentifier(right) && lookupSymbolForPrivateIdentifierDeclaration(right.escapedText, right);\n      const assignmentKind = getAssignmentTargetKind(location);\n      const apparentType = getApparentType(assignmentKind !== 0 /* None */ || isMethodAccessForCall(location) ? getWidenedType(leftType) : leftType);\n      prop = isPrivateIdentifier(right) ? lexicallyScopedSymbol && getPrivateIdentifierPropertyOfType(apparentType, lexicallyScopedSymbol) || void 0 : getPropertyOfType(apparentType, right.escapedText);\n    }\n    if (!(prop && (isConstEnumOrConstEnumOnlyModule(prop) || prop.flags & 8 /* EnumMember */ && location.parent.kind === 307 /* EnumMember */))) {\n      markAliasReferenced(parentSymbol, location);\n    }\n    return;\n  }\n  function markExportAssignmentAliasReferenced(location) {\n    if (isIdentifier(location.expression)) {\n      const id = location.expression;\n      const sym = getExportSymbolOfValueSymbolIfExported(resolveEntityName(\n        id,\n        -1 /* All */,\n        /*ignoreErrors*/\n        true,\n        /*dontResolveAlias*/\n        true,\n        location\n      ));\n      if (sym) {\n        markAliasReferenced(sym, id);\n      }\n    }\n  }\n  function markJsxAliasReferenced(node) {\n    if (!getJsxNamespaceContainerForImplicitImport(node)) {\n      const jsxFactoryRefErr = diagnostics && compilerOptions.jsx === 2 /* React */ ? Diagnostics.This_JSX_tag_requires_0_to_be_in_scope_but_it_could_not_be_found : void 0;\n      const jsxFactoryNamespace = getJsxNamespace(node);\n      const jsxFactoryLocation = isJsxOpeningLikeElement(node) ? node.tagName : node;\n      const shouldFactoryRefErr = compilerOptions.jsx !== 1 /* Preserve */ && compilerOptions.jsx !== 3 /* ReactNative */;\n      let jsxFactorySym;\n      if (!(isJsxOpeningFragment(node) && jsxFactoryNamespace === \"null\")) {\n        jsxFactorySym = resolveName(\n          jsxFactoryLocation,\n          jsxFactoryNamespace,\n          shouldFactoryRefErr ? 111551 /* Value */ : 111551 /* Value */ & ~384 /* Enum */,\n          jsxFactoryRefErr,\n          /*isUse*/\n          true\n        );\n      }\n      if (jsxFactorySym) {\n        jsxFactorySym.isReferenced = -1 /* All */;\n        if (canCollectSymbolAliasAccessabilityData && jsxFactorySym.flags & 2097152 /* Alias */ && !getTypeOnlyAliasDeclaration(jsxFactorySym)) {\n          markAliasSymbolAsReferenced(jsxFactorySym);\n        }\n      }\n      if (isJsxOpeningFragment(node)) {\n        const file = getSourceFileOfNode(node);\n        const entity = getJsxFactoryEntity(file);\n        if (entity) {\n          const localJsxNamespace = getFirstIdentifier(entity).escapedText;\n          resolveName(\n            jsxFactoryLocation,\n            localJsxNamespace,\n            shouldFactoryRefErr ? 111551 /* Value */ : 111551 /* Value */ & ~384 /* Enum */,\n            jsxFactoryRefErr,\n            /*isUse*/\n            true\n          );\n        }\n      }\n    }\n    return;\n  }\n  function markAsyncFunctionAliasReferenced(location) {\n    if (languageVersion < 2 /* ES2015 */) {\n      if (getFunctionFlags(location) & 2 /* Async */) {\n        const returnTypeNode = getEffectiveReturnTypeNode(location);\n        markTypeNodeAsReferenced(returnTypeNode);\n      }\n    }\n  }\n  function markImportEqualsAliasReferenced(location) {\n    if (hasSyntacticModifier(location, 32 /* Export */)) {\n      markExportAsReferenced(location);\n    }\n  }\n  function markExportSpecifierAliasReferenced(location) {\n    if (!location.parent.parent.moduleSpecifier && !location.isTypeOnly && !location.parent.parent.isTypeOnly) {\n      const exportedName = location.propertyName || location.name;\n      if (exportedName.kind === 11 /* StringLiteral */) {\n        return;\n      }\n      const symbol = resolveName(\n        exportedName,\n        exportedName.escapedText,\n        111551 /* Value */ | 788968 /* Type */ | 1920 /* Namespace */ | 2097152 /* Alias */,\n        /*nameNotFoundMessage*/\n        void 0,\n        /*isUse*/\n        true\n      );\n      if (symbol && (symbol === undefinedSymbol || symbol === globalThisSymbol || symbol.declarations && isGlobalSourceFile(getDeclarationContainer(symbol.declarations[0])))) {\n      } else {\n        const target = symbol && (symbol.flags & 2097152 /* Alias */ ? resolveAlias(symbol) : symbol);\n        if (!target || getSymbolFlags(target) & 111551 /* Value */) {\n          markExportAsReferenced(location);\n          markIdentifierAliasReferenced(exportedName);\n        }\n      }\n      return;\n    }\n  }\n  function markDecoratorAliasReferenced(node) {\n    if (compilerOptions.emitDecoratorMetadata) {\n      const firstDecorator = find(node.modifiers, isDecorator);\n      if (!firstDecorator) {\n        return;\n      }\n      checkExternalEmitHelpers(firstDecorator, 16 /* Metadata */);\n      switch (node.kind) {\n        case 264 /* ClassDeclaration */:\n          const constructor = getFirstConstructorWithBody(node);\n          if (constructor) {\n            for (const parameter of constructor.parameters) {\n              markDecoratorMedataDataTypeNodeAsReferenced(getParameterTypeNodeForDecoratorCheck(parameter));\n            }\n          }\n          break;\n        case 178 /* GetAccessor */:\n        case 179 /* SetAccessor */:\n          const otherKind = node.kind === 178 /* GetAccessor */ ? 179 /* SetAccessor */ : 178 /* GetAccessor */;\n          const otherAccessor = getDeclarationOfKind(getSymbolOfDeclaration(node), otherKind);\n          markDecoratorMedataDataTypeNodeAsReferenced(getAnnotatedAccessorTypeNode(node) || otherAccessor && getAnnotatedAccessorTypeNode(otherAccessor));\n          break;\n        case 175 /* MethodDeclaration */:\n          for (const parameter of node.parameters) {\n            markDecoratorMedataDataTypeNodeAsReferenced(getParameterTypeNodeForDecoratorCheck(parameter));\n          }\n          markDecoratorMedataDataTypeNodeAsReferenced(getEffectiveReturnTypeNode(node));\n          break;\n        case 173 /* PropertyDeclaration */:\n          markDecoratorMedataDataTypeNodeAsReferenced(getEffectiveTypeAnnotationNode(node));\n          break;\n        case 170 /* Parameter */:\n          markDecoratorMedataDataTypeNodeAsReferenced(getParameterTypeNodeForDecoratorCheck(node));\n          const containingSignature = node.parent;\n          for (const parameter of containingSignature.parameters) {\n            markDecoratorMedataDataTypeNodeAsReferenced(getParameterTypeNodeForDecoratorCheck(parameter));\n          }\n          markDecoratorMedataDataTypeNodeAsReferenced(getEffectiveReturnTypeNode(containingSignature));\n          break;\n      }\n    }\n  }\n  function markAliasReferenced(symbol, location) {\n    if (!canCollectSymbolAliasAccessabilityData) {\n      return;\n    }\n    if (isNonLocalAlias(\n      symbol,\n      /*excludes*/\n      111551 /* Value */\n    ) && !isInTypeQuery(location)) {\n      const target = resolveAlias(symbol);\n      if (getSymbolFlags(\n        symbol,\n        /*excludeTypeOnlyMeanings*/\n        true\n      ) & (111551 /* Value */ | 1048576 /* ExportValue */)) {\n        if (getIsolatedModules(compilerOptions) || shouldPreserveConstEnums(compilerOptions) && isExportOrExportExpression(location) || !isConstEnumOrConstEnumOnlyModule(getExportSymbolOfValueSymbolIfExported(target))) {\n          markAliasSymbolAsReferenced(symbol);\n        }\n      }\n    }\n  }\n  function markAliasSymbolAsReferenced(symbol) {\n    Debug.assert(canCollectSymbolAliasAccessabilityData);\n    const links = getSymbolLinks(symbol);\n    if (!links.referenced) {\n      links.referenced = true;\n      const node = getDeclarationOfAliasSymbol(symbol);\n      if (!node) return Debug.fail();\n      if (isInternalModuleImportEqualsDeclaration(node)) {\n        if (getSymbolFlags(resolveSymbol(symbol)) & 111551 /* Value */) {\n          const left = getFirstIdentifier(node.moduleReference);\n          markIdentifierAliasReferenced(left);\n        }\n      }\n    }\n  }\n  function markExportAsReferenced(node) {\n    const symbol = getSymbolOfDeclaration(node);\n    const target = resolveAlias(symbol);\n    if (target) {\n      const markAlias = target === unknownSymbol || getSymbolFlags(\n        symbol,\n        /*excludeTypeOnlyMeanings*/\n        true\n      ) & 111551 /* Value */ && !isConstEnumOrConstEnumOnlyModule(target);\n      if (markAlias) {\n        markAliasSymbolAsReferenced(symbol);\n      }\n    }\n  }\n  function markEntityNameOrEntityExpressionAsReference(typeName, forDecoratorMetadata) {\n    if (!typeName) return;\n    const rootName = getFirstIdentifier(typeName);\n    const meaning = (typeName.kind === 80 /* Identifier */ ? 788968 /* Type */ : 1920 /* Namespace */) | 2097152 /* Alias */;\n    const rootSymbol = resolveName(\n      rootName,\n      rootName.escapedText,\n      meaning,\n      /*nameNotFoundMessage*/\n      void 0,\n      /*isUse*/\n      true\n    );\n    if (rootSymbol && rootSymbol.flags & 2097152 /* Alias */) {\n      if (canCollectSymbolAliasAccessabilityData && symbolIsValue(rootSymbol) && !isConstEnumOrConstEnumOnlyModule(resolveAlias(rootSymbol)) && !getTypeOnlyAliasDeclaration(rootSymbol)) {\n        markAliasSymbolAsReferenced(rootSymbol);\n      } else if (forDecoratorMetadata && getIsolatedModules(compilerOptions) && getEmitModuleKind(compilerOptions) >= 5 /* ES2015 */ && !symbolIsValue(rootSymbol) && !some(rootSymbol.declarations, isTypeOnlyImportOrExportDeclaration)) {\n        const diag2 = error2(typeName, Diagnostics.A_type_referenced_in_a_decorated_signature_must_be_imported_with_import_type_or_a_namespace_import_when_isolatedModules_and_emitDecoratorMetadata_are_enabled);\n        const aliasDeclaration = find(rootSymbol.declarations || emptyArray, isAliasSymbolDeclaration);\n        if (aliasDeclaration) {\n          addRelatedInfo(diag2, createDiagnosticForNode(aliasDeclaration, Diagnostics._0_was_imported_here, idText(rootName)));\n        }\n      }\n    }\n  }\n  function markTypeNodeAsReferenced(node) {\n    markEntityNameOrEntityExpressionAsReference(\n      node && getEntityNameFromTypeNode(node),\n      /*forDecoratorMetadata*/\n      false\n    );\n  }\n  function markDecoratorMedataDataTypeNodeAsReferenced(node) {\n    const entityName = getEntityNameForDecoratorMetadata(node);\n    if (entityName && isEntityName(entityName)) {\n      markEntityNameOrEntityExpressionAsReference(\n        entityName,\n        /*forDecoratorMetadata*/\n        true\n      );\n    }\n  }\n  function getNarrowedTypeOfSymbol(symbol, location) {\n    var _a;\n    const type = getTypeOfSymbol(symbol);\n    const declaration = symbol.valueDeclaration;\n    if (declaration) {\n      if (isBindingElement(declaration) && !declaration.initializer && !declaration.dotDotDotToken && declaration.parent.elements.length >= 2) {\n        const parent2 = declaration.parent.parent;\n        const rootDeclaration = getRootDeclaration(parent2);\n        if (rootDeclaration.kind === 261 /* VariableDeclaration */ && getCombinedNodeFlagsCached(rootDeclaration) & 6 /* Constant */ || rootDeclaration.kind === 170 /* Parameter */) {\n          const links = getNodeLinks(parent2);\n          if (!(links.flags & 4194304 /* InCheckIdentifier */)) {\n            links.flags |= 4194304 /* InCheckIdentifier */;\n            const parentType = getTypeForBindingElementParent(parent2, 0 /* Normal */);\n            const parentTypeConstraint = parentType && mapType(parentType, getBaseConstraintOrType);\n            links.flags &= ~4194304 /* InCheckIdentifier */;\n            if (parentTypeConstraint && parentTypeConstraint.flags & 1048576 /* Union */ && !(rootDeclaration.kind === 170 /* Parameter */ && isSomeSymbolAssigned(rootDeclaration))) {\n              const pattern = declaration.parent;\n              const narrowedType = getFlowTypeOfReference(\n                pattern,\n                parentTypeConstraint,\n                parentTypeConstraint,\n                /*flowContainer*/\n                void 0,\n                location.flowNode\n              );\n              if (narrowedType.flags & 131072 /* Never */) {\n                return neverType;\n              }\n              return getBindingElementTypeFromParentType(\n                declaration,\n                narrowedType,\n                /*noTupleBoundsCheck*/\n                true\n              );\n            }\n          }\n        }\n      }\n      if (isParameter(declaration) && !declaration.type && !declaration.initializer && !declaration.dotDotDotToken) {\n        const func = declaration.parent;\n        if (func.parameters.length >= 2 && isContextSensitiveFunctionOrObjectLiteralMethod(func)) {\n          const contextualSignature = getContextualSignature(func);\n          if (contextualSignature && contextualSignature.parameters.length === 1 && signatureHasRestParameter(contextualSignature)) {\n            const restType = getReducedApparentType(instantiateType(getTypeOfSymbol(contextualSignature.parameters[0]), (_a = getInferenceContext(func)) == null ? void 0 : _a.nonFixingMapper));\n            if (restType.flags & 1048576 /* Union */ && everyType(restType, isTupleType) && !some(func.parameters, isSomeSymbolAssigned)) {\n              const narrowedType = getFlowTypeOfReference(\n                func,\n                restType,\n                restType,\n                /*flowContainer*/\n                void 0,\n                location.flowNode\n              );\n              const index = func.parameters.indexOf(declaration) - (getThisParameter(func) ? 1 : 0);\n              return getIndexedAccessType(narrowedType, getNumberLiteralType(index));\n            }\n          }\n        }\n      }\n    }\n    return type;\n  }\n  function checkIdentifierCalculateNodeCheckFlags(node, symbol) {\n    if (isThisInTypeQuery(node)) return;\n    if (symbol === argumentsSymbol) {\n      if (isInPropertyInitializerOrClassStaticBlock(\n        node,\n        /*ignoreArrowFunctions*/\n        true\n      )) {\n        error2(node, Diagnostics.arguments_cannot_be_referenced_in_property_initializers_or_class_static_initialization_blocks);\n        return;\n      }\n      let container = getContainingFunction(node);\n      if (container) {\n        if (languageVersion < 2 /* ES2015 */) {\n          if (container.kind === 220 /* ArrowFunction */) {\n            error2(node, Diagnostics.The_arguments_object_cannot_be_referenced_in_an_arrow_function_in_ES5_Consider_using_a_standard_function_expression);\n          } else if (hasSyntacticModifier(container, 1024 /* Async */)) {\n            error2(node, Diagnostics.The_arguments_object_cannot_be_referenced_in_an_async_function_or_method_in_ES5_Consider_using_a_standard_function_or_method);\n          }\n        }\n        getNodeLinks(container).flags |= 512 /* CaptureArguments */;\n        while (container && isArrowFunction(container)) {\n          container = getContainingFunction(container);\n          if (container) {\n            getNodeLinks(container).flags |= 512 /* CaptureArguments */;\n          }\n        }\n      }\n      return;\n    }\n    const localOrExportSymbol = getExportSymbolOfValueSymbolIfExported(symbol);\n    const targetSymbol = resolveAliasWithDeprecationCheck(localOrExportSymbol, node);\n    if (isDeprecatedSymbol(targetSymbol) && isUncalledFunctionReference(node, targetSymbol) && targetSymbol.declarations) {\n      addDeprecatedSuggestion(node, targetSymbol.declarations, node.escapedText);\n    }\n    const declaration = localOrExportSymbol.valueDeclaration;\n    if (declaration && localOrExportSymbol.flags & 32 /* Class */) {\n      if (isClassLike(declaration) && declaration.name !== node) {\n        let container = getThisContainer(\n          node,\n          /*includeArrowFunctions*/\n          false,\n          /*includeClassComputedPropertyName*/\n          false\n        );\n        while (container.kind !== 308 /* SourceFile */ && container.parent !== declaration) {\n          container = getThisContainer(\n            container,\n            /*includeArrowFunctions*/\n            false,\n            /*includeClassComputedPropertyName*/\n            false\n          );\n        }\n        if (container.kind !== 308 /* SourceFile */) {\n          getNodeLinks(declaration).flags |= 262144 /* ContainsConstructorReference */;\n          getNodeLinks(container).flags |= 262144 /* ContainsConstructorReference */;\n          getNodeLinks(node).flags |= 536870912 /* ConstructorReference */;\n        }\n      }\n    }\n    checkNestedBlockScopedBinding(node, symbol);\n  }\n  function checkIdentifier(node, checkMode) {\n    if (isThisInTypeQuery(node)) {\n      return checkThisExpression(node);\n    }\n    const symbol = getResolvedSymbol(node);\n    if (symbol === unknownSymbol) {\n      return errorType;\n    }\n    checkIdentifierCalculateNodeCheckFlags(node, symbol);\n    if (symbol === argumentsSymbol) {\n      if (isInPropertyInitializerOrClassStaticBlock(node)) {\n        return errorType;\n      }\n      return getTypeOfSymbol(symbol);\n    }\n    if (shouldMarkIdentifierAliasReferenced(node)) {\n      markLinkedReferences(node, 1 /* Identifier */);\n    }\n    const localOrExportSymbol = getExportSymbolOfValueSymbolIfExported(symbol);\n    let declaration = localOrExportSymbol.valueDeclaration;\n    const immediateDeclaration = declaration;\n    if (declaration && declaration.kind === 209 /* BindingElement */ && contains(contextualBindingPatterns, declaration.parent) && findAncestor(node, (parent2) => parent2 === declaration.parent)) {\n      return nonInferrableAnyType;\n    }\n    let type = getNarrowedTypeOfSymbol(localOrExportSymbol, node);\n    const assignmentKind = getAssignmentTargetKind(node);\n    if (assignmentKind) {\n      if (!(localOrExportSymbol.flags & 3 /* Variable */) && !(isInJSFile(node) && localOrExportSymbol.flags & 512 /* ValueModule */)) {\n        const assignmentError = localOrExportSymbol.flags & 384 /* Enum */ ? Diagnostics.Cannot_assign_to_0_because_it_is_an_enum : localOrExportSymbol.flags & 32 /* Class */ ? Diagnostics.Cannot_assign_to_0_because_it_is_a_class : localOrExportSymbol.flags & 1536 /* Module */ ? Diagnostics.Cannot_assign_to_0_because_it_is_a_namespace : localOrExportSymbol.flags & 16 /* Function */ ? Diagnostics.Cannot_assign_to_0_because_it_is_a_function : localOrExportSymbol.flags & 2097152 /* Alias */ ? Diagnostics.Cannot_assign_to_0_because_it_is_an_import : Diagnostics.Cannot_assign_to_0_because_it_is_not_a_variable;\n        error2(node, assignmentError, symbolToString(symbol));\n        return errorType;\n      }\n      if (isReadonlySymbol(localOrExportSymbol)) {\n        if (localOrExportSymbol.flags & 3 /* Variable */) {\n          error2(node, Diagnostics.Cannot_assign_to_0_because_it_is_a_constant, symbolToString(symbol));\n        } else {\n          error2(node, Diagnostics.Cannot_assign_to_0_because_it_is_a_read_only_property, symbolToString(symbol));\n        }\n        return errorType;\n      }\n    }\n    const isAlias = localOrExportSymbol.flags & 2097152 /* Alias */;\n    if (localOrExportSymbol.flags & 3 /* Variable */) {\n      if (assignmentKind === 1 /* Definite */) {\n        return isInCompoundLikeAssignment(node) ? getBaseTypeOfLiteralType(type) : type;\n      }\n    } else if (isAlias) {\n      declaration = getDeclarationOfAliasSymbol(symbol);\n    } else {\n      return type;\n    }\n    if (!declaration) {\n      return type;\n    }\n    type = getNarrowableTypeForReference(type, node, checkMode);\n    const isParameter2 = getRootDeclaration(declaration).kind === 170 /* Parameter */;\n    const declarationContainer = getControlFlowContainer(declaration);\n    let flowContainer = getControlFlowContainer(node);\n    const isOuterVariable = flowContainer !== declarationContainer;\n    const isSpreadDestructuringAssignmentTarget = node.parent && node.parent.parent && isSpreadAssignment(node.parent) && isDestructuringAssignmentTarget(node.parent.parent);\n    const isModuleExports = symbol.flags & 134217728 /* ModuleExports */;\n    const typeIsAutomatic = type === autoType || type === autoArrayType;\n    const isAutomaticTypeInNonNull = typeIsAutomatic && node.parent.kind === 236 /* NonNullExpression */;\n    while (flowContainer !== declarationContainer && (flowContainer.kind === 219 /* FunctionExpression */ || flowContainer.kind === 220 /* ArrowFunction */ || isObjectLiteralOrClassExpressionMethodOrAccessor(flowContainer)) && (isConstantVariable(localOrExportSymbol) && type !== autoArrayType || isParameterOrMutableLocalVariable(localOrExportSymbol) && isPastLastAssignment(localOrExportSymbol, node))) {\n      flowContainer = getControlFlowContainer(flowContainer);\n    }\n    const isNeverInitialized = immediateDeclaration && isVariableDeclaration(immediateDeclaration) && !immediateDeclaration.initializer && !immediateDeclaration.exclamationToken && isMutableLocalVariableDeclaration(immediateDeclaration) && !isSymbolAssignedDefinitely(symbol);\n    const assumeInitialized = isParameter2 || isAlias || isOuterVariable && !isNeverInitialized || isSpreadDestructuringAssignmentTarget || isModuleExports || isSameScopedBindingElement(node, declaration) || type !== autoType && type !== autoArrayType && (!strictNullChecks || (type.flags & (3 /* AnyOrUnknown */ | 16384 /* Void */)) !== 0 || isInTypeQuery(node) || isInAmbientOrTypeNode(node) || node.parent.kind === 282 /* ExportSpecifier */) || node.parent.kind === 236 /* NonNullExpression */ || declaration.kind === 261 /* VariableDeclaration */ && declaration.exclamationToken || declaration.flags & 33554432 /* Ambient */;\n    const initialType = isAutomaticTypeInNonNull ? undefinedType : assumeInitialized ? isParameter2 ? removeOptionalityFromDeclaredType(type, declaration) : type : typeIsAutomatic ? undefinedType : getOptionalType(type);\n    const flowType = isAutomaticTypeInNonNull ? getNonNullableType(getFlowTypeOfReference(node, type, initialType, flowContainer)) : getFlowTypeOfReference(node, type, initialType, flowContainer);\n    if (!isEvolvingArrayOperationTarget(node) && (type === autoType || type === autoArrayType)) {\n      if (flowType === autoType || flowType === autoArrayType) {\n        if (noImplicitAny) {\n          error2(getNameOfDeclaration(declaration), Diagnostics.Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined, symbolToString(symbol), typeToString(flowType));\n          error2(node, Diagnostics.Variable_0_implicitly_has_an_1_type, symbolToString(symbol), typeToString(flowType));\n        }\n        return convertAutoToAny(flowType);\n      }\n    } else if (!assumeInitialized && !containsUndefinedType(type) && containsUndefinedType(flowType)) {\n      error2(node, Diagnostics.Variable_0_is_used_before_being_assigned, symbolToString(symbol));\n      return type;\n    }\n    return assignmentKind ? getBaseTypeOfLiteralType(flowType) : flowType;\n  }\n  function isSameScopedBindingElement(node, declaration) {\n    if (isBindingElement(declaration)) {\n      const bindingElement = findAncestor(node, isBindingElement);\n      return bindingElement && getRootDeclaration(bindingElement) === getRootDeclaration(declaration);\n    }\n  }\n  function shouldMarkIdentifierAliasReferenced(node) {\n    var _a;\n    const parent2 = node.parent;\n    if (parent2) {\n      if (isPropertyAccessExpression(parent2) && parent2.expression === node) {\n        return false;\n      }\n      if (isExportSpecifier(parent2) && parent2.isTypeOnly) {\n        return false;\n      }\n      const greatGrandparent = (_a = parent2.parent) == null ? void 0 : _a.parent;\n      if (greatGrandparent && isExportDeclaration(greatGrandparent) && greatGrandparent.isTypeOnly) {\n        return false;\n      }\n    }\n    return true;\n  }\n  function isInsideFunctionOrInstancePropertyInitializer(node, threshold) {\n    return !!findAncestor(node, (n) => n === threshold ? \"quit\" : isFunctionLike(n) || n.parent && isPropertyDeclaration(n.parent) && !hasStaticModifier(n.parent) && n.parent.initializer === n);\n  }\n  function getPartOfForStatementContainingNode(node, container) {\n    return findAncestor(node, (n) => n === container ? \"quit\" : n === container.initializer || n === container.condition || n === container.incrementor || n === container.statement);\n  }\n  function getEnclosingIterationStatement(node) {\n    return findAncestor(node, (n) => !n || nodeStartsNewLexicalEnvironment(n) ? \"quit\" : isIterationStatement(\n      n,\n      /*lookInLabeledStatements*/\n      false\n    ));\n  }\n  function checkNestedBlockScopedBinding(node, symbol) {\n    if (languageVersion >= 2 /* ES2015 */ || (symbol.flags & (2 /* BlockScopedVariable */ | 32 /* Class */)) === 0 || !symbol.valueDeclaration || isSourceFile(symbol.valueDeclaration) || symbol.valueDeclaration.parent.kind === 300 /* CatchClause */) {\n      return;\n    }\n    const container = getEnclosingBlockScopeContainer(symbol.valueDeclaration);\n    const isCaptured = isInsideFunctionOrInstancePropertyInitializer(node, container);\n    const enclosingIterationStatement = getEnclosingIterationStatement(container);\n    if (enclosingIterationStatement) {\n      if (isCaptured) {\n        let capturesBlockScopeBindingInLoopBody = true;\n        if (isForStatement(container)) {\n          const varDeclList = getAncestor(symbol.valueDeclaration, 262 /* VariableDeclarationList */);\n          if (varDeclList && varDeclList.parent === container) {\n            const part = getPartOfForStatementContainingNode(node.parent, container);\n            if (part) {\n              const links = getNodeLinks(part);\n              links.flags |= 8192 /* ContainsCapturedBlockScopeBinding */;\n              const capturedBindings = links.capturedBlockScopeBindings || (links.capturedBlockScopeBindings = []);\n              pushIfUnique(capturedBindings, symbol);\n              if (part === container.initializer) {\n                capturesBlockScopeBindingInLoopBody = false;\n              }\n            }\n          }\n        }\n        if (capturesBlockScopeBindingInLoopBody) {\n          getNodeLinks(enclosingIterationStatement).flags |= 4096 /* LoopWithCapturedBlockScopedBinding */;\n        }\n      }\n      if (isForStatement(container)) {\n        const varDeclList = getAncestor(symbol.valueDeclaration, 262 /* VariableDeclarationList */);\n        if (varDeclList && varDeclList.parent === container && isAssignedInBodyOfForStatement(node, container)) {\n          getNodeLinks(symbol.valueDeclaration).flags |= 65536 /* NeedsLoopOutParameter */;\n        }\n      }\n      getNodeLinks(symbol.valueDeclaration).flags |= 32768 /* BlockScopedBindingInLoop */;\n    }\n    if (isCaptured) {\n      getNodeLinks(symbol.valueDeclaration).flags |= 16384 /* CapturedBlockScopedBinding */;\n    }\n  }\n  function isBindingCapturedByNode(node, decl) {\n    const links = getNodeLinks(node);\n    return !!links && contains(links.capturedBlockScopeBindings, getSymbolOfDeclaration(decl));\n  }\n  function isAssignedInBodyOfForStatement(node, container) {\n    let current = node;\n    while (current.parent.kind === 218 /* ParenthesizedExpression */) {\n      current = current.parent;\n    }\n    let isAssigned = false;\n    if (isAssignmentTarget(current)) {\n      isAssigned = true;\n    } else if (current.parent.kind === 225 /* PrefixUnaryExpression */ || current.parent.kind === 226 /* PostfixUnaryExpression */) {\n      const expr = current.parent;\n      isAssigned = expr.operator === 46 /* PlusPlusToken */ || expr.operator === 47 /* MinusMinusToken */;\n    }\n    if (!isAssigned) {\n      return false;\n    }\n    return !!findAncestor(current, (n) => n === container ? \"quit\" : n === container.statement);\n  }\n  function captureLexicalThis(node, container) {\n    getNodeLinks(node).flags |= 2 /* LexicalThis */;\n    if (container.kind === 173 /* PropertyDeclaration */ || container.kind === 177 /* Constructor */) {\n      const classNode = container.parent;\n      getNodeLinks(classNode).flags |= 4 /* CaptureThis */;\n    } else {\n      getNodeLinks(container).flags |= 4 /* CaptureThis */;\n    }\n  }\n  function findFirstSuperCall(node) {\n    return isSuperCall(node) ? node : isFunctionLike(node) ? void 0 : forEachChild(node, findFirstSuperCall);\n  }\n  function classDeclarationExtendsNull(classDecl) {\n    const classSymbol = getSymbolOfDeclaration(classDecl);\n    const classInstanceType = getDeclaredTypeOfSymbol(classSymbol);\n    const baseConstructorType = getBaseConstructorTypeOfClass(classInstanceType);\n    return baseConstructorType === nullWideningType;\n  }\n  function checkThisBeforeSuper(node, container, diagnosticMessage) {\n    const containingClassDecl = container.parent;\n    const baseTypeNode = getClassExtendsHeritageElement(containingClassDecl);\n    if (baseTypeNode && !classDeclarationExtendsNull(containingClassDecl)) {\n      if (canHaveFlowNode(node) && node.flowNode && !isPostSuperFlowNode(\n        node.flowNode,\n        /*noCacheCheck*/\n        false\n      )) {\n        error2(node, diagnosticMessage);\n      }\n    }\n  }\n  function checkThisInStaticClassFieldInitializerInDecoratedClass(thisExpression, container) {\n    if (isPropertyDeclaration(container) && hasStaticModifier(container) && legacyDecorators && container.initializer && textRangeContainsPositionInclusive(container.initializer, thisExpression.pos) && hasDecorators(container.parent)) {\n      error2(thisExpression, Diagnostics.Cannot_use_this_in_a_static_property_initializer_of_a_decorated_class);\n    }\n  }\n  function checkThisExpression(node) {\n    const isNodeInTypeQuery = isInTypeQuery(node);\n    let container = getThisContainer(\n      node,\n      /*includeArrowFunctions*/\n      true,\n      /*includeClassComputedPropertyName*/\n      true\n    );\n    let capturedByArrowFunction = false;\n    let thisInComputedPropertyName = false;\n    if (container.kind === 177 /* Constructor */) {\n      checkThisBeforeSuper(node, container, Diagnostics.super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class);\n    }\n    while (true) {\n      if (container.kind === 220 /* ArrowFunction */) {\n        container = getThisContainer(\n          container,\n          /*includeArrowFunctions*/\n          false,\n          !thisInComputedPropertyName\n        );\n        capturedByArrowFunction = true;\n      }\n      if (container.kind === 168 /* ComputedPropertyName */) {\n        container = getThisContainer(\n          container,\n          !capturedByArrowFunction,\n          /*includeClassComputedPropertyName*/\n          false\n        );\n        thisInComputedPropertyName = true;\n        continue;\n      }\n      break;\n    }\n    checkThisInStaticClassFieldInitializerInDecoratedClass(node, container);\n    if (thisInComputedPropertyName) {\n      error2(node, Diagnostics.this_cannot_be_referenced_in_a_computed_property_name);\n    } else {\n      switch (container.kind) {\n        case 268 /* ModuleDeclaration */:\n          error2(node, Diagnostics.this_cannot_be_referenced_in_a_module_or_namespace_body);\n          break;\n        case 267 /* EnumDeclaration */:\n          error2(node, Diagnostics.this_cannot_be_referenced_in_current_location);\n          break;\n      }\n    }\n    if (!isNodeInTypeQuery && capturedByArrowFunction && languageVersion < 2 /* ES2015 */) {\n      captureLexicalThis(node, container);\n    }\n    const type = tryGetThisTypeAt(\n      node,\n      /*includeGlobalThis*/\n      true,\n      container\n    );\n    if (noImplicitThis) {\n      const globalThisType2 = getTypeOfSymbol(globalThisSymbol);\n      if (type === globalThisType2 && capturedByArrowFunction) {\n        error2(node, Diagnostics.The_containing_arrow_function_captures_the_global_value_of_this);\n      } else if (!type) {\n        const diag2 = error2(node, Diagnostics.this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation);\n        if (!isSourceFile(container)) {\n          const outsideThis = tryGetThisTypeAt(container);\n          if (outsideThis && outsideThis !== globalThisType2) {\n            addRelatedInfo(diag2, createDiagnosticForNode(container, Diagnostics.An_outer_value_of_this_is_shadowed_by_this_container));\n          }\n        }\n      }\n    }\n    return type || anyType;\n  }\n  function tryGetThisTypeAt(node, includeGlobalThis = true, container = getThisContainer(\n    node,\n    /*includeArrowFunctions*/\n    false,\n    /*includeClassComputedPropertyName*/\n    false\n  )) {\n    const isInJS = isInJSFile(node);\n    if (isFunctionLike(container) && (!isInParameterInitializerBeforeContainingFunction(node) || getThisParameter(container))) {\n      let thisType = getThisTypeOfDeclaration(container) || isInJS && getTypeForThisExpressionFromJSDoc(container);\n      if (!thisType) {\n        const className = getClassNameFromPrototypeMethod(container);\n        if (isInJS && className) {\n          const classSymbol = checkExpression(className).symbol;\n          if (classSymbol && classSymbol.members && classSymbol.flags & 16 /* Function */) {\n            thisType = getDeclaredTypeOfSymbol(classSymbol).thisType;\n          }\n        } else if (isJSConstructor(container)) {\n          thisType = getDeclaredTypeOfSymbol(getMergedSymbol(container.symbol)).thisType;\n        }\n        thisType || (thisType = getContextualThisParameterType(container));\n      }\n      if (thisType) {\n        return getFlowTypeOfReference(node, thisType);\n      }\n    }\n    if (isClassLike(container.parent)) {\n      const symbol = getSymbolOfDeclaration(container.parent);\n      const type = isStatic(container) ? getTypeOfSymbol(symbol) : getDeclaredTypeOfSymbol(symbol).thisType;\n      return getFlowTypeOfReference(node, type);\n    }\n    if (isSourceFile(container)) {\n      if (container.commonJsModuleIndicator) {\n        const fileSymbol = getSymbolOfDeclaration(container);\n        return fileSymbol && getTypeOfSymbol(fileSymbol);\n      } else if (container.externalModuleIndicator) {\n        return undefinedType;\n      } else if (includeGlobalThis) {\n        return getTypeOfSymbol(globalThisSymbol);\n      }\n    }\n  }\n  function getExplicitThisType(node) {\n    const container = getThisContainer(\n      node,\n      /*includeArrowFunctions*/\n      false,\n      /*includeClassComputedPropertyName*/\n      false\n    );\n    if (isFunctionLike(container)) {\n      const signature = getSignatureFromDeclaration(container);\n      if (signature.thisParameter) {\n        return getExplicitTypeOfSymbol(signature.thisParameter);\n      }\n    }\n    if (isClassLike(container.parent)) {\n      const symbol = getSymbolOfDeclaration(container.parent);\n      return isStatic(container) ? getTypeOfSymbol(symbol) : getDeclaredTypeOfSymbol(symbol).thisType;\n    }\n  }\n  function getClassNameFromPrototypeMethod(container) {\n    if (container.kind === 219 /* FunctionExpression */ && isBinaryExpression(container.parent) && getAssignmentDeclarationKind(container.parent) === 3 /* PrototypeProperty */) {\n      return container.parent.left.expression.expression;\n    } else if (container.kind === 175 /* MethodDeclaration */ && container.parent.kind === 211 /* ObjectLiteralExpression */ && isBinaryExpression(container.parent.parent) && getAssignmentDeclarationKind(container.parent.parent) === 6 /* Prototype */) {\n      return container.parent.parent.left.expression;\n    } else if (container.kind === 219 /* FunctionExpression */ && container.parent.kind === 304 /* PropertyAssignment */ && container.parent.parent.kind === 211 /* ObjectLiteralExpression */ && isBinaryExpression(container.parent.parent.parent) && getAssignmentDeclarationKind(container.parent.parent.parent) === 6 /* Prototype */) {\n      return container.parent.parent.parent.left.expression;\n    } else if (container.kind === 219 /* FunctionExpression */ && isPropertyAssignment(container.parent) && isIdentifier(container.parent.name) && (container.parent.name.escapedText === \"value\" || container.parent.name.escapedText === \"get\" || container.parent.name.escapedText === \"set\") && isObjectLiteralExpression(container.parent.parent) && isCallExpression(container.parent.parent.parent) && container.parent.parent.parent.arguments[2] === container.parent.parent && getAssignmentDeclarationKind(container.parent.parent.parent) === 9 /* ObjectDefinePrototypeProperty */) {\n      return container.parent.parent.parent.arguments[0].expression;\n    } else if (isMethodDeclaration(container) && isIdentifier(container.name) && (container.name.escapedText === \"value\" || container.name.escapedText === \"get\" || container.name.escapedText === \"set\") && isObjectLiteralExpression(container.parent) && isCallExpression(container.parent.parent) && container.parent.parent.arguments[2] === container.parent && getAssignmentDeclarationKind(container.parent.parent) === 9 /* ObjectDefinePrototypeProperty */) {\n      return container.parent.parent.arguments[0].expression;\n    }\n  }\n  function getTypeForThisExpressionFromJSDoc(node) {\n    const thisTag = getJSDocThisTag(node);\n    if (thisTag && thisTag.typeExpression) {\n      return getTypeFromTypeNode(thisTag.typeExpression);\n    }\n    const signature = getSignatureOfTypeTag(node);\n    if (signature) {\n      return getThisTypeOfSignature(signature);\n    }\n  }\n  function isInConstructorArgumentInitializer(node, constructorDecl) {\n    return !!findAncestor(node, (n) => isFunctionLikeDeclaration(n) ? \"quit\" : n.kind === 170 /* Parameter */ && n.parent === constructorDecl);\n  }\n  function checkSuperExpression(node) {\n    const isCallExpression2 = node.parent.kind === 214 /* CallExpression */ && node.parent.expression === node;\n    const immediateContainer = getSuperContainer(\n      node,\n      /*stopOnFunctions*/\n      true\n    );\n    let container = immediateContainer;\n    let needToCaptureLexicalThis = false;\n    let inAsyncFunction = false;\n    if (!isCallExpression2) {\n      while (container && container.kind === 220 /* ArrowFunction */) {\n        if (hasSyntacticModifier(container, 1024 /* Async */)) inAsyncFunction = true;\n        container = getSuperContainer(\n          container,\n          /*stopOnFunctions*/\n          true\n        );\n        needToCaptureLexicalThis = languageVersion < 2 /* ES2015 */;\n      }\n      if (container && hasSyntacticModifier(container, 1024 /* Async */)) inAsyncFunction = true;\n    }\n    let nodeCheckFlag = 0;\n    if (!container || !isLegalUsageOfSuperExpression(container)) {\n      const current = findAncestor(node, (n) => n === container ? \"quit\" : n.kind === 168 /* ComputedPropertyName */);\n      if (current && current.kind === 168 /* ComputedPropertyName */) {\n        error2(node, Diagnostics.super_cannot_be_referenced_in_a_computed_property_name);\n      } else if (isCallExpression2) {\n        error2(node, Diagnostics.Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors);\n      } else if (!container || !container.parent || !(isClassLike(container.parent) || container.parent.kind === 211 /* ObjectLiteralExpression */)) {\n        error2(node, Diagnostics.super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions);\n      } else {\n        error2(node, Diagnostics.super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_derived_class);\n      }\n      return errorType;\n    }\n    if (!isCallExpression2 && immediateContainer.kind === 177 /* Constructor */) {\n      checkThisBeforeSuper(node, container, Diagnostics.super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class);\n    }\n    if (isStatic(container) || isCallExpression2) {\n      nodeCheckFlag = 32 /* SuperStatic */;\n      if (!isCallExpression2 && languageVersion >= 2 /* ES2015 */ && languageVersion <= 8 /* ES2021 */ && (isPropertyDeclaration(container) || isClassStaticBlockDeclaration(container))) {\n        forEachEnclosingBlockScopeContainer(node.parent, (current) => {\n          if (!isSourceFile(current) || isExternalOrCommonJsModule(current)) {\n            getNodeLinks(current).flags |= 2097152 /* ContainsSuperPropertyInStaticInitializer */;\n          }\n        });\n      }\n    } else {\n      nodeCheckFlag = 16 /* SuperInstance */;\n    }\n    getNodeLinks(node).flags |= nodeCheckFlag;\n    if (container.kind === 175 /* MethodDeclaration */ && inAsyncFunction) {\n      if (isSuperProperty(node.parent) && isAssignmentTarget(node.parent)) {\n        getNodeLinks(container).flags |= 256 /* MethodWithSuperPropertyAssignmentInAsync */;\n      } else {\n        getNodeLinks(container).flags |= 128 /* MethodWithSuperPropertyAccessInAsync */;\n      }\n    }\n    if (needToCaptureLexicalThis) {\n      captureLexicalThis(node.parent, container);\n    }\n    if (container.parent.kind === 211 /* ObjectLiteralExpression */) {\n      if (languageVersion < 2 /* ES2015 */) {\n        error2(node, Diagnostics.super_is_only_allowed_in_members_of_object_literal_expressions_when_option_target_is_ES2015_or_higher);\n        return errorType;\n      } else {\n        return anyType;\n      }\n    }\n    const classLikeDeclaration = container.parent;\n    if (!getClassExtendsHeritageElement(classLikeDeclaration)) {\n      error2(node, Diagnostics.super_can_only_be_referenced_in_a_derived_class);\n      return errorType;\n    }\n    if (classDeclarationExtendsNull(classLikeDeclaration)) {\n      return isCallExpression2 ? errorType : nullWideningType;\n    }\n    const classType = getDeclaredTypeOfSymbol(getSymbolOfDeclaration(classLikeDeclaration));\n    const baseClassType = classType && getBaseTypes(classType)[0];\n    if (!baseClassType) {\n      return errorType;\n    }\n    if (container.kind === 177 /* Constructor */ && isInConstructorArgumentInitializer(node, container)) {\n      error2(node, Diagnostics.super_cannot_be_referenced_in_constructor_arguments);\n      return errorType;\n    }\n    return nodeCheckFlag === 32 /* SuperStatic */ ? getBaseConstructorTypeOfClass(classType) : getTypeWithThisArgument(baseClassType, classType.thisType);\n    function isLegalUsageOfSuperExpression(container2) {\n      if (isCallExpression2) {\n        return container2.kind === 177 /* Constructor */;\n      } else {\n        if (isClassLike(container2.parent) || container2.parent.kind === 211 /* ObjectLiteralExpression */) {\n          if (isStatic(container2)) {\n            return container2.kind === 175 /* MethodDeclaration */ || container2.kind === 174 /* MethodSignature */ || container2.kind === 178 /* GetAccessor */ || container2.kind === 179 /* SetAccessor */ || container2.kind === 173 /* PropertyDeclaration */ || container2.kind === 176 /* ClassStaticBlockDeclaration */;\n          } else {\n            return container2.kind === 175 /* MethodDeclaration */ || container2.kind === 174 /* MethodSignature */ || container2.kind === 178 /* GetAccessor */ || container2.kind === 179 /* SetAccessor */ || container2.kind === 173 /* PropertyDeclaration */ || container2.kind === 172 /* PropertySignature */ || container2.kind === 177 /* Constructor */;\n          }\n        }\n      }\n      return false;\n    }\n  }\n  function getContainingObjectLiteral(func) {\n    return (func.kind === 175 /* MethodDeclaration */ || func.kind === 178 /* GetAccessor */ || func.kind === 179 /* SetAccessor */) && func.parent.kind === 211 /* ObjectLiteralExpression */ ? func.parent : func.kind === 219 /* FunctionExpression */ && func.parent.kind === 304 /* PropertyAssignment */ ? func.parent.parent : void 0;\n  }\n  function getThisTypeArgument(type) {\n    return getObjectFlags(type) & 4 /* Reference */ && type.target === globalThisType ? getTypeArguments(type)[0] : void 0;\n  }\n  function getThisTypeFromContextualType(type) {\n    return mapType(type, (t) => {\n      return t.flags & 2097152 /* Intersection */ ? forEach(t.types, getThisTypeArgument) : getThisTypeArgument(t);\n    });\n  }\n  function getThisTypeOfObjectLiteralFromContextualType(containingLiteral, contextualType) {\n    let literal = containingLiteral;\n    let type = contextualType;\n    while (type) {\n      const thisType = getThisTypeFromContextualType(type);\n      if (thisType) {\n        return thisType;\n      }\n      if (literal.parent.kind !== 304 /* PropertyAssignment */) {\n        break;\n      }\n      literal = literal.parent.parent;\n      type = getApparentTypeOfContextualType(\n        literal,\n        /*contextFlags*/\n        void 0\n      );\n    }\n  }\n  function getContextualThisParameterType(func) {\n    if (func.kind === 220 /* ArrowFunction */) {\n      return void 0;\n    }\n    if (isContextSensitiveFunctionOrObjectLiteralMethod(func)) {\n      const contextualSignature = getContextualSignature(func);\n      if (contextualSignature) {\n        const thisParameter = contextualSignature.thisParameter;\n        if (thisParameter) {\n          return getTypeOfSymbol(thisParameter);\n        }\n      }\n    }\n    const inJs = isInJSFile(func);\n    if (noImplicitThis || inJs) {\n      const containingLiteral = getContainingObjectLiteral(func);\n      if (containingLiteral) {\n        const contextualType = getApparentTypeOfContextualType(\n          containingLiteral,\n          /*contextFlags*/\n          void 0\n        );\n        const thisType = getThisTypeOfObjectLiteralFromContextualType(containingLiteral, contextualType);\n        if (thisType) {\n          return instantiateType(thisType, getMapperFromContext(getInferenceContext(containingLiteral)));\n        }\n        return getWidenedType(contextualType ? getNonNullableType(contextualType) : checkExpressionCached(containingLiteral));\n      }\n      const parent2 = walkUpParenthesizedExpressions(func.parent);\n      if (isAssignmentExpression(parent2)) {\n        const target = parent2.left;\n        if (isAccessExpression(target)) {\n          const { expression } = target;\n          if (inJs && isIdentifier(expression)) {\n            const sourceFile = getSourceFileOfNode(parent2);\n            if (sourceFile.commonJsModuleIndicator && getResolvedSymbol(expression) === sourceFile.symbol) {\n              return void 0;\n            }\n          }\n          return getWidenedType(checkExpressionCached(expression));\n        }\n      }\n    }\n    return void 0;\n  }\n  function getContextuallyTypedParameterType(parameter) {\n    const func = parameter.parent;\n    if (!isContextSensitiveFunctionOrObjectLiteralMethod(func)) {\n      return void 0;\n    }\n    const iife = getImmediatelyInvokedFunctionExpression(func);\n    if (iife && iife.arguments) {\n      const args = getEffectiveCallArguments(iife);\n      const indexOfParameter = func.parameters.indexOf(parameter);\n      if (parameter.dotDotDotToken) {\n        return getSpreadArgumentType(\n          args,\n          indexOfParameter,\n          args.length,\n          anyType,\n          /*context*/\n          void 0,\n          0 /* Normal */\n        );\n      }\n      const links = getNodeLinks(iife);\n      const cached = links.resolvedSignature;\n      links.resolvedSignature = anySignature;\n      const type = indexOfParameter < args.length ? getWidenedLiteralType(checkExpression(args[indexOfParameter])) : parameter.initializer ? void 0 : undefinedWideningType;\n      links.resolvedSignature = cached;\n      return type;\n    }\n    const contextualSignature = getContextualSignature(func);\n    if (contextualSignature) {\n      const index = func.parameters.indexOf(parameter) - (getThisParameter(func) ? 1 : 0);\n      return parameter.dotDotDotToken && lastOrUndefined(func.parameters) === parameter ? getRestTypeAtPosition(contextualSignature, index) : tryGetTypeAtPosition(contextualSignature, index);\n    }\n  }\n  function getContextualTypeForVariableLikeDeclaration(declaration, contextFlags) {\n    const typeNode = getEffectiveTypeAnnotationNode(declaration) || (isInJSFile(declaration) ? tryGetJSDocSatisfiesTypeNode(declaration) : void 0);\n    if (typeNode) {\n      return getTypeFromTypeNode(typeNode);\n    }\n    switch (declaration.kind) {\n      case 170 /* Parameter */:\n        return getContextuallyTypedParameterType(declaration);\n      case 209 /* BindingElement */:\n        return getContextualTypeForBindingElement(declaration, contextFlags);\n      case 173 /* PropertyDeclaration */:\n        if (isStatic(declaration)) {\n          return getContextualTypeForStaticPropertyDeclaration(declaration, contextFlags);\n        }\n    }\n  }\n  function getContextualTypeForBindingElement(declaration, contextFlags) {\n    const parent2 = declaration.parent.parent;\n    const name = declaration.propertyName || declaration.name;\n    const parentType = getContextualTypeForVariableLikeDeclaration(parent2, contextFlags) || parent2.kind !== 209 /* BindingElement */ && parent2.initializer && checkDeclarationInitializer(parent2, declaration.dotDotDotToken ? 32 /* RestBindingElement */ : 0 /* Normal */);\n    if (!parentType || isBindingPattern(name) || isComputedNonLiteralName(name)) return void 0;\n    if (parent2.name.kind === 208 /* ArrayBindingPattern */) {\n      const index = indexOfNode(declaration.parent.elements, declaration);\n      if (index < 0) return void 0;\n      return getContextualTypeForElementExpression(parentType, index);\n    }\n    const nameType = getLiteralTypeFromPropertyName(name);\n    if (isTypeUsableAsPropertyName(nameType)) {\n      const text = getPropertyNameFromType(nameType);\n      return getTypeOfPropertyOfType(parentType, text);\n    }\n  }\n  function getContextualTypeForStaticPropertyDeclaration(declaration, contextFlags) {\n    const parentType = isExpression(declaration.parent) && getContextualType2(declaration.parent, contextFlags);\n    if (!parentType) return void 0;\n    return getTypeOfPropertyOfContextualType(parentType, getSymbolOfDeclaration(declaration).escapedName);\n  }\n  function getContextualTypeForInitializerExpression(node, contextFlags) {\n    const declaration = node.parent;\n    if (hasInitializer(declaration) && node === declaration.initializer) {\n      const result = getContextualTypeForVariableLikeDeclaration(declaration, contextFlags);\n      if (result) {\n        return result;\n      }\n      if (!(contextFlags & 8 /* SkipBindingPatterns */) && isBindingPattern(declaration.name) && declaration.name.elements.length > 0) {\n        return getTypeFromBindingPattern(\n          declaration.name,\n          /*includePatternInType*/\n          true,\n          /*reportErrors*/\n          false\n        );\n      }\n    }\n    return void 0;\n  }\n  function getContextualTypeForReturnExpression(node, contextFlags) {\n    const func = getContainingFunction(node);\n    if (func) {\n      let contextualReturnType = getContextualReturnType(func, contextFlags);\n      if (contextualReturnType) {\n        const functionFlags = getFunctionFlags(func);\n        if (functionFlags & 1 /* Generator */) {\n          const isAsyncGenerator = (functionFlags & 2 /* Async */) !== 0;\n          if (contextualReturnType.flags & 1048576 /* Union */) {\n            contextualReturnType = filterType(contextualReturnType, (type) => !!getIterationTypeOfGeneratorFunctionReturnType(1 /* Return */, type, isAsyncGenerator));\n          }\n          const iterationReturnType = getIterationTypeOfGeneratorFunctionReturnType(1 /* Return */, contextualReturnType, (functionFlags & 2 /* Async */) !== 0);\n          if (!iterationReturnType) {\n            return void 0;\n          }\n          contextualReturnType = iterationReturnType;\n        }\n        if (functionFlags & 2 /* Async */) {\n          const contextualAwaitedType = mapType(contextualReturnType, getAwaitedTypeNoAlias);\n          return contextualAwaitedType && getUnionType([contextualAwaitedType, createPromiseLikeType(contextualAwaitedType)]);\n        }\n        return contextualReturnType;\n      }\n    }\n    return void 0;\n  }\n  function getContextualTypeForAwaitOperand(node, contextFlags) {\n    const contextualType = getContextualType2(node, contextFlags);\n    if (contextualType) {\n      const contextualAwaitedType = getAwaitedTypeNoAlias(contextualType);\n      return contextualAwaitedType && getUnionType([contextualAwaitedType, createPromiseLikeType(contextualAwaitedType)]);\n    }\n    return void 0;\n  }\n  function getContextualTypeForYieldOperand(node, contextFlags) {\n    const func = getContainingFunction(node);\n    if (func) {\n      const functionFlags = getFunctionFlags(func);\n      let contextualReturnType = getContextualReturnType(func, contextFlags);\n      if (contextualReturnType) {\n        const isAsyncGenerator = (functionFlags & 2 /* Async */) !== 0;\n        if (!node.asteriskToken && contextualReturnType.flags & 1048576 /* Union */) {\n          contextualReturnType = filterType(contextualReturnType, (type) => !!getIterationTypeOfGeneratorFunctionReturnType(1 /* Return */, type, isAsyncGenerator));\n        }\n        if (node.asteriskToken) {\n          const iterationTypes = getIterationTypesOfGeneratorFunctionReturnType(contextualReturnType, isAsyncGenerator);\n          const yieldType = (iterationTypes == null ? void 0 : iterationTypes.yieldType) ?? silentNeverType;\n          const returnType = getContextualType2(node, contextFlags) ?? silentNeverType;\n          const nextType = (iterationTypes == null ? void 0 : iterationTypes.nextType) ?? unknownType;\n          const generatorType = createGeneratorType(\n            yieldType,\n            returnType,\n            nextType,\n            /*isAsyncGenerator*/\n            false\n          );\n          if (isAsyncGenerator) {\n            const asyncGeneratorType = createGeneratorType(\n              yieldType,\n              returnType,\n              nextType,\n              /*isAsyncGenerator*/\n              true\n            );\n            return getUnionType([generatorType, asyncGeneratorType]);\n          }\n          return generatorType;\n        }\n        return getIterationTypeOfGeneratorFunctionReturnType(0 /* Yield */, contextualReturnType, isAsyncGenerator);\n      }\n    }\n    return void 0;\n  }\n  function isInParameterInitializerBeforeContainingFunction(node) {\n    let inBindingInitializer = false;\n    while (node.parent && !isFunctionLike(node.parent)) {\n      if (isParameter(node.parent) && (inBindingInitializer || node.parent.initializer === node)) {\n        return true;\n      }\n      if (isBindingElement(node.parent) && node.parent.initializer === node) {\n        inBindingInitializer = true;\n      }\n      node = node.parent;\n    }\n    return false;\n  }\n  function getContextualIterationType(kind, functionDecl) {\n    const isAsync = !!(getFunctionFlags(functionDecl) & 2 /* Async */);\n    const contextualReturnType = getContextualReturnType(\n      functionDecl,\n      /*contextFlags*/\n      void 0\n    );\n    if (contextualReturnType) {\n      return getIterationTypeOfGeneratorFunctionReturnType(kind, contextualReturnType, isAsync) || void 0;\n    }\n    return void 0;\n  }\n  function getContextualReturnType(functionDecl, contextFlags) {\n    const returnType = getReturnTypeFromAnnotation(functionDecl);\n    if (returnType) {\n      return returnType;\n    }\n    const signature = getContextualSignatureForFunctionLikeDeclaration(functionDecl);\n    if (signature && !isResolvingReturnTypeOfSignature(signature)) {\n      const returnType2 = getReturnTypeOfSignature(signature);\n      const functionFlags = getFunctionFlags(functionDecl);\n      if (functionFlags & 1 /* Generator */) {\n        return filterType(returnType2, (t) => {\n          return !!(t.flags & (3 /* AnyOrUnknown */ | 16384 /* Void */ | 58982400 /* InstantiableNonPrimitive */)) || checkGeneratorInstantiationAssignabilityToReturnType(\n            t,\n            functionFlags,\n            /*errorNode*/\n            void 0\n          );\n        });\n      }\n      if (functionFlags & 2 /* Async */) {\n        return filterType(returnType2, (t) => {\n          return !!(t.flags & (3 /* AnyOrUnknown */ | 16384 /* Void */ | 58982400 /* InstantiableNonPrimitive */)) || !!getAwaitedTypeOfPromise(t);\n        });\n      }\n      return returnType2;\n    }\n    const iife = getImmediatelyInvokedFunctionExpression(functionDecl);\n    if (iife) {\n      return getContextualType2(iife, contextFlags);\n    }\n    return void 0;\n  }\n  function getContextualTypeForArgument(callTarget, arg) {\n    const args = getEffectiveCallArguments(callTarget);\n    const argIndex = args.indexOf(arg);\n    return argIndex === -1 ? void 0 : getContextualTypeForArgumentAtIndex(callTarget, argIndex);\n  }\n  function getContextualTypeForArgumentAtIndex(callTarget, argIndex) {\n    if (isImportCall(callTarget)) {\n      return argIndex === 0 ? stringType : argIndex === 1 ? getGlobalImportCallOptionsType(\n        /*reportErrors*/\n        false\n      ) : anyType;\n    }\n    const signature = getNodeLinks(callTarget).resolvedSignature === resolvingSignature ? resolvingSignature : getResolvedSignature(callTarget);\n    if (isJsxOpeningLikeElement(callTarget) && argIndex === 0) {\n      return getEffectiveFirstArgumentForJsxSignature(signature, callTarget);\n    }\n    const restIndex = signature.parameters.length - 1;\n    return signatureHasRestParameter(signature) && argIndex >= restIndex ? getIndexedAccessType(getTypeOfSymbol(signature.parameters[restIndex]), getNumberLiteralType(argIndex - restIndex), 256 /* Contextual */) : getTypeAtPosition(signature, argIndex);\n  }\n  function getContextualTypeForDecorator(decorator) {\n    const signature = getDecoratorCallSignature(decorator);\n    return signature ? getOrCreateTypeFromSignature(signature) : void 0;\n  }\n  function getContextualTypeForSubstitutionExpression(template, substitutionExpression) {\n    if (template.parent.kind === 216 /* TaggedTemplateExpression */) {\n      return getContextualTypeForArgument(template.parent, substitutionExpression);\n    }\n    return void 0;\n  }\n  function getContextualTypeForBinaryOperand(node, contextFlags) {\n    const binaryExpression = node.parent;\n    const { left, operatorToken, right } = binaryExpression;\n    switch (operatorToken.kind) {\n      case 64 /* EqualsToken */:\n      case 77 /* AmpersandAmpersandEqualsToken */:\n      case 76 /* BarBarEqualsToken */:\n      case 78 /* QuestionQuestionEqualsToken */:\n        return node === right ? getContextualTypeForAssignmentDeclaration(binaryExpression) : void 0;\n      case 57 /* BarBarToken */:\n      case 61 /* QuestionQuestionToken */:\n        const type = getContextualType2(binaryExpression, contextFlags);\n        return node === right && (type && type.pattern || !type && !isDefaultedExpandoInitializer(binaryExpression)) ? getTypeOfExpression(left) : type;\n      case 56 /* AmpersandAmpersandToken */:\n      case 28 /* CommaToken */:\n        return node === right ? getContextualType2(binaryExpression, contextFlags) : void 0;\n      default:\n        return void 0;\n    }\n  }\n  function getSymbolForExpression(e) {\n    if (canHaveSymbol(e) && e.symbol) {\n      return e.symbol;\n    }\n    if (isIdentifier(e)) {\n      return getResolvedSymbol(e);\n    }\n    if (isPropertyAccessExpression(e)) {\n      const lhsType = getTypeOfExpression(e.expression);\n      return isPrivateIdentifier(e.name) ? tryGetPrivateIdentifierPropertyOfType(lhsType, e.name) : getPropertyOfType(lhsType, e.name.escapedText);\n    }\n    if (isElementAccessExpression(e)) {\n      const propType = checkExpressionCached(e.argumentExpression);\n      if (!isTypeUsableAsPropertyName(propType)) {\n        return void 0;\n      }\n      const lhsType = getTypeOfExpression(e.expression);\n      return getPropertyOfType(lhsType, getPropertyNameFromType(propType));\n    }\n    return void 0;\n    function tryGetPrivateIdentifierPropertyOfType(type, id) {\n      const lexicallyScopedSymbol = lookupSymbolForPrivateIdentifierDeclaration(id.escapedText, id);\n      return lexicallyScopedSymbol && getPrivateIdentifierPropertyOfType(type, lexicallyScopedSymbol);\n    }\n  }\n  function getContextualTypeForAssignmentDeclaration(binaryExpression) {\n    var _a, _b;\n    const kind = getAssignmentDeclarationKind(binaryExpression);\n    switch (kind) {\n      case 0 /* None */:\n      case 4 /* ThisProperty */:\n        const lhsSymbol = getSymbolForExpression(binaryExpression.left);\n        const decl = lhsSymbol && lhsSymbol.valueDeclaration;\n        if (decl && (isPropertyDeclaration(decl) || isPropertySignature(decl))) {\n          const overallAnnotation = getEffectiveTypeAnnotationNode(decl);\n          return overallAnnotation && instantiateType(getTypeFromTypeNode(overallAnnotation), getSymbolLinks(lhsSymbol).mapper) || (isPropertyDeclaration(decl) ? decl.initializer && getTypeOfExpression(binaryExpression.left) : void 0);\n        }\n        if (kind === 0 /* None */) {\n          return getTypeOfExpression(binaryExpression.left);\n        }\n        return getContextualTypeForThisPropertyAssignment(binaryExpression);\n      case 5 /* Property */:\n        if (isPossiblyAliasedThisProperty(binaryExpression, kind)) {\n          return getContextualTypeForThisPropertyAssignment(binaryExpression);\n        } else if (!canHaveSymbol(binaryExpression.left) || !binaryExpression.left.symbol) {\n          return getTypeOfExpression(binaryExpression.left);\n        } else {\n          const decl2 = binaryExpression.left.symbol.valueDeclaration;\n          if (!decl2) {\n            return void 0;\n          }\n          const lhs = cast(binaryExpression.left, isAccessExpression);\n          const overallAnnotation = getEffectiveTypeAnnotationNode(decl2);\n          if (overallAnnotation) {\n            return getTypeFromTypeNode(overallAnnotation);\n          } else if (isIdentifier(lhs.expression)) {\n            const id = lhs.expression;\n            const parentSymbol = resolveName(\n              id,\n              id.escapedText,\n              111551 /* Value */,\n              /*nameNotFoundMessage*/\n              void 0,\n              /*isUse*/\n              true\n            );\n            if (parentSymbol) {\n              const annotated2 = parentSymbol.valueDeclaration && getEffectiveTypeAnnotationNode(parentSymbol.valueDeclaration);\n              if (annotated2) {\n                const nameStr = getElementOrPropertyAccessName(lhs);\n                if (nameStr !== void 0) {\n                  return getTypeOfPropertyOfContextualType(getTypeFromTypeNode(annotated2), nameStr);\n                }\n              }\n              return void 0;\n            }\n          }\n          return isInJSFile(decl2) || decl2 === binaryExpression.left ? void 0 : getTypeOfExpression(binaryExpression.left);\n        }\n      case 1 /* ExportsProperty */:\n      case 6 /* Prototype */:\n      case 3 /* PrototypeProperty */:\n      case 2 /* ModuleExports */:\n        let valueDeclaration;\n        if (kind !== 2 /* ModuleExports */) {\n          valueDeclaration = canHaveSymbol(binaryExpression.left) ? (_a = binaryExpression.left.symbol) == null ? void 0 : _a.valueDeclaration : void 0;\n        }\n        valueDeclaration || (valueDeclaration = (_b = binaryExpression.symbol) == null ? void 0 : _b.valueDeclaration);\n        const annotated = valueDeclaration && getEffectiveTypeAnnotationNode(valueDeclaration);\n        return annotated ? getTypeFromTypeNode(annotated) : void 0;\n      case 7 /* ObjectDefinePropertyValue */:\n      case 8 /* ObjectDefinePropertyExports */:\n      case 9 /* ObjectDefinePrototypeProperty */:\n        return Debug.fail(\"Does not apply\");\n      default:\n        return Debug.assertNever(kind);\n    }\n  }\n  function isPossiblyAliasedThisProperty(declaration, kind = getAssignmentDeclarationKind(declaration)) {\n    if (kind === 4 /* ThisProperty */) {\n      return true;\n    }\n    if (!isInJSFile(declaration) || kind !== 5 /* Property */ || !isIdentifier(declaration.left.expression)) {\n      return false;\n    }\n    const name = declaration.left.expression.escapedText;\n    const symbol = resolveName(\n      declaration.left,\n      name,\n      111551 /* Value */,\n      /*nameNotFoundMessage*/\n      void 0,\n      /*isUse*/\n      true,\n      /*excludeGlobals*/\n      true\n    );\n    return isThisInitializedDeclaration(symbol == null ? void 0 : symbol.valueDeclaration);\n  }\n  function getContextualTypeForThisPropertyAssignment(binaryExpression) {\n    if (!binaryExpression.symbol) return getTypeOfExpression(binaryExpression.left);\n    if (binaryExpression.symbol.valueDeclaration) {\n      const annotated = getEffectiveTypeAnnotationNode(binaryExpression.symbol.valueDeclaration);\n      if (annotated) {\n        const type = getTypeFromTypeNode(annotated);\n        if (type) {\n          return type;\n        }\n      }\n    }\n    const thisAccess = cast(binaryExpression.left, isAccessExpression);\n    if (!isObjectLiteralMethod(getThisContainer(\n      thisAccess.expression,\n      /*includeArrowFunctions*/\n      false,\n      /*includeClassComputedPropertyName*/\n      false\n    ))) {\n      return void 0;\n    }\n    const thisType = checkThisExpression(thisAccess.expression);\n    const nameStr = getElementOrPropertyAccessName(thisAccess);\n    return nameStr !== void 0 && getTypeOfPropertyOfContextualType(thisType, nameStr) || void 0;\n  }\n  function isCircularMappedProperty(symbol) {\n    return !!(getCheckFlags(symbol) & 262144 /* Mapped */ && !symbol.links.type && findResolutionCycleStartIndex(symbol, 0 /* Type */) >= 0);\n  }\n  function isExcludedMappedPropertyName(constraint, propertyNameType) {\n    if (constraint.flags & 16777216 /* Conditional */) {\n      const type = constraint;\n      return !!(getReducedType(getTrueTypeFromConditionalType(type)).flags & 131072 /* Never */) && getActualTypeVariable(getFalseTypeFromConditionalType(type)) === getActualTypeVariable(type.checkType) && isTypeAssignableTo(propertyNameType, type.extendsType);\n    }\n    if (constraint.flags & 2097152 /* Intersection */) {\n      return some(constraint.types, (t) => isExcludedMappedPropertyName(t, propertyNameType));\n    }\n    return false;\n  }\n  function getTypeOfPropertyOfContextualType(type, name, nameType) {\n    return mapType(\n      type,\n      (t) => {\n        if (t.flags & 2097152 /* Intersection */) {\n          let types;\n          let indexInfoCandidates;\n          let ignoreIndexInfos = false;\n          for (const constituentType of t.types) {\n            if (!(constituentType.flags & 524288 /* Object */)) {\n              continue;\n            }\n            if (isGenericMappedType(constituentType) && getMappedTypeNameTypeKind(constituentType) !== 2 /* Remapping */) {\n              const substitutedType = getIndexedMappedTypeSubstitutedTypeOfContextualType(constituentType, name, nameType);\n              types = appendContextualPropertyTypeConstituent(types, substitutedType);\n              continue;\n            }\n            const propertyType = getTypeOfConcretePropertyOfContextualType(constituentType, name);\n            if (!propertyType) {\n              if (!ignoreIndexInfos) {\n                indexInfoCandidates = append(indexInfoCandidates, constituentType);\n              }\n              continue;\n            }\n            ignoreIndexInfos = true;\n            indexInfoCandidates = void 0;\n            types = appendContextualPropertyTypeConstituent(types, propertyType);\n          }\n          if (indexInfoCandidates) {\n            for (const candidate of indexInfoCandidates) {\n              const indexInfoType = getTypeFromIndexInfosOfContextualType(candidate, name, nameType);\n              types = appendContextualPropertyTypeConstituent(types, indexInfoType);\n            }\n          }\n          if (!types) {\n            return;\n          }\n          if (types.length === 1) {\n            return types[0];\n          }\n          return getIntersectionType(types);\n        }\n        if (!(t.flags & 524288 /* Object */)) {\n          return;\n        }\n        return isGenericMappedType(t) && getMappedTypeNameTypeKind(t) !== 2 /* Remapping */ ? getIndexedMappedTypeSubstitutedTypeOfContextualType(t, name, nameType) : getTypeOfConcretePropertyOfContextualType(t, name) ?? getTypeFromIndexInfosOfContextualType(t, name, nameType);\n      },\n      /*noReductions*/\n      true\n    );\n  }\n  function appendContextualPropertyTypeConstituent(types, type) {\n    return type ? append(types, type.flags & 1 /* Any */ ? unknownType : type) : types;\n  }\n  function getIndexedMappedTypeSubstitutedTypeOfContextualType(type, name, nameType) {\n    const propertyNameType = nameType || getStringLiteralType(unescapeLeadingUnderscores(name));\n    const constraint = getConstraintTypeFromMappedType(type);\n    if (type.nameType && isExcludedMappedPropertyName(type.nameType, propertyNameType) || isExcludedMappedPropertyName(constraint, propertyNameType)) {\n      return;\n    }\n    const constraintOfConstraint = getBaseConstraintOfType(constraint) || constraint;\n    if (!isTypeAssignableTo(propertyNameType, constraintOfConstraint)) {\n      return;\n    }\n    return substituteIndexedMappedType(type, propertyNameType);\n  }\n  function getTypeOfConcretePropertyOfContextualType(type, name) {\n    const prop = getPropertyOfType(type, name);\n    if (!prop || isCircularMappedProperty(prop)) {\n      return;\n    }\n    return removeMissingType(getTypeOfSymbol(prop), !!(prop.flags & 16777216 /* Optional */));\n  }\n  function getTypeFromIndexInfosOfContextualType(type, name, nameType) {\n    var _a;\n    if (isTupleType(type) && isNumericLiteralName(name) && +name >= 0) {\n      const restType = getElementTypeOfSliceOfTupleType(\n        type,\n        type.target.fixedLength,\n        /*endSkipCount*/\n        0,\n        /*writing*/\n        false,\n        /*noReductions*/\n        true\n      );\n      if (restType) {\n        return restType;\n      }\n    }\n    return (_a = findApplicableIndexInfo(getIndexInfosOfStructuredType(type), nameType || getStringLiteralType(unescapeLeadingUnderscores(name)))) == null ? void 0 : _a.type;\n  }\n  function getContextualTypeForObjectLiteralMethod(node, contextFlags) {\n    Debug.assert(isObjectLiteralMethod(node));\n    if (node.flags & 67108864 /* InWithStatement */) {\n      return void 0;\n    }\n    return getContextualTypeForObjectLiteralElement(node, contextFlags);\n  }\n  function getContextualTypeForObjectLiteralElement(element, contextFlags) {\n    const objectLiteral = element.parent;\n    const propertyAssignmentType = isPropertyAssignment(element) && getContextualTypeForVariableLikeDeclaration(element, contextFlags);\n    if (propertyAssignmentType) {\n      return propertyAssignmentType;\n    }\n    const type = getApparentTypeOfContextualType(objectLiteral, contextFlags);\n    if (type) {\n      if (hasBindableName(element)) {\n        const symbol = getSymbolOfDeclaration(element);\n        return getTypeOfPropertyOfContextualType(type, symbol.escapedName, getSymbolLinks(symbol).nameType);\n      }\n      if (hasDynamicName(element)) {\n        const name = getNameOfDeclaration(element);\n        if (name && isComputedPropertyName(name)) {\n          const exprType = checkExpression(name.expression);\n          const propType = isTypeUsableAsPropertyName(exprType) && getTypeOfPropertyOfContextualType(type, getPropertyNameFromType(exprType));\n          if (propType) {\n            return propType;\n          }\n        }\n      }\n      if (element.name) {\n        const nameType = getLiteralTypeFromPropertyName(element.name);\n        return mapType(\n          type,\n          (t) => {\n            var _a;\n            return (_a = findApplicableIndexInfo(getIndexInfosOfStructuredType(t), nameType)) == null ? void 0 : _a.type;\n          },\n          /*noReductions*/\n          true\n        );\n      }\n    }\n    return void 0;\n  }\n  function getSpreadIndices(elements) {\n    let first2, last2;\n    for (let i = 0; i < elements.length; i++) {\n      if (isSpreadElement(elements[i])) {\n        first2 ?? (first2 = i);\n        last2 = i;\n      }\n    }\n    return { first: first2, last: last2 };\n  }\n  function getContextualTypeForElementExpression(type, index, length2, firstSpreadIndex, lastSpreadIndex) {\n    return type && mapType(\n      type,\n      (t) => {\n        if (isTupleType(t)) {\n          if ((firstSpreadIndex === void 0 || index < firstSpreadIndex) && index < t.target.fixedLength) {\n            return removeMissingType(getTypeArguments(t)[index], !!(t.target.elementFlags[index] && 2 /* Optional */));\n          }\n          const offset = length2 !== void 0 && (lastSpreadIndex === void 0 || index > lastSpreadIndex) ? length2 - index : 0;\n          const fixedEndLength = offset > 0 && t.target.combinedFlags & 12 /* Variable */ ? getEndElementCount(t.target, 3 /* Fixed */) : 0;\n          if (offset > 0 && offset <= fixedEndLength) {\n            return getTypeArguments(t)[getTypeReferenceArity(t) - offset];\n          }\n          return getElementTypeOfSliceOfTupleType(\n            t,\n            firstSpreadIndex === void 0 ? t.target.fixedLength : Math.min(t.target.fixedLength, firstSpreadIndex),\n            length2 === void 0 || lastSpreadIndex === void 0 ? fixedEndLength : Math.min(fixedEndLength, length2 - lastSpreadIndex),\n            /*writing*/\n            false,\n            /*noReductions*/\n            true\n          );\n        }\n        return (!firstSpreadIndex || index < firstSpreadIndex) && getTypeOfPropertyOfContextualType(t, \"\" + index) || getIteratedTypeOrElementType(\n          1 /* Element */,\n          t,\n          undefinedType,\n          /*errorNode*/\n          void 0,\n          /*checkAssignability*/\n          false\n        );\n      },\n      /*noReductions*/\n      true\n    );\n  }\n  function getContextualTypeForConditionalOperand(node, contextFlags) {\n    const conditional = node.parent;\n    return node === conditional.whenTrue || node === conditional.whenFalse ? getContextualType2(conditional, contextFlags) : void 0;\n  }\n  function getContextualTypeForChildJsxExpression(node, child, contextFlags) {\n    const attributesType = getApparentTypeOfContextualType(node.openingElement.attributes, contextFlags);\n    const jsxChildrenPropertyName = getJsxElementChildrenPropertyName(getJsxNamespaceAt(node));\n    if (!(attributesType && !isTypeAny(attributesType) && jsxChildrenPropertyName && jsxChildrenPropertyName !== \"\")) {\n      return void 0;\n    }\n    const realChildren = getSemanticJsxChildren(node.children);\n    const childIndex = realChildren.indexOf(child);\n    const childFieldType = getTypeOfPropertyOfContextualType(attributesType, jsxChildrenPropertyName);\n    return childFieldType && (realChildren.length === 1 ? childFieldType : mapType(\n      childFieldType,\n      (t) => {\n        if (isArrayLikeType(t)) {\n          return getIndexedAccessType(t, getNumberLiteralType(childIndex));\n        } else {\n          return t;\n        }\n      },\n      /*noReductions*/\n      true\n    ));\n  }\n  function getContextualTypeForJsxExpression(node, contextFlags) {\n    const exprParent = node.parent;\n    return isJsxAttributeLike(exprParent) ? getContextualType2(node, contextFlags) : isJsxElement(exprParent) ? getContextualTypeForChildJsxExpression(exprParent, node, contextFlags) : void 0;\n  }\n  function getContextualTypeForJsxAttribute(attribute, contextFlags) {\n    if (isJsxAttribute(attribute)) {\n      const attributesType = getApparentTypeOfContextualType(attribute.parent, contextFlags);\n      if (!attributesType || isTypeAny(attributesType)) {\n        return void 0;\n      }\n      return getTypeOfPropertyOfContextualType(attributesType, getEscapedTextOfJsxAttributeName(attribute.name));\n    } else {\n      return getContextualType2(attribute.parent, contextFlags);\n    }\n  }\n  function isPossiblyDiscriminantValue(node) {\n    switch (node.kind) {\n      case 11 /* StringLiteral */:\n      case 9 /* NumericLiteral */:\n      case 10 /* BigIntLiteral */:\n      case 15 /* NoSubstitutionTemplateLiteral */:\n      case 229 /* TemplateExpression */:\n      case 112 /* TrueKeyword */:\n      case 97 /* FalseKeyword */:\n      case 106 /* NullKeyword */:\n      case 80 /* Identifier */:\n      case 157 /* UndefinedKeyword */:\n        return true;\n      case 212 /* PropertyAccessExpression */:\n      case 218 /* ParenthesizedExpression */:\n        return isPossiblyDiscriminantValue(node.expression);\n      case 295 /* JsxExpression */:\n        return !node.expression || isPossiblyDiscriminantValue(node.expression);\n    }\n    return false;\n  }\n  function discriminateContextualTypeByObjectMembers(node, contextualType) {\n    const key = `D${getNodeId(node)},${getTypeId(contextualType)}`;\n    return getCachedType(key) ?? setCachedType(\n      key,\n      getMatchingUnionConstituentForObjectLiteral(contextualType, node) ?? discriminateTypeByDiscriminableItems(\n        contextualType,\n        concatenate(\n          map(\n            filter(node.properties, (p) => {\n              if (!p.symbol) {\n                return false;\n              }\n              if (p.kind === 304 /* PropertyAssignment */) {\n                return isPossiblyDiscriminantValue(p.initializer) && isDiscriminantProperty(contextualType, p.symbol.escapedName);\n              }\n              if (p.kind === 305 /* ShorthandPropertyAssignment */) {\n                return isDiscriminantProperty(contextualType, p.symbol.escapedName);\n              }\n              return false;\n            }),\n            (prop) => [() => getContextFreeTypeOfExpression(prop.kind === 304 /* PropertyAssignment */ ? prop.initializer : prop.name), prop.symbol.escapedName]\n          ),\n          map(\n            filter(getPropertiesOfType(contextualType), (s) => {\n              var _a;\n              return !!(s.flags & 16777216 /* Optional */) && !!((_a = node == null ? void 0 : node.symbol) == null ? void 0 : _a.members) && !node.symbol.members.has(s.escapedName) && isDiscriminantProperty(contextualType, s.escapedName);\n            }),\n            (s) => [() => undefinedType, s.escapedName]\n          )\n        ),\n        isTypeAssignableTo\n      )\n    );\n  }\n  function discriminateContextualTypeByJSXAttributes(node, contextualType) {\n    const key = `D${getNodeId(node)},${getTypeId(contextualType)}`;\n    const cached = getCachedType(key);\n    if (cached) return cached;\n    const jsxChildrenPropertyName = getJsxElementChildrenPropertyName(getJsxNamespaceAt(node));\n    return setCachedType(\n      key,\n      discriminateTypeByDiscriminableItems(\n        contextualType,\n        concatenate(\n          map(\n            filter(node.properties, (p) => !!p.symbol && p.kind === 292 /* JsxAttribute */ && isDiscriminantProperty(contextualType, p.symbol.escapedName) && (!p.initializer || isPossiblyDiscriminantValue(p.initializer))),\n            (prop) => [!prop.initializer ? () => trueType : () => getContextFreeTypeOfExpression(prop.initializer), prop.symbol.escapedName]\n          ),\n          map(\n            filter(getPropertiesOfType(contextualType), (s) => {\n              var _a;\n              if (!(s.flags & 16777216 /* Optional */) || !((_a = node == null ? void 0 : node.symbol) == null ? void 0 : _a.members)) {\n                return false;\n              }\n              const element = node.parent.parent;\n              if (s.escapedName === jsxChildrenPropertyName && isJsxElement(element) && getSemanticJsxChildren(element.children).length) {\n                return false;\n              }\n              return !node.symbol.members.has(s.escapedName) && isDiscriminantProperty(contextualType, s.escapedName);\n            }),\n            (s) => [() => undefinedType, s.escapedName]\n          )\n        ),\n        isTypeAssignableTo\n      )\n    );\n  }\n  function getApparentTypeOfContextualType(node, contextFlags) {\n    const contextualType = isObjectLiteralMethod(node) ? getContextualTypeForObjectLiteralMethod(node, contextFlags) : getContextualType2(node, contextFlags);\n    const instantiatedType = instantiateContextualType(contextualType, node, contextFlags);\n    if (instantiatedType && !(contextFlags && contextFlags & 2 /* NoConstraints */ && instantiatedType.flags & 8650752 /* TypeVariable */)) {\n      const apparentType = mapType(\n        instantiatedType,\n        // When obtaining apparent type of *contextual* type we don't want to get apparent type of mapped types.\n        // That would evaluate mapped types with array or tuple type constraints too eagerly\n        // and thus it would prevent `getTypeOfPropertyOfContextualType` from obtaining per-position contextual type for elements of array literal expressions.\n        // Apparent type of other mapped types is already the mapped type itself so we can just avoid calling `getApparentType` here for all mapped types.\n        (t) => getObjectFlags(t) & 32 /* Mapped */ ? t : getApparentType(t),\n        /*noReductions*/\n        true\n      );\n      return apparentType.flags & 1048576 /* Union */ && isObjectLiteralExpression(node) ? discriminateContextualTypeByObjectMembers(node, apparentType) : apparentType.flags & 1048576 /* Union */ && isJsxAttributes(node) ? discriminateContextualTypeByJSXAttributes(node, apparentType) : apparentType;\n    }\n  }\n  function instantiateContextualType(contextualType, node, contextFlags) {\n    if (contextualType && maybeTypeOfKind(contextualType, 465829888 /* Instantiable */)) {\n      const inferenceContext = getInferenceContext(node);\n      if (inferenceContext && contextFlags & 1 /* Signature */ && some(inferenceContext.inferences, hasInferenceCandidatesOrDefault)) {\n        return instantiateInstantiableTypes(contextualType, inferenceContext.nonFixingMapper);\n      }\n      if (inferenceContext == null ? void 0 : inferenceContext.returnMapper) {\n        const type = instantiateInstantiableTypes(contextualType, inferenceContext.returnMapper);\n        return type.flags & 1048576 /* Union */ && containsType(type.types, regularFalseType) && containsType(type.types, regularTrueType) ? filterType(type, (t) => t !== regularFalseType && t !== regularTrueType) : type;\n      }\n    }\n    return contextualType;\n  }\n  function instantiateInstantiableTypes(type, mapper) {\n    if (type.flags & 465829888 /* Instantiable */) {\n      return instantiateType(type, mapper);\n    }\n    if (type.flags & 1048576 /* Union */) {\n      return getUnionType(map(type.types, (t) => instantiateInstantiableTypes(t, mapper)), 0 /* None */);\n    }\n    if (type.flags & 2097152 /* Intersection */) {\n      return getIntersectionType(map(type.types, (t) => instantiateInstantiableTypes(t, mapper)));\n    }\n    return type;\n  }\n  function getContextualType2(node, contextFlags) {\n    var _a;\n    if (node.flags & 67108864 /* InWithStatement */) {\n      return void 0;\n    }\n    const index = findContextualNode(\n      node,\n      /*includeCaches*/\n      !contextFlags\n    );\n    if (index >= 0) {\n      return contextualTypes[index];\n    }\n    const { parent: parent2 } = node;\n    switch (parent2.kind) {\n      case 261 /* VariableDeclaration */:\n      case 170 /* Parameter */:\n      case 173 /* PropertyDeclaration */:\n      case 172 /* PropertySignature */:\n      case 209 /* BindingElement */:\n        return getContextualTypeForInitializerExpression(node, contextFlags);\n      case 220 /* ArrowFunction */:\n      case 254 /* ReturnStatement */:\n        return getContextualTypeForReturnExpression(node, contextFlags);\n      case 230 /* YieldExpression */:\n        return getContextualTypeForYieldOperand(parent2, contextFlags);\n      case 224 /* AwaitExpression */:\n        return getContextualTypeForAwaitOperand(parent2, contextFlags);\n      case 214 /* CallExpression */:\n      case 215 /* NewExpression */:\n        return getContextualTypeForArgument(parent2, node);\n      case 171 /* Decorator */:\n        return getContextualTypeForDecorator(parent2);\n      case 217 /* TypeAssertionExpression */:\n      case 235 /* AsExpression */:\n        return isConstTypeReference(parent2.type) ? getContextualType2(parent2, contextFlags) : getTypeFromTypeNode(parent2.type);\n      case 227 /* BinaryExpression */:\n        return getContextualTypeForBinaryOperand(node, contextFlags);\n      case 304 /* PropertyAssignment */:\n      case 305 /* ShorthandPropertyAssignment */:\n        return getContextualTypeForObjectLiteralElement(parent2, contextFlags);\n      case 306 /* SpreadAssignment */:\n        return getContextualType2(parent2.parent, contextFlags);\n      case 210 /* ArrayLiteralExpression */: {\n        const arrayLiteral = parent2;\n        const type = getApparentTypeOfContextualType(arrayLiteral, contextFlags);\n        const elementIndex = indexOfNode(arrayLiteral.elements, node);\n        const spreadIndices = (_a = getNodeLinks(arrayLiteral)).spreadIndices ?? (_a.spreadIndices = getSpreadIndices(arrayLiteral.elements));\n        return getContextualTypeForElementExpression(type, elementIndex, arrayLiteral.elements.length, spreadIndices.first, spreadIndices.last);\n      }\n      case 228 /* ConditionalExpression */:\n        return getContextualTypeForConditionalOperand(node, contextFlags);\n      case 240 /* TemplateSpan */:\n        Debug.assert(parent2.parent.kind === 229 /* TemplateExpression */);\n        return getContextualTypeForSubstitutionExpression(parent2.parent, node);\n      case 218 /* ParenthesizedExpression */: {\n        if (isInJSFile(parent2)) {\n          if (isJSDocSatisfiesExpression(parent2)) {\n            return getTypeFromTypeNode(getJSDocSatisfiesExpressionType(parent2));\n          }\n          const typeTag = getJSDocTypeTag(parent2);\n          if (typeTag && !isConstTypeReference(typeTag.typeExpression.type)) {\n            return getTypeFromTypeNode(typeTag.typeExpression.type);\n          }\n        }\n        return getContextualType2(parent2, contextFlags);\n      }\n      case 236 /* NonNullExpression */:\n        return getContextualType2(parent2, contextFlags);\n      case 239 /* SatisfiesExpression */:\n        return getTypeFromTypeNode(parent2.type);\n      case 278 /* ExportAssignment */:\n        return tryGetTypeFromEffectiveTypeNode(parent2);\n      case 295 /* JsxExpression */:\n        return getContextualTypeForJsxExpression(parent2, contextFlags);\n      case 292 /* JsxAttribute */:\n      case 294 /* JsxSpreadAttribute */:\n        return getContextualTypeForJsxAttribute(parent2, contextFlags);\n      case 287 /* JsxOpeningElement */:\n      case 286 /* JsxSelfClosingElement */:\n        return getContextualJsxElementAttributesType(parent2, contextFlags);\n      case 302 /* ImportAttribute */:\n        return getContextualImportAttributeType(parent2);\n    }\n    return void 0;\n  }\n  function pushCachedContextualType(node) {\n    pushContextualType(\n      node,\n      getContextualType2(\n        node,\n        /*contextFlags*/\n        void 0\n      ),\n      /*isCache*/\n      true\n    );\n  }\n  function pushContextualType(node, type, isCache) {\n    contextualTypeNodes[contextualTypeCount] = node;\n    contextualTypes[contextualTypeCount] = type;\n    contextualIsCache[contextualTypeCount] = isCache;\n    contextualTypeCount++;\n  }\n  function popContextualType() {\n    contextualTypeCount--;\n    contextualTypeNodes[contextualTypeCount] = void 0;\n    contextualTypes[contextualTypeCount] = void 0;\n    contextualIsCache[contextualTypeCount] = void 0;\n  }\n  function findContextualNode(node, includeCaches) {\n    for (let i = contextualTypeCount - 1; i >= 0; i--) {\n      if (node === contextualTypeNodes[i] && (includeCaches || !contextualIsCache[i])) {\n        return i;\n      }\n    }\n    return -1;\n  }\n  function pushInferenceContext(node, inferenceContext) {\n    inferenceContextNodes[inferenceContextCount] = node;\n    inferenceContexts[inferenceContextCount] = inferenceContext;\n    inferenceContextCount++;\n  }\n  function popInferenceContext() {\n    inferenceContextCount--;\n    inferenceContextNodes[inferenceContextCount] = void 0;\n    inferenceContexts[inferenceContextCount] = void 0;\n  }\n  function getInferenceContext(node) {\n    for (let i = inferenceContextCount - 1; i >= 0; i--) {\n      if (isNodeDescendantOf(node, inferenceContextNodes[i])) {\n        return inferenceContexts[i];\n      }\n    }\n  }\n  function pushActiveMapper(mapper) {\n    activeTypeMappers[activeTypeMappersCount] = mapper;\n    activeTypeMappersCaches[activeTypeMappersCount] ?? (activeTypeMappersCaches[activeTypeMappersCount] = /* @__PURE__ */ new Map());\n    activeTypeMappersCount++;\n  }\n  function popActiveMapper() {\n    activeTypeMappersCount--;\n    activeTypeMappers[activeTypeMappersCount] = void 0;\n    activeTypeMappersCaches[activeTypeMappersCount].clear();\n  }\n  function findActiveMapper(mapper) {\n    for (let i = activeTypeMappersCount - 1; i >= 0; i--) {\n      if (mapper === activeTypeMappers[i]) {\n        return i;\n      }\n    }\n    return -1;\n  }\n  function clearActiveMapperCaches() {\n    for (let i = activeTypeMappersCount - 1; i >= 0; i--) {\n      activeTypeMappersCaches[i].clear();\n    }\n  }\n  function getContextualImportAttributeType(node) {\n    return getTypeOfPropertyOfContextualType(getGlobalImportAttributesType(\n      /*reportErrors*/\n      false\n    ), getNameFromImportAttribute(node));\n  }\n  function getContextualJsxElementAttributesType(node, contextFlags) {\n    if (isJsxOpeningElement(node) && contextFlags !== 4 /* Completions */) {\n      const index = findContextualNode(\n        node.parent,\n        /*includeCaches*/\n        !contextFlags\n      );\n      if (index >= 0) {\n        return contextualTypes[index];\n      }\n    }\n    return getContextualTypeForArgumentAtIndex(node, 0);\n  }\n  function getEffectiveFirstArgumentForJsxSignature(signature, node) {\n    return isJsxOpeningFragment(node) || getJsxReferenceKind(node) !== 0 /* Component */ ? getJsxPropsTypeFromCallSignature(signature, node) : getJsxPropsTypeFromClassType(signature, node);\n  }\n  function getJsxPropsTypeFromCallSignature(sig, context) {\n    let propsType = getTypeOfFirstParameterOfSignatureWithFallback(sig, unknownType);\n    propsType = getJsxManagedAttributesFromLocatedAttributes(context, getJsxNamespaceAt(context), propsType);\n    const intrinsicAttribs = getJsxType(JsxNames.IntrinsicAttributes, context);\n    if (!isErrorType(intrinsicAttribs)) {\n      propsType = intersectTypes(intrinsicAttribs, propsType);\n    }\n    return propsType;\n  }\n  function getJsxPropsTypeForSignatureFromMember(sig, forcedLookupLocation) {\n    if (sig.compositeSignatures) {\n      const results = [];\n      for (const signature of sig.compositeSignatures) {\n        const instance = getReturnTypeOfSignature(signature);\n        if (isTypeAny(instance)) {\n          return instance;\n        }\n        const propType = getTypeOfPropertyOfType(instance, forcedLookupLocation);\n        if (!propType) {\n          return;\n        }\n        results.push(propType);\n      }\n      return getIntersectionType(results);\n    }\n    const instanceType = getReturnTypeOfSignature(sig);\n    return isTypeAny(instanceType) ? instanceType : getTypeOfPropertyOfType(instanceType, forcedLookupLocation);\n  }\n  function getStaticTypeOfReferencedJsxConstructor(context) {\n    if (isJsxOpeningFragment(context)) return getJSXFragmentType(context);\n    if (isJsxIntrinsicTagName(context.tagName)) {\n      const result = getIntrinsicAttributesTypeFromJsxOpeningLikeElement(context);\n      const fakeSignature = createSignatureForJSXIntrinsic(context, result);\n      return getOrCreateTypeFromSignature(fakeSignature);\n    }\n    const tagType = checkExpressionCached(context.tagName);\n    if (tagType.flags & 128 /* StringLiteral */) {\n      const result = getIntrinsicAttributesTypeFromStringLiteralType(tagType, context);\n      if (!result) {\n        return errorType;\n      }\n      const fakeSignature = createSignatureForJSXIntrinsic(context, result);\n      return getOrCreateTypeFromSignature(fakeSignature);\n    }\n    return tagType;\n  }\n  function getJsxManagedAttributesFromLocatedAttributes(context, ns, attributesType) {\n    const managedSym = getJsxLibraryManagedAttributes(ns);\n    if (managedSym) {\n      const ctorType = getStaticTypeOfReferencedJsxConstructor(context);\n      const result = instantiateAliasOrInterfaceWithDefaults(managedSym, isInJSFile(context), ctorType, attributesType);\n      if (result) {\n        return result;\n      }\n    }\n    return attributesType;\n  }\n  function getJsxPropsTypeFromClassType(sig, context) {\n    const ns = getJsxNamespaceAt(context);\n    const forcedLookupLocation = getJsxElementPropertiesName(ns);\n    let attributesType = forcedLookupLocation === void 0 ? getTypeOfFirstParameterOfSignatureWithFallback(sig, unknownType) : forcedLookupLocation === \"\" ? getReturnTypeOfSignature(sig) : getJsxPropsTypeForSignatureFromMember(sig, forcedLookupLocation);\n    if (!attributesType) {\n      if (!!forcedLookupLocation && !!length(context.attributes.properties)) {\n        error2(context, Diagnostics.JSX_element_class_does_not_support_attributes_because_it_does_not_have_a_0_property, unescapeLeadingUnderscores(forcedLookupLocation));\n      }\n      return unknownType;\n    }\n    attributesType = getJsxManagedAttributesFromLocatedAttributes(context, ns, attributesType);\n    if (isTypeAny(attributesType)) {\n      return attributesType;\n    } else {\n      let apparentAttributesType = attributesType;\n      const intrinsicClassAttribs = getJsxType(JsxNames.IntrinsicClassAttributes, context);\n      if (!isErrorType(intrinsicClassAttribs)) {\n        const typeParams = getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(intrinsicClassAttribs.symbol);\n        const hostClassType = getReturnTypeOfSignature(sig);\n        let libraryManagedAttributeType;\n        if (typeParams) {\n          const inferredArgs = fillMissingTypeArguments([hostClassType], typeParams, getMinTypeArgumentCount(typeParams), isInJSFile(context));\n          libraryManagedAttributeType = instantiateType(intrinsicClassAttribs, createTypeMapper(typeParams, inferredArgs));\n        } else libraryManagedAttributeType = intrinsicClassAttribs;\n        apparentAttributesType = intersectTypes(libraryManagedAttributeType, apparentAttributesType);\n      }\n      const intrinsicAttribs = getJsxType(JsxNames.IntrinsicAttributes, context);\n      if (!isErrorType(intrinsicAttribs)) {\n        apparentAttributesType = intersectTypes(intrinsicAttribs, apparentAttributesType);\n      }\n      return apparentAttributesType;\n    }\n  }\n  function getIntersectedSignatures(signatures) {\n    return getStrictOptionValue(compilerOptions, \"noImplicitAny\") ? reduceLeft(\n      signatures,\n      (left, right) => left === right || !left ? left : compareTypeParametersIdentical(left.typeParameters, right.typeParameters) ? combineSignaturesOfIntersectionMembers(left, right) : void 0\n    ) : void 0;\n  }\n  function combineIntersectionThisParam(left, right, mapper) {\n    if (!left || !right) {\n      return left || right;\n    }\n    const thisType = getUnionType([getTypeOfSymbol(left), instantiateType(getTypeOfSymbol(right), mapper)]);\n    return createSymbolWithType(left, thisType);\n  }\n  function combineIntersectionParameters(left, right, mapper) {\n    const leftCount = getParameterCount(left);\n    const rightCount = getParameterCount(right);\n    const longest = leftCount >= rightCount ? left : right;\n    const shorter = longest === left ? right : left;\n    const longestCount = longest === left ? leftCount : rightCount;\n    const eitherHasEffectiveRest = hasEffectiveRestParameter(left) || hasEffectiveRestParameter(right);\n    const needsExtraRestElement = eitherHasEffectiveRest && !hasEffectiveRestParameter(longest);\n    const params = new Array(longestCount + (needsExtraRestElement ? 1 : 0));\n    for (let i = 0; i < longestCount; i++) {\n      let longestParamType = tryGetTypeAtPosition(longest, i);\n      if (longest === right) {\n        longestParamType = instantiateType(longestParamType, mapper);\n      }\n      let shorterParamType = tryGetTypeAtPosition(shorter, i) || unknownType;\n      if (shorter === right) {\n        shorterParamType = instantiateType(shorterParamType, mapper);\n      }\n      const unionParamType = getUnionType([longestParamType, shorterParamType]);\n      const isRestParam = eitherHasEffectiveRest && !needsExtraRestElement && i === longestCount - 1;\n      const isOptional = i >= getMinArgumentCount(longest) && i >= getMinArgumentCount(shorter);\n      const leftName = i >= leftCount ? void 0 : getParameterNameAtPosition(left, i);\n      const rightName = i >= rightCount ? void 0 : getParameterNameAtPosition(right, i);\n      const paramName = leftName === rightName ? leftName : !leftName ? rightName : !rightName ? leftName : void 0;\n      const paramSymbol = createSymbol(\n        1 /* FunctionScopedVariable */ | (isOptional && !isRestParam ? 16777216 /* Optional */ : 0),\n        paramName || `arg${i}`,\n        isRestParam ? 32768 /* RestParameter */ : isOptional ? 16384 /* OptionalParameter */ : 0\n      );\n      paramSymbol.links.type = isRestParam ? createArrayType(unionParamType) : unionParamType;\n      params[i] = paramSymbol;\n    }\n    if (needsExtraRestElement) {\n      const restParamSymbol = createSymbol(1 /* FunctionScopedVariable */, \"args\", 32768 /* RestParameter */);\n      restParamSymbol.links.type = createArrayType(getTypeAtPosition(shorter, longestCount));\n      if (shorter === right) {\n        restParamSymbol.links.type = instantiateType(restParamSymbol.links.type, mapper);\n      }\n      params[longestCount] = restParamSymbol;\n    }\n    return params;\n  }\n  function combineSignaturesOfIntersectionMembers(left, right) {\n    const typeParams = left.typeParameters || right.typeParameters;\n    let paramMapper;\n    if (left.typeParameters && right.typeParameters) {\n      paramMapper = createTypeMapper(right.typeParameters, left.typeParameters);\n    }\n    let flags = (left.flags | right.flags) & (167 /* PropagatingFlags */ & ~1 /* HasRestParameter */);\n    const declaration = left.declaration;\n    const params = combineIntersectionParameters(left, right, paramMapper);\n    const lastParam = lastOrUndefined(params);\n    if (lastParam && getCheckFlags(lastParam) & 32768 /* RestParameter */) {\n      flags |= 1 /* HasRestParameter */;\n    }\n    const thisParam = combineIntersectionThisParam(left.thisParameter, right.thisParameter, paramMapper);\n    const minArgCount = Math.max(left.minArgumentCount, right.minArgumentCount);\n    const result = createSignature(\n      declaration,\n      typeParams,\n      thisParam,\n      params,\n      /*resolvedReturnType*/\n      void 0,\n      /*resolvedTypePredicate*/\n      void 0,\n      minArgCount,\n      flags\n    );\n    result.compositeKind = 2097152 /* Intersection */;\n    result.compositeSignatures = concatenate(left.compositeKind === 2097152 /* Intersection */ && left.compositeSignatures || [left], [right]);\n    if (paramMapper) {\n      result.mapper = left.compositeKind === 2097152 /* Intersection */ && left.mapper && left.compositeSignatures ? combineTypeMappers(left.mapper, paramMapper) : paramMapper;\n    }\n    return result;\n  }\n  function getContextualCallSignature(type, node) {\n    const signatures = getSignaturesOfType(type, 0 /* Call */);\n    const applicableByArity = filter(signatures, (s) => !isAritySmaller(s, node));\n    return applicableByArity.length === 1 ? applicableByArity[0] : getIntersectedSignatures(applicableByArity);\n  }\n  function isAritySmaller(signature, target) {\n    let targetParameterCount = 0;\n    for (; targetParameterCount < target.parameters.length; targetParameterCount++) {\n      const param = target.parameters[targetParameterCount];\n      if (param.initializer || param.questionToken || param.dotDotDotToken || isJSDocOptionalParameter(param)) {\n        break;\n      }\n    }\n    if (target.parameters.length && parameterIsThisKeyword(target.parameters[0])) {\n      targetParameterCount--;\n    }\n    return !hasEffectiveRestParameter(signature) && getParameterCount(signature) < targetParameterCount;\n  }\n  function getContextualSignatureForFunctionLikeDeclaration(node) {\n    return isFunctionExpressionOrArrowFunction(node) || isObjectLiteralMethod(node) ? getContextualSignature(node) : void 0;\n  }\n  function getContextualSignature(node) {\n    Debug.assert(node.kind !== 175 /* MethodDeclaration */ || isObjectLiteralMethod(node));\n    const typeTagSignature = getSignatureOfTypeTag(node);\n    if (typeTagSignature) {\n      return typeTagSignature;\n    }\n    const type = getApparentTypeOfContextualType(node, 1 /* Signature */);\n    if (!type) {\n      return void 0;\n    }\n    if (!(type.flags & 1048576 /* Union */)) {\n      return getContextualCallSignature(type, node);\n    }\n    let signatureList;\n    const types = type.types;\n    for (const current of types) {\n      const signature = getContextualCallSignature(current, node);\n      if (signature) {\n        if (!signatureList) {\n          signatureList = [signature];\n        } else if (!compareSignaturesIdentical(\n          signatureList[0],\n          signature,\n          /*partialMatch*/\n          false,\n          /*ignoreThisTypes*/\n          true,\n          /*ignoreReturnTypes*/\n          true,\n          compareTypesIdentical\n        )) {\n          return void 0;\n        } else {\n          signatureList.push(signature);\n        }\n      }\n    }\n    if (signatureList) {\n      return signatureList.length === 1 ? signatureList[0] : createUnionSignature(signatureList[0], signatureList);\n    }\n  }\n  function checkGrammarRegularExpressionLiteral(node) {\n    const sourceFile = getSourceFileOfNode(node);\n    if (!hasParseDiagnostics(sourceFile) && !node.isUnterminated) {\n      let lastError;\n      scanner2 ?? (scanner2 = createScanner(\n        99 /* ESNext */,\n        /*skipTrivia*/\n        true\n      ));\n      scanner2.setScriptTarget(sourceFile.languageVersion);\n      scanner2.setLanguageVariant(sourceFile.languageVariant);\n      scanner2.setOnError((message, length2, arg0) => {\n        const start = scanner2.getTokenEnd();\n        if (message.category === 3 /* Message */ && lastError && start === lastError.start && length2 === lastError.length) {\n          const error3 = createDetachedDiagnostic(sourceFile.fileName, sourceFile.text, start, length2, message, arg0);\n          addRelatedInfo(lastError, error3);\n        } else if (!lastError || start !== lastError.start) {\n          lastError = createFileDiagnostic(sourceFile, start, length2, message, arg0);\n          diagnostics.add(lastError);\n        }\n      });\n      scanner2.setText(sourceFile.text, node.pos, node.end - node.pos);\n      try {\n        scanner2.scan();\n        Debug.assert(scanner2.reScanSlashToken(\n          /*reportErrors*/\n          true\n        ) === 14 /* RegularExpressionLiteral */, \"Expected scanner to rescan RegularExpressionLiteral\");\n        return !!lastError;\n      } finally {\n        scanner2.setText(\"\");\n        scanner2.setOnError(\n          /*onError*/\n          void 0\n        );\n      }\n    }\n    return false;\n  }\n  function checkRegularExpressionLiteral(node) {\n    const nodeLinks2 = getNodeLinks(node);\n    if (!(nodeLinks2.flags & 1 /* TypeChecked */)) {\n      nodeLinks2.flags |= 1 /* TypeChecked */;\n      addLazyDiagnostic(() => checkGrammarRegularExpressionLiteral(node));\n    }\n    return globalRegExpType;\n  }\n  function checkSpreadExpression(node, checkMode) {\n    if (languageVersion < LanguageFeatureMinimumTarget.SpreadElements) {\n      checkExternalEmitHelpers(node, compilerOptions.downlevelIteration ? 1536 /* SpreadIncludes */ : 1024 /* SpreadArray */);\n    }\n    const arrayOrIterableType = checkExpression(node.expression, checkMode);\n    return checkIteratedTypeOrElementType(33 /* Spread */, arrayOrIterableType, undefinedType, node.expression);\n  }\n  function checkSyntheticExpression(node) {\n    return node.isSpread ? getIndexedAccessType(node.type, numberType) : node.type;\n  }\n  function hasDefaultValue(node) {\n    return node.kind === 209 /* BindingElement */ && !!node.initializer || node.kind === 304 /* PropertyAssignment */ && hasDefaultValue(node.initializer) || node.kind === 305 /* ShorthandPropertyAssignment */ && !!node.objectAssignmentInitializer || node.kind === 227 /* BinaryExpression */ && node.operatorToken.kind === 64 /* EqualsToken */;\n  }\n  function isSpreadIntoCallOrNew(node) {\n    const parent2 = walkUpParenthesizedExpressions(node.parent);\n    return isSpreadElement(parent2) && isCallOrNewExpression(parent2.parent);\n  }\n  function checkArrayLiteral(node, checkMode, forceTuple) {\n    const elements = node.elements;\n    const elementCount = elements.length;\n    const elementTypes = [];\n    const elementFlags = [];\n    pushCachedContextualType(node);\n    const inDestructuringPattern = isAssignmentTarget(node);\n    const inConstContext = isConstContext(node);\n    const contextualType = getApparentTypeOfContextualType(\n      node,\n      /*contextFlags*/\n      void 0\n    );\n    const inTupleContext = isSpreadIntoCallOrNew(node) || !!contextualType && someType(contextualType, (t) => isTupleLikeType(t) || isGenericMappedType(t) && !t.nameType && !!getHomomorphicTypeVariable(t.target || t));\n    let hasOmittedExpression = false;\n    for (let i = 0; i < elementCount; i++) {\n      const e = elements[i];\n      if (e.kind === 231 /* SpreadElement */) {\n        if (languageVersion < LanguageFeatureMinimumTarget.SpreadElements) {\n          checkExternalEmitHelpers(e, compilerOptions.downlevelIteration ? 1536 /* SpreadIncludes */ : 1024 /* SpreadArray */);\n        }\n        const spreadType = checkExpression(e.expression, checkMode, forceTuple);\n        if (isArrayLikeType(spreadType)) {\n          elementTypes.push(spreadType);\n          elementFlags.push(8 /* Variadic */);\n        } else if (inDestructuringPattern) {\n          const restElementType = getIndexTypeOfType(spreadType, numberType) || getIteratedTypeOrElementType(\n            65 /* Destructuring */,\n            spreadType,\n            undefinedType,\n            /*errorNode*/\n            void 0,\n            /*checkAssignability*/\n            false\n          ) || unknownType;\n          elementTypes.push(restElementType);\n          elementFlags.push(4 /* Rest */);\n        } else {\n          elementTypes.push(checkIteratedTypeOrElementType(33 /* Spread */, spreadType, undefinedType, e.expression));\n          elementFlags.push(4 /* Rest */);\n        }\n      } else if (exactOptionalPropertyTypes && e.kind === 233 /* OmittedExpression */) {\n        hasOmittedExpression = true;\n        elementTypes.push(undefinedOrMissingType);\n        elementFlags.push(2 /* Optional */);\n      } else {\n        const type = checkExpressionForMutableLocation(e, checkMode, forceTuple);\n        elementTypes.push(addOptionality(\n          type,\n          /*isProperty*/\n          true,\n          hasOmittedExpression\n        ));\n        elementFlags.push(hasOmittedExpression ? 2 /* Optional */ : 1 /* Required */);\n        if (inTupleContext && checkMode && checkMode & 2 /* Inferential */ && !(checkMode & 4 /* SkipContextSensitive */) && isContextSensitive(e)) {\n          const inferenceContext = getInferenceContext(node);\n          Debug.assert(inferenceContext);\n          addIntraExpressionInferenceSite(inferenceContext, e, type);\n        }\n      }\n    }\n    popContextualType();\n    if (inDestructuringPattern) {\n      return createTupleType(elementTypes, elementFlags);\n    }\n    if (forceTuple || inConstContext || inTupleContext) {\n      return createArrayLiteralType(createTupleType(\n        elementTypes,\n        elementFlags,\n        /*readonly*/\n        inConstContext && !(contextualType && someType(contextualType, isMutableArrayLikeType))\n      ));\n    }\n    return createArrayLiteralType(createArrayType(\n      elementTypes.length ? getUnionType(sameMap(elementTypes, (t, i) => elementFlags[i] & 8 /* Variadic */ ? getIndexedAccessTypeOrUndefined(t, numberType) || anyType : t), 2 /* Subtype */) : strictNullChecks ? implicitNeverType : undefinedWideningType,\n      inConstContext\n    ));\n  }\n  function createArrayLiteralType(type) {\n    if (!(getObjectFlags(type) & 4 /* Reference */)) {\n      return type;\n    }\n    let literalType = type.literalType;\n    if (!literalType) {\n      literalType = type.literalType = cloneTypeReference(type);\n      literalType.objectFlags |= 16384 /* ArrayLiteral */ | 131072 /* ContainsObjectOrArrayLiteral */;\n    }\n    return literalType;\n  }\n  function isNumericName(name) {\n    switch (name.kind) {\n      case 168 /* ComputedPropertyName */:\n        return isNumericComputedName(name);\n      case 80 /* Identifier */:\n        return isNumericLiteralName(name.escapedText);\n      case 9 /* NumericLiteral */:\n      case 11 /* StringLiteral */:\n        return isNumericLiteralName(name.text);\n      default:\n        return false;\n    }\n  }\n  function isNumericComputedName(name) {\n    return isTypeAssignableToKind(checkComputedPropertyName(name), 296 /* NumberLike */);\n  }\n  function checkComputedPropertyName(node) {\n    const links = getNodeLinks(node.expression);\n    if (!links.resolvedType) {\n      if ((isTypeLiteralNode(node.parent.parent) || isClassLike(node.parent.parent) || isInterfaceDeclaration(node.parent.parent)) && isBinaryExpression(node.expression) && node.expression.operatorToken.kind === 103 /* InKeyword */ && node.parent.kind !== 178 /* GetAccessor */ && node.parent.kind !== 179 /* SetAccessor */) {\n        return links.resolvedType = errorType;\n      }\n      links.resolvedType = checkExpression(node.expression);\n      if (isPropertyDeclaration(node.parent) && !hasStaticModifier(node.parent) && isClassExpression(node.parent.parent)) {\n        const container = getEnclosingBlockScopeContainer(node.parent.parent);\n        const enclosingIterationStatement = getEnclosingIterationStatement(container);\n        if (enclosingIterationStatement) {\n          getNodeLinks(enclosingIterationStatement).flags |= 4096 /* LoopWithCapturedBlockScopedBinding */;\n          getNodeLinks(node).flags |= 32768 /* BlockScopedBindingInLoop */;\n          getNodeLinks(node.parent.parent).flags |= 32768 /* BlockScopedBindingInLoop */;\n        }\n      }\n      if (links.resolvedType.flags & 98304 /* Nullable */ || !isTypeAssignableToKind(links.resolvedType, 402653316 /* StringLike */ | 296 /* NumberLike */ | 12288 /* ESSymbolLike */) && !isTypeAssignableTo(links.resolvedType, stringNumberSymbolType)) {\n        error2(node, Diagnostics.A_computed_property_name_must_be_of_type_string_number_symbol_or_any);\n      }\n    }\n    return links.resolvedType;\n  }\n  function isSymbolWithNumericName(symbol) {\n    var _a;\n    const firstDecl = (_a = symbol.declarations) == null ? void 0 : _a[0];\n    return isNumericLiteralName(symbol.escapedName) || firstDecl && isNamedDeclaration(firstDecl) && isNumericName(firstDecl.name);\n  }\n  function isSymbolWithSymbolName(symbol) {\n    var _a;\n    const firstDecl = (_a = symbol.declarations) == null ? void 0 : _a[0];\n    return isKnownSymbol(symbol) || firstDecl && isNamedDeclaration(firstDecl) && isComputedPropertyName(firstDecl.name) && isTypeAssignableToKind(checkComputedPropertyName(firstDecl.name), 4096 /* ESSymbol */);\n  }\n  function isSymbolWithComputedName(symbol) {\n    var _a;\n    const firstDecl = (_a = symbol.declarations) == null ? void 0 : _a[0];\n    return firstDecl && isNamedDeclaration(firstDecl) && isComputedPropertyName(firstDecl.name);\n  }\n  function getObjectLiteralIndexInfo(isReadonly, offset, properties, keyType) {\n    var _a;\n    const propTypes = [];\n    let components;\n    for (let i = offset; i < properties.length; i++) {\n      const prop = properties[i];\n      if (keyType === stringType && !isSymbolWithSymbolName(prop) || keyType === numberType && isSymbolWithNumericName(prop) || keyType === esSymbolType && isSymbolWithSymbolName(prop)) {\n        propTypes.push(getTypeOfSymbol(properties[i]));\n        if (isSymbolWithComputedName(properties[i])) {\n          components = append(components, (_a = properties[i].declarations) == null ? void 0 : _a[0]);\n        }\n      }\n    }\n    const unionType = propTypes.length ? getUnionType(propTypes, 2 /* Subtype */) : undefinedType;\n    return createIndexInfo(\n      keyType,\n      unionType,\n      isReadonly,\n      /*declaration*/\n      void 0,\n      components\n    );\n  }\n  function getImmediateAliasedSymbol(symbol) {\n    Debug.assert((symbol.flags & 2097152 /* Alias */) !== 0, \"Should only get Alias here.\");\n    const links = getSymbolLinks(symbol);\n    if (!links.immediateTarget) {\n      const node = getDeclarationOfAliasSymbol(symbol);\n      if (!node) return Debug.fail();\n      links.immediateTarget = getTargetOfAliasDeclaration(\n        node,\n        /*dontRecursivelyResolve*/\n        true\n      );\n    }\n    return links.immediateTarget;\n  }\n  function checkObjectLiteral(node, checkMode = 0 /* Normal */) {\n    const inDestructuringPattern = isAssignmentTarget(node);\n    checkGrammarObjectLiteralExpression(node, inDestructuringPattern);\n    const allPropertiesTable = strictNullChecks ? createSymbolTable() : void 0;\n    let propertiesTable = createSymbolTable();\n    let propertiesArray = [];\n    let spread = emptyObjectType;\n    pushCachedContextualType(node);\n    const contextualType = getApparentTypeOfContextualType(\n      node,\n      /*contextFlags*/\n      void 0\n    );\n    const contextualTypeHasPattern = contextualType && contextualType.pattern && (contextualType.pattern.kind === 207 /* ObjectBindingPattern */ || contextualType.pattern.kind === 211 /* ObjectLiteralExpression */);\n    const inConstContext = isConstContext(node);\n    const checkFlags = inConstContext ? 8 /* Readonly */ : 0;\n    const isInJavascript = isInJSFile(node) && !isInJsonFile(node);\n    const enumTag = isInJavascript ? getJSDocEnumTag(node) : void 0;\n    const isJSObjectLiteral = !contextualType && isInJavascript && !enumTag;\n    let objectFlags = 8192 /* FreshLiteral */;\n    let patternWithComputedProperties = false;\n    let hasComputedStringProperty = false;\n    let hasComputedNumberProperty = false;\n    let hasComputedSymbolProperty = false;\n    for (const elem of node.properties) {\n      if (elem.name && isComputedPropertyName(elem.name)) {\n        checkComputedPropertyName(elem.name);\n      }\n    }\n    let offset = 0;\n    for (const memberDecl of node.properties) {\n      let member = getSymbolOfDeclaration(memberDecl);\n      const computedNameType = memberDecl.name && memberDecl.name.kind === 168 /* ComputedPropertyName */ ? checkComputedPropertyName(memberDecl.name) : void 0;\n      if (memberDecl.kind === 304 /* PropertyAssignment */ || memberDecl.kind === 305 /* ShorthandPropertyAssignment */ || isObjectLiteralMethod(memberDecl)) {\n        let type = memberDecl.kind === 304 /* PropertyAssignment */ ? checkPropertyAssignment(memberDecl, checkMode) : (\n          // avoid resolving the left side of the ShorthandPropertyAssignment outside of the destructuring\n          // for error recovery purposes. For example, if a user wrote `{ a = 100 }` instead of `{ a: 100 }`.\n          // we don't want to say \"could not find 'a'\".\n          memberDecl.kind === 305 /* ShorthandPropertyAssignment */ ? checkExpressionForMutableLocation(!inDestructuringPattern && memberDecl.objectAssignmentInitializer ? memberDecl.objectAssignmentInitializer : memberDecl.name, checkMode) : checkObjectLiteralMethod(memberDecl, checkMode)\n        );\n        if (isInJavascript) {\n          const jsDocType = getTypeForDeclarationFromJSDocComment(memberDecl);\n          if (jsDocType) {\n            checkTypeAssignableTo(type, jsDocType, memberDecl);\n            type = jsDocType;\n          } else if (enumTag && enumTag.typeExpression) {\n            checkTypeAssignableTo(type, getTypeFromTypeNode(enumTag.typeExpression), memberDecl);\n          }\n        }\n        objectFlags |= getObjectFlags(type) & 458752 /* PropagatingFlags */;\n        const nameType = computedNameType && isTypeUsableAsPropertyName(computedNameType) ? computedNameType : void 0;\n        const prop = nameType ? createSymbol(4 /* Property */ | member.flags, getPropertyNameFromType(nameType), checkFlags | 4096 /* Late */) : createSymbol(4 /* Property */ | member.flags, member.escapedName, checkFlags);\n        if (nameType) {\n          prop.links.nameType = nameType;\n        }\n        if (inDestructuringPattern && hasDefaultValue(memberDecl)) {\n          prop.flags |= 16777216 /* Optional */;\n        } else if (contextualTypeHasPattern && !(getObjectFlags(contextualType) & 512 /* ObjectLiteralPatternWithComputedProperties */)) {\n          const impliedProp = getPropertyOfType(contextualType, member.escapedName);\n          if (impliedProp) {\n            prop.flags |= impliedProp.flags & 16777216 /* Optional */;\n          } else if (!getIndexInfoOfType(contextualType, stringType)) {\n            error2(memberDecl.name, Diagnostics.Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1, symbolToString(member), typeToString(contextualType));\n          }\n        }\n        prop.declarations = member.declarations;\n        prop.parent = member.parent;\n        if (member.valueDeclaration) {\n          prop.valueDeclaration = member.valueDeclaration;\n        }\n        prop.links.type = type;\n        prop.links.target = member;\n        member = prop;\n        allPropertiesTable == null ? void 0 : allPropertiesTable.set(prop.escapedName, prop);\n        if (contextualType && checkMode & 2 /* Inferential */ && !(checkMode & 4 /* SkipContextSensitive */) && (memberDecl.kind === 304 /* PropertyAssignment */ || memberDecl.kind === 175 /* MethodDeclaration */) && isContextSensitive(memberDecl)) {\n          const inferenceContext = getInferenceContext(node);\n          Debug.assert(inferenceContext);\n          const inferenceNode = memberDecl.kind === 304 /* PropertyAssignment */ ? memberDecl.initializer : memberDecl;\n          addIntraExpressionInferenceSite(inferenceContext, inferenceNode, type);\n        }\n      } else if (memberDecl.kind === 306 /* SpreadAssignment */) {\n        if (languageVersion < LanguageFeatureMinimumTarget.ObjectAssign) {\n          checkExternalEmitHelpers(memberDecl, 2 /* Assign */);\n        }\n        if (propertiesArray.length > 0) {\n          spread = getSpreadType(spread, createObjectLiteralType(), node.symbol, objectFlags, inConstContext);\n          propertiesArray = [];\n          propertiesTable = createSymbolTable();\n          hasComputedStringProperty = false;\n          hasComputedNumberProperty = false;\n          hasComputedSymbolProperty = false;\n        }\n        const type = getReducedType(checkExpression(memberDecl.expression, checkMode & 2 /* Inferential */));\n        if (isValidSpreadType(type)) {\n          const mergedType = tryMergeUnionOfObjectTypeAndEmptyObject(type, inConstContext);\n          if (allPropertiesTable) {\n            checkSpreadPropOverrides(mergedType, allPropertiesTable, memberDecl);\n          }\n          offset = propertiesArray.length;\n          if (isErrorType(spread)) {\n            continue;\n          }\n          spread = getSpreadType(spread, mergedType, node.symbol, objectFlags, inConstContext);\n        } else {\n          error2(memberDecl, Diagnostics.Spread_types_may_only_be_created_from_object_types);\n          spread = errorType;\n        }\n        continue;\n      } else {\n        Debug.assert(memberDecl.kind === 178 /* GetAccessor */ || memberDecl.kind === 179 /* SetAccessor */);\n        checkNodeDeferred(memberDecl);\n      }\n      if (computedNameType && !(computedNameType.flags & 8576 /* StringOrNumberLiteralOrUnique */)) {\n        if (isTypeAssignableTo(computedNameType, stringNumberSymbolType)) {\n          if (isTypeAssignableTo(computedNameType, numberType)) {\n            hasComputedNumberProperty = true;\n          } else if (isTypeAssignableTo(computedNameType, esSymbolType)) {\n            hasComputedSymbolProperty = true;\n          } else {\n            hasComputedStringProperty = true;\n          }\n          if (inDestructuringPattern) {\n            patternWithComputedProperties = true;\n          }\n        }\n      } else {\n        propertiesTable.set(member.escapedName, member);\n      }\n      propertiesArray.push(member);\n    }\n    popContextualType();\n    if (isErrorType(spread)) {\n      return errorType;\n    }\n    if (spread !== emptyObjectType) {\n      if (propertiesArray.length > 0) {\n        spread = getSpreadType(spread, createObjectLiteralType(), node.symbol, objectFlags, inConstContext);\n        propertiesArray = [];\n        propertiesTable = createSymbolTable();\n        hasComputedStringProperty = false;\n        hasComputedNumberProperty = false;\n      }\n      return mapType(spread, (t) => t === emptyObjectType ? createObjectLiteralType() : t);\n    }\n    return createObjectLiteralType();\n    function createObjectLiteralType() {\n      const indexInfos = [];\n      const isReadonly = isConstContext(node);\n      if (hasComputedStringProperty) indexInfos.push(getObjectLiteralIndexInfo(isReadonly, offset, propertiesArray, stringType));\n      if (hasComputedNumberProperty) indexInfos.push(getObjectLiteralIndexInfo(isReadonly, offset, propertiesArray, numberType));\n      if (hasComputedSymbolProperty) indexInfos.push(getObjectLiteralIndexInfo(isReadonly, offset, propertiesArray, esSymbolType));\n      const result = createAnonymousType(node.symbol, propertiesTable, emptyArray, emptyArray, indexInfos);\n      result.objectFlags |= objectFlags | 128 /* ObjectLiteral */ | 131072 /* ContainsObjectOrArrayLiteral */;\n      if (isJSObjectLiteral) {\n        result.objectFlags |= 4096 /* JSLiteral */;\n      }\n      if (patternWithComputedProperties) {\n        result.objectFlags |= 512 /* ObjectLiteralPatternWithComputedProperties */;\n      }\n      if (inDestructuringPattern) {\n        result.pattern = node;\n      }\n      return result;\n    }\n  }\n  function isValidSpreadType(type) {\n    const t = removeDefinitelyFalsyTypes(mapType(type, getBaseConstraintOrType));\n    return !!(t.flags & (1 /* Any */ | 67108864 /* NonPrimitive */ | 524288 /* Object */ | 58982400 /* InstantiableNonPrimitive */) || t.flags & 3145728 /* UnionOrIntersection */ && every(t.types, isValidSpreadType));\n  }\n  function checkJsxSelfClosingElementDeferred(node) {\n    checkJsxOpeningLikeElementOrOpeningFragment(node);\n  }\n  function checkJsxSelfClosingElement(node, _checkMode) {\n    checkNodeDeferred(node);\n    return getJsxElementTypeAt(node) || anyType;\n  }\n  function checkJsxElementDeferred(node) {\n    checkJsxOpeningLikeElementOrOpeningFragment(node.openingElement);\n    if (isJsxIntrinsicTagName(node.closingElement.tagName)) {\n      getIntrinsicTagSymbol(node.closingElement);\n    } else {\n      checkExpression(node.closingElement.tagName);\n    }\n    checkJsxChildren(node);\n  }\n  function checkJsxElement(node, _checkMode) {\n    checkNodeDeferred(node);\n    return getJsxElementTypeAt(node) || anyType;\n  }\n  function checkJsxFragment(node) {\n    checkJsxOpeningLikeElementOrOpeningFragment(node.openingFragment);\n    const nodeSourceFile = getSourceFileOfNode(node);\n    if (getJSXTransformEnabled(compilerOptions) && (compilerOptions.jsxFactory || nodeSourceFile.pragmas.has(\"jsx\")) && !compilerOptions.jsxFragmentFactory && !nodeSourceFile.pragmas.has(\"jsxfrag\")) {\n      error2(\n        node,\n        compilerOptions.jsxFactory ? Diagnostics.The_jsxFragmentFactory_compiler_option_must_be_provided_to_use_JSX_fragments_with_the_jsxFactory_compiler_option : Diagnostics.An_jsxFrag_pragma_is_required_when_using_an_jsx_pragma_with_JSX_fragments\n      );\n    }\n    checkJsxChildren(node);\n    const jsxElementType = getJsxElementTypeAt(node);\n    return isErrorType(jsxElementType) ? anyType : jsxElementType;\n  }\n  function isHyphenatedJsxName(name) {\n    return name.includes(\"-\");\n  }\n  function isJsxIntrinsicTagName(tagName) {\n    return isIdentifier(tagName) && isIntrinsicJsxName(tagName.escapedText) || isJsxNamespacedName(tagName);\n  }\n  function checkJsxAttribute(node, checkMode) {\n    return node.initializer ? checkExpressionForMutableLocation(node.initializer, checkMode) : trueType;\n  }\n  function createJsxAttributesTypeFromAttributesProperty(openingLikeElement, checkMode = 0 /* Normal */) {\n    const allAttributesTable = strictNullChecks ? createSymbolTable() : void 0;\n    let attributesTable = createSymbolTable();\n    let spread = emptyJsxObjectType;\n    let hasSpreadAnyType = false;\n    let typeToIntersect;\n    let explicitlySpecifyChildrenAttribute = false;\n    let objectFlags = 2048 /* JsxAttributes */;\n    const jsxChildrenPropertyName = getJsxElementChildrenPropertyName(getJsxNamespaceAt(openingLikeElement));\n    const isJsxOpenFragment = isJsxOpeningFragment(openingLikeElement);\n    let attributesSymbol;\n    let attributeParent = openingLikeElement;\n    if (!isJsxOpenFragment) {\n      const attributes = openingLikeElement.attributes;\n      attributesSymbol = attributes.symbol;\n      attributeParent = attributes;\n      const contextualType = getContextualType2(attributes, 0 /* None */);\n      for (const attributeDecl of attributes.properties) {\n        const member = attributeDecl.symbol;\n        if (isJsxAttribute(attributeDecl)) {\n          const exprType = checkJsxAttribute(attributeDecl, checkMode);\n          objectFlags |= getObjectFlags(exprType) & 458752 /* PropagatingFlags */;\n          const attributeSymbol = createSymbol(4 /* Property */ | member.flags, member.escapedName);\n          attributeSymbol.declarations = member.declarations;\n          attributeSymbol.parent = member.parent;\n          if (member.valueDeclaration) {\n            attributeSymbol.valueDeclaration = member.valueDeclaration;\n          }\n          attributeSymbol.links.type = exprType;\n          attributeSymbol.links.target = member;\n          attributesTable.set(attributeSymbol.escapedName, attributeSymbol);\n          allAttributesTable == null ? void 0 : allAttributesTable.set(attributeSymbol.escapedName, attributeSymbol);\n          if (getEscapedTextOfJsxAttributeName(attributeDecl.name) === jsxChildrenPropertyName) {\n            explicitlySpecifyChildrenAttribute = true;\n          }\n          if (contextualType) {\n            const prop = getPropertyOfType(contextualType, member.escapedName);\n            if (prop && prop.declarations && isDeprecatedSymbol(prop) && isIdentifier(attributeDecl.name)) {\n              addDeprecatedSuggestion(attributeDecl.name, prop.declarations, attributeDecl.name.escapedText);\n            }\n          }\n          if (contextualType && checkMode & 2 /* Inferential */ && !(checkMode & 4 /* SkipContextSensitive */) && isContextSensitive(attributeDecl)) {\n            const inferenceContext = getInferenceContext(attributes);\n            Debug.assert(inferenceContext);\n            const inferenceNode = attributeDecl.initializer.expression;\n            addIntraExpressionInferenceSite(inferenceContext, inferenceNode, exprType);\n          }\n        } else {\n          Debug.assert(attributeDecl.kind === 294 /* JsxSpreadAttribute */);\n          if (attributesTable.size > 0) {\n            spread = getSpreadType(\n              spread,\n              createJsxAttributesTypeHelper(),\n              attributes.symbol,\n              objectFlags,\n              /*readonly*/\n              false\n            );\n            attributesTable = createSymbolTable();\n          }\n          const exprType = getReducedType(checkExpression(attributeDecl.expression, checkMode & 2 /* Inferential */));\n          if (isTypeAny(exprType)) {\n            hasSpreadAnyType = true;\n          }\n          if (isValidSpreadType(exprType)) {\n            spread = getSpreadType(\n              spread,\n              exprType,\n              attributes.symbol,\n              objectFlags,\n              /*readonly*/\n              false\n            );\n            if (allAttributesTable) {\n              checkSpreadPropOverrides(exprType, allAttributesTable, attributeDecl);\n            }\n          } else {\n            error2(attributeDecl.expression, Diagnostics.Spread_types_may_only_be_created_from_object_types);\n            typeToIntersect = typeToIntersect ? getIntersectionType([typeToIntersect, exprType]) : exprType;\n          }\n        }\n      }\n      if (!hasSpreadAnyType) {\n        if (attributesTable.size > 0) {\n          spread = getSpreadType(\n            spread,\n            createJsxAttributesTypeHelper(),\n            attributes.symbol,\n            objectFlags,\n            /*readonly*/\n            false\n          );\n        }\n      }\n    }\n    const parent2 = openingLikeElement.parent;\n    if ((isJsxElement(parent2) && parent2.openingElement === openingLikeElement || isJsxFragment(parent2) && parent2.openingFragment === openingLikeElement) && getSemanticJsxChildren(parent2.children).length > 0) {\n      const childrenTypes = checkJsxChildren(parent2, checkMode);\n      if (!hasSpreadAnyType && jsxChildrenPropertyName && jsxChildrenPropertyName !== \"\") {\n        if (explicitlySpecifyChildrenAttribute) {\n          error2(attributeParent, Diagnostics._0_are_specified_twice_The_attribute_named_0_will_be_overwritten, unescapeLeadingUnderscores(jsxChildrenPropertyName));\n        }\n        const contextualType = isJsxOpeningElement(openingLikeElement) ? getApparentTypeOfContextualType(\n          openingLikeElement.attributes,\n          /*contextFlags*/\n          void 0\n        ) : void 0;\n        const childrenContextualType = contextualType && getTypeOfPropertyOfContextualType(contextualType, jsxChildrenPropertyName);\n        const childrenPropSymbol = createSymbol(4 /* Property */, jsxChildrenPropertyName);\n        childrenPropSymbol.links.type = childrenTypes.length === 1 ? childrenTypes[0] : childrenContextualType && someType(childrenContextualType, isTupleLikeType) ? createTupleType(childrenTypes) : createArrayType(getUnionType(childrenTypes));\n        childrenPropSymbol.valueDeclaration = factory.createPropertySignature(\n          /*modifiers*/\n          void 0,\n          unescapeLeadingUnderscores(jsxChildrenPropertyName),\n          /*questionToken*/\n          void 0,\n          /*type*/\n          void 0\n        );\n        setParent(childrenPropSymbol.valueDeclaration, attributeParent);\n        childrenPropSymbol.valueDeclaration.symbol = childrenPropSymbol;\n        const childPropMap = createSymbolTable();\n        childPropMap.set(jsxChildrenPropertyName, childrenPropSymbol);\n        spread = getSpreadType(\n          spread,\n          createAnonymousType(attributesSymbol, childPropMap, emptyArray, emptyArray, emptyArray),\n          attributesSymbol,\n          objectFlags,\n          /*readonly*/\n          false\n        );\n      }\n    }\n    if (hasSpreadAnyType) {\n      return anyType;\n    }\n    if (typeToIntersect && spread !== emptyJsxObjectType) {\n      return getIntersectionType([typeToIntersect, spread]);\n    }\n    return typeToIntersect || (spread === emptyJsxObjectType ? createJsxAttributesTypeHelper() : spread);\n    function createJsxAttributesTypeHelper() {\n      objectFlags |= 8192 /* FreshLiteral */;\n      return createJsxAttributesType(objectFlags, attributesSymbol, attributesTable);\n    }\n  }\n  function createJsxAttributesType(objectFlags, attributesSymbol, attributesTable) {\n    const result = createAnonymousType(attributesSymbol, attributesTable, emptyArray, emptyArray, emptyArray);\n    result.objectFlags |= objectFlags | 8192 /* FreshLiteral */ | 128 /* ObjectLiteral */ | 131072 /* ContainsObjectOrArrayLiteral */;\n    return result;\n  }\n  function checkJsxChildren(node, checkMode) {\n    const childrenTypes = [];\n    for (const child of node.children) {\n      if (child.kind === 12 /* JsxText */) {\n        if (!child.containsOnlyTriviaWhiteSpaces) {\n          childrenTypes.push(stringType);\n        }\n      } else if (child.kind === 295 /* JsxExpression */ && !child.expression) {\n        continue;\n      } else {\n        childrenTypes.push(checkExpressionForMutableLocation(child, checkMode));\n      }\n    }\n    return childrenTypes;\n  }\n  function checkSpreadPropOverrides(type, props, spread) {\n    for (const right of getPropertiesOfType(type)) {\n      if (!(right.flags & 16777216 /* Optional */)) {\n        const left = props.get(right.escapedName);\n        if (left) {\n          const diagnostic = error2(left.valueDeclaration, Diagnostics._0_is_specified_more_than_once_so_this_usage_will_be_overwritten, unescapeLeadingUnderscores(left.escapedName));\n          addRelatedInfo(diagnostic, createDiagnosticForNode(spread, Diagnostics.This_spread_always_overwrites_this_property));\n        }\n      }\n    }\n  }\n  function checkJsxAttributes(node, checkMode) {\n    return createJsxAttributesTypeFromAttributesProperty(node.parent, checkMode);\n  }\n  function getJsxType(name, location) {\n    const namespace = getJsxNamespaceAt(location);\n    const exports2 = namespace && getExportsOfSymbol(namespace);\n    const typeSymbol = exports2 && getSymbol2(exports2, name, 788968 /* Type */);\n    return typeSymbol ? getDeclaredTypeOfSymbol(typeSymbol) : errorType;\n  }\n  function getIntrinsicTagSymbol(node) {\n    const links = getNodeLinks(node);\n    if (!links.resolvedSymbol) {\n      const intrinsicElementsType = getJsxType(JsxNames.IntrinsicElements, node);\n      if (!isErrorType(intrinsicElementsType)) {\n        if (!isIdentifier(node.tagName) && !isJsxNamespacedName(node.tagName)) return Debug.fail();\n        const propName = isJsxNamespacedName(node.tagName) ? getEscapedTextOfJsxNamespacedName(node.tagName) : node.tagName.escapedText;\n        const intrinsicProp = getPropertyOfType(intrinsicElementsType, propName);\n        if (intrinsicProp) {\n          links.jsxFlags |= 1 /* IntrinsicNamedElement */;\n          return links.resolvedSymbol = intrinsicProp;\n        }\n        const indexSymbol = getApplicableIndexSymbol(intrinsicElementsType, getStringLiteralType(unescapeLeadingUnderscores(propName)));\n        if (indexSymbol) {\n          links.jsxFlags |= 2 /* IntrinsicIndexedElement */;\n          return links.resolvedSymbol = indexSymbol;\n        }\n        if (getTypeOfPropertyOrIndexSignatureOfType(intrinsicElementsType, propName)) {\n          links.jsxFlags |= 2 /* IntrinsicIndexedElement */;\n          return links.resolvedSymbol = intrinsicElementsType.symbol;\n        }\n        error2(node, Diagnostics.Property_0_does_not_exist_on_type_1, intrinsicTagNameToString(node.tagName), \"JSX.\" + JsxNames.IntrinsicElements);\n        return links.resolvedSymbol = unknownSymbol;\n      } else {\n        if (noImplicitAny) {\n          error2(node, Diagnostics.JSX_element_implicitly_has_type_any_because_no_interface_JSX_0_exists, unescapeLeadingUnderscores(JsxNames.IntrinsicElements));\n        }\n        return links.resolvedSymbol = unknownSymbol;\n      }\n    }\n    return links.resolvedSymbol;\n  }\n  function getJsxNamespaceContainerForImplicitImport(location) {\n    const file = location && getSourceFileOfNode(location);\n    const links = file && getNodeLinks(file);\n    if (links && links.jsxImplicitImportContainer === false) {\n      return void 0;\n    }\n    if (links && links.jsxImplicitImportContainer) {\n      return links.jsxImplicitImportContainer;\n    }\n    const runtimeImportSpecifier = getJSXRuntimeImport(getJSXImplicitImportBase(compilerOptions, file), compilerOptions);\n    if (!runtimeImportSpecifier) {\n      return void 0;\n    }\n    const isClassic = getEmitModuleResolutionKind(compilerOptions) === 1 /* Classic */;\n    const errorMessage = isClassic ? Diagnostics.Cannot_find_module_0_Did_you_mean_to_set_the_moduleResolution_option_to_nodenext_or_to_add_aliases_to_the_paths_option : Diagnostics.This_JSX_tag_requires_the_module_path_0_to_exist_but_none_could_be_found_Make_sure_you_have_types_for_the_appropriate_package_installed;\n    const specifier = getJSXRuntimeImportSpecifier(file, runtimeImportSpecifier);\n    const mod = resolveExternalModule(specifier || location, runtimeImportSpecifier, errorMessage, location);\n    const result = mod && mod !== unknownSymbol ? getMergedSymbol(resolveSymbol(mod)) : void 0;\n    if (links) {\n      links.jsxImplicitImportContainer = result || false;\n    }\n    return result;\n  }\n  function getJsxNamespaceAt(location) {\n    const links = location && getNodeLinks(location);\n    if (links && links.jsxNamespace) {\n      return links.jsxNamespace;\n    }\n    if (!links || links.jsxNamespace !== false) {\n      let resolvedNamespace = getJsxNamespaceContainerForImplicitImport(location);\n      if (!resolvedNamespace || resolvedNamespace === unknownSymbol) {\n        const namespaceName = getJsxNamespace(location);\n        resolvedNamespace = resolveName(\n          location,\n          namespaceName,\n          1920 /* Namespace */,\n          /*nameNotFoundMessage*/\n          void 0,\n          /*isUse*/\n          false\n        );\n      }\n      if (resolvedNamespace) {\n        const candidate = resolveSymbol(getSymbol2(getExportsOfSymbol(resolveSymbol(resolvedNamespace)), JsxNames.JSX, 1920 /* Namespace */));\n        if (candidate && candidate !== unknownSymbol) {\n          if (links) {\n            links.jsxNamespace = candidate;\n          }\n          return candidate;\n        }\n      }\n      if (links) {\n        links.jsxNamespace = false;\n      }\n    }\n    const s = resolveSymbol(getGlobalSymbol(\n      JsxNames.JSX,\n      1920 /* Namespace */,\n      /*diagnostic*/\n      void 0\n    ));\n    if (s === unknownSymbol) {\n      return void 0;\n    }\n    return s;\n  }\n  function getNameFromJsxElementAttributesContainer(nameOfAttribPropContainer, jsxNamespace) {\n    const jsxElementAttribPropInterfaceSym = jsxNamespace && getSymbol2(jsxNamespace.exports, nameOfAttribPropContainer, 788968 /* Type */);\n    const jsxElementAttribPropInterfaceType = jsxElementAttribPropInterfaceSym && getDeclaredTypeOfSymbol(jsxElementAttribPropInterfaceSym);\n    const propertiesOfJsxElementAttribPropInterface = jsxElementAttribPropInterfaceType && getPropertiesOfType(jsxElementAttribPropInterfaceType);\n    if (propertiesOfJsxElementAttribPropInterface) {\n      if (propertiesOfJsxElementAttribPropInterface.length === 0) {\n        return \"\";\n      } else if (propertiesOfJsxElementAttribPropInterface.length === 1) {\n        return propertiesOfJsxElementAttribPropInterface[0].escapedName;\n      } else if (propertiesOfJsxElementAttribPropInterface.length > 1 && jsxElementAttribPropInterfaceSym.declarations) {\n        error2(jsxElementAttribPropInterfaceSym.declarations[0], Diagnostics.The_global_type_JSX_0_may_not_have_more_than_one_property, unescapeLeadingUnderscores(nameOfAttribPropContainer));\n      }\n    }\n    return void 0;\n  }\n  function getJsxLibraryManagedAttributes(jsxNamespace) {\n    return jsxNamespace && getSymbol2(jsxNamespace.exports, JsxNames.LibraryManagedAttributes, 788968 /* Type */);\n  }\n  function getJsxElementTypeSymbol(jsxNamespace) {\n    return jsxNamespace && getSymbol2(jsxNamespace.exports, JsxNames.ElementType, 788968 /* Type */);\n  }\n  function getJsxElementPropertiesName(jsxNamespace) {\n    return getNameFromJsxElementAttributesContainer(JsxNames.ElementAttributesPropertyNameContainer, jsxNamespace);\n  }\n  function getJsxElementChildrenPropertyName(jsxNamespace) {\n    if (compilerOptions.jsx === 4 /* ReactJSX */ || compilerOptions.jsx === 5 /* ReactJSXDev */) {\n      return \"children\";\n    }\n    return getNameFromJsxElementAttributesContainer(JsxNames.ElementChildrenAttributeNameContainer, jsxNamespace);\n  }\n  function getUninstantiatedJsxSignaturesOfType(elementType, caller) {\n    if (elementType.flags & 4 /* String */) {\n      return [anySignature];\n    } else if (elementType.flags & 128 /* StringLiteral */) {\n      const intrinsicType = getIntrinsicAttributesTypeFromStringLiteralType(elementType, caller);\n      if (!intrinsicType) {\n        error2(caller, Diagnostics.Property_0_does_not_exist_on_type_1, elementType.value, \"JSX.\" + JsxNames.IntrinsicElements);\n        return emptyArray;\n      } else {\n        const fakeSignature = createSignatureForJSXIntrinsic(caller, intrinsicType);\n        return [fakeSignature];\n      }\n    }\n    const apparentElemType = getApparentType(elementType);\n    let signatures = getSignaturesOfType(apparentElemType, 1 /* Construct */);\n    if (signatures.length === 0) {\n      signatures = getSignaturesOfType(apparentElemType, 0 /* Call */);\n    }\n    if (signatures.length === 0 && apparentElemType.flags & 1048576 /* Union */) {\n      signatures = getUnionSignatures(map(apparentElemType.types, (t) => getUninstantiatedJsxSignaturesOfType(t, caller)));\n    }\n    return signatures;\n  }\n  function getIntrinsicAttributesTypeFromStringLiteralType(type, location) {\n    const intrinsicElementsType = getJsxType(JsxNames.IntrinsicElements, location);\n    if (!isErrorType(intrinsicElementsType)) {\n      const stringLiteralTypeName = type.value;\n      const intrinsicProp = getPropertyOfType(intrinsicElementsType, escapeLeadingUnderscores(stringLiteralTypeName));\n      if (intrinsicProp) {\n        return getTypeOfSymbol(intrinsicProp);\n      }\n      const indexSignatureType = getIndexTypeOfType(intrinsicElementsType, stringType);\n      if (indexSignatureType) {\n        return indexSignatureType;\n      }\n      return void 0;\n    }\n    return anyType;\n  }\n  function checkJsxReturnAssignableToAppropriateBound(refKind, elemInstanceType, openingLikeElement) {\n    if (refKind === 1 /* Function */) {\n      const sfcReturnConstraint = getJsxStatelessElementTypeAt(openingLikeElement);\n      if (sfcReturnConstraint) {\n        checkTypeRelatedTo(elemInstanceType, sfcReturnConstraint, assignableRelation, openingLikeElement.tagName, Diagnostics.Its_return_type_0_is_not_a_valid_JSX_element, generateInitialErrorChain);\n      }\n    } else if (refKind === 0 /* Component */) {\n      const classConstraint = getJsxElementClassTypeAt(openingLikeElement);\n      if (classConstraint) {\n        checkTypeRelatedTo(elemInstanceType, classConstraint, assignableRelation, openingLikeElement.tagName, Diagnostics.Its_instance_type_0_is_not_a_valid_JSX_element, generateInitialErrorChain);\n      }\n    } else {\n      const sfcReturnConstraint = getJsxStatelessElementTypeAt(openingLikeElement);\n      const classConstraint = getJsxElementClassTypeAt(openingLikeElement);\n      if (!sfcReturnConstraint || !classConstraint) {\n        return;\n      }\n      const combined = getUnionType([sfcReturnConstraint, classConstraint]);\n      checkTypeRelatedTo(elemInstanceType, combined, assignableRelation, openingLikeElement.tagName, Diagnostics.Its_element_type_0_is_not_a_valid_JSX_element, generateInitialErrorChain);\n    }\n    function generateInitialErrorChain() {\n      const componentName = getTextOfNode(openingLikeElement.tagName);\n      return chainDiagnosticMessages(\n        /*details*/\n        void 0,\n        Diagnostics._0_cannot_be_used_as_a_JSX_component,\n        componentName\n      );\n    }\n  }\n  function getIntrinsicAttributesTypeFromJsxOpeningLikeElement(node) {\n    var _a;\n    Debug.assert(isJsxIntrinsicTagName(node.tagName));\n    const links = getNodeLinks(node);\n    if (!links.resolvedJsxElementAttributesType) {\n      const symbol = getIntrinsicTagSymbol(node);\n      if (links.jsxFlags & 1 /* IntrinsicNamedElement */) {\n        return links.resolvedJsxElementAttributesType = getTypeOfSymbol(symbol) || errorType;\n      } else if (links.jsxFlags & 2 /* IntrinsicIndexedElement */) {\n        const propName = isJsxNamespacedName(node.tagName) ? getEscapedTextOfJsxNamespacedName(node.tagName) : node.tagName.escapedText;\n        return links.resolvedJsxElementAttributesType = ((_a = getApplicableIndexInfoForName(getJsxType(JsxNames.IntrinsicElements, node), propName)) == null ? void 0 : _a.type) || errorType;\n      } else {\n        return links.resolvedJsxElementAttributesType = errorType;\n      }\n    }\n    return links.resolvedJsxElementAttributesType;\n  }\n  function getJsxElementClassTypeAt(location) {\n    const type = getJsxType(JsxNames.ElementClass, location);\n    if (isErrorType(type)) return void 0;\n    return type;\n  }\n  function getJsxElementTypeAt(location) {\n    return getJsxType(JsxNames.Element, location);\n  }\n  function getJsxStatelessElementTypeAt(location) {\n    const jsxElementType = getJsxElementTypeAt(location);\n    if (jsxElementType) {\n      return getUnionType([jsxElementType, nullType]);\n    }\n  }\n  function getJsxElementTypeTypeAt(location) {\n    const ns = getJsxNamespaceAt(location);\n    if (!ns) return void 0;\n    const sym = getJsxElementTypeSymbol(ns);\n    if (!sym) return void 0;\n    const type = instantiateAliasOrInterfaceWithDefaults(sym, isInJSFile(location));\n    if (!type || isErrorType(type)) return void 0;\n    return type;\n  }\n  function instantiateAliasOrInterfaceWithDefaults(managedSym, inJs, ...typeArguments) {\n    const declaredManagedType = getDeclaredTypeOfSymbol(managedSym);\n    if (managedSym.flags & 524288 /* TypeAlias */) {\n      const params = getSymbolLinks(managedSym).typeParameters;\n      if (length(params) >= typeArguments.length) {\n        const args = fillMissingTypeArguments(typeArguments, params, typeArguments.length, inJs);\n        return length(args) === 0 ? declaredManagedType : getTypeAliasInstantiation(managedSym, args);\n      }\n    }\n    if (length(declaredManagedType.typeParameters) >= typeArguments.length) {\n      const args = fillMissingTypeArguments(typeArguments, declaredManagedType.typeParameters, typeArguments.length, inJs);\n      return createTypeReference(declaredManagedType, args);\n    }\n    return void 0;\n  }\n  function getJsxIntrinsicTagNamesAt(location) {\n    const intrinsics = getJsxType(JsxNames.IntrinsicElements, location);\n    return intrinsics ? getPropertiesOfType(intrinsics) : emptyArray;\n  }\n  function checkJsxPreconditions(errorNode) {\n    if ((compilerOptions.jsx || 0 /* None */) === 0 /* None */) {\n      error2(errorNode, Diagnostics.Cannot_use_JSX_unless_the_jsx_flag_is_provided);\n    }\n    if (getJsxElementTypeAt(errorNode) === void 0) {\n      if (noImplicitAny) {\n        error2(errorNode, Diagnostics.JSX_element_implicitly_has_type_any_because_the_global_type_JSX_Element_does_not_exist);\n      }\n    }\n  }\n  function checkJsxOpeningLikeElementOrOpeningFragment(node) {\n    const isNodeOpeningLikeElement = isJsxOpeningLikeElement(node);\n    if (isNodeOpeningLikeElement) {\n      checkGrammarJsxElement(node);\n    }\n    checkJsxPreconditions(node);\n    markJsxAliasReferenced(node);\n    const sig = getResolvedSignature(node);\n    checkDeprecatedSignature(sig, node);\n    if (isNodeOpeningLikeElement) {\n      const jsxOpeningLikeNode = node;\n      const elementTypeConstraint = getJsxElementTypeTypeAt(jsxOpeningLikeNode);\n      if (elementTypeConstraint !== void 0) {\n        const tagName = jsxOpeningLikeNode.tagName;\n        const tagType = isJsxIntrinsicTagName(tagName) ? getStringLiteralType(intrinsicTagNameToString(tagName)) : checkExpression(tagName);\n        checkTypeRelatedTo(tagType, elementTypeConstraint, assignableRelation, tagName, Diagnostics.Its_type_0_is_not_a_valid_JSX_element_type, () => {\n          const componentName = getTextOfNode(tagName);\n          return chainDiagnosticMessages(\n            /*details*/\n            void 0,\n            Diagnostics._0_cannot_be_used_as_a_JSX_component,\n            componentName\n          );\n        });\n      } else {\n        checkJsxReturnAssignableToAppropriateBound(getJsxReferenceKind(jsxOpeningLikeNode), getReturnTypeOfSignature(sig), jsxOpeningLikeNode);\n      }\n    }\n  }\n  function isKnownProperty(targetType, name, isComparingJsxAttributes) {\n    if (targetType.flags & 524288 /* Object */) {\n      if (getPropertyOfObjectType(targetType, name) || getApplicableIndexInfoForName(targetType, name) || isLateBoundName(name) && getIndexInfoOfType(targetType, stringType) || isComparingJsxAttributes && isHyphenatedJsxName(name)) {\n        return true;\n      }\n    }\n    if (targetType.flags & 33554432 /* Substitution */) {\n      return isKnownProperty(targetType.baseType, name, isComparingJsxAttributes);\n    }\n    if (targetType.flags & 3145728 /* UnionOrIntersection */ && isExcessPropertyCheckTarget(targetType)) {\n      for (const t of targetType.types) {\n        if (isKnownProperty(t, name, isComparingJsxAttributes)) {\n          return true;\n        }\n      }\n    }\n    return false;\n  }\n  function isExcessPropertyCheckTarget(type) {\n    return !!(type.flags & 524288 /* Object */ && !(getObjectFlags(type) & 512 /* ObjectLiteralPatternWithComputedProperties */) || type.flags & 67108864 /* NonPrimitive */ || type.flags & 33554432 /* Substitution */ && isExcessPropertyCheckTarget(type.baseType) || type.flags & 1048576 /* Union */ && some(type.types, isExcessPropertyCheckTarget) || type.flags & 2097152 /* Intersection */ && every(type.types, isExcessPropertyCheckTarget));\n  }\n  function checkJsxExpression(node, checkMode) {\n    checkGrammarJsxExpression(node);\n    if (node.expression) {\n      const type = checkExpression(node.expression, checkMode);\n      if (node.dotDotDotToken && type !== anyType && !isArrayType(type)) {\n        error2(node, Diagnostics.JSX_spread_child_must_be_an_array_type);\n      }\n      return type;\n    } else {\n      return errorType;\n    }\n  }\n  function getDeclarationNodeFlagsFromSymbol(s) {\n    return s.valueDeclaration ? getCombinedNodeFlagsCached(s.valueDeclaration) : 0;\n  }\n  function isPrototypeProperty(symbol) {\n    if (symbol.flags & 8192 /* Method */ || getCheckFlags(symbol) & 4 /* SyntheticMethod */) {\n      return true;\n    }\n    if (isInJSFile(symbol.valueDeclaration)) {\n      const parent2 = symbol.valueDeclaration.parent;\n      return parent2 && isBinaryExpression(parent2) && getAssignmentDeclarationKind(parent2) === 3 /* PrototypeProperty */;\n    }\n  }\n  function checkPropertyAccessibility(node, isSuper, writing, type, prop, reportError = true) {\n    const errorNode = !reportError ? void 0 : node.kind === 167 /* QualifiedName */ ? node.right : node.kind === 206 /* ImportType */ ? node : node.kind === 209 /* BindingElement */ && node.propertyName ? node.propertyName : node.name;\n    return checkPropertyAccessibilityAtLocation(node, isSuper, writing, type, prop, errorNode);\n  }\n  function checkPropertyAccessibilityAtLocation(location, isSuper, writing, containingType, prop, errorNode) {\n    var _a;\n    const flags = getDeclarationModifierFlagsFromSymbol(prop, writing);\n    if (isSuper) {\n      if (languageVersion < 2 /* ES2015 */) {\n        if (symbolHasNonMethodDeclaration(prop)) {\n          if (errorNode) {\n            error2(errorNode, Diagnostics.Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword);\n          }\n          return false;\n        }\n      }\n      if (flags & 64 /* Abstract */) {\n        if (errorNode) {\n          error2(errorNode, Diagnostics.Abstract_method_0_in_class_1_cannot_be_accessed_via_super_expression, symbolToString(prop), typeToString(getDeclaringClass(prop)));\n        }\n        return false;\n      }\n      if (!(flags & 256 /* Static */) && ((_a = prop.declarations) == null ? void 0 : _a.some(isClassInstanceProperty))) {\n        if (errorNode) {\n          error2(errorNode, Diagnostics.Class_field_0_defined_by_the_parent_class_is_not_accessible_in_the_child_class_via_super, symbolToString(prop));\n        }\n        return false;\n      }\n    }\n    if (flags & 64 /* Abstract */ && symbolHasNonMethodDeclaration(prop) && (isThisProperty(location) || isThisInitializedObjectBindingExpression(location) || isObjectBindingPattern(location.parent) && isThisInitializedDeclaration(location.parent.parent))) {\n      const declaringClassDeclaration = getClassLikeDeclarationOfSymbol(getParentOfSymbol(prop));\n      if (declaringClassDeclaration && isNodeUsedDuringClassInitialization(location)) {\n        if (errorNode) {\n          error2(errorNode, Diagnostics.Abstract_property_0_in_class_1_cannot_be_accessed_in_the_constructor, symbolToString(prop), getTextOfIdentifierOrLiteral(declaringClassDeclaration.name));\n        }\n        return false;\n      }\n    }\n    if (!(flags & 6 /* NonPublicAccessibilityModifier */)) {\n      return true;\n    }\n    if (flags & 2 /* Private */) {\n      const declaringClassDeclaration = getClassLikeDeclarationOfSymbol(getParentOfSymbol(prop));\n      if (!isNodeWithinClass(location, declaringClassDeclaration)) {\n        if (errorNode) {\n          error2(errorNode, Diagnostics.Property_0_is_private_and_only_accessible_within_class_1, symbolToString(prop), typeToString(getDeclaringClass(prop)));\n        }\n        return false;\n      }\n      return true;\n    }\n    if (isSuper) {\n      return true;\n    }\n    let enclosingClass = forEachEnclosingClass(location, (enclosingDeclaration) => {\n      const enclosingClass2 = getDeclaredTypeOfSymbol(getSymbolOfDeclaration(enclosingDeclaration));\n      return isClassDerivedFromDeclaringClasses(enclosingClass2, prop, writing);\n    });\n    if (!enclosingClass) {\n      enclosingClass = getEnclosingClassFromThisParameter(location);\n      enclosingClass = enclosingClass && isClassDerivedFromDeclaringClasses(enclosingClass, prop, writing);\n      if (flags & 256 /* Static */ || !enclosingClass) {\n        if (errorNode) {\n          error2(errorNode, Diagnostics.Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses, symbolToString(prop), typeToString(getDeclaringClass(prop) || containingType));\n        }\n        return false;\n      }\n    }\n    if (flags & 256 /* Static */) {\n      return true;\n    }\n    if (containingType.flags & 262144 /* TypeParameter */) {\n      containingType = containingType.isThisType ? getConstraintOfTypeParameter(containingType) : getBaseConstraintOfType(containingType);\n    }\n    if (!containingType || !hasBaseType(containingType, enclosingClass)) {\n      if (errorNode) {\n        error2(errorNode, Diagnostics.Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1_This_is_an_instance_of_class_2, symbolToString(prop), typeToString(enclosingClass), typeToString(containingType));\n      }\n      return false;\n    }\n    return true;\n  }\n  function getEnclosingClassFromThisParameter(node) {\n    const thisParameter = getThisParameterFromNodeContext(node);\n    let thisType = (thisParameter == null ? void 0 : thisParameter.type) && getTypeFromTypeNode(thisParameter.type);\n    if (thisType) {\n      if (thisType.flags & 262144 /* TypeParameter */) {\n        thisType = getConstraintOfTypeParameter(thisType);\n      }\n    } else {\n      const thisContainer = getThisContainer(\n        node,\n        /*includeArrowFunctions*/\n        false,\n        /*includeClassComputedPropertyName*/\n        false\n      );\n      if (isFunctionLike(thisContainer)) {\n        thisType = getContextualThisParameterType(thisContainer);\n      }\n    }\n    if (thisType && getObjectFlags(thisType) & (3 /* ClassOrInterface */ | 4 /* Reference */)) {\n      return getTargetType(thisType);\n    }\n    return void 0;\n  }\n  function getThisParameterFromNodeContext(node) {\n    const thisContainer = getThisContainer(\n      node,\n      /*includeArrowFunctions*/\n      false,\n      /*includeClassComputedPropertyName*/\n      false\n    );\n    return thisContainer && isFunctionLike(thisContainer) ? getThisParameter(thisContainer) : void 0;\n  }\n  function symbolHasNonMethodDeclaration(symbol) {\n    return !!forEachProperty2(symbol, (prop) => !(prop.flags & 8192 /* Method */));\n  }\n  function checkNonNullExpression(node) {\n    return checkNonNullType(checkExpression(node), node);\n  }\n  function isNullableType(type) {\n    return hasTypeFacts(type, 50331648 /* IsUndefinedOrNull */);\n  }\n  function getNonNullableTypeIfNeeded(type) {\n    return isNullableType(type) ? getNonNullableType(type) : type;\n  }\n  function reportObjectPossiblyNullOrUndefinedError(node, facts) {\n    const nodeText2 = isEntityNameExpression(node) ? entityNameToString(node) : void 0;\n    if (node.kind === 106 /* NullKeyword */) {\n      error2(node, Diagnostics.The_value_0_cannot_be_used_here, \"null\");\n      return;\n    }\n    if (nodeText2 !== void 0 && nodeText2.length < 100) {\n      if (isIdentifier(node) && nodeText2 === \"undefined\") {\n        error2(node, Diagnostics.The_value_0_cannot_be_used_here, \"undefined\");\n        return;\n      }\n      error2(\n        node,\n        facts & 16777216 /* IsUndefined */ ? facts & 33554432 /* IsNull */ ? Diagnostics._0_is_possibly_null_or_undefined : Diagnostics._0_is_possibly_undefined : Diagnostics._0_is_possibly_null,\n        nodeText2\n      );\n    } else {\n      error2(\n        node,\n        facts & 16777216 /* IsUndefined */ ? facts & 33554432 /* IsNull */ ? Diagnostics.Object_is_possibly_null_or_undefined : Diagnostics.Object_is_possibly_undefined : Diagnostics.Object_is_possibly_null\n      );\n    }\n  }\n  function reportCannotInvokePossiblyNullOrUndefinedError(node, facts) {\n    error2(\n      node,\n      facts & 16777216 /* IsUndefined */ ? facts & 33554432 /* IsNull */ ? Diagnostics.Cannot_invoke_an_object_which_is_possibly_null_or_undefined : Diagnostics.Cannot_invoke_an_object_which_is_possibly_undefined : Diagnostics.Cannot_invoke_an_object_which_is_possibly_null\n    );\n  }\n  function checkNonNullTypeWithReporter(type, node, reportError) {\n    if (strictNullChecks && type.flags & 2 /* Unknown */) {\n      if (isEntityNameExpression(node)) {\n        const nodeText2 = entityNameToString(node);\n        if (nodeText2.length < 100) {\n          error2(node, Diagnostics._0_is_of_type_unknown, nodeText2);\n          return errorType;\n        }\n      }\n      error2(node, Diagnostics.Object_is_of_type_unknown);\n      return errorType;\n    }\n    const facts = getTypeFacts(type, 50331648 /* IsUndefinedOrNull */);\n    if (facts & 50331648 /* IsUndefinedOrNull */) {\n      reportError(node, facts);\n      const t = getNonNullableType(type);\n      return t.flags & (98304 /* Nullable */ | 131072 /* Never */) ? errorType : t;\n    }\n    return type;\n  }\n  function checkNonNullType(type, node) {\n    return checkNonNullTypeWithReporter(type, node, reportObjectPossiblyNullOrUndefinedError);\n  }\n  function checkNonNullNonVoidType(type, node) {\n    const nonNullType = checkNonNullType(type, node);\n    if (nonNullType.flags & 16384 /* Void */) {\n      if (isEntityNameExpression(node)) {\n        const nodeText2 = entityNameToString(node);\n        if (isIdentifier(node) && nodeText2 === \"undefined\") {\n          error2(node, Diagnostics.The_value_0_cannot_be_used_here, nodeText2);\n          return nonNullType;\n        }\n        if (nodeText2.length < 100) {\n          error2(node, Diagnostics._0_is_possibly_undefined, nodeText2);\n          return nonNullType;\n        }\n      }\n      error2(node, Diagnostics.Object_is_possibly_undefined);\n    }\n    return nonNullType;\n  }\n  function checkPropertyAccessExpression(node, checkMode, writeOnly) {\n    return node.flags & 64 /* OptionalChain */ ? checkPropertyAccessChain(node, checkMode) : checkPropertyAccessExpressionOrQualifiedName(node, node.expression, checkNonNullExpression(node.expression), node.name, checkMode, writeOnly);\n  }\n  function checkPropertyAccessChain(node, checkMode) {\n    const leftType = checkExpression(node.expression);\n    const nonOptionalType = getOptionalExpressionType(leftType, node.expression);\n    return propagateOptionalTypeMarker(checkPropertyAccessExpressionOrQualifiedName(node, node.expression, checkNonNullType(nonOptionalType, node.expression), node.name, checkMode), node, nonOptionalType !== leftType);\n  }\n  function checkQualifiedName(node, checkMode) {\n    const leftType = isPartOfTypeQuery(node) && isThisIdentifier(node.left) ? checkNonNullType(checkThisExpression(node.left), node.left) : checkNonNullExpression(node.left);\n    return checkPropertyAccessExpressionOrQualifiedName(node, node.left, leftType, node.right, checkMode);\n  }\n  function isMethodAccessForCall(node) {\n    while (node.parent.kind === 218 /* ParenthesizedExpression */) {\n      node = node.parent;\n    }\n    return isCallOrNewExpression(node.parent) && node.parent.expression === node;\n  }\n  function lookupSymbolForPrivateIdentifierDeclaration(propName, location) {\n    for (let containingClass = getContainingClassExcludingClassDecorators(location); !!containingClass; containingClass = getContainingClass(containingClass)) {\n      const { symbol } = containingClass;\n      const name = getSymbolNameForPrivateIdentifier(symbol, propName);\n      const prop = symbol.members && symbol.members.get(name) || symbol.exports && symbol.exports.get(name);\n      if (prop) {\n        return prop;\n      }\n    }\n  }\n  function checkGrammarPrivateIdentifierExpression(privId) {\n    if (!getContainingClass(privId)) {\n      return grammarErrorOnNode(privId, Diagnostics.Private_identifiers_are_not_allowed_outside_class_bodies);\n    }\n    if (!isForInStatement(privId.parent)) {\n      if (!isExpressionNode(privId)) {\n        return grammarErrorOnNode(privId, Diagnostics.Private_identifiers_are_only_allowed_in_class_bodies_and_may_only_be_used_as_part_of_a_class_member_declaration_property_access_or_on_the_left_hand_side_of_an_in_expression);\n      }\n      const isInOperation = isBinaryExpression(privId.parent) && privId.parent.operatorToken.kind === 103 /* InKeyword */;\n      if (!getSymbolForPrivateIdentifierExpression(privId) && !isInOperation) {\n        return grammarErrorOnNode(privId, Diagnostics.Cannot_find_name_0, idText(privId));\n      }\n    }\n    return false;\n  }\n  function checkPrivateIdentifierExpression(privId) {\n    checkGrammarPrivateIdentifierExpression(privId);\n    const symbol = getSymbolForPrivateIdentifierExpression(privId);\n    if (symbol) {\n      markPropertyAsReferenced(\n        symbol,\n        /*nodeForCheckWriteOnly*/\n        void 0,\n        /*isSelfTypeAccess*/\n        false\n      );\n    }\n    return anyType;\n  }\n  function getSymbolForPrivateIdentifierExpression(privId) {\n    if (!isExpressionNode(privId)) {\n      return void 0;\n    }\n    const links = getNodeLinks(privId);\n    if (links.resolvedSymbol === void 0) {\n      links.resolvedSymbol = lookupSymbolForPrivateIdentifierDeclaration(privId.escapedText, privId);\n    }\n    return links.resolvedSymbol;\n  }\n  function getPrivateIdentifierPropertyOfType(leftType, lexicallyScopedIdentifier) {\n    return getPropertyOfType(leftType, lexicallyScopedIdentifier.escapedName);\n  }\n  function checkPrivateIdentifierPropertyAccess(leftType, right, lexicallyScopedIdentifier) {\n    let propertyOnType;\n    const properties = getPropertiesOfType(leftType);\n    if (properties) {\n      forEach(properties, (symbol) => {\n        const decl = symbol.valueDeclaration;\n        if (decl && isNamedDeclaration(decl) && isPrivateIdentifier(decl.name) && decl.name.escapedText === right.escapedText) {\n          propertyOnType = symbol;\n          return true;\n        }\n      });\n    }\n    const diagName = diagnosticName(right);\n    if (propertyOnType) {\n      const typeValueDecl = Debug.checkDefined(propertyOnType.valueDeclaration);\n      const typeClass = Debug.checkDefined(getContainingClass(typeValueDecl));\n      if (lexicallyScopedIdentifier == null ? void 0 : lexicallyScopedIdentifier.valueDeclaration) {\n        const lexicalValueDecl = lexicallyScopedIdentifier.valueDeclaration;\n        const lexicalClass = getContainingClass(lexicalValueDecl);\n        Debug.assert(!!lexicalClass);\n        if (findAncestor(lexicalClass, (n) => typeClass === n)) {\n          const diagnostic = error2(\n            right,\n            Diagnostics.The_property_0_cannot_be_accessed_on_type_1_within_this_class_because_it_is_shadowed_by_another_private_identifier_with_the_same_spelling,\n            diagName,\n            typeToString(leftType)\n          );\n          addRelatedInfo(\n            diagnostic,\n            createDiagnosticForNode(\n              lexicalValueDecl,\n              Diagnostics.The_shadowing_declaration_of_0_is_defined_here,\n              diagName\n            ),\n            createDiagnosticForNode(\n              typeValueDecl,\n              Diagnostics.The_declaration_of_0_that_you_probably_intended_to_use_is_defined_here,\n              diagName\n            )\n          );\n          return true;\n        }\n      }\n      error2(\n        right,\n        Diagnostics.Property_0_is_not_accessible_outside_class_1_because_it_has_a_private_identifier,\n        diagName,\n        diagnosticName(typeClass.name || anon)\n      );\n      return true;\n    }\n    return false;\n  }\n  function isThisPropertyAccessInConstructor(node, prop) {\n    return (isConstructorDeclaredProperty(prop) || isThisProperty(node) && isAutoTypedProperty(prop)) && getThisContainer(\n      node,\n      /*includeArrowFunctions*/\n      true,\n      /*includeClassComputedPropertyName*/\n      false\n    ) === getDeclaringConstructor(prop);\n  }\n  function checkPropertyAccessExpressionOrQualifiedName(node, left, leftType, right, checkMode, writeOnly) {\n    const parentSymbol = getNodeLinks(left).resolvedSymbol;\n    const assignmentKind = getAssignmentTargetKind(node);\n    const apparentType = getApparentType(assignmentKind !== 0 /* None */ || isMethodAccessForCall(node) ? getWidenedType(leftType) : leftType);\n    const isAnyLike = isTypeAny(apparentType) || apparentType === silentNeverType;\n    let prop;\n    if (isPrivateIdentifier(right)) {\n      if (languageVersion < LanguageFeatureMinimumTarget.PrivateNamesAndClassStaticBlocks || languageVersion < LanguageFeatureMinimumTarget.ClassAndClassElementDecorators || !useDefineForClassFields) {\n        if (assignmentKind !== 0 /* None */) {\n          checkExternalEmitHelpers(node, 1048576 /* ClassPrivateFieldSet */);\n        }\n        if (assignmentKind !== 1 /* Definite */) {\n          checkExternalEmitHelpers(node, 524288 /* ClassPrivateFieldGet */);\n        }\n      }\n      const lexicallyScopedSymbol = lookupSymbolForPrivateIdentifierDeclaration(right.escapedText, right);\n      if (assignmentKind && lexicallyScopedSymbol && lexicallyScopedSymbol.valueDeclaration && isMethodDeclaration(lexicallyScopedSymbol.valueDeclaration)) {\n        grammarErrorOnNode(right, Diagnostics.Cannot_assign_to_private_method_0_Private_methods_are_not_writable, idText(right));\n      }\n      if (isAnyLike) {\n        if (lexicallyScopedSymbol) {\n          return isErrorType(apparentType) ? errorType : apparentType;\n        }\n        if (getContainingClassExcludingClassDecorators(right) === void 0) {\n          grammarErrorOnNode(right, Diagnostics.Private_identifiers_are_not_allowed_outside_class_bodies);\n          return anyType;\n        }\n      }\n      prop = lexicallyScopedSymbol && getPrivateIdentifierPropertyOfType(leftType, lexicallyScopedSymbol);\n      if (prop === void 0) {\n        if (checkPrivateIdentifierPropertyAccess(leftType, right, lexicallyScopedSymbol)) {\n          return errorType;\n        }\n        const containingClass = getContainingClassExcludingClassDecorators(right);\n        if (containingClass && isPlainJsFile(getSourceFileOfNode(containingClass), compilerOptions.checkJs)) {\n          grammarErrorOnNode(right, Diagnostics.Private_field_0_must_be_declared_in_an_enclosing_class, idText(right));\n        }\n      } else {\n        const isSetonlyAccessor = prop.flags & 65536 /* SetAccessor */ && !(prop.flags & 32768 /* GetAccessor */);\n        if (isSetonlyAccessor && assignmentKind !== 1 /* Definite */) {\n          error2(node, Diagnostics.Private_accessor_was_defined_without_a_getter);\n        }\n      }\n    } else {\n      if (isAnyLike) {\n        if (isIdentifier(left) && parentSymbol) {\n          markLinkedReferences(\n            node,\n            2 /* Property */,\n            /*propSymbol*/\n            void 0,\n            leftType\n          );\n        }\n        return isErrorType(apparentType) ? errorType : apparentType;\n      }\n      prop = getPropertyOfType(\n        apparentType,\n        right.escapedText,\n        /*skipObjectFunctionPropertyAugment*/\n        isConstEnumObjectType(apparentType),\n        /*includeTypeOnlyMembers*/\n        node.kind === 167 /* QualifiedName */\n      );\n    }\n    markLinkedReferences(node, 2 /* Property */, prop, leftType);\n    let propType;\n    if (!prop) {\n      const indexInfo = !isPrivateIdentifier(right) && (assignmentKind === 0 /* None */ || !isGenericObjectType(leftType) || isThisTypeParameter(leftType)) ? getApplicableIndexInfoForName(apparentType, right.escapedText) : void 0;\n      if (!(indexInfo && indexInfo.type)) {\n        const isUncheckedJS = isUncheckedJSSuggestion(\n          node,\n          leftType.symbol,\n          /*excludeClasses*/\n          true\n        );\n        if (!isUncheckedJS && isJSLiteralType(leftType)) {\n          return anyType;\n        }\n        if (leftType.symbol === globalThisSymbol) {\n          if (globalThisSymbol.exports.has(right.escapedText) && globalThisSymbol.exports.get(right.escapedText).flags & 418 /* BlockScoped */) {\n            error2(right, Diagnostics.Property_0_does_not_exist_on_type_1, unescapeLeadingUnderscores(right.escapedText), typeToString(leftType));\n          } else if (noImplicitAny) {\n            error2(right, Diagnostics.Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature, typeToString(leftType));\n          }\n          return anyType;\n        }\n        if (right.escapedText && !checkAndReportErrorForExtendingInterface(node)) {\n          reportNonexistentProperty(right, isThisTypeParameter(leftType) ? apparentType : leftType, isUncheckedJS);\n        }\n        return errorType;\n      }\n      if (indexInfo.isReadonly && (isAssignmentTarget(node) || isDeleteTarget(node))) {\n        error2(node, Diagnostics.Index_signature_in_type_0_only_permits_reading, typeToString(apparentType));\n      }\n      propType = indexInfo.type;\n      if (compilerOptions.noUncheckedIndexedAccess && getAssignmentTargetKind(node) !== 1 /* Definite */) {\n        propType = getUnionType([propType, missingType]);\n      }\n      if (compilerOptions.noPropertyAccessFromIndexSignature && isPropertyAccessExpression(node)) {\n        error2(right, Diagnostics.Property_0_comes_from_an_index_signature_so_it_must_be_accessed_with_0, unescapeLeadingUnderscores(right.escapedText));\n      }\n      if (indexInfo.declaration && isDeprecatedDeclaration2(indexInfo.declaration)) {\n        addDeprecatedSuggestion(right, [indexInfo.declaration], right.escapedText);\n      }\n    } else {\n      const targetPropSymbol = resolveAliasWithDeprecationCheck(prop, right);\n      if (isDeprecatedSymbol(targetPropSymbol) && isUncalledFunctionReference(node, targetPropSymbol) && targetPropSymbol.declarations) {\n        addDeprecatedSuggestion(right, targetPropSymbol.declarations, right.escapedText);\n      }\n      checkPropertyNotUsedBeforeDeclaration(prop, node, right);\n      markPropertyAsReferenced(prop, node, isSelfTypeAccess(left, parentSymbol));\n      getNodeLinks(node).resolvedSymbol = prop;\n      checkPropertyAccessibility(node, left.kind === 108 /* SuperKeyword */, isWriteAccess(node), apparentType, prop);\n      if (isAssignmentToReadonlyEntity(node, prop, assignmentKind)) {\n        error2(right, Diagnostics.Cannot_assign_to_0_because_it_is_a_read_only_property, idText(right));\n        return errorType;\n      }\n      propType = isThisPropertyAccessInConstructor(node, prop) ? autoType : writeOnly || isWriteOnlyAccess(node) ? getWriteTypeOfSymbol(prop) : getTypeOfSymbol(prop);\n    }\n    return getFlowTypeOfAccessExpression(node, prop, propType, right, checkMode);\n  }\n  function isUncheckedJSSuggestion(node, suggestion, excludeClasses) {\n    var _a;\n    const file = getSourceFileOfNode(node);\n    if (file) {\n      if (compilerOptions.checkJs === void 0 && file.checkJsDirective === void 0 && (file.scriptKind === 1 /* JS */ || file.scriptKind === 2 /* JSX */)) {\n        const declarationFile = forEach(suggestion == null ? void 0 : suggestion.declarations, getSourceFileOfNode);\n        const suggestionHasNoExtendsOrDecorators = !(suggestion == null ? void 0 : suggestion.valueDeclaration) || !isClassLike(suggestion.valueDeclaration) || ((_a = suggestion.valueDeclaration.heritageClauses) == null ? void 0 : _a.length) || classOrConstructorParameterIsDecorated(\n          /*useLegacyDecorators*/\n          false,\n          suggestion.valueDeclaration\n        );\n        return !(file !== declarationFile && !!declarationFile && isGlobalSourceFile(declarationFile)) && !(excludeClasses && suggestion && suggestion.flags & 32 /* Class */ && suggestionHasNoExtendsOrDecorators) && !(!!node && excludeClasses && isPropertyAccessExpression(node) && node.expression.kind === 110 /* ThisKeyword */ && suggestionHasNoExtendsOrDecorators);\n      }\n    }\n    return false;\n  }\n  function getFlowTypeOfAccessExpression(node, prop, propType, errorNode, checkMode) {\n    const assignmentKind = getAssignmentTargetKind(node);\n    if (assignmentKind === 1 /* Definite */) {\n      return removeMissingType(propType, !!(prop && prop.flags & 16777216 /* Optional */));\n    }\n    if (prop && !(prop.flags & (3 /* Variable */ | 4 /* Property */ | 98304 /* Accessor */)) && !(prop.flags & 8192 /* Method */ && propType.flags & 1048576 /* Union */) && !isDuplicatedCommonJSExport(prop.declarations)) {\n      return propType;\n    }\n    if (propType === autoType) {\n      return getFlowTypeOfProperty(node, prop);\n    }\n    propType = getNarrowableTypeForReference(propType, node, checkMode);\n    let assumeUninitialized = false;\n    if (strictNullChecks && strictPropertyInitialization && isAccessExpression(node) && node.expression.kind === 110 /* ThisKeyword */) {\n      const declaration = prop && prop.valueDeclaration;\n      if (declaration && isPropertyWithoutInitializer(declaration)) {\n        if (!isStatic(declaration)) {\n          const flowContainer = getControlFlowContainer(node);\n          if (flowContainer.kind === 177 /* Constructor */ && flowContainer.parent === declaration.parent && !(declaration.flags & 33554432 /* Ambient */)) {\n            assumeUninitialized = true;\n          }\n        }\n      }\n    } else if (strictNullChecks && prop && prop.valueDeclaration && isPropertyAccessExpression(prop.valueDeclaration) && getAssignmentDeclarationPropertyAccessKind(prop.valueDeclaration) && getControlFlowContainer(node) === getControlFlowContainer(prop.valueDeclaration)) {\n      assumeUninitialized = true;\n    }\n    const flowType = getFlowTypeOfReference(node, propType, assumeUninitialized ? getOptionalType(propType) : propType);\n    if (assumeUninitialized && !containsUndefinedType(propType) && containsUndefinedType(flowType)) {\n      error2(errorNode, Diagnostics.Property_0_is_used_before_being_assigned, symbolToString(prop));\n      return propType;\n    }\n    return assignmentKind ? getBaseTypeOfLiteralType(flowType) : flowType;\n  }\n  function checkPropertyNotUsedBeforeDeclaration(prop, node, right) {\n    const { valueDeclaration } = prop;\n    if (!valueDeclaration || getSourceFileOfNode(node).isDeclarationFile) {\n      return;\n    }\n    let diagnosticMessage;\n    const declarationName = idText(right);\n    if (isInPropertyInitializerOrClassStaticBlock(node) && !isOptionalPropertyDeclaration(valueDeclaration) && !(isAccessExpression(node) && isAccessExpression(node.expression)) && !isBlockScopedNameDeclaredBeforeUse(valueDeclaration, right) && !(isMethodDeclaration(valueDeclaration) && getCombinedModifierFlagsCached(valueDeclaration) & 256 /* Static */) && (useDefineForClassFields || !isPropertyDeclaredInAncestorClass(prop))) {\n      diagnosticMessage = error2(right, Diagnostics.Property_0_is_used_before_its_initialization, declarationName);\n    } else if (valueDeclaration.kind === 264 /* ClassDeclaration */ && node.parent.kind !== 184 /* TypeReference */ && !(valueDeclaration.flags & 33554432 /* Ambient */) && !isBlockScopedNameDeclaredBeforeUse(valueDeclaration, right)) {\n      diagnosticMessage = error2(right, Diagnostics.Class_0_used_before_its_declaration, declarationName);\n    }\n    if (diagnosticMessage) {\n      addRelatedInfo(diagnosticMessage, createDiagnosticForNode(valueDeclaration, Diagnostics._0_is_declared_here, declarationName));\n    }\n  }\n  function isInPropertyInitializerOrClassStaticBlock(node, ignoreArrowFunctions) {\n    return !!findAncestor(node, (node2) => {\n      switch (node2.kind) {\n        case 173 /* PropertyDeclaration */:\n        case 176 /* ClassStaticBlockDeclaration */:\n          return true;\n        case 187 /* TypeQuery */:\n        case 288 /* JsxClosingElement */:\n          return \"quit\";\n        case 220 /* ArrowFunction */:\n          return ignoreArrowFunctions ? false : \"quit\";\n        case 242 /* Block */:\n          return isFunctionLikeDeclaration(node2.parent) && node2.parent.kind !== 220 /* ArrowFunction */ ? \"quit\" : false;\n        default:\n          return false;\n      }\n    });\n  }\n  function isPropertyDeclaredInAncestorClass(prop) {\n    if (!(prop.parent.flags & 32 /* Class */)) {\n      return false;\n    }\n    let classType = getTypeOfSymbol(prop.parent);\n    while (true) {\n      classType = classType.symbol && getSuperClass(classType);\n      if (!classType) {\n        return false;\n      }\n      const superProperty = getPropertyOfType(classType, prop.escapedName);\n      if (superProperty && superProperty.valueDeclaration) {\n        return true;\n      }\n    }\n  }\n  function getSuperClass(classType) {\n    const x = getBaseTypes(classType);\n    if (x.length === 0) {\n      return void 0;\n    }\n    return getIntersectionType(x);\n  }\n  function reportNonexistentProperty(propNode, containingType, isUncheckedJS) {\n    const links = getNodeLinks(propNode);\n    const cache = links.nonExistentPropCheckCache || (links.nonExistentPropCheckCache = /* @__PURE__ */ new Set());\n    const key = `${getTypeId(containingType)}|${isUncheckedJS}`;\n    if (cache.has(key)) {\n      return;\n    }\n    cache.add(key);\n    let errorInfo;\n    let relatedInfo;\n    if (!isPrivateIdentifier(propNode) && containingType.flags & 1048576 /* Union */ && !(containingType.flags & 402784252 /* Primitive */)) {\n      for (const subtype of containingType.types) {\n        if (!getPropertyOfType(subtype, propNode.escapedText) && !getApplicableIndexInfoForName(subtype, propNode.escapedText)) {\n          errorInfo = chainDiagnosticMessages(errorInfo, Diagnostics.Property_0_does_not_exist_on_type_1, declarationNameToString(propNode), typeToString(subtype));\n          break;\n        }\n      }\n    }\n    if (typeHasStaticProperty(propNode.escapedText, containingType)) {\n      const propName = declarationNameToString(propNode);\n      const typeName = typeToString(containingType);\n      errorInfo = chainDiagnosticMessages(errorInfo, Diagnostics.Property_0_does_not_exist_on_type_1_Did_you_mean_to_access_the_static_member_2_instead, propName, typeName, typeName + \".\" + propName);\n    } else {\n      const promisedType = getPromisedTypeOfPromise(containingType);\n      if (promisedType && getPropertyOfType(promisedType, propNode.escapedText)) {\n        errorInfo = chainDiagnosticMessages(errorInfo, Diagnostics.Property_0_does_not_exist_on_type_1, declarationNameToString(propNode), typeToString(containingType));\n        relatedInfo = createDiagnosticForNode(propNode, Diagnostics.Did_you_forget_to_use_await);\n      } else {\n        const missingProperty = declarationNameToString(propNode);\n        const container = typeToString(containingType);\n        const libSuggestion = getSuggestedLibForNonExistentProperty(missingProperty, containingType);\n        if (libSuggestion !== void 0) {\n          errorInfo = chainDiagnosticMessages(errorInfo, Diagnostics.Property_0_does_not_exist_on_type_1_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_2_or_later, missingProperty, container, libSuggestion);\n        } else {\n          const suggestion = getSuggestedSymbolForNonexistentProperty(propNode, containingType);\n          if (suggestion !== void 0) {\n            const suggestedName = symbolName(suggestion);\n            const message = isUncheckedJS ? Diagnostics.Property_0_may_not_exist_on_type_1_Did_you_mean_2 : Diagnostics.Property_0_does_not_exist_on_type_1_Did_you_mean_2;\n            errorInfo = chainDiagnosticMessages(errorInfo, message, missingProperty, container, suggestedName);\n            relatedInfo = suggestion.valueDeclaration && createDiagnosticForNode(suggestion.valueDeclaration, Diagnostics._0_is_declared_here, suggestedName);\n          } else {\n            const diagnostic = containerSeemsToBeEmptyDomElement(containingType) ? Diagnostics.Property_0_does_not_exist_on_type_1_Try_changing_the_lib_compiler_option_to_include_dom : Diagnostics.Property_0_does_not_exist_on_type_1;\n            errorInfo = chainDiagnosticMessages(elaborateNeverIntersection(errorInfo, containingType), diagnostic, missingProperty, container);\n          }\n        }\n      }\n    }\n    const resultDiagnostic = createDiagnosticForNodeFromMessageChain(getSourceFileOfNode(propNode), propNode, errorInfo);\n    if (relatedInfo) {\n      addRelatedInfo(resultDiagnostic, relatedInfo);\n    }\n    addErrorOrSuggestion(!isUncheckedJS || errorInfo.code !== Diagnostics.Property_0_may_not_exist_on_type_1_Did_you_mean_2.code, resultDiagnostic);\n  }\n  function containerSeemsToBeEmptyDomElement(containingType) {\n    return compilerOptions.lib && !compilerOptions.lib.includes(\"lib.dom.d.ts\") && everyContainedType(containingType, (type) => type.symbol && /^(?:EventTarget|Node|(?:HTML[a-zA-Z]*)?Element)$/.test(unescapeLeadingUnderscores(type.symbol.escapedName))) && isEmptyObjectType(containingType);\n  }\n  function typeHasStaticProperty(propName, containingType) {\n    const prop = containingType.symbol && getPropertyOfType(getTypeOfSymbol(containingType.symbol), propName);\n    return prop !== void 0 && !!prop.valueDeclaration && isStatic(prop.valueDeclaration);\n  }\n  function getSuggestedLibForNonExistentName(name) {\n    const missingName = diagnosticName(name);\n    const allFeatures = getScriptTargetFeatures();\n    const typeFeatures = allFeatures.get(missingName);\n    return typeFeatures && firstIterator(typeFeatures.keys());\n  }\n  function getSuggestedLibForNonExistentProperty(missingProperty, containingType) {\n    const container = getApparentType(containingType).symbol;\n    if (!container) {\n      return void 0;\n    }\n    const containingTypeName = symbolName(container);\n    const allFeatures = getScriptTargetFeatures();\n    const typeFeatures = allFeatures.get(containingTypeName);\n    if (typeFeatures) {\n      for (const [libTarget, featuresOfType] of typeFeatures) {\n        if (contains(featuresOfType, missingProperty)) {\n          return libTarget;\n        }\n      }\n    }\n  }\n  function getSuggestedSymbolForNonexistentClassMember(name, baseType) {\n    return getSpellingSuggestionForName(name, getPropertiesOfType(baseType), 106500 /* ClassMember */);\n  }\n  function getSuggestedSymbolForNonexistentProperty(name, containingType) {\n    let props = getPropertiesOfType(containingType);\n    if (typeof name !== \"string\") {\n      const parent2 = name.parent;\n      if (isPropertyAccessExpression(parent2)) {\n        props = filter(props, (prop) => isValidPropertyAccessForCompletions(parent2, containingType, prop));\n      }\n      name = idText(name);\n    }\n    return getSpellingSuggestionForName(name, props, 111551 /* Value */);\n  }\n  function getSuggestedSymbolForNonexistentJSXAttribute(name, containingType) {\n    const strName = isString(name) ? name : idText(name);\n    const properties = getPropertiesOfType(containingType);\n    const jsxSpecific = strName === \"for\" ? find(properties, (x) => symbolName(x) === \"htmlFor\") : strName === \"class\" ? find(properties, (x) => symbolName(x) === \"className\") : void 0;\n    return jsxSpecific ?? getSpellingSuggestionForName(strName, properties, 111551 /* Value */);\n  }\n  function getSuggestionForNonexistentProperty(name, containingType) {\n    const suggestion = getSuggestedSymbolForNonexistentProperty(name, containingType);\n    return suggestion && symbolName(suggestion);\n  }\n  function getSuggestionForSymbolNameLookup(symbols, name, meaning) {\n    const symbol = getSymbol2(symbols, name, meaning);\n    if (symbol) return symbol;\n    let candidates;\n    if (symbols === globals) {\n      const primitives = mapDefined(\n        [\"string\", \"number\", \"boolean\", \"object\", \"bigint\", \"symbol\"],\n        (s) => symbols.has(s.charAt(0).toUpperCase() + s.slice(1)) ? createSymbol(524288 /* TypeAlias */, s) : void 0\n      );\n      candidates = primitives.concat(arrayFrom(symbols.values()));\n    } else {\n      candidates = arrayFrom(symbols.values());\n    }\n    return getSpellingSuggestionForName(unescapeLeadingUnderscores(name), candidates, meaning);\n  }\n  function getSuggestedSymbolForNonexistentSymbol(location, outerName, meaning) {\n    Debug.assert(outerName !== void 0, \"outername should always be defined\");\n    const result = resolveNameForSymbolSuggestion(\n      location,\n      outerName,\n      meaning,\n      /*nameNotFoundMessage*/\n      void 0,\n      /*isUse*/\n      false,\n      /*excludeGlobals*/\n      false\n    );\n    return result;\n  }\n  function getSuggestedSymbolForNonexistentModule(name, targetModule) {\n    return targetModule.exports && getSpellingSuggestionForName(idText(name), getExportsOfModuleAsArray(targetModule), 2623475 /* ModuleMember */);\n  }\n  function getSuggestionForNonexistentIndexSignature(objectType, expr, keyedType) {\n    function hasProp(name) {\n      const prop = getPropertyOfObjectType(objectType, name);\n      if (prop) {\n        const s = getSingleCallSignature(getTypeOfSymbol(prop));\n        return !!s && getMinArgumentCount(s) >= 1 && isTypeAssignableTo(keyedType, getTypeAtPosition(s, 0));\n      }\n      return false;\n    }\n    const suggestedMethod = isAssignmentTarget(expr) ? \"set\" : \"get\";\n    if (!hasProp(suggestedMethod)) {\n      return void 0;\n    }\n    let suggestion = tryGetPropertyAccessOrIdentifierToString(expr.expression);\n    if (suggestion === void 0) {\n      suggestion = suggestedMethod;\n    } else {\n      suggestion += \".\" + suggestedMethod;\n    }\n    return suggestion;\n  }\n  function getSuggestedTypeForNonexistentStringLiteralType(source, target) {\n    const candidates = target.types.filter((type) => !!(type.flags & 128 /* StringLiteral */));\n    return getSpellingSuggestion(source.value, candidates, (type) => type.value);\n  }\n  function getSpellingSuggestionForName(name, symbols, meaning) {\n    return getSpellingSuggestion(name, symbols, getCandidateName);\n    function getCandidateName(candidate) {\n      const candidateName = symbolName(candidate);\n      if (startsWith(candidateName, '\"')) {\n        return void 0;\n      }\n      if (candidate.flags & meaning) {\n        return candidateName;\n      }\n      if (candidate.flags & 2097152 /* Alias */) {\n        const alias = tryResolveAlias(candidate);\n        if (alias && alias.flags & meaning) {\n          return candidateName;\n        }\n      }\n      return void 0;\n    }\n  }\n  function markPropertyAsReferenced(prop, nodeForCheckWriteOnly, isSelfTypeAccess2) {\n    const valueDeclaration = prop && prop.flags & 106500 /* ClassMember */ && prop.valueDeclaration;\n    if (!valueDeclaration) {\n      return;\n    }\n    const hasPrivateModifier = hasEffectiveModifier(valueDeclaration, 2 /* Private */);\n    const hasPrivateIdentifier = prop.valueDeclaration && isNamedDeclaration(prop.valueDeclaration) && isPrivateIdentifier(prop.valueDeclaration.name);\n    if (!hasPrivateModifier && !hasPrivateIdentifier) {\n      return;\n    }\n    if (nodeForCheckWriteOnly && isWriteOnlyAccess(nodeForCheckWriteOnly) && !(prop.flags & 65536 /* SetAccessor */)) {\n      return;\n    }\n    if (isSelfTypeAccess2) {\n      const containingMethod = findAncestor(nodeForCheckWriteOnly, isFunctionLikeDeclaration);\n      if (containingMethod && containingMethod.symbol === prop) {\n        return;\n      }\n    }\n    (getCheckFlags(prop) & 1 /* Instantiated */ ? getSymbolLinks(prop).target : prop).isReferenced = -1 /* All */;\n  }\n  function isSelfTypeAccess(name, parent2) {\n    return name.kind === 110 /* ThisKeyword */ || !!parent2 && isEntityNameExpression(name) && parent2 === getResolvedSymbol(getFirstIdentifier(name));\n  }\n  function isValidPropertyAccess(node, propertyName) {\n    switch (node.kind) {\n      case 212 /* PropertyAccessExpression */:\n        return isValidPropertyAccessWithType(node, node.expression.kind === 108 /* SuperKeyword */, propertyName, getWidenedType(checkExpression(node.expression)));\n      case 167 /* QualifiedName */:\n        return isValidPropertyAccessWithType(\n          node,\n          /*isSuper*/\n          false,\n          propertyName,\n          getWidenedType(checkExpression(node.left))\n        );\n      case 206 /* ImportType */:\n        return isValidPropertyAccessWithType(\n          node,\n          /*isSuper*/\n          false,\n          propertyName,\n          getTypeFromTypeNode(node)\n        );\n    }\n  }\n  function isValidPropertyAccessForCompletions(node, type, property) {\n    return isPropertyAccessible(\n      node,\n      node.kind === 212 /* PropertyAccessExpression */ && node.expression.kind === 108 /* SuperKeyword */,\n      /*isWrite*/\n      false,\n      type,\n      property\n    );\n  }\n  function isValidPropertyAccessWithType(node, isSuper, propertyName, type) {\n    if (isTypeAny(type)) {\n      return true;\n    }\n    const prop = getPropertyOfType(type, propertyName);\n    return !!prop && isPropertyAccessible(\n      node,\n      isSuper,\n      /*isWrite*/\n      false,\n      type,\n      prop\n    );\n  }\n  function isPropertyAccessible(node, isSuper, isWrite, containingType, property) {\n    if (isTypeAny(containingType)) {\n      return true;\n    }\n    if (property.valueDeclaration && isPrivateIdentifierClassElementDeclaration(property.valueDeclaration)) {\n      const declClass = getContainingClass(property.valueDeclaration);\n      return !isOptionalChain(node) && !!findAncestor(node, (parent2) => parent2 === declClass);\n    }\n    return checkPropertyAccessibilityAtLocation(node, isSuper, isWrite, containingType, property);\n  }\n  function getForInVariableSymbol(node) {\n    const initializer = node.initializer;\n    if (initializer.kind === 262 /* VariableDeclarationList */) {\n      const variable = initializer.declarations[0];\n      if (variable && !isBindingPattern(variable.name)) {\n        return getSymbolOfDeclaration(variable);\n      }\n    } else if (initializer.kind === 80 /* Identifier */) {\n      return getResolvedSymbol(initializer);\n    }\n    return void 0;\n  }\n  function hasNumericPropertyNames(type) {\n    return getIndexInfosOfType(type).length === 1 && !!getIndexInfoOfType(type, numberType);\n  }\n  function isForInVariableForNumericPropertyNames(expr) {\n    const e = skipParentheses(expr);\n    if (e.kind === 80 /* Identifier */) {\n      const symbol = getResolvedSymbol(e);\n      if (symbol.flags & 3 /* Variable */) {\n        let child = expr;\n        let node = expr.parent;\n        while (node) {\n          if (node.kind === 250 /* ForInStatement */ && child === node.statement && getForInVariableSymbol(node) === symbol && hasNumericPropertyNames(getTypeOfExpression(node.expression))) {\n            return true;\n          }\n          child = node;\n          node = node.parent;\n        }\n      }\n    }\n    return false;\n  }\n  function checkIndexedAccess(node, checkMode) {\n    return node.flags & 64 /* OptionalChain */ ? checkElementAccessChain(node, checkMode) : checkElementAccessExpression(node, checkNonNullExpression(node.expression), checkMode);\n  }\n  function checkElementAccessChain(node, checkMode) {\n    const exprType = checkExpression(node.expression);\n    const nonOptionalType = getOptionalExpressionType(exprType, node.expression);\n    return propagateOptionalTypeMarker(checkElementAccessExpression(node, checkNonNullType(nonOptionalType, node.expression), checkMode), node, nonOptionalType !== exprType);\n  }\n  function checkElementAccessExpression(node, exprType, checkMode) {\n    const objectType = getAssignmentTargetKind(node) !== 0 /* None */ || isMethodAccessForCall(node) ? getWidenedType(exprType) : exprType;\n    const indexExpression = node.argumentExpression;\n    const indexType = checkExpression(indexExpression);\n    if (isErrorType(objectType) || objectType === silentNeverType) {\n      return objectType;\n    }\n    if (isConstEnumObjectType(objectType) && !isStringLiteralLike(indexExpression)) {\n      error2(indexExpression, Diagnostics.A_const_enum_member_can_only_be_accessed_using_a_string_literal);\n      return errorType;\n    }\n    const effectiveIndexType = isForInVariableForNumericPropertyNames(indexExpression) ? numberType : indexType;\n    const assignmentTargetKind = getAssignmentTargetKind(node);\n    let accessFlags;\n    if (assignmentTargetKind === 0 /* None */) {\n      accessFlags = 32 /* ExpressionPosition */;\n    } else {\n      accessFlags = 4 /* Writing */ | (isGenericObjectType(objectType) && !isThisTypeParameter(objectType) ? 2 /* NoIndexSignatures */ : 0);\n      if (assignmentTargetKind === 2 /* Compound */) {\n        accessFlags |= 32 /* ExpressionPosition */;\n      }\n    }\n    const indexedAccessType = getIndexedAccessTypeOrUndefined(objectType, effectiveIndexType, accessFlags, node) || errorType;\n    return checkIndexedAccessIndexType(getFlowTypeOfAccessExpression(node, getNodeLinks(node).resolvedSymbol, indexedAccessType, indexExpression, checkMode), node);\n  }\n  function callLikeExpressionMayHaveTypeArguments(node) {\n    return isCallOrNewExpression(node) || isTaggedTemplateExpression(node) || isJsxOpeningLikeElement(node);\n  }\n  function resolveUntypedCall(node) {\n    if (callLikeExpressionMayHaveTypeArguments(node)) {\n      forEach(node.typeArguments, checkSourceElement);\n    }\n    if (node.kind === 216 /* TaggedTemplateExpression */) {\n      checkExpression(node.template);\n    } else if (isJsxOpeningLikeElement(node)) {\n      checkExpression(node.attributes);\n    } else if (isBinaryExpression(node)) {\n      checkExpression(node.left);\n    } else if (isCallOrNewExpression(node)) {\n      forEach(node.arguments, (argument) => {\n        checkExpression(argument);\n      });\n    }\n    return anySignature;\n  }\n  function resolveErrorCall(node) {\n    resolveUntypedCall(node);\n    return unknownSignature;\n  }\n  function reorderCandidates(signatures, result, callChainFlags) {\n    let lastParent;\n    let lastSymbol;\n    let cutoffIndex = 0;\n    let index;\n    let specializedIndex = -1;\n    let spliceIndex;\n    Debug.assert(!result.length);\n    for (const signature of signatures) {\n      const symbol = signature.declaration && getSymbolOfDeclaration(signature.declaration);\n      const parent2 = signature.declaration && signature.declaration.parent;\n      if (!lastSymbol || symbol === lastSymbol) {\n        if (lastParent && parent2 === lastParent) {\n          index = index + 1;\n        } else {\n          lastParent = parent2;\n          index = cutoffIndex;\n        }\n      } else {\n        index = cutoffIndex = result.length;\n        lastParent = parent2;\n      }\n      lastSymbol = symbol;\n      if (signatureHasLiteralTypes(signature)) {\n        specializedIndex++;\n        spliceIndex = specializedIndex;\n        cutoffIndex++;\n      } else {\n        spliceIndex = index;\n      }\n      result.splice(spliceIndex, 0, callChainFlags ? getOptionalCallSignature(signature, callChainFlags) : signature);\n    }\n  }\n  function isSpreadArgument(arg) {\n    return !!arg && (arg.kind === 231 /* SpreadElement */ || arg.kind === 238 /* SyntheticExpression */ && arg.isSpread);\n  }\n  function getSpreadArgumentIndex(args) {\n    return findIndex(args, isSpreadArgument);\n  }\n  function acceptsVoid(t) {\n    return !!(t.flags & 16384 /* Void */);\n  }\n  function acceptsVoidUndefinedUnknownOrAny(t) {\n    return !!(t.flags & (16384 /* Void */ | 32768 /* Undefined */ | 2 /* Unknown */ | 1 /* Any */));\n  }\n  function hasCorrectArity(node, args, signature, signatureHelpTrailingComma = false) {\n    if (isJsxOpeningFragment(node)) return true;\n    let argCount;\n    let callIsIncomplete = false;\n    let effectiveParameterCount = getParameterCount(signature);\n    let effectiveMinimumArguments = getMinArgumentCount(signature);\n    if (node.kind === 216 /* TaggedTemplateExpression */) {\n      argCount = args.length;\n      if (node.template.kind === 229 /* TemplateExpression */) {\n        const lastSpan = last(node.template.templateSpans);\n        callIsIncomplete = nodeIsMissing(lastSpan.literal) || !!lastSpan.literal.isUnterminated;\n      } else {\n        const templateLiteral = node.template;\n        Debug.assert(templateLiteral.kind === 15 /* NoSubstitutionTemplateLiteral */);\n        callIsIncomplete = !!templateLiteral.isUnterminated;\n      }\n    } else if (node.kind === 171 /* Decorator */) {\n      argCount = getDecoratorArgumentCount(node, signature);\n    } else if (node.kind === 227 /* BinaryExpression */) {\n      argCount = 1;\n    } else if (isJsxOpeningLikeElement(node)) {\n      callIsIncomplete = node.attributes.end === node.end;\n      if (callIsIncomplete) {\n        return true;\n      }\n      argCount = effectiveMinimumArguments === 0 ? args.length : 1;\n      effectiveParameterCount = args.length === 0 ? effectiveParameterCount : 1;\n      effectiveMinimumArguments = Math.min(effectiveMinimumArguments, 1);\n    } else if (!node.arguments) {\n      Debug.assert(node.kind === 215 /* NewExpression */);\n      return getMinArgumentCount(signature) === 0;\n    } else {\n      argCount = signatureHelpTrailingComma ? args.length + 1 : args.length;\n      callIsIncomplete = node.arguments.end === node.end;\n      const spreadArgIndex = getSpreadArgumentIndex(args);\n      if (spreadArgIndex >= 0) {\n        return spreadArgIndex >= getMinArgumentCount(signature) && (hasEffectiveRestParameter(signature) || spreadArgIndex < getParameterCount(signature));\n      }\n    }\n    if (!hasEffectiveRestParameter(signature) && argCount > effectiveParameterCount) {\n      return false;\n    }\n    if (callIsIncomplete || argCount >= effectiveMinimumArguments) {\n      return true;\n    }\n    for (let i = argCount; i < effectiveMinimumArguments; i++) {\n      const type = getTypeAtPosition(signature, i);\n      if (filterType(type, isInJSFile(node) && !strictNullChecks ? acceptsVoidUndefinedUnknownOrAny : acceptsVoid).flags & 131072 /* Never */) {\n        return false;\n      }\n    }\n    return true;\n  }\n  function hasCorrectTypeArgumentArity(signature, typeArguments) {\n    const numTypeParameters = length(signature.typeParameters);\n    const minTypeArgumentCount = getMinTypeArgumentCount(signature.typeParameters);\n    return !some(typeArguments) || typeArguments.length >= minTypeArgumentCount && typeArguments.length <= numTypeParameters;\n  }\n  function isInstantiatedGenericParameter(signature, pos) {\n    let type;\n    return !!(signature.target && (type = tryGetTypeAtPosition(signature.target, pos)) && isGenericType(type));\n  }\n  function getSingleCallSignature(type) {\n    return getSingleSignature(\n      type,\n      0 /* Call */,\n      /*allowMembers*/\n      false\n    );\n  }\n  function getSingleCallOrConstructSignature(type) {\n    return getSingleSignature(\n      type,\n      0 /* Call */,\n      /*allowMembers*/\n      false\n    ) || getSingleSignature(\n      type,\n      1 /* Construct */,\n      /*allowMembers*/\n      false\n    );\n  }\n  function getSingleSignature(type, kind, allowMembers) {\n    if (type.flags & 524288 /* Object */) {\n      const resolved = resolveStructuredTypeMembers(type);\n      if (allowMembers || resolved.properties.length === 0 && resolved.indexInfos.length === 0) {\n        if (kind === 0 /* Call */ && resolved.callSignatures.length === 1 && resolved.constructSignatures.length === 0) {\n          return resolved.callSignatures[0];\n        }\n        if (kind === 1 /* Construct */ && resolved.constructSignatures.length === 1 && resolved.callSignatures.length === 0) {\n          return resolved.constructSignatures[0];\n        }\n      }\n    }\n    return void 0;\n  }\n  function instantiateSignatureInContextOf(signature, contextualSignature, inferenceContext, compareTypes) {\n    const context = createInferenceContext(getTypeParametersForMapper(signature), signature, 0 /* None */, compareTypes);\n    const restType = getEffectiveRestType(contextualSignature);\n    const mapper = inferenceContext && (restType && restType.flags & 262144 /* TypeParameter */ ? inferenceContext.nonFixingMapper : inferenceContext.mapper);\n    const sourceSignature = mapper ? instantiateSignature(contextualSignature, mapper) : contextualSignature;\n    applyToParameterTypes(sourceSignature, signature, (source, target) => {\n      inferTypes(context.inferences, source, target);\n    });\n    if (!inferenceContext) {\n      applyToReturnTypes(contextualSignature, signature, (source, target) => {\n        inferTypes(context.inferences, source, target, 128 /* ReturnType */);\n      });\n    }\n    return getSignatureInstantiation(signature, getInferredTypes(context), isInJSFile(contextualSignature.declaration));\n  }\n  function inferJsxTypeArguments(node, signature, checkMode, context) {\n    const paramType = getEffectiveFirstArgumentForJsxSignature(signature, node);\n    const checkAttrType = checkExpressionWithContextualType(node.attributes, paramType, context, checkMode);\n    inferTypes(context.inferences, checkAttrType, paramType);\n    return getInferredTypes(context);\n  }\n  function getThisArgumentType(thisArgumentNode) {\n    if (!thisArgumentNode) {\n      return voidType;\n    }\n    const thisArgumentType = checkExpression(thisArgumentNode);\n    return isRightSideOfInstanceofExpression(thisArgumentNode) ? thisArgumentType : isOptionalChainRoot(thisArgumentNode.parent) ? getNonNullableType(thisArgumentType) : isOptionalChain(thisArgumentNode.parent) ? removeOptionalTypeMarker(thisArgumentType) : thisArgumentType;\n  }\n  function inferTypeArguments(node, signature, args, checkMode, context) {\n    if (isJsxOpeningLikeElement(node)) {\n      return inferJsxTypeArguments(node, signature, checkMode, context);\n    }\n    if (node.kind !== 171 /* Decorator */ && node.kind !== 227 /* BinaryExpression */) {\n      const skipBindingPatterns = every(signature.typeParameters, (p) => !!getDefaultFromTypeParameter(p));\n      const contextualType = getContextualType2(node, skipBindingPatterns ? 8 /* SkipBindingPatterns */ : 0 /* None */);\n      if (contextualType) {\n        const inferenceTargetType = getReturnTypeOfSignature(signature);\n        if (couldContainTypeVariables(inferenceTargetType)) {\n          const outerContext = getInferenceContext(node);\n          const isFromBindingPattern = !skipBindingPatterns && getContextualType2(node, 8 /* SkipBindingPatterns */) !== contextualType;\n          if (!isFromBindingPattern) {\n            const outerMapper = getMapperFromContext(cloneInferenceContext(outerContext, 1 /* NoDefault */));\n            const instantiatedType = instantiateType(contextualType, outerMapper);\n            const contextualSignature = getSingleCallSignature(instantiatedType);\n            const inferenceSourceType = contextualSignature && contextualSignature.typeParameters ? getOrCreateTypeFromSignature(getSignatureInstantiationWithoutFillingInTypeArguments(contextualSignature, contextualSignature.typeParameters)) : instantiatedType;\n            inferTypes(context.inferences, inferenceSourceType, inferenceTargetType, 128 /* ReturnType */);\n          }\n          const returnContext = createInferenceContext(signature.typeParameters, signature, context.flags);\n          const returnSourceType = instantiateType(contextualType, outerContext && createOuterReturnMapper(outerContext));\n          inferTypes(returnContext.inferences, returnSourceType, inferenceTargetType);\n          context.returnMapper = some(returnContext.inferences, hasInferenceCandidates) ? getMapperFromContext(cloneInferredPartOfContext(returnContext)) : void 0;\n        }\n      }\n    }\n    const restType = getNonArrayRestType(signature);\n    const argCount = restType ? Math.min(getParameterCount(signature) - 1, args.length) : args.length;\n    if (restType && restType.flags & 262144 /* TypeParameter */) {\n      const info = find(context.inferences, (info2) => info2.typeParameter === restType);\n      if (info) {\n        info.impliedArity = findIndex(args, isSpreadArgument, argCount) < 0 ? args.length - argCount : void 0;\n      }\n    }\n    const thisType = getThisTypeOfSignature(signature);\n    if (thisType && couldContainTypeVariables(thisType)) {\n      const thisArgumentNode = getThisArgumentOfCall(node);\n      inferTypes(context.inferences, getThisArgumentType(thisArgumentNode), thisType);\n    }\n    for (let i = 0; i < argCount; i++) {\n      const arg = args[i];\n      if (arg.kind !== 233 /* OmittedExpression */) {\n        const paramType = getTypeAtPosition(signature, i);\n        if (couldContainTypeVariables(paramType)) {\n          const argType = checkExpressionWithContextualType(arg, paramType, context, checkMode);\n          inferTypes(context.inferences, argType, paramType);\n        }\n      }\n    }\n    if (restType && couldContainTypeVariables(restType)) {\n      const spreadType = getSpreadArgumentType(args, argCount, args.length, restType, context, checkMode);\n      inferTypes(context.inferences, spreadType, restType);\n    }\n    return getInferredTypes(context);\n  }\n  function getMutableArrayOrTupleType(type) {\n    return type.flags & 1048576 /* Union */ ? mapType(type, getMutableArrayOrTupleType) : type.flags & 1 /* Any */ || isMutableArrayOrTuple(getBaseConstraintOfType(type) || type) ? type : isTupleType(type) ? createTupleType(\n      getElementTypes(type),\n      type.target.elementFlags,\n      /*readonly*/\n      false,\n      type.target.labeledElementDeclarations\n    ) : createTupleType([type], [8 /* Variadic */]);\n  }\n  function getSpreadArgumentType(args, index, argCount, restType, context, checkMode) {\n    const inConstContext = isConstTypeVariable(restType);\n    if (index >= argCount - 1) {\n      const arg = args[argCount - 1];\n      if (isSpreadArgument(arg)) {\n        const spreadType = arg.kind === 238 /* SyntheticExpression */ ? arg.type : checkExpressionWithContextualType(arg.expression, restType, context, checkMode);\n        if (isArrayLikeType(spreadType)) {\n          return getMutableArrayOrTupleType(spreadType);\n        }\n        return createArrayType(checkIteratedTypeOrElementType(33 /* Spread */, spreadType, undefinedType, arg.kind === 231 /* SpreadElement */ ? arg.expression : arg), inConstContext);\n      }\n    }\n    const types = [];\n    const flags = [];\n    const names = [];\n    for (let i = index; i < argCount; i++) {\n      const arg = args[i];\n      if (isSpreadArgument(arg)) {\n        const spreadType = arg.kind === 238 /* SyntheticExpression */ ? arg.type : checkExpression(arg.expression);\n        if (isArrayLikeType(spreadType)) {\n          types.push(spreadType);\n          flags.push(8 /* Variadic */);\n        } else {\n          types.push(checkIteratedTypeOrElementType(33 /* Spread */, spreadType, undefinedType, arg.kind === 231 /* SpreadElement */ ? arg.expression : arg));\n          flags.push(4 /* Rest */);\n        }\n      } else {\n        const contextualType = isTupleType(restType) ? getContextualTypeForElementExpression(restType, i - index, argCount - index) || unknownType : getIndexedAccessType(restType, getNumberLiteralType(i - index), 256 /* Contextual */);\n        const argType = checkExpressionWithContextualType(arg, contextualType, context, checkMode);\n        const hasPrimitiveContextualType = inConstContext || maybeTypeOfKind(contextualType, 402784252 /* Primitive */ | 4194304 /* Index */ | 134217728 /* TemplateLiteral */ | 268435456 /* StringMapping */);\n        types.push(hasPrimitiveContextualType ? getRegularTypeOfLiteralType(argType) : getWidenedLiteralType(argType));\n        flags.push(1 /* Required */);\n      }\n      if (arg.kind === 238 /* SyntheticExpression */ && arg.tupleNameSource) {\n        names.push(arg.tupleNameSource);\n      } else {\n        names.push(void 0);\n      }\n    }\n    return createTupleType(types, flags, inConstContext && !someType(restType, isMutableArrayLikeType), names);\n  }\n  function checkTypeArguments(signature, typeArgumentNodes, reportErrors2, headMessage) {\n    const isJavascript = isInJSFile(signature.declaration);\n    const typeParameters = signature.typeParameters;\n    const typeArgumentTypes = fillMissingTypeArguments(map(typeArgumentNodes, getTypeFromTypeNode), typeParameters, getMinTypeArgumentCount(typeParameters), isJavascript);\n    let mapper;\n    for (let i = 0; i < typeArgumentNodes.length; i++) {\n      Debug.assert(typeParameters[i] !== void 0, \"Should not call checkTypeArguments with too many type arguments\");\n      const constraint = getConstraintOfTypeParameter(typeParameters[i]);\n      if (constraint) {\n        const errorInfo = reportErrors2 && headMessage ? () => chainDiagnosticMessages(\n          /*details*/\n          void 0,\n          Diagnostics.Type_0_does_not_satisfy_the_constraint_1\n        ) : void 0;\n        const typeArgumentHeadMessage = headMessage || Diagnostics.Type_0_does_not_satisfy_the_constraint_1;\n        if (!mapper) {\n          mapper = createTypeMapper(typeParameters, typeArgumentTypes);\n        }\n        const typeArgument = typeArgumentTypes[i];\n        if (!checkTypeAssignableTo(\n          typeArgument,\n          getTypeWithThisArgument(instantiateType(constraint, mapper), typeArgument),\n          reportErrors2 ? typeArgumentNodes[i] : void 0,\n          typeArgumentHeadMessage,\n          errorInfo\n        )) {\n          return void 0;\n        }\n      }\n    }\n    return typeArgumentTypes;\n  }\n  function getJsxReferenceKind(node) {\n    if (isJsxIntrinsicTagName(node.tagName)) {\n      return 2 /* Mixed */;\n    }\n    const tagType = getApparentType(checkExpression(node.tagName));\n    if (length(getSignaturesOfType(tagType, 1 /* Construct */))) {\n      return 0 /* Component */;\n    }\n    if (length(getSignaturesOfType(tagType, 0 /* Call */))) {\n      return 1 /* Function */;\n    }\n    return 2 /* Mixed */;\n  }\n  function checkApplicableSignatureForJsxCallLikeElement(node, signature, relation, checkMode, reportErrors2, containingMessageChain, errorOutputContainer) {\n    const paramType = getEffectiveFirstArgumentForJsxSignature(signature, node);\n    const attributesType = isJsxOpeningFragment(node) ? createJsxAttributesTypeFromAttributesProperty(node) : checkExpressionWithContextualType(\n      node.attributes,\n      paramType,\n      /*inferenceContext*/\n      void 0,\n      checkMode\n    );\n    const checkAttributesType = checkMode & 4 /* SkipContextSensitive */ ? getRegularTypeOfObjectLiteral(attributesType) : attributesType;\n    return checkTagNameDoesNotExpectTooManyArguments() && checkTypeRelatedToAndOptionallyElaborate(\n      checkAttributesType,\n      paramType,\n      relation,\n      reportErrors2 ? isJsxOpeningFragment(node) ? node : node.tagName : void 0,\n      isJsxOpeningFragment(node) ? void 0 : node.attributes,\n      /*headMessage*/\n      void 0,\n      containingMessageChain,\n      errorOutputContainer\n    );\n    function checkTagNameDoesNotExpectTooManyArguments() {\n      var _a;\n      if (getJsxNamespaceContainerForImplicitImport(node)) {\n        return true;\n      }\n      const tagType = (isJsxOpeningElement(node) || isJsxSelfClosingElement(node)) && !(isJsxIntrinsicTagName(node.tagName) || isJsxNamespacedName(node.tagName)) ? checkExpression(node.tagName) : void 0;\n      if (!tagType) {\n        return true;\n      }\n      const tagCallSignatures = getSignaturesOfType(tagType, 0 /* Call */);\n      if (!length(tagCallSignatures)) {\n        return true;\n      }\n      const factory2 = getJsxFactoryEntity(node);\n      if (!factory2) {\n        return true;\n      }\n      const factorySymbol = resolveEntityName(\n        factory2,\n        111551 /* Value */,\n        /*ignoreErrors*/\n        true,\n        /*dontResolveAlias*/\n        false,\n        node\n      );\n      if (!factorySymbol) {\n        return true;\n      }\n      const factoryType = getTypeOfSymbol(factorySymbol);\n      const callSignatures = getSignaturesOfType(factoryType, 0 /* Call */);\n      if (!length(callSignatures)) {\n        return true;\n      }\n      let hasFirstParamSignatures = false;\n      let maxParamCount = 0;\n      for (const sig of callSignatures) {\n        const firstparam = getTypeAtPosition(sig, 0);\n        const signaturesOfParam = getSignaturesOfType(firstparam, 0 /* Call */);\n        if (!length(signaturesOfParam)) continue;\n        for (const paramSig of signaturesOfParam) {\n          hasFirstParamSignatures = true;\n          if (hasEffectiveRestParameter(paramSig)) {\n            return true;\n          }\n          const paramCount = getParameterCount(paramSig);\n          if (paramCount > maxParamCount) {\n            maxParamCount = paramCount;\n          }\n        }\n      }\n      if (!hasFirstParamSignatures) {\n        return true;\n      }\n      let absoluteMinArgCount = Infinity;\n      for (const tagSig of tagCallSignatures) {\n        const tagRequiredArgCount = getMinArgumentCount(tagSig);\n        if (tagRequiredArgCount < absoluteMinArgCount) {\n          absoluteMinArgCount = tagRequiredArgCount;\n        }\n      }\n      if (absoluteMinArgCount <= maxParamCount) {\n        return true;\n      }\n      if (reportErrors2) {\n        const tagName = node.tagName;\n        const diag2 = createDiagnosticForNode(tagName, Diagnostics.Tag_0_expects_at_least_1_arguments_but_the_JSX_factory_2_provides_at_most_3, entityNameToString(tagName), absoluteMinArgCount, entityNameToString(factory2), maxParamCount);\n        const tagNameDeclaration = (_a = getSymbolAtLocation(tagName)) == null ? void 0 : _a.valueDeclaration;\n        if (tagNameDeclaration) {\n          addRelatedInfo(diag2, createDiagnosticForNode(tagNameDeclaration, Diagnostics._0_is_declared_here, entityNameToString(tagName)));\n        }\n        if (errorOutputContainer && errorOutputContainer.skipLogging) {\n          (errorOutputContainer.errors || (errorOutputContainer.errors = [])).push(diag2);\n        }\n        if (!errorOutputContainer.skipLogging) {\n          diagnostics.add(diag2);\n        }\n      }\n      return false;\n    }\n  }\n  function getEffectiveCheckNode(argument) {\n    const flags = isInJSFile(argument) ? 1 /* Parentheses */ | 32 /* Satisfies */ | -2147483648 /* ExcludeJSDocTypeAssertion */ : 1 /* Parentheses */ | 32 /* Satisfies */;\n    return skipOuterExpressions(argument, flags);\n  }\n  function getSignatureApplicabilityError(node, args, signature, relation, checkMode, reportErrors2, containingMessageChain) {\n    const errorOutputContainer = { errors: void 0, skipLogging: true };\n    if (isJsxCallLike(node)) {\n      if (!checkApplicableSignatureForJsxCallLikeElement(node, signature, relation, checkMode, reportErrors2, containingMessageChain, errorOutputContainer)) {\n        Debug.assert(!reportErrors2 || !!errorOutputContainer.errors, \"jsx should have errors when reporting errors\");\n        return errorOutputContainer.errors || emptyArray;\n      }\n      return void 0;\n    }\n    const thisType = getThisTypeOfSignature(signature);\n    if (thisType && thisType !== voidType && !(isNewExpression(node) || isCallExpression(node) && isSuperProperty(node.expression))) {\n      const thisArgumentNode = getThisArgumentOfCall(node);\n      const thisArgumentType = getThisArgumentType(thisArgumentNode);\n      const errorNode = reportErrors2 ? thisArgumentNode || node : void 0;\n      const headMessage2 = Diagnostics.The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1;\n      if (!checkTypeRelatedTo(thisArgumentType, thisType, relation, errorNode, headMessage2, containingMessageChain, errorOutputContainer)) {\n        Debug.assert(!reportErrors2 || !!errorOutputContainer.errors, \"this parameter should have errors when reporting errors\");\n        return errorOutputContainer.errors || emptyArray;\n      }\n    }\n    const headMessage = Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1;\n    const restType = getNonArrayRestType(signature);\n    const argCount = restType ? Math.min(getParameterCount(signature) - 1, args.length) : args.length;\n    for (let i = 0; i < argCount; i++) {\n      const arg = args[i];\n      if (arg.kind !== 233 /* OmittedExpression */) {\n        const paramType = getTypeAtPosition(signature, i);\n        const argType = checkExpressionWithContextualType(\n          arg,\n          paramType,\n          /*inferenceContext*/\n          void 0,\n          checkMode\n        );\n        const checkArgType = checkMode & 4 /* SkipContextSensitive */ ? getRegularTypeOfObjectLiteral(argType) : argType;\n        const effectiveCheckArgumentNode = getEffectiveCheckNode(arg);\n        if (!checkTypeRelatedToAndOptionallyElaborate(checkArgType, paramType, relation, reportErrors2 ? effectiveCheckArgumentNode : void 0, effectiveCheckArgumentNode, headMessage, containingMessageChain, errorOutputContainer)) {\n          Debug.assert(!reportErrors2 || !!errorOutputContainer.errors, \"parameter should have errors when reporting errors\");\n          maybeAddMissingAwaitInfo(arg, checkArgType, paramType);\n          return errorOutputContainer.errors || emptyArray;\n        }\n      }\n    }\n    if (restType) {\n      const spreadType = getSpreadArgumentType(\n        args,\n        argCount,\n        args.length,\n        restType,\n        /*context*/\n        void 0,\n        checkMode\n      );\n      const restArgCount = args.length - argCount;\n      const errorNode = !reportErrors2 ? void 0 : restArgCount === 0 ? node : restArgCount === 1 ? getEffectiveCheckNode(args[argCount]) : setTextRangePosEnd(createSyntheticExpression(node, spreadType), args[argCount].pos, args[args.length - 1].end);\n      if (!checkTypeRelatedTo(\n        spreadType,\n        restType,\n        relation,\n        errorNode,\n        headMessage,\n        /*containingMessageChain*/\n        void 0,\n        errorOutputContainer\n      )) {\n        Debug.assert(!reportErrors2 || !!errorOutputContainer.errors, \"rest parameter should have errors when reporting errors\");\n        maybeAddMissingAwaitInfo(errorNode, spreadType, restType);\n        return errorOutputContainer.errors || emptyArray;\n      }\n    }\n    return void 0;\n    function maybeAddMissingAwaitInfo(errorNode, source, target) {\n      if (errorNode && reportErrors2 && errorOutputContainer.errors && errorOutputContainer.errors.length) {\n        if (getAwaitedTypeOfPromise(target)) {\n          return;\n        }\n        const awaitedTypeOfSource = getAwaitedTypeOfPromise(source);\n        if (awaitedTypeOfSource && isTypeRelatedTo(awaitedTypeOfSource, target, relation)) {\n          addRelatedInfo(errorOutputContainer.errors[0], createDiagnosticForNode(errorNode, Diagnostics.Did_you_forget_to_use_await));\n        }\n      }\n    }\n  }\n  function getThisArgumentOfCall(node) {\n    if (node.kind === 227 /* BinaryExpression */) {\n      return node.right;\n    }\n    const expression = node.kind === 214 /* CallExpression */ ? node.expression : node.kind === 216 /* TaggedTemplateExpression */ ? node.tag : node.kind === 171 /* Decorator */ && !legacyDecorators ? node.expression : void 0;\n    if (expression) {\n      const callee = skipOuterExpressions(expression);\n      if (isAccessExpression(callee)) {\n        return callee.expression;\n      }\n    }\n  }\n  function createSyntheticExpression(parent2, type, isSpread, tupleNameSource) {\n    const result = parseNodeFactory.createSyntheticExpression(type, isSpread, tupleNameSource);\n    setTextRange(result, parent2);\n    setParent(result, parent2);\n    return result;\n  }\n  function getEffectiveCallArguments(node) {\n    if (isJsxOpeningFragment(node)) {\n      return [createSyntheticExpression(node, emptyFreshJsxObjectType)];\n    }\n    if (node.kind === 216 /* TaggedTemplateExpression */) {\n      const template = node.template;\n      const args2 = [createSyntheticExpression(template, getGlobalTemplateStringsArrayType())];\n      if (template.kind === 229 /* TemplateExpression */) {\n        forEach(template.templateSpans, (span) => {\n          args2.push(span.expression);\n        });\n      }\n      return args2;\n    }\n    if (node.kind === 171 /* Decorator */) {\n      return getEffectiveDecoratorArguments(node);\n    }\n    if (node.kind === 227 /* BinaryExpression */) {\n      return [node.left];\n    }\n    if (isJsxOpeningLikeElement(node)) {\n      return node.attributes.properties.length > 0 || isJsxOpeningElement(node) && node.parent.children.length > 0 ? [node.attributes] : emptyArray;\n    }\n    const args = node.arguments || emptyArray;\n    const spreadIndex = getSpreadArgumentIndex(args);\n    if (spreadIndex >= 0) {\n      const effectiveArgs = args.slice(0, spreadIndex);\n      for (let i = spreadIndex; i < args.length; i++) {\n        const arg = args[i];\n        const spreadType = arg.kind === 231 /* SpreadElement */ && (flowLoopCount ? checkExpression(arg.expression) : checkExpressionCached(arg.expression));\n        if (spreadType && isTupleType(spreadType)) {\n          forEach(getElementTypes(spreadType), (t, i2) => {\n            var _a;\n            const flags = spreadType.target.elementFlags[i2];\n            const syntheticArg = createSyntheticExpression(arg, flags & 4 /* Rest */ ? createArrayType(t) : t, !!(flags & 12 /* Variable */), (_a = spreadType.target.labeledElementDeclarations) == null ? void 0 : _a[i2]);\n            effectiveArgs.push(syntheticArg);\n          });\n        } else {\n          effectiveArgs.push(arg);\n        }\n      }\n      return effectiveArgs;\n    }\n    return args;\n  }\n  function getEffectiveDecoratorArguments(node) {\n    const expr = node.expression;\n    const signature = getDecoratorCallSignature(node);\n    if (signature) {\n      const args = [];\n      for (const param of signature.parameters) {\n        const type = getTypeOfSymbol(param);\n        args.push(createSyntheticExpression(expr, type));\n      }\n      return args;\n    }\n    return Debug.fail();\n  }\n  function getDecoratorArgumentCount(node, signature) {\n    return compilerOptions.experimentalDecorators ? getLegacyDecoratorArgumentCount(node, signature) : (\n      // Allow the runtime to oversupply arguments to an ES decorator as long as there's at least one parameter.\n      Math.min(Math.max(getParameterCount(signature), 1), 2)\n    );\n  }\n  function getLegacyDecoratorArgumentCount(node, signature) {\n    switch (node.parent.kind) {\n      case 264 /* ClassDeclaration */:\n      case 232 /* ClassExpression */:\n        return 1;\n      case 173 /* PropertyDeclaration */:\n        return hasAccessorModifier(node.parent) ? 3 : 2;\n      case 175 /* MethodDeclaration */:\n      case 178 /* GetAccessor */:\n      case 179 /* SetAccessor */:\n        return signature.parameters.length <= 2 ? 2 : 3;\n      case 170 /* Parameter */:\n        return 3;\n      default:\n        return Debug.fail();\n    }\n  }\n  function getDiagnosticSpanForCallNode(node) {\n    const sourceFile = getSourceFileOfNode(node);\n    const { start, length: length2 } = getErrorSpanForNode(sourceFile, isPropertyAccessExpression(node.expression) ? node.expression.name : node.expression);\n    return { start, length: length2, sourceFile };\n  }\n  function getDiagnosticForCallNode(node, message, ...args) {\n    if (isCallExpression(node)) {\n      const { sourceFile, start, length: length2 } = getDiagnosticSpanForCallNode(node);\n      if (\"message\" in message) {\n        return createFileDiagnostic(sourceFile, start, length2, message, ...args);\n      }\n      return createDiagnosticForFileFromMessageChain(sourceFile, message);\n    } else {\n      if (\"message\" in message) {\n        return createDiagnosticForNode(node, message, ...args);\n      }\n      return createDiagnosticForNodeFromMessageChain(getSourceFileOfNode(node), node, message);\n    }\n  }\n  function getErrorNodeForCallNode(callLike) {\n    if (isCallOrNewExpression(callLike)) {\n      return isPropertyAccessExpression(callLike.expression) ? callLike.expression.name : callLike.expression;\n    }\n    if (isTaggedTemplateExpression(callLike)) {\n      return isPropertyAccessExpression(callLike.tag) ? callLike.tag.name : callLike.tag;\n    }\n    if (isJsxOpeningLikeElement(callLike)) {\n      return callLike.tagName;\n    }\n    return callLike;\n  }\n  function isPromiseResolveArityError(node) {\n    if (!isCallExpression(node) || !isIdentifier(node.expression)) return false;\n    const symbol = resolveName(\n      node.expression,\n      node.expression.escapedText,\n      111551 /* Value */,\n      /*nameNotFoundMessage*/\n      void 0,\n      /*isUse*/\n      false\n    );\n    const decl = symbol == null ? void 0 : symbol.valueDeclaration;\n    if (!decl || !isParameter(decl) || !isFunctionExpressionOrArrowFunction(decl.parent) || !isNewExpression(decl.parent.parent) || !isIdentifier(decl.parent.parent.expression)) {\n      return false;\n    }\n    const globalPromiseSymbol = getGlobalPromiseConstructorSymbol(\n      /*reportErrors*/\n      false\n    );\n    if (!globalPromiseSymbol) return false;\n    const constructorSymbol = getSymbolAtLocation(\n      decl.parent.parent.expression,\n      /*ignoreErrors*/\n      true\n    );\n    return constructorSymbol === globalPromiseSymbol;\n  }\n  function getArgumentArityError(node, signatures, args, headMessage) {\n    var _a;\n    const spreadIndex = getSpreadArgumentIndex(args);\n    if (spreadIndex > -1) {\n      return createDiagnosticForNode(args[spreadIndex], Diagnostics.A_spread_argument_must_either_have_a_tuple_type_or_be_passed_to_a_rest_parameter);\n    }\n    let min2 = Number.POSITIVE_INFINITY;\n    let max = Number.NEGATIVE_INFINITY;\n    let maxBelow = Number.NEGATIVE_INFINITY;\n    let minAbove = Number.POSITIVE_INFINITY;\n    let closestSignature;\n    for (const sig of signatures) {\n      const minParameter = getMinArgumentCount(sig);\n      const maxParameter = getParameterCount(sig);\n      if (minParameter < min2) {\n        min2 = minParameter;\n        closestSignature = sig;\n      }\n      max = Math.max(max, maxParameter);\n      if (minParameter < args.length && minParameter > maxBelow) maxBelow = minParameter;\n      if (args.length < maxParameter && maxParameter < minAbove) minAbove = maxParameter;\n    }\n    const hasRestParameter2 = some(signatures, hasEffectiveRestParameter);\n    const parameterRange = hasRestParameter2 ? min2 : min2 < max ? min2 + \"-\" + max : min2;\n    const isVoidPromiseError = !hasRestParameter2 && parameterRange === 1 && args.length === 0 && isPromiseResolveArityError(node);\n    if (isVoidPromiseError && isInJSFile(node)) {\n      return getDiagnosticForCallNode(node, Diagnostics.Expected_1_argument_but_got_0_new_Promise_needs_a_JSDoc_hint_to_produce_a_resolve_that_can_be_called_without_arguments);\n    }\n    const error3 = isDecorator(node) ? hasRestParameter2 ? Diagnostics.The_runtime_will_invoke_the_decorator_with_1_arguments_but_the_decorator_expects_at_least_0 : Diagnostics.The_runtime_will_invoke_the_decorator_with_1_arguments_but_the_decorator_expects_0 : hasRestParameter2 ? Diagnostics.Expected_at_least_0_arguments_but_got_1 : isVoidPromiseError ? Diagnostics.Expected_0_arguments_but_got_1_Did_you_forget_to_include_void_in_your_type_argument_to_Promise : Diagnostics.Expected_0_arguments_but_got_1;\n    if (min2 < args.length && args.length < max) {\n      if (headMessage) {\n        let chain = chainDiagnosticMessages(\n          /*details*/\n          void 0,\n          Diagnostics.No_overload_expects_0_arguments_but_overloads_do_exist_that_expect_either_1_or_2_arguments,\n          args.length,\n          maxBelow,\n          minAbove\n        );\n        chain = chainDiagnosticMessages(chain, headMessage);\n        return getDiagnosticForCallNode(node, chain);\n      }\n      return getDiagnosticForCallNode(node, Diagnostics.No_overload_expects_0_arguments_but_overloads_do_exist_that_expect_either_1_or_2_arguments, args.length, maxBelow, minAbove);\n    } else if (args.length < min2) {\n      let diagnostic;\n      if (headMessage) {\n        let chain = chainDiagnosticMessages(\n          /*details*/\n          void 0,\n          error3,\n          parameterRange,\n          args.length\n        );\n        chain = chainDiagnosticMessages(chain, headMessage);\n        diagnostic = getDiagnosticForCallNode(node, chain);\n      } else {\n        diagnostic = getDiagnosticForCallNode(node, error3, parameterRange, args.length);\n      }\n      const parameter = (_a = closestSignature == null ? void 0 : closestSignature.declaration) == null ? void 0 : _a.parameters[closestSignature.thisParameter ? args.length + 1 : args.length];\n      if (parameter) {\n        const messageAndArgs = isBindingPattern(parameter.name) ? [Diagnostics.An_argument_matching_this_binding_pattern_was_not_provided] : isRestParameter(parameter) ? [Diagnostics.Arguments_for_the_rest_parameter_0_were_not_provided, idText(getFirstIdentifier(parameter.name))] : [Diagnostics.An_argument_for_0_was_not_provided, !parameter.name ? args.length : idText(getFirstIdentifier(parameter.name))];\n        const parameterError = createDiagnosticForNode(parameter, ...messageAndArgs);\n        return addRelatedInfo(diagnostic, parameterError);\n      }\n      return diagnostic;\n    } else {\n      const errorSpan = factory.createNodeArray(args.slice(max));\n      const pos = first(errorSpan).pos;\n      let end = last(errorSpan).end;\n      if (end === pos) {\n        end++;\n      }\n      setTextRangePosEnd(errorSpan, pos, end);\n      if (headMessage) {\n        let chain = chainDiagnosticMessages(\n          /*details*/\n          void 0,\n          error3,\n          parameterRange,\n          args.length\n        );\n        chain = chainDiagnosticMessages(chain, headMessage);\n        return createDiagnosticForNodeArrayFromMessageChain(getSourceFileOfNode(node), errorSpan, chain);\n      }\n      return createDiagnosticForNodeArray(getSourceFileOfNode(node), errorSpan, error3, parameterRange, args.length);\n    }\n  }\n  function getTypeArgumentArityError(node, signatures, typeArguments, headMessage) {\n    const argCount = typeArguments.length;\n    if (signatures.length === 1) {\n      const sig = signatures[0];\n      const min2 = getMinTypeArgumentCount(sig.typeParameters);\n      const max = length(sig.typeParameters);\n      if (headMessage) {\n        let chain = chainDiagnosticMessages(\n          /*details*/\n          void 0,\n          Diagnostics.Expected_0_type_arguments_but_got_1,\n          min2 < max ? min2 + \"-\" + max : min2,\n          argCount\n        );\n        chain = chainDiagnosticMessages(chain, headMessage);\n        return createDiagnosticForNodeArrayFromMessageChain(getSourceFileOfNode(node), typeArguments, chain);\n      }\n      return createDiagnosticForNodeArray(getSourceFileOfNode(node), typeArguments, Diagnostics.Expected_0_type_arguments_but_got_1, min2 < max ? min2 + \"-\" + max : min2, argCount);\n    }\n    let belowArgCount = -Infinity;\n    let aboveArgCount = Infinity;\n    for (const sig of signatures) {\n      const min2 = getMinTypeArgumentCount(sig.typeParameters);\n      const max = length(sig.typeParameters);\n      if (min2 > argCount) {\n        aboveArgCount = Math.min(aboveArgCount, min2);\n      } else if (max < argCount) {\n        belowArgCount = Math.max(belowArgCount, max);\n      }\n    }\n    if (belowArgCount !== -Infinity && aboveArgCount !== Infinity) {\n      if (headMessage) {\n        let chain = chainDiagnosticMessages(\n          /*details*/\n          void 0,\n          Diagnostics.No_overload_expects_0_type_arguments_but_overloads_do_exist_that_expect_either_1_or_2_type_arguments,\n          argCount,\n          belowArgCount,\n          aboveArgCount\n        );\n        chain = chainDiagnosticMessages(chain, headMessage);\n        return createDiagnosticForNodeArrayFromMessageChain(getSourceFileOfNode(node), typeArguments, chain);\n      }\n      return createDiagnosticForNodeArray(getSourceFileOfNode(node), typeArguments, Diagnostics.No_overload_expects_0_type_arguments_but_overloads_do_exist_that_expect_either_1_or_2_type_arguments, argCount, belowArgCount, aboveArgCount);\n    }\n    if (headMessage) {\n      let chain = chainDiagnosticMessages(\n        /*details*/\n        void 0,\n        Diagnostics.Expected_0_type_arguments_but_got_1,\n        belowArgCount === -Infinity ? aboveArgCount : belowArgCount,\n        argCount\n      );\n      chain = chainDiagnosticMessages(chain, headMessage);\n      return createDiagnosticForNodeArrayFromMessageChain(getSourceFileOfNode(node), typeArguments, chain);\n    }\n    return createDiagnosticForNodeArray(getSourceFileOfNode(node), typeArguments, Diagnostics.Expected_0_type_arguments_but_got_1, belowArgCount === -Infinity ? aboveArgCount : belowArgCount, argCount);\n  }\n  function resolveCall(node, signatures, candidatesOutArray, checkMode, callChainFlags, headMessage) {\n    const isTaggedTemplate = node.kind === 216 /* TaggedTemplateExpression */;\n    const isDecorator2 = node.kind === 171 /* Decorator */;\n    const isJsxOpeningOrSelfClosingElement = isJsxOpeningLikeElement(node);\n    const isJsxOpenFragment = isJsxOpeningFragment(node);\n    const isInstanceof = node.kind === 227 /* BinaryExpression */;\n    const reportErrors2 = !isInferencePartiallyBlocked && !candidatesOutArray;\n    let candidatesForArgumentError;\n    let candidateForArgumentArityError;\n    let candidateForTypeArgumentError;\n    let result;\n    let argCheckMode = 0 /* Normal */;\n    let candidates = [];\n    let typeArguments;\n    if (!isDecorator2 && !isInstanceof && !isSuperCall(node) && !isJsxOpenFragment) {\n      typeArguments = node.typeArguments;\n      if (isTaggedTemplate || isJsxOpeningOrSelfClosingElement || node.expression.kind !== 108 /* SuperKeyword */) {\n        forEach(typeArguments, checkSourceElement);\n      }\n    }\n    candidates = candidatesOutArray || [];\n    reorderCandidates(signatures, candidates, callChainFlags);\n    if (!isJsxOpenFragment) {\n      if (!candidates.length) {\n        if (reportErrors2) {\n          diagnostics.add(getDiagnosticForCallNode(node, Diagnostics.Call_target_does_not_contain_any_signatures));\n        }\n        return resolveErrorCall(node);\n      }\n    }\n    const args = getEffectiveCallArguments(node);\n    const isSingleNonGenericCandidate = candidates.length === 1 && !candidates[0].typeParameters;\n    if (!isDecorator2 && !isSingleNonGenericCandidate && some(args, isContextSensitive)) {\n      argCheckMode = 4 /* SkipContextSensitive */;\n    }\n    const signatureHelpTrailingComma = !!(checkMode & 16 /* IsForSignatureHelp */) && node.kind === 214 /* CallExpression */ && node.arguments.hasTrailingComma;\n    if (candidates.length > 1) {\n      result = chooseOverload(candidates, subtypeRelation, isSingleNonGenericCandidate, signatureHelpTrailingComma);\n    }\n    if (!result) {\n      result = chooseOverload(candidates, assignableRelation, isSingleNonGenericCandidate, signatureHelpTrailingComma);\n    }\n    const links = getNodeLinks(node);\n    if (links.resolvedSignature !== resolvingSignature && !candidatesOutArray) {\n      Debug.assert(links.resolvedSignature);\n      return links.resolvedSignature;\n    }\n    if (result) {\n      return result;\n    }\n    result = getCandidateForOverloadFailure(node, candidates, args, !!candidatesOutArray, checkMode);\n    links.resolvedSignature = result;\n    if (reportErrors2) {\n      if (!headMessage && isInstanceof) {\n        headMessage = Diagnostics.The_left_hand_side_of_an_instanceof_expression_must_be_assignable_to_the_first_argument_of_the_right_hand_side_s_Symbol_hasInstance_method;\n      }\n      if (candidatesForArgumentError) {\n        if (candidatesForArgumentError.length === 1 || candidatesForArgumentError.length > 3) {\n          const last2 = candidatesForArgumentError[candidatesForArgumentError.length - 1];\n          let chain;\n          if (candidatesForArgumentError.length > 3) {\n            chain = chainDiagnosticMessages(chain, Diagnostics.The_last_overload_gave_the_following_error);\n            chain = chainDiagnosticMessages(chain, Diagnostics.No_overload_matches_this_call);\n          }\n          if (headMessage) {\n            chain = chainDiagnosticMessages(chain, headMessage);\n          }\n          const diags = getSignatureApplicabilityError(\n            node,\n            args,\n            last2,\n            assignableRelation,\n            0 /* Normal */,\n            /*reportErrors*/\n            true,\n            () => chain\n          );\n          if (diags) {\n            for (const d of diags) {\n              if (last2.declaration && candidatesForArgumentError.length > 3) {\n                addRelatedInfo(d, createDiagnosticForNode(last2.declaration, Diagnostics.The_last_overload_is_declared_here));\n              }\n              addImplementationSuccessElaboration(last2, d);\n              diagnostics.add(d);\n            }\n          } else {\n            Debug.fail(\"No error for last overload signature\");\n          }\n        } else {\n          const allDiagnostics = [];\n          let max = 0;\n          let min2 = Number.MAX_VALUE;\n          let minIndex = 0;\n          let i = 0;\n          for (const c of candidatesForArgumentError) {\n            const chain2 = () => chainDiagnosticMessages(\n              /*details*/\n              void 0,\n              Diagnostics.Overload_0_of_1_2_gave_the_following_error,\n              i + 1,\n              candidates.length,\n              signatureToString(c)\n            );\n            const diags2 = getSignatureApplicabilityError(\n              node,\n              args,\n              c,\n              assignableRelation,\n              0 /* Normal */,\n              /*reportErrors*/\n              true,\n              chain2\n            );\n            if (diags2) {\n              if (diags2.length <= min2) {\n                min2 = diags2.length;\n                minIndex = i;\n              }\n              max = Math.max(max, diags2.length);\n              allDiagnostics.push(diags2);\n            } else {\n              Debug.fail(\"No error for 3 or fewer overload signatures\");\n            }\n            i++;\n          }\n          const diags = max > 1 ? allDiagnostics[minIndex] : flatten(allDiagnostics);\n          Debug.assert(diags.length > 0, \"No errors reported for 3 or fewer overload signatures\");\n          let chain = chainDiagnosticMessages(\n            map(diags, createDiagnosticMessageChainFromDiagnostic),\n            Diagnostics.No_overload_matches_this_call\n          );\n          if (headMessage) {\n            chain = chainDiagnosticMessages(chain, headMessage);\n          }\n          const related = [...flatMap(diags, (d) => d.relatedInformation)];\n          let diag2;\n          if (every(diags, (d) => d.start === diags[0].start && d.length === diags[0].length && d.file === diags[0].file)) {\n            const { file, start, length: length2 } = diags[0];\n            diag2 = { file, start, length: length2, code: chain.code, category: chain.category, messageText: chain, relatedInformation: related };\n          } else {\n            diag2 = createDiagnosticForNodeFromMessageChain(getSourceFileOfNode(node), getErrorNodeForCallNode(node), chain, related);\n          }\n          addImplementationSuccessElaboration(candidatesForArgumentError[0], diag2);\n          diagnostics.add(diag2);\n        }\n      } else if (candidateForArgumentArityError) {\n        diagnostics.add(getArgumentArityError(node, [candidateForArgumentArityError], args, headMessage));\n      } else if (candidateForTypeArgumentError) {\n        checkTypeArguments(\n          candidateForTypeArgumentError,\n          node.typeArguments,\n          /*reportErrors*/\n          true,\n          headMessage\n        );\n      } else if (!isJsxOpenFragment) {\n        const signaturesWithCorrectTypeArgumentArity = filter(signatures, (s) => hasCorrectTypeArgumentArity(s, typeArguments));\n        if (signaturesWithCorrectTypeArgumentArity.length === 0) {\n          diagnostics.add(getTypeArgumentArityError(node, signatures, typeArguments, headMessage));\n        } else {\n          diagnostics.add(getArgumentArityError(node, signaturesWithCorrectTypeArgumentArity, args, headMessage));\n        }\n      }\n    }\n    return result;\n    function addImplementationSuccessElaboration(failed2, diagnostic) {\n      var _a, _b;\n      const oldCandidatesForArgumentError = candidatesForArgumentError;\n      const oldCandidateForArgumentArityError = candidateForArgumentArityError;\n      const oldCandidateForTypeArgumentError = candidateForTypeArgumentError;\n      const failedSignatureDeclarations = ((_b = (_a = failed2.declaration) == null ? void 0 : _a.symbol) == null ? void 0 : _b.declarations) || emptyArray;\n      const isOverload2 = failedSignatureDeclarations.length > 1;\n      const implDecl = isOverload2 ? find(failedSignatureDeclarations, (d) => isFunctionLikeDeclaration(d) && nodeIsPresent(d.body)) : void 0;\n      if (implDecl) {\n        const candidate = getSignatureFromDeclaration(implDecl);\n        const isSingleNonGenericCandidate2 = !candidate.typeParameters;\n        if (chooseOverload([candidate], assignableRelation, isSingleNonGenericCandidate2)) {\n          addRelatedInfo(diagnostic, createDiagnosticForNode(implDecl, Diagnostics.The_call_would_have_succeeded_against_this_implementation_but_implementation_signatures_of_overloads_are_not_externally_visible));\n        }\n      }\n      candidatesForArgumentError = oldCandidatesForArgumentError;\n      candidateForArgumentArityError = oldCandidateForArgumentArityError;\n      candidateForTypeArgumentError = oldCandidateForTypeArgumentError;\n    }\n    function chooseOverload(candidates2, relation, isSingleNonGenericCandidate2, signatureHelpTrailingComma2 = false) {\n      candidatesForArgumentError = void 0;\n      candidateForArgumentArityError = void 0;\n      candidateForTypeArgumentError = void 0;\n      if (isSingleNonGenericCandidate2) {\n        const candidate = candidates2[0];\n        if (some(typeArguments) || !hasCorrectArity(node, args, candidate, signatureHelpTrailingComma2)) {\n          return void 0;\n        }\n        if (getSignatureApplicabilityError(\n          node,\n          args,\n          candidate,\n          relation,\n          0 /* Normal */,\n          /*reportErrors*/\n          false,\n          /*containingMessageChain*/\n          void 0\n        )) {\n          candidatesForArgumentError = [candidate];\n          return void 0;\n        }\n        return candidate;\n      }\n      for (let candidateIndex = 0; candidateIndex < candidates2.length; candidateIndex++) {\n        const candidate = candidates2[candidateIndex];\n        if (!hasCorrectTypeArgumentArity(candidate, typeArguments) || !hasCorrectArity(node, args, candidate, signatureHelpTrailingComma2)) {\n          continue;\n        }\n        let checkCandidate;\n        let inferenceContext;\n        if (candidate.typeParameters) {\n          let typeArgumentTypes;\n          if (some(typeArguments)) {\n            typeArgumentTypes = checkTypeArguments(\n              candidate,\n              typeArguments,\n              /*reportErrors*/\n              false\n            );\n            if (!typeArgumentTypes) {\n              candidateForTypeArgumentError = candidate;\n              continue;\n            }\n          } else {\n            inferenceContext = createInferenceContext(\n              candidate.typeParameters,\n              candidate,\n              /*flags*/\n              isInJSFile(node) ? 2 /* AnyDefault */ : 0 /* None */\n            );\n            typeArgumentTypes = inferTypeArguments(node, candidate, args, argCheckMode | 8 /* SkipGenericFunctions */, inferenceContext);\n            argCheckMode |= inferenceContext.flags & 4 /* SkippedGenericFunction */ ? 8 /* SkipGenericFunctions */ : 0 /* Normal */;\n          }\n          checkCandidate = getSignatureInstantiation(candidate, typeArgumentTypes, isInJSFile(candidate.declaration), inferenceContext && inferenceContext.inferredTypeParameters);\n          if (getNonArrayRestType(candidate) && !hasCorrectArity(node, args, checkCandidate, signatureHelpTrailingComma2)) {\n            candidateForArgumentArityError = checkCandidate;\n            continue;\n          }\n        } else {\n          checkCandidate = candidate;\n        }\n        if (getSignatureApplicabilityError(\n          node,\n          args,\n          checkCandidate,\n          relation,\n          argCheckMode,\n          /*reportErrors*/\n          false,\n          /*containingMessageChain*/\n          void 0\n        )) {\n          (candidatesForArgumentError || (candidatesForArgumentError = [])).push(checkCandidate);\n          continue;\n        }\n        if (argCheckMode) {\n          argCheckMode = 0 /* Normal */;\n          if (inferenceContext) {\n            const typeArgumentTypes = inferTypeArguments(node, candidate, args, argCheckMode, inferenceContext);\n            checkCandidate = getSignatureInstantiation(candidate, typeArgumentTypes, isInJSFile(candidate.declaration), inferenceContext.inferredTypeParameters);\n            if (getNonArrayRestType(candidate) && !hasCorrectArity(node, args, checkCandidate, signatureHelpTrailingComma2)) {\n              candidateForArgumentArityError = checkCandidate;\n              continue;\n            }\n          }\n          if (getSignatureApplicabilityError(\n            node,\n            args,\n            checkCandidate,\n            relation,\n            argCheckMode,\n            /*reportErrors*/\n            false,\n            /*containingMessageChain*/\n            void 0\n          )) {\n            (candidatesForArgumentError || (candidatesForArgumentError = [])).push(checkCandidate);\n            continue;\n          }\n        }\n        candidates2[candidateIndex] = checkCandidate;\n        return checkCandidate;\n      }\n      return void 0;\n    }\n  }\n  function getCandidateForOverloadFailure(node, candidates, args, hasCandidatesOutArray, checkMode) {\n    Debug.assert(candidates.length > 0);\n    checkNodeDeferred(node);\n    return hasCandidatesOutArray || candidates.length === 1 || candidates.some((c) => !!c.typeParameters) ? pickLongestCandidateSignature(node, candidates, args, checkMode) : createUnionOfSignaturesForOverloadFailure(candidates);\n  }\n  function createUnionOfSignaturesForOverloadFailure(candidates) {\n    const thisParameters = mapDefined(candidates, (c) => c.thisParameter);\n    let thisParameter;\n    if (thisParameters.length) {\n      thisParameter = createCombinedSymbolFromTypes(thisParameters, thisParameters.map(getTypeOfParameter));\n    }\n    const { min: minArgumentCount, max: maxNonRestParam } = minAndMax(candidates, getNumNonRestParameters);\n    const parameters = [];\n    for (let i = 0; i < maxNonRestParam; i++) {\n      const symbols = mapDefined(candidates, (s) => signatureHasRestParameter(s) ? i < s.parameters.length - 1 ? s.parameters[i] : last(s.parameters) : i < s.parameters.length ? s.parameters[i] : void 0);\n      Debug.assert(symbols.length !== 0);\n      parameters.push(createCombinedSymbolFromTypes(symbols, mapDefined(candidates, (candidate) => tryGetTypeAtPosition(candidate, i))));\n    }\n    const restParameterSymbols = mapDefined(candidates, (c) => signatureHasRestParameter(c) ? last(c.parameters) : void 0);\n    let flags = 128 /* IsSignatureCandidateForOverloadFailure */;\n    if (restParameterSymbols.length !== 0) {\n      const type = createArrayType(getUnionType(mapDefined(candidates, tryGetRestTypeOfSignature), 2 /* Subtype */));\n      parameters.push(createCombinedSymbolForOverloadFailure(restParameterSymbols, type));\n      flags |= 1 /* HasRestParameter */;\n    }\n    if (candidates.some(signatureHasLiteralTypes)) {\n      flags |= 2 /* HasLiteralTypes */;\n    }\n    return createSignature(\n      candidates[0].declaration,\n      /*typeParameters*/\n      void 0,\n      // Before calling this we tested for `!candidates.some(c => !!c.typeParameters)`.\n      thisParameter,\n      parameters,\n      /*resolvedReturnType*/\n      getIntersectionType(candidates.map(getReturnTypeOfSignature)),\n      /*resolvedTypePredicate*/\n      void 0,\n      minArgumentCount,\n      flags\n    );\n  }\n  function getNumNonRestParameters(signature) {\n    const numParams = signature.parameters.length;\n    return signatureHasRestParameter(signature) ? numParams - 1 : numParams;\n  }\n  function createCombinedSymbolFromTypes(sources, types) {\n    return createCombinedSymbolForOverloadFailure(sources, getUnionType(types, 2 /* Subtype */));\n  }\n  function createCombinedSymbolForOverloadFailure(sources, type) {\n    return createSymbolWithType(first(sources), type);\n  }\n  function pickLongestCandidateSignature(node, candidates, args, checkMode) {\n    const bestIndex = getLongestCandidateIndex(candidates, apparentArgumentCount === void 0 ? args.length : apparentArgumentCount);\n    const candidate = candidates[bestIndex];\n    const { typeParameters } = candidate;\n    if (!typeParameters) {\n      return candidate;\n    }\n    const typeArgumentNodes = callLikeExpressionMayHaveTypeArguments(node) ? node.typeArguments : void 0;\n    const instantiated = typeArgumentNodes ? createSignatureInstantiation(candidate, getTypeArgumentsFromNodes(typeArgumentNodes, typeParameters, isInJSFile(node))) : inferSignatureInstantiationForOverloadFailure(node, typeParameters, candidate, args, checkMode);\n    candidates[bestIndex] = instantiated;\n    return instantiated;\n  }\n  function getTypeArgumentsFromNodes(typeArgumentNodes, typeParameters, isJs) {\n    const typeArguments = typeArgumentNodes.map(getTypeOfNode);\n    while (typeArguments.length > typeParameters.length) {\n      typeArguments.pop();\n    }\n    while (typeArguments.length < typeParameters.length) {\n      typeArguments.push(getDefaultFromTypeParameter(typeParameters[typeArguments.length]) || getConstraintOfTypeParameter(typeParameters[typeArguments.length]) || getDefaultTypeArgumentType(isJs));\n    }\n    return typeArguments;\n  }\n  function inferSignatureInstantiationForOverloadFailure(node, typeParameters, candidate, args, checkMode) {\n    const inferenceContext = createInferenceContext(\n      typeParameters,\n      candidate,\n      /*flags*/\n      isInJSFile(node) ? 2 /* AnyDefault */ : 0 /* None */\n    );\n    const typeArgumentTypes = inferTypeArguments(node, candidate, args, checkMode | 4 /* SkipContextSensitive */ | 8 /* SkipGenericFunctions */, inferenceContext);\n    return createSignatureInstantiation(candidate, typeArgumentTypes);\n  }\n  function getLongestCandidateIndex(candidates, argsCount) {\n    let maxParamsIndex = -1;\n    let maxParams = -1;\n    for (let i = 0; i < candidates.length; i++) {\n      const candidate = candidates[i];\n      const paramCount = getParameterCount(candidate);\n      if (hasEffectiveRestParameter(candidate) || paramCount >= argsCount) {\n        return i;\n      }\n      if (paramCount > maxParams) {\n        maxParams = paramCount;\n        maxParamsIndex = i;\n      }\n    }\n    return maxParamsIndex;\n  }\n  function resolveCallExpression(node, candidatesOutArray, checkMode) {\n    if (node.expression.kind === 108 /* SuperKeyword */) {\n      const superType = checkSuperExpression(node.expression);\n      if (isTypeAny(superType)) {\n        for (const arg of node.arguments) {\n          checkExpression(arg);\n        }\n        return anySignature;\n      }\n      if (!isErrorType(superType)) {\n        const baseTypeNode = getEffectiveBaseTypeNode(getContainingClass(node));\n        if (baseTypeNode) {\n          const baseConstructors = getInstantiatedConstructorsForTypeArguments(superType, baseTypeNode.typeArguments, baseTypeNode);\n          return resolveCall(node, baseConstructors, candidatesOutArray, checkMode, 0 /* None */);\n        }\n      }\n      return resolveUntypedCall(node);\n    }\n    let callChainFlags;\n    let funcType = checkExpression(node.expression);\n    if (isCallChain(node)) {\n      const nonOptionalType = getOptionalExpressionType(funcType, node.expression);\n      callChainFlags = nonOptionalType === funcType ? 0 /* None */ : isOutermostOptionalChain(node) ? 16 /* IsOuterCallChain */ : 8 /* IsInnerCallChain */;\n      funcType = nonOptionalType;\n    } else {\n      callChainFlags = 0 /* None */;\n    }\n    funcType = checkNonNullTypeWithReporter(\n      funcType,\n      node.expression,\n      reportCannotInvokePossiblyNullOrUndefinedError\n    );\n    if (funcType === silentNeverType) {\n      return silentNeverSignature;\n    }\n    const apparentType = getApparentType(funcType);\n    if (isErrorType(apparentType)) {\n      return resolveErrorCall(node);\n    }\n    const callSignatures = getSignaturesOfType(apparentType, 0 /* Call */);\n    const numConstructSignatures = getSignaturesOfType(apparentType, 1 /* Construct */).length;\n    if (isUntypedFunctionCall(funcType, apparentType, callSignatures.length, numConstructSignatures)) {\n      if (!isErrorType(funcType) && node.typeArguments) {\n        error2(node, Diagnostics.Untyped_function_calls_may_not_accept_type_arguments);\n      }\n      return resolveUntypedCall(node);\n    }\n    if (!callSignatures.length) {\n      if (numConstructSignatures) {\n        error2(node, Diagnostics.Value_of_type_0_is_not_callable_Did_you_mean_to_include_new, typeToString(funcType));\n      } else {\n        let relatedInformation;\n        if (node.arguments.length === 1) {\n          const text = getSourceFileOfNode(node).text;\n          if (isLineBreak(text.charCodeAt(skipTrivia(\n            text,\n            node.expression.end,\n            /*stopAfterLineBreak*/\n            true\n          ) - 1))) {\n            relatedInformation = createDiagnosticForNode(node.expression, Diagnostics.Are_you_missing_a_semicolon);\n          }\n        }\n        invocationError(node.expression, apparentType, 0 /* Call */, relatedInformation);\n      }\n      return resolveErrorCall(node);\n    }\n    if (checkMode & 8 /* SkipGenericFunctions */ && !node.typeArguments && callSignatures.some(isGenericFunctionReturningFunction)) {\n      skippedGenericFunction(node, checkMode);\n      return resolvingSignature;\n    }\n    if (callSignatures.some((sig) => isInJSFile(sig.declaration) && !!getJSDocClassTag(sig.declaration))) {\n      error2(node, Diagnostics.Value_of_type_0_is_not_callable_Did_you_mean_to_include_new, typeToString(funcType));\n      return resolveErrorCall(node);\n    }\n    return resolveCall(node, callSignatures, candidatesOutArray, checkMode, callChainFlags);\n  }\n  function isGenericFunctionReturningFunction(signature) {\n    return !!(signature.typeParameters && isFunctionType(getReturnTypeOfSignature(signature)));\n  }\n  function isUntypedFunctionCall(funcType, apparentFuncType, numCallSignatures, numConstructSignatures) {\n    return isTypeAny(funcType) || isTypeAny(apparentFuncType) && !!(funcType.flags & 262144 /* TypeParameter */) || !numCallSignatures && !numConstructSignatures && !(apparentFuncType.flags & 1048576 /* Union */) && !(getReducedType(apparentFuncType).flags & 131072 /* Never */) && isTypeAssignableTo(funcType, globalFunctionType);\n  }\n  function resolveNewExpression(node, candidatesOutArray, checkMode) {\n    let expressionType = checkNonNullExpression(node.expression);\n    if (expressionType === silentNeverType) {\n      return silentNeverSignature;\n    }\n    expressionType = getApparentType(expressionType);\n    if (isErrorType(expressionType)) {\n      return resolveErrorCall(node);\n    }\n    if (isTypeAny(expressionType)) {\n      if (node.typeArguments) {\n        error2(node, Diagnostics.Untyped_function_calls_may_not_accept_type_arguments);\n      }\n      return resolveUntypedCall(node);\n    }\n    const constructSignatures = getSignaturesOfType(expressionType, 1 /* Construct */);\n    if (constructSignatures.length) {\n      if (!isConstructorAccessible(node, constructSignatures[0])) {\n        return resolveErrorCall(node);\n      }\n      if (someSignature(constructSignatures, (signature) => !!(signature.flags & 4 /* Abstract */))) {\n        error2(node, Diagnostics.Cannot_create_an_instance_of_an_abstract_class);\n        return resolveErrorCall(node);\n      }\n      const valueDecl = expressionType.symbol && getClassLikeDeclarationOfSymbol(expressionType.symbol);\n      if (valueDecl && hasSyntacticModifier(valueDecl, 64 /* Abstract */)) {\n        error2(node, Diagnostics.Cannot_create_an_instance_of_an_abstract_class);\n        return resolveErrorCall(node);\n      }\n      return resolveCall(node, constructSignatures, candidatesOutArray, checkMode, 0 /* None */);\n    }\n    const callSignatures = getSignaturesOfType(expressionType, 0 /* Call */);\n    if (callSignatures.length) {\n      const signature = resolveCall(node, callSignatures, candidatesOutArray, checkMode, 0 /* None */);\n      if (!noImplicitAny) {\n        if (signature.declaration && !isJSConstructor(signature.declaration) && getReturnTypeOfSignature(signature) !== voidType) {\n          error2(node, Diagnostics.Only_a_void_function_can_be_called_with_the_new_keyword);\n        }\n        if (getThisTypeOfSignature(signature) === voidType) {\n          error2(node, Diagnostics.A_function_that_is_called_with_the_new_keyword_cannot_have_a_this_type_that_is_void);\n        }\n      }\n      return signature;\n    }\n    invocationError(node.expression, expressionType, 1 /* Construct */);\n    return resolveErrorCall(node);\n  }\n  function someSignature(signatures, f) {\n    if (isArray(signatures)) {\n      return some(signatures, (signature) => someSignature(signature, f));\n    }\n    return signatures.compositeKind === 1048576 /* Union */ ? some(signatures.compositeSignatures, f) : f(signatures);\n  }\n  function typeHasProtectedAccessibleBase(target, type) {\n    const baseTypes = getBaseTypes(type);\n    if (!length(baseTypes)) {\n      return false;\n    }\n    const firstBase = baseTypes[0];\n    if (firstBase.flags & 2097152 /* Intersection */) {\n      const types = firstBase.types;\n      const mixinFlags = findMixins(types);\n      let i = 0;\n      for (const intersectionMember of firstBase.types) {\n        if (!mixinFlags[i]) {\n          if (getObjectFlags(intersectionMember) & (1 /* Class */ | 2 /* Interface */)) {\n            if (intersectionMember.symbol === target) {\n              return true;\n            }\n            if (typeHasProtectedAccessibleBase(target, intersectionMember)) {\n              return true;\n            }\n          }\n        }\n        i++;\n      }\n      return false;\n    }\n    if (firstBase.symbol === target) {\n      return true;\n    }\n    return typeHasProtectedAccessibleBase(target, firstBase);\n  }\n  function isConstructorAccessible(node, signature) {\n    if (!signature || !signature.declaration) {\n      return true;\n    }\n    const declaration = signature.declaration;\n    const modifiers = getSelectedEffectiveModifierFlags(declaration, 6 /* NonPublicAccessibilityModifier */);\n    if (!modifiers || declaration.kind !== 177 /* Constructor */) {\n      return true;\n    }\n    const declaringClassDeclaration = getClassLikeDeclarationOfSymbol(declaration.parent.symbol);\n    const declaringClass = getDeclaredTypeOfSymbol(declaration.parent.symbol);\n    if (!isNodeWithinClass(node, declaringClassDeclaration)) {\n      const containingClass = getContainingClass(node);\n      if (containingClass && modifiers & 4 /* Protected */) {\n        const containingType = getTypeOfNode(containingClass);\n        if (typeHasProtectedAccessibleBase(declaration.parent.symbol, containingType)) {\n          return true;\n        }\n      }\n      if (modifiers & 2 /* Private */) {\n        error2(node, Diagnostics.Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration, typeToString(declaringClass));\n      }\n      if (modifiers & 4 /* Protected */) {\n        error2(node, Diagnostics.Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration, typeToString(declaringClass));\n      }\n      return false;\n    }\n    return true;\n  }\n  function invocationErrorDetails(errorTarget, apparentType, kind) {\n    let errorInfo;\n    const isCall = kind === 0 /* Call */;\n    const awaitedType = getAwaitedType(apparentType);\n    const maybeMissingAwait = awaitedType && getSignaturesOfType(awaitedType, kind).length > 0;\n    if (apparentType.flags & 1048576 /* Union */) {\n      const types = apparentType.types;\n      let hasSignatures2 = false;\n      for (const constituent of types) {\n        const signatures = getSignaturesOfType(constituent, kind);\n        if (signatures.length !== 0) {\n          hasSignatures2 = true;\n          if (errorInfo) {\n            break;\n          }\n        } else {\n          if (!errorInfo) {\n            errorInfo = chainDiagnosticMessages(\n              errorInfo,\n              isCall ? Diagnostics.Type_0_has_no_call_signatures : Diagnostics.Type_0_has_no_construct_signatures,\n              typeToString(constituent)\n            );\n            errorInfo = chainDiagnosticMessages(\n              errorInfo,\n              isCall ? Diagnostics.Not_all_constituents_of_type_0_are_callable : Diagnostics.Not_all_constituents_of_type_0_are_constructable,\n              typeToString(apparentType)\n            );\n          }\n          if (hasSignatures2) {\n            break;\n          }\n        }\n      }\n      if (!hasSignatures2) {\n        errorInfo = chainDiagnosticMessages(\n          /*details*/\n          void 0,\n          isCall ? Diagnostics.No_constituent_of_type_0_is_callable : Diagnostics.No_constituent_of_type_0_is_constructable,\n          typeToString(apparentType)\n        );\n      }\n      if (!errorInfo) {\n        errorInfo = chainDiagnosticMessages(\n          errorInfo,\n          isCall ? Diagnostics.Each_member_of_the_union_type_0_has_signatures_but_none_of_those_signatures_are_compatible_with_each_other : Diagnostics.Each_member_of_the_union_type_0_has_construct_signatures_but_none_of_those_signatures_are_compatible_with_each_other,\n          typeToString(apparentType)\n        );\n      }\n    } else {\n      errorInfo = chainDiagnosticMessages(\n        errorInfo,\n        isCall ? Diagnostics.Type_0_has_no_call_signatures : Diagnostics.Type_0_has_no_construct_signatures,\n        typeToString(apparentType)\n      );\n    }\n    let headMessage = isCall ? Diagnostics.This_expression_is_not_callable : Diagnostics.This_expression_is_not_constructable;\n    if (isCallExpression(errorTarget.parent) && errorTarget.parent.arguments.length === 0) {\n      const { resolvedSymbol } = getNodeLinks(errorTarget);\n      if (resolvedSymbol && resolvedSymbol.flags & 32768 /* GetAccessor */) {\n        headMessage = Diagnostics.This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without;\n      }\n    }\n    return {\n      messageChain: chainDiagnosticMessages(errorInfo, headMessage),\n      relatedMessage: maybeMissingAwait ? Diagnostics.Did_you_forget_to_use_await : void 0\n    };\n  }\n  function invocationError(errorTarget, apparentType, kind, relatedInformation) {\n    const { messageChain, relatedMessage: relatedInfo } = invocationErrorDetails(errorTarget, apparentType, kind);\n    const diagnostic = createDiagnosticForNodeFromMessageChain(getSourceFileOfNode(errorTarget), errorTarget, messageChain);\n    if (relatedInfo) {\n      addRelatedInfo(diagnostic, createDiagnosticForNode(errorTarget, relatedInfo));\n    }\n    if (isCallExpression(errorTarget.parent)) {\n      const { start, length: length2 } = getDiagnosticSpanForCallNode(errorTarget.parent);\n      diagnostic.start = start;\n      diagnostic.length = length2;\n    }\n    diagnostics.add(diagnostic);\n    invocationErrorRecovery(apparentType, kind, relatedInformation ? addRelatedInfo(diagnostic, relatedInformation) : diagnostic);\n  }\n  function invocationErrorRecovery(apparentType, kind, diagnostic) {\n    if (!apparentType.symbol) {\n      return;\n    }\n    const importNode = getSymbolLinks(apparentType.symbol).originatingImport;\n    if (importNode && !isImportCall(importNode)) {\n      const sigs = getSignaturesOfType(getTypeOfSymbol(getSymbolLinks(apparentType.symbol).target), kind);\n      if (!sigs || !sigs.length) return;\n      addRelatedInfo(diagnostic, createDiagnosticForNode(importNode, Diagnostics.Type_originates_at_this_import_A_namespace_style_import_cannot_be_called_or_constructed_and_will_cause_a_failure_at_runtime_Consider_using_a_default_import_or_import_require_here_instead));\n    }\n  }\n  function resolveTaggedTemplateExpression(node, candidatesOutArray, checkMode) {\n    const tagType = checkExpression(node.tag);\n    const apparentType = getApparentType(tagType);\n    if (isErrorType(apparentType)) {\n      return resolveErrorCall(node);\n    }\n    const callSignatures = getSignaturesOfType(apparentType, 0 /* Call */);\n    const numConstructSignatures = getSignaturesOfType(apparentType, 1 /* Construct */).length;\n    if (isUntypedFunctionCall(tagType, apparentType, callSignatures.length, numConstructSignatures)) {\n      return resolveUntypedCall(node);\n    }\n    if (!callSignatures.length) {\n      if (isArrayLiteralExpression(node.parent)) {\n        const diagnostic = createDiagnosticForNode(node.tag, Diagnostics.It_is_likely_that_you_are_missing_a_comma_to_separate_these_two_template_expressions_They_form_a_tagged_template_expression_which_cannot_be_invoked);\n        diagnostics.add(diagnostic);\n        return resolveErrorCall(node);\n      }\n      invocationError(node.tag, apparentType, 0 /* Call */);\n      return resolveErrorCall(node);\n    }\n    return resolveCall(node, callSignatures, candidatesOutArray, checkMode, 0 /* None */);\n  }\n  function getDiagnosticHeadMessageForDecoratorResolution(node) {\n    switch (node.parent.kind) {\n      case 264 /* ClassDeclaration */:\n      case 232 /* ClassExpression */:\n        return Diagnostics.Unable_to_resolve_signature_of_class_decorator_when_called_as_an_expression;\n      case 170 /* Parameter */:\n        return Diagnostics.Unable_to_resolve_signature_of_parameter_decorator_when_called_as_an_expression;\n      case 173 /* PropertyDeclaration */:\n        return Diagnostics.Unable_to_resolve_signature_of_property_decorator_when_called_as_an_expression;\n      case 175 /* MethodDeclaration */:\n      case 178 /* GetAccessor */:\n      case 179 /* SetAccessor */:\n        return Diagnostics.Unable_to_resolve_signature_of_method_decorator_when_called_as_an_expression;\n      default:\n        return Debug.fail();\n    }\n  }\n  function resolveDecorator(node, candidatesOutArray, checkMode) {\n    const funcType = checkExpression(node.expression);\n    const apparentType = getApparentType(funcType);\n    if (isErrorType(apparentType)) {\n      return resolveErrorCall(node);\n    }\n    const callSignatures = getSignaturesOfType(apparentType, 0 /* Call */);\n    const numConstructSignatures = getSignaturesOfType(apparentType, 1 /* Construct */).length;\n    if (isUntypedFunctionCall(funcType, apparentType, callSignatures.length, numConstructSignatures)) {\n      return resolveUntypedCall(node);\n    }\n    if (isPotentiallyUncalledDecorator(node, callSignatures) && !isParenthesizedExpression(node.expression)) {\n      const nodeStr = getTextOfNode(\n        node.expression,\n        /*includeTrivia*/\n        false\n      );\n      error2(node, Diagnostics._0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write_0, nodeStr);\n      return resolveErrorCall(node);\n    }\n    const headMessage = getDiagnosticHeadMessageForDecoratorResolution(node);\n    if (!callSignatures.length) {\n      const errorDetails = invocationErrorDetails(node.expression, apparentType, 0 /* Call */);\n      const messageChain = chainDiagnosticMessages(errorDetails.messageChain, headMessage);\n      const diag2 = createDiagnosticForNodeFromMessageChain(getSourceFileOfNode(node.expression), node.expression, messageChain);\n      if (errorDetails.relatedMessage) {\n        addRelatedInfo(diag2, createDiagnosticForNode(node.expression, errorDetails.relatedMessage));\n      }\n      diagnostics.add(diag2);\n      invocationErrorRecovery(apparentType, 0 /* Call */, diag2);\n      return resolveErrorCall(node);\n    }\n    return resolveCall(node, callSignatures, candidatesOutArray, checkMode, 0 /* None */, headMessage);\n  }\n  function createSignatureForJSXIntrinsic(node, result) {\n    const namespace = getJsxNamespaceAt(node);\n    const exports2 = namespace && getExportsOfSymbol(namespace);\n    const typeSymbol = exports2 && getSymbol2(exports2, JsxNames.Element, 788968 /* Type */);\n    const returnNode = typeSymbol && nodeBuilder.symbolToEntityName(typeSymbol, 788968 /* Type */, node);\n    const declaration = factory.createFunctionTypeNode(\n      /*typeParameters*/\n      void 0,\n      [factory.createParameterDeclaration(\n        /*modifiers*/\n        void 0,\n        /*dotDotDotToken*/\n        void 0,\n        \"props\",\n        /*questionToken*/\n        void 0,\n        nodeBuilder.typeToTypeNode(result, node)\n      )],\n      returnNode ? factory.createTypeReferenceNode(\n        returnNode,\n        /*typeArguments*/\n        void 0\n      ) : factory.createKeywordTypeNode(133 /* AnyKeyword */)\n    );\n    const parameterSymbol = createSymbol(1 /* FunctionScopedVariable */, \"props\");\n    parameterSymbol.links.type = result;\n    return createSignature(\n      declaration,\n      /*typeParameters*/\n      void 0,\n      /*thisParameter*/\n      void 0,\n      [parameterSymbol],\n      typeSymbol ? getDeclaredTypeOfSymbol(typeSymbol) : errorType,\n      /*resolvedTypePredicate*/\n      void 0,\n      1,\n      0 /* None */\n    );\n  }\n  function getJSXFragmentType(node) {\n    const sourceFileLinks = getNodeLinks(getSourceFileOfNode(node));\n    if (sourceFileLinks.jsxFragmentType !== void 0) return sourceFileLinks.jsxFragmentType;\n    const jsxFragmentFactoryName = getJsxNamespace(node);\n    const shouldResolveFactoryReference = (compilerOptions.jsx === 2 /* React */ || compilerOptions.jsxFragmentFactory !== void 0) && jsxFragmentFactoryName !== \"null\";\n    if (!shouldResolveFactoryReference) return sourceFileLinks.jsxFragmentType = anyType;\n    const shouldModuleRefErr = compilerOptions.jsx !== 1 /* Preserve */ && compilerOptions.jsx !== 3 /* ReactNative */;\n    const jsxFactoryRefErr = diagnostics ? Diagnostics.Using_JSX_fragments_requires_fragment_factory_0_to_be_in_scope_but_it_could_not_be_found : void 0;\n    const jsxFactorySymbol = getJsxNamespaceContainerForImplicitImport(node) ?? resolveName(\n      node,\n      jsxFragmentFactoryName,\n      shouldModuleRefErr ? 111551 /* Value */ : 111551 /* Value */ & ~384 /* Enum */,\n      /*nameNotFoundMessage*/\n      jsxFactoryRefErr,\n      /*isUse*/\n      true\n    );\n    if (jsxFactorySymbol === void 0) return sourceFileLinks.jsxFragmentType = errorType;\n    if (jsxFactorySymbol.escapedName === ReactNames.Fragment) return sourceFileLinks.jsxFragmentType = getTypeOfSymbol(jsxFactorySymbol);\n    const resolvedAlias = (jsxFactorySymbol.flags & 2097152 /* Alias */) === 0 ? jsxFactorySymbol : resolveAlias(jsxFactorySymbol);\n    const reactExports = jsxFactorySymbol && getExportsOfSymbol(resolvedAlias);\n    const typeSymbol = reactExports && getSymbol2(reactExports, ReactNames.Fragment, 2 /* BlockScopedVariable */);\n    const type = typeSymbol && getTypeOfSymbol(typeSymbol);\n    return sourceFileLinks.jsxFragmentType = type === void 0 ? errorType : type;\n  }\n  function resolveJsxOpeningLikeElement(node, candidatesOutArray, checkMode) {\n    const isJsxOpenFragment = isJsxOpeningFragment(node);\n    let exprTypes;\n    if (!isJsxOpenFragment) {\n      if (isJsxIntrinsicTagName(node.tagName)) {\n        const result = getIntrinsicAttributesTypeFromJsxOpeningLikeElement(node);\n        const fakeSignature = createSignatureForJSXIntrinsic(node, result);\n        checkTypeAssignableToAndOptionallyElaborate(checkExpressionWithContextualType(\n          node.attributes,\n          getEffectiveFirstArgumentForJsxSignature(fakeSignature, node),\n          /*inferenceContext*/\n          void 0,\n          0 /* Normal */\n        ), result, node.tagName, node.attributes);\n        if (length(node.typeArguments)) {\n          forEach(node.typeArguments, checkSourceElement);\n          diagnostics.add(createDiagnosticForNodeArray(getSourceFileOfNode(node), node.typeArguments, Diagnostics.Expected_0_type_arguments_but_got_1, 0, length(node.typeArguments)));\n        }\n        return fakeSignature;\n      }\n      exprTypes = checkExpression(node.tagName);\n    } else {\n      exprTypes = getJSXFragmentType(node);\n    }\n    const apparentType = getApparentType(exprTypes);\n    if (isErrorType(apparentType)) {\n      return resolveErrorCall(node);\n    }\n    const signatures = getUninstantiatedJsxSignaturesOfType(exprTypes, node);\n    if (isUntypedFunctionCall(\n      exprTypes,\n      apparentType,\n      signatures.length,\n      /*constructSignatures*/\n      0\n    )) {\n      return resolveUntypedCall(node);\n    }\n    if (signatures.length === 0) {\n      if (isJsxOpenFragment) {\n        error2(node, Diagnostics.JSX_element_type_0_does_not_have_any_construct_or_call_signatures, getTextOfNode(node));\n      } else {\n        error2(node.tagName, Diagnostics.JSX_element_type_0_does_not_have_any_construct_or_call_signatures, getTextOfNode(node.tagName));\n      }\n      return resolveErrorCall(node);\n    }\n    return resolveCall(node, signatures, candidatesOutArray, checkMode, 0 /* None */);\n  }\n  function resolveInstanceofExpression(node, candidatesOutArray, checkMode) {\n    const rightType = checkExpression(node.right);\n    if (!isTypeAny(rightType)) {\n      const hasInstanceMethodType = getSymbolHasInstanceMethodOfObjectType(rightType);\n      if (hasInstanceMethodType) {\n        const apparentType = getApparentType(hasInstanceMethodType);\n        if (isErrorType(apparentType)) {\n          return resolveErrorCall(node);\n        }\n        const callSignatures = getSignaturesOfType(apparentType, 0 /* Call */);\n        const constructSignatures = getSignaturesOfType(apparentType, 1 /* Construct */);\n        if (isUntypedFunctionCall(hasInstanceMethodType, apparentType, callSignatures.length, constructSignatures.length)) {\n          return resolveUntypedCall(node);\n        }\n        if (callSignatures.length) {\n          return resolveCall(node, callSignatures, candidatesOutArray, checkMode, 0 /* None */);\n        }\n      } else if (!(typeHasCallOrConstructSignatures(rightType) || isTypeSubtypeOf(rightType, globalFunctionType))) {\n        error2(node.right, Diagnostics.The_right_hand_side_of_an_instanceof_expression_must_be_either_of_type_any_a_class_function_or_other_type_assignable_to_the_Function_interface_type_or_an_object_type_with_a_Symbol_hasInstance_method);\n        return resolveErrorCall(node);\n      }\n    }\n    return anySignature;\n  }\n  function isPotentiallyUncalledDecorator(decorator, signatures) {\n    return signatures.length && every(signatures, (signature) => signature.minArgumentCount === 0 && !signatureHasRestParameter(signature) && signature.parameters.length < getDecoratorArgumentCount(decorator, signature));\n  }\n  function resolveSignature(node, candidatesOutArray, checkMode) {\n    switch (node.kind) {\n      case 214 /* CallExpression */:\n        return resolveCallExpression(node, candidatesOutArray, checkMode);\n      case 215 /* NewExpression */:\n        return resolveNewExpression(node, candidatesOutArray, checkMode);\n      case 216 /* TaggedTemplateExpression */:\n        return resolveTaggedTemplateExpression(node, candidatesOutArray, checkMode);\n      case 171 /* Decorator */:\n        return resolveDecorator(node, candidatesOutArray, checkMode);\n      case 290 /* JsxOpeningFragment */:\n      case 287 /* JsxOpeningElement */:\n      case 286 /* JsxSelfClosingElement */:\n        return resolveJsxOpeningLikeElement(node, candidatesOutArray, checkMode);\n      case 227 /* BinaryExpression */:\n        return resolveInstanceofExpression(node, candidatesOutArray, checkMode);\n    }\n    Debug.assertNever(node, \"Branch in 'resolveSignature' should be unreachable.\");\n  }\n  function getResolvedSignature(node, candidatesOutArray, checkMode) {\n    const links = getNodeLinks(node);\n    const cached = links.resolvedSignature;\n    if (cached && cached !== resolvingSignature && !candidatesOutArray) {\n      return cached;\n    }\n    const saveResolutionStart = resolutionStart;\n    if (!cached) {\n      resolutionStart = resolutionTargets.length;\n    }\n    links.resolvedSignature = resolvingSignature;\n    const result = resolveSignature(node, candidatesOutArray, checkMode || 0 /* Normal */);\n    resolutionStart = saveResolutionStart;\n    if (result !== resolvingSignature) {\n      links.resolvedSignature = flowLoopStart === flowLoopCount ? result : cached;\n    }\n    return result;\n  }\n  function isJSConstructor(node) {\n    var _a;\n    if (!node || !isInJSFile(node)) {\n      return false;\n    }\n    const func = isFunctionDeclaration(node) || isFunctionExpression(node) ? node : (isVariableDeclaration(node) || isPropertyAssignment(node)) && node.initializer && isFunctionExpression(node.initializer) ? node.initializer : void 0;\n    if (func) {\n      if (getJSDocClassTag(node)) return true;\n      if (isPropertyAssignment(walkUpParenthesizedExpressions(func.parent))) return false;\n      const symbol = getSymbolOfDeclaration(func);\n      return !!((_a = symbol == null ? void 0 : symbol.members) == null ? void 0 : _a.size);\n    }\n    return false;\n  }\n  function mergeJSSymbols(target, source) {\n    var _a, _b;\n    if (source) {\n      const links = getSymbolLinks(source);\n      if (!links.inferredClassSymbol || !links.inferredClassSymbol.has(getSymbolId(target))) {\n        const inferred = isTransientSymbol(target) ? target : cloneSymbol(target);\n        inferred.exports = inferred.exports || createSymbolTable();\n        inferred.members = inferred.members || createSymbolTable();\n        inferred.flags |= source.flags & 32 /* Class */;\n        if ((_a = source.exports) == null ? void 0 : _a.size) {\n          mergeSymbolTable(inferred.exports, source.exports);\n        }\n        if ((_b = source.members) == null ? void 0 : _b.size) {\n          mergeSymbolTable(inferred.members, source.members);\n        }\n        (links.inferredClassSymbol || (links.inferredClassSymbol = /* @__PURE__ */ new Map())).set(getSymbolId(inferred), inferred);\n        return inferred;\n      }\n      return links.inferredClassSymbol.get(getSymbolId(target));\n    }\n  }\n  function getAssignedClassSymbol(decl) {\n    var _a;\n    const assignmentSymbol = decl && getSymbolOfExpando(\n      decl,\n      /*allowDeclaration*/\n      true\n    );\n    const prototype = (_a = assignmentSymbol == null ? void 0 : assignmentSymbol.exports) == null ? void 0 : _a.get(\"prototype\");\n    const init = (prototype == null ? void 0 : prototype.valueDeclaration) && getAssignedJSPrototype(prototype.valueDeclaration);\n    return init ? getSymbolOfDeclaration(init) : void 0;\n  }\n  function getSymbolOfExpando(node, allowDeclaration) {\n    if (!node.parent) {\n      return void 0;\n    }\n    let name;\n    let decl;\n    if (isVariableDeclaration(node.parent) && node.parent.initializer === node) {\n      if (!isInJSFile(node) && !(isVarConstLike2(node.parent) && isFunctionLikeDeclaration(node))) {\n        return void 0;\n      }\n      name = node.parent.name;\n      decl = node.parent;\n    } else if (isBinaryExpression(node.parent)) {\n      const parentNode = node.parent;\n      const parentNodeOperator = node.parent.operatorToken.kind;\n      if (parentNodeOperator === 64 /* EqualsToken */ && (allowDeclaration || parentNode.right === node)) {\n        name = parentNode.left;\n        decl = name;\n      } else if (parentNodeOperator === 57 /* BarBarToken */ || parentNodeOperator === 61 /* QuestionQuestionToken */) {\n        if (isVariableDeclaration(parentNode.parent) && parentNode.parent.initializer === parentNode) {\n          name = parentNode.parent.name;\n          decl = parentNode.parent;\n        } else if (isBinaryExpression(parentNode.parent) && parentNode.parent.operatorToken.kind === 64 /* EqualsToken */ && (allowDeclaration || parentNode.parent.right === parentNode)) {\n          name = parentNode.parent.left;\n          decl = name;\n        }\n        if (!name || !isBindableStaticNameExpression(name) || !isSameEntityName(name, parentNode.left)) {\n          return void 0;\n        }\n      }\n    } else if (allowDeclaration && isFunctionDeclaration(node)) {\n      name = node.name;\n      decl = node;\n    }\n    if (!decl || !name || !allowDeclaration && !getExpandoInitializer(node, isPrototypeAccess(name))) {\n      return void 0;\n    }\n    return getSymbolOfNode(decl);\n  }\n  function getAssignedJSPrototype(node) {\n    if (!node.parent) {\n      return false;\n    }\n    let parent2 = node.parent;\n    while (parent2 && parent2.kind === 212 /* PropertyAccessExpression */) {\n      parent2 = parent2.parent;\n    }\n    if (parent2 && isBinaryExpression(parent2) && isPrototypeAccess(parent2.left) && parent2.operatorToken.kind === 64 /* EqualsToken */) {\n      const right = getInitializerOfBinaryExpression(parent2);\n      return isObjectLiteralExpression(right) && right;\n    }\n  }\n  function checkCallExpression(node, checkMode) {\n    var _a, _b, _c;\n    checkGrammarTypeArguments(node, node.typeArguments);\n    const signature = getResolvedSignature(\n      node,\n      /*candidatesOutArray*/\n      void 0,\n      checkMode\n    );\n    if (signature === resolvingSignature) {\n      return silentNeverType;\n    }\n    checkDeprecatedSignature(signature, node);\n    if (node.expression.kind === 108 /* SuperKeyword */) {\n      return voidType;\n    }\n    if (node.kind === 215 /* NewExpression */) {\n      const declaration = signature.declaration;\n      if (declaration && declaration.kind !== 177 /* Constructor */ && declaration.kind !== 181 /* ConstructSignature */ && declaration.kind !== 186 /* ConstructorType */ && !(isJSDocSignature(declaration) && ((_b = (_a = getJSDocRoot(declaration)) == null ? void 0 : _a.parent) == null ? void 0 : _b.kind) === 177 /* Constructor */) && !isJSDocConstructSignature(declaration) && !isJSConstructor(declaration)) {\n        if (noImplicitAny) {\n          error2(node, Diagnostics.new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type);\n        }\n        return anyType;\n      }\n    }\n    if (isInJSFile(node) && isCommonJsRequire(node)) {\n      return resolveExternalModuleTypeByLiteral(node.arguments[0]);\n    }\n    const returnType = getReturnTypeOfSignature(signature);\n    if (returnType.flags & 12288 /* ESSymbolLike */ && isSymbolOrSymbolForCall(node)) {\n      return getESSymbolLikeTypeForNode(walkUpParenthesizedExpressions(node.parent));\n    }\n    if (node.kind === 214 /* CallExpression */ && !node.questionDotToken && node.parent.kind === 245 /* ExpressionStatement */ && returnType.flags & 16384 /* Void */ && getTypePredicateOfSignature(signature)) {\n      if (!isDottedName(node.expression)) {\n        error2(node.expression, Diagnostics.Assertions_require_the_call_target_to_be_an_identifier_or_qualified_name);\n      } else if (!getEffectsSignature(node)) {\n        const diagnostic = error2(node.expression, Diagnostics.Assertions_require_every_name_in_the_call_target_to_be_declared_with_an_explicit_type_annotation);\n        getTypeOfDottedName(node.expression, diagnostic);\n      }\n    }\n    if (isInJSFile(node)) {\n      const jsSymbol = getSymbolOfExpando(\n        node,\n        /*allowDeclaration*/\n        false\n      );\n      if ((_c = jsSymbol == null ? void 0 : jsSymbol.exports) == null ? void 0 : _c.size) {\n        const jsAssignmentType = createAnonymousType(jsSymbol, jsSymbol.exports, emptyArray, emptyArray, emptyArray);\n        jsAssignmentType.objectFlags |= 4096 /* JSLiteral */;\n        return getIntersectionType([returnType, jsAssignmentType]);\n      }\n    }\n    return returnType;\n  }\n  function checkDeprecatedSignature(signature, node) {\n    if (signature.flags & 128 /* IsSignatureCandidateForOverloadFailure */) return;\n    if (signature.declaration && signature.declaration.flags & 536870912 /* Deprecated */) {\n      const suggestionNode = getDeprecatedSuggestionNode(node);\n      const name = tryGetPropertyAccessOrIdentifierToString(getInvokedExpression(node));\n      addDeprecatedSuggestionWithSignature(suggestionNode, signature.declaration, name, signatureToString(signature));\n    }\n  }\n  function getDeprecatedSuggestionNode(node) {\n    node = skipParentheses(node);\n    switch (node.kind) {\n      case 214 /* CallExpression */:\n      case 171 /* Decorator */:\n      case 215 /* NewExpression */:\n        return getDeprecatedSuggestionNode(node.expression);\n      case 216 /* TaggedTemplateExpression */:\n        return getDeprecatedSuggestionNode(node.tag);\n      case 287 /* JsxOpeningElement */:\n      case 286 /* JsxSelfClosingElement */:\n        return getDeprecatedSuggestionNode(node.tagName);\n      case 213 /* ElementAccessExpression */:\n        return node.argumentExpression;\n      case 212 /* PropertyAccessExpression */:\n        return node.name;\n      case 184 /* TypeReference */:\n        const typeReference = node;\n        return isQualifiedName(typeReference.typeName) ? typeReference.typeName.right : typeReference;\n      default:\n        return node;\n    }\n  }\n  function isSymbolOrSymbolForCall(node) {\n    if (!isCallExpression(node)) return false;\n    let left = node.expression;\n    if (isPropertyAccessExpression(left) && left.name.escapedText === \"for\") {\n      left = left.expression;\n    }\n    if (!isIdentifier(left) || left.escapedText !== \"Symbol\") {\n      return false;\n    }\n    const globalESSymbol = getGlobalESSymbolConstructorSymbol(\n      /*reportErrors*/\n      false\n    );\n    if (!globalESSymbol) {\n      return false;\n    }\n    return globalESSymbol === resolveName(\n      left,\n      \"Symbol\",\n      111551 /* Value */,\n      /*nameNotFoundMessage*/\n      void 0,\n      /*isUse*/\n      false\n    );\n  }\n  function checkImportCallExpression(node) {\n    checkGrammarImportCallExpression(node);\n    if (node.arguments.length === 0) {\n      return createPromiseReturnType(node, anyType);\n    }\n    const specifier = node.arguments[0];\n    const specifierType = checkExpressionCached(specifier);\n    const optionsType = node.arguments.length > 1 ? checkExpressionCached(node.arguments[1]) : void 0;\n    for (let i = 2; i < node.arguments.length; ++i) {\n      checkExpressionCached(node.arguments[i]);\n    }\n    if (specifierType.flags & 32768 /* Undefined */ || specifierType.flags & 65536 /* Null */ || !isTypeAssignableTo(specifierType, stringType)) {\n      error2(specifier, Diagnostics.Dynamic_import_s_specifier_must_be_of_type_string_but_here_has_type_0, typeToString(specifierType));\n    }\n    if (optionsType) {\n      const importCallOptionsType = getGlobalImportCallOptionsType(\n        /*reportErrors*/\n        true\n      );\n      if (importCallOptionsType !== emptyObjectType) {\n        checkTypeAssignableTo(optionsType, getNullableType(importCallOptionsType, 32768 /* Undefined */), node.arguments[1]);\n      }\n    }\n    const moduleSymbol = resolveExternalModuleName(node, specifier);\n    if (moduleSymbol) {\n      const esModuleSymbol = resolveESModuleSymbol(\n        moduleSymbol,\n        specifier,\n        /*dontResolveAlias*/\n        true,\n        /*suppressInteropError*/\n        false\n      );\n      if (esModuleSymbol) {\n        return createPromiseReturnType(\n          node,\n          getTypeWithSyntheticDefaultOnly(getTypeOfSymbol(esModuleSymbol), esModuleSymbol, moduleSymbol, specifier) || getTypeWithSyntheticDefaultImportType(getTypeOfSymbol(esModuleSymbol), esModuleSymbol, moduleSymbol, specifier)\n        );\n      }\n    }\n    return createPromiseReturnType(node, anyType);\n  }\n  function createDefaultPropertyWrapperForModule(symbol, originalSymbol, anonymousSymbol) {\n    const memberTable = createSymbolTable();\n    const newSymbol = createSymbol(2097152 /* Alias */, \"default\" /* Default */);\n    newSymbol.parent = originalSymbol;\n    newSymbol.links.nameType = getStringLiteralType(\"default\");\n    newSymbol.links.aliasTarget = resolveSymbol(symbol);\n    memberTable.set(\"default\" /* Default */, newSymbol);\n    return createAnonymousType(anonymousSymbol, memberTable, emptyArray, emptyArray, emptyArray);\n  }\n  function getTypeWithSyntheticDefaultOnly(type, symbol, originalSymbol, moduleSpecifier) {\n    const hasDefaultOnly = isOnlyImportableAsDefault(moduleSpecifier);\n    if (hasDefaultOnly && type && !isErrorType(type)) {\n      const synthType = type;\n      if (!synthType.defaultOnlyType) {\n        const type2 = createDefaultPropertyWrapperForModule(symbol, originalSymbol);\n        synthType.defaultOnlyType = type2;\n      }\n      return synthType.defaultOnlyType;\n    }\n    return void 0;\n  }\n  function getTypeWithSyntheticDefaultImportType(type, symbol, originalSymbol, moduleSpecifier) {\n    var _a;\n    if (allowSyntheticDefaultImports && type && !isErrorType(type)) {\n      const synthType = type;\n      if (!synthType.syntheticType) {\n        const file = (_a = originalSymbol.declarations) == null ? void 0 : _a.find(isSourceFile);\n        const hasSyntheticDefault = canHaveSyntheticDefault(\n          file,\n          originalSymbol,\n          /*dontResolveAlias*/\n          false,\n          moduleSpecifier\n        );\n        if (hasSyntheticDefault) {\n          const anonymousSymbol = createSymbol(2048 /* TypeLiteral */, \"__type\" /* Type */);\n          const defaultContainingObject = createDefaultPropertyWrapperForModule(symbol, originalSymbol, anonymousSymbol);\n          anonymousSymbol.links.type = defaultContainingObject;\n          synthType.syntheticType = isValidSpreadType(type) ? getSpreadType(\n            type,\n            defaultContainingObject,\n            anonymousSymbol,\n            /*objectFlags*/\n            0,\n            /*readonly*/\n            false\n          ) : defaultContainingObject;\n        } else {\n          synthType.syntheticType = type;\n        }\n      }\n      return synthType.syntheticType;\n    }\n    return type;\n  }\n  function isCommonJsRequire(node) {\n    if (!isRequireCall(\n      node,\n      /*requireStringLiteralLikeArgument*/\n      true\n    )) {\n      return false;\n    }\n    if (!isIdentifier(node.expression)) return Debug.fail();\n    const resolvedRequire = resolveName(\n      node.expression,\n      node.expression.escapedText,\n      111551 /* Value */,\n      /*nameNotFoundMessage*/\n      void 0,\n      /*isUse*/\n      true\n    );\n    if (resolvedRequire === requireSymbol) {\n      return true;\n    }\n    if (resolvedRequire.flags & 2097152 /* Alias */) {\n      return false;\n    }\n    const targetDeclarationKind = resolvedRequire.flags & 16 /* Function */ ? 263 /* FunctionDeclaration */ : resolvedRequire.flags & 3 /* Variable */ ? 261 /* VariableDeclaration */ : 0 /* Unknown */;\n    if (targetDeclarationKind !== 0 /* Unknown */) {\n      const decl = getDeclarationOfKind(resolvedRequire, targetDeclarationKind);\n      return !!decl && !!(decl.flags & 33554432 /* Ambient */);\n    }\n    return false;\n  }\n  function checkTaggedTemplateExpression(node) {\n    if (!checkGrammarTaggedTemplateChain(node)) checkGrammarTypeArguments(node, node.typeArguments);\n    if (languageVersion < LanguageFeatureMinimumTarget.TaggedTemplates) {\n      checkExternalEmitHelpers(node, 262144 /* MakeTemplateObject */);\n    }\n    const signature = getResolvedSignature(node);\n    checkDeprecatedSignature(signature, node);\n    return getReturnTypeOfSignature(signature);\n  }\n  function checkAssertion(node, checkMode) {\n    if (node.kind === 217 /* TypeAssertionExpression */) {\n      const file = getSourceFileOfNode(node);\n      if (file && fileExtensionIsOneOf(file.fileName, [\".cts\" /* Cts */, \".mts\" /* Mts */])) {\n        grammarErrorOnNode(node, Diagnostics.This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Use_an_as_expression_instead);\n      }\n      if (compilerOptions.erasableSyntaxOnly) {\n        const start = skipTrivia(file.text, node.pos);\n        const end = node.expression.pos;\n        diagnostics.add(createFileDiagnostic(file, start, end - start, Diagnostics.This_syntax_is_not_allowed_when_erasableSyntaxOnly_is_enabled));\n      }\n    }\n    return checkAssertionWorker(node, checkMode);\n  }\n  function isValidConstAssertionArgument(node) {\n    switch (node.kind) {\n      case 11 /* StringLiteral */:\n      case 15 /* NoSubstitutionTemplateLiteral */:\n      case 9 /* NumericLiteral */:\n      case 10 /* BigIntLiteral */:\n      case 112 /* TrueKeyword */:\n      case 97 /* FalseKeyword */:\n      case 210 /* ArrayLiteralExpression */:\n      case 211 /* ObjectLiteralExpression */:\n      case 229 /* TemplateExpression */:\n        return true;\n      case 218 /* ParenthesizedExpression */:\n        return isValidConstAssertionArgument(node.expression);\n      case 225 /* PrefixUnaryExpression */:\n        const op = node.operator;\n        const arg = node.operand;\n        return op === 41 /* MinusToken */ && (arg.kind === 9 /* NumericLiteral */ || arg.kind === 10 /* BigIntLiteral */) || op === 40 /* PlusToken */ && arg.kind === 9 /* NumericLiteral */;\n      case 212 /* PropertyAccessExpression */:\n      case 213 /* ElementAccessExpression */:\n        const expr = skipParentheses(node.expression);\n        const symbol = isEntityNameExpression(expr) ? resolveEntityName(\n          expr,\n          111551 /* Value */,\n          /*ignoreErrors*/\n          true\n        ) : void 0;\n        return !!(symbol && symbol.flags & 384 /* Enum */);\n    }\n    return false;\n  }\n  function checkAssertionWorker(node, checkMode) {\n    const { type, expression } = getAssertionTypeAndExpression(node);\n    const exprType = checkExpression(expression, checkMode);\n    if (isConstTypeReference(type)) {\n      if (!isValidConstAssertionArgument(expression)) {\n        error2(expression, Diagnostics.A_const_assertions_can_only_be_applied_to_references_to_enum_members_or_string_number_boolean_array_or_object_literals);\n      }\n      return getRegularTypeOfLiteralType(exprType);\n    }\n    const links = getNodeLinks(node);\n    links.assertionExpressionType = exprType;\n    checkSourceElement(type);\n    checkNodeDeferred(node);\n    return getTypeFromTypeNode(type);\n  }\n  function getAssertionTypeAndExpression(node) {\n    let type;\n    let expression;\n    switch (node.kind) {\n      case 235 /* AsExpression */:\n      case 217 /* TypeAssertionExpression */:\n        type = node.type;\n        expression = node.expression;\n        break;\n      case 218 /* ParenthesizedExpression */:\n        type = getJSDocTypeAssertionType(node);\n        expression = node.expression;\n        break;\n    }\n    return { type, expression };\n  }\n  function checkAssertionDeferred(node) {\n    const { type } = getAssertionTypeAndExpression(node);\n    const errNode = isParenthesizedExpression(node) ? type : node;\n    const links = getNodeLinks(node);\n    Debug.assertIsDefined(links.assertionExpressionType);\n    const exprType = getRegularTypeOfObjectLiteral(getBaseTypeOfLiteralType(links.assertionExpressionType));\n    const targetType = getTypeFromTypeNode(type);\n    if (!isErrorType(targetType)) {\n      addLazyDiagnostic(() => {\n        const widenedType = getWidenedType(exprType);\n        if (!isTypeComparableTo(targetType, widenedType)) {\n          checkTypeComparableTo(exprType, targetType, errNode, Diagnostics.Conversion_of_type_0_to_type_1_may_be_a_mistake_because_neither_type_sufficiently_overlaps_with_the_other_If_this_was_intentional_convert_the_expression_to_unknown_first);\n        }\n      });\n    }\n  }\n  function checkNonNullChain(node) {\n    const leftType = checkExpression(node.expression);\n    const nonOptionalType = getOptionalExpressionType(leftType, node.expression);\n    return propagateOptionalTypeMarker(getNonNullableType(nonOptionalType), node, nonOptionalType !== leftType);\n  }\n  function checkNonNullAssertion(node) {\n    return node.flags & 64 /* OptionalChain */ ? checkNonNullChain(node) : getNonNullableType(checkExpression(node.expression));\n  }\n  function checkExpressionWithTypeArguments(node) {\n    checkGrammarExpressionWithTypeArguments(node);\n    forEach(node.typeArguments, checkSourceElement);\n    if (node.kind === 234 /* ExpressionWithTypeArguments */) {\n      const parent2 = walkUpParenthesizedExpressions(node.parent);\n      if (parent2.kind === 227 /* BinaryExpression */ && parent2.operatorToken.kind === 104 /* InstanceOfKeyword */ && isNodeDescendantOf(node, parent2.right)) {\n        error2(node, Diagnostics.The_right_hand_side_of_an_instanceof_expression_must_not_be_an_instantiation_expression);\n      }\n    }\n    const exprType = node.kind === 234 /* ExpressionWithTypeArguments */ ? checkExpression(node.expression) : isThisIdentifier(node.exprName) ? checkThisExpression(node.exprName) : checkExpression(node.exprName);\n    return getInstantiationExpressionType(exprType, node);\n  }\n  function getInstantiationExpressionType(exprType, node) {\n    const typeArguments = node.typeArguments;\n    if (exprType === silentNeverType || isErrorType(exprType) || !some(typeArguments)) {\n      return exprType;\n    }\n    const links = getNodeLinks(node);\n    if (!links.instantiationExpressionTypes) {\n      links.instantiationExpressionTypes = /* @__PURE__ */ new Map();\n    }\n    if (links.instantiationExpressionTypes.has(exprType.id)) {\n      return links.instantiationExpressionTypes.get(exprType.id);\n    }\n    let hasSomeApplicableSignature = false;\n    let nonApplicableType;\n    const result = getInstantiatedType(exprType);\n    links.instantiationExpressionTypes.set(exprType.id, result);\n    const errorType2 = hasSomeApplicableSignature ? nonApplicableType : exprType;\n    if (errorType2) {\n      diagnostics.add(createDiagnosticForNodeArray(getSourceFileOfNode(node), typeArguments, Diagnostics.Type_0_has_no_signatures_for_which_the_type_argument_list_is_applicable, typeToString(errorType2)));\n    }\n    return result;\n    function getInstantiatedType(type) {\n      let hasSignatures2 = false;\n      let hasApplicableSignature = false;\n      const result2 = getInstantiatedTypePart(type);\n      hasSomeApplicableSignature || (hasSomeApplicableSignature = hasApplicableSignature);\n      if (hasSignatures2 && !hasApplicableSignature) {\n        nonApplicableType ?? (nonApplicableType = type);\n      }\n      return result2;\n      function getInstantiatedTypePart(type2) {\n        if (type2.flags & 524288 /* Object */) {\n          const resolved = resolveStructuredTypeMembers(type2);\n          const callSignatures = getInstantiatedSignatures(resolved.callSignatures);\n          const constructSignatures = getInstantiatedSignatures(resolved.constructSignatures);\n          hasSignatures2 || (hasSignatures2 = resolved.callSignatures.length !== 0 || resolved.constructSignatures.length !== 0);\n          hasApplicableSignature || (hasApplicableSignature = callSignatures.length !== 0 || constructSignatures.length !== 0);\n          if (callSignatures !== resolved.callSignatures || constructSignatures !== resolved.constructSignatures) {\n            const result3 = createAnonymousType(createSymbol(0 /* None */, \"__instantiationExpression\" /* InstantiationExpression */), resolved.members, callSignatures, constructSignatures, resolved.indexInfos);\n            result3.objectFlags |= 8388608 /* InstantiationExpressionType */;\n            result3.node = node;\n            return result3;\n          }\n        } else if (type2.flags & 58982400 /* InstantiableNonPrimitive */) {\n          const constraint = getBaseConstraintOfType(type2);\n          if (constraint) {\n            const instantiated = getInstantiatedTypePart(constraint);\n            if (instantiated !== constraint) {\n              return instantiated;\n            }\n          }\n        } else if (type2.flags & 1048576 /* Union */) {\n          return mapType(type2, getInstantiatedType);\n        } else if (type2.flags & 2097152 /* Intersection */) {\n          return getIntersectionType(sameMap(type2.types, getInstantiatedTypePart));\n        }\n        return type2;\n      }\n    }\n    function getInstantiatedSignatures(signatures) {\n      const applicableSignatures = filter(signatures, (sig) => !!sig.typeParameters && hasCorrectTypeArgumentArity(sig, typeArguments));\n      return sameMap(applicableSignatures, (sig) => {\n        const typeArgumentTypes = checkTypeArguments(\n          sig,\n          typeArguments,\n          /*reportErrors*/\n          true\n        );\n        return typeArgumentTypes ? getSignatureInstantiation(sig, typeArgumentTypes, isInJSFile(sig.declaration)) : sig;\n      });\n    }\n  }\n  function checkSatisfiesExpression(node) {\n    checkSourceElement(node.type);\n    return checkSatisfiesExpressionWorker(node.expression, node.type);\n  }\n  function checkSatisfiesExpressionWorker(expression, target, checkMode) {\n    const exprType = checkExpression(expression, checkMode);\n    const targetType = getTypeFromTypeNode(target);\n    if (isErrorType(targetType)) {\n      return targetType;\n    }\n    const errorNode = findAncestor(target.parent, (n) => n.kind === 239 /* SatisfiesExpression */ || n.kind === 351 /* JSDocSatisfiesTag */);\n    checkTypeAssignableToAndOptionallyElaborate(exprType, targetType, errorNode, expression, Diagnostics.Type_0_does_not_satisfy_the_expected_type_1);\n    return exprType;\n  }\n  function checkMetaProperty(node) {\n    checkGrammarMetaProperty(node);\n    if (node.keywordToken === 105 /* NewKeyword */) {\n      return checkNewTargetMetaProperty(node);\n    }\n    if (node.keywordToken === 102 /* ImportKeyword */) {\n      if (node.name.escapedText === \"defer\") {\n        Debug.assert(!isCallExpression(node.parent) || node.parent.expression !== node, \"Trying to get the type of `import.defer` in `import.defer(...)`\");\n        return errorType;\n      }\n      return checkImportMetaProperty(node);\n    }\n    return Debug.assertNever(node.keywordToken);\n  }\n  function checkMetaPropertyKeyword(node) {\n    switch (node.keywordToken) {\n      case 102 /* ImportKeyword */:\n        return getGlobalImportMetaExpressionType();\n      case 105 /* NewKeyword */:\n        const type = checkNewTargetMetaProperty(node);\n        return isErrorType(type) ? errorType : createNewTargetExpressionType(type);\n      default:\n        Debug.assertNever(node.keywordToken);\n    }\n  }\n  function checkNewTargetMetaProperty(node) {\n    const container = getNewTargetContainer(node);\n    if (!container) {\n      error2(node, Diagnostics.Meta_property_0_is_only_allowed_in_the_body_of_a_function_declaration_function_expression_or_constructor, \"new.target\");\n      return errorType;\n    } else if (container.kind === 177 /* Constructor */) {\n      const symbol = getSymbolOfDeclaration(container.parent);\n      return getTypeOfSymbol(symbol);\n    } else {\n      const symbol = getSymbolOfDeclaration(container);\n      return getTypeOfSymbol(symbol);\n    }\n  }\n  function checkImportMetaProperty(node) {\n    if (100 /* Node16 */ <= moduleKind && moduleKind <= 199 /* NodeNext */) {\n      if (getSourceFileOfNode(node).impliedNodeFormat !== 99 /* ESNext */) {\n        error2(node, Diagnostics.The_import_meta_meta_property_is_not_allowed_in_files_which_will_build_into_CommonJS_output);\n      }\n    } else if (moduleKind < 6 /* ES2020 */ && moduleKind !== 4 /* System */) {\n      error2(node, Diagnostics.The_import_meta_meta_property_is_only_allowed_when_the_module_option_is_es2020_es2022_esnext_system_node16_node18_node20_or_nodenext);\n    }\n    const file = getSourceFileOfNode(node);\n    Debug.assert(!!(file.flags & 8388608 /* PossiblyContainsImportMeta */), \"Containing file is missing import meta node flag.\");\n    return node.name.escapedText === \"meta\" ? getGlobalImportMetaType() : errorType;\n  }\n  function getTypeOfParameter(symbol) {\n    const declaration = symbol.valueDeclaration;\n    return addOptionality(\n      getTypeOfSymbol(symbol),\n      /*isProperty*/\n      false,\n      /*isOptional*/\n      !!declaration && (hasInitializer(declaration) || isOptionalDeclaration(declaration))\n    );\n  }\n  function getTupleElementLabelFromBindingElement(node, index, elementFlags) {\n    switch (node.name.kind) {\n      case 80 /* Identifier */: {\n        const name = node.name.escapedText;\n        if (node.dotDotDotToken) {\n          return elementFlags & 12 /* Variable */ ? name : `${name}_${index}`;\n        } else {\n          return elementFlags & 3 /* Fixed */ ? name : `${name}_n`;\n        }\n      }\n      case 208 /* ArrayBindingPattern */: {\n        if (node.dotDotDotToken) {\n          const elements = node.name.elements;\n          const lastElement = tryCast(lastOrUndefined(elements), isBindingElement);\n          const elementCount = elements.length - ((lastElement == null ? void 0 : lastElement.dotDotDotToken) ? 1 : 0);\n          if (index < elementCount) {\n            const element = elements[index];\n            if (isBindingElement(element)) {\n              return getTupleElementLabelFromBindingElement(element, index, elementFlags);\n            }\n          } else if (lastElement == null ? void 0 : lastElement.dotDotDotToken) {\n            return getTupleElementLabelFromBindingElement(lastElement, index - elementCount, elementFlags);\n          }\n        }\n        break;\n      }\n    }\n    return `arg_${index}`;\n  }\n  function getTupleElementLabel(d, index = 0, elementFlags = 3 /* Fixed */, restSymbol) {\n    if (!d) {\n      const restParameter = tryCast(restSymbol == null ? void 0 : restSymbol.valueDeclaration, isParameter);\n      return restParameter ? getTupleElementLabelFromBindingElement(restParameter, index, elementFlags) : `${(restSymbol == null ? void 0 : restSymbol.escapedName) ?? \"arg\"}_${index}`;\n    }\n    Debug.assert(isIdentifier(d.name));\n    return d.name.escapedText;\n  }\n  function getParameterNameAtPosition(signature, pos, overrideRestType) {\n    var _a;\n    const paramCount = signature.parameters.length - (signatureHasRestParameter(signature) ? 1 : 0);\n    if (pos < paramCount) {\n      return signature.parameters[pos].escapedName;\n    }\n    const restParameter = signature.parameters[paramCount] || unknownSymbol;\n    const restType = overrideRestType || getTypeOfSymbol(restParameter);\n    if (isTupleType(restType)) {\n      const tupleType = restType.target;\n      const index = pos - paramCount;\n      const associatedName = (_a = tupleType.labeledElementDeclarations) == null ? void 0 : _a[index];\n      const elementFlags = tupleType.elementFlags[index];\n      return getTupleElementLabel(associatedName, index, elementFlags, restParameter);\n    }\n    return restParameter.escapedName;\n  }\n  function getParameterIdentifierInfoAtPosition(signature, pos) {\n    var _a;\n    if (((_a = signature.declaration) == null ? void 0 : _a.kind) === 318 /* JSDocFunctionType */) {\n      return void 0;\n    }\n    const paramCount = signature.parameters.length - (signatureHasRestParameter(signature) ? 1 : 0);\n    if (pos < paramCount) {\n      const param = signature.parameters[pos];\n      const paramIdent = getParameterDeclarationIdentifier(param);\n      return paramIdent ? {\n        parameter: paramIdent,\n        parameterName: param.escapedName,\n        isRestParameter: false\n      } : void 0;\n    }\n    const restParameter = signature.parameters[paramCount] || unknownSymbol;\n    const restIdent = getParameterDeclarationIdentifier(restParameter);\n    if (!restIdent) {\n      return void 0;\n    }\n    const restType = getTypeOfSymbol(restParameter);\n    if (isTupleType(restType)) {\n      const associatedNames = restType.target.labeledElementDeclarations;\n      const index = pos - paramCount;\n      const associatedName = associatedNames == null ? void 0 : associatedNames[index];\n      const isRestTupleElement = !!(associatedName == null ? void 0 : associatedName.dotDotDotToken);\n      if (associatedName) {\n        Debug.assert(isIdentifier(associatedName.name));\n        return { parameter: associatedName.name, parameterName: associatedName.name.escapedText, isRestParameter: isRestTupleElement };\n      }\n      return void 0;\n    }\n    if (pos === paramCount) {\n      return { parameter: restIdent, parameterName: restParameter.escapedName, isRestParameter: true };\n    }\n    return void 0;\n  }\n  function getParameterDeclarationIdentifier(symbol) {\n    return symbol.valueDeclaration && isParameter(symbol.valueDeclaration) && isIdentifier(symbol.valueDeclaration.name) && symbol.valueDeclaration.name;\n  }\n  function isValidDeclarationForTupleLabel(d) {\n    return d.kind === 203 /* NamedTupleMember */ || isParameter(d) && d.name && isIdentifier(d.name);\n  }\n  function getNameableDeclarationAtPosition(signature, pos) {\n    const paramCount = signature.parameters.length - (signatureHasRestParameter(signature) ? 1 : 0);\n    if (pos < paramCount) {\n      const decl = signature.parameters[pos].valueDeclaration;\n      return decl && isValidDeclarationForTupleLabel(decl) ? decl : void 0;\n    }\n    const restParameter = signature.parameters[paramCount] || unknownSymbol;\n    const restType = getTypeOfSymbol(restParameter);\n    if (isTupleType(restType)) {\n      const associatedNames = restType.target.labeledElementDeclarations;\n      const index = pos - paramCount;\n      return associatedNames && associatedNames[index];\n    }\n    return restParameter.valueDeclaration && isValidDeclarationForTupleLabel(restParameter.valueDeclaration) ? restParameter.valueDeclaration : void 0;\n  }\n  function getTypeAtPosition(signature, pos) {\n    return tryGetTypeAtPosition(signature, pos) || anyType;\n  }\n  function tryGetTypeAtPosition(signature, pos) {\n    const paramCount = signature.parameters.length - (signatureHasRestParameter(signature) ? 1 : 0);\n    if (pos < paramCount) {\n      return getTypeOfParameter(signature.parameters[pos]);\n    }\n    if (signatureHasRestParameter(signature)) {\n      const restType = getTypeOfSymbol(signature.parameters[paramCount]);\n      const index = pos - paramCount;\n      if (!isTupleType(restType) || restType.target.combinedFlags & 12 /* Variable */ || index < restType.target.fixedLength) {\n        return getIndexedAccessType(restType, getNumberLiteralType(index));\n      }\n    }\n    return void 0;\n  }\n  function getRestTypeAtPosition(source, pos, readonly) {\n    const parameterCount = getParameterCount(source);\n    const minArgumentCount = getMinArgumentCount(source);\n    const restType = getEffectiveRestType(source);\n    if (restType && pos >= parameterCount - 1) {\n      return pos === parameterCount - 1 ? restType : createArrayType(getIndexedAccessType(restType, numberType));\n    }\n    const types = [];\n    const flags = [];\n    const names = [];\n    for (let i = pos; i < parameterCount; i++) {\n      if (!restType || i < parameterCount - 1) {\n        types.push(getTypeAtPosition(source, i));\n        flags.push(i < minArgumentCount ? 1 /* Required */ : 2 /* Optional */);\n      } else {\n        types.push(restType);\n        flags.push(8 /* Variadic */);\n      }\n      names.push(getNameableDeclarationAtPosition(source, i));\n    }\n    return createTupleType(types, flags, readonly, names);\n  }\n  function getRestOrAnyTypeAtPosition(source, pos) {\n    const restType = getRestTypeAtPosition(source, pos);\n    const elementType = restType && getElementTypeOfArrayType(restType);\n    return elementType && isTypeAny(elementType) ? anyType : restType;\n  }\n  function getParameterCount(signature) {\n    const length2 = signature.parameters.length;\n    if (signatureHasRestParameter(signature)) {\n      const restType = getTypeOfSymbol(signature.parameters[length2 - 1]);\n      if (isTupleType(restType)) {\n        return length2 + restType.target.fixedLength - (restType.target.combinedFlags & 12 /* Variable */ ? 0 : 1);\n      }\n    }\n    return length2;\n  }\n  function getMinArgumentCount(signature, flags) {\n    const strongArityForUntypedJS = flags & 1 /* StrongArityForUntypedJS */;\n    const voidIsNonOptional = flags & 2 /* VoidIsNonOptional */;\n    if (voidIsNonOptional || signature.resolvedMinArgumentCount === void 0) {\n      let minArgumentCount;\n      if (signatureHasRestParameter(signature)) {\n        const restType = getTypeOfSymbol(signature.parameters[signature.parameters.length - 1]);\n        if (isTupleType(restType)) {\n          const firstOptionalIndex = findIndex(restType.target.elementFlags, (f) => !(f & 1 /* Required */));\n          const requiredCount = firstOptionalIndex < 0 ? restType.target.fixedLength : firstOptionalIndex;\n          if (requiredCount > 0) {\n            minArgumentCount = signature.parameters.length - 1 + requiredCount;\n          }\n        }\n      }\n      if (minArgumentCount === void 0) {\n        if (!strongArityForUntypedJS && signature.flags & 32 /* IsUntypedSignatureInJSFile */) {\n          return 0;\n        }\n        minArgumentCount = signature.minArgumentCount;\n      }\n      if (voidIsNonOptional) {\n        return minArgumentCount;\n      }\n      for (let i = minArgumentCount - 1; i >= 0; i--) {\n        const type = getTypeAtPosition(signature, i);\n        if (filterType(type, acceptsVoid).flags & 131072 /* Never */) {\n          break;\n        }\n        minArgumentCount = i;\n      }\n      signature.resolvedMinArgumentCount = minArgumentCount;\n    }\n    return signature.resolvedMinArgumentCount;\n  }\n  function hasEffectiveRestParameter(signature) {\n    if (signatureHasRestParameter(signature)) {\n      const restType = getTypeOfSymbol(signature.parameters[signature.parameters.length - 1]);\n      return !isTupleType(restType) || !!(restType.target.combinedFlags & 12 /* Variable */);\n    }\n    return false;\n  }\n  function getEffectiveRestType(signature) {\n    if (signatureHasRestParameter(signature)) {\n      const restType = getTypeOfSymbol(signature.parameters[signature.parameters.length - 1]);\n      if (!isTupleType(restType)) {\n        return isTypeAny(restType) ? anyArrayType : restType;\n      }\n      if (restType.target.combinedFlags & 12 /* Variable */) {\n        return sliceTupleType(restType, restType.target.fixedLength);\n      }\n    }\n    return void 0;\n  }\n  function getNonArrayRestType(signature) {\n    const restType = getEffectiveRestType(signature);\n    return restType && !isArrayType(restType) && !isTypeAny(restType) ? restType : void 0;\n  }\n  function getTypeOfFirstParameterOfSignature(signature) {\n    return getTypeOfFirstParameterOfSignatureWithFallback(signature, neverType);\n  }\n  function getTypeOfFirstParameterOfSignatureWithFallback(signature, fallbackType) {\n    return signature.parameters.length > 0 ? getTypeAtPosition(signature, 0) : fallbackType;\n  }\n  function inferFromAnnotatedParametersAndReturn(signature, context, inferenceContext) {\n    const len = signature.parameters.length - (signatureHasRestParameter(signature) ? 1 : 0);\n    for (let i = 0; i < len; i++) {\n      const declaration = signature.parameters[i].valueDeclaration;\n      const typeNode2 = getEffectiveTypeAnnotationNode(declaration);\n      if (typeNode2) {\n        const source = addOptionality(\n          getTypeFromTypeNode(typeNode2),\n          /*isProperty*/\n          false,\n          isOptionalDeclaration(declaration)\n        );\n        const target = getTypeAtPosition(context, i);\n        inferTypes(inferenceContext.inferences, source, target);\n      }\n    }\n    const typeNode = signature.declaration && getEffectiveReturnTypeNode(signature.declaration);\n    if (typeNode) {\n      const source = getTypeFromTypeNode(typeNode);\n      const target = getReturnTypeOfSignature(context);\n      inferTypes(inferenceContext.inferences, source, target);\n    }\n  }\n  function assignContextualParameterTypes(signature, context) {\n    if (context.typeParameters) {\n      if (!signature.typeParameters) {\n        signature.typeParameters = context.typeParameters;\n      } else {\n        return;\n      }\n    }\n    if (context.thisParameter) {\n      const parameter = signature.thisParameter;\n      if (!parameter || parameter.valueDeclaration && !parameter.valueDeclaration.type) {\n        if (!parameter) {\n          signature.thisParameter = createSymbolWithType(\n            context.thisParameter,\n            /*type*/\n            void 0\n          );\n        }\n        assignParameterType(signature.thisParameter, getTypeOfSymbol(context.thisParameter));\n      }\n    }\n    const len = signature.parameters.length - (signatureHasRestParameter(signature) ? 1 : 0);\n    for (let i = 0; i < len; i++) {\n      const parameter = signature.parameters[i];\n      const declaration = parameter.valueDeclaration;\n      if (!getEffectiveTypeAnnotationNode(declaration)) {\n        let type = tryGetTypeAtPosition(context, i);\n        if (type && declaration.initializer) {\n          let initializerType = checkDeclarationInitializer(declaration, 0 /* Normal */);\n          if (!isTypeAssignableTo(initializerType, type) && isTypeAssignableTo(type, initializerType = widenTypeInferredFromInitializer(declaration, initializerType))) {\n            type = initializerType;\n          }\n        }\n        assignParameterType(parameter, type);\n      }\n    }\n    if (signatureHasRestParameter(signature)) {\n      const parameter = last(signature.parameters);\n      if (parameter.valueDeclaration ? !getEffectiveTypeAnnotationNode(parameter.valueDeclaration) : !!(getCheckFlags(parameter) & 65536 /* DeferredType */)) {\n        const contextualParameterType = getRestTypeAtPosition(context, len);\n        assignParameterType(parameter, contextualParameterType);\n      }\n    }\n  }\n  function assignNonContextualParameterTypes(signature) {\n    if (signature.thisParameter) {\n      assignParameterType(signature.thisParameter);\n    }\n    for (const parameter of signature.parameters) {\n      assignParameterType(parameter);\n    }\n  }\n  function assignParameterType(parameter, contextualType) {\n    const links = getSymbolLinks(parameter);\n    if (!links.type) {\n      const declaration = parameter.valueDeclaration;\n      links.type = addOptionality(\n        contextualType || (declaration ? getWidenedTypeForVariableLikeDeclaration(\n          declaration,\n          /*reportErrors*/\n          true\n        ) : getTypeOfSymbol(parameter)),\n        /*isProperty*/\n        false,\n        /*isOptional*/\n        !!declaration && !declaration.initializer && isOptionalDeclaration(declaration)\n      );\n      if (declaration && declaration.name.kind !== 80 /* Identifier */) {\n        if (links.type === unknownType) {\n          links.type = getTypeFromBindingPattern(declaration.name);\n        }\n        assignBindingElementTypes(declaration.name, links.type);\n      }\n    } else if (contextualType) {\n      Debug.assertEqual(links.type, contextualType, \"Parameter symbol already has a cached type which differs from newly assigned type\");\n    }\n  }\n  function assignBindingElementTypes(pattern, parentType) {\n    for (const element of pattern.elements) {\n      if (!isOmittedExpression(element)) {\n        const type = getBindingElementTypeFromParentType(\n          element,\n          parentType,\n          /*noTupleBoundsCheck*/\n          false\n        );\n        if (element.name.kind === 80 /* Identifier */) {\n          getSymbolLinks(getSymbolOfDeclaration(element)).type = type;\n        } else {\n          assignBindingElementTypes(element.name, type);\n        }\n      }\n    }\n  }\n  function createClassDecoratorContextType(classType) {\n    return tryCreateTypeReference(getGlobalClassDecoratorContextType(\n      /*reportErrors*/\n      true\n    ), [classType]);\n  }\n  function createClassMethodDecoratorContextType(thisType, valueType) {\n    return tryCreateTypeReference(getGlobalClassMethodDecoratorContextType(\n      /*reportErrors*/\n      true\n    ), [thisType, valueType]);\n  }\n  function createClassGetterDecoratorContextType(thisType, valueType) {\n    return tryCreateTypeReference(getGlobalClassGetterDecoratorContextType(\n      /*reportErrors*/\n      true\n    ), [thisType, valueType]);\n  }\n  function createClassSetterDecoratorContextType(thisType, valueType) {\n    return tryCreateTypeReference(getGlobalClassSetterDecoratorContextType(\n      /*reportErrors*/\n      true\n    ), [thisType, valueType]);\n  }\n  function createClassAccessorDecoratorContextType(thisType, valueType) {\n    return tryCreateTypeReference(getGlobalClassAccessorDecoratorContextType(\n      /*reportErrors*/\n      true\n    ), [thisType, valueType]);\n  }\n  function createClassFieldDecoratorContextType(thisType, valueType) {\n    return tryCreateTypeReference(getGlobalClassFieldDecoratorContextType(\n      /*reportErrors*/\n      true\n    ), [thisType, valueType]);\n  }\n  function getClassMemberDecoratorContextOverrideType(nameType, isPrivate, isStatic2) {\n    const key = `${isPrivate ? \"p\" : \"P\"}${isStatic2 ? \"s\" : \"S\"}${nameType.id}`;\n    let overrideType = decoratorContextOverrideTypeCache.get(key);\n    if (!overrideType) {\n      const members = createSymbolTable();\n      members.set(\"name\", createProperty(\"name\", nameType));\n      members.set(\"private\", createProperty(\"private\", isPrivate ? trueType : falseType));\n      members.set(\"static\", createProperty(\"static\", isStatic2 ? trueType : falseType));\n      overrideType = createAnonymousType(\n        /*symbol*/\n        void 0,\n        members,\n        emptyArray,\n        emptyArray,\n        emptyArray\n      );\n      decoratorContextOverrideTypeCache.set(key, overrideType);\n    }\n    return overrideType;\n  }\n  function createClassMemberDecoratorContextTypeForNode(node, thisType, valueType) {\n    const isStatic2 = hasStaticModifier(node);\n    const isPrivate = isPrivateIdentifier(node.name);\n    const nameType = isPrivate ? getStringLiteralType(idText(node.name)) : getLiteralTypeFromPropertyName(node.name);\n    const contextType = isMethodDeclaration(node) ? createClassMethodDecoratorContextType(thisType, valueType) : isGetAccessorDeclaration(node) ? createClassGetterDecoratorContextType(thisType, valueType) : isSetAccessorDeclaration(node) ? createClassSetterDecoratorContextType(thisType, valueType) : isAutoAccessorPropertyDeclaration(node) ? createClassAccessorDecoratorContextType(thisType, valueType) : isPropertyDeclaration(node) ? createClassFieldDecoratorContextType(thisType, valueType) : Debug.failBadSyntaxKind(node);\n    const overrideType = getClassMemberDecoratorContextOverrideType(nameType, isPrivate, isStatic2);\n    return getIntersectionType([contextType, overrideType]);\n  }\n  function createClassAccessorDecoratorTargetType(thisType, valueType) {\n    return tryCreateTypeReference(getGlobalClassAccessorDecoratorTargetType(\n      /*reportErrors*/\n      true\n    ), [thisType, valueType]);\n  }\n  function createClassAccessorDecoratorResultType(thisType, valueType) {\n    return tryCreateTypeReference(getGlobalClassAccessorDecoratorResultType(\n      /*reportErrors*/\n      true\n    ), [thisType, valueType]);\n  }\n  function createClassFieldDecoratorInitializerMutatorType(thisType, valueType) {\n    const thisParam = createParameter2(\"this\", thisType);\n    const valueParam = createParameter2(\"value\", valueType);\n    return createFunctionType(\n      /*typeParameters*/\n      void 0,\n      thisParam,\n      [valueParam],\n      valueType,\n      /*typePredicate*/\n      void 0,\n      1\n    );\n  }\n  function createESDecoratorCallSignature(targetType, contextType, nonOptionalReturnType) {\n    const targetParam = createParameter2(\"target\", targetType);\n    const contextParam = createParameter2(\"context\", contextType);\n    const returnType = getUnionType([nonOptionalReturnType, voidType]);\n    return createCallSignature(\n      /*typeParameters*/\n      void 0,\n      /*thisParameter*/\n      void 0,\n      [targetParam, contextParam],\n      returnType\n    );\n  }\n  function getESDecoratorCallSignature(decorator) {\n    const { parent: parent2 } = decorator;\n    const links = getNodeLinks(parent2);\n    if (!links.decoratorSignature) {\n      links.decoratorSignature = anySignature;\n      switch (parent2.kind) {\n        case 264 /* ClassDeclaration */:\n        case 232 /* ClassExpression */: {\n          const node = parent2;\n          const targetType = getTypeOfSymbol(getSymbolOfDeclaration(node));\n          const contextType = createClassDecoratorContextType(targetType);\n          links.decoratorSignature = createESDecoratorCallSignature(targetType, contextType, targetType);\n          break;\n        }\n        case 175 /* MethodDeclaration */:\n        case 178 /* GetAccessor */:\n        case 179 /* SetAccessor */: {\n          const node = parent2;\n          if (!isClassLike(node.parent)) break;\n          const valueType = isMethodDeclaration(node) ? getOrCreateTypeFromSignature(getSignatureFromDeclaration(node)) : getTypeOfNode(node);\n          const thisType = hasStaticModifier(node) ? getTypeOfSymbol(getSymbolOfDeclaration(node.parent)) : getDeclaredTypeOfClassOrInterface(getSymbolOfDeclaration(node.parent));\n          const targetType = isGetAccessorDeclaration(node) ? createGetterFunctionType(valueType) : isSetAccessorDeclaration(node) ? createSetterFunctionType(valueType) : valueType;\n          const contextType = createClassMemberDecoratorContextTypeForNode(node, thisType, valueType);\n          const returnType = isGetAccessorDeclaration(node) ? createGetterFunctionType(valueType) : isSetAccessorDeclaration(node) ? createSetterFunctionType(valueType) : valueType;\n          links.decoratorSignature = createESDecoratorCallSignature(targetType, contextType, returnType);\n          break;\n        }\n        case 173 /* PropertyDeclaration */: {\n          const node = parent2;\n          if (!isClassLike(node.parent)) break;\n          const valueType = getTypeOfNode(node);\n          const thisType = hasStaticModifier(node) ? getTypeOfSymbol(getSymbolOfDeclaration(node.parent)) : getDeclaredTypeOfClassOrInterface(getSymbolOfDeclaration(node.parent));\n          const targetType = hasAccessorModifier(node) ? createClassAccessorDecoratorTargetType(thisType, valueType) : undefinedType;\n          const contextType = createClassMemberDecoratorContextTypeForNode(node, thisType, valueType);\n          const returnType = hasAccessorModifier(node) ? createClassAccessorDecoratorResultType(thisType, valueType) : createClassFieldDecoratorInitializerMutatorType(thisType, valueType);\n          links.decoratorSignature = createESDecoratorCallSignature(targetType, contextType, returnType);\n          break;\n        }\n      }\n    }\n    return links.decoratorSignature === anySignature ? void 0 : links.decoratorSignature;\n  }\n  function getLegacyDecoratorCallSignature(decorator) {\n    const { parent: parent2 } = decorator;\n    const links = getNodeLinks(parent2);\n    if (!links.decoratorSignature) {\n      links.decoratorSignature = anySignature;\n      switch (parent2.kind) {\n        case 264 /* ClassDeclaration */:\n        case 232 /* ClassExpression */: {\n          const node = parent2;\n          const targetType = getTypeOfSymbol(getSymbolOfDeclaration(node));\n          const targetParam = createParameter2(\"target\", targetType);\n          links.decoratorSignature = createCallSignature(\n            /*typeParameters*/\n            void 0,\n            /*thisParameter*/\n            void 0,\n            [targetParam],\n            getUnionType([targetType, voidType])\n          );\n          break;\n        }\n        case 170 /* Parameter */: {\n          const node = parent2;\n          if (!isConstructorDeclaration(node.parent) && !(isMethodDeclaration(node.parent) || isSetAccessorDeclaration(node.parent) && isClassLike(node.parent.parent))) {\n            break;\n          }\n          if (getThisParameter(node.parent) === node) {\n            break;\n          }\n          const index = getThisParameter(node.parent) ? node.parent.parameters.indexOf(node) - 1 : node.parent.parameters.indexOf(node);\n          Debug.assert(index >= 0);\n          const targetType = isConstructorDeclaration(node.parent) ? getTypeOfSymbol(getSymbolOfDeclaration(node.parent.parent)) : getParentTypeOfClassElement(node.parent);\n          const keyType = isConstructorDeclaration(node.parent) ? undefinedType : getClassElementPropertyKeyType(node.parent);\n          const indexType = getNumberLiteralType(index);\n          const targetParam = createParameter2(\"target\", targetType);\n          const keyParam = createParameter2(\"propertyKey\", keyType);\n          const indexParam = createParameter2(\"parameterIndex\", indexType);\n          links.decoratorSignature = createCallSignature(\n            /*typeParameters*/\n            void 0,\n            /*thisParameter*/\n            void 0,\n            [targetParam, keyParam, indexParam],\n            voidType\n          );\n          break;\n        }\n        case 175 /* MethodDeclaration */:\n        case 178 /* GetAccessor */:\n        case 179 /* SetAccessor */:\n        case 173 /* PropertyDeclaration */: {\n          const node = parent2;\n          if (!isClassLike(node.parent)) break;\n          const targetType = getParentTypeOfClassElement(node);\n          const targetParam = createParameter2(\"target\", targetType);\n          const keyType = getClassElementPropertyKeyType(node);\n          const keyParam = createParameter2(\"propertyKey\", keyType);\n          const returnType = isPropertyDeclaration(node) ? voidType : createTypedPropertyDescriptorType(getTypeOfNode(node));\n          const hasPropDesc = !isPropertyDeclaration(parent2) || hasAccessorModifier(parent2);\n          if (hasPropDesc) {\n            const descriptorType = createTypedPropertyDescriptorType(getTypeOfNode(node));\n            const descriptorParam = createParameter2(\"descriptor\", descriptorType);\n            links.decoratorSignature = createCallSignature(\n              /*typeParameters*/\n              void 0,\n              /*thisParameter*/\n              void 0,\n              [targetParam, keyParam, descriptorParam],\n              getUnionType([returnType, voidType])\n            );\n          } else {\n            links.decoratorSignature = createCallSignature(\n              /*typeParameters*/\n              void 0,\n              /*thisParameter*/\n              void 0,\n              [targetParam, keyParam],\n              getUnionType([returnType, voidType])\n            );\n          }\n          break;\n        }\n      }\n    }\n    return links.decoratorSignature === anySignature ? void 0 : links.decoratorSignature;\n  }\n  function getDecoratorCallSignature(decorator) {\n    return legacyDecorators ? getLegacyDecoratorCallSignature(decorator) : getESDecoratorCallSignature(decorator);\n  }\n  function createPromiseType(promisedType) {\n    const globalPromiseType = getGlobalPromiseType(\n      /*reportErrors*/\n      true\n    );\n    if (globalPromiseType !== emptyGenericType) {\n      promisedType = getAwaitedTypeNoAlias(unwrapAwaitedType(promisedType)) || unknownType;\n      return createTypeReference(globalPromiseType, [promisedType]);\n    }\n    return unknownType;\n  }\n  function createPromiseLikeType(promisedType) {\n    const globalPromiseLikeType = getGlobalPromiseLikeType(\n      /*reportErrors*/\n      true\n    );\n    if (globalPromiseLikeType !== emptyGenericType) {\n      promisedType = getAwaitedTypeNoAlias(unwrapAwaitedType(promisedType)) || unknownType;\n      return createTypeReference(globalPromiseLikeType, [promisedType]);\n    }\n    return unknownType;\n  }\n  function createPromiseReturnType(func, promisedType) {\n    const promiseType = createPromiseType(promisedType);\n    if (promiseType === unknownType) {\n      error2(\n        func,\n        isImportCall(func) ? Diagnostics.A_dynamic_import_call_returns_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES2015_in_your_lib_option : Diagnostics.An_async_function_or_method_must_return_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES2015_in_your_lib_option\n      );\n      return errorType;\n    } else if (!getGlobalPromiseConstructorSymbol(\n      /*reportErrors*/\n      true\n    )) {\n      error2(\n        func,\n        isImportCall(func) ? Diagnostics.A_dynamic_import_call_in_ES5_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option : Diagnostics.An_async_function_or_method_in_ES5_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option\n      );\n    }\n    return promiseType;\n  }\n  function createNewTargetExpressionType(targetType) {\n    const symbol = createSymbol(0 /* None */, \"NewTargetExpression\");\n    const targetPropertySymbol = createSymbol(4 /* Property */, \"target\", 8 /* Readonly */);\n    targetPropertySymbol.parent = symbol;\n    targetPropertySymbol.links.type = targetType;\n    const members = createSymbolTable([targetPropertySymbol]);\n    symbol.members = members;\n    return createAnonymousType(symbol, members, emptyArray, emptyArray, emptyArray);\n  }\n  function getReturnTypeFromBody(func, checkMode) {\n    if (!func.body) {\n      return errorType;\n    }\n    const functionFlags = getFunctionFlags(func);\n    const isAsync = (functionFlags & 2 /* Async */) !== 0;\n    const isGenerator = (functionFlags & 1 /* Generator */) !== 0;\n    let returnType;\n    let yieldType;\n    let nextType;\n    let fallbackReturnType = voidType;\n    if (func.body.kind !== 242 /* Block */) {\n      returnType = checkExpressionCached(func.body, checkMode && checkMode & ~8 /* SkipGenericFunctions */);\n      if (isAsync) {\n        returnType = unwrapAwaitedType(checkAwaitedType(\n          returnType,\n          /*withAlias*/\n          false,\n          /*errorNode*/\n          func,\n          Diagnostics.The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member\n        ));\n      }\n    } else if (isGenerator) {\n      const returnTypes = checkAndAggregateReturnExpressionTypes(func, checkMode);\n      if (!returnTypes) {\n        fallbackReturnType = neverType;\n      } else if (returnTypes.length > 0) {\n        returnType = getUnionType(returnTypes, 2 /* Subtype */);\n      }\n      const { yieldTypes, nextTypes } = checkAndAggregateYieldOperandTypes(func, checkMode);\n      yieldType = some(yieldTypes) ? getUnionType(yieldTypes, 2 /* Subtype */) : void 0;\n      nextType = some(nextTypes) ? getIntersectionType(nextTypes) : void 0;\n    } else {\n      const types = checkAndAggregateReturnExpressionTypes(func, checkMode);\n      if (!types) {\n        return functionFlags & 2 /* Async */ ? createPromiseReturnType(func, neverType) : neverType;\n      }\n      if (types.length === 0) {\n        const contextualReturnType = getContextualReturnType(\n          func,\n          /*contextFlags*/\n          void 0\n        );\n        const returnType2 = contextualReturnType && (unwrapReturnType(contextualReturnType, functionFlags) || voidType).flags & 32768 /* Undefined */ ? undefinedType : voidType;\n        return functionFlags & 2 /* Async */ ? createPromiseReturnType(func, returnType2) : (\n          // Async function\n          returnType2\n        );\n      }\n      returnType = getUnionType(types, 2 /* Subtype */);\n    }\n    if (returnType || yieldType || nextType) {\n      if (yieldType) reportErrorsFromWidening(func, yieldType, 3 /* GeneratorYield */);\n      if (returnType) reportErrorsFromWidening(func, returnType, 1 /* FunctionReturn */);\n      if (nextType) reportErrorsFromWidening(func, nextType, 2 /* GeneratorNext */);\n      if (returnType && isUnitType(returnType) || yieldType && isUnitType(yieldType) || nextType && isUnitType(nextType)) {\n        const contextualSignature = getContextualSignatureForFunctionLikeDeclaration(func);\n        const contextualType = !contextualSignature ? void 0 : contextualSignature === getSignatureFromDeclaration(func) ? isGenerator ? void 0 : returnType : instantiateContextualType(\n          getReturnTypeOfSignature(contextualSignature),\n          func,\n          /*contextFlags*/\n          void 0\n        );\n        if (isGenerator) {\n          yieldType = getWidenedLiteralLikeTypeForContextualIterationTypeIfNeeded(yieldType, contextualType, 0 /* Yield */, isAsync);\n          returnType = getWidenedLiteralLikeTypeForContextualIterationTypeIfNeeded(returnType, contextualType, 1 /* Return */, isAsync);\n          nextType = getWidenedLiteralLikeTypeForContextualIterationTypeIfNeeded(nextType, contextualType, 2 /* Next */, isAsync);\n        } else {\n          returnType = getWidenedLiteralLikeTypeForContextualReturnTypeIfNeeded(returnType, contextualType, isAsync);\n        }\n      }\n      if (yieldType) yieldType = getWidenedType(yieldType);\n      if (returnType) returnType = getWidenedType(returnType);\n      if (nextType) nextType = getWidenedType(nextType);\n    }\n    if (isGenerator) {\n      return createGeneratorType(\n        yieldType || neverType,\n        returnType || fallbackReturnType,\n        nextType || getContextualIterationType(2 /* Next */, func) || unknownType,\n        isAsync\n      );\n    } else {\n      return isAsync ? createPromiseType(returnType || fallbackReturnType) : returnType || fallbackReturnType;\n    }\n  }\n  function createGeneratorType(yieldType, returnType, nextType, isAsyncGenerator) {\n    const resolver = isAsyncGenerator ? asyncIterationTypesResolver : syncIterationTypesResolver;\n    const globalGeneratorType = resolver.getGlobalGeneratorType(\n      /*reportErrors*/\n      false\n    );\n    yieldType = resolver.resolveIterationType(\n      yieldType,\n      /*errorNode*/\n      void 0\n    ) || unknownType;\n    returnType = resolver.resolveIterationType(\n      returnType,\n      /*errorNode*/\n      void 0\n    ) || unknownType;\n    if (globalGeneratorType === emptyGenericType) {\n      const globalIterableIteratorType = resolver.getGlobalIterableIteratorType(\n        /*reportErrors*/\n        false\n      );\n      if (globalIterableIteratorType !== emptyGenericType) {\n        return createTypeFromGenericGlobalType(globalIterableIteratorType, [yieldType, returnType, nextType]);\n      }\n      resolver.getGlobalIterableIteratorType(\n        /*reportErrors*/\n        true\n      );\n      return emptyObjectType;\n    }\n    return createTypeFromGenericGlobalType(globalGeneratorType, [yieldType, returnType, nextType]);\n  }\n  function checkAndAggregateYieldOperandTypes(func, checkMode) {\n    const yieldTypes = [];\n    const nextTypes = [];\n    const isAsync = (getFunctionFlags(func) & 2 /* Async */) !== 0;\n    forEachYieldExpression(func.body, (yieldExpression) => {\n      const yieldExpressionType = yieldExpression.expression ? checkExpression(yieldExpression.expression, checkMode) : undefinedWideningType;\n      pushIfUnique(yieldTypes, getYieldedTypeOfYieldExpression(yieldExpression, yieldExpressionType, anyType, isAsync));\n      let nextType;\n      if (yieldExpression.asteriskToken) {\n        const iterationTypes = getIterationTypesOfIterable(\n          yieldExpressionType,\n          isAsync ? 19 /* AsyncYieldStar */ : 17 /* YieldStar */,\n          yieldExpression.expression\n        );\n        nextType = iterationTypes && iterationTypes.nextType;\n      } else {\n        nextType = getContextualType2(\n          yieldExpression,\n          /*contextFlags*/\n          void 0\n        );\n      }\n      if (nextType) pushIfUnique(nextTypes, nextType);\n    });\n    return { yieldTypes, nextTypes };\n  }\n  function getYieldedTypeOfYieldExpression(node, expressionType, sentType, isAsync) {\n    if (expressionType === silentNeverType) {\n      return silentNeverType;\n    }\n    const errorNode = node.expression || node;\n    const yieldedType = node.asteriskToken ? checkIteratedTypeOrElementType(isAsync ? 19 /* AsyncYieldStar */ : 17 /* YieldStar */, expressionType, sentType, errorNode) : expressionType;\n    return !isAsync ? yieldedType : getAwaitedType(\n      yieldedType,\n      errorNode,\n      node.asteriskToken ? Diagnostics.Type_of_iterated_elements_of_a_yield_Asterisk_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member : Diagnostics.Type_of_yield_operand_in_an_async_generator_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member\n    );\n  }\n  function getNotEqualFactsFromTypeofSwitch(start, end, witnesses) {\n    let facts = 0 /* None */;\n    for (let i = 0; i < witnesses.length; i++) {\n      const witness = i < start || i >= end ? witnesses[i] : void 0;\n      facts |= witness !== void 0 ? typeofNEFacts.get(witness) || 32768 /* TypeofNEHostObject */ : 0;\n    }\n    return facts;\n  }\n  function isExhaustiveSwitchStatement(node) {\n    const links = getNodeLinks(node);\n    if (links.isExhaustive === void 0) {\n      links.isExhaustive = 0;\n      const exhaustive = computeExhaustiveSwitchStatement(node);\n      if (links.isExhaustive === 0) {\n        links.isExhaustive = exhaustive;\n      }\n    } else if (links.isExhaustive === 0) {\n      links.isExhaustive = false;\n    }\n    return links.isExhaustive;\n  }\n  function computeExhaustiveSwitchStatement(node) {\n    if (node.expression.kind === 222 /* TypeOfExpression */) {\n      const witnesses = getSwitchClauseTypeOfWitnesses(node);\n      if (!witnesses) {\n        return false;\n      }\n      const operandConstraint = getBaseConstraintOrType(checkExpressionCached(node.expression.expression));\n      const notEqualFacts = getNotEqualFactsFromTypeofSwitch(0, 0, witnesses);\n      if (operandConstraint.flags & 3 /* AnyOrUnknown */) {\n        return (556800 /* AllTypeofNE */ & notEqualFacts) === 556800 /* AllTypeofNE */;\n      }\n      return !someType(operandConstraint, (t) => getTypeFacts(t, notEqualFacts) === notEqualFacts);\n    }\n    const type = getBaseConstraintOrType(checkExpressionCached(node.expression));\n    if (!isLiteralType(type)) {\n      return false;\n    }\n    const switchTypes = getSwitchClauseTypes(node);\n    if (!switchTypes.length || some(switchTypes, isNeitherUnitTypeNorNever)) {\n      return false;\n    }\n    return eachTypeContainedIn(mapType(type, getRegularTypeOfLiteralType), switchTypes);\n  }\n  function functionHasImplicitReturn(func) {\n    return func.endFlowNode && isReachableFlowNode(func.endFlowNode);\n  }\n  function checkAndAggregateReturnExpressionTypes(func, checkMode) {\n    const functionFlags = getFunctionFlags(func);\n    const aggregatedTypes = [];\n    let hasReturnWithNoExpression = functionHasImplicitReturn(func);\n    let hasReturnOfTypeNever = false;\n    forEachReturnStatement(func.body, (returnStatement) => {\n      let expr = returnStatement.expression;\n      if (expr) {\n        expr = skipParentheses(\n          expr,\n          /*excludeJSDocTypeAssertions*/\n          true\n        );\n        if (functionFlags & 2 /* Async */ && expr.kind === 224 /* AwaitExpression */) {\n          expr = skipParentheses(\n            expr.expression,\n            /*excludeJSDocTypeAssertions*/\n            true\n          );\n        }\n        if (expr.kind === 214 /* CallExpression */ && expr.expression.kind === 80 /* Identifier */ && checkExpressionCached(expr.expression).symbol === getMergedSymbol(func.symbol) && (!isFunctionExpressionOrArrowFunction(func.symbol.valueDeclaration) || isConstantReference(expr.expression))) {\n          hasReturnOfTypeNever = true;\n          return;\n        }\n        let type = checkExpressionCached(expr, checkMode && checkMode & ~8 /* SkipGenericFunctions */);\n        if (functionFlags & 2 /* Async */) {\n          type = unwrapAwaitedType(checkAwaitedType(\n            type,\n            /*withAlias*/\n            false,\n            func,\n            Diagnostics.The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member\n          ));\n        }\n        if (type.flags & 131072 /* Never */) {\n          hasReturnOfTypeNever = true;\n        }\n        pushIfUnique(aggregatedTypes, type);\n      } else {\n        hasReturnWithNoExpression = true;\n      }\n    });\n    if (aggregatedTypes.length === 0 && !hasReturnWithNoExpression && (hasReturnOfTypeNever || mayReturnNever(func))) {\n      return void 0;\n    }\n    if (strictNullChecks && aggregatedTypes.length && hasReturnWithNoExpression && !(isJSConstructor(func) && aggregatedTypes.some((t) => t.symbol === func.symbol))) {\n      pushIfUnique(aggregatedTypes, undefinedType);\n    }\n    return aggregatedTypes;\n  }\n  function mayReturnNever(func) {\n    switch (func.kind) {\n      case 219 /* FunctionExpression */:\n      case 220 /* ArrowFunction */:\n        return true;\n      case 175 /* MethodDeclaration */:\n        return func.parent.kind === 211 /* ObjectLiteralExpression */;\n      default:\n        return false;\n    }\n  }\n  function getTypePredicateFromBody(func) {\n    switch (func.kind) {\n      case 177 /* Constructor */:\n      case 178 /* GetAccessor */:\n      case 179 /* SetAccessor */:\n        return void 0;\n    }\n    const functionFlags = getFunctionFlags(func);\n    if (functionFlags !== 0 /* Normal */) return void 0;\n    let singleReturn;\n    if (func.body && func.body.kind !== 242 /* Block */) {\n      singleReturn = func.body;\n    } else {\n      const bailedEarly = forEachReturnStatement(func.body, (returnStatement) => {\n        if (singleReturn || !returnStatement.expression) return true;\n        singleReturn = returnStatement.expression;\n      });\n      if (bailedEarly || !singleReturn || functionHasImplicitReturn(func)) return void 0;\n    }\n    return checkIfExpressionRefinesAnyParameter(func, singleReturn);\n  }\n  function checkIfExpressionRefinesAnyParameter(func, expr) {\n    expr = skipParentheses(\n      expr,\n      /*excludeJSDocTypeAssertions*/\n      true\n    );\n    const returnType = checkExpressionCached(expr);\n    if (!(returnType.flags & 16 /* Boolean */)) return void 0;\n    return forEach(func.parameters, (param, i) => {\n      const initType = getTypeOfSymbol(param.symbol);\n      if (!initType || initType.flags & 16 /* Boolean */ || !isIdentifier(param.name) || isSymbolAssigned(param.symbol) || isRestParameter(param)) {\n        return;\n      }\n      const trueType2 = checkIfExpressionRefinesParameter(func, expr, param, initType);\n      if (trueType2) {\n        return createTypePredicate(1 /* Identifier */, unescapeLeadingUnderscores(param.name.escapedText), i, trueType2);\n      }\n    });\n  }\n  function checkIfExpressionRefinesParameter(func, expr, param, initType) {\n    const antecedent = canHaveFlowNode(expr) && expr.flowNode || expr.parent.kind === 254 /* ReturnStatement */ && expr.parent.flowNode || createFlowNode(\n      2 /* Start */,\n      /*node*/\n      void 0,\n      /*antecedent*/\n      void 0\n    );\n    const trueCondition = createFlowNode(32 /* TrueCondition */, expr, antecedent);\n    const trueType2 = getFlowTypeOfReference(param.name, initType, initType, func, trueCondition);\n    if (trueType2 === initType) return void 0;\n    const falseCondition = createFlowNode(64 /* FalseCondition */, expr, antecedent);\n    const falseSubtype = getReducedType(getFlowTypeOfReference(param.name, initType, trueType2, func, falseCondition));\n    return falseSubtype.flags & 131072 /* Never */ ? trueType2 : void 0;\n  }\n  function checkAllCodePathsInNonVoidFunctionReturnOrThrow(func, returnType) {\n    addLazyDiagnostic(checkAllCodePathsInNonVoidFunctionReturnOrThrowDiagnostics);\n    return;\n    function checkAllCodePathsInNonVoidFunctionReturnOrThrowDiagnostics() {\n      const functionFlags = getFunctionFlags(func);\n      const type = returnType && unwrapReturnType(returnType, functionFlags);\n      if (type && (maybeTypeOfKind(type, 16384 /* Void */) || type.flags & (1 /* Any */ | 32768 /* Undefined */))) {\n        return;\n      }\n      if (func.kind === 174 /* MethodSignature */ || nodeIsMissing(func.body) || func.body.kind !== 242 /* Block */ || !functionHasImplicitReturn(func)) {\n        return;\n      }\n      const hasExplicitReturn = func.flags & 1024 /* HasExplicitReturn */;\n      const errorNode = getEffectiveReturnTypeNode(func) || func;\n      if (type && type.flags & 131072 /* Never */) {\n        error2(errorNode, Diagnostics.A_function_returning_never_cannot_have_a_reachable_end_point);\n      } else if (type && !hasExplicitReturn) {\n        error2(errorNode, Diagnostics.A_function_whose_declared_type_is_neither_undefined_void_nor_any_must_return_a_value);\n      } else if (type && strictNullChecks && !isTypeAssignableTo(undefinedType, type)) {\n        error2(errorNode, Diagnostics.Function_lacks_ending_return_statement_and_return_type_does_not_include_undefined);\n      } else if (compilerOptions.noImplicitReturns) {\n        if (!type) {\n          if (!hasExplicitReturn) {\n            return;\n          }\n          const inferredReturnType = getReturnTypeOfSignature(getSignatureFromDeclaration(func));\n          if (isUnwrappedReturnTypeUndefinedVoidOrAny(func, inferredReturnType)) {\n            return;\n          }\n        }\n        error2(errorNode, Diagnostics.Not_all_code_paths_return_a_value);\n      }\n    }\n  }\n  function checkFunctionExpressionOrObjectLiteralMethod(node, checkMode) {\n    Debug.assert(node.kind !== 175 /* MethodDeclaration */ || isObjectLiteralMethod(node));\n    checkNodeDeferred(node);\n    if (isFunctionExpression(node)) {\n      checkCollisionsForDeclarationName(node, node.name);\n    }\n    if (checkMode && checkMode & 4 /* SkipContextSensitive */ && isContextSensitive(node)) {\n      if (!getEffectiveReturnTypeNode(node) && !hasContextSensitiveParameters(node)) {\n        const contextualSignature = getContextualSignature(node);\n        if (contextualSignature && couldContainTypeVariables(getReturnTypeOfSignature(contextualSignature))) {\n          const links = getNodeLinks(node);\n          if (links.contextFreeType) {\n            return links.contextFreeType;\n          }\n          const returnType = getReturnTypeFromBody(node, checkMode);\n          const returnOnlySignature = createSignature(\n            /*declaration*/\n            void 0,\n            /*typeParameters*/\n            void 0,\n            /*thisParameter*/\n            void 0,\n            emptyArray,\n            returnType,\n            /*resolvedTypePredicate*/\n            void 0,\n            0,\n            64 /* IsNonInferrable */\n          );\n          const returnOnlyType = createAnonymousType(node.symbol, emptySymbols, [returnOnlySignature], emptyArray, emptyArray);\n          returnOnlyType.objectFlags |= 262144 /* NonInferrableType */;\n          return links.contextFreeType = returnOnlyType;\n        }\n      }\n      return anyFunctionType;\n    }\n    const hasGrammarError = checkGrammarFunctionLikeDeclaration(node);\n    if (!hasGrammarError && node.kind === 219 /* FunctionExpression */) {\n      checkGrammarForGenerator(node);\n    }\n    contextuallyCheckFunctionExpressionOrObjectLiteralMethod(node, checkMode);\n    return getTypeOfSymbol(getSymbolOfDeclaration(node));\n  }\n  function contextuallyCheckFunctionExpressionOrObjectLiteralMethod(node, checkMode) {\n    const links = getNodeLinks(node);\n    if (!(links.flags & 64 /* ContextChecked */)) {\n      const contextualSignature = getContextualSignature(node);\n      if (!(links.flags & 64 /* ContextChecked */)) {\n        links.flags |= 64 /* ContextChecked */;\n        const signature = firstOrUndefined(getSignaturesOfType(getTypeOfSymbol(getSymbolOfDeclaration(node)), 0 /* Call */));\n        if (!signature) {\n          return;\n        }\n        if (isContextSensitive(node)) {\n          if (contextualSignature) {\n            const inferenceContext = getInferenceContext(node);\n            let instantiatedContextualSignature;\n            if (checkMode && checkMode & 2 /* Inferential */) {\n              inferFromAnnotatedParametersAndReturn(signature, contextualSignature, inferenceContext);\n              const restType = getEffectiveRestType(contextualSignature);\n              if (restType && restType.flags & 262144 /* TypeParameter */) {\n                instantiatedContextualSignature = instantiateSignature(contextualSignature, inferenceContext.nonFixingMapper);\n              }\n            }\n            instantiatedContextualSignature || (instantiatedContextualSignature = inferenceContext ? instantiateSignature(contextualSignature, inferenceContext.mapper) : contextualSignature);\n            assignContextualParameterTypes(signature, instantiatedContextualSignature);\n          } else {\n            assignNonContextualParameterTypes(signature);\n          }\n        } else if (contextualSignature && !node.typeParameters && contextualSignature.parameters.length > node.parameters.length) {\n          const inferenceContext = getInferenceContext(node);\n          if (checkMode && checkMode & 2 /* Inferential */) {\n            inferFromAnnotatedParametersAndReturn(signature, contextualSignature, inferenceContext);\n          }\n        }\n        if (contextualSignature && !getReturnTypeFromAnnotation(node) && !signature.resolvedReturnType) {\n          const returnType = getReturnTypeFromBody(node, checkMode);\n          if (!signature.resolvedReturnType) {\n            signature.resolvedReturnType = returnType;\n          }\n        }\n        checkSignatureDeclaration(node);\n      }\n    }\n  }\n  function checkFunctionExpressionOrObjectLiteralMethodDeferred(node) {\n    Debug.assert(node.kind !== 175 /* MethodDeclaration */ || isObjectLiteralMethod(node));\n    const functionFlags = getFunctionFlags(node);\n    const returnType = getReturnTypeFromAnnotation(node);\n    checkAllCodePathsInNonVoidFunctionReturnOrThrow(node, returnType);\n    if (node.body) {\n      if (!getEffectiveReturnTypeNode(node)) {\n        getReturnTypeOfSignature(getSignatureFromDeclaration(node));\n      }\n      if (node.body.kind === 242 /* Block */) {\n        checkSourceElement(node.body);\n      } else {\n        const exprType = checkExpression(node.body);\n        const returnOrPromisedType = returnType && unwrapReturnType(returnType, functionFlags);\n        if (returnOrPromisedType) {\n          checkReturnExpression(node, returnOrPromisedType, node.body, node.body, exprType);\n        }\n      }\n    }\n  }\n  function checkArithmeticOperandType(operand, type, diagnostic, isAwaitValid = false) {\n    if (!isTypeAssignableTo(type, numberOrBigIntType)) {\n      const awaitedType = isAwaitValid && getAwaitedTypeOfPromise(type);\n      errorAndMaybeSuggestAwait(\n        operand,\n        !!awaitedType && isTypeAssignableTo(awaitedType, numberOrBigIntType),\n        diagnostic\n      );\n      return false;\n    }\n    return true;\n  }\n  function isReadonlyAssignmentDeclaration(d) {\n    if (!isCallExpression(d)) {\n      return false;\n    }\n    if (!isBindableObjectDefinePropertyCall(d)) {\n      return false;\n    }\n    const objectLitType = checkExpressionCached(d.arguments[2]);\n    const valueType = getTypeOfPropertyOfType(objectLitType, \"value\");\n    if (valueType) {\n      const writableProp = getPropertyOfType(objectLitType, \"writable\");\n      const writableType = writableProp && getTypeOfSymbol(writableProp);\n      if (!writableType || writableType === falseType || writableType === regularFalseType) {\n        return true;\n      }\n      if (writableProp && writableProp.valueDeclaration && isPropertyAssignment(writableProp.valueDeclaration)) {\n        const initializer = writableProp.valueDeclaration.initializer;\n        const rawOriginalType = checkExpression(initializer);\n        if (rawOriginalType === falseType || rawOriginalType === regularFalseType) {\n          return true;\n        }\n      }\n      return false;\n    }\n    const setProp = getPropertyOfType(objectLitType, \"set\");\n    return !setProp;\n  }\n  function isReadonlySymbol(symbol) {\n    return !!(getCheckFlags(symbol) & 8 /* Readonly */ || symbol.flags & 4 /* Property */ && getDeclarationModifierFlagsFromSymbol(symbol) & 8 /* Readonly */ || symbol.flags & 3 /* Variable */ && getDeclarationNodeFlagsFromSymbol(symbol) & 6 /* Constant */ || symbol.flags & 98304 /* Accessor */ && !(symbol.flags & 65536 /* SetAccessor */) || symbol.flags & 8 /* EnumMember */ || some(symbol.declarations, isReadonlyAssignmentDeclaration));\n  }\n  function isAssignmentToReadonlyEntity(expr, symbol, assignmentKind) {\n    var _a, _b;\n    if (assignmentKind === 0 /* None */) {\n      return false;\n    }\n    if (isReadonlySymbol(symbol)) {\n      if (symbol.flags & 4 /* Property */ && isAccessExpression(expr) && expr.expression.kind === 110 /* ThisKeyword */) {\n        const ctor = getControlFlowContainer(expr);\n        if (!(ctor && (ctor.kind === 177 /* Constructor */ || isJSConstructor(ctor)))) {\n          return true;\n        }\n        if (symbol.valueDeclaration) {\n          const isAssignmentDeclaration2 = isBinaryExpression(symbol.valueDeclaration);\n          const isLocalPropertyDeclaration = ctor.parent === symbol.valueDeclaration.parent;\n          const isLocalParameterProperty = ctor === symbol.valueDeclaration.parent;\n          const isLocalThisPropertyAssignment = isAssignmentDeclaration2 && ((_a = symbol.parent) == null ? void 0 : _a.valueDeclaration) === ctor.parent;\n          const isLocalThisPropertyAssignmentConstructorFunction = isAssignmentDeclaration2 && ((_b = symbol.parent) == null ? void 0 : _b.valueDeclaration) === ctor;\n          const isWriteableSymbol = isLocalPropertyDeclaration || isLocalParameterProperty || isLocalThisPropertyAssignment || isLocalThisPropertyAssignmentConstructorFunction;\n          return !isWriteableSymbol;\n        }\n      }\n      return true;\n    }\n    if (isAccessExpression(expr)) {\n      const node = skipParentheses(expr.expression);\n      if (node.kind === 80 /* Identifier */) {\n        const symbol2 = getNodeLinks(node).resolvedSymbol;\n        if (symbol2.flags & 2097152 /* Alias */) {\n          const declaration = getDeclarationOfAliasSymbol(symbol2);\n          return !!declaration && declaration.kind === 275 /* NamespaceImport */;\n        }\n      }\n    }\n    return false;\n  }\n  function checkReferenceExpression(expr, invalidReferenceMessage, invalidOptionalChainMessage) {\n    const node = skipOuterExpressions(expr, 38 /* Assertions */ | 1 /* Parentheses */);\n    if (node.kind !== 80 /* Identifier */ && !isAccessExpression(node)) {\n      error2(expr, invalidReferenceMessage);\n      return false;\n    }\n    if (node.flags & 64 /* OptionalChain */) {\n      error2(expr, invalidOptionalChainMessage);\n      return false;\n    }\n    return true;\n  }\n  function checkDeleteExpression(node) {\n    checkExpression(node.expression);\n    const expr = skipParentheses(node.expression);\n    if (!isAccessExpression(expr)) {\n      error2(expr, Diagnostics.The_operand_of_a_delete_operator_must_be_a_property_reference);\n      return booleanType;\n    }\n    if (isPropertyAccessExpression(expr) && isPrivateIdentifier(expr.name)) {\n      error2(expr, Diagnostics.The_operand_of_a_delete_operator_cannot_be_a_private_identifier);\n    }\n    const links = getNodeLinks(expr);\n    const symbol = getExportSymbolOfValueSymbolIfExported(links.resolvedSymbol);\n    if (symbol) {\n      if (isReadonlySymbol(symbol)) {\n        error2(expr, Diagnostics.The_operand_of_a_delete_operator_cannot_be_a_read_only_property);\n      } else {\n        checkDeleteExpressionMustBeOptional(expr, symbol);\n      }\n    }\n    return booleanType;\n  }\n  function checkDeleteExpressionMustBeOptional(expr, symbol) {\n    const type = getTypeOfSymbol(symbol);\n    if (strictNullChecks && !(type.flags & (3 /* AnyOrUnknown */ | 131072 /* Never */)) && !(exactOptionalPropertyTypes ? symbol.flags & 16777216 /* Optional */ : hasTypeFacts(type, 16777216 /* IsUndefined */))) {\n      error2(expr, Diagnostics.The_operand_of_a_delete_operator_must_be_optional);\n    }\n  }\n  function checkTypeOfExpression(node) {\n    checkExpression(node.expression);\n    return typeofType;\n  }\n  function checkVoidExpression(node) {\n    checkNodeDeferred(node);\n    return undefinedWideningType;\n  }\n  function checkAwaitGrammar(node) {\n    let hasError = false;\n    const container = getContainingFunctionOrClassStaticBlock(node);\n    if (container && isClassStaticBlockDeclaration(container)) {\n      const message = isAwaitExpression(node) ? Diagnostics.await_expression_cannot_be_used_inside_a_class_static_block : Diagnostics.await_using_statements_cannot_be_used_inside_a_class_static_block;\n      error2(node, message);\n      hasError = true;\n    } else if (!(node.flags & 65536 /* AwaitContext */)) {\n      if (isInTopLevelContext(node)) {\n        const sourceFile = getSourceFileOfNode(node);\n        if (!hasParseDiagnostics(sourceFile)) {\n          let span;\n          if (!isEffectiveExternalModule(sourceFile, compilerOptions)) {\n            span ?? (span = getSpanOfTokenAtPosition(sourceFile, node.pos));\n            const message = isAwaitExpression(node) ? Diagnostics.await_expressions_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module : Diagnostics.await_using_statements_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module;\n            const diagnostic = createFileDiagnostic(sourceFile, span.start, span.length, message);\n            diagnostics.add(diagnostic);\n            hasError = true;\n          }\n          switch (moduleKind) {\n            case 100 /* Node16 */:\n            case 101 /* Node18 */:\n            case 102 /* Node20 */:\n            case 199 /* NodeNext */:\n              if (sourceFile.impliedNodeFormat === 1 /* CommonJS */) {\n                span ?? (span = getSpanOfTokenAtPosition(sourceFile, node.pos));\n                diagnostics.add(\n                  createFileDiagnostic(sourceFile, span.start, span.length, Diagnostics.The_current_file_is_a_CommonJS_module_and_cannot_use_await_at_the_top_level)\n                );\n                hasError = true;\n                break;\n              }\n            // fallthrough\n            case 7 /* ES2022 */:\n            case 99 /* ESNext */:\n            case 200 /* Preserve */:\n            case 4 /* System */:\n              if (languageVersion >= 4 /* ES2017 */) {\n                break;\n              }\n            // fallthrough\n            default:\n              span ?? (span = getSpanOfTokenAtPosition(sourceFile, node.pos));\n              const message = isAwaitExpression(node) ? Diagnostics.Top_level_await_expressions_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_node18_node20_nodenext_or_preserve_and_the_target_option_is_set_to_es2017_or_higher : Diagnostics.Top_level_await_using_statements_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_node18_node20_nodenext_or_preserve_and_the_target_option_is_set_to_es2017_or_higher;\n              diagnostics.add(createFileDiagnostic(sourceFile, span.start, span.length, message));\n              hasError = true;\n              break;\n          }\n        }\n      } else {\n        const sourceFile = getSourceFileOfNode(node);\n        if (!hasParseDiagnostics(sourceFile)) {\n          const span = getSpanOfTokenAtPosition(sourceFile, node.pos);\n          const message = isAwaitExpression(node) ? Diagnostics.await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules : Diagnostics.await_using_statements_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules;\n          const diagnostic = createFileDiagnostic(sourceFile, span.start, span.length, message);\n          if (container && container.kind !== 177 /* Constructor */ && (getFunctionFlags(container) & 2 /* Async */) === 0) {\n            const relatedInfo = createDiagnosticForNode(container, Diagnostics.Did_you_mean_to_mark_this_function_as_async);\n            addRelatedInfo(diagnostic, relatedInfo);\n          }\n          diagnostics.add(diagnostic);\n          hasError = true;\n        }\n      }\n    }\n    if (isAwaitExpression(node) && isInParameterInitializerBeforeContainingFunction(node)) {\n      error2(node, Diagnostics.await_expressions_cannot_be_used_in_a_parameter_initializer);\n      hasError = true;\n    }\n    return hasError;\n  }\n  function checkAwaitExpression(node) {\n    addLazyDiagnostic(() => checkAwaitGrammar(node));\n    const operandType = checkExpression(node.expression);\n    const awaitedType = checkAwaitedType(\n      operandType,\n      /*withAlias*/\n      true,\n      node,\n      Diagnostics.Type_of_await_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member\n    );\n    if (awaitedType === operandType && !isErrorType(awaitedType) && !(operandType.flags & 3 /* AnyOrUnknown */)) {\n      addErrorOrSuggestion(\n        /*isError*/\n        false,\n        createDiagnosticForNode(node, Diagnostics.await_has_no_effect_on_the_type_of_this_expression)\n      );\n    }\n    return awaitedType;\n  }\n  function checkPrefixUnaryExpression(node) {\n    const operandType = checkExpression(node.operand);\n    if (operandType === silentNeverType) {\n      return silentNeverType;\n    }\n    switch (node.operand.kind) {\n      case 9 /* NumericLiteral */:\n        switch (node.operator) {\n          case 41 /* MinusToken */:\n            return getFreshTypeOfLiteralType(getNumberLiteralType(-node.operand.text));\n          case 40 /* PlusToken */:\n            return getFreshTypeOfLiteralType(getNumberLiteralType(+node.operand.text));\n        }\n        break;\n      case 10 /* BigIntLiteral */:\n        if (node.operator === 41 /* MinusToken */) {\n          return getFreshTypeOfLiteralType(getBigIntLiteralType({\n            negative: true,\n            base10Value: parsePseudoBigInt(node.operand.text)\n          }));\n        }\n    }\n    switch (node.operator) {\n      case 40 /* PlusToken */:\n      case 41 /* MinusToken */:\n      case 55 /* TildeToken */:\n        checkNonNullType(operandType, node.operand);\n        if (maybeTypeOfKindConsideringBaseConstraint(operandType, 12288 /* ESSymbolLike */)) {\n          error2(node.operand, Diagnostics.The_0_operator_cannot_be_applied_to_type_symbol, tokenToString(node.operator));\n        }\n        if (node.operator === 40 /* PlusToken */) {\n          if (maybeTypeOfKindConsideringBaseConstraint(operandType, 2112 /* BigIntLike */)) {\n            error2(node.operand, Diagnostics.Operator_0_cannot_be_applied_to_type_1, tokenToString(node.operator), typeToString(getBaseTypeOfLiteralType(operandType)));\n          }\n          return numberType;\n        }\n        return getUnaryResultType(operandType);\n      case 54 /* ExclamationToken */:\n        checkTruthinessOfType(operandType, node.operand);\n        const facts = getTypeFacts(operandType, 4194304 /* Truthy */ | 8388608 /* Falsy */);\n        return facts === 4194304 /* Truthy */ ? falseType : facts === 8388608 /* Falsy */ ? trueType : booleanType;\n      case 46 /* PlusPlusToken */:\n      case 47 /* MinusMinusToken */:\n        const ok = checkArithmeticOperandType(node.operand, checkNonNullType(operandType, node.operand), Diagnostics.An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type);\n        if (ok) {\n          checkReferenceExpression(\n            node.operand,\n            Diagnostics.The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access,\n            Diagnostics.The_operand_of_an_increment_or_decrement_operator_may_not_be_an_optional_property_access\n          );\n        }\n        return getUnaryResultType(operandType);\n    }\n    return errorType;\n  }\n  function checkPostfixUnaryExpression(node) {\n    const operandType = checkExpression(node.operand);\n    if (operandType === silentNeverType) {\n      return silentNeverType;\n    }\n    const ok = checkArithmeticOperandType(\n      node.operand,\n      checkNonNullType(operandType, node.operand),\n      Diagnostics.An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type\n    );\n    if (ok) {\n      checkReferenceExpression(\n        node.operand,\n        Diagnostics.The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access,\n        Diagnostics.The_operand_of_an_increment_or_decrement_operator_may_not_be_an_optional_property_access\n      );\n    }\n    return getUnaryResultType(operandType);\n  }\n  function getUnaryResultType(operandType) {\n    if (maybeTypeOfKind(operandType, 2112 /* BigIntLike */)) {\n      return isTypeAssignableToKind(operandType, 3 /* AnyOrUnknown */) || maybeTypeOfKind(operandType, 296 /* NumberLike */) ? numberOrBigIntType : bigintType;\n    }\n    return numberType;\n  }\n  function maybeTypeOfKindConsideringBaseConstraint(type, kind) {\n    if (maybeTypeOfKind(type, kind)) {\n      return true;\n    }\n    const baseConstraint = getBaseConstraintOrType(type);\n    return !!baseConstraint && maybeTypeOfKind(baseConstraint, kind);\n  }\n  function maybeTypeOfKind(type, kind) {\n    if (type.flags & kind) {\n      return true;\n    }\n    if (type.flags & 3145728 /* UnionOrIntersection */) {\n      const types = type.types;\n      for (const t of types) {\n        if (maybeTypeOfKind(t, kind)) {\n          return true;\n        }\n      }\n    }\n    return false;\n  }\n  function isTypeAssignableToKind(source, kind, strict) {\n    if (source.flags & kind) {\n      return true;\n    }\n    if (strict && source.flags & (3 /* AnyOrUnknown */ | 16384 /* Void */ | 32768 /* Undefined */ | 65536 /* Null */)) {\n      return false;\n    }\n    return !!(kind & 296 /* NumberLike */) && isTypeAssignableTo(source, numberType) || !!(kind & 2112 /* BigIntLike */) && isTypeAssignableTo(source, bigintType) || !!(kind & 402653316 /* StringLike */) && isTypeAssignableTo(source, stringType) || !!(kind & 528 /* BooleanLike */) && isTypeAssignableTo(source, booleanType) || !!(kind & 16384 /* Void */) && isTypeAssignableTo(source, voidType) || !!(kind & 131072 /* Never */) && isTypeAssignableTo(source, neverType) || !!(kind & 65536 /* Null */) && isTypeAssignableTo(source, nullType) || !!(kind & 32768 /* Undefined */) && isTypeAssignableTo(source, undefinedType) || !!(kind & 4096 /* ESSymbol */) && isTypeAssignableTo(source, esSymbolType) || !!(kind & 67108864 /* NonPrimitive */) && isTypeAssignableTo(source, nonPrimitiveType);\n  }\n  function allTypesAssignableToKind(source, kind, strict) {\n    return source.flags & 1048576 /* Union */ ? every(source.types, (subType) => allTypesAssignableToKind(subType, kind, strict)) : isTypeAssignableToKind(source, kind, strict);\n  }\n  function isConstEnumObjectType(type) {\n    return !!(getObjectFlags(type) & 16 /* Anonymous */) && !!type.symbol && isConstEnumSymbol(type.symbol);\n  }\n  function isConstEnumSymbol(symbol) {\n    return (symbol.flags & 128 /* ConstEnum */) !== 0;\n  }\n  function getSymbolHasInstanceMethodOfObjectType(type) {\n    const hasInstancePropertyName = getPropertyNameForKnownSymbolName(\"hasInstance\");\n    if (allTypesAssignableToKind(type, 67108864 /* NonPrimitive */)) {\n      const hasInstanceProperty = getPropertyOfType(type, hasInstancePropertyName);\n      if (hasInstanceProperty) {\n        const hasInstancePropertyType = getTypeOfSymbol(hasInstanceProperty);\n        if (hasInstancePropertyType && getSignaturesOfType(hasInstancePropertyType, 0 /* Call */).length !== 0) {\n          return hasInstancePropertyType;\n        }\n      }\n    }\n  }\n  function checkInstanceOfExpression(left, right, leftType, rightType, checkMode) {\n    if (leftType === silentNeverType || rightType === silentNeverType) {\n      return silentNeverType;\n    }\n    if (!isTypeAny(leftType) && allTypesAssignableToKind(leftType, 402784252 /* Primitive */)) {\n      error2(left, Diagnostics.The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_parameter);\n    }\n    Debug.assert(isInstanceOfExpression(left.parent));\n    const signature = getResolvedSignature(\n      left.parent,\n      /*candidatesOutArray*/\n      void 0,\n      checkMode\n    );\n    if (signature === resolvingSignature) {\n      return silentNeverType;\n    }\n    const returnType = getReturnTypeOfSignature(signature);\n    checkTypeAssignableTo(returnType, booleanType, right, Diagnostics.An_object_s_Symbol_hasInstance_method_must_return_a_boolean_value_for_it_to_be_used_on_the_right_hand_side_of_an_instanceof_expression);\n    return booleanType;\n  }\n  function hasEmptyObjectIntersection(type) {\n    return someType(type, (t) => t === unknownEmptyObjectType || !!(t.flags & 2097152 /* Intersection */) && isEmptyAnonymousObjectType(getBaseConstraintOrType(t)));\n  }\n  function checkInExpression(left, right, leftType, rightType) {\n    if (leftType === silentNeverType || rightType === silentNeverType) {\n      return silentNeverType;\n    }\n    if (isPrivateIdentifier(left)) {\n      if (languageVersion < LanguageFeatureMinimumTarget.PrivateNamesAndClassStaticBlocks || languageVersion < LanguageFeatureMinimumTarget.ClassAndClassElementDecorators || !useDefineForClassFields) {\n        checkExternalEmitHelpers(left, 2097152 /* ClassPrivateFieldIn */);\n      }\n      if (!getNodeLinks(left).resolvedSymbol && getContainingClass(left)) {\n        const isUncheckedJS = isUncheckedJSSuggestion(\n          left,\n          rightType.symbol,\n          /*excludeClasses*/\n          true\n        );\n        reportNonexistentProperty(left, rightType, isUncheckedJS);\n      }\n    } else {\n      checkTypeAssignableTo(checkNonNullType(leftType, left), stringNumberSymbolType, left);\n    }\n    if (checkTypeAssignableTo(checkNonNullType(rightType, right), nonPrimitiveType, right)) {\n      if (hasEmptyObjectIntersection(rightType)) {\n        error2(right, Diagnostics.Type_0_may_represent_a_primitive_value_which_is_not_permitted_as_the_right_operand_of_the_in_operator, typeToString(rightType));\n      }\n    }\n    return booleanType;\n  }\n  function checkObjectLiteralAssignment(node, sourceType, rightIsThis) {\n    const properties = node.properties;\n    if (strictNullChecks && properties.length === 0) {\n      return checkNonNullType(sourceType, node);\n    }\n    for (let i = 0; i < properties.length; i++) {\n      checkObjectLiteralDestructuringPropertyAssignment(node, sourceType, i, properties, rightIsThis);\n    }\n    return sourceType;\n  }\n  function checkObjectLiteralDestructuringPropertyAssignment(node, objectLiteralType, propertyIndex, allProperties, rightIsThis = false) {\n    const properties = node.properties;\n    const property = properties[propertyIndex];\n    if (property.kind === 304 /* PropertyAssignment */ || property.kind === 305 /* ShorthandPropertyAssignment */) {\n      const name = property.name;\n      const exprType = getLiteralTypeFromPropertyName(name);\n      if (isTypeUsableAsPropertyName(exprType)) {\n        const text = getPropertyNameFromType(exprType);\n        const prop = getPropertyOfType(objectLiteralType, text);\n        if (prop) {\n          markPropertyAsReferenced(prop, property, rightIsThis);\n          checkPropertyAccessibility(\n            property,\n            /*isSuper*/\n            false,\n            /*writing*/\n            true,\n            objectLiteralType,\n            prop\n          );\n        }\n      }\n      const elementType = getIndexedAccessType(objectLiteralType, exprType, 32 /* ExpressionPosition */ | (hasDefaultValue(property) ? 16 /* AllowMissing */ : 0), name);\n      const type = getFlowTypeOfDestructuring(property, elementType);\n      return checkDestructuringAssignment(property.kind === 305 /* ShorthandPropertyAssignment */ ? property : property.initializer, type);\n    } else if (property.kind === 306 /* SpreadAssignment */) {\n      if (propertyIndex < properties.length - 1) {\n        error2(property, Diagnostics.A_rest_element_must_be_last_in_a_destructuring_pattern);\n      } else {\n        if (languageVersion < LanguageFeatureMinimumTarget.ObjectSpreadRest) {\n          checkExternalEmitHelpers(property, 4 /* Rest */);\n        }\n        const nonRestNames = [];\n        if (allProperties) {\n          for (const otherProperty of allProperties) {\n            if (!isSpreadAssignment(otherProperty)) {\n              nonRestNames.push(otherProperty.name);\n            }\n          }\n        }\n        const type = getRestType(objectLiteralType, nonRestNames, objectLiteralType.symbol);\n        checkGrammarForDisallowedTrailingComma(allProperties, Diagnostics.A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma);\n        return checkDestructuringAssignment(property.expression, type);\n      }\n    } else {\n      error2(property, Diagnostics.Property_assignment_expected);\n    }\n  }\n  function checkArrayLiteralAssignment(node, sourceType, checkMode) {\n    const elements = node.elements;\n    if (languageVersion < LanguageFeatureMinimumTarget.DestructuringAssignment && compilerOptions.downlevelIteration) {\n      checkExternalEmitHelpers(node, 512 /* Read */);\n    }\n    const possiblyOutOfBoundsType = checkIteratedTypeOrElementType(65 /* Destructuring */ | 128 /* PossiblyOutOfBounds */, sourceType, undefinedType, node) || errorType;\n    let inBoundsType = compilerOptions.noUncheckedIndexedAccess ? void 0 : possiblyOutOfBoundsType;\n    for (let i = 0; i < elements.length; i++) {\n      let type = possiblyOutOfBoundsType;\n      if (node.elements[i].kind === 231 /* SpreadElement */) {\n        type = inBoundsType = inBoundsType ?? (checkIteratedTypeOrElementType(65 /* Destructuring */, sourceType, undefinedType, node) || errorType);\n      }\n      checkArrayLiteralDestructuringElementAssignment(node, sourceType, i, type, checkMode);\n    }\n    return sourceType;\n  }\n  function checkArrayLiteralDestructuringElementAssignment(node, sourceType, elementIndex, elementType, checkMode) {\n    const elements = node.elements;\n    const element = elements[elementIndex];\n    if (element.kind !== 233 /* OmittedExpression */) {\n      if (element.kind !== 231 /* SpreadElement */) {\n        const indexType = getNumberLiteralType(elementIndex);\n        if (isArrayLikeType(sourceType)) {\n          const accessFlags = 32 /* ExpressionPosition */ | (hasDefaultValue(element) ? 16 /* AllowMissing */ : 0);\n          const elementType2 = getIndexedAccessTypeOrUndefined(sourceType, indexType, accessFlags, createSyntheticExpression(element, indexType)) || errorType;\n          const assignedType = hasDefaultValue(element) ? getTypeWithFacts(elementType2, 524288 /* NEUndefined */) : elementType2;\n          const type = getFlowTypeOfDestructuring(element, assignedType);\n          return checkDestructuringAssignment(element, type, checkMode);\n        }\n        return checkDestructuringAssignment(element, elementType, checkMode);\n      }\n      if (elementIndex < elements.length - 1) {\n        error2(element, Diagnostics.A_rest_element_must_be_last_in_a_destructuring_pattern);\n      } else {\n        const restExpression = element.expression;\n        if (restExpression.kind === 227 /* BinaryExpression */ && restExpression.operatorToken.kind === 64 /* EqualsToken */) {\n          error2(restExpression.operatorToken, Diagnostics.A_rest_element_cannot_have_an_initializer);\n        } else {\n          checkGrammarForDisallowedTrailingComma(node.elements, Diagnostics.A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma);\n          const type = everyType(sourceType, isTupleType) ? mapType(sourceType, (t) => sliceTupleType(t, elementIndex)) : createArrayType(elementType);\n          return checkDestructuringAssignment(restExpression, type, checkMode);\n        }\n      }\n    }\n    return void 0;\n  }\n  function checkDestructuringAssignment(exprOrAssignment, sourceType, checkMode, rightIsThis) {\n    let target;\n    if (exprOrAssignment.kind === 305 /* ShorthandPropertyAssignment */) {\n      const prop = exprOrAssignment;\n      if (prop.objectAssignmentInitializer) {\n        if (strictNullChecks && !hasTypeFacts(checkExpression(prop.objectAssignmentInitializer), 16777216 /* IsUndefined */)) {\n          sourceType = getTypeWithFacts(sourceType, 524288 /* NEUndefined */);\n        }\n        checkBinaryLikeExpression(prop.name, prop.equalsToken, prop.objectAssignmentInitializer, checkMode);\n      }\n      target = exprOrAssignment.name;\n    } else {\n      target = exprOrAssignment;\n    }\n    if (target.kind === 227 /* BinaryExpression */ && target.operatorToken.kind === 64 /* EqualsToken */) {\n      checkBinaryExpression(target, checkMode);\n      target = target.left;\n      if (strictNullChecks) {\n        sourceType = getTypeWithFacts(sourceType, 524288 /* NEUndefined */);\n      }\n    }\n    if (target.kind === 211 /* ObjectLiteralExpression */) {\n      return checkObjectLiteralAssignment(target, sourceType, rightIsThis);\n    }\n    if (target.kind === 210 /* ArrayLiteralExpression */) {\n      return checkArrayLiteralAssignment(target, sourceType, checkMode);\n    }\n    return checkReferenceAssignment(target, sourceType, checkMode);\n  }\n  function checkReferenceAssignment(target, sourceType, checkMode) {\n    const targetType = checkExpression(target, checkMode);\n    const error3 = target.parent.kind === 306 /* SpreadAssignment */ ? Diagnostics.The_target_of_an_object_rest_assignment_must_be_a_variable_or_a_property_access : Diagnostics.The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access;\n    const optionalError = target.parent.kind === 306 /* SpreadAssignment */ ? Diagnostics.The_target_of_an_object_rest_assignment_may_not_be_an_optional_property_access : Diagnostics.The_left_hand_side_of_an_assignment_expression_may_not_be_an_optional_property_access;\n    if (checkReferenceExpression(target, error3, optionalError)) {\n      checkTypeAssignableToAndOptionallyElaborate(sourceType, targetType, target, target);\n    }\n    if (isPrivateIdentifierPropertyAccessExpression(target)) {\n      checkExternalEmitHelpers(target.parent, 1048576 /* ClassPrivateFieldSet */);\n    }\n    return sourceType;\n  }\n  function isSideEffectFree(node) {\n    node = skipParentheses(node);\n    switch (node.kind) {\n      case 80 /* Identifier */:\n      case 11 /* StringLiteral */:\n      case 14 /* RegularExpressionLiteral */:\n      case 216 /* TaggedTemplateExpression */:\n      case 229 /* TemplateExpression */:\n      case 15 /* NoSubstitutionTemplateLiteral */:\n      case 9 /* NumericLiteral */:\n      case 10 /* BigIntLiteral */:\n      case 112 /* TrueKeyword */:\n      case 97 /* FalseKeyword */:\n      case 106 /* NullKeyword */:\n      case 157 /* UndefinedKeyword */:\n      case 219 /* FunctionExpression */:\n      case 232 /* ClassExpression */:\n      case 220 /* ArrowFunction */:\n      case 210 /* ArrayLiteralExpression */:\n      case 211 /* ObjectLiteralExpression */:\n      case 222 /* TypeOfExpression */:\n      case 236 /* NonNullExpression */:\n      case 286 /* JsxSelfClosingElement */:\n      case 285 /* JsxElement */:\n        return true;\n      case 228 /* ConditionalExpression */:\n        return isSideEffectFree(node.whenTrue) && isSideEffectFree(node.whenFalse);\n      case 227 /* BinaryExpression */:\n        if (isAssignmentOperator(node.operatorToken.kind)) {\n          return false;\n        }\n        return isSideEffectFree(node.left) && isSideEffectFree(node.right);\n      case 225 /* PrefixUnaryExpression */:\n      case 226 /* PostfixUnaryExpression */:\n        switch (node.operator) {\n          case 54 /* ExclamationToken */:\n          case 40 /* PlusToken */:\n          case 41 /* MinusToken */:\n          case 55 /* TildeToken */:\n            return true;\n        }\n        return false;\n      // Some forms listed here for clarity\n      case 223 /* VoidExpression */:\n      // Explicit opt-out\n      case 217 /* TypeAssertionExpression */:\n      // Not SEF, but can produce useful type warnings\n      case 235 /* AsExpression */:\n      // Not SEF, but can produce useful type warnings\n      default:\n        return false;\n    }\n  }\n  function isTypeEqualityComparableTo(source, target) {\n    return (target.flags & 98304 /* Nullable */) !== 0 || isTypeComparableTo(source, target);\n  }\n  function createCheckBinaryExpression() {\n    const trampoline = createBinaryExpressionTrampoline(onEnter, onLeft, onOperator, onRight, onExit, foldState);\n    return (node, checkMode) => {\n      const result = trampoline(node, checkMode);\n      Debug.assertIsDefined(result);\n      return result;\n    };\n    function onEnter(node, state, checkMode) {\n      if (state) {\n        state.stackIndex++;\n        state.skip = false;\n        setLeftType(\n          state,\n          /*type*/\n          void 0\n        );\n        setLastResult(\n          state,\n          /*type*/\n          void 0\n        );\n      } else {\n        state = {\n          checkMode,\n          skip: false,\n          stackIndex: 0,\n          typeStack: [void 0, void 0]\n        };\n      }\n      if (isInJSFile(node) && getAssignedExpandoInitializer(node)) {\n        state.skip = true;\n        setLastResult(state, checkExpression(node.right, checkMode));\n        return state;\n      }\n      checkNullishCoalesceOperands(node);\n      const operator = node.operatorToken.kind;\n      if (operator === 64 /* EqualsToken */ && (node.left.kind === 211 /* ObjectLiteralExpression */ || node.left.kind === 210 /* ArrayLiteralExpression */)) {\n        state.skip = true;\n        setLastResult(state, checkDestructuringAssignment(node.left, checkExpression(node.right, checkMode), checkMode, node.right.kind === 110 /* ThisKeyword */));\n        return state;\n      }\n      return state;\n    }\n    function onLeft(left, state, _node) {\n      if (!state.skip) {\n        return maybeCheckExpression(state, left);\n      }\n    }\n    function onOperator(operatorToken, state, node) {\n      if (!state.skip) {\n        const leftType = getLastResult(state);\n        Debug.assertIsDefined(leftType);\n        setLeftType(state, leftType);\n        setLastResult(\n          state,\n          /*type*/\n          void 0\n        );\n        const operator = operatorToken.kind;\n        if (isLogicalOrCoalescingBinaryOperator(operator)) {\n          let parent2 = node.parent;\n          while (parent2.kind === 218 /* ParenthesizedExpression */ || isLogicalOrCoalescingBinaryExpression(parent2)) {\n            parent2 = parent2.parent;\n          }\n          if (operator === 56 /* AmpersandAmpersandToken */ || isIfStatement(parent2)) {\n            checkTestingKnownTruthyCallableOrAwaitableOrEnumMemberType(node.left, leftType, isIfStatement(parent2) ? parent2.thenStatement : void 0);\n          }\n          if (isBinaryLogicalOperator(operator)) {\n            checkTruthinessOfType(leftType, node.left);\n          }\n        }\n      }\n    }\n    function onRight(right, state, _node) {\n      if (!state.skip) {\n        return maybeCheckExpression(state, right);\n      }\n    }\n    function onExit(node, state) {\n      let result;\n      if (state.skip) {\n        result = getLastResult(state);\n      } else {\n        const leftType = getLeftType(state);\n        Debug.assertIsDefined(leftType);\n        const rightType = getLastResult(state);\n        Debug.assertIsDefined(rightType);\n        result = checkBinaryLikeExpressionWorker(node.left, node.operatorToken, node.right, leftType, rightType, state.checkMode, node);\n      }\n      state.skip = false;\n      setLeftType(\n        state,\n        /*type*/\n        void 0\n      );\n      setLastResult(\n        state,\n        /*type*/\n        void 0\n      );\n      state.stackIndex--;\n      return result;\n    }\n    function foldState(state, result, _side) {\n      setLastResult(state, result);\n      return state;\n    }\n    function maybeCheckExpression(state, node) {\n      if (isBinaryExpression(node)) {\n        return node;\n      }\n      setLastResult(state, checkExpression(node, state.checkMode));\n    }\n    function getLeftType(state) {\n      return state.typeStack[state.stackIndex];\n    }\n    function setLeftType(state, type) {\n      state.typeStack[state.stackIndex] = type;\n    }\n    function getLastResult(state) {\n      return state.typeStack[state.stackIndex + 1];\n    }\n    function setLastResult(state, type) {\n      state.typeStack[state.stackIndex + 1] = type;\n    }\n  }\n  function checkNullishCoalesceOperands(node) {\n    if (node.operatorToken.kind !== 61 /* QuestionQuestionToken */) {\n      return;\n    }\n    if (isBinaryExpression(node.parent)) {\n      const { left, operatorToken } = node.parent;\n      if (isBinaryExpression(left) && operatorToken.kind === 57 /* BarBarToken */) {\n        grammarErrorOnNode(left, Diagnostics._0_and_1_operations_cannot_be_mixed_without_parentheses, tokenToString(61 /* QuestionQuestionToken */), tokenToString(operatorToken.kind));\n      }\n    } else if (isBinaryExpression(node.left)) {\n      const { operatorToken } = node.left;\n      if (operatorToken.kind === 57 /* BarBarToken */ || operatorToken.kind === 56 /* AmpersandAmpersandToken */) {\n        grammarErrorOnNode(node.left, Diagnostics._0_and_1_operations_cannot_be_mixed_without_parentheses, tokenToString(operatorToken.kind), tokenToString(61 /* QuestionQuestionToken */));\n      }\n    } else if (isBinaryExpression(node.right)) {\n      const { operatorToken } = node.right;\n      if (operatorToken.kind === 56 /* AmpersandAmpersandToken */) {\n        grammarErrorOnNode(node.right, Diagnostics._0_and_1_operations_cannot_be_mixed_without_parentheses, tokenToString(61 /* QuestionQuestionToken */), tokenToString(operatorToken.kind));\n      }\n    }\n    checkNullishCoalesceOperandLeft(node);\n    checkNullishCoalesceOperandRight(node);\n  }\n  function checkNullishCoalesceOperandLeft(node) {\n    const leftTarget = skipOuterExpressions(node.left, 63 /* All */);\n    const nullishSemantics = getSyntacticNullishnessSemantics(leftTarget);\n    if (nullishSemantics !== 3 /* Sometimes */) {\n      if (nullishSemantics === 1 /* Always */) {\n        error2(leftTarget, Diagnostics.This_expression_is_always_nullish);\n      } else {\n        error2(leftTarget, Diagnostics.Right_operand_of_is_unreachable_because_the_left_operand_is_never_nullish);\n      }\n    }\n  }\n  function checkNullishCoalesceOperandRight(node) {\n    const rightTarget = skipOuterExpressions(node.right, 63 /* All */);\n    const nullishSemantics = getSyntacticNullishnessSemantics(rightTarget);\n    if (isNotWithinNullishCoalesceExpression(node)) {\n      return;\n    }\n    if (nullishSemantics === 1 /* Always */) {\n      error2(rightTarget, Diagnostics.This_expression_is_always_nullish);\n    } else if (nullishSemantics === 2 /* Never */) {\n      error2(rightTarget, Diagnostics.This_expression_is_never_nullish);\n    }\n  }\n  function isNotWithinNullishCoalesceExpression(node) {\n    return !isBinaryExpression(node.parent) || node.parent.operatorToken.kind !== 61 /* QuestionQuestionToken */;\n  }\n  function getSyntacticNullishnessSemantics(node) {\n    node = skipOuterExpressions(node);\n    switch (node.kind) {\n      case 224 /* AwaitExpression */:\n      case 214 /* CallExpression */:\n      case 216 /* TaggedTemplateExpression */:\n      case 213 /* ElementAccessExpression */:\n      case 237 /* MetaProperty */:\n      case 215 /* NewExpression */:\n      case 212 /* PropertyAccessExpression */:\n      case 230 /* YieldExpression */:\n      case 110 /* ThisKeyword */:\n        return 3 /* Sometimes */;\n      case 227 /* BinaryExpression */:\n        switch (node.operatorToken.kind) {\n          case 64 /* EqualsToken */:\n          case 61 /* QuestionQuestionToken */:\n          case 78 /* QuestionQuestionEqualsToken */:\n          case 57 /* BarBarToken */:\n          case 76 /* BarBarEqualsToken */:\n          case 56 /* AmpersandAmpersandToken */:\n          case 77 /* AmpersandAmpersandEqualsToken */:\n            return 3 /* Sometimes */;\n          case 28 /* CommaToken */:\n            return getSyntacticNullishnessSemantics(node.right);\n        }\n        return 2 /* Never */;\n      case 228 /* ConditionalExpression */:\n        return getSyntacticNullishnessSemantics(node.whenTrue) | getSyntacticNullishnessSemantics(node.whenFalse);\n      case 106 /* NullKeyword */:\n        return 1 /* Always */;\n      case 80 /* Identifier */:\n        if (getResolvedSymbol(node) === undefinedSymbol) {\n          return 1 /* Always */;\n        }\n        return 3 /* Sometimes */;\n    }\n    return 2 /* Never */;\n  }\n  function checkBinaryLikeExpression(left, operatorToken, right, checkMode, errorNode) {\n    const operator = operatorToken.kind;\n    if (operator === 64 /* EqualsToken */ && (left.kind === 211 /* ObjectLiteralExpression */ || left.kind === 210 /* ArrayLiteralExpression */)) {\n      return checkDestructuringAssignment(left, checkExpression(right, checkMode), checkMode, right.kind === 110 /* ThisKeyword */);\n    }\n    let leftType;\n    if (isBinaryLogicalOperator(operator)) {\n      leftType = checkTruthinessExpression(left, checkMode);\n    } else {\n      leftType = checkExpression(left, checkMode);\n    }\n    const rightType = checkExpression(right, checkMode);\n    return checkBinaryLikeExpressionWorker(left, operatorToken, right, leftType, rightType, checkMode, errorNode);\n  }\n  function checkBinaryLikeExpressionWorker(left, operatorToken, right, leftType, rightType, checkMode, errorNode) {\n    const operator = operatorToken.kind;\n    switch (operator) {\n      case 42 /* AsteriskToken */:\n      case 43 /* AsteriskAsteriskToken */:\n      case 67 /* AsteriskEqualsToken */:\n      case 68 /* AsteriskAsteriskEqualsToken */:\n      case 44 /* SlashToken */:\n      case 69 /* SlashEqualsToken */:\n      case 45 /* PercentToken */:\n      case 70 /* PercentEqualsToken */:\n      case 41 /* MinusToken */:\n      case 66 /* MinusEqualsToken */:\n      case 48 /* LessThanLessThanToken */:\n      case 71 /* LessThanLessThanEqualsToken */:\n      case 49 /* GreaterThanGreaterThanToken */:\n      case 72 /* GreaterThanGreaterThanEqualsToken */:\n      case 50 /* GreaterThanGreaterThanGreaterThanToken */:\n      case 73 /* GreaterThanGreaterThanGreaterThanEqualsToken */:\n      case 52 /* BarToken */:\n      case 75 /* BarEqualsToken */:\n      case 53 /* CaretToken */:\n      case 79 /* CaretEqualsToken */:\n      case 51 /* AmpersandToken */:\n      case 74 /* AmpersandEqualsToken */:\n        if (leftType === silentNeverType || rightType === silentNeverType) {\n          return silentNeverType;\n        }\n        leftType = checkNonNullType(leftType, left);\n        rightType = checkNonNullType(rightType, right);\n        let suggestedOperator;\n        if (leftType.flags & 528 /* BooleanLike */ && rightType.flags & 528 /* BooleanLike */ && (suggestedOperator = getSuggestedBooleanOperator(operatorToken.kind)) !== void 0) {\n          error2(errorNode || operatorToken, Diagnostics.The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead, tokenToString(operatorToken.kind), tokenToString(suggestedOperator));\n          return numberType;\n        } else {\n          const leftOk = checkArithmeticOperandType(\n            left,\n            leftType,\n            Diagnostics.The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type,\n            /*isAwaitValid*/\n            true\n          );\n          const rightOk = checkArithmeticOperandType(\n            right,\n            rightType,\n            Diagnostics.The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type,\n            /*isAwaitValid*/\n            true\n          );\n          let resultType2;\n          if (isTypeAssignableToKind(leftType, 3 /* AnyOrUnknown */) && isTypeAssignableToKind(rightType, 3 /* AnyOrUnknown */) || // Or, if neither could be bigint, implicit coercion results in a number result\n          !(maybeTypeOfKind(leftType, 2112 /* BigIntLike */) || maybeTypeOfKind(rightType, 2112 /* BigIntLike */))) {\n            resultType2 = numberType;\n          } else if (bothAreBigIntLike(leftType, rightType)) {\n            switch (operator) {\n              case 50 /* GreaterThanGreaterThanGreaterThanToken */:\n              case 73 /* GreaterThanGreaterThanGreaterThanEqualsToken */:\n                reportOperatorError();\n                break;\n              case 43 /* AsteriskAsteriskToken */:\n              case 68 /* AsteriskAsteriskEqualsToken */:\n                if (languageVersion < 3 /* ES2016 */) {\n                  error2(errorNode, Diagnostics.Exponentiation_cannot_be_performed_on_bigint_values_unless_the_target_option_is_set_to_es2016_or_later);\n                }\n            }\n            resultType2 = bigintType;\n          } else {\n            reportOperatorError(bothAreBigIntLike);\n            resultType2 = errorType;\n          }\n          if (leftOk && rightOk) {\n            checkAssignmentOperator(resultType2);\n            switch (operator) {\n              case 48 /* LessThanLessThanToken */:\n              case 71 /* LessThanLessThanEqualsToken */:\n              case 49 /* GreaterThanGreaterThanToken */:\n              case 72 /* GreaterThanGreaterThanEqualsToken */:\n              case 50 /* GreaterThanGreaterThanGreaterThanToken */:\n              case 73 /* GreaterThanGreaterThanGreaterThanEqualsToken */:\n                const rhsEval = evaluate(right);\n                if (typeof rhsEval.value === \"number\" && Math.abs(rhsEval.value) >= 32) {\n                  errorOrSuggestion(\n                    isEnumMember(walkUpParenthesizedExpressions(right.parent.parent)),\n                    // elevate from suggestion to error within an enum member\n                    errorNode || operatorToken,\n                    Diagnostics.This_operation_can_be_simplified_This_shift_is_identical_to_0_1_2,\n                    getTextOfNode(left),\n                    tokenToString(operator),\n                    rhsEval.value % 32\n                  );\n                }\n                break;\n              default:\n                break;\n            }\n          }\n          return resultType2;\n        }\n      case 40 /* PlusToken */:\n      case 65 /* PlusEqualsToken */:\n        if (leftType === silentNeverType || rightType === silentNeverType) {\n          return silentNeverType;\n        }\n        if (!isTypeAssignableToKind(leftType, 402653316 /* StringLike */) && !isTypeAssignableToKind(rightType, 402653316 /* StringLike */)) {\n          leftType = checkNonNullType(leftType, left);\n          rightType = checkNonNullType(rightType, right);\n        }\n        let resultType;\n        if (isTypeAssignableToKind(\n          leftType,\n          296 /* NumberLike */,\n          /*strict*/\n          true\n        ) && isTypeAssignableToKind(\n          rightType,\n          296 /* NumberLike */,\n          /*strict*/\n          true\n        )) {\n          resultType = numberType;\n        } else if (isTypeAssignableToKind(\n          leftType,\n          2112 /* BigIntLike */,\n          /*strict*/\n          true\n        ) && isTypeAssignableToKind(\n          rightType,\n          2112 /* BigIntLike */,\n          /*strict*/\n          true\n        )) {\n          resultType = bigintType;\n        } else if (isTypeAssignableToKind(\n          leftType,\n          402653316 /* StringLike */,\n          /*strict*/\n          true\n        ) || isTypeAssignableToKind(\n          rightType,\n          402653316 /* StringLike */,\n          /*strict*/\n          true\n        )) {\n          resultType = stringType;\n        } else if (isTypeAny(leftType) || isTypeAny(rightType)) {\n          resultType = isErrorType(leftType) || isErrorType(rightType) ? errorType : anyType;\n        }\n        if (resultType && !checkForDisallowedESSymbolOperand(operator)) {\n          return resultType;\n        }\n        if (!resultType) {\n          const closeEnoughKind = 296 /* NumberLike */ | 2112 /* BigIntLike */ | 402653316 /* StringLike */ | 3 /* AnyOrUnknown */;\n          reportOperatorError(\n            (left2, right2) => isTypeAssignableToKind(left2, closeEnoughKind) && isTypeAssignableToKind(right2, closeEnoughKind)\n          );\n          return anyType;\n        }\n        if (operator === 65 /* PlusEqualsToken */) {\n          checkAssignmentOperator(resultType);\n        }\n        return resultType;\n      case 30 /* LessThanToken */:\n      case 32 /* GreaterThanToken */:\n      case 33 /* LessThanEqualsToken */:\n      case 34 /* GreaterThanEqualsToken */:\n        if (checkForDisallowedESSymbolOperand(operator)) {\n          leftType = getBaseTypeOfLiteralTypeForComparison(checkNonNullType(leftType, left));\n          rightType = getBaseTypeOfLiteralTypeForComparison(checkNonNullType(rightType, right));\n          reportOperatorErrorUnless((left2, right2) => {\n            if (isTypeAny(left2) || isTypeAny(right2)) {\n              return true;\n            }\n            const leftAssignableToNumber = isTypeAssignableTo(left2, numberOrBigIntType);\n            const rightAssignableToNumber = isTypeAssignableTo(right2, numberOrBigIntType);\n            return leftAssignableToNumber && rightAssignableToNumber || !leftAssignableToNumber && !rightAssignableToNumber && areTypesComparable(left2, right2);\n          });\n        }\n        return booleanType;\n      case 35 /* EqualsEqualsToken */:\n      case 36 /* ExclamationEqualsToken */:\n      case 37 /* EqualsEqualsEqualsToken */:\n      case 38 /* ExclamationEqualsEqualsToken */:\n        if (!(checkMode && checkMode & 64 /* TypeOnly */)) {\n          if ((isLiteralExpressionOfObject(left) || isLiteralExpressionOfObject(right)) && // only report for === and !== in JS, not == or !=\n          (!isInJSFile(left) || (operator === 37 /* EqualsEqualsEqualsToken */ || operator === 38 /* ExclamationEqualsEqualsToken */))) {\n            const eqType = operator === 35 /* EqualsEqualsToken */ || operator === 37 /* EqualsEqualsEqualsToken */;\n            error2(errorNode, Diagnostics.This_condition_will_always_return_0_since_JavaScript_compares_objects_by_reference_not_value, eqType ? \"false\" : \"true\");\n          }\n          checkNaNEquality(errorNode, operator, left, right);\n          reportOperatorErrorUnless((left2, right2) => isTypeEqualityComparableTo(left2, right2) || isTypeEqualityComparableTo(right2, left2));\n        }\n        return booleanType;\n      case 104 /* InstanceOfKeyword */:\n        return checkInstanceOfExpression(left, right, leftType, rightType, checkMode);\n      case 103 /* InKeyword */:\n        return checkInExpression(left, right, leftType, rightType);\n      case 56 /* AmpersandAmpersandToken */:\n      case 77 /* AmpersandAmpersandEqualsToken */: {\n        const resultType2 = hasTypeFacts(leftType, 4194304 /* Truthy */) ? getUnionType([extractDefinitelyFalsyTypes(strictNullChecks ? leftType : getBaseTypeOfLiteralType(rightType)), rightType]) : leftType;\n        if (operator === 77 /* AmpersandAmpersandEqualsToken */) {\n          checkAssignmentOperator(rightType);\n        }\n        return resultType2;\n      }\n      case 57 /* BarBarToken */:\n      case 76 /* BarBarEqualsToken */: {\n        const resultType2 = hasTypeFacts(leftType, 8388608 /* Falsy */) ? getUnionType([getNonNullableType(removeDefinitelyFalsyTypes(leftType)), rightType], 2 /* Subtype */) : leftType;\n        if (operator === 76 /* BarBarEqualsToken */) {\n          checkAssignmentOperator(rightType);\n        }\n        return resultType2;\n      }\n      case 61 /* QuestionQuestionToken */:\n      case 78 /* QuestionQuestionEqualsToken */: {\n        const resultType2 = hasTypeFacts(leftType, 262144 /* EQUndefinedOrNull */) ? getUnionType([getNonNullableType(leftType), rightType], 2 /* Subtype */) : leftType;\n        if (operator === 78 /* QuestionQuestionEqualsToken */) {\n          checkAssignmentOperator(rightType);\n        }\n        return resultType2;\n      }\n      case 64 /* EqualsToken */:\n        const declKind = isBinaryExpression(left.parent) ? getAssignmentDeclarationKind(left.parent) : 0 /* None */;\n        checkAssignmentDeclaration(declKind, rightType);\n        if (isAssignmentDeclaration2(declKind)) {\n          if (!(rightType.flags & 524288 /* Object */) || declKind !== 2 /* ModuleExports */ && declKind !== 6 /* Prototype */ && !isEmptyObjectType(rightType) && !isFunctionObjectType(rightType) && !(getObjectFlags(rightType) & 1 /* Class */)) {\n            checkAssignmentOperator(rightType);\n          }\n          return leftType;\n        } else {\n          checkAssignmentOperator(rightType);\n          return rightType;\n        }\n      case 28 /* CommaToken */:\n        if (!compilerOptions.allowUnreachableCode && isSideEffectFree(left) && !isIndirectCall(left.parent)) {\n          const sf = getSourceFileOfNode(left);\n          const sourceText = sf.text;\n          const start = skipTrivia(sourceText, left.pos);\n          const isInDiag2657 = sf.parseDiagnostics.some((diag2) => {\n            if (diag2.code !== Diagnostics.JSX_expressions_must_have_one_parent_element.code) return false;\n            return textSpanContainsPosition(diag2, start);\n          });\n          if (!isInDiag2657) error2(left, Diagnostics.Left_side_of_comma_operator_is_unused_and_has_no_side_effects);\n        }\n        return rightType;\n      default:\n        return Debug.fail();\n    }\n    function bothAreBigIntLike(left2, right2) {\n      return isTypeAssignableToKind(left2, 2112 /* BigIntLike */) && isTypeAssignableToKind(right2, 2112 /* BigIntLike */);\n    }\n    function checkAssignmentDeclaration(kind, rightType2) {\n      if (kind === 2 /* ModuleExports */) {\n        for (const prop of getPropertiesOfObjectType(rightType2)) {\n          const propType = getTypeOfSymbol(prop);\n          if (propType.symbol && propType.symbol.flags & 32 /* Class */) {\n            const name = prop.escapedName;\n            const symbol = resolveName(\n              prop.valueDeclaration,\n              name,\n              788968 /* Type */,\n              /*nameNotFoundMessage*/\n              void 0,\n              /*isUse*/\n              false\n            );\n            if ((symbol == null ? void 0 : symbol.declarations) && symbol.declarations.some(isJSDocTypedefTag)) {\n              addDuplicateDeclarationErrorsForSymbols(symbol, Diagnostics.Duplicate_identifier_0, unescapeLeadingUnderscores(name), prop);\n              addDuplicateDeclarationErrorsForSymbols(prop, Diagnostics.Duplicate_identifier_0, unescapeLeadingUnderscores(name), symbol);\n            }\n          }\n        }\n      }\n    }\n    function isIndirectCall(node) {\n      return node.parent.kind === 218 /* ParenthesizedExpression */ && isNumericLiteral(node.left) && node.left.text === \"0\" && (isCallExpression(node.parent.parent) && node.parent.parent.expression === node.parent || node.parent.parent.kind === 216 /* TaggedTemplateExpression */) && // special-case for \"eval\" because it's the only non-access case where an indirect call actually affects behavior.\n      (isAccessExpression(node.right) || isIdentifier(node.right) && node.right.escapedText === \"eval\");\n    }\n    function checkForDisallowedESSymbolOperand(operator2) {\n      const offendingSymbolOperand = maybeTypeOfKindConsideringBaseConstraint(leftType, 12288 /* ESSymbolLike */) ? left : maybeTypeOfKindConsideringBaseConstraint(rightType, 12288 /* ESSymbolLike */) ? right : void 0;\n      if (offendingSymbolOperand) {\n        error2(offendingSymbolOperand, Diagnostics.The_0_operator_cannot_be_applied_to_type_symbol, tokenToString(operator2));\n        return false;\n      }\n      return true;\n    }\n    function getSuggestedBooleanOperator(operator2) {\n      switch (operator2) {\n        case 52 /* BarToken */:\n        case 75 /* BarEqualsToken */:\n          return 57 /* BarBarToken */;\n        case 53 /* CaretToken */:\n        case 79 /* CaretEqualsToken */:\n          return 38 /* ExclamationEqualsEqualsToken */;\n        case 51 /* AmpersandToken */:\n        case 74 /* AmpersandEqualsToken */:\n          return 56 /* AmpersandAmpersandToken */;\n        default:\n          return void 0;\n      }\n    }\n    function checkAssignmentOperator(valueType) {\n      if (isAssignmentOperator(operator)) {\n        addLazyDiagnostic(checkAssignmentOperatorWorker);\n      }\n      function checkAssignmentOperatorWorker() {\n        let assigneeType = leftType;\n        if (isCompoundAssignment(operatorToken.kind) && left.kind === 212 /* PropertyAccessExpression */) {\n          assigneeType = checkPropertyAccessExpression(\n            left,\n            /*checkMode*/\n            void 0,\n            /*writeOnly*/\n            true\n          );\n        }\n        if (checkReferenceExpression(left, Diagnostics.The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access, Diagnostics.The_left_hand_side_of_an_assignment_expression_may_not_be_an_optional_property_access)) {\n          let headMessage;\n          if (exactOptionalPropertyTypes && isPropertyAccessExpression(left) && maybeTypeOfKind(valueType, 32768 /* Undefined */)) {\n            const target = getTypeOfPropertyOfType(getTypeOfExpression(left.expression), left.name.escapedText);\n            if (isExactOptionalPropertyMismatch(valueType, target)) {\n              headMessage = Diagnostics.Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_type_of_the_target;\n            }\n          }\n          checkTypeAssignableToAndOptionallyElaborate(valueType, assigneeType, left, right, headMessage);\n        }\n      }\n    }\n    function isAssignmentDeclaration2(kind) {\n      var _a;\n      switch (kind) {\n        case 2 /* ModuleExports */:\n          return true;\n        case 1 /* ExportsProperty */:\n        case 5 /* Property */:\n        case 6 /* Prototype */:\n        case 3 /* PrototypeProperty */:\n        case 4 /* ThisProperty */:\n          const symbol = getSymbolOfNode(left);\n          const init = getAssignedExpandoInitializer(right);\n          return !!init && isObjectLiteralExpression(init) && !!((_a = symbol == null ? void 0 : symbol.exports) == null ? void 0 : _a.size);\n        default:\n          return false;\n      }\n    }\n    function reportOperatorErrorUnless(typesAreCompatible) {\n      if (!typesAreCompatible(leftType, rightType)) {\n        reportOperatorError(typesAreCompatible);\n        return true;\n      }\n      return false;\n    }\n    function reportOperatorError(isRelated) {\n      let wouldWorkWithAwait = false;\n      const errNode = errorNode || operatorToken;\n      if (isRelated) {\n        const awaitedLeftType = getAwaitedTypeNoAlias(leftType);\n        const awaitedRightType = getAwaitedTypeNoAlias(rightType);\n        wouldWorkWithAwait = !(awaitedLeftType === leftType && awaitedRightType === rightType) && !!(awaitedLeftType && awaitedRightType) && isRelated(awaitedLeftType, awaitedRightType);\n      }\n      let effectiveLeft = leftType;\n      let effectiveRight = rightType;\n      if (!wouldWorkWithAwait && isRelated) {\n        [effectiveLeft, effectiveRight] = getBaseTypesIfUnrelated(leftType, rightType, isRelated);\n      }\n      const [leftStr, rightStr] = getTypeNamesForErrorDisplay(effectiveLeft, effectiveRight);\n      if (!tryGiveBetterPrimaryError(errNode, wouldWorkWithAwait, leftStr, rightStr)) {\n        errorAndMaybeSuggestAwait(\n          errNode,\n          wouldWorkWithAwait,\n          Diagnostics.Operator_0_cannot_be_applied_to_types_1_and_2,\n          tokenToString(operatorToken.kind),\n          leftStr,\n          rightStr\n        );\n      }\n    }\n    function tryGiveBetterPrimaryError(errNode, maybeMissingAwait, leftStr, rightStr) {\n      switch (operatorToken.kind) {\n        case 37 /* EqualsEqualsEqualsToken */:\n        case 35 /* EqualsEqualsToken */:\n        case 38 /* ExclamationEqualsEqualsToken */:\n        case 36 /* ExclamationEqualsToken */:\n          return errorAndMaybeSuggestAwait(\n            errNode,\n            maybeMissingAwait,\n            Diagnostics.This_comparison_appears_to_be_unintentional_because_the_types_0_and_1_have_no_overlap,\n            leftStr,\n            rightStr\n          );\n        default:\n          return void 0;\n      }\n    }\n    function checkNaNEquality(errorNode2, operator2, left2, right2) {\n      const isLeftNaN = isGlobalNaN(skipParentheses(left2));\n      const isRightNaN = isGlobalNaN(skipParentheses(right2));\n      if (isLeftNaN || isRightNaN) {\n        const err = error2(errorNode2, Diagnostics.This_condition_will_always_return_0, tokenToString(operator2 === 37 /* EqualsEqualsEqualsToken */ || operator2 === 35 /* EqualsEqualsToken */ ? 97 /* FalseKeyword */ : 112 /* TrueKeyword */));\n        if (isLeftNaN && isRightNaN) return;\n        const operatorString = operator2 === 38 /* ExclamationEqualsEqualsToken */ || operator2 === 36 /* ExclamationEqualsToken */ ? tokenToString(54 /* ExclamationToken */) : \"\";\n        const location = isLeftNaN ? right2 : left2;\n        const expression = skipParentheses(location);\n        addRelatedInfo(err, createDiagnosticForNode(location, Diagnostics.Did_you_mean_0, `${operatorString}Number.isNaN(${isEntityNameExpression(expression) ? entityNameToString(expression) : \"...\"})`));\n      }\n    }\n    function isGlobalNaN(expr) {\n      if (isIdentifier(expr) && expr.escapedText === \"NaN\") {\n        const globalNaNSymbol = getGlobalNaNSymbol();\n        return !!globalNaNSymbol && globalNaNSymbol === getResolvedSymbol(expr);\n      }\n      return false;\n    }\n  }\n  function getBaseTypesIfUnrelated(leftType, rightType, isRelated) {\n    let effectiveLeft = leftType;\n    let effectiveRight = rightType;\n    const leftBase = getBaseTypeOfLiteralType(leftType);\n    const rightBase = getBaseTypeOfLiteralType(rightType);\n    if (!isRelated(leftBase, rightBase)) {\n      effectiveLeft = leftBase;\n      effectiveRight = rightBase;\n    }\n    return [effectiveLeft, effectiveRight];\n  }\n  function checkYieldExpression(node) {\n    addLazyDiagnostic(checkYieldExpressionGrammar);\n    const func = getContainingFunction(node);\n    if (!func) return anyType;\n    const functionFlags = getFunctionFlags(func);\n    if (!(functionFlags & 1 /* Generator */)) {\n      return anyType;\n    }\n    const isAsync = (functionFlags & 2 /* Async */) !== 0;\n    if (node.asteriskToken) {\n      if (isAsync && languageVersion < LanguageFeatureMinimumTarget.AsyncGenerators) {\n        checkExternalEmitHelpers(node, 26624 /* AsyncDelegatorIncludes */);\n      }\n      if (!isAsync && languageVersion < LanguageFeatureMinimumTarget.Generators && compilerOptions.downlevelIteration) {\n        checkExternalEmitHelpers(node, 256 /* Values */);\n      }\n    }\n    let returnType = getReturnTypeFromAnnotation(func);\n    if (returnType && returnType.flags & 1048576 /* Union */) {\n      returnType = filterType(returnType, (t) => checkGeneratorInstantiationAssignabilityToReturnType(\n        t,\n        functionFlags,\n        /*errorNode*/\n        void 0\n      ));\n    }\n    const iterationTypes = returnType && getIterationTypesOfGeneratorFunctionReturnType(returnType, isAsync);\n    const signatureYieldType = iterationTypes && iterationTypes.yieldType || anyType;\n    const signatureNextType = iterationTypes && iterationTypes.nextType || anyType;\n    const yieldExpressionType = node.expression ? checkExpression(node.expression) : undefinedWideningType;\n    const yieldedType = getYieldedTypeOfYieldExpression(node, yieldExpressionType, signatureNextType, isAsync);\n    if (returnType && yieldedType) {\n      checkTypeAssignableToAndOptionallyElaborate(yieldedType, signatureYieldType, node.expression || node, node.expression);\n    }\n    if (node.asteriskToken) {\n      const use = isAsync ? 19 /* AsyncYieldStar */ : 17 /* YieldStar */;\n      return getIterationTypeOfIterable(use, 1 /* Return */, yieldExpressionType, node.expression) || anyType;\n    } else if (returnType) {\n      return getIterationTypeOfGeneratorFunctionReturnType(2 /* Next */, returnType, isAsync) || anyType;\n    }\n    let type = getContextualIterationType(2 /* Next */, func);\n    if (!type) {\n      type = anyType;\n      addLazyDiagnostic(() => {\n        if (noImplicitAny && !expressionResultIsUnused(node)) {\n          const contextualType = getContextualType2(\n            node,\n            /*contextFlags*/\n            void 0\n          );\n          if (!contextualType || isTypeAny(contextualType)) {\n            error2(node, Diagnostics.yield_expression_implicitly_results_in_an_any_type_because_its_containing_generator_lacks_a_return_type_annotation);\n          }\n        }\n      });\n    }\n    return type;\n    function checkYieldExpressionGrammar() {\n      if (!(node.flags & 16384 /* YieldContext */)) {\n        grammarErrorOnFirstToken(node, Diagnostics.A_yield_expression_is_only_allowed_in_a_generator_body);\n      }\n      if (isInParameterInitializerBeforeContainingFunction(node)) {\n        error2(node, Diagnostics.yield_expressions_cannot_be_used_in_a_parameter_initializer);\n      }\n    }\n  }\n  function checkConditionalExpression(node, checkMode) {\n    const type = checkTruthinessExpression(node.condition, checkMode);\n    checkTestingKnownTruthyCallableOrAwaitableOrEnumMemberType(node.condition, type, node.whenTrue);\n    const type1 = checkExpression(node.whenTrue, checkMode);\n    const type2 = checkExpression(node.whenFalse, checkMode);\n    return getUnionType([type1, type2], 2 /* Subtype */);\n  }\n  function isTemplateLiteralContext(node) {\n    const parent2 = node.parent;\n    return isParenthesizedExpression(parent2) && isTemplateLiteralContext(parent2) || isElementAccessExpression(parent2) && parent2.argumentExpression === node;\n  }\n  function checkTemplateExpression(node) {\n    const texts = [node.head.text];\n    const types = [];\n    for (const span of node.templateSpans) {\n      const type = checkExpression(span.expression);\n      if (maybeTypeOfKindConsideringBaseConstraint(type, 12288 /* ESSymbolLike */)) {\n        error2(span.expression, Diagnostics.Implicit_conversion_of_a_symbol_to_a_string_will_fail_at_runtime_Consider_wrapping_this_expression_in_String);\n      }\n      texts.push(span.literal.text);\n      types.push(isTypeAssignableTo(type, templateConstraintType) ? type : stringType);\n    }\n    const evaluated = node.parent.kind !== 216 /* TaggedTemplateExpression */ && evaluate(node).value;\n    if (evaluated) {\n      return getFreshTypeOfLiteralType(getStringLiteralType(evaluated));\n    }\n    if (isConstContext(node) || isTemplateLiteralContext(node) || someType(getContextualType2(\n      node,\n      /*contextFlags*/\n      void 0\n    ) || unknownType, isTemplateLiteralContextualType)) {\n      return getTemplateLiteralType(texts, types);\n    }\n    return stringType;\n  }\n  function isTemplateLiteralContextualType(type) {\n    return !!(type.flags & (128 /* StringLiteral */ | 134217728 /* TemplateLiteral */) || type.flags & 58982400 /* InstantiableNonPrimitive */ && maybeTypeOfKind(getBaseConstraintOfType(type) || unknownType, 402653316 /* StringLike */));\n  }\n  function getContextNode2(node) {\n    if (isJsxAttributes(node) && !isJsxSelfClosingElement(node.parent)) {\n      return node.parent.parent;\n    }\n    return node;\n  }\n  function checkExpressionWithContextualType(node, contextualType, inferenceContext, checkMode) {\n    const contextNode = getContextNode2(node);\n    pushContextualType(\n      contextNode,\n      contextualType,\n      /*isCache*/\n      false\n    );\n    pushInferenceContext(contextNode, inferenceContext);\n    const type = checkExpression(node, checkMode | 1 /* Contextual */ | (inferenceContext ? 2 /* Inferential */ : 0));\n    if (inferenceContext && inferenceContext.intraExpressionInferenceSites) {\n      inferenceContext.intraExpressionInferenceSites = void 0;\n    }\n    const result = maybeTypeOfKind(type, 2944 /* Literal */) && isLiteralOfContextualType(type, instantiateContextualType(\n      contextualType,\n      node,\n      /*contextFlags*/\n      void 0\n    )) ? getRegularTypeOfLiteralType(type) : type;\n    popInferenceContext();\n    popContextualType();\n    return result;\n  }\n  function checkExpressionCached(node, checkMode) {\n    if (checkMode) {\n      return checkExpression(node, checkMode);\n    }\n    const links = getNodeLinks(node);\n    if (!links.resolvedType) {\n      const saveFlowLoopStart = flowLoopStart;\n      const saveFlowTypeCache = flowTypeCache;\n      flowLoopStart = flowLoopCount;\n      flowTypeCache = void 0;\n      links.resolvedType = checkExpression(node, checkMode);\n      flowTypeCache = saveFlowTypeCache;\n      flowLoopStart = saveFlowLoopStart;\n    }\n    return links.resolvedType;\n  }\n  function isTypeAssertion(node) {\n    node = skipParentheses(\n      node,\n      /*excludeJSDocTypeAssertions*/\n      true\n    );\n    return node.kind === 217 /* TypeAssertionExpression */ || node.kind === 235 /* AsExpression */ || isJSDocTypeAssertion(node);\n  }\n  function checkDeclarationInitializer(declaration, checkMode, contextualType) {\n    const initializer = getEffectiveInitializer(declaration);\n    if (isInJSFile(declaration)) {\n      const typeNode = tryGetJSDocSatisfiesTypeNode(declaration);\n      if (typeNode) {\n        return checkSatisfiesExpressionWorker(initializer, typeNode, checkMode);\n      }\n    }\n    const type = getQuickTypeOfExpression(initializer) || (contextualType ? checkExpressionWithContextualType(\n      initializer,\n      contextualType,\n      /*inferenceContext*/\n      void 0,\n      checkMode || 0 /* Normal */\n    ) : checkExpressionCached(initializer, checkMode));\n    if (isParameter(isBindingElement(declaration) ? walkUpBindingElementsAndPatterns(declaration) : declaration)) {\n      if (declaration.name.kind === 207 /* ObjectBindingPattern */ && isObjectLiteralType2(type)) {\n        return padObjectLiteralType(type, declaration.name);\n      }\n      if (declaration.name.kind === 208 /* ArrayBindingPattern */ && isTupleType(type)) {\n        return padTupleType(type, declaration.name);\n      }\n    }\n    return type;\n  }\n  function padObjectLiteralType(type, pattern) {\n    let missingElements;\n    for (const e of pattern.elements) {\n      if (e.initializer) {\n        const name = getPropertyNameFromBindingElement(e);\n        if (name && !getPropertyOfType(type, name)) {\n          missingElements = append(missingElements, e);\n        }\n      }\n    }\n    if (!missingElements) {\n      return type;\n    }\n    const members = createSymbolTable();\n    for (const prop of getPropertiesOfObjectType(type)) {\n      members.set(prop.escapedName, prop);\n    }\n    for (const e of missingElements) {\n      const symbol = createSymbol(4 /* Property */ | 16777216 /* Optional */, getPropertyNameFromBindingElement(e));\n      symbol.links.type = getTypeFromBindingElement(\n        e,\n        /*includePatternInType*/\n        false,\n        /*reportErrors*/\n        false\n      );\n      members.set(symbol.escapedName, symbol);\n    }\n    const result = createAnonymousType(type.symbol, members, emptyArray, emptyArray, getIndexInfosOfType(type));\n    result.objectFlags = type.objectFlags;\n    return result;\n  }\n  function getPropertyNameFromBindingElement(e) {\n    const exprType = getLiteralTypeFromPropertyName(e.propertyName || e.name);\n    return isTypeUsableAsPropertyName(exprType) ? getPropertyNameFromType(exprType) : void 0;\n  }\n  function padTupleType(type, pattern) {\n    if (type.target.combinedFlags & 12 /* Variable */ || getTypeReferenceArity(type) >= pattern.elements.length) {\n      return type;\n    }\n    const patternElements = pattern.elements;\n    const elementTypes = getElementTypes(type).slice();\n    const elementFlags = type.target.elementFlags.slice();\n    for (let i = getTypeReferenceArity(type); i < patternElements.length; i++) {\n      const e = patternElements[i];\n      if (i < patternElements.length - 1 || !(e.kind === 209 /* BindingElement */ && e.dotDotDotToken)) {\n        elementTypes.push(!isOmittedExpression(e) && hasDefaultValue(e) ? getTypeFromBindingElement(\n          e,\n          /*includePatternInType*/\n          false,\n          /*reportErrors*/\n          false\n        ) : anyType);\n        elementFlags.push(2 /* Optional */);\n        if (!isOmittedExpression(e) && !hasDefaultValue(e)) {\n          reportImplicitAny(e, anyType);\n        }\n      }\n    }\n    return createTupleType(elementTypes, elementFlags, type.target.readonly);\n  }\n  function widenTypeInferredFromInitializer(declaration, type) {\n    const widened = getWidenedLiteralTypeForInitializer(declaration, type);\n    if (isInJSFile(declaration)) {\n      if (isEmptyLiteralType(widened)) {\n        reportImplicitAny(declaration, anyType);\n        return anyType;\n      } else if (isEmptyArrayLiteralType(widened)) {\n        reportImplicitAny(declaration, anyArrayType);\n        return anyArrayType;\n      }\n    }\n    return widened;\n  }\n  function getWidenedLiteralTypeForInitializer(declaration, type) {\n    return getCombinedNodeFlagsCached(declaration) & 6 /* Constant */ || isDeclarationReadonly(declaration) ? type : getWidenedLiteralType(type);\n  }\n  function isLiteralOfContextualType(candidateType, contextualType) {\n    if (contextualType) {\n      if (contextualType.flags & 3145728 /* UnionOrIntersection */) {\n        const types = contextualType.types;\n        return some(types, (t) => isLiteralOfContextualType(candidateType, t));\n      }\n      if (contextualType.flags & 58982400 /* InstantiableNonPrimitive */) {\n        const constraint = getBaseConstraintOfType(contextualType) || unknownType;\n        return maybeTypeOfKind(constraint, 4 /* String */) && maybeTypeOfKind(candidateType, 128 /* StringLiteral */) || maybeTypeOfKind(constraint, 8 /* Number */) && maybeTypeOfKind(candidateType, 256 /* NumberLiteral */) || maybeTypeOfKind(constraint, 64 /* BigInt */) && maybeTypeOfKind(candidateType, 2048 /* BigIntLiteral */) || maybeTypeOfKind(constraint, 4096 /* ESSymbol */) && maybeTypeOfKind(candidateType, 8192 /* UniqueESSymbol */) || isLiteralOfContextualType(candidateType, constraint);\n      }\n      return !!(contextualType.flags & (128 /* StringLiteral */ | 4194304 /* Index */ | 134217728 /* TemplateLiteral */ | 268435456 /* StringMapping */) && maybeTypeOfKind(candidateType, 128 /* StringLiteral */) || contextualType.flags & 256 /* NumberLiteral */ && maybeTypeOfKind(candidateType, 256 /* NumberLiteral */) || contextualType.flags & 2048 /* BigIntLiteral */ && maybeTypeOfKind(candidateType, 2048 /* BigIntLiteral */) || contextualType.flags & 512 /* BooleanLiteral */ && maybeTypeOfKind(candidateType, 512 /* BooleanLiteral */) || contextualType.flags & 8192 /* UniqueESSymbol */ && maybeTypeOfKind(candidateType, 8192 /* UniqueESSymbol */));\n    }\n    return false;\n  }\n  function isConstContext(node) {\n    const parent2 = node.parent;\n    return isAssertionExpression(parent2) && isConstTypeReference(parent2.type) || isJSDocTypeAssertion(parent2) && isConstTypeReference(getJSDocTypeAssertionType(parent2)) || isValidConstAssertionArgument(node) && isConstTypeVariable(getContextualType2(node, 0 /* None */)) || (isParenthesizedExpression(parent2) || isArrayLiteralExpression(parent2) || isSpreadElement(parent2)) && isConstContext(parent2) || (isPropertyAssignment(parent2) || isShorthandPropertyAssignment(parent2) || isTemplateSpan(parent2)) && isConstContext(parent2.parent);\n  }\n  function checkExpressionForMutableLocation(node, checkMode, forceTuple) {\n    const type = checkExpression(node, checkMode, forceTuple);\n    return isConstContext(node) || isCommonJsExportedExpression(node) ? getRegularTypeOfLiteralType(type) : isTypeAssertion(node) ? type : getWidenedLiteralLikeTypeForContextualType(type, instantiateContextualType(\n      getContextualType2(\n        node,\n        /*contextFlags*/\n        void 0\n      ),\n      node,\n      /*contextFlags*/\n      void 0\n    ));\n  }\n  function checkPropertyAssignment(node, checkMode) {\n    if (node.name.kind === 168 /* ComputedPropertyName */) {\n      checkComputedPropertyName(node.name);\n    }\n    return checkExpressionForMutableLocation(node.initializer, checkMode);\n  }\n  function checkObjectLiteralMethod(node, checkMode) {\n    checkGrammarMethod(node);\n    if (node.name.kind === 168 /* ComputedPropertyName */) {\n      checkComputedPropertyName(node.name);\n    }\n    const uninstantiatedType = checkFunctionExpressionOrObjectLiteralMethod(node, checkMode);\n    return instantiateTypeWithSingleGenericCallSignature(node, uninstantiatedType, checkMode);\n  }\n  function instantiateTypeWithSingleGenericCallSignature(node, type, checkMode) {\n    if (checkMode && checkMode & (2 /* Inferential */ | 8 /* SkipGenericFunctions */)) {\n      const callSignature = getSingleSignature(\n        type,\n        0 /* Call */,\n        /*allowMembers*/\n        true\n      );\n      const constructSignature = getSingleSignature(\n        type,\n        1 /* Construct */,\n        /*allowMembers*/\n        true\n      );\n      const signature = callSignature || constructSignature;\n      if (signature && signature.typeParameters) {\n        const contextualType = getApparentTypeOfContextualType(node, 2 /* NoConstraints */);\n        if (contextualType) {\n          const contextualSignature = getSingleSignature(\n            getNonNullableType(contextualType),\n            callSignature ? 0 /* Call */ : 1 /* Construct */,\n            /*allowMembers*/\n            false\n          );\n          if (contextualSignature && !contextualSignature.typeParameters) {\n            if (checkMode & 8 /* SkipGenericFunctions */) {\n              skippedGenericFunction(node, checkMode);\n              return anyFunctionType;\n            }\n            const context = getInferenceContext(node);\n            const returnType = context.signature && getReturnTypeOfSignature(context.signature);\n            const returnSignature = returnType && getSingleCallOrConstructSignature(returnType);\n            if (returnSignature && !returnSignature.typeParameters && !every(context.inferences, hasInferenceCandidates)) {\n              const uniqueTypeParameters = getUniqueTypeParameters(context, signature.typeParameters);\n              const instantiatedSignature = getSignatureInstantiationWithoutFillingInTypeArguments(signature, uniqueTypeParameters);\n              const inferences = map(context.inferences, (info) => createInferenceInfo(info.typeParameter));\n              applyToParameterTypes(instantiatedSignature, contextualSignature, (source, target) => {\n                inferTypes(\n                  inferences,\n                  source,\n                  target,\n                  /*priority*/\n                  0,\n                  /*contravariant*/\n                  true\n                );\n              });\n              if (some(inferences, hasInferenceCandidates)) {\n                applyToReturnTypes(instantiatedSignature, contextualSignature, (source, target) => {\n                  inferTypes(inferences, source, target);\n                });\n                if (!hasOverlappingInferences(context.inferences, inferences)) {\n                  mergeInferences(context.inferences, inferences);\n                  context.inferredTypeParameters = concatenate(context.inferredTypeParameters, uniqueTypeParameters);\n                  return getOrCreateTypeFromSignature(instantiatedSignature);\n                }\n              }\n            }\n            return getOrCreateTypeFromSignature(instantiateSignatureInContextOf(signature, contextualSignature, context));\n          }\n        }\n      }\n    }\n    return type;\n  }\n  function skippedGenericFunction(node, checkMode) {\n    if (checkMode & 2 /* Inferential */) {\n      const context = getInferenceContext(node);\n      context.flags |= 4 /* SkippedGenericFunction */;\n    }\n  }\n  function hasInferenceCandidates(info) {\n    return !!(info.candidates || info.contraCandidates);\n  }\n  function hasInferenceCandidatesOrDefault(info) {\n    return !!(info.candidates || info.contraCandidates || hasTypeParameterDefault(info.typeParameter));\n  }\n  function hasOverlappingInferences(a, b) {\n    for (let i = 0; i < a.length; i++) {\n      if (hasInferenceCandidates(a[i]) && hasInferenceCandidates(b[i])) {\n        return true;\n      }\n    }\n    return false;\n  }\n  function mergeInferences(target, source) {\n    for (let i = 0; i < target.length; i++) {\n      if (!hasInferenceCandidates(target[i]) && hasInferenceCandidates(source[i])) {\n        target[i] = source[i];\n      }\n    }\n  }\n  function getUniqueTypeParameters(context, typeParameters) {\n    const result = [];\n    let oldTypeParameters;\n    let newTypeParameters;\n    for (const tp of typeParameters) {\n      const name = tp.symbol.escapedName;\n      if (hasTypeParameterByName(context.inferredTypeParameters, name) || hasTypeParameterByName(result, name)) {\n        const newName = getUniqueTypeParameterName(concatenate(context.inferredTypeParameters, result), name);\n        const symbol = createSymbol(262144 /* TypeParameter */, newName);\n        const newTypeParameter = createTypeParameter(symbol);\n        newTypeParameter.target = tp;\n        oldTypeParameters = append(oldTypeParameters, tp);\n        newTypeParameters = append(newTypeParameters, newTypeParameter);\n        result.push(newTypeParameter);\n      } else {\n        result.push(tp);\n      }\n    }\n    if (newTypeParameters) {\n      const mapper = createTypeMapper(oldTypeParameters, newTypeParameters);\n      for (const tp of newTypeParameters) {\n        tp.mapper = mapper;\n      }\n    }\n    return result;\n  }\n  function hasTypeParameterByName(typeParameters, name) {\n    return some(typeParameters, (tp) => tp.symbol.escapedName === name);\n  }\n  function getUniqueTypeParameterName(typeParameters, baseName) {\n    let len = baseName.length;\n    while (len > 1 && baseName.charCodeAt(len - 1) >= 48 /* _0 */ && baseName.charCodeAt(len - 1) <= 57 /* _9 */) len--;\n    const s = baseName.slice(0, len);\n    for (let index = 1; true; index++) {\n      const augmentedName = s + index;\n      if (!hasTypeParameterByName(typeParameters, augmentedName)) {\n        return augmentedName;\n      }\n    }\n  }\n  function getReturnTypeOfSingleNonGenericCallSignature(funcType) {\n    const signature = getSingleCallSignature(funcType);\n    if (signature && !signature.typeParameters) {\n      return getReturnTypeOfSignature(signature);\n    }\n  }\n  function getReturnTypeOfSingleNonGenericSignatureOfCallChain(expr) {\n    const funcType = checkExpression(expr.expression);\n    const nonOptionalType = getOptionalExpressionType(funcType, expr.expression);\n    const returnType = getReturnTypeOfSingleNonGenericCallSignature(funcType);\n    return returnType && propagateOptionalTypeMarker(returnType, expr, nonOptionalType !== funcType);\n  }\n  function getTypeOfExpression(node) {\n    const quickType = getQuickTypeOfExpression(node);\n    if (quickType) {\n      return quickType;\n    }\n    if (node.flags & 268435456 /* TypeCached */ && flowTypeCache) {\n      const cachedType = flowTypeCache[getNodeId(node)];\n      if (cachedType) {\n        return cachedType;\n      }\n    }\n    const startInvocationCount = flowInvocationCount;\n    const type = checkExpression(node, 64 /* TypeOnly */);\n    if (flowInvocationCount !== startInvocationCount) {\n      const cache = flowTypeCache || (flowTypeCache = []);\n      cache[getNodeId(node)] = type;\n      setNodeFlags(node, node.flags | 268435456 /* TypeCached */);\n    }\n    return type;\n  }\n  function getQuickTypeOfExpression(node) {\n    let expr = skipParentheses(\n      node,\n      /*excludeJSDocTypeAssertions*/\n      true\n    );\n    if (isJSDocTypeAssertion(expr)) {\n      const type = getJSDocTypeAssertionType(expr);\n      if (!isConstTypeReference(type)) {\n        return getTypeFromTypeNode(type);\n      }\n    }\n    expr = skipParentheses(node);\n    if (isAwaitExpression(expr)) {\n      const type = getQuickTypeOfExpression(expr.expression);\n      return type ? getAwaitedType(type) : void 0;\n    }\n    if (isCallExpression(expr) && expr.expression.kind !== 108 /* SuperKeyword */ && !isRequireCall(\n      expr,\n      /*requireStringLiteralLikeArgument*/\n      true\n    ) && !isSymbolOrSymbolForCall(expr) && !isImportCall(expr)) {\n      return isCallChain(expr) ? getReturnTypeOfSingleNonGenericSignatureOfCallChain(expr) : getReturnTypeOfSingleNonGenericCallSignature(checkNonNullExpression(expr.expression));\n    } else if (isAssertionExpression(expr) && !isConstTypeReference(expr.type)) {\n      return getTypeFromTypeNode(expr.type);\n    } else if (isLiteralExpression(node) || isBooleanLiteral(node)) {\n      return checkExpression(node);\n    }\n    return void 0;\n  }\n  function getContextFreeTypeOfExpression(node) {\n    const links = getNodeLinks(node);\n    if (links.contextFreeType) {\n      return links.contextFreeType;\n    }\n    pushContextualType(\n      node,\n      anyType,\n      /*isCache*/\n      false\n    );\n    const type = links.contextFreeType = checkExpression(node, 4 /* SkipContextSensitive */);\n    popContextualType();\n    return type;\n  }\n  function checkExpression(node, checkMode, forceTuple) {\n    var _a, _b;\n    (_a = tracing) == null ? void 0 : _a.push(tracing.Phase.Check, \"checkExpression\", { kind: node.kind, pos: node.pos, end: node.end, path: node.tracingPath });\n    const saveCurrentNode = currentNode;\n    currentNode = node;\n    instantiationCount = 0;\n    const uninstantiatedType = checkExpressionWorker(node, checkMode, forceTuple);\n    const type = instantiateTypeWithSingleGenericCallSignature(node, uninstantiatedType, checkMode);\n    if (isConstEnumObjectType(type)) {\n      checkConstEnumAccess(node, type);\n    }\n    currentNode = saveCurrentNode;\n    (_b = tracing) == null ? void 0 : _b.pop();\n    return type;\n  }\n  function checkConstEnumAccess(node, type) {\n    var _a;\n    const ok = node.parent.kind === 212 /* PropertyAccessExpression */ && node.parent.expression === node || node.parent.kind === 213 /* ElementAccessExpression */ && node.parent.expression === node || ((node.kind === 80 /* Identifier */ || node.kind === 167 /* QualifiedName */) && isInRightSideOfImportOrExportAssignment(node) || node.parent.kind === 187 /* TypeQuery */ && node.parent.exprName === node) || node.parent.kind === 282 /* ExportSpecifier */;\n    if (!ok) {\n      error2(node, Diagnostics.const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_import_declaration_or_export_assignment_or_type_query);\n    }\n    if (compilerOptions.isolatedModules || compilerOptions.verbatimModuleSyntax && ok && !resolveName(\n      node,\n      getFirstIdentifier(node),\n      2097152 /* Alias */,\n      /*nameNotFoundMessage*/\n      void 0,\n      /*isUse*/\n      false,\n      /*excludeGlobals*/\n      true\n    )) {\n      Debug.assert(!!(type.symbol.flags & 128 /* ConstEnum */));\n      const constEnumDeclaration = type.symbol.valueDeclaration;\n      const redirect = (_a = host.getRedirectFromOutput(getSourceFileOfNode(constEnumDeclaration).resolvedPath)) == null ? void 0 : _a.resolvedRef;\n      if (constEnumDeclaration.flags & 33554432 /* Ambient */ && !isValidTypeOnlyAliasUseSite(node) && (!redirect || !shouldPreserveConstEnums(redirect.commandLine.options))) {\n        error2(node, Diagnostics.Cannot_access_ambient_const_enums_when_0_is_enabled, isolatedModulesLikeFlagName);\n      }\n    }\n  }\n  function checkParenthesizedExpression(node, checkMode) {\n    if (hasJSDocNodes(node)) {\n      if (isJSDocSatisfiesExpression(node)) {\n        return checkSatisfiesExpressionWorker(node.expression, getJSDocSatisfiesExpressionType(node), checkMode);\n      }\n      if (isJSDocTypeAssertion(node)) {\n        return checkAssertionWorker(node, checkMode);\n      }\n    }\n    return checkExpression(node.expression, checkMode);\n  }\n  function checkExpressionWorker(node, checkMode, forceTuple) {\n    const kind = node.kind;\n    if (cancellationToken) {\n      switch (kind) {\n        case 232 /* ClassExpression */:\n        case 219 /* FunctionExpression */:\n        case 220 /* ArrowFunction */:\n          cancellationToken.throwIfCancellationRequested();\n      }\n    }\n    switch (kind) {\n      case 80 /* Identifier */:\n        return checkIdentifier(node, checkMode);\n      case 81 /* PrivateIdentifier */:\n        return checkPrivateIdentifierExpression(node);\n      case 110 /* ThisKeyword */:\n        return checkThisExpression(node);\n      case 108 /* SuperKeyword */:\n        return checkSuperExpression(node);\n      case 106 /* NullKeyword */:\n        return nullWideningType;\n      case 15 /* NoSubstitutionTemplateLiteral */:\n      case 11 /* StringLiteral */:\n        return hasSkipDirectInferenceFlag(node) ? blockedStringType : getFreshTypeOfLiteralType(getStringLiteralType(node.text));\n      case 9 /* NumericLiteral */:\n        checkGrammarNumericLiteral(node);\n        return getFreshTypeOfLiteralType(getNumberLiteralType(+node.text));\n      case 10 /* BigIntLiteral */:\n        checkGrammarBigIntLiteral(node);\n        return getFreshTypeOfLiteralType(getBigIntLiteralType({\n          negative: false,\n          base10Value: parsePseudoBigInt(node.text)\n        }));\n      case 112 /* TrueKeyword */:\n        return trueType;\n      case 97 /* FalseKeyword */:\n        return falseType;\n      case 229 /* TemplateExpression */:\n        return checkTemplateExpression(node);\n      case 14 /* RegularExpressionLiteral */:\n        return checkRegularExpressionLiteral(node);\n      case 210 /* ArrayLiteralExpression */:\n        return checkArrayLiteral(node, checkMode, forceTuple);\n      case 211 /* ObjectLiteralExpression */:\n        return checkObjectLiteral(node, checkMode);\n      case 212 /* PropertyAccessExpression */:\n        return checkPropertyAccessExpression(node, checkMode);\n      case 167 /* QualifiedName */:\n        return checkQualifiedName(node, checkMode);\n      case 213 /* ElementAccessExpression */:\n        return checkIndexedAccess(node, checkMode);\n      case 214 /* CallExpression */:\n        if (isImportCall(node)) {\n          return checkImportCallExpression(node);\n        }\n      // falls through\n      case 215 /* NewExpression */:\n        return checkCallExpression(node, checkMode);\n      case 216 /* TaggedTemplateExpression */:\n        return checkTaggedTemplateExpression(node);\n      case 218 /* ParenthesizedExpression */:\n        return checkParenthesizedExpression(node, checkMode);\n      case 232 /* ClassExpression */:\n        return checkClassExpression(node);\n      case 219 /* FunctionExpression */:\n      case 220 /* ArrowFunction */:\n        return checkFunctionExpressionOrObjectLiteralMethod(node, checkMode);\n      case 222 /* TypeOfExpression */:\n        return checkTypeOfExpression(node);\n      case 217 /* TypeAssertionExpression */:\n      case 235 /* AsExpression */:\n        return checkAssertion(node, checkMode);\n      case 236 /* NonNullExpression */:\n        return checkNonNullAssertion(node);\n      case 234 /* ExpressionWithTypeArguments */:\n        return checkExpressionWithTypeArguments(node);\n      case 239 /* SatisfiesExpression */:\n        return checkSatisfiesExpression(node);\n      case 237 /* MetaProperty */:\n        return checkMetaProperty(node);\n      case 221 /* DeleteExpression */:\n        return checkDeleteExpression(node);\n      case 223 /* VoidExpression */:\n        return checkVoidExpression(node);\n      case 224 /* AwaitExpression */:\n        return checkAwaitExpression(node);\n      case 225 /* PrefixUnaryExpression */:\n        return checkPrefixUnaryExpression(node);\n      case 226 /* PostfixUnaryExpression */:\n        return checkPostfixUnaryExpression(node);\n      case 227 /* BinaryExpression */:\n        return checkBinaryExpression(node, checkMode);\n      case 228 /* ConditionalExpression */:\n        return checkConditionalExpression(node, checkMode);\n      case 231 /* SpreadElement */:\n        return checkSpreadExpression(node, checkMode);\n      case 233 /* OmittedExpression */:\n        return undefinedWideningType;\n      case 230 /* YieldExpression */:\n        return checkYieldExpression(node);\n      case 238 /* SyntheticExpression */:\n        return checkSyntheticExpression(node);\n      case 295 /* JsxExpression */:\n        return checkJsxExpression(node, checkMode);\n      case 285 /* JsxElement */:\n        return checkJsxElement(node, checkMode);\n      case 286 /* JsxSelfClosingElement */:\n        return checkJsxSelfClosingElement(node, checkMode);\n      case 289 /* JsxFragment */:\n        return checkJsxFragment(node);\n      case 293 /* JsxAttributes */:\n        return checkJsxAttributes(node, checkMode);\n      case 287 /* JsxOpeningElement */:\n        Debug.fail(\"Shouldn't ever directly check a JsxOpeningElement\");\n    }\n    return errorType;\n  }\n  function checkTypeParameter(node) {\n    checkGrammarModifiers(node);\n    if (node.expression) {\n      grammarErrorOnFirstToken(node.expression, Diagnostics.Type_expected);\n    }\n    checkSourceElement(node.constraint);\n    checkSourceElement(node.default);\n    const typeParameter = getDeclaredTypeOfTypeParameter(getSymbolOfDeclaration(node));\n    getBaseConstraintOfType(typeParameter);\n    if (!hasNonCircularTypeParameterDefault(typeParameter)) {\n      error2(node.default, Diagnostics.Type_parameter_0_has_a_circular_default, typeToString(typeParameter));\n    }\n    const constraintType = getConstraintOfTypeParameter(typeParameter);\n    const defaultType = getDefaultFromTypeParameter(typeParameter);\n    if (constraintType && defaultType) {\n      checkTypeAssignableTo(defaultType, getTypeWithThisArgument(instantiateType(constraintType, makeUnaryTypeMapper(typeParameter, defaultType)), defaultType), node.default, Diagnostics.Type_0_does_not_satisfy_the_constraint_1);\n    }\n    checkNodeDeferred(node);\n    addLazyDiagnostic(() => checkTypeNameIsReserved(node.name, Diagnostics.Type_parameter_name_cannot_be_0));\n  }\n  function checkTypeParameterDeferred(node) {\n    var _a, _b;\n    if (isInterfaceDeclaration(node.parent) || isClassLike(node.parent) || isTypeAliasDeclaration(node.parent)) {\n      const typeParameter = getDeclaredTypeOfTypeParameter(getSymbolOfDeclaration(node));\n      const modifiers = getTypeParameterModifiers(typeParameter) & (8192 /* In */ | 16384 /* Out */);\n      if (modifiers) {\n        const symbol = getSymbolOfDeclaration(node.parent);\n        if (isTypeAliasDeclaration(node.parent) && !(getObjectFlags(getDeclaredTypeOfSymbol(symbol)) & (16 /* Anonymous */ | 32 /* Mapped */))) {\n          error2(node, Diagnostics.Variance_annotations_are_only_supported_in_type_aliases_for_object_function_constructor_and_mapped_types);\n        } else if (modifiers === 8192 /* In */ || modifiers === 16384 /* Out */) {\n          (_a = tracing) == null ? void 0 : _a.push(tracing.Phase.CheckTypes, \"checkTypeParameterDeferred\", { parent: getTypeId(getDeclaredTypeOfSymbol(symbol)), id: getTypeId(typeParameter) });\n          const source = createMarkerType(symbol, typeParameter, modifiers === 16384 /* Out */ ? markerSubTypeForCheck : markerSuperTypeForCheck);\n          const target = createMarkerType(symbol, typeParameter, modifiers === 16384 /* Out */ ? markerSuperTypeForCheck : markerSubTypeForCheck);\n          const saveVarianceTypeParameter = typeParameter;\n          varianceTypeParameter = typeParameter;\n          checkTypeAssignableTo(source, target, node, Diagnostics.Type_0_is_not_assignable_to_type_1_as_implied_by_variance_annotation);\n          varianceTypeParameter = saveVarianceTypeParameter;\n          (_b = tracing) == null ? void 0 : _b.pop();\n        }\n      }\n    }\n  }\n  function checkParameter(node) {\n    checkGrammarModifiers(node);\n    checkVariableLikeDeclaration(node);\n    const func = getContainingFunction(node);\n    if (hasSyntacticModifier(node, 31 /* ParameterPropertyModifier */)) {\n      if (compilerOptions.erasableSyntaxOnly) {\n        error2(node, Diagnostics.This_syntax_is_not_allowed_when_erasableSyntaxOnly_is_enabled);\n      }\n      if (!(func.kind === 177 /* Constructor */ && nodeIsPresent(func.body))) {\n        error2(node, Diagnostics.A_parameter_property_is_only_allowed_in_a_constructor_implementation);\n      }\n      if (func.kind === 177 /* Constructor */ && isIdentifier(node.name) && node.name.escapedText === \"constructor\") {\n        error2(node.name, Diagnostics.constructor_cannot_be_used_as_a_parameter_property_name);\n      }\n    }\n    if (!node.initializer && isOptionalDeclaration(node) && isBindingPattern(node.name) && func.body) {\n      error2(node, Diagnostics.A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature);\n    }\n    if (node.name && isIdentifier(node.name) && (node.name.escapedText === \"this\" || node.name.escapedText === \"new\")) {\n      if (func.parameters.indexOf(node) !== 0) {\n        error2(node, Diagnostics.A_0_parameter_must_be_the_first_parameter, node.name.escapedText);\n      }\n      if (func.kind === 177 /* Constructor */ || func.kind === 181 /* ConstructSignature */ || func.kind === 186 /* ConstructorType */) {\n        error2(node, Diagnostics.A_constructor_cannot_have_a_this_parameter);\n      }\n      if (func.kind === 220 /* ArrowFunction */) {\n        error2(node, Diagnostics.An_arrow_function_cannot_have_a_this_parameter);\n      }\n      if (func.kind === 178 /* GetAccessor */ || func.kind === 179 /* SetAccessor */) {\n        error2(node, Diagnostics.get_and_set_accessors_cannot_declare_this_parameters);\n      }\n    }\n    if (node.dotDotDotToken && !isBindingPattern(node.name) && !isTypeAssignableTo(getReducedType(getTypeOfSymbol(node.symbol)), anyReadonlyArrayType)) {\n      error2(node, Diagnostics.A_rest_parameter_must_be_of_an_array_type);\n    }\n  }\n  function checkTypePredicate(node) {\n    const parent2 = getTypePredicateParent(node);\n    if (!parent2) {\n      error2(node, Diagnostics.A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods);\n      return;\n    }\n    const signature = getSignatureFromDeclaration(parent2);\n    const typePredicate = getTypePredicateOfSignature(signature);\n    if (!typePredicate) {\n      return;\n    }\n    checkSourceElement(node.type);\n    const { parameterName } = node;\n    if (typePredicate.kind !== 0 /* This */ && typePredicate.kind !== 2 /* AssertsThis */) {\n      if (typePredicate.parameterIndex >= 0) {\n        if (signatureHasRestParameter(signature) && typePredicate.parameterIndex === signature.parameters.length - 1) {\n          error2(parameterName, Diagnostics.A_type_predicate_cannot_reference_a_rest_parameter);\n        } else {\n          if (typePredicate.type) {\n            const leadingError = () => chainDiagnosticMessages(\n              /*details*/\n              void 0,\n              Diagnostics.A_type_predicate_s_type_must_be_assignable_to_its_parameter_s_type\n            );\n            checkTypeAssignableTo(\n              typePredicate.type,\n              getTypeOfSymbol(signature.parameters[typePredicate.parameterIndex]),\n              node.type,\n              /*headMessage*/\n              void 0,\n              leadingError\n            );\n          }\n        }\n      } else if (parameterName) {\n        let hasReportedError = false;\n        for (const { name } of parent2.parameters) {\n          if (isBindingPattern(name) && checkIfTypePredicateVariableIsDeclaredInBindingPattern(name, parameterName, typePredicate.parameterName)) {\n            hasReportedError = true;\n            break;\n          }\n        }\n        if (!hasReportedError) {\n          error2(node.parameterName, Diagnostics.Cannot_find_parameter_0, typePredicate.parameterName);\n        }\n      }\n    }\n  }\n  function getTypePredicateParent(node) {\n    switch (node.parent.kind) {\n      case 220 /* ArrowFunction */:\n      case 180 /* CallSignature */:\n      case 263 /* FunctionDeclaration */:\n      case 219 /* FunctionExpression */:\n      case 185 /* FunctionType */:\n      case 175 /* MethodDeclaration */:\n      case 174 /* MethodSignature */:\n        const parent2 = node.parent;\n        if (node === parent2.type) {\n          return parent2;\n        }\n    }\n  }\n  function checkIfTypePredicateVariableIsDeclaredInBindingPattern(pattern, predicateVariableNode, predicateVariableName) {\n    for (const element of pattern.elements) {\n      if (isOmittedExpression(element)) {\n        continue;\n      }\n      const name = element.name;\n      if (name.kind === 80 /* Identifier */ && name.escapedText === predicateVariableName) {\n        error2(predicateVariableNode, Diagnostics.A_type_predicate_cannot_reference_element_0_in_a_binding_pattern, predicateVariableName);\n        return true;\n      } else if (name.kind === 208 /* ArrayBindingPattern */ || name.kind === 207 /* ObjectBindingPattern */) {\n        if (checkIfTypePredicateVariableIsDeclaredInBindingPattern(\n          name,\n          predicateVariableNode,\n          predicateVariableName\n        )) {\n          return true;\n        }\n      }\n    }\n  }\n  function checkSignatureDeclaration(node) {\n    if (node.kind === 182 /* IndexSignature */) {\n      checkGrammarIndexSignature(node);\n    } else if (node.kind === 185 /* FunctionType */ || node.kind === 263 /* FunctionDeclaration */ || node.kind === 186 /* ConstructorType */ || node.kind === 180 /* CallSignature */ || node.kind === 177 /* Constructor */ || node.kind === 181 /* ConstructSignature */) {\n      checkGrammarFunctionLikeDeclaration(node);\n    }\n    const functionFlags = getFunctionFlags(node);\n    if (!(functionFlags & 4 /* Invalid */)) {\n      if ((functionFlags & 3 /* AsyncGenerator */) === 3 /* AsyncGenerator */ && languageVersion < LanguageFeatureMinimumTarget.AsyncGenerators) {\n        checkExternalEmitHelpers(node, 6144 /* AsyncGeneratorIncludes */);\n      }\n      if ((functionFlags & 3 /* AsyncGenerator */) === 2 /* Async */ && languageVersion < LanguageFeatureMinimumTarget.AsyncFunctions) {\n        checkExternalEmitHelpers(node, 64 /* Awaiter */);\n      }\n      if ((functionFlags & 3 /* AsyncGenerator */) !== 0 /* Normal */ && languageVersion < LanguageFeatureMinimumTarget.Generators) {\n        checkExternalEmitHelpers(node, 128 /* Generator */);\n      }\n    }\n    checkTypeParameters(getEffectiveTypeParameterDeclarations(node));\n    checkUnmatchedJSDocParameters(node);\n    forEach(node.parameters, checkParameter);\n    if (node.type) {\n      checkSourceElement(node.type);\n    }\n    addLazyDiagnostic(checkSignatureDeclarationDiagnostics);\n    function checkSignatureDeclarationDiagnostics() {\n      checkCollisionWithArgumentsInGeneratedCode(node);\n      let returnTypeNode = getEffectiveReturnTypeNode(node);\n      let returnTypeErrorLocation = returnTypeNode;\n      if (isInJSFile(node)) {\n        const typeTag = getJSDocTypeTag(node);\n        if (typeTag && typeTag.typeExpression && isTypeReferenceNode(typeTag.typeExpression.type)) {\n          const signature = getSingleCallSignature(getTypeFromTypeNode(typeTag.typeExpression));\n          if (signature && signature.declaration) {\n            returnTypeNode = getEffectiveReturnTypeNode(signature.declaration);\n            returnTypeErrorLocation = typeTag.typeExpression.type;\n          }\n        }\n      }\n      if (noImplicitAny && !returnTypeNode) {\n        switch (node.kind) {\n          case 181 /* ConstructSignature */:\n            error2(node, Diagnostics.Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type);\n            break;\n          case 180 /* CallSignature */:\n            error2(node, Diagnostics.Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type);\n            break;\n        }\n      }\n      if (returnTypeNode && returnTypeErrorLocation) {\n        const functionFlags2 = getFunctionFlags(node);\n        if ((functionFlags2 & (4 /* Invalid */ | 1 /* Generator */)) === 1 /* Generator */) {\n          const returnType = getTypeFromTypeNode(returnTypeNode);\n          if (returnType === voidType) {\n            error2(returnTypeErrorLocation, Diagnostics.A_generator_cannot_have_a_void_type_annotation);\n          } else {\n            checkGeneratorInstantiationAssignabilityToReturnType(returnType, functionFlags2, returnTypeErrorLocation);\n          }\n        } else if ((functionFlags2 & 3 /* AsyncGenerator */) === 2 /* Async */) {\n          checkAsyncFunctionReturnType(node, returnTypeNode, returnTypeErrorLocation);\n        }\n      }\n      if (node.kind !== 182 /* IndexSignature */ && node.kind !== 318 /* JSDocFunctionType */) {\n        registerForUnusedIdentifiersCheck(node);\n      }\n    }\n  }\n  function checkGeneratorInstantiationAssignabilityToReturnType(returnType, functionFlags, errorNode) {\n    const generatorYieldType = getIterationTypeOfGeneratorFunctionReturnType(0 /* Yield */, returnType, (functionFlags & 2 /* Async */) !== 0) || anyType;\n    const generatorReturnType = getIterationTypeOfGeneratorFunctionReturnType(1 /* Return */, returnType, (functionFlags & 2 /* Async */) !== 0) || generatorYieldType;\n    const generatorNextType = getIterationTypeOfGeneratorFunctionReturnType(2 /* Next */, returnType, (functionFlags & 2 /* Async */) !== 0) || unknownType;\n    const generatorInstantiation = createGeneratorType(generatorYieldType, generatorReturnType, generatorNextType, !!(functionFlags & 2 /* Async */));\n    return checkTypeAssignableTo(generatorInstantiation, returnType, errorNode);\n  }\n  function checkClassForDuplicateDeclarations(node) {\n    const instanceNames = /* @__PURE__ */ new Map();\n    const staticNames = /* @__PURE__ */ new Map();\n    const privateIdentifiers = /* @__PURE__ */ new Map();\n    for (const member of node.members) {\n      if (member.kind === 177 /* Constructor */) {\n        for (const param of member.parameters) {\n          if (isParameterPropertyDeclaration(param, member) && !isBindingPattern(param.name)) {\n            addName(instanceNames, param.name, param.name.escapedText, 3 /* GetOrSetAccessor */);\n          }\n        }\n      } else {\n        const isStaticMember = isStatic(member);\n        const name = member.name;\n        if (!name) {\n          continue;\n        }\n        const isPrivate = isPrivateIdentifier(name);\n        const privateStaticFlags = isPrivate && isStaticMember ? 16 /* PrivateStatic */ : 0;\n        const names = isPrivate ? privateIdentifiers : isStaticMember ? staticNames : instanceNames;\n        const memberName = name && getEffectivePropertyNameForPropertyNameNode(name);\n        if (memberName) {\n          switch (member.kind) {\n            case 178 /* GetAccessor */:\n              addName(names, name, memberName, 1 /* GetAccessor */ | privateStaticFlags);\n              break;\n            case 179 /* SetAccessor */:\n              addName(names, name, memberName, 2 /* SetAccessor */ | privateStaticFlags);\n              break;\n            case 173 /* PropertyDeclaration */:\n              addName(names, name, memberName, 3 /* GetOrSetAccessor */ | privateStaticFlags);\n              break;\n            case 175 /* MethodDeclaration */:\n              addName(names, name, memberName, 8 /* Method */ | privateStaticFlags);\n              break;\n          }\n        }\n      }\n    }\n    function addName(names, location, name, meaning) {\n      const prev = names.get(name);\n      if (prev) {\n        if ((prev & 16 /* PrivateStatic */) !== (meaning & 16 /* PrivateStatic */)) {\n          error2(location, Diagnostics.Duplicate_identifier_0_Static_and_instance_elements_cannot_share_the_same_private_name, getTextOfNode(location));\n        } else {\n          const prevIsMethod = !!(prev & 8 /* Method */);\n          const isMethod = !!(meaning & 8 /* Method */);\n          if (prevIsMethod || isMethod) {\n            if (prevIsMethod !== isMethod) {\n              error2(location, Diagnostics.Duplicate_identifier_0, getTextOfNode(location));\n            }\n          } else if (prev & meaning & ~16 /* PrivateStatic */) {\n            error2(location, Diagnostics.Duplicate_identifier_0, getTextOfNode(location));\n          } else {\n            names.set(name, prev | meaning);\n          }\n        }\n      } else {\n        names.set(name, meaning);\n      }\n    }\n  }\n  function checkClassForStaticPropertyNameConflicts(node) {\n    for (const member of node.members) {\n      const memberNameNode = member.name;\n      const isStaticMember = isStatic(member);\n      if (isStaticMember && memberNameNode) {\n        const memberName = getEffectivePropertyNameForPropertyNameNode(memberNameNode);\n        switch (memberName) {\n          case \"name\":\n          case \"length\":\n          case \"caller\":\n          case \"arguments\":\n            if (useDefineForClassFields) {\n              break;\n            }\n          // fall through\n          case \"prototype\":\n            const message = Diagnostics.Static_property_0_conflicts_with_built_in_property_Function_0_of_constructor_function_1;\n            const className = getNameOfSymbolAsWritten(getSymbolOfDeclaration(node));\n            error2(memberNameNode, message, memberName, className);\n            break;\n        }\n      }\n    }\n  }\n  function checkObjectTypeForDuplicateDeclarations(node) {\n    const names = /* @__PURE__ */ new Map();\n    for (const member of node.members) {\n      if (member.kind === 172 /* PropertySignature */) {\n        let memberName;\n        const name = member.name;\n        switch (name.kind) {\n          case 11 /* StringLiteral */:\n          case 9 /* NumericLiteral */:\n            memberName = name.text;\n            break;\n          case 80 /* Identifier */:\n            memberName = idText(name);\n            break;\n          default:\n            continue;\n        }\n        if (names.get(memberName)) {\n          error2(getNameOfDeclaration(member.symbol.valueDeclaration), Diagnostics.Duplicate_identifier_0, memberName);\n          error2(member.name, Diagnostics.Duplicate_identifier_0, memberName);\n        } else {\n          names.set(memberName, true);\n        }\n      }\n    }\n  }\n  function checkTypeForDuplicateIndexSignatures(node) {\n    if (node.kind === 265 /* InterfaceDeclaration */) {\n      const nodeSymbol = getSymbolOfDeclaration(node);\n      if (nodeSymbol.declarations && nodeSymbol.declarations.length > 0 && nodeSymbol.declarations[0] !== node) {\n        return;\n      }\n    }\n    const indexSymbol = getIndexSymbol(getSymbolOfDeclaration(node));\n    if (indexSymbol == null ? void 0 : indexSymbol.declarations) {\n      const indexSignatureMap = /* @__PURE__ */ new Map();\n      for (const declaration of indexSymbol.declarations) {\n        if (isIndexSignatureDeclaration(declaration)) {\n          if (declaration.parameters.length === 1 && declaration.parameters[0].type) {\n            forEachType(getTypeFromTypeNode(declaration.parameters[0].type), (type) => {\n              const entry = indexSignatureMap.get(getTypeId(type));\n              if (entry) {\n                entry.declarations.push(declaration);\n              } else {\n                indexSignatureMap.set(getTypeId(type), { type, declarations: [declaration] });\n              }\n            });\n          }\n        }\n      }\n      indexSignatureMap.forEach((entry) => {\n        if (entry.declarations.length > 1) {\n          for (const declaration of entry.declarations) {\n            error2(declaration, Diagnostics.Duplicate_index_signature_for_type_0, typeToString(entry.type));\n          }\n        }\n      });\n    }\n  }\n  function checkPropertyDeclaration(node) {\n    if (!checkGrammarModifiers(node) && !checkGrammarProperty(node)) checkGrammarComputedPropertyName(node.name);\n    checkVariableLikeDeclaration(node);\n    setNodeLinksForPrivateIdentifierScope(node);\n    if (hasSyntacticModifier(node, 64 /* Abstract */) && node.kind === 173 /* PropertyDeclaration */ && node.initializer) {\n      error2(node, Diagnostics.Property_0_cannot_have_an_initializer_because_it_is_marked_abstract, declarationNameToString(node.name));\n    }\n  }\n  function checkPropertySignature(node) {\n    if (isPrivateIdentifier(node.name)) {\n      error2(node, Diagnostics.Private_identifiers_are_not_allowed_outside_class_bodies);\n    }\n    return checkPropertyDeclaration(node);\n  }\n  function checkMethodDeclaration(node) {\n    if (!checkGrammarMethod(node)) checkGrammarComputedPropertyName(node.name);\n    if (isMethodDeclaration(node) && node.asteriskToken && isIdentifier(node.name) && idText(node.name) === \"constructor\") {\n      error2(node.name, Diagnostics.Class_constructor_may_not_be_a_generator);\n    }\n    checkFunctionOrMethodDeclaration(node);\n    if (hasSyntacticModifier(node, 64 /* Abstract */) && node.kind === 175 /* MethodDeclaration */ && node.body) {\n      error2(node, Diagnostics.Method_0_cannot_have_an_implementation_because_it_is_marked_abstract, declarationNameToString(node.name));\n    }\n    if (isPrivateIdentifier(node.name) && !getContainingClass(node)) {\n      error2(node, Diagnostics.Private_identifiers_are_not_allowed_outside_class_bodies);\n    }\n    setNodeLinksForPrivateIdentifierScope(node);\n  }\n  function setNodeLinksForPrivateIdentifierScope(node) {\n    if (isPrivateIdentifier(node.name)) {\n      if (languageVersion < LanguageFeatureMinimumTarget.PrivateNamesAndClassStaticBlocks || languageVersion < LanguageFeatureMinimumTarget.ClassAndClassElementDecorators || !useDefineForClassFields) {\n        for (let lexicalScope = getEnclosingBlockScopeContainer(node); !!lexicalScope; lexicalScope = getEnclosingBlockScopeContainer(lexicalScope)) {\n          getNodeLinks(lexicalScope).flags |= 1048576 /* ContainsClassWithPrivateIdentifiers */;\n        }\n        if (isClassExpression(node.parent)) {\n          const enclosingIterationStatement = getEnclosingIterationStatement(node.parent);\n          if (enclosingIterationStatement) {\n            getNodeLinks(node.name).flags |= 32768 /* BlockScopedBindingInLoop */;\n            getNodeLinks(enclosingIterationStatement).flags |= 4096 /* LoopWithCapturedBlockScopedBinding */;\n          }\n        }\n      }\n    }\n  }\n  function checkClassStaticBlockDeclaration(node) {\n    checkGrammarModifiers(node);\n    forEachChild(node, checkSourceElement);\n  }\n  function checkConstructorDeclaration(node) {\n    checkSignatureDeclaration(node);\n    if (!checkGrammarConstructorTypeParameters(node)) checkGrammarConstructorTypeAnnotation(node);\n    checkSourceElement(node.body);\n    const symbol = getSymbolOfDeclaration(node);\n    const firstDeclaration = getDeclarationOfKind(symbol, node.kind);\n    if (node === firstDeclaration) {\n      checkFunctionOrConstructorSymbol(symbol);\n    }\n    if (nodeIsMissing(node.body)) {\n      return;\n    }\n    addLazyDiagnostic(checkConstructorDeclarationDiagnostics);\n    return;\n    function isInstancePropertyWithInitializerOrPrivateIdentifierProperty(n) {\n      if (isPrivateIdentifierClassElementDeclaration(n)) {\n        return true;\n      }\n      return n.kind === 173 /* PropertyDeclaration */ && !isStatic(n) && !!n.initializer;\n    }\n    function checkConstructorDeclarationDiagnostics() {\n      const containingClassDecl = node.parent;\n      if (getClassExtendsHeritageElement(containingClassDecl)) {\n        captureLexicalThis(node.parent, containingClassDecl);\n        const classExtendsNull = classDeclarationExtendsNull(containingClassDecl);\n        const superCall = findFirstSuperCall(node.body);\n        if (superCall) {\n          if (classExtendsNull) {\n            error2(superCall, Diagnostics.A_constructor_cannot_contain_a_super_call_when_its_class_extends_null);\n          }\n          const superCallShouldBeRootLevel = !emitStandardClassFields && (some(node.parent.members, isInstancePropertyWithInitializerOrPrivateIdentifierProperty) || some(node.parameters, (p) => hasSyntacticModifier(p, 31 /* ParameterPropertyModifier */)));\n          if (superCallShouldBeRootLevel) {\n            if (!superCallIsRootLevelInConstructor(superCall, node.body)) {\n              error2(superCall, Diagnostics.A_super_call_must_be_a_root_level_statement_within_a_constructor_of_a_derived_class_that_contains_initialized_properties_parameter_properties_or_private_identifiers);\n            } else {\n              let superCallStatement;\n              for (const statement of node.body.statements) {\n                if (isExpressionStatement(statement) && isSuperCall(skipOuterExpressions(statement.expression))) {\n                  superCallStatement = statement;\n                  break;\n                }\n                if (nodeImmediatelyReferencesSuperOrThis(statement)) {\n                  break;\n                }\n              }\n              if (superCallStatement === void 0) {\n                error2(node, Diagnostics.A_super_call_must_be_the_first_statement_in_the_constructor_to_refer_to_super_or_this_when_a_derived_class_contains_initialized_properties_parameter_properties_or_private_identifiers);\n              }\n            }\n          }\n        } else if (!classExtendsNull) {\n          error2(node, Diagnostics.Constructors_for_derived_classes_must_contain_a_super_call);\n        }\n      }\n    }\n  }\n  function superCallIsRootLevelInConstructor(superCall, body) {\n    const superCallParent = walkUpParenthesizedExpressions(superCall.parent);\n    return isExpressionStatement(superCallParent) && superCallParent.parent === body;\n  }\n  function nodeImmediatelyReferencesSuperOrThis(node) {\n    if (node.kind === 108 /* SuperKeyword */ || node.kind === 110 /* ThisKeyword */) {\n      return true;\n    }\n    if (isThisContainerOrFunctionBlock(node)) {\n      return false;\n    }\n    return !!forEachChild(node, nodeImmediatelyReferencesSuperOrThis);\n  }\n  function checkAccessorDeclaration(node) {\n    if (isIdentifier(node.name) && idText(node.name) === \"constructor\" && isClassLike(node.parent)) {\n      error2(node.name, Diagnostics.Class_constructor_may_not_be_an_accessor);\n    }\n    addLazyDiagnostic(checkAccessorDeclarationDiagnostics);\n    checkSourceElement(node.body);\n    setNodeLinksForPrivateIdentifierScope(node);\n    function checkAccessorDeclarationDiagnostics() {\n      if (!checkGrammarFunctionLikeDeclaration(node) && !checkGrammarAccessor(node)) checkGrammarComputedPropertyName(node.name);\n      checkDecorators(node);\n      checkSignatureDeclaration(node);\n      if (node.kind === 178 /* GetAccessor */) {\n        if (!(node.flags & 33554432 /* Ambient */) && nodeIsPresent(node.body) && node.flags & 512 /* HasImplicitReturn */) {\n          if (!(node.flags & 1024 /* HasExplicitReturn */)) {\n            error2(node.name, Diagnostics.A_get_accessor_must_return_a_value);\n          }\n        }\n      }\n      if (node.name.kind === 168 /* ComputedPropertyName */) {\n        checkComputedPropertyName(node.name);\n      }\n      if (hasBindableName(node)) {\n        const symbol = getSymbolOfDeclaration(node);\n        const getter = getDeclarationOfKind(symbol, 178 /* GetAccessor */);\n        const setter = getDeclarationOfKind(symbol, 179 /* SetAccessor */);\n        if (getter && setter && !(getNodeCheckFlags(getter) & 1 /* TypeChecked */)) {\n          getNodeLinks(getter).flags |= 1 /* TypeChecked */;\n          const getterFlags = getEffectiveModifierFlags(getter);\n          const setterFlags = getEffectiveModifierFlags(setter);\n          if ((getterFlags & 64 /* Abstract */) !== (setterFlags & 64 /* Abstract */)) {\n            error2(getter.name, Diagnostics.Accessors_must_both_be_abstract_or_non_abstract);\n            error2(setter.name, Diagnostics.Accessors_must_both_be_abstract_or_non_abstract);\n          }\n          if (getterFlags & 4 /* Protected */ && !(setterFlags & (4 /* Protected */ | 2 /* Private */)) || getterFlags & 2 /* Private */ && !(setterFlags & 2 /* Private */)) {\n            error2(getter.name, Diagnostics.A_get_accessor_must_be_at_least_as_accessible_as_the_setter);\n            error2(setter.name, Diagnostics.A_get_accessor_must_be_at_least_as_accessible_as_the_setter);\n          }\n        }\n      }\n      const returnType = getTypeOfAccessors(getSymbolOfDeclaration(node));\n      if (node.kind === 178 /* GetAccessor */) {\n        checkAllCodePathsInNonVoidFunctionReturnOrThrow(node, returnType);\n      }\n    }\n  }\n  function checkMissingDeclaration(node) {\n    checkDecorators(node);\n  }\n  function getEffectiveTypeArgumentAtIndex(node, typeParameters, index) {\n    if (node.typeArguments && index < node.typeArguments.length) {\n      return getTypeFromTypeNode(node.typeArguments[index]);\n    }\n    return getEffectiveTypeArguments2(node, typeParameters)[index];\n  }\n  function getEffectiveTypeArguments2(node, typeParameters) {\n    return fillMissingTypeArguments(map(node.typeArguments, getTypeFromTypeNode), typeParameters, getMinTypeArgumentCount(typeParameters), isInJSFile(node));\n  }\n  function checkTypeArgumentConstraints(node, typeParameters) {\n    let typeArguments;\n    let mapper;\n    let result = true;\n    for (let i = 0; i < typeParameters.length; i++) {\n      const constraint = getConstraintOfTypeParameter(typeParameters[i]);\n      if (constraint) {\n        if (!typeArguments) {\n          typeArguments = getEffectiveTypeArguments2(node, typeParameters);\n          mapper = createTypeMapper(typeParameters, typeArguments);\n        }\n        result = result && checkTypeAssignableTo(\n          typeArguments[i],\n          instantiateType(constraint, mapper),\n          node.typeArguments[i],\n          Diagnostics.Type_0_does_not_satisfy_the_constraint_1\n        );\n      }\n    }\n    return result;\n  }\n  function getTypeParametersForTypeAndSymbol(type, symbol) {\n    if (!isErrorType(type)) {\n      return symbol.flags & 524288 /* TypeAlias */ && getSymbolLinks(symbol).typeParameters || (getObjectFlags(type) & 4 /* Reference */ ? type.target.localTypeParameters : void 0);\n    }\n    return void 0;\n  }\n  function getTypeParametersForTypeReferenceOrImport(node) {\n    const type = getTypeFromTypeNode(node);\n    if (!isErrorType(type)) {\n      const symbol = getNodeLinks(node).resolvedSymbol;\n      if (symbol) {\n        return getTypeParametersForTypeAndSymbol(type, symbol);\n      }\n    }\n    return void 0;\n  }\n  function checkTypeReferenceNode(node) {\n    checkGrammarTypeArguments(node, node.typeArguments);\n    if (node.kind === 184 /* TypeReference */ && !isInJSFile(node) && !isInJSDoc(node) && node.typeArguments && node.typeName.end !== node.typeArguments.pos) {\n      const sourceFile = getSourceFileOfNode(node);\n      if (scanTokenAtPosition(sourceFile, node.typeName.end) === 25 /* DotToken */) {\n        grammarErrorAtPos(node, skipTrivia(sourceFile.text, node.typeName.end), 1, Diagnostics.JSDoc_types_can_only_be_used_inside_documentation_comments);\n      }\n    }\n    forEach(node.typeArguments, checkSourceElement);\n    checkTypeReferenceOrImport(node);\n  }\n  function checkTypeReferenceOrImport(node) {\n    const type = getTypeFromTypeNode(node);\n    if (!isErrorType(type)) {\n      if (node.typeArguments) {\n        addLazyDiagnostic(() => {\n          const typeParameters = getTypeParametersForTypeReferenceOrImport(node);\n          if (typeParameters) {\n            checkTypeArgumentConstraints(node, typeParameters);\n          }\n        });\n      }\n      const symbol = getNodeLinks(node).resolvedSymbol;\n      if (symbol) {\n        if (some(symbol.declarations, (d) => isTypeDeclaration(d) && !!(d.flags & 536870912 /* Deprecated */))) {\n          addDeprecatedSuggestion(\n            getDeprecatedSuggestionNode(node),\n            symbol.declarations,\n            symbol.escapedName\n          );\n        }\n      }\n    }\n  }\n  function getTypeArgumentConstraint(node) {\n    const typeReferenceNode = tryCast(node.parent, isTypeReferenceType);\n    if (!typeReferenceNode) return void 0;\n    const typeParameters = getTypeParametersForTypeReferenceOrImport(typeReferenceNode);\n    if (!typeParameters) return void 0;\n    const constraint = getConstraintOfTypeParameter(typeParameters[typeReferenceNode.typeArguments.indexOf(node)]);\n    return constraint && instantiateType(constraint, createTypeMapper(typeParameters, getEffectiveTypeArguments2(typeReferenceNode, typeParameters)));\n  }\n  function checkTypeQuery(node) {\n    getTypeFromTypeQueryNode(node);\n  }\n  function checkTypeLiteral(node) {\n    forEach(node.members, checkSourceElement);\n    addLazyDiagnostic(checkTypeLiteralDiagnostics);\n    function checkTypeLiteralDiagnostics() {\n      const type = getTypeFromTypeLiteralOrFunctionOrConstructorTypeNode(node);\n      checkIndexConstraints(type, type.symbol);\n      checkTypeForDuplicateIndexSignatures(node);\n      checkObjectTypeForDuplicateDeclarations(node);\n    }\n  }\n  function checkArrayType(node) {\n    checkSourceElement(node.elementType);\n  }\n  function checkTupleType(node) {\n    let seenOptionalElement = false;\n    let seenRestElement = false;\n    for (const e of node.elements) {\n      let flags = getTupleElementFlags(e);\n      if (flags & 8 /* Variadic */) {\n        const type = getTypeFromTypeNode(e.type);\n        if (!isArrayLikeType(type)) {\n          error2(e, Diagnostics.A_rest_element_type_must_be_an_array_type);\n          break;\n        }\n        if (isArrayType(type) || isTupleType(type) && type.target.combinedFlags & 4 /* Rest */) {\n          flags |= 4 /* Rest */;\n        }\n      }\n      if (flags & 4 /* Rest */) {\n        if (seenRestElement) {\n          grammarErrorOnNode(e, Diagnostics.A_rest_element_cannot_follow_another_rest_element);\n          break;\n        }\n        seenRestElement = true;\n      } else if (flags & 2 /* Optional */) {\n        if (seenRestElement) {\n          grammarErrorOnNode(e, Diagnostics.An_optional_element_cannot_follow_a_rest_element);\n          break;\n        }\n        seenOptionalElement = true;\n      } else if (flags & 1 /* Required */ && seenOptionalElement) {\n        grammarErrorOnNode(e, Diagnostics.A_required_element_cannot_follow_an_optional_element);\n        break;\n      }\n    }\n    forEach(node.elements, checkSourceElement);\n    getTypeFromTypeNode(node);\n  }\n  function checkUnionOrIntersectionType(node) {\n    forEach(node.types, checkSourceElement);\n    getTypeFromTypeNode(node);\n  }\n  function checkIndexedAccessIndexType(type, accessNode) {\n    if (!(type.flags & 8388608 /* IndexedAccess */)) {\n      return type;\n    }\n    const objectType = type.objectType;\n    const indexType = type.indexType;\n    const objectIndexType = isGenericMappedType(objectType) && getMappedTypeNameTypeKind(objectType) === 2 /* Remapping */ ? getIndexTypeForMappedType(objectType, 0 /* None */) : getIndexType(objectType, 0 /* None */);\n    const hasNumberIndexInfo = !!getIndexInfoOfType(objectType, numberType);\n    if (everyType(indexType, (t) => isTypeAssignableTo(t, objectIndexType) || hasNumberIndexInfo && isApplicableIndexType(t, numberType))) {\n      if (accessNode.kind === 213 /* ElementAccessExpression */ && isAssignmentTarget(accessNode) && getObjectFlags(objectType) & 32 /* Mapped */ && getMappedTypeModifiers(objectType) & 1 /* IncludeReadonly */) {\n        error2(accessNode, Diagnostics.Index_signature_in_type_0_only_permits_reading, typeToString(objectType));\n      }\n      return type;\n    }\n    if (isGenericObjectType(objectType)) {\n      const propertyName = getPropertyNameFromIndex(indexType, accessNode);\n      if (propertyName) {\n        const propertySymbol = forEachType(getApparentType(objectType), (t) => getPropertyOfType(t, propertyName));\n        if (propertySymbol && getDeclarationModifierFlagsFromSymbol(propertySymbol) & 6 /* NonPublicAccessibilityModifier */) {\n          error2(accessNode, Diagnostics.Private_or_protected_member_0_cannot_be_accessed_on_a_type_parameter, unescapeLeadingUnderscores(propertyName));\n          return errorType;\n        }\n      }\n    }\n    error2(accessNode, Diagnostics.Type_0_cannot_be_used_to_index_type_1, typeToString(indexType), typeToString(objectType));\n    return errorType;\n  }\n  function checkIndexedAccessType(node) {\n    checkSourceElement(node.objectType);\n    checkSourceElement(node.indexType);\n    checkIndexedAccessIndexType(getTypeFromIndexedAccessTypeNode(node), node);\n  }\n  function checkMappedType(node) {\n    checkGrammarMappedType(node);\n    checkSourceElement(node.typeParameter);\n    checkSourceElement(node.nameType);\n    checkSourceElement(node.type);\n    if (!node.type) {\n      reportImplicitAny(node, anyType);\n    }\n    const type = getTypeFromMappedTypeNode(node);\n    const nameType = getNameTypeFromMappedType(type);\n    if (nameType) {\n      checkTypeAssignableTo(nameType, stringNumberSymbolType, node.nameType);\n    } else {\n      const constraintType = getConstraintTypeFromMappedType(type);\n      checkTypeAssignableTo(constraintType, stringNumberSymbolType, getEffectiveConstraintOfTypeParameter(node.typeParameter));\n    }\n  }\n  function checkGrammarMappedType(node) {\n    var _a;\n    if ((_a = node.members) == null ? void 0 : _a.length) {\n      return grammarErrorOnNode(node.members[0], Diagnostics.A_mapped_type_may_not_declare_properties_or_methods);\n    }\n  }\n  function checkThisType(node) {\n    getTypeFromThisTypeNode(node);\n  }\n  function checkTypeOperator(node) {\n    checkGrammarTypeOperatorNode(node);\n    checkSourceElement(node.type);\n  }\n  function checkConditionalType(node) {\n    forEachChild(node, checkSourceElement);\n  }\n  function checkInferType(node) {\n    if (!findAncestor(node, (n) => n.parent && n.parent.kind === 195 /* ConditionalType */ && n.parent.extendsType === n)) {\n      grammarErrorOnNode(node, Diagnostics.infer_declarations_are_only_permitted_in_the_extends_clause_of_a_conditional_type);\n    }\n    checkSourceElement(node.typeParameter);\n    const symbol = getSymbolOfDeclaration(node.typeParameter);\n    if (symbol.declarations && symbol.declarations.length > 1) {\n      const links = getSymbolLinks(symbol);\n      if (!links.typeParametersChecked) {\n        links.typeParametersChecked = true;\n        const typeParameter = getDeclaredTypeOfTypeParameter(symbol);\n        const declarations = getDeclarationsOfKind(symbol, 169 /* TypeParameter */);\n        if (!areTypeParametersIdentical(declarations, [typeParameter], (decl) => [decl])) {\n          const name = symbolToString(symbol);\n          for (const declaration of declarations) {\n            error2(declaration.name, Diagnostics.All_declarations_of_0_must_have_identical_constraints, name);\n          }\n        }\n      }\n    }\n    registerForUnusedIdentifiersCheck(node);\n  }\n  function checkTemplateLiteralType(node) {\n    for (const span of node.templateSpans) {\n      checkSourceElement(span.type);\n      const type = getTypeFromTypeNode(span.type);\n      checkTypeAssignableTo(type, templateConstraintType, span.type);\n    }\n    getTypeFromTypeNode(node);\n  }\n  function checkImportType(node) {\n    checkSourceElement(node.argument);\n    if (node.attributes) {\n      getResolutionModeOverride(node.attributes, grammarErrorOnNode);\n    }\n    checkTypeReferenceOrImport(node);\n  }\n  function checkNamedTupleMember(node) {\n    if (node.dotDotDotToken && node.questionToken) {\n      grammarErrorOnNode(node, Diagnostics.A_tuple_member_cannot_be_both_optional_and_rest);\n    }\n    if (node.type.kind === 191 /* OptionalType */) {\n      grammarErrorOnNode(node.type, Diagnostics.A_labeled_tuple_element_is_declared_as_optional_with_a_question_mark_after_the_name_and_before_the_colon_rather_than_after_the_type);\n    }\n    if (node.type.kind === 192 /* RestType */) {\n      grammarErrorOnNode(node.type, Diagnostics.A_labeled_tuple_element_is_declared_as_rest_with_a_before_the_name_rather_than_before_the_type);\n    }\n    checkSourceElement(node.type);\n    getTypeFromTypeNode(node);\n  }\n  function isPrivateWithinAmbient(node) {\n    return (hasEffectiveModifier(node, 2 /* Private */) || isPrivateIdentifierClassElementDeclaration(node)) && !!(node.flags & 33554432 /* Ambient */);\n  }\n  function getEffectiveDeclarationFlags(n, flagsToCheck) {\n    let flags = getCombinedModifierFlagsCached(n);\n    if (n.parent.kind !== 265 /* InterfaceDeclaration */ && n.parent.kind !== 264 /* ClassDeclaration */ && n.parent.kind !== 232 /* ClassExpression */ && n.flags & 33554432 /* Ambient */) {\n      const container = getEnclosingContainer(n);\n      if (container && container.flags & 128 /* ExportContext */ && !(flags & 128 /* Ambient */) && !(isModuleBlock(n.parent) && isModuleDeclaration(n.parent.parent) && isGlobalScopeAugmentation(n.parent.parent))) {\n        flags |= 32 /* Export */;\n      }\n      flags |= 128 /* Ambient */;\n    }\n    return flags & flagsToCheck;\n  }\n  function checkFunctionOrConstructorSymbol(symbol) {\n    addLazyDiagnostic(() => checkFunctionOrConstructorSymbolWorker(symbol));\n  }\n  function checkFunctionOrConstructorSymbolWorker(symbol) {\n    function getCanonicalOverload(overloads, implementation) {\n      const implementationSharesContainerWithFirstOverload = implementation !== void 0 && implementation.parent === overloads[0].parent;\n      return implementationSharesContainerWithFirstOverload ? implementation : overloads[0];\n    }\n    function checkFlagAgreementBetweenOverloads(overloads, implementation, flagsToCheck2, someOverloadFlags, allOverloadFlags) {\n      const someButNotAllOverloadFlags = someOverloadFlags ^ allOverloadFlags;\n      if (someButNotAllOverloadFlags !== 0) {\n        const canonicalFlags = getEffectiveDeclarationFlags(getCanonicalOverload(overloads, implementation), flagsToCheck2);\n        group(overloads, (o) => getSourceFileOfNode(o).fileName).forEach((overloadsInFile) => {\n          const canonicalFlagsForFile = getEffectiveDeclarationFlags(getCanonicalOverload(overloadsInFile, implementation), flagsToCheck2);\n          for (const o of overloadsInFile) {\n            const deviation = getEffectiveDeclarationFlags(o, flagsToCheck2) ^ canonicalFlags;\n            const deviationInFile = getEffectiveDeclarationFlags(o, flagsToCheck2) ^ canonicalFlagsForFile;\n            if (deviationInFile & 32 /* Export */) {\n              error2(getNameOfDeclaration(o), Diagnostics.Overload_signatures_must_all_be_exported_or_non_exported);\n            } else if (deviationInFile & 128 /* Ambient */) {\n              error2(getNameOfDeclaration(o), Diagnostics.Overload_signatures_must_all_be_ambient_or_non_ambient);\n            } else if (deviation & (2 /* Private */ | 4 /* Protected */)) {\n              error2(getNameOfDeclaration(o) || o, Diagnostics.Overload_signatures_must_all_be_public_private_or_protected);\n            } else if (deviation & 64 /* Abstract */) {\n              error2(getNameOfDeclaration(o), Diagnostics.Overload_signatures_must_all_be_abstract_or_non_abstract);\n            }\n          }\n        });\n      }\n    }\n    function checkQuestionTokenAgreementBetweenOverloads(overloads, implementation, someHaveQuestionToken2, allHaveQuestionToken2) {\n      if (someHaveQuestionToken2 !== allHaveQuestionToken2) {\n        const canonicalHasQuestionToken = hasQuestionToken(getCanonicalOverload(overloads, implementation));\n        forEach(overloads, (o) => {\n          const deviation = hasQuestionToken(o) !== canonicalHasQuestionToken;\n          if (deviation) {\n            error2(getNameOfDeclaration(o), Diagnostics.Overload_signatures_must_all_be_optional_or_required);\n          }\n        });\n      }\n    }\n    const flagsToCheck = 32 /* Export */ | 128 /* Ambient */ | 2 /* Private */ | 4 /* Protected */ | 64 /* Abstract */;\n    let someNodeFlags = 0 /* None */;\n    let allNodeFlags = flagsToCheck;\n    let someHaveQuestionToken = false;\n    let allHaveQuestionToken = true;\n    let hasOverloads = false;\n    let bodyDeclaration;\n    let lastSeenNonAmbientDeclaration;\n    let previousDeclaration;\n    const declarations = symbol.declarations;\n    const isConstructor = (symbol.flags & 16384 /* Constructor */) !== 0;\n    function reportImplementationExpectedError(node) {\n      if (node.name && nodeIsMissing(node.name)) {\n        return;\n      }\n      let seen = false;\n      const subsequentNode = forEachChild(node.parent, (c) => {\n        if (seen) {\n          return c;\n        } else {\n          seen = c === node;\n        }\n      });\n      if (subsequentNode && subsequentNode.pos === node.end) {\n        if (subsequentNode.kind === node.kind) {\n          const errorNode2 = subsequentNode.name || subsequentNode;\n          const subsequentName = subsequentNode.name;\n          if (node.name && subsequentName && // both are private identifiers\n          (isPrivateIdentifier(node.name) && isPrivateIdentifier(subsequentName) && node.name.escapedText === subsequentName.escapedText || // Both are computed property names\n          isComputedPropertyName(node.name) && isComputedPropertyName(subsequentName) && isTypeIdenticalTo(checkComputedPropertyName(node.name), checkComputedPropertyName(subsequentName)) || // Both are literal property names that are the same.\n          isPropertyNameLiteral(node.name) && isPropertyNameLiteral(subsequentName) && getEscapedTextOfIdentifierOrLiteral(node.name) === getEscapedTextOfIdentifierOrLiteral(subsequentName))) {\n            const reportError = (node.kind === 175 /* MethodDeclaration */ || node.kind === 174 /* MethodSignature */) && isStatic(node) !== isStatic(subsequentNode);\n            if (reportError) {\n              const diagnostic = isStatic(node) ? Diagnostics.Function_overload_must_be_static : Diagnostics.Function_overload_must_not_be_static;\n              error2(errorNode2, diagnostic);\n            }\n            return;\n          }\n          if (nodeIsPresent(subsequentNode.body)) {\n            error2(errorNode2, Diagnostics.Function_implementation_name_must_be_0, declarationNameToString(node.name));\n            return;\n          }\n        }\n      }\n      const errorNode = node.name || node;\n      if (isConstructor) {\n        error2(errorNode, Diagnostics.Constructor_implementation_is_missing);\n      } else {\n        if (hasSyntacticModifier(node, 64 /* Abstract */)) {\n          error2(errorNode, Diagnostics.All_declarations_of_an_abstract_method_must_be_consecutive);\n        } else {\n          error2(errorNode, Diagnostics.Function_implementation_is_missing_or_not_immediately_following_the_declaration);\n        }\n      }\n    }\n    let duplicateFunctionDeclaration = false;\n    let multipleConstructorImplementation = false;\n    let hasNonAmbientClass = false;\n    const functionDeclarations = [];\n    if (declarations) {\n      for (const current of declarations) {\n        const node = current;\n        const inAmbientContext = node.flags & 33554432 /* Ambient */;\n        const inAmbientContextOrInterface = node.parent && (node.parent.kind === 265 /* InterfaceDeclaration */ || node.parent.kind === 188 /* TypeLiteral */) || inAmbientContext;\n        if (inAmbientContextOrInterface) {\n          previousDeclaration = void 0;\n        }\n        if ((node.kind === 264 /* ClassDeclaration */ || node.kind === 232 /* ClassExpression */) && !inAmbientContext) {\n          hasNonAmbientClass = true;\n        }\n        if (node.kind === 263 /* FunctionDeclaration */ || node.kind === 175 /* MethodDeclaration */ || node.kind === 174 /* MethodSignature */ || node.kind === 177 /* Constructor */) {\n          functionDeclarations.push(node);\n          const currentNodeFlags = getEffectiveDeclarationFlags(node, flagsToCheck);\n          someNodeFlags |= currentNodeFlags;\n          allNodeFlags &= currentNodeFlags;\n          someHaveQuestionToken = someHaveQuestionToken || hasQuestionToken(node);\n          allHaveQuestionToken = allHaveQuestionToken && hasQuestionToken(node);\n          const bodyIsPresent = nodeIsPresent(node.body);\n          if (bodyIsPresent && bodyDeclaration) {\n            if (isConstructor) {\n              multipleConstructorImplementation = true;\n            } else {\n              duplicateFunctionDeclaration = true;\n            }\n          } else if ((previousDeclaration == null ? void 0 : previousDeclaration.parent) === node.parent && previousDeclaration.end !== node.pos) {\n            reportImplementationExpectedError(previousDeclaration);\n          }\n          if (bodyIsPresent) {\n            if (!bodyDeclaration) {\n              bodyDeclaration = node;\n            }\n          } else {\n            hasOverloads = true;\n          }\n          previousDeclaration = node;\n          if (!inAmbientContextOrInterface) {\n            lastSeenNonAmbientDeclaration = node;\n          }\n        }\n        if (isInJSFile(current) && isFunctionLike(current) && current.jsDoc) {\n          hasOverloads = length(getJSDocOverloadTags(current)) > 0;\n        }\n      }\n    }\n    if (multipleConstructorImplementation) {\n      forEach(functionDeclarations, (declaration) => {\n        error2(declaration, Diagnostics.Multiple_constructor_implementations_are_not_allowed);\n      });\n    }\n    if (duplicateFunctionDeclaration) {\n      forEach(functionDeclarations, (declaration) => {\n        error2(getNameOfDeclaration(declaration) || declaration, Diagnostics.Duplicate_function_implementation);\n      });\n    }\n    if (hasNonAmbientClass && !isConstructor && symbol.flags & 16 /* Function */ && declarations) {\n      const relatedDiagnostics = filter(declarations, (d) => d.kind === 264 /* ClassDeclaration */).map((d) => createDiagnosticForNode(d, Diagnostics.Consider_adding_a_declare_modifier_to_this_class));\n      forEach(declarations, (declaration) => {\n        const diagnostic = declaration.kind === 264 /* ClassDeclaration */ ? Diagnostics.Class_declaration_cannot_implement_overload_list_for_0 : declaration.kind === 263 /* FunctionDeclaration */ ? Diagnostics.Function_with_bodies_can_only_merge_with_classes_that_are_ambient : void 0;\n        if (diagnostic) {\n          addRelatedInfo(\n            error2(getNameOfDeclaration(declaration) || declaration, diagnostic, symbolName(symbol)),\n            ...relatedDiagnostics\n          );\n        }\n      });\n    }\n    if (lastSeenNonAmbientDeclaration && !lastSeenNonAmbientDeclaration.body && !hasSyntacticModifier(lastSeenNonAmbientDeclaration, 64 /* Abstract */) && !lastSeenNonAmbientDeclaration.questionToken) {\n      reportImplementationExpectedError(lastSeenNonAmbientDeclaration);\n    }\n    if (hasOverloads) {\n      if (declarations) {\n        checkFlagAgreementBetweenOverloads(declarations, bodyDeclaration, flagsToCheck, someNodeFlags, allNodeFlags);\n        checkQuestionTokenAgreementBetweenOverloads(declarations, bodyDeclaration, someHaveQuestionToken, allHaveQuestionToken);\n      }\n      if (bodyDeclaration) {\n        const signatures = getSignaturesOfSymbol(symbol);\n        const bodySignature = getSignatureFromDeclaration(bodyDeclaration);\n        for (const signature of signatures) {\n          if (!isImplementationCompatibleWithOverload(bodySignature, signature)) {\n            const errorNode = signature.declaration && isJSDocSignature(signature.declaration) ? signature.declaration.parent.tagName : signature.declaration;\n            addRelatedInfo(\n              error2(errorNode, Diagnostics.This_overload_signature_is_not_compatible_with_its_implementation_signature),\n              createDiagnosticForNode(bodyDeclaration, Diagnostics.The_implementation_signature_is_declared_here)\n            );\n            break;\n          }\n        }\n      }\n    }\n  }\n  function checkExportsOnMergedDeclarations(node) {\n    addLazyDiagnostic(() => checkExportsOnMergedDeclarationsWorker(node));\n  }\n  function checkExportsOnMergedDeclarationsWorker(node) {\n    let symbol = node.localSymbol;\n    if (!symbol) {\n      symbol = getSymbolOfDeclaration(node);\n      if (!symbol.exportSymbol) {\n        return;\n      }\n    }\n    if (getDeclarationOfKind(symbol, node.kind) !== node) {\n      return;\n    }\n    let exportedDeclarationSpaces = 0 /* None */;\n    let nonExportedDeclarationSpaces = 0 /* None */;\n    let defaultExportedDeclarationSpaces = 0 /* None */;\n    for (const d of symbol.declarations) {\n      const declarationSpaces = getDeclarationSpaces(d);\n      const effectiveDeclarationFlags = getEffectiveDeclarationFlags(d, 32 /* Export */ | 2048 /* Default */);\n      if (effectiveDeclarationFlags & 32 /* Export */) {\n        if (effectiveDeclarationFlags & 2048 /* Default */) {\n          defaultExportedDeclarationSpaces |= declarationSpaces;\n        } else {\n          exportedDeclarationSpaces |= declarationSpaces;\n        }\n      } else {\n        nonExportedDeclarationSpaces |= declarationSpaces;\n      }\n    }\n    const nonDefaultExportedDeclarationSpaces = exportedDeclarationSpaces | nonExportedDeclarationSpaces;\n    const commonDeclarationSpacesForExportsAndLocals = exportedDeclarationSpaces & nonExportedDeclarationSpaces;\n    const commonDeclarationSpacesForDefaultAndNonDefault = defaultExportedDeclarationSpaces & nonDefaultExportedDeclarationSpaces;\n    if (commonDeclarationSpacesForExportsAndLocals || commonDeclarationSpacesForDefaultAndNonDefault) {\n      for (const d of symbol.declarations) {\n        const declarationSpaces = getDeclarationSpaces(d);\n        const name = getNameOfDeclaration(d);\n        if (declarationSpaces & commonDeclarationSpacesForDefaultAndNonDefault) {\n          error2(name, Diagnostics.Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_default_0_declaration_instead, declarationNameToString(name));\n        } else if (declarationSpaces & commonDeclarationSpacesForExportsAndLocals) {\n          error2(name, Diagnostics.Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local, declarationNameToString(name));\n        }\n      }\n    }\n    function getDeclarationSpaces(decl) {\n      let d = decl;\n      switch (d.kind) {\n        case 265 /* InterfaceDeclaration */:\n        case 266 /* TypeAliasDeclaration */:\n        // A jsdoc typedef and callback are, by definition, type aliases.\n        // falls through\n        case 347 /* JSDocTypedefTag */:\n        case 339 /* JSDocCallbackTag */:\n        case 341 /* JSDocEnumTag */:\n          return 2 /* ExportType */;\n        case 268 /* ModuleDeclaration */:\n          return isAmbientModule(d) || getModuleInstanceState(d) !== 0 /* NonInstantiated */ ? 4 /* ExportNamespace */ | 1 /* ExportValue */ : 4 /* ExportNamespace */;\n        case 264 /* ClassDeclaration */:\n        case 267 /* EnumDeclaration */:\n        case 307 /* EnumMember */:\n          return 2 /* ExportType */ | 1 /* ExportValue */;\n        case 308 /* SourceFile */:\n          return 2 /* ExportType */ | 1 /* ExportValue */ | 4 /* ExportNamespace */;\n        case 278 /* ExportAssignment */:\n        case 227 /* BinaryExpression */:\n          const node2 = d;\n          const expression = isExportAssignment(node2) ? node2.expression : node2.right;\n          if (!isEntityNameExpression(expression)) {\n            return 1 /* ExportValue */;\n          }\n          d = expression;\n        // The below options all declare an Alias, which is allowed to merge with other values within the importing module.\n        // falls through\n        case 272 /* ImportEqualsDeclaration */:\n        case 275 /* NamespaceImport */:\n        case 274 /* ImportClause */:\n          let result = 0 /* None */;\n          const target = resolveAlias(getSymbolOfDeclaration(d));\n          forEach(target.declarations, (d2) => {\n            result |= getDeclarationSpaces(d2);\n          });\n          return result;\n        case 261 /* VariableDeclaration */:\n        case 209 /* BindingElement */:\n        case 263 /* FunctionDeclaration */:\n        case 277 /* ImportSpecifier */:\n        // https://github.com/Microsoft/TypeScript/pull/7591\n        case 80 /* Identifier */:\n          return 1 /* ExportValue */;\n        case 174 /* MethodSignature */:\n        case 172 /* PropertySignature */:\n          return 2 /* ExportType */;\n        default:\n          return Debug.failBadSyntaxKind(d);\n      }\n    }\n  }\n  function getAwaitedTypeOfPromise(type, errorNode, diagnosticMessage, ...args) {\n    const promisedType = getPromisedTypeOfPromise(type, errorNode);\n    return promisedType && getAwaitedType(promisedType, errorNode, diagnosticMessage, ...args);\n  }\n  function getPromisedTypeOfPromise(type, errorNode, thisTypeForErrorOut) {\n    if (isTypeAny(type)) {\n      return void 0;\n    }\n    const typeAsPromise = type;\n    if (typeAsPromise.promisedTypeOfPromise) {\n      return typeAsPromise.promisedTypeOfPromise;\n    }\n    if (isReferenceToType2(type, getGlobalPromiseType(\n      /*reportErrors*/\n      false\n    ))) {\n      return typeAsPromise.promisedTypeOfPromise = getTypeArguments(type)[0];\n    }\n    if (allTypesAssignableToKind(getBaseConstraintOrType(type), 402784252 /* Primitive */ | 131072 /* Never */)) {\n      return void 0;\n    }\n    const thenFunction = getTypeOfPropertyOfType(type, \"then\");\n    if (isTypeAny(thenFunction)) {\n      return void 0;\n    }\n    const thenSignatures = thenFunction ? getSignaturesOfType(thenFunction, 0 /* Call */) : emptyArray;\n    if (thenSignatures.length === 0) {\n      if (errorNode) {\n        error2(errorNode, Diagnostics.A_promise_must_have_a_then_method);\n      }\n      return void 0;\n    }\n    let thisTypeForError;\n    let candidates;\n    for (const thenSignature of thenSignatures) {\n      const thisType = getThisTypeOfSignature(thenSignature);\n      if (thisType && thisType !== voidType && !isTypeRelatedTo(type, thisType, subtypeRelation)) {\n        thisTypeForError = thisType;\n      } else {\n        candidates = append(candidates, thenSignature);\n      }\n    }\n    if (!candidates) {\n      Debug.assertIsDefined(thisTypeForError);\n      if (thisTypeForErrorOut) {\n        thisTypeForErrorOut.value = thisTypeForError;\n      }\n      if (errorNode) {\n        error2(errorNode, Diagnostics.The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1, typeToString(type), typeToString(thisTypeForError));\n      }\n      return void 0;\n    }\n    const onfulfilledParameterType = getTypeWithFacts(getUnionType(map(candidates, getTypeOfFirstParameterOfSignature)), 2097152 /* NEUndefinedOrNull */);\n    if (isTypeAny(onfulfilledParameterType)) {\n      return void 0;\n    }\n    const onfulfilledParameterSignatures = getSignaturesOfType(onfulfilledParameterType, 0 /* Call */);\n    if (onfulfilledParameterSignatures.length === 0) {\n      if (errorNode) {\n        error2(errorNode, Diagnostics.The_first_parameter_of_the_then_method_of_a_promise_must_be_a_callback);\n      }\n      return void 0;\n    }\n    return typeAsPromise.promisedTypeOfPromise = getUnionType(map(onfulfilledParameterSignatures, getTypeOfFirstParameterOfSignature), 2 /* Subtype */);\n  }\n  function checkAwaitedType(type, withAlias, errorNode, diagnosticMessage, ...args) {\n    const awaitedType = withAlias ? getAwaitedType(type, errorNode, diagnosticMessage, ...args) : getAwaitedTypeNoAlias(type, errorNode, diagnosticMessage, ...args);\n    return awaitedType || errorType;\n  }\n  function isThenableType(type) {\n    if (allTypesAssignableToKind(getBaseConstraintOrType(type), 402784252 /* Primitive */ | 131072 /* Never */)) {\n      return false;\n    }\n    const thenFunction = getTypeOfPropertyOfType(type, \"then\");\n    return !!thenFunction && getSignaturesOfType(getTypeWithFacts(thenFunction, 2097152 /* NEUndefinedOrNull */), 0 /* Call */).length > 0;\n  }\n  function isAwaitedTypeInstantiation(type) {\n    var _a;\n    if (type.flags & 16777216 /* Conditional */) {\n      const awaitedSymbol = getGlobalAwaitedSymbol(\n        /*reportErrors*/\n        false\n      );\n      return !!awaitedSymbol && type.aliasSymbol === awaitedSymbol && ((_a = type.aliasTypeArguments) == null ? void 0 : _a.length) === 1;\n    }\n    return false;\n  }\n  function unwrapAwaitedType(type) {\n    return type.flags & 1048576 /* Union */ ? mapType(type, unwrapAwaitedType) : isAwaitedTypeInstantiation(type) ? type.aliasTypeArguments[0] : type;\n  }\n  function isAwaitedTypeNeeded(type) {\n    if (isTypeAny(type) || isAwaitedTypeInstantiation(type)) {\n      return false;\n    }\n    if (isGenericObjectType(type)) {\n      const baseConstraint = getBaseConstraintOfType(type);\n      if (baseConstraint ? baseConstraint.flags & 3 /* AnyOrUnknown */ || isEmptyObjectType(baseConstraint) || someType(baseConstraint, isThenableType) : maybeTypeOfKind(type, 8650752 /* TypeVariable */)) {\n        return true;\n      }\n    }\n    return false;\n  }\n  function tryCreateAwaitedType(type) {\n    const awaitedSymbol = getGlobalAwaitedSymbol(\n      /*reportErrors*/\n      true\n    );\n    if (awaitedSymbol) {\n      return getTypeAliasInstantiation(awaitedSymbol, [unwrapAwaitedType(type)]);\n    }\n    return void 0;\n  }\n  function createAwaitedTypeIfNeeded(type) {\n    if (isAwaitedTypeNeeded(type)) {\n      return tryCreateAwaitedType(type) ?? type;\n    }\n    Debug.assert(isAwaitedTypeInstantiation(type) || getPromisedTypeOfPromise(type) === void 0, \"type provided should not be a non-generic 'promise'-like.\");\n    return type;\n  }\n  function getAwaitedType(type, errorNode, diagnosticMessage, ...args) {\n    const awaitedType = getAwaitedTypeNoAlias(type, errorNode, diagnosticMessage, ...args);\n    return awaitedType && createAwaitedTypeIfNeeded(awaitedType);\n  }\n  function getAwaitedTypeNoAlias(type, errorNode, diagnosticMessage, ...args) {\n    if (isTypeAny(type)) {\n      return type;\n    }\n    if (isAwaitedTypeInstantiation(type)) {\n      return type;\n    }\n    const typeAsAwaitable = type;\n    if (typeAsAwaitable.awaitedTypeOfType) {\n      return typeAsAwaitable.awaitedTypeOfType;\n    }\n    if (type.flags & 1048576 /* Union */) {\n      if (awaitedTypeStack.lastIndexOf(type.id) >= 0) {\n        if (errorNode) {\n          error2(errorNode, Diagnostics.Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method);\n        }\n        return void 0;\n      }\n      const mapper = errorNode ? (constituentType) => getAwaitedTypeNoAlias(constituentType, errorNode, diagnosticMessage, ...args) : getAwaitedTypeNoAlias;\n      awaitedTypeStack.push(type.id);\n      const mapped = mapType(type, mapper);\n      awaitedTypeStack.pop();\n      return typeAsAwaitable.awaitedTypeOfType = mapped;\n    }\n    if (isAwaitedTypeNeeded(type)) {\n      return typeAsAwaitable.awaitedTypeOfType = type;\n    }\n    const thisTypeForErrorOut = { value: void 0 };\n    const promisedType = getPromisedTypeOfPromise(\n      type,\n      /*errorNode*/\n      void 0,\n      thisTypeForErrorOut\n    );\n    if (promisedType) {\n      if (type.id === promisedType.id || awaitedTypeStack.lastIndexOf(promisedType.id) >= 0) {\n        if (errorNode) {\n          error2(errorNode, Diagnostics.Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method);\n        }\n        return void 0;\n      }\n      awaitedTypeStack.push(type.id);\n      const awaitedType = getAwaitedTypeNoAlias(promisedType, errorNode, diagnosticMessage, ...args);\n      awaitedTypeStack.pop();\n      if (!awaitedType) {\n        return void 0;\n      }\n      return typeAsAwaitable.awaitedTypeOfType = awaitedType;\n    }\n    if (isThenableType(type)) {\n      if (errorNode) {\n        Debug.assertIsDefined(diagnosticMessage);\n        let chain;\n        if (thisTypeForErrorOut.value) {\n          chain = chainDiagnosticMessages(chain, Diagnostics.The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1, typeToString(type), typeToString(thisTypeForErrorOut.value));\n        }\n        chain = chainDiagnosticMessages(chain, diagnosticMessage, ...args);\n        diagnostics.add(createDiagnosticForNodeFromMessageChain(getSourceFileOfNode(errorNode), errorNode, chain));\n      }\n      return void 0;\n    }\n    return typeAsAwaitable.awaitedTypeOfType = type;\n  }\n  function checkAsyncFunctionReturnType(node, returnTypeNode, returnTypeErrorLocation) {\n    const returnType = getTypeFromTypeNode(returnTypeNode);\n    if (languageVersion >= 2 /* ES2015 */) {\n      if (isErrorType(returnType)) {\n        return;\n      }\n      const globalPromiseType = getGlobalPromiseType(\n        /*reportErrors*/\n        true\n      );\n      if (globalPromiseType !== emptyGenericType && !isReferenceToType2(returnType, globalPromiseType)) {\n        reportErrorForInvalidReturnType(Diagnostics.The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_write_Promise_0, returnTypeNode, returnTypeErrorLocation, typeToString(getAwaitedTypeNoAlias(returnType) || voidType));\n        return;\n      }\n    } else {\n      markLinkedReferences(node, 5 /* AsyncFunction */);\n      if (isErrorType(returnType)) {\n        return;\n      }\n      const promiseConstructorName = getEntityNameFromTypeNode(returnTypeNode);\n      if (promiseConstructorName === void 0) {\n        reportErrorForInvalidReturnType(Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_because_it_does_not_refer_to_a_Promise_compatible_constructor_value, returnTypeNode, returnTypeErrorLocation, typeToString(returnType));\n        return;\n      }\n      const promiseConstructorSymbol = resolveEntityName(\n        promiseConstructorName,\n        111551 /* Value */,\n        /*ignoreErrors*/\n        true\n      );\n      const promiseConstructorType = promiseConstructorSymbol ? getTypeOfSymbol(promiseConstructorSymbol) : errorType;\n      if (isErrorType(promiseConstructorType)) {\n        if (promiseConstructorName.kind === 80 /* Identifier */ && promiseConstructorName.escapedText === \"Promise\" && getTargetType(returnType) === getGlobalPromiseType(\n          /*reportErrors*/\n          false\n        )) {\n          error2(returnTypeErrorLocation, Diagnostics.An_async_function_or_method_in_ES5_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option);\n        } else {\n          reportErrorForInvalidReturnType(Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_because_it_does_not_refer_to_a_Promise_compatible_constructor_value, returnTypeNode, returnTypeErrorLocation, entityNameToString(promiseConstructorName));\n        }\n        return;\n      }\n      const globalPromiseConstructorLikeType = getGlobalPromiseConstructorLikeType(\n        /*reportErrors*/\n        true\n      );\n      if (globalPromiseConstructorLikeType === emptyObjectType) {\n        reportErrorForInvalidReturnType(Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_because_it_does_not_refer_to_a_Promise_compatible_constructor_value, returnTypeNode, returnTypeErrorLocation, entityNameToString(promiseConstructorName));\n        return;\n      }\n      const headMessage = Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_because_it_does_not_refer_to_a_Promise_compatible_constructor_value;\n      const errorInfo = () => returnTypeNode === returnTypeErrorLocation ? void 0 : chainDiagnosticMessages(\n        /*details*/\n        void 0,\n        Diagnostics.The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type\n      );\n      if (!checkTypeAssignableTo(promiseConstructorType, globalPromiseConstructorLikeType, returnTypeErrorLocation, headMessage, errorInfo)) {\n        return;\n      }\n      const rootName = promiseConstructorName && getFirstIdentifier(promiseConstructorName);\n      const collidingSymbol = getSymbol2(node.locals, rootName.escapedText, 111551 /* Value */);\n      if (collidingSymbol) {\n        error2(collidingSymbol.valueDeclaration, Diagnostics.Duplicate_identifier_0_Compiler_uses_declaration_1_to_support_async_functions, idText(rootName), entityNameToString(promiseConstructorName));\n        return;\n      }\n    }\n    checkAwaitedType(\n      returnType,\n      /*withAlias*/\n      false,\n      node,\n      Diagnostics.The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member\n    );\n    function reportErrorForInvalidReturnType(message, returnTypeNode2, returnTypeErrorLocation2, typeName) {\n      if (returnTypeNode2 === returnTypeErrorLocation2) {\n        error2(returnTypeErrorLocation2, message, typeName);\n      } else {\n        const diag2 = error2(returnTypeErrorLocation2, Diagnostics.The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type);\n        addRelatedInfo(diag2, createDiagnosticForNode(returnTypeNode2, message, typeName));\n      }\n    }\n  }\n  function checkGrammarDecorator(decorator) {\n    const sourceFile = getSourceFileOfNode(decorator);\n    if (!hasParseDiagnostics(sourceFile)) {\n      let node = decorator.expression;\n      if (isParenthesizedExpression(node)) {\n        return false;\n      }\n      let canHaveCallExpression = true;\n      let errorNode;\n      while (true) {\n        if (isExpressionWithTypeArguments(node) || isNonNullExpression(node)) {\n          node = node.expression;\n          continue;\n        }\n        if (isCallExpression(node)) {\n          if (!canHaveCallExpression) {\n            errorNode = node;\n          }\n          if (node.questionDotToken) {\n            errorNode = node.questionDotToken;\n          }\n          node = node.expression;\n          canHaveCallExpression = false;\n          continue;\n        }\n        if (isPropertyAccessExpression(node)) {\n          if (node.questionDotToken) {\n            errorNode = node.questionDotToken;\n          }\n          node = node.expression;\n          canHaveCallExpression = false;\n          continue;\n        }\n        if (!isIdentifier(node)) {\n          errorNode = node;\n        }\n        break;\n      }\n      if (errorNode) {\n        addRelatedInfo(\n          error2(decorator.expression, Diagnostics.Expression_must_be_enclosed_in_parentheses_to_be_used_as_a_decorator),\n          createDiagnosticForNode(errorNode, Diagnostics.Invalid_syntax_in_decorator)\n        );\n        return true;\n      }\n    }\n    return false;\n  }\n  function checkDecorator(node) {\n    checkGrammarDecorator(node);\n    const signature = getResolvedSignature(node);\n    checkDeprecatedSignature(signature, node);\n    const returnType = getReturnTypeOfSignature(signature);\n    if (returnType.flags & 1 /* Any */) {\n      return;\n    }\n    const decoratorSignature = getDecoratorCallSignature(node);\n    if (!(decoratorSignature == null ? void 0 : decoratorSignature.resolvedReturnType)) return;\n    let headMessage;\n    const expectedReturnType = decoratorSignature.resolvedReturnType;\n    switch (node.parent.kind) {\n      case 264 /* ClassDeclaration */:\n      case 232 /* ClassExpression */:\n        headMessage = Diagnostics.Decorator_function_return_type_0_is_not_assignable_to_type_1;\n        break;\n      case 173 /* PropertyDeclaration */:\n        if (!legacyDecorators) {\n          headMessage = Diagnostics.Decorator_function_return_type_0_is_not_assignable_to_type_1;\n          break;\n        }\n      // falls through\n      case 170 /* Parameter */:\n        headMessage = Diagnostics.Decorator_function_return_type_is_0_but_is_expected_to_be_void_or_any;\n        break;\n      case 175 /* MethodDeclaration */:\n      case 178 /* GetAccessor */:\n      case 179 /* SetAccessor */:\n        headMessage = Diagnostics.Decorator_function_return_type_0_is_not_assignable_to_type_1;\n        break;\n      default:\n        return Debug.failBadSyntaxKind(node.parent);\n    }\n    checkTypeAssignableTo(returnType, expectedReturnType, node.expression, headMessage);\n  }\n  function createCallSignature(typeParameters, thisParameter, parameters, returnType, typePredicate, minArgumentCount = parameters.length, flags = 0 /* None */) {\n    const decl = factory.createFunctionTypeNode(\n      /*typeParameters*/\n      void 0,\n      emptyArray,\n      factory.createKeywordTypeNode(133 /* AnyKeyword */)\n    );\n    return createSignature(decl, typeParameters, thisParameter, parameters, returnType, typePredicate, minArgumentCount, flags);\n  }\n  function createFunctionType(typeParameters, thisParameter, parameters, returnType, typePredicate, minArgumentCount, flags) {\n    const signature = createCallSignature(typeParameters, thisParameter, parameters, returnType, typePredicate, minArgumentCount, flags);\n    return getOrCreateTypeFromSignature(signature);\n  }\n  function createGetterFunctionType(type) {\n    return createFunctionType(\n      /*typeParameters*/\n      void 0,\n      /*thisParameter*/\n      void 0,\n      emptyArray,\n      type\n    );\n  }\n  function createSetterFunctionType(type) {\n    const valueParam = createParameter2(\"value\", type);\n    return createFunctionType(\n      /*typeParameters*/\n      void 0,\n      /*thisParameter*/\n      void 0,\n      [valueParam],\n      voidType\n    );\n  }\n  function getEntityNameForDecoratorMetadata(node) {\n    if (node) {\n      switch (node.kind) {\n        case 194 /* IntersectionType */:\n        case 193 /* UnionType */:\n          return getEntityNameForDecoratorMetadataFromTypeList(node.types);\n        case 195 /* ConditionalType */:\n          return getEntityNameForDecoratorMetadataFromTypeList([node.trueType, node.falseType]);\n        case 197 /* ParenthesizedType */:\n        case 203 /* NamedTupleMember */:\n          return getEntityNameForDecoratorMetadata(node.type);\n        case 184 /* TypeReference */:\n          return node.typeName;\n      }\n    }\n  }\n  function getEntityNameForDecoratorMetadataFromTypeList(types) {\n    let commonEntityName;\n    for (let typeNode of types) {\n      while (typeNode.kind === 197 /* ParenthesizedType */ || typeNode.kind === 203 /* NamedTupleMember */) {\n        typeNode = typeNode.type;\n      }\n      if (typeNode.kind === 146 /* NeverKeyword */) {\n        continue;\n      }\n      if (!strictNullChecks && (typeNode.kind === 202 /* LiteralType */ && typeNode.literal.kind === 106 /* NullKeyword */ || typeNode.kind === 157 /* UndefinedKeyword */)) {\n        continue;\n      }\n      const individualEntityName = getEntityNameForDecoratorMetadata(typeNode);\n      if (!individualEntityName) {\n        return void 0;\n      }\n      if (commonEntityName) {\n        if (!isIdentifier(commonEntityName) || !isIdentifier(individualEntityName) || commonEntityName.escapedText !== individualEntityName.escapedText) {\n          return void 0;\n        }\n      } else {\n        commonEntityName = individualEntityName;\n      }\n    }\n    return commonEntityName;\n  }\n  function getParameterTypeNodeForDecoratorCheck(node) {\n    const typeNode = getEffectiveTypeAnnotationNode(node);\n    return isRestParameter(node) ? getRestParameterElementType(typeNode) : typeNode;\n  }\n  function checkDecorators(node) {\n    if (!canHaveDecorators(node) || !hasDecorators(node) || !node.modifiers || !nodeCanBeDecorated(legacyDecorators, node, node.parent, node.parent.parent)) {\n      return;\n    }\n    const firstDecorator = find(node.modifiers, isDecorator);\n    if (!firstDecorator) {\n      return;\n    }\n    if (legacyDecorators) {\n      checkExternalEmitHelpers(firstDecorator, 8 /* Decorate */);\n      if (node.kind === 170 /* Parameter */) {\n        checkExternalEmitHelpers(firstDecorator, 32 /* Param */);\n      }\n    } else if (languageVersion < LanguageFeatureMinimumTarget.ClassAndClassElementDecorators) {\n      checkExternalEmitHelpers(firstDecorator, 8 /* ESDecorateAndRunInitializers */);\n      if (isClassDeclaration(node)) {\n        if (!node.name) {\n          checkExternalEmitHelpers(firstDecorator, 4194304 /* SetFunctionName */);\n        } else {\n          const member = getFirstTransformableStaticClassElement(node);\n          if (member) {\n            checkExternalEmitHelpers(firstDecorator, 4194304 /* SetFunctionName */);\n          }\n        }\n      } else if (!isClassExpression(node)) {\n        if (isPrivateIdentifier(node.name) && (isMethodDeclaration(node) || isAccessor(node) || isAutoAccessorPropertyDeclaration(node))) {\n          checkExternalEmitHelpers(firstDecorator, 4194304 /* SetFunctionName */);\n        }\n        if (isComputedPropertyName(node.name)) {\n          checkExternalEmitHelpers(firstDecorator, 8388608 /* PropKey */);\n        }\n      }\n    }\n    markLinkedReferences(node, 8 /* Decorator */);\n    for (const modifier of node.modifiers) {\n      if (isDecorator(modifier)) {\n        checkDecorator(modifier);\n      }\n    }\n  }\n  function checkFunctionDeclaration(node) {\n    addLazyDiagnostic(checkFunctionDeclarationDiagnostics);\n    function checkFunctionDeclarationDiagnostics() {\n      checkFunctionOrMethodDeclaration(node);\n      checkGrammarForGenerator(node);\n      checkCollisionsForDeclarationName(node, node.name);\n    }\n  }\n  function checkJSDocTypeAliasTag(node) {\n    if (!node.typeExpression) {\n      error2(node.name, Diagnostics.JSDoc_typedef_tag_should_either_have_a_type_annotation_or_be_followed_by_property_or_member_tags);\n    }\n    if (node.name) {\n      checkTypeNameIsReserved(node.name, Diagnostics.Type_alias_name_cannot_be_0);\n    }\n    checkSourceElement(node.typeExpression);\n    checkTypeParameters(getEffectiveTypeParameterDeclarations(node));\n  }\n  function checkJSDocTemplateTag(node) {\n    checkSourceElement(node.constraint);\n    for (const tp of node.typeParameters) {\n      checkSourceElement(tp);\n    }\n  }\n  function checkJSDocTypeTag(node) {\n    checkSourceElement(node.typeExpression);\n  }\n  function checkJSDocSatisfiesTag(node) {\n    checkSourceElement(node.typeExpression);\n    const host2 = getEffectiveJSDocHost(node);\n    if (host2) {\n      const tags = getAllJSDocTags(host2, isJSDocSatisfiesTag);\n      if (length(tags) > 1) {\n        for (let i = 1; i < length(tags); i++) {\n          const tagName = tags[i].tagName;\n          error2(tagName, Diagnostics._0_tag_already_specified, idText(tagName));\n        }\n      }\n    }\n  }\n  function checkJSDocLinkLikeTag(node) {\n    if (node.name) {\n      resolveJSDocMemberName(\n        node.name,\n        /*ignoreErrors*/\n        true\n      );\n    }\n  }\n  function checkJSDocParameterTag(node) {\n    checkSourceElement(node.typeExpression);\n  }\n  function checkJSDocPropertyTag(node) {\n    checkSourceElement(node.typeExpression);\n  }\n  function checkJSDocFunctionType(node) {\n    addLazyDiagnostic(checkJSDocFunctionTypeImplicitAny);\n    checkSignatureDeclaration(node);\n    function checkJSDocFunctionTypeImplicitAny() {\n      if (!node.type && !isJSDocConstructSignature(node)) {\n        reportImplicitAny(node, anyType);\n      }\n    }\n  }\n  function checkJSDocThisTag(node) {\n    const host2 = getEffectiveJSDocHost(node);\n    if (host2 && isArrowFunction(host2)) {\n      error2(node.tagName, Diagnostics.An_arrow_function_cannot_have_a_this_parameter);\n    }\n  }\n  function checkJSDocImportTag(node) {\n    checkImportAttributes(node);\n  }\n  function checkJSDocImplementsTag(node) {\n    const classLike = getEffectiveJSDocHost(node);\n    if (!classLike || !isClassDeclaration(classLike) && !isClassExpression(classLike)) {\n      error2(classLike, Diagnostics.JSDoc_0_is_not_attached_to_a_class, idText(node.tagName));\n    }\n  }\n  function checkJSDocAugmentsTag(node) {\n    const classLike = getEffectiveJSDocHost(node);\n    if (!classLike || !isClassDeclaration(classLike) && !isClassExpression(classLike)) {\n      error2(classLike, Diagnostics.JSDoc_0_is_not_attached_to_a_class, idText(node.tagName));\n      return;\n    }\n    const augmentsTags = getJSDocTags(classLike).filter(isJSDocAugmentsTag);\n    Debug.assert(augmentsTags.length > 0);\n    if (augmentsTags.length > 1) {\n      error2(augmentsTags[1], Diagnostics.Class_declarations_cannot_have_more_than_one_augments_or_extends_tag);\n    }\n    const name = getIdentifierFromEntityNameExpression(node.class.expression);\n    const extend2 = getClassExtendsHeritageElement(classLike);\n    if (extend2) {\n      const className = getIdentifierFromEntityNameExpression(extend2.expression);\n      if (className && name.escapedText !== className.escapedText) {\n        error2(name, Diagnostics.JSDoc_0_1_does_not_match_the_extends_2_clause, idText(node.tagName), idText(name), idText(className));\n      }\n    }\n  }\n  function checkJSDocAccessibilityModifiers(node) {\n    const host2 = getJSDocHost(node);\n    if (host2 && isPrivateIdentifierClassElementDeclaration(host2)) {\n      error2(node, Diagnostics.An_accessibility_modifier_cannot_be_used_with_a_private_identifier);\n    }\n  }\n  function getIdentifierFromEntityNameExpression(node) {\n    switch (node.kind) {\n      case 80 /* Identifier */:\n        return node;\n      case 212 /* PropertyAccessExpression */:\n        return node.name;\n      default:\n        return void 0;\n    }\n  }\n  function checkFunctionOrMethodDeclaration(node) {\n    var _a;\n    checkDecorators(node);\n    checkSignatureDeclaration(node);\n    const functionFlags = getFunctionFlags(node);\n    if (node.name && node.name.kind === 168 /* ComputedPropertyName */) {\n      checkComputedPropertyName(node.name);\n    }\n    if (hasBindableName(node)) {\n      const symbol = getSymbolOfDeclaration(node);\n      const localSymbol = node.localSymbol || symbol;\n      const firstDeclaration = (_a = localSymbol.declarations) == null ? void 0 : _a.find(\n        // Get first non javascript function declaration\n        (declaration) => declaration.kind === node.kind && !(declaration.flags & 524288 /* JavaScriptFile */)\n      );\n      if (node === firstDeclaration) {\n        checkFunctionOrConstructorSymbol(localSymbol);\n      }\n      if (symbol.parent) {\n        checkFunctionOrConstructorSymbol(symbol);\n      }\n    }\n    const body = node.kind === 174 /* MethodSignature */ ? void 0 : node.body;\n    checkSourceElement(body);\n    checkAllCodePathsInNonVoidFunctionReturnOrThrow(node, getReturnTypeFromAnnotation(node));\n    addLazyDiagnostic(checkFunctionOrMethodDeclarationDiagnostics);\n    if (isInJSFile(node)) {\n      const typeTag = getJSDocTypeTag(node);\n      if (typeTag && typeTag.typeExpression && !getContextualCallSignature(getTypeFromTypeNode(typeTag.typeExpression), node)) {\n        error2(typeTag.typeExpression.type, Diagnostics.The_type_of_a_function_declaration_must_match_the_function_s_signature);\n      }\n    }\n    function checkFunctionOrMethodDeclarationDiagnostics() {\n      if (!getEffectiveReturnTypeNode(node)) {\n        if (nodeIsMissing(body) && !isPrivateWithinAmbient(node)) {\n          reportImplicitAny(node, anyType);\n        }\n        if (functionFlags & 1 /* Generator */ && nodeIsPresent(body)) {\n          getReturnTypeOfSignature(getSignatureFromDeclaration(node));\n        }\n      }\n    }\n  }\n  function registerForUnusedIdentifiersCheck(node) {\n    addLazyDiagnostic(registerForUnusedIdentifiersCheckDiagnostics);\n    function registerForUnusedIdentifiersCheckDiagnostics() {\n      const sourceFile = getSourceFileOfNode(node);\n      let potentiallyUnusedIdentifiers = allPotentiallyUnusedIdentifiers.get(sourceFile.path);\n      if (!potentiallyUnusedIdentifiers) {\n        potentiallyUnusedIdentifiers = [];\n        allPotentiallyUnusedIdentifiers.set(sourceFile.path, potentiallyUnusedIdentifiers);\n      }\n      potentiallyUnusedIdentifiers.push(node);\n    }\n  }\n  function checkUnusedIdentifiers(potentiallyUnusedIdentifiers, addDiagnostic) {\n    for (const node of potentiallyUnusedIdentifiers) {\n      switch (node.kind) {\n        case 264 /* ClassDeclaration */:\n        case 232 /* ClassExpression */:\n          checkUnusedClassMembers(node, addDiagnostic);\n          checkUnusedTypeParameters(node, addDiagnostic);\n          break;\n        case 308 /* SourceFile */:\n        case 268 /* ModuleDeclaration */:\n        case 242 /* Block */:\n        case 270 /* CaseBlock */:\n        case 249 /* ForStatement */:\n        case 250 /* ForInStatement */:\n        case 251 /* ForOfStatement */:\n          checkUnusedLocalsAndParameters(node, addDiagnostic);\n          break;\n        case 177 /* Constructor */:\n        case 219 /* FunctionExpression */:\n        case 263 /* FunctionDeclaration */:\n        case 220 /* ArrowFunction */:\n        case 175 /* MethodDeclaration */:\n        case 178 /* GetAccessor */:\n        case 179 /* SetAccessor */:\n          if (node.body) {\n            checkUnusedLocalsAndParameters(node, addDiagnostic);\n          }\n          checkUnusedTypeParameters(node, addDiagnostic);\n          break;\n        case 174 /* MethodSignature */:\n        case 180 /* CallSignature */:\n        case 181 /* ConstructSignature */:\n        case 185 /* FunctionType */:\n        case 186 /* ConstructorType */:\n        case 266 /* TypeAliasDeclaration */:\n        case 265 /* InterfaceDeclaration */:\n          checkUnusedTypeParameters(node, addDiagnostic);\n          break;\n        case 196 /* InferType */:\n          checkUnusedInferTypeParameter(node, addDiagnostic);\n          break;\n        default:\n          Debug.assertNever(node, \"Node should not have been registered for unused identifiers check\");\n      }\n    }\n  }\n  function errorUnusedLocal(declaration, name, addDiagnostic) {\n    const node = getNameOfDeclaration(declaration) || declaration;\n    const message = isTypeDeclaration(declaration) ? Diagnostics._0_is_declared_but_never_used : Diagnostics._0_is_declared_but_its_value_is_never_read;\n    addDiagnostic(declaration, 0 /* Local */, createDiagnosticForNode(node, message, name));\n  }\n  function isIdentifierThatStartsWithUnderscore(node) {\n    return isIdentifier(node) && idText(node).charCodeAt(0) === 95 /* _ */;\n  }\n  function checkUnusedClassMembers(node, addDiagnostic) {\n    for (const member of node.members) {\n      switch (member.kind) {\n        case 175 /* MethodDeclaration */:\n        case 173 /* PropertyDeclaration */:\n        case 178 /* GetAccessor */:\n        case 179 /* SetAccessor */:\n          if (member.kind === 179 /* SetAccessor */ && member.symbol.flags & 32768 /* GetAccessor */) {\n            break;\n          }\n          const symbol = getSymbolOfDeclaration(member);\n          if (!symbol.isReferenced && (hasEffectiveModifier(member, 2 /* Private */) || isNamedDeclaration(member) && isPrivateIdentifier(member.name)) && !(member.flags & 33554432 /* Ambient */)) {\n            addDiagnostic(member, 0 /* Local */, createDiagnosticForNode(member.name, Diagnostics._0_is_declared_but_its_value_is_never_read, symbolToString(symbol)));\n          }\n          break;\n        case 177 /* Constructor */:\n          for (const parameter of member.parameters) {\n            if (!parameter.symbol.isReferenced && hasSyntacticModifier(parameter, 2 /* Private */)) {\n              addDiagnostic(parameter, 0 /* Local */, createDiagnosticForNode(parameter.name, Diagnostics.Property_0_is_declared_but_its_value_is_never_read, symbolName(parameter.symbol)));\n            }\n          }\n          break;\n        case 182 /* IndexSignature */:\n        case 241 /* SemicolonClassElement */:\n        case 176 /* ClassStaticBlockDeclaration */:\n          break;\n        default:\n          Debug.fail(\"Unexpected class member\");\n      }\n    }\n  }\n  function checkUnusedInferTypeParameter(node, addDiagnostic) {\n    const { typeParameter } = node;\n    if (isTypeParameterUnused(typeParameter)) {\n      addDiagnostic(node, 1 /* Parameter */, createDiagnosticForNode(node, Diagnostics._0_is_declared_but_its_value_is_never_read, idText(typeParameter.name)));\n    }\n  }\n  function checkUnusedTypeParameters(node, addDiagnostic) {\n    const declarations = getSymbolOfDeclaration(node).declarations;\n    if (!declarations || last(declarations) !== node) return;\n    const typeParameters = getEffectiveTypeParameterDeclarations(node);\n    const seenParentsWithEveryUnused = /* @__PURE__ */ new Set();\n    for (const typeParameter of typeParameters) {\n      if (!isTypeParameterUnused(typeParameter)) continue;\n      const name = idText(typeParameter.name);\n      const { parent: parent2 } = typeParameter;\n      if (parent2.kind !== 196 /* InferType */ && parent2.typeParameters.every(isTypeParameterUnused)) {\n        if (tryAddToSet(seenParentsWithEveryUnused, parent2)) {\n          const sourceFile = getSourceFileOfNode(parent2);\n          const range = isJSDocTemplateTag(parent2) ? rangeOfNode(parent2) : rangeOfTypeParameters(sourceFile, parent2.typeParameters);\n          const only = parent2.typeParameters.length === 1;\n          const messageAndArg = only ? [Diagnostics._0_is_declared_but_its_value_is_never_read, name] : [Diagnostics.All_type_parameters_are_unused];\n          addDiagnostic(typeParameter, 1 /* Parameter */, createFileDiagnostic(sourceFile, range.pos, range.end - range.pos, ...messageAndArg));\n        }\n      } else {\n        addDiagnostic(typeParameter, 1 /* Parameter */, createDiagnosticForNode(typeParameter, Diagnostics._0_is_declared_but_its_value_is_never_read, name));\n      }\n    }\n  }\n  function isTypeParameterUnused(typeParameter) {\n    return !(getMergedSymbol(typeParameter.symbol).isReferenced & 262144 /* TypeParameter */) && !isIdentifierThatStartsWithUnderscore(typeParameter.name);\n  }\n  function addToGroup(map2, key, value, getKey) {\n    const keyString = String(getKey(key));\n    const group2 = map2.get(keyString);\n    if (group2) {\n      group2[1].push(value);\n    } else {\n      map2.set(keyString, [key, [value]]);\n    }\n  }\n  function tryGetRootParameterDeclaration(node) {\n    return tryCast(getRootDeclaration(node), isParameter);\n  }\n  function isValidUnusedLocalDeclaration(declaration) {\n    if (isBindingElement(declaration)) {\n      if (isObjectBindingPattern(declaration.parent)) {\n        return !!(declaration.propertyName && isIdentifierThatStartsWithUnderscore(declaration.name));\n      }\n      return isIdentifierThatStartsWithUnderscore(declaration.name);\n    }\n    return isAmbientModule(declaration) || (isVariableDeclaration(declaration) && isForInOrOfStatement(declaration.parent.parent) || isImportedDeclaration(declaration)) && isIdentifierThatStartsWithUnderscore(declaration.name);\n  }\n  function checkUnusedLocalsAndParameters(nodeWithLocals, addDiagnostic) {\n    const unusedImports = /* @__PURE__ */ new Map();\n    const unusedDestructures = /* @__PURE__ */ new Map();\n    const unusedVariables = /* @__PURE__ */ new Map();\n    nodeWithLocals.locals.forEach((local) => {\n      if (local.flags & 262144 /* TypeParameter */ ? !(local.flags & 3 /* Variable */ && !(local.isReferenced & 3 /* Variable */)) : local.isReferenced || local.exportSymbol) {\n        return;\n      }\n      if (local.declarations) {\n        for (const declaration of local.declarations) {\n          if (isValidUnusedLocalDeclaration(declaration)) {\n            continue;\n          }\n          if (isImportedDeclaration(declaration)) {\n            addToGroup(unusedImports, importClauseFromImported(declaration), declaration, getNodeId);\n          } else if (isBindingElement(declaration) && isObjectBindingPattern(declaration.parent)) {\n            const lastElement = last(declaration.parent.elements);\n            if (declaration === lastElement || !last(declaration.parent.elements).dotDotDotToken) {\n              addToGroup(unusedDestructures, declaration.parent, declaration, getNodeId);\n            }\n          } else if (isVariableDeclaration(declaration)) {\n            const blockScopeKind = getCombinedNodeFlagsCached(declaration) & 7 /* BlockScoped */;\n            const name = getNameOfDeclaration(declaration);\n            if (blockScopeKind !== 4 /* Using */ && blockScopeKind !== 6 /* AwaitUsing */ || !name || !isIdentifierThatStartsWithUnderscore(name)) {\n              addToGroup(unusedVariables, declaration.parent, declaration, getNodeId);\n            }\n          } else {\n            const parameter = local.valueDeclaration && tryGetRootParameterDeclaration(local.valueDeclaration);\n            const name = local.valueDeclaration && getNameOfDeclaration(local.valueDeclaration);\n            if (parameter && name) {\n              if (!isParameterPropertyDeclaration(parameter, parameter.parent) && !parameterIsThisKeyword(parameter) && !isIdentifierThatStartsWithUnderscore(name)) {\n                if (isBindingElement(declaration) && isArrayBindingPattern(declaration.parent)) {\n                  addToGroup(unusedDestructures, declaration.parent, declaration, getNodeId);\n                } else {\n                  addDiagnostic(parameter, 1 /* Parameter */, createDiagnosticForNode(name, Diagnostics._0_is_declared_but_its_value_is_never_read, symbolName(local)));\n                }\n              }\n            } else {\n              errorUnusedLocal(declaration, symbolName(local), addDiagnostic);\n            }\n          }\n        }\n      }\n    });\n    unusedImports.forEach(([importClause, unuseds]) => {\n      const importDecl = importClause.parent;\n      const nDeclarations = (importClause.name ? 1 : 0) + (importClause.namedBindings ? importClause.namedBindings.kind === 275 /* NamespaceImport */ ? 1 : importClause.namedBindings.elements.length : 0);\n      if (nDeclarations === unuseds.length) {\n        addDiagnostic(\n          importDecl,\n          0 /* Local */,\n          unuseds.length === 1 ? createDiagnosticForNode(importDecl, Diagnostics._0_is_declared_but_its_value_is_never_read, idText(first(unuseds).name)) : createDiagnosticForNode(importDecl, Diagnostics.All_imports_in_import_declaration_are_unused)\n        );\n      } else {\n        for (const unused of unuseds) errorUnusedLocal(unused, idText(unused.name), addDiagnostic);\n      }\n    });\n    unusedDestructures.forEach(([bindingPattern, bindingElements]) => {\n      const kind = tryGetRootParameterDeclaration(bindingPattern.parent) ? 1 /* Parameter */ : 0 /* Local */;\n      if (bindingPattern.elements.length === bindingElements.length) {\n        if (bindingElements.length === 1 && bindingPattern.parent.kind === 261 /* VariableDeclaration */ && bindingPattern.parent.parent.kind === 262 /* VariableDeclarationList */) {\n          addToGroup(unusedVariables, bindingPattern.parent.parent, bindingPattern.parent, getNodeId);\n        } else {\n          addDiagnostic(\n            bindingPattern,\n            kind,\n            bindingElements.length === 1 ? createDiagnosticForNode(bindingPattern, Diagnostics._0_is_declared_but_its_value_is_never_read, bindingNameText(first(bindingElements).name)) : createDiagnosticForNode(bindingPattern, Diagnostics.All_destructured_elements_are_unused)\n          );\n        }\n      } else {\n        for (const e of bindingElements) {\n          addDiagnostic(e, kind, createDiagnosticForNode(e, Diagnostics._0_is_declared_but_its_value_is_never_read, bindingNameText(e.name)));\n        }\n      }\n    });\n    unusedVariables.forEach(([declarationList, declarations]) => {\n      if (declarationList.declarations.length === declarations.length) {\n        addDiagnostic(\n          declarationList,\n          0 /* Local */,\n          declarations.length === 1 ? createDiagnosticForNode(first(declarations).name, Diagnostics._0_is_declared_but_its_value_is_never_read, bindingNameText(first(declarations).name)) : createDiagnosticForNode(declarationList.parent.kind === 244 /* VariableStatement */ ? declarationList.parent : declarationList, Diagnostics.All_variables_are_unused)\n        );\n      } else {\n        for (const decl of declarations) {\n          addDiagnostic(decl, 0 /* Local */, createDiagnosticForNode(decl, Diagnostics._0_is_declared_but_its_value_is_never_read, bindingNameText(decl.name)));\n        }\n      }\n    });\n  }\n  function checkPotentialUncheckedRenamedBindingElementsInTypes() {\n    var _a;\n    for (const node of potentialUnusedRenamedBindingElementsInTypes) {\n      if (!((_a = getSymbolOfDeclaration(node)) == null ? void 0 : _a.isReferenced)) {\n        const wrappingDeclaration = walkUpBindingElementsAndPatterns(node);\n        Debug.assert(isPartOfParameterDeclaration(wrappingDeclaration), \"Only parameter declaration should be checked here\");\n        const diagnostic = createDiagnosticForNode(node.name, Diagnostics._0_is_an_unused_renaming_of_1_Did_you_intend_to_use_it_as_a_type_annotation, declarationNameToString(node.name), declarationNameToString(node.propertyName));\n        if (!wrappingDeclaration.type) {\n          addRelatedInfo(\n            diagnostic,\n            createFileDiagnostic(getSourceFileOfNode(wrappingDeclaration), wrappingDeclaration.end, 0, Diagnostics.We_can_only_write_a_type_for_0_by_adding_a_type_for_the_entire_parameter_here, declarationNameToString(node.propertyName))\n          );\n        }\n        diagnostics.add(diagnostic);\n      }\n    }\n  }\n  function bindingNameText(name) {\n    switch (name.kind) {\n      case 80 /* Identifier */:\n        return idText(name);\n      case 208 /* ArrayBindingPattern */:\n      case 207 /* ObjectBindingPattern */:\n        return bindingNameText(cast(first(name.elements), isBindingElement).name);\n      default:\n        return Debug.assertNever(name);\n    }\n  }\n  function isImportedDeclaration(node) {\n    return node.kind === 274 /* ImportClause */ || node.kind === 277 /* ImportSpecifier */ || node.kind === 275 /* NamespaceImport */;\n  }\n  function importClauseFromImported(decl) {\n    return decl.kind === 274 /* ImportClause */ ? decl : decl.kind === 275 /* NamespaceImport */ ? decl.parent : decl.parent.parent;\n  }\n  function checkBlock(node) {\n    if (node.kind === 242 /* Block */) {\n      checkGrammarStatementInAmbientContext(node);\n    }\n    if (isFunctionOrModuleBlock(node)) {\n      const saveFlowAnalysisDisabled = flowAnalysisDisabled;\n      forEach(node.statements, checkSourceElement);\n      flowAnalysisDisabled = saveFlowAnalysisDisabled;\n    } else {\n      forEach(node.statements, checkSourceElement);\n    }\n    if (node.locals) {\n      registerForUnusedIdentifiersCheck(node);\n    }\n  }\n  function checkCollisionWithArgumentsInGeneratedCode(node) {\n    if (languageVersion >= 2 /* ES2015 */ || !hasRestParameter(node) || node.flags & 33554432 /* Ambient */ || nodeIsMissing(node.body)) {\n      return;\n    }\n    forEach(node.parameters, (p) => {\n      if (p.name && !isBindingPattern(p.name) && p.name.escapedText === argumentsSymbol.escapedName) {\n        errorSkippedOn(\"noEmit\", p, Diagnostics.Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters);\n      }\n    });\n  }\n  function needCollisionCheckForIdentifier(node, identifier, name) {\n    if ((identifier == null ? void 0 : identifier.escapedText) !== name) {\n      return false;\n    }\n    if (node.kind === 173 /* PropertyDeclaration */ || node.kind === 172 /* PropertySignature */ || node.kind === 175 /* MethodDeclaration */ || node.kind === 174 /* MethodSignature */ || node.kind === 178 /* GetAccessor */ || node.kind === 179 /* SetAccessor */ || node.kind === 304 /* PropertyAssignment */) {\n      return false;\n    }\n    if (node.flags & 33554432 /* Ambient */) {\n      return false;\n    }\n    if (isImportClause(node) || isImportEqualsDeclaration(node) || isImportSpecifier(node)) {\n      if (isTypeOnlyImportOrExportDeclaration(node)) {\n        return false;\n      }\n    }\n    const root = getRootDeclaration(node);\n    if (isParameter(root) && nodeIsMissing(root.parent.body)) {\n      return false;\n    }\n    return true;\n  }\n  function checkIfThisIsCapturedInEnclosingScope(node) {\n    findAncestor(node, (current) => {\n      if (getNodeCheckFlags(current) & 4 /* CaptureThis */) {\n        const isDeclaration2 = node.kind !== 80 /* Identifier */;\n        if (isDeclaration2) {\n          error2(getNameOfDeclaration(node), Diagnostics.Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference);\n        } else {\n          error2(node, Diagnostics.Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference);\n        }\n        return true;\n      }\n      return false;\n    });\n  }\n  function checkIfNewTargetIsCapturedInEnclosingScope(node) {\n    findAncestor(node, (current) => {\n      if (getNodeCheckFlags(current) & 8 /* CaptureNewTarget */) {\n        const isDeclaration2 = node.kind !== 80 /* Identifier */;\n        if (isDeclaration2) {\n          error2(getNameOfDeclaration(node), Diagnostics.Duplicate_identifier_newTarget_Compiler_uses_variable_declaration_newTarget_to_capture_new_target_meta_property_reference);\n        } else {\n          error2(node, Diagnostics.Expression_resolves_to_variable_declaration_newTarget_that_compiler_uses_to_capture_new_target_meta_property_reference);\n        }\n        return true;\n      }\n      return false;\n    });\n  }\n  function checkCollisionWithRequireExportsInGeneratedCode(node, name) {\n    if (host.getEmitModuleFormatOfFile(getSourceFileOfNode(node)) >= 5 /* ES2015 */) {\n      return;\n    }\n    if (!name || !needCollisionCheckForIdentifier(node, name, \"require\") && !needCollisionCheckForIdentifier(node, name, \"exports\")) {\n      return;\n    }\n    if (isModuleDeclaration(node) && getModuleInstanceState(node) !== 1 /* Instantiated */) {\n      return;\n    }\n    const parent2 = getDeclarationContainer(node);\n    if (parent2.kind === 308 /* SourceFile */ && isExternalOrCommonJsModule(parent2)) {\n      errorSkippedOn(\"noEmit\", name, Diagnostics.Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module, declarationNameToString(name), declarationNameToString(name));\n    }\n  }\n  function checkCollisionWithGlobalPromiseInGeneratedCode(node, name) {\n    if (!name || languageVersion >= 4 /* ES2017 */ || !needCollisionCheckForIdentifier(node, name, \"Promise\")) {\n      return;\n    }\n    if (isModuleDeclaration(node) && getModuleInstanceState(node) !== 1 /* Instantiated */) {\n      return;\n    }\n    const parent2 = getDeclarationContainer(node);\n    if (parent2.kind === 308 /* SourceFile */ && isExternalOrCommonJsModule(parent2) && parent2.flags & 4096 /* HasAsyncFunctions */) {\n      errorSkippedOn(\"noEmit\", name, Diagnostics.Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_containing_async_functions, declarationNameToString(name), declarationNameToString(name));\n    }\n  }\n  function recordPotentialCollisionWithWeakMapSetInGeneratedCode(node, name) {\n    if (languageVersion <= 8 /* ES2021 */ && (needCollisionCheckForIdentifier(node, name, \"WeakMap\") || needCollisionCheckForIdentifier(node, name, \"WeakSet\"))) {\n      potentialWeakMapSetCollisions.push(node);\n    }\n  }\n  function checkWeakMapSetCollision(node) {\n    const enclosingBlockScope = getEnclosingBlockScopeContainer(node);\n    if (getNodeCheckFlags(enclosingBlockScope) & 1048576 /* ContainsClassWithPrivateIdentifiers */) {\n      Debug.assert(isNamedDeclaration(node) && isIdentifier(node.name) && typeof node.name.escapedText === \"string\", \"The target of a WeakMap/WeakSet collision check should be an identifier\");\n      errorSkippedOn(\"noEmit\", node, Diagnostics.Compiler_reserves_name_0_when_emitting_private_identifier_downlevel, node.name.escapedText);\n    }\n  }\n  function recordPotentialCollisionWithReflectInGeneratedCode(node, name) {\n    if (name && languageVersion >= 2 /* ES2015 */ && languageVersion <= 8 /* ES2021 */ && needCollisionCheckForIdentifier(node, name, \"Reflect\")) {\n      potentialReflectCollisions.push(node);\n    }\n  }\n  function checkReflectCollision(node) {\n    let hasCollision = false;\n    if (isClassExpression(node)) {\n      for (const member of node.members) {\n        if (getNodeCheckFlags(member) & 2097152 /* ContainsSuperPropertyInStaticInitializer */) {\n          hasCollision = true;\n          break;\n        }\n      }\n    } else if (isFunctionExpression(node)) {\n      if (getNodeCheckFlags(node) & 2097152 /* ContainsSuperPropertyInStaticInitializer */) {\n        hasCollision = true;\n      }\n    } else {\n      const container = getEnclosingBlockScopeContainer(node);\n      if (container && getNodeCheckFlags(container) & 2097152 /* ContainsSuperPropertyInStaticInitializer */) {\n        hasCollision = true;\n      }\n    }\n    if (hasCollision) {\n      Debug.assert(isNamedDeclaration(node) && isIdentifier(node.name), \"The target of a Reflect collision check should be an identifier\");\n      errorSkippedOn(\"noEmit\", node, Diagnostics.Duplicate_identifier_0_Compiler_reserves_name_1_when_emitting_super_references_in_static_initializers, declarationNameToString(node.name), \"Reflect\");\n    }\n  }\n  function checkCollisionsForDeclarationName(node, name) {\n    if (!name) return;\n    checkCollisionWithRequireExportsInGeneratedCode(node, name);\n    checkCollisionWithGlobalPromiseInGeneratedCode(node, name);\n    recordPotentialCollisionWithWeakMapSetInGeneratedCode(node, name);\n    recordPotentialCollisionWithReflectInGeneratedCode(node, name);\n    if (isClassLike(node)) {\n      checkTypeNameIsReserved(name, Diagnostics.Class_name_cannot_be_0);\n      if (!(node.flags & 33554432 /* Ambient */)) {\n        checkClassNameCollisionWithObject(name);\n      }\n    } else if (isEnumDeclaration(node)) {\n      checkTypeNameIsReserved(name, Diagnostics.Enum_name_cannot_be_0);\n    }\n  }\n  function checkVarDeclaredNamesNotShadowed(node) {\n    if ((getCombinedNodeFlagsCached(node) & 7 /* BlockScoped */) !== 0 || isPartOfParameterDeclaration(node)) {\n      return;\n    }\n    const symbol = getSymbolOfDeclaration(node);\n    if (symbol.flags & 1 /* FunctionScopedVariable */) {\n      if (!isIdentifier(node.name)) return Debug.fail();\n      const localDeclarationSymbol = resolveName(\n        node,\n        node.name.escapedText,\n        3 /* Variable */,\n        /*nameNotFoundMessage*/\n        void 0,\n        /*isUse*/\n        false\n      );\n      if (localDeclarationSymbol && localDeclarationSymbol !== symbol && localDeclarationSymbol.flags & 2 /* BlockScopedVariable */) {\n        if (getDeclarationNodeFlagsFromSymbol(localDeclarationSymbol) & 7 /* BlockScoped */) {\n          const varDeclList = getAncestor(localDeclarationSymbol.valueDeclaration, 262 /* VariableDeclarationList */);\n          const container = varDeclList.parent.kind === 244 /* VariableStatement */ && varDeclList.parent.parent ? varDeclList.parent.parent : void 0;\n          const namesShareScope = container && (container.kind === 242 /* Block */ && isFunctionLike(container.parent) || container.kind === 269 /* ModuleBlock */ || container.kind === 268 /* ModuleDeclaration */ || container.kind === 308 /* SourceFile */);\n          if (!namesShareScope) {\n            const name = symbolToString(localDeclarationSymbol);\n            error2(node, Diagnostics.Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1, name, name);\n          }\n        }\n      }\n    }\n  }\n  function convertAutoToAny(type) {\n    return type === autoType ? anyType : type === autoArrayType ? anyArrayType : type;\n  }\n  function checkVariableLikeDeclaration(node) {\n    var _a;\n    checkDecorators(node);\n    if (!isBindingElement(node)) {\n      checkSourceElement(node.type);\n    }\n    if (!node.name) {\n      return;\n    }\n    if (node.name.kind === 168 /* ComputedPropertyName */) {\n      checkComputedPropertyName(node.name);\n      if (hasOnlyExpressionInitializer(node) && node.initializer) {\n        checkExpressionCached(node.initializer);\n      }\n    }\n    if (isBindingElement(node)) {\n      if (node.propertyName && isIdentifier(node.name) && isPartOfParameterDeclaration(node) && nodeIsMissing(getContainingFunction(node).body)) {\n        potentialUnusedRenamedBindingElementsInTypes.push(node);\n        return;\n      }\n      if (isObjectBindingPattern(node.parent) && node.dotDotDotToken && languageVersion < LanguageFeatureMinimumTarget.ObjectSpreadRest) {\n        checkExternalEmitHelpers(node, 4 /* Rest */);\n      }\n      if (node.propertyName && node.propertyName.kind === 168 /* ComputedPropertyName */) {\n        checkComputedPropertyName(node.propertyName);\n      }\n      const parent2 = node.parent.parent;\n      const parentCheckMode = node.dotDotDotToken ? 32 /* RestBindingElement */ : 0 /* Normal */;\n      const parentType = getTypeForBindingElementParent(parent2, parentCheckMode);\n      const name = node.propertyName || node.name;\n      if (parentType && !isBindingPattern(name)) {\n        const exprType = getLiteralTypeFromPropertyName(name);\n        if (isTypeUsableAsPropertyName(exprType)) {\n          const nameText = getPropertyNameFromType(exprType);\n          const property = getPropertyOfType(parentType, nameText);\n          if (property) {\n            markPropertyAsReferenced(\n              property,\n              /*nodeForCheckWriteOnly*/\n              void 0,\n              /*isSelfTypeAccess*/\n              false\n            );\n            checkPropertyAccessibility(\n              node,\n              !!parent2.initializer && parent2.initializer.kind === 108 /* SuperKeyword */,\n              /*writing*/\n              false,\n              parentType,\n              property\n            );\n          }\n        }\n      }\n    }\n    if (isBindingPattern(node.name)) {\n      if (node.name.kind === 208 /* ArrayBindingPattern */ && languageVersion < LanguageFeatureMinimumTarget.BindingPatterns && compilerOptions.downlevelIteration) {\n        checkExternalEmitHelpers(node, 512 /* Read */);\n      }\n      forEach(node.name.elements, checkSourceElement);\n    }\n    if (node.initializer && isPartOfParameterDeclaration(node) && nodeIsMissing(getContainingFunction(node).body)) {\n      error2(node, Diagnostics.A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation);\n      return;\n    }\n    if (isBindingPattern(node.name)) {\n      if (isInAmbientOrTypeNode(node)) {\n        return;\n      }\n      const needCheckInitializer = hasOnlyExpressionInitializer(node) && node.initializer && node.parent.parent.kind !== 250 /* ForInStatement */;\n      const needCheckWidenedType = !some(node.name.elements, not(isOmittedExpression));\n      if (needCheckInitializer || needCheckWidenedType) {\n        const widenedType = getWidenedTypeForVariableLikeDeclaration(node);\n        if (needCheckInitializer) {\n          const initializerType = checkExpressionCached(node.initializer);\n          if (strictNullChecks && needCheckWidenedType) {\n            checkNonNullNonVoidType(initializerType, node);\n          } else {\n            checkTypeAssignableToAndOptionallyElaborate(initializerType, getWidenedTypeForVariableLikeDeclaration(node), node, node.initializer);\n          }\n        }\n        if (needCheckWidenedType) {\n          if (isArrayBindingPattern(node.name)) {\n            checkIteratedTypeOrElementType(65 /* Destructuring */, widenedType, undefinedType, node);\n          } else if (strictNullChecks) {\n            checkNonNullNonVoidType(widenedType, node);\n          }\n        }\n      }\n      return;\n    }\n    const symbol = getSymbolOfDeclaration(node);\n    if (symbol.flags & 2097152 /* Alias */ && (isVariableDeclarationInitializedToBareOrAccessedRequire(node) || isBindingElementOfBareOrAccessedRequire(node))) {\n      checkAliasSymbol(node);\n      return;\n    }\n    if (node.name.kind === 10 /* BigIntLiteral */) {\n      error2(node.name, Diagnostics.A_bigint_literal_cannot_be_used_as_a_property_name);\n    }\n    const type = convertAutoToAny(getTypeOfSymbol(symbol));\n    if (node === symbol.valueDeclaration) {\n      const initializer = hasOnlyExpressionInitializer(node) && getEffectiveInitializer(node);\n      if (initializer) {\n        const isJSObjectLiteralInitializer = isInJSFile(node) && isObjectLiteralExpression(initializer) && (initializer.properties.length === 0 || isPrototypeAccess(node.name)) && !!((_a = symbol.exports) == null ? void 0 : _a.size);\n        if (!isJSObjectLiteralInitializer && node.parent.parent.kind !== 250 /* ForInStatement */) {\n          const initializerType = checkExpressionCached(initializer);\n          checkTypeAssignableToAndOptionallyElaborate(\n            initializerType,\n            type,\n            node,\n            initializer,\n            /*headMessage*/\n            void 0\n          );\n          const blockScopeKind = getCombinedNodeFlagsCached(node) & 7 /* BlockScoped */;\n          if (blockScopeKind === 6 /* AwaitUsing */) {\n            const globalAsyncDisposableType = getGlobalAsyncDisposableType(\n              /*reportErrors*/\n              true\n            );\n            const globalDisposableType = getGlobalDisposableType(\n              /*reportErrors*/\n              true\n            );\n            if (globalAsyncDisposableType !== emptyObjectType && globalDisposableType !== emptyObjectType) {\n              const optionalDisposableType = getUnionType([globalAsyncDisposableType, globalDisposableType, nullType, undefinedType]);\n              checkTypeAssignableTo(widenTypeForVariableLikeDeclaration(initializerType, node), optionalDisposableType, initializer, Diagnostics.The_initializer_of_an_await_using_declaration_must_be_either_an_object_with_a_Symbol_asyncDispose_or_Symbol_dispose_method_or_be_null_or_undefined);\n            }\n          } else if (blockScopeKind === 4 /* Using */) {\n            const globalDisposableType = getGlobalDisposableType(\n              /*reportErrors*/\n              true\n            );\n            if (globalDisposableType !== emptyObjectType) {\n              const optionalDisposableType = getUnionType([globalDisposableType, nullType, undefinedType]);\n              checkTypeAssignableTo(widenTypeForVariableLikeDeclaration(initializerType, node), optionalDisposableType, initializer, Diagnostics.The_initializer_of_a_using_declaration_must_be_either_an_object_with_a_Symbol_dispose_method_or_be_null_or_undefined);\n            }\n          }\n        }\n      }\n      if (symbol.declarations && symbol.declarations.length > 1) {\n        if (some(symbol.declarations, (d) => d !== node && isVariableLike(d) && !areDeclarationFlagsIdentical(d, node))) {\n          error2(node.name, Diagnostics.All_declarations_of_0_must_have_identical_modifiers, declarationNameToString(node.name));\n        }\n      }\n    } else {\n      const declarationType = convertAutoToAny(getWidenedTypeForVariableLikeDeclaration(node));\n      if (!isErrorType(type) && !isErrorType(declarationType) && !isTypeIdenticalTo(type, declarationType) && !(symbol.flags & 67108864 /* Assignment */)) {\n        errorNextVariableOrPropertyDeclarationMustHaveSameType(symbol.valueDeclaration, type, node, declarationType);\n      }\n      if (hasOnlyExpressionInitializer(node) && node.initializer) {\n        checkTypeAssignableToAndOptionallyElaborate(\n          checkExpressionCached(node.initializer),\n          declarationType,\n          node,\n          node.initializer,\n          /*headMessage*/\n          void 0\n        );\n      }\n      if (symbol.valueDeclaration && !areDeclarationFlagsIdentical(node, symbol.valueDeclaration)) {\n        error2(node.name, Diagnostics.All_declarations_of_0_must_have_identical_modifiers, declarationNameToString(node.name));\n      }\n    }\n    if (node.kind !== 173 /* PropertyDeclaration */ && node.kind !== 172 /* PropertySignature */) {\n      checkExportsOnMergedDeclarations(node);\n      if (node.kind === 261 /* VariableDeclaration */ || node.kind === 209 /* BindingElement */) {\n        checkVarDeclaredNamesNotShadowed(node);\n      }\n      checkCollisionsForDeclarationName(node, node.name);\n    }\n  }\n  function errorNextVariableOrPropertyDeclarationMustHaveSameType(firstDeclaration, firstType, nextDeclaration, nextType) {\n    const nextDeclarationName = getNameOfDeclaration(nextDeclaration);\n    const message = nextDeclaration.kind === 173 /* PropertyDeclaration */ || nextDeclaration.kind === 172 /* PropertySignature */ ? Diagnostics.Subsequent_property_declarations_must_have_the_same_type_Property_0_must_be_of_type_1_but_here_has_type_2 : Diagnostics.Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_type_2;\n    const declName = declarationNameToString(nextDeclarationName);\n    const err = error2(\n      nextDeclarationName,\n      message,\n      declName,\n      typeToString(firstType),\n      typeToString(nextType)\n    );\n    if (firstDeclaration) {\n      addRelatedInfo(err, createDiagnosticForNode(firstDeclaration, Diagnostics._0_was_also_declared_here, declName));\n    }\n  }\n  function areDeclarationFlagsIdentical(left, right) {\n    if (left.kind === 170 /* Parameter */ && right.kind === 261 /* VariableDeclaration */ || left.kind === 261 /* VariableDeclaration */ && right.kind === 170 /* Parameter */) {\n      return true;\n    }\n    if (hasQuestionToken(left) !== hasQuestionToken(right)) {\n      return false;\n    }\n    const interestingFlags = 2 /* Private */ | 4 /* Protected */ | 1024 /* Async */ | 64 /* Abstract */ | 8 /* Readonly */ | 256 /* Static */;\n    return getSelectedEffectiveModifierFlags(left, interestingFlags) === getSelectedEffectiveModifierFlags(right, interestingFlags);\n  }\n  function checkVariableDeclaration(node) {\n    var _a, _b;\n    (_a = tracing) == null ? void 0 : _a.push(tracing.Phase.Check, \"checkVariableDeclaration\", { kind: node.kind, pos: node.pos, end: node.end, path: node.tracingPath });\n    checkGrammarVariableDeclaration(node);\n    checkVariableLikeDeclaration(node);\n    (_b = tracing) == null ? void 0 : _b.pop();\n  }\n  function checkBindingElement(node) {\n    checkGrammarBindingElement(node);\n    return checkVariableLikeDeclaration(node);\n  }\n  function checkVariableDeclarationList(node) {\n    const blockScopeKind = getCombinedNodeFlags(node) & 7 /* BlockScoped */;\n    if ((blockScopeKind === 4 /* Using */ || blockScopeKind === 6 /* AwaitUsing */) && languageVersion < LanguageFeatureMinimumTarget.UsingAndAwaitUsing) {\n      checkExternalEmitHelpers(node, 16777216 /* AddDisposableResourceAndDisposeResources */);\n    }\n    forEach(node.declarations, checkSourceElement);\n  }\n  function checkVariableStatement(node) {\n    if (!checkGrammarModifiers(node) && !checkGrammarVariableDeclarationList(node.declarationList)) checkGrammarForDisallowedBlockScopedVariableStatement(node);\n    checkVariableDeclarationList(node.declarationList);\n  }\n  function checkExpressionStatement(node) {\n    checkGrammarStatementInAmbientContext(node);\n    checkExpression(node.expression);\n  }\n  function checkIfStatement(node) {\n    checkGrammarStatementInAmbientContext(node);\n    const type = checkTruthinessExpression(node.expression);\n    checkTestingKnownTruthyCallableOrAwaitableOrEnumMemberType(node.expression, type, node.thenStatement);\n    checkSourceElement(node.thenStatement);\n    if (node.thenStatement.kind === 243 /* EmptyStatement */) {\n      error2(node.thenStatement, Diagnostics.The_body_of_an_if_statement_cannot_be_the_empty_statement);\n    }\n    checkSourceElement(node.elseStatement);\n  }\n  function checkTestingKnownTruthyCallableOrAwaitableOrEnumMemberType(condExpr, condType, body) {\n    if (!strictNullChecks) return;\n    bothHelper(condExpr, body);\n    function bothHelper(condExpr2, body2) {\n      condExpr2 = skipParentheses(condExpr2);\n      helper(condExpr2, body2);\n      while (isBinaryExpression(condExpr2) && (condExpr2.operatorToken.kind === 57 /* BarBarToken */ || condExpr2.operatorToken.kind === 61 /* QuestionQuestionToken */)) {\n        condExpr2 = skipParentheses(condExpr2.left);\n        helper(condExpr2, body2);\n      }\n    }\n    function helper(condExpr2, body2) {\n      const location = isLogicalOrCoalescingBinaryExpression(condExpr2) ? skipParentheses(condExpr2.right) : condExpr2;\n      if (isModuleExportsAccessExpression(location)) {\n        return;\n      }\n      if (isLogicalOrCoalescingBinaryExpression(location)) {\n        bothHelper(location, body2);\n        return;\n      }\n      const type = location === condExpr2 ? condType : checkExpression(location);\n      if (type.flags & 1024 /* EnumLiteral */ && isPropertyAccessExpression(location) && (getNodeLinks(location.expression).resolvedSymbol ?? unknownSymbol).flags & 384 /* Enum */) {\n        error2(location, Diagnostics.This_condition_will_always_return_0, !!type.value ? \"true\" : \"false\");\n        return;\n      }\n      const isPropertyExpressionCast = isPropertyAccessExpression(location) && isTypeAssertion(location.expression);\n      if (!hasTypeFacts(type, 4194304 /* Truthy */) || isPropertyExpressionCast) return;\n      const callSignatures = getSignaturesOfType(type, 0 /* Call */);\n      const isPromise = !!getAwaitedTypeOfPromise(type);\n      if (callSignatures.length === 0 && !isPromise) {\n        return;\n      }\n      const testedNode = isIdentifier(location) ? location : isPropertyAccessExpression(location) ? location.name : void 0;\n      const testedSymbol = testedNode && getSymbolAtLocation(testedNode);\n      if (!testedSymbol && !isPromise) {\n        return;\n      }\n      const isUsed = testedSymbol && isBinaryExpression(condExpr2.parent) && isSymbolUsedInBinaryExpressionChain(condExpr2.parent, testedSymbol) || testedSymbol && body2 && isSymbolUsedInConditionBody(condExpr2, body2, testedNode, testedSymbol);\n      if (!isUsed) {\n        if (isPromise) {\n          errorAndMaybeSuggestAwait(\n            location,\n            /*maybeMissingAwait*/\n            true,\n            Diagnostics.This_condition_will_always_return_true_since_this_0_is_always_defined,\n            getTypeNameForErrorDisplay(type)\n          );\n        } else {\n          error2(location, Diagnostics.This_condition_will_always_return_true_since_this_function_is_always_defined_Did_you_mean_to_call_it_instead);\n        }\n      }\n    }\n  }\n  function isSymbolUsedInConditionBody(expr, body, testedNode, testedSymbol) {\n    return !!forEachChild(body, function check(childNode) {\n      if (isIdentifier(childNode)) {\n        const childSymbol = getSymbolAtLocation(childNode);\n        if (childSymbol && childSymbol === testedSymbol) {\n          if (isIdentifier(expr) || isIdentifier(testedNode) && isBinaryExpression(testedNode.parent)) {\n            return true;\n          }\n          let testedExpression = testedNode.parent;\n          let childExpression = childNode.parent;\n          while (testedExpression && childExpression) {\n            if (isIdentifier(testedExpression) && isIdentifier(childExpression) || testedExpression.kind === 110 /* ThisKeyword */ && childExpression.kind === 110 /* ThisKeyword */) {\n              return getSymbolAtLocation(testedExpression) === getSymbolAtLocation(childExpression);\n            } else if (isPropertyAccessExpression(testedExpression) && isPropertyAccessExpression(childExpression)) {\n              if (getSymbolAtLocation(testedExpression.name) !== getSymbolAtLocation(childExpression.name)) {\n                return false;\n              }\n              childExpression = childExpression.expression;\n              testedExpression = testedExpression.expression;\n            } else if (isCallExpression(testedExpression) && isCallExpression(childExpression)) {\n              childExpression = childExpression.expression;\n              testedExpression = testedExpression.expression;\n            } else {\n              return false;\n            }\n          }\n        }\n      }\n      return forEachChild(childNode, check);\n    });\n  }\n  function isSymbolUsedInBinaryExpressionChain(node, testedSymbol) {\n    while (isBinaryExpression(node) && node.operatorToken.kind === 56 /* AmpersandAmpersandToken */) {\n      const isUsed = forEachChild(node.right, function visit(child) {\n        if (isIdentifier(child)) {\n          const symbol = getSymbolAtLocation(child);\n          if (symbol && symbol === testedSymbol) {\n            return true;\n          }\n        }\n        return forEachChild(child, visit);\n      });\n      if (isUsed) {\n        return true;\n      }\n      node = node.parent;\n    }\n    return false;\n  }\n  function checkDoStatement(node) {\n    checkGrammarStatementInAmbientContext(node);\n    checkSourceElement(node.statement);\n    checkTruthinessExpression(node.expression);\n  }\n  function checkWhileStatement(node) {\n    checkGrammarStatementInAmbientContext(node);\n    checkTruthinessExpression(node.expression);\n    checkSourceElement(node.statement);\n  }\n  function checkTruthinessOfType(type, node) {\n    if (type.flags & 16384 /* Void */) {\n      error2(node, Diagnostics.An_expression_of_type_void_cannot_be_tested_for_truthiness);\n    } else {\n      const semantics = getSyntacticTruthySemantics(node);\n      if (semantics !== 3 /* Sometimes */) {\n        error2(\n          node,\n          semantics === 1 /* Always */ ? Diagnostics.This_kind_of_expression_is_always_truthy : Diagnostics.This_kind_of_expression_is_always_falsy\n        );\n      }\n    }\n    return type;\n  }\n  function getSyntacticTruthySemantics(node) {\n    node = skipOuterExpressions(node);\n    switch (node.kind) {\n      case 9 /* NumericLiteral */:\n        if (node.text === \"0\" || node.text === \"1\") {\n          return 3 /* Sometimes */;\n        }\n        return 1 /* Always */;\n      case 210 /* ArrayLiteralExpression */:\n      case 220 /* ArrowFunction */:\n      case 10 /* BigIntLiteral */:\n      case 232 /* ClassExpression */:\n      case 219 /* FunctionExpression */:\n      case 285 /* JsxElement */:\n      case 286 /* JsxSelfClosingElement */:\n      case 211 /* ObjectLiteralExpression */:\n      case 14 /* RegularExpressionLiteral */:\n        return 1 /* Always */;\n      case 223 /* VoidExpression */:\n      case 106 /* NullKeyword */:\n        return 2 /* Never */;\n      case 15 /* NoSubstitutionTemplateLiteral */:\n      case 11 /* StringLiteral */:\n        return !!node.text ? 1 /* Always */ : 2 /* Never */;\n      case 228 /* ConditionalExpression */:\n        return getSyntacticTruthySemantics(node.whenTrue) | getSyntacticTruthySemantics(node.whenFalse);\n      case 80 /* Identifier */:\n        if (getResolvedSymbol(node) === undefinedSymbol) {\n          return 2 /* Never */;\n        }\n        return 3 /* Sometimes */;\n    }\n    return 3 /* Sometimes */;\n  }\n  function checkTruthinessExpression(node, checkMode) {\n    return checkTruthinessOfType(checkExpression(node, checkMode), node);\n  }\n  function checkForStatement(node) {\n    if (!checkGrammarStatementInAmbientContext(node)) {\n      if (node.initializer && node.initializer.kind === 262 /* VariableDeclarationList */) {\n        checkGrammarVariableDeclarationList(node.initializer);\n      }\n    }\n    if (node.initializer) {\n      if (node.initializer.kind === 262 /* VariableDeclarationList */) {\n        checkVariableDeclarationList(node.initializer);\n      } else {\n        checkExpression(node.initializer);\n      }\n    }\n    if (node.condition) checkTruthinessExpression(node.condition);\n    if (node.incrementor) checkExpression(node.incrementor);\n    checkSourceElement(node.statement);\n    if (node.locals) {\n      registerForUnusedIdentifiersCheck(node);\n    }\n  }\n  function checkForOfStatement(node) {\n    checkGrammarForInOrForOfStatement(node);\n    const container = getContainingFunctionOrClassStaticBlock(node);\n    if (node.awaitModifier) {\n      if (container && isClassStaticBlockDeclaration(container)) {\n        grammarErrorOnNode(node.awaitModifier, Diagnostics.for_await_loops_cannot_be_used_inside_a_class_static_block);\n      } else {\n        const functionFlags = getFunctionFlags(container);\n        if ((functionFlags & (4 /* Invalid */ | 2 /* Async */)) === 2 /* Async */ && languageVersion < LanguageFeatureMinimumTarget.ForAwaitOf) {\n          checkExternalEmitHelpers(node, 16384 /* ForAwaitOfIncludes */);\n        }\n      }\n    } else if (compilerOptions.downlevelIteration && languageVersion < LanguageFeatureMinimumTarget.ForOf) {\n      checkExternalEmitHelpers(node, 256 /* ForOfIncludes */);\n    }\n    if (node.initializer.kind === 262 /* VariableDeclarationList */) {\n      checkVariableDeclarationList(node.initializer);\n    } else {\n      const varExpr = node.initializer;\n      const iteratedType = checkRightHandSideOfForOf(node);\n      if (varExpr.kind === 210 /* ArrayLiteralExpression */ || varExpr.kind === 211 /* ObjectLiteralExpression */) {\n        checkDestructuringAssignment(varExpr, iteratedType || errorType);\n      } else {\n        const leftType = checkExpression(varExpr);\n        checkReferenceExpression(\n          varExpr,\n          Diagnostics.The_left_hand_side_of_a_for_of_statement_must_be_a_variable_or_a_property_access,\n          Diagnostics.The_left_hand_side_of_a_for_of_statement_may_not_be_an_optional_property_access\n        );\n        if (iteratedType) {\n          checkTypeAssignableToAndOptionallyElaborate(iteratedType, leftType, varExpr, node.expression);\n        }\n      }\n    }\n    checkSourceElement(node.statement);\n    if (node.locals) {\n      registerForUnusedIdentifiersCheck(node);\n    }\n  }\n  function checkForInStatement(node) {\n    checkGrammarForInOrForOfStatement(node);\n    const rightType = getNonNullableTypeIfNeeded(checkExpression(node.expression));\n    if (node.initializer.kind === 262 /* VariableDeclarationList */) {\n      const variable = node.initializer.declarations[0];\n      if (variable && isBindingPattern(variable.name)) {\n        error2(variable.name, Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern);\n      }\n      checkVariableDeclarationList(node.initializer);\n    } else {\n      const varExpr = node.initializer;\n      const leftType = checkExpression(varExpr);\n      if (varExpr.kind === 210 /* ArrayLiteralExpression */ || varExpr.kind === 211 /* ObjectLiteralExpression */) {\n        error2(varExpr, Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern);\n      } else if (!isTypeAssignableTo(getIndexTypeOrString(rightType), leftType)) {\n        error2(varExpr, Diagnostics.The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any);\n      } else {\n        checkReferenceExpression(\n          varExpr,\n          Diagnostics.The_left_hand_side_of_a_for_in_statement_must_be_a_variable_or_a_property_access,\n          Diagnostics.The_left_hand_side_of_a_for_in_statement_may_not_be_an_optional_property_access\n        );\n      }\n    }\n    if (rightType === neverType || !isTypeAssignableToKind(rightType, 67108864 /* NonPrimitive */ | 58982400 /* InstantiableNonPrimitive */)) {\n      error2(node.expression, Diagnostics.The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter_but_here_has_type_0, typeToString(rightType));\n    }\n    checkSourceElement(node.statement);\n    if (node.locals) {\n      registerForUnusedIdentifiersCheck(node);\n    }\n  }\n  function checkRightHandSideOfForOf(statement) {\n    const use = statement.awaitModifier ? 15 /* ForAwaitOf */ : 13 /* ForOf */;\n    return checkIteratedTypeOrElementType(use, checkNonNullExpression(statement.expression), undefinedType, statement.expression);\n  }\n  function checkIteratedTypeOrElementType(use, inputType, sentType, errorNode) {\n    if (isTypeAny(inputType)) {\n      return inputType;\n    }\n    return getIteratedTypeOrElementType(\n      use,\n      inputType,\n      sentType,\n      errorNode,\n      /*checkAssignability*/\n      true\n    ) || anyType;\n  }\n  function getIteratedTypeOrElementType(use, inputType, sentType, errorNode, checkAssignability) {\n    const allowAsyncIterables = (use & 2 /* AllowsAsyncIterablesFlag */) !== 0;\n    if (inputType === neverType) {\n      if (errorNode) {\n        reportTypeNotIterableError(errorNode, inputType, allowAsyncIterables);\n      }\n      return void 0;\n    }\n    const uplevelIteration = languageVersion >= 2 /* ES2015 */;\n    const downlevelIteration = !uplevelIteration && compilerOptions.downlevelIteration;\n    const possibleOutOfBounds = compilerOptions.noUncheckedIndexedAccess && !!(use & 128 /* PossiblyOutOfBounds */);\n    if (uplevelIteration || downlevelIteration || allowAsyncIterables) {\n      const iterationTypes = getIterationTypesOfIterable(inputType, use, uplevelIteration ? errorNode : void 0);\n      if (checkAssignability) {\n        if (iterationTypes) {\n          const diagnostic = use & 8 /* ForOfFlag */ ? Diagnostics.Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_for_of_will_always_send_0 : use & 32 /* SpreadFlag */ ? Diagnostics.Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_spread_will_always_send_0 : use & 64 /* DestructuringFlag */ ? Diagnostics.Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_destructuring_will_always_send_0 : use & 16 /* YieldStarFlag */ ? Diagnostics.Cannot_delegate_iteration_to_value_because_the_next_method_of_its_iterator_expects_type_1_but_the_containing_generator_will_always_send_0 : void 0;\n          if (diagnostic) {\n            checkTypeAssignableTo(sentType, iterationTypes.nextType, errorNode, diagnostic);\n          }\n        }\n      }\n      if (iterationTypes || uplevelIteration) {\n        return possibleOutOfBounds ? includeUndefinedInIndexSignature(iterationTypes && iterationTypes.yieldType) : iterationTypes && iterationTypes.yieldType;\n      }\n    }\n    let arrayType = inputType;\n    let hasStringConstituent = false;\n    if (use & 4 /* AllowsStringInputFlag */) {\n      if (arrayType.flags & 1048576 /* Union */) {\n        const arrayTypes = inputType.types;\n        const filteredTypes = filter(arrayTypes, (t) => !(t.flags & 402653316 /* StringLike */));\n        if (filteredTypes !== arrayTypes) {\n          arrayType = getUnionType(filteredTypes, 2 /* Subtype */);\n        }\n      } else if (arrayType.flags & 402653316 /* StringLike */) {\n        arrayType = neverType;\n      }\n      hasStringConstituent = arrayType !== inputType;\n      if (hasStringConstituent) {\n        if (arrayType.flags & 131072 /* Never */) {\n          return possibleOutOfBounds ? includeUndefinedInIndexSignature(stringType) : stringType;\n        }\n      }\n    }\n    if (!isArrayLikeType(arrayType)) {\n      if (errorNode) {\n        const allowsStrings = !!(use & 4 /* AllowsStringInputFlag */) && !hasStringConstituent;\n        const [defaultDiagnostic, maybeMissingAwait] = getIterationDiagnosticDetails(allowsStrings, downlevelIteration);\n        errorAndMaybeSuggestAwait(\n          errorNode,\n          maybeMissingAwait && !!getAwaitedTypeOfPromise(arrayType),\n          defaultDiagnostic,\n          typeToString(arrayType)\n        );\n      }\n      return hasStringConstituent ? possibleOutOfBounds ? includeUndefinedInIndexSignature(stringType) : stringType : void 0;\n    }\n    const arrayElementType = getIndexTypeOfType(arrayType, numberType);\n    if (hasStringConstituent && arrayElementType) {\n      if (arrayElementType.flags & 402653316 /* StringLike */ && !compilerOptions.noUncheckedIndexedAccess) {\n        return stringType;\n      }\n      return getUnionType(possibleOutOfBounds ? [arrayElementType, stringType, undefinedType] : [arrayElementType, stringType], 2 /* Subtype */);\n    }\n    return use & 128 /* PossiblyOutOfBounds */ ? includeUndefinedInIndexSignature(arrayElementType) : arrayElementType;\n    function getIterationDiagnosticDetails(allowsStrings, downlevelIteration2) {\n      var _a;\n      if (downlevelIteration2) {\n        return allowsStrings ? [Diagnostics.Type_0_is_not_an_array_type_or_a_string_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator, true] : [Diagnostics.Type_0_is_not_an_array_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator, true];\n      }\n      const yieldType = getIterationTypeOfIterable(\n        use,\n        0 /* Yield */,\n        inputType,\n        /*errorNode*/\n        void 0\n      );\n      if (yieldType) {\n        return [Diagnostics.Type_0_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es2015_or_higher, false];\n      }\n      if (isES2015OrLaterIterable((_a = inputType.symbol) == null ? void 0 : _a.escapedName)) {\n        return [Diagnostics.Type_0_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es2015_or_higher, true];\n      }\n      return allowsStrings ? [Diagnostics.Type_0_is_not_an_array_type_or_a_string_type, true] : [Diagnostics.Type_0_is_not_an_array_type, true];\n    }\n  }\n  function isES2015OrLaterIterable(n) {\n    switch (n) {\n      case \"Float32Array\":\n      case \"Float64Array\":\n      case \"Int16Array\":\n      case \"Int32Array\":\n      case \"Int8Array\":\n      case \"NodeList\":\n      case \"Uint16Array\":\n      case \"Uint32Array\":\n      case \"Uint8Array\":\n      case \"Uint8ClampedArray\":\n        return true;\n    }\n    return false;\n  }\n  function getIterationTypeOfIterable(use, typeKind, inputType, errorNode) {\n    if (isTypeAny(inputType)) {\n      return void 0;\n    }\n    const iterationTypes = getIterationTypesOfIterable(inputType, use, errorNode);\n    return iterationTypes && iterationTypes[getIterationTypesKeyFromIterationTypeKind(typeKind)];\n  }\n  function createIterationTypes(yieldType = neverType, returnType = neverType, nextType = unknownType) {\n    if (yieldType.flags & 67359327 /* Intrinsic */ && returnType.flags & (1 /* Any */ | 131072 /* Never */ | 2 /* Unknown */ | 16384 /* Void */ | 32768 /* Undefined */) && nextType.flags & (1 /* Any */ | 131072 /* Never */ | 2 /* Unknown */ | 16384 /* Void */ | 32768 /* Undefined */)) {\n      const id = getTypeListId([yieldType, returnType, nextType]);\n      let iterationTypes = iterationTypesCache.get(id);\n      if (!iterationTypes) {\n        iterationTypes = { yieldType, returnType, nextType };\n        iterationTypesCache.set(id, iterationTypes);\n      }\n      return iterationTypes;\n    }\n    return { yieldType, returnType, nextType };\n  }\n  function combineIterationTypes(array) {\n    let yieldTypes;\n    let returnTypes;\n    let nextTypes;\n    for (const iterationTypes of array) {\n      if (iterationTypes === void 0 || iterationTypes === noIterationTypes) {\n        continue;\n      }\n      if (iterationTypes === anyIterationTypes) {\n        return anyIterationTypes;\n      }\n      yieldTypes = append(yieldTypes, iterationTypes.yieldType);\n      returnTypes = append(returnTypes, iterationTypes.returnType);\n      nextTypes = append(nextTypes, iterationTypes.nextType);\n    }\n    if (yieldTypes || returnTypes || nextTypes) {\n      return createIterationTypes(\n        yieldTypes && getUnionType(yieldTypes),\n        returnTypes && getUnionType(returnTypes),\n        nextTypes && getIntersectionType(nextTypes)\n      );\n    }\n    return noIterationTypes;\n  }\n  function getCachedIterationTypes(type, cacheKey) {\n    return type[cacheKey];\n  }\n  function setCachedIterationTypes(type, cacheKey, cachedTypes2) {\n    return type[cacheKey] = cachedTypes2;\n  }\n  function getIterationTypesOfIterable(type, use, errorNode) {\n    var _a, _b;\n    if (type === silentNeverType) {\n      return silentNeverIterationTypes;\n    }\n    if (isTypeAny(type)) {\n      return anyIterationTypes;\n    }\n    if (!(type.flags & 1048576 /* Union */)) {\n      const errorOutputContainer = errorNode ? { errors: void 0, skipLogging: true } : void 0;\n      const iterationTypes2 = getIterationTypesOfIterableWorker(type, use, errorNode, errorOutputContainer);\n      if (iterationTypes2 === noIterationTypes) {\n        if (errorNode) {\n          const rootDiag = reportTypeNotIterableError(errorNode, type, !!(use & 2 /* AllowsAsyncIterablesFlag */));\n          if (errorOutputContainer == null ? void 0 : errorOutputContainer.errors) {\n            addRelatedInfo(rootDiag, ...errorOutputContainer.errors);\n          }\n        }\n        return void 0;\n      } else if ((_a = errorOutputContainer == null ? void 0 : errorOutputContainer.errors) == null ? void 0 : _a.length) {\n        for (const diag2 of errorOutputContainer.errors) {\n          diagnostics.add(diag2);\n        }\n      }\n      return iterationTypes2;\n    }\n    const cacheKey = use & 2 /* AllowsAsyncIterablesFlag */ ? \"iterationTypesOfAsyncIterable\" : \"iterationTypesOfIterable\";\n    const cachedTypes2 = getCachedIterationTypes(type, cacheKey);\n    if (cachedTypes2) return cachedTypes2 === noIterationTypes ? void 0 : cachedTypes2;\n    let allIterationTypes;\n    for (const constituent of type.types) {\n      const errorOutputContainer = errorNode ? { errors: void 0 } : void 0;\n      const iterationTypes2 = getIterationTypesOfIterableWorker(constituent, use, errorNode, errorOutputContainer);\n      if (iterationTypes2 === noIterationTypes) {\n        if (errorNode) {\n          const rootDiag = reportTypeNotIterableError(errorNode, type, !!(use & 2 /* AllowsAsyncIterablesFlag */));\n          if (errorOutputContainer == null ? void 0 : errorOutputContainer.errors) {\n            addRelatedInfo(rootDiag, ...errorOutputContainer.errors);\n          }\n        }\n        setCachedIterationTypes(type, cacheKey, noIterationTypes);\n        return void 0;\n      } else if ((_b = errorOutputContainer == null ? void 0 : errorOutputContainer.errors) == null ? void 0 : _b.length) {\n        for (const diag2 of errorOutputContainer.errors) {\n          diagnostics.add(diag2);\n        }\n      }\n      allIterationTypes = append(allIterationTypes, iterationTypes2);\n    }\n    const iterationTypes = allIterationTypes ? combineIterationTypes(allIterationTypes) : noIterationTypes;\n    setCachedIterationTypes(type, cacheKey, iterationTypes);\n    return iterationTypes === noIterationTypes ? void 0 : iterationTypes;\n  }\n  function getAsyncFromSyncIterationTypes(iterationTypes, errorNode) {\n    if (iterationTypes === noIterationTypes) return noIterationTypes;\n    if (iterationTypes === anyIterationTypes) return anyIterationTypes;\n    const { yieldType, returnType, nextType } = iterationTypes;\n    if (errorNode) {\n      getGlobalAwaitedSymbol(\n        /*reportErrors*/\n        true\n      );\n    }\n    return createIterationTypes(\n      getAwaitedType(yieldType, errorNode) || anyType,\n      getAwaitedType(returnType, errorNode) || anyType,\n      nextType\n    );\n  }\n  function getIterationTypesOfIterableWorker(type, use, errorNode, errorOutputContainer) {\n    if (isTypeAny(type)) {\n      return anyIterationTypes;\n    }\n    let noCache = false;\n    if (use & 2 /* AllowsAsyncIterablesFlag */) {\n      const iterationTypes = getIterationTypesOfIterableCached(type, asyncIterationTypesResolver) || getIterationTypesOfIterableFast(type, asyncIterationTypesResolver);\n      if (iterationTypes) {\n        if (iterationTypes === noIterationTypes && errorNode) {\n          noCache = true;\n        } else {\n          return use & 8 /* ForOfFlag */ ? getAsyncFromSyncIterationTypes(iterationTypes, errorNode) : iterationTypes;\n        }\n      }\n    }\n    if (use & 1 /* AllowsSyncIterablesFlag */) {\n      let iterationTypes = getIterationTypesOfIterableCached(type, syncIterationTypesResolver) || getIterationTypesOfIterableFast(type, syncIterationTypesResolver);\n      if (iterationTypes) {\n        if (iterationTypes === noIterationTypes && errorNode) {\n          noCache = true;\n        } else {\n          if (use & 2 /* AllowsAsyncIterablesFlag */) {\n            if (iterationTypes !== noIterationTypes) {\n              iterationTypes = getAsyncFromSyncIterationTypes(iterationTypes, errorNode);\n              return noCache ? iterationTypes : setCachedIterationTypes(type, \"iterationTypesOfAsyncIterable\", iterationTypes);\n            }\n          } else {\n            return iterationTypes;\n          }\n        }\n      }\n    }\n    if (use & 2 /* AllowsAsyncIterablesFlag */) {\n      const iterationTypes = getIterationTypesOfIterableSlow(type, asyncIterationTypesResolver, errorNode, errorOutputContainer, noCache);\n      if (iterationTypes !== noIterationTypes) {\n        return iterationTypes;\n      }\n    }\n    if (use & 1 /* AllowsSyncIterablesFlag */) {\n      let iterationTypes = getIterationTypesOfIterableSlow(type, syncIterationTypesResolver, errorNode, errorOutputContainer, noCache);\n      if (iterationTypes !== noIterationTypes) {\n        if (use & 2 /* AllowsAsyncIterablesFlag */) {\n          iterationTypes = getAsyncFromSyncIterationTypes(iterationTypes, errorNode);\n          return noCache ? iterationTypes : setCachedIterationTypes(type, \"iterationTypesOfAsyncIterable\", iterationTypes);\n        } else {\n          return iterationTypes;\n        }\n      }\n    }\n    return noIterationTypes;\n  }\n  function getIterationTypesOfIterableCached(type, resolver) {\n    return getCachedIterationTypes(type, resolver.iterableCacheKey);\n  }\n  function getIterationTypesOfIterableFast(type, resolver) {\n    if (isReferenceToType2(type, resolver.getGlobalIterableType(\n      /*reportErrors*/\n      false\n    )) || isReferenceToType2(type, resolver.getGlobalIteratorObjectType(\n      /*reportErrors*/\n      false\n    )) || isReferenceToType2(type, resolver.getGlobalIterableIteratorType(\n      /*reportErrors*/\n      false\n    )) || isReferenceToType2(type, resolver.getGlobalGeneratorType(\n      /*reportErrors*/\n      false\n    ))) {\n      const [yieldType, returnType, nextType] = getTypeArguments(type);\n      return setCachedIterationTypes(type, resolver.iterableCacheKey, createIterationTypes(resolver.resolveIterationType(\n        yieldType,\n        /*errorNode*/\n        void 0\n      ) || yieldType, resolver.resolveIterationType(\n        returnType,\n        /*errorNode*/\n        void 0\n      ) || returnType, nextType));\n    }\n    if (isReferenceToSomeType(type, resolver.getGlobalBuiltinIteratorTypes())) {\n      const [yieldType] = getTypeArguments(type);\n      const returnType = getBuiltinIteratorReturnType();\n      const nextType = unknownType;\n      return setCachedIterationTypes(type, resolver.iterableCacheKey, createIterationTypes(resolver.resolveIterationType(\n        yieldType,\n        /*errorNode*/\n        void 0\n      ) || yieldType, resolver.resolveIterationType(\n        returnType,\n        /*errorNode*/\n        void 0\n      ) || returnType, nextType));\n    }\n  }\n  function getPropertyNameForKnownSymbolName(symbolName2) {\n    const ctorType = getGlobalESSymbolConstructorSymbol(\n      /*reportErrors*/\n      false\n    );\n    const uniqueType = ctorType && getTypeOfPropertyOfType(getTypeOfSymbol(ctorType), escapeLeadingUnderscores(symbolName2));\n    return uniqueType && isTypeUsableAsPropertyName(uniqueType) ? getPropertyNameFromType(uniqueType) : `__@${symbolName2}`;\n  }\n  function getIterationTypesOfIterableSlow(type, resolver, errorNode, errorOutputContainer, noCache) {\n    const method = getPropertyOfType(type, getPropertyNameForKnownSymbolName(resolver.iteratorSymbolName));\n    const methodType = method && !(method.flags & 16777216 /* Optional */) ? getTypeOfSymbol(method) : void 0;\n    if (isTypeAny(methodType)) {\n      return noCache ? anyIterationTypes : setCachedIterationTypes(type, resolver.iterableCacheKey, anyIterationTypes);\n    }\n    const allSignatures = methodType ? getSignaturesOfType(methodType, 0 /* Call */) : void 0;\n    const validSignatures = filter(allSignatures, (sig) => getMinArgumentCount(sig) === 0);\n    if (!some(validSignatures)) {\n      if (errorNode && some(allSignatures)) {\n        checkTypeAssignableTo(\n          type,\n          resolver.getGlobalIterableType(\n            /*reportErrors*/\n            true\n          ),\n          errorNode,\n          /*headMessage*/\n          void 0,\n          /*containingMessageChain*/\n          void 0,\n          errorOutputContainer\n        );\n      }\n      return noCache ? noIterationTypes : setCachedIterationTypes(type, resolver.iterableCacheKey, noIterationTypes);\n    }\n    const iteratorType = getIntersectionType(map(validSignatures, getReturnTypeOfSignature));\n    const iterationTypes = getIterationTypesOfIteratorWorker(iteratorType, resolver, errorNode, errorOutputContainer, noCache) ?? noIterationTypes;\n    return noCache ? iterationTypes : setCachedIterationTypes(type, resolver.iterableCacheKey, iterationTypes);\n  }\n  function reportTypeNotIterableError(errorNode, type, allowAsyncIterables) {\n    const message = allowAsyncIterables ? Diagnostics.Type_0_must_have_a_Symbol_asyncIterator_method_that_returns_an_async_iterator : Diagnostics.Type_0_must_have_a_Symbol_iterator_method_that_returns_an_iterator;\n    const suggestAwait = (\n      // for (const x of Promise<...>) or [...Promise<...>]\n      !!getAwaitedTypeOfPromise(type) || !allowAsyncIterables && isForOfStatement(errorNode.parent) && errorNode.parent.expression === errorNode && getGlobalAsyncIterableType(\n        /*reportErrors*/\n        false\n      ) !== emptyGenericType && isTypeAssignableTo(type, createTypeFromGenericGlobalType(getGlobalAsyncIterableType(\n        /*reportErrors*/\n        false\n      ), [anyType, anyType, anyType]))\n    );\n    return errorAndMaybeSuggestAwait(errorNode, suggestAwait, message, typeToString(type));\n  }\n  function getIterationTypesOfIterator(type, resolver, errorNode, errorOutputContainer) {\n    return getIterationTypesOfIteratorWorker(\n      type,\n      resolver,\n      errorNode,\n      errorOutputContainer,\n      /*noCache*/\n      false\n    );\n  }\n  function getIterationTypesOfIteratorWorker(type, resolver, errorNode, errorOutputContainer, noCache) {\n    if (isTypeAny(type)) {\n      return anyIterationTypes;\n    }\n    let iterationTypes = getIterationTypesOfIteratorCached(type, resolver) || getIterationTypesOfIteratorFast(type, resolver);\n    if (iterationTypes === noIterationTypes && errorNode) {\n      iterationTypes = void 0;\n      noCache = true;\n    }\n    iterationTypes ?? (iterationTypes = getIterationTypesOfIteratorSlow(type, resolver, errorNode, errorOutputContainer, noCache));\n    return iterationTypes === noIterationTypes ? void 0 : iterationTypes;\n  }\n  function getIterationTypesOfIteratorCached(type, resolver) {\n    return getCachedIterationTypes(type, resolver.iteratorCacheKey);\n  }\n  function getIterationTypesOfIteratorFast(type, resolver) {\n    if (isReferenceToType2(type, resolver.getGlobalIterableIteratorType(\n      /*reportErrors*/\n      false\n    )) || isReferenceToType2(type, resolver.getGlobalIteratorType(\n      /*reportErrors*/\n      false\n    )) || isReferenceToType2(type, resolver.getGlobalIteratorObjectType(\n      /*reportErrors*/\n      false\n    )) || isReferenceToType2(type, resolver.getGlobalGeneratorType(\n      /*reportErrors*/\n      false\n    ))) {\n      const [yieldType, returnType, nextType] = getTypeArguments(type);\n      return setCachedIterationTypes(type, resolver.iteratorCacheKey, createIterationTypes(yieldType, returnType, nextType));\n    }\n    if (isReferenceToSomeType(type, resolver.getGlobalBuiltinIteratorTypes())) {\n      const [yieldType] = getTypeArguments(type);\n      const returnType = getBuiltinIteratorReturnType();\n      const nextType = unknownType;\n      return setCachedIterationTypes(type, resolver.iteratorCacheKey, createIterationTypes(yieldType, returnType, nextType));\n    }\n  }\n  function isIteratorResult(type, kind) {\n    const doneType = getTypeOfPropertyOfType(type, \"done\") || falseType;\n    return isTypeAssignableTo(kind === 0 /* Yield */ ? falseType : trueType, doneType);\n  }\n  function isYieldIteratorResult(type) {\n    return isIteratorResult(type, 0 /* Yield */);\n  }\n  function isReturnIteratorResult(type) {\n    return isIteratorResult(type, 1 /* Return */);\n  }\n  function getIterationTypesOfIteratorResult(type) {\n    if (isTypeAny(type)) {\n      return anyIterationTypes;\n    }\n    const cachedTypes2 = getCachedIterationTypes(type, \"iterationTypesOfIteratorResult\");\n    if (cachedTypes2) {\n      return cachedTypes2;\n    }\n    if (isReferenceToType2(type, getGlobalIteratorYieldResultType(\n      /*reportErrors*/\n      false\n    ))) {\n      const yieldType2 = getTypeArguments(type)[0];\n      return setCachedIterationTypes(type, \"iterationTypesOfIteratorResult\", createIterationTypes(\n        yieldType2,\n        /*returnType*/\n        void 0,\n        /*nextType*/\n        void 0\n      ));\n    }\n    if (isReferenceToType2(type, getGlobalIteratorReturnResultType(\n      /*reportErrors*/\n      false\n    ))) {\n      const returnType2 = getTypeArguments(type)[0];\n      return setCachedIterationTypes(type, \"iterationTypesOfIteratorResult\", createIterationTypes(\n        /*yieldType*/\n        void 0,\n        returnType2,\n        /*nextType*/\n        void 0\n      ));\n    }\n    const yieldIteratorResult = filterType(type, isYieldIteratorResult);\n    const yieldType = yieldIteratorResult !== neverType ? getTypeOfPropertyOfType(yieldIteratorResult, \"value\") : void 0;\n    const returnIteratorResult = filterType(type, isReturnIteratorResult);\n    const returnType = returnIteratorResult !== neverType ? getTypeOfPropertyOfType(returnIteratorResult, \"value\") : void 0;\n    if (!yieldType && !returnType) {\n      return setCachedIterationTypes(type, \"iterationTypesOfIteratorResult\", noIterationTypes);\n    }\n    return setCachedIterationTypes(type, \"iterationTypesOfIteratorResult\", createIterationTypes(\n      yieldType,\n      returnType || voidType,\n      /*nextType*/\n      void 0\n    ));\n  }\n  function getIterationTypesOfMethod(type, resolver, methodName, errorNode, errorOutputContainer) {\n    var _a, _b, _c, _d;\n    const method = getPropertyOfType(type, methodName);\n    if (!method && methodName !== \"next\") {\n      return void 0;\n    }\n    const methodType = method && !(methodName === \"next\" && method.flags & 16777216 /* Optional */) ? methodName === \"next\" ? getTypeOfSymbol(method) : getTypeWithFacts(getTypeOfSymbol(method), 2097152 /* NEUndefinedOrNull */) : void 0;\n    if (isTypeAny(methodType)) {\n      return anyIterationTypes;\n    }\n    const methodSignatures = methodType ? getSignaturesOfType(methodType, 0 /* Call */) : emptyArray;\n    if (methodSignatures.length === 0) {\n      if (errorNode) {\n        const diagnostic = methodName === \"next\" ? resolver.mustHaveANextMethodDiagnostic : resolver.mustBeAMethodDiagnostic;\n        if (errorOutputContainer) {\n          errorOutputContainer.errors ?? (errorOutputContainer.errors = []);\n          errorOutputContainer.errors.push(createDiagnosticForNode(errorNode, diagnostic, methodName));\n        } else {\n          error2(errorNode, diagnostic, methodName);\n        }\n      }\n      return methodName === \"next\" ? noIterationTypes : void 0;\n    }\n    if ((methodType == null ? void 0 : methodType.symbol) && methodSignatures.length === 1) {\n      const globalGeneratorType = resolver.getGlobalGeneratorType(\n        /*reportErrors*/\n        false\n      );\n      const globalIteratorType = resolver.getGlobalIteratorType(\n        /*reportErrors*/\n        false\n      );\n      const isGeneratorMethod = ((_b = (_a = globalGeneratorType.symbol) == null ? void 0 : _a.members) == null ? void 0 : _b.get(methodName)) === methodType.symbol;\n      const isIteratorMethod = !isGeneratorMethod && ((_d = (_c = globalIteratorType.symbol) == null ? void 0 : _c.members) == null ? void 0 : _d.get(methodName)) === methodType.symbol;\n      if (isGeneratorMethod || isIteratorMethod) {\n        const globalType = isGeneratorMethod ? globalGeneratorType : globalIteratorType;\n        const { mapper } = methodType;\n        return createIterationTypes(\n          getMappedType(globalType.typeParameters[0], mapper),\n          getMappedType(globalType.typeParameters[1], mapper),\n          methodName === \"next\" ? getMappedType(globalType.typeParameters[2], mapper) : void 0\n        );\n      }\n    }\n    let methodParameterTypes;\n    let methodReturnTypes;\n    for (const signature of methodSignatures) {\n      if (methodName !== \"throw\" && some(signature.parameters)) {\n        methodParameterTypes = append(methodParameterTypes, getTypeAtPosition(signature, 0));\n      }\n      methodReturnTypes = append(methodReturnTypes, getReturnTypeOfSignature(signature));\n    }\n    let returnTypes;\n    let nextType;\n    if (methodName !== \"throw\") {\n      const methodParameterType = methodParameterTypes ? getUnionType(methodParameterTypes) : unknownType;\n      if (methodName === \"next\") {\n        nextType = methodParameterType;\n      } else if (methodName === \"return\") {\n        const resolvedMethodParameterType = resolver.resolveIterationType(methodParameterType, errorNode) || anyType;\n        returnTypes = append(returnTypes, resolvedMethodParameterType);\n      }\n    }\n    let yieldType;\n    const methodReturnType = methodReturnTypes ? getIntersectionType(methodReturnTypes) : neverType;\n    const resolvedMethodReturnType = resolver.resolveIterationType(methodReturnType, errorNode) || anyType;\n    const iterationTypes = getIterationTypesOfIteratorResult(resolvedMethodReturnType);\n    if (iterationTypes === noIterationTypes) {\n      if (errorNode) {\n        if (errorOutputContainer) {\n          errorOutputContainer.errors ?? (errorOutputContainer.errors = []);\n          errorOutputContainer.errors.push(createDiagnosticForNode(errorNode, resolver.mustHaveAValueDiagnostic, methodName));\n        } else {\n          error2(errorNode, resolver.mustHaveAValueDiagnostic, methodName);\n        }\n      }\n      yieldType = anyType;\n      returnTypes = append(returnTypes, anyType);\n    } else {\n      yieldType = iterationTypes.yieldType;\n      returnTypes = append(returnTypes, iterationTypes.returnType);\n    }\n    return createIterationTypes(yieldType, getUnionType(returnTypes), nextType);\n  }\n  function getIterationTypesOfIteratorSlow(type, resolver, errorNode, errorOutputContainer, noCache) {\n    const iterationTypes = combineIterationTypes([\n      getIterationTypesOfMethod(type, resolver, \"next\", errorNode, errorOutputContainer),\n      getIterationTypesOfMethod(type, resolver, \"return\", errorNode, errorOutputContainer),\n      getIterationTypesOfMethod(type, resolver, \"throw\", errorNode, errorOutputContainer)\n    ]);\n    return noCache ? iterationTypes : setCachedIterationTypes(type, resolver.iteratorCacheKey, iterationTypes);\n  }\n  function getIterationTypeOfGeneratorFunctionReturnType(kind, returnType, isAsyncGenerator) {\n    if (isTypeAny(returnType)) {\n      return void 0;\n    }\n    const iterationTypes = getIterationTypesOfGeneratorFunctionReturnType(returnType, isAsyncGenerator);\n    return iterationTypes && iterationTypes[getIterationTypesKeyFromIterationTypeKind(kind)];\n  }\n  function getIterationTypesOfGeneratorFunctionReturnType(type, isAsyncGenerator) {\n    if (isTypeAny(type)) {\n      return anyIterationTypes;\n    }\n    const use = isAsyncGenerator ? 2 /* AsyncGeneratorReturnType */ : 1 /* GeneratorReturnType */;\n    const resolver = isAsyncGenerator ? asyncIterationTypesResolver : syncIterationTypesResolver;\n    return getIterationTypesOfIterable(\n      type,\n      use,\n      /*errorNode*/\n      void 0\n    ) || getIterationTypesOfIterator(\n      type,\n      resolver,\n      /*errorNode*/\n      void 0,\n      /*errorOutputContainer*/\n      void 0\n    );\n  }\n  function checkBreakOrContinueStatement(node) {\n    if (!checkGrammarStatementInAmbientContext(node)) checkGrammarBreakOrContinueStatement(node);\n  }\n  function unwrapReturnType(returnType, functionFlags) {\n    const isGenerator = !!(functionFlags & 1 /* Generator */);\n    const isAsync = !!(functionFlags & 2 /* Async */);\n    if (isGenerator) {\n      const returnIterationType = getIterationTypeOfGeneratorFunctionReturnType(1 /* Return */, returnType, isAsync);\n      if (!returnIterationType) {\n        return errorType;\n      }\n      return isAsync ? getAwaitedTypeNoAlias(unwrapAwaitedType(returnIterationType)) : returnIterationType;\n    }\n    return isAsync ? getAwaitedTypeNoAlias(returnType) || errorType : returnType;\n  }\n  function isUnwrappedReturnTypeUndefinedVoidOrAny(func, returnType) {\n    const type = unwrapReturnType(returnType, getFunctionFlags(func));\n    return !!(type && (maybeTypeOfKind(type, 16384 /* Void */) || type.flags & (1 /* Any */ | 32768 /* Undefined */)));\n  }\n  function checkReturnStatement(node) {\n    if (checkGrammarStatementInAmbientContext(node)) {\n      return;\n    }\n    const container = getContainingFunctionOrClassStaticBlock(node);\n    if (container && isClassStaticBlockDeclaration(container)) {\n      grammarErrorOnFirstToken(node, Diagnostics.A_return_statement_cannot_be_used_inside_a_class_static_block);\n      return;\n    }\n    if (!container) {\n      grammarErrorOnFirstToken(node, Diagnostics.A_return_statement_can_only_be_used_within_a_function_body);\n      return;\n    }\n    const signature = getSignatureFromDeclaration(container);\n    const returnType = getReturnTypeOfSignature(signature);\n    if (strictNullChecks || node.expression || returnType.flags & 131072 /* Never */) {\n      const exprType = node.expression ? checkExpressionCached(node.expression) : undefinedType;\n      if (container.kind === 179 /* SetAccessor */) {\n        if (node.expression) {\n          error2(node, Diagnostics.Setters_cannot_return_a_value);\n        }\n      } else if (container.kind === 177 /* Constructor */) {\n        const exprType2 = node.expression ? checkExpressionCached(node.expression) : undefinedType;\n        if (node.expression && !checkTypeAssignableToAndOptionallyElaborate(exprType2, returnType, node, node.expression)) {\n          error2(node, Diagnostics.Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class);\n        }\n      } else if (getReturnTypeFromAnnotation(container)) {\n        const unwrappedReturnType = unwrapReturnType(returnType, getFunctionFlags(container)) ?? returnType;\n        checkReturnExpression(container, unwrappedReturnType, node, node.expression, exprType);\n      }\n    } else if (container.kind !== 177 /* Constructor */ && compilerOptions.noImplicitReturns && !isUnwrappedReturnTypeUndefinedVoidOrAny(container, returnType)) {\n      error2(node, Diagnostics.Not_all_code_paths_return_a_value);\n    }\n  }\n  function checkReturnExpression(container, unwrappedReturnType, node, expr, exprType, inConditionalExpression = false) {\n    const excludeJSDocTypeAssertions = isInJSFile(node);\n    const functionFlags = getFunctionFlags(container);\n    if (expr) {\n      const unwrappedExpr = skipParentheses(expr, excludeJSDocTypeAssertions);\n      if (isConditionalExpression(unwrappedExpr)) {\n        checkReturnExpression(\n          container,\n          unwrappedReturnType,\n          node,\n          unwrappedExpr.whenTrue,\n          checkExpression(unwrappedExpr.whenTrue),\n          /*inConditionalExpression*/\n          true\n        );\n        checkReturnExpression(\n          container,\n          unwrappedReturnType,\n          node,\n          unwrappedExpr.whenFalse,\n          checkExpression(unwrappedExpr.whenFalse),\n          /*inConditionalExpression*/\n          true\n        );\n        return;\n      }\n    }\n    const inReturnStatement = node.kind === 254 /* ReturnStatement */;\n    const unwrappedExprType = functionFlags & 2 /* Async */ ? checkAwaitedType(\n      exprType,\n      /*withAlias*/\n      false,\n      node,\n      Diagnostics.The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member\n    ) : exprType;\n    const effectiveExpr = expr && getEffectiveCheckNode(expr);\n    const errorNode = inReturnStatement && !inConditionalExpression ? node : effectiveExpr;\n    checkTypeAssignableToAndOptionallyElaborate(unwrappedExprType, unwrappedReturnType, errorNode, effectiveExpr);\n  }\n  function checkWithStatement(node) {\n    if (!checkGrammarStatementInAmbientContext(node)) {\n      if (node.flags & 65536 /* AwaitContext */) {\n        grammarErrorOnFirstToken(node, Diagnostics.with_statements_are_not_allowed_in_an_async_function_block);\n      }\n    }\n    checkExpression(node.expression);\n    const sourceFile = getSourceFileOfNode(node);\n    if (!hasParseDiagnostics(sourceFile)) {\n      const start = getSpanOfTokenAtPosition(sourceFile, node.pos).start;\n      const end = node.statement.pos;\n      grammarErrorAtPos(sourceFile, start, end - start, Diagnostics.The_with_statement_is_not_supported_All_symbols_in_a_with_block_will_have_type_any);\n    }\n  }\n  function checkSwitchStatement(node) {\n    checkGrammarStatementInAmbientContext(node);\n    let firstDefaultClause;\n    let hasDuplicateDefaultClause = false;\n    const expressionType = checkExpression(node.expression);\n    forEach(node.caseBlock.clauses, (clause) => {\n      if (clause.kind === 298 /* DefaultClause */ && !hasDuplicateDefaultClause) {\n        if (firstDefaultClause === void 0) {\n          firstDefaultClause = clause;\n        } else {\n          grammarErrorOnNode(clause, Diagnostics.A_default_clause_cannot_appear_more_than_once_in_a_switch_statement);\n          hasDuplicateDefaultClause = true;\n        }\n      }\n      if (clause.kind === 297 /* CaseClause */) {\n        addLazyDiagnostic(createLazyCaseClauseDiagnostics(clause));\n      }\n      forEach(clause.statements, checkSourceElement);\n      if (compilerOptions.noFallthroughCasesInSwitch && clause.fallthroughFlowNode && isReachableFlowNode(clause.fallthroughFlowNode)) {\n        error2(clause, Diagnostics.Fallthrough_case_in_switch);\n      }\n      function createLazyCaseClauseDiagnostics(clause2) {\n        return () => {\n          const caseType = checkExpression(clause2.expression);\n          if (!isTypeEqualityComparableTo(expressionType, caseType)) {\n            checkTypeComparableTo(\n              caseType,\n              expressionType,\n              clause2.expression,\n              /*headMessage*/\n              void 0\n            );\n          }\n        };\n      }\n    });\n    if (node.caseBlock.locals) {\n      registerForUnusedIdentifiersCheck(node.caseBlock);\n    }\n  }\n  function checkLabeledStatement(node) {\n    if (!checkGrammarStatementInAmbientContext(node)) {\n      findAncestor(node.parent, (current) => {\n        if (isFunctionLike(current)) {\n          return \"quit\";\n        }\n        if (current.kind === 257 /* LabeledStatement */ && current.label.escapedText === node.label.escapedText) {\n          grammarErrorOnNode(node.label, Diagnostics.Duplicate_label_0, getTextOfNode(node.label));\n          return true;\n        }\n        return false;\n      });\n    }\n    checkSourceElement(node.statement);\n  }\n  function checkThrowStatement(node) {\n    if (!checkGrammarStatementInAmbientContext(node)) {\n      if (isIdentifier(node.expression) && !node.expression.escapedText) {\n        grammarErrorAfterFirstToken(node, Diagnostics.Line_break_not_permitted_here);\n      }\n    }\n    if (node.expression) {\n      checkExpression(node.expression);\n    }\n  }\n  function checkTryStatement(node) {\n    checkGrammarStatementInAmbientContext(node);\n    checkBlock(node.tryBlock);\n    const catchClause = node.catchClause;\n    if (catchClause) {\n      if (catchClause.variableDeclaration) {\n        const declaration = catchClause.variableDeclaration;\n        checkVariableLikeDeclaration(declaration);\n        const typeNode = getEffectiveTypeAnnotationNode(declaration);\n        if (typeNode) {\n          const type = getTypeFromTypeNode(typeNode);\n          if (type && !(type.flags & 3 /* AnyOrUnknown */)) {\n            grammarErrorOnFirstToken(typeNode, Diagnostics.Catch_clause_variable_type_annotation_must_be_any_or_unknown_if_specified);\n          }\n        } else if (declaration.initializer) {\n          grammarErrorOnFirstToken(declaration.initializer, Diagnostics.Catch_clause_variable_cannot_have_an_initializer);\n        } else {\n          const blockLocals = catchClause.block.locals;\n          if (blockLocals) {\n            forEachKey(catchClause.locals, (caughtName) => {\n              const blockLocal = blockLocals.get(caughtName);\n              if ((blockLocal == null ? void 0 : blockLocal.valueDeclaration) && (blockLocal.flags & 2 /* BlockScopedVariable */) !== 0) {\n                grammarErrorOnNode(blockLocal.valueDeclaration, Diagnostics.Cannot_redeclare_identifier_0_in_catch_clause, unescapeLeadingUnderscores(caughtName));\n              }\n            });\n          }\n        }\n      }\n      checkBlock(catchClause.block);\n    }\n    if (node.finallyBlock) {\n      checkBlock(node.finallyBlock);\n    }\n  }\n  function checkIndexConstraints(type, symbol, isStaticIndex) {\n    const indexInfos = getIndexInfosOfType(type);\n    if (indexInfos.length === 0) {\n      return;\n    }\n    for (const prop of getPropertiesOfObjectType(type)) {\n      if (!(isStaticIndex && prop.flags & 4194304 /* Prototype */)) {\n        checkIndexConstraintForProperty(type, prop, getLiteralTypeFromProperty(\n          prop,\n          8576 /* StringOrNumberLiteralOrUnique */,\n          /*includeNonPublic*/\n          true\n        ), getNonMissingTypeOfSymbol(prop));\n      }\n    }\n    const typeDeclaration = symbol.valueDeclaration;\n    if (typeDeclaration && isClassLike(typeDeclaration)) {\n      for (const member of typeDeclaration.members) {\n        if ((!isStaticIndex && !isStatic(member) || isStaticIndex && isStatic(member)) && !hasBindableName(member)) {\n          const symbol2 = getSymbolOfDeclaration(member);\n          checkIndexConstraintForProperty(type, symbol2, getTypeOfExpression(member.name.expression), getNonMissingTypeOfSymbol(symbol2));\n        }\n      }\n    }\n    if (indexInfos.length > 1) {\n      for (const info of indexInfos) {\n        checkIndexConstraintForIndexSignature(type, info);\n      }\n    }\n  }\n  function checkIndexConstraintForProperty(type, prop, propNameType, propType) {\n    const declaration = prop.valueDeclaration;\n    const name = getNameOfDeclaration(declaration);\n    if (name && isPrivateIdentifier(name)) {\n      return;\n    }\n    const indexInfos = getApplicableIndexInfos(type, propNameType);\n    const interfaceDeclaration = getObjectFlags(type) & 2 /* Interface */ ? getDeclarationOfKind(type.symbol, 265 /* InterfaceDeclaration */) : void 0;\n    const propDeclaration = declaration && declaration.kind === 227 /* BinaryExpression */ || name && name.kind === 168 /* ComputedPropertyName */ ? declaration : void 0;\n    const localPropDeclaration = getParentOfSymbol(prop) === type.symbol ? declaration : void 0;\n    for (const info of indexInfos) {\n      const localIndexDeclaration = info.declaration && getParentOfSymbol(getSymbolOfDeclaration(info.declaration)) === type.symbol ? info.declaration : void 0;\n      const errorNode = localPropDeclaration || localIndexDeclaration || (interfaceDeclaration && !some(getBaseTypes(type), (base) => !!getPropertyOfObjectType(base, prop.escapedName) && !!getIndexTypeOfType(base, info.keyType)) ? interfaceDeclaration : void 0);\n      if (errorNode && !isTypeAssignableTo(propType, info.type)) {\n        const diagnostic = createError(errorNode, Diagnostics.Property_0_of_type_1_is_not_assignable_to_2_index_type_3, symbolToString(prop), typeToString(propType), typeToString(info.keyType), typeToString(info.type));\n        if (propDeclaration && errorNode !== propDeclaration) {\n          addRelatedInfo(diagnostic, createDiagnosticForNode(propDeclaration, Diagnostics._0_is_declared_here, symbolToString(prop)));\n        }\n        diagnostics.add(diagnostic);\n      }\n    }\n  }\n  function checkIndexConstraintForIndexSignature(type, checkInfo) {\n    const declaration = checkInfo.declaration;\n    const indexInfos = getApplicableIndexInfos(type, checkInfo.keyType);\n    const interfaceDeclaration = getObjectFlags(type) & 2 /* Interface */ ? getDeclarationOfKind(type.symbol, 265 /* InterfaceDeclaration */) : void 0;\n    const localCheckDeclaration = declaration && getParentOfSymbol(getSymbolOfDeclaration(declaration)) === type.symbol ? declaration : void 0;\n    for (const info of indexInfos) {\n      if (info === checkInfo) continue;\n      const localIndexDeclaration = info.declaration && getParentOfSymbol(getSymbolOfDeclaration(info.declaration)) === type.symbol ? info.declaration : void 0;\n      const errorNode = localCheckDeclaration || localIndexDeclaration || (interfaceDeclaration && !some(getBaseTypes(type), (base) => !!getIndexInfoOfType(base, checkInfo.keyType) && !!getIndexTypeOfType(base, info.keyType)) ? interfaceDeclaration : void 0);\n      if (errorNode && !isTypeAssignableTo(checkInfo.type, info.type)) {\n        error2(errorNode, Diagnostics._0_index_type_1_is_not_assignable_to_2_index_type_3, typeToString(checkInfo.keyType), typeToString(checkInfo.type), typeToString(info.keyType), typeToString(info.type));\n      }\n    }\n  }\n  function checkTypeNameIsReserved(name, message) {\n    switch (name.escapedText) {\n      case \"any\":\n      case \"unknown\":\n      case \"never\":\n      case \"number\":\n      case \"bigint\":\n      case \"boolean\":\n      case \"string\":\n      case \"symbol\":\n      case \"void\":\n      case \"object\":\n      case \"undefined\":\n        error2(name, message, name.escapedText);\n    }\n  }\n  function checkClassNameCollisionWithObject(name) {\n    if (languageVersion >= 1 /* ES5 */ && name.escapedText === \"Object\" && host.getEmitModuleFormatOfFile(getSourceFileOfNode(name)) < 5 /* ES2015 */) {\n      error2(name, Diagnostics.Class_name_cannot_be_Object_when_targeting_ES5_and_above_with_module_0, ModuleKind[moduleKind]);\n    }\n  }\n  function checkUnmatchedJSDocParameters(node) {\n    const jsdocParameters = filter(getJSDocTags(node), isJSDocParameterTag);\n    if (!length(jsdocParameters)) return;\n    const isJs = isInJSFile(node);\n    const parameters = /* @__PURE__ */ new Set();\n    const excludedParameters = /* @__PURE__ */ new Set();\n    forEach(node.parameters, ({ name }, index) => {\n      if (isIdentifier(name)) {\n        parameters.add(name.escapedText);\n      }\n      if (isBindingPattern(name)) {\n        excludedParameters.add(index);\n      }\n    });\n    const containsArguments = containsArgumentsReference(node);\n    if (containsArguments) {\n      const lastJSDocParamIndex = jsdocParameters.length - 1;\n      const lastJSDocParam = jsdocParameters[lastJSDocParamIndex];\n      if (isJs && lastJSDocParam && isIdentifier(lastJSDocParam.name) && lastJSDocParam.typeExpression && lastJSDocParam.typeExpression.type && !parameters.has(lastJSDocParam.name.escapedText) && !excludedParameters.has(lastJSDocParamIndex) && !isArrayType(getTypeFromTypeNode(lastJSDocParam.typeExpression.type))) {\n        error2(lastJSDocParam.name, Diagnostics.JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_It_would_match_arguments_if_it_had_an_array_type, idText(lastJSDocParam.name));\n      }\n    } else {\n      forEach(jsdocParameters, ({ name, isNameFirst }, index) => {\n        if (excludedParameters.has(index) || isIdentifier(name) && parameters.has(name.escapedText)) {\n          return;\n        }\n        if (isQualifiedName(name)) {\n          if (isJs) {\n            error2(name, Diagnostics.Qualified_name_0_is_not_allowed_without_a_leading_param_object_1, entityNameToString(name), entityNameToString(name.left));\n          }\n        } else {\n          if (!isNameFirst) {\n            errorOrSuggestion(isJs, name, Diagnostics.JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name, idText(name));\n          }\n        }\n      });\n    }\n  }\n  function checkTypeParameters(typeParameterDeclarations) {\n    let seenDefault = false;\n    if (typeParameterDeclarations) {\n      for (let i = 0; i < typeParameterDeclarations.length; i++) {\n        const node = typeParameterDeclarations[i];\n        checkTypeParameter(node);\n        addLazyDiagnostic(createCheckTypeParameterDiagnostic(node, i));\n      }\n    }\n    function createCheckTypeParameterDiagnostic(node, i) {\n      return () => {\n        if (node.default) {\n          seenDefault = true;\n          checkTypeParametersNotReferenced(node.default, typeParameterDeclarations, i);\n        } else if (seenDefault) {\n          error2(node, Diagnostics.Required_type_parameters_may_not_follow_optional_type_parameters);\n        }\n        for (let j = 0; j < i; j++) {\n          if (typeParameterDeclarations[j].symbol === node.symbol) {\n            error2(node.name, Diagnostics.Duplicate_identifier_0, declarationNameToString(node.name));\n          }\n        }\n      };\n    }\n  }\n  function checkTypeParametersNotReferenced(root, typeParameters, index) {\n    visit(root);\n    function visit(node) {\n      if (node.kind === 184 /* TypeReference */) {\n        const type = getTypeFromTypeReference(node);\n        if (type.flags & 262144 /* TypeParameter */) {\n          for (let i = index; i < typeParameters.length; i++) {\n            if (type.symbol === getSymbolOfDeclaration(typeParameters[i])) {\n              error2(node, Diagnostics.Type_parameter_defaults_can_only_reference_previously_declared_type_parameters);\n            }\n          }\n        }\n      }\n      forEachChild(node, visit);\n    }\n  }\n  function checkTypeParameterListsIdentical(symbol) {\n    if (symbol.declarations && symbol.declarations.length === 1) {\n      return;\n    }\n    const links = getSymbolLinks(symbol);\n    if (!links.typeParametersChecked) {\n      links.typeParametersChecked = true;\n      const declarations = getClassOrInterfaceDeclarationsOfSymbol(symbol);\n      if (!declarations || declarations.length <= 1) {\n        return;\n      }\n      const type = getDeclaredTypeOfSymbol(symbol);\n      if (!areTypeParametersIdentical(declarations, type.localTypeParameters, getEffectiveTypeParameterDeclarations)) {\n        const name = symbolToString(symbol);\n        for (const declaration of declarations) {\n          error2(declaration.name, Diagnostics.All_declarations_of_0_must_have_identical_type_parameters, name);\n        }\n      }\n    }\n  }\n  function areTypeParametersIdentical(declarations, targetParameters, getTypeParameterDeclarations) {\n    const maxTypeArgumentCount = length(targetParameters);\n    const minTypeArgumentCount = getMinTypeArgumentCount(targetParameters);\n    for (const declaration of declarations) {\n      const sourceParameters = getTypeParameterDeclarations(declaration);\n      const numTypeParameters = sourceParameters.length;\n      if (numTypeParameters < minTypeArgumentCount || numTypeParameters > maxTypeArgumentCount) {\n        return false;\n      }\n      for (let i = 0; i < numTypeParameters; i++) {\n        const source = sourceParameters[i];\n        const target = targetParameters[i];\n        if (source.name.escapedText !== target.symbol.escapedName) {\n          return false;\n        }\n        const constraint = getEffectiveConstraintOfTypeParameter(source);\n        const sourceConstraint = constraint && getTypeFromTypeNode(constraint);\n        const targetConstraint = getConstraintOfTypeParameter(target);\n        if (sourceConstraint && targetConstraint && !isTypeIdenticalTo(sourceConstraint, targetConstraint)) {\n          return false;\n        }\n        const sourceDefault = source.default && getTypeFromTypeNode(source.default);\n        const targetDefault = getDefaultFromTypeParameter(target);\n        if (sourceDefault && targetDefault && !isTypeIdenticalTo(sourceDefault, targetDefault)) {\n          return false;\n        }\n      }\n    }\n    return true;\n  }\n  function getFirstTransformableStaticClassElement(node) {\n    const willTransformStaticElementsOfDecoratedClass = !legacyDecorators && languageVersion < LanguageFeatureMinimumTarget.ClassAndClassElementDecorators && classOrConstructorParameterIsDecorated(\n      /*useLegacyDecorators*/\n      false,\n      node\n    );\n    const willTransformPrivateElementsOrClassStaticBlocks = languageVersion < LanguageFeatureMinimumTarget.PrivateNamesAndClassStaticBlocks || languageVersion < LanguageFeatureMinimumTarget.ClassAndClassElementDecorators;\n    const willTransformInitializers = !emitStandardClassFields;\n    if (willTransformStaticElementsOfDecoratedClass || willTransformPrivateElementsOrClassStaticBlocks) {\n      for (const member of node.members) {\n        if (willTransformStaticElementsOfDecoratedClass && classElementOrClassElementParameterIsDecorated(\n          /*useLegacyDecorators*/\n          false,\n          member,\n          node\n        )) {\n          return firstOrUndefined(getDecorators(node)) ?? node;\n        } else if (willTransformPrivateElementsOrClassStaticBlocks) {\n          if (isClassStaticBlockDeclaration(member)) {\n            return member;\n          } else if (isStatic(member)) {\n            if (isPrivateIdentifierClassElementDeclaration(member) || willTransformInitializers && isInitializedProperty(member)) {\n              return member;\n            }\n          }\n        }\n      }\n    }\n  }\n  function checkClassExpressionExternalHelpers(node) {\n    if (node.name) return;\n    const parent2 = walkUpOuterExpressions(node);\n    if (!isNamedEvaluationSource(parent2)) return;\n    const willTransformESDecorators = !legacyDecorators && languageVersion < LanguageFeatureMinimumTarget.ClassAndClassElementDecorators;\n    let location;\n    if (willTransformESDecorators && classOrConstructorParameterIsDecorated(\n      /*useLegacyDecorators*/\n      false,\n      node\n    )) {\n      location = firstOrUndefined(getDecorators(node)) ?? node;\n    } else {\n      location = getFirstTransformableStaticClassElement(node);\n    }\n    if (location) {\n      checkExternalEmitHelpers(location, 4194304 /* SetFunctionName */);\n      if ((isPropertyAssignment(parent2) || isPropertyDeclaration(parent2) || isBindingElement(parent2)) && isComputedPropertyName(parent2.name)) {\n        checkExternalEmitHelpers(location, 8388608 /* PropKey */);\n      }\n    }\n  }\n  function checkClassExpression(node) {\n    checkClassLikeDeclaration(node);\n    checkNodeDeferred(node);\n    checkClassExpressionExternalHelpers(node);\n    return getTypeOfSymbol(getSymbolOfDeclaration(node));\n  }\n  function checkClassExpressionDeferred(node) {\n    forEach(node.members, checkSourceElement);\n    registerForUnusedIdentifiersCheck(node);\n  }\n  function checkClassDeclaration(node) {\n    const firstDecorator = find(node.modifiers, isDecorator);\n    if (legacyDecorators && firstDecorator && some(node.members, (p) => hasStaticModifier(p) && isPrivateIdentifierClassElementDeclaration(p))) {\n      grammarErrorOnNode(firstDecorator, Diagnostics.Class_decorators_can_t_be_used_with_static_private_identifier_Consider_removing_the_experimental_decorator);\n    }\n    if (!node.name && !hasSyntacticModifier(node, 2048 /* Default */)) {\n      grammarErrorOnFirstToken(node, Diagnostics.A_class_declaration_without_the_default_modifier_must_have_a_name);\n    }\n    checkClassLikeDeclaration(node);\n    forEach(node.members, checkSourceElement);\n    registerForUnusedIdentifiersCheck(node);\n  }\n  function checkClassLikeDeclaration(node) {\n    checkGrammarClassLikeDeclaration(node);\n    checkDecorators(node);\n    checkCollisionsForDeclarationName(node, node.name);\n    checkTypeParameters(getEffectiveTypeParameterDeclarations(node));\n    checkExportsOnMergedDeclarations(node);\n    const symbol = getSymbolOfDeclaration(node);\n    const type = getDeclaredTypeOfSymbol(symbol);\n    const typeWithThis = getTypeWithThisArgument(type);\n    const staticType = getTypeOfSymbol(symbol);\n    checkTypeParameterListsIdentical(symbol);\n    checkFunctionOrConstructorSymbol(symbol);\n    checkClassForDuplicateDeclarations(node);\n    const nodeInAmbientContext = !!(node.flags & 33554432 /* Ambient */);\n    if (!nodeInAmbientContext) {\n      checkClassForStaticPropertyNameConflicts(node);\n    }\n    const baseTypeNode = getEffectiveBaseTypeNode(node);\n    if (baseTypeNode) {\n      forEach(baseTypeNode.typeArguments, checkSourceElement);\n      if (languageVersion < LanguageFeatureMinimumTarget.Classes) {\n        checkExternalEmitHelpers(baseTypeNode.parent, 1 /* Extends */);\n      }\n      const extendsNode = getClassExtendsHeritageElement(node);\n      if (extendsNode && extendsNode !== baseTypeNode) {\n        checkExpression(extendsNode.expression);\n      }\n      const baseTypes = getBaseTypes(type);\n      if (baseTypes.length) {\n        addLazyDiagnostic(() => {\n          const baseType = baseTypes[0];\n          const baseConstructorType = getBaseConstructorTypeOfClass(type);\n          const staticBaseType = getApparentType(baseConstructorType);\n          checkBaseTypeAccessibility(staticBaseType, baseTypeNode);\n          checkSourceElement(baseTypeNode.expression);\n          if (some(baseTypeNode.typeArguments)) {\n            forEach(baseTypeNode.typeArguments, checkSourceElement);\n            for (const constructor of getConstructorsForTypeArguments(staticBaseType, baseTypeNode.typeArguments, baseTypeNode)) {\n              if (!checkTypeArgumentConstraints(baseTypeNode, constructor.typeParameters)) {\n                break;\n              }\n            }\n          }\n          const baseWithThis = getTypeWithThisArgument(baseType, type.thisType);\n          if (!checkTypeAssignableTo(\n            typeWithThis,\n            baseWithThis,\n            /*errorNode*/\n            void 0\n          )) {\n            issueMemberSpecificError(node, typeWithThis, baseWithThis, Diagnostics.Class_0_incorrectly_extends_base_class_1);\n          } else {\n            checkTypeAssignableTo(staticType, getTypeWithoutSignatures(staticBaseType), node.name || node, Diagnostics.Class_static_side_0_incorrectly_extends_base_class_static_side_1);\n          }\n          if (baseConstructorType.flags & 8650752 /* TypeVariable */) {\n            if (!isMixinConstructorType(staticType)) {\n              error2(node.name || node, Diagnostics.A_mixin_class_must_have_a_constructor_with_a_single_rest_parameter_of_type_any);\n            } else {\n              const constructSignatures = getSignaturesOfType(baseConstructorType, 1 /* Construct */);\n              if (constructSignatures.some((signature) => signature.flags & 4 /* Abstract */) && !hasSyntacticModifier(node, 64 /* Abstract */)) {\n                error2(node.name || node, Diagnostics.A_mixin_class_that_extends_from_a_type_variable_containing_an_abstract_construct_signature_must_also_be_declared_abstract);\n              }\n            }\n          }\n          if (!(staticBaseType.symbol && staticBaseType.symbol.flags & 32 /* Class */) && !(baseConstructorType.flags & 8650752 /* TypeVariable */)) {\n            const constructors = getInstantiatedConstructorsForTypeArguments(staticBaseType, baseTypeNode.typeArguments, baseTypeNode);\n            if (forEach(constructors, (sig) => !isJSConstructor(sig.declaration) && !isTypeIdenticalTo(getReturnTypeOfSignature(sig), baseType))) {\n              error2(baseTypeNode.expression, Diagnostics.Base_constructors_must_all_have_the_same_return_type);\n            }\n          }\n          checkKindsOfPropertyMemberOverrides(type, baseType);\n        });\n      }\n    }\n    checkMembersForOverrideModifier(node, type, typeWithThis, staticType);\n    const implementedTypeNodes = getEffectiveImplementsTypeNodes(node);\n    if (implementedTypeNodes) {\n      for (const typeRefNode of implementedTypeNodes) {\n        if (!isEntityNameExpression(typeRefNode.expression) || isOptionalChain(typeRefNode.expression)) {\n          error2(typeRefNode.expression, Diagnostics.A_class_can_only_implement_an_identifier_Slashqualified_name_with_optional_type_arguments);\n        }\n        checkTypeReferenceNode(typeRefNode);\n        addLazyDiagnostic(createImplementsDiagnostics(typeRefNode));\n      }\n    }\n    addLazyDiagnostic(() => {\n      checkIndexConstraints(type, symbol);\n      checkIndexConstraints(\n        staticType,\n        symbol,\n        /*isStaticIndex*/\n        true\n      );\n      checkTypeForDuplicateIndexSignatures(node);\n      checkPropertyInitialization(node);\n    });\n    function createImplementsDiagnostics(typeRefNode) {\n      return () => {\n        const t = getReducedType(getTypeFromTypeNode(typeRefNode));\n        if (!isErrorType(t)) {\n          if (isValidBaseType(t)) {\n            const genericDiag = t.symbol && t.symbol.flags & 32 /* Class */ ? Diagnostics.Class_0_incorrectly_implements_class_1_Did_you_mean_to_extend_1_and_inherit_its_members_as_a_subclass : Diagnostics.Class_0_incorrectly_implements_interface_1;\n            const baseWithThis = getTypeWithThisArgument(t, type.thisType);\n            if (!checkTypeAssignableTo(\n              typeWithThis,\n              baseWithThis,\n              /*errorNode*/\n              void 0\n            )) {\n              issueMemberSpecificError(node, typeWithThis, baseWithThis, genericDiag);\n            }\n          } else {\n            error2(typeRefNode, Diagnostics.A_class_can_only_implement_an_object_type_or_intersection_of_object_types_with_statically_known_members);\n          }\n        }\n      };\n    }\n  }\n  function checkMembersForOverrideModifier(node, type, typeWithThis, staticType) {\n    const baseTypeNode = getEffectiveBaseTypeNode(node);\n    const baseTypes = baseTypeNode && getBaseTypes(type);\n    const baseWithThis = (baseTypes == null ? void 0 : baseTypes.length) ? getTypeWithThisArgument(first(baseTypes), type.thisType) : void 0;\n    const baseStaticType = getBaseConstructorTypeOfClass(type);\n    for (const member of node.members) {\n      if (hasAmbientModifier(member)) {\n        continue;\n      }\n      if (isConstructorDeclaration(member)) {\n        forEach(member.parameters, (param) => {\n          if (isParameterPropertyDeclaration(param, member)) {\n            checkExistingMemberForOverrideModifier(\n              node,\n              staticType,\n              baseStaticType,\n              baseWithThis,\n              type,\n              typeWithThis,\n              param,\n              /*memberIsParameterProperty*/\n              true\n            );\n          }\n        });\n      }\n      checkExistingMemberForOverrideModifier(\n        node,\n        staticType,\n        baseStaticType,\n        baseWithThis,\n        type,\n        typeWithThis,\n        member,\n        /*memberIsParameterProperty*/\n        false\n      );\n    }\n  }\n  function checkExistingMemberForOverrideModifier(node, staticType, baseStaticType, baseWithThis, type, typeWithThis, member, memberIsParameterProperty, reportErrors2 = true) {\n    const declaredProp = member.name && getSymbolAtLocation(member.name) || getSymbolAtLocation(member);\n    if (!declaredProp) {\n      return 0 /* Ok */;\n    }\n    return checkMemberForOverrideModifier(\n      node,\n      staticType,\n      baseStaticType,\n      baseWithThis,\n      type,\n      typeWithThis,\n      hasOverrideModifier(member),\n      hasAbstractModifier(member),\n      isStatic(member),\n      memberIsParameterProperty,\n      declaredProp,\n      reportErrors2 ? member : void 0\n    );\n  }\n  function checkMemberForOverrideModifier(node, staticType, baseStaticType, baseWithThis, type, typeWithThis, memberHasOverrideModifier, memberHasAbstractModifier, memberIsStatic, memberIsParameterProperty, member, errorNode) {\n    const isJs = isInJSFile(node);\n    const nodeInAmbientContext = !!(node.flags & 33554432 /* Ambient */);\n    if (memberHasOverrideModifier && (member == null ? void 0 : member.valueDeclaration) && isClassElement(member.valueDeclaration) && member.valueDeclaration.name && isNonBindableDynamicName(member.valueDeclaration.name)) {\n      error2(\n        errorNode,\n        isJs ? Diagnostics.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_name_is_dynamic : Diagnostics.This_member_cannot_have_an_override_modifier_because_its_name_is_dynamic\n      );\n      return 2 /* HasInvalidOverride */;\n    }\n    if (baseWithThis && (memberHasOverrideModifier || compilerOptions.noImplicitOverride)) {\n      const thisType = memberIsStatic ? staticType : typeWithThis;\n      const baseType = memberIsStatic ? baseStaticType : baseWithThis;\n      const prop = getPropertyOfType(thisType, member.escapedName);\n      const baseProp = getPropertyOfType(baseType, member.escapedName);\n      const baseClassName = typeToString(baseWithThis);\n      if (prop && !baseProp && memberHasOverrideModifier) {\n        if (errorNode) {\n          const suggestion = getSuggestedSymbolForNonexistentClassMember(symbolName(member), baseType);\n          suggestion ? error2(\n            errorNode,\n            isJs ? Diagnostics.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1 : Diagnostics.This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1,\n            baseClassName,\n            symbolToString(suggestion)\n          ) : error2(\n            errorNode,\n            isJs ? Diagnostics.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0 : Diagnostics.This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0,\n            baseClassName\n          );\n        }\n        return 2 /* HasInvalidOverride */;\n      } else if (prop && (baseProp == null ? void 0 : baseProp.declarations) && compilerOptions.noImplicitOverride && !nodeInAmbientContext) {\n        const baseHasAbstract = some(baseProp.declarations, hasAbstractModifier);\n        if (memberHasOverrideModifier) {\n          return 0 /* Ok */;\n        }\n        if (!baseHasAbstract) {\n          if (errorNode) {\n            const diag2 = memberIsParameterProperty ? isJs ? Diagnostics.This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0 : Diagnostics.This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0 : isJs ? Diagnostics.This_member_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0 : Diagnostics.This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0;\n            error2(errorNode, diag2, baseClassName);\n          }\n          return 1 /* NeedsOverride */;\n        } else if (memberHasAbstractModifier && baseHasAbstract) {\n          if (errorNode) {\n            error2(errorNode, Diagnostics.This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared_in_the_base_class_0, baseClassName);\n          }\n          return 1 /* NeedsOverride */;\n        }\n      }\n    } else if (memberHasOverrideModifier) {\n      if (errorNode) {\n        const className = typeToString(type);\n        error2(\n          errorNode,\n          isJs ? Diagnostics.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_extend_another_class : Diagnostics.This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another_class,\n          className\n        );\n      }\n      return 2 /* HasInvalidOverride */;\n    }\n    return 0 /* Ok */;\n  }\n  function issueMemberSpecificError(node, typeWithThis, baseWithThis, broadDiag) {\n    let issuedMemberError = false;\n    for (const member of node.members) {\n      if (isStatic(member)) {\n        continue;\n      }\n      const declaredProp = member.name && getSymbolAtLocation(member.name) || getSymbolAtLocation(member);\n      if (declaredProp) {\n        const prop = getPropertyOfType(typeWithThis, declaredProp.escapedName);\n        const baseProp = getPropertyOfType(baseWithThis, declaredProp.escapedName);\n        if (prop && baseProp) {\n          const rootChain = () => chainDiagnosticMessages(\n            /*details*/\n            void 0,\n            Diagnostics.Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2,\n            symbolToString(declaredProp),\n            typeToString(typeWithThis),\n            typeToString(baseWithThis)\n          );\n          if (!checkTypeAssignableTo(\n            getTypeOfSymbol(prop),\n            getTypeOfSymbol(baseProp),\n            member.name || member,\n            /*headMessage*/\n            void 0,\n            rootChain\n          )) {\n            issuedMemberError = true;\n          }\n        }\n      }\n    }\n    if (!issuedMemberError) {\n      checkTypeAssignableTo(typeWithThis, baseWithThis, node.name || node, broadDiag);\n    }\n  }\n  function checkBaseTypeAccessibility(type, node) {\n    const signatures = getSignaturesOfType(type, 1 /* Construct */);\n    if (signatures.length) {\n      const declaration = signatures[0].declaration;\n      if (declaration && hasEffectiveModifier(declaration, 2 /* Private */)) {\n        const typeClassDeclaration = getClassLikeDeclarationOfSymbol(type.symbol);\n        if (!isNodeWithinClass(node, typeClassDeclaration)) {\n          error2(node, Diagnostics.Cannot_extend_a_class_0_Class_constructor_is_marked_as_private, getFullyQualifiedName(type.symbol));\n        }\n      }\n    }\n  }\n  function getMemberOverrideModifierStatus(node, member, memberSymbol) {\n    if (!member.name) {\n      return 0 /* Ok */;\n    }\n    const classSymbol = getSymbolOfDeclaration(node);\n    const type = getDeclaredTypeOfSymbol(classSymbol);\n    const typeWithThis = getTypeWithThisArgument(type);\n    const staticType = getTypeOfSymbol(classSymbol);\n    const baseTypeNode = getEffectiveBaseTypeNode(node);\n    const baseTypes = baseTypeNode && getBaseTypes(type);\n    const baseWithThis = (baseTypes == null ? void 0 : baseTypes.length) ? getTypeWithThisArgument(first(baseTypes), type.thisType) : void 0;\n    const baseStaticType = getBaseConstructorTypeOfClass(type);\n    const memberHasOverrideModifier = member.parent ? hasOverrideModifier(member) : hasSyntacticModifier(member, 16 /* Override */);\n    return checkMemberForOverrideModifier(\n      node,\n      staticType,\n      baseStaticType,\n      baseWithThis,\n      type,\n      typeWithThis,\n      memberHasOverrideModifier,\n      hasAbstractModifier(member),\n      isStatic(member),\n      /*memberIsParameterProperty*/\n      false,\n      memberSymbol\n    );\n  }\n  function getTargetSymbol(s) {\n    return getCheckFlags(s) & 1 /* Instantiated */ ? s.links.target : s;\n  }\n  function getClassOrInterfaceDeclarationsOfSymbol(symbol) {\n    return filter(symbol.declarations, (d) => d.kind === 264 /* ClassDeclaration */ || d.kind === 265 /* InterfaceDeclaration */);\n  }\n  function checkKindsOfPropertyMemberOverrides(type, baseType) {\n    var _a, _b, _c, _d, _e;\n    const baseProperties = getPropertiesOfType(baseType);\n    const notImplementedInfo = /* @__PURE__ */ new Map();\n    basePropertyCheck: for (const baseProperty of baseProperties) {\n      const base = getTargetSymbol(baseProperty);\n      if (base.flags & 4194304 /* Prototype */) {\n        continue;\n      }\n      const baseSymbol = getPropertyOfObjectType(type, base.escapedName);\n      if (!baseSymbol) {\n        continue;\n      }\n      const derived = getTargetSymbol(baseSymbol);\n      const baseDeclarationFlags = getDeclarationModifierFlagsFromSymbol(base);\n      Debug.assert(!!derived, \"derived should point to something, even if it is the base class' declaration.\");\n      if (derived === base) {\n        const derivedClassDecl = getClassLikeDeclarationOfSymbol(type.symbol);\n        if (baseDeclarationFlags & 64 /* Abstract */ && (!derivedClassDecl || !hasSyntacticModifier(derivedClassDecl, 64 /* Abstract */))) {\n          for (const otherBaseType of getBaseTypes(type)) {\n            if (otherBaseType === baseType) continue;\n            const baseSymbol2 = getPropertyOfObjectType(otherBaseType, base.escapedName);\n            const derivedElsewhere = baseSymbol2 && getTargetSymbol(baseSymbol2);\n            if (derivedElsewhere && derivedElsewhere !== base) {\n              continue basePropertyCheck;\n            }\n          }\n          const baseTypeName = typeToString(baseType);\n          const typeName = typeToString(type);\n          const basePropertyName = symbolToString(baseProperty);\n          const missedProperties = append((_a = notImplementedInfo.get(derivedClassDecl)) == null ? void 0 : _a.missedProperties, basePropertyName);\n          notImplementedInfo.set(derivedClassDecl, { baseTypeName, typeName, missedProperties });\n        }\n      } else {\n        const derivedDeclarationFlags = getDeclarationModifierFlagsFromSymbol(derived);\n        if (baseDeclarationFlags & 2 /* Private */ || derivedDeclarationFlags & 2 /* Private */) {\n          continue;\n        }\n        let errorMessage;\n        const basePropertyFlags = base.flags & 98308 /* PropertyOrAccessor */;\n        const derivedPropertyFlags = derived.flags & 98308 /* PropertyOrAccessor */;\n        if (basePropertyFlags && derivedPropertyFlags) {\n          if ((getCheckFlags(base) & 6 /* Synthetic */ ? (_b = base.declarations) == null ? void 0 : _b.some((d) => isPropertyAbstractOrInterface(d, baseDeclarationFlags)) : (_c = base.declarations) == null ? void 0 : _c.every((d) => isPropertyAbstractOrInterface(d, baseDeclarationFlags))) || getCheckFlags(base) & 262144 /* Mapped */ || derived.valueDeclaration && isBinaryExpression(derived.valueDeclaration)) {\n            continue;\n          }\n          const overriddenInstanceProperty = basePropertyFlags !== 4 /* Property */ && derivedPropertyFlags === 4 /* Property */;\n          const overriddenInstanceAccessor = basePropertyFlags === 4 /* Property */ && derivedPropertyFlags !== 4 /* Property */;\n          if (overriddenInstanceProperty || overriddenInstanceAccessor) {\n            const errorMessage2 = overriddenInstanceProperty ? Diagnostics._0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property : Diagnostics._0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor;\n            error2(getNameOfDeclaration(derived.valueDeclaration) || derived.valueDeclaration, errorMessage2, symbolToString(base), typeToString(baseType), typeToString(type));\n          } else if (useDefineForClassFields) {\n            const uninitialized = (_d = derived.declarations) == null ? void 0 : _d.find((d) => d.kind === 173 /* PropertyDeclaration */ && !d.initializer);\n            if (uninitialized && !(derived.flags & 33554432 /* Transient */) && !(baseDeclarationFlags & 64 /* Abstract */) && !(derivedDeclarationFlags & 64 /* Abstract */) && !((_e = derived.declarations) == null ? void 0 : _e.some((d) => !!(d.flags & 33554432 /* Ambient */)))) {\n              const constructor = findConstructorDeclaration(getClassLikeDeclarationOfSymbol(type.symbol));\n              const propName = uninitialized.name;\n              if (uninitialized.exclamationToken || !constructor || !isIdentifier(propName) || !strictNullChecks || !isPropertyInitializedInConstructor(propName, type, constructor)) {\n                const errorMessage2 = Diagnostics.Property_0_will_overwrite_the_base_property_in_1_If_this_is_intentional_add_an_initializer_Otherwise_add_a_declare_modifier_or_remove_the_redundant_declaration;\n                error2(getNameOfDeclaration(derived.valueDeclaration) || derived.valueDeclaration, errorMessage2, symbolToString(base), typeToString(baseType));\n              }\n            }\n          }\n          continue;\n        } else if (isPrototypeProperty(base)) {\n          if (isPrototypeProperty(derived) || derived.flags & 4 /* Property */) {\n            continue;\n          } else {\n            Debug.assert(!!(derived.flags & 98304 /* Accessor */));\n            errorMessage = Diagnostics.Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_accessor;\n          }\n        } else if (base.flags & 98304 /* Accessor */) {\n          errorMessage = Diagnostics.Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_function;\n        } else {\n          errorMessage = Diagnostics.Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_function;\n        }\n        error2(getNameOfDeclaration(derived.valueDeclaration) || derived.valueDeclaration, errorMessage, typeToString(baseType), symbolToString(base), typeToString(type));\n      }\n    }\n    for (const [errorNode, memberInfo] of notImplementedInfo) {\n      if (length(memberInfo.missedProperties) === 1) {\n        if (isClassExpression(errorNode)) {\n          error2(errorNode, Diagnostics.Non_abstract_class_expression_does_not_implement_inherited_abstract_member_0_from_class_1, first(memberInfo.missedProperties), memberInfo.baseTypeName);\n        } else {\n          error2(errorNode, Diagnostics.Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_class_2, memberInfo.typeName, first(memberInfo.missedProperties), memberInfo.baseTypeName);\n        }\n      } else if (length(memberInfo.missedProperties) > 5) {\n        const missedProperties = map(memberInfo.missedProperties.slice(0, 4), (prop) => `'${prop}'`).join(\", \");\n        const remainingMissedProperties = length(memberInfo.missedProperties) - 4;\n        if (isClassExpression(errorNode)) {\n          error2(errorNode, Diagnostics.Non_abstract_class_expression_is_missing_implementations_for_the_following_members_of_0_Colon_1_and_2_more, memberInfo.baseTypeName, missedProperties, remainingMissedProperties);\n        } else {\n          error2(errorNode, Diagnostics.Non_abstract_class_0_is_missing_implementations_for_the_following_members_of_1_Colon_2_and_3_more, memberInfo.typeName, memberInfo.baseTypeName, missedProperties, remainingMissedProperties);\n        }\n      } else {\n        const missedProperties = map(memberInfo.missedProperties, (prop) => `'${prop}'`).join(\", \");\n        if (isClassExpression(errorNode)) {\n          error2(errorNode, Diagnostics.Non_abstract_class_expression_is_missing_implementations_for_the_following_members_of_0_Colon_1, memberInfo.baseTypeName, missedProperties);\n        } else {\n          error2(errorNode, Diagnostics.Non_abstract_class_0_is_missing_implementations_for_the_following_members_of_1_Colon_2, memberInfo.typeName, memberInfo.baseTypeName, missedProperties);\n        }\n      }\n    }\n  }\n  function isPropertyAbstractOrInterface(declaration, baseDeclarationFlags) {\n    return baseDeclarationFlags & 64 /* Abstract */ && (!isPropertyDeclaration(declaration) || !declaration.initializer) || isInterfaceDeclaration(declaration.parent);\n  }\n  function getNonInheritedProperties(type, baseTypes, properties) {\n    if (!length(baseTypes)) {\n      return properties;\n    }\n    const seen = /* @__PURE__ */ new Map();\n    forEach(properties, (p) => {\n      seen.set(p.escapedName, p);\n    });\n    for (const base of baseTypes) {\n      const properties2 = getPropertiesOfType(getTypeWithThisArgument(base, type.thisType));\n      for (const prop of properties2) {\n        const existing = seen.get(prop.escapedName);\n        if (existing && prop.parent === existing.parent) {\n          seen.delete(prop.escapedName);\n        }\n      }\n    }\n    return arrayFrom(seen.values());\n  }\n  function checkInheritedPropertiesAreIdentical(type, typeNode) {\n    const baseTypes = getBaseTypes(type);\n    if (baseTypes.length < 2) {\n      return true;\n    }\n    const seen = /* @__PURE__ */ new Map();\n    forEach(resolveDeclaredMembers(type).declaredProperties, (p) => {\n      seen.set(p.escapedName, { prop: p, containingType: type });\n    });\n    let ok = true;\n    for (const base of baseTypes) {\n      const properties = getPropertiesOfType(getTypeWithThisArgument(base, type.thisType));\n      for (const prop of properties) {\n        const existing = seen.get(prop.escapedName);\n        if (!existing) {\n          seen.set(prop.escapedName, { prop, containingType: base });\n        } else {\n          const isInheritedProperty = existing.containingType !== type;\n          if (isInheritedProperty && !isPropertyIdenticalTo(existing.prop, prop)) {\n            ok = false;\n            const typeName1 = typeToString(existing.containingType);\n            const typeName2 = typeToString(base);\n            let errorInfo = chainDiagnosticMessages(\n              /*details*/\n              void 0,\n              Diagnostics.Named_property_0_of_types_1_and_2_are_not_identical,\n              symbolToString(prop),\n              typeName1,\n              typeName2\n            );\n            errorInfo = chainDiagnosticMessages(errorInfo, Diagnostics.Interface_0_cannot_simultaneously_extend_types_1_and_2, typeToString(type), typeName1, typeName2);\n            diagnostics.add(createDiagnosticForNodeFromMessageChain(getSourceFileOfNode(typeNode), typeNode, errorInfo));\n          }\n        }\n      }\n    }\n    return ok;\n  }\n  function checkPropertyInitialization(node) {\n    if (!strictNullChecks || !strictPropertyInitialization || node.flags & 33554432 /* Ambient */) {\n      return;\n    }\n    const constructor = findConstructorDeclaration(node);\n    for (const member of node.members) {\n      if (getEffectiveModifierFlags(member) & 128 /* Ambient */) {\n        continue;\n      }\n      if (!isStatic(member) && isPropertyWithoutInitializer(member)) {\n        const propName = member.name;\n        if (isIdentifier(propName) || isPrivateIdentifier(propName) || isComputedPropertyName(propName)) {\n          const type = getTypeOfSymbol(getSymbolOfDeclaration(member));\n          if (!(type.flags & 3 /* AnyOrUnknown */ || containsUndefinedType(type))) {\n            if (!constructor || !isPropertyInitializedInConstructor(propName, type, constructor)) {\n              error2(member.name, Diagnostics.Property_0_has_no_initializer_and_is_not_definitely_assigned_in_the_constructor, declarationNameToString(propName));\n            }\n          }\n        }\n      }\n    }\n  }\n  function isPropertyWithoutInitializer(node) {\n    return node.kind === 173 /* PropertyDeclaration */ && !hasAbstractModifier(node) && !node.exclamationToken && !node.initializer;\n  }\n  function isPropertyInitializedInStaticBlocks(propName, propType, staticBlocks, startPos, endPos) {\n    for (const staticBlock of staticBlocks) {\n      if (staticBlock.pos >= startPos && staticBlock.pos <= endPos) {\n        const reference = factory.createPropertyAccessExpression(factory.createThis(), propName);\n        setParent(reference.expression, reference);\n        setParent(reference, staticBlock);\n        reference.flowNode = staticBlock.returnFlowNode;\n        const flowType = getFlowTypeOfReference(reference, propType, getOptionalType(propType));\n        if (!containsUndefinedType(flowType)) {\n          return true;\n        }\n      }\n    }\n    return false;\n  }\n  function isPropertyInitializedInConstructor(propName, propType, constructor) {\n    const reference = isComputedPropertyName(propName) ? factory.createElementAccessExpression(factory.createThis(), propName.expression) : factory.createPropertyAccessExpression(factory.createThis(), propName);\n    setParent(reference.expression, reference);\n    setParent(reference, constructor);\n    reference.flowNode = constructor.returnFlowNode;\n    const flowType = getFlowTypeOfReference(reference, propType, getOptionalType(propType));\n    return !containsUndefinedType(flowType);\n  }\n  function checkInterfaceDeclaration(node) {\n    if (!checkGrammarModifiers(node)) checkGrammarInterfaceDeclaration(node);\n    if (!allowBlockDeclarations(node.parent)) {\n      grammarErrorOnNode(node, Diagnostics._0_declarations_can_only_be_declared_inside_a_block, \"interface\");\n    }\n    checkTypeParameters(node.typeParameters);\n    addLazyDiagnostic(() => {\n      checkTypeNameIsReserved(node.name, Diagnostics.Interface_name_cannot_be_0);\n      checkExportsOnMergedDeclarations(node);\n      const symbol = getSymbolOfDeclaration(node);\n      checkTypeParameterListsIdentical(symbol);\n      const firstInterfaceDecl = getDeclarationOfKind(symbol, 265 /* InterfaceDeclaration */);\n      if (node === firstInterfaceDecl) {\n        const type = getDeclaredTypeOfSymbol(symbol);\n        const typeWithThis = getTypeWithThisArgument(type);\n        if (checkInheritedPropertiesAreIdentical(type, node.name)) {\n          for (const baseType of getBaseTypes(type)) {\n            checkTypeAssignableTo(typeWithThis, getTypeWithThisArgument(baseType, type.thisType), node.name, Diagnostics.Interface_0_incorrectly_extends_interface_1);\n          }\n          checkIndexConstraints(type, symbol);\n        }\n      }\n      checkObjectTypeForDuplicateDeclarations(node);\n    });\n    forEach(getInterfaceBaseTypeNodes(node), (heritageElement) => {\n      if (!isEntityNameExpression(heritageElement.expression) || isOptionalChain(heritageElement.expression)) {\n        error2(heritageElement.expression, Diagnostics.An_interface_can_only_extend_an_identifier_Slashqualified_name_with_optional_type_arguments);\n      }\n      checkTypeReferenceNode(heritageElement);\n    });\n    forEach(node.members, checkSourceElement);\n    addLazyDiagnostic(() => {\n      checkTypeForDuplicateIndexSignatures(node);\n      registerForUnusedIdentifiersCheck(node);\n    });\n  }\n  function checkTypeAliasDeclaration(node) {\n    checkGrammarModifiers(node);\n    checkTypeNameIsReserved(node.name, Diagnostics.Type_alias_name_cannot_be_0);\n    if (!allowBlockDeclarations(node.parent)) {\n      grammarErrorOnNode(node, Diagnostics._0_declarations_can_only_be_declared_inside_a_block, \"type\");\n    }\n    checkExportsOnMergedDeclarations(node);\n    checkTypeParameters(node.typeParameters);\n    if (node.type.kind === 141 /* IntrinsicKeyword */) {\n      const typeParameterCount = length(node.typeParameters);\n      const valid = typeParameterCount === 0 ? node.name.escapedText === \"BuiltinIteratorReturn\" : typeParameterCount === 1 && intrinsicTypeKinds.has(node.name.escapedText);\n      if (!valid) {\n        error2(node.type, Diagnostics.The_intrinsic_keyword_can_only_be_used_to_declare_compiler_provided_intrinsic_types);\n      }\n    } else {\n      checkSourceElement(node.type);\n      registerForUnusedIdentifiersCheck(node);\n    }\n  }\n  function computeEnumMemberValues(node) {\n    const nodeLinks2 = getNodeLinks(node);\n    if (!(nodeLinks2.flags & 1024 /* EnumValuesComputed */)) {\n      nodeLinks2.flags |= 1024 /* EnumValuesComputed */;\n      let autoValue = 0;\n      let previous;\n      for (const member of node.members) {\n        const result = computeEnumMemberValue(member, autoValue, previous);\n        getNodeLinks(member).enumMemberValue = result;\n        autoValue = typeof result.value === \"number\" ? result.value + 1 : void 0;\n        previous = member;\n      }\n    }\n  }\n  function computeEnumMemberValue(member, autoValue, previous) {\n    if (isComputedNonLiteralName(member.name)) {\n      error2(member.name, Diagnostics.Computed_property_names_are_not_allowed_in_enums);\n    } else if (isBigIntLiteral(member.name)) {\n      error2(member.name, Diagnostics.An_enum_member_cannot_have_a_numeric_name);\n    } else {\n      const text = getTextOfPropertyName(member.name);\n      if (isNumericLiteralName(text) && !isInfinityOrNaNString(text)) {\n        error2(member.name, Diagnostics.An_enum_member_cannot_have_a_numeric_name);\n      }\n    }\n    if (member.initializer) {\n      return computeConstantEnumMemberValue(member);\n    }\n    if (member.parent.flags & 33554432 /* Ambient */ && !isEnumConst(member.parent)) {\n      return evaluatorResult(\n        /*value*/\n        void 0\n      );\n    }\n    if (autoValue === void 0) {\n      error2(member.name, Diagnostics.Enum_member_must_have_initializer);\n      return evaluatorResult(\n        /*value*/\n        void 0\n      );\n    }\n    if (getIsolatedModules(compilerOptions) && (previous == null ? void 0 : previous.initializer)) {\n      const prevValue = getEnumMemberValue(previous);\n      if (!(typeof prevValue.value === \"number\" && !prevValue.resolvedOtherFiles)) {\n        error2(\n          member.name,\n          Diagnostics.Enum_member_following_a_non_literal_numeric_member_must_have_an_initializer_when_isolatedModules_is_enabled\n        );\n      }\n    }\n    return evaluatorResult(autoValue);\n  }\n  function computeConstantEnumMemberValue(member) {\n    const isConstEnum = isEnumConst(member.parent);\n    const initializer = member.initializer;\n    const result = evaluate(initializer, member);\n    if (result.value !== void 0) {\n      if (isConstEnum && typeof result.value === \"number\" && !isFinite(result.value)) {\n        error2(\n          initializer,\n          isNaN(result.value) ? Diagnostics.const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN : Diagnostics.const_enum_member_initializer_was_evaluated_to_a_non_finite_value\n        );\n      } else if (getIsolatedModules(compilerOptions) && typeof result.value === \"string\" && !result.isSyntacticallyString) {\n        error2(\n          initializer,\n          Diagnostics._0_has_a_string_type_but_must_have_syntactically_recognizable_string_syntax_when_isolatedModules_is_enabled,\n          `${idText(member.parent.name)}.${getTextOfPropertyName(member.name)}`\n        );\n      }\n    } else if (isConstEnum) {\n      error2(initializer, Diagnostics.const_enum_member_initializers_must_be_constant_expressions);\n    } else if (member.parent.flags & 33554432 /* Ambient */) {\n      error2(initializer, Diagnostics.In_ambient_enum_declarations_member_initializer_must_be_constant_expression);\n    } else {\n      checkTypeAssignableTo(checkExpression(initializer), numberType, initializer, Diagnostics.Type_0_is_not_assignable_to_type_1_as_required_for_computed_enum_member_values);\n    }\n    return result;\n  }\n  function evaluateEntityNameExpression(expr, location) {\n    const symbol = resolveEntityName(\n      expr,\n      111551 /* Value */,\n      /*ignoreErrors*/\n      true\n    );\n    if (!symbol) return evaluatorResult(\n      /*value*/\n      void 0\n    );\n    if (expr.kind === 80 /* Identifier */) {\n      const identifier = expr;\n      if (isInfinityOrNaNString(identifier.escapedText) && symbol === getGlobalSymbol(\n        identifier.escapedText,\n        111551 /* Value */,\n        /*diagnostic*/\n        void 0\n      )) {\n        return evaluatorResult(\n          +identifier.escapedText,\n          /*isSyntacticallyString*/\n          false\n        );\n      }\n    }\n    if (symbol.flags & 8 /* EnumMember */) {\n      return location ? evaluateEnumMember(expr, symbol, location) : getEnumMemberValue(symbol.valueDeclaration);\n    }\n    if (isConstantVariable(symbol)) {\n      const declaration = symbol.valueDeclaration;\n      if (declaration && isVariableDeclaration(declaration) && !declaration.type && declaration.initializer && (!location || declaration !== location && isBlockScopedNameDeclaredBeforeUse(declaration, location))) {\n        const result = evaluate(declaration.initializer, declaration);\n        if (location && getSourceFileOfNode(location) !== getSourceFileOfNode(declaration)) {\n          return evaluatorResult(\n            result.value,\n            /*isSyntacticallyString*/\n            false,\n            /*resolvedOtherFiles*/\n            true,\n            /*hasExternalReferences*/\n            true\n          );\n        }\n        return evaluatorResult(\n          result.value,\n          result.isSyntacticallyString,\n          result.resolvedOtherFiles,\n          /*hasExternalReferences*/\n          true\n        );\n      }\n    }\n    return evaluatorResult(\n      /*value*/\n      void 0\n    );\n  }\n  function evaluateElementAccessExpression(expr, location) {\n    const root = expr.expression;\n    if (isEntityNameExpression(root) && isStringLiteralLike(expr.argumentExpression)) {\n      const rootSymbol = resolveEntityName(\n        root,\n        111551 /* Value */,\n        /*ignoreErrors*/\n        true\n      );\n      if (rootSymbol && rootSymbol.flags & 384 /* Enum */) {\n        const name = escapeLeadingUnderscores(expr.argumentExpression.text);\n        const member = rootSymbol.exports.get(name);\n        if (member) {\n          Debug.assert(getSourceFileOfNode(member.valueDeclaration) === getSourceFileOfNode(rootSymbol.valueDeclaration));\n          return location ? evaluateEnumMember(expr, member, location) : getEnumMemberValue(member.valueDeclaration);\n        }\n      }\n    }\n    return evaluatorResult(\n      /*value*/\n      void 0\n    );\n  }\n  function evaluateEnumMember(expr, symbol, location) {\n    const declaration = symbol.valueDeclaration;\n    if (!declaration || declaration === location) {\n      error2(expr, Diagnostics.Property_0_is_used_before_being_assigned, symbolToString(symbol));\n      return evaluatorResult(\n        /*value*/\n        void 0\n      );\n    }\n    if (!isBlockScopedNameDeclaredBeforeUse(declaration, location)) {\n      error2(expr, Diagnostics.A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_members_defined_in_other_enums);\n      return evaluatorResult(\n        /*value*/\n        0\n      );\n    }\n    const value = getEnumMemberValue(declaration);\n    if (location.parent !== declaration.parent) {\n      return evaluatorResult(\n        value.value,\n        value.isSyntacticallyString,\n        value.resolvedOtherFiles,\n        /*hasExternalReferences*/\n        true\n      );\n    }\n    return value;\n  }\n  function checkEnumDeclaration(node) {\n    addLazyDiagnostic(() => checkEnumDeclarationWorker(node));\n  }\n  function checkEnumDeclarationWorker(node) {\n    checkGrammarModifiers(node);\n    checkCollisionsForDeclarationName(node, node.name);\n    checkExportsOnMergedDeclarations(node);\n    node.members.forEach(checkSourceElement);\n    if (compilerOptions.erasableSyntaxOnly && !(node.flags & 33554432 /* Ambient */)) {\n      error2(node, Diagnostics.This_syntax_is_not_allowed_when_erasableSyntaxOnly_is_enabled);\n    }\n    computeEnumMemberValues(node);\n    const enumSymbol = getSymbolOfDeclaration(node);\n    const firstDeclaration = getDeclarationOfKind(enumSymbol, node.kind);\n    if (node === firstDeclaration) {\n      if (enumSymbol.declarations && enumSymbol.declarations.length > 1) {\n        const enumIsConst = isEnumConst(node);\n        forEach(enumSymbol.declarations, (decl) => {\n          if (isEnumDeclaration(decl) && isEnumConst(decl) !== enumIsConst) {\n            error2(getNameOfDeclaration(decl), Diagnostics.Enum_declarations_must_all_be_const_or_non_const);\n          }\n        });\n      }\n      let seenEnumMissingInitialInitializer = false;\n      forEach(enumSymbol.declarations, (declaration) => {\n        if (declaration.kind !== 267 /* EnumDeclaration */) {\n          return false;\n        }\n        const enumDeclaration = declaration;\n        if (!enumDeclaration.members.length) {\n          return false;\n        }\n        const firstEnumMember = enumDeclaration.members[0];\n        if (!firstEnumMember.initializer) {\n          if (seenEnumMissingInitialInitializer) {\n            error2(firstEnumMember.name, Diagnostics.In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enum_element);\n          } else {\n            seenEnumMissingInitialInitializer = true;\n          }\n        }\n      });\n    }\n  }\n  function checkEnumMember(node) {\n    if (isPrivateIdentifier(node.name)) {\n      error2(node, Diagnostics.An_enum_member_cannot_be_named_with_a_private_identifier);\n    }\n    if (node.initializer) {\n      checkExpression(node.initializer);\n    }\n  }\n  function getFirstNonAmbientClassOrFunctionDeclaration(symbol) {\n    const declarations = symbol.declarations;\n    if (declarations) {\n      for (const declaration of declarations) {\n        if ((declaration.kind === 264 /* ClassDeclaration */ || declaration.kind === 263 /* FunctionDeclaration */ && nodeIsPresent(declaration.body)) && !(declaration.flags & 33554432 /* Ambient */)) {\n          return declaration;\n        }\n      }\n    }\n    return void 0;\n  }\n  function inSameLexicalScope(node1, node2) {\n    const container1 = getEnclosingBlockScopeContainer(node1);\n    const container2 = getEnclosingBlockScopeContainer(node2);\n    if (isGlobalSourceFile(container1)) {\n      return isGlobalSourceFile(container2);\n    } else if (isGlobalSourceFile(container2)) {\n      return false;\n    } else {\n      return container1 === container2;\n    }\n  }\n  function checkModuleDeclaration(node) {\n    if (node.body) {\n      checkSourceElement(node.body);\n      if (!isGlobalScopeAugmentation(node)) {\n        registerForUnusedIdentifiersCheck(node);\n      }\n    }\n    addLazyDiagnostic(checkModuleDeclarationDiagnostics);\n    function checkModuleDeclarationDiagnostics() {\n      var _a, _b;\n      const isGlobalAugmentation = isGlobalScopeAugmentation(node);\n      const inAmbientContext = node.flags & 33554432 /* Ambient */;\n      if (isGlobalAugmentation && !inAmbientContext) {\n        error2(node.name, Diagnostics.Augmentations_for_the_global_scope_should_have_declare_modifier_unless_they_appear_in_already_ambient_context);\n      }\n      const isAmbientExternalModule = isAmbientModule(node);\n      const contextErrorMessage = isAmbientExternalModule ? Diagnostics.An_ambient_module_declaration_is_only_allowed_at_the_top_level_in_a_file : Diagnostics.A_namespace_declaration_is_only_allowed_at_the_top_level_of_a_namespace_or_module;\n      if (checkGrammarModuleElementContext(node, contextErrorMessage)) {\n        return;\n      }\n      if (!checkGrammarModifiers(node)) {\n        if (!inAmbientContext && node.name.kind === 11 /* StringLiteral */) {\n          grammarErrorOnNode(node.name, Diagnostics.Only_ambient_modules_can_use_quoted_names);\n        }\n      }\n      if (isIdentifier(node.name)) {\n        checkCollisionsForDeclarationName(node, node.name);\n        if (!(node.flags & (32 /* Namespace */ | 2048 /* GlobalAugmentation */))) {\n          const sourceFile = getSourceFileOfNode(node);\n          const pos = getNonModifierTokenPosOfNode(node);\n          const span = getSpanOfTokenAtPosition(sourceFile, pos);\n          suggestionDiagnostics.add(\n            createFileDiagnostic(sourceFile, span.start, span.length, Diagnostics.A_namespace_declaration_should_not_be_declared_using_the_module_keyword_Please_use_the_namespace_keyword_instead)\n          );\n        }\n      }\n      checkExportsOnMergedDeclarations(node);\n      const symbol = getSymbolOfDeclaration(node);\n      if (symbol.flags & 512 /* ValueModule */ && !inAmbientContext && isInstantiatedModule(node, shouldPreserveConstEnums(compilerOptions))) {\n        if (compilerOptions.erasableSyntaxOnly) {\n          error2(node.name, Diagnostics.This_syntax_is_not_allowed_when_erasableSyntaxOnly_is_enabled);\n        }\n        if (getIsolatedModules(compilerOptions) && !getSourceFileOfNode(node).externalModuleIndicator) {\n          error2(node.name, Diagnostics.Namespaces_are_not_allowed_in_global_script_files_when_0_is_enabled_If_this_file_is_not_intended_to_be_a_global_script_set_moduleDetection_to_force_or_add_an_empty_export_statement, isolatedModulesLikeFlagName);\n        }\n        if (((_a = symbol.declarations) == null ? void 0 : _a.length) > 1) {\n          const firstNonAmbientClassOrFunc = getFirstNonAmbientClassOrFunctionDeclaration(symbol);\n          if (firstNonAmbientClassOrFunc) {\n            if (getSourceFileOfNode(node) !== getSourceFileOfNode(firstNonAmbientClassOrFunc)) {\n              error2(node.name, Diagnostics.A_namespace_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merged);\n            } else if (node.pos < firstNonAmbientClassOrFunc.pos) {\n              error2(node.name, Diagnostics.A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged);\n            }\n          }\n          const mergedClass = getDeclarationOfKind(symbol, 264 /* ClassDeclaration */);\n          if (mergedClass && inSameLexicalScope(node, mergedClass)) {\n            getNodeLinks(node).flags |= 2048 /* LexicalModuleMergesWithClass */;\n          }\n        }\n        if (compilerOptions.verbatimModuleSyntax && node.parent.kind === 308 /* SourceFile */ && host.getEmitModuleFormatOfFile(node.parent) === 1 /* CommonJS */) {\n          const exportModifier = (_b = node.modifiers) == null ? void 0 : _b.find((m) => m.kind === 95 /* ExportKeyword */);\n          if (exportModifier) {\n            error2(exportModifier, Diagnostics.A_top_level_export_modifier_cannot_be_used_on_value_declarations_in_a_CommonJS_module_when_verbatimModuleSyntax_is_enabled);\n          }\n        }\n      }\n      if (isAmbientExternalModule) {\n        if (isExternalModuleAugmentation(node)) {\n          const checkBody = isGlobalAugmentation || getSymbolOfDeclaration(node).flags & 33554432 /* Transient */;\n          if (checkBody && node.body) {\n            for (const statement of node.body.statements) {\n              checkModuleAugmentationElement(statement, isGlobalAugmentation);\n            }\n          }\n        } else if (isGlobalSourceFile(node.parent)) {\n          if (isGlobalAugmentation) {\n            error2(node.name, Diagnostics.Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_declarations);\n          } else if (isExternalModuleNameRelative(getTextOfIdentifierOrLiteral(node.name))) {\n            error2(node.name, Diagnostics.Ambient_module_declaration_cannot_specify_relative_module_name);\n          }\n        } else {\n          if (isGlobalAugmentation) {\n            error2(node.name, Diagnostics.Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_declarations);\n          } else {\n            error2(node.name, Diagnostics.Ambient_modules_cannot_be_nested_in_other_modules_or_namespaces);\n          }\n        }\n      }\n    }\n  }\n  function checkModuleAugmentationElement(node, isGlobalAugmentation) {\n    switch (node.kind) {\n      case 244 /* VariableStatement */:\n        for (const decl of node.declarationList.declarations) {\n          checkModuleAugmentationElement(decl, isGlobalAugmentation);\n        }\n        break;\n      case 278 /* ExportAssignment */:\n      case 279 /* ExportDeclaration */:\n        grammarErrorOnFirstToken(node, Diagnostics.Exports_and_export_assignments_are_not_permitted_in_module_augmentations);\n        break;\n      case 272 /* ImportEqualsDeclaration */:\n        if (isInternalModuleImportEqualsDeclaration(node)) break;\n      // falls through\n      case 273 /* ImportDeclaration */:\n        grammarErrorOnFirstToken(node, Diagnostics.Imports_are_not_permitted_in_module_augmentations_Consider_moving_them_to_the_enclosing_external_module);\n        break;\n      case 209 /* BindingElement */:\n      case 261 /* VariableDeclaration */:\n        const name = node.name;\n        if (isBindingPattern(name)) {\n          for (const el of name.elements) {\n            checkModuleAugmentationElement(el, isGlobalAugmentation);\n          }\n          break;\n        }\n      // falls through\n      case 264 /* ClassDeclaration */:\n      case 267 /* EnumDeclaration */:\n      case 263 /* FunctionDeclaration */:\n      case 265 /* InterfaceDeclaration */:\n      case 268 /* ModuleDeclaration */:\n      case 266 /* TypeAliasDeclaration */:\n        if (isGlobalAugmentation) {\n          return;\n        }\n        break;\n    }\n  }\n  function getFirstNonModuleExportsIdentifier(node) {\n    switch (node.kind) {\n      case 80 /* Identifier */:\n        return node;\n      case 167 /* QualifiedName */:\n        do {\n          node = node.left;\n        } while (node.kind !== 80 /* Identifier */);\n        return node;\n      case 212 /* PropertyAccessExpression */:\n        do {\n          if (isModuleExportsAccessExpression(node.expression) && !isPrivateIdentifier(node.name)) {\n            return node.name;\n          }\n          node = node.expression;\n        } while (node.kind !== 80 /* Identifier */);\n        return node;\n    }\n  }\n  function checkExternalImportOrExportDeclaration(node) {\n    const moduleName = getExternalModuleName(node);\n    if (!moduleName || nodeIsMissing(moduleName)) {\n      return false;\n    }\n    if (!isStringLiteral(moduleName)) {\n      error2(moduleName, Diagnostics.String_literal_expected);\n      return false;\n    }\n    const inAmbientExternalModule = node.parent.kind === 269 /* ModuleBlock */ && isAmbientModule(node.parent.parent);\n    if (node.parent.kind !== 308 /* SourceFile */ && !inAmbientExternalModule) {\n      error2(\n        moduleName,\n        node.kind === 279 /* ExportDeclaration */ ? Diagnostics.Export_declarations_are_not_permitted_in_a_namespace : Diagnostics.Import_declarations_in_a_namespace_cannot_reference_a_module\n      );\n      return false;\n    }\n    if (inAmbientExternalModule && isExternalModuleNameRelative(moduleName.text)) {\n      if (!isTopLevelInExternalModuleAugmentation(node)) {\n        error2(node, Diagnostics.Import_or_export_declaration_in_an_ambient_module_declaration_cannot_reference_module_through_relative_module_name);\n        return false;\n      }\n    }\n    if (!isImportEqualsDeclaration(node) && node.attributes) {\n      const diagnostic = node.attributes.token === 118 /* WithKeyword */ ? Diagnostics.Import_attribute_values_must_be_string_literal_expressions : Diagnostics.Import_assertion_values_must_be_string_literal_expressions;\n      let hasError = false;\n      for (const attr of node.attributes.elements) {\n        if (!isStringLiteral(attr.value)) {\n          hasError = true;\n          error2(attr.value, diagnostic);\n        }\n      }\n      return !hasError;\n    }\n    return true;\n  }\n  function checkModuleExportName(name, allowStringLiteral = true) {\n    if (name === void 0 || name.kind !== 11 /* StringLiteral */) {\n      return;\n    }\n    if (!allowStringLiteral) {\n      grammarErrorOnNode(name, Diagnostics.Identifier_expected);\n    } else if (moduleKind === 5 /* ES2015 */ || moduleKind === 6 /* ES2020 */) {\n      grammarErrorOnNode(name, Diagnostics.String_literal_import_and_export_names_are_not_supported_when_the_module_flag_is_set_to_es2015_or_es2020);\n    }\n  }\n  function checkAliasSymbol(node) {\n    var _a, _b, _c, _d, _e;\n    let symbol = getSymbolOfDeclaration(node);\n    const target = resolveAlias(symbol);\n    if (target !== unknownSymbol) {\n      symbol = getMergedSymbol(symbol.exportSymbol || symbol);\n      if (isInJSFile(node) && !(target.flags & 111551 /* Value */) && !isTypeOnlyImportOrExportDeclaration(node)) {\n        const errorNode = isImportOrExportSpecifier(node) ? node.propertyName || node.name : isNamedDeclaration(node) ? node.name : node;\n        Debug.assert(node.kind !== 281 /* NamespaceExport */);\n        if (node.kind === 282 /* ExportSpecifier */) {\n          const diag2 = error2(errorNode, Diagnostics.Types_cannot_appear_in_export_declarations_in_JavaScript_files);\n          const alreadyExportedSymbol = (_b = (_a = getSourceFileOfNode(node).symbol) == null ? void 0 : _a.exports) == null ? void 0 : _b.get(moduleExportNameTextEscaped(node.propertyName || node.name));\n          if (alreadyExportedSymbol === target) {\n            const exportingDeclaration = (_c = alreadyExportedSymbol.declarations) == null ? void 0 : _c.find(isJSDocNode);\n            if (exportingDeclaration) {\n              addRelatedInfo(\n                diag2,\n                createDiagnosticForNode(\n                  exportingDeclaration,\n                  Diagnostics._0_is_automatically_exported_here,\n                  unescapeLeadingUnderscores(alreadyExportedSymbol.escapedName)\n                )\n              );\n            }\n          }\n        } else {\n          Debug.assert(node.kind !== 261 /* VariableDeclaration */);\n          const importDeclaration = findAncestor(node, or(isImportDeclaration, isImportEqualsDeclaration));\n          const moduleSpecifier = (importDeclaration && ((_d = tryGetModuleSpecifierFromDeclaration(importDeclaration)) == null ? void 0 : _d.text)) ?? \"...\";\n          const importedIdentifier = unescapeLeadingUnderscores(isIdentifier(errorNode) ? errorNode.escapedText : symbol.escapedName);\n          error2(\n            errorNode,\n            Diagnostics._0_is_a_type_and_cannot_be_imported_in_JavaScript_files_Use_1_in_a_JSDoc_type_annotation,\n            importedIdentifier,\n            `import(\"${moduleSpecifier}\").${importedIdentifier}`\n          );\n        }\n        return;\n      }\n      const targetFlags = getSymbolFlags(target);\n      const excludedMeanings = (symbol.flags & (111551 /* Value */ | 1048576 /* ExportValue */) ? 111551 /* Value */ : 0) | (symbol.flags & 788968 /* Type */ ? 788968 /* Type */ : 0) | (symbol.flags & 1920 /* Namespace */ ? 1920 /* Namespace */ : 0);\n      if (targetFlags & excludedMeanings) {\n        const message = node.kind === 282 /* ExportSpecifier */ ? Diagnostics.Export_declaration_conflicts_with_exported_declaration_of_0 : Diagnostics.Import_declaration_conflicts_with_local_declaration_of_0;\n        error2(node, message, symbolToString(symbol));\n      } else if (node.kind !== 282 /* ExportSpecifier */) {\n        const appearsValueyToTranspiler = compilerOptions.isolatedModules && !findAncestor(node, isTypeOnlyImportOrExportDeclaration);\n        if (appearsValueyToTranspiler && symbol.flags & (111551 /* Value */ | 1048576 /* ExportValue */)) {\n          error2(\n            node,\n            Diagnostics.Import_0_conflicts_with_local_value_so_must_be_declared_with_a_type_only_import_when_isolatedModules_is_enabled,\n            symbolToString(symbol),\n            isolatedModulesLikeFlagName\n          );\n        }\n      }\n      if (getIsolatedModules(compilerOptions) && !isTypeOnlyImportOrExportDeclaration(node) && !(node.flags & 33554432 /* Ambient */)) {\n        const typeOnlyAlias = getTypeOnlyAliasDeclaration(symbol);\n        const isType = !(targetFlags & 111551 /* Value */);\n        if (isType || typeOnlyAlias) {\n          switch (node.kind) {\n            case 274 /* ImportClause */:\n            case 277 /* ImportSpecifier */:\n            case 272 /* ImportEqualsDeclaration */: {\n              if (compilerOptions.verbatimModuleSyntax) {\n                Debug.assertIsDefined(node.name, \"An ImportClause with a symbol should have a name\");\n                const message = compilerOptions.verbatimModuleSyntax && isInternalModuleImportEqualsDeclaration(node) ? Diagnostics.An_import_alias_cannot_resolve_to_a_type_or_type_only_declaration_when_verbatimModuleSyntax_is_enabled : isType ? Diagnostics._0_is_a_type_and_must_be_imported_using_a_type_only_import_when_verbatimModuleSyntax_is_enabled : Diagnostics._0_resolves_to_a_type_only_declaration_and_must_be_imported_using_a_type_only_import_when_verbatimModuleSyntax_is_enabled;\n                const name = moduleExportNameTextUnescaped(node.kind === 277 /* ImportSpecifier */ ? node.propertyName || node.name : node.name);\n                addTypeOnlyDeclarationRelatedInfo(\n                  error2(node, message, name),\n                  isType ? void 0 : typeOnlyAlias,\n                  name\n                );\n              }\n              if (isType && node.kind === 272 /* ImportEqualsDeclaration */ && hasEffectiveModifier(node, 32 /* Export */)) {\n                error2(node, Diagnostics.Cannot_use_export_import_on_a_type_or_type_only_namespace_when_0_is_enabled, isolatedModulesLikeFlagName);\n              }\n              break;\n            }\n            case 282 /* ExportSpecifier */: {\n              if (compilerOptions.verbatimModuleSyntax || getSourceFileOfNode(typeOnlyAlias) !== getSourceFileOfNode(node)) {\n                const name = moduleExportNameTextUnescaped(node.propertyName || node.name);\n                const diagnostic = isType ? error2(node, Diagnostics.Re_exporting_a_type_when_0_is_enabled_requires_using_export_type, isolatedModulesLikeFlagName) : error2(node, Diagnostics._0_resolves_to_a_type_only_declaration_and_must_be_re_exported_using_a_type_only_re_export_when_1_is_enabled, name, isolatedModulesLikeFlagName);\n                addTypeOnlyDeclarationRelatedInfo(diagnostic, isType ? void 0 : typeOnlyAlias, name);\n                break;\n              }\n            }\n          }\n        }\n        if (compilerOptions.verbatimModuleSyntax && node.kind !== 272 /* ImportEqualsDeclaration */ && !isInJSFile(node) && host.getEmitModuleFormatOfFile(getSourceFileOfNode(node)) === 1 /* CommonJS */) {\n          error2(node, getVerbatimModuleSyntaxErrorMessage(node));\n        } else if (moduleKind === 200 /* Preserve */ && node.kind !== 272 /* ImportEqualsDeclaration */ && node.kind !== 261 /* VariableDeclaration */ && host.getEmitModuleFormatOfFile(getSourceFileOfNode(node)) === 1 /* CommonJS */) {\n          error2(node, Diagnostics.ECMAScript_module_syntax_is_not_allowed_in_a_CommonJS_module_when_module_is_set_to_preserve);\n        }\n        if (compilerOptions.verbatimModuleSyntax && !isTypeOnlyImportOrExportDeclaration(node) && !(node.flags & 33554432 /* Ambient */) && targetFlags & 128 /* ConstEnum */) {\n          const constEnumDeclaration = target.valueDeclaration;\n          const redirect = (_e = host.getRedirectFromOutput(getSourceFileOfNode(constEnumDeclaration).resolvedPath)) == null ? void 0 : _e.resolvedRef;\n          if (constEnumDeclaration.flags & 33554432 /* Ambient */ && (!redirect || !shouldPreserveConstEnums(redirect.commandLine.options))) {\n            error2(node, Diagnostics.Cannot_access_ambient_const_enums_when_0_is_enabled, isolatedModulesLikeFlagName);\n          }\n        }\n      }\n      if (isImportSpecifier(node)) {\n        const targetSymbol = resolveAliasWithDeprecationCheck(symbol, node);\n        if (isDeprecatedSymbol(targetSymbol) && targetSymbol.declarations) {\n          addDeprecatedSuggestion(node, targetSymbol.declarations, targetSymbol.escapedName);\n        }\n      }\n    }\n  }\n  function resolveAliasWithDeprecationCheck(symbol, location) {\n    if (!(symbol.flags & 2097152 /* Alias */) || isDeprecatedSymbol(symbol) || !getDeclarationOfAliasSymbol(symbol)) {\n      return symbol;\n    }\n    const targetSymbol = resolveAlias(symbol);\n    if (targetSymbol === unknownSymbol) return targetSymbol;\n    while (symbol.flags & 2097152 /* Alias */) {\n      const target = getImmediateAliasedSymbol(symbol);\n      if (target) {\n        if (target === targetSymbol) break;\n        if (target.declarations && length(target.declarations)) {\n          if (isDeprecatedSymbol(target)) {\n            addDeprecatedSuggestion(location, target.declarations, target.escapedName);\n            break;\n          } else {\n            if (symbol === targetSymbol) break;\n            symbol = target;\n          }\n        }\n      } else {\n        break;\n      }\n    }\n    return targetSymbol;\n  }\n  function checkImportBinding(node) {\n    checkCollisionsForDeclarationName(node, node.name);\n    checkAliasSymbol(node);\n    if (node.kind === 277 /* ImportSpecifier */) {\n      checkModuleExportName(node.propertyName);\n      if (moduleExportNameIsDefault(node.propertyName || node.name) && getESModuleInterop(compilerOptions) && host.getEmitModuleFormatOfFile(getSourceFileOfNode(node)) < 4 /* System */) {\n        checkExternalEmitHelpers(node, 131072 /* ImportDefault */);\n      }\n    }\n  }\n  function checkImportAttributes(declaration) {\n    var _a;\n    const node = declaration.attributes;\n    if (node) {\n      const importAttributesType = getGlobalImportAttributesType(\n        /*reportErrors*/\n        true\n      );\n      if (importAttributesType !== emptyObjectType) {\n        checkTypeAssignableTo(getTypeFromImportAttributes(node), getNullableType(importAttributesType, 32768 /* Undefined */), node);\n      }\n      const validForTypeAttributes = isExclusivelyTypeOnlyImportOrExport(declaration);\n      const override = getResolutionModeOverride(node, validForTypeAttributes ? grammarErrorOnNode : void 0);\n      const isImportAttributes2 = declaration.attributes.token === 118 /* WithKeyword */;\n      if (validForTypeAttributes && override) {\n        return;\n      }\n      if (!moduleSupportsImportAttributes(moduleKind)) {\n        return grammarErrorOnNode(\n          node,\n          isImportAttributes2 ? Diagnostics.Import_attributes_are_only_supported_when_the_module_option_is_set_to_esnext_node18_node20_nodenext_or_preserve : Diagnostics.Import_assertions_are_only_supported_when_the_module_option_is_set_to_esnext_node18_node20_nodenext_or_preserve\n        );\n      }\n      if (102 /* Node20 */ <= moduleKind && moduleKind <= 199 /* NodeNext */ && !isImportAttributes2) {\n        return grammarErrorOnFirstToken(node, Diagnostics.Import_assertions_have_been_replaced_by_import_attributes_Use_with_instead_of_assert);\n      }\n      if (declaration.moduleSpecifier && getEmitSyntaxForModuleSpecifierExpression(declaration.moduleSpecifier) === 1 /* CommonJS */) {\n        return grammarErrorOnNode(\n          node,\n          isImportAttributes2 ? Diagnostics.Import_attributes_are_not_allowed_on_statements_that_compile_to_CommonJS_require_calls : Diagnostics.Import_assertions_are_not_allowed_on_statements_that_compile_to_CommonJS_require_calls\n        );\n      }\n      const isTypeOnly = isJSDocImportTag(declaration) || (isImportDeclaration(declaration) ? (_a = declaration.importClause) == null ? void 0 : _a.isTypeOnly : declaration.isTypeOnly);\n      if (isTypeOnly) {\n        return grammarErrorOnNode(node, isImportAttributes2 ? Diagnostics.Import_attributes_cannot_be_used_with_type_only_imports_or_exports : Diagnostics.Import_assertions_cannot_be_used_with_type_only_imports_or_exports);\n      }\n      if (override) {\n        return grammarErrorOnNode(node, Diagnostics.resolution_mode_can_only_be_set_for_type_only_imports);\n      }\n    }\n  }\n  function checkImportAttribute(node) {\n    return getRegularTypeOfLiteralType(checkExpressionCached(node.value));\n  }\n  function checkImportDeclaration(node) {\n    if (checkGrammarModuleElementContext(node, isInJSFile(node) ? Diagnostics.An_import_declaration_can_only_be_used_at_the_top_level_of_a_module : Diagnostics.An_import_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module)) {\n      return;\n    }\n    if (!checkGrammarModifiers(node) && node.modifiers) {\n      grammarErrorOnFirstToken(node, Diagnostics.An_import_declaration_cannot_have_modifiers);\n    }\n    if (checkExternalImportOrExportDeclaration(node)) {\n      let resolvedModule;\n      const importClause = node.importClause;\n      if (importClause && !checkGrammarImportClause(importClause)) {\n        if (importClause.name) {\n          checkImportBinding(importClause);\n        }\n        if (importClause.namedBindings) {\n          if (importClause.namedBindings.kind === 275 /* NamespaceImport */) {\n            checkImportBinding(importClause.namedBindings);\n            if (host.getEmitModuleFormatOfFile(getSourceFileOfNode(node)) < 4 /* System */ && getESModuleInterop(compilerOptions)) {\n              checkExternalEmitHelpers(node, 65536 /* ImportStar */);\n            }\n          } else {\n            resolvedModule = resolveExternalModuleName(node, node.moduleSpecifier);\n            if (resolvedModule) {\n              forEach(importClause.namedBindings.elements, checkImportBinding);\n            }\n          }\n        }\n        if (!importClause.isTypeOnly && 101 /* Node18 */ <= moduleKind && moduleKind <= 199 /* NodeNext */ && isOnlyImportableAsDefault(node.moduleSpecifier, resolvedModule) && !hasTypeJsonImportAttribute(node)) {\n          error2(node.moduleSpecifier, Diagnostics.Importing_a_JSON_file_into_an_ECMAScript_module_requires_a_type_Colon_json_import_attribute_when_module_is_set_to_0, ModuleKind[moduleKind]);\n        }\n      } else if (noUncheckedSideEffectImports && !importClause) {\n        void resolveExternalModuleName(node, node.moduleSpecifier);\n      }\n    }\n    checkImportAttributes(node);\n  }\n  function hasTypeJsonImportAttribute(node) {\n    return !!node.attributes && node.attributes.elements.some((attr) => {\n      var _a;\n      return getTextOfIdentifierOrLiteral(attr.name) === \"type\" && ((_a = tryCast(attr.value, isStringLiteralLike)) == null ? void 0 : _a.text) === \"json\";\n    });\n  }\n  function checkImportEqualsDeclaration(node) {\n    if (checkGrammarModuleElementContext(node, isInJSFile(node) ? Diagnostics.An_import_declaration_can_only_be_used_at_the_top_level_of_a_module : Diagnostics.An_import_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module)) {\n      return;\n    }\n    checkGrammarModifiers(node);\n    if (compilerOptions.erasableSyntaxOnly && !(node.flags & 33554432 /* Ambient */)) {\n      error2(node, Diagnostics.This_syntax_is_not_allowed_when_erasableSyntaxOnly_is_enabled);\n    }\n    if (isInternalModuleImportEqualsDeclaration(node) || checkExternalImportOrExportDeclaration(node)) {\n      checkImportBinding(node);\n      markLinkedReferences(node, 6 /* ExportImportEquals */);\n      if (node.moduleReference.kind !== 284 /* ExternalModuleReference */) {\n        const target = resolveAlias(getSymbolOfDeclaration(node));\n        if (target !== unknownSymbol) {\n          const targetFlags = getSymbolFlags(target);\n          if (targetFlags & 111551 /* Value */) {\n            const moduleName = getFirstIdentifier(node.moduleReference);\n            if (!(resolveEntityName(moduleName, 111551 /* Value */ | 1920 /* Namespace */).flags & 1920 /* Namespace */)) {\n              error2(moduleName, Diagnostics.Module_0_is_hidden_by_a_local_declaration_with_the_same_name, declarationNameToString(moduleName));\n            }\n          }\n          if (targetFlags & 788968 /* Type */) {\n            checkTypeNameIsReserved(node.name, Diagnostics.Import_name_cannot_be_0);\n          }\n        }\n        if (node.isTypeOnly) {\n          grammarErrorOnNode(node, Diagnostics.An_import_alias_cannot_use_import_type);\n        }\n      } else {\n        if (5 /* ES2015 */ <= moduleKind && moduleKind <= 99 /* ESNext */ && !node.isTypeOnly && !(node.flags & 33554432 /* Ambient */)) {\n          grammarErrorOnNode(node, Diagnostics.Import_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_import_Asterisk_as_ns_from_mod_import_a_from_mod_import_d_from_mod_or_another_module_format_instead);\n        }\n      }\n    }\n  }\n  function checkExportDeclaration(node) {\n    if (checkGrammarModuleElementContext(node, isInJSFile(node) ? Diagnostics.An_export_declaration_can_only_be_used_at_the_top_level_of_a_module : Diagnostics.An_export_declaration_can_only_be_used_at_the_top_level_of_a_namespace_or_module)) {\n      return;\n    }\n    if (!checkGrammarModifiers(node) && hasSyntacticModifiers(node)) {\n      grammarErrorOnFirstToken(node, Diagnostics.An_export_declaration_cannot_have_modifiers);\n    }\n    checkGrammarExportDeclaration(node);\n    if (!node.moduleSpecifier || checkExternalImportOrExportDeclaration(node)) {\n      if (node.exportClause && !isNamespaceExport(node.exportClause)) {\n        forEach(node.exportClause.elements, checkExportSpecifier);\n        const inAmbientExternalModule = node.parent.kind === 269 /* ModuleBlock */ && isAmbientModule(node.parent.parent);\n        const inAmbientNamespaceDeclaration = !inAmbientExternalModule && node.parent.kind === 269 /* ModuleBlock */ && !node.moduleSpecifier && node.flags & 33554432 /* Ambient */;\n        if (node.parent.kind !== 308 /* SourceFile */ && !inAmbientExternalModule && !inAmbientNamespaceDeclaration) {\n          error2(node, Diagnostics.Export_declarations_are_not_permitted_in_a_namespace);\n        }\n      } else {\n        const moduleSymbol = resolveExternalModuleName(node, node.moduleSpecifier);\n        if (moduleSymbol && hasExportAssignmentSymbol(moduleSymbol)) {\n          error2(node.moduleSpecifier, Diagnostics.Module_0_uses_export_and_cannot_be_used_with_export_Asterisk, symbolToString(moduleSymbol));\n        } else if (node.exportClause) {\n          checkAliasSymbol(node.exportClause);\n          checkModuleExportName(node.exportClause.name);\n        }\n        if (host.getEmitModuleFormatOfFile(getSourceFileOfNode(node)) < 4 /* System */) {\n          if (node.exportClause) {\n            if (getESModuleInterop(compilerOptions)) {\n              checkExternalEmitHelpers(node, 65536 /* ImportStar */);\n            }\n          } else {\n            checkExternalEmitHelpers(node, 32768 /* ExportStar */);\n          }\n        }\n      }\n    }\n    checkImportAttributes(node);\n  }\n  function checkGrammarExportDeclaration(node) {\n    var _a;\n    if (node.isTypeOnly && ((_a = node.exportClause) == null ? void 0 : _a.kind) === 280 /* NamedExports */) {\n      return checkGrammarNamedImportsOrExports(node.exportClause);\n    }\n    return false;\n  }\n  function checkGrammarModuleElementContext(node, errorMessage) {\n    const isInAppropriateContext = node.parent.kind === 308 /* SourceFile */ || node.parent.kind === 269 /* ModuleBlock */ || node.parent.kind === 268 /* ModuleDeclaration */;\n    if (!isInAppropriateContext) {\n      grammarErrorOnFirstToken(node, errorMessage);\n    }\n    return !isInAppropriateContext;\n  }\n  function checkExportSpecifier(node) {\n    checkAliasSymbol(node);\n    const hasModuleSpecifier = node.parent.parent.moduleSpecifier !== void 0;\n    checkModuleExportName(node.propertyName, hasModuleSpecifier);\n    checkModuleExportName(node.name);\n    if (getEmitDeclarations(compilerOptions)) {\n      collectLinkedAliases(\n        node.propertyName || node.name,\n        /*setVisibility*/\n        true\n      );\n    }\n    if (!hasModuleSpecifier) {\n      const exportedName = node.propertyName || node.name;\n      if (exportedName.kind === 11 /* StringLiteral */) {\n        return;\n      }\n      const symbol = resolveName(\n        exportedName,\n        exportedName.escapedText,\n        111551 /* Value */ | 788968 /* Type */ | 1920 /* Namespace */ | 2097152 /* Alias */,\n        /*nameNotFoundMessage*/\n        void 0,\n        /*isUse*/\n        true\n      );\n      if (symbol && (symbol === undefinedSymbol || symbol === globalThisSymbol || symbol.declarations && isGlobalSourceFile(getDeclarationContainer(symbol.declarations[0])))) {\n        error2(exportedName, Diagnostics.Cannot_export_0_Only_local_declarations_can_be_exported_from_a_module, idText(exportedName));\n      } else {\n        markLinkedReferences(node, 7 /* ExportSpecifier */);\n      }\n    } else {\n      if (getESModuleInterop(compilerOptions) && host.getEmitModuleFormatOfFile(getSourceFileOfNode(node)) < 4 /* System */ && moduleExportNameIsDefault(node.propertyName || node.name)) {\n        checkExternalEmitHelpers(node, 131072 /* ImportDefault */);\n      }\n    }\n  }\n  function checkExportAssignment(node) {\n    const illegalContextMessage = node.isExportEquals ? Diagnostics.An_export_assignment_must_be_at_the_top_level_of_a_file_or_module_declaration : Diagnostics.A_default_export_must_be_at_the_top_level_of_a_file_or_module_declaration;\n    if (checkGrammarModuleElementContext(node, illegalContextMessage)) {\n      return;\n    }\n    if (compilerOptions.erasableSyntaxOnly && node.isExportEquals && !(node.flags & 33554432 /* Ambient */)) {\n      error2(node, Diagnostics.This_syntax_is_not_allowed_when_erasableSyntaxOnly_is_enabled);\n    }\n    const container = node.parent.kind === 308 /* SourceFile */ ? node.parent : node.parent.parent;\n    if (container.kind === 268 /* ModuleDeclaration */ && !isAmbientModule(container)) {\n      if (node.isExportEquals) {\n        error2(node, Diagnostics.An_export_assignment_cannot_be_used_in_a_namespace);\n      } else {\n        error2(node, Diagnostics.A_default_export_can_only_be_used_in_an_ECMAScript_style_module);\n      }\n      return;\n    }\n    if (!checkGrammarModifiers(node) && hasEffectiveModifiers(node)) {\n      grammarErrorOnFirstToken(node, Diagnostics.An_export_assignment_cannot_have_modifiers);\n    }\n    const typeAnnotationNode = getEffectiveTypeAnnotationNode(node);\n    if (typeAnnotationNode) {\n      checkTypeAssignableTo(checkExpressionCached(node.expression), getTypeFromTypeNode(typeAnnotationNode), node.expression);\n    }\n    const isIllegalExportDefaultInCJS = !node.isExportEquals && !(node.flags & 33554432 /* Ambient */) && compilerOptions.verbatimModuleSyntax && host.getEmitModuleFormatOfFile(getSourceFileOfNode(node)) === 1 /* CommonJS */;\n    if (node.expression.kind === 80 /* Identifier */) {\n      const id = node.expression;\n      const sym = getExportSymbolOfValueSymbolIfExported(resolveEntityName(\n        id,\n        -1 /* All */,\n        /*ignoreErrors*/\n        true,\n        /*dontResolveAlias*/\n        true,\n        node\n      ));\n      if (sym) {\n        markLinkedReferences(node, 3 /* ExportAssignment */);\n        const typeOnlyDeclaration = getTypeOnlyAliasDeclaration(sym, 111551 /* Value */);\n        if (getSymbolFlags(sym) & 111551 /* Value */) {\n          checkExpressionCached(id);\n          if (!isIllegalExportDefaultInCJS && !(node.flags & 33554432 /* Ambient */) && compilerOptions.verbatimModuleSyntax && typeOnlyDeclaration) {\n            error2(\n              id,\n              node.isExportEquals ? Diagnostics.An_export_declaration_must_reference_a_real_value_when_verbatimModuleSyntax_is_enabled_but_0_resolves_to_a_type_only_declaration : Diagnostics.An_export_default_must_reference_a_real_value_when_verbatimModuleSyntax_is_enabled_but_0_resolves_to_a_type_only_declaration,\n              idText(id)\n            );\n          }\n        } else if (!isIllegalExportDefaultInCJS && !(node.flags & 33554432 /* Ambient */) && compilerOptions.verbatimModuleSyntax) {\n          error2(\n            id,\n            node.isExportEquals ? Diagnostics.An_export_declaration_must_reference_a_value_when_verbatimModuleSyntax_is_enabled_but_0_only_refers_to_a_type : Diagnostics.An_export_default_must_reference_a_value_when_verbatimModuleSyntax_is_enabled_but_0_only_refers_to_a_type,\n            idText(id)\n          );\n        }\n        if (!isIllegalExportDefaultInCJS && !(node.flags & 33554432 /* Ambient */) && getIsolatedModules(compilerOptions) && !(sym.flags & 111551 /* Value */)) {\n          const nonLocalMeanings = getSymbolFlags(\n            sym,\n            /*excludeTypeOnlyMeanings*/\n            false,\n            /*excludeLocalMeanings*/\n            true\n          );\n          if (sym.flags & 2097152 /* Alias */ && nonLocalMeanings & 788968 /* Type */ && !(nonLocalMeanings & 111551 /* Value */) && (!typeOnlyDeclaration || getSourceFileOfNode(typeOnlyDeclaration) !== getSourceFileOfNode(node))) {\n            error2(\n              id,\n              node.isExportEquals ? Diagnostics._0_resolves_to_a_type_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enabled_Consider_using_import_type_where_0_is_imported : Diagnostics._0_resolves_to_a_type_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enabled_Consider_using_export_type_0_as_default,\n              idText(id),\n              isolatedModulesLikeFlagName\n            );\n          } else if (typeOnlyDeclaration && getSourceFileOfNode(typeOnlyDeclaration) !== getSourceFileOfNode(node)) {\n            addTypeOnlyDeclarationRelatedInfo(\n              error2(\n                id,\n                node.isExportEquals ? Diagnostics._0_resolves_to_a_type_only_declaration_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enabled_Consider_using_import_type_where_0_is_imported : Diagnostics._0_resolves_to_a_type_only_declaration_and_must_be_marked_type_only_in_this_file_before_re_exporting_when_1_is_enabled_Consider_using_export_type_0_as_default,\n                idText(id),\n                isolatedModulesLikeFlagName\n              ),\n              typeOnlyDeclaration,\n              idText(id)\n            );\n          }\n        }\n      } else {\n        checkExpressionCached(id);\n      }\n      if (getEmitDeclarations(compilerOptions)) {\n        collectLinkedAliases(\n          id,\n          /*setVisibility*/\n          true\n        );\n      }\n    } else {\n      checkExpressionCached(node.expression);\n    }\n    if (isIllegalExportDefaultInCJS) {\n      error2(node, getVerbatimModuleSyntaxErrorMessage(node));\n    }\n    checkExternalModuleExports(container);\n    if (node.flags & 33554432 /* Ambient */ && !isEntityNameExpression(node.expression)) {\n      grammarErrorOnNode(node.expression, Diagnostics.The_expression_of_an_export_assignment_must_be_an_identifier_or_qualified_name_in_an_ambient_context);\n    }\n    if (node.isExportEquals) {\n      if (moduleKind >= 5 /* ES2015 */ && moduleKind !== 200 /* Preserve */ && (node.flags & 33554432 /* Ambient */ && host.getImpliedNodeFormatForEmit(getSourceFileOfNode(node)) === 99 /* ESNext */ || !(node.flags & 33554432 /* Ambient */) && host.getImpliedNodeFormatForEmit(getSourceFileOfNode(node)) !== 1 /* CommonJS */)) {\n        grammarErrorOnNode(node, Diagnostics.Export_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_export_default_or_another_module_format_instead);\n      } else if (moduleKind === 4 /* System */ && !(node.flags & 33554432 /* Ambient */)) {\n        grammarErrorOnNode(node, Diagnostics.Export_assignment_is_not_supported_when_module_flag_is_system);\n      }\n    }\n  }\n  function hasExportedMembers(moduleSymbol) {\n    return forEachEntry(moduleSymbol.exports, (_, id) => id !== \"export=\");\n  }\n  function checkExternalModuleExports(node) {\n    const moduleSymbol = getSymbolOfDeclaration(node);\n    const links = getSymbolLinks(moduleSymbol);\n    if (!links.exportsChecked) {\n      const exportEqualsSymbol = moduleSymbol.exports.get(\"export=\");\n      if (exportEqualsSymbol && hasExportedMembers(moduleSymbol)) {\n        const declaration = getDeclarationOfAliasSymbol(exportEqualsSymbol) || exportEqualsSymbol.valueDeclaration;\n        if (declaration && !isTopLevelInExternalModuleAugmentation(declaration) && !isInJSFile(declaration)) {\n          error2(declaration, Diagnostics.An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements);\n        }\n      }\n      const exports2 = getExportsOfModule(moduleSymbol);\n      if (exports2) {\n        exports2.forEach(({ declarations, flags }, id) => {\n          if (id === \"__export\") {\n            return;\n          }\n          if (flags & (1920 /* Namespace */ | 384 /* Enum */)) {\n            return;\n          }\n          const exportedDeclarationsCount = countWhere(declarations, and(isNotOverloadAndNotAccessor, not(isInterfaceDeclaration)));\n          if (flags & 524288 /* TypeAlias */ && exportedDeclarationsCount <= 2) {\n            return;\n          }\n          if (exportedDeclarationsCount > 1) {\n            if (!isDuplicatedCommonJSExport(declarations)) {\n              for (const declaration of declarations) {\n                if (isNotOverload(declaration)) {\n                  diagnostics.add(createDiagnosticForNode(declaration, Diagnostics.Cannot_redeclare_exported_variable_0, unescapeLeadingUnderscores(id)));\n                }\n              }\n            }\n          }\n        });\n      }\n      links.exportsChecked = true;\n    }\n  }\n  function isDuplicatedCommonJSExport(declarations) {\n    return declarations && declarations.length > 1 && declarations.every((d) => isInJSFile(d) && isAccessExpression(d) && (isExportsIdentifier(d.expression) || isModuleExportsAccessExpression(d.expression)));\n  }\n  function checkSourceElement(node) {\n    if (node) {\n      const saveCurrentNode = currentNode;\n      currentNode = node;\n      instantiationCount = 0;\n      checkSourceElementWorker(node);\n      currentNode = saveCurrentNode;\n    }\n  }\n  function checkSourceElementWorker(node) {\n    if (getNodeCheckFlags(node) & 8388608 /* PartiallyTypeChecked */) {\n      return;\n    }\n    if (canHaveJSDoc(node)) {\n      forEach(node.jsDoc, ({ comment, tags }) => {\n        checkJSDocCommentWorker(comment);\n        forEach(tags, (tag) => {\n          checkJSDocCommentWorker(tag.comment);\n          if (isInJSFile(node)) {\n            checkSourceElement(tag);\n          }\n        });\n      });\n    }\n    const kind = node.kind;\n    if (cancellationToken) {\n      switch (kind) {\n        case 268 /* ModuleDeclaration */:\n        case 264 /* ClassDeclaration */:\n        case 265 /* InterfaceDeclaration */:\n        case 263 /* FunctionDeclaration */:\n          cancellationToken.throwIfCancellationRequested();\n      }\n    }\n    if (kind >= 244 /* FirstStatement */ && kind <= 260 /* LastStatement */ && canHaveFlowNode(node) && node.flowNode && !isReachableFlowNode(node.flowNode)) {\n      errorOrSuggestion(compilerOptions.allowUnreachableCode === false, node, Diagnostics.Unreachable_code_detected);\n    }\n    switch (kind) {\n      case 169 /* TypeParameter */:\n        return checkTypeParameter(node);\n      case 170 /* Parameter */:\n        return checkParameter(node);\n      case 173 /* PropertyDeclaration */:\n        return checkPropertyDeclaration(node);\n      case 172 /* PropertySignature */:\n        return checkPropertySignature(node);\n      case 186 /* ConstructorType */:\n      case 185 /* FunctionType */:\n      case 180 /* CallSignature */:\n      case 181 /* ConstructSignature */:\n      case 182 /* IndexSignature */:\n        return checkSignatureDeclaration(node);\n      case 175 /* MethodDeclaration */:\n      case 174 /* MethodSignature */:\n        return checkMethodDeclaration(node);\n      case 176 /* ClassStaticBlockDeclaration */:\n        return checkClassStaticBlockDeclaration(node);\n      case 177 /* Constructor */:\n        return checkConstructorDeclaration(node);\n      case 178 /* GetAccessor */:\n      case 179 /* SetAccessor */:\n        return checkAccessorDeclaration(node);\n      case 184 /* TypeReference */:\n        return checkTypeReferenceNode(node);\n      case 183 /* TypePredicate */:\n        return checkTypePredicate(node);\n      case 187 /* TypeQuery */:\n        return checkTypeQuery(node);\n      case 188 /* TypeLiteral */:\n        return checkTypeLiteral(node);\n      case 189 /* ArrayType */:\n        return checkArrayType(node);\n      case 190 /* TupleType */:\n        return checkTupleType(node);\n      case 193 /* UnionType */:\n      case 194 /* IntersectionType */:\n        return checkUnionOrIntersectionType(node);\n      case 197 /* ParenthesizedType */:\n      case 191 /* OptionalType */:\n      case 192 /* RestType */:\n        return checkSourceElement(node.type);\n      case 198 /* ThisType */:\n        return checkThisType(node);\n      case 199 /* TypeOperator */:\n        return checkTypeOperator(node);\n      case 195 /* ConditionalType */:\n        return checkConditionalType(node);\n      case 196 /* InferType */:\n        return checkInferType(node);\n      case 204 /* TemplateLiteralType */:\n        return checkTemplateLiteralType(node);\n      case 206 /* ImportType */:\n        return checkImportType(node);\n      case 203 /* NamedTupleMember */:\n        return checkNamedTupleMember(node);\n      case 329 /* JSDocAugmentsTag */:\n        return checkJSDocAugmentsTag(node);\n      case 330 /* JSDocImplementsTag */:\n        return checkJSDocImplementsTag(node);\n      case 347 /* JSDocTypedefTag */:\n      case 339 /* JSDocCallbackTag */:\n      case 341 /* JSDocEnumTag */:\n        return checkJSDocTypeAliasTag(node);\n      case 346 /* JSDocTemplateTag */:\n        return checkJSDocTemplateTag(node);\n      case 345 /* JSDocTypeTag */:\n        return checkJSDocTypeTag(node);\n      case 325 /* JSDocLink */:\n      case 326 /* JSDocLinkCode */:\n      case 327 /* JSDocLinkPlain */:\n        return checkJSDocLinkLikeTag(node);\n      case 342 /* JSDocParameterTag */:\n        return checkJSDocParameterTag(node);\n      case 349 /* JSDocPropertyTag */:\n        return checkJSDocPropertyTag(node);\n      case 318 /* JSDocFunctionType */:\n        checkJSDocFunctionType(node);\n      // falls through\n      case 316 /* JSDocNonNullableType */:\n      case 315 /* JSDocNullableType */:\n      case 313 /* JSDocAllType */:\n      case 314 /* JSDocUnknownType */:\n      case 323 /* JSDocTypeLiteral */:\n        checkJSDocTypeIsInJsFile(node);\n        forEachChild(node, checkSourceElement);\n        return;\n      case 319 /* JSDocVariadicType */:\n        checkJSDocVariadicType(node);\n        return;\n      case 310 /* JSDocTypeExpression */:\n        return checkSourceElement(node.type);\n      case 334 /* JSDocPublicTag */:\n      case 336 /* JSDocProtectedTag */:\n      case 335 /* JSDocPrivateTag */:\n        return checkJSDocAccessibilityModifiers(node);\n      case 351 /* JSDocSatisfiesTag */:\n        return checkJSDocSatisfiesTag(node);\n      case 344 /* JSDocThisTag */:\n        return checkJSDocThisTag(node);\n      case 352 /* JSDocImportTag */:\n        return checkJSDocImportTag(node);\n      case 200 /* IndexedAccessType */:\n        return checkIndexedAccessType(node);\n      case 201 /* MappedType */:\n        return checkMappedType(node);\n      case 263 /* FunctionDeclaration */:\n        return checkFunctionDeclaration(node);\n      case 242 /* Block */:\n      case 269 /* ModuleBlock */:\n        return checkBlock(node);\n      case 244 /* VariableStatement */:\n        return checkVariableStatement(node);\n      case 245 /* ExpressionStatement */:\n        return checkExpressionStatement(node);\n      case 246 /* IfStatement */:\n        return checkIfStatement(node);\n      case 247 /* DoStatement */:\n        return checkDoStatement(node);\n      case 248 /* WhileStatement */:\n        return checkWhileStatement(node);\n      case 249 /* ForStatement */:\n        return checkForStatement(node);\n      case 250 /* ForInStatement */:\n        return checkForInStatement(node);\n      case 251 /* ForOfStatement */:\n        return checkForOfStatement(node);\n      case 252 /* ContinueStatement */:\n      case 253 /* BreakStatement */:\n        return checkBreakOrContinueStatement(node);\n      case 254 /* ReturnStatement */:\n        return checkReturnStatement(node);\n      case 255 /* WithStatement */:\n        return checkWithStatement(node);\n      case 256 /* SwitchStatement */:\n        return checkSwitchStatement(node);\n      case 257 /* LabeledStatement */:\n        return checkLabeledStatement(node);\n      case 258 /* ThrowStatement */:\n        return checkThrowStatement(node);\n      case 259 /* TryStatement */:\n        return checkTryStatement(node);\n      case 261 /* VariableDeclaration */:\n        return checkVariableDeclaration(node);\n      case 209 /* BindingElement */:\n        return checkBindingElement(node);\n      case 264 /* ClassDeclaration */:\n        return checkClassDeclaration(node);\n      case 265 /* InterfaceDeclaration */:\n        return checkInterfaceDeclaration(node);\n      case 266 /* TypeAliasDeclaration */:\n        return checkTypeAliasDeclaration(node);\n      case 267 /* EnumDeclaration */:\n        return checkEnumDeclaration(node);\n      case 307 /* EnumMember */:\n        return checkEnumMember(node);\n      case 268 /* ModuleDeclaration */:\n        return checkModuleDeclaration(node);\n      case 273 /* ImportDeclaration */:\n        return checkImportDeclaration(node);\n      case 272 /* ImportEqualsDeclaration */:\n        return checkImportEqualsDeclaration(node);\n      case 279 /* ExportDeclaration */:\n        return checkExportDeclaration(node);\n      case 278 /* ExportAssignment */:\n        return checkExportAssignment(node);\n      case 243 /* EmptyStatement */:\n      case 260 /* DebuggerStatement */:\n        checkGrammarStatementInAmbientContext(node);\n        return;\n      case 283 /* MissingDeclaration */:\n        return checkMissingDeclaration(node);\n    }\n  }\n  function checkJSDocCommentWorker(node) {\n    if (isArray(node)) {\n      forEach(node, (tag) => {\n        if (isJSDocLinkLike(tag)) {\n          checkSourceElement(tag);\n        }\n      });\n    }\n  }\n  function checkJSDocTypeIsInJsFile(node) {\n    if (!isInJSFile(node)) {\n      if (isJSDocNonNullableType(node) || isJSDocNullableType(node)) {\n        const token = tokenToString(isJSDocNonNullableType(node) ? 54 /* ExclamationToken */ : 58 /* QuestionToken */);\n        const diagnostic = node.postfix ? Diagnostics._0_at_the_end_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1 : Diagnostics._0_at_the_start_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1;\n        const typeNode = node.type;\n        const type = getTypeFromTypeNode(typeNode);\n        grammarErrorOnNode(\n          node,\n          diagnostic,\n          token,\n          typeToString(\n            isJSDocNullableType(node) && !(type === neverType || type === voidType) ? getUnionType(append([type, undefinedType], node.postfix ? void 0 : nullType)) : type\n          )\n        );\n      } else {\n        grammarErrorOnNode(node, Diagnostics.JSDoc_types_can_only_be_used_inside_documentation_comments);\n      }\n    }\n  }\n  function checkJSDocVariadicType(node) {\n    checkJSDocTypeIsInJsFile(node);\n    checkSourceElement(node.type);\n    const { parent: parent2 } = node;\n    if (isParameter(parent2) && isJSDocFunctionType(parent2.parent)) {\n      if (last(parent2.parent.parameters) !== parent2) {\n        error2(node, Diagnostics.A_rest_parameter_must_be_last_in_a_parameter_list);\n      }\n      return;\n    }\n    if (!isJSDocTypeExpression(parent2)) {\n      error2(node, Diagnostics.JSDoc_may_only_appear_in_the_last_parameter_of_a_signature);\n    }\n    const paramTag = node.parent.parent;\n    if (!isJSDocParameterTag(paramTag)) {\n      error2(node, Diagnostics.JSDoc_may_only_appear_in_the_last_parameter_of_a_signature);\n      return;\n    }\n    const param = getParameterSymbolFromJSDoc(paramTag);\n    if (!param) {\n      return;\n    }\n    const host2 = getHostSignatureFromJSDoc(paramTag);\n    if (!host2 || last(host2.parameters).symbol !== param) {\n      error2(node, Diagnostics.A_rest_parameter_must_be_last_in_a_parameter_list);\n    }\n  }\n  function getTypeFromJSDocVariadicType(node) {\n    const type = getTypeFromTypeNode(node.type);\n    const { parent: parent2 } = node;\n    const paramTag = node.parent.parent;\n    if (isJSDocTypeExpression(node.parent) && isJSDocParameterTag(paramTag)) {\n      const host2 = getHostSignatureFromJSDoc(paramTag);\n      const isCallbackTag = isJSDocCallbackTag(paramTag.parent.parent);\n      if (host2 || isCallbackTag) {\n        const lastParamDeclaration = isCallbackTag ? lastOrUndefined(paramTag.parent.parent.typeExpression.parameters) : lastOrUndefined(host2.parameters);\n        const symbol = getParameterSymbolFromJSDoc(paramTag);\n        if (!lastParamDeclaration || symbol && lastParamDeclaration.symbol === symbol && isRestParameter(lastParamDeclaration)) {\n          return createArrayType(type);\n        }\n      }\n    }\n    if (isParameter(parent2) && isJSDocFunctionType(parent2.parent)) {\n      return createArrayType(type);\n    }\n    return addOptionality(type);\n  }\n  function checkNodeDeferred(node) {\n    const enclosingFile = getSourceFileOfNode(node);\n    const links = getNodeLinks(enclosingFile);\n    if (!(links.flags & 1 /* TypeChecked */)) {\n      links.deferredNodes || (links.deferredNodes = /* @__PURE__ */ new Set());\n      links.deferredNodes.add(node);\n    } else {\n      Debug.assert(!links.deferredNodes, \"A type-checked file should have no deferred nodes.\");\n    }\n  }\n  function checkDeferredNodes(context) {\n    const links = getNodeLinks(context);\n    if (links.deferredNodes) {\n      links.deferredNodes.forEach(checkDeferredNode);\n    }\n    links.deferredNodes = void 0;\n  }\n  function checkDeferredNode(node) {\n    var _a, _b;\n    (_a = tracing) == null ? void 0 : _a.push(tracing.Phase.Check, \"checkDeferredNode\", { kind: node.kind, pos: node.pos, end: node.end, path: node.tracingPath });\n    const saveCurrentNode = currentNode;\n    currentNode = node;\n    instantiationCount = 0;\n    switch (node.kind) {\n      case 214 /* CallExpression */:\n      case 215 /* NewExpression */:\n      case 216 /* TaggedTemplateExpression */:\n      case 171 /* Decorator */:\n      case 287 /* JsxOpeningElement */:\n        resolveUntypedCall(node);\n        break;\n      case 219 /* FunctionExpression */:\n      case 220 /* ArrowFunction */:\n      case 175 /* MethodDeclaration */:\n      case 174 /* MethodSignature */:\n        checkFunctionExpressionOrObjectLiteralMethodDeferred(node);\n        break;\n      case 178 /* GetAccessor */:\n      case 179 /* SetAccessor */:\n        checkAccessorDeclaration(node);\n        break;\n      case 232 /* ClassExpression */:\n        checkClassExpressionDeferred(node);\n        break;\n      case 169 /* TypeParameter */:\n        checkTypeParameterDeferred(node);\n        break;\n      case 286 /* JsxSelfClosingElement */:\n        checkJsxSelfClosingElementDeferred(node);\n        break;\n      case 285 /* JsxElement */:\n        checkJsxElementDeferred(node);\n        break;\n      case 217 /* TypeAssertionExpression */:\n      case 235 /* AsExpression */:\n      case 218 /* ParenthesizedExpression */:\n        checkAssertionDeferred(node);\n        break;\n      case 223 /* VoidExpression */:\n        checkExpression(node.expression);\n        break;\n      case 227 /* BinaryExpression */:\n        if (isInstanceOfExpression(node)) {\n          resolveUntypedCall(node);\n        }\n        break;\n    }\n    currentNode = saveCurrentNode;\n    (_b = tracing) == null ? void 0 : _b.pop();\n  }\n  function checkSourceFile(node, nodesToCheck) {\n    var _a, _b;\n    (_a = tracing) == null ? void 0 : _a.push(\n      tracing.Phase.Check,\n      nodesToCheck ? \"checkSourceFileNodes\" : \"checkSourceFile\",\n      { path: node.path },\n      /*separateBeginAndEnd*/\n      true\n    );\n    const beforeMark = nodesToCheck ? \"beforeCheckNodes\" : \"beforeCheck\";\n    const afterMark = nodesToCheck ? \"afterCheckNodes\" : \"afterCheck\";\n    mark(beforeMark);\n    nodesToCheck ? checkSourceFileNodesWorker(node, nodesToCheck) : checkSourceFileWorker(node);\n    mark(afterMark);\n    measure(\"Check\", beforeMark, afterMark);\n    (_b = tracing) == null ? void 0 : _b.pop();\n  }\n  function unusedIsError(kind, isAmbient) {\n    if (isAmbient) {\n      return false;\n    }\n    switch (kind) {\n      case 0 /* Local */:\n        return !!compilerOptions.noUnusedLocals;\n      case 1 /* Parameter */:\n        return !!compilerOptions.noUnusedParameters;\n      default:\n        return Debug.assertNever(kind);\n    }\n  }\n  function getPotentiallyUnusedIdentifiers(sourceFile) {\n    return allPotentiallyUnusedIdentifiers.get(sourceFile.path) || emptyArray;\n  }\n  function checkSourceFileWorker(node) {\n    const links = getNodeLinks(node);\n    if (!(links.flags & 1 /* TypeChecked */)) {\n      if (skipTypeChecking(node, compilerOptions, host)) {\n        return;\n      }\n      checkGrammarSourceFile(node);\n      clear(potentialThisCollisions);\n      clear(potentialNewTargetCollisions);\n      clear(potentialWeakMapSetCollisions);\n      clear(potentialReflectCollisions);\n      clear(potentialUnusedRenamedBindingElementsInTypes);\n      if (links.flags & 8388608 /* PartiallyTypeChecked */) {\n        potentialThisCollisions = links.potentialThisCollisions;\n        potentialNewTargetCollisions = links.potentialNewTargetCollisions;\n        potentialWeakMapSetCollisions = links.potentialWeakMapSetCollisions;\n        potentialReflectCollisions = links.potentialReflectCollisions;\n        potentialUnusedRenamedBindingElementsInTypes = links.potentialUnusedRenamedBindingElementsInTypes;\n      }\n      forEach(node.statements, checkSourceElement);\n      checkSourceElement(node.endOfFileToken);\n      checkDeferredNodes(node);\n      if (isExternalOrCommonJsModule(node)) {\n        registerForUnusedIdentifiersCheck(node);\n      }\n      addLazyDiagnostic(() => {\n        if (!node.isDeclarationFile && (compilerOptions.noUnusedLocals || compilerOptions.noUnusedParameters)) {\n          checkUnusedIdentifiers(getPotentiallyUnusedIdentifiers(node), (containingNode, kind, diag2) => {\n            if (!containsParseError(containingNode) && unusedIsError(kind, !!(containingNode.flags & 33554432 /* Ambient */))) {\n              diagnostics.add(diag2);\n            }\n          });\n        }\n        if (!node.isDeclarationFile) {\n          checkPotentialUncheckedRenamedBindingElementsInTypes();\n        }\n      });\n      if (isExternalOrCommonJsModule(node)) {\n        checkExternalModuleExports(node);\n      }\n      if (potentialThisCollisions.length) {\n        forEach(potentialThisCollisions, checkIfThisIsCapturedInEnclosingScope);\n        clear(potentialThisCollisions);\n      }\n      if (potentialNewTargetCollisions.length) {\n        forEach(potentialNewTargetCollisions, checkIfNewTargetIsCapturedInEnclosingScope);\n        clear(potentialNewTargetCollisions);\n      }\n      if (potentialWeakMapSetCollisions.length) {\n        forEach(potentialWeakMapSetCollisions, checkWeakMapSetCollision);\n        clear(potentialWeakMapSetCollisions);\n      }\n      if (potentialReflectCollisions.length) {\n        forEach(potentialReflectCollisions, checkReflectCollision);\n        clear(potentialReflectCollisions);\n      }\n      links.flags |= 1 /* TypeChecked */;\n    }\n  }\n  function checkSourceFileNodesWorker(file, nodes) {\n    const links = getNodeLinks(file);\n    if (!(links.flags & 1 /* TypeChecked */)) {\n      if (skipTypeChecking(file, compilerOptions, host)) {\n        return;\n      }\n      checkGrammarSourceFile(file);\n      clear(potentialThisCollisions);\n      clear(potentialNewTargetCollisions);\n      clear(potentialWeakMapSetCollisions);\n      clear(potentialReflectCollisions);\n      clear(potentialUnusedRenamedBindingElementsInTypes);\n      forEach(nodes, checkSourceElement);\n      checkDeferredNodes(file);\n      (links.potentialThisCollisions || (links.potentialThisCollisions = [])).push(...potentialThisCollisions);\n      (links.potentialNewTargetCollisions || (links.potentialNewTargetCollisions = [])).push(...potentialNewTargetCollisions);\n      (links.potentialWeakMapSetCollisions || (links.potentialWeakMapSetCollisions = [])).push(...potentialWeakMapSetCollisions);\n      (links.potentialReflectCollisions || (links.potentialReflectCollisions = [])).push(...potentialReflectCollisions);\n      (links.potentialUnusedRenamedBindingElementsInTypes || (links.potentialUnusedRenamedBindingElementsInTypes = [])).push(\n        ...potentialUnusedRenamedBindingElementsInTypes\n      );\n      links.flags |= 8388608 /* PartiallyTypeChecked */;\n      for (const node of nodes) {\n        const nodeLinks2 = getNodeLinks(node);\n        nodeLinks2.flags |= 8388608 /* PartiallyTypeChecked */;\n      }\n    }\n  }\n  function getDiagnostics2(sourceFile, ct, nodesToCheck) {\n    try {\n      cancellationToken = ct;\n      return getDiagnosticsWorker(sourceFile, nodesToCheck);\n    } finally {\n      cancellationToken = void 0;\n    }\n  }\n  function ensurePendingDiagnosticWorkComplete() {\n    for (const cb of deferredDiagnosticsCallbacks) {\n      cb();\n    }\n    deferredDiagnosticsCallbacks = [];\n  }\n  function checkSourceFileWithEagerDiagnostics(sourceFile, nodesToCheck) {\n    ensurePendingDiagnosticWorkComplete();\n    const oldAddLazyDiagnostics = addLazyDiagnostic;\n    addLazyDiagnostic = (cb) => cb();\n    checkSourceFile(sourceFile, nodesToCheck);\n    addLazyDiagnostic = oldAddLazyDiagnostics;\n  }\n  function getDiagnosticsWorker(sourceFile, nodesToCheck) {\n    if (sourceFile) {\n      ensurePendingDiagnosticWorkComplete();\n      const previousGlobalDiagnostics = diagnostics.getGlobalDiagnostics();\n      const previousGlobalDiagnosticsSize = previousGlobalDiagnostics.length;\n      checkSourceFileWithEagerDiagnostics(sourceFile, nodesToCheck);\n      const semanticDiagnostics = diagnostics.getDiagnostics(sourceFile.fileName);\n      if (nodesToCheck) {\n        return semanticDiagnostics;\n      }\n      const currentGlobalDiagnostics = diagnostics.getGlobalDiagnostics();\n      if (currentGlobalDiagnostics !== previousGlobalDiagnostics) {\n        const deferredGlobalDiagnostics = relativeComplement(previousGlobalDiagnostics, currentGlobalDiagnostics, compareDiagnostics);\n        return concatenate(deferredGlobalDiagnostics, semanticDiagnostics);\n      } else if (previousGlobalDiagnosticsSize === 0 && currentGlobalDiagnostics.length > 0) {\n        return concatenate(currentGlobalDiagnostics, semanticDiagnostics);\n      }\n      return semanticDiagnostics;\n    }\n    forEach(host.getSourceFiles(), (file) => checkSourceFileWithEagerDiagnostics(file));\n    return diagnostics.getDiagnostics();\n  }\n  function getGlobalDiagnostics() {\n    ensurePendingDiagnosticWorkComplete();\n    return diagnostics.getGlobalDiagnostics();\n  }\n  function getSymbolsInScope(location, meaning) {\n    if (location.flags & 67108864 /* InWithStatement */) {\n      return [];\n    }\n    const symbols = createSymbolTable();\n    let isStaticSymbol = false;\n    populateSymbols();\n    symbols.delete(\"this\" /* This */);\n    return symbolsToArray(symbols);\n    function populateSymbols() {\n      while (location) {\n        if (canHaveLocals(location) && location.locals && !isGlobalSourceFile(location)) {\n          copySymbols(location.locals, meaning);\n        }\n        switch (location.kind) {\n          case 308 /* SourceFile */:\n            if (!isExternalModule(location)) break;\n          // falls through\n          case 268 /* ModuleDeclaration */:\n            copyLocallyVisibleExportSymbols(getSymbolOfDeclaration(location).exports, meaning & 2623475 /* ModuleMember */);\n            break;\n          case 267 /* EnumDeclaration */:\n            copySymbols(getSymbolOfDeclaration(location).exports, meaning & 8 /* EnumMember */);\n            break;\n          case 232 /* ClassExpression */:\n            const className = location.name;\n            if (className) {\n              copySymbol(location.symbol, meaning);\n            }\n          // this fall-through is necessary because we would like to handle\n          // type parameter inside class expression similar to how we handle it in classDeclaration and interface Declaration.\n          // falls through\n          case 264 /* ClassDeclaration */:\n          case 265 /* InterfaceDeclaration */:\n            if (!isStaticSymbol) {\n              copySymbols(getMembersOfSymbol(getSymbolOfDeclaration(location)), meaning & 788968 /* Type */);\n            }\n            break;\n          case 219 /* FunctionExpression */:\n            const funcName = location.name;\n            if (funcName) {\n              copySymbol(location.symbol, meaning);\n            }\n            break;\n        }\n        if (introducesArgumentsExoticObject(location)) {\n          copySymbol(argumentsSymbol, meaning);\n        }\n        isStaticSymbol = isStatic(location);\n        location = location.parent;\n      }\n      copySymbols(globals, meaning);\n    }\n    function copySymbol(symbol, meaning2) {\n      if (getCombinedLocalAndExportSymbolFlags(symbol) & meaning2) {\n        const id = symbol.escapedName;\n        if (!symbols.has(id)) {\n          symbols.set(id, symbol);\n        }\n      }\n    }\n    function copySymbols(source, meaning2) {\n      if (meaning2) {\n        source.forEach((symbol) => {\n          copySymbol(symbol, meaning2);\n        });\n      }\n    }\n    function copyLocallyVisibleExportSymbols(source, meaning2) {\n      if (meaning2) {\n        source.forEach((symbol) => {\n          if (!getDeclarationOfKind(symbol, 282 /* ExportSpecifier */) && !getDeclarationOfKind(symbol, 281 /* NamespaceExport */) && symbol.escapedName !== \"default\" /* Default */) {\n            copySymbol(symbol, meaning2);\n          }\n        });\n      }\n    }\n  }\n  function isTypeDeclarationName(name) {\n    return name.kind === 80 /* Identifier */ && isTypeDeclaration(name.parent) && getNameOfDeclaration(name.parent) === name;\n  }\n  function isTypeReferenceIdentifier(node) {\n    while (node.parent.kind === 167 /* QualifiedName */) {\n      node = node.parent;\n    }\n    return node.parent.kind === 184 /* TypeReference */;\n  }\n  function isInNameOfExpressionWithTypeArguments(node) {\n    while (node.parent.kind === 212 /* PropertyAccessExpression */) {\n      node = node.parent;\n    }\n    return node.parent.kind === 234 /* ExpressionWithTypeArguments */;\n  }\n  function forEachEnclosingClass(node, callback) {\n    let result;\n    let containingClass = getContainingClass(node);\n    while (containingClass) {\n      if (result = callback(containingClass)) break;\n      containingClass = getContainingClass(containingClass);\n    }\n    return result;\n  }\n  function isNodeUsedDuringClassInitialization(node) {\n    return !!findAncestor(node, (element) => {\n      if (isConstructorDeclaration(element) && nodeIsPresent(element.body) || isPropertyDeclaration(element)) {\n        return true;\n      } else if (isClassLike(element) || isFunctionLikeDeclaration(element)) {\n        return \"quit\";\n      }\n      return false;\n    });\n  }\n  function isNodeWithinClass(node, classDeclaration) {\n    return !!forEachEnclosingClass(node, (n) => n === classDeclaration);\n  }\n  function getLeftSideOfImportEqualsOrExportAssignment(nodeOnRightSide) {\n    while (nodeOnRightSide.parent.kind === 167 /* QualifiedName */) {\n      nodeOnRightSide = nodeOnRightSide.parent;\n    }\n    if (nodeOnRightSide.parent.kind === 272 /* ImportEqualsDeclaration */) {\n      return nodeOnRightSide.parent.moduleReference === nodeOnRightSide ? nodeOnRightSide.parent : void 0;\n    }\n    if (nodeOnRightSide.parent.kind === 278 /* ExportAssignment */) {\n      return nodeOnRightSide.parent.expression === nodeOnRightSide ? nodeOnRightSide.parent : void 0;\n    }\n    return void 0;\n  }\n  function isInRightSideOfImportOrExportAssignment(node) {\n    return getLeftSideOfImportEqualsOrExportAssignment(node) !== void 0;\n  }\n  function getSpecialPropertyAssignmentSymbolFromEntityName(entityName) {\n    const specialPropertyAssignmentKind = getAssignmentDeclarationKind(entityName.parent.parent);\n    switch (specialPropertyAssignmentKind) {\n      case 1 /* ExportsProperty */:\n      case 3 /* PrototypeProperty */:\n        return getSymbolOfNode(entityName.parent);\n      case 5 /* Property */:\n        if (isPropertyAccessExpression(entityName.parent) && getLeftmostAccessExpression(entityName.parent) === entityName) {\n          return void 0;\n        }\n      // falls through\n      case 4 /* ThisProperty */:\n      case 2 /* ModuleExports */:\n        return getSymbolOfDeclaration(entityName.parent.parent);\n    }\n  }\n  function isImportTypeQualifierPart(node) {\n    let parent2 = node.parent;\n    while (isQualifiedName(parent2)) {\n      node = parent2;\n      parent2 = parent2.parent;\n    }\n    if (parent2 && parent2.kind === 206 /* ImportType */ && parent2.qualifier === node) {\n      return parent2;\n    }\n    return void 0;\n  }\n  function isThisPropertyAndThisTyped(node) {\n    if (node.expression.kind === 110 /* ThisKeyword */) {\n      const container = getThisContainer(\n        node,\n        /*includeArrowFunctions*/\n        false,\n        /*includeClassComputedPropertyName*/\n        false\n      );\n      if (isFunctionLike(container)) {\n        const containingLiteral = getContainingObjectLiteral(container);\n        if (containingLiteral) {\n          const contextualType = getApparentTypeOfContextualType(\n            containingLiteral,\n            /*contextFlags*/\n            void 0\n          );\n          const type = getThisTypeOfObjectLiteralFromContextualType(containingLiteral, contextualType);\n          return type && !isTypeAny(type);\n        }\n      }\n    }\n  }\n  function getSymbolOfNameOrPropertyAccessExpression(name) {\n    if (isDeclarationName(name)) {\n      return getSymbolOfNode(name.parent);\n    }\n    if (isInJSFile(name) && name.parent.kind === 212 /* PropertyAccessExpression */ && name.parent === name.parent.parent.left) {\n      if (!isPrivateIdentifier(name) && !isJSDocMemberName(name) && !isThisPropertyAndThisTyped(name.parent)) {\n        const specialPropertyAssignmentSymbol = getSpecialPropertyAssignmentSymbolFromEntityName(name);\n        if (specialPropertyAssignmentSymbol) {\n          return specialPropertyAssignmentSymbol;\n        }\n      }\n    }\n    if (name.parent.kind === 278 /* ExportAssignment */ && isEntityNameExpression(name)) {\n      const success = resolveEntityName(\n        name,\n        /*all meanings*/\n        111551 /* Value */ | 788968 /* Type */ | 1920 /* Namespace */ | 2097152 /* Alias */,\n        /*ignoreErrors*/\n        true\n      );\n      if (success && success !== unknownSymbol) {\n        return success;\n      }\n    } else if (isEntityName(name) && isInRightSideOfImportOrExportAssignment(name)) {\n      const importEqualsDeclaration = getAncestor(name, 272 /* ImportEqualsDeclaration */);\n      Debug.assert(importEqualsDeclaration !== void 0);\n      return getSymbolOfPartOfRightHandSideOfImportEquals(\n        name,\n        /*dontResolveAlias*/\n        true\n      );\n    }\n    if (isEntityName(name)) {\n      const possibleImportNode = isImportTypeQualifierPart(name);\n      if (possibleImportNode) {\n        getTypeFromTypeNode(possibleImportNode);\n        const sym = getNodeLinks(name).resolvedSymbol;\n        return sym === unknownSymbol ? void 0 : sym;\n      }\n    }\n    while (isRightSideOfQualifiedNameOrPropertyAccessOrJSDocMemberName(name)) {\n      name = name.parent;\n    }\n    if (isInNameOfExpressionWithTypeArguments(name)) {\n      let meaning = 0 /* None */;\n      if (name.parent.kind === 234 /* ExpressionWithTypeArguments */) {\n        meaning = isPartOfTypeNode(name) ? 788968 /* Type */ : 111551 /* Value */;\n        if (isExpressionWithTypeArgumentsInClassExtendsClause(name.parent)) {\n          meaning |= 111551 /* Value */;\n        }\n      } else {\n        meaning = 1920 /* Namespace */;\n      }\n      meaning |= 2097152 /* Alias */;\n      const entityNameSymbol = isEntityNameExpression(name) ? resolveEntityName(\n        name,\n        meaning,\n        /*ignoreErrors*/\n        true\n      ) : void 0;\n      if (entityNameSymbol) {\n        return entityNameSymbol;\n      }\n    }\n    if (name.parent.kind === 342 /* JSDocParameterTag */) {\n      return getParameterSymbolFromJSDoc(name.parent);\n    }\n    if (name.parent.kind === 169 /* TypeParameter */ && name.parent.parent.kind === 346 /* JSDocTemplateTag */) {\n      Debug.assert(!isInJSFile(name));\n      const typeParameter = getTypeParameterFromJsDoc(name.parent);\n      return typeParameter && typeParameter.symbol;\n    }\n    if (isExpressionNode(name)) {\n      if (nodeIsMissing(name)) {\n        return void 0;\n      }\n      const isJSDoc2 = findAncestor(name, or(isJSDocLinkLike, isJSDocNameReference, isJSDocMemberName));\n      const meaning = isJSDoc2 ? 788968 /* Type */ | 1920 /* Namespace */ | 111551 /* Value */ : 111551 /* Value */;\n      if (name.kind === 80 /* Identifier */) {\n        if (isJSXTagName(name) && isJsxIntrinsicTagName(name)) {\n          const symbol = getIntrinsicTagSymbol(name.parent);\n          return symbol === unknownSymbol ? void 0 : symbol;\n        }\n        const result = resolveEntityName(\n          name,\n          meaning,\n          /*ignoreErrors*/\n          true,\n          /*dontResolveAlias*/\n          true,\n          getHostSignatureFromJSDoc(name)\n        );\n        if (!result && isJSDoc2) {\n          const container = findAncestor(name, or(isClassLike, isInterfaceDeclaration));\n          if (container) {\n            return resolveJSDocMemberName(\n              name,\n              /*ignoreErrors*/\n              true,\n              getSymbolOfDeclaration(container)\n            );\n          }\n        }\n        if (result && isJSDoc2) {\n          const container = getJSDocHost(name);\n          if (container && isEnumMember(container) && container === result.valueDeclaration) {\n            return resolveEntityName(\n              name,\n              meaning,\n              /*ignoreErrors*/\n              true,\n              /*dontResolveAlias*/\n              true,\n              getSourceFileOfNode(container)\n            ) || result;\n          }\n        }\n        return result;\n      } else if (isPrivateIdentifier(name)) {\n        return getSymbolForPrivateIdentifierExpression(name);\n      } else if (name.kind === 212 /* PropertyAccessExpression */ || name.kind === 167 /* QualifiedName */) {\n        const links = getNodeLinks(name);\n        if (links.resolvedSymbol) {\n          return links.resolvedSymbol;\n        }\n        if (name.kind === 212 /* PropertyAccessExpression */) {\n          checkPropertyAccessExpression(name, 0 /* Normal */);\n          if (!links.resolvedSymbol) {\n            links.resolvedSymbol = getApplicableIndexSymbol(checkExpressionCached(name.expression), getLiteralTypeFromPropertyName(name.name));\n          }\n        } else {\n          checkQualifiedName(name, 0 /* Normal */);\n        }\n        if (!links.resolvedSymbol && isJSDoc2 && isQualifiedName(name)) {\n          return resolveJSDocMemberName(name);\n        }\n        return links.resolvedSymbol;\n      } else if (isJSDocMemberName(name)) {\n        return resolveJSDocMemberName(name);\n      }\n    } else if (isEntityName(name) && isTypeReferenceIdentifier(name)) {\n      const meaning = name.parent.kind === 184 /* TypeReference */ ? 788968 /* Type */ : 1920 /* Namespace */;\n      const symbol = resolveEntityName(\n        name,\n        meaning,\n        /*ignoreErrors*/\n        true,\n        /*dontResolveAlias*/\n        true\n      );\n      return symbol && symbol !== unknownSymbol ? symbol : getUnresolvedSymbolForEntityName(name);\n    }\n    if (name.parent.kind === 183 /* TypePredicate */) {\n      return resolveEntityName(\n        name,\n        /*meaning*/\n        1 /* FunctionScopedVariable */,\n        /*ignoreErrors*/\n        true\n      );\n    }\n    return void 0;\n  }\n  function getApplicableIndexSymbol(type, keyType) {\n    const infos = getApplicableIndexInfos(type, keyType);\n    if (infos.length && type.members) {\n      const symbol = getIndexSymbolFromSymbolTable(resolveStructuredTypeMembers(type).members);\n      if (infos === getIndexInfosOfType(type)) {\n        return symbol;\n      } else if (symbol) {\n        const symbolLinks2 = getSymbolLinks(symbol);\n        const declarationList = mapDefined(infos, (i) => i.declaration);\n        const nodeListId = map(declarationList, getNodeId).join(\",\");\n        if (!symbolLinks2.filteredIndexSymbolCache) {\n          symbolLinks2.filteredIndexSymbolCache = /* @__PURE__ */ new Map();\n        }\n        if (symbolLinks2.filteredIndexSymbolCache.has(nodeListId)) {\n          return symbolLinks2.filteredIndexSymbolCache.get(nodeListId);\n        } else {\n          const copy = createSymbol(131072 /* Signature */, \"__index\" /* Index */);\n          copy.declarations = mapDefined(infos, (i) => i.declaration);\n          copy.parent = type.aliasSymbol ? type.aliasSymbol : type.symbol ? type.symbol : getSymbolAtLocation(copy.declarations[0].parent);\n          symbolLinks2.filteredIndexSymbolCache.set(nodeListId, copy);\n          return copy;\n        }\n      }\n    }\n  }\n  function resolveJSDocMemberName(name, ignoreErrors, container) {\n    if (isEntityName(name)) {\n      const meaning = 788968 /* Type */ | 1920 /* Namespace */ | 111551 /* Value */;\n      let symbol = resolveEntityName(\n        name,\n        meaning,\n        ignoreErrors,\n        /*dontResolveAlias*/\n        true,\n        getHostSignatureFromJSDoc(name)\n      );\n      if (!symbol && isIdentifier(name) && container) {\n        symbol = getMergedSymbol(getSymbol2(getExportsOfSymbol(container), name.escapedText, meaning));\n      }\n      if (symbol) {\n        return symbol;\n      }\n    }\n    const left = isIdentifier(name) ? container : resolveJSDocMemberName(name.left, ignoreErrors, container);\n    const right = isIdentifier(name) ? name.escapedText : name.right.escapedText;\n    if (left) {\n      const proto = left.flags & 111551 /* Value */ && getPropertyOfType(getTypeOfSymbol(left), \"prototype\");\n      const t = proto ? getTypeOfSymbol(proto) : getDeclaredTypeOfSymbol(left);\n      return getPropertyOfType(t, right);\n    }\n  }\n  function getSymbolAtLocation(node, ignoreErrors) {\n    if (isSourceFile(node)) {\n      return isExternalModule(node) ? getMergedSymbol(node.symbol) : void 0;\n    }\n    const { parent: parent2 } = node;\n    const grandParent = parent2.parent;\n    if (node.flags & 67108864 /* InWithStatement */) {\n      return void 0;\n    }\n    if (isDeclarationNameOrImportPropertyName(node)) {\n      const parentSymbol = getSymbolOfDeclaration(parent2);\n      return isImportOrExportSpecifier(node.parent) && node.parent.propertyName === node ? getImmediateAliasedSymbol(parentSymbol) : parentSymbol;\n    } else if (isLiteralComputedPropertyDeclarationName(node)) {\n      return getSymbolOfDeclaration(parent2.parent);\n    }\n    if (node.kind === 80 /* Identifier */) {\n      if (isInRightSideOfImportOrExportAssignment(node)) {\n        return getSymbolOfNameOrPropertyAccessExpression(node);\n      } else if (parent2.kind === 209 /* BindingElement */ && grandParent.kind === 207 /* ObjectBindingPattern */ && node === parent2.propertyName) {\n        const typeOfPattern = getTypeOfNode(grandParent);\n        const propertyDeclaration = getPropertyOfType(typeOfPattern, node.escapedText);\n        if (propertyDeclaration) {\n          return propertyDeclaration;\n        }\n      } else if (isMetaProperty(parent2) && parent2.name === node) {\n        if (parent2.keywordToken === 105 /* NewKeyword */ && idText(node) === \"target\") {\n          return checkNewTargetMetaProperty(parent2).symbol;\n        }\n        if (parent2.keywordToken === 102 /* ImportKeyword */ && idText(node) === \"meta\") {\n          return getGlobalImportMetaExpressionType().members.get(\"meta\");\n        }\n        return void 0;\n      }\n    }\n    switch (node.kind) {\n      case 80 /* Identifier */:\n      case 81 /* PrivateIdentifier */:\n      case 212 /* PropertyAccessExpression */:\n      case 167 /* QualifiedName */:\n        if (!isThisInTypeQuery(node)) {\n          return getSymbolOfNameOrPropertyAccessExpression(node);\n        }\n      // falls through\n      case 110 /* ThisKeyword */:\n        const container = getThisContainer(\n          node,\n          /*includeArrowFunctions*/\n          false,\n          /*includeClassComputedPropertyName*/\n          false\n        );\n        if (isFunctionLike(container)) {\n          const sig = getSignatureFromDeclaration(container);\n          if (sig.thisParameter) {\n            return sig.thisParameter;\n          }\n        }\n        if (isInExpressionContext(node)) {\n          return checkExpression(node).symbol;\n        }\n      // falls through\n      case 198 /* ThisType */:\n        return getTypeFromThisTypeNode(node).symbol;\n      case 108 /* SuperKeyword */:\n        return checkExpression(node).symbol;\n      case 137 /* ConstructorKeyword */:\n        const constructorDeclaration = node.parent;\n        if (constructorDeclaration && constructorDeclaration.kind === 177 /* Constructor */) {\n          return constructorDeclaration.parent.symbol;\n        }\n        return void 0;\n      case 11 /* StringLiteral */:\n      case 15 /* NoSubstitutionTemplateLiteral */:\n        if (isExternalModuleImportEqualsDeclaration(node.parent.parent) && getExternalModuleImportEqualsDeclarationExpression(node.parent.parent) === node || (node.parent.kind === 273 /* ImportDeclaration */ || node.parent.kind === 279 /* ExportDeclaration */) && node.parent.moduleSpecifier === node || isInJSFile(node) && isJSDocImportTag(node.parent) && node.parent.moduleSpecifier === node || (isInJSFile(node) && isRequireCall(\n          node.parent,\n          /*requireStringLiteralLikeArgument*/\n          false\n        ) || isImportCall(node.parent)) || isLiteralTypeNode(node.parent) && isLiteralImportTypeNode(node.parent.parent) && node.parent.parent.argument === node.parent) {\n          return resolveExternalModuleName(node, node, ignoreErrors);\n        }\n        if (isCallExpression(parent2) && isBindableObjectDefinePropertyCall(parent2) && parent2.arguments[1] === node) {\n          return getSymbolOfDeclaration(parent2);\n        }\n      // falls through\n      case 9 /* NumericLiteral */:\n        const objectType = isElementAccessExpression(parent2) ? parent2.argumentExpression === node ? getTypeOfExpression(parent2.expression) : void 0 : isLiteralTypeNode(parent2) && isIndexedAccessTypeNode(grandParent) ? getTypeFromTypeNode(grandParent.objectType) : void 0;\n        return objectType && getPropertyOfType(objectType, escapeLeadingUnderscores(node.text));\n      case 90 /* DefaultKeyword */:\n      case 100 /* FunctionKeyword */:\n      case 39 /* EqualsGreaterThanToken */:\n      case 86 /* ClassKeyword */:\n        return getSymbolOfNode(node.parent);\n      case 206 /* ImportType */:\n        return isLiteralImportTypeNode(node) ? getSymbolAtLocation(node.argument.literal, ignoreErrors) : void 0;\n      case 95 /* ExportKeyword */:\n        return isExportAssignment(node.parent) ? Debug.checkDefined(node.parent.symbol) : void 0;\n      case 102 /* ImportKeyword */:\n        if (isMetaProperty(node.parent) && node.parent.name.escapedText === \"defer\") {\n          return void 0;\n        }\n      // falls through\n      case 105 /* NewKeyword */:\n        return isMetaProperty(node.parent) ? checkMetaPropertyKeyword(node.parent).symbol : void 0;\n      case 104 /* InstanceOfKeyword */:\n        if (isBinaryExpression(node.parent)) {\n          const type = getTypeOfExpression(node.parent.right);\n          const hasInstanceMethodType = getSymbolHasInstanceMethodOfObjectType(type);\n          return (hasInstanceMethodType == null ? void 0 : hasInstanceMethodType.symbol) ?? type.symbol;\n        }\n        return void 0;\n      case 237 /* MetaProperty */:\n        return checkExpression(node).symbol;\n      case 296 /* JsxNamespacedName */:\n        if (isJSXTagName(node) && isJsxIntrinsicTagName(node)) {\n          const symbol = getIntrinsicTagSymbol(node.parent);\n          return symbol === unknownSymbol ? void 0 : symbol;\n        }\n      // falls through\n      default:\n        return void 0;\n    }\n  }\n  function getIndexInfosAtLocation(node) {\n    if (isIdentifier(node) && isPropertyAccessExpression(node.parent) && node.parent.name === node) {\n      const keyType = getLiteralTypeFromPropertyName(node);\n      const objectType = getTypeOfExpression(node.parent.expression);\n      const objectTypes = objectType.flags & 1048576 /* Union */ ? objectType.types : [objectType];\n      return flatMap(objectTypes, (t) => filter(getIndexInfosOfType(t), (info) => isApplicableIndexType(keyType, info.keyType)));\n    }\n    return void 0;\n  }\n  function getShorthandAssignmentValueSymbol(location) {\n    if (location && location.kind === 305 /* ShorthandPropertyAssignment */) {\n      return resolveEntityName(\n        location.name,\n        111551 /* Value */ | 2097152 /* Alias */,\n        /*ignoreErrors*/\n        true\n      );\n    }\n    return void 0;\n  }\n  function getExportSpecifierLocalTargetSymbol(node) {\n    if (isExportSpecifier(node)) {\n      const name = node.propertyName || node.name;\n      return node.parent.parent.moduleSpecifier ? getExternalModuleMember(node.parent.parent, node) : name.kind === 11 /* StringLiteral */ ? void 0 : (\n        // Skip for invalid syntax like this: export { \"x\" }\n        resolveEntityName(\n          name,\n          111551 /* Value */ | 788968 /* Type */ | 1920 /* Namespace */ | 2097152 /* Alias */,\n          /*ignoreErrors*/\n          true\n        )\n      );\n    } else {\n      return resolveEntityName(\n        node,\n        111551 /* Value */ | 788968 /* Type */ | 1920 /* Namespace */ | 2097152 /* Alias */,\n        /*ignoreErrors*/\n        true\n      );\n    }\n  }\n  function getTypeOfNode(node) {\n    if (isSourceFile(node) && !isExternalModule(node)) {\n      return errorType;\n    }\n    if (node.flags & 67108864 /* InWithStatement */) {\n      return errorType;\n    }\n    const classDecl = tryGetClassImplementingOrExtendingExpressionWithTypeArguments(node);\n    const classType = classDecl && getDeclaredTypeOfClassOrInterface(getSymbolOfDeclaration(classDecl.class));\n    if (isPartOfTypeNode(node)) {\n      const typeFromTypeNode = getTypeFromTypeNode(node);\n      return classType ? getTypeWithThisArgument(typeFromTypeNode, classType.thisType) : typeFromTypeNode;\n    }\n    if (isExpressionNode(node)) {\n      return getRegularTypeOfExpression(node);\n    }\n    if (classType && !classDecl.isImplements) {\n      const baseType = firstOrUndefined(getBaseTypes(classType));\n      return baseType ? getTypeWithThisArgument(baseType, classType.thisType) : errorType;\n    }\n    if (isTypeDeclaration(node)) {\n      const symbol = getSymbolOfDeclaration(node);\n      return getDeclaredTypeOfSymbol(symbol);\n    }\n    if (isTypeDeclarationName(node)) {\n      const symbol = getSymbolAtLocation(node);\n      return symbol ? getDeclaredTypeOfSymbol(symbol) : errorType;\n    }\n    if (isBindingElement(node)) {\n      return getTypeForVariableLikeDeclaration(\n        node,\n        /*includeOptionality*/\n        true,\n        0 /* Normal */\n      ) || errorType;\n    }\n    if (isDeclaration(node)) {\n      const symbol = getSymbolOfDeclaration(node);\n      return symbol ? getTypeOfSymbol(symbol) : errorType;\n    }\n    if (isDeclarationNameOrImportPropertyName(node)) {\n      const symbol = getSymbolAtLocation(node);\n      if (symbol) {\n        return getTypeOfSymbol(symbol);\n      }\n      return errorType;\n    }\n    if (isBindingPattern(node)) {\n      return getTypeForVariableLikeDeclaration(\n        node.parent,\n        /*includeOptionality*/\n        true,\n        0 /* Normal */\n      ) || errorType;\n    }\n    if (isInRightSideOfImportOrExportAssignment(node)) {\n      const symbol = getSymbolAtLocation(node);\n      if (symbol) {\n        const declaredType = getDeclaredTypeOfSymbol(symbol);\n        return !isErrorType(declaredType) ? declaredType : getTypeOfSymbol(symbol);\n      }\n    }\n    if (isMetaProperty(node.parent) && node.parent.keywordToken === node.kind) {\n      return checkMetaPropertyKeyword(node.parent);\n    }\n    if (isImportAttributes(node)) {\n      return getGlobalImportAttributesType(\n        /*reportErrors*/\n        false\n      );\n    }\n    return errorType;\n  }\n  function getTypeOfAssignmentPattern(expr) {\n    Debug.assert(expr.kind === 211 /* ObjectLiteralExpression */ || expr.kind === 210 /* ArrayLiteralExpression */);\n    if (expr.parent.kind === 251 /* ForOfStatement */) {\n      const iteratedType = checkRightHandSideOfForOf(expr.parent);\n      return checkDestructuringAssignment(expr, iteratedType || errorType);\n    }\n    if (expr.parent.kind === 227 /* BinaryExpression */) {\n      const iteratedType = getTypeOfExpression(expr.parent.right);\n      return checkDestructuringAssignment(expr, iteratedType || errorType);\n    }\n    if (expr.parent.kind === 304 /* PropertyAssignment */) {\n      const node2 = cast(expr.parent.parent, isObjectLiteralExpression);\n      const typeOfParentObjectLiteral = getTypeOfAssignmentPattern(node2) || errorType;\n      const propertyIndex = indexOfNode(node2.properties, expr.parent);\n      return checkObjectLiteralDestructuringPropertyAssignment(node2, typeOfParentObjectLiteral, propertyIndex);\n    }\n    const node = cast(expr.parent, isArrayLiteralExpression);\n    const typeOfArrayLiteral = getTypeOfAssignmentPattern(node) || errorType;\n    const elementType = checkIteratedTypeOrElementType(65 /* Destructuring */, typeOfArrayLiteral, undefinedType, expr.parent) || errorType;\n    return checkArrayLiteralDestructuringElementAssignment(node, typeOfArrayLiteral, node.elements.indexOf(expr), elementType);\n  }\n  function getPropertySymbolOfDestructuringAssignment(location) {\n    const typeOfObjectLiteral = getTypeOfAssignmentPattern(cast(location.parent.parent, isAssignmentPattern));\n    return typeOfObjectLiteral && getPropertyOfType(typeOfObjectLiteral, location.escapedText);\n  }\n  function getRegularTypeOfExpression(expr) {\n    if (isRightSideOfQualifiedNameOrPropertyAccess(expr)) {\n      expr = expr.parent;\n    }\n    return getRegularTypeOfLiteralType(getTypeOfExpression(expr));\n  }\n  function getParentTypeOfClassElement(node) {\n    const classSymbol = getSymbolOfNode(node.parent);\n    return isStatic(node) ? getTypeOfSymbol(classSymbol) : getDeclaredTypeOfSymbol(classSymbol);\n  }\n  function getClassElementPropertyKeyType(element) {\n    const name = element.name;\n    switch (name.kind) {\n      case 80 /* Identifier */:\n        return getStringLiteralType(idText(name));\n      case 9 /* NumericLiteral */:\n      case 11 /* StringLiteral */:\n        return getStringLiteralType(name.text);\n      case 168 /* ComputedPropertyName */:\n        const nameType = checkComputedPropertyName(name);\n        return isTypeAssignableToKind(nameType, 12288 /* ESSymbolLike */) ? nameType : stringType;\n      default:\n        return Debug.fail(\"Unsupported property name.\");\n    }\n  }\n  function getAugmentedPropertiesOfType(type) {\n    type = getApparentType(type);\n    const propsByName = createSymbolTable(getPropertiesOfType(type));\n    const functionType = getSignaturesOfType(type, 0 /* Call */).length ? globalCallableFunctionType : getSignaturesOfType(type, 1 /* Construct */).length ? globalNewableFunctionType : void 0;\n    if (functionType) {\n      forEach(getPropertiesOfType(functionType), (p) => {\n        if (!propsByName.has(p.escapedName)) {\n          propsByName.set(p.escapedName, p);\n        }\n      });\n    }\n    return getNamedMembers(propsByName);\n  }\n  function typeHasCallOrConstructSignatures(type) {\n    return getSignaturesOfType(type, 0 /* Call */).length !== 0 || getSignaturesOfType(type, 1 /* Construct */).length !== 0;\n  }\n  function getRootSymbols(symbol) {\n    const roots = getImmediateRootSymbols(symbol);\n    return roots ? flatMap(roots, getRootSymbols) : [symbol];\n  }\n  function getImmediateRootSymbols(symbol) {\n    if (getCheckFlags(symbol) & 6 /* Synthetic */) {\n      return mapDefined(getSymbolLinks(symbol).containingType.types, (type) => getPropertyOfType(type, symbol.escapedName));\n    } else if (symbol.flags & 33554432 /* Transient */) {\n      const { links: { leftSpread, rightSpread, syntheticOrigin } } = symbol;\n      return leftSpread ? [leftSpread, rightSpread] : syntheticOrigin ? [syntheticOrigin] : singleElementArray(tryGetTarget(symbol));\n    }\n    return void 0;\n  }\n  function tryGetTarget(symbol) {\n    let target;\n    let next = symbol;\n    while (next = getSymbolLinks(next).target) {\n      target = next;\n    }\n    return target;\n  }\n  function isArgumentsLocalBinding(nodeIn) {\n    if (isGeneratedIdentifier(nodeIn)) return false;\n    const node = getParseTreeNode(nodeIn, isIdentifier);\n    if (!node) return false;\n    const parent2 = node.parent;\n    if (!parent2) return false;\n    const isPropertyName2 = (isPropertyAccessExpression(parent2) || isPropertyAssignment(parent2)) && parent2.name === node;\n    return !isPropertyName2 && getReferencedValueSymbol(node) === argumentsSymbol;\n  }\n  function isNameOfModuleOrEnumDeclaration(node) {\n    return isModuleOrEnumDeclaration(node.parent) && node === node.parent.name;\n  }\n  function getReferencedExportContainer(nodeIn, prefixLocals) {\n    var _a;\n    const node = getParseTreeNode(nodeIn, isIdentifier);\n    if (node) {\n      let symbol = getReferencedValueSymbol(\n        node,\n        /*startInDeclarationContainer*/\n        isNameOfModuleOrEnumDeclaration(node)\n      );\n      if (symbol) {\n        if (symbol.flags & 1048576 /* ExportValue */) {\n          const exportSymbol = getMergedSymbol(symbol.exportSymbol);\n          if (!prefixLocals && exportSymbol.flags & 944 /* ExportHasLocal */ && !(exportSymbol.flags & 3 /* Variable */)) {\n            return void 0;\n          }\n          symbol = exportSymbol;\n        }\n        const parentSymbol = getParentOfSymbol(symbol);\n        if (parentSymbol) {\n          if (parentSymbol.flags & 512 /* ValueModule */ && ((_a = parentSymbol.valueDeclaration) == null ? void 0 : _a.kind) === 308 /* SourceFile */) {\n            const symbolFile = parentSymbol.valueDeclaration;\n            const referenceFile = getSourceFileOfNode(node);\n            const symbolIsUmdExport = symbolFile !== referenceFile;\n            return symbolIsUmdExport ? void 0 : symbolFile;\n          }\n          return findAncestor(node.parent, (n) => isModuleOrEnumDeclaration(n) && getSymbolOfDeclaration(n) === parentSymbol);\n        }\n      }\n    }\n  }\n  function getReferencedImportDeclaration(nodeIn) {\n    const specifier = getIdentifierGeneratedImportReference(nodeIn);\n    if (specifier) {\n      return specifier;\n    }\n    const node = getParseTreeNode(nodeIn, isIdentifier);\n    if (node) {\n      const symbol = getReferencedValueOrAliasSymbol(node);\n      if (isNonLocalAlias(\n        symbol,\n        /*excludes*/\n        111551 /* Value */\n      ) && !getTypeOnlyAliasDeclaration(symbol, 111551 /* Value */)) {\n        return getDeclarationOfAliasSymbol(symbol);\n      }\n    }\n    return void 0;\n  }\n  function isSymbolOfDestructuredElementOfCatchBinding(symbol) {\n    return symbol.valueDeclaration && isBindingElement(symbol.valueDeclaration) && walkUpBindingElementsAndPatterns(symbol.valueDeclaration).parent.kind === 300 /* CatchClause */;\n  }\n  function isSymbolOfDeclarationWithCollidingName(symbol) {\n    if (symbol.flags & 418 /* BlockScoped */ && symbol.valueDeclaration && !isSourceFile(symbol.valueDeclaration)) {\n      const links = getSymbolLinks(symbol);\n      if (links.isDeclarationWithCollidingName === void 0) {\n        const container = getEnclosingBlockScopeContainer(symbol.valueDeclaration);\n        if (isStatementWithLocals(container) || isSymbolOfDestructuredElementOfCatchBinding(symbol)) {\n          if (resolveName(\n            container.parent,\n            symbol.escapedName,\n            111551 /* Value */,\n            /*nameNotFoundMessage*/\n            void 0,\n            /*isUse*/\n            false\n          )) {\n            links.isDeclarationWithCollidingName = true;\n          } else if (hasNodeCheckFlag(symbol.valueDeclaration, 16384 /* CapturedBlockScopedBinding */)) {\n            const isDeclaredInLoop = hasNodeCheckFlag(symbol.valueDeclaration, 32768 /* BlockScopedBindingInLoop */);\n            const inLoopInitializer = isIterationStatement(\n              container,\n              /*lookInLabeledStatements*/\n              false\n            );\n            const inLoopBodyBlock = container.kind === 242 /* Block */ && isIterationStatement(\n              container.parent,\n              /*lookInLabeledStatements*/\n              false\n            );\n            links.isDeclarationWithCollidingName = !isBlockScopedContainerTopLevel(container) && (!isDeclaredInLoop || !inLoopInitializer && !inLoopBodyBlock);\n          } else {\n            links.isDeclarationWithCollidingName = false;\n          }\n        }\n      }\n      return links.isDeclarationWithCollidingName;\n    }\n    return false;\n  }\n  function getReferencedDeclarationWithCollidingName(nodeIn) {\n    if (!isGeneratedIdentifier(nodeIn)) {\n      const node = getParseTreeNode(nodeIn, isIdentifier);\n      if (node) {\n        const symbol = getReferencedValueSymbol(node);\n        if (symbol && isSymbolOfDeclarationWithCollidingName(symbol)) {\n          return symbol.valueDeclaration;\n        }\n      }\n    }\n    return void 0;\n  }\n  function isDeclarationWithCollidingName(nodeIn) {\n    const node = getParseTreeNode(nodeIn, isDeclaration);\n    if (node) {\n      const symbol = getSymbolOfDeclaration(node);\n      if (symbol) {\n        return isSymbolOfDeclarationWithCollidingName(symbol);\n      }\n    }\n    return false;\n  }\n  function isValueAliasDeclaration(node) {\n    Debug.assert(canCollectSymbolAliasAccessabilityData);\n    switch (node.kind) {\n      case 272 /* ImportEqualsDeclaration */:\n        return isAliasResolvedToValue(getSymbolOfDeclaration(node));\n      case 274 /* ImportClause */:\n      case 275 /* NamespaceImport */:\n      case 277 /* ImportSpecifier */:\n      case 282 /* ExportSpecifier */:\n        const symbol = getSymbolOfDeclaration(node);\n        return !!symbol && isAliasResolvedToValue(\n          symbol,\n          /*excludeTypeOnlyValues*/\n          true\n        );\n      case 279 /* ExportDeclaration */:\n        const exportClause = node.exportClause;\n        return !!exportClause && (isNamespaceExport(exportClause) || some(exportClause.elements, isValueAliasDeclaration));\n      case 278 /* ExportAssignment */:\n        return node.expression && node.expression.kind === 80 /* Identifier */ ? isAliasResolvedToValue(\n          getSymbolOfDeclaration(node),\n          /*excludeTypeOnlyValues*/\n          true\n        ) : true;\n    }\n    return false;\n  }\n  function isTopLevelValueImportEqualsWithEntityName(nodeIn) {\n    const node = getParseTreeNode(nodeIn, isImportEqualsDeclaration);\n    if (node === void 0 || node.parent.kind !== 308 /* SourceFile */ || !isInternalModuleImportEqualsDeclaration(node)) {\n      return false;\n    }\n    const isValue = isAliasResolvedToValue(getSymbolOfDeclaration(node));\n    return isValue && node.moduleReference && !nodeIsMissing(node.moduleReference);\n  }\n  function isAliasResolvedToValue(symbol, excludeTypeOnlyValues) {\n    if (!symbol) {\n      return false;\n    }\n    const container = getSourceFileOfNode(symbol.valueDeclaration);\n    const fileSymbol = container && getSymbolOfDeclaration(container);\n    void resolveExternalModuleSymbol(fileSymbol);\n    const target = getExportSymbolOfValueSymbolIfExported(resolveAlias(symbol));\n    if (target === unknownSymbol) {\n      return !excludeTypeOnlyValues || !getTypeOnlyAliasDeclaration(symbol);\n    }\n    return !!(getSymbolFlags(\n      symbol,\n      excludeTypeOnlyValues,\n      /*excludeLocalMeanings*/\n      true\n    ) & 111551 /* Value */) && (shouldPreserveConstEnums(compilerOptions) || !isConstEnumOrConstEnumOnlyModule(target));\n  }\n  function isConstEnumOrConstEnumOnlyModule(s) {\n    return isConstEnumSymbol(s) || !!s.constEnumOnlyModule;\n  }\n  function isReferencedAliasDeclaration(node, checkChildren) {\n    Debug.assert(canCollectSymbolAliasAccessabilityData);\n    if (isAliasSymbolDeclaration(node)) {\n      const symbol = getSymbolOfDeclaration(node);\n      const links = symbol && getSymbolLinks(symbol);\n      if (links == null ? void 0 : links.referenced) {\n        return true;\n      }\n      const target = getSymbolLinks(symbol).aliasTarget;\n      if (target && getEffectiveModifierFlags(node) & 32 /* Export */ && getSymbolFlags(target) & 111551 /* Value */ && (shouldPreserveConstEnums(compilerOptions) || !isConstEnumOrConstEnumOnlyModule(target))) {\n        return true;\n      }\n    }\n    if (checkChildren) {\n      return !!forEachChild(node, (node2) => isReferencedAliasDeclaration(node2, checkChildren));\n    }\n    return false;\n  }\n  function isImplementationOfOverload(node) {\n    if (nodeIsPresent(node.body)) {\n      if (isGetAccessor(node) || isSetAccessor(node)) return false;\n      const symbol = getSymbolOfDeclaration(node);\n      const signaturesOfSymbol = getSignaturesOfSymbol(symbol);\n      return signaturesOfSymbol.length > 1 || // If there is single signature for the symbol, it is overload if that signature isn't coming from the node\n      // e.g.: function foo(a: string): string;\n      //       function foo(a: any) { // This is implementation of the overloads\n      //           return a;\n      //       }\n      signaturesOfSymbol.length === 1 && signaturesOfSymbol[0].declaration !== node;\n    }\n    return false;\n  }\n  function declaredParameterTypeContainsUndefined(parameter) {\n    const typeNode = getNonlocalEffectiveTypeAnnotationNode(parameter);\n    if (!typeNode) return false;\n    const type = getTypeFromTypeNode(typeNode);\n    return isErrorType(type) || containsUndefinedType(type);\n  }\n  function requiresAddingImplicitUndefined(parameter, enclosingDeclaration) {\n    return (isRequiredInitializedParameter(parameter, enclosingDeclaration) || isOptionalUninitializedParameterProperty(parameter)) && !declaredParameterTypeContainsUndefined(parameter);\n  }\n  function isRequiredInitializedParameter(parameter, enclosingDeclaration) {\n    if (!strictNullChecks || isOptionalParameter(parameter) || isJSDocParameterTag(parameter) || !parameter.initializer) {\n      return false;\n    }\n    if (hasSyntacticModifier(parameter, 31 /* ParameterPropertyModifier */)) {\n      return !!enclosingDeclaration && isFunctionLikeDeclaration(enclosingDeclaration);\n    }\n    return true;\n  }\n  function isOptionalUninitializedParameterProperty(parameter) {\n    return strictNullChecks && isOptionalParameter(parameter) && (isJSDocParameterTag(parameter) || !parameter.initializer) && hasSyntacticModifier(parameter, 31 /* ParameterPropertyModifier */);\n  }\n  function isExpandoFunctionDeclaration(node) {\n    const declaration = getParseTreeNode(node, (n) => isFunctionDeclaration(n) || isVariableDeclaration(n));\n    if (!declaration) {\n      return false;\n    }\n    let symbol;\n    if (isVariableDeclaration(declaration)) {\n      if (declaration.type || !isInJSFile(declaration) && !isVarConstLike2(declaration)) {\n        return false;\n      }\n      const initializer = getDeclaredExpandoInitializer(declaration);\n      if (!initializer || !canHaveSymbol(initializer)) {\n        return false;\n      }\n      symbol = getSymbolOfDeclaration(initializer);\n    } else {\n      symbol = getSymbolOfDeclaration(declaration);\n    }\n    if (!symbol || !(symbol.flags & 16 /* Function */ | 3 /* Variable */)) {\n      return false;\n    }\n    return !!forEachEntry(getExportsOfSymbol(symbol), (p) => p.flags & 111551 /* Value */ && isExpandoPropertyDeclaration(p.valueDeclaration));\n  }\n  function getPropertiesOfContainerFunction(node) {\n    const declaration = getParseTreeNode(node, isFunctionDeclaration);\n    if (!declaration) {\n      return emptyArray;\n    }\n    const symbol = getSymbolOfDeclaration(declaration);\n    return symbol && getPropertiesOfType(getTypeOfSymbol(symbol)) || emptyArray;\n  }\n  function getNodeCheckFlags(node) {\n    var _a;\n    const nodeId = node.id || 0;\n    if (nodeId < 0 || nodeId >= nodeLinks.length) return 0;\n    return ((_a = nodeLinks[nodeId]) == null ? void 0 : _a.flags) || 0;\n  }\n  function hasNodeCheckFlag(node, flag) {\n    calculateNodeCheckFlagWorker(node, flag);\n    return !!(getNodeCheckFlags(node) & flag);\n  }\n  function calculateNodeCheckFlagWorker(node, flag) {\n    if (!compilerOptions.noCheck && canIncludeBindAndCheckDiagnostics(getSourceFileOfNode(node), compilerOptions)) {\n      return;\n    }\n    const links = getNodeLinks(node);\n    if (links.calculatedFlags & flag) {\n      return;\n    }\n    switch (flag) {\n      case 16 /* SuperInstance */:\n      case 32 /* SuperStatic */:\n        return checkSingleSuperExpression(node);\n      case 128 /* MethodWithSuperPropertyAccessInAsync */:\n      case 256 /* MethodWithSuperPropertyAssignmentInAsync */:\n      case 2097152 /* ContainsSuperPropertyInStaticInitializer */:\n        return checkChildSuperExpressions(node);\n      case 512 /* CaptureArguments */:\n      case 8192 /* ContainsCapturedBlockScopeBinding */:\n      case 65536 /* NeedsLoopOutParameter */:\n      case 262144 /* ContainsConstructorReference */:\n        return checkChildIdentifiers(node);\n      case 536870912 /* ConstructorReference */:\n        return checkSingleIdentifier(node);\n      case 4096 /* LoopWithCapturedBlockScopedBinding */:\n      case 32768 /* BlockScopedBindingInLoop */:\n      case 16384 /* CapturedBlockScopedBinding */:\n        return checkContainingBlockScopeBindingUses(node);\n      default:\n        return Debug.assertNever(flag, `Unhandled node check flag calculation: ${Debug.formatNodeCheckFlags(flag)}`);\n    }\n    function forEachNodeRecursively(root, cb) {\n      const rootResult = cb(root, root.parent);\n      if (rootResult === \"skip\") return void 0;\n      if (rootResult) return rootResult;\n      return forEachChildRecursively(root, cb);\n    }\n    function checkSuperExpressions(node2) {\n      const links2 = getNodeLinks(node2);\n      if (links2.calculatedFlags & flag) return \"skip\";\n      links2.calculatedFlags |= 128 /* MethodWithSuperPropertyAccessInAsync */ | 256 /* MethodWithSuperPropertyAssignmentInAsync */ | 2097152 /* ContainsSuperPropertyInStaticInitializer */;\n      checkSingleSuperExpression(node2);\n      return void 0;\n    }\n    function checkChildSuperExpressions(node2) {\n      forEachNodeRecursively(node2, checkSuperExpressions);\n    }\n    function checkSingleSuperExpression(node2) {\n      const nodeLinks2 = getNodeLinks(node2);\n      nodeLinks2.calculatedFlags |= 16 /* SuperInstance */ | 32 /* SuperStatic */;\n      if (node2.kind === 108 /* SuperKeyword */) {\n        checkSuperExpression(node2);\n      }\n    }\n    function checkIdentifiers(node2) {\n      const links2 = getNodeLinks(node2);\n      if (links2.calculatedFlags & flag) return \"skip\";\n      links2.calculatedFlags |= 512 /* CaptureArguments */ | 8192 /* ContainsCapturedBlockScopeBinding */ | 65536 /* NeedsLoopOutParameter */ | 262144 /* ContainsConstructorReference */;\n      checkSingleIdentifier(node2);\n      return void 0;\n    }\n    function checkChildIdentifiers(node2) {\n      forEachNodeRecursively(node2, checkIdentifiers);\n    }\n    function isExpressionNodeOrShorthandPropertyAssignmentName(node2) {\n      return isExpressionNode(node2) || isShorthandPropertyAssignment(node2.parent) && (node2.parent.objectAssignmentInitializer ?? node2.parent.name) === node2;\n    }\n    function checkSingleIdentifier(node2) {\n      const nodeLinks2 = getNodeLinks(node2);\n      nodeLinks2.calculatedFlags |= 536870912 /* ConstructorReference */;\n      if (isIdentifier(node2)) {\n        nodeLinks2.calculatedFlags |= 32768 /* BlockScopedBindingInLoop */ | 16384 /* CapturedBlockScopedBinding */;\n        if (isExpressionNodeOrShorthandPropertyAssignmentName(node2) && !(isPropertyAccessExpression(node2.parent) && node2.parent.name === node2)) {\n          const s = getResolvedSymbol(node2);\n          if (s && s !== unknownSymbol) {\n            checkIdentifierCalculateNodeCheckFlags(node2, s);\n          }\n        }\n      }\n    }\n    function checkBlockScopeBindings(node2) {\n      const links2 = getNodeLinks(node2);\n      if (links2.calculatedFlags & flag) return \"skip\";\n      links2.calculatedFlags |= 4096 /* LoopWithCapturedBlockScopedBinding */ | 32768 /* BlockScopedBindingInLoop */ | 16384 /* CapturedBlockScopedBinding */;\n      checkSingleBlockScopeBinding(node2);\n      return void 0;\n    }\n    function checkContainingBlockScopeBindingUses(node2) {\n      const scope = getEnclosingBlockScopeContainer(isDeclarationName(node2) ? node2.parent : node2);\n      forEachNodeRecursively(scope, checkBlockScopeBindings);\n    }\n    function checkSingleBlockScopeBinding(node2) {\n      checkSingleIdentifier(node2);\n      if (isComputedPropertyName(node2)) {\n        checkComputedPropertyName(node2);\n      }\n      if (isPrivateIdentifier(node2) && isClassElement(node2.parent)) {\n        setNodeLinksForPrivateIdentifierScope(node2.parent);\n      }\n    }\n  }\n  function getEnumMemberValue(node) {\n    computeEnumMemberValues(node.parent);\n    return getNodeLinks(node).enumMemberValue ?? evaluatorResult(\n      /*value*/\n      void 0\n    );\n  }\n  function canHaveConstantValue(node) {\n    switch (node.kind) {\n      case 307 /* EnumMember */:\n      case 212 /* PropertyAccessExpression */:\n      case 213 /* ElementAccessExpression */:\n        return true;\n    }\n    return false;\n  }\n  function getConstantValue2(node) {\n    if (node.kind === 307 /* EnumMember */) {\n      return getEnumMemberValue(node).value;\n    }\n    if (!getNodeLinks(node).resolvedSymbol) {\n      void checkExpressionCached(node);\n    }\n    const symbol = getNodeLinks(node).resolvedSymbol || (isEntityNameExpression(node) ? resolveEntityName(\n      node,\n      111551 /* Value */,\n      /*ignoreErrors*/\n      true\n    ) : void 0);\n    if (symbol && symbol.flags & 8 /* EnumMember */) {\n      const member = symbol.valueDeclaration;\n      if (isEnumConst(member.parent)) {\n        return getEnumMemberValue(member).value;\n      }\n    }\n    return void 0;\n  }\n  function isFunctionType(type) {\n    return !!(type.flags & 524288 /* Object */) && getSignaturesOfType(type, 0 /* Call */).length > 0;\n  }\n  function getTypeReferenceSerializationKind(typeNameIn, location) {\n    var _a;\n    const typeName = getParseTreeNode(typeNameIn, isEntityName);\n    if (!typeName) return 0 /* Unknown */;\n    if (location) {\n      location = getParseTreeNode(location);\n      if (!location) return 0 /* Unknown */;\n    }\n    let isTypeOnly = false;\n    if (isQualifiedName(typeName)) {\n      const rootValueSymbol = resolveEntityName(\n        getFirstIdentifier(typeName),\n        111551 /* Value */,\n        /*ignoreErrors*/\n        true,\n        /*dontResolveAlias*/\n        true,\n        location\n      );\n      isTypeOnly = !!((_a = rootValueSymbol == null ? void 0 : rootValueSymbol.declarations) == null ? void 0 : _a.every(isTypeOnlyImportOrExportDeclaration));\n    }\n    const valueSymbol = resolveEntityName(\n      typeName,\n      111551 /* Value */,\n      /*ignoreErrors*/\n      true,\n      /*dontResolveAlias*/\n      true,\n      location\n    );\n    const resolvedValueSymbol = valueSymbol && valueSymbol.flags & 2097152 /* Alias */ ? resolveAlias(valueSymbol) : valueSymbol;\n    isTypeOnly || (isTypeOnly = !!(valueSymbol && getTypeOnlyAliasDeclaration(valueSymbol, 111551 /* Value */)));\n    const typeSymbol = resolveEntityName(\n      typeName,\n      788968 /* Type */,\n      /*ignoreErrors*/\n      true,\n      /*dontResolveAlias*/\n      true,\n      location\n    );\n    const resolvedTypeSymbol = typeSymbol && typeSymbol.flags & 2097152 /* Alias */ ? resolveAlias(typeSymbol) : typeSymbol;\n    if (!valueSymbol) {\n      isTypeOnly || (isTypeOnly = !!(typeSymbol && getTypeOnlyAliasDeclaration(typeSymbol, 788968 /* Type */)));\n    }\n    if (resolvedValueSymbol && resolvedValueSymbol === resolvedTypeSymbol) {\n      const globalPromiseSymbol = getGlobalPromiseConstructorSymbol(\n        /*reportErrors*/\n        false\n      );\n      if (globalPromiseSymbol && resolvedValueSymbol === globalPromiseSymbol) {\n        return 9 /* Promise */;\n      }\n      const constructorType = getTypeOfSymbol(resolvedValueSymbol);\n      if (constructorType && isConstructorType(constructorType)) {\n        return isTypeOnly ? 10 /* TypeWithCallSignature */ : 1 /* TypeWithConstructSignatureAndValue */;\n      }\n    }\n    if (!resolvedTypeSymbol) {\n      return isTypeOnly ? 11 /* ObjectType */ : 0 /* Unknown */;\n    }\n    const type = getDeclaredTypeOfSymbol(resolvedTypeSymbol);\n    if (isErrorType(type)) {\n      return isTypeOnly ? 11 /* ObjectType */ : 0 /* Unknown */;\n    } else if (type.flags & 3 /* AnyOrUnknown */) {\n      return 11 /* ObjectType */;\n    } else if (isTypeAssignableToKind(type, 16384 /* Void */ | 98304 /* Nullable */ | 131072 /* Never */)) {\n      return 2 /* VoidNullableOrNeverType */;\n    } else if (isTypeAssignableToKind(type, 528 /* BooleanLike */)) {\n      return 6 /* BooleanType */;\n    } else if (isTypeAssignableToKind(type, 296 /* NumberLike */)) {\n      return 3 /* NumberLikeType */;\n    } else if (isTypeAssignableToKind(type, 2112 /* BigIntLike */)) {\n      return 4 /* BigIntLikeType */;\n    } else if (isTypeAssignableToKind(type, 402653316 /* StringLike */)) {\n      return 5 /* StringLikeType */;\n    } else if (isTupleType(type)) {\n      return 7 /* ArrayLikeType */;\n    } else if (isTypeAssignableToKind(type, 12288 /* ESSymbolLike */)) {\n      return 8 /* ESSymbolType */;\n    } else if (isFunctionType(type)) {\n      return 10 /* TypeWithCallSignature */;\n    } else if (isArrayType(type)) {\n      return 7 /* ArrayLikeType */;\n    } else {\n      return 11 /* ObjectType */;\n    }\n  }\n  function createTypeOfDeclaration(declarationIn, enclosingDeclaration, flags, internalFlags, tracker) {\n    const declaration = getParseTreeNode(declarationIn, hasInferredType);\n    if (!declaration) {\n      return factory.createToken(133 /* AnyKeyword */);\n    }\n    const symbol = getSymbolOfDeclaration(declaration);\n    return nodeBuilder.serializeTypeForDeclaration(declaration, symbol, enclosingDeclaration, flags | 1024 /* MultilineObjectLiterals */, internalFlags, tracker);\n  }\n  function getAllAccessorDeclarationsForDeclaration(accessor) {\n    accessor = getParseTreeNode(accessor, isGetOrSetAccessorDeclaration);\n    const otherKind = accessor.kind === 179 /* SetAccessor */ ? 178 /* GetAccessor */ : 179 /* SetAccessor */;\n    const otherAccessor = getDeclarationOfKind(getSymbolOfDeclaration(accessor), otherKind);\n    const firstAccessor = otherAccessor && otherAccessor.pos < accessor.pos ? otherAccessor : accessor;\n    const secondAccessor = otherAccessor && otherAccessor.pos < accessor.pos ? accessor : otherAccessor;\n    const setAccessor = accessor.kind === 179 /* SetAccessor */ ? accessor : otherAccessor;\n    const getAccessor = accessor.kind === 178 /* GetAccessor */ ? accessor : otherAccessor;\n    return {\n      firstAccessor,\n      secondAccessor,\n      setAccessor,\n      getAccessor\n    };\n  }\n  function createReturnTypeOfSignatureDeclaration(signatureDeclarationIn, enclosingDeclaration, flags, internalFlags, tracker) {\n    const signatureDeclaration = getParseTreeNode(signatureDeclarationIn, isFunctionLike);\n    if (!signatureDeclaration) {\n      return factory.createToken(133 /* AnyKeyword */);\n    }\n    return nodeBuilder.serializeReturnTypeForSignature(signatureDeclaration, enclosingDeclaration, flags | 1024 /* MultilineObjectLiterals */, internalFlags, tracker);\n  }\n  function createTypeOfExpression(exprIn, enclosingDeclaration, flags, internalFlags, tracker) {\n    const expr = getParseTreeNode(exprIn, isExpression);\n    if (!expr) {\n      return factory.createToken(133 /* AnyKeyword */);\n    }\n    return nodeBuilder.serializeTypeForExpression(expr, enclosingDeclaration, flags | 1024 /* MultilineObjectLiterals */, internalFlags, tracker);\n  }\n  function hasGlobalName(name) {\n    return globals.has(escapeLeadingUnderscores(name));\n  }\n  function getReferencedValueSymbol(reference, startInDeclarationContainer) {\n    const resolvedSymbol = getNodeLinks(reference).resolvedSymbol;\n    if (resolvedSymbol) {\n      return resolvedSymbol;\n    }\n    let location = reference;\n    if (startInDeclarationContainer) {\n      const parent2 = reference.parent;\n      if (isDeclaration(parent2) && reference === parent2.name) {\n        location = getDeclarationContainer(parent2);\n      }\n    }\n    return resolveName(\n      location,\n      reference.escapedText,\n      111551 /* Value */ | 1048576 /* ExportValue */ | 2097152 /* Alias */,\n      /*nameNotFoundMessage*/\n      void 0,\n      /*isUse*/\n      true\n    );\n  }\n  function getReferencedValueOrAliasSymbol(reference) {\n    const resolvedSymbol = getNodeLinks(reference).resolvedSymbol;\n    if (resolvedSymbol && resolvedSymbol !== unknownSymbol) {\n      return resolvedSymbol;\n    }\n    return resolveName(\n      reference,\n      reference.escapedText,\n      111551 /* Value */ | 1048576 /* ExportValue */ | 2097152 /* Alias */,\n      /*nameNotFoundMessage*/\n      void 0,\n      /*isUse*/\n      true,\n      /*excludeGlobals*/\n      void 0\n    );\n  }\n  function getReferencedValueDeclaration(referenceIn) {\n    if (!isGeneratedIdentifier(referenceIn)) {\n      const reference = getParseTreeNode(referenceIn, isIdentifier);\n      if (reference) {\n        const symbol = getReferencedValueSymbol(reference);\n        if (symbol) {\n          return getExportSymbolOfValueSymbolIfExported(symbol).valueDeclaration;\n        }\n      }\n    }\n    return void 0;\n  }\n  function getReferencedValueDeclarations(referenceIn) {\n    if (!isGeneratedIdentifier(referenceIn)) {\n      const reference = getParseTreeNode(referenceIn, isIdentifier);\n      if (reference) {\n        const symbol = getReferencedValueSymbol(reference);\n        if (symbol) {\n          return filter(getExportSymbolOfValueSymbolIfExported(symbol).declarations, (declaration) => {\n            switch (declaration.kind) {\n              case 261 /* VariableDeclaration */:\n              case 170 /* Parameter */:\n              case 209 /* BindingElement */:\n              case 173 /* PropertyDeclaration */:\n              case 304 /* PropertyAssignment */:\n              case 305 /* ShorthandPropertyAssignment */:\n              case 307 /* EnumMember */:\n              case 211 /* ObjectLiteralExpression */:\n              case 263 /* FunctionDeclaration */:\n              case 219 /* FunctionExpression */:\n              case 220 /* ArrowFunction */:\n              case 264 /* ClassDeclaration */:\n              case 232 /* ClassExpression */:\n              case 267 /* EnumDeclaration */:\n              case 175 /* MethodDeclaration */:\n              case 178 /* GetAccessor */:\n              case 179 /* SetAccessor */:\n              case 268 /* ModuleDeclaration */:\n                return true;\n            }\n            return false;\n          });\n        }\n      }\n    }\n    return void 0;\n  }\n  function isLiteralConstDeclaration(node) {\n    if (isDeclarationReadonly(node) || isVariableDeclaration(node) && isVarConstLike2(node)) {\n      return isFreshLiteralType(getTypeOfSymbol(getSymbolOfDeclaration(node)));\n    }\n    return false;\n  }\n  function literalTypeToNode(type, enclosing, tracker) {\n    const enumResult = type.flags & 1056 /* EnumLike */ ? nodeBuilder.symbolToExpression(\n      type.symbol,\n      111551 /* Value */,\n      enclosing,\n      /*flags*/\n      void 0,\n      /*internalFlags*/\n      void 0,\n      tracker\n    ) : type === trueType ? factory.createTrue() : type === falseType && factory.createFalse();\n    if (enumResult) return enumResult;\n    const literalValue = type.value;\n    return typeof literalValue === \"object\" ? factory.createBigIntLiteral(literalValue) : typeof literalValue === \"string\" ? factory.createStringLiteral(literalValue) : literalValue < 0 ? factory.createPrefixUnaryExpression(41 /* MinusToken */, factory.createNumericLiteral(-literalValue)) : factory.createNumericLiteral(literalValue);\n  }\n  function createLiteralConstValue(node, tracker) {\n    const type = getTypeOfSymbol(getSymbolOfDeclaration(node));\n    return literalTypeToNode(type, node, tracker);\n  }\n  function getJsxFactoryEntity(location) {\n    return location ? (getJsxNamespace(location), getSourceFileOfNode(location).localJsxFactory || _jsxFactoryEntity) : _jsxFactoryEntity;\n  }\n  function getJsxFragmentFactoryEntity(location) {\n    if (location) {\n      const file = getSourceFileOfNode(location);\n      if (file) {\n        if (file.localJsxFragmentFactory) {\n          return file.localJsxFragmentFactory;\n        }\n        const jsxFragPragmas = file.pragmas.get(\"jsxfrag\");\n        const jsxFragPragma = isArray(jsxFragPragmas) ? jsxFragPragmas[0] : jsxFragPragmas;\n        if (jsxFragPragma) {\n          file.localJsxFragmentFactory = parseIsolatedEntityName(jsxFragPragma.arguments.factory, languageVersion);\n          return file.localJsxFragmentFactory;\n        }\n      }\n    }\n    if (compilerOptions.jsxFragmentFactory) {\n      return parseIsolatedEntityName(compilerOptions.jsxFragmentFactory, languageVersion);\n    }\n  }\n  function getNonlocalEffectiveTypeAnnotationNode(node) {\n    const direct = getEffectiveTypeAnnotationNode(node);\n    if (direct) {\n      return direct;\n    }\n    if (node.kind === 170 /* Parameter */ && node.parent.kind === 179 /* SetAccessor */) {\n      const other = getAllAccessorDeclarationsForDeclaration(node.parent).getAccessor;\n      if (other) {\n        return getEffectiveReturnTypeNode(other);\n      }\n    }\n    return void 0;\n  }\n  function createResolver() {\n    return {\n      getReferencedExportContainer,\n      getReferencedImportDeclaration,\n      getReferencedDeclarationWithCollidingName,\n      isDeclarationWithCollidingName,\n      isValueAliasDeclaration: (nodeIn) => {\n        const node = getParseTreeNode(nodeIn);\n        return node && canCollectSymbolAliasAccessabilityData ? isValueAliasDeclaration(node) : true;\n      },\n      hasGlobalName,\n      isReferencedAliasDeclaration: (nodeIn, checkChildren) => {\n        const node = getParseTreeNode(nodeIn);\n        return node && canCollectSymbolAliasAccessabilityData ? isReferencedAliasDeclaration(node, checkChildren) : true;\n      },\n      hasNodeCheckFlag: (nodeIn, flag) => {\n        const node = getParseTreeNode(nodeIn);\n        if (!node) return false;\n        return hasNodeCheckFlag(node, flag);\n      },\n      isTopLevelValueImportEqualsWithEntityName,\n      isDeclarationVisible,\n      isImplementationOfOverload,\n      requiresAddingImplicitUndefined,\n      isExpandoFunctionDeclaration,\n      getPropertiesOfContainerFunction,\n      createTypeOfDeclaration,\n      createReturnTypeOfSignatureDeclaration,\n      createTypeOfExpression,\n      createLiteralConstValue,\n      isSymbolAccessible,\n      isEntityNameVisible,\n      getConstantValue: (nodeIn) => {\n        const node = getParseTreeNode(nodeIn, canHaveConstantValue);\n        return node ? getConstantValue2(node) : void 0;\n      },\n      getEnumMemberValue: (nodeIn) => {\n        const node = getParseTreeNode(nodeIn, isEnumMember);\n        return node ? getEnumMemberValue(node) : void 0;\n      },\n      collectLinkedAliases,\n      markLinkedReferences: (nodeIn) => {\n        const node = getParseTreeNode(nodeIn);\n        return node && markLinkedReferences(node, 0 /* Unspecified */);\n      },\n      getReferencedValueDeclaration,\n      getReferencedValueDeclarations,\n      getTypeReferenceSerializationKind,\n      isOptionalParameter,\n      isArgumentsLocalBinding,\n      getExternalModuleFileFromDeclaration: (nodeIn) => {\n        const node = getParseTreeNode(nodeIn, hasPossibleExternalModuleReference);\n        return node && getExternalModuleFileFromDeclaration(node);\n      },\n      isLiteralConstDeclaration,\n      isLateBound: (nodeIn) => {\n        const node = getParseTreeNode(nodeIn, isDeclaration);\n        const symbol = node && getSymbolOfDeclaration(node);\n        return !!(symbol && getCheckFlags(symbol) & 4096 /* Late */);\n      },\n      getJsxFactoryEntity,\n      getJsxFragmentFactoryEntity,\n      isBindingCapturedByNode: (node, decl) => {\n        const parseNode = getParseTreeNode(node);\n        const parseDecl = getParseTreeNode(decl);\n        return !!parseNode && !!parseDecl && (isVariableDeclaration(parseDecl) || isBindingElement(parseDecl)) && isBindingCapturedByNode(parseNode, parseDecl);\n      },\n      getDeclarationStatementsForSourceFile: (node, flags, internalFlags, tracker) => {\n        const n = getParseTreeNode(node);\n        Debug.assert(n && n.kind === 308 /* SourceFile */, \"Non-sourcefile node passed into getDeclarationsForSourceFile\");\n        const sym = getSymbolOfDeclaration(node);\n        if (!sym) {\n          return !node.locals ? [] : nodeBuilder.symbolTableToDeclarationStatements(node.locals, node, flags, internalFlags, tracker);\n        }\n        resolveExternalModuleSymbol(sym);\n        return !sym.exports ? [] : nodeBuilder.symbolTableToDeclarationStatements(sym.exports, node, flags, internalFlags, tracker);\n      },\n      isImportRequiredByAugmentation,\n      isDefinitelyReferenceToGlobalSymbolObject,\n      createLateBoundIndexSignatures: (cls, enclosing, flags, internalFlags, tracker) => {\n        const sym = cls.symbol;\n        const staticInfos = getIndexInfosOfType(getTypeOfSymbol(sym));\n        const instanceIndexSymbol = getIndexSymbol(sym);\n        const instanceInfos = instanceIndexSymbol && getIndexInfosOfIndexSymbol(instanceIndexSymbol, arrayFrom(getMembersOfSymbol(sym).values()));\n        let result;\n        for (const infoList of [staticInfos, instanceInfos]) {\n          if (!length(infoList)) continue;\n          result || (result = []);\n          for (const info of infoList) {\n            if (info.declaration) continue;\n            if (info === anyBaseTypeIndexInfo) continue;\n            if (info.components) {\n              const allComponentComputedNamesSerializable = every(info.components, (e) => {\n                var _a;\n                return !!(e.name && isComputedPropertyName(e.name) && isEntityNameExpression(e.name.expression) && enclosing && ((_a = isEntityNameVisible(\n                  e.name.expression,\n                  enclosing,\n                  /*shouldComputeAliasToMakeVisible*/\n                  false\n                )) == null ? void 0 : _a.accessibility) === 0 /* Accessible */);\n              });\n              if (allComponentComputedNamesSerializable) {\n                const newComponents = filter(info.components, (e) => {\n                  return !hasLateBindableName(e);\n                });\n                result.push(...map(newComponents, (e) => {\n                  trackComputedName(e.name.expression);\n                  const mods = infoList === staticInfos ? [factory.createModifier(126 /* StaticKeyword */)] : void 0;\n                  return factory.createPropertyDeclaration(\n                    append(mods, info.isReadonly ? factory.createModifier(148 /* ReadonlyKeyword */) : void 0),\n                    e.name,\n                    (isPropertySignature(e) || isPropertyDeclaration(e) || isMethodSignature(e) || isMethodDeclaration(e) || isGetAccessor(e) || isSetAccessor(e)) && e.questionToken ? factory.createToken(58 /* QuestionToken */) : void 0,\n                    nodeBuilder.typeToTypeNode(getTypeOfSymbol(e.symbol), enclosing, flags, internalFlags, tracker),\n                    /*initializer*/\n                    void 0\n                  );\n                }));\n                continue;\n              }\n            }\n            const node = nodeBuilder.indexInfoToIndexSignatureDeclaration(info, enclosing, flags, internalFlags, tracker);\n            if (node && infoList === staticInfos) {\n              (node.modifiers || (node.modifiers = factory.createNodeArray())).unshift(factory.createModifier(126 /* StaticKeyword */));\n            }\n            if (node) {\n              result.push(node);\n            }\n          }\n        }\n        return result;\n        function trackComputedName(accessExpression) {\n          if (!tracker.trackSymbol) return;\n          const firstIdentifier = getFirstIdentifier(accessExpression);\n          const name = resolveName(\n            firstIdentifier,\n            firstIdentifier.escapedText,\n            111551 /* Value */ | 1048576 /* ExportValue */,\n            /*nameNotFoundMessage*/\n            void 0,\n            /*isUse*/\n            true\n          );\n          if (name) {\n            tracker.trackSymbol(name, enclosing, 111551 /* Value */);\n          }\n        }\n      },\n      symbolToDeclarations: (symbol, meaning, flags, maximumLength, verbosityLevel, out) => {\n        return nodeBuilder.symbolToDeclarations(symbol, meaning, flags, maximumLength, verbosityLevel, out);\n      }\n    };\n    function isImportRequiredByAugmentation(node) {\n      const file = getSourceFileOfNode(node);\n      if (!file.symbol) return false;\n      const importTarget = getExternalModuleFileFromDeclaration(node);\n      if (!importTarget) return false;\n      if (importTarget === file) return false;\n      const exports2 = getExportsOfModule(file.symbol);\n      for (const s of arrayFrom(exports2.values())) {\n        if (s.mergeId) {\n          const merged = getMergedSymbol(s);\n          if (merged.declarations) {\n            for (const d of merged.declarations) {\n              const declFile = getSourceFileOfNode(d);\n              if (declFile === importTarget) {\n                return true;\n              }\n            }\n          }\n        }\n      }\n      return false;\n    }\n  }\n  function getExternalModuleFileFromDeclaration(declaration) {\n    const specifier = declaration.kind === 268 /* ModuleDeclaration */ ? tryCast(declaration.name, isStringLiteral) : getExternalModuleName(declaration);\n    const moduleSymbol = resolveExternalModuleNameWorker(\n      specifier,\n      specifier,\n      /*moduleNotFoundError*/\n      void 0\n    );\n    if (!moduleSymbol) {\n      return void 0;\n    }\n    return getDeclarationOfKind(moduleSymbol, 308 /* SourceFile */);\n  }\n  function initializeTypeChecker() {\n    for (const file of host.getSourceFiles()) {\n      bindSourceFile(file, compilerOptions);\n    }\n    amalgamatedDuplicates = /* @__PURE__ */ new Map();\n    let augmentations;\n    for (const file of host.getSourceFiles()) {\n      if (file.redirectInfo) {\n        continue;\n      }\n      if (!isExternalOrCommonJsModule(file)) {\n        const fileGlobalThisSymbol = file.locals.get(\"globalThis\");\n        if (fileGlobalThisSymbol == null ? void 0 : fileGlobalThisSymbol.declarations) {\n          for (const declaration of fileGlobalThisSymbol.declarations) {\n            diagnostics.add(createDiagnosticForNode(declaration, Diagnostics.Declaration_name_conflicts_with_built_in_global_identifier_0, \"globalThis\"));\n          }\n        }\n        mergeSymbolTable(globals, file.locals);\n      }\n      if (file.jsGlobalAugmentations) {\n        mergeSymbolTable(globals, file.jsGlobalAugmentations);\n      }\n      if (file.patternAmbientModules && file.patternAmbientModules.length) {\n        patternAmbientModules = concatenate(patternAmbientModules, file.patternAmbientModules);\n      }\n      if (file.moduleAugmentations.length) {\n        (augmentations || (augmentations = [])).push(file.moduleAugmentations);\n      }\n      if (file.symbol && file.symbol.globalExports) {\n        const source = file.symbol.globalExports;\n        source.forEach((sourceSymbol, id) => {\n          if (!globals.has(id)) {\n            globals.set(id, sourceSymbol);\n          }\n        });\n      }\n    }\n    if (augmentations) {\n      for (const list of augmentations) {\n        for (const augmentation of list) {\n          if (!isGlobalScopeAugmentation(augmentation.parent)) continue;\n          mergeModuleAugmentation(augmentation);\n        }\n      }\n    }\n    addUndefinedToGlobalsOrErrorOnRedeclaration();\n    getSymbolLinks(undefinedSymbol).type = undefinedWideningType;\n    getSymbolLinks(argumentsSymbol).type = getGlobalType(\n      \"IArguments\",\n      /*arity*/\n      0,\n      /*reportErrors*/\n      true\n    );\n    getSymbolLinks(unknownSymbol).type = errorType;\n    getSymbolLinks(globalThisSymbol).type = createObjectType(16 /* Anonymous */, globalThisSymbol);\n    globalArrayType = getGlobalType(\n      \"Array\",\n      /*arity*/\n      1,\n      /*reportErrors*/\n      true\n    );\n    globalObjectType = getGlobalType(\n      \"Object\",\n      /*arity*/\n      0,\n      /*reportErrors*/\n      true\n    );\n    globalFunctionType = getGlobalType(\n      \"Function\",\n      /*arity*/\n      0,\n      /*reportErrors*/\n      true\n    );\n    globalCallableFunctionType = strictBindCallApply && getGlobalType(\n      \"CallableFunction\",\n      /*arity*/\n      0,\n      /*reportErrors*/\n      true\n    ) || globalFunctionType;\n    globalNewableFunctionType = strictBindCallApply && getGlobalType(\n      \"NewableFunction\",\n      /*arity*/\n      0,\n      /*reportErrors*/\n      true\n    ) || globalFunctionType;\n    globalStringType = getGlobalType(\n      \"String\",\n      /*arity*/\n      0,\n      /*reportErrors*/\n      true\n    );\n    globalNumberType = getGlobalType(\n      \"Number\",\n      /*arity*/\n      0,\n      /*reportErrors*/\n      true\n    );\n    globalBooleanType = getGlobalType(\n      \"Boolean\",\n      /*arity*/\n      0,\n      /*reportErrors*/\n      true\n    );\n    globalRegExpType = getGlobalType(\n      \"RegExp\",\n      /*arity*/\n      0,\n      /*reportErrors*/\n      true\n    );\n    anyArrayType = createArrayType(anyType);\n    autoArrayType = createArrayType(autoType);\n    if (autoArrayType === emptyObjectType) {\n      autoArrayType = createAnonymousType(\n        /*symbol*/\n        void 0,\n        emptySymbols,\n        emptyArray,\n        emptyArray,\n        emptyArray\n      );\n    }\n    globalReadonlyArrayType = getGlobalTypeOrUndefined(\n      \"ReadonlyArray\",\n      /*arity*/\n      1\n    ) || globalArrayType;\n    anyReadonlyArrayType = globalReadonlyArrayType ? createTypeFromGenericGlobalType(globalReadonlyArrayType, [anyType]) : anyArrayType;\n    globalThisType = getGlobalTypeOrUndefined(\n      \"ThisType\",\n      /*arity*/\n      1\n    );\n    if (augmentations) {\n      for (const list of augmentations) {\n        for (const augmentation of list) {\n          if (isGlobalScopeAugmentation(augmentation.parent)) continue;\n          mergeModuleAugmentation(augmentation);\n        }\n      }\n    }\n    amalgamatedDuplicates.forEach(({ firstFile, secondFile, conflictingSymbols }) => {\n      if (conflictingSymbols.size < 8) {\n        conflictingSymbols.forEach(({ isBlockScoped, firstFileLocations, secondFileLocations }, symbolName2) => {\n          const message = isBlockScoped ? Diagnostics.Cannot_redeclare_block_scoped_variable_0 : Diagnostics.Duplicate_identifier_0;\n          for (const node of firstFileLocations) {\n            addDuplicateDeclarationError(node, message, symbolName2, secondFileLocations);\n          }\n          for (const node of secondFileLocations) {\n            addDuplicateDeclarationError(node, message, symbolName2, firstFileLocations);\n          }\n        });\n      } else {\n        const list = arrayFrom(conflictingSymbols.keys()).join(\", \");\n        diagnostics.add(addRelatedInfo(\n          createDiagnosticForNode(firstFile, Diagnostics.Definitions_of_the_following_identifiers_conflict_with_those_in_another_file_Colon_0, list),\n          createDiagnosticForNode(secondFile, Diagnostics.Conflicts_are_in_this_file)\n        ));\n        diagnostics.add(addRelatedInfo(\n          createDiagnosticForNode(secondFile, Diagnostics.Definitions_of_the_following_identifiers_conflict_with_those_in_another_file_Colon_0, list),\n          createDiagnosticForNode(firstFile, Diagnostics.Conflicts_are_in_this_file)\n        ));\n      }\n    });\n    amalgamatedDuplicates = void 0;\n  }\n  function checkExternalEmitHelpers(location, helpers) {\n    if (compilerOptions.importHelpers) {\n      const sourceFile = getSourceFileOfNode(location);\n      if (isEffectiveExternalModule(sourceFile, compilerOptions) && !(location.flags & 33554432 /* Ambient */)) {\n        const helpersModule = resolveHelpersModule(sourceFile, location);\n        if (helpersModule !== unknownSymbol) {\n          const links = getSymbolLinks(helpersModule);\n          links.requestedExternalEmitHelpers ?? (links.requestedExternalEmitHelpers = 0);\n          if ((links.requestedExternalEmitHelpers & helpers) !== helpers) {\n            const uncheckedHelpers = helpers & ~links.requestedExternalEmitHelpers;\n            for (let helper = 1 /* FirstEmitHelper */; helper <= 16777216 /* LastEmitHelper */; helper <<= 1) {\n              if (uncheckedHelpers & helper) {\n                for (const name of getHelperNames(helper)) {\n                  const symbol = resolveSymbol(getSymbol2(getExportsOfModule(helpersModule), escapeLeadingUnderscores(name), 111551 /* Value */));\n                  if (!symbol) {\n                    error2(location, Diagnostics.This_syntax_requires_an_imported_helper_named_1_which_does_not_exist_in_0_Consider_upgrading_your_version_of_0, externalHelpersModuleNameText, name);\n                  } else if (helper & 524288 /* ClassPrivateFieldGet */) {\n                    if (!some(getSignaturesOfSymbol(symbol), (signature) => getParameterCount(signature) > 3)) {\n                      error2(location, Diagnostics.This_syntax_requires_an_imported_helper_named_1_with_2_parameters_which_is_not_compatible_with_the_one_in_0_Consider_upgrading_your_version_of_0, externalHelpersModuleNameText, name, 4);\n                    }\n                  } else if (helper & 1048576 /* ClassPrivateFieldSet */) {\n                    if (!some(getSignaturesOfSymbol(symbol), (signature) => getParameterCount(signature) > 4)) {\n                      error2(location, Diagnostics.This_syntax_requires_an_imported_helper_named_1_with_2_parameters_which_is_not_compatible_with_the_one_in_0_Consider_upgrading_your_version_of_0, externalHelpersModuleNameText, name, 5);\n                    }\n                  } else if (helper & 1024 /* SpreadArray */) {\n                    if (!some(getSignaturesOfSymbol(symbol), (signature) => getParameterCount(signature) > 2)) {\n                      error2(location, Diagnostics.This_syntax_requires_an_imported_helper_named_1_with_2_parameters_which_is_not_compatible_with_the_one_in_0_Consider_upgrading_your_version_of_0, externalHelpersModuleNameText, name, 3);\n                    }\n                  }\n                }\n              }\n            }\n          }\n          links.requestedExternalEmitHelpers |= helpers;\n        }\n      }\n    }\n  }\n  function getHelperNames(helper) {\n    switch (helper) {\n      case 1 /* Extends */:\n        return [\"__extends\"];\n      case 2 /* Assign */:\n        return [\"__assign\"];\n      case 4 /* Rest */:\n        return [\"__rest\"];\n      case 8 /* Decorate */:\n        return legacyDecorators ? [\"__decorate\"] : [\"__esDecorate\", \"__runInitializers\"];\n      case 16 /* Metadata */:\n        return [\"__metadata\"];\n      case 32 /* Param */:\n        return [\"__param\"];\n      case 64 /* Awaiter */:\n        return [\"__awaiter\"];\n      case 128 /* Generator */:\n        return [\"__generator\"];\n      case 256 /* Values */:\n        return [\"__values\"];\n      case 512 /* Read */:\n        return [\"__read\"];\n      case 1024 /* SpreadArray */:\n        return [\"__spreadArray\"];\n      case 2048 /* Await */:\n        return [\"__await\"];\n      case 4096 /* AsyncGenerator */:\n        return [\"__asyncGenerator\"];\n      case 8192 /* AsyncDelegator */:\n        return [\"__asyncDelegator\"];\n      case 16384 /* AsyncValues */:\n        return [\"__asyncValues\"];\n      case 32768 /* ExportStar */:\n        return [\"__exportStar\"];\n      case 65536 /* ImportStar */:\n        return [\"__importStar\"];\n      case 131072 /* ImportDefault */:\n        return [\"__importDefault\"];\n      case 262144 /* MakeTemplateObject */:\n        return [\"__makeTemplateObject\"];\n      case 524288 /* ClassPrivateFieldGet */:\n        return [\"__classPrivateFieldGet\"];\n      case 1048576 /* ClassPrivateFieldSet */:\n        return [\"__classPrivateFieldSet\"];\n      case 2097152 /* ClassPrivateFieldIn */:\n        return [\"__classPrivateFieldIn\"];\n      case 4194304 /* SetFunctionName */:\n        return [\"__setFunctionName\"];\n      case 8388608 /* PropKey */:\n        return [\"__propKey\"];\n      case 16777216 /* AddDisposableResourceAndDisposeResources */:\n        return [\"__addDisposableResource\", \"__disposeResources\"];\n      case 33554432 /* RewriteRelativeImportExtension */:\n        return [\"__rewriteRelativeImportExtension\"];\n      default:\n        return Debug.fail(\"Unrecognized helper\");\n    }\n  }\n  function resolveHelpersModule(file, errorNode) {\n    const links = getNodeLinks(file);\n    if (!links.externalHelpersModule) {\n      links.externalHelpersModule = resolveExternalModule(getImportHelpersImportSpecifier(file), externalHelpersModuleNameText, Diagnostics.This_syntax_requires_an_imported_helper_but_module_0_cannot_be_found, errorNode) || unknownSymbol;\n    }\n    return links.externalHelpersModule;\n  }\n  function checkGrammarModifiers(node) {\n    var _a;\n    const quickResult = reportObviousDecoratorErrors(node) || reportObviousModifierErrors(node);\n    if (quickResult !== void 0) {\n      return quickResult;\n    }\n    if (isParameter(node) && parameterIsThisKeyword(node)) {\n      return grammarErrorOnFirstToken(node, Diagnostics.Neither_decorators_nor_modifiers_may_be_applied_to_this_parameters);\n    }\n    const blockScopeKind = isVariableStatement(node) ? node.declarationList.flags & 7 /* BlockScoped */ : 0 /* None */;\n    let lastStatic, lastDeclare, lastAsync, lastOverride, firstDecorator;\n    let flags = 0 /* None */;\n    let sawExportBeforeDecorators = false;\n    let hasLeadingDecorators = false;\n    for (const modifier of node.modifiers) {\n      if (isDecorator(modifier)) {\n        if (!nodeCanBeDecorated(legacyDecorators, node, node.parent, node.parent.parent)) {\n          if (node.kind === 175 /* MethodDeclaration */ && !nodeIsPresent(node.body)) {\n            return grammarErrorOnFirstToken(node, Diagnostics.A_decorator_can_only_decorate_a_method_implementation_not_an_overload);\n          } else {\n            return grammarErrorOnFirstToken(node, Diagnostics.Decorators_are_not_valid_here);\n          }\n        } else if (legacyDecorators && (node.kind === 178 /* GetAccessor */ || node.kind === 179 /* SetAccessor */)) {\n          const accessors = getAllAccessorDeclarationsForDeclaration(node);\n          if (hasDecorators(accessors.firstAccessor) && node === accessors.secondAccessor) {\n            return grammarErrorOnFirstToken(node, Diagnostics.Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name);\n          }\n        }\n        if (flags & ~(2080 /* ExportDefault */ | 32768 /* Decorator */)) {\n          return grammarErrorOnNode(modifier, Diagnostics.Decorators_are_not_valid_here);\n        }\n        if (hasLeadingDecorators && flags & 98303 /* Modifier */) {\n          Debug.assertIsDefined(firstDecorator);\n          const sourceFile = getSourceFileOfNode(modifier);\n          if (!hasParseDiagnostics(sourceFile)) {\n            addRelatedInfo(\n              error2(modifier, Diagnostics.Decorators_may_not_appear_after_export_or_export_default_if_they_also_appear_before_export),\n              createDiagnosticForNode(firstDecorator, Diagnostics.Decorator_used_before_export_here)\n            );\n            return true;\n          }\n          return false;\n        }\n        flags |= 32768 /* Decorator */;\n        if (!(flags & 98303 /* Modifier */)) {\n          hasLeadingDecorators = true;\n        } else if (flags & 32 /* Export */) {\n          sawExportBeforeDecorators = true;\n        }\n        firstDecorator ?? (firstDecorator = modifier);\n      } else {\n        if (modifier.kind !== 148 /* ReadonlyKeyword */) {\n          if (node.kind === 172 /* PropertySignature */ || node.kind === 174 /* MethodSignature */) {\n            return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_appear_on_a_type_member, tokenToString(modifier.kind));\n          }\n          if (node.kind === 182 /* IndexSignature */ && (modifier.kind !== 126 /* StaticKeyword */ || !isClassLike(node.parent))) {\n            return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_appear_on_an_index_signature, tokenToString(modifier.kind));\n          }\n        }\n        if (modifier.kind !== 103 /* InKeyword */ && modifier.kind !== 147 /* OutKeyword */ && modifier.kind !== 87 /* ConstKeyword */) {\n          if (node.kind === 169 /* TypeParameter */) {\n            return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_appear_on_a_type_parameter, tokenToString(modifier.kind));\n          }\n        }\n        switch (modifier.kind) {\n          case 87 /* ConstKeyword */: {\n            if (node.kind !== 267 /* EnumDeclaration */ && node.kind !== 169 /* TypeParameter */) {\n              return grammarErrorOnNode(node, Diagnostics.A_class_member_cannot_have_the_0_keyword, tokenToString(87 /* ConstKeyword */));\n            }\n            const parent2 = isJSDocTemplateTag(node.parent) && getEffectiveJSDocHost(node.parent) || node.parent;\n            if (node.kind === 169 /* TypeParameter */ && !(isFunctionLikeDeclaration(parent2) || isClassLike(parent2) || isFunctionTypeNode(parent2) || isConstructorTypeNode(parent2) || isCallSignatureDeclaration(parent2) || isConstructSignatureDeclaration(parent2) || isMethodSignature(parent2))) {\n              return grammarErrorOnNode(modifier, Diagnostics._0_modifier_can_only_appear_on_a_type_parameter_of_a_function_method_or_class, tokenToString(modifier.kind));\n            }\n            break;\n          }\n          case 164 /* OverrideKeyword */:\n            if (flags & 16 /* Override */) {\n              return grammarErrorOnNode(modifier, Diagnostics._0_modifier_already_seen, \"override\");\n            } else if (flags & 128 /* Ambient */) {\n              return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_be_used_with_1_modifier, \"override\", \"declare\");\n            } else if (flags & 8 /* Readonly */) {\n              return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, \"override\", \"readonly\");\n            } else if (flags & 512 /* Accessor */) {\n              return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, \"override\", \"accessor\");\n            } else if (flags & 1024 /* Async */) {\n              return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, \"override\", \"async\");\n            }\n            flags |= 16 /* Override */;\n            lastOverride = modifier;\n            break;\n          case 125 /* PublicKeyword */:\n          case 124 /* ProtectedKeyword */:\n          case 123 /* PrivateKeyword */:\n            const text = visibilityToString(modifierToFlag(modifier.kind));\n            if (flags & 7 /* AccessibilityModifier */) {\n              return grammarErrorOnNode(modifier, Diagnostics.Accessibility_modifier_already_seen);\n            } else if (flags & 16 /* Override */) {\n              return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, text, \"override\");\n            } else if (flags & 256 /* Static */) {\n              return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, text, \"static\");\n            } else if (flags & 512 /* Accessor */) {\n              return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, text, \"accessor\");\n            } else if (flags & 8 /* Readonly */) {\n              return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, text, \"readonly\");\n            } else if (flags & 1024 /* Async */) {\n              return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, text, \"async\");\n            } else if (node.parent.kind === 269 /* ModuleBlock */ || node.parent.kind === 308 /* SourceFile */) {\n              return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_appear_on_a_module_or_namespace_element, text);\n            } else if (flags & 64 /* Abstract */) {\n              if (modifier.kind === 123 /* PrivateKeyword */) {\n                return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_be_used_with_1_modifier, text, \"abstract\");\n              } else {\n                return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, text, \"abstract\");\n              }\n            } else if (isPrivateIdentifierClassElementDeclaration(node)) {\n              return grammarErrorOnNode(modifier, Diagnostics.An_accessibility_modifier_cannot_be_used_with_a_private_identifier);\n            }\n            flags |= modifierToFlag(modifier.kind);\n            break;\n          case 126 /* StaticKeyword */:\n            if (flags & 256 /* Static */) {\n              return grammarErrorOnNode(modifier, Diagnostics._0_modifier_already_seen, \"static\");\n            } else if (flags & 8 /* Readonly */) {\n              return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, \"static\", \"readonly\");\n            } else if (flags & 1024 /* Async */) {\n              return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, \"static\", \"async\");\n            } else if (flags & 512 /* Accessor */) {\n              return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, \"static\", \"accessor\");\n            } else if (node.parent.kind === 269 /* ModuleBlock */ || node.parent.kind === 308 /* SourceFile */) {\n              return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_appear_on_a_module_or_namespace_element, \"static\");\n            } else if (node.kind === 170 /* Parameter */) {\n              return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_appear_on_a_parameter, \"static\");\n            } else if (flags & 64 /* Abstract */) {\n              return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_be_used_with_1_modifier, \"static\", \"abstract\");\n            } else if (flags & 16 /* Override */) {\n              return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, \"static\", \"override\");\n            }\n            flags |= 256 /* Static */;\n            lastStatic = modifier;\n            break;\n          case 129 /* AccessorKeyword */:\n            if (flags & 512 /* Accessor */) {\n              return grammarErrorOnNode(modifier, Diagnostics._0_modifier_already_seen, \"accessor\");\n            } else if (flags & 8 /* Readonly */) {\n              return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_be_used_with_1_modifier, \"accessor\", \"readonly\");\n            } else if (flags & 128 /* Ambient */) {\n              return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_be_used_with_1_modifier, \"accessor\", \"declare\");\n            } else if (node.kind !== 173 /* PropertyDeclaration */) {\n              return grammarErrorOnNode(modifier, Diagnostics.accessor_modifier_can_only_appear_on_a_property_declaration);\n            }\n            flags |= 512 /* Accessor */;\n            break;\n          case 148 /* ReadonlyKeyword */:\n            if (flags & 8 /* Readonly */) {\n              return grammarErrorOnNode(modifier, Diagnostics._0_modifier_already_seen, \"readonly\");\n            } else if (node.kind !== 173 /* PropertyDeclaration */ && node.kind !== 172 /* PropertySignature */ && node.kind !== 182 /* IndexSignature */ && node.kind !== 170 /* Parameter */) {\n              return grammarErrorOnNode(modifier, Diagnostics.readonly_modifier_can_only_appear_on_a_property_declaration_or_index_signature);\n            } else if (flags & 512 /* Accessor */) {\n              return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_be_used_with_1_modifier, \"readonly\", \"accessor\");\n            }\n            flags |= 8 /* Readonly */;\n            break;\n          case 95 /* ExportKeyword */:\n            if (compilerOptions.verbatimModuleSyntax && !(node.flags & 33554432 /* Ambient */) && node.kind !== 266 /* TypeAliasDeclaration */ && node.kind !== 265 /* InterfaceDeclaration */ && // ModuleDeclaration needs to be checked that it is uninstantiated later\n            node.kind !== 268 /* ModuleDeclaration */ && node.parent.kind === 308 /* SourceFile */ && host.getEmitModuleFormatOfFile(getSourceFileOfNode(node)) === 1 /* CommonJS */) {\n              return grammarErrorOnNode(modifier, Diagnostics.A_top_level_export_modifier_cannot_be_used_on_value_declarations_in_a_CommonJS_module_when_verbatimModuleSyntax_is_enabled);\n            }\n            if (flags & 32 /* Export */) {\n              return grammarErrorOnNode(modifier, Diagnostics._0_modifier_already_seen, \"export\");\n            } else if (flags & 128 /* Ambient */) {\n              return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, \"export\", \"declare\");\n            } else if (flags & 64 /* Abstract */) {\n              return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, \"export\", \"abstract\");\n            } else if (flags & 1024 /* Async */) {\n              return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, \"export\", \"async\");\n            } else if (isClassLike(node.parent)) {\n              return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_appear_on_class_elements_of_this_kind, \"export\");\n            } else if (node.kind === 170 /* Parameter */) {\n              return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_appear_on_a_parameter, \"export\");\n            } else if (blockScopeKind === 4 /* Using */) {\n              return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_appear_on_a_using_declaration, \"export\");\n            } else if (blockScopeKind === 6 /* AwaitUsing */) {\n              return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_appear_on_an_await_using_declaration, \"export\");\n            }\n            flags |= 32 /* Export */;\n            break;\n          case 90 /* DefaultKeyword */:\n            const container = node.parent.kind === 308 /* SourceFile */ ? node.parent : node.parent.parent;\n            if (container.kind === 268 /* ModuleDeclaration */ && !isAmbientModule(container)) {\n              return grammarErrorOnNode(modifier, Diagnostics.A_default_export_can_only_be_used_in_an_ECMAScript_style_module);\n            } else if (blockScopeKind === 4 /* Using */) {\n              return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_appear_on_a_using_declaration, \"default\");\n            } else if (blockScopeKind === 6 /* AwaitUsing */) {\n              return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_appear_on_an_await_using_declaration, \"default\");\n            } else if (!(flags & 32 /* Export */)) {\n              return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, \"export\", \"default\");\n            } else if (sawExportBeforeDecorators) {\n              return grammarErrorOnNode(firstDecorator, Diagnostics.Decorators_are_not_valid_here);\n            }\n            flags |= 2048 /* Default */;\n            break;\n          case 138 /* DeclareKeyword */:\n            if (flags & 128 /* Ambient */) {\n              return grammarErrorOnNode(modifier, Diagnostics._0_modifier_already_seen, \"declare\");\n            } else if (flags & 1024 /* Async */) {\n              return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_be_used_in_an_ambient_context, \"async\");\n            } else if (flags & 16 /* Override */) {\n              return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_be_used_in_an_ambient_context, \"override\");\n            } else if (isClassLike(node.parent) && !isPropertyDeclaration(node)) {\n              return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_appear_on_class_elements_of_this_kind, \"declare\");\n            } else if (node.kind === 170 /* Parameter */) {\n              return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_appear_on_a_parameter, \"declare\");\n            } else if (blockScopeKind === 4 /* Using */) {\n              return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_appear_on_a_using_declaration, \"declare\");\n            } else if (blockScopeKind === 6 /* AwaitUsing */) {\n              return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_appear_on_an_await_using_declaration, \"declare\");\n            } else if (node.parent.flags & 33554432 /* Ambient */ && node.parent.kind === 269 /* ModuleBlock */) {\n              return grammarErrorOnNode(modifier, Diagnostics.A_declare_modifier_cannot_be_used_in_an_already_ambient_context);\n            } else if (isPrivateIdentifierClassElementDeclaration(node)) {\n              return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_be_used_with_a_private_identifier, \"declare\");\n            } else if (flags & 512 /* Accessor */) {\n              return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_be_used_with_1_modifier, \"declare\", \"accessor\");\n            }\n            flags |= 128 /* Ambient */;\n            lastDeclare = modifier;\n            break;\n          case 128 /* AbstractKeyword */:\n            if (flags & 64 /* Abstract */) {\n              return grammarErrorOnNode(modifier, Diagnostics._0_modifier_already_seen, \"abstract\");\n            }\n            if (node.kind !== 264 /* ClassDeclaration */ && node.kind !== 186 /* ConstructorType */) {\n              if (node.kind !== 175 /* MethodDeclaration */ && node.kind !== 173 /* PropertyDeclaration */ && node.kind !== 178 /* GetAccessor */ && node.kind !== 179 /* SetAccessor */) {\n                return grammarErrorOnNode(modifier, Diagnostics.abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration);\n              }\n              if (!(node.parent.kind === 264 /* ClassDeclaration */ && hasSyntacticModifier(node.parent, 64 /* Abstract */))) {\n                const message = node.kind === 173 /* PropertyDeclaration */ ? Diagnostics.Abstract_properties_can_only_appear_within_an_abstract_class : Diagnostics.Abstract_methods_can_only_appear_within_an_abstract_class;\n                return grammarErrorOnNode(modifier, message);\n              }\n              if (flags & 256 /* Static */) {\n                return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_be_used_with_1_modifier, \"static\", \"abstract\");\n              }\n              if (flags & 2 /* Private */) {\n                return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_be_used_with_1_modifier, \"private\", \"abstract\");\n              }\n              if (flags & 1024 /* Async */ && lastAsync) {\n                return grammarErrorOnNode(lastAsync, Diagnostics._0_modifier_cannot_be_used_with_1_modifier, \"async\", \"abstract\");\n              }\n              if (flags & 16 /* Override */) {\n                return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, \"abstract\", \"override\");\n              }\n              if (flags & 512 /* Accessor */) {\n                return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, \"abstract\", \"accessor\");\n              }\n            }\n            if (isNamedDeclaration(node) && node.name.kind === 81 /* PrivateIdentifier */) {\n              return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_be_used_with_a_private_identifier, \"abstract\");\n            }\n            flags |= 64 /* Abstract */;\n            break;\n          case 134 /* AsyncKeyword */:\n            if (flags & 1024 /* Async */) {\n              return grammarErrorOnNode(modifier, Diagnostics._0_modifier_already_seen, \"async\");\n            } else if (flags & 128 /* Ambient */ || node.parent.flags & 33554432 /* Ambient */) {\n              return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_be_used_in_an_ambient_context, \"async\");\n            } else if (node.kind === 170 /* Parameter */) {\n              return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_appear_on_a_parameter, \"async\");\n            }\n            if (flags & 64 /* Abstract */) {\n              return grammarErrorOnNode(modifier, Diagnostics._0_modifier_cannot_be_used_with_1_modifier, \"async\", \"abstract\");\n            }\n            flags |= 1024 /* Async */;\n            lastAsync = modifier;\n            break;\n          case 103 /* InKeyword */:\n          case 147 /* OutKeyword */: {\n            const inOutFlag = modifier.kind === 103 /* InKeyword */ ? 8192 /* In */ : 16384 /* Out */;\n            const inOutText = modifier.kind === 103 /* InKeyword */ ? \"in\" : \"out\";\n            const parent2 = isJSDocTemplateTag(node.parent) && (getEffectiveJSDocHost(node.parent) || find((_a = getJSDocRoot(node.parent)) == null ? void 0 : _a.tags, isJSDocTypedefTag)) || node.parent;\n            if (node.kind !== 169 /* TypeParameter */ || parent2 && !(isInterfaceDeclaration(parent2) || isClassLike(parent2) || isTypeAliasDeclaration(parent2) || isJSDocTypedefTag(parent2))) {\n              return grammarErrorOnNode(modifier, Diagnostics._0_modifier_can_only_appear_on_a_type_parameter_of_a_class_interface_or_type_alias, inOutText);\n            }\n            if (flags & inOutFlag) {\n              return grammarErrorOnNode(modifier, Diagnostics._0_modifier_already_seen, inOutText);\n            }\n            if (inOutFlag & 8192 /* In */ && flags & 16384 /* Out */) {\n              return grammarErrorOnNode(modifier, Diagnostics._0_modifier_must_precede_1_modifier, \"in\", \"out\");\n            }\n            flags |= inOutFlag;\n            break;\n          }\n        }\n      }\n    }\n    if (node.kind === 177 /* Constructor */) {\n      if (flags & 256 /* Static */) {\n        return grammarErrorOnNode(lastStatic, Diagnostics._0_modifier_cannot_appear_on_a_constructor_declaration, \"static\");\n      }\n      if (flags & 16 /* Override */) {\n        return grammarErrorOnNode(lastOverride, Diagnostics._0_modifier_cannot_appear_on_a_constructor_declaration, \"override\");\n      }\n      if (flags & 1024 /* Async */) {\n        return grammarErrorOnNode(lastAsync, Diagnostics._0_modifier_cannot_appear_on_a_constructor_declaration, \"async\");\n      }\n      return false;\n    } else if ((node.kind === 273 /* ImportDeclaration */ || node.kind === 272 /* ImportEqualsDeclaration */) && flags & 128 /* Ambient */) {\n      return grammarErrorOnNode(lastDeclare, Diagnostics.A_0_modifier_cannot_be_used_with_an_import_declaration, \"declare\");\n    } else if (node.kind === 170 /* Parameter */ && flags & 31 /* ParameterPropertyModifier */ && isBindingPattern(node.name)) {\n      return grammarErrorOnNode(node, Diagnostics.A_parameter_property_may_not_be_declared_using_a_binding_pattern);\n    } else if (node.kind === 170 /* Parameter */ && flags & 31 /* ParameterPropertyModifier */ && node.dotDotDotToken) {\n      return grammarErrorOnNode(node, Diagnostics.A_parameter_property_cannot_be_declared_using_a_rest_parameter);\n    }\n    if (flags & 1024 /* Async */) {\n      return checkGrammarAsyncModifier(node, lastAsync);\n    }\n    return false;\n  }\n  function reportObviousModifierErrors(node) {\n    if (!node.modifiers) return false;\n    const modifier = findFirstIllegalModifier(node);\n    return modifier && grammarErrorOnFirstToken(modifier, Diagnostics.Modifiers_cannot_appear_here);\n  }\n  function findFirstModifierExcept(node, allowedModifier) {\n    const modifier = find(node.modifiers, isModifier);\n    return modifier && modifier.kind !== allowedModifier ? modifier : void 0;\n  }\n  function findFirstIllegalModifier(node) {\n    switch (node.kind) {\n      case 178 /* GetAccessor */:\n      case 179 /* SetAccessor */:\n      case 177 /* Constructor */:\n      case 173 /* PropertyDeclaration */:\n      case 172 /* PropertySignature */:\n      case 175 /* MethodDeclaration */:\n      case 174 /* MethodSignature */:\n      case 182 /* IndexSignature */:\n      case 268 /* ModuleDeclaration */:\n      case 273 /* ImportDeclaration */:\n      case 272 /* ImportEqualsDeclaration */:\n      case 279 /* ExportDeclaration */:\n      case 278 /* ExportAssignment */:\n      case 219 /* FunctionExpression */:\n      case 220 /* ArrowFunction */:\n      case 170 /* Parameter */:\n      case 169 /* TypeParameter */:\n        return void 0;\n      case 176 /* ClassStaticBlockDeclaration */:\n      case 304 /* PropertyAssignment */:\n      case 305 /* ShorthandPropertyAssignment */:\n      case 271 /* NamespaceExportDeclaration */:\n      case 283 /* MissingDeclaration */:\n        return find(node.modifiers, isModifier);\n      default:\n        if (node.parent.kind === 269 /* ModuleBlock */ || node.parent.kind === 308 /* SourceFile */) {\n          return void 0;\n        }\n        switch (node.kind) {\n          case 263 /* FunctionDeclaration */:\n            return findFirstModifierExcept(node, 134 /* AsyncKeyword */);\n          case 264 /* ClassDeclaration */:\n          case 186 /* ConstructorType */:\n            return findFirstModifierExcept(node, 128 /* AbstractKeyword */);\n          case 232 /* ClassExpression */:\n          case 265 /* InterfaceDeclaration */:\n          case 266 /* TypeAliasDeclaration */:\n            return find(node.modifiers, isModifier);\n          case 244 /* VariableStatement */:\n            return node.declarationList.flags & 4 /* Using */ ? findFirstModifierExcept(node, 135 /* AwaitKeyword */) : find(node.modifiers, isModifier);\n          case 267 /* EnumDeclaration */:\n            return findFirstModifierExcept(node, 87 /* ConstKeyword */);\n          default:\n            Debug.assertNever(node);\n        }\n    }\n  }\n  function reportObviousDecoratorErrors(node) {\n    const decorator = findFirstIllegalDecorator(node);\n    return decorator && grammarErrorOnFirstToken(decorator, Diagnostics.Decorators_are_not_valid_here);\n  }\n  function findFirstIllegalDecorator(node) {\n    return canHaveIllegalDecorators(node) ? find(node.modifiers, isDecorator) : void 0;\n  }\n  function checkGrammarAsyncModifier(node, asyncModifier) {\n    switch (node.kind) {\n      case 175 /* MethodDeclaration */:\n      case 263 /* FunctionDeclaration */:\n      case 219 /* FunctionExpression */:\n      case 220 /* ArrowFunction */:\n        return false;\n    }\n    return grammarErrorOnNode(asyncModifier, Diagnostics._0_modifier_cannot_be_used_here, \"async\");\n  }\n  function checkGrammarForDisallowedTrailingComma(list, diag2 = Diagnostics.Trailing_comma_not_allowed) {\n    if (list && list.hasTrailingComma) {\n      return grammarErrorAtPos(list[0], list.end - \",\".length, \",\".length, diag2);\n    }\n    return false;\n  }\n  function checkGrammarTypeParameterList(typeParameters, file) {\n    if (typeParameters && typeParameters.length === 0) {\n      const start = typeParameters.pos - \"<\".length;\n      const end = skipTrivia(file.text, typeParameters.end) + \">\".length;\n      return grammarErrorAtPos(file, start, end - start, Diagnostics.Type_parameter_list_cannot_be_empty);\n    }\n    return false;\n  }\n  function checkGrammarParameterList(parameters) {\n    let seenOptionalParameter = false;\n    const parameterCount = parameters.length;\n    for (let i = 0; i < parameterCount; i++) {\n      const parameter = parameters[i];\n      if (parameter.dotDotDotToken) {\n        if (i !== parameterCount - 1) {\n          return grammarErrorOnNode(parameter.dotDotDotToken, Diagnostics.A_rest_parameter_must_be_last_in_a_parameter_list);\n        }\n        if (!(parameter.flags & 33554432 /* Ambient */)) {\n          checkGrammarForDisallowedTrailingComma(parameters, Diagnostics.A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma);\n        }\n        if (parameter.questionToken) {\n          return grammarErrorOnNode(parameter.questionToken, Diagnostics.A_rest_parameter_cannot_be_optional);\n        }\n        if (parameter.initializer) {\n          return grammarErrorOnNode(parameter.name, Diagnostics.A_rest_parameter_cannot_have_an_initializer);\n        }\n      } else if (hasEffectiveQuestionToken(parameter)) {\n        seenOptionalParameter = true;\n        if (parameter.questionToken && parameter.initializer) {\n          return grammarErrorOnNode(parameter.name, Diagnostics.Parameter_cannot_have_question_mark_and_initializer);\n        }\n      } else if (seenOptionalParameter && !parameter.initializer) {\n        return grammarErrorOnNode(parameter.name, Diagnostics.A_required_parameter_cannot_follow_an_optional_parameter);\n      }\n    }\n  }\n  function getNonSimpleParameters(parameters) {\n    return filter(parameters, (parameter) => !!parameter.initializer || isBindingPattern(parameter.name) || isRestParameter(parameter));\n  }\n  function checkGrammarForUseStrictSimpleParameterList(node) {\n    if (languageVersion >= 3 /* ES2016 */) {\n      const useStrictDirective = node.body && isBlock(node.body) && findUseStrictPrologue(node.body.statements);\n      if (useStrictDirective) {\n        const nonSimpleParameters = getNonSimpleParameters(node.parameters);\n        if (length(nonSimpleParameters)) {\n          forEach(nonSimpleParameters, (parameter) => {\n            addRelatedInfo(\n              error2(parameter, Diagnostics.This_parameter_is_not_allowed_with_use_strict_directive),\n              createDiagnosticForNode(useStrictDirective, Diagnostics.use_strict_directive_used_here)\n            );\n          });\n          const diagnostics2 = nonSimpleParameters.map((parameter, index) => index === 0 ? createDiagnosticForNode(parameter, Diagnostics.Non_simple_parameter_declared_here) : createDiagnosticForNode(parameter, Diagnostics.and_here));\n          addRelatedInfo(error2(useStrictDirective, Diagnostics.use_strict_directive_cannot_be_used_with_non_simple_parameter_list), ...diagnostics2);\n          return true;\n        }\n      }\n    }\n    return false;\n  }\n  function checkGrammarFunctionLikeDeclaration(node) {\n    const file = getSourceFileOfNode(node);\n    return checkGrammarModifiers(node) || checkGrammarTypeParameterList(node.typeParameters, file) || checkGrammarParameterList(node.parameters) || checkGrammarArrowFunction(node, file) || isFunctionLikeDeclaration(node) && checkGrammarForUseStrictSimpleParameterList(node);\n  }\n  function checkGrammarClassLikeDeclaration(node) {\n    const file = getSourceFileOfNode(node);\n    return checkGrammarClassDeclarationHeritageClauses(node) || checkGrammarTypeParameterList(node.typeParameters, file);\n  }\n  function checkGrammarArrowFunction(node, file) {\n    if (!isArrowFunction(node)) {\n      return false;\n    }\n    if (node.typeParameters && !(length(node.typeParameters) > 1 || node.typeParameters.hasTrailingComma || node.typeParameters[0].constraint)) {\n      if (file && fileExtensionIsOneOf(file.fileName, [\".mts\" /* Mts */, \".cts\" /* Cts */])) {\n        grammarErrorOnNode(node.typeParameters[0], Diagnostics.This_syntax_is_reserved_in_files_with_the_mts_or_cts_extension_Add_a_trailing_comma_or_explicit_constraint);\n      }\n    }\n    const { equalsGreaterThanToken } = node;\n    const startLine = getLineAndCharacterOfPosition(file, equalsGreaterThanToken.pos).line;\n    const endLine = getLineAndCharacterOfPosition(file, equalsGreaterThanToken.end).line;\n    return startLine !== endLine && grammarErrorOnNode(equalsGreaterThanToken, Diagnostics.Line_terminator_not_permitted_before_arrow);\n  }\n  function checkGrammarIndexSignatureParameters(node) {\n    const parameter = node.parameters[0];\n    if (node.parameters.length !== 1) {\n      if (parameter) {\n        return grammarErrorOnNode(parameter.name, Diagnostics.An_index_signature_must_have_exactly_one_parameter);\n      } else {\n        return grammarErrorOnNode(node, Diagnostics.An_index_signature_must_have_exactly_one_parameter);\n      }\n    }\n    checkGrammarForDisallowedTrailingComma(node.parameters, Diagnostics.An_index_signature_cannot_have_a_trailing_comma);\n    if (parameter.dotDotDotToken) {\n      return grammarErrorOnNode(parameter.dotDotDotToken, Diagnostics.An_index_signature_cannot_have_a_rest_parameter);\n    }\n    if (hasEffectiveModifiers(parameter)) {\n      return grammarErrorOnNode(parameter.name, Diagnostics.An_index_signature_parameter_cannot_have_an_accessibility_modifier);\n    }\n    if (parameter.questionToken) {\n      return grammarErrorOnNode(parameter.questionToken, Diagnostics.An_index_signature_parameter_cannot_have_a_question_mark);\n    }\n    if (parameter.initializer) {\n      return grammarErrorOnNode(parameter.name, Diagnostics.An_index_signature_parameter_cannot_have_an_initializer);\n    }\n    if (!parameter.type) {\n      return grammarErrorOnNode(parameter.name, Diagnostics.An_index_signature_parameter_must_have_a_type_annotation);\n    }\n    const type = getTypeFromTypeNode(parameter.type);\n    if (someType(type, (t) => !!(t.flags & 8576 /* StringOrNumberLiteralOrUnique */)) || isGenericType(type)) {\n      return grammarErrorOnNode(parameter.name, Diagnostics.An_index_signature_parameter_type_cannot_be_a_literal_type_or_generic_type_Consider_using_a_mapped_object_type_instead);\n    }\n    if (!everyType(type, isValidIndexKeyType)) {\n      return grammarErrorOnNode(parameter.name, Diagnostics.An_index_signature_parameter_type_must_be_string_number_symbol_or_a_template_literal_type);\n    }\n    if (!node.type) {\n      return grammarErrorOnNode(node, Diagnostics.An_index_signature_must_have_a_type_annotation);\n    }\n    return false;\n  }\n  function checkGrammarIndexSignature(node) {\n    return checkGrammarModifiers(node) || checkGrammarIndexSignatureParameters(node);\n  }\n  function checkGrammarForAtLeastOneTypeArgument(node, typeArguments) {\n    if (typeArguments && typeArguments.length === 0) {\n      const sourceFile = getSourceFileOfNode(node);\n      const start = typeArguments.pos - \"<\".length;\n      const end = skipTrivia(sourceFile.text, typeArguments.end) + \">\".length;\n      return grammarErrorAtPos(sourceFile, start, end - start, Diagnostics.Type_argument_list_cannot_be_empty);\n    }\n    return false;\n  }\n  function checkGrammarTypeArguments(node, typeArguments) {\n    return checkGrammarForDisallowedTrailingComma(typeArguments) || checkGrammarForAtLeastOneTypeArgument(node, typeArguments);\n  }\n  function checkGrammarTaggedTemplateChain(node) {\n    if (node.questionDotToken || node.flags & 64 /* OptionalChain */) {\n      return grammarErrorOnNode(node.template, Diagnostics.Tagged_template_expressions_are_not_permitted_in_an_optional_chain);\n    }\n    return false;\n  }\n  function checkGrammarHeritageClause(node) {\n    const types = node.types;\n    if (checkGrammarForDisallowedTrailingComma(types)) {\n      return true;\n    }\n    if (types && types.length === 0) {\n      const listType = tokenToString(node.token);\n      return grammarErrorAtPos(node, types.pos, 0, Diagnostics._0_list_cannot_be_empty, listType);\n    }\n    return some(types, checkGrammarExpressionWithTypeArguments);\n  }\n  function checkGrammarExpressionWithTypeArguments(node) {\n    if (isExpressionWithTypeArguments(node) && isImportKeyword(node.expression) && node.typeArguments) {\n      return grammarErrorOnNode(node, Diagnostics.This_use_of_import_is_invalid_import_calls_can_be_written_but_they_must_have_parentheses_and_cannot_have_type_arguments);\n    }\n    return checkGrammarTypeArguments(node, node.typeArguments);\n  }\n  function checkGrammarClassDeclarationHeritageClauses(node) {\n    let seenExtendsClause = false;\n    let seenImplementsClause = false;\n    if (!checkGrammarModifiers(node) && node.heritageClauses) {\n      for (const heritageClause of node.heritageClauses) {\n        if (heritageClause.token === 96 /* ExtendsKeyword */) {\n          if (seenExtendsClause) {\n            return grammarErrorOnFirstToken(heritageClause, Diagnostics.extends_clause_already_seen);\n          }\n          if (seenImplementsClause) {\n            return grammarErrorOnFirstToken(heritageClause, Diagnostics.extends_clause_must_precede_implements_clause);\n          }\n          if (heritageClause.types.length > 1) {\n            return grammarErrorOnFirstToken(heritageClause.types[1], Diagnostics.Classes_can_only_extend_a_single_class);\n          }\n          seenExtendsClause = true;\n        } else {\n          Debug.assert(heritageClause.token === 119 /* ImplementsKeyword */);\n          if (seenImplementsClause) {\n            return grammarErrorOnFirstToken(heritageClause, Diagnostics.implements_clause_already_seen);\n          }\n          seenImplementsClause = true;\n        }\n        checkGrammarHeritageClause(heritageClause);\n      }\n    }\n  }\n  function checkGrammarInterfaceDeclaration(node) {\n    let seenExtendsClause = false;\n    if (node.heritageClauses) {\n      for (const heritageClause of node.heritageClauses) {\n        if (heritageClause.token === 96 /* ExtendsKeyword */) {\n          if (seenExtendsClause) {\n            return grammarErrorOnFirstToken(heritageClause, Diagnostics.extends_clause_already_seen);\n          }\n          seenExtendsClause = true;\n        } else {\n          Debug.assert(heritageClause.token === 119 /* ImplementsKeyword */);\n          return grammarErrorOnFirstToken(heritageClause, Diagnostics.Interface_declaration_cannot_have_implements_clause);\n        }\n        checkGrammarHeritageClause(heritageClause);\n      }\n    }\n    return false;\n  }\n  function checkGrammarComputedPropertyName(node) {\n    if (node.kind !== 168 /* ComputedPropertyName */) {\n      return false;\n    }\n    const computedPropertyName = node;\n    if (computedPropertyName.expression.kind === 227 /* BinaryExpression */ && computedPropertyName.expression.operatorToken.kind === 28 /* CommaToken */) {\n      return grammarErrorOnNode(computedPropertyName.expression, Diagnostics.A_comma_expression_is_not_allowed_in_a_computed_property_name);\n    }\n    return false;\n  }\n  function checkGrammarForGenerator(node) {\n    if (node.asteriskToken) {\n      Debug.assert(\n        node.kind === 263 /* FunctionDeclaration */ || node.kind === 219 /* FunctionExpression */ || node.kind === 175 /* MethodDeclaration */\n      );\n      if (node.flags & 33554432 /* Ambient */) {\n        return grammarErrorOnNode(node.asteriskToken, Diagnostics.Generators_are_not_allowed_in_an_ambient_context);\n      }\n      if (!node.body) {\n        return grammarErrorOnNode(node.asteriskToken, Diagnostics.An_overload_signature_cannot_be_declared_as_a_generator);\n      }\n    }\n  }\n  function checkGrammarForInvalidQuestionMark(questionToken, message) {\n    return !!questionToken && grammarErrorOnNode(questionToken, message);\n  }\n  function checkGrammarForInvalidExclamationToken(exclamationToken, message) {\n    return !!exclamationToken && grammarErrorOnNode(exclamationToken, message);\n  }\n  function checkGrammarObjectLiteralExpression(node, inDestructuring) {\n    const seen = /* @__PURE__ */ new Map();\n    for (const prop of node.properties) {\n      if (prop.kind === 306 /* SpreadAssignment */) {\n        if (inDestructuring) {\n          const expression = skipParentheses(prop.expression);\n          if (isArrayLiteralExpression(expression) || isObjectLiteralExpression(expression)) {\n            return grammarErrorOnNode(prop.expression, Diagnostics.A_rest_element_cannot_contain_a_binding_pattern);\n          }\n        }\n        continue;\n      }\n      const name = prop.name;\n      if (name.kind === 168 /* ComputedPropertyName */) {\n        checkGrammarComputedPropertyName(name);\n      }\n      if (prop.kind === 305 /* ShorthandPropertyAssignment */ && !inDestructuring && prop.objectAssignmentInitializer) {\n        grammarErrorOnNode(prop.equalsToken, Diagnostics.Did_you_mean_to_use_a_Colon_An_can_only_follow_a_property_name_when_the_containing_object_literal_is_part_of_a_destructuring_pattern);\n      }\n      if (name.kind === 81 /* PrivateIdentifier */) {\n        grammarErrorOnNode(name, Diagnostics.Private_identifiers_are_not_allowed_outside_class_bodies);\n      }\n      if (canHaveModifiers(prop) && prop.modifiers) {\n        for (const mod of prop.modifiers) {\n          if (isModifier(mod) && (mod.kind !== 134 /* AsyncKeyword */ || prop.kind !== 175 /* MethodDeclaration */)) {\n            grammarErrorOnNode(mod, Diagnostics._0_modifier_cannot_be_used_here, getTextOfNode(mod));\n          }\n        }\n      } else if (canHaveIllegalModifiers(prop) && prop.modifiers) {\n        for (const mod of prop.modifiers) {\n          if (isModifier(mod)) {\n            grammarErrorOnNode(mod, Diagnostics._0_modifier_cannot_be_used_here, getTextOfNode(mod));\n          }\n        }\n      }\n      let currentKind;\n      switch (prop.kind) {\n        case 305 /* ShorthandPropertyAssignment */:\n        case 304 /* PropertyAssignment */:\n          checkGrammarForInvalidExclamationToken(prop.exclamationToken, Diagnostics.A_definite_assignment_assertion_is_not_permitted_in_this_context);\n          checkGrammarForInvalidQuestionMark(prop.questionToken, Diagnostics.An_object_member_cannot_be_declared_optional);\n          if (name.kind === 9 /* NumericLiteral */) {\n            checkGrammarNumericLiteral(name);\n          }\n          if (name.kind === 10 /* BigIntLiteral */) {\n            addErrorOrSuggestion(\n              /*isError*/\n              true,\n              createDiagnosticForNode(name, Diagnostics.A_bigint_literal_cannot_be_used_as_a_property_name)\n            );\n          }\n          currentKind = 4 /* PropertyAssignment */;\n          break;\n        case 175 /* MethodDeclaration */:\n          currentKind = 8 /* Method */;\n          break;\n        case 178 /* GetAccessor */:\n          currentKind = 1 /* GetAccessor */;\n          break;\n        case 179 /* SetAccessor */:\n          currentKind = 2 /* SetAccessor */;\n          break;\n        default:\n          Debug.assertNever(prop, \"Unexpected syntax kind:\" + prop.kind);\n      }\n      if (!inDestructuring) {\n        const effectiveName = getEffectivePropertyNameForPropertyNameNode(name);\n        if (effectiveName === void 0) {\n          continue;\n        }\n        const existingKind = seen.get(effectiveName);\n        if (!existingKind) {\n          seen.set(effectiveName, currentKind);\n        } else {\n          if (currentKind & 8 /* Method */ && existingKind & 8 /* Method */) {\n            grammarErrorOnNode(name, Diagnostics.Duplicate_identifier_0, getTextOfNode(name));\n          } else if (currentKind & 4 /* PropertyAssignment */ && existingKind & 4 /* PropertyAssignment */) {\n            grammarErrorOnNode(name, Diagnostics.An_object_literal_cannot_have_multiple_properties_with_the_same_name, getTextOfNode(name));\n          } else if (currentKind & 3 /* GetOrSetAccessor */ && existingKind & 3 /* GetOrSetAccessor */) {\n            if (existingKind !== 3 /* GetOrSetAccessor */ && currentKind !== existingKind) {\n              seen.set(effectiveName, currentKind | existingKind);\n            } else {\n              return grammarErrorOnNode(name, Diagnostics.An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name);\n            }\n          } else {\n            return grammarErrorOnNode(name, Diagnostics.An_object_literal_cannot_have_property_and_accessor_with_the_same_name);\n          }\n        }\n      }\n    }\n  }\n  function checkGrammarJsxElement(node) {\n    checkGrammarJsxName(node.tagName);\n    checkGrammarTypeArguments(node, node.typeArguments);\n    const seen = /* @__PURE__ */ new Map();\n    for (const attr of node.attributes.properties) {\n      if (attr.kind === 294 /* JsxSpreadAttribute */) {\n        continue;\n      }\n      const { name, initializer } = attr;\n      const escapedText = getEscapedTextOfJsxAttributeName(name);\n      if (!seen.get(escapedText)) {\n        seen.set(escapedText, true);\n      } else {\n        return grammarErrorOnNode(name, Diagnostics.JSX_elements_cannot_have_multiple_attributes_with_the_same_name);\n      }\n      if (initializer && initializer.kind === 295 /* JsxExpression */ && !initializer.expression) {\n        return grammarErrorOnNode(initializer, Diagnostics.JSX_attributes_must_only_be_assigned_a_non_empty_expression);\n      }\n    }\n  }\n  function checkGrammarJsxName(node) {\n    if (isPropertyAccessExpression(node) && isJsxNamespacedName(node.expression)) {\n      return grammarErrorOnNode(node.expression, Diagnostics.JSX_property_access_expressions_cannot_include_JSX_namespace_names);\n    }\n    if (isJsxNamespacedName(node) && getJSXTransformEnabled(compilerOptions) && !isIntrinsicJsxName(node.namespace.escapedText)) {\n      return grammarErrorOnNode(node, Diagnostics.React_components_cannot_include_JSX_namespace_names);\n    }\n  }\n  function checkGrammarJsxExpression(node) {\n    if (node.expression && isCommaSequence(node.expression)) {\n      return grammarErrorOnNode(node.expression, Diagnostics.JSX_expressions_may_not_use_the_comma_operator_Did_you_mean_to_write_an_array);\n    }\n  }\n  function checkGrammarForInOrForOfStatement(forInOrOfStatement) {\n    if (checkGrammarStatementInAmbientContext(forInOrOfStatement)) {\n      return true;\n    }\n    if (forInOrOfStatement.kind === 251 /* ForOfStatement */ && forInOrOfStatement.awaitModifier) {\n      if (!(forInOrOfStatement.flags & 65536 /* AwaitContext */)) {\n        const sourceFile = getSourceFileOfNode(forInOrOfStatement);\n        if (isInTopLevelContext(forInOrOfStatement)) {\n          if (!hasParseDiagnostics(sourceFile)) {\n            if (!isEffectiveExternalModule(sourceFile, compilerOptions)) {\n              diagnostics.add(createDiagnosticForNode(forInOrOfStatement.awaitModifier, Diagnostics.for_await_loops_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module));\n            }\n            switch (moduleKind) {\n              case 100 /* Node16 */:\n              case 101 /* Node18 */:\n              case 102 /* Node20 */:\n              case 199 /* NodeNext */:\n                if (sourceFile.impliedNodeFormat === 1 /* CommonJS */) {\n                  diagnostics.add(\n                    createDiagnosticForNode(forInOrOfStatement.awaitModifier, Diagnostics.The_current_file_is_a_CommonJS_module_and_cannot_use_await_at_the_top_level)\n                  );\n                  break;\n                }\n              // fallthrough\n              case 7 /* ES2022 */:\n              case 99 /* ESNext */:\n              case 200 /* Preserve */:\n              case 4 /* System */:\n                if (languageVersion >= 4 /* ES2017 */) {\n                  break;\n                }\n              // fallthrough\n              default:\n                diagnostics.add(\n                  createDiagnosticForNode(forInOrOfStatement.awaitModifier, Diagnostics.Top_level_for_await_loops_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_node18_node20_nodenext_or_preserve_and_the_target_option_is_set_to_es2017_or_higher)\n                );\n                break;\n            }\n          }\n        } else {\n          if (!hasParseDiagnostics(sourceFile)) {\n            const diagnostic = createDiagnosticForNode(forInOrOfStatement.awaitModifier, Diagnostics.for_await_loops_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules);\n            const func = getContainingFunction(forInOrOfStatement);\n            if (func && func.kind !== 177 /* Constructor */) {\n              Debug.assert((getFunctionFlags(func) & 2 /* Async */) === 0, \"Enclosing function should never be an async function.\");\n              const relatedInfo = createDiagnosticForNode(func, Diagnostics.Did_you_mean_to_mark_this_function_as_async);\n              addRelatedInfo(diagnostic, relatedInfo);\n            }\n            diagnostics.add(diagnostic);\n            return true;\n          }\n        }\n      }\n    }\n    if (isForOfStatement(forInOrOfStatement) && !(forInOrOfStatement.flags & 65536 /* AwaitContext */) && isIdentifier(forInOrOfStatement.initializer) && forInOrOfStatement.initializer.escapedText === \"async\") {\n      grammarErrorOnNode(forInOrOfStatement.initializer, Diagnostics.The_left_hand_side_of_a_for_of_statement_may_not_be_async);\n      return false;\n    }\n    if (forInOrOfStatement.initializer.kind === 262 /* VariableDeclarationList */) {\n      const variableList = forInOrOfStatement.initializer;\n      if (!checkGrammarVariableDeclarationList(variableList)) {\n        const declarations = variableList.declarations;\n        if (!declarations.length) {\n          return false;\n        }\n        if (declarations.length > 1) {\n          const diagnostic = forInOrOfStatement.kind === 250 /* ForInStatement */ ? Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement : Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement;\n          return grammarErrorOnFirstToken(variableList.declarations[1], diagnostic);\n        }\n        const firstDeclaration = declarations[0];\n        if (firstDeclaration.initializer) {\n          const diagnostic = forInOrOfStatement.kind === 250 /* ForInStatement */ ? Diagnostics.The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer : Diagnostics.The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer;\n          return grammarErrorOnNode(firstDeclaration.name, diagnostic);\n        }\n        if (firstDeclaration.type) {\n          const diagnostic = forInOrOfStatement.kind === 250 /* ForInStatement */ ? Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation : Diagnostics.The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation;\n          return grammarErrorOnNode(firstDeclaration, diagnostic);\n        }\n      }\n    }\n    return false;\n  }\n  function checkGrammarAccessor(accessor) {\n    if (!(accessor.flags & 33554432 /* Ambient */) && accessor.parent.kind !== 188 /* TypeLiteral */ && accessor.parent.kind !== 265 /* InterfaceDeclaration */) {\n      if (languageVersion < 2 /* ES2015 */ && isPrivateIdentifier(accessor.name)) {\n        return grammarErrorOnNode(accessor.name, Diagnostics.Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher);\n      }\n      if (accessor.body === void 0 && !hasSyntacticModifier(accessor, 64 /* Abstract */)) {\n        return grammarErrorAtPos(accessor, accessor.end - 1, \";\".length, Diagnostics._0_expected, \"{\");\n      }\n    }\n    if (accessor.body) {\n      if (hasSyntacticModifier(accessor, 64 /* Abstract */)) {\n        return grammarErrorOnNode(accessor, Diagnostics.An_abstract_accessor_cannot_have_an_implementation);\n      }\n      if (accessor.parent.kind === 188 /* TypeLiteral */ || accessor.parent.kind === 265 /* InterfaceDeclaration */) {\n        return grammarErrorOnNode(accessor.body, Diagnostics.An_implementation_cannot_be_declared_in_ambient_contexts);\n      }\n    }\n    if (accessor.typeParameters) {\n      return grammarErrorOnNode(accessor.name, Diagnostics.An_accessor_cannot_have_type_parameters);\n    }\n    if (!doesAccessorHaveCorrectParameterCount(accessor)) {\n      return grammarErrorOnNode(\n        accessor.name,\n        accessor.kind === 178 /* GetAccessor */ ? Diagnostics.A_get_accessor_cannot_have_parameters : Diagnostics.A_set_accessor_must_have_exactly_one_parameter\n      );\n    }\n    if (accessor.kind === 179 /* SetAccessor */) {\n      if (accessor.type) {\n        return grammarErrorOnNode(accessor.name, Diagnostics.A_set_accessor_cannot_have_a_return_type_annotation);\n      }\n      const parameter = Debug.checkDefined(getSetAccessorValueParameter(accessor), \"Return value does not match parameter count assertion.\");\n      if (parameter.dotDotDotToken) {\n        return grammarErrorOnNode(parameter.dotDotDotToken, Diagnostics.A_set_accessor_cannot_have_rest_parameter);\n      }\n      if (parameter.questionToken) {\n        return grammarErrorOnNode(parameter.questionToken, Diagnostics.A_set_accessor_cannot_have_an_optional_parameter);\n      }\n      if (parameter.initializer) {\n        return grammarErrorOnNode(accessor.name, Diagnostics.A_set_accessor_parameter_cannot_have_an_initializer);\n      }\n    }\n    return false;\n  }\n  function doesAccessorHaveCorrectParameterCount(accessor) {\n    return getAccessorThisParameter(accessor) || accessor.parameters.length === (accessor.kind === 178 /* GetAccessor */ ? 0 : 1);\n  }\n  function getAccessorThisParameter(accessor) {\n    if (accessor.parameters.length === (accessor.kind === 178 /* GetAccessor */ ? 1 : 2)) {\n      return getThisParameter(accessor);\n    }\n  }\n  function checkGrammarTypeOperatorNode(node) {\n    if (node.operator === 158 /* UniqueKeyword */) {\n      if (node.type.kind !== 155 /* SymbolKeyword */) {\n        return grammarErrorOnNode(node.type, Diagnostics._0_expected, tokenToString(155 /* SymbolKeyword */));\n      }\n      let parent2 = walkUpParenthesizedTypes(node.parent);\n      if (isInJSFile(parent2) && isJSDocTypeExpression(parent2)) {\n        const host2 = getJSDocHost(parent2);\n        if (host2) {\n          parent2 = getSingleVariableOfVariableStatement(host2) || host2;\n        }\n      }\n      switch (parent2.kind) {\n        case 261 /* VariableDeclaration */:\n          const decl = parent2;\n          if (decl.name.kind !== 80 /* Identifier */) {\n            return grammarErrorOnNode(node, Diagnostics.unique_symbol_types_may_not_be_used_on_a_variable_declaration_with_a_binding_name);\n          }\n          if (!isVariableDeclarationInVariableStatement(decl)) {\n            return grammarErrorOnNode(node, Diagnostics.unique_symbol_types_are_only_allowed_on_variables_in_a_variable_statement);\n          }\n          if (!(decl.parent.flags & 2 /* Const */)) {\n            return grammarErrorOnNode(parent2.name, Diagnostics.A_variable_whose_type_is_a_unique_symbol_type_must_be_const);\n          }\n          break;\n        case 173 /* PropertyDeclaration */:\n          if (!isStatic(parent2) || !hasEffectiveReadonlyModifier(parent2)) {\n            return grammarErrorOnNode(parent2.name, Diagnostics.A_property_of_a_class_whose_type_is_a_unique_symbol_type_must_be_both_static_and_readonly);\n          }\n          break;\n        case 172 /* PropertySignature */:\n          if (!hasSyntacticModifier(parent2, 8 /* Readonly */)) {\n            return grammarErrorOnNode(parent2.name, Diagnostics.A_property_of_an_interface_or_type_literal_whose_type_is_a_unique_symbol_type_must_be_readonly);\n          }\n          break;\n        default:\n          return grammarErrorOnNode(node, Diagnostics.unique_symbol_types_are_not_allowed_here);\n      }\n    } else if (node.operator === 148 /* ReadonlyKeyword */) {\n      if (node.type.kind !== 189 /* ArrayType */ && node.type.kind !== 190 /* TupleType */) {\n        return grammarErrorOnFirstToken(node, Diagnostics.readonly_type_modifier_is_only_permitted_on_array_and_tuple_literal_types, tokenToString(155 /* SymbolKeyword */));\n      }\n    }\n  }\n  function checkGrammarForInvalidDynamicName(node, message) {\n    if (isNonBindableDynamicName(node) && !isEntityNameExpression(isElementAccessExpression(node) ? skipParentheses(node.argumentExpression) : node.expression)) {\n      return grammarErrorOnNode(node, message);\n    }\n  }\n  function checkGrammarMethod(node) {\n    if (checkGrammarFunctionLikeDeclaration(node)) {\n      return true;\n    }\n    if (node.kind === 175 /* MethodDeclaration */) {\n      if (node.parent.kind === 211 /* ObjectLiteralExpression */) {\n        if (node.modifiers && !(node.modifiers.length === 1 && first(node.modifiers).kind === 134 /* AsyncKeyword */)) {\n          return grammarErrorOnFirstToken(node, Diagnostics.Modifiers_cannot_appear_here);\n        } else if (checkGrammarForInvalidQuestionMark(node.questionToken, Diagnostics.An_object_member_cannot_be_declared_optional)) {\n          return true;\n        } else if (checkGrammarForInvalidExclamationToken(node.exclamationToken, Diagnostics.A_definite_assignment_assertion_is_not_permitted_in_this_context)) {\n          return true;\n        } else if (node.body === void 0) {\n          return grammarErrorAtPos(node, node.end - 1, \";\".length, Diagnostics._0_expected, \"{\");\n        }\n      }\n      if (checkGrammarForGenerator(node)) {\n        return true;\n      }\n    }\n    if (isClassLike(node.parent)) {\n      if (languageVersion < 2 /* ES2015 */ && isPrivateIdentifier(node.name)) {\n        return grammarErrorOnNode(node.name, Diagnostics.Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher);\n      }\n      if (node.flags & 33554432 /* Ambient */) {\n        return checkGrammarForInvalidDynamicName(node.name, Diagnostics.A_computed_property_name_in_an_ambient_context_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type);\n      } else if (node.kind === 175 /* MethodDeclaration */ && !node.body) {\n        return checkGrammarForInvalidDynamicName(node.name, Diagnostics.A_computed_property_name_in_a_method_overload_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type);\n      }\n    } else if (node.parent.kind === 265 /* InterfaceDeclaration */) {\n      return checkGrammarForInvalidDynamicName(node.name, Diagnostics.A_computed_property_name_in_an_interface_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type);\n    } else if (node.parent.kind === 188 /* TypeLiteral */) {\n      return checkGrammarForInvalidDynamicName(node.name, Diagnostics.A_computed_property_name_in_a_type_literal_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type);\n    }\n  }\n  function checkGrammarBreakOrContinueStatement(node) {\n    let current = node;\n    while (current) {\n      if (isFunctionLikeOrClassStaticBlockDeclaration(current)) {\n        return grammarErrorOnNode(node, Diagnostics.Jump_target_cannot_cross_function_boundary);\n      }\n      switch (current.kind) {\n        case 257 /* LabeledStatement */:\n          if (node.label && current.label.escapedText === node.label.escapedText) {\n            const isMisplacedContinueLabel = node.kind === 252 /* ContinueStatement */ && !isIterationStatement(\n              current.statement,\n              /*lookInLabeledStatements*/\n              true\n            );\n            if (isMisplacedContinueLabel) {\n              return grammarErrorOnNode(node, Diagnostics.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement);\n            }\n            return false;\n          }\n          break;\n        case 256 /* SwitchStatement */:\n          if (node.kind === 253 /* BreakStatement */ && !node.label) {\n            return false;\n          }\n          break;\n        default:\n          if (isIterationStatement(\n            current,\n            /*lookInLabeledStatements*/\n            false\n          ) && !node.label) {\n            return false;\n          }\n          break;\n      }\n      current = current.parent;\n    }\n    if (node.label) {\n      const message = node.kind === 253 /* BreakStatement */ ? Diagnostics.A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement : Diagnostics.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement;\n      return grammarErrorOnNode(node, message);\n    } else {\n      const message = node.kind === 253 /* BreakStatement */ ? Diagnostics.A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement : Diagnostics.A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement;\n      return grammarErrorOnNode(node, message);\n    }\n  }\n  function checkGrammarBindingElement(node) {\n    if (node.dotDotDotToken) {\n      const elements = node.parent.elements;\n      if (node !== last(elements)) {\n        return grammarErrorOnNode(node, Diagnostics.A_rest_element_must_be_last_in_a_destructuring_pattern);\n      }\n      checkGrammarForDisallowedTrailingComma(elements, Diagnostics.A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma);\n      if (node.propertyName) {\n        return grammarErrorOnNode(node.name, Diagnostics.A_rest_element_cannot_have_a_property_name);\n      }\n    }\n    if (node.dotDotDotToken && node.initializer) {\n      return grammarErrorAtPos(node, node.initializer.pos - 1, 1, Diagnostics.A_rest_element_cannot_have_an_initializer);\n    }\n  }\n  function isStringOrNumberLiteralExpression(expr) {\n    return isStringOrNumericLiteralLike(expr) || expr.kind === 225 /* PrefixUnaryExpression */ && expr.operator === 41 /* MinusToken */ && expr.operand.kind === 9 /* NumericLiteral */;\n  }\n  function isBigIntLiteralExpression(expr) {\n    return expr.kind === 10 /* BigIntLiteral */ || expr.kind === 225 /* PrefixUnaryExpression */ && expr.operator === 41 /* MinusToken */ && expr.operand.kind === 10 /* BigIntLiteral */;\n  }\n  function isSimpleLiteralEnumReference(expr) {\n    if ((isPropertyAccessExpression(expr) || isElementAccessExpression(expr) && isStringOrNumberLiteralExpression(expr.argumentExpression)) && isEntityNameExpression(expr.expression)) {\n      return !!(checkExpressionCached(expr).flags & 1056 /* EnumLike */);\n    }\n  }\n  function checkAmbientInitializer(node) {\n    const initializer = node.initializer;\n    if (initializer) {\n      const isInvalidInitializer = !(isStringOrNumberLiteralExpression(initializer) || isSimpleLiteralEnumReference(initializer) || initializer.kind === 112 /* TrueKeyword */ || initializer.kind === 97 /* FalseKeyword */ || isBigIntLiteralExpression(initializer));\n      const isConstOrReadonly = isDeclarationReadonly(node) || isVariableDeclaration(node) && isVarConstLike2(node);\n      if (isConstOrReadonly && !node.type) {\n        if (isInvalidInitializer) {\n          return grammarErrorOnNode(initializer, Diagnostics.A_const_initializer_in_an_ambient_context_must_be_a_string_or_numeric_literal_or_literal_enum_reference);\n        }\n      } else {\n        return grammarErrorOnNode(initializer, Diagnostics.Initializers_are_not_allowed_in_ambient_contexts);\n      }\n    }\n  }\n  function checkGrammarVariableDeclaration(node) {\n    const nodeFlags = getCombinedNodeFlagsCached(node);\n    const blockScopeKind = nodeFlags & 7 /* BlockScoped */;\n    if (isBindingPattern(node.name)) {\n      switch (blockScopeKind) {\n        case 6 /* AwaitUsing */:\n          return grammarErrorOnNode(node, Diagnostics._0_declarations_may_not_have_binding_patterns, \"await using\");\n        case 4 /* Using */:\n          return grammarErrorOnNode(node, Diagnostics._0_declarations_may_not_have_binding_patterns, \"using\");\n      }\n    }\n    if (node.parent.parent.kind !== 250 /* ForInStatement */ && node.parent.parent.kind !== 251 /* ForOfStatement */) {\n      if (nodeFlags & 33554432 /* Ambient */) {\n        checkAmbientInitializer(node);\n      } else if (!node.initializer) {\n        if (isBindingPattern(node.name) && !isBindingPattern(node.parent)) {\n          return grammarErrorOnNode(node, Diagnostics.A_destructuring_declaration_must_have_an_initializer);\n        }\n        switch (blockScopeKind) {\n          case 6 /* AwaitUsing */:\n            return grammarErrorOnNode(node, Diagnostics._0_declarations_must_be_initialized, \"await using\");\n          case 4 /* Using */:\n            return grammarErrorOnNode(node, Diagnostics._0_declarations_must_be_initialized, \"using\");\n          case 2 /* Const */:\n            return grammarErrorOnNode(node, Diagnostics._0_declarations_must_be_initialized, \"const\");\n        }\n      }\n    }\n    if (node.exclamationToken && (node.parent.parent.kind !== 244 /* VariableStatement */ || !node.type || node.initializer || nodeFlags & 33554432 /* Ambient */)) {\n      const message = node.initializer ? Diagnostics.Declarations_with_initializers_cannot_also_have_definite_assignment_assertions : !node.type ? Diagnostics.Declarations_with_definite_assignment_assertions_must_also_have_type_annotations : Diagnostics.A_definite_assignment_assertion_is_not_permitted_in_this_context;\n      return grammarErrorOnNode(node.exclamationToken, message);\n    }\n    if (host.getEmitModuleFormatOfFile(getSourceFileOfNode(node)) < 4 /* System */ && !(node.parent.parent.flags & 33554432 /* Ambient */) && hasSyntacticModifier(node.parent.parent, 32 /* Export */)) {\n      checkESModuleMarker(node.name);\n    }\n    return !!blockScopeKind && checkGrammarNameInLetOrConstDeclarations(node.name);\n  }\n  function checkESModuleMarker(name) {\n    if (name.kind === 80 /* Identifier */) {\n      if (idText(name) === \"__esModule\") {\n        return grammarErrorOnNodeSkippedOn(\"noEmit\", name, Diagnostics.Identifier_expected_esModule_is_reserved_as_an_exported_marker_when_transforming_ECMAScript_modules);\n      }\n    } else {\n      const elements = name.elements;\n      for (const element of elements) {\n        if (!isOmittedExpression(element)) {\n          return checkESModuleMarker(element.name);\n        }\n      }\n    }\n    return false;\n  }\n  function checkGrammarNameInLetOrConstDeclarations(name) {\n    if (name.kind === 80 /* Identifier */) {\n      if (name.escapedText === \"let\") {\n        return grammarErrorOnNode(name, Diagnostics.let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations);\n      }\n    } else {\n      const elements = name.elements;\n      for (const element of elements) {\n        if (!isOmittedExpression(element)) {\n          checkGrammarNameInLetOrConstDeclarations(element.name);\n        }\n      }\n    }\n    return false;\n  }\n  function checkGrammarVariableDeclarationList(declarationList) {\n    const declarations = declarationList.declarations;\n    if (checkGrammarForDisallowedTrailingComma(declarationList.declarations)) {\n      return true;\n    }\n    if (!declarationList.declarations.length) {\n      return grammarErrorAtPos(declarationList, declarations.pos, declarations.end - declarations.pos, Diagnostics.Variable_declaration_list_cannot_be_empty);\n    }\n    const blockScopeFlags = declarationList.flags & 7 /* BlockScoped */;\n    if (blockScopeFlags === 4 /* Using */ || blockScopeFlags === 6 /* AwaitUsing */) {\n      if (isForInStatement(declarationList.parent)) {\n        return grammarErrorOnNode(\n          declarationList,\n          blockScopeFlags === 4 /* Using */ ? Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_be_a_using_declaration : Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_be_an_await_using_declaration\n        );\n      }\n      if (declarationList.flags & 33554432 /* Ambient */) {\n        return grammarErrorOnNode(\n          declarationList,\n          blockScopeFlags === 4 /* Using */ ? Diagnostics.using_declarations_are_not_allowed_in_ambient_contexts : Diagnostics.await_using_declarations_are_not_allowed_in_ambient_contexts\n        );\n      }\n      if (blockScopeFlags === 6 /* AwaitUsing */) {\n        return checkAwaitGrammar(declarationList);\n      }\n    }\n    return false;\n  }\n  function allowBlockDeclarations(parent2) {\n    switch (parent2.kind) {\n      case 246 /* IfStatement */:\n      case 247 /* DoStatement */:\n      case 248 /* WhileStatement */:\n      case 255 /* WithStatement */:\n      case 249 /* ForStatement */:\n      case 250 /* ForInStatement */:\n      case 251 /* ForOfStatement */:\n        return false;\n      case 257 /* LabeledStatement */:\n        return allowBlockDeclarations(parent2.parent);\n    }\n    return true;\n  }\n  function checkGrammarForDisallowedBlockScopedVariableStatement(node) {\n    if (!allowBlockDeclarations(node.parent)) {\n      const blockScopeKind = getCombinedNodeFlagsCached(node.declarationList) & 7 /* BlockScoped */;\n      if (blockScopeKind) {\n        const keyword = blockScopeKind === 1 /* Let */ ? \"let\" : blockScopeKind === 2 /* Const */ ? \"const\" : blockScopeKind === 4 /* Using */ ? \"using\" : blockScopeKind === 6 /* AwaitUsing */ ? \"await using\" : Debug.fail(\"Unknown BlockScope flag\");\n        error2(node, Diagnostics._0_declarations_can_only_be_declared_inside_a_block, keyword);\n      }\n    }\n  }\n  function checkGrammarMetaProperty(node) {\n    const escapedText = node.name.escapedText;\n    switch (node.keywordToken) {\n      case 105 /* NewKeyword */:\n        if (escapedText !== \"target\") {\n          return grammarErrorOnNode(node.name, Diagnostics._0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2, unescapeLeadingUnderscores(node.name.escapedText), tokenToString(node.keywordToken), \"target\");\n        }\n        break;\n      case 102 /* ImportKeyword */:\n        if (escapedText !== \"meta\") {\n          const isCallee = isCallExpression(node.parent) && node.parent.expression === node;\n          if (escapedText === \"defer\") {\n            if (!isCallee) {\n              return grammarErrorAtPos(node, node.end, 0, Diagnostics._0_expected, \"(\");\n            }\n          } else {\n            if (isCallee) {\n              return grammarErrorOnNode(node.name, Diagnostics._0_is_not_a_valid_meta_property_for_keyword_import_Did_you_mean_meta_or_defer, unescapeLeadingUnderscores(node.name.escapedText));\n            }\n            return grammarErrorOnNode(node.name, Diagnostics._0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2, unescapeLeadingUnderscores(node.name.escapedText), tokenToString(node.keywordToken), \"meta\");\n          }\n        }\n        break;\n    }\n  }\n  function hasParseDiagnostics(sourceFile) {\n    return sourceFile.parseDiagnostics.length > 0;\n  }\n  function grammarErrorOnFirstToken(node, message, ...args) {\n    const sourceFile = getSourceFileOfNode(node);\n    if (!hasParseDiagnostics(sourceFile)) {\n      const span = getSpanOfTokenAtPosition(sourceFile, node.pos);\n      diagnostics.add(createFileDiagnostic(sourceFile, span.start, span.length, message, ...args));\n      return true;\n    }\n    return false;\n  }\n  function grammarErrorAtPos(nodeForSourceFile, start, length2, message, ...args) {\n    const sourceFile = getSourceFileOfNode(nodeForSourceFile);\n    if (!hasParseDiagnostics(sourceFile)) {\n      diagnostics.add(createFileDiagnostic(sourceFile, start, length2, message, ...args));\n      return true;\n    }\n    return false;\n  }\n  function grammarErrorOnNodeSkippedOn(key, node, message, ...args) {\n    const sourceFile = getSourceFileOfNode(node);\n    if (!hasParseDiagnostics(sourceFile)) {\n      errorSkippedOn(key, node, message, ...args);\n      return true;\n    }\n    return false;\n  }\n  function grammarErrorOnNode(node, message, ...args) {\n    const sourceFile = getSourceFileOfNode(node);\n    if (!hasParseDiagnostics(sourceFile)) {\n      error2(node, message, ...args);\n      return true;\n    }\n    return false;\n  }\n  function checkGrammarConstructorTypeParameters(node) {\n    const jsdocTypeParameters = isInJSFile(node) ? getJSDocTypeParameterDeclarations(node) : void 0;\n    const range = node.typeParameters || jsdocTypeParameters && firstOrUndefined(jsdocTypeParameters);\n    if (range) {\n      const pos = range.pos === range.end ? range.pos : skipTrivia(getSourceFileOfNode(node).text, range.pos);\n      return grammarErrorAtPos(node, pos, range.end - pos, Diagnostics.Type_parameters_cannot_appear_on_a_constructor_declaration);\n    }\n  }\n  function checkGrammarConstructorTypeAnnotation(node) {\n    const type = node.type || getEffectiveReturnTypeNode(node);\n    if (type) {\n      return grammarErrorOnNode(type, Diagnostics.Type_annotation_cannot_appear_on_a_constructor_declaration);\n    }\n  }\n  function checkGrammarProperty(node) {\n    if (isComputedPropertyName(node.name) && isBinaryExpression(node.name.expression) && node.name.expression.operatorToken.kind === 103 /* InKeyword */) {\n      return grammarErrorOnNode(node.parent.members[0], Diagnostics.A_mapped_type_may_not_declare_properties_or_methods);\n    }\n    if (isClassLike(node.parent)) {\n      if (isStringLiteral(node.name) && node.name.text === \"constructor\") {\n        return grammarErrorOnNode(node.name, Diagnostics.Classes_may_not_have_a_field_named_constructor);\n      }\n      if (checkGrammarForInvalidDynamicName(node.name, Diagnostics.A_computed_property_name_in_a_class_property_declaration_must_have_a_simple_literal_type_or_a_unique_symbol_type)) {\n        return true;\n      }\n      if (languageVersion < 2 /* ES2015 */ && isPrivateIdentifier(node.name)) {\n        return grammarErrorOnNode(node.name, Diagnostics.Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher);\n      }\n      if (languageVersion < 2 /* ES2015 */ && isAutoAccessorPropertyDeclaration(node) && !(node.flags & 33554432 /* Ambient */)) {\n        return grammarErrorOnNode(node.name, Diagnostics.Properties_with_the_accessor_modifier_are_only_available_when_targeting_ECMAScript_2015_and_higher);\n      }\n      if (isAutoAccessorPropertyDeclaration(node) && checkGrammarForInvalidQuestionMark(node.questionToken, Diagnostics.An_accessor_property_cannot_be_declared_optional)) {\n        return true;\n      }\n    } else if (node.parent.kind === 265 /* InterfaceDeclaration */) {\n      if (checkGrammarForInvalidDynamicName(node.name, Diagnostics.A_computed_property_name_in_an_interface_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type)) {\n        return true;\n      }\n      Debug.assertNode(node, isPropertySignature);\n      if (node.initializer) {\n        return grammarErrorOnNode(node.initializer, Diagnostics.An_interface_property_cannot_have_an_initializer);\n      }\n    } else if (isTypeLiteralNode(node.parent)) {\n      if (checkGrammarForInvalidDynamicName(node.name, Diagnostics.A_computed_property_name_in_a_type_literal_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type)) {\n        return true;\n      }\n      Debug.assertNode(node, isPropertySignature);\n      if (node.initializer) {\n        return grammarErrorOnNode(node.initializer, Diagnostics.A_type_literal_property_cannot_have_an_initializer);\n      }\n    }\n    if (node.flags & 33554432 /* Ambient */) {\n      checkAmbientInitializer(node);\n    }\n    if (isPropertyDeclaration(node) && node.exclamationToken && (!isClassLike(node.parent) || !node.type || node.initializer || node.flags & 33554432 /* Ambient */ || isStatic(node) || hasAbstractModifier(node))) {\n      const message = node.initializer ? Diagnostics.Declarations_with_initializers_cannot_also_have_definite_assignment_assertions : !node.type ? Diagnostics.Declarations_with_definite_assignment_assertions_must_also_have_type_annotations : Diagnostics.A_definite_assignment_assertion_is_not_permitted_in_this_context;\n      return grammarErrorOnNode(node.exclamationToken, message);\n    }\n  }\n  function checkGrammarTopLevelElementForRequiredDeclareModifier(node) {\n    if (node.kind === 265 /* InterfaceDeclaration */ || node.kind === 266 /* TypeAliasDeclaration */ || node.kind === 273 /* ImportDeclaration */ || node.kind === 272 /* ImportEqualsDeclaration */ || node.kind === 279 /* ExportDeclaration */ || node.kind === 278 /* ExportAssignment */ || node.kind === 271 /* NamespaceExportDeclaration */ || hasSyntacticModifier(node, 128 /* Ambient */ | 32 /* Export */ | 2048 /* Default */)) {\n      return false;\n    }\n    return grammarErrorOnFirstToken(node, Diagnostics.Top_level_declarations_in_d_ts_files_must_start_with_either_a_declare_or_export_modifier);\n  }\n  function checkGrammarTopLevelElementsForRequiredDeclareModifier(file) {\n    for (const decl of file.statements) {\n      if (isDeclaration(decl) || decl.kind === 244 /* VariableStatement */) {\n        if (checkGrammarTopLevelElementForRequiredDeclareModifier(decl)) {\n          return true;\n        }\n      }\n    }\n    return false;\n  }\n  function checkGrammarSourceFile(node) {\n    return !!(node.flags & 33554432 /* Ambient */) && checkGrammarTopLevelElementsForRequiredDeclareModifier(node);\n  }\n  function checkGrammarStatementInAmbientContext(node) {\n    if (node.flags & 33554432 /* Ambient */) {\n      const links = getNodeLinks(node);\n      if (!links.hasReportedStatementInAmbientContext && (isFunctionLike(node.parent) || isAccessor(node.parent))) {\n        return getNodeLinks(node).hasReportedStatementInAmbientContext = grammarErrorOnFirstToken(node, Diagnostics.An_implementation_cannot_be_declared_in_ambient_contexts);\n      }\n      if (node.parent.kind === 242 /* Block */ || node.parent.kind === 269 /* ModuleBlock */ || node.parent.kind === 308 /* SourceFile */) {\n        const links2 = getNodeLinks(node.parent);\n        if (!links2.hasReportedStatementInAmbientContext) {\n          return links2.hasReportedStatementInAmbientContext = grammarErrorOnFirstToken(node, Diagnostics.Statements_are_not_allowed_in_ambient_contexts);\n        }\n      } else {\n      }\n    }\n    return false;\n  }\n  function checkGrammarNumericLiteral(node) {\n    const isFractional = getTextOfNode(node).includes(\".\");\n    const isScientific = node.numericLiteralFlags & 16 /* Scientific */;\n    if (isFractional || isScientific) {\n      return;\n    }\n    const value = +node.text;\n    if (value <= 2 ** 53 - 1) {\n      return;\n    }\n    addErrorOrSuggestion(\n      /*isError*/\n      false,\n      createDiagnosticForNode(node, Diagnostics.Numeric_literals_with_absolute_values_equal_to_2_53_or_greater_are_too_large_to_be_represented_accurately_as_integers)\n    );\n  }\n  function checkGrammarBigIntLiteral(node) {\n    const literalType = isLiteralTypeNode(node.parent) || isPrefixUnaryExpression(node.parent) && isLiteralTypeNode(node.parent.parent);\n    if (!literalType) {\n      if (!(node.flags & 33554432 /* Ambient */) && languageVersion < 7 /* ES2020 */) {\n        if (grammarErrorOnNode(node, Diagnostics.BigInt_literals_are_not_available_when_targeting_lower_than_ES2020)) {\n          return true;\n        }\n      }\n    }\n    return false;\n  }\n  function grammarErrorAfterFirstToken(node, message, ...args) {\n    const sourceFile = getSourceFileOfNode(node);\n    if (!hasParseDiagnostics(sourceFile)) {\n      const span = getSpanOfTokenAtPosition(sourceFile, node.pos);\n      diagnostics.add(createFileDiagnostic(\n        sourceFile,\n        textSpanEnd(span),\n        /*length*/\n        0,\n        message,\n        ...args\n      ));\n      return true;\n    }\n    return false;\n  }\n  function getAmbientModules() {\n    if (!ambientModulesCache) {\n      ambientModulesCache = [];\n      globals.forEach((global2, sym) => {\n        if (ambientModuleSymbolRegex.test(sym)) {\n          ambientModulesCache.push(global2);\n        }\n      });\n    }\n    return ambientModulesCache;\n  }\n  function checkGrammarImportClause(node) {\n    var _a, _b;\n    if (node.phaseModifier === 156 /* TypeKeyword */) {\n      if (node.name && node.namedBindings) {\n        return grammarErrorOnNode(node, Diagnostics.A_type_only_import_can_specify_a_default_import_or_named_bindings_but_not_both);\n      }\n      if (((_a = node.namedBindings) == null ? void 0 : _a.kind) === 276 /* NamedImports */) {\n        return checkGrammarNamedImportsOrExports(node.namedBindings);\n      }\n    } else if (node.phaseModifier === 166 /* DeferKeyword */) {\n      if (node.name) {\n        return grammarErrorOnNode(node, Diagnostics.Default_imports_are_not_allowed_in_a_deferred_import);\n      }\n      if (((_b = node.namedBindings) == null ? void 0 : _b.kind) === 276 /* NamedImports */) {\n        return grammarErrorOnNode(node, Diagnostics.Named_imports_are_not_allowed_in_a_deferred_import);\n      }\n      if (moduleKind !== 99 /* ESNext */ && moduleKind !== 200 /* Preserve */) {\n        return grammarErrorOnNode(node, Diagnostics.Deferred_imports_are_only_supported_when_the_module_flag_is_set_to_esnext_or_preserve);\n      }\n    }\n    return false;\n  }\n  function checkGrammarNamedImportsOrExports(namedBindings) {\n    return !!forEach(namedBindings.elements, (specifier) => {\n      if (specifier.isTypeOnly) {\n        return grammarErrorOnFirstToken(\n          specifier,\n          specifier.kind === 277 /* ImportSpecifier */ ? Diagnostics.The_type_modifier_cannot_be_used_on_a_named_import_when_import_type_is_used_on_its_import_statement : Diagnostics.The_type_modifier_cannot_be_used_on_a_named_export_when_export_type_is_used_on_its_export_statement\n        );\n      }\n    });\n  }\n  function checkGrammarImportCallExpression(node) {\n    if (compilerOptions.verbatimModuleSyntax && moduleKind === 1 /* CommonJS */) {\n      return grammarErrorOnNode(node, getVerbatimModuleSyntaxErrorMessage(node));\n    }\n    if (node.expression.kind === 237 /* MetaProperty */) {\n      if (moduleKind !== 99 /* ESNext */ && moduleKind !== 200 /* Preserve */) {\n        return grammarErrorOnNode(node, Diagnostics.Deferred_imports_are_only_supported_when_the_module_flag_is_set_to_esnext_or_preserve);\n      }\n    } else if (moduleKind === 5 /* ES2015 */) {\n      return grammarErrorOnNode(node, Diagnostics.Dynamic_imports_are_only_supported_when_the_module_flag_is_set_to_es2020_es2022_esnext_commonjs_amd_system_umd_node16_node18_node20_or_nodenext);\n    }\n    if (node.typeArguments) {\n      return grammarErrorOnNode(node, Diagnostics.This_use_of_import_is_invalid_import_calls_can_be_written_but_they_must_have_parentheses_and_cannot_have_type_arguments);\n    }\n    const nodeArguments = node.arguments;\n    if (!(100 /* Node16 */ <= moduleKind && moduleKind <= 199 /* NodeNext */) && moduleKind !== 99 /* ESNext */ && moduleKind !== 200 /* Preserve */) {\n      checkGrammarForDisallowedTrailingComma(nodeArguments);\n      if (nodeArguments.length > 1) {\n        const importAttributesArgument = nodeArguments[1];\n        return grammarErrorOnNode(importAttributesArgument, Diagnostics.Dynamic_imports_only_support_a_second_argument_when_the_module_option_is_set_to_esnext_node16_node18_node20_nodenext_or_preserve);\n      }\n    }\n    if (nodeArguments.length === 0 || nodeArguments.length > 2) {\n      return grammarErrorOnNode(node, Diagnostics.Dynamic_imports_can_only_accept_a_module_specifier_and_an_optional_set_of_attributes_as_arguments);\n    }\n    const spreadElement = find(nodeArguments, isSpreadElement);\n    if (spreadElement) {\n      return grammarErrorOnNode(spreadElement, Diagnostics.Argument_of_dynamic_import_cannot_be_spread_element);\n    }\n    return false;\n  }\n  function findMatchingTypeReferenceOrTypeAliasReference(source, unionTarget) {\n    const sourceObjectFlags = getObjectFlags(source);\n    if (sourceObjectFlags & (4 /* Reference */ | 16 /* Anonymous */) && unionTarget.flags & 1048576 /* Union */) {\n      return find(unionTarget.types, (target) => {\n        if (target.flags & 524288 /* Object */) {\n          const overlapObjFlags = sourceObjectFlags & getObjectFlags(target);\n          if (overlapObjFlags & 4 /* Reference */) {\n            return source.target === target.target;\n          }\n          if (overlapObjFlags & 16 /* Anonymous */) {\n            return !!source.aliasSymbol && source.aliasSymbol === target.aliasSymbol;\n          }\n        }\n        return false;\n      });\n    }\n  }\n  function findBestTypeForObjectLiteral(source, unionTarget) {\n    if (getObjectFlags(source) & 128 /* ObjectLiteral */ && someType(unionTarget, isArrayLikeType)) {\n      return find(unionTarget.types, (t) => !isArrayLikeType(t));\n    }\n  }\n  function findBestTypeForInvokable(source, unionTarget) {\n    let signatureKind = 0 /* Call */;\n    const hasSignatures2 = getSignaturesOfType(source, signatureKind).length > 0 || (signatureKind = 1 /* Construct */, getSignaturesOfType(source, signatureKind).length > 0);\n    if (hasSignatures2) {\n      return find(unionTarget.types, (t) => getSignaturesOfType(t, signatureKind).length > 0);\n    }\n  }\n  function findMostOverlappyType(source, unionTarget) {\n    let bestMatch;\n    if (!(source.flags & (402784252 /* Primitive */ | 406847488 /* InstantiablePrimitive */))) {\n      let matchingCount = 0;\n      for (const target of unionTarget.types) {\n        if (!(target.flags & (402784252 /* Primitive */ | 406847488 /* InstantiablePrimitive */))) {\n          const overlap = getIntersectionType([getIndexType(source), getIndexType(target)]);\n          if (overlap.flags & 4194304 /* Index */) {\n            return target;\n          } else if (isUnitType(overlap) || overlap.flags & 1048576 /* Union */) {\n            const len = overlap.flags & 1048576 /* Union */ ? countWhere(overlap.types, isUnitType) : 1;\n            if (len >= matchingCount) {\n              bestMatch = target;\n              matchingCount = len;\n            }\n          }\n        }\n      }\n    }\n    return bestMatch;\n  }\n  function filterPrimitivesIfContainsNonPrimitive(type) {\n    if (maybeTypeOfKind(type, 67108864 /* NonPrimitive */)) {\n      const result = filterType(type, (t) => !(t.flags & 402784252 /* Primitive */));\n      if (!(result.flags & 131072 /* Never */)) {\n        return result;\n      }\n    }\n    return type;\n  }\n  function findMatchingDiscriminantType(source, target, isRelatedTo) {\n    if (target.flags & 1048576 /* Union */ && source.flags & (2097152 /* Intersection */ | 524288 /* Object */)) {\n      const match = getMatchingUnionConstituentForType(target, source);\n      if (match) {\n        return match;\n      }\n      const sourceProperties = getPropertiesOfType(source);\n      if (sourceProperties) {\n        const sourcePropertiesFiltered = findDiscriminantProperties(sourceProperties, target);\n        if (sourcePropertiesFiltered) {\n          const discriminated = discriminateTypeByDiscriminableItems(target, map(sourcePropertiesFiltered, (p) => [() => getTypeOfSymbol(p), p.escapedName]), isRelatedTo);\n          if (discriminated !== target) {\n            return discriminated;\n          }\n        }\n      }\n    }\n    return void 0;\n  }\n  function getEffectivePropertyNameForPropertyNameNode(node) {\n    const name = getPropertyNameForPropertyNameNode(node);\n    return name ? name : isComputedPropertyName(node) ? tryGetNameFromType(getTypeOfExpression(node.expression)) : void 0;\n  }\n  function getCombinedModifierFlagsCached(node) {\n    if (lastGetCombinedModifierFlagsNode === node) {\n      return lastGetCombinedModifierFlagsResult;\n    }\n    lastGetCombinedModifierFlagsNode = node;\n    lastGetCombinedModifierFlagsResult = getCombinedModifierFlags(node);\n    return lastGetCombinedModifierFlagsResult;\n  }\n  function getCombinedNodeFlagsCached(node) {\n    if (lastGetCombinedNodeFlagsNode === node) {\n      return lastGetCombinedNodeFlagsResult;\n    }\n    lastGetCombinedNodeFlagsNode = node;\n    lastGetCombinedNodeFlagsResult = getCombinedNodeFlags(node);\n    return lastGetCombinedNodeFlagsResult;\n  }\n  function isVarConstLike2(node) {\n    const blockScopeKind = getCombinedNodeFlagsCached(node) & 7 /* BlockScoped */;\n    return blockScopeKind === 2 /* Const */ || blockScopeKind === 4 /* Using */ || blockScopeKind === 6 /* AwaitUsing */;\n  }\n  function getJSXRuntimeImportSpecifier(file, specifierText) {\n    const jsxImportIndex = compilerOptions.importHelpers ? 1 : 0;\n    const specifier = file == null ? void 0 : file.imports[jsxImportIndex];\n    if (specifier) {\n      Debug.assert(nodeIsSynthesized(specifier) && specifier.text === specifierText, `Expected sourceFile.imports[${jsxImportIndex}] to be the synthesized JSX runtime import`);\n    }\n    return specifier;\n  }\n  function getImportHelpersImportSpecifier(file) {\n    Debug.assert(compilerOptions.importHelpers, \"Expected importHelpers to be enabled\");\n    const specifier = file.imports[0];\n    Debug.assert(specifier && nodeIsSynthesized(specifier) && specifier.text === \"tslib\", `Expected sourceFile.imports[0] to be the synthesized tslib import`);\n    return specifier;\n  }\n}\nfunction isNotAccessor(declaration) {\n  return !isAccessor(declaration);\n}\nfunction isNotOverload(declaration) {\n  return declaration.kind !== 263 /* FunctionDeclaration */ && declaration.kind !== 175 /* MethodDeclaration */ || !!declaration.body;\n}\nfunction isDeclarationNameOrImportPropertyName(name) {\n  switch (name.parent.kind) {\n    case 277 /* ImportSpecifier */:\n    case 282 /* ExportSpecifier */:\n      return isIdentifier(name) || name.kind === 11 /* StringLiteral */;\n    default:\n      return isDeclarationName(name);\n  }\n}\nvar JsxNames;\n((JsxNames2) => {\n  JsxNames2.JSX = \"JSX\";\n  JsxNames2.IntrinsicElements = \"IntrinsicElements\";\n  JsxNames2.ElementClass = \"ElementClass\";\n  JsxNames2.ElementAttributesPropertyNameContainer = \"ElementAttributesProperty\";\n  JsxNames2.ElementChildrenAttributeNameContainer = \"ElementChildrenAttribute\";\n  JsxNames2.Element = \"Element\";\n  JsxNames2.ElementType = \"ElementType\";\n  JsxNames2.IntrinsicAttributes = \"IntrinsicAttributes\";\n  JsxNames2.IntrinsicClassAttributes = \"IntrinsicClassAttributes\";\n  JsxNames2.LibraryManagedAttributes = \"LibraryManagedAttributes\";\n})(JsxNames || (JsxNames = {}));\nvar ReactNames;\n((ReactNames2) => {\n  ReactNames2.Fragment = \"Fragment\";\n})(ReactNames || (ReactNames = {}));\nfunction getIterationTypesKeyFromIterationTypeKind(typeKind) {\n  switch (typeKind) {\n    case 0 /* Yield */:\n      return \"yieldType\";\n    case 1 /* Return */:\n      return \"returnType\";\n    case 2 /* Next */:\n      return \"nextType\";\n  }\n}\nfunction signatureHasRestParameter(s) {\n  return !!(s.flags & 1 /* HasRestParameter */);\n}\nfunction signatureHasLiteralTypes(s) {\n  return !!(s.flags & 2 /* HasLiteralTypes */);\n}\nfunction createBasicNodeBuilderModuleSpecifierResolutionHost(host) {\n  return {\n    getCommonSourceDirectory: !!host.getCommonSourceDirectory ? () => host.getCommonSourceDirectory() : () => \"\",\n    getCurrentDirectory: () => host.getCurrentDirectory(),\n    getSymlinkCache: maybeBind(host, host.getSymlinkCache),\n    getPackageJsonInfoCache: () => {\n      var _a;\n      return (_a = host.getPackageJsonInfoCache) == null ? void 0 : _a.call(host);\n    },\n    useCaseSensitiveFileNames: () => host.useCaseSensitiveFileNames(),\n    redirectTargetsMap: host.redirectTargetsMap,\n    getRedirectFromSourceFile: (fileName) => host.getRedirectFromSourceFile(fileName),\n    isSourceOfProjectReferenceRedirect: (fileName) => host.isSourceOfProjectReferenceRedirect(fileName),\n    fileExists: (fileName) => host.fileExists(fileName),\n    getFileIncludeReasons: () => host.getFileIncludeReasons(),\n    readFile: host.readFile ? (fileName) => host.readFile(fileName) : void 0,\n    getDefaultResolutionModeForFile: (file) => host.getDefaultResolutionModeForFile(file),\n    getModeForResolutionAtIndex: (file, index) => host.getModeForResolutionAtIndex(file, index),\n    getGlobalTypingsCacheLocation: maybeBind(host, host.getGlobalTypingsCacheLocation)\n  };\n}\nvar SymbolTrackerImpl = class _SymbolTrackerImpl {\n  constructor(context, tracker, moduleResolverHost) {\n    this.moduleResolverHost = void 0;\n    this.inner = void 0;\n    this.disableTrackSymbol = false;\n    var _a;\n    while (tracker instanceof _SymbolTrackerImpl) {\n      tracker = tracker.inner;\n    }\n    this.inner = tracker;\n    this.moduleResolverHost = moduleResolverHost;\n    this.context = context;\n    this.canTrackSymbol = !!((_a = this.inner) == null ? void 0 : _a.trackSymbol);\n  }\n  trackSymbol(symbol, enclosingDeclaration, meaning) {\n    var _a, _b;\n    if (((_a = this.inner) == null ? void 0 : _a.trackSymbol) && !this.disableTrackSymbol) {\n      if (this.inner.trackSymbol(symbol, enclosingDeclaration, meaning)) {\n        this.onDiagnosticReported();\n        return true;\n      }\n      if (!(symbol.flags & 262144 /* TypeParameter */)) ((_b = this.context).trackedSymbols ?? (_b.trackedSymbols = [])).push([symbol, enclosingDeclaration, meaning]);\n    }\n    return false;\n  }\n  reportInaccessibleThisError() {\n    var _a;\n    if ((_a = this.inner) == null ? void 0 : _a.reportInaccessibleThisError) {\n      this.onDiagnosticReported();\n      this.inner.reportInaccessibleThisError();\n    }\n  }\n  reportPrivateInBaseOfClassExpression(propertyName) {\n    var _a;\n    if ((_a = this.inner) == null ? void 0 : _a.reportPrivateInBaseOfClassExpression) {\n      this.onDiagnosticReported();\n      this.inner.reportPrivateInBaseOfClassExpression(propertyName);\n    }\n  }\n  reportInaccessibleUniqueSymbolError() {\n    var _a;\n    if ((_a = this.inner) == null ? void 0 : _a.reportInaccessibleUniqueSymbolError) {\n      this.onDiagnosticReported();\n      this.inner.reportInaccessibleUniqueSymbolError();\n    }\n  }\n  reportCyclicStructureError() {\n    var _a;\n    if ((_a = this.inner) == null ? void 0 : _a.reportCyclicStructureError) {\n      this.onDiagnosticReported();\n      this.inner.reportCyclicStructureError();\n    }\n  }\n  reportLikelyUnsafeImportRequiredError(specifier) {\n    var _a;\n    if ((_a = this.inner) == null ? void 0 : _a.reportLikelyUnsafeImportRequiredError) {\n      this.onDiagnosticReported();\n      this.inner.reportLikelyUnsafeImportRequiredError(specifier);\n    }\n  }\n  reportTruncationError() {\n    var _a;\n    if ((_a = this.inner) == null ? void 0 : _a.reportTruncationError) {\n      this.onDiagnosticReported();\n      this.inner.reportTruncationError();\n    }\n  }\n  reportNonlocalAugmentation(containingFile, parentSymbol, augmentingSymbol) {\n    var _a;\n    if ((_a = this.inner) == null ? void 0 : _a.reportNonlocalAugmentation) {\n      this.onDiagnosticReported();\n      this.inner.reportNonlocalAugmentation(containingFile, parentSymbol, augmentingSymbol);\n    }\n  }\n  reportNonSerializableProperty(propertyName) {\n    var _a;\n    if ((_a = this.inner) == null ? void 0 : _a.reportNonSerializableProperty) {\n      this.onDiagnosticReported();\n      this.inner.reportNonSerializableProperty(propertyName);\n    }\n  }\n  onDiagnosticReported() {\n    this.context.reportedDiagnostic = true;\n  }\n  reportInferenceFallback(node) {\n    var _a;\n    if (((_a = this.inner) == null ? void 0 : _a.reportInferenceFallback) && !this.context.suppressReportInferenceFallback) {\n      this.onDiagnosticReported();\n      this.inner.reportInferenceFallback(node);\n    }\n  }\n  pushErrorFallbackNode(node) {\n    var _a, _b;\n    return (_b = (_a = this.inner) == null ? void 0 : _a.pushErrorFallbackNode) == null ? void 0 : _b.call(_a, node);\n  }\n  popErrorFallbackNode() {\n    var _a, _b;\n    return (_b = (_a = this.inner) == null ? void 0 : _a.popErrorFallbackNode) == null ? void 0 : _b.call(_a);\n  }\n};\n\n// src/compiler/visitorPublic.ts\nfunction visitNode(node, visitor, test, lift) {\n  if (node === void 0) {\n    return node;\n  }\n  const visited = visitor(node);\n  let visitedNode;\n  if (visited === void 0) {\n    return void 0;\n  } else if (isArray(visited)) {\n    visitedNode = (lift || extractSingleNode)(visited);\n  } else {\n    visitedNode = visited;\n  }\n  Debug.assertNode(visitedNode, test);\n  return visitedNode;\n}\nfunction visitNodes2(nodes, visitor, test, start, count) {\n  if (nodes === void 0) {\n    return nodes;\n  }\n  const length2 = nodes.length;\n  if (start === void 0 || start < 0) {\n    start = 0;\n  }\n  if (count === void 0 || count > length2 - start) {\n    count = length2 - start;\n  }\n  let hasTrailingComma;\n  let pos = -1;\n  let end = -1;\n  if (start > 0 || count < length2) {\n    hasTrailingComma = nodes.hasTrailingComma && start + count === length2;\n  } else {\n    pos = nodes.pos;\n    end = nodes.end;\n    hasTrailingComma = nodes.hasTrailingComma;\n  }\n  const updated = visitArrayWorker(nodes, visitor, test, start, count);\n  if (updated !== nodes) {\n    const updatedArray = factory.createNodeArray(updated, hasTrailingComma);\n    setTextRangePosEnd(updatedArray, pos, end);\n    return updatedArray;\n  }\n  return nodes;\n}\nfunction visitArray(nodes, visitor, test, start, count) {\n  if (nodes === void 0) {\n    return nodes;\n  }\n  const length2 = nodes.length;\n  if (start === void 0 || start < 0) {\n    start = 0;\n  }\n  if (count === void 0 || count > length2 - start) {\n    count = length2 - start;\n  }\n  return visitArrayWorker(nodes, visitor, test, start, count);\n}\nfunction visitArrayWorker(nodes, visitor, test, start, count) {\n  let updated;\n  const length2 = nodes.length;\n  if (start > 0 || count < length2) {\n    updated = [];\n  }\n  for (let i = 0; i < count; i++) {\n    const node = nodes[i + start];\n    const visited = node !== void 0 ? visitor ? visitor(node) : node : void 0;\n    if (updated !== void 0 || visited === void 0 || visited !== node) {\n      if (updated === void 0) {\n        updated = nodes.slice(0, i);\n        Debug.assertEachNode(updated, test);\n      }\n      if (visited) {\n        if (isArray(visited)) {\n          for (const visitedNode of visited) {\n            Debug.assertNode(visitedNode, test);\n            updated.push(visitedNode);\n          }\n        } else {\n          Debug.assertNode(visited, test);\n          updated.push(visited);\n        }\n      }\n    }\n  }\n  if (updated) {\n    return updated;\n  }\n  Debug.assertEachNode(nodes, test);\n  return nodes;\n}\nfunction visitLexicalEnvironment(statements, visitor, context, start, ensureUseStrict, nodesVisitor = visitNodes2) {\n  context.startLexicalEnvironment();\n  statements = nodesVisitor(statements, visitor, isStatement, start);\n  if (ensureUseStrict) statements = context.factory.ensureUseStrict(statements);\n  return factory.mergeLexicalEnvironment(statements, context.endLexicalEnvironment());\n}\nfunction visitParameterList(nodes, visitor, context, nodesVisitor = visitNodes2) {\n  let updated;\n  context.startLexicalEnvironment();\n  if (nodes) {\n    context.setLexicalEnvironmentFlags(1 /* InParameters */, true);\n    updated = nodesVisitor(nodes, visitor, isParameter);\n    if (context.getLexicalEnvironmentFlags() & 2 /* VariablesHoistedInParameters */ && getEmitScriptTarget(context.getCompilerOptions()) >= 2 /* ES2015 */) {\n      updated = addDefaultValueAssignmentsIfNeeded(updated, context);\n    }\n    context.setLexicalEnvironmentFlags(1 /* InParameters */, false);\n  }\n  context.suspendLexicalEnvironment();\n  return updated;\n}\nfunction addDefaultValueAssignmentsIfNeeded(parameters, context) {\n  let result;\n  for (let i = 0; i < parameters.length; i++) {\n    const parameter = parameters[i];\n    const updated = addDefaultValueAssignmentIfNeeded(parameter, context);\n    if (result || updated !== parameter) {\n      if (!result) result = parameters.slice(0, i);\n      result[i] = updated;\n    }\n  }\n  if (result) {\n    return setTextRange(context.factory.createNodeArray(result, parameters.hasTrailingComma), parameters);\n  }\n  return parameters;\n}\nfunction addDefaultValueAssignmentIfNeeded(parameter, context) {\n  return parameter.dotDotDotToken ? parameter : isBindingPattern(parameter.name) ? addDefaultValueAssignmentForBindingPattern(parameter, context) : parameter.initializer ? addDefaultValueAssignmentForInitializer(parameter, parameter.name, parameter.initializer, context) : parameter;\n}\nfunction addDefaultValueAssignmentForBindingPattern(parameter, context) {\n  const { factory: factory2 } = context;\n  context.addInitializationStatement(\n    factory2.createVariableStatement(\n      /*modifiers*/\n      void 0,\n      factory2.createVariableDeclarationList([\n        factory2.createVariableDeclaration(\n          parameter.name,\n          /*exclamationToken*/\n          void 0,\n          parameter.type,\n          parameter.initializer ? factory2.createConditionalExpression(\n            factory2.createStrictEquality(\n              factory2.getGeneratedNameForNode(parameter),\n              factory2.createVoidZero()\n            ),\n            /*questionToken*/\n            void 0,\n            parameter.initializer,\n            /*colonToken*/\n            void 0,\n            factory2.getGeneratedNameForNode(parameter)\n          ) : factory2.getGeneratedNameForNode(parameter)\n        )\n      ])\n    )\n  );\n  return factory2.updateParameterDeclaration(\n    parameter,\n    parameter.modifiers,\n    parameter.dotDotDotToken,\n    factory2.getGeneratedNameForNode(parameter),\n    parameter.questionToken,\n    parameter.type,\n    /*initializer*/\n    void 0\n  );\n}\nfunction addDefaultValueAssignmentForInitializer(parameter, name, initializer, context) {\n  const factory2 = context.factory;\n  context.addInitializationStatement(\n    factory2.createIfStatement(\n      factory2.createTypeCheck(factory2.cloneNode(name), \"undefined\"),\n      setEmitFlags(\n        setTextRange(\n          factory2.createBlock([\n            factory2.createExpressionStatement(\n              setEmitFlags(\n                setTextRange(\n                  factory2.createAssignment(\n                    setEmitFlags(factory2.cloneNode(name), 96 /* NoSourceMap */),\n                    setEmitFlags(initializer, 96 /* NoSourceMap */ | getEmitFlags(initializer) | 3072 /* NoComments */)\n                  ),\n                  parameter\n                ),\n                3072 /* NoComments */\n              )\n            )\n          ]),\n          parameter\n        ),\n        1 /* SingleLine */ | 64 /* NoTrailingSourceMap */ | 768 /* NoTokenSourceMaps */ | 3072 /* NoComments */\n      )\n    )\n  );\n  return factory2.updateParameterDeclaration(\n    parameter,\n    parameter.modifiers,\n    parameter.dotDotDotToken,\n    parameter.name,\n    parameter.questionToken,\n    parameter.type,\n    /*initializer*/\n    void 0\n  );\n}\nfunction visitFunctionBody(node, visitor, context, nodeVisitor = visitNode) {\n  context.resumeLexicalEnvironment();\n  const updated = nodeVisitor(node, visitor, isConciseBody);\n  const declarations = context.endLexicalEnvironment();\n  if (some(declarations)) {\n    if (!updated) {\n      return context.factory.createBlock(declarations);\n    }\n    const block = context.factory.converters.convertToFunctionBlock(updated);\n    const statements = factory.mergeLexicalEnvironment(block.statements, declarations);\n    return context.factory.updateBlock(block, statements);\n  }\n  return updated;\n}\nfunction visitIterationBody(body, visitor, context, nodeVisitor = visitNode) {\n  context.startBlockScope();\n  const updated = nodeVisitor(body, visitor, isStatement, context.factory.liftToBlock);\n  Debug.assert(updated);\n  const declarations = context.endBlockScope();\n  if (some(declarations)) {\n    if (isBlock(updated)) {\n      declarations.push(...updated.statements);\n      return context.factory.updateBlock(updated, declarations);\n    }\n    declarations.push(updated);\n    return context.factory.createBlock(declarations);\n  }\n  return updated;\n}\nfunction visitCommaListElements(elements, visitor, discardVisitor = visitor) {\n  if (discardVisitor === visitor || elements.length <= 1) {\n    return visitNodes2(elements, visitor, isExpression);\n  }\n  let i = 0;\n  const length2 = elements.length;\n  return visitNodes2(elements, (node) => {\n    const discarded = i < length2 - 1;\n    i++;\n    return discarded ? discardVisitor(node) : visitor(node);\n  }, isExpression);\n}\nfunction visitEachChild(node, visitor, context = nullTransformationContext, nodesVisitor = visitNodes2, tokenVisitor, nodeVisitor = visitNode) {\n  if (node === void 0) {\n    return void 0;\n  }\n  const fn = visitEachChildTable[node.kind];\n  return fn === void 0 ? node : fn(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor);\n}\nvar visitEachChildTable = {\n  [167 /* QualifiedName */]: function visitEachChildOfQualifiedName(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateQualifiedName(\n      node,\n      Debug.checkDefined(nodeVisitor(node.left, visitor, isEntityName)),\n      Debug.checkDefined(nodeVisitor(node.right, visitor, isIdentifier))\n    );\n  },\n  [168 /* ComputedPropertyName */]: function visitEachChildOfComputedPropertyName(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateComputedPropertyName(\n      node,\n      Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression))\n    );\n  },\n  // Signature elements\n  [169 /* TypeParameter */]: function visitEachChildOfTypeParameterDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateTypeParameterDeclaration(\n      node,\n      nodesVisitor(node.modifiers, visitor, isModifier),\n      Debug.checkDefined(nodeVisitor(node.name, visitor, isIdentifier)),\n      nodeVisitor(node.constraint, visitor, isTypeNode),\n      nodeVisitor(node.default, visitor, isTypeNode)\n    );\n  },\n  [170 /* Parameter */]: function visitEachChildOfParameterDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {\n    return context.factory.updateParameterDeclaration(\n      node,\n      nodesVisitor(node.modifiers, visitor, isModifierLike),\n      tokenVisitor ? nodeVisitor(node.dotDotDotToken, tokenVisitor, isDotDotDotToken) : node.dotDotDotToken,\n      Debug.checkDefined(nodeVisitor(node.name, visitor, isBindingName)),\n      tokenVisitor ? nodeVisitor(node.questionToken, tokenVisitor, isQuestionToken) : node.questionToken,\n      nodeVisitor(node.type, visitor, isTypeNode),\n      nodeVisitor(node.initializer, visitor, isExpression)\n    );\n  },\n  [171 /* Decorator */]: function visitEachChildOfDecorator(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateDecorator(\n      node,\n      Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression))\n    );\n  },\n  // Type elements\n  [172 /* PropertySignature */]: function visitEachChildOfPropertySignature(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {\n    return context.factory.updatePropertySignature(\n      node,\n      nodesVisitor(node.modifiers, visitor, isModifier),\n      Debug.checkDefined(nodeVisitor(node.name, visitor, isPropertyName)),\n      tokenVisitor ? nodeVisitor(node.questionToken, tokenVisitor, isQuestionToken) : node.questionToken,\n      nodeVisitor(node.type, visitor, isTypeNode)\n    );\n  },\n  [173 /* PropertyDeclaration */]: function visitEachChildOfPropertyDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {\n    return context.factory.updatePropertyDeclaration(\n      node,\n      nodesVisitor(node.modifiers, visitor, isModifierLike),\n      Debug.checkDefined(nodeVisitor(node.name, visitor, isPropertyName)),\n      // QuestionToken and ExclamationToken are mutually exclusive in PropertyDeclaration\n      tokenVisitor ? nodeVisitor(node.questionToken ?? node.exclamationToken, tokenVisitor, isQuestionOrExclamationToken) : node.questionToken ?? node.exclamationToken,\n      nodeVisitor(node.type, visitor, isTypeNode),\n      nodeVisitor(node.initializer, visitor, isExpression)\n    );\n  },\n  [174 /* MethodSignature */]: function visitEachChildOfMethodSignature(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {\n    return context.factory.updateMethodSignature(\n      node,\n      nodesVisitor(node.modifiers, visitor, isModifier),\n      Debug.checkDefined(nodeVisitor(node.name, visitor, isPropertyName)),\n      tokenVisitor ? nodeVisitor(node.questionToken, tokenVisitor, isQuestionToken) : node.questionToken,\n      nodesVisitor(node.typeParameters, visitor, isTypeParameterDeclaration),\n      nodesVisitor(node.parameters, visitor, isParameter),\n      nodeVisitor(node.type, visitor, isTypeNode)\n    );\n  },\n  [175 /* MethodDeclaration */]: function visitEachChildOfMethodDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {\n    return context.factory.updateMethodDeclaration(\n      node,\n      nodesVisitor(node.modifiers, visitor, isModifierLike),\n      tokenVisitor ? nodeVisitor(node.asteriskToken, tokenVisitor, isAsteriskToken) : node.asteriskToken,\n      Debug.checkDefined(nodeVisitor(node.name, visitor, isPropertyName)),\n      tokenVisitor ? nodeVisitor(node.questionToken, tokenVisitor, isQuestionToken) : node.questionToken,\n      nodesVisitor(node.typeParameters, visitor, isTypeParameterDeclaration),\n      visitParameterList(node.parameters, visitor, context, nodesVisitor),\n      nodeVisitor(node.type, visitor, isTypeNode),\n      visitFunctionBody(node.body, visitor, context, nodeVisitor)\n    );\n  },\n  [177 /* Constructor */]: function visitEachChildOfConstructorDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateConstructorDeclaration(\n      node,\n      nodesVisitor(node.modifiers, visitor, isModifierLike),\n      visitParameterList(node.parameters, visitor, context, nodesVisitor),\n      visitFunctionBody(node.body, visitor, context, nodeVisitor)\n    );\n  },\n  [178 /* GetAccessor */]: function visitEachChildOfGetAccessorDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateGetAccessorDeclaration(\n      node,\n      nodesVisitor(node.modifiers, visitor, isModifierLike),\n      Debug.checkDefined(nodeVisitor(node.name, visitor, isPropertyName)),\n      visitParameterList(node.parameters, visitor, context, nodesVisitor),\n      nodeVisitor(node.type, visitor, isTypeNode),\n      visitFunctionBody(node.body, visitor, context, nodeVisitor)\n    );\n  },\n  [179 /* SetAccessor */]: function visitEachChildOfSetAccessorDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateSetAccessorDeclaration(\n      node,\n      nodesVisitor(node.modifiers, visitor, isModifierLike),\n      Debug.checkDefined(nodeVisitor(node.name, visitor, isPropertyName)),\n      visitParameterList(node.parameters, visitor, context, nodesVisitor),\n      visitFunctionBody(node.body, visitor, context, nodeVisitor)\n    );\n  },\n  [176 /* ClassStaticBlockDeclaration */]: function visitEachChildOfClassStaticBlockDeclaration(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    context.startLexicalEnvironment();\n    context.suspendLexicalEnvironment();\n    return context.factory.updateClassStaticBlockDeclaration(\n      node,\n      visitFunctionBody(node.body, visitor, context, nodeVisitor)\n    );\n  },\n  [180 /* CallSignature */]: function visitEachChildOfCallSignatureDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateCallSignature(\n      node,\n      nodesVisitor(node.typeParameters, visitor, isTypeParameterDeclaration),\n      nodesVisitor(node.parameters, visitor, isParameter),\n      nodeVisitor(node.type, visitor, isTypeNode)\n    );\n  },\n  [181 /* ConstructSignature */]: function visitEachChildOfConstructSignatureDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateConstructSignature(\n      node,\n      nodesVisitor(node.typeParameters, visitor, isTypeParameterDeclaration),\n      nodesVisitor(node.parameters, visitor, isParameter),\n      nodeVisitor(node.type, visitor, isTypeNode)\n    );\n  },\n  [182 /* IndexSignature */]: function visitEachChildOfIndexSignatureDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateIndexSignature(\n      node,\n      nodesVisitor(node.modifiers, visitor, isModifierLike),\n      nodesVisitor(node.parameters, visitor, isParameter),\n      Debug.checkDefined(nodeVisitor(node.type, visitor, isTypeNode))\n    );\n  },\n  // Types\n  [183 /* TypePredicate */]: function visitEachChildOfTypePredicateNode(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateTypePredicateNode(\n      node,\n      nodeVisitor(node.assertsModifier, visitor, isAssertsKeyword),\n      Debug.checkDefined(nodeVisitor(node.parameterName, visitor, isIdentifierOrThisTypeNode)),\n      nodeVisitor(node.type, visitor, isTypeNode)\n    );\n  },\n  [184 /* TypeReference */]: function visitEachChildOfTypeReferenceNode(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateTypeReferenceNode(\n      node,\n      Debug.checkDefined(nodeVisitor(node.typeName, visitor, isEntityName)),\n      nodesVisitor(node.typeArguments, visitor, isTypeNode)\n    );\n  },\n  [185 /* FunctionType */]: function visitEachChildOfFunctionTypeNode(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateFunctionTypeNode(\n      node,\n      nodesVisitor(node.typeParameters, visitor, isTypeParameterDeclaration),\n      nodesVisitor(node.parameters, visitor, isParameter),\n      Debug.checkDefined(nodeVisitor(node.type, visitor, isTypeNode))\n    );\n  },\n  [186 /* ConstructorType */]: function visitEachChildOfConstructorTypeNode(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateConstructorTypeNode(\n      node,\n      nodesVisitor(node.modifiers, visitor, isModifier),\n      nodesVisitor(node.typeParameters, visitor, isTypeParameterDeclaration),\n      nodesVisitor(node.parameters, visitor, isParameter),\n      Debug.checkDefined(nodeVisitor(node.type, visitor, isTypeNode))\n    );\n  },\n  [187 /* TypeQuery */]: function visitEachChildOfTypeQueryNode(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateTypeQueryNode(\n      node,\n      Debug.checkDefined(nodeVisitor(node.exprName, visitor, isEntityName)),\n      nodesVisitor(node.typeArguments, visitor, isTypeNode)\n    );\n  },\n  [188 /* TypeLiteral */]: function visitEachChildOfTypeLiteralNode(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {\n    return context.factory.updateTypeLiteralNode(\n      node,\n      nodesVisitor(node.members, visitor, isTypeElement)\n    );\n  },\n  [189 /* ArrayType */]: function visitEachChildOfArrayTypeNode(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateArrayTypeNode(\n      node,\n      Debug.checkDefined(nodeVisitor(node.elementType, visitor, isTypeNode))\n    );\n  },\n  [190 /* TupleType */]: function visitEachChildOfTupleTypeNode(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {\n    return context.factory.updateTupleTypeNode(\n      node,\n      nodesVisitor(node.elements, visitor, isTypeNode)\n    );\n  },\n  [191 /* OptionalType */]: function visitEachChildOfOptionalTypeNode(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateOptionalTypeNode(\n      node,\n      Debug.checkDefined(nodeVisitor(node.type, visitor, isTypeNode))\n    );\n  },\n  [192 /* RestType */]: function visitEachChildOfRestTypeNode(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateRestTypeNode(\n      node,\n      Debug.checkDefined(nodeVisitor(node.type, visitor, isTypeNode))\n    );\n  },\n  [193 /* UnionType */]: function visitEachChildOfUnionTypeNode(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {\n    return context.factory.updateUnionTypeNode(\n      node,\n      nodesVisitor(node.types, visitor, isTypeNode)\n    );\n  },\n  [194 /* IntersectionType */]: function visitEachChildOfIntersectionTypeNode(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {\n    return context.factory.updateIntersectionTypeNode(\n      node,\n      nodesVisitor(node.types, visitor, isTypeNode)\n    );\n  },\n  [195 /* ConditionalType */]: function visitEachChildOfConditionalTypeNode(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateConditionalTypeNode(\n      node,\n      Debug.checkDefined(nodeVisitor(node.checkType, visitor, isTypeNode)),\n      Debug.checkDefined(nodeVisitor(node.extendsType, visitor, isTypeNode)),\n      Debug.checkDefined(nodeVisitor(node.trueType, visitor, isTypeNode)),\n      Debug.checkDefined(nodeVisitor(node.falseType, visitor, isTypeNode))\n    );\n  },\n  [196 /* InferType */]: function visitEachChildOfInferTypeNode(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateInferTypeNode(\n      node,\n      Debug.checkDefined(nodeVisitor(node.typeParameter, visitor, isTypeParameterDeclaration))\n    );\n  },\n  [206 /* ImportType */]: function visitEachChildOfImportTypeNode(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateImportTypeNode(\n      node,\n      Debug.checkDefined(nodeVisitor(node.argument, visitor, isTypeNode)),\n      nodeVisitor(node.attributes, visitor, isImportAttributes),\n      nodeVisitor(node.qualifier, visitor, isEntityName),\n      nodesVisitor(node.typeArguments, visitor, isTypeNode),\n      node.isTypeOf\n    );\n  },\n  [303 /* ImportTypeAssertionContainer */]: function visitEachChildOfImportTypeAssertionContainer(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateImportTypeAssertionContainer(\n      node,\n      Debug.checkDefined(nodeVisitor(node.assertClause, visitor, isAssertClause)),\n      node.multiLine\n    );\n  },\n  [203 /* NamedTupleMember */]: function visitEachChildOfNamedTupleMember(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) {\n    return context.factory.updateNamedTupleMember(\n      node,\n      tokenVisitor ? nodeVisitor(node.dotDotDotToken, tokenVisitor, isDotDotDotToken) : node.dotDotDotToken,\n      Debug.checkDefined(nodeVisitor(node.name, visitor, isIdentifier)),\n      tokenVisitor ? nodeVisitor(node.questionToken, tokenVisitor, isQuestionToken) : node.questionToken,\n      Debug.checkDefined(nodeVisitor(node.type, visitor, isTypeNode))\n    );\n  },\n  [197 /* ParenthesizedType */]: function visitEachChildOfParenthesizedType(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateParenthesizedType(\n      node,\n      Debug.checkDefined(nodeVisitor(node.type, visitor, isTypeNode))\n    );\n  },\n  [199 /* TypeOperator */]: function visitEachChildOfTypeOperatorNode(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateTypeOperatorNode(\n      node,\n      Debug.checkDefined(nodeVisitor(node.type, visitor, isTypeNode))\n    );\n  },\n  [200 /* IndexedAccessType */]: function visitEachChildOfIndexedAccessType(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateIndexedAccessTypeNode(\n      node,\n      Debug.checkDefined(nodeVisitor(node.objectType, visitor, isTypeNode)),\n      Debug.checkDefined(nodeVisitor(node.indexType, visitor, isTypeNode))\n    );\n  },\n  [201 /* MappedType */]: function visitEachChildOfMappedType(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {\n    return context.factory.updateMappedTypeNode(\n      node,\n      tokenVisitor ? nodeVisitor(node.readonlyToken, tokenVisitor, isReadonlyKeywordOrPlusOrMinusToken) : node.readonlyToken,\n      Debug.checkDefined(nodeVisitor(node.typeParameter, visitor, isTypeParameterDeclaration)),\n      nodeVisitor(node.nameType, visitor, isTypeNode),\n      tokenVisitor ? nodeVisitor(node.questionToken, tokenVisitor, isQuestionOrPlusOrMinusToken) : node.questionToken,\n      nodeVisitor(node.type, visitor, isTypeNode),\n      nodesVisitor(node.members, visitor, isTypeElement)\n    );\n  },\n  [202 /* LiteralType */]: function visitEachChildOfLiteralTypeNode(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateLiteralTypeNode(\n      node,\n      Debug.checkDefined(nodeVisitor(node.literal, visitor, isLiteralTypeLiteral))\n    );\n  },\n  [204 /* TemplateLiteralType */]: function visitEachChildOfTemplateLiteralType(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateTemplateLiteralType(\n      node,\n      Debug.checkDefined(nodeVisitor(node.head, visitor, isTemplateHead)),\n      nodesVisitor(node.templateSpans, visitor, isTemplateLiteralTypeSpan)\n    );\n  },\n  [205 /* TemplateLiteralTypeSpan */]: function visitEachChildOfTemplateLiteralTypeSpan(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateTemplateLiteralTypeSpan(\n      node,\n      Debug.checkDefined(nodeVisitor(node.type, visitor, isTypeNode)),\n      Debug.checkDefined(nodeVisitor(node.literal, visitor, isTemplateMiddleOrTemplateTail))\n    );\n  },\n  // Binding patterns\n  [207 /* ObjectBindingPattern */]: function visitEachChildOfObjectBindingPattern(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {\n    return context.factory.updateObjectBindingPattern(\n      node,\n      nodesVisitor(node.elements, visitor, isBindingElement)\n    );\n  },\n  [208 /* ArrayBindingPattern */]: function visitEachChildOfArrayBindingPattern(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {\n    return context.factory.updateArrayBindingPattern(\n      node,\n      nodesVisitor(node.elements, visitor, isArrayBindingElement)\n    );\n  },\n  [209 /* BindingElement */]: function visitEachChildOfBindingElement(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) {\n    return context.factory.updateBindingElement(\n      node,\n      tokenVisitor ? nodeVisitor(node.dotDotDotToken, tokenVisitor, isDotDotDotToken) : node.dotDotDotToken,\n      nodeVisitor(node.propertyName, visitor, isPropertyName),\n      Debug.checkDefined(nodeVisitor(node.name, visitor, isBindingName)),\n      nodeVisitor(node.initializer, visitor, isExpression)\n    );\n  },\n  // Expression\n  [210 /* ArrayLiteralExpression */]: function visitEachChildOfArrayLiteralExpression(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {\n    return context.factory.updateArrayLiteralExpression(\n      node,\n      nodesVisitor(node.elements, visitor, isExpression)\n    );\n  },\n  [211 /* ObjectLiteralExpression */]: function visitEachChildOfObjectLiteralExpression(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {\n    return context.factory.updateObjectLiteralExpression(\n      node,\n      nodesVisitor(node.properties, visitor, isObjectLiteralElementLike)\n    );\n  },\n  [212 /* PropertyAccessExpression */]: function visitEachChildOfPropertyAccessExpression(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) {\n    return isPropertyAccessChain(node) ? context.factory.updatePropertyAccessChain(\n      node,\n      Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression)),\n      tokenVisitor ? nodeVisitor(node.questionDotToken, tokenVisitor, isQuestionDotToken) : node.questionDotToken,\n      Debug.checkDefined(nodeVisitor(node.name, visitor, isMemberName))\n    ) : context.factory.updatePropertyAccessExpression(\n      node,\n      Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression)),\n      Debug.checkDefined(nodeVisitor(node.name, visitor, isMemberName))\n    );\n  },\n  [213 /* ElementAccessExpression */]: function visitEachChildOfElementAccessExpression(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) {\n    return isElementAccessChain(node) ? context.factory.updateElementAccessChain(\n      node,\n      Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression)),\n      tokenVisitor ? nodeVisitor(node.questionDotToken, tokenVisitor, isQuestionDotToken) : node.questionDotToken,\n      Debug.checkDefined(nodeVisitor(node.argumentExpression, visitor, isExpression))\n    ) : context.factory.updateElementAccessExpression(\n      node,\n      Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression)),\n      Debug.checkDefined(nodeVisitor(node.argumentExpression, visitor, isExpression))\n    );\n  },\n  [214 /* CallExpression */]: function visitEachChildOfCallExpression(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {\n    return isCallChain(node) ? context.factory.updateCallChain(\n      node,\n      Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression)),\n      tokenVisitor ? nodeVisitor(node.questionDotToken, tokenVisitor, isQuestionDotToken) : node.questionDotToken,\n      nodesVisitor(node.typeArguments, visitor, isTypeNode),\n      nodesVisitor(node.arguments, visitor, isExpression)\n    ) : context.factory.updateCallExpression(\n      node,\n      Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression)),\n      nodesVisitor(node.typeArguments, visitor, isTypeNode),\n      nodesVisitor(node.arguments, visitor, isExpression)\n    );\n  },\n  [215 /* NewExpression */]: function visitEachChildOfNewExpression(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateNewExpression(\n      node,\n      Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression)),\n      nodesVisitor(node.typeArguments, visitor, isTypeNode),\n      nodesVisitor(node.arguments, visitor, isExpression)\n    );\n  },\n  [216 /* TaggedTemplateExpression */]: function visitEachChildOfTaggedTemplateExpression(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateTaggedTemplateExpression(\n      node,\n      Debug.checkDefined(nodeVisitor(node.tag, visitor, isExpression)),\n      nodesVisitor(node.typeArguments, visitor, isTypeNode),\n      Debug.checkDefined(nodeVisitor(node.template, visitor, isTemplateLiteral))\n    );\n  },\n  [217 /* TypeAssertionExpression */]: function visitEachChildOfTypeAssertionExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateTypeAssertion(\n      node,\n      Debug.checkDefined(nodeVisitor(node.type, visitor, isTypeNode)),\n      Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression))\n    );\n  },\n  [218 /* ParenthesizedExpression */]: function visitEachChildOfParenthesizedExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateParenthesizedExpression(\n      node,\n      Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression))\n    );\n  },\n  [219 /* FunctionExpression */]: function visitEachChildOfFunctionExpression(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {\n    return context.factory.updateFunctionExpression(\n      node,\n      nodesVisitor(node.modifiers, visitor, isModifier),\n      tokenVisitor ? nodeVisitor(node.asteriskToken, tokenVisitor, isAsteriskToken) : node.asteriskToken,\n      nodeVisitor(node.name, visitor, isIdentifier),\n      nodesVisitor(node.typeParameters, visitor, isTypeParameterDeclaration),\n      visitParameterList(node.parameters, visitor, context, nodesVisitor),\n      nodeVisitor(node.type, visitor, isTypeNode),\n      visitFunctionBody(node.body, visitor, context, nodeVisitor)\n    );\n  },\n  [220 /* ArrowFunction */]: function visitEachChildOfArrowFunction(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {\n    return context.factory.updateArrowFunction(\n      node,\n      nodesVisitor(node.modifiers, visitor, isModifier),\n      nodesVisitor(node.typeParameters, visitor, isTypeParameterDeclaration),\n      visitParameterList(node.parameters, visitor, context, nodesVisitor),\n      nodeVisitor(node.type, visitor, isTypeNode),\n      tokenVisitor ? Debug.checkDefined(nodeVisitor(node.equalsGreaterThanToken, tokenVisitor, isEqualsGreaterThanToken)) : node.equalsGreaterThanToken,\n      visitFunctionBody(node.body, visitor, context, nodeVisitor)\n    );\n  },\n  [221 /* DeleteExpression */]: function visitEachChildOfDeleteExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateDeleteExpression(\n      node,\n      Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression))\n    );\n  },\n  [222 /* TypeOfExpression */]: function visitEachChildOfTypeOfExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateTypeOfExpression(\n      node,\n      Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression))\n    );\n  },\n  [223 /* VoidExpression */]: function visitEachChildOfVoidExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateVoidExpression(\n      node,\n      Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression))\n    );\n  },\n  [224 /* AwaitExpression */]: function visitEachChildOfAwaitExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateAwaitExpression(\n      node,\n      Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression))\n    );\n  },\n  [225 /* PrefixUnaryExpression */]: function visitEachChildOfPrefixUnaryExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updatePrefixUnaryExpression(\n      node,\n      Debug.checkDefined(nodeVisitor(node.operand, visitor, isExpression))\n    );\n  },\n  [226 /* PostfixUnaryExpression */]: function visitEachChildOfPostfixUnaryExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updatePostfixUnaryExpression(\n      node,\n      Debug.checkDefined(nodeVisitor(node.operand, visitor, isExpression))\n    );\n  },\n  [227 /* BinaryExpression */]: function visitEachChildOfBinaryExpression(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) {\n    return context.factory.updateBinaryExpression(\n      node,\n      Debug.checkDefined(nodeVisitor(node.left, visitor, isExpression)),\n      tokenVisitor ? Debug.checkDefined(nodeVisitor(node.operatorToken, tokenVisitor, isBinaryOperatorToken)) : node.operatorToken,\n      Debug.checkDefined(nodeVisitor(node.right, visitor, isExpression))\n    );\n  },\n  [228 /* ConditionalExpression */]: function visitEachChildOfConditionalExpression(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) {\n    return context.factory.updateConditionalExpression(\n      node,\n      Debug.checkDefined(nodeVisitor(node.condition, visitor, isExpression)),\n      tokenVisitor ? Debug.checkDefined(nodeVisitor(node.questionToken, tokenVisitor, isQuestionToken)) : node.questionToken,\n      Debug.checkDefined(nodeVisitor(node.whenTrue, visitor, isExpression)),\n      tokenVisitor ? Debug.checkDefined(nodeVisitor(node.colonToken, tokenVisitor, isColonToken)) : node.colonToken,\n      Debug.checkDefined(nodeVisitor(node.whenFalse, visitor, isExpression))\n    );\n  },\n  [229 /* TemplateExpression */]: function visitEachChildOfTemplateExpression(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateTemplateExpression(\n      node,\n      Debug.checkDefined(nodeVisitor(node.head, visitor, isTemplateHead)),\n      nodesVisitor(node.templateSpans, visitor, isTemplateSpan)\n    );\n  },\n  [230 /* YieldExpression */]: function visitEachChildOfYieldExpression(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) {\n    return context.factory.updateYieldExpression(\n      node,\n      tokenVisitor ? nodeVisitor(node.asteriskToken, tokenVisitor, isAsteriskToken) : node.asteriskToken,\n      nodeVisitor(node.expression, visitor, isExpression)\n    );\n  },\n  [231 /* SpreadElement */]: function visitEachChildOfSpreadElement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateSpreadElement(\n      node,\n      Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression))\n    );\n  },\n  [232 /* ClassExpression */]: function visitEachChildOfClassExpression(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateClassExpression(\n      node,\n      nodesVisitor(node.modifiers, visitor, isModifierLike),\n      nodeVisitor(node.name, visitor, isIdentifier),\n      nodesVisitor(node.typeParameters, visitor, isTypeParameterDeclaration),\n      nodesVisitor(node.heritageClauses, visitor, isHeritageClause),\n      nodesVisitor(node.members, visitor, isClassElement)\n    );\n  },\n  [234 /* ExpressionWithTypeArguments */]: function visitEachChildOfExpressionWithTypeArguments(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateExpressionWithTypeArguments(\n      node,\n      Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression)),\n      nodesVisitor(node.typeArguments, visitor, isTypeNode)\n    );\n  },\n  [235 /* AsExpression */]: function visitEachChildOfAsExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateAsExpression(\n      node,\n      Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression)),\n      Debug.checkDefined(nodeVisitor(node.type, visitor, isTypeNode))\n    );\n  },\n  [239 /* SatisfiesExpression */]: function visitEachChildOfSatisfiesExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateSatisfiesExpression(\n      node,\n      Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression)),\n      Debug.checkDefined(nodeVisitor(node.type, visitor, isTypeNode))\n    );\n  },\n  [236 /* NonNullExpression */]: function visitEachChildOfNonNullExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return isOptionalChain(node) ? context.factory.updateNonNullChain(\n      node,\n      Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression))\n    ) : context.factory.updateNonNullExpression(\n      node,\n      Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression))\n    );\n  },\n  [237 /* MetaProperty */]: function visitEachChildOfMetaProperty(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateMetaProperty(\n      node,\n      Debug.checkDefined(nodeVisitor(node.name, visitor, isIdentifier))\n    );\n  },\n  // Misc\n  [240 /* TemplateSpan */]: function visitEachChildOfTemplateSpan(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateTemplateSpan(\n      node,\n      Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression)),\n      Debug.checkDefined(nodeVisitor(node.literal, visitor, isTemplateMiddleOrTemplateTail))\n    );\n  },\n  // Element\n  [242 /* Block */]: function visitEachChildOfBlock(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {\n    return context.factory.updateBlock(\n      node,\n      nodesVisitor(node.statements, visitor, isStatement)\n    );\n  },\n  [244 /* VariableStatement */]: function visitEachChildOfVariableStatement(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateVariableStatement(\n      node,\n      nodesVisitor(node.modifiers, visitor, isModifierLike),\n      Debug.checkDefined(nodeVisitor(node.declarationList, visitor, isVariableDeclarationList))\n    );\n  },\n  [245 /* ExpressionStatement */]: function visitEachChildOfExpressionStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateExpressionStatement(\n      node,\n      Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression))\n    );\n  },\n  [246 /* IfStatement */]: function visitEachChildOfIfStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateIfStatement(\n      node,\n      Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression)),\n      Debug.checkDefined(nodeVisitor(node.thenStatement, visitor, isStatement, context.factory.liftToBlock)),\n      nodeVisitor(node.elseStatement, visitor, isStatement, context.factory.liftToBlock)\n    );\n  },\n  [247 /* DoStatement */]: function visitEachChildOfDoStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateDoStatement(\n      node,\n      visitIterationBody(node.statement, visitor, context, nodeVisitor),\n      Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression))\n    );\n  },\n  [248 /* WhileStatement */]: function visitEachChildOfWhileStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateWhileStatement(\n      node,\n      Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression)),\n      visitIterationBody(node.statement, visitor, context, nodeVisitor)\n    );\n  },\n  [249 /* ForStatement */]: function visitEachChildOfForStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateForStatement(\n      node,\n      nodeVisitor(node.initializer, visitor, isForInitializer),\n      nodeVisitor(node.condition, visitor, isExpression),\n      nodeVisitor(node.incrementor, visitor, isExpression),\n      visitIterationBody(node.statement, visitor, context, nodeVisitor)\n    );\n  },\n  [250 /* ForInStatement */]: function visitEachChildOfForInStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateForInStatement(\n      node,\n      Debug.checkDefined(nodeVisitor(node.initializer, visitor, isForInitializer)),\n      Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression)),\n      visitIterationBody(node.statement, visitor, context, nodeVisitor)\n    );\n  },\n  [251 /* ForOfStatement */]: function visitEachChildOfForOfStatement(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) {\n    return context.factory.updateForOfStatement(\n      node,\n      tokenVisitor ? nodeVisitor(node.awaitModifier, tokenVisitor, isAwaitKeyword) : node.awaitModifier,\n      Debug.checkDefined(nodeVisitor(node.initializer, visitor, isForInitializer)),\n      Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression)),\n      visitIterationBody(node.statement, visitor, context, nodeVisitor)\n    );\n  },\n  [252 /* ContinueStatement */]: function visitEachChildOfContinueStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateContinueStatement(\n      node,\n      nodeVisitor(node.label, visitor, isIdentifier)\n    );\n  },\n  [253 /* BreakStatement */]: function visitEachChildOfBreakStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateBreakStatement(\n      node,\n      nodeVisitor(node.label, visitor, isIdentifier)\n    );\n  },\n  [254 /* ReturnStatement */]: function visitEachChildOfReturnStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateReturnStatement(\n      node,\n      nodeVisitor(node.expression, visitor, isExpression)\n    );\n  },\n  [255 /* WithStatement */]: function visitEachChildOfWithStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateWithStatement(\n      node,\n      Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression)),\n      Debug.checkDefined(nodeVisitor(node.statement, visitor, isStatement, context.factory.liftToBlock))\n    );\n  },\n  [256 /* SwitchStatement */]: function visitEachChildOfSwitchStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateSwitchStatement(\n      node,\n      Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression)),\n      Debug.checkDefined(nodeVisitor(node.caseBlock, visitor, isCaseBlock))\n    );\n  },\n  [257 /* LabeledStatement */]: function visitEachChildOfLabeledStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateLabeledStatement(\n      node,\n      Debug.checkDefined(nodeVisitor(node.label, visitor, isIdentifier)),\n      Debug.checkDefined(nodeVisitor(node.statement, visitor, isStatement, context.factory.liftToBlock))\n    );\n  },\n  [258 /* ThrowStatement */]: function visitEachChildOfThrowStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateThrowStatement(\n      node,\n      Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression))\n    );\n  },\n  [259 /* TryStatement */]: function visitEachChildOfTryStatement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateTryStatement(\n      node,\n      Debug.checkDefined(nodeVisitor(node.tryBlock, visitor, isBlock)),\n      nodeVisitor(node.catchClause, visitor, isCatchClause),\n      nodeVisitor(node.finallyBlock, visitor, isBlock)\n    );\n  },\n  [261 /* VariableDeclaration */]: function visitEachChildOfVariableDeclaration(node, visitor, context, _nodesVisitor, nodeVisitor, tokenVisitor) {\n    return context.factory.updateVariableDeclaration(\n      node,\n      Debug.checkDefined(nodeVisitor(node.name, visitor, isBindingName)),\n      tokenVisitor ? nodeVisitor(node.exclamationToken, tokenVisitor, isExclamationToken) : node.exclamationToken,\n      nodeVisitor(node.type, visitor, isTypeNode),\n      nodeVisitor(node.initializer, visitor, isExpression)\n    );\n  },\n  [262 /* VariableDeclarationList */]: function visitEachChildOfVariableDeclarationList(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {\n    return context.factory.updateVariableDeclarationList(\n      node,\n      nodesVisitor(node.declarations, visitor, isVariableDeclaration)\n    );\n  },\n  [263 /* FunctionDeclaration */]: function visitEachChildOfFunctionDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, tokenVisitor) {\n    return context.factory.updateFunctionDeclaration(\n      node,\n      nodesVisitor(node.modifiers, visitor, isModifier),\n      tokenVisitor ? nodeVisitor(node.asteriskToken, tokenVisitor, isAsteriskToken) : node.asteriskToken,\n      nodeVisitor(node.name, visitor, isIdentifier),\n      nodesVisitor(node.typeParameters, visitor, isTypeParameterDeclaration),\n      visitParameterList(node.parameters, visitor, context, nodesVisitor),\n      nodeVisitor(node.type, visitor, isTypeNode),\n      visitFunctionBody(node.body, visitor, context, nodeVisitor)\n    );\n  },\n  [264 /* ClassDeclaration */]: function visitEachChildOfClassDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateClassDeclaration(\n      node,\n      nodesVisitor(node.modifiers, visitor, isModifierLike),\n      nodeVisitor(node.name, visitor, isIdentifier),\n      nodesVisitor(node.typeParameters, visitor, isTypeParameterDeclaration),\n      nodesVisitor(node.heritageClauses, visitor, isHeritageClause),\n      nodesVisitor(node.members, visitor, isClassElement)\n    );\n  },\n  [265 /* InterfaceDeclaration */]: function visitEachChildOfInterfaceDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateInterfaceDeclaration(\n      node,\n      nodesVisitor(node.modifiers, visitor, isModifierLike),\n      Debug.checkDefined(nodeVisitor(node.name, visitor, isIdentifier)),\n      nodesVisitor(node.typeParameters, visitor, isTypeParameterDeclaration),\n      nodesVisitor(node.heritageClauses, visitor, isHeritageClause),\n      nodesVisitor(node.members, visitor, isTypeElement)\n    );\n  },\n  [266 /* TypeAliasDeclaration */]: function visitEachChildOfTypeAliasDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateTypeAliasDeclaration(\n      node,\n      nodesVisitor(node.modifiers, visitor, isModifierLike),\n      Debug.checkDefined(nodeVisitor(node.name, visitor, isIdentifier)),\n      nodesVisitor(node.typeParameters, visitor, isTypeParameterDeclaration),\n      Debug.checkDefined(nodeVisitor(node.type, visitor, isTypeNode))\n    );\n  },\n  [267 /* EnumDeclaration */]: function visitEachChildOfEnumDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateEnumDeclaration(\n      node,\n      nodesVisitor(node.modifiers, visitor, isModifierLike),\n      Debug.checkDefined(nodeVisitor(node.name, visitor, isIdentifier)),\n      nodesVisitor(node.members, visitor, isEnumMember)\n    );\n  },\n  [268 /* ModuleDeclaration */]: function visitEachChildOfModuleDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateModuleDeclaration(\n      node,\n      nodesVisitor(node.modifiers, visitor, isModifierLike),\n      Debug.checkDefined(nodeVisitor(node.name, visitor, isModuleName)),\n      nodeVisitor(node.body, visitor, isModuleBody)\n    );\n  },\n  [269 /* ModuleBlock */]: function visitEachChildOfModuleBlock(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {\n    return context.factory.updateModuleBlock(\n      node,\n      nodesVisitor(node.statements, visitor, isStatement)\n    );\n  },\n  [270 /* CaseBlock */]: function visitEachChildOfCaseBlock(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {\n    return context.factory.updateCaseBlock(\n      node,\n      nodesVisitor(node.clauses, visitor, isCaseOrDefaultClause)\n    );\n  },\n  [271 /* NamespaceExportDeclaration */]: function visitEachChildOfNamespaceExportDeclaration(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateNamespaceExportDeclaration(\n      node,\n      Debug.checkDefined(nodeVisitor(node.name, visitor, isIdentifier))\n    );\n  },\n  [272 /* ImportEqualsDeclaration */]: function visitEachChildOfImportEqualsDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateImportEqualsDeclaration(\n      node,\n      nodesVisitor(node.modifiers, visitor, isModifierLike),\n      node.isTypeOnly,\n      Debug.checkDefined(nodeVisitor(node.name, visitor, isIdentifier)),\n      Debug.checkDefined(nodeVisitor(node.moduleReference, visitor, isModuleReference))\n    );\n  },\n  [273 /* ImportDeclaration */]: function visitEachChildOfImportDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateImportDeclaration(\n      node,\n      nodesVisitor(node.modifiers, visitor, isModifierLike),\n      nodeVisitor(node.importClause, visitor, isImportClause),\n      Debug.checkDefined(nodeVisitor(node.moduleSpecifier, visitor, isExpression)),\n      nodeVisitor(node.attributes, visitor, isImportAttributes)\n    );\n  },\n  [301 /* ImportAttributes */]: function visitEachChildOfImportAttributes(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {\n    return context.factory.updateImportAttributes(\n      node,\n      nodesVisitor(node.elements, visitor, isImportAttribute),\n      node.multiLine\n    );\n  },\n  [302 /* ImportAttribute */]: function visitEachChildOfImportAttribute(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateImportAttribute(\n      node,\n      Debug.checkDefined(nodeVisitor(node.name, visitor, isImportAttributeName)),\n      Debug.checkDefined(nodeVisitor(node.value, visitor, isExpression))\n    );\n  },\n  [274 /* ImportClause */]: function visitEachChildOfImportClause(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateImportClause(\n      node,\n      node.phaseModifier,\n      nodeVisitor(node.name, visitor, isIdentifier),\n      nodeVisitor(node.namedBindings, visitor, isNamedImportBindings)\n    );\n  },\n  [275 /* NamespaceImport */]: function visitEachChildOfNamespaceImport(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateNamespaceImport(\n      node,\n      Debug.checkDefined(nodeVisitor(node.name, visitor, isIdentifier))\n    );\n  },\n  [281 /* NamespaceExport */]: function visitEachChildOfNamespaceExport(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateNamespaceExport(\n      node,\n      Debug.checkDefined(nodeVisitor(node.name, visitor, isIdentifier))\n    );\n  },\n  [276 /* NamedImports */]: function visitEachChildOfNamedImports(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {\n    return context.factory.updateNamedImports(\n      node,\n      nodesVisitor(node.elements, visitor, isImportSpecifier)\n    );\n  },\n  [277 /* ImportSpecifier */]: function visitEachChildOfImportSpecifier(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateImportSpecifier(\n      node,\n      node.isTypeOnly,\n      nodeVisitor(node.propertyName, visitor, isModuleExportName),\n      Debug.checkDefined(nodeVisitor(node.name, visitor, isIdentifier))\n    );\n  },\n  [278 /* ExportAssignment */]: function visitEachChildOfExportAssignment(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateExportAssignment(\n      node,\n      nodesVisitor(node.modifiers, visitor, isModifierLike),\n      Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression))\n    );\n  },\n  [279 /* ExportDeclaration */]: function visitEachChildOfExportDeclaration(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateExportDeclaration(\n      node,\n      nodesVisitor(node.modifiers, visitor, isModifierLike),\n      node.isTypeOnly,\n      nodeVisitor(node.exportClause, visitor, isNamedExportBindings),\n      nodeVisitor(node.moduleSpecifier, visitor, isExpression),\n      nodeVisitor(node.attributes, visitor, isImportAttributes)\n    );\n  },\n  [280 /* NamedExports */]: function visitEachChildOfNamedExports(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {\n    return context.factory.updateNamedExports(\n      node,\n      nodesVisitor(node.elements, visitor, isExportSpecifier)\n    );\n  },\n  [282 /* ExportSpecifier */]: function visitEachChildOfExportSpecifier(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateExportSpecifier(\n      node,\n      node.isTypeOnly,\n      nodeVisitor(node.propertyName, visitor, isModuleExportName),\n      Debug.checkDefined(nodeVisitor(node.name, visitor, isModuleExportName))\n    );\n  },\n  // Module references\n  [284 /* ExternalModuleReference */]: function visitEachChildOfExternalModuleReference(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateExternalModuleReference(\n      node,\n      Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression))\n    );\n  },\n  // JSX\n  [285 /* JsxElement */]: function visitEachChildOfJsxElement(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateJsxElement(\n      node,\n      Debug.checkDefined(nodeVisitor(node.openingElement, visitor, isJsxOpeningElement)),\n      nodesVisitor(node.children, visitor, isJsxChild),\n      Debug.checkDefined(nodeVisitor(node.closingElement, visitor, isJsxClosingElement))\n    );\n  },\n  [286 /* JsxSelfClosingElement */]: function visitEachChildOfJsxSelfClosingElement(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateJsxSelfClosingElement(\n      node,\n      Debug.checkDefined(nodeVisitor(node.tagName, visitor, isJsxTagNameExpression)),\n      nodesVisitor(node.typeArguments, visitor, isTypeNode),\n      Debug.checkDefined(nodeVisitor(node.attributes, visitor, isJsxAttributes))\n    );\n  },\n  [287 /* JsxOpeningElement */]: function visitEachChildOfJsxOpeningElement(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateJsxOpeningElement(\n      node,\n      Debug.checkDefined(nodeVisitor(node.tagName, visitor, isJsxTagNameExpression)),\n      nodesVisitor(node.typeArguments, visitor, isTypeNode),\n      Debug.checkDefined(nodeVisitor(node.attributes, visitor, isJsxAttributes))\n    );\n  },\n  [288 /* JsxClosingElement */]: function visitEachChildOfJsxClosingElement(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateJsxClosingElement(\n      node,\n      Debug.checkDefined(nodeVisitor(node.tagName, visitor, isJsxTagNameExpression))\n    );\n  },\n  [296 /* JsxNamespacedName */]: function forEachChildInJsxNamespacedName2(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateJsxNamespacedName(\n      node,\n      Debug.checkDefined(nodeVisitor(node.namespace, visitor, isIdentifier)),\n      Debug.checkDefined(nodeVisitor(node.name, visitor, isIdentifier))\n    );\n  },\n  [289 /* JsxFragment */]: function visitEachChildOfJsxFragment(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateJsxFragment(\n      node,\n      Debug.checkDefined(nodeVisitor(node.openingFragment, visitor, isJsxOpeningFragment)),\n      nodesVisitor(node.children, visitor, isJsxChild),\n      Debug.checkDefined(nodeVisitor(node.closingFragment, visitor, isJsxClosingFragment))\n    );\n  },\n  [292 /* JsxAttribute */]: function visitEachChildOfJsxAttribute(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateJsxAttribute(\n      node,\n      Debug.checkDefined(nodeVisitor(node.name, visitor, isJsxAttributeName)),\n      nodeVisitor(node.initializer, visitor, isStringLiteralOrJsxExpression)\n    );\n  },\n  [293 /* JsxAttributes */]: function visitEachChildOfJsxAttributes(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {\n    return context.factory.updateJsxAttributes(\n      node,\n      nodesVisitor(node.properties, visitor, isJsxAttributeLike)\n    );\n  },\n  [294 /* JsxSpreadAttribute */]: function visitEachChildOfJsxSpreadAttribute(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateJsxSpreadAttribute(\n      node,\n      Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression))\n    );\n  },\n  [295 /* JsxExpression */]: function visitEachChildOfJsxExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateJsxExpression(\n      node,\n      nodeVisitor(node.expression, visitor, isExpression)\n    );\n  },\n  // Clauses\n  [297 /* CaseClause */]: function visitEachChildOfCaseClause(node, visitor, context, nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateCaseClause(\n      node,\n      Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression)),\n      nodesVisitor(node.statements, visitor, isStatement)\n    );\n  },\n  [298 /* DefaultClause */]: function visitEachChildOfDefaultClause(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {\n    return context.factory.updateDefaultClause(\n      node,\n      nodesVisitor(node.statements, visitor, isStatement)\n    );\n  },\n  [299 /* HeritageClause */]: function visitEachChildOfHeritageClause(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {\n    return context.factory.updateHeritageClause(\n      node,\n      nodesVisitor(node.types, visitor, isExpressionWithTypeArguments)\n    );\n  },\n  [300 /* CatchClause */]: function visitEachChildOfCatchClause(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateCatchClause(\n      node,\n      nodeVisitor(node.variableDeclaration, visitor, isVariableDeclaration),\n      Debug.checkDefined(nodeVisitor(node.block, visitor, isBlock))\n    );\n  },\n  // Property assignments\n  [304 /* PropertyAssignment */]: function visitEachChildOfPropertyAssignment(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updatePropertyAssignment(\n      node,\n      Debug.checkDefined(nodeVisitor(node.name, visitor, isPropertyName)),\n      Debug.checkDefined(nodeVisitor(node.initializer, visitor, isExpression))\n    );\n  },\n  [305 /* ShorthandPropertyAssignment */]: function visitEachChildOfShorthandPropertyAssignment(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateShorthandPropertyAssignment(\n      node,\n      Debug.checkDefined(nodeVisitor(node.name, visitor, isIdentifier)),\n      nodeVisitor(node.objectAssignmentInitializer, visitor, isExpression)\n    );\n  },\n  [306 /* SpreadAssignment */]: function visitEachChildOfSpreadAssignment(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateSpreadAssignment(\n      node,\n      Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression))\n    );\n  },\n  // Enum\n  [307 /* EnumMember */]: function visitEachChildOfEnumMember(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updateEnumMember(\n      node,\n      Debug.checkDefined(nodeVisitor(node.name, visitor, isPropertyName)),\n      nodeVisitor(node.initializer, visitor, isExpression)\n    );\n  },\n  // Top-level nodes\n  [308 /* SourceFile */]: function visitEachChildOfSourceFile(node, visitor, context, _nodesVisitor, _nodeVisitor, _tokenVisitor) {\n    return context.factory.updateSourceFile(\n      node,\n      visitLexicalEnvironment(node.statements, visitor, context)\n    );\n  },\n  // Transformation nodes\n  [356 /* PartiallyEmittedExpression */]: function visitEachChildOfPartiallyEmittedExpression(node, visitor, context, _nodesVisitor, nodeVisitor, _tokenVisitor) {\n    return context.factory.updatePartiallyEmittedExpression(\n      node,\n      Debug.checkDefined(nodeVisitor(node.expression, visitor, isExpression))\n    );\n  },\n  [357 /* CommaListExpression */]: function visitEachChildOfCommaListExpression(node, visitor, context, nodesVisitor, _nodeVisitor, _tokenVisitor) {\n    return context.factory.updateCommaListExpression(\n      node,\n      nodesVisitor(node.elements, visitor, isExpression)\n    );\n  }\n};\nfunction extractSingleNode(nodes) {\n  Debug.assert(nodes.length <= 1, \"Too many nodes written to output.\");\n  return singleOrUndefined(nodes);\n}\n\n// src/compiler/sourcemap.ts\nfunction createSourceMapGenerator(host, file, sourceRoot, sourcesDirectoryPath, generatorOptions) {\n  var { enter, exit } = generatorOptions.extendedDiagnostics ? createTimer(\"Source Map\", \"beforeSourcemap\", \"afterSourcemap\") : nullTimer;\n  var rawSources = [];\n  var sources = [];\n  var sourceToSourceIndexMap = /* @__PURE__ */ new Map();\n  var sourcesContent;\n  var names = [];\n  var nameToNameIndexMap;\n  var mappingCharCodes = [];\n  var mappings = \"\";\n  var lastGeneratedLine = 0;\n  var lastGeneratedCharacter = 0;\n  var lastSourceIndex = 0;\n  var lastSourceLine = 0;\n  var lastSourceCharacter = 0;\n  var lastNameIndex = 0;\n  var hasLast = false;\n  var pendingGeneratedLine = 0;\n  var pendingGeneratedCharacter = 0;\n  var pendingSourceIndex = 0;\n  var pendingSourceLine = 0;\n  var pendingSourceCharacter = 0;\n  var pendingNameIndex = 0;\n  var hasPending = false;\n  var hasPendingSource = false;\n  var hasPendingName = false;\n  return {\n    getSources: () => rawSources,\n    addSource,\n    setSourceContent,\n    addName,\n    addMapping,\n    appendSourceMap,\n    toJSON,\n    toString: () => JSON.stringify(toJSON())\n  };\n  function addSource(fileName) {\n    enter();\n    const source = getRelativePathToDirectoryOrUrl(\n      sourcesDirectoryPath,\n      fileName,\n      host.getCurrentDirectory(),\n      host.getCanonicalFileName,\n      /*isAbsolutePathAnUrl*/\n      true\n    );\n    let sourceIndex = sourceToSourceIndexMap.get(source);\n    if (sourceIndex === void 0) {\n      sourceIndex = sources.length;\n      sources.push(source);\n      rawSources.push(fileName);\n      sourceToSourceIndexMap.set(source, sourceIndex);\n    }\n    exit();\n    return sourceIndex;\n  }\n  function setSourceContent(sourceIndex, content) {\n    enter();\n    if (content !== null) {\n      if (!sourcesContent) sourcesContent = [];\n      while (sourcesContent.length < sourceIndex) {\n        sourcesContent.push(null);\n      }\n      sourcesContent[sourceIndex] = content;\n    }\n    exit();\n  }\n  function addName(name) {\n    enter();\n    if (!nameToNameIndexMap) nameToNameIndexMap = /* @__PURE__ */ new Map();\n    let nameIndex = nameToNameIndexMap.get(name);\n    if (nameIndex === void 0) {\n      nameIndex = names.length;\n      names.push(name);\n      nameToNameIndexMap.set(name, nameIndex);\n    }\n    exit();\n    return nameIndex;\n  }\n  function isNewGeneratedPosition(generatedLine, generatedCharacter) {\n    return !hasPending || pendingGeneratedLine !== generatedLine || pendingGeneratedCharacter !== generatedCharacter;\n  }\n  function isBacktrackingSourcePosition(sourceIndex, sourceLine, sourceCharacter) {\n    return sourceIndex !== void 0 && sourceLine !== void 0 && sourceCharacter !== void 0 && pendingSourceIndex === sourceIndex && (pendingSourceLine > sourceLine || pendingSourceLine === sourceLine && pendingSourceCharacter > sourceCharacter);\n  }\n  function addMapping(generatedLine, generatedCharacter, sourceIndex, sourceLine, sourceCharacter, nameIndex) {\n    Debug.assert(generatedLine >= pendingGeneratedLine, \"generatedLine cannot backtrack\");\n    Debug.assert(generatedCharacter >= 0, \"generatedCharacter cannot be negative\");\n    Debug.assert(sourceIndex === void 0 || sourceIndex >= 0, \"sourceIndex cannot be negative\");\n    Debug.assert(sourceLine === void 0 || sourceLine >= 0, \"sourceLine cannot be negative\");\n    Debug.assert(sourceCharacter === void 0 || sourceCharacter >= 0, \"sourceCharacter cannot be negative\");\n    enter();\n    if (isNewGeneratedPosition(generatedLine, generatedCharacter) || isBacktrackingSourcePosition(sourceIndex, sourceLine, sourceCharacter)) {\n      commitPendingMapping();\n      pendingGeneratedLine = generatedLine;\n      pendingGeneratedCharacter = generatedCharacter;\n      hasPendingSource = false;\n      hasPendingName = false;\n      hasPending = true;\n    }\n    if (sourceIndex !== void 0 && sourceLine !== void 0 && sourceCharacter !== void 0) {\n      pendingSourceIndex = sourceIndex;\n      pendingSourceLine = sourceLine;\n      pendingSourceCharacter = sourceCharacter;\n      hasPendingSource = true;\n      if (nameIndex !== void 0) {\n        pendingNameIndex = nameIndex;\n        hasPendingName = true;\n      }\n    }\n    exit();\n  }\n  function appendSourceMap(generatedLine, generatedCharacter, map2, sourceMapPath, start, end) {\n    Debug.assert(generatedLine >= pendingGeneratedLine, \"generatedLine cannot backtrack\");\n    Debug.assert(generatedCharacter >= 0, \"generatedCharacter cannot be negative\");\n    enter();\n    const sourceIndexToNewSourceIndexMap = [];\n    let nameIndexToNewNameIndexMap;\n    const mappingIterator = decodeMappings(map2.mappings);\n    for (const raw of mappingIterator) {\n      if (end && (raw.generatedLine > end.line || raw.generatedLine === end.line && raw.generatedCharacter > end.character)) {\n        break;\n      }\n      if (start && (raw.generatedLine < start.line || start.line === raw.generatedLine && raw.generatedCharacter < start.character)) {\n        continue;\n      }\n      let newSourceIndex;\n      let newSourceLine;\n      let newSourceCharacter;\n      let newNameIndex;\n      if (raw.sourceIndex !== void 0) {\n        newSourceIndex = sourceIndexToNewSourceIndexMap[raw.sourceIndex];\n        if (newSourceIndex === void 0) {\n          const rawPath = map2.sources[raw.sourceIndex];\n          const relativePath = map2.sourceRoot ? combinePaths(map2.sourceRoot, rawPath) : rawPath;\n          const combinedPath = combinePaths(getDirectoryPath(sourceMapPath), relativePath);\n          sourceIndexToNewSourceIndexMap[raw.sourceIndex] = newSourceIndex = addSource(combinedPath);\n          if (map2.sourcesContent && typeof map2.sourcesContent[raw.sourceIndex] === \"string\") {\n            setSourceContent(newSourceIndex, map2.sourcesContent[raw.sourceIndex]);\n          }\n        }\n        newSourceLine = raw.sourceLine;\n        newSourceCharacter = raw.sourceCharacter;\n        if (map2.names && raw.nameIndex !== void 0) {\n          if (!nameIndexToNewNameIndexMap) nameIndexToNewNameIndexMap = [];\n          newNameIndex = nameIndexToNewNameIndexMap[raw.nameIndex];\n          if (newNameIndex === void 0) {\n            nameIndexToNewNameIndexMap[raw.nameIndex] = newNameIndex = addName(map2.names[raw.nameIndex]);\n          }\n        }\n      }\n      const rawGeneratedLine = raw.generatedLine - (start ? start.line : 0);\n      const newGeneratedLine = rawGeneratedLine + generatedLine;\n      const rawGeneratedCharacter = start && start.line === raw.generatedLine ? raw.generatedCharacter - start.character : raw.generatedCharacter;\n      const newGeneratedCharacter = rawGeneratedLine === 0 ? rawGeneratedCharacter + generatedCharacter : rawGeneratedCharacter;\n      addMapping(newGeneratedLine, newGeneratedCharacter, newSourceIndex, newSourceLine, newSourceCharacter, newNameIndex);\n    }\n    exit();\n  }\n  function shouldCommitMapping() {\n    return !hasLast || lastGeneratedLine !== pendingGeneratedLine || lastGeneratedCharacter !== pendingGeneratedCharacter || lastSourceIndex !== pendingSourceIndex || lastSourceLine !== pendingSourceLine || lastSourceCharacter !== pendingSourceCharacter || lastNameIndex !== pendingNameIndex;\n  }\n  function appendMappingCharCode(charCode) {\n    mappingCharCodes.push(charCode);\n    if (mappingCharCodes.length >= 1024) {\n      flushMappingBuffer();\n    }\n  }\n  function commitPendingMapping() {\n    if (!hasPending || !shouldCommitMapping()) {\n      return;\n    }\n    enter();\n    if (lastGeneratedLine < pendingGeneratedLine) {\n      do {\n        appendMappingCharCode(59 /* semicolon */);\n        lastGeneratedLine++;\n      } while (lastGeneratedLine < pendingGeneratedLine);\n      lastGeneratedCharacter = 0;\n    } else {\n      Debug.assertEqual(lastGeneratedLine, pendingGeneratedLine, \"generatedLine cannot backtrack\");\n      if (hasLast) {\n        appendMappingCharCode(44 /* comma */);\n      }\n    }\n    appendBase64VLQ(pendingGeneratedCharacter - lastGeneratedCharacter);\n    lastGeneratedCharacter = pendingGeneratedCharacter;\n    if (hasPendingSource) {\n      appendBase64VLQ(pendingSourceIndex - lastSourceIndex);\n      lastSourceIndex = pendingSourceIndex;\n      appendBase64VLQ(pendingSourceLine - lastSourceLine);\n      lastSourceLine = pendingSourceLine;\n      appendBase64VLQ(pendingSourceCharacter - lastSourceCharacter);\n      lastSourceCharacter = pendingSourceCharacter;\n      if (hasPendingName) {\n        appendBase64VLQ(pendingNameIndex - lastNameIndex);\n        lastNameIndex = pendingNameIndex;\n      }\n    }\n    hasLast = true;\n    exit();\n  }\n  function flushMappingBuffer() {\n    if (mappingCharCodes.length > 0) {\n      mappings += String.fromCharCode.apply(void 0, mappingCharCodes);\n      mappingCharCodes.length = 0;\n    }\n  }\n  function toJSON() {\n    commitPendingMapping();\n    flushMappingBuffer();\n    return {\n      version: 3,\n      file,\n      sourceRoot,\n      sources,\n      names,\n      mappings,\n      sourcesContent\n    };\n  }\n  function appendBase64VLQ(inValue) {\n    if (inValue < 0) {\n      inValue = (-inValue << 1) + 1;\n    } else {\n      inValue = inValue << 1;\n    }\n    do {\n      let currentDigit = inValue & 31;\n      inValue = inValue >> 5;\n      if (inValue > 0) {\n        currentDigit = currentDigit | 32;\n      }\n      appendMappingCharCode(base64FormatEncode(currentDigit));\n    } while (inValue > 0);\n  }\n}\nvar sourceMapCommentRegExpDontCareLineStart = /\\/\\/[@#] source[M]appingURL=(.+)\\r?\\n?$/;\nvar sourceMapCommentRegExp = /^\\/\\/[@#] source[M]appingURL=(.+)\\r?\\n?$/;\nvar whitespaceOrMapCommentRegExp = /^\\s*(\\/\\/[@#] .*)?$/;\nfunction getLineInfo(text, lineStarts) {\n  return {\n    getLineCount: () => lineStarts.length,\n    getLineText: (line) => text.substring(lineStarts[line], lineStarts[line + 1])\n  };\n}\nfunction tryGetSourceMappingURL(lineInfo) {\n  for (let index = lineInfo.getLineCount() - 1; index >= 0; index--) {\n    const line = lineInfo.getLineText(index);\n    const comment = sourceMapCommentRegExp.exec(line);\n    if (comment) {\n      return comment[1].trimEnd();\n    } else if (!line.match(whitespaceOrMapCommentRegExp)) {\n      break;\n    }\n  }\n}\nfunction isStringOrNull(x) {\n  return typeof x === \"string\" || x === null;\n}\nfunction isRawSourceMap(x) {\n  return x !== null && typeof x === \"object\" && x.version === 3 && typeof x.file === \"string\" && typeof x.mappings === \"string\" && isArray(x.sources) && every(x.sources, isString) && (x.sourceRoot === void 0 || x.sourceRoot === null || typeof x.sourceRoot === \"string\") && (x.sourcesContent === void 0 || x.sourcesContent === null || isArray(x.sourcesContent) && every(x.sourcesContent, isStringOrNull)) && (x.names === void 0 || x.names === null || isArray(x.names) && every(x.names, isString));\n}\nfunction tryParseRawSourceMap(text) {\n  try {\n    const parsed = JSON.parse(text);\n    if (isRawSourceMap(parsed)) {\n      return parsed;\n    }\n  } catch {\n  }\n  return void 0;\n}\nfunction decodeMappings(mappings) {\n  let done = false;\n  let pos = 0;\n  let generatedLine = 0;\n  let generatedCharacter = 0;\n  let sourceIndex = 0;\n  let sourceLine = 0;\n  let sourceCharacter = 0;\n  let nameIndex = 0;\n  let error2;\n  return {\n    get pos() {\n      return pos;\n    },\n    get error() {\n      return error2;\n    },\n    get state() {\n      return captureMapping(\n        /*hasSource*/\n        true,\n        /*hasName*/\n        true\n      );\n    },\n    next() {\n      while (!done && pos < mappings.length) {\n        const ch = mappings.charCodeAt(pos);\n        if (ch === 59 /* semicolon */) {\n          generatedLine++;\n          generatedCharacter = 0;\n          pos++;\n          continue;\n        }\n        if (ch === 44 /* comma */) {\n          pos++;\n          continue;\n        }\n        let hasSource = false;\n        let hasName = false;\n        generatedCharacter += base64VLQFormatDecode();\n        if (hasReportedError()) return stopIterating();\n        if (generatedCharacter < 0) return setErrorAndStopIterating(\"Invalid generatedCharacter found\");\n        if (!isSourceMappingSegmentEnd()) {\n          hasSource = true;\n          sourceIndex += base64VLQFormatDecode();\n          if (hasReportedError()) return stopIterating();\n          if (sourceIndex < 0) return setErrorAndStopIterating(\"Invalid sourceIndex found\");\n          if (isSourceMappingSegmentEnd()) return setErrorAndStopIterating(\"Unsupported Format: No entries after sourceIndex\");\n          sourceLine += base64VLQFormatDecode();\n          if (hasReportedError()) return stopIterating();\n          if (sourceLine < 0) return setErrorAndStopIterating(\"Invalid sourceLine found\");\n          if (isSourceMappingSegmentEnd()) return setErrorAndStopIterating(\"Unsupported Format: No entries after sourceLine\");\n          sourceCharacter += base64VLQFormatDecode();\n          if (hasReportedError()) return stopIterating();\n          if (sourceCharacter < 0) return setErrorAndStopIterating(\"Invalid sourceCharacter found\");\n          if (!isSourceMappingSegmentEnd()) {\n            hasName = true;\n            nameIndex += base64VLQFormatDecode();\n            if (hasReportedError()) return stopIterating();\n            if (nameIndex < 0) return setErrorAndStopIterating(\"Invalid nameIndex found\");\n            if (!isSourceMappingSegmentEnd()) return setErrorAndStopIterating(\"Unsupported Error Format: Entries after nameIndex\");\n          }\n        }\n        return { value: captureMapping(hasSource, hasName), done };\n      }\n      return stopIterating();\n    },\n    [Symbol.iterator]() {\n      return this;\n    }\n  };\n  function captureMapping(hasSource, hasName) {\n    return {\n      generatedLine,\n      generatedCharacter,\n      sourceIndex: hasSource ? sourceIndex : void 0,\n      sourceLine: hasSource ? sourceLine : void 0,\n      sourceCharacter: hasSource ? sourceCharacter : void 0,\n      nameIndex: hasName ? nameIndex : void 0\n    };\n  }\n  function stopIterating() {\n    done = true;\n    return { value: void 0, done: true };\n  }\n  function setError(message) {\n    if (error2 === void 0) {\n      error2 = message;\n    }\n  }\n  function setErrorAndStopIterating(message) {\n    setError(message);\n    return stopIterating();\n  }\n  function hasReportedError() {\n    return error2 !== void 0;\n  }\n  function isSourceMappingSegmentEnd() {\n    return pos === mappings.length || mappings.charCodeAt(pos) === 44 /* comma */ || mappings.charCodeAt(pos) === 59 /* semicolon */;\n  }\n  function base64VLQFormatDecode() {\n    let moreDigits = true;\n    let shiftCount = 0;\n    let value = 0;\n    for (; moreDigits; pos++) {\n      if (pos >= mappings.length) return setError(\"Error in decoding base64VLQFormatDecode, past the mapping string\"), -1;\n      const currentByte = base64FormatDecode(mappings.charCodeAt(pos));\n      if (currentByte === -1) return setError(\"Invalid character in VLQ\"), -1;\n      moreDigits = (currentByte & 32) !== 0;\n      value = value | (currentByte & 31) << shiftCount;\n      shiftCount += 5;\n    }\n    if ((value & 1) === 0) {\n      value = value >> 1;\n    } else {\n      value = value >> 1;\n      value = -value;\n    }\n    return value;\n  }\n}\nfunction sameMapping(left, right) {\n  return left === right || left.generatedLine === right.generatedLine && left.generatedCharacter === right.generatedCharacter && left.sourceIndex === right.sourceIndex && left.sourceLine === right.sourceLine && left.sourceCharacter === right.sourceCharacter && left.nameIndex === right.nameIndex;\n}\nfunction isSourceMapping(mapping) {\n  return mapping.sourceIndex !== void 0 && mapping.sourceLine !== void 0 && mapping.sourceCharacter !== void 0;\n}\nfunction base64FormatEncode(value) {\n  return value >= 0 && value < 26 ? 65 /* A */ + value : value >= 26 && value < 52 ? 97 /* a */ + value - 26 : value >= 52 && value < 62 ? 48 /* _0 */ + value - 52 : value === 62 ? 43 /* plus */ : value === 63 ? 47 /* slash */ : Debug.fail(`${value}: not a base64 value`);\n}\nfunction base64FormatDecode(ch) {\n  return ch >= 65 /* A */ && ch <= 90 /* Z */ ? ch - 65 /* A */ : ch >= 97 /* a */ && ch <= 122 /* z */ ? ch - 97 /* a */ + 26 : ch >= 48 /* _0 */ && ch <= 57 /* _9 */ ? ch - 48 /* _0 */ + 52 : ch === 43 /* plus */ ? 62 : ch === 47 /* slash */ ? 63 : -1;\n}\nfunction isSourceMappedPosition(value) {\n  return value.sourceIndex !== void 0 && value.sourcePosition !== void 0;\n}\nfunction sameMappedPosition(left, right) {\n  return left.generatedPosition === right.generatedPosition && left.sourceIndex === right.sourceIndex && left.sourcePosition === right.sourcePosition;\n}\nfunction compareSourcePositions(left, right) {\n  Debug.assert(left.sourceIndex === right.sourceIndex);\n  return compareValues(left.sourcePosition, right.sourcePosition);\n}\nfunction compareGeneratedPositions(left, right) {\n  return compareValues(left.generatedPosition, right.generatedPosition);\n}\nfunction getSourcePositionOfMapping(value) {\n  return value.sourcePosition;\n}\nfunction getGeneratedPositionOfMapping(value) {\n  return value.generatedPosition;\n}\nfunction createDocumentPositionMapper(host, map2, mapPath) {\n  const mapDirectory = getDirectoryPath(mapPath);\n  const sourceRoot = map2.sourceRoot ? getNormalizedAbsolutePath(map2.sourceRoot, mapDirectory) : mapDirectory;\n  const generatedAbsoluteFilePath = getNormalizedAbsolutePath(map2.file, mapDirectory);\n  const generatedFile = host.getSourceFileLike(generatedAbsoluteFilePath);\n  const sourceFileAbsolutePaths = map2.sources.map((source) => getNormalizedAbsolutePath(source, sourceRoot));\n  const sourceToSourceIndexMap = new Map(sourceFileAbsolutePaths.map((source, i) => [host.getCanonicalFileName(source), i]));\n  let decodedMappings;\n  let generatedMappings;\n  let sourceMappings;\n  return {\n    getSourcePosition,\n    getGeneratedPosition\n  };\n  function processMapping(mapping) {\n    const generatedPosition = generatedFile !== void 0 ? getPositionOfLineAndCharacter(\n      generatedFile,\n      mapping.generatedLine,\n      mapping.generatedCharacter,\n      /*allowEdits*/\n      true\n    ) : -1;\n    let source;\n    let sourcePosition;\n    if (isSourceMapping(mapping)) {\n      const sourceFile = host.getSourceFileLike(sourceFileAbsolutePaths[mapping.sourceIndex]);\n      source = map2.sources[mapping.sourceIndex];\n      sourcePosition = sourceFile !== void 0 ? getPositionOfLineAndCharacter(\n        sourceFile,\n        mapping.sourceLine,\n        mapping.sourceCharacter,\n        /*allowEdits*/\n        true\n      ) : -1;\n    }\n    return {\n      generatedPosition,\n      source,\n      sourceIndex: mapping.sourceIndex,\n      sourcePosition,\n      nameIndex: mapping.nameIndex\n    };\n  }\n  function getDecodedMappings() {\n    if (decodedMappings === void 0) {\n      const decoder = decodeMappings(map2.mappings);\n      const mappings = arrayFrom(decoder, processMapping);\n      if (decoder.error !== void 0) {\n        if (host.log) {\n          host.log(`Encountered error while decoding sourcemap: ${decoder.error}`);\n        }\n        decodedMappings = emptyArray;\n      } else {\n        decodedMappings = mappings;\n      }\n    }\n    return decodedMappings;\n  }\n  function getSourceMappings(sourceIndex) {\n    if (sourceMappings === void 0) {\n      const lists = [];\n      for (const mapping of getDecodedMappings()) {\n        if (!isSourceMappedPosition(mapping)) continue;\n        let list = lists[mapping.sourceIndex];\n        if (!list) lists[mapping.sourceIndex] = list = [];\n        list.push(mapping);\n      }\n      sourceMappings = lists.map((list) => sortAndDeduplicate(list, compareSourcePositions, sameMappedPosition));\n    }\n    return sourceMappings[sourceIndex];\n  }\n  function getGeneratedMappings() {\n    if (generatedMappings === void 0) {\n      const list = [];\n      for (const mapping of getDecodedMappings()) {\n        list.push(mapping);\n      }\n      generatedMappings = sortAndDeduplicate(list, compareGeneratedPositions, sameMappedPosition);\n    }\n    return generatedMappings;\n  }\n  function getGeneratedPosition(loc) {\n    const sourceIndex = sourceToSourceIndexMap.get(host.getCanonicalFileName(loc.fileName));\n    if (sourceIndex === void 0) return loc;\n    const sourceMappings2 = getSourceMappings(sourceIndex);\n    if (!some(sourceMappings2)) return loc;\n    let targetIndex = binarySearchKey(sourceMappings2, loc.pos, getSourcePositionOfMapping, compareValues);\n    if (targetIndex < 0) {\n      targetIndex = ~targetIndex;\n    }\n    const mapping = sourceMappings2[targetIndex];\n    if (mapping === void 0 || mapping.sourceIndex !== sourceIndex) {\n      return loc;\n    }\n    return { fileName: generatedAbsoluteFilePath, pos: mapping.generatedPosition };\n  }\n  function getSourcePosition(loc) {\n    const generatedMappings2 = getGeneratedMappings();\n    if (!some(generatedMappings2)) return loc;\n    let targetIndex = binarySearchKey(generatedMappings2, loc.pos, getGeneratedPositionOfMapping, compareValues);\n    if (targetIndex < 0) {\n      targetIndex = ~targetIndex;\n    }\n    const mapping = generatedMappings2[targetIndex];\n    if (mapping === void 0 || !isSourceMappedPosition(mapping)) {\n      return loc;\n    }\n    return { fileName: sourceFileAbsolutePaths[mapping.sourceIndex], pos: mapping.sourcePosition };\n  }\n}\nvar identitySourceMapConsumer = {\n  getSourcePosition: identity,\n  getGeneratedPosition: identity\n};\n\n// src/compiler/transformers/utilities.ts\nfunction getOriginalNodeId(node) {\n  node = getOriginalNode(node);\n  return node ? getNodeId(node) : 0;\n}\nfunction containsDefaultReference(node) {\n  if (!node) return false;\n  if (!isNamedImports(node) && !isNamedExports(node)) return false;\n  return some(node.elements, isNamedDefaultReference);\n}\nfunction isNamedDefaultReference(e) {\n  return moduleExportNameIsDefault(e.propertyName || e.name);\n}\nfunction chainBundle(context, transformSourceFile) {\n  return transformSourceFileOrBundle;\n  function transformSourceFileOrBundle(node) {\n    return node.kind === 308 /* SourceFile */ ? transformSourceFile(node) : transformBundle(node);\n  }\n  function transformBundle(node) {\n    return context.factory.createBundle(map(node.sourceFiles, transformSourceFile));\n  }\n}\nfunction getExportNeedsImportStarHelper(node) {\n  return !!getNamespaceDeclarationNode(node);\n}\nfunction getImportNeedsImportStarHelper(node) {\n  if (!!getNamespaceDeclarationNode(node)) {\n    return true;\n  }\n  const bindings = node.importClause && node.importClause.namedBindings;\n  if (!bindings) {\n    return false;\n  }\n  if (!isNamedImports(bindings)) return false;\n  let defaultRefCount = 0;\n  for (const binding of bindings.elements) {\n    if (isNamedDefaultReference(binding)) {\n      defaultRefCount++;\n    }\n  }\n  return defaultRefCount > 0 && defaultRefCount !== bindings.elements.length || !!(bindings.elements.length - defaultRefCount) && isDefaultImport(node);\n}\nfunction getImportNeedsImportDefaultHelper(node) {\n  return !getImportNeedsImportStarHelper(node) && (isDefaultImport(node) || !!node.importClause && isNamedImports(node.importClause.namedBindings) && containsDefaultReference(node.importClause.namedBindings));\n}\nfunction collectExternalModuleInfo(context, sourceFile) {\n  const resolver = context.getEmitResolver();\n  const compilerOptions = context.getCompilerOptions();\n  const externalImports = [];\n  const exportSpecifiers = new IdentifierNameMultiMap();\n  const exportedBindings = [];\n  const uniqueExports = /* @__PURE__ */ new Map();\n  const exportedFunctions = /* @__PURE__ */ new Set();\n  let exportedNames;\n  let hasExportDefault = false;\n  let exportEquals;\n  let hasExportStarsToExportValues = false;\n  let hasImportStar = false;\n  let hasImportDefault = false;\n  for (const node of sourceFile.statements) {\n    switch (node.kind) {\n      case 273 /* ImportDeclaration */:\n        externalImports.push(node);\n        if (!hasImportStar && getImportNeedsImportStarHelper(node)) {\n          hasImportStar = true;\n        }\n        if (!hasImportDefault && getImportNeedsImportDefaultHelper(node)) {\n          hasImportDefault = true;\n        }\n        break;\n      case 272 /* ImportEqualsDeclaration */:\n        if (node.moduleReference.kind === 284 /* ExternalModuleReference */) {\n          externalImports.push(node);\n        }\n        break;\n      case 279 /* ExportDeclaration */:\n        if (node.moduleSpecifier) {\n          if (!node.exportClause) {\n            externalImports.push(node);\n            hasExportStarsToExportValues = true;\n          } else {\n            externalImports.push(node);\n            if (isNamedExports(node.exportClause)) {\n              addExportedNamesForExportDeclaration(node);\n              hasImportDefault || (hasImportDefault = containsDefaultReference(node.exportClause));\n            } else {\n              const name = node.exportClause.name;\n              const nameText = moduleExportNameTextUnescaped(name);\n              if (!uniqueExports.get(nameText)) {\n                multiMapSparseArrayAdd(exportedBindings, getOriginalNodeId(node), name);\n                uniqueExports.set(nameText, true);\n                exportedNames = append(exportedNames, name);\n              }\n              hasImportStar = true;\n            }\n          }\n        } else {\n          addExportedNamesForExportDeclaration(node);\n        }\n        break;\n      case 278 /* ExportAssignment */:\n        if (node.isExportEquals && !exportEquals) {\n          exportEquals = node;\n        }\n        break;\n      case 244 /* VariableStatement */:\n        if (hasSyntacticModifier(node, 32 /* Export */)) {\n          for (const decl of node.declarationList.declarations) {\n            exportedNames = collectExportedVariableInfo(decl, uniqueExports, exportedNames, exportedBindings);\n          }\n        }\n        break;\n      case 263 /* FunctionDeclaration */:\n        if (hasSyntacticModifier(node, 32 /* Export */)) {\n          addExportedFunctionDeclaration(\n            node,\n            /*name*/\n            void 0,\n            hasSyntacticModifier(node, 2048 /* Default */)\n          );\n        }\n        break;\n      case 264 /* ClassDeclaration */:\n        if (hasSyntacticModifier(node, 32 /* Export */)) {\n          if (hasSyntacticModifier(node, 2048 /* Default */)) {\n            if (!hasExportDefault) {\n              multiMapSparseArrayAdd(exportedBindings, getOriginalNodeId(node), context.factory.getDeclarationName(node));\n              hasExportDefault = true;\n            }\n          } else {\n            const name = node.name;\n            if (name && !uniqueExports.get(idText(name))) {\n              multiMapSparseArrayAdd(exportedBindings, getOriginalNodeId(node), name);\n              uniqueExports.set(idText(name), true);\n              exportedNames = append(exportedNames, name);\n            }\n          }\n        }\n        break;\n    }\n  }\n  const externalHelpersImportDeclaration = createExternalHelpersImportDeclarationIfNeeded(context.factory, context.getEmitHelperFactory(), sourceFile, compilerOptions, hasExportStarsToExportValues, hasImportStar, hasImportDefault);\n  if (externalHelpersImportDeclaration) {\n    externalImports.unshift(externalHelpersImportDeclaration);\n  }\n  return { externalImports, exportSpecifiers, exportEquals, hasExportStarsToExportValues, exportedBindings, exportedNames, exportedFunctions, externalHelpersImportDeclaration };\n  function addExportedNamesForExportDeclaration(node) {\n    for (const specifier of cast(node.exportClause, isNamedExports).elements) {\n      const specifierNameText = moduleExportNameTextUnescaped(specifier.name);\n      if (!uniqueExports.get(specifierNameText)) {\n        const name = specifier.propertyName || specifier.name;\n        if (name.kind !== 11 /* StringLiteral */) {\n          if (!node.moduleSpecifier) {\n            exportSpecifiers.add(name, specifier);\n          }\n          const decl = resolver.getReferencedImportDeclaration(name) || resolver.getReferencedValueDeclaration(name);\n          if (decl) {\n            if (decl.kind === 263 /* FunctionDeclaration */) {\n              addExportedFunctionDeclaration(decl, specifier.name, moduleExportNameIsDefault(specifier.name));\n              continue;\n            }\n            multiMapSparseArrayAdd(exportedBindings, getOriginalNodeId(decl), specifier.name);\n          }\n        }\n        uniqueExports.set(specifierNameText, true);\n        exportedNames = append(exportedNames, specifier.name);\n      }\n    }\n  }\n  function addExportedFunctionDeclaration(node, name, isDefault) {\n    exportedFunctions.add(getOriginalNode(node, isFunctionDeclaration));\n    if (isDefault) {\n      if (!hasExportDefault) {\n        multiMapSparseArrayAdd(exportedBindings, getOriginalNodeId(node), name ?? context.factory.getDeclarationName(node));\n        hasExportDefault = true;\n      }\n    } else {\n      name ?? (name = node.name);\n      const nameText = moduleExportNameTextUnescaped(name);\n      if (!uniqueExports.get(nameText)) {\n        multiMapSparseArrayAdd(exportedBindings, getOriginalNodeId(node), name);\n        uniqueExports.set(nameText, true);\n      }\n    }\n  }\n}\nfunction collectExportedVariableInfo(decl, uniqueExports, exportedNames, exportedBindings) {\n  if (isBindingPattern(decl.name)) {\n    for (const element of decl.name.elements) {\n      if (!isOmittedExpression(element)) {\n        exportedNames = collectExportedVariableInfo(element, uniqueExports, exportedNames, exportedBindings);\n      }\n    }\n  } else if (!isGeneratedIdentifier(decl.name)) {\n    const text = idText(decl.name);\n    if (!uniqueExports.get(text)) {\n      uniqueExports.set(text, true);\n      exportedNames = append(exportedNames, decl.name);\n      if (isLocalName(decl.name)) {\n        multiMapSparseArrayAdd(exportedBindings, getOriginalNodeId(decl), decl.name);\n      }\n    }\n  }\n  return exportedNames;\n}\nfunction multiMapSparseArrayAdd(map2, key, value) {\n  let values = map2[key];\n  if (values) {\n    values.push(value);\n  } else {\n    map2[key] = values = [value];\n  }\n  return values;\n}\nvar IdentifierNameMap = class _IdentifierNameMap {\n  constructor() {\n    this._map = /* @__PURE__ */ new Map();\n  }\n  get size() {\n    return this._map.size;\n  }\n  has(key) {\n    return this._map.has(_IdentifierNameMap.toKey(key));\n  }\n  get(key) {\n    return this._map.get(_IdentifierNameMap.toKey(key));\n  }\n  set(key, value) {\n    this._map.set(_IdentifierNameMap.toKey(key), value);\n    return this;\n  }\n  delete(key) {\n    var _a;\n    return ((_a = this._map) == null ? void 0 : _a.delete(_IdentifierNameMap.toKey(key))) ?? false;\n  }\n  clear() {\n    this._map.clear();\n  }\n  values() {\n    return this._map.values();\n  }\n  static toKey(name) {\n    if (isGeneratedPrivateIdentifier(name) || isGeneratedIdentifier(name)) {\n      const autoGenerate = name.emitNode.autoGenerate;\n      if ((autoGenerate.flags & 7 /* KindMask */) === 4 /* Node */) {\n        const node = getNodeForGeneratedName(name);\n        const baseName = isMemberName(node) && node !== name ? _IdentifierNameMap.toKey(node) : `(generated@${getNodeId(node)})`;\n        return formatGeneratedName(\n          /*privateName*/\n          false,\n          autoGenerate.prefix,\n          baseName,\n          autoGenerate.suffix,\n          _IdentifierNameMap.toKey\n        );\n      } else {\n        const baseName = `(auto@${autoGenerate.id})`;\n        return formatGeneratedName(\n          /*privateName*/\n          false,\n          autoGenerate.prefix,\n          baseName,\n          autoGenerate.suffix,\n          _IdentifierNameMap.toKey\n        );\n      }\n    }\n    if (isPrivateIdentifier(name)) {\n      return idText(name).slice(1);\n    }\n    return idText(name);\n  }\n};\nvar IdentifierNameMultiMap = class extends IdentifierNameMap {\n  add(key, value) {\n    let values = this.get(key);\n    if (values) {\n      values.push(value);\n    } else {\n      this.set(key, values = [value]);\n    }\n    return values;\n  }\n  remove(key, value) {\n    const values = this.get(key);\n    if (values) {\n      unorderedRemoveItem(values, value);\n      if (!values.length) {\n        this.delete(key);\n      }\n    }\n  }\n};\nfunction isSimpleCopiableExpression(expression) {\n  return isStringLiteralLike(expression) || expression.kind === 9 /* NumericLiteral */ || isKeyword(expression.kind) || isIdentifier(expression);\n}\nfunction isSimpleInlineableExpression(expression) {\n  return !isIdentifier(expression) && isSimpleCopiableExpression(expression);\n}\nfunction isCompoundAssignment(kind) {\n  return kind >= 65 /* FirstCompoundAssignment */ && kind <= 79 /* LastCompoundAssignment */;\n}\nfunction getNonAssignmentOperatorForCompoundAssignment(kind) {\n  switch (kind) {\n    case 65 /* PlusEqualsToken */:\n      return 40 /* PlusToken */;\n    case 66 /* MinusEqualsToken */:\n      return 41 /* MinusToken */;\n    case 67 /* AsteriskEqualsToken */:\n      return 42 /* AsteriskToken */;\n    case 68 /* AsteriskAsteriskEqualsToken */:\n      return 43 /* AsteriskAsteriskToken */;\n    case 69 /* SlashEqualsToken */:\n      return 44 /* SlashToken */;\n    case 70 /* PercentEqualsToken */:\n      return 45 /* PercentToken */;\n    case 71 /* LessThanLessThanEqualsToken */:\n      return 48 /* LessThanLessThanToken */;\n    case 72 /* GreaterThanGreaterThanEqualsToken */:\n      return 49 /* GreaterThanGreaterThanToken */;\n    case 73 /* GreaterThanGreaterThanGreaterThanEqualsToken */:\n      return 50 /* GreaterThanGreaterThanGreaterThanToken */;\n    case 74 /* AmpersandEqualsToken */:\n      return 51 /* AmpersandToken */;\n    case 75 /* BarEqualsToken */:\n      return 52 /* BarToken */;\n    case 79 /* CaretEqualsToken */:\n      return 53 /* CaretToken */;\n    case 76 /* BarBarEqualsToken */:\n      return 57 /* BarBarToken */;\n    case 77 /* AmpersandAmpersandEqualsToken */:\n      return 56 /* AmpersandAmpersandToken */;\n    case 78 /* QuestionQuestionEqualsToken */:\n      return 61 /* QuestionQuestionToken */;\n  }\n}\nfunction getSuperCallFromStatement(statement) {\n  if (!isExpressionStatement(statement)) {\n    return void 0;\n  }\n  const expression = skipParentheses(statement.expression);\n  return isSuperCall(expression) ? expression : void 0;\n}\nfunction findSuperStatementIndexPathWorker(statements, start, indices) {\n  for (let i = start; i < statements.length; i += 1) {\n    const statement = statements[i];\n    if (getSuperCallFromStatement(statement)) {\n      indices.unshift(i);\n      return true;\n    } else if (isTryStatement(statement) && findSuperStatementIndexPathWorker(statement.tryBlock.statements, 0, indices)) {\n      indices.unshift(i);\n      return true;\n    }\n  }\n  return false;\n}\nfunction findSuperStatementIndexPath(statements, start) {\n  const indices = [];\n  findSuperStatementIndexPathWorker(statements, start, indices);\n  return indices;\n}\nfunction getProperties(node, requireInitializer, isStatic2) {\n  return filter(node.members, (m) => isInitializedOrStaticProperty(m, requireInitializer, isStatic2));\n}\nfunction isStaticPropertyDeclarationOrClassStaticBlockDeclaration(element) {\n  return isStaticPropertyDeclaration(element) || isClassStaticBlockDeclaration(element);\n}\nfunction getStaticPropertiesAndClassStaticBlock(node) {\n  return filter(node.members, isStaticPropertyDeclarationOrClassStaticBlockDeclaration);\n}\nfunction isInitializedOrStaticProperty(member, requireInitializer, isStatic2) {\n  return isPropertyDeclaration(member) && (!!member.initializer || !requireInitializer) && hasStaticModifier(member) === isStatic2;\n}\nfunction isStaticPropertyDeclaration(member) {\n  return isPropertyDeclaration(member) && hasStaticModifier(member);\n}\nfunction isInitializedProperty(member) {\n  return member.kind === 173 /* PropertyDeclaration */ && member.initializer !== void 0;\n}\nfunction isNonStaticMethodOrAccessorWithPrivateName(member) {\n  return !isStatic(member) && (isMethodOrAccessor(member) || isAutoAccessorPropertyDeclaration(member)) && isPrivateIdentifier(member.name);\n}\nfunction getDecoratorsOfParameters(node) {\n  let decorators;\n  if (node) {\n    const parameters = node.parameters;\n    const firstParameterIsThis = parameters.length > 0 && parameterIsThisKeyword(parameters[0]);\n    const firstParameterOffset = firstParameterIsThis ? 1 : 0;\n    const numParameters = firstParameterIsThis ? parameters.length - 1 : parameters.length;\n    for (let i = 0; i < numParameters; i++) {\n      const parameter = parameters[i + firstParameterOffset];\n      if (decorators || hasDecorators(parameter)) {\n        if (!decorators) {\n          decorators = new Array(numParameters);\n        }\n        decorators[i] = getDecorators(parameter);\n      }\n    }\n  }\n  return decorators;\n}\nfunction getAllDecoratorsOfClass(node, useLegacyDecorators) {\n  const decorators = getDecorators(node);\n  const parameters = useLegacyDecorators ? getDecoratorsOfParameters(getFirstConstructorWithBody(node)) : void 0;\n  if (!some(decorators) && !some(parameters)) {\n    return void 0;\n  }\n  return {\n    decorators,\n    parameters\n  };\n}\nfunction getAllDecoratorsOfClassElement(member, parent2, useLegacyDecorators) {\n  switch (member.kind) {\n    case 178 /* GetAccessor */:\n    case 179 /* SetAccessor */:\n      if (!useLegacyDecorators) {\n        return getAllDecoratorsOfMethod(\n          member,\n          /*useLegacyDecorators*/\n          false\n        );\n      }\n      return getAllDecoratorsOfAccessors(\n        member,\n        parent2,\n        /*useLegacyDecorators*/\n        true\n      );\n    case 175 /* MethodDeclaration */:\n      return getAllDecoratorsOfMethod(member, useLegacyDecorators);\n    case 173 /* PropertyDeclaration */:\n      return getAllDecoratorsOfProperty(member);\n    default:\n      return void 0;\n  }\n}\nfunction getAllDecoratorsOfAccessors(accessor, parent2, useLegacyDecorators) {\n  if (!accessor.body) {\n    return void 0;\n  }\n  const { firstAccessor, secondAccessor, getAccessor, setAccessor } = getAllAccessorDeclarations(parent2.members, accessor);\n  const firstAccessorWithDecorators = hasDecorators(firstAccessor) ? firstAccessor : secondAccessor && hasDecorators(secondAccessor) ? secondAccessor : void 0;\n  if (!firstAccessorWithDecorators || accessor !== firstAccessorWithDecorators) {\n    return void 0;\n  }\n  const decorators = getDecorators(firstAccessorWithDecorators);\n  const parameters = useLegacyDecorators ? getDecoratorsOfParameters(setAccessor) : void 0;\n  if (!some(decorators) && !some(parameters)) {\n    return void 0;\n  }\n  return {\n    decorators,\n    parameters,\n    getDecorators: getAccessor && getDecorators(getAccessor),\n    setDecorators: setAccessor && getDecorators(setAccessor)\n  };\n}\nfunction getAllDecoratorsOfMethod(method, useLegacyDecorators) {\n  if (!method.body) {\n    return void 0;\n  }\n  const decorators = getDecorators(method);\n  const parameters = useLegacyDecorators ? getDecoratorsOfParameters(method) : void 0;\n  if (!some(decorators) && !some(parameters)) {\n    return void 0;\n  }\n  return { decorators, parameters };\n}\nfunction getAllDecoratorsOfProperty(property) {\n  const decorators = getDecorators(property);\n  if (!some(decorators)) {\n    return void 0;\n  }\n  return { decorators };\n}\nfunction walkUpLexicalEnvironments(env, cb) {\n  while (env) {\n    const result = cb(env);\n    if (result !== void 0) return result;\n    env = env.previous;\n  }\n}\nfunction newPrivateEnvironment(data) {\n  return { data };\n}\nfunction getPrivateIdentifier(privateEnv, name) {\n  var _a, _b;\n  return isGeneratedPrivateIdentifier(name) ? (_a = privateEnv == null ? void 0 : privateEnv.generatedIdentifiers) == null ? void 0 : _a.get(getNodeForGeneratedName(name)) : (_b = privateEnv == null ? void 0 : privateEnv.identifiers) == null ? void 0 : _b.get(name.escapedText);\n}\nfunction setPrivateIdentifier(privateEnv, name, entry) {\n  if (isGeneratedPrivateIdentifier(name)) {\n    privateEnv.generatedIdentifiers ?? (privateEnv.generatedIdentifiers = /* @__PURE__ */ new Map());\n    privateEnv.generatedIdentifiers.set(getNodeForGeneratedName(name), entry);\n  } else {\n    privateEnv.identifiers ?? (privateEnv.identifiers = /* @__PURE__ */ new Map());\n    privateEnv.identifiers.set(name.escapedText, entry);\n  }\n}\nfunction accessPrivateIdentifier(env, name) {\n  return walkUpLexicalEnvironments(env, (env2) => getPrivateIdentifier(env2.privateEnv, name));\n}\nfunction isSimpleParameter(node) {\n  return !node.initializer && isIdentifier(node.name);\n}\nfunction isSimpleParameterList(nodes) {\n  return every(nodes, isSimpleParameter);\n}\nfunction rewriteModuleSpecifier(node, compilerOptions) {\n  if (!node || !isStringLiteral(node) || !shouldRewriteModuleSpecifier(node.text, compilerOptions)) {\n    return node;\n  }\n  const updatedText = changeExtension(node.text, getOutputExtension(node.text, compilerOptions));\n  return updatedText !== node.text ? setOriginalNode(setTextRange(factory.createStringLiteral(updatedText, node.singleQuote), node), node) : node;\n}\n\n// src/compiler/transformers/destructuring.ts\nvar FlattenLevel = /* @__PURE__ */ ((FlattenLevel2) => {\n  FlattenLevel2[FlattenLevel2[\"All\"] = 0] = \"All\";\n  FlattenLevel2[FlattenLevel2[\"ObjectRest\"] = 1] = \"ObjectRest\";\n  return FlattenLevel2;\n})(FlattenLevel || {});\nfunction flattenDestructuringAssignment(node, visitor, context, level, needsValue, createAssignmentCallback) {\n  let location = node;\n  let value;\n  if (isDestructuringAssignment(node)) {\n    value = node.right;\n    while (isEmptyArrayLiteral(node.left) || isEmptyObjectLiteral(node.left)) {\n      if (isDestructuringAssignment(value)) {\n        location = node = value;\n        value = node.right;\n      } else {\n        return Debug.checkDefined(visitNode(value, visitor, isExpression));\n      }\n    }\n  }\n  let expressions;\n  const flattenContext = {\n    context,\n    level,\n    downlevelIteration: !!context.getCompilerOptions().downlevelIteration,\n    hoistTempVariables: true,\n    emitExpression,\n    emitBindingOrAssignment,\n    createArrayBindingOrAssignmentPattern: (elements) => makeArrayAssignmentPattern(context.factory, elements),\n    createObjectBindingOrAssignmentPattern: (elements) => makeObjectAssignmentPattern(context.factory, elements),\n    createArrayBindingOrAssignmentElement: makeAssignmentElement,\n    visitor\n  };\n  if (value) {\n    value = visitNode(value, visitor, isExpression);\n    Debug.assert(value);\n    if (isIdentifier(value) && bindingOrAssignmentElementAssignsToName(node, value.escapedText) || bindingOrAssignmentElementContainsNonLiteralComputedName(node)) {\n      value = ensureIdentifier(\n        flattenContext,\n        value,\n        /*reuseIdentifierExpressions*/\n        false,\n        location\n      );\n    } else if (needsValue) {\n      value = ensureIdentifier(\n        flattenContext,\n        value,\n        /*reuseIdentifierExpressions*/\n        true,\n        location\n      );\n    } else if (nodeIsSynthesized(node)) {\n      location = value;\n    }\n  }\n  flattenBindingOrAssignmentElement(\n    flattenContext,\n    node,\n    value,\n    location,\n    /*skipInitializer*/\n    isDestructuringAssignment(node)\n  );\n  if (value && needsValue) {\n    if (!some(expressions)) {\n      return value;\n    }\n    expressions.push(value);\n  }\n  return context.factory.inlineExpressions(expressions) || context.factory.createOmittedExpression();\n  function emitExpression(expression) {\n    expressions = append(expressions, expression);\n  }\n  function emitBindingOrAssignment(target, value2, location2, original) {\n    Debug.assertNode(target, createAssignmentCallback ? isIdentifier : isExpression);\n    const expression = createAssignmentCallback ? createAssignmentCallback(target, value2, location2) : setTextRange(\n      context.factory.createAssignment(Debug.checkDefined(visitNode(target, visitor, isExpression)), value2),\n      location2\n    );\n    expression.original = original;\n    emitExpression(expression);\n  }\n}\nfunction bindingOrAssignmentElementAssignsToName(element, escapedName) {\n  const target = getTargetOfBindingOrAssignmentElement(element);\n  if (isBindingOrAssignmentPattern(target)) {\n    return bindingOrAssignmentPatternAssignsToName(target, escapedName);\n  } else if (isIdentifier(target)) {\n    return target.escapedText === escapedName;\n  }\n  return false;\n}\nfunction bindingOrAssignmentPatternAssignsToName(pattern, escapedName) {\n  const elements = getElementsOfBindingOrAssignmentPattern(pattern);\n  for (const element of elements) {\n    if (bindingOrAssignmentElementAssignsToName(element, escapedName)) {\n      return true;\n    }\n  }\n  return false;\n}\nfunction bindingOrAssignmentElementContainsNonLiteralComputedName(element) {\n  const propertyName = tryGetPropertyNameOfBindingOrAssignmentElement(element);\n  if (propertyName && isComputedPropertyName(propertyName) && !isLiteralExpression(propertyName.expression)) {\n    return true;\n  }\n  const target = getTargetOfBindingOrAssignmentElement(element);\n  return !!target && isBindingOrAssignmentPattern(target) && bindingOrAssignmentPatternContainsNonLiteralComputedName(target);\n}\nfunction bindingOrAssignmentPatternContainsNonLiteralComputedName(pattern) {\n  return !!forEach(getElementsOfBindingOrAssignmentPattern(pattern), bindingOrAssignmentElementContainsNonLiteralComputedName);\n}\nfunction flattenDestructuringBinding(node, visitor, context, level, rval, hoistTempVariables = false, skipInitializer) {\n  let pendingExpressions;\n  const pendingDeclarations = [];\n  const declarations = [];\n  const flattenContext = {\n    context,\n    level,\n    downlevelIteration: !!context.getCompilerOptions().downlevelIteration,\n    hoistTempVariables,\n    emitExpression,\n    emitBindingOrAssignment,\n    createArrayBindingOrAssignmentPattern: (elements) => makeArrayBindingPattern(context.factory, elements),\n    createObjectBindingOrAssignmentPattern: (elements) => makeObjectBindingPattern(context.factory, elements),\n    createArrayBindingOrAssignmentElement: (name) => makeBindingElement(context.factory, name),\n    visitor\n  };\n  if (isVariableDeclaration(node)) {\n    let initializer = getInitializerOfBindingOrAssignmentElement(node);\n    if (initializer && (isIdentifier(initializer) && bindingOrAssignmentElementAssignsToName(node, initializer.escapedText) || bindingOrAssignmentElementContainsNonLiteralComputedName(node))) {\n      initializer = ensureIdentifier(\n        flattenContext,\n        Debug.checkDefined(visitNode(initializer, flattenContext.visitor, isExpression)),\n        /*reuseIdentifierExpressions*/\n        false,\n        initializer\n      );\n      node = context.factory.updateVariableDeclaration(\n        node,\n        node.name,\n        /*exclamationToken*/\n        void 0,\n        /*type*/\n        void 0,\n        initializer\n      );\n    }\n  }\n  flattenBindingOrAssignmentElement(flattenContext, node, rval, node, skipInitializer);\n  if (pendingExpressions) {\n    const temp = context.factory.createTempVariable(\n      /*recordTempVariable*/\n      void 0\n    );\n    if (hoistTempVariables) {\n      const value = context.factory.inlineExpressions(pendingExpressions);\n      pendingExpressions = void 0;\n      emitBindingOrAssignment(\n        temp,\n        value,\n        /*location*/\n        void 0,\n        /*original*/\n        void 0\n      );\n    } else {\n      context.hoistVariableDeclaration(temp);\n      const pendingDeclaration = last(pendingDeclarations);\n      pendingDeclaration.pendingExpressions = append(\n        pendingDeclaration.pendingExpressions,\n        context.factory.createAssignment(temp, pendingDeclaration.value)\n      );\n      addRange(pendingDeclaration.pendingExpressions, pendingExpressions);\n      pendingDeclaration.value = temp;\n    }\n  }\n  for (const { pendingExpressions: pendingExpressions2, name, value, location, original } of pendingDeclarations) {\n    const variable = context.factory.createVariableDeclaration(\n      name,\n      /*exclamationToken*/\n      void 0,\n      /*type*/\n      void 0,\n      pendingExpressions2 ? context.factory.inlineExpressions(append(pendingExpressions2, value)) : value\n    );\n    variable.original = original;\n    setTextRange(variable, location);\n    declarations.push(variable);\n  }\n  return declarations;\n  function emitExpression(value) {\n    pendingExpressions = append(pendingExpressions, value);\n  }\n  function emitBindingOrAssignment(target, value, location, original) {\n    Debug.assertNode(target, isBindingName);\n    if (pendingExpressions) {\n      value = context.factory.inlineExpressions(append(pendingExpressions, value));\n      pendingExpressions = void 0;\n    }\n    pendingDeclarations.push({ pendingExpressions, name: target, value, location, original });\n  }\n}\nfunction flattenBindingOrAssignmentElement(flattenContext, element, value, location, skipInitializer) {\n  const bindingTarget = getTargetOfBindingOrAssignmentElement(element);\n  if (!skipInitializer) {\n    const initializer = visitNode(getInitializerOfBindingOrAssignmentElement(element), flattenContext.visitor, isExpression);\n    if (initializer) {\n      if (value) {\n        value = createDefaultValueCheck(flattenContext, value, initializer, location);\n        if (!isSimpleInlineableExpression(initializer) && isBindingOrAssignmentPattern(bindingTarget)) {\n          value = ensureIdentifier(\n            flattenContext,\n            value,\n            /*reuseIdentifierExpressions*/\n            true,\n            location\n          );\n        }\n      } else {\n        value = initializer;\n      }\n    } else if (!value) {\n      value = flattenContext.context.factory.createVoidZero();\n    }\n  }\n  if (isObjectBindingOrAssignmentPattern(bindingTarget)) {\n    flattenObjectBindingOrAssignmentPattern(flattenContext, element, bindingTarget, value, location);\n  } else if (isArrayBindingOrAssignmentPattern(bindingTarget)) {\n    flattenArrayBindingOrAssignmentPattern(flattenContext, element, bindingTarget, value, location);\n  } else {\n    flattenContext.emitBindingOrAssignment(\n      bindingTarget,\n      value,\n      location,\n      /*original*/\n      element\n    );\n  }\n}\nfunction flattenObjectBindingOrAssignmentPattern(flattenContext, parent2, pattern, value, location) {\n  const elements = getElementsOfBindingOrAssignmentPattern(pattern);\n  const numElements = elements.length;\n  if (numElements !== 1) {\n    const reuseIdentifierExpressions = !isDeclarationBindingElement(parent2) || numElements !== 0;\n    value = ensureIdentifier(flattenContext, value, reuseIdentifierExpressions, location);\n  }\n  let bindingElements;\n  let computedTempVariables;\n  for (let i = 0; i < numElements; i++) {\n    const element = elements[i];\n    if (!getRestIndicatorOfBindingOrAssignmentElement(element)) {\n      const propertyName = getPropertyNameOfBindingOrAssignmentElement(element);\n      if (flattenContext.level >= 1 /* ObjectRest */ && !(element.transformFlags & (32768 /* ContainsRestOrSpread */ | 65536 /* ContainsObjectRestOrSpread */)) && !(getTargetOfBindingOrAssignmentElement(element).transformFlags & (32768 /* ContainsRestOrSpread */ | 65536 /* ContainsObjectRestOrSpread */)) && !isComputedPropertyName(propertyName)) {\n        bindingElements = append(bindingElements, visitNode(element, flattenContext.visitor, isBindingOrAssignmentElement));\n      } else {\n        if (bindingElements) {\n          flattenContext.emitBindingOrAssignment(flattenContext.createObjectBindingOrAssignmentPattern(bindingElements), value, location, pattern);\n          bindingElements = void 0;\n        }\n        const rhsValue = createDestructuringPropertyAccess(flattenContext, value, propertyName);\n        if (isComputedPropertyName(propertyName)) {\n          computedTempVariables = append(computedTempVariables, rhsValue.argumentExpression);\n        }\n        flattenBindingOrAssignmentElement(\n          flattenContext,\n          element,\n          rhsValue,\n          /*location*/\n          element\n        );\n      }\n    } else if (i === numElements - 1) {\n      if (bindingElements) {\n        flattenContext.emitBindingOrAssignment(flattenContext.createObjectBindingOrAssignmentPattern(bindingElements), value, location, pattern);\n        bindingElements = void 0;\n      }\n      const rhsValue = flattenContext.context.getEmitHelperFactory().createRestHelper(value, elements, computedTempVariables, pattern);\n      flattenBindingOrAssignmentElement(flattenContext, element, rhsValue, element);\n    }\n  }\n  if (bindingElements) {\n    flattenContext.emitBindingOrAssignment(flattenContext.createObjectBindingOrAssignmentPattern(bindingElements), value, location, pattern);\n  }\n}\nfunction flattenArrayBindingOrAssignmentPattern(flattenContext, parent2, pattern, value, location) {\n  const elements = getElementsOfBindingOrAssignmentPattern(pattern);\n  const numElements = elements.length;\n  if (flattenContext.level < 1 /* ObjectRest */ && flattenContext.downlevelIteration) {\n    value = ensureIdentifier(\n      flattenContext,\n      setTextRange(\n        flattenContext.context.getEmitHelperFactory().createReadHelper(\n          value,\n          numElements > 0 && getRestIndicatorOfBindingOrAssignmentElement(elements[numElements - 1]) ? void 0 : numElements\n        ),\n        location\n      ),\n      /*reuseIdentifierExpressions*/\n      false,\n      location\n    );\n  } else if (numElements !== 1 && (flattenContext.level < 1 /* ObjectRest */ || numElements === 0) || every(elements, isOmittedExpression)) {\n    const reuseIdentifierExpressions = !isDeclarationBindingElement(parent2) || numElements !== 0;\n    value = ensureIdentifier(flattenContext, value, reuseIdentifierExpressions, location);\n  }\n  let bindingElements;\n  let restContainingElements;\n  for (let i = 0; i < numElements; i++) {\n    const element = elements[i];\n    if (flattenContext.level >= 1 /* ObjectRest */) {\n      if (element.transformFlags & 65536 /* ContainsObjectRestOrSpread */ || flattenContext.hasTransformedPriorElement && !isSimpleBindingOrAssignmentElement(element)) {\n        flattenContext.hasTransformedPriorElement = true;\n        const temp = flattenContext.context.factory.createTempVariable(\n          /*recordTempVariable*/\n          void 0\n        );\n        if (flattenContext.hoistTempVariables) {\n          flattenContext.context.hoistVariableDeclaration(temp);\n        }\n        restContainingElements = append(restContainingElements, [temp, element]);\n        bindingElements = append(bindingElements, flattenContext.createArrayBindingOrAssignmentElement(temp));\n      } else {\n        bindingElements = append(bindingElements, element);\n      }\n    } else if (isOmittedExpression(element)) {\n      continue;\n    } else if (!getRestIndicatorOfBindingOrAssignmentElement(element)) {\n      const rhsValue = flattenContext.context.factory.createElementAccessExpression(value, i);\n      flattenBindingOrAssignmentElement(\n        flattenContext,\n        element,\n        rhsValue,\n        /*location*/\n        element\n      );\n    } else if (i === numElements - 1) {\n      const rhsValue = flattenContext.context.factory.createArraySliceCall(value, i);\n      flattenBindingOrAssignmentElement(\n        flattenContext,\n        element,\n        rhsValue,\n        /*location*/\n        element\n      );\n    }\n  }\n  if (bindingElements) {\n    flattenContext.emitBindingOrAssignment(flattenContext.createArrayBindingOrAssignmentPattern(bindingElements), value, location, pattern);\n  }\n  if (restContainingElements) {\n    for (const [id, element] of restContainingElements) {\n      flattenBindingOrAssignmentElement(flattenContext, element, id, element);\n    }\n  }\n}\nfunction isSimpleBindingOrAssignmentElement(element) {\n  const target = getTargetOfBindingOrAssignmentElement(element);\n  if (!target || isOmittedExpression(target)) return true;\n  const propertyName = tryGetPropertyNameOfBindingOrAssignmentElement(element);\n  if (propertyName && !isPropertyNameLiteral(propertyName)) return false;\n  const initializer = getInitializerOfBindingOrAssignmentElement(element);\n  if (initializer && !isSimpleInlineableExpression(initializer)) return false;\n  if (isBindingOrAssignmentPattern(target)) return every(getElementsOfBindingOrAssignmentPattern(target), isSimpleBindingOrAssignmentElement);\n  return isIdentifier(target);\n}\nfunction createDefaultValueCheck(flattenContext, value, defaultValue, location) {\n  value = ensureIdentifier(\n    flattenContext,\n    value,\n    /*reuseIdentifierExpressions*/\n    true,\n    location\n  );\n  return flattenContext.context.factory.createConditionalExpression(\n    flattenContext.context.factory.createTypeCheck(value, \"undefined\"),\n    /*questionToken*/\n    void 0,\n    defaultValue,\n    /*colonToken*/\n    void 0,\n    value\n  );\n}\nfunction createDestructuringPropertyAccess(flattenContext, value, propertyName) {\n  const { factory: factory2 } = flattenContext.context;\n  if (isComputedPropertyName(propertyName)) {\n    const argumentExpression = ensureIdentifier(\n      flattenContext,\n      Debug.checkDefined(visitNode(propertyName.expression, flattenContext.visitor, isExpression)),\n      /*reuseIdentifierExpressions*/\n      false,\n      /*location*/\n      propertyName\n    );\n    return flattenContext.context.factory.createElementAccessExpression(value, argumentExpression);\n  } else if (isStringOrNumericLiteralLike(propertyName) || isBigIntLiteral(propertyName)) {\n    const argumentExpression = factory2.cloneNode(propertyName);\n    return flattenContext.context.factory.createElementAccessExpression(value, argumentExpression);\n  } else {\n    const name = flattenContext.context.factory.createIdentifier(idText(propertyName));\n    return flattenContext.context.factory.createPropertyAccessExpression(value, name);\n  }\n}\nfunction ensureIdentifier(flattenContext, value, reuseIdentifierExpressions, location) {\n  if (isIdentifier(value) && reuseIdentifierExpressions) {\n    return value;\n  } else {\n    const temp = flattenContext.context.factory.createTempVariable(\n      /*recordTempVariable*/\n      void 0\n    );\n    if (flattenContext.hoistTempVariables) {\n      flattenContext.context.hoistVariableDeclaration(temp);\n      flattenContext.emitExpression(setTextRange(flattenContext.context.factory.createAssignment(temp, value), location));\n    } else {\n      flattenContext.emitBindingOrAssignment(\n        temp,\n        value,\n        location,\n        /*original*/\n        void 0\n      );\n    }\n    return temp;\n  }\n}\nfunction makeArrayBindingPattern(factory2, elements) {\n  Debug.assertEachNode(elements, isArrayBindingElement);\n  return factory2.createArrayBindingPattern(elements);\n}\nfunction makeArrayAssignmentPattern(factory2, elements) {\n  Debug.assertEachNode(elements, isArrayBindingOrAssignmentElement);\n  return factory2.createArrayLiteralExpression(map(elements, factory2.converters.convertToArrayAssignmentElement));\n}\nfunction makeObjectBindingPattern(factory2, elements) {\n  Debug.assertEachNode(elements, isBindingElement);\n  return factory2.createObjectBindingPattern(elements);\n}\nfunction makeObjectAssignmentPattern(factory2, elements) {\n  Debug.assertEachNode(elements, isObjectBindingOrAssignmentElement);\n  return factory2.createObjectLiteralExpression(map(elements, factory2.converters.convertToObjectAssignmentElement));\n}\nfunction makeBindingElement(factory2, name) {\n  return factory2.createBindingElement(\n    /*dotDotDotToken*/\n    void 0,\n    /*propertyName*/\n    void 0,\n    name\n  );\n}\nfunction makeAssignmentElement(name) {\n  return name;\n}\n\n// src/compiler/transformers/classThis.ts\nfunction createClassThisAssignmentBlock(factory2, classThis, thisExpression = factory2.createThis()) {\n  const expression = factory2.createAssignment(classThis, thisExpression);\n  const statement = factory2.createExpressionStatement(expression);\n  const body = factory2.createBlock(\n    [statement],\n    /*multiLine*/\n    false\n  );\n  const block = factory2.createClassStaticBlockDeclaration(body);\n  getOrCreateEmitNode(block).classThis = classThis;\n  return block;\n}\nfunction isClassThisAssignmentBlock(node) {\n  var _a;\n  if (!isClassStaticBlockDeclaration(node) || node.body.statements.length !== 1) {\n    return false;\n  }\n  const statement = node.body.statements[0];\n  return isExpressionStatement(statement) && isAssignmentExpression(\n    statement.expression,\n    /*excludeCompoundAssignment*/\n    true\n  ) && isIdentifier(statement.expression.left) && ((_a = node.emitNode) == null ? void 0 : _a.classThis) === statement.expression.left && statement.expression.right.kind === 110 /* ThisKeyword */;\n}\nfunction classHasClassThisAssignment(node) {\n  var _a;\n  return !!((_a = node.emitNode) == null ? void 0 : _a.classThis) && some(node.members, isClassThisAssignmentBlock);\n}\nfunction injectClassThisAssignmentIfMissing(factory2, node, classThis, thisExpression) {\n  if (classHasClassThisAssignment(node)) {\n    return node;\n  }\n  const staticBlock = createClassThisAssignmentBlock(factory2, classThis, thisExpression);\n  if (node.name) {\n    setSourceMapRange(staticBlock.body.statements[0], node.name);\n  }\n  const members = factory2.createNodeArray([staticBlock, ...node.members]);\n  setTextRange(members, node.members);\n  const updatedNode = isClassDeclaration(node) ? factory2.updateClassDeclaration(\n    node,\n    node.modifiers,\n    node.name,\n    node.typeParameters,\n    node.heritageClauses,\n    members\n  ) : factory2.updateClassExpression(\n    node,\n    node.modifiers,\n    node.name,\n    node.typeParameters,\n    node.heritageClauses,\n    members\n  );\n  getOrCreateEmitNode(updatedNode).classThis = classThis;\n  return updatedNode;\n}\n\n// src/compiler/transformers/namedEvaluation.ts\nfunction getAssignedNameOfIdentifier(factory2, name, expression) {\n  const original = getOriginalNode(skipOuterExpressions(expression));\n  if ((isClassDeclaration(original) || isFunctionDeclaration(original)) && !original.name && hasSyntacticModifier(original, 2048 /* Default */)) {\n    return factory2.createStringLiteral(\"default\");\n  }\n  return factory2.createStringLiteralFromNode(name);\n}\nfunction getAssignedNameOfPropertyName(context, name, assignedNameText) {\n  const { factory: factory2 } = context;\n  if (assignedNameText !== void 0) {\n    const assignedName2 = factory2.createStringLiteral(assignedNameText);\n    return { assignedName: assignedName2, name };\n  }\n  if (isPropertyNameLiteral(name) || isPrivateIdentifier(name)) {\n    const assignedName2 = factory2.createStringLiteralFromNode(name);\n    return { assignedName: assignedName2, name };\n  }\n  if (isPropertyNameLiteral(name.expression) && !isIdentifier(name.expression)) {\n    const assignedName2 = factory2.createStringLiteralFromNode(name.expression);\n    return { assignedName: assignedName2, name };\n  }\n  const assignedName = factory2.getGeneratedNameForNode(name);\n  context.hoistVariableDeclaration(assignedName);\n  const key = context.getEmitHelperFactory().createPropKeyHelper(name.expression);\n  const assignment = factory2.createAssignment(assignedName, key);\n  const updatedName = factory2.updateComputedPropertyName(name, assignment);\n  return { assignedName, name: updatedName };\n}\nfunction createClassNamedEvaluationHelperBlock(context, assignedName, thisExpression = context.factory.createThis()) {\n  const { factory: factory2 } = context;\n  const expression = context.getEmitHelperFactory().createSetFunctionNameHelper(thisExpression, assignedName);\n  const statement = factory2.createExpressionStatement(expression);\n  const body = factory2.createBlock(\n    [statement],\n    /*multiLine*/\n    false\n  );\n  const block = factory2.createClassStaticBlockDeclaration(body);\n  getOrCreateEmitNode(block).assignedName = assignedName;\n  return block;\n}\nfunction isClassNamedEvaluationHelperBlock(node) {\n  var _a;\n  if (!isClassStaticBlockDeclaration(node) || node.body.statements.length !== 1) {\n    return false;\n  }\n  const statement = node.body.statements[0];\n  return isExpressionStatement(statement) && isCallToHelper(statement.expression, \"___setFunctionName\") && statement.expression.arguments.length >= 2 && statement.expression.arguments[1] === ((_a = node.emitNode) == null ? void 0 : _a.assignedName);\n}\nfunction classHasExplicitlyAssignedName(node) {\n  var _a;\n  return !!((_a = node.emitNode) == null ? void 0 : _a.assignedName) && some(node.members, isClassNamedEvaluationHelperBlock);\n}\nfunction classHasDeclaredOrExplicitlyAssignedName(node) {\n  return !!node.name || classHasExplicitlyAssignedName(node);\n}\nfunction injectClassNamedEvaluationHelperBlockIfMissing(context, node, assignedName, thisExpression) {\n  if (classHasExplicitlyAssignedName(node)) {\n    return node;\n  }\n  const { factory: factory2 } = context;\n  const namedEvaluationBlock = createClassNamedEvaluationHelperBlock(context, assignedName, thisExpression);\n  if (node.name) {\n    setSourceMapRange(namedEvaluationBlock.body.statements[0], node.name);\n  }\n  const insertionIndex = findIndex(node.members, isClassThisAssignmentBlock) + 1;\n  const leading = node.members.slice(0, insertionIndex);\n  const trailing = node.members.slice(insertionIndex);\n  const members = factory2.createNodeArray([...leading, namedEvaluationBlock, ...trailing]);\n  setTextRange(members, node.members);\n  node = isClassDeclaration(node) ? factory2.updateClassDeclaration(\n    node,\n    node.modifiers,\n    node.name,\n    node.typeParameters,\n    node.heritageClauses,\n    members\n  ) : factory2.updateClassExpression(\n    node,\n    node.modifiers,\n    node.name,\n    node.typeParameters,\n    node.heritageClauses,\n    members\n  );\n  getOrCreateEmitNode(node).assignedName = assignedName;\n  return node;\n}\nfunction finishTransformNamedEvaluation(context, expression, assignedName, ignoreEmptyStringLiteral) {\n  if (ignoreEmptyStringLiteral && isStringLiteral(assignedName) && isEmptyStringLiteral(assignedName)) {\n    return expression;\n  }\n  const { factory: factory2 } = context;\n  const innerExpression = skipOuterExpressions(expression);\n  const updatedExpression = isClassExpression(innerExpression) ? cast(injectClassNamedEvaluationHelperBlockIfMissing(context, innerExpression, assignedName), isClassExpression) : context.getEmitHelperFactory().createSetFunctionNameHelper(innerExpression, assignedName);\n  return factory2.restoreOuterExpressions(expression, updatedExpression);\n}\nfunction transformNamedEvaluationOfPropertyAssignment(context, node, ignoreEmptyStringLiteral, assignedNameText) {\n  const { factory: factory2 } = context;\n  const { assignedName, name } = getAssignedNameOfPropertyName(context, node.name, assignedNameText);\n  const initializer = finishTransformNamedEvaluation(context, node.initializer, assignedName, ignoreEmptyStringLiteral);\n  return factory2.updatePropertyAssignment(\n    node,\n    name,\n    initializer\n  );\n}\nfunction transformNamedEvaluationOfShorthandAssignmentProperty(context, node, ignoreEmptyStringLiteral, assignedNameText) {\n  const { factory: factory2 } = context;\n  const assignedName = assignedNameText !== void 0 ? factory2.createStringLiteral(assignedNameText) : getAssignedNameOfIdentifier(factory2, node.name, node.objectAssignmentInitializer);\n  const objectAssignmentInitializer = finishTransformNamedEvaluation(context, node.objectAssignmentInitializer, assignedName, ignoreEmptyStringLiteral);\n  return factory2.updateShorthandPropertyAssignment(\n    node,\n    node.name,\n    objectAssignmentInitializer\n  );\n}\nfunction transformNamedEvaluationOfVariableDeclaration(context, node, ignoreEmptyStringLiteral, assignedNameText) {\n  const { factory: factory2 } = context;\n  const assignedName = assignedNameText !== void 0 ? factory2.createStringLiteral(assignedNameText) : getAssignedNameOfIdentifier(factory2, node.name, node.initializer);\n  const initializer = finishTransformNamedEvaluation(context, node.initializer, assignedName, ignoreEmptyStringLiteral);\n  return factory2.updateVariableDeclaration(\n    node,\n    node.name,\n    node.exclamationToken,\n    node.type,\n    initializer\n  );\n}\nfunction transformNamedEvaluationOfParameterDeclaration(context, node, ignoreEmptyStringLiteral, assignedNameText) {\n  const { factory: factory2 } = context;\n  const assignedName = assignedNameText !== void 0 ? factory2.createStringLiteral(assignedNameText) : getAssignedNameOfIdentifier(factory2, node.name, node.initializer);\n  const initializer = finishTransformNamedEvaluation(context, node.initializer, assignedName, ignoreEmptyStringLiteral);\n  return factory2.updateParameterDeclaration(\n    node,\n    node.modifiers,\n    node.dotDotDotToken,\n    node.name,\n    node.questionToken,\n    node.type,\n    initializer\n  );\n}\nfunction transformNamedEvaluationOfBindingElement(context, node, ignoreEmptyStringLiteral, assignedNameText) {\n  const { factory: factory2 } = context;\n  const assignedName = assignedNameText !== void 0 ? factory2.createStringLiteral(assignedNameText) : getAssignedNameOfIdentifier(factory2, node.name, node.initializer);\n  const initializer = finishTransformNamedEvaluation(context, node.initializer, assignedName, ignoreEmptyStringLiteral);\n  return factory2.updateBindingElement(\n    node,\n    node.dotDotDotToken,\n    node.propertyName,\n    node.name,\n    initializer\n  );\n}\nfunction transformNamedEvaluationOfPropertyDeclaration(context, node, ignoreEmptyStringLiteral, assignedNameText) {\n  const { factory: factory2 } = context;\n  const { assignedName, name } = getAssignedNameOfPropertyName(context, node.name, assignedNameText);\n  const initializer = finishTransformNamedEvaluation(context, node.initializer, assignedName, ignoreEmptyStringLiteral);\n  return factory2.updatePropertyDeclaration(\n    node,\n    node.modifiers,\n    name,\n    node.questionToken ?? node.exclamationToken,\n    node.type,\n    initializer\n  );\n}\nfunction transformNamedEvaluationOfAssignmentExpression(context, node, ignoreEmptyStringLiteral, assignedNameText) {\n  const { factory: factory2 } = context;\n  const assignedName = assignedNameText !== void 0 ? factory2.createStringLiteral(assignedNameText) : getAssignedNameOfIdentifier(factory2, node.left, node.right);\n  const right = finishTransformNamedEvaluation(context, node.right, assignedName, ignoreEmptyStringLiteral);\n  return factory2.updateBinaryExpression(\n    node,\n    node.left,\n    node.operatorToken,\n    right\n  );\n}\nfunction transformNamedEvaluationOfExportAssignment(context, node, ignoreEmptyStringLiteral, assignedNameText) {\n  const { factory: factory2 } = context;\n  const assignedName = assignedNameText !== void 0 ? factory2.createStringLiteral(assignedNameText) : factory2.createStringLiteral(node.isExportEquals ? \"\" : \"default\");\n  const expression = finishTransformNamedEvaluation(context, node.expression, assignedName, ignoreEmptyStringLiteral);\n  return factory2.updateExportAssignment(\n    node,\n    node.modifiers,\n    expression\n  );\n}\nfunction transformNamedEvaluation(context, node, ignoreEmptyStringLiteral, assignedName) {\n  switch (node.kind) {\n    case 304 /* PropertyAssignment */:\n      return transformNamedEvaluationOfPropertyAssignment(context, node, ignoreEmptyStringLiteral, assignedName);\n    case 305 /* ShorthandPropertyAssignment */:\n      return transformNamedEvaluationOfShorthandAssignmentProperty(context, node, ignoreEmptyStringLiteral, assignedName);\n    case 261 /* VariableDeclaration */:\n      return transformNamedEvaluationOfVariableDeclaration(context, node, ignoreEmptyStringLiteral, assignedName);\n    case 170 /* Parameter */:\n      return transformNamedEvaluationOfParameterDeclaration(context, node, ignoreEmptyStringLiteral, assignedName);\n    case 209 /* BindingElement */:\n      return transformNamedEvaluationOfBindingElement(context, node, ignoreEmptyStringLiteral, assignedName);\n    case 173 /* PropertyDeclaration */:\n      return transformNamedEvaluationOfPropertyDeclaration(context, node, ignoreEmptyStringLiteral, assignedName);\n    case 227 /* BinaryExpression */:\n      return transformNamedEvaluationOfAssignmentExpression(context, node, ignoreEmptyStringLiteral, assignedName);\n    case 278 /* ExportAssignment */:\n      return transformNamedEvaluationOfExportAssignment(context, node, ignoreEmptyStringLiteral, assignedName);\n  }\n}\n\n// src/compiler/transformers/taggedTemplate.ts\nvar ProcessLevel = /* @__PURE__ */ ((ProcessLevel2) => {\n  ProcessLevel2[ProcessLevel2[\"LiftRestriction\"] = 0] = \"LiftRestriction\";\n  ProcessLevel2[ProcessLevel2[\"All\"] = 1] = \"All\";\n  return ProcessLevel2;\n})(ProcessLevel || {});\nfunction processTaggedTemplateExpression(context, node, visitor, currentSourceFile, recordTaggedTemplateString, level) {\n  const tag = visitNode(node.tag, visitor, isExpression);\n  Debug.assert(tag);\n  const templateArguments = [void 0];\n  const cookedStrings = [];\n  const rawStrings = [];\n  const template = node.template;\n  if (level === 0 /* LiftRestriction */ && !hasInvalidEscape(template)) {\n    return visitEachChild(node, visitor, context);\n  }\n  const { factory: factory2 } = context;\n  if (isNoSubstitutionTemplateLiteral(template)) {\n    cookedStrings.push(createTemplateCooked(factory2, template));\n    rawStrings.push(getRawLiteral(factory2, template, currentSourceFile));\n  } else {\n    cookedStrings.push(createTemplateCooked(factory2, template.head));\n    rawStrings.push(getRawLiteral(factory2, template.head, currentSourceFile));\n    for (const templateSpan of template.templateSpans) {\n      cookedStrings.push(createTemplateCooked(factory2, templateSpan.literal));\n      rawStrings.push(getRawLiteral(factory2, templateSpan.literal, currentSourceFile));\n      templateArguments.push(Debug.checkDefined(visitNode(templateSpan.expression, visitor, isExpression)));\n    }\n  }\n  const helperCall = context.getEmitHelperFactory().createTemplateObjectHelper(\n    factory2.createArrayLiteralExpression(cookedStrings),\n    factory2.createArrayLiteralExpression(rawStrings)\n  );\n  if (isExternalModule(currentSourceFile)) {\n    const tempVar = factory2.createUniqueName(\"templateObject\");\n    recordTaggedTemplateString(tempVar);\n    templateArguments[0] = factory2.createLogicalOr(\n      tempVar,\n      factory2.createAssignment(\n        tempVar,\n        helperCall\n      )\n    );\n  } else {\n    templateArguments[0] = helperCall;\n  }\n  return factory2.createCallExpression(\n    tag,\n    /*typeArguments*/\n    void 0,\n    templateArguments\n  );\n}\nfunction createTemplateCooked(factory2, template) {\n  return template.templateFlags & 26656 /* IsInvalid */ ? factory2.createVoidZero() : factory2.createStringLiteral(template.text);\n}\nfunction getRawLiteral(factory2, node, currentSourceFile) {\n  let text = node.rawText;\n  if (text === void 0) {\n    Debug.assertIsDefined(currentSourceFile, \"Template literal node is missing 'rawText' and does not have a source file. Possibly bad transform.\");\n    text = getSourceTextOfNodeFromSourceFile(currentSourceFile, node);\n    const isLast = node.kind === 15 /* NoSubstitutionTemplateLiteral */ || node.kind === 18 /* TemplateTail */;\n    text = text.substring(1, text.length - (isLast ? 1 : 2));\n  }\n  text = text.replace(/\\r\\n?/g, \"\\n\");\n  return setTextRange(factory2.createStringLiteral(text), node);\n}\n\n// src/compiler/transformers/ts.ts\nvar USE_NEW_TYPE_METADATA_FORMAT = false;\nfunction transformTypeScript(context) {\n  const {\n    factory: factory2,\n    getEmitHelperFactory: emitHelpers,\n    startLexicalEnvironment,\n    resumeLexicalEnvironment,\n    endLexicalEnvironment,\n    hoistVariableDeclaration\n  } = context;\n  const resolver = context.getEmitResolver();\n  const compilerOptions = context.getCompilerOptions();\n  const languageVersion = getEmitScriptTarget(compilerOptions);\n  const moduleKind = getEmitModuleKind(compilerOptions);\n  const legacyDecorators = !!compilerOptions.experimentalDecorators;\n  const typeSerializer = compilerOptions.emitDecoratorMetadata ? createRuntimeTypeSerializer(context) : void 0;\n  const previousOnEmitNode = context.onEmitNode;\n  const previousOnSubstituteNode = context.onSubstituteNode;\n  context.onEmitNode = onEmitNode;\n  context.onSubstituteNode = onSubstituteNode;\n  context.enableSubstitution(212 /* PropertyAccessExpression */);\n  context.enableSubstitution(213 /* ElementAccessExpression */);\n  let currentSourceFile;\n  let currentNamespace;\n  let currentNamespaceContainerName;\n  let currentLexicalScope;\n  let currentScopeFirstDeclarationsOfName;\n  let enabledSubstitutions = 0 /* None */;\n  let applicableSubstitutions;\n  return transformSourceFileOrBundle;\n  function transformSourceFileOrBundle(node) {\n    if (node.kind === 309 /* Bundle */) {\n      return transformBundle(node);\n    }\n    return transformSourceFile(node);\n  }\n  function transformBundle(node) {\n    return factory2.createBundle(\n      node.sourceFiles.map(transformSourceFile)\n    );\n  }\n  function transformSourceFile(node) {\n    if (node.isDeclarationFile) {\n      return node;\n    }\n    currentSourceFile = node;\n    const visited = saveStateAndInvoke(node, visitSourceFile);\n    addEmitHelpers(visited, context.readEmitHelpers());\n    currentSourceFile = void 0;\n    return visited;\n  }\n  function saveStateAndInvoke(node, f) {\n    const savedCurrentScope = currentLexicalScope;\n    const savedCurrentScopeFirstDeclarationsOfName = currentScopeFirstDeclarationsOfName;\n    onBeforeVisitNode(node);\n    const visited = f(node);\n    if (currentLexicalScope !== savedCurrentScope) {\n      currentScopeFirstDeclarationsOfName = savedCurrentScopeFirstDeclarationsOfName;\n    }\n    currentLexicalScope = savedCurrentScope;\n    return visited;\n  }\n  function onBeforeVisitNode(node) {\n    switch (node.kind) {\n      case 308 /* SourceFile */:\n      case 270 /* CaseBlock */:\n      case 269 /* ModuleBlock */:\n      case 242 /* Block */:\n        currentLexicalScope = node;\n        currentScopeFirstDeclarationsOfName = void 0;\n        break;\n      case 264 /* ClassDeclaration */:\n      case 263 /* FunctionDeclaration */:\n        if (hasSyntacticModifier(node, 128 /* Ambient */)) {\n          break;\n        }\n        if (node.name) {\n          recordEmittedDeclarationInScope(node);\n        } else {\n          Debug.assert(node.kind === 264 /* ClassDeclaration */ || hasSyntacticModifier(node, 2048 /* Default */));\n        }\n        break;\n    }\n  }\n  function visitor(node) {\n    return saveStateAndInvoke(node, visitorWorker);\n  }\n  function visitorWorker(node) {\n    if (node.transformFlags & 1 /* ContainsTypeScript */) {\n      return visitTypeScript(node);\n    }\n    return node;\n  }\n  function sourceElementVisitor(node) {\n    return saveStateAndInvoke(node, sourceElementVisitorWorker);\n  }\n  function sourceElementVisitorWorker(node) {\n    switch (node.kind) {\n      case 273 /* ImportDeclaration */:\n      case 272 /* ImportEqualsDeclaration */:\n      case 278 /* ExportAssignment */:\n      case 279 /* ExportDeclaration */:\n        return visitElidableStatement(node);\n      default:\n        return visitorWorker(node);\n    }\n  }\n  function isElisionBlocked(node) {\n    const parsed = getParseTreeNode(node);\n    if (parsed === node || isExportAssignment(node)) {\n      return false;\n    }\n    if (!parsed || parsed.kind !== node.kind) {\n      return true;\n    }\n    switch (node.kind) {\n      case 273 /* ImportDeclaration */:\n        Debug.assertNode(parsed, isImportDeclaration);\n        if (node.importClause !== parsed.importClause) {\n          return true;\n        }\n        if (node.attributes !== parsed.attributes) {\n          return true;\n        }\n        break;\n      case 272 /* ImportEqualsDeclaration */:\n        Debug.assertNode(parsed, isImportEqualsDeclaration);\n        if (node.name !== parsed.name) {\n          return true;\n        }\n        if (node.isTypeOnly !== parsed.isTypeOnly) {\n          return true;\n        }\n        if (node.moduleReference !== parsed.moduleReference && (isEntityName(node.moduleReference) || isEntityName(parsed.moduleReference))) {\n          return true;\n        }\n        break;\n      case 279 /* ExportDeclaration */:\n        Debug.assertNode(parsed, isExportDeclaration);\n        if (node.exportClause !== parsed.exportClause) {\n          return true;\n        }\n        if (node.attributes !== parsed.attributes) {\n          return true;\n        }\n        break;\n    }\n    return false;\n  }\n  function visitElidableStatement(node) {\n    if (isElisionBlocked(node)) {\n      if (node.transformFlags & 1 /* ContainsTypeScript */) {\n        return visitEachChild(node, visitor, context);\n      }\n      return node;\n    }\n    switch (node.kind) {\n      case 273 /* ImportDeclaration */:\n        return visitImportDeclaration(node);\n      case 272 /* ImportEqualsDeclaration */:\n        return visitImportEqualsDeclaration(node);\n      case 278 /* ExportAssignment */:\n        return visitExportAssignment(node);\n      case 279 /* ExportDeclaration */:\n        return visitExportDeclaration(node);\n      default:\n        Debug.fail(\"Unhandled ellided statement\");\n    }\n  }\n  function namespaceElementVisitor(node) {\n    return saveStateAndInvoke(node, namespaceElementVisitorWorker);\n  }\n  function namespaceElementVisitorWorker(node) {\n    if (node.kind === 279 /* ExportDeclaration */ || node.kind === 273 /* ImportDeclaration */ || node.kind === 274 /* ImportClause */ || node.kind === 272 /* ImportEqualsDeclaration */ && node.moduleReference.kind === 284 /* ExternalModuleReference */) {\n      return void 0;\n    } else if (node.transformFlags & 1 /* ContainsTypeScript */ || hasSyntacticModifier(node, 32 /* Export */)) {\n      return visitTypeScript(node);\n    }\n    return node;\n  }\n  function getClassElementVisitor(parent2) {\n    return (node) => saveStateAndInvoke(node, (n) => classElementVisitorWorker(n, parent2));\n  }\n  function classElementVisitorWorker(node, parent2) {\n    switch (node.kind) {\n      case 177 /* Constructor */:\n        return visitConstructor(node);\n      case 173 /* PropertyDeclaration */:\n        return visitPropertyDeclaration(node, parent2);\n      case 178 /* GetAccessor */:\n        return visitGetAccessor(node, parent2);\n      case 179 /* SetAccessor */:\n        return visitSetAccessor(node, parent2);\n      case 175 /* MethodDeclaration */:\n        return visitMethodDeclaration(node, parent2);\n      case 176 /* ClassStaticBlockDeclaration */:\n        return visitEachChild(node, visitor, context);\n      case 241 /* SemicolonClassElement */:\n        return node;\n      case 182 /* IndexSignature */:\n        return;\n      default:\n        return Debug.failBadSyntaxKind(node);\n    }\n  }\n  function getObjectLiteralElementVisitor(parent2) {\n    return (node) => saveStateAndInvoke(node, (n) => objectLiteralElementVisitorWorker(n, parent2));\n  }\n  function objectLiteralElementVisitorWorker(node, parent2) {\n    switch (node.kind) {\n      case 304 /* PropertyAssignment */:\n      case 305 /* ShorthandPropertyAssignment */:\n      case 306 /* SpreadAssignment */:\n        return visitor(node);\n      case 178 /* GetAccessor */:\n        return visitGetAccessor(node, parent2);\n      case 179 /* SetAccessor */:\n        return visitSetAccessor(node, parent2);\n      case 175 /* MethodDeclaration */:\n        return visitMethodDeclaration(node, parent2);\n      default:\n        return Debug.failBadSyntaxKind(node);\n    }\n  }\n  function decoratorElidingVisitor(node) {\n    return isDecorator(node) ? void 0 : visitor(node);\n  }\n  function modifierElidingVisitor(node) {\n    return isModifier(node) ? void 0 : visitor(node);\n  }\n  function modifierVisitor(node) {\n    if (isDecorator(node)) return void 0;\n    if (modifierToFlag(node.kind) & 28895 /* TypeScriptModifier */) {\n      return void 0;\n    } else if (currentNamespace && node.kind === 95 /* ExportKeyword */) {\n      return void 0;\n    }\n    return node;\n  }\n  function visitTypeScript(node) {\n    if (isStatement(node) && hasSyntacticModifier(node, 128 /* Ambient */)) {\n      return factory2.createNotEmittedStatement(node);\n    }\n    switch (node.kind) {\n      case 95 /* ExportKeyword */:\n      case 90 /* DefaultKeyword */:\n        return currentNamespace ? void 0 : node;\n      case 125 /* PublicKeyword */:\n      case 123 /* PrivateKeyword */:\n      case 124 /* ProtectedKeyword */:\n      case 128 /* AbstractKeyword */:\n      case 164 /* OverrideKeyword */:\n      case 87 /* ConstKeyword */:\n      case 138 /* DeclareKeyword */:\n      case 148 /* ReadonlyKeyword */:\n      case 103 /* InKeyword */:\n      case 147 /* OutKeyword */:\n      // TypeScript accessibility and readonly modifiers are elided\n      // falls through\n      case 189 /* ArrayType */:\n      case 190 /* TupleType */:\n      case 191 /* OptionalType */:\n      case 192 /* RestType */:\n      case 188 /* TypeLiteral */:\n      case 183 /* TypePredicate */:\n      case 169 /* TypeParameter */:\n      case 133 /* AnyKeyword */:\n      case 159 /* UnknownKeyword */:\n      case 136 /* BooleanKeyword */:\n      case 154 /* StringKeyword */:\n      case 150 /* NumberKeyword */:\n      case 146 /* NeverKeyword */:\n      case 116 /* VoidKeyword */:\n      case 155 /* SymbolKeyword */:\n      case 186 /* ConstructorType */:\n      case 185 /* FunctionType */:\n      case 187 /* TypeQuery */:\n      case 184 /* TypeReference */:\n      case 193 /* UnionType */:\n      case 194 /* IntersectionType */:\n      case 195 /* ConditionalType */:\n      case 197 /* ParenthesizedType */:\n      case 198 /* ThisType */:\n      case 199 /* TypeOperator */:\n      case 200 /* IndexedAccessType */:\n      case 201 /* MappedType */:\n      case 202 /* LiteralType */:\n      // TypeScript type nodes are elided.\n      // falls through\n      case 182 /* IndexSignature */:\n        return void 0;\n      case 266 /* TypeAliasDeclaration */:\n        return factory2.createNotEmittedStatement(node);\n      case 271 /* NamespaceExportDeclaration */:\n        return void 0;\n      case 265 /* InterfaceDeclaration */:\n        return factory2.createNotEmittedStatement(node);\n      case 264 /* ClassDeclaration */:\n        return visitClassDeclaration(node);\n      case 232 /* ClassExpression */:\n        return visitClassExpression(node);\n      case 299 /* HeritageClause */:\n        return visitHeritageClause(node);\n      case 234 /* ExpressionWithTypeArguments */:\n        return visitExpressionWithTypeArguments(node);\n      case 211 /* ObjectLiteralExpression */:\n        return visitObjectLiteralExpression(node);\n      case 177 /* Constructor */:\n      case 173 /* PropertyDeclaration */:\n      case 175 /* MethodDeclaration */:\n      case 178 /* GetAccessor */:\n      case 179 /* SetAccessor */:\n      case 176 /* ClassStaticBlockDeclaration */:\n        return Debug.fail(\"Class and object literal elements must be visited with their respective visitors\");\n      case 263 /* FunctionDeclaration */:\n        return visitFunctionDeclaration(node);\n      case 219 /* FunctionExpression */:\n        return visitFunctionExpression(node);\n      case 220 /* ArrowFunction */:\n        return visitArrowFunction(node);\n      case 170 /* Parameter */:\n        return visitParameter(node);\n      case 218 /* ParenthesizedExpression */:\n        return visitParenthesizedExpression(node);\n      case 217 /* TypeAssertionExpression */:\n      case 235 /* AsExpression */:\n        return visitAssertionExpression(node);\n      case 239 /* SatisfiesExpression */:\n        return visitSatisfiesExpression(node);\n      case 214 /* CallExpression */:\n        return visitCallExpression(node);\n      case 215 /* NewExpression */:\n        return visitNewExpression(node);\n      case 216 /* TaggedTemplateExpression */:\n        return visitTaggedTemplateExpression(node);\n      case 236 /* NonNullExpression */:\n        return visitNonNullExpression(node);\n      case 267 /* EnumDeclaration */:\n        return visitEnumDeclaration(node);\n      case 244 /* VariableStatement */:\n        return visitVariableStatement(node);\n      case 261 /* VariableDeclaration */:\n        return visitVariableDeclaration(node);\n      case 268 /* ModuleDeclaration */:\n        return visitModuleDeclaration(node);\n      case 272 /* ImportEqualsDeclaration */:\n        return visitImportEqualsDeclaration(node);\n      case 286 /* JsxSelfClosingElement */:\n        return visitJsxSelfClosingElement(node);\n      case 287 /* JsxOpeningElement */:\n        return visitJsxJsxOpeningElement(node);\n      default:\n        return visitEachChild(node, visitor, context);\n    }\n  }\n  function visitSourceFile(node) {\n    const alwaysStrict = getStrictOptionValue(compilerOptions, \"alwaysStrict\") && !(isExternalModule(node) && moduleKind >= 5 /* ES2015 */) && !isJsonSourceFile(node);\n    return factory2.updateSourceFile(\n      node,\n      visitLexicalEnvironment(\n        node.statements,\n        sourceElementVisitor,\n        context,\n        /*start*/\n        0,\n        alwaysStrict\n      )\n    );\n  }\n  function visitObjectLiteralExpression(node) {\n    return factory2.updateObjectLiteralExpression(\n      node,\n      visitNodes2(node.properties, getObjectLiteralElementVisitor(node), isObjectLiteralElementLike)\n    );\n  }\n  function getClassFacts(node) {\n    let facts = 0 /* None */;\n    if (some(getProperties(\n      node,\n      /*requireInitializer*/\n      true,\n      /*isStatic*/\n      true\n    ))) facts |= 1 /* HasStaticInitializedProperties */;\n    const extendsClauseElement = getEffectiveBaseTypeNode(node);\n    if (extendsClauseElement && skipOuterExpressions(extendsClauseElement.expression).kind !== 106 /* NullKeyword */) facts |= 64 /* IsDerivedClass */;\n    if (classOrConstructorParameterIsDecorated(legacyDecorators, node)) facts |= 2 /* HasClassOrConstructorParameterDecorators */;\n    if (childIsDecorated(legacyDecorators, node)) facts |= 4 /* HasMemberDecorators */;\n    if (isExportOfNamespace(node)) facts |= 8 /* IsExportOfNamespace */;\n    else if (isDefaultExternalModuleExport(node)) facts |= 32 /* IsDefaultExternalExport */;\n    else if (isNamedExternalModuleExport(node)) facts |= 16 /* IsNamedExternalExport */;\n    return facts;\n  }\n  function hasTypeScriptClassSyntax(node) {\n    return !!(node.transformFlags & 8192 /* ContainsTypeScriptClassSyntax */);\n  }\n  function isClassLikeDeclarationWithTypeScriptSyntax(node) {\n    return hasDecorators(node) || some(node.typeParameters) || some(node.heritageClauses, hasTypeScriptClassSyntax) || some(node.members, hasTypeScriptClassSyntax);\n  }\n  function visitClassDeclaration(node) {\n    const facts = getClassFacts(node);\n    const promoteToIIFE = languageVersion <= 1 /* ES5 */ && !!(facts & 7 /* MayNeedImmediatelyInvokedFunctionExpression */);\n    if (!isClassLikeDeclarationWithTypeScriptSyntax(node) && !classOrConstructorParameterIsDecorated(legacyDecorators, node) && !isExportOfNamespace(node)) {\n      return factory2.updateClassDeclaration(\n        node,\n        visitNodes2(node.modifiers, modifierVisitor, isModifier),\n        node.name,\n        /*typeParameters*/\n        void 0,\n        visitNodes2(node.heritageClauses, visitor, isHeritageClause),\n        visitNodes2(node.members, getClassElementVisitor(node), isClassElement)\n      );\n    }\n    if (promoteToIIFE) {\n      context.startLexicalEnvironment();\n    }\n    const moveModifiers = promoteToIIFE || facts & 8 /* IsExportOfNamespace */;\n    let modifiers = moveModifiers ? visitNodes2(node.modifiers, modifierElidingVisitor, isModifierLike) : visitNodes2(node.modifiers, visitor, isModifierLike);\n    if (facts & 2 /* HasClassOrConstructorParameterDecorators */) {\n      modifiers = injectClassTypeMetadata(modifiers, node);\n    }\n    const needsName = moveModifiers && !node.name || facts & 4 /* HasMemberDecorators */ || facts & 1 /* HasStaticInitializedProperties */;\n    const name = needsName ? node.name ?? factory2.getGeneratedNameForNode(node) : node.name;\n    const classDeclaration = factory2.updateClassDeclaration(\n      node,\n      modifiers,\n      name,\n      /*typeParameters*/\n      void 0,\n      visitNodes2(node.heritageClauses, visitor, isHeritageClause),\n      transformClassMembers(node)\n    );\n    let emitFlags = getEmitFlags(node);\n    if (facts & 1 /* HasStaticInitializedProperties */) {\n      emitFlags |= 64 /* NoTrailingSourceMap */;\n    }\n    setEmitFlags(classDeclaration, emitFlags);\n    let statement;\n    if (promoteToIIFE) {\n      const statements = [classDeclaration];\n      const closingBraceLocation = createTokenRange(skipTrivia(currentSourceFile.text, node.members.end), 20 /* CloseBraceToken */);\n      const localName = factory2.getInternalName(node);\n      const outer = factory2.createPartiallyEmittedExpression(localName);\n      setTextRangeEnd(outer, closingBraceLocation.end);\n      setEmitFlags(outer, 3072 /* NoComments */);\n      const returnStatement = factory2.createReturnStatement(outer);\n      setTextRangePos(returnStatement, closingBraceLocation.pos);\n      setEmitFlags(returnStatement, 3072 /* NoComments */ | 768 /* NoTokenSourceMaps */);\n      statements.push(returnStatement);\n      insertStatementsAfterStandardPrologue(statements, context.endLexicalEnvironment());\n      const iife = factory2.createImmediatelyInvokedArrowFunction(statements);\n      setInternalEmitFlags(iife, 1 /* TypeScriptClassWrapper */);\n      const varDecl = factory2.createVariableDeclaration(\n        factory2.getLocalName(\n          node,\n          /*allowComments*/\n          false,\n          /*allowSourceMaps*/\n          false\n        ),\n        /*exclamationToken*/\n        void 0,\n        /*type*/\n        void 0,\n        iife\n      );\n      setOriginalNode(varDecl, node);\n      const varStatement = factory2.createVariableStatement(\n        /*modifiers*/\n        void 0,\n        factory2.createVariableDeclarationList([varDecl], 1 /* Let */)\n      );\n      setOriginalNode(varStatement, node);\n      setCommentRange(varStatement, node);\n      setSourceMapRange(varStatement, moveRangePastDecorators(node));\n      startOnNewLine(varStatement);\n      statement = varStatement;\n    } else {\n      statement = classDeclaration;\n    }\n    if (moveModifiers) {\n      if (facts & 8 /* IsExportOfNamespace */) {\n        return [\n          statement,\n          createExportMemberAssignmentStatement(node)\n        ];\n      }\n      if (facts & 32 /* IsDefaultExternalExport */) {\n        return [\n          statement,\n          factory2.createExportDefault(factory2.getLocalName(\n            node,\n            /*allowComments*/\n            false,\n            /*allowSourceMaps*/\n            true\n          ))\n        ];\n      }\n      if (facts & 16 /* IsNamedExternalExport */) {\n        return [\n          statement,\n          factory2.createExternalModuleExport(factory2.getDeclarationName(\n            node,\n            /*allowComments*/\n            false,\n            /*allowSourceMaps*/\n            true\n          ))\n        ];\n      }\n    }\n    return statement;\n  }\n  function visitClassExpression(node) {\n    let modifiers = visitNodes2(node.modifiers, modifierElidingVisitor, isModifierLike);\n    if (classOrConstructorParameterIsDecorated(legacyDecorators, node)) {\n      modifiers = injectClassTypeMetadata(modifiers, node);\n    }\n    return factory2.updateClassExpression(\n      node,\n      modifiers,\n      node.name,\n      /*typeParameters*/\n      void 0,\n      visitNodes2(node.heritageClauses, visitor, isHeritageClause),\n      transformClassMembers(node)\n    );\n  }\n  function transformClassMembers(node) {\n    const members = visitNodes2(node.members, getClassElementVisitor(node), isClassElement);\n    let newMembers;\n    const constructor = getFirstConstructorWithBody(node);\n    const parametersWithPropertyAssignments = constructor && filter(constructor.parameters, (p) => isParameterPropertyDeclaration(p, constructor));\n    if (parametersWithPropertyAssignments) {\n      for (const parameter of parametersWithPropertyAssignments) {\n        const parameterProperty = factory2.createPropertyDeclaration(\n          /*modifiers*/\n          void 0,\n          parameter.name,\n          /*questionOrExclamationToken*/\n          void 0,\n          /*type*/\n          void 0,\n          /*initializer*/\n          void 0\n        );\n        setOriginalNode(parameterProperty, parameter);\n        newMembers = append(newMembers, parameterProperty);\n      }\n    }\n    if (newMembers) {\n      newMembers = addRange(newMembers, members);\n      return setTextRange(\n        factory2.createNodeArray(newMembers),\n        /*location*/\n        node.members\n      );\n    }\n    return members;\n  }\n  function injectClassTypeMetadata(modifiers, node) {\n    const metadata = getTypeMetadata(node, node);\n    if (some(metadata)) {\n      const modifiersArray = [];\n      addRange(modifiersArray, takeWhile(modifiers, isExportOrDefaultModifier));\n      addRange(modifiersArray, filter(modifiers, isDecorator));\n      addRange(modifiersArray, metadata);\n      addRange(modifiersArray, filter(skipWhile(modifiers, isExportOrDefaultModifier), isModifier));\n      modifiers = setTextRange(factory2.createNodeArray(modifiersArray), modifiers);\n    }\n    return modifiers;\n  }\n  function injectClassElementTypeMetadata(modifiers, node, container) {\n    if (isClassLike(container) && classElementOrClassElementParameterIsDecorated(legacyDecorators, node, container)) {\n      const metadata = getTypeMetadata(node, container);\n      if (some(metadata)) {\n        const modifiersArray = [];\n        addRange(modifiersArray, filter(modifiers, isDecorator));\n        addRange(modifiersArray, metadata);\n        addRange(modifiersArray, filter(modifiers, isModifier));\n        modifiers = setTextRange(factory2.createNodeArray(modifiersArray), modifiers);\n      }\n    }\n    return modifiers;\n  }\n  function getTypeMetadata(node, container) {\n    if (!legacyDecorators) return void 0;\n    return USE_NEW_TYPE_METADATA_FORMAT ? getNewTypeMetadata(node, container) : getOldTypeMetadata(node, container);\n  }\n  function getOldTypeMetadata(node, container) {\n    if (typeSerializer) {\n      let decorators;\n      if (shouldAddTypeMetadata(node)) {\n        const typeMetadata = emitHelpers().createMetadataHelper(\"design:type\", typeSerializer.serializeTypeOfNode({ currentLexicalScope, currentNameScope: container }, node, container));\n        decorators = append(decorators, factory2.createDecorator(typeMetadata));\n      }\n      if (shouldAddParamTypesMetadata(node)) {\n        const paramTypesMetadata = emitHelpers().createMetadataHelper(\"design:paramtypes\", typeSerializer.serializeParameterTypesOfNode({ currentLexicalScope, currentNameScope: container }, node, container));\n        decorators = append(decorators, factory2.createDecorator(paramTypesMetadata));\n      }\n      if (shouldAddReturnTypeMetadata(node)) {\n        const returnTypeMetadata = emitHelpers().createMetadataHelper(\"design:returntype\", typeSerializer.serializeReturnTypeOfNode({ currentLexicalScope, currentNameScope: container }, node));\n        decorators = append(decorators, factory2.createDecorator(returnTypeMetadata));\n      }\n      return decorators;\n    }\n  }\n  function getNewTypeMetadata(node, container) {\n    if (typeSerializer) {\n      let properties;\n      if (shouldAddTypeMetadata(node)) {\n        const typeProperty = factory2.createPropertyAssignment(\"type\", factory2.createArrowFunction(\n          /*modifiers*/\n          void 0,\n          /*typeParameters*/\n          void 0,\n          [],\n          /*type*/\n          void 0,\n          factory2.createToken(39 /* EqualsGreaterThanToken */),\n          typeSerializer.serializeTypeOfNode({ currentLexicalScope, currentNameScope: container }, node, container)\n        ));\n        properties = append(properties, typeProperty);\n      }\n      if (shouldAddParamTypesMetadata(node)) {\n        const paramTypeProperty = factory2.createPropertyAssignment(\"paramTypes\", factory2.createArrowFunction(\n          /*modifiers*/\n          void 0,\n          /*typeParameters*/\n          void 0,\n          [],\n          /*type*/\n          void 0,\n          factory2.createToken(39 /* EqualsGreaterThanToken */),\n          typeSerializer.serializeParameterTypesOfNode({ currentLexicalScope, currentNameScope: container }, node, container)\n        ));\n        properties = append(properties, paramTypeProperty);\n      }\n      if (shouldAddReturnTypeMetadata(node)) {\n        const returnTypeProperty = factory2.createPropertyAssignment(\"returnType\", factory2.createArrowFunction(\n          /*modifiers*/\n          void 0,\n          /*typeParameters*/\n          void 0,\n          [],\n          /*type*/\n          void 0,\n          factory2.createToken(39 /* EqualsGreaterThanToken */),\n          typeSerializer.serializeReturnTypeOfNode({ currentLexicalScope, currentNameScope: container }, node)\n        ));\n        properties = append(properties, returnTypeProperty);\n      }\n      if (properties) {\n        const typeInfoMetadata = emitHelpers().createMetadataHelper(\"design:typeinfo\", factory2.createObjectLiteralExpression(\n          properties,\n          /*multiLine*/\n          true\n        ));\n        return [factory2.createDecorator(typeInfoMetadata)];\n      }\n    }\n  }\n  function shouldAddTypeMetadata(node) {\n    const kind = node.kind;\n    return kind === 175 /* MethodDeclaration */ || kind === 178 /* GetAccessor */ || kind === 179 /* SetAccessor */ || kind === 173 /* PropertyDeclaration */;\n  }\n  function shouldAddReturnTypeMetadata(node) {\n    return node.kind === 175 /* MethodDeclaration */;\n  }\n  function shouldAddParamTypesMetadata(node) {\n    switch (node.kind) {\n      case 264 /* ClassDeclaration */:\n      case 232 /* ClassExpression */:\n        return getFirstConstructorWithBody(node) !== void 0;\n      case 175 /* MethodDeclaration */:\n      case 178 /* GetAccessor */:\n      case 179 /* SetAccessor */:\n        return true;\n    }\n    return false;\n  }\n  function getExpressionForPropertyName(member, generateNameForComputedPropertyName) {\n    const name = member.name;\n    if (isPrivateIdentifier(name)) {\n      return factory2.createIdentifier(\"\");\n    } else if (isComputedPropertyName(name)) {\n      return generateNameForComputedPropertyName && !isSimpleInlineableExpression(name.expression) ? factory2.getGeneratedNameForNode(name) : name.expression;\n    } else if (isIdentifier(name)) {\n      return factory2.createStringLiteral(idText(name));\n    } else {\n      return factory2.cloneNode(name);\n    }\n  }\n  function visitPropertyNameOfClassElement(member) {\n    const name = member.name;\n    if (legacyDecorators && isComputedPropertyName(name) && hasDecorators(member)) {\n      const expression = visitNode(name.expression, visitor, isExpression);\n      Debug.assert(expression);\n      const innerExpression = skipPartiallyEmittedExpressions(expression);\n      if (!isSimpleInlineableExpression(innerExpression)) {\n        const generatedName = factory2.getGeneratedNameForNode(name);\n        hoistVariableDeclaration(generatedName);\n        return factory2.updateComputedPropertyName(name, factory2.createAssignment(generatedName, expression));\n      }\n    }\n    return Debug.checkDefined(visitNode(name, visitor, isPropertyName));\n  }\n  function visitHeritageClause(node) {\n    if (node.token === 119 /* ImplementsKeyword */) {\n      return void 0;\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitExpressionWithTypeArguments(node) {\n    return factory2.updateExpressionWithTypeArguments(\n      node,\n      Debug.checkDefined(visitNode(node.expression, visitor, isLeftHandSideExpression)),\n      /*typeArguments*/\n      void 0\n    );\n  }\n  function shouldEmitFunctionLikeDeclaration(node) {\n    return !nodeIsMissing(node.body);\n  }\n  function visitPropertyDeclaration(node, parent2) {\n    const isAmbient = node.flags & 33554432 /* Ambient */ || hasSyntacticModifier(node, 64 /* Abstract */);\n    if (isAmbient && !(legacyDecorators && hasDecorators(node))) {\n      return void 0;\n    }\n    let modifiers = isClassLike(parent2) ? !isAmbient ? visitNodes2(node.modifiers, visitor, isModifierLike) : visitNodes2(node.modifiers, modifierElidingVisitor, isModifierLike) : visitNodes2(node.modifiers, decoratorElidingVisitor, isModifierLike);\n    modifiers = injectClassElementTypeMetadata(modifiers, node, parent2);\n    if (isAmbient) {\n      return factory2.updatePropertyDeclaration(\n        node,\n        concatenate(modifiers, factory2.createModifiersFromModifierFlags(128 /* Ambient */)),\n        Debug.checkDefined(visitNode(node.name, visitor, isPropertyName)),\n        /*questionOrExclamationToken*/\n        void 0,\n        /*type*/\n        void 0,\n        /*initializer*/\n        void 0\n      );\n    }\n    return factory2.updatePropertyDeclaration(\n      node,\n      modifiers,\n      visitPropertyNameOfClassElement(node),\n      /*questionOrExclamationToken*/\n      void 0,\n      /*type*/\n      void 0,\n      visitNode(node.initializer, visitor, isExpression)\n    );\n  }\n  function visitConstructor(node) {\n    if (!shouldEmitFunctionLikeDeclaration(node)) {\n      return void 0;\n    }\n    return factory2.updateConstructorDeclaration(\n      node,\n      /*modifiers*/\n      void 0,\n      visitParameterList(node.parameters, visitor, context),\n      transformConstructorBody(node.body, node)\n    );\n  }\n  function transformConstructorBodyWorker(statementsOut, statementsIn, statementOffset, superPath, superPathDepth, initializerStatements) {\n    const superStatementIndex = superPath[superPathDepth];\n    const superStatement = statementsIn[superStatementIndex];\n    addRange(statementsOut, visitNodes2(statementsIn, visitor, isStatement, statementOffset, superStatementIndex - statementOffset));\n    if (isTryStatement(superStatement)) {\n      const tryBlockStatements = [];\n      transformConstructorBodyWorker(\n        tryBlockStatements,\n        superStatement.tryBlock.statements,\n        /*statementOffset*/\n        0,\n        superPath,\n        superPathDepth + 1,\n        initializerStatements\n      );\n      const tryBlockStatementsArray = factory2.createNodeArray(tryBlockStatements);\n      setTextRange(tryBlockStatementsArray, superStatement.tryBlock.statements);\n      statementsOut.push(factory2.updateTryStatement(\n        superStatement,\n        factory2.updateBlock(superStatement.tryBlock, tryBlockStatements),\n        visitNode(superStatement.catchClause, visitor, isCatchClause),\n        visitNode(superStatement.finallyBlock, visitor, isBlock)\n      ));\n    } else {\n      addRange(statementsOut, visitNodes2(statementsIn, visitor, isStatement, superStatementIndex, 1));\n      addRange(statementsOut, initializerStatements);\n    }\n    addRange(statementsOut, visitNodes2(statementsIn, visitor, isStatement, superStatementIndex + 1));\n  }\n  function transformConstructorBody(body, constructor) {\n    const parametersWithPropertyAssignments = constructor && filter(constructor.parameters, (p) => isParameterPropertyDeclaration(p, constructor));\n    if (!some(parametersWithPropertyAssignments)) {\n      return visitFunctionBody(body, visitor, context);\n    }\n    let statements = [];\n    resumeLexicalEnvironment();\n    const prologueStatementCount = factory2.copyPrologue(\n      body.statements,\n      statements,\n      /*ensureUseStrict*/\n      false,\n      visitor\n    );\n    const superPath = findSuperStatementIndexPath(body.statements, prologueStatementCount);\n    const parameterPropertyAssignments = mapDefined(parametersWithPropertyAssignments, transformParameterWithPropertyAssignment);\n    if (superPath.length) {\n      transformConstructorBodyWorker(\n        statements,\n        body.statements,\n        prologueStatementCount,\n        superPath,\n        /*superPathDepth*/\n        0,\n        parameterPropertyAssignments\n      );\n    } else {\n      addRange(statements, parameterPropertyAssignments);\n      addRange(statements, visitNodes2(body.statements, visitor, isStatement, prologueStatementCount));\n    }\n    statements = factory2.mergeLexicalEnvironment(statements, endLexicalEnvironment());\n    const block = factory2.createBlock(\n      setTextRange(factory2.createNodeArray(statements), body.statements),\n      /*multiLine*/\n      true\n    );\n    setTextRange(\n      block,\n      /*location*/\n      body\n    );\n    setOriginalNode(block, body);\n    return block;\n  }\n  function transformParameterWithPropertyAssignment(node) {\n    const name = node.name;\n    if (!isIdentifier(name)) {\n      return void 0;\n    }\n    const propertyName = setParent(setTextRange(factory2.cloneNode(name), name), name.parent);\n    setEmitFlags(propertyName, 3072 /* NoComments */ | 96 /* NoSourceMap */);\n    const localName = setParent(setTextRange(factory2.cloneNode(name), name), name.parent);\n    setEmitFlags(localName, 3072 /* NoComments */);\n    return startOnNewLine(\n      removeAllComments(\n        setTextRange(\n          setOriginalNode(\n            factory2.createExpressionStatement(\n              factory2.createAssignment(\n                setTextRange(\n                  factory2.createPropertyAccessExpression(\n                    factory2.createThis(),\n                    propertyName\n                  ),\n                  node.name\n                ),\n                localName\n              )\n            ),\n            node\n          ),\n          moveRangePos(node, -1)\n        )\n      )\n    );\n  }\n  function visitMethodDeclaration(node, parent2) {\n    if (!(node.transformFlags & 1 /* ContainsTypeScript */)) {\n      return node;\n    }\n    if (!shouldEmitFunctionLikeDeclaration(node)) {\n      return void 0;\n    }\n    let modifiers = isClassLike(parent2) ? visitNodes2(node.modifiers, visitor, isModifierLike) : visitNodes2(node.modifiers, decoratorElidingVisitor, isModifierLike);\n    modifiers = injectClassElementTypeMetadata(modifiers, node, parent2);\n    return factory2.updateMethodDeclaration(\n      node,\n      modifiers,\n      node.asteriskToken,\n      visitPropertyNameOfClassElement(node),\n      /*questionToken*/\n      void 0,\n      /*typeParameters*/\n      void 0,\n      visitParameterList(node.parameters, visitor, context),\n      /*type*/\n      void 0,\n      visitFunctionBody(node.body, visitor, context)\n    );\n  }\n  function shouldEmitAccessorDeclaration(node) {\n    return !(nodeIsMissing(node.body) && hasSyntacticModifier(node, 64 /* Abstract */));\n  }\n  function visitGetAccessor(node, parent2) {\n    if (!(node.transformFlags & 1 /* ContainsTypeScript */)) {\n      return node;\n    }\n    if (!shouldEmitAccessorDeclaration(node)) {\n      return void 0;\n    }\n    let modifiers = isClassLike(parent2) ? visitNodes2(node.modifiers, visitor, isModifierLike) : visitNodes2(node.modifiers, decoratorElidingVisitor, isModifierLike);\n    modifiers = injectClassElementTypeMetadata(modifiers, node, parent2);\n    return factory2.updateGetAccessorDeclaration(\n      node,\n      modifiers,\n      visitPropertyNameOfClassElement(node),\n      visitParameterList(node.parameters, visitor, context),\n      /*type*/\n      void 0,\n      visitFunctionBody(node.body, visitor, context) || factory2.createBlock([])\n    );\n  }\n  function visitSetAccessor(node, parent2) {\n    if (!(node.transformFlags & 1 /* ContainsTypeScript */)) {\n      return node;\n    }\n    if (!shouldEmitAccessorDeclaration(node)) {\n      return void 0;\n    }\n    let modifiers = isClassLike(parent2) ? visitNodes2(node.modifiers, visitor, isModifierLike) : visitNodes2(node.modifiers, decoratorElidingVisitor, isModifierLike);\n    modifiers = injectClassElementTypeMetadata(modifiers, node, parent2);\n    return factory2.updateSetAccessorDeclaration(\n      node,\n      modifiers,\n      visitPropertyNameOfClassElement(node),\n      visitParameterList(node.parameters, visitor, context),\n      visitFunctionBody(node.body, visitor, context) || factory2.createBlock([])\n    );\n  }\n  function visitFunctionDeclaration(node) {\n    if (!shouldEmitFunctionLikeDeclaration(node)) {\n      return factory2.createNotEmittedStatement(node);\n    }\n    const updated = factory2.updateFunctionDeclaration(\n      node,\n      visitNodes2(node.modifiers, modifierVisitor, isModifier),\n      node.asteriskToken,\n      node.name,\n      /*typeParameters*/\n      void 0,\n      visitParameterList(node.parameters, visitor, context),\n      /*type*/\n      void 0,\n      visitFunctionBody(node.body, visitor, context) || factory2.createBlock([])\n    );\n    if (isExportOfNamespace(node)) {\n      const statements = [updated];\n      addExportMemberAssignment(statements, node);\n      return statements;\n    }\n    return updated;\n  }\n  function visitFunctionExpression(node) {\n    if (!shouldEmitFunctionLikeDeclaration(node)) {\n      return factory2.createOmittedExpression();\n    }\n    const updated = factory2.updateFunctionExpression(\n      node,\n      visitNodes2(node.modifiers, modifierVisitor, isModifier),\n      node.asteriskToken,\n      node.name,\n      /*typeParameters*/\n      void 0,\n      visitParameterList(node.parameters, visitor, context),\n      /*type*/\n      void 0,\n      visitFunctionBody(node.body, visitor, context) || factory2.createBlock([])\n    );\n    return updated;\n  }\n  function visitArrowFunction(node) {\n    const updated = factory2.updateArrowFunction(\n      node,\n      visitNodes2(node.modifiers, modifierVisitor, isModifier),\n      /*typeParameters*/\n      void 0,\n      visitParameterList(node.parameters, visitor, context),\n      /*type*/\n      void 0,\n      node.equalsGreaterThanToken,\n      visitFunctionBody(node.body, visitor, context)\n    );\n    return updated;\n  }\n  function visitParameter(node) {\n    if (parameterIsThisKeyword(node)) {\n      return void 0;\n    }\n    const updated = factory2.updateParameterDeclaration(\n      node,\n      visitNodes2(node.modifiers, (node2) => isDecorator(node2) ? visitor(node2) : void 0, isModifierLike),\n      node.dotDotDotToken,\n      Debug.checkDefined(visitNode(node.name, visitor, isBindingName)),\n      /*questionToken*/\n      void 0,\n      /*type*/\n      void 0,\n      visitNode(node.initializer, visitor, isExpression)\n    );\n    if (updated !== node) {\n      setCommentRange(updated, node);\n      setTextRange(updated, moveRangePastModifiers(node));\n      setSourceMapRange(updated, moveRangePastModifiers(node));\n      setEmitFlags(updated.name, 64 /* NoTrailingSourceMap */);\n    }\n    return updated;\n  }\n  function visitVariableStatement(node) {\n    if (isExportOfNamespace(node)) {\n      const variables = getInitializedVariables(node.declarationList);\n      if (variables.length === 0) {\n        return void 0;\n      }\n      return setTextRange(\n        factory2.createExpressionStatement(\n          factory2.inlineExpressions(\n            map(variables, transformInitializedVariable)\n          )\n        ),\n        node\n      );\n    } else {\n      return visitEachChild(node, visitor, context);\n    }\n  }\n  function transformInitializedVariable(node) {\n    const name = node.name;\n    if (isBindingPattern(name)) {\n      return flattenDestructuringAssignment(\n        node,\n        visitor,\n        context,\n        0 /* All */,\n        /*needsValue*/\n        false,\n        createNamespaceExportExpression\n      );\n    } else {\n      return setTextRange(\n        factory2.createAssignment(\n          getNamespaceMemberNameWithSourceMapsAndWithoutComments(name),\n          Debug.checkDefined(visitNode(node.initializer, visitor, isExpression))\n        ),\n        /*location*/\n        node\n      );\n    }\n  }\n  function visitVariableDeclaration(node) {\n    const updated = factory2.updateVariableDeclaration(\n      node,\n      Debug.checkDefined(visitNode(node.name, visitor, isBindingName)),\n      /*exclamationToken*/\n      void 0,\n      /*type*/\n      void 0,\n      visitNode(node.initializer, visitor, isExpression)\n    );\n    if (node.type) {\n      setTypeNode(updated.name, node.type);\n    }\n    return updated;\n  }\n  function visitParenthesizedExpression(node) {\n    const innerExpression = skipOuterExpressions(node.expression, ~(38 /* Assertions */ | 16 /* ExpressionsWithTypeArguments */));\n    if (isAssertionExpression(innerExpression) || isSatisfiesExpression(innerExpression)) {\n      const expression = visitNode(node.expression, visitor, isExpression);\n      Debug.assert(expression);\n      return factory2.createPartiallyEmittedExpression(expression, node);\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitAssertionExpression(node) {\n    const expression = visitNode(node.expression, visitor, isExpression);\n    Debug.assert(expression);\n    return factory2.createPartiallyEmittedExpression(expression, node);\n  }\n  function visitNonNullExpression(node) {\n    const expression = visitNode(node.expression, visitor, isLeftHandSideExpression);\n    Debug.assert(expression);\n    return factory2.createPartiallyEmittedExpression(expression, node);\n  }\n  function visitSatisfiesExpression(node) {\n    const expression = visitNode(node.expression, visitor, isExpression);\n    Debug.assert(expression);\n    return factory2.createPartiallyEmittedExpression(expression, node);\n  }\n  function visitCallExpression(node) {\n    return factory2.updateCallExpression(\n      node,\n      Debug.checkDefined(visitNode(node.expression, visitor, isExpression)),\n      /*typeArguments*/\n      void 0,\n      visitNodes2(node.arguments, visitor, isExpression)\n    );\n  }\n  function visitNewExpression(node) {\n    return factory2.updateNewExpression(\n      node,\n      Debug.checkDefined(visitNode(node.expression, visitor, isExpression)),\n      /*typeArguments*/\n      void 0,\n      visitNodes2(node.arguments, visitor, isExpression)\n    );\n  }\n  function visitTaggedTemplateExpression(node) {\n    return factory2.updateTaggedTemplateExpression(\n      node,\n      Debug.checkDefined(visitNode(node.tag, visitor, isExpression)),\n      /*typeArguments*/\n      void 0,\n      Debug.checkDefined(visitNode(node.template, visitor, isTemplateLiteral))\n    );\n  }\n  function visitJsxSelfClosingElement(node) {\n    return factory2.updateJsxSelfClosingElement(\n      node,\n      Debug.checkDefined(visitNode(node.tagName, visitor, isJsxTagNameExpression)),\n      /*typeArguments*/\n      void 0,\n      Debug.checkDefined(visitNode(node.attributes, visitor, isJsxAttributes))\n    );\n  }\n  function visitJsxJsxOpeningElement(node) {\n    return factory2.updateJsxOpeningElement(\n      node,\n      Debug.checkDefined(visitNode(node.tagName, visitor, isJsxTagNameExpression)),\n      /*typeArguments*/\n      void 0,\n      Debug.checkDefined(visitNode(node.attributes, visitor, isJsxAttributes))\n    );\n  }\n  function shouldEmitEnumDeclaration(node) {\n    return !isEnumConst(node) || shouldPreserveConstEnums(compilerOptions);\n  }\n  function visitEnumDeclaration(node) {\n    if (!shouldEmitEnumDeclaration(node)) {\n      return factory2.createNotEmittedStatement(node);\n    }\n    const statements = [];\n    let emitFlags = 4 /* AdviseOnEmitNode */;\n    const varAdded = addVarForEnumOrModuleDeclaration(statements, node);\n    if (varAdded) {\n      if (moduleKind !== 4 /* System */ || currentLexicalScope !== currentSourceFile) {\n        emitFlags |= 1024 /* NoLeadingComments */;\n      }\n    }\n    const parameterName = getNamespaceParameterName(node);\n    const containerName = getNamespaceContainerName(node);\n    const exportName = isExportOfNamespace(node) ? factory2.getExternalModuleOrNamespaceExportName(\n      currentNamespaceContainerName,\n      node,\n      /*allowComments*/\n      false,\n      /*allowSourceMaps*/\n      true\n    ) : factory2.getDeclarationName(\n      node,\n      /*allowComments*/\n      false,\n      /*allowSourceMaps*/\n      true\n    );\n    let moduleArg = factory2.createLogicalOr(\n      exportName,\n      factory2.createAssignment(\n        exportName,\n        factory2.createObjectLiteralExpression()\n      )\n    );\n    if (isExportOfNamespace(node)) {\n      const localName = factory2.getLocalName(\n        node,\n        /*allowComments*/\n        false,\n        /*allowSourceMaps*/\n        true\n      );\n      moduleArg = factory2.createAssignment(localName, moduleArg);\n    }\n    const enumStatement = factory2.createExpressionStatement(\n      factory2.createCallExpression(\n        factory2.createFunctionExpression(\n          /*modifiers*/\n          void 0,\n          /*asteriskToken*/\n          void 0,\n          /*name*/\n          void 0,\n          /*typeParameters*/\n          void 0,\n          [factory2.createParameterDeclaration(\n            /*modifiers*/\n            void 0,\n            /*dotDotDotToken*/\n            void 0,\n            parameterName\n          )],\n          /*type*/\n          void 0,\n          transformEnumBody(node, containerName)\n        ),\n        /*typeArguments*/\n        void 0,\n        [moduleArg]\n      )\n    );\n    setOriginalNode(enumStatement, node);\n    if (varAdded) {\n      setSyntheticLeadingComments(enumStatement, void 0);\n      setSyntheticTrailingComments(enumStatement, void 0);\n    }\n    setTextRange(enumStatement, node);\n    addEmitFlags(enumStatement, emitFlags);\n    statements.push(enumStatement);\n    return statements;\n  }\n  function transformEnumBody(node, localName) {\n    const savedCurrentNamespaceLocalName = currentNamespaceContainerName;\n    currentNamespaceContainerName = localName;\n    const statements = [];\n    startLexicalEnvironment();\n    const members = map(node.members, transformEnumMember);\n    insertStatementsAfterStandardPrologue(statements, endLexicalEnvironment());\n    addRange(statements, members);\n    currentNamespaceContainerName = savedCurrentNamespaceLocalName;\n    return factory2.createBlock(\n      setTextRange(\n        factory2.createNodeArray(statements),\n        /*location*/\n        node.members\n      ),\n      /*multiLine*/\n      true\n    );\n  }\n  function transformEnumMember(member) {\n    const name = getExpressionForPropertyName(\n      member,\n      /*generateNameForComputedPropertyName*/\n      false\n    );\n    const evaluated = resolver.getEnumMemberValue(member);\n    const valueExpression = transformEnumMemberDeclarationValue(member, evaluated == null ? void 0 : evaluated.value);\n    const innerAssignment = factory2.createAssignment(\n      factory2.createElementAccessExpression(\n        currentNamespaceContainerName,\n        name\n      ),\n      valueExpression\n    );\n    const outerAssignment = typeof (evaluated == null ? void 0 : evaluated.value) === \"string\" || (evaluated == null ? void 0 : evaluated.isSyntacticallyString) ? innerAssignment : factory2.createAssignment(\n      factory2.createElementAccessExpression(\n        currentNamespaceContainerName,\n        innerAssignment\n      ),\n      name\n    );\n    return setTextRange(\n      factory2.createExpressionStatement(\n        setTextRange(\n          outerAssignment,\n          member\n        )\n      ),\n      member\n    );\n  }\n  function transformEnumMemberDeclarationValue(member, constantValue) {\n    if (constantValue !== void 0) {\n      return typeof constantValue === \"string\" ? factory2.createStringLiteral(constantValue) : constantValue < 0 ? factory2.createPrefixUnaryExpression(41 /* MinusToken */, factory2.createNumericLiteral(-constantValue)) : factory2.createNumericLiteral(constantValue);\n    } else {\n      enableSubstitutionForNonQualifiedEnumMembers();\n      if (member.initializer) {\n        return Debug.checkDefined(visitNode(member.initializer, visitor, isExpression));\n      } else {\n        return factory2.createVoidZero();\n      }\n    }\n  }\n  function shouldEmitModuleDeclaration(nodeIn) {\n    const node = getParseTreeNode(nodeIn, isModuleDeclaration);\n    if (!node) {\n      return true;\n    }\n    return isInstantiatedModule(node, shouldPreserveConstEnums(compilerOptions));\n  }\n  function recordEmittedDeclarationInScope(node) {\n    if (!currentScopeFirstDeclarationsOfName) {\n      currentScopeFirstDeclarationsOfName = /* @__PURE__ */ new Map();\n    }\n    const name = declaredNameInScope(node);\n    if (!currentScopeFirstDeclarationsOfName.has(name)) {\n      currentScopeFirstDeclarationsOfName.set(name, node);\n    }\n  }\n  function isFirstEmittedDeclarationInScope(node) {\n    if (currentScopeFirstDeclarationsOfName) {\n      const name = declaredNameInScope(node);\n      return currentScopeFirstDeclarationsOfName.get(name) === node;\n    }\n    return true;\n  }\n  function declaredNameInScope(node) {\n    Debug.assertNode(node.name, isIdentifier);\n    return node.name.escapedText;\n  }\n  function addVarForEnumOrModuleDeclaration(statements, node) {\n    const varDecl = factory2.createVariableDeclaration(factory2.getLocalName(\n      node,\n      /*allowComments*/\n      false,\n      /*allowSourceMaps*/\n      true\n    ));\n    const varFlags = currentLexicalScope.kind === 308 /* SourceFile */ ? 0 /* None */ : 1 /* Let */;\n    const statement = factory2.createVariableStatement(\n      visitNodes2(node.modifiers, modifierVisitor, isModifier),\n      factory2.createVariableDeclarationList([varDecl], varFlags)\n    );\n    setOriginalNode(varDecl, node);\n    setSyntheticLeadingComments(varDecl, void 0);\n    setSyntheticTrailingComments(varDecl, void 0);\n    setOriginalNode(statement, node);\n    recordEmittedDeclarationInScope(node);\n    if (isFirstEmittedDeclarationInScope(node)) {\n      if (node.kind === 267 /* EnumDeclaration */) {\n        setSourceMapRange(statement.declarationList, node);\n      } else {\n        setSourceMapRange(statement, node);\n      }\n      setCommentRange(statement, node);\n      addEmitFlags(statement, 2048 /* NoTrailingComments */);\n      statements.push(statement);\n      return true;\n    }\n    return false;\n  }\n  function visitModuleDeclaration(node) {\n    if (!shouldEmitModuleDeclaration(node)) {\n      return factory2.createNotEmittedStatement(node);\n    }\n    Debug.assertNode(node.name, isIdentifier, \"A TypeScript namespace should have an Identifier name.\");\n    enableSubstitutionForNamespaceExports();\n    const statements = [];\n    let emitFlags = 4 /* AdviseOnEmitNode */;\n    const varAdded = addVarForEnumOrModuleDeclaration(statements, node);\n    if (varAdded) {\n      if (moduleKind !== 4 /* System */ || currentLexicalScope !== currentSourceFile) {\n        emitFlags |= 1024 /* NoLeadingComments */;\n      }\n    }\n    const parameterName = getNamespaceParameterName(node);\n    const containerName = getNamespaceContainerName(node);\n    const exportName = isExportOfNamespace(node) ? factory2.getExternalModuleOrNamespaceExportName(\n      currentNamespaceContainerName,\n      node,\n      /*allowComments*/\n      false,\n      /*allowSourceMaps*/\n      true\n    ) : factory2.getDeclarationName(\n      node,\n      /*allowComments*/\n      false,\n      /*allowSourceMaps*/\n      true\n    );\n    let moduleArg = factory2.createLogicalOr(\n      exportName,\n      factory2.createAssignment(\n        exportName,\n        factory2.createObjectLiteralExpression()\n      )\n    );\n    if (isExportOfNamespace(node)) {\n      const localName = factory2.getLocalName(\n        node,\n        /*allowComments*/\n        false,\n        /*allowSourceMaps*/\n        true\n      );\n      moduleArg = factory2.createAssignment(localName, moduleArg);\n    }\n    const moduleStatement = factory2.createExpressionStatement(\n      factory2.createCallExpression(\n        factory2.createFunctionExpression(\n          /*modifiers*/\n          void 0,\n          /*asteriskToken*/\n          void 0,\n          /*name*/\n          void 0,\n          /*typeParameters*/\n          void 0,\n          [factory2.createParameterDeclaration(\n            /*modifiers*/\n            void 0,\n            /*dotDotDotToken*/\n            void 0,\n            parameterName\n          )],\n          /*type*/\n          void 0,\n          transformModuleBody(node, containerName)\n        ),\n        /*typeArguments*/\n        void 0,\n        [moduleArg]\n      )\n    );\n    setOriginalNode(moduleStatement, node);\n    if (varAdded) {\n      setSyntheticLeadingComments(moduleStatement, void 0);\n      setSyntheticTrailingComments(moduleStatement, void 0);\n    }\n    setTextRange(moduleStatement, node);\n    addEmitFlags(moduleStatement, emitFlags);\n    statements.push(moduleStatement);\n    return statements;\n  }\n  function transformModuleBody(node, namespaceLocalName) {\n    const savedCurrentNamespaceContainerName = currentNamespaceContainerName;\n    const savedCurrentNamespace = currentNamespace;\n    const savedCurrentScopeFirstDeclarationsOfName = currentScopeFirstDeclarationsOfName;\n    currentNamespaceContainerName = namespaceLocalName;\n    currentNamespace = node;\n    currentScopeFirstDeclarationsOfName = void 0;\n    const statements = [];\n    startLexicalEnvironment();\n    let statementsLocation;\n    let blockLocation;\n    if (node.body) {\n      if (node.body.kind === 269 /* ModuleBlock */) {\n        saveStateAndInvoke(node.body, (body) => addRange(statements, visitNodes2(body.statements, namespaceElementVisitor, isStatement)));\n        statementsLocation = node.body.statements;\n        blockLocation = node.body;\n      } else {\n        const result = visitModuleDeclaration(node.body);\n        if (result) {\n          if (isArray(result)) {\n            addRange(statements, result);\n          } else {\n            statements.push(result);\n          }\n        }\n        const moduleBlock = getInnerMostModuleDeclarationFromDottedModule(node).body;\n        statementsLocation = moveRangePos(moduleBlock.statements, -1);\n      }\n    }\n    insertStatementsAfterStandardPrologue(statements, endLexicalEnvironment());\n    currentNamespaceContainerName = savedCurrentNamespaceContainerName;\n    currentNamespace = savedCurrentNamespace;\n    currentScopeFirstDeclarationsOfName = savedCurrentScopeFirstDeclarationsOfName;\n    const block = factory2.createBlock(\n      setTextRange(\n        factory2.createNodeArray(statements),\n        /*location*/\n        statementsLocation\n      ),\n      /*multiLine*/\n      true\n    );\n    setTextRange(block, blockLocation);\n    if (!node.body || node.body.kind !== 269 /* ModuleBlock */) {\n      setEmitFlags(block, getEmitFlags(block) | 3072 /* NoComments */);\n    }\n    return block;\n  }\n  function getInnerMostModuleDeclarationFromDottedModule(moduleDeclaration) {\n    if (moduleDeclaration.body.kind === 268 /* ModuleDeclaration */) {\n      const recursiveInnerModule = getInnerMostModuleDeclarationFromDottedModule(moduleDeclaration.body);\n      return recursiveInnerModule || moduleDeclaration.body;\n    }\n  }\n  function visitImportDeclaration(node) {\n    if (!node.importClause) {\n      return node;\n    }\n    if (node.importClause.isTypeOnly) {\n      return void 0;\n    }\n    const importClause = visitNode(node.importClause, visitImportClause, isImportClause);\n    return importClause ? factory2.updateImportDeclaration(\n      node,\n      /*modifiers*/\n      void 0,\n      importClause,\n      node.moduleSpecifier,\n      node.attributes\n    ) : void 0;\n  }\n  function visitImportClause(node) {\n    Debug.assert(node.phaseModifier !== 156 /* TypeKeyword */);\n    const name = shouldEmitAliasDeclaration(node) ? node.name : void 0;\n    const namedBindings = visitNode(node.namedBindings, visitNamedImportBindings, isNamedImportBindings);\n    return name || namedBindings ? factory2.updateImportClause(node, node.phaseModifier, name, namedBindings) : void 0;\n  }\n  function visitNamedImportBindings(node) {\n    if (node.kind === 275 /* NamespaceImport */) {\n      return shouldEmitAliasDeclaration(node) ? node : void 0;\n    } else {\n      const allowEmpty = compilerOptions.verbatimModuleSyntax;\n      const elements = visitNodes2(node.elements, visitImportSpecifier, isImportSpecifier);\n      return allowEmpty || some(elements) ? factory2.updateNamedImports(node, elements) : void 0;\n    }\n  }\n  function visitImportSpecifier(node) {\n    return !node.isTypeOnly && shouldEmitAliasDeclaration(node) ? node : void 0;\n  }\n  function visitExportAssignment(node) {\n    return compilerOptions.verbatimModuleSyntax || resolver.isValueAliasDeclaration(node) ? visitEachChild(node, visitor, context) : void 0;\n  }\n  function visitExportDeclaration(node) {\n    if (node.isTypeOnly) {\n      return void 0;\n    }\n    if (!node.exportClause || isNamespaceExport(node.exportClause)) {\n      return factory2.updateExportDeclaration(\n        node,\n        node.modifiers,\n        node.isTypeOnly,\n        node.exportClause,\n        node.moduleSpecifier,\n        node.attributes\n      );\n    }\n    const allowEmpty = !!compilerOptions.verbatimModuleSyntax;\n    const exportClause = visitNode(\n      node.exportClause,\n      (bindings) => visitNamedExportBindings(bindings, allowEmpty),\n      isNamedExportBindings\n    );\n    return exportClause ? factory2.updateExportDeclaration(\n      node,\n      /*modifiers*/\n      void 0,\n      node.isTypeOnly,\n      exportClause,\n      node.moduleSpecifier,\n      node.attributes\n    ) : void 0;\n  }\n  function visitNamedExports(node, allowEmpty) {\n    const elements = visitNodes2(node.elements, visitExportSpecifier, isExportSpecifier);\n    return allowEmpty || some(elements) ? factory2.updateNamedExports(node, elements) : void 0;\n  }\n  function visitNamespaceExports(node) {\n    return factory2.updateNamespaceExport(node, Debug.checkDefined(visitNode(node.name, visitor, isIdentifier)));\n  }\n  function visitNamedExportBindings(node, allowEmpty) {\n    return isNamespaceExport(node) ? visitNamespaceExports(node) : visitNamedExports(node, allowEmpty);\n  }\n  function visitExportSpecifier(node) {\n    return !node.isTypeOnly && (compilerOptions.verbatimModuleSyntax || resolver.isValueAliasDeclaration(node)) ? node : void 0;\n  }\n  function shouldEmitImportEqualsDeclaration(node) {\n    return shouldEmitAliasDeclaration(node) || !isExternalModule(currentSourceFile) && resolver.isTopLevelValueImportEqualsWithEntityName(node);\n  }\n  function visitImportEqualsDeclaration(node) {\n    if (node.isTypeOnly) {\n      return void 0;\n    }\n    if (isExternalModuleImportEqualsDeclaration(node)) {\n      if (!shouldEmitAliasDeclaration(node)) {\n        return void 0;\n      }\n      return visitEachChild(node, visitor, context);\n    }\n    if (!shouldEmitImportEqualsDeclaration(node)) {\n      return void 0;\n    }\n    const moduleReference = createExpressionFromEntityName(factory2, node.moduleReference);\n    setEmitFlags(moduleReference, 3072 /* NoComments */ | 4096 /* NoNestedComments */);\n    if (isNamedExternalModuleExport(node) || !isExportOfNamespace(node)) {\n      return setOriginalNode(\n        setTextRange(\n          factory2.createVariableStatement(\n            visitNodes2(node.modifiers, modifierVisitor, isModifier),\n            factory2.createVariableDeclarationList([\n              setOriginalNode(\n                factory2.createVariableDeclaration(\n                  node.name,\n                  /*exclamationToken*/\n                  void 0,\n                  /*type*/\n                  void 0,\n                  moduleReference\n                ),\n                node\n              )\n            ])\n          ),\n          node\n        ),\n        node\n      );\n    } else {\n      return setOriginalNode(\n        createNamespaceExport(\n          node.name,\n          moduleReference,\n          node\n        ),\n        node\n      );\n    }\n  }\n  function isExportOfNamespace(node) {\n    return currentNamespace !== void 0 && hasSyntacticModifier(node, 32 /* Export */);\n  }\n  function isExternalModuleExport(node) {\n    return currentNamespace === void 0 && hasSyntacticModifier(node, 32 /* Export */);\n  }\n  function isNamedExternalModuleExport(node) {\n    return isExternalModuleExport(node) && !hasSyntacticModifier(node, 2048 /* Default */);\n  }\n  function isDefaultExternalModuleExport(node) {\n    return isExternalModuleExport(node) && hasSyntacticModifier(node, 2048 /* Default */);\n  }\n  function createExportMemberAssignmentStatement(node) {\n    const expression = factory2.createAssignment(\n      factory2.getExternalModuleOrNamespaceExportName(\n        currentNamespaceContainerName,\n        node,\n        /*allowComments*/\n        false,\n        /*allowSourceMaps*/\n        true\n      ),\n      factory2.getLocalName(node)\n    );\n    setSourceMapRange(expression, createRange(node.name ? node.name.pos : node.pos, node.end));\n    const statement = factory2.createExpressionStatement(expression);\n    setSourceMapRange(statement, createRange(-1, node.end));\n    return statement;\n  }\n  function addExportMemberAssignment(statements, node) {\n    statements.push(createExportMemberAssignmentStatement(node));\n  }\n  function createNamespaceExport(exportName, exportValue, location) {\n    return setTextRange(\n      factory2.createExpressionStatement(\n        factory2.createAssignment(\n          factory2.getNamespaceMemberName(\n            currentNamespaceContainerName,\n            exportName,\n            /*allowComments*/\n            false,\n            /*allowSourceMaps*/\n            true\n          ),\n          exportValue\n        )\n      ),\n      location\n    );\n  }\n  function createNamespaceExportExpression(exportName, exportValue, location) {\n    return setTextRange(factory2.createAssignment(getNamespaceMemberNameWithSourceMapsAndWithoutComments(exportName), exportValue), location);\n  }\n  function getNamespaceMemberNameWithSourceMapsAndWithoutComments(name) {\n    return factory2.getNamespaceMemberName(\n      currentNamespaceContainerName,\n      name,\n      /*allowComments*/\n      false,\n      /*allowSourceMaps*/\n      true\n    );\n  }\n  function getNamespaceParameterName(node) {\n    const name = factory2.getGeneratedNameForNode(node);\n    setSourceMapRange(name, node.name);\n    return name;\n  }\n  function getNamespaceContainerName(node) {\n    return factory2.getGeneratedNameForNode(node);\n  }\n  function enableSubstitutionForNonQualifiedEnumMembers() {\n    if ((enabledSubstitutions & 8 /* NonQualifiedEnumMembers */) === 0) {\n      enabledSubstitutions |= 8 /* NonQualifiedEnumMembers */;\n      context.enableSubstitution(80 /* Identifier */);\n    }\n  }\n  function enableSubstitutionForNamespaceExports() {\n    if ((enabledSubstitutions & 2 /* NamespaceExports */) === 0) {\n      enabledSubstitutions |= 2 /* NamespaceExports */;\n      context.enableSubstitution(80 /* Identifier */);\n      context.enableSubstitution(305 /* ShorthandPropertyAssignment */);\n      context.enableEmitNotification(268 /* ModuleDeclaration */);\n    }\n  }\n  function isTransformedModuleDeclaration(node) {\n    return getOriginalNode(node).kind === 268 /* ModuleDeclaration */;\n  }\n  function isTransformedEnumDeclaration(node) {\n    return getOriginalNode(node).kind === 267 /* EnumDeclaration */;\n  }\n  function onEmitNode(hint, node, emitCallback) {\n    const savedApplicableSubstitutions = applicableSubstitutions;\n    const savedCurrentSourceFile = currentSourceFile;\n    if (isSourceFile(node)) {\n      currentSourceFile = node;\n    }\n    if (enabledSubstitutions & 2 /* NamespaceExports */ && isTransformedModuleDeclaration(node)) {\n      applicableSubstitutions |= 2 /* NamespaceExports */;\n    }\n    if (enabledSubstitutions & 8 /* NonQualifiedEnumMembers */ && isTransformedEnumDeclaration(node)) {\n      applicableSubstitutions |= 8 /* NonQualifiedEnumMembers */;\n    }\n    previousOnEmitNode(hint, node, emitCallback);\n    applicableSubstitutions = savedApplicableSubstitutions;\n    currentSourceFile = savedCurrentSourceFile;\n  }\n  function onSubstituteNode(hint, node) {\n    node = previousOnSubstituteNode(hint, node);\n    if (hint === 1 /* Expression */) {\n      return substituteExpression(node);\n    } else if (isShorthandPropertyAssignment(node)) {\n      return substituteShorthandPropertyAssignment(node);\n    }\n    return node;\n  }\n  function substituteShorthandPropertyAssignment(node) {\n    if (enabledSubstitutions & 2 /* NamespaceExports */) {\n      const name = node.name;\n      const exportedName = trySubstituteNamespaceExportedName(name);\n      if (exportedName) {\n        if (node.objectAssignmentInitializer) {\n          const initializer = factory2.createAssignment(exportedName, node.objectAssignmentInitializer);\n          return setTextRange(factory2.createPropertyAssignment(name, initializer), node);\n        }\n        return setTextRange(factory2.createPropertyAssignment(name, exportedName), node);\n      }\n    }\n    return node;\n  }\n  function substituteExpression(node) {\n    switch (node.kind) {\n      case 80 /* Identifier */:\n        return substituteExpressionIdentifier(node);\n      case 212 /* PropertyAccessExpression */:\n        return substitutePropertyAccessExpression(node);\n      case 213 /* ElementAccessExpression */:\n        return substituteElementAccessExpression(node);\n    }\n    return node;\n  }\n  function substituteExpressionIdentifier(node) {\n    return trySubstituteNamespaceExportedName(node) || node;\n  }\n  function trySubstituteNamespaceExportedName(node) {\n    if (enabledSubstitutions & applicableSubstitutions && !isGeneratedIdentifier(node) && !isLocalName(node)) {\n      const container = resolver.getReferencedExportContainer(\n        node,\n        /*prefixLocals*/\n        false\n      );\n      if (container && container.kind !== 308 /* SourceFile */) {\n        const substitute = applicableSubstitutions & 2 /* NamespaceExports */ && container.kind === 268 /* ModuleDeclaration */ || applicableSubstitutions & 8 /* NonQualifiedEnumMembers */ && container.kind === 267 /* EnumDeclaration */;\n        if (substitute) {\n          return setTextRange(\n            factory2.createPropertyAccessExpression(factory2.getGeneratedNameForNode(container), node),\n            /*location*/\n            node\n          );\n        }\n      }\n    }\n    return void 0;\n  }\n  function substitutePropertyAccessExpression(node) {\n    return substituteConstantValue(node);\n  }\n  function substituteElementAccessExpression(node) {\n    return substituteConstantValue(node);\n  }\n  function safeMultiLineComment(value) {\n    return value.replace(/\\*\\//g, \"*_/\");\n  }\n  function substituteConstantValue(node) {\n    const constantValue = tryGetConstEnumValue(node);\n    if (constantValue !== void 0) {\n      setConstantValue(node, constantValue);\n      const substitute = typeof constantValue === \"string\" ? factory2.createStringLiteral(constantValue) : constantValue < 0 ? factory2.createPrefixUnaryExpression(41 /* MinusToken */, factory2.createNumericLiteral(-constantValue)) : factory2.createNumericLiteral(constantValue);\n      if (!compilerOptions.removeComments) {\n        const originalNode = getOriginalNode(node, isAccessExpression);\n        addSyntheticTrailingComment(substitute, 3 /* MultiLineCommentTrivia */, ` ${safeMultiLineComment(getTextOfNode(originalNode))} `);\n      }\n      return substitute;\n    }\n    return node;\n  }\n  function tryGetConstEnumValue(node) {\n    if (getIsolatedModules(compilerOptions)) {\n      return void 0;\n    }\n    return isPropertyAccessExpression(node) || isElementAccessExpression(node) ? resolver.getConstantValue(node) : void 0;\n  }\n  function shouldEmitAliasDeclaration(node) {\n    return compilerOptions.verbatimModuleSyntax || isInJSFile(node) || resolver.isReferencedAliasDeclaration(node);\n  }\n}\n\n// src/compiler/transformers/classFields.ts\nfunction transformClassFields(context) {\n  const {\n    factory: factory2,\n    getEmitHelperFactory: emitHelpers,\n    hoistVariableDeclaration,\n    endLexicalEnvironment,\n    startLexicalEnvironment,\n    resumeLexicalEnvironment,\n    addBlockScopedVariable\n  } = context;\n  const resolver = context.getEmitResolver();\n  const compilerOptions = context.getCompilerOptions();\n  const languageVersion = getEmitScriptTarget(compilerOptions);\n  const useDefineForClassFields = getUseDefineForClassFields(compilerOptions);\n  const legacyDecorators = !!compilerOptions.experimentalDecorators;\n  const shouldTransformInitializersUsingSet = !useDefineForClassFields;\n  const shouldTransformInitializersUsingDefine = useDefineForClassFields && languageVersion < 9 /* ES2022 */;\n  const shouldTransformInitializers = shouldTransformInitializersUsingSet || shouldTransformInitializersUsingDefine;\n  const shouldTransformPrivateElementsOrClassStaticBlocks = languageVersion < 9 /* ES2022 */;\n  const shouldTransformAutoAccessors = languageVersion < 99 /* ESNext */ ? -1 /* True */ : !useDefineForClassFields ? 3 /* Maybe */ : 0 /* False */;\n  const shouldTransformThisInStaticInitializers = languageVersion < 9 /* ES2022 */;\n  const shouldTransformSuperInStaticInitializers = shouldTransformThisInStaticInitializers && languageVersion >= 2 /* ES2015 */;\n  const shouldTransformAnything = shouldTransformInitializers || shouldTransformPrivateElementsOrClassStaticBlocks || shouldTransformAutoAccessors === -1 /* True */;\n  const previousOnSubstituteNode = context.onSubstituteNode;\n  context.onSubstituteNode = onSubstituteNode;\n  const previousOnEmitNode = context.onEmitNode;\n  context.onEmitNode = onEmitNode;\n  let shouldTransformPrivateStaticElementsInFile = false;\n  let enabledSubstitutions = 0 /* None */;\n  let classAliases;\n  let pendingExpressions;\n  let pendingStatements;\n  let lexicalEnvironment;\n  const lexicalEnvironmentMap = /* @__PURE__ */ new Map();\n  const noSubstitution = /* @__PURE__ */ new Set();\n  let currentClassContainer;\n  let currentClassElement;\n  let shouldSubstituteThisWithClassThis = false;\n  let previousShouldSubstituteThisWithClassThis = false;\n  return chainBundle(context, transformSourceFile);\n  function transformSourceFile(node) {\n    if (node.isDeclarationFile) {\n      return node;\n    }\n    lexicalEnvironment = void 0;\n    shouldTransformPrivateStaticElementsInFile = !!(getInternalEmitFlags(node) & 32 /* TransformPrivateStaticElements */);\n    if (!shouldTransformAnything && !shouldTransformPrivateStaticElementsInFile) {\n      return node;\n    }\n    const visited = visitEachChild(node, visitor, context);\n    addEmitHelpers(visited, context.readEmitHelpers());\n    return visited;\n  }\n  function modifierVisitor(node) {\n    switch (node.kind) {\n      case 129 /* AccessorKeyword */:\n        return shouldTransformAutoAccessorsInCurrentClass() ? void 0 : node;\n      default:\n        return tryCast(node, isModifier);\n    }\n  }\n  function visitor(node) {\n    if (!(node.transformFlags & 16777216 /* ContainsClassFields */) && !(node.transformFlags & 134234112 /* ContainsLexicalThisOrSuper */)) {\n      return node;\n    }\n    switch (node.kind) {\n      case 264 /* ClassDeclaration */:\n        return visitClassDeclaration(node);\n      case 232 /* ClassExpression */:\n        return visitClassExpression(node);\n      case 176 /* ClassStaticBlockDeclaration */:\n      case 173 /* PropertyDeclaration */:\n        return Debug.fail(\"Use `classElementVisitor` instead.\");\n      case 304 /* PropertyAssignment */:\n        return visitPropertyAssignment(node);\n      case 244 /* VariableStatement */:\n        return visitVariableStatement(node);\n      case 261 /* VariableDeclaration */:\n        return visitVariableDeclaration(node);\n      case 170 /* Parameter */:\n        return visitParameterDeclaration(node);\n      case 209 /* BindingElement */:\n        return visitBindingElement(node);\n      case 278 /* ExportAssignment */:\n        return visitExportAssignment(node);\n      case 81 /* PrivateIdentifier */:\n        return visitPrivateIdentifier(node);\n      case 212 /* PropertyAccessExpression */:\n        return visitPropertyAccessExpression(node);\n      case 213 /* ElementAccessExpression */:\n        return visitElementAccessExpression(node);\n      case 225 /* PrefixUnaryExpression */:\n      case 226 /* PostfixUnaryExpression */:\n        return visitPreOrPostfixUnaryExpression(\n          node,\n          /*discarded*/\n          false\n        );\n      case 227 /* BinaryExpression */:\n        return visitBinaryExpression(\n          node,\n          /*discarded*/\n          false\n        );\n      case 218 /* ParenthesizedExpression */:\n        return visitParenthesizedExpression(\n          node,\n          /*discarded*/\n          false\n        );\n      case 214 /* CallExpression */:\n        return visitCallExpression(node);\n      case 245 /* ExpressionStatement */:\n        return visitExpressionStatement(node);\n      case 216 /* TaggedTemplateExpression */:\n        return visitTaggedTemplateExpression(node);\n      case 249 /* ForStatement */:\n        return visitForStatement(node);\n      case 110 /* ThisKeyword */:\n        return visitThisExpression(node);\n      case 263 /* FunctionDeclaration */:\n      case 219 /* FunctionExpression */:\n        return setCurrentClassElementAnd(\n          /*classElement*/\n          void 0,\n          fallbackVisitor,\n          node\n        );\n      case 177 /* Constructor */:\n      case 175 /* MethodDeclaration */:\n      case 178 /* GetAccessor */:\n      case 179 /* SetAccessor */: {\n        return setCurrentClassElementAnd(\n          node,\n          fallbackVisitor,\n          node\n        );\n      }\n      default:\n        return fallbackVisitor(node);\n    }\n  }\n  function fallbackVisitor(node) {\n    return visitEachChild(node, visitor, context);\n  }\n  function discardedValueVisitor(node) {\n    switch (node.kind) {\n      case 225 /* PrefixUnaryExpression */:\n      case 226 /* PostfixUnaryExpression */:\n        return visitPreOrPostfixUnaryExpression(\n          node,\n          /*discarded*/\n          true\n        );\n      case 227 /* BinaryExpression */:\n        return visitBinaryExpression(\n          node,\n          /*discarded*/\n          true\n        );\n      case 357 /* CommaListExpression */:\n        return visitCommaListExpression(\n          node,\n          /*discarded*/\n          true\n        );\n      case 218 /* ParenthesizedExpression */:\n        return visitParenthesizedExpression(\n          node,\n          /*discarded*/\n          true\n        );\n      default:\n        return visitor(node);\n    }\n  }\n  function heritageClauseVisitor(node) {\n    switch (node.kind) {\n      case 299 /* HeritageClause */:\n        return visitEachChild(node, heritageClauseVisitor, context);\n      case 234 /* ExpressionWithTypeArguments */:\n        return visitExpressionWithTypeArgumentsInHeritageClause(node);\n      default:\n        return visitor(node);\n    }\n  }\n  function assignmentTargetVisitor(node) {\n    switch (node.kind) {\n      case 211 /* ObjectLiteralExpression */:\n      case 210 /* ArrayLiteralExpression */:\n        return visitAssignmentPattern(node);\n      default:\n        return visitor(node);\n    }\n  }\n  function classElementVisitor(node) {\n    switch (node.kind) {\n      case 177 /* Constructor */:\n        return setCurrentClassElementAnd(\n          node,\n          visitConstructorDeclaration,\n          node\n        );\n      case 178 /* GetAccessor */:\n      case 179 /* SetAccessor */:\n      case 175 /* MethodDeclaration */:\n        return setCurrentClassElementAnd(\n          node,\n          visitMethodOrAccessorDeclaration,\n          node\n        );\n      case 173 /* PropertyDeclaration */:\n        return setCurrentClassElementAnd(\n          node,\n          visitPropertyDeclaration,\n          node\n        );\n      case 176 /* ClassStaticBlockDeclaration */:\n        return setCurrentClassElementAnd(\n          node,\n          visitClassStaticBlockDeclaration,\n          node\n        );\n      case 168 /* ComputedPropertyName */:\n        return visitComputedPropertyName(node);\n      case 241 /* SemicolonClassElement */:\n        return node;\n      default:\n        return isModifierLike(node) ? modifierVisitor(node) : visitor(node);\n    }\n  }\n  function propertyNameVisitor(node) {\n    switch (node.kind) {\n      case 168 /* ComputedPropertyName */:\n        return visitComputedPropertyName(node);\n      default:\n        return visitor(node);\n    }\n  }\n  function accessorFieldResultVisitor(node) {\n    switch (node.kind) {\n      case 173 /* PropertyDeclaration */:\n        return transformFieldInitializer(node);\n      case 178 /* GetAccessor */:\n      case 179 /* SetAccessor */:\n        return classElementVisitor(node);\n      default:\n        Debug.assertMissingNode(node, \"Expected node to either be a PropertyDeclaration, GetAccessorDeclaration, or SetAccessorDeclaration\");\n        break;\n    }\n  }\n  function visitPrivateIdentifier(node) {\n    if (!shouldTransformPrivateElementsOrClassStaticBlocks) {\n      return node;\n    }\n    if (isStatement(node.parent)) {\n      return node;\n    }\n    return setOriginalNode(factory2.createIdentifier(\"\"), node);\n  }\n  function transformPrivateIdentifierInInExpression(node) {\n    const info = accessPrivateIdentifier2(node.left);\n    if (info) {\n      const receiver = visitNode(node.right, visitor, isExpression);\n      return setOriginalNode(\n        emitHelpers().createClassPrivateFieldInHelper(info.brandCheckIdentifier, receiver),\n        node\n      );\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitPropertyAssignment(node) {\n    if (isNamedEvaluation(node, isAnonymousClassNeedingAssignedName)) {\n      node = transformNamedEvaluation(context, node);\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitVariableStatement(node) {\n    const savedPendingStatements = pendingStatements;\n    pendingStatements = [];\n    const visitedNode = visitEachChild(node, visitor, context);\n    const statement = some(pendingStatements) ? [visitedNode, ...pendingStatements] : visitedNode;\n    pendingStatements = savedPendingStatements;\n    return statement;\n  }\n  function visitVariableDeclaration(node) {\n    if (isNamedEvaluation(node, isAnonymousClassNeedingAssignedName)) {\n      node = transformNamedEvaluation(context, node);\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitParameterDeclaration(node) {\n    if (isNamedEvaluation(node, isAnonymousClassNeedingAssignedName)) {\n      node = transformNamedEvaluation(context, node);\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitBindingElement(node) {\n    if (isNamedEvaluation(node, isAnonymousClassNeedingAssignedName)) {\n      node = transformNamedEvaluation(context, node);\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitExportAssignment(node) {\n    if (isNamedEvaluation(node, isAnonymousClassNeedingAssignedName)) {\n      node = transformNamedEvaluation(\n        context,\n        node,\n        /*ignoreEmptyStringLiteral*/\n        true,\n        node.isExportEquals ? \"\" : \"default\"\n      );\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function injectPendingExpressions(expression) {\n    if (some(pendingExpressions)) {\n      if (isParenthesizedExpression(expression)) {\n        pendingExpressions.push(expression.expression);\n        expression = factory2.updateParenthesizedExpression(expression, factory2.inlineExpressions(pendingExpressions));\n      } else {\n        pendingExpressions.push(expression);\n        expression = factory2.inlineExpressions(pendingExpressions);\n      }\n      pendingExpressions = void 0;\n    }\n    return expression;\n  }\n  function visitComputedPropertyName(node) {\n    const expression = visitNode(node.expression, visitor, isExpression);\n    return factory2.updateComputedPropertyName(node, injectPendingExpressions(expression));\n  }\n  function visitConstructorDeclaration(node) {\n    if (currentClassContainer) {\n      return transformConstructor(node, currentClassContainer);\n    }\n    return fallbackVisitor(node);\n  }\n  function shouldTransformClassElementToWeakMap(node) {\n    if (shouldTransformPrivateElementsOrClassStaticBlocks) return true;\n    if (hasStaticModifier(node) && getInternalEmitFlags(node) & 32 /* TransformPrivateStaticElements */) return true;\n    return false;\n  }\n  function visitMethodOrAccessorDeclaration(node) {\n    Debug.assert(!hasDecorators(node));\n    if (!isPrivateIdentifierClassElementDeclaration(node) || !shouldTransformClassElementToWeakMap(node)) {\n      return visitEachChild(node, classElementVisitor, context);\n    }\n    const info = accessPrivateIdentifier2(node.name);\n    Debug.assert(info, \"Undeclared private name for property declaration.\");\n    if (!info.isValid) {\n      return node;\n    }\n    const functionName = getHoistedFunctionName(node);\n    if (functionName) {\n      getPendingExpressions().push(\n        factory2.createAssignment(\n          functionName,\n          factory2.createFunctionExpression(\n            filter(node.modifiers, (m) => isModifier(m) && !isStaticModifier(m) && !isAccessorModifier(m)),\n            node.asteriskToken,\n            functionName,\n            /*typeParameters*/\n            void 0,\n            visitParameterList(node.parameters, visitor, context),\n            /*type*/\n            void 0,\n            visitFunctionBody(node.body, visitor, context)\n          )\n        )\n      );\n    }\n    return void 0;\n  }\n  function setCurrentClassElementAnd(classElement, visitor2, arg) {\n    if (classElement !== currentClassElement) {\n      const savedCurrentClassElement = currentClassElement;\n      currentClassElement = classElement;\n      const result = visitor2(arg);\n      currentClassElement = savedCurrentClassElement;\n      return result;\n    }\n    return visitor2(arg);\n  }\n  function getHoistedFunctionName(node) {\n    Debug.assert(isPrivateIdentifier(node.name));\n    const info = accessPrivateIdentifier2(node.name);\n    Debug.assert(info, \"Undeclared private name for property declaration.\");\n    if (info.kind === \"m\" /* Method */) {\n      return info.methodName;\n    }\n    if (info.kind === \"a\" /* Accessor */) {\n      if (isGetAccessor(node)) {\n        return info.getterName;\n      }\n      if (isSetAccessor(node)) {\n        return info.setterName;\n      }\n    }\n  }\n  function tryGetClassThis() {\n    const lex = getClassLexicalEnvironment();\n    return lex.classThis ?? lex.classConstructor ?? (currentClassContainer == null ? void 0 : currentClassContainer.name);\n  }\n  function transformAutoAccessor(node) {\n    const commentRange = getCommentRange(node);\n    const sourceMapRange = getSourceMapRange(node);\n    const name = node.name;\n    let getterName = name;\n    let setterName = name;\n    if (isComputedPropertyName(name) && !isSimpleInlineableExpression(name.expression)) {\n      const cacheAssignment = findComputedPropertyNameCacheAssignment(name);\n      if (cacheAssignment) {\n        getterName = factory2.updateComputedPropertyName(name, visitNode(name.expression, visitor, isExpression));\n        setterName = factory2.updateComputedPropertyName(name, cacheAssignment.left);\n      } else {\n        const temp = factory2.createTempVariable(hoistVariableDeclaration);\n        setSourceMapRange(temp, name.expression);\n        const expression = visitNode(name.expression, visitor, isExpression);\n        const assignment = factory2.createAssignment(temp, expression);\n        setSourceMapRange(assignment, name.expression);\n        getterName = factory2.updateComputedPropertyName(name, assignment);\n        setterName = factory2.updateComputedPropertyName(name, temp);\n      }\n    }\n    const modifiers = visitNodes2(node.modifiers, modifierVisitor, isModifier);\n    const backingField = createAccessorPropertyBackingField(factory2, node, modifiers, node.initializer);\n    setOriginalNode(backingField, node);\n    setEmitFlags(backingField, 3072 /* NoComments */);\n    setSourceMapRange(backingField, sourceMapRange);\n    const receiver = isStatic(node) ? tryGetClassThis() ?? factory2.createThis() : factory2.createThis();\n    const getter = createAccessorPropertyGetRedirector(factory2, node, modifiers, getterName, receiver);\n    setOriginalNode(getter, node);\n    setCommentRange(getter, commentRange);\n    setSourceMapRange(getter, sourceMapRange);\n    const setterModifiers = factory2.createModifiersFromModifierFlags(modifiersToFlags(modifiers));\n    const setter = createAccessorPropertySetRedirector(factory2, node, setterModifiers, setterName, receiver);\n    setOriginalNode(setter, node);\n    setEmitFlags(setter, 3072 /* NoComments */);\n    setSourceMapRange(setter, sourceMapRange);\n    return visitArray([backingField, getter, setter], accessorFieldResultVisitor, isClassElement);\n  }\n  function transformPrivateFieldInitializer(node) {\n    if (shouldTransformClassElementToWeakMap(node)) {\n      const info = accessPrivateIdentifier2(node.name);\n      Debug.assert(info, \"Undeclared private name for property declaration.\");\n      if (!info.isValid) {\n        return node;\n      }\n      if (info.isStatic && !shouldTransformPrivateElementsOrClassStaticBlocks) {\n        const statement = transformPropertyOrClassStaticBlock(node, factory2.createThis());\n        if (statement) {\n          return factory2.createClassStaticBlockDeclaration(factory2.createBlock(\n            [statement],\n            /*multiLine*/\n            true\n          ));\n        }\n      }\n      return void 0;\n    }\n    if (shouldTransformInitializersUsingSet && !isStatic(node) && (lexicalEnvironment == null ? void 0 : lexicalEnvironment.data) && lexicalEnvironment.data.facts & 16 /* WillHoistInitializersToConstructor */) {\n      return factory2.updatePropertyDeclaration(\n        node,\n        visitNodes2(node.modifiers, visitor, isModifierLike),\n        node.name,\n        /*questionOrExclamationToken*/\n        void 0,\n        /*type*/\n        void 0,\n        /*initializer*/\n        void 0\n      );\n    }\n    if (isNamedEvaluation(node, isAnonymousClassNeedingAssignedName)) {\n      node = transformNamedEvaluation(context, node);\n    }\n    return factory2.updatePropertyDeclaration(\n      node,\n      visitNodes2(node.modifiers, modifierVisitor, isModifier),\n      visitNode(node.name, propertyNameVisitor, isPropertyName),\n      /*questionOrExclamationToken*/\n      void 0,\n      /*type*/\n      void 0,\n      visitNode(node.initializer, visitor, isExpression)\n    );\n  }\n  function transformPublicFieldInitializer(node) {\n    if (shouldTransformInitializers && !isAutoAccessorPropertyDeclaration(node)) {\n      const expr = getPropertyNameExpressionIfNeeded(\n        node.name,\n        /*shouldHoist*/\n        !!node.initializer || useDefineForClassFields\n      );\n      if (expr) {\n        getPendingExpressions().push(...flattenCommaList(expr));\n      }\n      if (isStatic(node) && !shouldTransformPrivateElementsOrClassStaticBlocks) {\n        const initializerStatement = transformPropertyOrClassStaticBlock(node, factory2.createThis());\n        if (initializerStatement) {\n          const staticBlock = factory2.createClassStaticBlockDeclaration(\n            factory2.createBlock([initializerStatement])\n          );\n          setOriginalNode(staticBlock, node);\n          setCommentRange(staticBlock, node);\n          setCommentRange(initializerStatement, { pos: -1, end: -1 });\n          setSyntheticLeadingComments(initializerStatement, void 0);\n          setSyntheticTrailingComments(initializerStatement, void 0);\n          return staticBlock;\n        }\n      }\n      return void 0;\n    }\n    return factory2.updatePropertyDeclaration(\n      node,\n      visitNodes2(node.modifiers, modifierVisitor, isModifier),\n      visitNode(node.name, propertyNameVisitor, isPropertyName),\n      /*questionOrExclamationToken*/\n      void 0,\n      /*type*/\n      void 0,\n      visitNode(node.initializer, visitor, isExpression)\n    );\n  }\n  function transformFieldInitializer(node) {\n    Debug.assert(!hasDecorators(node), \"Decorators should already have been transformed and elided.\");\n    return isPrivateIdentifierClassElementDeclaration(node) ? transformPrivateFieldInitializer(node) : transformPublicFieldInitializer(node);\n  }\n  function shouldTransformAutoAccessorsInCurrentClass() {\n    return shouldTransformAutoAccessors === -1 /* True */ || shouldTransformAutoAccessors === 3 /* Maybe */ && !!(lexicalEnvironment == null ? void 0 : lexicalEnvironment.data) && !!(lexicalEnvironment.data.facts & 16 /* WillHoistInitializersToConstructor */);\n  }\n  function visitPropertyDeclaration(node) {\n    if (isAutoAccessorPropertyDeclaration(node) && (shouldTransformAutoAccessorsInCurrentClass() || hasStaticModifier(node) && getInternalEmitFlags(node) & 32 /* TransformPrivateStaticElements */)) {\n      return transformAutoAccessor(node);\n    }\n    return transformFieldInitializer(node);\n  }\n  function shouldForceDynamicThis() {\n    return !!currentClassElement && hasStaticModifier(currentClassElement) && isAccessor(currentClassElement) && isAutoAccessorPropertyDeclaration(getOriginalNode(currentClassElement));\n  }\n  function ensureDynamicThisIfNeeded(node) {\n    if (shouldForceDynamicThis()) {\n      const innerExpression = skipOuterExpressions(node);\n      if (innerExpression.kind === 110 /* ThisKeyword */) {\n        noSubstitution.add(innerExpression);\n      }\n    }\n  }\n  function createPrivateIdentifierAccess(info, receiver) {\n    receiver = visitNode(receiver, visitor, isExpression);\n    ensureDynamicThisIfNeeded(receiver);\n    return createPrivateIdentifierAccessHelper(info, receiver);\n  }\n  function createPrivateIdentifierAccessHelper(info, receiver) {\n    setCommentRange(receiver, moveRangePos(receiver, -1));\n    switch (info.kind) {\n      case \"a\" /* Accessor */:\n        return emitHelpers().createClassPrivateFieldGetHelper(\n          receiver,\n          info.brandCheckIdentifier,\n          info.kind,\n          info.getterName\n        );\n      case \"m\" /* Method */:\n        return emitHelpers().createClassPrivateFieldGetHelper(\n          receiver,\n          info.brandCheckIdentifier,\n          info.kind,\n          info.methodName\n        );\n      case \"f\" /* Field */:\n        return emitHelpers().createClassPrivateFieldGetHelper(\n          receiver,\n          info.brandCheckIdentifier,\n          info.kind,\n          info.isStatic ? info.variableName : void 0\n        );\n      case \"untransformed\":\n        return Debug.fail(\"Access helpers should not be created for untransformed private elements\");\n      default:\n        Debug.assertNever(info, \"Unknown private element type\");\n    }\n  }\n  function visitPropertyAccessExpression(node) {\n    if (isPrivateIdentifier(node.name)) {\n      const privateIdentifierInfo = accessPrivateIdentifier2(node.name);\n      if (privateIdentifierInfo) {\n        return setTextRange(\n          setOriginalNode(\n            createPrivateIdentifierAccess(privateIdentifierInfo, node.expression),\n            node\n          ),\n          node\n        );\n      }\n    }\n    if (shouldTransformSuperInStaticInitializers && currentClassElement && isSuperProperty(node) && isIdentifier(node.name) && isStaticPropertyDeclarationOrClassStaticBlock(currentClassElement) && (lexicalEnvironment == null ? void 0 : lexicalEnvironment.data)) {\n      const { classConstructor, superClassReference, facts } = lexicalEnvironment.data;\n      if (facts & 1 /* ClassWasDecorated */) {\n        return visitInvalidSuperProperty(node);\n      }\n      if (classConstructor && superClassReference) {\n        const superProperty = factory2.createReflectGetCall(\n          superClassReference,\n          factory2.createStringLiteralFromNode(node.name),\n          classConstructor\n        );\n        setOriginalNode(superProperty, node.expression);\n        setTextRange(superProperty, node.expression);\n        return superProperty;\n      }\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitElementAccessExpression(node) {\n    if (shouldTransformSuperInStaticInitializers && currentClassElement && isSuperProperty(node) && isStaticPropertyDeclarationOrClassStaticBlock(currentClassElement) && (lexicalEnvironment == null ? void 0 : lexicalEnvironment.data)) {\n      const { classConstructor, superClassReference, facts } = lexicalEnvironment.data;\n      if (facts & 1 /* ClassWasDecorated */) {\n        return visitInvalidSuperProperty(node);\n      }\n      if (classConstructor && superClassReference) {\n        const superProperty = factory2.createReflectGetCall(\n          superClassReference,\n          visitNode(node.argumentExpression, visitor, isExpression),\n          classConstructor\n        );\n        setOriginalNode(superProperty, node.expression);\n        setTextRange(superProperty, node.expression);\n        return superProperty;\n      }\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitPreOrPostfixUnaryExpression(node, discarded) {\n    if (node.operator === 46 /* PlusPlusToken */ || node.operator === 47 /* MinusMinusToken */) {\n      const operand = skipParentheses(node.operand);\n      if (isPrivateIdentifierPropertyAccessExpression(operand)) {\n        let info;\n        if (info = accessPrivateIdentifier2(operand.name)) {\n          const receiver = visitNode(operand.expression, visitor, isExpression);\n          ensureDynamicThisIfNeeded(receiver);\n          const { readExpression, initializeExpression } = createCopiableReceiverExpr(receiver);\n          let expression = createPrivateIdentifierAccess(info, readExpression);\n          const temp = isPrefixUnaryExpression(node) || discarded ? void 0 : factory2.createTempVariable(hoistVariableDeclaration);\n          expression = expandPreOrPostfixIncrementOrDecrementExpression(factory2, node, expression, hoistVariableDeclaration, temp);\n          expression = createPrivateIdentifierAssignment(\n            info,\n            initializeExpression || readExpression,\n            expression,\n            64 /* EqualsToken */\n          );\n          setOriginalNode(expression, node);\n          setTextRange(expression, node);\n          if (temp) {\n            expression = factory2.createComma(expression, temp);\n            setTextRange(expression, node);\n          }\n          return expression;\n        }\n      } else if (shouldTransformSuperInStaticInitializers && currentClassElement && isSuperProperty(operand) && isStaticPropertyDeclarationOrClassStaticBlock(currentClassElement) && (lexicalEnvironment == null ? void 0 : lexicalEnvironment.data)) {\n        const { classConstructor, superClassReference, facts } = lexicalEnvironment.data;\n        if (facts & 1 /* ClassWasDecorated */) {\n          const expression = visitInvalidSuperProperty(operand);\n          return isPrefixUnaryExpression(node) ? factory2.updatePrefixUnaryExpression(node, expression) : factory2.updatePostfixUnaryExpression(node, expression);\n        }\n        if (classConstructor && superClassReference) {\n          let setterName;\n          let getterName;\n          if (isPropertyAccessExpression(operand)) {\n            if (isIdentifier(operand.name)) {\n              getterName = setterName = factory2.createStringLiteralFromNode(operand.name);\n            }\n          } else {\n            if (isSimpleInlineableExpression(operand.argumentExpression)) {\n              getterName = setterName = operand.argumentExpression;\n            } else {\n              getterName = factory2.createTempVariable(hoistVariableDeclaration);\n              setterName = factory2.createAssignment(getterName, visitNode(operand.argumentExpression, visitor, isExpression));\n            }\n          }\n          if (setterName && getterName) {\n            let expression = factory2.createReflectGetCall(superClassReference, getterName, classConstructor);\n            setTextRange(expression, operand);\n            const temp = discarded ? void 0 : factory2.createTempVariable(hoistVariableDeclaration);\n            expression = expandPreOrPostfixIncrementOrDecrementExpression(factory2, node, expression, hoistVariableDeclaration, temp);\n            expression = factory2.createReflectSetCall(superClassReference, setterName, expression, classConstructor);\n            setOriginalNode(expression, node);\n            setTextRange(expression, node);\n            if (temp) {\n              expression = factory2.createComma(expression, temp);\n              setTextRange(expression, node);\n            }\n            return expression;\n          }\n        }\n      }\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitForStatement(node) {\n    return factory2.updateForStatement(\n      node,\n      visitNode(node.initializer, discardedValueVisitor, isForInitializer),\n      visitNode(node.condition, visitor, isExpression),\n      visitNode(node.incrementor, discardedValueVisitor, isExpression),\n      visitIterationBody(node.statement, visitor, context)\n    );\n  }\n  function visitExpressionStatement(node) {\n    return factory2.updateExpressionStatement(\n      node,\n      visitNode(node.expression, discardedValueVisitor, isExpression)\n    );\n  }\n  function createCopiableReceiverExpr(receiver) {\n    const clone2 = nodeIsSynthesized(receiver) ? receiver : factory2.cloneNode(receiver);\n    if (receiver.kind === 110 /* ThisKeyword */ && noSubstitution.has(receiver)) {\n      noSubstitution.add(clone2);\n    }\n    if (isSimpleInlineableExpression(receiver)) {\n      return { readExpression: clone2, initializeExpression: void 0 };\n    }\n    const readExpression = factory2.createTempVariable(hoistVariableDeclaration);\n    const initializeExpression = factory2.createAssignment(readExpression, clone2);\n    return { readExpression, initializeExpression };\n  }\n  function visitCallExpression(node) {\n    var _a;\n    if (isPrivateIdentifierPropertyAccessExpression(node.expression) && accessPrivateIdentifier2(node.expression.name)) {\n      const { thisArg, target } = factory2.createCallBinding(node.expression, hoistVariableDeclaration, languageVersion);\n      if (isCallChain(node)) {\n        return factory2.updateCallChain(\n          node,\n          factory2.createPropertyAccessChain(visitNode(target, visitor, isExpression), node.questionDotToken, \"call\"),\n          /*questionDotToken*/\n          void 0,\n          /*typeArguments*/\n          void 0,\n          [visitNode(thisArg, visitor, isExpression), ...visitNodes2(node.arguments, visitor, isExpression)]\n        );\n      }\n      return factory2.updateCallExpression(\n        node,\n        factory2.createPropertyAccessExpression(visitNode(target, visitor, isExpression), \"call\"),\n        /*typeArguments*/\n        void 0,\n        [visitNode(thisArg, visitor, isExpression), ...visitNodes2(node.arguments, visitor, isExpression)]\n      );\n    }\n    if (shouldTransformSuperInStaticInitializers && currentClassElement && isSuperProperty(node.expression) && isStaticPropertyDeclarationOrClassStaticBlock(currentClassElement) && ((_a = lexicalEnvironment == null ? void 0 : lexicalEnvironment.data) == null ? void 0 : _a.classConstructor)) {\n      const invocation = factory2.createFunctionCallCall(\n        visitNode(node.expression, visitor, isExpression),\n        lexicalEnvironment.data.classConstructor,\n        visitNodes2(node.arguments, visitor, isExpression)\n      );\n      setOriginalNode(invocation, node);\n      setTextRange(invocation, node);\n      return invocation;\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitTaggedTemplateExpression(node) {\n    var _a;\n    if (isPrivateIdentifierPropertyAccessExpression(node.tag) && accessPrivateIdentifier2(node.tag.name)) {\n      const { thisArg, target } = factory2.createCallBinding(node.tag, hoistVariableDeclaration, languageVersion);\n      return factory2.updateTaggedTemplateExpression(\n        node,\n        factory2.createCallExpression(\n          factory2.createPropertyAccessExpression(visitNode(target, visitor, isExpression), \"bind\"),\n          /*typeArguments*/\n          void 0,\n          [visitNode(thisArg, visitor, isExpression)]\n        ),\n        /*typeArguments*/\n        void 0,\n        visitNode(node.template, visitor, isTemplateLiteral)\n      );\n    }\n    if (shouldTransformSuperInStaticInitializers && currentClassElement && isSuperProperty(node.tag) && isStaticPropertyDeclarationOrClassStaticBlock(currentClassElement) && ((_a = lexicalEnvironment == null ? void 0 : lexicalEnvironment.data) == null ? void 0 : _a.classConstructor)) {\n      const invocation = factory2.createFunctionBindCall(\n        visitNode(node.tag, visitor, isExpression),\n        lexicalEnvironment.data.classConstructor,\n        []\n      );\n      setOriginalNode(invocation, node);\n      setTextRange(invocation, node);\n      return factory2.updateTaggedTemplateExpression(\n        node,\n        invocation,\n        /*typeArguments*/\n        void 0,\n        visitNode(node.template, visitor, isTemplateLiteral)\n      );\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function transformClassStaticBlockDeclaration(node) {\n    if (lexicalEnvironment) {\n      lexicalEnvironmentMap.set(getOriginalNode(node), lexicalEnvironment);\n    }\n    if (shouldTransformPrivateElementsOrClassStaticBlocks) {\n      if (isClassThisAssignmentBlock(node)) {\n        const result = visitNode(node.body.statements[0].expression, visitor, isExpression);\n        if (isAssignmentExpression(\n          result,\n          /*excludeCompoundAssignment*/\n          true\n        ) && result.left === result.right) {\n          return void 0;\n        }\n        return result;\n      }\n      if (isClassNamedEvaluationHelperBlock(node)) {\n        return visitNode(node.body.statements[0].expression, visitor, isExpression);\n      }\n      startLexicalEnvironment();\n      let statements = setCurrentClassElementAnd(\n        node,\n        (statements2) => visitNodes2(statements2, visitor, isStatement),\n        node.body.statements\n      );\n      statements = factory2.mergeLexicalEnvironment(statements, endLexicalEnvironment());\n      const iife = factory2.createImmediatelyInvokedArrowFunction(statements);\n      setOriginalNode(skipParentheses(iife.expression), node);\n      addEmitFlags(skipParentheses(iife.expression), 4 /* AdviseOnEmitNode */);\n      setOriginalNode(iife, node);\n      setTextRange(iife, node);\n      return iife;\n    }\n  }\n  function isAnonymousClassNeedingAssignedName(node) {\n    if (isClassExpression(node) && !node.name) {\n      const staticPropertiesOrClassStaticBlocks = getStaticPropertiesAndClassStaticBlock(node);\n      if (some(staticPropertiesOrClassStaticBlocks, isClassNamedEvaluationHelperBlock)) {\n        return false;\n      }\n      const hasTransformableStatics = (shouldTransformPrivateElementsOrClassStaticBlocks || !!(getInternalEmitFlags(node) && 32 /* TransformPrivateStaticElements */)) && some(staticPropertiesOrClassStaticBlocks, (node2) => isClassStaticBlockDeclaration(node2) || isPrivateIdentifierClassElementDeclaration(node2) || shouldTransformInitializers && isInitializedProperty(node2));\n      return hasTransformableStatics;\n    }\n    return false;\n  }\n  function visitBinaryExpression(node, discarded) {\n    if (isDestructuringAssignment(node)) {\n      const savedPendingExpressions = pendingExpressions;\n      pendingExpressions = void 0;\n      node = factory2.updateBinaryExpression(\n        node,\n        visitNode(node.left, assignmentTargetVisitor, isExpression),\n        node.operatorToken,\n        visitNode(node.right, visitor, isExpression)\n      );\n      const expr = some(pendingExpressions) ? factory2.inlineExpressions(compact([...pendingExpressions, node])) : node;\n      pendingExpressions = savedPendingExpressions;\n      return expr;\n    }\n    if (isAssignmentExpression(node)) {\n      if (isNamedEvaluation(node, isAnonymousClassNeedingAssignedName)) {\n        node = transformNamedEvaluation(context, node);\n        Debug.assertNode(node, isAssignmentExpression);\n      }\n      const left = skipOuterExpressions(node.left, 8 /* PartiallyEmittedExpressions */ | 1 /* Parentheses */);\n      if (isPrivateIdentifierPropertyAccessExpression(left)) {\n        const info = accessPrivateIdentifier2(left.name);\n        if (info) {\n          return setTextRange(\n            setOriginalNode(\n              createPrivateIdentifierAssignment(info, left.expression, node.right, node.operatorToken.kind),\n              node\n            ),\n            node\n          );\n        }\n      } else if (shouldTransformSuperInStaticInitializers && currentClassElement && isSuperProperty(node.left) && isStaticPropertyDeclarationOrClassStaticBlock(currentClassElement) && (lexicalEnvironment == null ? void 0 : lexicalEnvironment.data)) {\n        const { classConstructor, superClassReference, facts } = lexicalEnvironment.data;\n        if (facts & 1 /* ClassWasDecorated */) {\n          return factory2.updateBinaryExpression(\n            node,\n            visitInvalidSuperProperty(node.left),\n            node.operatorToken,\n            visitNode(node.right, visitor, isExpression)\n          );\n        }\n        if (classConstructor && superClassReference) {\n          let setterName = isElementAccessExpression(node.left) ? visitNode(node.left.argumentExpression, visitor, isExpression) : isIdentifier(node.left.name) ? factory2.createStringLiteralFromNode(node.left.name) : void 0;\n          if (setterName) {\n            let expression = visitNode(node.right, visitor, isExpression);\n            if (isCompoundAssignment(node.operatorToken.kind)) {\n              let getterName = setterName;\n              if (!isSimpleInlineableExpression(setterName)) {\n                getterName = factory2.createTempVariable(hoistVariableDeclaration);\n                setterName = factory2.createAssignment(getterName, setterName);\n              }\n              const superPropertyGet = factory2.createReflectGetCall(\n                superClassReference,\n                getterName,\n                classConstructor\n              );\n              setOriginalNode(superPropertyGet, node.left);\n              setTextRange(superPropertyGet, node.left);\n              expression = factory2.createBinaryExpression(\n                superPropertyGet,\n                getNonAssignmentOperatorForCompoundAssignment(node.operatorToken.kind),\n                expression\n              );\n              setTextRange(expression, node);\n            }\n            const temp = discarded ? void 0 : factory2.createTempVariable(hoistVariableDeclaration);\n            if (temp) {\n              expression = factory2.createAssignment(temp, expression);\n              setTextRange(temp, node);\n            }\n            expression = factory2.createReflectSetCall(\n              superClassReference,\n              setterName,\n              expression,\n              classConstructor\n            );\n            setOriginalNode(expression, node);\n            setTextRange(expression, node);\n            if (temp) {\n              expression = factory2.createComma(expression, temp);\n              setTextRange(expression, node);\n            }\n            return expression;\n          }\n        }\n      }\n    }\n    if (isPrivateIdentifierInExpression(node)) {\n      return transformPrivateIdentifierInInExpression(node);\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitCommaListExpression(node, discarded) {\n    const elements = discarded ? visitCommaListElements(node.elements, discardedValueVisitor) : visitCommaListElements(node.elements, visitor, discardedValueVisitor);\n    return factory2.updateCommaListExpression(node, elements);\n  }\n  function visitParenthesizedExpression(node, discarded) {\n    const visitorFunc = discarded ? discardedValueVisitor : visitor;\n    const expression = visitNode(node.expression, visitorFunc, isExpression);\n    return factory2.updateParenthesizedExpression(node, expression);\n  }\n  function createPrivateIdentifierAssignment(info, receiver, right, operator) {\n    receiver = visitNode(receiver, visitor, isExpression);\n    right = visitNode(right, visitor, isExpression);\n    ensureDynamicThisIfNeeded(receiver);\n    if (isCompoundAssignment(operator)) {\n      const { readExpression, initializeExpression } = createCopiableReceiverExpr(receiver);\n      receiver = initializeExpression || readExpression;\n      right = factory2.createBinaryExpression(\n        createPrivateIdentifierAccessHelper(info, readExpression),\n        getNonAssignmentOperatorForCompoundAssignment(operator),\n        right\n      );\n    }\n    setCommentRange(receiver, moveRangePos(receiver, -1));\n    switch (info.kind) {\n      case \"a\" /* Accessor */:\n        return emitHelpers().createClassPrivateFieldSetHelper(\n          receiver,\n          info.brandCheckIdentifier,\n          right,\n          info.kind,\n          info.setterName\n        );\n      case \"m\" /* Method */:\n        return emitHelpers().createClassPrivateFieldSetHelper(\n          receiver,\n          info.brandCheckIdentifier,\n          right,\n          info.kind,\n          /*f*/\n          void 0\n        );\n      case \"f\" /* Field */:\n        return emitHelpers().createClassPrivateFieldSetHelper(\n          receiver,\n          info.brandCheckIdentifier,\n          right,\n          info.kind,\n          info.isStatic ? info.variableName : void 0\n        );\n      case \"untransformed\":\n        return Debug.fail(\"Access helpers should not be created for untransformed private elements\");\n      default:\n        Debug.assertNever(info, \"Unknown private element type\");\n    }\n  }\n  function getPrivateInstanceMethodsAndAccessors(node) {\n    return filter(node.members, isNonStaticMethodOrAccessorWithPrivateName);\n  }\n  function getClassFacts(node) {\n    var _a;\n    let facts = 0 /* None */;\n    const original = getOriginalNode(node);\n    if (isClassLike(original) && classOrConstructorParameterIsDecorated(legacyDecorators, original)) {\n      facts |= 1 /* ClassWasDecorated */;\n    }\n    if (shouldTransformPrivateElementsOrClassStaticBlocks && (classHasClassThisAssignment(node) || classHasExplicitlyAssignedName(node))) {\n      facts |= 2 /* NeedsClassConstructorReference */;\n    }\n    let containsPublicInstanceFields = false;\n    let containsInitializedPublicInstanceFields = false;\n    let containsInstancePrivateElements = false;\n    let containsInstanceAutoAccessors = false;\n    for (const member of node.members) {\n      if (isStatic(member)) {\n        if (member.name && (isPrivateIdentifier(member.name) || isAutoAccessorPropertyDeclaration(member)) && shouldTransformPrivateElementsOrClassStaticBlocks) {\n          facts |= 2 /* NeedsClassConstructorReference */;\n        } else if (isAutoAccessorPropertyDeclaration(member) && shouldTransformAutoAccessors === -1 /* True */ && !node.name && !((_a = node.emitNode) == null ? void 0 : _a.classThis)) {\n          facts |= 2 /* NeedsClassConstructorReference */;\n        }\n        if (isPropertyDeclaration(member) || isClassStaticBlockDeclaration(member)) {\n          if (shouldTransformThisInStaticInitializers && member.transformFlags & 16384 /* ContainsLexicalThis */) {\n            facts |= 8 /* NeedsSubstitutionForThisInClassStaticField */;\n            if (!(facts & 1 /* ClassWasDecorated */)) {\n              facts |= 2 /* NeedsClassConstructorReference */;\n            }\n          }\n          if (shouldTransformSuperInStaticInitializers && member.transformFlags & 134217728 /* ContainsLexicalSuper */) {\n            if (!(facts & 1 /* ClassWasDecorated */)) {\n              facts |= 2 /* NeedsClassConstructorReference */ | 4 /* NeedsClassSuperReference */;\n            }\n          }\n        }\n      } else if (!hasAbstractModifier(getOriginalNode(member))) {\n        if (isAutoAccessorPropertyDeclaration(member)) {\n          containsInstanceAutoAccessors = true;\n          containsInstancePrivateElements || (containsInstancePrivateElements = isPrivateIdentifierClassElementDeclaration(member));\n        } else if (isPrivateIdentifierClassElementDeclaration(member)) {\n          containsInstancePrivateElements = true;\n          if (resolver.hasNodeCheckFlag(member, 262144 /* ContainsConstructorReference */)) {\n            facts |= 2 /* NeedsClassConstructorReference */;\n          }\n        } else if (isPropertyDeclaration(member)) {\n          containsPublicInstanceFields = true;\n          containsInitializedPublicInstanceFields || (containsInitializedPublicInstanceFields = !!member.initializer);\n        }\n      }\n    }\n    const willHoistInitializersToConstructor = shouldTransformInitializersUsingDefine && containsPublicInstanceFields || shouldTransformInitializersUsingSet && containsInitializedPublicInstanceFields || shouldTransformPrivateElementsOrClassStaticBlocks && containsInstancePrivateElements || shouldTransformPrivateElementsOrClassStaticBlocks && containsInstanceAutoAccessors && shouldTransformAutoAccessors === -1 /* True */;\n    if (willHoistInitializersToConstructor) {\n      facts |= 16 /* WillHoistInitializersToConstructor */;\n    }\n    return facts;\n  }\n  function visitExpressionWithTypeArgumentsInHeritageClause(node) {\n    var _a;\n    const facts = ((_a = lexicalEnvironment == null ? void 0 : lexicalEnvironment.data) == null ? void 0 : _a.facts) || 0 /* None */;\n    if (facts & 4 /* NeedsClassSuperReference */) {\n      const temp = factory2.createTempVariable(\n        hoistVariableDeclaration,\n        /*reservedInNestedScopes*/\n        true\n      );\n      getClassLexicalEnvironment().superClassReference = temp;\n      return factory2.updateExpressionWithTypeArguments(\n        node,\n        factory2.createAssignment(\n          temp,\n          visitNode(node.expression, visitor, isExpression)\n        ),\n        /*typeArguments*/\n        void 0\n      );\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitInNewClassLexicalEnvironment(node, visitor2) {\n    var _a;\n    const savedCurrentClassContainer = currentClassContainer;\n    const savedPendingExpressions = pendingExpressions;\n    const savedLexicalEnvironment = lexicalEnvironment;\n    currentClassContainer = node;\n    pendingExpressions = void 0;\n    startClassLexicalEnvironment();\n    const shouldAlwaysTransformPrivateStaticElements = getInternalEmitFlags(node) & 32 /* TransformPrivateStaticElements */;\n    if (shouldTransformPrivateElementsOrClassStaticBlocks || shouldAlwaysTransformPrivateStaticElements) {\n      const name = getNameOfDeclaration(node);\n      if (name && isIdentifier(name)) {\n        getPrivateIdentifierEnvironment().data.className = name;\n      } else if ((_a = node.emitNode) == null ? void 0 : _a.assignedName) {\n        if (isStringLiteral(node.emitNode.assignedName)) {\n          if (node.emitNode.assignedName.textSourceNode && isIdentifier(node.emitNode.assignedName.textSourceNode)) {\n            getPrivateIdentifierEnvironment().data.className = node.emitNode.assignedName.textSourceNode;\n          } else if (isIdentifierText(node.emitNode.assignedName.text, languageVersion)) {\n            const prefixName = factory2.createIdentifier(node.emitNode.assignedName.text);\n            getPrivateIdentifierEnvironment().data.className = prefixName;\n          }\n        }\n      }\n    }\n    if (shouldTransformPrivateElementsOrClassStaticBlocks) {\n      const privateInstanceMethodsAndAccessors = getPrivateInstanceMethodsAndAccessors(node);\n      if (some(privateInstanceMethodsAndAccessors)) {\n        getPrivateIdentifierEnvironment().data.weakSetName = createHoistedVariableForClass(\n          \"instances\",\n          privateInstanceMethodsAndAccessors[0].name\n        );\n      }\n    }\n    const facts = getClassFacts(node);\n    if (facts) {\n      getClassLexicalEnvironment().facts = facts;\n    }\n    if (facts & 8 /* NeedsSubstitutionForThisInClassStaticField */) {\n      enableSubstitutionForClassStaticThisOrSuperReference();\n    }\n    const result = visitor2(node, facts);\n    endClassLexicalEnvironment();\n    Debug.assert(lexicalEnvironment === savedLexicalEnvironment);\n    currentClassContainer = savedCurrentClassContainer;\n    pendingExpressions = savedPendingExpressions;\n    return result;\n  }\n  function visitClassDeclaration(node) {\n    return visitInNewClassLexicalEnvironment(node, visitClassDeclarationInNewClassLexicalEnvironment);\n  }\n  function visitClassDeclarationInNewClassLexicalEnvironment(node, facts) {\n    var _a, _b;\n    let pendingClassReferenceAssignment;\n    if (facts & 2 /* NeedsClassConstructorReference */) {\n      if (shouldTransformPrivateElementsOrClassStaticBlocks && ((_a = node.emitNode) == null ? void 0 : _a.classThis)) {\n        getClassLexicalEnvironment().classConstructor = node.emitNode.classThis;\n        pendingClassReferenceAssignment = factory2.createAssignment(node.emitNode.classThis, factory2.getInternalName(node));\n      } else {\n        const temp = factory2.createTempVariable(\n          hoistVariableDeclaration,\n          /*reservedInNestedScopes*/\n          true\n        );\n        getClassLexicalEnvironment().classConstructor = factory2.cloneNode(temp);\n        pendingClassReferenceAssignment = factory2.createAssignment(temp, factory2.getInternalName(node));\n      }\n    }\n    if ((_b = node.emitNode) == null ? void 0 : _b.classThis) {\n      getClassLexicalEnvironment().classThis = node.emitNode.classThis;\n    }\n    const isClassWithConstructorReference = resolver.hasNodeCheckFlag(node, 262144 /* ContainsConstructorReference */);\n    const isExport = hasSyntacticModifier(node, 32 /* Export */);\n    const isDefault = hasSyntacticModifier(node, 2048 /* Default */);\n    let modifiers = visitNodes2(node.modifiers, modifierVisitor, isModifier);\n    const heritageClauses = visitNodes2(node.heritageClauses, heritageClauseVisitor, isHeritageClause);\n    const { members, prologue } = transformClassMembers(node);\n    const statements = [];\n    if (pendingClassReferenceAssignment) {\n      getPendingExpressions().unshift(pendingClassReferenceAssignment);\n    }\n    if (some(pendingExpressions)) {\n      statements.push(factory2.createExpressionStatement(factory2.inlineExpressions(pendingExpressions)));\n    }\n    if (shouldTransformInitializersUsingSet || shouldTransformPrivateElementsOrClassStaticBlocks || getInternalEmitFlags(node) & 32 /* TransformPrivateStaticElements */) {\n      const staticProperties = getStaticPropertiesAndClassStaticBlock(node);\n      if (some(staticProperties)) {\n        addPropertyOrClassStaticBlockStatements(statements, staticProperties, factory2.getInternalName(node));\n      }\n    }\n    if (statements.length > 0 && isExport && isDefault) {\n      modifiers = visitNodes2(modifiers, (node2) => isExportOrDefaultModifier(node2) ? void 0 : node2, isModifier);\n      statements.push(factory2.createExportAssignment(\n        /*modifiers*/\n        void 0,\n        /*isExportEquals*/\n        false,\n        factory2.getLocalName(\n          node,\n          /*allowComments*/\n          false,\n          /*allowSourceMaps*/\n          true\n        )\n      ));\n    }\n    const alias = getClassLexicalEnvironment().classConstructor;\n    if (isClassWithConstructorReference && alias) {\n      enableSubstitutionForClassAliases();\n      classAliases[getOriginalNodeId(node)] = alias;\n    }\n    const classDecl = factory2.updateClassDeclaration(\n      node,\n      modifiers,\n      node.name,\n      /*typeParameters*/\n      void 0,\n      heritageClauses,\n      members\n    );\n    statements.unshift(classDecl);\n    if (prologue) {\n      statements.unshift(factory2.createExpressionStatement(prologue));\n    }\n    return statements;\n  }\n  function visitClassExpression(node) {\n    return visitInNewClassLexicalEnvironment(node, visitClassExpressionInNewClassLexicalEnvironment);\n  }\n  function visitClassExpressionInNewClassLexicalEnvironment(node, facts) {\n    var _a, _b, _c;\n    const isDecoratedClassDeclaration = !!(facts & 1 /* ClassWasDecorated */);\n    const staticPropertiesOrClassStaticBlocks = getStaticPropertiesAndClassStaticBlock(node);\n    const isClassWithConstructorReference = resolver.hasNodeCheckFlag(node, 262144 /* ContainsConstructorReference */);\n    const requiresBlockScopedVar = resolver.hasNodeCheckFlag(node, 32768 /* BlockScopedBindingInLoop */);\n    let temp;\n    function createClassTempVar() {\n      var _a2;\n      if (shouldTransformPrivateElementsOrClassStaticBlocks && ((_a2 = node.emitNode) == null ? void 0 : _a2.classThis)) {\n        return getClassLexicalEnvironment().classConstructor = node.emitNode.classThis;\n      }\n      const temp2 = factory2.createTempVariable(\n        requiresBlockScopedVar ? addBlockScopedVariable : hoistVariableDeclaration,\n        /*reservedInNestedScopes*/\n        true\n      );\n      getClassLexicalEnvironment().classConstructor = factory2.cloneNode(temp2);\n      return temp2;\n    }\n    if ((_a = node.emitNode) == null ? void 0 : _a.classThis) {\n      getClassLexicalEnvironment().classThis = node.emitNode.classThis;\n    }\n    if (facts & 2 /* NeedsClassConstructorReference */) {\n      temp ?? (temp = createClassTempVar());\n    }\n    const modifiers = visitNodes2(node.modifiers, modifierVisitor, isModifier);\n    const heritageClauses = visitNodes2(node.heritageClauses, heritageClauseVisitor, isHeritageClause);\n    const { members, prologue } = transformClassMembers(node);\n    const classExpression = factory2.updateClassExpression(\n      node,\n      modifiers,\n      node.name,\n      /*typeParameters*/\n      void 0,\n      heritageClauses,\n      members\n    );\n    const expressions = [];\n    if (prologue) {\n      expressions.push(prologue);\n    }\n    const hasTransformableStatics = (shouldTransformPrivateElementsOrClassStaticBlocks || getInternalEmitFlags(node) & 32 /* TransformPrivateStaticElements */) && some(staticPropertiesOrClassStaticBlocks, (node2) => isClassStaticBlockDeclaration(node2) || isPrivateIdentifierClassElementDeclaration(node2) || shouldTransformInitializers && isInitializedProperty(node2));\n    if (hasTransformableStatics || some(pendingExpressions)) {\n      if (isDecoratedClassDeclaration) {\n        Debug.assertIsDefined(pendingStatements, \"Decorated classes transformed by TypeScript are expected to be within a variable declaration.\");\n        if (some(pendingExpressions)) {\n          addRange(pendingStatements, map(pendingExpressions, factory2.createExpressionStatement));\n        }\n        if (some(staticPropertiesOrClassStaticBlocks)) {\n          addPropertyOrClassStaticBlockStatements(pendingStatements, staticPropertiesOrClassStaticBlocks, ((_b = node.emitNode) == null ? void 0 : _b.classThis) ?? factory2.getInternalName(node));\n        }\n        if (temp) {\n          expressions.push(factory2.createAssignment(temp, classExpression));\n        } else if (shouldTransformPrivateElementsOrClassStaticBlocks && ((_c = node.emitNode) == null ? void 0 : _c.classThis)) {\n          expressions.push(factory2.createAssignment(node.emitNode.classThis, classExpression));\n        } else {\n          expressions.push(classExpression);\n        }\n      } else {\n        temp ?? (temp = createClassTempVar());\n        if (isClassWithConstructorReference) {\n          enableSubstitutionForClassAliases();\n          const alias = factory2.cloneNode(temp);\n          alias.emitNode.autoGenerate.flags &= ~8 /* ReservedInNestedScopes */;\n          classAliases[getOriginalNodeId(node)] = alias;\n        }\n        expressions.push(factory2.createAssignment(temp, classExpression));\n        addRange(expressions, pendingExpressions);\n        addRange(expressions, generateInitializedPropertyExpressionsOrClassStaticBlock(staticPropertiesOrClassStaticBlocks, temp));\n        expressions.push(factory2.cloneNode(temp));\n      }\n    } else {\n      expressions.push(classExpression);\n    }\n    if (expressions.length > 1) {\n      addEmitFlags(classExpression, 131072 /* Indented */);\n      expressions.forEach(startOnNewLine);\n    }\n    return factory2.inlineExpressions(expressions);\n  }\n  function visitClassStaticBlockDeclaration(node) {\n    if (!shouldTransformPrivateElementsOrClassStaticBlocks) {\n      return visitEachChild(node, visitor, context);\n    }\n    return void 0;\n  }\n  function visitThisExpression(node) {\n    if (shouldTransformThisInStaticInitializers && currentClassElement && isClassStaticBlockDeclaration(currentClassElement) && (lexicalEnvironment == null ? void 0 : lexicalEnvironment.data)) {\n      const { classThis, classConstructor } = lexicalEnvironment.data;\n      return classThis ?? classConstructor ?? node;\n    }\n    return node;\n  }\n  function transformClassMembers(node) {\n    const shouldTransformPrivateStaticElementsInClass = !!(getInternalEmitFlags(node) & 32 /* TransformPrivateStaticElements */);\n    if (shouldTransformPrivateElementsOrClassStaticBlocks || shouldTransformPrivateStaticElementsInFile) {\n      for (const member of node.members) {\n        if (isPrivateIdentifierClassElementDeclaration(member)) {\n          if (shouldTransformClassElementToWeakMap(member)) {\n            addPrivateIdentifierToEnvironment(member, member.name, addPrivateIdentifierClassElementToEnvironment);\n          } else {\n            const privateEnv = getPrivateIdentifierEnvironment();\n            setPrivateIdentifier(privateEnv, member.name, { kind: \"untransformed\" });\n          }\n        }\n      }\n      if (shouldTransformPrivateElementsOrClassStaticBlocks) {\n        if (some(getPrivateInstanceMethodsAndAccessors(node))) {\n          createBrandCheckWeakSetForPrivateMethods();\n        }\n      }\n      if (shouldTransformAutoAccessorsInCurrentClass()) {\n        for (const member of node.members) {\n          if (isAutoAccessorPropertyDeclaration(member)) {\n            const storageName = factory2.getGeneratedPrivateNameForNode(\n              member.name,\n              /*prefix*/\n              void 0,\n              \"_accessor_storage\"\n            );\n            if (shouldTransformPrivateElementsOrClassStaticBlocks || shouldTransformPrivateStaticElementsInClass && hasStaticModifier(member)) {\n              addPrivateIdentifierToEnvironment(member, storageName, addPrivateIdentifierPropertyDeclarationToEnvironment);\n            } else {\n              const privateEnv = getPrivateIdentifierEnvironment();\n              setPrivateIdentifier(privateEnv, storageName, { kind: \"untransformed\" });\n            }\n          }\n        }\n      }\n    }\n    let members = visitNodes2(node.members, classElementVisitor, isClassElement);\n    let syntheticConstructor;\n    if (!some(members, isConstructorDeclaration)) {\n      syntheticConstructor = transformConstructor(\n        /*constructor*/\n        void 0,\n        node\n      );\n    }\n    let prologue;\n    let syntheticStaticBlock;\n    if (!shouldTransformPrivateElementsOrClassStaticBlocks && some(pendingExpressions)) {\n      let statement = factory2.createExpressionStatement(factory2.inlineExpressions(pendingExpressions));\n      if (statement.transformFlags & 134234112 /* ContainsLexicalThisOrSuper */) {\n        const temp = factory2.createTempVariable(hoistVariableDeclaration);\n        const arrow = factory2.createArrowFunction(\n          /*modifiers*/\n          void 0,\n          /*typeParameters*/\n          void 0,\n          /*parameters*/\n          [],\n          /*type*/\n          void 0,\n          /*equalsGreaterThanToken*/\n          void 0,\n          factory2.createBlock([statement])\n        );\n        prologue = factory2.createAssignment(temp, arrow);\n        statement = factory2.createExpressionStatement(factory2.createCallExpression(\n          temp,\n          /*typeArguments*/\n          void 0,\n          []\n        ));\n      }\n      const block = factory2.createBlock([statement]);\n      syntheticStaticBlock = factory2.createClassStaticBlockDeclaration(block);\n      pendingExpressions = void 0;\n    }\n    if (syntheticConstructor || syntheticStaticBlock) {\n      let membersArray;\n      const classThisAssignmentBlock = find(members, isClassThisAssignmentBlock);\n      const classNamedEvaluationHelperBlock = find(members, isClassNamedEvaluationHelperBlock);\n      membersArray = append(membersArray, classThisAssignmentBlock);\n      membersArray = append(membersArray, classNamedEvaluationHelperBlock);\n      membersArray = append(membersArray, syntheticConstructor);\n      membersArray = append(membersArray, syntheticStaticBlock);\n      const remainingMembers = classThisAssignmentBlock || classNamedEvaluationHelperBlock ? filter(members, (member) => member !== classThisAssignmentBlock && member !== classNamedEvaluationHelperBlock) : members;\n      membersArray = addRange(membersArray, remainingMembers);\n      members = setTextRange(\n        factory2.createNodeArray(membersArray),\n        /*location*/\n        node.members\n      );\n    }\n    return { members, prologue };\n  }\n  function createBrandCheckWeakSetForPrivateMethods() {\n    const { weakSetName } = getPrivateIdentifierEnvironment().data;\n    Debug.assert(weakSetName, \"weakSetName should be set in private identifier environment\");\n    getPendingExpressions().push(\n      factory2.createAssignment(\n        weakSetName,\n        factory2.createNewExpression(\n          factory2.createIdentifier(\"WeakSet\"),\n          /*typeArguments*/\n          void 0,\n          []\n        )\n      )\n    );\n  }\n  function transformConstructor(constructor, container) {\n    constructor = visitNode(constructor, visitor, isConstructorDeclaration);\n    if (!(lexicalEnvironment == null ? void 0 : lexicalEnvironment.data) || !(lexicalEnvironment.data.facts & 16 /* WillHoistInitializersToConstructor */)) {\n      return constructor;\n    }\n    const extendsClauseElement = getEffectiveBaseTypeNode(container);\n    const isDerivedClass = !!(extendsClauseElement && skipOuterExpressions(extendsClauseElement.expression).kind !== 106 /* NullKeyword */);\n    const parameters = visitParameterList(constructor ? constructor.parameters : void 0, visitor, context);\n    const body = transformConstructorBody(container, constructor, isDerivedClass);\n    if (!body) {\n      return constructor;\n    }\n    if (constructor) {\n      Debug.assert(parameters);\n      return factory2.updateConstructorDeclaration(\n        constructor,\n        /*modifiers*/\n        void 0,\n        parameters,\n        body\n      );\n    }\n    return startOnNewLine(\n      setOriginalNode(\n        setTextRange(\n          factory2.createConstructorDeclaration(\n            /*modifiers*/\n            void 0,\n            parameters ?? [],\n            body\n          ),\n          constructor || container\n        ),\n        constructor\n      )\n    );\n  }\n  function transformConstructorBodyWorker(statementsOut, statementsIn, statementOffset, superPath, superPathDepth, initializerStatements, constructor) {\n    const superStatementIndex = superPath[superPathDepth];\n    const superStatement = statementsIn[superStatementIndex];\n    addRange(statementsOut, visitNodes2(statementsIn, visitor, isStatement, statementOffset, superStatementIndex - statementOffset));\n    statementOffset = superStatementIndex + 1;\n    if (isTryStatement(superStatement)) {\n      const tryBlockStatements = [];\n      transformConstructorBodyWorker(\n        tryBlockStatements,\n        superStatement.tryBlock.statements,\n        /*statementOffset*/\n        0,\n        superPath,\n        superPathDepth + 1,\n        initializerStatements,\n        constructor\n      );\n      const tryBlockStatementsArray = factory2.createNodeArray(tryBlockStatements);\n      setTextRange(tryBlockStatementsArray, superStatement.tryBlock.statements);\n      statementsOut.push(factory2.updateTryStatement(\n        superStatement,\n        factory2.updateBlock(superStatement.tryBlock, tryBlockStatements),\n        visitNode(superStatement.catchClause, visitor, isCatchClause),\n        visitNode(superStatement.finallyBlock, visitor, isBlock)\n      ));\n    } else {\n      addRange(statementsOut, visitNodes2(statementsIn, visitor, isStatement, superStatementIndex, 1));\n      while (statementOffset < statementsIn.length) {\n        const statement = statementsIn[statementOffset];\n        if (isParameterPropertyDeclaration(getOriginalNode(statement), constructor)) {\n          statementOffset++;\n        } else {\n          break;\n        }\n      }\n      addRange(statementsOut, initializerStatements);\n    }\n    addRange(statementsOut, visitNodes2(statementsIn, visitor, isStatement, statementOffset));\n  }\n  function transformConstructorBody(node, constructor, isDerivedClass) {\n    var _a;\n    const instanceProperties = getProperties(\n      node,\n      /*requireInitializer*/\n      false,\n      /*isStatic*/\n      false\n    );\n    let properties = instanceProperties;\n    if (!useDefineForClassFields) {\n      properties = filter(properties, (property) => !!property.initializer || isPrivateIdentifier(property.name) || hasAccessorModifier(property));\n    }\n    const privateMethodsAndAccessors = getPrivateInstanceMethodsAndAccessors(node);\n    const needsConstructorBody = some(properties) || some(privateMethodsAndAccessors);\n    if (!constructor && !needsConstructorBody) {\n      return visitFunctionBody(\n        /*node*/\n        void 0,\n        visitor,\n        context\n      );\n    }\n    resumeLexicalEnvironment();\n    const needsSyntheticConstructor = !constructor && isDerivedClass;\n    let statementOffset = 0;\n    let statements = [];\n    const initializerStatements = [];\n    const receiver = factory2.createThis();\n    addInstanceMethodStatements(initializerStatements, privateMethodsAndAccessors, receiver);\n    if (constructor) {\n      const parameterProperties = filter(instanceProperties, (prop) => isParameterPropertyDeclaration(getOriginalNode(prop), constructor));\n      const nonParameterProperties = filter(properties, (prop) => !isParameterPropertyDeclaration(getOriginalNode(prop), constructor));\n      addPropertyOrClassStaticBlockStatements(initializerStatements, parameterProperties, receiver);\n      addPropertyOrClassStaticBlockStatements(initializerStatements, nonParameterProperties, receiver);\n    } else {\n      addPropertyOrClassStaticBlockStatements(initializerStatements, properties, receiver);\n    }\n    if (constructor == null ? void 0 : constructor.body) {\n      statementOffset = factory2.copyPrologue(\n        constructor.body.statements,\n        statements,\n        /*ensureUseStrict*/\n        false,\n        visitor\n      );\n      const superStatementIndices = findSuperStatementIndexPath(constructor.body.statements, statementOffset);\n      if (superStatementIndices.length) {\n        transformConstructorBodyWorker(\n          statements,\n          constructor.body.statements,\n          statementOffset,\n          superStatementIndices,\n          /*superPathDepth*/\n          0,\n          initializerStatements,\n          constructor\n        );\n      } else {\n        while (statementOffset < constructor.body.statements.length) {\n          const statement = constructor.body.statements[statementOffset];\n          if (isParameterPropertyDeclaration(getOriginalNode(statement), constructor)) {\n            statementOffset++;\n          } else {\n            break;\n          }\n        }\n        addRange(statements, initializerStatements);\n        addRange(statements, visitNodes2(constructor.body.statements, visitor, isStatement, statementOffset));\n      }\n    } else {\n      if (needsSyntheticConstructor) {\n        statements.push(\n          factory2.createExpressionStatement(\n            factory2.createCallExpression(\n              factory2.createSuper(),\n              /*typeArguments*/\n              void 0,\n              [factory2.createSpreadElement(factory2.createIdentifier(\"arguments\"))]\n            )\n          )\n        );\n      }\n      addRange(statements, initializerStatements);\n    }\n    statements = factory2.mergeLexicalEnvironment(statements, endLexicalEnvironment());\n    if (statements.length === 0 && !constructor) {\n      return void 0;\n    }\n    const multiLine = (constructor == null ? void 0 : constructor.body) && constructor.body.statements.length >= statements.length ? constructor.body.multiLine ?? statements.length > 0 : statements.length > 0;\n    return setTextRange(\n      factory2.createBlock(\n        setTextRange(\n          factory2.createNodeArray(statements),\n          /*location*/\n          ((_a = constructor == null ? void 0 : constructor.body) == null ? void 0 : _a.statements) ?? node.members\n        ),\n        multiLine\n      ),\n      /*location*/\n      constructor == null ? void 0 : constructor.body\n    );\n  }\n  function addPropertyOrClassStaticBlockStatements(statements, properties, receiver) {\n    for (const property of properties) {\n      if (isStatic(property) && !shouldTransformPrivateElementsOrClassStaticBlocks) {\n        continue;\n      }\n      const statement = transformPropertyOrClassStaticBlock(property, receiver);\n      if (!statement) {\n        continue;\n      }\n      statements.push(statement);\n    }\n  }\n  function transformPropertyOrClassStaticBlock(property, receiver) {\n    const expression = isClassStaticBlockDeclaration(property) ? setCurrentClassElementAnd(property, transformClassStaticBlockDeclaration, property) : transformProperty(property, receiver);\n    if (!expression) {\n      return void 0;\n    }\n    const statement = factory2.createExpressionStatement(expression);\n    setOriginalNode(statement, property);\n    addEmitFlags(statement, getEmitFlags(property) & 3072 /* NoComments */);\n    setCommentRange(statement, property);\n    const propertyOriginalNode = getOriginalNode(property);\n    if (isParameter(propertyOriginalNode)) {\n      setSourceMapRange(statement, propertyOriginalNode);\n      removeAllComments(statement);\n    } else {\n      setSourceMapRange(statement, moveRangePastModifiers(property));\n    }\n    setSyntheticLeadingComments(expression, void 0);\n    setSyntheticTrailingComments(expression, void 0);\n    if (hasAccessorModifier(propertyOriginalNode)) {\n      addEmitFlags(statement, 3072 /* NoComments */);\n    }\n    return statement;\n  }\n  function generateInitializedPropertyExpressionsOrClassStaticBlock(propertiesOrClassStaticBlocks, receiver) {\n    const expressions = [];\n    for (const property of propertiesOrClassStaticBlocks) {\n      const expression = isClassStaticBlockDeclaration(property) ? setCurrentClassElementAnd(property, transformClassStaticBlockDeclaration, property) : setCurrentClassElementAnd(\n        property,\n        () => transformProperty(property, receiver),\n        /*arg*/\n        void 0\n      );\n      if (!expression) {\n        continue;\n      }\n      startOnNewLine(expression);\n      setOriginalNode(expression, property);\n      addEmitFlags(expression, getEmitFlags(property) & 3072 /* NoComments */);\n      setSourceMapRange(expression, moveRangePastModifiers(property));\n      setCommentRange(expression, property);\n      expressions.push(expression);\n    }\n    return expressions;\n  }\n  function transformProperty(property, receiver) {\n    var _a;\n    const savedCurrentClassElement = currentClassElement;\n    const transformed = transformPropertyWorker(property, receiver);\n    if (transformed && hasStaticModifier(property) && ((_a = lexicalEnvironment == null ? void 0 : lexicalEnvironment.data) == null ? void 0 : _a.facts)) {\n      setOriginalNode(transformed, property);\n      addEmitFlags(transformed, 4 /* AdviseOnEmitNode */);\n      setSourceMapRange(transformed, getSourceMapRange(property.name));\n      lexicalEnvironmentMap.set(getOriginalNode(property), lexicalEnvironment);\n    }\n    currentClassElement = savedCurrentClassElement;\n    return transformed;\n  }\n  function transformPropertyWorker(property, receiver) {\n    const emitAssignment = !useDefineForClassFields;\n    if (isNamedEvaluation(property, isAnonymousClassNeedingAssignedName)) {\n      property = transformNamedEvaluation(context, property);\n    }\n    const propertyName = hasAccessorModifier(property) ? factory2.getGeneratedPrivateNameForNode(property.name) : isComputedPropertyName(property.name) && !isSimpleInlineableExpression(property.name.expression) ? factory2.updateComputedPropertyName(property.name, factory2.getGeneratedNameForNode(property.name)) : property.name;\n    if (hasStaticModifier(property)) {\n      currentClassElement = property;\n    }\n    if (isPrivateIdentifier(propertyName) && shouldTransformClassElementToWeakMap(property)) {\n      const privateIdentifierInfo = accessPrivateIdentifier2(propertyName);\n      if (privateIdentifierInfo) {\n        if (privateIdentifierInfo.kind === \"f\" /* Field */) {\n          if (!privateIdentifierInfo.isStatic) {\n            return createPrivateInstanceFieldInitializer(\n              factory2,\n              receiver,\n              visitNode(property.initializer, visitor, isExpression),\n              privateIdentifierInfo.brandCheckIdentifier\n            );\n          } else {\n            return createPrivateStaticFieldInitializer(\n              factory2,\n              privateIdentifierInfo.variableName,\n              visitNode(property.initializer, visitor, isExpression)\n            );\n          }\n        } else {\n          return void 0;\n        }\n      } else {\n        Debug.fail(\"Undeclared private name for property declaration.\");\n      }\n    }\n    if ((isPrivateIdentifier(propertyName) || hasStaticModifier(property)) && !property.initializer) {\n      return void 0;\n    }\n    const propertyOriginalNode = getOriginalNode(property);\n    if (hasSyntacticModifier(propertyOriginalNode, 64 /* Abstract */)) {\n      return void 0;\n    }\n    let initializer = visitNode(property.initializer, visitor, isExpression);\n    if (isParameterPropertyDeclaration(propertyOriginalNode, propertyOriginalNode.parent) && isIdentifier(propertyName)) {\n      const localName = factory2.cloneNode(propertyName);\n      if (initializer) {\n        if (isParenthesizedExpression(initializer) && isCommaExpression(initializer.expression) && isCallToHelper(initializer.expression.left, \"___runInitializers\") && isVoidExpression(initializer.expression.right) && isNumericLiteral(initializer.expression.right.expression)) {\n          initializer = initializer.expression.left;\n        }\n        initializer = factory2.inlineExpressions([initializer, localName]);\n      } else {\n        initializer = localName;\n      }\n      setEmitFlags(propertyName, 3072 /* NoComments */ | 96 /* NoSourceMap */);\n      setSourceMapRange(localName, propertyOriginalNode.name);\n      setEmitFlags(localName, 3072 /* NoComments */);\n    } else {\n      initializer ?? (initializer = factory2.createVoidZero());\n    }\n    if (emitAssignment || isPrivateIdentifier(propertyName)) {\n      const memberAccess = createMemberAccessForPropertyName(\n        factory2,\n        receiver,\n        propertyName,\n        /*location*/\n        propertyName\n      );\n      addEmitFlags(memberAccess, 1024 /* NoLeadingComments */);\n      const expression = factory2.createAssignment(memberAccess, initializer);\n      return expression;\n    } else {\n      const name = isComputedPropertyName(propertyName) ? propertyName.expression : isIdentifier(propertyName) ? factory2.createStringLiteral(unescapeLeadingUnderscores(propertyName.escapedText)) : propertyName;\n      const descriptor = factory2.createPropertyDescriptor({ value: initializer, configurable: true, writable: true, enumerable: true });\n      return factory2.createObjectDefinePropertyCall(receiver, name, descriptor);\n    }\n  }\n  function enableSubstitutionForClassAliases() {\n    if ((enabledSubstitutions & 1 /* ClassAliases */) === 0) {\n      enabledSubstitutions |= 1 /* ClassAliases */;\n      context.enableSubstitution(80 /* Identifier */);\n      classAliases = [];\n    }\n  }\n  function enableSubstitutionForClassStaticThisOrSuperReference() {\n    if ((enabledSubstitutions & 2 /* ClassStaticThisOrSuperReference */) === 0) {\n      enabledSubstitutions |= 2 /* ClassStaticThisOrSuperReference */;\n      context.enableSubstitution(110 /* ThisKeyword */);\n      context.enableEmitNotification(263 /* FunctionDeclaration */);\n      context.enableEmitNotification(219 /* FunctionExpression */);\n      context.enableEmitNotification(177 /* Constructor */);\n      context.enableEmitNotification(178 /* GetAccessor */);\n      context.enableEmitNotification(179 /* SetAccessor */);\n      context.enableEmitNotification(175 /* MethodDeclaration */);\n      context.enableEmitNotification(173 /* PropertyDeclaration */);\n      context.enableEmitNotification(168 /* ComputedPropertyName */);\n    }\n  }\n  function addInstanceMethodStatements(statements, methods, receiver) {\n    if (!shouldTransformPrivateElementsOrClassStaticBlocks || !some(methods)) {\n      return;\n    }\n    const { weakSetName } = getPrivateIdentifierEnvironment().data;\n    Debug.assert(weakSetName, \"weakSetName should be set in private identifier environment\");\n    statements.push(\n      factory2.createExpressionStatement(\n        createPrivateInstanceMethodInitializer(factory2, receiver, weakSetName)\n      )\n    );\n  }\n  function visitInvalidSuperProperty(node) {\n    return isPropertyAccessExpression(node) ? factory2.updatePropertyAccessExpression(\n      node,\n      factory2.createVoidZero(),\n      node.name\n    ) : factory2.updateElementAccessExpression(\n      node,\n      factory2.createVoidZero(),\n      visitNode(node.argumentExpression, visitor, isExpression)\n    );\n  }\n  function getPropertyNameExpressionIfNeeded(name, shouldHoist) {\n    if (isComputedPropertyName(name)) {\n      const cacheAssignment = findComputedPropertyNameCacheAssignment(name);\n      const expression = visitNode(name.expression, visitor, isExpression);\n      const innerExpression = skipPartiallyEmittedExpressions(expression);\n      const inlinable = isSimpleInlineableExpression(innerExpression);\n      const alreadyTransformed = !!cacheAssignment || isAssignmentExpression(innerExpression) && isGeneratedIdentifier(innerExpression.left);\n      if (!alreadyTransformed && !inlinable && shouldHoist) {\n        const generatedName = factory2.getGeneratedNameForNode(name);\n        if (resolver.hasNodeCheckFlag(name, 32768 /* BlockScopedBindingInLoop */)) {\n          addBlockScopedVariable(generatedName);\n        } else {\n          hoistVariableDeclaration(generatedName);\n        }\n        return factory2.createAssignment(generatedName, expression);\n      }\n      return inlinable || isIdentifier(innerExpression) ? void 0 : expression;\n    }\n  }\n  function startClassLexicalEnvironment() {\n    lexicalEnvironment = { previous: lexicalEnvironment, data: void 0 };\n  }\n  function endClassLexicalEnvironment() {\n    lexicalEnvironment = lexicalEnvironment == null ? void 0 : lexicalEnvironment.previous;\n  }\n  function getClassLexicalEnvironment() {\n    Debug.assert(lexicalEnvironment);\n    return lexicalEnvironment.data ?? (lexicalEnvironment.data = {\n      facts: 0 /* None */,\n      classConstructor: void 0,\n      classThis: void 0,\n      superClassReference: void 0\n      // privateIdentifierEnvironment: undefined,\n    });\n  }\n  function getPrivateIdentifierEnvironment() {\n    Debug.assert(lexicalEnvironment);\n    return lexicalEnvironment.privateEnv ?? (lexicalEnvironment.privateEnv = newPrivateEnvironment({\n      className: void 0,\n      weakSetName: void 0\n    }));\n  }\n  function getPendingExpressions() {\n    return pendingExpressions ?? (pendingExpressions = []);\n  }\n  function addPrivateIdentifierClassElementToEnvironment(node, name, lex, privateEnv, isStatic2, isValid, previousInfo) {\n    if (isAutoAccessorPropertyDeclaration(node)) {\n      addPrivateIdentifierAutoAccessorPropertyDeclarationToEnvironment(node, name, lex, privateEnv, isStatic2, isValid, previousInfo);\n    } else if (isPropertyDeclaration(node)) {\n      addPrivateIdentifierPropertyDeclarationToEnvironment(node, name, lex, privateEnv, isStatic2, isValid, previousInfo);\n    } else if (isMethodDeclaration(node)) {\n      addPrivateIdentifierMethodDeclarationToEnvironment(node, name, lex, privateEnv, isStatic2, isValid, previousInfo);\n    } else if (isGetAccessorDeclaration(node)) {\n      addPrivateIdentifierGetAccessorDeclarationToEnvironment(node, name, lex, privateEnv, isStatic2, isValid, previousInfo);\n    } else if (isSetAccessorDeclaration(node)) {\n      addPrivateIdentifierSetAccessorDeclarationToEnvironment(node, name, lex, privateEnv, isStatic2, isValid, previousInfo);\n    }\n  }\n  function addPrivateIdentifierPropertyDeclarationToEnvironment(_node, name, lex, privateEnv, isStatic2, isValid, _previousInfo) {\n    if (isStatic2) {\n      const brandCheckIdentifier = Debug.checkDefined(lex.classThis ?? lex.classConstructor, \"classConstructor should be set in private identifier environment\");\n      const variableName = createHoistedVariableForPrivateName(name);\n      setPrivateIdentifier(privateEnv, name, {\n        kind: \"f\" /* Field */,\n        isStatic: true,\n        brandCheckIdentifier,\n        variableName,\n        isValid\n      });\n    } else {\n      const weakMapName = createHoistedVariableForPrivateName(name);\n      setPrivateIdentifier(privateEnv, name, {\n        kind: \"f\" /* Field */,\n        isStatic: false,\n        brandCheckIdentifier: weakMapName,\n        isValid\n      });\n      getPendingExpressions().push(factory2.createAssignment(\n        weakMapName,\n        factory2.createNewExpression(\n          factory2.createIdentifier(\"WeakMap\"),\n          /*typeArguments*/\n          void 0,\n          []\n        )\n      ));\n    }\n  }\n  function addPrivateIdentifierMethodDeclarationToEnvironment(_node, name, lex, privateEnv, isStatic2, isValid, _previousInfo) {\n    const methodName = createHoistedVariableForPrivateName(name);\n    const brandCheckIdentifier = isStatic2 ? Debug.checkDefined(lex.classThis ?? lex.classConstructor, \"classConstructor should be set in private identifier environment\") : Debug.checkDefined(privateEnv.data.weakSetName, \"weakSetName should be set in private identifier environment\");\n    setPrivateIdentifier(privateEnv, name, {\n      kind: \"m\" /* Method */,\n      methodName,\n      brandCheckIdentifier,\n      isStatic: isStatic2,\n      isValid\n    });\n  }\n  function addPrivateIdentifierGetAccessorDeclarationToEnvironment(_node, name, lex, privateEnv, isStatic2, isValid, previousInfo) {\n    const getterName = createHoistedVariableForPrivateName(name, \"_get\");\n    const brandCheckIdentifier = isStatic2 ? Debug.checkDefined(lex.classThis ?? lex.classConstructor, \"classConstructor should be set in private identifier environment\") : Debug.checkDefined(privateEnv.data.weakSetName, \"weakSetName should be set in private identifier environment\");\n    if ((previousInfo == null ? void 0 : previousInfo.kind) === \"a\" /* Accessor */ && previousInfo.isStatic === isStatic2 && !previousInfo.getterName) {\n      previousInfo.getterName = getterName;\n    } else {\n      setPrivateIdentifier(privateEnv, name, {\n        kind: \"a\" /* Accessor */,\n        getterName,\n        setterName: void 0,\n        brandCheckIdentifier,\n        isStatic: isStatic2,\n        isValid\n      });\n    }\n  }\n  function addPrivateIdentifierSetAccessorDeclarationToEnvironment(_node, name, lex, privateEnv, isStatic2, isValid, previousInfo) {\n    const setterName = createHoistedVariableForPrivateName(name, \"_set\");\n    const brandCheckIdentifier = isStatic2 ? Debug.checkDefined(lex.classThis ?? lex.classConstructor, \"classConstructor should be set in private identifier environment\") : Debug.checkDefined(privateEnv.data.weakSetName, \"weakSetName should be set in private identifier environment\");\n    if ((previousInfo == null ? void 0 : previousInfo.kind) === \"a\" /* Accessor */ && previousInfo.isStatic === isStatic2 && !previousInfo.setterName) {\n      previousInfo.setterName = setterName;\n    } else {\n      setPrivateIdentifier(privateEnv, name, {\n        kind: \"a\" /* Accessor */,\n        getterName: void 0,\n        setterName,\n        brandCheckIdentifier,\n        isStatic: isStatic2,\n        isValid\n      });\n    }\n  }\n  function addPrivateIdentifierAutoAccessorPropertyDeclarationToEnvironment(_node, name, lex, privateEnv, isStatic2, isValid, _previousInfo) {\n    const getterName = createHoistedVariableForPrivateName(name, \"_get\");\n    const setterName = createHoistedVariableForPrivateName(name, \"_set\");\n    const brandCheckIdentifier = isStatic2 ? Debug.checkDefined(lex.classThis ?? lex.classConstructor, \"classConstructor should be set in private identifier environment\") : Debug.checkDefined(privateEnv.data.weakSetName, \"weakSetName should be set in private identifier environment\");\n    setPrivateIdentifier(privateEnv, name, {\n      kind: \"a\" /* Accessor */,\n      getterName,\n      setterName,\n      brandCheckIdentifier,\n      isStatic: isStatic2,\n      isValid\n    });\n  }\n  function addPrivateIdentifierToEnvironment(node, name, addDeclaration) {\n    const lex = getClassLexicalEnvironment();\n    const privateEnv = getPrivateIdentifierEnvironment();\n    const previousInfo = getPrivateIdentifier(privateEnv, name);\n    const isStatic2 = hasStaticModifier(node);\n    const isValid = !isReservedPrivateName(name) && previousInfo === void 0;\n    addDeclaration(node, name, lex, privateEnv, isStatic2, isValid, previousInfo);\n  }\n  function createHoistedVariableForClass(name, node, suffix) {\n    const { className } = getPrivateIdentifierEnvironment().data;\n    const prefix = className ? { prefix: \"_\", node: className, suffix: \"_\" } : \"_\";\n    const identifier = typeof name === \"object\" ? factory2.getGeneratedNameForNode(name, 16 /* Optimistic */ | 8 /* ReservedInNestedScopes */, prefix, suffix) : typeof name === \"string\" ? factory2.createUniqueName(name, 16 /* Optimistic */, prefix, suffix) : factory2.createTempVariable(\n      /*recordTempVariable*/\n      void 0,\n      /*reservedInNestedScopes*/\n      true,\n      prefix,\n      suffix\n    );\n    if (resolver.hasNodeCheckFlag(node, 32768 /* BlockScopedBindingInLoop */)) {\n      addBlockScopedVariable(identifier);\n    } else {\n      hoistVariableDeclaration(identifier);\n    }\n    return identifier;\n  }\n  function createHoistedVariableForPrivateName(name, suffix) {\n    const text = tryGetTextOfPropertyName(name);\n    return createHoistedVariableForClass((text == null ? void 0 : text.substring(1)) ?? name, name, suffix);\n  }\n  function accessPrivateIdentifier2(name) {\n    const info = accessPrivateIdentifier(lexicalEnvironment, name);\n    return (info == null ? void 0 : info.kind) === \"untransformed\" ? void 0 : info;\n  }\n  function wrapPrivateIdentifierForDestructuringTarget(node) {\n    const parameter = factory2.getGeneratedNameForNode(node);\n    const info = accessPrivateIdentifier2(node.name);\n    if (!info) {\n      return visitEachChild(node, visitor, context);\n    }\n    let receiver = node.expression;\n    if (isThisProperty(node) || isSuperProperty(node) || !isSimpleCopiableExpression(node.expression)) {\n      receiver = factory2.createTempVariable(\n        hoistVariableDeclaration,\n        /*reservedInNestedScopes*/\n        true\n      );\n      getPendingExpressions().push(factory2.createBinaryExpression(receiver, 64 /* EqualsToken */, visitNode(node.expression, visitor, isExpression)));\n    }\n    return factory2.createAssignmentTargetWrapper(\n      parameter,\n      createPrivateIdentifierAssignment(\n        info,\n        receiver,\n        parameter,\n        64 /* EqualsToken */\n      )\n    );\n  }\n  function visitDestructuringAssignmentTarget(node) {\n    if (isObjectLiteralExpression(node) || isArrayLiteralExpression(node)) {\n      return visitAssignmentPattern(node);\n    }\n    if (isPrivateIdentifierPropertyAccessExpression(node)) {\n      return wrapPrivateIdentifierForDestructuringTarget(node);\n    } else if (shouldTransformSuperInStaticInitializers && currentClassElement && isSuperProperty(node) && isStaticPropertyDeclarationOrClassStaticBlock(currentClassElement) && (lexicalEnvironment == null ? void 0 : lexicalEnvironment.data)) {\n      const { classConstructor, superClassReference, facts } = lexicalEnvironment.data;\n      if (facts & 1 /* ClassWasDecorated */) {\n        return visitInvalidSuperProperty(node);\n      } else if (classConstructor && superClassReference) {\n        const name = isElementAccessExpression(node) ? visitNode(node.argumentExpression, visitor, isExpression) : isIdentifier(node.name) ? factory2.createStringLiteralFromNode(node.name) : void 0;\n        if (name) {\n          const temp = factory2.createTempVariable(\n            /*recordTempVariable*/\n            void 0\n          );\n          return factory2.createAssignmentTargetWrapper(\n            temp,\n            factory2.createReflectSetCall(\n              superClassReference,\n              name,\n              temp,\n              classConstructor\n            )\n          );\n        }\n      }\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitAssignmentElement(node) {\n    if (isNamedEvaluation(node, isAnonymousClassNeedingAssignedName)) {\n      node = transformNamedEvaluation(context, node);\n    }\n    if (isAssignmentExpression(\n      node,\n      /*excludeCompoundAssignment*/\n      true\n    )) {\n      const left = visitDestructuringAssignmentTarget(node.left);\n      const right = visitNode(node.right, visitor, isExpression);\n      return factory2.updateBinaryExpression(node, left, node.operatorToken, right);\n    }\n    return visitDestructuringAssignmentTarget(node);\n  }\n  function visitAssignmentRestElement(node) {\n    if (isLeftHandSideExpression(node.expression)) {\n      const expression = visitDestructuringAssignmentTarget(node.expression);\n      return factory2.updateSpreadElement(node, expression);\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitArrayAssignmentElement(node) {\n    if (isArrayBindingOrAssignmentElement(node)) {\n      if (isSpreadElement(node)) return visitAssignmentRestElement(node);\n      if (!isOmittedExpression(node)) return visitAssignmentElement(node);\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitAssignmentProperty(node) {\n    const name = visitNode(node.name, visitor, isPropertyName);\n    if (isAssignmentExpression(\n      node.initializer,\n      /*excludeCompoundAssignment*/\n      true\n    )) {\n      const assignmentElement = visitAssignmentElement(node.initializer);\n      return factory2.updatePropertyAssignment(node, name, assignmentElement);\n    }\n    if (isLeftHandSideExpression(node.initializer)) {\n      const assignmentElement = visitDestructuringAssignmentTarget(node.initializer);\n      return factory2.updatePropertyAssignment(node, name, assignmentElement);\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitShorthandAssignmentProperty(node) {\n    if (isNamedEvaluation(node, isAnonymousClassNeedingAssignedName)) {\n      node = transformNamedEvaluation(context, node);\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitAssignmentRestProperty(node) {\n    if (isLeftHandSideExpression(node.expression)) {\n      const expression = visitDestructuringAssignmentTarget(node.expression);\n      return factory2.updateSpreadAssignment(node, expression);\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitObjectAssignmentElement(node) {\n    Debug.assertNode(node, isObjectBindingOrAssignmentElement);\n    if (isSpreadAssignment(node)) return visitAssignmentRestProperty(node);\n    if (isShorthandPropertyAssignment(node)) return visitShorthandAssignmentProperty(node);\n    if (isPropertyAssignment(node)) return visitAssignmentProperty(node);\n    return visitEachChild(node, visitor, context);\n  }\n  function visitAssignmentPattern(node) {\n    if (isArrayLiteralExpression(node)) {\n      return factory2.updateArrayLiteralExpression(\n        node,\n        visitNodes2(node.elements, visitArrayAssignmentElement, isExpression)\n      );\n    } else {\n      return factory2.updateObjectLiteralExpression(\n        node,\n        visitNodes2(node.properties, visitObjectAssignmentElement, isObjectLiteralElementLike)\n      );\n    }\n  }\n  function onEmitNode(hint, node, emitCallback) {\n    const original = getOriginalNode(node);\n    const lex = lexicalEnvironmentMap.get(original);\n    if (lex) {\n      const savedLexicalEnvironment = lexicalEnvironment;\n      const savedPreviousShouldSubstituteThisWithClassThis = previousShouldSubstituteThisWithClassThis;\n      lexicalEnvironment = lex;\n      previousShouldSubstituteThisWithClassThis = shouldSubstituteThisWithClassThis;\n      shouldSubstituteThisWithClassThis = !isClassStaticBlockDeclaration(original) || !(getInternalEmitFlags(original) & 32 /* TransformPrivateStaticElements */);\n      previousOnEmitNode(hint, node, emitCallback);\n      shouldSubstituteThisWithClassThis = previousShouldSubstituteThisWithClassThis;\n      previousShouldSubstituteThisWithClassThis = savedPreviousShouldSubstituteThisWithClassThis;\n      lexicalEnvironment = savedLexicalEnvironment;\n      return;\n    }\n    switch (node.kind) {\n      case 219 /* FunctionExpression */:\n        if (isArrowFunction(original) || getEmitFlags(node) & 524288 /* AsyncFunctionBody */) {\n          break;\n        }\n      // falls through\n      case 263 /* FunctionDeclaration */:\n      case 177 /* Constructor */:\n      case 178 /* GetAccessor */:\n      case 179 /* SetAccessor */:\n      case 175 /* MethodDeclaration */:\n      case 173 /* PropertyDeclaration */: {\n        const savedLexicalEnvironment = lexicalEnvironment;\n        const savedPreviousShouldSubstituteThisWithClassThis = previousShouldSubstituteThisWithClassThis;\n        lexicalEnvironment = void 0;\n        previousShouldSubstituteThisWithClassThis = shouldSubstituteThisWithClassThis;\n        shouldSubstituteThisWithClassThis = false;\n        previousOnEmitNode(hint, node, emitCallback);\n        shouldSubstituteThisWithClassThis = previousShouldSubstituteThisWithClassThis;\n        previousShouldSubstituteThisWithClassThis = savedPreviousShouldSubstituteThisWithClassThis;\n        lexicalEnvironment = savedLexicalEnvironment;\n        return;\n      }\n      case 168 /* ComputedPropertyName */: {\n        const savedLexicalEnvironment = lexicalEnvironment;\n        const savedShouldSubstituteThisWithClassThis = shouldSubstituteThisWithClassThis;\n        lexicalEnvironment = lexicalEnvironment == null ? void 0 : lexicalEnvironment.previous;\n        shouldSubstituteThisWithClassThis = previousShouldSubstituteThisWithClassThis;\n        previousOnEmitNode(hint, node, emitCallback);\n        shouldSubstituteThisWithClassThis = savedShouldSubstituteThisWithClassThis;\n        lexicalEnvironment = savedLexicalEnvironment;\n        return;\n      }\n    }\n    previousOnEmitNode(hint, node, emitCallback);\n  }\n  function onSubstituteNode(hint, node) {\n    node = previousOnSubstituteNode(hint, node);\n    if (hint === 1 /* Expression */) {\n      return substituteExpression(node);\n    }\n    return node;\n  }\n  function substituteExpression(node) {\n    switch (node.kind) {\n      case 80 /* Identifier */:\n        return substituteExpressionIdentifier(node);\n      case 110 /* ThisKeyword */:\n        return substituteThisExpression(node);\n    }\n    return node;\n  }\n  function substituteThisExpression(node) {\n    if (enabledSubstitutions & 2 /* ClassStaticThisOrSuperReference */ && (lexicalEnvironment == null ? void 0 : lexicalEnvironment.data) && !noSubstitution.has(node)) {\n      const { facts, classConstructor, classThis } = lexicalEnvironment.data;\n      const substituteThis = shouldSubstituteThisWithClassThis ? classThis ?? classConstructor : classConstructor;\n      if (substituteThis) {\n        return setTextRange(\n          setOriginalNode(\n            factory2.cloneNode(substituteThis),\n            node\n          ),\n          node\n        );\n      }\n      if (facts & 1 /* ClassWasDecorated */ && legacyDecorators) {\n        return factory2.createParenthesizedExpression(factory2.createVoidZero());\n      }\n    }\n    return node;\n  }\n  function substituteExpressionIdentifier(node) {\n    return trySubstituteClassAlias(node) || node;\n  }\n  function trySubstituteClassAlias(node) {\n    if (enabledSubstitutions & 1 /* ClassAliases */) {\n      if (resolver.hasNodeCheckFlag(node, 536870912 /* ConstructorReference */)) {\n        const declaration = resolver.getReferencedValueDeclaration(node);\n        if (declaration) {\n          const classAlias = classAliases[declaration.id];\n          if (classAlias) {\n            const clone2 = factory2.cloneNode(classAlias);\n            setSourceMapRange(clone2, node);\n            setCommentRange(clone2, node);\n            return clone2;\n          }\n        }\n      }\n    }\n    return void 0;\n  }\n}\nfunction createPrivateStaticFieldInitializer(factory2, variableName, initializer) {\n  return factory2.createAssignment(\n    variableName,\n    factory2.createObjectLiteralExpression([\n      factory2.createPropertyAssignment(\"value\", initializer || factory2.createVoidZero())\n    ])\n  );\n}\nfunction createPrivateInstanceFieldInitializer(factory2, receiver, initializer, weakMapName) {\n  return factory2.createCallExpression(\n    factory2.createPropertyAccessExpression(weakMapName, \"set\"),\n    /*typeArguments*/\n    void 0,\n    [receiver, initializer || factory2.createVoidZero()]\n  );\n}\nfunction createPrivateInstanceMethodInitializer(factory2, receiver, weakSetName) {\n  return factory2.createCallExpression(\n    factory2.createPropertyAccessExpression(weakSetName, \"add\"),\n    /*typeArguments*/\n    void 0,\n    [receiver]\n  );\n}\nfunction isReservedPrivateName(node) {\n  return !isGeneratedPrivateIdentifier(node) && node.escapedText === \"#constructor\";\n}\nfunction isPrivateIdentifierInExpression(node) {\n  return isPrivateIdentifier(node.left) && node.operatorToken.kind === 103 /* InKeyword */;\n}\nfunction isStaticPropertyDeclaration2(node) {\n  return isPropertyDeclaration(node) && hasStaticModifier(node);\n}\nfunction isStaticPropertyDeclarationOrClassStaticBlock(node) {\n  return isClassStaticBlockDeclaration(node) || isStaticPropertyDeclaration2(node);\n}\n\n// src/compiler/transformers/typeSerializer.ts\nfunction createRuntimeTypeSerializer(context) {\n  const {\n    factory: factory2,\n    hoistVariableDeclaration\n  } = context;\n  const resolver = context.getEmitResolver();\n  const compilerOptions = context.getCompilerOptions();\n  const languageVersion = getEmitScriptTarget(compilerOptions);\n  const strictNullChecks = getStrictOptionValue(compilerOptions, \"strictNullChecks\");\n  let currentLexicalScope;\n  let currentNameScope;\n  return {\n    serializeTypeNode: (serializerContext, node) => setSerializerContextAnd(serializerContext, serializeTypeNode, node),\n    serializeTypeOfNode: (serializerContext, node, container) => setSerializerContextAnd(serializerContext, serializeTypeOfNode, node, container),\n    serializeParameterTypesOfNode: (serializerContext, node, container) => setSerializerContextAnd(serializerContext, serializeParameterTypesOfNode, node, container),\n    serializeReturnTypeOfNode: (serializerContext, node) => setSerializerContextAnd(serializerContext, serializeReturnTypeOfNode, node)\n  };\n  function setSerializerContextAnd(serializerContext, cb, node, arg) {\n    const savedCurrentLexicalScope = currentLexicalScope;\n    const savedCurrentNameScope = currentNameScope;\n    currentLexicalScope = serializerContext.currentLexicalScope;\n    currentNameScope = serializerContext.currentNameScope;\n    const result = arg === void 0 ? cb(node) : cb(node, arg);\n    currentLexicalScope = savedCurrentLexicalScope;\n    currentNameScope = savedCurrentNameScope;\n    return result;\n  }\n  function getAccessorTypeNode(node, container) {\n    const accessors = getAllAccessorDeclarations(container.members, node);\n    return accessors.setAccessor && getSetAccessorTypeAnnotationNode(accessors.setAccessor) || accessors.getAccessor && getEffectiveReturnTypeNode(accessors.getAccessor);\n  }\n  function serializeTypeOfNode(node, container) {\n    switch (node.kind) {\n      case 173 /* PropertyDeclaration */:\n      case 170 /* Parameter */:\n        return serializeTypeNode(node.type);\n      case 179 /* SetAccessor */:\n      case 178 /* GetAccessor */:\n        return serializeTypeNode(getAccessorTypeNode(node, container));\n      case 264 /* ClassDeclaration */:\n      case 232 /* ClassExpression */:\n      case 175 /* MethodDeclaration */:\n        return factory2.createIdentifier(\"Function\");\n      default:\n        return factory2.createVoidZero();\n    }\n  }\n  function serializeParameterTypesOfNode(node, container) {\n    const valueDeclaration = isClassLike(node) ? getFirstConstructorWithBody(node) : isFunctionLike(node) && nodeIsPresent(node.body) ? node : void 0;\n    const expressions = [];\n    if (valueDeclaration) {\n      const parameters = getParametersOfDecoratedDeclaration(valueDeclaration, container);\n      const numParameters = parameters.length;\n      for (let i = 0; i < numParameters; i++) {\n        const parameter = parameters[i];\n        if (i === 0 && isIdentifier(parameter.name) && parameter.name.escapedText === \"this\") {\n          continue;\n        }\n        if (parameter.dotDotDotToken) {\n          expressions.push(serializeTypeNode(getRestParameterElementType(parameter.type)));\n        } else {\n          expressions.push(serializeTypeOfNode(parameter, container));\n        }\n      }\n    }\n    return factory2.createArrayLiteralExpression(expressions);\n  }\n  function getParametersOfDecoratedDeclaration(node, container) {\n    if (container && node.kind === 178 /* GetAccessor */) {\n      const { setAccessor } = getAllAccessorDeclarations(container.members, node);\n      if (setAccessor) {\n        return setAccessor.parameters;\n      }\n    }\n    return node.parameters;\n  }\n  function serializeReturnTypeOfNode(node) {\n    if (isFunctionLike(node) && node.type) {\n      return serializeTypeNode(node.type);\n    } else if (isAsyncFunction(node)) {\n      return factory2.createIdentifier(\"Promise\");\n    }\n    return factory2.createVoidZero();\n  }\n  function serializeTypeNode(node) {\n    if (node === void 0) {\n      return factory2.createIdentifier(\"Object\");\n    }\n    node = skipTypeParentheses(node);\n    switch (node.kind) {\n      case 116 /* VoidKeyword */:\n      case 157 /* UndefinedKeyword */:\n      case 146 /* NeverKeyword */:\n        return factory2.createVoidZero();\n      case 185 /* FunctionType */:\n      case 186 /* ConstructorType */:\n        return factory2.createIdentifier(\"Function\");\n      case 189 /* ArrayType */:\n      case 190 /* TupleType */:\n        return factory2.createIdentifier(\"Array\");\n      case 183 /* TypePredicate */:\n        return node.assertsModifier ? factory2.createVoidZero() : factory2.createIdentifier(\"Boolean\");\n      case 136 /* BooleanKeyword */:\n        return factory2.createIdentifier(\"Boolean\");\n      case 204 /* TemplateLiteralType */:\n      case 154 /* StringKeyword */:\n        return factory2.createIdentifier(\"String\");\n      case 151 /* ObjectKeyword */:\n        return factory2.createIdentifier(\"Object\");\n      case 202 /* LiteralType */:\n        return serializeLiteralOfLiteralTypeNode(node.literal);\n      case 150 /* NumberKeyword */:\n        return factory2.createIdentifier(\"Number\");\n      case 163 /* BigIntKeyword */:\n        return getGlobalConstructor(\"BigInt\", 7 /* ES2020 */);\n      case 155 /* SymbolKeyword */:\n        return getGlobalConstructor(\"Symbol\", 2 /* ES2015 */);\n      case 184 /* TypeReference */:\n        return serializeTypeReferenceNode(node);\n      case 194 /* IntersectionType */:\n        return serializeUnionOrIntersectionConstituents(\n          node.types,\n          /*isIntersection*/\n          true\n        );\n      case 193 /* UnionType */:\n        return serializeUnionOrIntersectionConstituents(\n          node.types,\n          /*isIntersection*/\n          false\n        );\n      case 195 /* ConditionalType */:\n        return serializeUnionOrIntersectionConstituents(\n          [node.trueType, node.falseType],\n          /*isIntersection*/\n          false\n        );\n      case 199 /* TypeOperator */:\n        if (node.operator === 148 /* ReadonlyKeyword */) {\n          return serializeTypeNode(node.type);\n        }\n        break;\n      case 187 /* TypeQuery */:\n      case 200 /* IndexedAccessType */:\n      case 201 /* MappedType */:\n      case 188 /* TypeLiteral */:\n      case 133 /* AnyKeyword */:\n      case 159 /* UnknownKeyword */:\n      case 198 /* ThisType */:\n      case 206 /* ImportType */:\n        break;\n      // handle JSDoc types from an invalid parse\n      case 313 /* JSDocAllType */:\n      case 314 /* JSDocUnknownType */:\n      case 318 /* JSDocFunctionType */:\n      case 319 /* JSDocVariadicType */:\n      case 320 /* JSDocNamepathType */:\n        break;\n      case 315 /* JSDocNullableType */:\n      case 316 /* JSDocNonNullableType */:\n      case 317 /* JSDocOptionalType */:\n        return serializeTypeNode(node.type);\n      default:\n        return Debug.failBadSyntaxKind(node);\n    }\n    return factory2.createIdentifier(\"Object\");\n  }\n  function serializeLiteralOfLiteralTypeNode(node) {\n    switch (node.kind) {\n      case 11 /* StringLiteral */:\n      case 15 /* NoSubstitutionTemplateLiteral */:\n        return factory2.createIdentifier(\"String\");\n      case 225 /* PrefixUnaryExpression */: {\n        const operand = node.operand;\n        switch (operand.kind) {\n          case 9 /* NumericLiteral */:\n          case 10 /* BigIntLiteral */:\n            return serializeLiteralOfLiteralTypeNode(operand);\n          default:\n            return Debug.failBadSyntaxKind(operand);\n        }\n      }\n      case 9 /* NumericLiteral */:\n        return factory2.createIdentifier(\"Number\");\n      case 10 /* BigIntLiteral */:\n        return getGlobalConstructor(\"BigInt\", 7 /* ES2020 */);\n      case 112 /* TrueKeyword */:\n      case 97 /* FalseKeyword */:\n        return factory2.createIdentifier(\"Boolean\");\n      case 106 /* NullKeyword */:\n        return factory2.createVoidZero();\n      default:\n        return Debug.failBadSyntaxKind(node);\n    }\n  }\n  function serializeUnionOrIntersectionConstituents(types, isIntersection) {\n    let serializedType;\n    for (let typeNode of types) {\n      typeNode = skipTypeParentheses(typeNode);\n      if (typeNode.kind === 146 /* NeverKeyword */) {\n        if (isIntersection) return factory2.createVoidZero();\n        continue;\n      }\n      if (typeNode.kind === 159 /* UnknownKeyword */) {\n        if (!isIntersection) return factory2.createIdentifier(\"Object\");\n        continue;\n      }\n      if (typeNode.kind === 133 /* AnyKeyword */) {\n        return factory2.createIdentifier(\"Object\");\n      }\n      if (!strictNullChecks && (isLiteralTypeNode(typeNode) && typeNode.literal.kind === 106 /* NullKeyword */ || typeNode.kind === 157 /* UndefinedKeyword */)) {\n        continue;\n      }\n      const serializedConstituent = serializeTypeNode(typeNode);\n      if (isIdentifier(serializedConstituent) && serializedConstituent.escapedText === \"Object\") {\n        return serializedConstituent;\n      }\n      if (serializedType) {\n        if (!equateSerializedTypeNodes(serializedType, serializedConstituent)) {\n          return factory2.createIdentifier(\"Object\");\n        }\n      } else {\n        serializedType = serializedConstituent;\n      }\n    }\n    return serializedType ?? factory2.createVoidZero();\n  }\n  function equateSerializedTypeNodes(left, right) {\n    return (\n      // temp vars used in fallback\n      isGeneratedIdentifier(left) ? isGeneratedIdentifier(right) : (\n        // entity names\n        isIdentifier(left) ? isIdentifier(right) && left.escapedText === right.escapedText : isPropertyAccessExpression(left) ? isPropertyAccessExpression(right) && equateSerializedTypeNodes(left.expression, right.expression) && equateSerializedTypeNodes(left.name, right.name) : (\n          // `void 0`\n          isVoidExpression(left) ? isVoidExpression(right) && isNumericLiteral(left.expression) && left.expression.text === \"0\" && isNumericLiteral(right.expression) && right.expression.text === \"0\" : (\n            // `\"undefined\"` or `\"function\"` in `typeof` checks\n            isStringLiteral(left) ? isStringLiteral(right) && left.text === right.text : (\n              // used in `typeof` checks for fallback\n              isTypeOfExpression(left) ? isTypeOfExpression(right) && equateSerializedTypeNodes(left.expression, right.expression) : (\n                // parens in `typeof` checks with temps\n                isParenthesizedExpression(left) ? isParenthesizedExpression(right) && equateSerializedTypeNodes(left.expression, right.expression) : (\n                  // conditionals used in fallback\n                  isConditionalExpression(left) ? isConditionalExpression(right) && equateSerializedTypeNodes(left.condition, right.condition) && equateSerializedTypeNodes(left.whenTrue, right.whenTrue) && equateSerializedTypeNodes(left.whenFalse, right.whenFalse) : (\n                    // logical binary and assignments used in fallback\n                    isBinaryExpression(left) ? isBinaryExpression(right) && left.operatorToken.kind === right.operatorToken.kind && equateSerializedTypeNodes(left.left, right.left) && equateSerializedTypeNodes(left.right, right.right) : false\n                  )\n                )\n              )\n            )\n          )\n        )\n      )\n    );\n  }\n  function serializeTypeReferenceNode(node) {\n    const kind = resolver.getTypeReferenceSerializationKind(node.typeName, currentNameScope ?? currentLexicalScope);\n    switch (kind) {\n      case 0 /* Unknown */:\n        if (findAncestor(node, (n) => n.parent && isConditionalTypeNode(n.parent) && (n.parent.trueType === n || n.parent.falseType === n))) {\n          return factory2.createIdentifier(\"Object\");\n        }\n        const serialized = serializeEntityNameAsExpressionFallback(node.typeName);\n        const temp = factory2.createTempVariable(hoistVariableDeclaration);\n        return factory2.createConditionalExpression(\n          factory2.createTypeCheck(factory2.createAssignment(temp, serialized), \"function\"),\n          /*questionToken*/\n          void 0,\n          temp,\n          /*colonToken*/\n          void 0,\n          factory2.createIdentifier(\"Object\")\n        );\n      case 1 /* TypeWithConstructSignatureAndValue */:\n        return serializeEntityNameAsExpression(node.typeName);\n      case 2 /* VoidNullableOrNeverType */:\n        return factory2.createVoidZero();\n      case 4 /* BigIntLikeType */:\n        return getGlobalConstructor(\"BigInt\", 7 /* ES2020 */);\n      case 6 /* BooleanType */:\n        return factory2.createIdentifier(\"Boolean\");\n      case 3 /* NumberLikeType */:\n        return factory2.createIdentifier(\"Number\");\n      case 5 /* StringLikeType */:\n        return factory2.createIdentifier(\"String\");\n      case 7 /* ArrayLikeType */:\n        return factory2.createIdentifier(\"Array\");\n      case 8 /* ESSymbolType */:\n        return getGlobalConstructor(\"Symbol\", 2 /* ES2015 */);\n      case 10 /* TypeWithCallSignature */:\n        return factory2.createIdentifier(\"Function\");\n      case 9 /* Promise */:\n        return factory2.createIdentifier(\"Promise\");\n      case 11 /* ObjectType */:\n        return factory2.createIdentifier(\"Object\");\n      default:\n        return Debug.assertNever(kind);\n    }\n  }\n  function createCheckedValue(left, right) {\n    return factory2.createLogicalAnd(\n      factory2.createStrictInequality(factory2.createTypeOfExpression(left), factory2.createStringLiteral(\"undefined\")),\n      right\n    );\n  }\n  function serializeEntityNameAsExpressionFallback(node) {\n    if (node.kind === 80 /* Identifier */) {\n      const copied = serializeEntityNameAsExpression(node);\n      return createCheckedValue(copied, copied);\n    }\n    if (node.left.kind === 80 /* Identifier */) {\n      return createCheckedValue(serializeEntityNameAsExpression(node.left), serializeEntityNameAsExpression(node));\n    }\n    const left = serializeEntityNameAsExpressionFallback(node.left);\n    const temp = factory2.createTempVariable(hoistVariableDeclaration);\n    return factory2.createLogicalAnd(\n      factory2.createLogicalAnd(\n        left.left,\n        factory2.createStrictInequality(factory2.createAssignment(temp, left.right), factory2.createVoidZero())\n      ),\n      factory2.createPropertyAccessExpression(temp, node.right)\n    );\n  }\n  function serializeEntityNameAsExpression(node) {\n    switch (node.kind) {\n      case 80 /* Identifier */:\n        const name = setParent(setTextRange(parseNodeFactory.cloneNode(node), node), node.parent);\n        name.original = void 0;\n        setParent(name, getParseTreeNode(currentLexicalScope));\n        return name;\n      case 167 /* QualifiedName */:\n        return serializeQualifiedNameAsExpression(node);\n    }\n  }\n  function serializeQualifiedNameAsExpression(node) {\n    return factory2.createPropertyAccessExpression(serializeEntityNameAsExpression(node.left), node.right);\n  }\n  function getGlobalConstructorWithFallback(name) {\n    return factory2.createConditionalExpression(\n      factory2.createTypeCheck(factory2.createIdentifier(name), \"function\"),\n      /*questionToken*/\n      void 0,\n      factory2.createIdentifier(name),\n      /*colonToken*/\n      void 0,\n      factory2.createIdentifier(\"Object\")\n    );\n  }\n  function getGlobalConstructor(name, minLanguageVersion) {\n    return languageVersion < minLanguageVersion ? getGlobalConstructorWithFallback(name) : factory2.createIdentifier(name);\n  }\n}\n\n// src/compiler/transformers/legacyDecorators.ts\nfunction transformLegacyDecorators(context) {\n  const {\n    factory: factory2,\n    getEmitHelperFactory: emitHelpers,\n    hoistVariableDeclaration\n  } = context;\n  const resolver = context.getEmitResolver();\n  const compilerOptions = context.getCompilerOptions();\n  const languageVersion = getEmitScriptTarget(compilerOptions);\n  const previousOnSubstituteNode = context.onSubstituteNode;\n  context.onSubstituteNode = onSubstituteNode;\n  let classAliases;\n  return chainBundle(context, transformSourceFile);\n  function transformSourceFile(node) {\n    const visited = visitEachChild(node, visitor, context);\n    addEmitHelpers(visited, context.readEmitHelpers());\n    return visited;\n  }\n  function modifierVisitor(node) {\n    return isDecorator(node) ? void 0 : node;\n  }\n  function visitor(node) {\n    if (!(node.transformFlags & 33554432 /* ContainsDecorators */)) {\n      return node;\n    }\n    switch (node.kind) {\n      case 171 /* Decorator */:\n        return void 0;\n      case 264 /* ClassDeclaration */:\n        return visitClassDeclaration(node);\n      case 232 /* ClassExpression */:\n        return visitClassExpression(node);\n      case 177 /* Constructor */:\n        return visitConstructorDeclaration(node);\n      case 175 /* MethodDeclaration */:\n        return visitMethodDeclaration(node);\n      case 179 /* SetAccessor */:\n        return visitSetAccessorDeclaration(node);\n      case 178 /* GetAccessor */:\n        return visitGetAccessorDeclaration(node);\n      case 173 /* PropertyDeclaration */:\n        return visitPropertyDeclaration(node);\n      case 170 /* Parameter */:\n        return visitParameterDeclaration(node);\n      default:\n        return visitEachChild(node, visitor, context);\n    }\n  }\n  function visitClassDeclaration(node) {\n    if (!(classOrConstructorParameterIsDecorated(\n      /*useLegacyDecorators*/\n      true,\n      node\n    ) || childIsDecorated(\n      /*useLegacyDecorators*/\n      true,\n      node\n    ))) {\n      return visitEachChild(node, visitor, context);\n    }\n    const statements = classOrConstructorParameterIsDecorated(\n      /*useLegacyDecorators*/\n      true,\n      node\n    ) ? transformClassDeclarationWithClassDecorators(node, node.name) : transformClassDeclarationWithoutClassDecorators(node, node.name);\n    return singleOrMany(statements);\n  }\n  function decoratorContainsPrivateIdentifierInExpression(decorator) {\n    return !!(decorator.transformFlags & 536870912 /* ContainsPrivateIdentifierInExpression */);\n  }\n  function parameterDecoratorsContainPrivateIdentifierInExpression(parameterDecorators) {\n    return some(parameterDecorators, decoratorContainsPrivateIdentifierInExpression);\n  }\n  function hasClassElementWithDecoratorContainingPrivateIdentifierInExpression(node) {\n    for (const member of node.members) {\n      if (!canHaveDecorators(member)) continue;\n      const allDecorators = getAllDecoratorsOfClassElement(\n        member,\n        node,\n        /*useLegacyDecorators*/\n        true\n      );\n      if (some(allDecorators == null ? void 0 : allDecorators.decorators, decoratorContainsPrivateIdentifierInExpression)) return true;\n      if (some(allDecorators == null ? void 0 : allDecorators.parameters, parameterDecoratorsContainPrivateIdentifierInExpression)) return true;\n    }\n    return false;\n  }\n  function transformDecoratorsOfClassElements(node, members) {\n    let decorationStatements = [];\n    addClassElementDecorationStatements(\n      decorationStatements,\n      node,\n      /*isStatic*/\n      false\n    );\n    addClassElementDecorationStatements(\n      decorationStatements,\n      node,\n      /*isStatic*/\n      true\n    );\n    if (hasClassElementWithDecoratorContainingPrivateIdentifierInExpression(node)) {\n      members = setTextRange(\n        factory2.createNodeArray([\n          ...members,\n          factory2.createClassStaticBlockDeclaration(\n            factory2.createBlock(\n              decorationStatements,\n              /*multiLine*/\n              true\n            )\n          )\n        ]),\n        members\n      );\n      decorationStatements = void 0;\n    }\n    return { decorationStatements, members };\n  }\n  function transformClassDeclarationWithoutClassDecorators(node, name) {\n    const modifiers = visitNodes2(node.modifiers, modifierVisitor, isModifier);\n    const heritageClauses = visitNodes2(node.heritageClauses, visitor, isHeritageClause);\n    let members = visitNodes2(node.members, visitor, isClassElement);\n    let decorationStatements = [];\n    ({ members, decorationStatements } = transformDecoratorsOfClassElements(node, members));\n    const updated = factory2.updateClassDeclaration(\n      node,\n      modifiers,\n      name,\n      /*typeParameters*/\n      void 0,\n      heritageClauses,\n      members\n    );\n    return addRange([updated], decorationStatements);\n  }\n  function transformClassDeclarationWithClassDecorators(node, name) {\n    const isExport = hasSyntacticModifier(node, 32 /* Export */);\n    const isDefault = hasSyntacticModifier(node, 2048 /* Default */);\n    const modifiers = visitNodes2(node.modifiers, (node2) => isExportOrDefaultModifier(node2) || isDecorator(node2) ? void 0 : node2, isModifierLike);\n    const location = moveRangePastModifiers(node);\n    const classAlias = getClassAliasIfNeeded(node);\n    const declName = languageVersion < 2 /* ES2015 */ ? factory2.getInternalName(\n      node,\n      /*allowComments*/\n      false,\n      /*allowSourceMaps*/\n      true\n    ) : factory2.getLocalName(\n      node,\n      /*allowComments*/\n      false,\n      /*allowSourceMaps*/\n      true\n    );\n    const heritageClauses = visitNodes2(node.heritageClauses, visitor, isHeritageClause);\n    let members = visitNodes2(node.members, visitor, isClassElement);\n    let decorationStatements = [];\n    ({ members, decorationStatements } = transformDecoratorsOfClassElements(node, members));\n    const assignClassAliasInStaticBlock = languageVersion >= 9 /* ES2022 */ && !!classAlias && some(members, (member) => isPropertyDeclaration(member) && hasSyntacticModifier(member, 256 /* Static */) || isClassStaticBlockDeclaration(member));\n    if (assignClassAliasInStaticBlock) {\n      members = setTextRange(\n        factory2.createNodeArray([\n          factory2.createClassStaticBlockDeclaration(\n            factory2.createBlock([\n              factory2.createExpressionStatement(\n                factory2.createAssignment(classAlias, factory2.createThis())\n              )\n            ])\n          ),\n          ...members\n        ]),\n        members\n      );\n    }\n    const classExpression = factory2.createClassExpression(\n      modifiers,\n      name && isGeneratedIdentifier(name) ? void 0 : name,\n      /*typeParameters*/\n      void 0,\n      heritageClauses,\n      members\n    );\n    setOriginalNode(classExpression, node);\n    setTextRange(classExpression, location);\n    const varInitializer = classAlias && !assignClassAliasInStaticBlock ? factory2.createAssignment(classAlias, classExpression) : classExpression;\n    const varDecl = factory2.createVariableDeclaration(\n      declName,\n      /*exclamationToken*/\n      void 0,\n      /*type*/\n      void 0,\n      varInitializer\n    );\n    setOriginalNode(varDecl, node);\n    const varDeclList = factory2.createVariableDeclarationList([varDecl], 1 /* Let */);\n    const varStatement = factory2.createVariableStatement(\n      /*modifiers*/\n      void 0,\n      varDeclList\n    );\n    setOriginalNode(varStatement, node);\n    setTextRange(varStatement, location);\n    setCommentRange(varStatement, node);\n    const statements = [varStatement];\n    addRange(statements, decorationStatements);\n    addConstructorDecorationStatement(statements, node);\n    if (isExport) {\n      if (isDefault) {\n        const exportStatement = factory2.createExportDefault(declName);\n        statements.push(exportStatement);\n      } else {\n        const exportStatement = factory2.createExternalModuleExport(factory2.getDeclarationName(node));\n        statements.push(exportStatement);\n      }\n    }\n    return statements;\n  }\n  function visitClassExpression(node) {\n    return factory2.updateClassExpression(\n      node,\n      visitNodes2(node.modifiers, modifierVisitor, isModifier),\n      node.name,\n      /*typeParameters*/\n      void 0,\n      visitNodes2(node.heritageClauses, visitor, isHeritageClause),\n      visitNodes2(node.members, visitor, isClassElement)\n    );\n  }\n  function visitConstructorDeclaration(node) {\n    return factory2.updateConstructorDeclaration(\n      node,\n      visitNodes2(node.modifiers, modifierVisitor, isModifier),\n      visitNodes2(node.parameters, visitor, isParameter),\n      visitNode(node.body, visitor, isBlock)\n    );\n  }\n  function finishClassElement(updated, original) {\n    if (updated !== original) {\n      setCommentRange(updated, original);\n      setSourceMapRange(updated, moveRangePastModifiers(original));\n    }\n    return updated;\n  }\n  function visitMethodDeclaration(node) {\n    return finishClassElement(\n      factory2.updateMethodDeclaration(\n        node,\n        visitNodes2(node.modifiers, modifierVisitor, isModifier),\n        node.asteriskToken,\n        Debug.checkDefined(visitNode(node.name, visitor, isPropertyName)),\n        /*questionToken*/\n        void 0,\n        /*typeParameters*/\n        void 0,\n        visitNodes2(node.parameters, visitor, isParameter),\n        /*type*/\n        void 0,\n        visitNode(node.body, visitor, isBlock)\n      ),\n      node\n    );\n  }\n  function visitGetAccessorDeclaration(node) {\n    return finishClassElement(\n      factory2.updateGetAccessorDeclaration(\n        node,\n        visitNodes2(node.modifiers, modifierVisitor, isModifier),\n        Debug.checkDefined(visitNode(node.name, visitor, isPropertyName)),\n        visitNodes2(node.parameters, visitor, isParameter),\n        /*type*/\n        void 0,\n        visitNode(node.body, visitor, isBlock)\n      ),\n      node\n    );\n  }\n  function visitSetAccessorDeclaration(node) {\n    return finishClassElement(\n      factory2.updateSetAccessorDeclaration(\n        node,\n        visitNodes2(node.modifiers, modifierVisitor, isModifier),\n        Debug.checkDefined(visitNode(node.name, visitor, isPropertyName)),\n        visitNodes2(node.parameters, visitor, isParameter),\n        visitNode(node.body, visitor, isBlock)\n      ),\n      node\n    );\n  }\n  function visitPropertyDeclaration(node) {\n    if (node.flags & 33554432 /* Ambient */ || hasSyntacticModifier(node, 128 /* Ambient */)) {\n      return void 0;\n    }\n    return finishClassElement(\n      factory2.updatePropertyDeclaration(\n        node,\n        visitNodes2(node.modifiers, modifierVisitor, isModifier),\n        Debug.checkDefined(visitNode(node.name, visitor, isPropertyName)),\n        /*questionOrExclamationToken*/\n        void 0,\n        /*type*/\n        void 0,\n        visitNode(node.initializer, visitor, isExpression)\n      ),\n      node\n    );\n  }\n  function visitParameterDeclaration(node) {\n    const updated = factory2.updateParameterDeclaration(\n      node,\n      elideNodes(factory2, node.modifiers),\n      node.dotDotDotToken,\n      Debug.checkDefined(visitNode(node.name, visitor, isBindingName)),\n      /*questionToken*/\n      void 0,\n      /*type*/\n      void 0,\n      visitNode(node.initializer, visitor, isExpression)\n    );\n    if (updated !== node) {\n      setCommentRange(updated, node);\n      setTextRange(updated, moveRangePastModifiers(node));\n      setSourceMapRange(updated, moveRangePastModifiers(node));\n      setEmitFlags(updated.name, 64 /* NoTrailingSourceMap */);\n    }\n    return updated;\n  }\n  function isSyntheticMetadataDecorator(node) {\n    return isCallToHelper(node.expression, \"___metadata\");\n  }\n  function transformAllDecoratorsOfDeclaration(allDecorators) {\n    if (!allDecorators) {\n      return void 0;\n    }\n    const { false: decorators, true: metadata } = groupBy(allDecorators.decorators, isSyntheticMetadataDecorator);\n    const decoratorExpressions = [];\n    addRange(decoratorExpressions, map(decorators, transformDecorator));\n    addRange(decoratorExpressions, flatMap(allDecorators.parameters, transformDecoratorsOfParameter));\n    addRange(decoratorExpressions, map(metadata, transformDecorator));\n    return decoratorExpressions;\n  }\n  function addClassElementDecorationStatements(statements, node, isStatic2) {\n    addRange(statements, map(generateClassElementDecorationExpressions(node, isStatic2), (expr) => factory2.createExpressionStatement(expr)));\n  }\n  function isDecoratedClassElement(member, isStaticElement, parent2) {\n    return nodeOrChildIsDecorated(\n      /*useLegacyDecorators*/\n      true,\n      member,\n      parent2\n    ) && isStaticElement === isStatic(member);\n  }\n  function getDecoratedClassElements(node, isStatic2) {\n    return filter(node.members, (m) => isDecoratedClassElement(m, isStatic2, node));\n  }\n  function generateClassElementDecorationExpressions(node, isStatic2) {\n    const members = getDecoratedClassElements(node, isStatic2);\n    let expressions;\n    for (const member of members) {\n      expressions = append(expressions, generateClassElementDecorationExpression(node, member));\n    }\n    return expressions;\n  }\n  function generateClassElementDecorationExpression(node, member) {\n    const allDecorators = getAllDecoratorsOfClassElement(\n      member,\n      node,\n      /*useLegacyDecorators*/\n      true\n    );\n    const decoratorExpressions = transformAllDecoratorsOfDeclaration(allDecorators);\n    if (!decoratorExpressions) {\n      return void 0;\n    }\n    const prefix = getClassMemberPrefix(node, member);\n    const memberName = getExpressionForPropertyName(\n      member,\n      /*generateNameForComputedPropertyName*/\n      !hasSyntacticModifier(member, 128 /* Ambient */)\n    );\n    const descriptor = isPropertyDeclaration(member) && !hasAccessorModifier(member) ? factory2.createVoidZero() : factory2.createNull();\n    const helper = emitHelpers().createDecorateHelper(\n      decoratorExpressions,\n      prefix,\n      memberName,\n      descriptor\n    );\n    setEmitFlags(helper, 3072 /* NoComments */);\n    setSourceMapRange(helper, moveRangePastModifiers(member));\n    return helper;\n  }\n  function addConstructorDecorationStatement(statements, node) {\n    const expression = generateConstructorDecorationExpression(node);\n    if (expression) {\n      statements.push(setOriginalNode(factory2.createExpressionStatement(expression), node));\n    }\n  }\n  function generateConstructorDecorationExpression(node) {\n    const allDecorators = getAllDecoratorsOfClass(\n      node,\n      /*useLegacyDecorators*/\n      true\n    );\n    const decoratorExpressions = transformAllDecoratorsOfDeclaration(allDecorators);\n    if (!decoratorExpressions) {\n      return void 0;\n    }\n    const classAlias = classAliases && classAliases[getOriginalNodeId(node)];\n    const localName = languageVersion < 2 /* ES2015 */ ? factory2.getInternalName(\n      node,\n      /*allowComments*/\n      false,\n      /*allowSourceMaps*/\n      true\n    ) : factory2.getDeclarationName(\n      node,\n      /*allowComments*/\n      false,\n      /*allowSourceMaps*/\n      true\n    );\n    const decorate = emitHelpers().createDecorateHelper(decoratorExpressions, localName);\n    const expression = factory2.createAssignment(localName, classAlias ? factory2.createAssignment(classAlias, decorate) : decorate);\n    setEmitFlags(expression, 3072 /* NoComments */);\n    setSourceMapRange(expression, moveRangePastModifiers(node));\n    return expression;\n  }\n  function transformDecorator(decorator) {\n    return Debug.checkDefined(visitNode(decorator.expression, visitor, isExpression));\n  }\n  function transformDecoratorsOfParameter(decorators, parameterOffset) {\n    let expressions;\n    if (decorators) {\n      expressions = [];\n      for (const decorator of decorators) {\n        const helper = emitHelpers().createParamHelper(\n          transformDecorator(decorator),\n          parameterOffset\n        );\n        setTextRange(helper, decorator.expression);\n        setEmitFlags(helper, 3072 /* NoComments */);\n        expressions.push(helper);\n      }\n    }\n    return expressions;\n  }\n  function getExpressionForPropertyName(member, generateNameForComputedPropertyName) {\n    const name = member.name;\n    if (isPrivateIdentifier(name)) {\n      return factory2.createIdentifier(\"\");\n    } else if (isComputedPropertyName(name)) {\n      return generateNameForComputedPropertyName && !isSimpleInlineableExpression(name.expression) ? factory2.getGeneratedNameForNode(name) : name.expression;\n    } else if (isIdentifier(name)) {\n      return factory2.createStringLiteral(idText(name));\n    } else {\n      return factory2.cloneNode(name);\n    }\n  }\n  function enableSubstitutionForClassAliases() {\n    if (!classAliases) {\n      context.enableSubstitution(80 /* Identifier */);\n      classAliases = [];\n    }\n  }\n  function getClassAliasIfNeeded(node) {\n    if (resolver.hasNodeCheckFlag(node, 262144 /* ContainsConstructorReference */)) {\n      enableSubstitutionForClassAliases();\n      const classAlias = factory2.createUniqueName(node.name && !isGeneratedIdentifier(node.name) ? idText(node.name) : \"default\");\n      classAliases[getOriginalNodeId(node)] = classAlias;\n      hoistVariableDeclaration(classAlias);\n      return classAlias;\n    }\n  }\n  function getClassPrototype(node) {\n    return factory2.createPropertyAccessExpression(factory2.getDeclarationName(node), \"prototype\");\n  }\n  function getClassMemberPrefix(node, member) {\n    return isStatic(member) ? factory2.getDeclarationName(node) : getClassPrototype(node);\n  }\n  function onSubstituteNode(hint, node) {\n    node = previousOnSubstituteNode(hint, node);\n    if (hint === 1 /* Expression */) {\n      return substituteExpression(node);\n    }\n    return node;\n  }\n  function substituteExpression(node) {\n    switch (node.kind) {\n      case 80 /* Identifier */:\n        return substituteExpressionIdentifier(node);\n    }\n    return node;\n  }\n  function substituteExpressionIdentifier(node) {\n    return trySubstituteClassAlias(node) ?? node;\n  }\n  function trySubstituteClassAlias(node) {\n    if (classAliases) {\n      if (resolver.hasNodeCheckFlag(node, 536870912 /* ConstructorReference */)) {\n        const declaration = resolver.getReferencedValueDeclaration(node);\n        if (declaration) {\n          const classAlias = classAliases[declaration.id];\n          if (classAlias) {\n            const clone2 = factory2.cloneNode(classAlias);\n            setSourceMapRange(clone2, node);\n            setCommentRange(clone2, node);\n            return clone2;\n          }\n        }\n      }\n    }\n    return void 0;\n  }\n}\n\n// src/compiler/transformers/esDecorators.ts\nfunction transformESDecorators(context) {\n  const {\n    factory: factory2,\n    getEmitHelperFactory: emitHelpers,\n    startLexicalEnvironment,\n    endLexicalEnvironment,\n    hoistVariableDeclaration\n  } = context;\n  const languageVersion = getEmitScriptTarget(context.getCompilerOptions());\n  let top;\n  let classInfo;\n  let classThis;\n  let classSuper;\n  let pendingExpressions;\n  let shouldTransformPrivateStaticElementsInFile;\n  return chainBundle(context, transformSourceFile);\n  function transformSourceFile(node) {\n    top = void 0;\n    shouldTransformPrivateStaticElementsInFile = false;\n    const visited = visitEachChild(node, visitor, context);\n    addEmitHelpers(visited, context.readEmitHelpers());\n    if (shouldTransformPrivateStaticElementsInFile) {\n      addInternalEmitFlags(visited, 32 /* TransformPrivateStaticElements */);\n      shouldTransformPrivateStaticElementsInFile = false;\n    }\n    return visited;\n  }\n  function updateState() {\n    classInfo = void 0;\n    classThis = void 0;\n    classSuper = void 0;\n    switch (top == null ? void 0 : top.kind) {\n      case \"class\":\n        classInfo = top.classInfo;\n        break;\n      case \"class-element\":\n        classInfo = top.next.classInfo;\n        classThis = top.classThis;\n        classSuper = top.classSuper;\n        break;\n      case \"name\":\n        const grandparent = top.next.next.next;\n        if ((grandparent == null ? void 0 : grandparent.kind) === \"class-element\") {\n          classInfo = grandparent.next.classInfo;\n          classThis = grandparent.classThis;\n          classSuper = grandparent.classSuper;\n        }\n        break;\n    }\n  }\n  function enterClass(classInfo2) {\n    top = { kind: \"class\", next: top, classInfo: classInfo2, savedPendingExpressions: pendingExpressions };\n    pendingExpressions = void 0;\n    updateState();\n  }\n  function exitClass() {\n    Debug.assert((top == null ? void 0 : top.kind) === \"class\", \"Incorrect value for top.kind.\", () => `Expected top.kind to be 'class' but got '${top == null ? void 0 : top.kind}' instead.`);\n    pendingExpressions = top.savedPendingExpressions;\n    top = top.next;\n    updateState();\n  }\n  function enterClassElement(node) {\n    var _a, _b;\n    Debug.assert((top == null ? void 0 : top.kind) === \"class\", \"Incorrect value for top.kind.\", () => `Expected top.kind to be 'class' but got '${top == null ? void 0 : top.kind}' instead.`);\n    top = { kind: \"class-element\", next: top };\n    if (isClassStaticBlockDeclaration(node) || isPropertyDeclaration(node) && hasStaticModifier(node)) {\n      top.classThis = (_a = top.next.classInfo) == null ? void 0 : _a.classThis;\n      top.classSuper = (_b = top.next.classInfo) == null ? void 0 : _b.classSuper;\n    }\n    updateState();\n  }\n  function exitClassElement() {\n    var _a;\n    Debug.assert((top == null ? void 0 : top.kind) === \"class-element\", \"Incorrect value for top.kind.\", () => `Expected top.kind to be 'class-element' but got '${top == null ? void 0 : top.kind}' instead.`);\n    Debug.assert(((_a = top.next) == null ? void 0 : _a.kind) === \"class\", \"Incorrect value for top.next.kind.\", () => {\n      var _a2;\n      return `Expected top.next.kind to be 'class' but got '${(_a2 = top.next) == null ? void 0 : _a2.kind}' instead.`;\n    });\n    top = top.next;\n    updateState();\n  }\n  function enterName() {\n    Debug.assert((top == null ? void 0 : top.kind) === \"class-element\", \"Incorrect value for top.kind.\", () => `Expected top.kind to be 'class-element' but got '${top == null ? void 0 : top.kind}' instead.`);\n    top = { kind: \"name\", next: top };\n    updateState();\n  }\n  function exitName() {\n    Debug.assert((top == null ? void 0 : top.kind) === \"name\", \"Incorrect value for top.kind.\", () => `Expected top.kind to be 'name' but got '${top == null ? void 0 : top.kind}' instead.`);\n    top = top.next;\n    updateState();\n  }\n  function enterOther() {\n    if ((top == null ? void 0 : top.kind) === \"other\") {\n      Debug.assert(!pendingExpressions);\n      top.depth++;\n    } else {\n      top = { kind: \"other\", next: top, depth: 0, savedPendingExpressions: pendingExpressions };\n      pendingExpressions = void 0;\n      updateState();\n    }\n  }\n  function exitOther() {\n    Debug.assert((top == null ? void 0 : top.kind) === \"other\", \"Incorrect value for top.kind.\", () => `Expected top.kind to be 'other' but got '${top == null ? void 0 : top.kind}' instead.`);\n    if (top.depth > 0) {\n      Debug.assert(!pendingExpressions);\n      top.depth--;\n    } else {\n      pendingExpressions = top.savedPendingExpressions;\n      top = top.next;\n      updateState();\n    }\n  }\n  function shouldVisitNode(node) {\n    return !!(node.transformFlags & 33554432 /* ContainsDecorators */) || !!classThis && !!(node.transformFlags & 16384 /* ContainsLexicalThis */) || !!classThis && !!classSuper && !!(node.transformFlags & 134217728 /* ContainsLexicalSuper */);\n  }\n  function visitor(node) {\n    if (!shouldVisitNode(node)) {\n      return node;\n    }\n    switch (node.kind) {\n      case 171 /* Decorator */:\n        return Debug.fail(\"Use `modifierVisitor` instead.\");\n      case 264 /* ClassDeclaration */:\n        return visitClassDeclaration(node);\n      case 232 /* ClassExpression */:\n        return visitClassExpression(node);\n      case 177 /* Constructor */:\n      case 173 /* PropertyDeclaration */:\n      case 176 /* ClassStaticBlockDeclaration */:\n        return Debug.fail(\"Not supported outside of a class. Use 'classElementVisitor' instead.\");\n      case 170 /* Parameter */:\n        return visitParameterDeclaration(node);\n      // Support NamedEvaluation to ensure the correct class name for class expressions.\n      case 227 /* BinaryExpression */:\n        return visitBinaryExpression(\n          node,\n          /*discarded*/\n          false\n        );\n      case 304 /* PropertyAssignment */:\n        return visitPropertyAssignment(node);\n      case 261 /* VariableDeclaration */:\n        return visitVariableDeclaration(node);\n      case 209 /* BindingElement */:\n        return visitBindingElement(node);\n      case 278 /* ExportAssignment */:\n        return visitExportAssignment(node);\n      case 110 /* ThisKeyword */:\n        return visitThisExpression(node);\n      case 249 /* ForStatement */:\n        return visitForStatement(node);\n      case 245 /* ExpressionStatement */:\n        return visitExpressionStatement(node);\n      case 357 /* CommaListExpression */:\n        return visitCommaListExpression(\n          node,\n          /*discarded*/\n          false\n        );\n      case 218 /* ParenthesizedExpression */:\n        return visitParenthesizedExpression(\n          node,\n          /*discarded*/\n          false\n        );\n      case 356 /* PartiallyEmittedExpression */:\n        return visitPartiallyEmittedExpression(\n          node,\n          /*discarded*/\n          false\n        );\n      case 214 /* CallExpression */:\n        return visitCallExpression(node);\n      case 216 /* TaggedTemplateExpression */:\n        return visitTaggedTemplateExpression(node);\n      case 225 /* PrefixUnaryExpression */:\n      case 226 /* PostfixUnaryExpression */:\n        return visitPreOrPostfixUnaryExpression(\n          node,\n          /*discarded*/\n          false\n        );\n      case 212 /* PropertyAccessExpression */:\n        return visitPropertyAccessExpression(node);\n      case 213 /* ElementAccessExpression */:\n        return visitElementAccessExpression(node);\n      case 168 /* ComputedPropertyName */:\n        return visitComputedPropertyName(node);\n      case 175 /* MethodDeclaration */:\n      // object literal methods and accessors\n      case 179 /* SetAccessor */:\n      case 178 /* GetAccessor */:\n      case 219 /* FunctionExpression */:\n      case 263 /* FunctionDeclaration */: {\n        enterOther();\n        const result = visitEachChild(node, fallbackVisitor, context);\n        exitOther();\n        return result;\n      }\n      default:\n        return visitEachChild(node, fallbackVisitor, context);\n    }\n  }\n  function fallbackVisitor(node) {\n    switch (node.kind) {\n      case 171 /* Decorator */:\n        return void 0;\n      default:\n        return visitor(node);\n    }\n  }\n  function modifierVisitor(node) {\n    switch (node.kind) {\n      case 171 /* Decorator */:\n        return void 0;\n      default:\n        return node;\n    }\n  }\n  function classElementVisitor(node) {\n    switch (node.kind) {\n      case 177 /* Constructor */:\n        return visitConstructorDeclaration(node);\n      case 175 /* MethodDeclaration */:\n        return visitMethodDeclaration(node);\n      case 178 /* GetAccessor */:\n        return visitGetAccessorDeclaration(node);\n      case 179 /* SetAccessor */:\n        return visitSetAccessorDeclaration(node);\n      case 173 /* PropertyDeclaration */:\n        return visitPropertyDeclaration(node);\n      case 176 /* ClassStaticBlockDeclaration */:\n        return visitClassStaticBlockDeclaration(node);\n      default:\n        return visitor(node);\n    }\n  }\n  function discardedValueVisitor(node) {\n    switch (node.kind) {\n      case 225 /* PrefixUnaryExpression */:\n      case 226 /* PostfixUnaryExpression */:\n        return visitPreOrPostfixUnaryExpression(\n          node,\n          /*discarded*/\n          true\n        );\n      case 227 /* BinaryExpression */:\n        return visitBinaryExpression(\n          node,\n          /*discarded*/\n          true\n        );\n      case 357 /* CommaListExpression */:\n        return visitCommaListExpression(\n          node,\n          /*discarded*/\n          true\n        );\n      case 218 /* ParenthesizedExpression */:\n        return visitParenthesizedExpression(\n          node,\n          /*discarded*/\n          true\n        );\n      default:\n        return visitor(node);\n    }\n  }\n  function getHelperVariableName(node) {\n    let declarationName = node.name && isIdentifier(node.name) && !isGeneratedIdentifier(node.name) ? idText(node.name) : node.name && isPrivateIdentifier(node.name) && !isGeneratedIdentifier(node.name) ? idText(node.name).slice(1) : node.name && isStringLiteral(node.name) && isIdentifierText(node.name.text, 99 /* ESNext */) ? node.name.text : isClassLike(node) ? \"class\" : \"member\";\n    if (isGetAccessor(node)) declarationName = `get_${declarationName}`;\n    if (isSetAccessor(node)) declarationName = `set_${declarationName}`;\n    if (node.name && isPrivateIdentifier(node.name)) declarationName = `private_${declarationName}`;\n    if (isStatic(node)) declarationName = `static_${declarationName}`;\n    return \"_\" + declarationName;\n  }\n  function createHelperVariable(node, suffix) {\n    return factory2.createUniqueName(`${getHelperVariableName(node)}_${suffix}`, 16 /* Optimistic */ | 8 /* ReservedInNestedScopes */);\n  }\n  function createLet(name, initializer) {\n    return factory2.createVariableStatement(\n      /*modifiers*/\n      void 0,\n      factory2.createVariableDeclarationList([\n        factory2.createVariableDeclaration(\n          name,\n          /*exclamationToken*/\n          void 0,\n          /*type*/\n          void 0,\n          initializer\n        )\n      ], 1 /* Let */)\n    );\n  }\n  function createClassInfo(node) {\n    const metadataReference = factory2.createUniqueName(\"_metadata\", 16 /* Optimistic */ | 32 /* FileLevel */);\n    let instanceMethodExtraInitializersName;\n    let staticMethodExtraInitializersName;\n    let hasStaticInitializers = false;\n    let hasNonAmbientInstanceFields = false;\n    let hasStaticPrivateClassElements = false;\n    let classThis2;\n    let pendingStaticInitializers;\n    let pendingInstanceInitializers;\n    if (nodeIsDecorated(\n      /*useLegacyDecorators*/\n      false,\n      node\n    )) {\n      const needsUniqueClassThis = some(node.members, (member) => (isPrivateIdentifierClassElementDeclaration(member) || isAutoAccessorPropertyDeclaration(member)) && hasStaticModifier(member));\n      classThis2 = factory2.createUniqueName(\n        \"_classThis\",\n        needsUniqueClassThis ? 16 /* Optimistic */ | 8 /* ReservedInNestedScopes */ : 16 /* Optimistic */ | 32 /* FileLevel */\n      );\n    }\n    for (const member of node.members) {\n      if (isMethodOrAccessor(member) && nodeOrChildIsDecorated(\n        /*useLegacyDecorators*/\n        false,\n        member,\n        node\n      )) {\n        if (hasStaticModifier(member)) {\n          if (!staticMethodExtraInitializersName) {\n            staticMethodExtraInitializersName = factory2.createUniqueName(\"_staticExtraInitializers\", 16 /* Optimistic */ | 32 /* FileLevel */);\n            const initializer = emitHelpers().createRunInitializersHelper(classThis2 ?? factory2.createThis(), staticMethodExtraInitializersName);\n            setSourceMapRange(initializer, node.name ?? moveRangePastDecorators(node));\n            pendingStaticInitializers ?? (pendingStaticInitializers = []);\n            pendingStaticInitializers.push(initializer);\n          }\n        } else {\n          if (!instanceMethodExtraInitializersName) {\n            instanceMethodExtraInitializersName = factory2.createUniqueName(\"_instanceExtraInitializers\", 16 /* Optimistic */ | 32 /* FileLevel */);\n            const initializer = emitHelpers().createRunInitializersHelper(factory2.createThis(), instanceMethodExtraInitializersName);\n            setSourceMapRange(initializer, node.name ?? moveRangePastDecorators(node));\n            pendingInstanceInitializers ?? (pendingInstanceInitializers = []);\n            pendingInstanceInitializers.push(initializer);\n          }\n          instanceMethodExtraInitializersName ?? (instanceMethodExtraInitializersName = factory2.createUniqueName(\"_instanceExtraInitializers\", 16 /* Optimistic */ | 32 /* FileLevel */));\n        }\n      }\n      if (isClassStaticBlockDeclaration(member)) {\n        if (!isClassNamedEvaluationHelperBlock(member)) {\n          hasStaticInitializers = true;\n        }\n      } else if (isPropertyDeclaration(member)) {\n        if (hasStaticModifier(member)) {\n          hasStaticInitializers || (hasStaticInitializers = !!member.initializer || hasDecorators(member));\n        } else {\n          hasNonAmbientInstanceFields || (hasNonAmbientInstanceFields = !isAmbientPropertyDeclaration(member));\n        }\n      }\n      if ((isPrivateIdentifierClassElementDeclaration(member) || isAutoAccessorPropertyDeclaration(member)) && hasStaticModifier(member)) {\n        hasStaticPrivateClassElements = true;\n      }\n      if (staticMethodExtraInitializersName && instanceMethodExtraInitializersName && hasStaticInitializers && hasNonAmbientInstanceFields && hasStaticPrivateClassElements) {\n        break;\n      }\n    }\n    return {\n      class: node,\n      classThis: classThis2,\n      metadataReference,\n      instanceMethodExtraInitializersName,\n      staticMethodExtraInitializersName,\n      hasStaticInitializers,\n      hasNonAmbientInstanceFields,\n      hasStaticPrivateClassElements,\n      pendingStaticInitializers,\n      pendingInstanceInitializers\n    };\n  }\n  function transformClassLike(node) {\n    startLexicalEnvironment();\n    if (!classHasDeclaredOrExplicitlyAssignedName(node) && classOrConstructorParameterIsDecorated(\n      /*useLegacyDecorators*/\n      false,\n      node\n    )) {\n      node = injectClassNamedEvaluationHelperBlockIfMissing(context, node, factory2.createStringLiteral(\"\"));\n    }\n    const classReference = factory2.getLocalName(\n      node,\n      /*allowComments*/\n      false,\n      /*allowSourceMaps*/\n      false,\n      /*ignoreAssignedName*/\n      true\n    );\n    const classInfo2 = createClassInfo(node);\n    const classDefinitionStatements = [];\n    let leadingBlockStatements;\n    let trailingBlockStatements;\n    let syntheticConstructor;\n    let heritageClauses;\n    let shouldTransformPrivateStaticElementsInClass = false;\n    const classDecorators = transformAllDecoratorsOfDeclaration(getAllDecoratorsOfClass(\n      node,\n      /*useLegacyDecorators*/\n      false\n    ));\n    if (classDecorators) {\n      classInfo2.classDecoratorsName = factory2.createUniqueName(\"_classDecorators\", 16 /* Optimistic */ | 32 /* FileLevel */);\n      classInfo2.classDescriptorName = factory2.createUniqueName(\"_classDescriptor\", 16 /* Optimistic */ | 32 /* FileLevel */);\n      classInfo2.classExtraInitializersName = factory2.createUniqueName(\"_classExtraInitializers\", 16 /* Optimistic */ | 32 /* FileLevel */);\n      Debug.assertIsDefined(classInfo2.classThis);\n      classDefinitionStatements.push(\n        createLet(classInfo2.classDecoratorsName, factory2.createArrayLiteralExpression(classDecorators)),\n        createLet(classInfo2.classDescriptorName),\n        createLet(classInfo2.classExtraInitializersName, factory2.createArrayLiteralExpression()),\n        createLet(classInfo2.classThis)\n      );\n      if (classInfo2.hasStaticPrivateClassElements) {\n        shouldTransformPrivateStaticElementsInClass = true;\n        shouldTransformPrivateStaticElementsInFile = true;\n      }\n    }\n    const extendsClause = getHeritageClause(node.heritageClauses, 96 /* ExtendsKeyword */);\n    const extendsElement = extendsClause && firstOrUndefined(extendsClause.types);\n    const extendsExpression = extendsElement && visitNode(extendsElement.expression, visitor, isExpression);\n    if (extendsExpression) {\n      classInfo2.classSuper = factory2.createUniqueName(\"_classSuper\", 16 /* Optimistic */ | 32 /* FileLevel */);\n      const unwrapped = skipOuterExpressions(extendsExpression);\n      const safeExtendsExpression = isClassExpression(unwrapped) && !unwrapped.name || isFunctionExpression(unwrapped) && !unwrapped.name || isArrowFunction(unwrapped) ? factory2.createComma(factory2.createNumericLiteral(0), extendsExpression) : extendsExpression;\n      classDefinitionStatements.push(createLet(classInfo2.classSuper, safeExtendsExpression));\n      const updatedExtendsElement = factory2.updateExpressionWithTypeArguments(\n        extendsElement,\n        classInfo2.classSuper,\n        /*typeArguments*/\n        void 0\n      );\n      const updatedExtendsClause = factory2.updateHeritageClause(extendsClause, [updatedExtendsElement]);\n      heritageClauses = factory2.createNodeArray([updatedExtendsClause]);\n    }\n    const renamedClassThis = classInfo2.classThis ?? factory2.createThis();\n    enterClass(classInfo2);\n    leadingBlockStatements = append(leadingBlockStatements, createMetadata(classInfo2.metadataReference, classInfo2.classSuper));\n    let members = node.members;\n    members = visitNodes2(members, (node2) => isConstructorDeclaration(node2) ? node2 : classElementVisitor(node2), isClassElement);\n    members = visitNodes2(members, (node2) => isConstructorDeclaration(node2) ? classElementVisitor(node2) : node2, isClassElement);\n    if (pendingExpressions) {\n      let outerThis;\n      for (let expression of pendingExpressions) {\n        expression = visitNode(expression, function thisVisitor(node2) {\n          if (!(node2.transformFlags & 16384 /* ContainsLexicalThis */)) {\n            return node2;\n          }\n          switch (node2.kind) {\n            case 110 /* ThisKeyword */:\n              if (!outerThis) {\n                outerThis = factory2.createUniqueName(\"_outerThis\", 16 /* Optimistic */);\n                classDefinitionStatements.unshift(createLet(outerThis, factory2.createThis()));\n              }\n              return outerThis;\n            default:\n              return visitEachChild(node2, thisVisitor, context);\n          }\n        }, isExpression);\n        const statement = factory2.createExpressionStatement(expression);\n        leadingBlockStatements = append(leadingBlockStatements, statement);\n      }\n      pendingExpressions = void 0;\n    }\n    exitClass();\n    if (some(classInfo2.pendingInstanceInitializers) && !getFirstConstructorWithBody(node)) {\n      const initializerStatements = prepareConstructor(node, classInfo2);\n      if (initializerStatements) {\n        const extendsClauseElement = getEffectiveBaseTypeNode(node);\n        const isDerivedClass = !!(extendsClauseElement && skipOuterExpressions(extendsClauseElement.expression).kind !== 106 /* NullKeyword */);\n        const constructorStatements = [];\n        if (isDerivedClass) {\n          const spreadArguments = factory2.createSpreadElement(factory2.createIdentifier(\"arguments\"));\n          const superCall = factory2.createCallExpression(\n            factory2.createSuper(),\n            /*typeArguments*/\n            void 0,\n            [spreadArguments]\n          );\n          constructorStatements.push(factory2.createExpressionStatement(superCall));\n        }\n        addRange(constructorStatements, initializerStatements);\n        const constructorBody = factory2.createBlock(\n          constructorStatements,\n          /*multiLine*/\n          true\n        );\n        syntheticConstructor = factory2.createConstructorDeclaration(\n          /*modifiers*/\n          void 0,\n          [],\n          constructorBody\n        );\n      }\n    }\n    if (classInfo2.staticMethodExtraInitializersName) {\n      classDefinitionStatements.push(\n        createLet(classInfo2.staticMethodExtraInitializersName, factory2.createArrayLiteralExpression())\n      );\n    }\n    if (classInfo2.instanceMethodExtraInitializersName) {\n      classDefinitionStatements.push(\n        createLet(classInfo2.instanceMethodExtraInitializersName, factory2.createArrayLiteralExpression())\n      );\n    }\n    if (classInfo2.memberInfos) {\n      forEachEntry(classInfo2.memberInfos, (memberInfo, member) => {\n        if (isStatic(member)) {\n          classDefinitionStatements.push(createLet(memberInfo.memberDecoratorsName));\n          if (memberInfo.memberInitializersName) {\n            classDefinitionStatements.push(createLet(memberInfo.memberInitializersName, factory2.createArrayLiteralExpression()));\n          }\n          if (memberInfo.memberExtraInitializersName) {\n            classDefinitionStatements.push(createLet(memberInfo.memberExtraInitializersName, factory2.createArrayLiteralExpression()));\n          }\n          if (memberInfo.memberDescriptorName) {\n            classDefinitionStatements.push(createLet(memberInfo.memberDescriptorName));\n          }\n        }\n      });\n    }\n    if (classInfo2.memberInfos) {\n      forEachEntry(classInfo2.memberInfos, (memberInfo, member) => {\n        if (!isStatic(member)) {\n          classDefinitionStatements.push(createLet(memberInfo.memberDecoratorsName));\n          if (memberInfo.memberInitializersName) {\n            classDefinitionStatements.push(createLet(memberInfo.memberInitializersName, factory2.createArrayLiteralExpression()));\n          }\n          if (memberInfo.memberExtraInitializersName) {\n            classDefinitionStatements.push(createLet(memberInfo.memberExtraInitializersName, factory2.createArrayLiteralExpression()));\n          }\n          if (memberInfo.memberDescriptorName) {\n            classDefinitionStatements.push(createLet(memberInfo.memberDescriptorName));\n          }\n        }\n      });\n    }\n    leadingBlockStatements = addRange(leadingBlockStatements, classInfo2.staticNonFieldDecorationStatements);\n    leadingBlockStatements = addRange(leadingBlockStatements, classInfo2.nonStaticNonFieldDecorationStatements);\n    leadingBlockStatements = addRange(leadingBlockStatements, classInfo2.staticFieldDecorationStatements);\n    leadingBlockStatements = addRange(leadingBlockStatements, classInfo2.nonStaticFieldDecorationStatements);\n    if (classInfo2.classDescriptorName && classInfo2.classDecoratorsName && classInfo2.classExtraInitializersName && classInfo2.classThis) {\n      leadingBlockStatements ?? (leadingBlockStatements = []);\n      const valueProperty = factory2.createPropertyAssignment(\"value\", renamedClassThis);\n      const classDescriptor = factory2.createObjectLiteralExpression([valueProperty]);\n      const classDescriptorAssignment = factory2.createAssignment(classInfo2.classDescriptorName, classDescriptor);\n      const classNameReference = factory2.createPropertyAccessExpression(renamedClassThis, \"name\");\n      const esDecorateHelper2 = emitHelpers().createESDecorateHelper(\n        factory2.createNull(),\n        classDescriptorAssignment,\n        classInfo2.classDecoratorsName,\n        { kind: \"class\", name: classNameReference, metadata: classInfo2.metadataReference },\n        factory2.createNull(),\n        classInfo2.classExtraInitializersName\n      );\n      const esDecorateStatement = factory2.createExpressionStatement(esDecorateHelper2);\n      setSourceMapRange(esDecorateStatement, moveRangePastDecorators(node));\n      leadingBlockStatements.push(esDecorateStatement);\n      const classDescriptorValueReference = factory2.createPropertyAccessExpression(classInfo2.classDescriptorName, \"value\");\n      const classThisAssignment = factory2.createAssignment(classInfo2.classThis, classDescriptorValueReference);\n      const classReferenceAssignment = factory2.createAssignment(classReference, classThisAssignment);\n      leadingBlockStatements.push(factory2.createExpressionStatement(classReferenceAssignment));\n    }\n    leadingBlockStatements.push(createSymbolMetadata(renamedClassThis, classInfo2.metadataReference));\n    if (some(classInfo2.pendingStaticInitializers)) {\n      for (const initializer of classInfo2.pendingStaticInitializers) {\n        const initializerStatement = factory2.createExpressionStatement(initializer);\n        setSourceMapRange(initializerStatement, getSourceMapRange(initializer));\n        trailingBlockStatements = append(trailingBlockStatements, initializerStatement);\n      }\n      classInfo2.pendingStaticInitializers = void 0;\n    }\n    if (classInfo2.classExtraInitializersName) {\n      const runClassInitializersHelper = emitHelpers().createRunInitializersHelper(renamedClassThis, classInfo2.classExtraInitializersName);\n      const runClassInitializersStatement = factory2.createExpressionStatement(runClassInitializersHelper);\n      setSourceMapRange(runClassInitializersStatement, node.name ?? moveRangePastDecorators(node));\n      trailingBlockStatements = append(trailingBlockStatements, runClassInitializersStatement);\n    }\n    if (leadingBlockStatements && trailingBlockStatements && !classInfo2.hasStaticInitializers) {\n      addRange(leadingBlockStatements, trailingBlockStatements);\n      trailingBlockStatements = void 0;\n    }\n    const leadingStaticBlock = leadingBlockStatements && factory2.createClassStaticBlockDeclaration(factory2.createBlock(\n      leadingBlockStatements,\n      /*multiLine*/\n      true\n    ));\n    if (leadingStaticBlock && shouldTransformPrivateStaticElementsInClass) {\n      setInternalEmitFlags(leadingStaticBlock, 32 /* TransformPrivateStaticElements */);\n    }\n    const trailingStaticBlock = trailingBlockStatements && factory2.createClassStaticBlockDeclaration(factory2.createBlock(\n      trailingBlockStatements,\n      /*multiLine*/\n      true\n    ));\n    if (leadingStaticBlock || syntheticConstructor || trailingStaticBlock) {\n      const newMembers = [];\n      const existingNamedEvaluationHelperBlockIndex = members.findIndex(isClassNamedEvaluationHelperBlock);\n      if (leadingStaticBlock) {\n        addRange(newMembers, members, 0, existingNamedEvaluationHelperBlockIndex + 1);\n        newMembers.push(leadingStaticBlock);\n        addRange(newMembers, members, existingNamedEvaluationHelperBlockIndex + 1);\n      } else {\n        addRange(newMembers, members);\n      }\n      if (syntheticConstructor) {\n        newMembers.push(syntheticConstructor);\n      }\n      if (trailingStaticBlock) {\n        newMembers.push(trailingStaticBlock);\n      }\n      members = setTextRange(factory2.createNodeArray(newMembers), members);\n    }\n    const lexicalEnvironment = endLexicalEnvironment();\n    let classExpression;\n    if (classDecorators) {\n      classExpression = factory2.createClassExpression(\n        /*modifiers*/\n        void 0,\n        /*name*/\n        void 0,\n        /*typeParameters*/\n        void 0,\n        heritageClauses,\n        members\n      );\n      if (classInfo2.classThis) {\n        classExpression = injectClassThisAssignmentIfMissing(factory2, classExpression, classInfo2.classThis);\n      }\n      const classReferenceDeclaration = factory2.createVariableDeclaration(\n        classReference,\n        /*exclamationToken*/\n        void 0,\n        /*type*/\n        void 0,\n        classExpression\n      );\n      const classReferenceVarDeclList = factory2.createVariableDeclarationList([classReferenceDeclaration]);\n      const returnExpr = classInfo2.classThis ? factory2.createAssignment(classReference, classInfo2.classThis) : classReference;\n      classDefinitionStatements.push(\n        factory2.createVariableStatement(\n          /*modifiers*/\n          void 0,\n          classReferenceVarDeclList\n        ),\n        factory2.createReturnStatement(returnExpr)\n      );\n    } else {\n      classExpression = factory2.createClassExpression(\n        /*modifiers*/\n        void 0,\n        node.name,\n        /*typeParameters*/\n        void 0,\n        heritageClauses,\n        members\n      );\n      classDefinitionStatements.push(factory2.createReturnStatement(classExpression));\n    }\n    if (shouldTransformPrivateStaticElementsInClass) {\n      addInternalEmitFlags(classExpression, 32 /* TransformPrivateStaticElements */);\n      for (const member of classExpression.members) {\n        if ((isPrivateIdentifierClassElementDeclaration(member) || isAutoAccessorPropertyDeclaration(member)) && hasStaticModifier(member)) {\n          addInternalEmitFlags(member, 32 /* TransformPrivateStaticElements */);\n        }\n      }\n    }\n    setOriginalNode(classExpression, node);\n    return factory2.createImmediatelyInvokedArrowFunction(factory2.mergeLexicalEnvironment(classDefinitionStatements, lexicalEnvironment));\n  }\n  function isDecoratedClassLike(node) {\n    return classOrConstructorParameterIsDecorated(\n      /*useLegacyDecorators*/\n      false,\n      node\n    ) || childIsDecorated(\n      /*useLegacyDecorators*/\n      false,\n      node\n    );\n  }\n  function visitClassDeclaration(node) {\n    if (isDecoratedClassLike(node)) {\n      const statements = [];\n      const originalClass = getOriginalNode(node, isClassLike) ?? node;\n      const className = originalClass.name ? factory2.createStringLiteralFromNode(originalClass.name) : factory2.createStringLiteral(\"default\");\n      const isExport = hasSyntacticModifier(node, 32 /* Export */);\n      const isDefault = hasSyntacticModifier(node, 2048 /* Default */);\n      if (!node.name) {\n        node = injectClassNamedEvaluationHelperBlockIfMissing(context, node, className);\n      }\n      if (isExport && isDefault) {\n        const iife = transformClassLike(node);\n        if (node.name) {\n          const varDecl = factory2.createVariableDeclaration(\n            factory2.getLocalName(node),\n            /*exclamationToken*/\n            void 0,\n            /*type*/\n            void 0,\n            iife\n          );\n          setOriginalNode(varDecl, node);\n          const varDecls = factory2.createVariableDeclarationList([varDecl], 1 /* Let */);\n          const varStatement = factory2.createVariableStatement(\n            /*modifiers*/\n            void 0,\n            varDecls\n          );\n          statements.push(varStatement);\n          const exportStatement = factory2.createExportDefault(factory2.getDeclarationName(node));\n          setOriginalNode(exportStatement, node);\n          setCommentRange(exportStatement, getCommentRange(node));\n          setSourceMapRange(exportStatement, moveRangePastDecorators(node));\n          statements.push(exportStatement);\n        } else {\n          const exportStatement = factory2.createExportDefault(iife);\n          setOriginalNode(exportStatement, node);\n          setCommentRange(exportStatement, getCommentRange(node));\n          setSourceMapRange(exportStatement, moveRangePastDecorators(node));\n          statements.push(exportStatement);\n        }\n      } else {\n        Debug.assertIsDefined(node.name, \"A class declaration that is not a default export must have a name.\");\n        const iife = transformClassLike(node);\n        const modifierVisitorNoExport = isExport ? (node2) => isExportModifier(node2) ? void 0 : modifierVisitor(node2) : modifierVisitor;\n        const modifiers = visitNodes2(node.modifiers, modifierVisitorNoExport, isModifier);\n        const declName = factory2.getLocalName(\n          node,\n          /*allowComments*/\n          false,\n          /*allowSourceMaps*/\n          true\n        );\n        const varDecl = factory2.createVariableDeclaration(\n          declName,\n          /*exclamationToken*/\n          void 0,\n          /*type*/\n          void 0,\n          iife\n        );\n        setOriginalNode(varDecl, node);\n        const varDecls = factory2.createVariableDeclarationList([varDecl], 1 /* Let */);\n        const varStatement = factory2.createVariableStatement(modifiers, varDecls);\n        setOriginalNode(varStatement, node);\n        setCommentRange(varStatement, getCommentRange(node));\n        statements.push(varStatement);\n        if (isExport) {\n          const exportStatement = factory2.createExternalModuleExport(declName);\n          setOriginalNode(exportStatement, node);\n          statements.push(exportStatement);\n        }\n      }\n      return singleOrMany(statements);\n    } else {\n      const modifiers = visitNodes2(node.modifiers, modifierVisitor, isModifier);\n      const heritageClauses = visitNodes2(node.heritageClauses, visitor, isHeritageClause);\n      enterClass(\n        /*classInfo*/\n        void 0\n      );\n      const members = visitNodes2(node.members, classElementVisitor, isClassElement);\n      exitClass();\n      return factory2.updateClassDeclaration(\n        node,\n        modifiers,\n        node.name,\n        /*typeParameters*/\n        void 0,\n        heritageClauses,\n        members\n      );\n    }\n  }\n  function visitClassExpression(node) {\n    if (isDecoratedClassLike(node)) {\n      const iife = transformClassLike(node);\n      setOriginalNode(iife, node);\n      return iife;\n    } else {\n      const modifiers = visitNodes2(node.modifiers, modifierVisitor, isModifier);\n      const heritageClauses = visitNodes2(node.heritageClauses, visitor, isHeritageClause);\n      enterClass(\n        /*classInfo*/\n        void 0\n      );\n      const members = visitNodes2(node.members, classElementVisitor, isClassElement);\n      exitClass();\n      return factory2.updateClassExpression(\n        node,\n        modifiers,\n        node.name,\n        /*typeParameters*/\n        void 0,\n        heritageClauses,\n        members\n      );\n    }\n  }\n  function prepareConstructor(_parent, classInfo2) {\n    if (some(classInfo2.pendingInstanceInitializers)) {\n      const statements = [];\n      statements.push(\n        factory2.createExpressionStatement(\n          factory2.inlineExpressions(classInfo2.pendingInstanceInitializers)\n        )\n      );\n      classInfo2.pendingInstanceInitializers = void 0;\n      return statements;\n    }\n  }\n  function transformConstructorBodyWorker(statementsOut, statementsIn, statementOffset, superPath, superPathDepth, initializerStatements) {\n    const superStatementIndex = superPath[superPathDepth];\n    const superStatement = statementsIn[superStatementIndex];\n    addRange(statementsOut, visitNodes2(statementsIn, visitor, isStatement, statementOffset, superStatementIndex - statementOffset));\n    if (isTryStatement(superStatement)) {\n      const tryBlockStatements = [];\n      transformConstructorBodyWorker(\n        tryBlockStatements,\n        superStatement.tryBlock.statements,\n        /*statementOffset*/\n        0,\n        superPath,\n        superPathDepth + 1,\n        initializerStatements\n      );\n      const tryBlockStatementsArray = factory2.createNodeArray(tryBlockStatements);\n      setTextRange(tryBlockStatementsArray, superStatement.tryBlock.statements);\n      statementsOut.push(factory2.updateTryStatement(\n        superStatement,\n        factory2.updateBlock(superStatement.tryBlock, tryBlockStatements),\n        visitNode(superStatement.catchClause, visitor, isCatchClause),\n        visitNode(superStatement.finallyBlock, visitor, isBlock)\n      ));\n    } else {\n      addRange(statementsOut, visitNodes2(statementsIn, visitor, isStatement, superStatementIndex, 1));\n      addRange(statementsOut, initializerStatements);\n    }\n    addRange(statementsOut, visitNodes2(statementsIn, visitor, isStatement, superStatementIndex + 1));\n  }\n  function visitConstructorDeclaration(node) {\n    enterClassElement(node);\n    const modifiers = visitNodes2(node.modifiers, modifierVisitor, isModifier);\n    const parameters = visitNodes2(node.parameters, visitor, isParameter);\n    let body;\n    if (node.body && classInfo) {\n      const initializerStatements = prepareConstructor(classInfo.class, classInfo);\n      if (initializerStatements) {\n        const statements = [];\n        const nonPrologueStart = factory2.copyPrologue(\n          node.body.statements,\n          statements,\n          /*ensureUseStrict*/\n          false,\n          visitor\n        );\n        const superStatementIndices = findSuperStatementIndexPath(node.body.statements, nonPrologueStart);\n        if (superStatementIndices.length > 0) {\n          transformConstructorBodyWorker(statements, node.body.statements, nonPrologueStart, superStatementIndices, 0, initializerStatements);\n        } else {\n          addRange(statements, initializerStatements);\n          addRange(statements, visitNodes2(node.body.statements, visitor, isStatement));\n        }\n        body = factory2.createBlock(\n          statements,\n          /*multiLine*/\n          true\n        );\n        setOriginalNode(body, node.body);\n        setTextRange(body, node.body);\n      }\n    }\n    body ?? (body = visitNode(node.body, visitor, isBlock));\n    exitClassElement();\n    return factory2.updateConstructorDeclaration(node, modifiers, parameters, body);\n  }\n  function finishClassElement(updated, original) {\n    if (updated !== original) {\n      setCommentRange(updated, original);\n      setSourceMapRange(updated, moveRangePastDecorators(original));\n    }\n    return updated;\n  }\n  function partialTransformClassElement(member, classInfo2, createDescriptor) {\n    let referencedName;\n    let name;\n    let initializersName;\n    let extraInitializersName;\n    let thisArg;\n    let descriptorName;\n    if (!classInfo2) {\n      const modifiers2 = visitNodes2(member.modifiers, modifierVisitor, isModifier);\n      enterName();\n      name = visitPropertyName(member.name);\n      exitName();\n      return { modifiers: modifiers2, referencedName, name, initializersName, descriptorName, thisArg };\n    }\n    const memberDecorators = transformAllDecoratorsOfDeclaration(getAllDecoratorsOfClassElement(\n      member,\n      classInfo2.class,\n      /*useLegacyDecorators*/\n      false\n    ));\n    const modifiers = visitNodes2(member.modifiers, modifierVisitor, isModifier);\n    if (memberDecorators) {\n      const memberDecoratorsName = createHelperVariable(member, \"decorators\");\n      const memberDecoratorsArray = factory2.createArrayLiteralExpression(memberDecorators);\n      const memberDecoratorsAssignment = factory2.createAssignment(memberDecoratorsName, memberDecoratorsArray);\n      const memberInfo = { memberDecoratorsName };\n      classInfo2.memberInfos ?? (classInfo2.memberInfos = /* @__PURE__ */ new Map());\n      classInfo2.memberInfos.set(member, memberInfo);\n      pendingExpressions ?? (pendingExpressions = []);\n      pendingExpressions.push(memberDecoratorsAssignment);\n      const statements = isMethodOrAccessor(member) || isAutoAccessorPropertyDeclaration(member) ? isStatic(member) ? classInfo2.staticNonFieldDecorationStatements ?? (classInfo2.staticNonFieldDecorationStatements = []) : classInfo2.nonStaticNonFieldDecorationStatements ?? (classInfo2.nonStaticNonFieldDecorationStatements = []) : isPropertyDeclaration(member) && !isAutoAccessorPropertyDeclaration(member) ? isStatic(member) ? classInfo2.staticFieldDecorationStatements ?? (classInfo2.staticFieldDecorationStatements = []) : classInfo2.nonStaticFieldDecorationStatements ?? (classInfo2.nonStaticFieldDecorationStatements = []) : Debug.fail();\n      const kind = isGetAccessorDeclaration(member) ? \"getter\" : isSetAccessorDeclaration(member) ? \"setter\" : isMethodDeclaration(member) ? \"method\" : isAutoAccessorPropertyDeclaration(member) ? \"accessor\" : isPropertyDeclaration(member) ? \"field\" : Debug.fail();\n      let propertyName;\n      if (isIdentifier(member.name) || isPrivateIdentifier(member.name)) {\n        propertyName = { computed: false, name: member.name };\n      } else if (isPropertyNameLiteral(member.name)) {\n        propertyName = { computed: true, name: factory2.createStringLiteralFromNode(member.name) };\n      } else {\n        const expression = member.name.expression;\n        if (isPropertyNameLiteral(expression) && !isIdentifier(expression)) {\n          propertyName = { computed: true, name: factory2.createStringLiteralFromNode(expression) };\n        } else {\n          enterName();\n          ({ referencedName, name } = visitReferencedPropertyName(member.name));\n          propertyName = { computed: true, name: referencedName };\n          exitName();\n        }\n      }\n      const context2 = {\n        kind,\n        name: propertyName,\n        static: isStatic(member),\n        private: isPrivateIdentifier(member.name),\n        access: {\n          // 15.7.3 CreateDecoratorAccessObject (kind, name)\n          // 2. If _kind_ is ~field~, ~method~, ~accessor~, or ~getter~, then ...\n          get: isPropertyDeclaration(member) || isGetAccessorDeclaration(member) || isMethodDeclaration(member),\n          // 3. If _kind_ is ~field~, ~accessor~, or ~setter~, then ...\n          set: isPropertyDeclaration(member) || isSetAccessorDeclaration(member)\n        },\n        metadata: classInfo2.metadataReference\n      };\n      if (isMethodOrAccessor(member)) {\n        const methodExtraInitializersName = isStatic(member) ? classInfo2.staticMethodExtraInitializersName : classInfo2.instanceMethodExtraInitializersName;\n        Debug.assertIsDefined(methodExtraInitializersName);\n        let descriptor;\n        if (isPrivateIdentifierClassElementDeclaration(member) && createDescriptor) {\n          descriptor = createDescriptor(member, visitNodes2(modifiers, (node) => tryCast(node, isAsyncModifier), isModifier));\n          memberInfo.memberDescriptorName = descriptorName = createHelperVariable(member, \"descriptor\");\n          descriptor = factory2.createAssignment(descriptorName, descriptor);\n        }\n        const esDecorateExpression = emitHelpers().createESDecorateHelper(factory2.createThis(), descriptor ?? factory2.createNull(), memberDecoratorsName, context2, factory2.createNull(), methodExtraInitializersName);\n        const esDecorateStatement = factory2.createExpressionStatement(esDecorateExpression);\n        setSourceMapRange(esDecorateStatement, moveRangePastDecorators(member));\n        statements.push(esDecorateStatement);\n      } else if (isPropertyDeclaration(member)) {\n        initializersName = memberInfo.memberInitializersName ?? (memberInfo.memberInitializersName = createHelperVariable(member, \"initializers\"));\n        extraInitializersName = memberInfo.memberExtraInitializersName ?? (memberInfo.memberExtraInitializersName = createHelperVariable(member, \"extraInitializers\"));\n        if (isStatic(member)) {\n          thisArg = classInfo2.classThis;\n        }\n        let descriptor;\n        if (isPrivateIdentifierClassElementDeclaration(member) && hasAccessorModifier(member) && createDescriptor) {\n          descriptor = createDescriptor(\n            member,\n            /*modifiers*/\n            void 0\n          );\n          memberInfo.memberDescriptorName = descriptorName = createHelperVariable(member, \"descriptor\");\n          descriptor = factory2.createAssignment(descriptorName, descriptor);\n        }\n        const esDecorateExpression = emitHelpers().createESDecorateHelper(\n          isAutoAccessorPropertyDeclaration(member) ? factory2.createThis() : factory2.createNull(),\n          descriptor ?? factory2.createNull(),\n          memberDecoratorsName,\n          context2,\n          initializersName,\n          extraInitializersName\n        );\n        const esDecorateStatement = factory2.createExpressionStatement(esDecorateExpression);\n        setSourceMapRange(esDecorateStatement, moveRangePastDecorators(member));\n        statements.push(esDecorateStatement);\n      }\n    }\n    if (name === void 0) {\n      enterName();\n      name = visitPropertyName(member.name);\n      exitName();\n    }\n    if (!some(modifiers) && (isMethodDeclaration(member) || isPropertyDeclaration(member))) {\n      setEmitFlags(name, 1024 /* NoLeadingComments */);\n    }\n    return { modifiers, referencedName, name, initializersName, extraInitializersName, descriptorName, thisArg };\n  }\n  function visitMethodDeclaration(node) {\n    enterClassElement(node);\n    const { modifiers, name, descriptorName } = partialTransformClassElement(node, classInfo, createMethodDescriptorObject);\n    if (descriptorName) {\n      exitClassElement();\n      return finishClassElement(createMethodDescriptorForwarder(modifiers, name, descriptorName), node);\n    } else {\n      const parameters = visitNodes2(node.parameters, visitor, isParameter);\n      const body = visitNode(node.body, visitor, isBlock);\n      exitClassElement();\n      return finishClassElement(factory2.updateMethodDeclaration(\n        node,\n        modifiers,\n        node.asteriskToken,\n        name,\n        /*questionToken*/\n        void 0,\n        /*typeParameters*/\n        void 0,\n        parameters,\n        /*type*/\n        void 0,\n        body\n      ), node);\n    }\n  }\n  function visitGetAccessorDeclaration(node) {\n    enterClassElement(node);\n    const { modifiers, name, descriptorName } = partialTransformClassElement(node, classInfo, createGetAccessorDescriptorObject);\n    if (descriptorName) {\n      exitClassElement();\n      return finishClassElement(createGetAccessorDescriptorForwarder(modifiers, name, descriptorName), node);\n    } else {\n      const parameters = visitNodes2(node.parameters, visitor, isParameter);\n      const body = visitNode(node.body, visitor, isBlock);\n      exitClassElement();\n      return finishClassElement(factory2.updateGetAccessorDeclaration(\n        node,\n        modifiers,\n        name,\n        parameters,\n        /*type*/\n        void 0,\n        body\n      ), node);\n    }\n  }\n  function visitSetAccessorDeclaration(node) {\n    enterClassElement(node);\n    const { modifiers, name, descriptorName } = partialTransformClassElement(node, classInfo, createSetAccessorDescriptorObject);\n    if (descriptorName) {\n      exitClassElement();\n      return finishClassElement(createSetAccessorDescriptorForwarder(modifiers, name, descriptorName), node);\n    } else {\n      const parameters = visitNodes2(node.parameters, visitor, isParameter);\n      const body = visitNode(node.body, visitor, isBlock);\n      exitClassElement();\n      return finishClassElement(factory2.updateSetAccessorDeclaration(node, modifiers, name, parameters, body), node);\n    }\n  }\n  function visitClassStaticBlockDeclaration(node) {\n    enterClassElement(node);\n    let result;\n    if (isClassNamedEvaluationHelperBlock(node)) {\n      result = visitEachChild(node, visitor, context);\n    } else if (isClassThisAssignmentBlock(node)) {\n      const savedClassThis = classThis;\n      classThis = void 0;\n      result = visitEachChild(node, visitor, context);\n      classThis = savedClassThis;\n    } else {\n      node = visitEachChild(node, visitor, context);\n      result = node;\n      if (classInfo) {\n        classInfo.hasStaticInitializers = true;\n        if (some(classInfo.pendingStaticInitializers)) {\n          const statements = [];\n          for (const initializer of classInfo.pendingStaticInitializers) {\n            const initializerStatement = factory2.createExpressionStatement(initializer);\n            setSourceMapRange(initializerStatement, getSourceMapRange(initializer));\n            statements.push(initializerStatement);\n          }\n          const body = factory2.createBlock(\n            statements,\n            /*multiLine*/\n            true\n          );\n          const staticBlock = factory2.createClassStaticBlockDeclaration(body);\n          result = [staticBlock, result];\n          classInfo.pendingStaticInitializers = void 0;\n        }\n      }\n    }\n    exitClassElement();\n    return result;\n  }\n  function visitPropertyDeclaration(node) {\n    if (isNamedEvaluation(node, isAnonymousClassNeedingAssignedName)) {\n      node = transformNamedEvaluation(context, node, canIgnoreEmptyStringLiteralInAssignedName(node.initializer));\n    }\n    enterClassElement(node);\n    Debug.assert(!isAmbientPropertyDeclaration(node), \"Not yet implemented.\");\n    const { modifiers, name, initializersName, extraInitializersName, descriptorName, thisArg } = partialTransformClassElement(node, classInfo, hasAccessorModifier(node) ? createAccessorPropertyDescriptorObject : void 0);\n    startLexicalEnvironment();\n    let initializer = visitNode(node.initializer, visitor, isExpression);\n    if (initializersName) {\n      initializer = emitHelpers().createRunInitializersHelper(\n        thisArg ?? factory2.createThis(),\n        initializersName,\n        initializer ?? factory2.createVoidZero()\n      );\n    }\n    if (isStatic(node) && classInfo && initializer) {\n      classInfo.hasStaticInitializers = true;\n    }\n    const declarations = endLexicalEnvironment();\n    if (some(declarations)) {\n      initializer = factory2.createImmediatelyInvokedArrowFunction([\n        ...declarations,\n        factory2.createReturnStatement(initializer)\n      ]);\n    }\n    if (classInfo) {\n      if (isStatic(node)) {\n        initializer = injectPendingInitializers(\n          classInfo,\n          /*isStatic*/\n          true,\n          initializer\n        );\n        if (extraInitializersName) {\n          classInfo.pendingStaticInitializers ?? (classInfo.pendingStaticInitializers = []);\n          classInfo.pendingStaticInitializers.push(\n            emitHelpers().createRunInitializersHelper(\n              classInfo.classThis ?? factory2.createThis(),\n              extraInitializersName\n            )\n          );\n        }\n      } else {\n        initializer = injectPendingInitializers(\n          classInfo,\n          /*isStatic*/\n          false,\n          initializer\n        );\n        if (extraInitializersName) {\n          classInfo.pendingInstanceInitializers ?? (classInfo.pendingInstanceInitializers = []);\n          classInfo.pendingInstanceInitializers.push(\n            emitHelpers().createRunInitializersHelper(\n              factory2.createThis(),\n              extraInitializersName\n            )\n          );\n        }\n      }\n    }\n    exitClassElement();\n    if (hasAccessorModifier(node) && descriptorName) {\n      const commentRange = getCommentRange(node);\n      const sourceMapRange = getSourceMapRange(node);\n      const name2 = node.name;\n      let getterName = name2;\n      let setterName = name2;\n      if (isComputedPropertyName(name2) && !isSimpleInlineableExpression(name2.expression)) {\n        const cacheAssignment = findComputedPropertyNameCacheAssignment(name2);\n        if (cacheAssignment) {\n          getterName = factory2.updateComputedPropertyName(name2, visitNode(name2.expression, visitor, isExpression));\n          setterName = factory2.updateComputedPropertyName(name2, cacheAssignment.left);\n        } else {\n          const temp = factory2.createTempVariable(hoistVariableDeclaration);\n          setSourceMapRange(temp, name2.expression);\n          const expression = visitNode(name2.expression, visitor, isExpression);\n          const assignment = factory2.createAssignment(temp, expression);\n          setSourceMapRange(assignment, name2.expression);\n          getterName = factory2.updateComputedPropertyName(name2, assignment);\n          setterName = factory2.updateComputedPropertyName(name2, temp);\n        }\n      }\n      const modifiersWithoutAccessor = visitNodes2(modifiers, (node2) => node2.kind !== 129 /* AccessorKeyword */ ? node2 : void 0, isModifier);\n      const backingField = createAccessorPropertyBackingField(factory2, node, modifiersWithoutAccessor, initializer);\n      setOriginalNode(backingField, node);\n      setEmitFlags(backingField, 3072 /* NoComments */);\n      setSourceMapRange(backingField, sourceMapRange);\n      setSourceMapRange(backingField.name, node.name);\n      const getter = createGetAccessorDescriptorForwarder(modifiersWithoutAccessor, getterName, descriptorName);\n      setOriginalNode(getter, node);\n      setCommentRange(getter, commentRange);\n      setSourceMapRange(getter, sourceMapRange);\n      const setter = createSetAccessorDescriptorForwarder(modifiersWithoutAccessor, setterName, descriptorName);\n      setOriginalNode(setter, node);\n      setEmitFlags(setter, 3072 /* NoComments */);\n      setSourceMapRange(setter, sourceMapRange);\n      return [backingField, getter, setter];\n    }\n    return finishClassElement(factory2.updatePropertyDeclaration(\n      node,\n      modifiers,\n      name,\n      /*questionOrExclamationToken*/\n      void 0,\n      /*type*/\n      void 0,\n      initializer\n    ), node);\n  }\n  function visitThisExpression(node) {\n    return classThis ?? node;\n  }\n  function visitCallExpression(node) {\n    if (isSuperProperty(node.expression) && classThis) {\n      const expression = visitNode(node.expression, visitor, isExpression);\n      const argumentsList = visitNodes2(node.arguments, visitor, isExpression);\n      const invocation = factory2.createFunctionCallCall(expression, classThis, argumentsList);\n      setOriginalNode(invocation, node);\n      setTextRange(invocation, node);\n      return invocation;\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitTaggedTemplateExpression(node) {\n    if (isSuperProperty(node.tag) && classThis) {\n      const tag = visitNode(node.tag, visitor, isExpression);\n      const boundTag = factory2.createFunctionBindCall(tag, classThis, []);\n      setOriginalNode(boundTag, node);\n      setTextRange(boundTag, node);\n      const template = visitNode(node.template, visitor, isTemplateLiteral);\n      return factory2.updateTaggedTemplateExpression(\n        node,\n        boundTag,\n        /*typeArguments*/\n        void 0,\n        template\n      );\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitPropertyAccessExpression(node) {\n    if (isSuperProperty(node) && isIdentifier(node.name) && classThis && classSuper) {\n      const propertyName = factory2.createStringLiteralFromNode(node.name);\n      const superProperty = factory2.createReflectGetCall(classSuper, propertyName, classThis);\n      setOriginalNode(superProperty, node.expression);\n      setTextRange(superProperty, node.expression);\n      return superProperty;\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitElementAccessExpression(node) {\n    if (isSuperProperty(node) && classThis && classSuper) {\n      const propertyName = visitNode(node.argumentExpression, visitor, isExpression);\n      const superProperty = factory2.createReflectGetCall(classSuper, propertyName, classThis);\n      setOriginalNode(superProperty, node.expression);\n      setTextRange(superProperty, node.expression);\n      return superProperty;\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitParameterDeclaration(node) {\n    if (isNamedEvaluation(node, isAnonymousClassNeedingAssignedName)) {\n      node = transformNamedEvaluation(context, node, canIgnoreEmptyStringLiteralInAssignedName(node.initializer));\n    }\n    const updated = factory2.updateParameterDeclaration(\n      node,\n      /*modifiers*/\n      void 0,\n      node.dotDotDotToken,\n      visitNode(node.name, visitor, isBindingName),\n      /*questionToken*/\n      void 0,\n      /*type*/\n      void 0,\n      visitNode(node.initializer, visitor, isExpression)\n    );\n    if (updated !== node) {\n      setCommentRange(updated, node);\n      setTextRange(updated, moveRangePastModifiers(node));\n      setSourceMapRange(updated, moveRangePastModifiers(node));\n      setEmitFlags(updated.name, 64 /* NoTrailingSourceMap */);\n    }\n    return updated;\n  }\n  function isAnonymousClassNeedingAssignedName(node) {\n    return isClassExpression(node) && !node.name && isDecoratedClassLike(node);\n  }\n  function canIgnoreEmptyStringLiteralInAssignedName(node) {\n    const innerExpression = skipOuterExpressions(node);\n    return isClassExpression(innerExpression) && !innerExpression.name && !classOrConstructorParameterIsDecorated(\n      /*useLegacyDecorators*/\n      false,\n      innerExpression\n    );\n  }\n  function visitForStatement(node) {\n    return factory2.updateForStatement(\n      node,\n      visitNode(node.initializer, discardedValueVisitor, isForInitializer),\n      visitNode(node.condition, visitor, isExpression),\n      visitNode(node.incrementor, discardedValueVisitor, isExpression),\n      visitIterationBody(node.statement, visitor, context)\n    );\n  }\n  function visitExpressionStatement(node) {\n    return visitEachChild(node, discardedValueVisitor, context);\n  }\n  function visitBinaryExpression(node, discarded) {\n    if (isDestructuringAssignment(node)) {\n      const left = visitAssignmentPattern(node.left);\n      const right = visitNode(node.right, visitor, isExpression);\n      return factory2.updateBinaryExpression(node, left, node.operatorToken, right);\n    }\n    if (isAssignmentExpression(node)) {\n      if (isNamedEvaluation(node, isAnonymousClassNeedingAssignedName)) {\n        node = transformNamedEvaluation(context, node, canIgnoreEmptyStringLiteralInAssignedName(node.right));\n        return visitEachChild(node, visitor, context);\n      }\n      if (isSuperProperty(node.left) && classThis && classSuper) {\n        let setterName = isElementAccessExpression(node.left) ? visitNode(node.left.argumentExpression, visitor, isExpression) : isIdentifier(node.left.name) ? factory2.createStringLiteralFromNode(node.left.name) : void 0;\n        if (setterName) {\n          let expression = visitNode(node.right, visitor, isExpression);\n          if (isCompoundAssignment(node.operatorToken.kind)) {\n            let getterName = setterName;\n            if (!isSimpleInlineableExpression(setterName)) {\n              getterName = factory2.createTempVariable(hoistVariableDeclaration);\n              setterName = factory2.createAssignment(getterName, setterName);\n            }\n            const superPropertyGet = factory2.createReflectGetCall(\n              classSuper,\n              getterName,\n              classThis\n            );\n            setOriginalNode(superPropertyGet, node.left);\n            setTextRange(superPropertyGet, node.left);\n            expression = factory2.createBinaryExpression(\n              superPropertyGet,\n              getNonAssignmentOperatorForCompoundAssignment(node.operatorToken.kind),\n              expression\n            );\n            setTextRange(expression, node);\n          }\n          const temp = discarded ? void 0 : factory2.createTempVariable(hoistVariableDeclaration);\n          if (temp) {\n            expression = factory2.createAssignment(temp, expression);\n            setTextRange(temp, node);\n          }\n          expression = factory2.createReflectSetCall(\n            classSuper,\n            setterName,\n            expression,\n            classThis\n          );\n          setOriginalNode(expression, node);\n          setTextRange(expression, node);\n          if (temp) {\n            expression = factory2.createComma(expression, temp);\n            setTextRange(expression, node);\n          }\n          return expression;\n        }\n      }\n    }\n    if (node.operatorToken.kind === 28 /* CommaToken */) {\n      const left = visitNode(node.left, discardedValueVisitor, isExpression);\n      const right = visitNode(node.right, discarded ? discardedValueVisitor : visitor, isExpression);\n      return factory2.updateBinaryExpression(node, left, node.operatorToken, right);\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitPreOrPostfixUnaryExpression(node, discarded) {\n    if (node.operator === 46 /* PlusPlusToken */ || node.operator === 47 /* MinusMinusToken */) {\n      const operand = skipParentheses(node.operand);\n      if (isSuperProperty(operand) && classThis && classSuper) {\n        let setterName = isElementAccessExpression(operand) ? visitNode(operand.argumentExpression, visitor, isExpression) : isIdentifier(operand.name) ? factory2.createStringLiteralFromNode(operand.name) : void 0;\n        if (setterName) {\n          let getterName = setterName;\n          if (!isSimpleInlineableExpression(setterName)) {\n            getterName = factory2.createTempVariable(hoistVariableDeclaration);\n            setterName = factory2.createAssignment(getterName, setterName);\n          }\n          let expression = factory2.createReflectGetCall(classSuper, getterName, classThis);\n          setOriginalNode(expression, node);\n          setTextRange(expression, node);\n          const temp = discarded ? void 0 : factory2.createTempVariable(hoistVariableDeclaration);\n          expression = expandPreOrPostfixIncrementOrDecrementExpression(factory2, node, expression, hoistVariableDeclaration, temp);\n          expression = factory2.createReflectSetCall(classSuper, setterName, expression, classThis);\n          setOriginalNode(expression, node);\n          setTextRange(expression, node);\n          if (temp) {\n            expression = factory2.createComma(expression, temp);\n            setTextRange(expression, node);\n          }\n          return expression;\n        }\n      }\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitCommaListExpression(node, discarded) {\n    const elements = discarded ? visitCommaListElements(node.elements, discardedValueVisitor) : visitCommaListElements(node.elements, visitor, discardedValueVisitor);\n    return factory2.updateCommaListExpression(node, elements);\n  }\n  function visitReferencedPropertyName(node) {\n    if (isPropertyNameLiteral(node) || isPrivateIdentifier(node)) {\n      const referencedName2 = factory2.createStringLiteralFromNode(node);\n      const name2 = visitNode(node, visitor, isPropertyName);\n      return { referencedName: referencedName2, name: name2 };\n    }\n    if (isPropertyNameLiteral(node.expression) && !isIdentifier(node.expression)) {\n      const referencedName2 = factory2.createStringLiteralFromNode(node.expression);\n      const name2 = visitNode(node, visitor, isPropertyName);\n      return { referencedName: referencedName2, name: name2 };\n    }\n    const referencedName = factory2.getGeneratedNameForNode(node);\n    hoistVariableDeclaration(referencedName);\n    const key = emitHelpers().createPropKeyHelper(visitNode(node.expression, visitor, isExpression));\n    const assignment = factory2.createAssignment(referencedName, key);\n    const name = factory2.updateComputedPropertyName(node, injectPendingExpressions(assignment));\n    return { referencedName, name };\n  }\n  function visitPropertyName(node) {\n    if (isComputedPropertyName(node)) {\n      return visitComputedPropertyName(node);\n    }\n    return visitNode(node, visitor, isPropertyName);\n  }\n  function visitComputedPropertyName(node) {\n    let expression = visitNode(node.expression, visitor, isExpression);\n    if (!isSimpleInlineableExpression(expression)) {\n      expression = injectPendingExpressions(expression);\n    }\n    return factory2.updateComputedPropertyName(node, expression);\n  }\n  function visitPropertyAssignment(node) {\n    if (isNamedEvaluation(node, isAnonymousClassNeedingAssignedName)) {\n      node = transformNamedEvaluation(context, node, canIgnoreEmptyStringLiteralInAssignedName(node.initializer));\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitVariableDeclaration(node) {\n    if (isNamedEvaluation(node, isAnonymousClassNeedingAssignedName)) {\n      node = transformNamedEvaluation(context, node, canIgnoreEmptyStringLiteralInAssignedName(node.initializer));\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitBindingElement(node) {\n    if (isNamedEvaluation(node, isAnonymousClassNeedingAssignedName)) {\n      node = transformNamedEvaluation(context, node, canIgnoreEmptyStringLiteralInAssignedName(node.initializer));\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitDestructuringAssignmentTarget(node) {\n    if (isObjectLiteralExpression(node) || isArrayLiteralExpression(node)) {\n      return visitAssignmentPattern(node);\n    }\n    if (isSuperProperty(node) && classThis && classSuper) {\n      const propertyName = isElementAccessExpression(node) ? visitNode(node.argumentExpression, visitor, isExpression) : isIdentifier(node.name) ? factory2.createStringLiteralFromNode(node.name) : void 0;\n      if (propertyName) {\n        const paramName = factory2.createTempVariable(\n          /*recordTempVariable*/\n          void 0\n        );\n        const expression = factory2.createAssignmentTargetWrapper(\n          paramName,\n          factory2.createReflectSetCall(\n            classSuper,\n            propertyName,\n            paramName,\n            classThis\n          )\n        );\n        setOriginalNode(expression, node);\n        setTextRange(expression, node);\n        return expression;\n      }\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitAssignmentElement(node) {\n    if (isAssignmentExpression(\n      node,\n      /*excludeCompoundAssignment*/\n      true\n    )) {\n      if (isNamedEvaluation(node, isAnonymousClassNeedingAssignedName)) {\n        node = transformNamedEvaluation(context, node, canIgnoreEmptyStringLiteralInAssignedName(node.right));\n      }\n      const assignmentTarget = visitDestructuringAssignmentTarget(node.left);\n      const initializer = visitNode(node.right, visitor, isExpression);\n      return factory2.updateBinaryExpression(node, assignmentTarget, node.operatorToken, initializer);\n    } else {\n      return visitDestructuringAssignmentTarget(node);\n    }\n  }\n  function visitAssignmentRestElement(node) {\n    if (isLeftHandSideExpression(node.expression)) {\n      const expression = visitDestructuringAssignmentTarget(node.expression);\n      return factory2.updateSpreadElement(node, expression);\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitArrayAssignmentElement(node) {\n    Debug.assertNode(node, isArrayBindingOrAssignmentElement);\n    if (isSpreadElement(node)) return visitAssignmentRestElement(node);\n    if (!isOmittedExpression(node)) return visitAssignmentElement(node);\n    return visitEachChild(node, visitor, context);\n  }\n  function visitAssignmentProperty(node) {\n    const name = visitNode(node.name, visitor, isPropertyName);\n    if (isAssignmentExpression(\n      node.initializer,\n      /*excludeCompoundAssignment*/\n      true\n    )) {\n      const assignmentElement = visitAssignmentElement(node.initializer);\n      return factory2.updatePropertyAssignment(node, name, assignmentElement);\n    }\n    if (isLeftHandSideExpression(node.initializer)) {\n      const assignmentElement = visitDestructuringAssignmentTarget(node.initializer);\n      return factory2.updatePropertyAssignment(node, name, assignmentElement);\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitShorthandAssignmentProperty(node) {\n    if (isNamedEvaluation(node, isAnonymousClassNeedingAssignedName)) {\n      node = transformNamedEvaluation(context, node, canIgnoreEmptyStringLiteralInAssignedName(node.objectAssignmentInitializer));\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitAssignmentRestProperty(node) {\n    if (isLeftHandSideExpression(node.expression)) {\n      const expression = visitDestructuringAssignmentTarget(node.expression);\n      return factory2.updateSpreadAssignment(node, expression);\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitObjectAssignmentElement(node) {\n    Debug.assertNode(node, isObjectBindingOrAssignmentElement);\n    if (isSpreadAssignment(node)) return visitAssignmentRestProperty(node);\n    if (isShorthandPropertyAssignment(node)) return visitShorthandAssignmentProperty(node);\n    if (isPropertyAssignment(node)) return visitAssignmentProperty(node);\n    return visitEachChild(node, visitor, context);\n  }\n  function visitAssignmentPattern(node) {\n    if (isArrayLiteralExpression(node)) {\n      const elements = visitNodes2(node.elements, visitArrayAssignmentElement, isExpression);\n      return factory2.updateArrayLiteralExpression(node, elements);\n    } else {\n      const properties = visitNodes2(node.properties, visitObjectAssignmentElement, isObjectLiteralElementLike);\n      return factory2.updateObjectLiteralExpression(node, properties);\n    }\n  }\n  function visitExportAssignment(node) {\n    if (isNamedEvaluation(node, isAnonymousClassNeedingAssignedName)) {\n      node = transformNamedEvaluation(context, node, canIgnoreEmptyStringLiteralInAssignedName(node.expression));\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitParenthesizedExpression(node, discarded) {\n    const visitorFunc = discarded ? discardedValueVisitor : visitor;\n    const expression = visitNode(node.expression, visitorFunc, isExpression);\n    return factory2.updateParenthesizedExpression(node, expression);\n  }\n  function visitPartiallyEmittedExpression(node, discarded) {\n    const visitorFunc = discarded ? discardedValueVisitor : visitor;\n    const expression = visitNode(node.expression, visitorFunc, isExpression);\n    return factory2.updatePartiallyEmittedExpression(node, expression);\n  }\n  function injectPendingExpressionsCommon(pendingExpressions2, expression) {\n    if (some(pendingExpressions2)) {\n      if (expression) {\n        if (isParenthesizedExpression(expression)) {\n          pendingExpressions2.push(expression.expression);\n          expression = factory2.updateParenthesizedExpression(expression, factory2.inlineExpressions(pendingExpressions2));\n        } else {\n          pendingExpressions2.push(expression);\n          expression = factory2.inlineExpressions(pendingExpressions2);\n        }\n      } else {\n        expression = factory2.inlineExpressions(pendingExpressions2);\n      }\n    }\n    return expression;\n  }\n  function injectPendingExpressions(expression) {\n    const result = injectPendingExpressionsCommon(pendingExpressions, expression);\n    Debug.assertIsDefined(result);\n    if (result !== expression) {\n      pendingExpressions = void 0;\n    }\n    return result;\n  }\n  function injectPendingInitializers(classInfo2, isStatic2, expression) {\n    const result = injectPendingExpressionsCommon(isStatic2 ? classInfo2.pendingStaticInitializers : classInfo2.pendingInstanceInitializers, expression);\n    if (result !== expression) {\n      if (isStatic2) {\n        classInfo2.pendingStaticInitializers = void 0;\n      } else {\n        classInfo2.pendingInstanceInitializers = void 0;\n      }\n    }\n    return result;\n  }\n  function transformAllDecoratorsOfDeclaration(allDecorators) {\n    if (!allDecorators) {\n      return void 0;\n    }\n    const decoratorExpressions = [];\n    addRange(decoratorExpressions, map(allDecorators.decorators, transformDecorator));\n    return decoratorExpressions;\n  }\n  function transformDecorator(decorator) {\n    const expression = visitNode(decorator.expression, visitor, isExpression);\n    setEmitFlags(expression, 3072 /* NoComments */);\n    const innerExpression = skipOuterExpressions(expression);\n    if (isAccessExpression(innerExpression)) {\n      const { target, thisArg } = factory2.createCallBinding(\n        expression,\n        hoistVariableDeclaration,\n        languageVersion,\n        /*cacheIdentifiers*/\n        true\n      );\n      return factory2.restoreOuterExpressions(expression, factory2.createFunctionBindCall(target, thisArg, []));\n    }\n    return expression;\n  }\n  function createDescriptorMethod(original, name, modifiers, asteriskToken, kind, parameters, body) {\n    const func = factory2.createFunctionExpression(\n      modifiers,\n      asteriskToken,\n      /*name*/\n      void 0,\n      /*typeParameters*/\n      void 0,\n      parameters,\n      /*type*/\n      void 0,\n      body ?? factory2.createBlock([])\n    );\n    setOriginalNode(func, original);\n    setSourceMapRange(func, moveRangePastDecorators(original));\n    setEmitFlags(func, 3072 /* NoComments */);\n    const prefix = kind === \"get\" || kind === \"set\" ? kind : void 0;\n    const functionName = factory2.createStringLiteralFromNode(\n      name,\n      /*isSingleQuote*/\n      void 0\n    );\n    const namedFunction = emitHelpers().createSetFunctionNameHelper(func, functionName, prefix);\n    const method = factory2.createPropertyAssignment(factory2.createIdentifier(kind), namedFunction);\n    setOriginalNode(method, original);\n    setSourceMapRange(method, moveRangePastDecorators(original));\n    setEmitFlags(method, 3072 /* NoComments */);\n    return method;\n  }\n  function createMethodDescriptorObject(node, modifiers) {\n    return factory2.createObjectLiteralExpression([\n      createDescriptorMethod(\n        node,\n        node.name,\n        modifiers,\n        node.asteriskToken,\n        \"value\",\n        visitNodes2(node.parameters, visitor, isParameter),\n        visitNode(node.body, visitor, isBlock)\n      )\n    ]);\n  }\n  function createGetAccessorDescriptorObject(node, modifiers) {\n    return factory2.createObjectLiteralExpression([\n      createDescriptorMethod(\n        node,\n        node.name,\n        modifiers,\n        /*asteriskToken*/\n        void 0,\n        \"get\",\n        [],\n        visitNode(node.body, visitor, isBlock)\n      )\n    ]);\n  }\n  function createSetAccessorDescriptorObject(node, modifiers) {\n    return factory2.createObjectLiteralExpression([\n      createDescriptorMethod(\n        node,\n        node.name,\n        modifiers,\n        /*asteriskToken*/\n        void 0,\n        \"set\",\n        visitNodes2(node.parameters, visitor, isParameter),\n        visitNode(node.body, visitor, isBlock)\n      )\n    ]);\n  }\n  function createAccessorPropertyDescriptorObject(node, modifiers) {\n    return factory2.createObjectLiteralExpression([\n      createDescriptorMethod(\n        node,\n        node.name,\n        modifiers,\n        /*asteriskToken*/\n        void 0,\n        \"get\",\n        [],\n        factory2.createBlock([\n          factory2.createReturnStatement(\n            factory2.createPropertyAccessExpression(\n              factory2.createThis(),\n              factory2.getGeneratedPrivateNameForNode(node.name)\n            )\n          )\n        ])\n      ),\n      createDescriptorMethod(\n        node,\n        node.name,\n        modifiers,\n        /*asteriskToken*/\n        void 0,\n        \"set\",\n        [factory2.createParameterDeclaration(\n          /*modifiers*/\n          void 0,\n          /*dotDotDotToken*/\n          void 0,\n          \"value\"\n        )],\n        factory2.createBlock([\n          factory2.createExpressionStatement(\n            factory2.createAssignment(\n              factory2.createPropertyAccessExpression(\n                factory2.createThis(),\n                factory2.getGeneratedPrivateNameForNode(node.name)\n              ),\n              factory2.createIdentifier(\"value\")\n            )\n          )\n        ])\n      )\n    ]);\n  }\n  function createMethodDescriptorForwarder(modifiers, name, descriptorName) {\n    modifiers = visitNodes2(modifiers, (node) => isStaticModifier(node) ? node : void 0, isModifier);\n    return factory2.createGetAccessorDeclaration(\n      modifiers,\n      name,\n      [],\n      /*type*/\n      void 0,\n      factory2.createBlock([\n        factory2.createReturnStatement(\n          factory2.createPropertyAccessExpression(\n            descriptorName,\n            factory2.createIdentifier(\"value\")\n          )\n        )\n      ])\n    );\n  }\n  function createGetAccessorDescriptorForwarder(modifiers, name, descriptorName) {\n    modifiers = visitNodes2(modifiers, (node) => isStaticModifier(node) ? node : void 0, isModifier);\n    return factory2.createGetAccessorDeclaration(\n      modifiers,\n      name,\n      [],\n      /*type*/\n      void 0,\n      factory2.createBlock([\n        factory2.createReturnStatement(\n          factory2.createFunctionCallCall(\n            factory2.createPropertyAccessExpression(\n              descriptorName,\n              factory2.createIdentifier(\"get\")\n            ),\n            factory2.createThis(),\n            []\n          )\n        )\n      ])\n    );\n  }\n  function createSetAccessorDescriptorForwarder(modifiers, name, descriptorName) {\n    modifiers = visitNodes2(modifiers, (node) => isStaticModifier(node) ? node : void 0, isModifier);\n    return factory2.createSetAccessorDeclaration(\n      modifiers,\n      name,\n      [factory2.createParameterDeclaration(\n        /*modifiers*/\n        void 0,\n        /*dotDotDotToken*/\n        void 0,\n        \"value\"\n      )],\n      factory2.createBlock([\n        factory2.createReturnStatement(\n          factory2.createFunctionCallCall(\n            factory2.createPropertyAccessExpression(\n              descriptorName,\n              factory2.createIdentifier(\"set\")\n            ),\n            factory2.createThis(),\n            [factory2.createIdentifier(\"value\")]\n          )\n        )\n      ])\n    );\n  }\n  function createMetadata(name, classSuper2) {\n    const varDecl = factory2.createVariableDeclaration(\n      name,\n      /*exclamationToken*/\n      void 0,\n      /*type*/\n      void 0,\n      factory2.createConditionalExpression(\n        factory2.createLogicalAnd(\n          factory2.createTypeCheck(factory2.createIdentifier(\"Symbol\"), \"function\"),\n          factory2.createPropertyAccessExpression(factory2.createIdentifier(\"Symbol\"), \"metadata\")\n        ),\n        factory2.createToken(58 /* QuestionToken */),\n        factory2.createCallExpression(\n          factory2.createPropertyAccessExpression(factory2.createIdentifier(\"Object\"), \"create\"),\n          /*typeArguments*/\n          void 0,\n          [classSuper2 ? createSymbolMetadataReference(classSuper2) : factory2.createNull()]\n        ),\n        factory2.createToken(59 /* ColonToken */),\n        factory2.createVoidZero()\n      )\n    );\n    return factory2.createVariableStatement(\n      /*modifiers*/\n      void 0,\n      factory2.createVariableDeclarationList([varDecl], 2 /* Const */)\n    );\n  }\n  function createSymbolMetadata(target, value) {\n    const defineProperty = factory2.createObjectDefinePropertyCall(\n      target,\n      factory2.createPropertyAccessExpression(factory2.createIdentifier(\"Symbol\"), \"metadata\"),\n      factory2.createPropertyDescriptor(\n        { configurable: true, writable: true, enumerable: true, value },\n        /*singleLine*/\n        true\n      )\n    );\n    return setEmitFlags(\n      factory2.createIfStatement(value, factory2.createExpressionStatement(defineProperty)),\n      1 /* SingleLine */\n    );\n  }\n  function createSymbolMetadataReference(classSuper2) {\n    return factory2.createBinaryExpression(\n      factory2.createElementAccessExpression(\n        classSuper2,\n        factory2.createPropertyAccessExpression(factory2.createIdentifier(\"Symbol\"), \"metadata\")\n      ),\n      61 /* QuestionQuestionToken */,\n      factory2.createNull()\n    );\n  }\n}\n\n// src/compiler/transformers/es2017.ts\nfunction transformES2017(context) {\n  const {\n    factory: factory2,\n    getEmitHelperFactory: emitHelpers,\n    resumeLexicalEnvironment,\n    endLexicalEnvironment,\n    hoistVariableDeclaration\n  } = context;\n  const resolver = context.getEmitResolver();\n  const compilerOptions = context.getCompilerOptions();\n  const languageVersion = getEmitScriptTarget(compilerOptions);\n  let enabledSubstitutions = 0 /* None */;\n  let enclosingSuperContainerFlags = 0;\n  let enclosingFunctionParameterNames;\n  let capturedSuperProperties;\n  let hasSuperElementAccess;\n  let lexicalArgumentsBinding;\n  const substitutedSuperAccessors = [];\n  let contextFlags = 0 /* None */;\n  const previousOnEmitNode = context.onEmitNode;\n  const previousOnSubstituteNode = context.onSubstituteNode;\n  context.onEmitNode = onEmitNode;\n  context.onSubstituteNode = onSubstituteNode;\n  return chainBundle(context, transformSourceFile);\n  function transformSourceFile(node) {\n    if (node.isDeclarationFile) {\n      return node;\n    }\n    setContextFlag(1 /* NonTopLevel */, false);\n    setContextFlag(2 /* HasLexicalThis */, !isEffectiveStrictModeSourceFile(node, compilerOptions));\n    const visited = visitEachChild(node, visitor, context);\n    addEmitHelpers(visited, context.readEmitHelpers());\n    return visited;\n  }\n  function setContextFlag(flag, val) {\n    contextFlags = val ? contextFlags | flag : contextFlags & ~flag;\n  }\n  function inContext(flags) {\n    return (contextFlags & flags) !== 0;\n  }\n  function inTopLevelContext() {\n    return !inContext(1 /* NonTopLevel */);\n  }\n  function inHasLexicalThisContext() {\n    return inContext(2 /* HasLexicalThis */);\n  }\n  function doWithContext(flags, cb, value) {\n    const contextFlagsToSet = flags & ~contextFlags;\n    if (contextFlagsToSet) {\n      setContextFlag(\n        contextFlagsToSet,\n        /*val*/\n        true\n      );\n      const result = cb(value);\n      setContextFlag(\n        contextFlagsToSet,\n        /*val*/\n        false\n      );\n      return result;\n    }\n    return cb(value);\n  }\n  function visitDefault(node) {\n    return visitEachChild(node, visitor, context);\n  }\n  function argumentsVisitor(node) {\n    switch (node.kind) {\n      case 219 /* FunctionExpression */:\n      case 263 /* FunctionDeclaration */:\n      case 175 /* MethodDeclaration */:\n      case 178 /* GetAccessor */:\n      case 179 /* SetAccessor */:\n      case 177 /* Constructor */:\n        return node;\n      case 170 /* Parameter */:\n      case 209 /* BindingElement */:\n      case 261 /* VariableDeclaration */:\n        break;\n      case 80 /* Identifier */:\n        if (lexicalArgumentsBinding && resolver.isArgumentsLocalBinding(node)) {\n          return lexicalArgumentsBinding;\n        }\n        break;\n    }\n    return visitEachChild(node, argumentsVisitor, context);\n  }\n  function visitor(node) {\n    if ((node.transformFlags & 256 /* ContainsES2017 */) === 0) {\n      return lexicalArgumentsBinding ? argumentsVisitor(node) : node;\n    }\n    switch (node.kind) {\n      case 134 /* AsyncKeyword */:\n        return void 0;\n      case 224 /* AwaitExpression */:\n        return visitAwaitExpression(node);\n      case 175 /* MethodDeclaration */:\n        return doWithContext(1 /* NonTopLevel */ | 2 /* HasLexicalThis */, visitMethodDeclaration, node);\n      case 263 /* FunctionDeclaration */:\n        return doWithContext(1 /* NonTopLevel */ | 2 /* HasLexicalThis */, visitFunctionDeclaration, node);\n      case 219 /* FunctionExpression */:\n        return doWithContext(1 /* NonTopLevel */ | 2 /* HasLexicalThis */, visitFunctionExpression, node);\n      case 220 /* ArrowFunction */:\n        return doWithContext(1 /* NonTopLevel */, visitArrowFunction, node);\n      case 212 /* PropertyAccessExpression */:\n        if (capturedSuperProperties && isPropertyAccessExpression(node) && node.expression.kind === 108 /* SuperKeyword */) {\n          capturedSuperProperties.add(node.name.escapedText);\n        }\n        return visitEachChild(node, visitor, context);\n      case 213 /* ElementAccessExpression */:\n        if (capturedSuperProperties && node.expression.kind === 108 /* SuperKeyword */) {\n          hasSuperElementAccess = true;\n        }\n        return visitEachChild(node, visitor, context);\n      case 178 /* GetAccessor */:\n        return doWithContext(1 /* NonTopLevel */ | 2 /* HasLexicalThis */, visitGetAccessorDeclaration, node);\n      case 179 /* SetAccessor */:\n        return doWithContext(1 /* NonTopLevel */ | 2 /* HasLexicalThis */, visitSetAccessorDeclaration, node);\n      case 177 /* Constructor */:\n        return doWithContext(1 /* NonTopLevel */ | 2 /* HasLexicalThis */, visitConstructorDeclaration, node);\n      case 264 /* ClassDeclaration */:\n      case 232 /* ClassExpression */:\n        return doWithContext(1 /* NonTopLevel */ | 2 /* HasLexicalThis */, visitDefault, node);\n      default:\n        return visitEachChild(node, visitor, context);\n    }\n  }\n  function asyncBodyVisitor(node) {\n    if (isNodeWithPossibleHoistedDeclaration(node)) {\n      switch (node.kind) {\n        case 244 /* VariableStatement */:\n          return visitVariableStatementInAsyncBody(node);\n        case 249 /* ForStatement */:\n          return visitForStatementInAsyncBody(node);\n        case 250 /* ForInStatement */:\n          return visitForInStatementInAsyncBody(node);\n        case 251 /* ForOfStatement */:\n          return visitForOfStatementInAsyncBody(node);\n        case 300 /* CatchClause */:\n          return visitCatchClauseInAsyncBody(node);\n        case 242 /* Block */:\n        case 256 /* SwitchStatement */:\n        case 270 /* CaseBlock */:\n        case 297 /* CaseClause */:\n        case 298 /* DefaultClause */:\n        case 259 /* TryStatement */:\n        case 247 /* DoStatement */:\n        case 248 /* WhileStatement */:\n        case 246 /* IfStatement */:\n        case 255 /* WithStatement */:\n        case 257 /* LabeledStatement */:\n          return visitEachChild(node, asyncBodyVisitor, context);\n        default:\n          return Debug.assertNever(node, \"Unhandled node.\");\n      }\n    }\n    return visitor(node);\n  }\n  function visitCatchClauseInAsyncBody(node) {\n    const catchClauseNames = /* @__PURE__ */ new Set();\n    recordDeclarationName(node.variableDeclaration, catchClauseNames);\n    let catchClauseUnshadowedNames;\n    catchClauseNames.forEach((_, escapedName) => {\n      if (enclosingFunctionParameterNames.has(escapedName)) {\n        if (!catchClauseUnshadowedNames) {\n          catchClauseUnshadowedNames = new Set(enclosingFunctionParameterNames);\n        }\n        catchClauseUnshadowedNames.delete(escapedName);\n      }\n    });\n    if (catchClauseUnshadowedNames) {\n      const savedEnclosingFunctionParameterNames = enclosingFunctionParameterNames;\n      enclosingFunctionParameterNames = catchClauseUnshadowedNames;\n      const result = visitEachChild(node, asyncBodyVisitor, context);\n      enclosingFunctionParameterNames = savedEnclosingFunctionParameterNames;\n      return result;\n    } else {\n      return visitEachChild(node, asyncBodyVisitor, context);\n    }\n  }\n  function visitVariableStatementInAsyncBody(node) {\n    if (isVariableDeclarationListWithCollidingName(node.declarationList)) {\n      const expression = visitVariableDeclarationListWithCollidingNames(\n        node.declarationList,\n        /*hasReceiver*/\n        false\n      );\n      return expression ? factory2.createExpressionStatement(expression) : void 0;\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitForInStatementInAsyncBody(node) {\n    return factory2.updateForInStatement(\n      node,\n      isVariableDeclarationListWithCollidingName(node.initializer) ? visitVariableDeclarationListWithCollidingNames(\n        node.initializer,\n        /*hasReceiver*/\n        true\n      ) : Debug.checkDefined(visitNode(node.initializer, visitor, isForInitializer)),\n      Debug.checkDefined(visitNode(node.expression, visitor, isExpression)),\n      visitIterationBody(node.statement, asyncBodyVisitor, context)\n    );\n  }\n  function visitForOfStatementInAsyncBody(node) {\n    return factory2.updateForOfStatement(\n      node,\n      visitNode(node.awaitModifier, visitor, isAwaitKeyword),\n      isVariableDeclarationListWithCollidingName(node.initializer) ? visitVariableDeclarationListWithCollidingNames(\n        node.initializer,\n        /*hasReceiver*/\n        true\n      ) : Debug.checkDefined(visitNode(node.initializer, visitor, isForInitializer)),\n      Debug.checkDefined(visitNode(node.expression, visitor, isExpression)),\n      visitIterationBody(node.statement, asyncBodyVisitor, context)\n    );\n  }\n  function visitForStatementInAsyncBody(node) {\n    const initializer = node.initializer;\n    return factory2.updateForStatement(\n      node,\n      isVariableDeclarationListWithCollidingName(initializer) ? visitVariableDeclarationListWithCollidingNames(\n        initializer,\n        /*hasReceiver*/\n        false\n      ) : visitNode(node.initializer, visitor, isForInitializer),\n      visitNode(node.condition, visitor, isExpression),\n      visitNode(node.incrementor, visitor, isExpression),\n      visitIterationBody(node.statement, asyncBodyVisitor, context)\n    );\n  }\n  function visitAwaitExpression(node) {\n    if (inTopLevelContext()) {\n      return visitEachChild(node, visitor, context);\n    }\n    return setOriginalNode(\n      setTextRange(\n        factory2.createYieldExpression(\n          /*asteriskToken*/\n          void 0,\n          visitNode(node.expression, visitor, isExpression)\n        ),\n        node\n      ),\n      node\n    );\n  }\n  function visitConstructorDeclaration(node) {\n    const savedLexicalArgumentsBinding = lexicalArgumentsBinding;\n    lexicalArgumentsBinding = void 0;\n    const updated = factory2.updateConstructorDeclaration(\n      node,\n      visitNodes2(node.modifiers, visitor, isModifier),\n      visitParameterList(node.parameters, visitor, context),\n      transformMethodBody(node)\n    );\n    lexicalArgumentsBinding = savedLexicalArgumentsBinding;\n    return updated;\n  }\n  function visitMethodDeclaration(node) {\n    let parameters;\n    const functionFlags = getFunctionFlags(node);\n    const savedLexicalArgumentsBinding = lexicalArgumentsBinding;\n    lexicalArgumentsBinding = void 0;\n    const updated = factory2.updateMethodDeclaration(\n      node,\n      visitNodes2(node.modifiers, visitor, isModifierLike),\n      node.asteriskToken,\n      node.name,\n      /*questionToken*/\n      void 0,\n      /*typeParameters*/\n      void 0,\n      parameters = functionFlags & 2 /* Async */ ? transformAsyncFunctionParameterList(node) : visitParameterList(node.parameters, visitor, context),\n      /*type*/\n      void 0,\n      functionFlags & 2 /* Async */ ? transformAsyncFunctionBody(node, parameters) : transformMethodBody(node)\n    );\n    lexicalArgumentsBinding = savedLexicalArgumentsBinding;\n    return updated;\n  }\n  function visitGetAccessorDeclaration(node) {\n    const savedLexicalArgumentsBinding = lexicalArgumentsBinding;\n    lexicalArgumentsBinding = void 0;\n    const updated = factory2.updateGetAccessorDeclaration(\n      node,\n      visitNodes2(node.modifiers, visitor, isModifierLike),\n      node.name,\n      visitParameterList(node.parameters, visitor, context),\n      /*type*/\n      void 0,\n      transformMethodBody(node)\n    );\n    lexicalArgumentsBinding = savedLexicalArgumentsBinding;\n    return updated;\n  }\n  function visitSetAccessorDeclaration(node) {\n    const savedLexicalArgumentsBinding = lexicalArgumentsBinding;\n    lexicalArgumentsBinding = void 0;\n    const updated = factory2.updateSetAccessorDeclaration(\n      node,\n      visitNodes2(node.modifiers, visitor, isModifierLike),\n      node.name,\n      visitParameterList(node.parameters, visitor, context),\n      transformMethodBody(node)\n    );\n    lexicalArgumentsBinding = savedLexicalArgumentsBinding;\n    return updated;\n  }\n  function visitFunctionDeclaration(node) {\n    let parameters;\n    const savedLexicalArgumentsBinding = lexicalArgumentsBinding;\n    lexicalArgumentsBinding = void 0;\n    const functionFlags = getFunctionFlags(node);\n    const updated = factory2.updateFunctionDeclaration(\n      node,\n      visitNodes2(node.modifiers, visitor, isModifierLike),\n      node.asteriskToken,\n      node.name,\n      /*typeParameters*/\n      void 0,\n      parameters = functionFlags & 2 /* Async */ ? transformAsyncFunctionParameterList(node) : visitParameterList(node.parameters, visitor, context),\n      /*type*/\n      void 0,\n      functionFlags & 2 /* Async */ ? transformAsyncFunctionBody(node, parameters) : visitFunctionBody(node.body, visitor, context)\n    );\n    lexicalArgumentsBinding = savedLexicalArgumentsBinding;\n    return updated;\n  }\n  function visitFunctionExpression(node) {\n    let parameters;\n    const savedLexicalArgumentsBinding = lexicalArgumentsBinding;\n    lexicalArgumentsBinding = void 0;\n    const functionFlags = getFunctionFlags(node);\n    const updated = factory2.updateFunctionExpression(\n      node,\n      visitNodes2(node.modifiers, visitor, isModifier),\n      node.asteriskToken,\n      node.name,\n      /*typeParameters*/\n      void 0,\n      parameters = functionFlags & 2 /* Async */ ? transformAsyncFunctionParameterList(node) : visitParameterList(node.parameters, visitor, context),\n      /*type*/\n      void 0,\n      functionFlags & 2 /* Async */ ? transformAsyncFunctionBody(node, parameters) : visitFunctionBody(node.body, visitor, context)\n    );\n    lexicalArgumentsBinding = savedLexicalArgumentsBinding;\n    return updated;\n  }\n  function visitArrowFunction(node) {\n    let parameters;\n    const functionFlags = getFunctionFlags(node);\n    return factory2.updateArrowFunction(\n      node,\n      visitNodes2(node.modifiers, visitor, isModifier),\n      /*typeParameters*/\n      void 0,\n      parameters = functionFlags & 2 /* Async */ ? transformAsyncFunctionParameterList(node) : visitParameterList(node.parameters, visitor, context),\n      /*type*/\n      void 0,\n      node.equalsGreaterThanToken,\n      functionFlags & 2 /* Async */ ? transformAsyncFunctionBody(node, parameters) : visitFunctionBody(node.body, visitor, context)\n    );\n  }\n  function recordDeclarationName({ name }, names) {\n    if (isIdentifier(name)) {\n      names.add(name.escapedText);\n    } else {\n      for (const element of name.elements) {\n        if (!isOmittedExpression(element)) {\n          recordDeclarationName(element, names);\n        }\n      }\n    }\n  }\n  function isVariableDeclarationListWithCollidingName(node) {\n    return !!node && isVariableDeclarationList(node) && !(node.flags & 7 /* BlockScoped */) && node.declarations.some(collidesWithParameterName);\n  }\n  function visitVariableDeclarationListWithCollidingNames(node, hasReceiver) {\n    hoistVariableDeclarationList(node);\n    const variables = getInitializedVariables(node);\n    if (variables.length === 0) {\n      if (hasReceiver) {\n        return visitNode(factory2.converters.convertToAssignmentElementTarget(node.declarations[0].name), visitor, isExpression);\n      }\n      return void 0;\n    }\n    return factory2.inlineExpressions(map(variables, transformInitializedVariable));\n  }\n  function hoistVariableDeclarationList(node) {\n    forEach(node.declarations, hoistVariable);\n  }\n  function hoistVariable({ name }) {\n    if (isIdentifier(name)) {\n      hoistVariableDeclaration(name);\n    } else {\n      for (const element of name.elements) {\n        if (!isOmittedExpression(element)) {\n          hoistVariable(element);\n        }\n      }\n    }\n  }\n  function transformInitializedVariable(node) {\n    const converted = setSourceMapRange(\n      factory2.createAssignment(\n        factory2.converters.convertToAssignmentElementTarget(node.name),\n        node.initializer\n      ),\n      node\n    );\n    return Debug.checkDefined(visitNode(converted, visitor, isExpression));\n  }\n  function collidesWithParameterName({ name }) {\n    if (isIdentifier(name)) {\n      return enclosingFunctionParameterNames.has(name.escapedText);\n    } else {\n      for (const element of name.elements) {\n        if (!isOmittedExpression(element) && collidesWithParameterName(element)) {\n          return true;\n        }\n      }\n    }\n    return false;\n  }\n  function transformMethodBody(node) {\n    Debug.assertIsDefined(node.body);\n    const savedCapturedSuperProperties = capturedSuperProperties;\n    const savedHasSuperElementAccess = hasSuperElementAccess;\n    capturedSuperProperties = /* @__PURE__ */ new Set();\n    hasSuperElementAccess = false;\n    let updated = visitFunctionBody(node.body, visitor, context);\n    const originalMethod = getOriginalNode(node, isFunctionLikeDeclaration);\n    const emitSuperHelpers = languageVersion >= 2 /* ES2015 */ && (resolver.hasNodeCheckFlag(node, 256 /* MethodWithSuperPropertyAssignmentInAsync */) || resolver.hasNodeCheckFlag(node, 128 /* MethodWithSuperPropertyAccessInAsync */)) && (getFunctionFlags(originalMethod) & 3 /* AsyncGenerator */) !== 3 /* AsyncGenerator */;\n    if (emitSuperHelpers) {\n      enableSubstitutionForAsyncMethodsWithSuper();\n      if (capturedSuperProperties.size) {\n        const variableStatement = createSuperAccessVariableStatement(factory2, resolver, node, capturedSuperProperties);\n        substitutedSuperAccessors[getNodeId(variableStatement)] = true;\n        const statements = updated.statements.slice();\n        insertStatementsAfterStandardPrologue(statements, [variableStatement]);\n        updated = factory2.updateBlock(updated, statements);\n      }\n      if (hasSuperElementAccess) {\n        if (resolver.hasNodeCheckFlag(node, 256 /* MethodWithSuperPropertyAssignmentInAsync */)) {\n          addEmitHelper(updated, advancedAsyncSuperHelper);\n        } else if (resolver.hasNodeCheckFlag(node, 128 /* MethodWithSuperPropertyAccessInAsync */)) {\n          addEmitHelper(updated, asyncSuperHelper);\n        }\n      }\n    }\n    capturedSuperProperties = savedCapturedSuperProperties;\n    hasSuperElementAccess = savedHasSuperElementAccess;\n    return updated;\n  }\n  function createCaptureArgumentsStatement() {\n    Debug.assert(lexicalArgumentsBinding);\n    const variable = factory2.createVariableDeclaration(\n      lexicalArgumentsBinding,\n      /*exclamationToken*/\n      void 0,\n      /*type*/\n      void 0,\n      factory2.createIdentifier(\"arguments\")\n    );\n    const statement = factory2.createVariableStatement(\n      /*modifiers*/\n      void 0,\n      [variable]\n    );\n    startOnNewLine(statement);\n    addEmitFlags(statement, 2097152 /* CustomPrologue */);\n    return statement;\n  }\n  function transformAsyncFunctionParameterList(node) {\n    if (isSimpleParameterList(node.parameters)) {\n      return visitParameterList(node.parameters, visitor, context);\n    }\n    const newParameters = [];\n    for (const parameter of node.parameters) {\n      if (parameter.initializer || parameter.dotDotDotToken) {\n        if (node.kind === 220 /* ArrowFunction */) {\n          const restParameter = factory2.createParameterDeclaration(\n            /*modifiers*/\n            void 0,\n            factory2.createToken(26 /* DotDotDotToken */),\n            factory2.createUniqueName(\"args\", 8 /* ReservedInNestedScopes */)\n          );\n          newParameters.push(restParameter);\n        }\n        break;\n      }\n      const newParameter = factory2.createParameterDeclaration(\n        /*modifiers*/\n        void 0,\n        /*dotDotDotToken*/\n        void 0,\n        factory2.getGeneratedNameForNode(parameter.name, 8 /* ReservedInNestedScopes */)\n      );\n      newParameters.push(newParameter);\n    }\n    const newParametersArray = factory2.createNodeArray(newParameters);\n    setTextRange(newParametersArray, node.parameters);\n    return newParametersArray;\n  }\n  function transformAsyncFunctionBody(node, outerParameters) {\n    const innerParameters = !isSimpleParameterList(node.parameters) ? visitParameterList(node.parameters, visitor, context) : void 0;\n    resumeLexicalEnvironment();\n    const original = getOriginalNode(node, isFunctionLike);\n    const nodeType = original.type;\n    const promiseConstructor = languageVersion < 2 /* ES2015 */ ? getPromiseConstructor(nodeType) : void 0;\n    const isArrowFunction2 = node.kind === 220 /* ArrowFunction */;\n    const savedLexicalArgumentsBinding = lexicalArgumentsBinding;\n    const hasLexicalArguments = resolver.hasNodeCheckFlag(node, 512 /* CaptureArguments */);\n    const captureLexicalArguments = hasLexicalArguments && !lexicalArgumentsBinding;\n    if (captureLexicalArguments) {\n      lexicalArgumentsBinding = factory2.createUniqueName(\"arguments\");\n    }\n    let argumentsExpression;\n    if (innerParameters) {\n      if (isArrowFunction2) {\n        const parameterBindings = [];\n        Debug.assert(outerParameters.length <= node.parameters.length);\n        for (let i = 0; i < node.parameters.length; i++) {\n          Debug.assert(i < outerParameters.length);\n          const originalParameter = node.parameters[i];\n          const outerParameter = outerParameters[i];\n          Debug.assertNode(outerParameter.name, isIdentifier);\n          if (originalParameter.initializer || originalParameter.dotDotDotToken) {\n            Debug.assert(i === outerParameters.length - 1);\n            parameterBindings.push(factory2.createSpreadElement(outerParameter.name));\n            break;\n          }\n          parameterBindings.push(outerParameter.name);\n        }\n        argumentsExpression = factory2.createArrayLiteralExpression(parameterBindings);\n      } else {\n        argumentsExpression = factory2.createIdentifier(\"arguments\");\n      }\n    }\n    const savedEnclosingFunctionParameterNames = enclosingFunctionParameterNames;\n    enclosingFunctionParameterNames = /* @__PURE__ */ new Set();\n    for (const parameter of node.parameters) {\n      recordDeclarationName(parameter, enclosingFunctionParameterNames);\n    }\n    const savedCapturedSuperProperties = capturedSuperProperties;\n    const savedHasSuperElementAccess = hasSuperElementAccess;\n    if (!isArrowFunction2) {\n      capturedSuperProperties = /* @__PURE__ */ new Set();\n      hasSuperElementAccess = false;\n    }\n    const hasLexicalThis = inHasLexicalThisContext();\n    let asyncBody = transformAsyncFunctionBodyWorker(node.body);\n    asyncBody = factory2.updateBlock(asyncBody, factory2.mergeLexicalEnvironment(asyncBody.statements, endLexicalEnvironment()));\n    let result;\n    if (!isArrowFunction2) {\n      const statements = [];\n      statements.push(\n        factory2.createReturnStatement(\n          emitHelpers().createAwaiterHelper(\n            hasLexicalThis,\n            argumentsExpression,\n            promiseConstructor,\n            innerParameters,\n            asyncBody\n          )\n        )\n      );\n      const emitSuperHelpers = languageVersion >= 2 /* ES2015 */ && (resolver.hasNodeCheckFlag(node, 256 /* MethodWithSuperPropertyAssignmentInAsync */) || resolver.hasNodeCheckFlag(node, 128 /* MethodWithSuperPropertyAccessInAsync */));\n      if (emitSuperHelpers) {\n        enableSubstitutionForAsyncMethodsWithSuper();\n        if (capturedSuperProperties.size) {\n          const variableStatement = createSuperAccessVariableStatement(factory2, resolver, node, capturedSuperProperties);\n          substitutedSuperAccessors[getNodeId(variableStatement)] = true;\n          insertStatementsAfterStandardPrologue(statements, [variableStatement]);\n        }\n      }\n      if (captureLexicalArguments) {\n        insertStatementsAfterStandardPrologue(statements, [createCaptureArgumentsStatement()]);\n      }\n      const block = factory2.createBlock(\n        statements,\n        /*multiLine*/\n        true\n      );\n      setTextRange(block, node.body);\n      if (emitSuperHelpers && hasSuperElementAccess) {\n        if (resolver.hasNodeCheckFlag(node, 256 /* MethodWithSuperPropertyAssignmentInAsync */)) {\n          addEmitHelper(block, advancedAsyncSuperHelper);\n        } else if (resolver.hasNodeCheckFlag(node, 128 /* MethodWithSuperPropertyAccessInAsync */)) {\n          addEmitHelper(block, asyncSuperHelper);\n        }\n      }\n      result = block;\n    } else {\n      result = emitHelpers().createAwaiterHelper(\n        hasLexicalThis,\n        argumentsExpression,\n        promiseConstructor,\n        innerParameters,\n        asyncBody\n      );\n      if (captureLexicalArguments) {\n        const block = factory2.converters.convertToFunctionBlock(result);\n        result = factory2.updateBlock(block, factory2.mergeLexicalEnvironment(block.statements, [createCaptureArgumentsStatement()]));\n      }\n    }\n    enclosingFunctionParameterNames = savedEnclosingFunctionParameterNames;\n    if (!isArrowFunction2) {\n      capturedSuperProperties = savedCapturedSuperProperties;\n      hasSuperElementAccess = savedHasSuperElementAccess;\n      lexicalArgumentsBinding = savedLexicalArgumentsBinding;\n    }\n    return result;\n  }\n  function transformAsyncFunctionBodyWorker(body, start) {\n    if (isBlock(body)) {\n      return factory2.updateBlock(body, visitNodes2(body.statements, asyncBodyVisitor, isStatement, start));\n    } else {\n      return factory2.converters.convertToFunctionBlock(Debug.checkDefined(visitNode(body, asyncBodyVisitor, isConciseBody)));\n    }\n  }\n  function getPromiseConstructor(type) {\n    const typeName = type && getEntityNameFromTypeNode(type);\n    if (typeName && isEntityName(typeName)) {\n      const serializationKind = resolver.getTypeReferenceSerializationKind(typeName);\n      if (serializationKind === 1 /* TypeWithConstructSignatureAndValue */ || serializationKind === 0 /* Unknown */) {\n        return typeName;\n      }\n    }\n    return void 0;\n  }\n  function enableSubstitutionForAsyncMethodsWithSuper() {\n    if ((enabledSubstitutions & 1 /* AsyncMethodsWithSuper */) === 0) {\n      enabledSubstitutions |= 1 /* AsyncMethodsWithSuper */;\n      context.enableSubstitution(214 /* CallExpression */);\n      context.enableSubstitution(212 /* PropertyAccessExpression */);\n      context.enableSubstitution(213 /* ElementAccessExpression */);\n      context.enableEmitNotification(264 /* ClassDeclaration */);\n      context.enableEmitNotification(175 /* MethodDeclaration */);\n      context.enableEmitNotification(178 /* GetAccessor */);\n      context.enableEmitNotification(179 /* SetAccessor */);\n      context.enableEmitNotification(177 /* Constructor */);\n      context.enableEmitNotification(244 /* VariableStatement */);\n    }\n  }\n  function onEmitNode(hint, node, emitCallback) {\n    if (enabledSubstitutions & 1 /* AsyncMethodsWithSuper */ && isSuperContainer(node)) {\n      const superContainerFlags = (resolver.hasNodeCheckFlag(node, 128 /* MethodWithSuperPropertyAccessInAsync */) ? 128 /* MethodWithSuperPropertyAccessInAsync */ : 0) | (resolver.hasNodeCheckFlag(node, 256 /* MethodWithSuperPropertyAssignmentInAsync */) ? 256 /* MethodWithSuperPropertyAssignmentInAsync */ : 0);\n      if (superContainerFlags !== enclosingSuperContainerFlags) {\n        const savedEnclosingSuperContainerFlags = enclosingSuperContainerFlags;\n        enclosingSuperContainerFlags = superContainerFlags;\n        previousOnEmitNode(hint, node, emitCallback);\n        enclosingSuperContainerFlags = savedEnclosingSuperContainerFlags;\n        return;\n      }\n    } else if (enabledSubstitutions && substitutedSuperAccessors[getNodeId(node)]) {\n      const savedEnclosingSuperContainerFlags = enclosingSuperContainerFlags;\n      enclosingSuperContainerFlags = 0;\n      previousOnEmitNode(hint, node, emitCallback);\n      enclosingSuperContainerFlags = savedEnclosingSuperContainerFlags;\n      return;\n    }\n    previousOnEmitNode(hint, node, emitCallback);\n  }\n  function onSubstituteNode(hint, node) {\n    node = previousOnSubstituteNode(hint, node);\n    if (hint === 1 /* Expression */ && enclosingSuperContainerFlags) {\n      return substituteExpression(node);\n    }\n    return node;\n  }\n  function substituteExpression(node) {\n    switch (node.kind) {\n      case 212 /* PropertyAccessExpression */:\n        return substitutePropertyAccessExpression(node);\n      case 213 /* ElementAccessExpression */:\n        return substituteElementAccessExpression(node);\n      case 214 /* CallExpression */:\n        return substituteCallExpression(node);\n    }\n    return node;\n  }\n  function substitutePropertyAccessExpression(node) {\n    if (node.expression.kind === 108 /* SuperKeyword */) {\n      return setTextRange(\n        factory2.createPropertyAccessExpression(\n          factory2.createUniqueName(\"_super\", 16 /* Optimistic */ | 32 /* FileLevel */),\n          node.name\n        ),\n        node\n      );\n    }\n    return node;\n  }\n  function substituteElementAccessExpression(node) {\n    if (node.expression.kind === 108 /* SuperKeyword */) {\n      return createSuperElementAccessInAsyncMethod(\n        node.argumentExpression,\n        node\n      );\n    }\n    return node;\n  }\n  function substituteCallExpression(node) {\n    const expression = node.expression;\n    if (isSuperProperty(expression)) {\n      const argumentExpression = isPropertyAccessExpression(expression) ? substitutePropertyAccessExpression(expression) : substituteElementAccessExpression(expression);\n      return factory2.createCallExpression(\n        factory2.createPropertyAccessExpression(argumentExpression, \"call\"),\n        /*typeArguments*/\n        void 0,\n        [\n          factory2.createThis(),\n          ...node.arguments\n        ]\n      );\n    }\n    return node;\n  }\n  function isSuperContainer(node) {\n    const kind = node.kind;\n    return kind === 264 /* ClassDeclaration */ || kind === 177 /* Constructor */ || kind === 175 /* MethodDeclaration */ || kind === 178 /* GetAccessor */ || kind === 179 /* SetAccessor */;\n  }\n  function createSuperElementAccessInAsyncMethod(argumentExpression, location) {\n    if (enclosingSuperContainerFlags & 256 /* MethodWithSuperPropertyAssignmentInAsync */) {\n      return setTextRange(\n        factory2.createPropertyAccessExpression(\n          factory2.createCallExpression(\n            factory2.createUniqueName(\"_superIndex\", 16 /* Optimistic */ | 32 /* FileLevel */),\n            /*typeArguments*/\n            void 0,\n            [argumentExpression]\n          ),\n          \"value\"\n        ),\n        location\n      );\n    } else {\n      return setTextRange(\n        factory2.createCallExpression(\n          factory2.createUniqueName(\"_superIndex\", 16 /* Optimistic */ | 32 /* FileLevel */),\n          /*typeArguments*/\n          void 0,\n          [argumentExpression]\n        ),\n        location\n      );\n    }\n  }\n}\nfunction createSuperAccessVariableStatement(factory2, resolver, node, names) {\n  const hasBinding = resolver.hasNodeCheckFlag(node, 256 /* MethodWithSuperPropertyAssignmentInAsync */);\n  const accessors = [];\n  names.forEach((_, key) => {\n    const name = unescapeLeadingUnderscores(key);\n    const getterAndSetter = [];\n    getterAndSetter.push(factory2.createPropertyAssignment(\n      \"get\",\n      factory2.createArrowFunction(\n        /*modifiers*/\n        void 0,\n        /*typeParameters*/\n        void 0,\n        /* parameters */\n        [],\n        /*type*/\n        void 0,\n        /*equalsGreaterThanToken*/\n        void 0,\n        setEmitFlags(\n          factory2.createPropertyAccessExpression(\n            setEmitFlags(\n              factory2.createSuper(),\n              8 /* NoSubstitution */\n            ),\n            name\n          ),\n          8 /* NoSubstitution */\n        )\n      )\n    ));\n    if (hasBinding) {\n      getterAndSetter.push(\n        factory2.createPropertyAssignment(\n          \"set\",\n          factory2.createArrowFunction(\n            /*modifiers*/\n            void 0,\n            /*typeParameters*/\n            void 0,\n            /* parameters */\n            [\n              factory2.createParameterDeclaration(\n                /*modifiers*/\n                void 0,\n                /*dotDotDotToken*/\n                void 0,\n                \"v\",\n                /*questionToken*/\n                void 0,\n                /*type*/\n                void 0,\n                /*initializer*/\n                void 0\n              )\n            ],\n            /*type*/\n            void 0,\n            /*equalsGreaterThanToken*/\n            void 0,\n            factory2.createAssignment(\n              setEmitFlags(\n                factory2.createPropertyAccessExpression(\n                  setEmitFlags(\n                    factory2.createSuper(),\n                    8 /* NoSubstitution */\n                  ),\n                  name\n                ),\n                8 /* NoSubstitution */\n              ),\n              factory2.createIdentifier(\"v\")\n            )\n          )\n        )\n      );\n    }\n    accessors.push(\n      factory2.createPropertyAssignment(\n        name,\n        factory2.createObjectLiteralExpression(getterAndSetter)\n      )\n    );\n  });\n  return factory2.createVariableStatement(\n    /*modifiers*/\n    void 0,\n    factory2.createVariableDeclarationList(\n      [\n        factory2.createVariableDeclaration(\n          factory2.createUniqueName(\"_super\", 16 /* Optimistic */ | 32 /* FileLevel */),\n          /*exclamationToken*/\n          void 0,\n          /*type*/\n          void 0,\n          factory2.createCallExpression(\n            factory2.createPropertyAccessExpression(\n              factory2.createIdentifier(\"Object\"),\n              \"create\"\n            ),\n            /*typeArguments*/\n            void 0,\n            [\n              factory2.createNull(),\n              factory2.createObjectLiteralExpression(\n                accessors,\n                /*multiLine*/\n                true\n              )\n            ]\n          )\n        )\n      ],\n      2 /* Const */\n    )\n  );\n}\n\n// src/compiler/transformers/es2018.ts\nfunction transformES2018(context) {\n  const {\n    factory: factory2,\n    getEmitHelperFactory: emitHelpers,\n    resumeLexicalEnvironment,\n    endLexicalEnvironment,\n    hoistVariableDeclaration\n  } = context;\n  const resolver = context.getEmitResolver();\n  const compilerOptions = context.getCompilerOptions();\n  const languageVersion = getEmitScriptTarget(compilerOptions);\n  const previousOnEmitNode = context.onEmitNode;\n  context.onEmitNode = onEmitNode;\n  const previousOnSubstituteNode = context.onSubstituteNode;\n  context.onSubstituteNode = onSubstituteNode;\n  let exportedVariableStatement = false;\n  let enabledSubstitutions = 0 /* None */;\n  let enclosingFunctionFlags;\n  let parametersWithPrecedingObjectRestOrSpread;\n  let enclosingSuperContainerFlags = 0;\n  let hierarchyFacts = 0;\n  let currentSourceFile;\n  let taggedTemplateStringDeclarations;\n  let capturedSuperProperties;\n  let hasSuperElementAccess;\n  const substitutedSuperAccessors = [];\n  return chainBundle(context, transformSourceFile);\n  function affectsSubtree(excludeFacts, includeFacts) {\n    return hierarchyFacts !== (hierarchyFacts & ~excludeFacts | includeFacts);\n  }\n  function enterSubtree(excludeFacts, includeFacts) {\n    const ancestorFacts = hierarchyFacts;\n    hierarchyFacts = (hierarchyFacts & ~excludeFacts | includeFacts) & 3 /* AncestorFactsMask */;\n    return ancestorFacts;\n  }\n  function exitSubtree(ancestorFacts) {\n    hierarchyFacts = ancestorFacts;\n  }\n  function recordTaggedTemplateString(temp) {\n    taggedTemplateStringDeclarations = append(\n      taggedTemplateStringDeclarations,\n      factory2.createVariableDeclaration(temp)\n    );\n  }\n  function transformSourceFile(node) {\n    if (node.isDeclarationFile) {\n      return node;\n    }\n    currentSourceFile = node;\n    const visited = visitSourceFile(node);\n    addEmitHelpers(visited, context.readEmitHelpers());\n    currentSourceFile = void 0;\n    taggedTemplateStringDeclarations = void 0;\n    return visited;\n  }\n  function visitor(node) {\n    return visitorWorker(\n      node,\n      /*expressionResultIsUnused*/\n      false\n    );\n  }\n  function visitorWithUnusedExpressionResult(node) {\n    return visitorWorker(\n      node,\n      /*expressionResultIsUnused*/\n      true\n    );\n  }\n  function visitorNoAsyncModifier(node) {\n    if (node.kind === 134 /* AsyncKeyword */) {\n      return void 0;\n    }\n    return node;\n  }\n  function doWithHierarchyFacts(cb, value, excludeFacts, includeFacts) {\n    if (affectsSubtree(excludeFacts, includeFacts)) {\n      const ancestorFacts = enterSubtree(excludeFacts, includeFacts);\n      const result = cb(value);\n      exitSubtree(ancestorFacts);\n      return result;\n    }\n    return cb(value);\n  }\n  function visitDefault(node) {\n    return visitEachChild(node, visitor, context);\n  }\n  function visitorWorker(node, expressionResultIsUnused2) {\n    if ((node.transformFlags & 128 /* ContainsES2018 */) === 0) {\n      return node;\n    }\n    switch (node.kind) {\n      case 224 /* AwaitExpression */:\n        return visitAwaitExpression(node);\n      case 230 /* YieldExpression */:\n        return visitYieldExpression(node);\n      case 254 /* ReturnStatement */:\n        return visitReturnStatement(node);\n      case 257 /* LabeledStatement */:\n        return visitLabeledStatement(node);\n      case 211 /* ObjectLiteralExpression */:\n        return visitObjectLiteralExpression(node);\n      case 227 /* BinaryExpression */:\n        return visitBinaryExpression(node, expressionResultIsUnused2);\n      case 357 /* CommaListExpression */:\n        return visitCommaListExpression(node, expressionResultIsUnused2);\n      case 300 /* CatchClause */:\n        return visitCatchClause(node);\n      case 244 /* VariableStatement */:\n        return visitVariableStatement(node);\n      case 261 /* VariableDeclaration */:\n        return visitVariableDeclaration(node);\n      case 247 /* DoStatement */:\n      case 248 /* WhileStatement */:\n      case 250 /* ForInStatement */:\n        return doWithHierarchyFacts(\n          visitDefault,\n          node,\n          0 /* IterationStatementExcludes */,\n          2 /* IterationStatementIncludes */\n        );\n      case 251 /* ForOfStatement */:\n        return visitForOfStatement(\n          node,\n          /*outermostLabeledStatement*/\n          void 0\n        );\n      case 249 /* ForStatement */:\n        return doWithHierarchyFacts(\n          visitForStatement,\n          node,\n          0 /* IterationStatementExcludes */,\n          2 /* IterationStatementIncludes */\n        );\n      case 223 /* VoidExpression */:\n        return visitVoidExpression(node);\n      case 177 /* Constructor */:\n        return doWithHierarchyFacts(\n          visitConstructorDeclaration,\n          node,\n          2 /* ClassOrFunctionExcludes */,\n          1 /* ClassOrFunctionIncludes */\n        );\n      case 175 /* MethodDeclaration */:\n        return doWithHierarchyFacts(\n          visitMethodDeclaration,\n          node,\n          2 /* ClassOrFunctionExcludes */,\n          1 /* ClassOrFunctionIncludes */\n        );\n      case 178 /* GetAccessor */:\n        return doWithHierarchyFacts(\n          visitGetAccessorDeclaration,\n          node,\n          2 /* ClassOrFunctionExcludes */,\n          1 /* ClassOrFunctionIncludes */\n        );\n      case 179 /* SetAccessor */:\n        return doWithHierarchyFacts(\n          visitSetAccessorDeclaration,\n          node,\n          2 /* ClassOrFunctionExcludes */,\n          1 /* ClassOrFunctionIncludes */\n        );\n      case 263 /* FunctionDeclaration */:\n        return doWithHierarchyFacts(\n          visitFunctionDeclaration,\n          node,\n          2 /* ClassOrFunctionExcludes */,\n          1 /* ClassOrFunctionIncludes */\n        );\n      case 219 /* FunctionExpression */:\n        return doWithHierarchyFacts(\n          visitFunctionExpression,\n          node,\n          2 /* ClassOrFunctionExcludes */,\n          1 /* ClassOrFunctionIncludes */\n        );\n      case 220 /* ArrowFunction */:\n        return doWithHierarchyFacts(\n          visitArrowFunction,\n          node,\n          2 /* ArrowFunctionExcludes */,\n          0 /* ArrowFunctionIncludes */\n        );\n      case 170 /* Parameter */:\n        return visitParameter(node);\n      case 245 /* ExpressionStatement */:\n        return visitExpressionStatement(node);\n      case 218 /* ParenthesizedExpression */:\n        return visitParenthesizedExpression(node, expressionResultIsUnused2);\n      case 216 /* TaggedTemplateExpression */:\n        return visitTaggedTemplateExpression(node);\n      case 212 /* PropertyAccessExpression */:\n        if (capturedSuperProperties && isPropertyAccessExpression(node) && node.expression.kind === 108 /* SuperKeyword */) {\n          capturedSuperProperties.add(node.name.escapedText);\n        }\n        return visitEachChild(node, visitor, context);\n      case 213 /* ElementAccessExpression */:\n        if (capturedSuperProperties && node.expression.kind === 108 /* SuperKeyword */) {\n          hasSuperElementAccess = true;\n        }\n        return visitEachChild(node, visitor, context);\n      case 264 /* ClassDeclaration */:\n      case 232 /* ClassExpression */:\n        return doWithHierarchyFacts(\n          visitDefault,\n          node,\n          2 /* ClassOrFunctionExcludes */,\n          1 /* ClassOrFunctionIncludes */\n        );\n      default:\n        return visitEachChild(node, visitor, context);\n    }\n  }\n  function visitAwaitExpression(node) {\n    if (enclosingFunctionFlags & 2 /* Async */ && enclosingFunctionFlags & 1 /* Generator */) {\n      return setOriginalNode(\n        setTextRange(\n          factory2.createYieldExpression(\n            /*asteriskToken*/\n            void 0,\n            emitHelpers().createAwaitHelper(visitNode(node.expression, visitor, isExpression))\n          ),\n          /*location*/\n          node\n        ),\n        node\n      );\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitYieldExpression(node) {\n    if (enclosingFunctionFlags & 2 /* Async */ && enclosingFunctionFlags & 1 /* Generator */) {\n      if (node.asteriskToken) {\n        const expression = visitNode(Debug.checkDefined(node.expression), visitor, isExpression);\n        return setOriginalNode(\n          setTextRange(\n            factory2.createYieldExpression(\n              /*asteriskToken*/\n              void 0,\n              emitHelpers().createAwaitHelper(\n                factory2.updateYieldExpression(\n                  node,\n                  node.asteriskToken,\n                  setTextRange(\n                    emitHelpers().createAsyncDelegatorHelper(\n                      setTextRange(\n                        emitHelpers().createAsyncValuesHelper(expression),\n                        expression\n                      )\n                    ),\n                    expression\n                  )\n                )\n              )\n            ),\n            node\n          ),\n          node\n        );\n      }\n      return setOriginalNode(\n        setTextRange(\n          factory2.createYieldExpression(\n            /*asteriskToken*/\n            void 0,\n            createDownlevelAwait(\n              node.expression ? visitNode(node.expression, visitor, isExpression) : factory2.createVoidZero()\n            )\n          ),\n          node\n        ),\n        node\n      );\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitReturnStatement(node) {\n    if (enclosingFunctionFlags & 2 /* Async */ && enclosingFunctionFlags & 1 /* Generator */) {\n      return factory2.updateReturnStatement(\n        node,\n        createDownlevelAwait(\n          node.expression ? visitNode(node.expression, visitor, isExpression) : factory2.createVoidZero()\n        )\n      );\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitLabeledStatement(node) {\n    if (enclosingFunctionFlags & 2 /* Async */) {\n      const statement = unwrapInnermostStatementOfLabel(node);\n      if (statement.kind === 251 /* ForOfStatement */ && statement.awaitModifier) {\n        return visitForOfStatement(statement, node);\n      }\n      return factory2.restoreEnclosingLabel(visitNode(statement, visitor, isStatement, factory2.liftToBlock), node);\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function chunkObjectLiteralElements(elements) {\n    let chunkObject;\n    const objects = [];\n    for (const e of elements) {\n      if (e.kind === 306 /* SpreadAssignment */) {\n        if (chunkObject) {\n          objects.push(factory2.createObjectLiteralExpression(chunkObject));\n          chunkObject = void 0;\n        }\n        const target = e.expression;\n        objects.push(visitNode(target, visitor, isExpression));\n      } else {\n        chunkObject = append(\n          chunkObject,\n          e.kind === 304 /* PropertyAssignment */ ? factory2.createPropertyAssignment(e.name, visitNode(e.initializer, visitor, isExpression)) : visitNode(e, visitor, isObjectLiteralElementLike)\n        );\n      }\n    }\n    if (chunkObject) {\n      objects.push(factory2.createObjectLiteralExpression(chunkObject));\n    }\n    return objects;\n  }\n  function visitObjectLiteralExpression(node) {\n    if (node.transformFlags & 65536 /* ContainsObjectRestOrSpread */) {\n      const objects = chunkObjectLiteralElements(node.properties);\n      if (objects.length && objects[0].kind !== 211 /* ObjectLiteralExpression */) {\n        objects.unshift(factory2.createObjectLiteralExpression());\n      }\n      let expression = objects[0];\n      if (objects.length > 1) {\n        for (let i = 1; i < objects.length; i++) {\n          expression = emitHelpers().createAssignHelper([expression, objects[i]]);\n        }\n        return expression;\n      } else {\n        return emitHelpers().createAssignHelper(objects);\n      }\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitExpressionStatement(node) {\n    return visitEachChild(node, visitorWithUnusedExpressionResult, context);\n  }\n  function visitParenthesizedExpression(node, expressionResultIsUnused2) {\n    return visitEachChild(node, expressionResultIsUnused2 ? visitorWithUnusedExpressionResult : visitor, context);\n  }\n  function visitSourceFile(node) {\n    const ancestorFacts = enterSubtree(\n      2 /* SourceFileExcludes */,\n      isEffectiveStrictModeSourceFile(node, compilerOptions) ? 0 /* StrictModeSourceFileIncludes */ : 1 /* SourceFileIncludes */\n    );\n    exportedVariableStatement = false;\n    const visited = visitEachChild(node, visitor, context);\n    const statement = concatenate(\n      visited.statements,\n      taggedTemplateStringDeclarations && [\n        factory2.createVariableStatement(\n          /*modifiers*/\n          void 0,\n          factory2.createVariableDeclarationList(taggedTemplateStringDeclarations)\n        )\n      ]\n    );\n    const result = factory2.updateSourceFile(visited, setTextRange(factory2.createNodeArray(statement), node.statements));\n    exitSubtree(ancestorFacts);\n    return result;\n  }\n  function visitTaggedTemplateExpression(node) {\n    return processTaggedTemplateExpression(\n      context,\n      node,\n      visitor,\n      currentSourceFile,\n      recordTaggedTemplateString,\n      0 /* LiftRestriction */\n    );\n  }\n  function visitBinaryExpression(node, expressionResultIsUnused2) {\n    if (isDestructuringAssignment(node) && containsObjectRestOrSpread(node.left)) {\n      return flattenDestructuringAssignment(\n        node,\n        visitor,\n        context,\n        1 /* ObjectRest */,\n        !expressionResultIsUnused2\n      );\n    }\n    if (node.operatorToken.kind === 28 /* CommaToken */) {\n      return factory2.updateBinaryExpression(\n        node,\n        visitNode(node.left, visitorWithUnusedExpressionResult, isExpression),\n        node.operatorToken,\n        visitNode(node.right, expressionResultIsUnused2 ? visitorWithUnusedExpressionResult : visitor, isExpression)\n      );\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitCommaListExpression(node, expressionResultIsUnused2) {\n    if (expressionResultIsUnused2) {\n      return visitEachChild(node, visitorWithUnusedExpressionResult, context);\n    }\n    let result;\n    for (let i = 0; i < node.elements.length; i++) {\n      const element = node.elements[i];\n      const visited = visitNode(element, i < node.elements.length - 1 ? visitorWithUnusedExpressionResult : visitor, isExpression);\n      if (result || visited !== element) {\n        result || (result = node.elements.slice(0, i));\n        result.push(visited);\n      }\n    }\n    const elements = result ? setTextRange(factory2.createNodeArray(result), node.elements) : node.elements;\n    return factory2.updateCommaListExpression(node, elements);\n  }\n  function visitCatchClause(node) {\n    if (node.variableDeclaration && isBindingPattern(node.variableDeclaration.name) && node.variableDeclaration.name.transformFlags & 65536 /* ContainsObjectRestOrSpread */) {\n      const name = factory2.getGeneratedNameForNode(node.variableDeclaration.name);\n      const updatedDecl = factory2.updateVariableDeclaration(\n        node.variableDeclaration,\n        node.variableDeclaration.name,\n        /*exclamationToken*/\n        void 0,\n        /*type*/\n        void 0,\n        name\n      );\n      const visitedBindings = flattenDestructuringBinding(updatedDecl, visitor, context, 1 /* ObjectRest */);\n      let block = visitNode(node.block, visitor, isBlock);\n      if (some(visitedBindings)) {\n        block = factory2.updateBlock(block, [\n          factory2.createVariableStatement(\n            /*modifiers*/\n            void 0,\n            visitedBindings\n          ),\n          ...block.statements\n        ]);\n      }\n      return factory2.updateCatchClause(\n        node,\n        factory2.updateVariableDeclaration(\n          node.variableDeclaration,\n          name,\n          /*exclamationToken*/\n          void 0,\n          /*type*/\n          void 0,\n          /*initializer*/\n          void 0\n        ),\n        block\n      );\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitVariableStatement(node) {\n    if (hasSyntacticModifier(node, 32 /* Export */)) {\n      const savedExportedVariableStatement = exportedVariableStatement;\n      exportedVariableStatement = true;\n      const visited = visitEachChild(node, visitor, context);\n      exportedVariableStatement = savedExportedVariableStatement;\n      return visited;\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitVariableDeclaration(node) {\n    if (exportedVariableStatement) {\n      const savedExportedVariableStatement = exportedVariableStatement;\n      exportedVariableStatement = false;\n      const visited = visitVariableDeclarationWorker(\n        node,\n        /*exportedVariableStatement*/\n        true\n      );\n      exportedVariableStatement = savedExportedVariableStatement;\n      return visited;\n    }\n    return visitVariableDeclarationWorker(\n      node,\n      /*exportedVariableStatement*/\n      false\n    );\n  }\n  function visitVariableDeclarationWorker(node, exportedVariableStatement2) {\n    if (isBindingPattern(node.name) && node.name.transformFlags & 65536 /* ContainsObjectRestOrSpread */) {\n      return flattenDestructuringBinding(\n        node,\n        visitor,\n        context,\n        1 /* ObjectRest */,\n        /*rval*/\n        void 0,\n        exportedVariableStatement2\n      );\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitForStatement(node) {\n    return factory2.updateForStatement(\n      node,\n      visitNode(node.initializer, visitorWithUnusedExpressionResult, isForInitializer),\n      visitNode(node.condition, visitor, isExpression),\n      visitNode(node.incrementor, visitorWithUnusedExpressionResult, isExpression),\n      visitIterationBody(node.statement, visitor, context)\n    );\n  }\n  function visitVoidExpression(node) {\n    return visitEachChild(node, visitorWithUnusedExpressionResult, context);\n  }\n  function visitForOfStatement(node, outermostLabeledStatement) {\n    const ancestorFacts = enterSubtree(0 /* IterationStatementExcludes */, 2 /* IterationStatementIncludes */);\n    if (node.initializer.transformFlags & 65536 /* ContainsObjectRestOrSpread */ || isAssignmentPattern(node.initializer) && containsObjectRestOrSpread(node.initializer)) {\n      node = transformForOfStatementWithObjectRest(node);\n    }\n    const result = node.awaitModifier ? transformForAwaitOfStatement(node, outermostLabeledStatement, ancestorFacts) : factory2.restoreEnclosingLabel(visitEachChild(node, visitor, context), outermostLabeledStatement);\n    exitSubtree(ancestorFacts);\n    return result;\n  }\n  function transformForOfStatementWithObjectRest(node) {\n    const initializerWithoutParens = skipParentheses(node.initializer);\n    if (isVariableDeclarationList(initializerWithoutParens) || isAssignmentPattern(initializerWithoutParens)) {\n      let bodyLocation;\n      let statementsLocation;\n      const temp = factory2.createTempVariable(\n        /*recordTempVariable*/\n        void 0\n      );\n      const statements = [createForOfBindingStatement(factory2, initializerWithoutParens, temp)];\n      if (isBlock(node.statement)) {\n        addRange(statements, node.statement.statements);\n        bodyLocation = node.statement;\n        statementsLocation = node.statement.statements;\n      } else if (node.statement) {\n        append(statements, node.statement);\n        bodyLocation = node.statement;\n        statementsLocation = node.statement;\n      }\n      return factory2.updateForOfStatement(\n        node,\n        node.awaitModifier,\n        setTextRange(\n          factory2.createVariableDeclarationList(\n            [\n              setTextRange(factory2.createVariableDeclaration(temp), node.initializer)\n            ],\n            1 /* Let */\n          ),\n          node.initializer\n        ),\n        node.expression,\n        setTextRange(\n          factory2.createBlock(\n            setTextRange(factory2.createNodeArray(statements), statementsLocation),\n            /*multiLine*/\n            true\n          ),\n          bodyLocation\n        )\n      );\n    }\n    return node;\n  }\n  function convertForOfStatementHead(node, boundValue, nonUserCode) {\n    const value = factory2.createTempVariable(hoistVariableDeclaration);\n    const iteratorValueExpression = factory2.createAssignment(value, boundValue);\n    const iteratorValueStatement = factory2.createExpressionStatement(iteratorValueExpression);\n    setSourceMapRange(iteratorValueStatement, node.expression);\n    const exitNonUserCodeExpression = factory2.createAssignment(nonUserCode, factory2.createFalse());\n    const exitNonUserCodeStatement = factory2.createExpressionStatement(exitNonUserCodeExpression);\n    setSourceMapRange(exitNonUserCodeStatement, node.expression);\n    const statements = [iteratorValueStatement, exitNonUserCodeStatement];\n    const binding = createForOfBindingStatement(factory2, node.initializer, value);\n    statements.push(visitNode(binding, visitor, isStatement));\n    let bodyLocation;\n    let statementsLocation;\n    const statement = visitIterationBody(node.statement, visitor, context);\n    if (isBlock(statement)) {\n      addRange(statements, statement.statements);\n      bodyLocation = statement;\n      statementsLocation = statement.statements;\n    } else {\n      statements.push(statement);\n    }\n    return setTextRange(\n      factory2.createBlock(\n        setTextRange(factory2.createNodeArray(statements), statementsLocation),\n        /*multiLine*/\n        true\n      ),\n      bodyLocation\n    );\n  }\n  function createDownlevelAwait(expression) {\n    return enclosingFunctionFlags & 1 /* Generator */ ? factory2.createYieldExpression(\n      /*asteriskToken*/\n      void 0,\n      emitHelpers().createAwaitHelper(expression)\n    ) : factory2.createAwaitExpression(expression);\n  }\n  function transformForAwaitOfStatement(node, outermostLabeledStatement, ancestorFacts) {\n    const expression = visitNode(node.expression, visitor, isExpression);\n    const iterator = isIdentifier(expression) ? factory2.getGeneratedNameForNode(expression) : factory2.createTempVariable(\n      /*recordTempVariable*/\n      void 0\n    );\n    const result = isIdentifier(expression) ? factory2.getGeneratedNameForNode(iterator) : factory2.createTempVariable(\n      /*recordTempVariable*/\n      void 0\n    );\n    const nonUserCode = factory2.createTempVariable(\n      /*recordTempVariable*/\n      void 0\n    );\n    const done = factory2.createTempVariable(hoistVariableDeclaration);\n    const errorRecord = factory2.createUniqueName(\"e\");\n    const catchVariable = factory2.getGeneratedNameForNode(errorRecord);\n    const returnMethod = factory2.createTempVariable(\n      /*recordTempVariable*/\n      void 0\n    );\n    const callValues = setTextRange(emitHelpers().createAsyncValuesHelper(expression), node.expression);\n    const callNext = factory2.createCallExpression(\n      factory2.createPropertyAccessExpression(iterator, \"next\"),\n      /*typeArguments*/\n      void 0,\n      []\n    );\n    const getDone = factory2.createPropertyAccessExpression(result, \"done\");\n    const getValue = factory2.createPropertyAccessExpression(result, \"value\");\n    const callReturn = factory2.createFunctionCallCall(returnMethod, iterator, []);\n    hoistVariableDeclaration(errorRecord);\n    hoistVariableDeclaration(returnMethod);\n    const initializer = ancestorFacts & 2 /* IterationContainer */ ? factory2.inlineExpressions([factory2.createAssignment(errorRecord, factory2.createVoidZero()), callValues]) : callValues;\n    const forStatement = setEmitFlags(\n      setTextRange(\n        factory2.createForStatement(\n          /*initializer*/\n          setEmitFlags(\n            setTextRange(\n              factory2.createVariableDeclarationList([\n                factory2.createVariableDeclaration(\n                  nonUserCode,\n                  /*exclamationToken*/\n                  void 0,\n                  /*type*/\n                  void 0,\n                  factory2.createTrue()\n                ),\n                setTextRange(factory2.createVariableDeclaration(\n                  iterator,\n                  /*exclamationToken*/\n                  void 0,\n                  /*type*/\n                  void 0,\n                  initializer\n                ), node.expression),\n                factory2.createVariableDeclaration(result)\n              ]),\n              node.expression\n            ),\n            4194304 /* NoHoisting */\n          ),\n          /*condition*/\n          factory2.inlineExpressions([\n            factory2.createAssignment(result, createDownlevelAwait(callNext)),\n            factory2.createAssignment(done, getDone),\n            factory2.createLogicalNot(done)\n          ]),\n          /*incrementor*/\n          factory2.createAssignment(nonUserCode, factory2.createTrue()),\n          /*statement*/\n          convertForOfStatementHead(node, getValue, nonUserCode)\n        ),\n        /*location*/\n        node\n      ),\n      512 /* NoTokenTrailingSourceMaps */\n    );\n    setOriginalNode(forStatement, node);\n    return factory2.createTryStatement(\n      factory2.createBlock([\n        factory2.restoreEnclosingLabel(\n          forStatement,\n          outermostLabeledStatement\n        )\n      ]),\n      factory2.createCatchClause(\n        factory2.createVariableDeclaration(catchVariable),\n        setEmitFlags(\n          factory2.createBlock([\n            factory2.createExpressionStatement(\n              factory2.createAssignment(\n                errorRecord,\n                factory2.createObjectLiteralExpression([\n                  factory2.createPropertyAssignment(\"error\", catchVariable)\n                ])\n              )\n            )\n          ]),\n          1 /* SingleLine */\n        )\n      ),\n      factory2.createBlock([\n        factory2.createTryStatement(\n          /*tryBlock*/\n          factory2.createBlock([\n            setEmitFlags(\n              factory2.createIfStatement(\n                factory2.createLogicalAnd(\n                  factory2.createLogicalAnd(\n                    factory2.createLogicalNot(nonUserCode),\n                    factory2.createLogicalNot(done)\n                  ),\n                  factory2.createAssignment(\n                    returnMethod,\n                    factory2.createPropertyAccessExpression(iterator, \"return\")\n                  )\n                ),\n                factory2.createExpressionStatement(createDownlevelAwait(callReturn))\n              ),\n              1 /* SingleLine */\n            )\n          ]),\n          /*catchClause*/\n          void 0,\n          /*finallyBlock*/\n          setEmitFlags(\n            factory2.createBlock([\n              setEmitFlags(\n                factory2.createIfStatement(\n                  errorRecord,\n                  factory2.createThrowStatement(\n                    factory2.createPropertyAccessExpression(errorRecord, \"error\")\n                  )\n                ),\n                1 /* SingleLine */\n              )\n            ]),\n            1 /* SingleLine */\n          )\n        )\n      ])\n    );\n  }\n  function parameterVisitor(node) {\n    Debug.assertNode(node, isParameter);\n    return visitParameter(node);\n  }\n  function visitParameter(node) {\n    if (parametersWithPrecedingObjectRestOrSpread == null ? void 0 : parametersWithPrecedingObjectRestOrSpread.has(node)) {\n      return factory2.updateParameterDeclaration(\n        node,\n        /*modifiers*/\n        void 0,\n        node.dotDotDotToken,\n        isBindingPattern(node.name) ? factory2.getGeneratedNameForNode(node) : node.name,\n        /*questionToken*/\n        void 0,\n        /*type*/\n        void 0,\n        /*initializer*/\n        void 0\n      );\n    }\n    if (node.transformFlags & 65536 /* ContainsObjectRestOrSpread */) {\n      return factory2.updateParameterDeclaration(\n        node,\n        /*modifiers*/\n        void 0,\n        node.dotDotDotToken,\n        factory2.getGeneratedNameForNode(node),\n        /*questionToken*/\n        void 0,\n        /*type*/\n        void 0,\n        visitNode(node.initializer, visitor, isExpression)\n      );\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function collectParametersWithPrecedingObjectRestOrSpread(node) {\n    let parameters;\n    for (const parameter of node.parameters) {\n      if (parameters) {\n        parameters.add(parameter);\n      } else if (parameter.transformFlags & 65536 /* ContainsObjectRestOrSpread */) {\n        parameters = /* @__PURE__ */ new Set();\n      }\n    }\n    return parameters;\n  }\n  function visitConstructorDeclaration(node) {\n    const savedEnclosingFunctionFlags = enclosingFunctionFlags;\n    const savedParametersWithPrecedingObjectRestOrSpread = parametersWithPrecedingObjectRestOrSpread;\n    enclosingFunctionFlags = getFunctionFlags(node);\n    parametersWithPrecedingObjectRestOrSpread = collectParametersWithPrecedingObjectRestOrSpread(node);\n    const updated = factory2.updateConstructorDeclaration(\n      node,\n      node.modifiers,\n      visitParameterList(node.parameters, parameterVisitor, context),\n      transformFunctionBody2(node)\n    );\n    enclosingFunctionFlags = savedEnclosingFunctionFlags;\n    parametersWithPrecedingObjectRestOrSpread = savedParametersWithPrecedingObjectRestOrSpread;\n    return updated;\n  }\n  function visitGetAccessorDeclaration(node) {\n    const savedEnclosingFunctionFlags = enclosingFunctionFlags;\n    const savedParametersWithPrecedingObjectRestOrSpread = parametersWithPrecedingObjectRestOrSpread;\n    enclosingFunctionFlags = getFunctionFlags(node);\n    parametersWithPrecedingObjectRestOrSpread = collectParametersWithPrecedingObjectRestOrSpread(node);\n    const updated = factory2.updateGetAccessorDeclaration(\n      node,\n      node.modifiers,\n      visitNode(node.name, visitor, isPropertyName),\n      visitParameterList(node.parameters, parameterVisitor, context),\n      /*type*/\n      void 0,\n      transformFunctionBody2(node)\n    );\n    enclosingFunctionFlags = savedEnclosingFunctionFlags;\n    parametersWithPrecedingObjectRestOrSpread = savedParametersWithPrecedingObjectRestOrSpread;\n    return updated;\n  }\n  function visitSetAccessorDeclaration(node) {\n    const savedEnclosingFunctionFlags = enclosingFunctionFlags;\n    const savedParametersWithPrecedingObjectRestOrSpread = parametersWithPrecedingObjectRestOrSpread;\n    enclosingFunctionFlags = getFunctionFlags(node);\n    parametersWithPrecedingObjectRestOrSpread = collectParametersWithPrecedingObjectRestOrSpread(node);\n    const updated = factory2.updateSetAccessorDeclaration(\n      node,\n      node.modifiers,\n      visitNode(node.name, visitor, isPropertyName),\n      visitParameterList(node.parameters, parameterVisitor, context),\n      transformFunctionBody2(node)\n    );\n    enclosingFunctionFlags = savedEnclosingFunctionFlags;\n    parametersWithPrecedingObjectRestOrSpread = savedParametersWithPrecedingObjectRestOrSpread;\n    return updated;\n  }\n  function visitMethodDeclaration(node) {\n    const savedEnclosingFunctionFlags = enclosingFunctionFlags;\n    const savedParametersWithPrecedingObjectRestOrSpread = parametersWithPrecedingObjectRestOrSpread;\n    enclosingFunctionFlags = getFunctionFlags(node);\n    parametersWithPrecedingObjectRestOrSpread = collectParametersWithPrecedingObjectRestOrSpread(node);\n    const updated = factory2.updateMethodDeclaration(\n      node,\n      enclosingFunctionFlags & 1 /* Generator */ ? visitNodes2(node.modifiers, visitorNoAsyncModifier, isModifierLike) : node.modifiers,\n      enclosingFunctionFlags & 2 /* Async */ ? void 0 : node.asteriskToken,\n      visitNode(node.name, visitor, isPropertyName),\n      visitNode(\n        /*node*/\n        void 0,\n        visitor,\n        isQuestionToken\n      ),\n      /*typeParameters*/\n      void 0,\n      enclosingFunctionFlags & 2 /* Async */ && enclosingFunctionFlags & 1 /* Generator */ ? transformAsyncGeneratorFunctionParameterList(node) : visitParameterList(node.parameters, parameterVisitor, context),\n      /*type*/\n      void 0,\n      enclosingFunctionFlags & 2 /* Async */ && enclosingFunctionFlags & 1 /* Generator */ ? transformAsyncGeneratorFunctionBody(node) : transformFunctionBody2(node)\n    );\n    enclosingFunctionFlags = savedEnclosingFunctionFlags;\n    parametersWithPrecedingObjectRestOrSpread = savedParametersWithPrecedingObjectRestOrSpread;\n    return updated;\n  }\n  function visitFunctionDeclaration(node) {\n    const savedEnclosingFunctionFlags = enclosingFunctionFlags;\n    const savedParametersWithPrecedingObjectRestOrSpread = parametersWithPrecedingObjectRestOrSpread;\n    enclosingFunctionFlags = getFunctionFlags(node);\n    parametersWithPrecedingObjectRestOrSpread = collectParametersWithPrecedingObjectRestOrSpread(node);\n    const updated = factory2.updateFunctionDeclaration(\n      node,\n      enclosingFunctionFlags & 1 /* Generator */ ? visitNodes2(node.modifiers, visitorNoAsyncModifier, isModifier) : node.modifiers,\n      enclosingFunctionFlags & 2 /* Async */ ? void 0 : node.asteriskToken,\n      node.name,\n      /*typeParameters*/\n      void 0,\n      enclosingFunctionFlags & 2 /* Async */ && enclosingFunctionFlags & 1 /* Generator */ ? transformAsyncGeneratorFunctionParameterList(node) : visitParameterList(node.parameters, parameterVisitor, context),\n      /*type*/\n      void 0,\n      enclosingFunctionFlags & 2 /* Async */ && enclosingFunctionFlags & 1 /* Generator */ ? transformAsyncGeneratorFunctionBody(node) : transformFunctionBody2(node)\n    );\n    enclosingFunctionFlags = savedEnclosingFunctionFlags;\n    parametersWithPrecedingObjectRestOrSpread = savedParametersWithPrecedingObjectRestOrSpread;\n    return updated;\n  }\n  function visitArrowFunction(node) {\n    const savedEnclosingFunctionFlags = enclosingFunctionFlags;\n    const savedParametersWithPrecedingObjectRestOrSpread = parametersWithPrecedingObjectRestOrSpread;\n    enclosingFunctionFlags = getFunctionFlags(node);\n    parametersWithPrecedingObjectRestOrSpread = collectParametersWithPrecedingObjectRestOrSpread(node);\n    const updated = factory2.updateArrowFunction(\n      node,\n      node.modifiers,\n      /*typeParameters*/\n      void 0,\n      visitParameterList(node.parameters, parameterVisitor, context),\n      /*type*/\n      void 0,\n      node.equalsGreaterThanToken,\n      transformFunctionBody2(node)\n    );\n    enclosingFunctionFlags = savedEnclosingFunctionFlags;\n    parametersWithPrecedingObjectRestOrSpread = savedParametersWithPrecedingObjectRestOrSpread;\n    return updated;\n  }\n  function visitFunctionExpression(node) {\n    const savedEnclosingFunctionFlags = enclosingFunctionFlags;\n    const savedParametersWithPrecedingObjectRestOrSpread = parametersWithPrecedingObjectRestOrSpread;\n    enclosingFunctionFlags = getFunctionFlags(node);\n    parametersWithPrecedingObjectRestOrSpread = collectParametersWithPrecedingObjectRestOrSpread(node);\n    const updated = factory2.updateFunctionExpression(\n      node,\n      enclosingFunctionFlags & 1 /* Generator */ ? visitNodes2(node.modifiers, visitorNoAsyncModifier, isModifier) : node.modifiers,\n      enclosingFunctionFlags & 2 /* Async */ ? void 0 : node.asteriskToken,\n      node.name,\n      /*typeParameters*/\n      void 0,\n      enclosingFunctionFlags & 2 /* Async */ && enclosingFunctionFlags & 1 /* Generator */ ? transformAsyncGeneratorFunctionParameterList(node) : visitParameterList(node.parameters, parameterVisitor, context),\n      /*type*/\n      void 0,\n      enclosingFunctionFlags & 2 /* Async */ && enclosingFunctionFlags & 1 /* Generator */ ? transformAsyncGeneratorFunctionBody(node) : transformFunctionBody2(node)\n    );\n    enclosingFunctionFlags = savedEnclosingFunctionFlags;\n    parametersWithPrecedingObjectRestOrSpread = savedParametersWithPrecedingObjectRestOrSpread;\n    return updated;\n  }\n  function transformAsyncGeneratorFunctionParameterList(node) {\n    if (isSimpleParameterList(node.parameters)) {\n      return visitParameterList(node.parameters, visitor, context);\n    }\n    const newParameters = [];\n    for (const parameter of node.parameters) {\n      if (parameter.initializer || parameter.dotDotDotToken) {\n        break;\n      }\n      const newParameter = factory2.createParameterDeclaration(\n        /*modifiers*/\n        void 0,\n        /*dotDotDotToken*/\n        void 0,\n        factory2.getGeneratedNameForNode(parameter.name, 8 /* ReservedInNestedScopes */)\n      );\n      newParameters.push(newParameter);\n    }\n    const newParametersArray = factory2.createNodeArray(newParameters);\n    setTextRange(newParametersArray, node.parameters);\n    return newParametersArray;\n  }\n  function transformAsyncGeneratorFunctionBody(node) {\n    const innerParameters = !isSimpleParameterList(node.parameters) ? visitParameterList(node.parameters, visitor, context) : void 0;\n    resumeLexicalEnvironment();\n    const savedCapturedSuperProperties = capturedSuperProperties;\n    const savedHasSuperElementAccess = hasSuperElementAccess;\n    capturedSuperProperties = /* @__PURE__ */ new Set();\n    hasSuperElementAccess = false;\n    const outerStatements = [];\n    let asyncBody = factory2.updateBlock(node.body, visitNodes2(node.body.statements, visitor, isStatement));\n    asyncBody = factory2.updateBlock(asyncBody, factory2.mergeLexicalEnvironment(asyncBody.statements, appendObjectRestAssignmentsIfNeeded(endLexicalEnvironment(), node)));\n    const returnStatement = factory2.createReturnStatement(\n      emitHelpers().createAsyncGeneratorHelper(\n        factory2.createFunctionExpression(\n          /*modifiers*/\n          void 0,\n          factory2.createToken(42 /* AsteriskToken */),\n          node.name && factory2.getGeneratedNameForNode(node.name),\n          /*typeParameters*/\n          void 0,\n          innerParameters ?? [],\n          /*type*/\n          void 0,\n          asyncBody\n        ),\n        !!(hierarchyFacts & 1 /* HasLexicalThis */)\n      )\n    );\n    const emitSuperHelpers = languageVersion >= 2 /* ES2015 */ && (resolver.hasNodeCheckFlag(node, 256 /* MethodWithSuperPropertyAssignmentInAsync */) || resolver.hasNodeCheckFlag(node, 128 /* MethodWithSuperPropertyAccessInAsync */));\n    if (emitSuperHelpers) {\n      enableSubstitutionForAsyncMethodsWithSuper();\n      const variableStatement = createSuperAccessVariableStatement(factory2, resolver, node, capturedSuperProperties);\n      substitutedSuperAccessors[getNodeId(variableStatement)] = true;\n      insertStatementsAfterStandardPrologue(outerStatements, [variableStatement]);\n    }\n    outerStatements.push(returnStatement);\n    const block = factory2.updateBlock(node.body, outerStatements);\n    if (emitSuperHelpers && hasSuperElementAccess) {\n      if (resolver.hasNodeCheckFlag(node, 256 /* MethodWithSuperPropertyAssignmentInAsync */)) {\n        addEmitHelper(block, advancedAsyncSuperHelper);\n      } else if (resolver.hasNodeCheckFlag(node, 128 /* MethodWithSuperPropertyAccessInAsync */)) {\n        addEmitHelper(block, asyncSuperHelper);\n      }\n    }\n    capturedSuperProperties = savedCapturedSuperProperties;\n    hasSuperElementAccess = savedHasSuperElementAccess;\n    return block;\n  }\n  function transformFunctionBody2(node) {\n    resumeLexicalEnvironment();\n    let statementOffset = 0;\n    const statements = [];\n    const body = visitNode(node.body, visitor, isConciseBody) ?? factory2.createBlock([]);\n    if (isBlock(body)) {\n      statementOffset = factory2.copyPrologue(\n        body.statements,\n        statements,\n        /*ensureUseStrict*/\n        false,\n        visitor\n      );\n    }\n    addRange(statements, appendObjectRestAssignmentsIfNeeded(\n      /*statements*/\n      void 0,\n      node\n    ));\n    const leadingStatements = endLexicalEnvironment();\n    if (statementOffset > 0 || some(statements) || some(leadingStatements)) {\n      const block = factory2.converters.convertToFunctionBlock(\n        body,\n        /*multiLine*/\n        true\n      );\n      insertStatementsAfterStandardPrologue(statements, leadingStatements);\n      addRange(statements, block.statements.slice(statementOffset));\n      return factory2.updateBlock(block, setTextRange(factory2.createNodeArray(statements), block.statements));\n    }\n    return body;\n  }\n  function appendObjectRestAssignmentsIfNeeded(statements, node) {\n    let containsPrecedingObjectRestOrSpread = false;\n    for (const parameter of node.parameters) {\n      if (containsPrecedingObjectRestOrSpread) {\n        if (isBindingPattern(parameter.name)) {\n          if (parameter.name.elements.length > 0) {\n            const declarations = flattenDestructuringBinding(\n              parameter,\n              visitor,\n              context,\n              0 /* All */,\n              factory2.getGeneratedNameForNode(parameter)\n            );\n            if (some(declarations)) {\n              const declarationList = factory2.createVariableDeclarationList(declarations);\n              const statement = factory2.createVariableStatement(\n                /*modifiers*/\n                void 0,\n                declarationList\n              );\n              setEmitFlags(statement, 2097152 /* CustomPrologue */);\n              statements = append(statements, statement);\n            }\n          } else if (parameter.initializer) {\n            const name = factory2.getGeneratedNameForNode(parameter);\n            const initializer = visitNode(parameter.initializer, visitor, isExpression);\n            const assignment = factory2.createAssignment(name, initializer);\n            const statement = factory2.createExpressionStatement(assignment);\n            setEmitFlags(statement, 2097152 /* CustomPrologue */);\n            statements = append(statements, statement);\n          }\n        } else if (parameter.initializer) {\n          const name = factory2.cloneNode(parameter.name);\n          setTextRange(name, parameter.name);\n          setEmitFlags(name, 96 /* NoSourceMap */);\n          const initializer = visitNode(parameter.initializer, visitor, isExpression);\n          addEmitFlags(initializer, 96 /* NoSourceMap */ | 3072 /* NoComments */);\n          const assignment = factory2.createAssignment(name, initializer);\n          setTextRange(assignment, parameter);\n          setEmitFlags(assignment, 3072 /* NoComments */);\n          const block = factory2.createBlock([factory2.createExpressionStatement(assignment)]);\n          setTextRange(block, parameter);\n          setEmitFlags(block, 1 /* SingleLine */ | 64 /* NoTrailingSourceMap */ | 768 /* NoTokenSourceMaps */ | 3072 /* NoComments */);\n          const typeCheck = factory2.createTypeCheck(factory2.cloneNode(parameter.name), \"undefined\");\n          const statement = factory2.createIfStatement(typeCheck, block);\n          startOnNewLine(statement);\n          setTextRange(statement, parameter);\n          setEmitFlags(statement, 768 /* NoTokenSourceMaps */ | 64 /* NoTrailingSourceMap */ | 2097152 /* CustomPrologue */ | 3072 /* NoComments */);\n          statements = append(statements, statement);\n        }\n      } else if (parameter.transformFlags & 65536 /* ContainsObjectRestOrSpread */) {\n        containsPrecedingObjectRestOrSpread = true;\n        const declarations = flattenDestructuringBinding(\n          parameter,\n          visitor,\n          context,\n          1 /* ObjectRest */,\n          factory2.getGeneratedNameForNode(parameter),\n          /*hoistTempVariables*/\n          false,\n          /*skipInitializer*/\n          true\n        );\n        if (some(declarations)) {\n          const declarationList = factory2.createVariableDeclarationList(declarations);\n          const statement = factory2.createVariableStatement(\n            /*modifiers*/\n            void 0,\n            declarationList\n          );\n          setEmitFlags(statement, 2097152 /* CustomPrologue */);\n          statements = append(statements, statement);\n        }\n      }\n    }\n    return statements;\n  }\n  function enableSubstitutionForAsyncMethodsWithSuper() {\n    if ((enabledSubstitutions & 1 /* AsyncMethodsWithSuper */) === 0) {\n      enabledSubstitutions |= 1 /* AsyncMethodsWithSuper */;\n      context.enableSubstitution(214 /* CallExpression */);\n      context.enableSubstitution(212 /* PropertyAccessExpression */);\n      context.enableSubstitution(213 /* ElementAccessExpression */);\n      context.enableEmitNotification(264 /* ClassDeclaration */);\n      context.enableEmitNotification(175 /* MethodDeclaration */);\n      context.enableEmitNotification(178 /* GetAccessor */);\n      context.enableEmitNotification(179 /* SetAccessor */);\n      context.enableEmitNotification(177 /* Constructor */);\n      context.enableEmitNotification(244 /* VariableStatement */);\n    }\n  }\n  function onEmitNode(hint, node, emitCallback) {\n    if (enabledSubstitutions & 1 /* AsyncMethodsWithSuper */ && isSuperContainer(node)) {\n      const superContainerFlags = (resolver.hasNodeCheckFlag(node, 128 /* MethodWithSuperPropertyAccessInAsync */) ? 128 /* MethodWithSuperPropertyAccessInAsync */ : 0) | (resolver.hasNodeCheckFlag(node, 256 /* MethodWithSuperPropertyAssignmentInAsync */) ? 256 /* MethodWithSuperPropertyAssignmentInAsync */ : 0);\n      if (superContainerFlags !== enclosingSuperContainerFlags) {\n        const savedEnclosingSuperContainerFlags = enclosingSuperContainerFlags;\n        enclosingSuperContainerFlags = superContainerFlags;\n        previousOnEmitNode(hint, node, emitCallback);\n        enclosingSuperContainerFlags = savedEnclosingSuperContainerFlags;\n        return;\n      }\n    } else if (enabledSubstitutions && substitutedSuperAccessors[getNodeId(node)]) {\n      const savedEnclosingSuperContainerFlags = enclosingSuperContainerFlags;\n      enclosingSuperContainerFlags = 0;\n      previousOnEmitNode(hint, node, emitCallback);\n      enclosingSuperContainerFlags = savedEnclosingSuperContainerFlags;\n      return;\n    }\n    previousOnEmitNode(hint, node, emitCallback);\n  }\n  function onSubstituteNode(hint, node) {\n    node = previousOnSubstituteNode(hint, node);\n    if (hint === 1 /* Expression */ && enclosingSuperContainerFlags) {\n      return substituteExpression(node);\n    }\n    return node;\n  }\n  function substituteExpression(node) {\n    switch (node.kind) {\n      case 212 /* PropertyAccessExpression */:\n        return substitutePropertyAccessExpression(node);\n      case 213 /* ElementAccessExpression */:\n        return substituteElementAccessExpression(node);\n      case 214 /* CallExpression */:\n        return substituteCallExpression(node);\n    }\n    return node;\n  }\n  function substitutePropertyAccessExpression(node) {\n    if (node.expression.kind === 108 /* SuperKeyword */) {\n      return setTextRange(\n        factory2.createPropertyAccessExpression(\n          factory2.createUniqueName(\"_super\", 16 /* Optimistic */ | 32 /* FileLevel */),\n          node.name\n        ),\n        node\n      );\n    }\n    return node;\n  }\n  function substituteElementAccessExpression(node) {\n    if (node.expression.kind === 108 /* SuperKeyword */) {\n      return createSuperElementAccessInAsyncMethod(\n        node.argumentExpression,\n        node\n      );\n    }\n    return node;\n  }\n  function substituteCallExpression(node) {\n    const expression = node.expression;\n    if (isSuperProperty(expression)) {\n      const argumentExpression = isPropertyAccessExpression(expression) ? substitutePropertyAccessExpression(expression) : substituteElementAccessExpression(expression);\n      return factory2.createCallExpression(\n        factory2.createPropertyAccessExpression(argumentExpression, \"call\"),\n        /*typeArguments*/\n        void 0,\n        [\n          factory2.createThis(),\n          ...node.arguments\n        ]\n      );\n    }\n    return node;\n  }\n  function isSuperContainer(node) {\n    const kind = node.kind;\n    return kind === 264 /* ClassDeclaration */ || kind === 177 /* Constructor */ || kind === 175 /* MethodDeclaration */ || kind === 178 /* GetAccessor */ || kind === 179 /* SetAccessor */;\n  }\n  function createSuperElementAccessInAsyncMethod(argumentExpression, location) {\n    if (enclosingSuperContainerFlags & 256 /* MethodWithSuperPropertyAssignmentInAsync */) {\n      return setTextRange(\n        factory2.createPropertyAccessExpression(\n          factory2.createCallExpression(\n            factory2.createIdentifier(\"_superIndex\"),\n            /*typeArguments*/\n            void 0,\n            [argumentExpression]\n          ),\n          \"value\"\n        ),\n        location\n      );\n    } else {\n      return setTextRange(\n        factory2.createCallExpression(\n          factory2.createIdentifier(\"_superIndex\"),\n          /*typeArguments*/\n          void 0,\n          [argumentExpression]\n        ),\n        location\n      );\n    }\n  }\n}\n\n// src/compiler/transformers/es2019.ts\nfunction transformES2019(context) {\n  const factory2 = context.factory;\n  return chainBundle(context, transformSourceFile);\n  function transformSourceFile(node) {\n    if (node.isDeclarationFile) {\n      return node;\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitor(node) {\n    if ((node.transformFlags & 64 /* ContainsES2019 */) === 0) {\n      return node;\n    }\n    switch (node.kind) {\n      case 300 /* CatchClause */:\n        return visitCatchClause(node);\n      default:\n        return visitEachChild(node, visitor, context);\n    }\n  }\n  function visitCatchClause(node) {\n    if (!node.variableDeclaration) {\n      return factory2.updateCatchClause(\n        node,\n        factory2.createVariableDeclaration(factory2.createTempVariable(\n          /*recordTempVariable*/\n          void 0\n        )),\n        visitNode(node.block, visitor, isBlock)\n      );\n    }\n    return visitEachChild(node, visitor, context);\n  }\n}\n\n// src/compiler/transformers/es2020.ts\nfunction transformES2020(context) {\n  const {\n    factory: factory2,\n    hoistVariableDeclaration\n  } = context;\n  return chainBundle(context, transformSourceFile);\n  function transformSourceFile(node) {\n    if (node.isDeclarationFile) {\n      return node;\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitor(node) {\n    if ((node.transformFlags & 32 /* ContainsES2020 */) === 0) {\n      return node;\n    }\n    switch (node.kind) {\n      case 214 /* CallExpression */: {\n        const updated = visitNonOptionalCallExpression(\n          node,\n          /*captureThisArg*/\n          false\n        );\n        Debug.assertNotNode(updated, isSyntheticReference);\n        return updated;\n      }\n      case 212 /* PropertyAccessExpression */:\n      case 213 /* ElementAccessExpression */:\n        if (isOptionalChain(node)) {\n          const updated = visitOptionalExpression(\n            node,\n            /*captureThisArg*/\n            false,\n            /*isDelete*/\n            false\n          );\n          Debug.assertNotNode(updated, isSyntheticReference);\n          return updated;\n        }\n        return visitEachChild(node, visitor, context);\n      case 227 /* BinaryExpression */:\n        if (node.operatorToken.kind === 61 /* QuestionQuestionToken */) {\n          return transformNullishCoalescingExpression(node);\n        }\n        return visitEachChild(node, visitor, context);\n      case 221 /* DeleteExpression */:\n        return visitDeleteExpression(node);\n      default:\n        return visitEachChild(node, visitor, context);\n    }\n  }\n  function flattenChain(chain) {\n    Debug.assertNotNode(chain, isNonNullChain);\n    const links = [chain];\n    while (!chain.questionDotToken && !isTaggedTemplateExpression(chain)) {\n      chain = cast(skipPartiallyEmittedExpressions(chain.expression), isOptionalChain);\n      Debug.assertNotNode(chain, isNonNullChain);\n      links.unshift(chain);\n    }\n    return { expression: chain.expression, chain: links };\n  }\n  function visitNonOptionalParenthesizedExpression(node, captureThisArg, isDelete) {\n    const expression = visitNonOptionalExpression(node.expression, captureThisArg, isDelete);\n    if (isSyntheticReference(expression)) {\n      return factory2.createSyntheticReferenceExpression(factory2.updateParenthesizedExpression(node, expression.expression), expression.thisArg);\n    }\n    return factory2.updateParenthesizedExpression(node, expression);\n  }\n  function visitNonOptionalPropertyOrElementAccessExpression(node, captureThisArg, isDelete) {\n    if (isOptionalChain(node)) {\n      return visitOptionalExpression(node, captureThisArg, isDelete);\n    }\n    let expression = visitNode(node.expression, visitor, isExpression);\n    Debug.assertNotNode(expression, isSyntheticReference);\n    let thisArg;\n    if (captureThisArg) {\n      if (!isSimpleCopiableExpression(expression)) {\n        thisArg = factory2.createTempVariable(hoistVariableDeclaration);\n        expression = factory2.createAssignment(thisArg, expression);\n      } else {\n        thisArg = expression;\n      }\n    }\n    expression = node.kind === 212 /* PropertyAccessExpression */ ? factory2.updatePropertyAccessExpression(node, expression, visitNode(node.name, visitor, isIdentifier)) : factory2.updateElementAccessExpression(node, expression, visitNode(node.argumentExpression, visitor, isExpression));\n    return thisArg ? factory2.createSyntheticReferenceExpression(expression, thisArg) : expression;\n  }\n  function visitNonOptionalCallExpression(node, captureThisArg) {\n    if (isOptionalChain(node)) {\n      return visitOptionalExpression(\n        node,\n        captureThisArg,\n        /*isDelete*/\n        false\n      );\n    }\n    if (isParenthesizedExpression(node.expression) && isOptionalChain(skipParentheses(node.expression))) {\n      const expression = visitNonOptionalParenthesizedExpression(\n        node.expression,\n        /*captureThisArg*/\n        true,\n        /*isDelete*/\n        false\n      );\n      const args = visitNodes2(node.arguments, visitor, isExpression);\n      if (isSyntheticReference(expression)) {\n        return setTextRange(factory2.createFunctionCallCall(expression.expression, expression.thisArg, args), node);\n      }\n      return factory2.updateCallExpression(\n        node,\n        expression,\n        /*typeArguments*/\n        void 0,\n        args\n      );\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitNonOptionalExpression(node, captureThisArg, isDelete) {\n    switch (node.kind) {\n      case 218 /* ParenthesizedExpression */:\n        return visitNonOptionalParenthesizedExpression(node, captureThisArg, isDelete);\n      case 212 /* PropertyAccessExpression */:\n      case 213 /* ElementAccessExpression */:\n        return visitNonOptionalPropertyOrElementAccessExpression(node, captureThisArg, isDelete);\n      case 214 /* CallExpression */:\n        return visitNonOptionalCallExpression(node, captureThisArg);\n      default:\n        return visitNode(node, visitor, isExpression);\n    }\n  }\n  function visitOptionalExpression(node, captureThisArg, isDelete) {\n    const { expression, chain } = flattenChain(node);\n    const left = visitNonOptionalExpression(\n      skipPartiallyEmittedExpressions(expression),\n      isCallChain(chain[0]),\n      /*isDelete*/\n      false\n    );\n    let leftThisArg = isSyntheticReference(left) ? left.thisArg : void 0;\n    let capturedLeft = isSyntheticReference(left) ? left.expression : left;\n    let leftExpression = factory2.restoreOuterExpressions(expression, capturedLeft, 8 /* PartiallyEmittedExpressions */);\n    if (!isSimpleCopiableExpression(capturedLeft)) {\n      capturedLeft = factory2.createTempVariable(hoistVariableDeclaration);\n      leftExpression = factory2.createAssignment(capturedLeft, leftExpression);\n    }\n    let rightExpression = capturedLeft;\n    let thisArg;\n    for (let i = 0; i < chain.length; i++) {\n      const segment = chain[i];\n      switch (segment.kind) {\n        case 212 /* PropertyAccessExpression */:\n        case 213 /* ElementAccessExpression */:\n          if (i === chain.length - 1 && captureThisArg) {\n            if (!isSimpleCopiableExpression(rightExpression)) {\n              thisArg = factory2.createTempVariable(hoistVariableDeclaration);\n              rightExpression = factory2.createAssignment(thisArg, rightExpression);\n            } else {\n              thisArg = rightExpression;\n            }\n          }\n          rightExpression = segment.kind === 212 /* PropertyAccessExpression */ ? factory2.createPropertyAccessExpression(rightExpression, visitNode(segment.name, visitor, isIdentifier)) : factory2.createElementAccessExpression(rightExpression, visitNode(segment.argumentExpression, visitor, isExpression));\n          break;\n        case 214 /* CallExpression */:\n          if (i === 0 && leftThisArg) {\n            if (!isGeneratedIdentifier(leftThisArg)) {\n              leftThisArg = factory2.cloneNode(leftThisArg);\n              addEmitFlags(leftThisArg, 3072 /* NoComments */);\n            }\n            rightExpression = factory2.createFunctionCallCall(\n              rightExpression,\n              leftThisArg.kind === 108 /* SuperKeyword */ ? factory2.createThis() : leftThisArg,\n              visitNodes2(segment.arguments, visitor, isExpression)\n            );\n          } else {\n            rightExpression = factory2.createCallExpression(\n              rightExpression,\n              /*typeArguments*/\n              void 0,\n              visitNodes2(segment.arguments, visitor, isExpression)\n            );\n          }\n          break;\n      }\n      setOriginalNode(rightExpression, segment);\n    }\n    const target = isDelete ? factory2.createConditionalExpression(\n      createNotNullCondition(\n        leftExpression,\n        capturedLeft,\n        /*invert*/\n        true\n      ),\n      /*questionToken*/\n      void 0,\n      factory2.createTrue(),\n      /*colonToken*/\n      void 0,\n      factory2.createDeleteExpression(rightExpression)\n    ) : factory2.createConditionalExpression(\n      createNotNullCondition(\n        leftExpression,\n        capturedLeft,\n        /*invert*/\n        true\n      ),\n      /*questionToken*/\n      void 0,\n      factory2.createVoidZero(),\n      /*colonToken*/\n      void 0,\n      rightExpression\n    );\n    setTextRange(target, node);\n    return thisArg ? factory2.createSyntheticReferenceExpression(target, thisArg) : target;\n  }\n  function createNotNullCondition(left, right, invert) {\n    return factory2.createBinaryExpression(\n      factory2.createBinaryExpression(\n        left,\n        factory2.createToken(invert ? 37 /* EqualsEqualsEqualsToken */ : 38 /* ExclamationEqualsEqualsToken */),\n        factory2.createNull()\n      ),\n      factory2.createToken(invert ? 57 /* BarBarToken */ : 56 /* AmpersandAmpersandToken */),\n      factory2.createBinaryExpression(\n        right,\n        factory2.createToken(invert ? 37 /* EqualsEqualsEqualsToken */ : 38 /* ExclamationEqualsEqualsToken */),\n        factory2.createVoidZero()\n      )\n    );\n  }\n  function transformNullishCoalescingExpression(node) {\n    let left = visitNode(node.left, visitor, isExpression);\n    let right = left;\n    if (!isSimpleCopiableExpression(left)) {\n      right = factory2.createTempVariable(hoistVariableDeclaration);\n      left = factory2.createAssignment(right, left);\n    }\n    return setTextRange(\n      factory2.createConditionalExpression(\n        createNotNullCondition(left, right),\n        /*questionToken*/\n        void 0,\n        right,\n        /*colonToken*/\n        void 0,\n        visitNode(node.right, visitor, isExpression)\n      ),\n      node\n    );\n  }\n  function visitDeleteExpression(node) {\n    return isOptionalChain(skipParentheses(node.expression)) ? setOriginalNode(visitNonOptionalExpression(\n      node.expression,\n      /*captureThisArg*/\n      false,\n      /*isDelete*/\n      true\n    ), node) : factory2.updateDeleteExpression(node, visitNode(node.expression, visitor, isExpression));\n  }\n}\n\n// src/compiler/transformers/es2021.ts\nfunction transformES2021(context) {\n  const {\n    hoistVariableDeclaration,\n    factory: factory2\n  } = context;\n  return chainBundle(context, transformSourceFile);\n  function transformSourceFile(node) {\n    if (node.isDeclarationFile) {\n      return node;\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitor(node) {\n    if ((node.transformFlags & 16 /* ContainsES2021 */) === 0) {\n      return node;\n    }\n    if (isLogicalOrCoalescingAssignmentExpression(node)) {\n      return transformLogicalAssignment(node);\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function transformLogicalAssignment(binaryExpression) {\n    const operator = binaryExpression.operatorToken;\n    const nonAssignmentOperator = getNonAssignmentOperatorForCompoundAssignment(operator.kind);\n    let left = skipParentheses(visitNode(binaryExpression.left, visitor, isLeftHandSideExpression));\n    let assignmentTarget = left;\n    const right = skipParentheses(visitNode(binaryExpression.right, visitor, isExpression));\n    if (isAccessExpression(left)) {\n      const propertyAccessTargetSimpleCopiable = isSimpleCopiableExpression(left.expression);\n      const propertyAccessTarget = propertyAccessTargetSimpleCopiable ? left.expression : factory2.createTempVariable(hoistVariableDeclaration);\n      const propertyAccessTargetAssignment = propertyAccessTargetSimpleCopiable ? left.expression : factory2.createAssignment(\n        propertyAccessTarget,\n        left.expression\n      );\n      if (isPropertyAccessExpression(left)) {\n        assignmentTarget = factory2.createPropertyAccessExpression(\n          propertyAccessTarget,\n          left.name\n        );\n        left = factory2.createPropertyAccessExpression(\n          propertyAccessTargetAssignment,\n          left.name\n        );\n      } else {\n        const elementAccessArgumentSimpleCopiable = isSimpleCopiableExpression(left.argumentExpression);\n        const elementAccessArgument = elementAccessArgumentSimpleCopiable ? left.argumentExpression : factory2.createTempVariable(hoistVariableDeclaration);\n        assignmentTarget = factory2.createElementAccessExpression(\n          propertyAccessTarget,\n          elementAccessArgument\n        );\n        left = factory2.createElementAccessExpression(\n          propertyAccessTargetAssignment,\n          elementAccessArgumentSimpleCopiable ? left.argumentExpression : factory2.createAssignment(\n            elementAccessArgument,\n            left.argumentExpression\n          )\n        );\n      }\n    }\n    return factory2.createBinaryExpression(\n      left,\n      nonAssignmentOperator,\n      factory2.createParenthesizedExpression(\n        factory2.createAssignment(\n          assignmentTarget,\n          right\n        )\n      )\n    );\n  }\n}\n\n// src/compiler/transformers/esnext.ts\nfunction transformESNext(context) {\n  const {\n    factory: factory2,\n    getEmitHelperFactory: emitHelpers,\n    hoistVariableDeclaration,\n    startLexicalEnvironment,\n    endLexicalEnvironment\n  } = context;\n  let exportBindings;\n  let exportVars;\n  let defaultExportBinding;\n  let exportEqualsBinding;\n  return chainBundle(context, transformSourceFile);\n  function transformSourceFile(node) {\n    if (node.isDeclarationFile) {\n      return node;\n    }\n    const visited = visitNode(node, visitor, isSourceFile);\n    addEmitHelpers(visited, context.readEmitHelpers());\n    exportVars = void 0;\n    exportBindings = void 0;\n    defaultExportBinding = void 0;\n    return visited;\n  }\n  function visitor(node) {\n    if ((node.transformFlags & 4 /* ContainsESNext */) === 0) {\n      return node;\n    }\n    switch (node.kind) {\n      case 308 /* SourceFile */:\n        return visitSourceFile(node);\n      case 242 /* Block */:\n        return visitBlock(node);\n      case 249 /* ForStatement */:\n        return visitForStatement(node);\n      case 251 /* ForOfStatement */:\n        return visitForOfStatement(node);\n      case 256 /* SwitchStatement */:\n        return visitSwitchStatement(node);\n      default:\n        return visitEachChild(node, visitor, context);\n    }\n  }\n  function visitSourceFile(node) {\n    const usingKind = getUsingKindOfStatements(node.statements);\n    if (usingKind) {\n      startLexicalEnvironment();\n      exportBindings = new IdentifierNameMap();\n      exportVars = [];\n      const prologueCount = countPrologueStatements(node.statements);\n      const topLevelStatements = [];\n      addRange(topLevelStatements, visitArray(node.statements, visitor, isStatement, 0, prologueCount));\n      let pos = prologueCount;\n      while (pos < node.statements.length) {\n        const statement = node.statements[pos];\n        if (getUsingKind(statement) !== 0 /* None */) {\n          if (pos > prologueCount) {\n            addRange(topLevelStatements, visitNodes2(node.statements, visitor, isStatement, prologueCount, pos - prologueCount));\n          }\n          break;\n        }\n        pos++;\n      }\n      Debug.assert(pos < node.statements.length, \"Should have encountered at least one 'using' statement.\");\n      const envBinding = createEnvBinding();\n      const bodyStatements = transformUsingDeclarations(node.statements, pos, node.statements.length, envBinding, topLevelStatements);\n      if (exportBindings.size) {\n        append(\n          topLevelStatements,\n          factory2.createExportDeclaration(\n            /*modifiers*/\n            void 0,\n            /*isTypeOnly*/\n            false,\n            factory2.createNamedExports(arrayFrom(exportBindings.values()))\n          )\n        );\n      }\n      addRange(topLevelStatements, endLexicalEnvironment());\n      if (exportVars.length) {\n        topLevelStatements.push(factory2.createVariableStatement(\n          factory2.createModifiersFromModifierFlags(32 /* Export */),\n          factory2.createVariableDeclarationList(\n            exportVars,\n            1 /* Let */\n          )\n        ));\n      }\n      addRange(topLevelStatements, createDownlevelUsingStatements(bodyStatements, envBinding, usingKind === 2 /* Async */));\n      if (exportEqualsBinding) {\n        topLevelStatements.push(factory2.createExportAssignment(\n          /*modifiers*/\n          void 0,\n          /*isExportEquals*/\n          true,\n          exportEqualsBinding\n        ));\n      }\n      return factory2.updateSourceFile(node, topLevelStatements);\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitBlock(node) {\n    const usingKind = getUsingKindOfStatements(node.statements);\n    if (usingKind) {\n      const prologueCount = countPrologueStatements(node.statements);\n      const envBinding = createEnvBinding();\n      return factory2.updateBlock(\n        node,\n        [\n          ...visitArray(node.statements, visitor, isStatement, 0, prologueCount),\n          ...createDownlevelUsingStatements(\n            transformUsingDeclarations(\n              node.statements,\n              prologueCount,\n              node.statements.length,\n              envBinding,\n              /*topLevelStatements*/\n              void 0\n            ),\n            envBinding,\n            usingKind === 2 /* Async */\n          )\n        ]\n      );\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitForStatement(node) {\n    if (node.initializer && isUsingVariableDeclarationList(node.initializer)) {\n      return visitNode(\n        factory2.createBlock([\n          factory2.createVariableStatement(\n            /*modifiers*/\n            void 0,\n            node.initializer\n          ),\n          factory2.updateForStatement(\n            node,\n            /*initializer*/\n            void 0,\n            node.condition,\n            node.incrementor,\n            node.statement\n          )\n        ]),\n        visitor,\n        isStatement\n      );\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitForOfStatement(node) {\n    if (isUsingVariableDeclarationList(node.initializer)) {\n      const forInitializer = node.initializer;\n      const forDecl = firstOrUndefined(forInitializer.declarations) || factory2.createVariableDeclaration(factory2.createTempVariable(\n        /*recordTempVariable*/\n        void 0\n      ));\n      const isAwaitUsing = getUsingKindOfVariableDeclarationList(forInitializer) === 2 /* Async */;\n      const temp = factory2.getGeneratedNameForNode(forDecl.name);\n      const usingVar = factory2.updateVariableDeclaration(\n        forDecl,\n        forDecl.name,\n        /*exclamationToken*/\n        void 0,\n        /*type*/\n        void 0,\n        temp\n      );\n      const usingVarList = factory2.createVariableDeclarationList([usingVar], isAwaitUsing ? 6 /* AwaitUsing */ : 4 /* Using */);\n      const usingVarStatement = factory2.createVariableStatement(\n        /*modifiers*/\n        void 0,\n        usingVarList\n      );\n      return visitNode(\n        factory2.updateForOfStatement(\n          node,\n          node.awaitModifier,\n          factory2.createVariableDeclarationList([\n            factory2.createVariableDeclaration(temp)\n          ], 2 /* Const */),\n          node.expression,\n          isBlock(node.statement) ? factory2.updateBlock(node.statement, [\n            usingVarStatement,\n            ...node.statement.statements\n          ]) : factory2.createBlock(\n            [\n              usingVarStatement,\n              node.statement\n            ],\n            /*multiLine*/\n            true\n          )\n        ),\n        visitor,\n        isStatement\n      );\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitCaseOrDefaultClause(node, envBinding) {\n    if (getUsingKindOfStatements(node.statements) !== 0 /* None */) {\n      if (isCaseClause(node)) {\n        return factory2.updateCaseClause(\n          node,\n          visitNode(node.expression, visitor, isExpression),\n          transformUsingDeclarations(\n            node.statements,\n            /*start*/\n            0,\n            node.statements.length,\n            envBinding,\n            /*topLevelStatements*/\n            void 0\n          )\n        );\n      } else {\n        return factory2.updateDefaultClause(\n          node,\n          transformUsingDeclarations(\n            node.statements,\n            /*start*/\n            0,\n            node.statements.length,\n            envBinding,\n            /*topLevelStatements*/\n            void 0\n          )\n        );\n      }\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitSwitchStatement(node) {\n    const usingKind = getUsingKindOfCaseOrDefaultClauses(node.caseBlock.clauses);\n    if (usingKind) {\n      const envBinding = createEnvBinding();\n      return createDownlevelUsingStatements(\n        [\n          factory2.updateSwitchStatement(\n            node,\n            visitNode(node.expression, visitor, isExpression),\n            factory2.updateCaseBlock(\n              node.caseBlock,\n              node.caseBlock.clauses.map((clause) => visitCaseOrDefaultClause(clause, envBinding))\n            )\n          )\n        ],\n        envBinding,\n        usingKind === 2 /* Async */\n      );\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function transformUsingDeclarations(statementsIn, start, end, envBinding, topLevelStatements) {\n    const statements = [];\n    for (let i = start; i < end; i++) {\n      const statement = statementsIn[i];\n      const usingKind = getUsingKind(statement);\n      if (usingKind) {\n        Debug.assertNode(statement, isVariableStatement);\n        const declarations = [];\n        for (let declaration of statement.declarationList.declarations) {\n          if (!isIdentifier(declaration.name)) {\n            declarations.length = 0;\n            break;\n          }\n          if (isNamedEvaluation(declaration)) {\n            declaration = transformNamedEvaluation(context, declaration);\n          }\n          const initializer = visitNode(declaration.initializer, visitor, isExpression) ?? factory2.createVoidZero();\n          declarations.push(factory2.updateVariableDeclaration(\n            declaration,\n            declaration.name,\n            /*exclamationToken*/\n            void 0,\n            /*type*/\n            void 0,\n            emitHelpers().createAddDisposableResourceHelper(\n              envBinding,\n              initializer,\n              usingKind === 2 /* Async */\n            )\n          ));\n        }\n        if (declarations.length) {\n          const varList = factory2.createVariableDeclarationList(declarations, 2 /* Const */);\n          setOriginalNode(varList, statement.declarationList);\n          setTextRange(varList, statement.declarationList);\n          hoistOrAppendNode(factory2.updateVariableStatement(\n            statement,\n            /*modifiers*/\n            void 0,\n            varList\n          ));\n          continue;\n        }\n      }\n      const result = visitor(statement);\n      if (isArray(result)) {\n        result.forEach(hoistOrAppendNode);\n      } else if (result) {\n        hoistOrAppendNode(result);\n      }\n    }\n    return statements;\n    function hoistOrAppendNode(node) {\n      Debug.assertNode(node, isStatement);\n      append(statements, hoist(node));\n    }\n    function hoist(node) {\n      if (!topLevelStatements) return node;\n      switch (node.kind) {\n        case 273 /* ImportDeclaration */:\n        case 272 /* ImportEqualsDeclaration */:\n        case 279 /* ExportDeclaration */:\n        case 263 /* FunctionDeclaration */:\n          return hoistImportOrExportOrHoistedDeclaration(node, topLevelStatements);\n        case 278 /* ExportAssignment */:\n          return hoistExportAssignment(node);\n        case 264 /* ClassDeclaration */:\n          return hoistClassDeclaration(node);\n        case 244 /* VariableStatement */:\n          return hoistVariableStatement(node);\n      }\n      return node;\n    }\n  }\n  function hoistImportOrExportOrHoistedDeclaration(node, topLevelStatements) {\n    topLevelStatements.push(node);\n    return void 0;\n  }\n  function hoistExportAssignment(node) {\n    return node.isExportEquals ? hoistExportEquals(node) : hoistExportDefault(node);\n  }\n  function hoistExportDefault(node) {\n    if (defaultExportBinding) {\n      return node;\n    }\n    defaultExportBinding = factory2.createUniqueName(\"_default\", 8 /* ReservedInNestedScopes */ | 32 /* FileLevel */ | 16 /* Optimistic */);\n    hoistBindingIdentifier(\n      defaultExportBinding,\n      /*isExport*/\n      true,\n      \"default\",\n      node\n    );\n    let expression = node.expression;\n    let innerExpression = skipOuterExpressions(expression);\n    if (isNamedEvaluation(innerExpression)) {\n      innerExpression = transformNamedEvaluation(\n        context,\n        innerExpression,\n        /*ignoreEmptyStringLiteral*/\n        false,\n        \"default\"\n      );\n      expression = factory2.restoreOuterExpressions(expression, innerExpression);\n    }\n    const assignment = factory2.createAssignment(defaultExportBinding, expression);\n    return factory2.createExpressionStatement(assignment);\n  }\n  function hoistExportEquals(node) {\n    if (exportEqualsBinding) {\n      return node;\n    }\n    exportEqualsBinding = factory2.createUniqueName(\"_default\", 8 /* ReservedInNestedScopes */ | 32 /* FileLevel */ | 16 /* Optimistic */);\n    hoistVariableDeclaration(exportEqualsBinding);\n    const assignment = factory2.createAssignment(exportEqualsBinding, node.expression);\n    return factory2.createExpressionStatement(assignment);\n  }\n  function hoistClassDeclaration(node) {\n    if (!node.name && defaultExportBinding) {\n      return node;\n    }\n    const isExported2 = hasSyntacticModifier(node, 32 /* Export */);\n    const isDefault = hasSyntacticModifier(node, 2048 /* Default */);\n    let expression = factory2.converters.convertToClassExpression(node);\n    if (node.name) {\n      hoistBindingIdentifier(\n        factory2.getLocalName(node),\n        isExported2 && !isDefault,\n        /*exportAlias*/\n        void 0,\n        node\n      );\n      expression = factory2.createAssignment(factory2.getDeclarationName(node), expression);\n      if (isNamedEvaluation(expression)) {\n        expression = transformNamedEvaluation(\n          context,\n          expression,\n          /*ignoreEmptyStringLiteral*/\n          false\n        );\n      }\n      setOriginalNode(expression, node);\n      setSourceMapRange(expression, node);\n      setCommentRange(expression, node);\n    }\n    if (isDefault && !defaultExportBinding) {\n      defaultExportBinding = factory2.createUniqueName(\"_default\", 8 /* ReservedInNestedScopes */ | 32 /* FileLevel */ | 16 /* Optimistic */);\n      hoistBindingIdentifier(\n        defaultExportBinding,\n        /*isExport*/\n        true,\n        \"default\",\n        node\n      );\n      expression = factory2.createAssignment(defaultExportBinding, expression);\n      if (isNamedEvaluation(expression)) {\n        expression = transformNamedEvaluation(\n          context,\n          expression,\n          /*ignoreEmptyStringLiteral*/\n          false,\n          \"default\"\n        );\n      }\n      setOriginalNode(expression, node);\n    }\n    return factory2.createExpressionStatement(expression);\n  }\n  function hoistVariableStatement(node) {\n    let expressions;\n    const isExported2 = hasSyntacticModifier(node, 32 /* Export */);\n    for (const variable of node.declarationList.declarations) {\n      hoistBindingElement(variable, isExported2, variable);\n      if (variable.initializer) {\n        expressions = append(expressions, hoistInitializedVariable(variable));\n      }\n    }\n    if (expressions) {\n      const statement = factory2.createExpressionStatement(factory2.inlineExpressions(expressions));\n      setOriginalNode(statement, node);\n      setCommentRange(statement, node);\n      setSourceMapRange(statement, node);\n      return statement;\n    }\n    return void 0;\n  }\n  function hoistInitializedVariable(node) {\n    Debug.assertIsDefined(node.initializer);\n    let target;\n    if (isIdentifier(node.name)) {\n      target = factory2.cloneNode(node.name);\n      setEmitFlags(target, getEmitFlags(target) & ~(32768 /* LocalName */ | 16384 /* ExportName */ | 65536 /* InternalName */));\n    } else {\n      target = factory2.converters.convertToAssignmentPattern(node.name);\n    }\n    const assignment = factory2.createAssignment(target, node.initializer);\n    setOriginalNode(assignment, node);\n    setCommentRange(assignment, node);\n    setSourceMapRange(assignment, node);\n    return assignment;\n  }\n  function hoistBindingElement(node, isExportedDeclaration, original) {\n    if (isBindingPattern(node.name)) {\n      for (const element of node.name.elements) {\n        if (!isOmittedExpression(element)) {\n          hoistBindingElement(element, isExportedDeclaration, original);\n        }\n      }\n    } else {\n      hoistBindingIdentifier(\n        node.name,\n        isExportedDeclaration,\n        /*exportAlias*/\n        void 0,\n        original\n      );\n    }\n  }\n  function hoistBindingIdentifier(node, isExport, exportAlias, original) {\n    const name = isGeneratedIdentifier(node) ? node : factory2.cloneNode(node);\n    if (isExport) {\n      if (exportAlias === void 0 && !isLocalName(name)) {\n        const varDecl = factory2.createVariableDeclaration(name);\n        if (original) {\n          setOriginalNode(varDecl, original);\n        }\n        exportVars.push(varDecl);\n        return;\n      }\n      const localName = exportAlias !== void 0 ? name : void 0;\n      const exportName = exportAlias !== void 0 ? exportAlias : name;\n      const specifier = factory2.createExportSpecifier(\n        /*isTypeOnly*/\n        false,\n        localName,\n        exportName\n      );\n      if (original) {\n        setOriginalNode(specifier, original);\n      }\n      exportBindings.set(name, specifier);\n    }\n    hoistVariableDeclaration(name);\n  }\n  function createEnvBinding() {\n    return factory2.createUniqueName(\"env\");\n  }\n  function createDownlevelUsingStatements(bodyStatements, envBinding, async) {\n    const statements = [];\n    const envObject = factory2.createObjectLiteralExpression([\n      factory2.createPropertyAssignment(\"stack\", factory2.createArrayLiteralExpression()),\n      factory2.createPropertyAssignment(\"error\", factory2.createVoidZero()),\n      factory2.createPropertyAssignment(\"hasError\", factory2.createFalse())\n    ]);\n    const envVar = factory2.createVariableDeclaration(\n      envBinding,\n      /*exclamationToken*/\n      void 0,\n      /*type*/\n      void 0,\n      envObject\n    );\n    const envVarList = factory2.createVariableDeclarationList([envVar], 2 /* Const */);\n    const envVarStatement = factory2.createVariableStatement(\n      /*modifiers*/\n      void 0,\n      envVarList\n    );\n    statements.push(envVarStatement);\n    const tryBlock = factory2.createBlock(\n      bodyStatements,\n      /*multiLine*/\n      true\n    );\n    const bodyCatchBinding = factory2.createUniqueName(\"e\");\n    const catchClause = factory2.createCatchClause(\n      bodyCatchBinding,\n      factory2.createBlock(\n        [\n          factory2.createExpressionStatement(\n            factory2.createAssignment(\n              factory2.createPropertyAccessExpression(envBinding, \"error\"),\n              bodyCatchBinding\n            )\n          ),\n          factory2.createExpressionStatement(\n            factory2.createAssignment(\n              factory2.createPropertyAccessExpression(envBinding, \"hasError\"),\n              factory2.createTrue()\n            )\n          )\n        ],\n        /*multiLine*/\n        true\n      )\n    );\n    let finallyBlock;\n    if (async) {\n      const result = factory2.createUniqueName(\"result\");\n      finallyBlock = factory2.createBlock(\n        [\n          factory2.createVariableStatement(\n            /*modifiers*/\n            void 0,\n            factory2.createVariableDeclarationList([\n              factory2.createVariableDeclaration(\n                result,\n                /*exclamationToken*/\n                void 0,\n                /*type*/\n                void 0,\n                emitHelpers().createDisposeResourcesHelper(envBinding)\n              )\n            ], 2 /* Const */)\n          ),\n          factory2.createIfStatement(result, factory2.createExpressionStatement(factory2.createAwaitExpression(result)))\n        ],\n        /*multiLine*/\n        true\n      );\n    } else {\n      finallyBlock = factory2.createBlock(\n        [\n          factory2.createExpressionStatement(\n            emitHelpers().createDisposeResourcesHelper(envBinding)\n          )\n        ],\n        /*multiLine*/\n        true\n      );\n    }\n    const tryStatement = factory2.createTryStatement(tryBlock, catchClause, finallyBlock);\n    statements.push(tryStatement);\n    return statements;\n  }\n}\nfunction countPrologueStatements(statements) {\n  for (let i = 0; i < statements.length; i++) {\n    if (!isPrologueDirective(statements[i]) && !isCustomPrologue(statements[i])) {\n      return i;\n    }\n  }\n  return 0;\n}\nfunction isUsingVariableDeclarationList(node) {\n  return isVariableDeclarationList(node) && getUsingKindOfVariableDeclarationList(node) !== 0 /* None */;\n}\nfunction getUsingKindOfVariableDeclarationList(node) {\n  return (node.flags & 7 /* BlockScoped */) === 6 /* AwaitUsing */ ? 2 /* Async */ : (node.flags & 7 /* BlockScoped */) === 4 /* Using */ ? 1 /* Sync */ : 0 /* None */;\n}\nfunction getUsingKindOfVariableStatement(node) {\n  return getUsingKindOfVariableDeclarationList(node.declarationList);\n}\nfunction getUsingKind(statement) {\n  return isVariableStatement(statement) ? getUsingKindOfVariableStatement(statement) : 0 /* None */;\n}\nfunction getUsingKindOfStatements(statements) {\n  let result = 0 /* None */;\n  for (const statement of statements) {\n    const usingKind = getUsingKind(statement);\n    if (usingKind === 2 /* Async */) return 2 /* Async */;\n    if (usingKind > result) result = usingKind;\n  }\n  return result;\n}\nfunction getUsingKindOfCaseOrDefaultClauses(clauses) {\n  let result = 0 /* None */;\n  for (const clause of clauses) {\n    const usingKind = getUsingKindOfStatements(clause.statements);\n    if (usingKind === 2 /* Async */) return 2 /* Async */;\n    if (usingKind > result) result = usingKind;\n  }\n  return result;\n}\n\n// src/compiler/transformers/jsx.ts\nfunction transformJsx(context) {\n  const {\n    factory: factory2,\n    getEmitHelperFactory: emitHelpers\n  } = context;\n  const compilerOptions = context.getCompilerOptions();\n  let currentSourceFile;\n  let currentFileState;\n  return chainBundle(context, transformSourceFile);\n  function getCurrentFileNameExpression() {\n    if (currentFileState.filenameDeclaration) {\n      return currentFileState.filenameDeclaration.name;\n    }\n    const declaration = factory2.createVariableDeclaration(\n      factory2.createUniqueName(\"_jsxFileName\", 16 /* Optimistic */ | 32 /* FileLevel */),\n      /*exclamationToken*/\n      void 0,\n      /*type*/\n      void 0,\n      factory2.createStringLiteral(currentSourceFile.fileName)\n    );\n    currentFileState.filenameDeclaration = declaration;\n    return currentFileState.filenameDeclaration.name;\n  }\n  function getJsxFactoryCalleePrimitive(isStaticChildren) {\n    return compilerOptions.jsx === 5 /* ReactJSXDev */ ? \"jsxDEV\" : isStaticChildren ? \"jsxs\" : \"jsx\";\n  }\n  function getJsxFactoryCallee(isStaticChildren) {\n    const type = getJsxFactoryCalleePrimitive(isStaticChildren);\n    return getImplicitImportForName(type);\n  }\n  function getImplicitJsxFragmentReference() {\n    return getImplicitImportForName(\"Fragment\");\n  }\n  function getImplicitImportForName(name) {\n    var _a, _b;\n    const importSource = name === \"createElement\" ? currentFileState.importSpecifier : getJSXRuntimeImport(currentFileState.importSpecifier, compilerOptions);\n    const existing = (_b = (_a = currentFileState.utilizedImplicitRuntimeImports) == null ? void 0 : _a.get(importSource)) == null ? void 0 : _b.get(name);\n    if (existing) {\n      return existing.name;\n    }\n    if (!currentFileState.utilizedImplicitRuntimeImports) {\n      currentFileState.utilizedImplicitRuntimeImports = /* @__PURE__ */ new Map();\n    }\n    let specifierSourceImports = currentFileState.utilizedImplicitRuntimeImports.get(importSource);\n    if (!specifierSourceImports) {\n      specifierSourceImports = /* @__PURE__ */ new Map();\n      currentFileState.utilizedImplicitRuntimeImports.set(importSource, specifierSourceImports);\n    }\n    const generatedName = factory2.createUniqueName(`_${name}`, 16 /* Optimistic */ | 32 /* FileLevel */ | 64 /* AllowNameSubstitution */);\n    const specifier = factory2.createImportSpecifier(\n      /*isTypeOnly*/\n      false,\n      factory2.createIdentifier(name),\n      generatedName\n    );\n    setIdentifierGeneratedImportReference(generatedName, specifier);\n    specifierSourceImports.set(name, specifier);\n    return generatedName;\n  }\n  function transformSourceFile(node) {\n    if (node.isDeclarationFile) {\n      return node;\n    }\n    currentSourceFile = node;\n    currentFileState = {};\n    currentFileState.importSpecifier = getJSXImplicitImportBase(compilerOptions, node);\n    let visited = visitEachChild(node, visitor, context);\n    addEmitHelpers(visited, context.readEmitHelpers());\n    let statements = visited.statements;\n    if (currentFileState.filenameDeclaration) {\n      statements = insertStatementAfterCustomPrologue(statements.slice(), factory2.createVariableStatement(\n        /*modifiers*/\n        void 0,\n        factory2.createVariableDeclarationList([currentFileState.filenameDeclaration], 2 /* Const */)\n      ));\n    }\n    if (currentFileState.utilizedImplicitRuntimeImports) {\n      for (const [importSource, importSpecifiersMap] of arrayFrom(currentFileState.utilizedImplicitRuntimeImports.entries())) {\n        if (isExternalModule(node)) {\n          const importStatement = factory2.createImportDeclaration(\n            /*modifiers*/\n            void 0,\n            factory2.createImportClause(\n              /*phaseModifier*/\n              void 0,\n              /*name*/\n              void 0,\n              factory2.createNamedImports(arrayFrom(importSpecifiersMap.values()))\n            ),\n            factory2.createStringLiteral(importSource),\n            /*attributes*/\n            void 0\n          );\n          setParentRecursive(\n            importStatement,\n            /*incremental*/\n            false\n          );\n          statements = insertStatementAfterCustomPrologue(statements.slice(), importStatement);\n        } else if (isExternalOrCommonJsModule(node)) {\n          const requireStatement = factory2.createVariableStatement(\n            /*modifiers*/\n            void 0,\n            factory2.createVariableDeclarationList([\n              factory2.createVariableDeclaration(\n                factory2.createObjectBindingPattern(arrayFrom(importSpecifiersMap.values(), (s) => factory2.createBindingElement(\n                  /*dotDotDotToken*/\n                  void 0,\n                  s.propertyName,\n                  s.name\n                ))),\n                /*exclamationToken*/\n                void 0,\n                /*type*/\n                void 0,\n                factory2.createCallExpression(\n                  factory2.createIdentifier(\"require\"),\n                  /*typeArguments*/\n                  void 0,\n                  [factory2.createStringLiteral(importSource)]\n                )\n              )\n            ], 2 /* Const */)\n          );\n          setParentRecursive(\n            requireStatement,\n            /*incremental*/\n            false\n          );\n          statements = insertStatementAfterCustomPrologue(statements.slice(), requireStatement);\n        } else {\n        }\n      }\n    }\n    if (statements !== visited.statements) {\n      visited = factory2.updateSourceFile(visited, statements);\n    }\n    currentFileState = void 0;\n    return visited;\n  }\n  function visitor(node) {\n    if (node.transformFlags & 2 /* ContainsJsx */) {\n      return visitorWorker(node);\n    } else {\n      return node;\n    }\n  }\n  function visitorWorker(node) {\n    switch (node.kind) {\n      case 285 /* JsxElement */:\n        return visitJsxElement(\n          node,\n          /*isChild*/\n          false\n        );\n      case 286 /* JsxSelfClosingElement */:\n        return visitJsxSelfClosingElement(\n          node,\n          /*isChild*/\n          false\n        );\n      case 289 /* JsxFragment */:\n        return visitJsxFragment(\n          node,\n          /*isChild*/\n          false\n        );\n      case 295 /* JsxExpression */:\n        return visitJsxExpression(node);\n      default:\n        return visitEachChild(node, visitor, context);\n    }\n  }\n  function transformJsxChildToExpression(node) {\n    switch (node.kind) {\n      case 12 /* JsxText */:\n        return visitJsxText(node);\n      case 295 /* JsxExpression */:\n        return visitJsxExpression(node);\n      case 285 /* JsxElement */:\n        return visitJsxElement(\n          node,\n          /*isChild*/\n          true\n        );\n      case 286 /* JsxSelfClosingElement */:\n        return visitJsxSelfClosingElement(\n          node,\n          /*isChild*/\n          true\n        );\n      case 289 /* JsxFragment */:\n        return visitJsxFragment(\n          node,\n          /*isChild*/\n          true\n        );\n      default:\n        return Debug.failBadSyntaxKind(node);\n    }\n  }\n  function hasProto(obj) {\n    return obj.properties.some(\n      (p) => isPropertyAssignment(p) && (isIdentifier(p.name) && idText(p.name) === \"__proto__\" || isStringLiteral(p.name) && p.name.text === \"__proto__\")\n    );\n  }\n  function hasKeyAfterPropsSpread(node) {\n    let spread = false;\n    for (const elem of node.attributes.properties) {\n      if (isJsxSpreadAttribute(elem) && (!isObjectLiteralExpression(elem.expression) || elem.expression.properties.some(isSpreadAssignment))) {\n        spread = true;\n      } else if (spread && isJsxAttribute(elem) && isIdentifier(elem.name) && elem.name.escapedText === \"key\") {\n        return true;\n      }\n    }\n    return false;\n  }\n  function shouldUseCreateElement(node) {\n    return currentFileState.importSpecifier === void 0 || hasKeyAfterPropsSpread(node);\n  }\n  function visitJsxElement(node, isChild) {\n    const tagTransform = shouldUseCreateElement(node.openingElement) ? visitJsxOpeningLikeElementCreateElement : visitJsxOpeningLikeElementJSX;\n    return tagTransform(\n      node.openingElement,\n      node.children,\n      isChild,\n      /*location*/\n      node\n    );\n  }\n  function visitJsxSelfClosingElement(node, isChild) {\n    const tagTransform = shouldUseCreateElement(node) ? visitJsxOpeningLikeElementCreateElement : visitJsxOpeningLikeElementJSX;\n    return tagTransform(\n      node,\n      /*children*/\n      void 0,\n      isChild,\n      /*location*/\n      node\n    );\n  }\n  function visitJsxFragment(node, isChild) {\n    const tagTransform = currentFileState.importSpecifier === void 0 ? visitJsxOpeningFragmentCreateElement : visitJsxOpeningFragmentJSX;\n    return tagTransform(\n      node.openingFragment,\n      node.children,\n      isChild,\n      /*location*/\n      node\n    );\n  }\n  function convertJsxChildrenToChildrenPropObject(children) {\n    const prop = convertJsxChildrenToChildrenPropAssignment(children);\n    return prop && factory2.createObjectLiteralExpression([prop]);\n  }\n  function convertJsxChildrenToChildrenPropAssignment(children) {\n    const nonWhitespaceChildren = getSemanticJsxChildren(children);\n    if (length(nonWhitespaceChildren) === 1 && !nonWhitespaceChildren[0].dotDotDotToken) {\n      const result2 = transformJsxChildToExpression(nonWhitespaceChildren[0]);\n      return result2 && factory2.createPropertyAssignment(\"children\", result2);\n    }\n    const result = mapDefined(children, transformJsxChildToExpression);\n    return length(result) ? factory2.createPropertyAssignment(\"children\", factory2.createArrayLiteralExpression(result)) : void 0;\n  }\n  function visitJsxOpeningLikeElementJSX(node, children, isChild, location) {\n    const tagName = getTagName(node);\n    const childrenProp = children && children.length ? convertJsxChildrenToChildrenPropAssignment(children) : void 0;\n    const keyAttr = find(node.attributes.properties, (p) => !!p.name && isIdentifier(p.name) && p.name.escapedText === \"key\");\n    const attrs = keyAttr ? filter(node.attributes.properties, (p) => p !== keyAttr) : node.attributes.properties;\n    const objectProperties = length(attrs) ? transformJsxAttributesToObjectProps(attrs, childrenProp) : factory2.createObjectLiteralExpression(childrenProp ? [childrenProp] : emptyArray);\n    return visitJsxOpeningLikeElementOrFragmentJSX(\n      tagName,\n      objectProperties,\n      keyAttr,\n      children || emptyArray,\n      isChild,\n      location\n    );\n  }\n  function visitJsxOpeningLikeElementOrFragmentJSX(tagName, objectProperties, keyAttr, children, isChild, location) {\n    var _a;\n    const nonWhitespaceChildren = getSemanticJsxChildren(children);\n    const isStaticChildren = length(nonWhitespaceChildren) > 1 || !!((_a = nonWhitespaceChildren[0]) == null ? void 0 : _a.dotDotDotToken);\n    const args = [tagName, objectProperties];\n    if (keyAttr) {\n      args.push(transformJsxAttributeInitializer(keyAttr.initializer));\n    }\n    if (compilerOptions.jsx === 5 /* ReactJSXDev */) {\n      const originalFile = getOriginalNode(currentSourceFile);\n      if (originalFile && isSourceFile(originalFile)) {\n        if (keyAttr === void 0) {\n          args.push(factory2.createVoidZero());\n        }\n        args.push(isStaticChildren ? factory2.createTrue() : factory2.createFalse());\n        const lineCol = getLineAndCharacterOfPosition(originalFile, location.pos);\n        args.push(factory2.createObjectLiteralExpression([\n          factory2.createPropertyAssignment(\"fileName\", getCurrentFileNameExpression()),\n          factory2.createPropertyAssignment(\"lineNumber\", factory2.createNumericLiteral(lineCol.line + 1)),\n          factory2.createPropertyAssignment(\"columnNumber\", factory2.createNumericLiteral(lineCol.character + 1))\n        ]));\n        args.push(factory2.createThis());\n      }\n    }\n    const element = setTextRange(\n      factory2.createCallExpression(\n        getJsxFactoryCallee(isStaticChildren),\n        /*typeArguments*/\n        void 0,\n        args\n      ),\n      location\n    );\n    if (isChild) {\n      startOnNewLine(element);\n    }\n    return element;\n  }\n  function visitJsxOpeningLikeElementCreateElement(node, children, isChild, location) {\n    const tagName = getTagName(node);\n    const attrs = node.attributes.properties;\n    const objectProperties = length(attrs) ? transformJsxAttributesToObjectProps(attrs) : factory2.createNull();\n    const callee = currentFileState.importSpecifier === void 0 ? createJsxFactoryExpression(\n      factory2,\n      context.getEmitResolver().getJsxFactoryEntity(currentSourceFile),\n      compilerOptions.reactNamespace,\n      // TODO: GH#18217\n      node\n    ) : getImplicitImportForName(\"createElement\");\n    const element = createExpressionForJsxElement(\n      factory2,\n      callee,\n      tagName,\n      objectProperties,\n      mapDefined(children, transformJsxChildToExpression),\n      location\n    );\n    if (isChild) {\n      startOnNewLine(element);\n    }\n    return element;\n  }\n  function visitJsxOpeningFragmentJSX(_node, children, isChild, location) {\n    let childrenProps;\n    if (children && children.length) {\n      const result = convertJsxChildrenToChildrenPropObject(children);\n      if (result) {\n        childrenProps = result;\n      }\n    }\n    return visitJsxOpeningLikeElementOrFragmentJSX(\n      getImplicitJsxFragmentReference(),\n      childrenProps || factory2.createObjectLiteralExpression([]),\n      /*keyAttr*/\n      void 0,\n      children,\n      isChild,\n      location\n    );\n  }\n  function visitJsxOpeningFragmentCreateElement(node, children, isChild, location) {\n    const element = createExpressionForJsxFragment(\n      factory2,\n      context.getEmitResolver().getJsxFactoryEntity(currentSourceFile),\n      context.getEmitResolver().getJsxFragmentFactoryEntity(currentSourceFile),\n      compilerOptions.reactNamespace,\n      // TODO: GH#18217\n      mapDefined(children, transformJsxChildToExpression),\n      node,\n      location\n    );\n    if (isChild) {\n      startOnNewLine(element);\n    }\n    return element;\n  }\n  function transformJsxSpreadAttributeToProps(node) {\n    if (isObjectLiteralExpression(node.expression) && !hasProto(node.expression)) {\n      return sameMap(node.expression.properties, (p) => Debug.checkDefined(visitNode(p, visitor, isObjectLiteralElementLike)));\n    }\n    return factory2.createSpreadAssignment(Debug.checkDefined(visitNode(node.expression, visitor, isExpression)));\n  }\n  function transformJsxAttributesToObjectProps(attrs, children) {\n    const target = getEmitScriptTarget(compilerOptions);\n    return target && target >= 5 /* ES2018 */ ? factory2.createObjectLiteralExpression(transformJsxAttributesToProps(attrs, children)) : transformJsxAttributesToExpression(attrs, children);\n  }\n  function transformJsxAttributesToProps(attrs, children) {\n    const props = flatten(spanMap(attrs, isJsxSpreadAttribute, (attrs2, isSpread) => flatten(map(attrs2, (attr) => isSpread ? transformJsxSpreadAttributeToProps(attr) : transformJsxAttributeToObjectLiteralElement(attr)))));\n    if (children) {\n      props.push(children);\n    }\n    return props;\n  }\n  function transformJsxAttributesToExpression(attrs, children) {\n    const expressions = [];\n    let properties = [];\n    for (const attr of attrs) {\n      if (isJsxSpreadAttribute(attr)) {\n        if (isObjectLiteralExpression(attr.expression) && !hasProto(attr.expression)) {\n          for (const prop of attr.expression.properties) {\n            if (isSpreadAssignment(prop)) {\n              finishObjectLiteralIfNeeded();\n              expressions.push(Debug.checkDefined(visitNode(prop.expression, visitor, isExpression)));\n              continue;\n            }\n            properties.push(Debug.checkDefined(visitNode(prop, visitor)));\n          }\n          continue;\n        }\n        finishObjectLiteralIfNeeded();\n        expressions.push(Debug.checkDefined(visitNode(attr.expression, visitor, isExpression)));\n        continue;\n      }\n      properties.push(transformJsxAttributeToObjectLiteralElement(attr));\n    }\n    if (children) {\n      properties.push(children);\n    }\n    finishObjectLiteralIfNeeded();\n    if (expressions.length && !isObjectLiteralExpression(expressions[0])) {\n      expressions.unshift(factory2.createObjectLiteralExpression());\n    }\n    return singleOrUndefined(expressions) || emitHelpers().createAssignHelper(expressions);\n    function finishObjectLiteralIfNeeded() {\n      if (properties.length) {\n        expressions.push(factory2.createObjectLiteralExpression(properties));\n        properties = [];\n      }\n    }\n  }\n  function transformJsxAttributeToObjectLiteralElement(node) {\n    const name = getAttributeName(node);\n    const expression = transformJsxAttributeInitializer(node.initializer);\n    return factory2.createPropertyAssignment(name, expression);\n  }\n  function transformJsxAttributeInitializer(node) {\n    if (node === void 0) {\n      return factory2.createTrue();\n    }\n    if (node.kind === 11 /* StringLiteral */) {\n      const singleQuote = node.singleQuote !== void 0 ? node.singleQuote : !isStringDoubleQuoted(node, currentSourceFile);\n      const literal = factory2.createStringLiteral(tryDecodeEntities(node.text) || node.text, singleQuote);\n      return setTextRange(literal, node);\n    }\n    if (node.kind === 295 /* JsxExpression */) {\n      if (node.expression === void 0) {\n        return factory2.createTrue();\n      }\n      return Debug.checkDefined(visitNode(node.expression, visitor, isExpression));\n    }\n    if (isJsxElement(node)) {\n      return visitJsxElement(\n        node,\n        /*isChild*/\n        false\n      );\n    }\n    if (isJsxSelfClosingElement(node)) {\n      return visitJsxSelfClosingElement(\n        node,\n        /*isChild*/\n        false\n      );\n    }\n    if (isJsxFragment(node)) {\n      return visitJsxFragment(\n        node,\n        /*isChild*/\n        false\n      );\n    }\n    return Debug.failBadSyntaxKind(node);\n  }\n  function visitJsxText(node) {\n    const fixed = fixupWhitespaceAndDecodeEntities(node.text);\n    return fixed === void 0 ? void 0 : factory2.createStringLiteral(fixed);\n  }\n  function fixupWhitespaceAndDecodeEntities(text) {\n    let acc;\n    let firstNonWhitespace = 0;\n    let lastNonWhitespace = -1;\n    for (let i = 0; i < text.length; i++) {\n      const c = text.charCodeAt(i);\n      if (isLineBreak(c)) {\n        if (firstNonWhitespace !== -1 && lastNonWhitespace !== -1) {\n          acc = addLineOfJsxText(acc, text.substr(firstNonWhitespace, lastNonWhitespace - firstNonWhitespace + 1));\n        }\n        firstNonWhitespace = -1;\n      } else if (!isWhiteSpaceSingleLine(c)) {\n        lastNonWhitespace = i;\n        if (firstNonWhitespace === -1) {\n          firstNonWhitespace = i;\n        }\n      }\n    }\n    return firstNonWhitespace !== -1 ? addLineOfJsxText(acc, text.substr(firstNonWhitespace)) : acc;\n  }\n  function addLineOfJsxText(acc, trimmedLine) {\n    const decoded = decodeEntities(trimmedLine);\n    return acc === void 0 ? decoded : acc + \" \" + decoded;\n  }\n  function decodeEntities(text) {\n    return text.replace(/&((#((\\d+)|x([\\da-fA-F]+)))|(\\w+));/g, (match, _all, _number, _digits, decimal, hex, word) => {\n      if (decimal) {\n        return utf16EncodeAsString(parseInt(decimal, 10));\n      } else if (hex) {\n        return utf16EncodeAsString(parseInt(hex, 16));\n      } else {\n        const ch = entities.get(word);\n        return ch ? utf16EncodeAsString(ch) : match;\n      }\n    });\n  }\n  function tryDecodeEntities(text) {\n    const decoded = decodeEntities(text);\n    return decoded === text ? void 0 : decoded;\n  }\n  function getTagName(node) {\n    if (node.kind === 285 /* JsxElement */) {\n      return getTagName(node.openingElement);\n    } else {\n      const tagName = node.tagName;\n      if (isIdentifier(tagName) && isIntrinsicJsxName(tagName.escapedText)) {\n        return factory2.createStringLiteral(idText(tagName));\n      } else if (isJsxNamespacedName(tagName)) {\n        return factory2.createStringLiteral(idText(tagName.namespace) + \":\" + idText(tagName.name));\n      } else {\n        return createExpressionFromEntityName(factory2, tagName);\n      }\n    }\n  }\n  function getAttributeName(node) {\n    const name = node.name;\n    if (isIdentifier(name)) {\n      const text = idText(name);\n      return /^[A-Z_]\\w*$/i.test(text) ? name : factory2.createStringLiteral(text);\n    }\n    return factory2.createStringLiteral(idText(name.namespace) + \":\" + idText(name.name));\n  }\n  function visitJsxExpression(node) {\n    const expression = visitNode(node.expression, visitor, isExpression);\n    return node.dotDotDotToken ? factory2.createSpreadElement(expression) : expression;\n  }\n}\nvar entities = new Map(Object.entries({\n  quot: 34,\n  amp: 38,\n  apos: 39,\n  lt: 60,\n  gt: 62,\n  nbsp: 160,\n  iexcl: 161,\n  cent: 162,\n  pound: 163,\n  curren: 164,\n  yen: 165,\n  brvbar: 166,\n  sect: 167,\n  uml: 168,\n  copy: 169,\n  ordf: 170,\n  laquo: 171,\n  not: 172,\n  shy: 173,\n  reg: 174,\n  macr: 175,\n  deg: 176,\n  plusmn: 177,\n  sup2: 178,\n  sup3: 179,\n  acute: 180,\n  micro: 181,\n  para: 182,\n  middot: 183,\n  cedil: 184,\n  sup1: 185,\n  ordm: 186,\n  raquo: 187,\n  frac14: 188,\n  frac12: 189,\n  frac34: 190,\n  iquest: 191,\n  Agrave: 192,\n  Aacute: 193,\n  Acirc: 194,\n  Atilde: 195,\n  Auml: 196,\n  Aring: 197,\n  AElig: 198,\n  Ccedil: 199,\n  Egrave: 200,\n  Eacute: 201,\n  Ecirc: 202,\n  Euml: 203,\n  Igrave: 204,\n  Iacute: 205,\n  Icirc: 206,\n  Iuml: 207,\n  ETH: 208,\n  Ntilde: 209,\n  Ograve: 210,\n  Oacute: 211,\n  Ocirc: 212,\n  Otilde: 213,\n  Ouml: 214,\n  times: 215,\n  Oslash: 216,\n  Ugrave: 217,\n  Uacute: 218,\n  Ucirc: 219,\n  Uuml: 220,\n  Yacute: 221,\n  THORN: 222,\n  szlig: 223,\n  agrave: 224,\n  aacute: 225,\n  acirc: 226,\n  atilde: 227,\n  auml: 228,\n  aring: 229,\n  aelig: 230,\n  ccedil: 231,\n  egrave: 232,\n  eacute: 233,\n  ecirc: 234,\n  euml: 235,\n  igrave: 236,\n  iacute: 237,\n  icirc: 238,\n  iuml: 239,\n  eth: 240,\n  ntilde: 241,\n  ograve: 242,\n  oacute: 243,\n  ocirc: 244,\n  otilde: 245,\n  ouml: 246,\n  divide: 247,\n  oslash: 248,\n  ugrave: 249,\n  uacute: 250,\n  ucirc: 251,\n  uuml: 252,\n  yacute: 253,\n  thorn: 254,\n  yuml: 255,\n  OElig: 338,\n  oelig: 339,\n  Scaron: 352,\n  scaron: 353,\n  Yuml: 376,\n  fnof: 402,\n  circ: 710,\n  tilde: 732,\n  Alpha: 913,\n  Beta: 914,\n  Gamma: 915,\n  Delta: 916,\n  Epsilon: 917,\n  Zeta: 918,\n  Eta: 919,\n  Theta: 920,\n  Iota: 921,\n  Kappa: 922,\n  Lambda: 923,\n  Mu: 924,\n  Nu: 925,\n  Xi: 926,\n  Omicron: 927,\n  Pi: 928,\n  Rho: 929,\n  Sigma: 931,\n  Tau: 932,\n  Upsilon: 933,\n  Phi: 934,\n  Chi: 935,\n  Psi: 936,\n  Omega: 937,\n  alpha: 945,\n  beta: 946,\n  gamma: 947,\n  delta: 948,\n  epsilon: 949,\n  zeta: 950,\n  eta: 951,\n  theta: 952,\n  iota: 953,\n  kappa: 954,\n  lambda: 955,\n  mu: 956,\n  nu: 957,\n  xi: 958,\n  omicron: 959,\n  pi: 960,\n  rho: 961,\n  sigmaf: 962,\n  sigma: 963,\n  tau: 964,\n  upsilon: 965,\n  phi: 966,\n  chi: 967,\n  psi: 968,\n  omega: 969,\n  thetasym: 977,\n  upsih: 978,\n  piv: 982,\n  ensp: 8194,\n  emsp: 8195,\n  thinsp: 8201,\n  zwnj: 8204,\n  zwj: 8205,\n  lrm: 8206,\n  rlm: 8207,\n  ndash: 8211,\n  mdash: 8212,\n  lsquo: 8216,\n  rsquo: 8217,\n  sbquo: 8218,\n  ldquo: 8220,\n  rdquo: 8221,\n  bdquo: 8222,\n  dagger: 8224,\n  Dagger: 8225,\n  bull: 8226,\n  hellip: 8230,\n  permil: 8240,\n  prime: 8242,\n  Prime: 8243,\n  lsaquo: 8249,\n  rsaquo: 8250,\n  oline: 8254,\n  frasl: 8260,\n  euro: 8364,\n  image: 8465,\n  weierp: 8472,\n  real: 8476,\n  trade: 8482,\n  alefsym: 8501,\n  larr: 8592,\n  uarr: 8593,\n  rarr: 8594,\n  darr: 8595,\n  harr: 8596,\n  crarr: 8629,\n  lArr: 8656,\n  uArr: 8657,\n  rArr: 8658,\n  dArr: 8659,\n  hArr: 8660,\n  forall: 8704,\n  part: 8706,\n  exist: 8707,\n  empty: 8709,\n  nabla: 8711,\n  isin: 8712,\n  notin: 8713,\n  ni: 8715,\n  prod: 8719,\n  sum: 8721,\n  minus: 8722,\n  lowast: 8727,\n  radic: 8730,\n  prop: 8733,\n  infin: 8734,\n  ang: 8736,\n  and: 8743,\n  or: 8744,\n  cap: 8745,\n  cup: 8746,\n  int: 8747,\n  there4: 8756,\n  sim: 8764,\n  cong: 8773,\n  asymp: 8776,\n  ne: 8800,\n  equiv: 8801,\n  le: 8804,\n  ge: 8805,\n  sub: 8834,\n  sup: 8835,\n  nsub: 8836,\n  sube: 8838,\n  supe: 8839,\n  oplus: 8853,\n  otimes: 8855,\n  perp: 8869,\n  sdot: 8901,\n  lceil: 8968,\n  rceil: 8969,\n  lfloor: 8970,\n  rfloor: 8971,\n  lang: 9001,\n  rang: 9002,\n  loz: 9674,\n  spades: 9824,\n  clubs: 9827,\n  hearts: 9829,\n  diams: 9830\n}));\n\n// src/compiler/transformers/es2016.ts\nfunction transformES2016(context) {\n  const {\n    factory: factory2,\n    hoistVariableDeclaration\n  } = context;\n  return chainBundle(context, transformSourceFile);\n  function transformSourceFile(node) {\n    if (node.isDeclarationFile) {\n      return node;\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitor(node) {\n    if ((node.transformFlags & 512 /* ContainsES2016 */) === 0) {\n      return node;\n    }\n    switch (node.kind) {\n      case 227 /* BinaryExpression */:\n        return visitBinaryExpression(node);\n      default:\n        return visitEachChild(node, visitor, context);\n    }\n  }\n  function visitBinaryExpression(node) {\n    switch (node.operatorToken.kind) {\n      case 68 /* AsteriskAsteriskEqualsToken */:\n        return visitExponentiationAssignmentExpression(node);\n      case 43 /* AsteriskAsteriskToken */:\n        return visitExponentiationExpression(node);\n      default:\n        return visitEachChild(node, visitor, context);\n    }\n  }\n  function visitExponentiationAssignmentExpression(node) {\n    let target;\n    let value;\n    const left = visitNode(node.left, visitor, isExpression);\n    const right = visitNode(node.right, visitor, isExpression);\n    if (isElementAccessExpression(left)) {\n      const expressionTemp = factory2.createTempVariable(hoistVariableDeclaration);\n      const argumentExpressionTemp = factory2.createTempVariable(hoistVariableDeclaration);\n      target = setTextRange(\n        factory2.createElementAccessExpression(\n          setTextRange(factory2.createAssignment(expressionTemp, left.expression), left.expression),\n          setTextRange(factory2.createAssignment(argumentExpressionTemp, left.argumentExpression), left.argumentExpression)\n        ),\n        left\n      );\n      value = setTextRange(\n        factory2.createElementAccessExpression(\n          expressionTemp,\n          argumentExpressionTemp\n        ),\n        left\n      );\n    } else if (isPropertyAccessExpression(left)) {\n      const expressionTemp = factory2.createTempVariable(hoistVariableDeclaration);\n      target = setTextRange(\n        factory2.createPropertyAccessExpression(\n          setTextRange(factory2.createAssignment(expressionTemp, left.expression), left.expression),\n          left.name\n        ),\n        left\n      );\n      value = setTextRange(\n        factory2.createPropertyAccessExpression(\n          expressionTemp,\n          left.name\n        ),\n        left\n      );\n    } else {\n      target = left;\n      value = left;\n    }\n    return setTextRange(\n      factory2.createAssignment(\n        target,\n        setTextRange(factory2.createGlobalMethodCall(\"Math\", \"pow\", [value, right]), node)\n      ),\n      node\n    );\n  }\n  function visitExponentiationExpression(node) {\n    const left = visitNode(node.left, visitor, isExpression);\n    const right = visitNode(node.right, visitor, isExpression);\n    return setTextRange(factory2.createGlobalMethodCall(\"Math\", \"pow\", [left, right]), node);\n  }\n}\n\n// src/compiler/transformers/es2015.ts\nfunction createSpreadSegment(kind, expression) {\n  return { kind, expression };\n}\nfunction transformES2015(context) {\n  const {\n    factory: factory2,\n    getEmitHelperFactory: emitHelpers,\n    startLexicalEnvironment,\n    resumeLexicalEnvironment,\n    endLexicalEnvironment,\n    hoistVariableDeclaration\n  } = context;\n  const compilerOptions = context.getCompilerOptions();\n  const resolver = context.getEmitResolver();\n  const previousOnSubstituteNode = context.onSubstituteNode;\n  const previousOnEmitNode = context.onEmitNode;\n  context.onEmitNode = onEmitNode;\n  context.onSubstituteNode = onSubstituteNode;\n  let currentSourceFile;\n  let currentText;\n  let hierarchyFacts;\n  let taggedTemplateStringDeclarations;\n  function recordTaggedTemplateString(temp) {\n    taggedTemplateStringDeclarations = append(\n      taggedTemplateStringDeclarations,\n      factory2.createVariableDeclaration(temp)\n    );\n  }\n  let convertedLoopState;\n  let enabledSubstitutions = 0 /* None */;\n  return chainBundle(context, transformSourceFile);\n  function transformSourceFile(node) {\n    if (node.isDeclarationFile) {\n      return node;\n    }\n    currentSourceFile = node;\n    currentText = node.text;\n    const visited = visitSourceFile(node);\n    addEmitHelpers(visited, context.readEmitHelpers());\n    currentSourceFile = void 0;\n    currentText = void 0;\n    taggedTemplateStringDeclarations = void 0;\n    hierarchyFacts = 0 /* None */;\n    return visited;\n  }\n  function enterSubtree(excludeFacts, includeFacts) {\n    const ancestorFacts = hierarchyFacts;\n    hierarchyFacts = (hierarchyFacts & ~excludeFacts | includeFacts) & 32767 /* AncestorFactsMask */;\n    return ancestorFacts;\n  }\n  function exitSubtree(ancestorFacts, excludeFacts, includeFacts) {\n    hierarchyFacts = (hierarchyFacts & ~excludeFacts | includeFacts) & -32768 /* SubtreeFactsMask */ | ancestorFacts;\n  }\n  function isReturnVoidStatementInConstructorWithCapturedSuper(node) {\n    return (hierarchyFacts & 8192 /* ConstructorWithSuperCall */) !== 0 && node.kind === 254 /* ReturnStatement */ && !node.expression;\n  }\n  function isOrMayContainReturnCompletion(node) {\n    return node.transformFlags & 4194304 /* ContainsHoistedDeclarationOrCompletion */ && (isReturnStatement(node) || isIfStatement(node) || isWithStatement(node) || isSwitchStatement(node) || isCaseBlock(node) || isCaseClause(node) || isDefaultClause(node) || isTryStatement(node) || isCatchClause(node) || isLabeledStatement(node) || isIterationStatement(\n      node,\n      /*lookInLabeledStatements*/\n      false\n    ) || isBlock(node));\n  }\n  function shouldVisitNode(node) {\n    return (node.transformFlags & 1024 /* ContainsES2015 */) !== 0 || convertedLoopState !== void 0 || hierarchyFacts & 8192 /* ConstructorWithSuperCall */ && isOrMayContainReturnCompletion(node) || isIterationStatement(\n      node,\n      /*lookInLabeledStatements*/\n      false\n    ) && shouldConvertIterationStatement(node) || (getInternalEmitFlags(node) & 1 /* TypeScriptClassWrapper */) !== 0;\n  }\n  function visitor(node) {\n    return shouldVisitNode(node) ? visitorWorker(\n      node,\n      /*expressionResultIsUnused*/\n      false\n    ) : node;\n  }\n  function visitorWithUnusedExpressionResult(node) {\n    return shouldVisitNode(node) ? visitorWorker(\n      node,\n      /*expressionResultIsUnused*/\n      true\n    ) : node;\n  }\n  function classWrapperStatementVisitor(node) {\n    if (shouldVisitNode(node)) {\n      const original = getOriginalNode(node);\n      if (isPropertyDeclaration(original) && hasStaticModifier(original)) {\n        const ancestorFacts = enterSubtree(\n          32670 /* StaticInitializerExcludes */,\n          16449 /* StaticInitializerIncludes */\n        );\n        const result = visitorWorker(\n          node,\n          /*expressionResultIsUnused*/\n          false\n        );\n        exitSubtree(ancestorFacts, 229376 /* FunctionSubtreeExcludes */, 0 /* None */);\n        return result;\n      }\n      return visitorWorker(\n        node,\n        /*expressionResultIsUnused*/\n        false\n      );\n    }\n    return node;\n  }\n  function callExpressionVisitor(node) {\n    if (node.kind === 108 /* SuperKeyword */) {\n      return visitSuperKeyword(\n        node,\n        /*isExpressionOfCall*/\n        true\n      );\n    }\n    return visitor(node);\n  }\n  function visitorWorker(node, expressionResultIsUnused2) {\n    switch (node.kind) {\n      case 126 /* StaticKeyword */:\n        return void 0;\n      // elide static keyword\n      case 264 /* ClassDeclaration */:\n        return visitClassDeclaration(node);\n      case 232 /* ClassExpression */:\n        return visitClassExpression(node);\n      case 170 /* Parameter */:\n        return visitParameter(node);\n      case 263 /* FunctionDeclaration */:\n        return visitFunctionDeclaration(node);\n      case 220 /* ArrowFunction */:\n        return visitArrowFunction(node);\n      case 219 /* FunctionExpression */:\n        return visitFunctionExpression(node);\n      case 261 /* VariableDeclaration */:\n        return visitVariableDeclaration(node);\n      case 80 /* Identifier */:\n        return visitIdentifier(node);\n      case 262 /* VariableDeclarationList */:\n        return visitVariableDeclarationList(node);\n      case 256 /* SwitchStatement */:\n        return visitSwitchStatement(node);\n      case 270 /* CaseBlock */:\n        return visitCaseBlock(node);\n      case 242 /* Block */:\n        return visitBlock(\n          node,\n          /*isFunctionBody*/\n          false\n        );\n      case 253 /* BreakStatement */:\n      case 252 /* ContinueStatement */:\n        return visitBreakOrContinueStatement(node);\n      case 257 /* LabeledStatement */:\n        return visitLabeledStatement(node);\n      case 247 /* DoStatement */:\n      case 248 /* WhileStatement */:\n        return visitDoOrWhileStatement(\n          node,\n          /*outermostLabeledStatement*/\n          void 0\n        );\n      case 249 /* ForStatement */:\n        return visitForStatement(\n          node,\n          /*outermostLabeledStatement*/\n          void 0\n        );\n      case 250 /* ForInStatement */:\n        return visitForInStatement(\n          node,\n          /*outermostLabeledStatement*/\n          void 0\n        );\n      case 251 /* ForOfStatement */:\n        return visitForOfStatement(\n          node,\n          /*outermostLabeledStatement*/\n          void 0\n        );\n      case 245 /* ExpressionStatement */:\n        return visitExpressionStatement(node);\n      case 211 /* ObjectLiteralExpression */:\n        return visitObjectLiteralExpression(node);\n      case 300 /* CatchClause */:\n        return visitCatchClause(node);\n      case 305 /* ShorthandPropertyAssignment */:\n        return visitShorthandPropertyAssignment(node);\n      case 168 /* ComputedPropertyName */:\n        return visitComputedPropertyName(node);\n      case 210 /* ArrayLiteralExpression */:\n        return visitArrayLiteralExpression(node);\n      case 214 /* CallExpression */:\n        return visitCallExpression(node);\n      case 215 /* NewExpression */:\n        return visitNewExpression(node);\n      case 218 /* ParenthesizedExpression */:\n        return visitParenthesizedExpression(node, expressionResultIsUnused2);\n      case 227 /* BinaryExpression */:\n        return visitBinaryExpression(node, expressionResultIsUnused2);\n      case 357 /* CommaListExpression */:\n        return visitCommaListExpression(node, expressionResultIsUnused2);\n      case 15 /* NoSubstitutionTemplateLiteral */:\n      case 16 /* TemplateHead */:\n      case 17 /* TemplateMiddle */:\n      case 18 /* TemplateTail */:\n        return visitTemplateLiteral(node);\n      case 11 /* StringLiteral */:\n        return visitStringLiteral(node);\n      case 9 /* NumericLiteral */:\n        return visitNumericLiteral(node);\n      case 216 /* TaggedTemplateExpression */:\n        return visitTaggedTemplateExpression(node);\n      case 229 /* TemplateExpression */:\n        return visitTemplateExpression(node);\n      case 230 /* YieldExpression */:\n        return visitYieldExpression(node);\n      case 231 /* SpreadElement */:\n        return visitSpreadElement(node);\n      case 108 /* SuperKeyword */:\n        return visitSuperKeyword(\n          node,\n          /*isExpressionOfCall*/\n          false\n        );\n      case 110 /* ThisKeyword */:\n        return visitThisKeyword(node);\n      case 237 /* MetaProperty */:\n        return visitMetaProperty(node);\n      case 175 /* MethodDeclaration */:\n        return visitMethodDeclaration(node);\n      case 178 /* GetAccessor */:\n      case 179 /* SetAccessor */:\n        return visitAccessorDeclaration(node);\n      case 244 /* VariableStatement */:\n        return visitVariableStatement(node);\n      case 254 /* ReturnStatement */:\n        return visitReturnStatement(node);\n      case 223 /* VoidExpression */:\n        return visitVoidExpression(node);\n      default:\n        return visitEachChild(node, visitor, context);\n    }\n  }\n  function visitSourceFile(node) {\n    const ancestorFacts = enterSubtree(8064 /* SourceFileExcludes */, 64 /* SourceFileIncludes */);\n    const prologue = [];\n    const statements = [];\n    startLexicalEnvironment();\n    const statementOffset = factory2.copyPrologue(\n      node.statements,\n      prologue,\n      /*ensureUseStrict*/\n      false,\n      visitor\n    );\n    addRange(statements, visitNodes2(node.statements, visitor, isStatement, statementOffset));\n    if (taggedTemplateStringDeclarations) {\n      statements.push(\n        factory2.createVariableStatement(\n          /*modifiers*/\n          void 0,\n          factory2.createVariableDeclarationList(taggedTemplateStringDeclarations)\n        )\n      );\n    }\n    factory2.mergeLexicalEnvironment(prologue, endLexicalEnvironment());\n    insertCaptureThisForNodeIfNeeded(prologue, node);\n    exitSubtree(ancestorFacts, 0 /* None */, 0 /* None */);\n    return factory2.updateSourceFile(\n      node,\n      setTextRange(factory2.createNodeArray(concatenate(prologue, statements)), node.statements)\n    );\n  }\n  function visitSwitchStatement(node) {\n    if (convertedLoopState !== void 0) {\n      const savedAllowedNonLabeledJumps = convertedLoopState.allowedNonLabeledJumps;\n      convertedLoopState.allowedNonLabeledJumps |= 2 /* Break */;\n      const result = visitEachChild(node, visitor, context);\n      convertedLoopState.allowedNonLabeledJumps = savedAllowedNonLabeledJumps;\n      return result;\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitCaseBlock(node) {\n    const ancestorFacts = enterSubtree(7104 /* BlockScopeExcludes */, 0 /* BlockScopeIncludes */);\n    const updated = visitEachChild(node, visitor, context);\n    exitSubtree(ancestorFacts, 0 /* None */, 0 /* None */);\n    return updated;\n  }\n  function returnCapturedThis(node) {\n    return setOriginalNode(factory2.createReturnStatement(createCapturedThis()), node);\n  }\n  function createCapturedThis() {\n    return factory2.createUniqueName(\"_this\", 16 /* Optimistic */ | 32 /* FileLevel */);\n  }\n  function visitReturnStatement(node) {\n    if (convertedLoopState) {\n      convertedLoopState.nonLocalJumps |= 8 /* Return */;\n      if (isReturnVoidStatementInConstructorWithCapturedSuper(node)) {\n        node = returnCapturedThis(node);\n      }\n      return factory2.createReturnStatement(\n        factory2.createObjectLiteralExpression(\n          [\n            factory2.createPropertyAssignment(\n              factory2.createIdentifier(\"value\"),\n              node.expression ? Debug.checkDefined(visitNode(node.expression, visitor, isExpression)) : factory2.createVoidZero()\n            )\n          ]\n        )\n      );\n    } else if (isReturnVoidStatementInConstructorWithCapturedSuper(node)) {\n      return returnCapturedThis(node);\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitThisKeyword(node) {\n    hierarchyFacts |= 65536 /* LexicalThis */;\n    if (hierarchyFacts & 2 /* ArrowFunction */ && !(hierarchyFacts & 16384 /* StaticInitializer */)) {\n      hierarchyFacts |= 131072 /* CapturedLexicalThis */;\n    }\n    if (convertedLoopState) {\n      if (hierarchyFacts & 2 /* ArrowFunction */) {\n        convertedLoopState.containsLexicalThis = true;\n        return node;\n      }\n      return convertedLoopState.thisName || (convertedLoopState.thisName = factory2.createUniqueName(\"this\"));\n    }\n    return node;\n  }\n  function visitVoidExpression(node) {\n    return visitEachChild(node, visitorWithUnusedExpressionResult, context);\n  }\n  function visitIdentifier(node) {\n    if (convertedLoopState) {\n      if (resolver.isArgumentsLocalBinding(node)) {\n        return convertedLoopState.argumentsName || (convertedLoopState.argumentsName = factory2.createUniqueName(\"arguments\"));\n      }\n    }\n    if (node.flags & 256 /* IdentifierHasExtendedUnicodeEscape */) {\n      return setOriginalNode(\n        setTextRange(\n          factory2.createIdentifier(unescapeLeadingUnderscores(node.escapedText)),\n          node\n        ),\n        node\n      );\n    }\n    return node;\n  }\n  function visitBreakOrContinueStatement(node) {\n    if (convertedLoopState) {\n      const jump = node.kind === 253 /* BreakStatement */ ? 2 /* Break */ : 4 /* Continue */;\n      const canUseBreakOrContinue = node.label && convertedLoopState.labels && convertedLoopState.labels.get(idText(node.label)) || !node.label && convertedLoopState.allowedNonLabeledJumps & jump;\n      if (!canUseBreakOrContinue) {\n        let labelMarker;\n        const label = node.label;\n        if (!label) {\n          if (node.kind === 253 /* BreakStatement */) {\n            convertedLoopState.nonLocalJumps |= 2 /* Break */;\n            labelMarker = \"break\";\n          } else {\n            convertedLoopState.nonLocalJumps |= 4 /* Continue */;\n            labelMarker = \"continue\";\n          }\n        } else {\n          if (node.kind === 253 /* BreakStatement */) {\n            labelMarker = `break-${label.escapedText}`;\n            setLabeledJump(\n              convertedLoopState,\n              /*isBreak*/\n              true,\n              idText(label),\n              labelMarker\n            );\n          } else {\n            labelMarker = `continue-${label.escapedText}`;\n            setLabeledJump(\n              convertedLoopState,\n              /*isBreak*/\n              false,\n              idText(label),\n              labelMarker\n            );\n          }\n        }\n        let returnExpression = factory2.createStringLiteral(labelMarker);\n        if (convertedLoopState.loopOutParameters.length) {\n          const outParams = convertedLoopState.loopOutParameters;\n          let expr;\n          for (let i = 0; i < outParams.length; i++) {\n            const copyExpr = copyOutParameter(outParams[i], 1 /* ToOutParameter */);\n            if (i === 0) {\n              expr = copyExpr;\n            } else {\n              expr = factory2.createBinaryExpression(expr, 28 /* CommaToken */, copyExpr);\n            }\n          }\n          returnExpression = factory2.createBinaryExpression(expr, 28 /* CommaToken */, returnExpression);\n        }\n        return factory2.createReturnStatement(returnExpression);\n      }\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitClassDeclaration(node) {\n    const variable = factory2.createVariableDeclaration(\n      factory2.getLocalName(\n        node,\n        /*allowComments*/\n        true\n      ),\n      /*exclamationToken*/\n      void 0,\n      /*type*/\n      void 0,\n      transformClassLikeDeclarationToExpression(node)\n    );\n    setOriginalNode(variable, node);\n    const statements = [];\n    const statement = factory2.createVariableStatement(\n      /*modifiers*/\n      void 0,\n      factory2.createVariableDeclarationList([variable])\n    );\n    setOriginalNode(statement, node);\n    setTextRange(statement, node);\n    startOnNewLine(statement);\n    statements.push(statement);\n    if (hasSyntacticModifier(node, 32 /* Export */)) {\n      const exportStatement = hasSyntacticModifier(node, 2048 /* Default */) ? factory2.createExportDefault(factory2.getLocalName(node)) : factory2.createExternalModuleExport(factory2.getLocalName(node));\n      setOriginalNode(exportStatement, statement);\n      statements.push(exportStatement);\n    }\n    return singleOrMany(statements);\n  }\n  function visitClassExpression(node) {\n    return transformClassLikeDeclarationToExpression(node);\n  }\n  function transformClassLikeDeclarationToExpression(node) {\n    if (node.name) {\n      enableSubstitutionsForBlockScopedBindings();\n    }\n    const extendsClauseElement = getClassExtendsHeritageElement(node);\n    const classFunction = factory2.createFunctionExpression(\n      /*modifiers*/\n      void 0,\n      /*asteriskToken*/\n      void 0,\n      /*name*/\n      void 0,\n      /*typeParameters*/\n      void 0,\n      extendsClauseElement ? [factory2.createParameterDeclaration(\n        /*modifiers*/\n        void 0,\n        /*dotDotDotToken*/\n        void 0,\n        createSyntheticSuper()\n      )] : [],\n      /*type*/\n      void 0,\n      transformClassBody(node, extendsClauseElement)\n    );\n    setEmitFlags(classFunction, getEmitFlags(node) & 131072 /* Indented */ | 1048576 /* ReuseTempVariableScope */);\n    const inner = factory2.createPartiallyEmittedExpression(classFunction);\n    setTextRangeEnd(inner, node.end);\n    setEmitFlags(inner, 3072 /* NoComments */);\n    const outer = factory2.createPartiallyEmittedExpression(inner);\n    setTextRangeEnd(outer, skipTrivia(currentText, node.pos));\n    setEmitFlags(outer, 3072 /* NoComments */);\n    const result = factory2.createParenthesizedExpression(\n      factory2.createCallExpression(\n        outer,\n        /*typeArguments*/\n        void 0,\n        extendsClauseElement ? [Debug.checkDefined(visitNode(extendsClauseElement.expression, visitor, isExpression))] : []\n      )\n    );\n    addSyntheticLeadingComment(result, 3 /* MultiLineCommentTrivia */, \"* @class \");\n    return result;\n  }\n  function transformClassBody(node, extendsClauseElement) {\n    const statements = [];\n    const name = factory2.getInternalName(node);\n    const constructorLikeName = isIdentifierANonContextualKeyword(name) ? factory2.getGeneratedNameForNode(name) : name;\n    startLexicalEnvironment();\n    addExtendsHelperIfNeeded(statements, node, extendsClauseElement);\n    addConstructor(statements, node, constructorLikeName, extendsClauseElement);\n    addClassMembers(statements, node);\n    const closingBraceLocation = createTokenRange(skipTrivia(currentText, node.members.end), 20 /* CloseBraceToken */);\n    const outer = factory2.createPartiallyEmittedExpression(constructorLikeName);\n    setTextRangeEnd(outer, closingBraceLocation.end);\n    setEmitFlags(outer, 3072 /* NoComments */);\n    const statement = factory2.createReturnStatement(outer);\n    setTextRangePos(statement, closingBraceLocation.pos);\n    setEmitFlags(statement, 3072 /* NoComments */ | 768 /* NoTokenSourceMaps */);\n    statements.push(statement);\n    insertStatementsAfterStandardPrologue(statements, endLexicalEnvironment());\n    const block = factory2.createBlock(\n      setTextRange(\n        factory2.createNodeArray(statements),\n        /*location*/\n        node.members\n      ),\n      /*multiLine*/\n      true\n    );\n    setEmitFlags(block, 3072 /* NoComments */);\n    return block;\n  }\n  function addExtendsHelperIfNeeded(statements, node, extendsClauseElement) {\n    if (extendsClauseElement) {\n      statements.push(\n        setTextRange(\n          factory2.createExpressionStatement(\n            emitHelpers().createExtendsHelper(factory2.getInternalName(node))\n          ),\n          /*location*/\n          extendsClauseElement\n        )\n      );\n    }\n  }\n  function addConstructor(statements, node, name, extendsClauseElement) {\n    const savedConvertedLoopState = convertedLoopState;\n    convertedLoopState = void 0;\n    const ancestorFacts = enterSubtree(32662 /* ConstructorExcludes */, 73 /* ConstructorIncludes */);\n    const constructor = getFirstConstructorWithBody(node);\n    const hasSynthesizedSuper = hasSynthesizedDefaultSuperCall(constructor, extendsClauseElement !== void 0);\n    const constructorFunction = factory2.createFunctionDeclaration(\n      /*modifiers*/\n      void 0,\n      /*asteriskToken*/\n      void 0,\n      name,\n      /*typeParameters*/\n      void 0,\n      transformConstructorParameters(constructor, hasSynthesizedSuper),\n      /*type*/\n      void 0,\n      transformConstructorBody(constructor, node, extendsClauseElement, hasSynthesizedSuper)\n    );\n    setTextRange(constructorFunction, constructor || node);\n    if (extendsClauseElement) {\n      setEmitFlags(constructorFunction, 16 /* CapturesThis */);\n    }\n    statements.push(constructorFunction);\n    exitSubtree(ancestorFacts, 229376 /* FunctionSubtreeExcludes */, 0 /* None */);\n    convertedLoopState = savedConvertedLoopState;\n  }\n  function transformConstructorParameters(constructor, hasSynthesizedSuper) {\n    return visitParameterList(constructor && !hasSynthesizedSuper ? constructor.parameters : void 0, visitor, context) || [];\n  }\n  function createDefaultConstructorBody(node, isDerivedClass) {\n    const statements = [];\n    resumeLexicalEnvironment();\n    factory2.mergeLexicalEnvironment(statements, endLexicalEnvironment());\n    if (isDerivedClass) {\n      statements.push(factory2.createReturnStatement(createDefaultSuperCallOrThis()));\n    }\n    const statementsArray = factory2.createNodeArray(statements);\n    setTextRange(statementsArray, node.members);\n    const block = factory2.createBlock(\n      statementsArray,\n      /*multiLine*/\n      true\n    );\n    setTextRange(block, node);\n    setEmitFlags(block, 3072 /* NoComments */);\n    return block;\n  }\n  function isUninitializedVariableStatement(node) {\n    return isVariableStatement(node) && every(node.declarationList.declarations, (decl) => isIdentifier(decl.name) && !decl.initializer);\n  }\n  function containsSuperCall(node) {\n    if (isSuperCall(node)) {\n      return true;\n    }\n    if (!(node.transformFlags & 134217728 /* ContainsLexicalSuper */)) {\n      return false;\n    }\n    switch (node.kind) {\n      // stop at function boundaries\n      case 220 /* ArrowFunction */:\n      case 219 /* FunctionExpression */:\n      case 263 /* FunctionDeclaration */:\n      case 177 /* Constructor */:\n      case 176 /* ClassStaticBlockDeclaration */:\n        return false;\n      // only step into computed property names for class and object literal elements\n      case 178 /* GetAccessor */:\n      case 179 /* SetAccessor */:\n      case 175 /* MethodDeclaration */:\n      case 173 /* PropertyDeclaration */: {\n        const named = node;\n        if (isComputedPropertyName(named.name)) {\n          return !!forEachChild(named.name, containsSuperCall);\n        }\n        return false;\n      }\n    }\n    return !!forEachChild(node, containsSuperCall);\n  }\n  function transformConstructorBody(constructor, node, extendsClauseElement, hasSynthesizedSuper) {\n    const isDerivedClass = !!extendsClauseElement && skipOuterExpressions(extendsClauseElement.expression).kind !== 106 /* NullKeyword */;\n    if (!constructor) return createDefaultConstructorBody(node, isDerivedClass);\n    const prologue = [];\n    const statements = [];\n    resumeLexicalEnvironment();\n    const standardPrologueEnd = factory2.copyStandardPrologue(\n      constructor.body.statements,\n      prologue,\n      /*statementOffset*/\n      0\n    );\n    if (hasSynthesizedSuper || containsSuperCall(constructor.body)) {\n      hierarchyFacts |= 8192 /* ConstructorWithSuperCall */;\n    }\n    addRange(statements, visitNodes2(constructor.body.statements, visitor, isStatement, standardPrologueEnd));\n    const mayReplaceThis = isDerivedClass || hierarchyFacts & 8192 /* ConstructorWithSuperCall */;\n    addDefaultValueAssignmentsIfNeeded2(prologue, constructor);\n    addRestParameterIfNeeded(prologue, constructor, hasSynthesizedSuper);\n    insertCaptureNewTargetIfNeeded(prologue, constructor);\n    if (mayReplaceThis) {\n      insertCaptureThisForNode(prologue, constructor, createActualThis());\n    } else {\n      insertCaptureThisForNodeIfNeeded(prologue, constructor);\n    }\n    factory2.mergeLexicalEnvironment(prologue, endLexicalEnvironment());\n    if (mayReplaceThis && !isSufficientlyCoveredByReturnStatements(constructor.body)) {\n      statements.push(factory2.createReturnStatement(createCapturedThis()));\n    }\n    const body = factory2.createBlock(\n      setTextRange(\n        factory2.createNodeArray(\n          [\n            ...prologue,\n            ...statements\n          ]\n        ),\n        /*location*/\n        constructor.body.statements\n      ),\n      /*multiLine*/\n      true\n    );\n    setTextRange(body, constructor.body);\n    return simplifyConstructor(body, constructor.body, hasSynthesizedSuper);\n  }\n  function isCapturedThis(node) {\n    return isGeneratedIdentifier(node) && idText(node) === \"_this\";\n  }\n  function isSyntheticSuper(node) {\n    return isGeneratedIdentifier(node) && idText(node) === \"_super\";\n  }\n  function isThisCapturingVariableStatement(node) {\n    return isVariableStatement(node) && node.declarationList.declarations.length === 1 && isThisCapturingVariableDeclaration(node.declarationList.declarations[0]);\n  }\n  function isThisCapturingVariableDeclaration(node) {\n    return isVariableDeclaration(node) && isCapturedThis(node.name) && !!node.initializer;\n  }\n  function isThisCapturingAssignment(node) {\n    return isAssignmentExpression(\n      node,\n      /*excludeCompoundAssignment*/\n      true\n    ) && isCapturedThis(node.left);\n  }\n  function isTransformedSuperCall(node) {\n    return isCallExpression(node) && isPropertyAccessExpression(node.expression) && isSyntheticSuper(node.expression.expression) && isIdentifier(node.expression.name) && (idText(node.expression.name) === \"call\" || idText(node.expression.name) === \"apply\") && node.arguments.length >= 1 && node.arguments[0].kind === 110 /* ThisKeyword */;\n  }\n  function isTransformedSuperCallWithFallback(node) {\n    return isBinaryExpression(node) && node.operatorToken.kind === 57 /* BarBarToken */ && node.right.kind === 110 /* ThisKeyword */ && isTransformedSuperCall(node.left);\n  }\n  function isImplicitSuperCall(node) {\n    return isBinaryExpression(node) && node.operatorToken.kind === 56 /* AmpersandAmpersandToken */ && isBinaryExpression(node.left) && node.left.operatorToken.kind === 38 /* ExclamationEqualsEqualsToken */ && isSyntheticSuper(node.left.left) && node.left.right.kind === 106 /* NullKeyword */ && isTransformedSuperCall(node.right) && idText(node.right.expression.name) === \"apply\";\n  }\n  function isImplicitSuperCallWithFallback(node) {\n    return isBinaryExpression(node) && node.operatorToken.kind === 57 /* BarBarToken */ && node.right.kind === 110 /* ThisKeyword */ && isImplicitSuperCall(node.left);\n  }\n  function isThisCapturingTransformedSuperCallWithFallback(node) {\n    return isThisCapturingAssignment(node) && isTransformedSuperCallWithFallback(node.right);\n  }\n  function isThisCapturingImplicitSuperCallWithFallback(node) {\n    return isThisCapturingAssignment(node) && isImplicitSuperCallWithFallback(node.right);\n  }\n  function isTransformedSuperCallLike(node) {\n    return isTransformedSuperCall(node) || isTransformedSuperCallWithFallback(node) || isThisCapturingTransformedSuperCallWithFallback(node) || isImplicitSuperCall(node) || isImplicitSuperCallWithFallback(node) || isThisCapturingImplicitSuperCallWithFallback(node);\n  }\n  function simplifyConstructorInlineSuperInThisCaptureVariable(body) {\n    for (let i = 0; i < body.statements.length - 1; i++) {\n      const statement = body.statements[i];\n      if (!isThisCapturingVariableStatement(statement)) {\n        continue;\n      }\n      const varDecl = statement.declarationList.declarations[0];\n      if (varDecl.initializer.kind !== 110 /* ThisKeyword */) {\n        continue;\n      }\n      const thisCaptureStatementIndex = i;\n      let superCallIndex = i + 1;\n      while (superCallIndex < body.statements.length) {\n        const statement2 = body.statements[superCallIndex];\n        if (isExpressionStatement(statement2)) {\n          if (isTransformedSuperCallLike(skipOuterExpressions(statement2.expression))) {\n            break;\n          }\n        }\n        if (isUninitializedVariableStatement(statement2)) {\n          superCallIndex++;\n          continue;\n        }\n        return body;\n      }\n      const following = body.statements[superCallIndex];\n      let expression = following.expression;\n      if (isThisCapturingAssignment(expression)) {\n        expression = expression.right;\n      }\n      const newVarDecl = factory2.updateVariableDeclaration(\n        varDecl,\n        varDecl.name,\n        /*exclamationToken*/\n        void 0,\n        /*type*/\n        void 0,\n        expression\n      );\n      const newDeclList = factory2.updateVariableDeclarationList(statement.declarationList, [newVarDecl]);\n      const newVarStatement = factory2.createVariableStatement(statement.modifiers, newDeclList);\n      setOriginalNode(newVarStatement, following);\n      setTextRange(newVarStatement, following);\n      const newStatements = factory2.createNodeArray([\n        ...body.statements.slice(0, thisCaptureStatementIndex),\n        // copy statements preceding to `var _this`\n        ...body.statements.slice(thisCaptureStatementIndex + 1, superCallIndex),\n        // copy intervening temp variables\n        newVarStatement,\n        ...body.statements.slice(superCallIndex + 1)\n        // copy statements following `super.call(this, ...)`\n      ]);\n      setTextRange(newStatements, body.statements);\n      return factory2.updateBlock(body, newStatements);\n    }\n    return body;\n  }\n  function simplifyConstructorInlineSuperReturn(body, original) {\n    for (const statement of original.statements) {\n      if (statement.transformFlags & 134217728 /* ContainsLexicalSuper */ && !getSuperCallFromStatement(statement)) {\n        return body;\n      }\n    }\n    const canElideThisCapturingVariable = !(original.transformFlags & 16384 /* ContainsLexicalThis */) && !(hierarchyFacts & 65536 /* LexicalThis */) && !(hierarchyFacts & 131072 /* CapturedLexicalThis */);\n    for (let i = body.statements.length - 1; i > 0; i--) {\n      const statement = body.statements[i];\n      if (isReturnStatement(statement) && statement.expression && isCapturedThis(statement.expression)) {\n        const preceding = body.statements[i - 1];\n        let expression;\n        if (isExpressionStatement(preceding) && isThisCapturingTransformedSuperCallWithFallback(skipOuterExpressions(preceding.expression))) {\n          expression = preceding.expression;\n        } else if (canElideThisCapturingVariable && isThisCapturingVariableStatement(preceding)) {\n          const varDecl = preceding.declarationList.declarations[0];\n          if (isTransformedSuperCallLike(skipOuterExpressions(varDecl.initializer))) {\n            expression = factory2.createAssignment(\n              createCapturedThis(),\n              varDecl.initializer\n            );\n          }\n        }\n        if (!expression) {\n          break;\n        }\n        const newReturnStatement = factory2.createReturnStatement(expression);\n        setOriginalNode(newReturnStatement, preceding);\n        setTextRange(newReturnStatement, preceding);\n        const newStatements = factory2.createNodeArray([\n          ...body.statements.slice(0, i - 1),\n          // copy all statements preceding `_super.call(this, ...)`\n          newReturnStatement,\n          ...body.statements.slice(i + 1)\n          // copy all statements following `return _this;`\n        ]);\n        setTextRange(newStatements, body.statements);\n        return factory2.updateBlock(body, newStatements);\n      }\n    }\n    return body;\n  }\n  function elideUnusedThisCaptureWorker(node) {\n    if (isThisCapturingVariableStatement(node)) {\n      const varDecl = node.declarationList.declarations[0];\n      if (varDecl.initializer.kind === 110 /* ThisKeyword */) {\n        return void 0;\n      }\n    } else if (isThisCapturingAssignment(node)) {\n      return factory2.createPartiallyEmittedExpression(node.right, node);\n    }\n    switch (node.kind) {\n      // stop at function boundaries\n      case 220 /* ArrowFunction */:\n      case 219 /* FunctionExpression */:\n      case 263 /* FunctionDeclaration */:\n      case 177 /* Constructor */:\n      case 176 /* ClassStaticBlockDeclaration */:\n        return node;\n      // only step into computed property names for class and object literal elements\n      case 178 /* GetAccessor */:\n      case 179 /* SetAccessor */:\n      case 175 /* MethodDeclaration */:\n      case 173 /* PropertyDeclaration */: {\n        const named = node;\n        if (isComputedPropertyName(named.name)) {\n          return factory2.replacePropertyName(named, visitEachChild(\n            named.name,\n            elideUnusedThisCaptureWorker,\n            /*context*/\n            void 0\n          ));\n        }\n        return node;\n      }\n    }\n    return visitEachChild(\n      node,\n      elideUnusedThisCaptureWorker,\n      /*context*/\n      void 0\n    );\n  }\n  function simplifyConstructorElideUnusedThisCapture(body, original) {\n    if (original.transformFlags & 16384 /* ContainsLexicalThis */ || hierarchyFacts & 65536 /* LexicalThis */ || hierarchyFacts & 131072 /* CapturedLexicalThis */) {\n      return body;\n    }\n    for (const statement of original.statements) {\n      if (statement.transformFlags & 134217728 /* ContainsLexicalSuper */ && !getSuperCallFromStatement(statement)) {\n        return body;\n      }\n    }\n    return factory2.updateBlock(body, visitNodes2(body.statements, elideUnusedThisCaptureWorker, isStatement));\n  }\n  function injectSuperPresenceCheckWorker(node) {\n    if (isTransformedSuperCall(node) && node.arguments.length === 2 && isIdentifier(node.arguments[1]) && idText(node.arguments[1]) === \"arguments\") {\n      return factory2.createLogicalAnd(\n        factory2.createStrictInequality(\n          createSyntheticSuper(),\n          factory2.createNull()\n        ),\n        node\n      );\n    }\n    switch (node.kind) {\n      // stop at function boundaries\n      case 220 /* ArrowFunction */:\n      case 219 /* FunctionExpression */:\n      case 263 /* FunctionDeclaration */:\n      case 177 /* Constructor */:\n      case 176 /* ClassStaticBlockDeclaration */:\n        return node;\n      // only step into computed property names for class and object literal elements\n      case 178 /* GetAccessor */:\n      case 179 /* SetAccessor */:\n      case 175 /* MethodDeclaration */:\n      case 173 /* PropertyDeclaration */: {\n        const named = node;\n        if (isComputedPropertyName(named.name)) {\n          return factory2.replacePropertyName(named, visitEachChild(\n            named.name,\n            injectSuperPresenceCheckWorker,\n            /*context*/\n            void 0\n          ));\n        }\n        return node;\n      }\n    }\n    return visitEachChild(\n      node,\n      injectSuperPresenceCheckWorker,\n      /*context*/\n      void 0\n    );\n  }\n  function complicateConstructorInjectSuperPresenceCheck(body) {\n    return factory2.updateBlock(body, visitNodes2(body.statements, injectSuperPresenceCheckWorker, isStatement));\n  }\n  function simplifyConstructor(body, original, hasSynthesizedSuper) {\n    const inputBody = body;\n    body = simplifyConstructorInlineSuperInThisCaptureVariable(body);\n    body = simplifyConstructorInlineSuperReturn(body, original);\n    if (body !== inputBody) {\n      body = simplifyConstructorElideUnusedThisCapture(body, original);\n    }\n    if (hasSynthesizedSuper) {\n      body = complicateConstructorInjectSuperPresenceCheck(body);\n    }\n    return body;\n  }\n  function isSufficientlyCoveredByReturnStatements(statement) {\n    if (statement.kind === 254 /* ReturnStatement */) {\n      return true;\n    } else if (statement.kind === 246 /* IfStatement */) {\n      const ifStatement = statement;\n      if (ifStatement.elseStatement) {\n        return isSufficientlyCoveredByReturnStatements(ifStatement.thenStatement) && isSufficientlyCoveredByReturnStatements(ifStatement.elseStatement);\n      }\n    } else if (statement.kind === 242 /* Block */) {\n      const lastStatement = lastOrUndefined(statement.statements);\n      if (lastStatement && isSufficientlyCoveredByReturnStatements(lastStatement)) {\n        return true;\n      }\n    }\n    return false;\n  }\n  function createActualThis() {\n    return setEmitFlags(factory2.createThis(), 8 /* NoSubstitution */);\n  }\n  function createDefaultSuperCallOrThis() {\n    return factory2.createLogicalOr(\n      factory2.createLogicalAnd(\n        factory2.createStrictInequality(\n          createSyntheticSuper(),\n          factory2.createNull()\n        ),\n        factory2.createFunctionApplyCall(\n          createSyntheticSuper(),\n          createActualThis(),\n          factory2.createIdentifier(\"arguments\")\n        )\n      ),\n      createActualThis()\n    );\n  }\n  function visitParameter(node) {\n    if (node.dotDotDotToken) {\n      return void 0;\n    } else if (isBindingPattern(node.name)) {\n      return setOriginalNode(\n        setTextRange(\n          factory2.createParameterDeclaration(\n            /*modifiers*/\n            void 0,\n            /*dotDotDotToken*/\n            void 0,\n            factory2.getGeneratedNameForNode(node),\n            /*questionToken*/\n            void 0,\n            /*type*/\n            void 0,\n            /*initializer*/\n            void 0\n          ),\n          /*location*/\n          node\n        ),\n        /*original*/\n        node\n      );\n    } else if (node.initializer) {\n      return setOriginalNode(\n        setTextRange(\n          factory2.createParameterDeclaration(\n            /*modifiers*/\n            void 0,\n            /*dotDotDotToken*/\n            void 0,\n            node.name,\n            /*questionToken*/\n            void 0,\n            /*type*/\n            void 0,\n            /*initializer*/\n            void 0\n          ),\n          /*location*/\n          node\n        ),\n        /*original*/\n        node\n      );\n    } else {\n      return node;\n    }\n  }\n  function hasDefaultValueOrBindingPattern(node) {\n    return node.initializer !== void 0 || isBindingPattern(node.name);\n  }\n  function addDefaultValueAssignmentsIfNeeded2(statements, node) {\n    if (!some(node.parameters, hasDefaultValueOrBindingPattern)) {\n      return false;\n    }\n    let added = false;\n    for (const parameter of node.parameters) {\n      const { name, initializer, dotDotDotToken } = parameter;\n      if (dotDotDotToken) {\n        continue;\n      }\n      if (isBindingPattern(name)) {\n        added = insertDefaultValueAssignmentForBindingPattern(statements, parameter, name, initializer) || added;\n      } else if (initializer) {\n        insertDefaultValueAssignmentForInitializer(statements, parameter, name, initializer);\n        added = true;\n      }\n    }\n    return added;\n  }\n  function insertDefaultValueAssignmentForBindingPattern(statements, parameter, name, initializer) {\n    if (name.elements.length > 0) {\n      insertStatementAfterCustomPrologue(\n        statements,\n        setEmitFlags(\n          factory2.createVariableStatement(\n            /*modifiers*/\n            void 0,\n            factory2.createVariableDeclarationList(\n              flattenDestructuringBinding(\n                parameter,\n                visitor,\n                context,\n                0 /* All */,\n                factory2.getGeneratedNameForNode(parameter)\n              )\n            )\n          ),\n          2097152 /* CustomPrologue */\n        )\n      );\n      return true;\n    } else if (initializer) {\n      insertStatementAfterCustomPrologue(\n        statements,\n        setEmitFlags(\n          factory2.createExpressionStatement(\n            factory2.createAssignment(\n              factory2.getGeneratedNameForNode(parameter),\n              Debug.checkDefined(visitNode(initializer, visitor, isExpression))\n            )\n          ),\n          2097152 /* CustomPrologue */\n        )\n      );\n      return true;\n    }\n    return false;\n  }\n  function insertDefaultValueAssignmentForInitializer(statements, parameter, name, initializer) {\n    initializer = Debug.checkDefined(visitNode(initializer, visitor, isExpression));\n    const statement = factory2.createIfStatement(\n      factory2.createTypeCheck(factory2.cloneNode(name), \"undefined\"),\n      setEmitFlags(\n        setTextRange(\n          factory2.createBlock([\n            factory2.createExpressionStatement(\n              setEmitFlags(\n                setTextRange(\n                  factory2.createAssignment(\n                    // TODO(rbuckton): Does this need to be parented?\n                    setEmitFlags(setParent(setTextRange(factory2.cloneNode(name), name), name.parent), 96 /* NoSourceMap */),\n                    setEmitFlags(initializer, 96 /* NoSourceMap */ | getEmitFlags(initializer) | 3072 /* NoComments */)\n                  ),\n                  parameter\n                ),\n                3072 /* NoComments */\n              )\n            )\n          ]),\n          parameter\n        ),\n        1 /* SingleLine */ | 64 /* NoTrailingSourceMap */ | 768 /* NoTokenSourceMaps */ | 3072 /* NoComments */\n      )\n    );\n    startOnNewLine(statement);\n    setTextRange(statement, parameter);\n    setEmitFlags(statement, 768 /* NoTokenSourceMaps */ | 64 /* NoTrailingSourceMap */ | 2097152 /* CustomPrologue */ | 3072 /* NoComments */);\n    insertStatementAfterCustomPrologue(statements, statement);\n  }\n  function shouldAddRestParameter(node, inConstructorWithSynthesizedSuper) {\n    return !!(node && node.dotDotDotToken && !inConstructorWithSynthesizedSuper);\n  }\n  function addRestParameterIfNeeded(statements, node, inConstructorWithSynthesizedSuper) {\n    const prologueStatements = [];\n    const parameter = lastOrUndefined(node.parameters);\n    if (!shouldAddRestParameter(parameter, inConstructorWithSynthesizedSuper)) {\n      return false;\n    }\n    const declarationName = parameter.name.kind === 80 /* Identifier */ ? setParent(setTextRange(factory2.cloneNode(parameter.name), parameter.name), parameter.name.parent) : factory2.createTempVariable(\n      /*recordTempVariable*/\n      void 0\n    );\n    setEmitFlags(declarationName, 96 /* NoSourceMap */);\n    const expressionName = parameter.name.kind === 80 /* Identifier */ ? factory2.cloneNode(parameter.name) : declarationName;\n    const restIndex = node.parameters.length - 1;\n    const temp = factory2.createLoopVariable();\n    prologueStatements.push(\n      setEmitFlags(\n        setTextRange(\n          factory2.createVariableStatement(\n            /*modifiers*/\n            void 0,\n            factory2.createVariableDeclarationList([\n              factory2.createVariableDeclaration(\n                declarationName,\n                /*exclamationToken*/\n                void 0,\n                /*type*/\n                void 0,\n                factory2.createArrayLiteralExpression([])\n              )\n            ])\n          ),\n          /*location*/\n          parameter\n        ),\n        2097152 /* CustomPrologue */\n      )\n    );\n    const forStatement = factory2.createForStatement(\n      setTextRange(\n        factory2.createVariableDeclarationList([\n          factory2.createVariableDeclaration(\n            temp,\n            /*exclamationToken*/\n            void 0,\n            /*type*/\n            void 0,\n            factory2.createNumericLiteral(restIndex)\n          )\n        ]),\n        parameter\n      ),\n      setTextRange(\n        factory2.createLessThan(\n          temp,\n          factory2.createPropertyAccessExpression(factory2.createIdentifier(\"arguments\"), \"length\")\n        ),\n        parameter\n      ),\n      setTextRange(factory2.createPostfixIncrement(temp), parameter),\n      factory2.createBlock([\n        startOnNewLine(\n          setTextRange(\n            factory2.createExpressionStatement(\n              factory2.createAssignment(\n                factory2.createElementAccessExpression(\n                  expressionName,\n                  restIndex === 0 ? temp : factory2.createSubtract(temp, factory2.createNumericLiteral(restIndex))\n                ),\n                factory2.createElementAccessExpression(factory2.createIdentifier(\"arguments\"), temp)\n              )\n            ),\n            /*location*/\n            parameter\n          )\n        )\n      ])\n    );\n    setEmitFlags(forStatement, 2097152 /* CustomPrologue */);\n    startOnNewLine(forStatement);\n    prologueStatements.push(forStatement);\n    if (parameter.name.kind !== 80 /* Identifier */) {\n      prologueStatements.push(\n        setEmitFlags(\n          setTextRange(\n            factory2.createVariableStatement(\n              /*modifiers*/\n              void 0,\n              factory2.createVariableDeclarationList(\n                flattenDestructuringBinding(parameter, visitor, context, 0 /* All */, expressionName)\n              )\n            ),\n            parameter\n          ),\n          2097152 /* CustomPrologue */\n        )\n      );\n    }\n    insertStatementsAfterCustomPrologue(statements, prologueStatements);\n    return true;\n  }\n  function insertCaptureThisForNodeIfNeeded(statements, node) {\n    if (hierarchyFacts & 131072 /* CapturedLexicalThis */ && node.kind !== 220 /* ArrowFunction */) {\n      insertCaptureThisForNode(statements, node, factory2.createThis());\n      return true;\n    }\n    return false;\n  }\n  function insertCaptureThisForNode(statements, node, initializer) {\n    enableSubstitutionsForCapturedThis();\n    const captureThisStatement = factory2.createVariableStatement(\n      /*modifiers*/\n      void 0,\n      factory2.createVariableDeclarationList([\n        factory2.createVariableDeclaration(\n          createCapturedThis(),\n          /*exclamationToken*/\n          void 0,\n          /*type*/\n          void 0,\n          initializer\n        )\n      ])\n    );\n    setEmitFlags(captureThisStatement, 3072 /* NoComments */ | 2097152 /* CustomPrologue */);\n    setSourceMapRange(captureThisStatement, node);\n    insertStatementAfterCustomPrologue(statements, captureThisStatement);\n  }\n  function insertCaptureNewTargetIfNeeded(statements, node) {\n    if (hierarchyFacts & 32768 /* NewTarget */) {\n      let newTarget;\n      switch (node.kind) {\n        case 220 /* ArrowFunction */:\n          return statements;\n        case 175 /* MethodDeclaration */:\n        case 178 /* GetAccessor */:\n        case 179 /* SetAccessor */:\n          newTarget = factory2.createVoidZero();\n          break;\n        case 177 /* Constructor */:\n          newTarget = factory2.createPropertyAccessExpression(\n            setEmitFlags(factory2.createThis(), 8 /* NoSubstitution */),\n            \"constructor\"\n          );\n          break;\n        case 263 /* FunctionDeclaration */:\n        case 219 /* FunctionExpression */:\n          newTarget = factory2.createConditionalExpression(\n            factory2.createLogicalAnd(\n              setEmitFlags(factory2.createThis(), 8 /* NoSubstitution */),\n              factory2.createBinaryExpression(\n                setEmitFlags(factory2.createThis(), 8 /* NoSubstitution */),\n                104 /* InstanceOfKeyword */,\n                factory2.getLocalName(node)\n              )\n            ),\n            /*questionToken*/\n            void 0,\n            factory2.createPropertyAccessExpression(\n              setEmitFlags(factory2.createThis(), 8 /* NoSubstitution */),\n              \"constructor\"\n            ),\n            /*colonToken*/\n            void 0,\n            factory2.createVoidZero()\n          );\n          break;\n        default:\n          return Debug.failBadSyntaxKind(node);\n      }\n      const captureNewTargetStatement = factory2.createVariableStatement(\n        /*modifiers*/\n        void 0,\n        factory2.createVariableDeclarationList([\n          factory2.createVariableDeclaration(\n            factory2.createUniqueName(\"_newTarget\", 16 /* Optimistic */ | 32 /* FileLevel */),\n            /*exclamationToken*/\n            void 0,\n            /*type*/\n            void 0,\n            newTarget\n          )\n        ])\n      );\n      setEmitFlags(captureNewTargetStatement, 3072 /* NoComments */ | 2097152 /* CustomPrologue */);\n      insertStatementAfterCustomPrologue(statements, captureNewTargetStatement);\n    }\n    return statements;\n  }\n  function addClassMembers(statements, node) {\n    for (const member of node.members) {\n      switch (member.kind) {\n        case 241 /* SemicolonClassElement */:\n          statements.push(transformSemicolonClassElementToStatement(member));\n          break;\n        case 175 /* MethodDeclaration */:\n          statements.push(transformClassMethodDeclarationToStatement(getClassMemberPrefix(node, member), member, node));\n          break;\n        case 178 /* GetAccessor */:\n        case 179 /* SetAccessor */:\n          const accessors = getAllAccessorDeclarations(node.members, member);\n          if (member === accessors.firstAccessor) {\n            statements.push(transformAccessorsToStatement(getClassMemberPrefix(node, member), accessors, node));\n          }\n          break;\n        case 177 /* Constructor */:\n        case 176 /* ClassStaticBlockDeclaration */:\n          break;\n        default:\n          Debug.failBadSyntaxKind(member, currentSourceFile && currentSourceFile.fileName);\n          break;\n      }\n    }\n  }\n  function transformSemicolonClassElementToStatement(member) {\n    return setTextRange(factory2.createEmptyStatement(), member);\n  }\n  function transformClassMethodDeclarationToStatement(receiver, member, container) {\n    const commentRange = getCommentRange(member);\n    const sourceMapRange = getSourceMapRange(member);\n    const memberFunction = transformFunctionLikeToExpression(\n      member,\n      /*location*/\n      member,\n      /*name*/\n      void 0,\n      container\n    );\n    const propertyName = visitNode(member.name, visitor, isPropertyName);\n    Debug.assert(propertyName);\n    let e;\n    if (!isPrivateIdentifier(propertyName) && getUseDefineForClassFields(context.getCompilerOptions())) {\n      const name = isComputedPropertyName(propertyName) ? propertyName.expression : isIdentifier(propertyName) ? factory2.createStringLiteral(unescapeLeadingUnderscores(propertyName.escapedText)) : propertyName;\n      e = factory2.createObjectDefinePropertyCall(receiver, name, factory2.createPropertyDescriptor({ value: memberFunction, enumerable: false, writable: true, configurable: true }));\n    } else {\n      const memberName = createMemberAccessForPropertyName(\n        factory2,\n        receiver,\n        propertyName,\n        /*location*/\n        member.name\n      );\n      e = factory2.createAssignment(memberName, memberFunction);\n    }\n    setEmitFlags(memberFunction, 3072 /* NoComments */);\n    setSourceMapRange(memberFunction, sourceMapRange);\n    const statement = setTextRange(\n      factory2.createExpressionStatement(e),\n      /*location*/\n      member\n    );\n    setOriginalNode(statement, member);\n    setCommentRange(statement, commentRange);\n    setEmitFlags(statement, 96 /* NoSourceMap */);\n    return statement;\n  }\n  function transformAccessorsToStatement(receiver, accessors, container) {\n    const statement = factory2.createExpressionStatement(transformAccessorsToExpression(\n      receiver,\n      accessors,\n      container,\n      /*startsOnNewLine*/\n      false\n    ));\n    setEmitFlags(statement, 3072 /* NoComments */);\n    setSourceMapRange(statement, getSourceMapRange(accessors.firstAccessor));\n    return statement;\n  }\n  function transformAccessorsToExpression(receiver, { firstAccessor, getAccessor, setAccessor }, container, startsOnNewLine) {\n    const target = setParent(setTextRange(factory2.cloneNode(receiver), receiver), receiver.parent);\n    setEmitFlags(target, 3072 /* NoComments */ | 64 /* NoTrailingSourceMap */);\n    setSourceMapRange(target, firstAccessor.name);\n    const visitedAccessorName = visitNode(firstAccessor.name, visitor, isPropertyName);\n    Debug.assert(visitedAccessorName);\n    if (isPrivateIdentifier(visitedAccessorName)) {\n      return Debug.failBadSyntaxKind(visitedAccessorName, \"Encountered unhandled private identifier while transforming ES2015.\");\n    }\n    const propertyName = createExpressionForPropertyName(factory2, visitedAccessorName);\n    setEmitFlags(propertyName, 3072 /* NoComments */ | 32 /* NoLeadingSourceMap */);\n    setSourceMapRange(propertyName, firstAccessor.name);\n    const properties = [];\n    if (getAccessor) {\n      const getterFunction = transformFunctionLikeToExpression(\n        getAccessor,\n        /*location*/\n        void 0,\n        /*name*/\n        void 0,\n        container\n      );\n      setSourceMapRange(getterFunction, getSourceMapRange(getAccessor));\n      setEmitFlags(getterFunction, 1024 /* NoLeadingComments */);\n      const getter = factory2.createPropertyAssignment(\"get\", getterFunction);\n      setCommentRange(getter, getCommentRange(getAccessor));\n      properties.push(getter);\n    }\n    if (setAccessor) {\n      const setterFunction = transformFunctionLikeToExpression(\n        setAccessor,\n        /*location*/\n        void 0,\n        /*name*/\n        void 0,\n        container\n      );\n      setSourceMapRange(setterFunction, getSourceMapRange(setAccessor));\n      setEmitFlags(setterFunction, 1024 /* NoLeadingComments */);\n      const setter = factory2.createPropertyAssignment(\"set\", setterFunction);\n      setCommentRange(setter, getCommentRange(setAccessor));\n      properties.push(setter);\n    }\n    properties.push(\n      factory2.createPropertyAssignment(\"enumerable\", getAccessor || setAccessor ? factory2.createFalse() : factory2.createTrue()),\n      factory2.createPropertyAssignment(\"configurable\", factory2.createTrue())\n    );\n    const call = factory2.createCallExpression(\n      factory2.createPropertyAccessExpression(factory2.createIdentifier(\"Object\"), \"defineProperty\"),\n      /*typeArguments*/\n      void 0,\n      [\n        target,\n        propertyName,\n        factory2.createObjectLiteralExpression(\n          properties,\n          /*multiLine*/\n          true\n        )\n      ]\n    );\n    if (startsOnNewLine) {\n      startOnNewLine(call);\n    }\n    return call;\n  }\n  function visitArrowFunction(node) {\n    if (node.transformFlags & 16384 /* ContainsLexicalThis */ && !(hierarchyFacts & 16384 /* StaticInitializer */)) {\n      hierarchyFacts |= 131072 /* CapturedLexicalThis */;\n    }\n    const savedConvertedLoopState = convertedLoopState;\n    convertedLoopState = void 0;\n    const ancestorFacts = enterSubtree(15232 /* ArrowFunctionExcludes */, 66 /* ArrowFunctionIncludes */);\n    const func = factory2.createFunctionExpression(\n      /*modifiers*/\n      void 0,\n      /*asteriskToken*/\n      void 0,\n      /*name*/\n      void 0,\n      /*typeParameters*/\n      void 0,\n      visitParameterList(node.parameters, visitor, context),\n      /*type*/\n      void 0,\n      transformFunctionBody2(node)\n    );\n    setTextRange(func, node);\n    setOriginalNode(func, node);\n    setEmitFlags(func, 16 /* CapturesThis */);\n    exitSubtree(ancestorFacts, 0 /* ArrowFunctionSubtreeExcludes */, 0 /* None */);\n    convertedLoopState = savedConvertedLoopState;\n    return func;\n  }\n  function visitFunctionExpression(node) {\n    const ancestorFacts = getEmitFlags(node) & 524288 /* AsyncFunctionBody */ ? enterSubtree(32662 /* AsyncFunctionBodyExcludes */, 69 /* AsyncFunctionBodyIncludes */) : enterSubtree(32670 /* FunctionExcludes */, 65 /* FunctionIncludes */);\n    const savedConvertedLoopState = convertedLoopState;\n    convertedLoopState = void 0;\n    const parameters = visitParameterList(node.parameters, visitor, context);\n    const body = transformFunctionBody2(node);\n    const name = hierarchyFacts & 32768 /* NewTarget */ ? factory2.getLocalName(node) : node.name;\n    exitSubtree(ancestorFacts, 229376 /* FunctionSubtreeExcludes */, 0 /* None */);\n    convertedLoopState = savedConvertedLoopState;\n    return factory2.updateFunctionExpression(\n      node,\n      /*modifiers*/\n      void 0,\n      node.asteriskToken,\n      name,\n      /*typeParameters*/\n      void 0,\n      parameters,\n      /*type*/\n      void 0,\n      body\n    );\n  }\n  function visitFunctionDeclaration(node) {\n    const savedConvertedLoopState = convertedLoopState;\n    convertedLoopState = void 0;\n    const ancestorFacts = enterSubtree(32670 /* FunctionExcludes */, 65 /* FunctionIncludes */);\n    const parameters = visitParameterList(node.parameters, visitor, context);\n    const body = transformFunctionBody2(node);\n    const name = hierarchyFacts & 32768 /* NewTarget */ ? factory2.getLocalName(node) : node.name;\n    exitSubtree(ancestorFacts, 229376 /* FunctionSubtreeExcludes */, 0 /* None */);\n    convertedLoopState = savedConvertedLoopState;\n    return factory2.updateFunctionDeclaration(\n      node,\n      visitNodes2(node.modifiers, visitor, isModifier),\n      node.asteriskToken,\n      name,\n      /*typeParameters*/\n      void 0,\n      parameters,\n      /*type*/\n      void 0,\n      body\n    );\n  }\n  function transformFunctionLikeToExpression(node, location, name, container) {\n    const savedConvertedLoopState = convertedLoopState;\n    convertedLoopState = void 0;\n    const ancestorFacts = container && isClassLike(container) && !isStatic(node) ? enterSubtree(32670 /* FunctionExcludes */, 65 /* FunctionIncludes */ | 8 /* NonStaticClassElement */) : enterSubtree(32670 /* FunctionExcludes */, 65 /* FunctionIncludes */);\n    const parameters = visitParameterList(node.parameters, visitor, context);\n    const body = transformFunctionBody2(node);\n    if (hierarchyFacts & 32768 /* NewTarget */ && !name && (node.kind === 263 /* FunctionDeclaration */ || node.kind === 219 /* FunctionExpression */)) {\n      name = factory2.getGeneratedNameForNode(node);\n    }\n    exitSubtree(ancestorFacts, 229376 /* FunctionSubtreeExcludes */, 0 /* None */);\n    convertedLoopState = savedConvertedLoopState;\n    return setOriginalNode(\n      setTextRange(\n        factory2.createFunctionExpression(\n          /*modifiers*/\n          void 0,\n          node.asteriskToken,\n          name,\n          /*typeParameters*/\n          void 0,\n          parameters,\n          /*type*/\n          void 0,\n          body\n        ),\n        location\n      ),\n      /*original*/\n      node\n    );\n  }\n  function transformFunctionBody2(node) {\n    let multiLine = false;\n    let singleLine = false;\n    let statementsLocation;\n    let closeBraceLocation;\n    const prologue = [];\n    const statements = [];\n    const body = node.body;\n    let statementOffset;\n    resumeLexicalEnvironment();\n    if (isBlock(body)) {\n      statementOffset = factory2.copyStandardPrologue(\n        body.statements,\n        prologue,\n        0,\n        /*ensureUseStrict*/\n        false\n      );\n      statementOffset = factory2.copyCustomPrologue(body.statements, statements, statementOffset, visitor, isHoistedFunction);\n      statementOffset = factory2.copyCustomPrologue(body.statements, statements, statementOffset, visitor, isHoistedVariableStatement);\n    }\n    multiLine = addDefaultValueAssignmentsIfNeeded2(statements, node) || multiLine;\n    multiLine = addRestParameterIfNeeded(\n      statements,\n      node,\n      /*inConstructorWithSynthesizedSuper*/\n      false\n    ) || multiLine;\n    if (isBlock(body)) {\n      statementOffset = factory2.copyCustomPrologue(body.statements, statements, statementOffset, visitor);\n      statementsLocation = body.statements;\n      addRange(statements, visitNodes2(body.statements, visitor, isStatement, statementOffset));\n      if (!multiLine && body.multiLine) {\n        multiLine = true;\n      }\n    } else {\n      Debug.assert(node.kind === 220 /* ArrowFunction */);\n      statementsLocation = moveRangeEnd(body, -1);\n      const equalsGreaterThanToken = node.equalsGreaterThanToken;\n      if (!nodeIsSynthesized(equalsGreaterThanToken) && !nodeIsSynthesized(body)) {\n        if (rangeEndIsOnSameLineAsRangeStart(equalsGreaterThanToken, body, currentSourceFile)) {\n          singleLine = true;\n        } else {\n          multiLine = true;\n        }\n      }\n      const expression = visitNode(body, visitor, isExpression);\n      const returnStatement = factory2.createReturnStatement(expression);\n      setTextRange(returnStatement, body);\n      moveSyntheticComments(returnStatement, body);\n      setEmitFlags(returnStatement, 768 /* NoTokenSourceMaps */ | 64 /* NoTrailingSourceMap */ | 2048 /* NoTrailingComments */);\n      statements.push(returnStatement);\n      closeBraceLocation = body;\n    }\n    factory2.mergeLexicalEnvironment(prologue, endLexicalEnvironment());\n    insertCaptureNewTargetIfNeeded(prologue, node);\n    insertCaptureThisForNodeIfNeeded(prologue, node);\n    if (some(prologue)) {\n      multiLine = true;\n    }\n    statements.unshift(...prologue);\n    if (isBlock(body) && arrayIsEqualTo(statements, body.statements)) {\n      return body;\n    }\n    const block = factory2.createBlock(setTextRange(factory2.createNodeArray(statements), statementsLocation), multiLine);\n    setTextRange(block, node.body);\n    if (!multiLine && singleLine) {\n      setEmitFlags(block, 1 /* SingleLine */);\n    }\n    if (closeBraceLocation) {\n      setTokenSourceMapRange(block, 20 /* CloseBraceToken */, closeBraceLocation);\n    }\n    setOriginalNode(block, node.body);\n    return block;\n  }\n  function visitBlock(node, isFunctionBody2) {\n    if (isFunctionBody2) {\n      return visitEachChild(node, visitor, context);\n    }\n    const ancestorFacts = hierarchyFacts & 256 /* IterationStatement */ ? enterSubtree(7104 /* IterationStatementBlockExcludes */, 512 /* IterationStatementBlockIncludes */) : enterSubtree(6976 /* BlockExcludes */, 128 /* BlockIncludes */);\n    const updated = visitEachChild(node, visitor, context);\n    exitSubtree(ancestorFacts, 0 /* None */, 0 /* None */);\n    return updated;\n  }\n  function visitExpressionStatement(node) {\n    return visitEachChild(node, visitorWithUnusedExpressionResult, context);\n  }\n  function visitParenthesizedExpression(node, expressionResultIsUnused2) {\n    return visitEachChild(node, expressionResultIsUnused2 ? visitorWithUnusedExpressionResult : visitor, context);\n  }\n  function visitBinaryExpression(node, expressionResultIsUnused2) {\n    if (isDestructuringAssignment(node)) {\n      return flattenDestructuringAssignment(\n        node,\n        visitor,\n        context,\n        0 /* All */,\n        !expressionResultIsUnused2\n      );\n    }\n    if (node.operatorToken.kind === 28 /* CommaToken */) {\n      return factory2.updateBinaryExpression(\n        node,\n        Debug.checkDefined(visitNode(node.left, visitorWithUnusedExpressionResult, isExpression)),\n        node.operatorToken,\n        Debug.checkDefined(visitNode(node.right, expressionResultIsUnused2 ? visitorWithUnusedExpressionResult : visitor, isExpression))\n      );\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitCommaListExpression(node, expressionResultIsUnused2) {\n    if (expressionResultIsUnused2) {\n      return visitEachChild(node, visitorWithUnusedExpressionResult, context);\n    }\n    let result;\n    for (let i = 0; i < node.elements.length; i++) {\n      const element = node.elements[i];\n      const visited = visitNode(element, i < node.elements.length - 1 ? visitorWithUnusedExpressionResult : visitor, isExpression);\n      if (result || visited !== element) {\n        result || (result = node.elements.slice(0, i));\n        Debug.assert(visited);\n        result.push(visited);\n      }\n    }\n    const elements = result ? setTextRange(factory2.createNodeArray(result), node.elements) : node.elements;\n    return factory2.updateCommaListExpression(node, elements);\n  }\n  function isVariableStatementOfTypeScriptClassWrapper(node) {\n    return node.declarationList.declarations.length === 1 && !!node.declarationList.declarations[0].initializer && !!(getInternalEmitFlags(node.declarationList.declarations[0].initializer) & 1 /* TypeScriptClassWrapper */);\n  }\n  function visitVariableStatement(node) {\n    const ancestorFacts = enterSubtree(0 /* None */, hasSyntacticModifier(node, 32 /* Export */) ? 32 /* ExportedVariableStatement */ : 0 /* None */);\n    let updated;\n    if (convertedLoopState && (node.declarationList.flags & 7 /* BlockScoped */) === 0 && !isVariableStatementOfTypeScriptClassWrapper(node)) {\n      let assignments;\n      for (const decl of node.declarationList.declarations) {\n        hoistVariableDeclarationDeclaredInConvertedLoop(convertedLoopState, decl);\n        if (decl.initializer) {\n          let assignment;\n          if (isBindingPattern(decl.name)) {\n            assignment = flattenDestructuringAssignment(\n              decl,\n              visitor,\n              context,\n              0 /* All */\n            );\n          } else {\n            assignment = factory2.createBinaryExpression(decl.name, 64 /* EqualsToken */, Debug.checkDefined(visitNode(decl.initializer, visitor, isExpression)));\n            setTextRange(assignment, decl);\n          }\n          assignments = append(assignments, assignment);\n        }\n      }\n      if (assignments) {\n        updated = setTextRange(factory2.createExpressionStatement(factory2.inlineExpressions(assignments)), node);\n      } else {\n        updated = void 0;\n      }\n    } else {\n      updated = visitEachChild(node, visitor, context);\n    }\n    exitSubtree(ancestorFacts, 0 /* None */, 0 /* None */);\n    return updated;\n  }\n  function visitVariableDeclarationList(node) {\n    if (node.flags & 7 /* BlockScoped */ || node.transformFlags & 524288 /* ContainsBindingPattern */) {\n      if (node.flags & 7 /* BlockScoped */) {\n        enableSubstitutionsForBlockScopedBindings();\n      }\n      const declarations = visitNodes2(\n        node.declarations,\n        node.flags & 1 /* Let */ ? visitVariableDeclarationInLetDeclarationList : visitVariableDeclaration,\n        isVariableDeclaration\n      );\n      const declarationList = factory2.createVariableDeclarationList(declarations);\n      setOriginalNode(declarationList, node);\n      setTextRange(declarationList, node);\n      setCommentRange(declarationList, node);\n      if (node.transformFlags & 524288 /* ContainsBindingPattern */ && (isBindingPattern(node.declarations[0].name) || isBindingPattern(last(node.declarations).name))) {\n        setSourceMapRange(declarationList, getRangeUnion(declarations));\n      }\n      return declarationList;\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function getRangeUnion(declarations) {\n    let pos = -1, end = -1;\n    for (const node of declarations) {\n      pos = pos === -1 ? node.pos : node.pos === -1 ? pos : Math.min(pos, node.pos);\n      end = Math.max(end, node.end);\n    }\n    return createRange(pos, end);\n  }\n  function shouldEmitExplicitInitializerForLetDeclaration(node) {\n    const isCapturedInFunction = resolver.hasNodeCheckFlag(node, 16384 /* CapturedBlockScopedBinding */);\n    const isDeclaredInLoop = resolver.hasNodeCheckFlag(node, 32768 /* BlockScopedBindingInLoop */);\n    const emittedAsTopLevel = (hierarchyFacts & 64 /* TopLevel */) !== 0 || isCapturedInFunction && isDeclaredInLoop && (hierarchyFacts & 512 /* IterationStatementBlock */) !== 0;\n    const emitExplicitInitializer = !emittedAsTopLevel && (hierarchyFacts & 4096 /* ForInOrForOfStatement */) === 0 && (!resolver.isDeclarationWithCollidingName(node) || isDeclaredInLoop && !isCapturedInFunction && (hierarchyFacts & (2048 /* ForStatement */ | 4096 /* ForInOrForOfStatement */)) === 0);\n    return emitExplicitInitializer;\n  }\n  function visitVariableDeclarationInLetDeclarationList(node) {\n    const name = node.name;\n    if (isBindingPattern(name)) {\n      return visitVariableDeclaration(node);\n    }\n    if (!node.initializer && shouldEmitExplicitInitializerForLetDeclaration(node)) {\n      return factory2.updateVariableDeclaration(\n        node,\n        node.name,\n        /*exclamationToken*/\n        void 0,\n        /*type*/\n        void 0,\n        factory2.createVoidZero()\n      );\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitVariableDeclaration(node) {\n    const ancestorFacts = enterSubtree(32 /* ExportedVariableStatement */, 0 /* None */);\n    let updated;\n    if (isBindingPattern(node.name)) {\n      updated = flattenDestructuringBinding(\n        node,\n        visitor,\n        context,\n        0 /* All */,\n        /*rval*/\n        void 0,\n        (ancestorFacts & 32 /* ExportedVariableStatement */) !== 0\n      );\n    } else {\n      updated = visitEachChild(node, visitor, context);\n    }\n    exitSubtree(ancestorFacts, 0 /* None */, 0 /* None */);\n    return updated;\n  }\n  function recordLabel(node) {\n    convertedLoopState.labels.set(idText(node.label), true);\n  }\n  function resetLabel(node) {\n    convertedLoopState.labels.set(idText(node.label), false);\n  }\n  function visitLabeledStatement(node) {\n    if (convertedLoopState && !convertedLoopState.labels) {\n      convertedLoopState.labels = /* @__PURE__ */ new Map();\n    }\n    const statement = unwrapInnermostStatementOfLabel(node, convertedLoopState && recordLabel);\n    return isIterationStatement(\n      statement,\n      /*lookInLabeledStatements*/\n      false\n    ) ? visitIterationStatement(\n      statement,\n      /*outermostLabeledStatement*/\n      node\n    ) : factory2.restoreEnclosingLabel(visitNode(statement, visitor, isStatement, factory2.liftToBlock) ?? setTextRange(factory2.createEmptyStatement(), statement), node, convertedLoopState && resetLabel);\n  }\n  function visitIterationStatement(node, outermostLabeledStatement) {\n    switch (node.kind) {\n      case 247 /* DoStatement */:\n      case 248 /* WhileStatement */:\n        return visitDoOrWhileStatement(node, outermostLabeledStatement);\n      case 249 /* ForStatement */:\n        return visitForStatement(node, outermostLabeledStatement);\n      case 250 /* ForInStatement */:\n        return visitForInStatement(node, outermostLabeledStatement);\n      case 251 /* ForOfStatement */:\n        return visitForOfStatement(node, outermostLabeledStatement);\n    }\n  }\n  function visitIterationStatementWithFacts(excludeFacts, includeFacts, node, outermostLabeledStatement, convert) {\n    const ancestorFacts = enterSubtree(excludeFacts, includeFacts);\n    const updated = convertIterationStatementBodyIfNecessary(node, outermostLabeledStatement, ancestorFacts, convert);\n    exitSubtree(ancestorFacts, 0 /* None */, 0 /* None */);\n    return updated;\n  }\n  function visitDoOrWhileStatement(node, outermostLabeledStatement) {\n    return visitIterationStatementWithFacts(\n      0 /* DoOrWhileStatementExcludes */,\n      1280 /* DoOrWhileStatementIncludes */,\n      node,\n      outermostLabeledStatement\n    );\n  }\n  function visitForStatement(node, outermostLabeledStatement) {\n    return visitIterationStatementWithFacts(\n      5056 /* ForStatementExcludes */,\n      3328 /* ForStatementIncludes */,\n      node,\n      outermostLabeledStatement\n    );\n  }\n  function visitEachChildOfForStatement2(node) {\n    return factory2.updateForStatement(\n      node,\n      visitNode(node.initializer, visitorWithUnusedExpressionResult, isForInitializer),\n      visitNode(node.condition, visitor, isExpression),\n      visitNode(node.incrementor, visitorWithUnusedExpressionResult, isExpression),\n      Debug.checkDefined(visitNode(node.statement, visitor, isStatement, factory2.liftToBlock))\n    );\n  }\n  function visitForInStatement(node, outermostLabeledStatement) {\n    return visitIterationStatementWithFacts(\n      3008 /* ForInOrForOfStatementExcludes */,\n      5376 /* ForInOrForOfStatementIncludes */,\n      node,\n      outermostLabeledStatement\n    );\n  }\n  function visitForOfStatement(node, outermostLabeledStatement) {\n    return visitIterationStatementWithFacts(\n      3008 /* ForInOrForOfStatementExcludes */,\n      5376 /* ForInOrForOfStatementIncludes */,\n      node,\n      outermostLabeledStatement,\n      compilerOptions.downlevelIteration ? convertForOfStatementForIterable : convertForOfStatementForArray\n    );\n  }\n  function convertForOfStatementHead(node, boundValue, convertedLoopBodyStatements) {\n    const statements = [];\n    const initializer = node.initializer;\n    if (isVariableDeclarationList(initializer)) {\n      if (node.initializer.flags & 7 /* BlockScoped */) {\n        enableSubstitutionsForBlockScopedBindings();\n      }\n      const firstOriginalDeclaration = firstOrUndefined(initializer.declarations);\n      if (firstOriginalDeclaration && isBindingPattern(firstOriginalDeclaration.name)) {\n        const declarations = flattenDestructuringBinding(\n          firstOriginalDeclaration,\n          visitor,\n          context,\n          0 /* All */,\n          boundValue\n        );\n        const declarationList = setTextRange(factory2.createVariableDeclarationList(declarations), node.initializer);\n        setOriginalNode(declarationList, node.initializer);\n        setSourceMapRange(declarationList, createRange(declarations[0].pos, last(declarations).end));\n        statements.push(\n          factory2.createVariableStatement(\n            /*modifiers*/\n            void 0,\n            declarationList\n          )\n        );\n      } else {\n        statements.push(\n          setTextRange(\n            factory2.createVariableStatement(\n              /*modifiers*/\n              void 0,\n              setOriginalNode(\n                setTextRange(\n                  factory2.createVariableDeclarationList([\n                    factory2.createVariableDeclaration(\n                      firstOriginalDeclaration ? firstOriginalDeclaration.name : factory2.createTempVariable(\n                        /*recordTempVariable*/\n                        void 0\n                      ),\n                      /*exclamationToken*/\n                      void 0,\n                      /*type*/\n                      void 0,\n                      boundValue\n                    )\n                  ]),\n                  moveRangePos(initializer, -1)\n                ),\n                initializer\n              )\n            ),\n            moveRangeEnd(initializer, -1)\n          )\n        );\n      }\n    } else {\n      const assignment = factory2.createAssignment(initializer, boundValue);\n      if (isDestructuringAssignment(assignment)) {\n        statements.push(factory2.createExpressionStatement(visitBinaryExpression(\n          assignment,\n          /*expressionResultIsUnused*/\n          true\n        )));\n      } else {\n        setTextRangeEnd(assignment, initializer.end);\n        statements.push(setTextRange(factory2.createExpressionStatement(Debug.checkDefined(visitNode(assignment, visitor, isExpression))), moveRangeEnd(initializer, -1)));\n      }\n    }\n    if (convertedLoopBodyStatements) {\n      return createSyntheticBlockForConvertedStatements(addRange(statements, convertedLoopBodyStatements));\n    } else {\n      const statement = visitNode(node.statement, visitor, isStatement, factory2.liftToBlock);\n      Debug.assert(statement);\n      if (isBlock(statement)) {\n        return factory2.updateBlock(statement, setTextRange(factory2.createNodeArray(concatenate(statements, statement.statements)), statement.statements));\n      } else {\n        statements.push(statement);\n        return createSyntheticBlockForConvertedStatements(statements);\n      }\n    }\n  }\n  function createSyntheticBlockForConvertedStatements(statements) {\n    return setEmitFlags(\n      factory2.createBlock(\n        factory2.createNodeArray(statements),\n        /*multiLine*/\n        true\n      ),\n      96 /* NoSourceMap */ | 768 /* NoTokenSourceMaps */\n    );\n  }\n  function convertForOfStatementForArray(node, outermostLabeledStatement, convertedLoopBodyStatements) {\n    const expression = visitNode(node.expression, visitor, isExpression);\n    Debug.assert(expression);\n    const counter = factory2.createLoopVariable();\n    const rhsReference = isIdentifier(expression) ? factory2.getGeneratedNameForNode(expression) : factory2.createTempVariable(\n      /*recordTempVariable*/\n      void 0\n    );\n    setEmitFlags(expression, 96 /* NoSourceMap */ | getEmitFlags(expression));\n    const forStatement = setTextRange(\n      factory2.createForStatement(\n        /*initializer*/\n        setEmitFlags(\n          setTextRange(\n            factory2.createVariableDeclarationList([\n              setTextRange(factory2.createVariableDeclaration(\n                counter,\n                /*exclamationToken*/\n                void 0,\n                /*type*/\n                void 0,\n                factory2.createNumericLiteral(0)\n              ), moveRangePos(node.expression, -1)),\n              setTextRange(factory2.createVariableDeclaration(\n                rhsReference,\n                /*exclamationToken*/\n                void 0,\n                /*type*/\n                void 0,\n                expression\n              ), node.expression)\n            ]),\n            node.expression\n          ),\n          4194304 /* NoHoisting */\n        ),\n        /*condition*/\n        setTextRange(\n          factory2.createLessThan(\n            counter,\n            factory2.createPropertyAccessExpression(rhsReference, \"length\")\n          ),\n          node.expression\n        ),\n        /*incrementor*/\n        setTextRange(factory2.createPostfixIncrement(counter), node.expression),\n        /*statement*/\n        convertForOfStatementHead(\n          node,\n          factory2.createElementAccessExpression(rhsReference, counter),\n          convertedLoopBodyStatements\n        )\n      ),\n      /*location*/\n      node\n    );\n    setEmitFlags(forStatement, 512 /* NoTokenTrailingSourceMaps */);\n    setTextRange(forStatement, node);\n    return factory2.restoreEnclosingLabel(forStatement, outermostLabeledStatement, convertedLoopState && resetLabel);\n  }\n  function convertForOfStatementForIterable(node, outermostLabeledStatement, convertedLoopBodyStatements, ancestorFacts) {\n    const expression = visitNode(node.expression, visitor, isExpression);\n    Debug.assert(expression);\n    const iterator = isIdentifier(expression) ? factory2.getGeneratedNameForNode(expression) : factory2.createTempVariable(\n      /*recordTempVariable*/\n      void 0\n    );\n    const result = isIdentifier(expression) ? factory2.getGeneratedNameForNode(iterator) : factory2.createTempVariable(\n      /*recordTempVariable*/\n      void 0\n    );\n    const errorRecord = factory2.createUniqueName(\"e\");\n    const catchVariable = factory2.getGeneratedNameForNode(errorRecord);\n    const returnMethod = factory2.createTempVariable(\n      /*recordTempVariable*/\n      void 0\n    );\n    const values = setTextRange(emitHelpers().createValuesHelper(expression), node.expression);\n    const next = factory2.createCallExpression(\n      factory2.createPropertyAccessExpression(iterator, \"next\"),\n      /*typeArguments*/\n      void 0,\n      []\n    );\n    hoistVariableDeclaration(errorRecord);\n    hoistVariableDeclaration(returnMethod);\n    const initializer = ancestorFacts & 1024 /* IterationContainer */ ? factory2.inlineExpressions([factory2.createAssignment(errorRecord, factory2.createVoidZero()), values]) : values;\n    const forStatement = setEmitFlags(\n      setTextRange(\n        factory2.createForStatement(\n          /*initializer*/\n          setEmitFlags(\n            setTextRange(\n              factory2.createVariableDeclarationList([\n                setTextRange(factory2.createVariableDeclaration(\n                  iterator,\n                  /*exclamationToken*/\n                  void 0,\n                  /*type*/\n                  void 0,\n                  initializer\n                ), node.expression),\n                factory2.createVariableDeclaration(\n                  result,\n                  /*exclamationToken*/\n                  void 0,\n                  /*type*/\n                  void 0,\n                  next\n                )\n              ]),\n              node.expression\n            ),\n            4194304 /* NoHoisting */\n          ),\n          /*condition*/\n          factory2.createLogicalNot(factory2.createPropertyAccessExpression(result, \"done\")),\n          /*incrementor*/\n          factory2.createAssignment(result, next),\n          /*statement*/\n          convertForOfStatementHead(\n            node,\n            factory2.createPropertyAccessExpression(result, \"value\"),\n            convertedLoopBodyStatements\n          )\n        ),\n        /*location*/\n        node\n      ),\n      512 /* NoTokenTrailingSourceMaps */\n    );\n    return factory2.createTryStatement(\n      factory2.createBlock([\n        factory2.restoreEnclosingLabel(\n          forStatement,\n          outermostLabeledStatement,\n          convertedLoopState && resetLabel\n        )\n      ]),\n      factory2.createCatchClause(\n        factory2.createVariableDeclaration(catchVariable),\n        setEmitFlags(\n          factory2.createBlock([\n            factory2.createExpressionStatement(\n              factory2.createAssignment(\n                errorRecord,\n                factory2.createObjectLiteralExpression([\n                  factory2.createPropertyAssignment(\"error\", catchVariable)\n                ])\n              )\n            )\n          ]),\n          1 /* SingleLine */\n        )\n      ),\n      factory2.createBlock([\n        factory2.createTryStatement(\n          /*tryBlock*/\n          factory2.createBlock([\n            setEmitFlags(\n              factory2.createIfStatement(\n                factory2.createLogicalAnd(\n                  factory2.createLogicalAnd(\n                    result,\n                    factory2.createLogicalNot(\n                      factory2.createPropertyAccessExpression(result, \"done\")\n                    )\n                  ),\n                  factory2.createAssignment(\n                    returnMethod,\n                    factory2.createPropertyAccessExpression(iterator, \"return\")\n                  )\n                ),\n                factory2.createExpressionStatement(\n                  factory2.createFunctionCallCall(returnMethod, iterator, [])\n                )\n              ),\n              1 /* SingleLine */\n            )\n          ]),\n          /*catchClause*/\n          void 0,\n          /*finallyBlock*/\n          setEmitFlags(\n            factory2.createBlock([\n              setEmitFlags(\n                factory2.createIfStatement(\n                  errorRecord,\n                  factory2.createThrowStatement(\n                    factory2.createPropertyAccessExpression(errorRecord, \"error\")\n                  )\n                ),\n                1 /* SingleLine */\n              )\n            ]),\n            1 /* SingleLine */\n          )\n        )\n      ])\n    );\n  }\n  function visitObjectLiteralExpression(node) {\n    const properties = node.properties;\n    let numInitialProperties = -1, hasComputed = false;\n    for (let i = 0; i < properties.length; i++) {\n      const property = properties[i];\n      if (property.transformFlags & 1048576 /* ContainsYield */ && hierarchyFacts & 4 /* AsyncFunctionBody */ || (hasComputed = Debug.checkDefined(property.name).kind === 168 /* ComputedPropertyName */)) {\n        numInitialProperties = i;\n        break;\n      }\n    }\n    if (numInitialProperties < 0) {\n      return visitEachChild(node, visitor, context);\n    }\n    const temp = factory2.createTempVariable(hoistVariableDeclaration);\n    const expressions = [];\n    const assignment = factory2.createAssignment(\n      temp,\n      setEmitFlags(\n        factory2.createObjectLiteralExpression(\n          visitNodes2(properties, visitor, isObjectLiteralElementLike, 0, numInitialProperties),\n          node.multiLine\n        ),\n        hasComputed ? 131072 /* Indented */ : 0\n      )\n    );\n    if (node.multiLine) {\n      startOnNewLine(assignment);\n    }\n    expressions.push(assignment);\n    addObjectLiteralMembers(expressions, node, temp, numInitialProperties);\n    expressions.push(node.multiLine ? startOnNewLine(setParent(setTextRange(factory2.cloneNode(temp), temp), temp.parent)) : temp);\n    return factory2.inlineExpressions(expressions);\n  }\n  function shouldConvertPartOfIterationStatement(node) {\n    return resolver.hasNodeCheckFlag(node, 8192 /* ContainsCapturedBlockScopeBinding */);\n  }\n  function shouldConvertInitializerOfForStatement(node) {\n    return isForStatement(node) && !!node.initializer && shouldConvertPartOfIterationStatement(node.initializer);\n  }\n  function shouldConvertConditionOfForStatement(node) {\n    return isForStatement(node) && !!node.condition && shouldConvertPartOfIterationStatement(node.condition);\n  }\n  function shouldConvertIncrementorOfForStatement(node) {\n    return isForStatement(node) && !!node.incrementor && shouldConvertPartOfIterationStatement(node.incrementor);\n  }\n  function shouldConvertIterationStatement(node) {\n    return shouldConvertBodyOfIterationStatement(node) || shouldConvertInitializerOfForStatement(node);\n  }\n  function shouldConvertBodyOfIterationStatement(node) {\n    return resolver.hasNodeCheckFlag(node, 4096 /* LoopWithCapturedBlockScopedBinding */);\n  }\n  function hoistVariableDeclarationDeclaredInConvertedLoop(state, node) {\n    if (!state.hoistedLocalVariables) {\n      state.hoistedLocalVariables = [];\n    }\n    visit(node.name);\n    function visit(node2) {\n      if (node2.kind === 80 /* Identifier */) {\n        state.hoistedLocalVariables.push(node2);\n      } else {\n        for (const element of node2.elements) {\n          if (!isOmittedExpression(element)) {\n            visit(element.name);\n          }\n        }\n      }\n    }\n  }\n  function convertIterationStatementBodyIfNecessary(node, outermostLabeledStatement, ancestorFacts, convert) {\n    if (!shouldConvertIterationStatement(node)) {\n      let saveAllowedNonLabeledJumps;\n      if (convertedLoopState) {\n        saveAllowedNonLabeledJumps = convertedLoopState.allowedNonLabeledJumps;\n        convertedLoopState.allowedNonLabeledJumps = 2 /* Break */ | 4 /* Continue */;\n      }\n      const result = convert ? convert(\n        node,\n        outermostLabeledStatement,\n        /*convertedLoopBodyStatements*/\n        void 0,\n        ancestorFacts\n      ) : factory2.restoreEnclosingLabel(\n        isForStatement(node) ? visitEachChildOfForStatement2(node) : visitEachChild(node, visitor, context),\n        outermostLabeledStatement,\n        convertedLoopState && resetLabel\n      );\n      if (convertedLoopState) {\n        convertedLoopState.allowedNonLabeledJumps = saveAllowedNonLabeledJumps;\n      }\n      return result;\n    }\n    const currentState = createConvertedLoopState(node);\n    const statements = [];\n    const outerConvertedLoopState = convertedLoopState;\n    convertedLoopState = currentState;\n    const initializerFunction = shouldConvertInitializerOfForStatement(node) ? createFunctionForInitializerOfForStatement(node, currentState) : void 0;\n    const bodyFunction = shouldConvertBodyOfIterationStatement(node) ? createFunctionForBodyOfIterationStatement(node, currentState, outerConvertedLoopState) : void 0;\n    convertedLoopState = outerConvertedLoopState;\n    if (initializerFunction) statements.push(initializerFunction.functionDeclaration);\n    if (bodyFunction) statements.push(bodyFunction.functionDeclaration);\n    addExtraDeclarationsForConvertedLoop(statements, currentState, outerConvertedLoopState);\n    if (initializerFunction) {\n      statements.push(generateCallToConvertedLoopInitializer(initializerFunction.functionName, initializerFunction.containsYield));\n    }\n    let loop;\n    if (bodyFunction) {\n      if (convert) {\n        loop = convert(node, outermostLabeledStatement, bodyFunction.part, ancestorFacts);\n      } else {\n        const clone2 = convertIterationStatementCore(node, initializerFunction, factory2.createBlock(\n          bodyFunction.part,\n          /*multiLine*/\n          true\n        ));\n        loop = factory2.restoreEnclosingLabel(clone2, outermostLabeledStatement, convertedLoopState && resetLabel);\n      }\n    } else {\n      const clone2 = convertIterationStatementCore(node, initializerFunction, Debug.checkDefined(visitNode(node.statement, visitor, isStatement, factory2.liftToBlock)));\n      loop = factory2.restoreEnclosingLabel(clone2, outermostLabeledStatement, convertedLoopState && resetLabel);\n    }\n    statements.push(loop);\n    return statements;\n  }\n  function convertIterationStatementCore(node, initializerFunction, convertedLoopBody) {\n    switch (node.kind) {\n      case 249 /* ForStatement */:\n        return convertForStatement(node, initializerFunction, convertedLoopBody);\n      case 250 /* ForInStatement */:\n        return convertForInStatement(node, convertedLoopBody);\n      case 251 /* ForOfStatement */:\n        return convertForOfStatement(node, convertedLoopBody);\n      case 247 /* DoStatement */:\n        return convertDoStatement(node, convertedLoopBody);\n      case 248 /* WhileStatement */:\n        return convertWhileStatement(node, convertedLoopBody);\n      default:\n        return Debug.failBadSyntaxKind(node, \"IterationStatement expected\");\n    }\n  }\n  function convertForStatement(node, initializerFunction, convertedLoopBody) {\n    const shouldConvertCondition = node.condition && shouldConvertPartOfIterationStatement(node.condition);\n    const shouldConvertIncrementor = shouldConvertCondition || node.incrementor && shouldConvertPartOfIterationStatement(node.incrementor);\n    return factory2.updateForStatement(\n      node,\n      visitNode(initializerFunction ? initializerFunction.part : node.initializer, visitorWithUnusedExpressionResult, isForInitializer),\n      visitNode(shouldConvertCondition ? void 0 : node.condition, visitor, isExpression),\n      visitNode(shouldConvertIncrementor ? void 0 : node.incrementor, visitorWithUnusedExpressionResult, isExpression),\n      convertedLoopBody\n    );\n  }\n  function convertForOfStatement(node, convertedLoopBody) {\n    return factory2.updateForOfStatement(\n      node,\n      /*awaitModifier*/\n      void 0,\n      Debug.checkDefined(visitNode(node.initializer, visitor, isForInitializer)),\n      Debug.checkDefined(visitNode(node.expression, visitor, isExpression)),\n      convertedLoopBody\n    );\n  }\n  function convertForInStatement(node, convertedLoopBody) {\n    return factory2.updateForInStatement(\n      node,\n      Debug.checkDefined(visitNode(node.initializer, visitor, isForInitializer)),\n      Debug.checkDefined(visitNode(node.expression, visitor, isExpression)),\n      convertedLoopBody\n    );\n  }\n  function convertDoStatement(node, convertedLoopBody) {\n    return factory2.updateDoStatement(\n      node,\n      convertedLoopBody,\n      Debug.checkDefined(visitNode(node.expression, visitor, isExpression))\n    );\n  }\n  function convertWhileStatement(node, convertedLoopBody) {\n    return factory2.updateWhileStatement(\n      node,\n      Debug.checkDefined(visitNode(node.expression, visitor, isExpression)),\n      convertedLoopBody\n    );\n  }\n  function createConvertedLoopState(node) {\n    let loopInitializer;\n    switch (node.kind) {\n      case 249 /* ForStatement */:\n      case 250 /* ForInStatement */:\n      case 251 /* ForOfStatement */:\n        const initializer = node.initializer;\n        if (initializer && initializer.kind === 262 /* VariableDeclarationList */) {\n          loopInitializer = initializer;\n        }\n        break;\n    }\n    const loopParameters = [];\n    const loopOutParameters = [];\n    if (loopInitializer && getCombinedNodeFlags(loopInitializer) & 7 /* BlockScoped */) {\n      const hasCapturedBindingsInForHead = shouldConvertInitializerOfForStatement(node) || shouldConvertConditionOfForStatement(node) || shouldConvertIncrementorOfForStatement(node);\n      for (const decl of loopInitializer.declarations) {\n        processLoopVariableDeclaration(node, decl, loopParameters, loopOutParameters, hasCapturedBindingsInForHead);\n      }\n    }\n    const currentState = { loopParameters, loopOutParameters };\n    if (convertedLoopState) {\n      if (convertedLoopState.argumentsName) {\n        currentState.argumentsName = convertedLoopState.argumentsName;\n      }\n      if (convertedLoopState.thisName) {\n        currentState.thisName = convertedLoopState.thisName;\n      }\n      if (convertedLoopState.hoistedLocalVariables) {\n        currentState.hoistedLocalVariables = convertedLoopState.hoistedLocalVariables;\n      }\n    }\n    return currentState;\n  }\n  function addExtraDeclarationsForConvertedLoop(statements, state, outerState) {\n    let extraVariableDeclarations;\n    if (state.argumentsName) {\n      if (outerState) {\n        outerState.argumentsName = state.argumentsName;\n      } else {\n        (extraVariableDeclarations || (extraVariableDeclarations = [])).push(\n          factory2.createVariableDeclaration(\n            state.argumentsName,\n            /*exclamationToken*/\n            void 0,\n            /*type*/\n            void 0,\n            factory2.createIdentifier(\"arguments\")\n          )\n        );\n      }\n    }\n    if (state.thisName) {\n      if (outerState) {\n        outerState.thisName = state.thisName;\n      } else {\n        (extraVariableDeclarations || (extraVariableDeclarations = [])).push(\n          factory2.createVariableDeclaration(\n            state.thisName,\n            /*exclamationToken*/\n            void 0,\n            /*type*/\n            void 0,\n            factory2.createIdentifier(\"this\")\n          )\n        );\n      }\n    }\n    if (state.hoistedLocalVariables) {\n      if (outerState) {\n        outerState.hoistedLocalVariables = state.hoistedLocalVariables;\n      } else {\n        if (!extraVariableDeclarations) {\n          extraVariableDeclarations = [];\n        }\n        for (const identifier of state.hoistedLocalVariables) {\n          extraVariableDeclarations.push(factory2.createVariableDeclaration(identifier));\n        }\n      }\n    }\n    if (state.loopOutParameters.length) {\n      if (!extraVariableDeclarations) {\n        extraVariableDeclarations = [];\n      }\n      for (const outParam of state.loopOutParameters) {\n        extraVariableDeclarations.push(factory2.createVariableDeclaration(outParam.outParamName));\n      }\n    }\n    if (state.conditionVariable) {\n      if (!extraVariableDeclarations) {\n        extraVariableDeclarations = [];\n      }\n      extraVariableDeclarations.push(factory2.createVariableDeclaration(\n        state.conditionVariable,\n        /*exclamationToken*/\n        void 0,\n        /*type*/\n        void 0,\n        factory2.createFalse()\n      ));\n    }\n    if (extraVariableDeclarations) {\n      statements.push(factory2.createVariableStatement(\n        /*modifiers*/\n        void 0,\n        factory2.createVariableDeclarationList(extraVariableDeclarations)\n      ));\n    }\n  }\n  function createOutVariable(p) {\n    return factory2.createVariableDeclaration(\n      p.originalName,\n      /*exclamationToken*/\n      void 0,\n      /*type*/\n      void 0,\n      p.outParamName\n    );\n  }\n  function createFunctionForInitializerOfForStatement(node, currentState) {\n    const functionName = factory2.createUniqueName(\"_loop_init\");\n    const containsYield = (node.initializer.transformFlags & 1048576 /* ContainsYield */) !== 0;\n    let emitFlags = 0 /* None */;\n    if (currentState.containsLexicalThis) emitFlags |= 16 /* CapturesThis */;\n    if (containsYield && hierarchyFacts & 4 /* AsyncFunctionBody */) emitFlags |= 524288 /* AsyncFunctionBody */;\n    const statements = [];\n    statements.push(factory2.createVariableStatement(\n      /*modifiers*/\n      void 0,\n      node.initializer\n    ));\n    copyOutParameters(currentState.loopOutParameters, 2 /* Initializer */, 1 /* ToOutParameter */, statements);\n    const functionDeclaration = factory2.createVariableStatement(\n      /*modifiers*/\n      void 0,\n      setEmitFlags(\n        factory2.createVariableDeclarationList([\n          factory2.createVariableDeclaration(\n            functionName,\n            /*exclamationToken*/\n            void 0,\n            /*type*/\n            void 0,\n            setEmitFlags(\n              factory2.createFunctionExpression(\n                /*modifiers*/\n                void 0,\n                containsYield ? factory2.createToken(42 /* AsteriskToken */) : void 0,\n                /*name*/\n                void 0,\n                /*typeParameters*/\n                void 0,\n                /*parameters*/\n                void 0,\n                /*type*/\n                void 0,\n                Debug.checkDefined(visitNode(\n                  factory2.createBlock(\n                    statements,\n                    /*multiLine*/\n                    true\n                  ),\n                  visitor,\n                  isBlock\n                ))\n              ),\n              emitFlags\n            )\n          )\n        ]),\n        4194304 /* NoHoisting */\n      )\n    );\n    const part = factory2.createVariableDeclarationList(map(currentState.loopOutParameters, createOutVariable));\n    return { functionName, containsYield, functionDeclaration, part };\n  }\n  function createFunctionForBodyOfIterationStatement(node, currentState, outerState) {\n    const functionName = factory2.createUniqueName(\"_loop\");\n    startLexicalEnvironment();\n    const statement = visitNode(node.statement, visitor, isStatement, factory2.liftToBlock);\n    const lexicalEnvironment = endLexicalEnvironment();\n    const statements = [];\n    if (shouldConvertConditionOfForStatement(node) || shouldConvertIncrementorOfForStatement(node)) {\n      currentState.conditionVariable = factory2.createUniqueName(\"inc\");\n      if (node.incrementor) {\n        statements.push(factory2.createIfStatement(\n          currentState.conditionVariable,\n          factory2.createExpressionStatement(Debug.checkDefined(visitNode(node.incrementor, visitor, isExpression))),\n          factory2.createExpressionStatement(factory2.createAssignment(currentState.conditionVariable, factory2.createTrue()))\n        ));\n      } else {\n        statements.push(factory2.createIfStatement(\n          factory2.createLogicalNot(currentState.conditionVariable),\n          factory2.createExpressionStatement(factory2.createAssignment(currentState.conditionVariable, factory2.createTrue()))\n        ));\n      }\n      if (shouldConvertConditionOfForStatement(node)) {\n        statements.push(factory2.createIfStatement(\n          factory2.createPrefixUnaryExpression(54 /* ExclamationToken */, Debug.checkDefined(visitNode(node.condition, visitor, isExpression))),\n          Debug.checkDefined(visitNode(factory2.createBreakStatement(), visitor, isStatement))\n        ));\n      }\n    }\n    Debug.assert(statement);\n    if (isBlock(statement)) {\n      addRange(statements, statement.statements);\n    } else {\n      statements.push(statement);\n    }\n    copyOutParameters(currentState.loopOutParameters, 1 /* Body */, 1 /* ToOutParameter */, statements);\n    insertStatementsAfterStandardPrologue(statements, lexicalEnvironment);\n    const loopBody = factory2.createBlock(\n      statements,\n      /*multiLine*/\n      true\n    );\n    if (isBlock(statement)) setOriginalNode(loopBody, statement);\n    const containsYield = (node.statement.transformFlags & 1048576 /* ContainsYield */) !== 0;\n    let emitFlags = 1048576 /* ReuseTempVariableScope */;\n    if (currentState.containsLexicalThis) emitFlags |= 16 /* CapturesThis */;\n    if (containsYield && (hierarchyFacts & 4 /* AsyncFunctionBody */) !== 0) emitFlags |= 524288 /* AsyncFunctionBody */;\n    const functionDeclaration = factory2.createVariableStatement(\n      /*modifiers*/\n      void 0,\n      setEmitFlags(\n        factory2.createVariableDeclarationList(\n          [\n            factory2.createVariableDeclaration(\n              functionName,\n              /*exclamationToken*/\n              void 0,\n              /*type*/\n              void 0,\n              setEmitFlags(\n                factory2.createFunctionExpression(\n                  /*modifiers*/\n                  void 0,\n                  containsYield ? factory2.createToken(42 /* AsteriskToken */) : void 0,\n                  /*name*/\n                  void 0,\n                  /*typeParameters*/\n                  void 0,\n                  currentState.loopParameters,\n                  /*type*/\n                  void 0,\n                  loopBody\n                ),\n                emitFlags\n              )\n            )\n          ]\n        ),\n        4194304 /* NoHoisting */\n      )\n    );\n    const part = generateCallToConvertedLoop(functionName, currentState, outerState, containsYield);\n    return { functionName, containsYield, functionDeclaration, part };\n  }\n  function copyOutParameter(outParam, copyDirection) {\n    const source = copyDirection === 0 /* ToOriginal */ ? outParam.outParamName : outParam.originalName;\n    const target = copyDirection === 0 /* ToOriginal */ ? outParam.originalName : outParam.outParamName;\n    return factory2.createBinaryExpression(target, 64 /* EqualsToken */, source);\n  }\n  function copyOutParameters(outParams, partFlags, copyDirection, statements) {\n    for (const outParam of outParams) {\n      if (outParam.flags & partFlags) {\n        statements.push(factory2.createExpressionStatement(copyOutParameter(outParam, copyDirection)));\n      }\n    }\n  }\n  function generateCallToConvertedLoopInitializer(initFunctionExpressionName, containsYield) {\n    const call = factory2.createCallExpression(\n      initFunctionExpressionName,\n      /*typeArguments*/\n      void 0,\n      []\n    );\n    const callResult = containsYield ? factory2.createYieldExpression(\n      factory2.createToken(42 /* AsteriskToken */),\n      setEmitFlags(call, 8388608 /* Iterator */)\n    ) : call;\n    return factory2.createExpressionStatement(callResult);\n  }\n  function generateCallToConvertedLoop(loopFunctionExpressionName, state, outerState, containsYield) {\n    const statements = [];\n    const isSimpleLoop = !(state.nonLocalJumps & ~4 /* Continue */) && !state.labeledNonLocalBreaks && !state.labeledNonLocalContinues;\n    const call = factory2.createCallExpression(\n      loopFunctionExpressionName,\n      /*typeArguments*/\n      void 0,\n      map(state.loopParameters, (p) => p.name)\n    );\n    const callResult = containsYield ? factory2.createYieldExpression(\n      factory2.createToken(42 /* AsteriskToken */),\n      setEmitFlags(call, 8388608 /* Iterator */)\n    ) : call;\n    if (isSimpleLoop) {\n      statements.push(factory2.createExpressionStatement(callResult));\n      copyOutParameters(state.loopOutParameters, 1 /* Body */, 0 /* ToOriginal */, statements);\n    } else {\n      const loopResultName = factory2.createUniqueName(\"state\");\n      const stateVariable = factory2.createVariableStatement(\n        /*modifiers*/\n        void 0,\n        factory2.createVariableDeclarationList(\n          [factory2.createVariableDeclaration(\n            loopResultName,\n            /*exclamationToken*/\n            void 0,\n            /*type*/\n            void 0,\n            callResult\n          )]\n        )\n      );\n      statements.push(stateVariable);\n      copyOutParameters(state.loopOutParameters, 1 /* Body */, 0 /* ToOriginal */, statements);\n      if (state.nonLocalJumps & 8 /* Return */) {\n        let returnStatement;\n        if (outerState) {\n          outerState.nonLocalJumps |= 8 /* Return */;\n          returnStatement = factory2.createReturnStatement(loopResultName);\n        } else {\n          returnStatement = factory2.createReturnStatement(factory2.createPropertyAccessExpression(loopResultName, \"value\"));\n        }\n        statements.push(\n          factory2.createIfStatement(\n            factory2.createTypeCheck(loopResultName, \"object\"),\n            returnStatement\n          )\n        );\n      }\n      if (state.nonLocalJumps & 2 /* Break */) {\n        statements.push(\n          factory2.createIfStatement(\n            factory2.createStrictEquality(\n              loopResultName,\n              factory2.createStringLiteral(\"break\")\n            ),\n            factory2.createBreakStatement()\n          )\n        );\n      }\n      if (state.labeledNonLocalBreaks || state.labeledNonLocalContinues) {\n        const caseClauses = [];\n        processLabeledJumps(\n          state.labeledNonLocalBreaks,\n          /*isBreak*/\n          true,\n          loopResultName,\n          outerState,\n          caseClauses\n        );\n        processLabeledJumps(\n          state.labeledNonLocalContinues,\n          /*isBreak*/\n          false,\n          loopResultName,\n          outerState,\n          caseClauses\n        );\n        statements.push(\n          factory2.createSwitchStatement(\n            loopResultName,\n            factory2.createCaseBlock(caseClauses)\n          )\n        );\n      }\n    }\n    return statements;\n  }\n  function setLabeledJump(state, isBreak, labelText, labelMarker) {\n    if (isBreak) {\n      if (!state.labeledNonLocalBreaks) {\n        state.labeledNonLocalBreaks = /* @__PURE__ */ new Map();\n      }\n      state.labeledNonLocalBreaks.set(labelText, labelMarker);\n    } else {\n      if (!state.labeledNonLocalContinues) {\n        state.labeledNonLocalContinues = /* @__PURE__ */ new Map();\n      }\n      state.labeledNonLocalContinues.set(labelText, labelMarker);\n    }\n  }\n  function processLabeledJumps(table, isBreak, loopResultName, outerLoop, caseClauses) {\n    if (!table) {\n      return;\n    }\n    table.forEach((labelMarker, labelText) => {\n      const statements = [];\n      if (!outerLoop || outerLoop.labels && outerLoop.labels.get(labelText)) {\n        const label = factory2.createIdentifier(labelText);\n        statements.push(isBreak ? factory2.createBreakStatement(label) : factory2.createContinueStatement(label));\n      } else {\n        setLabeledJump(outerLoop, isBreak, labelText, labelMarker);\n        statements.push(factory2.createReturnStatement(loopResultName));\n      }\n      caseClauses.push(factory2.createCaseClause(factory2.createStringLiteral(labelMarker), statements));\n    });\n  }\n  function processLoopVariableDeclaration(container, decl, loopParameters, loopOutParameters, hasCapturedBindingsInForHead) {\n    const name = decl.name;\n    if (isBindingPattern(name)) {\n      for (const element of name.elements) {\n        if (!isOmittedExpression(element)) {\n          processLoopVariableDeclaration(container, element, loopParameters, loopOutParameters, hasCapturedBindingsInForHead);\n        }\n      }\n    } else {\n      loopParameters.push(factory2.createParameterDeclaration(\n        /*modifiers*/\n        void 0,\n        /*dotDotDotToken*/\n        void 0,\n        name\n      ));\n      const needsOutParam = resolver.hasNodeCheckFlag(decl, 65536 /* NeedsLoopOutParameter */);\n      if (needsOutParam || hasCapturedBindingsInForHead) {\n        const outParamName = factory2.createUniqueName(\"out_\" + idText(name));\n        let flags = 0 /* None */;\n        if (needsOutParam) {\n          flags |= 1 /* Body */;\n        }\n        if (isForStatement(container)) {\n          if (container.initializer && resolver.isBindingCapturedByNode(container.initializer, decl)) {\n            flags |= 2 /* Initializer */;\n          }\n          if (container.condition && resolver.isBindingCapturedByNode(container.condition, decl) || container.incrementor && resolver.isBindingCapturedByNode(container.incrementor, decl)) {\n            flags |= 1 /* Body */;\n          }\n        }\n        loopOutParameters.push({ flags, originalName: name, outParamName });\n      }\n    }\n  }\n  function addObjectLiteralMembers(expressions, node, receiver, start) {\n    const properties = node.properties;\n    const numProperties = properties.length;\n    for (let i = start; i < numProperties; i++) {\n      const property = properties[i];\n      switch (property.kind) {\n        case 178 /* GetAccessor */:\n        case 179 /* SetAccessor */:\n          const accessors = getAllAccessorDeclarations(node.properties, property);\n          if (property === accessors.firstAccessor) {\n            expressions.push(transformAccessorsToExpression(receiver, accessors, node, !!node.multiLine));\n          }\n          break;\n        case 175 /* MethodDeclaration */:\n          expressions.push(transformObjectLiteralMethodDeclarationToExpression(property, receiver, node, node.multiLine));\n          break;\n        case 304 /* PropertyAssignment */:\n          expressions.push(transformPropertyAssignmentToExpression(property, receiver, node.multiLine));\n          break;\n        case 305 /* ShorthandPropertyAssignment */:\n          expressions.push(transformShorthandPropertyAssignmentToExpression(property, receiver, node.multiLine));\n          break;\n        default:\n          Debug.failBadSyntaxKind(node);\n          break;\n      }\n    }\n  }\n  function transformPropertyAssignmentToExpression(property, receiver, startsOnNewLine) {\n    const expression = factory2.createAssignment(\n      createMemberAccessForPropertyName(\n        factory2,\n        receiver,\n        Debug.checkDefined(visitNode(property.name, visitor, isPropertyName))\n      ),\n      Debug.checkDefined(visitNode(property.initializer, visitor, isExpression))\n    );\n    setTextRange(expression, property);\n    if (startsOnNewLine) {\n      startOnNewLine(expression);\n    }\n    return expression;\n  }\n  function transformShorthandPropertyAssignmentToExpression(property, receiver, startsOnNewLine) {\n    const expression = factory2.createAssignment(\n      createMemberAccessForPropertyName(\n        factory2,\n        receiver,\n        Debug.checkDefined(visitNode(property.name, visitor, isPropertyName))\n      ),\n      factory2.cloneNode(property.name)\n    );\n    setTextRange(expression, property);\n    if (startsOnNewLine) {\n      startOnNewLine(expression);\n    }\n    return expression;\n  }\n  function transformObjectLiteralMethodDeclarationToExpression(method, receiver, container, startsOnNewLine) {\n    const expression = factory2.createAssignment(\n      createMemberAccessForPropertyName(\n        factory2,\n        receiver,\n        Debug.checkDefined(visitNode(method.name, visitor, isPropertyName))\n      ),\n      transformFunctionLikeToExpression(\n        method,\n        /*location*/\n        method,\n        /*name*/\n        void 0,\n        container\n      )\n    );\n    setTextRange(expression, method);\n    if (startsOnNewLine) {\n      startOnNewLine(expression);\n    }\n    return expression;\n  }\n  function visitCatchClause(node) {\n    const ancestorFacts = enterSubtree(7104 /* BlockScopeExcludes */, 0 /* BlockScopeIncludes */);\n    let updated;\n    Debug.assert(!!node.variableDeclaration, \"Catch clause variable should always be present when downleveling ES2015.\");\n    if (isBindingPattern(node.variableDeclaration.name)) {\n      const temp = factory2.createTempVariable(\n        /*recordTempVariable*/\n        void 0\n      );\n      const newVariableDeclaration = factory2.createVariableDeclaration(temp);\n      setTextRange(newVariableDeclaration, node.variableDeclaration);\n      const vars = flattenDestructuringBinding(\n        node.variableDeclaration,\n        visitor,\n        context,\n        0 /* All */,\n        temp\n      );\n      const list = factory2.createVariableDeclarationList(vars);\n      setTextRange(list, node.variableDeclaration);\n      const destructure = factory2.createVariableStatement(\n        /*modifiers*/\n        void 0,\n        list\n      );\n      updated = factory2.updateCatchClause(node, newVariableDeclaration, addStatementToStartOfBlock(node.block, destructure));\n    } else {\n      updated = visitEachChild(node, visitor, context);\n    }\n    exitSubtree(ancestorFacts, 0 /* None */, 0 /* None */);\n    return updated;\n  }\n  function addStatementToStartOfBlock(block, statement) {\n    const transformedStatements = visitNodes2(block.statements, visitor, isStatement);\n    return factory2.updateBlock(block, [statement, ...transformedStatements]);\n  }\n  function visitMethodDeclaration(node) {\n    Debug.assert(!isComputedPropertyName(node.name));\n    const functionExpression = transformFunctionLikeToExpression(\n      node,\n      /*location*/\n      moveRangePos(node, -1),\n      /*name*/\n      void 0,\n      /*container*/\n      void 0\n    );\n    setEmitFlags(functionExpression, 1024 /* NoLeadingComments */ | getEmitFlags(functionExpression));\n    return setTextRange(\n      factory2.createPropertyAssignment(\n        node.name,\n        functionExpression\n      ),\n      /*location*/\n      node\n    );\n  }\n  function visitAccessorDeclaration(node) {\n    Debug.assert(!isComputedPropertyName(node.name));\n    const savedConvertedLoopState = convertedLoopState;\n    convertedLoopState = void 0;\n    const ancestorFacts = enterSubtree(32670 /* FunctionExcludes */, 65 /* FunctionIncludes */);\n    let updated;\n    const parameters = visitParameterList(node.parameters, visitor, context);\n    const body = transformFunctionBody2(node);\n    if (node.kind === 178 /* GetAccessor */) {\n      updated = factory2.updateGetAccessorDeclaration(node, node.modifiers, node.name, parameters, node.type, body);\n    } else {\n      updated = factory2.updateSetAccessorDeclaration(node, node.modifiers, node.name, parameters, body);\n    }\n    exitSubtree(ancestorFacts, 229376 /* FunctionSubtreeExcludes */, 0 /* None */);\n    convertedLoopState = savedConvertedLoopState;\n    return updated;\n  }\n  function visitShorthandPropertyAssignment(node) {\n    return setTextRange(\n      factory2.createPropertyAssignment(\n        node.name,\n        visitIdentifier(factory2.cloneNode(node.name))\n      ),\n      /*location*/\n      node\n    );\n  }\n  function visitComputedPropertyName(node) {\n    return visitEachChild(node, visitor, context);\n  }\n  function visitYieldExpression(node) {\n    return visitEachChild(node, visitor, context);\n  }\n  function visitArrayLiteralExpression(node) {\n    if (some(node.elements, isSpreadElement)) {\n      return transformAndSpreadElements(\n        node.elements,\n        /*isArgumentList*/\n        false,\n        !!node.multiLine,\n        /*hasTrailingComma*/\n        !!node.elements.hasTrailingComma\n      );\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitCallExpression(node) {\n    if (getInternalEmitFlags(node) & 1 /* TypeScriptClassWrapper */) {\n      return visitTypeScriptClassWrapper(node);\n    }\n    const expression = skipOuterExpressions(node.expression);\n    if (expression.kind === 108 /* SuperKeyword */ || isSuperProperty(expression) || some(node.arguments, isSpreadElement)) {\n      return visitCallExpressionWithPotentialCapturedThisAssignment(\n        node,\n        /*assignToCapturedThis*/\n        true\n      );\n    }\n    return factory2.updateCallExpression(\n      node,\n      Debug.checkDefined(visitNode(node.expression, callExpressionVisitor, isExpression)),\n      /*typeArguments*/\n      void 0,\n      visitNodes2(node.arguments, visitor, isExpression)\n    );\n  }\n  function visitTypeScriptClassWrapper(node) {\n    const body = cast(cast(skipOuterExpressions(node.expression), isArrowFunction).body, isBlock);\n    const isVariableStatementWithInitializer = (stmt) => isVariableStatement(stmt) && !!first(stmt.declarationList.declarations).initializer;\n    const savedConvertedLoopState = convertedLoopState;\n    convertedLoopState = void 0;\n    const bodyStatements = visitNodes2(body.statements, classWrapperStatementVisitor, isStatement);\n    convertedLoopState = savedConvertedLoopState;\n    const classStatements = filter(bodyStatements, isVariableStatementWithInitializer);\n    const remainingStatements = filter(bodyStatements, (stmt) => !isVariableStatementWithInitializer(stmt));\n    const varStatement = cast(first(classStatements), isVariableStatement);\n    const variable = varStatement.declarationList.declarations[0];\n    const initializer = skipOuterExpressions(variable.initializer);\n    let aliasAssignment = tryCast(initializer, isAssignmentExpression);\n    if (!aliasAssignment && isBinaryExpression(initializer) && initializer.operatorToken.kind === 28 /* CommaToken */) {\n      aliasAssignment = tryCast(initializer.left, isAssignmentExpression);\n    }\n    const call = cast(aliasAssignment ? skipOuterExpressions(aliasAssignment.right) : initializer, isCallExpression);\n    const func = cast(skipOuterExpressions(call.expression), isFunctionExpression);\n    const funcStatements = func.body.statements;\n    let classBodyStart = 0;\n    let classBodyEnd = -1;\n    const statements = [];\n    if (aliasAssignment) {\n      const extendsCall = tryCast(funcStatements[classBodyStart], isExpressionStatement);\n      if (extendsCall) {\n        statements.push(extendsCall);\n        classBodyStart++;\n      }\n      statements.push(funcStatements[classBodyStart]);\n      classBodyStart++;\n      statements.push(\n        factory2.createExpressionStatement(\n          factory2.createAssignment(\n            aliasAssignment.left,\n            cast(variable.name, isIdentifier)\n          )\n        )\n      );\n    }\n    while (!isReturnStatement(elementAt(funcStatements, classBodyEnd))) {\n      classBodyEnd--;\n    }\n    addRange(statements, funcStatements, classBodyStart, classBodyEnd);\n    if (classBodyEnd < -1) {\n      addRange(statements, funcStatements, classBodyEnd + 1);\n    }\n    const returnStatement = tryCast(elementAt(funcStatements, classBodyEnd), isReturnStatement);\n    for (const statement of remainingStatements) {\n      if (isReturnStatement(statement) && (returnStatement == null ? void 0 : returnStatement.expression) && !isIdentifier(returnStatement.expression)) {\n        statements.push(returnStatement);\n      } else {\n        statements.push(statement);\n      }\n    }\n    addRange(\n      statements,\n      classStatements,\n      /*start*/\n      1\n    );\n    return factory2.restoreOuterExpressions(\n      node.expression,\n      factory2.restoreOuterExpressions(\n        variable.initializer,\n        factory2.restoreOuterExpressions(\n          aliasAssignment && aliasAssignment.right,\n          factory2.updateCallExpression(\n            call,\n            factory2.restoreOuterExpressions(\n              call.expression,\n              factory2.updateFunctionExpression(\n                func,\n                /*modifiers*/\n                void 0,\n                /*asteriskToken*/\n                void 0,\n                /*name*/\n                void 0,\n                /*typeParameters*/\n                void 0,\n                func.parameters,\n                /*type*/\n                void 0,\n                factory2.updateBlock(\n                  func.body,\n                  statements\n                )\n              )\n            ),\n            /*typeArguments*/\n            void 0,\n            call.arguments\n          )\n        )\n      )\n    );\n  }\n  function visitCallExpressionWithPotentialCapturedThisAssignment(node, assignToCapturedThis) {\n    if (node.transformFlags & 32768 /* ContainsRestOrSpread */ || node.expression.kind === 108 /* SuperKeyword */ || isSuperProperty(skipOuterExpressions(node.expression))) {\n      const { target, thisArg } = factory2.createCallBinding(node.expression, hoistVariableDeclaration);\n      if (node.expression.kind === 108 /* SuperKeyword */) {\n        setEmitFlags(thisArg, 8 /* NoSubstitution */);\n      }\n      let resultingCall;\n      if (node.transformFlags & 32768 /* ContainsRestOrSpread */) {\n        resultingCall = factory2.createFunctionApplyCall(\n          Debug.checkDefined(visitNode(target, callExpressionVisitor, isExpression)),\n          node.expression.kind === 108 /* SuperKeyword */ ? thisArg : Debug.checkDefined(visitNode(thisArg, visitor, isExpression)),\n          transformAndSpreadElements(\n            node.arguments,\n            /*isArgumentList*/\n            true,\n            /*multiLine*/\n            false,\n            /*hasTrailingComma*/\n            false\n          )\n        );\n      } else {\n        resultingCall = setTextRange(\n          factory2.createFunctionCallCall(\n            Debug.checkDefined(visitNode(target, callExpressionVisitor, isExpression)),\n            node.expression.kind === 108 /* SuperKeyword */ ? thisArg : Debug.checkDefined(visitNode(thisArg, visitor, isExpression)),\n            visitNodes2(node.arguments, visitor, isExpression)\n          ),\n          node\n        );\n      }\n      if (node.expression.kind === 108 /* SuperKeyword */) {\n        const initializer = factory2.createLogicalOr(\n          resultingCall,\n          createActualThis()\n        );\n        resultingCall = assignToCapturedThis ? factory2.createAssignment(createCapturedThis(), initializer) : initializer;\n      }\n      return setOriginalNode(resultingCall, node);\n    }\n    if (isSuperCall(node)) {\n      hierarchyFacts |= 131072 /* CapturedLexicalThis */;\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitNewExpression(node) {\n    if (some(node.arguments, isSpreadElement)) {\n      const { target, thisArg } = factory2.createCallBinding(factory2.createPropertyAccessExpression(node.expression, \"bind\"), hoistVariableDeclaration);\n      return factory2.createNewExpression(\n        factory2.createFunctionApplyCall(\n          Debug.checkDefined(visitNode(target, visitor, isExpression)),\n          thisArg,\n          transformAndSpreadElements(\n            factory2.createNodeArray([factory2.createVoidZero(), ...node.arguments]),\n            /*isArgumentList*/\n            true,\n            /*multiLine*/\n            false,\n            /*hasTrailingComma*/\n            false\n          )\n        ),\n        /*typeArguments*/\n        void 0,\n        []\n      );\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function transformAndSpreadElements(elements, isArgumentList, multiLine, hasTrailingComma) {\n    const numElements = elements.length;\n    const segments = flatten(\n      // As we visit each element, we return one of two functions to use as the \"key\":\n      // - `visitSpanOfSpreads` for one or more contiguous `...` spread expressions, i.e. `...a, ...b` in `[1, 2, ...a, ...b]`\n      // - `visitSpanOfNonSpreads` for one or more contiguous non-spread elements, i.e. `1, 2`, in `[1, 2, ...a, ...b]`\n      spanMap(elements, partitionSpread, (partition, visitPartition, _start, end) => visitPartition(partition, multiLine, hasTrailingComma && end === numElements))\n    );\n    if (segments.length === 1) {\n      const firstSegment = segments[0];\n      if (isArgumentList && !compilerOptions.downlevelIteration || isPackedArrayLiteral(firstSegment.expression) || isCallToHelper(firstSegment.expression, \"___spreadArray\")) {\n        return firstSegment.expression;\n      }\n    }\n    const helpers = emitHelpers();\n    const startsWithSpread = segments[0].kind !== 0 /* None */;\n    let expression = startsWithSpread ? factory2.createArrayLiteralExpression() : segments[0].expression;\n    for (let i = startsWithSpread ? 0 : 1; i < segments.length; i++) {\n      const segment = segments[i];\n      expression = helpers.createSpreadArrayHelper(\n        expression,\n        segment.expression,\n        segment.kind === 1 /* UnpackedSpread */ && !isArgumentList\n      );\n    }\n    return expression;\n  }\n  function partitionSpread(node) {\n    return isSpreadElement(node) ? visitSpanOfSpreads : visitSpanOfNonSpreads;\n  }\n  function visitSpanOfSpreads(chunk) {\n    return map(chunk, visitExpressionOfSpread);\n  }\n  function visitExpressionOfSpread(node) {\n    Debug.assertNode(node, isSpreadElement);\n    let expression = visitNode(node.expression, visitor, isExpression);\n    Debug.assert(expression);\n    const isCallToReadHelper = isCallToHelper(expression, \"___read\");\n    let kind = isCallToReadHelper || isPackedArrayLiteral(expression) ? 2 /* PackedSpread */ : 1 /* UnpackedSpread */;\n    if (compilerOptions.downlevelIteration && kind === 1 /* UnpackedSpread */ && !isArrayLiteralExpression(expression) && !isCallToReadHelper) {\n      expression = emitHelpers().createReadHelper(\n        expression,\n        /*count*/\n        void 0\n      );\n      kind = 2 /* PackedSpread */;\n    }\n    return createSpreadSegment(kind, expression);\n  }\n  function visitSpanOfNonSpreads(chunk, multiLine, hasTrailingComma) {\n    const expression = factory2.createArrayLiteralExpression(\n      visitNodes2(factory2.createNodeArray(chunk, hasTrailingComma), visitor, isExpression),\n      multiLine\n    );\n    return createSpreadSegment(0 /* None */, expression);\n  }\n  function visitSpreadElement(node) {\n    return visitNode(node.expression, visitor, isExpression);\n  }\n  function visitTemplateLiteral(node) {\n    return setTextRange(factory2.createStringLiteral(node.text), node);\n  }\n  function visitStringLiteral(node) {\n    if (node.hasExtendedUnicodeEscape) {\n      return setTextRange(factory2.createStringLiteral(node.text), node);\n    }\n    return node;\n  }\n  function visitNumericLiteral(node) {\n    if (node.numericLiteralFlags & 384 /* BinaryOrOctalSpecifier */) {\n      return setTextRange(factory2.createNumericLiteral(node.text), node);\n    }\n    return node;\n  }\n  function visitTaggedTemplateExpression(node) {\n    return processTaggedTemplateExpression(\n      context,\n      node,\n      visitor,\n      currentSourceFile,\n      recordTaggedTemplateString,\n      1 /* All */\n    );\n  }\n  function visitTemplateExpression(node) {\n    let expression = factory2.createStringLiteral(node.head.text);\n    for (const span of node.templateSpans) {\n      const args = [Debug.checkDefined(visitNode(span.expression, visitor, isExpression))];\n      if (span.literal.text.length > 0) {\n        args.push(factory2.createStringLiteral(span.literal.text));\n      }\n      expression = factory2.createCallExpression(\n        factory2.createPropertyAccessExpression(expression, \"concat\"),\n        /*typeArguments*/\n        void 0,\n        args\n      );\n    }\n    return setTextRange(expression, node);\n  }\n  function createSyntheticSuper() {\n    return factory2.createUniqueName(\"_super\", 16 /* Optimistic */ | 32 /* FileLevel */);\n  }\n  function visitSuperKeyword(node, isExpressionOfCall) {\n    const expression = hierarchyFacts & 8 /* NonStaticClassElement */ && !isExpressionOfCall ? factory2.createPropertyAccessExpression(setOriginalNode(createSyntheticSuper(), node), \"prototype\") : createSyntheticSuper();\n    setOriginalNode(expression, node);\n    setCommentRange(expression, node);\n    setSourceMapRange(expression, node);\n    return expression;\n  }\n  function visitMetaProperty(node) {\n    if (node.keywordToken === 105 /* NewKeyword */ && node.name.escapedText === \"target\") {\n      hierarchyFacts |= 32768 /* NewTarget */;\n      return factory2.createUniqueName(\"_newTarget\", 16 /* Optimistic */ | 32 /* FileLevel */);\n    }\n    return node;\n  }\n  function onEmitNode(hint, node, emitCallback) {\n    if (enabledSubstitutions & 1 /* CapturedThis */ && isFunctionLike(node)) {\n      const ancestorFacts = enterSubtree(\n        32670 /* FunctionExcludes */,\n        getEmitFlags(node) & 16 /* CapturesThis */ ? 65 /* FunctionIncludes */ | 16 /* CapturesThis */ : 65 /* FunctionIncludes */\n      );\n      previousOnEmitNode(hint, node, emitCallback);\n      exitSubtree(ancestorFacts, 0 /* None */, 0 /* None */);\n      return;\n    }\n    previousOnEmitNode(hint, node, emitCallback);\n  }\n  function enableSubstitutionsForBlockScopedBindings() {\n    if ((enabledSubstitutions & 2 /* BlockScopedBindings */) === 0) {\n      enabledSubstitutions |= 2 /* BlockScopedBindings */;\n      context.enableSubstitution(80 /* Identifier */);\n    }\n  }\n  function enableSubstitutionsForCapturedThis() {\n    if ((enabledSubstitutions & 1 /* CapturedThis */) === 0) {\n      enabledSubstitutions |= 1 /* CapturedThis */;\n      context.enableSubstitution(110 /* ThisKeyword */);\n      context.enableEmitNotification(177 /* Constructor */);\n      context.enableEmitNotification(175 /* MethodDeclaration */);\n      context.enableEmitNotification(178 /* GetAccessor */);\n      context.enableEmitNotification(179 /* SetAccessor */);\n      context.enableEmitNotification(220 /* ArrowFunction */);\n      context.enableEmitNotification(219 /* FunctionExpression */);\n      context.enableEmitNotification(263 /* FunctionDeclaration */);\n    }\n  }\n  function onSubstituteNode(hint, node) {\n    node = previousOnSubstituteNode(hint, node);\n    if (hint === 1 /* Expression */) {\n      return substituteExpression(node);\n    }\n    if (isIdentifier(node)) {\n      return substituteIdentifier(node);\n    }\n    return node;\n  }\n  function substituteIdentifier(node) {\n    if (enabledSubstitutions & 2 /* BlockScopedBindings */ && !isInternalName(node)) {\n      const original = getParseTreeNode(node, isIdentifier);\n      if (original && isNameOfDeclarationWithCollidingName(original)) {\n        return setTextRange(factory2.getGeneratedNameForNode(original), node);\n      }\n    }\n    return node;\n  }\n  function isNameOfDeclarationWithCollidingName(node) {\n    switch (node.parent.kind) {\n      case 209 /* BindingElement */:\n      case 264 /* ClassDeclaration */:\n      case 267 /* EnumDeclaration */:\n      case 261 /* VariableDeclaration */:\n        return node.parent.name === node && resolver.isDeclarationWithCollidingName(node.parent);\n    }\n    return false;\n  }\n  function substituteExpression(node) {\n    switch (node.kind) {\n      case 80 /* Identifier */:\n        return substituteExpressionIdentifier(node);\n      case 110 /* ThisKeyword */:\n        return substituteThisKeyword(node);\n    }\n    return node;\n  }\n  function substituteExpressionIdentifier(node) {\n    if (enabledSubstitutions & 2 /* BlockScopedBindings */ && !isInternalName(node)) {\n      const declaration = resolver.getReferencedDeclarationWithCollidingName(node);\n      if (declaration && !(isClassLike(declaration) && isPartOfClassBody(declaration, node))) {\n        return setTextRange(factory2.getGeneratedNameForNode(getNameOfDeclaration(declaration)), node);\n      }\n    }\n    return node;\n  }\n  function isPartOfClassBody(declaration, node) {\n    let currentNode = getParseTreeNode(node);\n    if (!currentNode || currentNode === declaration || currentNode.end <= declaration.pos || currentNode.pos >= declaration.end) {\n      return false;\n    }\n    const blockScope = getEnclosingBlockScopeContainer(declaration);\n    while (currentNode) {\n      if (currentNode === blockScope || currentNode === declaration) {\n        return false;\n      }\n      if (isClassElement(currentNode) && currentNode.parent === declaration) {\n        return true;\n      }\n      currentNode = currentNode.parent;\n    }\n    return false;\n  }\n  function substituteThisKeyword(node) {\n    if (enabledSubstitutions & 1 /* CapturedThis */ && hierarchyFacts & 16 /* CapturesThis */) {\n      return setTextRange(createCapturedThis(), node);\n    }\n    return node;\n  }\n  function getClassMemberPrefix(node, member) {\n    return isStatic(member) ? factory2.getInternalName(node) : factory2.createPropertyAccessExpression(factory2.getInternalName(node), \"prototype\");\n  }\n  function hasSynthesizedDefaultSuperCall(constructor, hasExtendsClause) {\n    if (!constructor || !hasExtendsClause) {\n      return false;\n    }\n    if (some(constructor.parameters)) {\n      return false;\n    }\n    const statement = firstOrUndefined(constructor.body.statements);\n    if (!statement || !nodeIsSynthesized(statement) || statement.kind !== 245 /* ExpressionStatement */) {\n      return false;\n    }\n    const statementExpression = statement.expression;\n    if (!nodeIsSynthesized(statementExpression) || statementExpression.kind !== 214 /* CallExpression */) {\n      return false;\n    }\n    const callTarget = statementExpression.expression;\n    if (!nodeIsSynthesized(callTarget) || callTarget.kind !== 108 /* SuperKeyword */) {\n      return false;\n    }\n    const callArgument = singleOrUndefined(statementExpression.arguments);\n    if (!callArgument || !nodeIsSynthesized(callArgument) || callArgument.kind !== 231 /* SpreadElement */) {\n      return false;\n    }\n    const expression = callArgument.expression;\n    return isIdentifier(expression) && expression.escapedText === \"arguments\";\n  }\n}\n\n// src/compiler/transformers/generators.ts\nfunction getInstructionName(instruction) {\n  switch (instruction) {\n    case 2 /* Return */:\n      return \"return\";\n    case 3 /* Break */:\n      return \"break\";\n    case 4 /* Yield */:\n      return \"yield\";\n    case 5 /* YieldStar */:\n      return \"yield*\";\n    case 7 /* Endfinally */:\n      return \"endfinally\";\n    default:\n      return void 0;\n  }\n}\nfunction transformGenerators(context) {\n  const {\n    factory: factory2,\n    getEmitHelperFactory: emitHelpers,\n    resumeLexicalEnvironment,\n    endLexicalEnvironment,\n    hoistFunctionDeclaration,\n    hoistVariableDeclaration\n  } = context;\n  const compilerOptions = context.getCompilerOptions();\n  const languageVersion = getEmitScriptTarget(compilerOptions);\n  const resolver = context.getEmitResolver();\n  const previousOnSubstituteNode = context.onSubstituteNode;\n  context.onSubstituteNode = onSubstituteNode;\n  let renamedCatchVariables;\n  let renamedCatchVariableDeclarations;\n  let inGeneratorFunctionBody;\n  let inStatementContainingYield;\n  let blocks;\n  let blockOffsets;\n  let blockActions;\n  let blockStack;\n  let labelOffsets;\n  let labelExpressions;\n  let nextLabelId = 1;\n  let operations;\n  let operationArguments;\n  let operationLocations;\n  let state;\n  let blockIndex = 0;\n  let labelNumber = 0;\n  let labelNumbers;\n  let lastOperationWasAbrupt;\n  let lastOperationWasCompletion;\n  let clauses;\n  let statements;\n  let exceptionBlockStack;\n  let currentExceptionBlock;\n  let withBlockStack;\n  return chainBundle(context, transformSourceFile);\n  function transformSourceFile(node) {\n    if (node.isDeclarationFile || (node.transformFlags & 2048 /* ContainsGenerator */) === 0) {\n      return node;\n    }\n    const visited = visitEachChild(node, visitor, context);\n    addEmitHelpers(visited, context.readEmitHelpers());\n    return visited;\n  }\n  function visitor(node) {\n    const transformFlags = node.transformFlags;\n    if (inStatementContainingYield) {\n      return visitJavaScriptInStatementContainingYield(node);\n    } else if (inGeneratorFunctionBody) {\n      return visitJavaScriptInGeneratorFunctionBody(node);\n    } else if (isFunctionLikeDeclaration(node) && node.asteriskToken) {\n      return visitGenerator(node);\n    } else if (transformFlags & 2048 /* ContainsGenerator */) {\n      return visitEachChild(node, visitor, context);\n    } else {\n      return node;\n    }\n  }\n  function visitJavaScriptInStatementContainingYield(node) {\n    switch (node.kind) {\n      case 247 /* DoStatement */:\n        return visitDoStatement(node);\n      case 248 /* WhileStatement */:\n        return visitWhileStatement(node);\n      case 256 /* SwitchStatement */:\n        return visitSwitchStatement(node);\n      case 257 /* LabeledStatement */:\n        return visitLabeledStatement(node);\n      default:\n        return visitJavaScriptInGeneratorFunctionBody(node);\n    }\n  }\n  function visitJavaScriptInGeneratorFunctionBody(node) {\n    switch (node.kind) {\n      case 263 /* FunctionDeclaration */:\n        return visitFunctionDeclaration(node);\n      case 219 /* FunctionExpression */:\n        return visitFunctionExpression(node);\n      case 178 /* GetAccessor */:\n      case 179 /* SetAccessor */:\n        return visitAccessorDeclaration(node);\n      case 244 /* VariableStatement */:\n        return visitVariableStatement(node);\n      case 249 /* ForStatement */:\n        return visitForStatement(node);\n      case 250 /* ForInStatement */:\n        return visitForInStatement(node);\n      case 253 /* BreakStatement */:\n        return visitBreakStatement(node);\n      case 252 /* ContinueStatement */:\n        return visitContinueStatement(node);\n      case 254 /* ReturnStatement */:\n        return visitReturnStatement(node);\n      default:\n        if (node.transformFlags & 1048576 /* ContainsYield */) {\n          return visitJavaScriptContainingYield(node);\n        } else if (node.transformFlags & (2048 /* ContainsGenerator */ | 4194304 /* ContainsHoistedDeclarationOrCompletion */)) {\n          return visitEachChild(node, visitor, context);\n        } else {\n          return node;\n        }\n    }\n  }\n  function visitJavaScriptContainingYield(node) {\n    switch (node.kind) {\n      case 227 /* BinaryExpression */:\n        return visitBinaryExpression(node);\n      case 357 /* CommaListExpression */:\n        return visitCommaListExpression(node);\n      case 228 /* ConditionalExpression */:\n        return visitConditionalExpression(node);\n      case 230 /* YieldExpression */:\n        return visitYieldExpression(node);\n      case 210 /* ArrayLiteralExpression */:\n        return visitArrayLiteralExpression(node);\n      case 211 /* ObjectLiteralExpression */:\n        return visitObjectLiteralExpression(node);\n      case 213 /* ElementAccessExpression */:\n        return visitElementAccessExpression(node);\n      case 214 /* CallExpression */:\n        return visitCallExpression(node);\n      case 215 /* NewExpression */:\n        return visitNewExpression(node);\n      default:\n        return visitEachChild(node, visitor, context);\n    }\n  }\n  function visitGenerator(node) {\n    switch (node.kind) {\n      case 263 /* FunctionDeclaration */:\n        return visitFunctionDeclaration(node);\n      case 219 /* FunctionExpression */:\n        return visitFunctionExpression(node);\n      default:\n        return Debug.failBadSyntaxKind(node);\n    }\n  }\n  function visitFunctionDeclaration(node) {\n    if (node.asteriskToken) {\n      node = setOriginalNode(\n        setTextRange(\n          factory2.createFunctionDeclaration(\n            node.modifiers,\n            /*asteriskToken*/\n            void 0,\n            node.name,\n            /*typeParameters*/\n            void 0,\n            visitParameterList(node.parameters, visitor, context),\n            /*type*/\n            void 0,\n            transformGeneratorFunctionBody(node.body)\n          ),\n          /*location*/\n          node\n        ),\n        node\n      );\n    } else {\n      const savedInGeneratorFunctionBody = inGeneratorFunctionBody;\n      const savedInStatementContainingYield = inStatementContainingYield;\n      inGeneratorFunctionBody = false;\n      inStatementContainingYield = false;\n      node = visitEachChild(node, visitor, context);\n      inGeneratorFunctionBody = savedInGeneratorFunctionBody;\n      inStatementContainingYield = savedInStatementContainingYield;\n    }\n    if (inGeneratorFunctionBody) {\n      hoistFunctionDeclaration(node);\n      return void 0;\n    } else {\n      return node;\n    }\n  }\n  function visitFunctionExpression(node) {\n    if (node.asteriskToken) {\n      node = setOriginalNode(\n        setTextRange(\n          factory2.createFunctionExpression(\n            /*modifiers*/\n            void 0,\n            /*asteriskToken*/\n            void 0,\n            node.name,\n            /*typeParameters*/\n            void 0,\n            visitParameterList(node.parameters, visitor, context),\n            /*type*/\n            void 0,\n            transformGeneratorFunctionBody(node.body)\n          ),\n          /*location*/\n          node\n        ),\n        node\n      );\n    } else {\n      const savedInGeneratorFunctionBody = inGeneratorFunctionBody;\n      const savedInStatementContainingYield = inStatementContainingYield;\n      inGeneratorFunctionBody = false;\n      inStatementContainingYield = false;\n      node = visitEachChild(node, visitor, context);\n      inGeneratorFunctionBody = savedInGeneratorFunctionBody;\n      inStatementContainingYield = savedInStatementContainingYield;\n    }\n    return node;\n  }\n  function visitAccessorDeclaration(node) {\n    const savedInGeneratorFunctionBody = inGeneratorFunctionBody;\n    const savedInStatementContainingYield = inStatementContainingYield;\n    inGeneratorFunctionBody = false;\n    inStatementContainingYield = false;\n    node = visitEachChild(node, visitor, context);\n    inGeneratorFunctionBody = savedInGeneratorFunctionBody;\n    inStatementContainingYield = savedInStatementContainingYield;\n    return node;\n  }\n  function transformGeneratorFunctionBody(body) {\n    const statements2 = [];\n    const savedInGeneratorFunctionBody = inGeneratorFunctionBody;\n    const savedInStatementContainingYield = inStatementContainingYield;\n    const savedBlocks = blocks;\n    const savedBlockOffsets = blockOffsets;\n    const savedBlockActions = blockActions;\n    const savedBlockStack = blockStack;\n    const savedLabelOffsets = labelOffsets;\n    const savedLabelExpressions = labelExpressions;\n    const savedNextLabelId = nextLabelId;\n    const savedOperations = operations;\n    const savedOperationArguments = operationArguments;\n    const savedOperationLocations = operationLocations;\n    const savedState = state;\n    inGeneratorFunctionBody = true;\n    inStatementContainingYield = false;\n    blocks = void 0;\n    blockOffsets = void 0;\n    blockActions = void 0;\n    blockStack = void 0;\n    labelOffsets = void 0;\n    labelExpressions = void 0;\n    nextLabelId = 1;\n    operations = void 0;\n    operationArguments = void 0;\n    operationLocations = void 0;\n    state = factory2.createTempVariable(\n      /*recordTempVariable*/\n      void 0\n    );\n    resumeLexicalEnvironment();\n    const statementOffset = factory2.copyPrologue(\n      body.statements,\n      statements2,\n      /*ensureUseStrict*/\n      false,\n      visitor\n    );\n    transformAndEmitStatements(body.statements, statementOffset);\n    const buildResult = build2();\n    insertStatementsAfterStandardPrologue(statements2, endLexicalEnvironment());\n    statements2.push(factory2.createReturnStatement(buildResult));\n    inGeneratorFunctionBody = savedInGeneratorFunctionBody;\n    inStatementContainingYield = savedInStatementContainingYield;\n    blocks = savedBlocks;\n    blockOffsets = savedBlockOffsets;\n    blockActions = savedBlockActions;\n    blockStack = savedBlockStack;\n    labelOffsets = savedLabelOffsets;\n    labelExpressions = savedLabelExpressions;\n    nextLabelId = savedNextLabelId;\n    operations = savedOperations;\n    operationArguments = savedOperationArguments;\n    operationLocations = savedOperationLocations;\n    state = savedState;\n    return setTextRange(factory2.createBlock(statements2, body.multiLine), body);\n  }\n  function visitVariableStatement(node) {\n    if (node.transformFlags & 1048576 /* ContainsYield */) {\n      transformAndEmitVariableDeclarationList(node.declarationList);\n      return void 0;\n    } else {\n      if (getEmitFlags(node) & 2097152 /* CustomPrologue */) {\n        return node;\n      }\n      for (const variable of node.declarationList.declarations) {\n        hoistVariableDeclaration(variable.name);\n      }\n      const variables = getInitializedVariables(node.declarationList);\n      if (variables.length === 0) {\n        return void 0;\n      }\n      return setSourceMapRange(\n        factory2.createExpressionStatement(\n          factory2.inlineExpressions(\n            map(variables, transformInitializedVariable)\n          )\n        ),\n        node\n      );\n    }\n  }\n  function visitBinaryExpression(node) {\n    const assoc = getExpressionAssociativity(node);\n    switch (assoc) {\n      case 0 /* Left */:\n        return visitLeftAssociativeBinaryExpression(node);\n      case 1 /* Right */:\n        return visitRightAssociativeBinaryExpression(node);\n      default:\n        return Debug.assertNever(assoc);\n    }\n  }\n  function visitRightAssociativeBinaryExpression(node) {\n    const { left, right } = node;\n    if (containsYield(right)) {\n      let target;\n      switch (left.kind) {\n        case 212 /* PropertyAccessExpression */:\n          target = factory2.updatePropertyAccessExpression(\n            left,\n            cacheExpression(Debug.checkDefined(visitNode(left.expression, visitor, isLeftHandSideExpression))),\n            left.name\n          );\n          break;\n        case 213 /* ElementAccessExpression */:\n          target = factory2.updateElementAccessExpression(left, cacheExpression(Debug.checkDefined(visitNode(left.expression, visitor, isLeftHandSideExpression))), cacheExpression(Debug.checkDefined(visitNode(left.argumentExpression, visitor, isExpression))));\n          break;\n        default:\n          target = Debug.checkDefined(visitNode(left, visitor, isExpression));\n          break;\n      }\n      const operator = node.operatorToken.kind;\n      if (isCompoundAssignment(operator)) {\n        return setTextRange(\n          factory2.createAssignment(\n            target,\n            setTextRange(\n              factory2.createBinaryExpression(\n                cacheExpression(target),\n                getNonAssignmentOperatorForCompoundAssignment(operator),\n                Debug.checkDefined(visitNode(right, visitor, isExpression))\n              ),\n              node\n            )\n          ),\n          node\n        );\n      } else {\n        return factory2.updateBinaryExpression(node, target, node.operatorToken, Debug.checkDefined(visitNode(right, visitor, isExpression)));\n      }\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitLeftAssociativeBinaryExpression(node) {\n    if (containsYield(node.right)) {\n      if (isLogicalOperator(node.operatorToken.kind)) {\n        return visitLogicalBinaryExpression(node);\n      } else if (node.operatorToken.kind === 28 /* CommaToken */) {\n        return visitCommaExpression(node);\n      }\n      return factory2.updateBinaryExpression(node, cacheExpression(Debug.checkDefined(visitNode(node.left, visitor, isExpression))), node.operatorToken, Debug.checkDefined(visitNode(node.right, visitor, isExpression)));\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitCommaExpression(node) {\n    let pendingExpressions = [];\n    visit(node.left);\n    visit(node.right);\n    return factory2.inlineExpressions(pendingExpressions);\n    function visit(node2) {\n      if (isBinaryExpression(node2) && node2.operatorToken.kind === 28 /* CommaToken */) {\n        visit(node2.left);\n        visit(node2.right);\n      } else {\n        if (containsYield(node2) && pendingExpressions.length > 0) {\n          emitWorker(1 /* Statement */, [factory2.createExpressionStatement(factory2.inlineExpressions(pendingExpressions))]);\n          pendingExpressions = [];\n        }\n        pendingExpressions.push(Debug.checkDefined(visitNode(node2, visitor, isExpression)));\n      }\n    }\n  }\n  function visitCommaListExpression(node) {\n    let pendingExpressions = [];\n    for (const elem of node.elements) {\n      if (isBinaryExpression(elem) && elem.operatorToken.kind === 28 /* CommaToken */) {\n        pendingExpressions.push(visitCommaExpression(elem));\n      } else {\n        if (containsYield(elem) && pendingExpressions.length > 0) {\n          emitWorker(1 /* Statement */, [factory2.createExpressionStatement(factory2.inlineExpressions(pendingExpressions))]);\n          pendingExpressions = [];\n        }\n        pendingExpressions.push(Debug.checkDefined(visitNode(elem, visitor, isExpression)));\n      }\n    }\n    return factory2.inlineExpressions(pendingExpressions);\n  }\n  function visitLogicalBinaryExpression(node) {\n    const resultLabel = defineLabel();\n    const resultLocal = declareLocal();\n    emitAssignment(\n      resultLocal,\n      Debug.checkDefined(visitNode(node.left, visitor, isExpression)),\n      /*location*/\n      node.left\n    );\n    if (node.operatorToken.kind === 56 /* AmpersandAmpersandToken */) {\n      emitBreakWhenFalse(\n        resultLabel,\n        resultLocal,\n        /*location*/\n        node.left\n      );\n    } else {\n      emitBreakWhenTrue(\n        resultLabel,\n        resultLocal,\n        /*location*/\n        node.left\n      );\n    }\n    emitAssignment(\n      resultLocal,\n      Debug.checkDefined(visitNode(node.right, visitor, isExpression)),\n      /*location*/\n      node.right\n    );\n    markLabel(resultLabel);\n    return resultLocal;\n  }\n  function visitConditionalExpression(node) {\n    if (containsYield(node.whenTrue) || containsYield(node.whenFalse)) {\n      const whenFalseLabel = defineLabel();\n      const resultLabel = defineLabel();\n      const resultLocal = declareLocal();\n      emitBreakWhenFalse(\n        whenFalseLabel,\n        Debug.checkDefined(visitNode(node.condition, visitor, isExpression)),\n        /*location*/\n        node.condition\n      );\n      emitAssignment(\n        resultLocal,\n        Debug.checkDefined(visitNode(node.whenTrue, visitor, isExpression)),\n        /*location*/\n        node.whenTrue\n      );\n      emitBreak(resultLabel);\n      markLabel(whenFalseLabel);\n      emitAssignment(\n        resultLocal,\n        Debug.checkDefined(visitNode(node.whenFalse, visitor, isExpression)),\n        /*location*/\n        node.whenFalse\n      );\n      markLabel(resultLabel);\n      return resultLocal;\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitYieldExpression(node) {\n    const resumeLabel = defineLabel();\n    const expression = visitNode(node.expression, visitor, isExpression);\n    if (node.asteriskToken) {\n      const iterator = (getEmitFlags(node.expression) & 8388608 /* Iterator */) === 0 ? setTextRange(emitHelpers().createValuesHelper(expression), node) : expression;\n      emitYieldStar(\n        iterator,\n        /*location*/\n        node\n      );\n    } else {\n      emitYield(\n        expression,\n        /*location*/\n        node\n      );\n    }\n    markLabel(resumeLabel);\n    return createGeneratorResume(\n      /*location*/\n      node\n    );\n  }\n  function visitArrayLiteralExpression(node) {\n    return visitElements(\n      node.elements,\n      /*leadingElement*/\n      void 0,\n      /*location*/\n      void 0,\n      node.multiLine\n    );\n  }\n  function visitElements(elements, leadingElement, location, multiLine) {\n    const numInitialElements = countInitialNodesWithoutYield(elements);\n    let temp;\n    if (numInitialElements > 0) {\n      temp = declareLocal();\n      const initialElements = visitNodes2(elements, visitor, isExpression, 0, numInitialElements);\n      emitAssignment(\n        temp,\n        factory2.createArrayLiteralExpression(\n          leadingElement ? [leadingElement, ...initialElements] : initialElements\n        )\n      );\n      leadingElement = void 0;\n    }\n    const expressions = reduceLeft(elements, reduceElement, [], numInitialElements);\n    return temp ? factory2.createArrayConcatCall(temp, [factory2.createArrayLiteralExpression(expressions, multiLine)]) : setTextRange(\n      factory2.createArrayLiteralExpression(leadingElement ? [leadingElement, ...expressions] : expressions, multiLine),\n      location\n    );\n    function reduceElement(expressions2, element) {\n      if (containsYield(element) && expressions2.length > 0) {\n        const hasAssignedTemp = temp !== void 0;\n        if (!temp) {\n          temp = declareLocal();\n        }\n        emitAssignment(\n          temp,\n          hasAssignedTemp ? factory2.createArrayConcatCall(\n            temp,\n            [factory2.createArrayLiteralExpression(expressions2, multiLine)]\n          ) : factory2.createArrayLiteralExpression(\n            leadingElement ? [leadingElement, ...expressions2] : expressions2,\n            multiLine\n          )\n        );\n        leadingElement = void 0;\n        expressions2 = [];\n      }\n      expressions2.push(Debug.checkDefined(visitNode(element, visitor, isExpression)));\n      return expressions2;\n    }\n  }\n  function visitObjectLiteralExpression(node) {\n    const properties = node.properties;\n    const multiLine = node.multiLine;\n    const numInitialProperties = countInitialNodesWithoutYield(properties);\n    const temp = declareLocal();\n    emitAssignment(\n      temp,\n      factory2.createObjectLiteralExpression(\n        visitNodes2(properties, visitor, isObjectLiteralElementLike, 0, numInitialProperties),\n        multiLine\n      )\n    );\n    const expressions = reduceLeft(properties, reduceProperty, [], numInitialProperties);\n    expressions.push(multiLine ? startOnNewLine(setParent(setTextRange(factory2.cloneNode(temp), temp), temp.parent)) : temp);\n    return factory2.inlineExpressions(expressions);\n    function reduceProperty(expressions2, property) {\n      if (containsYield(property) && expressions2.length > 0) {\n        emitStatement(factory2.createExpressionStatement(factory2.inlineExpressions(expressions2)));\n        expressions2 = [];\n      }\n      const expression = createExpressionForObjectLiteralElementLike(factory2, node, property, temp);\n      const visited = visitNode(expression, visitor, isExpression);\n      if (visited) {\n        if (multiLine) {\n          startOnNewLine(visited);\n        }\n        expressions2.push(visited);\n      }\n      return expressions2;\n    }\n  }\n  function visitElementAccessExpression(node) {\n    if (containsYield(node.argumentExpression)) {\n      return factory2.updateElementAccessExpression(node, cacheExpression(Debug.checkDefined(visitNode(node.expression, visitor, isLeftHandSideExpression))), Debug.checkDefined(visitNode(node.argumentExpression, visitor, isExpression)));\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitCallExpression(node) {\n    if (!isImportCall(node) && forEach(node.arguments, containsYield)) {\n      const { target, thisArg } = factory2.createCallBinding(\n        node.expression,\n        hoistVariableDeclaration,\n        languageVersion,\n        /*cacheIdentifiers*/\n        true\n      );\n      return setOriginalNode(\n        setTextRange(\n          factory2.createFunctionApplyCall(\n            cacheExpression(Debug.checkDefined(visitNode(target, visitor, isLeftHandSideExpression))),\n            thisArg,\n            visitElements(node.arguments)\n          ),\n          node\n        ),\n        node\n      );\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitNewExpression(node) {\n    if (forEach(node.arguments, containsYield)) {\n      const { target, thisArg } = factory2.createCallBinding(factory2.createPropertyAccessExpression(node.expression, \"bind\"), hoistVariableDeclaration);\n      return setOriginalNode(\n        setTextRange(\n          factory2.createNewExpression(\n            factory2.createFunctionApplyCall(\n              cacheExpression(Debug.checkDefined(visitNode(target, visitor, isExpression))),\n              thisArg,\n              visitElements(\n                node.arguments,\n                /*leadingElement*/\n                factory2.createVoidZero()\n              )\n            ),\n            /*typeArguments*/\n            void 0,\n            []\n          ),\n          node\n        ),\n        node\n      );\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function transformAndEmitStatements(statements2, start = 0) {\n    const numStatements = statements2.length;\n    for (let i = start; i < numStatements; i++) {\n      transformAndEmitStatement(statements2[i]);\n    }\n  }\n  function transformAndEmitEmbeddedStatement(node) {\n    if (isBlock(node)) {\n      transformAndEmitStatements(node.statements);\n    } else {\n      transformAndEmitStatement(node);\n    }\n  }\n  function transformAndEmitStatement(node) {\n    const savedInStatementContainingYield = inStatementContainingYield;\n    if (!inStatementContainingYield) {\n      inStatementContainingYield = containsYield(node);\n    }\n    transformAndEmitStatementWorker(node);\n    inStatementContainingYield = savedInStatementContainingYield;\n  }\n  function transformAndEmitStatementWorker(node) {\n    switch (node.kind) {\n      case 242 /* Block */:\n        return transformAndEmitBlock(node);\n      case 245 /* ExpressionStatement */:\n        return transformAndEmitExpressionStatement(node);\n      case 246 /* IfStatement */:\n        return transformAndEmitIfStatement(node);\n      case 247 /* DoStatement */:\n        return transformAndEmitDoStatement(node);\n      case 248 /* WhileStatement */:\n        return transformAndEmitWhileStatement(node);\n      case 249 /* ForStatement */:\n        return transformAndEmitForStatement(node);\n      case 250 /* ForInStatement */:\n        return transformAndEmitForInStatement(node);\n      case 252 /* ContinueStatement */:\n        return transformAndEmitContinueStatement(node);\n      case 253 /* BreakStatement */:\n        return transformAndEmitBreakStatement(node);\n      case 254 /* ReturnStatement */:\n        return transformAndEmitReturnStatement(node);\n      case 255 /* WithStatement */:\n        return transformAndEmitWithStatement(node);\n      case 256 /* SwitchStatement */:\n        return transformAndEmitSwitchStatement(node);\n      case 257 /* LabeledStatement */:\n        return transformAndEmitLabeledStatement(node);\n      case 258 /* ThrowStatement */:\n        return transformAndEmitThrowStatement(node);\n      case 259 /* TryStatement */:\n        return transformAndEmitTryStatement(node);\n      default:\n        return emitStatement(visitNode(node, visitor, isStatement));\n    }\n  }\n  function transformAndEmitBlock(node) {\n    if (containsYield(node)) {\n      transformAndEmitStatements(node.statements);\n    } else {\n      emitStatement(visitNode(node, visitor, isStatement));\n    }\n  }\n  function transformAndEmitExpressionStatement(node) {\n    emitStatement(visitNode(node, visitor, isStatement));\n  }\n  function transformAndEmitVariableDeclarationList(node) {\n    for (const variable of node.declarations) {\n      const name = factory2.cloneNode(variable.name);\n      setCommentRange(name, variable.name);\n      hoistVariableDeclaration(name);\n    }\n    const variables = getInitializedVariables(node);\n    const numVariables = variables.length;\n    let variablesWritten = 0;\n    let pendingExpressions = [];\n    while (variablesWritten < numVariables) {\n      for (let i = variablesWritten; i < numVariables; i++) {\n        const variable = variables[i];\n        if (containsYield(variable.initializer) && pendingExpressions.length > 0) {\n          break;\n        }\n        pendingExpressions.push(transformInitializedVariable(variable));\n      }\n      if (pendingExpressions.length) {\n        emitStatement(factory2.createExpressionStatement(factory2.inlineExpressions(pendingExpressions)));\n        variablesWritten += pendingExpressions.length;\n        pendingExpressions = [];\n      }\n    }\n    return void 0;\n  }\n  function transformInitializedVariable(node) {\n    return setSourceMapRange(\n      factory2.createAssignment(\n        setSourceMapRange(factory2.cloneNode(node.name), node.name),\n        Debug.checkDefined(visitNode(node.initializer, visitor, isExpression))\n      ),\n      node\n    );\n  }\n  function transformAndEmitIfStatement(node) {\n    if (containsYield(node)) {\n      if (containsYield(node.thenStatement) || containsYield(node.elseStatement)) {\n        const endLabel = defineLabel();\n        const elseLabel = node.elseStatement ? defineLabel() : void 0;\n        emitBreakWhenFalse(\n          node.elseStatement ? elseLabel : endLabel,\n          Debug.checkDefined(visitNode(node.expression, visitor, isExpression)),\n          /*location*/\n          node.expression\n        );\n        transformAndEmitEmbeddedStatement(node.thenStatement);\n        if (node.elseStatement) {\n          emitBreak(endLabel);\n          markLabel(elseLabel);\n          transformAndEmitEmbeddedStatement(node.elseStatement);\n        }\n        markLabel(endLabel);\n      } else {\n        emitStatement(visitNode(node, visitor, isStatement));\n      }\n    } else {\n      emitStatement(visitNode(node, visitor, isStatement));\n    }\n  }\n  function transformAndEmitDoStatement(node) {\n    if (containsYield(node)) {\n      const conditionLabel = defineLabel();\n      const loopLabel = defineLabel();\n      beginLoopBlock(\n        /*continueLabel*/\n        conditionLabel\n      );\n      markLabel(loopLabel);\n      transformAndEmitEmbeddedStatement(node.statement);\n      markLabel(conditionLabel);\n      emitBreakWhenTrue(loopLabel, Debug.checkDefined(visitNode(node.expression, visitor, isExpression)));\n      endLoopBlock();\n    } else {\n      emitStatement(visitNode(node, visitor, isStatement));\n    }\n  }\n  function visitDoStatement(node) {\n    if (inStatementContainingYield) {\n      beginScriptLoopBlock();\n      node = visitEachChild(node, visitor, context);\n      endLoopBlock();\n      return node;\n    } else {\n      return visitEachChild(node, visitor, context);\n    }\n  }\n  function transformAndEmitWhileStatement(node) {\n    if (containsYield(node)) {\n      const loopLabel = defineLabel();\n      const endLabel = beginLoopBlock(loopLabel);\n      markLabel(loopLabel);\n      emitBreakWhenFalse(endLabel, Debug.checkDefined(visitNode(node.expression, visitor, isExpression)));\n      transformAndEmitEmbeddedStatement(node.statement);\n      emitBreak(loopLabel);\n      endLoopBlock();\n    } else {\n      emitStatement(visitNode(node, visitor, isStatement));\n    }\n  }\n  function visitWhileStatement(node) {\n    if (inStatementContainingYield) {\n      beginScriptLoopBlock();\n      node = visitEachChild(node, visitor, context);\n      endLoopBlock();\n      return node;\n    } else {\n      return visitEachChild(node, visitor, context);\n    }\n  }\n  function transformAndEmitForStatement(node) {\n    if (containsYield(node)) {\n      const conditionLabel = defineLabel();\n      const incrementLabel = defineLabel();\n      const endLabel = beginLoopBlock(incrementLabel);\n      if (node.initializer) {\n        const initializer = node.initializer;\n        if (isVariableDeclarationList(initializer)) {\n          transformAndEmitVariableDeclarationList(initializer);\n        } else {\n          emitStatement(\n            setTextRange(\n              factory2.createExpressionStatement(\n                Debug.checkDefined(visitNode(initializer, visitor, isExpression))\n              ),\n              initializer\n            )\n          );\n        }\n      }\n      markLabel(conditionLabel);\n      if (node.condition) {\n        emitBreakWhenFalse(endLabel, Debug.checkDefined(visitNode(node.condition, visitor, isExpression)));\n      }\n      transformAndEmitEmbeddedStatement(node.statement);\n      markLabel(incrementLabel);\n      if (node.incrementor) {\n        emitStatement(\n          setTextRange(\n            factory2.createExpressionStatement(\n              Debug.checkDefined(visitNode(node.incrementor, visitor, isExpression))\n            ),\n            node.incrementor\n          )\n        );\n      }\n      emitBreak(conditionLabel);\n      endLoopBlock();\n    } else {\n      emitStatement(visitNode(node, visitor, isStatement));\n    }\n  }\n  function visitForStatement(node) {\n    if (inStatementContainingYield) {\n      beginScriptLoopBlock();\n    }\n    const initializer = node.initializer;\n    if (initializer && isVariableDeclarationList(initializer)) {\n      for (const variable of initializer.declarations) {\n        hoistVariableDeclaration(variable.name);\n      }\n      const variables = getInitializedVariables(initializer);\n      node = factory2.updateForStatement(\n        node,\n        variables.length > 0 ? factory2.inlineExpressions(map(variables, transformInitializedVariable)) : void 0,\n        visitNode(node.condition, visitor, isExpression),\n        visitNode(node.incrementor, visitor, isExpression),\n        visitIterationBody(node.statement, visitor, context)\n      );\n    } else {\n      node = visitEachChild(node, visitor, context);\n    }\n    if (inStatementContainingYield) {\n      endLoopBlock();\n    }\n    return node;\n  }\n  function transformAndEmitForInStatement(node) {\n    if (containsYield(node)) {\n      const obj = declareLocal();\n      const keysArray = declareLocal();\n      const key = declareLocal();\n      const keysIndex = factory2.createLoopVariable();\n      const initializer = node.initializer;\n      hoistVariableDeclaration(keysIndex);\n      emitAssignment(obj, Debug.checkDefined(visitNode(node.expression, visitor, isExpression)));\n      emitAssignment(keysArray, factory2.createArrayLiteralExpression());\n      emitStatement(\n        factory2.createForInStatement(\n          key,\n          obj,\n          factory2.createExpressionStatement(\n            factory2.createCallExpression(\n              factory2.createPropertyAccessExpression(keysArray, \"push\"),\n              /*typeArguments*/\n              void 0,\n              [key]\n            )\n          )\n        )\n      );\n      emitAssignment(keysIndex, factory2.createNumericLiteral(0));\n      const conditionLabel = defineLabel();\n      const incrementLabel = defineLabel();\n      const endLoopLabel = beginLoopBlock(incrementLabel);\n      markLabel(conditionLabel);\n      emitBreakWhenFalse(endLoopLabel, factory2.createLessThan(keysIndex, factory2.createPropertyAccessExpression(keysArray, \"length\")));\n      emitAssignment(key, factory2.createElementAccessExpression(keysArray, keysIndex));\n      emitBreakWhenFalse(incrementLabel, factory2.createBinaryExpression(key, 103 /* InKeyword */, obj));\n      let variable;\n      if (isVariableDeclarationList(initializer)) {\n        for (const variable2 of initializer.declarations) {\n          hoistVariableDeclaration(variable2.name);\n        }\n        variable = factory2.cloneNode(initializer.declarations[0].name);\n      } else {\n        variable = Debug.checkDefined(visitNode(initializer, visitor, isExpression));\n        Debug.assert(isLeftHandSideExpression(variable));\n      }\n      emitAssignment(variable, key);\n      transformAndEmitEmbeddedStatement(node.statement);\n      markLabel(incrementLabel);\n      emitStatement(factory2.createExpressionStatement(factory2.createPostfixIncrement(keysIndex)));\n      emitBreak(conditionLabel);\n      endLoopBlock();\n    } else {\n      emitStatement(visitNode(node, visitor, isStatement));\n    }\n  }\n  function visitForInStatement(node) {\n    if (inStatementContainingYield) {\n      beginScriptLoopBlock();\n    }\n    const initializer = node.initializer;\n    if (isVariableDeclarationList(initializer)) {\n      for (const variable of initializer.declarations) {\n        hoistVariableDeclaration(variable.name);\n      }\n      node = factory2.updateForInStatement(node, initializer.declarations[0].name, Debug.checkDefined(visitNode(node.expression, visitor, isExpression)), Debug.checkDefined(visitNode(node.statement, visitor, isStatement, factory2.liftToBlock)));\n    } else {\n      node = visitEachChild(node, visitor, context);\n    }\n    if (inStatementContainingYield) {\n      endLoopBlock();\n    }\n    return node;\n  }\n  function transformAndEmitContinueStatement(node) {\n    const label = findContinueTarget(node.label ? idText(node.label) : void 0);\n    if (label > 0) {\n      emitBreak(\n        label,\n        /*location*/\n        node\n      );\n    } else {\n      emitStatement(node);\n    }\n  }\n  function visitContinueStatement(node) {\n    if (inStatementContainingYield) {\n      const label = findContinueTarget(node.label && idText(node.label));\n      if (label > 0) {\n        return createInlineBreak(\n          label,\n          /*location*/\n          node\n        );\n      }\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function transformAndEmitBreakStatement(node) {\n    const label = findBreakTarget(node.label ? idText(node.label) : void 0);\n    if (label > 0) {\n      emitBreak(\n        label,\n        /*location*/\n        node\n      );\n    } else {\n      emitStatement(node);\n    }\n  }\n  function visitBreakStatement(node) {\n    if (inStatementContainingYield) {\n      const label = findBreakTarget(node.label && idText(node.label));\n      if (label > 0) {\n        return createInlineBreak(\n          label,\n          /*location*/\n          node\n        );\n      }\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function transformAndEmitReturnStatement(node) {\n    emitReturn(\n      visitNode(node.expression, visitor, isExpression),\n      /*location*/\n      node\n    );\n  }\n  function visitReturnStatement(node) {\n    return createInlineReturn(\n      visitNode(node.expression, visitor, isExpression),\n      /*location*/\n      node\n    );\n  }\n  function transformAndEmitWithStatement(node) {\n    if (containsYield(node)) {\n      beginWithBlock(cacheExpression(Debug.checkDefined(visitNode(node.expression, visitor, isExpression))));\n      transformAndEmitEmbeddedStatement(node.statement);\n      endWithBlock();\n    } else {\n      emitStatement(visitNode(node, visitor, isStatement));\n    }\n  }\n  function transformAndEmitSwitchStatement(node) {\n    if (containsYield(node.caseBlock)) {\n      const caseBlock = node.caseBlock;\n      const numClauses = caseBlock.clauses.length;\n      const endLabel = beginSwitchBlock();\n      const expression = cacheExpression(Debug.checkDefined(visitNode(node.expression, visitor, isExpression)));\n      const clauseLabels = [];\n      let defaultClauseIndex = -1;\n      for (let i = 0; i < numClauses; i++) {\n        const clause = caseBlock.clauses[i];\n        clauseLabels.push(defineLabel());\n        if (clause.kind === 298 /* DefaultClause */ && defaultClauseIndex === -1) {\n          defaultClauseIndex = i;\n        }\n      }\n      let clausesWritten = 0;\n      let pendingClauses = [];\n      while (clausesWritten < numClauses) {\n        let defaultClausesSkipped = 0;\n        for (let i = clausesWritten; i < numClauses; i++) {\n          const clause = caseBlock.clauses[i];\n          if (clause.kind === 297 /* CaseClause */) {\n            if (containsYield(clause.expression) && pendingClauses.length > 0) {\n              break;\n            }\n            pendingClauses.push(\n              factory2.createCaseClause(\n                Debug.checkDefined(visitNode(clause.expression, visitor, isExpression)),\n                [\n                  createInlineBreak(\n                    clauseLabels[i],\n                    /*location*/\n                    clause.expression\n                  )\n                ]\n              )\n            );\n          } else {\n            defaultClausesSkipped++;\n          }\n        }\n        if (pendingClauses.length) {\n          emitStatement(factory2.createSwitchStatement(expression, factory2.createCaseBlock(pendingClauses)));\n          clausesWritten += pendingClauses.length;\n          pendingClauses = [];\n        }\n        if (defaultClausesSkipped > 0) {\n          clausesWritten += defaultClausesSkipped;\n          defaultClausesSkipped = 0;\n        }\n      }\n      if (defaultClauseIndex >= 0) {\n        emitBreak(clauseLabels[defaultClauseIndex]);\n      } else {\n        emitBreak(endLabel);\n      }\n      for (let i = 0; i < numClauses; i++) {\n        markLabel(clauseLabels[i]);\n        transformAndEmitStatements(caseBlock.clauses[i].statements);\n      }\n      endSwitchBlock();\n    } else {\n      emitStatement(visitNode(node, visitor, isStatement));\n    }\n  }\n  function visitSwitchStatement(node) {\n    if (inStatementContainingYield) {\n      beginScriptSwitchBlock();\n    }\n    node = visitEachChild(node, visitor, context);\n    if (inStatementContainingYield) {\n      endSwitchBlock();\n    }\n    return node;\n  }\n  function transformAndEmitLabeledStatement(node) {\n    if (containsYield(node)) {\n      beginLabeledBlock(idText(node.label));\n      transformAndEmitEmbeddedStatement(node.statement);\n      endLabeledBlock();\n    } else {\n      emitStatement(visitNode(node, visitor, isStatement));\n    }\n  }\n  function visitLabeledStatement(node) {\n    if (inStatementContainingYield) {\n      beginScriptLabeledBlock(idText(node.label));\n    }\n    node = visitEachChild(node, visitor, context);\n    if (inStatementContainingYield) {\n      endLabeledBlock();\n    }\n    return node;\n  }\n  function transformAndEmitThrowStatement(node) {\n    emitThrow(\n      Debug.checkDefined(visitNode(node.expression ?? factory2.createVoidZero(), visitor, isExpression)),\n      /*location*/\n      node\n    );\n  }\n  function transformAndEmitTryStatement(node) {\n    if (containsYield(node)) {\n      beginExceptionBlock();\n      transformAndEmitEmbeddedStatement(node.tryBlock);\n      if (node.catchClause) {\n        beginCatchBlock(node.catchClause.variableDeclaration);\n        transformAndEmitEmbeddedStatement(node.catchClause.block);\n      }\n      if (node.finallyBlock) {\n        beginFinallyBlock();\n        transformAndEmitEmbeddedStatement(node.finallyBlock);\n      }\n      endExceptionBlock();\n    } else {\n      emitStatement(visitEachChild(node, visitor, context));\n    }\n  }\n  function containsYield(node) {\n    return !!node && (node.transformFlags & 1048576 /* ContainsYield */) !== 0;\n  }\n  function countInitialNodesWithoutYield(nodes) {\n    const numNodes = nodes.length;\n    for (let i = 0; i < numNodes; i++) {\n      if (containsYield(nodes[i])) {\n        return i;\n      }\n    }\n    return -1;\n  }\n  function onSubstituteNode(hint, node) {\n    node = previousOnSubstituteNode(hint, node);\n    if (hint === 1 /* Expression */) {\n      return substituteExpression(node);\n    }\n    return node;\n  }\n  function substituteExpression(node) {\n    if (isIdentifier(node)) {\n      return substituteExpressionIdentifier(node);\n    }\n    return node;\n  }\n  function substituteExpressionIdentifier(node) {\n    if (!isGeneratedIdentifier(node) && renamedCatchVariables && renamedCatchVariables.has(idText(node))) {\n      const original = getOriginalNode(node);\n      if (isIdentifier(original) && original.parent) {\n        const declaration = resolver.getReferencedValueDeclaration(original);\n        if (declaration) {\n          const name = renamedCatchVariableDeclarations[getOriginalNodeId(declaration)];\n          if (name) {\n            const clone2 = setParent(setTextRange(factory2.cloneNode(name), name), name.parent);\n            setSourceMapRange(clone2, node);\n            setCommentRange(clone2, node);\n            return clone2;\n          }\n        }\n      }\n    }\n    return node;\n  }\n  function cacheExpression(node) {\n    if (isGeneratedIdentifier(node) || getEmitFlags(node) & 8192 /* HelperName */) {\n      return node;\n    }\n    const temp = factory2.createTempVariable(hoistVariableDeclaration);\n    emitAssignment(\n      temp,\n      node,\n      /*location*/\n      node\n    );\n    return temp;\n  }\n  function declareLocal(name) {\n    const temp = name ? factory2.createUniqueName(name) : factory2.createTempVariable(\n      /*recordTempVariable*/\n      void 0\n    );\n    hoistVariableDeclaration(temp);\n    return temp;\n  }\n  function defineLabel() {\n    if (!labelOffsets) {\n      labelOffsets = [];\n    }\n    const label = nextLabelId;\n    nextLabelId++;\n    labelOffsets[label] = -1;\n    return label;\n  }\n  function markLabel(label) {\n    Debug.assert(labelOffsets !== void 0, \"No labels were defined.\");\n    labelOffsets[label] = operations ? operations.length : 0;\n  }\n  function beginBlock(block) {\n    if (!blocks) {\n      blocks = [];\n      blockActions = [];\n      blockOffsets = [];\n      blockStack = [];\n    }\n    const index = blockActions.length;\n    blockActions[index] = 0 /* Open */;\n    blockOffsets[index] = operations ? operations.length : 0;\n    blocks[index] = block;\n    blockStack.push(block);\n    return index;\n  }\n  function endBlock() {\n    const block = peekBlock();\n    if (block === void 0) return Debug.fail(\"beginBlock was never called.\");\n    const index = blockActions.length;\n    blockActions[index] = 1 /* Close */;\n    blockOffsets[index] = operations ? operations.length : 0;\n    blocks[index] = block;\n    blockStack.pop();\n    return block;\n  }\n  function peekBlock() {\n    return lastOrUndefined(blockStack);\n  }\n  function peekBlockKind() {\n    const block = peekBlock();\n    return block && block.kind;\n  }\n  function beginWithBlock(expression) {\n    const startLabel = defineLabel();\n    const endLabel = defineLabel();\n    markLabel(startLabel);\n    beginBlock({\n      kind: 1 /* With */,\n      expression,\n      startLabel,\n      endLabel\n    });\n  }\n  function endWithBlock() {\n    Debug.assert(peekBlockKind() === 1 /* With */);\n    const block = endBlock();\n    markLabel(block.endLabel);\n  }\n  function beginExceptionBlock() {\n    const startLabel = defineLabel();\n    const endLabel = defineLabel();\n    markLabel(startLabel);\n    beginBlock({\n      kind: 0 /* Exception */,\n      state: 0 /* Try */,\n      startLabel,\n      endLabel\n    });\n    emitNop();\n    return endLabel;\n  }\n  function beginCatchBlock(variable) {\n    Debug.assert(peekBlockKind() === 0 /* Exception */);\n    let name;\n    if (isGeneratedIdentifier(variable.name)) {\n      name = variable.name;\n      hoistVariableDeclaration(variable.name);\n    } else {\n      const text = idText(variable.name);\n      name = declareLocal(text);\n      if (!renamedCatchVariables) {\n        renamedCatchVariables = /* @__PURE__ */ new Map();\n        renamedCatchVariableDeclarations = [];\n        context.enableSubstitution(80 /* Identifier */);\n      }\n      renamedCatchVariables.set(text, true);\n      renamedCatchVariableDeclarations[getOriginalNodeId(variable)] = name;\n    }\n    const exception = peekBlock();\n    Debug.assert(exception.state < 1 /* Catch */);\n    const endLabel = exception.endLabel;\n    emitBreak(endLabel);\n    const catchLabel = defineLabel();\n    markLabel(catchLabel);\n    exception.state = 1 /* Catch */;\n    exception.catchVariable = name;\n    exception.catchLabel = catchLabel;\n    emitAssignment(name, factory2.createCallExpression(\n      factory2.createPropertyAccessExpression(state, \"sent\"),\n      /*typeArguments*/\n      void 0,\n      []\n    ));\n    emitNop();\n  }\n  function beginFinallyBlock() {\n    Debug.assert(peekBlockKind() === 0 /* Exception */);\n    const exception = peekBlock();\n    Debug.assert(exception.state < 2 /* Finally */);\n    const endLabel = exception.endLabel;\n    emitBreak(endLabel);\n    const finallyLabel = defineLabel();\n    markLabel(finallyLabel);\n    exception.state = 2 /* Finally */;\n    exception.finallyLabel = finallyLabel;\n  }\n  function endExceptionBlock() {\n    Debug.assert(peekBlockKind() === 0 /* Exception */);\n    const exception = endBlock();\n    const state2 = exception.state;\n    if (state2 < 2 /* Finally */) {\n      emitBreak(exception.endLabel);\n    } else {\n      emitEndfinally();\n    }\n    markLabel(exception.endLabel);\n    emitNop();\n    exception.state = 3 /* Done */;\n  }\n  function beginScriptLoopBlock() {\n    beginBlock({\n      kind: 3 /* Loop */,\n      isScript: true,\n      breakLabel: -1,\n      continueLabel: -1\n    });\n  }\n  function beginLoopBlock(continueLabel) {\n    const breakLabel = defineLabel();\n    beginBlock({\n      kind: 3 /* Loop */,\n      isScript: false,\n      breakLabel,\n      continueLabel\n    });\n    return breakLabel;\n  }\n  function endLoopBlock() {\n    Debug.assert(peekBlockKind() === 3 /* Loop */);\n    const block = endBlock();\n    const breakLabel = block.breakLabel;\n    if (!block.isScript) {\n      markLabel(breakLabel);\n    }\n  }\n  function beginScriptSwitchBlock() {\n    beginBlock({\n      kind: 2 /* Switch */,\n      isScript: true,\n      breakLabel: -1\n    });\n  }\n  function beginSwitchBlock() {\n    const breakLabel = defineLabel();\n    beginBlock({\n      kind: 2 /* Switch */,\n      isScript: false,\n      breakLabel\n    });\n    return breakLabel;\n  }\n  function endSwitchBlock() {\n    Debug.assert(peekBlockKind() === 2 /* Switch */);\n    const block = endBlock();\n    const breakLabel = block.breakLabel;\n    if (!block.isScript) {\n      markLabel(breakLabel);\n    }\n  }\n  function beginScriptLabeledBlock(labelText) {\n    beginBlock({\n      kind: 4 /* Labeled */,\n      isScript: true,\n      labelText,\n      breakLabel: -1\n    });\n  }\n  function beginLabeledBlock(labelText) {\n    const breakLabel = defineLabel();\n    beginBlock({\n      kind: 4 /* Labeled */,\n      isScript: false,\n      labelText,\n      breakLabel\n    });\n  }\n  function endLabeledBlock() {\n    Debug.assert(peekBlockKind() === 4 /* Labeled */);\n    const block = endBlock();\n    if (!block.isScript) {\n      markLabel(block.breakLabel);\n    }\n  }\n  function supportsUnlabeledBreak(block) {\n    return block.kind === 2 /* Switch */ || block.kind === 3 /* Loop */;\n  }\n  function supportsLabeledBreakOrContinue(block) {\n    return block.kind === 4 /* Labeled */;\n  }\n  function supportsUnlabeledContinue(block) {\n    return block.kind === 3 /* Loop */;\n  }\n  function hasImmediateContainingLabeledBlock(labelText, start) {\n    for (let j = start; j >= 0; j--) {\n      const containingBlock = blockStack[j];\n      if (supportsLabeledBreakOrContinue(containingBlock)) {\n        if (containingBlock.labelText === labelText) {\n          return true;\n        }\n      } else {\n        break;\n      }\n    }\n    return false;\n  }\n  function findBreakTarget(labelText) {\n    if (blockStack) {\n      if (labelText) {\n        for (let i = blockStack.length - 1; i >= 0; i--) {\n          const block = blockStack[i];\n          if (supportsLabeledBreakOrContinue(block) && block.labelText === labelText) {\n            return block.breakLabel;\n          } else if (supportsUnlabeledBreak(block) && hasImmediateContainingLabeledBlock(labelText, i - 1)) {\n            return block.breakLabel;\n          }\n        }\n      } else {\n        for (let i = blockStack.length - 1; i >= 0; i--) {\n          const block = blockStack[i];\n          if (supportsUnlabeledBreak(block)) {\n            return block.breakLabel;\n          }\n        }\n      }\n    }\n    return 0;\n  }\n  function findContinueTarget(labelText) {\n    if (blockStack) {\n      if (labelText) {\n        for (let i = blockStack.length - 1; i >= 0; i--) {\n          const block = blockStack[i];\n          if (supportsUnlabeledContinue(block) && hasImmediateContainingLabeledBlock(labelText, i - 1)) {\n            return block.continueLabel;\n          }\n        }\n      } else {\n        for (let i = blockStack.length - 1; i >= 0; i--) {\n          const block = blockStack[i];\n          if (supportsUnlabeledContinue(block)) {\n            return block.continueLabel;\n          }\n        }\n      }\n    }\n    return 0;\n  }\n  function createLabel(label) {\n    if (label !== void 0 && label > 0) {\n      if (labelExpressions === void 0) {\n        labelExpressions = [];\n      }\n      const expression = factory2.createNumericLiteral(Number.MAX_SAFE_INTEGER);\n      if (labelExpressions[label] === void 0) {\n        labelExpressions[label] = [expression];\n      } else {\n        labelExpressions[label].push(expression);\n      }\n      return expression;\n    }\n    return factory2.createOmittedExpression();\n  }\n  function createInstruction(instruction) {\n    const literal = factory2.createNumericLiteral(instruction);\n    addSyntheticTrailingComment(literal, 3 /* MultiLineCommentTrivia */, getInstructionName(instruction));\n    return literal;\n  }\n  function createInlineBreak(label, location) {\n    Debug.assertLessThan(0, label, \"Invalid label\");\n    return setTextRange(\n      factory2.createReturnStatement(\n        factory2.createArrayLiteralExpression([\n          createInstruction(3 /* Break */),\n          createLabel(label)\n        ])\n      ),\n      location\n    );\n  }\n  function createInlineReturn(expression, location) {\n    return setTextRange(\n      factory2.createReturnStatement(\n        factory2.createArrayLiteralExpression(\n          expression ? [createInstruction(2 /* Return */), expression] : [createInstruction(2 /* Return */)]\n        )\n      ),\n      location\n    );\n  }\n  function createGeneratorResume(location) {\n    return setTextRange(\n      factory2.createCallExpression(\n        factory2.createPropertyAccessExpression(state, \"sent\"),\n        /*typeArguments*/\n        void 0,\n        []\n      ),\n      location\n    );\n  }\n  function emitNop() {\n    emitWorker(0 /* Nop */);\n  }\n  function emitStatement(node) {\n    if (node) {\n      emitWorker(1 /* Statement */, [node]);\n    } else {\n      emitNop();\n    }\n  }\n  function emitAssignment(left, right, location) {\n    emitWorker(2 /* Assign */, [left, right], location);\n  }\n  function emitBreak(label, location) {\n    emitWorker(3 /* Break */, [label], location);\n  }\n  function emitBreakWhenTrue(label, condition, location) {\n    emitWorker(4 /* BreakWhenTrue */, [label, condition], location);\n  }\n  function emitBreakWhenFalse(label, condition, location) {\n    emitWorker(5 /* BreakWhenFalse */, [label, condition], location);\n  }\n  function emitYieldStar(expression, location) {\n    emitWorker(7 /* YieldStar */, [expression], location);\n  }\n  function emitYield(expression, location) {\n    emitWorker(6 /* Yield */, [expression], location);\n  }\n  function emitReturn(expression, location) {\n    emitWorker(8 /* Return */, [expression], location);\n  }\n  function emitThrow(expression, location) {\n    emitWorker(9 /* Throw */, [expression], location);\n  }\n  function emitEndfinally() {\n    emitWorker(10 /* Endfinally */);\n  }\n  function emitWorker(code, args, location) {\n    if (operations === void 0) {\n      operations = [];\n      operationArguments = [];\n      operationLocations = [];\n    }\n    if (labelOffsets === void 0) {\n      markLabel(defineLabel());\n    }\n    const operationIndex = operations.length;\n    operations[operationIndex] = code;\n    operationArguments[operationIndex] = args;\n    operationLocations[operationIndex] = location;\n  }\n  function build2() {\n    blockIndex = 0;\n    labelNumber = 0;\n    labelNumbers = void 0;\n    lastOperationWasAbrupt = false;\n    lastOperationWasCompletion = false;\n    clauses = void 0;\n    statements = void 0;\n    exceptionBlockStack = void 0;\n    currentExceptionBlock = void 0;\n    withBlockStack = void 0;\n    const buildResult = buildStatements();\n    return emitHelpers().createGeneratorHelper(\n      setEmitFlags(\n        factory2.createFunctionExpression(\n          /*modifiers*/\n          void 0,\n          /*asteriskToken*/\n          void 0,\n          /*name*/\n          void 0,\n          /*typeParameters*/\n          void 0,\n          [factory2.createParameterDeclaration(\n            /*modifiers*/\n            void 0,\n            /*dotDotDotToken*/\n            void 0,\n            state\n          )],\n          /*type*/\n          void 0,\n          factory2.createBlock(\n            buildResult,\n            /*multiLine*/\n            buildResult.length > 0\n          )\n        ),\n        1048576 /* ReuseTempVariableScope */\n      )\n    );\n  }\n  function buildStatements() {\n    if (operations) {\n      for (let operationIndex = 0; operationIndex < operations.length; operationIndex++) {\n        writeOperation(operationIndex);\n      }\n      flushFinalLabel(operations.length);\n    } else {\n      flushFinalLabel(0);\n    }\n    if (clauses) {\n      const labelExpression = factory2.createPropertyAccessExpression(state, \"label\");\n      const switchStatement = factory2.createSwitchStatement(labelExpression, factory2.createCaseBlock(clauses));\n      return [startOnNewLine(switchStatement)];\n    }\n    if (statements) {\n      return statements;\n    }\n    return [];\n  }\n  function flushLabel() {\n    if (!statements) {\n      return;\n    }\n    appendLabel(\n      /*markLabelEnd*/\n      !lastOperationWasAbrupt\n    );\n    lastOperationWasAbrupt = false;\n    lastOperationWasCompletion = false;\n    labelNumber++;\n  }\n  function flushFinalLabel(operationIndex) {\n    if (isFinalLabelReachable(operationIndex)) {\n      tryEnterLabel(operationIndex);\n      withBlockStack = void 0;\n      writeReturn(\n        /*expression*/\n        void 0,\n        /*operationLocation*/\n        void 0\n      );\n    }\n    if (statements && clauses) {\n      appendLabel(\n        /*markLabelEnd*/\n        false\n      );\n    }\n    updateLabelExpressions();\n  }\n  function isFinalLabelReachable(operationIndex) {\n    if (!lastOperationWasCompletion) {\n      return true;\n    }\n    if (!labelOffsets || !labelExpressions) {\n      return false;\n    }\n    for (let label = 0; label < labelOffsets.length; label++) {\n      if (labelOffsets[label] === operationIndex && labelExpressions[label]) {\n        return true;\n      }\n    }\n    return false;\n  }\n  function appendLabel(markLabelEnd) {\n    if (!clauses) {\n      clauses = [];\n    }\n    if (statements) {\n      if (withBlockStack) {\n        for (let i = withBlockStack.length - 1; i >= 0; i--) {\n          const withBlock = withBlockStack[i];\n          statements = [factory2.createWithStatement(withBlock.expression, factory2.createBlock(statements))];\n        }\n      }\n      if (currentExceptionBlock) {\n        const { startLabel, catchLabel, finallyLabel, endLabel } = currentExceptionBlock;\n        statements.unshift(\n          factory2.createExpressionStatement(\n            factory2.createCallExpression(\n              factory2.createPropertyAccessExpression(factory2.createPropertyAccessExpression(state, \"trys\"), \"push\"),\n              /*typeArguments*/\n              void 0,\n              [\n                factory2.createArrayLiteralExpression([\n                  createLabel(startLabel),\n                  createLabel(catchLabel),\n                  createLabel(finallyLabel),\n                  createLabel(endLabel)\n                ])\n              ]\n            )\n          )\n        );\n        currentExceptionBlock = void 0;\n      }\n      if (markLabelEnd) {\n        statements.push(\n          factory2.createExpressionStatement(\n            factory2.createAssignment(\n              factory2.createPropertyAccessExpression(state, \"label\"),\n              factory2.createNumericLiteral(labelNumber + 1)\n            )\n          )\n        );\n      }\n    }\n    clauses.push(\n      factory2.createCaseClause(\n        factory2.createNumericLiteral(labelNumber),\n        statements || []\n      )\n    );\n    statements = void 0;\n  }\n  function tryEnterLabel(operationIndex) {\n    if (!labelOffsets) {\n      return;\n    }\n    for (let label = 0; label < labelOffsets.length; label++) {\n      if (labelOffsets[label] === operationIndex) {\n        flushLabel();\n        if (labelNumbers === void 0) {\n          labelNumbers = [];\n        }\n        if (labelNumbers[labelNumber] === void 0) {\n          labelNumbers[labelNumber] = [label];\n        } else {\n          labelNumbers[labelNumber].push(label);\n        }\n      }\n    }\n  }\n  function updateLabelExpressions() {\n    if (labelExpressions !== void 0 && labelNumbers !== void 0) {\n      for (let labelNumber2 = 0; labelNumber2 < labelNumbers.length; labelNumber2++) {\n        const labels = labelNumbers[labelNumber2];\n        if (labels !== void 0) {\n          for (const label of labels) {\n            const expressions = labelExpressions[label];\n            if (expressions !== void 0) {\n              for (const expression of expressions) {\n                expression.text = String(labelNumber2);\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n  function tryEnterOrLeaveBlock(operationIndex) {\n    if (blocks) {\n      for (; blockIndex < blockActions.length && blockOffsets[blockIndex] <= operationIndex; blockIndex++) {\n        const block = blocks[blockIndex];\n        const blockAction = blockActions[blockIndex];\n        switch (block.kind) {\n          case 0 /* Exception */:\n            if (blockAction === 0 /* Open */) {\n              if (!exceptionBlockStack) {\n                exceptionBlockStack = [];\n              }\n              if (!statements) {\n                statements = [];\n              }\n              exceptionBlockStack.push(currentExceptionBlock);\n              currentExceptionBlock = block;\n            } else if (blockAction === 1 /* Close */) {\n              currentExceptionBlock = exceptionBlockStack.pop();\n            }\n            break;\n          case 1 /* With */:\n            if (blockAction === 0 /* Open */) {\n              if (!withBlockStack) {\n                withBlockStack = [];\n              }\n              withBlockStack.push(block);\n            } else if (blockAction === 1 /* Close */) {\n              withBlockStack.pop();\n            }\n            break;\n        }\n      }\n    }\n  }\n  function writeOperation(operationIndex) {\n    tryEnterLabel(operationIndex);\n    tryEnterOrLeaveBlock(operationIndex);\n    if (lastOperationWasAbrupt) {\n      return;\n    }\n    lastOperationWasAbrupt = false;\n    lastOperationWasCompletion = false;\n    const opcode = operations[operationIndex];\n    if (opcode === 0 /* Nop */) {\n      return;\n    } else if (opcode === 10 /* Endfinally */) {\n      return writeEndfinally();\n    }\n    const args = operationArguments[operationIndex];\n    if (opcode === 1 /* Statement */) {\n      return writeStatement(args[0]);\n    }\n    const location = operationLocations[operationIndex];\n    switch (opcode) {\n      case 2 /* Assign */:\n        return writeAssign(args[0], args[1], location);\n      case 3 /* Break */:\n        return writeBreak(args[0], location);\n      case 4 /* BreakWhenTrue */:\n        return writeBreakWhenTrue(args[0], args[1], location);\n      case 5 /* BreakWhenFalse */:\n        return writeBreakWhenFalse(args[0], args[1], location);\n      case 6 /* Yield */:\n        return writeYield(args[0], location);\n      case 7 /* YieldStar */:\n        return writeYieldStar(args[0], location);\n      case 8 /* Return */:\n        return writeReturn(args[0], location);\n      case 9 /* Throw */:\n        return writeThrow(args[0], location);\n    }\n  }\n  function writeStatement(statement) {\n    if (statement) {\n      if (!statements) {\n        statements = [statement];\n      } else {\n        statements.push(statement);\n      }\n    }\n  }\n  function writeAssign(left, right, operationLocation) {\n    writeStatement(setTextRange(factory2.createExpressionStatement(factory2.createAssignment(left, right)), operationLocation));\n  }\n  function writeThrow(expression, operationLocation) {\n    lastOperationWasAbrupt = true;\n    lastOperationWasCompletion = true;\n    writeStatement(setTextRange(factory2.createThrowStatement(expression), operationLocation));\n  }\n  function writeReturn(expression, operationLocation) {\n    lastOperationWasAbrupt = true;\n    lastOperationWasCompletion = true;\n    writeStatement(\n      setEmitFlags(\n        setTextRange(\n          factory2.createReturnStatement(\n            factory2.createArrayLiteralExpression(\n              expression ? [createInstruction(2 /* Return */), expression] : [createInstruction(2 /* Return */)]\n            )\n          ),\n          operationLocation\n        ),\n        768 /* NoTokenSourceMaps */\n      )\n    );\n  }\n  function writeBreak(label, operationLocation) {\n    lastOperationWasAbrupt = true;\n    writeStatement(\n      setEmitFlags(\n        setTextRange(\n          factory2.createReturnStatement(\n            factory2.createArrayLiteralExpression([\n              createInstruction(3 /* Break */),\n              createLabel(label)\n            ])\n          ),\n          operationLocation\n        ),\n        768 /* NoTokenSourceMaps */\n      )\n    );\n  }\n  function writeBreakWhenTrue(label, condition, operationLocation) {\n    writeStatement(\n      setEmitFlags(\n        factory2.createIfStatement(\n          condition,\n          setEmitFlags(\n            setTextRange(\n              factory2.createReturnStatement(\n                factory2.createArrayLiteralExpression([\n                  createInstruction(3 /* Break */),\n                  createLabel(label)\n                ])\n              ),\n              operationLocation\n            ),\n            768 /* NoTokenSourceMaps */\n          )\n        ),\n        1 /* SingleLine */\n      )\n    );\n  }\n  function writeBreakWhenFalse(label, condition, operationLocation) {\n    writeStatement(\n      setEmitFlags(\n        factory2.createIfStatement(\n          factory2.createLogicalNot(condition),\n          setEmitFlags(\n            setTextRange(\n              factory2.createReturnStatement(\n                factory2.createArrayLiteralExpression([\n                  createInstruction(3 /* Break */),\n                  createLabel(label)\n                ])\n              ),\n              operationLocation\n            ),\n            768 /* NoTokenSourceMaps */\n          )\n        ),\n        1 /* SingleLine */\n      )\n    );\n  }\n  function writeYield(expression, operationLocation) {\n    lastOperationWasAbrupt = true;\n    writeStatement(\n      setEmitFlags(\n        setTextRange(\n          factory2.createReturnStatement(\n            factory2.createArrayLiteralExpression(\n              expression ? [createInstruction(4 /* Yield */), expression] : [createInstruction(4 /* Yield */)]\n            )\n          ),\n          operationLocation\n        ),\n        768 /* NoTokenSourceMaps */\n      )\n    );\n  }\n  function writeYieldStar(expression, operationLocation) {\n    lastOperationWasAbrupt = true;\n    writeStatement(\n      setEmitFlags(\n        setTextRange(\n          factory2.createReturnStatement(\n            factory2.createArrayLiteralExpression([\n              createInstruction(5 /* YieldStar */),\n              expression\n            ])\n          ),\n          operationLocation\n        ),\n        768 /* NoTokenSourceMaps */\n      )\n    );\n  }\n  function writeEndfinally() {\n    lastOperationWasAbrupt = true;\n    writeStatement(\n      factory2.createReturnStatement(\n        factory2.createArrayLiteralExpression([\n          createInstruction(7 /* Endfinally */)\n        ])\n      )\n    );\n  }\n}\n\n// src/compiler/transformers/module/module.ts\nfunction transformModule(context) {\n  function getTransformModuleDelegate(moduleKind2) {\n    switch (moduleKind2) {\n      case 2 /* AMD */:\n        return transformAMDModule;\n      case 3 /* UMD */:\n        return transformUMDModule;\n      default:\n        return transformCommonJSModule;\n    }\n  }\n  const {\n    factory: factory2,\n    getEmitHelperFactory: emitHelpers,\n    startLexicalEnvironment,\n    endLexicalEnvironment,\n    hoistVariableDeclaration\n  } = context;\n  const compilerOptions = context.getCompilerOptions();\n  const resolver = context.getEmitResolver();\n  const host = context.getEmitHost();\n  const languageVersion = getEmitScriptTarget(compilerOptions);\n  const moduleKind = getEmitModuleKind(compilerOptions);\n  const previousOnSubstituteNode = context.onSubstituteNode;\n  const previousOnEmitNode = context.onEmitNode;\n  context.onSubstituteNode = onSubstituteNode;\n  context.onEmitNode = onEmitNode;\n  context.enableSubstitution(214 /* CallExpression */);\n  context.enableSubstitution(216 /* TaggedTemplateExpression */);\n  context.enableSubstitution(80 /* Identifier */);\n  context.enableSubstitution(227 /* BinaryExpression */);\n  context.enableSubstitution(305 /* ShorthandPropertyAssignment */);\n  context.enableEmitNotification(308 /* SourceFile */);\n  const moduleInfoMap = [];\n  let currentSourceFile;\n  let currentModuleInfo;\n  let importsAndRequiresToRewriteOrShim;\n  const noSubstitution = [];\n  let needUMDDynamicImportHelper;\n  return chainBundle(context, transformSourceFile);\n  function transformSourceFile(node) {\n    if (node.isDeclarationFile || !(isEffectiveExternalModule(node, compilerOptions) || node.transformFlags & 8388608 /* ContainsDynamicImport */ || isJsonSourceFile(node) && hasJsonModuleEmitEnabled(compilerOptions) && compilerOptions.outFile)) {\n      return node;\n    }\n    currentSourceFile = node;\n    currentModuleInfo = collectExternalModuleInfo(context, node);\n    moduleInfoMap[getOriginalNodeId(node)] = currentModuleInfo;\n    if (compilerOptions.rewriteRelativeImportExtensions) {\n      forEachDynamicImportOrRequireCall(\n        node,\n        /*includeTypeSpaceImports*/\n        false,\n        /*requireStringLiteralLikeArgument*/\n        false,\n        (node2) => {\n          if (!isStringLiteralLike(node2.arguments[0]) || shouldRewriteModuleSpecifier(node2.arguments[0].text, compilerOptions)) {\n            importsAndRequiresToRewriteOrShim = append(importsAndRequiresToRewriteOrShim, node2);\n          }\n        }\n      );\n    }\n    const transformModule2 = getTransformModuleDelegate(moduleKind);\n    const updated = transformModule2(node);\n    currentSourceFile = void 0;\n    currentModuleInfo = void 0;\n    needUMDDynamicImportHelper = false;\n    return updated;\n  }\n  function shouldEmitUnderscoreUnderscoreESModule() {\n    if (hasJSFileExtension(currentSourceFile.fileName) && currentSourceFile.commonJsModuleIndicator && (!currentSourceFile.externalModuleIndicator || currentSourceFile.externalModuleIndicator === true)) {\n      return false;\n    }\n    if (!currentModuleInfo.exportEquals && isExternalModule(currentSourceFile)) {\n      return true;\n    }\n    return false;\n  }\n  function transformCommonJSModule(node) {\n    startLexicalEnvironment();\n    const statements = [];\n    const ensureUseStrict = getStrictOptionValue(compilerOptions, \"alwaysStrict\") || isExternalModule(currentSourceFile);\n    const statementOffset = factory2.copyPrologue(node.statements, statements, ensureUseStrict && !isJsonSourceFile(node), topLevelVisitor);\n    if (shouldEmitUnderscoreUnderscoreESModule()) {\n      append(statements, createUnderscoreUnderscoreESModule());\n    }\n    if (some(currentModuleInfo.exportedNames)) {\n      const chunkSize = 50;\n      for (let i = 0; i < currentModuleInfo.exportedNames.length; i += chunkSize) {\n        append(\n          statements,\n          factory2.createExpressionStatement(\n            reduceLeft(\n              currentModuleInfo.exportedNames.slice(i, i + chunkSize),\n              (prev, nextId) => nextId.kind === 11 /* StringLiteral */ ? factory2.createAssignment(factory2.createElementAccessExpression(factory2.createIdentifier(\"exports\"), factory2.createStringLiteral(nextId.text)), prev) : factory2.createAssignment(factory2.createPropertyAccessExpression(factory2.createIdentifier(\"exports\"), factory2.createIdentifier(idText(nextId))), prev),\n              factory2.createVoidZero()\n            )\n          )\n        );\n      }\n    }\n    for (const f of currentModuleInfo.exportedFunctions) {\n      appendExportsOfHoistedDeclaration(statements, f);\n    }\n    append(statements, visitNode(currentModuleInfo.externalHelpersImportDeclaration, topLevelVisitor, isStatement));\n    addRange(statements, visitNodes2(node.statements, topLevelVisitor, isStatement, statementOffset));\n    addExportEqualsIfNeeded(\n      statements,\n      /*emitAsReturn*/\n      false\n    );\n    insertStatementsAfterStandardPrologue(statements, endLexicalEnvironment());\n    const updated = factory2.updateSourceFile(node, setTextRange(factory2.createNodeArray(statements), node.statements));\n    addEmitHelpers(updated, context.readEmitHelpers());\n    return updated;\n  }\n  function transformAMDModule(node) {\n    const define = factory2.createIdentifier(\"define\");\n    const moduleName = tryGetModuleNameFromFile(factory2, node, host, compilerOptions);\n    const jsonSourceFile = isJsonSourceFile(node) && node;\n    const { aliasedModuleNames, unaliasedModuleNames, importAliasNames } = collectAsynchronousDependencies(\n      node,\n      /*includeNonAmdDependencies*/\n      true\n    );\n    const updated = factory2.updateSourceFile(\n      node,\n      setTextRange(\n        factory2.createNodeArray([\n          factory2.createExpressionStatement(\n            factory2.createCallExpression(\n              define,\n              /*typeArguments*/\n              void 0,\n              [\n                // Add the module name (if provided).\n                ...moduleName ? [moduleName] : [],\n                // Add the dependency array argument:\n                //\n                //     [\"require\", \"exports\", module1\", \"module2\", ...]\n                factory2.createArrayLiteralExpression(\n                  jsonSourceFile ? emptyArray : [\n                    factory2.createStringLiteral(\"require\"),\n                    factory2.createStringLiteral(\"exports\"),\n                    ...aliasedModuleNames,\n                    ...unaliasedModuleNames\n                  ]\n                ),\n                // Add the module body function argument:\n                //\n                //     function (require, exports, module1, module2) ...\n                jsonSourceFile ? jsonSourceFile.statements.length ? jsonSourceFile.statements[0].expression : factory2.createObjectLiteralExpression() : factory2.createFunctionExpression(\n                  /*modifiers*/\n                  void 0,\n                  /*asteriskToken*/\n                  void 0,\n                  /*name*/\n                  void 0,\n                  /*typeParameters*/\n                  void 0,\n                  [\n                    factory2.createParameterDeclaration(\n                      /*modifiers*/\n                      void 0,\n                      /*dotDotDotToken*/\n                      void 0,\n                      \"require\"\n                    ),\n                    factory2.createParameterDeclaration(\n                      /*modifiers*/\n                      void 0,\n                      /*dotDotDotToken*/\n                      void 0,\n                      \"exports\"\n                    ),\n                    ...importAliasNames\n                  ],\n                  /*type*/\n                  void 0,\n                  transformAsynchronousModuleBody(node)\n                )\n              ]\n            )\n          )\n        ]),\n        /*location*/\n        node.statements\n      )\n    );\n    addEmitHelpers(updated, context.readEmitHelpers());\n    return updated;\n  }\n  function transformUMDModule(node) {\n    const { aliasedModuleNames, unaliasedModuleNames, importAliasNames } = collectAsynchronousDependencies(\n      node,\n      /*includeNonAmdDependencies*/\n      false\n    );\n    const moduleName = tryGetModuleNameFromFile(factory2, node, host, compilerOptions);\n    const umdHeader = factory2.createFunctionExpression(\n      /*modifiers*/\n      void 0,\n      /*asteriskToken*/\n      void 0,\n      /*name*/\n      void 0,\n      /*typeParameters*/\n      void 0,\n      [factory2.createParameterDeclaration(\n        /*modifiers*/\n        void 0,\n        /*dotDotDotToken*/\n        void 0,\n        \"factory\"\n      )],\n      /*type*/\n      void 0,\n      setTextRange(\n        factory2.createBlock(\n          [\n            factory2.createIfStatement(\n              factory2.createLogicalAnd(\n                factory2.createTypeCheck(factory2.createIdentifier(\"module\"), \"object\"),\n                factory2.createTypeCheck(factory2.createPropertyAccessExpression(factory2.createIdentifier(\"module\"), \"exports\"), \"object\")\n              ),\n              factory2.createBlock([\n                factory2.createVariableStatement(\n                  /*modifiers*/\n                  void 0,\n                  [\n                    factory2.createVariableDeclaration(\n                      \"v\",\n                      /*exclamationToken*/\n                      void 0,\n                      /*type*/\n                      void 0,\n                      factory2.createCallExpression(\n                        factory2.createIdentifier(\"factory\"),\n                        /*typeArguments*/\n                        void 0,\n                        [\n                          factory2.createIdentifier(\"require\"),\n                          factory2.createIdentifier(\"exports\")\n                        ]\n                      )\n                    )\n                  ]\n                ),\n                setEmitFlags(\n                  factory2.createIfStatement(\n                    factory2.createStrictInequality(\n                      factory2.createIdentifier(\"v\"),\n                      factory2.createIdentifier(\"undefined\")\n                    ),\n                    factory2.createExpressionStatement(\n                      factory2.createAssignment(\n                        factory2.createPropertyAccessExpression(factory2.createIdentifier(\"module\"), \"exports\"),\n                        factory2.createIdentifier(\"v\")\n                      )\n                    )\n                  ),\n                  1 /* SingleLine */\n                )\n              ]),\n              factory2.createIfStatement(\n                factory2.createLogicalAnd(\n                  factory2.createTypeCheck(factory2.createIdentifier(\"define\"), \"function\"),\n                  factory2.createPropertyAccessExpression(factory2.createIdentifier(\"define\"), \"amd\")\n                ),\n                factory2.createBlock([\n                  factory2.createExpressionStatement(\n                    factory2.createCallExpression(\n                      factory2.createIdentifier(\"define\"),\n                      /*typeArguments*/\n                      void 0,\n                      [\n                        // Add the module name (if provided).\n                        ...moduleName ? [moduleName] : [],\n                        factory2.createArrayLiteralExpression([\n                          factory2.createStringLiteral(\"require\"),\n                          factory2.createStringLiteral(\"exports\"),\n                          ...aliasedModuleNames,\n                          ...unaliasedModuleNames\n                        ]),\n                        factory2.createIdentifier(\"factory\")\n                      ]\n                    )\n                  )\n                ])\n              )\n            )\n          ],\n          /*multiLine*/\n          true\n        ),\n        /*location*/\n        void 0\n      )\n    );\n    const updated = factory2.updateSourceFile(\n      node,\n      setTextRange(\n        factory2.createNodeArray([\n          factory2.createExpressionStatement(\n            factory2.createCallExpression(\n              umdHeader,\n              /*typeArguments*/\n              void 0,\n              [\n                // Add the module body function argument:\n                //\n                //     function (require, exports) ...\n                factory2.createFunctionExpression(\n                  /*modifiers*/\n                  void 0,\n                  /*asteriskToken*/\n                  void 0,\n                  /*name*/\n                  void 0,\n                  /*typeParameters*/\n                  void 0,\n                  [\n                    factory2.createParameterDeclaration(\n                      /*modifiers*/\n                      void 0,\n                      /*dotDotDotToken*/\n                      void 0,\n                      \"require\"\n                    ),\n                    factory2.createParameterDeclaration(\n                      /*modifiers*/\n                      void 0,\n                      /*dotDotDotToken*/\n                      void 0,\n                      \"exports\"\n                    ),\n                    ...importAliasNames\n                  ],\n                  /*type*/\n                  void 0,\n                  transformAsynchronousModuleBody(node)\n                )\n              ]\n            )\n          )\n        ]),\n        /*location*/\n        node.statements\n      )\n    );\n    addEmitHelpers(updated, context.readEmitHelpers());\n    return updated;\n  }\n  function collectAsynchronousDependencies(node, includeNonAmdDependencies) {\n    const aliasedModuleNames = [];\n    const unaliasedModuleNames = [];\n    const importAliasNames = [];\n    for (const amdDependency of node.amdDependencies) {\n      if (amdDependency.name) {\n        aliasedModuleNames.push(factory2.createStringLiteral(amdDependency.path));\n        importAliasNames.push(factory2.createParameterDeclaration(\n          /*modifiers*/\n          void 0,\n          /*dotDotDotToken*/\n          void 0,\n          amdDependency.name\n        ));\n      } else {\n        unaliasedModuleNames.push(factory2.createStringLiteral(amdDependency.path));\n      }\n    }\n    for (const importNode of currentModuleInfo.externalImports) {\n      const externalModuleName = getExternalModuleNameLiteral(factory2, importNode, currentSourceFile, host, resolver, compilerOptions);\n      const importAliasName = getLocalNameForExternalImport(factory2, importNode, currentSourceFile);\n      if (externalModuleName) {\n        if (includeNonAmdDependencies && importAliasName) {\n          setEmitFlags(importAliasName, 8 /* NoSubstitution */);\n          aliasedModuleNames.push(externalModuleName);\n          importAliasNames.push(factory2.createParameterDeclaration(\n            /*modifiers*/\n            void 0,\n            /*dotDotDotToken*/\n            void 0,\n            importAliasName\n          ));\n        } else {\n          unaliasedModuleNames.push(externalModuleName);\n        }\n      }\n    }\n    return { aliasedModuleNames, unaliasedModuleNames, importAliasNames };\n  }\n  function getAMDImportExpressionForImport(node) {\n    if (isImportEqualsDeclaration(node) || isExportDeclaration(node) || !getExternalModuleNameLiteral(factory2, node, currentSourceFile, host, resolver, compilerOptions)) {\n      return void 0;\n    }\n    const name = getLocalNameForExternalImport(factory2, node, currentSourceFile);\n    const expr = getHelperExpressionForImport(node, name);\n    if (expr === name) {\n      return void 0;\n    }\n    return factory2.createExpressionStatement(factory2.createAssignment(name, expr));\n  }\n  function transformAsynchronousModuleBody(node) {\n    startLexicalEnvironment();\n    const statements = [];\n    const statementOffset = factory2.copyPrologue(\n      node.statements,\n      statements,\n      /*ensureUseStrict*/\n      true,\n      topLevelVisitor\n    );\n    if (shouldEmitUnderscoreUnderscoreESModule()) {\n      append(statements, createUnderscoreUnderscoreESModule());\n    }\n    if (some(currentModuleInfo.exportedNames)) {\n      append(\n        statements,\n        factory2.createExpressionStatement(reduceLeft(currentModuleInfo.exportedNames, (prev, nextId) => nextId.kind === 11 /* StringLiteral */ ? factory2.createAssignment(factory2.createElementAccessExpression(factory2.createIdentifier(\"exports\"), factory2.createStringLiteral(nextId.text)), prev) : factory2.createAssignment(factory2.createPropertyAccessExpression(factory2.createIdentifier(\"exports\"), factory2.createIdentifier(idText(nextId))), prev), factory2.createVoidZero()))\n      );\n    }\n    for (const f of currentModuleInfo.exportedFunctions) {\n      appendExportsOfHoistedDeclaration(statements, f);\n    }\n    append(statements, visitNode(currentModuleInfo.externalHelpersImportDeclaration, topLevelVisitor, isStatement));\n    if (moduleKind === 2 /* AMD */) {\n      addRange(statements, mapDefined(currentModuleInfo.externalImports, getAMDImportExpressionForImport));\n    }\n    addRange(statements, visitNodes2(node.statements, topLevelVisitor, isStatement, statementOffset));\n    addExportEqualsIfNeeded(\n      statements,\n      /*emitAsReturn*/\n      true\n    );\n    insertStatementsAfterStandardPrologue(statements, endLexicalEnvironment());\n    const body = factory2.createBlock(\n      statements,\n      /*multiLine*/\n      true\n    );\n    if (needUMDDynamicImportHelper) {\n      addEmitHelper(body, dynamicImportUMDHelper);\n    }\n    return body;\n  }\n  function addExportEqualsIfNeeded(statements, emitAsReturn) {\n    if (currentModuleInfo.exportEquals) {\n      const expressionResult = visitNode(currentModuleInfo.exportEquals.expression, visitor, isExpression);\n      if (expressionResult) {\n        if (emitAsReturn) {\n          const statement = factory2.createReturnStatement(expressionResult);\n          setTextRange(statement, currentModuleInfo.exportEquals);\n          setEmitFlags(statement, 768 /* NoTokenSourceMaps */ | 3072 /* NoComments */);\n          statements.push(statement);\n        } else {\n          const statement = factory2.createExpressionStatement(\n            factory2.createAssignment(\n              factory2.createPropertyAccessExpression(\n                factory2.createIdentifier(\"module\"),\n                \"exports\"\n              ),\n              expressionResult\n            )\n          );\n          setTextRange(statement, currentModuleInfo.exportEquals);\n          setEmitFlags(statement, 3072 /* NoComments */);\n          statements.push(statement);\n        }\n      }\n    }\n  }\n  function topLevelVisitor(node) {\n    switch (node.kind) {\n      case 273 /* ImportDeclaration */:\n        return visitTopLevelImportDeclaration(node);\n      case 272 /* ImportEqualsDeclaration */:\n        return visitTopLevelImportEqualsDeclaration(node);\n      case 279 /* ExportDeclaration */:\n        return visitTopLevelExportDeclaration(node);\n      case 278 /* ExportAssignment */:\n        return visitTopLevelExportAssignment(node);\n      default:\n        return topLevelNestedVisitor(node);\n    }\n  }\n  function topLevelNestedVisitor(node) {\n    switch (node.kind) {\n      case 244 /* VariableStatement */:\n        return visitVariableStatement(node);\n      case 263 /* FunctionDeclaration */:\n        return visitFunctionDeclaration(node);\n      case 264 /* ClassDeclaration */:\n        return visitClassDeclaration(node);\n      case 249 /* ForStatement */:\n        return visitForStatement(\n          node,\n          /*isTopLevel*/\n          true\n        );\n      case 250 /* ForInStatement */:\n        return visitForInStatement(node);\n      case 251 /* ForOfStatement */:\n        return visitForOfStatement(node);\n      case 247 /* DoStatement */:\n        return visitDoStatement(node);\n      case 248 /* WhileStatement */:\n        return visitWhileStatement(node);\n      case 257 /* LabeledStatement */:\n        return visitLabeledStatement(node);\n      case 255 /* WithStatement */:\n        return visitWithStatement(node);\n      case 246 /* IfStatement */:\n        return visitIfStatement(node);\n      case 256 /* SwitchStatement */:\n        return visitSwitchStatement(node);\n      case 270 /* CaseBlock */:\n        return visitCaseBlock(node);\n      case 297 /* CaseClause */:\n        return visitCaseClause(node);\n      case 298 /* DefaultClause */:\n        return visitDefaultClause(node);\n      case 259 /* TryStatement */:\n        return visitTryStatement(node);\n      case 300 /* CatchClause */:\n        return visitCatchClause(node);\n      case 242 /* Block */:\n        return visitBlock(node);\n      default:\n        return visitor(node);\n    }\n  }\n  function visitorWorker(node, valueIsDiscarded) {\n    if (!(node.transformFlags & (8388608 /* ContainsDynamicImport */ | 4096 /* ContainsDestructuringAssignment */ | 268435456 /* ContainsUpdateExpressionForIdentifier */)) && !(importsAndRequiresToRewriteOrShim == null ? void 0 : importsAndRequiresToRewriteOrShim.length)) {\n      return node;\n    }\n    switch (node.kind) {\n      case 249 /* ForStatement */:\n        return visitForStatement(\n          node,\n          /*isTopLevel*/\n          false\n        );\n      case 245 /* ExpressionStatement */:\n        return visitExpressionStatement(node);\n      case 218 /* ParenthesizedExpression */:\n        return visitParenthesizedExpression(node, valueIsDiscarded);\n      case 356 /* PartiallyEmittedExpression */:\n        return visitPartiallyEmittedExpression(node, valueIsDiscarded);\n      case 214 /* CallExpression */:\n        const needsRewrite = node === firstOrUndefined(importsAndRequiresToRewriteOrShim);\n        if (needsRewrite) {\n          importsAndRequiresToRewriteOrShim.shift();\n        }\n        if (isImportCall(node) && host.shouldTransformImportCall(currentSourceFile)) {\n          return visitImportCallExpression(node, needsRewrite);\n        } else if (needsRewrite) {\n          return shimOrRewriteImportOrRequireCall(node);\n        }\n        break;\n      case 227 /* BinaryExpression */:\n        if (isDestructuringAssignment(node)) {\n          return visitDestructuringAssignment(node, valueIsDiscarded);\n        }\n        break;\n      case 225 /* PrefixUnaryExpression */:\n      case 226 /* PostfixUnaryExpression */:\n        return visitPreOrPostfixUnaryExpression(node, valueIsDiscarded);\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitor(node) {\n    return visitorWorker(\n      node,\n      /*valueIsDiscarded*/\n      false\n    );\n  }\n  function discardedValueVisitor(node) {\n    return visitorWorker(\n      node,\n      /*valueIsDiscarded*/\n      true\n    );\n  }\n  function destructuringNeedsFlattening(node) {\n    if (isObjectLiteralExpression(node)) {\n      for (const elem of node.properties) {\n        switch (elem.kind) {\n          case 304 /* PropertyAssignment */:\n            if (destructuringNeedsFlattening(elem.initializer)) {\n              return true;\n            }\n            break;\n          case 305 /* ShorthandPropertyAssignment */:\n            if (destructuringNeedsFlattening(elem.name)) {\n              return true;\n            }\n            break;\n          case 306 /* SpreadAssignment */:\n            if (destructuringNeedsFlattening(elem.expression)) {\n              return true;\n            }\n            break;\n          case 175 /* MethodDeclaration */:\n          case 178 /* GetAccessor */:\n          case 179 /* SetAccessor */:\n            return false;\n          default:\n            Debug.assertNever(elem, \"Unhandled object member kind\");\n        }\n      }\n    } else if (isArrayLiteralExpression(node)) {\n      for (const elem of node.elements) {\n        if (isSpreadElement(elem)) {\n          if (destructuringNeedsFlattening(elem.expression)) {\n            return true;\n          }\n        } else if (destructuringNeedsFlattening(elem)) {\n          return true;\n        }\n      }\n    } else if (isIdentifier(node)) {\n      return length(getExports(node)) > (isExportName(node) ? 1 : 0);\n    }\n    return false;\n  }\n  function visitDestructuringAssignment(node, valueIsDiscarded) {\n    if (destructuringNeedsFlattening(node.left)) {\n      return flattenDestructuringAssignment(node, visitor, context, 0 /* All */, !valueIsDiscarded, createAllExportExpressions);\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitForStatement(node, isTopLevel) {\n    if (isTopLevel && node.initializer && isVariableDeclarationList(node.initializer) && !(node.initializer.flags & 7 /* BlockScoped */)) {\n      const exportStatements = appendExportsOfVariableDeclarationList(\n        /*statements*/\n        void 0,\n        node.initializer,\n        /*isForInOrOfInitializer*/\n        false\n      );\n      if (exportStatements) {\n        const statements = [];\n        const varDeclList = visitNode(node.initializer, discardedValueVisitor, isVariableDeclarationList);\n        const varStatement = factory2.createVariableStatement(\n          /*modifiers*/\n          void 0,\n          varDeclList\n        );\n        statements.push(varStatement);\n        addRange(statements, exportStatements);\n        const condition = visitNode(node.condition, visitor, isExpression);\n        const incrementor = visitNode(node.incrementor, discardedValueVisitor, isExpression);\n        const body = visitIterationBody(node.statement, isTopLevel ? topLevelNestedVisitor : visitor, context);\n        statements.push(factory2.updateForStatement(\n          node,\n          /*initializer*/\n          void 0,\n          condition,\n          incrementor,\n          body\n        ));\n        return statements;\n      }\n    }\n    return factory2.updateForStatement(\n      node,\n      visitNode(node.initializer, discardedValueVisitor, isForInitializer),\n      visitNode(node.condition, visitor, isExpression),\n      visitNode(node.incrementor, discardedValueVisitor, isExpression),\n      visitIterationBody(node.statement, isTopLevel ? topLevelNestedVisitor : visitor, context)\n    );\n  }\n  function visitForInStatement(node) {\n    if (isVariableDeclarationList(node.initializer) && !(node.initializer.flags & 7 /* BlockScoped */)) {\n      const exportStatements = appendExportsOfVariableDeclarationList(\n        /*statements*/\n        void 0,\n        node.initializer,\n        /*isForInOrOfInitializer*/\n        true\n      );\n      if (some(exportStatements)) {\n        const initializer = visitNode(node.initializer, discardedValueVisitor, isForInitializer);\n        const expression = visitNode(node.expression, visitor, isExpression);\n        const body = visitIterationBody(node.statement, topLevelNestedVisitor, context);\n        const mergedBody = isBlock(body) ? factory2.updateBlock(body, [...exportStatements, ...body.statements]) : factory2.createBlock(\n          [...exportStatements, body],\n          /*multiLine*/\n          true\n        );\n        return factory2.updateForInStatement(node, initializer, expression, mergedBody);\n      }\n    }\n    return factory2.updateForInStatement(\n      node,\n      visitNode(node.initializer, discardedValueVisitor, isForInitializer),\n      visitNode(node.expression, visitor, isExpression),\n      visitIterationBody(node.statement, topLevelNestedVisitor, context)\n    );\n  }\n  function visitForOfStatement(node) {\n    if (isVariableDeclarationList(node.initializer) && !(node.initializer.flags & 7 /* BlockScoped */)) {\n      const exportStatements = appendExportsOfVariableDeclarationList(\n        /*statements*/\n        void 0,\n        node.initializer,\n        /*isForInOrOfInitializer*/\n        true\n      );\n      const initializer = visitNode(node.initializer, discardedValueVisitor, isForInitializer);\n      const expression = visitNode(node.expression, visitor, isExpression);\n      let body = visitIterationBody(node.statement, topLevelNestedVisitor, context);\n      if (some(exportStatements)) {\n        body = isBlock(body) ? factory2.updateBlock(body, [...exportStatements, ...body.statements]) : factory2.createBlock(\n          [...exportStatements, body],\n          /*multiLine*/\n          true\n        );\n      }\n      return factory2.updateForOfStatement(node, node.awaitModifier, initializer, expression, body);\n    }\n    return factory2.updateForOfStatement(\n      node,\n      node.awaitModifier,\n      visitNode(node.initializer, discardedValueVisitor, isForInitializer),\n      visitNode(node.expression, visitor, isExpression),\n      visitIterationBody(node.statement, topLevelNestedVisitor, context)\n    );\n  }\n  function visitDoStatement(node) {\n    return factory2.updateDoStatement(\n      node,\n      visitIterationBody(node.statement, topLevelNestedVisitor, context),\n      visitNode(node.expression, visitor, isExpression)\n    );\n  }\n  function visitWhileStatement(node) {\n    return factory2.updateWhileStatement(\n      node,\n      visitNode(node.expression, visitor, isExpression),\n      visitIterationBody(node.statement, topLevelNestedVisitor, context)\n    );\n  }\n  function visitLabeledStatement(node) {\n    return factory2.updateLabeledStatement(\n      node,\n      node.label,\n      visitNode(node.statement, topLevelNestedVisitor, isStatement, factory2.liftToBlock) ?? setTextRange(factory2.createEmptyStatement(), node.statement)\n    );\n  }\n  function visitWithStatement(node) {\n    return factory2.updateWithStatement(\n      node,\n      visitNode(node.expression, visitor, isExpression),\n      Debug.checkDefined(visitNode(node.statement, topLevelNestedVisitor, isStatement, factory2.liftToBlock))\n    );\n  }\n  function visitIfStatement(node) {\n    return factory2.updateIfStatement(\n      node,\n      visitNode(node.expression, visitor, isExpression),\n      visitNode(node.thenStatement, topLevelNestedVisitor, isStatement, factory2.liftToBlock) ?? factory2.createBlock([]),\n      visitNode(node.elseStatement, topLevelNestedVisitor, isStatement, factory2.liftToBlock)\n    );\n  }\n  function visitSwitchStatement(node) {\n    return factory2.updateSwitchStatement(\n      node,\n      visitNode(node.expression, visitor, isExpression),\n      Debug.checkDefined(visitNode(node.caseBlock, topLevelNestedVisitor, isCaseBlock))\n    );\n  }\n  function visitCaseBlock(node) {\n    return factory2.updateCaseBlock(\n      node,\n      visitNodes2(node.clauses, topLevelNestedVisitor, isCaseOrDefaultClause)\n    );\n  }\n  function visitCaseClause(node) {\n    return factory2.updateCaseClause(\n      node,\n      visitNode(node.expression, visitor, isExpression),\n      visitNodes2(node.statements, topLevelNestedVisitor, isStatement)\n    );\n  }\n  function visitDefaultClause(node) {\n    return visitEachChild(node, topLevelNestedVisitor, context);\n  }\n  function visitTryStatement(node) {\n    return visitEachChild(node, topLevelNestedVisitor, context);\n  }\n  function visitCatchClause(node) {\n    return factory2.updateCatchClause(\n      node,\n      node.variableDeclaration,\n      Debug.checkDefined(visitNode(node.block, topLevelNestedVisitor, isBlock))\n    );\n  }\n  function visitBlock(node) {\n    node = visitEachChild(node, topLevelNestedVisitor, context);\n    return node;\n  }\n  function visitExpressionStatement(node) {\n    return factory2.updateExpressionStatement(\n      node,\n      visitNode(node.expression, discardedValueVisitor, isExpression)\n    );\n  }\n  function visitParenthesizedExpression(node, valueIsDiscarded) {\n    return factory2.updateParenthesizedExpression(node, visitNode(node.expression, valueIsDiscarded ? discardedValueVisitor : visitor, isExpression));\n  }\n  function visitPartiallyEmittedExpression(node, valueIsDiscarded) {\n    return factory2.updatePartiallyEmittedExpression(node, visitNode(node.expression, valueIsDiscarded ? discardedValueVisitor : visitor, isExpression));\n  }\n  function visitPreOrPostfixUnaryExpression(node, valueIsDiscarded) {\n    if ((node.operator === 46 /* PlusPlusToken */ || node.operator === 47 /* MinusMinusToken */) && isIdentifier(node.operand) && !isGeneratedIdentifier(node.operand) && !isLocalName(node.operand) && !isDeclarationNameOfEnumOrNamespace(node.operand)) {\n      const exportedNames = getExports(node.operand);\n      if (exportedNames) {\n        let temp;\n        let expression = visitNode(node.operand, visitor, isExpression);\n        if (isPrefixUnaryExpression(node)) {\n          expression = factory2.updatePrefixUnaryExpression(node, expression);\n        } else {\n          expression = factory2.updatePostfixUnaryExpression(node, expression);\n          if (!valueIsDiscarded) {\n            temp = factory2.createTempVariable(hoistVariableDeclaration);\n            expression = factory2.createAssignment(temp, expression);\n            setTextRange(expression, node);\n          }\n          expression = factory2.createComma(expression, factory2.cloneNode(node.operand));\n          setTextRange(expression, node);\n        }\n        for (const exportName of exportedNames) {\n          noSubstitution[getNodeId(expression)] = true;\n          expression = createExportExpression(exportName, expression);\n          setTextRange(expression, node);\n        }\n        if (temp) {\n          noSubstitution[getNodeId(expression)] = true;\n          expression = factory2.createComma(expression, temp);\n          setTextRange(expression, node);\n        }\n        return expression;\n      }\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function shimOrRewriteImportOrRequireCall(node) {\n    return factory2.updateCallExpression(\n      node,\n      node.expression,\n      /*typeArguments*/\n      void 0,\n      visitNodes2(node.arguments, (arg) => {\n        if (arg === node.arguments[0]) {\n          return isStringLiteralLike(arg) ? rewriteModuleSpecifier(arg, compilerOptions) : emitHelpers().createRewriteRelativeImportExtensionsHelper(arg);\n        }\n        return visitor(arg);\n      }, isExpression)\n    );\n  }\n  function visitImportCallExpression(node, rewriteOrShim) {\n    if (moduleKind === 0 /* None */ && languageVersion >= 7 /* ES2020 */) {\n      return visitEachChild(node, visitor, context);\n    }\n    const externalModuleName = getExternalModuleNameLiteral(factory2, node, currentSourceFile, host, resolver, compilerOptions);\n    const firstArgument = visitNode(firstOrUndefined(node.arguments), visitor, isExpression);\n    const argument = externalModuleName && (!firstArgument || !isStringLiteral(firstArgument) || firstArgument.text !== externalModuleName.text) ? externalModuleName : firstArgument && rewriteOrShim ? isStringLiteral(firstArgument) ? rewriteModuleSpecifier(firstArgument, compilerOptions) : emitHelpers().createRewriteRelativeImportExtensionsHelper(firstArgument) : firstArgument;\n    const containsLexicalThis = !!(node.transformFlags & 16384 /* ContainsLexicalThis */);\n    switch (compilerOptions.module) {\n      case 2 /* AMD */:\n        return createImportCallExpressionAMD(argument, containsLexicalThis);\n      case 3 /* UMD */:\n        return createImportCallExpressionUMD(argument ?? factory2.createVoidZero(), containsLexicalThis);\n      case 1 /* CommonJS */:\n      default:\n        return createImportCallExpressionCommonJS(argument);\n    }\n  }\n  function createImportCallExpressionUMD(arg, containsLexicalThis) {\n    needUMDDynamicImportHelper = true;\n    if (isSimpleCopiableExpression(arg)) {\n      const argClone = isGeneratedIdentifier(arg) ? arg : isStringLiteral(arg) ? factory2.createStringLiteralFromNode(arg) : setEmitFlags(setTextRange(factory2.cloneNode(arg), arg), 3072 /* NoComments */);\n      return factory2.createConditionalExpression(\n        /*condition*/\n        factory2.createIdentifier(\"__syncRequire\"),\n        /*questionToken*/\n        void 0,\n        /*whenTrue*/\n        createImportCallExpressionCommonJS(arg),\n        /*colonToken*/\n        void 0,\n        /*whenFalse*/\n        createImportCallExpressionAMD(argClone, containsLexicalThis)\n      );\n    } else {\n      const temp = factory2.createTempVariable(hoistVariableDeclaration);\n      return factory2.createComma(\n        factory2.createAssignment(temp, arg),\n        factory2.createConditionalExpression(\n          /*condition*/\n          factory2.createIdentifier(\"__syncRequire\"),\n          /*questionToken*/\n          void 0,\n          /*whenTrue*/\n          createImportCallExpressionCommonJS(\n            temp,\n            /*isInlineable*/\n            true\n          ),\n          /*colonToken*/\n          void 0,\n          /*whenFalse*/\n          createImportCallExpressionAMD(temp, containsLexicalThis)\n        )\n      );\n    }\n  }\n  function createImportCallExpressionAMD(arg, containsLexicalThis) {\n    const resolve = factory2.createUniqueName(\"resolve\");\n    const reject = factory2.createUniqueName(\"reject\");\n    const parameters = [\n      factory2.createParameterDeclaration(\n        /*modifiers*/\n        void 0,\n        /*dotDotDotToken*/\n        void 0,\n        /*name*/\n        resolve\n      ),\n      factory2.createParameterDeclaration(\n        /*modifiers*/\n        void 0,\n        /*dotDotDotToken*/\n        void 0,\n        /*name*/\n        reject\n      )\n    ];\n    const body = factory2.createBlock([\n      factory2.createExpressionStatement(\n        factory2.createCallExpression(\n          factory2.createIdentifier(\"require\"),\n          /*typeArguments*/\n          void 0,\n          [factory2.createArrayLiteralExpression([arg || factory2.createOmittedExpression()]), resolve, reject]\n        )\n      )\n    ]);\n    let func;\n    if (languageVersion >= 2 /* ES2015 */) {\n      func = factory2.createArrowFunction(\n        /*modifiers*/\n        void 0,\n        /*typeParameters*/\n        void 0,\n        parameters,\n        /*type*/\n        void 0,\n        /*equalsGreaterThanToken*/\n        void 0,\n        body\n      );\n    } else {\n      func = factory2.createFunctionExpression(\n        /*modifiers*/\n        void 0,\n        /*asteriskToken*/\n        void 0,\n        /*name*/\n        void 0,\n        /*typeParameters*/\n        void 0,\n        parameters,\n        /*type*/\n        void 0,\n        body\n      );\n      if (containsLexicalThis) {\n        setEmitFlags(func, 16 /* CapturesThis */);\n      }\n    }\n    const promise = factory2.createNewExpression(\n      factory2.createIdentifier(\"Promise\"),\n      /*typeArguments*/\n      void 0,\n      [func]\n    );\n    if (getESModuleInterop(compilerOptions)) {\n      return factory2.createCallExpression(\n        factory2.createPropertyAccessExpression(promise, factory2.createIdentifier(\"then\")),\n        /*typeArguments*/\n        void 0,\n        [emitHelpers().createImportStarCallbackHelper()]\n      );\n    }\n    return promise;\n  }\n  function createImportCallExpressionCommonJS(arg, isInlineable) {\n    const needSyncEval = arg && !isSimpleInlineableExpression(arg) && !isInlineable;\n    const promiseResolveCall = factory2.createCallExpression(\n      factory2.createPropertyAccessExpression(factory2.createIdentifier(\"Promise\"), \"resolve\"),\n      /*typeArguments*/\n      void 0,\n      /*argumentsArray*/\n      needSyncEval ? languageVersion >= 2 /* ES2015 */ ? [\n        factory2.createTemplateExpression(factory2.createTemplateHead(\"\"), [\n          factory2.createTemplateSpan(arg, factory2.createTemplateTail(\"\"))\n        ])\n      ] : [\n        factory2.createCallExpression(\n          factory2.createPropertyAccessExpression(factory2.createStringLiteral(\"\"), \"concat\"),\n          /*typeArguments*/\n          void 0,\n          [arg]\n        )\n      ] : []\n    );\n    let requireCall = factory2.createCallExpression(\n      factory2.createIdentifier(\"require\"),\n      /*typeArguments*/\n      void 0,\n      needSyncEval ? [factory2.createIdentifier(\"s\")] : arg ? [arg] : []\n    );\n    if (getESModuleInterop(compilerOptions)) {\n      requireCall = emitHelpers().createImportStarHelper(requireCall);\n    }\n    const parameters = needSyncEval ? [\n      factory2.createParameterDeclaration(\n        /*modifiers*/\n        void 0,\n        /*dotDotDotToken*/\n        void 0,\n        /*name*/\n        \"s\"\n      )\n    ] : [];\n    let func;\n    if (languageVersion >= 2 /* ES2015 */) {\n      func = factory2.createArrowFunction(\n        /*modifiers*/\n        void 0,\n        /*typeParameters*/\n        void 0,\n        /*parameters*/\n        parameters,\n        /*type*/\n        void 0,\n        /*equalsGreaterThanToken*/\n        void 0,\n        requireCall\n      );\n    } else {\n      func = factory2.createFunctionExpression(\n        /*modifiers*/\n        void 0,\n        /*asteriskToken*/\n        void 0,\n        /*name*/\n        void 0,\n        /*typeParameters*/\n        void 0,\n        /*parameters*/\n        parameters,\n        /*type*/\n        void 0,\n        factory2.createBlock([factory2.createReturnStatement(requireCall)])\n      );\n    }\n    const downleveledImport = factory2.createCallExpression(\n      factory2.createPropertyAccessExpression(promiseResolveCall, \"then\"),\n      /*typeArguments*/\n      void 0,\n      [func]\n    );\n    return downleveledImport;\n  }\n  function getHelperExpressionForExport(node, innerExpr) {\n    if (!getESModuleInterop(compilerOptions) || getInternalEmitFlags(node) & 2 /* NeverApplyImportHelper */) {\n      return innerExpr;\n    }\n    if (getExportNeedsImportStarHelper(node)) {\n      return emitHelpers().createImportStarHelper(innerExpr);\n    }\n    return innerExpr;\n  }\n  function getHelperExpressionForImport(node, innerExpr) {\n    if (!getESModuleInterop(compilerOptions) || getInternalEmitFlags(node) & 2 /* NeverApplyImportHelper */) {\n      return innerExpr;\n    }\n    if (getImportNeedsImportStarHelper(node)) {\n      return emitHelpers().createImportStarHelper(innerExpr);\n    }\n    if (getImportNeedsImportDefaultHelper(node)) {\n      return emitHelpers().createImportDefaultHelper(innerExpr);\n    }\n    return innerExpr;\n  }\n  function visitTopLevelImportDeclaration(node) {\n    let statements;\n    const namespaceDeclaration = getNamespaceDeclarationNode(node);\n    if (moduleKind !== 2 /* AMD */) {\n      if (!node.importClause) {\n        return setOriginalNode(setTextRange(factory2.createExpressionStatement(createRequireCall2(node)), node), node);\n      } else {\n        const variables = [];\n        if (namespaceDeclaration && !isDefaultImport(node)) {\n          variables.push(\n            factory2.createVariableDeclaration(\n              factory2.cloneNode(namespaceDeclaration.name),\n              /*exclamationToken*/\n              void 0,\n              /*type*/\n              void 0,\n              getHelperExpressionForImport(node, createRequireCall2(node))\n            )\n          );\n        } else {\n          variables.push(\n            factory2.createVariableDeclaration(\n              factory2.getGeneratedNameForNode(node),\n              /*exclamationToken*/\n              void 0,\n              /*type*/\n              void 0,\n              getHelperExpressionForImport(node, createRequireCall2(node))\n            )\n          );\n          if (namespaceDeclaration && isDefaultImport(node)) {\n            variables.push(\n              factory2.createVariableDeclaration(\n                factory2.cloneNode(namespaceDeclaration.name),\n                /*exclamationToken*/\n                void 0,\n                /*type*/\n                void 0,\n                factory2.getGeneratedNameForNode(node)\n              )\n            );\n          }\n        }\n        statements = append(\n          statements,\n          setOriginalNode(\n            setTextRange(\n              factory2.createVariableStatement(\n                /*modifiers*/\n                void 0,\n                factory2.createVariableDeclarationList(\n                  variables,\n                  languageVersion >= 2 /* ES2015 */ ? 2 /* Const */ : 0 /* None */\n                )\n              ),\n              /*location*/\n              node\n            ),\n            /*original*/\n            node\n          )\n        );\n      }\n    } else if (namespaceDeclaration && isDefaultImport(node)) {\n      statements = append(\n        statements,\n        factory2.createVariableStatement(\n          /*modifiers*/\n          void 0,\n          factory2.createVariableDeclarationList(\n            [\n              setOriginalNode(\n                setTextRange(\n                  factory2.createVariableDeclaration(\n                    factory2.cloneNode(namespaceDeclaration.name),\n                    /*exclamationToken*/\n                    void 0,\n                    /*type*/\n                    void 0,\n                    factory2.getGeneratedNameForNode(node)\n                  ),\n                  /*location*/\n                  node\n                ),\n                /*original*/\n                node\n              )\n            ],\n            languageVersion >= 2 /* ES2015 */ ? 2 /* Const */ : 0 /* None */\n          )\n        )\n      );\n    }\n    statements = appendExportsOfImportDeclaration(statements, node);\n    return singleOrMany(statements);\n  }\n  function createRequireCall2(importNode) {\n    const moduleName = getExternalModuleNameLiteral(factory2, importNode, currentSourceFile, host, resolver, compilerOptions);\n    const args = [];\n    if (moduleName) {\n      args.push(rewriteModuleSpecifier(moduleName, compilerOptions));\n    }\n    return factory2.createCallExpression(\n      factory2.createIdentifier(\"require\"),\n      /*typeArguments*/\n      void 0,\n      args\n    );\n  }\n  function visitTopLevelImportEqualsDeclaration(node) {\n    Debug.assert(isExternalModuleImportEqualsDeclaration(node), \"import= for internal module references should be handled in an earlier transformer.\");\n    let statements;\n    if (moduleKind !== 2 /* AMD */) {\n      if (hasSyntacticModifier(node, 32 /* Export */)) {\n        statements = append(\n          statements,\n          setOriginalNode(\n            setTextRange(\n              factory2.createExpressionStatement(\n                createExportExpression(\n                  node.name,\n                  createRequireCall2(node)\n                )\n              ),\n              node\n            ),\n            node\n          )\n        );\n      } else {\n        statements = append(\n          statements,\n          setOriginalNode(\n            setTextRange(\n              factory2.createVariableStatement(\n                /*modifiers*/\n                void 0,\n                factory2.createVariableDeclarationList(\n                  [\n                    factory2.createVariableDeclaration(\n                      factory2.cloneNode(node.name),\n                      /*exclamationToken*/\n                      void 0,\n                      /*type*/\n                      void 0,\n                      createRequireCall2(node)\n                    )\n                  ],\n                  /*flags*/\n                  languageVersion >= 2 /* ES2015 */ ? 2 /* Const */ : 0 /* None */\n                )\n              ),\n              node\n            ),\n            node\n          )\n        );\n      }\n    } else {\n      if (hasSyntacticModifier(node, 32 /* Export */)) {\n        statements = append(\n          statements,\n          setOriginalNode(\n            setTextRange(\n              factory2.createExpressionStatement(\n                createExportExpression(factory2.getExportName(node), factory2.getLocalName(node))\n              ),\n              node\n            ),\n            node\n          )\n        );\n      }\n    }\n    statements = appendExportsOfImportEqualsDeclaration(statements, node);\n    return singleOrMany(statements);\n  }\n  function visitTopLevelExportDeclaration(node) {\n    if (!node.moduleSpecifier) {\n      return void 0;\n    }\n    const generatedName = factory2.getGeneratedNameForNode(node);\n    if (node.exportClause && isNamedExports(node.exportClause)) {\n      const statements = [];\n      if (moduleKind !== 2 /* AMD */) {\n        statements.push(\n          setOriginalNode(\n            setTextRange(\n              factory2.createVariableStatement(\n                /*modifiers*/\n                void 0,\n                factory2.createVariableDeclarationList([\n                  factory2.createVariableDeclaration(\n                    generatedName,\n                    /*exclamationToken*/\n                    void 0,\n                    /*type*/\n                    void 0,\n                    createRequireCall2(node)\n                  )\n                ])\n              ),\n              /*location*/\n              node\n            ),\n            /* original */\n            node\n          )\n        );\n      }\n      for (const specifier of node.exportClause.elements) {\n        const specifierName = specifier.propertyName || specifier.name;\n        const exportNeedsImportDefault = !!getESModuleInterop(compilerOptions) && !(getInternalEmitFlags(node) & 2 /* NeverApplyImportHelper */) && moduleExportNameIsDefault(specifierName);\n        const target = exportNeedsImportDefault ? emitHelpers().createImportDefaultHelper(generatedName) : generatedName;\n        const exportedValue = specifierName.kind === 11 /* StringLiteral */ ? factory2.createElementAccessExpression(target, specifierName) : factory2.createPropertyAccessExpression(target, specifierName);\n        statements.push(\n          setOriginalNode(\n            setTextRange(\n              factory2.createExpressionStatement(\n                createExportExpression(\n                  specifier.name.kind === 11 /* StringLiteral */ ? factory2.cloneNode(specifier.name) : factory2.getExportName(specifier),\n                  exportedValue,\n                  /*location*/\n                  void 0,\n                  /*liveBinding*/\n                  true\n                )\n              ),\n              specifier\n            ),\n            specifier\n          )\n        );\n      }\n      return singleOrMany(statements);\n    } else if (node.exportClause) {\n      const statements = [];\n      statements.push(\n        setOriginalNode(\n          setTextRange(\n            factory2.createExpressionStatement(\n              createExportExpression(\n                factory2.cloneNode(node.exportClause.name),\n                getHelperExpressionForExport(\n                  node,\n                  moduleKind !== 2 /* AMD */ ? createRequireCall2(node) : isExportNamespaceAsDefaultDeclaration(node) ? generatedName : node.exportClause.name.kind === 11 /* StringLiteral */ ? generatedName : factory2.createIdentifier(idText(node.exportClause.name))\n                )\n              )\n            ),\n            node\n          ),\n          node\n        )\n      );\n      return singleOrMany(statements);\n    } else {\n      return setOriginalNode(\n        setTextRange(\n          factory2.createExpressionStatement(\n            emitHelpers().createExportStarHelper(moduleKind !== 2 /* AMD */ ? createRequireCall2(node) : generatedName)\n          ),\n          node\n        ),\n        node\n      );\n    }\n  }\n  function visitTopLevelExportAssignment(node) {\n    if (node.isExportEquals) {\n      return void 0;\n    }\n    return createExportStatement(\n      factory2.createIdentifier(\"default\"),\n      visitNode(node.expression, visitor, isExpression),\n      /*location*/\n      node,\n      /*allowComments*/\n      true\n    );\n  }\n  function visitFunctionDeclaration(node) {\n    let statements;\n    if (hasSyntacticModifier(node, 32 /* Export */)) {\n      statements = append(\n        statements,\n        setOriginalNode(\n          setTextRange(\n            factory2.createFunctionDeclaration(\n              visitNodes2(node.modifiers, modifierVisitor, isModifier),\n              node.asteriskToken,\n              factory2.getDeclarationName(\n                node,\n                /*allowComments*/\n                true,\n                /*allowSourceMaps*/\n                true\n              ),\n              /*typeParameters*/\n              void 0,\n              visitNodes2(node.parameters, visitor, isParameter),\n              /*type*/\n              void 0,\n              visitEachChild(node.body, visitor, context)\n            ),\n            /*location*/\n            node\n          ),\n          /*original*/\n          node\n        )\n      );\n    } else {\n      statements = append(statements, visitEachChild(node, visitor, context));\n    }\n    return singleOrMany(statements);\n  }\n  function visitClassDeclaration(node) {\n    let statements;\n    if (hasSyntacticModifier(node, 32 /* Export */)) {\n      statements = append(\n        statements,\n        setOriginalNode(\n          setTextRange(\n            factory2.createClassDeclaration(\n              visitNodes2(node.modifiers, modifierVisitor, isModifierLike),\n              factory2.getDeclarationName(\n                node,\n                /*allowComments*/\n                true,\n                /*allowSourceMaps*/\n                true\n              ),\n              /*typeParameters*/\n              void 0,\n              visitNodes2(node.heritageClauses, visitor, isHeritageClause),\n              visitNodes2(node.members, visitor, isClassElement)\n            ),\n            node\n          ),\n          node\n        )\n      );\n    } else {\n      statements = append(statements, visitEachChild(node, visitor, context));\n    }\n    statements = appendExportsOfHoistedDeclaration(statements, node);\n    return singleOrMany(statements);\n  }\n  function visitVariableStatement(node) {\n    let statements;\n    let variables;\n    let expressions;\n    if (hasSyntacticModifier(node, 32 /* Export */)) {\n      let modifiers;\n      let removeCommentsOnExpressions = false;\n      for (const variable of node.declarationList.declarations) {\n        if (isIdentifier(variable.name) && isLocalName(variable.name)) {\n          if (!modifiers) {\n            modifiers = visitNodes2(node.modifiers, modifierVisitor, isModifier);\n          }\n          if (variable.initializer) {\n            const updatedVariable = factory2.updateVariableDeclaration(\n              variable,\n              variable.name,\n              /*exclamationToken*/\n              void 0,\n              /*type*/\n              void 0,\n              createExportExpression(\n                variable.name,\n                visitNode(variable.initializer, visitor, isExpression)\n              )\n            );\n            variables = append(variables, updatedVariable);\n          } else {\n            variables = append(variables, variable);\n          }\n        } else if (variable.initializer) {\n          if (!isBindingPattern(variable.name) && (isArrowFunction(variable.initializer) || isFunctionExpression(variable.initializer) || isClassExpression(variable.initializer))) {\n            const expression = factory2.createAssignment(\n              setTextRange(\n                factory2.createPropertyAccessExpression(\n                  factory2.createIdentifier(\"exports\"),\n                  variable.name\n                ),\n                /*location*/\n                variable.name\n              ),\n              factory2.createIdentifier(getTextOfIdentifierOrLiteral(variable.name))\n            );\n            const updatedVariable = factory2.createVariableDeclaration(\n              variable.name,\n              variable.exclamationToken,\n              variable.type,\n              visitNode(variable.initializer, visitor, isExpression)\n            );\n            variables = append(variables, updatedVariable);\n            expressions = append(expressions, expression);\n            removeCommentsOnExpressions = true;\n          } else {\n            expressions = append(expressions, transformInitializedVariable(variable));\n          }\n        }\n      }\n      if (variables) {\n        statements = append(statements, factory2.updateVariableStatement(node, modifiers, factory2.updateVariableDeclarationList(node.declarationList, variables)));\n      }\n      if (expressions) {\n        const statement = setOriginalNode(setTextRange(factory2.createExpressionStatement(factory2.inlineExpressions(expressions)), node), node);\n        if (removeCommentsOnExpressions) {\n          removeAllComments(statement);\n        }\n        statements = append(statements, statement);\n      }\n    } else {\n      statements = append(statements, visitEachChild(node, visitor, context));\n    }\n    statements = appendExportsOfVariableStatement(statements, node);\n    return singleOrMany(statements);\n  }\n  function createAllExportExpressions(name, value, location) {\n    const exportedNames = getExports(name);\n    if (exportedNames) {\n      let expression = isExportName(name) ? value : factory2.createAssignment(name, value);\n      for (const exportName of exportedNames) {\n        setEmitFlags(expression, 8 /* NoSubstitution */);\n        expression = createExportExpression(\n          exportName,\n          expression,\n          /*location*/\n          location\n        );\n      }\n      return expression;\n    }\n    return factory2.createAssignment(name, value);\n  }\n  function transformInitializedVariable(node) {\n    if (isBindingPattern(node.name)) {\n      return flattenDestructuringAssignment(\n        visitNode(node, visitor, isInitializedVariable),\n        visitor,\n        context,\n        0 /* All */,\n        /*needsValue*/\n        false,\n        createAllExportExpressions\n      );\n    } else {\n      return factory2.createAssignment(\n        setTextRange(\n          factory2.createPropertyAccessExpression(\n            factory2.createIdentifier(\"exports\"),\n            node.name\n          ),\n          /*location*/\n          node.name\n        ),\n        node.initializer ? visitNode(node.initializer, visitor, isExpression) : factory2.createVoidZero()\n      );\n    }\n  }\n  function appendExportsOfImportDeclaration(statements, decl) {\n    if (currentModuleInfo.exportEquals) {\n      return statements;\n    }\n    const importClause = decl.importClause;\n    if (!importClause) {\n      return statements;\n    }\n    const seen = new IdentifierNameMap();\n    if (importClause.name) {\n      statements = appendExportsOfDeclaration(statements, seen, importClause);\n    }\n    const namedBindings = importClause.namedBindings;\n    if (namedBindings) {\n      switch (namedBindings.kind) {\n        case 275 /* NamespaceImport */:\n          statements = appendExportsOfDeclaration(statements, seen, namedBindings);\n          break;\n        case 276 /* NamedImports */:\n          for (const importBinding of namedBindings.elements) {\n            statements = appendExportsOfDeclaration(\n              statements,\n              seen,\n              importBinding,\n              /*liveBinding*/\n              true\n            );\n          }\n          break;\n      }\n    }\n    return statements;\n  }\n  function appendExportsOfImportEqualsDeclaration(statements, decl) {\n    if (currentModuleInfo.exportEquals) {\n      return statements;\n    }\n    return appendExportsOfDeclaration(statements, new IdentifierNameMap(), decl);\n  }\n  function appendExportsOfVariableStatement(statements, node) {\n    return appendExportsOfVariableDeclarationList(\n      statements,\n      node.declarationList,\n      /*isForInOrOfInitializer*/\n      false\n    );\n  }\n  function appendExportsOfVariableDeclarationList(statements, node, isForInOrOfInitializer) {\n    if (currentModuleInfo.exportEquals) {\n      return statements;\n    }\n    for (const decl of node.declarations) {\n      statements = appendExportsOfBindingElement(statements, decl, isForInOrOfInitializer);\n    }\n    return statements;\n  }\n  function appendExportsOfBindingElement(statements, decl, isForInOrOfInitializer) {\n    if (currentModuleInfo.exportEquals) {\n      return statements;\n    }\n    if (isBindingPattern(decl.name)) {\n      for (const element of decl.name.elements) {\n        if (!isOmittedExpression(element)) {\n          statements = appendExportsOfBindingElement(statements, element, isForInOrOfInitializer);\n        }\n      }\n    } else if (!isGeneratedIdentifier(decl.name) && (!isVariableDeclaration(decl) || decl.initializer || isForInOrOfInitializer)) {\n      statements = appendExportsOfDeclaration(statements, new IdentifierNameMap(), decl);\n    }\n    return statements;\n  }\n  function appendExportsOfHoistedDeclaration(statements, decl) {\n    if (currentModuleInfo.exportEquals) {\n      return statements;\n    }\n    const seen = new IdentifierNameMap();\n    if (hasSyntacticModifier(decl, 32 /* Export */)) {\n      const exportName = hasSyntacticModifier(decl, 2048 /* Default */) ? factory2.createIdentifier(\"default\") : factory2.getDeclarationName(decl);\n      statements = appendExportStatement(\n        statements,\n        seen,\n        exportName,\n        factory2.getLocalName(decl),\n        /*location*/\n        decl\n      );\n    }\n    if (decl.name) {\n      statements = appendExportsOfDeclaration(statements, seen, decl);\n    }\n    return statements;\n  }\n  function appendExportsOfDeclaration(statements, seen, decl, liveBinding) {\n    const name = factory2.getDeclarationName(decl);\n    const exportSpecifiers = currentModuleInfo.exportSpecifiers.get(name);\n    if (exportSpecifiers) {\n      for (const exportSpecifier of exportSpecifiers) {\n        statements = appendExportStatement(\n          statements,\n          seen,\n          exportSpecifier.name,\n          name,\n          /*location*/\n          exportSpecifier.name,\n          /*allowComments*/\n          void 0,\n          liveBinding\n        );\n      }\n    }\n    return statements;\n  }\n  function appendExportStatement(statements, seen, exportName, expression, location, allowComments, liveBinding) {\n    if (exportName.kind !== 11 /* StringLiteral */) {\n      if (seen.has(exportName)) {\n        return statements;\n      }\n      seen.set(exportName, true);\n    }\n    statements = append(statements, createExportStatement(exportName, expression, location, allowComments, liveBinding));\n    return statements;\n  }\n  function createUnderscoreUnderscoreESModule() {\n    const statement = factory2.createExpressionStatement(\n      factory2.createCallExpression(\n        factory2.createPropertyAccessExpression(factory2.createIdentifier(\"Object\"), \"defineProperty\"),\n        /*typeArguments*/\n        void 0,\n        [\n          factory2.createIdentifier(\"exports\"),\n          factory2.createStringLiteral(\"__esModule\"),\n          factory2.createObjectLiteralExpression([\n            factory2.createPropertyAssignment(\"value\", factory2.createTrue())\n          ])\n        ]\n      )\n    );\n    setEmitFlags(statement, 2097152 /* CustomPrologue */);\n    return statement;\n  }\n  function createExportStatement(name, value, location, allowComments, liveBinding) {\n    const statement = setTextRange(factory2.createExpressionStatement(createExportExpression(\n      name,\n      value,\n      /*location*/\n      void 0,\n      liveBinding\n    )), location);\n    startOnNewLine(statement);\n    if (!allowComments) {\n      setEmitFlags(statement, 3072 /* NoComments */);\n    }\n    return statement;\n  }\n  function createExportExpression(name, value, location, liveBinding) {\n    return setTextRange(\n      liveBinding ? factory2.createCallExpression(\n        factory2.createPropertyAccessExpression(\n          factory2.createIdentifier(\"Object\"),\n          \"defineProperty\"\n        ),\n        /*typeArguments*/\n        void 0,\n        [\n          factory2.createIdentifier(\"exports\"),\n          factory2.createStringLiteralFromNode(name),\n          factory2.createObjectLiteralExpression([\n            factory2.createPropertyAssignment(\"enumerable\", factory2.createTrue()),\n            factory2.createPropertyAssignment(\n              \"get\",\n              factory2.createFunctionExpression(\n                /*modifiers*/\n                void 0,\n                /*asteriskToken*/\n                void 0,\n                /*name*/\n                void 0,\n                /*typeParameters*/\n                void 0,\n                /*parameters*/\n                [],\n                /*type*/\n                void 0,\n                factory2.createBlock([factory2.createReturnStatement(value)])\n              )\n            )\n          ])\n        ]\n      ) : factory2.createAssignment(\n        name.kind === 11 /* StringLiteral */ ? factory2.createElementAccessExpression(\n          factory2.createIdentifier(\"exports\"),\n          factory2.cloneNode(name)\n        ) : factory2.createPropertyAccessExpression(\n          factory2.createIdentifier(\"exports\"),\n          factory2.cloneNode(name)\n        ),\n        value\n      ),\n      location\n    );\n  }\n  function modifierVisitor(node) {\n    switch (node.kind) {\n      case 95 /* ExportKeyword */:\n      case 90 /* DefaultKeyword */:\n        return void 0;\n    }\n    return node;\n  }\n  function onEmitNode(hint, node, emitCallback) {\n    if (node.kind === 308 /* SourceFile */) {\n      currentSourceFile = node;\n      currentModuleInfo = moduleInfoMap[getOriginalNodeId(currentSourceFile)];\n      previousOnEmitNode(hint, node, emitCallback);\n      currentSourceFile = void 0;\n      currentModuleInfo = void 0;\n    } else {\n      previousOnEmitNode(hint, node, emitCallback);\n    }\n  }\n  function onSubstituteNode(hint, node) {\n    node = previousOnSubstituteNode(hint, node);\n    if (node.id && noSubstitution[node.id]) {\n      return node;\n    }\n    if (hint === 1 /* Expression */) {\n      return substituteExpression(node);\n    } else if (isShorthandPropertyAssignment(node)) {\n      return substituteShorthandPropertyAssignment(node);\n    }\n    return node;\n  }\n  function substituteShorthandPropertyAssignment(node) {\n    const name = node.name;\n    const exportedOrImportedName = substituteExpressionIdentifier(name);\n    if (exportedOrImportedName !== name) {\n      if (node.objectAssignmentInitializer) {\n        const initializer = factory2.createAssignment(exportedOrImportedName, node.objectAssignmentInitializer);\n        return setTextRange(factory2.createPropertyAssignment(name, initializer), node);\n      }\n      return setTextRange(factory2.createPropertyAssignment(name, exportedOrImportedName), node);\n    }\n    return node;\n  }\n  function substituteExpression(node) {\n    switch (node.kind) {\n      case 80 /* Identifier */:\n        return substituteExpressionIdentifier(node);\n      case 214 /* CallExpression */:\n        return substituteCallExpression(node);\n      case 216 /* TaggedTemplateExpression */:\n        return substituteTaggedTemplateExpression(node);\n      case 227 /* BinaryExpression */:\n        return substituteBinaryExpression(node);\n    }\n    return node;\n  }\n  function substituteCallExpression(node) {\n    if (isIdentifier(node.expression)) {\n      const expression = substituteExpressionIdentifier(node.expression);\n      noSubstitution[getNodeId(expression)] = true;\n      if (!isIdentifier(expression) && !(getEmitFlags(node.expression) & 8192 /* HelperName */)) {\n        return addInternalEmitFlags(\n          factory2.updateCallExpression(\n            node,\n            expression,\n            /*typeArguments*/\n            void 0,\n            node.arguments\n          ),\n          16 /* IndirectCall */\n        );\n      }\n    }\n    return node;\n  }\n  function substituteTaggedTemplateExpression(node) {\n    if (isIdentifier(node.tag)) {\n      const tag = substituteExpressionIdentifier(node.tag);\n      noSubstitution[getNodeId(tag)] = true;\n      if (!isIdentifier(tag) && !(getEmitFlags(node.tag) & 8192 /* HelperName */)) {\n        return addInternalEmitFlags(\n          factory2.updateTaggedTemplateExpression(\n            node,\n            tag,\n            /*typeArguments*/\n            void 0,\n            node.template\n          ),\n          16 /* IndirectCall */\n        );\n      }\n    }\n    return node;\n  }\n  function substituteExpressionIdentifier(node) {\n    var _a, _b;\n    if (getEmitFlags(node) & 8192 /* HelperName */) {\n      const externalHelpersModuleName = getExternalHelpersModuleName(currentSourceFile);\n      if (externalHelpersModuleName) {\n        return factory2.createPropertyAccessExpression(externalHelpersModuleName, node);\n      }\n      return node;\n    } else if (!(isGeneratedIdentifier(node) && !(node.emitNode.autoGenerate.flags & 64 /* AllowNameSubstitution */)) && !isLocalName(node)) {\n      const exportContainer = resolver.getReferencedExportContainer(node, isExportName(node));\n      if (exportContainer && exportContainer.kind === 308 /* SourceFile */) {\n        return setTextRange(\n          factory2.createPropertyAccessExpression(\n            factory2.createIdentifier(\"exports\"),\n            factory2.cloneNode(node)\n          ),\n          /*location*/\n          node\n        );\n      }\n      const importDeclaration = resolver.getReferencedImportDeclaration(node);\n      if (importDeclaration) {\n        if (isImportClause(importDeclaration)) {\n          return setTextRange(\n            factory2.createPropertyAccessExpression(\n              factory2.getGeneratedNameForNode(importDeclaration.parent),\n              factory2.createIdentifier(\"default\")\n            ),\n            /*location*/\n            node\n          );\n        } else if (isImportSpecifier(importDeclaration)) {\n          const name = importDeclaration.propertyName || importDeclaration.name;\n          const target = factory2.getGeneratedNameForNode(((_b = (_a = importDeclaration.parent) == null ? void 0 : _a.parent) == null ? void 0 : _b.parent) || importDeclaration);\n          return setTextRange(\n            name.kind === 11 /* StringLiteral */ ? factory2.createElementAccessExpression(target, factory2.cloneNode(name)) : factory2.createPropertyAccessExpression(target, factory2.cloneNode(name)),\n            /*location*/\n            node\n          );\n        }\n      }\n    }\n    return node;\n  }\n  function substituteBinaryExpression(node) {\n    if (isAssignmentOperator(node.operatorToken.kind) && isIdentifier(node.left) && (!isGeneratedIdentifier(node.left) || isFileLevelReservedGeneratedIdentifier(node.left)) && !isLocalName(node.left)) {\n      const exportedNames = getExports(node.left);\n      if (exportedNames) {\n        let expression = node;\n        for (const exportName of exportedNames) {\n          noSubstitution[getNodeId(expression)] = true;\n          expression = createExportExpression(\n            exportName,\n            expression,\n            /*location*/\n            node\n          );\n        }\n        return expression;\n      }\n    }\n    return node;\n  }\n  function getExports(name) {\n    if (!isGeneratedIdentifier(name)) {\n      const importDeclaration = resolver.getReferencedImportDeclaration(name);\n      if (importDeclaration) {\n        return currentModuleInfo == null ? void 0 : currentModuleInfo.exportedBindings[getOriginalNodeId(importDeclaration)];\n      }\n      const bindingsSet = /* @__PURE__ */ new Set();\n      const declarations = resolver.getReferencedValueDeclarations(name);\n      if (declarations) {\n        for (const declaration of declarations) {\n          const bindings = currentModuleInfo == null ? void 0 : currentModuleInfo.exportedBindings[getOriginalNodeId(declaration)];\n          if (bindings) {\n            for (const binding of bindings) {\n              bindingsSet.add(binding);\n            }\n          }\n        }\n        if (bindingsSet.size) {\n          return arrayFrom(bindingsSet);\n        }\n      }\n    } else if (isFileLevelReservedGeneratedIdentifier(name)) {\n      const exportSpecifiers = currentModuleInfo == null ? void 0 : currentModuleInfo.exportSpecifiers.get(name);\n      if (exportSpecifiers) {\n        const exportedNames = [];\n        for (const exportSpecifier of exportSpecifiers) {\n          exportedNames.push(exportSpecifier.name);\n        }\n        return exportedNames;\n      }\n    }\n  }\n}\nvar dynamicImportUMDHelper = {\n  name: \"typescript:dynamicimport-sync-require\",\n  scoped: true,\n  text: `\n            var __syncRequire = typeof module === \"object\" && typeof module.exports === \"object\";`\n};\n\n// src/compiler/transformers/module/system.ts\nfunction transformSystemModule(context) {\n  const {\n    factory: factory2,\n    startLexicalEnvironment,\n    endLexicalEnvironment,\n    hoistVariableDeclaration\n  } = context;\n  const compilerOptions = context.getCompilerOptions();\n  const resolver = context.getEmitResolver();\n  const host = context.getEmitHost();\n  const previousOnSubstituteNode = context.onSubstituteNode;\n  const previousOnEmitNode = context.onEmitNode;\n  context.onSubstituteNode = onSubstituteNode;\n  context.onEmitNode = onEmitNode;\n  context.enableSubstitution(80 /* Identifier */);\n  context.enableSubstitution(305 /* ShorthandPropertyAssignment */);\n  context.enableSubstitution(227 /* BinaryExpression */);\n  context.enableSubstitution(237 /* MetaProperty */);\n  context.enableEmitNotification(308 /* SourceFile */);\n  const moduleInfoMap = [];\n  const exportFunctionsMap = [];\n  const noSubstitutionMap = [];\n  const contextObjectMap = [];\n  let currentSourceFile;\n  let moduleInfo;\n  let exportFunction;\n  let contextObject;\n  let hoistedStatements;\n  let enclosingBlockScopedContainer;\n  let noSubstitution;\n  return chainBundle(context, transformSourceFile);\n  function transformSourceFile(node) {\n    if (node.isDeclarationFile || !(isEffectiveExternalModule(node, compilerOptions) || node.transformFlags & 8388608 /* ContainsDynamicImport */)) {\n      return node;\n    }\n    const id = getOriginalNodeId(node);\n    currentSourceFile = node;\n    enclosingBlockScopedContainer = node;\n    moduleInfo = moduleInfoMap[id] = collectExternalModuleInfo(context, node);\n    exportFunction = factory2.createUniqueName(\"exports\");\n    exportFunctionsMap[id] = exportFunction;\n    contextObject = contextObjectMap[id] = factory2.createUniqueName(\"context\");\n    const dependencyGroups = collectDependencyGroups(moduleInfo.externalImports);\n    const moduleBodyBlock = createSystemModuleBody(node, dependencyGroups);\n    const moduleBodyFunction = factory2.createFunctionExpression(\n      /*modifiers*/\n      void 0,\n      /*asteriskToken*/\n      void 0,\n      /*name*/\n      void 0,\n      /*typeParameters*/\n      void 0,\n      [\n        factory2.createParameterDeclaration(\n          /*modifiers*/\n          void 0,\n          /*dotDotDotToken*/\n          void 0,\n          exportFunction\n        ),\n        factory2.createParameterDeclaration(\n          /*modifiers*/\n          void 0,\n          /*dotDotDotToken*/\n          void 0,\n          contextObject\n        )\n      ],\n      /*type*/\n      void 0,\n      moduleBodyBlock\n    );\n    const moduleName = tryGetModuleNameFromFile(factory2, node, host, compilerOptions);\n    const dependencies = factory2.createArrayLiteralExpression(map(dependencyGroups, (dependencyGroup) => dependencyGroup.name));\n    const updated = setEmitFlags(\n      factory2.updateSourceFile(\n        node,\n        setTextRange(\n          factory2.createNodeArray([\n            factory2.createExpressionStatement(\n              factory2.createCallExpression(\n                factory2.createPropertyAccessExpression(factory2.createIdentifier(\"System\"), \"register\"),\n                /*typeArguments*/\n                void 0,\n                moduleName ? [moduleName, dependencies, moduleBodyFunction] : [dependencies, moduleBodyFunction]\n              )\n            )\n          ]),\n          node.statements\n        )\n      ),\n      2048 /* NoTrailingComments */\n    );\n    if (!compilerOptions.outFile) {\n      moveEmitHelpers(updated, moduleBodyBlock, (helper) => !helper.scoped);\n    }\n    if (noSubstitution) {\n      noSubstitutionMap[id] = noSubstitution;\n      noSubstitution = void 0;\n    }\n    currentSourceFile = void 0;\n    moduleInfo = void 0;\n    exportFunction = void 0;\n    contextObject = void 0;\n    hoistedStatements = void 0;\n    enclosingBlockScopedContainer = void 0;\n    return updated;\n  }\n  function collectDependencyGroups(externalImports) {\n    const groupIndices = /* @__PURE__ */ new Map();\n    const dependencyGroups = [];\n    for (const externalImport of externalImports) {\n      const externalModuleName = getExternalModuleNameLiteral(factory2, externalImport, currentSourceFile, host, resolver, compilerOptions);\n      if (externalModuleName) {\n        const text = externalModuleName.text;\n        const groupIndex = groupIndices.get(text);\n        if (groupIndex !== void 0) {\n          dependencyGroups[groupIndex].externalImports.push(externalImport);\n        } else {\n          groupIndices.set(text, dependencyGroups.length);\n          dependencyGroups.push({\n            name: externalModuleName,\n            externalImports: [externalImport]\n          });\n        }\n      }\n    }\n    return dependencyGroups;\n  }\n  function createSystemModuleBody(node, dependencyGroups) {\n    const statements = [];\n    startLexicalEnvironment();\n    const ensureUseStrict = getStrictOptionValue(compilerOptions, \"alwaysStrict\") || isExternalModule(currentSourceFile);\n    const statementOffset = factory2.copyPrologue(node.statements, statements, ensureUseStrict, topLevelVisitor);\n    statements.push(\n      factory2.createVariableStatement(\n        /*modifiers*/\n        void 0,\n        factory2.createVariableDeclarationList([\n          factory2.createVariableDeclaration(\n            \"__moduleName\",\n            /*exclamationToken*/\n            void 0,\n            /*type*/\n            void 0,\n            factory2.createLogicalAnd(\n              contextObject,\n              factory2.createPropertyAccessExpression(contextObject, \"id\")\n            )\n          )\n        ])\n      )\n    );\n    visitNode(moduleInfo.externalHelpersImportDeclaration, topLevelVisitor, isStatement);\n    const executeStatements = visitNodes2(node.statements, topLevelVisitor, isStatement, statementOffset);\n    addRange(statements, hoistedStatements);\n    insertStatementsAfterStandardPrologue(statements, endLexicalEnvironment());\n    const exportStarFunction = addExportStarIfNeeded(statements);\n    const modifiers = node.transformFlags & 2097152 /* ContainsAwait */ ? factory2.createModifiersFromModifierFlags(1024 /* Async */) : void 0;\n    const moduleObject = factory2.createObjectLiteralExpression(\n      [\n        factory2.createPropertyAssignment(\"setters\", createSettersArray(exportStarFunction, dependencyGroups)),\n        factory2.createPropertyAssignment(\n          \"execute\",\n          factory2.createFunctionExpression(\n            modifiers,\n            /*asteriskToken*/\n            void 0,\n            /*name*/\n            void 0,\n            /*typeParameters*/\n            void 0,\n            /*parameters*/\n            [],\n            /*type*/\n            void 0,\n            factory2.createBlock(\n              executeStatements,\n              /*multiLine*/\n              true\n            )\n          )\n        )\n      ],\n      /*multiLine*/\n      true\n    );\n    statements.push(factory2.createReturnStatement(moduleObject));\n    return factory2.createBlock(\n      statements,\n      /*multiLine*/\n      true\n    );\n  }\n  function addExportStarIfNeeded(statements) {\n    if (!moduleInfo.hasExportStarsToExportValues) {\n      return;\n    }\n    if (!some(moduleInfo.exportedNames) && moduleInfo.exportedFunctions.size === 0 && moduleInfo.exportSpecifiers.size === 0) {\n      let hasExportDeclarationWithExportClause = false;\n      for (const externalImport of moduleInfo.externalImports) {\n        if (externalImport.kind === 279 /* ExportDeclaration */ && externalImport.exportClause) {\n          hasExportDeclarationWithExportClause = true;\n          break;\n        }\n      }\n      if (!hasExportDeclarationWithExportClause) {\n        const exportStarFunction2 = createExportStarFunction(\n          /*localNames*/\n          void 0\n        );\n        statements.push(exportStarFunction2);\n        return exportStarFunction2.name;\n      }\n    }\n    const exportedNames = [];\n    if (moduleInfo.exportedNames) {\n      for (const exportedLocalName of moduleInfo.exportedNames) {\n        if (moduleExportNameIsDefault(exportedLocalName)) {\n          continue;\n        }\n        exportedNames.push(\n          factory2.createPropertyAssignment(\n            factory2.createStringLiteralFromNode(exportedLocalName),\n            factory2.createTrue()\n          )\n        );\n      }\n    }\n    for (const f of moduleInfo.exportedFunctions) {\n      if (hasSyntacticModifier(f, 2048 /* Default */)) {\n        continue;\n      }\n      Debug.assert(!!f.name);\n      exportedNames.push(\n        factory2.createPropertyAssignment(\n          factory2.createStringLiteralFromNode(f.name),\n          factory2.createTrue()\n        )\n      );\n    }\n    const exportedNamesStorageRef = factory2.createUniqueName(\"exportedNames\");\n    statements.push(\n      factory2.createVariableStatement(\n        /*modifiers*/\n        void 0,\n        factory2.createVariableDeclarationList([\n          factory2.createVariableDeclaration(\n            exportedNamesStorageRef,\n            /*exclamationToken*/\n            void 0,\n            /*type*/\n            void 0,\n            factory2.createObjectLiteralExpression(\n              exportedNames,\n              /*multiLine*/\n              true\n            )\n          )\n        ])\n      )\n    );\n    const exportStarFunction = createExportStarFunction(exportedNamesStorageRef);\n    statements.push(exportStarFunction);\n    return exportStarFunction.name;\n  }\n  function createExportStarFunction(localNames) {\n    const exportStarFunction = factory2.createUniqueName(\"exportStar\");\n    const m = factory2.createIdentifier(\"m\");\n    const n = factory2.createIdentifier(\"n\");\n    const exports2 = factory2.createIdentifier(\"exports\");\n    let condition = factory2.createStrictInequality(n, factory2.createStringLiteral(\"default\"));\n    if (localNames) {\n      condition = factory2.createLogicalAnd(\n        condition,\n        factory2.createLogicalNot(\n          factory2.createCallExpression(\n            factory2.createPropertyAccessExpression(localNames, \"hasOwnProperty\"),\n            /*typeArguments*/\n            void 0,\n            [n]\n          )\n        )\n      );\n    }\n    return factory2.createFunctionDeclaration(\n      /*modifiers*/\n      void 0,\n      /*asteriskToken*/\n      void 0,\n      exportStarFunction,\n      /*typeParameters*/\n      void 0,\n      [factory2.createParameterDeclaration(\n        /*modifiers*/\n        void 0,\n        /*dotDotDotToken*/\n        void 0,\n        m\n      )],\n      /*type*/\n      void 0,\n      factory2.createBlock(\n        [\n          factory2.createVariableStatement(\n            /*modifiers*/\n            void 0,\n            factory2.createVariableDeclarationList([\n              factory2.createVariableDeclaration(\n                exports2,\n                /*exclamationToken*/\n                void 0,\n                /*type*/\n                void 0,\n                factory2.createObjectLiteralExpression([])\n              )\n            ])\n          ),\n          factory2.createForInStatement(\n            factory2.createVariableDeclarationList([\n              factory2.createVariableDeclaration(n)\n            ]),\n            m,\n            factory2.createBlock([\n              setEmitFlags(\n                factory2.createIfStatement(\n                  condition,\n                  factory2.createExpressionStatement(\n                    factory2.createAssignment(\n                      factory2.createElementAccessExpression(exports2, n),\n                      factory2.createElementAccessExpression(m, n)\n                    )\n                  )\n                ),\n                1 /* SingleLine */\n              )\n            ])\n          ),\n          factory2.createExpressionStatement(\n            factory2.createCallExpression(\n              exportFunction,\n              /*typeArguments*/\n              void 0,\n              [exports2]\n            )\n          )\n        ],\n        /*multiLine*/\n        true\n      )\n    );\n  }\n  function createSettersArray(exportStarFunction, dependencyGroups) {\n    const setters = [];\n    for (const group2 of dependencyGroups) {\n      const localName = forEach(group2.externalImports, (i) => getLocalNameForExternalImport(factory2, i, currentSourceFile));\n      const parameterName = localName ? factory2.getGeneratedNameForNode(localName) : factory2.createUniqueName(\"\");\n      const statements = [];\n      for (const entry of group2.externalImports) {\n        const importVariableName = getLocalNameForExternalImport(factory2, entry, currentSourceFile);\n        switch (entry.kind) {\n          case 273 /* ImportDeclaration */:\n            if (!entry.importClause) {\n              break;\n            }\n          // falls through\n          case 272 /* ImportEqualsDeclaration */:\n            Debug.assert(importVariableName !== void 0);\n            statements.push(\n              factory2.createExpressionStatement(\n                factory2.createAssignment(importVariableName, parameterName)\n              )\n            );\n            if (hasSyntacticModifier(entry, 32 /* Export */)) {\n              statements.push(\n                factory2.createExpressionStatement(\n                  factory2.createCallExpression(\n                    exportFunction,\n                    /*typeArguments*/\n                    void 0,\n                    [\n                      factory2.createStringLiteral(idText(importVariableName)),\n                      parameterName\n                    ]\n                  )\n                )\n              );\n            }\n            break;\n          case 279 /* ExportDeclaration */:\n            Debug.assert(importVariableName !== void 0);\n            if (entry.exportClause) {\n              if (isNamedExports(entry.exportClause)) {\n                const properties = [];\n                for (const e of entry.exportClause.elements) {\n                  properties.push(\n                    factory2.createPropertyAssignment(\n                      factory2.createStringLiteral(moduleExportNameTextUnescaped(e.name)),\n                      factory2.createElementAccessExpression(\n                        parameterName,\n                        factory2.createStringLiteral(moduleExportNameTextUnescaped(e.propertyName || e.name))\n                      )\n                    )\n                  );\n                }\n                statements.push(\n                  factory2.createExpressionStatement(\n                    factory2.createCallExpression(\n                      exportFunction,\n                      /*typeArguments*/\n                      void 0,\n                      [factory2.createObjectLiteralExpression(\n                        properties,\n                        /*multiLine*/\n                        true\n                      )]\n                    )\n                  )\n                );\n              } else {\n                statements.push(\n                  factory2.createExpressionStatement(\n                    factory2.createCallExpression(\n                      exportFunction,\n                      /*typeArguments*/\n                      void 0,\n                      [\n                        factory2.createStringLiteral(moduleExportNameTextUnescaped(entry.exportClause.name)),\n                        parameterName\n                      ]\n                    )\n                  )\n                );\n              }\n            } else {\n              statements.push(\n                factory2.createExpressionStatement(\n                  factory2.createCallExpression(\n                    exportStarFunction,\n                    /*typeArguments*/\n                    void 0,\n                    [parameterName]\n                  )\n                )\n              );\n            }\n            break;\n        }\n      }\n      setters.push(\n        factory2.createFunctionExpression(\n          /*modifiers*/\n          void 0,\n          /*asteriskToken*/\n          void 0,\n          /*name*/\n          void 0,\n          /*typeParameters*/\n          void 0,\n          [factory2.createParameterDeclaration(\n            /*modifiers*/\n            void 0,\n            /*dotDotDotToken*/\n            void 0,\n            parameterName\n          )],\n          /*type*/\n          void 0,\n          factory2.createBlock(\n            statements,\n            /*multiLine*/\n            true\n          )\n        )\n      );\n    }\n    return factory2.createArrayLiteralExpression(\n      setters,\n      /*multiLine*/\n      true\n    );\n  }\n  function topLevelVisitor(node) {\n    switch (node.kind) {\n      case 273 /* ImportDeclaration */:\n        return visitImportDeclaration(node);\n      case 272 /* ImportEqualsDeclaration */:\n        return visitImportEqualsDeclaration(node);\n      case 279 /* ExportDeclaration */:\n        return visitExportDeclaration(node);\n      case 278 /* ExportAssignment */:\n        return visitExportAssignment(node);\n      default:\n        return topLevelNestedVisitor(node);\n    }\n  }\n  function visitImportDeclaration(node) {\n    let statements;\n    if (node.importClause) {\n      hoistVariableDeclaration(getLocalNameForExternalImport(factory2, node, currentSourceFile));\n    }\n    return singleOrMany(appendExportsOfImportDeclaration(statements, node));\n  }\n  function visitExportDeclaration(node) {\n    Debug.assertIsDefined(node);\n    return void 0;\n  }\n  function visitImportEqualsDeclaration(node) {\n    Debug.assert(isExternalModuleImportEqualsDeclaration(node), \"import= for internal module references should be handled in an earlier transformer.\");\n    let statements;\n    hoistVariableDeclaration(getLocalNameForExternalImport(factory2, node, currentSourceFile));\n    return singleOrMany(appendExportsOfImportEqualsDeclaration(statements, node));\n  }\n  function visitExportAssignment(node) {\n    if (node.isExportEquals) {\n      return void 0;\n    }\n    const expression = visitNode(node.expression, visitor, isExpression);\n    return createExportStatement(\n      factory2.createIdentifier(\"default\"),\n      expression,\n      /*allowComments*/\n      true\n    );\n  }\n  function visitFunctionDeclaration(node) {\n    if (hasSyntacticModifier(node, 32 /* Export */)) {\n      hoistedStatements = append(\n        hoistedStatements,\n        factory2.updateFunctionDeclaration(\n          node,\n          visitNodes2(node.modifiers, modifierVisitor, isModifierLike),\n          node.asteriskToken,\n          factory2.getDeclarationName(\n            node,\n            /*allowComments*/\n            true,\n            /*allowSourceMaps*/\n            true\n          ),\n          /*typeParameters*/\n          void 0,\n          visitNodes2(node.parameters, visitor, isParameter),\n          /*type*/\n          void 0,\n          visitNode(node.body, visitor, isBlock)\n        )\n      );\n    } else {\n      hoistedStatements = append(hoistedStatements, visitEachChild(node, visitor, context));\n    }\n    hoistedStatements = appendExportsOfHoistedDeclaration(hoistedStatements, node);\n    return void 0;\n  }\n  function visitClassDeclaration(node) {\n    let statements;\n    const name = factory2.getLocalName(node);\n    hoistVariableDeclaration(name);\n    statements = append(\n      statements,\n      setTextRange(\n        factory2.createExpressionStatement(\n          factory2.createAssignment(\n            name,\n            setTextRange(\n              factory2.createClassExpression(\n                visitNodes2(node.modifiers, modifierVisitor, isModifierLike),\n                node.name,\n                /*typeParameters*/\n                void 0,\n                visitNodes2(node.heritageClauses, visitor, isHeritageClause),\n                visitNodes2(node.members, visitor, isClassElement)\n              ),\n              node\n            )\n          )\n        ),\n        node\n      )\n    );\n    statements = appendExportsOfHoistedDeclaration(statements, node);\n    return singleOrMany(statements);\n  }\n  function visitVariableStatement(node) {\n    if (!shouldHoistVariableDeclarationList(node.declarationList)) {\n      return visitNode(node, visitor, isStatement);\n    }\n    let statements;\n    if (isVarUsing(node.declarationList) || isVarAwaitUsing(node.declarationList)) {\n      const modifiers = visitNodes2(node.modifiers, modifierVisitor, isModifierLike);\n      const declarations = [];\n      for (const variable of node.declarationList.declarations) {\n        declarations.push(factory2.updateVariableDeclaration(\n          variable,\n          factory2.getGeneratedNameForNode(variable.name),\n          /*exclamationToken*/\n          void 0,\n          /*type*/\n          void 0,\n          transformInitializedVariable(\n            variable,\n            /*isExportedDeclaration*/\n            false\n          )\n        ));\n      }\n      const declarationList = factory2.updateVariableDeclarationList(\n        node.declarationList,\n        declarations\n      );\n      statements = append(statements, factory2.updateVariableStatement(node, modifiers, declarationList));\n    } else {\n      let expressions;\n      const isExportedDeclaration = hasSyntacticModifier(node, 32 /* Export */);\n      for (const variable of node.declarationList.declarations) {\n        if (variable.initializer) {\n          expressions = append(expressions, transformInitializedVariable(variable, isExportedDeclaration));\n        } else {\n          hoistBindingElement(variable);\n        }\n      }\n      if (expressions) {\n        statements = append(statements, setTextRange(factory2.createExpressionStatement(factory2.inlineExpressions(expressions)), node));\n      }\n    }\n    statements = appendExportsOfVariableStatement(\n      statements,\n      node,\n      /*exportSelf*/\n      false\n    );\n    return singleOrMany(statements);\n  }\n  function hoistBindingElement(node) {\n    if (isBindingPattern(node.name)) {\n      for (const element of node.name.elements) {\n        if (!isOmittedExpression(element)) {\n          hoistBindingElement(element);\n        }\n      }\n    } else {\n      hoistVariableDeclaration(factory2.cloneNode(node.name));\n    }\n  }\n  function shouldHoistVariableDeclarationList(node) {\n    return (getEmitFlags(node) & 4194304 /* NoHoisting */) === 0 && (enclosingBlockScopedContainer.kind === 308 /* SourceFile */ || (getOriginalNode(node).flags & 7 /* BlockScoped */) === 0);\n  }\n  function transformInitializedVariable(node, isExportedDeclaration) {\n    const createAssignment = isExportedDeclaration ? createExportedVariableAssignment : createNonExportedVariableAssignment;\n    return isBindingPattern(node.name) ? flattenDestructuringAssignment(\n      node,\n      visitor,\n      context,\n      0 /* All */,\n      /*needsValue*/\n      false,\n      createAssignment\n    ) : node.initializer ? createAssignment(node.name, visitNode(node.initializer, visitor, isExpression)) : node.name;\n  }\n  function createExportedVariableAssignment(name, value, location) {\n    return createVariableAssignment(\n      name,\n      value,\n      location,\n      /*isExportedDeclaration*/\n      true\n    );\n  }\n  function createNonExportedVariableAssignment(name, value, location) {\n    return createVariableAssignment(\n      name,\n      value,\n      location,\n      /*isExportedDeclaration*/\n      false\n    );\n  }\n  function createVariableAssignment(name, value, location, isExportedDeclaration) {\n    hoistVariableDeclaration(factory2.cloneNode(name));\n    return isExportedDeclaration ? createExportExpression(name, preventSubstitution(setTextRange(factory2.createAssignment(name, value), location))) : preventSubstitution(setTextRange(factory2.createAssignment(name, value), location));\n  }\n  function appendExportsOfImportDeclaration(statements, decl) {\n    if (moduleInfo.exportEquals) {\n      return statements;\n    }\n    const importClause = decl.importClause;\n    if (!importClause) {\n      return statements;\n    }\n    if (importClause.name) {\n      statements = appendExportsOfDeclaration(statements, importClause);\n    }\n    const namedBindings = importClause.namedBindings;\n    if (namedBindings) {\n      switch (namedBindings.kind) {\n        case 275 /* NamespaceImport */:\n          statements = appendExportsOfDeclaration(statements, namedBindings);\n          break;\n        case 276 /* NamedImports */:\n          for (const importBinding of namedBindings.elements) {\n            statements = appendExportsOfDeclaration(statements, importBinding);\n          }\n          break;\n      }\n    }\n    return statements;\n  }\n  function appendExportsOfImportEqualsDeclaration(statements, decl) {\n    if (moduleInfo.exportEquals) {\n      return statements;\n    }\n    return appendExportsOfDeclaration(statements, decl);\n  }\n  function appendExportsOfVariableStatement(statements, node, exportSelf) {\n    if (moduleInfo.exportEquals) {\n      return statements;\n    }\n    for (const decl of node.declarationList.declarations) {\n      if (decl.initializer || exportSelf) {\n        statements = appendExportsOfBindingElement(statements, decl, exportSelf);\n      }\n    }\n    return statements;\n  }\n  function appendExportsOfBindingElement(statements, decl, exportSelf) {\n    if (moduleInfo.exportEquals) {\n      return statements;\n    }\n    if (isBindingPattern(decl.name)) {\n      for (const element of decl.name.elements) {\n        if (!isOmittedExpression(element)) {\n          statements = appendExportsOfBindingElement(statements, element, exportSelf);\n        }\n      }\n    } else if (!isGeneratedIdentifier(decl.name)) {\n      let excludeName;\n      if (exportSelf) {\n        statements = appendExportStatement(statements, decl.name, factory2.getLocalName(decl));\n        excludeName = idText(decl.name);\n      }\n      statements = appendExportsOfDeclaration(statements, decl, excludeName);\n    }\n    return statements;\n  }\n  function appendExportsOfHoistedDeclaration(statements, decl) {\n    if (moduleInfo.exportEquals) {\n      return statements;\n    }\n    let excludeName;\n    if (hasSyntacticModifier(decl, 32 /* Export */)) {\n      const exportName = hasSyntacticModifier(decl, 2048 /* Default */) ? factory2.createStringLiteral(\"default\") : decl.name;\n      statements = appendExportStatement(statements, exportName, factory2.getLocalName(decl));\n      excludeName = getTextOfIdentifierOrLiteral(exportName);\n    }\n    if (decl.name) {\n      statements = appendExportsOfDeclaration(statements, decl, excludeName);\n    }\n    return statements;\n  }\n  function appendExportsOfDeclaration(statements, decl, excludeName) {\n    if (moduleInfo.exportEquals) {\n      return statements;\n    }\n    const name = factory2.getDeclarationName(decl);\n    const exportSpecifiers = moduleInfo.exportSpecifiers.get(name);\n    if (exportSpecifiers) {\n      for (const exportSpecifier of exportSpecifiers) {\n        if (moduleExportNameTextUnescaped(exportSpecifier.name) !== excludeName) {\n          statements = appendExportStatement(statements, exportSpecifier.name, name);\n        }\n      }\n    }\n    return statements;\n  }\n  function appendExportStatement(statements, exportName, expression, allowComments) {\n    statements = append(statements, createExportStatement(exportName, expression, allowComments));\n    return statements;\n  }\n  function createExportStatement(name, value, allowComments) {\n    const statement = factory2.createExpressionStatement(createExportExpression(name, value));\n    startOnNewLine(statement);\n    if (!allowComments) {\n      setEmitFlags(statement, 3072 /* NoComments */);\n    }\n    return statement;\n  }\n  function createExportExpression(name, value) {\n    const exportName = isIdentifier(name) ? factory2.createStringLiteralFromNode(name) : name;\n    setEmitFlags(value, getEmitFlags(value) | 3072 /* NoComments */);\n    return setCommentRange(factory2.createCallExpression(\n      exportFunction,\n      /*typeArguments*/\n      void 0,\n      [exportName, value]\n    ), value);\n  }\n  function topLevelNestedVisitor(node) {\n    switch (node.kind) {\n      case 244 /* VariableStatement */:\n        return visitVariableStatement(node);\n      case 263 /* FunctionDeclaration */:\n        return visitFunctionDeclaration(node);\n      case 264 /* ClassDeclaration */:\n        return visitClassDeclaration(node);\n      case 249 /* ForStatement */:\n        return visitForStatement(\n          node,\n          /*isTopLevel*/\n          true\n        );\n      case 250 /* ForInStatement */:\n        return visitForInStatement(node);\n      case 251 /* ForOfStatement */:\n        return visitForOfStatement(node);\n      case 247 /* DoStatement */:\n        return visitDoStatement(node);\n      case 248 /* WhileStatement */:\n        return visitWhileStatement(node);\n      case 257 /* LabeledStatement */:\n        return visitLabeledStatement(node);\n      case 255 /* WithStatement */:\n        return visitWithStatement(node);\n      case 246 /* IfStatement */:\n        return visitIfStatement(node);\n      case 256 /* SwitchStatement */:\n        return visitSwitchStatement(node);\n      case 270 /* CaseBlock */:\n        return visitCaseBlock(node);\n      case 297 /* CaseClause */:\n        return visitCaseClause(node);\n      case 298 /* DefaultClause */:\n        return visitDefaultClause(node);\n      case 259 /* TryStatement */:\n        return visitTryStatement(node);\n      case 300 /* CatchClause */:\n        return visitCatchClause(node);\n      case 242 /* Block */:\n        return visitBlock(node);\n      default:\n        return visitor(node);\n    }\n  }\n  function visitForStatement(node, isTopLevel) {\n    const savedEnclosingBlockScopedContainer = enclosingBlockScopedContainer;\n    enclosingBlockScopedContainer = node;\n    node = factory2.updateForStatement(\n      node,\n      visitNode(node.initializer, isTopLevel ? visitForInitializer : discardedValueVisitor, isForInitializer),\n      visitNode(node.condition, visitor, isExpression),\n      visitNode(node.incrementor, discardedValueVisitor, isExpression),\n      visitIterationBody(node.statement, isTopLevel ? topLevelNestedVisitor : visitor, context)\n    );\n    enclosingBlockScopedContainer = savedEnclosingBlockScopedContainer;\n    return node;\n  }\n  function visitForInStatement(node) {\n    const savedEnclosingBlockScopedContainer = enclosingBlockScopedContainer;\n    enclosingBlockScopedContainer = node;\n    node = factory2.updateForInStatement(\n      node,\n      visitForInitializer(node.initializer),\n      visitNode(node.expression, visitor, isExpression),\n      visitIterationBody(node.statement, topLevelNestedVisitor, context)\n    );\n    enclosingBlockScopedContainer = savedEnclosingBlockScopedContainer;\n    return node;\n  }\n  function visitForOfStatement(node) {\n    const savedEnclosingBlockScopedContainer = enclosingBlockScopedContainer;\n    enclosingBlockScopedContainer = node;\n    node = factory2.updateForOfStatement(\n      node,\n      node.awaitModifier,\n      visitForInitializer(node.initializer),\n      visitNode(node.expression, visitor, isExpression),\n      visitIterationBody(node.statement, topLevelNestedVisitor, context)\n    );\n    enclosingBlockScopedContainer = savedEnclosingBlockScopedContainer;\n    return node;\n  }\n  function shouldHoistForInitializer(node) {\n    return isVariableDeclarationList(node) && shouldHoistVariableDeclarationList(node);\n  }\n  function visitForInitializer(node) {\n    if (shouldHoistForInitializer(node)) {\n      let expressions;\n      for (const variable of node.declarations) {\n        expressions = append(expressions, transformInitializedVariable(\n          variable,\n          /*isExportedDeclaration*/\n          false\n        ));\n        if (!variable.initializer) {\n          hoistBindingElement(variable);\n        }\n      }\n      return expressions ? factory2.inlineExpressions(expressions) : factory2.createOmittedExpression();\n    } else {\n      return visitNode(node, discardedValueVisitor, isForInitializer);\n    }\n  }\n  function visitDoStatement(node) {\n    return factory2.updateDoStatement(\n      node,\n      visitIterationBody(node.statement, topLevelNestedVisitor, context),\n      visitNode(node.expression, visitor, isExpression)\n    );\n  }\n  function visitWhileStatement(node) {\n    return factory2.updateWhileStatement(\n      node,\n      visitNode(node.expression, visitor, isExpression),\n      visitIterationBody(node.statement, topLevelNestedVisitor, context)\n    );\n  }\n  function visitLabeledStatement(node) {\n    return factory2.updateLabeledStatement(\n      node,\n      node.label,\n      visitNode(node.statement, topLevelNestedVisitor, isStatement, factory2.liftToBlock) ?? factory2.createExpressionStatement(factory2.createIdentifier(\"\"))\n    );\n  }\n  function visitWithStatement(node) {\n    return factory2.updateWithStatement(\n      node,\n      visitNode(node.expression, visitor, isExpression),\n      Debug.checkDefined(visitNode(node.statement, topLevelNestedVisitor, isStatement, factory2.liftToBlock))\n    );\n  }\n  function visitIfStatement(node) {\n    return factory2.updateIfStatement(\n      node,\n      visitNode(node.expression, visitor, isExpression),\n      visitNode(node.thenStatement, topLevelNestedVisitor, isStatement, factory2.liftToBlock) ?? factory2.createBlock([]),\n      visitNode(node.elseStatement, topLevelNestedVisitor, isStatement, factory2.liftToBlock)\n    );\n  }\n  function visitSwitchStatement(node) {\n    return factory2.updateSwitchStatement(\n      node,\n      visitNode(node.expression, visitor, isExpression),\n      Debug.checkDefined(visitNode(node.caseBlock, topLevelNestedVisitor, isCaseBlock))\n    );\n  }\n  function visitCaseBlock(node) {\n    const savedEnclosingBlockScopedContainer = enclosingBlockScopedContainer;\n    enclosingBlockScopedContainer = node;\n    node = factory2.updateCaseBlock(\n      node,\n      visitNodes2(node.clauses, topLevelNestedVisitor, isCaseOrDefaultClause)\n    );\n    enclosingBlockScopedContainer = savedEnclosingBlockScopedContainer;\n    return node;\n  }\n  function visitCaseClause(node) {\n    return factory2.updateCaseClause(\n      node,\n      visitNode(node.expression, visitor, isExpression),\n      visitNodes2(node.statements, topLevelNestedVisitor, isStatement)\n    );\n  }\n  function visitDefaultClause(node) {\n    return visitEachChild(node, topLevelNestedVisitor, context);\n  }\n  function visitTryStatement(node) {\n    return visitEachChild(node, topLevelNestedVisitor, context);\n  }\n  function visitCatchClause(node) {\n    const savedEnclosingBlockScopedContainer = enclosingBlockScopedContainer;\n    enclosingBlockScopedContainer = node;\n    node = factory2.updateCatchClause(\n      node,\n      node.variableDeclaration,\n      Debug.checkDefined(visitNode(node.block, topLevelNestedVisitor, isBlock))\n    );\n    enclosingBlockScopedContainer = savedEnclosingBlockScopedContainer;\n    return node;\n  }\n  function visitBlock(node) {\n    const savedEnclosingBlockScopedContainer = enclosingBlockScopedContainer;\n    enclosingBlockScopedContainer = node;\n    node = visitEachChild(node, topLevelNestedVisitor, context);\n    enclosingBlockScopedContainer = savedEnclosingBlockScopedContainer;\n    return node;\n  }\n  function visitorWorker(node, valueIsDiscarded) {\n    if (!(node.transformFlags & (4096 /* ContainsDestructuringAssignment */ | 8388608 /* ContainsDynamicImport */ | 268435456 /* ContainsUpdateExpressionForIdentifier */))) {\n      return node;\n    }\n    switch (node.kind) {\n      case 249 /* ForStatement */:\n        return visitForStatement(\n          node,\n          /*isTopLevel*/\n          false\n        );\n      case 245 /* ExpressionStatement */:\n        return visitExpressionStatement(node);\n      case 218 /* ParenthesizedExpression */:\n        return visitParenthesizedExpression(node, valueIsDiscarded);\n      case 356 /* PartiallyEmittedExpression */:\n        return visitPartiallyEmittedExpression(node, valueIsDiscarded);\n      case 227 /* BinaryExpression */:\n        if (isDestructuringAssignment(node)) {\n          return visitDestructuringAssignment(node, valueIsDiscarded);\n        }\n        break;\n      case 214 /* CallExpression */:\n        if (isImportCall(node)) {\n          return visitImportCallExpression(node);\n        }\n        break;\n      case 225 /* PrefixUnaryExpression */:\n      case 226 /* PostfixUnaryExpression */:\n        return visitPrefixOrPostfixUnaryExpression(node, valueIsDiscarded);\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function visitor(node) {\n    return visitorWorker(\n      node,\n      /*valueIsDiscarded*/\n      false\n    );\n  }\n  function discardedValueVisitor(node) {\n    return visitorWorker(\n      node,\n      /*valueIsDiscarded*/\n      true\n    );\n  }\n  function visitExpressionStatement(node) {\n    return factory2.updateExpressionStatement(node, visitNode(node.expression, discardedValueVisitor, isExpression));\n  }\n  function visitParenthesizedExpression(node, valueIsDiscarded) {\n    return factory2.updateParenthesizedExpression(node, visitNode(node.expression, valueIsDiscarded ? discardedValueVisitor : visitor, isExpression));\n  }\n  function visitPartiallyEmittedExpression(node, valueIsDiscarded) {\n    return factory2.updatePartiallyEmittedExpression(node, visitNode(node.expression, valueIsDiscarded ? discardedValueVisitor : visitor, isExpression));\n  }\n  function visitImportCallExpression(node) {\n    const externalModuleName = getExternalModuleNameLiteral(factory2, node, currentSourceFile, host, resolver, compilerOptions);\n    const firstArgument = visitNode(firstOrUndefined(node.arguments), visitor, isExpression);\n    const argument = externalModuleName && (!firstArgument || !isStringLiteral(firstArgument) || firstArgument.text !== externalModuleName.text) ? externalModuleName : firstArgument;\n    return factory2.createCallExpression(\n      factory2.createPropertyAccessExpression(\n        contextObject,\n        factory2.createIdentifier(\"import\")\n      ),\n      /*typeArguments*/\n      void 0,\n      argument ? [argument] : []\n    );\n  }\n  function visitDestructuringAssignment(node, valueIsDiscarded) {\n    if (hasExportedReferenceInDestructuringTarget(node.left)) {\n      return flattenDestructuringAssignment(\n        node,\n        visitor,\n        context,\n        0 /* All */,\n        !valueIsDiscarded\n      );\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function hasExportedReferenceInDestructuringTarget(node) {\n    if (isAssignmentExpression(\n      node,\n      /*excludeCompoundAssignment*/\n      true\n    )) {\n      return hasExportedReferenceInDestructuringTarget(node.left);\n    } else if (isSpreadElement(node)) {\n      return hasExportedReferenceInDestructuringTarget(node.expression);\n    } else if (isObjectLiteralExpression(node)) {\n      return some(node.properties, hasExportedReferenceInDestructuringTarget);\n    } else if (isArrayLiteralExpression(node)) {\n      return some(node.elements, hasExportedReferenceInDestructuringTarget);\n    } else if (isShorthandPropertyAssignment(node)) {\n      return hasExportedReferenceInDestructuringTarget(node.name);\n    } else if (isPropertyAssignment(node)) {\n      return hasExportedReferenceInDestructuringTarget(node.initializer);\n    } else if (isIdentifier(node)) {\n      const container = resolver.getReferencedExportContainer(node);\n      return container !== void 0 && container.kind === 308 /* SourceFile */;\n    } else {\n      return false;\n    }\n  }\n  function visitPrefixOrPostfixUnaryExpression(node, valueIsDiscarded) {\n    if ((node.operator === 46 /* PlusPlusToken */ || node.operator === 47 /* MinusMinusToken */) && isIdentifier(node.operand) && !isGeneratedIdentifier(node.operand) && !isLocalName(node.operand) && !isDeclarationNameOfEnumOrNamespace(node.operand)) {\n      const exportedNames = getExports(node.operand);\n      if (exportedNames) {\n        let temp;\n        let expression = visitNode(node.operand, visitor, isExpression);\n        if (isPrefixUnaryExpression(node)) {\n          expression = factory2.updatePrefixUnaryExpression(node, expression);\n        } else {\n          expression = factory2.updatePostfixUnaryExpression(node, expression);\n          if (!valueIsDiscarded) {\n            temp = factory2.createTempVariable(hoistVariableDeclaration);\n            expression = factory2.createAssignment(temp, expression);\n            setTextRange(expression, node);\n          }\n          expression = factory2.createComma(expression, factory2.cloneNode(node.operand));\n          setTextRange(expression, node);\n        }\n        for (const exportName of exportedNames) {\n          expression = createExportExpression(exportName, preventSubstitution(expression));\n        }\n        if (temp) {\n          expression = factory2.createComma(expression, temp);\n          setTextRange(expression, node);\n        }\n        return expression;\n      }\n    }\n    return visitEachChild(node, visitor, context);\n  }\n  function modifierVisitor(node) {\n    switch (node.kind) {\n      case 95 /* ExportKeyword */:\n      case 90 /* DefaultKeyword */:\n        return void 0;\n    }\n    return node;\n  }\n  function onEmitNode(hint, node, emitCallback) {\n    if (node.kind === 308 /* SourceFile */) {\n      const id = getOriginalNodeId(node);\n      currentSourceFile = node;\n      moduleInfo = moduleInfoMap[id];\n      exportFunction = exportFunctionsMap[id];\n      noSubstitution = noSubstitutionMap[id];\n      contextObject = contextObjectMap[id];\n      if (noSubstitution) {\n        delete noSubstitutionMap[id];\n      }\n      previousOnEmitNode(hint, node, emitCallback);\n      currentSourceFile = void 0;\n      moduleInfo = void 0;\n      exportFunction = void 0;\n      contextObject = void 0;\n      noSubstitution = void 0;\n    } else {\n      previousOnEmitNode(hint, node, emitCallback);\n    }\n  }\n  function onSubstituteNode(hint, node) {\n    node = previousOnSubstituteNode(hint, node);\n    if (isSubstitutionPrevented(node)) {\n      return node;\n    }\n    if (hint === 1 /* Expression */) {\n      return substituteExpression(node);\n    } else if (hint === 4 /* Unspecified */) {\n      return substituteUnspecified(node);\n    }\n    return node;\n  }\n  function substituteUnspecified(node) {\n    switch (node.kind) {\n      case 305 /* ShorthandPropertyAssignment */:\n        return substituteShorthandPropertyAssignment(node);\n    }\n    return node;\n  }\n  function substituteShorthandPropertyAssignment(node) {\n    var _a, _b;\n    const name = node.name;\n    if (!isGeneratedIdentifier(name) && !isLocalName(name)) {\n      const importDeclaration = resolver.getReferencedImportDeclaration(name);\n      if (importDeclaration) {\n        if (isImportClause(importDeclaration)) {\n          return setTextRange(\n            factory2.createPropertyAssignment(\n              factory2.cloneNode(name),\n              factory2.createPropertyAccessExpression(\n                factory2.getGeneratedNameForNode(importDeclaration.parent),\n                factory2.createIdentifier(\"default\")\n              )\n            ),\n            /*location*/\n            node\n          );\n        } else if (isImportSpecifier(importDeclaration)) {\n          const importedName = importDeclaration.propertyName || importDeclaration.name;\n          const target = factory2.getGeneratedNameForNode(((_b = (_a = importDeclaration.parent) == null ? void 0 : _a.parent) == null ? void 0 : _b.parent) || importDeclaration);\n          return setTextRange(\n            factory2.createPropertyAssignment(\n              factory2.cloneNode(name),\n              importedName.kind === 11 /* StringLiteral */ ? factory2.createElementAccessExpression(target, factory2.cloneNode(importedName)) : factory2.createPropertyAccessExpression(target, factory2.cloneNode(importedName))\n            ),\n            /*location*/\n            node\n          );\n        }\n      }\n    }\n    return node;\n  }\n  function substituteExpression(node) {\n    switch (node.kind) {\n      case 80 /* Identifier */:\n        return substituteExpressionIdentifier(node);\n      case 227 /* BinaryExpression */:\n        return substituteBinaryExpression(node);\n      case 237 /* MetaProperty */:\n        return substituteMetaProperty(node);\n    }\n    return node;\n  }\n  function substituteExpressionIdentifier(node) {\n    var _a, _b;\n    if (getEmitFlags(node) & 8192 /* HelperName */) {\n      const externalHelpersModuleName = getExternalHelpersModuleName(currentSourceFile);\n      if (externalHelpersModuleName) {\n        return factory2.createPropertyAccessExpression(externalHelpersModuleName, node);\n      }\n      return node;\n    }\n    if (!isGeneratedIdentifier(node) && !isLocalName(node)) {\n      const importDeclaration = resolver.getReferencedImportDeclaration(node);\n      if (importDeclaration) {\n        if (isImportClause(importDeclaration)) {\n          return setTextRange(\n            factory2.createPropertyAccessExpression(\n              factory2.getGeneratedNameForNode(importDeclaration.parent),\n              factory2.createIdentifier(\"default\")\n            ),\n            /*location*/\n            node\n          );\n        } else if (isImportSpecifier(importDeclaration)) {\n          const importedName = importDeclaration.propertyName || importDeclaration.name;\n          const target = factory2.getGeneratedNameForNode(((_b = (_a = importDeclaration.parent) == null ? void 0 : _a.parent) == null ? void 0 : _b.parent) || importDeclaration);\n          return setTextRange(\n            importedName.kind === 11 /* StringLiteral */ ? factory2.createElementAccessExpression(target, factory2.cloneNode(importedName)) : factory2.createPropertyAccessExpression(target, factory2.cloneNode(importedName)),\n            /*location*/\n            node\n          );\n        }\n      }\n    }\n    return node;\n  }\n  function substituteBinaryExpression(node) {\n    if (isAssignmentOperator(node.operatorToken.kind) && isIdentifier(node.left) && (!isGeneratedIdentifier(node.left) || isFileLevelReservedGeneratedIdentifier(node.left)) && !isLocalName(node.left)) {\n      const exportedNames = getExports(node.left);\n      if (exportedNames) {\n        let expression = node;\n        for (const exportName of exportedNames) {\n          expression = createExportExpression(exportName, preventSubstitution(expression));\n        }\n        return expression;\n      }\n    }\n    return node;\n  }\n  function substituteMetaProperty(node) {\n    if (isImportMeta(node)) {\n      return factory2.createPropertyAccessExpression(contextObject, factory2.createIdentifier(\"meta\"));\n    }\n    return node;\n  }\n  function getExports(name) {\n    let exportedNames;\n    const valueDeclaration = getReferencedDeclaration(name);\n    if (valueDeclaration) {\n      const exportContainer = resolver.getReferencedExportContainer(\n        name,\n        /*prefixLocals*/\n        false\n      );\n      if (exportContainer && exportContainer.kind === 308 /* SourceFile */) {\n        exportedNames = append(exportedNames, factory2.getDeclarationName(valueDeclaration));\n      }\n      exportedNames = addRange(exportedNames, moduleInfo == null ? void 0 : moduleInfo.exportedBindings[getOriginalNodeId(valueDeclaration)]);\n    } else if (isGeneratedIdentifier(name) && isFileLevelReservedGeneratedIdentifier(name)) {\n      const exportSpecifiers = moduleInfo == null ? void 0 : moduleInfo.exportSpecifiers.get(name);\n      if (exportSpecifiers) {\n        const exportedNames2 = [];\n        for (const exportSpecifier of exportSpecifiers) {\n          exportedNames2.push(exportSpecifier.name);\n        }\n        return exportedNames2;\n      }\n    }\n    return exportedNames;\n  }\n  function getReferencedDeclaration(name) {\n    if (!isGeneratedIdentifier(name)) {\n      const importDeclaration = resolver.getReferencedImportDeclaration(name);\n      if (importDeclaration) return importDeclaration;\n      const valueDeclaration = resolver.getReferencedValueDeclaration(name);\n      if (valueDeclaration && (moduleInfo == null ? void 0 : moduleInfo.exportedBindings[getOriginalNodeId(valueDeclaration)])) return valueDeclaration;\n      const declarations = resolver.getReferencedValueDeclarations(name);\n      if (declarations) {\n        for (const declaration of declarations) {\n          if (declaration !== valueDeclaration && (moduleInfo == null ? void 0 : moduleInfo.exportedBindings[getOriginalNodeId(declaration)])) return declaration;\n        }\n      }\n      return valueDeclaration;\n    }\n  }\n  function preventSubstitution(node) {\n    if (noSubstitution === void 0) noSubstitution = [];\n    noSubstitution[getNodeId(node)] = true;\n    return node;\n  }\n  function isSubstitutionPrevented(node) {\n    return noSubstitution && node.id && noSubstitution[node.id];\n  }\n}\n\n// src/compiler/transformers/module/esnextAnd2015.ts\nfunction transformECMAScriptModule(context) {\n  const {\n    factory: factory2,\n    getEmitHelperFactory: emitHelpers\n  } = context;\n  const host = context.getEmitHost();\n  const resolver = context.getEmitResolver();\n  const compilerOptions = context.getCompilerOptions();\n  const languageVersion = getEmitScriptTarget(compilerOptions);\n  const previousOnEmitNode = context.onEmitNode;\n  const previousOnSubstituteNode = context.onSubstituteNode;\n  context.onEmitNode = onEmitNode;\n  context.onSubstituteNode = onSubstituteNode;\n  context.enableEmitNotification(308 /* SourceFile */);\n  context.enableSubstitution(80 /* Identifier */);\n  const noSubstitution = /* @__PURE__ */ new Set();\n  let importsAndRequiresToRewriteOrShim;\n  let helperNameSubstitutions;\n  let currentSourceFile;\n  let importRequireStatements;\n  return chainBundle(context, transformSourceFile);\n  function transformSourceFile(node) {\n    if (node.isDeclarationFile) {\n      return node;\n    }\n    if (isExternalModule(node) || getIsolatedModules(compilerOptions)) {\n      currentSourceFile = node;\n      importRequireStatements = void 0;\n      if (compilerOptions.rewriteRelativeImportExtensions && (currentSourceFile.flags & 4194304 /* PossiblyContainsDynamicImport */ || isInJSFile(node))) {\n        forEachDynamicImportOrRequireCall(\n          node,\n          /*includeTypeSpaceImports*/\n          false,\n          /*requireStringLiteralLikeArgument*/\n          false,\n          (node2) => {\n            if (!isStringLiteralLike(node2.arguments[0]) || shouldRewriteModuleSpecifier(node2.arguments[0].text, compilerOptions)) {\n              importsAndRequiresToRewriteOrShim = append(importsAndRequiresToRewriteOrShim, node2);\n            }\n          }\n        );\n      }\n      let result = updateExternalModule(node);\n      addEmitHelpers(result, context.readEmitHelpers());\n      currentSourceFile = void 0;\n      if (importRequireStatements) {\n        result = factory2.updateSourceFile(\n          result,\n          setTextRange(factory2.createNodeArray(insertStatementsAfterCustomPrologue(result.statements.slice(), importRequireStatements)), result.statements)\n        );\n      }\n      if (!isExternalModule(node) || getEmitModuleKind(compilerOptions) === 200 /* Preserve */ || some(result.statements, isExternalModuleIndicator)) {\n        return result;\n      }\n      return factory2.updateSourceFile(\n        result,\n        setTextRange(factory2.createNodeArray([...result.statements, createEmptyExports(factory2)]), result.statements)\n      );\n    }\n    return node;\n  }\n  function updateExternalModule(node) {\n    const externalHelpersImportDeclaration = createExternalHelpersImportDeclarationIfNeeded(factory2, emitHelpers(), node, compilerOptions);\n    if (externalHelpersImportDeclaration) {\n      const statements = [];\n      const statementOffset = factory2.copyPrologue(node.statements, statements);\n      addRange(statements, visitArray([externalHelpersImportDeclaration], visitor, isStatement));\n      addRange(statements, visitNodes2(node.statements, visitor, isStatement, statementOffset));\n      return factory2.updateSourceFile(\n        node,\n        setTextRange(factory2.createNodeArray(statements), node.statements)\n      );\n    } else {\n      return visitEachChild(node, visitor, context);\n    }\n  }\n  function visitor(node) {\n    switch (node.kind) {\n      case 272 /* ImportEqualsDeclaration */:\n        return getEmitModuleKind(compilerOptions) >= 100 /* Node16 */ ? visitImportEqualsDeclaration(node) : void 0;\n      case 278 /* ExportAssignment */:\n        return visitExportAssignment(node);\n      case 279 /* ExportDeclaration */:\n        const exportDecl = node;\n        return visitExportDeclaration(exportDecl);\n      case 273 /* ImportDeclaration */:\n        return visitImportDeclaration(node);\n      case 214 /* CallExpression */:\n        if (node === (importsAndRequiresToRewriteOrShim == null ? void 0 : importsAndRequiresToRewriteOrShim[0])) {\n          return visitImportOrRequireCall(importsAndRequiresToRewriteOrShim.shift());\n        }\n      // fallthrough\n      default:\n        if ((importsAndRequiresToRewriteOrShim == null ? void 0 : importsAndRequiresToRewriteOrShim.length) && rangeContainsRange(node, importsAndRequiresToRewriteOrShim[0])) {\n          return visitEachChild(node, visitor, context);\n        }\n    }\n    return node;\n  }\n  function visitImportDeclaration(node) {\n    if (!compilerOptions.rewriteRelativeImportExtensions) {\n      return node;\n    }\n    const updatedModuleSpecifier = rewriteModuleSpecifier(node.moduleSpecifier, compilerOptions);\n    if (updatedModuleSpecifier === node.moduleSpecifier) {\n      return node;\n    }\n    return factory2.updateImportDeclaration(\n      node,\n      node.modifiers,\n      node.importClause,\n      updatedModuleSpecifier,\n      node.attributes\n    );\n  }\n  function visitImportOrRequireCall(node) {\n    return factory2.updateCallExpression(\n      node,\n      node.expression,\n      node.typeArguments,\n      [\n        isStringLiteralLike(node.arguments[0]) ? rewriteModuleSpecifier(node.arguments[0], compilerOptions) : emitHelpers().createRewriteRelativeImportExtensionsHelper(node.arguments[0]),\n        ...node.arguments.slice(1)\n      ]\n    );\n  }\n  function createRequireCall2(importNode) {\n    const moduleName = getExternalModuleNameLiteral(factory2, importNode, Debug.checkDefined(currentSourceFile), host, resolver, compilerOptions);\n    const args = [];\n    if (moduleName) {\n      args.push(rewriteModuleSpecifier(moduleName, compilerOptions));\n    }\n    if (getEmitModuleKind(compilerOptions) === 200 /* Preserve */) {\n      return factory2.createCallExpression(\n        factory2.createIdentifier(\"require\"),\n        /*typeArguments*/\n        void 0,\n        args\n      );\n    }\n    if (!importRequireStatements) {\n      const createRequireName = factory2.createUniqueName(\"_createRequire\", 16 /* Optimistic */ | 32 /* FileLevel */);\n      const importStatement = factory2.createImportDeclaration(\n        /*modifiers*/\n        void 0,\n        factory2.createImportClause(\n          /*phaseModifier*/\n          void 0,\n          /*name*/\n          void 0,\n          factory2.createNamedImports([\n            factory2.createImportSpecifier(\n              /*isTypeOnly*/\n              false,\n              factory2.createIdentifier(\"createRequire\"),\n              createRequireName\n            )\n          ])\n        ),\n        factory2.createStringLiteral(\"module\"),\n        /*attributes*/\n        void 0\n      );\n      const requireHelperName = factory2.createUniqueName(\"__require\", 16 /* Optimistic */ | 32 /* FileLevel */);\n      const requireStatement = factory2.createVariableStatement(\n        /*modifiers*/\n        void 0,\n        factory2.createVariableDeclarationList(\n          [\n            factory2.createVariableDeclaration(\n              requireHelperName,\n              /*exclamationToken*/\n              void 0,\n              /*type*/\n              void 0,\n              factory2.createCallExpression(\n                factory2.cloneNode(createRequireName),\n                /*typeArguments*/\n                void 0,\n                [\n                  factory2.createPropertyAccessExpression(factory2.createMetaProperty(102 /* ImportKeyword */, factory2.createIdentifier(\"meta\")), factory2.createIdentifier(\"url\"))\n                ]\n              )\n            )\n          ],\n          /*flags*/\n          languageVersion >= 2 /* ES2015 */ ? 2 /* Const */ : 0 /* None */\n        )\n      );\n      importRequireStatements = [importStatement, requireStatement];\n    }\n    const name = importRequireStatements[1].declarationList.declarations[0].name;\n    Debug.assertNode(name, isIdentifier);\n    return factory2.createCallExpression(\n      factory2.cloneNode(name),\n      /*typeArguments*/\n      void 0,\n      args\n    );\n  }\n  function visitImportEqualsDeclaration(node) {\n    Debug.assert(isExternalModuleImportEqualsDeclaration(node), \"import= for internal module references should be handled in an earlier transformer.\");\n    let statements;\n    statements = append(\n      statements,\n      setOriginalNode(\n        setTextRange(\n          factory2.createVariableStatement(\n            /*modifiers*/\n            void 0,\n            factory2.createVariableDeclarationList(\n              [\n                factory2.createVariableDeclaration(\n                  factory2.cloneNode(node.name),\n                  /*exclamationToken*/\n                  void 0,\n                  /*type*/\n                  void 0,\n                  createRequireCall2(node)\n                )\n              ],\n              /*flags*/\n              languageVersion >= 2 /* ES2015 */ ? 2 /* Const */ : 0 /* None */\n            )\n          ),\n          node\n        ),\n        node\n      )\n    );\n    statements = appendExportsOfImportEqualsDeclaration(statements, node);\n    return singleOrMany(statements);\n  }\n  function appendExportsOfImportEqualsDeclaration(statements, node) {\n    if (hasSyntacticModifier(node, 32 /* Export */)) {\n      statements = append(\n        statements,\n        factory2.createExportDeclaration(\n          /*modifiers*/\n          void 0,\n          node.isTypeOnly,\n          factory2.createNamedExports([factory2.createExportSpecifier(\n            /*isTypeOnly*/\n            false,\n            /*propertyName*/\n            void 0,\n            idText(node.name)\n          )])\n        )\n      );\n    }\n    return statements;\n  }\n  function visitExportAssignment(node) {\n    if (node.isExportEquals) {\n      if (getEmitModuleKind(compilerOptions) === 200 /* Preserve */) {\n        const statement = setOriginalNode(\n          factory2.createExpressionStatement(\n            factory2.createAssignment(\n              factory2.createPropertyAccessExpression(\n                factory2.createIdentifier(\"module\"),\n                \"exports\"\n              ),\n              node.expression\n            )\n          ),\n          node\n        );\n        return statement;\n      }\n      return void 0;\n    }\n    return node;\n  }\n  function visitExportDeclaration(node) {\n    const updatedModuleSpecifier = rewriteModuleSpecifier(node.moduleSpecifier, compilerOptions);\n    if (compilerOptions.module !== void 0 && compilerOptions.module > 5 /* ES2015 */ || !node.exportClause || !isNamespaceExport(node.exportClause) || !node.moduleSpecifier) {\n      return !node.moduleSpecifier || updatedModuleSpecifier === node.moduleSpecifier ? node : factory2.updateExportDeclaration(\n        node,\n        node.modifiers,\n        node.isTypeOnly,\n        node.exportClause,\n        updatedModuleSpecifier,\n        node.attributes\n      );\n    }\n    const oldIdentifier = node.exportClause.name;\n    const synthName = factory2.getGeneratedNameForNode(oldIdentifier);\n    const importDecl = factory2.createImportDeclaration(\n      /*modifiers*/\n      void 0,\n      factory2.createImportClause(\n        /*phaseModifier*/\n        void 0,\n        /*name*/\n        void 0,\n        factory2.createNamespaceImport(\n          synthName\n        )\n      ),\n      updatedModuleSpecifier,\n      node.attributes\n    );\n    setOriginalNode(importDecl, node.exportClause);\n    const exportDecl = isExportNamespaceAsDefaultDeclaration(node) ? factory2.createExportDefault(synthName) : factory2.createExportDeclaration(\n      /*modifiers*/\n      void 0,\n      /*isTypeOnly*/\n      false,\n      factory2.createNamedExports([factory2.createExportSpecifier(\n        /*isTypeOnly*/\n        false,\n        synthName,\n        oldIdentifier\n      )])\n    );\n    setOriginalNode(exportDecl, node);\n    return [importDecl, exportDecl];\n  }\n  function onEmitNode(hint, node, emitCallback) {\n    if (isSourceFile(node)) {\n      if ((isExternalModule(node) || getIsolatedModules(compilerOptions)) && compilerOptions.importHelpers) {\n        helperNameSubstitutions = /* @__PURE__ */ new Map();\n      }\n      currentSourceFile = node;\n      previousOnEmitNode(hint, node, emitCallback);\n      currentSourceFile = void 0;\n      helperNameSubstitutions = void 0;\n    } else {\n      previousOnEmitNode(hint, node, emitCallback);\n    }\n  }\n  function onSubstituteNode(hint, node) {\n    node = previousOnSubstituteNode(hint, node);\n    if (node.id && noSubstitution.has(node.id)) {\n      return node;\n    }\n    if (isIdentifier(node) && getEmitFlags(node) & 8192 /* HelperName */) {\n      return substituteHelperName(node);\n    }\n    return node;\n  }\n  function substituteHelperName(node) {\n    const externalHelpersModuleName = currentSourceFile && getExternalHelpersModuleName(currentSourceFile);\n    if (externalHelpersModuleName) {\n      noSubstitution.add(getNodeId(node));\n      return factory2.createPropertyAccessExpression(externalHelpersModuleName, node);\n    }\n    if (helperNameSubstitutions) {\n      const name = idText(node);\n      let substitution = helperNameSubstitutions.get(name);\n      if (!substitution) {\n        helperNameSubstitutions.set(name, substitution = factory2.createUniqueName(name, 16 /* Optimistic */ | 32 /* FileLevel */));\n      }\n      return substitution;\n    }\n    return node;\n  }\n}\n\n// src/compiler/transformers/module/impliedNodeFormatDependent.ts\nfunction transformImpliedNodeFormatDependentModule(context) {\n  const previousOnSubstituteNode = context.onSubstituteNode;\n  const previousOnEmitNode = context.onEmitNode;\n  const esmTransform = transformECMAScriptModule(context);\n  const esmOnSubstituteNode = context.onSubstituteNode;\n  const esmOnEmitNode = context.onEmitNode;\n  context.onSubstituteNode = previousOnSubstituteNode;\n  context.onEmitNode = previousOnEmitNode;\n  const cjsTransform = transformModule(context);\n  const cjsOnSubstituteNode = context.onSubstituteNode;\n  const cjsOnEmitNode = context.onEmitNode;\n  const getEmitModuleFormatOfFile2 = (file) => context.getEmitHost().getEmitModuleFormatOfFile(file);\n  context.onSubstituteNode = onSubstituteNode;\n  context.onEmitNode = onEmitNode;\n  context.enableSubstitution(308 /* SourceFile */);\n  context.enableEmitNotification(308 /* SourceFile */);\n  let currentSourceFile;\n  return transformSourceFileOrBundle;\n  function onSubstituteNode(hint, node) {\n    if (isSourceFile(node)) {\n      currentSourceFile = node;\n      return previousOnSubstituteNode(hint, node);\n    } else {\n      if (!currentSourceFile) {\n        return previousOnSubstituteNode(hint, node);\n      }\n      if (getEmitModuleFormatOfFile2(currentSourceFile) >= 5 /* ES2015 */) {\n        return esmOnSubstituteNode(hint, node);\n      }\n      return cjsOnSubstituteNode(hint, node);\n    }\n  }\n  function onEmitNode(hint, node, emitCallback) {\n    if (isSourceFile(node)) {\n      currentSourceFile = node;\n    }\n    if (!currentSourceFile) {\n      return previousOnEmitNode(hint, node, emitCallback);\n    }\n    if (getEmitModuleFormatOfFile2(currentSourceFile) >= 5 /* ES2015 */) {\n      return esmOnEmitNode(hint, node, emitCallback);\n    }\n    return cjsOnEmitNode(hint, node, emitCallback);\n  }\n  function getModuleTransformForFile(file) {\n    return getEmitModuleFormatOfFile2(file) >= 5 /* ES2015 */ ? esmTransform : cjsTransform;\n  }\n  function transformSourceFile(node) {\n    if (node.isDeclarationFile) {\n      return node;\n    }\n    currentSourceFile = node;\n    const result = getModuleTransformForFile(node)(node);\n    currentSourceFile = void 0;\n    Debug.assert(isSourceFile(result));\n    return result;\n  }\n  function transformSourceFileOrBundle(node) {\n    return node.kind === 308 /* SourceFile */ ? transformSourceFile(node) : transformBundle(node);\n  }\n  function transformBundle(node) {\n    return context.factory.createBundle(map(node.sourceFiles, transformSourceFile));\n  }\n}\n\n// src/compiler/transformers/declarations/diagnostics.ts\nfunction canProduceDiagnostics(node) {\n  return isVariableDeclaration(node) || isPropertyDeclaration(node) || isPropertySignature(node) || isBindingElement(node) || isSetAccessor(node) || isGetAccessor(node) || isConstructSignatureDeclaration(node) || isCallSignatureDeclaration(node) || isMethodDeclaration(node) || isMethodSignature(node) || isFunctionDeclaration(node) || isParameter(node) || isTypeParameterDeclaration(node) || isExpressionWithTypeArguments(node) || isImportEqualsDeclaration(node) || isTypeAliasDeclaration(node) || isConstructorDeclaration(node) || isIndexSignatureDeclaration(node) || isPropertyAccessExpression(node) || isElementAccessExpression(node) || isBinaryExpression(node) || isJSDocTypeAlias(node);\n}\nfunction createGetSymbolAccessibilityDiagnosticForNodeName(node) {\n  if (isSetAccessor(node) || isGetAccessor(node)) {\n    return getAccessorNameVisibilityError;\n  } else if (isMethodSignature(node) || isMethodDeclaration(node)) {\n    return getMethodNameVisibilityError;\n  } else {\n    return createGetSymbolAccessibilityDiagnosticForNode(node);\n  }\n  function getAccessorNameVisibilityError(symbolAccessibilityResult) {\n    const diagnosticMessage = getAccessorNameVisibilityDiagnosticMessage(symbolAccessibilityResult);\n    return diagnosticMessage !== void 0 ? {\n      diagnosticMessage,\n      errorNode: node,\n      typeName: node.name\n    } : void 0;\n  }\n  function getAccessorNameVisibilityDiagnosticMessage(symbolAccessibilityResult) {\n    if (isStatic(node)) {\n      return symbolAccessibilityResult.errorModuleName ? symbolAccessibilityResult.accessibility === 2 /* CannotBeNamed */ ? Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_private_name_1;\n    } else if (node.parent.kind === 264 /* ClassDeclaration */) {\n      return symbolAccessibilityResult.errorModuleName ? symbolAccessibilityResult.accessibility === 2 /* CannotBeNamed */ ? Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Public_property_0_of_exported_class_has_or_is_using_private_name_1;\n    } else {\n      return symbolAccessibilityResult.errorModuleName ? Diagnostics.Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Property_0_of_exported_interface_has_or_is_using_private_name_1;\n    }\n  }\n  function getMethodNameVisibilityError(symbolAccessibilityResult) {\n    const diagnosticMessage = getMethodNameVisibilityDiagnosticMessage(symbolAccessibilityResult);\n    return diagnosticMessage !== void 0 ? {\n      diagnosticMessage,\n      errorNode: node,\n      typeName: node.name\n    } : void 0;\n  }\n  function getMethodNameVisibilityDiagnosticMessage(symbolAccessibilityResult) {\n    if (isStatic(node)) {\n      return symbolAccessibilityResult.errorModuleName ? symbolAccessibilityResult.accessibility === 2 /* CannotBeNamed */ ? Diagnostics.Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : Diagnostics.Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Public_static_method_0_of_exported_class_has_or_is_using_private_name_1;\n    } else if (node.parent.kind === 264 /* ClassDeclaration */) {\n      return symbolAccessibilityResult.errorModuleName ? symbolAccessibilityResult.accessibility === 2 /* CannotBeNamed */ ? Diagnostics.Public_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : Diagnostics.Public_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Public_method_0_of_exported_class_has_or_is_using_private_name_1;\n    } else {\n      return symbolAccessibilityResult.errorModuleName ? Diagnostics.Method_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Method_0_of_exported_interface_has_or_is_using_private_name_1;\n    }\n  }\n}\nfunction createGetSymbolAccessibilityDiagnosticForNode(node) {\n  if (isVariableDeclaration(node) || isPropertyDeclaration(node) || isPropertySignature(node) || isPropertyAccessExpression(node) || isElementAccessExpression(node) || isBinaryExpression(node) || isBindingElement(node) || isConstructorDeclaration(node)) {\n    return getVariableDeclarationTypeVisibilityError;\n  } else if (isSetAccessor(node) || isGetAccessor(node)) {\n    return getAccessorDeclarationTypeVisibilityError;\n  } else if (isConstructSignatureDeclaration(node) || isCallSignatureDeclaration(node) || isMethodDeclaration(node) || isMethodSignature(node) || isFunctionDeclaration(node) || isIndexSignatureDeclaration(node)) {\n    return getReturnTypeVisibilityError;\n  } else if (isParameter(node)) {\n    if (isParameterPropertyDeclaration(node, node.parent) && hasSyntacticModifier(node.parent, 2 /* Private */)) {\n      return getVariableDeclarationTypeVisibilityError;\n    }\n    return getParameterDeclarationTypeVisibilityError;\n  } else if (isTypeParameterDeclaration(node)) {\n    return getTypeParameterConstraintVisibilityError;\n  } else if (isExpressionWithTypeArguments(node)) {\n    return getHeritageClauseVisibilityError;\n  } else if (isImportEqualsDeclaration(node)) {\n    return getImportEntityNameVisibilityError;\n  } else if (isTypeAliasDeclaration(node) || isJSDocTypeAlias(node)) {\n    return getTypeAliasDeclarationVisibilityError;\n  } else {\n    return Debug.assertNever(node, `Attempted to set a declaration diagnostic context for unhandled node kind: ${Debug.formatSyntaxKind(node.kind)}`);\n  }\n  function getVariableDeclarationTypeVisibilityDiagnosticMessage(symbolAccessibilityResult) {\n    if (node.kind === 261 /* VariableDeclaration */ || node.kind === 209 /* BindingElement */) {\n      return symbolAccessibilityResult.errorModuleName ? symbolAccessibilityResult.accessibility === 2 /* CannotBeNamed */ ? Diagnostics.Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : Diagnostics.Exported_variable_0_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Exported_variable_0_has_or_is_using_private_name_1;\n    } else if (node.kind === 173 /* PropertyDeclaration */ || node.kind === 212 /* PropertyAccessExpression */ || node.kind === 213 /* ElementAccessExpression */ || node.kind === 227 /* BinaryExpression */ || node.kind === 172 /* PropertySignature */ || node.kind === 170 /* Parameter */ && hasSyntacticModifier(node.parent, 2 /* Private */)) {\n      if (isStatic(node)) {\n        return symbolAccessibilityResult.errorModuleName ? symbolAccessibilityResult.accessibility === 2 /* CannotBeNamed */ ? Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_private_name_1;\n      } else if (node.parent.kind === 264 /* ClassDeclaration */ || node.kind === 170 /* Parameter */) {\n        return symbolAccessibilityResult.errorModuleName ? symbolAccessibilityResult.accessibility === 2 /* CannotBeNamed */ ? Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Public_property_0_of_exported_class_has_or_is_using_private_name_1;\n      } else {\n        return symbolAccessibilityResult.errorModuleName ? Diagnostics.Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Property_0_of_exported_interface_has_or_is_using_private_name_1;\n      }\n    }\n  }\n  function getVariableDeclarationTypeVisibilityError(symbolAccessibilityResult) {\n    const diagnosticMessage = getVariableDeclarationTypeVisibilityDiagnosticMessage(symbolAccessibilityResult);\n    return diagnosticMessage !== void 0 ? {\n      diagnosticMessage,\n      errorNode: node,\n      typeName: node.name\n    } : void 0;\n  }\n  function getAccessorDeclarationTypeVisibilityError(symbolAccessibilityResult) {\n    let diagnosticMessage;\n    if (node.kind === 179 /* SetAccessor */) {\n      if (isStatic(node)) {\n        diagnosticMessage = symbolAccessibilityResult.errorModuleName ? Diagnostics.Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_private_name_1;\n      } else {\n        diagnosticMessage = symbolAccessibilityResult.errorModuleName ? Diagnostics.Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_private_name_1;\n      }\n    } else {\n      if (isStatic(node)) {\n        diagnosticMessage = symbolAccessibilityResult.errorModuleName ? symbolAccessibilityResult.accessibility === 2 /* CannotBeNamed */ ? Diagnostics.Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : Diagnostics.Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_private_name_1;\n      } else {\n        diagnosticMessage = symbolAccessibilityResult.errorModuleName ? symbolAccessibilityResult.accessibility === 2 /* CannotBeNamed */ ? Diagnostics.Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : Diagnostics.Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Return_type_of_public_getter_0_from_exported_class_has_or_is_using_private_name_1;\n      }\n    }\n    return {\n      diagnosticMessage,\n      errorNode: node.name,\n      typeName: node.name\n    };\n  }\n  function getReturnTypeVisibilityError(symbolAccessibilityResult) {\n    let diagnosticMessage;\n    switch (node.kind) {\n      case 181 /* ConstructSignature */:\n        diagnosticMessage = symbolAccessibilityResult.errorModuleName ? Diagnostics.Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1 : Diagnostics.Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0;\n        break;\n      case 180 /* CallSignature */:\n        diagnosticMessage = symbolAccessibilityResult.errorModuleName ? Diagnostics.Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1 : Diagnostics.Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0;\n        break;\n      case 182 /* IndexSignature */:\n        diagnosticMessage = symbolAccessibilityResult.errorModuleName ? Diagnostics.Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1 : Diagnostics.Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0;\n        break;\n      case 175 /* MethodDeclaration */:\n      case 174 /* MethodSignature */:\n        if (isStatic(node)) {\n          diagnosticMessage = symbolAccessibilityResult.errorModuleName ? symbolAccessibilityResult.accessibility === 2 /* CannotBeNamed */ ? Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1 : Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0;\n        } else if (node.parent.kind === 264 /* ClassDeclaration */) {\n          diagnosticMessage = symbolAccessibilityResult.errorModuleName ? symbolAccessibilityResult.accessibility === 2 /* CannotBeNamed */ ? Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1 : Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0;\n        } else {\n          diagnosticMessage = symbolAccessibilityResult.errorModuleName ? Diagnostics.Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1 : Diagnostics.Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0;\n        }\n        break;\n      case 263 /* FunctionDeclaration */:\n        diagnosticMessage = symbolAccessibilityResult.errorModuleName ? symbolAccessibilityResult.accessibility === 2 /* CannotBeNamed */ ? Diagnostics.Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : Diagnostics.Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1 : Diagnostics.Return_type_of_exported_function_has_or_is_using_private_name_0;\n        break;\n      default:\n        return Debug.fail(\"This is unknown kind for signature: \" + node.kind);\n    }\n    return {\n      diagnosticMessage,\n      errorNode: node.name || node\n    };\n  }\n  function getParameterDeclarationTypeVisibilityError(symbolAccessibilityResult) {\n    const diagnosticMessage = getParameterDeclarationTypeVisibilityDiagnosticMessage(symbolAccessibilityResult);\n    return diagnosticMessage !== void 0 ? {\n      diagnosticMessage,\n      errorNode: node,\n      typeName: node.name\n    } : void 0;\n  }\n  function getParameterDeclarationTypeVisibilityDiagnosticMessage(symbolAccessibilityResult) {\n    switch (node.parent.kind) {\n      case 177 /* Constructor */:\n        return symbolAccessibilityResult.errorModuleName ? symbolAccessibilityResult.accessibility === 2 /* CannotBeNamed */ ? Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1;\n      case 181 /* ConstructSignature */:\n      case 186 /* ConstructorType */:\n        return symbolAccessibilityResult.errorModuleName ? Diagnostics.Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1;\n      case 180 /* CallSignature */:\n        return symbolAccessibilityResult.errorModuleName ? Diagnostics.Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1;\n      case 182 /* IndexSignature */:\n        return symbolAccessibilityResult.errorModuleName ? Diagnostics.Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_private_name_1;\n      case 175 /* MethodDeclaration */:\n      case 174 /* MethodSignature */:\n        if (isStatic(node.parent)) {\n          return symbolAccessibilityResult.errorModuleName ? symbolAccessibilityResult.accessibility === 2 /* CannotBeNamed */ ? Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1;\n        } else if (node.parent.parent.kind === 264 /* ClassDeclaration */) {\n          return symbolAccessibilityResult.errorModuleName ? symbolAccessibilityResult.accessibility === 2 /* CannotBeNamed */ ? Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1;\n        } else {\n          return symbolAccessibilityResult.errorModuleName ? Diagnostics.Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1;\n        }\n      case 263 /* FunctionDeclaration */:\n      case 185 /* FunctionType */:\n        return symbolAccessibilityResult.errorModuleName ? symbolAccessibilityResult.accessibility === 2 /* CannotBeNamed */ ? Diagnostics.Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : Diagnostics.Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Parameter_0_of_exported_function_has_or_is_using_private_name_1;\n      case 179 /* SetAccessor */:\n      case 178 /* GetAccessor */:\n        return symbolAccessibilityResult.errorModuleName ? symbolAccessibilityResult.accessibility === 2 /* CannotBeNamed */ ? Diagnostics.Parameter_0_of_accessor_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : Diagnostics.Parameter_0_of_accessor_has_or_is_using_name_1_from_private_module_2 : Diagnostics.Parameter_0_of_accessor_has_or_is_using_private_name_1;\n      default:\n        return Debug.fail(`Unknown parent for parameter: ${Debug.formatSyntaxKind(node.parent.kind)}`);\n    }\n  }\n  function getTypeParameterConstraintVisibilityError() {\n    let diagnosticMessage;\n    switch (node.parent.kind) {\n      case 264 /* ClassDeclaration */:\n        diagnosticMessage = Diagnostics.Type_parameter_0_of_exported_class_has_or_is_using_private_name_1;\n        break;\n      case 265 /* InterfaceDeclaration */:\n        diagnosticMessage = Diagnostics.Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1;\n        break;\n      case 201 /* MappedType */:\n        diagnosticMessage = Diagnostics.Type_parameter_0_of_exported_mapped_object_type_is_using_private_name_1;\n        break;\n      case 186 /* ConstructorType */:\n      case 181 /* ConstructSignature */:\n        diagnosticMessage = Diagnostics.Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1;\n        break;\n      case 180 /* CallSignature */:\n        diagnosticMessage = Diagnostics.Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1;\n        break;\n      case 175 /* MethodDeclaration */:\n      case 174 /* MethodSignature */:\n        if (isStatic(node.parent)) {\n          diagnosticMessage = Diagnostics.Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1;\n        } else if (node.parent.parent.kind === 264 /* ClassDeclaration */) {\n          diagnosticMessage = Diagnostics.Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1;\n        } else {\n          diagnosticMessage = Diagnostics.Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1;\n        }\n        break;\n      case 185 /* FunctionType */:\n      case 263 /* FunctionDeclaration */:\n        diagnosticMessage = Diagnostics.Type_parameter_0_of_exported_function_has_or_is_using_private_name_1;\n        break;\n      case 196 /* InferType */:\n        diagnosticMessage = Diagnostics.Extends_clause_for_inferred_type_0_has_or_is_using_private_name_1;\n        break;\n      case 266 /* TypeAliasDeclaration */:\n        diagnosticMessage = Diagnostics.Type_parameter_0_of_exported_type_alias_has_or_is_using_private_name_1;\n        break;\n      default:\n        return Debug.fail(\"This is unknown parent for type parameter: \" + node.parent.kind);\n    }\n    return {\n      diagnosticMessage,\n      errorNode: node,\n      typeName: node.name\n    };\n  }\n  function getHeritageClauseVisibilityError() {\n    let diagnosticMessage;\n    if (isClassDeclaration(node.parent.parent)) {\n      diagnosticMessage = isHeritageClause(node.parent) && node.parent.token === 119 /* ImplementsKeyword */ ? Diagnostics.Implements_clause_of_exported_class_0_has_or_is_using_private_name_1 : node.parent.parent.name ? Diagnostics.extends_clause_of_exported_class_0_has_or_is_using_private_name_1 : Diagnostics.extends_clause_of_exported_class_has_or_is_using_private_name_0;\n    } else {\n      diagnosticMessage = Diagnostics.extends_clause_of_exported_interface_0_has_or_is_using_private_name_1;\n    }\n    return {\n      diagnosticMessage,\n      errorNode: node,\n      typeName: getNameOfDeclaration(node.parent.parent)\n    };\n  }\n  function getImportEntityNameVisibilityError() {\n    return {\n      diagnosticMessage: Diagnostics.Import_declaration_0_is_using_private_name_1,\n      errorNode: node,\n      typeName: node.name\n    };\n  }\n  function getTypeAliasDeclarationVisibilityError(symbolAccessibilityResult) {\n    return {\n      diagnosticMessage: symbolAccessibilityResult.errorModuleName ? Diagnostics.Exported_type_alias_0_has_or_is_using_private_name_1_from_module_2 : Diagnostics.Exported_type_alias_0_has_or_is_using_private_name_1,\n      errorNode: isJSDocTypeAlias(node) ? Debug.checkDefined(node.typeExpression) : node.type,\n      typeName: isJSDocTypeAlias(node) ? getNameOfDeclaration(node) : node.name\n    };\n  }\n}\nfunction createGetIsolatedDeclarationErrors(resolver) {\n  const relatedSuggestionByDeclarationKind = {\n    [220 /* ArrowFunction */]: Diagnostics.Add_a_return_type_to_the_function_expression,\n    [219 /* FunctionExpression */]: Diagnostics.Add_a_return_type_to_the_function_expression,\n    [175 /* MethodDeclaration */]: Diagnostics.Add_a_return_type_to_the_method,\n    [178 /* GetAccessor */]: Diagnostics.Add_a_return_type_to_the_get_accessor_declaration,\n    [179 /* SetAccessor */]: Diagnostics.Add_a_type_to_parameter_of_the_set_accessor_declaration,\n    [263 /* FunctionDeclaration */]: Diagnostics.Add_a_return_type_to_the_function_declaration,\n    [181 /* ConstructSignature */]: Diagnostics.Add_a_return_type_to_the_function_declaration,\n    [170 /* Parameter */]: Diagnostics.Add_a_type_annotation_to_the_parameter_0,\n    [261 /* VariableDeclaration */]: Diagnostics.Add_a_type_annotation_to_the_variable_0,\n    [173 /* PropertyDeclaration */]: Diagnostics.Add_a_type_annotation_to_the_property_0,\n    [172 /* PropertySignature */]: Diagnostics.Add_a_type_annotation_to_the_property_0,\n    [278 /* ExportAssignment */]: Diagnostics.Move_the_expression_in_default_export_to_a_variable_and_add_a_type_annotation_to_it\n  };\n  const errorByDeclarationKind = {\n    [219 /* FunctionExpression */]: Diagnostics.Function_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations,\n    [263 /* FunctionDeclaration */]: Diagnostics.Function_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations,\n    [220 /* ArrowFunction */]: Diagnostics.Function_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations,\n    [175 /* MethodDeclaration */]: Diagnostics.Method_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations,\n    [181 /* ConstructSignature */]: Diagnostics.Method_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations,\n    [178 /* GetAccessor */]: Diagnostics.At_least_one_accessor_must_have_an_explicit_type_annotation_with_isolatedDeclarations,\n    [179 /* SetAccessor */]: Diagnostics.At_least_one_accessor_must_have_an_explicit_type_annotation_with_isolatedDeclarations,\n    [170 /* Parameter */]: Diagnostics.Parameter_must_have_an_explicit_type_annotation_with_isolatedDeclarations,\n    [261 /* VariableDeclaration */]: Diagnostics.Variable_must_have_an_explicit_type_annotation_with_isolatedDeclarations,\n    [173 /* PropertyDeclaration */]: Diagnostics.Property_must_have_an_explicit_type_annotation_with_isolatedDeclarations,\n    [172 /* PropertySignature */]: Diagnostics.Property_must_have_an_explicit_type_annotation_with_isolatedDeclarations,\n    [168 /* ComputedPropertyName */]: Diagnostics.Computed_property_names_on_class_or_object_literals_cannot_be_inferred_with_isolatedDeclarations,\n    [306 /* SpreadAssignment */]: Diagnostics.Objects_that_contain_spread_assignments_can_t_be_inferred_with_isolatedDeclarations,\n    [305 /* ShorthandPropertyAssignment */]: Diagnostics.Objects_that_contain_shorthand_properties_can_t_be_inferred_with_isolatedDeclarations,\n    [210 /* ArrayLiteralExpression */]: Diagnostics.Only_const_arrays_can_be_inferred_with_isolatedDeclarations,\n    [278 /* ExportAssignment */]: Diagnostics.Default_exports_can_t_be_inferred_with_isolatedDeclarations,\n    [231 /* SpreadElement */]: Diagnostics.Arrays_with_spread_elements_can_t_inferred_with_isolatedDeclarations\n  };\n  return getDiagnostic2;\n  function getDiagnostic2(node) {\n    const heritageClause = findAncestor(node, isHeritageClause);\n    if (heritageClause) {\n      return createDiagnosticForNode(node, Diagnostics.Extends_clause_can_t_contain_an_expression_with_isolatedDeclarations);\n    }\n    if ((isPartOfTypeNode(node) || isTypeQueryNode(node.parent)) && (isEntityName(node) || isEntityNameExpression(node))) {\n      return createEntityInTypeNodeError(node);\n    }\n    Debug.type(node);\n    switch (node.kind) {\n      case 178 /* GetAccessor */:\n      case 179 /* SetAccessor */:\n        return createAccessorTypeError(node);\n      case 168 /* ComputedPropertyName */:\n      case 305 /* ShorthandPropertyAssignment */:\n      case 306 /* SpreadAssignment */:\n        return createObjectLiteralError(node);\n      case 210 /* ArrayLiteralExpression */:\n      case 231 /* SpreadElement */:\n        return createArrayLiteralError(node);\n      case 175 /* MethodDeclaration */:\n      case 181 /* ConstructSignature */:\n      case 219 /* FunctionExpression */:\n      case 220 /* ArrowFunction */:\n      case 263 /* FunctionDeclaration */:\n        return createReturnTypeError(node);\n      case 209 /* BindingElement */:\n        return createBindingElementError(node);\n      case 173 /* PropertyDeclaration */:\n      case 261 /* VariableDeclaration */:\n        return createVariableOrPropertyError(node);\n      case 170 /* Parameter */:\n        return createParameterError(node);\n      case 304 /* PropertyAssignment */:\n        return createExpressionError(node.initializer);\n      case 232 /* ClassExpression */:\n        return createClassExpressionError(node);\n      default:\n        assertType(node);\n        return createExpressionError(node);\n    }\n  }\n  function findNearestDeclaration(node) {\n    const result = findAncestor(node, (n) => isExportAssignment(n) || isStatement(n) || isVariableDeclaration(n) || isPropertyDeclaration(n) || isParameter(n));\n    if (!result) return void 0;\n    if (isExportAssignment(result)) return result;\n    if (isReturnStatement(result)) {\n      return findAncestor(result, (n) => isFunctionLikeDeclaration(n) && !isConstructorDeclaration(n));\n    }\n    return isStatement(result) ? void 0 : result;\n  }\n  function createAccessorTypeError(node) {\n    const { getAccessor, setAccessor } = getAllAccessorDeclarations(node.symbol.declarations, node);\n    const targetNode = (isSetAccessor(node) ? node.parameters[0] : node) ?? node;\n    const diag2 = createDiagnosticForNode(targetNode, errorByDeclarationKind[node.kind]);\n    if (setAccessor) {\n      addRelatedInfo(diag2, createDiagnosticForNode(setAccessor, relatedSuggestionByDeclarationKind[setAccessor.kind]));\n    }\n    if (getAccessor) {\n      addRelatedInfo(diag2, createDiagnosticForNode(getAccessor, relatedSuggestionByDeclarationKind[getAccessor.kind]));\n    }\n    return diag2;\n  }\n  function addParentDeclarationRelatedInfo(node, diag2) {\n    const parentDeclaration = findNearestDeclaration(node);\n    if (parentDeclaration) {\n      const targetStr = isExportAssignment(parentDeclaration) || !parentDeclaration.name ? \"\" : getTextOfNode(\n        parentDeclaration.name,\n        /*includeTrivia*/\n        false\n      );\n      addRelatedInfo(diag2, createDiagnosticForNode(parentDeclaration, relatedSuggestionByDeclarationKind[parentDeclaration.kind], targetStr));\n    }\n    return diag2;\n  }\n  function createObjectLiteralError(node) {\n    const diag2 = createDiagnosticForNode(node, errorByDeclarationKind[node.kind]);\n    addParentDeclarationRelatedInfo(node, diag2);\n    return diag2;\n  }\n  function createArrayLiteralError(node) {\n    const diag2 = createDiagnosticForNode(node, errorByDeclarationKind[node.kind]);\n    addParentDeclarationRelatedInfo(node, diag2);\n    return diag2;\n  }\n  function createReturnTypeError(node) {\n    const diag2 = createDiagnosticForNode(node, errorByDeclarationKind[node.kind]);\n    addParentDeclarationRelatedInfo(node, diag2);\n    addRelatedInfo(diag2, createDiagnosticForNode(node, relatedSuggestionByDeclarationKind[node.kind]));\n    return diag2;\n  }\n  function createBindingElementError(node) {\n    return createDiagnosticForNode(node, Diagnostics.Binding_elements_can_t_be_exported_directly_with_isolatedDeclarations);\n  }\n  function createVariableOrPropertyError(node) {\n    const diag2 = createDiagnosticForNode(node, errorByDeclarationKind[node.kind]);\n    const targetStr = getTextOfNode(\n      node.name,\n      /*includeTrivia*/\n      false\n    );\n    addRelatedInfo(diag2, createDiagnosticForNode(node, relatedSuggestionByDeclarationKind[node.kind], targetStr));\n    return diag2;\n  }\n  function createParameterError(node) {\n    if (isSetAccessor(node.parent)) {\n      return createAccessorTypeError(node.parent);\n    }\n    const addUndefined = resolver.requiresAddingImplicitUndefined(node, node.parent);\n    if (!addUndefined && node.initializer) {\n      return createExpressionError(node.initializer);\n    }\n    const message = addUndefined ? Diagnostics.Declaration_emit_for_this_parameter_requires_implicitly_adding_undefined_to_its_type_This_is_not_supported_with_isolatedDeclarations : errorByDeclarationKind[node.kind];\n    const diag2 = createDiagnosticForNode(node, message);\n    const targetStr = getTextOfNode(\n      node.name,\n      /*includeTrivia*/\n      false\n    );\n    addRelatedInfo(diag2, createDiagnosticForNode(node, relatedSuggestionByDeclarationKind[node.kind], targetStr));\n    return diag2;\n  }\n  function createClassExpressionError(node) {\n    return createExpressionError(node, Diagnostics.Inference_from_class_expressions_is_not_supported_with_isolatedDeclarations);\n  }\n  function createEntityInTypeNodeError(node) {\n    const diag2 = createDiagnosticForNode(node, Diagnostics.Type_containing_private_name_0_can_t_be_used_with_isolatedDeclarations, getTextOfNode(\n      node,\n      /*includeTrivia*/\n      false\n    ));\n    addParentDeclarationRelatedInfo(node, diag2);\n    return diag2;\n  }\n  function createExpressionError(node, diagnosticMessage) {\n    const parentDeclaration = findNearestDeclaration(node);\n    let diag2;\n    if (parentDeclaration) {\n      const targetStr = isExportAssignment(parentDeclaration) || !parentDeclaration.name ? \"\" : getTextOfNode(\n        parentDeclaration.name,\n        /*includeTrivia*/\n        false\n      );\n      const parent2 = findAncestor(node.parent, (n) => isExportAssignment(n) || (isStatement(n) ? \"quit\" : !isParenthesizedExpression(n) && !isTypeAssertionExpression(n) && !isAsExpression(n)));\n      if (parentDeclaration === parent2) {\n        diag2 = createDiagnosticForNode(node, diagnosticMessage ?? errorByDeclarationKind[parentDeclaration.kind]);\n        addRelatedInfo(diag2, createDiagnosticForNode(parentDeclaration, relatedSuggestionByDeclarationKind[parentDeclaration.kind], targetStr));\n      } else {\n        diag2 = createDiagnosticForNode(node, diagnosticMessage ?? Diagnostics.Expression_type_can_t_be_inferred_with_isolatedDeclarations);\n        addRelatedInfo(diag2, createDiagnosticForNode(parentDeclaration, relatedSuggestionByDeclarationKind[parentDeclaration.kind], targetStr));\n        addRelatedInfo(diag2, createDiagnosticForNode(node, Diagnostics.Add_satisfies_and_a_type_assertion_to_this_expression_satisfies_T_as_T_to_make_the_type_explicit));\n      }\n    } else {\n      diag2 = createDiagnosticForNode(node, diagnosticMessage ?? Diagnostics.Expression_type_can_t_be_inferred_with_isolatedDeclarations);\n    }\n    return diag2;\n  }\n}\n\n// src/compiler/transformers/declarations.ts\nfunction getDeclarationDiagnostics(host, resolver, file) {\n  const compilerOptions = host.getCompilerOptions();\n  const files = filter(getSourceFilesToEmit(host, file), isSourceFileNotJson);\n  return contains(files, file) ? transformNodes(\n    resolver,\n    host,\n    factory,\n    compilerOptions,\n    [file],\n    [transformDeclarations],\n    /*allowDtsFiles*/\n    false\n  ).diagnostics : void 0;\n}\nvar declarationEmitNodeBuilderFlags = 1024 /* MultilineObjectLiterals */ | 2048 /* WriteClassExpressionAsTypeLiteral */ | 4096 /* UseTypeOfFunction */ | 8 /* UseStructuralFallback */ | 524288 /* AllowEmptyTuple */ | 4 /* GenerateNamesForShadowedTypeParams */ | 1 /* NoTruncation */;\nvar declarationEmitInternalNodeBuilderFlags = 8 /* AllowUnresolvedNames */;\nfunction transformDeclarations(context) {\n  const throwDiagnostic = () => Debug.fail(\"Diagnostic emitted without context\");\n  let getSymbolAccessibilityDiagnostic = throwDiagnostic;\n  let needsDeclare = true;\n  let isBundledEmit = false;\n  let resultHasExternalModuleIndicator = false;\n  let needsScopeFixMarker = false;\n  let resultHasScopeMarker = false;\n  let enclosingDeclaration;\n  let lateMarkedStatements;\n  let lateStatementReplacementMap;\n  let suppressNewDiagnosticContexts;\n  const { factory: factory2 } = context;\n  const host = context.getEmitHost();\n  let restoreFallbackNode = () => void 0;\n  const symbolTracker = {\n    trackSymbol,\n    reportInaccessibleThisError,\n    reportInaccessibleUniqueSymbolError,\n    reportCyclicStructureError,\n    reportPrivateInBaseOfClassExpression,\n    reportLikelyUnsafeImportRequiredError,\n    reportTruncationError,\n    moduleResolverHost: host,\n    reportNonlocalAugmentation,\n    reportNonSerializableProperty,\n    reportInferenceFallback,\n    pushErrorFallbackNode(node) {\n      const currentFallback = errorFallbackNode;\n      const currentRestore = restoreFallbackNode;\n      restoreFallbackNode = () => {\n        restoreFallbackNode = currentRestore;\n        errorFallbackNode = currentFallback;\n      };\n      errorFallbackNode = node;\n    },\n    popErrorFallbackNode() {\n      restoreFallbackNode();\n    }\n  };\n  let errorNameNode;\n  let errorFallbackNode;\n  let currentSourceFile;\n  let rawReferencedFiles;\n  let rawTypeReferenceDirectives;\n  let rawLibReferenceDirectives;\n  const resolver = context.getEmitResolver();\n  const options = context.getCompilerOptions();\n  const getIsolatedDeclarationError = createGetIsolatedDeclarationErrors(resolver);\n  const { stripInternal, isolatedDeclarations } = options;\n  return transformRoot;\n  function reportExpandoFunctionErrors(node) {\n    resolver.getPropertiesOfContainerFunction(node).forEach((p) => {\n      if (isExpandoPropertyDeclaration(p.valueDeclaration)) {\n        const errorTarget = isBinaryExpression(p.valueDeclaration) ? p.valueDeclaration.left : p.valueDeclaration;\n        context.addDiagnostic(createDiagnosticForNode(\n          errorTarget,\n          Diagnostics.Assigning_properties_to_functions_without_declaring_them_is_not_supported_with_isolatedDeclarations_Add_an_explicit_declaration_for_the_properties_assigned_to_this_function\n        ));\n      }\n    });\n  }\n  function reportInferenceFallback(node) {\n    if (!isolatedDeclarations || isSourceFileJS(currentSourceFile)) return;\n    if (getSourceFileOfNode(node) !== currentSourceFile) return;\n    if (isVariableDeclaration(node) && resolver.isExpandoFunctionDeclaration(node)) {\n      reportExpandoFunctionErrors(node);\n    } else {\n      context.addDiagnostic(getIsolatedDeclarationError(node));\n    }\n  }\n  function handleSymbolAccessibilityError(symbolAccessibilityResult) {\n    if (symbolAccessibilityResult.accessibility === 0 /* Accessible */) {\n      if (symbolAccessibilityResult.aliasesToMakeVisible) {\n        if (!lateMarkedStatements) {\n          lateMarkedStatements = symbolAccessibilityResult.aliasesToMakeVisible;\n        } else {\n          for (const ref of symbolAccessibilityResult.aliasesToMakeVisible) {\n            pushIfUnique(lateMarkedStatements, ref);\n          }\n        }\n      }\n    } else if (symbolAccessibilityResult.accessibility !== 3 /* NotResolved */) {\n      const errorInfo = getSymbolAccessibilityDiagnostic(symbolAccessibilityResult);\n      if (errorInfo) {\n        if (errorInfo.typeName) {\n          context.addDiagnostic(createDiagnosticForNode(symbolAccessibilityResult.errorNode || errorInfo.errorNode, errorInfo.diagnosticMessage, getTextOfNode(errorInfo.typeName), symbolAccessibilityResult.errorSymbolName, symbolAccessibilityResult.errorModuleName));\n        } else {\n          context.addDiagnostic(createDiagnosticForNode(symbolAccessibilityResult.errorNode || errorInfo.errorNode, errorInfo.diagnosticMessage, symbolAccessibilityResult.errorSymbolName, symbolAccessibilityResult.errorModuleName));\n        }\n        return true;\n      }\n    }\n    return false;\n  }\n  function trackSymbol(symbol, enclosingDeclaration2, meaning) {\n    if (symbol.flags & 262144 /* TypeParameter */) return false;\n    const issuedDiagnostic = handleSymbolAccessibilityError(resolver.isSymbolAccessible(\n      symbol,\n      enclosingDeclaration2,\n      meaning,\n      /*shouldComputeAliasToMarkVisible*/\n      true\n    ));\n    return issuedDiagnostic;\n  }\n  function reportPrivateInBaseOfClassExpression(propertyName) {\n    if (errorNameNode || errorFallbackNode) {\n      context.addDiagnostic(\n        addRelatedInfo(\n          createDiagnosticForNode(errorNameNode || errorFallbackNode, Diagnostics.Property_0_of_exported_anonymous_class_type_may_not_be_private_or_protected, propertyName),\n          ...isVariableDeclaration((errorNameNode || errorFallbackNode).parent) ? [createDiagnosticForNode(errorNameNode || errorFallbackNode, Diagnostics.Add_a_type_annotation_to_the_variable_0, errorDeclarationNameWithFallback())] : []\n        )\n      );\n    }\n  }\n  function errorDeclarationNameWithFallback() {\n    return errorNameNode ? declarationNameToString(errorNameNode) : errorFallbackNode && getNameOfDeclaration(errorFallbackNode) ? declarationNameToString(getNameOfDeclaration(errorFallbackNode)) : errorFallbackNode && isExportAssignment(errorFallbackNode) ? errorFallbackNode.isExportEquals ? \"export=\" : \"default\" : \"(Missing)\";\n  }\n  function reportInaccessibleUniqueSymbolError() {\n    if (errorNameNode || errorFallbackNode) {\n      context.addDiagnostic(createDiagnosticForNode(errorNameNode || errorFallbackNode, Diagnostics.The_inferred_type_of_0_references_an_inaccessible_1_type_A_type_annotation_is_necessary, errorDeclarationNameWithFallback(), \"unique symbol\"));\n    }\n  }\n  function reportCyclicStructureError() {\n    if (errorNameNode || errorFallbackNode) {\n      context.addDiagnostic(createDiagnosticForNode(errorNameNode || errorFallbackNode, Diagnostics.The_inferred_type_of_0_references_a_type_with_a_cyclic_structure_which_cannot_be_trivially_serialized_A_type_annotation_is_necessary, errorDeclarationNameWithFallback()));\n    }\n  }\n  function reportInaccessibleThisError() {\n    if (errorNameNode || errorFallbackNode) {\n      context.addDiagnostic(createDiagnosticForNode(errorNameNode || errorFallbackNode, Diagnostics.The_inferred_type_of_0_references_an_inaccessible_1_type_A_type_annotation_is_necessary, errorDeclarationNameWithFallback(), \"this\"));\n    }\n  }\n  function reportLikelyUnsafeImportRequiredError(specifier) {\n    if (errorNameNode || errorFallbackNode) {\n      context.addDiagnostic(createDiagnosticForNode(errorNameNode || errorFallbackNode, Diagnostics.The_inferred_type_of_0_cannot_be_named_without_a_reference_to_1_This_is_likely_not_portable_A_type_annotation_is_necessary, errorDeclarationNameWithFallback(), specifier));\n    }\n  }\n  function reportTruncationError() {\n    if (errorNameNode || errorFallbackNode) {\n      context.addDiagnostic(createDiagnosticForNode(errorNameNode || errorFallbackNode, Diagnostics.The_inferred_type_of_this_node_exceeds_the_maximum_length_the_compiler_will_serialize_An_explicit_type_annotation_is_needed));\n    }\n  }\n  function reportNonlocalAugmentation(containingFile, parentSymbol, symbol) {\n    var _a;\n    const primaryDeclaration = (_a = parentSymbol.declarations) == null ? void 0 : _a.find((d) => getSourceFileOfNode(d) === containingFile);\n    const augmentingDeclarations = filter(symbol.declarations, (d) => getSourceFileOfNode(d) !== containingFile);\n    if (primaryDeclaration && augmentingDeclarations) {\n      for (const augmentations of augmentingDeclarations) {\n        context.addDiagnostic(addRelatedInfo(\n          createDiagnosticForNode(augmentations, Diagnostics.Declaration_augments_declaration_in_another_file_This_cannot_be_serialized),\n          createDiagnosticForNode(primaryDeclaration, Diagnostics.This_is_the_declaration_being_augmented_Consider_moving_the_augmenting_declaration_into_the_same_file)\n        ));\n      }\n    }\n  }\n  function reportNonSerializableProperty(propertyName) {\n    if (errorNameNode || errorFallbackNode) {\n      context.addDiagnostic(createDiagnosticForNode(errorNameNode || errorFallbackNode, Diagnostics.The_type_of_this_node_cannot_be_serialized_because_its_property_0_cannot_be_serialized, propertyName));\n    }\n  }\n  function transformDeclarationsForJS(sourceFile) {\n    const oldDiag = getSymbolAccessibilityDiagnostic;\n    getSymbolAccessibilityDiagnostic = (s) => s.errorNode && canProduceDiagnostics(s.errorNode) ? createGetSymbolAccessibilityDiagnosticForNode(s.errorNode)(s) : {\n      diagnosticMessage: s.errorModuleName ? Diagnostics.Declaration_emit_for_this_file_requires_using_private_name_0_from_module_1_An_explicit_type_annotation_may_unblock_declaration_emit : Diagnostics.Declaration_emit_for_this_file_requires_using_private_name_0_An_explicit_type_annotation_may_unblock_declaration_emit,\n      errorNode: s.errorNode || sourceFile\n    };\n    const result = resolver.getDeclarationStatementsForSourceFile(sourceFile, declarationEmitNodeBuilderFlags, declarationEmitInternalNodeBuilderFlags, symbolTracker);\n    getSymbolAccessibilityDiagnostic = oldDiag;\n    return result;\n  }\n  function transformRoot(node) {\n    if (node.kind === 308 /* SourceFile */ && node.isDeclarationFile) {\n      return node;\n    }\n    if (node.kind === 309 /* Bundle */) {\n      isBundledEmit = true;\n      rawReferencedFiles = [];\n      rawTypeReferenceDirectives = [];\n      rawLibReferenceDirectives = [];\n      let hasNoDefaultLib = false;\n      const bundle = factory2.createBundle(\n        map(node.sourceFiles, (sourceFile) => {\n          if (sourceFile.isDeclarationFile) return void 0;\n          hasNoDefaultLib = hasNoDefaultLib || sourceFile.hasNoDefaultLib;\n          currentSourceFile = sourceFile;\n          enclosingDeclaration = sourceFile;\n          lateMarkedStatements = void 0;\n          suppressNewDiagnosticContexts = false;\n          lateStatementReplacementMap = /* @__PURE__ */ new Map();\n          getSymbolAccessibilityDiagnostic = throwDiagnostic;\n          needsScopeFixMarker = false;\n          resultHasScopeMarker = false;\n          collectFileReferences(sourceFile);\n          if (isExternalOrCommonJsModule(sourceFile) || isJsonSourceFile(sourceFile)) {\n            resultHasExternalModuleIndicator = false;\n            needsDeclare = false;\n            const statements = isSourceFileJS(sourceFile) ? factory2.createNodeArray(transformDeclarationsForJS(sourceFile)) : visitNodes2(sourceFile.statements, visitDeclarationStatements, isStatement);\n            const newFile = factory2.updateSourceFile(\n              sourceFile,\n              [factory2.createModuleDeclaration(\n                [factory2.createModifier(138 /* DeclareKeyword */)],\n                factory2.createStringLiteral(getResolvedExternalModuleName(context.getEmitHost(), sourceFile)),\n                factory2.createModuleBlock(setTextRange(factory2.createNodeArray(transformAndReplaceLatePaintedStatements(statements)), sourceFile.statements))\n              )],\n              /*isDeclarationFile*/\n              true,\n              /*referencedFiles*/\n              [],\n              /*typeReferences*/\n              [],\n              /*hasNoDefaultLib*/\n              false,\n              /*libReferences*/\n              []\n            );\n            return newFile;\n          }\n          needsDeclare = true;\n          const updated = isSourceFileJS(sourceFile) ? factory2.createNodeArray(transformDeclarationsForJS(sourceFile)) : visitNodes2(sourceFile.statements, visitDeclarationStatements, isStatement);\n          return factory2.updateSourceFile(\n            sourceFile,\n            transformAndReplaceLatePaintedStatements(updated),\n            /*isDeclarationFile*/\n            true,\n            /*referencedFiles*/\n            [],\n            /*typeReferences*/\n            [],\n            /*hasNoDefaultLib*/\n            false,\n            /*libReferences*/\n            []\n          );\n        })\n      );\n      const outputFilePath2 = getDirectoryPath(normalizeSlashes(getOutputPathsFor(\n        node,\n        host,\n        /*forceDtsPaths*/\n        true\n      ).declarationFilePath));\n      bundle.syntheticFileReferences = getReferencedFiles(outputFilePath2);\n      bundle.syntheticTypeReferences = getTypeReferences();\n      bundle.syntheticLibReferences = getLibReferences();\n      bundle.hasNoDefaultLib = hasNoDefaultLib;\n      return bundle;\n    }\n    needsDeclare = true;\n    needsScopeFixMarker = false;\n    resultHasScopeMarker = false;\n    enclosingDeclaration = node;\n    currentSourceFile = node;\n    getSymbolAccessibilityDiagnostic = throwDiagnostic;\n    isBundledEmit = false;\n    resultHasExternalModuleIndicator = false;\n    suppressNewDiagnosticContexts = false;\n    lateMarkedStatements = void 0;\n    lateStatementReplacementMap = /* @__PURE__ */ new Map();\n    rawReferencedFiles = [];\n    rawTypeReferenceDirectives = [];\n    rawLibReferenceDirectives = [];\n    collectFileReferences(currentSourceFile);\n    let combinedStatements;\n    if (isSourceFileJS(currentSourceFile)) {\n      combinedStatements = factory2.createNodeArray(transformDeclarationsForJS(node));\n    } else {\n      const statements = visitNodes2(node.statements, visitDeclarationStatements, isStatement);\n      combinedStatements = setTextRange(factory2.createNodeArray(transformAndReplaceLatePaintedStatements(statements)), node.statements);\n      if (isExternalModule(node) && (!resultHasExternalModuleIndicator || needsScopeFixMarker && !resultHasScopeMarker)) {\n        combinedStatements = setTextRange(factory2.createNodeArray([...combinedStatements, createEmptyExports(factory2)]), combinedStatements);\n      }\n    }\n    const outputFilePath = getDirectoryPath(normalizeSlashes(getOutputPathsFor(\n      node,\n      host,\n      /*forceDtsPaths*/\n      true\n    ).declarationFilePath));\n    return factory2.updateSourceFile(\n      node,\n      combinedStatements,\n      /*isDeclarationFile*/\n      true,\n      getReferencedFiles(outputFilePath),\n      getTypeReferences(),\n      node.hasNoDefaultLib,\n      getLibReferences()\n    );\n    function collectFileReferences(sourceFile) {\n      rawReferencedFiles = concatenate(rawReferencedFiles, map(sourceFile.referencedFiles, (f) => [sourceFile, f]));\n      rawTypeReferenceDirectives = concatenate(rawTypeReferenceDirectives, sourceFile.typeReferenceDirectives);\n      rawLibReferenceDirectives = concatenate(rawLibReferenceDirectives, sourceFile.libReferenceDirectives);\n    }\n    function copyFileReferenceAsSynthetic(ref) {\n      const newRef = { ...ref };\n      newRef.pos = -1;\n      newRef.end = -1;\n      return newRef;\n    }\n    function getTypeReferences() {\n      return mapDefined(rawTypeReferenceDirectives, (ref) => {\n        if (!ref.preserve) return void 0;\n        return copyFileReferenceAsSynthetic(ref);\n      });\n    }\n    function getLibReferences() {\n      return mapDefined(rawLibReferenceDirectives, (ref) => {\n        if (!ref.preserve) return void 0;\n        return copyFileReferenceAsSynthetic(ref);\n      });\n    }\n    function getReferencedFiles(outputFilePath2) {\n      return mapDefined(rawReferencedFiles, ([sourceFile, ref]) => {\n        if (!ref.preserve) return void 0;\n        const file = host.getSourceFileFromReference(sourceFile, ref);\n        if (!file) {\n          return void 0;\n        }\n        let declFileName;\n        if (file.isDeclarationFile) {\n          declFileName = file.fileName;\n        } else {\n          if (isBundledEmit && contains(node.sourceFiles, file)) return;\n          const paths = getOutputPathsFor(\n            file,\n            host,\n            /*forceDtsPaths*/\n            true\n          );\n          declFileName = paths.declarationFilePath || paths.jsFilePath || file.fileName;\n        }\n        if (!declFileName) return void 0;\n        const fileName = getRelativePathToDirectoryOrUrl(\n          outputFilePath2,\n          declFileName,\n          host.getCurrentDirectory(),\n          host.getCanonicalFileName,\n          /*isAbsolutePathAnUrl*/\n          false\n        );\n        const newRef = copyFileReferenceAsSynthetic(ref);\n        newRef.fileName = fileName;\n        return newRef;\n      });\n    }\n  }\n  function filterBindingPatternInitializers(name) {\n    if (name.kind === 80 /* Identifier */) {\n      return name;\n    } else {\n      if (name.kind === 208 /* ArrayBindingPattern */) {\n        return factory2.updateArrayBindingPattern(name, visitNodes2(name.elements, visitBindingElement, isArrayBindingElement));\n      } else {\n        return factory2.updateObjectBindingPattern(name, visitNodes2(name.elements, visitBindingElement, isBindingElement));\n      }\n    }\n    function visitBindingElement(elem) {\n      if (elem.kind === 233 /* OmittedExpression */) {\n        return elem;\n      }\n      if (elem.propertyName && isComputedPropertyName(elem.propertyName) && isEntityNameExpression(elem.propertyName.expression)) {\n        checkEntityNameVisibility(elem.propertyName.expression, enclosingDeclaration);\n      }\n      return factory2.updateBindingElement(\n        elem,\n        elem.dotDotDotToken,\n        elem.propertyName,\n        filterBindingPatternInitializers(elem.name),\n        /*initializer*/\n        void 0\n      );\n    }\n  }\n  function ensureParameter(p, modifierMask) {\n    let oldDiag;\n    if (!suppressNewDiagnosticContexts) {\n      oldDiag = getSymbolAccessibilityDiagnostic;\n      getSymbolAccessibilityDiagnostic = createGetSymbolAccessibilityDiagnosticForNode(p);\n    }\n    const newParam = factory2.updateParameterDeclaration(\n      p,\n      maskModifiers(factory2, p, modifierMask),\n      p.dotDotDotToken,\n      filterBindingPatternInitializers(p.name),\n      resolver.isOptionalParameter(p) ? p.questionToken || factory2.createToken(58 /* QuestionToken */) : void 0,\n      ensureType(\n        p,\n        /*ignorePrivate*/\n        true\n      ),\n      // Ignore private param props, since this type is going straight back into a param\n      ensureNoInitializer(p)\n    );\n    if (!suppressNewDiagnosticContexts) {\n      getSymbolAccessibilityDiagnostic = oldDiag;\n    }\n    return newParam;\n  }\n  function shouldPrintWithInitializer(node) {\n    return canHaveLiteralInitializer(node) && !!node.initializer && resolver.isLiteralConstDeclaration(getParseTreeNode(node));\n  }\n  function ensureNoInitializer(node) {\n    if (shouldPrintWithInitializer(node)) {\n      const unwrappedInitializer = unwrapParenthesizedExpression(node.initializer);\n      if (!isPrimitiveLiteralValue(unwrappedInitializer)) {\n        reportInferenceFallback(node);\n      }\n      return resolver.createLiteralConstValue(getParseTreeNode(node, canHaveLiteralInitializer), symbolTracker);\n    }\n    return void 0;\n  }\n  function ensureType(node, ignorePrivate) {\n    if (!ignorePrivate && hasEffectiveModifier(node, 2 /* Private */)) {\n      return;\n    }\n    if (shouldPrintWithInitializer(node)) {\n      return;\n    }\n    if (!isExportAssignment(node) && !isBindingElement(node) && node.type && (!isParameter(node) || !resolver.requiresAddingImplicitUndefined(node, enclosingDeclaration))) {\n      return visitNode(node.type, visitDeclarationSubtree, isTypeNode);\n    }\n    const oldErrorNameNode = errorNameNode;\n    errorNameNode = node.name;\n    let oldDiag;\n    if (!suppressNewDiagnosticContexts) {\n      oldDiag = getSymbolAccessibilityDiagnostic;\n      if (canProduceDiagnostics(node)) {\n        getSymbolAccessibilityDiagnostic = createGetSymbolAccessibilityDiagnosticForNode(node);\n      }\n    }\n    let typeNode;\n    if (hasInferredType(node)) {\n      typeNode = resolver.createTypeOfDeclaration(node, enclosingDeclaration, declarationEmitNodeBuilderFlags, declarationEmitInternalNodeBuilderFlags, symbolTracker);\n    } else if (isFunctionLike(node)) {\n      typeNode = resolver.createReturnTypeOfSignatureDeclaration(node, enclosingDeclaration, declarationEmitNodeBuilderFlags, declarationEmitInternalNodeBuilderFlags, symbolTracker);\n    } else {\n      Debug.assertNever(node);\n    }\n    errorNameNode = oldErrorNameNode;\n    if (!suppressNewDiagnosticContexts) {\n      getSymbolAccessibilityDiagnostic = oldDiag;\n    }\n    return typeNode ?? factory2.createKeywordTypeNode(133 /* AnyKeyword */);\n  }\n  function isDeclarationAndNotVisible(node) {\n    node = getParseTreeNode(node);\n    switch (node.kind) {\n      case 263 /* FunctionDeclaration */:\n      case 268 /* ModuleDeclaration */:\n      case 265 /* InterfaceDeclaration */:\n      case 264 /* ClassDeclaration */:\n      case 266 /* TypeAliasDeclaration */:\n      case 267 /* EnumDeclaration */:\n        return !resolver.isDeclarationVisible(node);\n      // The following should be doing their own visibility checks based on filtering their members\n      case 261 /* VariableDeclaration */:\n        return !getBindingNameVisible(node);\n      case 272 /* ImportEqualsDeclaration */:\n      case 273 /* ImportDeclaration */:\n      case 279 /* ExportDeclaration */:\n      case 278 /* ExportAssignment */:\n        return false;\n      case 176 /* ClassStaticBlockDeclaration */:\n        return true;\n    }\n    return false;\n  }\n  function shouldEmitFunctionProperties(input) {\n    var _a;\n    if (input.body) {\n      return true;\n    }\n    const overloadSignatures = (_a = input.symbol.declarations) == null ? void 0 : _a.filter((decl) => isFunctionDeclaration(decl) && !decl.body);\n    return !overloadSignatures || overloadSignatures.indexOf(input) === overloadSignatures.length - 1;\n  }\n  function getBindingNameVisible(elem) {\n    if (isOmittedExpression(elem)) {\n      return false;\n    }\n    if (isBindingPattern(elem.name)) {\n      return some(elem.name.elements, getBindingNameVisible);\n    } else {\n      return resolver.isDeclarationVisible(elem);\n    }\n  }\n  function updateParamsList(node, params, modifierMask) {\n    if (hasEffectiveModifier(node, 2 /* Private */)) {\n      return factory2.createNodeArray();\n    }\n    const newParams = map(params, (p) => ensureParameter(p, modifierMask));\n    if (!newParams) {\n      return factory2.createNodeArray();\n    }\n    return factory2.createNodeArray(newParams, params.hasTrailingComma);\n  }\n  function updateAccessorParamsList(input, isPrivate) {\n    let newParams;\n    if (!isPrivate) {\n      const thisParameter = getThisParameter(input);\n      if (thisParameter) {\n        newParams = [ensureParameter(thisParameter)];\n      }\n    }\n    if (isSetAccessorDeclaration(input)) {\n      let newValueParameter;\n      if (!isPrivate) {\n        const valueParameter = getSetAccessorValueParameter(input);\n        if (valueParameter) {\n          newValueParameter = ensureParameter(valueParameter);\n        }\n      }\n      if (!newValueParameter) {\n        newValueParameter = factory2.createParameterDeclaration(\n          /*modifiers*/\n          void 0,\n          /*dotDotDotToken*/\n          void 0,\n          \"value\"\n        );\n      }\n      newParams = append(newParams, newValueParameter);\n    }\n    return factory2.createNodeArray(newParams || emptyArray);\n  }\n  function ensureTypeParams(node, params) {\n    return hasEffectiveModifier(node, 2 /* Private */) ? void 0 : visitNodes2(params, visitDeclarationSubtree, isTypeParameterDeclaration);\n  }\n  function isEnclosingDeclaration(node) {\n    return isSourceFile(node) || isTypeAliasDeclaration(node) || isModuleDeclaration(node) || isClassDeclaration(node) || isInterfaceDeclaration(node) || isFunctionLike(node) || isIndexSignatureDeclaration(node) || isMappedTypeNode(node);\n  }\n  function checkEntityNameVisibility(entityName, enclosingDeclaration2) {\n    const visibilityResult = resolver.isEntityNameVisible(entityName, enclosingDeclaration2);\n    handleSymbolAccessibilityError(visibilityResult);\n  }\n  function preserveJsDoc(updated, original) {\n    if (hasJSDocNodes(updated) && hasJSDocNodes(original)) {\n      updated.jsDoc = original.jsDoc;\n    }\n    return setCommentRange(updated, getCommentRange(original));\n  }\n  function rewriteModuleSpecifier2(parent2, input) {\n    if (!input) return void 0;\n    resultHasExternalModuleIndicator = resultHasExternalModuleIndicator || parent2.kind !== 268 /* ModuleDeclaration */ && parent2.kind !== 206 /* ImportType */;\n    if (isStringLiteralLike(input)) {\n      if (isBundledEmit) {\n        const newName = getExternalModuleNameFromDeclaration(context.getEmitHost(), resolver, parent2);\n        if (newName) {\n          return factory2.createStringLiteral(newName);\n        }\n      }\n    }\n    return input;\n  }\n  function transformImportEqualsDeclaration(decl) {\n    if (!resolver.isDeclarationVisible(decl)) return;\n    if (decl.moduleReference.kind === 284 /* ExternalModuleReference */) {\n      const specifier = getExternalModuleImportEqualsDeclarationExpression(decl);\n      return factory2.updateImportEqualsDeclaration(\n        decl,\n        decl.modifiers,\n        decl.isTypeOnly,\n        decl.name,\n        factory2.updateExternalModuleReference(decl.moduleReference, rewriteModuleSpecifier2(decl, specifier))\n      );\n    } else {\n      const oldDiag = getSymbolAccessibilityDiagnostic;\n      getSymbolAccessibilityDiagnostic = createGetSymbolAccessibilityDiagnosticForNode(decl);\n      checkEntityNameVisibility(decl.moduleReference, enclosingDeclaration);\n      getSymbolAccessibilityDiagnostic = oldDiag;\n      return decl;\n    }\n  }\n  function transformImportDeclaration(decl) {\n    if (!decl.importClause) {\n      return factory2.updateImportDeclaration(\n        decl,\n        decl.modifiers,\n        decl.importClause,\n        rewriteModuleSpecifier2(decl, decl.moduleSpecifier),\n        tryGetResolutionModeOverride(decl.attributes)\n      );\n    }\n    const phaseModifier = decl.importClause.phaseModifier === 166 /* DeferKeyword */ ? void 0 : decl.importClause.phaseModifier;\n    const visibleDefaultBinding = decl.importClause && decl.importClause.name && resolver.isDeclarationVisible(decl.importClause) ? decl.importClause.name : void 0;\n    if (!decl.importClause.namedBindings) {\n      return visibleDefaultBinding && factory2.updateImportDeclaration(\n        decl,\n        decl.modifiers,\n        factory2.updateImportClause(\n          decl.importClause,\n          phaseModifier,\n          visibleDefaultBinding,\n          /*namedBindings*/\n          void 0\n        ),\n        rewriteModuleSpecifier2(decl, decl.moduleSpecifier),\n        tryGetResolutionModeOverride(decl.attributes)\n      );\n    }\n    if (decl.importClause.namedBindings.kind === 275 /* NamespaceImport */) {\n      const namedBindings = resolver.isDeclarationVisible(decl.importClause.namedBindings) ? decl.importClause.namedBindings : (\n        /*namedBindings*/\n        void 0\n      );\n      return visibleDefaultBinding || namedBindings ? factory2.updateImportDeclaration(\n        decl,\n        decl.modifiers,\n        factory2.updateImportClause(\n          decl.importClause,\n          phaseModifier,\n          visibleDefaultBinding,\n          namedBindings\n        ),\n        rewriteModuleSpecifier2(decl, decl.moduleSpecifier),\n        tryGetResolutionModeOverride(decl.attributes)\n      ) : void 0;\n    }\n    const bindingList = mapDefined(decl.importClause.namedBindings.elements, (b) => resolver.isDeclarationVisible(b) ? b : void 0);\n    if (bindingList && bindingList.length || visibleDefaultBinding) {\n      return factory2.updateImportDeclaration(\n        decl,\n        decl.modifiers,\n        factory2.updateImportClause(\n          decl.importClause,\n          phaseModifier,\n          visibleDefaultBinding,\n          bindingList && bindingList.length ? factory2.updateNamedImports(decl.importClause.namedBindings, bindingList) : void 0\n        ),\n        rewriteModuleSpecifier2(decl, decl.moduleSpecifier),\n        tryGetResolutionModeOverride(decl.attributes)\n      );\n    }\n    if (resolver.isImportRequiredByAugmentation(decl)) {\n      if (isolatedDeclarations) {\n        context.addDiagnostic(createDiagnosticForNode(decl, Diagnostics.Declaration_emit_for_this_file_requires_preserving_this_import_for_augmentations_This_is_not_supported_with_isolatedDeclarations));\n      }\n      return factory2.updateImportDeclaration(\n        decl,\n        decl.modifiers,\n        /*importClause*/\n        void 0,\n        rewriteModuleSpecifier2(decl, decl.moduleSpecifier),\n        tryGetResolutionModeOverride(decl.attributes)\n      );\n    }\n  }\n  function tryGetResolutionModeOverride(node) {\n    const mode = getResolutionModeOverride(node);\n    return node && mode !== void 0 ? node : void 0;\n  }\n  function transformAndReplaceLatePaintedStatements(statements) {\n    while (length(lateMarkedStatements)) {\n      const i = lateMarkedStatements.shift();\n      if (!isLateVisibilityPaintedStatement(i)) {\n        return Debug.fail(`Late replaced statement was found which is not handled by the declaration transformer!: ${Debug.formatSyntaxKind(i.kind)}`);\n      }\n      const priorNeedsDeclare = needsDeclare;\n      needsDeclare = i.parent && isSourceFile(i.parent) && !(isExternalModule(i.parent) && isBundledEmit);\n      const result = transformTopLevelDeclaration(i);\n      needsDeclare = priorNeedsDeclare;\n      lateStatementReplacementMap.set(getOriginalNodeId(i), result);\n    }\n    return visitNodes2(statements, visitLateVisibilityMarkedStatements, isStatement);\n    function visitLateVisibilityMarkedStatements(statement) {\n      if (isLateVisibilityPaintedStatement(statement)) {\n        const key = getOriginalNodeId(statement);\n        if (lateStatementReplacementMap.has(key)) {\n          const result = lateStatementReplacementMap.get(key);\n          lateStatementReplacementMap.delete(key);\n          if (result) {\n            if (isArray(result) ? some(result, needsScopeMarker) : needsScopeMarker(result)) {\n              needsScopeFixMarker = true;\n            }\n            if (isSourceFile(statement.parent) && (isArray(result) ? some(result, isExternalModuleIndicator) : isExternalModuleIndicator(result))) {\n              resultHasExternalModuleIndicator = true;\n            }\n          }\n          return result;\n        }\n      }\n      return statement;\n    }\n  }\n  function visitDeclarationSubtree(input) {\n    if (shouldStripInternal(input)) return;\n    if (isDeclaration(input)) {\n      if (isDeclarationAndNotVisible(input)) return;\n      if (hasDynamicName(input)) {\n        if (isolatedDeclarations) {\n          if (!resolver.isDefinitelyReferenceToGlobalSymbolObject(input.name.expression)) {\n            if (isClassDeclaration(input.parent) || isObjectLiteralExpression(input.parent)) {\n              context.addDiagnostic(createDiagnosticForNode(input, Diagnostics.Computed_property_names_on_class_or_object_literals_cannot_be_inferred_with_isolatedDeclarations));\n              return;\n            } else if (\n              // Type declarations just need to double-check that the input computed name is an entity name expression\n              (isInterfaceDeclaration(input.parent) || isTypeLiteralNode(input.parent)) && !isEntityNameExpression(input.name.expression)\n            ) {\n              context.addDiagnostic(createDiagnosticForNode(input, Diagnostics.Computed_properties_must_be_number_or_string_literals_variables_or_dotted_expressions_with_isolatedDeclarations));\n              return;\n            }\n          }\n        } else if (!resolver.isLateBound(getParseTreeNode(input)) || !isEntityNameExpression(input.name.expression)) {\n          return;\n        }\n      }\n    }\n    if (isFunctionLike(input) && resolver.isImplementationOfOverload(input)) return;\n    if (isSemicolonClassElement(input)) return;\n    let previousEnclosingDeclaration;\n    if (isEnclosingDeclaration(input)) {\n      previousEnclosingDeclaration = enclosingDeclaration;\n      enclosingDeclaration = input;\n    }\n    const oldDiag = getSymbolAccessibilityDiagnostic;\n    const canProduceDiagnostic = canProduceDiagnostics(input);\n    const oldWithinObjectLiteralType = suppressNewDiagnosticContexts;\n    let shouldEnterSuppressNewDiagnosticsContextContext = (input.kind === 188 /* TypeLiteral */ || input.kind === 201 /* MappedType */) && input.parent.kind !== 266 /* TypeAliasDeclaration */;\n    if (isMethodDeclaration(input) || isMethodSignature(input)) {\n      if (hasEffectiveModifier(input, 2 /* Private */)) {\n        if (input.symbol && input.symbol.declarations && input.symbol.declarations[0] !== input) return;\n        return cleanup(factory2.createPropertyDeclaration(\n          ensureModifiers(input),\n          input.name,\n          /*questionOrExclamationToken*/\n          void 0,\n          /*type*/\n          void 0,\n          /*initializer*/\n          void 0\n        ));\n      }\n    }\n    if (canProduceDiagnostic && !suppressNewDiagnosticContexts) {\n      getSymbolAccessibilityDiagnostic = createGetSymbolAccessibilityDiagnosticForNode(input);\n    }\n    if (isTypeQueryNode(input)) {\n      checkEntityNameVisibility(input.exprName, enclosingDeclaration);\n    }\n    if (shouldEnterSuppressNewDiagnosticsContextContext) {\n      suppressNewDiagnosticContexts = true;\n    }\n    if (isProcessedComponent(input)) {\n      switch (input.kind) {\n        case 234 /* ExpressionWithTypeArguments */: {\n          if (isEntityName(input.expression) || isEntityNameExpression(input.expression)) {\n            checkEntityNameVisibility(input.expression, enclosingDeclaration);\n          }\n          const node = visitEachChild(input, visitDeclarationSubtree, context);\n          return cleanup(factory2.updateExpressionWithTypeArguments(node, node.expression, node.typeArguments));\n        }\n        case 184 /* TypeReference */: {\n          checkEntityNameVisibility(input.typeName, enclosingDeclaration);\n          const node = visitEachChild(input, visitDeclarationSubtree, context);\n          return cleanup(factory2.updateTypeReferenceNode(node, node.typeName, node.typeArguments));\n        }\n        case 181 /* ConstructSignature */:\n          return cleanup(factory2.updateConstructSignature(\n            input,\n            ensureTypeParams(input, input.typeParameters),\n            updateParamsList(input, input.parameters),\n            ensureType(input)\n          ));\n        case 177 /* Constructor */: {\n          const ctor = factory2.createConstructorDeclaration(\n            /*modifiers*/\n            ensureModifiers(input),\n            updateParamsList(input, input.parameters, 0 /* None */),\n            /*body*/\n            void 0\n          );\n          return cleanup(ctor);\n        }\n        case 175 /* MethodDeclaration */: {\n          if (isPrivateIdentifier(input.name)) {\n            return cleanup(\n              /*returnValue*/\n              void 0\n            );\n          }\n          const sig = factory2.createMethodDeclaration(\n            ensureModifiers(input),\n            /*asteriskToken*/\n            void 0,\n            input.name,\n            input.questionToken,\n            ensureTypeParams(input, input.typeParameters),\n            updateParamsList(input, input.parameters),\n            ensureType(input),\n            /*body*/\n            void 0\n          );\n          return cleanup(sig);\n        }\n        case 178 /* GetAccessor */: {\n          if (isPrivateIdentifier(input.name)) {\n            return cleanup(\n              /*returnValue*/\n              void 0\n            );\n          }\n          return cleanup(factory2.updateGetAccessorDeclaration(\n            input,\n            ensureModifiers(input),\n            input.name,\n            updateAccessorParamsList(input, hasEffectiveModifier(input, 2 /* Private */)),\n            ensureType(input),\n            /*body*/\n            void 0\n          ));\n        }\n        case 179 /* SetAccessor */: {\n          if (isPrivateIdentifier(input.name)) {\n            return cleanup(\n              /*returnValue*/\n              void 0\n            );\n          }\n          return cleanup(factory2.updateSetAccessorDeclaration(\n            input,\n            ensureModifiers(input),\n            input.name,\n            updateAccessorParamsList(input, hasEffectiveModifier(input, 2 /* Private */)),\n            /*body*/\n            void 0\n          ));\n        }\n        case 173 /* PropertyDeclaration */:\n          if (isPrivateIdentifier(input.name)) {\n            return cleanup(\n              /*returnValue*/\n              void 0\n            );\n          }\n          return cleanup(factory2.updatePropertyDeclaration(\n            input,\n            ensureModifiers(input),\n            input.name,\n            input.questionToken,\n            ensureType(input),\n            ensureNoInitializer(input)\n          ));\n        case 172 /* PropertySignature */:\n          if (isPrivateIdentifier(input.name)) {\n            return cleanup(\n              /*returnValue*/\n              void 0\n            );\n          }\n          return cleanup(factory2.updatePropertySignature(\n            input,\n            ensureModifiers(input),\n            input.name,\n            input.questionToken,\n            ensureType(input)\n          ));\n        case 174 /* MethodSignature */: {\n          if (isPrivateIdentifier(input.name)) {\n            return cleanup(\n              /*returnValue*/\n              void 0\n            );\n          }\n          return cleanup(factory2.updateMethodSignature(\n            input,\n            ensureModifiers(input),\n            input.name,\n            input.questionToken,\n            ensureTypeParams(input, input.typeParameters),\n            updateParamsList(input, input.parameters),\n            ensureType(input)\n          ));\n        }\n        case 180 /* CallSignature */: {\n          return cleanup(\n            factory2.updateCallSignature(\n              input,\n              ensureTypeParams(input, input.typeParameters),\n              updateParamsList(input, input.parameters),\n              ensureType(input)\n            )\n          );\n        }\n        case 182 /* IndexSignature */: {\n          return cleanup(factory2.updateIndexSignature(\n            input,\n            ensureModifiers(input),\n            updateParamsList(input, input.parameters),\n            visitNode(input.type, visitDeclarationSubtree, isTypeNode) || factory2.createKeywordTypeNode(133 /* AnyKeyword */)\n          ));\n        }\n        case 261 /* VariableDeclaration */: {\n          if (isBindingPattern(input.name)) {\n            return recreateBindingPattern(input.name);\n          }\n          shouldEnterSuppressNewDiagnosticsContextContext = true;\n          suppressNewDiagnosticContexts = true;\n          return cleanup(factory2.updateVariableDeclaration(\n            input,\n            input.name,\n            /*exclamationToken*/\n            void 0,\n            ensureType(input),\n            ensureNoInitializer(input)\n          ));\n        }\n        case 169 /* TypeParameter */: {\n          if (isPrivateMethodTypeParameter(input) && (input.default || input.constraint)) {\n            return cleanup(factory2.updateTypeParameterDeclaration(\n              input,\n              input.modifiers,\n              input.name,\n              /*constraint*/\n              void 0,\n              /*defaultType*/\n              void 0\n            ));\n          }\n          return cleanup(visitEachChild(input, visitDeclarationSubtree, context));\n        }\n        case 195 /* ConditionalType */: {\n          const checkType = visitNode(input.checkType, visitDeclarationSubtree, isTypeNode);\n          const extendsType = visitNode(input.extendsType, visitDeclarationSubtree, isTypeNode);\n          const oldEnclosingDecl = enclosingDeclaration;\n          enclosingDeclaration = input.trueType;\n          const trueType = visitNode(input.trueType, visitDeclarationSubtree, isTypeNode);\n          enclosingDeclaration = oldEnclosingDecl;\n          const falseType = visitNode(input.falseType, visitDeclarationSubtree, isTypeNode);\n          Debug.assert(checkType);\n          Debug.assert(extendsType);\n          Debug.assert(trueType);\n          Debug.assert(falseType);\n          return cleanup(factory2.updateConditionalTypeNode(input, checkType, extendsType, trueType, falseType));\n        }\n        case 185 /* FunctionType */: {\n          return cleanup(factory2.updateFunctionTypeNode(\n            input,\n            visitNodes2(input.typeParameters, visitDeclarationSubtree, isTypeParameterDeclaration),\n            updateParamsList(input, input.parameters),\n            Debug.checkDefined(visitNode(input.type, visitDeclarationSubtree, isTypeNode))\n          ));\n        }\n        case 186 /* ConstructorType */: {\n          return cleanup(factory2.updateConstructorTypeNode(\n            input,\n            ensureModifiers(input),\n            visitNodes2(input.typeParameters, visitDeclarationSubtree, isTypeParameterDeclaration),\n            updateParamsList(input, input.parameters),\n            Debug.checkDefined(visitNode(input.type, visitDeclarationSubtree, isTypeNode))\n          ));\n        }\n        case 206 /* ImportType */: {\n          if (!isLiteralImportTypeNode(input)) return cleanup(input);\n          return cleanup(factory2.updateImportTypeNode(\n            input,\n            factory2.updateLiteralTypeNode(input.argument, rewriteModuleSpecifier2(input, input.argument.literal)),\n            input.attributes,\n            input.qualifier,\n            visitNodes2(input.typeArguments, visitDeclarationSubtree, isTypeNode),\n            input.isTypeOf\n          ));\n        }\n        default:\n          Debug.assertNever(input, `Attempted to process unhandled node kind: ${Debug.formatSyntaxKind(input.kind)}`);\n      }\n    }\n    if (isTupleTypeNode(input) && getLineAndCharacterOfPosition(currentSourceFile, input.pos).line === getLineAndCharacterOfPosition(currentSourceFile, input.end).line) {\n      setEmitFlags(input, 1 /* SingleLine */);\n    }\n    return cleanup(visitEachChild(input, visitDeclarationSubtree, context));\n    function cleanup(returnValue) {\n      if (returnValue && canProduceDiagnostic && hasDynamicName(input)) {\n        checkName(input);\n      }\n      if (isEnclosingDeclaration(input)) {\n        enclosingDeclaration = previousEnclosingDeclaration;\n      }\n      if (canProduceDiagnostic && !suppressNewDiagnosticContexts) {\n        getSymbolAccessibilityDiagnostic = oldDiag;\n      }\n      if (shouldEnterSuppressNewDiagnosticsContextContext) {\n        suppressNewDiagnosticContexts = oldWithinObjectLiteralType;\n      }\n      if (returnValue === input) {\n        return returnValue;\n      }\n      return returnValue && setOriginalNode(preserveJsDoc(returnValue, input), input);\n    }\n  }\n  function isPrivateMethodTypeParameter(node) {\n    return node.parent.kind === 175 /* MethodDeclaration */ && hasEffectiveModifier(node.parent, 2 /* Private */);\n  }\n  function visitDeclarationStatements(input) {\n    if (!isPreservedDeclarationStatement(input)) {\n      return;\n    }\n    if (shouldStripInternal(input)) return;\n    switch (input.kind) {\n      case 279 /* ExportDeclaration */: {\n        if (isSourceFile(input.parent)) {\n          resultHasExternalModuleIndicator = true;\n        }\n        resultHasScopeMarker = true;\n        return factory2.updateExportDeclaration(\n          input,\n          input.modifiers,\n          input.isTypeOnly,\n          input.exportClause,\n          rewriteModuleSpecifier2(input, input.moduleSpecifier),\n          tryGetResolutionModeOverride(input.attributes)\n        );\n      }\n      case 278 /* ExportAssignment */: {\n        if (isSourceFile(input.parent)) {\n          resultHasExternalModuleIndicator = true;\n        }\n        resultHasScopeMarker = true;\n        if (input.expression.kind === 80 /* Identifier */) {\n          return input;\n        } else {\n          const newId = factory2.createUniqueName(\"_default\", 16 /* Optimistic */);\n          getSymbolAccessibilityDiagnostic = () => ({\n            diagnosticMessage: Diagnostics.Default_export_of_the_module_has_or_is_using_private_name_0,\n            errorNode: input\n          });\n          errorFallbackNode = input;\n          const type = ensureType(input);\n          const varDecl = factory2.createVariableDeclaration(\n            newId,\n            /*exclamationToken*/\n            void 0,\n            type,\n            /*initializer*/\n            void 0\n          );\n          errorFallbackNode = void 0;\n          const statement = factory2.createVariableStatement(needsDeclare ? [factory2.createModifier(138 /* DeclareKeyword */)] : [], factory2.createVariableDeclarationList([varDecl], 2 /* Const */));\n          preserveJsDoc(statement, input);\n          removeAllComments(input);\n          return [statement, factory2.updateExportAssignment(input, input.modifiers, newId)];\n        }\n      }\n    }\n    const result = transformTopLevelDeclaration(input);\n    lateStatementReplacementMap.set(getOriginalNodeId(input), result);\n    return input;\n  }\n  function stripExportModifiers(statement) {\n    if (isImportEqualsDeclaration(statement) || hasEffectiveModifier(statement, 2048 /* Default */) || !canHaveModifiers(statement)) {\n      return statement;\n    }\n    const modifiers = factory2.createModifiersFromModifierFlags(getEffectiveModifierFlags(statement) & (131071 /* All */ ^ 32 /* Export */));\n    return factory2.replaceModifiers(statement, modifiers);\n  }\n  function updateModuleDeclarationAndKeyword(node, modifiers, name, body) {\n    const updated = factory2.updateModuleDeclaration(node, modifiers, name, body);\n    if (isAmbientModule(updated) || updated.flags & 32 /* Namespace */) {\n      return updated;\n    }\n    const fixed = factory2.createModuleDeclaration(\n      updated.modifiers,\n      updated.name,\n      updated.body,\n      updated.flags | 32 /* Namespace */\n    );\n    setOriginalNode(fixed, updated);\n    setTextRange(fixed, updated);\n    return fixed;\n  }\n  function transformTopLevelDeclaration(input) {\n    if (lateMarkedStatements) {\n      while (orderedRemoveItem(lateMarkedStatements, input)) ;\n    }\n    if (shouldStripInternal(input)) return;\n    switch (input.kind) {\n      case 272 /* ImportEqualsDeclaration */: {\n        return transformImportEqualsDeclaration(input);\n      }\n      case 273 /* ImportDeclaration */: {\n        return transformImportDeclaration(input);\n      }\n    }\n    if (isDeclaration(input) && isDeclarationAndNotVisible(input)) return;\n    if (isJSDocImportTag(input)) return;\n    if (isFunctionLike(input) && resolver.isImplementationOfOverload(input)) return;\n    let previousEnclosingDeclaration;\n    if (isEnclosingDeclaration(input)) {\n      previousEnclosingDeclaration = enclosingDeclaration;\n      enclosingDeclaration = input;\n    }\n    const canProdiceDiagnostic = canProduceDiagnostics(input);\n    const oldDiag = getSymbolAccessibilityDiagnostic;\n    if (canProdiceDiagnostic) {\n      getSymbolAccessibilityDiagnostic = createGetSymbolAccessibilityDiagnosticForNode(input);\n    }\n    const previousNeedsDeclare = needsDeclare;\n    switch (input.kind) {\n      case 266 /* TypeAliasDeclaration */: {\n        needsDeclare = false;\n        const clean2 = cleanup(factory2.updateTypeAliasDeclaration(\n          input,\n          ensureModifiers(input),\n          input.name,\n          visitNodes2(input.typeParameters, visitDeclarationSubtree, isTypeParameterDeclaration),\n          Debug.checkDefined(visitNode(input.type, visitDeclarationSubtree, isTypeNode))\n        ));\n        needsDeclare = previousNeedsDeclare;\n        return clean2;\n      }\n      case 265 /* InterfaceDeclaration */: {\n        return cleanup(factory2.updateInterfaceDeclaration(\n          input,\n          ensureModifiers(input),\n          input.name,\n          ensureTypeParams(input, input.typeParameters),\n          transformHeritageClauses(input.heritageClauses),\n          visitNodes2(input.members, visitDeclarationSubtree, isTypeElement)\n        ));\n      }\n      case 263 /* FunctionDeclaration */: {\n        const clean2 = cleanup(factory2.updateFunctionDeclaration(\n          input,\n          ensureModifiers(input),\n          /*asteriskToken*/\n          void 0,\n          input.name,\n          ensureTypeParams(input, input.typeParameters),\n          updateParamsList(input, input.parameters),\n          ensureType(input),\n          /*body*/\n          void 0\n        ));\n        if (clean2 && resolver.isExpandoFunctionDeclaration(input) && shouldEmitFunctionProperties(input)) {\n          const props = resolver.getPropertiesOfContainerFunction(input);\n          if (isolatedDeclarations) {\n            reportExpandoFunctionErrors(input);\n          }\n          const fakespace = parseNodeFactory.createModuleDeclaration(\n            /*modifiers*/\n            void 0,\n            clean2.name || factory2.createIdentifier(\"_default\"),\n            factory2.createModuleBlock([]),\n            32 /* Namespace */\n          );\n          setParent(fakespace, enclosingDeclaration);\n          fakespace.locals = createSymbolTable(props);\n          fakespace.symbol = props[0].parent;\n          const exportMappings = [];\n          let declarations = mapDefined(props, (p) => {\n            if (!isExpandoPropertyDeclaration(p.valueDeclaration)) {\n              return void 0;\n            }\n            const nameStr = unescapeLeadingUnderscores(p.escapedName);\n            if (!isIdentifierText(nameStr, 99 /* ESNext */)) {\n              return void 0;\n            }\n            getSymbolAccessibilityDiagnostic = createGetSymbolAccessibilityDiagnosticForNode(p.valueDeclaration);\n            const type = resolver.createTypeOfDeclaration(p.valueDeclaration, fakespace, declarationEmitNodeBuilderFlags, declarationEmitInternalNodeBuilderFlags | 2 /* NoSyntacticPrinter */, symbolTracker);\n            getSymbolAccessibilityDiagnostic = oldDiag;\n            const isNonContextualKeywordName = isStringANonContextualKeyword(nameStr);\n            const name = isNonContextualKeywordName ? factory2.getGeneratedNameForNode(p.valueDeclaration) : factory2.createIdentifier(nameStr);\n            if (isNonContextualKeywordName) {\n              exportMappings.push([name, nameStr]);\n            }\n            const varDecl = factory2.createVariableDeclaration(\n              name,\n              /*exclamationToken*/\n              void 0,\n              type,\n              /*initializer*/\n              void 0\n            );\n            return factory2.createVariableStatement(isNonContextualKeywordName ? void 0 : [factory2.createToken(95 /* ExportKeyword */)], factory2.createVariableDeclarationList([varDecl]));\n          });\n          if (!exportMappings.length) {\n            declarations = mapDefined(declarations, (declaration) => factory2.replaceModifiers(declaration, 0 /* None */));\n          } else {\n            declarations.push(factory2.createExportDeclaration(\n              /*modifiers*/\n              void 0,\n              /*isTypeOnly*/\n              false,\n              factory2.createNamedExports(map(exportMappings, ([gen, exp]) => {\n                return factory2.createExportSpecifier(\n                  /*isTypeOnly*/\n                  false,\n                  gen,\n                  exp\n                );\n              }))\n            ));\n          }\n          const namespaceDecl = factory2.createModuleDeclaration(ensureModifiers(input), input.name, factory2.createModuleBlock(declarations), 32 /* Namespace */);\n          if (!hasEffectiveModifier(clean2, 2048 /* Default */)) {\n            return [clean2, namespaceDecl];\n          }\n          const modifiers = factory2.createModifiersFromModifierFlags(getEffectiveModifierFlags(clean2) & ~2080 /* ExportDefault */ | 128 /* Ambient */);\n          const cleanDeclaration = factory2.updateFunctionDeclaration(\n            clean2,\n            modifiers,\n            /*asteriskToken*/\n            void 0,\n            clean2.name,\n            clean2.typeParameters,\n            clean2.parameters,\n            clean2.type,\n            /*body*/\n            void 0\n          );\n          const namespaceDeclaration = factory2.updateModuleDeclaration(\n            namespaceDecl,\n            modifiers,\n            namespaceDecl.name,\n            namespaceDecl.body\n          );\n          const exportDefaultDeclaration = factory2.createExportAssignment(\n            /*modifiers*/\n            void 0,\n            /*isExportEquals*/\n            false,\n            namespaceDecl.name\n          );\n          if (isSourceFile(input.parent)) {\n            resultHasExternalModuleIndicator = true;\n          }\n          resultHasScopeMarker = true;\n          return [cleanDeclaration, namespaceDeclaration, exportDefaultDeclaration];\n        } else {\n          return clean2;\n        }\n      }\n      case 268 /* ModuleDeclaration */: {\n        needsDeclare = false;\n        const inner = input.body;\n        if (inner && inner.kind === 269 /* ModuleBlock */) {\n          const oldNeedsScopeFix = needsScopeFixMarker;\n          const oldHasScopeFix = resultHasScopeMarker;\n          resultHasScopeMarker = false;\n          needsScopeFixMarker = false;\n          const statements = visitNodes2(inner.statements, visitDeclarationStatements, isStatement);\n          let lateStatements = transformAndReplaceLatePaintedStatements(statements);\n          if (input.flags & 33554432 /* Ambient */) {\n            needsScopeFixMarker = false;\n          }\n          if (!isGlobalScopeAugmentation(input) && !hasScopeMarker2(lateStatements) && !resultHasScopeMarker) {\n            if (needsScopeFixMarker) {\n              lateStatements = factory2.createNodeArray([...lateStatements, createEmptyExports(factory2)]);\n            } else {\n              lateStatements = visitNodes2(lateStatements, stripExportModifiers, isStatement);\n            }\n          }\n          const body = factory2.updateModuleBlock(inner, lateStatements);\n          needsDeclare = previousNeedsDeclare;\n          needsScopeFixMarker = oldNeedsScopeFix;\n          resultHasScopeMarker = oldHasScopeFix;\n          const mods = ensureModifiers(input);\n          return cleanup(updateModuleDeclarationAndKeyword(\n            input,\n            mods,\n            isExternalModuleAugmentation(input) ? rewriteModuleSpecifier2(input, input.name) : input.name,\n            body\n          ));\n        } else {\n          needsDeclare = previousNeedsDeclare;\n          const mods = ensureModifiers(input);\n          needsDeclare = false;\n          visitNode(inner, visitDeclarationStatements);\n          const id = getOriginalNodeId(inner);\n          const body = lateStatementReplacementMap.get(id);\n          lateStatementReplacementMap.delete(id);\n          return cleanup(updateModuleDeclarationAndKeyword(\n            input,\n            mods,\n            input.name,\n            body\n          ));\n        }\n      }\n      case 264 /* ClassDeclaration */: {\n        errorNameNode = input.name;\n        errorFallbackNode = input;\n        const modifiers = factory2.createNodeArray(ensureModifiers(input));\n        const typeParameters = ensureTypeParams(input, input.typeParameters);\n        const ctor = getFirstConstructorWithBody(input);\n        let parameterProperties;\n        if (ctor) {\n          const oldDiag2 = getSymbolAccessibilityDiagnostic;\n          parameterProperties = compact(flatMap(ctor.parameters, (param) => {\n            if (!hasSyntacticModifier(param, 31 /* ParameterPropertyModifier */) || shouldStripInternal(param)) return;\n            getSymbolAccessibilityDiagnostic = createGetSymbolAccessibilityDiagnosticForNode(param);\n            if (param.name.kind === 80 /* Identifier */) {\n              return preserveJsDoc(\n                factory2.createPropertyDeclaration(\n                  ensureModifiers(param),\n                  param.name,\n                  param.questionToken,\n                  ensureType(param),\n                  ensureNoInitializer(param)\n                ),\n                param\n              );\n            } else {\n              return walkBindingPattern(param.name);\n            }\n            function walkBindingPattern(pattern) {\n              let elems;\n              for (const elem of pattern.elements) {\n                if (isOmittedExpression(elem)) continue;\n                if (isBindingPattern(elem.name)) {\n                  elems = concatenate(elems, walkBindingPattern(elem.name));\n                }\n                elems = elems || [];\n                elems.push(factory2.createPropertyDeclaration(\n                  ensureModifiers(param),\n                  elem.name,\n                  /*questionOrExclamationToken*/\n                  void 0,\n                  ensureType(elem),\n                  /*initializer*/\n                  void 0\n                ));\n              }\n              return elems;\n            }\n          }));\n          getSymbolAccessibilityDiagnostic = oldDiag2;\n        }\n        const hasPrivateIdentifier = some(input.members, (member) => !!member.name && isPrivateIdentifier(member.name));\n        const privateIdentifier = hasPrivateIdentifier ? [\n          factory2.createPropertyDeclaration(\n            /*modifiers*/\n            void 0,\n            factory2.createPrivateIdentifier(\"#private\"),\n            /*questionOrExclamationToken*/\n            void 0,\n            /*type*/\n            void 0,\n            /*initializer*/\n            void 0\n          )\n        ] : void 0;\n        const lateIndexes = resolver.createLateBoundIndexSignatures(input, enclosingDeclaration, declarationEmitNodeBuilderFlags, declarationEmitInternalNodeBuilderFlags, symbolTracker);\n        const memberNodes = concatenate(concatenate(concatenate(privateIdentifier, lateIndexes), parameterProperties), visitNodes2(input.members, visitDeclarationSubtree, isClassElement));\n        const members = factory2.createNodeArray(memberNodes);\n        const extendsClause = getEffectiveBaseTypeNode(input);\n        if (extendsClause && !isEntityNameExpression(extendsClause.expression) && extendsClause.expression.kind !== 106 /* NullKeyword */) {\n          const oldId = input.name ? unescapeLeadingUnderscores(input.name.escapedText) : \"default\";\n          const newId = factory2.createUniqueName(`${oldId}_base`, 16 /* Optimistic */);\n          getSymbolAccessibilityDiagnostic = () => ({\n            diagnosticMessage: Diagnostics.extends_clause_of_exported_class_0_has_or_is_using_private_name_1,\n            errorNode: extendsClause,\n            typeName: input.name\n          });\n          const varDecl = factory2.createVariableDeclaration(\n            newId,\n            /*exclamationToken*/\n            void 0,\n            resolver.createTypeOfExpression(extendsClause.expression, input, declarationEmitNodeBuilderFlags, declarationEmitInternalNodeBuilderFlags, symbolTracker),\n            /*initializer*/\n            void 0\n          );\n          const statement = factory2.createVariableStatement(needsDeclare ? [factory2.createModifier(138 /* DeclareKeyword */)] : [], factory2.createVariableDeclarationList([varDecl], 2 /* Const */));\n          const heritageClauses = factory2.createNodeArray(map(input.heritageClauses, (clause) => {\n            if (clause.token === 96 /* ExtendsKeyword */) {\n              const oldDiag2 = getSymbolAccessibilityDiagnostic;\n              getSymbolAccessibilityDiagnostic = createGetSymbolAccessibilityDiagnosticForNode(clause.types[0]);\n              const newClause = factory2.updateHeritageClause(clause, map(clause.types, (t) => factory2.updateExpressionWithTypeArguments(t, newId, visitNodes2(t.typeArguments, visitDeclarationSubtree, isTypeNode))));\n              getSymbolAccessibilityDiagnostic = oldDiag2;\n              return newClause;\n            }\n            return factory2.updateHeritageClause(clause, visitNodes2(factory2.createNodeArray(filter(clause.types, (t) => isEntityNameExpression(t.expression) || t.expression.kind === 106 /* NullKeyword */)), visitDeclarationSubtree, isExpressionWithTypeArguments));\n          }));\n          return [\n            statement,\n            cleanup(factory2.updateClassDeclaration(\n              input,\n              modifiers,\n              input.name,\n              typeParameters,\n              heritageClauses,\n              members\n            ))\n          ];\n        } else {\n          const heritageClauses = transformHeritageClauses(input.heritageClauses);\n          return cleanup(factory2.updateClassDeclaration(\n            input,\n            modifiers,\n            input.name,\n            typeParameters,\n            heritageClauses,\n            members\n          ));\n        }\n      }\n      case 244 /* VariableStatement */: {\n        return cleanup(transformVariableStatement(input));\n      }\n      case 267 /* EnumDeclaration */: {\n        return cleanup(factory2.updateEnumDeclaration(\n          input,\n          factory2.createNodeArray(ensureModifiers(input)),\n          input.name,\n          factory2.createNodeArray(mapDefined(input.members, (m) => {\n            if (shouldStripInternal(m)) return;\n            const enumValue = resolver.getEnumMemberValue(m);\n            const constValue = enumValue == null ? void 0 : enumValue.value;\n            if (isolatedDeclarations && m.initializer && (enumValue == null ? void 0 : enumValue.hasExternalReferences) && // This will be its own compiler error instead, so don't report.\n            !isComputedPropertyName(m.name)) {\n              context.addDiagnostic(createDiagnosticForNode(m, Diagnostics.Enum_member_initializers_must_be_computable_without_references_to_external_symbols_with_isolatedDeclarations));\n            }\n            const newInitializer = constValue === void 0 ? void 0 : typeof constValue === \"string\" ? factory2.createStringLiteral(constValue) : constValue < 0 ? factory2.createPrefixUnaryExpression(41 /* MinusToken */, factory2.createNumericLiteral(-constValue)) : factory2.createNumericLiteral(constValue);\n            return preserveJsDoc(factory2.updateEnumMember(m, m.name, newInitializer), m);\n          }))\n        ));\n      }\n    }\n    return Debug.assertNever(input, `Unhandled top-level node in declaration emit: ${Debug.formatSyntaxKind(input.kind)}`);\n    function cleanup(node) {\n      if (isEnclosingDeclaration(input)) {\n        enclosingDeclaration = previousEnclosingDeclaration;\n      }\n      if (canProdiceDiagnostic) {\n        getSymbolAccessibilityDiagnostic = oldDiag;\n      }\n      if (input.kind === 268 /* ModuleDeclaration */) {\n        needsDeclare = previousNeedsDeclare;\n      }\n      if (node === input) {\n        return node;\n      }\n      errorFallbackNode = void 0;\n      errorNameNode = void 0;\n      return node && setOriginalNode(preserveJsDoc(node, input), input);\n    }\n  }\n  function transformVariableStatement(input) {\n    if (!forEach(input.declarationList.declarations, getBindingNameVisible)) return;\n    const nodes = visitNodes2(input.declarationList.declarations, visitDeclarationSubtree, isVariableDeclaration);\n    if (!length(nodes)) return;\n    const modifiers = factory2.createNodeArray(ensureModifiers(input));\n    let declList;\n    if (isVarUsing(input.declarationList) || isVarAwaitUsing(input.declarationList)) {\n      declList = factory2.createVariableDeclarationList(nodes, 2 /* Const */);\n      setOriginalNode(declList, input.declarationList);\n      setTextRange(declList, input.declarationList);\n      setCommentRange(declList, input.declarationList);\n    } else {\n      declList = factory2.updateVariableDeclarationList(input.declarationList, nodes);\n    }\n    return factory2.updateVariableStatement(input, modifiers, declList);\n  }\n  function recreateBindingPattern(d) {\n    return flatten(mapDefined(d.elements, (e) => recreateBindingElement(e)));\n  }\n  function recreateBindingElement(e) {\n    if (e.kind === 233 /* OmittedExpression */) {\n      return;\n    }\n    if (e.name) {\n      if (!getBindingNameVisible(e)) return;\n      if (isBindingPattern(e.name)) {\n        return recreateBindingPattern(e.name);\n      } else {\n        return factory2.createVariableDeclaration(\n          e.name,\n          /*exclamationToken*/\n          void 0,\n          ensureType(e),\n          /*initializer*/\n          void 0\n        );\n      }\n    }\n  }\n  function checkName(node) {\n    let oldDiag;\n    if (!suppressNewDiagnosticContexts) {\n      oldDiag = getSymbolAccessibilityDiagnostic;\n      getSymbolAccessibilityDiagnostic = createGetSymbolAccessibilityDiagnosticForNodeName(node);\n    }\n    errorNameNode = node.name;\n    Debug.assert(hasDynamicName(node));\n    const decl = node;\n    const entityName = decl.name.expression;\n    checkEntityNameVisibility(entityName, enclosingDeclaration);\n    if (!suppressNewDiagnosticContexts) {\n      getSymbolAccessibilityDiagnostic = oldDiag;\n    }\n    errorNameNode = void 0;\n  }\n  function shouldStripInternal(node) {\n    return !!stripInternal && !!node && isInternalDeclaration(node, currentSourceFile);\n  }\n  function isScopeMarker2(node) {\n    return isExportAssignment(node) || isExportDeclaration(node);\n  }\n  function hasScopeMarker2(statements) {\n    return some(statements, isScopeMarker2);\n  }\n  function ensureModifiers(node) {\n    const currentFlags = getEffectiveModifierFlags(node);\n    const newFlags = ensureModifierFlags(node);\n    if (currentFlags === newFlags) {\n      return visitArray(node.modifiers, (n) => tryCast(n, isModifier), isModifier);\n    }\n    return factory2.createModifiersFromModifierFlags(newFlags);\n  }\n  function ensureModifierFlags(node) {\n    let mask2 = 131071 /* All */ ^ (1 /* Public */ | 1024 /* Async */ | 16 /* Override */);\n    let additions = needsDeclare && !isAlwaysType(node) ? 128 /* Ambient */ : 0 /* None */;\n    const parentIsFile = node.parent.kind === 308 /* SourceFile */;\n    if (!parentIsFile || isBundledEmit && parentIsFile && isExternalModule(node.parent)) {\n      mask2 ^= 128 /* Ambient */;\n      additions = 0 /* None */;\n    }\n    return maskModifierFlags(node, mask2, additions);\n  }\n  function transformHeritageClauses(nodes) {\n    return factory2.createNodeArray(filter(\n      map(nodes, (clause) => factory2.updateHeritageClause(\n        clause,\n        visitNodes2(\n          factory2.createNodeArray(filter(clause.types, (t) => {\n            return isEntityNameExpression(t.expression) || clause.token === 96 /* ExtendsKeyword */ && t.expression.kind === 106 /* NullKeyword */;\n          })),\n          visitDeclarationSubtree,\n          isExpressionWithTypeArguments\n        )\n      )),\n      (clause) => clause.types && !!clause.types.length\n    ));\n  }\n}\nfunction isAlwaysType(node) {\n  if (node.kind === 265 /* InterfaceDeclaration */) {\n    return true;\n  }\n  return false;\n}\nfunction maskModifiers(factory2, node, modifierMask, modifierAdditions) {\n  return factory2.createModifiersFromModifierFlags(maskModifierFlags(node, modifierMask, modifierAdditions));\n}\nfunction maskModifierFlags(node, modifierMask = 131071 /* All */ ^ 1 /* Public */, modifierAdditions = 0 /* None */) {\n  let flags = getEffectiveModifierFlags(node) & modifierMask | modifierAdditions;\n  if (flags & 2048 /* Default */ && !(flags & 32 /* Export */)) {\n    flags ^= 32 /* Export */;\n  }\n  if (flags & 2048 /* Default */ && flags & 128 /* Ambient */) {\n    flags ^= 128 /* Ambient */;\n  }\n  return flags;\n}\nfunction canHaveLiteralInitializer(node) {\n  switch (node.kind) {\n    case 173 /* PropertyDeclaration */:\n    case 172 /* PropertySignature */:\n      return !hasEffectiveModifier(node, 2 /* Private */);\n    case 170 /* Parameter */:\n    case 261 /* VariableDeclaration */:\n      return true;\n  }\n  return false;\n}\nfunction isPreservedDeclarationStatement(node) {\n  switch (node.kind) {\n    case 263 /* FunctionDeclaration */:\n    case 268 /* ModuleDeclaration */:\n    case 272 /* ImportEqualsDeclaration */:\n    case 265 /* InterfaceDeclaration */:\n    case 264 /* ClassDeclaration */:\n    case 266 /* TypeAliasDeclaration */:\n    case 267 /* EnumDeclaration */:\n    case 244 /* VariableStatement */:\n    case 273 /* ImportDeclaration */:\n    case 279 /* ExportDeclaration */:\n    case 278 /* ExportAssignment */:\n      return true;\n  }\n  return false;\n}\nfunction isProcessedComponent(node) {\n  switch (node.kind) {\n    case 181 /* ConstructSignature */:\n    case 177 /* Constructor */:\n    case 175 /* MethodDeclaration */:\n    case 178 /* GetAccessor */:\n    case 179 /* SetAccessor */:\n    case 173 /* PropertyDeclaration */:\n    case 172 /* PropertySignature */:\n    case 174 /* MethodSignature */:\n    case 180 /* CallSignature */:\n    case 182 /* IndexSignature */:\n    case 261 /* VariableDeclaration */:\n    case 169 /* TypeParameter */:\n    case 234 /* ExpressionWithTypeArguments */:\n    case 184 /* TypeReference */:\n    case 195 /* ConditionalType */:\n    case 185 /* FunctionType */:\n    case 186 /* ConstructorType */:\n    case 206 /* ImportType */:\n      return true;\n  }\n  return false;\n}\n\n// src/compiler/transformer.ts\nfunction getModuleTransformer(moduleKind) {\n  switch (moduleKind) {\n    case 200 /* Preserve */:\n      return transformECMAScriptModule;\n    case 99 /* ESNext */:\n    case 7 /* ES2022 */:\n    case 6 /* ES2020 */:\n    case 5 /* ES2015 */:\n    case 100 /* Node16 */:\n    case 101 /* Node18 */:\n    case 102 /* Node20 */:\n    case 199 /* NodeNext */:\n    case 1 /* CommonJS */:\n      return transformImpliedNodeFormatDependentModule;\n    case 4 /* System */:\n      return transformSystemModule;\n    default:\n      return transformModule;\n  }\n}\nvar noTransformers = { scriptTransformers: emptyArray, declarationTransformers: emptyArray };\nfunction getTransformers(compilerOptions, customTransformers, emitOnly) {\n  return {\n    scriptTransformers: getScriptTransformers(compilerOptions, customTransformers, emitOnly),\n    declarationTransformers: getDeclarationTransformers(customTransformers)\n  };\n}\nfunction getScriptTransformers(compilerOptions, customTransformers, emitOnly) {\n  if (emitOnly) return emptyArray;\n  const languageVersion = getEmitScriptTarget(compilerOptions);\n  const moduleKind = getEmitModuleKind(compilerOptions);\n  const useDefineForClassFields = getUseDefineForClassFields(compilerOptions);\n  const transformers = [];\n  addRange(transformers, customTransformers && map(customTransformers.before, wrapScriptTransformerFactory));\n  transformers.push(transformTypeScript);\n  if (compilerOptions.experimentalDecorators) {\n    transformers.push(transformLegacyDecorators);\n  }\n  if (getJSXTransformEnabled(compilerOptions)) {\n    transformers.push(transformJsx);\n  }\n  if (languageVersion < 99 /* ESNext */) {\n    transformers.push(transformESNext);\n  }\n  if (!compilerOptions.experimentalDecorators && (languageVersion < 99 /* ESNext */ || !useDefineForClassFields)) {\n    transformers.push(transformESDecorators);\n  }\n  transformers.push(transformClassFields);\n  if (languageVersion < 8 /* ES2021 */) {\n    transformers.push(transformES2021);\n  }\n  if (languageVersion < 7 /* ES2020 */) {\n    transformers.push(transformES2020);\n  }\n  if (languageVersion < 6 /* ES2019 */) {\n    transformers.push(transformES2019);\n  }\n  if (languageVersion < 5 /* ES2018 */) {\n    transformers.push(transformES2018);\n  }\n  if (languageVersion < 4 /* ES2017 */) {\n    transformers.push(transformES2017);\n  }\n  if (languageVersion < 3 /* ES2016 */) {\n    transformers.push(transformES2016);\n  }\n  if (languageVersion < 2 /* ES2015 */) {\n    transformers.push(transformES2015);\n    transformers.push(transformGenerators);\n  }\n  transformers.push(getModuleTransformer(moduleKind));\n  addRange(transformers, customTransformers && map(customTransformers.after, wrapScriptTransformerFactory));\n  return transformers;\n}\nfunction getDeclarationTransformers(customTransformers) {\n  const transformers = [];\n  transformers.push(transformDeclarations);\n  addRange(transformers, customTransformers && map(customTransformers.afterDeclarations, wrapDeclarationTransformerFactory));\n  return transformers;\n}\nfunction wrapCustomTransformer(transformer) {\n  return (node) => isBundle(node) ? transformer.transformBundle(node) : transformer.transformSourceFile(node);\n}\nfunction wrapCustomTransformerFactory(transformer, handleDefault) {\n  return (context) => {\n    const customTransformer = transformer(context);\n    return typeof customTransformer === \"function\" ? handleDefault(context, customTransformer) : wrapCustomTransformer(customTransformer);\n  };\n}\nfunction wrapScriptTransformerFactory(transformer) {\n  return wrapCustomTransformerFactory(transformer, chainBundle);\n}\nfunction wrapDeclarationTransformerFactory(transformer) {\n  return wrapCustomTransformerFactory(transformer, (_, node) => node);\n}\nfunction noEmitSubstitution(_hint, node) {\n  return node;\n}\nfunction noEmitNotification(hint, node, callback) {\n  callback(hint, node);\n}\nfunction transformNodes(resolver, host, factory2, options, nodes, transformers, allowDtsFiles) {\n  var _a, _b;\n  const enabledSyntaxKindFeatures = new Array(359 /* Count */);\n  let lexicalEnvironmentVariableDeclarations;\n  let lexicalEnvironmentFunctionDeclarations;\n  let lexicalEnvironmentStatements;\n  let lexicalEnvironmentFlags = 0 /* None */;\n  let lexicalEnvironmentVariableDeclarationsStack = [];\n  let lexicalEnvironmentFunctionDeclarationsStack = [];\n  let lexicalEnvironmentStatementsStack = [];\n  let lexicalEnvironmentFlagsStack = [];\n  let lexicalEnvironmentStackOffset = 0;\n  let lexicalEnvironmentSuspended = false;\n  let blockScopedVariableDeclarationsStack = [];\n  let blockScopeStackOffset = 0;\n  let blockScopedVariableDeclarations;\n  let emitHelpers;\n  let onSubstituteNode = noEmitSubstitution;\n  let onEmitNode = noEmitNotification;\n  let state = 0 /* Uninitialized */;\n  const diagnostics = [];\n  const context = {\n    factory: factory2,\n    getCompilerOptions: () => options,\n    getEmitResolver: () => resolver,\n    // TODO: GH#18217\n    getEmitHost: () => host,\n    // TODO: GH#18217\n    getEmitHelperFactory: memoize(() => createEmitHelperFactory(context)),\n    startLexicalEnvironment,\n    suspendLexicalEnvironment,\n    resumeLexicalEnvironment,\n    endLexicalEnvironment,\n    setLexicalEnvironmentFlags,\n    getLexicalEnvironmentFlags,\n    hoistVariableDeclaration,\n    hoistFunctionDeclaration,\n    addInitializationStatement,\n    startBlockScope,\n    endBlockScope,\n    addBlockScopedVariable,\n    requestEmitHelper,\n    readEmitHelpers,\n    enableSubstitution,\n    enableEmitNotification,\n    isSubstitutionEnabled,\n    isEmitNotificationEnabled,\n    get onSubstituteNode() {\n      return onSubstituteNode;\n    },\n    set onSubstituteNode(value) {\n      Debug.assert(state < 1 /* Initialized */, \"Cannot modify transformation hooks after initialization has completed.\");\n      Debug.assert(value !== void 0, \"Value must not be 'undefined'\");\n      onSubstituteNode = value;\n    },\n    get onEmitNode() {\n      return onEmitNode;\n    },\n    set onEmitNode(value) {\n      Debug.assert(state < 1 /* Initialized */, \"Cannot modify transformation hooks after initialization has completed.\");\n      Debug.assert(value !== void 0, \"Value must not be 'undefined'\");\n      onEmitNode = value;\n    },\n    addDiagnostic(diag2) {\n      diagnostics.push(diag2);\n    }\n  };\n  for (const node of nodes) {\n    disposeEmitNodes(getSourceFileOfNode(getParseTreeNode(node)));\n  }\n  mark(\"beforeTransform\");\n  const transformersWithContext = transformers.map((t) => t(context));\n  const transformation = (node) => {\n    for (const transform2 of transformersWithContext) {\n      node = transform2(node);\n    }\n    return node;\n  };\n  state = 1 /* Initialized */;\n  const transformed = [];\n  for (const node of nodes) {\n    (_a = tracing) == null ? void 0 : _a.push(tracing.Phase.Emit, \"transformNodes\", node.kind === 308 /* SourceFile */ ? { path: node.path } : { kind: node.kind, pos: node.pos, end: node.end });\n    transformed.push((allowDtsFiles ? transformation : transformRoot)(node));\n    (_b = tracing) == null ? void 0 : _b.pop();\n  }\n  state = 2 /* Completed */;\n  mark(\"afterTransform\");\n  measure(\"transformTime\", \"beforeTransform\", \"afterTransform\");\n  return {\n    transformed,\n    substituteNode,\n    emitNodeWithNotification,\n    isEmitNotificationEnabled,\n    dispose,\n    diagnostics\n  };\n  function transformRoot(node) {\n    return node && (!isSourceFile(node) || !node.isDeclarationFile) ? transformation(node) : node;\n  }\n  function enableSubstitution(kind) {\n    Debug.assert(state < 2 /* Completed */, \"Cannot modify the transformation context after transformation has completed.\");\n    enabledSyntaxKindFeatures[kind] |= 1 /* Substitution */;\n  }\n  function isSubstitutionEnabled(node) {\n    return (enabledSyntaxKindFeatures[node.kind] & 1 /* Substitution */) !== 0 && (getEmitFlags(node) & 8 /* NoSubstitution */) === 0;\n  }\n  function substituteNode(hint, node) {\n    Debug.assert(state < 3 /* Disposed */, \"Cannot substitute a node after the result is disposed.\");\n    return node && isSubstitutionEnabled(node) && onSubstituteNode(hint, node) || node;\n  }\n  function enableEmitNotification(kind) {\n    Debug.assert(state < 2 /* Completed */, \"Cannot modify the transformation context after transformation has completed.\");\n    enabledSyntaxKindFeatures[kind] |= 2 /* EmitNotifications */;\n  }\n  function isEmitNotificationEnabled(node) {\n    return (enabledSyntaxKindFeatures[node.kind] & 2 /* EmitNotifications */) !== 0 || (getEmitFlags(node) & 4 /* AdviseOnEmitNode */) !== 0;\n  }\n  function emitNodeWithNotification(hint, node, emitCallback) {\n    Debug.assert(state < 3 /* Disposed */, \"Cannot invoke TransformationResult callbacks after the result is disposed.\");\n    if (node) {\n      if (isEmitNotificationEnabled(node)) {\n        onEmitNode(hint, node, emitCallback);\n      } else {\n        emitCallback(hint, node);\n      }\n    }\n  }\n  function hoistVariableDeclaration(name) {\n    Debug.assert(state > 0 /* Uninitialized */, \"Cannot modify the lexical environment during initialization.\");\n    Debug.assert(state < 2 /* Completed */, \"Cannot modify the lexical environment after transformation has completed.\");\n    const decl = setEmitFlags(factory2.createVariableDeclaration(name), 128 /* NoNestedSourceMaps */);\n    if (!lexicalEnvironmentVariableDeclarations) {\n      lexicalEnvironmentVariableDeclarations = [decl];\n    } else {\n      lexicalEnvironmentVariableDeclarations.push(decl);\n    }\n    if (lexicalEnvironmentFlags & 1 /* InParameters */) {\n      lexicalEnvironmentFlags |= 2 /* VariablesHoistedInParameters */;\n    }\n  }\n  function hoistFunctionDeclaration(func) {\n    Debug.assert(state > 0 /* Uninitialized */, \"Cannot modify the lexical environment during initialization.\");\n    Debug.assert(state < 2 /* Completed */, \"Cannot modify the lexical environment after transformation has completed.\");\n    setEmitFlags(func, 2097152 /* CustomPrologue */);\n    if (!lexicalEnvironmentFunctionDeclarations) {\n      lexicalEnvironmentFunctionDeclarations = [func];\n    } else {\n      lexicalEnvironmentFunctionDeclarations.push(func);\n    }\n  }\n  function addInitializationStatement(node) {\n    Debug.assert(state > 0 /* Uninitialized */, \"Cannot modify the lexical environment during initialization.\");\n    Debug.assert(state < 2 /* Completed */, \"Cannot modify the lexical environment after transformation has completed.\");\n    setEmitFlags(node, 2097152 /* CustomPrologue */);\n    if (!lexicalEnvironmentStatements) {\n      lexicalEnvironmentStatements = [node];\n    } else {\n      lexicalEnvironmentStatements.push(node);\n    }\n  }\n  function startLexicalEnvironment() {\n    Debug.assert(state > 0 /* Uninitialized */, \"Cannot modify the lexical environment during initialization.\");\n    Debug.assert(state < 2 /* Completed */, \"Cannot modify the lexical environment after transformation has completed.\");\n    Debug.assert(!lexicalEnvironmentSuspended, \"Lexical environment is suspended.\");\n    lexicalEnvironmentVariableDeclarationsStack[lexicalEnvironmentStackOffset] = lexicalEnvironmentVariableDeclarations;\n    lexicalEnvironmentFunctionDeclarationsStack[lexicalEnvironmentStackOffset] = lexicalEnvironmentFunctionDeclarations;\n    lexicalEnvironmentStatementsStack[lexicalEnvironmentStackOffset] = lexicalEnvironmentStatements;\n    lexicalEnvironmentFlagsStack[lexicalEnvironmentStackOffset] = lexicalEnvironmentFlags;\n    lexicalEnvironmentStackOffset++;\n    lexicalEnvironmentVariableDeclarations = void 0;\n    lexicalEnvironmentFunctionDeclarations = void 0;\n    lexicalEnvironmentStatements = void 0;\n    lexicalEnvironmentFlags = 0 /* None */;\n  }\n  function suspendLexicalEnvironment() {\n    Debug.assert(state > 0 /* Uninitialized */, \"Cannot modify the lexical environment during initialization.\");\n    Debug.assert(state < 2 /* Completed */, \"Cannot modify the lexical environment after transformation has completed.\");\n    Debug.assert(!lexicalEnvironmentSuspended, \"Lexical environment is already suspended.\");\n    lexicalEnvironmentSuspended = true;\n  }\n  function resumeLexicalEnvironment() {\n    Debug.assert(state > 0 /* Uninitialized */, \"Cannot modify the lexical environment during initialization.\");\n    Debug.assert(state < 2 /* Completed */, \"Cannot modify the lexical environment after transformation has completed.\");\n    Debug.assert(lexicalEnvironmentSuspended, \"Lexical environment is not suspended.\");\n    lexicalEnvironmentSuspended = false;\n  }\n  function endLexicalEnvironment() {\n    Debug.assert(state > 0 /* Uninitialized */, \"Cannot modify the lexical environment during initialization.\");\n    Debug.assert(state < 2 /* Completed */, \"Cannot modify the lexical environment after transformation has completed.\");\n    Debug.assert(!lexicalEnvironmentSuspended, \"Lexical environment is suspended.\");\n    let statements;\n    if (lexicalEnvironmentVariableDeclarations || lexicalEnvironmentFunctionDeclarations || lexicalEnvironmentStatements) {\n      if (lexicalEnvironmentFunctionDeclarations) {\n        statements = [...lexicalEnvironmentFunctionDeclarations];\n      }\n      if (lexicalEnvironmentVariableDeclarations) {\n        const statement = factory2.createVariableStatement(\n          /*modifiers*/\n          void 0,\n          factory2.createVariableDeclarationList(lexicalEnvironmentVariableDeclarations)\n        );\n        setEmitFlags(statement, 2097152 /* CustomPrologue */);\n        if (!statements) {\n          statements = [statement];\n        } else {\n          statements.push(statement);\n        }\n      }\n      if (lexicalEnvironmentStatements) {\n        if (!statements) {\n          statements = [...lexicalEnvironmentStatements];\n        } else {\n          statements = [...statements, ...lexicalEnvironmentStatements];\n        }\n      }\n    }\n    lexicalEnvironmentStackOffset--;\n    lexicalEnvironmentVariableDeclarations = lexicalEnvironmentVariableDeclarationsStack[lexicalEnvironmentStackOffset];\n    lexicalEnvironmentFunctionDeclarations = lexicalEnvironmentFunctionDeclarationsStack[lexicalEnvironmentStackOffset];\n    lexicalEnvironmentStatements = lexicalEnvironmentStatementsStack[lexicalEnvironmentStackOffset];\n    lexicalEnvironmentFlags = lexicalEnvironmentFlagsStack[lexicalEnvironmentStackOffset];\n    if (lexicalEnvironmentStackOffset === 0) {\n      lexicalEnvironmentVariableDeclarationsStack = [];\n      lexicalEnvironmentFunctionDeclarationsStack = [];\n      lexicalEnvironmentStatementsStack = [];\n      lexicalEnvironmentFlagsStack = [];\n    }\n    return statements;\n  }\n  function setLexicalEnvironmentFlags(flags, value) {\n    lexicalEnvironmentFlags = value ? lexicalEnvironmentFlags | flags : lexicalEnvironmentFlags & ~flags;\n  }\n  function getLexicalEnvironmentFlags() {\n    return lexicalEnvironmentFlags;\n  }\n  function startBlockScope() {\n    Debug.assert(state > 0 /* Uninitialized */, \"Cannot start a block scope during initialization.\");\n    Debug.assert(state < 2 /* Completed */, \"Cannot start a block scope after transformation has completed.\");\n    blockScopedVariableDeclarationsStack[blockScopeStackOffset] = blockScopedVariableDeclarations;\n    blockScopeStackOffset++;\n    blockScopedVariableDeclarations = void 0;\n  }\n  function endBlockScope() {\n    Debug.assert(state > 0 /* Uninitialized */, \"Cannot end a block scope during initialization.\");\n    Debug.assert(state < 2 /* Completed */, \"Cannot end a block scope after transformation has completed.\");\n    const statements = some(blockScopedVariableDeclarations) ? [\n      factory2.createVariableStatement(\n        /*modifiers*/\n        void 0,\n        factory2.createVariableDeclarationList(\n          blockScopedVariableDeclarations.map((identifier) => factory2.createVariableDeclaration(identifier)),\n          1 /* Let */\n        )\n      )\n    ] : void 0;\n    blockScopeStackOffset--;\n    blockScopedVariableDeclarations = blockScopedVariableDeclarationsStack[blockScopeStackOffset];\n    if (blockScopeStackOffset === 0) {\n      blockScopedVariableDeclarationsStack = [];\n    }\n    return statements;\n  }\n  function addBlockScopedVariable(name) {\n    Debug.assert(blockScopeStackOffset > 0, \"Cannot add a block scoped variable outside of an iteration body.\");\n    (blockScopedVariableDeclarations || (blockScopedVariableDeclarations = [])).push(name);\n  }\n  function requestEmitHelper(helper) {\n    Debug.assert(state > 0 /* Uninitialized */, \"Cannot modify the transformation context during initialization.\");\n    Debug.assert(state < 2 /* Completed */, \"Cannot modify the transformation context after transformation has completed.\");\n    Debug.assert(!helper.scoped, \"Cannot request a scoped emit helper.\");\n    if (helper.dependencies) {\n      for (const h of helper.dependencies) {\n        requestEmitHelper(h);\n      }\n    }\n    emitHelpers = append(emitHelpers, helper);\n  }\n  function readEmitHelpers() {\n    Debug.assert(state > 0 /* Uninitialized */, \"Cannot modify the transformation context during initialization.\");\n    Debug.assert(state < 2 /* Completed */, \"Cannot modify the transformation context after transformation has completed.\");\n    const helpers = emitHelpers;\n    emitHelpers = void 0;\n    return helpers;\n  }\n  function dispose() {\n    if (state < 3 /* Disposed */) {\n      for (const node of nodes) {\n        disposeEmitNodes(getSourceFileOfNode(getParseTreeNode(node)));\n      }\n      lexicalEnvironmentVariableDeclarations = void 0;\n      lexicalEnvironmentVariableDeclarationsStack = void 0;\n      lexicalEnvironmentFunctionDeclarations = void 0;\n      lexicalEnvironmentFunctionDeclarationsStack = void 0;\n      onSubstituteNode = void 0;\n      onEmitNode = void 0;\n      emitHelpers = void 0;\n      state = 3 /* Disposed */;\n    }\n  }\n}\nvar nullTransformationContext = {\n  factory,\n  // eslint-disable-line object-shorthand\n  getCompilerOptions: () => ({}),\n  getEmitResolver: notImplemented,\n  getEmitHost: notImplemented,\n  getEmitHelperFactory: notImplemented,\n  startLexicalEnvironment: noop,\n  resumeLexicalEnvironment: noop,\n  suspendLexicalEnvironment: noop,\n  endLexicalEnvironment: returnUndefined,\n  setLexicalEnvironmentFlags: noop,\n  getLexicalEnvironmentFlags: () => 0,\n  hoistVariableDeclaration: noop,\n  hoistFunctionDeclaration: noop,\n  addInitializationStatement: noop,\n  startBlockScope: noop,\n  endBlockScope: returnUndefined,\n  addBlockScopedVariable: noop,\n  requestEmitHelper: noop,\n  readEmitHelpers: notImplemented,\n  enableSubstitution: noop,\n  enableEmitNotification: noop,\n  isSubstitutionEnabled: notImplemented,\n  isEmitNotificationEnabled: notImplemented,\n  onSubstituteNode: noEmitSubstitution,\n  onEmitNode: noEmitNotification,\n  addDiagnostic: noop\n};\n\n// src/compiler/emitter.ts\nvar brackets = createBracketsMap();\nfunction isBuildInfoFile(file) {\n  return fileExtensionIs(file, \".tsbuildinfo\" /* TsBuildInfo */);\n}\nfunction forEachEmittedFile(host, action, sourceFilesOrTargetSourceFile, forceDtsEmit = false, onlyBuildInfo, includeBuildInfo) {\n  const sourceFiles = isArray(sourceFilesOrTargetSourceFile) ? sourceFilesOrTargetSourceFile : getSourceFilesToEmit(host, sourceFilesOrTargetSourceFile, forceDtsEmit);\n  const options = host.getCompilerOptions();\n  if (!onlyBuildInfo) {\n    if (options.outFile) {\n      if (sourceFiles.length) {\n        const bundle = factory.createBundle(sourceFiles);\n        const result = action(getOutputPathsFor(bundle, host, forceDtsEmit), bundle);\n        if (result) {\n          return result;\n        }\n      }\n    } else {\n      for (const sourceFile of sourceFiles) {\n        const result = action(getOutputPathsFor(sourceFile, host, forceDtsEmit), sourceFile);\n        if (result) {\n          return result;\n        }\n      }\n    }\n  }\n  if (includeBuildInfo) {\n    const buildInfoPath = getTsBuildInfoEmitOutputFilePath(options);\n    if (buildInfoPath) return action(\n      { buildInfoPath },\n      /*sourceFileOrBundle*/\n      void 0\n    );\n  }\n}\nfunction getTsBuildInfoEmitOutputFilePath(options) {\n  const configFile = options.configFilePath;\n  if (!canEmitTsBuildInfo(options)) return void 0;\n  if (options.tsBuildInfoFile) return options.tsBuildInfoFile;\n  const outPath = options.outFile;\n  let buildInfoExtensionLess;\n  if (outPath) {\n    buildInfoExtensionLess = removeFileExtension(outPath);\n  } else {\n    if (!configFile) return void 0;\n    const configFileExtensionLess = removeFileExtension(configFile);\n    buildInfoExtensionLess = options.outDir ? options.rootDir ? resolvePath(options.outDir, getRelativePathFromDirectory(\n      options.rootDir,\n      configFileExtensionLess,\n      /*ignoreCase*/\n      true\n    )) : combinePaths(options.outDir, getBaseFileName(configFileExtensionLess)) : configFileExtensionLess;\n  }\n  return buildInfoExtensionLess + \".tsbuildinfo\" /* TsBuildInfo */;\n}\nfunction canEmitTsBuildInfo(options) {\n  return isIncrementalCompilation(options) || !!options.tscBuild;\n}\nfunction getOutputPathsForBundle(options, forceDtsPaths) {\n  const outPath = options.outFile;\n  const jsFilePath = options.emitDeclarationOnly ? void 0 : outPath;\n  const sourceMapFilePath = jsFilePath && getSourceMapFilePath(jsFilePath, options);\n  const declarationFilePath = forceDtsPaths || getEmitDeclarations(options) ? removeFileExtension(outPath) + \".d.ts\" /* Dts */ : void 0;\n  const declarationMapPath = declarationFilePath && getAreDeclarationMapsEnabled(options) ? declarationFilePath + \".map\" : void 0;\n  return { jsFilePath, sourceMapFilePath, declarationFilePath, declarationMapPath };\n}\nfunction getOutputPathsFor(sourceFile, host, forceDtsPaths) {\n  const options = host.getCompilerOptions();\n  if (sourceFile.kind === 309 /* Bundle */) {\n    return getOutputPathsForBundle(options, forceDtsPaths);\n  } else {\n    const ownOutputFilePath = getOwnEmitOutputFilePath(sourceFile.fileName, host, getOutputExtension(sourceFile.fileName, options));\n    const isJsonFile = isJsonSourceFile(sourceFile);\n    const isJsonEmittedToSameLocation = isJsonFile && comparePaths(sourceFile.fileName, ownOutputFilePath, host.getCurrentDirectory(), !host.useCaseSensitiveFileNames()) === 0 /* EqualTo */;\n    const jsFilePath = options.emitDeclarationOnly || isJsonEmittedToSameLocation ? void 0 : ownOutputFilePath;\n    const sourceMapFilePath = !jsFilePath || isJsonSourceFile(sourceFile) ? void 0 : getSourceMapFilePath(jsFilePath, options);\n    const declarationFilePath = forceDtsPaths || getEmitDeclarations(options) && !isJsonFile ? getDeclarationEmitOutputFilePath(sourceFile.fileName, host) : void 0;\n    const declarationMapPath = declarationFilePath && getAreDeclarationMapsEnabled(options) ? declarationFilePath + \".map\" : void 0;\n    return { jsFilePath, sourceMapFilePath, declarationFilePath, declarationMapPath };\n  }\n}\nfunction getSourceMapFilePath(jsFilePath, options) {\n  return options.sourceMap && !options.inlineSourceMap ? jsFilePath + \".map\" : void 0;\n}\nfunction getOutputExtension(fileName, options) {\n  return fileExtensionIs(fileName, \".json\" /* Json */) ? \".json\" /* Json */ : options.jsx === 1 /* Preserve */ && fileExtensionIsOneOf(fileName, [\".jsx\" /* Jsx */, \".tsx\" /* Tsx */]) ? \".jsx\" /* Jsx */ : fileExtensionIsOneOf(fileName, [\".mts\" /* Mts */, \".mjs\" /* Mjs */]) ? \".mjs\" /* Mjs */ : fileExtensionIsOneOf(fileName, [\".cts\" /* Cts */, \".cjs\" /* Cjs */]) ? \".cjs\" /* Cjs */ : \".js\" /* Js */;\n}\nfunction getOutputPathWithoutChangingExt(inputFileName, ignoreCase, outputDir, getCommonSourceDirectory2) {\n  return outputDir ? resolvePath(\n    outputDir,\n    getRelativePathFromDirectory(getCommonSourceDirectory2(), inputFileName, ignoreCase)\n  ) : inputFileName;\n}\nfunction getOutputDeclarationFileName(inputFileName, configFile, ignoreCase, getCommonSourceDirectory2 = () => getCommonSourceDirectoryOfConfig(configFile, ignoreCase)) {\n  return getOutputDeclarationFileNameWorker(inputFileName, configFile.options, ignoreCase, getCommonSourceDirectory2);\n}\nfunction getOutputDeclarationFileNameWorker(inputFileName, options, ignoreCase, getCommonSourceDirectory2) {\n  return changeExtension(\n    getOutputPathWithoutChangingExt(inputFileName, ignoreCase, options.declarationDir || options.outDir, getCommonSourceDirectory2),\n    getDeclarationEmitExtensionForPath(inputFileName)\n  );\n}\nfunction getOutputJSFileName(inputFileName, configFile, ignoreCase, getCommonSourceDirectory2 = () => getCommonSourceDirectoryOfConfig(configFile, ignoreCase)) {\n  if (configFile.options.emitDeclarationOnly) return void 0;\n  const isJsonFile = fileExtensionIs(inputFileName, \".json\" /* Json */);\n  const outputFileName = getOutputJSFileNameWorker(inputFileName, configFile.options, ignoreCase, getCommonSourceDirectory2);\n  return !isJsonFile || comparePaths(inputFileName, outputFileName, Debug.checkDefined(configFile.options.configFilePath), ignoreCase) !== 0 /* EqualTo */ ? outputFileName : void 0;\n}\nfunction getOutputJSFileNameWorker(inputFileName, options, ignoreCase, getCommonSourceDirectory2) {\n  return changeExtension(\n    getOutputPathWithoutChangingExt(inputFileName, ignoreCase, options.outDir, getCommonSourceDirectory2),\n    getOutputExtension(inputFileName, options)\n  );\n}\nfunction createAddOutput() {\n  let outputs;\n  return { addOutput, getOutputs };\n  function addOutput(path) {\n    if (path) {\n      (outputs || (outputs = [])).push(path);\n    }\n  }\n  function getOutputs() {\n    return outputs || emptyArray;\n  }\n}\nfunction getSingleOutputFileNames(configFile, addOutput) {\n  const { jsFilePath, sourceMapFilePath, declarationFilePath, declarationMapPath } = getOutputPathsForBundle(\n    configFile.options,\n    /*forceDtsPaths*/\n    false\n  );\n  addOutput(jsFilePath);\n  addOutput(sourceMapFilePath);\n  addOutput(declarationFilePath);\n  addOutput(declarationMapPath);\n}\nfunction getOwnOutputFileNames(configFile, inputFileName, ignoreCase, addOutput, getCommonSourceDirectory2) {\n  if (isDeclarationFileName(inputFileName)) return;\n  const js = getOutputJSFileName(inputFileName, configFile, ignoreCase, getCommonSourceDirectory2);\n  addOutput(js);\n  if (fileExtensionIs(inputFileName, \".json\" /* Json */)) return;\n  if (js && configFile.options.sourceMap) {\n    addOutput(`${js}.map`);\n  }\n  if (getEmitDeclarations(configFile.options)) {\n    const dts = getOutputDeclarationFileName(inputFileName, configFile, ignoreCase, getCommonSourceDirectory2);\n    addOutput(dts);\n    if (configFile.options.declarationMap) {\n      addOutput(`${dts}.map`);\n    }\n  }\n}\nfunction getCommonSourceDirectory(options, emittedFiles, currentDirectory, getCanonicalFileName, checkSourceFilesBelongToPath) {\n  let commonSourceDirectory;\n  if (options.rootDir) {\n    commonSourceDirectory = getNormalizedAbsolutePath(options.rootDir, currentDirectory);\n    checkSourceFilesBelongToPath == null ? void 0 : checkSourceFilesBelongToPath(options.rootDir);\n  } else if (options.composite && options.configFilePath) {\n    commonSourceDirectory = getDirectoryPath(normalizeSlashes(options.configFilePath));\n    checkSourceFilesBelongToPath == null ? void 0 : checkSourceFilesBelongToPath(commonSourceDirectory);\n  } else {\n    commonSourceDirectory = computeCommonSourceDirectoryOfFilenames(emittedFiles(), currentDirectory, getCanonicalFileName);\n  }\n  if (commonSourceDirectory && commonSourceDirectory[commonSourceDirectory.length - 1] !== directorySeparator) {\n    commonSourceDirectory += directorySeparator;\n  }\n  return commonSourceDirectory;\n}\nfunction getCommonSourceDirectoryOfConfig({ options, fileNames }, ignoreCase) {\n  return getCommonSourceDirectory(\n    options,\n    () => filter(fileNames, (file) => !(options.noEmitForJsFiles && fileExtensionIsOneOf(file, supportedJSExtensionsFlat)) && !isDeclarationFileName(file)),\n    getDirectoryPath(normalizeSlashes(Debug.checkDefined(options.configFilePath))),\n    createGetCanonicalFileName(!ignoreCase)\n  );\n}\nfunction getAllProjectOutputs(configFile, ignoreCase) {\n  const { addOutput, getOutputs } = createAddOutput();\n  if (configFile.options.outFile) {\n    getSingleOutputFileNames(configFile, addOutput);\n  } else {\n    const getCommonSourceDirectory2 = memoize(() => getCommonSourceDirectoryOfConfig(configFile, ignoreCase));\n    for (const inputFileName of configFile.fileNames) {\n      getOwnOutputFileNames(configFile, inputFileName, ignoreCase, addOutput, getCommonSourceDirectory2);\n    }\n  }\n  addOutput(getTsBuildInfoEmitOutputFilePath(configFile.options));\n  return getOutputs();\n}\nfunction getOutputFileNames(commandLine, inputFileName, ignoreCase) {\n  inputFileName = normalizePath(inputFileName);\n  Debug.assert(contains(commandLine.fileNames, inputFileName), `Expected fileName to be present in command line`);\n  const { addOutput, getOutputs } = createAddOutput();\n  if (commandLine.options.outFile) {\n    getSingleOutputFileNames(commandLine, addOutput);\n  } else {\n    getOwnOutputFileNames(commandLine, inputFileName, ignoreCase, addOutput);\n  }\n  return getOutputs();\n}\nfunction getFirstProjectOutput(configFile, ignoreCase) {\n  if (configFile.options.outFile) {\n    const { jsFilePath, declarationFilePath } = getOutputPathsForBundle(\n      configFile.options,\n      /*forceDtsPaths*/\n      false\n    );\n    return Debug.checkDefined(jsFilePath || declarationFilePath, `project ${configFile.options.configFilePath} expected to have at least one output`);\n  }\n  const getCommonSourceDirectory2 = memoize(() => getCommonSourceDirectoryOfConfig(configFile, ignoreCase));\n  for (const inputFileName of configFile.fileNames) {\n    if (isDeclarationFileName(inputFileName)) continue;\n    const jsFilePath = getOutputJSFileName(inputFileName, configFile, ignoreCase, getCommonSourceDirectory2);\n    if (jsFilePath) return jsFilePath;\n    if (fileExtensionIs(inputFileName, \".json\" /* Json */)) continue;\n    if (getEmitDeclarations(configFile.options)) {\n      return getOutputDeclarationFileName(inputFileName, configFile, ignoreCase, getCommonSourceDirectory2);\n    }\n  }\n  const buildInfoPath = getTsBuildInfoEmitOutputFilePath(configFile.options);\n  if (buildInfoPath) return buildInfoPath;\n  return Debug.fail(`project ${configFile.options.configFilePath} expected to have at least one output`);\n}\nfunction emitResolverSkipsTypeChecking(emitOnly, forceDtsEmit) {\n  return !!forceDtsEmit && !!emitOnly;\n}\nfunction emitFiles(resolver, host, targetSourceFile, { scriptTransformers, declarationTransformers }, emitOnly, onlyBuildInfo, forceDtsEmit, skipBuildInfo) {\n  var compilerOptions = host.getCompilerOptions();\n  var sourceMapDataList = compilerOptions.sourceMap || compilerOptions.inlineSourceMap || getAreDeclarationMapsEnabled(compilerOptions) ? [] : void 0;\n  var emittedFilesList = compilerOptions.listEmittedFiles ? [] : void 0;\n  var emitterDiagnostics = createDiagnosticCollection();\n  var newLine = getNewLineCharacter(compilerOptions);\n  var writer = createTextWriter(newLine);\n  var { enter, exit } = createTimer(\"printTime\", \"beforePrint\", \"afterPrint\");\n  var emitSkipped = false;\n  enter();\n  forEachEmittedFile(\n    host,\n    emitSourceFileOrBundle,\n    getSourceFilesToEmit(host, targetSourceFile, forceDtsEmit),\n    forceDtsEmit,\n    onlyBuildInfo,\n    !targetSourceFile && !skipBuildInfo\n  );\n  exit();\n  return {\n    emitSkipped,\n    diagnostics: emitterDiagnostics.getDiagnostics(),\n    emittedFiles: emittedFilesList,\n    sourceMaps: sourceMapDataList\n  };\n  function emitSourceFileOrBundle({ jsFilePath, sourceMapFilePath, declarationFilePath, declarationMapPath, buildInfoPath }, sourceFileOrBundle) {\n    var _a, _b, _c, _d, _e, _f;\n    (_a = tracing) == null ? void 0 : _a.push(tracing.Phase.Emit, \"emitJsFileOrBundle\", { jsFilePath });\n    emitJsFileOrBundle(sourceFileOrBundle, jsFilePath, sourceMapFilePath);\n    (_b = tracing) == null ? void 0 : _b.pop();\n    (_c = tracing) == null ? void 0 : _c.push(tracing.Phase.Emit, \"emitDeclarationFileOrBundle\", { declarationFilePath });\n    emitDeclarationFileOrBundle(sourceFileOrBundle, declarationFilePath, declarationMapPath);\n    (_d = tracing) == null ? void 0 : _d.pop();\n    (_e = tracing) == null ? void 0 : _e.push(tracing.Phase.Emit, \"emitBuildInfo\", { buildInfoPath });\n    emitBuildInfo(buildInfoPath);\n    (_f = tracing) == null ? void 0 : _f.pop();\n  }\n  function emitBuildInfo(buildInfoPath) {\n    if (!buildInfoPath || targetSourceFile) return;\n    if (host.isEmitBlocked(buildInfoPath)) {\n      emitSkipped = true;\n      return;\n    }\n    const buildInfo = host.getBuildInfo() || { version };\n    writeFile(\n      host,\n      emitterDiagnostics,\n      buildInfoPath,\n      getBuildInfoText(buildInfo),\n      /*writeByteOrderMark*/\n      false,\n      /*sourceFiles*/\n      void 0,\n      { buildInfo }\n    );\n    emittedFilesList == null ? void 0 : emittedFilesList.push(buildInfoPath);\n  }\n  function emitJsFileOrBundle(sourceFileOrBundle, jsFilePath, sourceMapFilePath) {\n    if (!sourceFileOrBundle || emitOnly || !jsFilePath) {\n      return;\n    }\n    if (host.isEmitBlocked(jsFilePath) || compilerOptions.noEmit) {\n      emitSkipped = true;\n      return;\n    }\n    (isSourceFile(sourceFileOrBundle) ? [sourceFileOrBundle] : filter(sourceFileOrBundle.sourceFiles, isSourceFileNotJson)).forEach(\n      (sourceFile) => {\n        if (compilerOptions.noCheck || !canIncludeBindAndCheckDiagnostics(sourceFile, compilerOptions)) markLinkedReferences(sourceFile);\n      }\n    );\n    const transform2 = transformNodes(\n      resolver,\n      host,\n      factory,\n      compilerOptions,\n      [sourceFileOrBundle],\n      scriptTransformers,\n      /*allowDtsFiles*/\n      false\n    );\n    const printerOptions = {\n      removeComments: compilerOptions.removeComments,\n      newLine: compilerOptions.newLine,\n      noEmitHelpers: compilerOptions.noEmitHelpers,\n      module: getEmitModuleKind(compilerOptions),\n      moduleResolution: getEmitModuleResolutionKind(compilerOptions),\n      target: getEmitScriptTarget(compilerOptions),\n      sourceMap: compilerOptions.sourceMap,\n      inlineSourceMap: compilerOptions.inlineSourceMap,\n      inlineSources: compilerOptions.inlineSources,\n      extendedDiagnostics: compilerOptions.extendedDiagnostics\n    };\n    const printer = createPrinter(printerOptions, {\n      // resolver hooks\n      hasGlobalName: resolver.hasGlobalName,\n      // transform hooks\n      onEmitNode: transform2.emitNodeWithNotification,\n      isEmitNotificationEnabled: transform2.isEmitNotificationEnabled,\n      substituteNode: transform2.substituteNode\n    });\n    Debug.assert(transform2.transformed.length === 1, \"Should only see one output from the transform\");\n    printSourceFileOrBundle(jsFilePath, sourceMapFilePath, transform2, printer, compilerOptions);\n    transform2.dispose();\n    if (emittedFilesList) {\n      emittedFilesList.push(jsFilePath);\n      if (sourceMapFilePath) {\n        emittedFilesList.push(sourceMapFilePath);\n      }\n    }\n  }\n  function emitDeclarationFileOrBundle(sourceFileOrBundle, declarationFilePath, declarationMapPath) {\n    if (!sourceFileOrBundle || emitOnly === 0 /* Js */) return;\n    if (!declarationFilePath) {\n      if (emitOnly || compilerOptions.emitDeclarationOnly) emitSkipped = true;\n      return;\n    }\n    const sourceFiles = isSourceFile(sourceFileOrBundle) ? [sourceFileOrBundle] : sourceFileOrBundle.sourceFiles;\n    const filesForEmit = forceDtsEmit ? sourceFiles : filter(sourceFiles, isSourceFileNotJson);\n    const inputListOrBundle = compilerOptions.outFile ? [factory.createBundle(filesForEmit)] : filesForEmit;\n    filesForEmit.forEach((sourceFile) => {\n      if (emitOnly && !getEmitDeclarations(compilerOptions) || compilerOptions.noCheck || emitResolverSkipsTypeChecking(emitOnly, forceDtsEmit) || !canIncludeBindAndCheckDiagnostics(sourceFile, compilerOptions)) {\n        collectLinkedAliases(sourceFile);\n      }\n    });\n    const declarationTransform = transformNodes(\n      resolver,\n      host,\n      factory,\n      compilerOptions,\n      inputListOrBundle,\n      declarationTransformers,\n      /*allowDtsFiles*/\n      false\n    );\n    if (length(declarationTransform.diagnostics)) {\n      for (const diagnostic of declarationTransform.diagnostics) {\n        emitterDiagnostics.add(diagnostic);\n      }\n    }\n    const declBlocked = !!declarationTransform.diagnostics && !!declarationTransform.diagnostics.length || !!host.isEmitBlocked(declarationFilePath) || !!compilerOptions.noEmit;\n    emitSkipped = emitSkipped || declBlocked;\n    if (!declBlocked || forceDtsEmit) {\n      Debug.assert(declarationTransform.transformed.length === 1, \"Should only see one output from the decl transform\");\n      const printerOptions = {\n        removeComments: compilerOptions.removeComments,\n        newLine: compilerOptions.newLine,\n        noEmitHelpers: true,\n        module: compilerOptions.module,\n        moduleResolution: compilerOptions.moduleResolution,\n        target: compilerOptions.target,\n        sourceMap: emitOnly !== 2 /* BuilderSignature */ && compilerOptions.declarationMap,\n        inlineSourceMap: compilerOptions.inlineSourceMap,\n        extendedDiagnostics: compilerOptions.extendedDiagnostics,\n        onlyPrintJsDocStyle: true,\n        omitBraceSourceMapPositions: true\n      };\n      const declarationPrinter = createPrinter(printerOptions, {\n        // resolver hooks\n        hasGlobalName: resolver.hasGlobalName,\n        // transform hooks\n        onEmitNode: declarationTransform.emitNodeWithNotification,\n        isEmitNotificationEnabled: declarationTransform.isEmitNotificationEnabled,\n        substituteNode: declarationTransform.substituteNode\n      });\n      const dtsWritten = printSourceFileOrBundle(\n        declarationFilePath,\n        declarationMapPath,\n        declarationTransform,\n        declarationPrinter,\n        {\n          sourceMap: printerOptions.sourceMap,\n          sourceRoot: compilerOptions.sourceRoot,\n          mapRoot: compilerOptions.mapRoot,\n          extendedDiagnostics: compilerOptions.extendedDiagnostics\n          // Explicitly do not passthru either `inline` option\n        }\n      );\n      if (emittedFilesList) {\n        if (dtsWritten) emittedFilesList.push(declarationFilePath);\n        if (declarationMapPath) {\n          emittedFilesList.push(declarationMapPath);\n        }\n      }\n    }\n    declarationTransform.dispose();\n  }\n  function collectLinkedAliases(node) {\n    if (isExportAssignment(node)) {\n      if (node.expression.kind === 80 /* Identifier */) {\n        resolver.collectLinkedAliases(\n          node.expression,\n          /*setVisibility*/\n          true\n        );\n      }\n      return;\n    } else if (isExportSpecifier(node)) {\n      resolver.collectLinkedAliases(\n        node.propertyName || node.name,\n        /*setVisibility*/\n        true\n      );\n      return;\n    }\n    forEachChild(node, collectLinkedAliases);\n  }\n  function markLinkedReferences(file) {\n    if (isSourceFileJS(file)) return;\n    forEachChildRecursively(file, (n) => {\n      if (isImportEqualsDeclaration(n) && !(getSyntacticModifierFlags(n) & 32 /* Export */)) return \"skip\";\n      if (isImportDeclaration(n)) return \"skip\";\n      resolver.markLinkedReferences(n);\n    });\n  }\n  function printSourceFileOrBundle(jsFilePath, sourceMapFilePath, transform2, printer, mapOptions) {\n    const sourceFileOrBundle = transform2.transformed[0];\n    const bundle = sourceFileOrBundle.kind === 309 /* Bundle */ ? sourceFileOrBundle : void 0;\n    const sourceFile = sourceFileOrBundle.kind === 308 /* SourceFile */ ? sourceFileOrBundle : void 0;\n    const sourceFiles = bundle ? bundle.sourceFiles : [sourceFile];\n    let sourceMapGenerator;\n    if (shouldEmitSourceMaps(mapOptions, sourceFileOrBundle)) {\n      sourceMapGenerator = createSourceMapGenerator(\n        host,\n        getBaseFileName(normalizeSlashes(jsFilePath)),\n        getSourceRoot(mapOptions),\n        getSourceMapDirectory(mapOptions, jsFilePath, sourceFile),\n        mapOptions\n      );\n    }\n    if (bundle) {\n      printer.writeBundle(bundle, writer, sourceMapGenerator);\n    } else {\n      printer.writeFile(sourceFile, writer, sourceMapGenerator);\n    }\n    let sourceMapUrlPos;\n    if (sourceMapGenerator) {\n      if (sourceMapDataList) {\n        sourceMapDataList.push({\n          inputSourceFileNames: sourceMapGenerator.getSources(),\n          sourceMap: sourceMapGenerator.toJSON()\n        });\n      }\n      const sourceMappingURL = getSourceMappingURL(\n        mapOptions,\n        sourceMapGenerator,\n        jsFilePath,\n        sourceMapFilePath,\n        sourceFile\n      );\n      if (sourceMappingURL) {\n        if (!writer.isAtStartOfLine()) writer.rawWrite(newLine);\n        sourceMapUrlPos = writer.getTextPos();\n        writer.writeComment(`//# ${\"sourceMappingURL\"}=${sourceMappingURL}`);\n      }\n      if (sourceMapFilePath) {\n        const sourceMap = sourceMapGenerator.toString();\n        writeFile(\n          host,\n          emitterDiagnostics,\n          sourceMapFilePath,\n          sourceMap,\n          /*writeByteOrderMark*/\n          false,\n          sourceFiles\n        );\n      }\n    } else {\n      writer.writeLine();\n    }\n    const text = writer.getText();\n    const data = { sourceMapUrlPos, diagnostics: transform2.diagnostics };\n    writeFile(host, emitterDiagnostics, jsFilePath, text, !!compilerOptions.emitBOM, sourceFiles, data);\n    writer.clear();\n    return !data.skippedDtsWrite;\n  }\n  function shouldEmitSourceMaps(mapOptions, sourceFileOrBundle) {\n    return (mapOptions.sourceMap || mapOptions.inlineSourceMap) && (sourceFileOrBundle.kind !== 308 /* SourceFile */ || !fileExtensionIs(sourceFileOrBundle.fileName, \".json\" /* Json */));\n  }\n  function getSourceRoot(mapOptions) {\n    const sourceRoot = normalizeSlashes(mapOptions.sourceRoot || \"\");\n    return sourceRoot ? ensureTrailingDirectorySeparator(sourceRoot) : sourceRoot;\n  }\n  function getSourceMapDirectory(mapOptions, filePath, sourceFile) {\n    if (mapOptions.sourceRoot) return host.getCommonSourceDirectory();\n    if (mapOptions.mapRoot) {\n      let sourceMapDir = normalizeSlashes(mapOptions.mapRoot);\n      if (sourceFile) {\n        sourceMapDir = getDirectoryPath(getSourceFilePathInNewDir(sourceFile.fileName, host, sourceMapDir));\n      }\n      if (getRootLength(sourceMapDir) === 0) {\n        sourceMapDir = combinePaths(host.getCommonSourceDirectory(), sourceMapDir);\n      }\n      return sourceMapDir;\n    }\n    return getDirectoryPath(normalizePath(filePath));\n  }\n  function getSourceMappingURL(mapOptions, sourceMapGenerator, filePath, sourceMapFilePath, sourceFile) {\n    if (mapOptions.inlineSourceMap) {\n      const sourceMapText = sourceMapGenerator.toString();\n      const base64SourceMapText = base64encode(sys, sourceMapText);\n      return `data:application/json;base64,${base64SourceMapText}`;\n    }\n    const sourceMapFile = getBaseFileName(normalizeSlashes(Debug.checkDefined(sourceMapFilePath)));\n    if (mapOptions.mapRoot) {\n      let sourceMapDir = normalizeSlashes(mapOptions.mapRoot);\n      if (sourceFile) {\n        sourceMapDir = getDirectoryPath(getSourceFilePathInNewDir(sourceFile.fileName, host, sourceMapDir));\n      }\n      if (getRootLength(sourceMapDir) === 0) {\n        sourceMapDir = combinePaths(host.getCommonSourceDirectory(), sourceMapDir);\n        return encodeURI(\n          getRelativePathToDirectoryOrUrl(\n            getDirectoryPath(normalizePath(filePath)),\n            // get the relative sourceMapDir path based on jsFilePath\n            combinePaths(sourceMapDir, sourceMapFile),\n            // this is where user expects to see sourceMap\n            host.getCurrentDirectory(),\n            host.getCanonicalFileName,\n            /*isAbsolutePathAnUrl*/\n            true\n          )\n        );\n      } else {\n        return encodeURI(combinePaths(sourceMapDir, sourceMapFile));\n      }\n    }\n    return encodeURI(sourceMapFile);\n  }\n}\nfunction getBuildInfoText(buildInfo) {\n  return JSON.stringify(buildInfo);\n}\nfunction getBuildInfo(buildInfoFile, buildInfoText) {\n  return readJsonOrUndefined(buildInfoFile, buildInfoText);\n}\nvar notImplementedResolver = {\n  hasGlobalName: notImplemented,\n  getReferencedExportContainer: notImplemented,\n  getReferencedImportDeclaration: notImplemented,\n  getReferencedDeclarationWithCollidingName: notImplemented,\n  isDeclarationWithCollidingName: notImplemented,\n  isValueAliasDeclaration: notImplemented,\n  isReferencedAliasDeclaration: notImplemented,\n  isTopLevelValueImportEqualsWithEntityName: notImplemented,\n  hasNodeCheckFlag: notImplemented,\n  isDeclarationVisible: notImplemented,\n  isLateBound: (_node) => false,\n  collectLinkedAliases: notImplemented,\n  markLinkedReferences: notImplemented,\n  isImplementationOfOverload: notImplemented,\n  requiresAddingImplicitUndefined: notImplemented,\n  isExpandoFunctionDeclaration: notImplemented,\n  getPropertiesOfContainerFunction: notImplemented,\n  createTypeOfDeclaration: notImplemented,\n  createReturnTypeOfSignatureDeclaration: notImplemented,\n  createTypeOfExpression: notImplemented,\n  createLiteralConstValue: notImplemented,\n  isSymbolAccessible: notImplemented,\n  isEntityNameVisible: notImplemented,\n  // Returns the constant value this property access resolves to: notImplemented, or 'undefined' for a non-constant\n  getConstantValue: notImplemented,\n  getEnumMemberValue: notImplemented,\n  getReferencedValueDeclaration: notImplemented,\n  getReferencedValueDeclarations: notImplemented,\n  getTypeReferenceSerializationKind: notImplemented,\n  isOptionalParameter: notImplemented,\n  isArgumentsLocalBinding: notImplemented,\n  getExternalModuleFileFromDeclaration: notImplemented,\n  isLiteralConstDeclaration: notImplemented,\n  getJsxFactoryEntity: notImplemented,\n  getJsxFragmentFactoryEntity: notImplemented,\n  isBindingCapturedByNode: notImplemented,\n  getDeclarationStatementsForSourceFile: notImplemented,\n  isImportRequiredByAugmentation: notImplemented,\n  isDefinitelyReferenceToGlobalSymbolObject: notImplemented,\n  createLateBoundIndexSignatures: notImplemented,\n  symbolToDeclarations: notImplemented\n};\nvar createPrinterWithDefaults = /* @__PURE__ */ memoize(() => createPrinter({}));\nvar createPrinterWithRemoveComments = /* @__PURE__ */ memoize(() => createPrinter({ removeComments: true }));\nvar createPrinterWithRemoveCommentsNeverAsciiEscape = /* @__PURE__ */ memoize(() => createPrinter({ removeComments: true, neverAsciiEscape: true }));\nvar createPrinterWithRemoveCommentsOmitTrailingSemicolon = /* @__PURE__ */ memoize(() => createPrinter({ removeComments: true, omitTrailingSemicolon: true }));\nfunction createPrinter(printerOptions = {}, handlers = {}) {\n  var {\n    hasGlobalName,\n    onEmitNode = noEmitNotification,\n    isEmitNotificationEnabled,\n    substituteNode = noEmitSubstitution,\n    onBeforeEmitNode,\n    onAfterEmitNode,\n    onBeforeEmitNodeArray,\n    onAfterEmitNodeArray,\n    onBeforeEmitToken,\n    onAfterEmitToken\n  } = handlers;\n  var extendedDiagnostics = !!printerOptions.extendedDiagnostics;\n  var omitBraceSourcePositions = !!printerOptions.omitBraceSourceMapPositions;\n  var newLine = getNewLineCharacter(printerOptions);\n  var moduleKind = getEmitModuleKind(printerOptions);\n  var bundledHelpers = /* @__PURE__ */ new Map();\n  var currentSourceFile;\n  var nodeIdToGeneratedName;\n  var nodeIdToGeneratedPrivateName;\n  var autoGeneratedIdToGeneratedName;\n  var generatedNames;\n  var formattedNameTempFlagsStack;\n  var formattedNameTempFlags;\n  var privateNameTempFlagsStack;\n  var privateNameTempFlags;\n  var tempFlagsStack;\n  var tempFlags;\n  var reservedNamesStack;\n  var reservedNames;\n  var reservedPrivateNamesStack;\n  var reservedPrivateNames;\n  var preserveSourceNewlines = printerOptions.preserveSourceNewlines;\n  var nextListElementPos;\n  var writer;\n  var ownWriter;\n  var write = writeBase;\n  var isOwnFileEmit;\n  var sourceMapsDisabled = true;\n  var sourceMapGenerator;\n  var sourceMapSource;\n  var sourceMapSourceIndex = -1;\n  var mostRecentlyAddedSourceMapSource;\n  var mostRecentlyAddedSourceMapSourceIndex = -1;\n  var containerPos = -1;\n  var containerEnd = -1;\n  var declarationListContainerEnd = -1;\n  var currentLineMap;\n  var detachedCommentsInfo;\n  var hasWrittenComment = false;\n  var commentsDisabled = !!printerOptions.removeComments;\n  var lastSubstitution;\n  var currentParenthesizerRule;\n  var { enter: enterComment, exit: exitComment } = createTimerIf(extendedDiagnostics, \"commentTime\", \"beforeComment\", \"afterComment\");\n  var parenthesizer = factory.parenthesizer;\n  var typeArgumentParenthesizerRuleSelector = {\n    select: (index) => index === 0 ? parenthesizer.parenthesizeLeadingTypeArgument : void 0\n  };\n  var emitBinaryExpression = createEmitBinaryExpression();\n  reset2();\n  return {\n    // public API\n    printNode,\n    printList,\n    printFile,\n    printBundle,\n    // internal API\n    writeNode,\n    writeList,\n    writeFile: writeFile2,\n    writeBundle\n  };\n  function printNode(hint, node, sourceFile) {\n    switch (hint) {\n      case 0 /* SourceFile */:\n        Debug.assert(isSourceFile(node), \"Expected a SourceFile node.\");\n        break;\n      case 2 /* IdentifierName */:\n        Debug.assert(isIdentifier(node), \"Expected an Identifier node.\");\n        break;\n      case 1 /* Expression */:\n        Debug.assert(isExpression(node), \"Expected an Expression node.\");\n        break;\n    }\n    switch (node.kind) {\n      case 308 /* SourceFile */:\n        return printFile(node);\n      case 309 /* Bundle */:\n        return printBundle(node);\n    }\n    writeNode(hint, node, sourceFile, beginPrint());\n    return endPrint();\n  }\n  function printList(format, nodes, sourceFile) {\n    writeList(format, nodes, sourceFile, beginPrint());\n    return endPrint();\n  }\n  function printBundle(bundle) {\n    writeBundle(\n      bundle,\n      beginPrint(),\n      /*sourceMapGenerator*/\n      void 0\n    );\n    return endPrint();\n  }\n  function printFile(sourceFile) {\n    writeFile2(\n      sourceFile,\n      beginPrint(),\n      /*sourceMapGenerator*/\n      void 0\n    );\n    return endPrint();\n  }\n  function writeNode(hint, node, sourceFile, output) {\n    const previousWriter = writer;\n    setWriter(\n      output,\n      /*_sourceMapGenerator*/\n      void 0\n    );\n    print(hint, node, sourceFile);\n    reset2();\n    writer = previousWriter;\n  }\n  function writeList(format, nodes, sourceFile, output) {\n    const previousWriter = writer;\n    setWriter(\n      output,\n      /*_sourceMapGenerator*/\n      void 0\n    );\n    if (sourceFile) {\n      setSourceFile(sourceFile);\n    }\n    emitList(\n      /*parentNode*/\n      void 0,\n      nodes,\n      format\n    );\n    reset2();\n    writer = previousWriter;\n  }\n  function writeBundle(bundle, output, sourceMapGenerator2) {\n    isOwnFileEmit = false;\n    const previousWriter = writer;\n    setWriter(output, sourceMapGenerator2);\n    emitShebangIfNeeded(bundle);\n    emitPrologueDirectivesIfNeeded(bundle);\n    emitHelpers(bundle);\n    emitSyntheticTripleSlashReferencesIfNeeded(bundle);\n    for (const sourceFile of bundle.sourceFiles) {\n      print(0 /* SourceFile */, sourceFile, sourceFile);\n    }\n    reset2();\n    writer = previousWriter;\n  }\n  function writeFile2(sourceFile, output, sourceMapGenerator2) {\n    isOwnFileEmit = true;\n    const previousWriter = writer;\n    setWriter(output, sourceMapGenerator2);\n    emitShebangIfNeeded(sourceFile);\n    emitPrologueDirectivesIfNeeded(sourceFile);\n    print(0 /* SourceFile */, sourceFile, sourceFile);\n    reset2();\n    writer = previousWriter;\n  }\n  function beginPrint() {\n    return ownWriter || (ownWriter = createTextWriter(newLine));\n  }\n  function endPrint() {\n    const text = ownWriter.getText();\n    ownWriter.clear();\n    return text;\n  }\n  function print(hint, node, sourceFile) {\n    if (sourceFile) {\n      setSourceFile(sourceFile);\n    }\n    pipelineEmit(\n      hint,\n      node,\n      /*parenthesizerRule*/\n      void 0\n    );\n  }\n  function setSourceFile(sourceFile) {\n    currentSourceFile = sourceFile;\n    currentLineMap = void 0;\n    detachedCommentsInfo = void 0;\n    if (sourceFile) {\n      setSourceMapSource(sourceFile);\n    }\n  }\n  function setWriter(_writer, _sourceMapGenerator) {\n    if (_writer && printerOptions.omitTrailingSemicolon) {\n      _writer = getTrailingSemicolonDeferringWriter(_writer);\n    }\n    writer = _writer;\n    sourceMapGenerator = _sourceMapGenerator;\n    sourceMapsDisabled = !writer || !sourceMapGenerator;\n  }\n  function reset2() {\n    nodeIdToGeneratedName = [];\n    nodeIdToGeneratedPrivateName = [];\n    autoGeneratedIdToGeneratedName = [];\n    generatedNames = /* @__PURE__ */ new Set();\n    formattedNameTempFlagsStack = [];\n    formattedNameTempFlags = /* @__PURE__ */ new Map();\n    privateNameTempFlagsStack = [];\n    privateNameTempFlags = 0 /* Auto */;\n    tempFlagsStack = [];\n    tempFlags = 0 /* Auto */;\n    reservedNamesStack = [];\n    reservedNames = void 0;\n    reservedPrivateNamesStack = [];\n    reservedPrivateNames = void 0;\n    currentSourceFile = void 0;\n    currentLineMap = void 0;\n    detachedCommentsInfo = void 0;\n    setWriter(\n      /*output*/\n      void 0,\n      /*_sourceMapGenerator*/\n      void 0\n    );\n  }\n  function getCurrentLineMap() {\n    return currentLineMap || (currentLineMap = getLineStarts(Debug.checkDefined(currentSourceFile)));\n  }\n  function emit(node, parenthesizerRule) {\n    if (node === void 0) return;\n    pipelineEmit(4 /* Unspecified */, node, parenthesizerRule);\n  }\n  function emitIdentifierName(node) {\n    if (node === void 0) return;\n    pipelineEmit(\n      2 /* IdentifierName */,\n      node,\n      /*parenthesizerRule*/\n      void 0\n    );\n  }\n  function emitExpression(node, parenthesizerRule) {\n    if (node === void 0) return;\n    pipelineEmit(1 /* Expression */, node, parenthesizerRule);\n  }\n  function emitJsxAttributeValue(node) {\n    pipelineEmit(isStringLiteral(node) ? 6 /* JsxAttributeValue */ : 4 /* Unspecified */, node);\n  }\n  function beforeEmitNode(node) {\n    if (preserveSourceNewlines && getInternalEmitFlags(node) & 4 /* IgnoreSourceNewlines */) {\n      preserveSourceNewlines = false;\n    }\n  }\n  function afterEmitNode(savedPreserveSourceNewlines) {\n    preserveSourceNewlines = savedPreserveSourceNewlines;\n  }\n  function pipelineEmit(emitHint, node, parenthesizerRule) {\n    currentParenthesizerRule = parenthesizerRule;\n    const pipelinePhase = getPipelinePhase(0 /* Notification */, emitHint, node);\n    pipelinePhase(emitHint, node);\n    currentParenthesizerRule = void 0;\n  }\n  function shouldEmitComments(node) {\n    return !commentsDisabled && !isSourceFile(node);\n  }\n  function shouldEmitSourceMaps(node) {\n    return !sourceMapsDisabled && !isSourceFile(node) && !isInJsonFile(node);\n  }\n  function getPipelinePhase(phase, emitHint, node) {\n    switch (phase) {\n      case 0 /* Notification */:\n        if (onEmitNode !== noEmitNotification && (!isEmitNotificationEnabled || isEmitNotificationEnabled(node))) {\n          return pipelineEmitWithNotification;\n        }\n      // falls through\n      case 1 /* Substitution */:\n        if (substituteNode !== noEmitSubstitution && (lastSubstitution = substituteNode(emitHint, node) || node) !== node) {\n          if (currentParenthesizerRule) {\n            lastSubstitution = currentParenthesizerRule(lastSubstitution);\n          }\n          return pipelineEmitWithSubstitution;\n        }\n      // falls through\n      case 2 /* Comments */:\n        if (shouldEmitComments(node)) {\n          return pipelineEmitWithComments;\n        }\n      // falls through\n      case 3 /* SourceMaps */:\n        if (shouldEmitSourceMaps(node)) {\n          return pipelineEmitWithSourceMaps;\n        }\n      // falls through\n      case 4 /* Emit */:\n        return pipelineEmitWithHint;\n      default:\n        return Debug.assertNever(phase);\n    }\n  }\n  function getNextPipelinePhase(currentPhase, emitHint, node) {\n    return getPipelinePhase(currentPhase + 1, emitHint, node);\n  }\n  function pipelineEmitWithNotification(hint, node) {\n    const pipelinePhase = getNextPipelinePhase(0 /* Notification */, hint, node);\n    onEmitNode(hint, node, pipelinePhase);\n  }\n  function pipelineEmitWithHint(hint, node) {\n    onBeforeEmitNode == null ? void 0 : onBeforeEmitNode(node);\n    if (preserveSourceNewlines) {\n      const savedPreserveSourceNewlines = preserveSourceNewlines;\n      beforeEmitNode(node);\n      pipelineEmitWithHintWorker(hint, node);\n      afterEmitNode(savedPreserveSourceNewlines);\n    } else {\n      pipelineEmitWithHintWorker(hint, node);\n    }\n    onAfterEmitNode == null ? void 0 : onAfterEmitNode(node);\n    currentParenthesizerRule = void 0;\n  }\n  function pipelineEmitWithHintWorker(hint, node, allowSnippets = true) {\n    if (allowSnippets) {\n      const snippet = getSnippetElement(node);\n      if (snippet) {\n        return emitSnippetNode(hint, node, snippet);\n      }\n    }\n    if (hint === 0 /* SourceFile */) return emitSourceFile(cast(node, isSourceFile));\n    if (hint === 2 /* IdentifierName */) return emitIdentifier(cast(node, isIdentifier));\n    if (hint === 6 /* JsxAttributeValue */) return emitLiteral(\n      cast(node, isStringLiteral),\n      /*jsxAttributeEscape*/\n      true\n    );\n    if (hint === 3 /* MappedTypeParameter */) return emitMappedTypeParameter(cast(node, isTypeParameterDeclaration));\n    if (hint === 7 /* ImportTypeNodeAttributes */) return emitImportTypeNodeAttributes(cast(node, isImportAttributes));\n    if (hint === 5 /* EmbeddedStatement */) {\n      Debug.assertNode(node, isEmptyStatement);\n      return emitEmptyStatement(\n        /*isEmbeddedStatement*/\n        true\n      );\n    }\n    if (hint === 4 /* Unspecified */) {\n      switch (node.kind) {\n        // Pseudo-literals\n        case 16 /* TemplateHead */:\n        case 17 /* TemplateMiddle */:\n        case 18 /* TemplateTail */:\n          return emitLiteral(\n            node,\n            /*jsxAttributeEscape*/\n            false\n          );\n        // Identifiers\n        case 80 /* Identifier */:\n          return emitIdentifier(node);\n        // PrivateIdentifiers\n        case 81 /* PrivateIdentifier */:\n          return emitPrivateIdentifier(node);\n        // Parse tree nodes\n        // Names\n        case 167 /* QualifiedName */:\n          return emitQualifiedName(node);\n        case 168 /* ComputedPropertyName */:\n          return emitComputedPropertyName(node);\n        // Signature elements\n        case 169 /* TypeParameter */:\n          return emitTypeParameter(node);\n        case 170 /* Parameter */:\n          return emitParameter(node);\n        case 171 /* Decorator */:\n          return emitDecorator(node);\n        // Type members\n        case 172 /* PropertySignature */:\n          return emitPropertySignature(node);\n        case 173 /* PropertyDeclaration */:\n          return emitPropertyDeclaration(node);\n        case 174 /* MethodSignature */:\n          return emitMethodSignature(node);\n        case 175 /* MethodDeclaration */:\n          return emitMethodDeclaration(node);\n        case 176 /* ClassStaticBlockDeclaration */:\n          return emitClassStaticBlockDeclaration(node);\n        case 177 /* Constructor */:\n          return emitConstructor(node);\n        case 178 /* GetAccessor */:\n        case 179 /* SetAccessor */:\n          return emitAccessorDeclaration(node);\n        case 180 /* CallSignature */:\n          return emitCallSignature(node);\n        case 181 /* ConstructSignature */:\n          return emitConstructSignature(node);\n        case 182 /* IndexSignature */:\n          return emitIndexSignature(node);\n        // Types\n        case 183 /* TypePredicate */:\n          return emitTypePredicate(node);\n        case 184 /* TypeReference */:\n          return emitTypeReference(node);\n        case 185 /* FunctionType */:\n          return emitFunctionType(node);\n        case 186 /* ConstructorType */:\n          return emitConstructorType(node);\n        case 187 /* TypeQuery */:\n          return emitTypeQuery(node);\n        case 188 /* TypeLiteral */:\n          return emitTypeLiteral(node);\n        case 189 /* ArrayType */:\n          return emitArrayType(node);\n        case 190 /* TupleType */:\n          return emitTupleType(node);\n        case 191 /* OptionalType */:\n          return emitOptionalType(node);\n        // SyntaxKind.RestType is handled below\n        case 193 /* UnionType */:\n          return emitUnionType(node);\n        case 194 /* IntersectionType */:\n          return emitIntersectionType(node);\n        case 195 /* ConditionalType */:\n          return emitConditionalType(node);\n        case 196 /* InferType */:\n          return emitInferType(node);\n        case 197 /* ParenthesizedType */:\n          return emitParenthesizedType(node);\n        case 234 /* ExpressionWithTypeArguments */:\n          return emitExpressionWithTypeArguments(node);\n        case 198 /* ThisType */:\n          return emitThisType();\n        case 199 /* TypeOperator */:\n          return emitTypeOperator(node);\n        case 200 /* IndexedAccessType */:\n          return emitIndexedAccessType(node);\n        case 201 /* MappedType */:\n          return emitMappedType(node);\n        case 202 /* LiteralType */:\n          return emitLiteralType(node);\n        case 203 /* NamedTupleMember */:\n          return emitNamedTupleMember(node);\n        case 204 /* TemplateLiteralType */:\n          return emitTemplateType(node);\n        case 205 /* TemplateLiteralTypeSpan */:\n          return emitTemplateTypeSpan(node);\n        case 206 /* ImportType */:\n          return emitImportTypeNode(node);\n        // Binding patterns\n        case 207 /* ObjectBindingPattern */:\n          return emitObjectBindingPattern(node);\n        case 208 /* ArrayBindingPattern */:\n          return emitArrayBindingPattern(node);\n        case 209 /* BindingElement */:\n          return emitBindingElement(node);\n        // Misc\n        case 240 /* TemplateSpan */:\n          return emitTemplateSpan(node);\n        case 241 /* SemicolonClassElement */:\n          return emitSemicolonClassElement();\n        // Statements\n        case 242 /* Block */:\n          return emitBlock(node);\n        case 244 /* VariableStatement */:\n          return emitVariableStatement(node);\n        case 243 /* EmptyStatement */:\n          return emitEmptyStatement(\n            /*isEmbeddedStatement*/\n            false\n          );\n        case 245 /* ExpressionStatement */:\n          return emitExpressionStatement(node);\n        case 246 /* IfStatement */:\n          return emitIfStatement(node);\n        case 247 /* DoStatement */:\n          return emitDoStatement(node);\n        case 248 /* WhileStatement */:\n          return emitWhileStatement(node);\n        case 249 /* ForStatement */:\n          return emitForStatement(node);\n        case 250 /* ForInStatement */:\n          return emitForInStatement(node);\n        case 251 /* ForOfStatement */:\n          return emitForOfStatement(node);\n        case 252 /* ContinueStatement */:\n          return emitContinueStatement(node);\n        case 253 /* BreakStatement */:\n          return emitBreakStatement(node);\n        case 254 /* ReturnStatement */:\n          return emitReturnStatement(node);\n        case 255 /* WithStatement */:\n          return emitWithStatement(node);\n        case 256 /* SwitchStatement */:\n          return emitSwitchStatement(node);\n        case 257 /* LabeledStatement */:\n          return emitLabeledStatement(node);\n        case 258 /* ThrowStatement */:\n          return emitThrowStatement(node);\n        case 259 /* TryStatement */:\n          return emitTryStatement(node);\n        case 260 /* DebuggerStatement */:\n          return emitDebuggerStatement(node);\n        // Declarations\n        case 261 /* VariableDeclaration */:\n          return emitVariableDeclaration(node);\n        case 262 /* VariableDeclarationList */:\n          return emitVariableDeclarationList(node);\n        case 263 /* FunctionDeclaration */:\n          return emitFunctionDeclaration(node);\n        case 264 /* ClassDeclaration */:\n          return emitClassDeclaration(node);\n        case 265 /* InterfaceDeclaration */:\n          return emitInterfaceDeclaration(node);\n        case 266 /* TypeAliasDeclaration */:\n          return emitTypeAliasDeclaration(node);\n        case 267 /* EnumDeclaration */:\n          return emitEnumDeclaration(node);\n        case 268 /* ModuleDeclaration */:\n          return emitModuleDeclaration(node);\n        case 269 /* ModuleBlock */:\n          return emitModuleBlock(node);\n        case 270 /* CaseBlock */:\n          return emitCaseBlock(node);\n        case 271 /* NamespaceExportDeclaration */:\n          return emitNamespaceExportDeclaration(node);\n        case 272 /* ImportEqualsDeclaration */:\n          return emitImportEqualsDeclaration(node);\n        case 273 /* ImportDeclaration */:\n          return emitImportDeclaration(node);\n        case 274 /* ImportClause */:\n          return emitImportClause(node);\n        case 275 /* NamespaceImport */:\n          return emitNamespaceImport(node);\n        case 281 /* NamespaceExport */:\n          return emitNamespaceExport(node);\n        case 276 /* NamedImports */:\n          return emitNamedImports(node);\n        case 277 /* ImportSpecifier */:\n          return emitImportSpecifier(node);\n        case 278 /* ExportAssignment */:\n          return emitExportAssignment(node);\n        case 279 /* ExportDeclaration */:\n          return emitExportDeclaration(node);\n        case 280 /* NamedExports */:\n          return emitNamedExports(node);\n        case 282 /* ExportSpecifier */:\n          return emitExportSpecifier(node);\n        case 301 /* ImportAttributes */:\n          return emitImportAttributes(node);\n        case 302 /* ImportAttribute */:\n          return emitImportAttribute(node);\n        case 283 /* MissingDeclaration */:\n          return;\n        // Module references\n        case 284 /* ExternalModuleReference */:\n          return emitExternalModuleReference(node);\n        // JSX (non-expression)\n        case 12 /* JsxText */:\n          return emitJsxText(node);\n        case 287 /* JsxOpeningElement */:\n        case 290 /* JsxOpeningFragment */:\n          return emitJsxOpeningElementOrFragment(node);\n        case 288 /* JsxClosingElement */:\n        case 291 /* JsxClosingFragment */:\n          return emitJsxClosingElementOrFragment(node);\n        case 292 /* JsxAttribute */:\n          return emitJsxAttribute(node);\n        case 293 /* JsxAttributes */:\n          return emitJsxAttributes(node);\n        case 294 /* JsxSpreadAttribute */:\n          return emitJsxSpreadAttribute(node);\n        case 295 /* JsxExpression */:\n          return emitJsxExpression(node);\n        case 296 /* JsxNamespacedName */:\n          return emitJsxNamespacedName(node);\n        // Clauses\n        case 297 /* CaseClause */:\n          return emitCaseClause(node);\n        case 298 /* DefaultClause */:\n          return emitDefaultClause(node);\n        case 299 /* HeritageClause */:\n          return emitHeritageClause(node);\n        case 300 /* CatchClause */:\n          return emitCatchClause(node);\n        // Property assignments\n        case 304 /* PropertyAssignment */:\n          return emitPropertyAssignment(node);\n        case 305 /* ShorthandPropertyAssignment */:\n          return emitShorthandPropertyAssignment(node);\n        case 306 /* SpreadAssignment */:\n          return emitSpreadAssignment(node);\n        // Enum\n        case 307 /* EnumMember */:\n          return emitEnumMember(node);\n        // Top-level nodes\n        case 308 /* SourceFile */:\n          return emitSourceFile(node);\n        case 309 /* Bundle */:\n          return Debug.fail(\"Bundles should be printed using printBundle\");\n        // JSDoc nodes (only used in codefixes currently)\n        case 310 /* JSDocTypeExpression */:\n          return emitJSDocTypeExpression(node);\n        case 311 /* JSDocNameReference */:\n          return emitJSDocNameReference(node);\n        case 313 /* JSDocAllType */:\n          return writePunctuation(\"*\");\n        case 314 /* JSDocUnknownType */:\n          return writePunctuation(\"?\");\n        case 315 /* JSDocNullableType */:\n          return emitJSDocNullableType(node);\n        case 316 /* JSDocNonNullableType */:\n          return emitJSDocNonNullableType(node);\n        case 317 /* JSDocOptionalType */:\n          return emitJSDocOptionalType(node);\n        case 318 /* JSDocFunctionType */:\n          return emitJSDocFunctionType(node);\n        case 192 /* RestType */:\n        case 319 /* JSDocVariadicType */:\n          return emitRestOrJSDocVariadicType(node);\n        case 320 /* JSDocNamepathType */:\n          return;\n        case 321 /* JSDoc */:\n          return emitJSDoc(node);\n        case 323 /* JSDocTypeLiteral */:\n          return emitJSDocTypeLiteral(node);\n        case 324 /* JSDocSignature */:\n          return emitJSDocSignature(node);\n        case 328 /* JSDocTag */:\n        case 333 /* JSDocClassTag */:\n        case 338 /* JSDocOverrideTag */:\n          return emitJSDocSimpleTag(node);\n        case 329 /* JSDocAugmentsTag */:\n        case 330 /* JSDocImplementsTag */:\n          return emitJSDocHeritageTag(node);\n        case 331 /* JSDocAuthorTag */:\n        case 332 /* JSDocDeprecatedTag */:\n          return;\n        // SyntaxKind.JSDocClassTag (see JSDocTag, above)\n        case 334 /* JSDocPublicTag */:\n        case 335 /* JSDocPrivateTag */:\n        case 336 /* JSDocProtectedTag */:\n        case 337 /* JSDocReadonlyTag */:\n          return;\n        case 339 /* JSDocCallbackTag */:\n          return emitJSDocCallbackTag(node);\n        case 340 /* JSDocOverloadTag */:\n          return emitJSDocOverloadTag(node);\n        // SyntaxKind.JSDocEnumTag (see below)\n        case 342 /* JSDocParameterTag */:\n        case 349 /* JSDocPropertyTag */:\n          return emitJSDocPropertyLikeTag(node);\n        case 341 /* JSDocEnumTag */:\n        case 343 /* JSDocReturnTag */:\n        case 344 /* JSDocThisTag */:\n        case 345 /* JSDocTypeTag */:\n        case 350 /* JSDocThrowsTag */:\n        case 351 /* JSDocSatisfiesTag */:\n          return emitJSDocSimpleTypedTag(node);\n        case 346 /* JSDocTemplateTag */:\n          return emitJSDocTemplateTag(node);\n        case 347 /* JSDocTypedefTag */:\n          return emitJSDocTypedefTag(node);\n        case 348 /* JSDocSeeTag */:\n          return emitJSDocSeeTag(node);\n        case 352 /* JSDocImportTag */:\n          return emitJSDocImportTag(node);\n        // SyntaxKind.JSDocPropertyTag (see JSDocParameterTag, above)\n        // Transformation nodes\n        case 354 /* NotEmittedStatement */:\n        case 355 /* NotEmittedTypeElement */:\n          return;\n      }\n      if (isExpression(node)) {\n        hint = 1 /* Expression */;\n        if (substituteNode !== noEmitSubstitution) {\n          const substitute = substituteNode(hint, node) || node;\n          if (substitute !== node) {\n            node = substitute;\n            if (currentParenthesizerRule) {\n              node = currentParenthesizerRule(node);\n            }\n          }\n        }\n      }\n    }\n    if (hint === 1 /* Expression */) {\n      switch (node.kind) {\n        // Literals\n        case 9 /* NumericLiteral */:\n        case 10 /* BigIntLiteral */:\n          return emitNumericOrBigIntLiteral(node);\n        case 11 /* StringLiteral */:\n        case 14 /* RegularExpressionLiteral */:\n        case 15 /* NoSubstitutionTemplateLiteral */:\n          return emitLiteral(\n            node,\n            /*jsxAttributeEscape*/\n            false\n          );\n        // Identifiers\n        case 80 /* Identifier */:\n          return emitIdentifier(node);\n        case 81 /* PrivateIdentifier */:\n          return emitPrivateIdentifier(node);\n        // Expressions\n        case 210 /* ArrayLiteralExpression */:\n          return emitArrayLiteralExpression(node);\n        case 211 /* ObjectLiteralExpression */:\n          return emitObjectLiteralExpression(node);\n        case 212 /* PropertyAccessExpression */:\n          return emitPropertyAccessExpression(node);\n        case 213 /* ElementAccessExpression */:\n          return emitElementAccessExpression(node);\n        case 214 /* CallExpression */:\n          return emitCallExpression(node);\n        case 215 /* NewExpression */:\n          return emitNewExpression(node);\n        case 216 /* TaggedTemplateExpression */:\n          return emitTaggedTemplateExpression(node);\n        case 217 /* TypeAssertionExpression */:\n          return emitTypeAssertionExpression(node);\n        case 218 /* ParenthesizedExpression */:\n          return emitParenthesizedExpression(node);\n        case 219 /* FunctionExpression */:\n          return emitFunctionExpression(node);\n        case 220 /* ArrowFunction */:\n          return emitArrowFunction(node);\n        case 221 /* DeleteExpression */:\n          return emitDeleteExpression(node);\n        case 222 /* TypeOfExpression */:\n          return emitTypeOfExpression(node);\n        case 223 /* VoidExpression */:\n          return emitVoidExpression(node);\n        case 224 /* AwaitExpression */:\n          return emitAwaitExpression(node);\n        case 225 /* PrefixUnaryExpression */:\n          return emitPrefixUnaryExpression(node);\n        case 226 /* PostfixUnaryExpression */:\n          return emitPostfixUnaryExpression(node);\n        case 227 /* BinaryExpression */:\n          return emitBinaryExpression(node);\n        case 228 /* ConditionalExpression */:\n          return emitConditionalExpression(node);\n        case 229 /* TemplateExpression */:\n          return emitTemplateExpression(node);\n        case 230 /* YieldExpression */:\n          return emitYieldExpression(node);\n        case 231 /* SpreadElement */:\n          return emitSpreadElement(node);\n        case 232 /* ClassExpression */:\n          return emitClassExpression(node);\n        case 233 /* OmittedExpression */:\n          return;\n        case 235 /* AsExpression */:\n          return emitAsExpression(node);\n        case 236 /* NonNullExpression */:\n          return emitNonNullExpression(node);\n        case 234 /* ExpressionWithTypeArguments */:\n          return emitExpressionWithTypeArguments(node);\n        case 239 /* SatisfiesExpression */:\n          return emitSatisfiesExpression(node);\n        case 237 /* MetaProperty */:\n          return emitMetaProperty(node);\n        case 238 /* SyntheticExpression */:\n          return Debug.fail(\"SyntheticExpression should never be printed.\");\n        case 283 /* MissingDeclaration */:\n          return;\n        // JSX\n        case 285 /* JsxElement */:\n          return emitJsxElement(node);\n        case 286 /* JsxSelfClosingElement */:\n          return emitJsxSelfClosingElement(node);\n        case 289 /* JsxFragment */:\n          return emitJsxFragment(node);\n        // Synthesized list\n        case 353 /* SyntaxList */:\n          return Debug.fail(\"SyntaxList should not be printed\");\n        // Transformation nodes\n        case 354 /* NotEmittedStatement */:\n          return;\n        case 356 /* PartiallyEmittedExpression */:\n          return emitPartiallyEmittedExpression(node);\n        case 357 /* CommaListExpression */:\n          return emitCommaList(node);\n        case 358 /* SyntheticReferenceExpression */:\n          return Debug.fail(\"SyntheticReferenceExpression should not be printed\");\n      }\n    }\n    if (isKeyword(node.kind)) return writeTokenNode(node, writeKeyword);\n    if (isTokenKind(node.kind)) return writeTokenNode(node, writePunctuation);\n    Debug.fail(`Unhandled SyntaxKind: ${Debug.formatSyntaxKind(node.kind)}.`);\n  }\n  function emitMappedTypeParameter(node) {\n    emit(node.name);\n    writeSpace();\n    writeKeyword(\"in\");\n    writeSpace();\n    emit(node.constraint);\n  }\n  function pipelineEmitWithSubstitution(hint, node) {\n    const pipelinePhase = getNextPipelinePhase(1 /* Substitution */, hint, node);\n    Debug.assertIsDefined(lastSubstitution);\n    node = lastSubstitution;\n    lastSubstitution = void 0;\n    pipelinePhase(hint, node);\n  }\n  function emitHelpers(node) {\n    let helpersEmitted = false;\n    const bundle = node.kind === 309 /* Bundle */ ? node : void 0;\n    if (bundle && moduleKind === 0 /* None */) {\n      return;\n    }\n    const numNodes = bundle ? bundle.sourceFiles.length : 1;\n    for (let i = 0; i < numNodes; i++) {\n      const currentNode = bundle ? bundle.sourceFiles[i] : node;\n      const sourceFile = isSourceFile(currentNode) ? currentNode : currentSourceFile;\n      const shouldSkip = printerOptions.noEmitHelpers || !!sourceFile && hasRecordedExternalHelpers(sourceFile);\n      const shouldBundle = isSourceFile(currentNode) && !isOwnFileEmit;\n      const helpers = getSortedEmitHelpers(currentNode);\n      if (helpers) {\n        for (const helper of helpers) {\n          if (!helper.scoped) {\n            if (shouldSkip) continue;\n            if (shouldBundle) {\n              if (bundledHelpers.get(helper.name)) {\n                continue;\n              }\n              bundledHelpers.set(helper.name, true);\n            }\n          } else if (bundle) {\n            continue;\n          }\n          if (typeof helper.text === \"string\") {\n            writeLines(helper.text);\n          } else {\n            writeLines(helper.text(makeFileLevelOptimisticUniqueName));\n          }\n          helpersEmitted = true;\n        }\n      }\n    }\n    return helpersEmitted;\n  }\n  function getSortedEmitHelpers(node) {\n    const helpers = getEmitHelpers(node);\n    return helpers && toSorted(helpers, compareEmitHelpers);\n  }\n  function emitNumericOrBigIntLiteral(node) {\n    emitLiteral(\n      node,\n      /*jsxAttributeEscape*/\n      false\n    );\n  }\n  function emitLiteral(node, jsxAttributeEscape) {\n    const text = getLiteralTextOfNode(\n      node,\n      /*sourceFile*/\n      void 0,\n      printerOptions.neverAsciiEscape,\n      jsxAttributeEscape\n    );\n    if ((printerOptions.sourceMap || printerOptions.inlineSourceMap) && (node.kind === 11 /* StringLiteral */ || isTemplateLiteralKind(node.kind))) {\n      writeLiteral(text);\n    } else {\n      writeStringLiteral(text);\n    }\n  }\n  function emitSnippetNode(hint, node, snippet) {\n    switch (snippet.kind) {\n      case 1 /* Placeholder */:\n        emitPlaceholder(hint, node, snippet);\n        break;\n      case 0 /* TabStop */:\n        emitTabStop(hint, node, snippet);\n        break;\n    }\n  }\n  function emitPlaceholder(hint, node, snippet) {\n    nonEscapingWrite(`\\${${snippet.order}:`);\n    pipelineEmitWithHintWorker(\n      hint,\n      node,\n      /*allowSnippets*/\n      false\n    );\n    nonEscapingWrite(`}`);\n  }\n  function emitTabStop(hint, node, snippet) {\n    Debug.assert(node.kind === 243 /* EmptyStatement */, `A tab stop cannot be attached to a node of kind ${Debug.formatSyntaxKind(node.kind)}.`);\n    Debug.assert(hint !== 5 /* EmbeddedStatement */, `A tab stop cannot be attached to an embedded statement.`);\n    nonEscapingWrite(`$${snippet.order}`);\n  }\n  function emitIdentifier(node) {\n    const writeText = node.symbol ? writeSymbol : write;\n    writeText(getTextOfNode2(\n      node,\n      /*includeTrivia*/\n      false\n    ), node.symbol);\n    emitList(node, getIdentifierTypeArguments(node), 53776 /* TypeParameters */);\n  }\n  function emitPrivateIdentifier(node) {\n    write(getTextOfNode2(\n      node,\n      /*includeTrivia*/\n      false\n    ));\n  }\n  function emitQualifiedName(node) {\n    emitEntityName(node.left);\n    writePunctuation(\".\");\n    emit(node.right);\n  }\n  function emitEntityName(node) {\n    if (node.kind === 80 /* Identifier */) {\n      emitExpression(node);\n    } else {\n      emit(node);\n    }\n  }\n  function emitComputedPropertyName(node) {\n    writePunctuation(\"[\");\n    emitExpression(node.expression, parenthesizer.parenthesizeExpressionOfComputedPropertyName);\n    writePunctuation(\"]\");\n  }\n  function emitTypeParameter(node) {\n    emitModifierList(node, node.modifiers);\n    emit(node.name);\n    if (node.constraint) {\n      writeSpace();\n      writeKeyword(\"extends\");\n      writeSpace();\n      emit(node.constraint);\n    }\n    if (node.default) {\n      writeSpace();\n      writeOperator(\"=\");\n      writeSpace();\n      emit(node.default);\n    }\n  }\n  function emitParameter(node) {\n    emitDecoratorsAndModifiers(\n      node,\n      node.modifiers,\n      /*allowDecorators*/\n      true\n    );\n    emit(node.dotDotDotToken);\n    emitNodeWithWriter(node.name, writeParameter);\n    emit(node.questionToken);\n    if (node.parent && node.parent.kind === 318 /* JSDocFunctionType */ && !node.name) {\n      emit(node.type);\n    } else {\n      emitTypeAnnotation(node.type);\n    }\n    emitInitializer(node.initializer, node.type ? node.type.end : node.questionToken ? node.questionToken.end : node.name ? node.name.end : node.modifiers ? node.modifiers.end : node.pos, node, parenthesizer.parenthesizeExpressionForDisallowedComma);\n  }\n  function emitDecorator(decorator) {\n    writePunctuation(\"@\");\n    emitExpression(decorator.expression, parenthesizer.parenthesizeLeftSideOfAccess);\n  }\n  function emitPropertySignature(node) {\n    emitModifierList(node, node.modifiers);\n    emitNodeWithWriter(node.name, writeProperty);\n    emit(node.questionToken);\n    emitTypeAnnotation(node.type);\n    writeTrailingSemicolon();\n  }\n  function emitPropertyDeclaration(node) {\n    emitDecoratorsAndModifiers(\n      node,\n      node.modifiers,\n      /*allowDecorators*/\n      true\n    );\n    emit(node.name);\n    emit(node.questionToken);\n    emit(node.exclamationToken);\n    emitTypeAnnotation(node.type);\n    emitInitializer(node.initializer, node.type ? node.type.end : node.questionToken ? node.questionToken.end : node.name.end, node);\n    writeTrailingSemicolon();\n  }\n  function emitMethodSignature(node) {\n    emitModifierList(node, node.modifiers);\n    emit(node.name);\n    emit(node.questionToken);\n    emitSignatureAndBody(node, emitSignatureHead, emitEmptyFunctionBody);\n  }\n  function emitMethodDeclaration(node) {\n    emitDecoratorsAndModifiers(\n      node,\n      node.modifiers,\n      /*allowDecorators*/\n      true\n    );\n    emit(node.asteriskToken);\n    emit(node.name);\n    emit(node.questionToken);\n    emitSignatureAndBody(node, emitSignatureHead, emitFunctionBody);\n  }\n  function emitClassStaticBlockDeclaration(node) {\n    writeKeyword(\"static\");\n    pushNameGenerationScope(node);\n    emitBlockFunctionBody(node.body);\n    popNameGenerationScope(node);\n  }\n  function emitConstructor(node) {\n    emitDecoratorsAndModifiers(\n      node,\n      node.modifiers,\n      /*allowDecorators*/\n      false\n    );\n    writeKeyword(\"constructor\");\n    emitSignatureAndBody(node, emitSignatureHead, emitFunctionBody);\n  }\n  function emitAccessorDeclaration(node) {\n    const pos = emitDecoratorsAndModifiers(\n      node,\n      node.modifiers,\n      /*allowDecorators*/\n      true\n    );\n    const token = node.kind === 178 /* GetAccessor */ ? 139 /* GetKeyword */ : 153 /* SetKeyword */;\n    emitTokenWithComment(token, pos, writeKeyword, node);\n    writeSpace();\n    emit(node.name);\n    emitSignatureAndBody(node, emitSignatureHead, emitFunctionBody);\n  }\n  function emitCallSignature(node) {\n    emitSignatureAndBody(node, emitSignatureHead, emitEmptyFunctionBody);\n  }\n  function emitConstructSignature(node) {\n    writeKeyword(\"new\");\n    writeSpace();\n    emitSignatureAndBody(node, emitSignatureHead, emitEmptyFunctionBody);\n  }\n  function emitIndexSignature(node) {\n    emitDecoratorsAndModifiers(\n      node,\n      node.modifiers,\n      /*allowDecorators*/\n      false\n    );\n    emitParametersForIndexSignature(node, node.parameters);\n    emitTypeAnnotation(node.type);\n    writeTrailingSemicolon();\n  }\n  function emitTemplateTypeSpan(node) {\n    emit(node.type);\n    emit(node.literal);\n  }\n  function emitSemicolonClassElement() {\n    writeTrailingSemicolon();\n  }\n  function emitTypePredicate(node) {\n    if (node.assertsModifier) {\n      emit(node.assertsModifier);\n      writeSpace();\n    }\n    emit(node.parameterName);\n    if (node.type) {\n      writeSpace();\n      writeKeyword(\"is\");\n      writeSpace();\n      emit(node.type);\n    }\n  }\n  function emitTypeReference(node) {\n    emit(node.typeName);\n    emitTypeArguments(node, node.typeArguments);\n  }\n  function emitFunctionType(node) {\n    emitSignatureAndBody(node, emitFunctionTypeHead, emitFunctionTypeBody);\n  }\n  function emitFunctionTypeHead(node) {\n    emitTypeParameters(node, node.typeParameters);\n    emitParametersForArrow(node, node.parameters);\n    writeSpace();\n    writePunctuation(\"=>\");\n  }\n  function emitFunctionTypeBody(node) {\n    writeSpace();\n    emit(node.type);\n  }\n  function emitJSDocFunctionType(node) {\n    writeKeyword(\"function\");\n    emitParameters(node, node.parameters);\n    writePunctuation(\":\");\n    emit(node.type);\n  }\n  function emitJSDocNullableType(node) {\n    writePunctuation(\"?\");\n    emit(node.type);\n  }\n  function emitJSDocNonNullableType(node) {\n    writePunctuation(\"!\");\n    emit(node.type);\n  }\n  function emitJSDocOptionalType(node) {\n    emit(node.type);\n    writePunctuation(\"=\");\n  }\n  function emitConstructorType(node) {\n    emitModifierList(node, node.modifiers);\n    writeKeyword(\"new\");\n    writeSpace();\n    emitSignatureAndBody(node, emitFunctionTypeHead, emitFunctionTypeBody);\n  }\n  function emitTypeQuery(node) {\n    writeKeyword(\"typeof\");\n    writeSpace();\n    emit(node.exprName);\n    emitTypeArguments(node, node.typeArguments);\n  }\n  function emitTypeLiteral(node) {\n    pushNameGenerationScope(node);\n    forEach(node.members, generateMemberNames);\n    writePunctuation(\"{\");\n    const flags = getEmitFlags(node) & 1 /* SingleLine */ ? 768 /* SingleLineTypeLiteralMembers */ : 32897 /* MultiLineTypeLiteralMembers */;\n    emitList(node, node.members, flags | 524288 /* NoSpaceIfEmpty */);\n    writePunctuation(\"}\");\n    popNameGenerationScope(node);\n  }\n  function emitArrayType(node) {\n    emit(node.elementType, parenthesizer.parenthesizeNonArrayTypeOfPostfixType);\n    writePunctuation(\"[\");\n    writePunctuation(\"]\");\n  }\n  function emitRestOrJSDocVariadicType(node) {\n    writePunctuation(\"...\");\n    emit(node.type);\n  }\n  function emitTupleType(node) {\n    emitTokenWithComment(23 /* OpenBracketToken */, node.pos, writePunctuation, node);\n    const flags = getEmitFlags(node) & 1 /* SingleLine */ ? 528 /* SingleLineTupleTypeElements */ : 657 /* MultiLineTupleTypeElements */;\n    emitList(node, node.elements, flags | 524288 /* NoSpaceIfEmpty */, parenthesizer.parenthesizeElementTypeOfTupleType);\n    emitTokenWithComment(24 /* CloseBracketToken */, node.elements.end, writePunctuation, node);\n  }\n  function emitNamedTupleMember(node) {\n    emit(node.dotDotDotToken);\n    emit(node.name);\n    emit(node.questionToken);\n    emitTokenWithComment(59 /* ColonToken */, node.name.end, writePunctuation, node);\n    writeSpace();\n    emit(node.type);\n  }\n  function emitOptionalType(node) {\n    emit(node.type, parenthesizer.parenthesizeTypeOfOptionalType);\n    writePunctuation(\"?\");\n  }\n  function emitUnionType(node) {\n    emitList(node, node.types, 516 /* UnionTypeConstituents */, parenthesizer.parenthesizeConstituentTypeOfUnionType);\n  }\n  function emitIntersectionType(node) {\n    emitList(node, node.types, 520 /* IntersectionTypeConstituents */, parenthesizer.parenthesizeConstituentTypeOfIntersectionType);\n  }\n  function emitConditionalType(node) {\n    emit(node.checkType, parenthesizer.parenthesizeCheckTypeOfConditionalType);\n    writeSpace();\n    writeKeyword(\"extends\");\n    writeSpace();\n    emit(node.extendsType, parenthesizer.parenthesizeExtendsTypeOfConditionalType);\n    writeSpace();\n    writePunctuation(\"?\");\n    writeSpace();\n    emit(node.trueType);\n    writeSpace();\n    writePunctuation(\":\");\n    writeSpace();\n    emit(node.falseType);\n  }\n  function emitInferType(node) {\n    writeKeyword(\"infer\");\n    writeSpace();\n    emit(node.typeParameter);\n  }\n  function emitParenthesizedType(node) {\n    writePunctuation(\"(\");\n    emit(node.type);\n    writePunctuation(\")\");\n  }\n  function emitThisType() {\n    writeKeyword(\"this\");\n  }\n  function emitTypeOperator(node) {\n    writeTokenText(node.operator, writeKeyword);\n    writeSpace();\n    const parenthesizerRule = node.operator === 148 /* ReadonlyKeyword */ ? parenthesizer.parenthesizeOperandOfReadonlyTypeOperator : parenthesizer.parenthesizeOperandOfTypeOperator;\n    emit(node.type, parenthesizerRule);\n  }\n  function emitIndexedAccessType(node) {\n    emit(node.objectType, parenthesizer.parenthesizeNonArrayTypeOfPostfixType);\n    writePunctuation(\"[\");\n    emit(node.indexType);\n    writePunctuation(\"]\");\n  }\n  function emitMappedType(node) {\n    const emitFlags = getEmitFlags(node);\n    writePunctuation(\"{\");\n    if (emitFlags & 1 /* SingleLine */) {\n      writeSpace();\n    } else {\n      writeLine();\n      increaseIndent();\n    }\n    if (node.readonlyToken) {\n      emit(node.readonlyToken);\n      if (node.readonlyToken.kind !== 148 /* ReadonlyKeyword */) {\n        writeKeyword(\"readonly\");\n      }\n      writeSpace();\n    }\n    writePunctuation(\"[\");\n    pipelineEmit(3 /* MappedTypeParameter */, node.typeParameter);\n    if (node.nameType) {\n      writeSpace();\n      writeKeyword(\"as\");\n      writeSpace();\n      emit(node.nameType);\n    }\n    writePunctuation(\"]\");\n    if (node.questionToken) {\n      emit(node.questionToken);\n      if (node.questionToken.kind !== 58 /* QuestionToken */) {\n        writePunctuation(\"?\");\n      }\n    }\n    writePunctuation(\":\");\n    writeSpace();\n    emit(node.type);\n    writeTrailingSemicolon();\n    if (emitFlags & 1 /* SingleLine */) {\n      writeSpace();\n    } else {\n      writeLine();\n      decreaseIndent();\n    }\n    emitList(node, node.members, 2 /* PreserveLines */);\n    writePunctuation(\"}\");\n  }\n  function emitLiteralType(node) {\n    emitExpression(node.literal);\n  }\n  function emitTemplateType(node) {\n    emit(node.head);\n    emitList(node, node.templateSpans, 262144 /* TemplateExpressionSpans */);\n  }\n  function emitImportTypeNode(node) {\n    if (node.isTypeOf) {\n      writeKeyword(\"typeof\");\n      writeSpace();\n    }\n    writeKeyword(\"import\");\n    writePunctuation(\"(\");\n    emit(node.argument);\n    if (node.attributes) {\n      writePunctuation(\",\");\n      writeSpace();\n      pipelineEmit(7 /* ImportTypeNodeAttributes */, node.attributes);\n    }\n    writePunctuation(\")\");\n    if (node.qualifier) {\n      writePunctuation(\".\");\n      emit(node.qualifier);\n    }\n    emitTypeArguments(node, node.typeArguments);\n  }\n  function emitObjectBindingPattern(node) {\n    writePunctuation(\"{\");\n    emitList(node, node.elements, 525136 /* ObjectBindingPatternElements */);\n    writePunctuation(\"}\");\n  }\n  function emitArrayBindingPattern(node) {\n    writePunctuation(\"[\");\n    emitList(node, node.elements, 524880 /* ArrayBindingPatternElements */);\n    writePunctuation(\"]\");\n  }\n  function emitBindingElement(node) {\n    emit(node.dotDotDotToken);\n    if (node.propertyName) {\n      emit(node.propertyName);\n      writePunctuation(\":\");\n      writeSpace();\n    }\n    emit(node.name);\n    emitInitializer(node.initializer, node.name.end, node, parenthesizer.parenthesizeExpressionForDisallowedComma);\n  }\n  function emitArrayLiteralExpression(node) {\n    const elements = node.elements;\n    const preferNewLine = node.multiLine ? 65536 /* PreferNewLine */ : 0 /* None */;\n    emitExpressionList(node, elements, 8914 /* ArrayLiteralExpressionElements */ | preferNewLine, parenthesizer.parenthesizeExpressionForDisallowedComma);\n  }\n  function emitObjectLiteralExpression(node) {\n    pushNameGenerationScope(node);\n    forEach(node.properties, generateMemberNames);\n    const indentedFlag = getEmitFlags(node) & 131072 /* Indented */;\n    if (indentedFlag) {\n      increaseIndent();\n    }\n    const preferNewLine = node.multiLine ? 65536 /* PreferNewLine */ : 0 /* None */;\n    const allowTrailingComma = currentSourceFile && currentSourceFile.languageVersion >= 1 /* ES5 */ && !isJsonSourceFile(currentSourceFile) ? 64 /* AllowTrailingComma */ : 0 /* None */;\n    emitList(node, node.properties, 526226 /* ObjectLiteralExpressionProperties */ | allowTrailingComma | preferNewLine);\n    if (indentedFlag) {\n      decreaseIndent();\n    }\n    popNameGenerationScope(node);\n  }\n  function emitPropertyAccessExpression(node) {\n    emitExpression(node.expression, parenthesizer.parenthesizeLeftSideOfAccess);\n    const token = node.questionDotToken || setTextRangePosEnd(factory.createToken(25 /* DotToken */), node.expression.end, node.name.pos);\n    const linesBeforeDot = getLinesBetweenNodes(node, node.expression, token);\n    const linesAfterDot = getLinesBetweenNodes(node, token, node.name);\n    writeLinesAndIndent(\n      linesBeforeDot,\n      /*writeSpaceIfNotIndenting*/\n      false\n    );\n    const shouldEmitDotDot = token.kind !== 29 /* QuestionDotToken */ && mayNeedDotDotForPropertyAccess(node.expression) && !writer.hasTrailingComment() && !writer.hasTrailingWhitespace();\n    if (shouldEmitDotDot) {\n      writePunctuation(\".\");\n    }\n    if (node.questionDotToken) {\n      emit(token);\n    } else {\n      emitTokenWithComment(token.kind, node.expression.end, writePunctuation, node);\n    }\n    writeLinesAndIndent(\n      linesAfterDot,\n      /*writeSpaceIfNotIndenting*/\n      false\n    );\n    emit(node.name);\n    decreaseIndentIf(linesBeforeDot, linesAfterDot);\n  }\n  function mayNeedDotDotForPropertyAccess(expression) {\n    expression = skipPartiallyEmittedExpressions(expression);\n    if (isNumericLiteral(expression)) {\n      const text = getLiteralTextOfNode(\n        expression,\n        /*sourceFile*/\n        void 0,\n        /*neverAsciiEscape*/\n        true,\n        /*jsxAttributeEscape*/\n        false\n      );\n      return !(expression.numericLiteralFlags & 448 /* WithSpecifier */) && !text.includes(tokenToString(25 /* DotToken */)) && !text.includes(String.fromCharCode(69 /* E */)) && !text.includes(String.fromCharCode(101 /* e */));\n    } else if (isAccessExpression(expression)) {\n      const constantValue = getConstantValue(expression);\n      return typeof constantValue === \"number\" && isFinite(constantValue) && constantValue >= 0 && Math.floor(constantValue) === constantValue;\n    }\n  }\n  function emitElementAccessExpression(node) {\n    emitExpression(node.expression, parenthesizer.parenthesizeLeftSideOfAccess);\n    emit(node.questionDotToken);\n    emitTokenWithComment(23 /* OpenBracketToken */, node.expression.end, writePunctuation, node);\n    emitExpression(node.argumentExpression);\n    emitTokenWithComment(24 /* CloseBracketToken */, node.argumentExpression.end, writePunctuation, node);\n  }\n  function emitCallExpression(node) {\n    const indirectCall = getInternalEmitFlags(node) & 16 /* IndirectCall */;\n    if (indirectCall) {\n      writePunctuation(\"(\");\n      writeLiteral(\"0\");\n      writePunctuation(\",\");\n      writeSpace();\n    }\n    emitExpression(node.expression, parenthesizer.parenthesizeLeftSideOfAccess);\n    if (indirectCall) {\n      writePunctuation(\")\");\n    }\n    emit(node.questionDotToken);\n    emitTypeArguments(node, node.typeArguments);\n    emitExpressionList(node, node.arguments, 2576 /* CallExpressionArguments */, parenthesizer.parenthesizeExpressionForDisallowedComma);\n  }\n  function emitNewExpression(node) {\n    emitTokenWithComment(105 /* NewKeyword */, node.pos, writeKeyword, node);\n    writeSpace();\n    emitExpression(node.expression, parenthesizer.parenthesizeExpressionOfNew);\n    emitTypeArguments(node, node.typeArguments);\n    emitExpressionList(node, node.arguments, 18960 /* NewExpressionArguments */, parenthesizer.parenthesizeExpressionForDisallowedComma);\n  }\n  function emitTaggedTemplateExpression(node) {\n    const indirectCall = getInternalEmitFlags(node) & 16 /* IndirectCall */;\n    if (indirectCall) {\n      writePunctuation(\"(\");\n      writeLiteral(\"0\");\n      writePunctuation(\",\");\n      writeSpace();\n    }\n    emitExpression(node.tag, parenthesizer.parenthesizeLeftSideOfAccess);\n    if (indirectCall) {\n      writePunctuation(\")\");\n    }\n    emitTypeArguments(node, node.typeArguments);\n    writeSpace();\n    emitExpression(node.template);\n  }\n  function emitTypeAssertionExpression(node) {\n    writePunctuation(\"<\");\n    emit(node.type);\n    writePunctuation(\">\");\n    emitExpression(node.expression, parenthesizer.parenthesizeOperandOfPrefixUnary);\n  }\n  function emitParenthesizedExpression(node) {\n    const openParenPos = emitTokenWithComment(21 /* OpenParenToken */, node.pos, writePunctuation, node);\n    const indented = writeLineSeparatorsAndIndentBefore(node.expression, node);\n    emitExpression(\n      node.expression,\n      /*parenthesizerRule*/\n      void 0\n    );\n    writeLineSeparatorsAfter(node.expression, node);\n    decreaseIndentIf(indented);\n    emitTokenWithComment(22 /* CloseParenToken */, node.expression ? node.expression.end : openParenPos, writePunctuation, node);\n  }\n  function emitFunctionExpression(node) {\n    generateNameIfNeeded(node.name);\n    emitFunctionDeclarationOrExpression(node);\n  }\n  function emitArrowFunction(node) {\n    emitModifierList(node, node.modifiers);\n    emitSignatureAndBody(node, emitArrowFunctionHead, emitArrowFunctionBody);\n  }\n  function emitArrowFunctionHead(node) {\n    emitTypeParameters(node, node.typeParameters);\n    emitParametersForArrow(node, node.parameters);\n    emitTypeAnnotation(node.type);\n    writeSpace();\n    emit(node.equalsGreaterThanToken);\n  }\n  function emitArrowFunctionBody(node) {\n    if (isBlock(node.body)) {\n      emitBlockFunctionBody(node.body);\n    } else {\n      writeSpace();\n      emitExpression(node.body, parenthesizer.parenthesizeConciseBodyOfArrowFunction);\n    }\n  }\n  function emitDeleteExpression(node) {\n    emitTokenWithComment(91 /* DeleteKeyword */, node.pos, writeKeyword, node);\n    writeSpace();\n    emitExpression(node.expression, parenthesizer.parenthesizeOperandOfPrefixUnary);\n  }\n  function emitTypeOfExpression(node) {\n    emitTokenWithComment(114 /* TypeOfKeyword */, node.pos, writeKeyword, node);\n    writeSpace();\n    emitExpression(node.expression, parenthesizer.parenthesizeOperandOfPrefixUnary);\n  }\n  function emitVoidExpression(node) {\n    emitTokenWithComment(116 /* VoidKeyword */, node.pos, writeKeyword, node);\n    writeSpace();\n    emitExpression(node.expression, parenthesizer.parenthesizeOperandOfPrefixUnary);\n  }\n  function emitAwaitExpression(node) {\n    emitTokenWithComment(135 /* AwaitKeyword */, node.pos, writeKeyword, node);\n    writeSpace();\n    emitExpression(node.expression, parenthesizer.parenthesizeOperandOfPrefixUnary);\n  }\n  function emitPrefixUnaryExpression(node) {\n    writeTokenText(node.operator, writeOperator);\n    if (shouldEmitWhitespaceBeforeOperand(node)) {\n      writeSpace();\n    }\n    emitExpression(node.operand, parenthesizer.parenthesizeOperandOfPrefixUnary);\n  }\n  function shouldEmitWhitespaceBeforeOperand(node) {\n    const operand = node.operand;\n    return operand.kind === 225 /* PrefixUnaryExpression */ && (node.operator === 40 /* PlusToken */ && (operand.operator === 40 /* PlusToken */ || operand.operator === 46 /* PlusPlusToken */) || node.operator === 41 /* MinusToken */ && (operand.operator === 41 /* MinusToken */ || operand.operator === 47 /* MinusMinusToken */));\n  }\n  function emitPostfixUnaryExpression(node) {\n    emitExpression(node.operand, parenthesizer.parenthesizeOperandOfPostfixUnary);\n    writeTokenText(node.operator, writeOperator);\n  }\n  function createEmitBinaryExpression() {\n    return createBinaryExpressionTrampoline(\n      onEnter,\n      onLeft,\n      onOperator,\n      onRight,\n      onExit,\n      /*foldState*/\n      void 0\n    );\n    function onEnter(node, state) {\n      if (state) {\n        state.stackIndex++;\n        state.preserveSourceNewlinesStack[state.stackIndex] = preserveSourceNewlines;\n        state.containerPosStack[state.stackIndex] = containerPos;\n        state.containerEndStack[state.stackIndex] = containerEnd;\n        state.declarationListContainerEndStack[state.stackIndex] = declarationListContainerEnd;\n        const emitComments2 = state.shouldEmitCommentsStack[state.stackIndex] = shouldEmitComments(node);\n        const emitSourceMaps = state.shouldEmitSourceMapsStack[state.stackIndex] = shouldEmitSourceMaps(node);\n        onBeforeEmitNode == null ? void 0 : onBeforeEmitNode(node);\n        if (emitComments2) emitCommentsBeforeNode(node);\n        if (emitSourceMaps) emitSourceMapsBeforeNode(node);\n        beforeEmitNode(node);\n      } else {\n        state = {\n          stackIndex: 0,\n          preserveSourceNewlinesStack: [void 0],\n          containerPosStack: [-1],\n          containerEndStack: [-1],\n          declarationListContainerEndStack: [-1],\n          shouldEmitCommentsStack: [false],\n          shouldEmitSourceMapsStack: [false]\n        };\n      }\n      return state;\n    }\n    function onLeft(next, _workArea, parent2) {\n      return maybeEmitExpression(next, parent2, \"left\");\n    }\n    function onOperator(operatorToken, _state, node) {\n      const isCommaOperator = operatorToken.kind !== 28 /* CommaToken */;\n      const linesBeforeOperator = getLinesBetweenNodes(node, node.left, operatorToken);\n      const linesAfterOperator = getLinesBetweenNodes(node, operatorToken, node.right);\n      writeLinesAndIndent(linesBeforeOperator, isCommaOperator);\n      emitLeadingCommentsOfPosition(operatorToken.pos);\n      writeTokenNode(operatorToken, operatorToken.kind === 103 /* InKeyword */ ? writeKeyword : writeOperator);\n      emitTrailingCommentsOfPosition(\n        operatorToken.end,\n        /*prefixSpace*/\n        true\n      );\n      writeLinesAndIndent(\n        linesAfterOperator,\n        /*writeSpaceIfNotIndenting*/\n        true\n      );\n    }\n    function onRight(next, _workArea, parent2) {\n      return maybeEmitExpression(next, parent2, \"right\");\n    }\n    function onExit(node, state) {\n      const linesBeforeOperator = getLinesBetweenNodes(node, node.left, node.operatorToken);\n      const linesAfterOperator = getLinesBetweenNodes(node, node.operatorToken, node.right);\n      decreaseIndentIf(linesBeforeOperator, linesAfterOperator);\n      if (state.stackIndex > 0) {\n        const savedPreserveSourceNewlines = state.preserveSourceNewlinesStack[state.stackIndex];\n        const savedContainerPos = state.containerPosStack[state.stackIndex];\n        const savedContainerEnd = state.containerEndStack[state.stackIndex];\n        const savedDeclarationListContainerEnd = state.declarationListContainerEndStack[state.stackIndex];\n        const shouldEmitComments2 = state.shouldEmitCommentsStack[state.stackIndex];\n        const shouldEmitSourceMaps2 = state.shouldEmitSourceMapsStack[state.stackIndex];\n        afterEmitNode(savedPreserveSourceNewlines);\n        if (shouldEmitSourceMaps2) emitSourceMapsAfterNode(node);\n        if (shouldEmitComments2) emitCommentsAfterNode(node, savedContainerPos, savedContainerEnd, savedDeclarationListContainerEnd);\n        onAfterEmitNode == null ? void 0 : onAfterEmitNode(node);\n        state.stackIndex--;\n      }\n    }\n    function maybeEmitExpression(next, parent2, side) {\n      const parenthesizerRule = side === \"left\" ? parenthesizer.getParenthesizeLeftSideOfBinaryForOperator(parent2.operatorToken.kind) : parenthesizer.getParenthesizeRightSideOfBinaryForOperator(parent2.operatorToken.kind);\n      let pipelinePhase = getPipelinePhase(0 /* Notification */, 1 /* Expression */, next);\n      if (pipelinePhase === pipelineEmitWithSubstitution) {\n        Debug.assertIsDefined(lastSubstitution);\n        next = parenthesizerRule(cast(lastSubstitution, isExpression));\n        pipelinePhase = getNextPipelinePhase(1 /* Substitution */, 1 /* Expression */, next);\n        lastSubstitution = void 0;\n      }\n      if (pipelinePhase === pipelineEmitWithComments || pipelinePhase === pipelineEmitWithSourceMaps || pipelinePhase === pipelineEmitWithHint) {\n        if (isBinaryExpression(next)) {\n          return next;\n        }\n      }\n      currentParenthesizerRule = parenthesizerRule;\n      pipelinePhase(1 /* Expression */, next);\n    }\n  }\n  function emitConditionalExpression(node) {\n    const linesBeforeQuestion = getLinesBetweenNodes(node, node.condition, node.questionToken);\n    const linesAfterQuestion = getLinesBetweenNodes(node, node.questionToken, node.whenTrue);\n    const linesBeforeColon = getLinesBetweenNodes(node, node.whenTrue, node.colonToken);\n    const linesAfterColon = getLinesBetweenNodes(node, node.colonToken, node.whenFalse);\n    emitExpression(node.condition, parenthesizer.parenthesizeConditionOfConditionalExpression);\n    writeLinesAndIndent(\n      linesBeforeQuestion,\n      /*writeSpaceIfNotIndenting*/\n      true\n    );\n    emit(node.questionToken);\n    writeLinesAndIndent(\n      linesAfterQuestion,\n      /*writeSpaceIfNotIndenting*/\n      true\n    );\n    emitExpression(node.whenTrue, parenthesizer.parenthesizeBranchOfConditionalExpression);\n    decreaseIndentIf(linesBeforeQuestion, linesAfterQuestion);\n    writeLinesAndIndent(\n      linesBeforeColon,\n      /*writeSpaceIfNotIndenting*/\n      true\n    );\n    emit(node.colonToken);\n    writeLinesAndIndent(\n      linesAfterColon,\n      /*writeSpaceIfNotIndenting*/\n      true\n    );\n    emitExpression(node.whenFalse, parenthesizer.parenthesizeBranchOfConditionalExpression);\n    decreaseIndentIf(linesBeforeColon, linesAfterColon);\n  }\n  function emitTemplateExpression(node) {\n    emit(node.head);\n    emitList(node, node.templateSpans, 262144 /* TemplateExpressionSpans */);\n  }\n  function emitYieldExpression(node) {\n    emitTokenWithComment(127 /* YieldKeyword */, node.pos, writeKeyword, node);\n    emit(node.asteriskToken);\n    emitExpressionWithLeadingSpace(node.expression && parenthesizeExpressionForNoAsi(node.expression), parenthesizeExpressionForNoAsiAndDisallowedComma);\n  }\n  function emitSpreadElement(node) {\n    emitTokenWithComment(26 /* DotDotDotToken */, node.pos, writePunctuation, node);\n    emitExpression(node.expression, parenthesizer.parenthesizeExpressionForDisallowedComma);\n  }\n  function emitClassExpression(node) {\n    generateNameIfNeeded(node.name);\n    emitClassDeclarationOrExpression(node);\n  }\n  function emitExpressionWithTypeArguments(node) {\n    emitExpression(node.expression, parenthesizer.parenthesizeLeftSideOfAccess);\n    emitTypeArguments(node, node.typeArguments);\n  }\n  function emitAsExpression(node) {\n    emitExpression(\n      node.expression,\n      /*parenthesizerRule*/\n      void 0\n    );\n    if (node.type) {\n      writeSpace();\n      writeKeyword(\"as\");\n      writeSpace();\n      emit(node.type);\n    }\n  }\n  function emitNonNullExpression(node) {\n    emitExpression(node.expression, parenthesizer.parenthesizeLeftSideOfAccess);\n    writeOperator(\"!\");\n  }\n  function emitSatisfiesExpression(node) {\n    emitExpression(\n      node.expression,\n      /*parenthesizerRule*/\n      void 0\n    );\n    if (node.type) {\n      writeSpace();\n      writeKeyword(\"satisfies\");\n      writeSpace();\n      emit(node.type);\n    }\n  }\n  function emitMetaProperty(node) {\n    writeToken(node.keywordToken, node.pos, writePunctuation);\n    writePunctuation(\".\");\n    emit(node.name);\n  }\n  function emitTemplateSpan(node) {\n    emitExpression(node.expression);\n    emit(node.literal);\n  }\n  function emitBlock(node) {\n    emitBlockStatements(\n      node,\n      /*forceSingleLine*/\n      !node.multiLine && isEmptyBlock(node)\n    );\n  }\n  function emitBlockStatements(node, forceSingleLine) {\n    emitTokenWithComment(\n      19 /* OpenBraceToken */,\n      node.pos,\n      writePunctuation,\n      /*contextNode*/\n      node\n    );\n    const format = forceSingleLine || getEmitFlags(node) & 1 /* SingleLine */ ? 768 /* SingleLineBlockStatements */ : 129 /* MultiLineBlockStatements */;\n    emitList(node, node.statements, format);\n    emitTokenWithComment(\n      20 /* CloseBraceToken */,\n      node.statements.end,\n      writePunctuation,\n      /*contextNode*/\n      node,\n      /*indentLeading*/\n      !!(format & 1 /* MultiLine */)\n    );\n  }\n  function emitVariableStatement(node) {\n    emitDecoratorsAndModifiers(\n      node,\n      node.modifiers,\n      /*allowDecorators*/\n      false\n    );\n    emit(node.declarationList);\n    writeTrailingSemicolon();\n  }\n  function emitEmptyStatement(isEmbeddedStatement) {\n    if (isEmbeddedStatement) {\n      writePunctuation(\";\");\n    } else {\n      writeTrailingSemicolon();\n    }\n  }\n  function emitExpressionStatement(node) {\n    emitExpression(node.expression, parenthesizer.parenthesizeExpressionOfExpressionStatement);\n    if (!currentSourceFile || !isJsonSourceFile(currentSourceFile) || nodeIsSynthesized(node.expression)) {\n      writeTrailingSemicolon();\n    }\n  }\n  function emitIfStatement(node) {\n    const openParenPos = emitTokenWithComment(101 /* IfKeyword */, node.pos, writeKeyword, node);\n    writeSpace();\n    emitTokenWithComment(21 /* OpenParenToken */, openParenPos, writePunctuation, node);\n    emitExpression(node.expression);\n    emitTokenWithComment(22 /* CloseParenToken */, node.expression.end, writePunctuation, node);\n    emitEmbeddedStatement(node, node.thenStatement);\n    if (node.elseStatement) {\n      writeLineOrSpace(node, node.thenStatement, node.elseStatement);\n      emitTokenWithComment(93 /* ElseKeyword */, node.thenStatement.end, writeKeyword, node);\n      if (node.elseStatement.kind === 246 /* IfStatement */) {\n        writeSpace();\n        emit(node.elseStatement);\n      } else {\n        emitEmbeddedStatement(node, node.elseStatement);\n      }\n    }\n  }\n  function emitWhileClause(node, startPos) {\n    const openParenPos = emitTokenWithComment(117 /* WhileKeyword */, startPos, writeKeyword, node);\n    writeSpace();\n    emitTokenWithComment(21 /* OpenParenToken */, openParenPos, writePunctuation, node);\n    emitExpression(node.expression);\n    emitTokenWithComment(22 /* CloseParenToken */, node.expression.end, writePunctuation, node);\n  }\n  function emitDoStatement(node) {\n    emitTokenWithComment(92 /* DoKeyword */, node.pos, writeKeyword, node);\n    emitEmbeddedStatement(node, node.statement);\n    if (isBlock(node.statement) && !preserveSourceNewlines) {\n      writeSpace();\n    } else {\n      writeLineOrSpace(node, node.statement, node.expression);\n    }\n    emitWhileClause(node, node.statement.end);\n    writeTrailingSemicolon();\n  }\n  function emitWhileStatement(node) {\n    emitWhileClause(node, node.pos);\n    emitEmbeddedStatement(node, node.statement);\n  }\n  function emitForStatement(node) {\n    const openParenPos = emitTokenWithComment(99 /* ForKeyword */, node.pos, writeKeyword, node);\n    writeSpace();\n    let pos = emitTokenWithComment(\n      21 /* OpenParenToken */,\n      openParenPos,\n      writePunctuation,\n      /*contextNode*/\n      node\n    );\n    emitForBinding(node.initializer);\n    pos = emitTokenWithComment(27 /* SemicolonToken */, node.initializer ? node.initializer.end : pos, writePunctuation, node);\n    emitExpressionWithLeadingSpace(node.condition);\n    pos = emitTokenWithComment(27 /* SemicolonToken */, node.condition ? node.condition.end : pos, writePunctuation, node);\n    emitExpressionWithLeadingSpace(node.incrementor);\n    emitTokenWithComment(22 /* CloseParenToken */, node.incrementor ? node.incrementor.end : pos, writePunctuation, node);\n    emitEmbeddedStatement(node, node.statement);\n  }\n  function emitForInStatement(node) {\n    const openParenPos = emitTokenWithComment(99 /* ForKeyword */, node.pos, writeKeyword, node);\n    writeSpace();\n    emitTokenWithComment(21 /* OpenParenToken */, openParenPos, writePunctuation, node);\n    emitForBinding(node.initializer);\n    writeSpace();\n    emitTokenWithComment(103 /* InKeyword */, node.initializer.end, writeKeyword, node);\n    writeSpace();\n    emitExpression(node.expression);\n    emitTokenWithComment(22 /* CloseParenToken */, node.expression.end, writePunctuation, node);\n    emitEmbeddedStatement(node, node.statement);\n  }\n  function emitForOfStatement(node) {\n    const openParenPos = emitTokenWithComment(99 /* ForKeyword */, node.pos, writeKeyword, node);\n    writeSpace();\n    emitWithTrailingSpace(node.awaitModifier);\n    emitTokenWithComment(21 /* OpenParenToken */, openParenPos, writePunctuation, node);\n    emitForBinding(node.initializer);\n    writeSpace();\n    emitTokenWithComment(165 /* OfKeyword */, node.initializer.end, writeKeyword, node);\n    writeSpace();\n    emitExpression(node.expression);\n    emitTokenWithComment(22 /* CloseParenToken */, node.expression.end, writePunctuation, node);\n    emitEmbeddedStatement(node, node.statement);\n  }\n  function emitForBinding(node) {\n    if (node !== void 0) {\n      if (node.kind === 262 /* VariableDeclarationList */) {\n        emit(node);\n      } else {\n        emitExpression(node);\n      }\n    }\n  }\n  function emitContinueStatement(node) {\n    emitTokenWithComment(88 /* ContinueKeyword */, node.pos, writeKeyword, node);\n    emitWithLeadingSpace(node.label);\n    writeTrailingSemicolon();\n  }\n  function emitBreakStatement(node) {\n    emitTokenWithComment(83 /* BreakKeyword */, node.pos, writeKeyword, node);\n    emitWithLeadingSpace(node.label);\n    writeTrailingSemicolon();\n  }\n  function emitTokenWithComment(token, pos, writer2, contextNode, indentLeading) {\n    const node = getParseTreeNode(contextNode);\n    const isSimilarNode = node && node.kind === contextNode.kind;\n    const startPos = pos;\n    if (isSimilarNode && currentSourceFile) {\n      pos = skipTrivia(currentSourceFile.text, pos);\n    }\n    if (isSimilarNode && contextNode.pos !== startPos) {\n      const needsIndent = indentLeading && currentSourceFile && !positionsAreOnSameLine(startPos, pos, currentSourceFile);\n      if (needsIndent) {\n        increaseIndent();\n      }\n      emitLeadingCommentsOfPosition(startPos);\n      if (needsIndent) {\n        decreaseIndent();\n      }\n    }\n    if (!omitBraceSourcePositions && (token === 19 /* OpenBraceToken */ || token === 20 /* CloseBraceToken */)) {\n      pos = writeToken(token, pos, writer2, contextNode);\n    } else {\n      pos = writeTokenText(token, writer2, pos);\n    }\n    if (isSimilarNode && contextNode.end !== pos) {\n      const isJsxExprContext = contextNode.kind === 295 /* JsxExpression */;\n      emitTrailingCommentsOfPosition(\n        pos,\n        /*prefixSpace*/\n        !isJsxExprContext,\n        /*forceNoNewline*/\n        isJsxExprContext\n      );\n    }\n    return pos;\n  }\n  function commentWillEmitNewLine(node) {\n    return node.kind === 2 /* SingleLineCommentTrivia */ || !!node.hasTrailingNewLine;\n  }\n  function willEmitLeadingNewLine(node) {\n    if (!currentSourceFile) return false;\n    const leadingCommentRanges = getLeadingCommentRanges(currentSourceFile.text, node.pos);\n    if (leadingCommentRanges) {\n      const parseNode = getParseTreeNode(node);\n      if (parseNode && isParenthesizedExpression(parseNode.parent)) {\n        return true;\n      }\n    }\n    if (some(leadingCommentRanges, commentWillEmitNewLine)) return true;\n    if (some(getSyntheticLeadingComments(node), commentWillEmitNewLine)) return true;\n    if (isPartiallyEmittedExpression(node)) {\n      if (node.pos !== node.expression.pos) {\n        if (some(getTrailingCommentRanges(currentSourceFile.text, node.expression.pos), commentWillEmitNewLine)) return true;\n      }\n      return willEmitLeadingNewLine(node.expression);\n    }\n    return false;\n  }\n  function parenthesizeExpressionForNoAsi(node) {\n    if (!commentsDisabled) {\n      switch (node.kind) {\n        case 356 /* PartiallyEmittedExpression */:\n          if (willEmitLeadingNewLine(node)) {\n            const parseNode = getParseTreeNode(node);\n            if (parseNode && isParenthesizedExpression(parseNode)) {\n              const parens = factory.createParenthesizedExpression(node.expression);\n              setOriginalNode(parens, node);\n              setTextRange(parens, parseNode);\n              return parens;\n            }\n            return factory.createParenthesizedExpression(node);\n          }\n          return factory.updatePartiallyEmittedExpression(\n            node,\n            parenthesizeExpressionForNoAsi(node.expression)\n          );\n        case 212 /* PropertyAccessExpression */:\n          return factory.updatePropertyAccessExpression(\n            node,\n            parenthesizeExpressionForNoAsi(node.expression),\n            node.name\n          );\n        case 213 /* ElementAccessExpression */:\n          return factory.updateElementAccessExpression(\n            node,\n            parenthesizeExpressionForNoAsi(node.expression),\n            node.argumentExpression\n          );\n        case 214 /* CallExpression */:\n          return factory.updateCallExpression(\n            node,\n            parenthesizeExpressionForNoAsi(node.expression),\n            node.typeArguments,\n            node.arguments\n          );\n        case 216 /* TaggedTemplateExpression */:\n          return factory.updateTaggedTemplateExpression(\n            node,\n            parenthesizeExpressionForNoAsi(node.tag),\n            node.typeArguments,\n            node.template\n          );\n        case 226 /* PostfixUnaryExpression */:\n          return factory.updatePostfixUnaryExpression(\n            node,\n            parenthesizeExpressionForNoAsi(node.operand)\n          );\n        case 227 /* BinaryExpression */:\n          return factory.updateBinaryExpression(\n            node,\n            parenthesizeExpressionForNoAsi(node.left),\n            node.operatorToken,\n            node.right\n          );\n        case 228 /* ConditionalExpression */:\n          return factory.updateConditionalExpression(\n            node,\n            parenthesizeExpressionForNoAsi(node.condition),\n            node.questionToken,\n            node.whenTrue,\n            node.colonToken,\n            node.whenFalse\n          );\n        case 235 /* AsExpression */:\n          return factory.updateAsExpression(\n            node,\n            parenthesizeExpressionForNoAsi(node.expression),\n            node.type\n          );\n        case 239 /* SatisfiesExpression */:\n          return factory.updateSatisfiesExpression(\n            node,\n            parenthesizeExpressionForNoAsi(node.expression),\n            node.type\n          );\n        case 236 /* NonNullExpression */:\n          return factory.updateNonNullExpression(\n            node,\n            parenthesizeExpressionForNoAsi(node.expression)\n          );\n      }\n    }\n    return node;\n  }\n  function parenthesizeExpressionForNoAsiAndDisallowedComma(node) {\n    return parenthesizeExpressionForNoAsi(parenthesizer.parenthesizeExpressionForDisallowedComma(node));\n  }\n  function emitReturnStatement(node) {\n    emitTokenWithComment(\n      107 /* ReturnKeyword */,\n      node.pos,\n      writeKeyword,\n      /*contextNode*/\n      node\n    );\n    emitExpressionWithLeadingSpace(node.expression && parenthesizeExpressionForNoAsi(node.expression), parenthesizeExpressionForNoAsi);\n    writeTrailingSemicolon();\n  }\n  function emitWithStatement(node) {\n    const openParenPos = emitTokenWithComment(118 /* WithKeyword */, node.pos, writeKeyword, node);\n    writeSpace();\n    emitTokenWithComment(21 /* OpenParenToken */, openParenPos, writePunctuation, node);\n    emitExpression(node.expression);\n    emitTokenWithComment(22 /* CloseParenToken */, node.expression.end, writePunctuation, node);\n    emitEmbeddedStatement(node, node.statement);\n  }\n  function emitSwitchStatement(node) {\n    const openParenPos = emitTokenWithComment(109 /* SwitchKeyword */, node.pos, writeKeyword, node);\n    writeSpace();\n    emitTokenWithComment(21 /* OpenParenToken */, openParenPos, writePunctuation, node);\n    emitExpression(node.expression);\n    emitTokenWithComment(22 /* CloseParenToken */, node.expression.end, writePunctuation, node);\n    writeSpace();\n    emit(node.caseBlock);\n  }\n  function emitLabeledStatement(node) {\n    emit(node.label);\n    emitTokenWithComment(59 /* ColonToken */, node.label.end, writePunctuation, node);\n    writeSpace();\n    emit(node.statement);\n  }\n  function emitThrowStatement(node) {\n    emitTokenWithComment(111 /* ThrowKeyword */, node.pos, writeKeyword, node);\n    emitExpressionWithLeadingSpace(parenthesizeExpressionForNoAsi(node.expression), parenthesizeExpressionForNoAsi);\n    writeTrailingSemicolon();\n  }\n  function emitTryStatement(node) {\n    emitTokenWithComment(113 /* TryKeyword */, node.pos, writeKeyword, node);\n    writeSpace();\n    emit(node.tryBlock);\n    if (node.catchClause) {\n      writeLineOrSpace(node, node.tryBlock, node.catchClause);\n      emit(node.catchClause);\n    }\n    if (node.finallyBlock) {\n      writeLineOrSpace(node, node.catchClause || node.tryBlock, node.finallyBlock);\n      emitTokenWithComment(98 /* FinallyKeyword */, (node.catchClause || node.tryBlock).end, writeKeyword, node);\n      writeSpace();\n      emit(node.finallyBlock);\n    }\n  }\n  function emitDebuggerStatement(node) {\n    writeToken(89 /* DebuggerKeyword */, node.pos, writeKeyword);\n    writeTrailingSemicolon();\n  }\n  function emitVariableDeclaration(node) {\n    var _a, _b, _c;\n    emit(node.name);\n    emit(node.exclamationToken);\n    emitTypeAnnotation(node.type);\n    emitInitializer(node.initializer, ((_a = node.type) == null ? void 0 : _a.end) ?? ((_c = (_b = node.name.emitNode) == null ? void 0 : _b.typeNode) == null ? void 0 : _c.end) ?? node.name.end, node, parenthesizer.parenthesizeExpressionForDisallowedComma);\n  }\n  function emitVariableDeclarationList(node) {\n    if (isVarAwaitUsing(node)) {\n      writeKeyword(\"await\");\n      writeSpace();\n      writeKeyword(\"using\");\n    } else {\n      const head = isLet(node) ? \"let\" : isVarConst(node) ? \"const\" : isVarUsing(node) ? \"using\" : \"var\";\n      writeKeyword(head);\n    }\n    writeSpace();\n    emitList(node, node.declarations, 528 /* VariableDeclarationList */);\n  }\n  function emitFunctionDeclaration(node) {\n    emitFunctionDeclarationOrExpression(node);\n  }\n  function emitFunctionDeclarationOrExpression(node) {\n    emitDecoratorsAndModifiers(\n      node,\n      node.modifiers,\n      /*allowDecorators*/\n      false\n    );\n    writeKeyword(\"function\");\n    emit(node.asteriskToken);\n    writeSpace();\n    emitIdentifierName(node.name);\n    emitSignatureAndBody(node, emitSignatureHead, emitFunctionBody);\n  }\n  function emitSignatureAndBody(node, emitSignatureHead2, emitBody) {\n    const indentedFlag = getEmitFlags(node) & 131072 /* Indented */;\n    if (indentedFlag) {\n      increaseIndent();\n    }\n    pushNameGenerationScope(node);\n    forEach(node.parameters, generateNames);\n    emitSignatureHead2(node);\n    emitBody(node);\n    popNameGenerationScope(node);\n    if (indentedFlag) {\n      decreaseIndent();\n    }\n  }\n  function emitFunctionBody(node) {\n    const body = node.body;\n    if (body) {\n      emitBlockFunctionBody(body);\n    } else {\n      writeTrailingSemicolon();\n    }\n  }\n  function emitEmptyFunctionBody(_node) {\n    writeTrailingSemicolon();\n  }\n  function emitSignatureHead(node) {\n    emitTypeParameters(node, node.typeParameters);\n    emitParameters(node, node.parameters);\n    emitTypeAnnotation(node.type);\n  }\n  function shouldEmitBlockFunctionBodyOnSingleLine(body) {\n    if (getEmitFlags(body) & 1 /* SingleLine */) {\n      return true;\n    }\n    if (body.multiLine) {\n      return false;\n    }\n    if (!nodeIsSynthesized(body) && currentSourceFile && !rangeIsOnSingleLine(body, currentSourceFile)) {\n      return false;\n    }\n    if (getLeadingLineTerminatorCount(body, firstOrUndefined(body.statements), 2 /* PreserveLines */) || getClosingLineTerminatorCount(body, lastOrUndefined(body.statements), 2 /* PreserveLines */, body.statements)) {\n      return false;\n    }\n    let previousStatement;\n    for (const statement of body.statements) {\n      if (getSeparatingLineTerminatorCount(previousStatement, statement, 2 /* PreserveLines */) > 0) {\n        return false;\n      }\n      previousStatement = statement;\n    }\n    return true;\n  }\n  function emitBlockFunctionBody(body) {\n    generateNames(body);\n    onBeforeEmitNode == null ? void 0 : onBeforeEmitNode(body);\n    writeSpace();\n    writePunctuation(\"{\");\n    increaseIndent();\n    const emitBlockFunctionBody2 = shouldEmitBlockFunctionBodyOnSingleLine(body) ? emitBlockFunctionBodyOnSingleLine : emitBlockFunctionBodyWorker;\n    emitBodyWithDetachedComments(body, body.statements, emitBlockFunctionBody2);\n    decreaseIndent();\n    writeToken(20 /* CloseBraceToken */, body.statements.end, writePunctuation, body);\n    onAfterEmitNode == null ? void 0 : onAfterEmitNode(body);\n  }\n  function emitBlockFunctionBodyOnSingleLine(body) {\n    emitBlockFunctionBodyWorker(\n      body,\n      /*emitBlockFunctionBodyOnSingleLine*/\n      true\n    );\n  }\n  function emitBlockFunctionBodyWorker(body, emitBlockFunctionBodyOnSingleLine2) {\n    const statementOffset = emitPrologueDirectives(body.statements);\n    const pos = writer.getTextPos();\n    emitHelpers(body);\n    if (statementOffset === 0 && pos === writer.getTextPos() && emitBlockFunctionBodyOnSingleLine2) {\n      decreaseIndent();\n      emitList(body, body.statements, 768 /* SingleLineFunctionBodyStatements */);\n      increaseIndent();\n    } else {\n      emitList(\n        body,\n        body.statements,\n        1 /* MultiLineFunctionBodyStatements */,\n        /*parenthesizerRule*/\n        void 0,\n        statementOffset\n      );\n    }\n  }\n  function emitClassDeclaration(node) {\n    emitClassDeclarationOrExpression(node);\n  }\n  function emitClassDeclarationOrExpression(node) {\n    emitDecoratorsAndModifiers(\n      node,\n      node.modifiers,\n      /*allowDecorators*/\n      true\n    );\n    emitTokenWithComment(86 /* ClassKeyword */, moveRangePastModifiers(node).pos, writeKeyword, node);\n    if (node.name) {\n      writeSpace();\n      emitIdentifierName(node.name);\n    }\n    const indentedFlag = getEmitFlags(node) & 131072 /* Indented */;\n    if (indentedFlag) {\n      increaseIndent();\n    }\n    emitTypeParameters(node, node.typeParameters);\n    emitList(node, node.heritageClauses, 0 /* ClassHeritageClauses */);\n    writeSpace();\n    writePunctuation(\"{\");\n    pushNameGenerationScope(node);\n    forEach(node.members, generateMemberNames);\n    emitList(node, node.members, 129 /* ClassMembers */);\n    popNameGenerationScope(node);\n    writePunctuation(\"}\");\n    if (indentedFlag) {\n      decreaseIndent();\n    }\n  }\n  function emitInterfaceDeclaration(node) {\n    emitDecoratorsAndModifiers(\n      node,\n      node.modifiers,\n      /*allowDecorators*/\n      false\n    );\n    writeKeyword(\"interface\");\n    writeSpace();\n    emit(node.name);\n    emitTypeParameters(node, node.typeParameters);\n    emitList(node, node.heritageClauses, 512 /* HeritageClauses */);\n    writeSpace();\n    writePunctuation(\"{\");\n    pushNameGenerationScope(node);\n    forEach(node.members, generateMemberNames);\n    emitList(node, node.members, 129 /* InterfaceMembers */);\n    popNameGenerationScope(node);\n    writePunctuation(\"}\");\n  }\n  function emitTypeAliasDeclaration(node) {\n    emitDecoratorsAndModifiers(\n      node,\n      node.modifiers,\n      /*allowDecorators*/\n      false\n    );\n    writeKeyword(\"type\");\n    writeSpace();\n    emit(node.name);\n    emitTypeParameters(node, node.typeParameters);\n    writeSpace();\n    writePunctuation(\"=\");\n    writeSpace();\n    emit(node.type);\n    writeTrailingSemicolon();\n  }\n  function emitEnumDeclaration(node) {\n    emitDecoratorsAndModifiers(\n      node,\n      node.modifiers,\n      /*allowDecorators*/\n      false\n    );\n    writeKeyword(\"enum\");\n    writeSpace();\n    emit(node.name);\n    writeSpace();\n    writePunctuation(\"{\");\n    emitList(node, node.members, 145 /* EnumMembers */);\n    writePunctuation(\"}\");\n  }\n  function emitModuleDeclaration(node) {\n    emitDecoratorsAndModifiers(\n      node,\n      node.modifiers,\n      /*allowDecorators*/\n      false\n    );\n    if (~node.flags & 2048 /* GlobalAugmentation */) {\n      writeKeyword(node.flags & 32 /* Namespace */ ? \"namespace\" : \"module\");\n      writeSpace();\n    }\n    emit(node.name);\n    let body = node.body;\n    if (!body) return writeTrailingSemicolon();\n    while (body && isModuleDeclaration(body)) {\n      writePunctuation(\".\");\n      emit(body.name);\n      body = body.body;\n    }\n    writeSpace();\n    emit(body);\n  }\n  function emitModuleBlock(node) {\n    pushNameGenerationScope(node);\n    forEach(node.statements, generateNames);\n    emitBlockStatements(\n      node,\n      /*forceSingleLine*/\n      isEmptyBlock(node)\n    );\n    popNameGenerationScope(node);\n  }\n  function emitCaseBlock(node) {\n    emitTokenWithComment(19 /* OpenBraceToken */, node.pos, writePunctuation, node);\n    emitList(node, node.clauses, 129 /* CaseBlockClauses */);\n    emitTokenWithComment(\n      20 /* CloseBraceToken */,\n      node.clauses.end,\n      writePunctuation,\n      node,\n      /*indentLeading*/\n      true\n    );\n  }\n  function emitImportEqualsDeclaration(node) {\n    emitDecoratorsAndModifiers(\n      node,\n      node.modifiers,\n      /*allowDecorators*/\n      false\n    );\n    emitTokenWithComment(102 /* ImportKeyword */, node.modifiers ? node.modifiers.end : node.pos, writeKeyword, node);\n    writeSpace();\n    if (node.isTypeOnly) {\n      emitTokenWithComment(156 /* TypeKeyword */, node.pos, writeKeyword, node);\n      writeSpace();\n    }\n    emit(node.name);\n    writeSpace();\n    emitTokenWithComment(64 /* EqualsToken */, node.name.end, writePunctuation, node);\n    writeSpace();\n    emitModuleReference(node.moduleReference);\n    writeTrailingSemicolon();\n  }\n  function emitModuleReference(node) {\n    if (node.kind === 80 /* Identifier */) {\n      emitExpression(node);\n    } else {\n      emit(node);\n    }\n  }\n  function emitImportDeclaration(node) {\n    emitDecoratorsAndModifiers(\n      node,\n      node.modifiers,\n      /*allowDecorators*/\n      false\n    );\n    emitTokenWithComment(102 /* ImportKeyword */, node.modifiers ? node.modifiers.end : node.pos, writeKeyword, node);\n    writeSpace();\n    if (node.importClause) {\n      emit(node.importClause);\n      writeSpace();\n      emitTokenWithComment(161 /* FromKeyword */, node.importClause.end, writeKeyword, node);\n      writeSpace();\n    }\n    emitExpression(node.moduleSpecifier);\n    if (node.attributes) {\n      emitWithLeadingSpace(node.attributes);\n    }\n    writeTrailingSemicolon();\n  }\n  function emitImportClause(node) {\n    if (node.phaseModifier !== void 0) {\n      emitTokenWithComment(node.phaseModifier, node.pos, writeKeyword, node);\n      writeSpace();\n    }\n    emit(node.name);\n    if (node.name && node.namedBindings) {\n      emitTokenWithComment(28 /* CommaToken */, node.name.end, writePunctuation, node);\n      writeSpace();\n    }\n    emit(node.namedBindings);\n  }\n  function emitNamespaceImport(node) {\n    const asPos = emitTokenWithComment(42 /* AsteriskToken */, node.pos, writePunctuation, node);\n    writeSpace();\n    emitTokenWithComment(130 /* AsKeyword */, asPos, writeKeyword, node);\n    writeSpace();\n    emit(node.name);\n  }\n  function emitNamedImports(node) {\n    emitNamedImportsOrExports(node);\n  }\n  function emitImportSpecifier(node) {\n    emitImportOrExportSpecifier(node);\n  }\n  function emitExportAssignment(node) {\n    const nextPos = emitTokenWithComment(95 /* ExportKeyword */, node.pos, writeKeyword, node);\n    writeSpace();\n    if (node.isExportEquals) {\n      emitTokenWithComment(64 /* EqualsToken */, nextPos, writeOperator, node);\n    } else {\n      emitTokenWithComment(90 /* DefaultKeyword */, nextPos, writeKeyword, node);\n    }\n    writeSpace();\n    emitExpression(\n      node.expression,\n      node.isExportEquals ? parenthesizer.getParenthesizeRightSideOfBinaryForOperator(64 /* EqualsToken */) : parenthesizer.parenthesizeExpressionOfExportDefault\n    );\n    writeTrailingSemicolon();\n  }\n  function emitExportDeclaration(node) {\n    emitDecoratorsAndModifiers(\n      node,\n      node.modifiers,\n      /*allowDecorators*/\n      false\n    );\n    let nextPos = emitTokenWithComment(95 /* ExportKeyword */, node.pos, writeKeyword, node);\n    writeSpace();\n    if (node.isTypeOnly) {\n      nextPos = emitTokenWithComment(156 /* TypeKeyword */, nextPos, writeKeyword, node);\n      writeSpace();\n    }\n    if (node.exportClause) {\n      emit(node.exportClause);\n    } else {\n      nextPos = emitTokenWithComment(42 /* AsteriskToken */, nextPos, writePunctuation, node);\n    }\n    if (node.moduleSpecifier) {\n      writeSpace();\n      const fromPos = node.exportClause ? node.exportClause.end : nextPos;\n      emitTokenWithComment(161 /* FromKeyword */, fromPos, writeKeyword, node);\n      writeSpace();\n      emitExpression(node.moduleSpecifier);\n    }\n    if (node.attributes) {\n      emitWithLeadingSpace(node.attributes);\n    }\n    writeTrailingSemicolon();\n  }\n  function emitImportTypeNodeAttributes(node) {\n    writePunctuation(\"{\");\n    writeSpace();\n    writeKeyword(node.token === 132 /* AssertKeyword */ ? \"assert\" : \"with\");\n    writePunctuation(\":\");\n    writeSpace();\n    const elements = node.elements;\n    emitList(node, elements, 526226 /* ImportAttributes */);\n    writeSpace();\n    writePunctuation(\"}\");\n  }\n  function emitImportAttributes(node) {\n    emitTokenWithComment(node.token, node.pos, writeKeyword, node);\n    writeSpace();\n    const elements = node.elements;\n    emitList(node, elements, 526226 /* ImportAttributes */);\n  }\n  function emitImportAttribute(node) {\n    emit(node.name);\n    writePunctuation(\":\");\n    writeSpace();\n    const value = node.value;\n    if ((getEmitFlags(value) & 1024 /* NoLeadingComments */) === 0) {\n      const commentRange = getCommentRange(value);\n      emitTrailingCommentsOfPosition(commentRange.pos);\n    }\n    emit(value);\n  }\n  function emitNamespaceExportDeclaration(node) {\n    let nextPos = emitTokenWithComment(95 /* ExportKeyword */, node.pos, writeKeyword, node);\n    writeSpace();\n    nextPos = emitTokenWithComment(130 /* AsKeyword */, nextPos, writeKeyword, node);\n    writeSpace();\n    nextPos = emitTokenWithComment(145 /* NamespaceKeyword */, nextPos, writeKeyword, node);\n    writeSpace();\n    emit(node.name);\n    writeTrailingSemicolon();\n  }\n  function emitNamespaceExport(node) {\n    const asPos = emitTokenWithComment(42 /* AsteriskToken */, node.pos, writePunctuation, node);\n    writeSpace();\n    emitTokenWithComment(130 /* AsKeyword */, asPos, writeKeyword, node);\n    writeSpace();\n    emit(node.name);\n  }\n  function emitNamedExports(node) {\n    emitNamedImportsOrExports(node);\n  }\n  function emitExportSpecifier(node) {\n    emitImportOrExportSpecifier(node);\n  }\n  function emitNamedImportsOrExports(node) {\n    writePunctuation(\"{\");\n    emitList(node, node.elements, 525136 /* NamedImportsOrExportsElements */);\n    writePunctuation(\"}\");\n  }\n  function emitImportOrExportSpecifier(node) {\n    if (node.isTypeOnly) {\n      writeKeyword(\"type\");\n      writeSpace();\n    }\n    if (node.propertyName) {\n      emit(node.propertyName);\n      writeSpace();\n      emitTokenWithComment(130 /* AsKeyword */, node.propertyName.end, writeKeyword, node);\n      writeSpace();\n    }\n    emit(node.name);\n  }\n  function emitExternalModuleReference(node) {\n    writeKeyword(\"require\");\n    writePunctuation(\"(\");\n    emitExpression(node.expression);\n    writePunctuation(\")\");\n  }\n  function emitJsxElement(node) {\n    emit(node.openingElement);\n    emitList(node, node.children, 262144 /* JsxElementOrFragmentChildren */);\n    emit(node.closingElement);\n  }\n  function emitJsxSelfClosingElement(node) {\n    writePunctuation(\"<\");\n    emitJsxTagName(node.tagName);\n    emitTypeArguments(node, node.typeArguments);\n    writeSpace();\n    emit(node.attributes);\n    writePunctuation(\"/>\");\n  }\n  function emitJsxFragment(node) {\n    emit(node.openingFragment);\n    emitList(node, node.children, 262144 /* JsxElementOrFragmentChildren */);\n    emit(node.closingFragment);\n  }\n  function emitJsxOpeningElementOrFragment(node) {\n    writePunctuation(\"<\");\n    if (isJsxOpeningElement(node)) {\n      const indented = writeLineSeparatorsAndIndentBefore(node.tagName, node);\n      emitJsxTagName(node.tagName);\n      emitTypeArguments(node, node.typeArguments);\n      if (node.attributes.properties && node.attributes.properties.length > 0) {\n        writeSpace();\n      }\n      emit(node.attributes);\n      writeLineSeparatorsAfter(node.attributes, node);\n      decreaseIndentIf(indented);\n    }\n    writePunctuation(\">\");\n  }\n  function emitJsxText(node) {\n    writer.writeLiteral(node.text);\n  }\n  function emitJsxClosingElementOrFragment(node) {\n    writePunctuation(\"</\");\n    if (isJsxClosingElement(node)) {\n      emitJsxTagName(node.tagName);\n    }\n    writePunctuation(\">\");\n  }\n  function emitJsxAttributes(node) {\n    emitList(node, node.properties, 262656 /* JsxElementAttributes */);\n  }\n  function emitJsxAttribute(node) {\n    emit(node.name);\n    emitNodeWithPrefix(\"=\", writePunctuation, node.initializer, emitJsxAttributeValue);\n  }\n  function emitJsxSpreadAttribute(node) {\n    writePunctuation(\"{...\");\n    emitExpression(node.expression);\n    writePunctuation(\"}\");\n  }\n  function hasTrailingCommentsAtPosition(pos) {\n    let result = false;\n    forEachTrailingCommentRange((currentSourceFile == null ? void 0 : currentSourceFile.text) || \"\", pos + 1, () => result = true);\n    return result;\n  }\n  function hasLeadingCommentsAtPosition(pos) {\n    let result = false;\n    forEachLeadingCommentRange((currentSourceFile == null ? void 0 : currentSourceFile.text) || \"\", pos + 1, () => result = true);\n    return result;\n  }\n  function hasCommentsAtPosition(pos) {\n    return hasTrailingCommentsAtPosition(pos) || hasLeadingCommentsAtPosition(pos);\n  }\n  function emitJsxExpression(node) {\n    var _a;\n    if (node.expression || !commentsDisabled && !nodeIsSynthesized(node) && hasCommentsAtPosition(node.pos)) {\n      const isMultiline = currentSourceFile && !nodeIsSynthesized(node) && getLineAndCharacterOfPosition(currentSourceFile, node.pos).line !== getLineAndCharacterOfPosition(currentSourceFile, node.end).line;\n      if (isMultiline) {\n        writer.increaseIndent();\n      }\n      const end = emitTokenWithComment(19 /* OpenBraceToken */, node.pos, writePunctuation, node);\n      emit(node.dotDotDotToken);\n      emitExpression(node.expression);\n      emitTokenWithComment(20 /* CloseBraceToken */, ((_a = node.expression) == null ? void 0 : _a.end) || end, writePunctuation, node);\n      if (isMultiline) {\n        writer.decreaseIndent();\n      }\n    }\n  }\n  function emitJsxNamespacedName(node) {\n    emitIdentifierName(node.namespace);\n    writePunctuation(\":\");\n    emitIdentifierName(node.name);\n  }\n  function emitJsxTagName(node) {\n    if (node.kind === 80 /* Identifier */) {\n      emitExpression(node);\n    } else {\n      emit(node);\n    }\n  }\n  function emitCaseClause(node) {\n    emitTokenWithComment(84 /* CaseKeyword */, node.pos, writeKeyword, node);\n    writeSpace();\n    emitExpression(node.expression, parenthesizer.parenthesizeExpressionForDisallowedComma);\n    emitCaseOrDefaultClauseRest(node, node.statements, node.expression.end);\n  }\n  function emitDefaultClause(node) {\n    const pos = emitTokenWithComment(90 /* DefaultKeyword */, node.pos, writeKeyword, node);\n    emitCaseOrDefaultClauseRest(node, node.statements, pos);\n  }\n  function emitCaseOrDefaultClauseRest(parentNode, statements, colonPos) {\n    const emitAsSingleStatement = statements.length === 1 && // treat synthesized nodes as located on the same line for emit purposes\n    (!currentSourceFile || nodeIsSynthesized(parentNode) || nodeIsSynthesized(statements[0]) || rangeStartPositionsAreOnSameLine(parentNode, statements[0], currentSourceFile));\n    let format = 163969 /* CaseOrDefaultClauseStatements */;\n    if (emitAsSingleStatement) {\n      writeToken(59 /* ColonToken */, colonPos, writePunctuation, parentNode);\n      writeSpace();\n      format &= ~(1 /* MultiLine */ | 128 /* Indented */);\n    } else {\n      emitTokenWithComment(59 /* ColonToken */, colonPos, writePunctuation, parentNode);\n    }\n    emitList(parentNode, statements, format);\n  }\n  function emitHeritageClause(node) {\n    writeSpace();\n    writeTokenText(node.token, writeKeyword);\n    writeSpace();\n    emitList(node, node.types, 528 /* HeritageClauseTypes */);\n  }\n  function emitCatchClause(node) {\n    const openParenPos = emitTokenWithComment(85 /* CatchKeyword */, node.pos, writeKeyword, node);\n    writeSpace();\n    if (node.variableDeclaration) {\n      emitTokenWithComment(21 /* OpenParenToken */, openParenPos, writePunctuation, node);\n      emit(node.variableDeclaration);\n      emitTokenWithComment(22 /* CloseParenToken */, node.variableDeclaration.end, writePunctuation, node);\n      writeSpace();\n    }\n    emit(node.block);\n  }\n  function emitPropertyAssignment(node) {\n    emit(node.name);\n    writePunctuation(\":\");\n    writeSpace();\n    const initializer = node.initializer;\n    if ((getEmitFlags(initializer) & 1024 /* NoLeadingComments */) === 0) {\n      const commentRange = getCommentRange(initializer);\n      emitTrailingCommentsOfPosition(commentRange.pos);\n    }\n    emitExpression(initializer, parenthesizer.parenthesizeExpressionForDisallowedComma);\n  }\n  function emitShorthandPropertyAssignment(node) {\n    emit(node.name);\n    if (node.objectAssignmentInitializer) {\n      writeSpace();\n      writePunctuation(\"=\");\n      writeSpace();\n      emitExpression(node.objectAssignmentInitializer, parenthesizer.parenthesizeExpressionForDisallowedComma);\n    }\n  }\n  function emitSpreadAssignment(node) {\n    if (node.expression) {\n      emitTokenWithComment(26 /* DotDotDotToken */, node.pos, writePunctuation, node);\n      emitExpression(node.expression, parenthesizer.parenthesizeExpressionForDisallowedComma);\n    }\n  }\n  function emitEnumMember(node) {\n    emit(node.name);\n    emitInitializer(node.initializer, node.name.end, node, parenthesizer.parenthesizeExpressionForDisallowedComma);\n  }\n  function emitJSDoc(node) {\n    write(\"/**\");\n    if (node.comment) {\n      const text = getTextOfJSDocComment(node.comment);\n      if (text) {\n        const lines = text.split(/\\r\\n?|\\n/);\n        for (const line of lines) {\n          writeLine();\n          writeSpace();\n          writePunctuation(\"*\");\n          writeSpace();\n          write(line);\n        }\n      }\n    }\n    if (node.tags) {\n      if (node.tags.length === 1 && node.tags[0].kind === 345 /* JSDocTypeTag */ && !node.comment) {\n        writeSpace();\n        emit(node.tags[0]);\n      } else {\n        emitList(node, node.tags, 33 /* JSDocComment */);\n      }\n    }\n    writeSpace();\n    write(\"*/\");\n  }\n  function emitJSDocSimpleTypedTag(tag) {\n    emitJSDocTagName(tag.tagName);\n    emitJSDocTypeExpression(tag.typeExpression);\n    emitJSDocComment(tag.comment);\n  }\n  function emitJSDocSeeTag(tag) {\n    emitJSDocTagName(tag.tagName);\n    emit(tag.name);\n    emitJSDocComment(tag.comment);\n  }\n  function emitJSDocImportTag(tag) {\n    emitJSDocTagName(tag.tagName);\n    writeSpace();\n    if (tag.importClause) {\n      emit(tag.importClause);\n      writeSpace();\n      emitTokenWithComment(161 /* FromKeyword */, tag.importClause.end, writeKeyword, tag);\n      writeSpace();\n    }\n    emitExpression(tag.moduleSpecifier);\n    if (tag.attributes) {\n      emitWithLeadingSpace(tag.attributes);\n    }\n    emitJSDocComment(tag.comment);\n  }\n  function emitJSDocNameReference(node) {\n    writeSpace();\n    writePunctuation(\"{\");\n    emit(node.name);\n    writePunctuation(\"}\");\n  }\n  function emitJSDocHeritageTag(tag) {\n    emitJSDocTagName(tag.tagName);\n    writeSpace();\n    writePunctuation(\"{\");\n    emit(tag.class);\n    writePunctuation(\"}\");\n    emitJSDocComment(tag.comment);\n  }\n  function emitJSDocTemplateTag(tag) {\n    emitJSDocTagName(tag.tagName);\n    emitJSDocTypeExpression(tag.constraint);\n    writeSpace();\n    emitList(tag, tag.typeParameters, 528 /* CommaListElements */);\n    emitJSDocComment(tag.comment);\n  }\n  function emitJSDocTypedefTag(tag) {\n    emitJSDocTagName(tag.tagName);\n    if (tag.typeExpression) {\n      if (tag.typeExpression.kind === 310 /* JSDocTypeExpression */) {\n        emitJSDocTypeExpression(tag.typeExpression);\n      } else {\n        writeSpace();\n        writePunctuation(\"{\");\n        write(\"Object\");\n        if (tag.typeExpression.isArrayType) {\n          writePunctuation(\"[\");\n          writePunctuation(\"]\");\n        }\n        writePunctuation(\"}\");\n      }\n    }\n    if (tag.fullName) {\n      writeSpace();\n      emit(tag.fullName);\n    }\n    emitJSDocComment(tag.comment);\n    if (tag.typeExpression && tag.typeExpression.kind === 323 /* JSDocTypeLiteral */) {\n      emitJSDocTypeLiteral(tag.typeExpression);\n    }\n  }\n  function emitJSDocCallbackTag(tag) {\n    emitJSDocTagName(tag.tagName);\n    if (tag.name) {\n      writeSpace();\n      emit(tag.name);\n    }\n    emitJSDocComment(tag.comment);\n    emitJSDocSignature(tag.typeExpression);\n  }\n  function emitJSDocOverloadTag(tag) {\n    emitJSDocComment(tag.comment);\n    emitJSDocSignature(tag.typeExpression);\n  }\n  function emitJSDocSimpleTag(tag) {\n    emitJSDocTagName(tag.tagName);\n    emitJSDocComment(tag.comment);\n  }\n  function emitJSDocTypeLiteral(lit) {\n    emitList(lit, factory.createNodeArray(lit.jsDocPropertyTags), 33 /* JSDocComment */);\n  }\n  function emitJSDocSignature(sig) {\n    if (sig.typeParameters) {\n      emitList(sig, factory.createNodeArray(sig.typeParameters), 33 /* JSDocComment */);\n    }\n    if (sig.parameters) {\n      emitList(sig, factory.createNodeArray(sig.parameters), 33 /* JSDocComment */);\n    }\n    if (sig.type) {\n      writeLine();\n      writeSpace();\n      writePunctuation(\"*\");\n      writeSpace();\n      emit(sig.type);\n    }\n  }\n  function emitJSDocPropertyLikeTag(param) {\n    emitJSDocTagName(param.tagName);\n    emitJSDocTypeExpression(param.typeExpression);\n    writeSpace();\n    if (param.isBracketed) {\n      writePunctuation(\"[\");\n    }\n    emit(param.name);\n    if (param.isBracketed) {\n      writePunctuation(\"]\");\n    }\n    emitJSDocComment(param.comment);\n  }\n  function emitJSDocTagName(tagName) {\n    writePunctuation(\"@\");\n    emit(tagName);\n  }\n  function emitJSDocComment(comment) {\n    const text = getTextOfJSDocComment(comment);\n    if (text) {\n      writeSpace();\n      write(text);\n    }\n  }\n  function emitJSDocTypeExpression(typeExpression) {\n    if (typeExpression) {\n      writeSpace();\n      writePunctuation(\"{\");\n      emit(typeExpression.type);\n      writePunctuation(\"}\");\n    }\n  }\n  function emitSourceFile(node) {\n    writeLine();\n    const statements = node.statements;\n    const shouldEmitDetachedComment = statements.length === 0 || !isPrologueDirective(statements[0]) || nodeIsSynthesized(statements[0]);\n    if (shouldEmitDetachedComment) {\n      emitBodyWithDetachedComments(node, statements, emitSourceFileWorker);\n      return;\n    }\n    emitSourceFileWorker(node);\n  }\n  function emitSyntheticTripleSlashReferencesIfNeeded(node) {\n    emitTripleSlashDirectives(!!node.hasNoDefaultLib, node.syntheticFileReferences || [], node.syntheticTypeReferences || [], node.syntheticLibReferences || []);\n  }\n  function emitTripleSlashDirectivesIfNeeded(node) {\n    if (node.isDeclarationFile) emitTripleSlashDirectives(node.hasNoDefaultLib, node.referencedFiles, node.typeReferenceDirectives, node.libReferenceDirectives);\n  }\n  function emitTripleSlashDirectives(hasNoDefaultLib, files, types, libs2) {\n    if (hasNoDefaultLib) {\n      writeComment(`/// <reference no-default-lib=\"true\"/>`);\n      writeLine();\n    }\n    if (currentSourceFile && currentSourceFile.moduleName) {\n      writeComment(`/// <amd-module name=\"${currentSourceFile.moduleName}\" />`);\n      writeLine();\n    }\n    if (currentSourceFile && currentSourceFile.amdDependencies) {\n      for (const dep of currentSourceFile.amdDependencies) {\n        if (dep.name) {\n          writeComment(`/// <amd-dependency name=\"${dep.name}\" path=\"${dep.path}\" />`);\n        } else {\n          writeComment(`/// <amd-dependency path=\"${dep.path}\" />`);\n        }\n        writeLine();\n      }\n    }\n    function writeDirectives(kind, directives) {\n      for (const directive of directives) {\n        const resolutionMode = directive.resolutionMode ? `resolution-mode=\"${directive.resolutionMode === 99 /* ESNext */ ? \"import\" : \"require\"}\" ` : \"\";\n        const preserve = directive.preserve ? `preserve=\"true\" ` : \"\";\n        writeComment(`/// <reference ${kind}=\"${directive.fileName}\" ${resolutionMode}${preserve}/>`);\n        writeLine();\n      }\n    }\n    writeDirectives(\"path\", files);\n    writeDirectives(\"types\", types);\n    writeDirectives(\"lib\", libs2);\n  }\n  function emitSourceFileWorker(node) {\n    const statements = node.statements;\n    pushNameGenerationScope(node);\n    forEach(node.statements, generateNames);\n    emitHelpers(node);\n    const index = findIndex(statements, (statement) => !isPrologueDirective(statement));\n    emitTripleSlashDirectivesIfNeeded(node);\n    emitList(\n      node,\n      statements,\n      1 /* MultiLine */,\n      /*parenthesizerRule*/\n      void 0,\n      index === -1 ? statements.length : index\n    );\n    popNameGenerationScope(node);\n  }\n  function emitPartiallyEmittedExpression(node) {\n    const emitFlags = getEmitFlags(node);\n    if (!(emitFlags & 1024 /* NoLeadingComments */) && node.pos !== node.expression.pos) {\n      emitTrailingCommentsOfPosition(node.expression.pos);\n    }\n    emitExpression(node.expression);\n    if (!(emitFlags & 2048 /* NoTrailingComments */) && node.end !== node.expression.end) {\n      emitLeadingCommentsOfPosition(node.expression.end);\n    }\n  }\n  function emitCommaList(node) {\n    emitExpressionList(\n      node,\n      node.elements,\n      528 /* CommaListElements */,\n      /*parenthesizerRule*/\n      void 0\n    );\n  }\n  function emitPrologueDirectives(statements, sourceFile, seenPrologueDirectives) {\n    let needsToSetSourceFile = !!sourceFile;\n    for (let i = 0; i < statements.length; i++) {\n      const statement = statements[i];\n      if (isPrologueDirective(statement)) {\n        const shouldEmitPrologueDirective = seenPrologueDirectives ? !seenPrologueDirectives.has(statement.expression.text) : true;\n        if (shouldEmitPrologueDirective) {\n          if (needsToSetSourceFile) {\n            needsToSetSourceFile = false;\n            setSourceFile(sourceFile);\n          }\n          writeLine();\n          emit(statement);\n          if (seenPrologueDirectives) {\n            seenPrologueDirectives.add(statement.expression.text);\n          }\n        }\n      } else {\n        return i;\n      }\n    }\n    return statements.length;\n  }\n  function emitPrologueDirectivesIfNeeded(sourceFileOrBundle) {\n    if (isSourceFile(sourceFileOrBundle)) {\n      emitPrologueDirectives(sourceFileOrBundle.statements, sourceFileOrBundle);\n    } else {\n      const seenPrologueDirectives = /* @__PURE__ */ new Set();\n      for (const sourceFile of sourceFileOrBundle.sourceFiles) {\n        emitPrologueDirectives(sourceFile.statements, sourceFile, seenPrologueDirectives);\n      }\n      setSourceFile(void 0);\n    }\n  }\n  function emitShebangIfNeeded(sourceFileOrBundle) {\n    if (isSourceFile(sourceFileOrBundle)) {\n      const shebang = getShebang(sourceFileOrBundle.text);\n      if (shebang) {\n        writeComment(shebang);\n        writeLine();\n        return true;\n      }\n    } else {\n      for (const sourceFile of sourceFileOrBundle.sourceFiles) {\n        if (emitShebangIfNeeded(sourceFile)) {\n          return true;\n        }\n      }\n    }\n  }\n  function emitNodeWithWriter(node, writer2) {\n    if (!node) return;\n    const savedWrite = write;\n    write = writer2;\n    emit(node);\n    write = savedWrite;\n  }\n  function emitDecoratorsAndModifiers(node, modifiers, allowDecorators) {\n    if (modifiers == null ? void 0 : modifiers.length) {\n      if (every(modifiers, isModifier)) {\n        return emitModifierList(node, modifiers);\n      }\n      if (every(modifiers, isDecorator)) {\n        if (allowDecorators) {\n          return emitDecoratorList(node, modifiers);\n        }\n        return node.pos;\n      }\n      onBeforeEmitNodeArray == null ? void 0 : onBeforeEmitNodeArray(modifiers);\n      let lastMode;\n      let mode;\n      let start = 0;\n      let pos = 0;\n      let lastModifier;\n      while (start < modifiers.length) {\n        while (pos < modifiers.length) {\n          lastModifier = modifiers[pos];\n          mode = isDecorator(lastModifier) ? \"decorators\" : \"modifiers\";\n          if (lastMode === void 0) {\n            lastMode = mode;\n          } else if (mode !== lastMode) {\n            break;\n          }\n          pos++;\n        }\n        const textRange = { pos: -1, end: -1 };\n        if (start === 0) textRange.pos = modifiers.pos;\n        if (pos === modifiers.length - 1) textRange.end = modifiers.end;\n        if (lastMode === \"modifiers\" || allowDecorators) {\n          emitNodeListItems(\n            emit,\n            node,\n            modifiers,\n            lastMode === \"modifiers\" ? 2359808 /* Modifiers */ : 2146305 /* Decorators */,\n            /*parenthesizerRule*/\n            void 0,\n            start,\n            pos - start,\n            /*hasTrailingComma*/\n            false,\n            textRange\n          );\n        }\n        start = pos;\n        lastMode = mode;\n        pos++;\n      }\n      onAfterEmitNodeArray == null ? void 0 : onAfterEmitNodeArray(modifiers);\n      if (lastModifier && !positionIsSynthesized(lastModifier.end)) {\n        return lastModifier.end;\n      }\n    }\n    return node.pos;\n  }\n  function emitModifierList(node, modifiers) {\n    emitList(node, modifiers, 2359808 /* Modifiers */);\n    const lastModifier = lastOrUndefined(modifiers);\n    return lastModifier && !positionIsSynthesized(lastModifier.end) ? lastModifier.end : node.pos;\n  }\n  function emitTypeAnnotation(node) {\n    if (node) {\n      writePunctuation(\":\");\n      writeSpace();\n      emit(node);\n    }\n  }\n  function emitInitializer(node, equalCommentStartPos, container, parenthesizerRule) {\n    if (node) {\n      writeSpace();\n      emitTokenWithComment(64 /* EqualsToken */, equalCommentStartPos, writeOperator, container);\n      writeSpace();\n      emitExpression(node, parenthesizerRule);\n    }\n  }\n  function emitNodeWithPrefix(prefix, prefixWriter, node, emit2) {\n    if (node) {\n      prefixWriter(prefix);\n      emit2(node);\n    }\n  }\n  function emitWithLeadingSpace(node) {\n    if (node) {\n      writeSpace();\n      emit(node);\n    }\n  }\n  function emitExpressionWithLeadingSpace(node, parenthesizerRule) {\n    if (node) {\n      writeSpace();\n      emitExpression(node, parenthesizerRule);\n    }\n  }\n  function emitWithTrailingSpace(node) {\n    if (node) {\n      emit(node);\n      writeSpace();\n    }\n  }\n  function emitEmbeddedStatement(parent2, node) {\n    if (isBlock(node) || getEmitFlags(parent2) & 1 /* SingleLine */ || preserveSourceNewlines && !getLeadingLineTerminatorCount(parent2, node, 0 /* None */)) {\n      writeSpace();\n      emit(node);\n    } else {\n      writeLine();\n      increaseIndent();\n      if (isEmptyStatement(node)) {\n        pipelineEmit(5 /* EmbeddedStatement */, node);\n      } else {\n        emit(node);\n      }\n      decreaseIndent();\n    }\n  }\n  function emitDecoratorList(parentNode, decorators) {\n    emitList(parentNode, decorators, 2146305 /* Decorators */);\n    const lastDecorator = lastOrUndefined(decorators);\n    return lastDecorator && !positionIsSynthesized(lastDecorator.end) ? lastDecorator.end : parentNode.pos;\n  }\n  function emitTypeArguments(parentNode, typeArguments) {\n    emitList(parentNode, typeArguments, 53776 /* TypeArguments */, typeArgumentParenthesizerRuleSelector);\n  }\n  function emitTypeParameters(parentNode, typeParameters) {\n    if (isFunctionLike(parentNode) && parentNode.typeArguments) {\n      return emitTypeArguments(parentNode, parentNode.typeArguments);\n    }\n    emitList(parentNode, typeParameters, 53776 /* TypeParameters */ | (isArrowFunction(parentNode) ? 64 /* AllowTrailingComma */ : 0 /* None */));\n  }\n  function emitParameters(parentNode, parameters) {\n    emitList(parentNode, parameters, 2576 /* Parameters */);\n  }\n  function canEmitSimpleArrowHead(parentNode, parameters) {\n    const parameter = singleOrUndefined(parameters);\n    return parameter && parameter.pos === parentNode.pos && isArrowFunction(parentNode) && !parentNode.type && !some(parentNode.modifiers) && !some(parentNode.typeParameters) && !some(parameter.modifiers) && !parameter.dotDotDotToken && !parameter.questionToken && !parameter.type && !parameter.initializer && isIdentifier(parameter.name);\n  }\n  function emitParametersForArrow(parentNode, parameters) {\n    if (canEmitSimpleArrowHead(parentNode, parameters)) {\n      emitList(parentNode, parameters, 2576 /* Parameters */ & ~2048 /* Parenthesis */);\n    } else {\n      emitParameters(parentNode, parameters);\n    }\n  }\n  function emitParametersForIndexSignature(parentNode, parameters) {\n    emitList(parentNode, parameters, 8848 /* IndexSignatureParameters */);\n  }\n  function writeDelimiter(format) {\n    switch (format & 60 /* DelimitersMask */) {\n      case 0 /* None */:\n        break;\n      case 16 /* CommaDelimited */:\n        writePunctuation(\",\");\n        break;\n      case 4 /* BarDelimited */:\n        writeSpace();\n        writePunctuation(\"|\");\n        break;\n      case 32 /* AsteriskDelimited */:\n        writeSpace();\n        writePunctuation(\"*\");\n        writeSpace();\n        break;\n      case 8 /* AmpersandDelimited */:\n        writeSpace();\n        writePunctuation(\"&\");\n        break;\n    }\n  }\n  function emitList(parentNode, children, format, parenthesizerRule, start, count) {\n    emitNodeList(\n      emit,\n      parentNode,\n      children,\n      format | (parentNode && getEmitFlags(parentNode) & 2 /* MultiLine */ ? 65536 /* PreferNewLine */ : 0),\n      parenthesizerRule,\n      start,\n      count\n    );\n  }\n  function emitExpressionList(parentNode, children, format, parenthesizerRule, start, count) {\n    emitNodeList(emitExpression, parentNode, children, format, parenthesizerRule, start, count);\n  }\n  function emitNodeList(emit2, parentNode, children, format, parenthesizerRule, start = 0, count = children ? children.length - start : 0) {\n    const isUndefined = children === void 0;\n    if (isUndefined && format & 16384 /* OptionalIfUndefined */) {\n      return;\n    }\n    const isEmpty = children === void 0 || start >= children.length || count === 0;\n    if (isEmpty && format & 32768 /* OptionalIfEmpty */) {\n      onBeforeEmitNodeArray == null ? void 0 : onBeforeEmitNodeArray(children);\n      onAfterEmitNodeArray == null ? void 0 : onAfterEmitNodeArray(children);\n      return;\n    }\n    if (format & 15360 /* BracketsMask */) {\n      writePunctuation(getOpeningBracket(format));\n      if (isEmpty && children) {\n        emitTrailingCommentsOfPosition(\n          children.pos,\n          /*prefixSpace*/\n          true\n        );\n      }\n    }\n    onBeforeEmitNodeArray == null ? void 0 : onBeforeEmitNodeArray(children);\n    if (isEmpty) {\n      if (format & 1 /* MultiLine */ && !(preserveSourceNewlines && (!parentNode || currentSourceFile && rangeIsOnSingleLine(parentNode, currentSourceFile)))) {\n        writeLine();\n      } else if (format & 256 /* SpaceBetweenBraces */ && !(format & 524288 /* NoSpaceIfEmpty */)) {\n        writeSpace();\n      }\n    } else {\n      emitNodeListItems(emit2, parentNode, children, format, parenthesizerRule, start, count, children.hasTrailingComma, children);\n    }\n    onAfterEmitNodeArray == null ? void 0 : onAfterEmitNodeArray(children);\n    if (format & 15360 /* BracketsMask */) {\n      if (isEmpty && children) {\n        emitLeadingCommentsOfPosition(children.end);\n      }\n      writePunctuation(getClosingBracket(format));\n    }\n  }\n  function emitNodeListItems(emit2, parentNode, children, format, parenthesizerRule, start, count, hasTrailingComma, childrenTextRange) {\n    const mayEmitInterveningComments = (format & 262144 /* NoInterveningComments */) === 0;\n    let shouldEmitInterveningComments = mayEmitInterveningComments;\n    const leadingLineTerminatorCount = getLeadingLineTerminatorCount(parentNode, children[start], format);\n    if (leadingLineTerminatorCount) {\n      writeLine(leadingLineTerminatorCount);\n      shouldEmitInterveningComments = false;\n    } else if (format & 256 /* SpaceBetweenBraces */) {\n      writeSpace();\n    }\n    if (format & 128 /* Indented */) {\n      increaseIndent();\n    }\n    const emitListItem = getEmitListItem(emit2, parenthesizerRule);\n    let previousSibling;\n    let shouldDecreaseIndentAfterEmit = false;\n    for (let i = 0; i < count; i++) {\n      const child = children[start + i];\n      if (format & 32 /* AsteriskDelimited */) {\n        writeLine();\n        writeDelimiter(format);\n      } else if (previousSibling) {\n        if (format & 60 /* DelimitersMask */ && previousSibling.end !== (parentNode ? parentNode.end : -1)) {\n          const previousSiblingEmitFlags = getEmitFlags(previousSibling);\n          if (!(previousSiblingEmitFlags & 2048 /* NoTrailingComments */)) {\n            emitLeadingCommentsOfPosition(previousSibling.end);\n          }\n        }\n        writeDelimiter(format);\n        const separatingLineTerminatorCount = getSeparatingLineTerminatorCount(previousSibling, child, format);\n        if (separatingLineTerminatorCount > 0) {\n          if ((format & (3 /* LinesMask */ | 128 /* Indented */)) === 0 /* SingleLine */) {\n            increaseIndent();\n            shouldDecreaseIndentAfterEmit = true;\n          }\n          if (shouldEmitInterveningComments && format & 60 /* DelimitersMask */ && !positionIsSynthesized(child.pos)) {\n            const commentRange = getCommentRange(child);\n            emitTrailingCommentsOfPosition(\n              commentRange.pos,\n              /*prefixSpace*/\n              !!(format & 512 /* SpaceBetweenSiblings */),\n              /*forceNoNewline*/\n              true\n            );\n          }\n          writeLine(separatingLineTerminatorCount);\n          shouldEmitInterveningComments = false;\n        } else if (previousSibling && format & 512 /* SpaceBetweenSiblings */) {\n          writeSpace();\n        }\n      }\n      if (shouldEmitInterveningComments) {\n        const commentRange = getCommentRange(child);\n        emitTrailingCommentsOfPosition(commentRange.pos);\n      } else {\n        shouldEmitInterveningComments = mayEmitInterveningComments;\n      }\n      nextListElementPos = child.pos;\n      emitListItem(child, emit2, parenthesizerRule, i);\n      if (shouldDecreaseIndentAfterEmit) {\n        decreaseIndent();\n        shouldDecreaseIndentAfterEmit = false;\n      }\n      previousSibling = child;\n    }\n    const emitFlags = previousSibling ? getEmitFlags(previousSibling) : 0;\n    const skipTrailingComments = commentsDisabled || !!(emitFlags & 2048 /* NoTrailingComments */);\n    const emitTrailingComma = hasTrailingComma && format & 64 /* AllowTrailingComma */ && format & 16 /* CommaDelimited */;\n    if (emitTrailingComma) {\n      if (previousSibling && !skipTrailingComments) {\n        emitTokenWithComment(28 /* CommaToken */, previousSibling.end, writePunctuation, previousSibling);\n      } else {\n        writePunctuation(\",\");\n      }\n    }\n    if (previousSibling && (parentNode ? parentNode.end : -1) !== previousSibling.end && format & 60 /* DelimitersMask */ && !skipTrailingComments) {\n      emitLeadingCommentsOfPosition(emitTrailingComma && (childrenTextRange == null ? void 0 : childrenTextRange.end) ? childrenTextRange.end : previousSibling.end);\n    }\n    if (format & 128 /* Indented */) {\n      decreaseIndent();\n    }\n    const closingLineTerminatorCount = getClosingLineTerminatorCount(parentNode, children[start + count - 1], format, childrenTextRange);\n    if (closingLineTerminatorCount) {\n      writeLine(closingLineTerminatorCount);\n    } else if (format & (2097152 /* SpaceAfterList */ | 256 /* SpaceBetweenBraces */)) {\n      writeSpace();\n    }\n  }\n  function writeLiteral(s) {\n    writer.writeLiteral(s);\n  }\n  function writeStringLiteral(s) {\n    writer.writeStringLiteral(s);\n  }\n  function writeBase(s) {\n    writer.write(s);\n  }\n  function writeSymbol(s, sym) {\n    writer.writeSymbol(s, sym);\n  }\n  function writePunctuation(s) {\n    writer.writePunctuation(s);\n  }\n  function writeTrailingSemicolon() {\n    writer.writeTrailingSemicolon(\";\");\n  }\n  function writeKeyword(s) {\n    writer.writeKeyword(s);\n  }\n  function writeOperator(s) {\n    writer.writeOperator(s);\n  }\n  function writeParameter(s) {\n    writer.writeParameter(s);\n  }\n  function writeComment(s) {\n    writer.writeComment(s);\n  }\n  function writeSpace() {\n    writer.writeSpace(\" \");\n  }\n  function writeProperty(s) {\n    writer.writeProperty(s);\n  }\n  function nonEscapingWrite(s) {\n    if (writer.nonEscapingWrite) {\n      writer.nonEscapingWrite(s);\n    } else {\n      writer.write(s);\n    }\n  }\n  function writeLine(count = 1) {\n    for (let i = 0; i < count; i++) {\n      writer.writeLine(i > 0);\n    }\n  }\n  function increaseIndent() {\n    writer.increaseIndent();\n  }\n  function decreaseIndent() {\n    writer.decreaseIndent();\n  }\n  function writeToken(token, pos, writer2, contextNode) {\n    return !sourceMapsDisabled ? emitTokenWithSourceMap(contextNode, token, writer2, pos, writeTokenText) : writeTokenText(token, writer2, pos);\n  }\n  function writeTokenNode(node, writer2) {\n    if (onBeforeEmitToken) {\n      onBeforeEmitToken(node);\n    }\n    writer2(tokenToString(node.kind));\n    if (onAfterEmitToken) {\n      onAfterEmitToken(node);\n    }\n  }\n  function writeTokenText(token, writer2, pos) {\n    const tokenString = tokenToString(token);\n    writer2(tokenString);\n    return pos < 0 ? pos : pos + tokenString.length;\n  }\n  function writeLineOrSpace(parentNode, prevChildNode, nextChildNode) {\n    if (getEmitFlags(parentNode) & 1 /* SingleLine */) {\n      writeSpace();\n    } else if (preserveSourceNewlines) {\n      const lines = getLinesBetweenNodes(parentNode, prevChildNode, nextChildNode);\n      if (lines) {\n        writeLine(lines);\n      } else {\n        writeSpace();\n      }\n    } else {\n      writeLine();\n    }\n  }\n  function writeLines(text) {\n    const lines = text.split(/\\r\\n?|\\n/);\n    const indentation = guessIndentation(lines);\n    for (const lineText of lines) {\n      const line = indentation ? lineText.slice(indentation) : lineText;\n      if (line.length) {\n        writeLine();\n        write(line);\n      }\n    }\n  }\n  function writeLinesAndIndent(lineCount, writeSpaceIfNotIndenting) {\n    if (lineCount) {\n      increaseIndent();\n      writeLine(lineCount);\n    } else if (writeSpaceIfNotIndenting) {\n      writeSpace();\n    }\n  }\n  function decreaseIndentIf(value1, value2) {\n    if (value1) {\n      decreaseIndent();\n    }\n    if (value2) {\n      decreaseIndent();\n    }\n  }\n  function getLeadingLineTerminatorCount(parentNode, firstChild, format) {\n    if (format & 2 /* PreserveLines */ || preserveSourceNewlines) {\n      if (format & 65536 /* PreferNewLine */) {\n        return 1;\n      }\n      if (firstChild === void 0) {\n        return !parentNode || currentSourceFile && rangeIsOnSingleLine(parentNode, currentSourceFile) ? 0 : 1;\n      }\n      if (firstChild.pos === nextListElementPos) {\n        return 0;\n      }\n      if (firstChild.kind === 12 /* JsxText */) {\n        return 0;\n      }\n      if (currentSourceFile && parentNode && !positionIsSynthesized(parentNode.pos) && !nodeIsSynthesized(firstChild) && (!firstChild.parent || getOriginalNode(firstChild.parent) === getOriginalNode(parentNode))) {\n        if (preserveSourceNewlines) {\n          return getEffectiveLines(\n            (includeComments) => getLinesBetweenPositionAndPrecedingNonWhitespaceCharacter(\n              firstChild.pos,\n              parentNode.pos,\n              currentSourceFile,\n              includeComments\n            )\n          );\n        }\n        return rangeStartPositionsAreOnSameLine(parentNode, firstChild, currentSourceFile) ? 0 : 1;\n      }\n      if (synthesizedNodeStartsOnNewLine(firstChild, format)) {\n        return 1;\n      }\n    }\n    return format & 1 /* MultiLine */ ? 1 : 0;\n  }\n  function getSeparatingLineTerminatorCount(previousNode, nextNode, format) {\n    if (format & 2 /* PreserveLines */ || preserveSourceNewlines) {\n      if (previousNode === void 0 || nextNode === void 0) {\n        return 0;\n      }\n      if (nextNode.kind === 12 /* JsxText */) {\n        return 0;\n      } else if (currentSourceFile && !nodeIsSynthesized(previousNode) && !nodeIsSynthesized(nextNode)) {\n        if (preserveSourceNewlines && siblingNodePositionsAreComparable(previousNode, nextNode)) {\n          return getEffectiveLines(\n            (includeComments) => getLinesBetweenRangeEndAndRangeStart(\n              previousNode,\n              nextNode,\n              currentSourceFile,\n              includeComments\n            )\n          );\n        } else if (!preserveSourceNewlines && originalNodesHaveSameParent(previousNode, nextNode)) {\n          return rangeEndIsOnSameLineAsRangeStart(previousNode, nextNode, currentSourceFile) ? 0 : 1;\n        }\n        return format & 65536 /* PreferNewLine */ ? 1 : 0;\n      } else if (synthesizedNodeStartsOnNewLine(previousNode, format) || synthesizedNodeStartsOnNewLine(nextNode, format)) {\n        return 1;\n      }\n    } else if (getStartsOnNewLine(nextNode)) {\n      return 1;\n    }\n    return format & 1 /* MultiLine */ ? 1 : 0;\n  }\n  function getClosingLineTerminatorCount(parentNode, lastChild, format, childrenTextRange) {\n    if (format & 2 /* PreserveLines */ || preserveSourceNewlines) {\n      if (format & 65536 /* PreferNewLine */) {\n        return 1;\n      }\n      if (lastChild === void 0) {\n        return !parentNode || currentSourceFile && rangeIsOnSingleLine(parentNode, currentSourceFile) ? 0 : 1;\n      }\n      if (currentSourceFile && parentNode && !positionIsSynthesized(parentNode.pos) && !nodeIsSynthesized(lastChild) && (!lastChild.parent || lastChild.parent === parentNode)) {\n        if (preserveSourceNewlines) {\n          const end = childrenTextRange && !positionIsSynthesized(childrenTextRange.end) ? childrenTextRange.end : lastChild.end;\n          return getEffectiveLines(\n            (includeComments) => getLinesBetweenPositionAndNextNonWhitespaceCharacter(\n              end,\n              parentNode.end,\n              currentSourceFile,\n              includeComments\n            )\n          );\n        }\n        return rangeEndPositionsAreOnSameLine(parentNode, lastChild, currentSourceFile) ? 0 : 1;\n      }\n      if (synthesizedNodeStartsOnNewLine(lastChild, format)) {\n        return 1;\n      }\n    }\n    if (format & 1 /* MultiLine */ && !(format & 131072 /* NoTrailingNewLine */)) {\n      return 1;\n    }\n    return 0;\n  }\n  function getEffectiveLines(getLineDifference) {\n    Debug.assert(!!preserveSourceNewlines);\n    const lines = getLineDifference(\n      /*includeComments*/\n      true\n    );\n    if (lines === 0) {\n      return getLineDifference(\n        /*includeComments*/\n        false\n      );\n    }\n    return lines;\n  }\n  function writeLineSeparatorsAndIndentBefore(node, parent2) {\n    const leadingNewlines = preserveSourceNewlines && getLeadingLineTerminatorCount(parent2, node, 0 /* None */);\n    if (leadingNewlines) {\n      writeLinesAndIndent(\n        leadingNewlines,\n        /*writeSpaceIfNotIndenting*/\n        false\n      );\n    }\n    return !!leadingNewlines;\n  }\n  function writeLineSeparatorsAfter(node, parent2) {\n    const trailingNewlines = preserveSourceNewlines && getClosingLineTerminatorCount(\n      parent2,\n      node,\n      0 /* None */,\n      /*childrenTextRange*/\n      void 0\n    );\n    if (trailingNewlines) {\n      writeLine(trailingNewlines);\n    }\n  }\n  function synthesizedNodeStartsOnNewLine(node, format) {\n    if (nodeIsSynthesized(node)) {\n      const startsOnNewLine = getStartsOnNewLine(node);\n      if (startsOnNewLine === void 0) {\n        return (format & 65536 /* PreferNewLine */) !== 0;\n      }\n      return startsOnNewLine;\n    }\n    return (format & 65536 /* PreferNewLine */) !== 0;\n  }\n  function getLinesBetweenNodes(parent2, node1, node2) {\n    if (getEmitFlags(parent2) & 262144 /* NoIndentation */) {\n      return 0;\n    }\n    parent2 = skipSynthesizedParentheses(parent2);\n    node1 = skipSynthesizedParentheses(node1);\n    node2 = skipSynthesizedParentheses(node2);\n    if (getStartsOnNewLine(node2)) {\n      return 1;\n    }\n    if (currentSourceFile && !nodeIsSynthesized(parent2) && !nodeIsSynthesized(node1) && !nodeIsSynthesized(node2)) {\n      if (preserveSourceNewlines) {\n        return getEffectiveLines(\n          (includeComments) => getLinesBetweenRangeEndAndRangeStart(\n            node1,\n            node2,\n            currentSourceFile,\n            includeComments\n          )\n        );\n      }\n      return rangeEndIsOnSameLineAsRangeStart(node1, node2, currentSourceFile) ? 0 : 1;\n    }\n    return 0;\n  }\n  function isEmptyBlock(block) {\n    return block.statements.length === 0 && (!currentSourceFile || rangeEndIsOnSameLineAsRangeStart(block, block, currentSourceFile));\n  }\n  function skipSynthesizedParentheses(node) {\n    while (node.kind === 218 /* ParenthesizedExpression */ && nodeIsSynthesized(node)) {\n      node = node.expression;\n    }\n    return node;\n  }\n  function getTextOfNode2(node, includeTrivia) {\n    if (isGeneratedIdentifier(node) || isGeneratedPrivateIdentifier(node)) {\n      return generateName(node);\n    }\n    if (isStringLiteral(node) && node.textSourceNode) {\n      return getTextOfNode2(node.textSourceNode, includeTrivia);\n    }\n    const sourceFile = currentSourceFile;\n    const canUseSourceFile = !!sourceFile && !!node.parent && !nodeIsSynthesized(node);\n    if (isMemberName(node)) {\n      if (!canUseSourceFile || getSourceFileOfNode(node) !== getOriginalNode(sourceFile)) {\n        return idText(node);\n      }\n    } else if (isJsxNamespacedName(node)) {\n      if (!canUseSourceFile || getSourceFileOfNode(node) !== getOriginalNode(sourceFile)) {\n        return getTextOfJsxNamespacedName(node);\n      }\n    } else {\n      Debug.assertNode(node, isLiteralExpression);\n      if (!canUseSourceFile) {\n        return node.text;\n      }\n    }\n    return getSourceTextOfNodeFromSourceFile(sourceFile, node, includeTrivia);\n  }\n  function getLiteralTextOfNode(node, sourceFile = currentSourceFile, neverAsciiEscape, jsxAttributeEscape) {\n    if (node.kind === 11 /* StringLiteral */ && node.textSourceNode) {\n      const textSourceNode = node.textSourceNode;\n      if (isIdentifier(textSourceNode) || isPrivateIdentifier(textSourceNode) || isNumericLiteral(textSourceNode) || isJsxNamespacedName(textSourceNode)) {\n        const text = isNumericLiteral(textSourceNode) ? textSourceNode.text : getTextOfNode2(textSourceNode);\n        return jsxAttributeEscape ? `\"${escapeJsxAttributeString(text)}\"` : neverAsciiEscape || getEmitFlags(node) & 16777216 /* NoAsciiEscaping */ ? `\"${escapeString(text)}\"` : `\"${escapeNonAsciiString(text)}\"`;\n      } else {\n        return getLiteralTextOfNode(textSourceNode, getSourceFileOfNode(textSourceNode), neverAsciiEscape, jsxAttributeEscape);\n      }\n    }\n    const flags = (neverAsciiEscape ? 1 /* NeverAsciiEscape */ : 0) | (jsxAttributeEscape ? 2 /* JsxAttributeEscape */ : 0) | (printerOptions.terminateUnterminatedLiterals ? 4 /* TerminateUnterminatedLiterals */ : 0) | (printerOptions.target && printerOptions.target >= 8 /* ES2021 */ ? 8 /* AllowNumericSeparator */ : 0);\n    return getLiteralText(node, sourceFile, flags);\n  }\n  function pushNameGenerationScope(node) {\n    privateNameTempFlagsStack.push(privateNameTempFlags);\n    privateNameTempFlags = 0 /* Auto */;\n    reservedPrivateNamesStack.push(reservedPrivateNames);\n    if (node && getEmitFlags(node) & 1048576 /* ReuseTempVariableScope */) {\n      return;\n    }\n    tempFlagsStack.push(tempFlags);\n    tempFlags = 0 /* Auto */;\n    formattedNameTempFlagsStack.push(formattedNameTempFlags);\n    formattedNameTempFlags = void 0;\n    reservedNamesStack.push(reservedNames);\n  }\n  function popNameGenerationScope(node) {\n    privateNameTempFlags = privateNameTempFlagsStack.pop();\n    reservedPrivateNames = reservedPrivateNamesStack.pop();\n    if (node && getEmitFlags(node) & 1048576 /* ReuseTempVariableScope */) {\n      return;\n    }\n    tempFlags = tempFlagsStack.pop();\n    formattedNameTempFlags = formattedNameTempFlagsStack.pop();\n    reservedNames = reservedNamesStack.pop();\n  }\n  function reserveNameInNestedScopes(name) {\n    if (!reservedNames || reservedNames === lastOrUndefined(reservedNamesStack)) {\n      reservedNames = /* @__PURE__ */ new Set();\n    }\n    reservedNames.add(name);\n  }\n  function reservePrivateNameInNestedScopes(name) {\n    if (!reservedPrivateNames || reservedPrivateNames === lastOrUndefined(reservedPrivateNamesStack)) {\n      reservedPrivateNames = /* @__PURE__ */ new Set();\n    }\n    reservedPrivateNames.add(name);\n  }\n  function generateNames(node) {\n    if (!node) return;\n    switch (node.kind) {\n      case 242 /* Block */:\n        forEach(node.statements, generateNames);\n        break;\n      case 257 /* LabeledStatement */:\n      case 255 /* WithStatement */:\n      case 247 /* DoStatement */:\n      case 248 /* WhileStatement */:\n        generateNames(node.statement);\n        break;\n      case 246 /* IfStatement */:\n        generateNames(node.thenStatement);\n        generateNames(node.elseStatement);\n        break;\n      case 249 /* ForStatement */:\n      case 251 /* ForOfStatement */:\n      case 250 /* ForInStatement */:\n        generateNames(node.initializer);\n        generateNames(node.statement);\n        break;\n      case 256 /* SwitchStatement */:\n        generateNames(node.caseBlock);\n        break;\n      case 270 /* CaseBlock */:\n        forEach(node.clauses, generateNames);\n        break;\n      case 297 /* CaseClause */:\n      case 298 /* DefaultClause */:\n        forEach(node.statements, generateNames);\n        break;\n      case 259 /* TryStatement */:\n        generateNames(node.tryBlock);\n        generateNames(node.catchClause);\n        generateNames(node.finallyBlock);\n        break;\n      case 300 /* CatchClause */:\n        generateNames(node.variableDeclaration);\n        generateNames(node.block);\n        break;\n      case 244 /* VariableStatement */:\n        generateNames(node.declarationList);\n        break;\n      case 262 /* VariableDeclarationList */:\n        forEach(node.declarations, generateNames);\n        break;\n      case 261 /* VariableDeclaration */:\n      case 170 /* Parameter */:\n      case 209 /* BindingElement */:\n      case 264 /* ClassDeclaration */:\n        generateNameIfNeeded(node.name);\n        break;\n      case 263 /* FunctionDeclaration */:\n        generateNameIfNeeded(node.name);\n        if (getEmitFlags(node) & 1048576 /* ReuseTempVariableScope */) {\n          forEach(node.parameters, generateNames);\n          generateNames(node.body);\n        }\n        break;\n      case 207 /* ObjectBindingPattern */:\n      case 208 /* ArrayBindingPattern */:\n        forEach(node.elements, generateNames);\n        break;\n      case 273 /* ImportDeclaration */:\n        generateNames(node.importClause);\n        break;\n      case 274 /* ImportClause */:\n        generateNameIfNeeded(node.name);\n        generateNames(node.namedBindings);\n        break;\n      case 275 /* NamespaceImport */:\n        generateNameIfNeeded(node.name);\n        break;\n      case 281 /* NamespaceExport */:\n        generateNameIfNeeded(node.name);\n        break;\n      case 276 /* NamedImports */:\n        forEach(node.elements, generateNames);\n        break;\n      case 277 /* ImportSpecifier */:\n        generateNameIfNeeded(node.propertyName || node.name);\n        break;\n    }\n  }\n  function generateMemberNames(node) {\n    if (!node) return;\n    switch (node.kind) {\n      case 304 /* PropertyAssignment */:\n      case 305 /* ShorthandPropertyAssignment */:\n      case 173 /* PropertyDeclaration */:\n      case 172 /* PropertySignature */:\n      case 175 /* MethodDeclaration */:\n      case 174 /* MethodSignature */:\n      case 178 /* GetAccessor */:\n      case 179 /* SetAccessor */:\n        generateNameIfNeeded(node.name);\n        break;\n    }\n  }\n  function generateNameIfNeeded(name) {\n    if (name) {\n      if (isGeneratedIdentifier(name) || isGeneratedPrivateIdentifier(name)) {\n        generateName(name);\n      } else if (isBindingPattern(name)) {\n        generateNames(name);\n      }\n    }\n  }\n  function generateName(name) {\n    const autoGenerate = name.emitNode.autoGenerate;\n    if ((autoGenerate.flags & 7 /* KindMask */) === 4 /* Node */) {\n      return generateNameCached(getNodeForGeneratedName(name), isPrivateIdentifier(name), autoGenerate.flags, autoGenerate.prefix, autoGenerate.suffix);\n    } else {\n      const autoGenerateId = autoGenerate.id;\n      return autoGeneratedIdToGeneratedName[autoGenerateId] || (autoGeneratedIdToGeneratedName[autoGenerateId] = makeName(name));\n    }\n  }\n  function generateNameCached(node, privateName, flags, prefix, suffix) {\n    const nodeId = getNodeId(node);\n    const cache = privateName ? nodeIdToGeneratedPrivateName : nodeIdToGeneratedName;\n    return cache[nodeId] || (cache[nodeId] = generateNameForNode(node, privateName, flags ?? 0 /* None */, formatGeneratedNamePart(prefix, generateName), formatGeneratedNamePart(suffix)));\n  }\n  function isUniqueName(name, privateName) {\n    return isFileLevelUniqueNameInCurrentFile(name, privateName) && !isReservedName(name, privateName) && !generatedNames.has(name);\n  }\n  function isReservedName(name, privateName) {\n    let set;\n    let stack;\n    if (privateName) {\n      set = reservedPrivateNames;\n      stack = reservedPrivateNamesStack;\n    } else {\n      set = reservedNames;\n      stack = reservedNamesStack;\n    }\n    if (set == null ? void 0 : set.has(name)) {\n      return true;\n    }\n    for (let i = stack.length - 1; i >= 0; i--) {\n      if (set === stack[i]) {\n        continue;\n      }\n      set = stack[i];\n      if (set == null ? void 0 : set.has(name)) {\n        return true;\n      }\n    }\n    return false;\n  }\n  function isFileLevelUniqueNameInCurrentFile(name, _isPrivate) {\n    return currentSourceFile ? isFileLevelUniqueName(currentSourceFile, name, hasGlobalName) : true;\n  }\n  function isUniqueLocalName(name, container) {\n    for (let node = container; node && isNodeDescendantOf(node, container); node = node.nextContainer) {\n      if (canHaveLocals(node) && node.locals) {\n        const local = node.locals.get(escapeLeadingUnderscores(name));\n        if (local && local.flags & (111551 /* Value */ | 1048576 /* ExportValue */ | 2097152 /* Alias */)) {\n          return false;\n        }\n      }\n    }\n    return true;\n  }\n  function getTempFlags(formattedNameKey) {\n    switch (formattedNameKey) {\n      case \"\":\n        return tempFlags;\n      case \"#\":\n        return privateNameTempFlags;\n      default:\n        return (formattedNameTempFlags == null ? void 0 : formattedNameTempFlags.get(formattedNameKey)) ?? 0 /* Auto */;\n    }\n  }\n  function setTempFlags(formattedNameKey, flags) {\n    switch (formattedNameKey) {\n      case \"\":\n        tempFlags = flags;\n        break;\n      case \"#\":\n        privateNameTempFlags = flags;\n        break;\n      default:\n        formattedNameTempFlags ?? (formattedNameTempFlags = /* @__PURE__ */ new Map());\n        formattedNameTempFlags.set(formattedNameKey, flags);\n        break;\n    }\n  }\n  function makeTempVariableName(flags, reservedInNestedScopes, privateName, prefix, suffix) {\n    if (prefix.length > 0 && prefix.charCodeAt(0) === 35 /* hash */) {\n      prefix = prefix.slice(1);\n    }\n    const key = formatGeneratedName(privateName, prefix, \"\", suffix);\n    let tempFlags2 = getTempFlags(key);\n    if (flags && !(tempFlags2 & flags)) {\n      const name = flags === 268435456 /* _i */ ? \"_i\" : \"_n\";\n      const fullName = formatGeneratedName(privateName, prefix, name, suffix);\n      if (isUniqueName(fullName, privateName)) {\n        tempFlags2 |= flags;\n        if (privateName) {\n          reservePrivateNameInNestedScopes(fullName);\n        } else if (reservedInNestedScopes) {\n          reserveNameInNestedScopes(fullName);\n        }\n        setTempFlags(key, tempFlags2);\n        return fullName;\n      }\n    }\n    while (true) {\n      const count = tempFlags2 & 268435455 /* CountMask */;\n      tempFlags2++;\n      if (count !== 8 && count !== 13) {\n        const name = count < 26 ? \"_\" + String.fromCharCode(97 /* a */ + count) : \"_\" + (count - 26);\n        const fullName = formatGeneratedName(privateName, prefix, name, suffix);\n        if (isUniqueName(fullName, privateName)) {\n          if (privateName) {\n            reservePrivateNameInNestedScopes(fullName);\n          } else if (reservedInNestedScopes) {\n            reserveNameInNestedScopes(fullName);\n          }\n          setTempFlags(key, tempFlags2);\n          return fullName;\n        }\n      }\n    }\n  }\n  function makeUniqueName2(baseName, checkFn = isUniqueName, optimistic, scoped, privateName, prefix, suffix) {\n    if (baseName.length > 0 && baseName.charCodeAt(0) === 35 /* hash */) {\n      baseName = baseName.slice(1);\n    }\n    if (prefix.length > 0 && prefix.charCodeAt(0) === 35 /* hash */) {\n      prefix = prefix.slice(1);\n    }\n    if (optimistic) {\n      const fullName = formatGeneratedName(privateName, prefix, baseName, suffix);\n      if (checkFn(fullName, privateName)) {\n        if (privateName) {\n          reservePrivateNameInNestedScopes(fullName);\n        } else if (scoped) {\n          reserveNameInNestedScopes(fullName);\n        } else {\n          generatedNames.add(fullName);\n        }\n        return fullName;\n      }\n    }\n    if (baseName.charCodeAt(baseName.length - 1) !== 95 /* _ */) {\n      baseName += \"_\";\n    }\n    let i = 1;\n    while (true) {\n      const fullName = formatGeneratedName(privateName, prefix, baseName + i, suffix);\n      if (checkFn(fullName, privateName)) {\n        if (privateName) {\n          reservePrivateNameInNestedScopes(fullName);\n        } else if (scoped) {\n          reserveNameInNestedScopes(fullName);\n        } else {\n          generatedNames.add(fullName);\n        }\n        return fullName;\n      }\n      i++;\n    }\n  }\n  function makeFileLevelOptimisticUniqueName(name) {\n    return makeUniqueName2(\n      name,\n      isFileLevelUniqueNameInCurrentFile,\n      /*optimistic*/\n      true,\n      /*scoped*/\n      false,\n      /*privateName*/\n      false,\n      /*prefix*/\n      \"\",\n      /*suffix*/\n      \"\"\n    );\n  }\n  function generateNameForModuleOrEnum(node) {\n    const name = getTextOfNode2(node.name);\n    return isUniqueLocalName(name, tryCast(node, canHaveLocals)) ? name : makeUniqueName2(\n      name,\n      isUniqueName,\n      /*optimistic*/\n      false,\n      /*scoped*/\n      false,\n      /*privateName*/\n      false,\n      /*prefix*/\n      \"\",\n      /*suffix*/\n      \"\"\n    );\n  }\n  function generateNameForImportOrExportDeclaration(node) {\n    const expr = getExternalModuleName(node);\n    const baseName = isStringLiteral(expr) ? makeIdentifierFromModuleName(expr.text) : \"module\";\n    return makeUniqueName2(\n      baseName,\n      isUniqueName,\n      /*optimistic*/\n      false,\n      /*scoped*/\n      false,\n      /*privateName*/\n      false,\n      /*prefix*/\n      \"\",\n      /*suffix*/\n      \"\"\n    );\n  }\n  function generateNameForExportDefault() {\n    return makeUniqueName2(\n      \"default\",\n      isUniqueName,\n      /*optimistic*/\n      false,\n      /*scoped*/\n      false,\n      /*privateName*/\n      false,\n      /*prefix*/\n      \"\",\n      /*suffix*/\n      \"\"\n    );\n  }\n  function generateNameForClassExpression() {\n    return makeUniqueName2(\n      \"class\",\n      isUniqueName,\n      /*optimistic*/\n      false,\n      /*scoped*/\n      false,\n      /*privateName*/\n      false,\n      /*prefix*/\n      \"\",\n      /*suffix*/\n      \"\"\n    );\n  }\n  function generateNameForMethodOrAccessor(node, privateName, prefix, suffix) {\n    if (isIdentifier(node.name)) {\n      return generateNameCached(node.name, privateName);\n    }\n    return makeTempVariableName(\n      0 /* Auto */,\n      /*reservedInNestedScopes*/\n      false,\n      privateName,\n      prefix,\n      suffix\n    );\n  }\n  function generateNameForNode(node, privateName, flags, prefix, suffix) {\n    switch (node.kind) {\n      case 80 /* Identifier */:\n      case 81 /* PrivateIdentifier */:\n        return makeUniqueName2(\n          getTextOfNode2(node),\n          isUniqueName,\n          !!(flags & 16 /* Optimistic */),\n          !!(flags & 8 /* ReservedInNestedScopes */),\n          privateName,\n          prefix,\n          suffix\n        );\n      case 268 /* ModuleDeclaration */:\n      case 267 /* EnumDeclaration */:\n        Debug.assert(!prefix && !suffix && !privateName);\n        return generateNameForModuleOrEnum(node);\n      case 273 /* ImportDeclaration */:\n      case 279 /* ExportDeclaration */:\n        Debug.assert(!prefix && !suffix && !privateName);\n        return generateNameForImportOrExportDeclaration(node);\n      case 263 /* FunctionDeclaration */:\n      case 264 /* ClassDeclaration */: {\n        Debug.assert(!prefix && !suffix && !privateName);\n        const name = node.name;\n        if (name && !isGeneratedIdentifier(name)) {\n          return generateNameForNode(\n            name,\n            /*privateName*/\n            false,\n            flags,\n            prefix,\n            suffix\n          );\n        }\n        return generateNameForExportDefault();\n      }\n      case 278 /* ExportAssignment */:\n        Debug.assert(!prefix && !suffix && !privateName);\n        return generateNameForExportDefault();\n      case 232 /* ClassExpression */:\n        Debug.assert(!prefix && !suffix && !privateName);\n        return generateNameForClassExpression();\n      case 175 /* MethodDeclaration */:\n      case 178 /* GetAccessor */:\n      case 179 /* SetAccessor */:\n        return generateNameForMethodOrAccessor(node, privateName, prefix, suffix);\n      case 168 /* ComputedPropertyName */:\n        return makeTempVariableName(\n          0 /* Auto */,\n          /*reservedInNestedScopes*/\n          true,\n          privateName,\n          prefix,\n          suffix\n        );\n      default:\n        return makeTempVariableName(\n          0 /* Auto */,\n          /*reservedInNestedScopes*/\n          false,\n          privateName,\n          prefix,\n          suffix\n        );\n    }\n  }\n  function makeName(name) {\n    const autoGenerate = name.emitNode.autoGenerate;\n    const prefix = formatGeneratedNamePart(autoGenerate.prefix, generateName);\n    const suffix = formatGeneratedNamePart(autoGenerate.suffix);\n    switch (autoGenerate.flags & 7 /* KindMask */) {\n      case 1 /* Auto */:\n        return makeTempVariableName(0 /* Auto */, !!(autoGenerate.flags & 8 /* ReservedInNestedScopes */), isPrivateIdentifier(name), prefix, suffix);\n      case 2 /* Loop */:\n        Debug.assertNode(name, isIdentifier);\n        return makeTempVariableName(\n          268435456 /* _i */,\n          !!(autoGenerate.flags & 8 /* ReservedInNestedScopes */),\n          /*privateName*/\n          false,\n          prefix,\n          suffix\n        );\n      case 3 /* Unique */:\n        return makeUniqueName2(\n          idText(name),\n          autoGenerate.flags & 32 /* FileLevel */ ? isFileLevelUniqueNameInCurrentFile : isUniqueName,\n          !!(autoGenerate.flags & 16 /* Optimistic */),\n          !!(autoGenerate.flags & 8 /* ReservedInNestedScopes */),\n          isPrivateIdentifier(name),\n          prefix,\n          suffix\n        );\n    }\n    return Debug.fail(`Unsupported GeneratedIdentifierKind: ${Debug.formatEnum(\n      autoGenerate.flags & 7 /* KindMask */,\n      GeneratedIdentifierFlags,\n      /*isFlags*/\n      true\n    )}.`);\n  }\n  function pipelineEmitWithComments(hint, node) {\n    const pipelinePhase = getNextPipelinePhase(2 /* Comments */, hint, node);\n    const savedContainerPos = containerPos;\n    const savedContainerEnd = containerEnd;\n    const savedDeclarationListContainerEnd = declarationListContainerEnd;\n    emitCommentsBeforeNode(node);\n    pipelinePhase(hint, node);\n    emitCommentsAfterNode(node, savedContainerPos, savedContainerEnd, savedDeclarationListContainerEnd);\n  }\n  function emitCommentsBeforeNode(node) {\n    const emitFlags = getEmitFlags(node);\n    const commentRange = getCommentRange(node);\n    emitLeadingCommentsOfNode(node, emitFlags, commentRange.pos, commentRange.end);\n    if (emitFlags & 4096 /* NoNestedComments */) {\n      commentsDisabled = true;\n    }\n  }\n  function emitCommentsAfterNode(node, savedContainerPos, savedContainerEnd, savedDeclarationListContainerEnd) {\n    const emitFlags = getEmitFlags(node);\n    const commentRange = getCommentRange(node);\n    if (emitFlags & 4096 /* NoNestedComments */) {\n      commentsDisabled = false;\n    }\n    emitTrailingCommentsOfNode(node, emitFlags, commentRange.pos, commentRange.end, savedContainerPos, savedContainerEnd, savedDeclarationListContainerEnd);\n    const typeNode = getTypeNode(node);\n    if (typeNode) {\n      emitTrailingCommentsOfNode(node, emitFlags, typeNode.pos, typeNode.end, savedContainerPos, savedContainerEnd, savedDeclarationListContainerEnd);\n    }\n  }\n  function emitLeadingCommentsOfNode(node, emitFlags, pos, end) {\n    enterComment();\n    hasWrittenComment = false;\n    const skipLeadingComments = pos < 0 || (emitFlags & 1024 /* NoLeadingComments */) !== 0 || node.kind === 12 /* JsxText */;\n    const skipTrailingComments = end < 0 || (emitFlags & 2048 /* NoTrailingComments */) !== 0 || node.kind === 12 /* JsxText */;\n    if ((pos > 0 || end > 0) && pos !== end) {\n      if (!skipLeadingComments) {\n        emitLeadingComments(\n          pos,\n          /*isEmittedNode*/\n          node.kind !== 354 /* NotEmittedStatement */\n        );\n      }\n      if (!skipLeadingComments || pos >= 0 && (emitFlags & 1024 /* NoLeadingComments */) !== 0) {\n        containerPos = pos;\n      }\n      if (!skipTrailingComments || end >= 0 && (emitFlags & 2048 /* NoTrailingComments */) !== 0) {\n        containerEnd = end;\n        if (node.kind === 262 /* VariableDeclarationList */) {\n          declarationListContainerEnd = end;\n        }\n      }\n    }\n    forEach(getSyntheticLeadingComments(node), emitLeadingSynthesizedComment);\n    exitComment();\n  }\n  function emitTrailingCommentsOfNode(node, emitFlags, pos, end, savedContainerPos, savedContainerEnd, savedDeclarationListContainerEnd) {\n    enterComment();\n    const skipTrailingComments = end < 0 || (emitFlags & 2048 /* NoTrailingComments */) !== 0 || node.kind === 12 /* JsxText */;\n    forEach(getSyntheticTrailingComments(node), emitTrailingSynthesizedComment);\n    if ((pos > 0 || end > 0) && pos !== end) {\n      containerPos = savedContainerPos;\n      containerEnd = savedContainerEnd;\n      declarationListContainerEnd = savedDeclarationListContainerEnd;\n      if (!skipTrailingComments && node.kind !== 354 /* NotEmittedStatement */) {\n        emitTrailingComments(end);\n      }\n    }\n    exitComment();\n  }\n  function emitLeadingSynthesizedComment(comment) {\n    if (comment.hasLeadingNewline || comment.kind === 2 /* SingleLineCommentTrivia */) {\n      writer.writeLine();\n    }\n    writeSynthesizedComment(comment);\n    if (comment.hasTrailingNewLine || comment.kind === 2 /* SingleLineCommentTrivia */) {\n      writer.writeLine();\n    } else {\n      writer.writeSpace(\" \");\n    }\n  }\n  function emitTrailingSynthesizedComment(comment) {\n    if (!writer.isAtStartOfLine()) {\n      writer.writeSpace(\" \");\n    }\n    writeSynthesizedComment(comment);\n    if (comment.hasTrailingNewLine) {\n      writer.writeLine();\n    }\n  }\n  function writeSynthesizedComment(comment) {\n    const text = formatSynthesizedComment(comment);\n    const lineMap = comment.kind === 3 /* MultiLineCommentTrivia */ ? computeLineStarts(text) : void 0;\n    writeCommentRange(text, lineMap, writer, 0, text.length, newLine);\n  }\n  function formatSynthesizedComment(comment) {\n    return comment.kind === 3 /* MultiLineCommentTrivia */ ? `/*${comment.text}*/` : `//${comment.text}`;\n  }\n  function emitBodyWithDetachedComments(node, detachedRange, emitCallback) {\n    enterComment();\n    const { pos, end } = detachedRange;\n    const emitFlags = getEmitFlags(node);\n    const skipLeadingComments = pos < 0 || (emitFlags & 1024 /* NoLeadingComments */) !== 0;\n    const skipTrailingComments = commentsDisabled || end < 0 || (emitFlags & 2048 /* NoTrailingComments */) !== 0;\n    if (!skipLeadingComments) {\n      emitDetachedCommentsAndUpdateCommentsInfo(detachedRange);\n    }\n    exitComment();\n    if (emitFlags & 4096 /* NoNestedComments */ && !commentsDisabled) {\n      commentsDisabled = true;\n      emitCallback(node);\n      commentsDisabled = false;\n    } else {\n      emitCallback(node);\n    }\n    enterComment();\n    if (!skipTrailingComments) {\n      emitLeadingComments(\n        detachedRange.end,\n        /*isEmittedNode*/\n        true\n      );\n      if (hasWrittenComment && !writer.isAtStartOfLine()) {\n        writer.writeLine();\n      }\n    }\n    exitComment();\n  }\n  function originalNodesHaveSameParent(nodeA, nodeB) {\n    nodeA = getOriginalNode(nodeA);\n    return nodeA.parent && nodeA.parent === getOriginalNode(nodeB).parent;\n  }\n  function siblingNodePositionsAreComparable(previousNode, nextNode) {\n    if (nextNode.pos < previousNode.end) {\n      return false;\n    }\n    previousNode = getOriginalNode(previousNode);\n    nextNode = getOriginalNode(nextNode);\n    const parent2 = previousNode.parent;\n    if (!parent2 || parent2 !== nextNode.parent) {\n      return false;\n    }\n    const parentNodeArray = getContainingNodeArray(previousNode);\n    const prevNodeIndex = parentNodeArray == null ? void 0 : parentNodeArray.indexOf(previousNode);\n    return prevNodeIndex !== void 0 && prevNodeIndex > -1 && parentNodeArray.indexOf(nextNode) === prevNodeIndex + 1;\n  }\n  function emitLeadingComments(pos, isEmittedNode) {\n    hasWrittenComment = false;\n    if (isEmittedNode) {\n      if (pos === 0 && (currentSourceFile == null ? void 0 : currentSourceFile.isDeclarationFile)) {\n        forEachLeadingCommentToEmit(pos, emitNonTripleSlashLeadingComment);\n      } else {\n        forEachLeadingCommentToEmit(pos, emitLeadingComment);\n      }\n    } else if (pos === 0) {\n      forEachLeadingCommentToEmit(pos, emitTripleSlashLeadingComment);\n    }\n  }\n  function emitTripleSlashLeadingComment(commentPos, commentEnd, kind, hasTrailingNewLine, rangePos) {\n    if (isTripleSlashComment(commentPos, commentEnd)) {\n      emitLeadingComment(commentPos, commentEnd, kind, hasTrailingNewLine, rangePos);\n    }\n  }\n  function emitNonTripleSlashLeadingComment(commentPos, commentEnd, kind, hasTrailingNewLine, rangePos) {\n    if (!isTripleSlashComment(commentPos, commentEnd)) {\n      emitLeadingComment(commentPos, commentEnd, kind, hasTrailingNewLine, rangePos);\n    }\n  }\n  function shouldWriteComment(text, pos) {\n    if (printerOptions.onlyPrintJsDocStyle) {\n      return isJSDocLikeText(text, pos) || isPinnedComment(text, pos);\n    }\n    return true;\n  }\n  function emitLeadingComment(commentPos, commentEnd, kind, hasTrailingNewLine, rangePos) {\n    if (!currentSourceFile || !shouldWriteComment(currentSourceFile.text, commentPos)) return;\n    if (!hasWrittenComment) {\n      emitNewLineBeforeLeadingCommentOfPosition(getCurrentLineMap(), writer, rangePos, commentPos);\n      hasWrittenComment = true;\n    }\n    emitPos(commentPos);\n    writeCommentRange(currentSourceFile.text, getCurrentLineMap(), writer, commentPos, commentEnd, newLine);\n    emitPos(commentEnd);\n    if (hasTrailingNewLine) {\n      writer.writeLine();\n    } else if (kind === 3 /* MultiLineCommentTrivia */) {\n      writer.writeSpace(\" \");\n    }\n  }\n  function emitLeadingCommentsOfPosition(pos) {\n    if (commentsDisabled || pos === -1) {\n      return;\n    }\n    emitLeadingComments(\n      pos,\n      /*isEmittedNode*/\n      true\n    );\n  }\n  function emitTrailingComments(pos) {\n    forEachTrailingCommentToEmit(pos, emitTrailingComment);\n  }\n  function emitTrailingComment(commentPos, commentEnd, _kind, hasTrailingNewLine) {\n    if (!currentSourceFile || !shouldWriteComment(currentSourceFile.text, commentPos)) return;\n    if (!writer.isAtStartOfLine()) {\n      writer.writeSpace(\" \");\n    }\n    emitPos(commentPos);\n    writeCommentRange(currentSourceFile.text, getCurrentLineMap(), writer, commentPos, commentEnd, newLine);\n    emitPos(commentEnd);\n    if (hasTrailingNewLine) {\n      writer.writeLine();\n    }\n  }\n  function emitTrailingCommentsOfPosition(pos, prefixSpace, forceNoNewline) {\n    if (commentsDisabled) {\n      return;\n    }\n    enterComment();\n    forEachTrailingCommentToEmit(pos, prefixSpace ? emitTrailingComment : forceNoNewline ? emitTrailingCommentOfPositionNoNewline : emitTrailingCommentOfPosition);\n    exitComment();\n  }\n  function emitTrailingCommentOfPositionNoNewline(commentPos, commentEnd, kind) {\n    if (!currentSourceFile) return;\n    emitPos(commentPos);\n    writeCommentRange(currentSourceFile.text, getCurrentLineMap(), writer, commentPos, commentEnd, newLine);\n    emitPos(commentEnd);\n    if (kind === 2 /* SingleLineCommentTrivia */) {\n      writer.writeLine();\n    }\n  }\n  function emitTrailingCommentOfPosition(commentPos, commentEnd, _kind, hasTrailingNewLine) {\n    if (!currentSourceFile) return;\n    emitPos(commentPos);\n    writeCommentRange(currentSourceFile.text, getCurrentLineMap(), writer, commentPos, commentEnd, newLine);\n    emitPos(commentEnd);\n    if (hasTrailingNewLine) {\n      writer.writeLine();\n    } else {\n      writer.writeSpace(\" \");\n    }\n  }\n  function forEachLeadingCommentToEmit(pos, cb) {\n    if (currentSourceFile && (containerPos === -1 || pos !== containerPos)) {\n      if (hasDetachedComments(pos)) {\n        forEachLeadingCommentWithoutDetachedComments(cb);\n      } else {\n        forEachLeadingCommentRange(\n          currentSourceFile.text,\n          pos,\n          cb,\n          /*state*/\n          pos\n        );\n      }\n    }\n  }\n  function forEachTrailingCommentToEmit(end, cb) {\n    if (currentSourceFile && (containerEnd === -1 || end !== containerEnd && end !== declarationListContainerEnd)) {\n      forEachTrailingCommentRange(currentSourceFile.text, end, cb);\n    }\n  }\n  function hasDetachedComments(pos) {\n    return detachedCommentsInfo !== void 0 && last(detachedCommentsInfo).nodePos === pos;\n  }\n  function forEachLeadingCommentWithoutDetachedComments(cb) {\n    if (!currentSourceFile) return;\n    const pos = last(detachedCommentsInfo).detachedCommentEndPos;\n    if (detachedCommentsInfo.length - 1) {\n      detachedCommentsInfo.pop();\n    } else {\n      detachedCommentsInfo = void 0;\n    }\n    forEachLeadingCommentRange(\n      currentSourceFile.text,\n      pos,\n      cb,\n      /*state*/\n      pos\n    );\n  }\n  function emitDetachedCommentsAndUpdateCommentsInfo(range) {\n    const currentDetachedCommentInfo = currentSourceFile && emitDetachedComments(currentSourceFile.text, getCurrentLineMap(), writer, emitComment, range, newLine, commentsDisabled);\n    if (currentDetachedCommentInfo) {\n      if (detachedCommentsInfo) {\n        detachedCommentsInfo.push(currentDetachedCommentInfo);\n      } else {\n        detachedCommentsInfo = [currentDetachedCommentInfo];\n      }\n    }\n  }\n  function emitComment(text, lineMap, writer2, commentPos, commentEnd, newLine2) {\n    if (!currentSourceFile || !shouldWriteComment(currentSourceFile.text, commentPos)) return;\n    emitPos(commentPos);\n    writeCommentRange(text, lineMap, writer2, commentPos, commentEnd, newLine2);\n    emitPos(commentEnd);\n  }\n  function isTripleSlashComment(commentPos, commentEnd) {\n    return !!currentSourceFile && isRecognizedTripleSlashComment(currentSourceFile.text, commentPos, commentEnd);\n  }\n  function pipelineEmitWithSourceMaps(hint, node) {\n    const pipelinePhase = getNextPipelinePhase(3 /* SourceMaps */, hint, node);\n    emitSourceMapsBeforeNode(node);\n    pipelinePhase(hint, node);\n    emitSourceMapsAfterNode(node);\n  }\n  function emitSourceMapsBeforeNode(node) {\n    const emitFlags = getEmitFlags(node);\n    const sourceMapRange = getSourceMapRange(node);\n    const source = sourceMapRange.source || sourceMapSource;\n    if (node.kind !== 354 /* NotEmittedStatement */ && (emitFlags & 32 /* NoLeadingSourceMap */) === 0 && sourceMapRange.pos >= 0) {\n      emitSourcePos(sourceMapRange.source || sourceMapSource, skipSourceTrivia(source, sourceMapRange.pos));\n    }\n    if (emitFlags & 128 /* NoNestedSourceMaps */) {\n      sourceMapsDisabled = true;\n    }\n  }\n  function emitSourceMapsAfterNode(node) {\n    const emitFlags = getEmitFlags(node);\n    const sourceMapRange = getSourceMapRange(node);\n    if (emitFlags & 128 /* NoNestedSourceMaps */) {\n      sourceMapsDisabled = false;\n    }\n    if (node.kind !== 354 /* NotEmittedStatement */ && (emitFlags & 64 /* NoTrailingSourceMap */) === 0 && sourceMapRange.end >= 0) {\n      emitSourcePos(sourceMapRange.source || sourceMapSource, sourceMapRange.end);\n    }\n  }\n  function skipSourceTrivia(source, pos) {\n    return source.skipTrivia ? source.skipTrivia(pos) : skipTrivia(source.text, pos);\n  }\n  function emitPos(pos) {\n    if (sourceMapsDisabled || positionIsSynthesized(pos) || isJsonSourceMapSource(sourceMapSource)) {\n      return;\n    }\n    const { line: sourceLine, character: sourceCharacter } = getLineAndCharacterOfPosition(sourceMapSource, pos);\n    sourceMapGenerator.addMapping(\n      writer.getLine(),\n      writer.getColumn(),\n      sourceMapSourceIndex,\n      sourceLine,\n      sourceCharacter,\n      /*nameIndex*/\n      void 0\n    );\n  }\n  function emitSourcePos(source, pos) {\n    if (source !== sourceMapSource) {\n      const savedSourceMapSource = sourceMapSource;\n      const savedSourceMapSourceIndex = sourceMapSourceIndex;\n      setSourceMapSource(source);\n      emitPos(pos);\n      resetSourceMapSource(savedSourceMapSource, savedSourceMapSourceIndex);\n    } else {\n      emitPos(pos);\n    }\n  }\n  function emitTokenWithSourceMap(node, token, writer2, tokenPos, emitCallback) {\n    if (sourceMapsDisabled || node && isInJsonFile(node)) {\n      return emitCallback(token, writer2, tokenPos);\n    }\n    const emitNode = node && node.emitNode;\n    const emitFlags = emitNode && emitNode.flags || 0 /* None */;\n    const range = emitNode && emitNode.tokenSourceMapRanges && emitNode.tokenSourceMapRanges[token];\n    const source = range && range.source || sourceMapSource;\n    tokenPos = skipSourceTrivia(source, range ? range.pos : tokenPos);\n    if ((emitFlags & 256 /* NoTokenLeadingSourceMaps */) === 0 && tokenPos >= 0) {\n      emitSourcePos(source, tokenPos);\n    }\n    tokenPos = emitCallback(token, writer2, tokenPos);\n    if (range) tokenPos = range.end;\n    if ((emitFlags & 512 /* NoTokenTrailingSourceMaps */) === 0 && tokenPos >= 0) {\n      emitSourcePos(source, tokenPos);\n    }\n    return tokenPos;\n  }\n  function setSourceMapSource(source) {\n    if (sourceMapsDisabled) {\n      return;\n    }\n    sourceMapSource = source;\n    if (source === mostRecentlyAddedSourceMapSource) {\n      sourceMapSourceIndex = mostRecentlyAddedSourceMapSourceIndex;\n      return;\n    }\n    if (isJsonSourceMapSource(source)) {\n      return;\n    }\n    sourceMapSourceIndex = sourceMapGenerator.addSource(source.fileName);\n    if (printerOptions.inlineSources) {\n      sourceMapGenerator.setSourceContent(sourceMapSourceIndex, source.text);\n    }\n    mostRecentlyAddedSourceMapSource = source;\n    mostRecentlyAddedSourceMapSourceIndex = sourceMapSourceIndex;\n  }\n  function resetSourceMapSource(source, sourceIndex) {\n    sourceMapSource = source;\n    sourceMapSourceIndex = sourceIndex;\n  }\n  function isJsonSourceMapSource(sourceFile) {\n    return fileExtensionIs(sourceFile.fileName, \".json\" /* Json */);\n  }\n}\nfunction createBracketsMap() {\n  const brackets2 = [];\n  brackets2[1024 /* Braces */] = [\"{\", \"}\"];\n  brackets2[2048 /* Parenthesis */] = [\"(\", \")\"];\n  brackets2[4096 /* AngleBrackets */] = [\"<\", \">\"];\n  brackets2[8192 /* SquareBrackets */] = [\"[\", \"]\"];\n  return brackets2;\n}\nfunction getOpeningBracket(format) {\n  return brackets[format & 15360 /* BracketsMask */][0];\n}\nfunction getClosingBracket(format) {\n  return brackets[format & 15360 /* BracketsMask */][1];\n}\nfunction emitListItemNoParenthesizer(node, emit, _parenthesizerRule, _index) {\n  emit(node);\n}\nfunction emitListItemWithParenthesizerRuleSelector(node, emit, parenthesizerRuleSelector, index) {\n  emit(node, parenthesizerRuleSelector.select(index));\n}\nfunction emitListItemWithParenthesizerRule(node, emit, parenthesizerRule, _index) {\n  emit(node, parenthesizerRule);\n}\nfunction getEmitListItem(emit, parenthesizerRule) {\n  return emit.length === 1 ? emitListItemNoParenthesizer : typeof parenthesizerRule === \"object\" ? emitListItemWithParenthesizerRuleSelector : emitListItemWithParenthesizerRule;\n}\n\n// src/compiler/watchUtilities.ts\nfunction createCachedDirectoryStructureHost(host, currentDirectory, useCaseSensitiveFileNames2) {\n  if (!host.getDirectories || !host.readDirectory) {\n    return void 0;\n  }\n  const cachedReadDirectoryResult = /* @__PURE__ */ new Map();\n  const getCanonicalFileName = createGetCanonicalFileName(useCaseSensitiveFileNames2);\n  return {\n    useCaseSensitiveFileNames: useCaseSensitiveFileNames2,\n    fileExists,\n    readFile: (path, encoding) => host.readFile(path, encoding),\n    directoryExists: host.directoryExists && directoryExists,\n    getDirectories,\n    readDirectory,\n    createDirectory: host.createDirectory && createDirectory,\n    writeFile: host.writeFile && writeFile2,\n    addOrDeleteFileOrDirectory,\n    addOrDeleteFile,\n    clearCache,\n    realpath: host.realpath && realpath\n  };\n  function toPath3(fileName) {\n    return toPath(fileName, currentDirectory, getCanonicalFileName);\n  }\n  function getCachedFileSystemEntries(rootDirPath) {\n    return cachedReadDirectoryResult.get(ensureTrailingDirectorySeparator(rootDirPath));\n  }\n  function getCachedFileSystemEntriesForBaseDir(path) {\n    const entries = getCachedFileSystemEntries(getDirectoryPath(path));\n    if (!entries) {\n      return entries;\n    }\n    if (!entries.sortedAndCanonicalizedFiles) {\n      entries.sortedAndCanonicalizedFiles = entries.files.map(getCanonicalFileName).sort();\n      entries.sortedAndCanonicalizedDirectories = entries.directories.map(getCanonicalFileName).sort();\n    }\n    return entries;\n  }\n  function getBaseNameOfFileName(fileName) {\n    return getBaseFileName(normalizePath(fileName));\n  }\n  function createCachedFileSystemEntries(rootDir, rootDirPath) {\n    var _a;\n    if (!host.realpath || ensureTrailingDirectorySeparator(toPath3(host.realpath(rootDir))) === rootDirPath) {\n      const resultFromHost = {\n        files: map(host.readDirectory(\n          rootDir,\n          /*extensions*/\n          void 0,\n          /*exclude*/\n          void 0,\n          /*include*/\n          [\"*.*\"]\n        ), getBaseNameOfFileName) || [],\n        directories: host.getDirectories(rootDir) || []\n      };\n      cachedReadDirectoryResult.set(ensureTrailingDirectorySeparator(rootDirPath), resultFromHost);\n      return resultFromHost;\n    }\n    if ((_a = host.directoryExists) == null ? void 0 : _a.call(host, rootDir)) {\n      cachedReadDirectoryResult.set(rootDirPath, false);\n      return false;\n    }\n    return void 0;\n  }\n  function tryReadDirectory2(rootDir, rootDirPath) {\n    rootDirPath = ensureTrailingDirectorySeparator(rootDirPath);\n    const cachedResult = getCachedFileSystemEntries(rootDirPath);\n    if (cachedResult) {\n      return cachedResult;\n    }\n    try {\n      return createCachedFileSystemEntries(rootDir, rootDirPath);\n    } catch {\n      Debug.assert(!cachedReadDirectoryResult.has(ensureTrailingDirectorySeparator(rootDirPath)));\n      return void 0;\n    }\n  }\n  function hasEntry(entries, name) {\n    const index = binarySearch(entries, name, identity, compareStringsCaseSensitive);\n    return index >= 0;\n  }\n  function writeFile2(fileName, data, writeByteOrderMark) {\n    const path = toPath3(fileName);\n    const result = getCachedFileSystemEntriesForBaseDir(path);\n    if (result) {\n      updateFilesOfFileSystemEntry(\n        result,\n        getBaseNameOfFileName(fileName),\n        /*fileExists*/\n        true\n      );\n    }\n    return host.writeFile(fileName, data, writeByteOrderMark);\n  }\n  function fileExists(fileName) {\n    const path = toPath3(fileName);\n    const result = getCachedFileSystemEntriesForBaseDir(path);\n    return result && hasEntry(result.sortedAndCanonicalizedFiles, getCanonicalFileName(getBaseNameOfFileName(fileName))) || host.fileExists(fileName);\n  }\n  function directoryExists(dirPath) {\n    const path = toPath3(dirPath);\n    return cachedReadDirectoryResult.has(ensureTrailingDirectorySeparator(path)) || host.directoryExists(dirPath);\n  }\n  function createDirectory(dirPath) {\n    const path = toPath3(dirPath);\n    const result = getCachedFileSystemEntriesForBaseDir(path);\n    if (result) {\n      const baseName = getBaseNameOfFileName(dirPath);\n      const canonicalizedBaseName = getCanonicalFileName(baseName);\n      const canonicalizedDirectories = result.sortedAndCanonicalizedDirectories;\n      if (insertSorted(canonicalizedDirectories, canonicalizedBaseName, compareStringsCaseSensitive)) {\n        result.directories.push(baseName);\n      }\n    }\n    host.createDirectory(dirPath);\n  }\n  function getDirectories(rootDir) {\n    const rootDirPath = toPath3(rootDir);\n    const result = tryReadDirectory2(rootDir, rootDirPath);\n    if (result) {\n      return result.directories.slice();\n    }\n    return host.getDirectories(rootDir);\n  }\n  function readDirectory(rootDir, extensions, excludes, includes, depth) {\n    const rootDirPath = toPath3(rootDir);\n    const rootResult = tryReadDirectory2(rootDir, rootDirPath);\n    let rootSymLinkResult;\n    if (rootResult !== void 0) {\n      return matchFiles(rootDir, extensions, excludes, includes, useCaseSensitiveFileNames2, currentDirectory, depth, getFileSystemEntries, realpath);\n    }\n    return host.readDirectory(rootDir, extensions, excludes, includes, depth);\n    function getFileSystemEntries(dir) {\n      const path = toPath3(dir);\n      if (path === rootDirPath) {\n        return rootResult || getFileSystemEntriesFromHost(dir, path);\n      }\n      const result = tryReadDirectory2(dir, path);\n      return result !== void 0 ? result || getFileSystemEntriesFromHost(dir, path) : emptyFileSystemEntries;\n    }\n    function getFileSystemEntriesFromHost(dir, path) {\n      if (rootSymLinkResult && path === rootDirPath) return rootSymLinkResult;\n      const result = {\n        files: map(host.readDirectory(\n          dir,\n          /*extensions*/\n          void 0,\n          /*exclude*/\n          void 0,\n          /*include*/\n          [\"*.*\"]\n        ), getBaseNameOfFileName) || emptyArray,\n        directories: host.getDirectories(dir) || emptyArray\n      };\n      if (path === rootDirPath) rootSymLinkResult = result;\n      return result;\n    }\n  }\n  function realpath(s) {\n    return host.realpath ? host.realpath(s) : s;\n  }\n  function clearFirstAncestorEntry(fileOrDirectoryPath) {\n    forEachAncestorDirectory(\n      getDirectoryPath(fileOrDirectoryPath),\n      (ancestor) => cachedReadDirectoryResult.delete(ensureTrailingDirectorySeparator(ancestor)) ? true : void 0\n    );\n  }\n  function addOrDeleteFileOrDirectory(fileOrDirectory, fileOrDirectoryPath) {\n    const existingResult = getCachedFileSystemEntries(fileOrDirectoryPath);\n    if (existingResult !== void 0) {\n      clearCache();\n      return void 0;\n    }\n    const parentResult = getCachedFileSystemEntriesForBaseDir(fileOrDirectoryPath);\n    if (!parentResult) {\n      clearFirstAncestorEntry(fileOrDirectoryPath);\n      return void 0;\n    }\n    if (!host.directoryExists) {\n      clearCache();\n      return void 0;\n    }\n    const baseName = getBaseNameOfFileName(fileOrDirectory);\n    const fsQueryResult = {\n      fileExists: host.fileExists(fileOrDirectory),\n      directoryExists: host.directoryExists(fileOrDirectory)\n    };\n    if (fsQueryResult.directoryExists || hasEntry(parentResult.sortedAndCanonicalizedDirectories, getCanonicalFileName(baseName))) {\n      clearCache();\n    } else {\n      updateFilesOfFileSystemEntry(parentResult, baseName, fsQueryResult.fileExists);\n    }\n    return fsQueryResult;\n  }\n  function addOrDeleteFile(fileName, filePath, eventKind) {\n    if (eventKind === 1 /* Changed */) {\n      return;\n    }\n    const parentResult = getCachedFileSystemEntriesForBaseDir(filePath);\n    if (parentResult) {\n      updateFilesOfFileSystemEntry(parentResult, getBaseNameOfFileName(fileName), eventKind === 0 /* Created */);\n    } else {\n      clearFirstAncestorEntry(filePath);\n    }\n  }\n  function updateFilesOfFileSystemEntry(parentResult, baseName, fileExists2) {\n    const canonicalizedFiles = parentResult.sortedAndCanonicalizedFiles;\n    const canonicalizedBaseName = getCanonicalFileName(baseName);\n    if (fileExists2) {\n      if (insertSorted(canonicalizedFiles, canonicalizedBaseName, compareStringsCaseSensitive)) {\n        parentResult.files.push(baseName);\n      }\n    } else {\n      const sortedIndex = binarySearch(canonicalizedFiles, canonicalizedBaseName, identity, compareStringsCaseSensitive);\n      if (sortedIndex >= 0) {\n        canonicalizedFiles.splice(sortedIndex, 1);\n        const unsortedIndex = parentResult.files.findIndex((entry) => getCanonicalFileName(entry) === canonicalizedBaseName);\n        parentResult.files.splice(unsortedIndex, 1);\n      }\n    }\n  }\n  function clearCache() {\n    cachedReadDirectoryResult.clear();\n  }\n}\nvar ProgramUpdateLevel = /* @__PURE__ */ ((ProgramUpdateLevel2) => {\n  ProgramUpdateLevel2[ProgramUpdateLevel2[\"Update\"] = 0] = \"Update\";\n  ProgramUpdateLevel2[ProgramUpdateLevel2[\"RootNamesAndUpdate\"] = 1] = \"RootNamesAndUpdate\";\n  ProgramUpdateLevel2[ProgramUpdateLevel2[\"Full\"] = 2] = \"Full\";\n  return ProgramUpdateLevel2;\n})(ProgramUpdateLevel || {});\nfunction updateSharedExtendedConfigFileWatcher(projectPath, options, extendedConfigFilesMap, createExtendedConfigFileWatch, toPath3) {\n  var _a;\n  const extendedConfigs = arrayToMap(((_a = options == null ? void 0 : options.configFile) == null ? void 0 : _a.extendedSourceFiles) || emptyArray, toPath3);\n  extendedConfigFilesMap.forEach((watcher, extendedConfigFilePath) => {\n    if (!extendedConfigs.has(extendedConfigFilePath)) {\n      watcher.projects.delete(projectPath);\n      watcher.close();\n    }\n  });\n  extendedConfigs.forEach((extendedConfigFileName, extendedConfigFilePath) => {\n    const existing = extendedConfigFilesMap.get(extendedConfigFilePath);\n    if (existing) {\n      existing.projects.add(projectPath);\n    } else {\n      extendedConfigFilesMap.set(extendedConfigFilePath, {\n        projects: /* @__PURE__ */ new Set([projectPath]),\n        watcher: createExtendedConfigFileWatch(extendedConfigFileName, extendedConfigFilePath),\n        close: () => {\n          const existing2 = extendedConfigFilesMap.get(extendedConfigFilePath);\n          if (!existing2 || existing2.projects.size !== 0) return;\n          existing2.watcher.close();\n          extendedConfigFilesMap.delete(extendedConfigFilePath);\n        }\n      });\n    }\n  });\n}\nfunction clearSharedExtendedConfigFileWatcher(projectPath, extendedConfigFilesMap) {\n  extendedConfigFilesMap.forEach((watcher) => {\n    if (watcher.projects.delete(projectPath)) watcher.close();\n  });\n}\nfunction cleanExtendedConfigCache(extendedConfigCache, extendedConfigFilePath, toPath3) {\n  if (!extendedConfigCache.delete(extendedConfigFilePath)) return;\n  extendedConfigCache.forEach(({ extendedResult }, key) => {\n    var _a;\n    if ((_a = extendedResult.extendedSourceFiles) == null ? void 0 : _a.some((extendedFile) => toPath3(extendedFile) === extendedConfigFilePath)) {\n      cleanExtendedConfigCache(extendedConfigCache, key, toPath3);\n    }\n  });\n}\nfunction updateMissingFilePathsWatch(program, missingFileWatches, createMissingFileWatch) {\n  mutateMap(\n    missingFileWatches,\n    program.getMissingFilePaths(),\n    {\n      // Watch the missing files\n      createNewValue: createMissingFileWatch,\n      // Files that are no longer missing (e.g. because they are no longer required)\n      // should no longer be watched.\n      onDeleteValue: closeFileWatcher\n    }\n  );\n}\nfunction updateWatchingWildcardDirectories(existingWatchedForWildcards, wildcardDirectories, watchDirectory) {\n  if (wildcardDirectories) {\n    mutateMap(\n      existingWatchedForWildcards,\n      new Map(Object.entries(wildcardDirectories)),\n      {\n        // Create new watch and recursive info\n        createNewValue: createWildcardDirectoryWatcher,\n        // Close existing watch thats not needed any more\n        onDeleteValue: closeFileWatcherOf,\n        // Close existing watch that doesnt match in the flags\n        onExistingValue: updateWildcardDirectoryWatcher\n      }\n    );\n  } else {\n    clearMap(existingWatchedForWildcards, closeFileWatcherOf);\n  }\n  function createWildcardDirectoryWatcher(directory, flags) {\n    return {\n      watcher: watchDirectory(directory, flags),\n      flags\n    };\n  }\n  function updateWildcardDirectoryWatcher(existingWatcher, flags, directory) {\n    if (existingWatcher.flags === flags) {\n      return;\n    }\n    existingWatcher.watcher.close();\n    existingWatchedForWildcards.set(directory, createWildcardDirectoryWatcher(directory, flags));\n  }\n}\nfunction isIgnoredFileFromWildCardWatching({\n  watchedDirPath,\n  fileOrDirectory,\n  fileOrDirectoryPath,\n  configFileName,\n  options,\n  program,\n  extraFileExtensions,\n  currentDirectory,\n  useCaseSensitiveFileNames: useCaseSensitiveFileNames2,\n  writeLog,\n  toPath: toPath3,\n  getScriptKind: getScriptKind2\n}) {\n  const newPath = removeIgnoredPath(fileOrDirectoryPath);\n  if (!newPath) {\n    writeLog(`Project: ${configFileName} Detected ignored path: ${fileOrDirectory}`);\n    return true;\n  }\n  fileOrDirectoryPath = newPath;\n  if (fileOrDirectoryPath === watchedDirPath) return false;\n  if (hasExtension(fileOrDirectoryPath) && !(isSupportedSourceFileName(fileOrDirectory, options, extraFileExtensions) || isSupportedScriptKind())) {\n    writeLog(`Project: ${configFileName} Detected file add/remove of non supported extension: ${fileOrDirectory}`);\n    return true;\n  }\n  if (isExcludedFile(fileOrDirectory, options.configFile.configFileSpecs, getNormalizedAbsolutePath(getDirectoryPath(configFileName), currentDirectory), useCaseSensitiveFileNames2, currentDirectory)) {\n    writeLog(`Project: ${configFileName} Detected excluded file: ${fileOrDirectory}`);\n    return true;\n  }\n  if (!program) return false;\n  if (options.outFile || options.outDir) return false;\n  if (isDeclarationFileName(fileOrDirectoryPath)) {\n    if (options.declarationDir) return false;\n  } else if (!fileExtensionIsOneOf(fileOrDirectoryPath, supportedJSExtensionsFlat)) {\n    return false;\n  }\n  const filePathWithoutExtension = removeFileExtension(fileOrDirectoryPath);\n  const realProgram = isArray(program) ? void 0 : isBuilderProgram(program) ? program.getProgramOrUndefined() : program;\n  const builderProgram = !realProgram && !isArray(program) ? program : void 0;\n  if (hasSourceFile(filePathWithoutExtension + \".ts\" /* Ts */) || hasSourceFile(filePathWithoutExtension + \".tsx\" /* Tsx */)) {\n    writeLog(`Project: ${configFileName} Detected output file: ${fileOrDirectory}`);\n    return true;\n  }\n  return false;\n  function hasSourceFile(file) {\n    return realProgram ? !!realProgram.getSourceFileByPath(file) : builderProgram ? builderProgram.state.fileInfos.has(file) : !!find(program, (rootFile) => toPath3(rootFile) === file);\n  }\n  function isSupportedScriptKind() {\n    if (!getScriptKind2) return false;\n    const scriptKind = getScriptKind2(fileOrDirectory);\n    switch (scriptKind) {\n      case 3 /* TS */:\n      case 4 /* TSX */:\n      case 7 /* Deferred */:\n      case 5 /* External */:\n        return true;\n      case 1 /* JS */:\n      case 2 /* JSX */:\n        return getAllowJSCompilerOption(options);\n      case 6 /* JSON */:\n        return getResolveJsonModule(options);\n      case 0 /* Unknown */:\n        return false;\n    }\n  }\n}\nfunction isEmittedFileOfProgram(program, file) {\n  if (!program) {\n    return false;\n  }\n  return program.isEmittedFile(file);\n}\nvar WatchLogLevel = /* @__PURE__ */ ((WatchLogLevel2) => {\n  WatchLogLevel2[WatchLogLevel2[\"None\"] = 0] = \"None\";\n  WatchLogLevel2[WatchLogLevel2[\"TriggerOnly\"] = 1] = \"TriggerOnly\";\n  WatchLogLevel2[WatchLogLevel2[\"Verbose\"] = 2] = \"Verbose\";\n  return WatchLogLevel2;\n})(WatchLogLevel || {});\nfunction getWatchFactory(host, watchLogLevel, log, getDetailWatchInfo2) {\n  setSysLog(watchLogLevel === 2 /* Verbose */ ? log : noop);\n  const plainInvokeFactory = {\n    watchFile: (file, callback, pollingInterval, options) => host.watchFile(file, callback, pollingInterval, options),\n    watchDirectory: (directory, callback, flags, options) => host.watchDirectory(directory, callback, (flags & 1 /* Recursive */) !== 0, options)\n  };\n  const triggerInvokingFactory = watchLogLevel !== 0 /* None */ ? {\n    watchFile: createTriggerLoggingAddWatch(\"watchFile\"),\n    watchDirectory: createTriggerLoggingAddWatch(\"watchDirectory\")\n  } : void 0;\n  const factory2 = watchLogLevel === 2 /* Verbose */ ? {\n    watchFile: createFileWatcherWithLogging,\n    watchDirectory: createDirectoryWatcherWithLogging\n  } : triggerInvokingFactory || plainInvokeFactory;\n  const excludeWatcherFactory = watchLogLevel === 2 /* Verbose */ ? createExcludeWatcherWithLogging : returnNoopFileWatcher;\n  return {\n    watchFile: createExcludeHandlingAddWatch(\"watchFile\"),\n    watchDirectory: createExcludeHandlingAddWatch(\"watchDirectory\")\n  };\n  function createExcludeHandlingAddWatch(key) {\n    return (file, cb, flags, options, detailInfo1, detailInfo2) => {\n      var _a;\n      return !matchesExclude(file, key === \"watchFile\" ? options == null ? void 0 : options.excludeFiles : options == null ? void 0 : options.excludeDirectories, useCaseSensitiveFileNames2(), ((_a = host.getCurrentDirectory) == null ? void 0 : _a.call(host)) || \"\") ? factory2[key].call(\n        /*thisArgs*/\n        void 0,\n        file,\n        cb,\n        flags,\n        options,\n        detailInfo1,\n        detailInfo2\n      ) : excludeWatcherFactory(file, flags, options, detailInfo1, detailInfo2);\n    };\n  }\n  function useCaseSensitiveFileNames2() {\n    return typeof host.useCaseSensitiveFileNames === \"boolean\" ? host.useCaseSensitiveFileNames : host.useCaseSensitiveFileNames();\n  }\n  function createExcludeWatcherWithLogging(file, flags, options, detailInfo1, detailInfo2) {\n    log(`ExcludeWatcher:: Added:: ${getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo2)}`);\n    return {\n      close: () => log(`ExcludeWatcher:: Close:: ${getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo2)}`)\n    };\n  }\n  function createFileWatcherWithLogging(file, cb, flags, options, detailInfo1, detailInfo2) {\n    log(`FileWatcher:: Added:: ${getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo2)}`);\n    const watcher = triggerInvokingFactory.watchFile(file, cb, flags, options, detailInfo1, detailInfo2);\n    return {\n      close: () => {\n        log(`FileWatcher:: Close:: ${getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo2)}`);\n        watcher.close();\n      }\n    };\n  }\n  function createDirectoryWatcherWithLogging(file, cb, flags, options, detailInfo1, detailInfo2) {\n    const watchInfo = `DirectoryWatcher:: Added:: ${getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo2)}`;\n    log(watchInfo);\n    const start = timestamp();\n    const watcher = triggerInvokingFactory.watchDirectory(file, cb, flags, options, detailInfo1, detailInfo2);\n    const elapsed = timestamp() - start;\n    log(`Elapsed:: ${elapsed}ms ${watchInfo}`);\n    return {\n      close: () => {\n        const watchInfo2 = `DirectoryWatcher:: Close:: ${getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo2)}`;\n        log(watchInfo2);\n        const start2 = timestamp();\n        watcher.close();\n        const elapsed2 = timestamp() - start2;\n        log(`Elapsed:: ${elapsed2}ms ${watchInfo2}`);\n      }\n    };\n  }\n  function createTriggerLoggingAddWatch(key) {\n    return (file, cb, flags, options, detailInfo1, detailInfo2) => plainInvokeFactory[key].call(\n      /*thisArgs*/\n      void 0,\n      file,\n      (...args) => {\n        const triggerredInfo = `${key === \"watchFile\" ? \"FileWatcher\" : \"DirectoryWatcher\"}:: Triggered with ${args[0]} ${args[1] !== void 0 ? args[1] : \"\"}:: ${getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo2)}`;\n        log(triggerredInfo);\n        const start = timestamp();\n        cb.call(\n          /*thisArg*/\n          void 0,\n          ...args\n        );\n        const elapsed = timestamp() - start;\n        log(`Elapsed:: ${elapsed}ms ${triggerredInfo}`);\n      },\n      flags,\n      options,\n      detailInfo1,\n      detailInfo2\n    );\n  }\n  function getWatchInfo(file, flags, options, detailInfo1, detailInfo2, getDetailWatchInfo3) {\n    return `WatchInfo: ${file} ${flags} ${JSON.stringify(options)} ${getDetailWatchInfo3 ? getDetailWatchInfo3(detailInfo1, detailInfo2) : detailInfo2 === void 0 ? detailInfo1 : `${detailInfo1} ${detailInfo2}`}`;\n  }\n}\nfunction getFallbackOptions(options) {\n  const fallbackPolling = options == null ? void 0 : options.fallbackPolling;\n  return {\n    watchFile: fallbackPolling !== void 0 ? fallbackPolling : 1 /* PriorityPollingInterval */\n  };\n}\nfunction closeFileWatcherOf(objWithWatcher) {\n  objWithWatcher.watcher.close();\n}\n\n// src/compiler/program.ts\nfunction findConfigFile(searchPath, fileExists, configName = \"tsconfig.json\") {\n  return forEachAncestorDirectory(searchPath, (ancestor) => {\n    const fileName = combinePaths(ancestor, configName);\n    return fileExists(fileName) ? fileName : void 0;\n  });\n}\nfunction resolveTripleslashReference(moduleName, containingFile) {\n  const basePath = getDirectoryPath(containingFile);\n  const referencedFileName = isRootedDiskPath(moduleName) ? moduleName : combinePaths(basePath, moduleName);\n  return normalizePath(referencedFileName);\n}\nfunction computeCommonSourceDirectoryOfFilenames(fileNames, currentDirectory, getCanonicalFileName) {\n  let commonPathComponents;\n  const failed2 = forEach(fileNames, (sourceFile) => {\n    const sourcePathComponents = getNormalizedPathComponents(sourceFile, currentDirectory);\n    sourcePathComponents.pop();\n    if (!commonPathComponents) {\n      commonPathComponents = sourcePathComponents;\n      return;\n    }\n    const n = Math.min(commonPathComponents.length, sourcePathComponents.length);\n    for (let i = 0; i < n; i++) {\n      if (getCanonicalFileName(commonPathComponents[i]) !== getCanonicalFileName(sourcePathComponents[i])) {\n        if (i === 0) {\n          return true;\n        }\n        commonPathComponents.length = i;\n        break;\n      }\n    }\n    if (sourcePathComponents.length < commonPathComponents.length) {\n      commonPathComponents.length = sourcePathComponents.length;\n    }\n  });\n  if (failed2) {\n    return \"\";\n  }\n  if (!commonPathComponents) {\n    return currentDirectory;\n  }\n  return getPathFromPathComponents(commonPathComponents);\n}\nfunction createCompilerHost(options, setParentNodes) {\n  return createCompilerHostWorker(options, setParentNodes);\n}\nfunction createGetSourceFile(readFile, setParentNodes) {\n  return (fileName, languageVersionOrOptions, onError) => {\n    let text;\n    try {\n      mark(\"beforeIORead\");\n      text = readFile(fileName);\n      mark(\"afterIORead\");\n      measure(\"I/O Read\", \"beforeIORead\", \"afterIORead\");\n    } catch (e) {\n      if (onError) {\n        onError(e.message);\n      }\n      text = \"\";\n    }\n    return text !== void 0 ? createSourceFile(fileName, text, languageVersionOrOptions, setParentNodes) : void 0;\n  };\n}\nfunction createWriteFileMeasuringIO(actualWriteFile, createDirectory, directoryExists) {\n  return (fileName, data, writeByteOrderMark, onError) => {\n    try {\n      mark(\"beforeIOWrite\");\n      writeFileEnsuringDirectories(\n        fileName,\n        data,\n        writeByteOrderMark,\n        actualWriteFile,\n        createDirectory,\n        directoryExists\n      );\n      mark(\"afterIOWrite\");\n      measure(\"I/O Write\", \"beforeIOWrite\", \"afterIOWrite\");\n    } catch (e) {\n      if (onError) {\n        onError(e.message);\n      }\n    }\n  };\n}\nfunction createCompilerHostWorker(options, setParentNodes, system = sys) {\n  const existingDirectories = /* @__PURE__ */ new Map();\n  const getCanonicalFileName = createGetCanonicalFileName(system.useCaseSensitiveFileNames);\n  function directoryExists(directoryPath) {\n    if (existingDirectories.has(directoryPath)) {\n      return true;\n    }\n    if ((compilerHost.directoryExists || system.directoryExists)(directoryPath)) {\n      existingDirectories.set(directoryPath, true);\n      return true;\n    }\n    return false;\n  }\n  function getDefaultLibLocation() {\n    return getDirectoryPath(normalizePath(system.getExecutingFilePath()));\n  }\n  const newLine = getNewLineCharacter(options);\n  const realpath = system.realpath && ((path) => system.realpath(path));\n  const compilerHost = {\n    getSourceFile: createGetSourceFile((fileName) => compilerHost.readFile(fileName), setParentNodes),\n    getDefaultLibLocation,\n    getDefaultLibFileName: (options2) => combinePaths(getDefaultLibLocation(), getDefaultLibFileName(options2)),\n    writeFile: createWriteFileMeasuringIO(\n      (path, data, writeByteOrderMark) => system.writeFile(path, data, writeByteOrderMark),\n      (path) => (compilerHost.createDirectory || system.createDirectory)(path),\n      (path) => directoryExists(path)\n    ),\n    getCurrentDirectory: memoize(() => system.getCurrentDirectory()),\n    useCaseSensitiveFileNames: () => system.useCaseSensitiveFileNames,\n    getCanonicalFileName,\n    getNewLine: () => newLine,\n    fileExists: (fileName) => system.fileExists(fileName),\n    readFile: (fileName) => system.readFile(fileName),\n    trace: (s) => system.write(s + newLine),\n    directoryExists: (directoryName) => system.directoryExists(directoryName),\n    getEnvironmentVariable: (name) => system.getEnvironmentVariable ? system.getEnvironmentVariable(name) : \"\",\n    getDirectories: (path) => system.getDirectories(path),\n    realpath,\n    readDirectory: (path, extensions, include, exclude, depth) => system.readDirectory(path, extensions, include, exclude, depth),\n    createDirectory: (d) => system.createDirectory(d),\n    createHash: maybeBind(system, system.createHash)\n  };\n  return compilerHost;\n}\nfunction changeCompilerHostLikeToUseCache(host, toPath3, getSourceFile) {\n  const originalReadFile = host.readFile;\n  const originalFileExists = host.fileExists;\n  const originalDirectoryExists = host.directoryExists;\n  const originalCreateDirectory = host.createDirectory;\n  const originalWriteFile = host.writeFile;\n  const readFileCache = /* @__PURE__ */ new Map();\n  const fileExistsCache = /* @__PURE__ */ new Map();\n  const directoryExistsCache = /* @__PURE__ */ new Map();\n  const sourceFileCache = /* @__PURE__ */ new Map();\n  const readFileWithCache = (fileName) => {\n    const key = toPath3(fileName);\n    const value = readFileCache.get(key);\n    if (value !== void 0) return value !== false ? value : void 0;\n    return setReadFileCache(key, fileName);\n  };\n  const setReadFileCache = (key, fileName) => {\n    const newValue = originalReadFile.call(host, fileName);\n    readFileCache.set(key, newValue !== void 0 ? newValue : false);\n    return newValue;\n  };\n  host.readFile = (fileName) => {\n    const key = toPath3(fileName);\n    const value = readFileCache.get(key);\n    if (value !== void 0) return value !== false ? value : void 0;\n    if (!fileExtensionIs(fileName, \".json\" /* Json */) && !isBuildInfoFile(fileName)) {\n      return originalReadFile.call(host, fileName);\n    }\n    return setReadFileCache(key, fileName);\n  };\n  const getSourceFileWithCache = getSourceFile ? (fileName, languageVersionOrOptions, onError, shouldCreateNewSourceFile) => {\n    const key = toPath3(fileName);\n    const impliedNodeFormat = typeof languageVersionOrOptions === \"object\" ? languageVersionOrOptions.impliedNodeFormat : void 0;\n    const forImpliedNodeFormat = sourceFileCache.get(impliedNodeFormat);\n    const value = forImpliedNodeFormat == null ? void 0 : forImpliedNodeFormat.get(key);\n    if (value) return value;\n    const sourceFile = getSourceFile(fileName, languageVersionOrOptions, onError, shouldCreateNewSourceFile);\n    if (sourceFile && (isDeclarationFileName(fileName) || fileExtensionIs(fileName, \".json\" /* Json */))) {\n      sourceFileCache.set(impliedNodeFormat, (forImpliedNodeFormat || /* @__PURE__ */ new Map()).set(key, sourceFile));\n    }\n    return sourceFile;\n  } : void 0;\n  host.fileExists = (fileName) => {\n    const key = toPath3(fileName);\n    const value = fileExistsCache.get(key);\n    if (value !== void 0) return value;\n    const newValue = originalFileExists.call(host, fileName);\n    fileExistsCache.set(key, !!newValue);\n    return newValue;\n  };\n  if (originalWriteFile) {\n    host.writeFile = (fileName, data, ...rest) => {\n      const key = toPath3(fileName);\n      fileExistsCache.delete(key);\n      const value = readFileCache.get(key);\n      if (value !== void 0 && value !== data) {\n        readFileCache.delete(key);\n        sourceFileCache.forEach((map2) => map2.delete(key));\n      } else if (getSourceFileWithCache) {\n        sourceFileCache.forEach((map2) => {\n          const sourceFile = map2.get(key);\n          if (sourceFile && sourceFile.text !== data) {\n            map2.delete(key);\n          }\n        });\n      }\n      originalWriteFile.call(host, fileName, data, ...rest);\n    };\n  }\n  if (originalDirectoryExists) {\n    host.directoryExists = (directory) => {\n      const key = toPath3(directory);\n      const value = directoryExistsCache.get(key);\n      if (value !== void 0) return value;\n      const newValue = originalDirectoryExists.call(host, directory);\n      directoryExistsCache.set(key, !!newValue);\n      return newValue;\n    };\n    if (originalCreateDirectory) {\n      host.createDirectory = (directory) => {\n        const key = toPath3(directory);\n        directoryExistsCache.delete(key);\n        originalCreateDirectory.call(host, directory);\n      };\n    }\n  }\n  return {\n    originalReadFile,\n    originalFileExists,\n    originalDirectoryExists,\n    originalCreateDirectory,\n    originalWriteFile,\n    getSourceFileWithCache,\n    readFileWithCache\n  };\n}\nfunction getPreEmitDiagnostics(program, sourceFile, cancellationToken) {\n  let diagnostics;\n  diagnostics = addRange(diagnostics, program.getConfigFileParsingDiagnostics());\n  diagnostics = addRange(diagnostics, program.getOptionsDiagnostics(cancellationToken));\n  diagnostics = addRange(diagnostics, program.getSyntacticDiagnostics(sourceFile, cancellationToken));\n  diagnostics = addRange(diagnostics, program.getGlobalDiagnostics(cancellationToken));\n  diagnostics = addRange(diagnostics, program.getSemanticDiagnostics(sourceFile, cancellationToken));\n  if (getEmitDeclarations(program.getCompilerOptions())) {\n    diagnostics = addRange(diagnostics, program.getDeclarationDiagnostics(sourceFile, cancellationToken));\n  }\n  return sortAndDeduplicateDiagnostics(diagnostics || emptyArray);\n}\nfunction formatDiagnostics(diagnostics, host) {\n  let output = \"\";\n  for (const diagnostic of diagnostics) {\n    output += formatDiagnostic(diagnostic, host);\n  }\n  return output;\n}\nfunction formatDiagnostic(diagnostic, host) {\n  const errorMessage = `${diagnosticCategoryName(diagnostic)} TS${diagnostic.code}: ${flattenDiagnosticMessageText(diagnostic.messageText, host.getNewLine())}${host.getNewLine()}`;\n  if (diagnostic.file) {\n    const { line, character } = getLineAndCharacterOfPosition(diagnostic.file, diagnostic.start);\n    const fileName = diagnostic.file.fileName;\n    const relativeFileName = convertToRelativePath(fileName, host.getCurrentDirectory(), (fileName2) => host.getCanonicalFileName(fileName2));\n    return `${relativeFileName}(${line + 1},${character + 1}): ` + errorMessage;\n  }\n  return errorMessage;\n}\nvar ForegroundColorEscapeSequences = /* @__PURE__ */ ((ForegroundColorEscapeSequences2) => {\n  ForegroundColorEscapeSequences2[\"Grey\"] = \"\\x1B[90m\";\n  ForegroundColorEscapeSequences2[\"Red\"] = \"\\x1B[91m\";\n  ForegroundColorEscapeSequences2[\"Yellow\"] = \"\\x1B[93m\";\n  ForegroundColorEscapeSequences2[\"Blue\"] = \"\\x1B[94m\";\n  ForegroundColorEscapeSequences2[\"Cyan\"] = \"\\x1B[96m\";\n  return ForegroundColorEscapeSequences2;\n})(ForegroundColorEscapeSequences || {});\nvar gutterStyleSequence = \"\\x1B[7m\";\nvar gutterSeparator = \" \";\nvar resetEscapeSequence = \"\\x1B[0m\";\nvar ellipsis = \"...\";\nvar halfIndent = \"  \";\nvar indent = \"    \";\nfunction getCategoryFormat(category) {\n  switch (category) {\n    case 1 /* Error */:\n      return \"\\x1B[91m\" /* Red */;\n    case 0 /* Warning */:\n      return \"\\x1B[93m\" /* Yellow */;\n    case 2 /* Suggestion */:\n      return Debug.fail(\"Should never get an Info diagnostic on the command line.\");\n    case 3 /* Message */:\n      return \"\\x1B[94m\" /* Blue */;\n  }\n}\nfunction formatColorAndReset(text, formatStyle) {\n  return formatStyle + text + resetEscapeSequence;\n}\nfunction formatCodeSpan(file, start, length2, indent3, squiggleColor, host) {\n  const { line: firstLine, character: firstLineChar } = getLineAndCharacterOfPosition(file, start);\n  const { line: lastLine, character: lastLineChar } = getLineAndCharacterOfPosition(file, start + length2);\n  const lastLineInFile = getLineAndCharacterOfPosition(file, file.text.length).line;\n  const hasMoreThanFiveLines = lastLine - firstLine >= 4;\n  let gutterWidth = (lastLine + 1 + \"\").length;\n  if (hasMoreThanFiveLines) {\n    gutterWidth = Math.max(ellipsis.length, gutterWidth);\n  }\n  let context = \"\";\n  for (let i = firstLine; i <= lastLine; i++) {\n    context += host.getNewLine();\n    if (hasMoreThanFiveLines && firstLine + 1 < i && i < lastLine - 1) {\n      context += indent3 + formatColorAndReset(ellipsis.padStart(gutterWidth), gutterStyleSequence) + gutterSeparator + host.getNewLine();\n      i = lastLine - 1;\n    }\n    const lineStart = getPositionOfLineAndCharacter(file, i, 0);\n    const lineEnd = i < lastLineInFile ? getPositionOfLineAndCharacter(file, i + 1, 0) : file.text.length;\n    let lineContent = file.text.slice(lineStart, lineEnd);\n    lineContent = lineContent.trimEnd();\n    lineContent = lineContent.replace(/\\t/g, \" \");\n    context += indent3 + formatColorAndReset((i + 1 + \"\").padStart(gutterWidth), gutterStyleSequence) + gutterSeparator;\n    context += lineContent + host.getNewLine();\n    context += indent3 + formatColorAndReset(\"\".padStart(gutterWidth), gutterStyleSequence) + gutterSeparator;\n    context += squiggleColor;\n    if (i === firstLine) {\n      const lastCharForLine = i === lastLine ? lastLineChar : void 0;\n      context += lineContent.slice(0, firstLineChar).replace(/\\S/g, \" \");\n      context += lineContent.slice(firstLineChar, lastCharForLine).replace(/./g, \"~\");\n    } else if (i === lastLine) {\n      context += lineContent.slice(0, lastLineChar).replace(/./g, \"~\");\n    } else {\n      context += lineContent.replace(/./g, \"~\");\n    }\n    context += resetEscapeSequence;\n  }\n  return context;\n}\nfunction formatLocation(file, start, host, color = formatColorAndReset) {\n  const { line: firstLine, character: firstLineChar } = getLineAndCharacterOfPosition(file, start);\n  const relativeFileName = host ? convertToRelativePath(file.fileName, host.getCurrentDirectory(), (fileName) => host.getCanonicalFileName(fileName)) : file.fileName;\n  let output = \"\";\n  output += color(relativeFileName, \"\\x1B[96m\" /* Cyan */);\n  output += \":\";\n  output += color(`${firstLine + 1}`, \"\\x1B[93m\" /* Yellow */);\n  output += \":\";\n  output += color(`${firstLineChar + 1}`, \"\\x1B[93m\" /* Yellow */);\n  return output;\n}\nfunction formatDiagnosticsWithColorAndContext(diagnostics, host) {\n  let output = \"\";\n  for (const diagnostic of diagnostics) {\n    if (diagnostic.file) {\n      const { file, start } = diagnostic;\n      output += formatLocation(file, start, host);\n      output += \" - \";\n    }\n    output += formatColorAndReset(diagnosticCategoryName(diagnostic), getCategoryFormat(diagnostic.category));\n    output += formatColorAndReset(` TS${diagnostic.code}: `, \"\\x1B[90m\" /* Grey */);\n    output += flattenDiagnosticMessageText(diagnostic.messageText, host.getNewLine());\n    if (diagnostic.file && diagnostic.code !== Diagnostics.File_appears_to_be_binary.code) {\n      output += host.getNewLine();\n      output += formatCodeSpan(diagnostic.file, diagnostic.start, diagnostic.length, \"\", getCategoryFormat(diagnostic.category), host);\n    }\n    if (diagnostic.relatedInformation) {\n      output += host.getNewLine();\n      for (const { file, start, length: length2, messageText } of diagnostic.relatedInformation) {\n        if (file) {\n          output += host.getNewLine();\n          output += halfIndent + formatLocation(file, start, host);\n          output += formatCodeSpan(file, start, length2, indent, \"\\x1B[96m\" /* Cyan */, host);\n        }\n        output += host.getNewLine();\n        output += indent + flattenDiagnosticMessageText(messageText, host.getNewLine());\n      }\n    }\n    output += host.getNewLine();\n  }\n  return output;\n}\nfunction flattenDiagnosticMessageText(diag2, newLine, indent3 = 0) {\n  if (isString(diag2)) {\n    return diag2;\n  } else if (diag2 === void 0) {\n    return \"\";\n  }\n  let result = \"\";\n  if (indent3) {\n    result += newLine;\n    for (let i = 0; i < indent3; i++) {\n      result += \"  \";\n    }\n  }\n  result += diag2.messageText;\n  indent3++;\n  if (diag2.next) {\n    for (const kid of diag2.next) {\n      result += flattenDiagnosticMessageText(kid, newLine, indent3);\n    }\n  }\n  return result;\n}\nfunction getModeForFileReference(ref, containingFileMode) {\n  return (isString(ref) ? containingFileMode : ref.resolutionMode) || containingFileMode;\n}\nfunction getModeForResolutionAtIndex(file, index, compilerOptions) {\n  return getModeForUsageLocationWorker(file, getModuleNameStringLiteralAt(file, index), compilerOptions);\n}\nfunction isExclusivelyTypeOnlyImportOrExport(decl) {\n  var _a;\n  if (isExportDeclaration(decl)) {\n    return decl.isTypeOnly;\n  }\n  if ((_a = decl.importClause) == null ? void 0 : _a.isTypeOnly) {\n    return true;\n  }\n  return false;\n}\nfunction getModeForUsageLocation(file, usage, compilerOptions) {\n  return getModeForUsageLocationWorker(file, usage, compilerOptions);\n}\nfunction getModeForUsageLocationWorker(file, usage, compilerOptions) {\n  if (isImportDeclaration(usage.parent) || isExportDeclaration(usage.parent) || isJSDocImportTag(usage.parent)) {\n    const isTypeOnly = isExclusivelyTypeOnlyImportOrExport(usage.parent);\n    if (isTypeOnly) {\n      const override = getResolutionModeOverride(usage.parent.attributes);\n      if (override) {\n        return override;\n      }\n    }\n  }\n  if (usage.parent.parent && isImportTypeNode(usage.parent.parent)) {\n    const override = getResolutionModeOverride(usage.parent.parent.attributes);\n    if (override) {\n      return override;\n    }\n  }\n  if (compilerOptions && importSyntaxAffectsModuleResolution(compilerOptions)) {\n    return getEmitSyntaxForUsageLocationWorker(file, usage, compilerOptions);\n  }\n}\nfunction getEmitSyntaxForUsageLocationWorker(file, usage, compilerOptions) {\n  var _a;\n  if (!compilerOptions) {\n    return void 0;\n  }\n  const exprParentParent = (_a = walkUpParenthesizedExpressions(usage.parent)) == null ? void 0 : _a.parent;\n  if (exprParentParent && isImportEqualsDeclaration(exprParentParent) || isRequireCall(\n    usage.parent,\n    /*requireStringLiteralLikeArgument*/\n    false\n  )) {\n    return 1 /* CommonJS */;\n  }\n  if (isImportCall(walkUpParenthesizedExpressions(usage.parent))) {\n    return shouldTransformImportCallWorker(file, compilerOptions) ? 1 /* CommonJS */ : 99 /* ESNext */;\n  }\n  const fileEmitMode = getEmitModuleFormatOfFileWorker(file, compilerOptions);\n  return fileEmitMode === 1 /* CommonJS */ ? 1 /* CommonJS */ : emitModuleKindIsNonNodeESM(fileEmitMode) || fileEmitMode === 200 /* Preserve */ ? 99 /* ESNext */ : void 0;\n}\nfunction getResolutionModeOverride(node, grammarErrorOnNode) {\n  if (!node) return void 0;\n  if (length(node.elements) !== 1) {\n    grammarErrorOnNode == null ? void 0 : grammarErrorOnNode(\n      node,\n      node.token === 118 /* WithKeyword */ ? Diagnostics.Type_import_attributes_should_have_exactly_one_key_resolution_mode_with_value_import_or_require : Diagnostics.Type_import_assertions_should_have_exactly_one_key_resolution_mode_with_value_import_or_require\n    );\n    return void 0;\n  }\n  const elem = node.elements[0];\n  if (!isStringLiteralLike(elem.name)) return void 0;\n  if (elem.name.text !== \"resolution-mode\") {\n    grammarErrorOnNode == null ? void 0 : grammarErrorOnNode(\n      elem.name,\n      node.token === 118 /* WithKeyword */ ? Diagnostics.resolution_mode_is_the_only_valid_key_for_type_import_attributes : Diagnostics.resolution_mode_is_the_only_valid_key_for_type_import_assertions\n    );\n    return void 0;\n  }\n  if (!isStringLiteralLike(elem.value)) return void 0;\n  if (elem.value.text !== \"import\" && elem.value.text !== \"require\") {\n    grammarErrorOnNode == null ? void 0 : grammarErrorOnNode(elem.value, Diagnostics.resolution_mode_should_be_either_require_or_import);\n    return void 0;\n  }\n  return elem.value.text === \"import\" ? 99 /* ESNext */ : 1 /* CommonJS */;\n}\nvar emptyResolution = {\n  resolvedModule: void 0,\n  resolvedTypeReferenceDirective: void 0\n};\nfunction getModuleResolutionName(literal) {\n  return literal.text;\n}\nvar moduleResolutionNameAndModeGetter = {\n  getName: getModuleResolutionName,\n  getMode: (entry, file, compilerOptions) => getModeForUsageLocation(file, entry, compilerOptions)\n};\nfunction createModuleResolutionLoader(containingFile, redirectedReference, options, host, cache) {\n  return {\n    nameAndMode: moduleResolutionNameAndModeGetter,\n    resolve: (moduleName, resolutionMode) => resolveModuleName(\n      moduleName,\n      containingFile,\n      options,\n      host,\n      cache,\n      redirectedReference,\n      resolutionMode\n    )\n  };\n}\nfunction getTypeReferenceResolutionName(entry) {\n  return !isString(entry) ? entry.fileName : entry;\n}\nvar typeReferenceResolutionNameAndModeGetter = {\n  getName: getTypeReferenceResolutionName,\n  getMode: (entry, file, compilerOptions) => getModeForFileReference(entry, file && getDefaultResolutionModeForFileWorker(file, compilerOptions))\n};\nfunction createTypeReferenceResolutionLoader(containingFile, redirectedReference, options, host, cache) {\n  return {\n    nameAndMode: typeReferenceResolutionNameAndModeGetter,\n    resolve: (typeRef, resoluionMode) => resolveTypeReferenceDirective(\n      typeRef,\n      containingFile,\n      options,\n      host,\n      redirectedReference,\n      cache,\n      resoluionMode\n    )\n  };\n}\nfunction loadWithModeAwareCache(entries, containingFile, redirectedReference, options, containingSourceFile, host, resolutionCache, createLoader) {\n  if (entries.length === 0) return emptyArray;\n  const resolutions = [];\n  const cache = /* @__PURE__ */ new Map();\n  const loader = createLoader(containingFile, redirectedReference, options, host, resolutionCache);\n  for (const entry of entries) {\n    const name = loader.nameAndMode.getName(entry);\n    const mode = loader.nameAndMode.getMode(entry, containingSourceFile, (redirectedReference == null ? void 0 : redirectedReference.commandLine.options) || options);\n    const key = createModeAwareCacheKey(name, mode);\n    let result = cache.get(key);\n    if (!result) {\n      cache.set(key, result = loader.resolve(name, mode));\n    }\n    resolutions.push(result);\n  }\n  return resolutions;\n}\nvar inferredTypesContainingFile = \"__inferred type names__.ts\";\nfunction getInferredLibraryNameResolveFrom(options, currentDirectory, libFileName) {\n  const containingDirectory = options.configFilePath ? getDirectoryPath(options.configFilePath) : currentDirectory;\n  return combinePaths(containingDirectory, `__lib_node_modules_lookup_${libFileName}__.ts`);\n}\nfunction getLibraryNameFromLibFileName(libFileName) {\n  const components = libFileName.split(\".\");\n  let path = components[1];\n  let i = 2;\n  while (components[i] && components[i] !== \"d\") {\n    path += (i === 2 ? \"/\" : \"-\") + components[i];\n    i++;\n  }\n  return \"@typescript/lib-\" + path;\n}\nfunction isReferencedFile(reason) {\n  switch (reason == null ? void 0 : reason.kind) {\n    case 3 /* Import */:\n    case 4 /* ReferenceFile */:\n    case 5 /* TypeReferenceDirective */:\n    case 7 /* LibReferenceDirective */:\n      return true;\n    default:\n      return false;\n  }\n}\nfunction isReferenceFileLocation(location) {\n  return location.pos !== void 0;\n}\nfunction getReferencedFileLocation(program, ref) {\n  var _a, _b, _c, _d;\n  const file = Debug.checkDefined(program.getSourceFileByPath(ref.file));\n  const { kind, index } = ref;\n  let pos, end, packageId;\n  switch (kind) {\n    case 3 /* Import */:\n      const importLiteral = getModuleNameStringLiteralAt(file, index);\n      packageId = (_b = (_a = program.getResolvedModuleFromModuleSpecifier(importLiteral, file)) == null ? void 0 : _a.resolvedModule) == null ? void 0 : _b.packageId;\n      if (importLiteral.pos === -1) return { file, packageId, text: importLiteral.text };\n      pos = skipTrivia(file.text, importLiteral.pos);\n      end = importLiteral.end;\n      break;\n    case 4 /* ReferenceFile */:\n      ({ pos, end } = file.referencedFiles[index]);\n      break;\n    case 5 /* TypeReferenceDirective */:\n      ({ pos, end } = file.typeReferenceDirectives[index]);\n      packageId = (_d = (_c = program.getResolvedTypeReferenceDirectiveFromTypeReferenceDirective(file.typeReferenceDirectives[index], file)) == null ? void 0 : _c.resolvedTypeReferenceDirective) == null ? void 0 : _d.packageId;\n      break;\n    case 7 /* LibReferenceDirective */:\n      ({ pos, end } = file.libReferenceDirectives[index]);\n      break;\n    default:\n      return Debug.assertNever(kind);\n  }\n  return { file, pos, end, packageId };\n}\nfunction isProgramUptoDate(program, rootFileNames, newOptions, getSourceVersion, fileExists, hasInvalidatedResolutions, hasInvalidatedLibResolutions, hasChangedAutomaticTypeDirectiveNames, getParsedCommandLine, projectReferences) {\n  if (!program || (hasChangedAutomaticTypeDirectiveNames == null ? void 0 : hasChangedAutomaticTypeDirectiveNames())) return false;\n  if (!arrayIsEqualTo(program.getRootFileNames(), rootFileNames)) return false;\n  let seenResolvedRefs;\n  if (!arrayIsEqualTo(program.getProjectReferences(), projectReferences, projectReferenceUptoDate)) return false;\n  if (program.getSourceFiles().some(sourceFileNotUptoDate)) return false;\n  const missingPaths = program.getMissingFilePaths();\n  if (missingPaths && forEachEntry(missingPaths, fileExists)) return false;\n  const currentOptions = program.getCompilerOptions();\n  if (!compareDataObjects(currentOptions, newOptions)) return false;\n  if (program.resolvedLibReferences && forEachEntry(program.resolvedLibReferences, (_value, libFileName) => hasInvalidatedLibResolutions(libFileName))) return false;\n  if (currentOptions.configFile && newOptions.configFile) return currentOptions.configFile.text === newOptions.configFile.text;\n  return true;\n  function sourceFileNotUptoDate(sourceFile) {\n    return !sourceFileVersionUptoDate(sourceFile) || hasInvalidatedResolutions(sourceFile.path);\n  }\n  function sourceFileVersionUptoDate(sourceFile) {\n    return sourceFile.version === getSourceVersion(sourceFile.resolvedPath, sourceFile.fileName);\n  }\n  function projectReferenceUptoDate(oldRef, newRef, index) {\n    return projectReferenceIsEqualTo(oldRef, newRef) && resolvedProjectReferenceUptoDate(program.getResolvedProjectReferences()[index], oldRef);\n  }\n  function resolvedProjectReferenceUptoDate(oldResolvedRef, oldRef) {\n    if (oldResolvedRef) {\n      if (contains(seenResolvedRefs, oldResolvedRef)) return true;\n      const refPath2 = resolveProjectReferencePath(oldRef);\n      const newParsedCommandLine = getParsedCommandLine(refPath2);\n      if (!newParsedCommandLine) return false;\n      if (oldResolvedRef.commandLine.options.configFile !== newParsedCommandLine.options.configFile) return false;\n      if (!arrayIsEqualTo(oldResolvedRef.commandLine.fileNames, newParsedCommandLine.fileNames)) return false;\n      (seenResolvedRefs || (seenResolvedRefs = [])).push(oldResolvedRef);\n      return !forEach(\n        oldResolvedRef.references,\n        (childResolvedRef, index) => !resolvedProjectReferenceUptoDate(\n          childResolvedRef,\n          oldResolvedRef.commandLine.projectReferences[index]\n        )\n      );\n    }\n    const refPath = resolveProjectReferencePath(oldRef);\n    return !getParsedCommandLine(refPath);\n  }\n}\nfunction getConfigFileParsingDiagnostics(configFileParseResult) {\n  return configFileParseResult.options.configFile ? [...configFileParseResult.options.configFile.parseDiagnostics, ...configFileParseResult.errors] : configFileParseResult.errors;\n}\nfunction getImpliedNodeFormatForFile(fileName, packageJsonInfoCache, host, options) {\n  const result = getImpliedNodeFormatForFileWorker(fileName, packageJsonInfoCache, host, options);\n  return typeof result === \"object\" ? result.impliedNodeFormat : result;\n}\nfunction getImpliedNodeFormatForFileWorker(fileName, packageJsonInfoCache, host, options) {\n  const moduleResolution = getEmitModuleResolutionKind(options);\n  const shouldLookupFromPackageJson = 3 /* Node16 */ <= moduleResolution && moduleResolution <= 99 /* NodeNext */ || pathContainsNodeModules(fileName);\n  return fileExtensionIsOneOf(fileName, [\".d.mts\" /* Dmts */, \".mts\" /* Mts */, \".mjs\" /* Mjs */]) ? 99 /* ESNext */ : fileExtensionIsOneOf(fileName, [\".d.cts\" /* Dcts */, \".cts\" /* Cts */, \".cjs\" /* Cjs */]) ? 1 /* CommonJS */ : shouldLookupFromPackageJson && fileExtensionIsOneOf(fileName, [\".d.ts\" /* Dts */, \".ts\" /* Ts */, \".tsx\" /* Tsx */, \".js\" /* Js */, \".jsx\" /* Jsx */]) ? lookupFromPackageJson() : void 0;\n  function lookupFromPackageJson() {\n    const state = getTemporaryModuleResolutionState(packageJsonInfoCache, host, options);\n    const packageJsonLocations = [];\n    state.failedLookupLocations = packageJsonLocations;\n    state.affectingLocations = packageJsonLocations;\n    const packageJsonScope = getPackageScopeForPath(getDirectoryPath(fileName), state);\n    const impliedNodeFormat = (packageJsonScope == null ? void 0 : packageJsonScope.contents.packageJsonContent.type) === \"module\" ? 99 /* ESNext */ : 1 /* CommonJS */;\n    return { impliedNodeFormat, packageJsonLocations, packageJsonScope };\n  }\n}\nvar plainJSErrors = /* @__PURE__ */ new Set([\n  // binder errors\n  Diagnostics.Cannot_redeclare_block_scoped_variable_0.code,\n  Diagnostics.A_module_cannot_have_multiple_default_exports.code,\n  Diagnostics.Another_export_default_is_here.code,\n  Diagnostics.The_first_export_default_is_here.code,\n  Diagnostics.Identifier_expected_0_is_a_reserved_word_at_the_top_level_of_a_module.code,\n  Diagnostics.Identifier_expected_0_is_a_reserved_word_in_strict_mode_Modules_are_automatically_in_strict_mode.code,\n  Diagnostics.Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here.code,\n  Diagnostics.constructor_is_a_reserved_word.code,\n  Diagnostics.delete_cannot_be_called_on_an_identifier_in_strict_mode.code,\n  Diagnostics.Code_contained_in_a_class_is_evaluated_in_JavaScript_s_strict_mode_which_does_not_allow_this_use_of_0_For_more_information_see_https_Colon_Slash_Slashdeveloper_mozilla_org_Slashen_US_Slashdocs_SlashWeb_SlashJavaScript_SlashReference_SlashStrict_mode.code,\n  Diagnostics.Invalid_use_of_0_Modules_are_automatically_in_strict_mode.code,\n  Diagnostics.Invalid_use_of_0_in_strict_mode.code,\n  Diagnostics.A_label_is_not_allowed_here.code,\n  Diagnostics.with_statements_are_not_allowed_in_strict_mode.code,\n  // grammar errors\n  Diagnostics.A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement.code,\n  Diagnostics.A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement.code,\n  Diagnostics.A_class_declaration_without_the_default_modifier_must_have_a_name.code,\n  Diagnostics.A_class_member_cannot_have_the_0_keyword.code,\n  Diagnostics.A_comma_expression_is_not_allowed_in_a_computed_property_name.code,\n  Diagnostics.A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement.code,\n  Diagnostics.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement.code,\n  Diagnostics.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement.code,\n  Diagnostics.A_default_clause_cannot_appear_more_than_once_in_a_switch_statement.code,\n  Diagnostics.A_default_export_must_be_at_the_top_level_of_a_file_or_module_declaration.code,\n  Diagnostics.A_definite_assignment_assertion_is_not_permitted_in_this_context.code,\n  Diagnostics.A_destructuring_declaration_must_have_an_initializer.code,\n  Diagnostics.A_get_accessor_cannot_have_parameters.code,\n  Diagnostics.A_rest_element_cannot_contain_a_binding_pattern.code,\n  Diagnostics.A_rest_element_cannot_have_a_property_name.code,\n  Diagnostics.A_rest_element_cannot_have_an_initializer.code,\n  Diagnostics.A_rest_element_must_be_last_in_a_destructuring_pattern.code,\n  Diagnostics.A_rest_parameter_cannot_have_an_initializer.code,\n  Diagnostics.A_rest_parameter_must_be_last_in_a_parameter_list.code,\n  Diagnostics.A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma.code,\n  Diagnostics.A_return_statement_cannot_be_used_inside_a_class_static_block.code,\n  Diagnostics.A_set_accessor_cannot_have_rest_parameter.code,\n  Diagnostics.A_set_accessor_must_have_exactly_one_parameter.code,\n  Diagnostics.An_export_declaration_can_only_be_used_at_the_top_level_of_a_module.code,\n  Diagnostics.An_export_declaration_cannot_have_modifiers.code,\n  Diagnostics.An_import_declaration_can_only_be_used_at_the_top_level_of_a_module.code,\n  Diagnostics.An_import_declaration_cannot_have_modifiers.code,\n  Diagnostics.An_object_member_cannot_be_declared_optional.code,\n  Diagnostics.Argument_of_dynamic_import_cannot_be_spread_element.code,\n  Diagnostics.Cannot_assign_to_private_method_0_Private_methods_are_not_writable.code,\n  Diagnostics.Cannot_redeclare_identifier_0_in_catch_clause.code,\n  Diagnostics.Catch_clause_variable_cannot_have_an_initializer.code,\n  Diagnostics.Class_decorators_can_t_be_used_with_static_private_identifier_Consider_removing_the_experimental_decorator.code,\n  Diagnostics.Classes_can_only_extend_a_single_class.code,\n  Diagnostics.Classes_may_not_have_a_field_named_constructor.code,\n  Diagnostics.Did_you_mean_to_use_a_Colon_An_can_only_follow_a_property_name_when_the_containing_object_literal_is_part_of_a_destructuring_pattern.code,\n  Diagnostics.Duplicate_label_0.code,\n  Diagnostics.Dynamic_imports_can_only_accept_a_module_specifier_and_an_optional_set_of_attributes_as_arguments.code,\n  Diagnostics.for_await_loops_cannot_be_used_inside_a_class_static_block.code,\n  Diagnostics.JSX_attributes_must_only_be_assigned_a_non_empty_expression.code,\n  Diagnostics.JSX_elements_cannot_have_multiple_attributes_with_the_same_name.code,\n  Diagnostics.JSX_expressions_may_not_use_the_comma_operator_Did_you_mean_to_write_an_array.code,\n  Diagnostics.JSX_property_access_expressions_cannot_include_JSX_namespace_names.code,\n  Diagnostics.Jump_target_cannot_cross_function_boundary.code,\n  Diagnostics.Line_terminator_not_permitted_before_arrow.code,\n  Diagnostics.Modifiers_cannot_appear_here.code,\n  Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement.code,\n  Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement.code,\n  Diagnostics.Private_identifiers_are_not_allowed_outside_class_bodies.code,\n  Diagnostics.Private_identifiers_are_only_allowed_in_class_bodies_and_may_only_be_used_as_part_of_a_class_member_declaration_property_access_or_on_the_left_hand_side_of_an_in_expression.code,\n  Diagnostics.Property_0_is_not_accessible_outside_class_1_because_it_has_a_private_identifier.code,\n  Diagnostics.Tagged_template_expressions_are_not_permitted_in_an_optional_chain.code,\n  Diagnostics.The_left_hand_side_of_a_for_of_statement_may_not_be_async.code,\n  Diagnostics.The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer.code,\n  Diagnostics.The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer.code,\n  Diagnostics.Trailing_comma_not_allowed.code,\n  Diagnostics.Variable_declaration_list_cannot_be_empty.code,\n  Diagnostics._0_and_1_operations_cannot_be_mixed_without_parentheses.code,\n  Diagnostics._0_expected.code,\n  Diagnostics._0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2.code,\n  Diagnostics._0_list_cannot_be_empty.code,\n  Diagnostics._0_modifier_already_seen.code,\n  Diagnostics._0_modifier_cannot_appear_on_a_constructor_declaration.code,\n  Diagnostics._0_modifier_cannot_appear_on_a_module_or_namespace_element.code,\n  Diagnostics._0_modifier_cannot_appear_on_a_parameter.code,\n  Diagnostics._0_modifier_cannot_appear_on_class_elements_of_this_kind.code,\n  Diagnostics._0_modifier_cannot_be_used_here.code,\n  Diagnostics._0_modifier_must_precede_1_modifier.code,\n  Diagnostics._0_declarations_can_only_be_declared_inside_a_block.code,\n  Diagnostics._0_declarations_must_be_initialized.code,\n  Diagnostics.extends_clause_already_seen.code,\n  Diagnostics.let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations.code,\n  Diagnostics.Class_constructor_may_not_be_a_generator.code,\n  Diagnostics.Class_constructor_may_not_be_an_accessor.code,\n  Diagnostics.await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules.code,\n  Diagnostics.await_using_statements_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules.code,\n  Diagnostics.Private_field_0_must_be_declared_in_an_enclosing_class.code,\n  // Type errors\n  Diagnostics.This_condition_will_always_return_0_since_JavaScript_compares_objects_by_reference_not_value.code\n]);\nfunction shouldProgramCreateNewSourceFiles(program, newOptions) {\n  if (!program) return false;\n  return optionsHaveChanges(program.getCompilerOptions(), newOptions, sourceFileAffectingCompilerOptions);\n}\nfunction createCreateProgramOptions(rootNames, options, host, oldProgram, configFileParsingDiagnostics, typeScriptVersion3) {\n  return {\n    rootNames,\n    options,\n    host,\n    oldProgram,\n    configFileParsingDiagnostics,\n    typeScriptVersion: typeScriptVersion3\n  };\n}\nfunction createProgram(_rootNamesOrOptions, _options, _host, _oldProgram, _configFileParsingDiagnostics) {\n  var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p;\n  let _createProgramOptions = isArray(_rootNamesOrOptions) ? createCreateProgramOptions(_rootNamesOrOptions, _options, _host, _oldProgram, _configFileParsingDiagnostics) : _rootNamesOrOptions;\n  const { rootNames, options, configFileParsingDiagnostics, projectReferences, typeScriptVersion: typeScriptVersion3, host: createProgramOptionsHost } = _createProgramOptions;\n  let { oldProgram } = _createProgramOptions;\n  _createProgramOptions = void 0;\n  _rootNamesOrOptions = void 0;\n  for (const option of commandLineOptionOfCustomType) {\n    if (hasProperty(options, option.name)) {\n      if (typeof options[option.name] === \"string\") {\n        throw new Error(`${option.name} is a string value; tsconfig JSON must be parsed with parseJsonSourceFileConfigFileContent or getParsedCommandLineOfConfigFile before passing to createProgram`);\n      }\n    }\n  }\n  const reportInvalidIgnoreDeprecations = memoize(() => createOptionValueDiagnostic(\"ignoreDeprecations\", Diagnostics.Invalid_value_for_ignoreDeprecations));\n  let processingDefaultLibFiles;\n  let processingOtherFiles;\n  let files;\n  let symlinks;\n  let typeChecker;\n  let classifiableNames;\n  let filesWithReferencesProcessed;\n  let cachedBindAndCheckDiagnosticsForFile;\n  let cachedDeclarationDiagnosticsForFile;\n  const programDiagnostics = createProgramDiagnostics(getCompilerOptionsObjectLiteralSyntax);\n  let automaticTypeDirectiveNames;\n  let automaticTypeDirectiveResolutions;\n  let resolvedLibReferences;\n  let resolvedLibProcessing;\n  let resolvedModules;\n  let resolvedModulesProcessing;\n  let resolvedTypeReferenceDirectiveNames;\n  let resolvedTypeReferenceDirectiveNamesProcessing;\n  let packageMap;\n  const maxNodeModuleJsDepth = typeof options.maxNodeModuleJsDepth === \"number\" ? options.maxNodeModuleJsDepth : 0;\n  let currentNodeModulesDepth = 0;\n  const modulesWithElidedImports = /* @__PURE__ */ new Map();\n  const sourceFilesFoundSearchingNodeModules = /* @__PURE__ */ new Map();\n  (_a = tracing) == null ? void 0 : _a.push(\n    tracing.Phase.Program,\n    \"createProgram\",\n    { configFilePath: options.configFilePath, rootDir: options.rootDir },\n    /*separateBeginAndEnd*/\n    true\n  );\n  mark(\"beforeProgram\");\n  const host = createProgramOptionsHost || createCompilerHost(options);\n  const configParsingHost = parseConfigHostFromCompilerHostLike(host);\n  let skipDefaultLib = options.noLib;\n  const getDefaultLibraryFileName = memoize(() => host.getDefaultLibFileName(options));\n  const defaultLibraryPath = host.getDefaultLibLocation ? host.getDefaultLibLocation() : getDirectoryPath(getDefaultLibraryFileName());\n  let skipVerifyCompilerOptions = false;\n  const currentDirectory = host.getCurrentDirectory();\n  const supportedExtensions = getSupportedExtensions(options);\n  const supportedExtensionsWithJsonIfResolveJsonModule = getSupportedExtensionsWithJsonIfResolveJsonModule(options, supportedExtensions);\n  const hasEmitBlockingDiagnostics = /* @__PURE__ */ new Map();\n  let _compilerOptionsObjectLiteralSyntax;\n  let _compilerOptionsPropertySyntax;\n  let moduleResolutionCache;\n  let actualResolveModuleNamesWorker;\n  const hasInvalidatedResolutions = host.hasInvalidatedResolutions || returnFalse;\n  if (host.resolveModuleNameLiterals) {\n    actualResolveModuleNamesWorker = host.resolveModuleNameLiterals.bind(host);\n    moduleResolutionCache = (_b = host.getModuleResolutionCache) == null ? void 0 : _b.call(host);\n  } else if (host.resolveModuleNames) {\n    actualResolveModuleNamesWorker = (moduleNames, containingFile, redirectedReference, options2, containingSourceFile, reusedNames) => host.resolveModuleNames(\n      moduleNames.map(getModuleResolutionName),\n      containingFile,\n      reusedNames == null ? void 0 : reusedNames.map(getModuleResolutionName),\n      redirectedReference,\n      options2,\n      containingSourceFile\n    ).map(\n      (resolved) => resolved ? resolved.extension !== void 0 ? { resolvedModule: resolved } : (\n        // An older host may have omitted extension, in which case we should infer it from the file extension of resolvedFileName.\n        { resolvedModule: { ...resolved, extension: extensionFromPath(resolved.resolvedFileName) } }\n      ) : emptyResolution\n    );\n    moduleResolutionCache = (_c = host.getModuleResolutionCache) == null ? void 0 : _c.call(host);\n  } else {\n    moduleResolutionCache = createModuleResolutionCache(currentDirectory, getCanonicalFileName, options);\n    actualResolveModuleNamesWorker = (moduleNames, containingFile, redirectedReference, options2, containingSourceFile) => loadWithModeAwareCache(\n      moduleNames,\n      containingFile,\n      redirectedReference,\n      options2,\n      containingSourceFile,\n      host,\n      moduleResolutionCache,\n      createModuleResolutionLoader\n    );\n  }\n  let actualResolveTypeReferenceDirectiveNamesWorker;\n  if (host.resolveTypeReferenceDirectiveReferences) {\n    actualResolveTypeReferenceDirectiveNamesWorker = host.resolveTypeReferenceDirectiveReferences.bind(host);\n  } else if (host.resolveTypeReferenceDirectives) {\n    actualResolveTypeReferenceDirectiveNamesWorker = (typeDirectiveNames, containingFile, redirectedReference, options2, containingSourceFile) => host.resolveTypeReferenceDirectives(\n      typeDirectiveNames.map(getTypeReferenceResolutionName),\n      containingFile,\n      redirectedReference,\n      options2,\n      containingSourceFile == null ? void 0 : containingSourceFile.impliedNodeFormat\n    ).map((resolvedTypeReferenceDirective) => ({ resolvedTypeReferenceDirective }));\n  } else {\n    const typeReferenceDirectiveResolutionCache = createTypeReferenceDirectiveResolutionCache(\n      currentDirectory,\n      getCanonicalFileName,\n      /*options*/\n      void 0,\n      moduleResolutionCache == null ? void 0 : moduleResolutionCache.getPackageJsonInfoCache(),\n      moduleResolutionCache == null ? void 0 : moduleResolutionCache.optionsToRedirectsKey\n    );\n    actualResolveTypeReferenceDirectiveNamesWorker = (typeDirectiveNames, containingFile, redirectedReference, options2, containingSourceFile) => loadWithModeAwareCache(\n      typeDirectiveNames,\n      containingFile,\n      redirectedReference,\n      options2,\n      containingSourceFile,\n      host,\n      typeReferenceDirectiveResolutionCache,\n      createTypeReferenceResolutionLoader\n    );\n  }\n  const hasInvalidatedLibResolutions = host.hasInvalidatedLibResolutions || returnFalse;\n  let actualResolveLibrary;\n  if (host.resolveLibrary) {\n    actualResolveLibrary = host.resolveLibrary.bind(host);\n  } else {\n    const libraryResolutionCache = createModuleResolutionCache(currentDirectory, getCanonicalFileName, options, moduleResolutionCache == null ? void 0 : moduleResolutionCache.getPackageJsonInfoCache());\n    actualResolveLibrary = (libraryName, resolveFrom, options2) => resolveLibrary(libraryName, resolveFrom, options2, host, libraryResolutionCache);\n  }\n  const packageIdToSourceFile = /* @__PURE__ */ new Map();\n  let sourceFileToPackageName = /* @__PURE__ */ new Map();\n  let redirectTargetsMap = createMultiMap();\n  let usesUriStyleNodeCoreModules;\n  const filesByName = /* @__PURE__ */ new Map();\n  let missingFileNames = /* @__PURE__ */ new Map();\n  const filesByNameIgnoreCase = host.useCaseSensitiveFileNames() ? /* @__PURE__ */ new Map() : void 0;\n  let resolvedProjectReferences;\n  let projectReferenceRedirects;\n  let mapSourceFileToResolvedRef;\n  let mapOutputFileToResolvedRef;\n  const useSourceOfProjectReferenceRedirect = !!((_d = host.useSourceOfProjectReferenceRedirect) == null ? void 0 : _d.call(host)) && !options.disableSourceOfProjectReferenceRedirect;\n  const { onProgramCreateComplete, fileExists, directoryExists } = updateHostForUseSourceOfProjectReferenceRedirect({\n    compilerHost: host,\n    getSymlinkCache,\n    useSourceOfProjectReferenceRedirect,\n    toPath: toPath3,\n    getResolvedProjectReferences,\n    getRedirectFromOutput,\n    forEachResolvedProjectReference: forEachResolvedProjectReference2\n  });\n  const readFile = host.readFile.bind(host);\n  (_e = tracing) == null ? void 0 : _e.push(tracing.Phase.Program, \"shouldProgramCreateNewSourceFiles\", { hasOldProgram: !!oldProgram });\n  const shouldCreateNewSourceFile = shouldProgramCreateNewSourceFiles(oldProgram, options);\n  (_f = tracing) == null ? void 0 : _f.pop();\n  let structureIsReused;\n  (_g = tracing) == null ? void 0 : _g.push(tracing.Phase.Program, \"tryReuseStructureFromOldProgram\", {});\n  structureIsReused = tryReuseStructureFromOldProgram();\n  (_h = tracing) == null ? void 0 : _h.pop();\n  if (structureIsReused !== 2 /* Completely */) {\n    processingDefaultLibFiles = [];\n    processingOtherFiles = [];\n    if (projectReferences) {\n      if (!resolvedProjectReferences) {\n        resolvedProjectReferences = projectReferences.map(parseProjectReferenceConfigFile);\n      }\n      if (rootNames.length) {\n        resolvedProjectReferences == null ? void 0 : resolvedProjectReferences.forEach((parsedRef, index) => {\n          if (!parsedRef) return;\n          const out = parsedRef.commandLine.options.outFile;\n          if (useSourceOfProjectReferenceRedirect) {\n            if (out || getEmitModuleKind(parsedRef.commandLine.options) === 0 /* None */) {\n              for (const fileName of parsedRef.commandLine.fileNames) {\n                processProjectReferenceFile(fileName, { kind: 1 /* SourceFromProjectReference */, index });\n              }\n            }\n          } else {\n            if (out) {\n              processProjectReferenceFile(changeExtension(out, \".d.ts\"), { kind: 2 /* OutputFromProjectReference */, index });\n            } else if (getEmitModuleKind(parsedRef.commandLine.options) === 0 /* None */) {\n              const getCommonSourceDirectory3 = memoize(() => getCommonSourceDirectoryOfConfig(parsedRef.commandLine, !host.useCaseSensitiveFileNames()));\n              for (const fileName of parsedRef.commandLine.fileNames) {\n                if (!isDeclarationFileName(fileName) && !fileExtensionIs(fileName, \".json\" /* Json */)) {\n                  processProjectReferenceFile(getOutputDeclarationFileName(fileName, parsedRef.commandLine, !host.useCaseSensitiveFileNames(), getCommonSourceDirectory3), { kind: 2 /* OutputFromProjectReference */, index });\n                }\n              }\n            }\n          }\n        });\n      }\n    }\n    (_i = tracing) == null ? void 0 : _i.push(tracing.Phase.Program, \"processRootFiles\", { count: rootNames.length });\n    forEach(rootNames, (name, index) => processRootFile(\n      name,\n      /*isDefaultLib*/\n      false,\n      /*ignoreNoDefaultLib*/\n      false,\n      { kind: 0 /* RootFile */, index }\n    ));\n    (_j = tracing) == null ? void 0 : _j.pop();\n    automaticTypeDirectiveNames ?? (automaticTypeDirectiveNames = rootNames.length ? getAutomaticTypeDirectiveNames(options, host) : emptyArray);\n    automaticTypeDirectiveResolutions = createModeAwareCache();\n    if (automaticTypeDirectiveNames.length) {\n      (_k = tracing) == null ? void 0 : _k.push(tracing.Phase.Program, \"processTypeReferences\", { count: automaticTypeDirectiveNames.length });\n      const containingDirectory = options.configFilePath ? getDirectoryPath(options.configFilePath) : currentDirectory;\n      const containingFilename = combinePaths(containingDirectory, inferredTypesContainingFile);\n      const resolutions = resolveTypeReferenceDirectiveNamesReusingOldState(automaticTypeDirectiveNames, containingFilename);\n      for (let i = 0; i < automaticTypeDirectiveNames.length; i++) {\n        automaticTypeDirectiveResolutions.set(\n          automaticTypeDirectiveNames[i],\n          /*mode*/\n          void 0,\n          resolutions[i]\n        );\n        processTypeReferenceDirective(\n          automaticTypeDirectiveNames[i],\n          /*mode*/\n          void 0,\n          resolutions[i],\n          {\n            kind: 8 /* AutomaticTypeDirectiveFile */,\n            typeReference: automaticTypeDirectiveNames[i],\n            packageId: (_m = (_l = resolutions[i]) == null ? void 0 : _l.resolvedTypeReferenceDirective) == null ? void 0 : _m.packageId\n          }\n        );\n      }\n      (_n = tracing) == null ? void 0 : _n.pop();\n    }\n    if (rootNames.length && !skipDefaultLib) {\n      const defaultLibraryFileName = getDefaultLibraryFileName();\n      if (!options.lib && defaultLibraryFileName) {\n        processRootFile(\n          defaultLibraryFileName,\n          /*isDefaultLib*/\n          true,\n          /*ignoreNoDefaultLib*/\n          false,\n          { kind: 6 /* LibFile */ }\n        );\n      } else {\n        forEach(options.lib, (libFileName, index) => {\n          processRootFile(\n            pathForLibFile(libFileName),\n            /*isDefaultLib*/\n            true,\n            /*ignoreNoDefaultLib*/\n            false,\n            { kind: 6 /* LibFile */, index }\n          );\n        });\n      }\n    }\n    files = toSorted(processingDefaultLibFiles, compareDefaultLibFiles).concat(processingOtherFiles);\n    processingDefaultLibFiles = void 0;\n    processingOtherFiles = void 0;\n    filesWithReferencesProcessed = void 0;\n  }\n  if (oldProgram && host.onReleaseOldSourceFile) {\n    const oldSourceFiles = oldProgram.getSourceFiles();\n    for (const oldSourceFile of oldSourceFiles) {\n      const newFile = getSourceFileByPath(oldSourceFile.resolvedPath);\n      if (shouldCreateNewSourceFile || !newFile || newFile.impliedNodeFormat !== oldSourceFile.impliedNodeFormat || // old file wasn't redirect but new file is\n      oldSourceFile.resolvedPath === oldSourceFile.path && newFile.resolvedPath !== oldSourceFile.path) {\n        host.onReleaseOldSourceFile(oldSourceFile, oldProgram.getCompilerOptions(), !!getSourceFileByPath(oldSourceFile.path), newFile);\n      }\n    }\n    if (!host.getParsedCommandLine) {\n      oldProgram.forEachResolvedProjectReference((resolvedProjectReference) => {\n        if (!getResolvedProjectReferenceByPath(resolvedProjectReference.sourceFile.path)) {\n          host.onReleaseOldSourceFile(\n            resolvedProjectReference.sourceFile,\n            oldProgram.getCompilerOptions(),\n            /*hasSourceFileByPath*/\n            false,\n            /*newSourceFileByResolvedPath*/\n            void 0\n          );\n        }\n      });\n    }\n  }\n  if (oldProgram && host.onReleaseParsedCommandLine) {\n    forEachProjectReference(\n      oldProgram.getProjectReferences(),\n      oldProgram.getResolvedProjectReferences(),\n      (oldResolvedRef, parent2, index) => {\n        const oldReference = (parent2 == null ? void 0 : parent2.commandLine.projectReferences[index]) || oldProgram.getProjectReferences()[index];\n        const oldRefPath = resolveProjectReferencePath(oldReference);\n        if (!(projectReferenceRedirects == null ? void 0 : projectReferenceRedirects.has(toPath3(oldRefPath)))) {\n          host.onReleaseParsedCommandLine(oldRefPath, oldResolvedRef, oldProgram.getCompilerOptions());\n        }\n      }\n    );\n  }\n  oldProgram = void 0;\n  resolvedLibProcessing = void 0;\n  resolvedModulesProcessing = void 0;\n  resolvedTypeReferenceDirectiveNamesProcessing = void 0;\n  const program = {\n    getRootFileNames: () => rootNames,\n    getSourceFile,\n    getSourceFileByPath,\n    getSourceFiles: () => files,\n    getMissingFilePaths: () => missingFileNames,\n    getModuleResolutionCache: () => moduleResolutionCache,\n    getFilesByNameMap: () => filesByName,\n    getCompilerOptions: () => options,\n    getSyntacticDiagnostics,\n    getOptionsDiagnostics,\n    getGlobalDiagnostics,\n    getSemanticDiagnostics,\n    getCachedSemanticDiagnostics,\n    getSuggestionDiagnostics,\n    getDeclarationDiagnostics: getDeclarationDiagnostics2,\n    getBindAndCheckDiagnostics,\n    getProgramDiagnostics,\n    getTypeChecker,\n    getClassifiableNames,\n    getCommonSourceDirectory: getCommonSourceDirectory2,\n    emit,\n    getCurrentDirectory: () => currentDirectory,\n    getNodeCount: () => getTypeChecker().getNodeCount(),\n    getIdentifierCount: () => getTypeChecker().getIdentifierCount(),\n    getSymbolCount: () => getTypeChecker().getSymbolCount(),\n    getTypeCount: () => getTypeChecker().getTypeCount(),\n    getInstantiationCount: () => getTypeChecker().getInstantiationCount(),\n    getRelationCacheSizes: () => getTypeChecker().getRelationCacheSizes(),\n    getFileProcessingDiagnostics: () => programDiagnostics.getFileProcessingDiagnostics(),\n    getAutomaticTypeDirectiveNames: () => automaticTypeDirectiveNames,\n    getAutomaticTypeDirectiveResolutions: () => automaticTypeDirectiveResolutions,\n    isSourceFileFromExternalLibrary,\n    isSourceFileDefaultLibrary,\n    getModeForUsageLocation: getModeForUsageLocation2,\n    getEmitSyntaxForUsageLocation,\n    getModeForResolutionAtIndex: getModeForResolutionAtIndex2,\n    getSourceFileFromReference,\n    getLibFileFromReference,\n    sourceFileToPackageName,\n    redirectTargetsMap,\n    usesUriStyleNodeCoreModules,\n    resolvedModules,\n    resolvedTypeReferenceDirectiveNames,\n    resolvedLibReferences,\n    getProgramDiagnosticsContainer: () => programDiagnostics,\n    getResolvedModule,\n    getResolvedModuleFromModuleSpecifier,\n    getResolvedTypeReferenceDirective,\n    getResolvedTypeReferenceDirectiveFromTypeReferenceDirective,\n    forEachResolvedModule,\n    forEachResolvedTypeReferenceDirective,\n    getCurrentPackagesMap: () => packageMap,\n    typesPackageExists,\n    packageBundlesTypes,\n    isEmittedFile,\n    getConfigFileParsingDiagnostics: getConfigFileParsingDiagnostics2,\n    getProjectReferences,\n    getResolvedProjectReferences,\n    getRedirectFromSourceFile,\n    getResolvedProjectReferenceByPath,\n    forEachResolvedProjectReference: forEachResolvedProjectReference2,\n    isSourceOfProjectReferenceRedirect,\n    getRedirectFromOutput,\n    getCompilerOptionsForFile,\n    getDefaultResolutionModeForFile: getDefaultResolutionModeForFile2,\n    getEmitModuleFormatOfFile: getEmitModuleFormatOfFile2,\n    getImpliedNodeFormatForEmit: getImpliedNodeFormatForEmit2,\n    shouldTransformImportCall,\n    emitBuildInfo,\n    fileExists,\n    readFile,\n    directoryExists,\n    getSymlinkCache,\n    realpath: (_o = host.realpath) == null ? void 0 : _o.bind(host),\n    useCaseSensitiveFileNames: () => host.useCaseSensitiveFileNames(),\n    getCanonicalFileName,\n    getFileIncludeReasons: () => programDiagnostics.getFileReasons(),\n    structureIsReused,\n    writeFile: writeFile2,\n    getGlobalTypingsCacheLocation: maybeBind(host, host.getGlobalTypingsCacheLocation)\n  };\n  onProgramCreateComplete();\n  if (!skipVerifyCompilerOptions) {\n    verifyCompilerOptions();\n  }\n  mark(\"afterProgram\");\n  measure(\"Program\", \"beforeProgram\", \"afterProgram\");\n  (_p = tracing) == null ? void 0 : _p.pop();\n  return program;\n  function getResolvedModule(file, moduleName, mode) {\n    var _a2;\n    return (_a2 = resolvedModules == null ? void 0 : resolvedModules.get(file.path)) == null ? void 0 : _a2.get(moduleName, mode);\n  }\n  function getResolvedModuleFromModuleSpecifier(moduleSpecifier, sourceFile) {\n    sourceFile ?? (sourceFile = getSourceFileOfNode(moduleSpecifier));\n    Debug.assertIsDefined(sourceFile, \"`moduleSpecifier` must have a `SourceFile` ancestor. Use `program.getResolvedModule` instead to provide the containing file and resolution mode.\");\n    return getResolvedModule(sourceFile, moduleSpecifier.text, getModeForUsageLocation2(sourceFile, moduleSpecifier));\n  }\n  function getResolvedTypeReferenceDirective(file, typeDirectiveName, mode) {\n    var _a2;\n    return (_a2 = resolvedTypeReferenceDirectiveNames == null ? void 0 : resolvedTypeReferenceDirectiveNames.get(file.path)) == null ? void 0 : _a2.get(typeDirectiveName, mode);\n  }\n  function getResolvedTypeReferenceDirectiveFromTypeReferenceDirective(typeRef, sourceFile) {\n    return getResolvedTypeReferenceDirective(\n      sourceFile,\n      typeRef.fileName,\n      getModeForTypeReferenceDirectiveInFile(typeRef, sourceFile)\n    );\n  }\n  function forEachResolvedModule(callback, file) {\n    forEachResolution(resolvedModules, callback, file);\n  }\n  function forEachResolvedTypeReferenceDirective(callback, file) {\n    forEachResolution(resolvedTypeReferenceDirectiveNames, callback, file);\n  }\n  function forEachResolution(resolutionCache, callback, file) {\n    var _a2;\n    if (file) (_a2 = resolutionCache == null ? void 0 : resolutionCache.get(file.path)) == null ? void 0 : _a2.forEach((resolution, name, mode) => callback(resolution, name, mode, file.path));\n    else resolutionCache == null ? void 0 : resolutionCache.forEach((resolutions, filePath) => resolutions.forEach((resolution, name, mode) => callback(resolution, name, mode, filePath)));\n  }\n  function getPackagesMap() {\n    if (packageMap) return packageMap;\n    packageMap = /* @__PURE__ */ new Map();\n    forEachResolvedModule(({ resolvedModule }) => {\n      if (resolvedModule == null ? void 0 : resolvedModule.packageId) packageMap.set(resolvedModule.packageId.name, resolvedModule.extension === \".d.ts\" /* Dts */ || !!packageMap.get(resolvedModule.packageId.name));\n    });\n    return packageMap;\n  }\n  function typesPackageExists(packageName) {\n    return getPackagesMap().has(getTypesPackageName(packageName));\n  }\n  function packageBundlesTypes(packageName) {\n    return !!getPackagesMap().get(packageName);\n  }\n  function addResolutionDiagnostics(resolution) {\n    var _a2;\n    if (!((_a2 = resolution.resolutionDiagnostics) == null ? void 0 : _a2.length)) return;\n    programDiagnostics.addFileProcessingDiagnostic({\n      kind: 2 /* ResolutionDiagnostics */,\n      diagnostics: resolution.resolutionDiagnostics\n    });\n  }\n  function addResolutionDiagnosticsFromResolutionOrCache(containingFile, name, resolution, mode) {\n    if (host.resolveModuleNameLiterals || !host.resolveModuleNames) return addResolutionDiagnostics(resolution);\n    if (!moduleResolutionCache || isExternalModuleNameRelative(name)) return;\n    const containingFileName = getNormalizedAbsolutePath(containingFile.originalFileName, currentDirectory);\n    const containingDir = getDirectoryPath(containingFileName);\n    const redirectedReference = getRedirectReferenceForResolution(containingFile);\n    const fromCache = moduleResolutionCache.getFromNonRelativeNameCache(name, mode, containingDir, redirectedReference);\n    if (fromCache) addResolutionDiagnostics(fromCache);\n  }\n  function resolveModuleNamesWorker(moduleNames, containingFile, reusedNames) {\n    var _a2, _b2;\n    const containingFileName = getNormalizedAbsolutePath(containingFile.originalFileName, currentDirectory);\n    const redirectedReference = getRedirectReferenceForResolution(containingFile);\n    (_a2 = tracing) == null ? void 0 : _a2.push(tracing.Phase.Program, \"resolveModuleNamesWorker\", { containingFileName });\n    mark(\"beforeResolveModule\");\n    const result = actualResolveModuleNamesWorker(\n      moduleNames,\n      containingFileName,\n      redirectedReference,\n      options,\n      containingFile,\n      reusedNames\n    );\n    mark(\"afterResolveModule\");\n    measure(\"ResolveModule\", \"beforeResolveModule\", \"afterResolveModule\");\n    (_b2 = tracing) == null ? void 0 : _b2.pop();\n    return result;\n  }\n  function resolveTypeReferenceDirectiveNamesWorker(typeDirectiveNames, containingFile, reusedNames) {\n    var _a2, _b2;\n    const containingSourceFile = !isString(containingFile) ? containingFile : void 0;\n    const containingFileName = !isString(containingFile) ? getNormalizedAbsolutePath(containingFile.originalFileName, currentDirectory) : containingFile;\n    const redirectedReference = containingSourceFile && getRedirectReferenceForResolution(containingSourceFile);\n    (_a2 = tracing) == null ? void 0 : _a2.push(tracing.Phase.Program, \"resolveTypeReferenceDirectiveNamesWorker\", { containingFileName });\n    mark(\"beforeResolveTypeReference\");\n    const result = actualResolveTypeReferenceDirectiveNamesWorker(\n      typeDirectiveNames,\n      containingFileName,\n      redirectedReference,\n      options,\n      containingSourceFile,\n      reusedNames\n    );\n    mark(\"afterResolveTypeReference\");\n    measure(\"ResolveTypeReference\", \"beforeResolveTypeReference\", \"afterResolveTypeReference\");\n    (_b2 = tracing) == null ? void 0 : _b2.pop();\n    return result;\n  }\n  function getRedirectReferenceForResolution(file) {\n    var _a2, _b2;\n    const redirect = getRedirectFromSourceFile(file.originalFileName);\n    if (redirect || !isDeclarationFileName(file.originalFileName)) return redirect == null ? void 0 : redirect.resolvedRef;\n    const resultFromDts = (_a2 = getRedirectFromOutput(file.path)) == null ? void 0 : _a2.resolvedRef;\n    if (resultFromDts) return resultFromDts;\n    if (!host.realpath || !options.preserveSymlinks || !file.originalFileName.includes(nodeModulesPathPart)) return void 0;\n    const realDeclarationPath = toPath3(host.realpath(file.originalFileName));\n    return realDeclarationPath === file.path ? void 0 : (_b2 = getRedirectFromOutput(realDeclarationPath)) == null ? void 0 : _b2.resolvedRef;\n  }\n  function compareDefaultLibFiles(a, b) {\n    return compareValues(getDefaultLibFilePriority(a), getDefaultLibFilePriority(b));\n  }\n  function getDefaultLibFilePriority(a) {\n    if (containsPath(\n      defaultLibraryPath,\n      a.fileName,\n      /*ignoreCase*/\n      false\n    )) {\n      const basename = getBaseFileName(a.fileName);\n      if (basename === \"lib.d.ts\" || basename === \"lib.es6.d.ts\") return 0;\n      const name = removeSuffix(removePrefix(basename, \"lib.\"), \".d.ts\");\n      const index = libs.indexOf(name);\n      if (index !== -1) return index + 1;\n    }\n    return libs.length + 2;\n  }\n  function toPath3(fileName) {\n    return toPath(fileName, currentDirectory, getCanonicalFileName);\n  }\n  function getCommonSourceDirectory2() {\n    let commonSourceDirectory = programDiagnostics.getCommonSourceDirectory();\n    if (commonSourceDirectory !== void 0) {\n      return commonSourceDirectory;\n    }\n    const emittedFiles = filter(files, (file) => sourceFileMayBeEmitted(file, program));\n    commonSourceDirectory = getCommonSourceDirectory(\n      options,\n      () => mapDefined(emittedFiles, (file) => file.isDeclarationFile ? void 0 : file.fileName),\n      currentDirectory,\n      getCanonicalFileName,\n      (commonSourceDirectory2) => checkSourceFilesBelongToPath(emittedFiles, commonSourceDirectory2)\n    );\n    programDiagnostics.setCommonSourceDirectory(commonSourceDirectory);\n    return commonSourceDirectory;\n  }\n  function getClassifiableNames() {\n    var _a2;\n    if (!classifiableNames) {\n      getTypeChecker();\n      classifiableNames = /* @__PURE__ */ new Set();\n      for (const sourceFile of files) {\n        (_a2 = sourceFile.classifiableNames) == null ? void 0 : _a2.forEach((value) => classifiableNames.add(value));\n      }\n    }\n    return classifiableNames;\n  }\n  function resolveModuleNamesReusingOldState(moduleNames, containingFile) {\n    return resolveNamesReusingOldState({\n      entries: moduleNames,\n      containingFile,\n      containingSourceFile: containingFile,\n      redirectedReference: getRedirectReferenceForResolution(containingFile),\n      nameAndModeGetter: moduleResolutionNameAndModeGetter,\n      resolutionWorker: resolveModuleNamesWorker,\n      getResolutionFromOldProgram: (name, mode) => oldProgram == null ? void 0 : oldProgram.getResolvedModule(containingFile, name, mode),\n      getResolved: getResolvedModuleFromResolution,\n      canReuseResolutionsInFile: () => containingFile === (oldProgram == null ? void 0 : oldProgram.getSourceFile(containingFile.fileName)) && !hasInvalidatedResolutions(containingFile.path),\n      resolveToOwnAmbientModule: true\n    });\n  }\n  function resolveTypeReferenceDirectiveNamesReusingOldState(typeDirectiveNames, containingFile) {\n    const containingSourceFile = !isString(containingFile) ? containingFile : void 0;\n    return resolveNamesReusingOldState({\n      entries: typeDirectiveNames,\n      containingFile,\n      containingSourceFile,\n      redirectedReference: containingSourceFile && getRedirectReferenceForResolution(containingSourceFile),\n      nameAndModeGetter: typeReferenceResolutionNameAndModeGetter,\n      resolutionWorker: resolveTypeReferenceDirectiveNamesWorker,\n      getResolutionFromOldProgram: (name, mode) => {\n        var _a2;\n        return containingSourceFile ? oldProgram == null ? void 0 : oldProgram.getResolvedTypeReferenceDirective(containingSourceFile, name, mode) : (_a2 = oldProgram == null ? void 0 : oldProgram.getAutomaticTypeDirectiveResolutions()) == null ? void 0 : _a2.get(name, mode);\n      },\n      getResolved: getResolvedTypeReferenceDirectiveFromResolution,\n      canReuseResolutionsInFile: () => containingSourceFile ? containingSourceFile === (oldProgram == null ? void 0 : oldProgram.getSourceFile(containingSourceFile.fileName)) && !hasInvalidatedResolutions(containingSourceFile.path) : !hasInvalidatedResolutions(toPath3(containingFile))\n    });\n  }\n  function resolveNamesReusingOldState({\n    entries,\n    containingFile,\n    containingSourceFile,\n    redirectedReference,\n    nameAndModeGetter,\n    resolutionWorker,\n    getResolutionFromOldProgram,\n    getResolved,\n    canReuseResolutionsInFile,\n    resolveToOwnAmbientModule\n  }) {\n    if (!entries.length) return emptyArray;\n    if (structureIsReused === 0 /* Not */ && (!resolveToOwnAmbientModule || !containingSourceFile.ambientModuleNames.length)) {\n      return resolutionWorker(\n        entries,\n        containingFile,\n        /*reusedNames*/\n        void 0\n      );\n    }\n    let unknownEntries;\n    let unknownEntryIndices;\n    let result;\n    let reusedNames;\n    const reuseResolutions = canReuseResolutionsInFile();\n    for (let i = 0; i < entries.length; i++) {\n      const entry = entries[i];\n      if (reuseResolutions) {\n        const name = nameAndModeGetter.getName(entry);\n        const mode = nameAndModeGetter.getMode(entry, containingSourceFile, (redirectedReference == null ? void 0 : redirectedReference.commandLine.options) ?? options);\n        const oldResolution = getResolutionFromOldProgram(name, mode);\n        const oldResolved = oldResolution && getResolved(oldResolution);\n        if (oldResolved) {\n          if (isTraceEnabled(options, host)) {\n            trace(\n              host,\n              resolutionWorker === resolveModuleNamesWorker ? oldResolved.packageId ? Diagnostics.Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package_ID_3 : Diagnostics.Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2 : oldResolved.packageId ? Diagnostics.Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package_ID_3 : Diagnostics.Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved_to_2,\n              name,\n              containingSourceFile ? getNormalizedAbsolutePath(containingSourceFile.originalFileName, currentDirectory) : containingFile,\n              oldResolved.resolvedFileName,\n              oldResolved.packageId && packageIdToString(oldResolved.packageId)\n            );\n          }\n          (result ?? (result = new Array(entries.length)))[i] = oldResolution;\n          (reusedNames ?? (reusedNames = [])).push(entry);\n          continue;\n        }\n      }\n      if (resolveToOwnAmbientModule) {\n        const name = nameAndModeGetter.getName(entry);\n        if (contains(containingSourceFile.ambientModuleNames, name)) {\n          if (isTraceEnabled(options, host)) {\n            trace(\n              host,\n              Diagnostics.Module_0_was_resolved_as_locally_declared_ambient_module_in_file_1,\n              name,\n              getNormalizedAbsolutePath(containingSourceFile.originalFileName, currentDirectory)\n            );\n          }\n          (result ?? (result = new Array(entries.length)))[i] = emptyResolution;\n          continue;\n        }\n      }\n      (unknownEntries ?? (unknownEntries = [])).push(entry);\n      (unknownEntryIndices ?? (unknownEntryIndices = [])).push(i);\n    }\n    if (!unknownEntries) return result;\n    const resolutions = resolutionWorker(unknownEntries, containingFile, reusedNames);\n    if (!result) return resolutions;\n    resolutions.forEach((resolution, index) => result[unknownEntryIndices[index]] = resolution);\n    return result;\n  }\n  function canReuseProjectReferences() {\n    return !forEachProjectReference(\n      oldProgram.getProjectReferences(),\n      oldProgram.getResolvedProjectReferences(),\n      (oldResolvedRef, parent2, index) => {\n        const newRef = (parent2 ? parent2.commandLine.projectReferences : projectReferences)[index];\n        const newResolvedRef = parseProjectReferenceConfigFile(newRef);\n        if (oldResolvedRef) {\n          return !newResolvedRef || newResolvedRef.sourceFile !== oldResolvedRef.sourceFile || !arrayIsEqualTo(oldResolvedRef.commandLine.fileNames, newResolvedRef.commandLine.fileNames);\n        } else {\n          return newResolvedRef !== void 0;\n        }\n      },\n      (oldProjectReferences, parent2) => {\n        const newReferences = parent2 ? getResolvedProjectReferenceByPath(parent2.sourceFile.path).commandLine.projectReferences : projectReferences;\n        return !arrayIsEqualTo(oldProjectReferences, newReferences, projectReferenceIsEqualTo);\n      }\n    );\n  }\n  function tryReuseStructureFromOldProgram() {\n    var _a2;\n    if (!oldProgram) {\n      return 0 /* Not */;\n    }\n    const oldOptions = oldProgram.getCompilerOptions();\n    if (changesAffectModuleResolution(oldOptions, options)) {\n      return 0 /* Not */;\n    }\n    const oldRootNames = oldProgram.getRootFileNames();\n    if (!arrayIsEqualTo(oldRootNames, rootNames)) {\n      return 0 /* Not */;\n    }\n    if (!canReuseProjectReferences()) {\n      return 0 /* Not */;\n    }\n    if (projectReferences) {\n      resolvedProjectReferences = projectReferences.map(parseProjectReferenceConfigFile);\n    }\n    const newSourceFiles = [];\n    const modifiedSourceFiles = [];\n    structureIsReused = 2 /* Completely */;\n    if (forEachEntry(oldProgram.getMissingFilePaths(), (missingFileName) => host.fileExists(missingFileName))) {\n      return 0 /* Not */;\n    }\n    const oldSourceFiles = oldProgram.getSourceFiles();\n    let SeenPackageName;\n    ((SeenPackageName2) => {\n      SeenPackageName2[SeenPackageName2[\"Exists\"] = 0] = \"Exists\";\n      SeenPackageName2[SeenPackageName2[\"Modified\"] = 1] = \"Modified\";\n    })(SeenPackageName || (SeenPackageName = {}));\n    const seenPackageNames = /* @__PURE__ */ new Map();\n    for (const oldSourceFile of oldSourceFiles) {\n      const sourceFileOptions = getCreateSourceFileOptions(oldSourceFile.fileName, moduleResolutionCache, host, options);\n      let newSourceFile = host.getSourceFileByPath ? host.getSourceFileByPath(\n        oldSourceFile.fileName,\n        oldSourceFile.resolvedPath,\n        sourceFileOptions,\n        /*onError*/\n        void 0,\n        shouldCreateNewSourceFile\n      ) : host.getSourceFile(\n        oldSourceFile.fileName,\n        sourceFileOptions,\n        /*onError*/\n        void 0,\n        shouldCreateNewSourceFile\n      );\n      if (!newSourceFile) {\n        return 0 /* Not */;\n      }\n      newSourceFile.packageJsonLocations = ((_a2 = sourceFileOptions.packageJsonLocations) == null ? void 0 : _a2.length) ? sourceFileOptions.packageJsonLocations : void 0;\n      newSourceFile.packageJsonScope = sourceFileOptions.packageJsonScope;\n      Debug.assert(!newSourceFile.redirectInfo, \"Host should not return a redirect source file from `getSourceFile`\");\n      let fileChanged;\n      if (oldSourceFile.redirectInfo) {\n        if (newSourceFile !== oldSourceFile.redirectInfo.unredirected) {\n          return 0 /* Not */;\n        }\n        fileChanged = false;\n        newSourceFile = oldSourceFile;\n      } else if (oldProgram.redirectTargetsMap.has(oldSourceFile.path)) {\n        if (newSourceFile !== oldSourceFile) {\n          return 0 /* Not */;\n        }\n        fileChanged = false;\n      } else {\n        fileChanged = newSourceFile !== oldSourceFile;\n      }\n      newSourceFile.path = oldSourceFile.path;\n      newSourceFile.originalFileName = oldSourceFile.originalFileName;\n      newSourceFile.resolvedPath = oldSourceFile.resolvedPath;\n      newSourceFile.fileName = oldSourceFile.fileName;\n      const packageName = oldProgram.sourceFileToPackageName.get(oldSourceFile.path);\n      if (packageName !== void 0) {\n        const prevKind = seenPackageNames.get(packageName);\n        const newKind = fileChanged ? 1 /* Modified */ : 0 /* Exists */;\n        if (prevKind !== void 0 && newKind === 1 /* Modified */ || prevKind === 1 /* Modified */) {\n          return 0 /* Not */;\n        }\n        seenPackageNames.set(packageName, newKind);\n      }\n      if (fileChanged) {\n        if (oldSourceFile.impliedNodeFormat !== newSourceFile.impliedNodeFormat) {\n          structureIsReused = 1 /* SafeModules */;\n        } else if (!arrayIsEqualTo(oldSourceFile.libReferenceDirectives, newSourceFile.libReferenceDirectives, fileReferenceIsEqualTo)) {\n          structureIsReused = 1 /* SafeModules */;\n        } else if (oldSourceFile.hasNoDefaultLib !== newSourceFile.hasNoDefaultLib) {\n          structureIsReused = 1 /* SafeModules */;\n        } else if (!arrayIsEqualTo(oldSourceFile.referencedFiles, newSourceFile.referencedFiles, fileReferenceIsEqualTo)) {\n          structureIsReused = 1 /* SafeModules */;\n        } else {\n          collectExternalModuleReferences(newSourceFile);\n          if (!arrayIsEqualTo(oldSourceFile.imports, newSourceFile.imports, moduleNameIsEqualTo)) {\n            structureIsReused = 1 /* SafeModules */;\n          } else if (!arrayIsEqualTo(oldSourceFile.moduleAugmentations, newSourceFile.moduleAugmentations, moduleNameIsEqualTo)) {\n            structureIsReused = 1 /* SafeModules */;\n          } else if ((oldSourceFile.flags & 12582912 /* PermanentlySetIncrementalFlags */) !== (newSourceFile.flags & 12582912 /* PermanentlySetIncrementalFlags */)) {\n            structureIsReused = 1 /* SafeModules */;\n          } else if (!arrayIsEqualTo(oldSourceFile.typeReferenceDirectives, newSourceFile.typeReferenceDirectives, fileReferenceIsEqualTo)) {\n            structureIsReused = 1 /* SafeModules */;\n          }\n        }\n        modifiedSourceFiles.push(newSourceFile);\n      } else if (hasInvalidatedResolutions(oldSourceFile.path)) {\n        structureIsReused = 1 /* SafeModules */;\n        modifiedSourceFiles.push(newSourceFile);\n      }\n      newSourceFiles.push(newSourceFile);\n    }\n    if (structureIsReused !== 2 /* Completely */) {\n      return structureIsReused;\n    }\n    for (const newSourceFile of modifiedSourceFiles) {\n      const moduleNames = getModuleNames(newSourceFile);\n      const resolutions = resolveModuleNamesReusingOldState(moduleNames, newSourceFile);\n      (resolvedModulesProcessing ?? (resolvedModulesProcessing = /* @__PURE__ */ new Map())).set(newSourceFile.path, resolutions);\n      const optionsForFile = getCompilerOptionsForFile(newSourceFile);\n      const resolutionsChanged = hasChangesInResolutions(\n        moduleNames,\n        resolutions,\n        (name) => oldProgram.getResolvedModule(newSourceFile, name.text, getModeForUsageLocationWorker(newSourceFile, name, optionsForFile)),\n        moduleResolutionIsEqualTo\n      );\n      if (resolutionsChanged) structureIsReused = 1 /* SafeModules */;\n      const typesReferenceDirectives = newSourceFile.typeReferenceDirectives;\n      const typeReferenceResolutions = resolveTypeReferenceDirectiveNamesReusingOldState(typesReferenceDirectives, newSourceFile);\n      (resolvedTypeReferenceDirectiveNamesProcessing ?? (resolvedTypeReferenceDirectiveNamesProcessing = /* @__PURE__ */ new Map())).set(newSourceFile.path, typeReferenceResolutions);\n      const typeReferenceResolutionsChanged = hasChangesInResolutions(\n        typesReferenceDirectives,\n        typeReferenceResolutions,\n        (name) => oldProgram.getResolvedTypeReferenceDirective(\n          newSourceFile,\n          getTypeReferenceResolutionName(name),\n          getModeForTypeReferenceDirectiveInFile(name, newSourceFile)\n        ),\n        typeDirectiveIsEqualTo\n      );\n      if (typeReferenceResolutionsChanged) structureIsReused = 1 /* SafeModules */;\n    }\n    if (structureIsReused !== 2 /* Completely */) {\n      return structureIsReused;\n    }\n    if (changesAffectingProgramStructure(oldOptions, options)) {\n      return 1 /* SafeModules */;\n    }\n    if (oldProgram.resolvedLibReferences && forEachEntry(oldProgram.resolvedLibReferences, (resolution, libFileName) => pathForLibFileWorker(libFileName).actual !== resolution.actual)) {\n      return 1 /* SafeModules */;\n    }\n    if (host.hasChangedAutomaticTypeDirectiveNames) {\n      if (host.hasChangedAutomaticTypeDirectiveNames()) return 1 /* SafeModules */;\n    } else {\n      automaticTypeDirectiveNames = getAutomaticTypeDirectiveNames(options, host);\n      if (!arrayIsEqualTo(oldProgram.getAutomaticTypeDirectiveNames(), automaticTypeDirectiveNames)) return 1 /* SafeModules */;\n    }\n    missingFileNames = oldProgram.getMissingFilePaths();\n    Debug.assert(newSourceFiles.length === oldProgram.getSourceFiles().length);\n    for (const newSourceFile of newSourceFiles) {\n      filesByName.set(newSourceFile.path, newSourceFile);\n    }\n    const oldFilesByNameMap = oldProgram.getFilesByNameMap();\n    oldFilesByNameMap.forEach((oldFile, path) => {\n      if (!oldFile) {\n        filesByName.set(path, oldFile);\n        return;\n      }\n      if (oldFile.path === path) {\n        if (oldProgram.isSourceFileFromExternalLibrary(oldFile)) {\n          sourceFilesFoundSearchingNodeModules.set(oldFile.path, true);\n        }\n        return;\n      }\n      filesByName.set(path, filesByName.get(oldFile.path));\n    });\n    const isConfigIdentical = oldOptions.configFile && oldOptions.configFile === options.configFile || !oldOptions.configFile && !options.configFile && !optionsHaveChanges(oldOptions, options, optionDeclarations);\n    programDiagnostics.reuseStateFromOldProgram(oldProgram.getProgramDiagnosticsContainer(), isConfigIdentical);\n    skipVerifyCompilerOptions = isConfigIdentical;\n    files = newSourceFiles;\n    automaticTypeDirectiveNames = oldProgram.getAutomaticTypeDirectiveNames();\n    automaticTypeDirectiveResolutions = oldProgram.getAutomaticTypeDirectiveResolutions();\n    sourceFileToPackageName = oldProgram.sourceFileToPackageName;\n    redirectTargetsMap = oldProgram.redirectTargetsMap;\n    usesUriStyleNodeCoreModules = oldProgram.usesUriStyleNodeCoreModules;\n    resolvedModules = oldProgram.resolvedModules;\n    resolvedTypeReferenceDirectiveNames = oldProgram.resolvedTypeReferenceDirectiveNames;\n    resolvedLibReferences = oldProgram.resolvedLibReferences;\n    packageMap = oldProgram.getCurrentPackagesMap();\n    return 2 /* Completely */;\n  }\n  function getEmitHost(writeFileCallback) {\n    return {\n      getCanonicalFileName,\n      getCommonSourceDirectory: program.getCommonSourceDirectory,\n      getCompilerOptions: program.getCompilerOptions,\n      getCurrentDirectory: () => currentDirectory,\n      getSourceFile: program.getSourceFile,\n      getSourceFileByPath: program.getSourceFileByPath,\n      getSourceFiles: program.getSourceFiles,\n      isSourceFileFromExternalLibrary,\n      getRedirectFromSourceFile,\n      isSourceOfProjectReferenceRedirect,\n      getSymlinkCache,\n      writeFile: writeFileCallback || writeFile2,\n      isEmitBlocked,\n      shouldTransformImportCall,\n      getEmitModuleFormatOfFile: getEmitModuleFormatOfFile2,\n      getDefaultResolutionModeForFile: getDefaultResolutionModeForFile2,\n      getModeForResolutionAtIndex: getModeForResolutionAtIndex2,\n      readFile: (f) => host.readFile(f),\n      fileExists: (f) => {\n        const path = toPath3(f);\n        if (getSourceFileByPath(path)) return true;\n        if (missingFileNames.has(path)) return false;\n        return host.fileExists(f);\n      },\n      realpath: maybeBind(host, host.realpath),\n      useCaseSensitiveFileNames: () => host.useCaseSensitiveFileNames(),\n      getBuildInfo: () => {\n        var _a2;\n        return (_a2 = program.getBuildInfo) == null ? void 0 : _a2.call(program);\n      },\n      getSourceFileFromReference: (file, ref) => program.getSourceFileFromReference(file, ref),\n      redirectTargetsMap,\n      getFileIncludeReasons: program.getFileIncludeReasons,\n      createHash: maybeBind(host, host.createHash),\n      getModuleResolutionCache: () => program.getModuleResolutionCache(),\n      trace: maybeBind(host, host.trace),\n      getGlobalTypingsCacheLocation: program.getGlobalTypingsCacheLocation\n    };\n  }\n  function writeFile2(fileName, text, writeByteOrderMark, onError, sourceFiles, data) {\n    host.writeFile(fileName, text, writeByteOrderMark, onError, sourceFiles, data);\n  }\n  function emitBuildInfo(writeFileCallback) {\n    var _a2, _b2;\n    (_a2 = tracing) == null ? void 0 : _a2.push(\n      tracing.Phase.Emit,\n      \"emitBuildInfo\",\n      {},\n      /*separateBeginAndEnd*/\n      true\n    );\n    mark(\"beforeEmit\");\n    const emitResult = emitFiles(\n      notImplementedResolver,\n      getEmitHost(writeFileCallback),\n      /*targetSourceFile*/\n      void 0,\n      /*transformers*/\n      noTransformers,\n      /*emitOnly*/\n      false,\n      /*onlyBuildInfo*/\n      true\n    );\n    mark(\"afterEmit\");\n    measure(\"Emit\", \"beforeEmit\", \"afterEmit\");\n    (_b2 = tracing) == null ? void 0 : _b2.pop();\n    return emitResult;\n  }\n  function getResolvedProjectReferences() {\n    return resolvedProjectReferences;\n  }\n  function getProjectReferences() {\n    return projectReferences;\n  }\n  function isSourceFileFromExternalLibrary(file) {\n    return !!sourceFilesFoundSearchingNodeModules.get(file.path);\n  }\n  function isSourceFileDefaultLibrary(file) {\n    if (!file.isDeclarationFile) {\n      return false;\n    }\n    if (file.hasNoDefaultLib) {\n      return true;\n    }\n    if (options.noLib) {\n      return false;\n    }\n    const equalityComparer = host.useCaseSensitiveFileNames() ? equateStringsCaseSensitive : equateStringsCaseInsensitive;\n    if (!options.lib) {\n      return equalityComparer(file.fileName, getDefaultLibraryFileName());\n    } else {\n      return some(options.lib, (libFileName) => {\n        const resolvedLib = resolvedLibReferences.get(libFileName);\n        return !!resolvedLib && equalityComparer(file.fileName, resolvedLib.actual);\n      });\n    }\n  }\n  function getTypeChecker() {\n    return typeChecker || (typeChecker = createTypeChecker(program));\n  }\n  function emit(sourceFile, writeFileCallback, cancellationToken, emitOnly, transformers, forceDtsEmit, skipBuildInfo) {\n    var _a2, _b2;\n    (_a2 = tracing) == null ? void 0 : _a2.push(\n      tracing.Phase.Emit,\n      \"emit\",\n      { path: sourceFile == null ? void 0 : sourceFile.path },\n      /*separateBeginAndEnd*/\n      true\n    );\n    const result = runWithCancellationToken(\n      () => emitWorker(\n        program,\n        sourceFile,\n        writeFileCallback,\n        cancellationToken,\n        emitOnly,\n        transformers,\n        forceDtsEmit,\n        skipBuildInfo\n      )\n    );\n    (_b2 = tracing) == null ? void 0 : _b2.pop();\n    return result;\n  }\n  function isEmitBlocked(emitFileName) {\n    return hasEmitBlockingDiagnostics.has(toPath3(emitFileName));\n  }\n  function emitWorker(program2, sourceFile, writeFileCallback, cancellationToken, emitOnly, customTransformers, forceDtsEmit, skipBuildInfo) {\n    if (!forceDtsEmit) {\n      const result = handleNoEmitOptions(program2, sourceFile, writeFileCallback, cancellationToken);\n      if (result) return result;\n    }\n    const typeChecker2 = getTypeChecker();\n    const emitResolver = typeChecker2.getEmitResolver(\n      options.outFile ? void 0 : sourceFile,\n      cancellationToken,\n      emitResolverSkipsTypeChecking(emitOnly, forceDtsEmit)\n    );\n    mark(\"beforeEmit\");\n    const emitResult = typeChecker2.runWithCancellationToken(\n      cancellationToken,\n      () => emitFiles(\n        emitResolver,\n        getEmitHost(writeFileCallback),\n        sourceFile,\n        getTransformers(options, customTransformers, emitOnly),\n        emitOnly,\n        /*onlyBuildInfo*/\n        false,\n        forceDtsEmit,\n        skipBuildInfo\n      )\n    );\n    mark(\"afterEmit\");\n    measure(\"Emit\", \"beforeEmit\", \"afterEmit\");\n    return emitResult;\n  }\n  function getSourceFile(fileName) {\n    return getSourceFileByPath(toPath3(fileName));\n  }\n  function getSourceFileByPath(path) {\n    return filesByName.get(path) || void 0;\n  }\n  function getDiagnosticsHelper(sourceFile, getDiagnostics2, cancellationToken) {\n    if (sourceFile) {\n      return sortAndDeduplicateDiagnostics(getDiagnostics2(sourceFile, cancellationToken));\n    }\n    return sortAndDeduplicateDiagnostics(flatMap(program.getSourceFiles(), (sourceFile2) => {\n      if (cancellationToken) {\n        cancellationToken.throwIfCancellationRequested();\n      }\n      return getDiagnostics2(sourceFile2, cancellationToken);\n    }));\n  }\n  function getSyntacticDiagnostics(sourceFile, cancellationToken) {\n    return getDiagnosticsHelper(sourceFile, getSyntacticDiagnosticsForFile, cancellationToken);\n  }\n  function getSemanticDiagnostics(sourceFile, cancellationToken, nodesToCheck) {\n    return getDiagnosticsHelper(\n      sourceFile,\n      (sourceFile2, cancellationToken2) => getSemanticDiagnosticsForFile(sourceFile2, cancellationToken2, nodesToCheck),\n      cancellationToken\n    );\n  }\n  function getCachedSemanticDiagnostics(sourceFile) {\n    return cachedBindAndCheckDiagnosticsForFile == null ? void 0 : cachedBindAndCheckDiagnosticsForFile.get(sourceFile.path);\n  }\n  function getBindAndCheckDiagnostics(sourceFile, cancellationToken) {\n    return getBindAndCheckDiagnosticsForFile(\n      sourceFile,\n      cancellationToken,\n      /*nodesToCheck*/\n      void 0\n    );\n  }\n  function getProgramDiagnostics(sourceFile) {\n    var _a2;\n    if (skipTypeChecking(sourceFile, options, program)) {\n      return emptyArray;\n    }\n    const programDiagnosticsInFile = programDiagnostics.getCombinedDiagnostics(program).getDiagnostics(sourceFile.fileName);\n    if (!((_a2 = sourceFile.commentDirectives) == null ? void 0 : _a2.length)) {\n      return programDiagnosticsInFile;\n    }\n    return getDiagnosticsWithPrecedingDirectives(sourceFile, sourceFile.commentDirectives, programDiagnosticsInFile).diagnostics;\n  }\n  function getDeclarationDiagnostics2(sourceFile, cancellationToken) {\n    return getDiagnosticsHelper(sourceFile, getDeclarationDiagnosticsForFile, cancellationToken);\n  }\n  function getSyntacticDiagnosticsForFile(sourceFile) {\n    if (isSourceFileJS(sourceFile)) {\n      if (!sourceFile.additionalSyntacticDiagnostics) {\n        sourceFile.additionalSyntacticDiagnostics = getJSSyntacticDiagnosticsForFile(sourceFile);\n      }\n      return concatenate(sourceFile.additionalSyntacticDiagnostics, sourceFile.parseDiagnostics);\n    }\n    return sourceFile.parseDiagnostics;\n  }\n  function runWithCancellationToken(func) {\n    try {\n      return func();\n    } catch (e) {\n      if (e instanceof OperationCanceledException) {\n        typeChecker = void 0;\n      }\n      throw e;\n    }\n  }\n  function getSemanticDiagnosticsForFile(sourceFile, cancellationToken, nodesToCheck) {\n    return concatenate(\n      filterSemanticDiagnostics(getBindAndCheckDiagnosticsForFile(sourceFile, cancellationToken, nodesToCheck), options),\n      getProgramDiagnostics(sourceFile)\n    );\n  }\n  function getBindAndCheckDiagnosticsForFile(sourceFile, cancellationToken, nodesToCheck) {\n    if (nodesToCheck) {\n      return getBindAndCheckDiagnosticsForFileNoCache(sourceFile, cancellationToken, nodesToCheck);\n    }\n    let result = cachedBindAndCheckDiagnosticsForFile == null ? void 0 : cachedBindAndCheckDiagnosticsForFile.get(sourceFile.path);\n    if (!result) {\n      (cachedBindAndCheckDiagnosticsForFile ?? (cachedBindAndCheckDiagnosticsForFile = /* @__PURE__ */ new Map())).set(\n        sourceFile.path,\n        result = getBindAndCheckDiagnosticsForFileNoCache(sourceFile, cancellationToken)\n      );\n    }\n    return result;\n  }\n  function getBindAndCheckDiagnosticsForFileNoCache(sourceFile, cancellationToken, nodesToCheck) {\n    return runWithCancellationToken(() => {\n      if (skipTypeChecking(sourceFile, options, program)) {\n        return emptyArray;\n      }\n      const typeChecker2 = getTypeChecker();\n      Debug.assert(!!sourceFile.bindDiagnostics);\n      const isJs = sourceFile.scriptKind === 1 /* JS */ || sourceFile.scriptKind === 2 /* JSX */;\n      const isPlainJs = isPlainJsFile(sourceFile, options.checkJs);\n      const isCheckJs = isJs && isCheckJsEnabledForFile(sourceFile, options);\n      let bindDiagnostics = sourceFile.bindDiagnostics;\n      let checkDiagnostics = typeChecker2.getDiagnostics(sourceFile, cancellationToken, nodesToCheck);\n      if (isPlainJs) {\n        bindDiagnostics = filter(bindDiagnostics, (d) => plainJSErrors.has(d.code));\n        checkDiagnostics = filter(checkDiagnostics, (d) => plainJSErrors.has(d.code));\n      }\n      return getMergedBindAndCheckDiagnostics(\n        sourceFile,\n        !isPlainJs,\n        !!nodesToCheck,\n        bindDiagnostics,\n        checkDiagnostics,\n        isCheckJs ? sourceFile.jsDocDiagnostics : void 0\n      );\n    });\n  }\n  function getMergedBindAndCheckDiagnostics(sourceFile, includeBindAndCheckDiagnostics, partialCheck, ...allDiagnostics) {\n    var _a2;\n    const flatDiagnostics = flatten(allDiagnostics);\n    if (!includeBindAndCheckDiagnostics || !((_a2 = sourceFile.commentDirectives) == null ? void 0 : _a2.length)) {\n      return flatDiagnostics;\n    }\n    const { diagnostics, directives } = getDiagnosticsWithPrecedingDirectives(sourceFile, sourceFile.commentDirectives, flatDiagnostics);\n    if (partialCheck) {\n      return diagnostics;\n    }\n    for (const errorExpectation of directives.getUnusedExpectations()) {\n      diagnostics.push(createDiagnosticForRange(sourceFile, errorExpectation.range, Diagnostics.Unused_ts_expect_error_directive));\n    }\n    return diagnostics;\n  }\n  function getDiagnosticsWithPrecedingDirectives(sourceFile, commentDirectives, flatDiagnostics) {\n    const directives = createCommentDirectivesMap(sourceFile, commentDirectives);\n    const diagnostics = flatDiagnostics.filter((diagnostic) => markPrecedingCommentDirectiveLine(diagnostic, directives) === -1);\n    return { diagnostics, directives };\n  }\n  function getSuggestionDiagnostics(sourceFile, cancellationToken) {\n    return runWithCancellationToken(() => {\n      return getTypeChecker().getSuggestionDiagnostics(sourceFile, cancellationToken);\n    });\n  }\n  function markPrecedingCommentDirectiveLine(diagnostic, directives) {\n    const { file, start } = diagnostic;\n    if (!file) {\n      return -1;\n    }\n    const lineStarts = getLineStarts(file);\n    let line = computeLineAndCharacterOfPosition(lineStarts, start).line - 1;\n    while (line >= 0) {\n      if (directives.markUsed(line)) {\n        return line;\n      }\n      const lineText = file.text.slice(lineStarts[line], lineStarts[line + 1]).trim();\n      if (lineText !== \"\" && !/^\\s*\\/\\/.*$/.test(lineText)) {\n        return -1;\n      }\n      line--;\n    }\n    return -1;\n  }\n  function getJSSyntacticDiagnosticsForFile(sourceFile) {\n    return runWithCancellationToken(() => {\n      const diagnostics = [];\n      walk(sourceFile, sourceFile);\n      forEachChildRecursively(sourceFile, walk, walkArray);\n      return diagnostics;\n      function walk(node, parent2) {\n        switch (parent2.kind) {\n          case 170 /* Parameter */:\n          case 173 /* PropertyDeclaration */:\n          case 175 /* MethodDeclaration */:\n            if (parent2.questionToken === node) {\n              diagnostics.push(createDiagnosticForNode2(node, Diagnostics.The_0_modifier_can_only_be_used_in_TypeScript_files, \"?\"));\n              return \"skip\";\n            }\n          // falls through\n          case 174 /* MethodSignature */:\n          case 177 /* Constructor */:\n          case 178 /* GetAccessor */:\n          case 179 /* SetAccessor */:\n          case 219 /* FunctionExpression */:\n          case 263 /* FunctionDeclaration */:\n          case 220 /* ArrowFunction */:\n          case 261 /* VariableDeclaration */:\n            if (parent2.type === node) {\n              diagnostics.push(createDiagnosticForNode2(node, Diagnostics.Type_annotations_can_only_be_used_in_TypeScript_files));\n              return \"skip\";\n            }\n        }\n        switch (node.kind) {\n          case 274 /* ImportClause */:\n            if (node.isTypeOnly) {\n              diagnostics.push(createDiagnosticForNode2(parent2, Diagnostics._0_declarations_can_only_be_used_in_TypeScript_files, \"import type\"));\n              return \"skip\";\n            }\n            break;\n          case 279 /* ExportDeclaration */:\n            if (node.isTypeOnly) {\n              diagnostics.push(createDiagnosticForNode2(node, Diagnostics._0_declarations_can_only_be_used_in_TypeScript_files, \"export type\"));\n              return \"skip\";\n            }\n            break;\n          case 277 /* ImportSpecifier */:\n          case 282 /* ExportSpecifier */:\n            if (node.isTypeOnly) {\n              diagnostics.push(createDiagnosticForNode2(node, Diagnostics._0_declarations_can_only_be_used_in_TypeScript_files, isImportSpecifier(node) ? \"import...type\" : \"export...type\"));\n              return \"skip\";\n            }\n            break;\n          case 272 /* ImportEqualsDeclaration */:\n            diagnostics.push(createDiagnosticForNode2(node, Diagnostics.import_can_only_be_used_in_TypeScript_files));\n            return \"skip\";\n          case 278 /* ExportAssignment */:\n            if (node.isExportEquals) {\n              diagnostics.push(createDiagnosticForNode2(node, Diagnostics.export_can_only_be_used_in_TypeScript_files));\n              return \"skip\";\n            }\n            break;\n          case 299 /* HeritageClause */:\n            const heritageClause = node;\n            if (heritageClause.token === 119 /* ImplementsKeyword */) {\n              diagnostics.push(createDiagnosticForNode2(node, Diagnostics.implements_clauses_can_only_be_used_in_TypeScript_files));\n              return \"skip\";\n            }\n            break;\n          case 265 /* InterfaceDeclaration */:\n            const interfaceKeyword = tokenToString(120 /* InterfaceKeyword */);\n            Debug.assertIsDefined(interfaceKeyword);\n            diagnostics.push(createDiagnosticForNode2(node, Diagnostics._0_declarations_can_only_be_used_in_TypeScript_files, interfaceKeyword));\n            return \"skip\";\n          case 268 /* ModuleDeclaration */:\n            const moduleKeyword = node.flags & 32 /* Namespace */ ? tokenToString(145 /* NamespaceKeyword */) : tokenToString(144 /* ModuleKeyword */);\n            Debug.assertIsDefined(moduleKeyword);\n            diagnostics.push(createDiagnosticForNode2(node, Diagnostics._0_declarations_can_only_be_used_in_TypeScript_files, moduleKeyword));\n            return \"skip\";\n          case 266 /* TypeAliasDeclaration */:\n            diagnostics.push(createDiagnosticForNode2(node, Diagnostics.Type_aliases_can_only_be_used_in_TypeScript_files));\n            return \"skip\";\n          case 177 /* Constructor */:\n          case 175 /* MethodDeclaration */:\n          case 263 /* FunctionDeclaration */:\n            if (!node.body) {\n              diagnostics.push(createDiagnosticForNode2(node, Diagnostics.Signature_declarations_can_only_be_used_in_TypeScript_files));\n              return \"skip\";\n            }\n            return;\n          case 267 /* EnumDeclaration */:\n            const enumKeyword = Debug.checkDefined(tokenToString(94 /* EnumKeyword */));\n            diagnostics.push(createDiagnosticForNode2(node, Diagnostics._0_declarations_can_only_be_used_in_TypeScript_files, enumKeyword));\n            return \"skip\";\n          case 236 /* NonNullExpression */:\n            diagnostics.push(createDiagnosticForNode2(node, Diagnostics.Non_null_assertions_can_only_be_used_in_TypeScript_files));\n            return \"skip\";\n          case 235 /* AsExpression */:\n            diagnostics.push(createDiagnosticForNode2(node.type, Diagnostics.Type_assertion_expressions_can_only_be_used_in_TypeScript_files));\n            return \"skip\";\n          case 239 /* SatisfiesExpression */:\n            diagnostics.push(createDiagnosticForNode2(node.type, Diagnostics.Type_satisfaction_expressions_can_only_be_used_in_TypeScript_files));\n            return \"skip\";\n          case 217 /* TypeAssertionExpression */:\n            Debug.fail();\n        }\n      }\n      function walkArray(nodes, parent2) {\n        if (canHaveIllegalDecorators(parent2)) {\n          const decorator = find(parent2.modifiers, isDecorator);\n          if (decorator) {\n            diagnostics.push(createDiagnosticForNode2(decorator, Diagnostics.Decorators_are_not_valid_here));\n          }\n        } else if (canHaveDecorators(parent2) && parent2.modifiers) {\n          const decoratorIndex = findIndex(parent2.modifiers, isDecorator);\n          if (decoratorIndex >= 0) {\n            if (isParameter(parent2) && !options.experimentalDecorators) {\n              diagnostics.push(createDiagnosticForNode2(parent2.modifiers[decoratorIndex], Diagnostics.Decorators_are_not_valid_here));\n            } else if (isClassDeclaration(parent2)) {\n              const exportIndex = findIndex(parent2.modifiers, isExportModifier);\n              if (exportIndex >= 0) {\n                const defaultIndex = findIndex(parent2.modifiers, isDefaultModifier);\n                if (decoratorIndex > exportIndex && defaultIndex >= 0 && decoratorIndex < defaultIndex) {\n                  diagnostics.push(createDiagnosticForNode2(parent2.modifiers[decoratorIndex], Diagnostics.Decorators_are_not_valid_here));\n                } else if (exportIndex >= 0 && decoratorIndex < exportIndex) {\n                  const trailingDecoratorIndex = findIndex(parent2.modifiers, isDecorator, exportIndex);\n                  if (trailingDecoratorIndex >= 0) {\n                    diagnostics.push(addRelatedInfo(\n                      createDiagnosticForNode2(parent2.modifiers[trailingDecoratorIndex], Diagnostics.Decorators_may_not_appear_after_export_or_export_default_if_they_also_appear_before_export),\n                      createDiagnosticForNode2(parent2.modifiers[decoratorIndex], Diagnostics.Decorator_used_before_export_here)\n                    ));\n                  }\n                }\n              }\n            }\n          }\n        }\n        switch (parent2.kind) {\n          case 264 /* ClassDeclaration */:\n          case 232 /* ClassExpression */:\n          case 175 /* MethodDeclaration */:\n          case 177 /* Constructor */:\n          case 178 /* GetAccessor */:\n          case 179 /* SetAccessor */:\n          case 219 /* FunctionExpression */:\n          case 263 /* FunctionDeclaration */:\n          case 220 /* ArrowFunction */:\n            if (nodes === parent2.typeParameters) {\n              diagnostics.push(createDiagnosticForNodeArray2(nodes, Diagnostics.Type_parameter_declarations_can_only_be_used_in_TypeScript_files));\n              return \"skip\";\n            }\n          // falls through\n          case 244 /* VariableStatement */:\n            if (nodes === parent2.modifiers) {\n              checkModifiers(parent2.modifiers, parent2.kind === 244 /* VariableStatement */);\n              return \"skip\";\n            }\n            break;\n          case 173 /* PropertyDeclaration */:\n            if (nodes === parent2.modifiers) {\n              for (const modifier of nodes) {\n                if (isModifier(modifier) && modifier.kind !== 126 /* StaticKeyword */ && modifier.kind !== 129 /* AccessorKeyword */) {\n                  diagnostics.push(createDiagnosticForNode2(modifier, Diagnostics.The_0_modifier_can_only_be_used_in_TypeScript_files, tokenToString(modifier.kind)));\n                }\n              }\n              return \"skip\";\n            }\n            break;\n          case 170 /* Parameter */:\n            if (nodes === parent2.modifiers && some(nodes, isModifier)) {\n              diagnostics.push(createDiagnosticForNodeArray2(nodes, Diagnostics.Parameter_modifiers_can_only_be_used_in_TypeScript_files));\n              return \"skip\";\n            }\n            break;\n          case 214 /* CallExpression */:\n          case 215 /* NewExpression */:\n          case 234 /* ExpressionWithTypeArguments */:\n          case 286 /* JsxSelfClosingElement */:\n          case 287 /* JsxOpeningElement */:\n          case 216 /* TaggedTemplateExpression */:\n            if (nodes === parent2.typeArguments) {\n              diagnostics.push(createDiagnosticForNodeArray2(nodes, Diagnostics.Type_arguments_can_only_be_used_in_TypeScript_files));\n              return \"skip\";\n            }\n            break;\n        }\n      }\n      function checkModifiers(modifiers, isConstValid) {\n        for (const modifier of modifiers) {\n          switch (modifier.kind) {\n            case 87 /* ConstKeyword */:\n              if (isConstValid) {\n                continue;\n              }\n            // to report error,\n            // falls through\n            case 125 /* PublicKeyword */:\n            case 123 /* PrivateKeyword */:\n            case 124 /* ProtectedKeyword */:\n            case 148 /* ReadonlyKeyword */:\n            case 138 /* DeclareKeyword */:\n            case 128 /* AbstractKeyword */:\n            case 164 /* OverrideKeyword */:\n            case 103 /* InKeyword */:\n            case 147 /* OutKeyword */:\n              diagnostics.push(createDiagnosticForNode2(modifier, Diagnostics.The_0_modifier_can_only_be_used_in_TypeScript_files, tokenToString(modifier.kind)));\n              break;\n            // These are all legal modifiers.\n            case 126 /* StaticKeyword */:\n            case 95 /* ExportKeyword */:\n            case 90 /* DefaultKeyword */:\n            case 129 /* AccessorKeyword */:\n          }\n        }\n      }\n      function createDiagnosticForNodeArray2(nodes, message, ...args) {\n        const start = nodes.pos;\n        return createFileDiagnostic(sourceFile, start, nodes.end - start, message, ...args);\n      }\n      function createDiagnosticForNode2(node, message, ...args) {\n        return createDiagnosticForNodeInSourceFile(sourceFile, node, message, ...args);\n      }\n    });\n  }\n  function getDeclarationDiagnosticsWorker(sourceFile, cancellationToken) {\n    let result = cachedDeclarationDiagnosticsForFile == null ? void 0 : cachedDeclarationDiagnosticsForFile.get(sourceFile.path);\n    if (!result) {\n      (cachedDeclarationDiagnosticsForFile ?? (cachedDeclarationDiagnosticsForFile = /* @__PURE__ */ new Map())).set(\n        sourceFile.path,\n        result = getDeclarationDiagnosticsForFileNoCache(sourceFile, cancellationToken)\n      );\n    }\n    return result;\n  }\n  function getDeclarationDiagnosticsForFileNoCache(sourceFile, cancellationToken) {\n    return runWithCancellationToken(() => {\n      const resolver = getTypeChecker().getEmitResolver(sourceFile, cancellationToken);\n      return getDeclarationDiagnostics(getEmitHost(noop), resolver, sourceFile) || emptyArray;\n    });\n  }\n  function getDeclarationDiagnosticsForFile(sourceFile, cancellationToken) {\n    return sourceFile.isDeclarationFile ? emptyArray : getDeclarationDiagnosticsWorker(sourceFile, cancellationToken);\n  }\n  function getOptionsDiagnostics() {\n    return sortAndDeduplicateDiagnostics(concatenate(\n      programDiagnostics.getCombinedDiagnostics(program).getGlobalDiagnostics(),\n      getOptionsDiagnosticsOfConfigFile()\n    ));\n  }\n  function getOptionsDiagnosticsOfConfigFile() {\n    if (!options.configFile) return emptyArray;\n    let diagnostics = programDiagnostics.getCombinedDiagnostics(program).getDiagnostics(options.configFile.fileName);\n    forEachResolvedProjectReference2((resolvedRef) => {\n      diagnostics = concatenate(diagnostics, programDiagnostics.getCombinedDiagnostics(program).getDiagnostics(resolvedRef.sourceFile.fileName));\n    });\n    return diagnostics;\n  }\n  function getGlobalDiagnostics() {\n    return rootNames.length ? sortAndDeduplicateDiagnostics(getTypeChecker().getGlobalDiagnostics().slice()) : emptyArray;\n  }\n  function getConfigFileParsingDiagnostics2() {\n    return configFileParsingDiagnostics || emptyArray;\n  }\n  function processRootFile(fileName, isDefaultLib, ignoreNoDefaultLib, reason) {\n    processSourceFile(\n      normalizePath(fileName),\n      isDefaultLib,\n      ignoreNoDefaultLib,\n      /*packageId*/\n      void 0,\n      reason\n    );\n  }\n  function fileReferenceIsEqualTo(a, b) {\n    return a.fileName === b.fileName;\n  }\n  function moduleNameIsEqualTo(a, b) {\n    return a.kind === 80 /* Identifier */ ? b.kind === 80 /* Identifier */ && a.escapedText === b.escapedText : b.kind === 11 /* StringLiteral */ && a.text === b.text;\n  }\n  function createSyntheticImport(text, file) {\n    const externalHelpersModuleReference = factory.createStringLiteral(text);\n    const importDecl = factory.createImportDeclaration(\n      /*modifiers*/\n      void 0,\n      /*importClause*/\n      void 0,\n      externalHelpersModuleReference\n    );\n    addInternalEmitFlags(importDecl, 2 /* NeverApplyImportHelper */);\n    setParent(externalHelpersModuleReference, importDecl);\n    setParent(importDecl, file);\n    externalHelpersModuleReference.flags &= ~16 /* Synthesized */;\n    importDecl.flags &= ~16 /* Synthesized */;\n    return externalHelpersModuleReference;\n  }\n  function collectExternalModuleReferences(file) {\n    if (file.imports) {\n      return;\n    }\n    const isJavaScriptFile = isSourceFileJS(file);\n    const isExternalModuleFile = isExternalModule(file);\n    let imports;\n    let moduleAugmentations;\n    let ambientModules;\n    if (isJavaScriptFile || !file.isDeclarationFile && (getIsolatedModules(options) || isExternalModule(file))) {\n      if (options.importHelpers) {\n        imports = [createSyntheticImport(externalHelpersModuleNameText, file)];\n      }\n      const jsxImport = getJSXRuntimeImport(getJSXImplicitImportBase(options, file), options);\n      if (jsxImport) {\n        (imports || (imports = [])).push(createSyntheticImport(jsxImport, file));\n      }\n    }\n    for (const node of file.statements) {\n      collectModuleReferences(\n        node,\n        /*inAmbientModule*/\n        false\n      );\n    }\n    if (file.flags & 4194304 /* PossiblyContainsDynamicImport */ || isJavaScriptFile) {\n      forEachDynamicImportOrRequireCall(\n        file,\n        /*includeTypeSpaceImports*/\n        true,\n        /*requireStringLiteralLikeArgument*/\n        true,\n        (node, moduleSpecifier) => {\n          setParentRecursive(\n            node,\n            /*incremental*/\n            false\n          );\n          imports = append(imports, moduleSpecifier);\n        }\n      );\n    }\n    file.imports = imports || emptyArray;\n    file.moduleAugmentations = moduleAugmentations || emptyArray;\n    file.ambientModuleNames = ambientModules || emptyArray;\n    return;\n    function collectModuleReferences(node, inAmbientModule) {\n      if (isAnyImportOrReExport(node)) {\n        const moduleNameExpr = getExternalModuleName(node);\n        if (moduleNameExpr && isStringLiteral(moduleNameExpr) && moduleNameExpr.text && (!inAmbientModule || !isExternalModuleNameRelative(moduleNameExpr.text))) {\n          setParentRecursive(\n            node,\n            /*incremental*/\n            false\n          );\n          imports = append(imports, moduleNameExpr);\n          if (!usesUriStyleNodeCoreModules && currentNodeModulesDepth === 0 && !file.isDeclarationFile) {\n            if (startsWith(moduleNameExpr.text, \"node:\") && !exclusivelyPrefixedNodeCoreModules.has(moduleNameExpr.text)) {\n              usesUriStyleNodeCoreModules = true;\n            } else if (usesUriStyleNodeCoreModules === void 0 && unprefixedNodeCoreModules.has(moduleNameExpr.text)) {\n              usesUriStyleNodeCoreModules = false;\n            }\n          }\n        }\n      } else if (isModuleDeclaration(node)) {\n        if (isAmbientModule(node) && (inAmbientModule || hasSyntacticModifier(node, 128 /* Ambient */) || file.isDeclarationFile)) {\n          node.name.parent = node;\n          const nameText = getTextOfIdentifierOrLiteral(node.name);\n          if (isExternalModuleFile || inAmbientModule && !isExternalModuleNameRelative(nameText)) {\n            (moduleAugmentations || (moduleAugmentations = [])).push(node.name);\n          } else if (!inAmbientModule) {\n            if (file.isDeclarationFile) {\n              (ambientModules || (ambientModules = [])).push(nameText);\n            }\n            const body = node.body;\n            if (body) {\n              for (const statement of body.statements) {\n                collectModuleReferences(\n                  statement,\n                  /*inAmbientModule*/\n                  true\n                );\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n  function getLibFileFromReference(ref) {\n    var _a2;\n    const libFileName = getLibFileNameFromLibReference(ref);\n    const actualFileName = libFileName && ((_a2 = resolvedLibReferences == null ? void 0 : resolvedLibReferences.get(libFileName)) == null ? void 0 : _a2.actual);\n    return actualFileName !== void 0 ? getSourceFile(actualFileName) : void 0;\n  }\n  function getSourceFileFromReference(referencingFile, ref) {\n    return getSourceFileFromReferenceWorker(resolveTripleslashReference(ref.fileName, referencingFile.fileName), getSourceFile);\n  }\n  function getSourceFileFromReferenceWorker(fileName, getSourceFile2, fail, reason) {\n    if (hasExtension(fileName)) {\n      const canonicalFileName = host.getCanonicalFileName(fileName);\n      if (!options.allowNonTsExtensions && !forEach(flatten(supportedExtensionsWithJsonIfResolveJsonModule), (extension) => fileExtensionIs(canonicalFileName, extension))) {\n        if (fail) {\n          if (hasJSFileExtension(canonicalFileName)) {\n            fail(Diagnostics.File_0_is_a_JavaScript_file_Did_you_mean_to_enable_the_allowJs_option, fileName);\n          } else {\n            fail(Diagnostics.File_0_has_an_unsupported_extension_The_only_supported_extensions_are_1, fileName, \"'\" + flatten(supportedExtensions).join(\"', '\") + \"'\");\n          }\n        }\n        return void 0;\n      }\n      const sourceFile = getSourceFile2(fileName);\n      if (fail) {\n        if (!sourceFile) {\n          const redirect = getRedirectFromSourceFile(fileName);\n          if (redirect == null ? void 0 : redirect.outputDts) {\n            fail(Diagnostics.Output_file_0_has_not_been_built_from_source_file_1, redirect.outputDts, fileName);\n          } else {\n            fail(Diagnostics.File_0_not_found, fileName);\n          }\n        } else if (isReferencedFile(reason) && canonicalFileName === host.getCanonicalFileName(getSourceFileByPath(reason.file).fileName)) {\n          fail(Diagnostics.A_file_cannot_have_a_reference_to_itself);\n        }\n      }\n      return sourceFile;\n    } else {\n      const sourceFileNoExtension = options.allowNonTsExtensions && getSourceFile2(fileName);\n      if (sourceFileNoExtension) return sourceFileNoExtension;\n      if (fail && options.allowNonTsExtensions) {\n        fail(Diagnostics.File_0_not_found, fileName);\n        return void 0;\n      }\n      const sourceFileWithAddedExtension = forEach(supportedExtensions[0], (extension) => getSourceFile2(fileName + extension));\n      if (fail && !sourceFileWithAddedExtension) fail(Diagnostics.Could_not_resolve_the_path_0_with_the_extensions_Colon_1, fileName, \"'\" + flatten(supportedExtensions).join(\"', '\") + \"'\");\n      return sourceFileWithAddedExtension;\n    }\n  }\n  function processSourceFile(fileName, isDefaultLib, ignoreNoDefaultLib, packageId, reason) {\n    getSourceFileFromReferenceWorker(\n      fileName,\n      (fileName2) => findSourceFile(fileName2, isDefaultLib, ignoreNoDefaultLib, reason, packageId),\n      // TODO: GH#18217\n      (diagnostic, ...args) => addFilePreprocessingFileExplainingDiagnostic(\n        /*file*/\n        void 0,\n        reason,\n        diagnostic,\n        args\n      ),\n      reason\n    );\n  }\n  function processProjectReferenceFile(fileName, reason) {\n    return processSourceFile(\n      fileName,\n      /*isDefaultLib*/\n      false,\n      /*ignoreNoDefaultLib*/\n      false,\n      /*packageId*/\n      void 0,\n      reason\n    );\n  }\n  function reportFileNamesDifferOnlyInCasingError(fileName, existingFile, reason) {\n    const hasExistingReasonToReportErrorOn = !isReferencedFile(reason) && some(programDiagnostics.getFileReasons().get(existingFile.path), isReferencedFile);\n    if (hasExistingReasonToReportErrorOn) {\n      addFilePreprocessingFileExplainingDiagnostic(existingFile, reason, Diagnostics.Already_included_file_name_0_differs_from_file_name_1_only_in_casing, [existingFile.fileName, fileName]);\n    } else {\n      addFilePreprocessingFileExplainingDiagnostic(existingFile, reason, Diagnostics.File_name_0_differs_from_already_included_file_name_1_only_in_casing, [fileName, existingFile.fileName]);\n    }\n  }\n  function createRedirectedSourceFile(redirectTarget, unredirected, fileName, path, resolvedPath, originalFileName, sourceFileOptions) {\n    var _a2;\n    const redirect = parseNodeFactory.createRedirectedSourceFile({ redirectTarget, unredirected });\n    redirect.fileName = fileName;\n    redirect.path = path;\n    redirect.resolvedPath = resolvedPath;\n    redirect.originalFileName = originalFileName;\n    redirect.packageJsonLocations = ((_a2 = sourceFileOptions.packageJsonLocations) == null ? void 0 : _a2.length) ? sourceFileOptions.packageJsonLocations : void 0;\n    redirect.packageJsonScope = sourceFileOptions.packageJsonScope;\n    sourceFilesFoundSearchingNodeModules.set(path, currentNodeModulesDepth > 0);\n    return redirect;\n  }\n  function findSourceFile(fileName, isDefaultLib, ignoreNoDefaultLib, reason, packageId) {\n    var _a2, _b2;\n    (_a2 = tracing) == null ? void 0 : _a2.push(tracing.Phase.Program, \"findSourceFile\", {\n      fileName,\n      isDefaultLib: isDefaultLib || void 0,\n      fileIncludeKind: FileIncludeKind[reason.kind]\n    });\n    const result = findSourceFileWorker(fileName, isDefaultLib, ignoreNoDefaultLib, reason, packageId);\n    (_b2 = tracing) == null ? void 0 : _b2.pop();\n    return result;\n  }\n  function getCreateSourceFileOptions(fileName, moduleResolutionCache2, host2, options2) {\n    const result = getImpliedNodeFormatForFileWorker(getNormalizedAbsolutePath(fileName, currentDirectory), moduleResolutionCache2 == null ? void 0 : moduleResolutionCache2.getPackageJsonInfoCache(), host2, options2);\n    const languageVersion = getEmitScriptTarget(options2);\n    const setExternalModuleIndicator2 = getSetExternalModuleIndicator(options2);\n    return typeof result === \"object\" ? { ...result, languageVersion, setExternalModuleIndicator: setExternalModuleIndicator2, jsDocParsingMode: host2.jsDocParsingMode } : { languageVersion, impliedNodeFormat: result, setExternalModuleIndicator: setExternalModuleIndicator2, jsDocParsingMode: host2.jsDocParsingMode };\n  }\n  function findSourceFileWorker(fileName, isDefaultLib, ignoreNoDefaultLib, reason, packageId) {\n    var _a2, _b2;\n    const path = toPath3(fileName);\n    if (useSourceOfProjectReferenceRedirect) {\n      let source = getRedirectFromOutput(path);\n      if (!source && host.realpath && options.preserveSymlinks && isDeclarationFileName(fileName) && fileName.includes(nodeModulesPathPart)) {\n        const realPath2 = toPath3(host.realpath(fileName));\n        if (realPath2 !== path) source = getRedirectFromOutput(realPath2);\n      }\n      if (source == null ? void 0 : source.source) {\n        const file2 = findSourceFile(source.source, isDefaultLib, ignoreNoDefaultLib, reason, packageId);\n        if (file2) addFileToFilesByName(\n          file2,\n          path,\n          fileName,\n          /*redirectedPath*/\n          void 0\n        );\n        return file2;\n      }\n    }\n    const originalFileName = fileName;\n    if (filesByName.has(path)) {\n      const file2 = filesByName.get(path);\n      const addedReason = addFileIncludeReason(\n        file2 || void 0,\n        reason,\n        /*checkExisting*/\n        true\n      );\n      if (file2 && addedReason && !(options.forceConsistentCasingInFileNames === false)) {\n        const checkedName = file2.fileName;\n        const isRedirect = toPath3(checkedName) !== toPath3(fileName);\n        if (isRedirect) {\n          fileName = ((_a2 = getRedirectFromSourceFile(fileName)) == null ? void 0 : _a2.outputDts) || fileName;\n        }\n        const checkedAbsolutePath = getNormalizedAbsolutePathWithoutRoot(checkedName, currentDirectory);\n        const inputAbsolutePath = getNormalizedAbsolutePathWithoutRoot(fileName, currentDirectory);\n        if (checkedAbsolutePath !== inputAbsolutePath) {\n          reportFileNamesDifferOnlyInCasingError(fileName, file2, reason);\n        }\n      }\n      if (file2 && sourceFilesFoundSearchingNodeModules.get(file2.path) && currentNodeModulesDepth === 0) {\n        sourceFilesFoundSearchingNodeModules.set(file2.path, false);\n        if (!options.noResolve) {\n          processReferencedFiles(file2, isDefaultLib);\n          processTypeReferenceDirectives(file2);\n        }\n        if (!options.noLib) {\n          processLibReferenceDirectives(file2);\n        }\n        modulesWithElidedImports.set(file2.path, false);\n        processImportedModules(file2);\n      } else if (file2 && modulesWithElidedImports.get(file2.path)) {\n        if (currentNodeModulesDepth < maxNodeModuleJsDepth) {\n          modulesWithElidedImports.set(file2.path, false);\n          processImportedModules(file2);\n        }\n      }\n      return file2 || void 0;\n    }\n    let redirectedPath;\n    if (!useSourceOfProjectReferenceRedirect) {\n      const redirectProject = getRedirectFromSourceFile(fileName);\n      if (redirectProject == null ? void 0 : redirectProject.outputDts) {\n        if (redirectProject.resolvedRef.commandLine.options.outFile) {\n          return void 0;\n        }\n        fileName = redirectProject.outputDts;\n        redirectedPath = toPath3(redirectProject.outputDts);\n      }\n    }\n    const sourceFileOptions = getCreateSourceFileOptions(fileName, moduleResolutionCache, host, options);\n    const file = host.getSourceFile(\n      fileName,\n      sourceFileOptions,\n      (hostErrorMessage) => addFilePreprocessingFileExplainingDiagnostic(\n        /*file*/\n        void 0,\n        reason,\n        Diagnostics.Cannot_read_file_0_Colon_1,\n        [fileName, hostErrorMessage]\n      ),\n      shouldCreateNewSourceFile\n    );\n    if (packageId) {\n      const packageIdKey = packageIdToString(packageId);\n      const fileFromPackageId = packageIdToSourceFile.get(packageIdKey);\n      if (fileFromPackageId) {\n        const dupFile = createRedirectedSourceFile(fileFromPackageId, file, fileName, path, toPath3(fileName), originalFileName, sourceFileOptions);\n        redirectTargetsMap.add(fileFromPackageId.path, fileName);\n        addFileToFilesByName(dupFile, path, fileName, redirectedPath);\n        addFileIncludeReason(\n          dupFile,\n          reason,\n          /*checkExisting*/\n          false\n        );\n        sourceFileToPackageName.set(path, packageIdToPackageName(packageId));\n        processingOtherFiles.push(dupFile);\n        return dupFile;\n      } else if (file) {\n        packageIdToSourceFile.set(packageIdKey, file);\n        sourceFileToPackageName.set(path, packageIdToPackageName(packageId));\n      }\n    }\n    addFileToFilesByName(file, path, fileName, redirectedPath);\n    if (file) {\n      sourceFilesFoundSearchingNodeModules.set(path, currentNodeModulesDepth > 0);\n      file.fileName = fileName;\n      file.path = path;\n      file.resolvedPath = toPath3(fileName);\n      file.originalFileName = originalFileName;\n      file.packageJsonLocations = ((_b2 = sourceFileOptions.packageJsonLocations) == null ? void 0 : _b2.length) ? sourceFileOptions.packageJsonLocations : void 0;\n      file.packageJsonScope = sourceFileOptions.packageJsonScope;\n      addFileIncludeReason(\n        file,\n        reason,\n        /*checkExisting*/\n        false\n      );\n      if (host.useCaseSensitiveFileNames()) {\n        const pathLowerCase = toFileNameLowerCase(path);\n        const existingFile = filesByNameIgnoreCase.get(pathLowerCase);\n        if (existingFile) {\n          reportFileNamesDifferOnlyInCasingError(fileName, existingFile, reason);\n        } else {\n          filesByNameIgnoreCase.set(pathLowerCase, file);\n        }\n      }\n      skipDefaultLib = skipDefaultLib || file.hasNoDefaultLib && !ignoreNoDefaultLib;\n      if (!options.noResolve) {\n        processReferencedFiles(file, isDefaultLib);\n        processTypeReferenceDirectives(file);\n      }\n      if (!options.noLib) {\n        processLibReferenceDirectives(file);\n      }\n      processImportedModules(file);\n      if (isDefaultLib) {\n        processingDefaultLibFiles.push(file);\n      } else {\n        processingOtherFiles.push(file);\n      }\n      (filesWithReferencesProcessed ?? (filesWithReferencesProcessed = /* @__PURE__ */ new Set())).add(file.path);\n    }\n    return file;\n  }\n  function addFileIncludeReason(file, reason, checkExisting) {\n    if (file && (!checkExisting || !isReferencedFile(reason) || !(filesWithReferencesProcessed == null ? void 0 : filesWithReferencesProcessed.has(reason.file)))) {\n      programDiagnostics.getFileReasons().add(file.path, reason);\n      return true;\n    }\n    return false;\n  }\n  function addFileToFilesByName(file, path, fileName, redirectedPath) {\n    if (redirectedPath) {\n      updateFilesByNameMap(fileName, redirectedPath, file);\n      updateFilesByNameMap(fileName, path, file || false);\n    } else {\n      updateFilesByNameMap(fileName, path, file);\n    }\n  }\n  function updateFilesByNameMap(fileName, path, file) {\n    filesByName.set(path, file);\n    if (file !== void 0) missingFileNames.delete(path);\n    else missingFileNames.set(path, fileName);\n  }\n  function getRedirectFromSourceFile(fileName) {\n    return mapSourceFileToResolvedRef == null ? void 0 : mapSourceFileToResolvedRef.get(toPath3(fileName));\n  }\n  function forEachResolvedProjectReference2(cb) {\n    return forEachResolvedProjectReference(resolvedProjectReferences, cb);\n  }\n  function getRedirectFromOutput(path) {\n    return mapOutputFileToResolvedRef == null ? void 0 : mapOutputFileToResolvedRef.get(path);\n  }\n  function isSourceOfProjectReferenceRedirect(fileName) {\n    return useSourceOfProjectReferenceRedirect && !!getRedirectFromSourceFile(fileName);\n  }\n  function getResolvedProjectReferenceByPath(projectReferencePath) {\n    if (!projectReferenceRedirects) {\n      return void 0;\n    }\n    return projectReferenceRedirects.get(projectReferencePath) || void 0;\n  }\n  function processReferencedFiles(file, isDefaultLib) {\n    forEach(file.referencedFiles, (ref, index) => {\n      processSourceFile(\n        resolveTripleslashReference(ref.fileName, file.fileName),\n        isDefaultLib,\n        /*ignoreNoDefaultLib*/\n        false,\n        /*packageId*/\n        void 0,\n        { kind: 4 /* ReferenceFile */, file: file.path, index }\n      );\n    });\n  }\n  function processTypeReferenceDirectives(file) {\n    const typeDirectives = file.typeReferenceDirectives;\n    if (!typeDirectives.length) return;\n    const resolutions = (resolvedTypeReferenceDirectiveNamesProcessing == null ? void 0 : resolvedTypeReferenceDirectiveNamesProcessing.get(file.path)) || resolveTypeReferenceDirectiveNamesReusingOldState(typeDirectives, file);\n    const resolutionsInFile = createModeAwareCache();\n    (resolvedTypeReferenceDirectiveNames ?? (resolvedTypeReferenceDirectiveNames = /* @__PURE__ */ new Map())).set(file.path, resolutionsInFile);\n    for (let index = 0; index < typeDirectives.length; index++) {\n      const ref = file.typeReferenceDirectives[index];\n      const resolvedTypeReferenceDirective = resolutions[index];\n      const fileName = ref.fileName;\n      const mode = getModeForTypeReferenceDirectiveInFile(ref, file);\n      resolutionsInFile.set(fileName, mode, resolvedTypeReferenceDirective);\n      processTypeReferenceDirective(fileName, mode, resolvedTypeReferenceDirective, { kind: 5 /* TypeReferenceDirective */, file: file.path, index });\n    }\n  }\n  function getCompilerOptionsForFile(file) {\n    var _a2;\n    return ((_a2 = getRedirectReferenceForResolution(file)) == null ? void 0 : _a2.commandLine.options) || options;\n  }\n  function processTypeReferenceDirective(typeReferenceDirective, mode, resolution, reason) {\n    var _a2, _b2;\n    (_a2 = tracing) == null ? void 0 : _a2.push(tracing.Phase.Program, \"processTypeReferenceDirective\", { directive: typeReferenceDirective, hasResolved: !!resolution.resolvedTypeReferenceDirective, refKind: reason.kind, refPath: isReferencedFile(reason) ? reason.file : void 0 });\n    processTypeReferenceDirectiveWorker(typeReferenceDirective, mode, resolution, reason);\n    (_b2 = tracing) == null ? void 0 : _b2.pop();\n  }\n  function processTypeReferenceDirectiveWorker(typeReferenceDirective, mode, resolution, reason) {\n    addResolutionDiagnostics(resolution);\n    const { resolvedTypeReferenceDirective } = resolution;\n    if (resolvedTypeReferenceDirective) {\n      if (resolvedTypeReferenceDirective.isExternalLibraryImport) currentNodeModulesDepth++;\n      processSourceFile(\n        resolvedTypeReferenceDirective.resolvedFileName,\n        /*isDefaultLib*/\n        false,\n        /*ignoreNoDefaultLib*/\n        false,\n        resolvedTypeReferenceDirective.packageId,\n        reason\n      );\n      if (resolvedTypeReferenceDirective.isExternalLibraryImport) currentNodeModulesDepth--;\n    } else {\n      addFilePreprocessingFileExplainingDiagnostic(\n        /*file*/\n        void 0,\n        reason,\n        Diagnostics.Cannot_find_type_definition_file_for_0,\n        [typeReferenceDirective]\n      );\n    }\n  }\n  function pathForLibFile(libFileName) {\n    const existing = resolvedLibReferences == null ? void 0 : resolvedLibReferences.get(libFileName);\n    if (existing) return existing.actual;\n    const result = pathForLibFileWorker(libFileName);\n    (resolvedLibReferences ?? (resolvedLibReferences = /* @__PURE__ */ new Map())).set(libFileName, result);\n    return result.actual;\n  }\n  function pathForLibFileWorker(libFileName) {\n    var _a2, _b2, _c2, _d2, _e2;\n    const existing = resolvedLibProcessing == null ? void 0 : resolvedLibProcessing.get(libFileName);\n    if (existing) return existing;\n    if (options.libReplacement === false) {\n      const result2 = {\n        resolution: {\n          resolvedModule: void 0\n        },\n        actual: combinePaths(defaultLibraryPath, libFileName)\n      };\n      (resolvedLibProcessing ?? (resolvedLibProcessing = /* @__PURE__ */ new Map())).set(libFileName, result2);\n      return result2;\n    }\n    if (structureIsReused !== 0 /* Not */ && oldProgram && !hasInvalidatedLibResolutions(libFileName)) {\n      const oldResolution = (_a2 = oldProgram.resolvedLibReferences) == null ? void 0 : _a2.get(libFileName);\n      if (oldResolution) {\n        if (oldResolution.resolution && isTraceEnabled(options, host)) {\n          const libraryName2 = getLibraryNameFromLibFileName(libFileName);\n          const resolveFrom2 = getInferredLibraryNameResolveFrom(options, currentDirectory, libFileName);\n          trace(\n            host,\n            oldResolution.resolution.resolvedModule ? oldResolution.resolution.resolvedModule.packageId ? Diagnostics.Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package_ID_3 : Diagnostics.Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2 : Diagnostics.Reusing_resolution_of_module_0_from_1_of_old_program_it_was_not_resolved,\n            libraryName2,\n            getNormalizedAbsolutePath(resolveFrom2, currentDirectory),\n            (_b2 = oldResolution.resolution.resolvedModule) == null ? void 0 : _b2.resolvedFileName,\n            ((_c2 = oldResolution.resolution.resolvedModule) == null ? void 0 : _c2.packageId) && packageIdToString(oldResolution.resolution.resolvedModule.packageId)\n          );\n        }\n        (resolvedLibProcessing ?? (resolvedLibProcessing = /* @__PURE__ */ new Map())).set(libFileName, oldResolution);\n        return oldResolution;\n      }\n    }\n    const libraryName = getLibraryNameFromLibFileName(libFileName);\n    const resolveFrom = getInferredLibraryNameResolveFrom(options, currentDirectory, libFileName);\n    (_d2 = tracing) == null ? void 0 : _d2.push(tracing.Phase.Program, \"resolveLibrary\", { resolveFrom });\n    mark(\"beforeResolveLibrary\");\n    const resolution = actualResolveLibrary(libraryName, resolveFrom, options, libFileName);\n    mark(\"afterResolveLibrary\");\n    measure(\"ResolveLibrary\", \"beforeResolveLibrary\", \"afterResolveLibrary\");\n    (_e2 = tracing) == null ? void 0 : _e2.pop();\n    const result = {\n      resolution,\n      actual: resolution.resolvedModule ? resolution.resolvedModule.resolvedFileName : combinePaths(defaultLibraryPath, libFileName)\n    };\n    (resolvedLibProcessing ?? (resolvedLibProcessing = /* @__PURE__ */ new Map())).set(libFileName, result);\n    return result;\n  }\n  function processLibReferenceDirectives(file) {\n    forEach(file.libReferenceDirectives, (libReference, index) => {\n      const libFileName = getLibFileNameFromLibReference(libReference);\n      if (libFileName) {\n        processRootFile(\n          pathForLibFile(libFileName),\n          /*isDefaultLib*/\n          true,\n          /*ignoreNoDefaultLib*/\n          true,\n          { kind: 7 /* LibReferenceDirective */, file: file.path, index }\n        );\n      } else {\n        programDiagnostics.addFileProcessingDiagnostic({\n          kind: 0 /* FilePreprocessingLibReferenceDiagnostic */,\n          reason: { kind: 7 /* LibReferenceDirective */, file: file.path, index }\n        });\n      }\n    });\n  }\n  function getCanonicalFileName(fileName) {\n    return host.getCanonicalFileName(fileName);\n  }\n  function processImportedModules(file) {\n    collectExternalModuleReferences(file);\n    if (file.imports.length || file.moduleAugmentations.length) {\n      const moduleNames = getModuleNames(file);\n      const resolutions = (resolvedModulesProcessing == null ? void 0 : resolvedModulesProcessing.get(file.path)) || resolveModuleNamesReusingOldState(moduleNames, file);\n      Debug.assert(resolutions.length === moduleNames.length);\n      const optionsForFile = getCompilerOptionsForFile(file);\n      const resolutionsInFile = createModeAwareCache();\n      (resolvedModules ?? (resolvedModules = /* @__PURE__ */ new Map())).set(file.path, resolutionsInFile);\n      for (let index = 0; index < moduleNames.length; index++) {\n        const resolution = resolutions[index].resolvedModule;\n        const moduleName = moduleNames[index].text;\n        const mode = getModeForUsageLocationWorker(file, moduleNames[index], optionsForFile);\n        resolutionsInFile.set(moduleName, mode, resolutions[index]);\n        addResolutionDiagnosticsFromResolutionOrCache(file, moduleName, resolutions[index], mode);\n        if (!resolution) {\n          continue;\n        }\n        const isFromNodeModulesSearch = resolution.isExternalLibraryImport;\n        const isJsFile = !resolutionExtensionIsTSOrJson(resolution.extension) && !getRedirectFromSourceFile(resolution.resolvedFileName);\n        const isJsFileFromNodeModules = isFromNodeModulesSearch && isJsFile && (!resolution.originalPath || pathContainsNodeModules(resolution.resolvedFileName));\n        const resolvedFileName = resolution.resolvedFileName;\n        if (isFromNodeModulesSearch) {\n          currentNodeModulesDepth++;\n        }\n        const elideImport = isJsFileFromNodeModules && currentNodeModulesDepth > maxNodeModuleJsDepth;\n        const shouldAddFile = resolvedFileName && !getResolutionDiagnostic(optionsForFile, resolution, file) && !optionsForFile.noResolve && index < file.imports.length && !elideImport && !(isJsFile && !getAllowJSCompilerOption(optionsForFile)) && (isInJSFile(file.imports[index]) || !(file.imports[index].flags & 16777216 /* JSDoc */));\n        if (elideImport) {\n          modulesWithElidedImports.set(file.path, true);\n        } else if (shouldAddFile) {\n          findSourceFile(\n            resolvedFileName,\n            /*isDefaultLib*/\n            false,\n            /*ignoreNoDefaultLib*/\n            false,\n            { kind: 3 /* Import */, file: file.path, index },\n            resolution.packageId\n          );\n        }\n        if (isFromNodeModulesSearch) {\n          currentNodeModulesDepth--;\n        }\n      }\n    }\n  }\n  function checkSourceFilesBelongToPath(sourceFiles, rootDirectory) {\n    let allFilesBelongToPath = true;\n    const absoluteRootDirectoryPath = host.getCanonicalFileName(getNormalizedAbsolutePath(rootDirectory, currentDirectory));\n    for (const sourceFile of sourceFiles) {\n      if (!sourceFile.isDeclarationFile) {\n        const absoluteSourceFilePath = host.getCanonicalFileName(getNormalizedAbsolutePath(sourceFile.fileName, currentDirectory));\n        if (absoluteSourceFilePath.indexOf(absoluteRootDirectoryPath) !== 0) {\n          programDiagnostics.addLazyConfigDiagnostic(\n            sourceFile,\n            Diagnostics.File_0_is_not_under_rootDir_1_rootDir_is_expected_to_contain_all_source_files,\n            sourceFile.fileName,\n            rootDirectory\n          );\n          allFilesBelongToPath = false;\n        }\n      }\n    }\n    return allFilesBelongToPath;\n  }\n  function parseProjectReferenceConfigFile(ref) {\n    if (!projectReferenceRedirects) {\n      projectReferenceRedirects = /* @__PURE__ */ new Map();\n    }\n    const refPath = resolveProjectReferencePath(ref);\n    const sourceFilePath = toPath3(refPath);\n    const fromCache = projectReferenceRedirects.get(sourceFilePath);\n    if (fromCache !== void 0) {\n      return fromCache || void 0;\n    }\n    let commandLine;\n    let sourceFile;\n    if (host.getParsedCommandLine) {\n      commandLine = host.getParsedCommandLine(refPath);\n      if (!commandLine) {\n        addFileToFilesByName(\n          /*file*/\n          void 0,\n          sourceFilePath,\n          refPath,\n          /*redirectedPath*/\n          void 0\n        );\n        projectReferenceRedirects.set(sourceFilePath, false);\n        return void 0;\n      }\n      sourceFile = Debug.checkDefined(commandLine.options.configFile);\n      Debug.assert(!sourceFile.path || sourceFile.path === sourceFilePath);\n      addFileToFilesByName(\n        sourceFile,\n        sourceFilePath,\n        refPath,\n        /*redirectedPath*/\n        void 0\n      );\n    } else {\n      const basePath = getNormalizedAbsolutePath(getDirectoryPath(refPath), currentDirectory);\n      sourceFile = host.getSourceFile(refPath, 100 /* JSON */);\n      addFileToFilesByName(\n        sourceFile,\n        sourceFilePath,\n        refPath,\n        /*redirectedPath*/\n        void 0\n      );\n      if (sourceFile === void 0) {\n        projectReferenceRedirects.set(sourceFilePath, false);\n        return void 0;\n      }\n      commandLine = parseJsonSourceFileConfigFileContent(\n        sourceFile,\n        configParsingHost,\n        basePath,\n        /*existingOptions*/\n        void 0,\n        refPath\n      );\n    }\n    sourceFile.fileName = refPath;\n    sourceFile.path = sourceFilePath;\n    sourceFile.resolvedPath = sourceFilePath;\n    sourceFile.originalFileName = refPath;\n    const resolvedRef = { commandLine, sourceFile };\n    projectReferenceRedirects.set(sourceFilePath, resolvedRef);\n    if (options.configFile !== sourceFile) {\n      mapSourceFileToResolvedRef ?? (mapSourceFileToResolvedRef = /* @__PURE__ */ new Map());\n      mapOutputFileToResolvedRef ?? (mapOutputFileToResolvedRef = /* @__PURE__ */ new Map());\n      let outDts;\n      if (commandLine.options.outFile) {\n        outDts = changeExtension(commandLine.options.outFile, \".d.ts\" /* Dts */);\n        mapOutputFileToResolvedRef == null ? void 0 : mapOutputFileToResolvedRef.set(toPath3(outDts), { resolvedRef });\n      }\n      const getCommonSourceDirectory3 = memoize(() => getCommonSourceDirectoryOfConfig(resolvedRef.commandLine, !host.useCaseSensitiveFileNames()));\n      commandLine.fileNames.forEach((fileName) => {\n        const path = toPath3(fileName);\n        let outputDts;\n        if (!isDeclarationFileName(fileName) && !fileExtensionIs(fileName, \".json\" /* Json */)) {\n          if (!commandLine.options.outFile) {\n            outputDts = getOutputDeclarationFileName(fileName, resolvedRef.commandLine, !host.useCaseSensitiveFileNames(), getCommonSourceDirectory3);\n            mapOutputFileToResolvedRef.set(toPath3(outputDts), { resolvedRef, source: fileName });\n          } else {\n            outputDts = outDts;\n          }\n        }\n        mapSourceFileToResolvedRef.set(path, { resolvedRef, outputDts });\n      });\n    }\n    if (commandLine.projectReferences) {\n      resolvedRef.references = commandLine.projectReferences.map(parseProjectReferenceConfigFile);\n    }\n    return resolvedRef;\n  }\n  function verifyCompilerOptions() {\n    if (options.strictPropertyInitialization && !getStrictOptionValue(options, \"strictNullChecks\")) {\n      createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1, \"strictPropertyInitialization\", \"strictNullChecks\");\n    }\n    if (options.exactOptionalPropertyTypes && !getStrictOptionValue(options, \"strictNullChecks\")) {\n      createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1, \"exactOptionalPropertyTypes\", \"strictNullChecks\");\n    }\n    if (options.isolatedModules || options.verbatimModuleSyntax) {\n      if (options.outFile) {\n        createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_with_option_1, \"outFile\", options.verbatimModuleSyntax ? \"verbatimModuleSyntax\" : \"isolatedModules\");\n      }\n    }\n    if (options.isolatedDeclarations) {\n      if (getAllowJSCompilerOption(options)) {\n        createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_with_option_1, \"allowJs\", \"isolatedDeclarations\");\n      }\n      if (!getEmitDeclarations(options)) {\n        createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1_or_option_2, \"isolatedDeclarations\", \"declaration\", \"composite\");\n      }\n    }\n    if (options.inlineSourceMap) {\n      if (options.sourceMap) {\n        createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_with_option_1, \"sourceMap\", \"inlineSourceMap\");\n      }\n      if (options.mapRoot) {\n        createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_with_option_1, \"mapRoot\", \"inlineSourceMap\");\n      }\n    }\n    if (options.composite) {\n      if (options.declaration === false) {\n        createDiagnosticForOptionName(Diagnostics.Composite_projects_may_not_disable_declaration_emit, \"declaration\");\n      }\n      if (options.incremental === false) {\n        createDiagnosticForOptionName(Diagnostics.Composite_projects_may_not_disable_incremental_compilation, \"declaration\");\n      }\n    }\n    const outputFile = options.outFile;\n    if (!options.tsBuildInfoFile && options.incremental && !outputFile && !options.configFilePath) {\n      programDiagnostics.addConfigDiagnostic(createCompilerDiagnostic(Diagnostics.Option_incremental_can_only_be_specified_using_tsconfig_emitting_to_single_file_or_when_option_tsBuildInfoFile_is_specified));\n    }\n    verifyDeprecatedCompilerOptions();\n    verifyProjectReferences();\n    if (options.composite) {\n      const rootPaths = new Set(rootNames.map(toPath3));\n      for (const file of files) {\n        if (sourceFileMayBeEmitted(file, program) && !rootPaths.has(file.path)) {\n          programDiagnostics.addLazyConfigDiagnostic(\n            file,\n            Diagnostics.File_0_is_not_listed_within_the_file_list_of_project_1_Projects_must_list_all_files_or_use_an_include_pattern,\n            file.fileName,\n            options.configFilePath || \"\"\n          );\n        }\n      }\n    }\n    if (options.paths) {\n      for (const key in options.paths) {\n        if (!hasProperty(options.paths, key)) {\n          continue;\n        }\n        if (!hasZeroOrOneAsteriskCharacter(key)) {\n          createDiagnosticForOptionPaths(\n            /*onKey*/\n            true,\n            key,\n            Diagnostics.Pattern_0_can_have_at_most_one_Asterisk_character,\n            key\n          );\n        }\n        if (isArray(options.paths[key])) {\n          const len = options.paths[key].length;\n          if (len === 0) {\n            createDiagnosticForOptionPaths(\n              /*onKey*/\n              false,\n              key,\n              Diagnostics.Substitutions_for_pattern_0_shouldn_t_be_an_empty_array,\n              key\n            );\n          }\n          for (let i = 0; i < len; i++) {\n            const subst = options.paths[key][i];\n            const typeOfSubst = typeof subst;\n            if (typeOfSubst === \"string\") {\n              if (!hasZeroOrOneAsteriskCharacter(subst)) {\n                createDiagnosticForOptionPathKeyValue(key, i, Diagnostics.Substitution_0_in_pattern_1_can_have_at_most_one_Asterisk_character, subst, key);\n              }\n              if (!options.baseUrl && !pathIsRelative(subst) && !pathIsAbsolute(subst)) {\n                createDiagnosticForOptionPathKeyValue(key, i, Diagnostics.Non_relative_paths_are_not_allowed_when_baseUrl_is_not_set_Did_you_forget_a_leading_Slash);\n              }\n            } else {\n              createDiagnosticForOptionPathKeyValue(key, i, Diagnostics.Substitution_0_for_pattern_1_has_incorrect_type_expected_string_got_2, subst, key, typeOfSubst);\n            }\n          }\n        } else {\n          createDiagnosticForOptionPaths(\n            /*onKey*/\n            false,\n            key,\n            Diagnostics.Substitutions_for_pattern_0_should_be_an_array,\n            key\n          );\n        }\n      }\n    }\n    if (!options.sourceMap && !options.inlineSourceMap) {\n      if (options.inlineSources) {\n        createDiagnosticForOptionName(Diagnostics.Option_0_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided, \"inlineSources\");\n      }\n      if (options.sourceRoot) {\n        createDiagnosticForOptionName(Diagnostics.Option_0_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided, \"sourceRoot\");\n      }\n    }\n    if (options.mapRoot && !(options.sourceMap || options.declarationMap)) {\n      createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1_or_option_2, \"mapRoot\", \"sourceMap\", \"declarationMap\");\n    }\n    if (options.declarationDir) {\n      if (!getEmitDeclarations(options)) {\n        createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1_or_option_2, \"declarationDir\", \"declaration\", \"composite\");\n      }\n      if (outputFile) {\n        createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_with_option_1, \"declarationDir\", \"outFile\");\n      }\n    }\n    if (options.declarationMap && !getEmitDeclarations(options)) {\n      createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1_or_option_2, \"declarationMap\", \"declaration\", \"composite\");\n    }\n    if (options.lib && options.noLib) {\n      createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_with_option_1, \"lib\", \"noLib\");\n    }\n    const languageVersion = getEmitScriptTarget(options);\n    const firstNonAmbientExternalModuleSourceFile = find(files, (f) => isExternalModule(f) && !f.isDeclarationFile);\n    if (options.isolatedModules || options.verbatimModuleSyntax) {\n      if (options.module === 0 /* None */ && languageVersion < 2 /* ES2015 */ && options.isolatedModules) {\n        createDiagnosticForOptionName(Diagnostics.Option_isolatedModules_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES2015_or_higher, \"isolatedModules\", \"target\");\n      }\n      if (options.preserveConstEnums === false) {\n        createDiagnosticForOptionName(Diagnostics.Option_preserveConstEnums_cannot_be_disabled_when_0_is_enabled, options.verbatimModuleSyntax ? \"verbatimModuleSyntax\" : \"isolatedModules\", \"preserveConstEnums\");\n      }\n    } else if (firstNonAmbientExternalModuleSourceFile && languageVersion < 2 /* ES2015 */ && options.module === 0 /* None */) {\n      const span = getErrorSpanForNode(firstNonAmbientExternalModuleSourceFile, typeof firstNonAmbientExternalModuleSourceFile.externalModuleIndicator === \"boolean\" ? firstNonAmbientExternalModuleSourceFile : firstNonAmbientExternalModuleSourceFile.externalModuleIndicator);\n      programDiagnostics.addConfigDiagnostic(createFileDiagnostic(firstNonAmbientExternalModuleSourceFile, span.start, span.length, Diagnostics.Cannot_use_imports_exports_or_module_augmentations_when_module_is_none));\n    }\n    if (outputFile && !options.emitDeclarationOnly) {\n      if (options.module && !(options.module === 2 /* AMD */ || options.module === 4 /* System */)) {\n        createDiagnosticForOptionName(Diagnostics.Only_amd_and_system_modules_are_supported_alongside_0, \"outFile\", \"module\");\n      } else if (options.module === void 0 && firstNonAmbientExternalModuleSourceFile) {\n        const span = getErrorSpanForNode(firstNonAmbientExternalModuleSourceFile, typeof firstNonAmbientExternalModuleSourceFile.externalModuleIndicator === \"boolean\" ? firstNonAmbientExternalModuleSourceFile : firstNonAmbientExternalModuleSourceFile.externalModuleIndicator);\n        programDiagnostics.addConfigDiagnostic(createFileDiagnostic(firstNonAmbientExternalModuleSourceFile, span.start, span.length, Diagnostics.Cannot_compile_modules_using_option_0_unless_the_module_flag_is_amd_or_system, \"outFile\"));\n      }\n    }\n    if (getResolveJsonModule(options)) {\n      if (getEmitModuleResolutionKind(options) === 1 /* Classic */) {\n        createDiagnosticForOptionName(Diagnostics.Option_resolveJsonModule_cannot_be_specified_when_moduleResolution_is_set_to_classic, \"resolveJsonModule\");\n      } else if (!hasJsonModuleEmitEnabled(options)) {\n        createDiagnosticForOptionName(Diagnostics.Option_resolveJsonModule_cannot_be_specified_when_module_is_set_to_none_system_or_umd, \"resolveJsonModule\", \"module\");\n      }\n    }\n    if (options.outDir || // there is --outDir specified\n    options.rootDir || // there is --rootDir specified\n    options.sourceRoot || // there is --sourceRoot specified\n    options.mapRoot || // there is --mapRoot specified\n    getEmitDeclarations(options) && options.declarationDir) {\n      const dir = getCommonSourceDirectory2();\n      if (options.outDir && dir === \"\" && files.some((file) => getRootLength(file.fileName) > 1)) {\n        createDiagnosticForOptionName(Diagnostics.Cannot_find_the_common_subdirectory_path_for_the_input_files, \"outDir\");\n      }\n    }\n    if (options.checkJs && !getAllowJSCompilerOption(options)) {\n      createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1, \"checkJs\", \"allowJs\");\n    }\n    if (options.emitDeclarationOnly) {\n      if (!getEmitDeclarations(options)) {\n        createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1_or_option_2, \"emitDeclarationOnly\", \"declaration\", \"composite\");\n      }\n    }\n    if (options.emitDecoratorMetadata && !options.experimentalDecorators) {\n      createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1, \"emitDecoratorMetadata\", \"experimentalDecorators\");\n    }\n    if (options.jsxFactory) {\n      if (options.reactNamespace) {\n        createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_with_option_1, \"reactNamespace\", \"jsxFactory\");\n      }\n      if (options.jsx === 4 /* ReactJSX */ || options.jsx === 5 /* ReactJSXDev */) {\n        createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_when_option_jsx_is_1, \"jsxFactory\", inverseJsxOptionMap.get(\"\" + options.jsx));\n      }\n      if (!parseIsolatedEntityName(options.jsxFactory, languageVersion)) {\n        createOptionValueDiagnostic(\"jsxFactory\", Diagnostics.Invalid_value_for_jsxFactory_0_is_not_a_valid_identifier_or_qualified_name, options.jsxFactory);\n      }\n    } else if (options.reactNamespace && !isIdentifierText(options.reactNamespace, languageVersion)) {\n      createOptionValueDiagnostic(\"reactNamespace\", Diagnostics.Invalid_value_for_reactNamespace_0_is_not_a_valid_identifier, options.reactNamespace);\n    }\n    if (options.jsxFragmentFactory) {\n      if (!options.jsxFactory) {\n        createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1, \"jsxFragmentFactory\", \"jsxFactory\");\n      }\n      if (options.jsx === 4 /* ReactJSX */ || options.jsx === 5 /* ReactJSXDev */) {\n        createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_when_option_jsx_is_1, \"jsxFragmentFactory\", inverseJsxOptionMap.get(\"\" + options.jsx));\n      }\n      if (!parseIsolatedEntityName(options.jsxFragmentFactory, languageVersion)) {\n        createOptionValueDiagnostic(\"jsxFragmentFactory\", Diagnostics.Invalid_value_for_jsxFragmentFactory_0_is_not_a_valid_identifier_or_qualified_name, options.jsxFragmentFactory);\n      }\n    }\n    if (options.reactNamespace) {\n      if (options.jsx === 4 /* ReactJSX */ || options.jsx === 5 /* ReactJSXDev */) {\n        createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_when_option_jsx_is_1, \"reactNamespace\", inverseJsxOptionMap.get(\"\" + options.jsx));\n      }\n    }\n    if (options.jsxImportSource) {\n      if (options.jsx === 2 /* React */) {\n        createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_when_option_jsx_is_1, \"jsxImportSource\", inverseJsxOptionMap.get(\"\" + options.jsx));\n      }\n    }\n    const moduleKind = getEmitModuleKind(options);\n    if (options.verbatimModuleSyntax) {\n      if (moduleKind === 2 /* AMD */ || moduleKind === 3 /* UMD */ || moduleKind === 4 /* System */) {\n        createDiagnosticForOptionName(Diagnostics.Option_verbatimModuleSyntax_cannot_be_used_when_module_is_set_to_UMD_AMD_or_System, \"verbatimModuleSyntax\");\n      }\n    }\n    if (options.allowImportingTsExtensions && !(options.noEmit || options.emitDeclarationOnly || options.rewriteRelativeImportExtensions)) {\n      createOptionValueDiagnostic(\"allowImportingTsExtensions\", Diagnostics.Option_allowImportingTsExtensions_can_only_be_used_when_either_noEmit_or_emitDeclarationOnly_is_set);\n    }\n    const moduleResolution = getEmitModuleResolutionKind(options);\n    if (options.resolvePackageJsonExports && !moduleResolutionSupportsPackageJsonExportsAndImports(moduleResolution)) {\n      createDiagnosticForOptionName(Diagnostics.Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler, \"resolvePackageJsonExports\");\n    }\n    if (options.resolvePackageJsonImports && !moduleResolutionSupportsPackageJsonExportsAndImports(moduleResolution)) {\n      createDiagnosticForOptionName(Diagnostics.Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler, \"resolvePackageJsonImports\");\n    }\n    if (options.customConditions && !moduleResolutionSupportsPackageJsonExportsAndImports(moduleResolution)) {\n      createDiagnosticForOptionName(Diagnostics.Option_0_can_only_be_used_when_moduleResolution_is_set_to_node16_nodenext_or_bundler, \"customConditions\");\n    }\n    if (moduleResolution === 100 /* Bundler */ && !emitModuleKindIsNonNodeESM(moduleKind) && moduleKind !== 200 /* Preserve */) {\n      createOptionValueDiagnostic(\"moduleResolution\", Diagnostics.Option_0_can_only_be_used_when_module_is_set_to_preserve_or_to_es2015_or_later, \"bundler\");\n    }\n    if (ModuleKind[moduleKind] && (100 /* Node16 */ <= moduleKind && moduleKind <= 199 /* NodeNext */) && !(3 /* Node16 */ <= moduleResolution && moduleResolution <= 99 /* NodeNext */)) {\n      const moduleKindName = ModuleKind[moduleKind];\n      const moduleResolutionName = ModuleResolutionKind[moduleKindName] ? moduleKindName : \"Node16\";\n      createOptionValueDiagnostic(\"moduleResolution\", Diagnostics.Option_moduleResolution_must_be_set_to_0_or_left_unspecified_when_option_module_is_set_to_1, moduleResolutionName, moduleKindName);\n    } else if (ModuleResolutionKind[moduleResolution] && (3 /* Node16 */ <= moduleResolution && moduleResolution <= 99 /* NodeNext */) && !(100 /* Node16 */ <= moduleKind && moduleKind <= 199 /* NodeNext */)) {\n      const moduleResolutionName = ModuleResolutionKind[moduleResolution];\n      createOptionValueDiagnostic(\"module\", Diagnostics.Option_module_must_be_set_to_0_when_option_moduleResolution_is_set_to_1, moduleResolutionName, moduleResolutionName);\n    }\n    if (!options.noEmit && !options.suppressOutputPathCheck) {\n      const emitHost = getEmitHost();\n      const emitFilesSeen = /* @__PURE__ */ new Set();\n      forEachEmittedFile(emitHost, (emitFileNames) => {\n        if (!options.emitDeclarationOnly) {\n          verifyEmitFilePath(emitFileNames.jsFilePath, emitFilesSeen);\n        }\n        verifyEmitFilePath(emitFileNames.declarationFilePath, emitFilesSeen);\n      });\n    }\n    function verifyEmitFilePath(emitFileName, emitFilesSeen) {\n      if (emitFileName) {\n        const emitFilePath = toPath3(emitFileName);\n        if (filesByName.has(emitFilePath)) {\n          let chain;\n          if (!options.configFilePath) {\n            chain = chainDiagnosticMessages(\n              /*details*/\n              void 0,\n              Diagnostics.Adding_a_tsconfig_json_file_will_help_organize_projects_that_contain_both_TypeScript_and_JavaScript_files_Learn_more_at_https_Colon_Slash_Slashaka_ms_Slashtsconfig\n            );\n          }\n          chain = chainDiagnosticMessages(chain, Diagnostics.Cannot_write_file_0_because_it_would_overwrite_input_file, emitFileName);\n          blockEmittingOfFile(emitFileName, createCompilerDiagnosticFromMessageChain(chain));\n        }\n        const emitFileKey = !host.useCaseSensitiveFileNames() ? toFileNameLowerCase(emitFilePath) : emitFilePath;\n        if (emitFilesSeen.has(emitFileKey)) {\n          blockEmittingOfFile(emitFileName, createCompilerDiagnostic(Diagnostics.Cannot_write_file_0_because_it_would_be_overwritten_by_multiple_input_files, emitFileName));\n        } else {\n          emitFilesSeen.add(emitFileKey);\n        }\n      }\n    }\n  }\n  function getIgnoreDeprecationsVersion() {\n    const ignoreDeprecations = options.ignoreDeprecations;\n    if (ignoreDeprecations) {\n      if (ignoreDeprecations === \"5.0\") {\n        return new Version(ignoreDeprecations);\n      }\n      reportInvalidIgnoreDeprecations();\n    }\n    return Version.zero;\n  }\n  function checkDeprecations(deprecatedIn, removedIn, createDiagnostic, fn) {\n    const deprecatedInVersion = new Version(deprecatedIn);\n    const removedInVersion = new Version(removedIn);\n    const typescriptVersion = new Version(typeScriptVersion3 || versionMajorMinor);\n    const ignoreDeprecationsVersion = getIgnoreDeprecationsVersion();\n    const mustBeRemoved = !(removedInVersion.compareTo(typescriptVersion) === 1 /* GreaterThan */);\n    const canBeSilenced = !mustBeRemoved && ignoreDeprecationsVersion.compareTo(deprecatedInVersion) === -1 /* LessThan */;\n    if (mustBeRemoved || canBeSilenced) {\n      fn((name, value, useInstead) => {\n        if (mustBeRemoved) {\n          if (value === void 0) {\n            createDiagnostic(name, value, useInstead, Diagnostics.Option_0_has_been_removed_Please_remove_it_from_your_configuration, name);\n          } else {\n            createDiagnostic(name, value, useInstead, Diagnostics.Option_0_1_has_been_removed_Please_remove_it_from_your_configuration, name, value);\n          }\n        } else {\n          if (value === void 0) {\n            createDiagnostic(name, value, useInstead, Diagnostics.Option_0_is_deprecated_and_will_stop_functioning_in_TypeScript_1_Specify_compilerOption_ignoreDeprecations_Colon_2_to_silence_this_error, name, removedIn, deprecatedIn);\n          } else {\n            createDiagnostic(name, value, useInstead, Diagnostics.Option_0_1_is_deprecated_and_will_stop_functioning_in_TypeScript_2_Specify_compilerOption_ignoreDeprecations_Colon_3_to_silence_this_error, name, value, removedIn, deprecatedIn);\n          }\n        }\n      });\n    }\n  }\n  function verifyDeprecatedCompilerOptions() {\n    function createDiagnostic(name, value, useInstead, message, ...args) {\n      if (useInstead) {\n        const details = chainDiagnosticMessages(\n          /*details*/\n          void 0,\n          Diagnostics.Use_0_instead,\n          useInstead\n        );\n        const chain = chainDiagnosticMessages(details, message, ...args);\n        createDiagnosticForOption(\n          /*onKey*/\n          !value,\n          name,\n          /*option2*/\n          void 0,\n          chain\n        );\n      } else {\n        createDiagnosticForOption(\n          /*onKey*/\n          !value,\n          name,\n          /*option2*/\n          void 0,\n          message,\n          ...args\n        );\n      }\n    }\n    checkDeprecations(\"5.0\", \"5.5\", createDiagnostic, (createDeprecatedDiagnostic) => {\n      if (options.target === 0 /* ES3 */) {\n        createDeprecatedDiagnostic(\"target\", \"ES3\");\n      }\n      if (options.noImplicitUseStrict) {\n        createDeprecatedDiagnostic(\"noImplicitUseStrict\");\n      }\n      if (options.keyofStringsOnly) {\n        createDeprecatedDiagnostic(\"keyofStringsOnly\");\n      }\n      if (options.suppressExcessPropertyErrors) {\n        createDeprecatedDiagnostic(\"suppressExcessPropertyErrors\");\n      }\n      if (options.suppressImplicitAnyIndexErrors) {\n        createDeprecatedDiagnostic(\"suppressImplicitAnyIndexErrors\");\n      }\n      if (options.noStrictGenericChecks) {\n        createDeprecatedDiagnostic(\"noStrictGenericChecks\");\n      }\n      if (options.charset) {\n        createDeprecatedDiagnostic(\"charset\");\n      }\n      if (options.out) {\n        createDeprecatedDiagnostic(\n          \"out\",\n          /*value*/\n          void 0,\n          \"outFile\"\n        );\n      }\n      if (options.importsNotUsedAsValues) {\n        createDeprecatedDiagnostic(\n          \"importsNotUsedAsValues\",\n          /*value*/\n          void 0,\n          \"verbatimModuleSyntax\"\n        );\n      }\n      if (options.preserveValueImports) {\n        createDeprecatedDiagnostic(\n          \"preserveValueImports\",\n          /*value*/\n          void 0,\n          \"verbatimModuleSyntax\"\n        );\n      }\n    });\n  }\n  function verifyDeprecatedProjectReference(ref, parentFile, index) {\n    function createDiagnostic(_name, _value, _useInstead, message, ...args) {\n      createDiagnosticForReference(parentFile, index, message, ...args);\n    }\n    checkDeprecations(\"5.0\", \"5.5\", createDiagnostic, (createDeprecatedDiagnostic) => {\n      if (ref.prepend) {\n        createDeprecatedDiagnostic(\"prepend\");\n      }\n    });\n  }\n  function addFilePreprocessingFileExplainingDiagnostic(file, fileProcessingReason, diagnostic, args) {\n    programDiagnostics.addFileProcessingDiagnostic({\n      kind: 1 /* FilePreprocessingFileExplainingDiagnostic */,\n      file: file && file.path,\n      fileProcessingReason,\n      diagnostic,\n      args\n    });\n  }\n  function verifyProjectReferences() {\n    const buildInfoPath = !options.suppressOutputPathCheck ? getTsBuildInfoEmitOutputFilePath(options) : void 0;\n    forEachProjectReference(\n      projectReferences,\n      resolvedProjectReferences,\n      (resolvedRef, parent2, index) => {\n        const ref = (parent2 ? parent2.commandLine.projectReferences : projectReferences)[index];\n        const parentFile = parent2 && parent2.sourceFile;\n        verifyDeprecatedProjectReference(ref, parentFile, index);\n        if (!resolvedRef) {\n          createDiagnosticForReference(parentFile, index, Diagnostics.File_0_not_found, ref.path);\n          return;\n        }\n        const options2 = resolvedRef.commandLine.options;\n        if (!options2.composite || options2.noEmit) {\n          const inputs = parent2 ? parent2.commandLine.fileNames : rootNames;\n          if (inputs.length) {\n            if (!options2.composite) createDiagnosticForReference(parentFile, index, Diagnostics.Referenced_project_0_must_have_setting_composite_Colon_true, ref.path);\n            if (options2.noEmit) createDiagnosticForReference(parentFile, index, Diagnostics.Referenced_project_0_may_not_disable_emit, ref.path);\n          }\n        }\n        if (!parent2 && buildInfoPath && buildInfoPath === getTsBuildInfoEmitOutputFilePath(options2)) {\n          createDiagnosticForReference(parentFile, index, Diagnostics.Cannot_write_file_0_because_it_will_overwrite_tsbuildinfo_file_generated_by_referenced_project_1, buildInfoPath, ref.path);\n          hasEmitBlockingDiagnostics.set(toPath3(buildInfoPath), true);\n        }\n      }\n    );\n  }\n  function createDiagnosticForOptionPathKeyValue(key, valueIndex, message, ...args) {\n    let needCompilerDiagnostic = true;\n    forEachOptionPathsSyntax((pathProp) => {\n      if (isObjectLiteralExpression(pathProp.initializer)) {\n        forEachPropertyAssignment(pathProp.initializer, key, (keyProps) => {\n          const initializer = keyProps.initializer;\n          if (isArrayLiteralExpression(initializer) && initializer.elements.length > valueIndex) {\n            programDiagnostics.addConfigDiagnostic(createDiagnosticForNodeInSourceFile(options.configFile, initializer.elements[valueIndex], message, ...args));\n            needCompilerDiagnostic = false;\n          }\n        });\n      }\n    });\n    if (needCompilerDiagnostic) {\n      createCompilerOptionsDiagnostic(message, ...args);\n    }\n  }\n  function createDiagnosticForOptionPaths(onKey, key, message, ...args) {\n    let needCompilerDiagnostic = true;\n    forEachOptionPathsSyntax((pathProp) => {\n      if (isObjectLiteralExpression(pathProp.initializer) && createOptionDiagnosticInObjectLiteralSyntax(\n        pathProp.initializer,\n        onKey,\n        key,\n        /*key2*/\n        void 0,\n        message,\n        ...args\n      )) {\n        needCompilerDiagnostic = false;\n      }\n    });\n    if (needCompilerDiagnostic) {\n      createCompilerOptionsDiagnostic(message, ...args);\n    }\n  }\n  function forEachOptionPathsSyntax(callback) {\n    return forEachOptionsSyntaxByName(getCompilerOptionsObjectLiteralSyntax(), \"paths\", callback);\n  }\n  function createDiagnosticForOptionName(message, option1, option2, option3) {\n    createDiagnosticForOption(\n      /*onKey*/\n      true,\n      option1,\n      option2,\n      message,\n      option1,\n      option2,\n      option3\n    );\n  }\n  function createOptionValueDiagnostic(option1, message, ...args) {\n    createDiagnosticForOption(\n      /*onKey*/\n      false,\n      option1,\n      /*option2*/\n      void 0,\n      message,\n      ...args\n    );\n  }\n  function createDiagnosticForReference(sourceFile, index, message, ...args) {\n    const referencesSyntax = forEachTsConfigPropArray(sourceFile || options.configFile, \"references\", (property) => isArrayLiteralExpression(property.initializer) ? property.initializer : void 0);\n    if (referencesSyntax && referencesSyntax.elements.length > index) {\n      programDiagnostics.addConfigDiagnostic(createDiagnosticForNodeInSourceFile(sourceFile || options.configFile, referencesSyntax.elements[index], message, ...args));\n    } else {\n      programDiagnostics.addConfigDiagnostic(createCompilerDiagnostic(message, ...args));\n    }\n  }\n  function createDiagnosticForOption(onKey, option1, option2, message, ...args) {\n    const compilerOptionsObjectLiteralSyntax = getCompilerOptionsObjectLiteralSyntax();\n    const needCompilerDiagnostic = !compilerOptionsObjectLiteralSyntax || !createOptionDiagnosticInObjectLiteralSyntax(compilerOptionsObjectLiteralSyntax, onKey, option1, option2, message, ...args);\n    if (needCompilerDiagnostic) {\n      createCompilerOptionsDiagnostic(message, ...args);\n    }\n  }\n  function createCompilerOptionsDiagnostic(message, ...args) {\n    const compilerOptionsProperty = getCompilerOptionsPropertySyntax();\n    if (compilerOptionsProperty) {\n      if (\"messageText\" in message) {\n        programDiagnostics.addConfigDiagnostic(createDiagnosticForNodeFromMessageChain(options.configFile, compilerOptionsProperty.name, message));\n      } else {\n        programDiagnostics.addConfigDiagnostic(createDiagnosticForNodeInSourceFile(options.configFile, compilerOptionsProperty.name, message, ...args));\n      }\n    } else if (\"messageText\" in message) {\n      programDiagnostics.addConfigDiagnostic(createCompilerDiagnosticFromMessageChain(message));\n    } else {\n      programDiagnostics.addConfigDiagnostic(createCompilerDiagnostic(message, ...args));\n    }\n  }\n  function getCompilerOptionsObjectLiteralSyntax() {\n    if (_compilerOptionsObjectLiteralSyntax === void 0) {\n      const compilerOptionsProperty = getCompilerOptionsPropertySyntax();\n      _compilerOptionsObjectLiteralSyntax = compilerOptionsProperty ? tryCast(compilerOptionsProperty.initializer, isObjectLiteralExpression) || false : false;\n    }\n    return _compilerOptionsObjectLiteralSyntax || void 0;\n  }\n  function getCompilerOptionsPropertySyntax() {\n    if (_compilerOptionsPropertySyntax === void 0) {\n      _compilerOptionsPropertySyntax = forEachPropertyAssignment(\n        getTsConfigObjectLiteralExpression(options.configFile),\n        \"compilerOptions\",\n        identity\n      ) || false;\n    }\n    return _compilerOptionsPropertySyntax || void 0;\n  }\n  function createOptionDiagnosticInObjectLiteralSyntax(objectLiteral, onKey, key1, key2, message, ...args) {\n    let needsCompilerDiagnostic = false;\n    forEachPropertyAssignment(objectLiteral, key1, (prop) => {\n      if (\"messageText\" in message) {\n        programDiagnostics.addConfigDiagnostic(createDiagnosticForNodeFromMessageChain(options.configFile, onKey ? prop.name : prop.initializer, message));\n      } else {\n        programDiagnostics.addConfigDiagnostic(createDiagnosticForNodeInSourceFile(options.configFile, onKey ? prop.name : prop.initializer, message, ...args));\n      }\n      needsCompilerDiagnostic = true;\n    }, key2);\n    return needsCompilerDiagnostic;\n  }\n  function blockEmittingOfFile(emitFileName, diag2) {\n    hasEmitBlockingDiagnostics.set(toPath3(emitFileName), true);\n    programDiagnostics.addConfigDiagnostic(diag2);\n  }\n  function isEmittedFile(file) {\n    if (options.noEmit) {\n      return false;\n    }\n    const filePath = toPath3(file);\n    if (getSourceFileByPath(filePath)) {\n      return false;\n    }\n    const out = options.outFile;\n    if (out) {\n      return isSameFile(filePath, out) || isSameFile(filePath, removeFileExtension(out) + \".d.ts\" /* Dts */);\n    }\n    if (options.declarationDir && containsPath(options.declarationDir, filePath, currentDirectory, !host.useCaseSensitiveFileNames())) {\n      return true;\n    }\n    if (options.outDir) {\n      return containsPath(options.outDir, filePath, currentDirectory, !host.useCaseSensitiveFileNames());\n    }\n    if (fileExtensionIsOneOf(filePath, supportedJSExtensionsFlat) || isDeclarationFileName(filePath)) {\n      const filePathWithoutExtension = removeFileExtension(filePath);\n      return !!getSourceFileByPath(filePathWithoutExtension + \".ts\" /* Ts */) || !!getSourceFileByPath(filePathWithoutExtension + \".tsx\" /* Tsx */);\n    }\n    return false;\n  }\n  function isSameFile(file1, file2) {\n    return comparePaths(file1, file2, currentDirectory, !host.useCaseSensitiveFileNames()) === 0 /* EqualTo */;\n  }\n  function getSymlinkCache() {\n    if (host.getSymlinkCache) {\n      return host.getSymlinkCache();\n    }\n    if (!symlinks) {\n      symlinks = createSymlinkCache(currentDirectory, getCanonicalFileName);\n    }\n    if (files && !symlinks.hasProcessedResolutions()) {\n      symlinks.setSymlinksFromResolutions(forEachResolvedModule, forEachResolvedTypeReferenceDirective, automaticTypeDirectiveResolutions);\n    }\n    return symlinks;\n  }\n  function getModeForUsageLocation2(file, usage) {\n    return getModeForUsageLocationWorker(file, usage, getCompilerOptionsForFile(file));\n  }\n  function getEmitSyntaxForUsageLocation(file, usage) {\n    return getEmitSyntaxForUsageLocationWorker(file, usage, getCompilerOptionsForFile(file));\n  }\n  function getModeForResolutionAtIndex2(file, index) {\n    return getModeForUsageLocation2(file, getModuleNameStringLiteralAt(file, index));\n  }\n  function getDefaultResolutionModeForFile2(sourceFile) {\n    return getDefaultResolutionModeForFileWorker(sourceFile, getCompilerOptionsForFile(sourceFile));\n  }\n  function getImpliedNodeFormatForEmit2(sourceFile) {\n    return getImpliedNodeFormatForEmitWorker(sourceFile, getCompilerOptionsForFile(sourceFile));\n  }\n  function getEmitModuleFormatOfFile2(sourceFile) {\n    return getEmitModuleFormatOfFileWorker(sourceFile, getCompilerOptionsForFile(sourceFile));\n  }\n  function shouldTransformImportCall(sourceFile) {\n    return shouldTransformImportCallWorker(sourceFile, getCompilerOptionsForFile(sourceFile));\n  }\n  function getModeForTypeReferenceDirectiveInFile(ref, sourceFile) {\n    return ref.resolutionMode || getDefaultResolutionModeForFile2(sourceFile);\n  }\n}\nfunction shouldTransformImportCallWorker(sourceFile, options) {\n  const moduleKind = getEmitModuleKind(options);\n  if (100 /* Node16 */ <= moduleKind && moduleKind <= 199 /* NodeNext */ || moduleKind === 200 /* Preserve */) {\n    return false;\n  }\n  return getEmitModuleFormatOfFileWorker(sourceFile, options) < 5 /* ES2015 */;\n}\nfunction getEmitModuleFormatOfFileWorker(sourceFile, options) {\n  return getImpliedNodeFormatForEmitWorker(sourceFile, options) ?? getEmitModuleKind(options);\n}\nfunction getImpliedNodeFormatForEmitWorker(sourceFile, options) {\n  var _a, _b;\n  const moduleKind = getEmitModuleKind(options);\n  if (100 /* Node16 */ <= moduleKind && moduleKind <= 199 /* NodeNext */) {\n    return sourceFile.impliedNodeFormat;\n  }\n  if (sourceFile.impliedNodeFormat === 1 /* CommonJS */ && (((_a = sourceFile.packageJsonScope) == null ? void 0 : _a.contents.packageJsonContent.type) === \"commonjs\" || fileExtensionIsOneOf(sourceFile.fileName, [\".cjs\" /* Cjs */, \".cts\" /* Cts */]))) {\n    return 1 /* CommonJS */;\n  }\n  if (sourceFile.impliedNodeFormat === 99 /* ESNext */ && (((_b = sourceFile.packageJsonScope) == null ? void 0 : _b.contents.packageJsonContent.type) === \"module\" || fileExtensionIsOneOf(sourceFile.fileName, [\".mjs\" /* Mjs */, \".mts\" /* Mts */]))) {\n    return 99 /* ESNext */;\n  }\n  return void 0;\n}\nfunction getDefaultResolutionModeForFileWorker(sourceFile, options) {\n  return importSyntaxAffectsModuleResolution(options) ? getImpliedNodeFormatForEmitWorker(sourceFile, options) : void 0;\n}\nfunction updateHostForUseSourceOfProjectReferenceRedirect(host) {\n  let setOfDeclarationDirectories;\n  const originalFileExists = host.compilerHost.fileExists;\n  const originalDirectoryExists = host.compilerHost.directoryExists;\n  const originalGetDirectories = host.compilerHost.getDirectories;\n  const originalRealpath = host.compilerHost.realpath;\n  if (!host.useSourceOfProjectReferenceRedirect) return { onProgramCreateComplete: noop, fileExists };\n  host.compilerHost.fileExists = fileExists;\n  let directoryExists;\n  if (originalDirectoryExists) {\n    directoryExists = host.compilerHost.directoryExists = (path) => {\n      if (originalDirectoryExists.call(host.compilerHost, path)) {\n        handleDirectoryCouldBeSymlink(path);\n        return true;\n      }\n      if (!host.getResolvedProjectReferences()) return false;\n      if (!setOfDeclarationDirectories) {\n        setOfDeclarationDirectories = /* @__PURE__ */ new Set();\n        host.forEachResolvedProjectReference((ref) => {\n          const out = ref.commandLine.options.outFile;\n          if (out) {\n            setOfDeclarationDirectories.add(getDirectoryPath(host.toPath(out)));\n          } else {\n            const declarationDir = ref.commandLine.options.declarationDir || ref.commandLine.options.outDir;\n            if (declarationDir) {\n              setOfDeclarationDirectories.add(host.toPath(declarationDir));\n            }\n          }\n        });\n      }\n      return fileOrDirectoryExistsUsingSource(\n        path,\n        /*isFile*/\n        false\n      );\n    };\n  }\n  if (originalGetDirectories) {\n    host.compilerHost.getDirectories = (path) => !host.getResolvedProjectReferences() || originalDirectoryExists && originalDirectoryExists.call(host.compilerHost, path) ? originalGetDirectories.call(host.compilerHost, path) : [];\n  }\n  if (originalRealpath) {\n    host.compilerHost.realpath = (s) => {\n      var _a;\n      return ((_a = host.getSymlinkCache().getSymlinkedFiles()) == null ? void 0 : _a.get(host.toPath(s))) || originalRealpath.call(host.compilerHost, s);\n    };\n  }\n  return { onProgramCreateComplete, fileExists, directoryExists };\n  function onProgramCreateComplete() {\n    host.compilerHost.fileExists = originalFileExists;\n    host.compilerHost.directoryExists = originalDirectoryExists;\n    host.compilerHost.getDirectories = originalGetDirectories;\n  }\n  function fileExists(file) {\n    if (originalFileExists.call(host.compilerHost, file)) return true;\n    if (!host.getResolvedProjectReferences()) return false;\n    if (!isDeclarationFileName(file)) return false;\n    return fileOrDirectoryExistsUsingSource(\n      file,\n      /*isFile*/\n      true\n    );\n  }\n  function fileExistsIfProjectReferenceDts(file) {\n    const source = host.getRedirectFromOutput(host.toPath(file));\n    return source !== void 0 ? isString(source.source) ? originalFileExists.call(host.compilerHost, source.source) : true : void 0;\n  }\n  function directoryExistsIfProjectReferenceDeclDir(dir) {\n    const dirPath = host.toPath(dir);\n    const dirPathWithTrailingDirectorySeparator = `${dirPath}${directorySeparator}`;\n    return forEachKey(\n      setOfDeclarationDirectories,\n      (declDirPath) => dirPath === declDirPath || // Any parent directory of declaration dir\n      startsWith(declDirPath, dirPathWithTrailingDirectorySeparator) || // Any directory inside declaration dir\n      startsWith(dirPath, `${declDirPath}/`)\n    );\n  }\n  function handleDirectoryCouldBeSymlink(directory) {\n    var _a;\n    if (!host.getResolvedProjectReferences() || containsIgnoredPath(directory)) return;\n    if (!originalRealpath || !directory.includes(nodeModulesPathPart)) return;\n    const symlinkCache = host.getSymlinkCache();\n    const directoryPath = ensureTrailingDirectorySeparator(host.toPath(directory));\n    if ((_a = symlinkCache.getSymlinkedDirectories()) == null ? void 0 : _a.has(directoryPath)) return;\n    const real = normalizePath(originalRealpath.call(host.compilerHost, directory));\n    let realPath2;\n    if (real === directory || (realPath2 = ensureTrailingDirectorySeparator(host.toPath(real))) === directoryPath) {\n      symlinkCache.setSymlinkedDirectory(directoryPath, false);\n      return;\n    }\n    symlinkCache.setSymlinkedDirectory(directory, {\n      real: ensureTrailingDirectorySeparator(real),\n      realPath: realPath2\n    });\n  }\n  function fileOrDirectoryExistsUsingSource(fileOrDirectory, isFile) {\n    var _a;\n    const fileOrDirectoryExistsUsingSource2 = isFile ? fileExistsIfProjectReferenceDts : directoryExistsIfProjectReferenceDeclDir;\n    const result = fileOrDirectoryExistsUsingSource2(fileOrDirectory);\n    if (result !== void 0) return result;\n    const symlinkCache = host.getSymlinkCache();\n    const symlinkedDirectories = symlinkCache.getSymlinkedDirectories();\n    if (!symlinkedDirectories) return false;\n    const fileOrDirectoryPath = host.toPath(fileOrDirectory);\n    if (!fileOrDirectoryPath.includes(nodeModulesPathPart)) return false;\n    if (isFile && ((_a = symlinkCache.getSymlinkedFiles()) == null ? void 0 : _a.has(fileOrDirectoryPath))) return true;\n    return firstDefinedIterator(\n      symlinkedDirectories.entries(),\n      ([directoryPath, symlinkedDirectory]) => {\n        if (!symlinkedDirectory || !startsWith(fileOrDirectoryPath, directoryPath)) return void 0;\n        const result2 = fileOrDirectoryExistsUsingSource2(fileOrDirectoryPath.replace(directoryPath, symlinkedDirectory.realPath));\n        if (isFile && result2) {\n          const absolutePath = getNormalizedAbsolutePath(fileOrDirectory, host.compilerHost.getCurrentDirectory());\n          symlinkCache.setSymlinkedFile(\n            fileOrDirectoryPath,\n            `${symlinkedDirectory.real}${absolutePath.replace(new RegExp(directoryPath, \"i\"), \"\")}`\n          );\n        }\n        return result2;\n      }\n    ) || false;\n  }\n}\nvar emitSkippedWithNoDiagnostics = { diagnostics: emptyArray, sourceMaps: void 0, emittedFiles: void 0, emitSkipped: true };\nfunction handleNoEmitOptions(program, sourceFile, writeFile2, cancellationToken) {\n  const options = program.getCompilerOptions();\n  if (options.noEmit) {\n    return sourceFile ? emitSkippedWithNoDiagnostics : program.emitBuildInfo(writeFile2, cancellationToken);\n  }\n  if (!options.noEmitOnError) return void 0;\n  let diagnostics = [\n    ...program.getOptionsDiagnostics(cancellationToken),\n    ...program.getSyntacticDiagnostics(sourceFile, cancellationToken),\n    ...program.getGlobalDiagnostics(cancellationToken),\n    ...program.getSemanticDiagnostics(sourceFile, cancellationToken)\n  ];\n  if (diagnostics.length === 0 && getEmitDeclarations(program.getCompilerOptions())) {\n    diagnostics = program.getDeclarationDiagnostics(\n      /*sourceFile*/\n      void 0,\n      cancellationToken\n    );\n  }\n  if (!diagnostics.length) return void 0;\n  let emittedFiles;\n  if (!sourceFile) {\n    const emitResult = program.emitBuildInfo(writeFile2, cancellationToken);\n    if (emitResult.diagnostics) diagnostics = [...diagnostics, ...emitResult.diagnostics];\n    emittedFiles = emitResult.emittedFiles;\n  }\n  return { diagnostics, sourceMaps: void 0, emittedFiles, emitSkipped: true };\n}\nfunction filterSemanticDiagnostics(diagnostic, option) {\n  return filter(diagnostic, (d) => !d.skippedOn || !option[d.skippedOn]);\n}\nfunction parseConfigHostFromCompilerHostLike(host, directoryStructureHost = host) {\n  return {\n    fileExists: (f) => directoryStructureHost.fileExists(f),\n    readDirectory(root, extensions, excludes, includes, depth) {\n      Debug.assertIsDefined(directoryStructureHost.readDirectory, \"'CompilerHost.readDirectory' must be implemented to correctly process 'projectReferences'\");\n      return directoryStructureHost.readDirectory(root, extensions, excludes, includes, depth);\n    },\n    readFile: (f) => directoryStructureHost.readFile(f),\n    directoryExists: maybeBind(directoryStructureHost, directoryStructureHost.directoryExists),\n    getDirectories: maybeBind(directoryStructureHost, directoryStructureHost.getDirectories),\n    realpath: maybeBind(directoryStructureHost, directoryStructureHost.realpath),\n    useCaseSensitiveFileNames: host.useCaseSensitiveFileNames(),\n    getCurrentDirectory: () => host.getCurrentDirectory(),\n    onUnRecoverableConfigFileDiagnostic: host.onUnRecoverableConfigFileDiagnostic || returnUndefined,\n    trace: host.trace ? (s) => host.trace(s) : void 0\n  };\n}\nfunction resolveProjectReferencePath(ref) {\n  return resolveConfigFileProjectName(ref.path);\n}\nfunction getResolutionDiagnostic(options, { extension }, { isDeclarationFile }) {\n  switch (extension) {\n    case \".ts\" /* Ts */:\n    case \".d.ts\" /* Dts */:\n    case \".mts\" /* Mts */:\n    case \".d.mts\" /* Dmts */:\n    case \".cts\" /* Cts */:\n    case \".d.cts\" /* Dcts */:\n      return void 0;\n    case \".tsx\" /* Tsx */:\n      return needJsx();\n    case \".jsx\" /* Jsx */:\n      return needJsx() || needAllowJs();\n    case \".js\" /* Js */:\n    case \".mjs\" /* Mjs */:\n    case \".cjs\" /* Cjs */:\n      return needAllowJs();\n    case \".json\" /* Json */:\n      return needResolveJsonModule();\n    default:\n      return needAllowArbitraryExtensions();\n  }\n  function needJsx() {\n    return options.jsx ? void 0 : Diagnostics.Module_0_was_resolved_to_1_but_jsx_is_not_set;\n  }\n  function needAllowJs() {\n    return getAllowJSCompilerOption(options) || !getStrictOptionValue(options, \"noImplicitAny\") ? void 0 : Diagnostics.Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type;\n  }\n  function needResolveJsonModule() {\n    return getResolveJsonModule(options) ? void 0 : Diagnostics.Module_0_was_resolved_to_1_but_resolveJsonModule_is_not_used;\n  }\n  function needAllowArbitraryExtensions() {\n    return isDeclarationFile || options.allowArbitraryExtensions ? void 0 : Diagnostics.Module_0_was_resolved_to_1_but_allowArbitraryExtensions_is_not_set;\n  }\n}\nfunction getModuleNames({ imports, moduleAugmentations }) {\n  const res = imports.map((i) => i);\n  for (const aug of moduleAugmentations) {\n    if (aug.kind === 11 /* StringLiteral */) {\n      res.push(aug);\n    }\n  }\n  return res;\n}\nfunction getModuleNameStringLiteralAt({ imports, moduleAugmentations }, index) {\n  if (index < imports.length) return imports[index];\n  let augIndex = imports.length;\n  for (const aug of moduleAugmentations) {\n    if (aug.kind === 11 /* StringLiteral */) {\n      if (index === augIndex) return aug;\n      augIndex++;\n    }\n  }\n  Debug.fail(\"should never ask for module name at index higher than possible module name\");\n}\n\n// src/compiler/programDiagnostics.ts\nfunction createProgramDiagnostics(getCompilerOptionsObjectLiteralSyntax) {\n  let computedDiagnostics;\n  let fileReasons = createMultiMap();\n  let fileProcessingDiagnostics;\n  let commonSourceDirectory;\n  let configDiagnostics;\n  let lazyConfigDiagnostics;\n  let fileReasonsToChain;\n  let reasonToRelatedInfo;\n  return {\n    addConfigDiagnostic(diag2) {\n      Debug.assert(computedDiagnostics === void 0, \"Cannot modify program diagnostic state after requesting combined diagnostics\");\n      (configDiagnostics ?? (configDiagnostics = createDiagnosticCollection())).add(diag2);\n    },\n    addLazyConfigDiagnostic(file, message, ...args) {\n      Debug.assert(computedDiagnostics === void 0, \"Cannot modify program diagnostic state after requesting combined diagnostics\");\n      (lazyConfigDiagnostics ?? (lazyConfigDiagnostics = [])).push({ file, diagnostic: message, args });\n    },\n    addFileProcessingDiagnostic(diag2) {\n      Debug.assert(computedDiagnostics === void 0, \"Cannot modify program diagnostic state after requesting combined diagnostics\");\n      (fileProcessingDiagnostics ?? (fileProcessingDiagnostics = [])).push(diag2);\n    },\n    setCommonSourceDirectory(directory) {\n      commonSourceDirectory = directory;\n    },\n    reuseStateFromOldProgram(oldProgramDiagnostics, isConfigIdentical) {\n      fileReasons = oldProgramDiagnostics.getFileReasons();\n      fileProcessingDiagnostics = oldProgramDiagnostics.getFileProcessingDiagnostics();\n      if (isConfigIdentical) {\n        commonSourceDirectory = oldProgramDiagnostics.getCommonSourceDirectory();\n        configDiagnostics = oldProgramDiagnostics.getConfigDiagnostics();\n        lazyConfigDiagnostics = oldProgramDiagnostics.getLazyConfigDiagnostics();\n      }\n    },\n    getFileProcessingDiagnostics() {\n      return fileProcessingDiagnostics;\n    },\n    getFileReasons() {\n      return fileReasons;\n    },\n    getCommonSourceDirectory() {\n      return commonSourceDirectory;\n    },\n    getConfigDiagnostics() {\n      return configDiagnostics;\n    },\n    getLazyConfigDiagnostics() {\n      return lazyConfigDiagnostics;\n    },\n    getCombinedDiagnostics(program) {\n      if (computedDiagnostics) {\n        return computedDiagnostics;\n      }\n      computedDiagnostics = createDiagnosticCollection();\n      configDiagnostics == null ? void 0 : configDiagnostics.getDiagnostics().forEach((d) => computedDiagnostics.add(d));\n      fileProcessingDiagnostics == null ? void 0 : fileProcessingDiagnostics.forEach((diagnostic) => {\n        switch (diagnostic.kind) {\n          case 1 /* FilePreprocessingFileExplainingDiagnostic */:\n            return computedDiagnostics.add(\n              createDiagnosticExplainingFile(\n                program,\n                diagnostic.file && program.getSourceFileByPath(diagnostic.file),\n                diagnostic.fileProcessingReason,\n                diagnostic.diagnostic,\n                diagnostic.args || emptyArray\n              )\n            );\n          case 0 /* FilePreprocessingLibReferenceDiagnostic */:\n            return computedDiagnostics.add(filePreprocessingLibreferenceDiagnostic(program, diagnostic));\n          case 2 /* ResolutionDiagnostics */:\n            return diagnostic.diagnostics.forEach((d) => computedDiagnostics.add(d));\n          default:\n            Debug.assertNever(diagnostic);\n        }\n      });\n      lazyConfigDiagnostics == null ? void 0 : lazyConfigDiagnostics.forEach(\n        ({ file, diagnostic, args }) => computedDiagnostics.add(\n          createDiagnosticExplainingFile(\n            program,\n            file,\n            /*fileProcessingReason*/\n            void 0,\n            diagnostic,\n            args\n          )\n        )\n      );\n      fileReasonsToChain = void 0;\n      reasonToRelatedInfo = void 0;\n      return computedDiagnostics;\n    }\n  };\n  function filePreprocessingLibreferenceDiagnostic(program, { reason }) {\n    const { file, pos, end } = getReferencedFileLocation(program, reason);\n    const libReference = file.libReferenceDirectives[reason.index];\n    const libName = getLibNameFromLibReference(libReference);\n    const unqualifiedLibName = removeSuffix(removePrefix(libName, \"lib.\"), \".d.ts\");\n    const suggestion = getSpellingSuggestion(unqualifiedLibName, libs, identity);\n    return createFileDiagnostic(\n      file,\n      Debug.checkDefined(pos),\n      Debug.checkDefined(end) - pos,\n      suggestion ? Diagnostics.Cannot_find_lib_definition_for_0_Did_you_mean_1 : Diagnostics.Cannot_find_lib_definition_for_0,\n      libName,\n      suggestion\n    );\n  }\n  function createDiagnosticExplainingFile(program, file, fileProcessingReason, diagnostic, args) {\n    let seenReasons;\n    let fileIncludeReasons;\n    let relatedInfo;\n    let fileIncludeReasonDetails;\n    let redirectInfo;\n    let chain;\n    const reasons = file && fileReasons.get(file.path);\n    let locationReason = isReferencedFile(fileProcessingReason) ? fileProcessingReason : void 0;\n    let cachedChain = file && (fileReasonsToChain == null ? void 0 : fileReasonsToChain.get(file.path));\n    if (cachedChain) {\n      if (cachedChain.fileIncludeReasonDetails) {\n        seenReasons = new Set(reasons);\n        reasons == null ? void 0 : reasons.forEach(populateRelatedInfo);\n      } else {\n        reasons == null ? void 0 : reasons.forEach(processReason);\n      }\n      redirectInfo = cachedChain.redirectInfo;\n    } else {\n      reasons == null ? void 0 : reasons.forEach(processReason);\n      redirectInfo = file && explainIfFileIsRedirectAndImpliedFormat(file, program.getCompilerOptionsForFile(file));\n    }\n    if (fileProcessingReason) processReason(fileProcessingReason);\n    const processedExtraReason = (seenReasons == null ? void 0 : seenReasons.size) !== (reasons == null ? void 0 : reasons.length);\n    if (locationReason && (seenReasons == null ? void 0 : seenReasons.size) === 1) seenReasons = void 0;\n    if (seenReasons && cachedChain) {\n      if (cachedChain.details && !processedExtraReason) {\n        chain = chainDiagnosticMessages(cachedChain.details, diagnostic, ...args ?? emptyArray);\n      } else if (cachedChain.fileIncludeReasonDetails) {\n        if (!processedExtraReason) {\n          if (!cachedFileIncludeDetailsHasProcessedExtraReason()) {\n            fileIncludeReasonDetails = cachedChain.fileIncludeReasonDetails;\n          } else {\n            fileIncludeReasons = cachedChain.fileIncludeReasonDetails.next.slice(0, reasons.length);\n          }\n        } else {\n          if (!cachedFileIncludeDetailsHasProcessedExtraReason()) {\n            fileIncludeReasons = [...cachedChain.fileIncludeReasonDetails.next, fileIncludeReasons[0]];\n          } else {\n            fileIncludeReasons = append(cachedChain.fileIncludeReasonDetails.next.slice(0, reasons.length), fileIncludeReasons[0]);\n          }\n        }\n      }\n    }\n    if (!chain) {\n      if (!fileIncludeReasonDetails) fileIncludeReasonDetails = seenReasons && chainDiagnosticMessages(fileIncludeReasons, Diagnostics.The_file_is_in_the_program_because_Colon);\n      chain = chainDiagnosticMessages(\n        redirectInfo ? fileIncludeReasonDetails ? [fileIncludeReasonDetails, ...redirectInfo] : redirectInfo : fileIncludeReasonDetails,\n        diagnostic,\n        ...args || emptyArray\n      );\n    }\n    if (file) {\n      if (cachedChain) {\n        if (!cachedChain.fileIncludeReasonDetails || !processedExtraReason && fileIncludeReasonDetails) {\n          cachedChain.fileIncludeReasonDetails = fileIncludeReasonDetails;\n        }\n      } else {\n        (fileReasonsToChain ?? (fileReasonsToChain = /* @__PURE__ */ new Map())).set(file.path, cachedChain = { fileIncludeReasonDetails, redirectInfo });\n      }\n      if (!cachedChain.details && !processedExtraReason) cachedChain.details = chain.next;\n    }\n    const location = locationReason && getReferencedFileLocation(program, locationReason);\n    return location && isReferenceFileLocation(location) ? createFileDiagnosticFromMessageChain(location.file, location.pos, location.end - location.pos, chain, relatedInfo) : createCompilerDiagnosticFromMessageChain(chain, relatedInfo);\n    function processReason(reason) {\n      if (seenReasons == null ? void 0 : seenReasons.has(reason)) return;\n      (seenReasons ?? (seenReasons = /* @__PURE__ */ new Set())).add(reason);\n      (fileIncludeReasons ?? (fileIncludeReasons = [])).push(fileIncludeReasonToDiagnostics(program, reason));\n      populateRelatedInfo(reason);\n    }\n    function populateRelatedInfo(reason) {\n      if (!locationReason && isReferencedFile(reason)) {\n        locationReason = reason;\n      } else if (locationReason !== reason) {\n        relatedInfo = append(relatedInfo, getFileIncludeReasonToRelatedInformation(program, reason));\n      }\n    }\n    function cachedFileIncludeDetailsHasProcessedExtraReason() {\n      var _a;\n      return ((_a = cachedChain.fileIncludeReasonDetails.next) == null ? void 0 : _a.length) !== (reasons == null ? void 0 : reasons.length);\n    }\n  }\n  function getFileIncludeReasonToRelatedInformation(program, reason) {\n    let relatedInfo = reasonToRelatedInfo == null ? void 0 : reasonToRelatedInfo.get(reason);\n    if (relatedInfo === void 0) (reasonToRelatedInfo ?? (reasonToRelatedInfo = /* @__PURE__ */ new Map())).set(reason, relatedInfo = fileIncludeReasonToRelatedInformation(program, reason) ?? false);\n    return relatedInfo || void 0;\n  }\n  function fileIncludeReasonToRelatedInformation(program, reason) {\n    if (isReferencedFile(reason)) {\n      const referenceLocation = getReferencedFileLocation(program, reason);\n      let message2;\n      switch (reason.kind) {\n        case 3 /* Import */:\n          message2 = Diagnostics.File_is_included_via_import_here;\n          break;\n        case 4 /* ReferenceFile */:\n          message2 = Diagnostics.File_is_included_via_reference_here;\n          break;\n        case 5 /* TypeReferenceDirective */:\n          message2 = Diagnostics.File_is_included_via_type_library_reference_here;\n          break;\n        case 7 /* LibReferenceDirective */:\n          message2 = Diagnostics.File_is_included_via_library_reference_here;\n          break;\n        default:\n          Debug.assertNever(reason);\n      }\n      return isReferenceFileLocation(referenceLocation) ? createFileDiagnostic(\n        referenceLocation.file,\n        referenceLocation.pos,\n        referenceLocation.end - referenceLocation.pos,\n        message2\n      ) : void 0;\n    }\n    const currentDirectory = program.getCurrentDirectory();\n    const rootNames = program.getRootFileNames();\n    const options = program.getCompilerOptions();\n    if (!options.configFile) return void 0;\n    let configFileNode;\n    let message;\n    switch (reason.kind) {\n      case 0 /* RootFile */:\n        if (!options.configFile.configFileSpecs) return void 0;\n        const fileName = getNormalizedAbsolutePath(rootNames[reason.index], currentDirectory);\n        const matchedByFiles = getMatchedFileSpec(program, fileName);\n        if (matchedByFiles) {\n          configFileNode = getTsConfigPropArrayElementValue(options.configFile, \"files\", matchedByFiles);\n          message = Diagnostics.File_is_matched_by_files_list_specified_here;\n          break;\n        }\n        const matchedByInclude = getMatchedIncludeSpec(program, fileName);\n        if (!matchedByInclude || !isString(matchedByInclude)) return void 0;\n        configFileNode = getTsConfigPropArrayElementValue(options.configFile, \"include\", matchedByInclude);\n        message = Diagnostics.File_is_matched_by_include_pattern_specified_here;\n        break;\n      case 1 /* SourceFromProjectReference */:\n      case 2 /* OutputFromProjectReference */:\n        const resolvedProjectReferences = program.getResolvedProjectReferences();\n        const projectReferences = program.getProjectReferences();\n        const referencedResolvedRef = Debug.checkDefined(resolvedProjectReferences == null ? void 0 : resolvedProjectReferences[reason.index]);\n        const referenceInfo = forEachProjectReference(\n          projectReferences,\n          resolvedProjectReferences,\n          (resolvedRef, parent2, index2) => resolvedRef === referencedResolvedRef ? { sourceFile: (parent2 == null ? void 0 : parent2.sourceFile) || options.configFile, index: index2 } : void 0\n        );\n        if (!referenceInfo) return void 0;\n        const { sourceFile, index } = referenceInfo;\n        const referencesSyntax = forEachTsConfigPropArray(sourceFile, \"references\", (property) => isArrayLiteralExpression(property.initializer) ? property.initializer : void 0);\n        return referencesSyntax && referencesSyntax.elements.length > index ? createDiagnosticForNodeInSourceFile(\n          sourceFile,\n          referencesSyntax.elements[index],\n          reason.kind === 2 /* OutputFromProjectReference */ ? Diagnostics.File_is_output_from_referenced_project_specified_here : Diagnostics.File_is_source_from_referenced_project_specified_here\n        ) : void 0;\n      case 8 /* AutomaticTypeDirectiveFile */:\n        if (!options.types) return void 0;\n        configFileNode = getOptionsSyntaxByArrayElementValue(getCompilerOptionsObjectLiteralSyntax(), \"types\", reason.typeReference);\n        message = Diagnostics.File_is_entry_point_of_type_library_specified_here;\n        break;\n      case 6 /* LibFile */:\n        if (reason.index !== void 0) {\n          configFileNode = getOptionsSyntaxByArrayElementValue(getCompilerOptionsObjectLiteralSyntax(), \"lib\", options.lib[reason.index]);\n          message = Diagnostics.File_is_library_specified_here;\n          break;\n        }\n        const target = getNameOfScriptTarget(getEmitScriptTarget(options));\n        configFileNode = target ? getOptionsSyntaxByValue(getCompilerOptionsObjectLiteralSyntax(), \"target\", target) : void 0;\n        message = Diagnostics.File_is_default_library_for_target_specified_here;\n        break;\n      default:\n        Debug.assertNever(reason);\n    }\n    return configFileNode && createDiagnosticForNodeInSourceFile(\n      options.configFile,\n      configFileNode,\n      message\n    );\n  }\n}\n\n// src/compiler/builderState.ts\nfunction getFileEmitOutput(program, sourceFile, emitOnlyDtsFiles, cancellationToken, customTransformers, forceDtsEmit) {\n  const outputFiles = [];\n  const { emitSkipped, diagnostics } = program.emit(sourceFile, writeFile2, cancellationToken, emitOnlyDtsFiles, customTransformers, forceDtsEmit);\n  return { outputFiles, emitSkipped, diagnostics };\n  function writeFile2(fileName, text, writeByteOrderMark) {\n    outputFiles.push({ name: fileName, writeByteOrderMark, text });\n  }\n}\nvar SignatureInfo = /* @__PURE__ */ ((SignatureInfo2) => {\n  SignatureInfo2[SignatureInfo2[\"ComputedDts\"] = 0] = \"ComputedDts\";\n  SignatureInfo2[SignatureInfo2[\"StoredSignatureAtEmit\"] = 1] = \"StoredSignatureAtEmit\";\n  SignatureInfo2[SignatureInfo2[\"UsedVersion\"] = 2] = \"UsedVersion\";\n  return SignatureInfo2;\n})(SignatureInfo || {});\nvar BuilderState;\n((BuilderState2) => {\n  function createManyToManyPathMap() {\n    function create2(forward, reverse, deleted) {\n      const map2 = {\n        getKeys: (v) => reverse.get(v),\n        getValues: (k) => forward.get(k),\n        keys: () => forward.keys(),\n        size: () => forward.size,\n        deleteKey: (k) => {\n          (deleted || (deleted = /* @__PURE__ */ new Set())).add(k);\n          const set = forward.get(k);\n          if (!set) {\n            return false;\n          }\n          set.forEach((v) => deleteFromMultimap(reverse, v, k));\n          forward.delete(k);\n          return true;\n        },\n        set: (k, vSet) => {\n          deleted == null ? void 0 : deleted.delete(k);\n          const existingVSet = forward.get(k);\n          forward.set(k, vSet);\n          existingVSet == null ? void 0 : existingVSet.forEach((v) => {\n            if (!vSet.has(v)) {\n              deleteFromMultimap(reverse, v, k);\n            }\n          });\n          vSet.forEach((v) => {\n            if (!(existingVSet == null ? void 0 : existingVSet.has(v))) {\n              addToMultimap(reverse, v, k);\n            }\n          });\n          return map2;\n        }\n      };\n      return map2;\n    }\n    return create2(\n      /* @__PURE__ */ new Map(),\n      /* @__PURE__ */ new Map(),\n      /*deleted*/\n      void 0\n    );\n  }\n  BuilderState2.createManyToManyPathMap = createManyToManyPathMap;\n  function addToMultimap(map2, k, v) {\n    let set = map2.get(k);\n    if (!set) {\n      set = /* @__PURE__ */ new Set();\n      map2.set(k, set);\n    }\n    set.add(v);\n  }\n  function deleteFromMultimap(map2, k, v) {\n    const set = map2.get(k);\n    if (set == null ? void 0 : set.delete(v)) {\n      if (!set.size) {\n        map2.delete(k);\n      }\n      return true;\n    }\n    return false;\n  }\n  function getReferencedFilesFromImportedModuleSymbol(symbol) {\n    return mapDefined(symbol.declarations, (declaration) => {\n      var _a;\n      return (_a = getSourceFileOfNode(declaration)) == null ? void 0 : _a.resolvedPath;\n    });\n  }\n  function getReferencedFilesFromImportLiteral(checker, importName) {\n    const symbol = checker.getSymbolAtLocation(importName);\n    return symbol && getReferencedFilesFromImportedModuleSymbol(symbol);\n  }\n  function getReferencedFileFromFileName(program, fileName, sourceFileDirectory, getCanonicalFileName) {\n    var _a;\n    return toPath(((_a = program.getRedirectFromSourceFile(fileName)) == null ? void 0 : _a.outputDts) || fileName, sourceFileDirectory, getCanonicalFileName);\n  }\n  function getReferencedFiles(program, sourceFile, getCanonicalFileName) {\n    let referencedFiles;\n    if (sourceFile.imports && sourceFile.imports.length > 0) {\n      const checker = program.getTypeChecker();\n      for (const importName of sourceFile.imports) {\n        const declarationSourceFilePaths = getReferencedFilesFromImportLiteral(checker, importName);\n        declarationSourceFilePaths == null ? void 0 : declarationSourceFilePaths.forEach(addReferencedFile);\n      }\n    }\n    const sourceFileDirectory = getDirectoryPath(sourceFile.resolvedPath);\n    if (sourceFile.referencedFiles && sourceFile.referencedFiles.length > 0) {\n      for (const referencedFile of sourceFile.referencedFiles) {\n        const referencedPath = getReferencedFileFromFileName(program, referencedFile.fileName, sourceFileDirectory, getCanonicalFileName);\n        addReferencedFile(referencedPath);\n      }\n    }\n    program.forEachResolvedTypeReferenceDirective(({ resolvedTypeReferenceDirective }) => {\n      if (!resolvedTypeReferenceDirective) {\n        return;\n      }\n      const fileName = resolvedTypeReferenceDirective.resolvedFileName;\n      const typeFilePath = getReferencedFileFromFileName(program, fileName, sourceFileDirectory, getCanonicalFileName);\n      addReferencedFile(typeFilePath);\n    }, sourceFile);\n    if (sourceFile.moduleAugmentations.length) {\n      const checker = program.getTypeChecker();\n      for (const moduleName of sourceFile.moduleAugmentations) {\n        if (!isStringLiteral(moduleName)) continue;\n        const symbol = checker.getSymbolAtLocation(moduleName);\n        if (!symbol) continue;\n        addReferenceFromAmbientModule(symbol);\n      }\n    }\n    for (const ambientModule of program.getTypeChecker().getAmbientModules()) {\n      if (ambientModule.declarations && ambientModule.declarations.length > 1) {\n        addReferenceFromAmbientModule(ambientModule);\n      }\n    }\n    return referencedFiles;\n    function addReferenceFromAmbientModule(symbol) {\n      if (!symbol.declarations) {\n        return;\n      }\n      for (const declaration of symbol.declarations) {\n        const declarationSourceFile = getSourceFileOfNode(declaration);\n        if (declarationSourceFile && declarationSourceFile !== sourceFile) {\n          addReferencedFile(declarationSourceFile.resolvedPath);\n        }\n      }\n    }\n    function addReferencedFile(referencedPath) {\n      (referencedFiles || (referencedFiles = /* @__PURE__ */ new Set())).add(referencedPath);\n    }\n  }\n  function canReuseOldState(newReferencedMap, oldState) {\n    return oldState && !oldState.referencedMap === !newReferencedMap;\n  }\n  BuilderState2.canReuseOldState = canReuseOldState;\n  function createReferencedMap(options) {\n    return options.module !== 0 /* None */ && !options.outFile ? createManyToManyPathMap() : void 0;\n  }\n  BuilderState2.createReferencedMap = createReferencedMap;\n  function create(newProgram, oldState, disableUseFileVersionAsSignature) {\n    var _a, _b;\n    const fileInfos = /* @__PURE__ */ new Map();\n    const options = newProgram.getCompilerOptions();\n    const referencedMap = createReferencedMap(options);\n    const useOldState = canReuseOldState(referencedMap, oldState);\n    newProgram.getTypeChecker();\n    for (const sourceFile of newProgram.getSourceFiles()) {\n      const version2 = Debug.checkDefined(sourceFile.version, \"Program intended to be used with Builder should have source files with versions set\");\n      const oldUncommittedSignature = useOldState ? (_a = oldState.oldSignatures) == null ? void 0 : _a.get(sourceFile.resolvedPath) : void 0;\n      const signature = oldUncommittedSignature === void 0 ? useOldState ? (_b = oldState.fileInfos.get(sourceFile.resolvedPath)) == null ? void 0 : _b.signature : void 0 : oldUncommittedSignature || void 0;\n      if (referencedMap) {\n        const newReferences = getReferencedFiles(newProgram, sourceFile, newProgram.getCanonicalFileName);\n        if (newReferences) {\n          referencedMap.set(sourceFile.resolvedPath, newReferences);\n        }\n      }\n      fileInfos.set(sourceFile.resolvedPath, {\n        version: version2,\n        signature,\n        // No need to calculate affectsGlobalScope with --out since its not used at all\n        affectsGlobalScope: !options.outFile ? isFileAffectingGlobalScope(sourceFile) || void 0 : void 0,\n        impliedFormat: sourceFile.impliedNodeFormat\n      });\n    }\n    return {\n      fileInfos,\n      referencedMap,\n      useFileVersionAsSignature: !disableUseFileVersionAsSignature && !useOldState\n    };\n  }\n  BuilderState2.create = create;\n  function releaseCache2(state) {\n    state.allFilesExcludingDefaultLibraryFile = void 0;\n    state.allFileNames = void 0;\n  }\n  BuilderState2.releaseCache = releaseCache2;\n  function getFilesAffectedBy(state, programOfThisState, path, cancellationToken, host) {\n    var _a;\n    const result = getFilesAffectedByWithOldState(\n      state,\n      programOfThisState,\n      path,\n      cancellationToken,\n      host\n    );\n    (_a = state.oldSignatures) == null ? void 0 : _a.clear();\n    return result;\n  }\n  BuilderState2.getFilesAffectedBy = getFilesAffectedBy;\n  function getFilesAffectedByWithOldState(state, programOfThisState, path, cancellationToken, host) {\n    const sourceFile = programOfThisState.getSourceFileByPath(path);\n    if (!sourceFile) {\n      return emptyArray;\n    }\n    if (!updateShapeSignature(state, programOfThisState, sourceFile, cancellationToken, host)) {\n      return [sourceFile];\n    }\n    return (state.referencedMap ? getFilesAffectedByUpdatedShapeWhenModuleEmit : getFilesAffectedByUpdatedShapeWhenNonModuleEmit)(state, programOfThisState, sourceFile, cancellationToken, host);\n  }\n  BuilderState2.getFilesAffectedByWithOldState = getFilesAffectedByWithOldState;\n  function updateSignatureOfFile(state, signature, path) {\n    state.fileInfos.get(path).signature = signature;\n    (state.hasCalledUpdateShapeSignature || (state.hasCalledUpdateShapeSignature = /* @__PURE__ */ new Set())).add(path);\n  }\n  BuilderState2.updateSignatureOfFile = updateSignatureOfFile;\n  function computeDtsSignature(programOfThisState, sourceFile, cancellationToken, host, onNewSignature) {\n    programOfThisState.emit(\n      sourceFile,\n      (fileName, text, _writeByteOrderMark, _onError, sourceFiles, data) => {\n        Debug.assert(isDeclarationFileName(fileName), `File extension for signature expected to be dts: Got:: ${fileName}`);\n        onNewSignature(\n          computeSignatureWithDiagnostics(\n            programOfThisState,\n            sourceFile,\n            text,\n            host,\n            data\n          ),\n          sourceFiles\n        );\n      },\n      cancellationToken,\n      2 /* BuilderSignature */,\n      /*customTransformers*/\n      void 0,\n      /*forceDtsEmit*/\n      true\n    );\n  }\n  BuilderState2.computeDtsSignature = computeDtsSignature;\n  function updateShapeSignature(state, programOfThisState, sourceFile, cancellationToken, host, useFileVersionAsSignature = state.useFileVersionAsSignature) {\n    var _a;\n    if ((_a = state.hasCalledUpdateShapeSignature) == null ? void 0 : _a.has(sourceFile.resolvedPath)) return false;\n    const info = state.fileInfos.get(sourceFile.resolvedPath);\n    const prevSignature = info.signature;\n    let latestSignature;\n    if (!sourceFile.isDeclarationFile && !useFileVersionAsSignature) {\n      computeDtsSignature(programOfThisState, sourceFile, cancellationToken, host, (signature) => {\n        latestSignature = signature;\n        if (host.storeSignatureInfo) (state.signatureInfo ?? (state.signatureInfo = /* @__PURE__ */ new Map())).set(sourceFile.resolvedPath, 0 /* ComputedDts */);\n      });\n    }\n    if (latestSignature === void 0) {\n      latestSignature = sourceFile.version;\n      if (host.storeSignatureInfo) (state.signatureInfo ?? (state.signatureInfo = /* @__PURE__ */ new Map())).set(sourceFile.resolvedPath, 2 /* UsedVersion */);\n    }\n    (state.oldSignatures || (state.oldSignatures = /* @__PURE__ */ new Map())).set(sourceFile.resolvedPath, prevSignature || false);\n    (state.hasCalledUpdateShapeSignature || (state.hasCalledUpdateShapeSignature = /* @__PURE__ */ new Set())).add(sourceFile.resolvedPath);\n    info.signature = latestSignature;\n    return latestSignature !== prevSignature;\n  }\n  BuilderState2.updateShapeSignature = updateShapeSignature;\n  function getAllDependencies(state, programOfThisState, sourceFile) {\n    const compilerOptions = programOfThisState.getCompilerOptions();\n    if (compilerOptions.outFile) {\n      return getAllFileNames(state, programOfThisState);\n    }\n    if (!state.referencedMap || isFileAffectingGlobalScope(sourceFile)) {\n      return getAllFileNames(state, programOfThisState);\n    }\n    const seenMap = /* @__PURE__ */ new Set();\n    const queue = [sourceFile.resolvedPath];\n    while (queue.length) {\n      const path = queue.pop();\n      if (!seenMap.has(path)) {\n        seenMap.add(path);\n        const references = state.referencedMap.getValues(path);\n        if (references) {\n          for (const key of references.keys()) {\n            queue.push(key);\n          }\n        }\n      }\n    }\n    return arrayFrom(mapDefinedIterator(seenMap.keys(), (path) => {\n      var _a;\n      return ((_a = programOfThisState.getSourceFileByPath(path)) == null ? void 0 : _a.fileName) ?? path;\n    }));\n  }\n  BuilderState2.getAllDependencies = getAllDependencies;\n  function getAllFileNames(state, programOfThisState) {\n    if (!state.allFileNames) {\n      const sourceFiles = programOfThisState.getSourceFiles();\n      state.allFileNames = sourceFiles === emptyArray ? emptyArray : sourceFiles.map((file) => file.fileName);\n    }\n    return state.allFileNames;\n  }\n  function getReferencedByPaths(state, referencedFilePath) {\n    const keys = state.referencedMap.getKeys(referencedFilePath);\n    return keys ? arrayFrom(keys.keys()) : [];\n  }\n  BuilderState2.getReferencedByPaths = getReferencedByPaths;\n  function containsOnlyAmbientModules(sourceFile) {\n    for (const statement of sourceFile.statements) {\n      if (!isModuleWithStringLiteralName(statement)) {\n        return false;\n      }\n    }\n    return true;\n  }\n  function containsGlobalScopeAugmentation(sourceFile) {\n    return some(sourceFile.moduleAugmentations, (augmentation) => isGlobalScopeAugmentation(augmentation.parent));\n  }\n  function isFileAffectingGlobalScope(sourceFile) {\n    return containsGlobalScopeAugmentation(sourceFile) || !isExternalOrCommonJsModule(sourceFile) && !isJsonSourceFile(sourceFile) && !containsOnlyAmbientModules(sourceFile);\n  }\n  function getAllFilesExcludingDefaultLibraryFile(state, programOfThisState, firstSourceFile) {\n    if (state.allFilesExcludingDefaultLibraryFile) {\n      return state.allFilesExcludingDefaultLibraryFile;\n    }\n    let result;\n    if (firstSourceFile) addSourceFile(firstSourceFile);\n    for (const sourceFile of programOfThisState.getSourceFiles()) {\n      if (sourceFile !== firstSourceFile) {\n        addSourceFile(sourceFile);\n      }\n    }\n    state.allFilesExcludingDefaultLibraryFile = result || emptyArray;\n    return state.allFilesExcludingDefaultLibraryFile;\n    function addSourceFile(sourceFile) {\n      if (!programOfThisState.isSourceFileDefaultLibrary(sourceFile)) {\n        (result || (result = [])).push(sourceFile);\n      }\n    }\n  }\n  BuilderState2.getAllFilesExcludingDefaultLibraryFile = getAllFilesExcludingDefaultLibraryFile;\n  function getFilesAffectedByUpdatedShapeWhenNonModuleEmit(state, programOfThisState, sourceFileWithUpdatedShape) {\n    const compilerOptions = programOfThisState.getCompilerOptions();\n    if (compilerOptions && compilerOptions.outFile) {\n      return [sourceFileWithUpdatedShape];\n    }\n    return getAllFilesExcludingDefaultLibraryFile(state, programOfThisState, sourceFileWithUpdatedShape);\n  }\n  function getFilesAffectedByUpdatedShapeWhenModuleEmit(state, programOfThisState, sourceFileWithUpdatedShape, cancellationToken, host) {\n    if (isFileAffectingGlobalScope(sourceFileWithUpdatedShape)) {\n      return getAllFilesExcludingDefaultLibraryFile(state, programOfThisState, sourceFileWithUpdatedShape);\n    }\n    const compilerOptions = programOfThisState.getCompilerOptions();\n    if (compilerOptions && (getIsolatedModules(compilerOptions) || compilerOptions.outFile)) {\n      return [sourceFileWithUpdatedShape];\n    }\n    const seenFileNamesMap = /* @__PURE__ */ new Map();\n    seenFileNamesMap.set(sourceFileWithUpdatedShape.resolvedPath, sourceFileWithUpdatedShape);\n    const queue = getReferencedByPaths(state, sourceFileWithUpdatedShape.resolvedPath);\n    while (queue.length > 0) {\n      const currentPath = queue.pop();\n      if (!seenFileNamesMap.has(currentPath)) {\n        const currentSourceFile = programOfThisState.getSourceFileByPath(currentPath);\n        seenFileNamesMap.set(currentPath, currentSourceFile);\n        if (currentSourceFile && updateShapeSignature(state, programOfThisState, currentSourceFile, cancellationToken, host)) {\n          queue.push(...getReferencedByPaths(state, currentSourceFile.resolvedPath));\n        }\n      }\n    }\n    return arrayFrom(mapDefinedIterator(seenFileNamesMap.values(), (value) => value));\n  }\n})(BuilderState || (BuilderState = {}));\n\n// src/compiler/builder.ts\nvar BuilderFileEmit = /* @__PURE__ */ ((BuilderFileEmit2) => {\n  BuilderFileEmit2[BuilderFileEmit2[\"None\"] = 0] = \"None\";\n  BuilderFileEmit2[BuilderFileEmit2[\"Js\"] = 1] = \"Js\";\n  BuilderFileEmit2[BuilderFileEmit2[\"JsMap\"] = 2] = \"JsMap\";\n  BuilderFileEmit2[BuilderFileEmit2[\"JsInlineMap\"] = 4] = \"JsInlineMap\";\n  BuilderFileEmit2[BuilderFileEmit2[\"DtsErrors\"] = 8] = \"DtsErrors\";\n  BuilderFileEmit2[BuilderFileEmit2[\"DtsEmit\"] = 16] = \"DtsEmit\";\n  BuilderFileEmit2[BuilderFileEmit2[\"DtsMap\"] = 32] = \"DtsMap\";\n  BuilderFileEmit2[BuilderFileEmit2[\"Dts\"] = 24] = \"Dts\";\n  BuilderFileEmit2[BuilderFileEmit2[\"AllJs\"] = 7] = \"AllJs\";\n  BuilderFileEmit2[BuilderFileEmit2[\"AllDtsEmit\"] = 48] = \"AllDtsEmit\";\n  BuilderFileEmit2[BuilderFileEmit2[\"AllDts\"] = 56] = \"AllDts\";\n  BuilderFileEmit2[BuilderFileEmit2[\"All\"] = 63] = \"All\";\n  return BuilderFileEmit2;\n})(BuilderFileEmit || {});\nfunction isBuilderProgramStateWithDefinedProgram(state) {\n  return state.program !== void 0;\n}\nfunction toBuilderProgramStateWithDefinedProgram(state) {\n  Debug.assert(isBuilderProgramStateWithDefinedProgram(state));\n  return state;\n}\nfunction getBuilderFileEmit(options) {\n  let result = 1 /* Js */;\n  if (options.sourceMap) result = result | 2 /* JsMap */;\n  if (options.inlineSourceMap) result = result | 4 /* JsInlineMap */;\n  if (getEmitDeclarations(options)) result = result | 24 /* Dts */;\n  if (options.declarationMap) result = result | 32 /* DtsMap */;\n  if (options.emitDeclarationOnly) result = result & 56 /* AllDts */;\n  return result;\n}\nfunction getPendingEmitKind(optionsOrEmitKind, oldOptionsOrEmitKind) {\n  const oldEmitKind = oldOptionsOrEmitKind && (isNumber(oldOptionsOrEmitKind) ? oldOptionsOrEmitKind : getBuilderFileEmit(oldOptionsOrEmitKind));\n  const emitKind = isNumber(optionsOrEmitKind) ? optionsOrEmitKind : getBuilderFileEmit(optionsOrEmitKind);\n  if (oldEmitKind === emitKind) return 0 /* None */;\n  if (!oldEmitKind || !emitKind) return emitKind;\n  const diff = oldEmitKind ^ emitKind;\n  let result = 0 /* None */;\n  if (diff & 7 /* AllJs */) result = emitKind & 7 /* AllJs */;\n  if (diff & 8 /* DtsErrors */) result = result | emitKind & 8 /* DtsErrors */;\n  if (diff & 48 /* AllDtsEmit */) result = result | emitKind & 48 /* AllDtsEmit */;\n  return result;\n}\nfunction hasSameKeys(map1, map2) {\n  return map1 === map2 || map1 !== void 0 && map2 !== void 0 && map1.size === map2.size && !forEachKey(map1, (key) => !map2.has(key));\n}\nfunction createBuilderProgramState(newProgram, oldState) {\n  var _a, _b;\n  const state = BuilderState.create(\n    newProgram,\n    oldState,\n    /*disableUseFileVersionAsSignature*/\n    false\n  );\n  state.program = newProgram;\n  const compilerOptions = newProgram.getCompilerOptions();\n  state.compilerOptions = compilerOptions;\n  const outFilePath = compilerOptions.outFile;\n  state.semanticDiagnosticsPerFile = /* @__PURE__ */ new Map();\n  if (outFilePath && compilerOptions.composite && (oldState == null ? void 0 : oldState.outSignature) && outFilePath === oldState.compilerOptions.outFile) {\n    state.outSignature = oldState.outSignature && getEmitSignatureFromOldSignature(compilerOptions, oldState.compilerOptions, oldState.outSignature);\n  }\n  state.changedFilesSet = /* @__PURE__ */ new Set();\n  state.latestChangedDtsFile = compilerOptions.composite ? oldState == null ? void 0 : oldState.latestChangedDtsFile : void 0;\n  state.checkPending = state.compilerOptions.noCheck ? true : void 0;\n  const useOldState = BuilderState.canReuseOldState(state.referencedMap, oldState);\n  const oldCompilerOptions = useOldState ? oldState.compilerOptions : void 0;\n  let canCopySemanticDiagnostics = useOldState && !compilerOptionsAffectSemanticDiagnostics(compilerOptions, oldCompilerOptions);\n  const canCopyEmitSignatures = compilerOptions.composite && (oldState == null ? void 0 : oldState.emitSignatures) && !outFilePath && !compilerOptionsAffectDeclarationPath(compilerOptions, oldState.compilerOptions);\n  let canCopyEmitDiagnostics = true;\n  if (useOldState) {\n    (_a = oldState.changedFilesSet) == null ? void 0 : _a.forEach((value) => state.changedFilesSet.add(value));\n    if (!outFilePath && ((_b = oldState.affectedFilesPendingEmit) == null ? void 0 : _b.size)) {\n      state.affectedFilesPendingEmit = new Map(oldState.affectedFilesPendingEmit);\n      state.seenAffectedFiles = /* @__PURE__ */ new Set();\n    }\n    state.programEmitPending = oldState.programEmitPending;\n    if (outFilePath && state.changedFilesSet.size) {\n      canCopySemanticDiagnostics = false;\n      canCopyEmitDiagnostics = false;\n    }\n    state.hasErrorsFromOldState = oldState.hasErrors;\n  } else {\n    state.buildInfoEmitPending = isIncrementalCompilation(compilerOptions);\n  }\n  const referencedMap = state.referencedMap;\n  const oldReferencedMap = useOldState ? oldState.referencedMap : void 0;\n  const copyDeclarationFileDiagnostics = canCopySemanticDiagnostics && !compilerOptions.skipLibCheck === !oldCompilerOptions.skipLibCheck;\n  const copyLibFileDiagnostics = copyDeclarationFileDiagnostics && !compilerOptions.skipDefaultLibCheck === !oldCompilerOptions.skipDefaultLibCheck;\n  state.fileInfos.forEach((info, sourceFilePath) => {\n    var _a2;\n    let oldInfo;\n    let newReferences;\n    if (!useOldState || // File wasn't present in old state\n    !(oldInfo = oldState.fileInfos.get(sourceFilePath)) || // versions dont match\n    oldInfo.version !== info.version || // Implied formats dont match\n    oldInfo.impliedFormat !== info.impliedFormat || // Referenced files changed\n    !hasSameKeys(newReferences = referencedMap && referencedMap.getValues(sourceFilePath), oldReferencedMap && oldReferencedMap.getValues(sourceFilePath)) || // Referenced file was deleted in the new program\n    newReferences && forEachKey(newReferences, (path) => !state.fileInfos.has(path) && oldState.fileInfos.has(path))) {\n      addFileToChangeSet(sourceFilePath);\n    } else {\n      const sourceFile = newProgram.getSourceFileByPath(sourceFilePath);\n      const emitDiagnostics = canCopyEmitDiagnostics ? (_a2 = oldState.emitDiagnosticsPerFile) == null ? void 0 : _a2.get(sourceFilePath) : void 0;\n      if (emitDiagnostics) {\n        (state.emitDiagnosticsPerFile ?? (state.emitDiagnosticsPerFile = /* @__PURE__ */ new Map())).set(\n          sourceFilePath,\n          oldState.hasReusableDiagnostic ? convertToDiagnostics(emitDiagnostics, sourceFilePath, newProgram) : repopulateDiagnostics(emitDiagnostics, newProgram)\n        );\n      }\n      if (canCopySemanticDiagnostics) {\n        if (sourceFile.isDeclarationFile && !copyDeclarationFileDiagnostics) return;\n        if (sourceFile.hasNoDefaultLib && !copyLibFileDiagnostics) return;\n        const diagnostics = oldState.semanticDiagnosticsPerFile.get(sourceFilePath);\n        if (diagnostics) {\n          state.semanticDiagnosticsPerFile.set(\n            sourceFilePath,\n            oldState.hasReusableDiagnostic ? convertToDiagnostics(diagnostics, sourceFilePath, newProgram) : repopulateDiagnostics(diagnostics, newProgram)\n          );\n          (state.semanticDiagnosticsFromOldState ?? (state.semanticDiagnosticsFromOldState = /* @__PURE__ */ new Set())).add(sourceFilePath);\n        }\n      }\n    }\n    if (canCopyEmitSignatures) {\n      const oldEmitSignature = oldState.emitSignatures.get(sourceFilePath);\n      if (oldEmitSignature) {\n        (state.emitSignatures ?? (state.emitSignatures = /* @__PURE__ */ new Map())).set(sourceFilePath, getEmitSignatureFromOldSignature(compilerOptions, oldState.compilerOptions, oldEmitSignature));\n      }\n    }\n  });\n  if (useOldState && forEachEntry(oldState.fileInfos, (info, sourceFilePath) => {\n    if (state.fileInfos.has(sourceFilePath)) return false;\n    if (info.affectsGlobalScope) return true;\n    state.buildInfoEmitPending = true;\n    return !!outFilePath;\n  })) {\n    BuilderState.getAllFilesExcludingDefaultLibraryFile(\n      state,\n      newProgram,\n      /*firstSourceFile*/\n      void 0\n    ).forEach((file) => addFileToChangeSet(file.resolvedPath));\n  } else if (oldCompilerOptions) {\n    const pendingEmitKind = compilerOptionsAffectEmit(compilerOptions, oldCompilerOptions) ? getBuilderFileEmit(compilerOptions) : getPendingEmitKind(compilerOptions, oldCompilerOptions);\n    if (pendingEmitKind !== 0 /* None */) {\n      if (!outFilePath) {\n        newProgram.getSourceFiles().forEach((f) => {\n          if (!state.changedFilesSet.has(f.resolvedPath)) {\n            addToAffectedFilesPendingEmit(\n              state,\n              f.resolvedPath,\n              pendingEmitKind\n            );\n          }\n        });\n        Debug.assert(!state.seenAffectedFiles || !state.seenAffectedFiles.size);\n        state.seenAffectedFiles = state.seenAffectedFiles || /* @__PURE__ */ new Set();\n      } else if (!state.changedFilesSet.size) {\n        state.programEmitPending = state.programEmitPending ? state.programEmitPending | pendingEmitKind : pendingEmitKind;\n      }\n      state.buildInfoEmitPending = true;\n    }\n  }\n  if (useOldState && state.semanticDiagnosticsPerFile.size !== state.fileInfos.size && oldState.checkPending !== state.checkPending) state.buildInfoEmitPending = true;\n  return state;\n  function addFileToChangeSet(path) {\n    state.changedFilesSet.add(path);\n    if (outFilePath) {\n      canCopySemanticDiagnostics = false;\n      canCopyEmitDiagnostics = false;\n      state.semanticDiagnosticsFromOldState = void 0;\n      state.semanticDiagnosticsPerFile.clear();\n      state.emitDiagnosticsPerFile = void 0;\n    }\n    state.buildInfoEmitPending = true;\n    state.programEmitPending = void 0;\n  }\n}\nfunction getEmitSignatureFromOldSignature(options, oldOptions, oldEmitSignature) {\n  return !!options.declarationMap === !!oldOptions.declarationMap ? (\n    // Use same format of signature\n    oldEmitSignature\n  ) : (\n    // Convert to different format\n    isString(oldEmitSignature) ? [oldEmitSignature] : oldEmitSignature[0]\n  );\n}\nfunction repopulateDiagnostics(diagnostics, newProgram) {\n  if (!diagnostics.length) return diagnostics;\n  return sameMap(diagnostics, (diag2) => {\n    if (isString(diag2.messageText)) return diag2;\n    const repopulatedChain = convertOrRepopulateDiagnosticMessageChain(diag2.messageText, diag2.file, newProgram, (chain) => {\n      var _a;\n      return (_a = chain.repopulateInfo) == null ? void 0 : _a.call(chain);\n    });\n    return repopulatedChain === diag2.messageText ? diag2 : { ...diag2, messageText: repopulatedChain };\n  });\n}\nfunction convertOrRepopulateDiagnosticMessageChain(chain, sourceFile, newProgram, repopulateInfo) {\n  const info = repopulateInfo(chain);\n  if (info === true) {\n    return {\n      ...createModeMismatchDetails(sourceFile),\n      next: convertOrRepopulateDiagnosticMessageChainArray(chain.next, sourceFile, newProgram, repopulateInfo)\n    };\n  } else if (info) {\n    return {\n      ...createModuleNotFoundChain(sourceFile, newProgram, info.moduleReference, info.mode, info.packageName || info.moduleReference),\n      next: convertOrRepopulateDiagnosticMessageChainArray(chain.next, sourceFile, newProgram, repopulateInfo)\n    };\n  }\n  const next = convertOrRepopulateDiagnosticMessageChainArray(chain.next, sourceFile, newProgram, repopulateInfo);\n  return next === chain.next ? chain : { ...chain, next };\n}\nfunction convertOrRepopulateDiagnosticMessageChainArray(array, sourceFile, newProgram, repopulateInfo) {\n  return sameMap(array, (chain) => convertOrRepopulateDiagnosticMessageChain(chain, sourceFile, newProgram, repopulateInfo));\n}\nfunction convertToDiagnostics(diagnostics, diagnosticFilePath, newProgram) {\n  if (!diagnostics.length) return emptyArray;\n  let buildInfoDirectory;\n  return diagnostics.map((diagnostic) => {\n    const result = convertToDiagnosticRelatedInformation(diagnostic, diagnosticFilePath, newProgram, toPathInBuildInfoDirectory);\n    result.reportsUnnecessary = diagnostic.reportsUnnecessary;\n    result.reportsDeprecated = diagnostic.reportDeprecated;\n    result.source = diagnostic.source;\n    result.skippedOn = diagnostic.skippedOn;\n    const { relatedInformation } = diagnostic;\n    result.relatedInformation = relatedInformation ? relatedInformation.length ? relatedInformation.map((r) => convertToDiagnosticRelatedInformation(r, diagnosticFilePath, newProgram, toPathInBuildInfoDirectory)) : [] : void 0;\n    return result;\n  });\n  function toPathInBuildInfoDirectory(path) {\n    buildInfoDirectory ?? (buildInfoDirectory = getDirectoryPath(getNormalizedAbsolutePath(getTsBuildInfoEmitOutputFilePath(newProgram.getCompilerOptions()), newProgram.getCurrentDirectory())));\n    return toPath(path, buildInfoDirectory, newProgram.getCanonicalFileName);\n  }\n}\nfunction convertToDiagnosticRelatedInformation(diagnostic, diagnosticFilePath, newProgram, toPath3) {\n  const { file } = diagnostic;\n  const sourceFile = file !== false ? newProgram.getSourceFileByPath(file ? toPath3(file) : diagnosticFilePath) : void 0;\n  return {\n    ...diagnostic,\n    file: sourceFile,\n    messageText: isString(diagnostic.messageText) ? diagnostic.messageText : convertOrRepopulateDiagnosticMessageChain(diagnostic.messageText, sourceFile, newProgram, (chain) => chain.info)\n  };\n}\nfunction releaseCache(state) {\n  BuilderState.releaseCache(state);\n  state.program = void 0;\n}\nfunction assertSourceFileOkWithoutNextAffectedCall(state, sourceFile) {\n  Debug.assert(!sourceFile || !state.affectedFiles || state.affectedFiles[state.affectedFilesIndex - 1] !== sourceFile || !state.semanticDiagnosticsPerFile.has(sourceFile.resolvedPath));\n}\nfunction getNextAffectedFile(state, cancellationToken, host) {\n  var _a;\n  while (true) {\n    const { affectedFiles } = state;\n    if (affectedFiles) {\n      const seenAffectedFiles = state.seenAffectedFiles;\n      let affectedFilesIndex = state.affectedFilesIndex;\n      while (affectedFilesIndex < affectedFiles.length) {\n        const affectedFile = affectedFiles[affectedFilesIndex];\n        if (!seenAffectedFiles.has(affectedFile.resolvedPath)) {\n          state.affectedFilesIndex = affectedFilesIndex;\n          addToAffectedFilesPendingEmit(\n            state,\n            affectedFile.resolvedPath,\n            getBuilderFileEmit(state.compilerOptions)\n          );\n          handleDtsMayChangeOfAffectedFile(\n            state,\n            affectedFile,\n            cancellationToken,\n            host\n          );\n          return affectedFile;\n        }\n        affectedFilesIndex++;\n      }\n      state.changedFilesSet.delete(state.currentChangedFilePath);\n      state.currentChangedFilePath = void 0;\n      (_a = state.oldSignatures) == null ? void 0 : _a.clear();\n      state.affectedFiles = void 0;\n    }\n    const nextKey = state.changedFilesSet.keys().next();\n    if (nextKey.done) {\n      return void 0;\n    }\n    const compilerOptions = state.program.getCompilerOptions();\n    if (compilerOptions.outFile) return state.program;\n    state.affectedFiles = BuilderState.getFilesAffectedByWithOldState(\n      state,\n      state.program,\n      nextKey.value,\n      cancellationToken,\n      host\n    );\n    state.currentChangedFilePath = nextKey.value;\n    state.affectedFilesIndex = 0;\n    if (!state.seenAffectedFiles) state.seenAffectedFiles = /* @__PURE__ */ new Set();\n  }\n}\nfunction clearAffectedFilesPendingEmit(state, emitOnlyDtsFiles, isForDtsErrors) {\n  var _a, _b;\n  if (!((_a = state.affectedFilesPendingEmit) == null ? void 0 : _a.size) && !state.programEmitPending) return;\n  if (!emitOnlyDtsFiles && !isForDtsErrors) {\n    state.affectedFilesPendingEmit = void 0;\n    state.programEmitPending = void 0;\n  }\n  (_b = state.affectedFilesPendingEmit) == null ? void 0 : _b.forEach((emitKind, path) => {\n    const pending = !isForDtsErrors ? emitKind & 7 /* AllJs */ : emitKind & (7 /* AllJs */ | 48 /* AllDtsEmit */);\n    if (!pending) state.affectedFilesPendingEmit.delete(path);\n    else state.affectedFilesPendingEmit.set(path, pending);\n  });\n  if (state.programEmitPending) {\n    const pending = !isForDtsErrors ? state.programEmitPending & 7 /* AllJs */ : state.programEmitPending & (7 /* AllJs */ | 48 /* AllDtsEmit */);\n    if (!pending) state.programEmitPending = void 0;\n    else state.programEmitPending = pending;\n  }\n}\nfunction getPendingEmitKindWithSeen(optionsOrEmitKind, seenOldOptionsOrEmitKind, emitOnlyDtsFiles, isForDtsErrors) {\n  let pendingKind = getPendingEmitKind(optionsOrEmitKind, seenOldOptionsOrEmitKind);\n  if (emitOnlyDtsFiles) pendingKind = pendingKind & 56 /* AllDts */;\n  if (isForDtsErrors) pendingKind = pendingKind & 8 /* DtsErrors */;\n  return pendingKind;\n}\nfunction getBuilderFileEmitAllDts(isForDtsErrors) {\n  return !isForDtsErrors ? 56 /* AllDts */ : 8 /* DtsErrors */;\n}\nfunction getNextAffectedFilePendingEmit(state, emitOnlyDtsFiles, isForDtsErrors) {\n  var _a;\n  if (!((_a = state.affectedFilesPendingEmit) == null ? void 0 : _a.size)) return void 0;\n  return forEachEntry(state.affectedFilesPendingEmit, (emitKind, path) => {\n    var _a2;\n    const affectedFile = state.program.getSourceFileByPath(path);\n    if (!affectedFile || !sourceFileMayBeEmitted(affectedFile, state.program)) {\n      state.affectedFilesPendingEmit.delete(path);\n      return void 0;\n    }\n    const seenKind = (_a2 = state.seenEmittedFiles) == null ? void 0 : _a2.get(affectedFile.resolvedPath);\n    const pendingKind = getPendingEmitKindWithSeen(\n      emitKind,\n      seenKind,\n      emitOnlyDtsFiles,\n      isForDtsErrors\n    );\n    if (pendingKind) return { affectedFile, emitKind: pendingKind };\n  });\n}\nfunction getNextPendingEmitDiagnosticsFile(state, isForDtsErrors) {\n  var _a;\n  if (!((_a = state.emitDiagnosticsPerFile) == null ? void 0 : _a.size)) return void 0;\n  return forEachEntry(state.emitDiagnosticsPerFile, (diagnostics, path) => {\n    var _a2;\n    const affectedFile = state.program.getSourceFileByPath(path);\n    if (!affectedFile || !sourceFileMayBeEmitted(affectedFile, state.program)) {\n      state.emitDiagnosticsPerFile.delete(path);\n      return void 0;\n    }\n    const seenKind = ((_a2 = state.seenEmittedFiles) == null ? void 0 : _a2.get(affectedFile.resolvedPath)) || 0 /* None */;\n    if (!(seenKind & getBuilderFileEmitAllDts(isForDtsErrors))) return { affectedFile, diagnostics, seenKind };\n  });\n}\nfunction removeDiagnosticsOfLibraryFiles(state) {\n  if (!state.cleanedDiagnosticsOfLibFiles) {\n    state.cleanedDiagnosticsOfLibFiles = true;\n    const options = state.program.getCompilerOptions();\n    forEach(state.program.getSourceFiles(), (f) => state.program.isSourceFileDefaultLibrary(f) && !skipTypeCheckingIgnoringNoCheck(f, options, state.program) && removeSemanticDiagnosticsOf(state, f.resolvedPath));\n  }\n}\nfunction handleDtsMayChangeOfAffectedFile(state, affectedFile, cancellationToken, host) {\n  removeSemanticDiagnosticsOf(state, affectedFile.resolvedPath);\n  if (state.allFilesExcludingDefaultLibraryFile === state.affectedFiles) {\n    removeDiagnosticsOfLibraryFiles(state);\n    BuilderState.updateShapeSignature(\n      state,\n      state.program,\n      affectedFile,\n      cancellationToken,\n      host\n    );\n    return;\n  }\n  if (state.compilerOptions.assumeChangesOnlyAffectDirectDependencies) return;\n  handleDtsMayChangeOfReferencingExportOfAffectedFile(\n    state,\n    affectedFile,\n    cancellationToken,\n    host\n  );\n}\nfunction handleDtsMayChangeOf(state, path, invalidateJsFiles, cancellationToken, host) {\n  removeSemanticDiagnosticsOf(state, path);\n  if (!state.changedFilesSet.has(path)) {\n    const sourceFile = state.program.getSourceFileByPath(path);\n    if (sourceFile) {\n      BuilderState.updateShapeSignature(\n        state,\n        state.program,\n        sourceFile,\n        cancellationToken,\n        host,\n        /*useFileVersionAsSignature*/\n        true\n      );\n      if (invalidateJsFiles) {\n        addToAffectedFilesPendingEmit(\n          state,\n          path,\n          getBuilderFileEmit(state.compilerOptions)\n        );\n      } else if (getEmitDeclarations(state.compilerOptions)) {\n        addToAffectedFilesPendingEmit(\n          state,\n          path,\n          state.compilerOptions.declarationMap ? 56 /* AllDts */ : 24 /* Dts */\n        );\n      }\n    }\n  }\n}\nfunction removeSemanticDiagnosticsOf(state, path) {\n  if (!state.semanticDiagnosticsFromOldState) {\n    return true;\n  }\n  state.semanticDiagnosticsFromOldState.delete(path);\n  state.semanticDiagnosticsPerFile.delete(path);\n  return !state.semanticDiagnosticsFromOldState.size;\n}\nfunction isChangedSignature(state, path) {\n  const oldSignature = Debug.checkDefined(state.oldSignatures).get(path) || void 0;\n  const newSignature = Debug.checkDefined(state.fileInfos.get(path)).signature;\n  return newSignature !== oldSignature;\n}\nfunction handleDtsMayChangeOfGlobalScope(state, filePath, invalidateJsFiles, cancellationToken, host) {\n  var _a;\n  if (!((_a = state.fileInfos.get(filePath)) == null ? void 0 : _a.affectsGlobalScope)) return false;\n  BuilderState.getAllFilesExcludingDefaultLibraryFile(\n    state,\n    state.program,\n    /*firstSourceFile*/\n    void 0\n  ).forEach(\n    (file) => handleDtsMayChangeOf(\n      state,\n      file.resolvedPath,\n      invalidateJsFiles,\n      cancellationToken,\n      host\n    )\n  );\n  removeDiagnosticsOfLibraryFiles(state);\n  return true;\n}\nfunction handleDtsMayChangeOfReferencingExportOfAffectedFile(state, affectedFile, cancellationToken, host) {\n  var _a, _b;\n  if (!state.referencedMap || !state.changedFilesSet.has(affectedFile.resolvedPath)) return;\n  if (!isChangedSignature(state, affectedFile.resolvedPath)) return;\n  if (getIsolatedModules(state.compilerOptions)) {\n    const seenFileNamesMap = /* @__PURE__ */ new Map();\n    seenFileNamesMap.set(affectedFile.resolvedPath, true);\n    const queue = BuilderState.getReferencedByPaths(state, affectedFile.resolvedPath);\n    while (queue.length > 0) {\n      const currentPath = queue.pop();\n      if (!seenFileNamesMap.has(currentPath)) {\n        seenFileNamesMap.set(currentPath, true);\n        if (handleDtsMayChangeOfGlobalScope(\n          state,\n          currentPath,\n          /*invalidateJsFiles*/\n          false,\n          cancellationToken,\n          host\n        )) return;\n        handleDtsMayChangeOf(\n          state,\n          currentPath,\n          /*invalidateJsFiles*/\n          false,\n          cancellationToken,\n          host\n        );\n        if (isChangedSignature(state, currentPath)) {\n          const currentSourceFile = state.program.getSourceFileByPath(currentPath);\n          queue.push(...BuilderState.getReferencedByPaths(state, currentSourceFile.resolvedPath));\n        }\n      }\n    }\n  }\n  const seenFileAndExportsOfFile = /* @__PURE__ */ new Set();\n  const invalidateJsFiles = !!((_a = affectedFile.symbol) == null ? void 0 : _a.exports) && !!forEachEntry(\n    affectedFile.symbol.exports,\n    (exported) => {\n      if ((exported.flags & 128 /* ConstEnum */) !== 0) return true;\n      const aliased = skipAlias(exported, state.program.getTypeChecker());\n      if (aliased === exported) return false;\n      return (aliased.flags & 128 /* ConstEnum */) !== 0 && some(aliased.declarations, (d) => getSourceFileOfNode(d) === affectedFile);\n    }\n  );\n  (_b = state.referencedMap.getKeys(affectedFile.resolvedPath)) == null ? void 0 : _b.forEach((exportedFromPath) => {\n    if (handleDtsMayChangeOfGlobalScope(state, exportedFromPath, invalidateJsFiles, cancellationToken, host)) return true;\n    const references = state.referencedMap.getKeys(exportedFromPath);\n    return references && forEachKey(references, (filePath) => handleDtsMayChangeOfFileAndExportsOfFile(\n      state,\n      filePath,\n      invalidateJsFiles,\n      seenFileAndExportsOfFile,\n      cancellationToken,\n      host\n    ));\n  });\n}\nfunction handleDtsMayChangeOfFileAndExportsOfFile(state, filePath, invalidateJsFiles, seenFileAndExportsOfFile, cancellationToken, host) {\n  var _a;\n  if (!tryAddToSet(seenFileAndExportsOfFile, filePath)) return void 0;\n  if (handleDtsMayChangeOfGlobalScope(state, filePath, invalidateJsFiles, cancellationToken, host)) return true;\n  handleDtsMayChangeOf(state, filePath, invalidateJsFiles, cancellationToken, host);\n  (_a = state.referencedMap.getKeys(filePath)) == null ? void 0 : _a.forEach(\n    (referencingFilePath) => handleDtsMayChangeOfFileAndExportsOfFile(\n      state,\n      referencingFilePath,\n      invalidateJsFiles,\n      seenFileAndExportsOfFile,\n      cancellationToken,\n      host\n    )\n  );\n  return void 0;\n}\nfunction getSemanticDiagnosticsOfFile(state, sourceFile, cancellationToken, semanticDiagnosticsPerFile) {\n  if (state.compilerOptions.noCheck) return emptyArray;\n  return concatenate(\n    getBinderAndCheckerDiagnosticsOfFile(state, sourceFile, cancellationToken, semanticDiagnosticsPerFile),\n    state.program.getProgramDiagnostics(sourceFile)\n  );\n}\nfunction getBinderAndCheckerDiagnosticsOfFile(state, sourceFile, cancellationToken, semanticDiagnosticsPerFile) {\n  semanticDiagnosticsPerFile ?? (semanticDiagnosticsPerFile = state.semanticDiagnosticsPerFile);\n  const path = sourceFile.resolvedPath;\n  const cachedDiagnostics = semanticDiagnosticsPerFile.get(path);\n  if (cachedDiagnostics) {\n    return filterSemanticDiagnostics(cachedDiagnostics, state.compilerOptions);\n  }\n  const diagnostics = state.program.getBindAndCheckDiagnostics(sourceFile, cancellationToken);\n  semanticDiagnosticsPerFile.set(path, diagnostics);\n  state.buildInfoEmitPending = true;\n  return filterSemanticDiagnostics(diagnostics, state.compilerOptions);\n}\nfunction isIncrementalBundleEmitBuildInfo(info) {\n  var _a;\n  return !!((_a = info.options) == null ? void 0 : _a.outFile);\n}\nfunction isIncrementalBuildInfo(info) {\n  return !!info.fileNames;\n}\nfunction isNonIncrementalBuildInfo(info) {\n  return !isIncrementalBuildInfo(info) && !!info.root;\n}\nfunction ensureHasErrorsForState(state) {\n  if (state.hasErrors !== void 0) return;\n  if (isIncrementalCompilation(state.compilerOptions)) {\n    state.hasErrors = !some(state.program.getSourceFiles(), (f) => {\n      var _a, _b;\n      const bindAndCheckDiagnostics = state.semanticDiagnosticsPerFile.get(f.resolvedPath);\n      return bindAndCheckDiagnostics === void 0 || // Missing semantic diagnostics in cache will be encoded in buildInfo\n      !!bindAndCheckDiagnostics.length || // cached semantic diagnostics will be encoded in buildInfo\n      !!((_b = (_a = state.emitDiagnosticsPerFile) == null ? void 0 : _a.get(f.resolvedPath)) == null ? void 0 : _b.length);\n    }) && (hasSyntaxOrGlobalErrors(state) || some(state.program.getSourceFiles(), (f) => !!state.program.getProgramDiagnostics(f).length));\n  } else {\n    state.hasErrors = some(state.program.getSourceFiles(), (f) => {\n      var _a, _b;\n      const bindAndCheckDiagnostics = state.semanticDiagnosticsPerFile.get(f.resolvedPath);\n      return !!(bindAndCheckDiagnostics == null ? void 0 : bindAndCheckDiagnostics.length) || // If has semantic diagnostics\n      !!((_b = (_a = state.emitDiagnosticsPerFile) == null ? void 0 : _a.get(f.resolvedPath)) == null ? void 0 : _b.length);\n    }) || hasSyntaxOrGlobalErrors(state);\n  }\n}\nfunction hasSyntaxOrGlobalErrors(state) {\n  return !!state.program.getConfigFileParsingDiagnostics().length || !!state.program.getSyntacticDiagnostics().length || !!state.program.getOptionsDiagnostics().length || !!state.program.getGlobalDiagnostics().length;\n}\nfunction getBuildInfoEmitPending(state) {\n  ensureHasErrorsForState(state);\n  return state.buildInfoEmitPending ?? (state.buildInfoEmitPending = !!state.hasErrorsFromOldState !== !!state.hasErrors);\n}\nfunction getBuildInfo2(state) {\n  var _a, _b;\n  const currentDirectory = state.program.getCurrentDirectory();\n  const buildInfoDirectory = getDirectoryPath(getNormalizedAbsolutePath(getTsBuildInfoEmitOutputFilePath(state.compilerOptions), currentDirectory));\n  const latestChangedDtsFile = state.latestChangedDtsFile ? relativeToBuildInfoEnsuringAbsolutePath(state.latestChangedDtsFile) : void 0;\n  const fileNames = [];\n  const fileNameToFileId = /* @__PURE__ */ new Map();\n  const rootFileNames = new Set(state.program.getRootFileNames().map((f) => toPath(f, currentDirectory, state.program.getCanonicalFileName)));\n  ensureHasErrorsForState(state);\n  if (!isIncrementalCompilation(state.compilerOptions)) {\n    const buildInfo2 = {\n      root: arrayFrom(rootFileNames, (r) => relativeToBuildInfo(r)),\n      errors: state.hasErrors ? true : void 0,\n      checkPending: state.checkPending,\n      version\n    };\n    return buildInfo2;\n  }\n  const root = [];\n  if (state.compilerOptions.outFile) {\n    const fileInfos2 = arrayFrom(state.fileInfos.entries(), ([key, value]) => {\n      const fileId = toFileId(key);\n      tryAddRoot(key, fileId);\n      return value.impliedFormat ? { version: value.version, impliedFormat: value.impliedFormat, signature: void 0, affectsGlobalScope: void 0 } : value.version;\n    });\n    const buildInfo2 = {\n      fileNames,\n      fileInfos: fileInfos2,\n      root,\n      resolvedRoot: toResolvedRoot(),\n      options: toIncrementalBuildInfoCompilerOptions(state.compilerOptions),\n      semanticDiagnosticsPerFile: !state.changedFilesSet.size ? toIncrementalBuildInfoDiagnostics() : void 0,\n      emitDiagnosticsPerFile: toIncrementalBuildInfoEmitDiagnostics(),\n      changeFileSet: toChangeFileSet(),\n      outSignature: state.outSignature,\n      latestChangedDtsFile,\n      pendingEmit: !state.programEmitPending ? void 0 : (\n        // Pending is undefined or None is encoded as undefined\n        state.programEmitPending === getBuilderFileEmit(state.compilerOptions) ? false : (\n          // Pending emit is same as deteremined by compilerOptions\n          state.programEmitPending\n        )\n      ),\n      // Actual value\n      errors: state.hasErrors ? true : void 0,\n      checkPending: state.checkPending,\n      version\n    };\n    return buildInfo2;\n  }\n  let fileIdsList;\n  let fileNamesToFileIdListId;\n  let emitSignatures;\n  const fileInfos = arrayFrom(state.fileInfos.entries(), ([key, value]) => {\n    var _a2, _b2;\n    const fileId = toFileId(key);\n    tryAddRoot(key, fileId);\n    Debug.assert(fileNames[fileId - 1] === relativeToBuildInfo(key));\n    const oldSignature = (_a2 = state.oldSignatures) == null ? void 0 : _a2.get(key);\n    const actualSignature = oldSignature !== void 0 ? oldSignature || void 0 : value.signature;\n    if (state.compilerOptions.composite) {\n      const file = state.program.getSourceFileByPath(key);\n      if (!isJsonSourceFile(file) && sourceFileMayBeEmitted(file, state.program)) {\n        const emitSignature = (_b2 = state.emitSignatures) == null ? void 0 : _b2.get(key);\n        if (emitSignature !== actualSignature) {\n          emitSignatures = append(\n            emitSignatures,\n            emitSignature === void 0 ? fileId : (\n              // There is no emit, encode as false\n              // fileId, signature: emptyArray if signature only differs in dtsMap option than our own compilerOptions otherwise EmitSignature\n              [fileId, !isString(emitSignature) && emitSignature[0] === actualSignature ? emptyArray : emitSignature]\n            )\n          );\n        }\n      }\n    }\n    return value.version === actualSignature ? value.affectsGlobalScope || value.impliedFormat ? (\n      // If file version is same as signature, dont serialize signature\n      { version: value.version, signature: void 0, affectsGlobalScope: value.affectsGlobalScope, impliedFormat: value.impliedFormat }\n    ) : (\n      // If file info only contains version and signature and both are same we can just write string\n      value.version\n    ) : actualSignature !== void 0 ? (\n      // If signature is not same as version, encode signature in the fileInfo\n      oldSignature === void 0 ? (\n        // If we havent computed signature, use fileInfo as is\n        value\n      ) : (\n        // Serialize fileInfo with new updated signature\n        { version: value.version, signature: actualSignature, affectsGlobalScope: value.affectsGlobalScope, impliedFormat: value.impliedFormat }\n      )\n    ) : (\n      // Signature of the FileInfo is undefined, serialize it as false\n      { version: value.version, signature: false, affectsGlobalScope: value.affectsGlobalScope, impliedFormat: value.impliedFormat }\n    );\n  });\n  let referencedMap;\n  if ((_a = state.referencedMap) == null ? void 0 : _a.size()) {\n    referencedMap = arrayFrom(state.referencedMap.keys()).sort(compareStringsCaseSensitive).map((key) => [\n      toFileId(key),\n      toFileIdListId(state.referencedMap.getValues(key))\n    ]);\n  }\n  const semanticDiagnosticsPerFile = toIncrementalBuildInfoDiagnostics();\n  let affectedFilesPendingEmit;\n  if ((_b = state.affectedFilesPendingEmit) == null ? void 0 : _b.size) {\n    const fullEmitForOptions = getBuilderFileEmit(state.compilerOptions);\n    const seenFiles = /* @__PURE__ */ new Set();\n    for (const path of arrayFrom(state.affectedFilesPendingEmit.keys()).sort(compareStringsCaseSensitive)) {\n      if (tryAddToSet(seenFiles, path)) {\n        const file = state.program.getSourceFileByPath(path);\n        if (!file || !sourceFileMayBeEmitted(file, state.program)) continue;\n        const fileId = toFileId(path), pendingEmit = state.affectedFilesPendingEmit.get(path);\n        affectedFilesPendingEmit = append(\n          affectedFilesPendingEmit,\n          pendingEmit === fullEmitForOptions ? fileId : (\n            // Pending full emit per options\n            pendingEmit === 24 /* Dts */ ? [fileId] : (\n              // Pending on Dts only\n              [fileId, pendingEmit]\n            )\n          )\n          // Anything else\n        );\n      }\n    }\n  }\n  const buildInfo = {\n    fileNames,\n    fileIdsList,\n    fileInfos,\n    root,\n    resolvedRoot: toResolvedRoot(),\n    options: toIncrementalBuildInfoCompilerOptions(state.compilerOptions),\n    referencedMap,\n    semanticDiagnosticsPerFile,\n    emitDiagnosticsPerFile: toIncrementalBuildInfoEmitDiagnostics(),\n    changeFileSet: toChangeFileSet(),\n    affectedFilesPendingEmit,\n    emitSignatures,\n    latestChangedDtsFile,\n    errors: state.hasErrors ? true : void 0,\n    checkPending: state.checkPending,\n    version\n  };\n  return buildInfo;\n  function relativeToBuildInfoEnsuringAbsolutePath(path) {\n    return relativeToBuildInfo(getNormalizedAbsolutePath(path, currentDirectory));\n  }\n  function relativeToBuildInfo(path) {\n    return ensurePathIsNonModuleName(getRelativePathFromDirectory(buildInfoDirectory, path, state.program.getCanonicalFileName));\n  }\n  function toFileId(path) {\n    let fileId = fileNameToFileId.get(path);\n    if (fileId === void 0) {\n      fileNames.push(relativeToBuildInfo(path));\n      fileNameToFileId.set(path, fileId = fileNames.length);\n    }\n    return fileId;\n  }\n  function toFileIdListId(set) {\n    const fileIds = arrayFrom(set.keys(), toFileId).sort(compareValues);\n    const key = fileIds.join();\n    let fileIdListId = fileNamesToFileIdListId == null ? void 0 : fileNamesToFileIdListId.get(key);\n    if (fileIdListId === void 0) {\n      fileIdsList = append(fileIdsList, fileIds);\n      (fileNamesToFileIdListId ?? (fileNamesToFileIdListId = /* @__PURE__ */ new Map())).set(key, fileIdListId = fileIdsList.length);\n    }\n    return fileIdListId;\n  }\n  function tryAddRoot(path, fileId) {\n    const file = state.program.getSourceFile(path);\n    if (!state.program.getFileIncludeReasons().get(file.path).some((r) => r.kind === 0 /* RootFile */)) return;\n    if (!root.length) return root.push(fileId);\n    const last2 = root[root.length - 1];\n    const isLastStartEnd = isArray(last2);\n    if (isLastStartEnd && last2[1] === fileId - 1) return last2[1] = fileId;\n    if (isLastStartEnd || root.length === 1 || last2 !== fileId - 1) return root.push(fileId);\n    const lastButOne = root[root.length - 2];\n    if (!isNumber(lastButOne) || lastButOne !== last2 - 1) return root.push(fileId);\n    root[root.length - 2] = [lastButOne, fileId];\n    return root.length = root.length - 1;\n  }\n  function toResolvedRoot() {\n    let result;\n    rootFileNames.forEach((path) => {\n      const file = state.program.getSourceFileByPath(path);\n      if (file && path !== file.resolvedPath) {\n        result = append(result, [toFileId(file.resolvedPath), toFileId(path)]);\n      }\n    });\n    return result;\n  }\n  function toIncrementalBuildInfoCompilerOptions(options) {\n    let result;\n    const { optionsNameMap } = getOptionsNameMap();\n    for (const name of getOwnKeys(options).sort(compareStringsCaseSensitive)) {\n      const optionInfo = optionsNameMap.get(name.toLowerCase());\n      if (optionInfo == null ? void 0 : optionInfo.affectsBuildInfo) {\n        (result || (result = {}))[name] = toReusableCompilerOptionValue(\n          optionInfo,\n          options[name]\n        );\n      }\n    }\n    return result;\n  }\n  function toReusableCompilerOptionValue(option, value) {\n    if (option) {\n      Debug.assert(option.type !== \"listOrElement\");\n      if (option.type === \"list\") {\n        const values = value;\n        if (option.element.isFilePath && values.length) {\n          return values.map(relativeToBuildInfoEnsuringAbsolutePath);\n        }\n      } else if (option.isFilePath) {\n        return relativeToBuildInfoEnsuringAbsolutePath(value);\n      }\n    }\n    return value;\n  }\n  function toIncrementalBuildInfoDiagnostics() {\n    let result;\n    state.fileInfos.forEach((_value, key) => {\n      const value = state.semanticDiagnosticsPerFile.get(key);\n      if (!value) {\n        if (!state.changedFilesSet.has(key)) result = append(result, toFileId(key));\n      } else if (value.length) {\n        result = append(result, [\n          toFileId(key),\n          toReusableDiagnostic(value, key)\n        ]);\n      }\n    });\n    return result;\n  }\n  function toIncrementalBuildInfoEmitDiagnostics() {\n    var _a2;\n    let result;\n    if (!((_a2 = state.emitDiagnosticsPerFile) == null ? void 0 : _a2.size)) return result;\n    for (const key of arrayFrom(state.emitDiagnosticsPerFile.keys()).sort(compareStringsCaseSensitive)) {\n      const value = state.emitDiagnosticsPerFile.get(key);\n      result = append(result, [\n        toFileId(key),\n        toReusableDiagnostic(value, key)\n      ]);\n    }\n    return result;\n  }\n  function toReusableDiagnostic(diagnostics, diagnosticFilePath) {\n    Debug.assert(!!diagnostics.length);\n    return diagnostics.map((diagnostic) => {\n      const result = toReusableDiagnosticRelatedInformation(diagnostic, diagnosticFilePath);\n      result.reportsUnnecessary = diagnostic.reportsUnnecessary;\n      result.reportDeprecated = diagnostic.reportsDeprecated;\n      result.source = diagnostic.source;\n      result.skippedOn = diagnostic.skippedOn;\n      const { relatedInformation } = diagnostic;\n      result.relatedInformation = relatedInformation ? relatedInformation.length ? relatedInformation.map((r) => toReusableDiagnosticRelatedInformation(r, diagnosticFilePath)) : [] : void 0;\n      return result;\n    });\n  }\n  function toReusableDiagnosticRelatedInformation(diagnostic, diagnosticFilePath) {\n    const { file } = diagnostic;\n    return {\n      ...diagnostic,\n      file: file ? file.resolvedPath === diagnosticFilePath ? void 0 : relativeToBuildInfo(file.resolvedPath) : false,\n      messageText: isString(diagnostic.messageText) ? diagnostic.messageText : toReusableDiagnosticMessageChain(diagnostic.messageText)\n    };\n  }\n  function toReusableDiagnosticMessageChain(chain) {\n    if (chain.repopulateInfo) {\n      return {\n        info: chain.repopulateInfo(),\n        next: toReusableDiagnosticMessageChainArray(chain.next)\n      };\n    }\n    const next = toReusableDiagnosticMessageChainArray(chain.next);\n    return next === chain.next ? chain : { ...chain, next };\n  }\n  function toReusableDiagnosticMessageChainArray(array) {\n    if (!array) return array;\n    return forEach(array, (chain, index) => {\n      const reusable = toReusableDiagnosticMessageChain(chain);\n      if (chain === reusable) return void 0;\n      const result = index > 0 ? array.slice(0, index - 1) : [];\n      result.push(reusable);\n      for (let i = index + 1; i < array.length; i++) {\n        result.push(toReusableDiagnosticMessageChain(array[i]));\n      }\n      return result;\n    }) || array;\n  }\n  function toChangeFileSet() {\n    let changeFileSet;\n    if (state.changedFilesSet.size) {\n      for (const path of arrayFrom(state.changedFilesSet.keys()).sort(compareStringsCaseSensitive)) {\n        changeFileSet = append(changeFileSet, toFileId(path));\n      }\n    }\n    return changeFileSet;\n  }\n}\nvar BuilderProgramKind = /* @__PURE__ */ ((BuilderProgramKind2) => {\n  BuilderProgramKind2[BuilderProgramKind2[\"SemanticDiagnosticsBuilderProgram\"] = 0] = \"SemanticDiagnosticsBuilderProgram\";\n  BuilderProgramKind2[BuilderProgramKind2[\"EmitAndSemanticDiagnosticsBuilderProgram\"] = 1] = \"EmitAndSemanticDiagnosticsBuilderProgram\";\n  return BuilderProgramKind2;\n})(BuilderProgramKind || {});\nfunction getBuilderCreationParameters(newProgramOrRootNames, hostOrOptions, oldProgramOrHost, configFileParsingDiagnosticsOrOldProgram, configFileParsingDiagnostics, projectReferences) {\n  let host;\n  let newProgram;\n  let oldProgram;\n  if (newProgramOrRootNames === void 0) {\n    Debug.assert(hostOrOptions === void 0);\n    host = oldProgramOrHost;\n    oldProgram = configFileParsingDiagnosticsOrOldProgram;\n    Debug.assert(!!oldProgram);\n    newProgram = oldProgram.getProgram();\n  } else if (isArray(newProgramOrRootNames)) {\n    oldProgram = configFileParsingDiagnosticsOrOldProgram;\n    newProgram = createProgram({\n      rootNames: newProgramOrRootNames,\n      options: hostOrOptions,\n      host: oldProgramOrHost,\n      oldProgram: oldProgram && oldProgram.getProgramOrUndefined(),\n      configFileParsingDiagnostics,\n      projectReferences\n    });\n    host = oldProgramOrHost;\n  } else {\n    newProgram = newProgramOrRootNames;\n    host = hostOrOptions;\n    oldProgram = oldProgramOrHost;\n    configFileParsingDiagnostics = configFileParsingDiagnosticsOrOldProgram;\n  }\n  return { host, newProgram, oldProgram, configFileParsingDiagnostics: configFileParsingDiagnostics || emptyArray };\n}\nfunction getTextHandlingSourceMapForSignature(text, data) {\n  return (data == null ? void 0 : data.sourceMapUrlPos) !== void 0 ? text.substring(0, data.sourceMapUrlPos) : text;\n}\nfunction computeSignatureWithDiagnostics(program, sourceFile, text, host, data) {\n  var _a;\n  text = getTextHandlingSourceMapForSignature(text, data);\n  let sourceFileDirectory;\n  if ((_a = data == null ? void 0 : data.diagnostics) == null ? void 0 : _a.length) {\n    text += data.diagnostics.map((diagnostic) => `${locationInfo(diagnostic)}${DiagnosticCategory[diagnostic.category]}${diagnostic.code}: ${flattenDiagnosticMessageText2(diagnostic.messageText)}`).join(\"\\n\");\n  }\n  return (host.createHash ?? generateDjb2Hash)(text);\n  function flattenDiagnosticMessageText2(diagnostic) {\n    return isString(diagnostic) ? diagnostic : diagnostic === void 0 ? \"\" : !diagnostic.next ? diagnostic.messageText : diagnostic.messageText + diagnostic.next.map(flattenDiagnosticMessageText2).join(\"\\n\");\n  }\n  function locationInfo(diagnostic) {\n    if (diagnostic.file.resolvedPath === sourceFile.resolvedPath) return `(${diagnostic.start},${diagnostic.length})`;\n    if (sourceFileDirectory === void 0) sourceFileDirectory = getDirectoryPath(sourceFile.resolvedPath);\n    return `${ensurePathIsNonModuleName(getRelativePathFromDirectory(\n      sourceFileDirectory,\n      diagnostic.file.resolvedPath,\n      program.getCanonicalFileName\n    ))}(${diagnostic.start},${diagnostic.length})`;\n  }\n}\nfunction computeSignature(text, host, data) {\n  return (host.createHash ?? generateDjb2Hash)(getTextHandlingSourceMapForSignature(text, data));\n}\nfunction createBuilderProgram(kind, { newProgram, host, oldProgram, configFileParsingDiagnostics }) {\n  let oldState = oldProgram && oldProgram.state;\n  if (oldState && newProgram === oldState.program && configFileParsingDiagnostics === newProgram.getConfigFileParsingDiagnostics()) {\n    newProgram = void 0;\n    oldState = void 0;\n    return oldProgram;\n  }\n  const state = createBuilderProgramState(newProgram, oldState);\n  newProgram.getBuildInfo = () => getBuildInfo2(toBuilderProgramStateWithDefinedProgram(state));\n  newProgram = void 0;\n  oldProgram = void 0;\n  oldState = void 0;\n  const builderProgram = createRedirectedBuilderProgram(state, configFileParsingDiagnostics);\n  builderProgram.state = state;\n  builderProgram.hasChangedEmitSignature = () => !!state.hasChangedEmitSignature;\n  builderProgram.getAllDependencies = (sourceFile) => BuilderState.getAllDependencies(\n    state,\n    Debug.checkDefined(state.program),\n    sourceFile\n  );\n  builderProgram.getSemanticDiagnostics = getSemanticDiagnostics;\n  builderProgram.getDeclarationDiagnostics = getDeclarationDiagnostics2;\n  builderProgram.emit = emit;\n  builderProgram.releaseProgram = () => releaseCache(state);\n  if (kind === 0 /* SemanticDiagnosticsBuilderProgram */) {\n    builderProgram.getSemanticDiagnosticsOfNextAffectedFile = getSemanticDiagnosticsOfNextAffectedFile;\n  } else if (kind === 1 /* EmitAndSemanticDiagnosticsBuilderProgram */) {\n    builderProgram.getSemanticDiagnosticsOfNextAffectedFile = getSemanticDiagnosticsOfNextAffectedFile;\n    builderProgram.emitNextAffectedFile = emitNextAffectedFile;\n    builderProgram.emitBuildInfo = emitBuildInfo;\n  } else {\n    notImplemented();\n  }\n  return builderProgram;\n  function emitBuildInfo(writeFile2, cancellationToken) {\n    Debug.assert(isBuilderProgramStateWithDefinedProgram(state));\n    if (getBuildInfoEmitPending(state)) {\n      const result = state.program.emitBuildInfo(\n        writeFile2 || maybeBind(host, host.writeFile),\n        cancellationToken\n      );\n      state.buildInfoEmitPending = false;\n      return result;\n    }\n    return emitSkippedWithNoDiagnostics;\n  }\n  function emitNextAffectedFileOrDtsErrors(writeFile2, cancellationToken, emitOnlyDtsFiles, customTransformers, isForDtsErrors) {\n    var _a, _b, _c, _d;\n    Debug.assert(isBuilderProgramStateWithDefinedProgram(state));\n    let affected = getNextAffectedFile(state, cancellationToken, host);\n    const programEmitKind = getBuilderFileEmit(state.compilerOptions);\n    let emitKind = !isForDtsErrors ? emitOnlyDtsFiles ? programEmitKind & 56 /* AllDts */ : programEmitKind : 8 /* DtsErrors */;\n    if (!affected) {\n      if (!state.compilerOptions.outFile) {\n        const pendingAffectedFile = getNextAffectedFilePendingEmit(\n          state,\n          emitOnlyDtsFiles,\n          isForDtsErrors\n        );\n        if (pendingAffectedFile) {\n          ({ affectedFile: affected, emitKind } = pendingAffectedFile);\n        } else {\n          const pendingForDiagnostics = getNextPendingEmitDiagnosticsFile(\n            state,\n            isForDtsErrors\n          );\n          if (pendingForDiagnostics) {\n            (state.seenEmittedFiles ?? (state.seenEmittedFiles = /* @__PURE__ */ new Map())).set(\n              pendingForDiagnostics.affectedFile.resolvedPath,\n              pendingForDiagnostics.seenKind | getBuilderFileEmitAllDts(isForDtsErrors)\n            );\n            return {\n              result: { emitSkipped: true, diagnostics: pendingForDiagnostics.diagnostics },\n              affected: pendingForDiagnostics.affectedFile\n            };\n          }\n        }\n      } else {\n        if (state.programEmitPending) {\n          emitKind = getPendingEmitKindWithSeen(\n            state.programEmitPending,\n            state.seenProgramEmit,\n            emitOnlyDtsFiles,\n            isForDtsErrors\n          );\n          if (emitKind) affected = state.program;\n        }\n        if (!affected && ((_a = state.emitDiagnosticsPerFile) == null ? void 0 : _a.size)) {\n          const seenKind = state.seenProgramEmit || 0 /* None */;\n          if (!(seenKind & getBuilderFileEmitAllDts(isForDtsErrors))) {\n            state.seenProgramEmit = getBuilderFileEmitAllDts(isForDtsErrors) | seenKind;\n            const diagnostics = [];\n            state.emitDiagnosticsPerFile.forEach((d) => addRange(diagnostics, d));\n            return {\n              result: { emitSkipped: true, diagnostics },\n              affected: state.program\n            };\n          }\n        }\n      }\n      if (!affected) {\n        if (isForDtsErrors || !getBuildInfoEmitPending(state)) return void 0;\n        const affected2 = state.program;\n        const result2 = affected2.emitBuildInfo(\n          writeFile2 || maybeBind(host, host.writeFile),\n          cancellationToken\n        );\n        state.buildInfoEmitPending = false;\n        return { result: result2, affected: affected2 };\n      }\n    }\n    let emitOnly;\n    if (emitKind & 7 /* AllJs */) emitOnly = 0 /* Js */;\n    if (emitKind & 56 /* AllDts */) emitOnly = emitOnly === void 0 ? 1 /* Dts */ : void 0;\n    const result = !isForDtsErrors ? state.program.emit(\n      affected === state.program ? void 0 : affected,\n      getWriteFileCallback(writeFile2, customTransformers),\n      cancellationToken,\n      emitOnly,\n      customTransformers,\n      /*forceDtsEmit*/\n      void 0,\n      /*skipBuildInfo*/\n      true\n    ) : {\n      emitSkipped: true,\n      diagnostics: state.program.getDeclarationDiagnostics(\n        affected === state.program ? void 0 : affected,\n        cancellationToken\n      )\n    };\n    if (affected !== state.program) {\n      const affectedSourceFile = affected;\n      state.seenAffectedFiles.add(affectedSourceFile.resolvedPath);\n      if (state.affectedFilesIndex !== void 0) state.affectedFilesIndex++;\n      state.buildInfoEmitPending = true;\n      const existing = ((_b = state.seenEmittedFiles) == null ? void 0 : _b.get(affectedSourceFile.resolvedPath)) || 0 /* None */;\n      (state.seenEmittedFiles ?? (state.seenEmittedFiles = /* @__PURE__ */ new Map())).set(affectedSourceFile.resolvedPath, emitKind | existing);\n      const existingPending = ((_c = state.affectedFilesPendingEmit) == null ? void 0 : _c.get(affectedSourceFile.resolvedPath)) || programEmitKind;\n      const pendingKind = getPendingEmitKind(existingPending, emitKind | existing);\n      if (pendingKind) (state.affectedFilesPendingEmit ?? (state.affectedFilesPendingEmit = /* @__PURE__ */ new Map())).set(affectedSourceFile.resolvedPath, pendingKind);\n      else (_d = state.affectedFilesPendingEmit) == null ? void 0 : _d.delete(affectedSourceFile.resolvedPath);\n      if (result.diagnostics.length) (state.emitDiagnosticsPerFile ?? (state.emitDiagnosticsPerFile = /* @__PURE__ */ new Map())).set(affectedSourceFile.resolvedPath, result.diagnostics);\n    } else {\n      state.changedFilesSet.clear();\n      state.programEmitPending = state.changedFilesSet.size ? getPendingEmitKind(programEmitKind, emitKind) : state.programEmitPending ? getPendingEmitKind(state.programEmitPending, emitKind) : void 0;\n      state.seenProgramEmit = emitKind | (state.seenProgramEmit || 0 /* None */);\n      setEmitDiagnosticsPerFile(result.diagnostics);\n      state.buildInfoEmitPending = true;\n    }\n    return { result, affected };\n  }\n  function setEmitDiagnosticsPerFile(diagnostics) {\n    let emitDiagnosticsPerFile;\n    diagnostics.forEach((d) => {\n      if (!d.file) return;\n      let diagnostics2 = emitDiagnosticsPerFile == null ? void 0 : emitDiagnosticsPerFile.get(d.file.resolvedPath);\n      if (!diagnostics2) (emitDiagnosticsPerFile ?? (emitDiagnosticsPerFile = /* @__PURE__ */ new Map())).set(d.file.resolvedPath, diagnostics2 = []);\n      diagnostics2.push(d);\n    });\n    if (emitDiagnosticsPerFile) state.emitDiagnosticsPerFile = emitDiagnosticsPerFile;\n  }\n  function emitNextAffectedFile(writeFile2, cancellationToken, emitOnlyDtsFiles, customTransformers) {\n    return emitNextAffectedFileOrDtsErrors(\n      writeFile2,\n      cancellationToken,\n      emitOnlyDtsFiles,\n      customTransformers,\n      /*isForDtsErrors*/\n      false\n    );\n  }\n  function getWriteFileCallback(writeFile2, customTransformers) {\n    Debug.assert(isBuilderProgramStateWithDefinedProgram(state));\n    if (!getEmitDeclarations(state.compilerOptions)) return writeFile2 || maybeBind(host, host.writeFile);\n    return (fileName, text, writeByteOrderMark, onError, sourceFiles, data) => {\n      var _a, _b, _c;\n      if (isDeclarationFileName(fileName)) {\n        if (!state.compilerOptions.outFile) {\n          Debug.assert((sourceFiles == null ? void 0 : sourceFiles.length) === 1);\n          let emitSignature;\n          if (!customTransformers) {\n            const file = sourceFiles[0];\n            const info = state.fileInfos.get(file.resolvedPath);\n            if (info.signature === file.version) {\n              const signature = computeSignatureWithDiagnostics(\n                state.program,\n                file,\n                text,\n                host,\n                data\n              );\n              if (!((_a = data == null ? void 0 : data.diagnostics) == null ? void 0 : _a.length)) emitSignature = signature;\n              if (signature !== file.version) {\n                if (host.storeSignatureInfo) (state.signatureInfo ?? (state.signatureInfo = /* @__PURE__ */ new Map())).set(file.resolvedPath, 1 /* StoredSignatureAtEmit */);\n                if (state.affectedFiles) {\n                  const existing = (_b = state.oldSignatures) == null ? void 0 : _b.get(file.resolvedPath);\n                  if (existing === void 0) (state.oldSignatures ?? (state.oldSignatures = /* @__PURE__ */ new Map())).set(file.resolvedPath, info.signature || false);\n                  info.signature = signature;\n                } else {\n                  info.signature = signature;\n                }\n              }\n            }\n          }\n          if (state.compilerOptions.composite) {\n            const filePath = sourceFiles[0].resolvedPath;\n            emitSignature = handleNewSignature((_c = state.emitSignatures) == null ? void 0 : _c.get(filePath), emitSignature);\n            if (!emitSignature) return data.skippedDtsWrite = true;\n            (state.emitSignatures ?? (state.emitSignatures = /* @__PURE__ */ new Map())).set(filePath, emitSignature);\n          }\n        } else if (state.compilerOptions.composite) {\n          const newSignature = handleNewSignature(\n            state.outSignature,\n            /*newSignature*/\n            void 0\n          );\n          if (!newSignature) return data.skippedDtsWrite = true;\n          state.outSignature = newSignature;\n        }\n      }\n      if (writeFile2) writeFile2(fileName, text, writeByteOrderMark, onError, sourceFiles, data);\n      else if (host.writeFile) host.writeFile(fileName, text, writeByteOrderMark, onError, sourceFiles, data);\n      else state.program.writeFile(fileName, text, writeByteOrderMark, onError, sourceFiles, data);\n      function handleNewSignature(oldSignatureFormat, newSignature) {\n        const oldSignature = !oldSignatureFormat || isString(oldSignatureFormat) ? oldSignatureFormat : oldSignatureFormat[0];\n        newSignature ?? (newSignature = computeSignature(text, host, data));\n        if (newSignature === oldSignature) {\n          if (oldSignatureFormat === oldSignature) return void 0;\n          else if (data) data.differsOnlyInMap = true;\n          else data = { differsOnlyInMap: true };\n        } else {\n          state.hasChangedEmitSignature = true;\n          state.latestChangedDtsFile = fileName;\n        }\n        return newSignature;\n      }\n    };\n  }\n  function emit(targetSourceFile, writeFile2, cancellationToken, emitOnlyDtsFiles, customTransformers) {\n    Debug.assert(isBuilderProgramStateWithDefinedProgram(state));\n    if (kind === 1 /* EmitAndSemanticDiagnosticsBuilderProgram */) {\n      assertSourceFileOkWithoutNextAffectedCall(state, targetSourceFile);\n    }\n    const result = handleNoEmitOptions(builderProgram, targetSourceFile, writeFile2, cancellationToken);\n    if (result) return result;\n    if (!targetSourceFile) {\n      if (kind === 1 /* EmitAndSemanticDiagnosticsBuilderProgram */) {\n        let sourceMaps = [];\n        let emitSkipped = false;\n        let diagnostics;\n        let emittedFiles = [];\n        let affectedEmitResult;\n        while (affectedEmitResult = emitNextAffectedFile(\n          writeFile2,\n          cancellationToken,\n          emitOnlyDtsFiles,\n          customTransformers\n        )) {\n          emitSkipped = emitSkipped || affectedEmitResult.result.emitSkipped;\n          diagnostics = addRange(diagnostics, affectedEmitResult.result.diagnostics);\n          emittedFiles = addRange(emittedFiles, affectedEmitResult.result.emittedFiles);\n          sourceMaps = addRange(sourceMaps, affectedEmitResult.result.sourceMaps);\n        }\n        return {\n          emitSkipped,\n          diagnostics: diagnostics || emptyArray,\n          emittedFiles,\n          sourceMaps\n        };\n      } else {\n        clearAffectedFilesPendingEmit(\n          state,\n          emitOnlyDtsFiles,\n          /*isForDtsErrors*/\n          false\n        );\n      }\n    }\n    const emitResult = state.program.emit(\n      targetSourceFile,\n      getWriteFileCallback(writeFile2, customTransformers),\n      cancellationToken,\n      emitOnlyDtsFiles,\n      customTransformers\n    );\n    handleNonEmitBuilderWithEmitOrDtsErrors(\n      targetSourceFile,\n      emitOnlyDtsFiles,\n      /*isForDtsErrors*/\n      false,\n      emitResult.diagnostics\n    );\n    return emitResult;\n  }\n  function handleNonEmitBuilderWithEmitOrDtsErrors(targetSourceFile, emitOnlyDtsFiles, isForDtsErrors, diagnostics) {\n    if (!targetSourceFile && kind !== 1 /* EmitAndSemanticDiagnosticsBuilderProgram */) {\n      clearAffectedFilesPendingEmit(state, emitOnlyDtsFiles, isForDtsErrors);\n      setEmitDiagnosticsPerFile(diagnostics);\n    }\n  }\n  function getDeclarationDiagnostics2(sourceFile, cancellationToken) {\n    var _a;\n    Debug.assert(isBuilderProgramStateWithDefinedProgram(state));\n    if (kind === 1 /* EmitAndSemanticDiagnosticsBuilderProgram */) {\n      assertSourceFileOkWithoutNextAffectedCall(state, sourceFile);\n      let affectedEmitResult;\n      let diagnostics;\n      while (affectedEmitResult = emitNextAffectedFileOrDtsErrors(\n        /*writeFile*/\n        void 0,\n        cancellationToken,\n        /*emitOnlyDtsFiles*/\n        void 0,\n        /*customTransformers*/\n        void 0,\n        /*isForDtsErrors*/\n        true\n      )) {\n        if (!sourceFile) diagnostics = addRange(diagnostics, affectedEmitResult.result.diagnostics);\n      }\n      return (!sourceFile ? diagnostics : (_a = state.emitDiagnosticsPerFile) == null ? void 0 : _a.get(sourceFile.resolvedPath)) || emptyArray;\n    } else {\n      const result = state.program.getDeclarationDiagnostics(sourceFile, cancellationToken);\n      handleNonEmitBuilderWithEmitOrDtsErrors(\n        sourceFile,\n        /*emitOnlyDtsFiles*/\n        void 0,\n        /*isForDtsErrors*/\n        true,\n        result\n      );\n      return result;\n    }\n  }\n  function getSemanticDiagnosticsOfNextAffectedFile(cancellationToken, ignoreSourceFile) {\n    Debug.assert(isBuilderProgramStateWithDefinedProgram(state));\n    while (true) {\n      const affected = getNextAffectedFile(state, cancellationToken, host);\n      let result;\n      if (!affected) {\n        if (state.checkPending && !state.compilerOptions.noCheck) {\n          state.checkPending = void 0;\n          state.buildInfoEmitPending = true;\n        }\n        return void 0;\n      } else if (affected !== state.program) {\n        const affectedSourceFile = affected;\n        if (!ignoreSourceFile || !ignoreSourceFile(affectedSourceFile)) {\n          result = getSemanticDiagnosticsOfFile(state, affectedSourceFile, cancellationToken);\n        }\n        state.seenAffectedFiles.add(affectedSourceFile.resolvedPath);\n        state.affectedFilesIndex++;\n        state.buildInfoEmitPending = true;\n        if (!result) continue;\n      } else {\n        let diagnostics;\n        const semanticDiagnosticsPerFile = /* @__PURE__ */ new Map();\n        state.program.getSourceFiles().forEach(\n          (sourceFile) => diagnostics = addRange(\n            diagnostics,\n            getSemanticDiagnosticsOfFile(\n              state,\n              sourceFile,\n              cancellationToken,\n              semanticDiagnosticsPerFile\n            )\n          )\n        );\n        state.semanticDiagnosticsPerFile = semanticDiagnosticsPerFile;\n        result = diagnostics || emptyArray;\n        state.changedFilesSet.clear();\n        state.programEmitPending = getBuilderFileEmit(state.compilerOptions);\n        if (!state.compilerOptions.noCheck) state.checkPending = void 0;\n        state.buildInfoEmitPending = true;\n      }\n      return { result, affected };\n    }\n  }\n  function getSemanticDiagnostics(sourceFile, cancellationToken) {\n    Debug.assert(isBuilderProgramStateWithDefinedProgram(state));\n    assertSourceFileOkWithoutNextAffectedCall(state, sourceFile);\n    if (sourceFile) {\n      return getSemanticDiagnosticsOfFile(state, sourceFile, cancellationToken);\n    }\n    while (true) {\n      const affectedResult = getSemanticDiagnosticsOfNextAffectedFile(cancellationToken);\n      if (!affectedResult) break;\n      if (affectedResult.affected === state.program) return affectedResult.result;\n    }\n    let diagnostics;\n    for (const sourceFile2 of state.program.getSourceFiles()) {\n      diagnostics = addRange(diagnostics, getSemanticDiagnosticsOfFile(state, sourceFile2, cancellationToken));\n    }\n    if (state.checkPending && !state.compilerOptions.noCheck) {\n      state.checkPending = void 0;\n      state.buildInfoEmitPending = true;\n    }\n    return diagnostics || emptyArray;\n  }\n}\nfunction addToAffectedFilesPendingEmit(state, affectedFilePendingEmit, kind) {\n  var _a, _b;\n  const existingKind = ((_a = state.affectedFilesPendingEmit) == null ? void 0 : _a.get(affectedFilePendingEmit)) || 0 /* None */;\n  (state.affectedFilesPendingEmit ?? (state.affectedFilesPendingEmit = /* @__PURE__ */ new Map())).set(affectedFilePendingEmit, existingKind | kind);\n  (_b = state.emitDiagnosticsPerFile) == null ? void 0 : _b.delete(affectedFilePendingEmit);\n}\nfunction toBuilderStateFileInfoForMultiEmit(fileInfo) {\n  return isString(fileInfo) ? { version: fileInfo, signature: fileInfo, affectsGlobalScope: void 0, impliedFormat: void 0 } : isString(fileInfo.signature) ? fileInfo : { version: fileInfo.version, signature: fileInfo.signature === false ? void 0 : fileInfo.version, affectsGlobalScope: fileInfo.affectsGlobalScope, impliedFormat: fileInfo.impliedFormat };\n}\nfunction toBuilderFileEmit(value, fullEmitForOptions) {\n  return isNumber(value) ? fullEmitForOptions : value[1] || 24 /* Dts */;\n}\nfunction toProgramEmitPending(value, options) {\n  return !value ? getBuilderFileEmit(options || {}) : value;\n}\nfunction createBuilderProgramUsingIncrementalBuildInfo(buildInfo, buildInfoPath, host) {\n  var _a, _b, _c, _d;\n  const buildInfoDirectory = getDirectoryPath(getNormalizedAbsolutePath(buildInfoPath, host.getCurrentDirectory()));\n  const getCanonicalFileName = createGetCanonicalFileName(host.useCaseSensitiveFileNames());\n  let state;\n  const filePaths = (_a = buildInfo.fileNames) == null ? void 0 : _a.map(toPathInBuildInfoDirectory);\n  let filePathsSetList;\n  const latestChangedDtsFile = buildInfo.latestChangedDtsFile ? toAbsolutePath(buildInfo.latestChangedDtsFile) : void 0;\n  const fileInfos = /* @__PURE__ */ new Map();\n  const changedFilesSet = new Set(map(buildInfo.changeFileSet, toFilePath));\n  if (isIncrementalBundleEmitBuildInfo(buildInfo)) {\n    buildInfo.fileInfos.forEach((fileInfo, index) => {\n      const path = toFilePath(index + 1);\n      fileInfos.set(path, isString(fileInfo) ? { version: fileInfo, signature: void 0, affectsGlobalScope: void 0, impliedFormat: void 0 } : fileInfo);\n    });\n    state = {\n      fileInfos,\n      compilerOptions: buildInfo.options ? convertToOptionsWithAbsolutePaths(buildInfo.options, toAbsolutePath) : {},\n      semanticDiagnosticsPerFile: toPerFileSemanticDiagnostics(buildInfo.semanticDiagnosticsPerFile),\n      emitDiagnosticsPerFile: toPerFileEmitDiagnostics(buildInfo.emitDiagnosticsPerFile),\n      hasReusableDiagnostic: true,\n      changedFilesSet,\n      latestChangedDtsFile,\n      outSignature: buildInfo.outSignature,\n      programEmitPending: buildInfo.pendingEmit === void 0 ? void 0 : toProgramEmitPending(buildInfo.pendingEmit, buildInfo.options),\n      hasErrors: buildInfo.errors,\n      checkPending: buildInfo.checkPending\n    };\n  } else {\n    filePathsSetList = (_b = buildInfo.fileIdsList) == null ? void 0 : _b.map((fileIds) => new Set(fileIds.map(toFilePath)));\n    const emitSignatures = ((_c = buildInfo.options) == null ? void 0 : _c.composite) && !buildInfo.options.outFile ? /* @__PURE__ */ new Map() : void 0;\n    buildInfo.fileInfos.forEach((fileInfo, index) => {\n      const path = toFilePath(index + 1);\n      const stateFileInfo = toBuilderStateFileInfoForMultiEmit(fileInfo);\n      fileInfos.set(path, stateFileInfo);\n      if (emitSignatures && stateFileInfo.signature) emitSignatures.set(path, stateFileInfo.signature);\n    });\n    (_d = buildInfo.emitSignatures) == null ? void 0 : _d.forEach((value) => {\n      if (isNumber(value)) emitSignatures.delete(toFilePath(value));\n      else {\n        const key = toFilePath(value[0]);\n        emitSignatures.set(\n          key,\n          !isString(value[1]) && !value[1].length ? (\n            // File signature is emit signature but differs in map\n            [emitSignatures.get(key)]\n          ) : value[1]\n        );\n      }\n    });\n    const fullEmitForOptions = buildInfo.affectedFilesPendingEmit ? getBuilderFileEmit(buildInfo.options || {}) : void 0;\n    state = {\n      fileInfos,\n      compilerOptions: buildInfo.options ? convertToOptionsWithAbsolutePaths(buildInfo.options, toAbsolutePath) : {},\n      referencedMap: toManyToManyPathMap(buildInfo.referencedMap, buildInfo.options ?? {}),\n      semanticDiagnosticsPerFile: toPerFileSemanticDiagnostics(buildInfo.semanticDiagnosticsPerFile),\n      emitDiagnosticsPerFile: toPerFileEmitDiagnostics(buildInfo.emitDiagnosticsPerFile),\n      hasReusableDiagnostic: true,\n      changedFilesSet,\n      affectedFilesPendingEmit: buildInfo.affectedFilesPendingEmit && arrayToMap(buildInfo.affectedFilesPendingEmit, (value) => toFilePath(isNumber(value) ? value : value[0]), (value) => toBuilderFileEmit(value, fullEmitForOptions)),\n      latestChangedDtsFile,\n      emitSignatures: (emitSignatures == null ? void 0 : emitSignatures.size) ? emitSignatures : void 0,\n      hasErrors: buildInfo.errors,\n      checkPending: buildInfo.checkPending\n    };\n  }\n  return {\n    state,\n    getProgram: notImplemented,\n    getProgramOrUndefined: returnUndefined,\n    releaseProgram: noop,\n    getCompilerOptions: () => state.compilerOptions,\n    getSourceFile: notImplemented,\n    getSourceFiles: notImplemented,\n    getOptionsDiagnostics: notImplemented,\n    getGlobalDiagnostics: notImplemented,\n    getConfigFileParsingDiagnostics: notImplemented,\n    getSyntacticDiagnostics: notImplemented,\n    getDeclarationDiagnostics: notImplemented,\n    getSemanticDiagnostics: notImplemented,\n    emit: notImplemented,\n    getAllDependencies: notImplemented,\n    getCurrentDirectory: notImplemented,\n    emitNextAffectedFile: notImplemented,\n    getSemanticDiagnosticsOfNextAffectedFile: notImplemented,\n    emitBuildInfo: notImplemented,\n    close: noop,\n    hasChangedEmitSignature: returnFalse\n  };\n  function toPathInBuildInfoDirectory(path) {\n    return toPath(path, buildInfoDirectory, getCanonicalFileName);\n  }\n  function toAbsolutePath(path) {\n    return getNormalizedAbsolutePath(path, buildInfoDirectory);\n  }\n  function toFilePath(fileId) {\n    return filePaths[fileId - 1];\n  }\n  function toFilePathsSet(fileIdsListId) {\n    return filePathsSetList[fileIdsListId - 1];\n  }\n  function toManyToManyPathMap(referenceMap, options) {\n    const map2 = BuilderState.createReferencedMap(options);\n    if (!map2 || !referenceMap) return map2;\n    referenceMap.forEach(([fileId, fileIdListId]) => map2.set(toFilePath(fileId), toFilePathsSet(fileIdListId)));\n    return map2;\n  }\n  function toPerFileSemanticDiagnostics(diagnostics) {\n    const semanticDiagnostics = new Map(\n      mapDefinedIterator(\n        fileInfos.keys(),\n        (key) => !changedFilesSet.has(key) ? [key, emptyArray] : void 0\n      )\n    );\n    diagnostics == null ? void 0 : diagnostics.forEach((value) => {\n      if (isNumber(value)) semanticDiagnostics.delete(toFilePath(value));\n      else semanticDiagnostics.set(toFilePath(value[0]), value[1]);\n    });\n    return semanticDiagnostics;\n  }\n  function toPerFileEmitDiagnostics(diagnostics) {\n    return diagnostics && arrayToMap(diagnostics, (value) => toFilePath(value[0]), (value) => value[1]);\n  }\n}\nfunction getBuildInfoFileVersionMap(program, buildInfoPath, host) {\n  const buildInfoDirectory = getDirectoryPath(getNormalizedAbsolutePath(buildInfoPath, host.getCurrentDirectory()));\n  const getCanonicalFileName = createGetCanonicalFileName(host.useCaseSensitiveFileNames());\n  const fileInfos = /* @__PURE__ */ new Map();\n  let rootIndex = 0;\n  const roots = /* @__PURE__ */ new Map();\n  const resolvedRoots = new Map(program.resolvedRoot);\n  program.fileInfos.forEach((fileInfo, index) => {\n    const path = toPath(program.fileNames[index], buildInfoDirectory, getCanonicalFileName);\n    const version2 = isString(fileInfo) ? fileInfo : fileInfo.version;\n    fileInfos.set(path, version2);\n    if (rootIndex < program.root.length) {\n      const current = program.root[rootIndex];\n      const fileId = index + 1;\n      if (isArray(current)) {\n        if (current[0] <= fileId && fileId <= current[1]) {\n          addRoot(fileId, path);\n          if (current[1] === fileId) rootIndex++;\n        }\n      } else if (current === fileId) {\n        addRoot(fileId, path);\n        rootIndex++;\n      }\n    }\n  });\n  return { fileInfos, roots };\n  function addRoot(fileId, path) {\n    const root = resolvedRoots.get(fileId);\n    if (root) {\n      roots.set(toPath(program.fileNames[root - 1], buildInfoDirectory, getCanonicalFileName), path);\n    } else {\n      roots.set(path, void 0);\n    }\n  }\n}\nfunction getNonIncrementalBuildInfoRoots(buildInfo, buildInfoPath, host) {\n  if (!isNonIncrementalBuildInfo(buildInfo)) return void 0;\n  const buildInfoDirectory = getDirectoryPath(getNormalizedAbsolutePath(buildInfoPath, host.getCurrentDirectory()));\n  const getCanonicalFileName = createGetCanonicalFileName(host.useCaseSensitiveFileNames());\n  return buildInfo.root.map((r) => toPath(r, buildInfoDirectory, getCanonicalFileName));\n}\nfunction createRedirectedBuilderProgram(state, configFileParsingDiagnostics) {\n  return {\n    state: void 0,\n    getProgram,\n    getProgramOrUndefined: () => state.program,\n    releaseProgram: () => state.program = void 0,\n    getCompilerOptions: () => state.compilerOptions,\n    getSourceFile: (fileName) => getProgram().getSourceFile(fileName),\n    getSourceFiles: () => getProgram().getSourceFiles(),\n    getOptionsDiagnostics: (cancellationToken) => getProgram().getOptionsDiagnostics(cancellationToken),\n    getGlobalDiagnostics: (cancellationToken) => getProgram().getGlobalDiagnostics(cancellationToken),\n    getConfigFileParsingDiagnostics: () => configFileParsingDiagnostics,\n    getSyntacticDiagnostics: (sourceFile, cancellationToken) => getProgram().getSyntacticDiagnostics(sourceFile, cancellationToken),\n    getDeclarationDiagnostics: (sourceFile, cancellationToken) => getProgram().getDeclarationDiagnostics(sourceFile, cancellationToken),\n    getSemanticDiagnostics: (sourceFile, cancellationToken) => getProgram().getSemanticDiagnostics(sourceFile, cancellationToken),\n    emit: (sourceFile, writeFile2, cancellationToken, emitOnlyDts, customTransformers) => getProgram().emit(sourceFile, writeFile2, cancellationToken, emitOnlyDts, customTransformers),\n    emitBuildInfo: (writeFile2, cancellationToken) => getProgram().emitBuildInfo(writeFile2, cancellationToken),\n    getAllDependencies: notImplemented,\n    getCurrentDirectory: () => getProgram().getCurrentDirectory(),\n    close: noop\n  };\n  function getProgram() {\n    return Debug.checkDefined(state.program);\n  }\n}\n\n// src/compiler/builderPublic.ts\nfunction createSemanticDiagnosticsBuilderProgram(newProgramOrRootNames, hostOrOptions, oldProgramOrHost, configFileParsingDiagnosticsOrOldProgram, configFileParsingDiagnostics, projectReferences) {\n  return createBuilderProgram(\n    0 /* SemanticDiagnosticsBuilderProgram */,\n    getBuilderCreationParameters(\n      newProgramOrRootNames,\n      hostOrOptions,\n      oldProgramOrHost,\n      configFileParsingDiagnosticsOrOldProgram,\n      configFileParsingDiagnostics,\n      projectReferences\n    )\n  );\n}\nfunction createEmitAndSemanticDiagnosticsBuilderProgram(newProgramOrRootNames, hostOrOptions, oldProgramOrHost, configFileParsingDiagnosticsOrOldProgram, configFileParsingDiagnostics, projectReferences) {\n  return createBuilderProgram(\n    1 /* EmitAndSemanticDiagnosticsBuilderProgram */,\n    getBuilderCreationParameters(\n      newProgramOrRootNames,\n      hostOrOptions,\n      oldProgramOrHost,\n      configFileParsingDiagnosticsOrOldProgram,\n      configFileParsingDiagnostics,\n      projectReferences\n    )\n  );\n}\nfunction createAbstractBuilder(newProgramOrRootNames, hostOrOptions, oldProgramOrHost, configFileParsingDiagnosticsOrOldProgram, configFileParsingDiagnostics, projectReferences) {\n  const { newProgram, configFileParsingDiagnostics: newConfigFileParsingDiagnostics } = getBuilderCreationParameters(\n    newProgramOrRootNames,\n    hostOrOptions,\n    oldProgramOrHost,\n    configFileParsingDiagnosticsOrOldProgram,\n    configFileParsingDiagnostics,\n    projectReferences\n  );\n  return createRedirectedBuilderProgram(\n    { program: newProgram, compilerOptions: newProgram.getCompilerOptions() },\n    newConfigFileParsingDiagnostics\n  );\n}\n\n// src/compiler/resolutionCache.ts\nfunction removeIgnoredPath(path) {\n  if (endsWith(path, \"/node_modules/.staging\")) {\n    return removeSuffix(path, \"/.staging\");\n  }\n  return some(ignoredPaths, (searchPath) => path.includes(searchPath)) ? void 0 : path;\n}\nfunction perceivedOsRootLengthForWatching(pathComponents2, length2) {\n  if (length2 <= 1) return 1;\n  let indexAfterOsRoot = 1;\n  let isDosStyle = pathComponents2[0].search(/[a-z]:/i) === 0;\n  if (pathComponents2[0] !== directorySeparator && !isDosStyle && // Non dos style paths\n  pathComponents2[1].search(/[a-z]\\$$/i) === 0) {\n    if (length2 === 2) return 2;\n    indexAfterOsRoot = 2;\n    isDosStyle = true;\n  }\n  if (isDosStyle && !pathComponents2[indexAfterOsRoot].match(/^users$/i)) {\n    return indexAfterOsRoot;\n  }\n  if (pathComponents2[indexAfterOsRoot].match(/^workspaces$/i)) {\n    return indexAfterOsRoot + 1;\n  }\n  return indexAfterOsRoot + 2;\n}\nfunction canWatchDirectoryOrFile(pathComponents2, length2) {\n  if (length2 === void 0) length2 = pathComponents2.length;\n  if (length2 <= 2) return false;\n  const perceivedOsRootLength = perceivedOsRootLengthForWatching(pathComponents2, length2);\n  return length2 > perceivedOsRootLength + 1;\n}\nfunction canWatchDirectoryOrFilePath(path) {\n  return canWatchDirectoryOrFile(getPathComponents(path));\n}\nfunction canWatchAtTypes(atTypes) {\n  return canWatchAffectedPackageJsonOrNodeModulesOfAtTypes(getDirectoryPath(atTypes));\n}\nfunction isInDirectoryPath(dirComponents, fileOrDirComponents) {\n  if (fileOrDirComponents.length < dirComponents.length) return false;\n  for (let i = 0; i < dirComponents.length; i++) {\n    if (fileOrDirComponents[i] !== dirComponents[i]) return false;\n  }\n  return true;\n}\nfunction canWatchAffectedPackageJsonOrNodeModulesOfAtTypes(fileOrDirPath) {\n  return canWatchDirectoryOrFilePath(fileOrDirPath);\n}\nfunction canWatchAffectingLocation(filePath) {\n  return canWatchAffectedPackageJsonOrNodeModulesOfAtTypes(filePath);\n}\nfunction getDirectoryToWatchFailedLookupLocation(failedLookupLocation, failedLookupLocationPath, rootDir, rootPath, rootPathComponents, isRootWatchable, getCurrentDirectory, preferNonRecursiveWatch) {\n  const failedLookupPathComponents = getPathComponents(failedLookupLocationPath);\n  failedLookupLocation = isRootedDiskPath(failedLookupLocation) ? normalizePath(failedLookupLocation) : getNormalizedAbsolutePath(failedLookupLocation, getCurrentDirectory());\n  const failedLookupComponents = getPathComponents(failedLookupLocation);\n  const perceivedOsRootLength = perceivedOsRootLengthForWatching(failedLookupPathComponents, failedLookupPathComponents.length);\n  if (failedLookupPathComponents.length <= perceivedOsRootLength + 1) return void 0;\n  const nodeModulesIndex = failedLookupPathComponents.indexOf(\"node_modules\");\n  if (nodeModulesIndex !== -1 && nodeModulesIndex + 1 <= perceivedOsRootLength + 1) return void 0;\n  const lastNodeModulesIndex = failedLookupPathComponents.lastIndexOf(\"node_modules\");\n  if (isRootWatchable && isInDirectoryPath(rootPathComponents, failedLookupPathComponents)) {\n    if (failedLookupPathComponents.length > rootPathComponents.length + 1) {\n      return getDirectoryOfFailedLookupWatch(\n        failedLookupComponents,\n        failedLookupPathComponents,\n        Math.max(rootPathComponents.length + 1, perceivedOsRootLength + 1),\n        lastNodeModulesIndex\n      );\n    } else {\n      return {\n        dir: rootDir,\n        dirPath: rootPath,\n        nonRecursive: true\n      };\n    }\n  }\n  return getDirectoryToWatchFromFailedLookupLocationDirectory(\n    failedLookupComponents,\n    failedLookupPathComponents,\n    failedLookupPathComponents.length - 1,\n    perceivedOsRootLength,\n    nodeModulesIndex,\n    rootPathComponents,\n    lastNodeModulesIndex,\n    preferNonRecursiveWatch\n  );\n}\nfunction getDirectoryToWatchFromFailedLookupLocationDirectory(dirComponents, dirPathComponents, dirPathComponentsLength, perceivedOsRootLength, nodeModulesIndex, rootPathComponents, lastNodeModulesIndex, preferNonRecursiveWatch) {\n  if (nodeModulesIndex !== -1) {\n    return getDirectoryOfFailedLookupWatch(\n      dirComponents,\n      dirPathComponents,\n      nodeModulesIndex + 1,\n      lastNodeModulesIndex\n    );\n  }\n  let nonRecursive = true;\n  let length2 = dirPathComponentsLength;\n  if (!preferNonRecursiveWatch) {\n    for (let i = 0; i < dirPathComponentsLength; i++) {\n      if (dirPathComponents[i] !== rootPathComponents[i]) {\n        nonRecursive = false;\n        length2 = Math.max(i + 1, perceivedOsRootLength + 1);\n        break;\n      }\n    }\n  }\n  return getDirectoryOfFailedLookupWatch(\n    dirComponents,\n    dirPathComponents,\n    length2,\n    lastNodeModulesIndex,\n    nonRecursive\n  );\n}\nfunction getDirectoryOfFailedLookupWatch(dirComponents, dirPathComponents, length2, lastNodeModulesIndex, nonRecursive) {\n  let packageDirLength;\n  if (lastNodeModulesIndex !== -1 && lastNodeModulesIndex + 1 >= length2 && lastNodeModulesIndex + 2 < dirPathComponents.length) {\n    if (!startsWith(dirPathComponents[lastNodeModulesIndex + 1], \"@\")) {\n      packageDirLength = lastNodeModulesIndex + 2;\n    } else if (lastNodeModulesIndex + 3 < dirPathComponents.length) {\n      packageDirLength = lastNodeModulesIndex + 3;\n    }\n  }\n  return {\n    dir: getPathFromPathComponents(dirComponents, length2),\n    dirPath: getPathFromPathComponents(dirPathComponents, length2),\n    nonRecursive,\n    packageDir: packageDirLength !== void 0 ? getPathFromPathComponents(dirComponents, packageDirLength) : void 0,\n    packageDirPath: packageDirLength !== void 0 ? getPathFromPathComponents(dirPathComponents, packageDirLength) : void 0\n  };\n}\nfunction getDirectoryToWatchFailedLookupLocationFromTypeRoot(typeRoot, typeRootPath, rootPath, rootPathComponents, isRootWatchable, getCurrentDirectory, preferNonRecursiveWatch, filterCustomPath) {\n  const typeRootPathComponents = getPathComponents(typeRootPath);\n  if (isRootWatchable && isInDirectoryPath(rootPathComponents, typeRootPathComponents)) {\n    return rootPath;\n  }\n  typeRoot = isRootedDiskPath(typeRoot) ? normalizePath(typeRoot) : getNormalizedAbsolutePath(typeRoot, getCurrentDirectory());\n  const toWatch = getDirectoryToWatchFromFailedLookupLocationDirectory(\n    getPathComponents(typeRoot),\n    typeRootPathComponents,\n    typeRootPathComponents.length,\n    perceivedOsRootLengthForWatching(typeRootPathComponents, typeRootPathComponents.length),\n    typeRootPathComponents.indexOf(\"node_modules\"),\n    rootPathComponents,\n    typeRootPathComponents.lastIndexOf(\"node_modules\"),\n    preferNonRecursiveWatch\n  );\n  return toWatch && filterCustomPath(toWatch.dirPath) ? toWatch.dirPath : void 0;\n}\nfunction getRootDirectoryOfResolutionCache(rootDirForResolution, getCurrentDirectory) {\n  const normalized = getNormalizedAbsolutePath(rootDirForResolution, getCurrentDirectory());\n  return !isDiskPathRoot(normalized) ? removeTrailingDirectorySeparator(normalized) : normalized;\n}\nfunction getModuleResolutionHost(resolutionHost) {\n  var _a;\n  return ((_a = resolutionHost.getCompilerHost) == null ? void 0 : _a.call(resolutionHost)) || resolutionHost;\n}\nfunction createModuleResolutionLoaderUsingGlobalCache(containingFile, redirectedReference, options, resolutionHost, moduleResolutionCache) {\n  return {\n    nameAndMode: moduleResolutionNameAndModeGetter,\n    resolve: (moduleName, resoluionMode) => resolveModuleNameUsingGlobalCache(\n      resolutionHost,\n      moduleResolutionCache,\n      moduleName,\n      containingFile,\n      options,\n      redirectedReference,\n      resoluionMode\n    )\n  };\n}\nfunction resolveModuleNameUsingGlobalCache(resolutionHost, moduleResolutionCache, moduleName, containingFile, compilerOptions, redirectedReference, mode) {\n  const host = getModuleResolutionHost(resolutionHost);\n  const primaryResult = resolveModuleName(moduleName, containingFile, compilerOptions, host, moduleResolutionCache, redirectedReference, mode);\n  if (!resolutionHost.getGlobalTypingsCacheLocation) {\n    return primaryResult;\n  }\n  const globalCache = resolutionHost.getGlobalTypingsCacheLocation();\n  if (globalCache !== void 0 && !isExternalModuleNameRelative(moduleName) && !(primaryResult.resolvedModule && extensionIsTS(primaryResult.resolvedModule.extension))) {\n    const { resolvedModule, failedLookupLocations, affectingLocations, resolutionDiagnostics } = loadModuleFromGlobalCache(\n      Debug.checkDefined(resolutionHost.globalCacheResolutionModuleName)(moduleName),\n      resolutionHost.projectName,\n      compilerOptions,\n      host,\n      globalCache,\n      moduleResolutionCache\n    );\n    if (resolvedModule) {\n      primaryResult.resolvedModule = resolvedModule;\n      primaryResult.failedLookupLocations = updateResolutionField(primaryResult.failedLookupLocations, failedLookupLocations);\n      primaryResult.affectingLocations = updateResolutionField(primaryResult.affectingLocations, affectingLocations);\n      primaryResult.resolutionDiagnostics = updateResolutionField(primaryResult.resolutionDiagnostics, resolutionDiagnostics);\n      return primaryResult;\n    }\n  }\n  return primaryResult;\n}\nfunction createResolutionCache(resolutionHost, rootDirForResolution, logChangesWhenResolvingModule) {\n  let filesWithChangedSetOfUnresolvedImports;\n  let filesWithInvalidatedResolutions;\n  let filesWithInvalidatedNonRelativeUnresolvedImports;\n  const nonRelativeExternalModuleResolutions = /* @__PURE__ */ new Set();\n  const resolutionsWithFailedLookups = /* @__PURE__ */ new Set();\n  const resolutionsWithOnlyAffectingLocations = /* @__PURE__ */ new Set();\n  const resolvedFileToResolution = /* @__PURE__ */ new Map();\n  const impliedFormatPackageJsons = /* @__PURE__ */ new Map();\n  let hasChangedAutomaticTypeDirectiveNames = false;\n  let affectingPathChecksForFile;\n  let affectingPathChecks;\n  let failedLookupChecks;\n  let startsWithPathChecks;\n  let isInDirectoryChecks;\n  let allModuleAndTypeResolutionsAreInvalidated = false;\n  const getCurrentDirectory = memoize(() => resolutionHost.getCurrentDirectory());\n  const cachedDirectoryStructureHost = resolutionHost.getCachedDirectoryStructureHost();\n  const resolvedModuleNames = /* @__PURE__ */ new Map();\n  const moduleResolutionCache = createModuleResolutionCache(\n    getCurrentDirectory(),\n    resolutionHost.getCanonicalFileName,\n    resolutionHost.getCompilationSettings()\n  );\n  const resolvedTypeReferenceDirectives = /* @__PURE__ */ new Map();\n  const typeReferenceDirectiveResolutionCache = createTypeReferenceDirectiveResolutionCache(\n    getCurrentDirectory(),\n    resolutionHost.getCanonicalFileName,\n    resolutionHost.getCompilationSettings(),\n    moduleResolutionCache.getPackageJsonInfoCache(),\n    moduleResolutionCache.optionsToRedirectsKey\n  );\n  const resolvedLibraries = /* @__PURE__ */ new Map();\n  const libraryResolutionCache = createModuleResolutionCache(\n    getCurrentDirectory(),\n    resolutionHost.getCanonicalFileName,\n    getOptionsForLibraryResolution(resolutionHost.getCompilationSettings()),\n    moduleResolutionCache.getPackageJsonInfoCache()\n  );\n  const directoryWatchesOfFailedLookups = /* @__PURE__ */ new Map();\n  const fileWatchesOfAffectingLocations = /* @__PURE__ */ new Map();\n  const rootDir = getRootDirectoryOfResolutionCache(rootDirForResolution, getCurrentDirectory);\n  const rootPath = resolutionHost.toPath(rootDir);\n  const rootPathComponents = getPathComponents(rootPath);\n  const isRootWatchable = canWatchDirectoryOrFile(rootPathComponents);\n  const isSymlinkCache = /* @__PURE__ */ new Map();\n  const packageDirWatchers = /* @__PURE__ */ new Map();\n  const dirPathToSymlinkPackageRefCount = /* @__PURE__ */ new Map();\n  const typeRootsWatches = /* @__PURE__ */ new Map();\n  return {\n    rootDirForResolution,\n    resolvedModuleNames,\n    resolvedTypeReferenceDirectives,\n    resolvedLibraries,\n    resolvedFileToResolution,\n    resolutionsWithFailedLookups,\n    resolutionsWithOnlyAffectingLocations,\n    directoryWatchesOfFailedLookups,\n    fileWatchesOfAffectingLocations,\n    packageDirWatchers,\n    dirPathToSymlinkPackageRefCount,\n    watchFailedLookupLocationsOfExternalModuleResolutions,\n    getModuleResolutionCache: () => moduleResolutionCache,\n    startRecordingFilesWithChangedResolutions,\n    finishRecordingFilesWithChangedResolutions,\n    // perDirectoryResolvedModuleNames and perDirectoryResolvedTypeReferenceDirectives could be non empty if there was exception during program update\n    // (between startCachingPerDirectoryResolution and finishCachingPerDirectoryResolution)\n    startCachingPerDirectoryResolution,\n    finishCachingPerDirectoryResolution,\n    resolveModuleNameLiterals,\n    resolveTypeReferenceDirectiveReferences,\n    resolveLibrary: resolveLibrary2,\n    resolveSingleModuleNameWithoutWatching,\n    removeResolutionsFromProjectReferenceRedirects,\n    removeResolutionsOfFile,\n    hasChangedAutomaticTypeDirectiveNames: () => hasChangedAutomaticTypeDirectiveNames,\n    invalidateResolutionOfFile,\n    invalidateResolutionsOfFailedLookupLocations,\n    setFilesWithInvalidatedNonRelativeUnresolvedImports,\n    createHasInvalidatedResolutions,\n    isFileWithInvalidatedNonRelativeUnresolvedImports,\n    updateTypeRootsWatch,\n    closeTypeRootsWatch,\n    clear: clear2,\n    onChangesAffectModuleResolution\n  };\n  function clear2() {\n    clearMap(directoryWatchesOfFailedLookups, closeFileWatcherOf);\n    clearMap(fileWatchesOfAffectingLocations, closeFileWatcherOf);\n    isSymlinkCache.clear();\n    packageDirWatchers.clear();\n    dirPathToSymlinkPackageRefCount.clear();\n    nonRelativeExternalModuleResolutions.clear();\n    closeTypeRootsWatch();\n    resolvedModuleNames.clear();\n    resolvedTypeReferenceDirectives.clear();\n    resolvedFileToResolution.clear();\n    resolutionsWithFailedLookups.clear();\n    resolutionsWithOnlyAffectingLocations.clear();\n    failedLookupChecks = void 0;\n    startsWithPathChecks = void 0;\n    isInDirectoryChecks = void 0;\n    affectingPathChecks = void 0;\n    affectingPathChecksForFile = void 0;\n    allModuleAndTypeResolutionsAreInvalidated = false;\n    moduleResolutionCache.clear();\n    typeReferenceDirectiveResolutionCache.clear();\n    moduleResolutionCache.update(resolutionHost.getCompilationSettings());\n    typeReferenceDirectiveResolutionCache.update(resolutionHost.getCompilationSettings());\n    libraryResolutionCache.clear();\n    impliedFormatPackageJsons.clear();\n    resolvedLibraries.clear();\n    hasChangedAutomaticTypeDirectiveNames = false;\n  }\n  function onChangesAffectModuleResolution() {\n    allModuleAndTypeResolutionsAreInvalidated = true;\n    moduleResolutionCache.clearAllExceptPackageJsonInfoCache();\n    typeReferenceDirectiveResolutionCache.clearAllExceptPackageJsonInfoCache();\n    moduleResolutionCache.update(resolutionHost.getCompilationSettings());\n    typeReferenceDirectiveResolutionCache.update(resolutionHost.getCompilationSettings());\n  }\n  function startRecordingFilesWithChangedResolutions() {\n    filesWithChangedSetOfUnresolvedImports = [];\n  }\n  function finishRecordingFilesWithChangedResolutions() {\n    const collected = filesWithChangedSetOfUnresolvedImports;\n    filesWithChangedSetOfUnresolvedImports = void 0;\n    return collected;\n  }\n  function isFileWithInvalidatedNonRelativeUnresolvedImports(path) {\n    if (!filesWithInvalidatedNonRelativeUnresolvedImports) {\n      return false;\n    }\n    const value = filesWithInvalidatedNonRelativeUnresolvedImports.get(path);\n    return !!value && !!value.length;\n  }\n  function createHasInvalidatedResolutions(customHasInvalidatedResolutions, customHasInvalidatedLibResolutions) {\n    invalidateResolutionsOfFailedLookupLocations();\n    const collected = filesWithInvalidatedResolutions;\n    filesWithInvalidatedResolutions = void 0;\n    return {\n      hasInvalidatedResolutions: (path) => customHasInvalidatedResolutions(path) || allModuleAndTypeResolutionsAreInvalidated || !!(collected == null ? void 0 : collected.has(path)) || isFileWithInvalidatedNonRelativeUnresolvedImports(path),\n      hasInvalidatedLibResolutions: (libFileName) => {\n        var _a;\n        return customHasInvalidatedLibResolutions(libFileName) || !!((_a = resolvedLibraries == null ? void 0 : resolvedLibraries.get(libFileName)) == null ? void 0 : _a.isInvalidated);\n      }\n    };\n  }\n  function startCachingPerDirectoryResolution() {\n    moduleResolutionCache.isReadonly = void 0;\n    typeReferenceDirectiveResolutionCache.isReadonly = void 0;\n    libraryResolutionCache.isReadonly = void 0;\n    moduleResolutionCache.getPackageJsonInfoCache().isReadonly = void 0;\n    moduleResolutionCache.clearAllExceptPackageJsonInfoCache();\n    typeReferenceDirectiveResolutionCache.clearAllExceptPackageJsonInfoCache();\n    libraryResolutionCache.clearAllExceptPackageJsonInfoCache();\n    watchFailedLookupLocationOfNonRelativeModuleResolutions();\n    isSymlinkCache.clear();\n  }\n  function cleanupLibResolutionWatching(newProgram) {\n    resolvedLibraries.forEach((resolution, libFileName) => {\n      var _a;\n      if (!((_a = newProgram == null ? void 0 : newProgram.resolvedLibReferences) == null ? void 0 : _a.has(libFileName))) {\n        stopWatchFailedLookupLocationOfResolution(\n          resolution,\n          resolutionHost.toPath(getInferredLibraryNameResolveFrom(resolutionHost.getCompilationSettings(), getCurrentDirectory(), libFileName)),\n          getResolvedModuleFromResolution\n        );\n        resolvedLibraries.delete(libFileName);\n      }\n    });\n  }\n  function finishCachingPerDirectoryResolution(newProgram, oldProgram) {\n    filesWithInvalidatedNonRelativeUnresolvedImports = void 0;\n    allModuleAndTypeResolutionsAreInvalidated = false;\n    watchFailedLookupLocationOfNonRelativeModuleResolutions();\n    if (newProgram !== oldProgram) {\n      cleanupLibResolutionWatching(newProgram);\n      newProgram == null ? void 0 : newProgram.getSourceFiles().forEach((newFile) => {\n        var _a;\n        const expected = ((_a = newFile.packageJsonLocations) == null ? void 0 : _a.length) ?? 0;\n        const existing = impliedFormatPackageJsons.get(newFile.resolvedPath) ?? emptyArray;\n        for (let i = existing.length; i < expected; i++) {\n          createFileWatcherOfAffectingLocation(\n            newFile.packageJsonLocations[i],\n            /*forResolution*/\n            false\n          );\n        }\n        if (existing.length > expected) {\n          for (let i = expected; i < existing.length; i++) {\n            fileWatchesOfAffectingLocations.get(existing[i]).files--;\n          }\n        }\n        if (expected) impliedFormatPackageJsons.set(newFile.resolvedPath, newFile.packageJsonLocations);\n        else impliedFormatPackageJsons.delete(newFile.resolvedPath);\n      });\n      impliedFormatPackageJsons.forEach((existing, path) => {\n        const newFile = newProgram == null ? void 0 : newProgram.getSourceFileByPath(path);\n        if (!newFile || newFile.resolvedPath !== path) {\n          existing.forEach((location) => fileWatchesOfAffectingLocations.get(location).files--);\n          impliedFormatPackageJsons.delete(path);\n        }\n      });\n    }\n    directoryWatchesOfFailedLookups.forEach(closeDirectoryWatchesOfFailedLookup);\n    fileWatchesOfAffectingLocations.forEach(closeFileWatcherOfAffectingLocation);\n    packageDirWatchers.forEach(closePackageDirWatcher);\n    hasChangedAutomaticTypeDirectiveNames = false;\n    moduleResolutionCache.isReadonly = true;\n    typeReferenceDirectiveResolutionCache.isReadonly = true;\n    libraryResolutionCache.isReadonly = true;\n    moduleResolutionCache.getPackageJsonInfoCache().isReadonly = true;\n    isSymlinkCache.clear();\n  }\n  function closePackageDirWatcher(watcher, packageDirPath) {\n    if (watcher.dirPathToWatcher.size === 0) {\n      packageDirWatchers.delete(packageDirPath);\n    }\n  }\n  function closeDirectoryWatchesOfFailedLookup(watcher, path) {\n    if (watcher.refCount === 0) {\n      directoryWatchesOfFailedLookups.delete(path);\n      watcher.watcher.close();\n    }\n  }\n  function closeFileWatcherOfAffectingLocation(watcher, path) {\n    var _a;\n    if (watcher.files === 0 && watcher.resolutions === 0 && !((_a = watcher.symlinks) == null ? void 0 : _a.size)) {\n      fileWatchesOfAffectingLocations.delete(path);\n      watcher.watcher.close();\n    }\n  }\n  function resolveNamesWithLocalCache({\n    entries,\n    containingFile,\n    containingSourceFile,\n    redirectedReference,\n    options,\n    perFileCache,\n    reusedNames,\n    loader,\n    getResolutionWithResolvedFileName,\n    deferWatchingNonRelativeResolution,\n    shouldRetryResolution,\n    logChanges\n  }) {\n    var _a;\n    const path = resolutionHost.toPath(containingFile);\n    const resolutionsInFile = perFileCache.get(path) || perFileCache.set(path, createModeAwareCache()).get(path);\n    const resolvedModules = [];\n    const hasInvalidatedNonRelativeUnresolvedImport = logChanges && isFileWithInvalidatedNonRelativeUnresolvedImports(path);\n    const program = resolutionHost.getCurrentProgram();\n    const oldRedirect = program && ((_a = program.getRedirectFromSourceFile(containingFile)) == null ? void 0 : _a.resolvedRef);\n    const unmatchedRedirects = oldRedirect ? !redirectedReference || redirectedReference.sourceFile.path !== oldRedirect.sourceFile.path : !!redirectedReference;\n    const seenNamesInFile = createModeAwareCache();\n    for (const entry of entries) {\n      const name = loader.nameAndMode.getName(entry);\n      const mode = loader.nameAndMode.getMode(entry, containingSourceFile, (redirectedReference == null ? void 0 : redirectedReference.commandLine.options) || options);\n      let resolution = resolutionsInFile.get(name, mode);\n      if (!seenNamesInFile.has(name, mode) && (allModuleAndTypeResolutionsAreInvalidated || unmatchedRedirects || !resolution || resolution.isInvalidated || // If the name is unresolved import that was invalidated, recalculate\n      hasInvalidatedNonRelativeUnresolvedImport && !isExternalModuleNameRelative(name) && shouldRetryResolution(resolution))) {\n        const existingResolution = resolution;\n        resolution = loader.resolve(name, mode);\n        if (resolutionHost.onDiscoveredSymlink && resolutionIsSymlink(resolution)) {\n          resolutionHost.onDiscoveredSymlink();\n        }\n        resolutionsInFile.set(name, mode, resolution);\n        if (resolution !== existingResolution) {\n          watchFailedLookupLocationsOfExternalModuleResolutions(name, resolution, path, getResolutionWithResolvedFileName, deferWatchingNonRelativeResolution);\n          if (existingResolution) {\n            stopWatchFailedLookupLocationOfResolution(existingResolution, path, getResolutionWithResolvedFileName);\n          }\n        }\n        if (logChanges && filesWithChangedSetOfUnresolvedImports && !resolutionIsEqualTo(existingResolution, resolution)) {\n          filesWithChangedSetOfUnresolvedImports.push(path);\n          logChanges = false;\n        }\n      } else {\n        const host = getModuleResolutionHost(resolutionHost);\n        if (isTraceEnabled(options, host) && !seenNamesInFile.has(name, mode)) {\n          const resolved = getResolutionWithResolvedFileName(resolution);\n          trace(\n            host,\n            perFileCache === resolvedModuleNames ? (resolved == null ? void 0 : resolved.resolvedFileName) ? resolved.packageId ? Diagnostics.Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package_ID_3 : Diagnostics.Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2 : Diagnostics.Reusing_resolution_of_module_0_from_1_of_old_program_it_was_not_resolved : (resolved == null ? void 0 : resolved.resolvedFileName) ? resolved.packageId ? Diagnostics.Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package_ID_3 : Diagnostics.Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved_to_2 : Diagnostics.Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_not_resolved,\n            name,\n            containingFile,\n            resolved == null ? void 0 : resolved.resolvedFileName,\n            (resolved == null ? void 0 : resolved.packageId) && packageIdToString(resolved.packageId)\n          );\n        }\n      }\n      Debug.assert(resolution !== void 0 && !resolution.isInvalidated);\n      seenNamesInFile.set(name, mode, true);\n      resolvedModules.push(resolution);\n    }\n    reusedNames == null ? void 0 : reusedNames.forEach(\n      (entry) => seenNamesInFile.set(\n        loader.nameAndMode.getName(entry),\n        loader.nameAndMode.getMode(entry, containingSourceFile, (redirectedReference == null ? void 0 : redirectedReference.commandLine.options) || options),\n        true\n      )\n    );\n    if (resolutionsInFile.size() !== seenNamesInFile.size()) {\n      resolutionsInFile.forEach((resolution, name, mode) => {\n        if (!seenNamesInFile.has(name, mode)) {\n          stopWatchFailedLookupLocationOfResolution(resolution, path, getResolutionWithResolvedFileName);\n          resolutionsInFile.delete(name, mode);\n        }\n      });\n    }\n    return resolvedModules;\n    function resolutionIsEqualTo(oldResolution, newResolution) {\n      if (oldResolution === newResolution) {\n        return true;\n      }\n      if (!oldResolution || !newResolution) {\n        return false;\n      }\n      const oldResult = getResolutionWithResolvedFileName(oldResolution);\n      const newResult = getResolutionWithResolvedFileName(newResolution);\n      if (oldResult === newResult) {\n        return true;\n      }\n      if (!oldResult || !newResult) {\n        return false;\n      }\n      return oldResult.resolvedFileName === newResult.resolvedFileName;\n    }\n  }\n  function resolveTypeReferenceDirectiveReferences(typeDirectiveReferences, containingFile, redirectedReference, options, containingSourceFile, reusedNames) {\n    return resolveNamesWithLocalCache({\n      entries: typeDirectiveReferences,\n      containingFile,\n      containingSourceFile,\n      redirectedReference,\n      options,\n      reusedNames,\n      perFileCache: resolvedTypeReferenceDirectives,\n      loader: createTypeReferenceResolutionLoader(\n        containingFile,\n        redirectedReference,\n        options,\n        getModuleResolutionHost(resolutionHost),\n        typeReferenceDirectiveResolutionCache\n      ),\n      getResolutionWithResolvedFileName: getResolvedTypeReferenceDirectiveFromResolution,\n      shouldRetryResolution: (resolution) => resolution.resolvedTypeReferenceDirective === void 0,\n      deferWatchingNonRelativeResolution: false\n    });\n  }\n  function resolveModuleNameLiterals(moduleLiterals, containingFile, redirectedReference, options, containingSourceFile, reusedNames) {\n    return resolveNamesWithLocalCache({\n      entries: moduleLiterals,\n      containingFile,\n      containingSourceFile,\n      redirectedReference,\n      options,\n      reusedNames,\n      perFileCache: resolvedModuleNames,\n      loader: createModuleResolutionLoaderUsingGlobalCache(\n        containingFile,\n        redirectedReference,\n        options,\n        resolutionHost,\n        moduleResolutionCache\n      ),\n      getResolutionWithResolvedFileName: getResolvedModuleFromResolution,\n      shouldRetryResolution: (resolution) => !resolution.resolvedModule || !resolutionExtensionIsTSOrJson(resolution.resolvedModule.extension),\n      logChanges: logChangesWhenResolvingModule,\n      deferWatchingNonRelativeResolution: true\n      // Defer non relative resolution watch because we could be using ambient modules\n    });\n  }\n  function resolveLibrary2(libraryName, resolveFrom, options, libFileName) {\n    const host = getModuleResolutionHost(resolutionHost);\n    let resolution = resolvedLibraries == null ? void 0 : resolvedLibraries.get(libFileName);\n    if (!resolution || resolution.isInvalidated) {\n      const existingResolution = resolution;\n      resolution = resolveLibrary(libraryName, resolveFrom, options, host, libraryResolutionCache);\n      const path = resolutionHost.toPath(resolveFrom);\n      watchFailedLookupLocationsOfExternalModuleResolutions(\n        libraryName,\n        resolution,\n        path,\n        getResolvedModuleFromResolution,\n        /*deferWatchingNonRelativeResolution*/\n        false\n      );\n      resolvedLibraries.set(libFileName, resolution);\n      if (existingResolution) {\n        stopWatchFailedLookupLocationOfResolution(existingResolution, path, getResolvedModuleFromResolution);\n      }\n    } else {\n      if (isTraceEnabled(options, host)) {\n        const resolved = getResolvedModuleFromResolution(resolution);\n        trace(\n          host,\n          (resolved == null ? void 0 : resolved.resolvedFileName) ? resolved.packageId ? Diagnostics.Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package_ID_3 : Diagnostics.Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2 : Diagnostics.Reusing_resolution_of_module_0_from_1_of_old_program_it_was_not_resolved,\n          libraryName,\n          resolveFrom,\n          resolved == null ? void 0 : resolved.resolvedFileName,\n          (resolved == null ? void 0 : resolved.packageId) && packageIdToString(resolved.packageId)\n        );\n      }\n    }\n    return resolution;\n  }\n  function resolveSingleModuleNameWithoutWatching(moduleName, containingFile) {\n    var _a, _b;\n    const path = resolutionHost.toPath(containingFile);\n    const resolutionsInFile = resolvedModuleNames.get(path);\n    const resolution = resolutionsInFile == null ? void 0 : resolutionsInFile.get(\n      moduleName,\n      /*mode*/\n      void 0\n    );\n    if (resolution && !resolution.isInvalidated) return resolution;\n    const data = (_a = resolutionHost.beforeResolveSingleModuleNameWithoutWatching) == null ? void 0 : _a.call(resolutionHost, moduleResolutionCache);\n    const host = getModuleResolutionHost(resolutionHost);\n    const result = resolveModuleName(\n      moduleName,\n      containingFile,\n      resolutionHost.getCompilationSettings(),\n      host,\n      moduleResolutionCache\n    );\n    (_b = resolutionHost.afterResolveSingleModuleNameWithoutWatching) == null ? void 0 : _b.call(resolutionHost, moduleResolutionCache, moduleName, containingFile, result, data);\n    return result;\n  }\n  function isNodeModulesAtTypesDirectory(dirPath) {\n    return endsWith(dirPath, \"/node_modules/@types\");\n  }\n  function watchFailedLookupLocationsOfExternalModuleResolutions(name, resolution, filePath, getResolutionWithResolvedFileName, deferWatchingNonRelativeResolution) {\n    (resolution.files ?? (resolution.files = /* @__PURE__ */ new Set())).add(filePath);\n    if (resolution.files.size !== 1) return;\n    if (!deferWatchingNonRelativeResolution || isExternalModuleNameRelative(name)) {\n      watchFailedLookupLocationOfResolution(resolution);\n    } else {\n      nonRelativeExternalModuleResolutions.add(resolution);\n    }\n    const resolved = getResolutionWithResolvedFileName(resolution);\n    if (resolved && resolved.resolvedFileName) {\n      const key = resolutionHost.toPath(resolved.resolvedFileName);\n      let resolutions = resolvedFileToResolution.get(key);\n      if (!resolutions) resolvedFileToResolution.set(key, resolutions = /* @__PURE__ */ new Set());\n      resolutions.add(resolution);\n    }\n  }\n  function watchFailedLookupLocation(failedLookupLocation, setAtRoot) {\n    const failedLookupLocationPath = resolutionHost.toPath(failedLookupLocation);\n    const toWatch = getDirectoryToWatchFailedLookupLocation(\n      failedLookupLocation,\n      failedLookupLocationPath,\n      rootDir,\n      rootPath,\n      rootPathComponents,\n      isRootWatchable,\n      getCurrentDirectory,\n      resolutionHost.preferNonRecursiveWatch\n    );\n    if (toWatch) {\n      const { dir, dirPath, nonRecursive, packageDir, packageDirPath } = toWatch;\n      if (dirPath === rootPath) {\n        Debug.assert(nonRecursive);\n        Debug.assert(!packageDir);\n        setAtRoot = true;\n      } else {\n        setDirectoryWatcher(dir, dirPath, packageDir, packageDirPath, nonRecursive);\n      }\n    }\n    return setAtRoot;\n  }\n  function watchFailedLookupLocationOfResolution(resolution) {\n    var _a;\n    Debug.assert(!!((_a = resolution.files) == null ? void 0 : _a.size));\n    const { failedLookupLocations, affectingLocations, alternateResult } = resolution;\n    if (!(failedLookupLocations == null ? void 0 : failedLookupLocations.length) && !(affectingLocations == null ? void 0 : affectingLocations.length) && !alternateResult) return;\n    if ((failedLookupLocations == null ? void 0 : failedLookupLocations.length) || alternateResult) resolutionsWithFailedLookups.add(resolution);\n    let setAtRoot = false;\n    if (failedLookupLocations) {\n      for (const failedLookupLocation of failedLookupLocations) {\n        setAtRoot = watchFailedLookupLocation(failedLookupLocation, setAtRoot);\n      }\n    }\n    if (alternateResult) setAtRoot = watchFailedLookupLocation(alternateResult, setAtRoot);\n    if (setAtRoot) {\n      setDirectoryWatcher(\n        rootDir,\n        rootPath,\n        /*packageDir*/\n        void 0,\n        /*packageDirPath*/\n        void 0,\n        /*nonRecursive*/\n        true\n      );\n    }\n    watchAffectingLocationsOfResolution(resolution, !(failedLookupLocations == null ? void 0 : failedLookupLocations.length) && !alternateResult);\n  }\n  function watchAffectingLocationsOfResolution(resolution, addToResolutionsWithOnlyAffectingLocations) {\n    var _a;\n    Debug.assert(!!((_a = resolution.files) == null ? void 0 : _a.size));\n    const { affectingLocations } = resolution;\n    if (!(affectingLocations == null ? void 0 : affectingLocations.length)) return;\n    if (addToResolutionsWithOnlyAffectingLocations) resolutionsWithOnlyAffectingLocations.add(resolution);\n    for (const affectingLocation of affectingLocations) {\n      createFileWatcherOfAffectingLocation(\n        affectingLocation,\n        /*forResolution*/\n        true\n      );\n    }\n  }\n  function createFileWatcherOfAffectingLocation(affectingLocation, forResolution) {\n    const fileWatcher = fileWatchesOfAffectingLocations.get(affectingLocation);\n    if (fileWatcher) {\n      if (forResolution) fileWatcher.resolutions++;\n      else fileWatcher.files++;\n      return;\n    }\n    let locationToWatch = affectingLocation;\n    let isSymlink = false;\n    let symlinkWatcher;\n    if (resolutionHost.realpath) {\n      locationToWatch = resolutionHost.realpath(affectingLocation);\n      if (affectingLocation !== locationToWatch) {\n        isSymlink = true;\n        symlinkWatcher = fileWatchesOfAffectingLocations.get(locationToWatch);\n      }\n    }\n    const resolutions = forResolution ? 1 : 0;\n    const files = forResolution ? 0 : 1;\n    if (!isSymlink || !symlinkWatcher) {\n      const watcher = {\n        watcher: canWatchAffectingLocation(resolutionHost.toPath(locationToWatch)) ? resolutionHost.watchAffectingFileLocation(locationToWatch, (fileName, eventKind) => {\n          cachedDirectoryStructureHost == null ? void 0 : cachedDirectoryStructureHost.addOrDeleteFile(fileName, resolutionHost.toPath(locationToWatch), eventKind);\n          invalidateAffectingFileWatcher(locationToWatch, moduleResolutionCache.getPackageJsonInfoCache().getInternalMap());\n          resolutionHost.scheduleInvalidateResolutionsOfFailedLookupLocations();\n        }) : noopFileWatcher,\n        resolutions: isSymlink ? 0 : resolutions,\n        files: isSymlink ? 0 : files,\n        symlinks: void 0\n      };\n      fileWatchesOfAffectingLocations.set(locationToWatch, watcher);\n      if (isSymlink) symlinkWatcher = watcher;\n    }\n    if (isSymlink) {\n      Debug.assert(!!symlinkWatcher);\n      const watcher = {\n        watcher: {\n          close: () => {\n            var _a;\n            const symlinkWatcher2 = fileWatchesOfAffectingLocations.get(locationToWatch);\n            if (((_a = symlinkWatcher2 == null ? void 0 : symlinkWatcher2.symlinks) == null ? void 0 : _a.delete(affectingLocation)) && !symlinkWatcher2.symlinks.size && !symlinkWatcher2.resolutions && !symlinkWatcher2.files) {\n              fileWatchesOfAffectingLocations.delete(locationToWatch);\n              symlinkWatcher2.watcher.close();\n            }\n          }\n        },\n        resolutions,\n        files,\n        symlinks: void 0\n      };\n      fileWatchesOfAffectingLocations.set(affectingLocation, watcher);\n      (symlinkWatcher.symlinks ?? (symlinkWatcher.symlinks = /* @__PURE__ */ new Set())).add(affectingLocation);\n    }\n  }\n  function invalidateAffectingFileWatcher(path, packageJsonMap) {\n    var _a;\n    const watcher = fileWatchesOfAffectingLocations.get(path);\n    if (watcher == null ? void 0 : watcher.resolutions) (affectingPathChecks ?? (affectingPathChecks = /* @__PURE__ */ new Set())).add(path);\n    if (watcher == null ? void 0 : watcher.files) (affectingPathChecksForFile ?? (affectingPathChecksForFile = /* @__PURE__ */ new Set())).add(path);\n    (_a = watcher == null ? void 0 : watcher.symlinks) == null ? void 0 : _a.forEach((path2) => invalidateAffectingFileWatcher(path2, packageJsonMap));\n    packageJsonMap == null ? void 0 : packageJsonMap.delete(resolutionHost.toPath(path));\n  }\n  function watchFailedLookupLocationOfNonRelativeModuleResolutions() {\n    nonRelativeExternalModuleResolutions.forEach(watchFailedLookupLocationOfResolution);\n    nonRelativeExternalModuleResolutions.clear();\n  }\n  function createDirectoryWatcherForPackageDir(dir, dirPath, packageDir, packageDirPath, nonRecursive) {\n    Debug.assert(!nonRecursive);\n    let isSymlink = isSymlinkCache.get(packageDirPath);\n    let packageDirWatcher = packageDirWatchers.get(packageDirPath);\n    if (isSymlink === void 0) {\n      const realPath2 = resolutionHost.realpath(packageDir);\n      isSymlink = realPath2 !== packageDir && resolutionHost.toPath(realPath2) !== packageDirPath;\n      isSymlinkCache.set(packageDirPath, isSymlink);\n      if (!packageDirWatcher) {\n        packageDirWatchers.set(\n          packageDirPath,\n          packageDirWatcher = {\n            dirPathToWatcher: /* @__PURE__ */ new Map(),\n            isSymlink\n          }\n        );\n      } else if (packageDirWatcher.isSymlink !== isSymlink) {\n        packageDirWatcher.dirPathToWatcher.forEach((watcher) => {\n          removeDirectoryWatcher(packageDirWatcher.isSymlink ? packageDirPath : dirPath);\n          watcher.watcher = createDirPathToWatcher();\n        });\n        packageDirWatcher.isSymlink = isSymlink;\n      }\n    } else {\n      Debug.assertIsDefined(packageDirWatcher);\n      Debug.assert(isSymlink === packageDirWatcher.isSymlink);\n    }\n    const forDirPath = packageDirWatcher.dirPathToWatcher.get(dirPath);\n    if (forDirPath) {\n      forDirPath.refCount++;\n    } else {\n      packageDirWatcher.dirPathToWatcher.set(dirPath, {\n        watcher: createDirPathToWatcher(),\n        refCount: 1\n      });\n      if (isSymlink) dirPathToSymlinkPackageRefCount.set(dirPath, (dirPathToSymlinkPackageRefCount.get(dirPath) ?? 0) + 1);\n    }\n    function createDirPathToWatcher() {\n      return isSymlink ? createOrAddRefToDirectoryWatchOfFailedLookups(packageDir, packageDirPath, nonRecursive) : createOrAddRefToDirectoryWatchOfFailedLookups(dir, dirPath, nonRecursive);\n    }\n  }\n  function setDirectoryWatcher(dir, dirPath, packageDir, packageDirPath, nonRecursive) {\n    if (!packageDirPath || !resolutionHost.realpath) {\n      createOrAddRefToDirectoryWatchOfFailedLookups(dir, dirPath, nonRecursive);\n    } else {\n      createDirectoryWatcherForPackageDir(dir, dirPath, packageDir, packageDirPath, nonRecursive);\n    }\n  }\n  function createOrAddRefToDirectoryWatchOfFailedLookups(dir, dirPath, nonRecursive) {\n    let dirWatcher = directoryWatchesOfFailedLookups.get(dirPath);\n    if (dirWatcher) {\n      Debug.assert(!!nonRecursive === !!dirWatcher.nonRecursive);\n      dirWatcher.refCount++;\n    } else {\n      directoryWatchesOfFailedLookups.set(dirPath, dirWatcher = { watcher: createDirectoryWatcher(dir, dirPath, nonRecursive), refCount: 1, nonRecursive });\n    }\n    return dirWatcher;\n  }\n  function stopWatchFailedLookupLocation(failedLookupLocation, removeAtRoot) {\n    const failedLookupLocationPath = resolutionHost.toPath(failedLookupLocation);\n    const toWatch = getDirectoryToWatchFailedLookupLocation(\n      failedLookupLocation,\n      failedLookupLocationPath,\n      rootDir,\n      rootPath,\n      rootPathComponents,\n      isRootWatchable,\n      getCurrentDirectory,\n      resolutionHost.preferNonRecursiveWatch\n    );\n    if (toWatch) {\n      const { dirPath, packageDirPath } = toWatch;\n      if (dirPath === rootPath) {\n        removeAtRoot = true;\n      } else if (packageDirPath && resolutionHost.realpath) {\n        const packageDirWatcher = packageDirWatchers.get(packageDirPath);\n        const forDirPath = packageDirWatcher.dirPathToWatcher.get(dirPath);\n        forDirPath.refCount--;\n        if (forDirPath.refCount === 0) {\n          removeDirectoryWatcher(packageDirWatcher.isSymlink ? packageDirPath : dirPath);\n          packageDirWatcher.dirPathToWatcher.delete(dirPath);\n          if (packageDirWatcher.isSymlink) {\n            const refCount = dirPathToSymlinkPackageRefCount.get(dirPath) - 1;\n            if (refCount === 0) {\n              dirPathToSymlinkPackageRefCount.delete(dirPath);\n            } else {\n              dirPathToSymlinkPackageRefCount.set(dirPath, refCount);\n            }\n          }\n        }\n      } else {\n        removeDirectoryWatcher(dirPath);\n      }\n    }\n    return removeAtRoot;\n  }\n  function stopWatchFailedLookupLocationOfResolution(resolution, filePath, getResolutionWithResolvedFileName) {\n    Debug.checkDefined(resolution.files).delete(filePath);\n    if (resolution.files.size) return;\n    resolution.files = void 0;\n    const resolved = getResolutionWithResolvedFileName(resolution);\n    if (resolved && resolved.resolvedFileName) {\n      const key = resolutionHost.toPath(resolved.resolvedFileName);\n      const resolutions = resolvedFileToResolution.get(key);\n      if ((resolutions == null ? void 0 : resolutions.delete(resolution)) && !resolutions.size) resolvedFileToResolution.delete(key);\n    }\n    const { failedLookupLocations, affectingLocations, alternateResult } = resolution;\n    if (resolutionsWithFailedLookups.delete(resolution)) {\n      let removeAtRoot = false;\n      if (failedLookupLocations) {\n        for (const failedLookupLocation of failedLookupLocations) {\n          removeAtRoot = stopWatchFailedLookupLocation(failedLookupLocation, removeAtRoot);\n        }\n      }\n      if (alternateResult) removeAtRoot = stopWatchFailedLookupLocation(alternateResult, removeAtRoot);\n      if (removeAtRoot) removeDirectoryWatcher(rootPath);\n    } else if (affectingLocations == null ? void 0 : affectingLocations.length) {\n      resolutionsWithOnlyAffectingLocations.delete(resolution);\n    }\n    if (affectingLocations) {\n      for (const affectingLocation of affectingLocations) {\n        const watcher = fileWatchesOfAffectingLocations.get(affectingLocation);\n        watcher.resolutions--;\n      }\n    }\n  }\n  function removeDirectoryWatcher(dirPath) {\n    const dirWatcher = directoryWatchesOfFailedLookups.get(dirPath);\n    dirWatcher.refCount--;\n  }\n  function createDirectoryWatcher(directory, dirPath, nonRecursive) {\n    return resolutionHost.watchDirectoryOfFailedLookupLocation(directory, (fileOrDirectory) => {\n      const fileOrDirectoryPath = resolutionHost.toPath(fileOrDirectory);\n      if (cachedDirectoryStructureHost) {\n        cachedDirectoryStructureHost.addOrDeleteFileOrDirectory(fileOrDirectory, fileOrDirectoryPath);\n      }\n      scheduleInvalidateResolutionOfFailedLookupLocation(fileOrDirectoryPath, dirPath === fileOrDirectoryPath);\n    }, nonRecursive ? 0 /* None */ : 1 /* Recursive */);\n  }\n  function removeResolutionsOfFileFromCache(cache, filePath, getResolutionWithResolvedFileName) {\n    const resolutions = cache.get(filePath);\n    if (resolutions) {\n      resolutions.forEach(\n        (resolution) => stopWatchFailedLookupLocationOfResolution(\n          resolution,\n          filePath,\n          getResolutionWithResolvedFileName\n        )\n      );\n      cache.delete(filePath);\n    }\n  }\n  function removeResolutionsFromProjectReferenceRedirects(filePath) {\n    if (!fileExtensionIs(filePath, \".json\" /* Json */)) return;\n    const program = resolutionHost.getCurrentProgram();\n    if (!program) return;\n    const resolvedProjectReference = program.getResolvedProjectReferenceByPath(filePath);\n    if (!resolvedProjectReference) return;\n    resolvedProjectReference.commandLine.fileNames.forEach((f) => removeResolutionsOfFile(resolutionHost.toPath(f)));\n  }\n  function removeResolutionsOfFile(filePath) {\n    removeResolutionsOfFileFromCache(resolvedModuleNames, filePath, getResolvedModuleFromResolution);\n    removeResolutionsOfFileFromCache(resolvedTypeReferenceDirectives, filePath, getResolvedTypeReferenceDirectiveFromResolution);\n  }\n  function invalidateResolutions(resolutions, canInvalidate) {\n    if (!resolutions) return false;\n    let invalidated = false;\n    resolutions.forEach((resolution) => {\n      if (resolution.isInvalidated || !canInvalidate(resolution)) return;\n      resolution.isInvalidated = invalidated = true;\n      for (const containingFilePath of Debug.checkDefined(resolution.files)) {\n        (filesWithInvalidatedResolutions ?? (filesWithInvalidatedResolutions = /* @__PURE__ */ new Set())).add(containingFilePath);\n        hasChangedAutomaticTypeDirectiveNames = hasChangedAutomaticTypeDirectiveNames || endsWith(containingFilePath, inferredTypesContainingFile);\n      }\n    });\n    return invalidated;\n  }\n  function invalidateResolutionOfFile(filePath) {\n    removeResolutionsOfFile(filePath);\n    const prevHasChangedAutomaticTypeDirectiveNames = hasChangedAutomaticTypeDirectiveNames;\n    if (invalidateResolutions(resolvedFileToResolution.get(filePath), returnTrue) && hasChangedAutomaticTypeDirectiveNames && !prevHasChangedAutomaticTypeDirectiveNames) {\n      resolutionHost.onChangedAutomaticTypeDirectiveNames();\n    }\n  }\n  function setFilesWithInvalidatedNonRelativeUnresolvedImports(filesMap) {\n    Debug.assert(filesWithInvalidatedNonRelativeUnresolvedImports === filesMap || filesWithInvalidatedNonRelativeUnresolvedImports === void 0);\n    filesWithInvalidatedNonRelativeUnresolvedImports = filesMap;\n  }\n  function scheduleInvalidateResolutionOfFailedLookupLocation(fileOrDirectoryPath, isCreatingWatchedDirectory) {\n    if (isCreatingWatchedDirectory) {\n      (isInDirectoryChecks || (isInDirectoryChecks = /* @__PURE__ */ new Set())).add(fileOrDirectoryPath);\n    } else {\n      const updatedPath = removeIgnoredPath(fileOrDirectoryPath);\n      if (!updatedPath) return false;\n      fileOrDirectoryPath = updatedPath;\n      if (resolutionHost.fileIsOpen(fileOrDirectoryPath)) {\n        return false;\n      }\n      const dirOfFileOrDirectory = getDirectoryPath(fileOrDirectoryPath);\n      if (isNodeModulesAtTypesDirectory(fileOrDirectoryPath) || isNodeModulesDirectory(fileOrDirectoryPath) || isNodeModulesAtTypesDirectory(dirOfFileOrDirectory) || isNodeModulesDirectory(dirOfFileOrDirectory)) {\n        (failedLookupChecks || (failedLookupChecks = /* @__PURE__ */ new Set())).add(fileOrDirectoryPath);\n        (startsWithPathChecks || (startsWithPathChecks = /* @__PURE__ */ new Set())).add(fileOrDirectoryPath);\n      } else {\n        if (isEmittedFileOfProgram(resolutionHost.getCurrentProgram(), fileOrDirectoryPath)) {\n          return false;\n        }\n        if (fileExtensionIs(fileOrDirectoryPath, \".map\")) {\n          return false;\n        }\n        (failedLookupChecks || (failedLookupChecks = /* @__PURE__ */ new Set())).add(fileOrDirectoryPath);\n        (startsWithPathChecks || (startsWithPathChecks = /* @__PURE__ */ new Set())).add(fileOrDirectoryPath);\n        const packagePath = parseNodeModuleFromPath(\n          fileOrDirectoryPath,\n          /*isFolder*/\n          true\n        );\n        if (packagePath) (startsWithPathChecks || (startsWithPathChecks = /* @__PURE__ */ new Set())).add(packagePath);\n      }\n    }\n    resolutionHost.scheduleInvalidateResolutionsOfFailedLookupLocations();\n  }\n  function invalidatePackageJsonMap() {\n    const packageJsonMap = moduleResolutionCache.getPackageJsonInfoCache().getInternalMap();\n    if (packageJsonMap && (failedLookupChecks || startsWithPathChecks || isInDirectoryChecks)) {\n      packageJsonMap.forEach((_value, path) => isInvalidatedFailedLookup(path) ? packageJsonMap.delete(path) : void 0);\n    }\n  }\n  function invalidateResolutionsOfFailedLookupLocations() {\n    var _a;\n    if (allModuleAndTypeResolutionsAreInvalidated) {\n      affectingPathChecksForFile = void 0;\n      invalidatePackageJsonMap();\n      if (failedLookupChecks || startsWithPathChecks || isInDirectoryChecks || affectingPathChecks) {\n        invalidateResolutions(resolvedLibraries, canInvalidateFailedLookupResolution);\n      }\n      failedLookupChecks = void 0;\n      startsWithPathChecks = void 0;\n      isInDirectoryChecks = void 0;\n      affectingPathChecks = void 0;\n      return true;\n    }\n    let invalidated = false;\n    if (affectingPathChecksForFile) {\n      (_a = resolutionHost.getCurrentProgram()) == null ? void 0 : _a.getSourceFiles().forEach((f) => {\n        if (some(f.packageJsonLocations, (location) => affectingPathChecksForFile.has(location))) {\n          (filesWithInvalidatedResolutions ?? (filesWithInvalidatedResolutions = /* @__PURE__ */ new Set())).add(f.path);\n          invalidated = true;\n        }\n      });\n      affectingPathChecksForFile = void 0;\n    }\n    if (!failedLookupChecks && !startsWithPathChecks && !isInDirectoryChecks && !affectingPathChecks) {\n      return invalidated;\n    }\n    invalidated = invalidateResolutions(resolutionsWithFailedLookups, canInvalidateFailedLookupResolution) || invalidated;\n    invalidatePackageJsonMap();\n    failedLookupChecks = void 0;\n    startsWithPathChecks = void 0;\n    isInDirectoryChecks = void 0;\n    invalidated = invalidateResolutions(resolutionsWithOnlyAffectingLocations, canInvalidatedFailedLookupResolutionWithAffectingLocation) || invalidated;\n    affectingPathChecks = void 0;\n    return invalidated;\n  }\n  function canInvalidateFailedLookupResolution(resolution) {\n    var _a;\n    if (canInvalidatedFailedLookupResolutionWithAffectingLocation(resolution)) return true;\n    if (!failedLookupChecks && !startsWithPathChecks && !isInDirectoryChecks) return false;\n    return ((_a = resolution.failedLookupLocations) == null ? void 0 : _a.some((location) => isInvalidatedFailedLookup(resolutionHost.toPath(location)))) || !!resolution.alternateResult && isInvalidatedFailedLookup(resolutionHost.toPath(resolution.alternateResult));\n  }\n  function isInvalidatedFailedLookup(locationPath) {\n    return (failedLookupChecks == null ? void 0 : failedLookupChecks.has(locationPath)) || firstDefinedIterator((startsWithPathChecks == null ? void 0 : startsWithPathChecks.keys()) || [], (fileOrDirectoryPath) => startsWith(locationPath, fileOrDirectoryPath) ? true : void 0) || firstDefinedIterator((isInDirectoryChecks == null ? void 0 : isInDirectoryChecks.keys()) || [], (dirPath) => locationPath.length > dirPath.length && startsWith(locationPath, dirPath) && (isDiskPathRoot(dirPath) || locationPath[dirPath.length] === directorySeparator) ? true : void 0);\n  }\n  function canInvalidatedFailedLookupResolutionWithAffectingLocation(resolution) {\n    var _a;\n    return !!affectingPathChecks && ((_a = resolution.affectingLocations) == null ? void 0 : _a.some((location) => affectingPathChecks.has(location)));\n  }\n  function closeTypeRootsWatch() {\n    clearMap(typeRootsWatches, closeFileWatcher);\n  }\n  function createTypeRootsWatch(typeRoot) {\n    return canWatchTypeRootPath(typeRoot) ? resolutionHost.watchTypeRootsDirectory(typeRoot, (fileOrDirectory) => {\n      const fileOrDirectoryPath = resolutionHost.toPath(fileOrDirectory);\n      if (cachedDirectoryStructureHost) {\n        cachedDirectoryStructureHost.addOrDeleteFileOrDirectory(fileOrDirectory, fileOrDirectoryPath);\n      }\n      hasChangedAutomaticTypeDirectiveNames = true;\n      resolutionHost.onChangedAutomaticTypeDirectiveNames();\n      const dirPath = getDirectoryToWatchFailedLookupLocationFromTypeRoot(\n        typeRoot,\n        resolutionHost.toPath(typeRoot),\n        rootPath,\n        rootPathComponents,\n        isRootWatchable,\n        getCurrentDirectory,\n        resolutionHost.preferNonRecursiveWatch,\n        (dirPath2) => directoryWatchesOfFailedLookups.has(dirPath2) || dirPathToSymlinkPackageRefCount.has(dirPath2)\n      );\n      if (dirPath) {\n        scheduleInvalidateResolutionOfFailedLookupLocation(fileOrDirectoryPath, dirPath === fileOrDirectoryPath);\n      }\n    }, 1 /* Recursive */) : noopFileWatcher;\n  }\n  function updateTypeRootsWatch() {\n    const options = resolutionHost.getCompilationSettings();\n    if (options.types) {\n      closeTypeRootsWatch();\n      return;\n    }\n    const typeRoots = getEffectiveTypeRoots(options, { getCurrentDirectory });\n    if (typeRoots) {\n      mutateMap(\n        typeRootsWatches,\n        new Set(typeRoots),\n        {\n          createNewValue: createTypeRootsWatch,\n          onDeleteValue: closeFileWatcher\n        }\n      );\n    } else {\n      closeTypeRootsWatch();\n    }\n  }\n  function canWatchTypeRootPath(typeRoot) {\n    if (resolutionHost.getCompilationSettings().typeRoots) return true;\n    return canWatchAtTypes(resolutionHost.toPath(typeRoot));\n  }\n}\nfunction resolutionIsSymlink(resolution) {\n  var _a, _b;\n  return !!(((_a = resolution.resolvedModule) == null ? void 0 : _a.originalPath) || ((_b = resolution.resolvedTypeReferenceDirective) == null ? void 0 : _b.originalPath));\n}\n\n// src/compiler/watch.ts\nvar sysFormatDiagnosticsHost = sys ? {\n  getCurrentDirectory: () => sys.getCurrentDirectory(),\n  getNewLine: () => sys.newLine,\n  getCanonicalFileName: createGetCanonicalFileName(sys.useCaseSensitiveFileNames)\n} : void 0;\nfunction createDiagnosticReporter(system, pretty) {\n  const host = system === sys && sysFormatDiagnosticsHost ? sysFormatDiagnosticsHost : {\n    getCurrentDirectory: () => system.getCurrentDirectory(),\n    getNewLine: () => system.newLine,\n    getCanonicalFileName: createGetCanonicalFileName(system.useCaseSensitiveFileNames)\n  };\n  if (!pretty) {\n    return (diagnostic) => system.write(formatDiagnostic(diagnostic, host));\n  }\n  const diagnostics = new Array(1);\n  return (diagnostic) => {\n    diagnostics[0] = diagnostic;\n    system.write(formatDiagnosticsWithColorAndContext(diagnostics, host) + host.getNewLine());\n    diagnostics[0] = void 0;\n  };\n}\nfunction clearScreenIfNotWatchingForFileChanges(system, diagnostic, options) {\n  if (system.clearScreen && !options.preserveWatchOutput && !options.extendedDiagnostics && !options.diagnostics && contains(screenStartingMessageCodes, diagnostic.code)) {\n    system.clearScreen();\n    return true;\n  }\n  return false;\n}\nvar screenStartingMessageCodes = [\n  Diagnostics.Starting_compilation_in_watch_mode.code,\n  Diagnostics.File_change_detected_Starting_incremental_compilation.code\n];\nfunction getPlainDiagnosticFollowingNewLines(diagnostic, newLine) {\n  return contains(screenStartingMessageCodes, diagnostic.code) ? newLine + newLine : newLine;\n}\nfunction getLocaleTimeString(system) {\n  return !system.now ? (/* @__PURE__ */ new Date()).toLocaleTimeString() : (\n    // On some systems / builds of Node, there's a non-breaking space between the time and AM/PM.\n    // This branch is solely for testing, so just switch it to a normal space for baseline stability.\n    // See:\n    //     - https://github.com/nodejs/node/issues/45171\n    //     - https://github.com/nodejs/node/issues/45753\n    system.now().toLocaleTimeString(\"en-US\", { timeZone: \"UTC\" }).replace(\"\\u202F\", \" \")\n  );\n}\nfunction createWatchStatusReporter(system, pretty) {\n  return pretty ? (diagnostic, newLine, options) => {\n    clearScreenIfNotWatchingForFileChanges(system, diagnostic, options);\n    let output = `[${formatColorAndReset(getLocaleTimeString(system), \"\\x1B[90m\" /* Grey */)}] `;\n    output += `${flattenDiagnosticMessageText(diagnostic.messageText, system.newLine)}${newLine + newLine}`;\n    system.write(output);\n  } : (diagnostic, newLine, options) => {\n    let output = \"\";\n    if (!clearScreenIfNotWatchingForFileChanges(system, diagnostic, options)) {\n      output += newLine;\n    }\n    output += `${getLocaleTimeString(system)} - `;\n    output += `${flattenDiagnosticMessageText(diagnostic.messageText, system.newLine)}${getPlainDiagnosticFollowingNewLines(diagnostic, newLine)}`;\n    system.write(output);\n  };\n}\nfunction parseConfigFileWithSystem(configFileName, optionsToExtend, extendedConfigCache, watchOptionsToExtend, system, reportDiagnostic) {\n  const host = system;\n  host.onUnRecoverableConfigFileDiagnostic = (diagnostic) => reportUnrecoverableDiagnostic(system, reportDiagnostic, diagnostic);\n  const result = getParsedCommandLineOfConfigFile(configFileName, optionsToExtend, host, extendedConfigCache, watchOptionsToExtend);\n  host.onUnRecoverableConfigFileDiagnostic = void 0;\n  return result;\n}\nfunction getErrorCountForSummary(diagnostics) {\n  return countWhere(diagnostics, (diagnostic) => diagnostic.category === 1 /* Error */);\n}\nfunction getFilesInErrorForSummary(diagnostics) {\n  const filesInError = filter(diagnostics, (diagnostic) => diagnostic.category === 1 /* Error */).map(\n    (errorDiagnostic) => {\n      if (errorDiagnostic.file === void 0) return;\n      return `${errorDiagnostic.file.fileName}`;\n    }\n  );\n  return filesInError.map((fileName) => {\n    if (fileName === void 0) {\n      return void 0;\n    }\n    const diagnosticForFileName = find(diagnostics, (diagnostic) => diagnostic.file !== void 0 && diagnostic.file.fileName === fileName);\n    if (diagnosticForFileName !== void 0) {\n      const { line } = getLineAndCharacterOfPosition(diagnosticForFileName.file, diagnosticForFileName.start);\n      return {\n        fileName,\n        line: line + 1\n      };\n    }\n  });\n}\nfunction getWatchErrorSummaryDiagnosticMessage(errorCount) {\n  return errorCount === 1 ? Diagnostics.Found_1_error_Watching_for_file_changes : Diagnostics.Found_0_errors_Watching_for_file_changes;\n}\nfunction prettyPathForFileError(error2, cwd) {\n  const line = formatColorAndReset(\":\" + error2.line, \"\\x1B[90m\" /* Grey */);\n  if (pathIsAbsolute(error2.fileName) && pathIsAbsolute(cwd)) {\n    return getRelativePathFromDirectory(\n      cwd,\n      error2.fileName,\n      /*ignoreCase*/\n      false\n    ) + line;\n  }\n  return error2.fileName + line;\n}\nfunction getErrorSummaryText(errorCount, filesInError, newLine, host) {\n  if (errorCount === 0) return \"\";\n  const nonNilFiles = filesInError.filter((fileInError) => fileInError !== void 0);\n  const distinctFileNamesWithLines = nonNilFiles.map((fileInError) => `${fileInError.fileName}:${fileInError.line}`).filter((value, index, self) => self.indexOf(value) === index);\n  const firstFileReference = nonNilFiles[0] && prettyPathForFileError(nonNilFiles[0], host.getCurrentDirectory());\n  let messageAndArgs;\n  if (errorCount === 1) {\n    messageAndArgs = filesInError[0] !== void 0 ? [Diagnostics.Found_1_error_in_0, firstFileReference] : [Diagnostics.Found_1_error];\n  } else {\n    messageAndArgs = distinctFileNamesWithLines.length === 0 ? [Diagnostics.Found_0_errors, errorCount] : distinctFileNamesWithLines.length === 1 ? [Diagnostics.Found_0_errors_in_the_same_file_starting_at_Colon_1, errorCount, firstFileReference] : [Diagnostics.Found_0_errors_in_1_files, errorCount, distinctFileNamesWithLines.length];\n  }\n  const d = createCompilerDiagnostic(...messageAndArgs);\n  const suffix = distinctFileNamesWithLines.length > 1 ? createTabularErrorsDisplay(nonNilFiles, host) : \"\";\n  return `${newLine}${flattenDiagnosticMessageText(d.messageText, newLine)}${newLine}${newLine}${suffix}`;\n}\nfunction createTabularErrorsDisplay(filesInError, host) {\n  const distinctFiles = filesInError.filter((value, index, self) => index === self.findIndex((file) => (file == null ? void 0 : file.fileName) === (value == null ? void 0 : value.fileName)));\n  if (distinctFiles.length === 0) return \"\";\n  const numberLength = (num) => Math.log(num) * Math.LOG10E + 1;\n  const fileToErrorCount = distinctFiles.map((file) => [file, countWhere(filesInError, (fileInError) => fileInError.fileName === file.fileName)]);\n  const maxErrors = maxBy(fileToErrorCount, 0, (value) => value[1]);\n  const headerRow = Diagnostics.Errors_Files.message;\n  const leftColumnHeadingLength = headerRow.split(\" \")[0].length;\n  const leftPaddingGoal = Math.max(leftColumnHeadingLength, numberLength(maxErrors));\n  const headerPadding = Math.max(numberLength(maxErrors) - leftColumnHeadingLength, 0);\n  let tabularData = \"\";\n  tabularData += \" \".repeat(headerPadding) + headerRow + \"\\n\";\n  fileToErrorCount.forEach((row) => {\n    const [file, errorCount] = row;\n    const errorCountDigitsLength = Math.log(errorCount) * Math.LOG10E + 1 | 0;\n    const leftPadding = errorCountDigitsLength < leftPaddingGoal ? \" \".repeat(leftPaddingGoal - errorCountDigitsLength) : \"\";\n    const fileRef = prettyPathForFileError(file, host.getCurrentDirectory());\n    tabularData += `${leftPadding}${errorCount}  ${fileRef}\n`;\n  });\n  return tabularData;\n}\nfunction isBuilderProgram(program) {\n  return !!program.state;\n}\nfunction listFiles(program, write) {\n  const options = program.getCompilerOptions();\n  if (options.explainFiles) {\n    explainFiles(isBuilderProgram(program) ? program.getProgram() : program, write);\n  } else if (options.listFiles || options.listFilesOnly) {\n    forEach(program.getSourceFiles(), (file) => {\n      write(file.fileName);\n    });\n  }\n}\nfunction explainFiles(program, write) {\n  var _a, _b;\n  const reasons = program.getFileIncludeReasons();\n  const relativeFileName = (fileName) => convertToRelativePath(fileName, program.getCurrentDirectory(), program.getCanonicalFileName);\n  for (const file of program.getSourceFiles()) {\n    write(`${toFileName(file, relativeFileName)}`);\n    (_a = reasons.get(file.path)) == null ? void 0 : _a.forEach((reason) => write(`  ${fileIncludeReasonToDiagnostics(program, reason, relativeFileName).messageText}`));\n    (_b = explainIfFileIsRedirectAndImpliedFormat(file, program.getCompilerOptionsForFile(file), relativeFileName)) == null ? void 0 : _b.forEach((d) => write(`  ${d.messageText}`));\n  }\n}\nfunction explainIfFileIsRedirectAndImpliedFormat(file, options, fileNameConvertor) {\n  var _a;\n  let result;\n  if (file.path !== file.resolvedPath) {\n    (result ?? (result = [])).push(chainDiagnosticMessages(\n      /*details*/\n      void 0,\n      Diagnostics.File_is_output_of_project_reference_source_0,\n      toFileName(file.originalFileName, fileNameConvertor)\n    ));\n  }\n  if (file.redirectInfo) {\n    (result ?? (result = [])).push(chainDiagnosticMessages(\n      /*details*/\n      void 0,\n      Diagnostics.File_redirects_to_file_0,\n      toFileName(file.redirectInfo.redirectTarget, fileNameConvertor)\n    ));\n  }\n  if (isExternalOrCommonJsModule(file)) {\n    switch (getImpliedNodeFormatForEmitWorker(file, options)) {\n      case 99 /* ESNext */:\n        if (file.packageJsonScope) {\n          (result ?? (result = [])).push(chainDiagnosticMessages(\n            /*details*/\n            void 0,\n            Diagnostics.File_is_ECMAScript_module_because_0_has_field_type_with_value_module,\n            toFileName(last(file.packageJsonLocations), fileNameConvertor)\n          ));\n        }\n        break;\n      case 1 /* CommonJS */:\n        if (file.packageJsonScope) {\n          (result ?? (result = [])).push(chainDiagnosticMessages(\n            /*details*/\n            void 0,\n            file.packageJsonScope.contents.packageJsonContent.type ? Diagnostics.File_is_CommonJS_module_because_0_has_field_type_whose_value_is_not_module : Diagnostics.File_is_CommonJS_module_because_0_does_not_have_field_type,\n            toFileName(last(file.packageJsonLocations), fileNameConvertor)\n          ));\n        } else if ((_a = file.packageJsonLocations) == null ? void 0 : _a.length) {\n          (result ?? (result = [])).push(chainDiagnosticMessages(\n            /*details*/\n            void 0,\n            Diagnostics.File_is_CommonJS_module_because_package_json_was_not_found\n          ));\n        }\n        break;\n    }\n  }\n  return result;\n}\nfunction getMatchedFileSpec(program, fileName) {\n  var _a;\n  const configFile = program.getCompilerOptions().configFile;\n  if (!((_a = configFile == null ? void 0 : configFile.configFileSpecs) == null ? void 0 : _a.validatedFilesSpec)) return void 0;\n  const filePath = program.getCanonicalFileName(fileName);\n  const basePath = getDirectoryPath(getNormalizedAbsolutePath(configFile.fileName, program.getCurrentDirectory()));\n  const index = findIndex(configFile.configFileSpecs.validatedFilesSpec, (fileSpec) => program.getCanonicalFileName(getNormalizedAbsolutePath(fileSpec, basePath)) === filePath);\n  return index !== -1 ? configFile.configFileSpecs.validatedFilesSpecBeforeSubstitution[index] : void 0;\n}\nfunction getMatchedIncludeSpec(program, fileName) {\n  var _a, _b;\n  const configFile = program.getCompilerOptions().configFile;\n  if (!((_a = configFile == null ? void 0 : configFile.configFileSpecs) == null ? void 0 : _a.validatedIncludeSpecs)) return void 0;\n  if (configFile.configFileSpecs.isDefaultIncludeSpec) return true;\n  const isJsonFile = fileExtensionIs(fileName, \".json\" /* Json */);\n  const basePath = getDirectoryPath(getNormalizedAbsolutePath(configFile.fileName, program.getCurrentDirectory()));\n  const useCaseSensitiveFileNames2 = program.useCaseSensitiveFileNames();\n  const index = findIndex((_b = configFile == null ? void 0 : configFile.configFileSpecs) == null ? void 0 : _b.validatedIncludeSpecs, (includeSpec) => {\n    if (isJsonFile && !endsWith(includeSpec, \".json\" /* Json */)) return false;\n    const pattern = getPatternFromSpec(includeSpec, basePath, \"files\");\n    return !!pattern && getRegexFromPattern(`(?:${pattern})$`, useCaseSensitiveFileNames2).test(fileName);\n  });\n  return index !== -1 ? configFile.configFileSpecs.validatedIncludeSpecsBeforeSubstitution[index] : void 0;\n}\nfunction fileIncludeReasonToDiagnostics(program, reason, fileNameConvertor) {\n  var _a, _b;\n  const options = program.getCompilerOptions();\n  if (isReferencedFile(reason)) {\n    const referenceLocation = getReferencedFileLocation(program, reason);\n    const referenceText = isReferenceFileLocation(referenceLocation) ? referenceLocation.file.text.substring(referenceLocation.pos, referenceLocation.end) : `\"${referenceLocation.text}\"`;\n    let message;\n    Debug.assert(isReferenceFileLocation(referenceLocation) || reason.kind === 3 /* Import */, \"Only synthetic references are imports\");\n    switch (reason.kind) {\n      case 3 /* Import */:\n        if (isReferenceFileLocation(referenceLocation)) {\n          message = referenceLocation.packageId ? Diagnostics.Imported_via_0_from_file_1_with_packageId_2 : Diagnostics.Imported_via_0_from_file_1;\n        } else if (referenceLocation.text === externalHelpersModuleNameText) {\n          message = referenceLocation.packageId ? Diagnostics.Imported_via_0_from_file_1_with_packageId_2_to_import_importHelpers_as_specified_in_compilerOptions : Diagnostics.Imported_via_0_from_file_1_to_import_importHelpers_as_specified_in_compilerOptions;\n        } else {\n          message = referenceLocation.packageId ? Diagnostics.Imported_via_0_from_file_1_with_packageId_2_to_import_jsx_and_jsxs_factory_functions : Diagnostics.Imported_via_0_from_file_1_to_import_jsx_and_jsxs_factory_functions;\n        }\n        break;\n      case 4 /* ReferenceFile */:\n        Debug.assert(!referenceLocation.packageId);\n        message = Diagnostics.Referenced_via_0_from_file_1;\n        break;\n      case 5 /* TypeReferenceDirective */:\n        message = referenceLocation.packageId ? Diagnostics.Type_library_referenced_via_0_from_file_1_with_packageId_2 : Diagnostics.Type_library_referenced_via_0_from_file_1;\n        break;\n      case 7 /* LibReferenceDirective */:\n        Debug.assert(!referenceLocation.packageId);\n        message = Diagnostics.Library_referenced_via_0_from_file_1;\n        break;\n      default:\n        Debug.assertNever(reason);\n    }\n    return chainDiagnosticMessages(\n      /*details*/\n      void 0,\n      message,\n      referenceText,\n      toFileName(referenceLocation.file, fileNameConvertor),\n      referenceLocation.packageId && packageIdToString(referenceLocation.packageId)\n    );\n  }\n  switch (reason.kind) {\n    case 0 /* RootFile */:\n      if (!((_a = options.configFile) == null ? void 0 : _a.configFileSpecs)) return chainDiagnosticMessages(\n        /*details*/\n        void 0,\n        Diagnostics.Root_file_specified_for_compilation\n      );\n      const fileName = getNormalizedAbsolutePath(program.getRootFileNames()[reason.index], program.getCurrentDirectory());\n      const matchedByFiles = getMatchedFileSpec(program, fileName);\n      if (matchedByFiles) return chainDiagnosticMessages(\n        /*details*/\n        void 0,\n        Diagnostics.Part_of_files_list_in_tsconfig_json\n      );\n      const matchedByInclude = getMatchedIncludeSpec(program, fileName);\n      return isString(matchedByInclude) ? chainDiagnosticMessages(\n        /*details*/\n        void 0,\n        Diagnostics.Matched_by_include_pattern_0_in_1,\n        matchedByInclude,\n        toFileName(options.configFile, fileNameConvertor)\n      ) : (\n        // Could be additional files specified as roots or matched by default include\n        chainDiagnosticMessages(\n          /*details*/\n          void 0,\n          matchedByInclude ? Diagnostics.Matched_by_default_include_pattern_Asterisk_Asterisk_Slash_Asterisk : Diagnostics.Root_file_specified_for_compilation\n        )\n      );\n    case 1 /* SourceFromProjectReference */:\n    case 2 /* OutputFromProjectReference */:\n      const isOutput = reason.kind === 2 /* OutputFromProjectReference */;\n      const referencedResolvedRef = Debug.checkDefined((_b = program.getResolvedProjectReferences()) == null ? void 0 : _b[reason.index]);\n      return chainDiagnosticMessages(\n        /*details*/\n        void 0,\n        options.outFile ? isOutput ? Diagnostics.Output_from_referenced_project_0_included_because_1_specified : Diagnostics.Source_from_referenced_project_0_included_because_1_specified : isOutput ? Diagnostics.Output_from_referenced_project_0_included_because_module_is_specified_as_none : Diagnostics.Source_from_referenced_project_0_included_because_module_is_specified_as_none,\n        toFileName(referencedResolvedRef.sourceFile.fileName, fileNameConvertor),\n        options.outFile ? \"--outFile\" : \"--out\"\n      );\n    case 8 /* AutomaticTypeDirectiveFile */: {\n      const messageAndArgs = options.types ? reason.packageId ? [Diagnostics.Entry_point_of_type_library_0_specified_in_compilerOptions_with_packageId_1, reason.typeReference, packageIdToString(reason.packageId)] : [Diagnostics.Entry_point_of_type_library_0_specified_in_compilerOptions, reason.typeReference] : reason.packageId ? [Diagnostics.Entry_point_for_implicit_type_library_0_with_packageId_1, reason.typeReference, packageIdToString(reason.packageId)] : [Diagnostics.Entry_point_for_implicit_type_library_0, reason.typeReference];\n      return chainDiagnosticMessages(\n        /*details*/\n        void 0,\n        ...messageAndArgs\n      );\n    }\n    case 6 /* LibFile */: {\n      if (reason.index !== void 0) return chainDiagnosticMessages(\n        /*details*/\n        void 0,\n        Diagnostics.Library_0_specified_in_compilerOptions,\n        options.lib[reason.index]\n      );\n      const target = getNameOfScriptTarget(getEmitScriptTarget(options));\n      const messageAndArgs = target ? [Diagnostics.Default_library_for_target_0, target] : [Diagnostics.Default_library];\n      return chainDiagnosticMessages(\n        /*details*/\n        void 0,\n        ...messageAndArgs\n      );\n    }\n    default:\n      Debug.assertNever(reason);\n  }\n}\nfunction toFileName(file, fileNameConvertor) {\n  const fileName = isString(file) ? file : file.fileName;\n  return fileNameConvertor ? fileNameConvertor(fileName) : fileName;\n}\nfunction emitFilesAndReportErrors(program, reportDiagnostic, write, reportSummary, writeFile2, cancellationToken, emitOnlyDtsFiles, customTransformers) {\n  const options = program.getCompilerOptions();\n  const allDiagnostics = program.getConfigFileParsingDiagnostics().slice();\n  const configFileParsingDiagnosticsLength = allDiagnostics.length;\n  addRange(allDiagnostics, program.getSyntacticDiagnostics(\n    /*sourceFile*/\n    void 0,\n    cancellationToken\n  ));\n  if (allDiagnostics.length === configFileParsingDiagnosticsLength) {\n    addRange(allDiagnostics, program.getOptionsDiagnostics(cancellationToken));\n    if (!options.listFilesOnly) {\n      addRange(allDiagnostics, program.getGlobalDiagnostics(cancellationToken));\n      if (allDiagnostics.length === configFileParsingDiagnosticsLength) {\n        addRange(allDiagnostics, program.getSemanticDiagnostics(\n          /*sourceFile*/\n          void 0,\n          cancellationToken\n        ));\n      }\n      if (options.noEmit && getEmitDeclarations(options) && allDiagnostics.length === configFileParsingDiagnosticsLength) {\n        addRange(allDiagnostics, program.getDeclarationDiagnostics(\n          /*sourceFile*/\n          void 0,\n          cancellationToken\n        ));\n      }\n    }\n  }\n  const emitResult = options.listFilesOnly ? { emitSkipped: true, diagnostics: emptyArray } : program.emit(\n    /*targetSourceFile*/\n    void 0,\n    writeFile2,\n    cancellationToken,\n    emitOnlyDtsFiles,\n    customTransformers\n  );\n  addRange(allDiagnostics, emitResult.diagnostics);\n  const diagnostics = sortAndDeduplicateDiagnostics(allDiagnostics);\n  diagnostics.forEach(reportDiagnostic);\n  if (write) {\n    const currentDir = program.getCurrentDirectory();\n    forEach(emitResult.emittedFiles, (file) => {\n      const filepath = getNormalizedAbsolutePath(file, currentDir);\n      write(`TSFILE: ${filepath}`);\n    });\n    listFiles(program, write);\n  }\n  if (reportSummary) {\n    reportSummary(getErrorCountForSummary(diagnostics), getFilesInErrorForSummary(diagnostics));\n  }\n  return {\n    emitResult,\n    diagnostics\n  };\n}\nfunction emitFilesAndReportErrorsAndGetExitStatus(program, reportDiagnostic, write, reportSummary, writeFile2, cancellationToken, emitOnlyDtsFiles, customTransformers) {\n  const { emitResult, diagnostics } = emitFilesAndReportErrors(\n    program,\n    reportDiagnostic,\n    write,\n    reportSummary,\n    writeFile2,\n    cancellationToken,\n    emitOnlyDtsFiles,\n    customTransformers\n  );\n  if (emitResult.emitSkipped && diagnostics.length > 0) {\n    return 1 /* DiagnosticsPresent_OutputsSkipped */;\n  } else if (diagnostics.length > 0) {\n    return 2 /* DiagnosticsPresent_OutputsGenerated */;\n  }\n  return 0 /* Success */;\n}\nvar noopFileWatcher = { close: noop };\nvar returnNoopFileWatcher = () => noopFileWatcher;\nfunction createWatchHost(system = sys, reportWatchStatus2) {\n  const onWatchStatusChange = reportWatchStatus2 || createWatchStatusReporter(system);\n  return {\n    onWatchStatusChange,\n    watchFile: maybeBind(system, system.watchFile) || returnNoopFileWatcher,\n    watchDirectory: maybeBind(system, system.watchDirectory) || returnNoopFileWatcher,\n    setTimeout: maybeBind(system, system.setTimeout) || noop,\n    clearTimeout: maybeBind(system, system.clearTimeout) || noop,\n    preferNonRecursiveWatch: system.preferNonRecursiveWatch\n  };\n}\nvar WatchType = {\n  ConfigFile: \"Config file\",\n  ExtendedConfigFile: \"Extended config file\",\n  SourceFile: \"Source file\",\n  MissingFile: \"Missing file\",\n  WildcardDirectory: \"Wild card directory\",\n  FailedLookupLocations: \"Failed Lookup Locations\",\n  AffectingFileLocation: \"File location affecting resolution\",\n  TypeRoots: \"Type roots\",\n  ConfigFileOfReferencedProject: \"Config file of referened project\",\n  ExtendedConfigOfReferencedProject: \"Extended config file of referenced project\",\n  WildcardDirectoryOfReferencedProject: \"Wild card directory of referenced project\",\n  PackageJson: \"package.json file\",\n  ClosedScriptInfo: \"Closed Script info\",\n  ConfigFileForInferredRoot: \"Config file for the inferred project root\",\n  NodeModules: \"node_modules for closed script infos and package.jsons affecting module specifier cache\",\n  MissingSourceMapFile: \"Missing source map file\",\n  NoopConfigFileForInferredRoot: \"Noop Config file for the inferred project root\",\n  MissingGeneratedFile: \"Missing generated file\",\n  NodeModulesForModuleSpecifierCache: \"node_modules for module specifier cache invalidation\",\n  TypingInstallerLocationFile: \"File location for typing installer\",\n  TypingInstallerLocationDirectory: \"Directory location for typing installer\"\n};\nfunction createWatchFactory(host, options) {\n  const watchLogLevel = host.trace ? options.extendedDiagnostics ? 2 /* Verbose */ : options.diagnostics ? 1 /* TriggerOnly */ : 0 /* None */ : 0 /* None */;\n  const writeLog = watchLogLevel !== 0 /* None */ ? (s) => host.trace(s) : noop;\n  const result = getWatchFactory(host, watchLogLevel, writeLog);\n  result.writeLog = writeLog;\n  return result;\n}\nfunction createCompilerHostFromProgramHost(host, getCompilerOptions, directoryStructureHost = host) {\n  const useCaseSensitiveFileNames2 = host.useCaseSensitiveFileNames();\n  const compilerHost = {\n    getSourceFile: createGetSourceFile(\n      (fileName, encoding) => !encoding ? compilerHost.readFile(fileName) : host.readFile(fileName, encoding),\n      /*setParentNodes*/\n      void 0\n    ),\n    getDefaultLibLocation: maybeBind(host, host.getDefaultLibLocation),\n    getDefaultLibFileName: (options) => host.getDefaultLibFileName(options),\n    writeFile: createWriteFileMeasuringIO(\n      (path, data, writeByteOrderMark) => host.writeFile(path, data, writeByteOrderMark),\n      (path) => host.createDirectory(path),\n      (path) => host.directoryExists(path)\n    ),\n    getCurrentDirectory: memoize(() => host.getCurrentDirectory()),\n    useCaseSensitiveFileNames: () => useCaseSensitiveFileNames2,\n    getCanonicalFileName: createGetCanonicalFileName(useCaseSensitiveFileNames2),\n    getNewLine: () => getNewLineCharacter(getCompilerOptions()),\n    fileExists: (f) => host.fileExists(f),\n    readFile: (f) => host.readFile(f),\n    trace: maybeBind(host, host.trace),\n    directoryExists: maybeBind(directoryStructureHost, directoryStructureHost.directoryExists),\n    getDirectories: maybeBind(directoryStructureHost, directoryStructureHost.getDirectories),\n    realpath: maybeBind(host, host.realpath),\n    getEnvironmentVariable: maybeBind(host, host.getEnvironmentVariable) || (() => \"\"),\n    createHash: maybeBind(host, host.createHash),\n    readDirectory: maybeBind(host, host.readDirectory),\n    storeSignatureInfo: host.storeSignatureInfo,\n    jsDocParsingMode: host.jsDocParsingMode\n  };\n  return compilerHost;\n}\nfunction getSourceFileVersionAsHashFromText(host, text) {\n  if (text.match(sourceMapCommentRegExpDontCareLineStart)) {\n    let lineEnd = text.length;\n    let lineStart = lineEnd;\n    for (let pos = lineEnd - 1; pos >= 0; pos--) {\n      const ch = text.charCodeAt(pos);\n      switch (ch) {\n        case 10 /* lineFeed */:\n          if (pos && text.charCodeAt(pos - 1) === 13 /* carriageReturn */) {\n            pos--;\n          }\n        // falls through\n        case 13 /* carriageReturn */:\n          break;\n        default:\n          if (ch < 127 /* maxAsciiCharacter */ || !isLineBreak(ch)) {\n            lineStart = pos;\n            continue;\n          }\n          break;\n      }\n      const line = text.substring(lineStart, lineEnd);\n      if (line.match(sourceMapCommentRegExp)) {\n        text = text.substring(0, lineStart);\n        break;\n      } else if (!line.match(whitespaceOrMapCommentRegExp)) {\n        break;\n      }\n      lineEnd = lineStart;\n    }\n  }\n  return (host.createHash || generateDjb2Hash)(text);\n}\nfunction setGetSourceFileAsHashVersioned(compilerHost) {\n  const originalGetSourceFile = compilerHost.getSourceFile;\n  compilerHost.getSourceFile = (...args) => {\n    const result = originalGetSourceFile.call(compilerHost, ...args);\n    if (result) {\n      result.version = getSourceFileVersionAsHashFromText(compilerHost, result.text);\n    }\n    return result;\n  };\n}\nfunction createProgramHost(system, createProgram2) {\n  const getDefaultLibLocation = memoize(() => getDirectoryPath(normalizePath(system.getExecutingFilePath())));\n  return {\n    useCaseSensitiveFileNames: () => system.useCaseSensitiveFileNames,\n    getNewLine: () => system.newLine,\n    getCurrentDirectory: memoize(() => system.getCurrentDirectory()),\n    getDefaultLibLocation,\n    getDefaultLibFileName: (options) => combinePaths(getDefaultLibLocation(), getDefaultLibFileName(options)),\n    fileExists: (path) => system.fileExists(path),\n    readFile: (path, encoding) => system.readFile(path, encoding),\n    directoryExists: (path) => system.directoryExists(path),\n    getDirectories: (path) => system.getDirectories(path),\n    readDirectory: (path, extensions, exclude, include, depth) => system.readDirectory(path, extensions, exclude, include, depth),\n    realpath: maybeBind(system, system.realpath),\n    getEnvironmentVariable: maybeBind(system, system.getEnvironmentVariable),\n    trace: (s) => system.write(s + system.newLine),\n    createDirectory: (path) => system.createDirectory(path),\n    writeFile: (path, data, writeByteOrderMark) => system.writeFile(path, data, writeByteOrderMark),\n    createHash: maybeBind(system, system.createHash),\n    createProgram: createProgram2 || createEmitAndSemanticDiagnosticsBuilderProgram,\n    storeSignatureInfo: system.storeSignatureInfo,\n    now: maybeBind(system, system.now)\n  };\n}\nfunction createWatchCompilerHost(system = sys, createProgram2, reportDiagnostic, reportWatchStatus2) {\n  const write = (s) => system.write(s + system.newLine);\n  const result = createProgramHost(system, createProgram2);\n  copyProperties(result, createWatchHost(system, reportWatchStatus2));\n  result.afterProgramCreate = (builderProgram) => {\n    const compilerOptions = builderProgram.getCompilerOptions();\n    const newLine = getNewLineCharacter(compilerOptions);\n    emitFilesAndReportErrors(\n      builderProgram,\n      reportDiagnostic,\n      write,\n      (errorCount) => result.onWatchStatusChange(\n        createCompilerDiagnostic(getWatchErrorSummaryDiagnosticMessage(errorCount), errorCount),\n        newLine,\n        compilerOptions,\n        errorCount\n      )\n    );\n  };\n  return result;\n}\nfunction reportUnrecoverableDiagnostic(system, reportDiagnostic, diagnostic) {\n  reportDiagnostic(diagnostic);\n  system.exit(1 /* DiagnosticsPresent_OutputsSkipped */);\n}\nfunction createWatchCompilerHostOfConfigFile({\n  configFileName,\n  optionsToExtend,\n  watchOptionsToExtend,\n  extraFileExtensions,\n  system,\n  createProgram: createProgram2,\n  reportDiagnostic,\n  reportWatchStatus: reportWatchStatus2\n}) {\n  const diagnosticReporter = reportDiagnostic || createDiagnosticReporter(system);\n  const host = createWatchCompilerHost(system, createProgram2, diagnosticReporter, reportWatchStatus2);\n  host.onUnRecoverableConfigFileDiagnostic = (diagnostic) => reportUnrecoverableDiagnostic(system, diagnosticReporter, diagnostic);\n  host.configFileName = configFileName;\n  host.optionsToExtend = optionsToExtend;\n  host.watchOptionsToExtend = watchOptionsToExtend;\n  host.extraFileExtensions = extraFileExtensions;\n  return host;\n}\nfunction createWatchCompilerHostOfFilesAndCompilerOptions({\n  rootFiles,\n  options,\n  watchOptions,\n  projectReferences,\n  system,\n  createProgram: createProgram2,\n  reportDiagnostic,\n  reportWatchStatus: reportWatchStatus2\n}) {\n  const host = createWatchCompilerHost(system, createProgram2, reportDiagnostic || createDiagnosticReporter(system), reportWatchStatus2);\n  host.rootFiles = rootFiles;\n  host.options = options;\n  host.watchOptions = watchOptions;\n  host.projectReferences = projectReferences;\n  return host;\n}\nfunction performIncrementalCompilation(input) {\n  const system = input.system || sys;\n  const host = input.host || (input.host = createIncrementalCompilerHost(input.options, system));\n  const builderProgram = createIncrementalProgram(input);\n  const exitStatus = emitFilesAndReportErrorsAndGetExitStatus(\n    builderProgram,\n    input.reportDiagnostic || createDiagnosticReporter(system),\n    (s) => host.trace && host.trace(s),\n    input.reportErrorSummary || input.options.pretty ? (errorCount, filesInError) => system.write(getErrorSummaryText(errorCount, filesInError, system.newLine, host)) : void 0\n  );\n  if (input.afterProgramEmitAndDiagnostics) input.afterProgramEmitAndDiagnostics(builderProgram);\n  return exitStatus;\n}\n\n// src/compiler/watchPublic.ts\nfunction readBuilderProgram(compilerOptions, host) {\n  const buildInfoPath = getTsBuildInfoEmitOutputFilePath(compilerOptions);\n  if (!buildInfoPath) return void 0;\n  let buildInfo;\n  if (host.getBuildInfo) {\n    buildInfo = host.getBuildInfo(buildInfoPath, compilerOptions.configFilePath);\n  } else {\n    const content = host.readFile(buildInfoPath);\n    if (!content) return void 0;\n    buildInfo = getBuildInfo(buildInfoPath, content);\n  }\n  if (!buildInfo || buildInfo.version !== version || !isIncrementalBuildInfo(buildInfo)) return void 0;\n  return createBuilderProgramUsingIncrementalBuildInfo(buildInfo, buildInfoPath, host);\n}\nfunction createIncrementalCompilerHost(options, system = sys) {\n  const host = createCompilerHostWorker(\n    options,\n    /*setParentNodes*/\n    void 0,\n    system\n  );\n  host.createHash = maybeBind(system, system.createHash);\n  host.storeSignatureInfo = system.storeSignatureInfo;\n  setGetSourceFileAsHashVersioned(host);\n  changeCompilerHostLikeToUseCache(host, (fileName) => toPath(fileName, host.getCurrentDirectory(), host.getCanonicalFileName));\n  return host;\n}\nfunction createIncrementalProgram({\n  rootNames,\n  options,\n  configFileParsingDiagnostics,\n  projectReferences,\n  host,\n  createProgram: createProgram2\n}) {\n  host = host || createIncrementalCompilerHost(options);\n  createProgram2 = createProgram2 || createEmitAndSemanticDiagnosticsBuilderProgram;\n  const oldProgram = readBuilderProgram(options, host);\n  return createProgram2(rootNames, options, host, oldProgram, configFileParsingDiagnostics, projectReferences);\n}\nfunction createWatchCompilerHost2(rootFilesOrConfigFileName, options, system, createProgram2, reportDiagnostic, reportWatchStatus2, projectReferencesOrWatchOptionsToExtend, watchOptionsOrExtraFileExtensions) {\n  if (isArray(rootFilesOrConfigFileName)) {\n    return createWatchCompilerHostOfFilesAndCompilerOptions({\n      rootFiles: rootFilesOrConfigFileName,\n      options,\n      watchOptions: watchOptionsOrExtraFileExtensions,\n      projectReferences: projectReferencesOrWatchOptionsToExtend,\n      system,\n      createProgram: createProgram2,\n      reportDiagnostic,\n      reportWatchStatus: reportWatchStatus2\n    });\n  } else {\n    return createWatchCompilerHostOfConfigFile({\n      configFileName: rootFilesOrConfigFileName,\n      optionsToExtend: options,\n      watchOptionsToExtend: projectReferencesOrWatchOptionsToExtend,\n      extraFileExtensions: watchOptionsOrExtraFileExtensions,\n      system,\n      createProgram: createProgram2,\n      reportDiagnostic,\n      reportWatchStatus: reportWatchStatus2\n    });\n  }\n}\nfunction createWatchProgram(host) {\n  let builderProgram;\n  let updateLevel;\n  let missingFilesMap;\n  let watchedWildcardDirectories;\n  let staleWatches = /* @__PURE__ */ new Map([[void 0, void 0]]);\n  let timerToUpdateProgram;\n  let timerToInvalidateFailedLookupResolutions;\n  let parsedConfigs;\n  let sharedExtendedConfigFileWatchers;\n  let extendedConfigCache = host.extendedConfigCache;\n  let reportFileChangeDetectedOnCreateProgram = false;\n  const sourceFilesCache = /* @__PURE__ */ new Map();\n  let missingFilePathsRequestedForRelease;\n  let hasChangedCompilerOptions = false;\n  const useCaseSensitiveFileNames2 = host.useCaseSensitiveFileNames();\n  const currentDirectory = host.getCurrentDirectory();\n  const { configFileName, optionsToExtend: optionsToExtendForConfigFile = {}, watchOptionsToExtend, extraFileExtensions, createProgram: createProgram2 } = host;\n  let { rootFiles: rootFileNames, options: compilerOptions, watchOptions, projectReferences } = host;\n  let wildcardDirectories;\n  let configFileParsingDiagnostics;\n  let canConfigFileJsonReportNoInputFiles = false;\n  let hasChangedConfigFileParsingErrors = false;\n  const cachedDirectoryStructureHost = configFileName === void 0 ? void 0 : createCachedDirectoryStructureHost(host, currentDirectory, useCaseSensitiveFileNames2);\n  const directoryStructureHost = cachedDirectoryStructureHost || host;\n  const parseConfigFileHost = parseConfigHostFromCompilerHostLike(host, directoryStructureHost);\n  let newLine = updateNewLine();\n  if (configFileName && host.configFileParsingResult) {\n    setConfigFileParsingResult(host.configFileParsingResult);\n    newLine = updateNewLine();\n  }\n  reportWatchDiagnostic(Diagnostics.Starting_compilation_in_watch_mode);\n  if (configFileName && !host.configFileParsingResult) {\n    newLine = getNewLineCharacter(optionsToExtendForConfigFile);\n    Debug.assert(!rootFileNames);\n    parseConfigFile2();\n    newLine = updateNewLine();\n  }\n  Debug.assert(compilerOptions);\n  Debug.assert(rootFileNames);\n  const { watchFile: watchFile2, watchDirectory, writeLog } = createWatchFactory(host, compilerOptions);\n  const getCanonicalFileName = createGetCanonicalFileName(useCaseSensitiveFileNames2);\n  writeLog(`Current directory: ${currentDirectory} CaseSensitiveFileNames: ${useCaseSensitiveFileNames2}`);\n  let configFileWatcher;\n  if (configFileName) {\n    configFileWatcher = watchFile2(configFileName, scheduleProgramReload, 2e3 /* High */, watchOptions, WatchType.ConfigFile);\n  }\n  const compilerHost = createCompilerHostFromProgramHost(host, () => compilerOptions, directoryStructureHost);\n  setGetSourceFileAsHashVersioned(compilerHost);\n  const getNewSourceFile = compilerHost.getSourceFile;\n  compilerHost.getSourceFile = (fileName, ...args) => getVersionedSourceFileByPath(fileName, toPath3(fileName), ...args);\n  compilerHost.getSourceFileByPath = getVersionedSourceFileByPath;\n  compilerHost.getNewLine = () => newLine;\n  compilerHost.fileExists = fileExists;\n  compilerHost.onReleaseOldSourceFile = onReleaseOldSourceFile;\n  compilerHost.onReleaseParsedCommandLine = onReleaseParsedCommandLine;\n  compilerHost.toPath = toPath3;\n  compilerHost.getCompilationSettings = () => compilerOptions;\n  compilerHost.useSourceOfProjectReferenceRedirect = maybeBind(host, host.useSourceOfProjectReferenceRedirect);\n  compilerHost.preferNonRecursiveWatch = host.preferNonRecursiveWatch;\n  compilerHost.watchDirectoryOfFailedLookupLocation = (dir, cb, flags) => watchDirectory(dir, cb, flags, watchOptions, WatchType.FailedLookupLocations);\n  compilerHost.watchAffectingFileLocation = (file, cb) => watchFile2(file, cb, 2e3 /* High */, watchOptions, WatchType.AffectingFileLocation);\n  compilerHost.watchTypeRootsDirectory = (dir, cb, flags) => watchDirectory(dir, cb, flags, watchOptions, WatchType.TypeRoots);\n  compilerHost.getCachedDirectoryStructureHost = () => cachedDirectoryStructureHost;\n  compilerHost.scheduleInvalidateResolutionsOfFailedLookupLocations = scheduleInvalidateResolutionsOfFailedLookupLocations;\n  compilerHost.onInvalidatedResolution = scheduleProgramUpdate;\n  compilerHost.onChangedAutomaticTypeDirectiveNames = scheduleProgramUpdate;\n  compilerHost.fileIsOpen = returnFalse;\n  compilerHost.getCurrentProgram = getCurrentProgram;\n  compilerHost.writeLog = writeLog;\n  compilerHost.getParsedCommandLine = getParsedCommandLine;\n  const resolutionCache = createResolutionCache(\n    compilerHost,\n    configFileName ? getDirectoryPath(getNormalizedAbsolutePath(configFileName, currentDirectory)) : currentDirectory,\n    /*logChangesWhenResolvingModule*/\n    false\n  );\n  compilerHost.resolveModuleNameLiterals = maybeBind(host, host.resolveModuleNameLiterals);\n  compilerHost.resolveModuleNames = maybeBind(host, host.resolveModuleNames);\n  if (!compilerHost.resolveModuleNameLiterals && !compilerHost.resolveModuleNames) {\n    compilerHost.resolveModuleNameLiterals = resolutionCache.resolveModuleNameLiterals.bind(resolutionCache);\n  }\n  compilerHost.resolveTypeReferenceDirectiveReferences = maybeBind(host, host.resolveTypeReferenceDirectiveReferences);\n  compilerHost.resolveTypeReferenceDirectives = maybeBind(host, host.resolveTypeReferenceDirectives);\n  if (!compilerHost.resolveTypeReferenceDirectiveReferences && !compilerHost.resolveTypeReferenceDirectives) {\n    compilerHost.resolveTypeReferenceDirectiveReferences = resolutionCache.resolveTypeReferenceDirectiveReferences.bind(resolutionCache);\n  }\n  compilerHost.resolveLibrary = !host.resolveLibrary ? resolutionCache.resolveLibrary.bind(resolutionCache) : host.resolveLibrary.bind(host);\n  compilerHost.getModuleResolutionCache = host.resolveModuleNameLiterals || host.resolveModuleNames ? maybeBind(host, host.getModuleResolutionCache) : () => resolutionCache.getModuleResolutionCache();\n  const userProvidedResolution = !!host.resolveModuleNameLiterals || !!host.resolveTypeReferenceDirectiveReferences || !!host.resolveModuleNames || !!host.resolveTypeReferenceDirectives;\n  const customHasInvalidatedResolutions = userProvidedResolution ? maybeBind(host, host.hasInvalidatedResolutions) || returnTrue : returnFalse;\n  const customHasInvalidLibResolutions = host.resolveLibrary ? maybeBind(host, host.hasInvalidatedLibResolutions) || returnTrue : returnFalse;\n  builderProgram = readBuilderProgram(compilerOptions, compilerHost);\n  synchronizeProgram();\n  return configFileName ? { getCurrentProgram: getCurrentBuilderProgram, getProgram: updateProgram, close, getResolutionCache } : { getCurrentProgram: getCurrentBuilderProgram, getProgram: updateProgram, updateRootFileNames, close, getResolutionCache };\n  function close() {\n    clearInvalidateResolutionsOfFailedLookupLocations();\n    resolutionCache.clear();\n    clearMap(sourceFilesCache, (value) => {\n      if (value && value.fileWatcher) {\n        value.fileWatcher.close();\n        value.fileWatcher = void 0;\n      }\n    });\n    if (configFileWatcher) {\n      configFileWatcher.close();\n      configFileWatcher = void 0;\n    }\n    extendedConfigCache == null ? void 0 : extendedConfigCache.clear();\n    extendedConfigCache = void 0;\n    if (sharedExtendedConfigFileWatchers) {\n      clearMap(sharedExtendedConfigFileWatchers, closeFileWatcherOf);\n      sharedExtendedConfigFileWatchers = void 0;\n    }\n    if (watchedWildcardDirectories) {\n      clearMap(watchedWildcardDirectories, closeFileWatcherOf);\n      watchedWildcardDirectories = void 0;\n    }\n    if (missingFilesMap) {\n      clearMap(missingFilesMap, closeFileWatcher);\n      missingFilesMap = void 0;\n    }\n    if (parsedConfigs) {\n      clearMap(parsedConfigs, (config) => {\n        var _a;\n        (_a = config.watcher) == null ? void 0 : _a.close();\n        config.watcher = void 0;\n        if (config.watchedDirectories) clearMap(config.watchedDirectories, closeFileWatcherOf);\n        config.watchedDirectories = void 0;\n      });\n      parsedConfigs = void 0;\n    }\n    builderProgram = void 0;\n  }\n  function getResolutionCache() {\n    return resolutionCache;\n  }\n  function getCurrentBuilderProgram() {\n    return builderProgram;\n  }\n  function getCurrentProgram() {\n    return builderProgram && builderProgram.getProgramOrUndefined();\n  }\n  function synchronizeProgram() {\n    writeLog(`Synchronizing program`);\n    Debug.assert(compilerOptions);\n    Debug.assert(rootFileNames);\n    clearInvalidateResolutionsOfFailedLookupLocations();\n    const program = getCurrentBuilderProgram();\n    if (hasChangedCompilerOptions) {\n      newLine = updateNewLine();\n      if (program && changesAffectModuleResolution(program.getCompilerOptions(), compilerOptions)) {\n        resolutionCache.onChangesAffectModuleResolution();\n      }\n    }\n    const { hasInvalidatedResolutions, hasInvalidatedLibResolutions } = resolutionCache.createHasInvalidatedResolutions(customHasInvalidatedResolutions, customHasInvalidLibResolutions);\n    const {\n      originalReadFile,\n      originalFileExists,\n      originalDirectoryExists,\n      originalCreateDirectory,\n      originalWriteFile,\n      readFileWithCache\n    } = changeCompilerHostLikeToUseCache(compilerHost, toPath3);\n    if (isProgramUptoDate(getCurrentProgram(), rootFileNames, compilerOptions, (path) => getSourceVersion(path, readFileWithCache), (fileName) => compilerHost.fileExists(fileName), hasInvalidatedResolutions, hasInvalidatedLibResolutions, hasChangedAutomaticTypeDirectiveNames, getParsedCommandLine, projectReferences)) {\n      if (hasChangedConfigFileParsingErrors) {\n        if (reportFileChangeDetectedOnCreateProgram) {\n          reportWatchDiagnostic(Diagnostics.File_change_detected_Starting_incremental_compilation);\n        }\n        builderProgram = createProgram2(\n          /*rootNames*/\n          void 0,\n          /*options*/\n          void 0,\n          compilerHost,\n          builderProgram,\n          configFileParsingDiagnostics,\n          projectReferences\n        );\n        hasChangedConfigFileParsingErrors = false;\n      }\n    } else {\n      if (reportFileChangeDetectedOnCreateProgram) {\n        reportWatchDiagnostic(Diagnostics.File_change_detected_Starting_incremental_compilation);\n      }\n      createNewProgram(hasInvalidatedResolutions, hasInvalidatedLibResolutions);\n    }\n    reportFileChangeDetectedOnCreateProgram = false;\n    if (host.afterProgramCreate && program !== builderProgram) {\n      host.afterProgramCreate(builderProgram);\n    }\n    compilerHost.readFile = originalReadFile;\n    compilerHost.fileExists = originalFileExists;\n    compilerHost.directoryExists = originalDirectoryExists;\n    compilerHost.createDirectory = originalCreateDirectory;\n    compilerHost.writeFile = originalWriteFile;\n    staleWatches == null ? void 0 : staleWatches.forEach((configFile, configPath) => {\n      if (!configPath) {\n        watchConfigFileWildCardDirectories();\n        if (configFileName) updateExtendedConfigFilesWatches(toPath3(configFileName), compilerOptions, watchOptions, WatchType.ExtendedConfigFile);\n      } else {\n        const config = parsedConfigs == null ? void 0 : parsedConfigs.get(configPath);\n        if (config) watchReferencedProject(configFile, configPath, config);\n      }\n    });\n    staleWatches = void 0;\n    return builderProgram;\n  }\n  function createNewProgram(hasInvalidatedResolutions, hasInvalidatedLibResolutions) {\n    writeLog(\"CreatingProgramWith::\");\n    writeLog(`  roots: ${JSON.stringify(rootFileNames)}`);\n    writeLog(`  options: ${JSON.stringify(compilerOptions)}`);\n    if (projectReferences) writeLog(`  projectReferences: ${JSON.stringify(projectReferences)}`);\n    const needsUpdateInTypeRootWatch = hasChangedCompilerOptions || !getCurrentProgram();\n    hasChangedCompilerOptions = false;\n    hasChangedConfigFileParsingErrors = false;\n    resolutionCache.startCachingPerDirectoryResolution();\n    compilerHost.hasInvalidatedResolutions = hasInvalidatedResolutions;\n    compilerHost.hasInvalidatedLibResolutions = hasInvalidatedLibResolutions;\n    compilerHost.hasChangedAutomaticTypeDirectiveNames = hasChangedAutomaticTypeDirectiveNames;\n    const oldProgram = getCurrentProgram();\n    builderProgram = createProgram2(rootFileNames, compilerOptions, compilerHost, builderProgram, configFileParsingDiagnostics, projectReferences);\n    resolutionCache.finishCachingPerDirectoryResolution(builderProgram.getProgram(), oldProgram);\n    updateMissingFilePathsWatch(\n      builderProgram.getProgram(),\n      missingFilesMap || (missingFilesMap = /* @__PURE__ */ new Map()),\n      watchMissingFilePath\n    );\n    if (needsUpdateInTypeRootWatch) {\n      resolutionCache.updateTypeRootsWatch();\n    }\n    if (missingFilePathsRequestedForRelease) {\n      for (const missingFilePath of missingFilePathsRequestedForRelease) {\n        if (!missingFilesMap.has(missingFilePath)) {\n          sourceFilesCache.delete(missingFilePath);\n        }\n      }\n      missingFilePathsRequestedForRelease = void 0;\n    }\n  }\n  function updateRootFileNames(files) {\n    Debug.assert(!configFileName, \"Cannot update root file names with config file watch mode\");\n    rootFileNames = files;\n    scheduleProgramUpdate();\n  }\n  function updateNewLine() {\n    return getNewLineCharacter(compilerOptions || optionsToExtendForConfigFile);\n  }\n  function toPath3(fileName) {\n    return toPath(fileName, currentDirectory, getCanonicalFileName);\n  }\n  function isFileMissingOnHost(hostSourceFile) {\n    return typeof hostSourceFile === \"boolean\";\n  }\n  function isFilePresenceUnknownOnHost(hostSourceFile) {\n    return typeof hostSourceFile.version === \"boolean\";\n  }\n  function fileExists(fileName) {\n    const path = toPath3(fileName);\n    if (isFileMissingOnHost(sourceFilesCache.get(path))) {\n      return false;\n    }\n    return directoryStructureHost.fileExists(fileName);\n  }\n  function getVersionedSourceFileByPath(fileName, path, languageVersionOrOptions, onError, shouldCreateNewSourceFile) {\n    const hostSourceFile = sourceFilesCache.get(path);\n    if (isFileMissingOnHost(hostSourceFile)) {\n      return void 0;\n    }\n    const impliedNodeFormat = typeof languageVersionOrOptions === \"object\" ? languageVersionOrOptions.impliedNodeFormat : void 0;\n    if (hostSourceFile === void 0 || shouldCreateNewSourceFile || isFilePresenceUnknownOnHost(hostSourceFile) || hostSourceFile.sourceFile.impliedNodeFormat !== impliedNodeFormat) {\n      const sourceFile = getNewSourceFile(fileName, languageVersionOrOptions, onError);\n      if (hostSourceFile) {\n        if (sourceFile) {\n          hostSourceFile.sourceFile = sourceFile;\n          hostSourceFile.version = sourceFile.version;\n          if (!hostSourceFile.fileWatcher) {\n            hostSourceFile.fileWatcher = watchFilePath(path, fileName, onSourceFileChange, 250 /* Low */, watchOptions, WatchType.SourceFile);\n          }\n        } else {\n          if (hostSourceFile.fileWatcher) {\n            hostSourceFile.fileWatcher.close();\n          }\n          sourceFilesCache.set(path, false);\n        }\n      } else {\n        if (sourceFile) {\n          const fileWatcher = watchFilePath(path, fileName, onSourceFileChange, 250 /* Low */, watchOptions, WatchType.SourceFile);\n          sourceFilesCache.set(path, { sourceFile, version: sourceFile.version, fileWatcher });\n        } else {\n          sourceFilesCache.set(path, false);\n        }\n      }\n      return sourceFile;\n    }\n    return hostSourceFile.sourceFile;\n  }\n  function nextSourceFileVersion(path) {\n    const hostSourceFile = sourceFilesCache.get(path);\n    if (hostSourceFile !== void 0) {\n      if (isFileMissingOnHost(hostSourceFile)) {\n        sourceFilesCache.set(path, { version: false });\n      } else {\n        hostSourceFile.version = false;\n      }\n    }\n  }\n  function getSourceVersion(path, readFileWithCache) {\n    const hostSourceFile = sourceFilesCache.get(path);\n    if (!hostSourceFile) return void 0;\n    if (hostSourceFile.version) return hostSourceFile.version;\n    const text = readFileWithCache(path);\n    return text !== void 0 ? getSourceFileVersionAsHashFromText(compilerHost, text) : void 0;\n  }\n  function onReleaseOldSourceFile(oldSourceFile, _oldOptions, hasSourceFileByPath) {\n    const hostSourceFileInfo = sourceFilesCache.get(oldSourceFile.resolvedPath);\n    if (hostSourceFileInfo !== void 0) {\n      if (isFileMissingOnHost(hostSourceFileInfo)) {\n        (missingFilePathsRequestedForRelease || (missingFilePathsRequestedForRelease = [])).push(oldSourceFile.path);\n      } else if (hostSourceFileInfo.sourceFile === oldSourceFile) {\n        if (hostSourceFileInfo.fileWatcher) {\n          hostSourceFileInfo.fileWatcher.close();\n        }\n        sourceFilesCache.delete(oldSourceFile.resolvedPath);\n        if (!hasSourceFileByPath) {\n          resolutionCache.removeResolutionsOfFile(oldSourceFile.path);\n        }\n      }\n    }\n  }\n  function reportWatchDiagnostic(message) {\n    if (host.onWatchStatusChange) {\n      host.onWatchStatusChange(createCompilerDiagnostic(message), newLine, compilerOptions || optionsToExtendForConfigFile);\n    }\n  }\n  function hasChangedAutomaticTypeDirectiveNames() {\n    return resolutionCache.hasChangedAutomaticTypeDirectiveNames();\n  }\n  function clearInvalidateResolutionsOfFailedLookupLocations() {\n    if (!timerToInvalidateFailedLookupResolutions) return false;\n    host.clearTimeout(timerToInvalidateFailedLookupResolutions);\n    timerToInvalidateFailedLookupResolutions = void 0;\n    return true;\n  }\n  function scheduleInvalidateResolutionsOfFailedLookupLocations() {\n    if (!host.setTimeout || !host.clearTimeout) {\n      return resolutionCache.invalidateResolutionsOfFailedLookupLocations();\n    }\n    const pending = clearInvalidateResolutionsOfFailedLookupLocations();\n    writeLog(`Scheduling invalidateFailedLookup${pending ? \", Cancelled earlier one\" : \"\"}`);\n    timerToInvalidateFailedLookupResolutions = host.setTimeout(invalidateResolutionsOfFailedLookup, 250, \"timerToInvalidateFailedLookupResolutions\");\n  }\n  function invalidateResolutionsOfFailedLookup() {\n    timerToInvalidateFailedLookupResolutions = void 0;\n    if (resolutionCache.invalidateResolutionsOfFailedLookupLocations()) {\n      scheduleProgramUpdate();\n    }\n  }\n  function scheduleProgramUpdate() {\n    if (!host.setTimeout || !host.clearTimeout) {\n      return;\n    }\n    if (timerToUpdateProgram) {\n      host.clearTimeout(timerToUpdateProgram);\n    }\n    writeLog(\"Scheduling update\");\n    timerToUpdateProgram = host.setTimeout(updateProgramWithWatchStatus, 250, \"timerToUpdateProgram\");\n  }\n  function scheduleProgramReload() {\n    Debug.assert(!!configFileName);\n    updateLevel = 2 /* Full */;\n    scheduleProgramUpdate();\n  }\n  function updateProgramWithWatchStatus() {\n    timerToUpdateProgram = void 0;\n    reportFileChangeDetectedOnCreateProgram = true;\n    updateProgram();\n  }\n  function updateProgram() {\n    switch (updateLevel) {\n      case 1 /* RootNamesAndUpdate */:\n        reloadFileNamesFromConfigFile();\n        break;\n      case 2 /* Full */:\n        reloadConfigFile();\n        break;\n      default:\n        synchronizeProgram();\n        break;\n    }\n    return getCurrentBuilderProgram();\n  }\n  function reloadFileNamesFromConfigFile() {\n    writeLog(\"Reloading new file names and options\");\n    Debug.assert(compilerOptions);\n    Debug.assert(configFileName);\n    updateLevel = 0 /* Update */;\n    rootFileNames = getFileNamesFromConfigSpecs(compilerOptions.configFile.configFileSpecs, getNormalizedAbsolutePath(getDirectoryPath(configFileName), currentDirectory), compilerOptions, parseConfigFileHost, extraFileExtensions);\n    if (updateErrorForNoInputFiles(\n      rootFileNames,\n      getNormalizedAbsolutePath(configFileName, currentDirectory),\n      compilerOptions.configFile.configFileSpecs,\n      configFileParsingDiagnostics,\n      canConfigFileJsonReportNoInputFiles\n    )) {\n      hasChangedConfigFileParsingErrors = true;\n    }\n    synchronizeProgram();\n  }\n  function reloadConfigFile() {\n    Debug.assert(configFileName);\n    writeLog(`Reloading config file: ${configFileName}`);\n    updateLevel = 0 /* Update */;\n    if (cachedDirectoryStructureHost) {\n      cachedDirectoryStructureHost.clearCache();\n    }\n    parseConfigFile2();\n    hasChangedCompilerOptions = true;\n    (staleWatches ?? (staleWatches = /* @__PURE__ */ new Map())).set(void 0, void 0);\n    synchronizeProgram();\n  }\n  function parseConfigFile2() {\n    Debug.assert(configFileName);\n    setConfigFileParsingResult(\n      getParsedCommandLineOfConfigFile(\n        configFileName,\n        optionsToExtendForConfigFile,\n        parseConfigFileHost,\n        extendedConfigCache || (extendedConfigCache = /* @__PURE__ */ new Map()),\n        watchOptionsToExtend,\n        extraFileExtensions\n      )\n    );\n  }\n  function setConfigFileParsingResult(configFileParseResult) {\n    rootFileNames = configFileParseResult.fileNames;\n    compilerOptions = configFileParseResult.options;\n    watchOptions = configFileParseResult.watchOptions;\n    projectReferences = configFileParseResult.projectReferences;\n    wildcardDirectories = configFileParseResult.wildcardDirectories;\n    configFileParsingDiagnostics = getConfigFileParsingDiagnostics(configFileParseResult).slice();\n    canConfigFileJsonReportNoInputFiles = canJsonReportNoInputFiles(configFileParseResult.raw);\n    hasChangedConfigFileParsingErrors = true;\n  }\n  function getParsedCommandLine(configFileName2) {\n    const configPath = toPath3(configFileName2);\n    let config = parsedConfigs == null ? void 0 : parsedConfigs.get(configPath);\n    if (config) {\n      if (!config.updateLevel) return config.parsedCommandLine;\n      if (config.parsedCommandLine && config.updateLevel === 1 /* RootNamesAndUpdate */ && !host.getParsedCommandLine) {\n        writeLog(\"Reloading new file names and options\");\n        Debug.assert(compilerOptions);\n        const fileNames = getFileNamesFromConfigSpecs(\n          config.parsedCommandLine.options.configFile.configFileSpecs,\n          getNormalizedAbsolutePath(getDirectoryPath(configFileName2), currentDirectory),\n          compilerOptions,\n          parseConfigFileHost\n        );\n        config.parsedCommandLine = { ...config.parsedCommandLine, fileNames };\n        config.updateLevel = void 0;\n        return config.parsedCommandLine;\n      }\n    }\n    writeLog(`Loading config file: ${configFileName2}`);\n    const parsedCommandLine = host.getParsedCommandLine ? host.getParsedCommandLine(configFileName2) : getParsedCommandLineFromConfigFileHost(configFileName2);\n    if (config) {\n      config.parsedCommandLine = parsedCommandLine;\n      config.updateLevel = void 0;\n    } else {\n      (parsedConfigs || (parsedConfigs = /* @__PURE__ */ new Map())).set(configPath, config = { parsedCommandLine });\n    }\n    (staleWatches ?? (staleWatches = /* @__PURE__ */ new Map())).set(configPath, configFileName2);\n    return parsedCommandLine;\n  }\n  function getParsedCommandLineFromConfigFileHost(configFileName2) {\n    const onUnRecoverableConfigFileDiagnostic = parseConfigFileHost.onUnRecoverableConfigFileDiagnostic;\n    parseConfigFileHost.onUnRecoverableConfigFileDiagnostic = noop;\n    const parsedCommandLine = getParsedCommandLineOfConfigFile(\n      configFileName2,\n      /*optionsToExtend*/\n      void 0,\n      parseConfigFileHost,\n      extendedConfigCache || (extendedConfigCache = /* @__PURE__ */ new Map()),\n      watchOptionsToExtend\n    );\n    parseConfigFileHost.onUnRecoverableConfigFileDiagnostic = onUnRecoverableConfigFileDiagnostic;\n    return parsedCommandLine;\n  }\n  function onReleaseParsedCommandLine(fileName) {\n    var _a;\n    const path = toPath3(fileName);\n    const config = parsedConfigs == null ? void 0 : parsedConfigs.get(path);\n    if (!config) return;\n    parsedConfigs.delete(path);\n    if (config.watchedDirectories) clearMap(config.watchedDirectories, closeFileWatcherOf);\n    (_a = config.watcher) == null ? void 0 : _a.close();\n    clearSharedExtendedConfigFileWatcher(path, sharedExtendedConfigFileWatchers);\n  }\n  function watchFilePath(path, file, callback, pollingInterval, options, watchType) {\n    return watchFile2(file, (fileName, eventKind) => callback(fileName, eventKind, path), pollingInterval, options, watchType);\n  }\n  function onSourceFileChange(fileName, eventKind, path) {\n    updateCachedSystemWithFile(fileName, path, eventKind);\n    if (eventKind === 2 /* Deleted */ && sourceFilesCache.has(path)) {\n      resolutionCache.invalidateResolutionOfFile(path);\n    }\n    nextSourceFileVersion(path);\n    scheduleProgramUpdate();\n  }\n  function updateCachedSystemWithFile(fileName, path, eventKind) {\n    if (cachedDirectoryStructureHost) {\n      cachedDirectoryStructureHost.addOrDeleteFile(fileName, path, eventKind);\n    }\n  }\n  function watchMissingFilePath(missingFilePath, missingFileName) {\n    return (parsedConfigs == null ? void 0 : parsedConfigs.has(missingFilePath)) ? noopFileWatcher : watchFilePath(\n      missingFilePath,\n      missingFileName,\n      onMissingFileChange,\n      500 /* Medium */,\n      watchOptions,\n      WatchType.MissingFile\n    );\n  }\n  function onMissingFileChange(fileName, eventKind, missingFilePath) {\n    updateCachedSystemWithFile(fileName, missingFilePath, eventKind);\n    if (eventKind === 0 /* Created */ && missingFilesMap.has(missingFilePath)) {\n      missingFilesMap.get(missingFilePath).close();\n      missingFilesMap.delete(missingFilePath);\n      nextSourceFileVersion(missingFilePath);\n      scheduleProgramUpdate();\n    }\n  }\n  function watchConfigFileWildCardDirectories() {\n    updateWatchingWildcardDirectories(\n      watchedWildcardDirectories || (watchedWildcardDirectories = /* @__PURE__ */ new Map()),\n      wildcardDirectories,\n      watchWildcardDirectory\n    );\n  }\n  function watchWildcardDirectory(directory, flags) {\n    return watchDirectory(\n      directory,\n      (fileOrDirectory) => {\n        Debug.assert(configFileName);\n        Debug.assert(compilerOptions);\n        const fileOrDirectoryPath = toPath3(fileOrDirectory);\n        if (cachedDirectoryStructureHost) {\n          cachedDirectoryStructureHost.addOrDeleteFileOrDirectory(fileOrDirectory, fileOrDirectoryPath);\n        }\n        nextSourceFileVersion(fileOrDirectoryPath);\n        if (isIgnoredFileFromWildCardWatching({\n          watchedDirPath: toPath3(directory),\n          fileOrDirectory,\n          fileOrDirectoryPath,\n          configFileName,\n          extraFileExtensions,\n          options: compilerOptions,\n          program: getCurrentBuilderProgram() || rootFileNames,\n          currentDirectory,\n          useCaseSensitiveFileNames: useCaseSensitiveFileNames2,\n          writeLog,\n          toPath: toPath3\n        })) return;\n        if (updateLevel !== 2 /* Full */) {\n          updateLevel = 1 /* RootNamesAndUpdate */;\n          scheduleProgramUpdate();\n        }\n      },\n      flags,\n      watchOptions,\n      WatchType.WildcardDirectory\n    );\n  }\n  function updateExtendedConfigFilesWatches(forProjectPath, options, watchOptions2, watchType) {\n    updateSharedExtendedConfigFileWatcher(\n      forProjectPath,\n      options,\n      sharedExtendedConfigFileWatchers || (sharedExtendedConfigFileWatchers = /* @__PURE__ */ new Map()),\n      (extendedConfigFileName, extendedConfigFilePath) => watchFile2(\n        extendedConfigFileName,\n        (_fileName, eventKind) => {\n          var _a;\n          updateCachedSystemWithFile(extendedConfigFileName, extendedConfigFilePath, eventKind);\n          if (extendedConfigCache) cleanExtendedConfigCache(extendedConfigCache, extendedConfigFilePath, toPath3);\n          const projects = (_a = sharedExtendedConfigFileWatchers.get(extendedConfigFilePath)) == null ? void 0 : _a.projects;\n          if (!(projects == null ? void 0 : projects.size)) return;\n          projects.forEach((projectPath) => {\n            if (configFileName && toPath3(configFileName) === projectPath) {\n              updateLevel = 2 /* Full */;\n            } else {\n              const config = parsedConfigs == null ? void 0 : parsedConfigs.get(projectPath);\n              if (config) config.updateLevel = 2 /* Full */;\n              resolutionCache.removeResolutionsFromProjectReferenceRedirects(projectPath);\n            }\n            scheduleProgramUpdate();\n          });\n        },\n        2e3 /* High */,\n        watchOptions2,\n        watchType\n      ),\n      toPath3\n    );\n  }\n  function watchReferencedProject(configFileName2, configPath, commandLine) {\n    var _a, _b, _c, _d;\n    commandLine.watcher || (commandLine.watcher = watchFile2(\n      configFileName2,\n      (_fileName, eventKind) => {\n        updateCachedSystemWithFile(configFileName2, configPath, eventKind);\n        const config = parsedConfigs == null ? void 0 : parsedConfigs.get(configPath);\n        if (config) config.updateLevel = 2 /* Full */;\n        resolutionCache.removeResolutionsFromProjectReferenceRedirects(configPath);\n        scheduleProgramUpdate();\n      },\n      2e3 /* High */,\n      ((_a = commandLine.parsedCommandLine) == null ? void 0 : _a.watchOptions) || watchOptions,\n      WatchType.ConfigFileOfReferencedProject\n    ));\n    updateWatchingWildcardDirectories(\n      commandLine.watchedDirectories || (commandLine.watchedDirectories = /* @__PURE__ */ new Map()),\n      (_b = commandLine.parsedCommandLine) == null ? void 0 : _b.wildcardDirectories,\n      (directory, flags) => {\n        var _a2;\n        return watchDirectory(\n          directory,\n          (fileOrDirectory) => {\n            const fileOrDirectoryPath = toPath3(fileOrDirectory);\n            if (cachedDirectoryStructureHost) {\n              cachedDirectoryStructureHost.addOrDeleteFileOrDirectory(fileOrDirectory, fileOrDirectoryPath);\n            }\n            nextSourceFileVersion(fileOrDirectoryPath);\n            const config = parsedConfigs == null ? void 0 : parsedConfigs.get(configPath);\n            if (!(config == null ? void 0 : config.parsedCommandLine)) return;\n            if (isIgnoredFileFromWildCardWatching({\n              watchedDirPath: toPath3(directory),\n              fileOrDirectory,\n              fileOrDirectoryPath,\n              configFileName: configFileName2,\n              options: config.parsedCommandLine.options,\n              program: config.parsedCommandLine.fileNames,\n              currentDirectory,\n              useCaseSensitiveFileNames: useCaseSensitiveFileNames2,\n              writeLog,\n              toPath: toPath3\n            })) return;\n            if (config.updateLevel !== 2 /* Full */) {\n              config.updateLevel = 1 /* RootNamesAndUpdate */;\n              scheduleProgramUpdate();\n            }\n          },\n          flags,\n          ((_a2 = commandLine.parsedCommandLine) == null ? void 0 : _a2.watchOptions) || watchOptions,\n          WatchType.WildcardDirectoryOfReferencedProject\n        );\n      }\n    );\n    updateExtendedConfigFilesWatches(\n      configPath,\n      (_c = commandLine.parsedCommandLine) == null ? void 0 : _c.options,\n      ((_d = commandLine.parsedCommandLine) == null ? void 0 : _d.watchOptions) || watchOptions,\n      WatchType.ExtendedConfigOfReferencedProject\n    );\n  }\n}\n\n// src/compiler/tsbuild.ts\nvar UpToDateStatusType = /* @__PURE__ */ ((UpToDateStatusType2) => {\n  UpToDateStatusType2[UpToDateStatusType2[\"Unbuildable\"] = 0] = \"Unbuildable\";\n  UpToDateStatusType2[UpToDateStatusType2[\"UpToDate\"] = 1] = \"UpToDate\";\n  UpToDateStatusType2[UpToDateStatusType2[\"UpToDateWithUpstreamTypes\"] = 2] = \"UpToDateWithUpstreamTypes\";\n  UpToDateStatusType2[UpToDateStatusType2[\"OutputMissing\"] = 3] = \"OutputMissing\";\n  UpToDateStatusType2[UpToDateStatusType2[\"ErrorReadingFile\"] = 4] = \"ErrorReadingFile\";\n  UpToDateStatusType2[UpToDateStatusType2[\"OutOfDateWithSelf\"] = 5] = \"OutOfDateWithSelf\";\n  UpToDateStatusType2[UpToDateStatusType2[\"OutOfDateWithUpstream\"] = 6] = \"OutOfDateWithUpstream\";\n  UpToDateStatusType2[UpToDateStatusType2[\"OutOfDateBuildInfoWithPendingEmit\"] = 7] = \"OutOfDateBuildInfoWithPendingEmit\";\n  UpToDateStatusType2[UpToDateStatusType2[\"OutOfDateBuildInfoWithErrors\"] = 8] = \"OutOfDateBuildInfoWithErrors\";\n  UpToDateStatusType2[UpToDateStatusType2[\"OutOfDateOptions\"] = 9] = \"OutOfDateOptions\";\n  UpToDateStatusType2[UpToDateStatusType2[\"OutOfDateRoots\"] = 10] = \"OutOfDateRoots\";\n  UpToDateStatusType2[UpToDateStatusType2[\"UpstreamOutOfDate\"] = 11] = \"UpstreamOutOfDate\";\n  UpToDateStatusType2[UpToDateStatusType2[\"UpstreamBlocked\"] = 12] = \"UpstreamBlocked\";\n  UpToDateStatusType2[UpToDateStatusType2[\"ComputingUpstream\"] = 13] = \"ComputingUpstream\";\n  UpToDateStatusType2[UpToDateStatusType2[\"TsVersionOutputOfDate\"] = 14] = \"TsVersionOutputOfDate\";\n  UpToDateStatusType2[UpToDateStatusType2[\"UpToDateWithInputFileText\"] = 15] = \"UpToDateWithInputFileText\";\n  UpToDateStatusType2[UpToDateStatusType2[\"ContainerOnly\"] = 16] = \"ContainerOnly\";\n  UpToDateStatusType2[UpToDateStatusType2[\"ForceBuild\"] = 17] = \"ForceBuild\";\n  return UpToDateStatusType2;\n})(UpToDateStatusType || {});\nfunction resolveConfigFileProjectName(project) {\n  if (fileExtensionIs(project, \".json\" /* Json */)) {\n    return project;\n  }\n  return combinePaths(project, \"tsconfig.json\");\n}\n\n// src/compiler/tsbuildPublic.ts\nvar minimumDate = /* @__PURE__ */ new Date(-864e13);\nfunction getOrCreateValueFromConfigFileMap(configFileMap, resolved, createT) {\n  const existingValue = configFileMap.get(resolved);\n  let newValue;\n  if (!existingValue) {\n    newValue = createT();\n    configFileMap.set(resolved, newValue);\n  }\n  return existingValue || newValue;\n}\nfunction getOrCreateValueMapFromConfigFileMap(configFileMap, resolved) {\n  return getOrCreateValueFromConfigFileMap(configFileMap, resolved, () => /* @__PURE__ */ new Map());\n}\nfunction getCurrentTime(host) {\n  return host.now ? host.now() : /* @__PURE__ */ new Date();\n}\nfunction isCircularBuildOrder(buildOrder) {\n  return !!buildOrder && !!buildOrder.buildOrder;\n}\nfunction getBuildOrderFromAnyBuildOrder(anyBuildOrder) {\n  return isCircularBuildOrder(anyBuildOrder) ? anyBuildOrder.buildOrder : anyBuildOrder;\n}\nfunction createBuilderStatusReporter(system, pretty) {\n  return (diagnostic) => {\n    let output = pretty ? `[${formatColorAndReset(getLocaleTimeString(system), \"\\x1B[90m\" /* Grey */)}] ` : `${getLocaleTimeString(system)} - `;\n    output += `${flattenDiagnosticMessageText(diagnostic.messageText, system.newLine)}${system.newLine + system.newLine}`;\n    system.write(output);\n  };\n}\nfunction createSolutionBuilderHostBase(system, createProgram2, reportDiagnostic, reportSolutionBuilderStatus) {\n  const host = createProgramHost(system, createProgram2);\n  host.getModifiedTime = system.getModifiedTime ? (path) => system.getModifiedTime(path) : returnUndefined;\n  host.setModifiedTime = system.setModifiedTime ? (path, date) => system.setModifiedTime(path, date) : noop;\n  host.deleteFile = system.deleteFile ? (path) => system.deleteFile(path) : noop;\n  host.reportDiagnostic = reportDiagnostic || createDiagnosticReporter(system);\n  host.reportSolutionBuilderStatus = reportSolutionBuilderStatus || createBuilderStatusReporter(system);\n  host.now = maybeBind(system, system.now);\n  return host;\n}\nfunction createSolutionBuilderHost(system = sys, createProgram2, reportDiagnostic, reportSolutionBuilderStatus, reportErrorSummary2) {\n  const host = createSolutionBuilderHostBase(system, createProgram2, reportDiagnostic, reportSolutionBuilderStatus);\n  host.reportErrorSummary = reportErrorSummary2;\n  return host;\n}\nfunction createSolutionBuilderWithWatchHost(system = sys, createProgram2, reportDiagnostic, reportSolutionBuilderStatus, reportWatchStatus2) {\n  const host = createSolutionBuilderHostBase(system, createProgram2, reportDiagnostic, reportSolutionBuilderStatus);\n  const watchHost = createWatchHost(system, reportWatchStatus2);\n  copyProperties(host, watchHost);\n  return host;\n}\nfunction getCompilerOptionsOfBuildOptions(buildOptions) {\n  const result = {};\n  commonOptionsWithBuild.forEach((option) => {\n    if (hasProperty(buildOptions, option.name)) result[option.name] = buildOptions[option.name];\n  });\n  result.tscBuild = true;\n  return result;\n}\nfunction createSolutionBuilder(host, rootNames, defaultOptions) {\n  return createSolutionBuilderWorker(\n    /*watch*/\n    false,\n    host,\n    rootNames,\n    defaultOptions\n  );\n}\nfunction createSolutionBuilderWithWatch(host, rootNames, defaultOptions, baseWatchOptions) {\n  return createSolutionBuilderWorker(\n    /*watch*/\n    true,\n    host,\n    rootNames,\n    defaultOptions,\n    baseWatchOptions\n  );\n}\nfunction createSolutionBuilderState(watch, hostOrHostWithWatch, rootNames, options, baseWatchOptions) {\n  const host = hostOrHostWithWatch;\n  const hostWithWatch = hostOrHostWithWatch;\n  const baseCompilerOptions = getCompilerOptionsOfBuildOptions(options);\n  const compilerHost = createCompilerHostFromProgramHost(host, () => state.projectCompilerOptions);\n  setGetSourceFileAsHashVersioned(compilerHost);\n  compilerHost.getParsedCommandLine = (fileName) => parseConfigFile(state, fileName, toResolvedConfigFilePath(state, fileName));\n  compilerHost.resolveModuleNameLiterals = maybeBind(host, host.resolveModuleNameLiterals);\n  compilerHost.resolveTypeReferenceDirectiveReferences = maybeBind(host, host.resolveTypeReferenceDirectiveReferences);\n  compilerHost.resolveLibrary = maybeBind(host, host.resolveLibrary);\n  compilerHost.resolveModuleNames = maybeBind(host, host.resolveModuleNames);\n  compilerHost.resolveTypeReferenceDirectives = maybeBind(host, host.resolveTypeReferenceDirectives);\n  compilerHost.getModuleResolutionCache = maybeBind(host, host.getModuleResolutionCache);\n  let moduleResolutionCache, typeReferenceDirectiveResolutionCache;\n  if (!compilerHost.resolveModuleNameLiterals && !compilerHost.resolveModuleNames) {\n    moduleResolutionCache = createModuleResolutionCache(compilerHost.getCurrentDirectory(), compilerHost.getCanonicalFileName);\n    compilerHost.resolveModuleNameLiterals = (moduleNames, containingFile, redirectedReference, options2, containingSourceFile) => loadWithModeAwareCache(\n      moduleNames,\n      containingFile,\n      redirectedReference,\n      options2,\n      containingSourceFile,\n      host,\n      moduleResolutionCache,\n      createModuleResolutionLoader\n    );\n    compilerHost.getModuleResolutionCache = () => moduleResolutionCache;\n  }\n  if (!compilerHost.resolveTypeReferenceDirectiveReferences && !compilerHost.resolveTypeReferenceDirectives) {\n    typeReferenceDirectiveResolutionCache = createTypeReferenceDirectiveResolutionCache(\n      compilerHost.getCurrentDirectory(),\n      compilerHost.getCanonicalFileName,\n      /*options*/\n      void 0,\n      moduleResolutionCache == null ? void 0 : moduleResolutionCache.getPackageJsonInfoCache(),\n      moduleResolutionCache == null ? void 0 : moduleResolutionCache.optionsToRedirectsKey\n    );\n    compilerHost.resolveTypeReferenceDirectiveReferences = (typeDirectiveNames, containingFile, redirectedReference, options2, containingSourceFile) => loadWithModeAwareCache(\n      typeDirectiveNames,\n      containingFile,\n      redirectedReference,\n      options2,\n      containingSourceFile,\n      host,\n      typeReferenceDirectiveResolutionCache,\n      createTypeReferenceResolutionLoader\n    );\n  }\n  let libraryResolutionCache;\n  if (!compilerHost.resolveLibrary) {\n    libraryResolutionCache = createModuleResolutionCache(\n      compilerHost.getCurrentDirectory(),\n      compilerHost.getCanonicalFileName,\n      /*options*/\n      void 0,\n      moduleResolutionCache == null ? void 0 : moduleResolutionCache.getPackageJsonInfoCache()\n    );\n    compilerHost.resolveLibrary = (libraryName, resolveFrom, options2) => resolveLibrary(\n      libraryName,\n      resolveFrom,\n      options2,\n      host,\n      libraryResolutionCache\n    );\n  }\n  compilerHost.getBuildInfo = (fileName, configFilePath) => getBuildInfo3(\n    state,\n    fileName,\n    toResolvedConfigFilePath(state, configFilePath),\n    /*modifiedTime*/\n    void 0\n  );\n  const { watchFile: watchFile2, watchDirectory, writeLog } = createWatchFactory(hostWithWatch, options);\n  const state = {\n    host,\n    hostWithWatch,\n    parseConfigFileHost: parseConfigHostFromCompilerHostLike(host),\n    write: maybeBind(host, host.trace),\n    // State of solution\n    options,\n    baseCompilerOptions,\n    rootNames,\n    baseWatchOptions,\n    resolvedConfigFilePaths: /* @__PURE__ */ new Map(),\n    configFileCache: /* @__PURE__ */ new Map(),\n    projectStatus: /* @__PURE__ */ new Map(),\n    extendedConfigCache: /* @__PURE__ */ new Map(),\n    buildInfoCache: /* @__PURE__ */ new Map(),\n    outputTimeStamps: /* @__PURE__ */ new Map(),\n    builderPrograms: /* @__PURE__ */ new Map(),\n    diagnostics: /* @__PURE__ */ new Map(),\n    projectPendingBuild: /* @__PURE__ */ new Map(),\n    projectErrorsReported: /* @__PURE__ */ new Map(),\n    compilerHost,\n    moduleResolutionCache,\n    typeReferenceDirectiveResolutionCache,\n    libraryResolutionCache,\n    // Mutable state\n    buildOrder: void 0,\n    readFileWithCache: (f) => host.readFile(f),\n    projectCompilerOptions: baseCompilerOptions,\n    cache: void 0,\n    allProjectBuildPending: true,\n    needsSummary: true,\n    watchAllProjectsPending: watch,\n    // Watch state\n    watch,\n    allWatchedWildcardDirectories: /* @__PURE__ */ new Map(),\n    allWatchedInputFiles: /* @__PURE__ */ new Map(),\n    allWatchedConfigFiles: /* @__PURE__ */ new Map(),\n    allWatchedExtendedConfigFiles: /* @__PURE__ */ new Map(),\n    allWatchedPackageJsonFiles: /* @__PURE__ */ new Map(),\n    filesWatched: /* @__PURE__ */ new Map(),\n    lastCachedPackageJsonLookups: /* @__PURE__ */ new Map(),\n    timerToBuildInvalidatedProject: void 0,\n    reportFileChangeDetected: false,\n    watchFile: watchFile2,\n    watchDirectory,\n    writeLog\n  };\n  return state;\n}\nfunction toPath2(state, fileName) {\n  return toPath(fileName, state.compilerHost.getCurrentDirectory(), state.compilerHost.getCanonicalFileName);\n}\nfunction toResolvedConfigFilePath(state, fileName) {\n  const { resolvedConfigFilePaths } = state;\n  const path = resolvedConfigFilePaths.get(fileName);\n  if (path !== void 0) return path;\n  const resolvedPath = toPath2(state, fileName);\n  resolvedConfigFilePaths.set(fileName, resolvedPath);\n  return resolvedPath;\n}\nfunction isParsedCommandLine(entry) {\n  return !!entry.options;\n}\nfunction getCachedParsedConfigFile(state, configFilePath) {\n  const value = state.configFileCache.get(configFilePath);\n  return value && isParsedCommandLine(value) ? value : void 0;\n}\nfunction parseConfigFile(state, configFileName, configFilePath) {\n  const { configFileCache } = state;\n  const value = configFileCache.get(configFilePath);\n  if (value) {\n    return isParsedCommandLine(value) ? value : void 0;\n  }\n  mark(\"SolutionBuilder::beforeConfigFileParsing\");\n  let diagnostic;\n  const { parseConfigFileHost, baseCompilerOptions, baseWatchOptions, extendedConfigCache, host } = state;\n  let parsed;\n  if (host.getParsedCommandLine) {\n    parsed = host.getParsedCommandLine(configFileName);\n    if (!parsed) diagnostic = createCompilerDiagnostic(Diagnostics.File_0_not_found, configFileName);\n  } else {\n    parseConfigFileHost.onUnRecoverableConfigFileDiagnostic = (d) => diagnostic = d;\n    parsed = getParsedCommandLineOfConfigFile(configFileName, baseCompilerOptions, parseConfigFileHost, extendedConfigCache, baseWatchOptions);\n    parseConfigFileHost.onUnRecoverableConfigFileDiagnostic = noop;\n  }\n  configFileCache.set(configFilePath, parsed || diagnostic);\n  mark(\"SolutionBuilder::afterConfigFileParsing\");\n  measure(\"SolutionBuilder::Config file parsing\", \"SolutionBuilder::beforeConfigFileParsing\", \"SolutionBuilder::afterConfigFileParsing\");\n  return parsed;\n}\nfunction resolveProjectName(state, name) {\n  return resolveConfigFileProjectName(resolvePath(state.compilerHost.getCurrentDirectory(), name));\n}\nfunction createBuildOrder(state, roots) {\n  const temporaryMarks = /* @__PURE__ */ new Map();\n  const permanentMarks = /* @__PURE__ */ new Map();\n  const circularityReportStack = [];\n  let buildOrder;\n  let circularDiagnostics;\n  for (const root of roots) {\n    visit(root);\n  }\n  return circularDiagnostics ? { buildOrder: buildOrder || emptyArray, circularDiagnostics } : buildOrder || emptyArray;\n  function visit(configFileName, inCircularContext) {\n    const projPath = toResolvedConfigFilePath(state, configFileName);\n    if (permanentMarks.has(projPath)) return;\n    if (temporaryMarks.has(projPath)) {\n      if (!inCircularContext) {\n        (circularDiagnostics || (circularDiagnostics = [])).push(\n          createCompilerDiagnostic(\n            Diagnostics.Project_references_may_not_form_a_circular_graph_Cycle_detected_Colon_0,\n            circularityReportStack.join(\"\\r\\n\")\n          )\n        );\n      }\n      return;\n    }\n    temporaryMarks.set(projPath, true);\n    circularityReportStack.push(configFileName);\n    const parsed = parseConfigFile(state, configFileName, projPath);\n    if (parsed && parsed.projectReferences) {\n      for (const ref of parsed.projectReferences) {\n        const resolvedRefPath = resolveProjectName(state, ref.path);\n        visit(resolvedRefPath, inCircularContext || ref.circular);\n      }\n    }\n    circularityReportStack.pop();\n    permanentMarks.set(projPath, true);\n    (buildOrder || (buildOrder = [])).push(configFileName);\n  }\n}\nfunction getBuildOrder(state) {\n  return state.buildOrder || createStateBuildOrder(state);\n}\nfunction createStateBuildOrder(state) {\n  const buildOrder = createBuildOrder(state, state.rootNames.map((f) => resolveProjectName(state, f)));\n  state.resolvedConfigFilePaths.clear();\n  const currentProjects = new Set(\n    getBuildOrderFromAnyBuildOrder(buildOrder).map(\n      (resolved) => toResolvedConfigFilePath(state, resolved)\n    )\n  );\n  const noopOnDelete = { onDeleteValue: noop };\n  mutateMapSkippingNewValues(state.configFileCache, currentProjects, noopOnDelete);\n  mutateMapSkippingNewValues(state.projectStatus, currentProjects, noopOnDelete);\n  mutateMapSkippingNewValues(state.builderPrograms, currentProjects, noopOnDelete);\n  mutateMapSkippingNewValues(state.diagnostics, currentProjects, noopOnDelete);\n  mutateMapSkippingNewValues(state.projectPendingBuild, currentProjects, noopOnDelete);\n  mutateMapSkippingNewValues(state.projectErrorsReported, currentProjects, noopOnDelete);\n  mutateMapSkippingNewValues(state.buildInfoCache, currentProjects, noopOnDelete);\n  mutateMapSkippingNewValues(state.outputTimeStamps, currentProjects, noopOnDelete);\n  mutateMapSkippingNewValues(state.lastCachedPackageJsonLookups, currentProjects, noopOnDelete);\n  if (state.watch) {\n    mutateMapSkippingNewValues(\n      state.allWatchedConfigFiles,\n      currentProjects,\n      { onDeleteValue: closeFileWatcher }\n    );\n    state.allWatchedExtendedConfigFiles.forEach((watcher) => {\n      watcher.projects.forEach((project) => {\n        if (!currentProjects.has(project)) {\n          watcher.projects.delete(project);\n        }\n      });\n      watcher.close();\n    });\n    mutateMapSkippingNewValues(\n      state.allWatchedWildcardDirectories,\n      currentProjects,\n      { onDeleteValue: (existingMap) => existingMap.forEach(closeFileWatcherOf) }\n    );\n    mutateMapSkippingNewValues(\n      state.allWatchedInputFiles,\n      currentProjects,\n      { onDeleteValue: (existingMap) => existingMap.forEach(closeFileWatcher) }\n    );\n    mutateMapSkippingNewValues(\n      state.allWatchedPackageJsonFiles,\n      currentProjects,\n      { onDeleteValue: (existingMap) => existingMap.forEach(closeFileWatcher) }\n    );\n  }\n  return state.buildOrder = buildOrder;\n}\nfunction getBuildOrderFor(state, project, onlyReferences) {\n  const resolvedProject = project && resolveProjectName(state, project);\n  const buildOrderFromState = getBuildOrder(state);\n  if (isCircularBuildOrder(buildOrderFromState)) return buildOrderFromState;\n  if (resolvedProject) {\n    const projectPath = toResolvedConfigFilePath(state, resolvedProject);\n    const projectIndex = findIndex(\n      buildOrderFromState,\n      (configFileName) => toResolvedConfigFilePath(state, configFileName) === projectPath\n    );\n    if (projectIndex === -1) return void 0;\n  }\n  const buildOrder = resolvedProject ? createBuildOrder(state, [resolvedProject]) : buildOrderFromState;\n  Debug.assert(!isCircularBuildOrder(buildOrder));\n  Debug.assert(!onlyReferences || resolvedProject !== void 0);\n  Debug.assert(!onlyReferences || buildOrder[buildOrder.length - 1] === resolvedProject);\n  return onlyReferences ? buildOrder.slice(0, buildOrder.length - 1) : buildOrder;\n}\nfunction enableCache(state) {\n  if (state.cache) {\n    disableCache(state);\n  }\n  const { compilerHost, host } = state;\n  const originalReadFileWithCache = state.readFileWithCache;\n  const originalGetSourceFile = compilerHost.getSourceFile;\n  const {\n    originalReadFile,\n    originalFileExists,\n    originalDirectoryExists,\n    originalCreateDirectory,\n    originalWriteFile,\n    getSourceFileWithCache,\n    readFileWithCache\n  } = changeCompilerHostLikeToUseCache(\n    host,\n    (fileName) => toPath2(state, fileName),\n    (...args) => originalGetSourceFile.call(compilerHost, ...args)\n  );\n  state.readFileWithCache = readFileWithCache;\n  compilerHost.getSourceFile = getSourceFileWithCache;\n  state.cache = {\n    originalReadFile,\n    originalFileExists,\n    originalDirectoryExists,\n    originalCreateDirectory,\n    originalWriteFile,\n    originalReadFileWithCache,\n    originalGetSourceFile\n  };\n}\nfunction disableCache(state) {\n  if (!state.cache) return;\n  const { cache, host, compilerHost, extendedConfigCache, moduleResolutionCache, typeReferenceDirectiveResolutionCache, libraryResolutionCache } = state;\n  host.readFile = cache.originalReadFile;\n  host.fileExists = cache.originalFileExists;\n  host.directoryExists = cache.originalDirectoryExists;\n  host.createDirectory = cache.originalCreateDirectory;\n  host.writeFile = cache.originalWriteFile;\n  compilerHost.getSourceFile = cache.originalGetSourceFile;\n  state.readFileWithCache = cache.originalReadFileWithCache;\n  extendedConfigCache.clear();\n  moduleResolutionCache == null ? void 0 : moduleResolutionCache.clear();\n  typeReferenceDirectiveResolutionCache == null ? void 0 : typeReferenceDirectiveResolutionCache.clear();\n  libraryResolutionCache == null ? void 0 : libraryResolutionCache.clear();\n  state.cache = void 0;\n}\nfunction clearProjectStatus(state, resolved) {\n  state.projectStatus.delete(resolved);\n  state.diagnostics.delete(resolved);\n}\nfunction addProjToQueue({ projectPendingBuild }, proj, updateLevel) {\n  const value = projectPendingBuild.get(proj);\n  if (value === void 0) {\n    projectPendingBuild.set(proj, updateLevel);\n  } else if (value < updateLevel) {\n    projectPendingBuild.set(proj, updateLevel);\n  }\n}\nfunction setupInitialBuild(state, cancellationToken) {\n  if (!state.allProjectBuildPending) return;\n  state.allProjectBuildPending = false;\n  if (state.options.watch) reportWatchStatus(state, Diagnostics.Starting_compilation_in_watch_mode);\n  enableCache(state);\n  const buildOrder = getBuildOrderFromAnyBuildOrder(getBuildOrder(state));\n  buildOrder.forEach(\n    (configFileName) => state.projectPendingBuild.set(\n      toResolvedConfigFilePath(state, configFileName),\n      0 /* Update */\n    )\n  );\n  if (cancellationToken) {\n    cancellationToken.throwIfCancellationRequested();\n  }\n}\nvar InvalidatedProjectKind = /* @__PURE__ */ ((InvalidatedProjectKind2) => {\n  InvalidatedProjectKind2[InvalidatedProjectKind2[\"Build\"] = 0] = \"Build\";\n  InvalidatedProjectKind2[InvalidatedProjectKind2[\"UpdateOutputFileStamps\"] = 1] = \"UpdateOutputFileStamps\";\n  return InvalidatedProjectKind2;\n})(InvalidatedProjectKind || {});\nfunction doneInvalidatedProject(state, projectPath) {\n  state.projectPendingBuild.delete(projectPath);\n  return state.diagnostics.has(projectPath) ? 1 /* DiagnosticsPresent_OutputsSkipped */ : 0 /* Success */;\n}\nfunction createUpdateOutputFileStampsProject(state, project, projectPath, config, buildOrder) {\n  let updateOutputFileStampsPending = true;\n  return {\n    kind: 1 /* UpdateOutputFileStamps */,\n    project,\n    projectPath,\n    buildOrder,\n    getCompilerOptions: () => config.options,\n    getCurrentDirectory: () => state.compilerHost.getCurrentDirectory(),\n    updateOutputFileStatmps: () => {\n      updateOutputTimestamps(state, config, projectPath);\n      updateOutputFileStampsPending = false;\n    },\n    done: () => {\n      if (updateOutputFileStampsPending) {\n        updateOutputTimestamps(state, config, projectPath);\n      }\n      mark(\"SolutionBuilder::Timestamps only updates\");\n      return doneInvalidatedProject(state, projectPath);\n    }\n  };\n}\nfunction createBuildOrUpdateInvalidedProject(state, project, projectPath, projectIndex, config, status, buildOrder) {\n  let step = 0 /* CreateProgram */;\n  let program;\n  let buildResult;\n  return {\n    kind: 0 /* Build */,\n    project,\n    projectPath,\n    buildOrder,\n    getCompilerOptions: () => config.options,\n    getCurrentDirectory: () => state.compilerHost.getCurrentDirectory(),\n    getBuilderProgram: () => withProgramOrUndefined(identity),\n    getProgram: () => withProgramOrUndefined(\n      (program2) => program2.getProgramOrUndefined()\n    ),\n    getSourceFile: (fileName) => withProgramOrUndefined(\n      (program2) => program2.getSourceFile(fileName)\n    ),\n    getSourceFiles: () => withProgramOrEmptyArray(\n      (program2) => program2.getSourceFiles()\n    ),\n    getOptionsDiagnostics: (cancellationToken) => withProgramOrEmptyArray(\n      (program2) => program2.getOptionsDiagnostics(cancellationToken)\n    ),\n    getGlobalDiagnostics: (cancellationToken) => withProgramOrEmptyArray(\n      (program2) => program2.getGlobalDiagnostics(cancellationToken)\n    ),\n    getConfigFileParsingDiagnostics: () => withProgramOrEmptyArray(\n      (program2) => program2.getConfigFileParsingDiagnostics()\n    ),\n    getSyntacticDiagnostics: (sourceFile, cancellationToken) => withProgramOrEmptyArray(\n      (program2) => program2.getSyntacticDiagnostics(sourceFile, cancellationToken)\n    ),\n    getAllDependencies: (sourceFile) => withProgramOrEmptyArray(\n      (program2) => program2.getAllDependencies(sourceFile)\n    ),\n    getSemanticDiagnostics: (sourceFile, cancellationToken) => withProgramOrEmptyArray(\n      (program2) => program2.getSemanticDiagnostics(sourceFile, cancellationToken)\n    ),\n    getSemanticDiagnosticsOfNextAffectedFile: (cancellationToken, ignoreSourceFile) => withProgramOrUndefined(\n      (program2) => program2.getSemanticDiagnosticsOfNextAffectedFile && program2.getSemanticDiagnosticsOfNextAffectedFile(cancellationToken, ignoreSourceFile)\n    ),\n    emit: (targetSourceFile, writeFile2, cancellationToken, emitOnlyDtsFiles, customTransformers) => {\n      if (targetSourceFile || emitOnlyDtsFiles) {\n        return withProgramOrUndefined(\n          (program2) => {\n            var _a, _b;\n            return program2.emit(targetSourceFile, writeFile2, cancellationToken, emitOnlyDtsFiles, customTransformers || ((_b = (_a = state.host).getCustomTransformers) == null ? void 0 : _b.call(_a, project)));\n          }\n        );\n      }\n      executeSteps(0 /* CreateProgram */, cancellationToken);\n      return emit(writeFile2, cancellationToken, customTransformers);\n    },\n    done\n  };\n  function done(cancellationToken, writeFile2, customTransformers) {\n    executeSteps(3 /* Done */, cancellationToken, writeFile2, customTransformers);\n    mark(\"SolutionBuilder::Projects built\");\n    return doneInvalidatedProject(state, projectPath);\n  }\n  function withProgramOrUndefined(action) {\n    executeSteps(0 /* CreateProgram */);\n    return program && action(program);\n  }\n  function withProgramOrEmptyArray(action) {\n    return withProgramOrUndefined(action) || emptyArray;\n  }\n  function createProgram2() {\n    var _a, _b, _c;\n    Debug.assert(program === void 0);\n    if (state.options.dry) {\n      reportStatus(state, Diagnostics.A_non_dry_build_would_build_project_0, project);\n      buildResult = 1 /* Success */;\n      step = 2 /* QueueReferencingProjects */;\n      return;\n    }\n    if (state.options.verbose) reportStatus(state, Diagnostics.Building_project_0, project);\n    if (config.fileNames.length === 0) {\n      reportAndStoreErrors(state, projectPath, getConfigFileParsingDiagnostics(config));\n      buildResult = 0 /* None */;\n      step = 2 /* QueueReferencingProjects */;\n      return;\n    }\n    const { host, compilerHost } = state;\n    state.projectCompilerOptions = config.options;\n    (_a = state.moduleResolutionCache) == null ? void 0 : _a.update(config.options);\n    (_b = state.typeReferenceDirectiveResolutionCache) == null ? void 0 : _b.update(config.options);\n    program = host.createProgram(\n      config.fileNames,\n      config.options,\n      compilerHost,\n      getOldProgram(state, projectPath, config),\n      getConfigFileParsingDiagnostics(config),\n      config.projectReferences\n    );\n    if (state.watch) {\n      const internalMap = (_c = state.moduleResolutionCache) == null ? void 0 : _c.getPackageJsonInfoCache().getInternalMap();\n      state.lastCachedPackageJsonLookups.set(\n        projectPath,\n        internalMap && new Set(arrayFrom(\n          internalMap.values(),\n          (data) => state.host.realpath && (isPackageJsonInfo(data) || data.directoryExists) ? state.host.realpath(combinePaths(data.packageDirectory, \"package.json\")) : combinePaths(data.packageDirectory, \"package.json\")\n        ))\n      );\n      state.builderPrograms.set(projectPath, program);\n    }\n    step++;\n  }\n  function emit(writeFileCallback, cancellationToken, customTransformers) {\n    var _a, _b, _c;\n    Debug.assertIsDefined(program);\n    Debug.assert(step === 1 /* Emit */);\n    const { host, compilerHost } = state;\n    const emittedOutputs = /* @__PURE__ */ new Map();\n    const options = program.getCompilerOptions();\n    const isIncremental = isIncrementalCompilation(options);\n    let outputTimeStampMap;\n    let now;\n    const { emitResult, diagnostics } = emitFilesAndReportErrors(\n      program,\n      (d) => host.reportDiagnostic(d),\n      state.write,\n      /*reportSummary*/\n      void 0,\n      (name, text, writeByteOrderMark, onError, sourceFiles, data) => {\n        var _a2;\n        const path = toPath2(state, name);\n        emittedOutputs.set(toPath2(state, name), name);\n        if (data == null ? void 0 : data.buildInfo) {\n          now || (now = getCurrentTime(state.host));\n          const isChangedSignature2 = (_a2 = program.hasChangedEmitSignature) == null ? void 0 : _a2.call(program);\n          const existing = getBuildInfoCacheEntry(state, name, projectPath);\n          if (existing) {\n            existing.buildInfo = data.buildInfo;\n            existing.modifiedTime = now;\n            if (isChangedSignature2) existing.latestChangedDtsTime = now;\n          } else {\n            state.buildInfoCache.set(projectPath, {\n              path: toPath2(state, name),\n              buildInfo: data.buildInfo,\n              modifiedTime: now,\n              latestChangedDtsTime: isChangedSignature2 ? now : void 0\n            });\n          }\n        }\n        const modifiedTime = (data == null ? void 0 : data.differsOnlyInMap) ? getModifiedTime(state.host, name) : void 0;\n        (writeFileCallback || compilerHost.writeFile)(\n          name,\n          text,\n          writeByteOrderMark,\n          onError,\n          sourceFiles,\n          data\n        );\n        if (data == null ? void 0 : data.differsOnlyInMap) state.host.setModifiedTime(name, modifiedTime);\n        else if (!isIncremental && state.watch) {\n          (outputTimeStampMap || (outputTimeStampMap = getOutputTimeStampMap(state, projectPath))).set(path, now || (now = getCurrentTime(state.host)));\n        }\n      },\n      cancellationToken,\n      /*emitOnlyDtsFiles*/\n      void 0,\n      customTransformers || ((_b = (_a = state.host).getCustomTransformers) == null ? void 0 : _b.call(_a, project))\n    );\n    if ((!options.noEmitOnError || !diagnostics.length) && (emittedOutputs.size || status.type !== 8 /* OutOfDateBuildInfoWithErrors */)) {\n      updateOutputTimestampsWorker(state, config, projectPath, Diagnostics.Updating_unchanged_output_timestamps_of_project_0, emittedOutputs);\n    }\n    state.projectErrorsReported.set(projectPath, true);\n    buildResult = ((_c = program.hasChangedEmitSignature) == null ? void 0 : _c.call(program)) ? 0 /* None */ : 2 /* DeclarationOutputUnchanged */;\n    if (!diagnostics.length) {\n      state.diagnostics.delete(projectPath);\n      state.projectStatus.set(projectPath, {\n        type: 1 /* UpToDate */,\n        oldestOutputFileName: firstOrUndefinedIterator(emittedOutputs.values()) ?? getFirstProjectOutput(config, !host.useCaseSensitiveFileNames())\n      });\n    } else {\n      state.diagnostics.set(projectPath, diagnostics);\n      state.projectStatus.set(projectPath, { type: 0 /* Unbuildable */, reason: `it had errors` });\n      buildResult |= 4 /* AnyErrors */;\n    }\n    afterProgramDone(state, program);\n    step = 2 /* QueueReferencingProjects */;\n    return emitResult;\n  }\n  function executeSteps(till, cancellationToken, writeFile2, customTransformers) {\n    while (step <= till && step < 3 /* Done */) {\n      const currentStep = step;\n      switch (step) {\n        case 0 /* CreateProgram */:\n          createProgram2();\n          break;\n        case 1 /* Emit */:\n          emit(writeFile2, cancellationToken, customTransformers);\n          break;\n        case 2 /* QueueReferencingProjects */:\n          queueReferencingProjects(state, project, projectPath, projectIndex, config, buildOrder, Debug.checkDefined(buildResult));\n          step++;\n          break;\n        // Should never be done\n        case 3 /* Done */:\n        default:\n          assertType(step);\n      }\n      Debug.assert(step > currentStep);\n    }\n  }\n}\nfunction getNextInvalidatedProjectCreateInfo(state, buildOrder, reportQueue) {\n  if (!state.projectPendingBuild.size) return void 0;\n  if (isCircularBuildOrder(buildOrder)) return void 0;\n  const { options, projectPendingBuild } = state;\n  for (let projectIndex = 0; projectIndex < buildOrder.length; projectIndex++) {\n    const project = buildOrder[projectIndex];\n    const projectPath = toResolvedConfigFilePath(state, project);\n    const updateLevel = state.projectPendingBuild.get(projectPath);\n    if (updateLevel === void 0) continue;\n    if (reportQueue) {\n      reportQueue = false;\n      reportBuildQueue(state, buildOrder);\n    }\n    const config = parseConfigFile(state, project, projectPath);\n    if (!config) {\n      reportParseConfigFileDiagnostic(state, projectPath);\n      projectPendingBuild.delete(projectPath);\n      continue;\n    }\n    if (updateLevel === 2 /* Full */) {\n      watchConfigFile(state, project, projectPath, config);\n      watchExtendedConfigFiles(state, projectPath, config);\n      watchWildCardDirectories(state, project, projectPath, config);\n      watchInputFiles(state, project, projectPath, config);\n      watchPackageJsonFiles(state, project, projectPath, config);\n    } else if (updateLevel === 1 /* RootNamesAndUpdate */) {\n      config.fileNames = getFileNamesFromConfigSpecs(config.options.configFile.configFileSpecs, getDirectoryPath(project), config.options, state.parseConfigFileHost);\n      updateErrorForNoInputFiles(\n        config.fileNames,\n        project,\n        config.options.configFile.configFileSpecs,\n        config.errors,\n        canJsonReportNoInputFiles(config.raw)\n      );\n      watchInputFiles(state, project, projectPath, config);\n      watchPackageJsonFiles(state, project, projectPath, config);\n    }\n    const status = getUpToDateStatus(state, config, projectPath);\n    if (!options.force) {\n      if (status.type === 1 /* UpToDate */) {\n        verboseReportProjectStatus(state, project, status);\n        reportAndStoreErrors(state, projectPath, getConfigFileParsingDiagnostics(config));\n        projectPendingBuild.delete(projectPath);\n        if (options.dry) {\n          reportStatus(state, Diagnostics.Project_0_is_up_to_date, project);\n        }\n        continue;\n      }\n      if (status.type === 2 /* UpToDateWithUpstreamTypes */ || status.type === 15 /* UpToDateWithInputFileText */) {\n        reportAndStoreErrors(state, projectPath, getConfigFileParsingDiagnostics(config));\n        return {\n          kind: 1 /* UpdateOutputFileStamps */,\n          status,\n          project,\n          projectPath,\n          projectIndex,\n          config\n        };\n      }\n    }\n    if (status.type === 12 /* UpstreamBlocked */) {\n      verboseReportProjectStatus(state, project, status);\n      reportAndStoreErrors(state, projectPath, getConfigFileParsingDiagnostics(config));\n      projectPendingBuild.delete(projectPath);\n      if (options.verbose) {\n        reportStatus(\n          state,\n          status.upstreamProjectBlocked ? Diagnostics.Skipping_build_of_project_0_because_its_dependency_1_was_not_built : Diagnostics.Skipping_build_of_project_0_because_its_dependency_1_has_errors,\n          project,\n          status.upstreamProjectName\n        );\n      }\n      continue;\n    }\n    if (status.type === 16 /* ContainerOnly */) {\n      verboseReportProjectStatus(state, project, status);\n      reportAndStoreErrors(state, projectPath, getConfigFileParsingDiagnostics(config));\n      projectPendingBuild.delete(projectPath);\n      continue;\n    }\n    return {\n      kind: 0 /* Build */,\n      status,\n      project,\n      projectPath,\n      projectIndex,\n      config\n    };\n  }\n  return void 0;\n}\nfunction createInvalidatedProjectWithInfo(state, info, buildOrder) {\n  verboseReportProjectStatus(state, info.project, info.status);\n  return info.kind !== 1 /* UpdateOutputFileStamps */ ? createBuildOrUpdateInvalidedProject(\n    state,\n    info.project,\n    info.projectPath,\n    info.projectIndex,\n    info.config,\n    info.status,\n    buildOrder\n  ) : createUpdateOutputFileStampsProject(\n    state,\n    info.project,\n    info.projectPath,\n    info.config,\n    buildOrder\n  );\n}\nfunction getNextInvalidatedProject(state, buildOrder, reportQueue) {\n  const info = getNextInvalidatedProjectCreateInfo(state, buildOrder, reportQueue);\n  if (!info) return info;\n  return createInvalidatedProjectWithInfo(state, info, buildOrder);\n}\nfunction getOldProgram({ options, builderPrograms, compilerHost }, proj, parsed) {\n  if (options.force) return void 0;\n  const value = builderPrograms.get(proj);\n  if (value) return value;\n  return readBuilderProgram(parsed.options, compilerHost);\n}\nfunction afterProgramDone(state, program) {\n  if (program) {\n    if (state.host.afterProgramEmitAndDiagnostics) {\n      state.host.afterProgramEmitAndDiagnostics(program);\n    }\n    program.releaseProgram();\n  }\n  state.projectCompilerOptions = state.baseCompilerOptions;\n}\nfunction isFileWatcherWithModifiedTime(value) {\n  return !!value.watcher;\n}\nfunction getModifiedTime2(state, fileName) {\n  const path = toPath2(state, fileName);\n  const existing = state.filesWatched.get(path);\n  if (state.watch && !!existing) {\n    if (!isFileWatcherWithModifiedTime(existing)) return existing;\n    if (existing.modifiedTime) return existing.modifiedTime;\n  }\n  const result = getModifiedTime(state.host, fileName);\n  if (state.watch) {\n    if (existing) existing.modifiedTime = result;\n    else state.filesWatched.set(path, result);\n  }\n  return result;\n}\nfunction watchFile(state, file, callback, pollingInterval, options, watchType, project) {\n  const path = toPath2(state, file);\n  const existing = state.filesWatched.get(path);\n  if (existing && isFileWatcherWithModifiedTime(existing)) {\n    existing.callbacks.push(callback);\n  } else {\n    const watcher = state.watchFile(\n      file,\n      (fileName, eventKind, modifiedTime) => {\n        const existing2 = Debug.checkDefined(state.filesWatched.get(path));\n        Debug.assert(isFileWatcherWithModifiedTime(existing2));\n        existing2.modifiedTime = modifiedTime;\n        existing2.callbacks.forEach((cb) => cb(fileName, eventKind, modifiedTime));\n      },\n      pollingInterval,\n      options,\n      watchType,\n      project\n    );\n    state.filesWatched.set(path, { callbacks: [callback], watcher, modifiedTime: existing });\n  }\n  return {\n    close: () => {\n      const existing2 = Debug.checkDefined(state.filesWatched.get(path));\n      Debug.assert(isFileWatcherWithModifiedTime(existing2));\n      if (existing2.callbacks.length === 1) {\n        state.filesWatched.delete(path);\n        closeFileWatcherOf(existing2);\n      } else {\n        unorderedRemoveItem(existing2.callbacks, callback);\n      }\n    }\n  };\n}\nfunction getOutputTimeStampMap(state, resolvedConfigFilePath) {\n  if (!state.watch) return void 0;\n  let result = state.outputTimeStamps.get(resolvedConfigFilePath);\n  if (!result) state.outputTimeStamps.set(resolvedConfigFilePath, result = /* @__PURE__ */ new Map());\n  return result;\n}\nfunction getBuildInfoCacheEntry(state, buildInfoPath, resolvedConfigPath) {\n  const path = toPath2(state, buildInfoPath);\n  const existing = state.buildInfoCache.get(resolvedConfigPath);\n  return (existing == null ? void 0 : existing.path) === path ? existing : void 0;\n}\nfunction getBuildInfo3(state, buildInfoPath, resolvedConfigPath, modifiedTime) {\n  const path = toPath2(state, buildInfoPath);\n  const existing = state.buildInfoCache.get(resolvedConfigPath);\n  if (existing !== void 0 && existing.path === path) {\n    return existing.buildInfo || void 0;\n  }\n  const value = state.readFileWithCache(buildInfoPath);\n  const buildInfo = value ? getBuildInfo(buildInfoPath, value) : void 0;\n  state.buildInfoCache.set(resolvedConfigPath, { path, buildInfo: buildInfo || false, modifiedTime: modifiedTime || missingFileModifiedTime });\n  return buildInfo;\n}\nfunction checkConfigFileUpToDateStatus(state, configFile, oldestOutputFileTime, oldestOutputFileName) {\n  const tsconfigTime = getModifiedTime2(state, configFile);\n  if (oldestOutputFileTime < tsconfigTime) {\n    return {\n      type: 5 /* OutOfDateWithSelf */,\n      outOfDateOutputFileName: oldestOutputFileName,\n      newerInputFileName: configFile\n    };\n  }\n}\nfunction getUpToDateStatusWorker(state, project, resolvedPath) {\n  var _a, _b, _c, _d, _e;\n  if (isSolutionConfig(project)) return { type: 16 /* ContainerOnly */ };\n  let referenceStatuses;\n  const force = !!state.options.force;\n  if (project.projectReferences) {\n    state.projectStatus.set(resolvedPath, { type: 13 /* ComputingUpstream */ });\n    for (const ref of project.projectReferences) {\n      const resolvedRef = resolveProjectReferencePath(ref);\n      const resolvedRefPath = toResolvedConfigFilePath(state, resolvedRef);\n      const resolvedConfig = parseConfigFile(state, resolvedRef, resolvedRefPath);\n      const refStatus = getUpToDateStatus(state, resolvedConfig, resolvedRefPath);\n      if (refStatus.type === 13 /* ComputingUpstream */ || refStatus.type === 16 /* ContainerOnly */) {\n        continue;\n      }\n      if (state.options.stopBuildOnErrors && (refStatus.type === 0 /* Unbuildable */ || refStatus.type === 12 /* UpstreamBlocked */)) {\n        return {\n          type: 12 /* UpstreamBlocked */,\n          upstreamProjectName: ref.path,\n          upstreamProjectBlocked: refStatus.type === 12 /* UpstreamBlocked */\n        };\n      }\n      if (!force) (referenceStatuses || (referenceStatuses = [])).push({ ref, refStatus, resolvedRefPath, resolvedConfig });\n    }\n  }\n  if (force) return { type: 17 /* ForceBuild */ };\n  const { host } = state;\n  const buildInfoPath = getTsBuildInfoEmitOutputFilePath(project.options);\n  const isIncremental = isIncrementalCompilation(project.options);\n  let buildInfoCacheEntry = getBuildInfoCacheEntry(state, buildInfoPath, resolvedPath);\n  const buildInfoTime = (buildInfoCacheEntry == null ? void 0 : buildInfoCacheEntry.modifiedTime) || getModifiedTime(host, buildInfoPath);\n  if (buildInfoTime === missingFileModifiedTime) {\n    if (!buildInfoCacheEntry) {\n      state.buildInfoCache.set(resolvedPath, {\n        path: toPath2(state, buildInfoPath),\n        buildInfo: false,\n        modifiedTime: buildInfoTime\n      });\n    }\n    return {\n      type: 3 /* OutputMissing */,\n      missingOutputFileName: buildInfoPath\n    };\n  }\n  const buildInfo = getBuildInfo3(state, buildInfoPath, resolvedPath, buildInfoTime);\n  if (!buildInfo) {\n    return {\n      type: 4 /* ErrorReadingFile */,\n      fileName: buildInfoPath\n    };\n  }\n  const incrementalBuildInfo = isIncremental && isIncrementalBuildInfo(buildInfo) ? buildInfo : void 0;\n  if ((incrementalBuildInfo || !isIncremental) && buildInfo.version !== version) {\n    return {\n      type: 14 /* TsVersionOutputOfDate */,\n      version: buildInfo.version\n    };\n  }\n  if (!project.options.noCheck && (buildInfo.errors || // TODO: syntax errors????\n  buildInfo.checkPending)) {\n    return {\n      type: 8 /* OutOfDateBuildInfoWithErrors */,\n      buildInfoFile: buildInfoPath\n    };\n  }\n  if (incrementalBuildInfo) {\n    if (!project.options.noCheck && (((_a = incrementalBuildInfo.changeFileSet) == null ? void 0 : _a.length) || ((_b = incrementalBuildInfo.semanticDiagnosticsPerFile) == null ? void 0 : _b.length) || getEmitDeclarations(project.options) && ((_c = incrementalBuildInfo.emitDiagnosticsPerFile) == null ? void 0 : _c.length))) {\n      return {\n        type: 8 /* OutOfDateBuildInfoWithErrors */,\n        buildInfoFile: buildInfoPath\n      };\n    }\n    if (!project.options.noEmit && (((_d = incrementalBuildInfo.changeFileSet) == null ? void 0 : _d.length) || ((_e = incrementalBuildInfo.affectedFilesPendingEmit) == null ? void 0 : _e.length) || incrementalBuildInfo.pendingEmit !== void 0)) {\n      return {\n        type: 7 /* OutOfDateBuildInfoWithPendingEmit */,\n        buildInfoFile: buildInfoPath\n      };\n    }\n    if ((!project.options.noEmit || project.options.noEmit && getEmitDeclarations(project.options)) && getPendingEmitKindWithSeen(\n      project.options,\n      incrementalBuildInfo.options || {},\n      /*emitOnlyDtsFiles*/\n      void 0,\n      !!project.options.noEmit\n    )) {\n      return {\n        type: 9 /* OutOfDateOptions */,\n        buildInfoFile: buildInfoPath\n      };\n    }\n  }\n  let oldestOutputFileTime = buildInfoTime;\n  let oldestOutputFileName = buildInfoPath;\n  let newestInputFileName = void 0;\n  let newestInputFileTime = minimumDate;\n  let pseudoInputUpToDate = false;\n  const seenRoots = /* @__PURE__ */ new Set();\n  let buildInfoVersionMap;\n  for (const inputFile of project.fileNames) {\n    const inputTime = getModifiedTime2(state, inputFile);\n    if (inputTime === missingFileModifiedTime) {\n      return {\n        type: 0 /* Unbuildable */,\n        reason: `${inputFile} does not exist`\n      };\n    }\n    const inputPath = toPath2(state, inputFile);\n    if (buildInfoTime < inputTime) {\n      let version2;\n      let currentVersion;\n      if (incrementalBuildInfo) {\n        if (!buildInfoVersionMap) buildInfoVersionMap = getBuildInfoFileVersionMap(incrementalBuildInfo, buildInfoPath, host);\n        const resolvedInputPath = buildInfoVersionMap.roots.get(inputPath);\n        version2 = buildInfoVersionMap.fileInfos.get(resolvedInputPath ?? inputPath);\n        const text = version2 ? state.readFileWithCache(resolvedInputPath ?? inputFile) : void 0;\n        currentVersion = text !== void 0 ? getSourceFileVersionAsHashFromText(host, text) : void 0;\n        if (version2 && version2 === currentVersion) pseudoInputUpToDate = true;\n      }\n      if (!version2 || version2 !== currentVersion) {\n        return {\n          type: 5 /* OutOfDateWithSelf */,\n          outOfDateOutputFileName: buildInfoPath,\n          newerInputFileName: inputFile\n        };\n      }\n    }\n    if (inputTime > newestInputFileTime) {\n      newestInputFileName = inputFile;\n      newestInputFileTime = inputTime;\n    }\n    seenRoots.add(inputPath);\n  }\n  let existingRoot;\n  if (incrementalBuildInfo) {\n    if (!buildInfoVersionMap) buildInfoVersionMap = getBuildInfoFileVersionMap(incrementalBuildInfo, buildInfoPath, host);\n    existingRoot = forEachEntry(\n      buildInfoVersionMap.roots,\n      // File was root file when project was built but its not any more\n      (_resolved, existingRoot2) => !seenRoots.has(existingRoot2) ? existingRoot2 : void 0\n    );\n  } else {\n    existingRoot = forEach(\n      getNonIncrementalBuildInfoRoots(buildInfo, buildInfoPath, host),\n      (root) => !seenRoots.has(root) ? root : void 0\n    );\n  }\n  if (existingRoot) {\n    return {\n      type: 10 /* OutOfDateRoots */,\n      buildInfoFile: buildInfoPath,\n      inputFile: existingRoot\n    };\n  }\n  if (!isIncremental) {\n    const outputs = getAllProjectOutputs(project, !host.useCaseSensitiveFileNames());\n    const outputTimeStampMap = getOutputTimeStampMap(state, resolvedPath);\n    for (const output of outputs) {\n      if (output === buildInfoPath) continue;\n      const path = toPath2(state, output);\n      let outputTime = outputTimeStampMap == null ? void 0 : outputTimeStampMap.get(path);\n      if (!outputTime) {\n        outputTime = getModifiedTime(state.host, output);\n        outputTimeStampMap == null ? void 0 : outputTimeStampMap.set(path, outputTime);\n      }\n      if (outputTime === missingFileModifiedTime) {\n        return {\n          type: 3 /* OutputMissing */,\n          missingOutputFileName: output\n        };\n      }\n      if (outputTime < newestInputFileTime) {\n        return {\n          type: 5 /* OutOfDateWithSelf */,\n          outOfDateOutputFileName: output,\n          newerInputFileName: newestInputFileName\n        };\n      }\n      if (outputTime < oldestOutputFileTime) {\n        oldestOutputFileTime = outputTime;\n        oldestOutputFileName = output;\n      }\n    }\n  }\n  let pseudoUpToDate = false;\n  if (referenceStatuses) {\n    for (const { ref, refStatus, resolvedConfig, resolvedRefPath } of referenceStatuses) {\n      if (refStatus.newestInputFileTime && refStatus.newestInputFileTime <= oldestOutputFileTime) {\n        continue;\n      }\n      if (hasSameBuildInfo(state, buildInfoCacheEntry ?? (buildInfoCacheEntry = state.buildInfoCache.get(resolvedPath)), resolvedRefPath)) {\n        return {\n          type: 6 /* OutOfDateWithUpstream */,\n          outOfDateOutputFileName: buildInfoPath,\n          newerProjectName: ref.path\n        };\n      }\n      const newestDeclarationFileContentChangedTime = getLatestChangedDtsTime(state, resolvedConfig.options, resolvedRefPath);\n      if (newestDeclarationFileContentChangedTime && newestDeclarationFileContentChangedTime <= oldestOutputFileTime) {\n        pseudoUpToDate = true;\n        continue;\n      }\n      Debug.assert(oldestOutputFileName !== void 0, \"Should have an oldest output filename here\");\n      return {\n        type: 6 /* OutOfDateWithUpstream */,\n        outOfDateOutputFileName: oldestOutputFileName,\n        newerProjectName: ref.path\n      };\n    }\n  }\n  const configStatus = checkConfigFileUpToDateStatus(state, project.options.configFilePath, oldestOutputFileTime, oldestOutputFileName);\n  if (configStatus) return configStatus;\n  const extendedConfigStatus = forEach(project.options.configFile.extendedSourceFiles || emptyArray, (configFile) => checkConfigFileUpToDateStatus(state, configFile, oldestOutputFileTime, oldestOutputFileName));\n  if (extendedConfigStatus) return extendedConfigStatus;\n  const packageJsonLookups = state.lastCachedPackageJsonLookups.get(resolvedPath);\n  const dependentPackageFileStatus = packageJsonLookups && forEachKey(\n    packageJsonLookups,\n    (path) => checkConfigFileUpToDateStatus(state, path, oldestOutputFileTime, oldestOutputFileName)\n  );\n  if (dependentPackageFileStatus) return dependentPackageFileStatus;\n  return {\n    type: pseudoUpToDate ? 2 /* UpToDateWithUpstreamTypes */ : pseudoInputUpToDate ? 15 /* UpToDateWithInputFileText */ : 1 /* UpToDate */,\n    newestInputFileTime,\n    newestInputFileName,\n    oldestOutputFileName\n  };\n}\nfunction hasSameBuildInfo(state, buildInfoCacheEntry, resolvedRefPath) {\n  const refBuildInfo = state.buildInfoCache.get(resolvedRefPath);\n  return refBuildInfo.path === buildInfoCacheEntry.path;\n}\nfunction getUpToDateStatus(state, project, resolvedPath) {\n  if (project === void 0) {\n    return { type: 0 /* Unbuildable */, reason: \"config file deleted mid-build\" };\n  }\n  const prior = state.projectStatus.get(resolvedPath);\n  if (prior !== void 0) {\n    return prior;\n  }\n  mark(\"SolutionBuilder::beforeUpToDateCheck\");\n  const actual = getUpToDateStatusWorker(state, project, resolvedPath);\n  mark(\"SolutionBuilder::afterUpToDateCheck\");\n  measure(\"SolutionBuilder::Up-to-date check\", \"SolutionBuilder::beforeUpToDateCheck\", \"SolutionBuilder::afterUpToDateCheck\");\n  state.projectStatus.set(resolvedPath, actual);\n  return actual;\n}\nfunction updateOutputTimestampsWorker(state, proj, projectPath, verboseMessage, skipOutputs) {\n  if (proj.options.noEmit) return;\n  let now;\n  const buildInfoPath = getTsBuildInfoEmitOutputFilePath(proj.options);\n  const isIncremental = isIncrementalCompilation(proj.options);\n  if (buildInfoPath && isIncremental) {\n    if (!(skipOutputs == null ? void 0 : skipOutputs.has(toPath2(state, buildInfoPath)))) {\n      if (!!state.options.verbose) reportStatus(state, verboseMessage, proj.options.configFilePath);\n      state.host.setModifiedTime(buildInfoPath, now = getCurrentTime(state.host));\n      getBuildInfoCacheEntry(state, buildInfoPath, projectPath).modifiedTime = now;\n    }\n    state.outputTimeStamps.delete(projectPath);\n    return;\n  }\n  const { host } = state;\n  const outputs = getAllProjectOutputs(proj, !host.useCaseSensitiveFileNames());\n  const outputTimeStampMap = getOutputTimeStampMap(state, projectPath);\n  const modifiedOutputs = outputTimeStampMap ? /* @__PURE__ */ new Set() : void 0;\n  if (!skipOutputs || outputs.length !== skipOutputs.size) {\n    let reportVerbose = !!state.options.verbose;\n    for (const file of outputs) {\n      const path = toPath2(state, file);\n      if (skipOutputs == null ? void 0 : skipOutputs.has(path)) continue;\n      if (reportVerbose) {\n        reportVerbose = false;\n        reportStatus(state, verboseMessage, proj.options.configFilePath);\n      }\n      host.setModifiedTime(file, now || (now = getCurrentTime(state.host)));\n      if (file === buildInfoPath) getBuildInfoCacheEntry(state, buildInfoPath, projectPath).modifiedTime = now;\n      else if (outputTimeStampMap) {\n        outputTimeStampMap.set(path, now);\n        modifiedOutputs.add(path);\n      }\n    }\n  }\n  outputTimeStampMap == null ? void 0 : outputTimeStampMap.forEach((_value, key) => {\n    if (!(skipOutputs == null ? void 0 : skipOutputs.has(key)) && !modifiedOutputs.has(key)) outputTimeStampMap.delete(key);\n  });\n}\nfunction getLatestChangedDtsTime(state, options, resolvedConfigPath) {\n  if (!options.composite) return void 0;\n  const entry = Debug.checkDefined(state.buildInfoCache.get(resolvedConfigPath));\n  if (entry.latestChangedDtsTime !== void 0) return entry.latestChangedDtsTime || void 0;\n  const latestChangedDtsTime = entry.buildInfo && isIncrementalBuildInfo(entry.buildInfo) && entry.buildInfo.latestChangedDtsFile ? state.host.getModifiedTime(getNormalizedAbsolutePath(entry.buildInfo.latestChangedDtsFile, getDirectoryPath(entry.path))) : void 0;\n  entry.latestChangedDtsTime = latestChangedDtsTime || false;\n  return latestChangedDtsTime;\n}\nfunction updateOutputTimestamps(state, proj, resolvedPath) {\n  if (state.options.dry) {\n    return reportStatus(state, Diagnostics.A_non_dry_build_would_update_timestamps_for_output_of_project_0, proj.options.configFilePath);\n  }\n  updateOutputTimestampsWorker(state, proj, resolvedPath, Diagnostics.Updating_output_timestamps_of_project_0);\n  state.projectStatus.set(resolvedPath, {\n    type: 1 /* UpToDate */,\n    oldestOutputFileName: getFirstProjectOutput(proj, !state.host.useCaseSensitiveFileNames())\n  });\n}\nfunction queueReferencingProjects(state, project, projectPath, projectIndex, config, buildOrder, buildResult) {\n  if (state.options.stopBuildOnErrors && buildResult & 4 /* AnyErrors */) return;\n  if (!config.options.composite) return;\n  for (let index = projectIndex + 1; index < buildOrder.length; index++) {\n    const nextProject = buildOrder[index];\n    const nextProjectPath = toResolvedConfigFilePath(state, nextProject);\n    if (state.projectPendingBuild.has(nextProjectPath)) continue;\n    const nextProjectConfig = parseConfigFile(state, nextProject, nextProjectPath);\n    if (!nextProjectConfig || !nextProjectConfig.projectReferences) continue;\n    for (const ref of nextProjectConfig.projectReferences) {\n      const resolvedRefPath = resolveProjectName(state, ref.path);\n      if (toResolvedConfigFilePath(state, resolvedRefPath) !== projectPath) continue;\n      const status = state.projectStatus.get(nextProjectPath);\n      if (status) {\n        switch (status.type) {\n          case 1 /* UpToDate */:\n            if (buildResult & 2 /* DeclarationOutputUnchanged */) {\n              status.type = 2 /* UpToDateWithUpstreamTypes */;\n              break;\n            }\n          // falls through\n          case 15 /* UpToDateWithInputFileText */:\n          case 2 /* UpToDateWithUpstreamTypes */:\n            if (!(buildResult & 2 /* DeclarationOutputUnchanged */)) {\n              state.projectStatus.set(nextProjectPath, {\n                type: 6 /* OutOfDateWithUpstream */,\n                outOfDateOutputFileName: status.oldestOutputFileName,\n                newerProjectName: project\n              });\n            }\n            break;\n          case 12 /* UpstreamBlocked */:\n            if (toResolvedConfigFilePath(state, resolveProjectName(state, status.upstreamProjectName)) === projectPath) {\n              clearProjectStatus(state, nextProjectPath);\n            }\n            break;\n        }\n      }\n      addProjToQueue(state, nextProjectPath, 0 /* Update */);\n      break;\n    }\n  }\n}\nfunction build(state, project, cancellationToken, writeFile2, getCustomTransformers, onlyReferences) {\n  mark(\"SolutionBuilder::beforeBuild\");\n  const result = buildWorker(state, project, cancellationToken, writeFile2, getCustomTransformers, onlyReferences);\n  mark(\"SolutionBuilder::afterBuild\");\n  measure(\"SolutionBuilder::Build\", \"SolutionBuilder::beforeBuild\", \"SolutionBuilder::afterBuild\");\n  return result;\n}\nfunction buildWorker(state, project, cancellationToken, writeFile2, getCustomTransformers, onlyReferences) {\n  const buildOrder = getBuildOrderFor(state, project, onlyReferences);\n  if (!buildOrder) return 3 /* InvalidProject_OutputsSkipped */;\n  setupInitialBuild(state, cancellationToken);\n  let reportQueue = true;\n  let successfulProjects = 0;\n  while (true) {\n    const invalidatedProject = getNextInvalidatedProject(state, buildOrder, reportQueue);\n    if (!invalidatedProject) break;\n    reportQueue = false;\n    invalidatedProject.done(cancellationToken, writeFile2, getCustomTransformers == null ? void 0 : getCustomTransformers(invalidatedProject.project));\n    if (!state.diagnostics.has(invalidatedProject.projectPath)) successfulProjects++;\n  }\n  disableCache(state);\n  reportErrorSummary(state, buildOrder);\n  startWatching(state, buildOrder);\n  return isCircularBuildOrder(buildOrder) ? 4 /* ProjectReferenceCycle_OutputsSkipped */ : !buildOrder.some((p) => state.diagnostics.has(toResolvedConfigFilePath(state, p))) ? 0 /* Success */ : successfulProjects ? 2 /* DiagnosticsPresent_OutputsGenerated */ : 1 /* DiagnosticsPresent_OutputsSkipped */;\n}\nfunction clean(state, project, onlyReferences) {\n  mark(\"SolutionBuilder::beforeClean\");\n  const result = cleanWorker(state, project, onlyReferences);\n  mark(\"SolutionBuilder::afterClean\");\n  measure(\"SolutionBuilder::Clean\", \"SolutionBuilder::beforeClean\", \"SolutionBuilder::afterClean\");\n  return result;\n}\nfunction cleanWorker(state, project, onlyReferences) {\n  const buildOrder = getBuildOrderFor(state, project, onlyReferences);\n  if (!buildOrder) return 3 /* InvalidProject_OutputsSkipped */;\n  if (isCircularBuildOrder(buildOrder)) {\n    reportErrors(state, buildOrder.circularDiagnostics);\n    return 4 /* ProjectReferenceCycle_OutputsSkipped */;\n  }\n  const { options, host } = state;\n  const filesToDelete = options.dry ? [] : void 0;\n  for (const proj of buildOrder) {\n    const resolvedPath = toResolvedConfigFilePath(state, proj);\n    const parsed = parseConfigFile(state, proj, resolvedPath);\n    if (parsed === void 0) {\n      reportParseConfigFileDiagnostic(state, resolvedPath);\n      continue;\n    }\n    const outputs = getAllProjectOutputs(parsed, !host.useCaseSensitiveFileNames());\n    if (!outputs.length) continue;\n    const inputFileNames = new Set(parsed.fileNames.map((f) => toPath2(state, f)));\n    for (const output of outputs) {\n      if (inputFileNames.has(toPath2(state, output))) continue;\n      if (host.fileExists(output)) {\n        if (filesToDelete) {\n          filesToDelete.push(output);\n        } else {\n          host.deleteFile(output);\n          invalidateProject(state, resolvedPath, 0 /* Update */);\n        }\n      }\n    }\n  }\n  if (filesToDelete) {\n    reportStatus(state, Diagnostics.A_non_dry_build_would_delete_the_following_files_Colon_0, filesToDelete.map((f) => `\\r\n * ${f}`).join(\"\"));\n  }\n  return 0 /* Success */;\n}\nfunction invalidateProject(state, resolved, updateLevel) {\n  if (state.host.getParsedCommandLine && updateLevel === 1 /* RootNamesAndUpdate */) {\n    updateLevel = 2 /* Full */;\n  }\n  if (updateLevel === 2 /* Full */) {\n    state.configFileCache.delete(resolved);\n    state.buildOrder = void 0;\n  }\n  state.needsSummary = true;\n  clearProjectStatus(state, resolved);\n  addProjToQueue(state, resolved, updateLevel);\n  enableCache(state);\n}\nfunction invalidateProjectAndScheduleBuilds(state, resolvedPath, updateLevel) {\n  state.reportFileChangeDetected = true;\n  invalidateProject(state, resolvedPath, updateLevel);\n  scheduleBuildInvalidatedProject(\n    state,\n    250,\n    /*changeDetected*/\n    true\n  );\n}\nfunction scheduleBuildInvalidatedProject(state, time, changeDetected) {\n  const { hostWithWatch } = state;\n  if (!hostWithWatch.setTimeout || !hostWithWatch.clearTimeout) {\n    return;\n  }\n  if (state.timerToBuildInvalidatedProject) {\n    hostWithWatch.clearTimeout(state.timerToBuildInvalidatedProject);\n  }\n  state.timerToBuildInvalidatedProject = hostWithWatch.setTimeout(buildNextInvalidatedProject, time, \"timerToBuildInvalidatedProject\", state, changeDetected);\n}\nfunction buildNextInvalidatedProject(_timeoutType, state, changeDetected) {\n  mark(\"SolutionBuilder::beforeBuild\");\n  const buildOrder = buildNextInvalidatedProjectWorker(state, changeDetected);\n  mark(\"SolutionBuilder::afterBuild\");\n  measure(\"SolutionBuilder::Build\", \"SolutionBuilder::beforeBuild\", \"SolutionBuilder::afterBuild\");\n  if (buildOrder) reportErrorSummary(state, buildOrder);\n}\nfunction buildNextInvalidatedProjectWorker(state, changeDetected) {\n  state.timerToBuildInvalidatedProject = void 0;\n  if (state.reportFileChangeDetected) {\n    state.reportFileChangeDetected = false;\n    state.projectErrorsReported.clear();\n    reportWatchStatus(state, Diagnostics.File_change_detected_Starting_incremental_compilation);\n  }\n  let projectsBuilt = 0;\n  const buildOrder = getBuildOrder(state);\n  const invalidatedProject = getNextInvalidatedProject(\n    state,\n    buildOrder,\n    /*reportQueue*/\n    false\n  );\n  if (invalidatedProject) {\n    invalidatedProject.done();\n    projectsBuilt++;\n    while (state.projectPendingBuild.size) {\n      if (state.timerToBuildInvalidatedProject) return;\n      const info = getNextInvalidatedProjectCreateInfo(\n        state,\n        buildOrder,\n        /*reportQueue*/\n        false\n      );\n      if (!info) break;\n      if (info.kind !== 1 /* UpdateOutputFileStamps */ && (changeDetected || projectsBuilt === 5)) {\n        scheduleBuildInvalidatedProject(\n          state,\n          100,\n          /*changeDetected*/\n          false\n        );\n        return;\n      }\n      const project = createInvalidatedProjectWithInfo(state, info, buildOrder);\n      project.done();\n      if (info.kind !== 1 /* UpdateOutputFileStamps */) projectsBuilt++;\n    }\n  }\n  disableCache(state);\n  return buildOrder;\n}\nfunction watchConfigFile(state, resolved, resolvedPath, parsed) {\n  if (!state.watch || state.allWatchedConfigFiles.has(resolvedPath)) return;\n  state.allWatchedConfigFiles.set(\n    resolvedPath,\n    watchFile(\n      state,\n      resolved,\n      () => invalidateProjectAndScheduleBuilds(state, resolvedPath, 2 /* Full */),\n      2e3 /* High */,\n      parsed == null ? void 0 : parsed.watchOptions,\n      WatchType.ConfigFile,\n      resolved\n    )\n  );\n}\nfunction watchExtendedConfigFiles(state, resolvedPath, parsed) {\n  updateSharedExtendedConfigFileWatcher(\n    resolvedPath,\n    parsed == null ? void 0 : parsed.options,\n    state.allWatchedExtendedConfigFiles,\n    (extendedConfigFileName, extendedConfigFilePath) => watchFile(\n      state,\n      extendedConfigFileName,\n      () => {\n        var _a;\n        return (_a = state.allWatchedExtendedConfigFiles.get(extendedConfigFilePath)) == null ? void 0 : _a.projects.forEach((projectConfigFilePath) => invalidateProjectAndScheduleBuilds(state, projectConfigFilePath, 2 /* Full */));\n      },\n      2e3 /* High */,\n      parsed == null ? void 0 : parsed.watchOptions,\n      WatchType.ExtendedConfigFile\n    ),\n    (fileName) => toPath2(state, fileName)\n  );\n}\nfunction watchWildCardDirectories(state, resolved, resolvedPath, parsed) {\n  if (!state.watch) return;\n  updateWatchingWildcardDirectories(\n    getOrCreateValueMapFromConfigFileMap(state.allWatchedWildcardDirectories, resolvedPath),\n    parsed.wildcardDirectories,\n    (dir, flags) => state.watchDirectory(\n      dir,\n      (fileOrDirectory) => {\n        var _a;\n        if (isIgnoredFileFromWildCardWatching({\n          watchedDirPath: toPath2(state, dir),\n          fileOrDirectory,\n          fileOrDirectoryPath: toPath2(state, fileOrDirectory),\n          configFileName: resolved,\n          currentDirectory: state.compilerHost.getCurrentDirectory(),\n          options: parsed.options,\n          program: state.builderPrograms.get(resolvedPath) || ((_a = getCachedParsedConfigFile(state, resolvedPath)) == null ? void 0 : _a.fileNames),\n          useCaseSensitiveFileNames: state.parseConfigFileHost.useCaseSensitiveFileNames,\n          writeLog: (s) => state.writeLog(s),\n          toPath: (fileName) => toPath2(state, fileName)\n        })) return;\n        invalidateProjectAndScheduleBuilds(state, resolvedPath, 1 /* RootNamesAndUpdate */);\n      },\n      flags,\n      parsed == null ? void 0 : parsed.watchOptions,\n      WatchType.WildcardDirectory,\n      resolved\n    )\n  );\n}\nfunction watchInputFiles(state, resolved, resolvedPath, parsed) {\n  if (!state.watch) return;\n  mutateMap(\n    getOrCreateValueMapFromConfigFileMap(state.allWatchedInputFiles, resolvedPath),\n    new Set(parsed.fileNames),\n    {\n      createNewValue: (input) => watchFile(\n        state,\n        input,\n        () => invalidateProjectAndScheduleBuilds(state, resolvedPath, 0 /* Update */),\n        250 /* Low */,\n        parsed == null ? void 0 : parsed.watchOptions,\n        WatchType.SourceFile,\n        resolved\n      ),\n      onDeleteValue: closeFileWatcher\n    }\n  );\n}\nfunction watchPackageJsonFiles(state, resolved, resolvedPath, parsed) {\n  if (!state.watch || !state.lastCachedPackageJsonLookups) return;\n  mutateMap(\n    getOrCreateValueMapFromConfigFileMap(state.allWatchedPackageJsonFiles, resolvedPath),\n    state.lastCachedPackageJsonLookups.get(resolvedPath),\n    {\n      createNewValue: (input) => watchFile(\n        state,\n        input,\n        () => invalidateProjectAndScheduleBuilds(state, resolvedPath, 0 /* Update */),\n        2e3 /* High */,\n        parsed == null ? void 0 : parsed.watchOptions,\n        WatchType.PackageJson,\n        resolved\n      ),\n      onDeleteValue: closeFileWatcher\n    }\n  );\n}\nfunction startWatching(state, buildOrder) {\n  if (!state.watchAllProjectsPending) return;\n  mark(\"SolutionBuilder::beforeWatcherCreation\");\n  state.watchAllProjectsPending = false;\n  for (const resolved of getBuildOrderFromAnyBuildOrder(buildOrder)) {\n    const resolvedPath = toResolvedConfigFilePath(state, resolved);\n    const cfg = parseConfigFile(state, resolved, resolvedPath);\n    watchConfigFile(state, resolved, resolvedPath, cfg);\n    watchExtendedConfigFiles(state, resolvedPath, cfg);\n    if (cfg) {\n      watchWildCardDirectories(state, resolved, resolvedPath, cfg);\n      watchInputFiles(state, resolved, resolvedPath, cfg);\n      watchPackageJsonFiles(state, resolved, resolvedPath, cfg);\n    }\n  }\n  mark(\"SolutionBuilder::afterWatcherCreation\");\n  measure(\"SolutionBuilder::Watcher creation\", \"SolutionBuilder::beforeWatcherCreation\", \"SolutionBuilder::afterWatcherCreation\");\n}\nfunction stopWatching(state) {\n  clearMap(state.allWatchedConfigFiles, closeFileWatcher);\n  clearMap(state.allWatchedExtendedConfigFiles, closeFileWatcherOf);\n  clearMap(state.allWatchedWildcardDirectories, (watchedWildcardDirectories) => clearMap(watchedWildcardDirectories, closeFileWatcherOf));\n  clearMap(state.allWatchedInputFiles, (watchedWildcardDirectories) => clearMap(watchedWildcardDirectories, closeFileWatcher));\n  clearMap(state.allWatchedPackageJsonFiles, (watchedPacageJsonFiles) => clearMap(watchedPacageJsonFiles, closeFileWatcher));\n}\nfunction createSolutionBuilderWorker(watch, hostOrHostWithWatch, rootNames, options, baseWatchOptions) {\n  const state = createSolutionBuilderState(watch, hostOrHostWithWatch, rootNames, options, baseWatchOptions);\n  return {\n    build: (project, cancellationToken, writeFile2, getCustomTransformers) => build(state, project, cancellationToken, writeFile2, getCustomTransformers),\n    clean: (project) => clean(state, project),\n    buildReferences: (project, cancellationToken, writeFile2, getCustomTransformers) => build(\n      state,\n      project,\n      cancellationToken,\n      writeFile2,\n      getCustomTransformers,\n      /*onlyReferences*/\n      true\n    ),\n    cleanReferences: (project) => clean(\n      state,\n      project,\n      /*onlyReferences*/\n      true\n    ),\n    getNextInvalidatedProject: (cancellationToken) => {\n      setupInitialBuild(state, cancellationToken);\n      return getNextInvalidatedProject(\n        state,\n        getBuildOrder(state),\n        /*reportQueue*/\n        false\n      );\n    },\n    getBuildOrder: () => getBuildOrder(state),\n    getUpToDateStatusOfProject: (project) => {\n      const configFileName = resolveProjectName(state, project);\n      const configFilePath = toResolvedConfigFilePath(state, configFileName);\n      return getUpToDateStatus(state, parseConfigFile(state, configFileName, configFilePath), configFilePath);\n    },\n    invalidateProject: (configFilePath, updateLevel) => invalidateProject(state, configFilePath, updateLevel || 0 /* Update */),\n    close: () => stopWatching(state)\n  };\n}\nfunction relName(state, path) {\n  return convertToRelativePath(path, state.compilerHost.getCurrentDirectory(), state.compilerHost.getCanonicalFileName);\n}\nfunction reportStatus(state, message, ...args) {\n  state.host.reportSolutionBuilderStatus(createCompilerDiagnostic(message, ...args));\n}\nfunction reportWatchStatus(state, message, ...args) {\n  var _a, _b;\n  (_b = (_a = state.hostWithWatch).onWatchStatusChange) == null ? void 0 : _b.call(_a, createCompilerDiagnostic(message, ...args), state.host.getNewLine(), state.baseCompilerOptions);\n}\nfunction reportErrors({ host }, errors) {\n  errors.forEach((err) => host.reportDiagnostic(err));\n}\nfunction reportAndStoreErrors(state, proj, errors) {\n  reportErrors(state, errors);\n  state.projectErrorsReported.set(proj, true);\n  if (errors.length) {\n    state.diagnostics.set(proj, errors);\n  }\n}\nfunction reportParseConfigFileDiagnostic(state, proj) {\n  reportAndStoreErrors(state, proj, [state.configFileCache.get(proj)]);\n}\nfunction reportErrorSummary(state, buildOrder) {\n  if (!state.needsSummary) return;\n  state.needsSummary = false;\n  const canReportSummary = state.watch || !!state.host.reportErrorSummary;\n  const { diagnostics } = state;\n  let totalErrors = 0;\n  let filesInError = [];\n  if (isCircularBuildOrder(buildOrder)) {\n    reportBuildQueue(state, buildOrder.buildOrder);\n    reportErrors(state, buildOrder.circularDiagnostics);\n    if (canReportSummary) totalErrors += getErrorCountForSummary(buildOrder.circularDiagnostics);\n    if (canReportSummary) filesInError = [...filesInError, ...getFilesInErrorForSummary(buildOrder.circularDiagnostics)];\n  } else {\n    buildOrder.forEach((project) => {\n      const projectPath = toResolvedConfigFilePath(state, project);\n      if (!state.projectErrorsReported.has(projectPath)) {\n        reportErrors(state, diagnostics.get(projectPath) || emptyArray);\n      }\n    });\n    if (canReportSummary) diagnostics.forEach((singleProjectErrors) => totalErrors += getErrorCountForSummary(singleProjectErrors));\n    if (canReportSummary) diagnostics.forEach((singleProjectErrors) => [...filesInError, ...getFilesInErrorForSummary(singleProjectErrors)]);\n  }\n  if (state.watch) {\n    reportWatchStatus(state, getWatchErrorSummaryDiagnosticMessage(totalErrors), totalErrors);\n  } else if (state.host.reportErrorSummary) {\n    state.host.reportErrorSummary(totalErrors, filesInError);\n  }\n}\nfunction reportBuildQueue(state, buildQueue) {\n  if (state.options.verbose) {\n    reportStatus(state, Diagnostics.Projects_in_this_build_Colon_0, buildQueue.map((s) => \"\\r\\n    * \" + relName(state, s)).join(\"\"));\n  }\n}\nfunction reportUpToDateStatus(state, configFileName, status) {\n  switch (status.type) {\n    case 5 /* OutOfDateWithSelf */:\n      return reportStatus(\n        state,\n        Diagnostics.Project_0_is_out_of_date_because_output_1_is_older_than_input_2,\n        relName(state, configFileName),\n        relName(state, status.outOfDateOutputFileName),\n        relName(state, status.newerInputFileName)\n      );\n    case 6 /* OutOfDateWithUpstream */:\n      return reportStatus(\n        state,\n        Diagnostics.Project_0_is_out_of_date_because_output_1_is_older_than_input_2,\n        relName(state, configFileName),\n        relName(state, status.outOfDateOutputFileName),\n        relName(state, status.newerProjectName)\n      );\n    case 3 /* OutputMissing */:\n      return reportStatus(\n        state,\n        Diagnostics.Project_0_is_out_of_date_because_output_file_1_does_not_exist,\n        relName(state, configFileName),\n        relName(state, status.missingOutputFileName)\n      );\n    case 4 /* ErrorReadingFile */:\n      return reportStatus(\n        state,\n        Diagnostics.Project_0_is_out_of_date_because_there_was_error_reading_file_1,\n        relName(state, configFileName),\n        relName(state, status.fileName)\n      );\n    case 7 /* OutOfDateBuildInfoWithPendingEmit */:\n      return reportStatus(\n        state,\n        Diagnostics.Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_some_of_the_changes_were_not_emitted,\n        relName(state, configFileName),\n        relName(state, status.buildInfoFile)\n      );\n    case 8 /* OutOfDateBuildInfoWithErrors */:\n      return reportStatus(\n        state,\n        Diagnostics.Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_program_needs_to_report_errors,\n        relName(state, configFileName),\n        relName(state, status.buildInfoFile)\n      );\n    case 9 /* OutOfDateOptions */:\n      return reportStatus(\n        state,\n        Diagnostics.Project_0_is_out_of_date_because_buildinfo_file_1_indicates_there_is_change_in_compilerOptions,\n        relName(state, configFileName),\n        relName(state, status.buildInfoFile)\n      );\n    case 10 /* OutOfDateRoots */:\n      return reportStatus(\n        state,\n        Diagnostics.Project_0_is_out_of_date_because_buildinfo_file_1_indicates_that_file_2_was_root_file_of_compilation_but_not_any_more,\n        relName(state, configFileName),\n        relName(state, status.buildInfoFile),\n        relName(state, status.inputFile)\n      );\n    case 1 /* UpToDate */:\n      if (status.newestInputFileTime !== void 0) {\n        return reportStatus(\n          state,\n          Diagnostics.Project_0_is_up_to_date_because_newest_input_1_is_older_than_output_2,\n          relName(state, configFileName),\n          relName(state, status.newestInputFileName || \"\"),\n          relName(state, status.oldestOutputFileName || \"\")\n        );\n      }\n      break;\n    case 2 /* UpToDateWithUpstreamTypes */:\n      return reportStatus(\n        state,\n        Diagnostics.Project_0_is_up_to_date_with_d_ts_files_from_its_dependencies,\n        relName(state, configFileName)\n      );\n    case 15 /* UpToDateWithInputFileText */:\n      return reportStatus(\n        state,\n        Diagnostics.Project_0_is_up_to_date_but_needs_to_update_timestamps_of_output_files_that_are_older_than_input_files,\n        relName(state, configFileName)\n      );\n    case 11 /* UpstreamOutOfDate */:\n      return reportStatus(\n        state,\n        Diagnostics.Project_0_is_out_of_date_because_its_dependency_1_is_out_of_date,\n        relName(state, configFileName),\n        relName(state, status.upstreamProjectName)\n      );\n    case 12 /* UpstreamBlocked */:\n      return reportStatus(\n        state,\n        status.upstreamProjectBlocked ? Diagnostics.Project_0_can_t_be_built_because_its_dependency_1_was_not_built : Diagnostics.Project_0_can_t_be_built_because_its_dependency_1_has_errors,\n        relName(state, configFileName),\n        relName(state, status.upstreamProjectName)\n      );\n    case 0 /* Unbuildable */:\n      return reportStatus(\n        state,\n        Diagnostics.Project_0_is_out_of_date_because_1,\n        relName(state, configFileName),\n        status.reason\n      );\n    case 14 /* TsVersionOutputOfDate */:\n      return reportStatus(\n        state,\n        Diagnostics.Project_0_is_out_of_date_because_output_for_it_was_generated_with_version_1_that_differs_with_current_version_2,\n        relName(state, configFileName),\n        status.version,\n        version\n      );\n    case 17 /* ForceBuild */:\n      return reportStatus(\n        state,\n        Diagnostics.Project_0_is_being_forcibly_rebuilt,\n        relName(state, configFileName)\n      );\n    case 16 /* ContainerOnly */:\n    // Don't report status on \"solution\" projects\n    // falls through\n    case 13 /* ComputingUpstream */:\n      break;\n    default:\n      assertType(status);\n  }\n}\nfunction verboseReportProjectStatus(state, configFileName, status) {\n  if (state.options.verbose) {\n    reportUpToDateStatus(state, configFileName, status);\n  }\n}\n\n// src/compiler/executeCommandLine.ts\nvar StatisticType = /* @__PURE__ */ ((StatisticType2) => {\n  StatisticType2[StatisticType2[\"time\"] = 0] = \"time\";\n  StatisticType2[StatisticType2[\"count\"] = 1] = \"count\";\n  StatisticType2[StatisticType2[\"memory\"] = 2] = \"memory\";\n  return StatisticType2;\n})(StatisticType || {});\nfunction countLines(program) {\n  const counts2 = getCountsMap();\n  forEach(program.getSourceFiles(), (file) => {\n    const key = getCountKey(program, file);\n    const lineCount = getLineStarts(file).length;\n    counts2.set(key, counts2.get(key) + lineCount);\n  });\n  return counts2;\n}\nfunction getCountsMap() {\n  const counts2 = /* @__PURE__ */ new Map();\n  counts2.set(\"Library\", 0);\n  counts2.set(\"Definitions\", 0);\n  counts2.set(\"TypeScript\", 0);\n  counts2.set(\"JavaScript\", 0);\n  counts2.set(\"JSON\", 0);\n  counts2.set(\"Other\", 0);\n  return counts2;\n}\nfunction getCountKey(program, file) {\n  if (program.isSourceFileDefaultLibrary(file)) {\n    return \"Library\";\n  } else if (file.isDeclarationFile) {\n    return \"Definitions\";\n  }\n  const path = file.path;\n  if (fileExtensionIsOneOf(path, supportedTSExtensionsFlat)) {\n    return \"TypeScript\";\n  } else if (fileExtensionIsOneOf(path, supportedJSExtensionsFlat)) {\n    return \"JavaScript\";\n  } else if (fileExtensionIs(path, \".json\" /* Json */)) {\n    return \"JSON\";\n  } else {\n    return \"Other\";\n  }\n}\nfunction updateReportDiagnostic(sys2, existing, options) {\n  return shouldBePretty(sys2, options) ? createDiagnosticReporter(\n    sys2,\n    /*pretty*/\n    true\n  ) : existing;\n}\nfunction defaultIsPretty(sys2) {\n  return !!sys2.writeOutputIsTTY && sys2.writeOutputIsTTY() && !sys2.getEnvironmentVariable(\"NO_COLOR\");\n}\nfunction shouldBePretty(sys2, options) {\n  if (!options || typeof options.pretty === \"undefined\") {\n    return defaultIsPretty(sys2);\n  }\n  return options.pretty;\n}\nfunction getOptionsForHelp(commandLine) {\n  return !!commandLine.options.all ? toSorted(optionDeclarations.concat(tscBuildOption), (a, b) => compareStringsCaseInsensitive(a.name, b.name)) : filter(optionDeclarations.concat(tscBuildOption), (v) => !!v.showInSimplifiedHelpView);\n}\nfunction printVersion(sys2) {\n  sys2.write(getDiagnosticText(Diagnostics.Version_0, version) + sys2.newLine);\n}\nfunction createColors(sys2) {\n  const showColors = defaultIsPretty(sys2);\n  if (!showColors) {\n    return {\n      bold: (str) => str,\n      blue: (str) => str,\n      blueBackground: (str) => str,\n      brightWhite: (str) => str\n    };\n  }\n  function bold(str) {\n    return `\\x1B[1m${str}\\x1B[22m`;\n  }\n  const isWindows = sys2.getEnvironmentVariable(\"OS\") && sys2.getEnvironmentVariable(\"OS\").toLowerCase().includes(\"windows\");\n  const isWindowsTerminal = sys2.getEnvironmentVariable(\"WT_SESSION\");\n  const isVSCode = sys2.getEnvironmentVariable(\"TERM_PROGRAM\") && sys2.getEnvironmentVariable(\"TERM_PROGRAM\") === \"vscode\";\n  function blue(str) {\n    if (isWindows && !isWindowsTerminal && !isVSCode) {\n      return brightWhite(str);\n    }\n    return `\\x1B[94m${str}\\x1B[39m`;\n  }\n  const supportsRicherColors = sys2.getEnvironmentVariable(\"COLORTERM\") === \"truecolor\" || sys2.getEnvironmentVariable(\"TERM\") === \"xterm-256color\";\n  function blueBackground(str) {\n    if (supportsRicherColors) {\n      return `\\x1B[48;5;68m${str}\\x1B[39;49m`;\n    } else {\n      return `\\x1B[44m${str}\\x1B[39;49m`;\n    }\n  }\n  function brightWhite(str) {\n    return `\\x1B[97m${str}\\x1B[39m`;\n  }\n  return {\n    bold,\n    blue,\n    brightWhite,\n    blueBackground\n  };\n}\nfunction getDisplayNameTextOfOption(option) {\n  return `--${option.name}${option.shortName ? `, -${option.shortName}` : \"\"}`;\n}\nfunction generateOptionOutput(sys2, option, rightAlignOfLeft, leftAlignOfRight) {\n  var _a;\n  const text = [];\n  const colors = createColors(sys2);\n  const name = getDisplayNameTextOfOption(option);\n  const valueCandidates = getValueCandidate(option);\n  const defaultValueDescription = typeof option.defaultValueDescription === \"object\" ? getDiagnosticText(option.defaultValueDescription) : formatDefaultValue(\n    option.defaultValueDescription,\n    option.type === \"list\" || option.type === \"listOrElement\" ? option.element.type : option.type\n  );\n  const terminalWidth = ((_a = sys2.getWidthOfTerminal) == null ? void 0 : _a.call(sys2)) ?? 0;\n  if (terminalWidth >= 80) {\n    let description3 = \"\";\n    if (option.description) {\n      description3 = getDiagnosticText(option.description);\n    }\n    text.push(...getPrettyOutput(\n      name,\n      description3,\n      rightAlignOfLeft,\n      leftAlignOfRight,\n      terminalWidth,\n      /*colorLeft*/\n      true\n    ), sys2.newLine);\n    if (showAdditionalInfoOutput(valueCandidates, option)) {\n      if (valueCandidates) {\n        text.push(...getPrettyOutput(\n          valueCandidates.valueType,\n          valueCandidates.possibleValues,\n          rightAlignOfLeft,\n          leftAlignOfRight,\n          terminalWidth,\n          /*colorLeft*/\n          false\n        ), sys2.newLine);\n      }\n      if (defaultValueDescription) {\n        text.push(...getPrettyOutput(\n          getDiagnosticText(Diagnostics.default_Colon),\n          defaultValueDescription,\n          rightAlignOfLeft,\n          leftAlignOfRight,\n          terminalWidth,\n          /*colorLeft*/\n          false\n        ), sys2.newLine);\n      }\n    }\n    text.push(sys2.newLine);\n  } else {\n    text.push(colors.blue(name), sys2.newLine);\n    if (option.description) {\n      const description3 = getDiagnosticText(option.description);\n      text.push(description3);\n    }\n    text.push(sys2.newLine);\n    if (showAdditionalInfoOutput(valueCandidates, option)) {\n      if (valueCandidates) {\n        text.push(`${valueCandidates.valueType} ${valueCandidates.possibleValues}`);\n      }\n      if (defaultValueDescription) {\n        if (valueCandidates) text.push(sys2.newLine);\n        const diagType = getDiagnosticText(Diagnostics.default_Colon);\n        text.push(`${diagType} ${defaultValueDescription}`);\n      }\n      text.push(sys2.newLine);\n    }\n    text.push(sys2.newLine);\n  }\n  return text;\n  function formatDefaultValue(defaultValue, type) {\n    return defaultValue !== void 0 && typeof type === \"object\" ? arrayFrom(type.entries()).filter(([, value]) => value === defaultValue).map(([name2]) => name2).join(\"/\") : String(defaultValue);\n  }\n  function showAdditionalInfoOutput(valueCandidates2, option2) {\n    const ignoreValues = [\"string\"];\n    const ignoredDescriptions = [void 0, \"false\", \"n/a\"];\n    const defaultValueDescription2 = option2.defaultValueDescription;\n    if (option2.category === Diagnostics.Command_line_Options) return false;\n    if (contains(ignoreValues, valueCandidates2 == null ? void 0 : valueCandidates2.possibleValues) && contains(ignoredDescriptions, defaultValueDescription2)) {\n      return false;\n    }\n    return true;\n  }\n  function getPrettyOutput(left, right, rightAlignOfLeft2, leftAlignOfRight2, terminalWidth2, colorLeft) {\n    const res = [];\n    let isFirstLine = true;\n    let remainRight = right;\n    const rightCharacterNumber = terminalWidth2 - leftAlignOfRight2;\n    while (remainRight.length > 0) {\n      let curLeft = \"\";\n      if (isFirstLine) {\n        curLeft = left.padStart(rightAlignOfLeft2);\n        curLeft = curLeft.padEnd(leftAlignOfRight2);\n        curLeft = colorLeft ? colors.blue(curLeft) : curLeft;\n      } else {\n        curLeft = \"\".padStart(leftAlignOfRight2);\n      }\n      const curRight = remainRight.substr(0, rightCharacterNumber);\n      remainRight = remainRight.slice(rightCharacterNumber);\n      res.push(`${curLeft}${curRight}`);\n      isFirstLine = false;\n    }\n    return res;\n  }\n  function getValueCandidate(option2) {\n    if (option2.type === \"object\") {\n      return void 0;\n    }\n    return {\n      valueType: getValueType(option2),\n      possibleValues: getPossibleValues(option2)\n    };\n    function getValueType(option3) {\n      Debug.assert(option3.type !== \"listOrElement\");\n      switch (option3.type) {\n        case \"string\":\n        case \"number\":\n        case \"boolean\":\n          return getDiagnosticText(Diagnostics.type_Colon);\n        case \"list\":\n          return getDiagnosticText(Diagnostics.one_or_more_Colon);\n        default:\n          return getDiagnosticText(Diagnostics.one_of_Colon);\n      }\n    }\n    function getPossibleValues(option3) {\n      let possibleValues;\n      switch (option3.type) {\n        case \"string\":\n        case \"number\":\n        case \"boolean\":\n          possibleValues = option3.type;\n          break;\n        case \"list\":\n        case \"listOrElement\":\n          possibleValues = getPossibleValues(option3.element);\n          break;\n        case \"object\":\n          possibleValues = \"\";\n          break;\n        default:\n          const inverted = {};\n          option3.type.forEach((value, name2) => {\n            var _a2;\n            if (!((_a2 = option3.deprecatedKeys) == null ? void 0 : _a2.has(name2))) {\n              (inverted[value] || (inverted[value] = [])).push(name2);\n            }\n          });\n          return Object.entries(inverted).map(([, synonyms]) => synonyms.join(\"/\")).join(\", \");\n      }\n      return possibleValues;\n    }\n  }\n}\nfunction generateGroupOptionOutput(sys2, optionsList) {\n  let maxLength2 = 0;\n  for (const option of optionsList) {\n    const curLength = getDisplayNameTextOfOption(option).length;\n    maxLength2 = maxLength2 > curLength ? maxLength2 : curLength;\n  }\n  const rightAlignOfLeftPart = maxLength2 + 2;\n  const leftAlignOfRightPart = rightAlignOfLeftPart + 2;\n  let lines = [];\n  for (const option of optionsList) {\n    const tmp = generateOptionOutput(sys2, option, rightAlignOfLeftPart, leftAlignOfRightPart);\n    lines = [...lines, ...tmp];\n  }\n  if (lines[lines.length - 2] !== sys2.newLine) {\n    lines.push(sys2.newLine);\n  }\n  return lines;\n}\nfunction generateSectionOptionsOutput(sys2, sectionName, options, subCategory, beforeOptionsDescription, afterOptionsDescription) {\n  let res = [];\n  res.push(createColors(sys2).bold(sectionName) + sys2.newLine + sys2.newLine);\n  if (beforeOptionsDescription) {\n    res.push(beforeOptionsDescription + sys2.newLine + sys2.newLine);\n  }\n  if (!subCategory) {\n    res = [...res, ...generateGroupOptionOutput(sys2, options)];\n    if (afterOptionsDescription) {\n      res.push(afterOptionsDescription + sys2.newLine + sys2.newLine);\n    }\n    return res;\n  }\n  const categoryMap = /* @__PURE__ */ new Map();\n  for (const option of options) {\n    if (!option.category) {\n      continue;\n    }\n    const curCategory = getDiagnosticText(option.category);\n    const optionsOfCurCategory = categoryMap.get(curCategory) ?? [];\n    optionsOfCurCategory.push(option);\n    categoryMap.set(curCategory, optionsOfCurCategory);\n  }\n  categoryMap.forEach((value, key) => {\n    res.push(`### ${key}${sys2.newLine}${sys2.newLine}`);\n    res = [...res, ...generateGroupOptionOutput(sys2, value)];\n  });\n  if (afterOptionsDescription) {\n    res.push(afterOptionsDescription + sys2.newLine + sys2.newLine);\n  }\n  return res;\n}\nfunction printEasyHelp(sys2, simpleOptions) {\n  const colors = createColors(sys2);\n  let output = [...getHeader(sys2, `${getDiagnosticText(Diagnostics.tsc_Colon_The_TypeScript_Compiler)} - ${getDiagnosticText(Diagnostics.Version_0, version)}`)];\n  output.push(colors.bold(getDiagnosticText(Diagnostics.COMMON_COMMANDS)) + sys2.newLine + sys2.newLine);\n  example(\"tsc\", Diagnostics.Compiles_the_current_project_tsconfig_json_in_the_working_directory);\n  example(\"tsc app.ts util.ts\", Diagnostics.Ignoring_tsconfig_json_compiles_the_specified_files_with_default_compiler_options);\n  example(\"tsc -b\", Diagnostics.Build_a_composite_project_in_the_working_directory);\n  example(\"tsc --init\", Diagnostics.Creates_a_tsconfig_json_with_the_recommended_settings_in_the_working_directory);\n  example(\"tsc -p ./path/to/tsconfig.json\", Diagnostics.Compiles_the_TypeScript_project_located_at_the_specified_path);\n  example(\"tsc --help --all\", Diagnostics.An_expanded_version_of_this_information_showing_all_possible_compiler_options);\n  example([\"tsc --noEmit\", \"tsc --target esnext\"], Diagnostics.Compiles_the_current_project_with_additional_settings);\n  const cliCommands = simpleOptions.filter((opt) => opt.isCommandLineOnly || opt.category === Diagnostics.Command_line_Options);\n  const configOpts = simpleOptions.filter((opt) => !contains(cliCommands, opt));\n  output = [\n    ...output,\n    ...generateSectionOptionsOutput(\n      sys2,\n      getDiagnosticText(Diagnostics.COMMAND_LINE_FLAGS),\n      cliCommands,\n      /*subCategory*/\n      false,\n      /*beforeOptionsDescription*/\n      void 0,\n      /*afterOptionsDescription*/\n      void 0\n    ),\n    ...generateSectionOptionsOutput(\n      sys2,\n      getDiagnosticText(Diagnostics.COMMON_COMPILER_OPTIONS),\n      configOpts,\n      /*subCategory*/\n      false,\n      /*beforeOptionsDescription*/\n      void 0,\n      formatMessage(Diagnostics.You_can_learn_about_all_of_the_compiler_options_at_0, \"https://aka.ms/tsc\")\n    )\n  ];\n  for (const line of output) {\n    sys2.write(line);\n  }\n  function example(ex, desc) {\n    const examples = typeof ex === \"string\" ? [ex] : ex;\n    for (const example2 of examples) {\n      output.push(\"  \" + colors.blue(example2) + sys2.newLine);\n    }\n    output.push(\"  \" + getDiagnosticText(desc) + sys2.newLine + sys2.newLine);\n  }\n}\nfunction printAllHelp(sys2, compilerOptions, buildOptions, watchOptions) {\n  let output = [...getHeader(sys2, `${getDiagnosticText(Diagnostics.tsc_Colon_The_TypeScript_Compiler)} - ${getDiagnosticText(Diagnostics.Version_0, version)}`)];\n  output = [...output, ...generateSectionOptionsOutput(\n    sys2,\n    getDiagnosticText(Diagnostics.ALL_COMPILER_OPTIONS),\n    compilerOptions,\n    /*subCategory*/\n    true,\n    /*beforeOptionsDescription*/\n    void 0,\n    formatMessage(Diagnostics.You_can_learn_about_all_of_the_compiler_options_at_0, \"https://aka.ms/tsc\")\n  )];\n  output = [...output, ...generateSectionOptionsOutput(\n    sys2,\n    getDiagnosticText(Diagnostics.WATCH_OPTIONS),\n    watchOptions,\n    /*subCategory*/\n    false,\n    getDiagnosticText(Diagnostics.Including_watch_w_will_start_watching_the_current_project_for_the_file_changes_Once_set_you_can_config_watch_mode_with_Colon)\n  )];\n  output = [...output, ...generateSectionOptionsOutput(\n    sys2,\n    getDiagnosticText(Diagnostics.BUILD_OPTIONS),\n    filter(buildOptions, (option) => option !== tscBuildOption),\n    /*subCategory*/\n    false,\n    formatMessage(Diagnostics.Using_build_b_will_make_tsc_behave_more_like_a_build_orchestrator_than_a_compiler_This_is_used_to_trigger_building_composite_projects_which_you_can_learn_more_about_at_0, \"https://aka.ms/tsc-composite-builds\")\n  )];\n  for (const line of output) {\n    sys2.write(line);\n  }\n}\nfunction printBuildHelp(sys2, buildOptions) {\n  let output = [...getHeader(sys2, `${getDiagnosticText(Diagnostics.tsc_Colon_The_TypeScript_Compiler)} - ${getDiagnosticText(Diagnostics.Version_0, version)}`)];\n  output = [...output, ...generateSectionOptionsOutput(\n    sys2,\n    getDiagnosticText(Diagnostics.BUILD_OPTIONS),\n    filter(buildOptions, (option) => option !== tscBuildOption),\n    /*subCategory*/\n    false,\n    formatMessage(Diagnostics.Using_build_b_will_make_tsc_behave_more_like_a_build_orchestrator_than_a_compiler_This_is_used_to_trigger_building_composite_projects_which_you_can_learn_more_about_at_0, \"https://aka.ms/tsc-composite-builds\")\n  )];\n  for (const line of output) {\n    sys2.write(line);\n  }\n}\nfunction getHeader(sys2, message) {\n  var _a;\n  const colors = createColors(sys2);\n  const header = [];\n  const terminalWidth = ((_a = sys2.getWidthOfTerminal) == null ? void 0 : _a.call(sys2)) ?? 0;\n  const tsIconLength = 5;\n  const tsIconFirstLine = colors.blueBackground(\"\".padStart(tsIconLength));\n  const tsIconSecondLine = colors.blueBackground(colors.brightWhite(\"TS \".padStart(tsIconLength)));\n  if (terminalWidth >= message.length + tsIconLength) {\n    const rightAlign = terminalWidth > 120 ? 120 : terminalWidth;\n    const leftAlign = rightAlign - tsIconLength;\n    header.push(message.padEnd(leftAlign) + tsIconFirstLine + sys2.newLine);\n    header.push(\"\".padStart(leftAlign) + tsIconSecondLine + sys2.newLine);\n  } else {\n    header.push(message + sys2.newLine);\n    header.push(sys2.newLine);\n  }\n  return header;\n}\nfunction printHelp(sys2, commandLine) {\n  if (!commandLine.options.all) {\n    printEasyHelp(sys2, getOptionsForHelp(commandLine));\n  } else {\n    printAllHelp(sys2, getOptionsForHelp(commandLine), optionsForBuild, optionsForWatch);\n  }\n}\nfunction executeCommandLineWorker(sys2, cb, commandLine) {\n  let reportDiagnostic = createDiagnosticReporter(sys2);\n  let configFileName;\n  if (commandLine.options.locale) {\n    validateLocaleAndSetLanguage(commandLine.options.locale, sys2, commandLine.errors);\n  }\n  if (commandLine.errors.length > 0) {\n    commandLine.errors.forEach(reportDiagnostic);\n    return sys2.exit(1 /* DiagnosticsPresent_OutputsSkipped */);\n  }\n  if (commandLine.options.init) {\n    writeConfigFile(sys2, reportDiagnostic, commandLine.options);\n    return sys2.exit(0 /* Success */);\n  }\n  if (commandLine.options.version) {\n    printVersion(sys2);\n    return sys2.exit(0 /* Success */);\n  }\n  if (commandLine.options.help || commandLine.options.all) {\n    printHelp(sys2, commandLine);\n    return sys2.exit(0 /* Success */);\n  }\n  if (commandLine.options.watch && commandLine.options.listFilesOnly) {\n    reportDiagnostic(createCompilerDiagnostic(Diagnostics.Options_0_and_1_cannot_be_combined, \"watch\", \"listFilesOnly\"));\n    return sys2.exit(1 /* DiagnosticsPresent_OutputsSkipped */);\n  }\n  if (commandLine.options.project) {\n    if (commandLine.fileNames.length !== 0) {\n      reportDiagnostic(createCompilerDiagnostic(Diagnostics.Option_project_cannot_be_mixed_with_source_files_on_a_command_line));\n      return sys2.exit(1 /* DiagnosticsPresent_OutputsSkipped */);\n    }\n    const fileOrDirectory = normalizePath(commandLine.options.project);\n    if (!fileOrDirectory || sys2.directoryExists(fileOrDirectory)) {\n      configFileName = combinePaths(fileOrDirectory, \"tsconfig.json\");\n      if (!sys2.fileExists(configFileName)) {\n        reportDiagnostic(createCompilerDiagnostic(Diagnostics.Cannot_find_a_tsconfig_json_file_at_the_specified_directory_Colon_0, commandLine.options.project));\n        return sys2.exit(1 /* DiagnosticsPresent_OutputsSkipped */);\n      }\n    } else {\n      configFileName = fileOrDirectory;\n      if (!sys2.fileExists(configFileName)) {\n        reportDiagnostic(createCompilerDiagnostic(Diagnostics.The_specified_path_does_not_exist_Colon_0, commandLine.options.project));\n        return sys2.exit(1 /* DiagnosticsPresent_OutputsSkipped */);\n      }\n    }\n  } else if (commandLine.fileNames.length === 0) {\n    const searchPath = normalizePath(sys2.getCurrentDirectory());\n    configFileName = findConfigFile(searchPath, (fileName) => sys2.fileExists(fileName));\n  }\n  if (commandLine.fileNames.length === 0 && !configFileName) {\n    if (commandLine.options.showConfig) {\n      reportDiagnostic(createCompilerDiagnostic(Diagnostics.Cannot_find_a_tsconfig_json_file_at_the_current_directory_Colon_0, normalizePath(sys2.getCurrentDirectory())));\n    } else {\n      printVersion(sys2);\n      printHelp(sys2, commandLine);\n    }\n    return sys2.exit(1 /* DiagnosticsPresent_OutputsSkipped */);\n  }\n  const currentDirectory = sys2.getCurrentDirectory();\n  const commandLineOptions = convertToOptionsWithAbsolutePaths(\n    commandLine.options,\n    (fileName) => getNormalizedAbsolutePath(fileName, currentDirectory)\n  );\n  if (configFileName) {\n    const extendedConfigCache = /* @__PURE__ */ new Map();\n    const configParseResult = parseConfigFileWithSystem(configFileName, commandLineOptions, extendedConfigCache, commandLine.watchOptions, sys2, reportDiagnostic);\n    if (commandLineOptions.showConfig) {\n      if (configParseResult.errors.length !== 0) {\n        reportDiagnostic = updateReportDiagnostic(\n          sys2,\n          reportDiagnostic,\n          configParseResult.options\n        );\n        configParseResult.errors.forEach(reportDiagnostic);\n        return sys2.exit(1 /* DiagnosticsPresent_OutputsSkipped */);\n      }\n      sys2.write(JSON.stringify(convertToTSConfig(configParseResult, configFileName, sys2), null, 4) + sys2.newLine);\n      return sys2.exit(0 /* Success */);\n    }\n    reportDiagnostic = updateReportDiagnostic(\n      sys2,\n      reportDiagnostic,\n      configParseResult.options\n    );\n    if (isWatchSet(configParseResult.options)) {\n      if (reportWatchModeWithoutSysSupport(sys2, reportDiagnostic)) return;\n      return createWatchOfConfigFile(\n        sys2,\n        cb,\n        reportDiagnostic,\n        configParseResult,\n        commandLineOptions,\n        commandLine.watchOptions,\n        extendedConfigCache\n      );\n    } else if (isIncrementalCompilation(configParseResult.options)) {\n      performIncrementalCompilation2(\n        sys2,\n        cb,\n        reportDiagnostic,\n        configParseResult\n      );\n    } else {\n      performCompilation(\n        sys2,\n        cb,\n        reportDiagnostic,\n        configParseResult\n      );\n    }\n  } else {\n    if (commandLineOptions.showConfig) {\n      sys2.write(JSON.stringify(convertToTSConfig(commandLine, combinePaths(currentDirectory, \"tsconfig.json\"), sys2), null, 4) + sys2.newLine);\n      return sys2.exit(0 /* Success */);\n    }\n    reportDiagnostic = updateReportDiagnostic(\n      sys2,\n      reportDiagnostic,\n      commandLineOptions\n    );\n    if (isWatchSet(commandLineOptions)) {\n      if (reportWatchModeWithoutSysSupport(sys2, reportDiagnostic)) return;\n      return createWatchOfFilesAndCompilerOptions(\n        sys2,\n        cb,\n        reportDiagnostic,\n        commandLine.fileNames,\n        commandLineOptions,\n        commandLine.watchOptions\n      );\n    } else if (isIncrementalCompilation(commandLineOptions)) {\n      performIncrementalCompilation2(\n        sys2,\n        cb,\n        reportDiagnostic,\n        { ...commandLine, options: commandLineOptions }\n      );\n    } else {\n      performCompilation(\n        sys2,\n        cb,\n        reportDiagnostic,\n        { ...commandLine, options: commandLineOptions }\n      );\n    }\n  }\n}\nfunction isBuildCommand(commandLineArgs) {\n  if (commandLineArgs.length > 0 && commandLineArgs[0].charCodeAt(0) === 45 /* minus */) {\n    const firstOption = commandLineArgs[0].slice(commandLineArgs[0].charCodeAt(1) === 45 /* minus */ ? 2 : 1).toLowerCase();\n    return firstOption === tscBuildOption.name || firstOption === tscBuildOption.shortName;\n  }\n  return false;\n}\nfunction executeCommandLine(system, cb, commandLineArgs) {\n  if (isBuildCommand(commandLineArgs)) {\n    const { buildOptions, watchOptions, projects, errors } = parseBuildCommand(commandLineArgs);\n    if (buildOptions.generateCpuProfile && system.enableCPUProfiler) {\n      system.enableCPUProfiler(buildOptions.generateCpuProfile, () => performBuild(\n        system,\n        cb,\n        buildOptions,\n        watchOptions,\n        projects,\n        errors\n      ));\n    } else {\n      return performBuild(\n        system,\n        cb,\n        buildOptions,\n        watchOptions,\n        projects,\n        errors\n      );\n    }\n  }\n  const commandLine = parseCommandLine(commandLineArgs, (path) => system.readFile(path));\n  if (commandLine.options.generateCpuProfile && system.enableCPUProfiler) {\n    system.enableCPUProfiler(commandLine.options.generateCpuProfile, () => executeCommandLineWorker(\n      system,\n      cb,\n      commandLine\n    ));\n  } else {\n    return executeCommandLineWorker(system, cb, commandLine);\n  }\n}\nfunction reportWatchModeWithoutSysSupport(sys2, reportDiagnostic) {\n  if (!sys2.watchFile || !sys2.watchDirectory) {\n    reportDiagnostic(createCompilerDiagnostic(Diagnostics.The_current_host_does_not_support_the_0_option, \"--watch\"));\n    sys2.exit(1 /* DiagnosticsPresent_OutputsSkipped */);\n    return true;\n  }\n  return false;\n}\nvar defaultJSDocParsingMode = 2 /* ParseForTypeErrors */;\nfunction performBuild(sys2, cb, buildOptions, watchOptions, projects, errors) {\n  const reportDiagnostic = updateReportDiagnostic(\n    sys2,\n    createDiagnosticReporter(sys2),\n    buildOptions\n  );\n  if (buildOptions.locale) {\n    validateLocaleAndSetLanguage(buildOptions.locale, sys2, errors);\n  }\n  if (errors.length > 0) {\n    errors.forEach(reportDiagnostic);\n    return sys2.exit(1 /* DiagnosticsPresent_OutputsSkipped */);\n  }\n  if (buildOptions.help) {\n    printVersion(sys2);\n    printBuildHelp(sys2, buildOpts);\n    return sys2.exit(0 /* Success */);\n  }\n  if (projects.length === 0) {\n    printVersion(sys2);\n    printBuildHelp(sys2, buildOpts);\n    return sys2.exit(0 /* Success */);\n  }\n  if (!sys2.getModifiedTime || !sys2.setModifiedTime || buildOptions.clean && !sys2.deleteFile) {\n    reportDiagnostic(createCompilerDiagnostic(Diagnostics.The_current_host_does_not_support_the_0_option, \"--build\"));\n    return sys2.exit(1 /* DiagnosticsPresent_OutputsSkipped */);\n  }\n  if (buildOptions.watch) {\n    if (reportWatchModeWithoutSysSupport(sys2, reportDiagnostic)) return;\n    const buildHost2 = createSolutionBuilderWithWatchHost(\n      sys2,\n      /*createProgram*/\n      void 0,\n      reportDiagnostic,\n      createBuilderStatusReporter(sys2, shouldBePretty(sys2, buildOptions)),\n      createWatchStatusReporter2(sys2, buildOptions)\n    );\n    buildHost2.jsDocParsingMode = defaultJSDocParsingMode;\n    const solutionPerformance2 = enableSolutionPerformance(sys2, buildOptions);\n    updateSolutionBuilderHost(sys2, cb, buildHost2, solutionPerformance2);\n    const onWatchStatusChange = buildHost2.onWatchStatusChange;\n    let reportBuildStatistics = false;\n    buildHost2.onWatchStatusChange = (d, newLine, options, errorCount) => {\n      onWatchStatusChange == null ? void 0 : onWatchStatusChange(d, newLine, options, errorCount);\n      if (reportBuildStatistics && (d.code === Diagnostics.Found_0_errors_Watching_for_file_changes.code || d.code === Diagnostics.Found_1_error_Watching_for_file_changes.code)) {\n        reportSolutionBuilderTimes(builder2, solutionPerformance2);\n      }\n    };\n    const builder2 = createSolutionBuilderWithWatch(buildHost2, projects, buildOptions, watchOptions);\n    builder2.build();\n    reportSolutionBuilderTimes(builder2, solutionPerformance2);\n    reportBuildStatistics = true;\n    return builder2;\n  }\n  const buildHost = createSolutionBuilderHost(\n    sys2,\n    /*createProgram*/\n    void 0,\n    reportDiagnostic,\n    createBuilderStatusReporter(sys2, shouldBePretty(sys2, buildOptions)),\n    createReportErrorSummary(sys2, buildOptions)\n  );\n  buildHost.jsDocParsingMode = defaultJSDocParsingMode;\n  const solutionPerformance = enableSolutionPerformance(sys2, buildOptions);\n  updateSolutionBuilderHost(sys2, cb, buildHost, solutionPerformance);\n  const builder = createSolutionBuilder(buildHost, projects, buildOptions);\n  const exitStatus = buildOptions.clean ? builder.clean() : builder.build();\n  reportSolutionBuilderTimes(builder, solutionPerformance);\n  dumpTracingLegend();\n  return sys2.exit(exitStatus);\n}\nfunction createReportErrorSummary(sys2, options) {\n  return shouldBePretty(sys2, options) ? (errorCount, filesInError) => sys2.write(getErrorSummaryText(errorCount, filesInError, sys2.newLine, sys2)) : void 0;\n}\nfunction performCompilation(sys2, cb, reportDiagnostic, config) {\n  const { fileNames, options, projectReferences } = config;\n  const host = createCompilerHostWorker(\n    options,\n    /*setParentNodes*/\n    void 0,\n    sys2\n  );\n  host.jsDocParsingMode = defaultJSDocParsingMode;\n  const currentDirectory = host.getCurrentDirectory();\n  const getCanonicalFileName = createGetCanonicalFileName(host.useCaseSensitiveFileNames());\n  changeCompilerHostLikeToUseCache(host, (fileName) => toPath(fileName, currentDirectory, getCanonicalFileName));\n  enableStatisticsAndTracing(\n    sys2,\n    options,\n    /*isBuildMode*/\n    false\n  );\n  const programOptions = {\n    rootNames: fileNames,\n    options,\n    projectReferences,\n    host,\n    configFileParsingDiagnostics: getConfigFileParsingDiagnostics(config)\n  };\n  const program = createProgram(programOptions);\n  const exitStatus = emitFilesAndReportErrorsAndGetExitStatus(\n    program,\n    reportDiagnostic,\n    (s) => sys2.write(s + sys2.newLine),\n    createReportErrorSummary(sys2, options)\n  );\n  reportStatistics(\n    sys2,\n    program,\n    /*solutionPerformance*/\n    void 0\n  );\n  cb(program);\n  return sys2.exit(exitStatus);\n}\nfunction performIncrementalCompilation2(sys2, cb, reportDiagnostic, config) {\n  const { options, fileNames, projectReferences } = config;\n  enableStatisticsAndTracing(\n    sys2,\n    options,\n    /*isBuildMode*/\n    false\n  );\n  const host = createIncrementalCompilerHost(options, sys2);\n  host.jsDocParsingMode = defaultJSDocParsingMode;\n  const exitStatus = performIncrementalCompilation({\n    host,\n    system: sys2,\n    rootNames: fileNames,\n    options,\n    configFileParsingDiagnostics: getConfigFileParsingDiagnostics(config),\n    projectReferences,\n    reportDiagnostic,\n    reportErrorSummary: createReportErrorSummary(sys2, options),\n    afterProgramEmitAndDiagnostics: (builderProgram) => {\n      reportStatistics(\n        sys2,\n        builderProgram.getProgram(),\n        /*solutionPerformance*/\n        void 0\n      );\n      cb(builderProgram);\n    }\n  });\n  return sys2.exit(exitStatus);\n}\nfunction updateSolutionBuilderHost(sys2, cb, buildHost, solutionPerformance) {\n  updateCreateProgram(\n    sys2,\n    buildHost,\n    /*isBuildMode*/\n    true\n  );\n  buildHost.afterProgramEmitAndDiagnostics = (program) => {\n    reportStatistics(sys2, program.getProgram(), solutionPerformance);\n    cb(program);\n  };\n}\nfunction updateCreateProgram(sys2, host, isBuildMode) {\n  const compileUsingBuilder = host.createProgram;\n  host.createProgram = (rootNames, options, host2, oldProgram, configFileParsingDiagnostics, projectReferences) => {\n    Debug.assert(rootNames !== void 0 || options === void 0 && !!oldProgram);\n    if (options !== void 0) {\n      enableStatisticsAndTracing(sys2, options, isBuildMode);\n    }\n    return compileUsingBuilder(rootNames, options, host2, oldProgram, configFileParsingDiagnostics, projectReferences);\n  };\n}\nfunction updateWatchCompilationHost(sys2, cb, watchCompilerHost) {\n  watchCompilerHost.jsDocParsingMode = defaultJSDocParsingMode;\n  updateCreateProgram(\n    sys2,\n    watchCompilerHost,\n    /*isBuildMode*/\n    false\n  );\n  const emitFilesUsingBuilder = watchCompilerHost.afterProgramCreate;\n  watchCompilerHost.afterProgramCreate = (builderProgram) => {\n    emitFilesUsingBuilder(builderProgram);\n    reportStatistics(\n      sys2,\n      builderProgram.getProgram(),\n      /*solutionPerformance*/\n      void 0\n    );\n    cb(builderProgram);\n  };\n}\nfunction createWatchStatusReporter2(sys2, options) {\n  return createWatchStatusReporter(sys2, shouldBePretty(sys2, options));\n}\nfunction createWatchOfConfigFile(system, cb, reportDiagnostic, configParseResult, optionsToExtend, watchOptionsToExtend, extendedConfigCache) {\n  const watchCompilerHost = createWatchCompilerHostOfConfigFile({\n    configFileName: configParseResult.options.configFilePath,\n    optionsToExtend,\n    watchOptionsToExtend,\n    system,\n    reportDiagnostic,\n    reportWatchStatus: createWatchStatusReporter2(system, configParseResult.options)\n  });\n  updateWatchCompilationHost(system, cb, watchCompilerHost);\n  watchCompilerHost.configFileParsingResult = configParseResult;\n  watchCompilerHost.extendedConfigCache = extendedConfigCache;\n  return createWatchProgram(watchCompilerHost);\n}\nfunction createWatchOfFilesAndCompilerOptions(system, cb, reportDiagnostic, rootFiles, options, watchOptions) {\n  const watchCompilerHost = createWatchCompilerHostOfFilesAndCompilerOptions({\n    rootFiles,\n    options,\n    watchOptions,\n    system,\n    reportDiagnostic,\n    reportWatchStatus: createWatchStatusReporter2(system, options)\n  });\n  updateWatchCompilationHost(system, cb, watchCompilerHost);\n  return createWatchProgram(watchCompilerHost);\n}\nfunction enableSolutionPerformance(system, options) {\n  if (system === sys && options.extendedDiagnostics) {\n    enable();\n    return createSolutionPerfomrance();\n  }\n}\nfunction createSolutionPerfomrance() {\n  let statistics;\n  return {\n    addAggregateStatistic,\n    forEachAggregateStatistics: forEachAggreateStatistics,\n    clear: clear2\n  };\n  function addAggregateStatistic(s) {\n    const existing = statistics == null ? void 0 : statistics.get(s.name);\n    if (existing) {\n      if (existing.type === 2 /* memory */) existing.value = Math.max(existing.value, s.value);\n      else existing.value += s.value;\n    } else {\n      (statistics ?? (statistics = /* @__PURE__ */ new Map())).set(s.name, s);\n    }\n  }\n  function forEachAggreateStatistics(cb) {\n    statistics == null ? void 0 : statistics.forEach(cb);\n  }\n  function clear2() {\n    statistics = void 0;\n  }\n}\nfunction reportSolutionBuilderTimes(builder, solutionPerformance) {\n  if (!solutionPerformance) return;\n  if (!isEnabled()) {\n    sys.write(Diagnostics.Performance_timings_for_diagnostics_or_extendedDiagnostics_are_not_available_in_this_session_A_native_implementation_of_the_Web_Performance_API_could_not_be_found.message + \"\\n\");\n    return;\n  }\n  const statistics = [];\n  statistics.push(\n    { name: \"Projects in scope\", value: getBuildOrderFromAnyBuildOrder(builder.getBuildOrder()).length, type: 1 /* count */ }\n  );\n  reportSolutionBuilderCountStatistic(\"SolutionBuilder::Projects built\");\n  reportSolutionBuilderCountStatistic(\"SolutionBuilder::Timestamps only updates\");\n  reportSolutionBuilderCountStatistic(\"SolutionBuilder::Bundles updated\");\n  solutionPerformance.forEachAggregateStatistics((s) => {\n    s.name = `Aggregate ${s.name}`;\n    statistics.push(s);\n  });\n  forEachMeasure((name, duration) => {\n    if (isSolutionMarkOrMeasure(name)) statistics.push({ name: `${getNameFromSolutionBuilderMarkOrMeasure(name)} time`, value: duration, type: 0 /* time */ });\n  });\n  disable();\n  enable();\n  solutionPerformance.clear();\n  reportAllStatistics(sys, statistics);\n  function reportSolutionBuilderCountStatistic(name) {\n    const value = getCount(name);\n    if (value) {\n      statistics.push({ name: getNameFromSolutionBuilderMarkOrMeasure(name), value, type: 1 /* count */ });\n    }\n  }\n  function getNameFromSolutionBuilderMarkOrMeasure(name) {\n    return name.replace(\"SolutionBuilder::\", \"\");\n  }\n}\nfunction canReportDiagnostics(system, compilerOptions) {\n  return system === sys && (compilerOptions.diagnostics || compilerOptions.extendedDiagnostics);\n}\nfunction canTrace(system, compilerOptions) {\n  return system === sys && compilerOptions.generateTrace;\n}\nfunction enableStatisticsAndTracing(system, compilerOptions, isBuildMode) {\n  if (canReportDiagnostics(system, compilerOptions)) {\n    enable(system);\n  }\n  if (canTrace(system, compilerOptions)) {\n    startTracing(isBuildMode ? \"build\" : \"project\", compilerOptions.generateTrace, compilerOptions.configFilePath);\n  }\n}\nfunction isSolutionMarkOrMeasure(name) {\n  return startsWith(name, \"SolutionBuilder::\");\n}\nfunction reportStatistics(sys2, program, solutionPerformance) {\n  var _a;\n  const compilerOptions = program.getCompilerOptions();\n  if (canTrace(sys2, compilerOptions)) {\n    (_a = tracing) == null ? void 0 : _a.stopTracing();\n  }\n  let statistics;\n  if (canReportDiagnostics(sys2, compilerOptions)) {\n    statistics = [];\n    const memoryUsed = sys2.getMemoryUsage ? sys2.getMemoryUsage() : -1;\n    reportCountStatistic(\"Files\", program.getSourceFiles().length);\n    const lineCounts = countLines(program);\n    if (compilerOptions.extendedDiagnostics) {\n      for (const [key, value] of lineCounts.entries()) {\n        reportCountStatistic(\"Lines of \" + key, value);\n      }\n    } else {\n      reportCountStatistic(\"Lines\", reduceLeftIterator(lineCounts.values(), (sum, count) => sum + count, 0));\n    }\n    reportCountStatistic(\"Identifiers\", program.getIdentifierCount());\n    reportCountStatistic(\"Symbols\", program.getSymbolCount());\n    reportCountStatistic(\"Types\", program.getTypeCount());\n    reportCountStatistic(\"Instantiations\", program.getInstantiationCount());\n    if (memoryUsed >= 0) {\n      reportStatisticalValue(\n        { name: \"Memory used\", value: memoryUsed, type: 2 /* memory */ },\n        /*aggregate*/\n        true\n      );\n    }\n    const isPerformanceEnabled = isEnabled();\n    const programTime = isPerformanceEnabled ? getDuration(\"Program\") : 0;\n    const bindTime = isPerformanceEnabled ? getDuration(\"Bind\") : 0;\n    const checkTime = isPerformanceEnabled ? getDuration(\"Check\") : 0;\n    const emitTime = isPerformanceEnabled ? getDuration(\"Emit\") : 0;\n    if (compilerOptions.extendedDiagnostics) {\n      const caches = program.getRelationCacheSizes();\n      reportCountStatistic(\"Assignability cache size\", caches.assignable);\n      reportCountStatistic(\"Identity cache size\", caches.identity);\n      reportCountStatistic(\"Subtype cache size\", caches.subtype);\n      reportCountStatistic(\"Strict subtype cache size\", caches.strictSubtype);\n      if (isPerformanceEnabled) {\n        forEachMeasure((name, duration) => {\n          if (!isSolutionMarkOrMeasure(name)) reportTimeStatistic(\n            `${name} time`,\n            duration,\n            /*aggregate*/\n            true\n          );\n        });\n      }\n    } else if (isPerformanceEnabled) {\n      reportTimeStatistic(\n        \"I/O read\",\n        getDuration(\"I/O Read\"),\n        /*aggregate*/\n        true\n      );\n      reportTimeStatistic(\n        \"I/O write\",\n        getDuration(\"I/O Write\"),\n        /*aggregate*/\n        true\n      );\n      reportTimeStatistic(\n        \"Parse time\",\n        programTime,\n        /*aggregate*/\n        true\n      );\n      reportTimeStatistic(\n        \"Bind time\",\n        bindTime,\n        /*aggregate*/\n        true\n      );\n      reportTimeStatistic(\n        \"Check time\",\n        checkTime,\n        /*aggregate*/\n        true\n      );\n      reportTimeStatistic(\n        \"Emit time\",\n        emitTime,\n        /*aggregate*/\n        true\n      );\n    }\n    if (isPerformanceEnabled) {\n      reportTimeStatistic(\n        \"Total time\",\n        programTime + bindTime + checkTime + emitTime,\n        /*aggregate*/\n        false\n      );\n    }\n    reportAllStatistics(sys2, statistics);\n    if (!isPerformanceEnabled) {\n      sys2.write(Diagnostics.Performance_timings_for_diagnostics_or_extendedDiagnostics_are_not_available_in_this_session_A_native_implementation_of_the_Web_Performance_API_could_not_be_found.message + \"\\n\");\n    } else {\n      if (solutionPerformance) {\n        forEachMeasure((name) => {\n          if (!isSolutionMarkOrMeasure(name)) clearMeasures(name);\n        });\n        forEachMark((name) => {\n          if (!isSolutionMarkOrMeasure(name)) clearMarks(name);\n        });\n      } else {\n        disable();\n      }\n    }\n  }\n  function reportStatisticalValue(s, aggregate) {\n    statistics.push(s);\n    if (aggregate) solutionPerformance == null ? void 0 : solutionPerformance.addAggregateStatistic(s);\n  }\n  function reportCountStatistic(name, count) {\n    reportStatisticalValue(\n      { name, value: count, type: 1 /* count */ },\n      /*aggregate*/\n      true\n    );\n  }\n  function reportTimeStatistic(name, time, aggregate) {\n    reportStatisticalValue({ name, value: time, type: 0 /* time */ }, aggregate);\n  }\n}\nfunction reportAllStatistics(sys2, statistics) {\n  let nameSize = 0;\n  let valueSize = 0;\n  for (const s of statistics) {\n    if (s.name.length > nameSize) {\n      nameSize = s.name.length;\n    }\n    const value = statisticValue(s);\n    if (value.length > valueSize) {\n      valueSize = value.length;\n    }\n  }\n  for (const s of statistics) {\n    sys2.write(`${s.name}:`.padEnd(nameSize + 2) + statisticValue(s).toString().padStart(valueSize) + sys2.newLine);\n  }\n}\nfunction statisticValue(s) {\n  switch (s.type) {\n    case 1 /* count */:\n      return \"\" + s.value;\n    case 0 /* time */:\n      return (s.value / 1e3).toFixed(2) + \"s\";\n    case 2 /* memory */:\n      return Math.round(s.value / 1e3) + \"K\";\n    default:\n      Debug.assertNever(s.type);\n  }\n}\nfunction writeConfigFile(sys2, reportDiagnostic, options) {\n  const currentDirectory = sys2.getCurrentDirectory();\n  const file = normalizePath(combinePaths(currentDirectory, \"tsconfig.json\"));\n  if (sys2.fileExists(file)) {\n    reportDiagnostic(createCompilerDiagnostic(Diagnostics.A_tsconfig_json_file_is_already_defined_at_Colon_0, file));\n  } else {\n    sys2.writeFile(file, generateTSConfig(options, sys2.newLine));\n    const output = [sys2.newLine, ...getHeader(sys2, \"Created a new tsconfig.json\")];\n    output.push(`You can learn more at https://aka.ms/tsconfig` + sys2.newLine);\n    for (const line of output) {\n      sys2.write(line);\n    }\n  }\n  return;\n}\n\n// src/compiler/expressionToTypeNode.ts\nfunction syntacticResult(type, reportFallback = true) {\n  return { type, reportFallback };\n}\nvar notImplemented2 = syntacticResult(\n  /*type*/\n  void 0,\n  /*reportFallback*/\n  false\n);\nvar alreadyReported = syntacticResult(\n  /*type*/\n  void 0,\n  /*reportFallback*/\n  false\n);\nvar failed = syntacticResult(\n  /*type*/\n  void 0,\n  /*reportFallback*/\n  true\n);\nfunction createSyntacticTypeNodeBuilder(options, resolver) {\n  const strictNullChecks = getStrictOptionValue(options, \"strictNullChecks\");\n  return {\n    serializeTypeOfDeclaration,\n    serializeReturnTypeForSignature,\n    serializeTypeOfExpression,\n    serializeTypeOfAccessor,\n    tryReuseExistingTypeNode(context, existing) {\n      if (!resolver.canReuseTypeNode(context, existing)) {\n        return void 0;\n      }\n      return tryReuseExistingTypeNode(context, existing);\n    }\n  };\n  function reuseNode(context, node, range = node) {\n    return node === void 0 ? void 0 : resolver.markNodeReuse(context, node.flags & 16 /* Synthesized */ ? node : factory.cloneNode(node), range ?? node);\n  }\n  function tryReuseExistingTypeNode(context, existing) {\n    const { finalizeBoundary, startRecoveryScope, hadError, markError } = resolver.createRecoveryBoundary(context);\n    const transformed = visitNode(existing, visitExistingNodeTreeSymbols, isTypeNode);\n    if (!finalizeBoundary()) {\n      return void 0;\n    }\n    context.approximateLength += existing.end - existing.pos;\n    return transformed;\n    function visitExistingNodeTreeSymbols(node) {\n      if (hadError()) return node;\n      const recover = startRecoveryScope();\n      const onExitNewScope = isNewScopeNode(node) ? resolver.enterNewScope(context, node) : void 0;\n      const result = visitExistingNodeTreeSymbolsWorker(node);\n      onExitNewScope == null ? void 0 : onExitNewScope();\n      if (hadError()) {\n        if (isTypeNode(node) && !isTypePredicateNode(node)) {\n          recover();\n          return resolver.serializeExistingTypeNode(context, node);\n        }\n        return node;\n      }\n      return result ? resolver.markNodeReuse(context, result, node) : void 0;\n    }\n    function tryVisitSimpleTypeNode(node) {\n      const innerNode = skipTypeParentheses(node);\n      switch (innerNode.kind) {\n        case 184 /* TypeReference */:\n          return tryVisitTypeReference(innerNode);\n        case 187 /* TypeQuery */:\n          return tryVisitTypeQuery(innerNode);\n        case 200 /* IndexedAccessType */:\n          return tryVisitIndexedAccess(innerNode);\n        case 199 /* TypeOperator */:\n          const typeOperatorNode = innerNode;\n          if (typeOperatorNode.operator === 143 /* KeyOfKeyword */) {\n            return tryVisitKeyOf(typeOperatorNode);\n          }\n      }\n      return visitNode(node, visitExistingNodeTreeSymbols, isTypeNode);\n    }\n    function tryVisitIndexedAccess(node) {\n      const resultObjectType = tryVisitSimpleTypeNode(node.objectType);\n      if (resultObjectType === void 0) {\n        return void 0;\n      }\n      return factory.updateIndexedAccessTypeNode(node, resultObjectType, visitNode(node.indexType, visitExistingNodeTreeSymbols, isTypeNode));\n    }\n    function tryVisitKeyOf(node) {\n      Debug.assertEqual(node.operator, 143 /* KeyOfKeyword */);\n      const type = tryVisitSimpleTypeNode(node.type);\n      if (type === void 0) {\n        return void 0;\n      }\n      return factory.updateTypeOperatorNode(node, type);\n    }\n    function tryVisitTypeQuery(node) {\n      const { introducesError, node: exprName } = resolver.trackExistingEntityName(context, node.exprName);\n      if (!introducesError) {\n        return factory.updateTypeQueryNode(\n          node,\n          exprName,\n          visitNodes2(node.typeArguments, visitExistingNodeTreeSymbols, isTypeNode)\n        );\n      }\n      const serializedName = resolver.serializeTypeName(\n        context,\n        node.exprName,\n        /*isTypeOf*/\n        true\n      );\n      if (serializedName) {\n        return resolver.markNodeReuse(context, serializedName, node.exprName);\n      }\n    }\n    function tryVisitTypeReference(node) {\n      if (resolver.canReuseTypeNode(context, node)) {\n        const { introducesError, node: newName } = resolver.trackExistingEntityName(context, node.typeName);\n        const typeArguments = visitNodes2(node.typeArguments, visitExistingNodeTreeSymbols, isTypeNode);\n        if (!introducesError) {\n          const updated = factory.updateTypeReferenceNode(\n            node,\n            newName,\n            typeArguments\n          );\n          return resolver.markNodeReuse(context, updated, node);\n        } else {\n          const serializedName = resolver.serializeTypeName(\n            context,\n            node.typeName,\n            /*isTypeOf*/\n            false,\n            typeArguments\n          );\n          if (serializedName) {\n            return resolver.markNodeReuse(context, serializedName, node.typeName);\n          }\n        }\n      }\n    }\n    function visitExistingNodeTreeSymbolsWorker(node) {\n      var _a;\n      if (isJSDocTypeExpression(node)) {\n        return visitNode(node.type, visitExistingNodeTreeSymbols, isTypeNode);\n      }\n      if (isJSDocAllType(node) || node.kind === 320 /* JSDocNamepathType */) {\n        return factory.createKeywordTypeNode(133 /* AnyKeyword */);\n      }\n      if (isJSDocUnknownType(node)) {\n        return factory.createKeywordTypeNode(159 /* UnknownKeyword */);\n      }\n      if (isJSDocNullableType(node)) {\n        return factory.createUnionTypeNode([visitNode(node.type, visitExistingNodeTreeSymbols, isTypeNode), factory.createLiteralTypeNode(factory.createNull())]);\n      }\n      if (isJSDocOptionalType(node)) {\n        return factory.createUnionTypeNode([visitNode(node.type, visitExistingNodeTreeSymbols, isTypeNode), factory.createKeywordTypeNode(157 /* UndefinedKeyword */)]);\n      }\n      if (isJSDocNonNullableType(node)) {\n        return visitNode(node.type, visitExistingNodeTreeSymbols);\n      }\n      if (isJSDocVariadicType(node)) {\n        return factory.createArrayTypeNode(visitNode(node.type, visitExistingNodeTreeSymbols, isTypeNode));\n      }\n      if (isJSDocTypeLiteral(node)) {\n        return factory.createTypeLiteralNode(map(node.jsDocPropertyTags, (t) => {\n          const name = visitNode(isIdentifier(t.name) ? t.name : t.name.right, visitExistingNodeTreeSymbols, isIdentifier);\n          const overrideTypeNode = resolver.getJsDocPropertyOverride(context, node, t);\n          return factory.createPropertySignature(\n            /*modifiers*/\n            void 0,\n            name,\n            t.isBracketed || t.typeExpression && isJSDocOptionalType(t.typeExpression.type) ? factory.createToken(58 /* QuestionToken */) : void 0,\n            overrideTypeNode || t.typeExpression && visitNode(t.typeExpression.type, visitExistingNodeTreeSymbols, isTypeNode) || factory.createKeywordTypeNode(133 /* AnyKeyword */)\n          );\n        }));\n      }\n      if (isTypeReferenceNode(node) && isIdentifier(node.typeName) && node.typeName.escapedText === \"\") {\n        return setOriginalNode(factory.createKeywordTypeNode(133 /* AnyKeyword */), node);\n      }\n      if ((isExpressionWithTypeArguments(node) || isTypeReferenceNode(node)) && isJSDocIndexSignature(node)) {\n        return factory.createTypeLiteralNode([factory.createIndexSignature(\n          /*modifiers*/\n          void 0,\n          [factory.createParameterDeclaration(\n            /*modifiers*/\n            void 0,\n            /*dotDotDotToken*/\n            void 0,\n            \"x\",\n            /*questionToken*/\n            void 0,\n            visitNode(node.typeArguments[0], visitExistingNodeTreeSymbols, isTypeNode)\n          )],\n          visitNode(node.typeArguments[1], visitExistingNodeTreeSymbols, isTypeNode)\n        )]);\n      }\n      if (isJSDocFunctionType(node)) {\n        if (isJSDocConstructSignature(node)) {\n          let newTypeNode;\n          return factory.createConstructorTypeNode(\n            /*modifiers*/\n            void 0,\n            visitNodes2(node.typeParameters, visitExistingNodeTreeSymbols, isTypeParameterDeclaration),\n            mapDefined(node.parameters, (p, i) => p.name && isIdentifier(p.name) && p.name.escapedText === \"new\" ? (newTypeNode = p.type, void 0) : factory.createParameterDeclaration(\n              /*modifiers*/\n              void 0,\n              getEffectiveDotDotDotForParameter(p),\n              resolver.markNodeReuse(context, factory.createIdentifier(getNameForJSDocFunctionParameter(p, i)), p),\n              factory.cloneNode(p.questionToken),\n              visitNode(p.type, visitExistingNodeTreeSymbols, isTypeNode),\n              /*initializer*/\n              void 0\n            )),\n            visitNode(newTypeNode || node.type, visitExistingNodeTreeSymbols, isTypeNode) || factory.createKeywordTypeNode(133 /* AnyKeyword */)\n          );\n        } else {\n          return factory.createFunctionTypeNode(\n            visitNodes2(node.typeParameters, visitExistingNodeTreeSymbols, isTypeParameterDeclaration),\n            map(node.parameters, (p, i) => factory.createParameterDeclaration(\n              /*modifiers*/\n              void 0,\n              getEffectiveDotDotDotForParameter(p),\n              resolver.markNodeReuse(context, factory.createIdentifier(getNameForJSDocFunctionParameter(p, i)), p),\n              factory.cloneNode(p.questionToken),\n              visitNode(p.type, visitExistingNodeTreeSymbols, isTypeNode),\n              /*initializer*/\n              void 0\n            )),\n            visitNode(node.type, visitExistingNodeTreeSymbols, isTypeNode) || factory.createKeywordTypeNode(133 /* AnyKeyword */)\n          );\n        }\n      }\n      if (isThisTypeNode(node)) {\n        if (resolver.canReuseTypeNode(context, node)) {\n          return node;\n        }\n        markError();\n        return node;\n      }\n      if (isTypeParameterDeclaration(node)) {\n        const { node: newName } = resolver.trackExistingEntityName(context, node.name);\n        return factory.updateTypeParameterDeclaration(\n          node,\n          visitNodes2(node.modifiers, visitExistingNodeTreeSymbols, isModifier),\n          // resolver.markNodeReuse(context, typeParameterToName(getDeclaredTypeOfSymbol(getSymbolOfDeclaration(node)), context), node),\n          newName,\n          visitNode(node.constraint, visitExistingNodeTreeSymbols, isTypeNode),\n          visitNode(node.default, visitExistingNodeTreeSymbols, isTypeNode)\n        );\n      }\n      if (isIndexedAccessTypeNode(node)) {\n        const result = tryVisitIndexedAccess(node);\n        if (!result) {\n          markError();\n          return node;\n        }\n        return result;\n      }\n      if (isTypeReferenceNode(node)) {\n        const result = tryVisitTypeReference(node);\n        if (result) {\n          return result;\n        }\n        markError();\n        return node;\n      }\n      if (isLiteralImportTypeNode(node)) {\n        if (((_a = node.attributes) == null ? void 0 : _a.token) === 132 /* AssertKeyword */) {\n          markError();\n          return node;\n        }\n        if (!resolver.canReuseTypeNode(context, node)) {\n          return resolver.serializeExistingTypeNode(context, node);\n        }\n        const specifier = rewriteModuleSpecifier2(node, node.argument.literal);\n        const literal = specifier === node.argument.literal ? reuseNode(context, node.argument.literal) : specifier;\n        return factory.updateImportTypeNode(\n          node,\n          literal === node.argument.literal ? reuseNode(context, node.argument) : factory.createLiteralTypeNode(literal),\n          visitNode(node.attributes, visitExistingNodeTreeSymbols, isImportAttributes),\n          visitNode(node.qualifier, visitExistingNodeTreeSymbols, isEntityName),\n          visitNodes2(node.typeArguments, visitExistingNodeTreeSymbols, isTypeNode),\n          node.isTypeOf\n        );\n      }\n      if (isNamedDeclaration(node) && node.name.kind === 168 /* ComputedPropertyName */ && !resolver.hasLateBindableName(node)) {\n        if (!hasDynamicName(node)) {\n          return visitEachChild2(node, visitExistingNodeTreeSymbols);\n        }\n        if (resolver.shouldRemoveDeclaration(context, node)) {\n          return void 0;\n        }\n      }\n      if (isFunctionLike(node) && !node.type || isPropertyDeclaration(node) && !node.type && !node.initializer || isPropertySignature(node) && !node.type && !node.initializer || isParameter(node) && !node.type && !node.initializer) {\n        let visited = visitEachChild2(node, visitExistingNodeTreeSymbols);\n        if (visited === node) {\n          visited = resolver.markNodeReuse(context, factory.cloneNode(node), node);\n        }\n        visited.type = factory.createKeywordTypeNode(133 /* AnyKeyword */);\n        if (isParameter(node)) {\n          visited.modifiers = void 0;\n        }\n        return visited;\n      }\n      if (isTypeQueryNode(node)) {\n        const result = tryVisitTypeQuery(node);\n        if (!result) {\n          markError();\n          return node;\n        }\n        return result;\n      }\n      if (isComputedPropertyName(node) && isEntityNameExpression(node.expression)) {\n        const { node: result, introducesError } = resolver.trackExistingEntityName(context, node.expression);\n        if (!introducesError) {\n          return factory.updateComputedPropertyName(node, result);\n        } else {\n          const computedPropertyNameType = resolver.serializeTypeOfExpression(context, node.expression);\n          let literal;\n          if (isLiteralTypeNode(computedPropertyNameType)) {\n            literal = computedPropertyNameType.literal;\n          } else {\n            const evaluated = resolver.evaluateEntityNameExpression(node.expression);\n            const literalNode = typeof evaluated.value === \"string\" ? factory.createStringLiteral(\n              evaluated.value,\n              /*isSingleQuote*/\n              void 0\n            ) : typeof evaluated.value === \"number\" ? factory.createNumericLiteral(\n              evaluated.value,\n              /*numericLiteralFlags*/\n              0\n            ) : void 0;\n            if (!literalNode) {\n              if (isImportTypeNode(computedPropertyNameType)) {\n                resolver.trackComputedName(context, node.expression);\n              }\n              return node;\n            }\n            literal = literalNode;\n          }\n          if (literal.kind === 11 /* StringLiteral */ && isIdentifierText(literal.text, getEmitScriptTarget(options))) {\n            return factory.createIdentifier(literal.text);\n          }\n          if (literal.kind === 9 /* NumericLiteral */ && !literal.text.startsWith(\"-\")) {\n            return literal;\n          }\n          return factory.updateComputedPropertyName(node, literal);\n        }\n      }\n      if (isTypePredicateNode(node)) {\n        let parameterName;\n        if (isIdentifier(node.parameterName)) {\n          const { node: result, introducesError } = resolver.trackExistingEntityName(context, node.parameterName);\n          if (introducesError) markError();\n          parameterName = result;\n        } else {\n          parameterName = factory.cloneNode(node.parameterName);\n        }\n        return factory.updateTypePredicateNode(node, factory.cloneNode(node.assertsModifier), parameterName, visitNode(node.type, visitExistingNodeTreeSymbols, isTypeNode));\n      }\n      if (isTupleTypeNode(node) || isTypeLiteralNode(node) || isMappedTypeNode(node)) {\n        const visited = visitEachChild2(node, visitExistingNodeTreeSymbols);\n        const clone2 = resolver.markNodeReuse(context, visited === node ? factory.cloneNode(node) : visited, node);\n        const flags = getEmitFlags(clone2);\n        setEmitFlags(clone2, flags | (context.flags & 1024 /* MultilineObjectLiterals */ && isTypeLiteralNode(node) ? 0 : 1 /* SingleLine */));\n        return clone2;\n      }\n      if (isStringLiteral(node) && !!(context.flags & 268435456 /* UseSingleQuotesForStringLiteralType */) && !node.singleQuote) {\n        const clone2 = factory.cloneNode(node);\n        clone2.singleQuote = true;\n        return clone2;\n      }\n      if (isConditionalTypeNode(node)) {\n        const checkType = visitNode(node.checkType, visitExistingNodeTreeSymbols, isTypeNode);\n        const disposeScope = resolver.enterNewScope(context, node);\n        const extendType = visitNode(node.extendsType, visitExistingNodeTreeSymbols, isTypeNode);\n        const trueType = visitNode(node.trueType, visitExistingNodeTreeSymbols, isTypeNode);\n        disposeScope();\n        const falseType = visitNode(node.falseType, visitExistingNodeTreeSymbols, isTypeNode);\n        return factory.updateConditionalTypeNode(\n          node,\n          checkType,\n          extendType,\n          trueType,\n          falseType\n        );\n      }\n      if (isTypeOperatorNode(node)) {\n        if (node.operator === 158 /* UniqueKeyword */ && node.type.kind === 155 /* SymbolKeyword */) {\n          if (!resolver.canReuseTypeNode(context, node)) {\n            markError();\n            return node;\n          }\n        } else if (node.operator === 143 /* KeyOfKeyword */) {\n          const result = tryVisitKeyOf(node);\n          if (!result) {\n            markError();\n            return node;\n          }\n          return result;\n        }\n      }\n      return visitEachChild2(node, visitExistingNodeTreeSymbols);\n      function visitEachChild2(node2, visitor) {\n        const nonlocalNode = !context.enclosingFile || context.enclosingFile !== getSourceFileOfNode(node2);\n        return visitEachChild(\n          node2,\n          visitor,\n          /*context*/\n          void 0,\n          nonlocalNode ? visitNodesWithoutCopyingPositions : void 0\n        );\n      }\n      function visitNodesWithoutCopyingPositions(nodes, visitor, test, start, count) {\n        let result = visitNodes2(nodes, visitor, test, start, count);\n        if (result) {\n          if (result.pos !== -1 || result.end !== -1) {\n            if (result === nodes) {\n              result = factory.createNodeArray(nodes.slice(), nodes.hasTrailingComma);\n            }\n            setTextRangePosEnd(result, -1, -1);\n          }\n        }\n        return result;\n      }\n      function getEffectiveDotDotDotForParameter(p) {\n        return p.dotDotDotToken || (p.type && isJSDocVariadicType(p.type) ? factory.createToken(26 /* DotDotDotToken */) : void 0);\n      }\n      function getNameForJSDocFunctionParameter(p, index) {\n        return p.name && isIdentifier(p.name) && p.name.escapedText === \"this\" ? \"this\" : getEffectiveDotDotDotForParameter(p) ? `args` : `arg${index}`;\n      }\n      function rewriteModuleSpecifier2(parent2, lit) {\n        const newName = resolver.getModuleSpecifierOverride(context, parent2, lit);\n        return newName ? setOriginalNode(factory.createStringLiteral(newName), lit) : lit;\n      }\n    }\n  }\n  function serializeExistingTypeNode(typeNode, context, addUndefined) {\n    if (!typeNode) return void 0;\n    let result;\n    if ((!addUndefined || canAddUndefined(typeNode)) && resolver.canReuseTypeNode(context, typeNode)) {\n      result = tryReuseExistingTypeNode(context, typeNode);\n      if (result !== void 0) {\n        result = addUndefinedIfNeeded(\n          result,\n          addUndefined,\n          /*owner*/\n          void 0,\n          context\n        );\n      }\n    }\n    return result;\n  }\n  function serializeTypeAnnotationOfDeclaration(declaredType, context, node, symbol, requiresAddingUndefined, useFallback = requiresAddingUndefined !== void 0) {\n    if (!declaredType) return void 0;\n    if (!resolver.canReuseTypeNodeAnnotation(context, node, declaredType, symbol, requiresAddingUndefined)) {\n      if (!requiresAddingUndefined || !resolver.canReuseTypeNodeAnnotation(\n        context,\n        node,\n        declaredType,\n        symbol,\n        /*requiresAddingUndefined*/\n        false\n      )) {\n        return void 0;\n      }\n    }\n    let result;\n    if (!requiresAddingUndefined || canAddUndefined(declaredType)) {\n      result = serializeExistingTypeNode(declaredType, context, requiresAddingUndefined);\n    }\n    if (result !== void 0 || !useFallback) {\n      return result;\n    }\n    context.tracker.reportInferenceFallback(node);\n    return resolver.serializeExistingTypeNode(context, declaredType, requiresAddingUndefined) ?? factory.createKeywordTypeNode(133 /* AnyKeyword */);\n  }\n  function serializeExistingTypeNodeWithFallback(typeNode, context, addUndefined, targetNode) {\n    if (!typeNode) return void 0;\n    const result = serializeExistingTypeNode(typeNode, context, addUndefined);\n    if (result !== void 0) {\n      return result;\n    }\n    context.tracker.reportInferenceFallback(targetNode ?? typeNode);\n    return resolver.serializeExistingTypeNode(context, typeNode, addUndefined) ?? factory.createKeywordTypeNode(133 /* AnyKeyword */);\n  }\n  function serializeTypeOfAccessor(accessor, symbol, context) {\n    return typeFromAccessor(accessor, symbol, context) ?? inferAccessorType(accessor, resolver.getAllAccessorDeclarations(accessor), context, symbol);\n  }\n  function serializeTypeOfExpression(expr, context, addUndefined, preserveLiterals) {\n    const result = typeFromExpression(\n      expr,\n      context,\n      /*isConstContext*/\n      false,\n      addUndefined,\n      preserveLiterals\n    );\n    return result.type !== void 0 ? result.type : inferExpressionType(expr, context, result.reportFallback);\n  }\n  function serializeTypeOfDeclaration(node, symbol, context) {\n    switch (node.kind) {\n      case 170 /* Parameter */:\n      case 342 /* JSDocParameterTag */:\n        return typeFromParameter(node, symbol, context);\n      case 261 /* VariableDeclaration */:\n        return typeFromVariable(node, symbol, context);\n      case 172 /* PropertySignature */:\n      case 349 /* JSDocPropertyTag */:\n      case 173 /* PropertyDeclaration */:\n        return typeFromProperty(node, symbol, context);\n      case 209 /* BindingElement */:\n        return inferTypeOfDeclaration(node, symbol, context);\n      case 278 /* ExportAssignment */:\n        return serializeTypeOfExpression(\n          node.expression,\n          context,\n          /*addUndefined*/\n          void 0,\n          /*preserveLiterals*/\n          true\n        );\n      case 212 /* PropertyAccessExpression */:\n      case 213 /* ElementAccessExpression */:\n      case 227 /* BinaryExpression */:\n        return typeFromExpandoProperty(node, symbol, context);\n      case 304 /* PropertyAssignment */:\n      case 305 /* ShorthandPropertyAssignment */:\n        return typeFromPropertyAssignment(node, symbol, context);\n      default:\n        Debug.assertNever(node, `Node needs to be an inferrable node, found ${Debug.formatSyntaxKind(node.kind)}`);\n    }\n  }\n  function typeFromPropertyAssignment(node, symbol, context) {\n    const typeAnnotation = getEffectiveTypeAnnotationNode(node);\n    let result;\n    if (typeAnnotation && resolver.canReuseTypeNodeAnnotation(context, node, typeAnnotation, symbol)) {\n      result = serializeExistingTypeNode(typeAnnotation, context);\n    }\n    if (!result && node.kind === 304 /* PropertyAssignment */) {\n      const initializer = node.initializer;\n      const assertionNode = isJSDocTypeAssertion(initializer) ? getJSDocTypeAssertionType(initializer) : initializer.kind === 235 /* AsExpression */ || initializer.kind === 217 /* TypeAssertionExpression */ ? initializer.type : void 0;\n      if (assertionNode && !isConstTypeReference(assertionNode) && resolver.canReuseTypeNodeAnnotation(context, node, assertionNode, symbol)) {\n        result = serializeExistingTypeNode(assertionNode, context);\n      }\n    }\n    return result ?? inferTypeOfDeclaration(\n      node,\n      symbol,\n      context,\n      /*reportFallback*/\n      false\n    );\n  }\n  function serializeReturnTypeForSignature(node, symbol, context) {\n    switch (node.kind) {\n      case 178 /* GetAccessor */:\n        return serializeTypeOfAccessor(node, symbol, context);\n      case 175 /* MethodDeclaration */:\n      case 263 /* FunctionDeclaration */:\n      case 181 /* ConstructSignature */:\n      case 174 /* MethodSignature */:\n      case 180 /* CallSignature */:\n      case 177 /* Constructor */:\n      case 179 /* SetAccessor */:\n      case 182 /* IndexSignature */:\n      case 185 /* FunctionType */:\n      case 186 /* ConstructorType */:\n      case 219 /* FunctionExpression */:\n      case 220 /* ArrowFunction */:\n      case 318 /* JSDocFunctionType */:\n      case 324 /* JSDocSignature */:\n        return createReturnFromSignature(node, symbol, context);\n      default:\n        Debug.assertNever(node, `Node needs to be an inferrable node, found ${Debug.formatSyntaxKind(node.kind)}`);\n    }\n  }\n  function getTypeAnnotationFromAccessor(accessor) {\n    if (accessor) {\n      return accessor.kind === 178 /* GetAccessor */ ? isInJSFile(accessor) && getJSDocType(accessor) || getEffectiveReturnTypeNode(accessor) : getEffectiveSetAccessorTypeAnnotationNode(accessor);\n    }\n  }\n  function getTypeAnnotationFromAllAccessorDeclarations(node, accessors) {\n    let accessorType = getTypeAnnotationFromAccessor(node);\n    if (!accessorType && node !== accessors.firstAccessor) {\n      accessorType = getTypeAnnotationFromAccessor(accessors.firstAccessor);\n    }\n    if (!accessorType && accessors.secondAccessor && node !== accessors.secondAccessor) {\n      accessorType = getTypeAnnotationFromAccessor(accessors.secondAccessor);\n    }\n    return accessorType;\n  }\n  function typeFromAccessor(node, symbol, context) {\n    const accessorDeclarations = resolver.getAllAccessorDeclarations(node);\n    const accessorType = getTypeAnnotationFromAllAccessorDeclarations(node, accessorDeclarations);\n    if (accessorType && !isTypePredicateNode(accessorType)) {\n      return withNewScope(context, node, () => serializeTypeAnnotationOfDeclaration(accessorType, context, node, symbol) ?? inferTypeOfDeclaration(node, symbol, context));\n    }\n    if (accessorDeclarations.getAccessor) {\n      return withNewScope(context, accessorDeclarations.getAccessor, () => createReturnFromSignature(accessorDeclarations.getAccessor, symbol, context));\n    }\n    return void 0;\n  }\n  function typeFromVariable(node, symbol, context) {\n    var _a;\n    const declaredType = getEffectiveTypeAnnotationNode(node);\n    let resultType = failed;\n    if (declaredType) {\n      resultType = syntacticResult(serializeTypeAnnotationOfDeclaration(declaredType, context, node, symbol));\n    } else if (node.initializer && (((_a = symbol.declarations) == null ? void 0 : _a.length) === 1 || countWhere(symbol.declarations, isVariableDeclaration) === 1)) {\n      if (!resolver.isExpandoFunctionDeclaration(node) && !isContextuallyTyped(node)) {\n        resultType = typeFromExpression(\n          node.initializer,\n          context,\n          /*isConstContext*/\n          void 0,\n          /*requiresAddingUndefined*/\n          void 0,\n          isVarConstLike(node)\n        );\n      }\n    }\n    return resultType.type !== void 0 ? resultType.type : inferTypeOfDeclaration(node, symbol, context, resultType.reportFallback);\n  }\n  function typeFromParameter(node, symbol, context) {\n    const parent2 = node.parent;\n    if (parent2.kind === 179 /* SetAccessor */) {\n      return serializeTypeOfAccessor(\n        parent2,\n        /*symbol*/\n        void 0,\n        context\n      );\n    }\n    const declaredType = getEffectiveTypeAnnotationNode(node);\n    const addUndefined = resolver.requiresAddingImplicitUndefined(node, symbol, context.enclosingDeclaration);\n    let resultType = failed;\n    if (declaredType) {\n      resultType = syntacticResult(serializeTypeAnnotationOfDeclaration(declaredType, context, node, symbol, addUndefined));\n    } else if (isParameter(node) && node.initializer && isIdentifier(node.name) && !isContextuallyTyped(node)) {\n      resultType = typeFromExpression(\n        node.initializer,\n        context,\n        /*isConstContext*/\n        void 0,\n        addUndefined\n      );\n    }\n    return resultType.type !== void 0 ? resultType.type : inferTypeOfDeclaration(node, symbol, context, resultType.reportFallback);\n  }\n  function typeFromExpandoProperty(node, symbol, context) {\n    const declaredType = getEffectiveTypeAnnotationNode(node);\n    let result;\n    if (declaredType) {\n      result = serializeTypeAnnotationOfDeclaration(declaredType, context, node, symbol);\n    }\n    const oldSuppressReportInferenceFallback = context.suppressReportInferenceFallback;\n    context.suppressReportInferenceFallback = true;\n    const resultType = result ?? inferTypeOfDeclaration(\n      node,\n      symbol,\n      context,\n      /*reportFallback*/\n      false\n    );\n    context.suppressReportInferenceFallback = oldSuppressReportInferenceFallback;\n    return resultType;\n  }\n  function typeFromProperty(node, symbol, context) {\n    const declaredType = getEffectiveTypeAnnotationNode(node);\n    const requiresAddingUndefined = resolver.requiresAddingImplicitUndefined(node, symbol, context.enclosingDeclaration);\n    let resultType = failed;\n    if (declaredType) {\n      resultType = syntacticResult(serializeTypeAnnotationOfDeclaration(declaredType, context, node, symbol, requiresAddingUndefined));\n    } else {\n      const initializer = isPropertyDeclaration(node) ? node.initializer : void 0;\n      if (initializer && !isContextuallyTyped(node)) {\n        const isReadonly = isDeclarationReadonly(node);\n        resultType = typeFromExpression(\n          initializer,\n          context,\n          /*isConstContext*/\n          void 0,\n          requiresAddingUndefined,\n          isReadonly\n        );\n      }\n    }\n    return resultType.type !== void 0 ? resultType.type : inferTypeOfDeclaration(node, symbol, context, resultType.reportFallback);\n  }\n  function inferTypeOfDeclaration(node, symbol, context, reportFallback = true) {\n    if (reportFallback) {\n      context.tracker.reportInferenceFallback(node);\n    }\n    if (context.noInferenceFallback === true) {\n      return factory.createKeywordTypeNode(133 /* AnyKeyword */);\n    }\n    return resolver.serializeTypeOfDeclaration(context, node, symbol);\n  }\n  function inferExpressionType(node, context, reportFallback = true, requiresAddingUndefined) {\n    Debug.assert(!requiresAddingUndefined);\n    if (reportFallback) {\n      context.tracker.reportInferenceFallback(node);\n    }\n    if (context.noInferenceFallback === true) {\n      return factory.createKeywordTypeNode(133 /* AnyKeyword */);\n    }\n    return resolver.serializeTypeOfExpression(context, node) ?? factory.createKeywordTypeNode(133 /* AnyKeyword */);\n  }\n  function inferReturnTypeOfSignatureSignature(node, context, symbol, reportFallback) {\n    if (reportFallback) {\n      context.tracker.reportInferenceFallback(node);\n    }\n    if (context.noInferenceFallback === true) {\n      return factory.createKeywordTypeNode(133 /* AnyKeyword */);\n    }\n    return resolver.serializeReturnTypeForSignature(context, node, symbol) ?? factory.createKeywordTypeNode(133 /* AnyKeyword */);\n  }\n  function inferAccessorType(node, allAccessors, context, symbol, reportFallback = true) {\n    if (node.kind === 178 /* GetAccessor */) {\n      return createReturnFromSignature(node, symbol, context, reportFallback);\n    } else {\n      if (reportFallback) {\n        context.tracker.reportInferenceFallback(node);\n      }\n      const result = allAccessors.getAccessor && createReturnFromSignature(allAccessors.getAccessor, symbol, context, reportFallback);\n      return result ?? resolver.serializeTypeOfDeclaration(context, node, symbol) ?? factory.createKeywordTypeNode(133 /* AnyKeyword */);\n    }\n  }\n  function withNewScope(context, node, fn) {\n    const cleanup = resolver.enterNewScope(context, node);\n    const result = fn();\n    cleanup();\n    return result;\n  }\n  function typeFromTypeAssertion(expression, type, context, requiresAddingUndefined) {\n    if (isConstTypeReference(type)) {\n      return typeFromExpression(\n        expression,\n        context,\n        /*isConstContext*/\n        true,\n        requiresAddingUndefined\n      );\n    }\n    return syntacticResult(serializeExistingTypeNodeWithFallback(type, context, requiresAddingUndefined));\n  }\n  function typeFromExpression(node, context, isConstContext = false, requiresAddingUndefined = false, preserveLiterals = false) {\n    switch (node.kind) {\n      case 218 /* ParenthesizedExpression */:\n        if (isJSDocTypeAssertion(node)) {\n          return typeFromTypeAssertion(node.expression, getJSDocTypeAssertionType(node), context, requiresAddingUndefined);\n        }\n        return typeFromExpression(node.expression, context, isConstContext, requiresAddingUndefined);\n      case 80 /* Identifier */:\n        if (resolver.isUndefinedIdentifierExpression(node)) {\n          return syntacticResult(createUndefinedTypeNode());\n        }\n        break;\n      case 106 /* NullKeyword */:\n        if (strictNullChecks) {\n          return syntacticResult(addUndefinedIfNeeded(factory.createLiteralTypeNode(factory.createNull()), requiresAddingUndefined, node, context));\n        } else {\n          return syntacticResult(factory.createKeywordTypeNode(133 /* AnyKeyword */));\n        }\n      case 220 /* ArrowFunction */:\n      case 219 /* FunctionExpression */:\n        Debug.type(node);\n        return withNewScope(context, node, () => typeFromFunctionLikeExpression(node, context));\n      case 217 /* TypeAssertionExpression */:\n      case 235 /* AsExpression */:\n        const asExpression = node;\n        return typeFromTypeAssertion(asExpression.expression, asExpression.type, context, requiresAddingUndefined);\n      case 225 /* PrefixUnaryExpression */:\n        const unaryExpression = node;\n        if (isPrimitiveLiteralValue(unaryExpression)) {\n          return typeFromPrimitiveLiteral(\n            unaryExpression.operator === 40 /* PlusToken */ ? unaryExpression.operand : unaryExpression,\n            unaryExpression.operand.kind === 10 /* BigIntLiteral */ ? 163 /* BigIntKeyword */ : 150 /* NumberKeyword */,\n            context,\n            isConstContext || preserveLiterals,\n            requiresAddingUndefined\n          );\n        }\n        break;\n      case 210 /* ArrayLiteralExpression */:\n        return typeFromArrayLiteral(node, context, isConstContext, requiresAddingUndefined);\n      case 211 /* ObjectLiteralExpression */:\n        return typeFromObjectLiteral(node, context, isConstContext, requiresAddingUndefined);\n      case 232 /* ClassExpression */:\n        return syntacticResult(inferExpressionType(\n          node,\n          context,\n          /*reportFallback*/\n          true,\n          requiresAddingUndefined\n        ));\n      case 229 /* TemplateExpression */:\n        if (!isConstContext && !preserveLiterals) {\n          return syntacticResult(factory.createKeywordTypeNode(154 /* StringKeyword */));\n        }\n        break;\n      default:\n        let typeKind;\n        let primitiveNode = node;\n        switch (node.kind) {\n          case 9 /* NumericLiteral */:\n            typeKind = 150 /* NumberKeyword */;\n            break;\n          case 15 /* NoSubstitutionTemplateLiteral */:\n            primitiveNode = factory.createStringLiteral(node.text);\n            typeKind = 154 /* StringKeyword */;\n            break;\n          case 11 /* StringLiteral */:\n            typeKind = 154 /* StringKeyword */;\n            break;\n          case 10 /* BigIntLiteral */:\n            typeKind = 163 /* BigIntKeyword */;\n            break;\n          case 112 /* TrueKeyword */:\n          case 97 /* FalseKeyword */:\n            typeKind = 136 /* BooleanKeyword */;\n            break;\n        }\n        if (typeKind) {\n          return typeFromPrimitiveLiteral(primitiveNode, typeKind, context, isConstContext || preserveLiterals, requiresAddingUndefined);\n        }\n    }\n    return failed;\n  }\n  function typeFromFunctionLikeExpression(fnNode, context) {\n    const returnType = createReturnFromSignature(\n      fnNode,\n      /*symbol*/\n      void 0,\n      context\n    );\n    const typeParameters = reuseTypeParameters(fnNode.typeParameters, context);\n    const parameters = fnNode.parameters.map((p) => ensureParameter(p, context));\n    return syntacticResult(\n      factory.createFunctionTypeNode(\n        typeParameters,\n        parameters,\n        returnType\n      )\n    );\n  }\n  function canGetTypeFromArrayLiteral(arrayLiteral, context, isConstContext) {\n    if (!isConstContext) {\n      context.tracker.reportInferenceFallback(arrayLiteral);\n      return false;\n    }\n    for (const element of arrayLiteral.elements) {\n      if (element.kind === 231 /* SpreadElement */) {\n        context.tracker.reportInferenceFallback(element);\n        return false;\n      }\n    }\n    return true;\n  }\n  function typeFromArrayLiteral(arrayLiteral, context, isConstContext, requiresAddingUndefined) {\n    if (!canGetTypeFromArrayLiteral(arrayLiteral, context, isConstContext)) {\n      if (requiresAddingUndefined || isDeclaration(walkUpParenthesizedExpressions(arrayLiteral).parent)) {\n        return alreadyReported;\n      }\n      return syntacticResult(inferExpressionType(\n        arrayLiteral,\n        context,\n        /*reportFallback*/\n        false,\n        requiresAddingUndefined\n      ));\n    }\n    const oldNoInferenceFallback = context.noInferenceFallback;\n    context.noInferenceFallback = true;\n    const elementTypesInfo = [];\n    for (const element of arrayLiteral.elements) {\n      Debug.assert(element.kind !== 231 /* SpreadElement */);\n      if (element.kind === 233 /* OmittedExpression */) {\n        elementTypesInfo.push(\n          createUndefinedTypeNode()\n        );\n      } else {\n        const expressionType = typeFromExpression(element, context, isConstContext);\n        const elementType = expressionType.type !== void 0 ? expressionType.type : inferExpressionType(element, context, expressionType.reportFallback);\n        elementTypesInfo.push(elementType);\n      }\n    }\n    const tupleType = factory.createTupleTypeNode(elementTypesInfo);\n    tupleType.emitNode = { flags: 1, autoGenerate: void 0, internalFlags: 0 };\n    context.noInferenceFallback = oldNoInferenceFallback;\n    return notImplemented2;\n  }\n  function canGetTypeFromObjectLiteral(objectLiteral, context) {\n    let result = true;\n    for (const prop of objectLiteral.properties) {\n      if (prop.flags & 262144 /* ThisNodeHasError */) {\n        result = false;\n        break;\n      }\n      if (prop.kind === 305 /* ShorthandPropertyAssignment */ || prop.kind === 306 /* SpreadAssignment */) {\n        context.tracker.reportInferenceFallback(prop);\n        result = false;\n      } else if (prop.name.flags & 262144 /* ThisNodeHasError */) {\n        result = false;\n        break;\n      } else if (prop.name.kind === 81 /* PrivateIdentifier */) {\n        result = false;\n      } else if (prop.name.kind === 168 /* ComputedPropertyName */) {\n        const expression = prop.name.expression;\n        if (!isPrimitiveLiteralValue(\n          expression,\n          /*includeBigInt*/\n          false\n        ) && !resolver.isDefinitelyReferenceToGlobalSymbolObject(expression)) {\n          context.tracker.reportInferenceFallback(prop.name);\n          result = false;\n        }\n      }\n    }\n    return result;\n  }\n  function typeFromObjectLiteral(objectLiteral, context, isConstContext, requiresAddingUndefined) {\n    if (!canGetTypeFromObjectLiteral(objectLiteral, context)) {\n      if (requiresAddingUndefined || isDeclaration(walkUpParenthesizedExpressions(objectLiteral).parent)) {\n        return alreadyReported;\n      }\n      return syntacticResult(inferExpressionType(\n        objectLiteral,\n        context,\n        /*reportFallback*/\n        false,\n        requiresAddingUndefined\n      ));\n    }\n    const oldNoInferenceFallback = context.noInferenceFallback;\n    context.noInferenceFallback = true;\n    const properties = [];\n    const oldFlags = context.flags;\n    context.flags |= 4194304 /* InObjectTypeLiteral */;\n    for (const prop of objectLiteral.properties) {\n      Debug.assert(!isShorthandPropertyAssignment(prop) && !isSpreadAssignment(prop));\n      const name = prop.name;\n      let newProp;\n      switch (prop.kind) {\n        case 175 /* MethodDeclaration */:\n          newProp = withNewScope(context, prop, () => typeFromObjectLiteralMethod(prop, name, context, isConstContext));\n          break;\n        case 304 /* PropertyAssignment */:\n          newProp = typeFromObjectLiteralPropertyAssignment(prop, name, context, isConstContext);\n          break;\n        case 179 /* SetAccessor */:\n        case 178 /* GetAccessor */:\n          newProp = typeFromObjectLiteralAccessor(prop, name, context);\n          break;\n      }\n      if (newProp) {\n        setCommentRange(newProp, prop);\n        properties.push(newProp);\n      }\n    }\n    context.flags = oldFlags;\n    const typeNode = factory.createTypeLiteralNode(properties);\n    if (!(context.flags & 1024 /* MultilineObjectLiterals */)) {\n      setEmitFlags(typeNode, 1 /* SingleLine */);\n    }\n    context.noInferenceFallback = oldNoInferenceFallback;\n    return notImplemented2;\n  }\n  function typeFromObjectLiteralPropertyAssignment(prop, name, context, isConstContext) {\n    const modifiers = isConstContext ? [factory.createModifier(148 /* ReadonlyKeyword */)] : [];\n    const expressionResult = typeFromExpression(prop.initializer, context, isConstContext);\n    const typeNode = expressionResult.type !== void 0 ? expressionResult.type : inferTypeOfDeclaration(\n      prop,\n      /*symbol*/\n      void 0,\n      context,\n      expressionResult.reportFallback\n    );\n    return factory.createPropertySignature(\n      modifiers,\n      reuseNode(context, name),\n      /*questionToken*/\n      void 0,\n      typeNode\n    );\n  }\n  function ensureParameter(p, context) {\n    return factory.updateParameterDeclaration(\n      p,\n      /*modifiers*/\n      void 0,\n      reuseNode(context, p.dotDotDotToken),\n      resolver.serializeNameOfParameter(context, p),\n      resolver.isOptionalParameter(p) ? factory.createToken(58 /* QuestionToken */) : void 0,\n      typeFromParameter(\n        p,\n        /*symbol*/\n        void 0,\n        context\n      ),\n      // Ignore private param props, since this type is going straight back into a param\n      /*initializer*/\n      void 0\n    );\n  }\n  function reuseTypeParameters(typeParameters, context) {\n    return typeParameters == null ? void 0 : typeParameters.map((tp) => {\n      var _a;\n      const { node: tpName } = resolver.trackExistingEntityName(context, tp.name);\n      return factory.updateTypeParameterDeclaration(\n        tp,\n        (_a = tp.modifiers) == null ? void 0 : _a.map((m) => reuseNode(context, m)),\n        tpName,\n        serializeExistingTypeNodeWithFallback(tp.constraint, context),\n        serializeExistingTypeNodeWithFallback(tp.default, context)\n      );\n    });\n  }\n  function typeFromObjectLiteralMethod(method, name, context, isConstContext) {\n    const returnType = createReturnFromSignature(\n      method,\n      /*symbol*/\n      void 0,\n      context\n    );\n    const typeParameters = reuseTypeParameters(method.typeParameters, context);\n    const parameters = method.parameters.map((p) => ensureParameter(p, context));\n    if (isConstContext) {\n      return factory.createPropertySignature(\n        [factory.createModifier(148 /* ReadonlyKeyword */)],\n        reuseNode(context, name),\n        reuseNode(context, method.questionToken),\n        factory.createFunctionTypeNode(\n          typeParameters,\n          parameters,\n          returnType\n        )\n      );\n    } else {\n      if (isIdentifier(name) && name.escapedText === \"new\") {\n        name = factory.createStringLiteral(\"new\");\n      }\n      return factory.createMethodSignature(\n        [],\n        reuseNode(context, name),\n        reuseNode(context, method.questionToken),\n        typeParameters,\n        parameters,\n        returnType\n      );\n    }\n  }\n  function typeFromObjectLiteralAccessor(accessor, name, context) {\n    const allAccessors = resolver.getAllAccessorDeclarations(accessor);\n    const getAccessorType = allAccessors.getAccessor && getTypeAnnotationFromAccessor(allAccessors.getAccessor);\n    const setAccessorType = allAccessors.setAccessor && getTypeAnnotationFromAccessor(allAccessors.setAccessor);\n    if (getAccessorType !== void 0 && setAccessorType !== void 0) {\n      return withNewScope(context, accessor, () => {\n        const parameters = accessor.parameters.map((p) => ensureParameter(p, context));\n        if (isGetAccessor(accessor)) {\n          return factory.updateGetAccessorDeclaration(\n            accessor,\n            [],\n            reuseNode(context, name),\n            parameters,\n            serializeExistingTypeNodeWithFallback(getAccessorType, context),\n            /*body*/\n            void 0\n          );\n        } else {\n          return factory.updateSetAccessorDeclaration(\n            accessor,\n            [],\n            reuseNode(context, name),\n            parameters,\n            /*body*/\n            void 0\n          );\n        }\n      });\n    } else if (allAccessors.firstAccessor === accessor) {\n      const foundType = getAccessorType ? withNewScope(context, allAccessors.getAccessor, () => serializeExistingTypeNodeWithFallback(getAccessorType, context)) : setAccessorType ? withNewScope(context, allAccessors.setAccessor, () => serializeExistingTypeNodeWithFallback(setAccessorType, context)) : void 0;\n      const propertyType = foundType ?? inferAccessorType(\n        accessor,\n        allAccessors,\n        context,\n        /*symbol*/\n        void 0\n      );\n      const propertySignature = factory.createPropertySignature(\n        allAccessors.setAccessor === void 0 ? [factory.createModifier(148 /* ReadonlyKeyword */)] : [],\n        reuseNode(context, name),\n        /*questionToken*/\n        void 0,\n        propertyType\n      );\n      return propertySignature;\n    }\n  }\n  function createUndefinedTypeNode() {\n    if (strictNullChecks) {\n      return factory.createKeywordTypeNode(157 /* UndefinedKeyword */);\n    } else {\n      return factory.createKeywordTypeNode(133 /* AnyKeyword */);\n    }\n  }\n  function typeFromPrimitiveLiteral(node, baseType, context, preserveLiterals, requiresAddingUndefined) {\n    let result;\n    if (preserveLiterals) {\n      if (node.kind === 225 /* PrefixUnaryExpression */ && node.operator === 40 /* PlusToken */) {\n        result = factory.createLiteralTypeNode(reuseNode(context, node.operand));\n      }\n      result = factory.createLiteralTypeNode(reuseNode(context, node));\n    } else {\n      result = factory.createKeywordTypeNode(baseType);\n    }\n    return syntacticResult(addUndefinedIfNeeded(result, requiresAddingUndefined, node, context));\n  }\n  function addUndefinedIfNeeded(node, addUndefined, owner, context) {\n    const parentDeclaration = owner && walkUpParenthesizedExpressions(owner).parent;\n    const optionalDeclaration = parentDeclaration && isDeclaration(parentDeclaration) && isOptionalDeclaration(parentDeclaration);\n    if (!strictNullChecks || !(addUndefined || optionalDeclaration)) return node;\n    if (!canAddUndefined(node)) {\n      context.tracker.reportInferenceFallback(node);\n    }\n    if (isUnionTypeNode(node)) {\n      return factory.createUnionTypeNode([...node.types, factory.createKeywordTypeNode(157 /* UndefinedKeyword */)]);\n    }\n    return factory.createUnionTypeNode([node, factory.createKeywordTypeNode(157 /* UndefinedKeyword */)]);\n  }\n  function canAddUndefined(node) {\n    if (!strictNullChecks) return true;\n    if (isKeyword(node.kind) || node.kind === 202 /* LiteralType */ || node.kind === 185 /* FunctionType */ || node.kind === 186 /* ConstructorType */ || node.kind === 189 /* ArrayType */ || node.kind === 190 /* TupleType */ || node.kind === 188 /* TypeLiteral */ || node.kind === 204 /* TemplateLiteralType */ || node.kind === 198 /* ThisType */) {\n      return true;\n    }\n    if (node.kind === 197 /* ParenthesizedType */) {\n      return canAddUndefined(node.type);\n    }\n    if (node.kind === 193 /* UnionType */ || node.kind === 194 /* IntersectionType */) {\n      return node.types.every(canAddUndefined);\n    }\n    return false;\n  }\n  function createReturnFromSignature(fn, symbol, context, reportFallback = true) {\n    let returnType = failed;\n    const returnTypeNode = isJSDocConstructSignature(fn) ? getEffectiveTypeAnnotationNode(fn.parameters[0]) : getEffectiveReturnTypeNode(fn);\n    if (returnTypeNode) {\n      returnType = syntacticResult(serializeTypeAnnotationOfDeclaration(returnTypeNode, context, fn, symbol));\n    } else if (isValueSignatureDeclaration(fn)) {\n      returnType = typeFromSingleReturnExpression(fn, context);\n    }\n    return returnType.type !== void 0 ? returnType.type : inferReturnTypeOfSignatureSignature(fn, context, symbol, reportFallback && returnType.reportFallback && !returnTypeNode);\n  }\n  function typeFromSingleReturnExpression(declaration, context) {\n    let candidateExpr;\n    if (declaration && !nodeIsMissing(declaration.body)) {\n      const flags = getFunctionFlags(declaration);\n      if (flags & 3 /* AsyncGenerator */) return failed;\n      const body = declaration.body;\n      if (body && isBlock(body)) {\n        forEachReturnStatement(body, (s) => {\n          if (s.parent !== body) {\n            candidateExpr = void 0;\n            return true;\n          }\n          if (!candidateExpr) {\n            candidateExpr = s.expression;\n          } else {\n            candidateExpr = void 0;\n            return true;\n          }\n        });\n      } else {\n        candidateExpr = body;\n      }\n    }\n    if (candidateExpr) {\n      if (isContextuallyTyped(candidateExpr)) {\n        const type = isJSDocTypeAssertion(candidateExpr) ? getJSDocTypeAssertionType(candidateExpr) : isAsExpression(candidateExpr) || isTypeAssertionExpression(candidateExpr) ? candidateExpr.type : void 0;\n        if (type && !isConstTypeReference(type)) {\n          return syntacticResult(serializeExistingTypeNode(type, context));\n        }\n      } else {\n        return typeFromExpression(candidateExpr, context);\n      }\n    }\n    return failed;\n  }\n  function isContextuallyTyped(node) {\n    return findAncestor(node.parent, (n) => {\n      return isCallExpression(n) || !isFunctionLikeDeclaration(n) && !!getEffectiveTypeAnnotationNode(n) || isJsxElement(n) || isJsxExpression(n);\n    });\n  }\n}\n\n// src/jsTyping/_namespaces/ts.JsTyping.ts\nvar ts_JsTyping_exports = {};\n__export(ts_JsTyping_exports, {\n  NameValidationResult: () => NameValidationResult,\n  discoverTypings: () => discoverTypings,\n  isTypingUpToDate: () => isTypingUpToDate,\n  loadSafeList: () => loadSafeList,\n  loadTypesMap: () => loadTypesMap,\n  nonRelativeModuleNameForTypingCache: () => nonRelativeModuleNameForTypingCache,\n  renderPackageNameValidationFailure: () => renderPackageNameValidationFailure,\n  validatePackageName: () => validatePackageName\n});\n\n// src/jsTyping/shared.ts\nvar ActionSet = \"action::set\";\nvar ActionInvalidate = \"action::invalidate\";\nvar ActionPackageInstalled = \"action::packageInstalled\";\nvar EventTypesRegistry = \"event::typesRegistry\";\nvar EventBeginInstallTypes = \"event::beginInstallTypes\";\nvar EventEndInstallTypes = \"event::endInstallTypes\";\nvar EventInitializationFailed = \"event::initializationFailed\";\nvar ActionWatchTypingLocations = \"action::watchTypingLocations\";\nvar Arguments;\n((Arguments2) => {\n  Arguments2.GlobalCacheLocation = \"--globalTypingsCacheLocation\";\n  Arguments2.LogFile = \"--logFile\";\n  Arguments2.EnableTelemetry = \"--enableTelemetry\";\n  Arguments2.TypingSafeListLocation = \"--typingSafeListLocation\";\n  Arguments2.TypesMapLocation = \"--typesMapLocation\";\n  Arguments2.NpmLocation = \"--npmLocation\";\n  Arguments2.ValidateDefaultNpmLocation = \"--validateDefaultNpmLocation\";\n})(Arguments || (Arguments = {}));\nfunction hasArgument(argumentName) {\n  return sys.args.includes(argumentName);\n}\nfunction findArgument(argumentName) {\n  const index = sys.args.indexOf(argumentName);\n  return index >= 0 && index < sys.args.length - 1 ? sys.args[index + 1] : void 0;\n}\nfunction nowString() {\n  const d = /* @__PURE__ */ new Date();\n  return `${d.getHours().toString().padStart(2, \"0\")}:${d.getMinutes().toString().padStart(2, \"0\")}:${d.getSeconds().toString().padStart(2, \"0\")}.${d.getMilliseconds().toString().padStart(3, \"0\")}`;\n}\nvar indentStr = \"\\n    \";\nfunction indent2(str) {\n  return indentStr + str.replace(/\\n/g, indentStr);\n}\nfunction stringifyIndented(json) {\n  return indent2(JSON.stringify(json, void 0, 2));\n}\n\n// src/jsTyping/jsTyping.ts\nfunction isTypingUpToDate(cachedTyping, availableTypingVersions) {\n  const availableVersion = new Version(getProperty(availableTypingVersions, `ts${versionMajorMinor}`) || getProperty(availableTypingVersions, \"latest\"));\n  return availableVersion.compareTo(cachedTyping.version) <= 0;\n}\nfunction nonRelativeModuleNameForTypingCache(moduleName) {\n  return nodeCoreModules.has(moduleName) ? \"node\" : moduleName;\n}\nfunction loadSafeList(host, safeListPath) {\n  const result = readConfigFile(safeListPath, (path) => host.readFile(path));\n  return new Map(Object.entries(result.config));\n}\nfunction loadTypesMap(host, typesMapPath) {\n  var _a;\n  const result = readConfigFile(typesMapPath, (path) => host.readFile(path));\n  if ((_a = result.config) == null ? void 0 : _a.simpleMap) {\n    return new Map(Object.entries(result.config.simpleMap));\n  }\n  return void 0;\n}\nfunction discoverTypings(host, log, fileNames, projectRootPath, safeList, packageNameToTypingLocation, typeAcquisition, unresolvedImports, typesRegistry, compilerOptions) {\n  if (!typeAcquisition || !typeAcquisition.enable) {\n    return { cachedTypingPaths: [], newTypingNames: [], filesToWatch: [] };\n  }\n  const inferredTypings = /* @__PURE__ */ new Map();\n  fileNames = mapDefined(fileNames, (fileName) => {\n    const path = normalizePath(fileName);\n    if (hasJSFileExtension(path)) {\n      return path;\n    }\n  });\n  const filesToWatch = [];\n  if (typeAcquisition.include) addInferredTypings(typeAcquisition.include, \"Explicitly included types\");\n  const exclude = typeAcquisition.exclude || [];\n  if (!compilerOptions.types) {\n    const possibleSearchDirs = new Set(fileNames.map(getDirectoryPath));\n    possibleSearchDirs.add(projectRootPath);\n    possibleSearchDirs.forEach((searchDir) => {\n      getTypingNames(searchDir, \"bower.json\", \"bower_components\", filesToWatch);\n      getTypingNames(searchDir, \"package.json\", \"node_modules\", filesToWatch);\n    });\n  }\n  if (!typeAcquisition.disableFilenameBasedTypeAcquisition) {\n    getTypingNamesFromSourceFileNames(fileNames);\n  }\n  if (unresolvedImports) {\n    const module2 = deduplicate(\n      unresolvedImports.map(nonRelativeModuleNameForTypingCache),\n      equateStringsCaseSensitive,\n      compareStringsCaseSensitive\n    );\n    addInferredTypings(module2, \"Inferred typings from unresolved imports\");\n  }\n  for (const excludeTypingName of exclude) {\n    const didDelete = inferredTypings.delete(excludeTypingName);\n    if (didDelete && log) log(`Typing for ${excludeTypingName} is in exclude list, will be ignored.`);\n  }\n  packageNameToTypingLocation.forEach((typing, name) => {\n    const registryEntry = typesRegistry.get(name);\n    if (inferredTypings.get(name) === false && registryEntry !== void 0 && isTypingUpToDate(typing, registryEntry)) {\n      inferredTypings.set(name, typing.typingLocation);\n    }\n  });\n  const newTypingNames = [];\n  const cachedTypingPaths = [];\n  inferredTypings.forEach((inferred, typing) => {\n    if (inferred) {\n      cachedTypingPaths.push(inferred);\n    } else {\n      newTypingNames.push(typing);\n    }\n  });\n  const result = { cachedTypingPaths, newTypingNames, filesToWatch };\n  if (log) log(`Finished typings discovery:${stringifyIndented(result)}`);\n  return result;\n  function addInferredTyping(typingName) {\n    if (!inferredTypings.has(typingName)) {\n      inferredTypings.set(typingName, false);\n    }\n  }\n  function addInferredTypings(typingNames, message) {\n    if (log) log(`${message}: ${JSON.stringify(typingNames)}`);\n    forEach(typingNames, addInferredTyping);\n  }\n  function getTypingNames(projectRootPath2, manifestName, modulesDirName, filesToWatch2) {\n    const manifestPath = combinePaths(projectRootPath2, manifestName);\n    let manifest;\n    let manifestTypingNames;\n    if (host.fileExists(manifestPath)) {\n      filesToWatch2.push(manifestPath);\n      manifest = readConfigFile(manifestPath, (path) => host.readFile(path)).config;\n      manifestTypingNames = flatMap([manifest.dependencies, manifest.devDependencies, manifest.optionalDependencies, manifest.peerDependencies], getOwnKeys);\n      addInferredTypings(manifestTypingNames, `Typing names in '${manifestPath}' dependencies`);\n    }\n    const packagesFolderPath = combinePaths(projectRootPath2, modulesDirName);\n    filesToWatch2.push(packagesFolderPath);\n    if (!host.directoryExists(packagesFolderPath)) {\n      return;\n    }\n    const packageNames = [];\n    const dependencyManifestNames = manifestTypingNames ? manifestTypingNames.map((typingName) => combinePaths(packagesFolderPath, typingName, manifestName)) : host.readDirectory(\n      packagesFolderPath,\n      [\".json\" /* Json */],\n      /*excludes*/\n      void 0,\n      /*includes*/\n      void 0,\n      /*depth*/\n      3\n    ).filter((manifestPath2) => {\n      if (getBaseFileName(manifestPath2) !== manifestName) {\n        return false;\n      }\n      const pathComponents2 = getPathComponents(normalizePath(manifestPath2));\n      const isScoped = pathComponents2[pathComponents2.length - 3][0] === \"@\";\n      return isScoped && toFileNameLowerCase(pathComponents2[pathComponents2.length - 4]) === modulesDirName || // `node_modules/@foo/bar`\n      !isScoped && toFileNameLowerCase(pathComponents2[pathComponents2.length - 3]) === modulesDirName;\n    });\n    if (log) log(`Searching for typing names in ${packagesFolderPath}; all files: ${JSON.stringify(dependencyManifestNames)}`);\n    for (const manifestPath2 of dependencyManifestNames) {\n      const normalizedFileName = normalizePath(manifestPath2);\n      const result2 = readConfigFile(normalizedFileName, (path) => host.readFile(path));\n      const manifest2 = result2.config;\n      if (!manifest2.name) {\n        continue;\n      }\n      const ownTypes = manifest2.types || manifest2.typings;\n      if (ownTypes) {\n        const absolutePath = getNormalizedAbsolutePath(ownTypes, getDirectoryPath(normalizedFileName));\n        if (host.fileExists(absolutePath)) {\n          if (log) log(`    Package '${manifest2.name}' provides its own types.`);\n          inferredTypings.set(manifest2.name, absolutePath);\n        } else {\n          if (log) log(`    Package '${manifest2.name}' provides its own types but they are missing.`);\n        }\n      } else {\n        packageNames.push(manifest2.name);\n      }\n    }\n    addInferredTypings(packageNames, \"    Found package names\");\n  }\n  function getTypingNamesFromSourceFileNames(fileNames2) {\n    const fromFileNames = mapDefined(fileNames2, (j) => {\n      if (!hasJSFileExtension(j)) return void 0;\n      const inferredTypingName = removeFileExtension(toFileNameLowerCase(getBaseFileName(j)));\n      const cleanedTypingName = removeMinAndVersionNumbers(inferredTypingName);\n      return safeList.get(cleanedTypingName);\n    });\n    if (fromFileNames.length) {\n      addInferredTypings(fromFileNames, \"Inferred typings from file names\");\n    }\n    const hasJsxFile = some(fileNames2, (f) => fileExtensionIs(f, \".jsx\" /* Jsx */));\n    if (hasJsxFile) {\n      if (log) log(`Inferred 'react' typings due to presence of '.jsx' extension`);\n      addInferredTyping(\"react\");\n    }\n  }\n}\nvar NameValidationResult = /* @__PURE__ */ ((NameValidationResult2) => {\n  NameValidationResult2[NameValidationResult2[\"Ok\"] = 0] = \"Ok\";\n  NameValidationResult2[NameValidationResult2[\"EmptyName\"] = 1] = \"EmptyName\";\n  NameValidationResult2[NameValidationResult2[\"NameTooLong\"] = 2] = \"NameTooLong\";\n  NameValidationResult2[NameValidationResult2[\"NameStartsWithDot\"] = 3] = \"NameStartsWithDot\";\n  NameValidationResult2[NameValidationResult2[\"NameStartsWithUnderscore\"] = 4] = \"NameStartsWithUnderscore\";\n  NameValidationResult2[NameValidationResult2[\"NameContainsNonURISafeCharacters\"] = 5] = \"NameContainsNonURISafeCharacters\";\n  return NameValidationResult2;\n})(NameValidationResult || {});\nvar maxPackageNameLength = 214;\nfunction validatePackageName(packageName) {\n  return validatePackageNameWorker(\n    packageName,\n    /*supportScopedPackage*/\n    true\n  );\n}\nfunction validatePackageNameWorker(packageName, supportScopedPackage) {\n  if (!packageName) {\n    return 1 /* EmptyName */;\n  }\n  if (packageName.length > maxPackageNameLength) {\n    return 2 /* NameTooLong */;\n  }\n  if (packageName.charCodeAt(0) === 46 /* dot */) {\n    return 3 /* NameStartsWithDot */;\n  }\n  if (packageName.charCodeAt(0) === 95 /* _ */) {\n    return 4 /* NameStartsWithUnderscore */;\n  }\n  if (supportScopedPackage) {\n    const matches = /^@([^/]+)\\/([^/]+)$/.exec(packageName);\n    if (matches) {\n      const scopeResult = validatePackageNameWorker(\n        matches[1],\n        /*supportScopedPackage*/\n        false\n      );\n      if (scopeResult !== 0 /* Ok */) {\n        return { name: matches[1], isScopeName: true, result: scopeResult };\n      }\n      const packageResult = validatePackageNameWorker(\n        matches[2],\n        /*supportScopedPackage*/\n        false\n      );\n      if (packageResult !== 0 /* Ok */) {\n        return { name: matches[2], isScopeName: false, result: packageResult };\n      }\n      return 0 /* Ok */;\n    }\n  }\n  if (encodeURIComponent(packageName) !== packageName) {\n    return 5 /* NameContainsNonURISafeCharacters */;\n  }\n  return 0 /* Ok */;\n}\nfunction renderPackageNameValidationFailure(result, typing) {\n  return typeof result === \"object\" ? renderPackageNameValidationFailureWorker(typing, result.result, result.name, result.isScopeName) : renderPackageNameValidationFailureWorker(\n    typing,\n    result,\n    typing,\n    /*isScopeName*/\n    false\n  );\n}\nfunction renderPackageNameValidationFailureWorker(typing, result, name, isScopeName) {\n  const kind = isScopeName ? \"Scope\" : \"Package\";\n  switch (result) {\n    case 1 /* EmptyName */:\n      return `'${typing}':: ${kind} name '${name}' cannot be empty`;\n    case 2 /* NameTooLong */:\n      return `'${typing}':: ${kind} name '${name}' should be less than ${maxPackageNameLength} characters`;\n    case 3 /* NameStartsWithDot */:\n      return `'${typing}':: ${kind} name '${name}' cannot start with '.'`;\n    case 4 /* NameStartsWithUnderscore */:\n      return `'${typing}':: ${kind} name '${name}' cannot start with '_'`;\n    case 5 /* NameContainsNonURISafeCharacters */:\n      return `'${typing}':: ${kind} name '${name}' contains non URI safe characters`;\n    case 0 /* Ok */:\n      return Debug.fail();\n    // Shouldn't have called this.\n    default:\n      Debug.assertNever(result);\n  }\n}\n\n// src/services/types.ts\nvar ScriptSnapshot;\n((ScriptSnapshot2) => {\n  class StringScriptSnapshot {\n    constructor(text) {\n      this.text = text;\n    }\n    getText(start, end) {\n      return start === 0 && end === this.text.length ? this.text : this.text.substring(start, end);\n    }\n    getLength() {\n      return this.text.length;\n    }\n    getChangeRange() {\n      return void 0;\n    }\n  }\n  function fromString(text) {\n    return new StringScriptSnapshot(text);\n  }\n  ScriptSnapshot2.fromString = fromString;\n})(ScriptSnapshot || (ScriptSnapshot = {}));\nvar PackageJsonDependencyGroup = /* @__PURE__ */ ((PackageJsonDependencyGroup2) => {\n  PackageJsonDependencyGroup2[PackageJsonDependencyGroup2[\"Dependencies\"] = 1] = \"Dependencies\";\n  PackageJsonDependencyGroup2[PackageJsonDependencyGroup2[\"DevDependencies\"] = 2] = \"DevDependencies\";\n  PackageJsonDependencyGroup2[PackageJsonDependencyGroup2[\"PeerDependencies\"] = 4] = \"PeerDependencies\";\n  PackageJsonDependencyGroup2[PackageJsonDependencyGroup2[\"OptionalDependencies\"] = 8] = \"OptionalDependencies\";\n  PackageJsonDependencyGroup2[PackageJsonDependencyGroup2[\"All\"] = 15] = \"All\";\n  return PackageJsonDependencyGroup2;\n})(PackageJsonDependencyGroup || {});\nvar PackageJsonAutoImportPreference = /* @__PURE__ */ ((PackageJsonAutoImportPreference2) => {\n  PackageJsonAutoImportPreference2[PackageJsonAutoImportPreference2[\"Off\"] = 0] = \"Off\";\n  PackageJsonAutoImportPreference2[PackageJsonAutoImportPreference2[\"On\"] = 1] = \"On\";\n  PackageJsonAutoImportPreference2[PackageJsonAutoImportPreference2[\"Auto\"] = 2] = \"Auto\";\n  return PackageJsonAutoImportPreference2;\n})(PackageJsonAutoImportPreference || {});\nvar LanguageServiceMode = /* @__PURE__ */ ((LanguageServiceMode2) => {\n  LanguageServiceMode2[LanguageServiceMode2[\"Semantic\"] = 0] = \"Semantic\";\n  LanguageServiceMode2[LanguageServiceMode2[\"PartialSemantic\"] = 1] = \"PartialSemantic\";\n  LanguageServiceMode2[LanguageServiceMode2[\"Syntactic\"] = 2] = \"Syntactic\";\n  return LanguageServiceMode2;\n})(LanguageServiceMode || {});\nvar emptyOptions = {};\nvar SemanticClassificationFormat = /* @__PURE__ */ ((SemanticClassificationFormat2) => {\n  SemanticClassificationFormat2[\"Original\"] = \"original\";\n  SemanticClassificationFormat2[\"TwentyTwenty\"] = \"2020\";\n  return SemanticClassificationFormat2;\n})(SemanticClassificationFormat || {});\nvar OrganizeImportsMode = /* @__PURE__ */ ((OrganizeImportsMode2) => {\n  OrganizeImportsMode2[\"All\"] = \"All\";\n  OrganizeImportsMode2[\"SortAndCombine\"] = \"SortAndCombine\";\n  OrganizeImportsMode2[\"RemoveUnused\"] = \"RemoveUnused\";\n  return OrganizeImportsMode2;\n})(OrganizeImportsMode || {});\nvar CompletionTriggerKind = /* @__PURE__ */ ((CompletionTriggerKind2) => {\n  CompletionTriggerKind2[CompletionTriggerKind2[\"Invoked\"] = 1] = \"Invoked\";\n  CompletionTriggerKind2[CompletionTriggerKind2[\"TriggerCharacter\"] = 2] = \"TriggerCharacter\";\n  CompletionTriggerKind2[CompletionTriggerKind2[\"TriggerForIncompleteCompletions\"] = 3] = \"TriggerForIncompleteCompletions\";\n  return CompletionTriggerKind2;\n})(CompletionTriggerKind || {});\nvar InlayHintKind2 = /* @__PURE__ */ ((InlayHintKind3) => {\n  InlayHintKind3[\"Type\"] = \"Type\";\n  InlayHintKind3[\"Parameter\"] = \"Parameter\";\n  InlayHintKind3[\"Enum\"] = \"Enum\";\n  return InlayHintKind3;\n})(InlayHintKind2 || {});\nvar HighlightSpanKind = /* @__PURE__ */ ((HighlightSpanKind2) => {\n  HighlightSpanKind2[\"none\"] = \"none\";\n  HighlightSpanKind2[\"definition\"] = \"definition\";\n  HighlightSpanKind2[\"reference\"] = \"reference\";\n  HighlightSpanKind2[\"writtenReference\"] = \"writtenReference\";\n  return HighlightSpanKind2;\n})(HighlightSpanKind || {});\nvar IndentStyle = /* @__PURE__ */ ((IndentStyle3) => {\n  IndentStyle3[IndentStyle3[\"None\"] = 0] = \"None\";\n  IndentStyle3[IndentStyle3[\"Block\"] = 1] = \"Block\";\n  IndentStyle3[IndentStyle3[\"Smart\"] = 2] = \"Smart\";\n  return IndentStyle3;\n})(IndentStyle || {});\nvar SemicolonPreference = /* @__PURE__ */ ((SemicolonPreference2) => {\n  SemicolonPreference2[\"Ignore\"] = \"ignore\";\n  SemicolonPreference2[\"Insert\"] = \"insert\";\n  SemicolonPreference2[\"Remove\"] = \"remove\";\n  return SemicolonPreference2;\n})(SemicolonPreference || {});\nfunction getDefaultFormatCodeSettings(newLineCharacter) {\n  return {\n    indentSize: 4,\n    tabSize: 4,\n    newLineCharacter: newLineCharacter || \"\\n\",\n    convertTabsToSpaces: true,\n    indentStyle: 2 /* Smart */,\n    insertSpaceAfterConstructor: false,\n    insertSpaceAfterCommaDelimiter: true,\n    insertSpaceAfterSemicolonInForStatements: true,\n    insertSpaceBeforeAndAfterBinaryOperators: true,\n    insertSpaceAfterKeywordsInControlFlowStatements: true,\n    insertSpaceAfterFunctionKeywordForAnonymousFunctions: false,\n    insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis: false,\n    insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets: false,\n    insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces: true,\n    insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces: false,\n    insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces: false,\n    insertSpaceBeforeFunctionParenthesis: false,\n    placeOpenBraceOnNewLineForFunctions: false,\n    placeOpenBraceOnNewLineForControlBlocks: false,\n    semicolons: \"ignore\" /* Ignore */,\n    trimTrailingWhitespace: true,\n    indentSwitchCase: true\n  };\n}\nvar testFormatSettings = getDefaultFormatCodeSettings(\"\\n\");\nvar SymbolDisplayPartKind = /* @__PURE__ */ ((SymbolDisplayPartKind2) => {\n  SymbolDisplayPartKind2[SymbolDisplayPartKind2[\"aliasName\"] = 0] = \"aliasName\";\n  SymbolDisplayPartKind2[SymbolDisplayPartKind2[\"className\"] = 1] = \"className\";\n  SymbolDisplayPartKind2[SymbolDisplayPartKind2[\"enumName\"] = 2] = \"enumName\";\n  SymbolDisplayPartKind2[SymbolDisplayPartKind2[\"fieldName\"] = 3] = \"fieldName\";\n  SymbolDisplayPartKind2[SymbolDisplayPartKind2[\"interfaceName\"] = 4] = \"interfaceName\";\n  SymbolDisplayPartKind2[SymbolDisplayPartKind2[\"keyword\"] = 5] = \"keyword\";\n  SymbolDisplayPartKind2[SymbolDisplayPartKind2[\"lineBreak\"] = 6] = \"lineBreak\";\n  SymbolDisplayPartKind2[SymbolDisplayPartKind2[\"numericLiteral\"] = 7] = \"numericLiteral\";\n  SymbolDisplayPartKind2[SymbolDisplayPartKind2[\"stringLiteral\"] = 8] = \"stringLiteral\";\n  SymbolDisplayPartKind2[SymbolDisplayPartKind2[\"localName\"] = 9] = \"localName\";\n  SymbolDisplayPartKind2[SymbolDisplayPartKind2[\"methodName\"] = 10] = \"methodName\";\n  SymbolDisplayPartKind2[SymbolDisplayPartKind2[\"moduleName\"] = 11] = \"moduleName\";\n  SymbolDisplayPartKind2[SymbolDisplayPartKind2[\"operator\"] = 12] = \"operator\";\n  SymbolDisplayPartKind2[SymbolDisplayPartKind2[\"parameterName\"] = 13] = \"parameterName\";\n  SymbolDisplayPartKind2[SymbolDisplayPartKind2[\"propertyName\"] = 14] = \"propertyName\";\n  SymbolDisplayPartKind2[SymbolDisplayPartKind2[\"punctuation\"] = 15] = \"punctuation\";\n  SymbolDisplayPartKind2[SymbolDisplayPartKind2[\"space\"] = 16] = \"space\";\n  SymbolDisplayPartKind2[SymbolDisplayPartKind2[\"text\"] = 17] = \"text\";\n  SymbolDisplayPartKind2[SymbolDisplayPartKind2[\"typeParameterName\"] = 18] = \"typeParameterName\";\n  SymbolDisplayPartKind2[SymbolDisplayPartKind2[\"enumMemberName\"] = 19] = \"enumMemberName\";\n  SymbolDisplayPartKind2[SymbolDisplayPartKind2[\"functionName\"] = 20] = \"functionName\";\n  SymbolDisplayPartKind2[SymbolDisplayPartKind2[\"regularExpressionLiteral\"] = 21] = \"regularExpressionLiteral\";\n  SymbolDisplayPartKind2[SymbolDisplayPartKind2[\"link\"] = 22] = \"link\";\n  SymbolDisplayPartKind2[SymbolDisplayPartKind2[\"linkName\"] = 23] = \"linkName\";\n  SymbolDisplayPartKind2[SymbolDisplayPartKind2[\"linkText\"] = 24] = \"linkText\";\n  return SymbolDisplayPartKind2;\n})(SymbolDisplayPartKind || {});\nvar CompletionInfoFlags = /* @__PURE__ */ ((CompletionInfoFlags2) => {\n  CompletionInfoFlags2[CompletionInfoFlags2[\"None\"] = 0] = \"None\";\n  CompletionInfoFlags2[CompletionInfoFlags2[\"MayIncludeAutoImports\"] = 1] = \"MayIncludeAutoImports\";\n  CompletionInfoFlags2[CompletionInfoFlags2[\"IsImportStatementCompletion\"] = 2] = \"IsImportStatementCompletion\";\n  CompletionInfoFlags2[CompletionInfoFlags2[\"IsContinuation\"] = 4] = \"IsContinuation\";\n  CompletionInfoFlags2[CompletionInfoFlags2[\"ResolvedModuleSpecifiers\"] = 8] = \"ResolvedModuleSpecifiers\";\n  CompletionInfoFlags2[CompletionInfoFlags2[\"ResolvedModuleSpecifiersBeyondLimit\"] = 16] = \"ResolvedModuleSpecifiersBeyondLimit\";\n  CompletionInfoFlags2[CompletionInfoFlags2[\"MayIncludeMethodSnippets\"] = 32] = \"MayIncludeMethodSnippets\";\n  return CompletionInfoFlags2;\n})(CompletionInfoFlags || {});\nvar OutliningSpanKind = /* @__PURE__ */ ((OutliningSpanKind2) => {\n  OutliningSpanKind2[\"Comment\"] = \"comment\";\n  OutliningSpanKind2[\"Region\"] = \"region\";\n  OutliningSpanKind2[\"Code\"] = \"code\";\n  OutliningSpanKind2[\"Imports\"] = \"imports\";\n  return OutliningSpanKind2;\n})(OutliningSpanKind || {});\nvar OutputFileType = /* @__PURE__ */ ((OutputFileType2) => {\n  OutputFileType2[OutputFileType2[\"JavaScript\"] = 0] = \"JavaScript\";\n  OutputFileType2[OutputFileType2[\"SourceMap\"] = 1] = \"SourceMap\";\n  OutputFileType2[OutputFileType2[\"Declaration\"] = 2] = \"Declaration\";\n  return OutputFileType2;\n})(OutputFileType || {});\nvar EndOfLineState = /* @__PURE__ */ ((EndOfLineState2) => {\n  EndOfLineState2[EndOfLineState2[\"None\"] = 0] = \"None\";\n  EndOfLineState2[EndOfLineState2[\"InMultiLineCommentTrivia\"] = 1] = \"InMultiLineCommentTrivia\";\n  EndOfLineState2[EndOfLineState2[\"InSingleQuoteStringLiteral\"] = 2] = \"InSingleQuoteStringLiteral\";\n  EndOfLineState2[EndOfLineState2[\"InDoubleQuoteStringLiteral\"] = 3] = \"InDoubleQuoteStringLiteral\";\n  EndOfLineState2[EndOfLineState2[\"InTemplateHeadOrNoSubstitutionTemplate\"] = 4] = \"InTemplateHeadOrNoSubstitutionTemplate\";\n  EndOfLineState2[EndOfLineState2[\"InTemplateMiddleOrTail\"] = 5] = \"InTemplateMiddleOrTail\";\n  EndOfLineState2[EndOfLineState2[\"InTemplateSubstitutionPosition\"] = 6] = \"InTemplateSubstitutionPosition\";\n  return EndOfLineState2;\n})(EndOfLineState || {});\nvar TokenClass = /* @__PURE__ */ ((TokenClass2) => {\n  TokenClass2[TokenClass2[\"Punctuation\"] = 0] = \"Punctuation\";\n  TokenClass2[TokenClass2[\"Keyword\"] = 1] = \"Keyword\";\n  TokenClass2[TokenClass2[\"Operator\"] = 2] = \"Operator\";\n  TokenClass2[TokenClass2[\"Comment\"] = 3] = \"Comment\";\n  TokenClass2[TokenClass2[\"Whitespace\"] = 4] = \"Whitespace\";\n  TokenClass2[TokenClass2[\"Identifier\"] = 5] = \"Identifier\";\n  TokenClass2[TokenClass2[\"NumberLiteral\"] = 6] = \"NumberLiteral\";\n  TokenClass2[TokenClass2[\"BigIntLiteral\"] = 7] = \"BigIntLiteral\";\n  TokenClass2[TokenClass2[\"StringLiteral\"] = 8] = \"StringLiteral\";\n  TokenClass2[TokenClass2[\"RegExpLiteral\"] = 9] = \"RegExpLiteral\";\n  return TokenClass2;\n})(TokenClass || {});\nvar ScriptElementKind = /* @__PURE__ */ ((ScriptElementKind2) => {\n  ScriptElementKind2[\"unknown\"] = \"\";\n  ScriptElementKind2[\"warning\"] = \"warning\";\n  ScriptElementKind2[\"keyword\"] = \"keyword\";\n  ScriptElementKind2[\"scriptElement\"] = \"script\";\n  ScriptElementKind2[\"moduleElement\"] = \"module\";\n  ScriptElementKind2[\"classElement\"] = \"class\";\n  ScriptElementKind2[\"localClassElement\"] = \"local class\";\n  ScriptElementKind2[\"interfaceElement\"] = \"interface\";\n  ScriptElementKind2[\"typeElement\"] = \"type\";\n  ScriptElementKind2[\"enumElement\"] = \"enum\";\n  ScriptElementKind2[\"enumMemberElement\"] = \"enum member\";\n  ScriptElementKind2[\"variableElement\"] = \"var\";\n  ScriptElementKind2[\"localVariableElement\"] = \"local var\";\n  ScriptElementKind2[\"variableUsingElement\"] = \"using\";\n  ScriptElementKind2[\"variableAwaitUsingElement\"] = \"await using\";\n  ScriptElementKind2[\"functionElement\"] = \"function\";\n  ScriptElementKind2[\"localFunctionElement\"] = \"local function\";\n  ScriptElementKind2[\"memberFunctionElement\"] = \"method\";\n  ScriptElementKind2[\"memberGetAccessorElement\"] = \"getter\";\n  ScriptElementKind2[\"memberSetAccessorElement\"] = \"setter\";\n  ScriptElementKind2[\"memberVariableElement\"] = \"property\";\n  ScriptElementKind2[\"memberAccessorVariableElement\"] = \"accessor\";\n  ScriptElementKind2[\"constructorImplementationElement\"] = \"constructor\";\n  ScriptElementKind2[\"callSignatureElement\"] = \"call\";\n  ScriptElementKind2[\"indexSignatureElement\"] = \"index\";\n  ScriptElementKind2[\"constructSignatureElement\"] = \"construct\";\n  ScriptElementKind2[\"parameterElement\"] = \"parameter\";\n  ScriptElementKind2[\"typeParameterElement\"] = \"type parameter\";\n  ScriptElementKind2[\"primitiveType\"] = \"primitive type\";\n  ScriptElementKind2[\"label\"] = \"label\";\n  ScriptElementKind2[\"alias\"] = \"alias\";\n  ScriptElementKind2[\"constElement\"] = \"const\";\n  ScriptElementKind2[\"letElement\"] = \"let\";\n  ScriptElementKind2[\"directory\"] = \"directory\";\n  ScriptElementKind2[\"externalModuleName\"] = \"external module name\";\n  ScriptElementKind2[\"jsxAttribute\"] = \"JSX attribute\";\n  ScriptElementKind2[\"string\"] = \"string\";\n  ScriptElementKind2[\"link\"] = \"link\";\n  ScriptElementKind2[\"linkName\"] = \"link name\";\n  ScriptElementKind2[\"linkText\"] = \"link text\";\n  return ScriptElementKind2;\n})(ScriptElementKind || {});\nvar ScriptElementKindModifier = /* @__PURE__ */ ((ScriptElementKindModifier2) => {\n  ScriptElementKindModifier2[\"none\"] = \"\";\n  ScriptElementKindModifier2[\"publicMemberModifier\"] = \"public\";\n  ScriptElementKindModifier2[\"privateMemberModifier\"] = \"private\";\n  ScriptElementKindModifier2[\"protectedMemberModifier\"] = \"protected\";\n  ScriptElementKindModifier2[\"exportedModifier\"] = \"export\";\n  ScriptElementKindModifier2[\"ambientModifier\"] = \"declare\";\n  ScriptElementKindModifier2[\"staticModifier\"] = \"static\";\n  ScriptElementKindModifier2[\"abstractModifier\"] = \"abstract\";\n  ScriptElementKindModifier2[\"optionalModifier\"] = \"optional\";\n  ScriptElementKindModifier2[\"deprecatedModifier\"] = \"deprecated\";\n  ScriptElementKindModifier2[\"dtsModifier\"] = \".d.ts\";\n  ScriptElementKindModifier2[\"tsModifier\"] = \".ts\";\n  ScriptElementKindModifier2[\"tsxModifier\"] = \".tsx\";\n  ScriptElementKindModifier2[\"jsModifier\"] = \".js\";\n  ScriptElementKindModifier2[\"jsxModifier\"] = \".jsx\";\n  ScriptElementKindModifier2[\"jsonModifier\"] = \".json\";\n  ScriptElementKindModifier2[\"dmtsModifier\"] = \".d.mts\";\n  ScriptElementKindModifier2[\"mtsModifier\"] = \".mts\";\n  ScriptElementKindModifier2[\"mjsModifier\"] = \".mjs\";\n  ScriptElementKindModifier2[\"dctsModifier\"] = \".d.cts\";\n  ScriptElementKindModifier2[\"ctsModifier\"] = \".cts\";\n  ScriptElementKindModifier2[\"cjsModifier\"] = \".cjs\";\n  return ScriptElementKindModifier2;\n})(ScriptElementKindModifier || {});\nvar ClassificationTypeNames = /* @__PURE__ */ ((ClassificationTypeNames2) => {\n  ClassificationTypeNames2[\"comment\"] = \"comment\";\n  ClassificationTypeNames2[\"identifier\"] = \"identifier\";\n  ClassificationTypeNames2[\"keyword\"] = \"keyword\";\n  ClassificationTypeNames2[\"numericLiteral\"] = \"number\";\n  ClassificationTypeNames2[\"bigintLiteral\"] = \"bigint\";\n  ClassificationTypeNames2[\"operator\"] = \"operator\";\n  ClassificationTypeNames2[\"stringLiteral\"] = \"string\";\n  ClassificationTypeNames2[\"whiteSpace\"] = \"whitespace\";\n  ClassificationTypeNames2[\"text\"] = \"text\";\n  ClassificationTypeNames2[\"punctuation\"] = \"punctuation\";\n  ClassificationTypeNames2[\"className\"] = \"class name\";\n  ClassificationTypeNames2[\"enumName\"] = \"enum name\";\n  ClassificationTypeNames2[\"interfaceName\"] = \"interface name\";\n  ClassificationTypeNames2[\"moduleName\"] = \"module name\";\n  ClassificationTypeNames2[\"typeParameterName\"] = \"type parameter name\";\n  ClassificationTypeNames2[\"typeAliasName\"] = \"type alias name\";\n  ClassificationTypeNames2[\"parameterName\"] = \"parameter name\";\n  ClassificationTypeNames2[\"docCommentTagName\"] = \"doc comment tag name\";\n  ClassificationTypeNames2[\"jsxOpenTagName\"] = \"jsx open tag name\";\n  ClassificationTypeNames2[\"jsxCloseTagName\"] = \"jsx close tag name\";\n  ClassificationTypeNames2[\"jsxSelfClosingTagName\"] = \"jsx self closing tag name\";\n  ClassificationTypeNames2[\"jsxAttribute\"] = \"jsx attribute\";\n  ClassificationTypeNames2[\"jsxText\"] = \"jsx text\";\n  ClassificationTypeNames2[\"jsxAttributeStringLiteralValue\"] = \"jsx attribute string literal value\";\n  return ClassificationTypeNames2;\n})(ClassificationTypeNames || {});\nvar ClassificationType = /* @__PURE__ */ ((ClassificationType2) => {\n  ClassificationType2[ClassificationType2[\"comment\"] = 1] = \"comment\";\n  ClassificationType2[ClassificationType2[\"identifier\"] = 2] = \"identifier\";\n  ClassificationType2[ClassificationType2[\"keyword\"] = 3] = \"keyword\";\n  ClassificationType2[ClassificationType2[\"numericLiteral\"] = 4] = \"numericLiteral\";\n  ClassificationType2[ClassificationType2[\"operator\"] = 5] = \"operator\";\n  ClassificationType2[ClassificationType2[\"stringLiteral\"] = 6] = \"stringLiteral\";\n  ClassificationType2[ClassificationType2[\"regularExpressionLiteral\"] = 7] = \"regularExpressionLiteral\";\n  ClassificationType2[ClassificationType2[\"whiteSpace\"] = 8] = \"whiteSpace\";\n  ClassificationType2[ClassificationType2[\"text\"] = 9] = \"text\";\n  ClassificationType2[ClassificationType2[\"punctuation\"] = 10] = \"punctuation\";\n  ClassificationType2[ClassificationType2[\"className\"] = 11] = \"className\";\n  ClassificationType2[ClassificationType2[\"enumName\"] = 12] = \"enumName\";\n  ClassificationType2[ClassificationType2[\"interfaceName\"] = 13] = \"interfaceName\";\n  ClassificationType2[ClassificationType2[\"moduleName\"] = 14] = \"moduleName\";\n  ClassificationType2[ClassificationType2[\"typeParameterName\"] = 15] = \"typeParameterName\";\n  ClassificationType2[ClassificationType2[\"typeAliasName\"] = 16] = \"typeAliasName\";\n  ClassificationType2[ClassificationType2[\"parameterName\"] = 17] = \"parameterName\";\n  ClassificationType2[ClassificationType2[\"docCommentTagName\"] = 18] = \"docCommentTagName\";\n  ClassificationType2[ClassificationType2[\"jsxOpenTagName\"] = 19] = \"jsxOpenTagName\";\n  ClassificationType2[ClassificationType2[\"jsxCloseTagName\"] = 20] = \"jsxCloseTagName\";\n  ClassificationType2[ClassificationType2[\"jsxSelfClosingTagName\"] = 21] = \"jsxSelfClosingTagName\";\n  ClassificationType2[ClassificationType2[\"jsxAttribute\"] = 22] = \"jsxAttribute\";\n  ClassificationType2[ClassificationType2[\"jsxText\"] = 23] = \"jsxText\";\n  ClassificationType2[ClassificationType2[\"jsxAttributeStringLiteralValue\"] = 24] = \"jsxAttributeStringLiteralValue\";\n  ClassificationType2[ClassificationType2[\"bigintLiteral\"] = 25] = \"bigintLiteral\";\n  return ClassificationType2;\n})(ClassificationType || {});\n\n// src/services/utilities.ts\nvar scanner = createScanner(\n  99 /* Latest */,\n  /*skipTrivia*/\n  true\n);\nvar SemanticMeaning = /* @__PURE__ */ ((SemanticMeaning2) => {\n  SemanticMeaning2[SemanticMeaning2[\"None\"] = 0] = \"None\";\n  SemanticMeaning2[SemanticMeaning2[\"Value\"] = 1] = \"Value\";\n  SemanticMeaning2[SemanticMeaning2[\"Type\"] = 2] = \"Type\";\n  SemanticMeaning2[SemanticMeaning2[\"Namespace\"] = 4] = \"Namespace\";\n  SemanticMeaning2[SemanticMeaning2[\"All\"] = 7] = \"All\";\n  return SemanticMeaning2;\n})(SemanticMeaning || {});\nfunction getMeaningFromDeclaration(node) {\n  switch (node.kind) {\n    case 261 /* VariableDeclaration */:\n      return isInJSFile(node) && getJSDocEnumTag(node) ? 7 /* All */ : 1 /* Value */;\n    case 170 /* Parameter */:\n    case 209 /* BindingElement */:\n    case 173 /* PropertyDeclaration */:\n    case 172 /* PropertySignature */:\n    case 304 /* PropertyAssignment */:\n    case 305 /* ShorthandPropertyAssignment */:\n    case 175 /* MethodDeclaration */:\n    case 174 /* MethodSignature */:\n    case 177 /* Constructor */:\n    case 178 /* GetAccessor */:\n    case 179 /* SetAccessor */:\n    case 263 /* FunctionDeclaration */:\n    case 219 /* FunctionExpression */:\n    case 220 /* ArrowFunction */:\n    case 300 /* CatchClause */:\n    case 292 /* JsxAttribute */:\n      return 1 /* Value */;\n    case 169 /* TypeParameter */:\n    case 265 /* InterfaceDeclaration */:\n    case 266 /* TypeAliasDeclaration */:\n    case 188 /* TypeLiteral */:\n      return 2 /* Type */;\n    case 347 /* JSDocTypedefTag */:\n      return node.name === void 0 ? 1 /* Value */ | 2 /* Type */ : 2 /* Type */;\n    case 307 /* EnumMember */:\n    case 264 /* ClassDeclaration */:\n      return 1 /* Value */ | 2 /* Type */;\n    case 268 /* ModuleDeclaration */:\n      if (isAmbientModule(node)) {\n        return 4 /* Namespace */ | 1 /* Value */;\n      } else if (getModuleInstanceState(node) === 1 /* Instantiated */) {\n        return 4 /* Namespace */ | 1 /* Value */;\n      } else {\n        return 4 /* Namespace */;\n      }\n    case 267 /* EnumDeclaration */:\n    case 276 /* NamedImports */:\n    case 277 /* ImportSpecifier */:\n    case 272 /* ImportEqualsDeclaration */:\n    case 273 /* ImportDeclaration */:\n    case 278 /* ExportAssignment */:\n    case 279 /* ExportDeclaration */:\n      return 7 /* All */;\n    // An external module can be a Value\n    case 308 /* SourceFile */:\n      return 4 /* Namespace */ | 1 /* Value */;\n  }\n  return 7 /* All */;\n}\nfunction getMeaningFromLocation(node) {\n  node = getAdjustedReferenceLocation(node);\n  const parent2 = node.parent;\n  if (node.kind === 308 /* SourceFile */) {\n    return 1 /* Value */;\n  } else if (isExportAssignment(parent2) || isExportSpecifier(parent2) || isExternalModuleReference(parent2) || isImportSpecifier(parent2) || isImportClause(parent2) || isImportEqualsDeclaration(parent2) && node === parent2.name) {\n    return 7 /* All */;\n  } else if (isInRightSideOfInternalImportEqualsDeclaration(node)) {\n    return getMeaningFromRightHandSideOfImportEquals(node);\n  } else if (isDeclarationName(node)) {\n    return getMeaningFromDeclaration(parent2);\n  } else if (isEntityName(node) && findAncestor(node, or(isJSDocNameReference, isJSDocLinkLike, isJSDocMemberName))) {\n    return 7 /* All */;\n  } else if (isTypeReference(node)) {\n    return 2 /* Type */;\n  } else if (isNamespaceReference(node)) {\n    return 4 /* Namespace */;\n  } else if (isTypeParameterDeclaration(parent2)) {\n    Debug.assert(isJSDocTemplateTag(parent2.parent));\n    return 2 /* Type */;\n  } else if (isLiteralTypeNode(parent2)) {\n    return 2 /* Type */ | 1 /* Value */;\n  } else {\n    return 1 /* Value */;\n  }\n}\nfunction getMeaningFromRightHandSideOfImportEquals(node) {\n  const name = node.kind === 167 /* QualifiedName */ ? node : isQualifiedName(node.parent) && node.parent.right === node ? node.parent : void 0;\n  return name && name.parent.kind === 272 /* ImportEqualsDeclaration */ ? 7 /* All */ : 4 /* Namespace */;\n}\nfunction isInRightSideOfInternalImportEqualsDeclaration(node) {\n  if (!node.parent) {\n    return false;\n  }\n  while (node.parent.kind === 167 /* QualifiedName */) {\n    node = node.parent;\n  }\n  return isInternalModuleImportEqualsDeclaration(node.parent) && node.parent.moduleReference === node;\n}\nfunction isNamespaceReference(node) {\n  return isQualifiedNameNamespaceReference(node) || isPropertyAccessNamespaceReference(node);\n}\nfunction isQualifiedNameNamespaceReference(node) {\n  let root = node;\n  let isLastClause = true;\n  if (root.parent.kind === 167 /* QualifiedName */) {\n    while (root.parent && root.parent.kind === 167 /* QualifiedName */) {\n      root = root.parent;\n    }\n    isLastClause = root.right === node;\n  }\n  return root.parent.kind === 184 /* TypeReference */ && !isLastClause;\n}\nfunction isPropertyAccessNamespaceReference(node) {\n  let root = node;\n  let isLastClause = true;\n  if (root.parent.kind === 212 /* PropertyAccessExpression */) {\n    while (root.parent && root.parent.kind === 212 /* PropertyAccessExpression */) {\n      root = root.parent;\n    }\n    isLastClause = root.name === node;\n  }\n  if (!isLastClause && root.parent.kind === 234 /* ExpressionWithTypeArguments */ && root.parent.parent.kind === 299 /* HeritageClause */) {\n    const decl = root.parent.parent.parent;\n    return decl.kind === 264 /* ClassDeclaration */ && root.parent.parent.token === 119 /* ImplementsKeyword */ || decl.kind === 265 /* InterfaceDeclaration */ && root.parent.parent.token === 96 /* ExtendsKeyword */;\n  }\n  return false;\n}\nfunction isTypeReference(node) {\n  if (isRightSideOfQualifiedNameOrPropertyAccess(node)) {\n    node = node.parent;\n  }\n  switch (node.kind) {\n    case 110 /* ThisKeyword */:\n      return !isExpressionNode(node);\n    case 198 /* ThisType */:\n      return true;\n  }\n  switch (node.parent.kind) {\n    case 184 /* TypeReference */:\n      return true;\n    case 206 /* ImportType */:\n      return !node.parent.isTypeOf;\n    case 234 /* ExpressionWithTypeArguments */:\n      return isPartOfTypeNode(node.parent);\n  }\n  return false;\n}\nfunction isCallExpressionTarget(node, includeElementAccess = false, skipPastOuterExpressions = false) {\n  return isCalleeWorker(node, isCallExpression, selectExpressionOfCallOrNewExpressionOrDecorator, includeElementAccess, skipPastOuterExpressions);\n}\nfunction isNewExpressionTarget(node, includeElementAccess = false, skipPastOuterExpressions = false) {\n  return isCalleeWorker(node, isNewExpression, selectExpressionOfCallOrNewExpressionOrDecorator, includeElementAccess, skipPastOuterExpressions);\n}\nfunction isCallOrNewExpressionTarget(node, includeElementAccess = false, skipPastOuterExpressions = false) {\n  return isCalleeWorker(node, isCallOrNewExpression, selectExpressionOfCallOrNewExpressionOrDecorator, includeElementAccess, skipPastOuterExpressions);\n}\nfunction isTaggedTemplateTag(node, includeElementAccess = false, skipPastOuterExpressions = false) {\n  return isCalleeWorker(node, isTaggedTemplateExpression, selectTagOfTaggedTemplateExpression, includeElementAccess, skipPastOuterExpressions);\n}\nfunction isDecoratorTarget(node, includeElementAccess = false, skipPastOuterExpressions = false) {\n  return isCalleeWorker(node, isDecorator, selectExpressionOfCallOrNewExpressionOrDecorator, includeElementAccess, skipPastOuterExpressions);\n}\nfunction isJsxOpeningLikeElementTagName(node, includeElementAccess = false, skipPastOuterExpressions = false) {\n  return isCalleeWorker(node, isJsxOpeningLikeElement, selectTagNameOfJsxOpeningLikeElement, includeElementAccess, skipPastOuterExpressions);\n}\nfunction selectExpressionOfCallOrNewExpressionOrDecorator(node) {\n  return node.expression;\n}\nfunction selectTagOfTaggedTemplateExpression(node) {\n  return node.tag;\n}\nfunction selectTagNameOfJsxOpeningLikeElement(node) {\n  return node.tagName;\n}\nfunction isCalleeWorker(node, pred, calleeSelector, includeElementAccess, skipPastOuterExpressions) {\n  let target = includeElementAccess ? climbPastPropertyOrElementAccess(node) : climbPastPropertyAccess(node);\n  if (skipPastOuterExpressions) {\n    target = skipOuterExpressions(target);\n  }\n  return !!target && !!target.parent && pred(target.parent) && calleeSelector(target.parent) === target;\n}\nfunction climbPastPropertyAccess(node) {\n  return isRightSideOfPropertyAccess(node) ? node.parent : node;\n}\nfunction climbPastPropertyOrElementAccess(node) {\n  return isRightSideOfPropertyAccess(node) || isArgumentExpressionOfElementAccess(node) ? node.parent : node;\n}\nfunction getTargetLabel(referenceNode, labelName) {\n  while (referenceNode) {\n    if (referenceNode.kind === 257 /* LabeledStatement */ && referenceNode.label.escapedText === labelName) {\n      return referenceNode.label;\n    }\n    referenceNode = referenceNode.parent;\n  }\n  return void 0;\n}\nfunction hasPropertyAccessExpressionWithName(node, funcName) {\n  if (!isPropertyAccessExpression(node.expression)) {\n    return false;\n  }\n  return node.expression.name.text === funcName;\n}\nfunction isJumpStatementTarget(node) {\n  var _a;\n  return isIdentifier(node) && ((_a = tryCast(node.parent, isBreakOrContinueStatement)) == null ? void 0 : _a.label) === node;\n}\nfunction isLabelOfLabeledStatement(node) {\n  var _a;\n  return isIdentifier(node) && ((_a = tryCast(node.parent, isLabeledStatement)) == null ? void 0 : _a.label) === node;\n}\nfunction isLabelName(node) {\n  return isLabelOfLabeledStatement(node) || isJumpStatementTarget(node);\n}\nfunction isTagName(node) {\n  var _a;\n  return ((_a = tryCast(node.parent, isJSDocTag)) == null ? void 0 : _a.tagName) === node;\n}\nfunction isRightSideOfQualifiedName(node) {\n  var _a;\n  return ((_a = tryCast(node.parent, isQualifiedName)) == null ? void 0 : _a.right) === node;\n}\nfunction isRightSideOfPropertyAccess(node) {\n  var _a;\n  return ((_a = tryCast(node.parent, isPropertyAccessExpression)) == null ? void 0 : _a.name) === node;\n}\nfunction isArgumentExpressionOfElementAccess(node) {\n  var _a;\n  return ((_a = tryCast(node.parent, isElementAccessExpression)) == null ? void 0 : _a.argumentExpression) === node;\n}\nfunction isNameOfModuleDeclaration(node) {\n  var _a;\n  return ((_a = tryCast(node.parent, isModuleDeclaration)) == null ? void 0 : _a.name) === node;\n}\nfunction isNameOfFunctionDeclaration(node) {\n  var _a;\n  return isIdentifier(node) && ((_a = tryCast(node.parent, isFunctionLike)) == null ? void 0 : _a.name) === node;\n}\nfunction isLiteralNameOfPropertyDeclarationOrIndexAccess(node) {\n  switch (node.parent.kind) {\n    case 173 /* PropertyDeclaration */:\n    case 172 /* PropertySignature */:\n    case 304 /* PropertyAssignment */:\n    case 307 /* EnumMember */:\n    case 175 /* MethodDeclaration */:\n    case 174 /* MethodSignature */:\n    case 178 /* GetAccessor */:\n    case 179 /* SetAccessor */:\n    case 268 /* ModuleDeclaration */:\n      return getNameOfDeclaration(node.parent) === node;\n    case 213 /* ElementAccessExpression */:\n      return node.parent.argumentExpression === node;\n    case 168 /* ComputedPropertyName */:\n      return true;\n    case 202 /* LiteralType */:\n      return node.parent.parent.kind === 200 /* IndexedAccessType */;\n    default:\n      return false;\n  }\n}\nfunction isExpressionOfExternalModuleImportEqualsDeclaration(node) {\n  return isExternalModuleImportEqualsDeclaration(node.parent.parent) && getExternalModuleImportEqualsDeclarationExpression(node.parent.parent) === node;\n}\nfunction getContainerNode(node) {\n  if (isJSDocTypeAlias(node)) {\n    node = node.parent.parent;\n  }\n  while (true) {\n    node = node.parent;\n    if (!node) {\n      return void 0;\n    }\n    switch (node.kind) {\n      case 308 /* SourceFile */:\n      case 175 /* MethodDeclaration */:\n      case 174 /* MethodSignature */:\n      case 263 /* FunctionDeclaration */:\n      case 219 /* FunctionExpression */:\n      case 178 /* GetAccessor */:\n      case 179 /* SetAccessor */:\n      case 264 /* ClassDeclaration */:\n      case 265 /* InterfaceDeclaration */:\n      case 267 /* EnumDeclaration */:\n      case 268 /* ModuleDeclaration */:\n        return node;\n    }\n  }\n}\nfunction getNodeKind(node) {\n  switch (node.kind) {\n    case 308 /* SourceFile */:\n      return isExternalModule(node) ? \"module\" /* moduleElement */ : \"script\" /* scriptElement */;\n    case 268 /* ModuleDeclaration */:\n      return \"module\" /* moduleElement */;\n    case 264 /* ClassDeclaration */:\n    case 232 /* ClassExpression */:\n      return \"class\" /* classElement */;\n    case 265 /* InterfaceDeclaration */:\n      return \"interface\" /* interfaceElement */;\n    case 266 /* TypeAliasDeclaration */:\n    case 339 /* JSDocCallbackTag */:\n    case 347 /* JSDocTypedefTag */:\n      return \"type\" /* typeElement */;\n    case 267 /* EnumDeclaration */:\n      return \"enum\" /* enumElement */;\n    case 261 /* VariableDeclaration */:\n      return getKindOfVariableDeclaration(node);\n    case 209 /* BindingElement */:\n      return getKindOfVariableDeclaration(getRootDeclaration(node));\n    case 220 /* ArrowFunction */:\n    case 263 /* FunctionDeclaration */:\n    case 219 /* FunctionExpression */:\n      return \"function\" /* functionElement */;\n    case 178 /* GetAccessor */:\n      return \"getter\" /* memberGetAccessorElement */;\n    case 179 /* SetAccessor */:\n      return \"setter\" /* memberSetAccessorElement */;\n    case 175 /* MethodDeclaration */:\n    case 174 /* MethodSignature */:\n      return \"method\" /* memberFunctionElement */;\n    case 304 /* PropertyAssignment */:\n      const { initializer } = node;\n      return isFunctionLike(initializer) ? \"method\" /* memberFunctionElement */ : \"property\" /* memberVariableElement */;\n    case 173 /* PropertyDeclaration */:\n    case 172 /* PropertySignature */:\n    case 305 /* ShorthandPropertyAssignment */:\n    case 306 /* SpreadAssignment */:\n      return \"property\" /* memberVariableElement */;\n    case 182 /* IndexSignature */:\n      return \"index\" /* indexSignatureElement */;\n    case 181 /* ConstructSignature */:\n      return \"construct\" /* constructSignatureElement */;\n    case 180 /* CallSignature */:\n      return \"call\" /* callSignatureElement */;\n    case 177 /* Constructor */:\n    case 176 /* ClassStaticBlockDeclaration */:\n      return \"constructor\" /* constructorImplementationElement */;\n    case 169 /* TypeParameter */:\n      return \"type parameter\" /* typeParameterElement */;\n    case 307 /* EnumMember */:\n      return \"enum member\" /* enumMemberElement */;\n    case 170 /* Parameter */:\n      return hasSyntacticModifier(node, 31 /* ParameterPropertyModifier */) ? \"property\" /* memberVariableElement */ : \"parameter\" /* parameterElement */;\n    case 272 /* ImportEqualsDeclaration */:\n    case 277 /* ImportSpecifier */:\n    case 282 /* ExportSpecifier */:\n    case 275 /* NamespaceImport */:\n    case 281 /* NamespaceExport */:\n      return \"alias\" /* alias */;\n    case 227 /* BinaryExpression */:\n      const kind = getAssignmentDeclarationKind(node);\n      const { right } = node;\n      switch (kind) {\n        case 7 /* ObjectDefinePropertyValue */:\n        case 8 /* ObjectDefinePropertyExports */:\n        case 9 /* ObjectDefinePrototypeProperty */:\n        case 0 /* None */:\n          return \"\" /* unknown */;\n        case 1 /* ExportsProperty */:\n        case 2 /* ModuleExports */:\n          const rightKind = getNodeKind(right);\n          return rightKind === \"\" /* unknown */ ? \"const\" /* constElement */ : rightKind;\n        case 3 /* PrototypeProperty */:\n          return isFunctionExpression(right) ? \"method\" /* memberFunctionElement */ : \"property\" /* memberVariableElement */;\n        case 4 /* ThisProperty */:\n          return \"property\" /* memberVariableElement */;\n        // property\n        case 5 /* Property */:\n          return isFunctionExpression(right) ? \"method\" /* memberFunctionElement */ : \"property\" /* memberVariableElement */;\n        case 6 /* Prototype */:\n          return \"local class\" /* localClassElement */;\n        default: {\n          assertType(kind);\n          return \"\" /* unknown */;\n        }\n      }\n    case 80 /* Identifier */:\n      return isImportClause(node.parent) ? \"alias\" /* alias */ : \"\" /* unknown */;\n    case 278 /* ExportAssignment */:\n      const scriptKind = getNodeKind(node.expression);\n      return scriptKind === \"\" /* unknown */ ? \"const\" /* constElement */ : scriptKind;\n    default:\n      return \"\" /* unknown */;\n  }\n  function getKindOfVariableDeclaration(v) {\n    return isVarConst(v) ? \"const\" /* constElement */ : isLet(v) ? \"let\" /* letElement */ : \"var\" /* variableElement */;\n  }\n}\nfunction isThis(node) {\n  switch (node.kind) {\n    case 110 /* ThisKeyword */:\n      return true;\n    case 80 /* Identifier */:\n      return identifierIsThisKeyword(node) && node.parent.kind === 170 /* Parameter */;\n    default:\n      return false;\n  }\n}\nvar tripleSlashDirectivePrefixRegex = /^\\/\\/\\/\\s*</;\nfunction getLineStartPositionForPosition(position, sourceFile) {\n  const lineStarts = getLineStarts(sourceFile);\n  const line = sourceFile.getLineAndCharacterOfPosition(position).line;\n  return lineStarts[line];\n}\nfunction rangeContainsRangeExclusive(r1, r2) {\n  return rangeContainsPositionExclusive(r1, r2.pos) && rangeContainsPositionExclusive(r1, r2.end);\n}\nfunction rangeContainsPosition(r, pos) {\n  return r.pos <= pos && pos <= r.end;\n}\nfunction rangeContainsPositionExclusive(r, pos) {\n  return r.pos < pos && pos < r.end;\n}\nfunction rangeContainsStartEnd(range, start, end) {\n  return range.pos <= start && range.end >= end;\n}\nfunction rangeOverlapsWithStartEnd(r1, start, end) {\n  return startEndOverlapsWithStartEnd(r1.pos, r1.end, start, end);\n}\nfunction nodeOverlapsWithStartEnd(node, sourceFile, start, end) {\n  return startEndOverlapsWithStartEnd(node.getStart(sourceFile), node.end, start, end);\n}\nfunction startEndOverlapsWithStartEnd(start1, end1, start2, end2) {\n  const start = Math.max(start1, start2);\n  const end = Math.min(end1, end2);\n  return start < end;\n}\nfunction positionBelongsToNode(candidate, position, sourceFile) {\n  Debug.assert(candidate.pos <= position);\n  return position < candidate.end || !isCompletedNode(candidate, sourceFile);\n}\nfunction isCompletedNode(n, sourceFile) {\n  if (n === void 0 || nodeIsMissing(n)) {\n    return false;\n  }\n  switch (n.kind) {\n    case 264 /* ClassDeclaration */:\n    case 265 /* InterfaceDeclaration */:\n    case 267 /* EnumDeclaration */:\n    case 211 /* ObjectLiteralExpression */:\n    case 207 /* ObjectBindingPattern */:\n    case 188 /* TypeLiteral */:\n    case 242 /* Block */:\n    case 269 /* ModuleBlock */:\n    case 270 /* CaseBlock */:\n    case 276 /* NamedImports */:\n    case 280 /* NamedExports */:\n      return nodeEndsWith(n, 20 /* CloseBraceToken */, sourceFile);\n    case 300 /* CatchClause */:\n      return isCompletedNode(n.block, sourceFile);\n    case 215 /* NewExpression */:\n      if (!n.arguments) {\n        return true;\n      }\n    // falls through\n    case 214 /* CallExpression */:\n    case 218 /* ParenthesizedExpression */:\n    case 197 /* ParenthesizedType */:\n      return nodeEndsWith(n, 22 /* CloseParenToken */, sourceFile);\n    case 185 /* FunctionType */:\n    case 186 /* ConstructorType */:\n      return isCompletedNode(n.type, sourceFile);\n    case 177 /* Constructor */:\n    case 178 /* GetAccessor */:\n    case 179 /* SetAccessor */:\n    case 263 /* FunctionDeclaration */:\n    case 219 /* FunctionExpression */:\n    case 175 /* MethodDeclaration */:\n    case 174 /* MethodSignature */:\n    case 181 /* ConstructSignature */:\n    case 180 /* CallSignature */:\n    case 220 /* ArrowFunction */:\n      if (n.body) {\n        return isCompletedNode(n.body, sourceFile);\n      }\n      if (n.type) {\n        return isCompletedNode(n.type, sourceFile);\n      }\n      return hasChildOfKind(n, 22 /* CloseParenToken */, sourceFile);\n    case 268 /* ModuleDeclaration */:\n      return !!n.body && isCompletedNode(n.body, sourceFile);\n    case 246 /* IfStatement */:\n      if (n.elseStatement) {\n        return isCompletedNode(n.elseStatement, sourceFile);\n      }\n      return isCompletedNode(n.thenStatement, sourceFile);\n    case 245 /* ExpressionStatement */:\n      return isCompletedNode(n.expression, sourceFile) || hasChildOfKind(n, 27 /* SemicolonToken */, sourceFile);\n    case 210 /* ArrayLiteralExpression */:\n    case 208 /* ArrayBindingPattern */:\n    case 213 /* ElementAccessExpression */:\n    case 168 /* ComputedPropertyName */:\n    case 190 /* TupleType */:\n      return nodeEndsWith(n, 24 /* CloseBracketToken */, sourceFile);\n    case 182 /* IndexSignature */:\n      if (n.type) {\n        return isCompletedNode(n.type, sourceFile);\n      }\n      return hasChildOfKind(n, 24 /* CloseBracketToken */, sourceFile);\n    case 297 /* CaseClause */:\n    case 298 /* DefaultClause */:\n      return false;\n    case 249 /* ForStatement */:\n    case 250 /* ForInStatement */:\n    case 251 /* ForOfStatement */:\n    case 248 /* WhileStatement */:\n      return isCompletedNode(n.statement, sourceFile);\n    case 247 /* DoStatement */:\n      return hasChildOfKind(n, 117 /* WhileKeyword */, sourceFile) ? nodeEndsWith(n, 22 /* CloseParenToken */, sourceFile) : isCompletedNode(n.statement, sourceFile);\n    case 187 /* TypeQuery */:\n      return isCompletedNode(n.exprName, sourceFile);\n    case 222 /* TypeOfExpression */:\n    case 221 /* DeleteExpression */:\n    case 223 /* VoidExpression */:\n    case 230 /* YieldExpression */:\n    case 231 /* SpreadElement */:\n      const unaryWordExpression = n;\n      return isCompletedNode(unaryWordExpression.expression, sourceFile);\n    case 216 /* TaggedTemplateExpression */:\n      return isCompletedNode(n.template, sourceFile);\n    case 229 /* TemplateExpression */:\n      const lastSpan = lastOrUndefined(n.templateSpans);\n      return isCompletedNode(lastSpan, sourceFile);\n    case 240 /* TemplateSpan */:\n      return nodeIsPresent(n.literal);\n    case 279 /* ExportDeclaration */:\n    case 273 /* ImportDeclaration */:\n      return nodeIsPresent(n.moduleSpecifier);\n    case 225 /* PrefixUnaryExpression */:\n      return isCompletedNode(n.operand, sourceFile);\n    case 227 /* BinaryExpression */:\n      return isCompletedNode(n.right, sourceFile);\n    case 228 /* ConditionalExpression */:\n      return isCompletedNode(n.whenFalse, sourceFile);\n    default:\n      return true;\n  }\n}\nfunction nodeEndsWith(n, expectedLastToken, sourceFile) {\n  const children = n.getChildren(sourceFile);\n  if (children.length) {\n    const lastChild = last(children);\n    if (lastChild.kind === expectedLastToken) {\n      return true;\n    } else if (lastChild.kind === 27 /* SemicolonToken */ && children.length !== 1) {\n      return children[children.length - 2].kind === expectedLastToken;\n    }\n  }\n  return false;\n}\nfunction findListItemInfo(node) {\n  const list = findContainingList(node);\n  if (!list) {\n    return void 0;\n  }\n  const children = list.getChildren();\n  const listItemIndex = indexOfNode(children, node);\n  return {\n    listItemIndex,\n    list\n  };\n}\nfunction hasChildOfKind(n, kind, sourceFile) {\n  return !!findChildOfKind(n, kind, sourceFile);\n}\nfunction findChildOfKind(n, kind, sourceFile) {\n  return find(n.getChildren(sourceFile), (c) => c.kind === kind);\n}\nfunction findContainingList(node) {\n  const syntaxList = find(node.parent.getChildren(), (c) => isSyntaxList(c) && rangeContainsRange(c, node));\n  Debug.assert(!syntaxList || contains(syntaxList.getChildren(), node));\n  return syntaxList;\n}\nfunction isDefaultModifier2(node) {\n  return node.kind === 90 /* DefaultKeyword */;\n}\nfunction isClassKeyword(node) {\n  return node.kind === 86 /* ClassKeyword */;\n}\nfunction isFunctionKeyword(node) {\n  return node.kind === 100 /* FunctionKeyword */;\n}\nfunction getAdjustedLocationForClass(node) {\n  if (isNamedDeclaration(node)) {\n    return node.name;\n  }\n  if (isClassDeclaration(node)) {\n    const defaultModifier = node.modifiers && find(node.modifiers, isDefaultModifier2);\n    if (defaultModifier) return defaultModifier;\n  }\n  if (isClassExpression(node)) {\n    const classKeyword = find(node.getChildren(), isClassKeyword);\n    if (classKeyword) return classKeyword;\n  }\n}\nfunction getAdjustedLocationForFunction(node) {\n  if (isNamedDeclaration(node)) {\n    return node.name;\n  }\n  if (isFunctionDeclaration(node)) {\n    const defaultModifier = find(node.modifiers, isDefaultModifier2);\n    if (defaultModifier) return defaultModifier;\n  }\n  if (isFunctionExpression(node)) {\n    const functionKeyword = find(node.getChildren(), isFunctionKeyword);\n    if (functionKeyword) return functionKeyword;\n  }\n}\nfunction getAncestorTypeNode(node) {\n  let lastTypeNode;\n  findAncestor(node, (a) => {\n    if (isTypeNode(a)) {\n      lastTypeNode = a;\n    }\n    return !isQualifiedName(a.parent) && !isTypeNode(a.parent) && !isTypeElement(a.parent);\n  });\n  return lastTypeNode;\n}\nfunction getContextualTypeFromParentOrAncestorTypeNode(node, checker) {\n  if (node.flags & (16777216 /* JSDoc */ & ~524288 /* JavaScriptFile */)) return void 0;\n  const contextualType = getContextualTypeFromParent(node, checker);\n  if (contextualType) return contextualType;\n  const ancestorTypeNode = getAncestorTypeNode(node);\n  return ancestorTypeNode && checker.getTypeAtLocation(ancestorTypeNode);\n}\nfunction getAdjustedLocationForDeclaration(node, forRename) {\n  if (!forRename) {\n    switch (node.kind) {\n      case 264 /* ClassDeclaration */:\n      case 232 /* ClassExpression */:\n        return getAdjustedLocationForClass(node);\n      case 263 /* FunctionDeclaration */:\n      case 219 /* FunctionExpression */:\n        return getAdjustedLocationForFunction(node);\n      case 177 /* Constructor */:\n        return node;\n    }\n  }\n  if (isNamedDeclaration(node)) {\n    return node.name;\n  }\n}\nfunction getAdjustedLocationForImportDeclaration(node, forRename) {\n  if (node.importClause) {\n    if (node.importClause.name && node.importClause.namedBindings) {\n      return;\n    }\n    if (node.importClause.name) {\n      return node.importClause.name;\n    }\n    if (node.importClause.namedBindings) {\n      if (isNamedImports(node.importClause.namedBindings)) {\n        const onlyBinding = singleOrUndefined(node.importClause.namedBindings.elements);\n        if (!onlyBinding) {\n          return;\n        }\n        return onlyBinding.name;\n      } else if (isNamespaceImport(node.importClause.namedBindings)) {\n        return node.importClause.namedBindings.name;\n      }\n    }\n  }\n  if (!forRename) {\n    return node.moduleSpecifier;\n  }\n}\nfunction getAdjustedLocationForExportDeclaration(node, forRename) {\n  if (node.exportClause) {\n    if (isNamedExports(node.exportClause)) {\n      const onlyBinding = singleOrUndefined(node.exportClause.elements);\n      if (!onlyBinding) {\n        return;\n      }\n      return node.exportClause.elements[0].name;\n    } else if (isNamespaceExport(node.exportClause)) {\n      return node.exportClause.name;\n    }\n  }\n  if (!forRename) {\n    return node.moduleSpecifier;\n  }\n}\nfunction getAdjustedLocationForHeritageClause(node) {\n  if (node.types.length === 1) {\n    return node.types[0].expression;\n  }\n}\nfunction getAdjustedLocation(node, forRename) {\n  const { parent: parent2 } = node;\n  if (isModifier(node) && (forRename || node.kind !== 90 /* DefaultKeyword */) ? canHaveModifiers(parent2) && contains(parent2.modifiers, node) : node.kind === 86 /* ClassKeyword */ ? isClassDeclaration(parent2) || isClassExpression(node) : node.kind === 100 /* FunctionKeyword */ ? isFunctionDeclaration(parent2) || isFunctionExpression(node) : node.kind === 120 /* InterfaceKeyword */ ? isInterfaceDeclaration(parent2) : node.kind === 94 /* EnumKeyword */ ? isEnumDeclaration(parent2) : node.kind === 156 /* TypeKeyword */ ? isTypeAliasDeclaration(parent2) : node.kind === 145 /* NamespaceKeyword */ || node.kind === 144 /* ModuleKeyword */ ? isModuleDeclaration(parent2) : node.kind === 102 /* ImportKeyword */ ? isImportEqualsDeclaration(parent2) : node.kind === 139 /* GetKeyword */ ? isGetAccessorDeclaration(parent2) : node.kind === 153 /* SetKeyword */ && isSetAccessorDeclaration(parent2)) {\n    const location = getAdjustedLocationForDeclaration(parent2, forRename);\n    if (location) {\n      return location;\n    }\n  }\n  if ((node.kind === 115 /* VarKeyword */ || node.kind === 87 /* ConstKeyword */ || node.kind === 121 /* LetKeyword */) && isVariableDeclarationList(parent2) && parent2.declarations.length === 1) {\n    const decl = parent2.declarations[0];\n    if (isIdentifier(decl.name)) {\n      return decl.name;\n    }\n  }\n  if (node.kind === 156 /* TypeKeyword */) {\n    if (isImportClause(parent2) && parent2.isTypeOnly) {\n      const location = getAdjustedLocationForImportDeclaration(parent2.parent, forRename);\n      if (location) {\n        return location;\n      }\n    }\n    if (isExportDeclaration(parent2) && parent2.isTypeOnly) {\n      const location = getAdjustedLocationForExportDeclaration(parent2, forRename);\n      if (location) {\n        return location;\n      }\n    }\n  }\n  if (node.kind === 130 /* AsKeyword */) {\n    if (isImportSpecifier(parent2) && parent2.propertyName || isExportSpecifier(parent2) && parent2.propertyName || isNamespaceImport(parent2) || isNamespaceExport(parent2)) {\n      return parent2.name;\n    }\n    if (isExportDeclaration(parent2) && parent2.exportClause && isNamespaceExport(parent2.exportClause)) {\n      return parent2.exportClause.name;\n    }\n  }\n  if (node.kind === 102 /* ImportKeyword */ && isImportDeclaration(parent2)) {\n    const location = getAdjustedLocationForImportDeclaration(parent2, forRename);\n    if (location) {\n      return location;\n    }\n  }\n  if (node.kind === 95 /* ExportKeyword */) {\n    if (isExportDeclaration(parent2)) {\n      const location = getAdjustedLocationForExportDeclaration(parent2, forRename);\n      if (location) {\n        return location;\n      }\n    }\n    if (isExportAssignment(parent2)) {\n      return skipOuterExpressions(parent2.expression);\n    }\n  }\n  if (node.kind === 149 /* RequireKeyword */ && isExternalModuleReference(parent2)) {\n    return parent2.expression;\n  }\n  if (node.kind === 161 /* FromKeyword */ && (isImportDeclaration(parent2) || isExportDeclaration(parent2)) && parent2.moduleSpecifier) {\n    return parent2.moduleSpecifier;\n  }\n  if ((node.kind === 96 /* ExtendsKeyword */ || node.kind === 119 /* ImplementsKeyword */) && isHeritageClause(parent2) && parent2.token === node.kind) {\n    const location = getAdjustedLocationForHeritageClause(parent2);\n    if (location) {\n      return location;\n    }\n  }\n  if (node.kind === 96 /* ExtendsKeyword */) {\n    if (isTypeParameterDeclaration(parent2) && parent2.constraint && isTypeReferenceNode(parent2.constraint)) {\n      return parent2.constraint.typeName;\n    }\n    if (isConditionalTypeNode(parent2) && isTypeReferenceNode(parent2.extendsType)) {\n      return parent2.extendsType.typeName;\n    }\n  }\n  if (node.kind === 140 /* InferKeyword */ && isInferTypeNode(parent2)) {\n    return parent2.typeParameter.name;\n  }\n  if (node.kind === 103 /* InKeyword */ && isTypeParameterDeclaration(parent2) && isMappedTypeNode(parent2.parent)) {\n    return parent2.name;\n  }\n  if (node.kind === 143 /* KeyOfKeyword */ && isTypeOperatorNode(parent2) && parent2.operator === 143 /* KeyOfKeyword */ && isTypeReferenceNode(parent2.type)) {\n    return parent2.type.typeName;\n  }\n  if (node.kind === 148 /* ReadonlyKeyword */ && isTypeOperatorNode(parent2) && parent2.operator === 148 /* ReadonlyKeyword */ && isArrayTypeNode(parent2.type) && isTypeReferenceNode(parent2.type.elementType)) {\n    return parent2.type.elementType.typeName;\n  }\n  if (!forRename) {\n    if (node.kind === 105 /* NewKeyword */ && isNewExpression(parent2) || node.kind === 116 /* VoidKeyword */ && isVoidExpression(parent2) || node.kind === 114 /* TypeOfKeyword */ && isTypeOfExpression(parent2) || node.kind === 135 /* AwaitKeyword */ && isAwaitExpression(parent2) || node.kind === 127 /* YieldKeyword */ && isYieldExpression(parent2) || node.kind === 91 /* DeleteKeyword */ && isDeleteExpression(parent2)) {\n      if (parent2.expression) {\n        return skipOuterExpressions(parent2.expression);\n      }\n    }\n    if ((node.kind === 103 /* InKeyword */ || node.kind === 104 /* InstanceOfKeyword */) && isBinaryExpression(parent2) && parent2.operatorToken === node) {\n      return skipOuterExpressions(parent2.right);\n    }\n    if (node.kind === 130 /* AsKeyword */ && isAsExpression(parent2) && isTypeReferenceNode(parent2.type)) {\n      return parent2.type.typeName;\n    }\n    if (node.kind === 103 /* InKeyword */ && isForInStatement(parent2) || node.kind === 165 /* OfKeyword */ && isForOfStatement(parent2)) {\n      return skipOuterExpressions(parent2.expression);\n    }\n  }\n  return node;\n}\nfunction getAdjustedReferenceLocation(node) {\n  return getAdjustedLocation(\n    node,\n    /*forRename*/\n    false\n  );\n}\nfunction getAdjustedRenameLocation(node) {\n  return getAdjustedLocation(\n    node,\n    /*forRename*/\n    true\n  );\n}\nfunction getTouchingPropertyName(sourceFile, position) {\n  return getTouchingToken(sourceFile, position, (n) => isPropertyNameLiteral(n) || isKeyword(n.kind) || isPrivateIdentifier(n));\n}\nfunction getTouchingToken(sourceFile, position, includePrecedingTokenAtEndPosition) {\n  return getTokenAtPositionWorker(\n    sourceFile,\n    position,\n    /*allowPositionInLeadingTrivia*/\n    false,\n    includePrecedingTokenAtEndPosition,\n    /*includeEndPosition*/\n    false\n  );\n}\nfunction getTokenAtPosition(sourceFile, position) {\n  return getTokenAtPositionWorker(\n    sourceFile,\n    position,\n    /*allowPositionInLeadingTrivia*/\n    true,\n    /*includePrecedingTokenAtEndPosition*/\n    void 0,\n    /*includeEndPosition*/\n    false\n  );\n}\nfunction getTokenAtPositionWorker(sourceFile, position, allowPositionInLeadingTrivia, includePrecedingTokenAtEndPosition, includeEndPosition) {\n  let current = sourceFile;\n  let foundToken;\n  outer:\n    while (true) {\n      const children = current.getChildren(sourceFile);\n      const i = binarySearchKey(children, position, (_, i2) => i2, (middle, _) => {\n        const end = children[middle].getEnd();\n        if (end < position) {\n          return -1 /* LessThan */;\n        }\n        const start = allowPositionInLeadingTrivia ? children[middle].getFullStart() : children[middle].getStart(\n          sourceFile,\n          /*includeJsDocComment*/\n          true\n        );\n        if (start > position) {\n          return 1 /* GreaterThan */;\n        }\n        if (nodeContainsPosition(children[middle], start, end)) {\n          if (children[middle - 1]) {\n            if (nodeContainsPosition(children[middle - 1])) {\n              return 1 /* GreaterThan */;\n            }\n          }\n          return 0 /* EqualTo */;\n        }\n        if (includePrecedingTokenAtEndPosition && start === position && children[middle - 1] && children[middle - 1].getEnd() === position && nodeContainsPosition(children[middle - 1])) {\n          return 1 /* GreaterThan */;\n        }\n        return -1 /* LessThan */;\n      });\n      if (foundToken) {\n        return foundToken;\n      }\n      if (i >= 0 && children[i]) {\n        current = children[i];\n        continue outer;\n      }\n      return current;\n    }\n  function nodeContainsPosition(node, start, end) {\n    end ?? (end = node.getEnd());\n    if (end < position) {\n      return false;\n    }\n    start ?? (start = allowPositionInLeadingTrivia ? node.getFullStart() : node.getStart(\n      sourceFile,\n      /*includeJsDocComment*/\n      true\n    ));\n    if (start > position) {\n      return false;\n    }\n    if (position < end || position === end && (node.kind === 1 /* EndOfFileToken */ || includeEndPosition)) {\n      return true;\n    } else if (includePrecedingTokenAtEndPosition && end === position) {\n      const previousToken = findPrecedingToken(position, sourceFile, node);\n      if (previousToken && includePrecedingTokenAtEndPosition(previousToken)) {\n        foundToken = previousToken;\n        return true;\n      }\n    }\n    return false;\n  }\n}\nfunction findFirstNonJsxWhitespaceToken(sourceFile, position) {\n  let tokenAtPosition = getTokenAtPosition(sourceFile, position);\n  while (isWhiteSpaceOnlyJsxText(tokenAtPosition)) {\n    const nextToken = findNextToken(tokenAtPosition, tokenAtPosition.parent, sourceFile);\n    if (!nextToken) return;\n    tokenAtPosition = nextToken;\n  }\n  return tokenAtPosition;\n}\nfunction findTokenOnLeftOfPosition(file, position) {\n  const tokenAtPosition = getTokenAtPosition(file, position);\n  if (isToken(tokenAtPosition) && position > tokenAtPosition.getStart(file) && position < tokenAtPosition.getEnd()) {\n    return tokenAtPosition;\n  }\n  return findPrecedingToken(position, file);\n}\nfunction findNextToken(previousToken, parent2, sourceFile) {\n  return find2(parent2);\n  function find2(n) {\n    if (isToken(n) && n.pos === previousToken.end) {\n      return n;\n    }\n    return firstDefined(n.getChildren(sourceFile), (child) => {\n      const shouldDiveInChildNode = (\n        // previous token is enclosed somewhere in the child\n        child.pos <= previousToken.pos && child.end > previousToken.end || // previous token ends exactly at the beginning of child\n        child.pos === previousToken.end\n      );\n      return shouldDiveInChildNode && nodeHasTokens(child, sourceFile) ? find2(child) : void 0;\n    });\n  }\n}\nfunction findPrecedingToken(position, sourceFile, startNode2, excludeJsdoc) {\n  const result = find2(startNode2 || sourceFile);\n  Debug.assert(!(result && isWhiteSpaceOnlyJsxText(result)));\n  return result;\n  function find2(n) {\n    if (isNonWhitespaceToken(n) && n.kind !== 1 /* EndOfFileToken */) {\n      return n;\n    }\n    const children = n.getChildren(sourceFile);\n    const i = binarySearchKey(children, position, (_, i2) => i2, (middle, _) => {\n      if (position < children[middle].end) {\n        if (!children[middle - 1] || position >= children[middle - 1].end) {\n          return 0 /* EqualTo */;\n        }\n        return 1 /* GreaterThan */;\n      }\n      return -1 /* LessThan */;\n    });\n    if (i >= 0 && children[i]) {\n      const child = children[i];\n      if (position < child.end) {\n        const start = child.getStart(\n          sourceFile,\n          /*includeJsDoc*/\n          !excludeJsdoc\n        );\n        const lookInPreviousChild = start >= position || // cursor in the leading trivia\n        !nodeHasTokens(child, sourceFile) || isWhiteSpaceOnlyJsxText(child);\n        if (lookInPreviousChild) {\n          const candidate2 = findRightmostChildNodeWithTokens(\n            children,\n            /*exclusiveStartPosition*/\n            i,\n            sourceFile,\n            n.kind\n          );\n          if (candidate2) {\n            if (!excludeJsdoc && isJSDocCommentContainingNode(candidate2) && candidate2.getChildren(sourceFile).length) {\n              return find2(candidate2);\n            }\n            return findRightmostToken(candidate2, sourceFile);\n          }\n          return void 0;\n        } else {\n          return find2(child);\n        }\n      }\n    }\n    Debug.assert(startNode2 !== void 0 || n.kind === 308 /* SourceFile */ || n.kind === 1 /* EndOfFileToken */ || isJSDocCommentContainingNode(n));\n    const candidate = findRightmostChildNodeWithTokens(\n      children,\n      /*exclusiveStartPosition*/\n      children.length,\n      sourceFile,\n      n.kind\n    );\n    return candidate && findRightmostToken(candidate, sourceFile);\n  }\n}\nfunction isNonWhitespaceToken(n) {\n  return isToken(n) && !isWhiteSpaceOnlyJsxText(n);\n}\nfunction findRightmostToken(n, sourceFile) {\n  if (isNonWhitespaceToken(n)) {\n    return n;\n  }\n  const children = n.getChildren(sourceFile);\n  if (children.length === 0) {\n    return n;\n  }\n  const candidate = findRightmostChildNodeWithTokens(\n    children,\n    /*exclusiveStartPosition*/\n    children.length,\n    sourceFile,\n    n.kind\n  );\n  return candidate && findRightmostToken(candidate, sourceFile);\n}\nfunction findRightmostChildNodeWithTokens(children, exclusiveStartPosition, sourceFile, parentKind) {\n  for (let i = exclusiveStartPosition - 1; i >= 0; i--) {\n    const child = children[i];\n    if (isWhiteSpaceOnlyJsxText(child)) {\n      if (i === 0 && (parentKind === 12 /* JsxText */ || parentKind === 286 /* JsxSelfClosingElement */)) {\n        Debug.fail(\"`JsxText` tokens should not be the first child of `JsxElement | JsxSelfClosingElement`\");\n      }\n    } else if (nodeHasTokens(children[i], sourceFile)) {\n      return children[i];\n    }\n  }\n}\nfunction isInString(sourceFile, position, previousToken = findPrecedingToken(position, sourceFile)) {\n  if (previousToken && isStringTextContainingNode(previousToken)) {\n    const start = previousToken.getStart(sourceFile);\n    const end = previousToken.getEnd();\n    if (start < position && position < end) {\n      return true;\n    }\n    if (position === end) {\n      return !!previousToken.isUnterminated;\n    }\n  }\n  return false;\n}\nfunction isInsideJsxElementOrAttribute(sourceFile, position) {\n  const token = getTokenAtPosition(sourceFile, position);\n  if (!token) {\n    return false;\n  }\n  if (token.kind === 12 /* JsxText */) {\n    return true;\n  }\n  if (token.kind === 30 /* LessThanToken */ && token.parent.kind === 12 /* JsxText */) {\n    return true;\n  }\n  if (token.kind === 30 /* LessThanToken */ && token.parent.kind === 295 /* JsxExpression */) {\n    return true;\n  }\n  if (token && token.kind === 20 /* CloseBraceToken */ && token.parent.kind === 295 /* JsxExpression */) {\n    return true;\n  }\n  if (token.kind === 30 /* LessThanToken */ && token.parent.kind === 288 /* JsxClosingElement */) {\n    return true;\n  }\n  return false;\n}\nfunction isWhiteSpaceOnlyJsxText(node) {\n  return isJsxText(node) && node.containsOnlyTriviaWhiteSpaces;\n}\nfunction isInTemplateString(sourceFile, position) {\n  const token = getTokenAtPosition(sourceFile, position);\n  return isTemplateLiteralKind(token.kind) && position > token.getStart(sourceFile);\n}\nfunction isInJSXText(sourceFile, position) {\n  const token = getTokenAtPosition(sourceFile, position);\n  if (isJsxText(token)) {\n    return true;\n  }\n  if (token.kind === 19 /* OpenBraceToken */ && isJsxExpression(token.parent) && isJsxElement(token.parent.parent)) {\n    return true;\n  }\n  if (token.kind === 30 /* LessThanToken */ && isJsxOpeningLikeElement(token.parent) && isJsxElement(token.parent.parent)) {\n    return true;\n  }\n  return false;\n}\nfunction isInsideJsxElement(sourceFile, position) {\n  function isInsideJsxElementTraversal(node) {\n    while (node) {\n      if (node.kind >= 286 /* JsxSelfClosingElement */ && node.kind <= 295 /* JsxExpression */ || node.kind === 12 /* JsxText */ || node.kind === 30 /* LessThanToken */ || node.kind === 32 /* GreaterThanToken */ || node.kind === 80 /* Identifier */ || node.kind === 20 /* CloseBraceToken */ || node.kind === 19 /* OpenBraceToken */ || node.kind === 44 /* SlashToken */) {\n        node = node.parent;\n      } else if (node.kind === 285 /* JsxElement */) {\n        if (position > node.getStart(sourceFile)) return true;\n        node = node.parent;\n      } else {\n        return false;\n      }\n    }\n    return false;\n  }\n  return isInsideJsxElementTraversal(getTokenAtPosition(sourceFile, position));\n}\nfunction findPrecedingMatchingToken(token, matchingTokenKind, sourceFile) {\n  const closeTokenText = tokenToString(token.kind);\n  const matchingTokenText = tokenToString(matchingTokenKind);\n  const tokenFullStart = token.getFullStart();\n  const bestGuessIndex = sourceFile.text.lastIndexOf(matchingTokenText, tokenFullStart);\n  if (bestGuessIndex === -1) {\n    return void 0;\n  }\n  if (sourceFile.text.lastIndexOf(closeTokenText, tokenFullStart - 1) < bestGuessIndex) {\n    const nodeAtGuess = findPrecedingToken(bestGuessIndex + 1, sourceFile);\n    if (nodeAtGuess && nodeAtGuess.kind === matchingTokenKind) {\n      return nodeAtGuess;\n    }\n  }\n  const tokenKind = token.kind;\n  let remainingMatchingTokens = 0;\n  while (true) {\n    const preceding = findPrecedingToken(token.getFullStart(), sourceFile);\n    if (!preceding) {\n      return void 0;\n    }\n    token = preceding;\n    if (token.kind === matchingTokenKind) {\n      if (remainingMatchingTokens === 0) {\n        return token;\n      }\n      remainingMatchingTokens--;\n    } else if (token.kind === tokenKind) {\n      remainingMatchingTokens++;\n    }\n  }\n}\nfunction removeOptionality(type, isOptionalExpression, isOptionalChain2) {\n  return isOptionalExpression ? type.getNonNullableType() : isOptionalChain2 ? type.getNonOptionalType() : type;\n}\nfunction isPossiblyTypeArgumentPosition(token, sourceFile, checker) {\n  const info = getPossibleTypeArgumentsInfo(token, sourceFile);\n  return info !== void 0 && (isPartOfTypeNode(info.called) || getPossibleGenericSignatures(info.called, info.nTypeArguments, checker).length !== 0 || isPossiblyTypeArgumentPosition(info.called, sourceFile, checker));\n}\nfunction getPossibleGenericSignatures(called, typeArgumentCount, checker) {\n  let type = checker.getTypeAtLocation(called);\n  if (isOptionalChain(called.parent)) {\n    type = removeOptionality(\n      type,\n      isOptionalChainRoot(called.parent),\n      /*isOptionalChain*/\n      true\n    );\n  }\n  const signatures = isNewExpression(called.parent) ? type.getConstructSignatures() : type.getCallSignatures();\n  return signatures.filter((candidate) => !!candidate.typeParameters && candidate.typeParameters.length >= typeArgumentCount);\n}\nfunction getPossibleTypeArgumentsInfo(tokenIn, sourceFile) {\n  if (sourceFile.text.lastIndexOf(\"<\", tokenIn ? tokenIn.pos : sourceFile.text.length) === -1) {\n    return void 0;\n  }\n  let token = tokenIn;\n  let remainingLessThanTokens = 0;\n  let nTypeArguments = 0;\n  while (token) {\n    switch (token.kind) {\n      case 30 /* LessThanToken */:\n        token = findPrecedingToken(token.getFullStart(), sourceFile);\n        if (token && token.kind === 29 /* QuestionDotToken */) {\n          token = findPrecedingToken(token.getFullStart(), sourceFile);\n        }\n        if (!token || !isIdentifier(token)) return void 0;\n        if (!remainingLessThanTokens) {\n          return isDeclarationName(token) ? void 0 : { called: token, nTypeArguments };\n        }\n        remainingLessThanTokens--;\n        break;\n      case 50 /* GreaterThanGreaterThanGreaterThanToken */:\n        remainingLessThanTokens = 3;\n        break;\n      case 49 /* GreaterThanGreaterThanToken */:\n        remainingLessThanTokens = 2;\n        break;\n      case 32 /* GreaterThanToken */:\n        remainingLessThanTokens++;\n        break;\n      case 20 /* CloseBraceToken */:\n        token = findPrecedingMatchingToken(token, 19 /* OpenBraceToken */, sourceFile);\n        if (!token) return void 0;\n        break;\n      case 22 /* CloseParenToken */:\n        token = findPrecedingMatchingToken(token, 21 /* OpenParenToken */, sourceFile);\n        if (!token) return void 0;\n        break;\n      case 24 /* CloseBracketToken */:\n        token = findPrecedingMatchingToken(token, 23 /* OpenBracketToken */, sourceFile);\n        if (!token) return void 0;\n        break;\n      // Valid tokens in a type name. Skip.\n      case 28 /* CommaToken */:\n        nTypeArguments++;\n        break;\n      case 39 /* EqualsGreaterThanToken */:\n      // falls through\n      case 80 /* Identifier */:\n      case 11 /* StringLiteral */:\n      case 9 /* NumericLiteral */:\n      case 10 /* BigIntLiteral */:\n      case 112 /* TrueKeyword */:\n      case 97 /* FalseKeyword */:\n      // falls through\n      case 114 /* TypeOfKeyword */:\n      case 96 /* ExtendsKeyword */:\n      case 143 /* KeyOfKeyword */:\n      case 25 /* DotToken */:\n      case 52 /* BarToken */:\n      case 58 /* QuestionToken */:\n      case 59 /* ColonToken */:\n        break;\n      default:\n        if (isTypeNode(token)) {\n          break;\n        }\n        return void 0;\n    }\n    token = findPrecedingToken(token.getFullStart(), sourceFile);\n  }\n  return void 0;\n}\nfunction isInComment(sourceFile, position, tokenAtPosition) {\n  return ts_formatting_exports.getRangeOfEnclosingComment(\n    sourceFile,\n    position,\n    /*precedingToken*/\n    void 0,\n    tokenAtPosition\n  );\n}\nfunction hasDocComment(sourceFile, position) {\n  const token = getTokenAtPosition(sourceFile, position);\n  return !!findAncestor(token, isJSDoc);\n}\nfunction nodeHasTokens(n, sourceFile) {\n  return n.kind === 1 /* EndOfFileToken */ ? !!n.jsDoc : n.getWidth(sourceFile) !== 0;\n}\nfunction getNodeModifiers(node, excludeFlags = 0 /* None */) {\n  const result = [];\n  const flags = isDeclaration(node) ? getCombinedNodeFlagsAlwaysIncludeJSDoc(node) & ~excludeFlags : 0 /* None */;\n  if (flags & 2 /* Private */) result.push(\"private\" /* privateMemberModifier */);\n  if (flags & 4 /* Protected */) result.push(\"protected\" /* protectedMemberModifier */);\n  if (flags & 1 /* Public */) result.push(\"public\" /* publicMemberModifier */);\n  if (flags & 256 /* Static */ || isClassStaticBlockDeclaration(node)) result.push(\"static\" /* staticModifier */);\n  if (flags & 64 /* Abstract */) result.push(\"abstract\" /* abstractModifier */);\n  if (flags & 32 /* Export */) result.push(\"export\" /* exportedModifier */);\n  if (flags & 65536 /* Deprecated */) result.push(\"deprecated\" /* deprecatedModifier */);\n  if (node.flags & 33554432 /* Ambient */) result.push(\"declare\" /* ambientModifier */);\n  if (node.kind === 278 /* ExportAssignment */) result.push(\"export\" /* exportedModifier */);\n  return result.length > 0 ? result.join(\",\") : \"\" /* none */;\n}\nfunction getTypeArgumentOrTypeParameterList(node) {\n  if (node.kind === 184 /* TypeReference */ || node.kind === 214 /* CallExpression */) {\n    return node.typeArguments;\n  }\n  if (isFunctionLike(node) || node.kind === 264 /* ClassDeclaration */ || node.kind === 265 /* InterfaceDeclaration */) {\n    return node.typeParameters;\n  }\n  return void 0;\n}\nfunction isComment(kind) {\n  return kind === 2 /* SingleLineCommentTrivia */ || kind === 3 /* MultiLineCommentTrivia */;\n}\nfunction isStringOrRegularExpressionOrTemplateLiteral(kind) {\n  if (kind === 11 /* StringLiteral */ || kind === 14 /* RegularExpressionLiteral */ || isTemplateLiteralKind(kind)) {\n    return true;\n  }\n  return false;\n}\nfunction areIntersectedTypesAvoidingStringReduction(checker, t1, t2) {\n  return !!(t1.flags & 4 /* String */) && checker.isEmptyAnonymousObjectType(t2);\n}\nfunction isStringAndEmptyAnonymousObjectIntersection(type) {\n  if (!type.isIntersection()) {\n    return false;\n  }\n  const { types, checker } = type;\n  return types.length === 2 && (areIntersectedTypesAvoidingStringReduction(checker, types[0], types[1]) || areIntersectedTypesAvoidingStringReduction(checker, types[1], types[0]));\n}\nfunction isInsideTemplateLiteral(node, position, sourceFile) {\n  return isTemplateLiteralKind(node.kind) && (node.getStart(sourceFile) < position && position < node.end) || !!node.isUnterminated && position === node.end;\n}\nfunction isAccessibilityModifier(kind) {\n  switch (kind) {\n    case 125 /* PublicKeyword */:\n    case 123 /* PrivateKeyword */:\n    case 124 /* ProtectedKeyword */:\n      return true;\n  }\n  return false;\n}\nfunction cloneCompilerOptions(options) {\n  const result = clone(options);\n  setConfigFileInOptions(result, options && options.configFile);\n  return result;\n}\nfunction isArrayLiteralOrObjectLiteralDestructuringPattern(node) {\n  if (node.kind === 210 /* ArrayLiteralExpression */ || node.kind === 211 /* ObjectLiteralExpression */) {\n    if (node.parent.kind === 227 /* BinaryExpression */ && node.parent.left === node && node.parent.operatorToken.kind === 64 /* EqualsToken */) {\n      return true;\n    }\n    if (node.parent.kind === 251 /* ForOfStatement */ && node.parent.initializer === node) {\n      return true;\n    }\n    if (isArrayLiteralOrObjectLiteralDestructuringPattern(node.parent.kind === 304 /* PropertyAssignment */ ? node.parent.parent : node.parent)) {\n      return true;\n    }\n  }\n  return false;\n}\nfunction isInReferenceComment(sourceFile, position) {\n  return isInReferenceCommentWorker(\n    sourceFile,\n    position,\n    /*shouldBeReference*/\n    true\n  );\n}\nfunction isInNonReferenceComment(sourceFile, position) {\n  return isInReferenceCommentWorker(\n    sourceFile,\n    position,\n    /*shouldBeReference*/\n    false\n  );\n}\nfunction isInReferenceCommentWorker(sourceFile, position, shouldBeReference) {\n  const range = isInComment(\n    sourceFile,\n    position,\n    /*tokenAtPosition*/\n    void 0\n  );\n  return !!range && shouldBeReference === tripleSlashDirectivePrefixRegex.test(sourceFile.text.substring(range.pos, range.end));\n}\nfunction getReplacementSpanForContextToken(contextToken, position) {\n  if (!contextToken) return void 0;\n  switch (contextToken.kind) {\n    case 11 /* StringLiteral */:\n    case 15 /* NoSubstitutionTemplateLiteral */:\n      return createTextSpanFromStringLiteralLikeContent(contextToken, position);\n    default:\n      return createTextSpanFromNode(contextToken);\n  }\n}\nfunction createTextSpanFromNode(node, sourceFile, endNode2) {\n  return createTextSpanFromBounds(node.getStart(sourceFile), (endNode2 || node).getEnd());\n}\nfunction createTextSpanFromStringLiteralLikeContent(node, position) {\n  let replacementEnd = node.getEnd() - 1;\n  if (node.isUnterminated) {\n    if (node.getStart() === replacementEnd) return void 0;\n    replacementEnd = Math.min(position, node.getEnd());\n  }\n  return createTextSpanFromBounds(node.getStart() + 1, replacementEnd);\n}\nfunction createTextRangeFromNode(node, sourceFile) {\n  return createRange(node.getStart(sourceFile), node.end);\n}\nfunction createTextSpanFromRange(range) {\n  return createTextSpanFromBounds(range.pos, range.end);\n}\nfunction createTextRangeFromSpan(span) {\n  return createRange(span.start, span.start + span.length);\n}\nfunction createTextChangeFromStartLength(start, length2, newText) {\n  return createTextChange(createTextSpan(start, length2), newText);\n}\nfunction createTextChange(span, newText) {\n  return { span, newText };\n}\nvar typeKeywords = [\n  133 /* AnyKeyword */,\n  131 /* AssertsKeyword */,\n  163 /* BigIntKeyword */,\n  136 /* BooleanKeyword */,\n  97 /* FalseKeyword */,\n  140 /* InferKeyword */,\n  143 /* KeyOfKeyword */,\n  146 /* NeverKeyword */,\n  106 /* NullKeyword */,\n  150 /* NumberKeyword */,\n  151 /* ObjectKeyword */,\n  148 /* ReadonlyKeyword */,\n  154 /* StringKeyword */,\n  155 /* SymbolKeyword */,\n  114 /* TypeOfKeyword */,\n  112 /* TrueKeyword */,\n  116 /* VoidKeyword */,\n  157 /* UndefinedKeyword */,\n  158 /* UniqueKeyword */,\n  159 /* UnknownKeyword */\n];\nfunction isTypeKeyword(kind) {\n  return contains(typeKeywords, kind);\n}\nfunction isTypeKeywordToken(node) {\n  return node.kind === 156 /* TypeKeyword */;\n}\nfunction isTypeKeywordTokenOrIdentifier(node) {\n  return isTypeKeywordToken(node) || isIdentifier(node) && node.text === \"type\";\n}\nfunction nodeSeenTracker() {\n  const seen = [];\n  return (node) => {\n    const id = getNodeId(node);\n    return !seen[id] && (seen[id] = true);\n  };\n}\nfunction getSnapshotText(snap) {\n  return snap.getText(0, snap.getLength());\n}\nfunction repeatString(str, count) {\n  let result = \"\";\n  for (let i = 0; i < count; i++) {\n    result += str;\n  }\n  return result;\n}\nfunction skipConstraint(type) {\n  return type.isTypeParameter() ? type.getConstraint() || type : type;\n}\nfunction getNameFromPropertyName(name) {\n  return name.kind === 168 /* ComputedPropertyName */ ? isStringOrNumericLiteralLike(name.expression) ? name.expression.text : void 0 : isPrivateIdentifier(name) ? idText(name) : getTextOfIdentifierOrLiteral(name);\n}\nfunction programContainsModules(program) {\n  return program.getSourceFiles().some((s) => !s.isDeclarationFile && !program.isSourceFileFromExternalLibrary(s) && !!(s.externalModuleIndicator || s.commonJsModuleIndicator));\n}\nfunction programContainsEsModules(program) {\n  return program.getSourceFiles().some((s) => !s.isDeclarationFile && !program.isSourceFileFromExternalLibrary(s) && !!s.externalModuleIndicator);\n}\nfunction compilerOptionsIndicateEsModules(compilerOptions) {\n  return !!compilerOptions.module || getEmitScriptTarget(compilerOptions) >= 2 /* ES2015 */ || !!compilerOptions.noEmit;\n}\nfunction createModuleSpecifierResolutionHost(program, host) {\n  return {\n    fileExists: (fileName) => program.fileExists(fileName),\n    getCurrentDirectory: () => host.getCurrentDirectory(),\n    readFile: maybeBind(host, host.readFile),\n    useCaseSensitiveFileNames: maybeBind(host, host.useCaseSensitiveFileNames) || program.useCaseSensitiveFileNames,\n    getSymlinkCache: maybeBind(host, host.getSymlinkCache) || program.getSymlinkCache,\n    getModuleSpecifierCache: maybeBind(host, host.getModuleSpecifierCache),\n    getPackageJsonInfoCache: () => {\n      var _a;\n      return (_a = program.getModuleResolutionCache()) == null ? void 0 : _a.getPackageJsonInfoCache();\n    },\n    getGlobalTypingsCacheLocation: maybeBind(host, host.getGlobalTypingsCacheLocation),\n    redirectTargetsMap: program.redirectTargetsMap,\n    getRedirectFromSourceFile: (fileName) => program.getRedirectFromSourceFile(fileName),\n    isSourceOfProjectReferenceRedirect: (fileName) => program.isSourceOfProjectReferenceRedirect(fileName),\n    getNearestAncestorDirectoryWithPackageJson: maybeBind(host, host.getNearestAncestorDirectoryWithPackageJson),\n    getFileIncludeReasons: () => program.getFileIncludeReasons(),\n    getCommonSourceDirectory: () => program.getCommonSourceDirectory(),\n    getDefaultResolutionModeForFile: (file) => program.getDefaultResolutionModeForFile(file),\n    getModeForResolutionAtIndex: (file, index) => program.getModeForResolutionAtIndex(file, index)\n  };\n}\nfunction getModuleSpecifierResolverHost(program, host) {\n  return {\n    ...createModuleSpecifierResolutionHost(program, host),\n    getCommonSourceDirectory: () => program.getCommonSourceDirectory()\n  };\n}\nfunction moduleResolutionUsesNodeModules(moduleResolution) {\n  return moduleResolution === 2 /* Node10 */ || moduleResolution >= 3 /* Node16 */ && moduleResolution <= 99 /* NodeNext */ || moduleResolution === 100 /* Bundler */;\n}\nfunction makeImport(defaultImport, namedImports, moduleSpecifier, quotePreference, isTypeOnly) {\n  return factory.createImportDeclaration(\n    /*modifiers*/\n    void 0,\n    defaultImport || namedImports ? factory.createImportClause(isTypeOnly ? 156 /* TypeKeyword */ : void 0, defaultImport, namedImports && namedImports.length ? factory.createNamedImports(namedImports) : void 0) : void 0,\n    typeof moduleSpecifier === \"string\" ? makeStringLiteral(moduleSpecifier, quotePreference) : moduleSpecifier,\n    /*attributes*/\n    void 0\n  );\n}\nfunction makeStringLiteral(text, quotePreference) {\n  return factory.createStringLiteral(text, quotePreference === 0 /* Single */);\n}\nvar QuotePreference = /* @__PURE__ */ ((QuotePreference6) => {\n  QuotePreference6[QuotePreference6[\"Single\"] = 0] = \"Single\";\n  QuotePreference6[QuotePreference6[\"Double\"] = 1] = \"Double\";\n  return QuotePreference6;\n})(QuotePreference || {});\nfunction quotePreferenceFromString(str, sourceFile) {\n  return isStringDoubleQuoted(str, sourceFile) ? 1 /* Double */ : 0 /* Single */;\n}\nfunction getQuotePreference(sourceFile, preferences) {\n  if (preferences.quotePreference && preferences.quotePreference !== \"auto\") {\n    return preferences.quotePreference === \"single\" ? 0 /* Single */ : 1 /* Double */;\n  } else {\n    const firstModuleSpecifier = isFullSourceFile(sourceFile) && sourceFile.imports && find(sourceFile.imports, (n) => isStringLiteral(n) && !nodeIsSynthesized(n.parent));\n    return firstModuleSpecifier ? quotePreferenceFromString(firstModuleSpecifier, sourceFile) : 1 /* Double */;\n  }\n}\nfunction getQuoteFromPreference(qp) {\n  switch (qp) {\n    case 0 /* Single */:\n      return \"'\";\n    case 1 /* Double */:\n      return '\"';\n    default:\n      return Debug.assertNever(qp);\n  }\n}\nfunction symbolNameNoDefault(symbol) {\n  const escaped = symbolEscapedNameNoDefault(symbol);\n  return escaped === void 0 ? void 0 : unescapeLeadingUnderscores(escaped);\n}\nfunction symbolEscapedNameNoDefault(symbol) {\n  if (symbol.escapedName !== \"default\" /* Default */) {\n    return symbol.escapedName;\n  }\n  return firstDefined(symbol.declarations, (decl) => {\n    const name = getNameOfDeclaration(decl);\n    return name && name.kind === 80 /* Identifier */ ? name.escapedText : void 0;\n  });\n}\nfunction isModuleSpecifierLike(node) {\n  return isStringLiteralLike(node) && (isExternalModuleReference(node.parent) || isImportDeclaration(node.parent) || isJSDocImportTag(node.parent) || isRequireCall(\n    node.parent,\n    /*requireStringLiteralLikeArgument*/\n    false\n  ) && node.parent.arguments[0] === node || isImportCall(node.parent) && node.parent.arguments[0] === node);\n}\nfunction isObjectBindingElementWithoutPropertyName(bindingElement) {\n  return isBindingElement(bindingElement) && isObjectBindingPattern(bindingElement.parent) && isIdentifier(bindingElement.name) && !bindingElement.propertyName;\n}\nfunction getPropertySymbolFromBindingElement(checker, bindingElement) {\n  const typeOfPattern = checker.getTypeAtLocation(bindingElement.parent);\n  return typeOfPattern && checker.getPropertyOfType(typeOfPattern, bindingElement.name.text);\n}\nfunction getParentNodeInSpan(node, file, span) {\n  if (!node) return void 0;\n  while (node.parent) {\n    if (isSourceFile(node.parent) || !spanContainsNode(span, node.parent, file)) {\n      return node;\n    }\n    node = node.parent;\n  }\n}\nfunction spanContainsNode(span, node, file) {\n  return textSpanContainsPosition(span, node.getStart(file)) && node.getEnd() <= textSpanEnd(span);\n}\nfunction findModifier(node, kind) {\n  return canHaveModifiers(node) ? find(node.modifiers, (m) => m.kind === kind) : void 0;\n}\nfunction insertImports(changes, sourceFile, imports, blankLineBetween, preferences) {\n  var _a;\n  const decl = isArray(imports) ? imports[0] : imports;\n  const importKindPredicate = decl.kind === 244 /* VariableStatement */ ? isRequireVariableStatement : isAnyImportSyntax;\n  const existingImportStatements = filter(sourceFile.statements, importKindPredicate);\n  const { comparer, isSorted } = ts_OrganizeImports_exports.getOrganizeImportsStringComparerWithDetection(existingImportStatements, preferences);\n  const sortedNewImports = isArray(imports) ? toSorted(imports, (a, b) => ts_OrganizeImports_exports.compareImportsOrRequireStatements(a, b, comparer)) : [imports];\n  if (!(existingImportStatements == null ? void 0 : existingImportStatements.length)) {\n    if (isFullSourceFile(sourceFile)) {\n      changes.insertNodesAtTopOfFile(sourceFile, sortedNewImports, blankLineBetween);\n    } else {\n      for (const newImport of sortedNewImports) {\n        changes.insertStatementsInNewFile(sourceFile.fileName, [newImport], (_a = getOriginalNode(newImport)) == null ? void 0 : _a.getSourceFile());\n      }\n    }\n    return;\n  }\n  Debug.assert(isFullSourceFile(sourceFile));\n  if (existingImportStatements && isSorted) {\n    for (const newImport of sortedNewImports) {\n      const insertionIndex = ts_OrganizeImports_exports.getImportDeclarationInsertionIndex(existingImportStatements, newImport, comparer);\n      if (insertionIndex === 0) {\n        const options = existingImportStatements[0] === sourceFile.statements[0] ? { leadingTriviaOption: ts_textChanges_exports.LeadingTriviaOption.Exclude } : {};\n        changes.insertNodeBefore(\n          sourceFile,\n          existingImportStatements[0],\n          newImport,\n          /*blankLineBetween*/\n          false,\n          options\n        );\n      } else {\n        const prevImport = existingImportStatements[insertionIndex - 1];\n        changes.insertNodeAfter(sourceFile, prevImport, newImport);\n      }\n    }\n  } else {\n    const lastExistingImport = lastOrUndefined(existingImportStatements);\n    if (lastExistingImport) {\n      changes.insertNodesAfter(sourceFile, lastExistingImport, sortedNewImports);\n    } else {\n      changes.insertNodesAtTopOfFile(sourceFile, sortedNewImports, blankLineBetween);\n    }\n  }\n}\nfunction getTypeKeywordOfTypeOnlyImport(importClause, sourceFile) {\n  Debug.assert(importClause.isTypeOnly);\n  return cast(importClause.getChildAt(0, sourceFile), isTypeKeywordToken);\n}\nfunction textSpansEqual(a, b) {\n  return !!a && !!b && a.start === b.start && a.length === b.length;\n}\nfunction documentSpansEqual(a, b, useCaseSensitiveFileNames2) {\n  return (useCaseSensitiveFileNames2 ? equateStringsCaseSensitive : equateStringsCaseInsensitive)(a.fileName, b.fileName) && textSpansEqual(a.textSpan, b.textSpan);\n}\nfunction getDocumentSpansEqualityComparer(useCaseSensitiveFileNames2) {\n  return (a, b) => documentSpansEqual(a, b, useCaseSensitiveFileNames2);\n}\nfunction forEachUnique(array, callback) {\n  if (array) {\n    for (let i = 0; i < array.length; i++) {\n      if (array.indexOf(array[i]) === i) {\n        const result = callback(array[i], i);\n        if (result) {\n          return result;\n        }\n      }\n    }\n  }\n  return void 0;\n}\nfunction isTextWhiteSpaceLike(text, startPos, endPos) {\n  for (let i = startPos; i < endPos; i++) {\n    if (!isWhiteSpaceLike(text.charCodeAt(i))) {\n      return false;\n    }\n  }\n  return true;\n}\nfunction getMappedLocation(location, sourceMapper, fileExists) {\n  const mapsTo = sourceMapper.tryGetSourcePosition(location);\n  return mapsTo && (!fileExists || fileExists(normalizePath(mapsTo.fileName)) ? mapsTo : void 0);\n}\nfunction getMappedDocumentSpan(documentSpan, sourceMapper, fileExists) {\n  const { fileName, textSpan } = documentSpan;\n  const newPosition = getMappedLocation({ fileName, pos: textSpan.start }, sourceMapper, fileExists);\n  if (!newPosition) return void 0;\n  const newEndPosition = getMappedLocation({ fileName, pos: textSpan.start + textSpan.length }, sourceMapper, fileExists);\n  const newLength = newEndPosition ? newEndPosition.pos - newPosition.pos : textSpan.length;\n  return {\n    fileName: newPosition.fileName,\n    textSpan: {\n      start: newPosition.pos,\n      length: newLength\n    },\n    originalFileName: documentSpan.fileName,\n    originalTextSpan: documentSpan.textSpan,\n    contextSpan: getMappedContextSpan(documentSpan, sourceMapper, fileExists),\n    originalContextSpan: documentSpan.contextSpan\n  };\n}\nfunction getMappedContextSpan(documentSpan, sourceMapper, fileExists) {\n  const contextSpanStart = documentSpan.contextSpan && getMappedLocation(\n    { fileName: documentSpan.fileName, pos: documentSpan.contextSpan.start },\n    sourceMapper,\n    fileExists\n  );\n  const contextSpanEnd = documentSpan.contextSpan && getMappedLocation(\n    { fileName: documentSpan.fileName, pos: documentSpan.contextSpan.start + documentSpan.contextSpan.length },\n    sourceMapper,\n    fileExists\n  );\n  return contextSpanStart && contextSpanEnd ? { start: contextSpanStart.pos, length: contextSpanEnd.pos - contextSpanStart.pos } : void 0;\n}\nfunction isFirstDeclarationOfSymbolParameter(symbol) {\n  const declaration = symbol.declarations ? firstOrUndefined(symbol.declarations) : void 0;\n  return !!findAncestor(declaration, (n) => isParameter(n) ? true : isBindingElement(n) || isObjectBindingPattern(n) || isArrayBindingPattern(n) ? false : \"quit\");\n}\nvar displayPartWriterCache = /* @__PURE__ */ new Map();\nfunction getDisplayPartWriter(maximumLength) {\n  maximumLength = maximumLength || defaultMaximumTruncationLength;\n  if (!displayPartWriterCache.has(maximumLength)) {\n    displayPartWriterCache.set(maximumLength, getDisplayPartWriterWorker(maximumLength));\n  }\n  return displayPartWriterCache.get(maximumLength);\n}\nfunction getDisplayPartWriterWorker(maximumLength) {\n  const absoluteMaximumLength = maximumLength * 10;\n  let displayParts;\n  let lineStart;\n  let indent3;\n  let length2;\n  resetWriter();\n  const unknownWrite = (text) => writeKind(text, 17 /* text */);\n  return {\n    displayParts: () => {\n      const finalText = displayParts.length && displayParts[displayParts.length - 1].text;\n      if (length2 > absoluteMaximumLength && finalText && finalText !== \"...\") {\n        if (!isWhiteSpaceLike(finalText.charCodeAt(finalText.length - 1))) {\n          displayParts.push(displayPart(\" \", 16 /* space */));\n        }\n        displayParts.push(displayPart(\"...\", 15 /* punctuation */));\n      }\n      return displayParts;\n    },\n    writeKeyword: (text) => writeKind(text, 5 /* keyword */),\n    writeOperator: (text) => writeKind(text, 12 /* operator */),\n    writePunctuation: (text) => writeKind(text, 15 /* punctuation */),\n    writeTrailingSemicolon: (text) => writeKind(text, 15 /* punctuation */),\n    writeSpace: (text) => writeKind(text, 16 /* space */),\n    writeStringLiteral: (text) => writeKind(text, 8 /* stringLiteral */),\n    writeParameter: (text) => writeKind(text, 13 /* parameterName */),\n    writeProperty: (text) => writeKind(text, 14 /* propertyName */),\n    writeLiteral: (text) => writeKind(text, 8 /* stringLiteral */),\n    writeSymbol,\n    writeLine,\n    write: unknownWrite,\n    writeComment: unknownWrite,\n    getText: () => \"\",\n    getTextPos: () => 0,\n    getColumn: () => 0,\n    getLine: () => 0,\n    isAtStartOfLine: () => false,\n    hasTrailingWhitespace: () => false,\n    hasTrailingComment: () => false,\n    rawWrite: notImplemented,\n    getIndent: () => indent3,\n    increaseIndent: () => {\n      indent3++;\n    },\n    decreaseIndent: () => {\n      indent3--;\n    },\n    clear: resetWriter\n  };\n  function writeIndent() {\n    if (length2 > absoluteMaximumLength) return;\n    if (lineStart) {\n      const indentString = getIndentString(indent3);\n      if (indentString) {\n        length2 += indentString.length;\n        displayParts.push(displayPart(indentString, 16 /* space */));\n      }\n      lineStart = false;\n    }\n  }\n  function writeKind(text, kind) {\n    if (length2 > absoluteMaximumLength) return;\n    writeIndent();\n    length2 += text.length;\n    displayParts.push(displayPart(text, kind));\n  }\n  function writeSymbol(text, symbol) {\n    if (length2 > absoluteMaximumLength) return;\n    writeIndent();\n    length2 += text.length;\n    displayParts.push(symbolPart(text, symbol));\n  }\n  function writeLine() {\n    if (length2 > absoluteMaximumLength) return;\n    length2 += 1;\n    displayParts.push(lineBreakPart());\n    lineStart = true;\n  }\n  function resetWriter() {\n    displayParts = [];\n    lineStart = true;\n    indent3 = 0;\n    length2 = 0;\n  }\n}\nfunction symbolPart(text, symbol) {\n  return displayPart(text, displayPartKind(symbol));\n  function displayPartKind(symbol2) {\n    const flags = symbol2.flags;\n    if (flags & 3 /* Variable */) {\n      return isFirstDeclarationOfSymbolParameter(symbol2) ? 13 /* parameterName */ : 9 /* localName */;\n    }\n    if (flags & 4 /* Property */) return 14 /* propertyName */;\n    if (flags & 32768 /* GetAccessor */) return 14 /* propertyName */;\n    if (flags & 65536 /* SetAccessor */) return 14 /* propertyName */;\n    if (flags & 8 /* EnumMember */) return 19 /* enumMemberName */;\n    if (flags & 16 /* Function */) return 20 /* functionName */;\n    if (flags & 32 /* Class */) return 1 /* className */;\n    if (flags & 64 /* Interface */) return 4 /* interfaceName */;\n    if (flags & 384 /* Enum */) return 2 /* enumName */;\n    if (flags & 1536 /* Module */) return 11 /* moduleName */;\n    if (flags & 8192 /* Method */) return 10 /* methodName */;\n    if (flags & 262144 /* TypeParameter */) return 18 /* typeParameterName */;\n    if (flags & 524288 /* TypeAlias */) return 0 /* aliasName */;\n    if (flags & 2097152 /* Alias */) return 0 /* aliasName */;\n    return 17 /* text */;\n  }\n}\nfunction displayPart(text, kind) {\n  return { text, kind: SymbolDisplayPartKind[kind] };\n}\nfunction spacePart() {\n  return displayPart(\" \", 16 /* space */);\n}\nfunction keywordPart(kind) {\n  return displayPart(tokenToString(kind), 5 /* keyword */);\n}\nfunction punctuationPart(kind) {\n  return displayPart(tokenToString(kind), 15 /* punctuation */);\n}\nfunction operatorPart(kind) {\n  return displayPart(tokenToString(kind), 12 /* operator */);\n}\nfunction parameterNamePart(text) {\n  return displayPart(text, 13 /* parameterName */);\n}\nfunction propertyNamePart(text) {\n  return displayPart(text, 14 /* propertyName */);\n}\nfunction textOrKeywordPart(text) {\n  const kind = stringToToken(text);\n  return kind === void 0 ? textPart(text) : keywordPart(kind);\n}\nfunction textPart(text) {\n  return displayPart(text, 17 /* text */);\n}\nfunction typeAliasNamePart(text) {\n  return displayPart(text, 0 /* aliasName */);\n}\nfunction typeParameterNamePart(text) {\n  return displayPart(text, 18 /* typeParameterName */);\n}\nfunction linkTextPart(text) {\n  return displayPart(text, 24 /* linkText */);\n}\nfunction linkNamePart(text, target) {\n  return {\n    text,\n    kind: SymbolDisplayPartKind[23 /* linkName */],\n    target: {\n      fileName: getSourceFileOfNode(target).fileName,\n      textSpan: createTextSpanFromNode(target)\n    }\n  };\n}\nfunction linkPart(text) {\n  return displayPart(text, 22 /* link */);\n}\nfunction buildLinkParts(link, checker) {\n  var _a;\n  const prefix = isJSDocLink(link) ? \"link\" : isJSDocLinkCode(link) ? \"linkcode\" : \"linkplain\";\n  const parts = [linkPart(`{@${prefix} `)];\n  if (!link.name) {\n    if (link.text) {\n      parts.push(linkTextPart(link.text));\n    }\n  } else {\n    const symbol = checker == null ? void 0 : checker.getSymbolAtLocation(link.name);\n    const targetSymbol = symbol && checker ? getSymbolTarget(symbol, checker) : void 0;\n    const suffix = findLinkNameEnd(link.text);\n    const name = getTextOfNode(link.name) + link.text.slice(0, suffix);\n    const text = skipSeparatorFromLinkText(link.text.slice(suffix));\n    const decl = (targetSymbol == null ? void 0 : targetSymbol.valueDeclaration) || ((_a = targetSymbol == null ? void 0 : targetSymbol.declarations) == null ? void 0 : _a[0]);\n    if (decl) {\n      parts.push(linkNamePart(name, decl));\n      if (text) parts.push(linkTextPart(text));\n    } else {\n      const separator = suffix === 0 || link.text.charCodeAt(suffix) === 124 /* bar */ && name.charCodeAt(name.length - 1) !== 32 /* space */ ? \" \" : \"\";\n      parts.push(linkTextPart(name + separator + text));\n    }\n  }\n  parts.push(linkPart(\"}\"));\n  return parts;\n}\nfunction skipSeparatorFromLinkText(text) {\n  let pos = 0;\n  if (text.charCodeAt(pos++) === 124 /* bar */) {\n    while (pos < text.length && text.charCodeAt(pos) === 32 /* space */) pos++;\n    return text.slice(pos);\n  }\n  return text;\n}\nfunction findLinkNameEnd(text) {\n  let pos = text.indexOf(\"://\");\n  if (pos === 0) {\n    while (pos < text.length && text.charCodeAt(pos) !== 124 /* bar */) pos++;\n    return pos;\n  }\n  if (text.indexOf(\"()\") === 0) return 2;\n  if (text.charAt(0) === \"<\") {\n    let brackets2 = 0;\n    let i = 0;\n    while (i < text.length) {\n      if (text[i] === \"<\") brackets2++;\n      if (text[i] === \">\") brackets2--;\n      i++;\n      if (!brackets2) return i;\n    }\n  }\n  return 0;\n}\nvar lineFeed2 = \"\\n\";\nfunction getNewLineOrDefaultFromHost(host, formatSettings) {\n  var _a;\n  return (formatSettings == null ? void 0 : formatSettings.newLineCharacter) || ((_a = host.getNewLine) == null ? void 0 : _a.call(host)) || lineFeed2;\n}\nfunction lineBreakPart() {\n  return displayPart(\"\\n\", 6 /* lineBreak */);\n}\nfunction mapToDisplayParts(writeDisplayParts, maximumLength) {\n  const displayPartWriter = getDisplayPartWriter(maximumLength);\n  try {\n    writeDisplayParts(displayPartWriter);\n    return displayPartWriter.displayParts();\n  } finally {\n    displayPartWriter.clear();\n  }\n}\nfunction typeToDisplayParts(typechecker, type, enclosingDeclaration, flags = 0 /* None */, maximumLength, verbosityLevel, out) {\n  return mapToDisplayParts((writer) => {\n    typechecker.writeType(type, enclosingDeclaration, flags | 1024 /* MultilineObjectLiterals */ | 16384 /* UseAliasDefinedOutsideCurrentScope */, writer, maximumLength, verbosityLevel, out);\n  }, maximumLength);\n}\nfunction symbolToDisplayParts(typeChecker, symbol, enclosingDeclaration, meaning, flags = 0 /* None */) {\n  return mapToDisplayParts((writer) => {\n    typeChecker.writeSymbol(symbol, enclosingDeclaration, meaning, flags | 8 /* UseAliasDefinedOutsideCurrentScope */, writer);\n  });\n}\nfunction signatureToDisplayParts(typechecker, signature, enclosingDeclaration, flags = 0 /* None */, maximumLength, verbosityLevel, out) {\n  flags |= 16384 /* UseAliasDefinedOutsideCurrentScope */ | 1024 /* MultilineObjectLiterals */ | 32 /* WriteTypeArgumentsOfSignature */ | 8192 /* OmitParameterModifiers */;\n  return mapToDisplayParts((writer) => {\n    typechecker.writeSignature(\n      signature,\n      enclosingDeclaration,\n      flags,\n      /*kind*/\n      void 0,\n      writer,\n      maximumLength,\n      verbosityLevel,\n      out\n    );\n  }, maximumLength);\n}\nfunction isImportOrExportSpecifierName(location) {\n  return !!location.parent && isImportOrExportSpecifier(location.parent) && location.parent.propertyName === location;\n}\nfunction getScriptKind(fileName, host) {\n  return ensureScriptKind(fileName, host.getScriptKind && host.getScriptKind(fileName));\n}\nfunction getSymbolTarget(symbol, checker) {\n  let next = symbol;\n  while (isAliasSymbol(next) || isTransientSymbol(next) && next.links.target) {\n    if (isTransientSymbol(next) && next.links.target) {\n      next = next.links.target;\n    } else {\n      next = skipAlias(next, checker);\n    }\n  }\n  return next;\n}\nfunction isAliasSymbol(symbol) {\n  return (symbol.flags & 2097152 /* Alias */) !== 0;\n}\nfunction getUniqueSymbolId(symbol, checker) {\n  return getSymbolId(skipAlias(symbol, checker));\n}\nfunction getFirstNonSpaceCharacterPosition(text, position) {\n  while (isWhiteSpaceLike(text.charCodeAt(position))) {\n    position += 1;\n  }\n  return position;\n}\nfunction getPrecedingNonSpaceCharacterPosition(text, position) {\n  while (position > -1 && isWhiteSpaceSingleLine(text.charCodeAt(position))) {\n    position -= 1;\n  }\n  return position + 1;\n}\nfunction copyComments(sourceNode, targetNode) {\n  const sourceFile = sourceNode.getSourceFile();\n  const text = sourceFile.text;\n  if (hasLeadingLineBreak(sourceNode, text)) {\n    copyLeadingComments(sourceNode, targetNode, sourceFile);\n  } else {\n    copyTrailingAsLeadingComments(sourceNode, targetNode, sourceFile);\n  }\n  copyTrailingComments(sourceNode, targetNode, sourceFile);\n}\nfunction hasLeadingLineBreak(node, text) {\n  const start = node.getFullStart();\n  const end = node.getStart();\n  for (let i = start; i < end; i++) {\n    if (text.charCodeAt(i) === 10 /* lineFeed */) return true;\n  }\n  return false;\n}\nfunction getUniqueName(baseName, sourceFile) {\n  let nameText = baseName;\n  for (let i = 1; !isFileLevelUniqueName(sourceFile, nameText); i++) {\n    nameText = `${baseName}_${i}`;\n  }\n  return nameText;\n}\nfunction getRenameLocation(edits, renameFilename, name, preferLastLocation) {\n  let delta = 0;\n  let lastPos = -1;\n  for (const { fileName, textChanges: textChanges2 } of edits) {\n    Debug.assert(fileName === renameFilename);\n    for (const change of textChanges2) {\n      const { span, newText } = change;\n      const index = indexInTextChange(newText, escapeString(name));\n      if (index !== -1) {\n        lastPos = span.start + delta + index;\n        if (!preferLastLocation) {\n          return lastPos;\n        }\n      }\n      delta += newText.length - span.length;\n    }\n  }\n  Debug.assert(preferLastLocation);\n  Debug.assert(lastPos >= 0);\n  return lastPos;\n}\nfunction copyLeadingComments(sourceNode, targetNode, sourceFile, commentKind, hasTrailingNewLine) {\n  forEachLeadingCommentRange(sourceFile.text, sourceNode.pos, getAddCommentsFunction(targetNode, sourceFile, commentKind, hasTrailingNewLine, addSyntheticLeadingComment));\n}\nfunction copyTrailingComments(sourceNode, targetNode, sourceFile, commentKind, hasTrailingNewLine) {\n  forEachTrailingCommentRange(sourceFile.text, sourceNode.end, getAddCommentsFunction(targetNode, sourceFile, commentKind, hasTrailingNewLine, addSyntheticTrailingComment));\n}\nfunction copyTrailingAsLeadingComments(sourceNode, targetNode, sourceFile, commentKind, hasTrailingNewLine) {\n  forEachTrailingCommentRange(sourceFile.text, sourceNode.pos, getAddCommentsFunction(targetNode, sourceFile, commentKind, hasTrailingNewLine, addSyntheticLeadingComment));\n}\nfunction getAddCommentsFunction(targetNode, sourceFile, commentKind, hasTrailingNewLine, cb) {\n  return (pos, end, kind, htnl) => {\n    if (kind === 3 /* MultiLineCommentTrivia */) {\n      pos += 2;\n      end -= 2;\n    } else {\n      pos += 2;\n    }\n    cb(targetNode, commentKind || kind, sourceFile.text.slice(pos, end), hasTrailingNewLine !== void 0 ? hasTrailingNewLine : htnl);\n  };\n}\nfunction indexInTextChange(change, name) {\n  if (startsWith(change, name)) return 0;\n  let idx = change.indexOf(\" \" + name);\n  if (idx === -1) idx = change.indexOf(\".\" + name);\n  if (idx === -1) idx = change.indexOf('\"' + name);\n  return idx === -1 ? -1 : idx + 1;\n}\nfunction needsParentheses(expression) {\n  return isBinaryExpression(expression) && expression.operatorToken.kind === 28 /* CommaToken */ || isObjectLiteralExpression(expression) || (isAsExpression(expression) || isSatisfiesExpression(expression)) && isObjectLiteralExpression(expression.expression);\n}\nfunction getContextualTypeFromParent(node, checker, contextFlags) {\n  const parent2 = walkUpParenthesizedExpressions(node.parent);\n  switch (parent2.kind) {\n    case 215 /* NewExpression */:\n      return checker.getContextualType(parent2, contextFlags);\n    case 227 /* BinaryExpression */: {\n      const { left, operatorToken, right } = parent2;\n      return isEqualityOperatorKind(operatorToken.kind) ? checker.getTypeAtLocation(node === right ? left : right) : checker.getContextualType(node, contextFlags);\n    }\n    case 297 /* CaseClause */:\n      return getSwitchedType(parent2, checker);\n    default:\n      return checker.getContextualType(node, contextFlags);\n  }\n}\nfunction quote(sourceFile, preferences, text) {\n  const quotePreference = getQuotePreference(sourceFile, preferences);\n  const quoted = JSON.stringify(text);\n  return quotePreference === 0 /* Single */ ? `'${stripQuotes(quoted).replace(/'/g, () => \"\\\\'\").replace(/\\\\\"/g, '\"')}'` : quoted;\n}\nfunction isEqualityOperatorKind(kind) {\n  switch (kind) {\n    case 37 /* EqualsEqualsEqualsToken */:\n    case 35 /* EqualsEqualsToken */:\n    case 38 /* ExclamationEqualsEqualsToken */:\n    case 36 /* ExclamationEqualsToken */:\n      return true;\n    default:\n      return false;\n  }\n}\nfunction isStringLiteralOrTemplate(node) {\n  switch (node.kind) {\n    case 11 /* StringLiteral */:\n    case 15 /* NoSubstitutionTemplateLiteral */:\n    case 229 /* TemplateExpression */:\n    case 216 /* TaggedTemplateExpression */:\n      return true;\n    default:\n      return false;\n  }\n}\nfunction hasIndexSignature(type) {\n  return !!type.getStringIndexType() || !!type.getNumberIndexType();\n}\nfunction getSwitchedType(caseClause, checker) {\n  return checker.getTypeAtLocation(caseClause.parent.parent.expression);\n}\nvar ANONYMOUS = \"anonymous function\";\nfunction getTypeNodeIfAccessible(type, enclosingScope, program, host) {\n  const checker = program.getTypeChecker();\n  let typeIsAccessible = true;\n  const notAccessible = () => typeIsAccessible = false;\n  const res = checker.typeToTypeNode(type, enclosingScope, 1 /* NoTruncation */, 8 /* AllowUnresolvedNames */, {\n    trackSymbol: (symbol, declaration, meaning) => {\n      typeIsAccessible = typeIsAccessible && checker.isSymbolAccessible(\n        symbol,\n        declaration,\n        meaning,\n        /*shouldComputeAliasToMarkVisible*/\n        false\n      ).accessibility === 0 /* Accessible */;\n      return !typeIsAccessible;\n    },\n    reportInaccessibleThisError: notAccessible,\n    reportPrivateInBaseOfClassExpression: notAccessible,\n    reportInaccessibleUniqueSymbolError: notAccessible,\n    moduleResolverHost: getModuleSpecifierResolverHost(program, host)\n  });\n  return typeIsAccessible ? res : void 0;\n}\nfunction syntaxRequiresTrailingCommaOrSemicolonOrASI(kind) {\n  return kind === 180 /* CallSignature */ || kind === 181 /* ConstructSignature */ || kind === 182 /* IndexSignature */ || kind === 172 /* PropertySignature */ || kind === 174 /* MethodSignature */;\n}\nfunction syntaxRequiresTrailingFunctionBlockOrSemicolonOrASI(kind) {\n  return kind === 263 /* FunctionDeclaration */ || kind === 177 /* Constructor */ || kind === 175 /* MethodDeclaration */ || kind === 178 /* GetAccessor */ || kind === 179 /* SetAccessor */;\n}\nfunction syntaxRequiresTrailingModuleBlockOrSemicolonOrASI(kind) {\n  return kind === 268 /* ModuleDeclaration */;\n}\nfunction syntaxRequiresTrailingSemicolonOrASI(kind) {\n  return kind === 244 /* VariableStatement */ || kind === 245 /* ExpressionStatement */ || kind === 247 /* DoStatement */ || kind === 252 /* ContinueStatement */ || kind === 253 /* BreakStatement */ || kind === 254 /* ReturnStatement */ || kind === 258 /* ThrowStatement */ || kind === 260 /* DebuggerStatement */ || kind === 173 /* PropertyDeclaration */ || kind === 266 /* TypeAliasDeclaration */ || kind === 273 /* ImportDeclaration */ || kind === 272 /* ImportEqualsDeclaration */ || kind === 279 /* ExportDeclaration */ || kind === 271 /* NamespaceExportDeclaration */ || kind === 278 /* ExportAssignment */;\n}\nvar syntaxMayBeASICandidate = or(\n  syntaxRequiresTrailingCommaOrSemicolonOrASI,\n  syntaxRequiresTrailingFunctionBlockOrSemicolonOrASI,\n  syntaxRequiresTrailingModuleBlockOrSemicolonOrASI,\n  syntaxRequiresTrailingSemicolonOrASI\n);\nfunction nodeIsASICandidate(node, sourceFile) {\n  const lastToken = node.getLastToken(sourceFile);\n  if (lastToken && lastToken.kind === 27 /* SemicolonToken */) {\n    return false;\n  }\n  if (syntaxRequiresTrailingCommaOrSemicolonOrASI(node.kind)) {\n    if (lastToken && lastToken.kind === 28 /* CommaToken */) {\n      return false;\n    }\n  } else if (syntaxRequiresTrailingModuleBlockOrSemicolonOrASI(node.kind)) {\n    const lastChild = last(node.getChildren(sourceFile));\n    if (lastChild && isModuleBlock(lastChild)) {\n      return false;\n    }\n  } else if (syntaxRequiresTrailingFunctionBlockOrSemicolonOrASI(node.kind)) {\n    const lastChild = last(node.getChildren(sourceFile));\n    if (lastChild && isFunctionBlock(lastChild)) {\n      return false;\n    }\n  } else if (!syntaxRequiresTrailingSemicolonOrASI(node.kind)) {\n    return false;\n  }\n  if (node.kind === 247 /* DoStatement */) {\n    return true;\n  }\n  const topNode = findAncestor(node, (ancestor) => !ancestor.parent);\n  const nextToken = findNextToken(node, topNode, sourceFile);\n  if (!nextToken || nextToken.kind === 20 /* CloseBraceToken */) {\n    return true;\n  }\n  const startLine = sourceFile.getLineAndCharacterOfPosition(node.getEnd()).line;\n  const endLine = sourceFile.getLineAndCharacterOfPosition(nextToken.getStart(sourceFile)).line;\n  return startLine !== endLine;\n}\nfunction positionIsASICandidate(pos, context, sourceFile) {\n  const contextAncestor = findAncestor(context, (ancestor) => {\n    if (ancestor.end !== pos) {\n      return \"quit\";\n    }\n    return syntaxMayBeASICandidate(ancestor.kind);\n  });\n  return !!contextAncestor && nodeIsASICandidate(contextAncestor, sourceFile);\n}\nfunction probablyUsesSemicolons(sourceFile) {\n  let withSemicolon = 0;\n  let withoutSemicolon = 0;\n  const nStatementsToObserve = 5;\n  forEachChild(sourceFile, function visit(node) {\n    if (syntaxRequiresTrailingSemicolonOrASI(node.kind)) {\n      const lastToken = node.getLastToken(sourceFile);\n      if ((lastToken == null ? void 0 : lastToken.kind) === 27 /* SemicolonToken */) {\n        withSemicolon++;\n      } else {\n        withoutSemicolon++;\n      }\n    } else if (syntaxRequiresTrailingCommaOrSemicolonOrASI(node.kind)) {\n      const lastToken = node.getLastToken(sourceFile);\n      if ((lastToken == null ? void 0 : lastToken.kind) === 27 /* SemicolonToken */) {\n        withSemicolon++;\n      } else if (lastToken && lastToken.kind !== 28 /* CommaToken */) {\n        const lastTokenLine = getLineAndCharacterOfPosition(sourceFile, lastToken.getStart(sourceFile)).line;\n        const nextTokenLine = getLineAndCharacterOfPosition(sourceFile, getSpanOfTokenAtPosition(sourceFile, lastToken.end).start).line;\n        if (lastTokenLine !== nextTokenLine) {\n          withoutSemicolon++;\n        }\n      }\n    }\n    if (withSemicolon + withoutSemicolon >= nStatementsToObserve) {\n      return true;\n    }\n    return forEachChild(node, visit);\n  });\n  if (withSemicolon === 0 && withoutSemicolon <= 1) {\n    return true;\n  }\n  return withSemicolon / withoutSemicolon > 1 / nStatementsToObserve;\n}\nfunction tryGetDirectories(host, directoryName) {\n  return tryIOAndConsumeErrors(host, host.getDirectories, directoryName) || [];\n}\nfunction tryReadDirectory(host, path, extensions, exclude, include) {\n  return tryIOAndConsumeErrors(host, host.readDirectory, path, extensions, exclude, include) || emptyArray;\n}\nfunction tryFileExists(host, path) {\n  return tryIOAndConsumeErrors(host, host.fileExists, path);\n}\nfunction tryDirectoryExists(host, path) {\n  return tryAndIgnoreErrors(() => directoryProbablyExists(path, host)) || false;\n}\nfunction tryAndIgnoreErrors(cb) {\n  try {\n    return cb();\n  } catch {\n    return void 0;\n  }\n}\nfunction tryIOAndConsumeErrors(host, toApply, ...args) {\n  return tryAndIgnoreErrors(() => toApply && toApply.apply(host, args));\n}\nfunction findPackageJsons(startDirectory, host) {\n  const paths = [];\n  forEachAncestorDirectoryStoppingAtGlobalCache(\n    host,\n    startDirectory,\n    (ancestor) => {\n      const currentConfigPath = combinePaths(ancestor, \"package.json\");\n      if (tryFileExists(host, currentConfigPath)) {\n        paths.push(currentConfigPath);\n      }\n    }\n  );\n  return paths;\n}\nfunction findPackageJson(directory, host) {\n  let packageJson;\n  forEachAncestorDirectoryStoppingAtGlobalCache(\n    host,\n    directory,\n    (ancestor) => {\n      if (ancestor === \"node_modules\") return true;\n      packageJson = findConfigFile(ancestor, (f) => tryFileExists(host, f), \"package.json\");\n      if (packageJson) {\n        return true;\n      }\n    }\n  );\n  return packageJson;\n}\nfunction getPackageJsonsVisibleToFile(fileName, host) {\n  if (!host.fileExists) {\n    return [];\n  }\n  const packageJsons = [];\n  forEachAncestorDirectoryStoppingAtGlobalCache(\n    host,\n    getDirectoryPath(fileName),\n    (ancestor) => {\n      const packageJsonFileName = combinePaths(ancestor, \"package.json\");\n      if (host.fileExists(packageJsonFileName)) {\n        const info = createPackageJsonInfo(packageJsonFileName, host);\n        if (info) {\n          packageJsons.push(info);\n        }\n      }\n    }\n  );\n  return packageJsons;\n}\nfunction createPackageJsonInfo(fileName, host) {\n  if (!host.readFile) {\n    return void 0;\n  }\n  const dependencyKeys = [\"dependencies\", \"devDependencies\", \"optionalDependencies\", \"peerDependencies\"];\n  const stringContent = host.readFile(fileName) || \"\";\n  const content = tryParseJson(stringContent);\n  const info = {};\n  if (content) {\n    for (const key of dependencyKeys) {\n      const dependencies = content[key];\n      if (!dependencies) {\n        continue;\n      }\n      const dependencyMap = /* @__PURE__ */ new Map();\n      for (const packageName in dependencies) {\n        dependencyMap.set(packageName, dependencies[packageName]);\n      }\n      info[key] = dependencyMap;\n    }\n  }\n  const dependencyGroups = [\n    [1 /* Dependencies */, info.dependencies],\n    [2 /* DevDependencies */, info.devDependencies],\n    [8 /* OptionalDependencies */, info.optionalDependencies],\n    [4 /* PeerDependencies */, info.peerDependencies]\n  ];\n  return {\n    ...info,\n    parseable: !!content,\n    fileName,\n    get,\n    has(dependencyName, inGroups) {\n      return !!get(dependencyName, inGroups);\n    }\n  };\n  function get(dependencyName, inGroups = 15 /* All */) {\n    for (const [group2, deps] of dependencyGroups) {\n      if (deps && inGroups & group2) {\n        const dep = deps.get(dependencyName);\n        if (dep !== void 0) {\n          return dep;\n        }\n      }\n    }\n  }\n}\nfunction createPackageJsonImportFilter(fromFile, preferences, host) {\n  const packageJsons = (host.getPackageJsonsVisibleToFile && host.getPackageJsonsVisibleToFile(fromFile.fileName) || getPackageJsonsVisibleToFile(fromFile.fileName, host)).filter((p) => p.parseable);\n  let usesNodeCoreModules;\n  let ambientModuleCache;\n  let sourceFileCache;\n  return {\n    allowsImportingAmbientModule,\n    getSourceFileInfo,\n    allowsImportingSpecifier\n  };\n  function moduleSpecifierIsCoveredByPackageJson(specifier) {\n    const packageName = getNodeModuleRootSpecifier(specifier);\n    for (const packageJson of packageJsons) {\n      if (packageJson.has(packageName) || packageJson.has(getTypesPackageName(packageName))) {\n        return true;\n      }\n    }\n    return false;\n  }\n  function allowsImportingAmbientModule(moduleSymbol, moduleSpecifierResolutionHost) {\n    if (!packageJsons.length || !moduleSymbol.valueDeclaration) {\n      return true;\n    }\n    if (!ambientModuleCache) {\n      ambientModuleCache = /* @__PURE__ */ new Map();\n    } else {\n      const cached = ambientModuleCache.get(moduleSymbol);\n      if (cached !== void 0) {\n        return cached;\n      }\n    }\n    const declaredModuleSpecifier = stripQuotes(moduleSymbol.getName());\n    if (isAllowedCoreNodeModulesImport(declaredModuleSpecifier)) {\n      ambientModuleCache.set(moduleSymbol, true);\n      return true;\n    }\n    const declaringSourceFile = moduleSymbol.valueDeclaration.getSourceFile();\n    const declaringNodeModuleName = getNodeModulesPackageNameFromFileName(declaringSourceFile.fileName, moduleSpecifierResolutionHost);\n    if (typeof declaringNodeModuleName === \"undefined\") {\n      ambientModuleCache.set(moduleSymbol, true);\n      return true;\n    }\n    const result = moduleSpecifierIsCoveredByPackageJson(declaringNodeModuleName) || moduleSpecifierIsCoveredByPackageJson(declaredModuleSpecifier);\n    ambientModuleCache.set(moduleSymbol, result);\n    return result;\n  }\n  function getSourceFileInfo(sourceFile, moduleSpecifierResolutionHost) {\n    if (!packageJsons.length) {\n      return { importable: true, packageName: void 0 };\n    }\n    if (!sourceFileCache) {\n      sourceFileCache = /* @__PURE__ */ new Map();\n    } else {\n      const cached = sourceFileCache.get(sourceFile);\n      if (cached !== void 0) {\n        return cached;\n      }\n    }\n    const packageName = getNodeModulesPackageNameFromFileName(sourceFile.fileName, moduleSpecifierResolutionHost);\n    if (!packageName) {\n      const result2 = { importable: true, packageName };\n      sourceFileCache.set(sourceFile, result2);\n      return result2;\n    }\n    const importable = moduleSpecifierIsCoveredByPackageJson(packageName);\n    const result = { importable, packageName };\n    sourceFileCache.set(sourceFile, result);\n    return result;\n  }\n  function allowsImportingSpecifier(moduleSpecifier) {\n    if (!packageJsons.length || isAllowedCoreNodeModulesImport(moduleSpecifier)) {\n      return true;\n    }\n    if (pathIsRelative(moduleSpecifier) || isRootedDiskPath(moduleSpecifier)) {\n      return true;\n    }\n    return moduleSpecifierIsCoveredByPackageJson(moduleSpecifier);\n  }\n  function isAllowedCoreNodeModulesImport(moduleSpecifier) {\n    if (isFullSourceFile(fromFile) && isSourceFileJS(fromFile) && nodeCoreModules.has(moduleSpecifier)) {\n      if (usesNodeCoreModules === void 0) {\n        usesNodeCoreModules = consumesNodeCoreModules(fromFile);\n      }\n      if (usesNodeCoreModules) {\n        return true;\n      }\n    }\n    return false;\n  }\n  function getNodeModulesPackageNameFromFileName(importedFileName, moduleSpecifierResolutionHost) {\n    if (!importedFileName.includes(\"node_modules\")) {\n      return void 0;\n    }\n    const specifier = ts_moduleSpecifiers_exports.getNodeModulesPackageName(\n      host.getCompilationSettings(),\n      fromFile,\n      importedFileName,\n      moduleSpecifierResolutionHost,\n      preferences\n    );\n    if (!specifier) {\n      return void 0;\n    }\n    if (!pathIsRelative(specifier) && !isRootedDiskPath(specifier)) {\n      return getNodeModuleRootSpecifier(specifier);\n    }\n  }\n  function getNodeModuleRootSpecifier(fullSpecifier) {\n    const components = getPathComponents(getPackageNameFromTypesPackageName(fullSpecifier)).slice(1);\n    if (startsWith(components[0], \"@\")) {\n      return `${components[0]}/${components[1]}`;\n    }\n    return components[0];\n  }\n}\nfunction consumesNodeCoreModules(sourceFile) {\n  return some(sourceFile.imports, ({ text }) => nodeCoreModules.has(text));\n}\nfunction isInsideNodeModules(fileOrDirectory) {\n  return contains(getPathComponents(fileOrDirectory), \"node_modules\");\n}\nfunction isDiagnosticWithLocation(diagnostic) {\n  return diagnostic.file !== void 0 && diagnostic.start !== void 0 && diagnostic.length !== void 0;\n}\nfunction findDiagnosticForNode(node, sortedFileDiagnostics) {\n  const span = createTextSpanFromNode(node);\n  const index = binarySearchKey(sortedFileDiagnostics, span, identity, compareTextSpans);\n  if (index >= 0) {\n    const diagnostic = sortedFileDiagnostics[index];\n    Debug.assertEqual(diagnostic.file, node.getSourceFile(), \"Diagnostics proided to 'findDiagnosticForNode' must be from a single SourceFile\");\n    return cast(diagnostic, isDiagnosticWithLocation);\n  }\n}\nfunction getDiagnosticsWithinSpan(span, sortedFileDiagnostics) {\n  var _a;\n  let index = binarySearchKey(sortedFileDiagnostics, span.start, (diag2) => diag2.start, compareValues);\n  if (index < 0) {\n    index = ~index;\n  }\n  while (((_a = sortedFileDiagnostics[index - 1]) == null ? void 0 : _a.start) === span.start) {\n    index--;\n  }\n  const result = [];\n  const end = textSpanEnd(span);\n  while (true) {\n    const diagnostic = tryCast(sortedFileDiagnostics[index], isDiagnosticWithLocation);\n    if (!diagnostic || diagnostic.start > end) {\n      break;\n    }\n    if (textSpanContainsTextSpan(span, diagnostic)) {\n      result.push(diagnostic);\n    }\n    index++;\n  }\n  return result;\n}\nfunction getRefactorContextSpan({ startPosition, endPosition }) {\n  return createTextSpanFromBounds(startPosition, endPosition === void 0 ? startPosition : endPosition);\n}\nfunction getFixableErrorSpanExpression(sourceFile, span) {\n  const token = getTokenAtPosition(sourceFile, span.start);\n  const expression = findAncestor(token, (node) => {\n    if (node.getStart(sourceFile) < span.start || node.getEnd() > textSpanEnd(span)) {\n      return \"quit\";\n    }\n    return isExpression(node) && textSpansEqual(span, createTextSpanFromNode(node, sourceFile));\n  });\n  return expression;\n}\nfunction mapOneOrMany(valueOrArray, f, resultSelector = identity) {\n  return valueOrArray ? isArray(valueOrArray) ? resultSelector(map(valueOrArray, f)) : f(valueOrArray, 0) : void 0;\n}\nfunction firstOrOnly(valueOrArray) {\n  return isArray(valueOrArray) ? first(valueOrArray) : valueOrArray;\n}\nfunction getNameForExportedSymbol(symbol, scriptTarget, preferCapitalized) {\n  if (symbol.escapedName === \"export=\" /* ExportEquals */ || symbol.escapedName === \"default\" /* Default */) {\n    return getDefaultLikeExportNameFromDeclaration(symbol) || moduleSymbolToValidIdentifier(getSymbolParentOrFail(symbol), scriptTarget, !!preferCapitalized);\n  }\n  return symbol.name;\n}\nfunction getDefaultLikeExportNameFromDeclaration(symbol) {\n  return firstDefined(symbol.declarations, (d) => {\n    var _a, _b, _c;\n    if (isExportAssignment(d)) {\n      return (_a = tryCast(skipOuterExpressions(d.expression), isIdentifier)) == null ? void 0 : _a.text;\n    }\n    if (isExportSpecifier(d) && d.symbol.flags === 2097152 /* Alias */) {\n      return (_b = tryCast(d.propertyName, isIdentifier)) == null ? void 0 : _b.text;\n    }\n    const name = (_c = tryCast(getNameOfDeclaration(d), isIdentifier)) == null ? void 0 : _c.text;\n    if (name) {\n      return name;\n    }\n    if (symbol.parent && !isExternalModuleSymbol(symbol.parent)) {\n      return symbol.parent.getName();\n    }\n  });\n}\nfunction getSymbolParentOrFail(symbol) {\n  var _a;\n  return Debug.checkDefined(\n    symbol.parent,\n    `Symbol parent was undefined. Flags: ${Debug.formatSymbolFlags(symbol.flags)}. Declarations: ${(_a = symbol.declarations) == null ? void 0 : _a.map((d) => {\n      const kind = Debug.formatSyntaxKind(d.kind);\n      const inJS = isInJSFile(d);\n      const { expression } = d;\n      return (inJS ? \"[JS]\" : \"\") + kind + (expression ? ` (expression: ${Debug.formatSyntaxKind(expression.kind)})` : \"\");\n    }).join(\", \")}.`\n  );\n}\nfunction moduleSymbolToValidIdentifier(moduleSymbol, target, forceCapitalize) {\n  return moduleSpecifierToValidIdentifier(removeFileExtension(stripQuotes(moduleSymbol.name)), target, forceCapitalize);\n}\nfunction moduleSpecifierToValidIdentifier(moduleSpecifier, target, forceCapitalize) {\n  const baseName = getBaseFileName(removeSuffix(removeFileExtension(moduleSpecifier), \"/index\"));\n  let res = \"\";\n  let lastCharWasValid = true;\n  const firstCharCode = baseName.charCodeAt(0);\n  if (isIdentifierStart(firstCharCode, target)) {\n    res += String.fromCharCode(firstCharCode);\n    if (forceCapitalize) {\n      res = res.toUpperCase();\n    }\n  } else {\n    lastCharWasValid = false;\n  }\n  for (let i = 1; i < baseName.length; i++) {\n    const ch = baseName.charCodeAt(i);\n    const isValid = isIdentifierPart(ch, target);\n    if (isValid) {\n      let char = String.fromCharCode(ch);\n      if (!lastCharWasValid) {\n        char = char.toUpperCase();\n      }\n      res += char;\n    }\n    lastCharWasValid = isValid;\n  }\n  return !isStringANonContextualKeyword(res) ? res || \"_\" : `_${res}`;\n}\nfunction stringContainsAt(haystack, needle, startIndex) {\n  const needleLength = needle.length;\n  if (needleLength + startIndex > haystack.length) {\n    return false;\n  }\n  for (let i = 0; i < needleLength; i++) {\n    if (needle.charCodeAt(i) !== haystack.charCodeAt(i + startIndex)) return false;\n  }\n  return true;\n}\nfunction startsWithUnderscore(name) {\n  return name.charCodeAt(0) === 95 /* _ */;\n}\nfunction isDeprecatedDeclaration(decl) {\n  return !!(getCombinedNodeFlagsAlwaysIncludeJSDoc(decl) & 65536 /* Deprecated */);\n}\nfunction shouldUseUriStyleNodeCoreModules(file, program) {\n  let decisionFromFile;\n  for (const node of file.imports) {\n    if (nodeCoreModules.has(node.text) && !exclusivelyPrefixedNodeCoreModules.has(node.text)) {\n      if (startsWith(node.text, \"node:\")) {\n        return true;\n      } else {\n        decisionFromFile = false;\n      }\n    }\n  }\n  return decisionFromFile ?? program.usesUriStyleNodeCoreModules;\n}\nfunction getNewLineKind(newLineCharacter) {\n  return newLineCharacter === \"\\n\" ? 1 /* LineFeed */ : 0 /* CarriageReturnLineFeed */;\n}\nfunction diagnosticToString(diag2) {\n  return isArray(diag2) ? formatStringFromArgs(getLocaleSpecificMessage(diag2[0]), diag2.slice(1)) : getLocaleSpecificMessage(diag2);\n}\nfunction getFormatCodeSettingsForWriting({ options }, sourceFile) {\n  const shouldAutoDetectSemicolonPreference = !options.semicolons || options.semicolons === \"ignore\" /* Ignore */;\n  const shouldRemoveSemicolons = options.semicolons === \"remove\" /* Remove */ || shouldAutoDetectSemicolonPreference && !probablyUsesSemicolons(sourceFile);\n  return {\n    ...options,\n    semicolons: shouldRemoveSemicolons ? \"remove\" /* Remove */ : \"ignore\" /* Ignore */\n  };\n}\nfunction jsxModeNeedsExplicitImport(jsx) {\n  return jsx === 2 /* React */ || jsx === 3 /* ReactNative */;\n}\nfunction isSourceFileFromLibrary(program, node) {\n  return program.isSourceFileFromExternalLibrary(node) || program.isSourceFileDefaultLibrary(node);\n}\nfunction newCaseClauseTracker(checker, clauses) {\n  const existingStrings = /* @__PURE__ */ new Set();\n  const existingNumbers = /* @__PURE__ */ new Set();\n  const existingBigInts = /* @__PURE__ */ new Set();\n  for (const clause of clauses) {\n    if (!isDefaultClause(clause)) {\n      const expression = skipParentheses(clause.expression);\n      if (isLiteralExpression(expression)) {\n        switch (expression.kind) {\n          case 15 /* NoSubstitutionTemplateLiteral */:\n          case 11 /* StringLiteral */:\n            existingStrings.add(expression.text);\n            break;\n          case 9 /* NumericLiteral */:\n            existingNumbers.add(parseInt(expression.text));\n            break;\n          case 10 /* BigIntLiteral */:\n            const parsedBigInt = parseBigInt(endsWith(expression.text, \"n\") ? expression.text.slice(0, -1) : expression.text);\n            if (parsedBigInt) {\n              existingBigInts.add(pseudoBigIntToString(parsedBigInt));\n            }\n            break;\n        }\n      } else {\n        const symbol = checker.getSymbolAtLocation(clause.expression);\n        if (symbol && symbol.valueDeclaration && isEnumMember(symbol.valueDeclaration)) {\n          const enumValue = checker.getConstantValue(symbol.valueDeclaration);\n          if (enumValue !== void 0) {\n            addValue(enumValue);\n          }\n        }\n      }\n    }\n  }\n  return {\n    addValue,\n    hasValue\n  };\n  function addValue(value) {\n    switch (typeof value) {\n      case \"string\":\n        existingStrings.add(value);\n        break;\n      case \"number\":\n        existingNumbers.add(value);\n    }\n  }\n  function hasValue(value) {\n    switch (typeof value) {\n      case \"string\":\n        return existingStrings.has(value);\n      case \"number\":\n        return existingNumbers.has(value);\n      case \"object\":\n        return existingBigInts.has(pseudoBigIntToString(value));\n    }\n  }\n}\nfunction fileShouldUseJavaScriptRequire(file, program, host, preferRequire) {\n  var _a;\n  const fileName = typeof file === \"string\" ? file : file.fileName;\n  if (!hasJSFileExtension(fileName)) {\n    return false;\n  }\n  const compilerOptions = typeof file === \"string\" ? program.getCompilerOptions() : program.getCompilerOptionsForFile(file);\n  const moduleKind = getEmitModuleKind(compilerOptions);\n  const sourceFileLike = typeof file === \"string\" ? {\n    fileName: file,\n    impliedNodeFormat: getImpliedNodeFormatForFile(toPath(file, host.getCurrentDirectory(), hostGetCanonicalFileName(host)), (_a = program.getPackageJsonInfoCache) == null ? void 0 : _a.call(program), host, compilerOptions)\n  } : file;\n  const impliedNodeFormat = getImpliedNodeFormatForEmitWorker(sourceFileLike, compilerOptions);\n  if (impliedNodeFormat === 99 /* ESNext */) {\n    return false;\n  }\n  if (impliedNodeFormat === 1 /* CommonJS */) {\n    return true;\n  }\n  if (compilerOptions.verbatimModuleSyntax && moduleKind === 1 /* CommonJS */) {\n    return true;\n  }\n  if (compilerOptions.verbatimModuleSyntax && emitModuleKindIsNonNodeESM(moduleKind)) {\n    return false;\n  }\n  if (typeof file === \"object\") {\n    if (file.commonJsModuleIndicator) {\n      return true;\n    }\n    if (file.externalModuleIndicator) {\n      return false;\n    }\n  }\n  return preferRequire;\n}\nfunction isBlockLike(node) {\n  switch (node.kind) {\n    case 242 /* Block */:\n    case 308 /* SourceFile */:\n    case 269 /* ModuleBlock */:\n    case 297 /* CaseClause */:\n      return true;\n    default:\n      return false;\n  }\n}\nfunction createFutureSourceFile(fileName, syntaxModuleIndicator, program, moduleResolutionHost) {\n  var _a;\n  const result = getImpliedNodeFormatForFileWorker(fileName, (_a = program.getPackageJsonInfoCache) == null ? void 0 : _a.call(program), moduleResolutionHost, program.getCompilerOptions());\n  let impliedNodeFormat, packageJsonScope;\n  if (typeof result === \"object\") {\n    impliedNodeFormat = result.impliedNodeFormat;\n    packageJsonScope = result.packageJsonScope;\n  }\n  return {\n    path: toPath(fileName, program.getCurrentDirectory(), program.getCanonicalFileName),\n    fileName,\n    externalModuleIndicator: syntaxModuleIndicator === 99 /* ESNext */ ? true : void 0,\n    commonJsModuleIndicator: syntaxModuleIndicator === 1 /* CommonJS */ ? true : void 0,\n    impliedNodeFormat,\n    packageJsonScope,\n    statements: emptyArray,\n    imports: emptyArray\n  };\n}\n\n// src/services/exportInfoMap.ts\nvar ImportKind = /* @__PURE__ */ ((ImportKind2) => {\n  ImportKind2[ImportKind2[\"Named\"] = 0] = \"Named\";\n  ImportKind2[ImportKind2[\"Default\"] = 1] = \"Default\";\n  ImportKind2[ImportKind2[\"Namespace\"] = 2] = \"Namespace\";\n  ImportKind2[ImportKind2[\"CommonJS\"] = 3] = \"CommonJS\";\n  return ImportKind2;\n})(ImportKind || {});\nvar ExportKind = /* @__PURE__ */ ((ExportKind3) => {\n  ExportKind3[ExportKind3[\"Named\"] = 0] = \"Named\";\n  ExportKind3[ExportKind3[\"Default\"] = 1] = \"Default\";\n  ExportKind3[ExportKind3[\"ExportEquals\"] = 2] = \"ExportEquals\";\n  ExportKind3[ExportKind3[\"UMD\"] = 3] = \"UMD\";\n  ExportKind3[ExportKind3[\"Module\"] = 4] = \"Module\";\n  return ExportKind3;\n})(ExportKind || {});\nfunction createCacheableExportInfoMap(host) {\n  let exportInfoId = 1;\n  const exportInfo = createMultiMap();\n  const symbols = /* @__PURE__ */ new Map();\n  const packages = /* @__PURE__ */ new Map();\n  let usableByFileName;\n  const cache = {\n    isUsableByFile: (importingFile) => importingFile === usableByFileName,\n    isEmpty: () => !exportInfo.size,\n    clear: () => {\n      exportInfo.clear();\n      symbols.clear();\n      usableByFileName = void 0;\n    },\n    add: (importingFile, symbol, symbolTableKey, moduleSymbol, moduleFile, exportKind, isFromPackageJson, checker) => {\n      if (importingFile !== usableByFileName) {\n        cache.clear();\n        usableByFileName = importingFile;\n      }\n      let packageName;\n      if (moduleFile) {\n        const nodeModulesPathParts = getNodeModulePathParts(moduleFile.fileName);\n        if (nodeModulesPathParts) {\n          const { topLevelNodeModulesIndex, topLevelPackageNameIndex, packageRootIndex } = nodeModulesPathParts;\n          packageName = unmangleScopedPackageName(getPackageNameFromTypesPackageName(moduleFile.fileName.substring(topLevelPackageNameIndex + 1, packageRootIndex)));\n          if (startsWith(importingFile, moduleFile.path.substring(0, topLevelNodeModulesIndex))) {\n            const prevDeepestNodeModulesPath = packages.get(packageName);\n            const nodeModulesPath = moduleFile.fileName.substring(0, topLevelPackageNameIndex + 1);\n            if (prevDeepestNodeModulesPath) {\n              const prevDeepestNodeModulesIndex = prevDeepestNodeModulesPath.indexOf(nodeModulesPathPart);\n              if (topLevelNodeModulesIndex > prevDeepestNodeModulesIndex) {\n                packages.set(packageName, nodeModulesPath);\n              }\n            } else {\n              packages.set(packageName, nodeModulesPath);\n            }\n          }\n        }\n      }\n      const isDefault = exportKind === 1 /* Default */;\n      const namedSymbol = isDefault && getLocalSymbolForExportDefault(symbol) || symbol;\n      const names = exportKind === 0 /* Named */ || isExternalModuleSymbol(namedSymbol) ? unescapeLeadingUnderscores(symbolTableKey) : getNamesForExportedSymbol(\n        namedSymbol,\n        checker,\n        /*scriptTarget*/\n        void 0\n      );\n      const symbolName2 = typeof names === \"string\" ? names : names[0];\n      const capitalizedSymbolName = typeof names === \"string\" ? void 0 : names[1];\n      const moduleName = stripQuotes(moduleSymbol.name);\n      const id = exportInfoId++;\n      const target = skipAlias(symbol, checker);\n      const storedSymbol = symbol.flags & 33554432 /* Transient */ ? void 0 : symbol;\n      const storedModuleSymbol = moduleSymbol.flags & 33554432 /* Transient */ ? void 0 : moduleSymbol;\n      if (!storedSymbol || !storedModuleSymbol) symbols.set(id, [symbol, moduleSymbol]);\n      exportInfo.add(key(symbolName2, symbol, isExternalModuleNameRelative(moduleName) ? void 0 : moduleName, checker), {\n        id,\n        symbolTableKey,\n        symbolName: symbolName2,\n        capitalizedSymbolName,\n        moduleName,\n        moduleFile,\n        moduleFileName: moduleFile == null ? void 0 : moduleFile.fileName,\n        packageName,\n        exportKind,\n        targetFlags: target.flags,\n        isFromPackageJson,\n        symbol: storedSymbol,\n        moduleSymbol: storedModuleSymbol\n      });\n    },\n    get: (importingFile, key2) => {\n      if (importingFile !== usableByFileName) return;\n      const result = exportInfo.get(key2);\n      return result == null ? void 0 : result.map(rehydrateCachedInfo);\n    },\n    search: (importingFile, preferCapitalized, matches, action) => {\n      if (importingFile !== usableByFileName) return;\n      return forEachEntry(exportInfo, (info, key2) => {\n        const { symbolName: symbolName2, ambientModuleName } = parseKey(key2);\n        const name = preferCapitalized && info[0].capitalizedSymbolName || symbolName2;\n        if (matches(name, info[0].targetFlags)) {\n          const rehydrated = info.map(rehydrateCachedInfo);\n          const filtered = rehydrated.filter((r, i) => isNotShadowedByDeeperNodeModulesPackage(r, info[i].packageName));\n          if (filtered.length) {\n            const res = action(filtered, name, !!ambientModuleName, key2);\n            if (res !== void 0) return res;\n          }\n        }\n      });\n    },\n    releaseSymbols: () => {\n      symbols.clear();\n    },\n    onFileChanged: (oldSourceFile, newSourceFile, typeAcquisitionEnabled) => {\n      if (fileIsGlobalOnly(oldSourceFile) && fileIsGlobalOnly(newSourceFile)) {\n        return false;\n      }\n      if (usableByFileName && usableByFileName !== newSourceFile.path || // If ATA is enabled, auto-imports uses existing imports to guess whether you want auto-imports from node.\n      // Adding or removing imports from node could change the outcome of that guess, so could change the suggestions list.\n      typeAcquisitionEnabled && consumesNodeCoreModules(oldSourceFile) !== consumesNodeCoreModules(newSourceFile) || // Module agumentation and ambient module changes can add or remove exports available to be auto-imported.\n      // Changes elsewhere in the file can change the *type* of an export in a module augmentation,\n      // but type info is gathered in getCompletionEntryDetails, which doesn't use the cache.\n      !arrayIsEqualTo(oldSourceFile.moduleAugmentations, newSourceFile.moduleAugmentations) || !ambientModuleDeclarationsAreEqual(oldSourceFile, newSourceFile)) {\n        cache.clear();\n        return true;\n      }\n      usableByFileName = newSourceFile.path;\n      return false;\n    }\n  };\n  if (Debug.isDebugging) {\n    Object.defineProperty(cache, \"__cache\", { value: exportInfo });\n  }\n  return cache;\n  function rehydrateCachedInfo(info) {\n    if (info.symbol && info.moduleSymbol) return info;\n    const { id, exportKind, targetFlags, isFromPackageJson, moduleFileName } = info;\n    const [cachedSymbol, cachedModuleSymbol] = symbols.get(id) || emptyArray;\n    if (cachedSymbol && cachedModuleSymbol) {\n      return {\n        symbol: cachedSymbol,\n        moduleSymbol: cachedModuleSymbol,\n        moduleFileName,\n        exportKind,\n        targetFlags,\n        isFromPackageJson\n      };\n    }\n    const checker = (isFromPackageJson ? host.getPackageJsonAutoImportProvider() : host.getCurrentProgram()).getTypeChecker();\n    const moduleSymbol = info.moduleSymbol || cachedModuleSymbol || Debug.checkDefined(\n      info.moduleFile ? checker.getMergedSymbol(info.moduleFile.symbol) : checker.tryFindAmbientModule(info.moduleName)\n    );\n    const symbol = info.symbol || cachedSymbol || Debug.checkDefined(\n      exportKind === 2 /* ExportEquals */ ? checker.resolveExternalModuleSymbol(moduleSymbol) : checker.tryGetMemberInModuleExportsAndProperties(unescapeLeadingUnderscores(info.symbolTableKey), moduleSymbol),\n      `Could not find symbol '${info.symbolName}' by key '${info.symbolTableKey}' in module ${moduleSymbol.name}`\n    );\n    symbols.set(id, [symbol, moduleSymbol]);\n    return {\n      symbol,\n      moduleSymbol,\n      moduleFileName,\n      exportKind,\n      targetFlags,\n      isFromPackageJson\n    };\n  }\n  function key(importedName, symbol, ambientModuleName, checker) {\n    const moduleKey = ambientModuleName || \"\";\n    return `${importedName.length} ${getSymbolId(skipAlias(symbol, checker))} ${importedName} ${moduleKey}`;\n  }\n  function parseKey(key2) {\n    const firstSpace = key2.indexOf(\" \");\n    const secondSpace = key2.indexOf(\" \", firstSpace + 1);\n    const symbolNameLength = parseInt(key2.substring(0, firstSpace), 10);\n    const data = key2.substring(secondSpace + 1);\n    const symbolName2 = data.substring(0, symbolNameLength);\n    const moduleKey = data.substring(symbolNameLength + 1);\n    const ambientModuleName = moduleKey === \"\" ? void 0 : moduleKey;\n    return { symbolName: symbolName2, ambientModuleName };\n  }\n  function fileIsGlobalOnly(file) {\n    return !file.commonJsModuleIndicator && !file.externalModuleIndicator && !file.moduleAugmentations && !file.ambientModuleNames;\n  }\n  function ambientModuleDeclarationsAreEqual(oldSourceFile, newSourceFile) {\n    if (!arrayIsEqualTo(oldSourceFile.ambientModuleNames, newSourceFile.ambientModuleNames)) {\n      return false;\n    }\n    let oldFileStatementIndex = -1;\n    let newFileStatementIndex = -1;\n    for (const ambientModuleName of newSourceFile.ambientModuleNames) {\n      const isMatchingModuleDeclaration = (node) => isNonGlobalAmbientModule(node) && node.name.text === ambientModuleName;\n      oldFileStatementIndex = findIndex(oldSourceFile.statements, isMatchingModuleDeclaration, oldFileStatementIndex + 1);\n      newFileStatementIndex = findIndex(newSourceFile.statements, isMatchingModuleDeclaration, newFileStatementIndex + 1);\n      if (oldSourceFile.statements[oldFileStatementIndex] !== newSourceFile.statements[newFileStatementIndex]) {\n        return false;\n      }\n    }\n    return true;\n  }\n  function isNotShadowedByDeeperNodeModulesPackage(info, packageName) {\n    if (!packageName || !info.moduleFileName) return true;\n    const typingsCacheLocation = host.getGlobalTypingsCacheLocation();\n    if (typingsCacheLocation && startsWith(info.moduleFileName, typingsCacheLocation)) return true;\n    const packageDeepestNodeModulesPath = packages.get(packageName);\n    return !packageDeepestNodeModulesPath || startsWith(info.moduleFileName, packageDeepestNodeModulesPath);\n  }\n}\nfunction isImportable(program, fromFile, toFile, toModule, preferences, packageJsonFilter, moduleSpecifierResolutionHost, moduleSpecifierCache) {\n  var _a;\n  if (!toFile) {\n    let useNodePrefix;\n    const moduleName = stripQuotes(toModule.name);\n    if (nodeCoreModules.has(moduleName) && (useNodePrefix = shouldUseUriStyleNodeCoreModules(fromFile, program)) !== void 0) {\n      return useNodePrefix === startsWith(moduleName, \"node:\");\n    }\n    return !packageJsonFilter || packageJsonFilter.allowsImportingAmbientModule(toModule, moduleSpecifierResolutionHost) || fileContainsPackageImport(fromFile, moduleName);\n  }\n  Debug.assertIsDefined(toFile);\n  if (fromFile === toFile) return false;\n  const cachedResult = moduleSpecifierCache == null ? void 0 : moduleSpecifierCache.get(fromFile.path, toFile.path, preferences, {});\n  if ((cachedResult == null ? void 0 : cachedResult.isBlockedByPackageJsonDependencies) !== void 0) {\n    return !cachedResult.isBlockedByPackageJsonDependencies || !!cachedResult.packageName && fileContainsPackageImport(fromFile, cachedResult.packageName);\n  }\n  const getCanonicalFileName = hostGetCanonicalFileName(moduleSpecifierResolutionHost);\n  const globalTypingsCache = (_a = moduleSpecifierResolutionHost.getGlobalTypingsCacheLocation) == null ? void 0 : _a.call(moduleSpecifierResolutionHost);\n  const hasImportablePath = !!ts_moduleSpecifiers_exports.forEachFileNameOfModule(\n    fromFile.fileName,\n    toFile.fileName,\n    moduleSpecifierResolutionHost,\n    /*preferSymlinks*/\n    false,\n    (toPath3) => {\n      const file = program.getSourceFile(toPath3);\n      return (file === toFile || !file) && isImportablePath(\n        fromFile.fileName,\n        toPath3,\n        getCanonicalFileName,\n        globalTypingsCache,\n        moduleSpecifierResolutionHost\n      );\n    }\n  );\n  if (packageJsonFilter) {\n    const importInfo = hasImportablePath ? packageJsonFilter.getSourceFileInfo(toFile, moduleSpecifierResolutionHost) : void 0;\n    moduleSpecifierCache == null ? void 0 : moduleSpecifierCache.setBlockedByPackageJsonDependencies(fromFile.path, toFile.path, preferences, {}, importInfo == null ? void 0 : importInfo.packageName, !(importInfo == null ? void 0 : importInfo.importable));\n    return !!(importInfo == null ? void 0 : importInfo.importable) || hasImportablePath && !!(importInfo == null ? void 0 : importInfo.packageName) && fileContainsPackageImport(fromFile, importInfo.packageName);\n  }\n  return hasImportablePath;\n}\nfunction fileContainsPackageImport(sourceFile, packageName) {\n  return sourceFile.imports && sourceFile.imports.some((i) => i.text === packageName || i.text.startsWith(packageName + \"/\"));\n}\nfunction isImportablePath(fromPath, toPath3, getCanonicalFileName, globalCachePath, host) {\n  const toNodeModules = forEachAncestorDirectoryStoppingAtGlobalCache(\n    host,\n    toPath3,\n    (ancestor) => getBaseFileName(ancestor) === \"node_modules\" ? ancestor : void 0\n  );\n  const toNodeModulesParent = toNodeModules && getDirectoryPath(getCanonicalFileName(toNodeModules));\n  return toNodeModulesParent === void 0 || startsWith(getCanonicalFileName(fromPath), toNodeModulesParent) || !!globalCachePath && startsWith(getCanonicalFileName(globalCachePath), toNodeModulesParent);\n}\nfunction forEachExternalModuleToImportFrom(program, host, preferences, useAutoImportProvider, cb) {\n  var _a, _b;\n  const useCaseSensitiveFileNames2 = hostUsesCaseSensitiveFileNames(host);\n  const excludePatterns = preferences.autoImportFileExcludePatterns && getIsExcludedPatterns(preferences, useCaseSensitiveFileNames2);\n  forEachExternalModule(program.getTypeChecker(), program.getSourceFiles(), excludePatterns, host, (module2, file) => cb(\n    module2,\n    file,\n    program,\n    /*isFromPackageJson*/\n    false\n  ));\n  const autoImportProvider = useAutoImportProvider && ((_a = host.getPackageJsonAutoImportProvider) == null ? void 0 : _a.call(host));\n  if (autoImportProvider) {\n    const start = timestamp();\n    const checker = program.getTypeChecker();\n    forEachExternalModule(autoImportProvider.getTypeChecker(), autoImportProvider.getSourceFiles(), excludePatterns, host, (module2, file) => {\n      if (file && !program.getSourceFile(file.fileName) || !file && !checker.resolveName(\n        module2.name,\n        /*location*/\n        void 0,\n        1536 /* Module */,\n        /*excludeGlobals*/\n        false\n      )) {\n        cb(\n          module2,\n          file,\n          autoImportProvider,\n          /*isFromPackageJson*/\n          true\n        );\n      }\n    });\n    (_b = host.log) == null ? void 0 : _b.call(host, `forEachExternalModuleToImportFrom autoImportProvider: ${timestamp() - start}`);\n  }\n}\nfunction getIsExcludedPatterns(preferences, useCaseSensitiveFileNames2) {\n  return mapDefined(preferences.autoImportFileExcludePatterns, (spec) => {\n    const pattern = getSubPatternFromSpec(spec, \"\", \"exclude\");\n    return pattern ? getRegexFromPattern(pattern, useCaseSensitiveFileNames2) : void 0;\n  });\n}\nfunction forEachExternalModule(checker, allSourceFiles, excludePatterns, host, cb) {\n  var _a;\n  const isExcluded = excludePatterns && getIsExcluded(excludePatterns, host);\n  for (const ambient of checker.getAmbientModules()) {\n    if (!ambient.name.includes(\"*\") && !(excludePatterns && ((_a = ambient.declarations) == null ? void 0 : _a.every((d) => isExcluded(d.getSourceFile()))))) {\n      cb(\n        ambient,\n        /*sourceFile*/\n        void 0\n      );\n    }\n  }\n  for (const sourceFile of allSourceFiles) {\n    if (isExternalOrCommonJsModule(sourceFile) && !(isExcluded == null ? void 0 : isExcluded(sourceFile))) {\n      cb(checker.getMergedSymbol(sourceFile.symbol), sourceFile);\n    }\n  }\n}\nfunction getIsExcluded(excludePatterns, host) {\n  var _a;\n  const realpathsWithSymlinks = (_a = host.getSymlinkCache) == null ? void 0 : _a.call(host).getSymlinkedDirectoriesByRealpath();\n  return ({ fileName, path }) => {\n    if (excludePatterns.some((p) => p.test(fileName))) return true;\n    if ((realpathsWithSymlinks == null ? void 0 : realpathsWithSymlinks.size) && pathContainsNodeModules(fileName)) {\n      let dir = getDirectoryPath(fileName);\n      return forEachAncestorDirectoryStoppingAtGlobalCache(\n        host,\n        getDirectoryPath(path),\n        (dirPath) => {\n          const symlinks = realpathsWithSymlinks.get(ensureTrailingDirectorySeparator(dirPath));\n          if (symlinks) {\n            return symlinks.some((s) => excludePatterns.some((p) => p.test(fileName.replace(dir, s))));\n          }\n          dir = getDirectoryPath(dir);\n        }\n      ) ?? false;\n    }\n    return false;\n  };\n}\nfunction getIsFileExcluded(host, preferences) {\n  if (!preferences.autoImportFileExcludePatterns) return () => false;\n  return getIsExcluded(getIsExcludedPatterns(preferences, hostUsesCaseSensitiveFileNames(host)), host);\n}\nfunction getExportInfoMap(importingFile, host, program, preferences, cancellationToken) {\n  var _a, _b, _c, _d, _e;\n  const start = timestamp();\n  (_a = host.getPackageJsonAutoImportProvider) == null ? void 0 : _a.call(host);\n  const cache = ((_b = host.getCachedExportInfoMap) == null ? void 0 : _b.call(host)) || createCacheableExportInfoMap({\n    getCurrentProgram: () => program,\n    getPackageJsonAutoImportProvider: () => {\n      var _a2;\n      return (_a2 = host.getPackageJsonAutoImportProvider) == null ? void 0 : _a2.call(host);\n    },\n    getGlobalTypingsCacheLocation: () => {\n      var _a2;\n      return (_a2 = host.getGlobalTypingsCacheLocation) == null ? void 0 : _a2.call(host);\n    }\n  });\n  if (cache.isUsableByFile(importingFile.path)) {\n    (_c = host.log) == null ? void 0 : _c.call(host, \"getExportInfoMap: cache hit\");\n    return cache;\n  }\n  (_d = host.log) == null ? void 0 : _d.call(host, \"getExportInfoMap: cache miss or empty; calculating new results\");\n  let moduleCount = 0;\n  try {\n    forEachExternalModuleToImportFrom(\n      program,\n      host,\n      preferences,\n      /*useAutoImportProvider*/\n      true,\n      (moduleSymbol, moduleFile, program2, isFromPackageJson) => {\n        if (++moduleCount % 100 === 0) cancellationToken == null ? void 0 : cancellationToken.throwIfCancellationRequested();\n        const seenExports = /* @__PURE__ */ new Set();\n        const checker = program2.getTypeChecker();\n        const defaultInfo = getDefaultLikeExportInfo(moduleSymbol, checker);\n        if (defaultInfo && isImportableSymbol(defaultInfo.symbol, checker)) {\n          cache.add(\n            importingFile.path,\n            defaultInfo.symbol,\n            defaultInfo.exportKind === 1 /* Default */ ? \"default\" /* Default */ : \"export=\" /* ExportEquals */,\n            moduleSymbol,\n            moduleFile,\n            defaultInfo.exportKind,\n            isFromPackageJson,\n            checker\n          );\n        }\n        checker.forEachExportAndPropertyOfModule(moduleSymbol, (exported, key) => {\n          if (exported !== (defaultInfo == null ? void 0 : defaultInfo.symbol) && isImportableSymbol(exported, checker) && addToSeen(seenExports, key)) {\n            cache.add(\n              importingFile.path,\n              exported,\n              key,\n              moduleSymbol,\n              moduleFile,\n              0 /* Named */,\n              isFromPackageJson,\n              checker\n            );\n          }\n        });\n      }\n    );\n  } catch (err) {\n    cache.clear();\n    throw err;\n  }\n  (_e = host.log) == null ? void 0 : _e.call(host, `getExportInfoMap: done in ${timestamp() - start} ms`);\n  return cache;\n}\nfunction getDefaultLikeExportInfo(moduleSymbol, checker) {\n  const exportEquals = checker.resolveExternalModuleSymbol(moduleSymbol);\n  if (exportEquals !== moduleSymbol) {\n    const defaultExport2 = checker.tryGetMemberInModuleExports(\"default\" /* Default */, exportEquals);\n    if (defaultExport2) return { symbol: defaultExport2, exportKind: 1 /* Default */ };\n    return { symbol: exportEquals, exportKind: 2 /* ExportEquals */ };\n  }\n  const defaultExport = checker.tryGetMemberInModuleExports(\"default\" /* Default */, moduleSymbol);\n  if (defaultExport) return { symbol: defaultExport, exportKind: 1 /* Default */ };\n}\nfunction isImportableSymbol(symbol, checker) {\n  return !checker.isUndefinedSymbol(symbol) && !checker.isUnknownSymbol(symbol) && !isKnownSymbol(symbol) && !isPrivateIdentifierSymbol(symbol);\n}\nfunction getNamesForExportedSymbol(defaultExport, checker, scriptTarget) {\n  let names;\n  forEachNameOfDefaultExport(defaultExport, checker, scriptTarget, (name, capitalizedName) => {\n    names = capitalizedName ? [name, capitalizedName] : name;\n    return true;\n  });\n  return Debug.checkDefined(names);\n}\nfunction forEachNameOfDefaultExport(defaultExport, checker, scriptTarget, cb) {\n  let chain;\n  let current = defaultExport;\n  const seen = /* @__PURE__ */ new Set();\n  while (current) {\n    const fromDeclaration = getDefaultLikeExportNameFromDeclaration(current);\n    if (fromDeclaration) {\n      const final = cb(fromDeclaration);\n      if (final) return final;\n    }\n    if (current.escapedName !== \"default\" /* Default */ && current.escapedName !== \"export=\" /* ExportEquals */) {\n      const final = cb(current.name);\n      if (final) return final;\n    }\n    chain = append(chain, current);\n    if (!addToSeen(seen, current)) break;\n    current = current.flags & 2097152 /* Alias */ ? checker.getImmediateAliasedSymbol(current) : void 0;\n  }\n  for (const symbol of chain ?? emptyArray) {\n    if (symbol.parent && isExternalModuleSymbol(symbol.parent)) {\n      const final = cb(\n        moduleSymbolToValidIdentifier(\n          symbol.parent,\n          scriptTarget,\n          /*forceCapitalize*/\n          false\n        ),\n        moduleSymbolToValidIdentifier(\n          symbol.parent,\n          scriptTarget,\n          /*forceCapitalize*/\n          true\n        )\n      );\n      if (final) return final;\n    }\n  }\n}\n\n// src/services/classifier.ts\nfunction createClassifier() {\n  const scanner2 = createScanner(\n    99 /* Latest */,\n    /*skipTrivia*/\n    false\n  );\n  function getClassificationsForLine(text, lexState, syntacticClassifierAbsent) {\n    return convertClassificationsToResult(getEncodedLexicalClassifications(text, lexState, syntacticClassifierAbsent), text);\n  }\n  function getEncodedLexicalClassifications(text, lexState, syntacticClassifierAbsent) {\n    let token = 0 /* Unknown */;\n    let lastNonTriviaToken = 0 /* Unknown */;\n    const templateStack = [];\n    const { prefix, pushTemplate } = getPrefixFromLexState(lexState);\n    text = prefix + text;\n    const offset = prefix.length;\n    if (pushTemplate) {\n      templateStack.push(16 /* TemplateHead */);\n    }\n    scanner2.setText(text);\n    let endOfLineState = 0 /* None */;\n    const spans = [];\n    let angleBracketStack = 0;\n    do {\n      token = scanner2.scan();\n      if (!isTrivia(token)) {\n        handleToken();\n        lastNonTriviaToken = token;\n      }\n      const end = scanner2.getTokenEnd();\n      pushEncodedClassification(scanner2.getTokenStart(), end, offset, classFromKind(token), spans);\n      if (end >= text.length) {\n        const end2 = getNewEndOfLineState(scanner2, token, lastOrUndefined(templateStack));\n        if (end2 !== void 0) {\n          endOfLineState = end2;\n        }\n      }\n    } while (token !== 1 /* EndOfFileToken */);\n    function handleToken() {\n      switch (token) {\n        case 44 /* SlashToken */:\n        case 69 /* SlashEqualsToken */:\n          if (!noRegexTable[lastNonTriviaToken] && scanner2.reScanSlashToken() === 14 /* RegularExpressionLiteral */) {\n            token = 14 /* RegularExpressionLiteral */;\n          }\n          break;\n        case 30 /* LessThanToken */:\n          if (lastNonTriviaToken === 80 /* Identifier */) {\n            angleBracketStack++;\n          }\n          break;\n        case 32 /* GreaterThanToken */:\n          if (angleBracketStack > 0) {\n            angleBracketStack--;\n          }\n          break;\n        case 133 /* AnyKeyword */:\n        case 154 /* StringKeyword */:\n        case 150 /* NumberKeyword */:\n        case 136 /* BooleanKeyword */:\n        case 155 /* SymbolKeyword */:\n          if (angleBracketStack > 0 && !syntacticClassifierAbsent) {\n            token = 80 /* Identifier */;\n          }\n          break;\n        case 16 /* TemplateHead */:\n          templateStack.push(token);\n          break;\n        case 19 /* OpenBraceToken */:\n          if (templateStack.length > 0) {\n            templateStack.push(token);\n          }\n          break;\n        case 20 /* CloseBraceToken */:\n          if (templateStack.length > 0) {\n            const lastTemplateStackToken = lastOrUndefined(templateStack);\n            if (lastTemplateStackToken === 16 /* TemplateHead */) {\n              token = scanner2.reScanTemplateToken(\n                /*isTaggedTemplate*/\n                false\n              );\n              if (token === 18 /* TemplateTail */) {\n                templateStack.pop();\n              } else {\n                Debug.assertEqual(token, 17 /* TemplateMiddle */, \"Should have been a template middle.\");\n              }\n            } else {\n              Debug.assertEqual(lastTemplateStackToken, 19 /* OpenBraceToken */, \"Should have been an open brace\");\n              templateStack.pop();\n            }\n          }\n          break;\n        default:\n          if (!isKeyword(token)) {\n            break;\n          }\n          if (lastNonTriviaToken === 25 /* DotToken */) {\n            token = 80 /* Identifier */;\n          } else if (isKeyword(lastNonTriviaToken) && isKeyword(token) && !canFollow(lastNonTriviaToken, token)) {\n            token = 80 /* Identifier */;\n          }\n      }\n    }\n    return { endOfLineState, spans };\n  }\n  return { getClassificationsForLine, getEncodedLexicalClassifications };\n}\nvar noRegexTable = arrayToNumericMap(\n  [\n    80 /* Identifier */,\n    11 /* StringLiteral */,\n    9 /* NumericLiteral */,\n    10 /* BigIntLiteral */,\n    14 /* RegularExpressionLiteral */,\n    110 /* ThisKeyword */,\n    46 /* PlusPlusToken */,\n    47 /* MinusMinusToken */,\n    22 /* CloseParenToken */,\n    24 /* CloseBracketToken */,\n    20 /* CloseBraceToken */,\n    112 /* TrueKeyword */,\n    97 /* FalseKeyword */\n  ],\n  (token) => token,\n  () => true\n);\nfunction getNewEndOfLineState(scanner2, token, lastOnTemplateStack) {\n  switch (token) {\n    case 11 /* StringLiteral */: {\n      if (!scanner2.isUnterminated()) return void 0;\n      const tokenText = scanner2.getTokenText();\n      const lastCharIndex = tokenText.length - 1;\n      let numBackslashes = 0;\n      while (tokenText.charCodeAt(lastCharIndex - numBackslashes) === 92 /* backslash */) {\n        numBackslashes++;\n      }\n      if ((numBackslashes & 1) === 0) return void 0;\n      return tokenText.charCodeAt(0) === 34 /* doubleQuote */ ? 3 /* InDoubleQuoteStringLiteral */ : 2 /* InSingleQuoteStringLiteral */;\n    }\n    case 3 /* MultiLineCommentTrivia */:\n      return scanner2.isUnterminated() ? 1 /* InMultiLineCommentTrivia */ : void 0;\n    default:\n      if (isTemplateLiteralKind(token)) {\n        if (!scanner2.isUnterminated()) {\n          return void 0;\n        }\n        switch (token) {\n          case 18 /* TemplateTail */:\n            return 5 /* InTemplateMiddleOrTail */;\n          case 15 /* NoSubstitutionTemplateLiteral */:\n            return 4 /* InTemplateHeadOrNoSubstitutionTemplate */;\n          default:\n            return Debug.fail(\"Only 'NoSubstitutionTemplateLiteral's and 'TemplateTail's can be unterminated; got SyntaxKind #\" + token);\n        }\n      }\n      return lastOnTemplateStack === 16 /* TemplateHead */ ? 6 /* InTemplateSubstitutionPosition */ : void 0;\n  }\n}\nfunction pushEncodedClassification(start, end, offset, classification, result) {\n  if (classification === 8 /* whiteSpace */) {\n    return;\n  }\n  if (start === 0 && offset > 0) {\n    start += offset;\n  }\n  const length2 = end - start;\n  if (length2 > 0) {\n    result.push(start - offset, length2, classification);\n  }\n}\nfunction convertClassificationsToResult(classifications, text) {\n  const entries = [];\n  const dense = classifications.spans;\n  let lastEnd = 0;\n  for (let i = 0; i < dense.length; i += 3) {\n    const start = dense[i];\n    const length2 = dense[i + 1];\n    const type = dense[i + 2];\n    if (lastEnd >= 0) {\n      const whitespaceLength2 = start - lastEnd;\n      if (whitespaceLength2 > 0) {\n        entries.push({ length: whitespaceLength2, classification: 4 /* Whitespace */ });\n      }\n    }\n    entries.push({ length: length2, classification: convertClassification(type) });\n    lastEnd = start + length2;\n  }\n  const whitespaceLength = text.length - lastEnd;\n  if (whitespaceLength > 0) {\n    entries.push({ length: whitespaceLength, classification: 4 /* Whitespace */ });\n  }\n  return { entries, finalLexState: classifications.endOfLineState };\n}\nfunction convertClassification(type) {\n  switch (type) {\n    case 1 /* comment */:\n      return 3 /* Comment */;\n    case 3 /* keyword */:\n      return 1 /* Keyword */;\n    case 4 /* numericLiteral */:\n      return 6 /* NumberLiteral */;\n    case 25 /* bigintLiteral */:\n      return 7 /* BigIntLiteral */;\n    case 5 /* operator */:\n      return 2 /* Operator */;\n    case 6 /* stringLiteral */:\n      return 8 /* StringLiteral */;\n    case 8 /* whiteSpace */:\n      return 4 /* Whitespace */;\n    case 10 /* punctuation */:\n      return 0 /* Punctuation */;\n    case 2 /* identifier */:\n    case 11 /* className */:\n    case 12 /* enumName */:\n    case 13 /* interfaceName */:\n    case 14 /* moduleName */:\n    case 15 /* typeParameterName */:\n    case 16 /* typeAliasName */:\n    case 9 /* text */:\n    case 17 /* parameterName */:\n      return 5 /* Identifier */;\n    default:\n      return void 0;\n  }\n}\nfunction canFollow(keyword1, keyword2) {\n  if (!isAccessibilityModifier(keyword1)) {\n    return true;\n  }\n  switch (keyword2) {\n    case 139 /* GetKeyword */:\n    case 153 /* SetKeyword */:\n    case 137 /* ConstructorKeyword */:\n    case 126 /* StaticKeyword */:\n    case 129 /* AccessorKeyword */:\n      return true;\n    // Allow things like \"public get\", \"public constructor\" and \"public static\".\n    default:\n      return false;\n  }\n}\nfunction getPrefixFromLexState(lexState) {\n  switch (lexState) {\n    case 3 /* InDoubleQuoteStringLiteral */:\n      return { prefix: '\"\\\\\\n' };\n    case 2 /* InSingleQuoteStringLiteral */:\n      return { prefix: \"'\\\\\\n\" };\n    case 1 /* InMultiLineCommentTrivia */:\n      return { prefix: \"/*\\n\" };\n    case 4 /* InTemplateHeadOrNoSubstitutionTemplate */:\n      return { prefix: \"`\\n\" };\n    case 5 /* InTemplateMiddleOrTail */:\n      return { prefix: \"}\\n\", pushTemplate: true };\n    case 6 /* InTemplateSubstitutionPosition */:\n      return { prefix: \"\", pushTemplate: true };\n    case 0 /* None */:\n      return { prefix: \"\" };\n    default:\n      return Debug.assertNever(lexState);\n  }\n}\nfunction isBinaryExpressionOperatorToken(token) {\n  switch (token) {\n    case 42 /* AsteriskToken */:\n    case 44 /* SlashToken */:\n    case 45 /* PercentToken */:\n    case 40 /* PlusToken */:\n    case 41 /* MinusToken */:\n    case 48 /* LessThanLessThanToken */:\n    case 49 /* GreaterThanGreaterThanToken */:\n    case 50 /* GreaterThanGreaterThanGreaterThanToken */:\n    case 30 /* LessThanToken */:\n    case 32 /* GreaterThanToken */:\n    case 33 /* LessThanEqualsToken */:\n    case 34 /* GreaterThanEqualsToken */:\n    case 104 /* InstanceOfKeyword */:\n    case 103 /* InKeyword */:\n    case 130 /* AsKeyword */:\n    case 152 /* SatisfiesKeyword */:\n    case 35 /* EqualsEqualsToken */:\n    case 36 /* ExclamationEqualsToken */:\n    case 37 /* EqualsEqualsEqualsToken */:\n    case 38 /* ExclamationEqualsEqualsToken */:\n    case 51 /* AmpersandToken */:\n    case 53 /* CaretToken */:\n    case 52 /* BarToken */:\n    case 56 /* AmpersandAmpersandToken */:\n    case 57 /* BarBarToken */:\n    case 75 /* BarEqualsToken */:\n    case 74 /* AmpersandEqualsToken */:\n    case 79 /* CaretEqualsToken */:\n    case 71 /* LessThanLessThanEqualsToken */:\n    case 72 /* GreaterThanGreaterThanEqualsToken */:\n    case 73 /* GreaterThanGreaterThanGreaterThanEqualsToken */:\n    case 65 /* PlusEqualsToken */:\n    case 66 /* MinusEqualsToken */:\n    case 67 /* AsteriskEqualsToken */:\n    case 69 /* SlashEqualsToken */:\n    case 70 /* PercentEqualsToken */:\n    case 64 /* EqualsToken */:\n    case 28 /* CommaToken */:\n    case 61 /* QuestionQuestionToken */:\n    case 76 /* BarBarEqualsToken */:\n    case 77 /* AmpersandAmpersandEqualsToken */:\n    case 78 /* QuestionQuestionEqualsToken */:\n      return true;\n    default:\n      return false;\n  }\n}\nfunction isPrefixUnaryExpressionOperatorToken(token) {\n  switch (token) {\n    case 40 /* PlusToken */:\n    case 41 /* MinusToken */:\n    case 55 /* TildeToken */:\n    case 54 /* ExclamationToken */:\n    case 46 /* PlusPlusToken */:\n    case 47 /* MinusMinusToken */:\n      return true;\n    default:\n      return false;\n  }\n}\nfunction classFromKind(token) {\n  if (isKeyword(token)) {\n    return 3 /* keyword */;\n  } else if (isBinaryExpressionOperatorToken(token) || isPrefixUnaryExpressionOperatorToken(token)) {\n    return 5 /* operator */;\n  } else if (token >= 19 /* FirstPunctuation */ && token <= 79 /* LastPunctuation */) {\n    return 10 /* punctuation */;\n  }\n  switch (token) {\n    case 9 /* NumericLiteral */:\n      return 4 /* numericLiteral */;\n    case 10 /* BigIntLiteral */:\n      return 25 /* bigintLiteral */;\n    case 11 /* StringLiteral */:\n      return 6 /* stringLiteral */;\n    case 14 /* RegularExpressionLiteral */:\n      return 7 /* regularExpressionLiteral */;\n    case 7 /* ConflictMarkerTrivia */:\n    case 3 /* MultiLineCommentTrivia */:\n    case 2 /* SingleLineCommentTrivia */:\n      return 1 /* comment */;\n    case 5 /* WhitespaceTrivia */:\n    case 4 /* NewLineTrivia */:\n      return 8 /* whiteSpace */;\n    case 80 /* Identifier */:\n    default:\n      if (isTemplateLiteralKind(token)) {\n        return 6 /* stringLiteral */;\n      }\n      return 2 /* identifier */;\n  }\n}\nfunction getSemanticClassifications(typeChecker, cancellationToken, sourceFile, classifiableNames, span) {\n  return convertClassificationsToSpans(getEncodedSemanticClassifications(typeChecker, cancellationToken, sourceFile, classifiableNames, span));\n}\nfunction checkForClassificationCancellation(cancellationToken, kind) {\n  switch (kind) {\n    case 268 /* ModuleDeclaration */:\n    case 264 /* ClassDeclaration */:\n    case 265 /* InterfaceDeclaration */:\n    case 263 /* FunctionDeclaration */:\n    case 232 /* ClassExpression */:\n    case 219 /* FunctionExpression */:\n    case 220 /* ArrowFunction */:\n      cancellationToken.throwIfCancellationRequested();\n  }\n}\nfunction getEncodedSemanticClassifications(typeChecker, cancellationToken, sourceFile, classifiableNames, span) {\n  const spans = [];\n  sourceFile.forEachChild(function cb(node) {\n    if (!node || !textSpanIntersectsWith(span, node.pos, node.getFullWidth())) {\n      return;\n    }\n    checkForClassificationCancellation(cancellationToken, node.kind);\n    if (isIdentifier(node) && !nodeIsMissing(node) && classifiableNames.has(node.escapedText)) {\n      const symbol = typeChecker.getSymbolAtLocation(node);\n      const type = symbol && classifySymbol(symbol, getMeaningFromLocation(node), typeChecker);\n      if (type) {\n        pushClassification(node.getStart(sourceFile), node.getEnd(), type);\n      }\n    }\n    node.forEachChild(cb);\n  });\n  return { spans, endOfLineState: 0 /* None */ };\n  function pushClassification(start, end, type) {\n    const length2 = end - start;\n    Debug.assert(length2 > 0, `Classification had non-positive length of ${length2}`);\n    spans.push(start);\n    spans.push(length2);\n    spans.push(type);\n  }\n}\nfunction classifySymbol(symbol, meaningAtPosition, checker) {\n  const flags = symbol.getFlags();\n  if ((flags & 2885600 /* Classifiable */) === 0 /* None */) {\n    return void 0;\n  } else if (flags & 32 /* Class */) {\n    return 11 /* className */;\n  } else if (flags & 384 /* Enum */) {\n    return 12 /* enumName */;\n  } else if (flags & 524288 /* TypeAlias */) {\n    return 16 /* typeAliasName */;\n  } else if (flags & 1536 /* Module */) {\n    return meaningAtPosition & 4 /* Namespace */ || meaningAtPosition & 1 /* Value */ && hasValueSideModule(symbol) ? 14 /* moduleName */ : void 0;\n  } else if (flags & 2097152 /* Alias */) {\n    return classifySymbol(checker.getAliasedSymbol(symbol), meaningAtPosition, checker);\n  } else if (meaningAtPosition & 2 /* Type */) {\n    return flags & 64 /* Interface */ ? 13 /* interfaceName */ : flags & 262144 /* TypeParameter */ ? 15 /* typeParameterName */ : void 0;\n  } else {\n    return void 0;\n  }\n}\nfunction hasValueSideModule(symbol) {\n  return some(symbol.declarations, (declaration) => isModuleDeclaration(declaration) && getModuleInstanceState(declaration) === 1 /* Instantiated */);\n}\nfunction getClassificationTypeName(type) {\n  switch (type) {\n    case 1 /* comment */:\n      return \"comment\" /* comment */;\n    case 2 /* identifier */:\n      return \"identifier\" /* identifier */;\n    case 3 /* keyword */:\n      return \"keyword\" /* keyword */;\n    case 4 /* numericLiteral */:\n      return \"number\" /* numericLiteral */;\n    case 25 /* bigintLiteral */:\n      return \"bigint\" /* bigintLiteral */;\n    case 5 /* operator */:\n      return \"operator\" /* operator */;\n    case 6 /* stringLiteral */:\n      return \"string\" /* stringLiteral */;\n    case 8 /* whiteSpace */:\n      return \"whitespace\" /* whiteSpace */;\n    case 9 /* text */:\n      return \"text\" /* text */;\n    case 10 /* punctuation */:\n      return \"punctuation\" /* punctuation */;\n    case 11 /* className */:\n      return \"class name\" /* className */;\n    case 12 /* enumName */:\n      return \"enum name\" /* enumName */;\n    case 13 /* interfaceName */:\n      return \"interface name\" /* interfaceName */;\n    case 14 /* moduleName */:\n      return \"module name\" /* moduleName */;\n    case 15 /* typeParameterName */:\n      return \"type parameter name\" /* typeParameterName */;\n    case 16 /* typeAliasName */:\n      return \"type alias name\" /* typeAliasName */;\n    case 17 /* parameterName */:\n      return \"parameter name\" /* parameterName */;\n    case 18 /* docCommentTagName */:\n      return \"doc comment tag name\" /* docCommentTagName */;\n    case 19 /* jsxOpenTagName */:\n      return \"jsx open tag name\" /* jsxOpenTagName */;\n    case 20 /* jsxCloseTagName */:\n      return \"jsx close tag name\" /* jsxCloseTagName */;\n    case 21 /* jsxSelfClosingTagName */:\n      return \"jsx self closing tag name\" /* jsxSelfClosingTagName */;\n    case 22 /* jsxAttribute */:\n      return \"jsx attribute\" /* jsxAttribute */;\n    case 23 /* jsxText */:\n      return \"jsx text\" /* jsxText */;\n    case 24 /* jsxAttributeStringLiteralValue */:\n      return \"jsx attribute string literal value\" /* jsxAttributeStringLiteralValue */;\n    default:\n      return void 0;\n  }\n}\nfunction convertClassificationsToSpans(classifications) {\n  Debug.assert(classifications.spans.length % 3 === 0);\n  const dense = classifications.spans;\n  const result = [];\n  for (let i = 0; i < dense.length; i += 3) {\n    result.push({\n      textSpan: createTextSpan(dense[i], dense[i + 1]),\n      classificationType: getClassificationTypeName(dense[i + 2])\n    });\n  }\n  return result;\n}\nfunction getSyntacticClassifications(cancellationToken, sourceFile, span) {\n  return convertClassificationsToSpans(getEncodedSyntacticClassifications(cancellationToken, sourceFile, span));\n}\nfunction getEncodedSyntacticClassifications(cancellationToken, sourceFile, span) {\n  const spanStart = span.start;\n  const spanLength = span.length;\n  const triviaScanner = createScanner(\n    99 /* Latest */,\n    /*skipTrivia*/\n    false,\n    sourceFile.languageVariant,\n    sourceFile.text\n  );\n  const mergeConflictScanner = createScanner(\n    99 /* Latest */,\n    /*skipTrivia*/\n    false,\n    sourceFile.languageVariant,\n    sourceFile.text\n  );\n  const result = [];\n  processElement(sourceFile);\n  return { spans: result, endOfLineState: 0 /* None */ };\n  function pushClassification(start, length2, type) {\n    result.push(start);\n    result.push(length2);\n    result.push(type);\n  }\n  function classifyLeadingTriviaAndGetTokenStart(token) {\n    triviaScanner.resetTokenState(token.pos);\n    while (true) {\n      const start = triviaScanner.getTokenEnd();\n      if (!couldStartTrivia(sourceFile.text, start)) {\n        return start;\n      }\n      const kind = triviaScanner.scan();\n      const end = triviaScanner.getTokenEnd();\n      const width = end - start;\n      if (!isTrivia(kind)) {\n        return start;\n      }\n      switch (kind) {\n        case 4 /* NewLineTrivia */:\n        case 5 /* WhitespaceTrivia */:\n          continue;\n        case 2 /* SingleLineCommentTrivia */:\n        case 3 /* MultiLineCommentTrivia */:\n          classifyComment(token, kind, start, width);\n          triviaScanner.resetTokenState(end);\n          continue;\n        case 7 /* ConflictMarkerTrivia */:\n          const text = sourceFile.text;\n          const ch = text.charCodeAt(start);\n          if (ch === 60 /* lessThan */ || ch === 62 /* greaterThan */) {\n            pushClassification(start, width, 1 /* comment */);\n            continue;\n          }\n          Debug.assert(ch === 124 /* bar */ || ch === 61 /* equals */);\n          classifyDisabledMergeCode(text, start, end);\n          break;\n        case 6 /* ShebangTrivia */:\n          break;\n        default:\n          Debug.assertNever(kind);\n      }\n    }\n  }\n  function classifyComment(token, kind, start, width) {\n    if (kind === 3 /* MultiLineCommentTrivia */) {\n      const docCommentAndDiagnostics = parseIsolatedJSDocComment(sourceFile.text, start, width);\n      if (docCommentAndDiagnostics && docCommentAndDiagnostics.jsDoc) {\n        setParent(docCommentAndDiagnostics.jsDoc, token);\n        classifyJSDocComment(docCommentAndDiagnostics.jsDoc);\n        return;\n      }\n    } else if (kind === 2 /* SingleLineCommentTrivia */) {\n      if (tryClassifyTripleSlashComment(start, width)) {\n        return;\n      }\n    }\n    pushCommentRange(start, width);\n  }\n  function pushCommentRange(start, width) {\n    pushClassification(start, width, 1 /* comment */);\n  }\n  function classifyJSDocComment(docComment) {\n    var _a, _b, _c, _d, _e, _f, _g, _h;\n    let pos = docComment.pos;\n    if (docComment.tags) {\n      for (const tag of docComment.tags) {\n        if (tag.pos !== pos) {\n          pushCommentRange(pos, tag.pos - pos);\n        }\n        pushClassification(tag.pos, 1, 10 /* punctuation */);\n        pushClassification(tag.tagName.pos, tag.tagName.end - tag.tagName.pos, 18 /* docCommentTagName */);\n        pos = tag.tagName.end;\n        let commentStart = tag.tagName.end;\n        switch (tag.kind) {\n          case 342 /* JSDocParameterTag */:\n            const param = tag;\n            processJSDocParameterTag(param);\n            commentStart = param.isNameFirst && ((_a = param.typeExpression) == null ? void 0 : _a.end) || param.name.end;\n            break;\n          case 349 /* JSDocPropertyTag */:\n            const prop = tag;\n            commentStart = prop.isNameFirst && ((_b = prop.typeExpression) == null ? void 0 : _b.end) || prop.name.end;\n            break;\n          case 346 /* JSDocTemplateTag */:\n            processJSDocTemplateTag(tag);\n            pos = tag.end;\n            commentStart = tag.typeParameters.end;\n            break;\n          case 347 /* JSDocTypedefTag */:\n            const type = tag;\n            commentStart = ((_c = type.typeExpression) == null ? void 0 : _c.kind) === 310 /* JSDocTypeExpression */ && ((_d = type.fullName) == null ? void 0 : _d.end) || ((_e = type.typeExpression) == null ? void 0 : _e.end) || commentStart;\n            break;\n          case 339 /* JSDocCallbackTag */:\n            commentStart = tag.typeExpression.end;\n            break;\n          case 345 /* JSDocTypeTag */:\n            processElement(tag.typeExpression);\n            pos = tag.end;\n            commentStart = tag.typeExpression.end;\n            break;\n          case 344 /* JSDocThisTag */:\n          case 341 /* JSDocEnumTag */:\n            commentStart = tag.typeExpression.end;\n            break;\n          case 343 /* JSDocReturnTag */:\n            processElement(tag.typeExpression);\n            pos = tag.end;\n            commentStart = ((_f = tag.typeExpression) == null ? void 0 : _f.end) || commentStart;\n            break;\n          case 348 /* JSDocSeeTag */:\n            commentStart = ((_g = tag.name) == null ? void 0 : _g.end) || commentStart;\n            break;\n          case 329 /* JSDocAugmentsTag */:\n          case 330 /* JSDocImplementsTag */:\n            commentStart = tag.class.end;\n            break;\n          case 350 /* JSDocThrowsTag */:\n            processElement(tag.typeExpression);\n            pos = tag.end;\n            commentStart = ((_h = tag.typeExpression) == null ? void 0 : _h.end) || commentStart;\n            break;\n        }\n        if (typeof tag.comment === \"object\") {\n          pushCommentRange(tag.comment.pos, tag.comment.end - tag.comment.pos);\n        } else if (typeof tag.comment === \"string\") {\n          pushCommentRange(commentStart, tag.end - commentStart);\n        }\n      }\n    }\n    if (pos !== docComment.end) {\n      pushCommentRange(pos, docComment.end - pos);\n    }\n    return;\n    function processJSDocParameterTag(tag) {\n      if (tag.isNameFirst) {\n        pushCommentRange(pos, tag.name.pos - pos);\n        pushClassification(tag.name.pos, tag.name.end - tag.name.pos, 17 /* parameterName */);\n        pos = tag.name.end;\n      }\n      if (tag.typeExpression) {\n        pushCommentRange(pos, tag.typeExpression.pos - pos);\n        processElement(tag.typeExpression);\n        pos = tag.typeExpression.end;\n      }\n      if (!tag.isNameFirst) {\n        pushCommentRange(pos, tag.name.pos - pos);\n        pushClassification(tag.name.pos, tag.name.end - tag.name.pos, 17 /* parameterName */);\n        pos = tag.name.end;\n      }\n    }\n  }\n  function tryClassifyTripleSlashComment(start, width) {\n    const tripleSlashXMLCommentRegEx = /^(\\/\\/\\/\\s*)(<)(?:(\\S+)((?:[^/]|\\/[^>])*)(\\/>)?)?/m;\n    const attributeRegex = /(\\s)(\\S+)(\\s*)(=)(\\s*)('[^']+'|\"[^\"]+\")/g;\n    const text = sourceFile.text.substr(start, width);\n    const match = tripleSlashXMLCommentRegEx.exec(text);\n    if (!match) {\n      return false;\n    }\n    if (!match[3] || !(match[3] in commentPragmas)) {\n      return false;\n    }\n    let pos = start;\n    pushCommentRange(pos, match[1].length);\n    pos += match[1].length;\n    pushClassification(pos, match[2].length, 10 /* punctuation */);\n    pos += match[2].length;\n    pushClassification(pos, match[3].length, 21 /* jsxSelfClosingTagName */);\n    pos += match[3].length;\n    const attrText = match[4];\n    let attrPos = pos;\n    while (true) {\n      const attrMatch = attributeRegex.exec(attrText);\n      if (!attrMatch) {\n        break;\n      }\n      const newAttrPos = pos + attrMatch.index + attrMatch[1].length;\n      if (newAttrPos > attrPos) {\n        pushCommentRange(attrPos, newAttrPos - attrPos);\n        attrPos = newAttrPos;\n      }\n      pushClassification(attrPos, attrMatch[2].length, 22 /* jsxAttribute */);\n      attrPos += attrMatch[2].length;\n      if (attrMatch[3].length) {\n        pushCommentRange(attrPos, attrMatch[3].length);\n        attrPos += attrMatch[3].length;\n      }\n      pushClassification(attrPos, attrMatch[4].length, 5 /* operator */);\n      attrPos += attrMatch[4].length;\n      if (attrMatch[5].length) {\n        pushCommentRange(attrPos, attrMatch[5].length);\n        attrPos += attrMatch[5].length;\n      }\n      pushClassification(attrPos, attrMatch[6].length, 24 /* jsxAttributeStringLiteralValue */);\n      attrPos += attrMatch[6].length;\n    }\n    pos += match[4].length;\n    if (pos > attrPos) {\n      pushCommentRange(attrPos, pos - attrPos);\n    }\n    if (match[5]) {\n      pushClassification(pos, match[5].length, 10 /* punctuation */);\n      pos += match[5].length;\n    }\n    const end = start + width;\n    if (pos < end) {\n      pushCommentRange(pos, end - pos);\n    }\n    return true;\n  }\n  function processJSDocTemplateTag(tag) {\n    for (const child of tag.getChildren()) {\n      processElement(child);\n    }\n  }\n  function classifyDisabledMergeCode(text, start, end) {\n    let i;\n    for (i = start; i < end; i++) {\n      if (isLineBreak(text.charCodeAt(i))) {\n        break;\n      }\n    }\n    pushClassification(start, i - start, 1 /* comment */);\n    mergeConflictScanner.resetTokenState(i);\n    while (mergeConflictScanner.getTokenEnd() < end) {\n      classifyDisabledCodeToken();\n    }\n  }\n  function classifyDisabledCodeToken() {\n    const start = mergeConflictScanner.getTokenEnd();\n    const tokenKind = mergeConflictScanner.scan();\n    const end = mergeConflictScanner.getTokenEnd();\n    const type = classifyTokenType(tokenKind);\n    if (type) {\n      pushClassification(start, end - start, type);\n    }\n  }\n  function tryClassifyNode(node) {\n    if (isJSDoc(node)) {\n      return true;\n    }\n    if (nodeIsMissing(node)) {\n      return true;\n    }\n    const classifiedElementName = tryClassifyJsxElementName(node);\n    if (!isToken(node) && node.kind !== 12 /* JsxText */ && classifiedElementName === void 0) {\n      return false;\n    }\n    const tokenStart = node.kind === 12 /* JsxText */ ? node.pos : classifyLeadingTriviaAndGetTokenStart(node);\n    const tokenWidth = node.end - tokenStart;\n    Debug.assert(tokenWidth >= 0);\n    if (tokenWidth > 0) {\n      const type = classifiedElementName || classifyTokenType(node.kind, node);\n      if (type) {\n        pushClassification(tokenStart, tokenWidth, type);\n      }\n    }\n    return true;\n  }\n  function tryClassifyJsxElementName(token) {\n    switch (token.parent && token.parent.kind) {\n      case 287 /* JsxOpeningElement */:\n        if (token.parent.tagName === token) {\n          return 19 /* jsxOpenTagName */;\n        }\n        break;\n      case 288 /* JsxClosingElement */:\n        if (token.parent.tagName === token) {\n          return 20 /* jsxCloseTagName */;\n        }\n        break;\n      case 286 /* JsxSelfClosingElement */:\n        if (token.parent.tagName === token) {\n          return 21 /* jsxSelfClosingTagName */;\n        }\n        break;\n      case 292 /* JsxAttribute */:\n        if (token.parent.name === token) {\n          return 22 /* jsxAttribute */;\n        }\n        break;\n    }\n    return void 0;\n  }\n  function classifyTokenType(tokenKind, token) {\n    if (isKeyword(tokenKind)) {\n      return 3 /* keyword */;\n    }\n    if (tokenKind === 30 /* LessThanToken */ || tokenKind === 32 /* GreaterThanToken */) {\n      if (token && getTypeArgumentOrTypeParameterList(token.parent)) {\n        return 10 /* punctuation */;\n      }\n    }\n    if (isPunctuation(tokenKind)) {\n      if (token) {\n        const parent2 = token.parent;\n        if (tokenKind === 64 /* EqualsToken */) {\n          if (parent2.kind === 261 /* VariableDeclaration */ || parent2.kind === 173 /* PropertyDeclaration */ || parent2.kind === 170 /* Parameter */ || parent2.kind === 292 /* JsxAttribute */) {\n            return 5 /* operator */;\n          }\n        }\n        if (parent2.kind === 227 /* BinaryExpression */ || parent2.kind === 225 /* PrefixUnaryExpression */ || parent2.kind === 226 /* PostfixUnaryExpression */ || parent2.kind === 228 /* ConditionalExpression */) {\n          return 5 /* operator */;\n        }\n      }\n      return 10 /* punctuation */;\n    } else if (tokenKind === 9 /* NumericLiteral */) {\n      return 4 /* numericLiteral */;\n    } else if (tokenKind === 10 /* BigIntLiteral */) {\n      return 25 /* bigintLiteral */;\n    } else if (tokenKind === 11 /* StringLiteral */) {\n      return token && token.parent.kind === 292 /* JsxAttribute */ ? 24 /* jsxAttributeStringLiteralValue */ : 6 /* stringLiteral */;\n    } else if (tokenKind === 14 /* RegularExpressionLiteral */) {\n      return 6 /* stringLiteral */;\n    } else if (isTemplateLiteralKind(tokenKind)) {\n      return 6 /* stringLiteral */;\n    } else if (tokenKind === 12 /* JsxText */) {\n      return 23 /* jsxText */;\n    } else if (tokenKind === 80 /* Identifier */) {\n      if (token) {\n        switch (token.parent.kind) {\n          case 264 /* ClassDeclaration */:\n            if (token.parent.name === token) {\n              return 11 /* className */;\n            }\n            return;\n          case 169 /* TypeParameter */:\n            if (token.parent.name === token) {\n              return 15 /* typeParameterName */;\n            }\n            return;\n          case 265 /* InterfaceDeclaration */:\n            if (token.parent.name === token) {\n              return 13 /* interfaceName */;\n            }\n            return;\n          case 267 /* EnumDeclaration */:\n            if (token.parent.name === token) {\n              return 12 /* enumName */;\n            }\n            return;\n          case 268 /* ModuleDeclaration */:\n            if (token.parent.name === token) {\n              return 14 /* moduleName */;\n            }\n            return;\n          case 170 /* Parameter */:\n            if (token.parent.name === token) {\n              return isThisIdentifier(token) ? 3 /* keyword */ : 17 /* parameterName */;\n            }\n            return;\n        }\n        if (isConstTypeReference(token.parent)) {\n          return 3 /* keyword */;\n        }\n      }\n      return 2 /* identifier */;\n    }\n  }\n  function processElement(element) {\n    if (!element) {\n      return;\n    }\n    if (decodedTextSpanIntersectsWith(spanStart, spanLength, element.pos, element.getFullWidth())) {\n      checkForClassificationCancellation(cancellationToken, element.kind);\n      for (const child of element.getChildren(sourceFile)) {\n        if (!tryClassifyNode(child)) {\n          processElement(child);\n        }\n      }\n    }\n  }\n}\n\n// src/services/documentHighlights.ts\nvar DocumentHighlights;\n((DocumentHighlights3) => {\n  function getDocumentHighlights(program, cancellationToken, sourceFile, position, sourceFilesToSearch) {\n    const node = getTouchingPropertyName(sourceFile, position);\n    if (node.parent && (isJsxOpeningElement(node.parent) && node.parent.tagName === node || isJsxClosingElement(node.parent))) {\n      const { openingElement, closingElement } = node.parent.parent;\n      const highlightSpans = [openingElement, closingElement].map(({ tagName }) => getHighlightSpanForNode(tagName, sourceFile));\n      return [{ fileName: sourceFile.fileName, highlightSpans }];\n    }\n    return getSemanticDocumentHighlights(position, node, program, cancellationToken, sourceFilesToSearch) || getSyntacticDocumentHighlights(node, sourceFile);\n  }\n  DocumentHighlights3.getDocumentHighlights = getDocumentHighlights;\n  function getHighlightSpanForNode(node, sourceFile) {\n    return {\n      fileName: sourceFile.fileName,\n      textSpan: createTextSpanFromNode(node, sourceFile),\n      kind: \"none\" /* none */\n    };\n  }\n  function getSemanticDocumentHighlights(position, node, program, cancellationToken, sourceFilesToSearch) {\n    const sourceFilesSet = new Set(sourceFilesToSearch.map((f) => f.fileName));\n    const referenceEntries = ts_FindAllReferences_exports.getReferenceEntriesForNode(\n      position,\n      node,\n      program,\n      sourceFilesToSearch,\n      cancellationToken,\n      /*options*/\n      void 0,\n      sourceFilesSet\n    );\n    if (!referenceEntries) return void 0;\n    const map2 = arrayToMultiMap(referenceEntries.map(ts_FindAllReferences_exports.toHighlightSpan), (e) => e.fileName, (e) => e.span);\n    const getCanonicalFileName = createGetCanonicalFileName(program.useCaseSensitiveFileNames());\n    return arrayFrom(mapDefinedIterator(map2.entries(), ([fileName, highlightSpans]) => {\n      if (!sourceFilesSet.has(fileName)) {\n        if (!program.redirectTargetsMap.has(toPath(fileName, program.getCurrentDirectory(), getCanonicalFileName))) {\n          return void 0;\n        }\n        const redirectTarget = program.getSourceFile(fileName);\n        const redirect = find(sourceFilesToSearch, (f) => !!f.redirectInfo && f.redirectInfo.redirectTarget === redirectTarget);\n        fileName = redirect.fileName;\n        Debug.assert(sourceFilesSet.has(fileName));\n      }\n      return { fileName, highlightSpans };\n    }));\n  }\n  function getSyntacticDocumentHighlights(node, sourceFile) {\n    const highlightSpans = getHighlightSpans(node, sourceFile);\n    return highlightSpans && [{ fileName: sourceFile.fileName, highlightSpans }];\n  }\n  function getHighlightSpans(node, sourceFile) {\n    switch (node.kind) {\n      case 101 /* IfKeyword */:\n      case 93 /* ElseKeyword */:\n        return isIfStatement(node.parent) ? getIfElseOccurrences(node.parent, sourceFile) : void 0;\n      case 107 /* ReturnKeyword */:\n        return useParent(node.parent, isReturnStatement, getReturnOccurrences);\n      case 111 /* ThrowKeyword */:\n        return useParent(node.parent, isThrowStatement, getThrowOccurrences);\n      case 113 /* TryKeyword */:\n      case 85 /* CatchKeyword */:\n      case 98 /* FinallyKeyword */:\n        const tryStatement = node.kind === 85 /* CatchKeyword */ ? node.parent.parent : node.parent;\n        return useParent(tryStatement, isTryStatement, getTryCatchFinallyOccurrences);\n      case 109 /* SwitchKeyword */:\n        return useParent(node.parent, isSwitchStatement, getSwitchCaseDefaultOccurrences);\n      case 84 /* CaseKeyword */:\n      case 90 /* DefaultKeyword */: {\n        if (isDefaultClause(node.parent) || isCaseClause(node.parent)) {\n          return useParent(node.parent.parent.parent, isSwitchStatement, getSwitchCaseDefaultOccurrences);\n        }\n        return void 0;\n      }\n      case 83 /* BreakKeyword */:\n      case 88 /* ContinueKeyword */:\n        return useParent(node.parent, isBreakOrContinueStatement, getBreakOrContinueStatementOccurrences);\n      case 99 /* ForKeyword */:\n      case 117 /* WhileKeyword */:\n      case 92 /* DoKeyword */:\n        return useParent(node.parent, (n) => isIterationStatement(\n          n,\n          /*lookInLabeledStatements*/\n          true\n        ), getLoopBreakContinueOccurrences);\n      case 137 /* ConstructorKeyword */:\n        return getFromAllDeclarations(isConstructorDeclaration, [137 /* ConstructorKeyword */]);\n      case 139 /* GetKeyword */:\n      case 153 /* SetKeyword */:\n        return getFromAllDeclarations(isAccessor, [139 /* GetKeyword */, 153 /* SetKeyword */]);\n      case 135 /* AwaitKeyword */:\n        return useParent(node.parent, isAwaitExpression, getAsyncAndAwaitOccurrences);\n      case 134 /* AsyncKeyword */:\n        return highlightSpans(getAsyncAndAwaitOccurrences(node));\n      case 127 /* YieldKeyword */:\n        return highlightSpans(getYieldOccurrences(node));\n      case 103 /* InKeyword */:\n      case 147 /* OutKeyword */:\n        return void 0;\n      default:\n        return isModifierKind(node.kind) && (isDeclaration(node.parent) || isVariableStatement(node.parent)) ? highlightSpans(getModifierOccurrences(node.kind, node.parent)) : void 0;\n    }\n    function getFromAllDeclarations(nodeTest, keywords) {\n      return useParent(node.parent, nodeTest, (decl) => {\n        var _a;\n        return mapDefined((_a = tryCast(decl, canHaveSymbol)) == null ? void 0 : _a.symbol.declarations, (d) => nodeTest(d) ? find(d.getChildren(sourceFile), (c) => contains(keywords, c.kind)) : void 0);\n      });\n    }\n    function useParent(node2, nodeTest, getNodes4) {\n      return nodeTest(node2) ? highlightSpans(getNodes4(node2, sourceFile)) : void 0;\n    }\n    function highlightSpans(nodes) {\n      return nodes && nodes.map((node2) => getHighlightSpanForNode(node2, sourceFile));\n    }\n  }\n  function aggregateOwnedThrowStatements(node) {\n    if (isThrowStatement(node)) {\n      return [node];\n    } else if (isTryStatement(node)) {\n      return concatenate(\n        node.catchClause ? aggregateOwnedThrowStatements(node.catchClause) : node.tryBlock && aggregateOwnedThrowStatements(node.tryBlock),\n        node.finallyBlock && aggregateOwnedThrowStatements(node.finallyBlock)\n      );\n    }\n    return isFunctionLike(node) ? void 0 : flatMapChildren(node, aggregateOwnedThrowStatements);\n  }\n  function getThrowStatementOwner(throwStatement) {\n    let child = throwStatement;\n    while (child.parent) {\n      const parent2 = child.parent;\n      if (isFunctionBlock(parent2) || parent2.kind === 308 /* SourceFile */) {\n        return parent2;\n      }\n      if (isTryStatement(parent2) && parent2.tryBlock === child && parent2.catchClause) {\n        return child;\n      }\n      child = parent2;\n    }\n    return void 0;\n  }\n  function aggregateAllBreakAndContinueStatements(node) {\n    return isBreakOrContinueStatement(node) ? [node] : isFunctionLike(node) ? void 0 : flatMapChildren(node, aggregateAllBreakAndContinueStatements);\n  }\n  function flatMapChildren(node, cb) {\n    const result = [];\n    node.forEachChild((child) => {\n      const value = cb(child);\n      if (value !== void 0) {\n        result.push(...toArray(value));\n      }\n    });\n    return result;\n  }\n  function ownsBreakOrContinueStatement(owner, statement) {\n    const actualOwner = getBreakOrContinueOwner(statement);\n    return !!actualOwner && actualOwner === owner;\n  }\n  function getBreakOrContinueOwner(statement) {\n    return findAncestor(statement, (node) => {\n      switch (node.kind) {\n        case 256 /* SwitchStatement */:\n          if (statement.kind === 252 /* ContinueStatement */) {\n            return false;\n          }\n        // falls through\n        case 249 /* ForStatement */:\n        case 250 /* ForInStatement */:\n        case 251 /* ForOfStatement */:\n        case 248 /* WhileStatement */:\n        case 247 /* DoStatement */:\n          return !statement.label || isLabeledBy(node, statement.label.escapedText);\n        default:\n          return isFunctionLike(node) && \"quit\";\n      }\n    });\n  }\n  function getModifierOccurrences(modifier, declaration) {\n    return mapDefined(getNodesToSearchForModifier(declaration, modifierToFlag(modifier)), (node) => findModifier(node, modifier));\n  }\n  function getNodesToSearchForModifier(declaration, modifierFlag) {\n    const container = declaration.parent;\n    switch (container.kind) {\n      case 269 /* ModuleBlock */:\n      case 308 /* SourceFile */:\n      case 242 /* Block */:\n      case 297 /* CaseClause */:\n      case 298 /* DefaultClause */:\n        if (modifierFlag & 64 /* Abstract */ && isClassDeclaration(declaration)) {\n          return [...declaration.members, declaration];\n        } else {\n          return container.statements;\n        }\n      case 177 /* Constructor */:\n      case 175 /* MethodDeclaration */:\n      case 263 /* FunctionDeclaration */:\n        return [...container.parameters, ...isClassLike(container.parent) ? container.parent.members : []];\n      case 264 /* ClassDeclaration */:\n      case 232 /* ClassExpression */:\n      case 265 /* InterfaceDeclaration */:\n      case 188 /* TypeLiteral */:\n        const nodes = container.members;\n        if (modifierFlag & (7 /* AccessibilityModifier */ | 8 /* Readonly */)) {\n          const constructor = find(container.members, isConstructorDeclaration);\n          if (constructor) {\n            return [...nodes, ...constructor.parameters];\n          }\n        } else if (modifierFlag & 64 /* Abstract */) {\n          return [...nodes, container];\n        }\n        return nodes;\n      // Syntactically invalid positions that the parser might produce anyway\n      default:\n        return void 0;\n    }\n  }\n  function pushKeywordIf(keywordList, token, ...expected) {\n    if (token && contains(expected, token.kind)) {\n      keywordList.push(token);\n      return true;\n    }\n    return false;\n  }\n  function getLoopBreakContinueOccurrences(loopNode) {\n    const keywords = [];\n    if (pushKeywordIf(keywords, loopNode.getFirstToken(), 99 /* ForKeyword */, 117 /* WhileKeyword */, 92 /* DoKeyword */)) {\n      if (loopNode.kind === 247 /* DoStatement */) {\n        const loopTokens = loopNode.getChildren();\n        for (let i = loopTokens.length - 1; i >= 0; i--) {\n          if (pushKeywordIf(keywords, loopTokens[i], 117 /* WhileKeyword */)) {\n            break;\n          }\n        }\n      }\n    }\n    forEach(aggregateAllBreakAndContinueStatements(loopNode.statement), (statement) => {\n      if (ownsBreakOrContinueStatement(loopNode, statement)) {\n        pushKeywordIf(keywords, statement.getFirstToken(), 83 /* BreakKeyword */, 88 /* ContinueKeyword */);\n      }\n    });\n    return keywords;\n  }\n  function getBreakOrContinueStatementOccurrences(breakOrContinueStatement) {\n    const owner = getBreakOrContinueOwner(breakOrContinueStatement);\n    if (owner) {\n      switch (owner.kind) {\n        case 249 /* ForStatement */:\n        case 250 /* ForInStatement */:\n        case 251 /* ForOfStatement */:\n        case 247 /* DoStatement */:\n        case 248 /* WhileStatement */:\n          return getLoopBreakContinueOccurrences(owner);\n        case 256 /* SwitchStatement */:\n          return getSwitchCaseDefaultOccurrences(owner);\n      }\n    }\n    return void 0;\n  }\n  function getSwitchCaseDefaultOccurrences(switchStatement) {\n    const keywords = [];\n    pushKeywordIf(keywords, switchStatement.getFirstToken(), 109 /* SwitchKeyword */);\n    forEach(switchStatement.caseBlock.clauses, (clause) => {\n      pushKeywordIf(keywords, clause.getFirstToken(), 84 /* CaseKeyword */, 90 /* DefaultKeyword */);\n      forEach(aggregateAllBreakAndContinueStatements(clause), (statement) => {\n        if (ownsBreakOrContinueStatement(switchStatement, statement)) {\n          pushKeywordIf(keywords, statement.getFirstToken(), 83 /* BreakKeyword */);\n        }\n      });\n    });\n    return keywords;\n  }\n  function getTryCatchFinallyOccurrences(tryStatement, sourceFile) {\n    const keywords = [];\n    pushKeywordIf(keywords, tryStatement.getFirstToken(), 113 /* TryKeyword */);\n    if (tryStatement.catchClause) {\n      pushKeywordIf(keywords, tryStatement.catchClause.getFirstToken(), 85 /* CatchKeyword */);\n    }\n    if (tryStatement.finallyBlock) {\n      const finallyKeyword = findChildOfKind(tryStatement, 98 /* FinallyKeyword */, sourceFile);\n      pushKeywordIf(keywords, finallyKeyword, 98 /* FinallyKeyword */);\n    }\n    return keywords;\n  }\n  function getThrowOccurrences(throwStatement, sourceFile) {\n    const owner = getThrowStatementOwner(throwStatement);\n    if (!owner) {\n      return void 0;\n    }\n    const keywords = [];\n    forEach(aggregateOwnedThrowStatements(owner), (throwStatement2) => {\n      keywords.push(findChildOfKind(throwStatement2, 111 /* ThrowKeyword */, sourceFile));\n    });\n    if (isFunctionBlock(owner)) {\n      forEachReturnStatement(owner, (returnStatement) => {\n        keywords.push(findChildOfKind(returnStatement, 107 /* ReturnKeyword */, sourceFile));\n      });\n    }\n    return keywords;\n  }\n  function getReturnOccurrences(returnStatement, sourceFile) {\n    const func = getContainingFunction(returnStatement);\n    if (!func) {\n      return void 0;\n    }\n    const keywords = [];\n    forEachReturnStatement(cast(func.body, isBlock), (returnStatement2) => {\n      keywords.push(findChildOfKind(returnStatement2, 107 /* ReturnKeyword */, sourceFile));\n    });\n    forEach(aggregateOwnedThrowStatements(func.body), (throwStatement) => {\n      keywords.push(findChildOfKind(throwStatement, 111 /* ThrowKeyword */, sourceFile));\n    });\n    return keywords;\n  }\n  function getAsyncAndAwaitOccurrences(node) {\n    const func = getContainingFunction(node);\n    if (!func) {\n      return void 0;\n    }\n    const keywords = [];\n    if (func.modifiers) {\n      func.modifiers.forEach((modifier) => {\n        pushKeywordIf(keywords, modifier, 134 /* AsyncKeyword */);\n      });\n    }\n    forEachChild(func, (child) => {\n      traverseWithoutCrossingFunction(child, (node2) => {\n        if (isAwaitExpression(node2)) {\n          pushKeywordIf(keywords, node2.getFirstToken(), 135 /* AwaitKeyword */);\n        }\n      });\n    });\n    return keywords;\n  }\n  function getYieldOccurrences(node) {\n    const func = getContainingFunction(node);\n    if (!func) {\n      return void 0;\n    }\n    const keywords = [];\n    forEachChild(func, (child) => {\n      traverseWithoutCrossingFunction(child, (node2) => {\n        if (isYieldExpression(node2)) {\n          pushKeywordIf(keywords, node2.getFirstToken(), 127 /* YieldKeyword */);\n        }\n      });\n    });\n    return keywords;\n  }\n  function traverseWithoutCrossingFunction(node, cb) {\n    cb(node);\n    if (!isFunctionLike(node) && !isClassLike(node) && !isInterfaceDeclaration(node) && !isModuleDeclaration(node) && !isTypeAliasDeclaration(node) && !isTypeNode(node)) {\n      forEachChild(node, (child) => traverseWithoutCrossingFunction(child, cb));\n    }\n  }\n  function getIfElseOccurrences(ifStatement, sourceFile) {\n    const keywords = getIfElseKeywords(ifStatement, sourceFile);\n    const result = [];\n    for (let i = 0; i < keywords.length; i++) {\n      if (keywords[i].kind === 93 /* ElseKeyword */ && i < keywords.length - 1) {\n        const elseKeyword = keywords[i];\n        const ifKeyword = keywords[i + 1];\n        let shouldCombineElseAndIf = true;\n        for (let j = ifKeyword.getStart(sourceFile) - 1; j >= elseKeyword.end; j--) {\n          if (!isWhiteSpaceSingleLine(sourceFile.text.charCodeAt(j))) {\n            shouldCombineElseAndIf = false;\n            break;\n          }\n        }\n        if (shouldCombineElseAndIf) {\n          result.push({\n            fileName: sourceFile.fileName,\n            textSpan: createTextSpanFromBounds(elseKeyword.getStart(), ifKeyword.end),\n            kind: \"reference\" /* reference */\n          });\n          i++;\n          continue;\n        }\n      }\n      result.push(getHighlightSpanForNode(keywords[i], sourceFile));\n    }\n    return result;\n  }\n  function getIfElseKeywords(ifStatement, sourceFile) {\n    const keywords = [];\n    while (isIfStatement(ifStatement.parent) && ifStatement.parent.elseStatement === ifStatement) {\n      ifStatement = ifStatement.parent;\n    }\n    while (true) {\n      const children = ifStatement.getChildren(sourceFile);\n      pushKeywordIf(keywords, children[0], 101 /* IfKeyword */);\n      for (let i = children.length - 1; i >= 0; i--) {\n        if (pushKeywordIf(keywords, children[i], 93 /* ElseKeyword */)) {\n          break;\n        }\n      }\n      if (!ifStatement.elseStatement || !isIfStatement(ifStatement.elseStatement)) {\n        break;\n      }\n      ifStatement = ifStatement.elseStatement;\n    }\n    return keywords;\n  }\n  function isLabeledBy(node, labelName) {\n    return !!findAncestor(node.parent, (owner) => !isLabeledStatement(owner) ? \"quit\" : owner.label.escapedText === labelName);\n  }\n})(DocumentHighlights || (DocumentHighlights = {}));\n\n// src/services/documentRegistry.ts\nfunction isDocumentRegistryEntry(entry) {\n  return !!entry.sourceFile;\n}\nfunction createDocumentRegistry(useCaseSensitiveFileNames2, currentDirectory, jsDocParsingMode) {\n  return createDocumentRegistryInternal(useCaseSensitiveFileNames2, currentDirectory, jsDocParsingMode);\n}\nfunction createDocumentRegistryInternal(useCaseSensitiveFileNames2, currentDirectory = \"\", jsDocParsingMode, externalCache) {\n  const buckets = /* @__PURE__ */ new Map();\n  const getCanonicalFileName = createGetCanonicalFileName(!!useCaseSensitiveFileNames2);\n  function reportStats() {\n    const bucketInfoArray = arrayFrom(buckets.keys()).filter((name) => name && name.charAt(0) === \"_\").map((name) => {\n      const entries = buckets.get(name);\n      const sourceFiles = [];\n      entries.forEach((entry, name2) => {\n        if (isDocumentRegistryEntry(entry)) {\n          sourceFiles.push({\n            name: name2,\n            scriptKind: entry.sourceFile.scriptKind,\n            refCount: entry.languageServiceRefCount\n          });\n        } else {\n          entry.forEach((value, scriptKind) => sourceFiles.push({ name: name2, scriptKind, refCount: value.languageServiceRefCount }));\n        }\n      });\n      sourceFiles.sort((x, y) => y.refCount - x.refCount);\n      return {\n        bucket: name,\n        sourceFiles\n      };\n    });\n    return JSON.stringify(bucketInfoArray, void 0, 2);\n  }\n  function getCompilationSettings(settingsOrHost) {\n    if (typeof settingsOrHost.getCompilationSettings === \"function\") {\n      return settingsOrHost.getCompilationSettings();\n    }\n    return settingsOrHost;\n  }\n  function acquireDocument(fileName, compilationSettings, scriptSnapshot, version2, scriptKind, languageVersionOrOptions) {\n    const path = toPath(fileName, currentDirectory, getCanonicalFileName);\n    const key = getKeyForCompilationSettings(getCompilationSettings(compilationSettings));\n    return acquireDocumentWithKey(fileName, path, compilationSettings, key, scriptSnapshot, version2, scriptKind, languageVersionOrOptions);\n  }\n  function acquireDocumentWithKey(fileName, path, compilationSettings, key, scriptSnapshot, version2, scriptKind, languageVersionOrOptions) {\n    return acquireOrUpdateDocument(\n      fileName,\n      path,\n      compilationSettings,\n      key,\n      scriptSnapshot,\n      version2,\n      /*acquiring*/\n      true,\n      scriptKind,\n      languageVersionOrOptions\n    );\n  }\n  function updateDocument(fileName, compilationSettings, scriptSnapshot, version2, scriptKind, languageVersionOrOptions) {\n    const path = toPath(fileName, currentDirectory, getCanonicalFileName);\n    const key = getKeyForCompilationSettings(getCompilationSettings(compilationSettings));\n    return updateDocumentWithKey(fileName, path, compilationSettings, key, scriptSnapshot, version2, scriptKind, languageVersionOrOptions);\n  }\n  function updateDocumentWithKey(fileName, path, compilationSettings, key, scriptSnapshot, version2, scriptKind, languageVersionOrOptions) {\n    return acquireOrUpdateDocument(\n      fileName,\n      path,\n      getCompilationSettings(compilationSettings),\n      key,\n      scriptSnapshot,\n      version2,\n      /*acquiring*/\n      false,\n      scriptKind,\n      languageVersionOrOptions\n    );\n  }\n  function getDocumentRegistryEntry(bucketEntry, scriptKind) {\n    const entry = isDocumentRegistryEntry(bucketEntry) ? bucketEntry : bucketEntry.get(Debug.checkDefined(scriptKind, \"If there are more than one scriptKind's for same document the scriptKind should be provided\"));\n    Debug.assert(scriptKind === void 0 || !entry || entry.sourceFile.scriptKind === scriptKind, `Script kind should match provided ScriptKind:${scriptKind} and sourceFile.scriptKind: ${entry == null ? void 0 : entry.sourceFile.scriptKind}, !entry: ${!entry}`);\n    return entry;\n  }\n  function acquireOrUpdateDocument(fileName, path, compilationSettingsOrHost, key, scriptSnapshot, version2, acquiring, scriptKind, languageVersionOrOptions) {\n    var _a, _b, _c, _d;\n    scriptKind = ensureScriptKind(fileName, scriptKind);\n    const compilationSettings = getCompilationSettings(compilationSettingsOrHost);\n    const host = compilationSettingsOrHost === compilationSettings ? void 0 : compilationSettingsOrHost;\n    const scriptTarget = scriptKind === 6 /* JSON */ ? 100 /* JSON */ : getEmitScriptTarget(compilationSettings);\n    const sourceFileOptions = typeof languageVersionOrOptions === \"object\" ? languageVersionOrOptions : {\n      languageVersion: scriptTarget,\n      impliedNodeFormat: host && getImpliedNodeFormatForFile(path, (_d = (_c = (_b = (_a = host.getCompilerHost) == null ? void 0 : _a.call(host)) == null ? void 0 : _b.getModuleResolutionCache) == null ? void 0 : _c.call(_b)) == null ? void 0 : _d.getPackageJsonInfoCache(), host, compilationSettings),\n      setExternalModuleIndicator: getSetExternalModuleIndicator(compilationSettings),\n      jsDocParsingMode\n    };\n    sourceFileOptions.languageVersion = scriptTarget;\n    Debug.assertEqual(jsDocParsingMode, sourceFileOptions.jsDocParsingMode);\n    const oldBucketCount = buckets.size;\n    const keyWithMode = getDocumentRegistryBucketKeyWithMode(key, sourceFileOptions.impliedNodeFormat);\n    const bucket = getOrUpdate(buckets, keyWithMode, () => /* @__PURE__ */ new Map());\n    if (tracing) {\n      if (buckets.size > oldBucketCount) {\n        tracing.instant(tracing.Phase.Session, \"createdDocumentRegistryBucket\", { configFilePath: compilationSettings.configFilePath, key: keyWithMode });\n      }\n      const otherBucketKey = !isDeclarationFileName(path) && forEachEntry(buckets, (bucket2, bucketKey) => bucketKey !== keyWithMode && bucket2.has(path) && bucketKey);\n      if (otherBucketKey) {\n        tracing.instant(tracing.Phase.Session, \"documentRegistryBucketOverlap\", { path, key1: otherBucketKey, key2: keyWithMode });\n      }\n    }\n    const bucketEntry = bucket.get(path);\n    let entry = bucketEntry && getDocumentRegistryEntry(bucketEntry, scriptKind);\n    if (!entry && externalCache) {\n      const sourceFile = externalCache.getDocument(keyWithMode, path);\n      if (sourceFile && sourceFile.scriptKind === scriptKind && sourceFile.text === getSnapshotText(scriptSnapshot)) {\n        Debug.assert(acquiring);\n        entry = {\n          sourceFile,\n          languageServiceRefCount: 0\n        };\n        setBucketEntry();\n      }\n    }\n    if (!entry) {\n      const sourceFile = createLanguageServiceSourceFile(\n        fileName,\n        scriptSnapshot,\n        sourceFileOptions,\n        version2,\n        /*setNodeParents*/\n        false,\n        scriptKind\n      );\n      if (externalCache) {\n        externalCache.setDocument(keyWithMode, path, sourceFile);\n      }\n      entry = {\n        sourceFile,\n        languageServiceRefCount: 1\n      };\n      setBucketEntry();\n    } else {\n      if (entry.sourceFile.version !== version2) {\n        entry.sourceFile = updateLanguageServiceSourceFile(entry.sourceFile, scriptSnapshot, version2, scriptSnapshot.getChangeRange(entry.sourceFile.scriptSnapshot));\n        if (externalCache) {\n          externalCache.setDocument(keyWithMode, path, entry.sourceFile);\n        }\n      }\n      if (acquiring) {\n        entry.languageServiceRefCount++;\n      }\n    }\n    Debug.assert(entry.languageServiceRefCount !== 0);\n    return entry.sourceFile;\n    function setBucketEntry() {\n      if (!bucketEntry) {\n        bucket.set(path, entry);\n      } else if (isDocumentRegistryEntry(bucketEntry)) {\n        const scriptKindMap = /* @__PURE__ */ new Map();\n        scriptKindMap.set(bucketEntry.sourceFile.scriptKind, bucketEntry);\n        scriptKindMap.set(scriptKind, entry);\n        bucket.set(path, scriptKindMap);\n      } else {\n        bucketEntry.set(scriptKind, entry);\n      }\n    }\n  }\n  function releaseDocument(fileName, compilationSettings, scriptKind, impliedNodeFormat) {\n    const path = toPath(fileName, currentDirectory, getCanonicalFileName);\n    const key = getKeyForCompilationSettings(compilationSettings);\n    return releaseDocumentWithKey(path, key, scriptKind, impliedNodeFormat);\n  }\n  function releaseDocumentWithKey(path, key, scriptKind, impliedNodeFormat) {\n    const bucket = Debug.checkDefined(buckets.get(getDocumentRegistryBucketKeyWithMode(key, impliedNodeFormat)));\n    const bucketEntry = bucket.get(path);\n    const entry = getDocumentRegistryEntry(bucketEntry, scriptKind);\n    entry.languageServiceRefCount--;\n    Debug.assert(entry.languageServiceRefCount >= 0);\n    if (entry.languageServiceRefCount === 0) {\n      if (isDocumentRegistryEntry(bucketEntry)) {\n        bucket.delete(path);\n      } else {\n        bucketEntry.delete(scriptKind);\n        if (bucketEntry.size === 1) {\n          bucket.set(path, firstDefinedIterator(bucketEntry.values(), identity));\n        }\n      }\n    }\n  }\n  return {\n    acquireDocument,\n    acquireDocumentWithKey,\n    updateDocument,\n    updateDocumentWithKey,\n    releaseDocument,\n    releaseDocumentWithKey,\n    getKeyForCompilationSettings,\n    getDocumentRegistryBucketKeyWithMode,\n    reportStats,\n    getBuckets: () => buckets\n  };\n}\nfunction getKeyForCompilationSettings(settings) {\n  return getKeyForCompilerOptions(settings, sourceFileAffectingCompilerOptions);\n}\nfunction getDocumentRegistryBucketKeyWithMode(key, mode) {\n  return mode ? `${key}|${mode}` : key;\n}\n\n// src/services/getEditsForFileRename.ts\nfunction getEditsForFileRename(program, oldFileOrDirPath, newFileOrDirPath, host, formatContext, preferences, sourceMapper) {\n  const useCaseSensitiveFileNames2 = hostUsesCaseSensitiveFileNames(host);\n  const getCanonicalFileName = createGetCanonicalFileName(useCaseSensitiveFileNames2);\n  const oldToNew = getPathUpdater(oldFileOrDirPath, newFileOrDirPath, getCanonicalFileName, sourceMapper);\n  const newToOld = getPathUpdater(newFileOrDirPath, oldFileOrDirPath, getCanonicalFileName, sourceMapper);\n  return ts_textChanges_exports.ChangeTracker.with({ host, formatContext, preferences }, (changeTracker) => {\n    updateTsconfigFiles(program, changeTracker, oldToNew, oldFileOrDirPath, newFileOrDirPath, host.getCurrentDirectory(), useCaseSensitiveFileNames2);\n    updateImports(program, changeTracker, oldToNew, newToOld, host, getCanonicalFileName);\n  });\n}\nfunction getPathUpdater(oldFileOrDirPath, newFileOrDirPath, getCanonicalFileName, sourceMapper) {\n  const canonicalOldPath = getCanonicalFileName(oldFileOrDirPath);\n  return (path) => {\n    const originalPath = sourceMapper && sourceMapper.tryGetSourcePosition({ fileName: path, pos: 0 });\n    const updatedPath = getUpdatedPath(originalPath ? originalPath.fileName : path);\n    return originalPath ? updatedPath === void 0 ? void 0 : makeCorrespondingRelativeChange(originalPath.fileName, updatedPath, path, getCanonicalFileName) : updatedPath;\n  };\n  function getUpdatedPath(pathToUpdate) {\n    if (getCanonicalFileName(pathToUpdate) === canonicalOldPath) return newFileOrDirPath;\n    const suffix = tryRemoveDirectoryPrefix(pathToUpdate, canonicalOldPath, getCanonicalFileName);\n    return suffix === void 0 ? void 0 : newFileOrDirPath + \"/\" + suffix;\n  }\n}\nfunction makeCorrespondingRelativeChange(a0, b0, a1, getCanonicalFileName) {\n  const rel = getRelativePathFromFile(a0, b0, getCanonicalFileName);\n  return combinePathsSafe(getDirectoryPath(a1), rel);\n}\nfunction updateTsconfigFiles(program, changeTracker, oldToNew, oldFileOrDirPath, newFileOrDirPath, currentDirectory, useCaseSensitiveFileNames2) {\n  const { configFile } = program.getCompilerOptions();\n  if (!configFile) return;\n  const configDir = getDirectoryPath(configFile.fileName);\n  const jsonObjectLiteral = getTsConfigObjectLiteralExpression(configFile);\n  if (!jsonObjectLiteral) return;\n  forEachProperty(jsonObjectLiteral, (property, propertyName) => {\n    switch (propertyName) {\n      case \"files\":\n      case \"include\":\n      case \"exclude\": {\n        const foundExactMatch = updatePaths(property);\n        if (foundExactMatch || propertyName !== \"include\" || !isArrayLiteralExpression(property.initializer)) return;\n        const includes = mapDefined(property.initializer.elements, (e) => isStringLiteral(e) ? e.text : void 0);\n        if (includes.length === 0) return;\n        const matchers = getFileMatcherPatterns(\n          configDir,\n          /*excludes*/\n          [],\n          includes,\n          useCaseSensitiveFileNames2,\n          currentDirectory\n        );\n        if (getRegexFromPattern(Debug.checkDefined(matchers.includeFilePattern), useCaseSensitiveFileNames2).test(oldFileOrDirPath) && !getRegexFromPattern(Debug.checkDefined(matchers.includeFilePattern), useCaseSensitiveFileNames2).test(newFileOrDirPath)) {\n          changeTracker.insertNodeAfter(configFile, last(property.initializer.elements), factory.createStringLiteral(relativePath(newFileOrDirPath)));\n        }\n        return;\n      }\n      case \"compilerOptions\":\n        forEachProperty(property.initializer, (property2, propertyName2) => {\n          const option = getOptionFromName(propertyName2);\n          Debug.assert((option == null ? void 0 : option.type) !== \"listOrElement\");\n          if (option && (option.isFilePath || option.type === \"list\" && option.element.isFilePath)) {\n            updatePaths(property2);\n          } else if (propertyName2 === \"paths\") {\n            forEachProperty(property2.initializer, (pathsProperty) => {\n              if (!isArrayLiteralExpression(pathsProperty.initializer)) return;\n              for (const e of pathsProperty.initializer.elements) {\n                tryUpdateString(e);\n              }\n            });\n          }\n        });\n        return;\n    }\n  });\n  function updatePaths(property) {\n    const elements = isArrayLiteralExpression(property.initializer) ? property.initializer.elements : [property.initializer];\n    let foundExactMatch = false;\n    for (const element of elements) {\n      foundExactMatch = tryUpdateString(element) || foundExactMatch;\n    }\n    return foundExactMatch;\n  }\n  function tryUpdateString(element) {\n    if (!isStringLiteral(element)) return false;\n    const elementFileName = combinePathsSafe(configDir, element.text);\n    const updated = oldToNew(elementFileName);\n    if (updated !== void 0) {\n      changeTracker.replaceRangeWithText(configFile, createStringRange(element, configFile), relativePath(updated));\n      return true;\n    }\n    return false;\n  }\n  function relativePath(path) {\n    return getRelativePathFromDirectory(\n      configDir,\n      path,\n      /*ignoreCase*/\n      !useCaseSensitiveFileNames2\n    );\n  }\n}\nfunction updateImports(program, changeTracker, oldToNew, newToOld, host, getCanonicalFileName) {\n  const allFiles = program.getSourceFiles();\n  for (const sourceFile of allFiles) {\n    const newFromOld = oldToNew(sourceFile.fileName);\n    const newImportFromPath = newFromOld ?? sourceFile.fileName;\n    const newImportFromDirectory = getDirectoryPath(newImportFromPath);\n    const oldFromNew = newToOld(sourceFile.fileName);\n    const oldImportFromPath = oldFromNew || sourceFile.fileName;\n    const oldImportFromDirectory = getDirectoryPath(oldImportFromPath);\n    const importingSourceFileMoved = newFromOld !== void 0 || oldFromNew !== void 0;\n    updateImportsWorker(sourceFile, changeTracker, (referenceText) => {\n      if (!pathIsRelative(referenceText)) return void 0;\n      const oldAbsolute = combinePathsSafe(oldImportFromDirectory, referenceText);\n      const newAbsolute = oldToNew(oldAbsolute);\n      return newAbsolute === void 0 ? void 0 : ensurePathIsNonModuleName(getRelativePathFromDirectory(newImportFromDirectory, newAbsolute, getCanonicalFileName));\n    }, (importLiteral) => {\n      const importedModuleSymbol = program.getTypeChecker().getSymbolAtLocation(importLiteral);\n      if ((importedModuleSymbol == null ? void 0 : importedModuleSymbol.declarations) && importedModuleSymbol.declarations.some((d) => isAmbientModule(d))) return void 0;\n      const toImport = oldFromNew !== void 0 ? getSourceFileToImportFromResolved(importLiteral, resolveModuleName(importLiteral.text, oldImportFromPath, program.getCompilerOptions(), host), oldToNew, allFiles) : getSourceFileToImport(importedModuleSymbol, importLiteral, sourceFile, program, host, oldToNew);\n      return toImport !== void 0 && (toImport.updated || importingSourceFileMoved && pathIsRelative(importLiteral.text)) ? ts_moduleSpecifiers_exports.updateModuleSpecifier(program.getCompilerOptions(), sourceFile, newImportFromPath, toImport.newFileName, createModuleSpecifierResolutionHost(program, host), importLiteral.text) : void 0;\n    });\n  }\n}\nfunction combineNormal(pathA, pathB) {\n  return normalizePath(combinePaths(pathA, pathB));\n}\nfunction combinePathsSafe(pathA, pathB) {\n  return ensurePathIsNonModuleName(combineNormal(pathA, pathB));\n}\nfunction getSourceFileToImport(importedModuleSymbol, importLiteral, importingSourceFile, program, host, oldToNew) {\n  if (importedModuleSymbol) {\n    const oldFileName = find(importedModuleSymbol.declarations, isSourceFile).fileName;\n    const newFileName = oldToNew(oldFileName);\n    return newFileName === void 0 ? { newFileName: oldFileName, updated: false } : { newFileName, updated: true };\n  } else {\n    const mode = program.getModeForUsageLocation(importingSourceFile, importLiteral);\n    const resolved = host.resolveModuleNameLiterals || !host.resolveModuleNames ? program.getResolvedModuleFromModuleSpecifier(importLiteral, importingSourceFile) : host.getResolvedModuleWithFailedLookupLocationsFromCache && host.getResolvedModuleWithFailedLookupLocationsFromCache(importLiteral.text, importingSourceFile.fileName, mode);\n    return getSourceFileToImportFromResolved(importLiteral, resolved, oldToNew, program.getSourceFiles());\n  }\n}\nfunction getSourceFileToImportFromResolved(importLiteral, resolved, oldToNew, sourceFiles) {\n  if (!resolved) return void 0;\n  if (resolved.resolvedModule) {\n    const result2 = tryChange(resolved.resolvedModule.resolvedFileName);\n    if (result2) return result2;\n  }\n  const result = forEach(resolved.failedLookupLocations, tryChangeWithIgnoringPackageJsonExisting) || pathIsRelative(importLiteral.text) && forEach(resolved.failedLookupLocations, tryChangeWithIgnoringPackageJson);\n  if (result) return result;\n  return resolved.resolvedModule && { newFileName: resolved.resolvedModule.resolvedFileName, updated: false };\n  function tryChangeWithIgnoringPackageJsonExisting(oldFileName) {\n    const newFileName = oldToNew(oldFileName);\n    return newFileName && find(sourceFiles, (src) => src.fileName === newFileName) ? tryChangeWithIgnoringPackageJson(oldFileName) : void 0;\n  }\n  function tryChangeWithIgnoringPackageJson(oldFileName) {\n    return !endsWith(oldFileName, \"/package.json\") ? tryChange(oldFileName) : void 0;\n  }\n  function tryChange(oldFileName) {\n    const newFileName = oldToNew(oldFileName);\n    return newFileName && { newFileName, updated: true };\n  }\n}\nfunction updateImportsWorker(sourceFile, changeTracker, updateRef, updateImport) {\n  for (const ref of sourceFile.referencedFiles || emptyArray) {\n    const updated = updateRef(ref.fileName);\n    if (updated !== void 0 && updated !== sourceFile.text.slice(ref.pos, ref.end)) changeTracker.replaceRangeWithText(sourceFile, ref, updated);\n  }\n  for (const importStringLiteral of sourceFile.imports) {\n    const updated = updateImport(importStringLiteral);\n    if (updated !== void 0 && updated !== importStringLiteral.text) changeTracker.replaceRangeWithText(sourceFile, createStringRange(importStringLiteral, sourceFile), updated);\n  }\n}\nfunction createStringRange(node, sourceFile) {\n  return createRange(node.getStart(sourceFile) + 1, node.end - 1);\n}\nfunction forEachProperty(objectLiteral, cb) {\n  if (!isObjectLiteralExpression(objectLiteral)) return;\n  for (const property of objectLiteral.properties) {\n    if (isPropertyAssignment(property) && isStringLiteral(property.name)) {\n      cb(property, property.name.text);\n    }\n  }\n}\n\n// src/services/patternMatcher.ts\nvar PatternMatchKind = /* @__PURE__ */ ((PatternMatchKind2) => {\n  PatternMatchKind2[PatternMatchKind2[\"exact\"] = 0] = \"exact\";\n  PatternMatchKind2[PatternMatchKind2[\"prefix\"] = 1] = \"prefix\";\n  PatternMatchKind2[PatternMatchKind2[\"substring\"] = 2] = \"substring\";\n  PatternMatchKind2[PatternMatchKind2[\"camelCase\"] = 3] = \"camelCase\";\n  return PatternMatchKind2;\n})(PatternMatchKind || {});\nfunction createPatternMatch(kind, isCaseSensitive) {\n  return {\n    kind,\n    isCaseSensitive\n  };\n}\nfunction createPatternMatcher(pattern) {\n  const stringToWordSpans = /* @__PURE__ */ new Map();\n  const dotSeparatedSegments = pattern.trim().split(\".\").map((p) => createSegment(p.trim()));\n  if (dotSeparatedSegments.length === 1 && dotSeparatedSegments[0].totalTextChunk.text === \"\") {\n    return {\n      getMatchForLastSegmentOfPattern: () => createPatternMatch(\n        2 /* substring */,\n        /*isCaseSensitive*/\n        true\n      ),\n      getFullMatch: () => createPatternMatch(\n        2 /* substring */,\n        /*isCaseSensitive*/\n        true\n      ),\n      patternContainsDots: false\n    };\n  }\n  if (dotSeparatedSegments.some((segment) => !segment.subWordTextChunks.length)) return void 0;\n  return {\n    getFullMatch: (containers, candidate) => getFullMatch(containers, candidate, dotSeparatedSegments, stringToWordSpans),\n    getMatchForLastSegmentOfPattern: (candidate) => matchSegment(candidate, last(dotSeparatedSegments), stringToWordSpans),\n    patternContainsDots: dotSeparatedSegments.length > 1\n  };\n}\nfunction getFullMatch(candidateContainers, candidate, dotSeparatedSegments, stringToWordSpans) {\n  const candidateMatch = matchSegment(candidate, last(dotSeparatedSegments), stringToWordSpans);\n  if (!candidateMatch) {\n    return void 0;\n  }\n  if (dotSeparatedSegments.length - 1 > candidateContainers.length) {\n    return void 0;\n  }\n  let bestMatch;\n  for (let i = dotSeparatedSegments.length - 2, j = candidateContainers.length - 1; i >= 0; i -= 1, j -= 1) {\n    bestMatch = betterMatch(bestMatch, matchSegment(candidateContainers[j], dotSeparatedSegments[i], stringToWordSpans));\n  }\n  return bestMatch;\n}\nfunction getWordSpans(word, stringToWordSpans) {\n  let spans = stringToWordSpans.get(word);\n  if (!spans) {\n    stringToWordSpans.set(word, spans = breakIntoWordSpans(word));\n  }\n  return spans;\n}\nfunction matchTextChunk(candidate, chunk, stringToWordSpans) {\n  const index = indexOfIgnoringCase(candidate, chunk.textLowerCase);\n  if (index === 0) {\n    return createPatternMatch(\n      chunk.text.length === candidate.length ? 0 /* exact */ : 1 /* prefix */,\n      /*isCaseSensitive:*/\n      startsWith(candidate, chunk.text)\n    );\n  }\n  if (chunk.isLowerCase) {\n    if (index === -1) return void 0;\n    const wordSpans = getWordSpans(candidate, stringToWordSpans);\n    for (const span of wordSpans) {\n      if (partStartsWith(\n        candidate,\n        span,\n        chunk.text,\n        /*ignoreCase*/\n        true\n      )) {\n        return createPatternMatch(\n          2 /* substring */,\n          /*isCaseSensitive:*/\n          partStartsWith(\n            candidate,\n            span,\n            chunk.text,\n            /*ignoreCase*/\n            false\n          )\n        );\n      }\n    }\n    if (chunk.text.length < candidate.length && isUpperCaseLetter(candidate.charCodeAt(index))) {\n      return createPatternMatch(\n        2 /* substring */,\n        /*isCaseSensitive*/\n        false\n      );\n    }\n  } else {\n    if (candidate.indexOf(chunk.text) > 0) {\n      return createPatternMatch(\n        2 /* substring */,\n        /*isCaseSensitive*/\n        true\n      );\n    }\n    if (chunk.characterSpans.length > 0) {\n      const candidateParts = getWordSpans(candidate, stringToWordSpans);\n      const isCaseSensitive = tryCamelCaseMatch(\n        candidate,\n        candidateParts,\n        chunk,\n        /*ignoreCase*/\n        false\n      ) ? true : tryCamelCaseMatch(\n        candidate,\n        candidateParts,\n        chunk,\n        /*ignoreCase*/\n        true\n      ) ? false : void 0;\n      if (isCaseSensitive !== void 0) {\n        return createPatternMatch(3 /* camelCase */, isCaseSensitive);\n      }\n    }\n  }\n}\nfunction matchSegment(candidate, segment, stringToWordSpans) {\n  if (every2(segment.totalTextChunk.text, (ch) => ch !== 32 /* space */ && ch !== 42 /* asterisk */)) {\n    const match = matchTextChunk(candidate, segment.totalTextChunk, stringToWordSpans);\n    if (match) return match;\n  }\n  const subWordTextChunks = segment.subWordTextChunks;\n  let bestMatch;\n  for (const subWordTextChunk of subWordTextChunks) {\n    bestMatch = betterMatch(bestMatch, matchTextChunk(candidate, subWordTextChunk, stringToWordSpans));\n  }\n  return bestMatch;\n}\nfunction betterMatch(a, b) {\n  return min([a, b], compareMatches);\n}\nfunction compareMatches(a, b) {\n  return a === void 0 ? 1 /* GreaterThan */ : b === void 0 ? -1 /* LessThan */ : compareValues(a.kind, b.kind) || compareBooleans(!a.isCaseSensitive, !b.isCaseSensitive);\n}\nfunction partStartsWith(candidate, candidateSpan, pattern, ignoreCase, patternSpan = { start: 0, length: pattern.length }) {\n  return patternSpan.length <= candidateSpan.length && everyInRange(0, patternSpan.length, (i) => equalChars(pattern.charCodeAt(patternSpan.start + i), candidate.charCodeAt(candidateSpan.start + i), ignoreCase));\n}\nfunction equalChars(ch1, ch2, ignoreCase) {\n  return ignoreCase ? toLowerCase2(ch1) === toLowerCase2(ch2) : ch1 === ch2;\n}\nfunction tryCamelCaseMatch(candidate, candidateParts, chunk, ignoreCase) {\n  const chunkCharacterSpans = chunk.characterSpans;\n  let currentCandidate = 0;\n  let currentChunkSpan = 0;\n  let firstMatch;\n  let contiguous;\n  while (true) {\n    if (currentChunkSpan === chunkCharacterSpans.length) {\n      return true;\n    } else if (currentCandidate === candidateParts.length) {\n      return false;\n    }\n    let candidatePart = candidateParts[currentCandidate];\n    let gotOneMatchThisCandidate = false;\n    for (; currentChunkSpan < chunkCharacterSpans.length; currentChunkSpan++) {\n      const chunkCharacterSpan = chunkCharacterSpans[currentChunkSpan];\n      if (gotOneMatchThisCandidate) {\n        if (!isUpperCaseLetter(chunk.text.charCodeAt(chunkCharacterSpans[currentChunkSpan - 1].start)) || !isUpperCaseLetter(chunk.text.charCodeAt(chunkCharacterSpans[currentChunkSpan].start))) {\n          break;\n        }\n      }\n      if (!partStartsWith(candidate, candidatePart, chunk.text, ignoreCase, chunkCharacterSpan)) {\n        break;\n      }\n      gotOneMatchThisCandidate = true;\n      firstMatch = firstMatch === void 0 ? currentCandidate : firstMatch;\n      contiguous = contiguous === void 0 ? true : contiguous;\n      candidatePart = createTextSpan(candidatePart.start + chunkCharacterSpan.length, candidatePart.length - chunkCharacterSpan.length);\n    }\n    if (!gotOneMatchThisCandidate && contiguous !== void 0) {\n      contiguous = false;\n    }\n    currentCandidate++;\n  }\n}\nfunction createSegment(text) {\n  return {\n    totalTextChunk: createTextChunk(text),\n    subWordTextChunks: breakPatternIntoTextChunks(text)\n  };\n}\nfunction isUpperCaseLetter(ch) {\n  if (ch >= 65 /* A */ && ch <= 90 /* Z */) {\n    return true;\n  }\n  if (ch < 127 /* maxAsciiCharacter */ || !isUnicodeIdentifierStart(ch, 99 /* Latest */)) {\n    return false;\n  }\n  const str = String.fromCharCode(ch);\n  return str === str.toUpperCase();\n}\nfunction isLowerCaseLetter(ch) {\n  if (ch >= 97 /* a */ && ch <= 122 /* z */) {\n    return true;\n  }\n  if (ch < 127 /* maxAsciiCharacter */ || !isUnicodeIdentifierStart(ch, 99 /* Latest */)) {\n    return false;\n  }\n  const str = String.fromCharCode(ch);\n  return str === str.toLowerCase();\n}\nfunction indexOfIgnoringCase(str, value) {\n  const n = str.length - value.length;\n  for (let start = 0; start <= n; start++) {\n    if (every2(value, (valueChar, i) => toLowerCase2(str.charCodeAt(i + start)) === valueChar)) {\n      return start;\n    }\n  }\n  return -1;\n}\nfunction toLowerCase2(ch) {\n  if (ch >= 65 /* A */ && ch <= 90 /* Z */) {\n    return 97 /* a */ + (ch - 65 /* A */);\n  }\n  if (ch < 127 /* maxAsciiCharacter */) {\n    return ch;\n  }\n  return String.fromCharCode(ch).toLowerCase().charCodeAt(0);\n}\nfunction isDigit2(ch) {\n  return ch >= 48 /* _0 */ && ch <= 57 /* _9 */;\n}\nfunction isWordChar(ch) {\n  return isUpperCaseLetter(ch) || isLowerCaseLetter(ch) || isDigit2(ch) || ch === 95 /* _ */ || ch === 36 /* $ */;\n}\nfunction breakPatternIntoTextChunks(pattern) {\n  const result = [];\n  let wordStart = 0;\n  let wordLength = 0;\n  for (let i = 0; i < pattern.length; i++) {\n    const ch = pattern.charCodeAt(i);\n    if (isWordChar(ch)) {\n      if (wordLength === 0) {\n        wordStart = i;\n      }\n      wordLength++;\n    } else {\n      if (wordLength > 0) {\n        result.push(createTextChunk(pattern.substr(wordStart, wordLength)));\n        wordLength = 0;\n      }\n    }\n  }\n  if (wordLength > 0) {\n    result.push(createTextChunk(pattern.substr(wordStart, wordLength)));\n  }\n  return result;\n}\nfunction createTextChunk(text) {\n  const textLowerCase = text.toLowerCase();\n  return {\n    text,\n    textLowerCase,\n    isLowerCase: text === textLowerCase,\n    characterSpans: breakIntoCharacterSpans(text)\n  };\n}\nfunction breakIntoCharacterSpans(identifier) {\n  return breakIntoSpans(\n    identifier,\n    /*word*/\n    false\n  );\n}\nfunction breakIntoWordSpans(identifier) {\n  return breakIntoSpans(\n    identifier,\n    /*word*/\n    true\n  );\n}\nfunction breakIntoSpans(identifier, word) {\n  const result = [];\n  let wordStart = 0;\n  for (let i = 1; i < identifier.length; i++) {\n    const lastIsDigit = isDigit2(identifier.charCodeAt(i - 1));\n    const currentIsDigit = isDigit2(identifier.charCodeAt(i));\n    const hasTransitionFromLowerToUpper = transitionFromLowerToUpper(identifier, word, i);\n    const hasTransitionFromUpperToLower = word && transitionFromUpperToLower(identifier, i, wordStart);\n    if (charIsPunctuation(identifier.charCodeAt(i - 1)) || charIsPunctuation(identifier.charCodeAt(i)) || lastIsDigit !== currentIsDigit || hasTransitionFromLowerToUpper || hasTransitionFromUpperToLower) {\n      if (!isAllPunctuation(identifier, wordStart, i)) {\n        result.push(createTextSpan(wordStart, i - wordStart));\n      }\n      wordStart = i;\n    }\n  }\n  if (!isAllPunctuation(identifier, wordStart, identifier.length)) {\n    result.push(createTextSpan(wordStart, identifier.length - wordStart));\n  }\n  return result;\n}\nfunction charIsPunctuation(ch) {\n  switch (ch) {\n    case 33 /* exclamation */:\n    case 34 /* doubleQuote */:\n    case 35 /* hash */:\n    case 37 /* percent */:\n    case 38 /* ampersand */:\n    case 39 /* singleQuote */:\n    case 40 /* openParen */:\n    case 41 /* closeParen */:\n    case 42 /* asterisk */:\n    case 44 /* comma */:\n    case 45 /* minus */:\n    case 46 /* dot */:\n    case 47 /* slash */:\n    case 58 /* colon */:\n    case 59 /* semicolon */:\n    case 63 /* question */:\n    case 64 /* at */:\n    case 91 /* openBracket */:\n    case 92 /* backslash */:\n    case 93 /* closeBracket */:\n    case 95 /* _ */:\n    case 123 /* openBrace */:\n    case 125 /* closeBrace */:\n      return true;\n  }\n  return false;\n}\nfunction isAllPunctuation(identifier, start, end) {\n  return every2(identifier, (ch) => charIsPunctuation(ch) && ch !== 95 /* _ */, start, end);\n}\nfunction transitionFromUpperToLower(identifier, index, wordStart) {\n  return index !== wordStart && index + 1 < identifier.length && isUpperCaseLetter(identifier.charCodeAt(index)) && isLowerCaseLetter(identifier.charCodeAt(index + 1)) && every2(identifier, isUpperCaseLetter, wordStart, index);\n}\nfunction transitionFromLowerToUpper(identifier, word, index) {\n  const lastIsUpper = isUpperCaseLetter(identifier.charCodeAt(index - 1));\n  const currentIsUpper = isUpperCaseLetter(identifier.charCodeAt(index));\n  return currentIsUpper && (!word || !lastIsUpper);\n}\nfunction everyInRange(start, end, pred) {\n  for (let i = start; i < end; i++) {\n    if (!pred(i)) {\n      return false;\n    }\n  }\n  return true;\n}\nfunction every2(s, pred, start = 0, end = s.length) {\n  return everyInRange(start, end, (i) => pred(s.charCodeAt(i), i));\n}\n\n// src/services/preProcess.ts\nfunction preProcessFile(sourceText, readImportFiles = true, detectJavaScriptImports = false) {\n  const pragmaContext = {\n    languageVersion: 1 /* ES5 */,\n    // controls whether the token scanner considers unicode identifiers or not - shouldn't matter, since we're only using it for trivia\n    pragmas: void 0,\n    checkJsDirective: void 0,\n    referencedFiles: [],\n    typeReferenceDirectives: [],\n    libReferenceDirectives: [],\n    amdDependencies: [],\n    hasNoDefaultLib: void 0,\n    moduleName: void 0\n  };\n  const importedFiles = [];\n  let ambientExternalModules;\n  let lastToken;\n  let currentToken;\n  let braceNesting = 0;\n  let externalModule = false;\n  function nextToken() {\n    lastToken = currentToken;\n    currentToken = scanner.scan();\n    if (currentToken === 19 /* OpenBraceToken */) {\n      braceNesting++;\n    } else if (currentToken === 20 /* CloseBraceToken */) {\n      braceNesting--;\n    }\n    return currentToken;\n  }\n  function getFileReference() {\n    const fileName = scanner.getTokenValue();\n    const pos = scanner.getTokenStart();\n    return { fileName, pos, end: pos + fileName.length };\n  }\n  function recordAmbientExternalModule() {\n    if (!ambientExternalModules) {\n      ambientExternalModules = [];\n    }\n    ambientExternalModules.push({ ref: getFileReference(), depth: braceNesting });\n  }\n  function recordModuleName() {\n    importedFiles.push(getFileReference());\n    markAsExternalModuleIfTopLevel();\n  }\n  function markAsExternalModuleIfTopLevel() {\n    if (braceNesting === 0) {\n      externalModule = true;\n    }\n  }\n  function tryConsumeDeclare() {\n    let token = scanner.getToken();\n    if (token === 138 /* DeclareKeyword */) {\n      token = nextToken();\n      if (token === 144 /* ModuleKeyword */) {\n        token = nextToken();\n        if (token === 11 /* StringLiteral */) {\n          recordAmbientExternalModule();\n        }\n      }\n      return true;\n    }\n    return false;\n  }\n  function tryConsumeImport() {\n    if (lastToken === 25 /* DotToken */) {\n      return false;\n    }\n    let token = scanner.getToken();\n    if (token === 102 /* ImportKeyword */) {\n      token = nextToken();\n      if (token === 21 /* OpenParenToken */) {\n        token = nextToken();\n        if (token === 11 /* StringLiteral */ || token === 15 /* NoSubstitutionTemplateLiteral */) {\n          recordModuleName();\n          return true;\n        }\n      } else if (token === 11 /* StringLiteral */) {\n        recordModuleName();\n        return true;\n      } else {\n        if (token === 156 /* TypeKeyword */) {\n          const skipTypeKeyword = scanner.lookAhead(() => {\n            const token2 = scanner.scan();\n            return token2 !== 161 /* FromKeyword */ && (token2 === 42 /* AsteriskToken */ || token2 === 19 /* OpenBraceToken */ || token2 === 80 /* Identifier */ || isKeyword(token2));\n          });\n          if (skipTypeKeyword) {\n            token = nextToken();\n          }\n        }\n        if (token === 80 /* Identifier */ || isKeyword(token)) {\n          token = nextToken();\n          if (token === 161 /* FromKeyword */) {\n            token = nextToken();\n            if (token === 11 /* StringLiteral */) {\n              recordModuleName();\n              return true;\n            }\n          } else if (token === 64 /* EqualsToken */) {\n            if (tryConsumeRequireCall(\n              /*skipCurrentToken*/\n              true\n            )) {\n              return true;\n            }\n          } else if (token === 28 /* CommaToken */) {\n            token = nextToken();\n          } else {\n            return true;\n          }\n        }\n        if (token === 19 /* OpenBraceToken */) {\n          token = nextToken();\n          while (token !== 20 /* CloseBraceToken */ && token !== 1 /* EndOfFileToken */) {\n            token = nextToken();\n          }\n          if (token === 20 /* CloseBraceToken */) {\n            token = nextToken();\n            if (token === 161 /* FromKeyword */) {\n              token = nextToken();\n              if (token === 11 /* StringLiteral */) {\n                recordModuleName();\n              }\n            }\n          }\n        } else if (token === 42 /* AsteriskToken */) {\n          token = nextToken();\n          if (token === 130 /* AsKeyword */) {\n            token = nextToken();\n            if (token === 80 /* Identifier */ || isKeyword(token)) {\n              token = nextToken();\n              if (token === 161 /* FromKeyword */) {\n                token = nextToken();\n                if (token === 11 /* StringLiteral */) {\n                  recordModuleName();\n                }\n              }\n            }\n          }\n        }\n      }\n      return true;\n    }\n    return false;\n  }\n  function tryConsumeExport() {\n    let token = scanner.getToken();\n    if (token === 95 /* ExportKeyword */) {\n      markAsExternalModuleIfTopLevel();\n      token = nextToken();\n      if (token === 156 /* TypeKeyword */) {\n        const skipTypeKeyword = scanner.lookAhead(() => {\n          const token2 = scanner.scan();\n          return token2 === 42 /* AsteriskToken */ || token2 === 19 /* OpenBraceToken */;\n        });\n        if (skipTypeKeyword) {\n          token = nextToken();\n        }\n      }\n      if (token === 19 /* OpenBraceToken */) {\n        token = nextToken();\n        while (token !== 20 /* CloseBraceToken */ && token !== 1 /* EndOfFileToken */) {\n          token = nextToken();\n        }\n        if (token === 20 /* CloseBraceToken */) {\n          token = nextToken();\n          if (token === 161 /* FromKeyword */) {\n            token = nextToken();\n            if (token === 11 /* StringLiteral */) {\n              recordModuleName();\n            }\n          }\n        }\n      } else if (token === 42 /* AsteriskToken */) {\n        token = nextToken();\n        if (token === 161 /* FromKeyword */) {\n          token = nextToken();\n          if (token === 11 /* StringLiteral */) {\n            recordModuleName();\n          }\n        }\n      } else if (token === 102 /* ImportKeyword */) {\n        token = nextToken();\n        if (token === 156 /* TypeKeyword */) {\n          const skipTypeKeyword = scanner.lookAhead(() => {\n            const token2 = scanner.scan();\n            return token2 === 80 /* Identifier */ || isKeyword(token2);\n          });\n          if (skipTypeKeyword) {\n            token = nextToken();\n          }\n        }\n        if (token === 80 /* Identifier */ || isKeyword(token)) {\n          token = nextToken();\n          if (token === 64 /* EqualsToken */) {\n            if (tryConsumeRequireCall(\n              /*skipCurrentToken*/\n              true\n            )) {\n              return true;\n            }\n          }\n        }\n      }\n      return true;\n    }\n    return false;\n  }\n  function tryConsumeRequireCall(skipCurrentToken, allowTemplateLiterals = false) {\n    let token = skipCurrentToken ? nextToken() : scanner.getToken();\n    if (token === 149 /* RequireKeyword */) {\n      token = nextToken();\n      if (token === 21 /* OpenParenToken */) {\n        token = nextToken();\n        if (token === 11 /* StringLiteral */ || allowTemplateLiterals && token === 15 /* NoSubstitutionTemplateLiteral */) {\n          recordModuleName();\n        }\n      }\n      return true;\n    }\n    return false;\n  }\n  function tryConsumeDefine() {\n    let token = scanner.getToken();\n    if (token === 80 /* Identifier */ && scanner.getTokenValue() === \"define\") {\n      token = nextToken();\n      if (token !== 21 /* OpenParenToken */) {\n        return true;\n      }\n      token = nextToken();\n      if (token === 11 /* StringLiteral */ || token === 15 /* NoSubstitutionTemplateLiteral */) {\n        token = nextToken();\n        if (token === 28 /* CommaToken */) {\n          token = nextToken();\n        } else {\n          return true;\n        }\n      }\n      if (token !== 23 /* OpenBracketToken */) {\n        return true;\n      }\n      token = nextToken();\n      while (token !== 24 /* CloseBracketToken */ && token !== 1 /* EndOfFileToken */) {\n        if (token === 11 /* StringLiteral */ || token === 15 /* NoSubstitutionTemplateLiteral */) {\n          recordModuleName();\n        }\n        token = nextToken();\n      }\n      return true;\n    }\n    return false;\n  }\n  function processImports() {\n    scanner.setText(sourceText);\n    nextToken();\n    while (true) {\n      if (scanner.getToken() === 1 /* EndOfFileToken */) {\n        break;\n      }\n      if (scanner.getToken() === 16 /* TemplateHead */) {\n        const stack = [scanner.getToken()];\n        loop:\n          while (length(stack)) {\n            const token = scanner.scan();\n            switch (token) {\n              case 1 /* EndOfFileToken */:\n                break loop;\n              case 102 /* ImportKeyword */:\n                tryConsumeImport();\n                break;\n              case 16 /* TemplateHead */:\n                stack.push(token);\n                break;\n              case 19 /* OpenBraceToken */:\n                if (length(stack)) {\n                  stack.push(token);\n                }\n                break;\n              case 20 /* CloseBraceToken */:\n                if (length(stack)) {\n                  if (lastOrUndefined(stack) === 16 /* TemplateHead */) {\n                    if (scanner.reScanTemplateToken(\n                      /*isTaggedTemplate*/\n                      false\n                    ) === 18 /* TemplateTail */) {\n                      stack.pop();\n                    }\n                  } else {\n                    stack.pop();\n                  }\n                }\n                break;\n            }\n          }\n        nextToken();\n      }\n      if (tryConsumeDeclare() || tryConsumeImport() || tryConsumeExport() || detectJavaScriptImports && (tryConsumeRequireCall(\n        /*skipCurrentToken*/\n        false,\n        /*allowTemplateLiterals*/\n        true\n      ) || tryConsumeDefine())) {\n        continue;\n      } else {\n        nextToken();\n      }\n    }\n    scanner.setText(void 0);\n  }\n  if (readImportFiles) {\n    processImports();\n  }\n  processCommentPragmas(pragmaContext, sourceText);\n  processPragmasIntoFields(pragmaContext, noop);\n  if (externalModule) {\n    if (ambientExternalModules) {\n      for (const decl of ambientExternalModules) {\n        importedFiles.push(decl.ref);\n      }\n    }\n    return { referencedFiles: pragmaContext.referencedFiles, typeReferenceDirectives: pragmaContext.typeReferenceDirectives, libReferenceDirectives: pragmaContext.libReferenceDirectives, importedFiles, isLibFile: !!pragmaContext.hasNoDefaultLib, ambientExternalModules: void 0 };\n  } else {\n    let ambientModuleNames;\n    if (ambientExternalModules) {\n      for (const decl of ambientExternalModules) {\n        if (decl.depth === 0) {\n          if (!ambientModuleNames) {\n            ambientModuleNames = [];\n          }\n          ambientModuleNames.push(decl.ref.fileName);\n        } else {\n          importedFiles.push(decl.ref);\n        }\n      }\n    }\n    return { referencedFiles: pragmaContext.referencedFiles, typeReferenceDirectives: pragmaContext.typeReferenceDirectives, libReferenceDirectives: pragmaContext.libReferenceDirectives, importedFiles, isLibFile: !!pragmaContext.hasNoDefaultLib, ambientExternalModules: ambientModuleNames };\n  }\n}\n\n// src/services/sourcemaps.ts\nvar base64UrlRegExp = /^data:(?:application\\/json;charset=[uU][tT][fF]-8;base64,([A-Za-z0-9+/=]+)$)?/;\nfunction getSourceMapper(host) {\n  const getCanonicalFileName = createGetCanonicalFileName(host.useCaseSensitiveFileNames());\n  const currentDirectory = host.getCurrentDirectory();\n  const sourceFileLike = /* @__PURE__ */ new Map();\n  const documentPositionMappers = /* @__PURE__ */ new Map();\n  return {\n    tryGetSourcePosition,\n    tryGetGeneratedPosition,\n    toLineColumnOffset,\n    clearCache,\n    documentPositionMappers\n  };\n  function toPath3(fileName) {\n    return toPath(fileName, currentDirectory, getCanonicalFileName);\n  }\n  function getDocumentPositionMapper2(generatedFileName, sourceFileName) {\n    const path = toPath3(generatedFileName);\n    const value = documentPositionMappers.get(path);\n    if (value) return value;\n    let mapper;\n    if (host.getDocumentPositionMapper) {\n      mapper = host.getDocumentPositionMapper(generatedFileName, sourceFileName);\n    } else if (host.readFile) {\n      const file = getSourceFileLike(generatedFileName);\n      mapper = file && getDocumentPositionMapper(\n        { getSourceFileLike, getCanonicalFileName, log: (s) => host.log(s) },\n        generatedFileName,\n        getLineInfo(file.text, getLineStarts(file)),\n        (f) => !host.fileExists || host.fileExists(f) ? host.readFile(f) : void 0\n      );\n    }\n    documentPositionMappers.set(path, mapper || identitySourceMapConsumer);\n    return mapper || identitySourceMapConsumer;\n  }\n  function tryGetSourcePosition(info) {\n    if (!isDeclarationFileName(info.fileName)) return void 0;\n    const file = getSourceFile(info.fileName);\n    if (!file) return void 0;\n    const newLoc = getDocumentPositionMapper2(info.fileName).getSourcePosition(info);\n    return !newLoc || newLoc === info ? void 0 : tryGetSourcePosition(newLoc) || newLoc;\n  }\n  function tryGetGeneratedPosition(info) {\n    if (isDeclarationFileName(info.fileName)) return void 0;\n    const sourceFile = getSourceFile(info.fileName);\n    if (!sourceFile) return void 0;\n    const program = host.getProgram();\n    if (program.isSourceOfProjectReferenceRedirect(sourceFile.fileName)) {\n      return void 0;\n    }\n    const options = program.getCompilerOptions();\n    const outPath = options.outFile;\n    const declarationPath = outPath ? removeFileExtension(outPath) + \".d.ts\" /* Dts */ : getDeclarationEmitOutputFilePathWorker(info.fileName, program.getCompilerOptions(), program);\n    if (declarationPath === void 0) return void 0;\n    const newLoc = getDocumentPositionMapper2(declarationPath, info.fileName).getGeneratedPosition(info);\n    return newLoc === info ? void 0 : newLoc;\n  }\n  function getSourceFile(fileName) {\n    const program = host.getProgram();\n    if (!program) return void 0;\n    const path = toPath3(fileName);\n    const file = program.getSourceFileByPath(path);\n    return file && file.resolvedPath === path ? file : void 0;\n  }\n  function getOrCreateSourceFileLike(fileName) {\n    const path = toPath3(fileName);\n    const fileFromCache = sourceFileLike.get(path);\n    if (fileFromCache !== void 0) return fileFromCache ? fileFromCache : void 0;\n    if (!host.readFile || host.fileExists && !host.fileExists(fileName)) {\n      sourceFileLike.set(path, false);\n      return void 0;\n    }\n    const text = host.readFile(fileName);\n    const file = text ? createSourceFileLike(text) : false;\n    sourceFileLike.set(path, file);\n    return file ? file : void 0;\n  }\n  function getSourceFileLike(fileName) {\n    return !host.getSourceFileLike ? getSourceFile(fileName) || getOrCreateSourceFileLike(fileName) : host.getSourceFileLike(fileName);\n  }\n  function toLineColumnOffset(fileName, position) {\n    const file = getSourceFileLike(fileName);\n    return file.getLineAndCharacterOfPosition(position);\n  }\n  function clearCache() {\n    sourceFileLike.clear();\n    documentPositionMappers.clear();\n  }\n}\nfunction getDocumentPositionMapper(host, generatedFileName, generatedFileLineInfo, readMapFile) {\n  let mapFileName = tryGetSourceMappingURL(generatedFileLineInfo);\n  if (mapFileName) {\n    const match = base64UrlRegExp.exec(mapFileName);\n    if (match) {\n      if (match[1]) {\n        const base64Object = match[1];\n        return convertDocumentToSourceMapper(host, base64decode(sys, base64Object), generatedFileName);\n      }\n      mapFileName = void 0;\n    }\n  }\n  const possibleMapLocations = [];\n  if (mapFileName) {\n    possibleMapLocations.push(mapFileName);\n  }\n  possibleMapLocations.push(generatedFileName + \".map\");\n  const originalMapFileName = mapFileName && getNormalizedAbsolutePath(mapFileName, getDirectoryPath(generatedFileName));\n  for (const location of possibleMapLocations) {\n    const mapFileName2 = getNormalizedAbsolutePath(location, getDirectoryPath(generatedFileName));\n    const mapFileContents = readMapFile(mapFileName2, originalMapFileName);\n    if (isString(mapFileContents)) {\n      return convertDocumentToSourceMapper(host, mapFileContents, mapFileName2);\n    }\n    if (mapFileContents !== void 0) {\n      return mapFileContents || void 0;\n    }\n  }\n  return void 0;\n}\nfunction convertDocumentToSourceMapper(host, contents, mapFileName) {\n  const map2 = tryParseRawSourceMap(contents);\n  if (!map2 || !map2.sources || !map2.file || !map2.mappings) {\n    return void 0;\n  }\n  if (map2.sourcesContent && map2.sourcesContent.some(isString)) return void 0;\n  return createDocumentPositionMapper(host, map2, mapFileName);\n}\nfunction createSourceFileLike(text, lineMap) {\n  return {\n    text,\n    lineMap,\n    getLineAndCharacterOfPosition(pos) {\n      return computeLineAndCharacterOfPosition(getLineStarts(this), pos);\n    }\n  };\n}\n\n// src/services/suggestionDiagnostics.ts\nvar visitedNestedConvertibleFunctions = /* @__PURE__ */ new Map();\nfunction computeSuggestionDiagnostics(sourceFile, program, cancellationToken) {\n  var _a;\n  program.getSemanticDiagnostics(sourceFile, cancellationToken);\n  const diags = [];\n  const checker = program.getTypeChecker();\n  const isCommonJSFile = program.getImpliedNodeFormatForEmit(sourceFile) === 1 /* CommonJS */ || fileExtensionIsOneOf(sourceFile.fileName, [\".cts\" /* Cts */, \".cjs\" /* Cjs */]);\n  if (!isCommonJSFile && sourceFile.commonJsModuleIndicator && (programContainsEsModules(program) || compilerOptionsIndicateEsModules(program.getCompilerOptions())) && containsTopLevelCommonjs(sourceFile)) {\n    diags.push(createDiagnosticForNode(getErrorNodeFromCommonJsIndicator(sourceFile.commonJsModuleIndicator), Diagnostics.File_is_a_CommonJS_module_it_may_be_converted_to_an_ES_module));\n  }\n  const isJsFile = isSourceFileJS(sourceFile);\n  visitedNestedConvertibleFunctions.clear();\n  check(sourceFile);\n  if (getAllowSyntheticDefaultImports(program.getCompilerOptions())) {\n    for (const moduleSpecifier of sourceFile.imports) {\n      const importNode = importFromModuleSpecifier(moduleSpecifier);\n      if (isImportEqualsDeclaration(importNode) && hasSyntacticModifier(importNode, 32 /* Export */)) continue;\n      const name = importNameForConvertToDefaultImport(importNode);\n      if (!name) continue;\n      const module2 = (_a = program.getResolvedModuleFromModuleSpecifier(moduleSpecifier, sourceFile)) == null ? void 0 : _a.resolvedModule;\n      const resolvedFile = module2 && program.getSourceFile(module2.resolvedFileName);\n      if (resolvedFile && resolvedFile.externalModuleIndicator && resolvedFile.externalModuleIndicator !== true && isExportAssignment(resolvedFile.externalModuleIndicator) && resolvedFile.externalModuleIndicator.isExportEquals) {\n        diags.push(createDiagnosticForNode(name, Diagnostics.Import_may_be_converted_to_a_default_import));\n      }\n    }\n  }\n  addRange(diags, sourceFile.bindSuggestionDiagnostics);\n  addRange(diags, program.getSuggestionDiagnostics(sourceFile, cancellationToken));\n  diags.sort((d1, d2) => d1.start - d2.start);\n  return diags;\n  function check(node) {\n    if (isJsFile) {\n      if (canBeConvertedToClass(node, checker)) {\n        diags.push(createDiagnosticForNode(isVariableDeclaration(node.parent) ? node.parent.name : node, Diagnostics.This_constructor_function_may_be_converted_to_a_class_declaration));\n      }\n    } else {\n      if (isVariableStatement(node) && node.parent === sourceFile && node.declarationList.flags & 2 /* Const */ && node.declarationList.declarations.length === 1) {\n        const init = node.declarationList.declarations[0].initializer;\n        if (init && isRequireCall(\n          init,\n          /*requireStringLiteralLikeArgument*/\n          true\n        )) {\n          diags.push(createDiagnosticForNode(init, Diagnostics.require_call_may_be_converted_to_an_import));\n        }\n      }\n      const jsdocTypedefNodes = ts_codefix_exports.getJSDocTypedefNodes(node);\n      for (const jsdocTypedefNode of jsdocTypedefNodes) {\n        diags.push(createDiagnosticForNode(jsdocTypedefNode, Diagnostics.JSDoc_typedef_may_be_converted_to_TypeScript_type));\n      }\n      if (ts_codefix_exports.parameterShouldGetTypeFromJSDoc(node)) {\n        diags.push(createDiagnosticForNode(node.name || node, Diagnostics.JSDoc_types_may_be_moved_to_TypeScript_types));\n      }\n    }\n    if (canBeConvertedToAsync(node)) {\n      addConvertToAsyncFunctionDiagnostics(node, checker, diags);\n    }\n    node.forEachChild(check);\n  }\n}\nfunction containsTopLevelCommonjs(sourceFile) {\n  return sourceFile.statements.some((statement) => {\n    switch (statement.kind) {\n      case 244 /* VariableStatement */:\n        return statement.declarationList.declarations.some((decl) => !!decl.initializer && isRequireCall(\n          propertyAccessLeftHandSide(decl.initializer),\n          /*requireStringLiteralLikeArgument*/\n          true\n        ));\n      case 245 /* ExpressionStatement */: {\n        const { expression } = statement;\n        if (!isBinaryExpression(expression)) return isRequireCall(\n          expression,\n          /*requireStringLiteralLikeArgument*/\n          true\n        );\n        const kind = getAssignmentDeclarationKind(expression);\n        return kind === 1 /* ExportsProperty */ || kind === 2 /* ModuleExports */;\n      }\n      default:\n        return false;\n    }\n  });\n}\nfunction propertyAccessLeftHandSide(node) {\n  return isPropertyAccessExpression(node) ? propertyAccessLeftHandSide(node.expression) : node;\n}\nfunction importNameForConvertToDefaultImport(node) {\n  switch (node.kind) {\n    case 273 /* ImportDeclaration */:\n      const { importClause, moduleSpecifier } = node;\n      return importClause && !importClause.name && importClause.namedBindings && importClause.namedBindings.kind === 275 /* NamespaceImport */ && isStringLiteral(moduleSpecifier) ? importClause.namedBindings.name : void 0;\n    case 272 /* ImportEqualsDeclaration */:\n      return node.name;\n    default:\n      return void 0;\n  }\n}\nfunction addConvertToAsyncFunctionDiagnostics(node, checker, diags) {\n  if (isConvertibleFunction(node, checker) && !visitedNestedConvertibleFunctions.has(getKeyFromNode(node))) {\n    diags.push(createDiagnosticForNode(\n      !node.name && isVariableDeclaration(node.parent) && isIdentifier(node.parent.name) ? node.parent.name : node,\n      Diagnostics.This_may_be_converted_to_an_async_function\n    ));\n  }\n}\nfunction isConvertibleFunction(node, checker) {\n  return !isAsyncFunction(node) && node.body && isBlock(node.body) && hasReturnStatementWithPromiseHandler(node.body, checker) && returnsPromise(node, checker);\n}\nfunction returnsPromise(node, checker) {\n  const signature = checker.getSignatureFromDeclaration(node);\n  const returnType = signature ? checker.getReturnTypeOfSignature(signature) : void 0;\n  return !!returnType && !!checker.getPromisedTypeOfPromise(returnType);\n}\nfunction getErrorNodeFromCommonJsIndicator(commonJsModuleIndicator) {\n  return isBinaryExpression(commonJsModuleIndicator) ? commonJsModuleIndicator.left : commonJsModuleIndicator;\n}\nfunction hasReturnStatementWithPromiseHandler(body, checker) {\n  return !!forEachReturnStatement(body, (statement) => isReturnStatementWithFixablePromiseHandler(statement, checker));\n}\nfunction isReturnStatementWithFixablePromiseHandler(node, checker) {\n  return isReturnStatement(node) && !!node.expression && isFixablePromiseHandler(node.expression, checker);\n}\nfunction isFixablePromiseHandler(node, checker) {\n  if (!isPromiseHandler(node) || !hasSupportedNumberOfArguments(node) || !node.arguments.every((arg) => isFixablePromiseArgument(arg, checker))) {\n    return false;\n  }\n  let currentNode = node.expression.expression;\n  while (isPromiseHandler(currentNode) || isPropertyAccessExpression(currentNode)) {\n    if (isCallExpression(currentNode)) {\n      if (!hasSupportedNumberOfArguments(currentNode) || !currentNode.arguments.every((arg) => isFixablePromiseArgument(arg, checker))) {\n        return false;\n      }\n      currentNode = currentNode.expression.expression;\n    } else {\n      currentNode = currentNode.expression;\n    }\n  }\n  return true;\n}\nfunction isPromiseHandler(node) {\n  return isCallExpression(node) && (hasPropertyAccessExpressionWithName(node, \"then\") || hasPropertyAccessExpressionWithName(node, \"catch\") || hasPropertyAccessExpressionWithName(node, \"finally\"));\n}\nfunction hasSupportedNumberOfArguments(node) {\n  const name = node.expression.name.text;\n  const maxArguments = name === \"then\" ? 2 : name === \"catch\" ? 1 : name === \"finally\" ? 1 : 0;\n  if (node.arguments.length > maxArguments) return false;\n  if (node.arguments.length < maxArguments) return true;\n  return maxArguments === 1 || some(node.arguments, (arg) => {\n    return arg.kind === 106 /* NullKeyword */ || isIdentifier(arg) && arg.text === \"undefined\";\n  });\n}\nfunction isFixablePromiseArgument(arg, checker) {\n  switch (arg.kind) {\n    case 263 /* FunctionDeclaration */:\n    case 219 /* FunctionExpression */:\n      const functionFlags = getFunctionFlags(arg);\n      if (functionFlags & 1 /* Generator */) {\n        return false;\n      }\n    // falls through\n    case 220 /* ArrowFunction */:\n      visitedNestedConvertibleFunctions.set(getKeyFromNode(arg), true);\n    // falls through\n    case 106 /* NullKeyword */:\n      return true;\n    case 80 /* Identifier */:\n    case 212 /* PropertyAccessExpression */: {\n      const symbol = checker.getSymbolAtLocation(arg);\n      if (!symbol) {\n        return false;\n      }\n      return checker.isUndefinedSymbol(symbol) || some(skipAlias(symbol, checker).declarations, (d) => isFunctionLike(d) || hasInitializer(d) && !!d.initializer && isFunctionLike(d.initializer));\n    }\n    default:\n      return false;\n  }\n}\nfunction getKeyFromNode(exp) {\n  return `${exp.pos.toString()}:${exp.end.toString()}`;\n}\nfunction canBeConvertedToClass(node, checker) {\n  var _a, _b, _c, _d;\n  if (isFunctionExpression(node)) {\n    if (isVariableDeclaration(node.parent) && ((_a = node.symbol.members) == null ? void 0 : _a.size)) {\n      return true;\n    }\n    const symbol = checker.getSymbolOfExpando(\n      node,\n      /*allowDeclaration*/\n      false\n    );\n    return !!(symbol && (((_b = symbol.exports) == null ? void 0 : _b.size) || ((_c = symbol.members) == null ? void 0 : _c.size)));\n  }\n  if (isFunctionDeclaration(node)) {\n    return !!((_d = node.symbol.members) == null ? void 0 : _d.size);\n  }\n  return false;\n}\nfunction canBeConvertedToAsync(node) {\n  switch (node.kind) {\n    case 263 /* FunctionDeclaration */:\n    case 175 /* MethodDeclaration */:\n    case 219 /* FunctionExpression */:\n    case 220 /* ArrowFunction */:\n      return true;\n    default:\n      return false;\n  }\n}\n\n// src/services/transpile.ts\nvar optionsRedundantWithVerbatimModuleSyntax = /* @__PURE__ */ new Set([\n  \"isolatedModules\"\n]);\nfunction transpileModule(input, transpileOptions) {\n  return transpileWorker(\n    input,\n    transpileOptions,\n    /*declaration*/\n    false\n  );\n}\nfunction transpileDeclaration(input, transpileOptions) {\n  return transpileWorker(\n    input,\n    transpileOptions,\n    /*declaration*/\n    true\n  );\n}\nvar barebonesLibContent = `/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number {}\ninterface Object {}\ninterface RegExp {}\ninterface String {}\ninterface Array<T> { length: number; [n: number]: T; }\ninterface SymbolConstructor {\n    (desc?: string | number): symbol;\n    for(name: string): symbol;\n    readonly toStringTag: symbol;\n}\ndeclare var Symbol: SymbolConstructor;\ninterface Symbol {\n    readonly [Symbol.toStringTag]: string;\n}`;\nvar barebonesLibName = \"lib.d.ts\";\nvar barebonesLibSourceFile;\nfunction transpileWorker(input, transpileOptions, declaration) {\n  barebonesLibSourceFile ?? (barebonesLibSourceFile = createSourceFile(barebonesLibName, barebonesLibContent, { languageVersion: 99 /* Latest */ }));\n  const diagnostics = [];\n  const options = transpileOptions.compilerOptions ? fixupCompilerOptions(transpileOptions.compilerOptions, diagnostics) : {};\n  const defaultOptions = getDefaultCompilerOptions2();\n  for (const key in defaultOptions) {\n    if (hasProperty(defaultOptions, key) && options[key] === void 0) {\n      options[key] = defaultOptions[key];\n    }\n  }\n  for (const option of transpileOptionValueCompilerOptions) {\n    if (options.verbatimModuleSyntax && optionsRedundantWithVerbatimModuleSyntax.has(option.name)) {\n      continue;\n    }\n    options[option.name] = option.transpileOptionValue;\n  }\n  options.suppressOutputPathCheck = true;\n  options.allowNonTsExtensions = true;\n  if (declaration) {\n    options.declaration = true;\n    options.emitDeclarationOnly = true;\n    options.isolatedDeclarations = true;\n  } else {\n    options.declaration = false;\n    options.declarationMap = false;\n  }\n  const newLine = getNewLineCharacter(options);\n  const compilerHost = {\n    getSourceFile: (fileName) => fileName === normalizePath(inputFileName) ? sourceFile : fileName === normalizePath(barebonesLibName) ? barebonesLibSourceFile : void 0,\n    writeFile: (name, text) => {\n      if (fileExtensionIs(name, \".map\")) {\n        Debug.assertEqual(sourceMapText, void 0, \"Unexpected multiple source map outputs, file:\", name);\n        sourceMapText = text;\n      } else {\n        Debug.assertEqual(outputText, void 0, \"Unexpected multiple outputs, file:\", name);\n        outputText = text;\n      }\n    },\n    getDefaultLibFileName: () => barebonesLibName,\n    useCaseSensitiveFileNames: () => false,\n    getCanonicalFileName: (fileName) => fileName,\n    getCurrentDirectory: () => \"\",\n    getNewLine: () => newLine,\n    fileExists: (fileName) => fileName === inputFileName || !!declaration && fileName === barebonesLibName,\n    readFile: () => \"\",\n    directoryExists: () => true,\n    getDirectories: () => []\n  };\n  const inputFileName = transpileOptions.fileName || (transpileOptions.compilerOptions && transpileOptions.compilerOptions.jsx ? \"module.tsx\" : \"module.ts\");\n  const sourceFile = createSourceFile(\n    inputFileName,\n    input,\n    {\n      languageVersion: getEmitScriptTarget(options),\n      impliedNodeFormat: getImpliedNodeFormatForFile(\n        toPath(inputFileName, \"\", compilerHost.getCanonicalFileName),\n        /*packageJsonInfoCache*/\n        void 0,\n        compilerHost,\n        options\n      ),\n      setExternalModuleIndicator: getSetExternalModuleIndicator(options),\n      jsDocParsingMode: transpileOptions.jsDocParsingMode ?? 0 /* ParseAll */\n    }\n  );\n  if (transpileOptions.moduleName) {\n    sourceFile.moduleName = transpileOptions.moduleName;\n  }\n  if (transpileOptions.renamedDependencies) {\n    sourceFile.renamedDependencies = new Map(Object.entries(transpileOptions.renamedDependencies));\n  }\n  let outputText;\n  let sourceMapText;\n  const inputs = declaration ? [inputFileName, barebonesLibName] : [inputFileName];\n  const program = createProgram(inputs, options, compilerHost);\n  if (transpileOptions.reportDiagnostics) {\n    addRange(\n      /*to*/\n      diagnostics,\n      /*from*/\n      program.getSyntacticDiagnostics(sourceFile)\n    );\n    addRange(\n      /*to*/\n      diagnostics,\n      /*from*/\n      program.getOptionsDiagnostics()\n    );\n  }\n  const result = program.emit(\n    /*targetSourceFile*/\n    void 0,\n    /*writeFile*/\n    void 0,\n    /*cancellationToken*/\n    void 0,\n    /*emitOnlyDtsFiles*/\n    declaration,\n    transpileOptions.transformers,\n    /*forceDtsEmit*/\n    declaration\n  );\n  addRange(\n    /*to*/\n    diagnostics,\n    /*from*/\n    result.diagnostics\n  );\n  if (outputText === void 0) return Debug.fail(\"Output generation failed\");\n  return { outputText, diagnostics, sourceMapText };\n}\nfunction transpile(input, compilerOptions, fileName, diagnostics, moduleName) {\n  const output = transpileModule(input, { compilerOptions, fileName, reportDiagnostics: !!diagnostics, moduleName });\n  addRange(diagnostics, output.diagnostics);\n  return output.outputText;\n}\nvar commandLineOptionsStringToEnum;\nfunction fixupCompilerOptions(options, diagnostics) {\n  commandLineOptionsStringToEnum = commandLineOptionsStringToEnum || filter(optionDeclarations, (o) => typeof o.type === \"object\" && !forEachEntry(o.type, (v) => typeof v !== \"number\"));\n  options = cloneCompilerOptions(options);\n  for (const opt of commandLineOptionsStringToEnum) {\n    if (!hasProperty(options, opt.name)) {\n      continue;\n    }\n    const value = options[opt.name];\n    if (isString(value)) {\n      options[opt.name] = parseCustomTypeOption(opt, value, diagnostics);\n    } else {\n      if (!forEachEntry(opt.type, (v) => v === value)) {\n        diagnostics.push(createCompilerDiagnosticForInvalidCustomType(opt));\n      }\n    }\n  }\n  return options;\n}\n\n// src/services/_namespaces/ts.NavigateTo.ts\nvar ts_NavigateTo_exports = {};\n__export(ts_NavigateTo_exports, {\n  getNavigateToItems: () => getNavigateToItems\n});\n\n// src/services/navigateTo.ts\nfunction getNavigateToItems(sourceFiles, checker, cancellationToken, searchValue, maxResultCount, excludeDtsFiles, excludeLibFiles) {\n  const patternMatcher = createPatternMatcher(searchValue);\n  if (!patternMatcher) return emptyArray;\n  const rawItems = [];\n  const singleCurrentFile = sourceFiles.length === 1 ? sourceFiles[0] : void 0;\n  for (const sourceFile of sourceFiles) {\n    cancellationToken.throwIfCancellationRequested();\n    if (excludeDtsFiles && sourceFile.isDeclarationFile) {\n      continue;\n    }\n    if (shouldExcludeFile(sourceFile, !!excludeLibFiles, singleCurrentFile)) {\n      continue;\n    }\n    sourceFile.getNamedDeclarations().forEach((declarations, name) => {\n      getItemsFromNamedDeclaration(patternMatcher, name, declarations, checker, sourceFile.fileName, !!excludeLibFiles, singleCurrentFile, rawItems);\n    });\n  }\n  rawItems.sort(compareNavigateToItems);\n  return (maxResultCount === void 0 ? rawItems : rawItems.slice(0, maxResultCount)).map(createNavigateToItem);\n}\nfunction shouldExcludeFile(file, excludeLibFiles, singleCurrentFile) {\n  return file !== singleCurrentFile && excludeLibFiles && (isInsideNodeModules(file.path) || file.hasNoDefaultLib);\n}\nfunction getItemsFromNamedDeclaration(patternMatcher, name, declarations, checker, fileName, excludeLibFiles, singleCurrentFile, rawItems) {\n  const match = patternMatcher.getMatchForLastSegmentOfPattern(name);\n  if (!match) {\n    return;\n  }\n  for (const declaration of declarations) {\n    if (!shouldKeepItem(declaration, checker, excludeLibFiles, singleCurrentFile)) continue;\n    if (patternMatcher.patternContainsDots) {\n      const fullMatch = patternMatcher.getFullMatch(getContainers(declaration), name);\n      if (fullMatch) {\n        rawItems.push({ name, fileName, matchKind: fullMatch.kind, isCaseSensitive: fullMatch.isCaseSensitive, declaration });\n      }\n    } else {\n      rawItems.push({ name, fileName, matchKind: match.kind, isCaseSensitive: match.isCaseSensitive, declaration });\n    }\n  }\n}\nfunction shouldKeepItem(declaration, checker, excludeLibFiles, singleCurrentFile) {\n  var _a;\n  switch (declaration.kind) {\n    case 274 /* ImportClause */:\n    case 277 /* ImportSpecifier */:\n    case 272 /* ImportEqualsDeclaration */:\n      const importer = checker.getSymbolAtLocation(declaration.name);\n      const imported = checker.getAliasedSymbol(importer);\n      return importer.escapedName !== imported.escapedName && !((_a = imported.declarations) == null ? void 0 : _a.every((d) => shouldExcludeFile(d.getSourceFile(), excludeLibFiles, singleCurrentFile)));\n    default:\n      return true;\n  }\n}\nfunction tryAddSingleDeclarationName(declaration, containers) {\n  const name = getNameOfDeclaration(declaration);\n  return !!name && (pushLiteral(name, containers) || name.kind === 168 /* ComputedPropertyName */ && tryAddComputedPropertyName(name.expression, containers));\n}\nfunction tryAddComputedPropertyName(expression, containers) {\n  return pushLiteral(expression, containers) || isPropertyAccessExpression(expression) && (containers.push(expression.name.text), true) && tryAddComputedPropertyName(expression.expression, containers);\n}\nfunction pushLiteral(node, containers) {\n  return isPropertyNameLiteral(node) && (containers.push(getTextOfIdentifierOrLiteral(node)), true);\n}\nfunction getContainers(declaration) {\n  const containers = [];\n  const name = getNameOfDeclaration(declaration);\n  if (name && name.kind === 168 /* ComputedPropertyName */ && !tryAddComputedPropertyName(name.expression, containers)) {\n    return emptyArray;\n  }\n  containers.shift();\n  let container = getContainerNode(declaration);\n  while (container) {\n    if (!tryAddSingleDeclarationName(container, containers)) {\n      return emptyArray;\n    }\n    container = getContainerNode(container);\n  }\n  containers.reverse();\n  return containers;\n}\nfunction compareNavigateToItems(i1, i2) {\n  return compareValues(i1.matchKind, i2.matchKind) || compareStringsCaseSensitiveUI(i1.name, i2.name);\n}\nfunction createNavigateToItem(rawItem) {\n  const declaration = rawItem.declaration;\n  const container = getContainerNode(declaration);\n  const containerName = container && getNameOfDeclaration(container);\n  return {\n    name: rawItem.name,\n    kind: getNodeKind(declaration),\n    kindModifiers: getNodeModifiers(declaration),\n    matchKind: PatternMatchKind[rawItem.matchKind],\n    isCaseSensitive: rawItem.isCaseSensitive,\n    fileName: rawItem.fileName,\n    textSpan: createTextSpanFromNode(declaration),\n    // TODO(jfreeman): What should be the containerName when the container has a computed name?\n    containerName: containerName ? containerName.text : \"\",\n    containerKind: containerName ? getNodeKind(container) : \"\" /* unknown */\n  };\n}\n\n// src/services/_namespaces/ts.NavigationBar.ts\nvar ts_NavigationBar_exports = {};\n__export(ts_NavigationBar_exports, {\n  getNavigationBarItems: () => getNavigationBarItems,\n  getNavigationTree: () => getNavigationTree\n});\n\n// src/services/navigationBar.ts\nvar whiteSpaceRegex = /\\s+/g;\nvar maxLength = 150;\nvar curCancellationToken;\nvar curSourceFile;\nvar parentsStack = [];\nvar parent;\nvar trackedEs5ClassesStack = [];\nvar trackedEs5Classes;\nvar emptyChildItemArray = [];\nfunction getNavigationBarItems(sourceFile, cancellationToken) {\n  curCancellationToken = cancellationToken;\n  curSourceFile = sourceFile;\n  try {\n    return map(primaryNavBarMenuItems(rootNavigationBarNode(sourceFile)), convertToPrimaryNavBarMenuItem);\n  } finally {\n    reset();\n  }\n}\nfunction getNavigationTree(sourceFile, cancellationToken) {\n  curCancellationToken = cancellationToken;\n  curSourceFile = sourceFile;\n  try {\n    return convertToTree(rootNavigationBarNode(sourceFile));\n  } finally {\n    reset();\n  }\n}\nfunction reset() {\n  curSourceFile = void 0;\n  curCancellationToken = void 0;\n  parentsStack = [];\n  parent = void 0;\n  emptyChildItemArray = [];\n}\nfunction nodeText(node) {\n  return cleanText(node.getText(curSourceFile));\n}\nfunction navigationBarNodeKind(n) {\n  return n.node.kind;\n}\nfunction pushChild(parent2, child) {\n  if (parent2.children) {\n    parent2.children.push(child);\n  } else {\n    parent2.children = [child];\n  }\n}\nfunction rootNavigationBarNode(sourceFile) {\n  Debug.assert(!parentsStack.length);\n  const root = { node: sourceFile, name: void 0, additionalNodes: void 0, parent: void 0, children: void 0, indent: 0 };\n  parent = root;\n  for (const statement of sourceFile.statements) {\n    addChildrenRecursively(statement);\n  }\n  endNode();\n  Debug.assert(!parent && !parentsStack.length);\n  return root;\n}\nfunction addLeafNode(node, name) {\n  pushChild(parent, emptyNavigationBarNode(node, name));\n}\nfunction emptyNavigationBarNode(node, name) {\n  return {\n    node,\n    name: name || (isDeclaration(node) || isExpression(node) ? getNameOfDeclaration(node) : void 0),\n    additionalNodes: void 0,\n    parent,\n    children: void 0,\n    indent: parent.indent + 1\n  };\n}\nfunction addTrackedEs5Class(name) {\n  if (!trackedEs5Classes) {\n    trackedEs5Classes = /* @__PURE__ */ new Map();\n  }\n  trackedEs5Classes.set(name, true);\n}\nfunction endNestedNodes(depth) {\n  for (let i = 0; i < depth; i++) endNode();\n}\nfunction startNestedNodes(targetNode, entityName) {\n  const names = [];\n  while (!isPropertyNameLiteral(entityName)) {\n    const name = getNameOrArgument(entityName);\n    const nameText = getElementOrPropertyAccessName(entityName);\n    entityName = entityName.expression;\n    if (nameText === \"prototype\" || isPrivateIdentifier(name)) continue;\n    names.push(name);\n  }\n  names.push(entityName);\n  for (let i = names.length - 1; i > 0; i--) {\n    const name = names[i];\n    startNode(targetNode, name);\n  }\n  return [names.length - 1, names[0]];\n}\nfunction startNode(node, name) {\n  const navNode = emptyNavigationBarNode(node, name);\n  pushChild(parent, navNode);\n  parentsStack.push(parent);\n  trackedEs5ClassesStack.push(trackedEs5Classes);\n  trackedEs5Classes = void 0;\n  parent = navNode;\n}\nfunction endNode() {\n  if (parent.children) {\n    mergeChildren(parent.children, parent);\n    sortChildren(parent.children);\n  }\n  parent = parentsStack.pop();\n  trackedEs5Classes = trackedEs5ClassesStack.pop();\n}\nfunction addNodeWithRecursiveChild(node, child, name) {\n  startNode(node, name);\n  addChildrenRecursively(child);\n  endNode();\n}\nfunction addNodeWithRecursiveInitializer(node) {\n  if (node.initializer && isFunctionOrClassExpression(node.initializer)) {\n    startNode(node);\n    forEachChild(node.initializer, addChildrenRecursively);\n    endNode();\n  } else {\n    addNodeWithRecursiveChild(node, node.initializer);\n  }\n}\nfunction hasNavigationBarName(node) {\n  const name = getNameOfDeclaration(node);\n  if (name === void 0) return false;\n  if (isComputedPropertyName(name)) {\n    const expression = name.expression;\n    return isEntityNameExpression(expression) || isNumericLiteral(expression) || isStringOrNumericLiteralLike(expression);\n  }\n  return !!name;\n}\nfunction addChildrenRecursively(node) {\n  curCancellationToken.throwIfCancellationRequested();\n  if (!node || isToken(node)) {\n    return;\n  }\n  switch (node.kind) {\n    case 177 /* Constructor */:\n      const ctr = node;\n      addNodeWithRecursiveChild(ctr, ctr.body);\n      for (const param of ctr.parameters) {\n        if (isParameterPropertyDeclaration(param, ctr)) {\n          addLeafNode(param);\n        }\n      }\n      break;\n    case 175 /* MethodDeclaration */:\n    case 178 /* GetAccessor */:\n    case 179 /* SetAccessor */:\n    case 174 /* MethodSignature */:\n      if (hasNavigationBarName(node)) {\n        addNodeWithRecursiveChild(node, node.body);\n      }\n      break;\n    case 173 /* PropertyDeclaration */:\n      if (hasNavigationBarName(node)) {\n        addNodeWithRecursiveInitializer(node);\n      }\n      break;\n    case 172 /* PropertySignature */:\n      if (hasNavigationBarName(node)) {\n        addLeafNode(node);\n      }\n      break;\n    case 274 /* ImportClause */:\n      const importClause = node;\n      if (importClause.name) {\n        addLeafNode(importClause.name);\n      }\n      const { namedBindings } = importClause;\n      if (namedBindings) {\n        if (namedBindings.kind === 275 /* NamespaceImport */) {\n          addLeafNode(namedBindings);\n        } else {\n          for (const element of namedBindings.elements) {\n            addLeafNode(element);\n          }\n        }\n      }\n      break;\n    case 305 /* ShorthandPropertyAssignment */:\n      addNodeWithRecursiveChild(node, node.name);\n      break;\n    case 306 /* SpreadAssignment */:\n      const { expression } = node;\n      isIdentifier(expression) ? addLeafNode(node, expression) : addLeafNode(node);\n      break;\n    case 209 /* BindingElement */:\n    case 304 /* PropertyAssignment */:\n    case 261 /* VariableDeclaration */: {\n      const child = node;\n      if (isBindingPattern(child.name)) {\n        addChildrenRecursively(child.name);\n      } else {\n        addNodeWithRecursiveInitializer(child);\n      }\n      break;\n    }\n    case 263 /* FunctionDeclaration */:\n      const nameNode = node.name;\n      if (nameNode && isIdentifier(nameNode)) {\n        addTrackedEs5Class(nameNode.text);\n      }\n      addNodeWithRecursiveChild(node, node.body);\n      break;\n    case 220 /* ArrowFunction */:\n    case 219 /* FunctionExpression */:\n      addNodeWithRecursiveChild(node, node.body);\n      break;\n    case 267 /* EnumDeclaration */:\n      startNode(node);\n      for (const member of node.members) {\n        if (!isComputedProperty(member)) {\n          addLeafNode(member);\n        }\n      }\n      endNode();\n      break;\n    case 264 /* ClassDeclaration */:\n    case 232 /* ClassExpression */:\n    case 265 /* InterfaceDeclaration */:\n      startNode(node);\n      for (const member of node.members) {\n        addChildrenRecursively(member);\n      }\n      endNode();\n      break;\n    case 268 /* ModuleDeclaration */:\n      addNodeWithRecursiveChild(node, getInteriorModule(node).body);\n      break;\n    case 278 /* ExportAssignment */: {\n      const expression2 = node.expression;\n      const child = isObjectLiteralExpression(expression2) || isCallExpression(expression2) ? expression2 : isArrowFunction(expression2) || isFunctionExpression(expression2) ? expression2.body : void 0;\n      if (child) {\n        startNode(node);\n        addChildrenRecursively(child);\n        endNode();\n      } else {\n        addLeafNode(node);\n      }\n      break;\n    }\n    case 282 /* ExportSpecifier */:\n    case 272 /* ImportEqualsDeclaration */:\n    case 182 /* IndexSignature */:\n    case 180 /* CallSignature */:\n    case 181 /* ConstructSignature */:\n    case 266 /* TypeAliasDeclaration */:\n      addLeafNode(node);\n      break;\n    case 214 /* CallExpression */:\n    case 227 /* BinaryExpression */: {\n      const special = getAssignmentDeclarationKind(node);\n      switch (special) {\n        case 1 /* ExportsProperty */:\n        case 2 /* ModuleExports */:\n          addNodeWithRecursiveChild(node, node.right);\n          return;\n        case 6 /* Prototype */:\n        case 3 /* PrototypeProperty */: {\n          const binaryExpression = node;\n          const assignmentTarget = binaryExpression.left;\n          const prototypeAccess = special === 3 /* PrototypeProperty */ ? assignmentTarget.expression : assignmentTarget;\n          let depth = 0;\n          let className;\n          if (isIdentifier(prototypeAccess.expression)) {\n            addTrackedEs5Class(prototypeAccess.expression.text);\n            className = prototypeAccess.expression;\n          } else {\n            [depth, className] = startNestedNodes(binaryExpression, prototypeAccess.expression);\n          }\n          if (special === 6 /* Prototype */) {\n            if (isObjectLiteralExpression(binaryExpression.right)) {\n              if (binaryExpression.right.properties.length > 0) {\n                startNode(binaryExpression, className);\n                forEachChild(binaryExpression.right, addChildrenRecursively);\n                endNode();\n              }\n            }\n          } else if (isFunctionExpression(binaryExpression.right) || isArrowFunction(binaryExpression.right)) {\n            addNodeWithRecursiveChild(node, binaryExpression.right, className);\n          } else {\n            startNode(binaryExpression, className);\n            addNodeWithRecursiveChild(node, binaryExpression.right, assignmentTarget.name);\n            endNode();\n          }\n          endNestedNodes(depth);\n          return;\n        }\n        case 7 /* ObjectDefinePropertyValue */:\n        case 9 /* ObjectDefinePrototypeProperty */: {\n          const defineCall = node;\n          const className = special === 7 /* ObjectDefinePropertyValue */ ? defineCall.arguments[0] : defineCall.arguments[0].expression;\n          const memberName = defineCall.arguments[1];\n          const [depth, classNameIdentifier] = startNestedNodes(node, className);\n          startNode(node, classNameIdentifier);\n          startNode(node, setTextRange(factory.createIdentifier(memberName.text), memberName));\n          addChildrenRecursively(node.arguments[2]);\n          endNode();\n          endNode();\n          endNestedNodes(depth);\n          return;\n        }\n        case 5 /* Property */: {\n          const binaryExpression = node;\n          const assignmentTarget = binaryExpression.left;\n          const targetFunction = assignmentTarget.expression;\n          if (isIdentifier(targetFunction) && getElementOrPropertyAccessName(assignmentTarget) !== \"prototype\" && trackedEs5Classes && trackedEs5Classes.has(targetFunction.text)) {\n            if (isFunctionExpression(binaryExpression.right) || isArrowFunction(binaryExpression.right)) {\n              addNodeWithRecursiveChild(node, binaryExpression.right, targetFunction);\n            } else if (isBindableStaticAccessExpression(assignmentTarget)) {\n              startNode(binaryExpression, targetFunction);\n              addNodeWithRecursiveChild(binaryExpression.left, binaryExpression.right, getNameOrArgument(assignmentTarget));\n              endNode();\n            }\n            return;\n          }\n          break;\n        }\n        case 4 /* ThisProperty */:\n        case 0 /* None */:\n        case 8 /* ObjectDefinePropertyExports */:\n          break;\n        default:\n          Debug.assertNever(special);\n      }\n    }\n    // falls through\n    default:\n      if (hasJSDocNodes(node)) {\n        forEach(node.jsDoc, (jsDoc) => {\n          forEach(jsDoc.tags, (tag) => {\n            if (isJSDocTypeAlias(tag)) {\n              addLeafNode(tag);\n            }\n          });\n        });\n      }\n      forEachChild(node, addChildrenRecursively);\n  }\n}\nfunction mergeChildren(children, node) {\n  const nameToItems = /* @__PURE__ */ new Map();\n  filterMutate(children, (child, index) => {\n    const declName = child.name || getNameOfDeclaration(child.node);\n    const name = declName && nodeText(declName);\n    if (!name) {\n      return true;\n    }\n    const itemsWithSameName = nameToItems.get(name);\n    if (!itemsWithSameName) {\n      nameToItems.set(name, child);\n      return true;\n    }\n    if (itemsWithSameName instanceof Array) {\n      for (const itemWithSameName of itemsWithSameName) {\n        if (tryMerge(itemWithSameName, child, index, node)) {\n          return false;\n        }\n      }\n      itemsWithSameName.push(child);\n      return true;\n    } else {\n      const itemWithSameName = itemsWithSameName;\n      if (tryMerge(itemWithSameName, child, index, node)) {\n        return false;\n      }\n      nameToItems.set(name, [itemWithSameName, child]);\n      return true;\n    }\n  });\n}\nvar isEs5ClassMember = {\n  [5 /* Property */]: true,\n  [3 /* PrototypeProperty */]: true,\n  [7 /* ObjectDefinePropertyValue */]: true,\n  [9 /* ObjectDefinePrototypeProperty */]: true,\n  [0 /* None */]: false,\n  [1 /* ExportsProperty */]: false,\n  [2 /* ModuleExports */]: false,\n  [8 /* ObjectDefinePropertyExports */]: false,\n  [6 /* Prototype */]: true,\n  [4 /* ThisProperty */]: false\n};\nfunction tryMergeEs5Class(a, b, bIndex, parent2) {\n  function isPossibleConstructor(node) {\n    return isFunctionExpression(node) || isFunctionDeclaration(node) || isVariableDeclaration(node);\n  }\n  const bAssignmentDeclarationKind = isBinaryExpression(b.node) || isCallExpression(b.node) ? getAssignmentDeclarationKind(b.node) : 0 /* None */;\n  const aAssignmentDeclarationKind = isBinaryExpression(a.node) || isCallExpression(a.node) ? getAssignmentDeclarationKind(a.node) : 0 /* None */;\n  if (isEs5ClassMember[bAssignmentDeclarationKind] && isEs5ClassMember[aAssignmentDeclarationKind] || isPossibleConstructor(a.node) && isEs5ClassMember[bAssignmentDeclarationKind] || isPossibleConstructor(b.node) && isEs5ClassMember[aAssignmentDeclarationKind] || isClassDeclaration(a.node) && isSynthesized(a.node) && isEs5ClassMember[bAssignmentDeclarationKind] || isClassDeclaration(b.node) && isEs5ClassMember[aAssignmentDeclarationKind] || isClassDeclaration(a.node) && isSynthesized(a.node) && isPossibleConstructor(b.node) || isClassDeclaration(b.node) && isPossibleConstructor(a.node) && isSynthesized(a.node)) {\n    let lastANode = a.additionalNodes && lastOrUndefined(a.additionalNodes) || a.node;\n    if (!isClassDeclaration(a.node) && !isClassDeclaration(b.node) || isPossibleConstructor(a.node) || isPossibleConstructor(b.node)) {\n      const ctorFunction = isPossibleConstructor(a.node) ? a.node : isPossibleConstructor(b.node) ? b.node : void 0;\n      if (ctorFunction !== void 0) {\n        const ctorNode = setTextRange(\n          factory.createConstructorDeclaration(\n            /*modifiers*/\n            void 0,\n            [],\n            /*body*/\n            void 0\n          ),\n          ctorFunction\n        );\n        const ctor = emptyNavigationBarNode(ctorNode);\n        ctor.indent = a.indent + 1;\n        ctor.children = a.node === ctorFunction ? a.children : b.children;\n        a.children = a.node === ctorFunction ? concatenate([ctor], b.children || [b]) : concatenate(a.children || [{ ...a }], [ctor]);\n      } else {\n        if (a.children || b.children) {\n          a.children = concatenate(a.children || [{ ...a }], b.children || [b]);\n          if (a.children) {\n            mergeChildren(a.children, a);\n            sortChildren(a.children);\n          }\n        }\n      }\n      lastANode = a.node = setTextRange(\n        factory.createClassDeclaration(\n          /*modifiers*/\n          void 0,\n          a.name || factory.createIdentifier(\"__class__\"),\n          /*typeParameters*/\n          void 0,\n          /*heritageClauses*/\n          void 0,\n          []\n        ),\n        a.node\n      );\n    } else {\n      a.children = concatenate(a.children, b.children);\n      if (a.children) {\n        mergeChildren(a.children, a);\n      }\n    }\n    const bNode = b.node;\n    if (parent2.children[bIndex - 1].node.end === lastANode.end) {\n      setTextRange(lastANode, { pos: lastANode.pos, end: bNode.end });\n    } else {\n      if (!a.additionalNodes) a.additionalNodes = [];\n      a.additionalNodes.push(setTextRange(\n        factory.createClassDeclaration(\n          /*modifiers*/\n          void 0,\n          a.name || factory.createIdentifier(\"__class__\"),\n          /*typeParameters*/\n          void 0,\n          /*heritageClauses*/\n          void 0,\n          []\n        ),\n        b.node\n      ));\n    }\n    return true;\n  }\n  return bAssignmentDeclarationKind === 0 /* None */ ? false : true;\n}\nfunction tryMerge(a, b, bIndex, parent2) {\n  if (tryMergeEs5Class(a, b, bIndex, parent2)) {\n    return true;\n  }\n  if (shouldReallyMerge(a.node, b.node, parent2)) {\n    merge(a, b);\n    return true;\n  }\n  return false;\n}\nfunction shouldReallyMerge(a, b, parent2) {\n  if (a.kind !== b.kind || a.parent !== b.parent && !(isOwnChild(a, parent2) && isOwnChild(b, parent2))) {\n    return false;\n  }\n  switch (a.kind) {\n    case 173 /* PropertyDeclaration */:\n    case 175 /* MethodDeclaration */:\n    case 178 /* GetAccessor */:\n    case 179 /* SetAccessor */:\n      return isStatic(a) === isStatic(b);\n    case 268 /* ModuleDeclaration */:\n      return areSameModule(a, b) && getFullyQualifiedModuleName(a) === getFullyQualifiedModuleName(b);\n    default:\n      return true;\n  }\n}\nfunction isSynthesized(node) {\n  return !!(node.flags & 16 /* Synthesized */);\n}\nfunction isOwnChild(n, parent2) {\n  if (n.parent === void 0) return false;\n  const par = isModuleBlock(n.parent) ? n.parent.parent : n.parent;\n  return par === parent2.node || contains(parent2.additionalNodes, par);\n}\nfunction areSameModule(a, b) {\n  if (!a.body || !b.body) {\n    return a.body === b.body;\n  }\n  return a.body.kind === b.body.kind && (a.body.kind !== 268 /* ModuleDeclaration */ || areSameModule(a.body, b.body));\n}\nfunction merge(target, source) {\n  target.additionalNodes = target.additionalNodes || [];\n  target.additionalNodes.push(source.node);\n  if (source.additionalNodes) {\n    target.additionalNodes.push(...source.additionalNodes);\n  }\n  target.children = concatenate(target.children, source.children);\n  if (target.children) {\n    mergeChildren(target.children, target);\n    sortChildren(target.children);\n  }\n}\nfunction sortChildren(children) {\n  children.sort(compareChildren);\n}\nfunction compareChildren(child1, child2) {\n  return compareStringsCaseSensitiveUI(tryGetName(child1.node), tryGetName(child2.node)) || compareValues(navigationBarNodeKind(child1), navigationBarNodeKind(child2));\n}\nfunction tryGetName(node) {\n  if (node.kind === 268 /* ModuleDeclaration */) {\n    return getModuleName(node);\n  }\n  const declName = getNameOfDeclaration(node);\n  if (declName && isPropertyName(declName)) {\n    const propertyName = getPropertyNameForPropertyNameNode(declName);\n    return propertyName && unescapeLeadingUnderscores(propertyName);\n  }\n  switch (node.kind) {\n    case 219 /* FunctionExpression */:\n    case 220 /* ArrowFunction */:\n    case 232 /* ClassExpression */:\n      return getFunctionOrClassName(node);\n    default:\n      return void 0;\n  }\n}\nfunction getItemName(node, name) {\n  if (node.kind === 268 /* ModuleDeclaration */) {\n    return cleanText(getModuleName(node));\n  }\n  if (name) {\n    const text = isIdentifier(name) ? name.text : isElementAccessExpression(name) ? `[${nodeText(name.argumentExpression)}]` : nodeText(name);\n    if (text.length > 0) {\n      return cleanText(text);\n    }\n  }\n  switch (node.kind) {\n    case 308 /* SourceFile */:\n      const sourceFile = node;\n      return isExternalModule(sourceFile) ? `\"${escapeString(getBaseFileName(removeFileExtension(normalizePath(sourceFile.fileName))))}\"` : \"<global>\";\n    case 278 /* ExportAssignment */:\n      return isExportAssignment(node) && node.isExportEquals ? \"export=\" /* ExportEquals */ : \"default\" /* Default */;\n    case 220 /* ArrowFunction */:\n    case 263 /* FunctionDeclaration */:\n    case 219 /* FunctionExpression */:\n    case 264 /* ClassDeclaration */:\n    case 232 /* ClassExpression */:\n      if (getSyntacticModifierFlags(node) & 2048 /* Default */) {\n        return \"default\";\n      }\n      return getFunctionOrClassName(node);\n    case 177 /* Constructor */:\n      return \"constructor\";\n    case 181 /* ConstructSignature */:\n      return \"new()\";\n    case 180 /* CallSignature */:\n      return \"()\";\n    case 182 /* IndexSignature */:\n      return \"[]\";\n    default:\n      return \"<unknown>\";\n  }\n}\nfunction primaryNavBarMenuItems(root) {\n  const primaryNavBarMenuItems2 = [];\n  function recur(item) {\n    if (shouldAppearInPrimaryNavBarMenu(item)) {\n      primaryNavBarMenuItems2.push(item);\n      if (item.children) {\n        for (const child of item.children) {\n          recur(child);\n        }\n      }\n    }\n  }\n  recur(root);\n  return primaryNavBarMenuItems2;\n  function shouldAppearInPrimaryNavBarMenu(item) {\n    if (item.children) {\n      return true;\n    }\n    switch (navigationBarNodeKind(item)) {\n      case 264 /* ClassDeclaration */:\n      case 232 /* ClassExpression */:\n      case 267 /* EnumDeclaration */:\n      case 265 /* InterfaceDeclaration */:\n      case 268 /* ModuleDeclaration */:\n      case 308 /* SourceFile */:\n      case 266 /* TypeAliasDeclaration */:\n      case 347 /* JSDocTypedefTag */:\n      case 339 /* JSDocCallbackTag */:\n        return true;\n      case 220 /* ArrowFunction */:\n      case 263 /* FunctionDeclaration */:\n      case 219 /* FunctionExpression */:\n        return isTopLevelFunctionDeclaration(item);\n      default:\n        return false;\n    }\n    function isTopLevelFunctionDeclaration(item2) {\n      if (!item2.node.body) {\n        return false;\n      }\n      switch (navigationBarNodeKind(item2.parent)) {\n        case 269 /* ModuleBlock */:\n        case 308 /* SourceFile */:\n        case 175 /* MethodDeclaration */:\n        case 177 /* Constructor */:\n          return true;\n        default:\n          return false;\n      }\n    }\n  }\n}\nfunction convertToTree(n) {\n  return {\n    text: getItemName(n.node, n.name),\n    kind: getNodeKind(n.node),\n    kindModifiers: getModifiers2(n.node),\n    spans: getSpans(n),\n    nameSpan: n.name && getNodeSpan(n.name),\n    childItems: map(n.children, convertToTree)\n  };\n}\nfunction convertToPrimaryNavBarMenuItem(n) {\n  return {\n    text: getItemName(n.node, n.name),\n    kind: getNodeKind(n.node),\n    kindModifiers: getModifiers2(n.node),\n    spans: getSpans(n),\n    childItems: map(n.children, convertToSecondaryNavBarMenuItem) || emptyChildItemArray,\n    indent: n.indent,\n    bolded: false,\n    grayed: false\n  };\n  function convertToSecondaryNavBarMenuItem(n2) {\n    return {\n      text: getItemName(n2.node, n2.name),\n      kind: getNodeKind(n2.node),\n      kindModifiers: getNodeModifiers(n2.node),\n      spans: getSpans(n2),\n      childItems: emptyChildItemArray,\n      indent: 0,\n      bolded: false,\n      grayed: false\n    };\n  }\n}\nfunction getSpans(n) {\n  const spans = [getNodeSpan(n.node)];\n  if (n.additionalNodes) {\n    for (const node of n.additionalNodes) {\n      spans.push(getNodeSpan(node));\n    }\n  }\n  return spans;\n}\nfunction getModuleName(moduleDeclaration) {\n  if (isAmbientModule(moduleDeclaration)) {\n    return getTextOfNode(moduleDeclaration.name);\n  }\n  return getFullyQualifiedModuleName(moduleDeclaration);\n}\nfunction getFullyQualifiedModuleName(moduleDeclaration) {\n  const result = [getTextOfIdentifierOrLiteral(moduleDeclaration.name)];\n  while (moduleDeclaration.body && moduleDeclaration.body.kind === 268 /* ModuleDeclaration */) {\n    moduleDeclaration = moduleDeclaration.body;\n    result.push(getTextOfIdentifierOrLiteral(moduleDeclaration.name));\n  }\n  return result.join(\".\");\n}\nfunction getInteriorModule(decl) {\n  return decl.body && isModuleDeclaration(decl.body) ? getInteriorModule(decl.body) : decl;\n}\nfunction isComputedProperty(member) {\n  return !member.name || member.name.kind === 168 /* ComputedPropertyName */;\n}\nfunction getNodeSpan(node) {\n  return node.kind === 308 /* SourceFile */ ? createTextSpanFromRange(node) : createTextSpanFromNode(node, curSourceFile);\n}\nfunction getModifiers2(node) {\n  if (node.parent && node.parent.kind === 261 /* VariableDeclaration */) {\n    node = node.parent;\n  }\n  return getNodeModifiers(node);\n}\nfunction getFunctionOrClassName(node) {\n  const { parent: parent2 } = node;\n  if (node.name && getFullWidth(node.name) > 0) {\n    return cleanText(declarationNameToString(node.name));\n  } else if (isVariableDeclaration(parent2)) {\n    return cleanText(declarationNameToString(parent2.name));\n  } else if (isBinaryExpression(parent2) && parent2.operatorToken.kind === 64 /* EqualsToken */) {\n    return nodeText(parent2.left).replace(whiteSpaceRegex, \"\");\n  } else if (isPropertyAssignment(parent2)) {\n    return nodeText(parent2.name);\n  } else if (getSyntacticModifierFlags(node) & 2048 /* Default */) {\n    return \"default\";\n  } else if (isClassLike(node)) {\n    return \"<class>\";\n  } else if (isCallExpression(parent2)) {\n    let name = getCalledExpressionName(parent2.expression);\n    if (name !== void 0) {\n      name = cleanText(name);\n      if (name.length > maxLength) {\n        return `${name} callback`;\n      }\n      const args = cleanText(mapDefined(parent2.arguments, (a) => isStringLiteralLike(a) || isTemplateLiteral(a) ? a.getText(curSourceFile) : void 0).join(\", \"));\n      return `${name}(${args}) callback`;\n    }\n  }\n  return \"<function>\";\n}\nfunction getCalledExpressionName(expr) {\n  if (isIdentifier(expr)) {\n    return expr.text;\n  } else if (isPropertyAccessExpression(expr)) {\n    const left = getCalledExpressionName(expr.expression);\n    const right = expr.name.text;\n    return left === void 0 ? right : `${left}.${right}`;\n  } else {\n    return void 0;\n  }\n}\nfunction isFunctionOrClassExpression(node) {\n  switch (node.kind) {\n    case 220 /* ArrowFunction */:\n    case 219 /* FunctionExpression */:\n    case 232 /* ClassExpression */:\n      return true;\n    default:\n      return false;\n  }\n}\nfunction cleanText(text) {\n  text = text.length > maxLength ? text.substring(0, maxLength) + \"...\" : text;\n  return text.replace(/\\\\?(?:\\r?\\n|[\\r\\u2028\\u2029])/g, \"\");\n}\n\n// src/services/_namespaces/ts.refactor.ts\nvar ts_refactor_exports = {};\n__export(ts_refactor_exports, {\n  addExportsInOldFile: () => addExportsInOldFile,\n  addImportsForMovedSymbols: () => addImportsForMovedSymbols,\n  addNewFileToTsconfig: () => addNewFileToTsconfig,\n  addOrRemoveBracesToArrowFunction: () => ts_refactor_addOrRemoveBracesToArrowFunction_exports,\n  addTargetFileImports: () => addTargetFileImports,\n  containsJsx: () => containsJsx,\n  convertArrowFunctionOrFunctionExpression: () => ts_refactor_convertArrowFunctionOrFunctionExpression_exports,\n  convertParamsToDestructuredObject: () => ts_refactor_convertParamsToDestructuredObject_exports,\n  convertStringOrTemplateLiteral: () => ts_refactor_convertStringOrTemplateLiteral_exports,\n  convertToOptionalChainExpression: () => ts_refactor_convertToOptionalChainExpression_exports,\n  createNewFileName: () => createNewFileName,\n  doChangeNamedToNamespaceOrDefault: () => doChangeNamedToNamespaceOrDefault,\n  extractSymbol: () => ts_refactor_extractSymbol_exports,\n  generateGetAccessorAndSetAccessor: () => ts_refactor_generateGetAccessorAndSetAccessor_exports,\n  getApplicableRefactors: () => getApplicableRefactors,\n  getEditsForRefactor: () => getEditsForRefactor,\n  getExistingLocals: () => getExistingLocals,\n  getIdentifierForNode: () => getIdentifierForNode,\n  getNewStatementsAndRemoveFromOldFile: () => getNewStatementsAndRemoveFromOldFile,\n  getStatementsToMove: () => getStatementsToMove,\n  getUsageInfo: () => getUsageInfo,\n  inferFunctionReturnType: () => ts_refactor_inferFunctionReturnType_exports,\n  isInImport: () => isInImport,\n  isRefactorErrorInfo: () => isRefactorErrorInfo,\n  refactorKindBeginsWith: () => refactorKindBeginsWith,\n  registerRefactor: () => registerRefactor\n});\n\n// src/services/refactorProvider.ts\nvar refactors = /* @__PURE__ */ new Map();\nfunction registerRefactor(name, refactor) {\n  refactors.set(name, refactor);\n}\nfunction getApplicableRefactors(context, includeInteractiveActions) {\n  return arrayFrom(flatMapIterator(refactors.values(), (refactor) => {\n    var _a;\n    return context.cancellationToken && context.cancellationToken.isCancellationRequested() || !((_a = refactor.kinds) == null ? void 0 : _a.some((kind) => refactorKindBeginsWith(kind, context.kind))) ? void 0 : refactor.getAvailableActions(context, includeInteractiveActions);\n  }));\n}\nfunction getEditsForRefactor(context, refactorName14, actionName2, interactiveRefactorArguments) {\n  const refactor = refactors.get(refactorName14);\n  return refactor && refactor.getEditsForAction(context, actionName2, interactiveRefactorArguments);\n}\n\n// src/services/refactors/convertExport.ts\nvar refactorName = \"Convert export\";\nvar defaultToNamedAction = {\n  name: \"Convert default export to named export\",\n  description: getLocaleSpecificMessage(Diagnostics.Convert_default_export_to_named_export),\n  kind: \"refactor.rewrite.export.named\"\n};\nvar namedToDefaultAction = {\n  name: \"Convert named export to default export\",\n  description: getLocaleSpecificMessage(Diagnostics.Convert_named_export_to_default_export),\n  kind: \"refactor.rewrite.export.default\"\n};\nregisterRefactor(refactorName, {\n  kinds: [\n    defaultToNamedAction.kind,\n    namedToDefaultAction.kind\n  ],\n  getAvailableActions: function getRefactorActionsToConvertBetweenNamedAndDefaultExports(context) {\n    const info = getInfo2(context, context.triggerReason === \"invoked\");\n    if (!info) return emptyArray;\n    if (!isRefactorErrorInfo(info)) {\n      const action = info.wasDefault ? defaultToNamedAction : namedToDefaultAction;\n      return [{ name: refactorName, description: action.description, actions: [action] }];\n    }\n    if (context.preferences.provideRefactorNotApplicableReason) {\n      return [\n        {\n          name: refactorName,\n          description: getLocaleSpecificMessage(Diagnostics.Convert_default_export_to_named_export),\n          actions: [\n            { ...defaultToNamedAction, notApplicableReason: info.error },\n            { ...namedToDefaultAction, notApplicableReason: info.error }\n          ]\n        }\n      ];\n    }\n    return emptyArray;\n  },\n  getEditsForAction: function getRefactorEditsToConvertBetweenNamedAndDefaultExports(context, actionName2) {\n    Debug.assert(actionName2 === defaultToNamedAction.name || actionName2 === namedToDefaultAction.name, \"Unexpected action name\");\n    const info = getInfo2(context);\n    Debug.assert(info && !isRefactorErrorInfo(info), \"Expected applicable refactor info\");\n    const edits = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange(context.file, context.program, info, t, context.cancellationToken));\n    return { edits, renameFilename: void 0, renameLocation: void 0 };\n  }\n});\nfunction getInfo2(context, considerPartialSpans = true) {\n  const { file, program } = context;\n  const span = getRefactorContextSpan(context);\n  const token = getTokenAtPosition(file, span.start);\n  const exportNode = !!(token.parent && getSyntacticModifierFlags(token.parent) & 32 /* Export */) && considerPartialSpans ? token.parent : getParentNodeInSpan(token, file, span);\n  if (!exportNode || !isSourceFile(exportNode.parent) && !(isModuleBlock(exportNode.parent) && isAmbientModule(exportNode.parent.parent))) {\n    return { error: getLocaleSpecificMessage(Diagnostics.Could_not_find_export_statement) };\n  }\n  const checker = program.getTypeChecker();\n  const exportingModuleSymbol = getExportingModuleSymbol(exportNode.parent, checker);\n  const flags = getSyntacticModifierFlags(exportNode) || (isExportAssignment(exportNode) && !exportNode.isExportEquals ? 2080 /* ExportDefault */ : 0 /* None */);\n  const wasDefault = !!(flags & 2048 /* Default */);\n  if (!(flags & 32 /* Export */) || !wasDefault && exportingModuleSymbol.exports.has(\"default\" /* Default */)) {\n    return { error: getLocaleSpecificMessage(Diagnostics.This_file_already_has_a_default_export) };\n  }\n  const noSymbolError = (id) => isIdentifier(id) && checker.getSymbolAtLocation(id) ? void 0 : { error: getLocaleSpecificMessage(Diagnostics.Can_only_convert_named_export) };\n  switch (exportNode.kind) {\n    case 263 /* FunctionDeclaration */:\n    case 264 /* ClassDeclaration */:\n    case 265 /* InterfaceDeclaration */:\n    case 267 /* EnumDeclaration */:\n    case 266 /* TypeAliasDeclaration */:\n    case 268 /* ModuleDeclaration */: {\n      const node = exportNode;\n      if (!node.name) return void 0;\n      return noSymbolError(node.name) || { exportNode: node, exportName: node.name, wasDefault, exportingModuleSymbol };\n    }\n    case 244 /* VariableStatement */: {\n      const vs = exportNode;\n      if (!(vs.declarationList.flags & 2 /* Const */) || vs.declarationList.declarations.length !== 1) {\n        return void 0;\n      }\n      const decl = first(vs.declarationList.declarations);\n      if (!decl.initializer) return void 0;\n      Debug.assert(!wasDefault, \"Can't have a default flag here\");\n      return noSymbolError(decl.name) || { exportNode: vs, exportName: decl.name, wasDefault, exportingModuleSymbol };\n    }\n    case 278 /* ExportAssignment */: {\n      const node = exportNode;\n      if (node.isExportEquals) return void 0;\n      return noSymbolError(node.expression) || { exportNode: node, exportName: node.expression, wasDefault, exportingModuleSymbol };\n    }\n    default:\n      return void 0;\n  }\n}\nfunction doChange(exportingSourceFile, program, info, changes, cancellationToken) {\n  changeExport(exportingSourceFile, info, changes, program.getTypeChecker());\n  changeImports(program, info, changes, cancellationToken);\n}\nfunction changeExport(exportingSourceFile, { wasDefault, exportNode, exportName }, changes, checker) {\n  if (wasDefault) {\n    if (isExportAssignment(exportNode) && !exportNode.isExportEquals) {\n      const exp = exportNode.expression;\n      const spec = makeExportSpecifier(exp.text, exp.text);\n      changes.replaceNode(exportingSourceFile, exportNode, factory.createExportDeclaration(\n        /*modifiers*/\n        void 0,\n        /*isTypeOnly*/\n        false,\n        factory.createNamedExports([spec])\n      ));\n    } else {\n      changes.delete(exportingSourceFile, Debug.checkDefined(findModifier(exportNode, 90 /* DefaultKeyword */), \"Should find a default keyword in modifier list\"));\n    }\n  } else {\n    const exportKeyword = Debug.checkDefined(findModifier(exportNode, 95 /* ExportKeyword */), \"Should find an export keyword in modifier list\");\n    switch (exportNode.kind) {\n      case 263 /* FunctionDeclaration */:\n      case 264 /* ClassDeclaration */:\n      case 265 /* InterfaceDeclaration */:\n        changes.insertNodeAfter(exportingSourceFile, exportKeyword, factory.createToken(90 /* DefaultKeyword */));\n        break;\n      case 244 /* VariableStatement */:\n        const decl = first(exportNode.declarationList.declarations);\n        if (!ts_FindAllReferences_exports.Core.isSymbolReferencedInFile(exportName, checker, exportingSourceFile) && !decl.type) {\n          changes.replaceNode(exportingSourceFile, exportNode, factory.createExportDefault(Debug.checkDefined(decl.initializer, \"Initializer was previously known to be present\")));\n          break;\n        }\n      // falls through\n      case 267 /* EnumDeclaration */:\n      case 266 /* TypeAliasDeclaration */:\n      case 268 /* ModuleDeclaration */:\n        changes.deleteModifier(exportingSourceFile, exportKeyword);\n        changes.insertNodeAfter(exportingSourceFile, exportNode, factory.createExportDefault(factory.createIdentifier(exportName.text)));\n        break;\n      default:\n        Debug.fail(`Unexpected exportNode kind ${exportNode.kind}`);\n    }\n  }\n}\nfunction changeImports(program, { wasDefault, exportName, exportingModuleSymbol }, changes, cancellationToken) {\n  const checker = program.getTypeChecker();\n  const exportSymbol = Debug.checkDefined(checker.getSymbolAtLocation(exportName), \"Export name should resolve to a symbol\");\n  ts_FindAllReferences_exports.Core.eachExportReference(program.getSourceFiles(), checker, cancellationToken, exportSymbol, exportingModuleSymbol, exportName.text, wasDefault, (ref) => {\n    if (exportName === ref) return;\n    const importingSourceFile = ref.getSourceFile();\n    if (wasDefault) {\n      changeDefaultToNamedImport(importingSourceFile, ref, changes, exportName.text);\n    } else {\n      changeNamedToDefaultImport(importingSourceFile, ref, changes);\n    }\n  });\n}\nfunction changeDefaultToNamedImport(importingSourceFile, ref, changes, exportName) {\n  const { parent: parent2 } = ref;\n  switch (parent2.kind) {\n    case 212 /* PropertyAccessExpression */:\n      changes.replaceNode(importingSourceFile, ref, factory.createIdentifier(exportName));\n      break;\n    case 277 /* ImportSpecifier */:\n    case 282 /* ExportSpecifier */: {\n      const spec = parent2;\n      changes.replaceNode(importingSourceFile, spec, makeImportSpecifier(exportName, spec.name.text));\n      break;\n    }\n    case 274 /* ImportClause */: {\n      const clause = parent2;\n      Debug.assert(clause.name === ref, \"Import clause name should match provided ref\");\n      const spec = makeImportSpecifier(exportName, ref.text);\n      const { namedBindings } = clause;\n      if (!namedBindings) {\n        changes.replaceNode(importingSourceFile, ref, factory.createNamedImports([spec]));\n      } else if (namedBindings.kind === 275 /* NamespaceImport */) {\n        changes.deleteRange(importingSourceFile, { pos: ref.getStart(importingSourceFile), end: namedBindings.getStart(importingSourceFile) });\n        const quotePreference = isStringLiteral(clause.parent.moduleSpecifier) ? quotePreferenceFromString(clause.parent.moduleSpecifier, importingSourceFile) : 1 /* Double */;\n        const newImport = makeImport(\n          /*defaultImport*/\n          void 0,\n          [makeImportSpecifier(exportName, ref.text)],\n          clause.parent.moduleSpecifier,\n          quotePreference\n        );\n        changes.insertNodeAfter(importingSourceFile, clause.parent, newImport);\n      } else {\n        changes.delete(importingSourceFile, ref);\n        changes.insertNodeAtEndOfList(importingSourceFile, namedBindings.elements, spec);\n      }\n      break;\n    }\n    case 206 /* ImportType */:\n      const importTypeNode = parent2;\n      changes.replaceNode(importingSourceFile, parent2, factory.createImportTypeNode(importTypeNode.argument, importTypeNode.attributes, factory.createIdentifier(exportName), importTypeNode.typeArguments, importTypeNode.isTypeOf));\n      break;\n    default:\n      Debug.failBadSyntaxKind(parent2);\n  }\n}\nfunction changeNamedToDefaultImport(importingSourceFile, ref, changes) {\n  const parent2 = ref.parent;\n  switch (parent2.kind) {\n    case 212 /* PropertyAccessExpression */:\n      changes.replaceNode(importingSourceFile, ref, factory.createIdentifier(\"default\"));\n      break;\n    case 277 /* ImportSpecifier */: {\n      const defaultImport = factory.createIdentifier(parent2.name.text);\n      if (parent2.parent.elements.length === 1) {\n        changes.replaceNode(importingSourceFile, parent2.parent, defaultImport);\n      } else {\n        changes.delete(importingSourceFile, parent2);\n        changes.insertNodeBefore(importingSourceFile, parent2.parent, defaultImport);\n      }\n      break;\n    }\n    case 282 /* ExportSpecifier */: {\n      changes.replaceNode(importingSourceFile, parent2, makeExportSpecifier(\"default\", parent2.name.text));\n      break;\n    }\n    default:\n      Debug.assertNever(parent2, `Unexpected parent kind ${parent2.kind}`);\n  }\n}\nfunction makeImportSpecifier(propertyName, name) {\n  return factory.createImportSpecifier(\n    /*isTypeOnly*/\n    false,\n    propertyName === name ? void 0 : factory.createIdentifier(propertyName),\n    factory.createIdentifier(name)\n  );\n}\nfunction makeExportSpecifier(propertyName, name) {\n  return factory.createExportSpecifier(\n    /*isTypeOnly*/\n    false,\n    propertyName === name ? void 0 : factory.createIdentifier(propertyName),\n    factory.createIdentifier(name)\n  );\n}\nfunction getExportingModuleSymbol(parent2, checker) {\n  if (isSourceFile(parent2)) {\n    return parent2.symbol;\n  }\n  const symbol = parent2.parent.symbol;\n  if (symbol.valueDeclaration && isExternalModuleAugmentation(symbol.valueDeclaration)) {\n    return checker.getMergedSymbol(symbol);\n  }\n  return symbol;\n}\n\n// src/services/refactors/convertImport.ts\nvar refactorName2 = \"Convert import\";\nvar actions = {\n  [0 /* Named */]: {\n    name: \"Convert namespace import to named imports\",\n    description: getLocaleSpecificMessage(Diagnostics.Convert_namespace_import_to_named_imports),\n    kind: \"refactor.rewrite.import.named\"\n  },\n  [2 /* Namespace */]: {\n    name: \"Convert named imports to namespace import\",\n    description: getLocaleSpecificMessage(Diagnostics.Convert_named_imports_to_namespace_import),\n    kind: \"refactor.rewrite.import.namespace\"\n  },\n  [1 /* Default */]: {\n    name: \"Convert named imports to default import\",\n    description: getLocaleSpecificMessage(Diagnostics.Convert_named_imports_to_default_import),\n    kind: \"refactor.rewrite.import.default\"\n  }\n};\nregisterRefactor(refactorName2, {\n  kinds: getOwnValues(actions).map((a) => a.kind),\n  getAvailableActions: function getRefactorActionsToConvertBetweenNamedAndNamespacedImports(context) {\n    const info = getImportConversionInfo(context, context.triggerReason === \"invoked\");\n    if (!info) return emptyArray;\n    if (!isRefactorErrorInfo(info)) {\n      const action = actions[info.convertTo];\n      return [{ name: refactorName2, description: action.description, actions: [action] }];\n    }\n    if (context.preferences.provideRefactorNotApplicableReason) {\n      return getOwnValues(actions).map((action) => ({\n        name: refactorName2,\n        description: action.description,\n        actions: [{ ...action, notApplicableReason: info.error }]\n      }));\n    }\n    return emptyArray;\n  },\n  getEditsForAction: function getRefactorEditsToConvertBetweenNamedAndNamespacedImports(context, actionName2) {\n    Debug.assert(some(getOwnValues(actions), (action) => action.name === actionName2), \"Unexpected action name\");\n    const info = getImportConversionInfo(context);\n    Debug.assert(info && !isRefactorErrorInfo(info), \"Expected applicable refactor info\");\n    const edits = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange2(context.file, context.program, t, info));\n    return { edits, renameFilename: void 0, renameLocation: void 0 };\n  }\n});\nfunction getImportConversionInfo(context, considerPartialSpans = true) {\n  const { file } = context;\n  const span = getRefactorContextSpan(context);\n  const token = getTokenAtPosition(file, span.start);\n  const importDecl = considerPartialSpans ? findAncestor(token, or(isImportDeclaration, isJSDocImportTag)) : getParentNodeInSpan(token, file, span);\n  if (importDecl === void 0 || !(isImportDeclaration(importDecl) || isJSDocImportTag(importDecl))) return { error: \"Selection is not an import declaration.\" };\n  const end = span.start + span.length;\n  const nextToken = findNextToken(importDecl, importDecl.parent, file);\n  if (nextToken && end > nextToken.getStart()) return void 0;\n  const { importClause } = importDecl;\n  if (!importClause) {\n    return { error: getLocaleSpecificMessage(Diagnostics.Could_not_find_import_clause) };\n  }\n  if (!importClause.namedBindings) {\n    return { error: getLocaleSpecificMessage(Diagnostics.Could_not_find_namespace_import_or_named_imports) };\n  }\n  if (importClause.namedBindings.kind === 275 /* NamespaceImport */) {\n    return { convertTo: 0 /* Named */, import: importClause.namedBindings };\n  }\n  const shouldUseDefault = getShouldUseDefault(context.program, importClause);\n  return shouldUseDefault ? { convertTo: 1 /* Default */, import: importClause.namedBindings } : { convertTo: 2 /* Namespace */, import: importClause.namedBindings };\n}\nfunction getShouldUseDefault(program, importClause) {\n  return getAllowSyntheticDefaultImports(program.getCompilerOptions()) && isExportEqualsModule(importClause.parent.moduleSpecifier, program.getTypeChecker());\n}\nfunction doChange2(sourceFile, program, changes, info) {\n  const checker = program.getTypeChecker();\n  if (info.convertTo === 0 /* Named */) {\n    doChangeNamespaceToNamed(sourceFile, checker, changes, info.import, getAllowSyntheticDefaultImports(program.getCompilerOptions()));\n  } else {\n    doChangeNamedToNamespaceOrDefault(sourceFile, program, changes, info.import, info.convertTo === 1 /* Default */);\n  }\n}\nfunction doChangeNamespaceToNamed(sourceFile, checker, changes, toConvert, allowSyntheticDefaultImports) {\n  let usedAsNamespaceOrDefault = false;\n  const nodesToReplace = [];\n  const conflictingNames = /* @__PURE__ */ new Map();\n  ts_FindAllReferences_exports.Core.eachSymbolReferenceInFile(toConvert.name, checker, sourceFile, (id) => {\n    if (!isPropertyAccessOrQualifiedName(id.parent)) {\n      usedAsNamespaceOrDefault = true;\n    } else {\n      const exportName = getRightOfPropertyAccessOrQualifiedName(id.parent).text;\n      if (checker.resolveName(\n        exportName,\n        id,\n        -1 /* All */,\n        /*excludeGlobals*/\n        true\n      )) {\n        conflictingNames.set(exportName, true);\n      }\n      Debug.assert(getLeftOfPropertyAccessOrQualifiedName(id.parent) === id, \"Parent expression should match id\");\n      nodesToReplace.push(id.parent);\n    }\n  });\n  const exportNameToImportName = /* @__PURE__ */ new Map();\n  for (const propertyAccessOrQualifiedName of nodesToReplace) {\n    const exportName = getRightOfPropertyAccessOrQualifiedName(propertyAccessOrQualifiedName).text;\n    let importName = exportNameToImportName.get(exportName);\n    if (importName === void 0) {\n      exportNameToImportName.set(exportName, importName = conflictingNames.has(exportName) ? getUniqueName(exportName, sourceFile) : exportName);\n    }\n    changes.replaceNode(sourceFile, propertyAccessOrQualifiedName, factory.createIdentifier(importName));\n  }\n  const importSpecifiers = [];\n  exportNameToImportName.forEach((name, propertyName) => {\n    importSpecifiers.push(factory.createImportSpecifier(\n      /*isTypeOnly*/\n      false,\n      name === propertyName ? void 0 : factory.createIdentifier(propertyName),\n      factory.createIdentifier(name)\n    ));\n  });\n  const importDecl = toConvert.parent.parent;\n  if (usedAsNamespaceOrDefault && !allowSyntheticDefaultImports && isImportDeclaration(importDecl)) {\n    changes.insertNodeAfter(sourceFile, importDecl, createImport(\n      importDecl,\n      /*defaultImportName*/\n      void 0,\n      importSpecifiers\n    ));\n  } else {\n    const defaultImportName = usedAsNamespaceOrDefault ? factory.createIdentifier(toConvert.name.text) : void 0;\n    changes.replaceNode(sourceFile, toConvert.parent, createImportClause(defaultImportName, importSpecifiers));\n  }\n}\nfunction getRightOfPropertyAccessOrQualifiedName(propertyAccessOrQualifiedName) {\n  return isPropertyAccessExpression(propertyAccessOrQualifiedName) ? propertyAccessOrQualifiedName.name : propertyAccessOrQualifiedName.right;\n}\nfunction getLeftOfPropertyAccessOrQualifiedName(propertyAccessOrQualifiedName) {\n  return isPropertyAccessExpression(propertyAccessOrQualifiedName) ? propertyAccessOrQualifiedName.expression : propertyAccessOrQualifiedName.left;\n}\nfunction doChangeNamedToNamespaceOrDefault(sourceFile, program, changes, toConvert, shouldUseDefault = getShouldUseDefault(program, toConvert.parent)) {\n  const checker = program.getTypeChecker();\n  const importDecl = toConvert.parent.parent;\n  const { moduleSpecifier } = importDecl;\n  const toConvertSymbols = /* @__PURE__ */ new Set();\n  toConvert.elements.forEach((namedImport) => {\n    const symbol = checker.getSymbolAtLocation(namedImport.name);\n    if (symbol) {\n      toConvertSymbols.add(symbol);\n    }\n  });\n  const preferredName = moduleSpecifier && isStringLiteral(moduleSpecifier) ? moduleSpecifierToValidIdentifier(moduleSpecifier.text, 99 /* ESNext */) : \"module\";\n  function hasNamespaceNameConflict(namedImport) {\n    return !!ts_FindAllReferences_exports.Core.eachSymbolReferenceInFile(namedImport.name, checker, sourceFile, (id) => {\n      const symbol = checker.resolveName(\n        preferredName,\n        id,\n        -1 /* All */,\n        /*excludeGlobals*/\n        true\n      );\n      if (symbol) {\n        if (toConvertSymbols.has(symbol)) {\n          return isExportSpecifier(id.parent);\n        }\n        return true;\n      }\n      return false;\n    });\n  }\n  const namespaceNameConflicts = toConvert.elements.some(hasNamespaceNameConflict);\n  const namespaceImportName = namespaceNameConflicts ? getUniqueName(preferredName, sourceFile) : preferredName;\n  const neededNamedImports = /* @__PURE__ */ new Set();\n  for (const element of toConvert.elements) {\n    const propertyName = element.propertyName || element.name;\n    ts_FindAllReferences_exports.Core.eachSymbolReferenceInFile(element.name, checker, sourceFile, (id) => {\n      const access = propertyName.kind === 11 /* StringLiteral */ ? factory.createElementAccessExpression(factory.createIdentifier(namespaceImportName), factory.cloneNode(propertyName)) : factory.createPropertyAccessExpression(factory.createIdentifier(namespaceImportName), factory.cloneNode(propertyName));\n      if (isShorthandPropertyAssignment(id.parent)) {\n        changes.replaceNode(sourceFile, id.parent, factory.createPropertyAssignment(id.text, access));\n      } else if (isExportSpecifier(id.parent)) {\n        neededNamedImports.add(element);\n      } else {\n        changes.replaceNode(sourceFile, id, access);\n      }\n    });\n  }\n  changes.replaceNode(\n    sourceFile,\n    toConvert,\n    shouldUseDefault ? factory.createIdentifier(namespaceImportName) : factory.createNamespaceImport(factory.createIdentifier(namespaceImportName))\n  );\n  if (neededNamedImports.size && isImportDeclaration(importDecl)) {\n    const newNamedImports = arrayFrom(neededNamedImports.values(), (element) => factory.createImportSpecifier(element.isTypeOnly, element.propertyName && factory.cloneNode(element.propertyName), factory.cloneNode(element.name)));\n    changes.insertNodeAfter(sourceFile, toConvert.parent.parent, createImport(\n      importDecl,\n      /*defaultImportName*/\n      void 0,\n      newNamedImports\n    ));\n  }\n}\nfunction isExportEqualsModule(moduleSpecifier, checker) {\n  const externalModule = checker.resolveExternalModuleName(moduleSpecifier);\n  if (!externalModule) return false;\n  const exportEquals = checker.resolveExternalModuleSymbol(externalModule);\n  return externalModule !== exportEquals;\n}\nfunction createImport(node, defaultImportName, elements) {\n  return factory.createImportDeclaration(\n    /*modifiers*/\n    void 0,\n    createImportClause(defaultImportName, elements),\n    node.moduleSpecifier,\n    /*attributes*/\n    void 0\n  );\n}\nfunction createImportClause(defaultImportName, elements) {\n  return factory.createImportClause(\n    /*phaseModifier*/\n    void 0,\n    defaultImportName,\n    elements && elements.length ? factory.createNamedImports(elements) : void 0\n  );\n}\n\n// src/services/refactors/extractType.ts\nvar refactorName3 = \"Extract type\";\nvar extractToTypeAliasAction = {\n  name: \"Extract to type alias\",\n  description: getLocaleSpecificMessage(Diagnostics.Extract_to_type_alias),\n  kind: \"refactor.extract.type\"\n};\nvar extractToInterfaceAction = {\n  name: \"Extract to interface\",\n  description: getLocaleSpecificMessage(Diagnostics.Extract_to_interface),\n  kind: \"refactor.extract.interface\"\n};\nvar extractToTypeDefAction = {\n  name: \"Extract to typedef\",\n  description: getLocaleSpecificMessage(Diagnostics.Extract_to_typedef),\n  kind: \"refactor.extract.typedef\"\n};\nregisterRefactor(refactorName3, {\n  kinds: [\n    extractToTypeAliasAction.kind,\n    extractToInterfaceAction.kind,\n    extractToTypeDefAction.kind\n  ],\n  getAvailableActions: function getRefactorActionsToExtractType(context) {\n    const { info, affectedTextRange } = getRangeToExtract(context, context.triggerReason === \"invoked\");\n    if (!info) return emptyArray;\n    if (!isRefactorErrorInfo(info)) {\n      const refactorInfo = [{\n        name: refactorName3,\n        description: getLocaleSpecificMessage(Diagnostics.Extract_type),\n        actions: info.isJS ? [extractToTypeDefAction] : append([extractToTypeAliasAction], info.typeElements && extractToInterfaceAction)\n      }];\n      return refactorInfo.map((info2) => ({\n        ...info2,\n        actions: info2.actions.map((action) => ({\n          ...action,\n          range: affectedTextRange ? {\n            start: { line: getLineAndCharacterOfPosition(context.file, affectedTextRange.pos).line, offset: getLineAndCharacterOfPosition(context.file, affectedTextRange.pos).character },\n            end: { line: getLineAndCharacterOfPosition(context.file, affectedTextRange.end).line, offset: getLineAndCharacterOfPosition(context.file, affectedTextRange.end).character }\n          } : void 0\n        }))\n      }));\n    }\n    if (context.preferences.provideRefactorNotApplicableReason) {\n      return [{\n        name: refactorName3,\n        description: getLocaleSpecificMessage(Diagnostics.Extract_type),\n        actions: [\n          { ...extractToTypeDefAction, notApplicableReason: info.error },\n          { ...extractToTypeAliasAction, notApplicableReason: info.error },\n          { ...extractToInterfaceAction, notApplicableReason: info.error }\n        ]\n      }];\n    }\n    return emptyArray;\n  },\n  getEditsForAction: function getRefactorEditsToExtractType(context, actionName2) {\n    const { file } = context;\n    const { info } = getRangeToExtract(context);\n    Debug.assert(info && !isRefactorErrorInfo(info), \"Expected to find a range to extract\");\n    const name = getUniqueName(\"NewType\", file);\n    const edits = ts_textChanges_exports.ChangeTracker.with(context, (changes) => {\n      switch (actionName2) {\n        case extractToTypeAliasAction.name:\n          Debug.assert(!info.isJS, \"Invalid actionName/JS combo\");\n          return doTypeAliasChange(changes, file, name, info);\n        case extractToTypeDefAction.name:\n          Debug.assert(info.isJS, \"Invalid actionName/JS combo\");\n          return doTypedefChange(changes, context, file, name, info);\n        case extractToInterfaceAction.name:\n          Debug.assert(!info.isJS && !!info.typeElements, \"Invalid actionName/JS combo\");\n          return doInterfaceChange(changes, file, name, info);\n        default:\n          Debug.fail(\"Unexpected action name\");\n      }\n    });\n    const renameFilename = file.fileName;\n    const renameLocation = getRenameLocation(\n      edits,\n      renameFilename,\n      name,\n      /*preferLastLocation*/\n      false\n    );\n    return { edits, renameFilename, renameLocation };\n  }\n});\nfunction getRangeToExtract(context, considerEmptySpans = true) {\n  const { file, startPosition } = context;\n  const isJS = isSourceFileJS(file);\n  const range = createTextRangeFromSpan(getRefactorContextSpan(context));\n  const isCursorRequest = range.pos === range.end && considerEmptySpans;\n  const firstType = getFirstTypeAt(file, startPosition, range, isCursorRequest);\n  if (!firstType || !isTypeNode(firstType)) return { info: { error: getLocaleSpecificMessage(Diagnostics.Selection_is_not_a_valid_type_node) }, affectedTextRange: void 0 };\n  const checker = context.program.getTypeChecker();\n  const enclosingNode = getEnclosingNode(firstType, isJS);\n  if (enclosingNode === void 0) return { info: { error: getLocaleSpecificMessage(Diagnostics.No_type_could_be_extracted_from_this_type_node) }, affectedTextRange: void 0 };\n  const expandedFirstType = getExpandedSelectionNode(firstType, enclosingNode);\n  if (!isTypeNode(expandedFirstType)) return { info: { error: getLocaleSpecificMessage(Diagnostics.Selection_is_not_a_valid_type_node) }, affectedTextRange: void 0 };\n  const typeList = [];\n  if ((isUnionTypeNode(expandedFirstType.parent) || isIntersectionTypeNode(expandedFirstType.parent)) && range.end > firstType.end) {\n    addRange(\n      typeList,\n      expandedFirstType.parent.types.filter((type) => {\n        return nodeOverlapsWithStartEnd(type, file, range.pos, range.end);\n      })\n    );\n  }\n  const selection = typeList.length > 1 ? typeList : expandedFirstType;\n  const { typeParameters, affectedTextRange } = collectTypeParameters(checker, selection, enclosingNode, file);\n  if (!typeParameters) return { info: { error: getLocaleSpecificMessage(Diagnostics.No_type_could_be_extracted_from_this_type_node) }, affectedTextRange: void 0 };\n  const typeElements = flattenTypeLiteralNodeReference(checker, selection);\n  return { info: { isJS, selection, enclosingNode, typeParameters, typeElements }, affectedTextRange };\n}\nfunction getFirstTypeAt(file, startPosition, range, isCursorRequest) {\n  const currentNodes = [\n    () => getTokenAtPosition(file, startPosition),\n    () => getTouchingToken(file, startPosition, () => true)\n  ];\n  for (const f of currentNodes) {\n    const current = f();\n    const overlappingRange = nodeOverlapsWithStartEnd(current, file, range.pos, range.end);\n    const firstType = findAncestor(current, (node) => node.parent && isTypeNode(node) && !rangeContainsSkipTrivia(range, node.parent, file) && (isCursorRequest || overlappingRange));\n    if (firstType) {\n      return firstType;\n    }\n  }\n  return void 0;\n}\nfunction flattenTypeLiteralNodeReference(checker, selection) {\n  if (!selection) return void 0;\n  if (isArray(selection)) {\n    const result = [];\n    for (const type of selection) {\n      const flattenedTypeMembers = flattenTypeLiteralNodeReference(checker, type);\n      if (!flattenedTypeMembers) return void 0;\n      addRange(result, flattenedTypeMembers);\n    }\n    return result;\n  }\n  if (isIntersectionTypeNode(selection)) {\n    const result = [];\n    const seen = /* @__PURE__ */ new Set();\n    for (const type of selection.types) {\n      const flattenedTypeMembers = flattenTypeLiteralNodeReference(checker, type);\n      if (!flattenedTypeMembers || !flattenedTypeMembers.every((type2) => type2.name && addToSeen(seen, getNameFromPropertyName(type2.name)))) {\n        return void 0;\n      }\n      addRange(result, flattenedTypeMembers);\n    }\n    return result;\n  } else if (isParenthesizedTypeNode(selection)) {\n    return flattenTypeLiteralNodeReference(checker, selection.type);\n  } else if (isTypeLiteralNode(selection)) {\n    return selection.members;\n  }\n  return void 0;\n}\nfunction rangeContainsSkipTrivia(r1, node, file) {\n  return rangeContainsStartEnd(r1, skipTrivia(file.text, node.pos), node.end);\n}\nfunction collectTypeParameters(checker, selection, enclosingNode, file) {\n  const result = [];\n  const selectionArray = toArray(selection);\n  const selectionRange = { pos: selectionArray[0].getStart(file), end: selectionArray[selectionArray.length - 1].end };\n  for (const t of selectionArray) {\n    if (visitor(t)) return { typeParameters: void 0, affectedTextRange: void 0 };\n  }\n  return { typeParameters: result, affectedTextRange: selectionRange };\n  function visitor(node) {\n    if (isTypeReferenceNode(node)) {\n      if (isIdentifier(node.typeName)) {\n        const typeName = node.typeName;\n        const symbol = checker.resolveName(\n          typeName.text,\n          typeName,\n          262144 /* TypeParameter */,\n          /*excludeGlobals*/\n          true\n        );\n        for (const decl of (symbol == null ? void 0 : symbol.declarations) || emptyArray) {\n          if (isTypeParameterDeclaration(decl) && decl.getSourceFile() === file) {\n            if (decl.name.escapedText === typeName.escapedText && rangeContainsSkipTrivia(decl, selectionRange, file)) {\n              return true;\n            }\n            if (rangeContainsSkipTrivia(enclosingNode, decl, file) && !rangeContainsSkipTrivia(selectionRange, decl, file)) {\n              pushIfUnique(result, decl);\n              break;\n            }\n          }\n        }\n      }\n    } else if (isInferTypeNode(node)) {\n      const conditionalTypeNode = findAncestor(node, (n) => isConditionalTypeNode(n) && rangeContainsSkipTrivia(n.extendsType, node, file));\n      if (!conditionalTypeNode || !rangeContainsSkipTrivia(selectionRange, conditionalTypeNode, file)) {\n        return true;\n      }\n    } else if (isTypePredicateNode(node) || isThisTypeNode(node)) {\n      const functionLikeNode = findAncestor(node.parent, isFunctionLike);\n      if (functionLikeNode && functionLikeNode.type && rangeContainsSkipTrivia(functionLikeNode.type, node, file) && !rangeContainsSkipTrivia(selectionRange, functionLikeNode, file)) {\n        return true;\n      }\n    } else if (isTypeQueryNode(node)) {\n      if (isIdentifier(node.exprName)) {\n        const symbol = checker.resolveName(\n          node.exprName.text,\n          node.exprName,\n          111551 /* Value */,\n          /*excludeGlobals*/\n          false\n        );\n        if ((symbol == null ? void 0 : symbol.valueDeclaration) && rangeContainsSkipTrivia(enclosingNode, symbol.valueDeclaration, file) && !rangeContainsSkipTrivia(selectionRange, symbol.valueDeclaration, file)) {\n          return true;\n        }\n      } else {\n        if (isThisIdentifier(node.exprName.left) && !rangeContainsSkipTrivia(selectionRange, node.parent, file)) {\n          return true;\n        }\n      }\n    }\n    if (file && isTupleTypeNode(node) && getLineAndCharacterOfPosition(file, node.pos).line === getLineAndCharacterOfPosition(file, node.end).line) {\n      setEmitFlags(node, 1 /* SingleLine */);\n    }\n    return forEachChild(node, visitor);\n  }\n}\nfunction doTypeAliasChange(changes, file, name, info) {\n  const { enclosingNode, typeParameters } = info;\n  const { firstTypeNode, lastTypeNode, newTypeNode } = getNodesToEdit(info);\n  const newTypeDeclaration = factory.createTypeAliasDeclaration(\n    /*modifiers*/\n    void 0,\n    name,\n    typeParameters.map((id) => factory.updateTypeParameterDeclaration(\n      id,\n      id.modifiers,\n      id.name,\n      id.constraint,\n      /*defaultType*/\n      void 0\n    )),\n    newTypeNode\n  );\n  changes.insertNodeBefore(\n    file,\n    enclosingNode,\n    ignoreSourceNewlines(newTypeDeclaration),\n    /*blankLineBetween*/\n    true\n  );\n  changes.replaceNodeRange(file, firstTypeNode, lastTypeNode, factory.createTypeReferenceNode(name, typeParameters.map((id) => factory.createTypeReferenceNode(\n    id.name,\n    /*typeArguments*/\n    void 0\n  ))), { leadingTriviaOption: ts_textChanges_exports.LeadingTriviaOption.Exclude, trailingTriviaOption: ts_textChanges_exports.TrailingTriviaOption.ExcludeWhitespace });\n}\nfunction doInterfaceChange(changes, file, name, info) {\n  var _a;\n  const { enclosingNode, typeParameters, typeElements } = info;\n  const newTypeNode = factory.createInterfaceDeclaration(\n    /*modifiers*/\n    void 0,\n    name,\n    typeParameters,\n    /*heritageClauses*/\n    void 0,\n    typeElements\n  );\n  setTextRange(newTypeNode, (_a = typeElements[0]) == null ? void 0 : _a.parent);\n  changes.insertNodeBefore(\n    file,\n    enclosingNode,\n    ignoreSourceNewlines(newTypeNode),\n    /*blankLineBetween*/\n    true\n  );\n  const { firstTypeNode, lastTypeNode } = getNodesToEdit(info);\n  changes.replaceNodeRange(file, firstTypeNode, lastTypeNode, factory.createTypeReferenceNode(name, typeParameters.map((id) => factory.createTypeReferenceNode(\n    id.name,\n    /*typeArguments*/\n    void 0\n  ))), { leadingTriviaOption: ts_textChanges_exports.LeadingTriviaOption.Exclude, trailingTriviaOption: ts_textChanges_exports.TrailingTriviaOption.ExcludeWhitespace });\n}\nfunction doTypedefChange(changes, context, file, name, info) {\n  var _a;\n  toArray(info.selection).forEach((typeNode) => {\n    setEmitFlags(typeNode, 3072 /* NoComments */ | 4096 /* NoNestedComments */);\n  });\n  const { enclosingNode, typeParameters } = info;\n  const { firstTypeNode, lastTypeNode, newTypeNode } = getNodesToEdit(info);\n  const node = factory.createJSDocTypedefTag(\n    factory.createIdentifier(\"typedef\"),\n    factory.createJSDocTypeExpression(newTypeNode),\n    factory.createIdentifier(name)\n  );\n  const templates = [];\n  forEach(typeParameters, (typeParameter) => {\n    const constraint = getEffectiveConstraintOfTypeParameter(typeParameter);\n    const parameter = factory.createTypeParameterDeclaration(\n      /*modifiers*/\n      void 0,\n      typeParameter.name\n    );\n    const template = factory.createJSDocTemplateTag(\n      factory.createIdentifier(\"template\"),\n      constraint && cast(constraint, isJSDocTypeExpression),\n      [parameter]\n    );\n    templates.push(template);\n  });\n  const jsDoc = factory.createJSDocComment(\n    /*comment*/\n    void 0,\n    factory.createNodeArray(concatenate(templates, [node]))\n  );\n  if (isJSDoc(enclosingNode)) {\n    const pos = enclosingNode.getStart(file);\n    const newLineCharacter = getNewLineOrDefaultFromHost(context.host, (_a = context.formatContext) == null ? void 0 : _a.options);\n    changes.insertNodeAt(file, enclosingNode.getStart(file), jsDoc, {\n      suffix: newLineCharacter + newLineCharacter + file.text.slice(getPrecedingNonSpaceCharacterPosition(file.text, pos - 1), pos)\n    });\n  } else {\n    changes.insertNodeBefore(\n      file,\n      enclosingNode,\n      jsDoc,\n      /*blankLineBetween*/\n      true\n    );\n  }\n  changes.replaceNodeRange(file, firstTypeNode, lastTypeNode, factory.createTypeReferenceNode(name, typeParameters.map((id) => factory.createTypeReferenceNode(\n    id.name,\n    /*typeArguments*/\n    void 0\n  ))));\n}\nfunction getNodesToEdit(info) {\n  if (isArray(info.selection)) {\n    return {\n      firstTypeNode: info.selection[0],\n      lastTypeNode: info.selection[info.selection.length - 1],\n      newTypeNode: isUnionTypeNode(info.selection[0].parent) ? factory.createUnionTypeNode(info.selection) : factory.createIntersectionTypeNode(info.selection)\n    };\n  }\n  return {\n    firstTypeNode: info.selection,\n    lastTypeNode: info.selection,\n    newTypeNode: info.selection\n  };\n}\nfunction getEnclosingNode(node, isJS) {\n  return findAncestor(node, isStatement) || (isJS ? findAncestor(node, isJSDoc) : void 0);\n}\nfunction getExpandedSelectionNode(firstType, enclosingNode) {\n  return findAncestor(firstType, (node) => {\n    if (node === enclosingNode) return \"quit\";\n    if (isUnionTypeNode(node.parent) || isIntersectionTypeNode(node.parent)) {\n      return true;\n    }\n    return false;\n  }) ?? firstType;\n}\n\n// src/services/refactors/moveToFile.ts\nvar refactorNameForMoveToFile = \"Move to file\";\nvar description = getLocaleSpecificMessage(Diagnostics.Move_to_file);\nvar moveToFileAction = {\n  name: \"Move to file\",\n  description,\n  kind: \"refactor.move.file\"\n};\nregisterRefactor(refactorNameForMoveToFile, {\n  kinds: [moveToFileAction.kind],\n  getAvailableActions: function getRefactorActionsToMoveToFile(context, interactiveRefactorArguments) {\n    const file = context.file;\n    const statements = getStatementsToMove(context);\n    if (!interactiveRefactorArguments) {\n      return emptyArray;\n    }\n    if (context.triggerReason === \"implicit\" && context.endPosition !== void 0) {\n      const startNodeAncestor = findAncestor(getTokenAtPosition(file, context.startPosition), isBlockLike);\n      const endNodeAncestor = findAncestor(getTokenAtPosition(file, context.endPosition), isBlockLike);\n      if (startNodeAncestor && !isSourceFile(startNodeAncestor) && endNodeAncestor && !isSourceFile(endNodeAncestor)) {\n        return emptyArray;\n      }\n    }\n    if (context.preferences.allowTextChangesInNewFiles && statements) {\n      const affectedTextRange = {\n        start: { line: getLineAndCharacterOfPosition(file, statements.all[0].getStart(file)).line, offset: getLineAndCharacterOfPosition(file, statements.all[0].getStart(file)).character },\n        end: { line: getLineAndCharacterOfPosition(file, last(statements.all).end).line, offset: getLineAndCharacterOfPosition(file, last(statements.all).end).character }\n      };\n      return [{ name: refactorNameForMoveToFile, description, actions: [{ ...moveToFileAction, range: affectedTextRange }] }];\n    }\n    if (context.preferences.provideRefactorNotApplicableReason) {\n      return [{ name: refactorNameForMoveToFile, description, actions: [{ ...moveToFileAction, notApplicableReason: getLocaleSpecificMessage(Diagnostics.Selection_is_not_a_valid_statement_or_statements) }] }];\n    }\n    return emptyArray;\n  },\n  getEditsForAction: function getRefactorEditsToMoveToFile(context, actionName2, interactiveRefactorArguments) {\n    Debug.assert(actionName2 === refactorNameForMoveToFile, \"Wrong refactor invoked\");\n    const statements = Debug.checkDefined(getStatementsToMove(context));\n    const { host, program } = context;\n    Debug.assert(interactiveRefactorArguments, \"No interactive refactor arguments available\");\n    const targetFile = interactiveRefactorArguments.targetFile;\n    if (hasJSFileExtension(targetFile) || hasTSFileExtension(targetFile)) {\n      if (host.fileExists(targetFile) && program.getSourceFile(targetFile) === void 0) {\n        return error(getLocaleSpecificMessage(Diagnostics.Cannot_move_statements_to_the_selected_file));\n      }\n      const edits = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange3(context, context.file, interactiveRefactorArguments.targetFile, context.program, statements, t, context.host, context.preferences));\n      return { edits, renameFilename: void 0, renameLocation: void 0 };\n    }\n    return error(getLocaleSpecificMessage(Diagnostics.Cannot_move_to_file_selected_file_is_invalid));\n  }\n});\nfunction error(notApplicableReason) {\n  return { edits: [], renameFilename: void 0, renameLocation: void 0, notApplicableReason };\n}\nfunction doChange3(context, oldFile, targetFile, program, toMove, changes, host, preferences) {\n  const checker = program.getTypeChecker();\n  const isForNewFile = !host.fileExists(targetFile);\n  const targetSourceFile = isForNewFile ? createFutureSourceFile(targetFile, oldFile.externalModuleIndicator ? 99 /* ESNext */ : oldFile.commonJsModuleIndicator ? 1 /* CommonJS */ : void 0, program, host) : Debug.checkDefined(program.getSourceFile(targetFile));\n  const importAdderForOldFile = ts_codefix_exports.createImportAdder(oldFile, context.program, context.preferences, context.host);\n  const importAdderForNewFile = ts_codefix_exports.createImportAdder(targetSourceFile, context.program, context.preferences, context.host);\n  getNewStatementsAndRemoveFromOldFile(oldFile, targetSourceFile, getUsageInfo(oldFile, toMove.all, checker, isForNewFile ? void 0 : getExistingLocals(targetSourceFile, toMove.all, checker)), changes, toMove, program, host, preferences, importAdderForNewFile, importAdderForOldFile);\n  if (isForNewFile) {\n    addNewFileToTsconfig(program, changes, oldFile.fileName, targetFile, hostGetCanonicalFileName(host));\n  }\n}\nfunction getNewStatementsAndRemoveFromOldFile(oldFile, targetFile, usage, changes, toMove, program, host, preferences, importAdderForNewFile, importAdderForOldFile) {\n  const checker = program.getTypeChecker();\n  const prologueDirectives = takeWhile(oldFile.statements, isPrologueDirective);\n  const useEsModuleSyntax = !fileShouldUseJavaScriptRequire(targetFile.fileName, program, host, !!oldFile.commonJsModuleIndicator);\n  const quotePreference = getQuotePreference(oldFile, preferences);\n  addImportsForMovedSymbols(usage.oldFileImportsFromTargetFile, targetFile.fileName, importAdderForOldFile, program);\n  deleteUnusedOldImports(oldFile, toMove.all, usage.unusedImportsFromOldFile, importAdderForOldFile);\n  importAdderForOldFile.writeFixes(changes, quotePreference);\n  deleteMovedStatements(oldFile, toMove.ranges, changes);\n  updateImportsInOtherFiles(changes, program, host, oldFile, usage.movedSymbols, targetFile.fileName, quotePreference);\n  addExportsInOldFile(oldFile, usage.targetFileImportsFromOldFile, changes, useEsModuleSyntax);\n  addTargetFileImports(oldFile, usage.oldImportsNeededByTargetFile, usage.targetFileImportsFromOldFile, checker, program, importAdderForNewFile);\n  if (!isFullSourceFile(targetFile) && prologueDirectives.length) {\n    changes.insertStatementsInNewFile(targetFile.fileName, prologueDirectives, oldFile);\n  }\n  importAdderForNewFile.writeFixes(changes, quotePreference);\n  const body = addExports(oldFile, toMove.all, arrayFrom(usage.oldFileImportsFromTargetFile.keys()), useEsModuleSyntax);\n  if (isFullSourceFile(targetFile) && targetFile.statements.length > 0) {\n    moveStatementsToTargetFile(changes, program, body, targetFile, toMove);\n  } else if (isFullSourceFile(targetFile)) {\n    changes.insertNodesAtEndOfFile(\n      targetFile,\n      body,\n      /*blankLineBetween*/\n      false\n    );\n  } else {\n    changes.insertStatementsInNewFile(targetFile.fileName, importAdderForNewFile.hasFixes() ? [4 /* NewLineTrivia */, ...body] : body, oldFile);\n  }\n}\nfunction addNewFileToTsconfig(program, changes, oldFileName, newFileNameWithExtension, getCanonicalFileName) {\n  const cfg = program.getCompilerOptions().configFile;\n  if (!cfg) return;\n  const newFileAbsolutePath = normalizePath(combinePaths(oldFileName, \"..\", newFileNameWithExtension));\n  const newFilePath = getRelativePathFromFile(cfg.fileName, newFileAbsolutePath, getCanonicalFileName);\n  const cfgObject = cfg.statements[0] && tryCast(cfg.statements[0].expression, isObjectLiteralExpression);\n  const filesProp = cfgObject && find(cfgObject.properties, (prop) => isPropertyAssignment(prop) && isStringLiteral(prop.name) && prop.name.text === \"files\");\n  if (filesProp && isArrayLiteralExpression(filesProp.initializer)) {\n    changes.insertNodeInListAfter(cfg, last(filesProp.initializer.elements), factory.createStringLiteral(newFilePath), filesProp.initializer.elements);\n  }\n}\nfunction deleteMovedStatements(sourceFile, moved, changes) {\n  for (const { first: first2, afterLast } of moved) {\n    changes.deleteNodeRangeExcludingEnd(sourceFile, first2, afterLast);\n  }\n}\nfunction deleteUnusedOldImports(oldFile, toMove, toDelete, importAdder) {\n  for (const statement of oldFile.statements) {\n    if (contains(toMove, statement)) continue;\n    forEachImportInStatement(statement, (i) => {\n      forEachAliasDeclarationInImportOrRequire(i, (decl) => {\n        if (toDelete.has(decl.symbol)) {\n          importAdder.removeExistingImport(decl);\n        }\n      });\n    });\n  }\n}\nfunction addExportsInOldFile(oldFile, targetFileImportsFromOldFile, changes, useEsModuleSyntax) {\n  const markSeenTop = nodeSeenTracker();\n  targetFileImportsFromOldFile.forEach((_, symbol) => {\n    if (!symbol.declarations) {\n      return;\n    }\n    for (const decl of symbol.declarations) {\n      if (!isTopLevelDeclaration(decl)) continue;\n      const name = nameOfTopLevelDeclaration(decl);\n      if (!name) continue;\n      const top = getTopLevelDeclarationStatement(decl);\n      if (markSeenTop(top)) {\n        addExportToChanges(oldFile, top, name, changes, useEsModuleSyntax);\n      }\n    }\n  });\n}\nfunction updateImportsInOtherFiles(changes, program, host, oldFile, movedSymbols, targetFileName, quotePreference) {\n  const checker = program.getTypeChecker();\n  for (const sourceFile of program.getSourceFiles()) {\n    if (sourceFile === oldFile) continue;\n    for (const statement of sourceFile.statements) {\n      forEachImportInStatement(statement, (importNode) => {\n        if (checker.getSymbolAtLocation(moduleSpecifierFromImport(importNode)) !== oldFile.symbol) return;\n        const shouldMove = (name) => {\n          const symbol = isBindingElement(name.parent) ? getPropertySymbolFromBindingElement(checker, name.parent) : skipAlias(checker.getSymbolAtLocation(name), checker);\n          return !!symbol && movedSymbols.has(symbol);\n        };\n        deleteUnusedImports(sourceFile, importNode, changes, shouldMove);\n        const pathToTargetFileWithExtension = resolvePath(getDirectoryPath(getNormalizedAbsolutePath(oldFile.fileName, program.getCurrentDirectory())), targetFileName);\n        if (getStringComparer(!program.useCaseSensitiveFileNames())(pathToTargetFileWithExtension, sourceFile.fileName) === 0 /* EqualTo */) return;\n        const newModuleSpecifier = ts_moduleSpecifiers_exports.getModuleSpecifier(program.getCompilerOptions(), sourceFile, sourceFile.fileName, pathToTargetFileWithExtension, createModuleSpecifierResolutionHost(program, host));\n        const newImportDeclaration = filterImport(importNode, makeStringLiteral(newModuleSpecifier, quotePreference), shouldMove);\n        if (newImportDeclaration) changes.insertNodeAfter(sourceFile, statement, newImportDeclaration);\n        const ns = getNamespaceLikeImport(importNode);\n        if (ns) updateNamespaceLikeImport(changes, sourceFile, checker, movedSymbols, newModuleSpecifier, ns, importNode, quotePreference);\n      });\n    }\n  }\n}\nfunction getNamespaceLikeImport(node) {\n  switch (node.kind) {\n    case 273 /* ImportDeclaration */:\n      return node.importClause && node.importClause.namedBindings && node.importClause.namedBindings.kind === 275 /* NamespaceImport */ ? node.importClause.namedBindings.name : void 0;\n    case 272 /* ImportEqualsDeclaration */:\n      return node.name;\n    case 261 /* VariableDeclaration */:\n      return tryCast(node.name, isIdentifier);\n    default:\n      return Debug.assertNever(node, `Unexpected node kind ${node.kind}`);\n  }\n}\nfunction updateNamespaceLikeImport(changes, sourceFile, checker, movedSymbols, newModuleSpecifier, oldImportId, oldImportNode, quotePreference) {\n  const preferredNewNamespaceName = moduleSpecifierToValidIdentifier(newModuleSpecifier, 99 /* ESNext */);\n  let needUniqueName = false;\n  const toChange = [];\n  ts_FindAllReferences_exports.Core.eachSymbolReferenceInFile(oldImportId, checker, sourceFile, (ref) => {\n    if (!isPropertyAccessExpression(ref.parent)) return;\n    needUniqueName = needUniqueName || !!checker.resolveName(\n      preferredNewNamespaceName,\n      ref,\n      -1 /* All */,\n      /*excludeGlobals*/\n      true\n    );\n    if (movedSymbols.has(checker.getSymbolAtLocation(ref.parent.name))) {\n      toChange.push(ref);\n    }\n  });\n  if (toChange.length) {\n    const newNamespaceName = needUniqueName ? getUniqueName(preferredNewNamespaceName, sourceFile) : preferredNewNamespaceName;\n    for (const ref of toChange) {\n      changes.replaceNode(sourceFile, ref, factory.createIdentifier(newNamespaceName));\n    }\n    changes.insertNodeAfter(sourceFile, oldImportNode, updateNamespaceLikeImportNode(oldImportNode, preferredNewNamespaceName, newModuleSpecifier, quotePreference));\n  }\n}\nfunction updateNamespaceLikeImportNode(node, newNamespaceName, newModuleSpecifier, quotePreference) {\n  const newNamespaceId = factory.createIdentifier(newNamespaceName);\n  const newModuleString = makeStringLiteral(newModuleSpecifier, quotePreference);\n  switch (node.kind) {\n    case 273 /* ImportDeclaration */:\n      return factory.createImportDeclaration(\n        /*modifiers*/\n        void 0,\n        factory.createImportClause(\n          /*phaseModifier*/\n          void 0,\n          /*name*/\n          void 0,\n          factory.createNamespaceImport(newNamespaceId)\n        ),\n        newModuleString,\n        /*attributes*/\n        void 0\n      );\n    case 272 /* ImportEqualsDeclaration */:\n      return factory.createImportEqualsDeclaration(\n        /*modifiers*/\n        void 0,\n        /*isTypeOnly*/\n        false,\n        newNamespaceId,\n        factory.createExternalModuleReference(newModuleString)\n      );\n    case 261 /* VariableDeclaration */:\n      return factory.createVariableDeclaration(\n        newNamespaceId,\n        /*exclamationToken*/\n        void 0,\n        /*type*/\n        void 0,\n        createRequireCall(newModuleString)\n      );\n    default:\n      return Debug.assertNever(node, `Unexpected node kind ${node.kind}`);\n  }\n}\nfunction createRequireCall(moduleSpecifier) {\n  return factory.createCallExpression(\n    factory.createIdentifier(\"require\"),\n    /*typeArguments*/\n    void 0,\n    [moduleSpecifier]\n  );\n}\nfunction moduleSpecifierFromImport(i) {\n  return i.kind === 273 /* ImportDeclaration */ ? i.moduleSpecifier : i.kind === 272 /* ImportEqualsDeclaration */ ? i.moduleReference.expression : i.initializer.arguments[0];\n}\nfunction forEachImportInStatement(statement, cb) {\n  if (isImportDeclaration(statement)) {\n    if (isStringLiteral(statement.moduleSpecifier)) cb(statement);\n  } else if (isImportEqualsDeclaration(statement)) {\n    if (isExternalModuleReference(statement.moduleReference) && isStringLiteralLike(statement.moduleReference.expression)) {\n      cb(statement);\n    }\n  } else if (isVariableStatement(statement)) {\n    for (const decl of statement.declarationList.declarations) {\n      if (decl.initializer && isRequireCall(\n        decl.initializer,\n        /*requireStringLiteralLikeArgument*/\n        true\n      )) {\n        cb(decl);\n      }\n    }\n  }\n}\nfunction forEachAliasDeclarationInImportOrRequire(importOrRequire, cb) {\n  var _a, _b, _c, _d, _e;\n  if (importOrRequire.kind === 273 /* ImportDeclaration */) {\n    if ((_a = importOrRequire.importClause) == null ? void 0 : _a.name) {\n      cb(importOrRequire.importClause);\n    }\n    if (((_c = (_b = importOrRequire.importClause) == null ? void 0 : _b.namedBindings) == null ? void 0 : _c.kind) === 275 /* NamespaceImport */) {\n      cb(importOrRequire.importClause.namedBindings);\n    }\n    if (((_e = (_d = importOrRequire.importClause) == null ? void 0 : _d.namedBindings) == null ? void 0 : _e.kind) === 276 /* NamedImports */) {\n      for (const element of importOrRequire.importClause.namedBindings.elements) {\n        cb(element);\n      }\n    }\n  } else if (importOrRequire.kind === 272 /* ImportEqualsDeclaration */) {\n    cb(importOrRequire);\n  } else if (importOrRequire.kind === 261 /* VariableDeclaration */) {\n    if (importOrRequire.name.kind === 80 /* Identifier */) {\n      cb(importOrRequire);\n    } else if (importOrRequire.name.kind === 207 /* ObjectBindingPattern */) {\n      for (const element of importOrRequire.name.elements) {\n        if (isIdentifier(element.name)) {\n          cb(element);\n        }\n      }\n    }\n  }\n}\nfunction addImportsForMovedSymbols(symbols, targetFileName, importAdder, program) {\n  for (const [symbol, isValidTypeOnlyUseSite] of symbols) {\n    const symbolName2 = getNameForExportedSymbol(symbol, getEmitScriptTarget(program.getCompilerOptions()));\n    const exportKind = symbol.name === \"default\" && symbol.parent ? 1 /* Default */ : 0 /* Named */;\n    importAdder.addImportForNonExistentExport(symbolName2, targetFileName, exportKind, symbol.flags, isValidTypeOnlyUseSite);\n  }\n}\nfunction makeVariableStatement(name, type, initializer, flags = 2 /* Const */) {\n  return factory.createVariableStatement(\n    /*modifiers*/\n    void 0,\n    factory.createVariableDeclarationList([factory.createVariableDeclaration(\n      name,\n      /*exclamationToken*/\n      void 0,\n      type,\n      initializer\n    )], flags)\n  );\n}\nfunction addExports(sourceFile, toMove, needExport, useEs6Exports) {\n  return flatMap(toMove, (statement) => {\n    if (isTopLevelDeclarationStatement(statement) && !isExported(sourceFile, statement, useEs6Exports) && forEachTopLevelDeclaration(statement, (d) => {\n      var _a;\n      return needExport.includes(Debug.checkDefined((_a = tryCast(d, canHaveSymbol)) == null ? void 0 : _a.symbol));\n    })) {\n      const exports2 = addExport(getSynthesizedDeepClone(statement), useEs6Exports);\n      if (exports2) return exports2;\n    }\n    return getSynthesizedDeepClone(statement);\n  });\n}\nfunction isExported(sourceFile, decl, useEs6Exports, name) {\n  var _a;\n  if (useEs6Exports) {\n    return !isExpressionStatement(decl) && hasSyntacticModifier(decl, 32 /* Export */) || !!(name && sourceFile.symbol && ((_a = sourceFile.symbol.exports) == null ? void 0 : _a.has(name.escapedText)));\n  }\n  return !!sourceFile.symbol && !!sourceFile.symbol.exports && getNamesToExportInCommonJS(decl).some((name2) => sourceFile.symbol.exports.has(escapeLeadingUnderscores(name2)));\n}\nfunction deleteUnusedImports(sourceFile, importDecl, changes, isUnused) {\n  if (importDecl.kind === 273 /* ImportDeclaration */ && importDecl.importClause) {\n    const { name, namedBindings } = importDecl.importClause;\n    if ((!name || isUnused(name)) && (!namedBindings || namedBindings.kind === 276 /* NamedImports */ && namedBindings.elements.length !== 0 && namedBindings.elements.every((e) => isUnused(e.name)))) {\n      return changes.delete(sourceFile, importDecl);\n    }\n  }\n  forEachAliasDeclarationInImportOrRequire(importDecl, (i) => {\n    if (i.name && isIdentifier(i.name) && isUnused(i.name)) {\n      changes.delete(sourceFile, i);\n    }\n  });\n}\nfunction isTopLevelDeclarationStatement(node) {\n  Debug.assert(isSourceFile(node.parent), \"Node parent should be a SourceFile\");\n  return isNonVariableTopLevelDeclaration(node) || isVariableStatement(node);\n}\nfunction addExport(decl, useEs6Exports) {\n  return useEs6Exports ? [addEs6Export(decl)] : addCommonjsExport(decl);\n}\nfunction addEs6Export(d) {\n  const modifiers = canHaveModifiers(d) ? concatenate([factory.createModifier(95 /* ExportKeyword */)], getModifiers(d)) : void 0;\n  switch (d.kind) {\n    case 263 /* FunctionDeclaration */:\n      return factory.updateFunctionDeclaration(d, modifiers, d.asteriskToken, d.name, d.typeParameters, d.parameters, d.type, d.body);\n    case 264 /* ClassDeclaration */:\n      const decorators = canHaveDecorators(d) ? getDecorators(d) : void 0;\n      return factory.updateClassDeclaration(d, concatenate(decorators, modifiers), d.name, d.typeParameters, d.heritageClauses, d.members);\n    case 244 /* VariableStatement */:\n      return factory.updateVariableStatement(d, modifiers, d.declarationList);\n    case 268 /* ModuleDeclaration */:\n      return factory.updateModuleDeclaration(d, modifiers, d.name, d.body);\n    case 267 /* EnumDeclaration */:\n      return factory.updateEnumDeclaration(d, modifiers, d.name, d.members);\n    case 266 /* TypeAliasDeclaration */:\n      return factory.updateTypeAliasDeclaration(d, modifiers, d.name, d.typeParameters, d.type);\n    case 265 /* InterfaceDeclaration */:\n      return factory.updateInterfaceDeclaration(d, modifiers, d.name, d.typeParameters, d.heritageClauses, d.members);\n    case 272 /* ImportEqualsDeclaration */:\n      return factory.updateImportEqualsDeclaration(d, modifiers, d.isTypeOnly, d.name, d.moduleReference);\n    case 245 /* ExpressionStatement */:\n      return Debug.fail();\n    default:\n      return Debug.assertNever(d, `Unexpected declaration kind ${d.kind}`);\n  }\n}\nfunction addCommonjsExport(decl) {\n  return [decl, ...getNamesToExportInCommonJS(decl).map(createExportAssignment)];\n}\nfunction createExportAssignment(name) {\n  return factory.createExpressionStatement(\n    factory.createBinaryExpression(\n      factory.createPropertyAccessExpression(factory.createIdentifier(\"exports\"), factory.createIdentifier(name)),\n      64 /* EqualsToken */,\n      factory.createIdentifier(name)\n    )\n  );\n}\nfunction getNamesToExportInCommonJS(decl) {\n  switch (decl.kind) {\n    case 263 /* FunctionDeclaration */:\n    case 264 /* ClassDeclaration */:\n      return [decl.name.text];\n    // TODO: GH#18217\n    case 244 /* VariableStatement */:\n      return mapDefined(decl.declarationList.declarations, (d) => isIdentifier(d.name) ? d.name.text : void 0);\n    case 268 /* ModuleDeclaration */:\n    case 267 /* EnumDeclaration */:\n    case 266 /* TypeAliasDeclaration */:\n    case 265 /* InterfaceDeclaration */:\n    case 272 /* ImportEqualsDeclaration */:\n      return emptyArray;\n    case 245 /* ExpressionStatement */:\n      return Debug.fail(\"Can't export an ExpressionStatement\");\n    default:\n      return Debug.assertNever(decl, `Unexpected decl kind ${decl.kind}`);\n  }\n}\nfunction filterImport(i, moduleSpecifier, keep) {\n  switch (i.kind) {\n    case 273 /* ImportDeclaration */: {\n      const clause = i.importClause;\n      if (!clause) return void 0;\n      const defaultImport = clause.name && keep(clause.name) ? clause.name : void 0;\n      const namedBindings = clause.namedBindings && filterNamedBindings(clause.namedBindings, keep);\n      return defaultImport || namedBindings ? factory.createImportDeclaration(\n        /*modifiers*/\n        void 0,\n        factory.createImportClause(clause.phaseModifier, defaultImport, namedBindings),\n        getSynthesizedDeepClone(moduleSpecifier),\n        /*attributes*/\n        void 0\n      ) : void 0;\n    }\n    case 272 /* ImportEqualsDeclaration */:\n      return keep(i.name) ? i : void 0;\n    case 261 /* VariableDeclaration */: {\n      const name = filterBindingName(i.name, keep);\n      return name ? makeVariableStatement(name, i.type, createRequireCall(moduleSpecifier), i.parent.flags) : void 0;\n    }\n    default:\n      return Debug.assertNever(i, `Unexpected import kind ${i.kind}`);\n  }\n}\nfunction filterNamedBindings(namedBindings, keep) {\n  if (namedBindings.kind === 275 /* NamespaceImport */) {\n    return keep(namedBindings.name) ? namedBindings : void 0;\n  } else {\n    const newElements = namedBindings.elements.filter((e) => keep(e.name));\n    return newElements.length ? factory.createNamedImports(newElements) : void 0;\n  }\n}\nfunction filterBindingName(name, keep) {\n  switch (name.kind) {\n    case 80 /* Identifier */:\n      return keep(name) ? name : void 0;\n    case 208 /* ArrayBindingPattern */:\n      return name;\n    case 207 /* ObjectBindingPattern */: {\n      const newElements = name.elements.filter((prop) => prop.propertyName || !isIdentifier(prop.name) || keep(prop.name));\n      return newElements.length ? factory.createObjectBindingPattern(newElements) : void 0;\n    }\n  }\n}\nfunction nameOfTopLevelDeclaration(d) {\n  return isExpressionStatement(d) ? tryCast(d.expression.left.name, isIdentifier) : tryCast(d.name, isIdentifier);\n}\nfunction getTopLevelDeclarationStatement(d) {\n  switch (d.kind) {\n    case 261 /* VariableDeclaration */:\n      return d.parent.parent;\n    case 209 /* BindingElement */:\n      return getTopLevelDeclarationStatement(\n        cast(d.parent.parent, (p) => isVariableDeclaration(p) || isBindingElement(p))\n      );\n    default:\n      return d;\n  }\n}\nfunction addExportToChanges(sourceFile, decl, name, changes, useEs6Exports) {\n  if (isExported(sourceFile, decl, useEs6Exports, name)) return;\n  if (useEs6Exports) {\n    if (!isExpressionStatement(decl)) changes.insertExportModifier(sourceFile, decl);\n  } else {\n    const names = getNamesToExportInCommonJS(decl);\n    if (names.length !== 0) changes.insertNodesAfter(sourceFile, decl, names.map(createExportAssignment));\n  }\n}\nfunction createNewFileName(oldFile, program, host, toMove) {\n  const checker = program.getTypeChecker();\n  if (toMove) {\n    const usage = getUsageInfo(oldFile, toMove.all, checker);\n    const currentDirectory = getDirectoryPath(oldFile.fileName);\n    const extension = extensionFromPath(oldFile.fileName);\n    const newFileName = combinePaths(\n      // new file is always placed in the same directory as the old file\n      currentDirectory,\n      // ensures the filename computed below isn't already taken\n      makeUniqueFilename(\n        // infers a name for the new file from the symbols being moved\n        inferNewFileName(usage.oldFileImportsFromTargetFile, usage.movedSymbols),\n        extension,\n        currentDirectory,\n        host\n      )\n    ) + extension;\n    return newFileName;\n  }\n  return \"\";\n}\nfunction getRangeToMove(context) {\n  const { file } = context;\n  const range = createTextRangeFromSpan(getRefactorContextSpan(context));\n  const { statements } = file;\n  let startNodeIndex = findIndex(statements, (s) => s.end > range.pos);\n  if (startNodeIndex === -1) return void 0;\n  const startStatement = statements[startNodeIndex];\n  const overloadRangeToMove = getOverloadRangeToMove(file, startStatement);\n  if (overloadRangeToMove) {\n    startNodeIndex = overloadRangeToMove.start;\n  }\n  let endNodeIndex = findIndex(statements, (s) => s.end >= range.end, startNodeIndex);\n  if (endNodeIndex !== -1 && range.end <= statements[endNodeIndex].getStart()) {\n    endNodeIndex--;\n  }\n  const endingOverloadRangeToMove = getOverloadRangeToMove(file, statements[endNodeIndex]);\n  if (endingOverloadRangeToMove) {\n    endNodeIndex = endingOverloadRangeToMove.end;\n  }\n  return {\n    toMove: statements.slice(startNodeIndex, endNodeIndex === -1 ? statements.length : endNodeIndex + 1),\n    afterLast: endNodeIndex === -1 ? void 0 : statements[endNodeIndex + 1]\n  };\n}\nfunction getStatementsToMove(context) {\n  const rangeToMove = getRangeToMove(context);\n  if (rangeToMove === void 0) return void 0;\n  const all = [];\n  const ranges = [];\n  const { toMove, afterLast } = rangeToMove;\n  getRangesWhere(toMove, isAllowedStatementToMove, (start, afterEndIndex) => {\n    for (let i = start; i < afterEndIndex; i++) all.push(toMove[i]);\n    ranges.push({ first: toMove[start], afterLast });\n  });\n  return all.length === 0 ? void 0 : { all, ranges };\n}\nfunction containsJsx(statements) {\n  return find(statements, (statement) => !!(statement.transformFlags & 2 /* ContainsJsx */));\n}\nfunction isAllowedStatementToMove(statement) {\n  return !isPureImport(statement) && !isPrologueDirective(statement);\n}\nfunction isPureImport(node) {\n  switch (node.kind) {\n    case 273 /* ImportDeclaration */:\n      return true;\n    case 272 /* ImportEqualsDeclaration */:\n      return !hasSyntacticModifier(node, 32 /* Export */);\n    case 244 /* VariableStatement */:\n      return node.declarationList.declarations.every((d) => !!d.initializer && isRequireCall(\n        d.initializer,\n        /*requireStringLiteralLikeArgument*/\n        true\n      ));\n    default:\n      return false;\n  }\n}\nfunction getUsageInfo(oldFile, toMove, checker, existingTargetLocals = /* @__PURE__ */ new Set(), enclosingRange) {\n  var _a;\n  const movedSymbols = /* @__PURE__ */ new Set();\n  const oldImportsNeededByTargetFile = /* @__PURE__ */ new Map();\n  const targetFileImportsFromOldFile = /* @__PURE__ */ new Map();\n  const jsxNamespaceSymbol = getJsxNamespaceSymbol(containsJsx(toMove));\n  if (jsxNamespaceSymbol) {\n    oldImportsNeededByTargetFile.set(jsxNamespaceSymbol, [false, tryCast((_a = jsxNamespaceSymbol.declarations) == null ? void 0 : _a[0], (d) => isImportSpecifier(d) || isImportClause(d) || isNamespaceImport(d) || isImportEqualsDeclaration(d) || isBindingElement(d) || isVariableDeclaration(d))]);\n  }\n  for (const statement of toMove) {\n    forEachTopLevelDeclaration(statement, (decl) => {\n      movedSymbols.add(Debug.checkDefined(isExpressionStatement(decl) ? checker.getSymbolAtLocation(decl.expression.left) : decl.symbol, \"Need a symbol here\"));\n    });\n  }\n  const unusedImportsFromOldFile = /* @__PURE__ */ new Set();\n  for (const statement of toMove) {\n    forEachReference(statement, checker, enclosingRange, (symbol, isValidTypeOnlyUseSite) => {\n      if (!some(symbol.declarations)) {\n        return;\n      }\n      if (existingTargetLocals.has(skipAlias(symbol, checker))) {\n        unusedImportsFromOldFile.add(symbol);\n        return;\n      }\n      const importedDeclaration = find(symbol.declarations, isInImport);\n      if (importedDeclaration) {\n        const prevIsTypeOnly = oldImportsNeededByTargetFile.get(symbol);\n        oldImportsNeededByTargetFile.set(symbol, [\n          prevIsTypeOnly === void 0 ? isValidTypeOnlyUseSite : prevIsTypeOnly && isValidTypeOnlyUseSite,\n          tryCast(importedDeclaration, (d) => isImportSpecifier(d) || isImportClause(d) || isNamespaceImport(d) || isImportEqualsDeclaration(d) || isBindingElement(d) || isVariableDeclaration(d))\n        ]);\n      } else if (!movedSymbols.has(symbol) && every(symbol.declarations, (decl) => isTopLevelDeclaration(decl) && sourceFileOfTopLevelDeclaration(decl) === oldFile)) {\n        targetFileImportsFromOldFile.set(symbol, isValidTypeOnlyUseSite);\n      }\n    });\n  }\n  for (const unusedImport of oldImportsNeededByTargetFile.keys()) {\n    unusedImportsFromOldFile.add(unusedImport);\n  }\n  const oldFileImportsFromTargetFile = /* @__PURE__ */ new Map();\n  for (const statement of oldFile.statements) {\n    if (contains(toMove, statement)) continue;\n    if (jsxNamespaceSymbol && !!(statement.transformFlags & 2 /* ContainsJsx */)) {\n      unusedImportsFromOldFile.delete(jsxNamespaceSymbol);\n    }\n    forEachReference(statement, checker, enclosingRange, (symbol, isValidTypeOnlyUseSite) => {\n      if (movedSymbols.has(symbol)) oldFileImportsFromTargetFile.set(symbol, isValidTypeOnlyUseSite);\n      unusedImportsFromOldFile.delete(symbol);\n    });\n  }\n  return { movedSymbols, targetFileImportsFromOldFile, oldFileImportsFromTargetFile, oldImportsNeededByTargetFile, unusedImportsFromOldFile };\n  function getJsxNamespaceSymbol(containsJsx2) {\n    if (containsJsx2 === void 0) {\n      return void 0;\n    }\n    const jsxNamespace = checker.getJsxNamespace(containsJsx2);\n    const jsxNamespaceSymbol2 = checker.resolveName(\n      jsxNamespace,\n      containsJsx2,\n      1920 /* Namespace */,\n      /*excludeGlobals*/\n      true\n    );\n    return !!jsxNamespaceSymbol2 && some(jsxNamespaceSymbol2.declarations, isInImport) ? jsxNamespaceSymbol2 : void 0;\n  }\n}\nfunction makeUniqueFilename(proposedFilename, extension, inDirectory, host) {\n  let newFilename = proposedFilename;\n  for (let i = 1; ; i++) {\n    const name = combinePaths(inDirectory, newFilename + extension);\n    if (!host.fileExists(name)) return newFilename;\n    newFilename = `${proposedFilename}.${i}`;\n  }\n}\nfunction inferNewFileName(importsFromNewFile, movedSymbols) {\n  return forEachKey(importsFromNewFile, symbolNameNoDefault) || forEachKey(movedSymbols, symbolNameNoDefault) || \"newFile\";\n}\nfunction forEachReference(node, checker, enclosingRange, onReference) {\n  node.forEachChild(function cb(node2) {\n    if (isIdentifier(node2) && !isDeclarationName(node2)) {\n      if (enclosingRange && !rangeContainsRange(enclosingRange, node2)) {\n        return;\n      }\n      const sym = checker.getSymbolAtLocation(node2);\n      if (sym) onReference(sym, isValidTypeOnlyAliasUseSite(node2));\n    } else {\n      node2.forEachChild(cb);\n    }\n  });\n}\nfunction forEachTopLevelDeclaration(statement, cb) {\n  switch (statement.kind) {\n    case 263 /* FunctionDeclaration */:\n    case 264 /* ClassDeclaration */:\n    case 268 /* ModuleDeclaration */:\n    case 267 /* EnumDeclaration */:\n    case 266 /* TypeAliasDeclaration */:\n    case 265 /* InterfaceDeclaration */:\n    case 272 /* ImportEqualsDeclaration */:\n      return cb(statement);\n    case 244 /* VariableStatement */:\n      return firstDefined(statement.declarationList.declarations, (decl) => forEachTopLevelDeclarationInBindingName(decl.name, cb));\n    case 245 /* ExpressionStatement */: {\n      const { expression } = statement;\n      return isBinaryExpression(expression) && getAssignmentDeclarationKind(expression) === 1 /* ExportsProperty */ ? cb(statement) : void 0;\n    }\n  }\n}\nfunction isInImport(decl) {\n  switch (decl.kind) {\n    case 272 /* ImportEqualsDeclaration */:\n    case 277 /* ImportSpecifier */:\n    case 274 /* ImportClause */:\n    case 275 /* NamespaceImport */:\n      return true;\n    case 261 /* VariableDeclaration */:\n      return isVariableDeclarationInImport(decl);\n    case 209 /* BindingElement */:\n      return isVariableDeclaration(decl.parent.parent) && isVariableDeclarationInImport(decl.parent.parent);\n    default:\n      return false;\n  }\n}\nfunction isVariableDeclarationInImport(decl) {\n  return isSourceFile(decl.parent.parent.parent) && !!decl.initializer && isRequireCall(\n    decl.initializer,\n    /*requireStringLiteralLikeArgument*/\n    true\n  );\n}\nfunction isTopLevelDeclaration(node) {\n  return isNonVariableTopLevelDeclaration(node) && isSourceFile(node.parent) || isVariableDeclaration(node) && isSourceFile(node.parent.parent.parent);\n}\nfunction sourceFileOfTopLevelDeclaration(node) {\n  return isVariableDeclaration(node) ? node.parent.parent.parent : node.parent;\n}\nfunction forEachTopLevelDeclarationInBindingName(name, cb) {\n  switch (name.kind) {\n    case 80 /* Identifier */:\n      return cb(cast(name.parent, (x) => isVariableDeclaration(x) || isBindingElement(x)));\n    case 208 /* ArrayBindingPattern */:\n    case 207 /* ObjectBindingPattern */:\n      return firstDefined(name.elements, (em) => isOmittedExpression(em) ? void 0 : forEachTopLevelDeclarationInBindingName(em.name, cb));\n    default:\n      return Debug.assertNever(name, `Unexpected name kind ${name.kind}`);\n  }\n}\nfunction isNonVariableTopLevelDeclaration(node) {\n  switch (node.kind) {\n    case 263 /* FunctionDeclaration */:\n    case 264 /* ClassDeclaration */:\n    case 268 /* ModuleDeclaration */:\n    case 267 /* EnumDeclaration */:\n    case 266 /* TypeAliasDeclaration */:\n    case 265 /* InterfaceDeclaration */:\n    case 272 /* ImportEqualsDeclaration */:\n      return true;\n    default:\n      return false;\n  }\n}\nfunction moveStatementsToTargetFile(changes, program, statements, targetFile, toMove) {\n  var _a;\n  const removedExports = /* @__PURE__ */ new Set();\n  const targetExports = (_a = targetFile.symbol) == null ? void 0 : _a.exports;\n  if (targetExports) {\n    const checker = program.getTypeChecker();\n    const targetToSourceExports = /* @__PURE__ */ new Map();\n    for (const node of toMove.all) {\n      if (isTopLevelDeclarationStatement(node) && hasSyntacticModifier(node, 32 /* Export */)) {\n        forEachTopLevelDeclaration(node, (declaration) => {\n          var _a2;\n          const targetDeclarations = canHaveSymbol(declaration) ? (_a2 = targetExports.get(declaration.symbol.escapedName)) == null ? void 0 : _a2.declarations : void 0;\n          const exportDeclaration = firstDefined(targetDeclarations, (d) => isExportDeclaration(d) ? d : isExportSpecifier(d) ? tryCast(d.parent.parent, isExportDeclaration) : void 0);\n          if (exportDeclaration && exportDeclaration.moduleSpecifier) {\n            targetToSourceExports.set(exportDeclaration, (targetToSourceExports.get(exportDeclaration) || /* @__PURE__ */ new Set()).add(declaration));\n          }\n        });\n      }\n    }\n    for (const [exportDeclaration, topLevelDeclarations] of arrayFrom(targetToSourceExports)) {\n      if (exportDeclaration.exportClause && isNamedExports(exportDeclaration.exportClause) && length(exportDeclaration.exportClause.elements)) {\n        const elements = exportDeclaration.exportClause.elements;\n        const updatedElements = filter(elements, (elem) => find(skipAlias(elem.symbol, checker).declarations, (d) => isTopLevelDeclaration(d) && topLevelDeclarations.has(d)) === void 0);\n        if (length(updatedElements) === 0) {\n          changes.deleteNode(targetFile, exportDeclaration);\n          removedExports.add(exportDeclaration);\n          continue;\n        }\n        if (length(updatedElements) < length(elements)) {\n          changes.replaceNode(targetFile, exportDeclaration, factory.updateExportDeclaration(exportDeclaration, exportDeclaration.modifiers, exportDeclaration.isTypeOnly, factory.updateNamedExports(exportDeclaration.exportClause, factory.createNodeArray(updatedElements, elements.hasTrailingComma)), exportDeclaration.moduleSpecifier, exportDeclaration.attributes));\n        }\n      }\n    }\n  }\n  const lastReExport = findLast(targetFile.statements, (n) => isExportDeclaration(n) && !!n.moduleSpecifier && !removedExports.has(n));\n  if (lastReExport) {\n    changes.insertNodesBefore(\n      targetFile,\n      lastReExport,\n      statements,\n      /*blankLineBetween*/\n      true\n    );\n  } else {\n    changes.insertNodesAfter(targetFile, targetFile.statements[targetFile.statements.length - 1], statements);\n  }\n}\nfunction getOverloadRangeToMove(sourceFile, statement) {\n  if (isFunctionLikeDeclaration(statement)) {\n    const declarations = statement.symbol.declarations;\n    if (declarations === void 0 || length(declarations) <= 1 || !contains(declarations, statement)) {\n      return void 0;\n    }\n    const firstDecl = declarations[0];\n    const lastDecl = declarations[length(declarations) - 1];\n    const statementsToMove = mapDefined(declarations, (d) => getSourceFileOfNode(d) === sourceFile && isStatement(d) ? d : void 0);\n    const end = findIndex(sourceFile.statements, (s) => s.end >= lastDecl.end);\n    const start = findIndex(sourceFile.statements, (s) => s.end >= firstDecl.end);\n    return { toMove: statementsToMove, start, end };\n  }\n  return void 0;\n}\nfunction getExistingLocals(sourceFile, statements, checker) {\n  const existingLocals = /* @__PURE__ */ new Set();\n  for (const moduleSpecifier of sourceFile.imports) {\n    const declaration = importFromModuleSpecifier(moduleSpecifier);\n    if (isImportDeclaration(declaration) && declaration.importClause && declaration.importClause.namedBindings && isNamedImports(declaration.importClause.namedBindings)) {\n      for (const e of declaration.importClause.namedBindings.elements) {\n        const symbol = checker.getSymbolAtLocation(e.propertyName || e.name);\n        if (symbol) {\n          existingLocals.add(skipAlias(symbol, checker));\n        }\n      }\n    }\n    if (isVariableDeclarationInitializedToRequire(declaration.parent) && isObjectBindingPattern(declaration.parent.name)) {\n      for (const e of declaration.parent.name.elements) {\n        const symbol = checker.getSymbolAtLocation(e.propertyName || e.name);\n        if (symbol) {\n          existingLocals.add(skipAlias(symbol, checker));\n        }\n      }\n    }\n  }\n  for (const statement of statements) {\n    forEachReference(\n      statement,\n      checker,\n      /*enclosingRange*/\n      void 0,\n      (s) => {\n        const symbol = skipAlias(s, checker);\n        if (symbol.valueDeclaration && getSourceFileOfNode(symbol.valueDeclaration).path === sourceFile.path) {\n          existingLocals.add(symbol);\n        }\n      }\n    );\n  }\n  return existingLocals;\n}\n\n// src/services/refactors/helpers.ts\nfunction isRefactorErrorInfo(info) {\n  return info.error !== void 0;\n}\nfunction refactorKindBeginsWith(known, requested) {\n  if (!requested) return true;\n  return known.substr(0, requested.length) === requested;\n}\nfunction getIdentifierForNode(node, scope, checker, file) {\n  return isPropertyAccessExpression(node) && !isClassLike(scope) && !checker.resolveName(\n    node.name.text,\n    node,\n    111551 /* Value */,\n    /*excludeGlobals*/\n    false\n  ) && !isPrivateIdentifier(node.name) && !identifierToKeywordKind(node.name) ? node.name.text : getUniqueName(isClassLike(scope) ? \"newProperty\" : \"newLocal\", file);\n}\nfunction addTargetFileImports(oldFile, importsToCopy, targetFileImportsFromOldFile, checker, program, importAdder) {\n  importsToCopy.forEach(([isValidTypeOnlyUseSite, declaration], symbol) => {\n    var _a;\n    const targetSymbol = skipAlias(symbol, checker);\n    if (checker.isUnknownSymbol(targetSymbol)) {\n      importAdder.addVerbatimImport(Debug.checkDefined(declaration ?? findAncestor((_a = symbol.declarations) == null ? void 0 : _a[0], isAnyImportOrRequireStatement)));\n    } else if (targetSymbol.parent === void 0) {\n      Debug.assert(declaration !== void 0, \"expected module symbol to have a declaration\");\n      importAdder.addImportForModuleSymbol(symbol, isValidTypeOnlyUseSite, declaration);\n    } else {\n      importAdder.addImportFromExportedSymbol(targetSymbol, isValidTypeOnlyUseSite, declaration);\n    }\n  });\n  addImportsForMovedSymbols(targetFileImportsFromOldFile, oldFile.fileName, importAdder, program);\n}\n\n// src/services/refactors/inlineVariable.ts\nvar refactorName4 = \"Inline variable\";\nvar refactorDescription = getLocaleSpecificMessage(Diagnostics.Inline_variable);\nvar inlineVariableAction = {\n  name: refactorName4,\n  description: refactorDescription,\n  kind: \"refactor.inline.variable\"\n};\nregisterRefactor(refactorName4, {\n  kinds: [inlineVariableAction.kind],\n  getAvailableActions(context) {\n    const {\n      file,\n      program,\n      preferences,\n      startPosition,\n      triggerReason\n    } = context;\n    const info = getInliningInfo(file, startPosition, triggerReason === \"invoked\", program);\n    if (!info) {\n      return emptyArray;\n    }\n    if (!ts_refactor_exports.isRefactorErrorInfo(info)) {\n      return [{\n        name: refactorName4,\n        description: refactorDescription,\n        actions: [inlineVariableAction]\n      }];\n    }\n    if (preferences.provideRefactorNotApplicableReason) {\n      return [{\n        name: refactorName4,\n        description: refactorDescription,\n        actions: [{\n          ...inlineVariableAction,\n          notApplicableReason: info.error\n        }]\n      }];\n    }\n    return emptyArray;\n  },\n  getEditsForAction(context, actionName2) {\n    Debug.assert(actionName2 === refactorName4, \"Unexpected refactor invoked\");\n    const { file, program, startPosition } = context;\n    const info = getInliningInfo(\n      file,\n      startPosition,\n      /*tryWithReferenceToken*/\n      true,\n      program\n    );\n    if (!info || ts_refactor_exports.isRefactorErrorInfo(info)) {\n      return void 0;\n    }\n    const { references, declaration, replacement } = info;\n    const edits = ts_textChanges_exports.ChangeTracker.with(context, (tracker) => {\n      for (const node of references) {\n        const closestStringIdentifierParent = isStringLiteral(replacement) && isIdentifier(node) && walkUpParenthesizedExpressions(node.parent);\n        if (closestStringIdentifierParent && isTemplateSpan(closestStringIdentifierParent) && !isTaggedTemplateExpression(closestStringIdentifierParent.parent.parent)) {\n          replaceTemplateStringVariableWithLiteral(tracker, file, closestStringIdentifierParent, replacement);\n        } else {\n          tracker.replaceNode(file, node, getReplacementExpression(node, replacement));\n        }\n      }\n      tracker.delete(file, declaration);\n    });\n    return { edits };\n  }\n});\nfunction getInliningInfo(file, startPosition, tryWithReferenceToken, program) {\n  var _a, _b;\n  const checker = program.getTypeChecker();\n  const token = getTouchingPropertyName(file, startPosition);\n  const parent2 = token.parent;\n  if (!isIdentifier(token)) {\n    return void 0;\n  }\n  if (isInitializedVariable(parent2) && isVariableDeclarationInVariableStatement(parent2) && isIdentifier(parent2.name)) {\n    if (((_a = checker.getMergedSymbol(parent2.symbol).declarations) == null ? void 0 : _a.length) !== 1) {\n      return { error: getLocaleSpecificMessage(Diagnostics.Variables_with_multiple_declarations_cannot_be_inlined) };\n    }\n    if (isDeclarationExported(parent2)) {\n      return void 0;\n    }\n    const references = getReferenceNodes(parent2, checker, file);\n    return references && { references, declaration: parent2, replacement: parent2.initializer };\n  }\n  if (tryWithReferenceToken) {\n    let definition = checker.resolveName(\n      token.text,\n      token,\n      111551 /* Value */,\n      /*excludeGlobals*/\n      false\n    );\n    definition = definition && checker.getMergedSymbol(definition);\n    if (((_b = definition == null ? void 0 : definition.declarations) == null ? void 0 : _b.length) !== 1) {\n      return { error: getLocaleSpecificMessage(Diagnostics.Variables_with_multiple_declarations_cannot_be_inlined) };\n    }\n    const declaration = definition.declarations[0];\n    if (!isInitializedVariable(declaration) || !isVariableDeclarationInVariableStatement(declaration) || !isIdentifier(declaration.name)) {\n      return void 0;\n    }\n    if (isDeclarationExported(declaration)) {\n      return void 0;\n    }\n    const references = getReferenceNodes(declaration, checker, file);\n    return references && { references, declaration, replacement: declaration.initializer };\n  }\n  return { error: getLocaleSpecificMessage(Diagnostics.Could_not_find_variable_to_inline) };\n}\nfunction isDeclarationExported(declaration) {\n  const variableStatement = cast(declaration.parent.parent, isVariableStatement);\n  return some(variableStatement.modifiers, isExportModifier);\n}\nfunction getReferenceNodes(declaration, checker, file) {\n  const references = [];\n  const cannotInline = ts_FindAllReferences_exports.Core.eachSymbolReferenceInFile(declaration.name, checker, file, (ref) => {\n    if (ts_FindAllReferences_exports.isWriteAccessForReference(ref) && !isShorthandPropertyAssignment(ref.parent)) {\n      return true;\n    }\n    if (isExportSpecifier(ref.parent) || isExportAssignment(ref.parent)) {\n      return true;\n    }\n    if (isTypeQueryNode(ref.parent)) {\n      return true;\n    }\n    if (textRangeContainsPositionInclusive(declaration, ref.pos)) {\n      return true;\n    }\n    references.push(ref);\n  });\n  return references.length === 0 || cannotInline ? void 0 : references;\n}\nfunction getReplacementExpression(reference, replacement) {\n  replacement = getSynthesizedDeepClone(replacement);\n  const { parent: parent2 } = reference;\n  if (isExpression(parent2) && (getExpressionPrecedence(replacement) < getExpressionPrecedence(parent2) || needsParentheses(parent2))) {\n    return factory.createParenthesizedExpression(replacement);\n  }\n  if (isFunctionLike(replacement) && (isCallLikeExpression(parent2) || isPropertyAccessExpression(parent2))) {\n    return factory.createParenthesizedExpression(replacement);\n  }\n  if (isPropertyAccessExpression(parent2) && (isNumericLiteral(replacement) || isObjectLiteralExpression(replacement))) {\n    return factory.createParenthesizedExpression(replacement);\n  }\n  if (isIdentifier(reference) && isShorthandPropertyAssignment(parent2)) {\n    return factory.createPropertyAssignment(reference, replacement);\n  }\n  return replacement;\n}\nfunction replaceTemplateStringVariableWithLiteral(tracker, sourceFile, reference, replacement) {\n  const templateExpression = reference.parent;\n  const index = templateExpression.templateSpans.indexOf(reference);\n  const prevNode = index === 0 ? templateExpression.head : templateExpression.templateSpans[index - 1];\n  tracker.replaceRangeWithText(\n    sourceFile,\n    {\n      pos: prevNode.getEnd() - 2,\n      end: reference.literal.getStart() + 1\n    },\n    replacement.text.replace(/\\\\/g, \"\\\\\\\\\").replace(/`/g, \"\\\\`\")\n  );\n}\n\n// src/services/refactors/moveToNewFile.ts\nvar refactorName5 = \"Move to a new file\";\nvar description2 = getLocaleSpecificMessage(Diagnostics.Move_to_a_new_file);\nvar moveToNewFileAction = {\n  name: refactorName5,\n  description: description2,\n  kind: \"refactor.move.newFile\"\n};\nregisterRefactor(refactorName5, {\n  kinds: [moveToNewFileAction.kind],\n  getAvailableActions: function getRefactorActionsToMoveToNewFile(context) {\n    const statements = getStatementsToMove(context);\n    const file = context.file;\n    if (context.triggerReason === \"implicit\" && context.endPosition !== void 0) {\n      const startNodeAncestor = findAncestor(getTokenAtPosition(file, context.startPosition), isBlockLike);\n      const endNodeAncestor = findAncestor(getTokenAtPosition(file, context.endPosition), isBlockLike);\n      if (startNodeAncestor && !isSourceFile(startNodeAncestor) && endNodeAncestor && !isSourceFile(endNodeAncestor)) {\n        return emptyArray;\n      }\n    }\n    if (context.preferences.allowTextChangesInNewFiles && statements) {\n      const file2 = context.file;\n      const affectedTextRange = {\n        start: { line: getLineAndCharacterOfPosition(file2, statements.all[0].getStart(file2)).line, offset: getLineAndCharacterOfPosition(file2, statements.all[0].getStart(file2)).character },\n        end: { line: getLineAndCharacterOfPosition(file2, last(statements.all).end).line, offset: getLineAndCharacterOfPosition(file2, last(statements.all).end).character }\n      };\n      return [{ name: refactorName5, description: description2, actions: [{ ...moveToNewFileAction, range: affectedTextRange }] }];\n    }\n    if (context.preferences.provideRefactorNotApplicableReason) {\n      return [{ name: refactorName5, description: description2, actions: [{ ...moveToNewFileAction, notApplicableReason: getLocaleSpecificMessage(Diagnostics.Selection_is_not_a_valid_statement_or_statements) }] }];\n    }\n    return emptyArray;\n  },\n  getEditsForAction: function getRefactorEditsToMoveToNewFile(context, actionName2) {\n    Debug.assert(actionName2 === refactorName5, \"Wrong refactor invoked\");\n    const statements = Debug.checkDefined(getStatementsToMove(context));\n    const edits = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange4(context.file, context.program, statements, t, context.host, context, context.preferences));\n    return { edits, renameFilename: void 0, renameLocation: void 0 };\n  }\n});\nfunction doChange4(oldFile, program, toMove, changes, host, context, preferences) {\n  const checker = program.getTypeChecker();\n  const usage = getUsageInfo(oldFile, toMove.all, checker);\n  const newFilename = createNewFileName(oldFile, program, host, toMove);\n  const newSourceFile = createFutureSourceFile(newFilename, oldFile.externalModuleIndicator ? 99 /* ESNext */ : oldFile.commonJsModuleIndicator ? 1 /* CommonJS */ : void 0, program, host);\n  const importAdderForOldFile = ts_codefix_exports.createImportAdder(oldFile, context.program, context.preferences, context.host);\n  const importAdderForNewFile = ts_codefix_exports.createImportAdder(newSourceFile, context.program, context.preferences, context.host);\n  getNewStatementsAndRemoveFromOldFile(oldFile, newSourceFile, usage, changes, toMove, program, host, preferences, importAdderForNewFile, importAdderForOldFile);\n  addNewFileToTsconfig(program, changes, oldFile.fileName, newFilename, hostGetCanonicalFileName(host));\n}\n\n// src/services/_namespaces/ts.refactor.addOrRemoveBracesToArrowFunction.ts\nvar ts_refactor_addOrRemoveBracesToArrowFunction_exports = {};\n\n// src/services/refactors/convertOverloadListToSingleSignature.ts\nvar refactorName6 = \"Convert overload list to single signature\";\nvar refactorDescription2 = getLocaleSpecificMessage(Diagnostics.Convert_overload_list_to_single_signature);\nvar functionOverloadAction = {\n  name: refactorName6,\n  description: refactorDescription2,\n  kind: \"refactor.rewrite.function.overloadList\"\n};\nregisterRefactor(refactorName6, {\n  kinds: [functionOverloadAction.kind],\n  getEditsForAction: getRefactorEditsToConvertOverloadsToOneSignature,\n  getAvailableActions: getRefactorActionsToConvertOverloadsToOneSignature\n});\nfunction getRefactorActionsToConvertOverloadsToOneSignature(context) {\n  const { file, startPosition, program } = context;\n  const info = getConvertableOverloadListAtPosition(file, startPosition, program);\n  if (!info) return emptyArray;\n  return [{\n    name: refactorName6,\n    description: refactorDescription2,\n    actions: [functionOverloadAction]\n  }];\n}\nfunction getRefactorEditsToConvertOverloadsToOneSignature(context) {\n  const { file, startPosition, program } = context;\n  const signatureDecls = getConvertableOverloadListAtPosition(file, startPosition, program);\n  if (!signatureDecls) return void 0;\n  const checker = program.getTypeChecker();\n  const lastDeclaration = signatureDecls[signatureDecls.length - 1];\n  let updated = lastDeclaration;\n  switch (lastDeclaration.kind) {\n    case 174 /* MethodSignature */: {\n      updated = factory.updateMethodSignature(\n        lastDeclaration,\n        lastDeclaration.modifiers,\n        lastDeclaration.name,\n        lastDeclaration.questionToken,\n        lastDeclaration.typeParameters,\n        getNewParametersForCombinedSignature(signatureDecls),\n        lastDeclaration.type\n      );\n      break;\n    }\n    case 175 /* MethodDeclaration */: {\n      updated = factory.updateMethodDeclaration(\n        lastDeclaration,\n        lastDeclaration.modifiers,\n        lastDeclaration.asteriskToken,\n        lastDeclaration.name,\n        lastDeclaration.questionToken,\n        lastDeclaration.typeParameters,\n        getNewParametersForCombinedSignature(signatureDecls),\n        lastDeclaration.type,\n        lastDeclaration.body\n      );\n      break;\n    }\n    case 180 /* CallSignature */: {\n      updated = factory.updateCallSignature(\n        lastDeclaration,\n        lastDeclaration.typeParameters,\n        getNewParametersForCombinedSignature(signatureDecls),\n        lastDeclaration.type\n      );\n      break;\n    }\n    case 177 /* Constructor */: {\n      updated = factory.updateConstructorDeclaration(\n        lastDeclaration,\n        lastDeclaration.modifiers,\n        getNewParametersForCombinedSignature(signatureDecls),\n        lastDeclaration.body\n      );\n      break;\n    }\n    case 181 /* ConstructSignature */: {\n      updated = factory.updateConstructSignature(\n        lastDeclaration,\n        lastDeclaration.typeParameters,\n        getNewParametersForCombinedSignature(signatureDecls),\n        lastDeclaration.type\n      );\n      break;\n    }\n    case 263 /* FunctionDeclaration */: {\n      updated = factory.updateFunctionDeclaration(\n        lastDeclaration,\n        lastDeclaration.modifiers,\n        lastDeclaration.asteriskToken,\n        lastDeclaration.name,\n        lastDeclaration.typeParameters,\n        getNewParametersForCombinedSignature(signatureDecls),\n        lastDeclaration.type,\n        lastDeclaration.body\n      );\n      break;\n    }\n    default:\n      return Debug.failBadSyntaxKind(lastDeclaration, \"Unhandled signature kind in overload list conversion refactoring\");\n  }\n  if (updated === lastDeclaration) {\n    return;\n  }\n  const edits = ts_textChanges_exports.ChangeTracker.with(context, (t) => {\n    t.replaceNodeRange(file, signatureDecls[0], signatureDecls[signatureDecls.length - 1], updated);\n  });\n  return { renameFilename: void 0, renameLocation: void 0, edits };\n  function getNewParametersForCombinedSignature(signatureDeclarations) {\n    const lastSig = signatureDeclarations[signatureDeclarations.length - 1];\n    if (isFunctionLikeDeclaration(lastSig) && lastSig.body) {\n      signatureDeclarations = signatureDeclarations.slice(0, signatureDeclarations.length - 1);\n    }\n    return factory.createNodeArray([\n      factory.createParameterDeclaration(\n        /*modifiers*/\n        void 0,\n        factory.createToken(26 /* DotDotDotToken */),\n        \"args\",\n        /*questionToken*/\n        void 0,\n        factory.createUnionTypeNode(map(signatureDeclarations, convertSignatureParametersToTuple))\n      )\n    ]);\n  }\n  function convertSignatureParametersToTuple(decl) {\n    const members = map(decl.parameters, convertParameterToNamedTupleMember);\n    return setEmitFlags(factory.createTupleTypeNode(members), some(members, (m) => !!length(getSyntheticLeadingComments(m))) ? 0 /* None */ : 1 /* SingleLine */);\n  }\n  function convertParameterToNamedTupleMember(p) {\n    Debug.assert(isIdentifier(p.name));\n    const result = setTextRange(\n      factory.createNamedTupleMember(\n        p.dotDotDotToken,\n        p.name,\n        p.questionToken,\n        p.type || factory.createKeywordTypeNode(133 /* AnyKeyword */)\n      ),\n      p\n    );\n    const parameterDocComment = p.symbol && p.symbol.getDocumentationComment(checker);\n    if (parameterDocComment) {\n      const newComment = displayPartsToString(parameterDocComment);\n      if (newComment.length) {\n        setSyntheticLeadingComments(result, [{\n          text: `*\n${newComment.split(\"\\n\").map((c) => ` * ${c}`).join(\"\\n\")}\n `,\n          kind: 3 /* MultiLineCommentTrivia */,\n          pos: -1,\n          end: -1,\n          hasTrailingNewLine: true,\n          hasLeadingNewline: true\n        }]);\n      }\n    }\n    return result;\n  }\n}\nfunction isConvertableSignatureDeclaration(d) {\n  switch (d.kind) {\n    case 174 /* MethodSignature */:\n    case 175 /* MethodDeclaration */:\n    case 180 /* CallSignature */:\n    case 177 /* Constructor */:\n    case 181 /* ConstructSignature */:\n    case 263 /* FunctionDeclaration */:\n      return true;\n  }\n  return false;\n}\nfunction getConvertableOverloadListAtPosition(file, startPosition, program) {\n  const node = getTokenAtPosition(file, startPosition);\n  const containingDecl = findAncestor(node, isConvertableSignatureDeclaration);\n  if (!containingDecl) {\n    return;\n  }\n  if (isFunctionLikeDeclaration(containingDecl) && containingDecl.body && rangeContainsPosition(containingDecl.body, startPosition)) {\n    return;\n  }\n  const checker = program.getTypeChecker();\n  const signatureSymbol = containingDecl.symbol;\n  if (!signatureSymbol) {\n    return;\n  }\n  const decls = signatureSymbol.declarations;\n  if (length(decls) <= 1) {\n    return;\n  }\n  if (!every(decls, (d) => getSourceFileOfNode(d) === file)) {\n    return;\n  }\n  if (!isConvertableSignatureDeclaration(decls[0])) {\n    return;\n  }\n  const kindOne = decls[0].kind;\n  if (!every(decls, (d) => d.kind === kindOne)) {\n    return;\n  }\n  const signatureDecls = decls;\n  if (some(signatureDecls, (d) => !!d.typeParameters || some(d.parameters, (p) => !!p.modifiers || !isIdentifier(p.name)))) {\n    return;\n  }\n  const signatures = mapDefined(signatureDecls, (d) => checker.getSignatureFromDeclaration(d));\n  if (length(signatures) !== length(decls)) {\n    return;\n  }\n  const returnOne = checker.getReturnTypeOfSignature(signatures[0]);\n  if (!every(signatures, (s) => checker.getReturnTypeOfSignature(s) === returnOne)) {\n    return;\n  }\n  return signatureDecls;\n}\n\n// src/services/refactors/addOrRemoveBracesToArrowFunction.ts\nvar refactorName7 = \"Add or remove braces in an arrow function\";\nvar refactorDescription3 = getLocaleSpecificMessage(Diagnostics.Add_or_remove_braces_in_an_arrow_function);\nvar addBracesAction = {\n  name: \"Add braces to arrow function\",\n  description: getLocaleSpecificMessage(Diagnostics.Add_braces_to_arrow_function),\n  kind: \"refactor.rewrite.arrow.braces.add\"\n};\nvar removeBracesAction = {\n  name: \"Remove braces from arrow function\",\n  description: getLocaleSpecificMessage(Diagnostics.Remove_braces_from_arrow_function),\n  kind: \"refactor.rewrite.arrow.braces.remove\"\n};\nregisterRefactor(refactorName7, {\n  kinds: [removeBracesAction.kind],\n  getEditsForAction: getRefactorEditsToRemoveFunctionBraces,\n  getAvailableActions: getRefactorActionsToRemoveFunctionBraces\n});\nfunction getRefactorActionsToRemoveFunctionBraces(context) {\n  const { file, startPosition, triggerReason } = context;\n  const info = getConvertibleArrowFunctionAtPosition(file, startPosition, triggerReason === \"invoked\");\n  if (!info) return emptyArray;\n  if (!isRefactorErrorInfo(info)) {\n    return [{\n      name: refactorName7,\n      description: refactorDescription3,\n      actions: [\n        info.addBraces ? addBracesAction : removeBracesAction\n      ]\n    }];\n  }\n  if (context.preferences.provideRefactorNotApplicableReason) {\n    return [{\n      name: refactorName7,\n      description: refactorDescription3,\n      actions: [\n        { ...addBracesAction, notApplicableReason: info.error },\n        { ...removeBracesAction, notApplicableReason: info.error }\n      ]\n    }];\n  }\n  return emptyArray;\n}\nfunction getRefactorEditsToRemoveFunctionBraces(context, actionName2) {\n  const { file, startPosition } = context;\n  const info = getConvertibleArrowFunctionAtPosition(file, startPosition);\n  Debug.assert(info && !isRefactorErrorInfo(info), \"Expected applicable refactor info\");\n  const { expression, returnStatement, func } = info;\n  let body;\n  if (actionName2 === addBracesAction.name) {\n    const returnStatement2 = factory.createReturnStatement(expression);\n    body = factory.createBlock(\n      [returnStatement2],\n      /*multiLine*/\n      true\n    );\n    copyLeadingComments(\n      expression,\n      returnStatement2,\n      file,\n      3 /* MultiLineCommentTrivia */,\n      /*hasTrailingNewLine*/\n      true\n    );\n  } else if (actionName2 === removeBracesAction.name && returnStatement) {\n    const actualExpression = expression || factory.createVoidZero();\n    body = needsParentheses(actualExpression) ? factory.createParenthesizedExpression(actualExpression) : actualExpression;\n    copyTrailingAsLeadingComments(\n      returnStatement,\n      body,\n      file,\n      3 /* MultiLineCommentTrivia */,\n      /*hasTrailingNewLine*/\n      false\n    );\n    copyLeadingComments(\n      returnStatement,\n      body,\n      file,\n      3 /* MultiLineCommentTrivia */,\n      /*hasTrailingNewLine*/\n      false\n    );\n    copyTrailingComments(\n      returnStatement,\n      body,\n      file,\n      3 /* MultiLineCommentTrivia */,\n      /*hasTrailingNewLine*/\n      false\n    );\n  } else {\n    Debug.fail(\"invalid action\");\n  }\n  const edits = ts_textChanges_exports.ChangeTracker.with(context, (t) => {\n    t.replaceNode(file, func.body, body);\n  });\n  return { renameFilename: void 0, renameLocation: void 0, edits };\n}\nfunction getConvertibleArrowFunctionAtPosition(file, startPosition, considerFunctionBodies = true, kind) {\n  const node = getTokenAtPosition(file, startPosition);\n  const func = getContainingFunction(node);\n  if (!func) {\n    return {\n      error: getLocaleSpecificMessage(Diagnostics.Could_not_find_a_containing_arrow_function)\n    };\n  }\n  if (!isArrowFunction(func)) {\n    return {\n      error: getLocaleSpecificMessage(Diagnostics.Containing_function_is_not_an_arrow_function)\n    };\n  }\n  if (!rangeContainsRange(func, node) || rangeContainsRange(func.body, node) && !considerFunctionBodies) {\n    return void 0;\n  }\n  if (refactorKindBeginsWith(addBracesAction.kind, kind) && isExpression(func.body)) {\n    return { func, addBraces: true, expression: func.body };\n  } else if (refactorKindBeginsWith(removeBracesAction.kind, kind) && isBlock(func.body) && func.body.statements.length === 1) {\n    const firstStatement = first(func.body.statements);\n    if (isReturnStatement(firstStatement)) {\n      const expression = firstStatement.expression && isObjectLiteralExpression(getLeftmostExpression(\n        firstStatement.expression,\n        /*stopAtCallExpressions*/\n        false\n      )) ? factory.createParenthesizedExpression(firstStatement.expression) : firstStatement.expression;\n      return { func, addBraces: false, expression, returnStatement: firstStatement };\n    }\n  }\n  return void 0;\n}\n\n// src/services/_namespaces/ts.refactor.convertArrowFunctionOrFunctionExpression.ts\nvar ts_refactor_convertArrowFunctionOrFunctionExpression_exports = {};\n\n// src/services/refactors/convertArrowFunctionOrFunctionExpression.ts\nvar refactorName8 = \"Convert arrow function or function expression\";\nvar refactorDescription4 = getLocaleSpecificMessage(Diagnostics.Convert_arrow_function_or_function_expression);\nvar toAnonymousFunctionAction = {\n  name: \"Convert to anonymous function\",\n  description: getLocaleSpecificMessage(Diagnostics.Convert_to_anonymous_function),\n  kind: \"refactor.rewrite.function.anonymous\"\n};\nvar toNamedFunctionAction = {\n  name: \"Convert to named function\",\n  description: getLocaleSpecificMessage(Diagnostics.Convert_to_named_function),\n  kind: \"refactor.rewrite.function.named\"\n};\nvar toArrowFunctionAction = {\n  name: \"Convert to arrow function\",\n  description: getLocaleSpecificMessage(Diagnostics.Convert_to_arrow_function),\n  kind: \"refactor.rewrite.function.arrow\"\n};\nregisterRefactor(refactorName8, {\n  kinds: [\n    toAnonymousFunctionAction.kind,\n    toNamedFunctionAction.kind,\n    toArrowFunctionAction.kind\n  ],\n  getEditsForAction: getRefactorEditsToConvertFunctionExpressions,\n  getAvailableActions: getRefactorActionsToConvertFunctionExpressions\n});\nfunction getRefactorActionsToConvertFunctionExpressions(context) {\n  const { file, startPosition, program, kind } = context;\n  const info = getFunctionInfo(file, startPosition, program);\n  if (!info) return emptyArray;\n  const { selectedVariableDeclaration, func } = info;\n  const possibleActions = [];\n  const errors = [];\n  if (refactorKindBeginsWith(toNamedFunctionAction.kind, kind)) {\n    const error2 = selectedVariableDeclaration || isArrowFunction(func) && isVariableDeclaration(func.parent) ? void 0 : getLocaleSpecificMessage(Diagnostics.Could_not_convert_to_named_function);\n    if (error2) {\n      errors.push({ ...toNamedFunctionAction, notApplicableReason: error2 });\n    } else {\n      possibleActions.push(toNamedFunctionAction);\n    }\n  }\n  if (refactorKindBeginsWith(toAnonymousFunctionAction.kind, kind)) {\n    const error2 = !selectedVariableDeclaration && isArrowFunction(func) ? void 0 : getLocaleSpecificMessage(Diagnostics.Could_not_convert_to_anonymous_function);\n    if (error2) {\n      errors.push({ ...toAnonymousFunctionAction, notApplicableReason: error2 });\n    } else {\n      possibleActions.push(toAnonymousFunctionAction);\n    }\n  }\n  if (refactorKindBeginsWith(toArrowFunctionAction.kind, kind)) {\n    const error2 = isFunctionExpression(func) ? void 0 : getLocaleSpecificMessage(Diagnostics.Could_not_convert_to_arrow_function);\n    if (error2) {\n      errors.push({ ...toArrowFunctionAction, notApplicableReason: error2 });\n    } else {\n      possibleActions.push(toArrowFunctionAction);\n    }\n  }\n  return [{\n    name: refactorName8,\n    description: refactorDescription4,\n    actions: possibleActions.length === 0 && context.preferences.provideRefactorNotApplicableReason ? errors : possibleActions\n  }];\n}\nfunction getRefactorEditsToConvertFunctionExpressions(context, actionName2) {\n  const { file, startPosition, program } = context;\n  const info = getFunctionInfo(file, startPosition, program);\n  if (!info) return void 0;\n  const { func } = info;\n  const edits = [];\n  switch (actionName2) {\n    case toAnonymousFunctionAction.name:\n      edits.push(...getEditInfoForConvertToAnonymousFunction(context, func));\n      break;\n    case toNamedFunctionAction.name:\n      const variableInfo = getVariableInfo(func);\n      if (!variableInfo) return void 0;\n      edits.push(...getEditInfoForConvertToNamedFunction(context, func, variableInfo));\n      break;\n    case toArrowFunctionAction.name:\n      if (!isFunctionExpression(func)) return void 0;\n      edits.push(...getEditInfoForConvertToArrowFunction(context, func));\n      break;\n    default:\n      return Debug.fail(\"invalid action\");\n  }\n  return { renameFilename: void 0, renameLocation: void 0, edits };\n}\nfunction containingThis(node) {\n  let containsThis = false;\n  node.forEachChild(function checkThis(child) {\n    if (isThis(child)) {\n      containsThis = true;\n      return;\n    }\n    if (!isClassLike(child) && !isFunctionDeclaration(child) && !isFunctionExpression(child)) {\n      forEachChild(child, checkThis);\n    }\n  });\n  return containsThis;\n}\nfunction getFunctionInfo(file, startPosition, program) {\n  const token = getTokenAtPosition(file, startPosition);\n  const typeChecker = program.getTypeChecker();\n  const func = tryGetFunctionFromVariableDeclaration(file, typeChecker, token.parent);\n  if (func && !containingThis(func.body) && !typeChecker.containsArgumentsReference(func)) {\n    return { selectedVariableDeclaration: true, func };\n  }\n  const maybeFunc = getContainingFunction(token);\n  if (maybeFunc && (isFunctionExpression(maybeFunc) || isArrowFunction(maybeFunc)) && !rangeContainsRange(maybeFunc.body, token) && !containingThis(maybeFunc.body) && !typeChecker.containsArgumentsReference(maybeFunc)) {\n    if (isFunctionExpression(maybeFunc) && isFunctionReferencedInFile(file, typeChecker, maybeFunc)) return void 0;\n    return { selectedVariableDeclaration: false, func: maybeFunc };\n  }\n  return void 0;\n}\nfunction isSingleVariableDeclaration(parent2) {\n  return isVariableDeclaration(parent2) || isVariableDeclarationList(parent2) && parent2.declarations.length === 1;\n}\nfunction tryGetFunctionFromVariableDeclaration(sourceFile, typeChecker, parent2) {\n  if (!isSingleVariableDeclaration(parent2)) {\n    return void 0;\n  }\n  const variableDeclaration = isVariableDeclaration(parent2) ? parent2 : first(parent2.declarations);\n  const initializer = variableDeclaration.initializer;\n  if (initializer && (isArrowFunction(initializer) || isFunctionExpression(initializer) && !isFunctionReferencedInFile(sourceFile, typeChecker, initializer))) {\n    return initializer;\n  }\n  return void 0;\n}\nfunction convertToBlock(body) {\n  if (isExpression(body)) {\n    const returnStatement = factory.createReturnStatement(body);\n    const file = body.getSourceFile();\n    setTextRange(returnStatement, body);\n    suppressLeadingAndTrailingTrivia(returnStatement);\n    copyTrailingAsLeadingComments(\n      body,\n      returnStatement,\n      file,\n      /*commentKind*/\n      void 0,\n      /*hasTrailingNewLine*/\n      true\n    );\n    return factory.createBlock(\n      [returnStatement],\n      /*multiLine*/\n      true\n    );\n  } else {\n    return body;\n  }\n}\nfunction getVariableInfo(func) {\n  const variableDeclaration = func.parent;\n  if (!isVariableDeclaration(variableDeclaration) || !isVariableDeclarationInVariableStatement(variableDeclaration)) return void 0;\n  const variableDeclarationList = variableDeclaration.parent;\n  const statement = variableDeclarationList.parent;\n  if (!isVariableDeclarationList(variableDeclarationList) || !isVariableStatement(statement) || !isIdentifier(variableDeclaration.name)) return void 0;\n  return { variableDeclaration, variableDeclarationList, statement, name: variableDeclaration.name };\n}\nfunction getEditInfoForConvertToAnonymousFunction(context, func) {\n  const { file } = context;\n  const body = convertToBlock(func.body);\n  const newNode = factory.createFunctionExpression(\n    func.modifiers,\n    func.asteriskToken,\n    /*name*/\n    void 0,\n    func.typeParameters,\n    func.parameters,\n    func.type,\n    body\n  );\n  return ts_textChanges_exports.ChangeTracker.with(context, (t) => t.replaceNode(file, func, newNode));\n}\nfunction getEditInfoForConvertToNamedFunction(context, func, variableInfo) {\n  const { file } = context;\n  const body = convertToBlock(func.body);\n  const { variableDeclaration, variableDeclarationList, statement, name } = variableInfo;\n  suppressLeadingTrivia(statement);\n  const modifiersFlags = getCombinedModifierFlags(variableDeclaration) & 32 /* Export */ | getEffectiveModifierFlags(func);\n  const modifiers = factory.createModifiersFromModifierFlags(modifiersFlags);\n  const newNode = factory.createFunctionDeclaration(length(modifiers) ? modifiers : void 0, func.asteriskToken, name, func.typeParameters, func.parameters, func.type, body);\n  if (variableDeclarationList.declarations.length === 1) {\n    return ts_textChanges_exports.ChangeTracker.with(context, (t) => t.replaceNode(file, statement, newNode));\n  } else {\n    return ts_textChanges_exports.ChangeTracker.with(context, (t) => {\n      t.delete(file, variableDeclaration);\n      t.insertNodeAfter(file, statement, newNode);\n    });\n  }\n}\nfunction getEditInfoForConvertToArrowFunction(context, func) {\n  const { file } = context;\n  const statements = func.body.statements;\n  const head = statements[0];\n  let body;\n  if (canBeConvertedToExpression(func.body, head)) {\n    body = head.expression;\n    suppressLeadingAndTrailingTrivia(body);\n    copyComments(head, body);\n  } else {\n    body = func.body;\n  }\n  const newNode = factory.createArrowFunction(func.modifiers, func.typeParameters, func.parameters, func.type, factory.createToken(39 /* EqualsGreaterThanToken */), body);\n  return ts_textChanges_exports.ChangeTracker.with(context, (t) => t.replaceNode(file, func, newNode));\n}\nfunction canBeConvertedToExpression(body, head) {\n  return body.statements.length === 1 && (isReturnStatement(head) && !!head.expression);\n}\nfunction isFunctionReferencedInFile(sourceFile, typeChecker, node) {\n  return !!node.name && ts_FindAllReferences_exports.Core.isSymbolReferencedInFile(node.name, typeChecker, sourceFile);\n}\n\n// src/services/_namespaces/ts.refactor.convertParamsToDestructuredObject.ts\nvar ts_refactor_convertParamsToDestructuredObject_exports = {};\n\n// src/services/refactors/convertParamsToDestructuredObject.ts\nvar refactorName9 = \"Convert parameters to destructured object\";\nvar minimumParameterLength = 1;\nvar refactorDescription5 = getLocaleSpecificMessage(Diagnostics.Convert_parameters_to_destructured_object);\nvar toDestructuredAction = {\n  name: refactorName9,\n  description: refactorDescription5,\n  kind: \"refactor.rewrite.parameters.toDestructured\"\n};\nregisterRefactor(refactorName9, {\n  kinds: [toDestructuredAction.kind],\n  getEditsForAction: getRefactorEditsToConvertParametersToDestructuredObject,\n  getAvailableActions: getRefactorActionsToConvertParametersToDestructuredObject\n});\nfunction getRefactorActionsToConvertParametersToDestructuredObject(context) {\n  const { file, startPosition } = context;\n  const isJSFile = isSourceFileJS(file);\n  if (isJSFile) return emptyArray;\n  const functionDeclaration = getFunctionDeclarationAtPosition(file, startPosition, context.program.getTypeChecker());\n  if (!functionDeclaration) return emptyArray;\n  return [{\n    name: refactorName9,\n    description: refactorDescription5,\n    actions: [toDestructuredAction]\n  }];\n}\nfunction getRefactorEditsToConvertParametersToDestructuredObject(context, actionName2) {\n  Debug.assert(actionName2 === refactorName9, \"Unexpected action name\");\n  const { file, startPosition, program, cancellationToken, host } = context;\n  const functionDeclaration = getFunctionDeclarationAtPosition(file, startPosition, program.getTypeChecker());\n  if (!functionDeclaration || !cancellationToken) return void 0;\n  const groupedReferences = getGroupedReferences(functionDeclaration, program, cancellationToken);\n  if (groupedReferences.valid) {\n    const edits = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange5(file, program, host, t, functionDeclaration, groupedReferences));\n    return { renameFilename: void 0, renameLocation: void 0, edits };\n  }\n  return { edits: [] };\n}\nfunction doChange5(sourceFile, program, host, changes, functionDeclaration, groupedReferences) {\n  const signature = groupedReferences.signature;\n  const newFunctionDeclarationParams = map(createNewParameters(functionDeclaration, program, host), (param) => getSynthesizedDeepClone(param));\n  if (signature) {\n    const newSignatureParams = map(createNewParameters(signature, program, host), (param) => getSynthesizedDeepClone(param));\n    replaceParameters(signature, newSignatureParams);\n  }\n  replaceParameters(functionDeclaration, newFunctionDeclarationParams);\n  const functionCalls = sortAndDeduplicate(\n    groupedReferences.functionCalls,\n    /*comparer*/\n    (a, b) => compareValues(a.pos, b.pos)\n  );\n  for (const call of functionCalls) {\n    if (call.arguments && call.arguments.length) {\n      const newArgument = getSynthesizedDeepClone(\n        createNewArgument(functionDeclaration, call.arguments),\n        /*includeTrivia*/\n        true\n      );\n      changes.replaceNodeRange(\n        getSourceFileOfNode(call),\n        first(call.arguments),\n        last(call.arguments),\n        newArgument,\n        { leadingTriviaOption: ts_textChanges_exports.LeadingTriviaOption.IncludeAll, trailingTriviaOption: ts_textChanges_exports.TrailingTriviaOption.Include }\n      );\n    }\n  }\n  function replaceParameters(declarationOrSignature, parameterDeclarations) {\n    changes.replaceNodeRangeWithNodes(\n      sourceFile,\n      first(declarationOrSignature.parameters),\n      last(declarationOrSignature.parameters),\n      parameterDeclarations,\n      {\n        joiner: \", \",\n        // indentation is set to 0 because otherwise the object parameter will be indented if there is a `this` parameter\n        indentation: 0,\n        leadingTriviaOption: ts_textChanges_exports.LeadingTriviaOption.IncludeAll,\n        trailingTriviaOption: ts_textChanges_exports.TrailingTriviaOption.Include\n      }\n    );\n  }\n}\nfunction getGroupedReferences(functionDeclaration, program, cancellationToken) {\n  const functionNames = getFunctionNames(functionDeclaration);\n  const classNames = isConstructorDeclaration(functionDeclaration) ? getClassNames(functionDeclaration) : [];\n  const names = deduplicate([...functionNames, ...classNames], equateValues);\n  const checker = program.getTypeChecker();\n  const references = flatMap(\n    names,\n    /*mapfn*/\n    (name) => ts_FindAllReferences_exports.getReferenceEntriesForNode(-1, name, program, program.getSourceFiles(), cancellationToken)\n  );\n  const groupedReferences = groupReferences(references);\n  if (!every(\n    groupedReferences.declarations,\n    /*callback*/\n    (decl) => contains(names, decl)\n  )) {\n    groupedReferences.valid = false;\n  }\n  return groupedReferences;\n  function groupReferences(referenceEntries) {\n    const classReferences = { accessExpressions: [], typeUsages: [] };\n    const groupedReferences2 = { functionCalls: [], declarations: [], classReferences, valid: true };\n    const functionSymbols = map(functionNames, getSymbolTargetAtLocation);\n    const classSymbols = map(classNames, getSymbolTargetAtLocation);\n    const isConstructor = isConstructorDeclaration(functionDeclaration);\n    const contextualSymbols = map(functionNames, (name) => getSymbolForContextualType(name, checker));\n    for (const entry of referenceEntries) {\n      if (entry.kind === ts_FindAllReferences_exports.EntryKind.Span) {\n        groupedReferences2.valid = false;\n        continue;\n      }\n      if (contains(contextualSymbols, getSymbolTargetAtLocation(entry.node))) {\n        if (isValidMethodSignature(entry.node.parent)) {\n          groupedReferences2.signature = entry.node.parent;\n          continue;\n        }\n        const call = entryToFunctionCall(entry);\n        if (call) {\n          groupedReferences2.functionCalls.push(call);\n          continue;\n        }\n      }\n      const contextualSymbol = getSymbolForContextualType(entry.node, checker);\n      if (contextualSymbol && contains(contextualSymbols, contextualSymbol)) {\n        const decl = entryToDeclaration(entry);\n        if (decl) {\n          groupedReferences2.declarations.push(decl);\n          continue;\n        }\n      }\n      if (contains(functionSymbols, getSymbolTargetAtLocation(entry.node)) || isNewExpressionTarget(entry.node)) {\n        const importOrExportReference = entryToImportOrExport(entry);\n        if (importOrExportReference) {\n          continue;\n        }\n        const decl = entryToDeclaration(entry);\n        if (decl) {\n          groupedReferences2.declarations.push(decl);\n          continue;\n        }\n        const call = entryToFunctionCall(entry);\n        if (call) {\n          groupedReferences2.functionCalls.push(call);\n          continue;\n        }\n      }\n      if (isConstructor && contains(classSymbols, getSymbolTargetAtLocation(entry.node))) {\n        const importOrExportReference = entryToImportOrExport(entry);\n        if (importOrExportReference) {\n          continue;\n        }\n        const decl = entryToDeclaration(entry);\n        if (decl) {\n          groupedReferences2.declarations.push(decl);\n          continue;\n        }\n        const accessExpression = entryToAccessExpression(entry);\n        if (accessExpression) {\n          classReferences.accessExpressions.push(accessExpression);\n          continue;\n        }\n        if (isClassDeclaration(functionDeclaration.parent)) {\n          const type = entryToType(entry);\n          if (type) {\n            classReferences.typeUsages.push(type);\n            continue;\n          }\n        }\n      }\n      groupedReferences2.valid = false;\n    }\n    return groupedReferences2;\n  }\n  function getSymbolTargetAtLocation(node) {\n    const symbol = checker.getSymbolAtLocation(node);\n    return symbol && getSymbolTarget(symbol, checker);\n  }\n}\nfunction getSymbolForContextualType(node, checker) {\n  const element = getContainingObjectLiteralElement(node);\n  if (element) {\n    const contextualType = checker.getContextualTypeForObjectLiteralElement(element);\n    const symbol = contextualType == null ? void 0 : contextualType.getSymbol();\n    if (symbol && !(getCheckFlags(symbol) & 6 /* Synthetic */)) {\n      return symbol;\n    }\n  }\n}\nfunction entryToImportOrExport(entry) {\n  const node = entry.node;\n  if (isImportSpecifier(node.parent) || isImportClause(node.parent) || isImportEqualsDeclaration(node.parent) || isNamespaceImport(node.parent)) {\n    return node;\n  }\n  if (isExportSpecifier(node.parent) || isExportAssignment(node.parent)) {\n    return node;\n  }\n  return void 0;\n}\nfunction entryToDeclaration(entry) {\n  if (isDeclaration(entry.node.parent)) {\n    return entry.node;\n  }\n  return void 0;\n}\nfunction entryToFunctionCall(entry) {\n  if (entry.node.parent) {\n    const functionReference = entry.node;\n    const parent2 = functionReference.parent;\n    switch (parent2.kind) {\n      // foo(...) or super(...) or new Foo(...)\n      case 214 /* CallExpression */:\n      case 215 /* NewExpression */:\n        const callOrNewExpression = tryCast(parent2, isCallOrNewExpression);\n        if (callOrNewExpression && callOrNewExpression.expression === functionReference) {\n          return callOrNewExpression;\n        }\n        break;\n      // x.foo(...)\n      case 212 /* PropertyAccessExpression */:\n        const propertyAccessExpression = tryCast(parent2, isPropertyAccessExpression);\n        if (propertyAccessExpression && propertyAccessExpression.parent && propertyAccessExpression.name === functionReference) {\n          const callOrNewExpression2 = tryCast(propertyAccessExpression.parent, isCallOrNewExpression);\n          if (callOrNewExpression2 && callOrNewExpression2.expression === propertyAccessExpression) {\n            return callOrNewExpression2;\n          }\n        }\n        break;\n      // x[\"foo\"](...)\n      case 213 /* ElementAccessExpression */:\n        const elementAccessExpression = tryCast(parent2, isElementAccessExpression);\n        if (elementAccessExpression && elementAccessExpression.parent && elementAccessExpression.argumentExpression === functionReference) {\n          const callOrNewExpression2 = tryCast(elementAccessExpression.parent, isCallOrNewExpression);\n          if (callOrNewExpression2 && callOrNewExpression2.expression === elementAccessExpression) {\n            return callOrNewExpression2;\n          }\n        }\n        break;\n    }\n  }\n  return void 0;\n}\nfunction entryToAccessExpression(entry) {\n  if (entry.node.parent) {\n    const reference = entry.node;\n    const parent2 = reference.parent;\n    switch (parent2.kind) {\n      // `C.foo`\n      case 212 /* PropertyAccessExpression */:\n        const propertyAccessExpression = tryCast(parent2, isPropertyAccessExpression);\n        if (propertyAccessExpression && propertyAccessExpression.expression === reference) {\n          return propertyAccessExpression;\n        }\n        break;\n      // `C[\"foo\"]`\n      case 213 /* ElementAccessExpression */:\n        const elementAccessExpression = tryCast(parent2, isElementAccessExpression);\n        if (elementAccessExpression && elementAccessExpression.expression === reference) {\n          return elementAccessExpression;\n        }\n        break;\n    }\n  }\n  return void 0;\n}\nfunction entryToType(entry) {\n  const reference = entry.node;\n  if (getMeaningFromLocation(reference) === 2 /* Type */ || isExpressionWithTypeArgumentsInClassExtendsClause(reference.parent)) {\n    return reference;\n  }\n  return void 0;\n}\nfunction getFunctionDeclarationAtPosition(file, startPosition, checker) {\n  const node = getTouchingToken(file, startPosition);\n  const functionDeclaration = getContainingFunctionDeclaration(node);\n  if (isTopLevelJSDoc(node)) return void 0;\n  if (functionDeclaration && isValidFunctionDeclaration(functionDeclaration, checker) && rangeContainsRange(functionDeclaration, node) && !(functionDeclaration.body && rangeContainsRange(functionDeclaration.body, node))) return functionDeclaration;\n  return void 0;\n}\nfunction isTopLevelJSDoc(node) {\n  const containingJSDoc = findAncestor(node, isJSDocNode);\n  if (containingJSDoc) {\n    const containingNonJSDoc = findAncestor(containingJSDoc, (n) => !isJSDocNode(n));\n    return !!containingNonJSDoc && isFunctionLikeDeclaration(containingNonJSDoc);\n  }\n  return false;\n}\nfunction isValidMethodSignature(node) {\n  return isMethodSignature(node) && (isInterfaceDeclaration(node.parent) || isTypeLiteralNode(node.parent));\n}\nfunction isValidFunctionDeclaration(functionDeclaration, checker) {\n  var _a;\n  if (!isValidParameterNodeArray(functionDeclaration.parameters, checker)) return false;\n  switch (functionDeclaration.kind) {\n    case 263 /* FunctionDeclaration */:\n      return hasNameOrDefault(functionDeclaration) && isSingleImplementation(functionDeclaration, checker);\n    case 175 /* MethodDeclaration */:\n      if (isObjectLiteralExpression(functionDeclaration.parent)) {\n        const contextualSymbol = getSymbolForContextualType(functionDeclaration.name, checker);\n        return ((_a = contextualSymbol == null ? void 0 : contextualSymbol.declarations) == null ? void 0 : _a.length) === 1 && isSingleImplementation(functionDeclaration, checker);\n      }\n      return isSingleImplementation(functionDeclaration, checker);\n    case 177 /* Constructor */:\n      if (isClassDeclaration(functionDeclaration.parent)) {\n        return hasNameOrDefault(functionDeclaration.parent) && isSingleImplementation(functionDeclaration, checker);\n      } else {\n        return isValidVariableDeclaration(functionDeclaration.parent.parent) && isSingleImplementation(functionDeclaration, checker);\n      }\n    case 219 /* FunctionExpression */:\n    case 220 /* ArrowFunction */:\n      return isValidVariableDeclaration(functionDeclaration.parent);\n  }\n  return false;\n}\nfunction isSingleImplementation(functionDeclaration, checker) {\n  return !!functionDeclaration.body && !checker.isImplementationOfOverload(functionDeclaration);\n}\nfunction hasNameOrDefault(functionOrClassDeclaration) {\n  if (!functionOrClassDeclaration.name) {\n    const defaultKeyword = findModifier(functionOrClassDeclaration, 90 /* DefaultKeyword */);\n    return !!defaultKeyword;\n  }\n  return true;\n}\nfunction isValidParameterNodeArray(parameters, checker) {\n  return getRefactorableParametersLength(parameters) >= minimumParameterLength && every(\n    parameters,\n    /*callback*/\n    (paramDecl) => isValidParameterDeclaration(paramDecl, checker)\n  );\n}\nfunction isValidParameterDeclaration(parameterDeclaration, checker) {\n  if (isRestParameter(parameterDeclaration)) {\n    const type = checker.getTypeAtLocation(parameterDeclaration);\n    if (!checker.isArrayType(type) && !checker.isTupleType(type)) return false;\n  }\n  return !parameterDeclaration.modifiers && isIdentifier(parameterDeclaration.name);\n}\nfunction isValidVariableDeclaration(node) {\n  return isVariableDeclaration(node) && isVarConst(node) && isIdentifier(node.name) && !node.type;\n}\nfunction hasThisParameter(parameters) {\n  return parameters.length > 0 && isThis(parameters[0].name);\n}\nfunction getRefactorableParametersLength(parameters) {\n  if (hasThisParameter(parameters)) {\n    return parameters.length - 1;\n  }\n  return parameters.length;\n}\nfunction getRefactorableParameters(parameters) {\n  if (hasThisParameter(parameters)) {\n    parameters = factory.createNodeArray(parameters.slice(1), parameters.hasTrailingComma);\n  }\n  return parameters;\n}\nfunction createPropertyOrShorthandAssignment(name, initializer) {\n  if (isIdentifier(initializer) && getTextOfIdentifierOrLiteral(initializer) === name) {\n    return factory.createShorthandPropertyAssignment(name);\n  }\n  return factory.createPropertyAssignment(name, initializer);\n}\nfunction createNewArgument(functionDeclaration, functionArguments) {\n  const parameters = getRefactorableParameters(functionDeclaration.parameters);\n  const hasRestParameter2 = isRestParameter(last(parameters));\n  const nonRestArguments = hasRestParameter2 ? functionArguments.slice(0, parameters.length - 1) : functionArguments;\n  const properties = map(nonRestArguments, (arg, i) => {\n    const parameterName = getParameterName(parameters[i]);\n    const property = createPropertyOrShorthandAssignment(parameterName, arg);\n    suppressLeadingAndTrailingTrivia(property.name);\n    if (isPropertyAssignment(property)) suppressLeadingAndTrailingTrivia(property.initializer);\n    copyComments(arg, property);\n    return property;\n  });\n  if (hasRestParameter2 && functionArguments.length >= parameters.length) {\n    const restArguments = functionArguments.slice(parameters.length - 1);\n    const restProperty = factory.createPropertyAssignment(getParameterName(last(parameters)), factory.createArrayLiteralExpression(restArguments));\n    properties.push(restProperty);\n  }\n  const objectLiteral = factory.createObjectLiteralExpression(\n    properties,\n    /*multiLine*/\n    false\n  );\n  return objectLiteral;\n}\nfunction createNewParameters(functionDeclaration, program, host) {\n  const checker = program.getTypeChecker();\n  const refactorableParameters = getRefactorableParameters(functionDeclaration.parameters);\n  const bindingElements = map(refactorableParameters, createBindingElementFromParameterDeclaration);\n  const objectParameterName = factory.createObjectBindingPattern(bindingElements);\n  const objectParameterType = createParameterTypeNode(refactorableParameters);\n  let objectInitializer;\n  if (every(refactorableParameters, isOptionalParameter)) {\n    objectInitializer = factory.createObjectLiteralExpression();\n  }\n  const objectParameter = factory.createParameterDeclaration(\n    /*modifiers*/\n    void 0,\n    /*dotDotDotToken*/\n    void 0,\n    objectParameterName,\n    /*questionToken*/\n    void 0,\n    objectParameterType,\n    objectInitializer\n  );\n  if (hasThisParameter(functionDeclaration.parameters)) {\n    const thisParameter = functionDeclaration.parameters[0];\n    const newThisParameter = factory.createParameterDeclaration(\n      /*modifiers*/\n      void 0,\n      /*dotDotDotToken*/\n      void 0,\n      thisParameter.name,\n      /*questionToken*/\n      void 0,\n      thisParameter.type\n    );\n    suppressLeadingAndTrailingTrivia(newThisParameter.name);\n    copyComments(thisParameter.name, newThisParameter.name);\n    if (thisParameter.type) {\n      suppressLeadingAndTrailingTrivia(newThisParameter.type);\n      copyComments(thisParameter.type, newThisParameter.type);\n    }\n    return factory.createNodeArray([newThisParameter, objectParameter]);\n  }\n  return factory.createNodeArray([objectParameter]);\n  function createBindingElementFromParameterDeclaration(parameterDeclaration) {\n    const element = factory.createBindingElement(\n      /*dotDotDotToken*/\n      void 0,\n      /*propertyName*/\n      void 0,\n      getParameterName(parameterDeclaration),\n      isRestParameter(parameterDeclaration) && isOptionalParameter(parameterDeclaration) ? factory.createArrayLiteralExpression() : parameterDeclaration.initializer\n    );\n    suppressLeadingAndTrailingTrivia(element);\n    if (parameterDeclaration.initializer && element.initializer) {\n      copyComments(parameterDeclaration.initializer, element.initializer);\n    }\n    return element;\n  }\n  function createParameterTypeNode(parameters) {\n    const members = map(parameters, createPropertySignatureFromParameterDeclaration);\n    const typeNode = addEmitFlags(factory.createTypeLiteralNode(members), 1 /* SingleLine */);\n    return typeNode;\n  }\n  function createPropertySignatureFromParameterDeclaration(parameterDeclaration) {\n    let parameterType = parameterDeclaration.type;\n    if (!parameterType && (parameterDeclaration.initializer || isRestParameter(parameterDeclaration))) {\n      parameterType = getTypeNode3(parameterDeclaration);\n    }\n    const propertySignature = factory.createPropertySignature(\n      /*modifiers*/\n      void 0,\n      getParameterName(parameterDeclaration),\n      isOptionalParameter(parameterDeclaration) ? factory.createToken(58 /* QuestionToken */) : parameterDeclaration.questionToken,\n      parameterType\n    );\n    suppressLeadingAndTrailingTrivia(propertySignature);\n    copyComments(parameterDeclaration.name, propertySignature.name);\n    if (parameterDeclaration.type && propertySignature.type) {\n      copyComments(parameterDeclaration.type, propertySignature.type);\n    }\n    return propertySignature;\n  }\n  function getTypeNode3(node) {\n    const type = checker.getTypeAtLocation(node);\n    return getTypeNodeIfAccessible(type, node, program, host);\n  }\n  function isOptionalParameter(parameterDeclaration) {\n    if (isRestParameter(parameterDeclaration)) {\n      const type = checker.getTypeAtLocation(parameterDeclaration);\n      return !checker.isTupleType(type);\n    }\n    return checker.isOptionalParameter(parameterDeclaration);\n  }\n}\nfunction getParameterName(paramDeclaration) {\n  return getTextOfIdentifierOrLiteral(paramDeclaration.name);\n}\nfunction getClassNames(constructorDeclaration) {\n  switch (constructorDeclaration.parent.kind) {\n    case 264 /* ClassDeclaration */:\n      const classDeclaration = constructorDeclaration.parent;\n      if (classDeclaration.name) return [classDeclaration.name];\n      const defaultModifier = Debug.checkDefined(\n        findModifier(classDeclaration, 90 /* DefaultKeyword */),\n        \"Nameless class declaration should be a default export\"\n      );\n      return [defaultModifier];\n    case 232 /* ClassExpression */:\n      const classExpression = constructorDeclaration.parent;\n      const variableDeclaration = constructorDeclaration.parent.parent;\n      const className = classExpression.name;\n      if (className) return [className, variableDeclaration.name];\n      return [variableDeclaration.name];\n  }\n}\nfunction getFunctionNames(functionDeclaration) {\n  switch (functionDeclaration.kind) {\n    case 263 /* FunctionDeclaration */:\n      if (functionDeclaration.name) return [functionDeclaration.name];\n      const defaultModifier = Debug.checkDefined(\n        findModifier(functionDeclaration, 90 /* DefaultKeyword */),\n        \"Nameless function declaration should be a default export\"\n      );\n      return [defaultModifier];\n    case 175 /* MethodDeclaration */:\n      return [functionDeclaration.name];\n    case 177 /* Constructor */:\n      const ctrKeyword = Debug.checkDefined(\n        findChildOfKind(functionDeclaration, 137 /* ConstructorKeyword */, functionDeclaration.getSourceFile()),\n        \"Constructor declaration should have constructor keyword\"\n      );\n      if (functionDeclaration.parent.kind === 232 /* ClassExpression */) {\n        const variableDeclaration = functionDeclaration.parent.parent;\n        return [variableDeclaration.name, ctrKeyword];\n      }\n      return [ctrKeyword];\n    case 220 /* ArrowFunction */:\n      return [functionDeclaration.parent.name];\n    case 219 /* FunctionExpression */:\n      if (functionDeclaration.name) return [functionDeclaration.name, functionDeclaration.parent.name];\n      return [functionDeclaration.parent.name];\n    default:\n      return Debug.assertNever(functionDeclaration, `Unexpected function declaration kind ${functionDeclaration.kind}`);\n  }\n}\n\n// src/services/_namespaces/ts.refactor.convertStringOrTemplateLiteral.ts\nvar ts_refactor_convertStringOrTemplateLiteral_exports = {};\n\n// src/services/refactors/convertStringOrTemplateLiteral.ts\nvar refactorName10 = \"Convert to template string\";\nvar refactorDescription6 = getLocaleSpecificMessage(Diagnostics.Convert_to_template_string);\nvar convertStringAction = {\n  name: refactorName10,\n  description: refactorDescription6,\n  kind: \"refactor.rewrite.string\"\n};\nregisterRefactor(refactorName10, {\n  kinds: [convertStringAction.kind],\n  getEditsForAction: getRefactorEditsToConvertToTemplateString,\n  getAvailableActions: getRefactorActionsToConvertToTemplateString\n});\nfunction getRefactorActionsToConvertToTemplateString(context) {\n  const { file, startPosition } = context;\n  const node = getNodeOrParentOfParentheses(file, startPosition);\n  const maybeBinary = getParentBinaryExpression(node);\n  const nodeIsStringLiteral = isStringLiteral(maybeBinary);\n  const refactorInfo = { name: refactorName10, description: refactorDescription6, actions: [] };\n  if (nodeIsStringLiteral && context.triggerReason !== \"invoked\") {\n    return emptyArray;\n  }\n  if (isExpressionNode(maybeBinary) && (nodeIsStringLiteral || isBinaryExpression(maybeBinary) && treeToArray(maybeBinary).isValidConcatenation)) {\n    refactorInfo.actions.push(convertStringAction);\n    return [refactorInfo];\n  } else if (context.preferences.provideRefactorNotApplicableReason) {\n    refactorInfo.actions.push({ ...convertStringAction, notApplicableReason: getLocaleSpecificMessage(Diagnostics.Can_only_convert_string_concatenations_and_string_literals) });\n    return [refactorInfo];\n  }\n  return emptyArray;\n}\nfunction getNodeOrParentOfParentheses(file, startPosition) {\n  const node = getTokenAtPosition(file, startPosition);\n  const nestedBinary = getParentBinaryExpression(node);\n  const isNonStringBinary = !treeToArray(nestedBinary).isValidConcatenation;\n  if (isNonStringBinary && isParenthesizedExpression(nestedBinary.parent) && isBinaryExpression(nestedBinary.parent.parent)) {\n    return nestedBinary.parent.parent;\n  }\n  return node;\n}\nfunction getRefactorEditsToConvertToTemplateString(context, actionName2) {\n  const { file, startPosition } = context;\n  const node = getNodeOrParentOfParentheses(file, startPosition);\n  switch (actionName2) {\n    case refactorDescription6:\n      return { edits: getEditsForToTemplateLiteral(context, node) };\n    default:\n      return Debug.fail(\"invalid action\");\n  }\n}\nfunction getEditsForToTemplateLiteral(context, node) {\n  const maybeBinary = getParentBinaryExpression(node);\n  const file = context.file;\n  const templateLiteral = nodesToTemplate(treeToArray(maybeBinary), file);\n  const trailingCommentRanges = getTrailingCommentRanges(file.text, maybeBinary.end);\n  if (trailingCommentRanges) {\n    const lastComment = trailingCommentRanges[trailingCommentRanges.length - 1];\n    const trailingRange = { pos: trailingCommentRanges[0].pos, end: lastComment.end };\n    return ts_textChanges_exports.ChangeTracker.with(context, (t) => {\n      t.deleteRange(file, trailingRange);\n      t.replaceNode(file, maybeBinary, templateLiteral);\n    });\n  } else {\n    return ts_textChanges_exports.ChangeTracker.with(context, (t) => t.replaceNode(file, maybeBinary, templateLiteral));\n  }\n}\nfunction isNotEqualsOperator(node) {\n  return !(node.operatorToken.kind === 64 /* EqualsToken */ || node.operatorToken.kind === 65 /* PlusEqualsToken */);\n}\nfunction getParentBinaryExpression(expr) {\n  const container = findAncestor(expr.parent, (n) => {\n    switch (n.kind) {\n      case 212 /* PropertyAccessExpression */:\n      case 213 /* ElementAccessExpression */:\n        return false;\n      case 229 /* TemplateExpression */:\n      case 227 /* BinaryExpression */:\n        return !(isBinaryExpression(n.parent) && isNotEqualsOperator(n.parent));\n      default:\n        return \"quit\";\n    }\n  });\n  return container || expr;\n}\nfunction treeToArray(current) {\n  const loop = (current2) => {\n    if (!isBinaryExpression(current2)) {\n      return { nodes: [current2], operators: [], validOperators: true, hasString: isStringLiteral(current2) || isNoSubstitutionTemplateLiteral(current2) };\n    }\n    const { nodes: nodes2, operators: operators2, hasString: leftHasString, validOperators: leftOperatorValid } = loop(current2.left);\n    if (!(leftHasString || isStringLiteral(current2.right) || isTemplateExpression(current2.right))) {\n      return { nodes: [current2], operators: [], hasString: false, validOperators: true };\n    }\n    const currentOperatorValid = current2.operatorToken.kind === 40 /* PlusToken */;\n    const validOperators2 = leftOperatorValid && currentOperatorValid;\n    nodes2.push(current2.right);\n    operators2.push(current2.operatorToken);\n    return { nodes: nodes2, operators: operators2, hasString: true, validOperators: validOperators2 };\n  };\n  const { nodes, operators, validOperators, hasString } = loop(current);\n  return { nodes, operators, isValidConcatenation: validOperators && hasString };\n}\nvar copyTrailingOperatorComments = (operators, file) => (index, targetNode) => {\n  if (index < operators.length) {\n    copyTrailingComments(\n      operators[index],\n      targetNode,\n      file,\n      3 /* MultiLineCommentTrivia */,\n      /*hasTrailingNewLine*/\n      false\n    );\n  }\n};\nvar copyCommentFromMultiNode = (nodes, file, copyOperatorComments) => (indexes, targetNode) => {\n  while (indexes.length > 0) {\n    const index = indexes.shift();\n    copyTrailingComments(\n      nodes[index],\n      targetNode,\n      file,\n      3 /* MultiLineCommentTrivia */,\n      /*hasTrailingNewLine*/\n      false\n    );\n    copyOperatorComments(index, targetNode);\n  }\n};\nfunction escapeRawStringForTemplate(s) {\n  return s.replace(/\\\\.|[$`]/g, (m) => m[0] === \"\\\\\" ? m : \"\\\\\" + m);\n}\nfunction getRawTextOfTemplate(node) {\n  const rightShaving = isTemplateHead(node) || isTemplateMiddle(node) ? -2 : -1;\n  return getTextOfNode(node).slice(1, rightShaving);\n}\nfunction concatConsecutiveString(index, nodes) {\n  const indexes = [];\n  let text = \"\", rawText = \"\";\n  while (index < nodes.length) {\n    const node = nodes[index];\n    if (isStringLiteralLike(node)) {\n      text += node.text;\n      rawText += escapeRawStringForTemplate(getTextOfNode(node).slice(1, -1));\n      indexes.push(index);\n      index++;\n    } else if (isTemplateExpression(node)) {\n      text += node.head.text;\n      rawText += getRawTextOfTemplate(node.head);\n      break;\n    } else {\n      break;\n    }\n  }\n  return [index, text, rawText, indexes];\n}\nfunction nodesToTemplate({ nodes, operators }, file) {\n  const copyOperatorComments = copyTrailingOperatorComments(operators, file);\n  const copyCommentFromStringLiterals = copyCommentFromMultiNode(nodes, file, copyOperatorComments);\n  const [begin, headText, rawHeadText, headIndexes] = concatConsecutiveString(0, nodes);\n  if (begin === nodes.length) {\n    const noSubstitutionTemplateLiteral = factory.createNoSubstitutionTemplateLiteral(headText, rawHeadText);\n    copyCommentFromStringLiterals(headIndexes, noSubstitutionTemplateLiteral);\n    return noSubstitutionTemplateLiteral;\n  }\n  const templateSpans = [];\n  const templateHead = factory.createTemplateHead(headText, rawHeadText);\n  copyCommentFromStringLiterals(headIndexes, templateHead);\n  for (let i = begin; i < nodes.length; i++) {\n    const currentNode = getExpressionFromParenthesesOrExpression(nodes[i]);\n    copyOperatorComments(i, currentNode);\n    const [newIndex, subsequentText, rawSubsequentText, stringIndexes] = concatConsecutiveString(i + 1, nodes);\n    i = newIndex - 1;\n    const isLast = i === nodes.length - 1;\n    if (isTemplateExpression(currentNode)) {\n      const spans = map(currentNode.templateSpans, (span, index) => {\n        copyExpressionComments(span);\n        const isLastSpan = index === currentNode.templateSpans.length - 1;\n        const text = span.literal.text + (isLastSpan ? subsequentText : \"\");\n        const rawText = getRawTextOfTemplate(span.literal) + (isLastSpan ? rawSubsequentText : \"\");\n        return factory.createTemplateSpan(\n          span.expression,\n          isLast && isLastSpan ? factory.createTemplateTail(text, rawText) : factory.createTemplateMiddle(text, rawText)\n        );\n      });\n      templateSpans.push(...spans);\n    } else {\n      const templatePart = isLast ? factory.createTemplateTail(subsequentText, rawSubsequentText) : factory.createTemplateMiddle(subsequentText, rawSubsequentText);\n      copyCommentFromStringLiterals(stringIndexes, templatePart);\n      templateSpans.push(factory.createTemplateSpan(currentNode, templatePart));\n    }\n  }\n  return factory.createTemplateExpression(templateHead, templateSpans);\n}\nfunction copyExpressionComments(node) {\n  const file = node.getSourceFile();\n  copyTrailingComments(\n    node,\n    node.expression,\n    file,\n    3 /* MultiLineCommentTrivia */,\n    /*hasTrailingNewLine*/\n    false\n  );\n  copyTrailingAsLeadingComments(\n    node.expression,\n    node.expression,\n    file,\n    3 /* MultiLineCommentTrivia */,\n    /*hasTrailingNewLine*/\n    false\n  );\n}\nfunction getExpressionFromParenthesesOrExpression(node) {\n  if (isParenthesizedExpression(node)) {\n    copyExpressionComments(node);\n    node = node.expression;\n  }\n  return node;\n}\n\n// src/services/_namespaces/ts.refactor.convertToOptionalChainExpression.ts\nvar ts_refactor_convertToOptionalChainExpression_exports = {};\n\n// src/services/refactors/convertToOptionalChainExpression.ts\nvar refactorName11 = \"Convert to optional chain expression\";\nvar convertToOptionalChainExpressionMessage = getLocaleSpecificMessage(Diagnostics.Convert_to_optional_chain_expression);\nvar toOptionalChainAction = {\n  name: refactorName11,\n  description: convertToOptionalChainExpressionMessage,\n  kind: \"refactor.rewrite.expression.optionalChain\"\n};\nregisterRefactor(refactorName11, {\n  kinds: [toOptionalChainAction.kind],\n  getEditsForAction: getRefactorEditsToConvertToOptionalChain,\n  getAvailableActions: getRefactorActionsToConvertToOptionalChain\n});\nfunction getRefactorActionsToConvertToOptionalChain(context) {\n  const info = getInfo3(context, context.triggerReason === \"invoked\");\n  if (!info) return emptyArray;\n  if (!isRefactorErrorInfo(info)) {\n    return [{\n      name: refactorName11,\n      description: convertToOptionalChainExpressionMessage,\n      actions: [toOptionalChainAction]\n    }];\n  }\n  if (context.preferences.provideRefactorNotApplicableReason) {\n    return [{\n      name: refactorName11,\n      description: convertToOptionalChainExpressionMessage,\n      actions: [{ ...toOptionalChainAction, notApplicableReason: info.error }]\n    }];\n  }\n  return emptyArray;\n}\nfunction getRefactorEditsToConvertToOptionalChain(context, actionName2) {\n  const info = getInfo3(context);\n  Debug.assert(info && !isRefactorErrorInfo(info), \"Expected applicable refactor info\");\n  const edits = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange6(context.file, context.program.getTypeChecker(), t, info, actionName2));\n  return { edits, renameFilename: void 0, renameLocation: void 0 };\n}\nfunction isValidExpression(node) {\n  return isBinaryExpression(node) || isConditionalExpression(node);\n}\nfunction isValidStatement(node) {\n  return isExpressionStatement(node) || isReturnStatement(node) || isVariableStatement(node);\n}\nfunction isValidExpressionOrStatement(node) {\n  return isValidExpression(node) || isValidStatement(node);\n}\nfunction getInfo3(context, considerEmptySpans = true) {\n  const { file, program } = context;\n  const span = getRefactorContextSpan(context);\n  const forEmptySpan = span.length === 0;\n  if (forEmptySpan && !considerEmptySpans) return void 0;\n  const startToken = getTokenAtPosition(file, span.start);\n  const endToken = findTokenOnLeftOfPosition(file, span.start + span.length);\n  const adjustedSpan = createTextSpanFromBounds(startToken.pos, endToken && endToken.end >= startToken.pos ? endToken.getEnd() : startToken.getEnd());\n  const parent2 = forEmptySpan ? getValidParentNodeOfEmptySpan(startToken) : getValidParentNodeContainingSpan(startToken, adjustedSpan);\n  const expression = parent2 && isValidExpressionOrStatement(parent2) ? getExpression(parent2) : void 0;\n  if (!expression) return { error: getLocaleSpecificMessage(Diagnostics.Could_not_find_convertible_access_expression) };\n  const checker = program.getTypeChecker();\n  return isConditionalExpression(expression) ? getConditionalInfo(expression, checker) : getBinaryInfo(expression);\n}\nfunction getConditionalInfo(expression, checker) {\n  const condition = expression.condition;\n  const finalExpression = getFinalExpressionInChain(expression.whenTrue);\n  if (!finalExpression || checker.isNullableType(checker.getTypeAtLocation(finalExpression))) {\n    return { error: getLocaleSpecificMessage(Diagnostics.Could_not_find_convertible_access_expression) };\n  }\n  if ((isPropertyAccessExpression(condition) || isIdentifier(condition)) && getMatchingStart(condition, finalExpression.expression)) {\n    return { finalExpression, occurrences: [condition], expression };\n  } else if (isBinaryExpression(condition)) {\n    const occurrences = getOccurrencesInExpression(finalExpression.expression, condition);\n    return occurrences ? { finalExpression, occurrences, expression } : { error: getLocaleSpecificMessage(Diagnostics.Could_not_find_matching_access_expressions) };\n  }\n}\nfunction getBinaryInfo(expression) {\n  if (expression.operatorToken.kind !== 56 /* AmpersandAmpersandToken */) {\n    return { error: getLocaleSpecificMessage(Diagnostics.Can_only_convert_logical_AND_access_chains) };\n  }\n  const finalExpression = getFinalExpressionInChain(expression.right);\n  if (!finalExpression) return { error: getLocaleSpecificMessage(Diagnostics.Could_not_find_convertible_access_expression) };\n  const occurrences = getOccurrencesInExpression(finalExpression.expression, expression.left);\n  return occurrences ? { finalExpression, occurrences, expression } : { error: getLocaleSpecificMessage(Diagnostics.Could_not_find_matching_access_expressions) };\n}\nfunction getOccurrencesInExpression(matchTo, expression) {\n  const occurrences = [];\n  while (isBinaryExpression(expression) && expression.operatorToken.kind === 56 /* AmpersandAmpersandToken */) {\n    const match = getMatchingStart(skipParentheses(matchTo), skipParentheses(expression.right));\n    if (!match) {\n      break;\n    }\n    occurrences.push(match);\n    matchTo = match;\n    expression = expression.left;\n  }\n  const finalMatch = getMatchingStart(matchTo, expression);\n  if (finalMatch) {\n    occurrences.push(finalMatch);\n  }\n  return occurrences.length > 0 ? occurrences : void 0;\n}\nfunction getMatchingStart(chain, subchain) {\n  if (!isIdentifier(subchain) && !isPropertyAccessExpression(subchain) && !isElementAccessExpression(subchain)) {\n    return void 0;\n  }\n  return chainStartsWith(chain, subchain) ? subchain : void 0;\n}\nfunction chainStartsWith(chain, subchain) {\n  while (isCallExpression(chain) || isPropertyAccessExpression(chain) || isElementAccessExpression(chain)) {\n    if (getTextOfChainNode(chain) === getTextOfChainNode(subchain)) break;\n    chain = chain.expression;\n  }\n  while (isPropertyAccessExpression(chain) && isPropertyAccessExpression(subchain) || isElementAccessExpression(chain) && isElementAccessExpression(subchain)) {\n    if (getTextOfChainNode(chain) !== getTextOfChainNode(subchain)) return false;\n    chain = chain.expression;\n    subchain = subchain.expression;\n  }\n  return isIdentifier(chain) && isIdentifier(subchain) && chain.getText() === subchain.getText();\n}\nfunction getTextOfChainNode(node) {\n  if (isIdentifier(node) || isStringOrNumericLiteralLike(node)) {\n    return node.getText();\n  }\n  if (isPropertyAccessExpression(node)) {\n    return getTextOfChainNode(node.name);\n  }\n  if (isElementAccessExpression(node)) {\n    return getTextOfChainNode(node.argumentExpression);\n  }\n  return void 0;\n}\nfunction getValidParentNodeContainingSpan(node, span) {\n  while (node.parent) {\n    if (isValidExpressionOrStatement(node) && span.length !== 0 && node.end >= span.start + span.length) {\n      return node;\n    }\n    node = node.parent;\n  }\n  return void 0;\n}\nfunction getValidParentNodeOfEmptySpan(node) {\n  while (node.parent) {\n    if (isValidExpressionOrStatement(node) && !isValidExpressionOrStatement(node.parent)) {\n      return node;\n    }\n    node = node.parent;\n  }\n  return void 0;\n}\nfunction getExpression(node) {\n  if (isValidExpression(node)) {\n    return node;\n  }\n  if (isVariableStatement(node)) {\n    const variable = getSingleVariableOfVariableStatement(node);\n    const initializer = variable == null ? void 0 : variable.initializer;\n    return initializer && isValidExpression(initializer) ? initializer : void 0;\n  }\n  return node.expression && isValidExpression(node.expression) ? node.expression : void 0;\n}\nfunction getFinalExpressionInChain(node) {\n  node = skipParentheses(node);\n  if (isBinaryExpression(node)) {\n    return getFinalExpressionInChain(node.left);\n  } else if ((isPropertyAccessExpression(node) || isElementAccessExpression(node) || isCallExpression(node)) && !isOptionalChain(node)) {\n    return node;\n  }\n  return void 0;\n}\nfunction convertOccurrences(checker, toConvert, occurrences) {\n  if (isPropertyAccessExpression(toConvert) || isElementAccessExpression(toConvert) || isCallExpression(toConvert)) {\n    const chain = convertOccurrences(checker, toConvert.expression, occurrences);\n    const lastOccurrence = occurrences.length > 0 ? occurrences[occurrences.length - 1] : void 0;\n    const isOccurrence = (lastOccurrence == null ? void 0 : lastOccurrence.getText()) === toConvert.expression.getText();\n    if (isOccurrence) occurrences.pop();\n    if (isCallExpression(toConvert)) {\n      return isOccurrence ? factory.createCallChain(chain, factory.createToken(29 /* QuestionDotToken */), toConvert.typeArguments, toConvert.arguments) : factory.createCallChain(chain, toConvert.questionDotToken, toConvert.typeArguments, toConvert.arguments);\n    } else if (isPropertyAccessExpression(toConvert)) {\n      return isOccurrence ? factory.createPropertyAccessChain(chain, factory.createToken(29 /* QuestionDotToken */), toConvert.name) : factory.createPropertyAccessChain(chain, toConvert.questionDotToken, toConvert.name);\n    } else if (isElementAccessExpression(toConvert)) {\n      return isOccurrence ? factory.createElementAccessChain(chain, factory.createToken(29 /* QuestionDotToken */), toConvert.argumentExpression) : factory.createElementAccessChain(chain, toConvert.questionDotToken, toConvert.argumentExpression);\n    }\n  }\n  return toConvert;\n}\nfunction doChange6(sourceFile, checker, changes, info, _actionName) {\n  const { finalExpression, occurrences, expression } = info;\n  const firstOccurrence = occurrences[occurrences.length - 1];\n  const convertedChain = convertOccurrences(checker, finalExpression, occurrences);\n  if (convertedChain && (isPropertyAccessExpression(convertedChain) || isElementAccessExpression(convertedChain) || isCallExpression(convertedChain))) {\n    if (isBinaryExpression(expression)) {\n      changes.replaceNodeRange(sourceFile, firstOccurrence, finalExpression, convertedChain);\n    } else if (isConditionalExpression(expression)) {\n      changes.replaceNode(sourceFile, expression, factory.createBinaryExpression(convertedChain, factory.createToken(61 /* QuestionQuestionToken */), expression.whenFalse));\n    }\n  }\n}\n\n// src/services/_namespaces/ts.refactor.extractSymbol.ts\nvar ts_refactor_extractSymbol_exports = {};\n__export(ts_refactor_extractSymbol_exports, {\n  Messages: () => Messages,\n  RangeFacts: () => RangeFacts,\n  getRangeToExtract: () => getRangeToExtract2,\n  getRefactorActionsToExtractSymbol: () => getRefactorActionsToExtractSymbol,\n  getRefactorEditsToExtractSymbol: () => getRefactorEditsToExtractSymbol\n});\n\n// src/services/refactors/extractSymbol.ts\nvar refactorName12 = \"Extract Symbol\";\nvar extractConstantAction = {\n  name: \"Extract Constant\",\n  description: getLocaleSpecificMessage(Diagnostics.Extract_constant),\n  kind: \"refactor.extract.constant\"\n};\nvar extractFunctionAction = {\n  name: \"Extract Function\",\n  description: getLocaleSpecificMessage(Diagnostics.Extract_function),\n  kind: \"refactor.extract.function\"\n};\nregisterRefactor(refactorName12, {\n  kinds: [\n    extractConstantAction.kind,\n    extractFunctionAction.kind\n  ],\n  getEditsForAction: getRefactorEditsToExtractSymbol,\n  getAvailableActions: getRefactorActionsToExtractSymbol\n});\nfunction getRefactorActionsToExtractSymbol(context) {\n  const requestedRefactor = context.kind;\n  const rangeToExtract = getRangeToExtract2(context.file, getRefactorContextSpan(context), context.triggerReason === \"invoked\");\n  const targetRange = rangeToExtract.targetRange;\n  if (targetRange === void 0) {\n    if (!rangeToExtract.errors || rangeToExtract.errors.length === 0 || !context.preferences.provideRefactorNotApplicableReason) {\n      return emptyArray;\n    }\n    const errors = [];\n    if (refactorKindBeginsWith(extractFunctionAction.kind, requestedRefactor)) {\n      errors.push({\n        name: refactorName12,\n        description: extractFunctionAction.description,\n        actions: [{ ...extractFunctionAction, notApplicableReason: getStringError(rangeToExtract.errors) }]\n      });\n    }\n    if (refactorKindBeginsWith(extractConstantAction.kind, requestedRefactor)) {\n      errors.push({\n        name: refactorName12,\n        description: extractConstantAction.description,\n        actions: [{ ...extractConstantAction, notApplicableReason: getStringError(rangeToExtract.errors) }]\n      });\n    }\n    return errors;\n  }\n  const { affectedTextRange, extractions } = getPossibleExtractions(targetRange, context);\n  if (extractions === void 0) {\n    return emptyArray;\n  }\n  const functionActions = [];\n  const usedFunctionNames = /* @__PURE__ */ new Map();\n  let innermostErrorFunctionAction;\n  const constantActions = [];\n  const usedConstantNames = /* @__PURE__ */ new Map();\n  let innermostErrorConstantAction;\n  let i = 0;\n  for (const { functionExtraction, constantExtraction } of extractions) {\n    if (refactorKindBeginsWith(extractFunctionAction.kind, requestedRefactor)) {\n      const description3 = functionExtraction.description;\n      if (functionExtraction.errors.length === 0) {\n        if (!usedFunctionNames.has(description3)) {\n          usedFunctionNames.set(description3, true);\n          functionActions.push({\n            description: description3,\n            name: `function_scope_${i}`,\n            kind: extractFunctionAction.kind,\n            range: {\n              start: { line: getLineAndCharacterOfPosition(context.file, affectedTextRange.pos).line, offset: getLineAndCharacterOfPosition(context.file, affectedTextRange.pos).character },\n              end: { line: getLineAndCharacterOfPosition(context.file, affectedTextRange.end).line, offset: getLineAndCharacterOfPosition(context.file, affectedTextRange.end).character }\n            }\n          });\n        }\n      } else if (!innermostErrorFunctionAction) {\n        innermostErrorFunctionAction = {\n          description: description3,\n          name: `function_scope_${i}`,\n          notApplicableReason: getStringError(functionExtraction.errors),\n          kind: extractFunctionAction.kind\n        };\n      }\n    }\n    if (refactorKindBeginsWith(extractConstantAction.kind, requestedRefactor)) {\n      const description3 = constantExtraction.description;\n      if (constantExtraction.errors.length === 0) {\n        if (!usedConstantNames.has(description3)) {\n          usedConstantNames.set(description3, true);\n          constantActions.push({\n            description: description3,\n            name: `constant_scope_${i}`,\n            kind: extractConstantAction.kind,\n            range: {\n              start: { line: getLineAndCharacterOfPosition(context.file, affectedTextRange.pos).line, offset: getLineAndCharacterOfPosition(context.file, affectedTextRange.pos).character },\n              end: { line: getLineAndCharacterOfPosition(context.file, affectedTextRange.end).line, offset: getLineAndCharacterOfPosition(context.file, affectedTextRange.end).character }\n            }\n          });\n        }\n      } else if (!innermostErrorConstantAction) {\n        innermostErrorConstantAction = {\n          description: description3,\n          name: `constant_scope_${i}`,\n          notApplicableReason: getStringError(constantExtraction.errors),\n          kind: extractConstantAction.kind\n        };\n      }\n    }\n    i++;\n  }\n  const infos = [];\n  if (functionActions.length) {\n    infos.push({\n      name: refactorName12,\n      description: getLocaleSpecificMessage(Diagnostics.Extract_function),\n      actions: functionActions\n    });\n  } else if (context.preferences.provideRefactorNotApplicableReason && innermostErrorFunctionAction) {\n    infos.push({\n      name: refactorName12,\n      description: getLocaleSpecificMessage(Diagnostics.Extract_function),\n      actions: [innermostErrorFunctionAction]\n    });\n  }\n  if (constantActions.length) {\n    infos.push({\n      name: refactorName12,\n      description: getLocaleSpecificMessage(Diagnostics.Extract_constant),\n      actions: constantActions\n    });\n  } else if (context.preferences.provideRefactorNotApplicableReason && innermostErrorConstantAction) {\n    infos.push({\n      name: refactorName12,\n      description: getLocaleSpecificMessage(Diagnostics.Extract_constant),\n      actions: [innermostErrorConstantAction]\n    });\n  }\n  return infos.length ? infos : emptyArray;\n  function getStringError(errors) {\n    let error2 = errors[0].messageText;\n    if (typeof error2 !== \"string\") {\n      error2 = error2.messageText;\n    }\n    return error2;\n  }\n}\nfunction getRefactorEditsToExtractSymbol(context, actionName2) {\n  const rangeToExtract = getRangeToExtract2(context.file, getRefactorContextSpan(context));\n  const targetRange = rangeToExtract.targetRange;\n  const parsedFunctionIndexMatch = /^function_scope_(\\d+)$/.exec(actionName2);\n  if (parsedFunctionIndexMatch) {\n    const index = +parsedFunctionIndexMatch[1];\n    Debug.assert(isFinite(index), \"Expected to parse a finite number from the function scope index\");\n    return getFunctionExtractionAtIndex(targetRange, context, index);\n  }\n  const parsedConstantIndexMatch = /^constant_scope_(\\d+)$/.exec(actionName2);\n  if (parsedConstantIndexMatch) {\n    const index = +parsedConstantIndexMatch[1];\n    Debug.assert(isFinite(index), \"Expected to parse a finite number from the constant scope index\");\n    return getConstantExtractionAtIndex(targetRange, context, index);\n  }\n  Debug.fail(\"Unrecognized action name\");\n}\nvar Messages;\n((Messages2) => {\n  function createMessage(message) {\n    return { message, code: 0, category: 3 /* Message */, key: message };\n  }\n  Messages2.cannotExtractRange = createMessage(\"Cannot extract range.\");\n  Messages2.cannotExtractImport = createMessage(\"Cannot extract import statement.\");\n  Messages2.cannotExtractSuper = createMessage(\"Cannot extract super call.\");\n  Messages2.cannotExtractJSDoc = createMessage(\"Cannot extract JSDoc.\");\n  Messages2.cannotExtractEmpty = createMessage(\"Cannot extract empty range.\");\n  Messages2.expressionExpected = createMessage(\"expression expected.\");\n  Messages2.uselessConstantType = createMessage(\"No reason to extract constant of type.\");\n  Messages2.statementOrExpressionExpected = createMessage(\"Statement or expression expected.\");\n  Messages2.cannotExtractRangeContainingConditionalBreakOrContinueStatements = createMessage(\"Cannot extract range containing conditional break or continue statements.\");\n  Messages2.cannotExtractRangeContainingConditionalReturnStatement = createMessage(\"Cannot extract range containing conditional return statement.\");\n  Messages2.cannotExtractRangeContainingLabeledBreakOrContinueStatementWithTargetOutsideOfTheRange = createMessage(\"Cannot extract range containing labeled break or continue with target outside of the range.\");\n  Messages2.cannotExtractRangeThatContainsWritesToReferencesLocatedOutsideOfTheTargetRangeInGenerators = createMessage(\"Cannot extract range containing writes to references located outside of the target range in generators.\");\n  Messages2.typeWillNotBeVisibleInTheNewScope = createMessage(\"Type will not visible in the new scope.\");\n  Messages2.functionWillNotBeVisibleInTheNewScope = createMessage(\"Function will not visible in the new scope.\");\n  Messages2.cannotExtractIdentifier = createMessage(\"Select more than a single identifier.\");\n  Messages2.cannotExtractExportedEntity = createMessage(\"Cannot extract exported declaration\");\n  Messages2.cannotWriteInExpression = createMessage(\"Cannot write back side-effects when extracting an expression\");\n  Messages2.cannotExtractReadonlyPropertyInitializerOutsideConstructor = createMessage(\"Cannot move initialization of read-only class property outside of the constructor\");\n  Messages2.cannotExtractAmbientBlock = createMessage(\"Cannot extract code from ambient contexts\");\n  Messages2.cannotAccessVariablesFromNestedScopes = createMessage(\"Cannot access variables from nested scopes\");\n  Messages2.cannotExtractToJSClass = createMessage(\"Cannot extract constant to a class scope in JS\");\n  Messages2.cannotExtractToExpressionArrowFunction = createMessage(\"Cannot extract constant to an arrow function without a block\");\n  Messages2.cannotExtractFunctionsContainingThisToMethod = createMessage(\"Cannot extract functions containing this to method\");\n})(Messages || (Messages = {}));\nvar RangeFacts = /* @__PURE__ */ ((RangeFacts2) => {\n  RangeFacts2[RangeFacts2[\"None\"] = 0] = \"None\";\n  RangeFacts2[RangeFacts2[\"HasReturn\"] = 1] = \"HasReturn\";\n  RangeFacts2[RangeFacts2[\"IsGenerator\"] = 2] = \"IsGenerator\";\n  RangeFacts2[RangeFacts2[\"IsAsyncFunction\"] = 4] = \"IsAsyncFunction\";\n  RangeFacts2[RangeFacts2[\"UsesThis\"] = 8] = \"UsesThis\";\n  RangeFacts2[RangeFacts2[\"UsesThisInFunction\"] = 16] = \"UsesThisInFunction\";\n  RangeFacts2[RangeFacts2[\"InStaticRegion\"] = 32] = \"InStaticRegion\";\n  return RangeFacts2;\n})(RangeFacts || {});\nfunction getRangeToExtract2(sourceFile, span, invoked = true) {\n  const { length: length2 } = span;\n  if (length2 === 0 && !invoked) {\n    return { errors: [createFileDiagnostic(sourceFile, span.start, length2, Messages.cannotExtractEmpty)] };\n  }\n  const cursorRequest = length2 === 0 && invoked;\n  const startToken = findFirstNonJsxWhitespaceToken(sourceFile, span.start);\n  const endToken = findTokenOnLeftOfPosition(sourceFile, textSpanEnd(span));\n  const adjustedSpan = startToken && endToken && invoked ? getAdjustedSpanFromNodes(startToken, endToken, sourceFile) : span;\n  const start = cursorRequest ? getExtractableParent(startToken) : getParentNodeInSpan(startToken, sourceFile, adjustedSpan);\n  const end = cursorRequest ? start : getParentNodeInSpan(endToken, sourceFile, adjustedSpan);\n  let rangeFacts = 0 /* None */;\n  let thisNode;\n  if (!start || !end) {\n    return { errors: [createFileDiagnostic(sourceFile, span.start, length2, Messages.cannotExtractRange)] };\n  }\n  if (start.flags & 16777216 /* JSDoc */) {\n    return { errors: [createFileDiagnostic(sourceFile, span.start, length2, Messages.cannotExtractJSDoc)] };\n  }\n  if (start.parent !== end.parent) {\n    return { errors: [createFileDiagnostic(sourceFile, span.start, length2, Messages.cannotExtractRange)] };\n  }\n  if (start !== end) {\n    if (!isBlockLike(start.parent)) {\n      return { errors: [createFileDiagnostic(sourceFile, span.start, length2, Messages.cannotExtractRange)] };\n    }\n    const statements = [];\n    for (const statement of start.parent.statements) {\n      if (statement === start || statements.length) {\n        const errors2 = checkNode(statement);\n        if (errors2) {\n          return { errors: errors2 };\n        }\n        statements.push(statement);\n      }\n      if (statement === end) {\n        break;\n      }\n    }\n    if (!statements.length) {\n      return { errors: [createFileDiagnostic(sourceFile, span.start, length2, Messages.cannotExtractRange)] };\n    }\n    return { targetRange: { range: statements, facts: rangeFacts, thisNode } };\n  }\n  if (isReturnStatement(start) && !start.expression) {\n    return { errors: [createFileDiagnostic(sourceFile, span.start, length2, Messages.cannotExtractRange)] };\n  }\n  const node = refineNode(start);\n  const errors = checkRootNode(node) || checkNode(node);\n  if (errors) {\n    return { errors };\n  }\n  return { targetRange: { range: getStatementOrExpressionRange(node), facts: rangeFacts, thisNode } };\n  function refineNode(node2) {\n    if (isReturnStatement(node2)) {\n      if (node2.expression) {\n        return node2.expression;\n      }\n    } else if (isVariableStatement(node2) || isVariableDeclarationList(node2)) {\n      const declarations = isVariableStatement(node2) ? node2.declarationList.declarations : node2.declarations;\n      let numInitializers = 0;\n      let lastInitializer;\n      for (const declaration of declarations) {\n        if (declaration.initializer) {\n          numInitializers++;\n          lastInitializer = declaration.initializer;\n        }\n      }\n      if (numInitializers === 1) {\n        return lastInitializer;\n      }\n    } else if (isVariableDeclaration(node2)) {\n      if (node2.initializer) {\n        return node2.initializer;\n      }\n    }\n    return node2;\n  }\n  function checkRootNode(node2) {\n    if (isIdentifier(isExpressionStatement(node2) ? node2.expression : node2)) {\n      return [createDiagnosticForNode(node2, Messages.cannotExtractIdentifier)];\n    }\n    return void 0;\n  }\n  function checkForStaticContext(nodeToCheck, containingClass) {\n    let current = nodeToCheck;\n    while (current !== containingClass) {\n      if (current.kind === 173 /* PropertyDeclaration */) {\n        if (isStatic(current)) {\n          rangeFacts |= 32 /* InStaticRegion */;\n        }\n        break;\n      } else if (current.kind === 170 /* Parameter */) {\n        const ctorOrMethod = getContainingFunction(current);\n        if (ctorOrMethod.kind === 177 /* Constructor */) {\n          rangeFacts |= 32 /* InStaticRegion */;\n        }\n        break;\n      } else if (current.kind === 175 /* MethodDeclaration */) {\n        if (isStatic(current)) {\n          rangeFacts |= 32 /* InStaticRegion */;\n        }\n      }\n      current = current.parent;\n    }\n  }\n  function checkNode(nodeToCheck) {\n    let PermittedJumps;\n    ((PermittedJumps2) => {\n      PermittedJumps2[PermittedJumps2[\"None\"] = 0] = \"None\";\n      PermittedJumps2[PermittedJumps2[\"Break\"] = 1] = \"Break\";\n      PermittedJumps2[PermittedJumps2[\"Continue\"] = 2] = \"Continue\";\n      PermittedJumps2[PermittedJumps2[\"Return\"] = 4] = \"Return\";\n    })(PermittedJumps || (PermittedJumps = {}));\n    Debug.assert(nodeToCheck.pos <= nodeToCheck.end, \"This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809 (1)\");\n    Debug.assert(!positionIsSynthesized(nodeToCheck.pos), \"This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809 (2)\");\n    if (!isStatement(nodeToCheck) && !(isExpressionNode(nodeToCheck) && isExtractableExpression(nodeToCheck)) && !isStringLiteralJsxAttribute(nodeToCheck)) {\n      return [createDiagnosticForNode(nodeToCheck, Messages.statementOrExpressionExpected)];\n    }\n    if (nodeToCheck.flags & 33554432 /* Ambient */) {\n      return [createDiagnosticForNode(nodeToCheck, Messages.cannotExtractAmbientBlock)];\n    }\n    const containingClass = getContainingClass(nodeToCheck);\n    if (containingClass) {\n      checkForStaticContext(nodeToCheck, containingClass);\n    }\n    let errors2;\n    let permittedJumps = 4 /* Return */;\n    let seenLabels;\n    visit(nodeToCheck);\n    if (rangeFacts & 8 /* UsesThis */) {\n      const container = getThisContainer(\n        nodeToCheck,\n        /*includeArrowFunctions*/\n        false,\n        /*includeClassComputedPropertyName*/\n        false\n      );\n      if (container.kind === 263 /* FunctionDeclaration */ || container.kind === 175 /* MethodDeclaration */ && container.parent.kind === 211 /* ObjectLiteralExpression */ || container.kind === 219 /* FunctionExpression */) {\n        rangeFacts |= 16 /* UsesThisInFunction */;\n      }\n    }\n    return errors2;\n    function visit(node2) {\n      if (errors2) {\n        return true;\n      }\n      if (isDeclaration(node2)) {\n        const declaringNode = node2.kind === 261 /* VariableDeclaration */ ? node2.parent.parent : node2;\n        if (hasSyntacticModifier(declaringNode, 32 /* Export */)) {\n          (errors2 || (errors2 = [])).push(createDiagnosticForNode(node2, Messages.cannotExtractExportedEntity));\n          return true;\n        }\n      }\n      switch (node2.kind) {\n        case 273 /* ImportDeclaration */:\n          (errors2 || (errors2 = [])).push(createDiagnosticForNode(node2, Messages.cannotExtractImport));\n          return true;\n        case 278 /* ExportAssignment */:\n          (errors2 || (errors2 = [])).push(createDiagnosticForNode(node2, Messages.cannotExtractExportedEntity));\n          return true;\n        case 108 /* SuperKeyword */:\n          if (node2.parent.kind === 214 /* CallExpression */) {\n            const containingClass2 = getContainingClass(node2);\n            if (containingClass2 === void 0 || containingClass2.pos < span.start || containingClass2.end >= span.start + span.length) {\n              (errors2 || (errors2 = [])).push(createDiagnosticForNode(node2, Messages.cannotExtractSuper));\n              return true;\n            }\n          } else {\n            rangeFacts |= 8 /* UsesThis */;\n            thisNode = node2;\n          }\n          break;\n        case 220 /* ArrowFunction */:\n          forEachChild(node2, function check(n) {\n            if (isThis(n)) {\n              rangeFacts |= 8 /* UsesThis */;\n              thisNode = node2;\n            } else if (isClassLike(n) || isFunctionLike(n) && !isArrowFunction(n)) {\n              return false;\n            } else {\n              forEachChild(n, check);\n            }\n          });\n        // falls through\n        case 264 /* ClassDeclaration */:\n        case 263 /* FunctionDeclaration */:\n          if (isSourceFile(node2.parent) && node2.parent.externalModuleIndicator === void 0) {\n            (errors2 || (errors2 = [])).push(createDiagnosticForNode(node2, Messages.functionWillNotBeVisibleInTheNewScope));\n          }\n        // falls through\n        case 232 /* ClassExpression */:\n        case 219 /* FunctionExpression */:\n        case 175 /* MethodDeclaration */:\n        case 177 /* Constructor */:\n        case 178 /* GetAccessor */:\n        case 179 /* SetAccessor */:\n          return false;\n      }\n      const savedPermittedJumps = permittedJumps;\n      switch (node2.kind) {\n        case 246 /* IfStatement */:\n          permittedJumps &= ~4 /* Return */;\n          break;\n        case 259 /* TryStatement */:\n          permittedJumps = 0 /* None */;\n          break;\n        case 242 /* Block */:\n          if (node2.parent && node2.parent.kind === 259 /* TryStatement */ && node2.parent.finallyBlock === node2) {\n            permittedJumps = 4 /* Return */;\n          }\n          break;\n        case 298 /* DefaultClause */:\n        case 297 /* CaseClause */:\n          permittedJumps |= 1 /* Break */;\n          break;\n        default:\n          if (isIterationStatement(\n            node2,\n            /*lookInLabeledStatements*/\n            false\n          )) {\n            permittedJumps |= 1 /* Break */ | 2 /* Continue */;\n          }\n          break;\n      }\n      switch (node2.kind) {\n        case 198 /* ThisType */:\n        case 110 /* ThisKeyword */:\n          rangeFacts |= 8 /* UsesThis */;\n          thisNode = node2;\n          break;\n        case 257 /* LabeledStatement */: {\n          const label = node2.label;\n          (seenLabels || (seenLabels = [])).push(label.escapedText);\n          forEachChild(node2, visit);\n          seenLabels.pop();\n          break;\n        }\n        case 253 /* BreakStatement */:\n        case 252 /* ContinueStatement */: {\n          const label = node2.label;\n          if (label) {\n            if (!contains(seenLabels, label.escapedText)) {\n              (errors2 || (errors2 = [])).push(createDiagnosticForNode(node2, Messages.cannotExtractRangeContainingLabeledBreakOrContinueStatementWithTargetOutsideOfTheRange));\n            }\n          } else {\n            if (!(permittedJumps & (node2.kind === 253 /* BreakStatement */ ? 1 /* Break */ : 2 /* Continue */))) {\n              (errors2 || (errors2 = [])).push(createDiagnosticForNode(node2, Messages.cannotExtractRangeContainingConditionalBreakOrContinueStatements));\n            }\n          }\n          break;\n        }\n        case 224 /* AwaitExpression */:\n          rangeFacts |= 4 /* IsAsyncFunction */;\n          break;\n        case 230 /* YieldExpression */:\n          rangeFacts |= 2 /* IsGenerator */;\n          break;\n        case 254 /* ReturnStatement */:\n          if (permittedJumps & 4 /* Return */) {\n            rangeFacts |= 1 /* HasReturn */;\n          } else {\n            (errors2 || (errors2 = [])).push(createDiagnosticForNode(node2, Messages.cannotExtractRangeContainingConditionalReturnStatement));\n          }\n          break;\n        default:\n          forEachChild(node2, visit);\n          break;\n      }\n      permittedJumps = savedPermittedJumps;\n    }\n  }\n}\nfunction getAdjustedSpanFromNodes(startNode2, endNode2, sourceFile) {\n  const start = startNode2.getStart(sourceFile);\n  let end = endNode2.getEnd();\n  if (sourceFile.text.charCodeAt(end) === 59 /* semicolon */) {\n    end++;\n  }\n  return { start, length: end - start };\n}\nfunction getStatementOrExpressionRange(node) {\n  if (isStatement(node)) {\n    return [node];\n  }\n  if (isExpressionNode(node)) {\n    return isExpressionStatement(node.parent) ? [node.parent] : node;\n  }\n  if (isStringLiteralJsxAttribute(node)) {\n    return node;\n  }\n  return void 0;\n}\nfunction isScope(node) {\n  return isArrowFunction(node) ? isFunctionBody(node.body) : isFunctionLikeDeclaration(node) || isSourceFile(node) || isModuleBlock(node) || isClassLike(node);\n}\nfunction collectEnclosingScopes(range) {\n  let current = isReadonlyArray(range.range) ? first(range.range) : range.range;\n  if (range.facts & 8 /* UsesThis */ && !(range.facts & 16 /* UsesThisInFunction */)) {\n    const containingClass = getContainingClass(current);\n    if (containingClass) {\n      const containingFunction = findAncestor(current, isFunctionLikeDeclaration);\n      return containingFunction ? [containingFunction, containingClass] : [containingClass];\n    }\n  }\n  const scopes = [];\n  while (true) {\n    current = current.parent;\n    if (current.kind === 170 /* Parameter */) {\n      current = findAncestor(current, (parent2) => isFunctionLikeDeclaration(parent2)).parent;\n    }\n    if (isScope(current)) {\n      scopes.push(current);\n      if (current.kind === 308 /* SourceFile */) {\n        return scopes;\n      }\n    }\n  }\n}\nfunction getFunctionExtractionAtIndex(targetRange, context, requestedChangesIndex) {\n  const { scopes, readsAndWrites: { target, usagesPerScope, functionErrorsPerScope, exposedVariableDeclarations } } = getPossibleExtractionsWorker(targetRange, context);\n  Debug.assert(!functionErrorsPerScope[requestedChangesIndex].length, \"The extraction went missing? How?\");\n  context.cancellationToken.throwIfCancellationRequested();\n  return extractFunctionInScope(target, scopes[requestedChangesIndex], usagesPerScope[requestedChangesIndex], exposedVariableDeclarations, targetRange, context);\n}\nfunction getConstantExtractionAtIndex(targetRange, context, requestedChangesIndex) {\n  const { scopes, readsAndWrites: { target, usagesPerScope, constantErrorsPerScope, exposedVariableDeclarations } } = getPossibleExtractionsWorker(targetRange, context);\n  Debug.assert(!constantErrorsPerScope[requestedChangesIndex].length, \"The extraction went missing? How?\");\n  Debug.assert(exposedVariableDeclarations.length === 0, \"Extract constant accepted a range containing a variable declaration?\");\n  context.cancellationToken.throwIfCancellationRequested();\n  const expression = isExpression(target) ? target : target.statements[0].expression;\n  return extractConstantInScope(expression, scopes[requestedChangesIndex], usagesPerScope[requestedChangesIndex], targetRange.facts, context);\n}\nfunction getPossibleExtractions(targetRange, context) {\n  const { scopes, affectedTextRange, readsAndWrites: { functionErrorsPerScope, constantErrorsPerScope } } = getPossibleExtractionsWorker(targetRange, context);\n  const extractions = scopes.map((scope, i) => {\n    const functionDescriptionPart = getDescriptionForFunctionInScope(scope);\n    const constantDescriptionPart = getDescriptionForConstantInScope(scope);\n    const scopeDescription = isFunctionLikeDeclaration(scope) ? getDescriptionForFunctionLikeDeclaration(scope) : isClassLike(scope) ? getDescriptionForClassLikeDeclaration(scope) : getDescriptionForModuleLikeDeclaration(scope);\n    let functionDescription;\n    let constantDescription;\n    if (scopeDescription === 1 /* Global */) {\n      functionDescription = formatStringFromArgs(getLocaleSpecificMessage(Diagnostics.Extract_to_0_in_1_scope), [functionDescriptionPart, \"global\"]);\n      constantDescription = formatStringFromArgs(getLocaleSpecificMessage(Diagnostics.Extract_to_0_in_1_scope), [constantDescriptionPart, \"global\"]);\n    } else if (scopeDescription === 0 /* Module */) {\n      functionDescription = formatStringFromArgs(getLocaleSpecificMessage(Diagnostics.Extract_to_0_in_1_scope), [functionDescriptionPart, \"module\"]);\n      constantDescription = formatStringFromArgs(getLocaleSpecificMessage(Diagnostics.Extract_to_0_in_1_scope), [constantDescriptionPart, \"module\"]);\n    } else {\n      functionDescription = formatStringFromArgs(getLocaleSpecificMessage(Diagnostics.Extract_to_0_in_1), [functionDescriptionPart, scopeDescription]);\n      constantDescription = formatStringFromArgs(getLocaleSpecificMessage(Diagnostics.Extract_to_0_in_1), [constantDescriptionPart, scopeDescription]);\n    }\n    if (i === 0 && !isClassLike(scope)) {\n      constantDescription = formatStringFromArgs(getLocaleSpecificMessage(Diagnostics.Extract_to_0_in_enclosing_scope), [constantDescriptionPart]);\n    }\n    return {\n      functionExtraction: {\n        description: functionDescription,\n        errors: functionErrorsPerScope[i]\n      },\n      constantExtraction: {\n        description: constantDescription,\n        errors: constantErrorsPerScope[i]\n      }\n    };\n  });\n  return { affectedTextRange, extractions };\n}\nfunction getPossibleExtractionsWorker(targetRange, context) {\n  const { file: sourceFile } = context;\n  const scopes = collectEnclosingScopes(targetRange);\n  const enclosingTextRange = getEnclosingTextRange(targetRange, sourceFile);\n  const readsAndWrites = collectReadsAndWrites(\n    targetRange,\n    scopes,\n    enclosingTextRange,\n    sourceFile,\n    context.program.getTypeChecker(),\n    context.cancellationToken\n  );\n  return { scopes, affectedTextRange: enclosingTextRange, readsAndWrites };\n}\nfunction getDescriptionForFunctionInScope(scope) {\n  return isFunctionLikeDeclaration(scope) ? \"inner function\" : isClassLike(scope) ? \"method\" : \"function\";\n}\nfunction getDescriptionForConstantInScope(scope) {\n  return isClassLike(scope) ? \"readonly field\" : \"constant\";\n}\nfunction getDescriptionForFunctionLikeDeclaration(scope) {\n  switch (scope.kind) {\n    case 177 /* Constructor */:\n      return \"constructor\";\n    case 219 /* FunctionExpression */:\n    case 263 /* FunctionDeclaration */:\n      return scope.name ? `function '${scope.name.text}'` : ANONYMOUS;\n    case 220 /* ArrowFunction */:\n      return \"arrow function\";\n    case 175 /* MethodDeclaration */:\n      return `method '${scope.name.getText()}'`;\n    case 178 /* GetAccessor */:\n      return `'get ${scope.name.getText()}'`;\n    case 179 /* SetAccessor */:\n      return `'set ${scope.name.getText()}'`;\n    default:\n      Debug.assertNever(scope, `Unexpected scope kind ${scope.kind}`);\n  }\n}\nfunction getDescriptionForClassLikeDeclaration(scope) {\n  return scope.kind === 264 /* ClassDeclaration */ ? scope.name ? `class '${scope.name.text}'` : \"anonymous class declaration\" : scope.name ? `class expression '${scope.name.text}'` : \"anonymous class expression\";\n}\nfunction getDescriptionForModuleLikeDeclaration(scope) {\n  return scope.kind === 269 /* ModuleBlock */ ? `namespace '${scope.parent.name.getText()}'` : scope.externalModuleIndicator ? 0 /* Module */ : 1 /* Global */;\n}\nfunction extractFunctionInScope(node, scope, { usages: usagesInScope, typeParameterUsages, substitutions }, exposedVariableDeclarations, range, context) {\n  const checker = context.program.getTypeChecker();\n  const scriptTarget = getEmitScriptTarget(context.program.getCompilerOptions());\n  const importAdder = ts_codefix_exports.createImportAdder(context.file, context.program, context.preferences, context.host);\n  const file = scope.getSourceFile();\n  const functionNameText = getUniqueName(isClassLike(scope) ? \"newMethod\" : \"newFunction\", file);\n  const isJS = isInJSFile(scope);\n  const functionName = factory.createIdentifier(functionNameText);\n  let returnType;\n  const parameters = [];\n  const callArguments = [];\n  let writes;\n  usagesInScope.forEach((usage, name) => {\n    let typeNode;\n    if (!isJS) {\n      let type = checker.getTypeOfSymbolAtLocation(usage.symbol, usage.node);\n      type = checker.getBaseTypeOfLiteralType(type);\n      typeNode = ts_codefix_exports.typeToAutoImportableTypeNode(checker, importAdder, type, scope, scriptTarget, 1 /* NoTruncation */, 8 /* AllowUnresolvedNames */);\n    }\n    const paramDecl = factory.createParameterDeclaration(\n      /*modifiers*/\n      void 0,\n      /*dotDotDotToken*/\n      void 0,\n      /*name*/\n      name,\n      /*questionToken*/\n      void 0,\n      typeNode\n    );\n    parameters.push(paramDecl);\n    if (usage.usage === 2 /* Write */) {\n      (writes || (writes = [])).push(usage);\n    }\n    callArguments.push(factory.createIdentifier(name));\n  });\n  const typeParametersAndDeclarations = arrayFrom(typeParameterUsages.values(), (type) => ({ type, declaration: getFirstDeclarationBeforePosition(type, context.startPosition) }));\n  typeParametersAndDeclarations.sort(compareTypesByDeclarationOrder);\n  const typeParameters = typeParametersAndDeclarations.length === 0 ? void 0 : mapDefined(typeParametersAndDeclarations, ({ declaration }) => declaration);\n  const callTypeArguments = typeParameters !== void 0 ? typeParameters.map((decl) => factory.createTypeReferenceNode(\n    decl.name,\n    /*typeArguments*/\n    void 0\n  )) : void 0;\n  if (isExpression(node) && !isJS) {\n    const contextualType = checker.getContextualType(node);\n    returnType = checker.typeToTypeNode(contextualType, scope, 1 /* NoTruncation */, 8 /* AllowUnresolvedNames */);\n  }\n  const { body, returnValueProperty } = transformFunctionBody(node, exposedVariableDeclarations, writes, substitutions, !!(range.facts & 1 /* HasReturn */));\n  suppressLeadingAndTrailingTrivia(body);\n  let newFunction;\n  const callThis = !!(range.facts & 16 /* UsesThisInFunction */);\n  if (isClassLike(scope)) {\n    const modifiers = isJS ? [] : [factory.createModifier(123 /* PrivateKeyword */)];\n    if (range.facts & 32 /* InStaticRegion */) {\n      modifiers.push(factory.createModifier(126 /* StaticKeyword */));\n    }\n    if (range.facts & 4 /* IsAsyncFunction */) {\n      modifiers.push(factory.createModifier(134 /* AsyncKeyword */));\n    }\n    newFunction = factory.createMethodDeclaration(\n      modifiers.length ? modifiers : void 0,\n      range.facts & 2 /* IsGenerator */ ? factory.createToken(42 /* AsteriskToken */) : void 0,\n      functionName,\n      /*questionToken*/\n      void 0,\n      typeParameters,\n      parameters,\n      returnType,\n      body\n    );\n  } else {\n    if (callThis) {\n      parameters.unshift(\n        factory.createParameterDeclaration(\n          /*modifiers*/\n          void 0,\n          /*dotDotDotToken*/\n          void 0,\n          /*name*/\n          \"this\",\n          /*questionToken*/\n          void 0,\n          checker.typeToTypeNode(\n            checker.getTypeAtLocation(range.thisNode),\n            scope,\n            1 /* NoTruncation */,\n            8 /* AllowUnresolvedNames */\n          ),\n          /*initializer*/\n          void 0\n        )\n      );\n    }\n    newFunction = factory.createFunctionDeclaration(\n      range.facts & 4 /* IsAsyncFunction */ ? [factory.createToken(134 /* AsyncKeyword */)] : void 0,\n      range.facts & 2 /* IsGenerator */ ? factory.createToken(42 /* AsteriskToken */) : void 0,\n      functionName,\n      typeParameters,\n      parameters,\n      returnType,\n      body\n    );\n  }\n  const changeTracker = ts_textChanges_exports.ChangeTracker.fromContext(context);\n  const minInsertionPos = (isReadonlyArray(range.range) ? last(range.range) : range.range).end;\n  const nodeToInsertBefore = getNodeToInsertFunctionBefore(minInsertionPos, scope);\n  if (nodeToInsertBefore) {\n    changeTracker.insertNodeBefore(\n      context.file,\n      nodeToInsertBefore,\n      newFunction,\n      /*blankLineBetween*/\n      true\n    );\n  } else {\n    changeTracker.insertNodeAtEndOfScope(context.file, scope, newFunction);\n  }\n  importAdder.writeFixes(changeTracker);\n  const newNodes = [];\n  const called = getCalledExpression(scope, range, functionNameText);\n  if (callThis) {\n    callArguments.unshift(factory.createIdentifier(\"this\"));\n  }\n  let call = factory.createCallExpression(\n    callThis ? factory.createPropertyAccessExpression(\n      called,\n      \"call\"\n    ) : called,\n    callTypeArguments,\n    // Note that no attempt is made to take advantage of type argument inference\n    callArguments\n  );\n  if (range.facts & 2 /* IsGenerator */) {\n    call = factory.createYieldExpression(factory.createToken(42 /* AsteriskToken */), call);\n  }\n  if (range.facts & 4 /* IsAsyncFunction */) {\n    call = factory.createAwaitExpression(call);\n  }\n  if (isInJSXContent(node)) {\n    call = factory.createJsxExpression(\n      /*dotDotDotToken*/\n      void 0,\n      call\n    );\n  }\n  if (exposedVariableDeclarations.length && !writes) {\n    Debug.assert(!returnValueProperty, \"Expected no returnValueProperty\");\n    Debug.assert(!(range.facts & 1 /* HasReturn */), \"Expected RangeFacts.HasReturn flag to be unset\");\n    if (exposedVariableDeclarations.length === 1) {\n      const variableDeclaration = exposedVariableDeclarations[0];\n      newNodes.push(factory.createVariableStatement(\n        /*modifiers*/\n        void 0,\n        factory.createVariableDeclarationList(\n          [factory.createVariableDeclaration(\n            getSynthesizedDeepClone(variableDeclaration.name),\n            /*exclamationToken*/\n            void 0,\n            /*type*/\n            getSynthesizedDeepClone(variableDeclaration.type),\n            /*initializer*/\n            call\n          )],\n          variableDeclaration.parent.flags\n        )\n      ));\n    } else {\n      const bindingElements = [];\n      const typeElements = [];\n      let commonNodeFlags = exposedVariableDeclarations[0].parent.flags;\n      let sawExplicitType = false;\n      for (const variableDeclaration of exposedVariableDeclarations) {\n        bindingElements.push(factory.createBindingElement(\n          /*dotDotDotToken*/\n          void 0,\n          /*propertyName*/\n          void 0,\n          /*name*/\n          getSynthesizedDeepClone(variableDeclaration.name)\n        ));\n        const variableType = checker.typeToTypeNode(\n          checker.getBaseTypeOfLiteralType(checker.getTypeAtLocation(variableDeclaration)),\n          scope,\n          1 /* NoTruncation */,\n          8 /* AllowUnresolvedNames */\n        );\n        typeElements.push(factory.createPropertySignature(\n          /*modifiers*/\n          void 0,\n          /*name*/\n          variableDeclaration.symbol.name,\n          /*questionToken*/\n          void 0,\n          /*type*/\n          variableType\n        ));\n        sawExplicitType = sawExplicitType || variableDeclaration.type !== void 0;\n        commonNodeFlags = commonNodeFlags & variableDeclaration.parent.flags;\n      }\n      const typeLiteral = sawExplicitType ? factory.createTypeLiteralNode(typeElements) : void 0;\n      if (typeLiteral) {\n        setEmitFlags(typeLiteral, 1 /* SingleLine */);\n      }\n      newNodes.push(factory.createVariableStatement(\n        /*modifiers*/\n        void 0,\n        factory.createVariableDeclarationList(\n          [factory.createVariableDeclaration(\n            factory.createObjectBindingPattern(bindingElements),\n            /*exclamationToken*/\n            void 0,\n            /*type*/\n            typeLiteral,\n            /*initializer*/\n            call\n          )],\n          commonNodeFlags\n        )\n      ));\n    }\n  } else if (exposedVariableDeclarations.length || writes) {\n    if (exposedVariableDeclarations.length) {\n      for (const variableDeclaration of exposedVariableDeclarations) {\n        let flags = variableDeclaration.parent.flags;\n        if (flags & 2 /* Const */) {\n          flags = flags & ~2 /* Const */ | 1 /* Let */;\n        }\n        newNodes.push(factory.createVariableStatement(\n          /*modifiers*/\n          void 0,\n          factory.createVariableDeclarationList(\n            [factory.createVariableDeclaration(\n              variableDeclaration.symbol.name,\n              /*exclamationToken*/\n              void 0,\n              getTypeDeepCloneUnionUndefined(variableDeclaration.type)\n            )],\n            flags\n          )\n        ));\n      }\n    }\n    if (returnValueProperty) {\n      newNodes.push(factory.createVariableStatement(\n        /*modifiers*/\n        void 0,\n        factory.createVariableDeclarationList(\n          [factory.createVariableDeclaration(\n            returnValueProperty,\n            /*exclamationToken*/\n            void 0,\n            getTypeDeepCloneUnionUndefined(returnType)\n          )],\n          1 /* Let */\n        )\n      ));\n    }\n    const assignments = getPropertyAssignmentsForWritesAndVariableDeclarations(exposedVariableDeclarations, writes);\n    if (returnValueProperty) {\n      assignments.unshift(factory.createShorthandPropertyAssignment(returnValueProperty));\n    }\n    if (assignments.length === 1) {\n      Debug.assert(!returnValueProperty, \"Shouldn't have returnValueProperty here\");\n      newNodes.push(factory.createExpressionStatement(factory.createAssignment(assignments[0].name, call)));\n      if (range.facts & 1 /* HasReturn */) {\n        newNodes.push(factory.createReturnStatement());\n      }\n    } else {\n      newNodes.push(factory.createExpressionStatement(factory.createAssignment(factory.createObjectLiteralExpression(assignments), call)));\n      if (returnValueProperty) {\n        newNodes.push(factory.createReturnStatement(factory.createIdentifier(returnValueProperty)));\n      }\n    }\n  } else {\n    if (range.facts & 1 /* HasReturn */) {\n      newNodes.push(factory.createReturnStatement(call));\n    } else if (isReadonlyArray(range.range)) {\n      newNodes.push(factory.createExpressionStatement(call));\n    } else {\n      newNodes.push(call);\n    }\n  }\n  if (isReadonlyArray(range.range)) {\n    changeTracker.replaceNodeRangeWithNodes(context.file, first(range.range), last(range.range), newNodes);\n  } else {\n    changeTracker.replaceNodeWithNodes(context.file, range.range, newNodes);\n  }\n  const edits = changeTracker.getChanges();\n  const renameRange = isReadonlyArray(range.range) ? first(range.range) : range.range;\n  const renameFilename = renameRange.getSourceFile().fileName;\n  const renameLocation = getRenameLocation(\n    edits,\n    renameFilename,\n    functionNameText,\n    /*preferLastLocation*/\n    false\n  );\n  return { renameFilename, renameLocation, edits };\n  function getTypeDeepCloneUnionUndefined(typeNode) {\n    if (typeNode === void 0) {\n      return void 0;\n    }\n    const clone2 = getSynthesizedDeepClone(typeNode);\n    let withoutParens = clone2;\n    while (isParenthesizedTypeNode(withoutParens)) {\n      withoutParens = withoutParens.type;\n    }\n    return isUnionTypeNode(withoutParens) && find(withoutParens.types, (t) => t.kind === 157 /* UndefinedKeyword */) ? clone2 : factory.createUnionTypeNode([clone2, factory.createKeywordTypeNode(157 /* UndefinedKeyword */)]);\n  }\n}\nfunction extractConstantInScope(node, scope, { substitutions }, rangeFacts, context) {\n  const checker = context.program.getTypeChecker();\n  const file = scope.getSourceFile();\n  const localNameText = getIdentifierForNode(node, scope, checker, file);\n  const isJS = isInJSFile(scope);\n  let variableType = isJS || !checker.isContextSensitive(node) ? void 0 : checker.typeToTypeNode(checker.getContextualType(node), scope, 1 /* NoTruncation */, 8 /* AllowUnresolvedNames */);\n  let initializer = transformConstantInitializer(skipParentheses(node), substitutions);\n  ({ variableType, initializer } = transformFunctionInitializerAndType(variableType, initializer));\n  suppressLeadingAndTrailingTrivia(initializer);\n  const changeTracker = ts_textChanges_exports.ChangeTracker.fromContext(context);\n  if (isClassLike(scope)) {\n    Debug.assert(!isJS, \"Cannot extract to a JS class\");\n    const modifiers = [];\n    modifiers.push(factory.createModifier(123 /* PrivateKeyword */));\n    if (rangeFacts & 32 /* InStaticRegion */) {\n      modifiers.push(factory.createModifier(126 /* StaticKeyword */));\n    }\n    modifiers.push(factory.createModifier(148 /* ReadonlyKeyword */));\n    const newVariable = factory.createPropertyDeclaration(\n      modifiers,\n      localNameText,\n      /*questionOrExclamationToken*/\n      void 0,\n      variableType,\n      initializer\n    );\n    let localReference = factory.createPropertyAccessExpression(\n      rangeFacts & 32 /* InStaticRegion */ ? factory.createIdentifier(scope.name.getText()) : factory.createThis(),\n      factory.createIdentifier(localNameText)\n    );\n    if (isInJSXContent(node)) {\n      localReference = factory.createJsxExpression(\n        /*dotDotDotToken*/\n        void 0,\n        localReference\n      );\n    }\n    const maxInsertionPos = node.pos;\n    const nodeToInsertBefore = getNodeToInsertPropertyBefore(maxInsertionPos, scope);\n    changeTracker.insertNodeBefore(\n      context.file,\n      nodeToInsertBefore,\n      newVariable,\n      /*blankLineBetween*/\n      true\n    );\n    changeTracker.replaceNode(context.file, node, localReference);\n  } else {\n    const newVariableDeclaration = factory.createVariableDeclaration(\n      localNameText,\n      /*exclamationToken*/\n      void 0,\n      variableType,\n      initializer\n    );\n    const oldVariableDeclaration = getContainingVariableDeclarationIfInList(node, scope);\n    if (oldVariableDeclaration) {\n      changeTracker.insertNodeBefore(context.file, oldVariableDeclaration, newVariableDeclaration);\n      const localReference = factory.createIdentifier(localNameText);\n      changeTracker.replaceNode(context.file, node, localReference);\n    } else if (node.parent.kind === 245 /* ExpressionStatement */ && scope === findAncestor(node, isScope)) {\n      const newVariableStatement = factory.createVariableStatement(\n        /*modifiers*/\n        void 0,\n        factory.createVariableDeclarationList([newVariableDeclaration], 2 /* Const */)\n      );\n      changeTracker.replaceNode(context.file, node.parent, newVariableStatement);\n    } else {\n      const newVariableStatement = factory.createVariableStatement(\n        /*modifiers*/\n        void 0,\n        factory.createVariableDeclarationList([newVariableDeclaration], 2 /* Const */)\n      );\n      const nodeToInsertBefore = getNodeToInsertConstantBefore(node, scope);\n      if (nodeToInsertBefore.pos === 0) {\n        changeTracker.insertNodeAtTopOfFile(\n          context.file,\n          newVariableStatement,\n          /*blankLineBetween*/\n          false\n        );\n      } else {\n        changeTracker.insertNodeBefore(\n          context.file,\n          nodeToInsertBefore,\n          newVariableStatement,\n          /*blankLineBetween*/\n          false\n        );\n      }\n      if (node.parent.kind === 245 /* ExpressionStatement */) {\n        changeTracker.delete(context.file, node.parent);\n      } else {\n        let localReference = factory.createIdentifier(localNameText);\n        if (isInJSXContent(node)) {\n          localReference = factory.createJsxExpression(\n            /*dotDotDotToken*/\n            void 0,\n            localReference\n          );\n        }\n        changeTracker.replaceNode(context.file, node, localReference);\n      }\n    }\n  }\n  const edits = changeTracker.getChanges();\n  const renameFilename = node.getSourceFile().fileName;\n  const renameLocation = getRenameLocation(\n    edits,\n    renameFilename,\n    localNameText,\n    /*preferLastLocation*/\n    true\n  );\n  return { renameFilename, renameLocation, edits };\n  function transformFunctionInitializerAndType(variableType2, initializer2) {\n    if (variableType2 === void 0) return { variableType: variableType2, initializer: initializer2 };\n    if (!isFunctionExpression(initializer2) && !isArrowFunction(initializer2) || !!initializer2.typeParameters) return { variableType: variableType2, initializer: initializer2 };\n    const functionType = checker.getTypeAtLocation(node);\n    const functionSignature = singleOrUndefined(checker.getSignaturesOfType(functionType, 0 /* Call */));\n    if (!functionSignature) return { variableType: variableType2, initializer: initializer2 };\n    if (!!functionSignature.getTypeParameters()) return { variableType: variableType2, initializer: initializer2 };\n    const parameters = [];\n    let hasAny = false;\n    for (const p of initializer2.parameters) {\n      if (p.type) {\n        parameters.push(p);\n      } else {\n        const paramType = checker.getTypeAtLocation(p);\n        if (paramType === checker.getAnyType()) hasAny = true;\n        parameters.push(factory.updateParameterDeclaration(p, p.modifiers, p.dotDotDotToken, p.name, p.questionToken, p.type || checker.typeToTypeNode(paramType, scope, 1 /* NoTruncation */, 8 /* AllowUnresolvedNames */), p.initializer));\n      }\n    }\n    if (hasAny) return { variableType: variableType2, initializer: initializer2 };\n    variableType2 = void 0;\n    if (isArrowFunction(initializer2)) {\n      initializer2 = factory.updateArrowFunction(initializer2, canHaveModifiers(node) ? getModifiers(node) : void 0, initializer2.typeParameters, parameters, initializer2.type || checker.typeToTypeNode(functionSignature.getReturnType(), scope, 1 /* NoTruncation */, 8 /* AllowUnresolvedNames */), initializer2.equalsGreaterThanToken, initializer2.body);\n    } else {\n      if (functionSignature && !!functionSignature.thisParameter) {\n        const firstParameter = firstOrUndefined(parameters);\n        if (!firstParameter || isIdentifier(firstParameter.name) && firstParameter.name.escapedText !== \"this\") {\n          const thisType = checker.getTypeOfSymbolAtLocation(functionSignature.thisParameter, node);\n          parameters.splice(\n            0,\n            0,\n            factory.createParameterDeclaration(\n              /*modifiers*/\n              void 0,\n              /*dotDotDotToken*/\n              void 0,\n              \"this\",\n              /*questionToken*/\n              void 0,\n              checker.typeToTypeNode(thisType, scope, 1 /* NoTruncation */, 8 /* AllowUnresolvedNames */)\n            )\n          );\n        }\n      }\n      initializer2 = factory.updateFunctionExpression(initializer2, canHaveModifiers(node) ? getModifiers(node) : void 0, initializer2.asteriskToken, initializer2.name, initializer2.typeParameters, parameters, initializer2.type || checker.typeToTypeNode(functionSignature.getReturnType(), scope, 1 /* NoTruncation */), initializer2.body);\n    }\n    return { variableType: variableType2, initializer: initializer2 };\n  }\n}\nfunction getContainingVariableDeclarationIfInList(node, scope) {\n  let prevNode;\n  while (node !== void 0 && node !== scope) {\n    if (isVariableDeclaration(node) && node.initializer === prevNode && isVariableDeclarationList(node.parent) && node.parent.declarations.length > 1) {\n      return node;\n    }\n    prevNode = node;\n    node = node.parent;\n  }\n}\nfunction getFirstDeclarationBeforePosition(type, position) {\n  let firstDeclaration;\n  const symbol = type.symbol;\n  if (symbol && symbol.declarations) {\n    for (const declaration of symbol.declarations) {\n      if ((firstDeclaration === void 0 || declaration.pos < firstDeclaration.pos) && declaration.pos < position) {\n        firstDeclaration = declaration;\n      }\n    }\n  }\n  return firstDeclaration;\n}\nfunction compareTypesByDeclarationOrder({ type: type1, declaration: declaration1 }, { type: type2, declaration: declaration2 }) {\n  return compareProperties(declaration1, declaration2, \"pos\", compareValues) || compareStringsCaseSensitive(\n    type1.symbol ? type1.symbol.getName() : \"\",\n    type2.symbol ? type2.symbol.getName() : \"\"\n  ) || compareValues(type1.id, type2.id);\n}\nfunction getCalledExpression(scope, range, functionNameText) {\n  const functionReference = factory.createIdentifier(functionNameText);\n  if (isClassLike(scope)) {\n    const lhs = range.facts & 32 /* InStaticRegion */ ? factory.createIdentifier(scope.name.text) : factory.createThis();\n    return factory.createPropertyAccessExpression(lhs, functionReference);\n  } else {\n    return functionReference;\n  }\n}\nfunction transformFunctionBody(body, exposedVariableDeclarations, writes, substitutions, hasReturn2) {\n  const hasWritesOrVariableDeclarations = writes !== void 0 || exposedVariableDeclarations.length > 0;\n  if (isBlock(body) && !hasWritesOrVariableDeclarations && substitutions.size === 0) {\n    return { body: factory.createBlock(\n      body.statements,\n      /*multiLine*/\n      true\n    ), returnValueProperty: void 0 };\n  }\n  let returnValueProperty;\n  let ignoreReturns = false;\n  const statements = factory.createNodeArray(isBlock(body) ? body.statements.slice(0) : [isStatement(body) ? body : factory.createReturnStatement(skipParentheses(body))]);\n  if (hasWritesOrVariableDeclarations || substitutions.size) {\n    const rewrittenStatements = visitNodes2(statements, visitor, isStatement).slice();\n    if (hasWritesOrVariableDeclarations && !hasReturn2 && isStatement(body)) {\n      const assignments = getPropertyAssignmentsForWritesAndVariableDeclarations(exposedVariableDeclarations, writes);\n      if (assignments.length === 1) {\n        rewrittenStatements.push(factory.createReturnStatement(assignments[0].name));\n      } else {\n        rewrittenStatements.push(factory.createReturnStatement(factory.createObjectLiteralExpression(assignments)));\n      }\n    }\n    return { body: factory.createBlock(\n      rewrittenStatements,\n      /*multiLine*/\n      true\n    ), returnValueProperty };\n  } else {\n    return { body: factory.createBlock(\n      statements,\n      /*multiLine*/\n      true\n    ), returnValueProperty: void 0 };\n  }\n  function visitor(node) {\n    if (!ignoreReturns && isReturnStatement(node) && hasWritesOrVariableDeclarations) {\n      const assignments = getPropertyAssignmentsForWritesAndVariableDeclarations(exposedVariableDeclarations, writes);\n      if (node.expression) {\n        if (!returnValueProperty) {\n          returnValueProperty = \"__return\";\n        }\n        assignments.unshift(factory.createPropertyAssignment(returnValueProperty, visitNode(node.expression, visitor, isExpression)));\n      }\n      if (assignments.length === 1) {\n        return factory.createReturnStatement(assignments[0].name);\n      } else {\n        return factory.createReturnStatement(factory.createObjectLiteralExpression(assignments));\n      }\n    } else {\n      const oldIgnoreReturns = ignoreReturns;\n      ignoreReturns = ignoreReturns || isFunctionLikeDeclaration(node) || isClassLike(node);\n      const substitution = substitutions.get(getNodeId(node).toString());\n      const result = substitution ? getSynthesizedDeepClone(substitution) : visitEachChild(\n        node,\n        visitor,\n        /*context*/\n        void 0\n      );\n      ignoreReturns = oldIgnoreReturns;\n      return result;\n    }\n  }\n}\nfunction transformConstantInitializer(initializer, substitutions) {\n  return substitutions.size ? visitor(initializer) : initializer;\n  function visitor(node) {\n    const substitution = substitutions.get(getNodeId(node).toString());\n    return substitution ? getSynthesizedDeepClone(substitution) : visitEachChild(\n      node,\n      visitor,\n      /*context*/\n      void 0\n    );\n  }\n}\nfunction getStatementsOrClassElements(scope) {\n  if (isFunctionLikeDeclaration(scope)) {\n    const body = scope.body;\n    if (isBlock(body)) {\n      return body.statements;\n    }\n  } else if (isModuleBlock(scope) || isSourceFile(scope)) {\n    return scope.statements;\n  } else if (isClassLike(scope)) {\n    return scope.members;\n  } else {\n    assertType(scope);\n  }\n  return emptyArray;\n}\nfunction getNodeToInsertFunctionBefore(minPos, scope) {\n  return find(getStatementsOrClassElements(scope), (child) => child.pos >= minPos && isFunctionLikeDeclaration(child) && !isConstructorDeclaration(child));\n}\nfunction getNodeToInsertPropertyBefore(maxPos, scope) {\n  const members = scope.members;\n  Debug.assert(members.length > 0, \"Found no members\");\n  let prevMember;\n  let allProperties = true;\n  for (const member of members) {\n    if (member.pos > maxPos) {\n      return prevMember || members[0];\n    }\n    if (allProperties && !isPropertyDeclaration(member)) {\n      if (prevMember !== void 0) {\n        return member;\n      }\n      allProperties = false;\n    }\n    prevMember = member;\n  }\n  if (prevMember === void 0) return Debug.fail();\n  return prevMember;\n}\nfunction getNodeToInsertConstantBefore(node, scope) {\n  Debug.assert(!isClassLike(scope));\n  let prevScope;\n  for (let curr = node; curr !== scope; curr = curr.parent) {\n    if (isScope(curr)) {\n      prevScope = curr;\n    }\n  }\n  for (let curr = (prevScope || node).parent; ; curr = curr.parent) {\n    if (isBlockLike(curr)) {\n      let prevStatement;\n      for (const statement of curr.statements) {\n        if (statement.pos > node.pos) {\n          break;\n        }\n        prevStatement = statement;\n      }\n      if (!prevStatement && isCaseClause(curr)) {\n        Debug.assert(isSwitchStatement(curr.parent.parent), \"Grandparent isn't a switch statement\");\n        return curr.parent.parent;\n      }\n      return Debug.checkDefined(prevStatement, \"prevStatement failed to get set\");\n    }\n    Debug.assert(curr !== scope, \"Didn't encounter a block-like before encountering scope\");\n  }\n}\nfunction getPropertyAssignmentsForWritesAndVariableDeclarations(exposedVariableDeclarations, writes) {\n  const variableAssignments = map(exposedVariableDeclarations, (v) => factory.createShorthandPropertyAssignment(v.symbol.name));\n  const writeAssignments = map(writes, (w) => factory.createShorthandPropertyAssignment(w.symbol.name));\n  return variableAssignments === void 0 ? writeAssignments : writeAssignments === void 0 ? variableAssignments : variableAssignments.concat(writeAssignments);\n}\nfunction isReadonlyArray(v) {\n  return isArray(v);\n}\nfunction getEnclosingTextRange(targetRange, sourceFile) {\n  return isReadonlyArray(targetRange.range) ? { pos: first(targetRange.range).getStart(sourceFile), end: last(targetRange.range).getEnd() } : targetRange.range;\n}\nfunction collectReadsAndWrites(targetRange, scopes, enclosingTextRange, sourceFile, checker, cancellationToken) {\n  const allTypeParameterUsages = /* @__PURE__ */ new Map();\n  const usagesPerScope = [];\n  const substitutionsPerScope = [];\n  const functionErrorsPerScope = [];\n  const constantErrorsPerScope = [];\n  const visibleDeclarationsInExtractedRange = [];\n  const exposedVariableSymbolSet = /* @__PURE__ */ new Map();\n  const exposedVariableDeclarations = [];\n  let firstExposedNonVariableDeclaration;\n  const expression = !isReadonlyArray(targetRange.range) ? targetRange.range : targetRange.range.length === 1 && isExpressionStatement(targetRange.range[0]) ? targetRange.range[0].expression : void 0;\n  let expressionDiagnostic;\n  if (expression === void 0) {\n    const statements = targetRange.range;\n    const start = first(statements).getStart();\n    const end = last(statements).end;\n    expressionDiagnostic = createFileDiagnostic(sourceFile, start, end - start, Messages.expressionExpected);\n  } else if (checker.getTypeAtLocation(expression).flags & (16384 /* Void */ | 131072 /* Never */)) {\n    expressionDiagnostic = createDiagnosticForNode(expression, Messages.uselessConstantType);\n  }\n  for (const scope of scopes) {\n    usagesPerScope.push({ usages: /* @__PURE__ */ new Map(), typeParameterUsages: /* @__PURE__ */ new Map(), substitutions: /* @__PURE__ */ new Map() });\n    substitutionsPerScope.push(/* @__PURE__ */ new Map());\n    functionErrorsPerScope.push([]);\n    const constantErrors = [];\n    if (expressionDiagnostic) {\n      constantErrors.push(expressionDiagnostic);\n    }\n    if (isClassLike(scope) && isInJSFile(scope)) {\n      constantErrors.push(createDiagnosticForNode(scope, Messages.cannotExtractToJSClass));\n    }\n    if (isArrowFunction(scope) && !isBlock(scope.body)) {\n      constantErrors.push(createDiagnosticForNode(scope, Messages.cannotExtractToExpressionArrowFunction));\n    }\n    constantErrorsPerScope.push(constantErrors);\n  }\n  const seenUsages = /* @__PURE__ */ new Map();\n  const target = isReadonlyArray(targetRange.range) ? factory.createBlock(targetRange.range) : targetRange.range;\n  const unmodifiedNode = isReadonlyArray(targetRange.range) ? first(targetRange.range) : targetRange.range;\n  const inGenericContext = isInGenericContext(unmodifiedNode);\n  collectUsages(target);\n  if (inGenericContext && !isReadonlyArray(targetRange.range) && !isJsxAttribute(targetRange.range)) {\n    const contextualType = checker.getContextualType(targetRange.range);\n    recordTypeParameterUsages(contextualType);\n  }\n  if (allTypeParameterUsages.size > 0) {\n    const seenTypeParameterUsages = /* @__PURE__ */ new Map();\n    let i = 0;\n    for (let curr = unmodifiedNode; curr !== void 0 && i < scopes.length; curr = curr.parent) {\n      if (curr === scopes[i]) {\n        seenTypeParameterUsages.forEach((typeParameter, id) => {\n          usagesPerScope[i].typeParameterUsages.set(id, typeParameter);\n        });\n        i++;\n      }\n      if (isDeclarationWithTypeParameters(curr)) {\n        for (const typeParameterDecl of getEffectiveTypeParameterDeclarations(curr)) {\n          const typeParameter = checker.getTypeAtLocation(typeParameterDecl);\n          if (allTypeParameterUsages.has(typeParameter.id.toString())) {\n            seenTypeParameterUsages.set(typeParameter.id.toString(), typeParameter);\n          }\n        }\n      }\n    }\n    Debug.assert(i === scopes.length, \"Should have iterated all scopes\");\n  }\n  if (visibleDeclarationsInExtractedRange.length) {\n    const containingLexicalScopeOfExtraction = isBlockScope(scopes[0], scopes[0].parent) ? scopes[0] : getEnclosingBlockScopeContainer(scopes[0]);\n    forEachChild(containingLexicalScopeOfExtraction, checkForUsedDeclarations);\n  }\n  for (let i = 0; i < scopes.length; i++) {\n    const scopeUsages = usagesPerScope[i];\n    if (i > 0 && (scopeUsages.usages.size > 0 || scopeUsages.typeParameterUsages.size > 0)) {\n      const errorNode = isReadonlyArray(targetRange.range) ? targetRange.range[0] : targetRange.range;\n      constantErrorsPerScope[i].push(createDiagnosticForNode(errorNode, Messages.cannotAccessVariablesFromNestedScopes));\n    }\n    if (targetRange.facts & 16 /* UsesThisInFunction */ && isClassLike(scopes[i])) {\n      functionErrorsPerScope[i].push(createDiagnosticForNode(targetRange.thisNode, Messages.cannotExtractFunctionsContainingThisToMethod));\n    }\n    let hasWrite = false;\n    let readonlyClassPropertyWrite;\n    usagesPerScope[i].usages.forEach((value) => {\n      if (value.usage === 2 /* Write */) {\n        hasWrite = true;\n        if (value.symbol.flags & 106500 /* ClassMember */ && value.symbol.valueDeclaration && hasEffectiveModifier(value.symbol.valueDeclaration, 8 /* Readonly */)) {\n          readonlyClassPropertyWrite = value.symbol.valueDeclaration;\n        }\n      }\n    });\n    Debug.assert(isReadonlyArray(targetRange.range) || exposedVariableDeclarations.length === 0, \"No variable declarations expected if something was extracted\");\n    if (hasWrite && !isReadonlyArray(targetRange.range)) {\n      const diag2 = createDiagnosticForNode(targetRange.range, Messages.cannotWriteInExpression);\n      functionErrorsPerScope[i].push(diag2);\n      constantErrorsPerScope[i].push(diag2);\n    } else if (readonlyClassPropertyWrite && i > 0) {\n      const diag2 = createDiagnosticForNode(readonlyClassPropertyWrite, Messages.cannotExtractReadonlyPropertyInitializerOutsideConstructor);\n      functionErrorsPerScope[i].push(diag2);\n      constantErrorsPerScope[i].push(diag2);\n    } else if (firstExposedNonVariableDeclaration) {\n      const diag2 = createDiagnosticForNode(firstExposedNonVariableDeclaration, Messages.cannotExtractExportedEntity);\n      functionErrorsPerScope[i].push(diag2);\n      constantErrorsPerScope[i].push(diag2);\n    }\n  }\n  return { target, usagesPerScope, functionErrorsPerScope, constantErrorsPerScope, exposedVariableDeclarations };\n  function isInGenericContext(node) {\n    return !!findAncestor(node, (n) => isDeclarationWithTypeParameters(n) && getEffectiveTypeParameterDeclarations(n).length !== 0);\n  }\n  function recordTypeParameterUsages(type) {\n    const symbolWalker = checker.getSymbolWalker(() => (cancellationToken.throwIfCancellationRequested(), true));\n    const { visitedTypes } = symbolWalker.walkType(type);\n    for (const visitedType of visitedTypes) {\n      if (visitedType.isTypeParameter()) {\n        allTypeParameterUsages.set(visitedType.id.toString(), visitedType);\n      }\n    }\n  }\n  function collectUsages(node, valueUsage = 1 /* Read */) {\n    if (inGenericContext) {\n      const type = checker.getTypeAtLocation(node);\n      recordTypeParameterUsages(type);\n    }\n    if (isDeclaration(node) && node.symbol) {\n      visibleDeclarationsInExtractedRange.push(node);\n    }\n    if (isAssignmentExpression(node)) {\n      collectUsages(node.left, 2 /* Write */);\n      collectUsages(node.right);\n    } else if (isUnaryExpressionWithWrite(node)) {\n      collectUsages(node.operand, 2 /* Write */);\n    } else if (isPropertyAccessExpression(node) || isElementAccessExpression(node)) {\n      forEachChild(node, collectUsages);\n    } else if (isIdentifier(node)) {\n      if (!node.parent) {\n        return;\n      }\n      if (isQualifiedName(node.parent) && node !== node.parent.left) {\n        return;\n      }\n      if (isPropertyAccessExpression(node.parent) && node !== node.parent.expression) {\n        return;\n      }\n      recordUsage(\n        node,\n        valueUsage,\n        /*isTypeNode*/\n        isPartOfTypeNode(node)\n      );\n    } else {\n      forEachChild(node, collectUsages);\n    }\n  }\n  function recordUsage(n, usage, isTypeNode2) {\n    const symbolId = recordUsagebySymbol(n, usage, isTypeNode2);\n    if (symbolId) {\n      for (let i = 0; i < scopes.length; i++) {\n        const substitution = substitutionsPerScope[i].get(symbolId);\n        if (substitution) {\n          usagesPerScope[i].substitutions.set(getNodeId(n).toString(), substitution);\n        }\n      }\n    }\n  }\n  function recordUsagebySymbol(identifier, usage, isTypeName) {\n    const symbol = getSymbolReferencedByIdentifier(identifier);\n    if (!symbol) {\n      return void 0;\n    }\n    const symbolId = getSymbolId(symbol).toString();\n    const lastUsage = seenUsages.get(symbolId);\n    if (lastUsage && lastUsage >= usage) {\n      return symbolId;\n    }\n    seenUsages.set(symbolId, usage);\n    if (lastUsage) {\n      for (const perScope of usagesPerScope) {\n        const prevEntry = perScope.usages.get(identifier.text);\n        if (prevEntry) {\n          perScope.usages.set(identifier.text, { usage, symbol, node: identifier });\n        }\n      }\n      return symbolId;\n    }\n    const decls = symbol.getDeclarations();\n    const declInFile = decls && find(decls, (d) => d.getSourceFile() === sourceFile);\n    if (!declInFile) {\n      return void 0;\n    }\n    if (rangeContainsStartEnd(enclosingTextRange, declInFile.getStart(), declInFile.end)) {\n      return void 0;\n    }\n    if (targetRange.facts & 2 /* IsGenerator */ && usage === 2 /* Write */) {\n      const diag2 = createDiagnosticForNode(identifier, Messages.cannotExtractRangeThatContainsWritesToReferencesLocatedOutsideOfTheTargetRangeInGenerators);\n      for (const errors of functionErrorsPerScope) {\n        errors.push(diag2);\n      }\n      for (const errors of constantErrorsPerScope) {\n        errors.push(diag2);\n      }\n    }\n    for (let i = 0; i < scopes.length; i++) {\n      const scope = scopes[i];\n      const resolvedSymbol = checker.resolveName(\n        symbol.name,\n        scope,\n        symbol.flags,\n        /*excludeGlobals*/\n        false\n      );\n      if (resolvedSymbol === symbol) {\n        continue;\n      }\n      if (!substitutionsPerScope[i].has(symbolId)) {\n        const substitution = tryReplaceWithQualifiedNameOrPropertyAccess(symbol.exportSymbol || symbol, scope, isTypeName);\n        if (substitution) {\n          substitutionsPerScope[i].set(symbolId, substitution);\n        } else if (isTypeName) {\n          if (!(symbol.flags & 262144 /* TypeParameter */)) {\n            const diag2 = createDiagnosticForNode(identifier, Messages.typeWillNotBeVisibleInTheNewScope);\n            functionErrorsPerScope[i].push(diag2);\n            constantErrorsPerScope[i].push(diag2);\n          }\n        } else {\n          usagesPerScope[i].usages.set(identifier.text, { usage, symbol, node: identifier });\n        }\n      }\n    }\n    return symbolId;\n  }\n  function checkForUsedDeclarations(node) {\n    if (node === targetRange.range || isReadonlyArray(targetRange.range) && targetRange.range.includes(node)) {\n      return;\n    }\n    const sym = isIdentifier(node) ? getSymbolReferencedByIdentifier(node) : checker.getSymbolAtLocation(node);\n    if (sym) {\n      const decl = find(visibleDeclarationsInExtractedRange, (d) => d.symbol === sym);\n      if (decl) {\n        if (isVariableDeclaration(decl)) {\n          const idString = decl.symbol.id.toString();\n          if (!exposedVariableSymbolSet.has(idString)) {\n            exposedVariableDeclarations.push(decl);\n            exposedVariableSymbolSet.set(idString, true);\n          }\n        } else {\n          firstExposedNonVariableDeclaration = firstExposedNonVariableDeclaration || decl;\n        }\n      }\n    }\n    forEachChild(node, checkForUsedDeclarations);\n  }\n  function getSymbolReferencedByIdentifier(identifier) {\n    return identifier.parent && isShorthandPropertyAssignment(identifier.parent) && identifier.parent.name === identifier ? checker.getShorthandAssignmentValueSymbol(identifier.parent) : checker.getSymbolAtLocation(identifier);\n  }\n  function tryReplaceWithQualifiedNameOrPropertyAccess(symbol, scopeDecl, isTypeNode2) {\n    if (!symbol) {\n      return void 0;\n    }\n    const decls = symbol.getDeclarations();\n    if (decls && decls.some((d) => d.parent === scopeDecl)) {\n      return factory.createIdentifier(symbol.name);\n    }\n    const prefix = tryReplaceWithQualifiedNameOrPropertyAccess(symbol.parent, scopeDecl, isTypeNode2);\n    if (prefix === void 0) {\n      return void 0;\n    }\n    return isTypeNode2 ? factory.createQualifiedName(prefix, factory.createIdentifier(symbol.name)) : factory.createPropertyAccessExpression(prefix, symbol.name);\n  }\n}\nfunction getExtractableParent(node) {\n  return findAncestor(node, (node2) => node2.parent && isExtractableExpression(node2) && !isBinaryExpression(node2.parent));\n}\nfunction isExtractableExpression(node) {\n  const { parent: parent2 } = node;\n  switch (parent2.kind) {\n    case 307 /* EnumMember */:\n      return false;\n  }\n  switch (node.kind) {\n    case 11 /* StringLiteral */:\n      return parent2.kind !== 273 /* ImportDeclaration */ && parent2.kind !== 277 /* ImportSpecifier */;\n    case 231 /* SpreadElement */:\n    case 207 /* ObjectBindingPattern */:\n    case 209 /* BindingElement */:\n      return false;\n    case 80 /* Identifier */:\n      return parent2.kind !== 209 /* BindingElement */ && parent2.kind !== 277 /* ImportSpecifier */ && parent2.kind !== 282 /* ExportSpecifier */;\n  }\n  return true;\n}\nfunction isInJSXContent(node) {\n  return isStringLiteralJsxAttribute(node) || (isJsxElement(node) || isJsxSelfClosingElement(node) || isJsxFragment(node)) && (isJsxElement(node.parent) || isJsxFragment(node.parent));\n}\nfunction isStringLiteralJsxAttribute(node) {\n  return isStringLiteral(node) && node.parent && isJsxAttribute(node.parent);\n}\n\n// src/services/_namespaces/ts.refactor.generateGetAccessorAndSetAccessor.ts\nvar ts_refactor_generateGetAccessorAndSetAccessor_exports = {};\n\n// src/services/refactors/generateGetAccessorAndSetAccessor.ts\nvar actionName = \"Generate 'get' and 'set' accessors\";\nvar actionDescription = getLocaleSpecificMessage(Diagnostics.Generate_get_and_set_accessors);\nvar generateGetSetAction = {\n  name: actionName,\n  description: actionDescription,\n  kind: \"refactor.rewrite.property.generateAccessors\"\n};\nregisterRefactor(actionName, {\n  kinds: [generateGetSetAction.kind],\n  getEditsForAction: function getRefactorActionsToGenerateGetAndSetAccessors(context, actionName2) {\n    if (!context.endPosition) return void 0;\n    const info = ts_codefix_exports.getAccessorConvertiblePropertyAtPosition(context.file, context.program, context.startPosition, context.endPosition);\n    Debug.assert(info && !isRefactorErrorInfo(info), \"Expected applicable refactor info\");\n    const edits = ts_codefix_exports.generateAccessorFromProperty(context.file, context.program, context.startPosition, context.endPosition, context, actionName2);\n    if (!edits) return void 0;\n    const renameFilename = context.file.fileName;\n    const nameNeedRename = info.renameAccessor ? info.accessorName : info.fieldName;\n    const renameLocationOffset = isIdentifier(nameNeedRename) ? 0 : -1;\n    const renameLocation = renameLocationOffset + getRenameLocation(\n      edits,\n      renameFilename,\n      nameNeedRename.text,\n      /*preferLastLocation*/\n      isParameter(info.declaration)\n    );\n    return { renameFilename, renameLocation, edits };\n  },\n  getAvailableActions(context) {\n    if (!context.endPosition) return emptyArray;\n    const info = ts_codefix_exports.getAccessorConvertiblePropertyAtPosition(context.file, context.program, context.startPosition, context.endPosition, context.triggerReason === \"invoked\");\n    if (!info) return emptyArray;\n    if (!isRefactorErrorInfo(info)) {\n      return [{\n        name: actionName,\n        description: actionDescription,\n        actions: [generateGetSetAction]\n      }];\n    }\n    if (context.preferences.provideRefactorNotApplicableReason) {\n      return [{\n        name: actionName,\n        description: actionDescription,\n        actions: [{ ...generateGetSetAction, notApplicableReason: info.error }]\n      }];\n    }\n    return emptyArray;\n  }\n});\n\n// src/services/_namespaces/ts.refactor.inferFunctionReturnType.ts\nvar ts_refactor_inferFunctionReturnType_exports = {};\n\n// src/services/refactors/inferFunctionReturnType.ts\nvar refactorName13 = \"Infer function return type\";\nvar refactorDescription7 = getLocaleSpecificMessage(Diagnostics.Infer_function_return_type);\nvar inferReturnTypeAction = {\n  name: refactorName13,\n  description: refactorDescription7,\n  kind: \"refactor.rewrite.function.returnType\"\n};\nregisterRefactor(refactorName13, {\n  kinds: [inferReturnTypeAction.kind],\n  getEditsForAction: getRefactorEditsToInferReturnType,\n  getAvailableActions: getRefactorActionsToInferReturnType\n});\nfunction getRefactorEditsToInferReturnType(context) {\n  const info = getInfo4(context);\n  if (info && !isRefactorErrorInfo(info)) {\n    const edits = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange7(context.file, t, info.declaration, info.returnTypeNode));\n    return { renameFilename: void 0, renameLocation: void 0, edits };\n  }\n  return void 0;\n}\nfunction getRefactorActionsToInferReturnType(context) {\n  const info = getInfo4(context);\n  if (!info) return emptyArray;\n  if (!isRefactorErrorInfo(info)) {\n    return [{\n      name: refactorName13,\n      description: refactorDescription7,\n      actions: [inferReturnTypeAction]\n    }];\n  }\n  if (context.preferences.provideRefactorNotApplicableReason) {\n    return [{\n      name: refactorName13,\n      description: refactorDescription7,\n      actions: [{ ...inferReturnTypeAction, notApplicableReason: info.error }]\n    }];\n  }\n  return emptyArray;\n}\nfunction doChange7(sourceFile, changes, declaration, typeNode) {\n  const closeParen = findChildOfKind(declaration, 22 /* CloseParenToken */, sourceFile);\n  const needParens = isArrowFunction(declaration) && closeParen === void 0;\n  const endNode2 = needParens ? first(declaration.parameters) : closeParen;\n  if (endNode2) {\n    if (needParens) {\n      changes.insertNodeBefore(sourceFile, endNode2, factory.createToken(21 /* OpenParenToken */));\n      changes.insertNodeAfter(sourceFile, endNode2, factory.createToken(22 /* CloseParenToken */));\n    }\n    changes.insertNodeAt(sourceFile, endNode2.end, typeNode, { prefix: \": \" });\n  }\n}\nfunction getInfo4(context) {\n  if (isInJSFile(context.file) || !refactorKindBeginsWith(inferReturnTypeAction.kind, context.kind)) return;\n  const token = getTouchingPropertyName(context.file, context.startPosition);\n  const declaration = findAncestor(token, (n) => isBlock(n) || n.parent && isArrowFunction(n.parent) && (n.kind === 39 /* EqualsGreaterThanToken */ || n.parent.body === n) ? \"quit\" : isConvertibleDeclaration(n));\n  if (!declaration || !declaration.body || declaration.type) {\n    return { error: getLocaleSpecificMessage(Diagnostics.Return_type_must_be_inferred_from_a_function) };\n  }\n  const typeChecker = context.program.getTypeChecker();\n  let returnType;\n  if (typeChecker.isImplementationOfOverload(declaration)) {\n    const signatures = typeChecker.getTypeAtLocation(declaration).getCallSignatures();\n    if (signatures.length > 1) {\n      returnType = typeChecker.getUnionType(mapDefined(signatures, (s) => s.getReturnType()));\n    }\n  }\n  if (!returnType) {\n    const signature = typeChecker.getSignatureFromDeclaration(declaration);\n    if (signature) {\n      const typePredicate = typeChecker.getTypePredicateOfSignature(signature);\n      if (typePredicate && typePredicate.type) {\n        const typePredicateTypeNode = typeChecker.typePredicateToTypePredicateNode(typePredicate, declaration, 1 /* NoTruncation */, 8 /* AllowUnresolvedNames */);\n        if (typePredicateTypeNode) {\n          return { declaration, returnTypeNode: typePredicateTypeNode };\n        }\n      } else {\n        returnType = typeChecker.getReturnTypeOfSignature(signature);\n      }\n    }\n  }\n  if (!returnType) {\n    return { error: getLocaleSpecificMessage(Diagnostics.Could_not_determine_function_return_type) };\n  }\n  const returnTypeNode = typeChecker.typeToTypeNode(returnType, declaration, 1 /* NoTruncation */, 8 /* AllowUnresolvedNames */);\n  if (returnTypeNode) {\n    return { declaration, returnTypeNode };\n  }\n}\nfunction isConvertibleDeclaration(node) {\n  switch (node.kind) {\n    case 263 /* FunctionDeclaration */:\n    case 219 /* FunctionExpression */:\n    case 220 /* ArrowFunction */:\n    case 175 /* MethodDeclaration */:\n      return true;\n    default:\n      return false;\n  }\n}\n\n// src/services/classifier2020.ts\nvar TokenEncodingConsts = /* @__PURE__ */ ((TokenEncodingConsts2) => {\n  TokenEncodingConsts2[TokenEncodingConsts2[\"typeOffset\"] = 8] = \"typeOffset\";\n  TokenEncodingConsts2[TokenEncodingConsts2[\"modifierMask\"] = 255] = \"modifierMask\";\n  return TokenEncodingConsts2;\n})(TokenEncodingConsts || {});\nvar TokenType = /* @__PURE__ */ ((TokenType2) => {\n  TokenType2[TokenType2[\"class\"] = 0] = \"class\";\n  TokenType2[TokenType2[\"enum\"] = 1] = \"enum\";\n  TokenType2[TokenType2[\"interface\"] = 2] = \"interface\";\n  TokenType2[TokenType2[\"namespace\"] = 3] = \"namespace\";\n  TokenType2[TokenType2[\"typeParameter\"] = 4] = \"typeParameter\";\n  TokenType2[TokenType2[\"type\"] = 5] = \"type\";\n  TokenType2[TokenType2[\"parameter\"] = 6] = \"parameter\";\n  TokenType2[TokenType2[\"variable\"] = 7] = \"variable\";\n  TokenType2[TokenType2[\"enumMember\"] = 8] = \"enumMember\";\n  TokenType2[TokenType2[\"property\"] = 9] = \"property\";\n  TokenType2[TokenType2[\"function\"] = 10] = \"function\";\n  TokenType2[TokenType2[\"member\"] = 11] = \"member\";\n  return TokenType2;\n})(TokenType || {});\nvar TokenModifier = /* @__PURE__ */ ((TokenModifier2) => {\n  TokenModifier2[TokenModifier2[\"declaration\"] = 0] = \"declaration\";\n  TokenModifier2[TokenModifier2[\"static\"] = 1] = \"static\";\n  TokenModifier2[TokenModifier2[\"async\"] = 2] = \"async\";\n  TokenModifier2[TokenModifier2[\"readonly\"] = 3] = \"readonly\";\n  TokenModifier2[TokenModifier2[\"defaultLibrary\"] = 4] = \"defaultLibrary\";\n  TokenModifier2[TokenModifier2[\"local\"] = 5] = \"local\";\n  return TokenModifier2;\n})(TokenModifier || {});\nfunction getSemanticClassifications2(program, cancellationToken, sourceFile, span) {\n  const classifications = getEncodedSemanticClassifications2(program, cancellationToken, sourceFile, span);\n  Debug.assert(classifications.spans.length % 3 === 0);\n  const dense = classifications.spans;\n  const result = [];\n  for (let i = 0; i < dense.length; i += 3) {\n    result.push({\n      textSpan: createTextSpan(dense[i], dense[i + 1]),\n      classificationType: dense[i + 2]\n    });\n  }\n  return result;\n}\nfunction getEncodedSemanticClassifications2(program, cancellationToken, sourceFile, span) {\n  return {\n    spans: getSemanticTokens(program, sourceFile, span, cancellationToken),\n    endOfLineState: 0 /* None */\n  };\n}\nfunction getSemanticTokens(program, sourceFile, span, cancellationToken) {\n  const resultTokens = [];\n  const collector = (node, typeIdx, modifierSet) => {\n    resultTokens.push(node.getStart(sourceFile), node.getWidth(sourceFile), (typeIdx + 1 << 8 /* typeOffset */) + modifierSet);\n  };\n  if (program && sourceFile) {\n    collectTokens(program, sourceFile, span, collector, cancellationToken);\n  }\n  return resultTokens;\n}\nfunction collectTokens(program, sourceFile, span, collector, cancellationToken) {\n  const typeChecker = program.getTypeChecker();\n  let inJSXElement = false;\n  function visit(node) {\n    switch (node.kind) {\n      case 268 /* ModuleDeclaration */:\n      case 264 /* ClassDeclaration */:\n      case 265 /* InterfaceDeclaration */:\n      case 263 /* FunctionDeclaration */:\n      case 232 /* ClassExpression */:\n      case 219 /* FunctionExpression */:\n      case 220 /* ArrowFunction */:\n        cancellationToken.throwIfCancellationRequested();\n    }\n    if (!node || !textSpanIntersectsWith(span, node.pos, node.getFullWidth()) || node.getFullWidth() === 0) {\n      return;\n    }\n    const prevInJSXElement = inJSXElement;\n    if (isJsxElement(node) || isJsxSelfClosingElement(node)) {\n      inJSXElement = true;\n    }\n    if (isJsxExpression(node)) {\n      inJSXElement = false;\n    }\n    if (isIdentifier(node) && !inJSXElement && !inImportClause(node) && !isInfinityOrNaNString(node.escapedText)) {\n      let symbol = typeChecker.getSymbolAtLocation(node);\n      if (symbol) {\n        if (symbol.flags & 2097152 /* Alias */) {\n          symbol = typeChecker.getAliasedSymbol(symbol);\n        }\n        let typeIdx = classifySymbol2(symbol, getMeaningFromLocation(node));\n        if (typeIdx !== void 0) {\n          let modifierSet = 0;\n          if (node.parent) {\n            const parentIsDeclaration = isBindingElement(node.parent) || tokenFromDeclarationMapping.get(node.parent.kind) === typeIdx;\n            if (parentIsDeclaration && node.parent.name === node) {\n              modifierSet = 1 << 0 /* declaration */;\n            }\n          }\n          if (typeIdx === 6 /* parameter */ && isRightSideOfQualifiedNameOrPropertyAccess2(node)) {\n            typeIdx = 9 /* property */;\n          }\n          typeIdx = reclassifyByType(typeChecker, node, typeIdx);\n          const decl = symbol.valueDeclaration;\n          if (decl) {\n            const modifiers = getCombinedModifierFlags(decl);\n            const nodeFlags = getCombinedNodeFlags(decl);\n            if (modifiers & 256 /* Static */) {\n              modifierSet |= 1 << 1 /* static */;\n            }\n            if (modifiers & 1024 /* Async */) {\n              modifierSet |= 1 << 2 /* async */;\n            }\n            if (typeIdx !== 0 /* class */ && typeIdx !== 2 /* interface */) {\n              if (modifiers & 8 /* Readonly */ || nodeFlags & 2 /* Const */ || symbol.getFlags() & 8 /* EnumMember */) {\n                modifierSet |= 1 << 3 /* readonly */;\n              }\n            }\n            if ((typeIdx === 7 /* variable */ || typeIdx === 10 /* function */) && isLocalDeclaration(decl, sourceFile)) {\n              modifierSet |= 1 << 5 /* local */;\n            }\n            if (program.isSourceFileDefaultLibrary(decl.getSourceFile())) {\n              modifierSet |= 1 << 4 /* defaultLibrary */;\n            }\n          } else if (symbol.declarations && symbol.declarations.some((d) => program.isSourceFileDefaultLibrary(d.getSourceFile()))) {\n            modifierSet |= 1 << 4 /* defaultLibrary */;\n          }\n          collector(node, typeIdx, modifierSet);\n        }\n      }\n    }\n    forEachChild(node, visit);\n    inJSXElement = prevInJSXElement;\n  }\n  visit(sourceFile);\n}\nfunction classifySymbol2(symbol, meaning) {\n  const flags = symbol.getFlags();\n  if (flags & 32 /* Class */) {\n    return 0 /* class */;\n  } else if (flags & 384 /* Enum */) {\n    return 1 /* enum */;\n  } else if (flags & 524288 /* TypeAlias */) {\n    return 5 /* type */;\n  } else if (flags & 64 /* Interface */) {\n    if (meaning & 2 /* Type */) {\n      return 2 /* interface */;\n    }\n  } else if (flags & 262144 /* TypeParameter */) {\n    return 4 /* typeParameter */;\n  }\n  let decl = symbol.valueDeclaration || symbol.declarations && symbol.declarations[0];\n  if (decl && isBindingElement(decl)) {\n    decl = getDeclarationForBindingElement(decl);\n  }\n  return decl && tokenFromDeclarationMapping.get(decl.kind);\n}\nfunction reclassifyByType(typeChecker, node, typeIdx) {\n  if (typeIdx === 7 /* variable */ || typeIdx === 9 /* property */ || typeIdx === 6 /* parameter */) {\n    const type = typeChecker.getTypeAtLocation(node);\n    if (type) {\n      const test = (condition) => {\n        return condition(type) || type.isUnion() && type.types.some(condition);\n      };\n      if (typeIdx !== 6 /* parameter */ && test((t) => t.getConstructSignatures().length > 0)) {\n        return 0 /* class */;\n      }\n      if (test((t) => t.getCallSignatures().length > 0) && !test((t) => t.getProperties().length > 0) || isExpressionInCallExpression(node)) {\n        return typeIdx === 9 /* property */ ? 11 /* member */ : 10 /* function */;\n      }\n    }\n  }\n  return typeIdx;\n}\nfunction isLocalDeclaration(decl, sourceFile) {\n  if (isBindingElement(decl)) {\n    decl = getDeclarationForBindingElement(decl);\n  }\n  if (isVariableDeclaration(decl)) {\n    return (!isSourceFile(decl.parent.parent.parent) || isCatchClause(decl.parent)) && decl.getSourceFile() === sourceFile;\n  } else if (isFunctionDeclaration(decl)) {\n    return !isSourceFile(decl.parent) && decl.getSourceFile() === sourceFile;\n  }\n  return false;\n}\nfunction getDeclarationForBindingElement(element) {\n  while (true) {\n    if (isBindingElement(element.parent.parent)) {\n      element = element.parent.parent;\n    } else {\n      return element.parent.parent;\n    }\n  }\n}\nfunction inImportClause(node) {\n  const parent2 = node.parent;\n  return parent2 && (isImportClause(parent2) || isImportSpecifier(parent2) || isNamespaceImport(parent2));\n}\nfunction isExpressionInCallExpression(node) {\n  while (isRightSideOfQualifiedNameOrPropertyAccess2(node)) {\n    node = node.parent;\n  }\n  return isCallExpression(node.parent) && node.parent.expression === node;\n}\nfunction isRightSideOfQualifiedNameOrPropertyAccess2(node) {\n  return isQualifiedName(node.parent) && node.parent.right === node || isPropertyAccessExpression(node.parent) && node.parent.name === node;\n}\nvar tokenFromDeclarationMapping = /* @__PURE__ */ new Map([\n  [261 /* VariableDeclaration */, 7 /* variable */],\n  [170 /* Parameter */, 6 /* parameter */],\n  [173 /* PropertyDeclaration */, 9 /* property */],\n  [268 /* ModuleDeclaration */, 3 /* namespace */],\n  [267 /* EnumDeclaration */, 1 /* enum */],\n  [307 /* EnumMember */, 8 /* enumMember */],\n  [264 /* ClassDeclaration */, 0 /* class */],\n  [175 /* MethodDeclaration */, 11 /* member */],\n  [263 /* FunctionDeclaration */, 10 /* function */],\n  [219 /* FunctionExpression */, 10 /* function */],\n  [174 /* MethodSignature */, 11 /* member */],\n  [178 /* GetAccessor */, 9 /* property */],\n  [179 /* SetAccessor */, 9 /* property */],\n  [172 /* PropertySignature */, 9 /* property */],\n  [265 /* InterfaceDeclaration */, 2 /* interface */],\n  [266 /* TypeAliasDeclaration */, 5 /* type */],\n  [169 /* TypeParameter */, 4 /* typeParameter */],\n  [304 /* PropertyAssignment */, 9 /* property */],\n  [305 /* ShorthandPropertyAssignment */, 9 /* property */]\n]);\n\n// src/services/services.ts\nvar servicesVersion = \"0.8\";\nfunction createNode(kind, pos, end, parent2) {\n  const node = isNodeKind(kind) ? new NodeObject(kind, pos, end) : kind === 80 /* Identifier */ ? new IdentifierObject(80 /* Identifier */, pos, end) : kind === 81 /* PrivateIdentifier */ ? new PrivateIdentifierObject(81 /* PrivateIdentifier */, pos, end) : new TokenObject(kind, pos, end);\n  node.parent = parent2;\n  node.flags = parent2.flags & 101441536 /* ContextFlags */;\n  return node;\n}\nvar NodeObject = class {\n  constructor(kind, pos, end) {\n    this.pos = pos;\n    this.end = end;\n    this.kind = kind;\n    this.id = 0;\n    this.flags = 0 /* None */;\n    this.modifierFlagsCache = 0 /* None */;\n    this.transformFlags = 0 /* None */;\n    this.parent = void 0;\n    this.original = void 0;\n    this.emitNode = void 0;\n  }\n  assertHasRealPosition(message) {\n    Debug.assert(!positionIsSynthesized(this.pos) && !positionIsSynthesized(this.end), message || \"Node must have a real position for this operation\");\n  }\n  getSourceFile() {\n    return getSourceFileOfNode(this);\n  }\n  getStart(sourceFile, includeJsDocComment) {\n    this.assertHasRealPosition();\n    return getTokenPosOfNode(this, sourceFile, includeJsDocComment);\n  }\n  getFullStart() {\n    this.assertHasRealPosition();\n    return this.pos;\n  }\n  getEnd() {\n    this.assertHasRealPosition();\n    return this.end;\n  }\n  getWidth(sourceFile) {\n    this.assertHasRealPosition();\n    return this.getEnd() - this.getStart(sourceFile);\n  }\n  getFullWidth() {\n    this.assertHasRealPosition();\n    return this.end - this.pos;\n  }\n  getLeadingTriviaWidth(sourceFile) {\n    this.assertHasRealPosition();\n    return this.getStart(sourceFile) - this.pos;\n  }\n  getFullText(sourceFile) {\n    this.assertHasRealPosition();\n    return (sourceFile || this.getSourceFile()).text.substring(this.pos, this.end);\n  }\n  getText(sourceFile) {\n    this.assertHasRealPosition();\n    if (!sourceFile) {\n      sourceFile = this.getSourceFile();\n    }\n    return sourceFile.text.substring(this.getStart(sourceFile), this.getEnd());\n  }\n  getChildCount(sourceFile) {\n    return this.getChildren(sourceFile).length;\n  }\n  getChildAt(index, sourceFile) {\n    return this.getChildren(sourceFile)[index];\n  }\n  getChildren(sourceFile = getSourceFileOfNode(this)) {\n    this.assertHasRealPosition(\"Node without a real position cannot be scanned and thus has no token nodes - use forEachChild and collect the result if that's fine\");\n    return getNodeChildren(this, sourceFile) ?? setNodeChildren(this, sourceFile, createChildren(this, sourceFile));\n  }\n  getFirstToken(sourceFile) {\n    this.assertHasRealPosition();\n    const children = this.getChildren(sourceFile);\n    if (!children.length) {\n      return void 0;\n    }\n    const child = find(children, (kid) => kid.kind < 310 /* FirstJSDocNode */ || kid.kind > 352 /* LastJSDocNode */);\n    return child.kind < 167 /* FirstNode */ ? child : child.getFirstToken(sourceFile);\n  }\n  getLastToken(sourceFile) {\n    this.assertHasRealPosition();\n    const children = this.getChildren(sourceFile);\n    const child = lastOrUndefined(children);\n    if (!child) {\n      return void 0;\n    }\n    return child.kind < 167 /* FirstNode */ ? child : child.getLastToken(sourceFile);\n  }\n  forEachChild(cbNode, cbNodeArray) {\n    return forEachChild(this, cbNode, cbNodeArray);\n  }\n};\nfunction createChildren(node, sourceFile) {\n  const children = [];\n  if (isJSDocCommentContainingNode(node)) {\n    node.forEachChild((child) => {\n      children.push(child);\n    });\n    return children;\n  }\n  scanner.setText((sourceFile || node.getSourceFile()).text);\n  let pos = node.pos;\n  const processNode = (child) => {\n    addSyntheticNodes(children, pos, child.pos, node);\n    children.push(child);\n    pos = child.end;\n  };\n  const processNodes = (nodes) => {\n    addSyntheticNodes(children, pos, nodes.pos, node);\n    children.push(createSyntaxList(nodes, node));\n    pos = nodes.end;\n  };\n  forEach(node.jsDoc, processNode);\n  pos = node.pos;\n  node.forEachChild(processNode, processNodes);\n  addSyntheticNodes(children, pos, node.end, node);\n  scanner.setText(void 0);\n  return children;\n}\nfunction addSyntheticNodes(nodes, pos, end, parent2) {\n  scanner.resetTokenState(pos);\n  while (pos < end) {\n    const token = scanner.scan();\n    const textPos = scanner.getTokenEnd();\n    if (textPos <= end) {\n      if (token === 80 /* Identifier */) {\n        if (hasTabstop(parent2)) {\n          continue;\n        }\n        Debug.fail(`Did not expect ${Debug.formatSyntaxKind(parent2.kind)} to have an Identifier in its trivia`);\n      }\n      nodes.push(createNode(token, pos, textPos, parent2));\n    }\n    pos = textPos;\n    if (token === 1 /* EndOfFileToken */) {\n      break;\n    }\n  }\n}\nfunction createSyntaxList(nodes, parent2) {\n  const list = createNode(353 /* SyntaxList */, nodes.pos, nodes.end, parent2);\n  const children = [];\n  let pos = nodes.pos;\n  for (const node of nodes) {\n    addSyntheticNodes(children, pos, node.pos, parent2);\n    children.push(node);\n    pos = node.end;\n  }\n  addSyntheticNodes(children, pos, nodes.end, parent2);\n  list._children = children;\n  return list;\n}\nvar TokenOrIdentifierObject = class {\n  constructor(kind, pos, end) {\n    this.pos = pos;\n    this.end = end;\n    this.kind = kind;\n    this.id = 0;\n    this.flags = 0 /* None */;\n    this.transformFlags = 0 /* None */;\n    this.parent = void 0;\n    this.emitNode = void 0;\n  }\n  getSourceFile() {\n    return getSourceFileOfNode(this);\n  }\n  getStart(sourceFile, includeJsDocComment) {\n    return getTokenPosOfNode(this, sourceFile, includeJsDocComment);\n  }\n  getFullStart() {\n    return this.pos;\n  }\n  getEnd() {\n    return this.end;\n  }\n  getWidth(sourceFile) {\n    return this.getEnd() - this.getStart(sourceFile);\n  }\n  getFullWidth() {\n    return this.end - this.pos;\n  }\n  getLeadingTriviaWidth(sourceFile) {\n    return this.getStart(sourceFile) - this.pos;\n  }\n  getFullText(sourceFile) {\n    return (sourceFile || this.getSourceFile()).text.substring(this.pos, this.end);\n  }\n  getText(sourceFile) {\n    if (!sourceFile) {\n      sourceFile = this.getSourceFile();\n    }\n    return sourceFile.text.substring(this.getStart(sourceFile), this.getEnd());\n  }\n  getChildCount() {\n    return this.getChildren().length;\n  }\n  getChildAt(index) {\n    return this.getChildren()[index];\n  }\n  getChildren() {\n    return this.kind === 1 /* EndOfFileToken */ ? this.jsDoc || emptyArray : emptyArray;\n  }\n  getFirstToken() {\n    return void 0;\n  }\n  getLastToken() {\n    return void 0;\n  }\n  forEachChild() {\n    return void 0;\n  }\n};\nvar SymbolObject = class {\n  constructor(flags, name) {\n    this.flags = flags;\n    this.escapedName = name;\n    this.declarations = void 0;\n    this.valueDeclaration = void 0;\n    this.id = 0;\n    this.mergeId = 0;\n    this.parent = void 0;\n    this.members = void 0;\n    this.exports = void 0;\n    this.exportSymbol = void 0;\n    this.constEnumOnlyModule = void 0;\n    this.isReferenced = void 0;\n    this.lastAssignmentPos = void 0;\n    this.links = void 0;\n  }\n  getFlags() {\n    return this.flags;\n  }\n  get name() {\n    return symbolName(this);\n  }\n  getEscapedName() {\n    return this.escapedName;\n  }\n  getName() {\n    return this.name;\n  }\n  getDeclarations() {\n    return this.declarations;\n  }\n  getDocumentationComment(checker) {\n    if (!this.documentationComment) {\n      this.documentationComment = emptyArray;\n      if (!this.declarations && isTransientSymbol(this) && this.links.target && isTransientSymbol(this.links.target) && this.links.target.links.tupleLabelDeclaration) {\n        const labelDecl = this.links.target.links.tupleLabelDeclaration;\n        this.documentationComment = getDocumentationComment([labelDecl], checker);\n      } else {\n        this.documentationComment = getDocumentationComment(this.declarations, checker);\n      }\n    }\n    return this.documentationComment;\n  }\n  getContextualDocumentationComment(context, checker) {\n    if (context) {\n      if (isGetAccessor(context)) {\n        if (!this.contextualGetAccessorDocumentationComment) {\n          this.contextualGetAccessorDocumentationComment = emptyArray;\n          this.contextualGetAccessorDocumentationComment = getDocumentationComment(filter(this.declarations, isGetAccessor), checker);\n        }\n        if (length(this.contextualGetAccessorDocumentationComment)) {\n          return this.contextualGetAccessorDocumentationComment;\n        }\n      }\n      if (isSetAccessor(context)) {\n        if (!this.contextualSetAccessorDocumentationComment) {\n          this.contextualSetAccessorDocumentationComment = emptyArray;\n          this.contextualSetAccessorDocumentationComment = getDocumentationComment(filter(this.declarations, isSetAccessor), checker);\n        }\n        if (length(this.contextualSetAccessorDocumentationComment)) {\n          return this.contextualSetAccessorDocumentationComment;\n        }\n      }\n    }\n    return this.getDocumentationComment(checker);\n  }\n  getJsDocTags(checker) {\n    if (this.tags === void 0) {\n      this.tags = emptyArray;\n      this.tags = getJsDocTagsOfDeclarations(this.declarations, checker);\n    }\n    return this.tags;\n  }\n  getContextualJsDocTags(context, checker) {\n    if (context) {\n      if (isGetAccessor(context)) {\n        if (!this.contextualGetAccessorTags) {\n          this.contextualGetAccessorTags = emptyArray;\n          this.contextualGetAccessorTags = getJsDocTagsOfDeclarations(filter(this.declarations, isGetAccessor), checker);\n        }\n        if (length(this.contextualGetAccessorTags)) {\n          return this.contextualGetAccessorTags;\n        }\n      }\n      if (isSetAccessor(context)) {\n        if (!this.contextualSetAccessorTags) {\n          this.contextualSetAccessorTags = emptyArray;\n          this.contextualSetAccessorTags = getJsDocTagsOfDeclarations(filter(this.declarations, isSetAccessor), checker);\n        }\n        if (length(this.contextualSetAccessorTags)) {\n          return this.contextualSetAccessorTags;\n        }\n      }\n    }\n    return this.getJsDocTags(checker);\n  }\n};\nvar TokenObject = class extends TokenOrIdentifierObject {\n  constructor(kind, pos, end) {\n    super(kind, pos, end);\n  }\n};\nvar IdentifierObject = class extends TokenOrIdentifierObject {\n  constructor(kind, pos, end) {\n    super(kind, pos, end);\n  }\n  get text() {\n    return idText(this);\n  }\n};\nvar PrivateIdentifierObject = class extends TokenOrIdentifierObject {\n  constructor(kind, pos, end) {\n    super(kind, pos, end);\n  }\n  get text() {\n    return idText(this);\n  }\n};\nvar TypeObject = class {\n  constructor(checker, flags) {\n    this.flags = flags;\n    this.checker = checker;\n  }\n  getFlags() {\n    return this.flags;\n  }\n  getSymbol() {\n    return this.symbol;\n  }\n  getProperties() {\n    return this.checker.getPropertiesOfType(this);\n  }\n  getProperty(propertyName) {\n    return this.checker.getPropertyOfType(this, propertyName);\n  }\n  getApparentProperties() {\n    return this.checker.getAugmentedPropertiesOfType(this);\n  }\n  getCallSignatures() {\n    return this.checker.getSignaturesOfType(this, 0 /* Call */);\n  }\n  getConstructSignatures() {\n    return this.checker.getSignaturesOfType(this, 1 /* Construct */);\n  }\n  getStringIndexType() {\n    return this.checker.getIndexTypeOfType(this, 0 /* String */);\n  }\n  getNumberIndexType() {\n    return this.checker.getIndexTypeOfType(this, 1 /* Number */);\n  }\n  getBaseTypes() {\n    return this.isClassOrInterface() ? this.checker.getBaseTypes(this) : void 0;\n  }\n  isNullableType() {\n    return this.checker.isNullableType(this);\n  }\n  getNonNullableType() {\n    return this.checker.getNonNullableType(this);\n  }\n  getNonOptionalType() {\n    return this.checker.getNonOptionalType(this);\n  }\n  getConstraint() {\n    return this.checker.getBaseConstraintOfType(this);\n  }\n  getDefault() {\n    return this.checker.getDefaultFromTypeParameter(this);\n  }\n  isUnion() {\n    return !!(this.flags & 1048576 /* Union */);\n  }\n  isIntersection() {\n    return !!(this.flags & 2097152 /* Intersection */);\n  }\n  isUnionOrIntersection() {\n    return !!(this.flags & 3145728 /* UnionOrIntersection */);\n  }\n  isLiteral() {\n    return !!(this.flags & (128 /* StringLiteral */ | 256 /* NumberLiteral */ | 2048 /* BigIntLiteral */));\n  }\n  isStringLiteral() {\n    return !!(this.flags & 128 /* StringLiteral */);\n  }\n  isNumberLiteral() {\n    return !!(this.flags & 256 /* NumberLiteral */);\n  }\n  isTypeParameter() {\n    return !!(this.flags & 262144 /* TypeParameter */);\n  }\n  isClassOrInterface() {\n    return !!(getObjectFlags(this) & 3 /* ClassOrInterface */);\n  }\n  isClass() {\n    return !!(getObjectFlags(this) & 1 /* Class */);\n  }\n  isIndexType() {\n    return !!(this.flags & 4194304 /* Index */);\n  }\n  /**\n   * This polyfills `referenceType.typeArguments` for API consumers\n   */\n  get typeArguments() {\n    if (getObjectFlags(this) & 4 /* Reference */) {\n      return this.checker.getTypeArguments(this);\n    }\n    return void 0;\n  }\n};\nvar SignatureObject = class {\n  // same\n  constructor(checker, flags) {\n    this.flags = flags;\n    this.checker = checker;\n  }\n  getDeclaration() {\n    return this.declaration;\n  }\n  getTypeParameters() {\n    return this.typeParameters;\n  }\n  getParameters() {\n    return this.parameters;\n  }\n  getReturnType() {\n    return this.checker.getReturnTypeOfSignature(this);\n  }\n  getTypeParameterAtPosition(pos) {\n    const type = this.checker.getParameterType(this, pos);\n    if (type.isIndexType() && isThisTypeParameter(type.type)) {\n      const constraint = type.type.getConstraint();\n      if (constraint) {\n        return this.checker.getIndexType(constraint);\n      }\n    }\n    return type;\n  }\n  getDocumentationComment() {\n    return this.documentationComment || (this.documentationComment = getDocumentationComment(singleElementArray(this.declaration), this.checker));\n  }\n  getJsDocTags() {\n    return this.jsDocTags || (this.jsDocTags = getJsDocTagsOfDeclarations(singleElementArray(this.declaration), this.checker));\n  }\n};\nfunction hasJSDocInheritDocTag(node) {\n  return getJSDocTags(node).some((tag) => tag.tagName.text === \"inheritDoc\" || tag.tagName.text === \"inheritdoc\");\n}\nfunction getJsDocTagsOfDeclarations(declarations, checker) {\n  if (!declarations) return emptyArray;\n  let tags = ts_JsDoc_exports.getJsDocTagsFromDeclarations(declarations, checker);\n  if (checker && (tags.length === 0 || declarations.some(hasJSDocInheritDocTag))) {\n    const seenSymbols = /* @__PURE__ */ new Set();\n    for (const declaration of declarations) {\n      const inheritedTags = findBaseOfDeclaration(checker, declaration, (symbol) => {\n        var _a;\n        if (!seenSymbols.has(symbol)) {\n          seenSymbols.add(symbol);\n          if (declaration.kind === 178 /* GetAccessor */ || declaration.kind === 179 /* SetAccessor */) {\n            return symbol.getContextualJsDocTags(declaration, checker);\n          }\n          return ((_a = symbol.declarations) == null ? void 0 : _a.length) === 1 ? symbol.getJsDocTags(checker) : void 0;\n        }\n      });\n      if (inheritedTags) {\n        tags = [...inheritedTags, ...tags];\n      }\n    }\n  }\n  return tags;\n}\nfunction getDocumentationComment(declarations, checker) {\n  if (!declarations) return emptyArray;\n  let doc = ts_JsDoc_exports.getJsDocCommentsFromDeclarations(declarations, checker);\n  if (checker && (doc.length === 0 || declarations.some(hasJSDocInheritDocTag))) {\n    const seenSymbols = /* @__PURE__ */ new Set();\n    for (const declaration of declarations) {\n      const inheritedDocs = findBaseOfDeclaration(checker, declaration, (symbol) => {\n        if (!seenSymbols.has(symbol)) {\n          seenSymbols.add(symbol);\n          if (declaration.kind === 178 /* GetAccessor */ || declaration.kind === 179 /* SetAccessor */) {\n            return symbol.getContextualDocumentationComment(declaration, checker);\n          }\n          return symbol.getDocumentationComment(checker);\n        }\n      });\n      if (inheritedDocs) doc = doc.length === 0 ? inheritedDocs.slice() : inheritedDocs.concat(lineBreakPart(), doc);\n    }\n  }\n  return doc;\n}\nfunction findBaseOfDeclaration(checker, declaration, cb) {\n  var _a;\n  const classOrInterfaceDeclaration = ((_a = declaration.parent) == null ? void 0 : _a.kind) === 177 /* Constructor */ ? declaration.parent.parent : declaration.parent;\n  if (!classOrInterfaceDeclaration) return;\n  const isStaticMember = hasStaticModifier(declaration);\n  return firstDefined(getAllSuperTypeNodes(classOrInterfaceDeclaration), (superTypeNode) => {\n    const baseType = checker.getTypeAtLocation(superTypeNode);\n    const type = isStaticMember && baseType.symbol ? checker.getTypeOfSymbol(baseType.symbol) : baseType;\n    const symbol = checker.getPropertyOfType(type, declaration.symbol.name);\n    return symbol ? cb(symbol) : void 0;\n  });\n}\nvar SourceFileObject = class extends NodeObject {\n  constructor(kind, pos, end) {\n    super(kind, pos, end);\n  }\n  update(newText, textChangeRange) {\n    return updateSourceFile(this, newText, textChangeRange);\n  }\n  getLineAndCharacterOfPosition(position) {\n    return getLineAndCharacterOfPosition(this, position);\n  }\n  getLineStarts() {\n    return getLineStarts(this);\n  }\n  getPositionOfLineAndCharacter(line, character, allowEdits) {\n    return computePositionOfLineAndCharacter(getLineStarts(this), line, character, this.text, allowEdits);\n  }\n  getLineEndOfPosition(pos) {\n    const { line } = this.getLineAndCharacterOfPosition(pos);\n    const lineStarts = this.getLineStarts();\n    let lastCharPos;\n    if (line + 1 >= lineStarts.length) {\n      lastCharPos = this.getEnd();\n    }\n    if (!lastCharPos) {\n      lastCharPos = lineStarts[line + 1] - 1;\n    }\n    const fullText = this.getFullText();\n    return fullText[lastCharPos] === \"\\n\" && fullText[lastCharPos - 1] === \"\\r\" ? lastCharPos - 1 : lastCharPos;\n  }\n  getNamedDeclarations() {\n    if (!this.namedDeclarations) {\n      this.namedDeclarations = this.computeNamedDeclarations();\n    }\n    return this.namedDeclarations;\n  }\n  computeNamedDeclarations() {\n    const result = createMultiMap();\n    this.forEachChild(visit);\n    return result;\n    function addDeclaration(declaration) {\n      const name = getDeclarationName(declaration);\n      if (name) {\n        result.add(name, declaration);\n      }\n    }\n    function getDeclarations(name) {\n      let declarations = result.get(name);\n      if (!declarations) {\n        result.set(name, declarations = []);\n      }\n      return declarations;\n    }\n    function getDeclarationName(declaration) {\n      const name = getNonAssignedNameOfDeclaration(declaration);\n      return name && (isComputedPropertyName(name) && isPropertyAccessExpression(name.expression) ? name.expression.name.text : isPropertyName(name) ? getNameFromPropertyName(name) : void 0);\n    }\n    function visit(node) {\n      switch (node.kind) {\n        case 263 /* FunctionDeclaration */:\n        case 219 /* FunctionExpression */:\n        case 175 /* MethodDeclaration */:\n        case 174 /* MethodSignature */:\n          const functionDeclaration = node;\n          const declarationName = getDeclarationName(functionDeclaration);\n          if (declarationName) {\n            const declarations = getDeclarations(declarationName);\n            const lastDeclaration = lastOrUndefined(declarations);\n            if (lastDeclaration && functionDeclaration.parent === lastDeclaration.parent && functionDeclaration.symbol === lastDeclaration.symbol) {\n              if (functionDeclaration.body && !lastDeclaration.body) {\n                declarations[declarations.length - 1] = functionDeclaration;\n              }\n            } else {\n              declarations.push(functionDeclaration);\n            }\n          }\n          forEachChild(node, visit);\n          break;\n        case 264 /* ClassDeclaration */:\n        case 232 /* ClassExpression */:\n        case 265 /* InterfaceDeclaration */:\n        case 266 /* TypeAliasDeclaration */:\n        case 267 /* EnumDeclaration */:\n        case 268 /* ModuleDeclaration */:\n        case 272 /* ImportEqualsDeclaration */:\n        case 282 /* ExportSpecifier */:\n        case 277 /* ImportSpecifier */:\n        case 274 /* ImportClause */:\n        case 275 /* NamespaceImport */:\n        case 178 /* GetAccessor */:\n        case 179 /* SetAccessor */:\n        case 188 /* TypeLiteral */:\n          addDeclaration(node);\n          forEachChild(node, visit);\n          break;\n        case 170 /* Parameter */:\n          if (!hasSyntacticModifier(node, 31 /* ParameterPropertyModifier */)) {\n            break;\n          }\n        // falls through\n        case 261 /* VariableDeclaration */:\n        case 209 /* BindingElement */: {\n          const decl = node;\n          if (isBindingPattern(decl.name)) {\n            forEachChild(decl.name, visit);\n            break;\n          }\n          if (decl.initializer) {\n            visit(decl.initializer);\n          }\n        }\n        // falls through\n        case 307 /* EnumMember */:\n        case 173 /* PropertyDeclaration */:\n        case 172 /* PropertySignature */:\n          addDeclaration(node);\n          break;\n        case 279 /* ExportDeclaration */:\n          const exportDeclaration = node;\n          if (exportDeclaration.exportClause) {\n            if (isNamedExports(exportDeclaration.exportClause)) {\n              forEach(exportDeclaration.exportClause.elements, visit);\n            } else {\n              visit(exportDeclaration.exportClause.name);\n            }\n          }\n          break;\n        case 273 /* ImportDeclaration */:\n          const importClause = node.importClause;\n          if (importClause) {\n            if (importClause.name) {\n              addDeclaration(importClause.name);\n            }\n            if (importClause.namedBindings) {\n              if (importClause.namedBindings.kind === 275 /* NamespaceImport */) {\n                addDeclaration(importClause.namedBindings);\n              } else {\n                forEach(importClause.namedBindings.elements, visit);\n              }\n            }\n          }\n          break;\n        case 227 /* BinaryExpression */:\n          if (getAssignmentDeclarationKind(node) !== 0 /* None */) {\n            addDeclaration(node);\n          }\n        // falls through\n        default:\n          forEachChild(node, visit);\n      }\n    }\n  }\n};\nvar SourceMapSourceObject = class {\n  constructor(fileName, text, skipTrivia2) {\n    this.fileName = fileName;\n    this.text = text;\n    this.skipTrivia = skipTrivia2 || ((pos) => pos);\n  }\n  getLineAndCharacterOfPosition(pos) {\n    return getLineAndCharacterOfPosition(this, pos);\n  }\n};\nfunction getServicesObjectAllocator() {\n  return {\n    getNodeConstructor: () => NodeObject,\n    getTokenConstructor: () => TokenObject,\n    getIdentifierConstructor: () => IdentifierObject,\n    getPrivateIdentifierConstructor: () => PrivateIdentifierObject,\n    getSourceFileConstructor: () => SourceFileObject,\n    getSymbolConstructor: () => SymbolObject,\n    getTypeConstructor: () => TypeObject,\n    getSignatureConstructor: () => SignatureObject,\n    getSourceMapSourceConstructor: () => SourceMapSourceObject\n  };\n}\nfunction toEditorSettings(optionsAsMap) {\n  let allPropertiesAreCamelCased = true;\n  for (const key in optionsAsMap) {\n    if (hasProperty(optionsAsMap, key) && !isCamelCase(key)) {\n      allPropertiesAreCamelCased = false;\n      break;\n    }\n  }\n  if (allPropertiesAreCamelCased) {\n    return optionsAsMap;\n  }\n  const settings = {};\n  for (const key in optionsAsMap) {\n    if (hasProperty(optionsAsMap, key)) {\n      const newKey = isCamelCase(key) ? key : key.charAt(0).toLowerCase() + key.substr(1);\n      settings[newKey] = optionsAsMap[key];\n    }\n  }\n  return settings;\n}\nfunction isCamelCase(s) {\n  return !s.length || s.charAt(0) === s.charAt(0).toLowerCase();\n}\nfunction displayPartsToString(displayParts) {\n  if (displayParts) {\n    return map(displayParts, (displayPart2) => displayPart2.text).join(\"\");\n  }\n  return \"\";\n}\nfunction getDefaultCompilerOptions2() {\n  return {\n    target: 1 /* ES5 */,\n    jsx: 1 /* Preserve */\n  };\n}\nfunction getSupportedCodeFixes() {\n  return ts_codefix_exports.getSupportedErrorCodes();\n}\nvar SyntaxTreeCache = class {\n  constructor(host) {\n    this.host = host;\n  }\n  getCurrentSourceFile(fileName) {\n    var _a, _b, _c, _d, _e, _f, _g, _h;\n    const scriptSnapshot = this.host.getScriptSnapshot(fileName);\n    if (!scriptSnapshot) {\n      throw new Error(\"Could not find file: '\" + fileName + \"'.\");\n    }\n    const scriptKind = getScriptKind(fileName, this.host);\n    const version2 = this.host.getScriptVersion(fileName);\n    let sourceFile;\n    if (this.currentFileName !== fileName) {\n      const options = {\n        languageVersion: 99 /* Latest */,\n        impliedNodeFormat: getImpliedNodeFormatForFile(\n          toPath(fileName, this.host.getCurrentDirectory(), ((_c = (_b = (_a = this.host).getCompilerHost) == null ? void 0 : _b.call(_a)) == null ? void 0 : _c.getCanonicalFileName) || hostGetCanonicalFileName(this.host)),\n          (_h = (_g = (_f = (_e = (_d = this.host).getCompilerHost) == null ? void 0 : _e.call(_d)) == null ? void 0 : _f.getModuleResolutionCache) == null ? void 0 : _g.call(_f)) == null ? void 0 : _h.getPackageJsonInfoCache(),\n          this.host,\n          this.host.getCompilationSettings()\n        ),\n        setExternalModuleIndicator: getSetExternalModuleIndicator(this.host.getCompilationSettings()),\n        // These files are used to produce syntax-based highlighting, which reads JSDoc, so we must use ParseAll.\n        jsDocParsingMode: 0 /* ParseAll */\n      };\n      sourceFile = createLanguageServiceSourceFile(\n        fileName,\n        scriptSnapshot,\n        options,\n        version2,\n        /*setNodeParents*/\n        true,\n        scriptKind\n      );\n    } else if (this.currentFileVersion !== version2) {\n      const editRange = scriptSnapshot.getChangeRange(this.currentFileScriptSnapshot);\n      sourceFile = updateLanguageServiceSourceFile(this.currentSourceFile, scriptSnapshot, version2, editRange);\n    }\n    if (sourceFile) {\n      this.currentFileVersion = version2;\n      this.currentFileName = fileName;\n      this.currentFileScriptSnapshot = scriptSnapshot;\n      this.currentSourceFile = sourceFile;\n    }\n    return this.currentSourceFile;\n  }\n};\nfunction setSourceFileFields(sourceFile, scriptSnapshot, version2) {\n  sourceFile.version = version2;\n  sourceFile.scriptSnapshot = scriptSnapshot;\n}\nfunction createLanguageServiceSourceFile(fileName, scriptSnapshot, scriptTargetOrOptions, version2, setNodeParents, scriptKind) {\n  const sourceFile = createSourceFile(fileName, getSnapshotText(scriptSnapshot), scriptTargetOrOptions, setNodeParents, scriptKind);\n  setSourceFileFields(sourceFile, scriptSnapshot, version2);\n  return sourceFile;\n}\nfunction updateLanguageServiceSourceFile(sourceFile, scriptSnapshot, version2, textChangeRange, aggressiveChecks) {\n  if (textChangeRange) {\n    if (version2 !== sourceFile.version) {\n      let newText;\n      const prefix = textChangeRange.span.start !== 0 ? sourceFile.text.substr(0, textChangeRange.span.start) : \"\";\n      const suffix = textSpanEnd(textChangeRange.span) !== sourceFile.text.length ? sourceFile.text.substr(textSpanEnd(textChangeRange.span)) : \"\";\n      if (textChangeRange.newLength === 0) {\n        newText = prefix && suffix ? prefix + suffix : prefix || suffix;\n      } else {\n        const changedText = scriptSnapshot.getText(textChangeRange.span.start, textChangeRange.span.start + textChangeRange.newLength);\n        newText = prefix && suffix ? prefix + changedText + suffix : prefix ? prefix + changedText : changedText + suffix;\n      }\n      const newSourceFile = updateSourceFile(sourceFile, newText, textChangeRange, aggressiveChecks);\n      setSourceFileFields(newSourceFile, scriptSnapshot, version2);\n      newSourceFile.nameTable = void 0;\n      if (sourceFile !== newSourceFile && sourceFile.scriptSnapshot) {\n        if (sourceFile.scriptSnapshot.dispose) {\n          sourceFile.scriptSnapshot.dispose();\n        }\n        sourceFile.scriptSnapshot = void 0;\n      }\n      return newSourceFile;\n    }\n  }\n  const options = {\n    languageVersion: sourceFile.languageVersion,\n    impliedNodeFormat: sourceFile.impliedNodeFormat,\n    setExternalModuleIndicator: sourceFile.setExternalModuleIndicator,\n    jsDocParsingMode: sourceFile.jsDocParsingMode\n  };\n  return createLanguageServiceSourceFile(\n    sourceFile.fileName,\n    scriptSnapshot,\n    options,\n    version2,\n    /*setNodeParents*/\n    true,\n    sourceFile.scriptKind\n  );\n}\nvar NoopCancellationToken = {\n  isCancellationRequested: returnFalse,\n  throwIfCancellationRequested: noop\n};\nvar CancellationTokenObject = class {\n  constructor(cancellationToken) {\n    this.cancellationToken = cancellationToken;\n  }\n  isCancellationRequested() {\n    return this.cancellationToken.isCancellationRequested();\n  }\n  throwIfCancellationRequested() {\n    var _a;\n    if (this.isCancellationRequested()) {\n      (_a = tracing) == null ? void 0 : _a.instant(tracing.Phase.Session, \"cancellationThrown\", { kind: \"CancellationTokenObject\" });\n      throw new OperationCanceledException();\n    }\n  }\n};\nvar ThrottledCancellationToken = class {\n  constructor(hostCancellationToken, throttleWaitMilliseconds = 20) {\n    this.hostCancellationToken = hostCancellationToken;\n    this.throttleWaitMilliseconds = throttleWaitMilliseconds;\n    // Store when we last tried to cancel.  Checking cancellation can be expensive (as we have\n    // to marshall over to the host layer).  So we only bother actually checking once enough\n    // time has passed.\n    this.lastCancellationCheckTime = 0;\n  }\n  isCancellationRequested() {\n    const time = timestamp();\n    const duration = Math.abs(time - this.lastCancellationCheckTime);\n    if (duration >= this.throttleWaitMilliseconds) {\n      this.lastCancellationCheckTime = time;\n      return this.hostCancellationToken.isCancellationRequested();\n    }\n    return false;\n  }\n  throwIfCancellationRequested() {\n    var _a;\n    if (this.isCancellationRequested()) {\n      (_a = tracing) == null ? void 0 : _a.instant(tracing.Phase.Session, \"cancellationThrown\", { kind: \"ThrottledCancellationToken\" });\n      throw new OperationCanceledException();\n    }\n  }\n};\nvar invalidOperationsInPartialSemanticMode = [\n  \"getSemanticDiagnostics\",\n  \"getSuggestionDiagnostics\",\n  \"getCompilerOptionsDiagnostics\",\n  \"getSemanticClassifications\",\n  \"getEncodedSemanticClassifications\",\n  \"getCodeFixesAtPosition\",\n  \"getCombinedCodeFix\",\n  \"applyCodeActionCommand\",\n  \"organizeImports\",\n  \"getEditsForFileRename\",\n  \"getEmitOutput\",\n  \"getApplicableRefactors\",\n  \"getEditsForRefactor\",\n  \"prepareCallHierarchy\",\n  \"provideCallHierarchyIncomingCalls\",\n  \"provideCallHierarchyOutgoingCalls\",\n  \"provideInlayHints\",\n  \"getSupportedCodeFixes\",\n  \"getPasteEdits\"\n];\nvar invalidOperationsInSyntacticMode = [\n  ...invalidOperationsInPartialSemanticMode,\n  \"getCompletionsAtPosition\",\n  \"getCompletionEntryDetails\",\n  \"getCompletionEntrySymbol\",\n  \"getSignatureHelpItems\",\n  \"getQuickInfoAtPosition\",\n  \"getDefinitionAtPosition\",\n  \"getDefinitionAndBoundSpan\",\n  \"getImplementationAtPosition\",\n  \"getTypeDefinitionAtPosition\",\n  \"getReferencesAtPosition\",\n  \"findReferences\",\n  \"getDocumentHighlights\",\n  \"getNavigateToItems\",\n  \"getRenameInfo\",\n  \"findRenameLocations\",\n  \"getApplicableRefactors\",\n  \"preparePasteEditsForFile\"\n];\nfunction createLanguageService(host, documentRegistry = createDocumentRegistry(host.useCaseSensitiveFileNames && host.useCaseSensitiveFileNames(), host.getCurrentDirectory(), host.jsDocParsingMode), syntaxOnlyOrLanguageServiceMode) {\n  var _a;\n  let languageServiceMode;\n  if (syntaxOnlyOrLanguageServiceMode === void 0) {\n    languageServiceMode = 0 /* Semantic */;\n  } else if (typeof syntaxOnlyOrLanguageServiceMode === \"boolean\") {\n    languageServiceMode = syntaxOnlyOrLanguageServiceMode ? 2 /* Syntactic */ : 0 /* Semantic */;\n  } else {\n    languageServiceMode = syntaxOnlyOrLanguageServiceMode;\n  }\n  const syntaxTreeCache = new SyntaxTreeCache(host);\n  let program;\n  let lastProjectVersion;\n  let lastTypesRootVersion = 0;\n  const cancellationToken = host.getCancellationToken ? new CancellationTokenObject(host.getCancellationToken()) : NoopCancellationToken;\n  const currentDirectory = host.getCurrentDirectory();\n  maybeSetLocalizedDiagnosticMessages((_a = host.getLocalizedDiagnosticMessages) == null ? void 0 : _a.bind(host));\n  function log(message) {\n    if (host.log) {\n      host.log(message);\n    }\n  }\n  const useCaseSensitiveFileNames2 = hostUsesCaseSensitiveFileNames(host);\n  const getCanonicalFileName = createGetCanonicalFileName(useCaseSensitiveFileNames2);\n  const sourceMapper = getSourceMapper({\n    useCaseSensitiveFileNames: () => useCaseSensitiveFileNames2,\n    getCurrentDirectory: () => currentDirectory,\n    getProgram,\n    fileExists: maybeBind(host, host.fileExists),\n    readFile: maybeBind(host, host.readFile),\n    getDocumentPositionMapper: maybeBind(host, host.getDocumentPositionMapper),\n    getSourceFileLike: maybeBind(host, host.getSourceFileLike),\n    log\n  });\n  function getValidSourceFile(fileName) {\n    const sourceFile = program.getSourceFile(fileName);\n    if (!sourceFile) {\n      const error2 = new Error(`Could not find source file: '${fileName}'.`);\n      error2.ProgramFiles = program.getSourceFiles().map((f) => f.fileName);\n      throw error2;\n    }\n    return sourceFile;\n  }\n  function synchronizeHostData() {\n    if (host.updateFromProject && !host.updateFromProjectInProgress) {\n      host.updateFromProject();\n    } else {\n      synchronizeHostDataWorker();\n    }\n  }\n  function synchronizeHostDataWorker() {\n    var _a2, _b, _c;\n    Debug.assert(languageServiceMode !== 2 /* Syntactic */);\n    if (host.getProjectVersion) {\n      const hostProjectVersion = host.getProjectVersion();\n      if (hostProjectVersion) {\n        if (lastProjectVersion === hostProjectVersion && !((_a2 = host.hasChangedAutomaticTypeDirectiveNames) == null ? void 0 : _a2.call(host))) {\n          return;\n        }\n        lastProjectVersion = hostProjectVersion;\n      }\n    }\n    const typeRootsVersion = host.getTypeRootsVersion ? host.getTypeRootsVersion() : 0;\n    if (lastTypesRootVersion !== typeRootsVersion) {\n      log(\"TypeRoots version has changed; provide new program\");\n      program = void 0;\n      lastTypesRootVersion = typeRootsVersion;\n    }\n    const rootFileNames = host.getScriptFileNames().slice();\n    const newSettings = host.getCompilationSettings() || getDefaultCompilerOptions2();\n    const hasInvalidatedResolutions = host.hasInvalidatedResolutions || returnFalse;\n    const hasInvalidatedLibResolutions = maybeBind(host, host.hasInvalidatedLibResolutions) || returnFalse;\n    const hasChangedAutomaticTypeDirectiveNames = maybeBind(host, host.hasChangedAutomaticTypeDirectiveNames);\n    const projectReferences = (_b = host.getProjectReferences) == null ? void 0 : _b.call(host);\n    let parsedCommandLines;\n    let compilerHost = {\n      getSourceFile: getOrCreateSourceFile,\n      getSourceFileByPath: getOrCreateSourceFileByPath,\n      getCancellationToken: () => cancellationToken,\n      getCanonicalFileName,\n      useCaseSensitiveFileNames: () => useCaseSensitiveFileNames2,\n      getNewLine: () => getNewLineCharacter(newSettings),\n      getDefaultLibFileName: (options2) => host.getDefaultLibFileName(options2),\n      writeFile: noop,\n      getCurrentDirectory: () => currentDirectory,\n      fileExists: (fileName) => host.fileExists(fileName),\n      readFile: (fileName) => host.readFile && host.readFile(fileName),\n      getSymlinkCache: maybeBind(host, host.getSymlinkCache),\n      realpath: maybeBind(host, host.realpath),\n      directoryExists: (directoryName) => {\n        return directoryProbablyExists(directoryName, host);\n      },\n      getDirectories: (path) => {\n        return host.getDirectories ? host.getDirectories(path) : [];\n      },\n      readDirectory: (path, extensions, exclude, include, depth) => {\n        Debug.checkDefined(host.readDirectory, \"'LanguageServiceHost.readDirectory' must be implemented to correctly process 'projectReferences'\");\n        return host.readDirectory(path, extensions, exclude, include, depth);\n      },\n      onReleaseOldSourceFile,\n      onReleaseParsedCommandLine,\n      hasInvalidatedResolutions,\n      hasInvalidatedLibResolutions,\n      hasChangedAutomaticTypeDirectiveNames,\n      trace: maybeBind(host, host.trace),\n      resolveModuleNames: maybeBind(host, host.resolveModuleNames),\n      getModuleResolutionCache: maybeBind(host, host.getModuleResolutionCache),\n      createHash: maybeBind(host, host.createHash),\n      resolveTypeReferenceDirectives: maybeBind(host, host.resolveTypeReferenceDirectives),\n      resolveModuleNameLiterals: maybeBind(host, host.resolveModuleNameLiterals),\n      resolveTypeReferenceDirectiveReferences: maybeBind(host, host.resolveTypeReferenceDirectiveReferences),\n      resolveLibrary: maybeBind(host, host.resolveLibrary),\n      useSourceOfProjectReferenceRedirect: maybeBind(host, host.useSourceOfProjectReferenceRedirect),\n      getParsedCommandLine,\n      jsDocParsingMode: host.jsDocParsingMode,\n      getGlobalTypingsCacheLocation: maybeBind(host, host.getGlobalTypingsCacheLocation)\n    };\n    const originalGetSourceFile = compilerHost.getSourceFile;\n    const { getSourceFileWithCache } = changeCompilerHostLikeToUseCache(\n      compilerHost,\n      (fileName) => toPath(fileName, currentDirectory, getCanonicalFileName),\n      (...args) => originalGetSourceFile.call(compilerHost, ...args)\n    );\n    compilerHost.getSourceFile = getSourceFileWithCache;\n    (_c = host.setCompilerHost) == null ? void 0 : _c.call(host, compilerHost);\n    const parseConfigHost = {\n      useCaseSensitiveFileNames: useCaseSensitiveFileNames2,\n      fileExists: (fileName) => compilerHost.fileExists(fileName),\n      readFile: (fileName) => compilerHost.readFile(fileName),\n      directoryExists: (f) => compilerHost.directoryExists(f),\n      getDirectories: (f) => compilerHost.getDirectories(f),\n      realpath: compilerHost.realpath,\n      readDirectory: (...args) => compilerHost.readDirectory(...args),\n      trace: compilerHost.trace,\n      getCurrentDirectory: compilerHost.getCurrentDirectory,\n      onUnRecoverableConfigFileDiagnostic: noop\n    };\n    const documentRegistryBucketKey = documentRegistry.getKeyForCompilationSettings(newSettings);\n    let releasedScriptKinds = /* @__PURE__ */ new Set();\n    if (isProgramUptoDate(program, rootFileNames, newSettings, (_path, fileName) => host.getScriptVersion(fileName), (fileName) => compilerHost.fileExists(fileName), hasInvalidatedResolutions, hasInvalidatedLibResolutions, hasChangedAutomaticTypeDirectiveNames, getParsedCommandLine, projectReferences)) {\n      compilerHost = void 0;\n      parsedCommandLines = void 0;\n      releasedScriptKinds = void 0;\n      return;\n    }\n    const options = {\n      rootNames: rootFileNames,\n      options: newSettings,\n      host: compilerHost,\n      oldProgram: program,\n      projectReferences\n    };\n    program = createProgram(options);\n    compilerHost = void 0;\n    parsedCommandLines = void 0;\n    releasedScriptKinds = void 0;\n    sourceMapper.clearCache();\n    program.getTypeChecker();\n    return;\n    function getParsedCommandLine(fileName) {\n      const path = toPath(fileName, currentDirectory, getCanonicalFileName);\n      const existing = parsedCommandLines == null ? void 0 : parsedCommandLines.get(path);\n      if (existing !== void 0) return existing || void 0;\n      const result = host.getParsedCommandLine ? host.getParsedCommandLine(fileName) : getParsedCommandLineOfConfigFileUsingSourceFile(fileName);\n      (parsedCommandLines || (parsedCommandLines = /* @__PURE__ */ new Map())).set(path, result || false);\n      return result;\n    }\n    function getParsedCommandLineOfConfigFileUsingSourceFile(configFileName) {\n      const result = getOrCreateSourceFile(configFileName, 100 /* JSON */);\n      if (!result) return void 0;\n      result.path = toPath(configFileName, currentDirectory, getCanonicalFileName);\n      result.resolvedPath = result.path;\n      result.originalFileName = result.fileName;\n      return parseJsonSourceFileConfigFileContent(\n        result,\n        parseConfigHost,\n        getNormalizedAbsolutePath(getDirectoryPath(configFileName), currentDirectory),\n        /*existingOptions*/\n        void 0,\n        getNormalizedAbsolutePath(configFileName, currentDirectory)\n      );\n    }\n    function onReleaseParsedCommandLine(configFileName, oldResolvedRef, oldOptions) {\n      var _a3;\n      if (host.getParsedCommandLine) {\n        (_a3 = host.onReleaseParsedCommandLine) == null ? void 0 : _a3.call(host, configFileName, oldResolvedRef, oldOptions);\n      } else if (oldResolvedRef) {\n        releaseOldSourceFile(oldResolvedRef.sourceFile, oldOptions);\n      }\n    }\n    function releaseOldSourceFile(oldSourceFile, oldOptions) {\n      const oldSettingsKey = documentRegistry.getKeyForCompilationSettings(oldOptions);\n      documentRegistry.releaseDocumentWithKey(oldSourceFile.resolvedPath, oldSettingsKey, oldSourceFile.scriptKind, oldSourceFile.impliedNodeFormat);\n    }\n    function onReleaseOldSourceFile(oldSourceFile, oldOptions, hasSourceFileByPath, newSourceFileByResolvedPath) {\n      var _a3;\n      releaseOldSourceFile(oldSourceFile, oldOptions);\n      (_a3 = host.onReleaseOldSourceFile) == null ? void 0 : _a3.call(host, oldSourceFile, oldOptions, hasSourceFileByPath, newSourceFileByResolvedPath);\n    }\n    function getOrCreateSourceFile(fileName, languageVersionOrOptions, onError, shouldCreateNewSourceFile) {\n      return getOrCreateSourceFileByPath(fileName, toPath(fileName, currentDirectory, getCanonicalFileName), languageVersionOrOptions, onError, shouldCreateNewSourceFile);\n    }\n    function getOrCreateSourceFileByPath(fileName, path, languageVersionOrOptions, _onError, shouldCreateNewSourceFile) {\n      Debug.assert(compilerHost, \"getOrCreateSourceFileByPath called after typical CompilerHost lifetime, check the callstack something with a reference to an old host.\");\n      const scriptSnapshot = host.getScriptSnapshot(fileName);\n      if (!scriptSnapshot) {\n        return void 0;\n      }\n      const scriptKind = getScriptKind(fileName, host);\n      const scriptVersion = host.getScriptVersion(fileName);\n      if (!shouldCreateNewSourceFile) {\n        const oldSourceFile = program && program.getSourceFileByPath(path);\n        if (oldSourceFile) {\n          if (scriptKind === oldSourceFile.scriptKind || releasedScriptKinds.has(oldSourceFile.resolvedPath)) {\n            return documentRegistry.updateDocumentWithKey(fileName, path, host, documentRegistryBucketKey, scriptSnapshot, scriptVersion, scriptKind, languageVersionOrOptions);\n          } else {\n            documentRegistry.releaseDocumentWithKey(oldSourceFile.resolvedPath, documentRegistry.getKeyForCompilationSettings(program.getCompilerOptions()), oldSourceFile.scriptKind, oldSourceFile.impliedNodeFormat);\n            releasedScriptKinds.add(oldSourceFile.resolvedPath);\n          }\n        }\n      }\n      return documentRegistry.acquireDocumentWithKey(fileName, path, host, documentRegistryBucketKey, scriptSnapshot, scriptVersion, scriptKind, languageVersionOrOptions);\n    }\n  }\n  function getProgram() {\n    if (languageServiceMode === 2 /* Syntactic */) {\n      Debug.assert(program === void 0);\n      return void 0;\n    }\n    synchronizeHostData();\n    return program;\n  }\n  function getAutoImportProvider() {\n    var _a2;\n    return (_a2 = host.getPackageJsonAutoImportProvider) == null ? void 0 : _a2.call(host);\n  }\n  function updateIsDefinitionOfReferencedSymbols(referencedSymbols, knownSymbolSpans) {\n    const checker = program.getTypeChecker();\n    const symbol = getSymbolForProgram();\n    if (!symbol) return false;\n    for (const referencedSymbol of referencedSymbols) {\n      for (const ref of referencedSymbol.references) {\n        const refNode = getNodeForSpan(ref);\n        Debug.assertIsDefined(refNode);\n        if (knownSymbolSpans.has(ref) || ts_FindAllReferences_exports.isDeclarationOfSymbol(refNode, symbol)) {\n          knownSymbolSpans.add(ref);\n          ref.isDefinition = true;\n          const mappedSpan = getMappedDocumentSpan(ref, sourceMapper, maybeBind(host, host.fileExists));\n          if (mappedSpan) {\n            knownSymbolSpans.add(mappedSpan);\n          }\n        } else {\n          ref.isDefinition = false;\n        }\n      }\n    }\n    return true;\n    function getSymbolForProgram() {\n      for (const referencedSymbol of referencedSymbols) {\n        for (const ref of referencedSymbol.references) {\n          if (knownSymbolSpans.has(ref)) {\n            const refNode = getNodeForSpan(ref);\n            Debug.assertIsDefined(refNode);\n            return checker.getSymbolAtLocation(refNode);\n          }\n          const mappedSpan = getMappedDocumentSpan(ref, sourceMapper, maybeBind(host, host.fileExists));\n          if (mappedSpan && knownSymbolSpans.has(mappedSpan)) {\n            const refNode = getNodeForSpan(mappedSpan);\n            if (refNode) {\n              return checker.getSymbolAtLocation(refNode);\n            }\n          }\n        }\n      }\n      return void 0;\n    }\n    function getNodeForSpan(docSpan) {\n      const sourceFile = program.getSourceFile(docSpan.fileName);\n      if (!sourceFile) return void 0;\n      const rawNode = getTouchingPropertyName(sourceFile, docSpan.textSpan.start);\n      const adjustedNode = ts_FindAllReferences_exports.Core.getAdjustedNode(rawNode, { use: ts_FindAllReferences_exports.FindReferencesUse.References });\n      return adjustedNode;\n    }\n  }\n  function cleanupSemanticCache() {\n    if (program) {\n      const key = documentRegistry.getKeyForCompilationSettings(program.getCompilerOptions());\n      forEach(program.getSourceFiles(), (f) => documentRegistry.releaseDocumentWithKey(f.resolvedPath, key, f.scriptKind, f.impliedNodeFormat));\n      program = void 0;\n    }\n  }\n  function dispose() {\n    cleanupSemanticCache();\n    host = void 0;\n  }\n  function getSyntacticDiagnostics(fileName) {\n    synchronizeHostData();\n    return program.getSyntacticDiagnostics(getValidSourceFile(fileName), cancellationToken).slice();\n  }\n  function getSemanticDiagnostics(fileName) {\n    synchronizeHostData();\n    const targetSourceFile = getValidSourceFile(fileName);\n    const semanticDiagnostics = program.getSemanticDiagnostics(targetSourceFile, cancellationToken);\n    if (!getEmitDeclarations(program.getCompilerOptions())) {\n      return semanticDiagnostics.slice();\n    }\n    const declarationDiagnostics = program.getDeclarationDiagnostics(targetSourceFile, cancellationToken);\n    return [...semanticDiagnostics, ...declarationDiagnostics];\n  }\n  function getRegionSemanticDiagnostics(fileName, ranges) {\n    synchronizeHostData();\n    const sourceFile = getValidSourceFile(fileName);\n    const options = program.getCompilerOptions();\n    if (skipTypeChecking(sourceFile, options, program) || !canIncludeBindAndCheckDiagnostics(sourceFile, options) || program.getCachedSemanticDiagnostics(sourceFile)) {\n      return void 0;\n    }\n    const nodes = getNodesForRanges(sourceFile, ranges);\n    if (!nodes) {\n      return void 0;\n    }\n    const checkedSpans = normalizeSpans(nodes.map((node) => createTextSpanFromBounds(node.getFullStart(), node.getEnd())));\n    const semanticDiagnostics = program.getSemanticDiagnostics(sourceFile, cancellationToken, nodes);\n    return {\n      diagnostics: semanticDiagnostics.slice(),\n      spans: checkedSpans\n    };\n  }\n  function getNodesForRanges(file, ranges) {\n    const nodes = [];\n    const spans = normalizeSpans(ranges.map((range) => createTextSpanFromRange(range)));\n    for (const span of spans) {\n      const nodesForSpan = getNodesForSpan(file, span);\n      if (!nodesForSpan) {\n        return void 0;\n      }\n      nodes.push(...nodesForSpan);\n    }\n    if (!nodes.length) {\n      return void 0;\n    }\n    return nodes;\n  }\n  function getNodesForSpan(file, span) {\n    if (textSpanContainsTextRange(span, file)) {\n      return void 0;\n    }\n    const endToken = findTokenOnLeftOfPosition(file, textSpanEnd(span)) || file;\n    const enclosingNode = findAncestor(endToken, (node) => textRangeContainsTextSpan(node, span));\n    const nodes = [];\n    chooseOverlappingNodes(span, enclosingNode, nodes);\n    if (file.end === span.start + span.length) {\n      nodes.push(file.endOfFileToken);\n    }\n    if (some(nodes, isSourceFile)) {\n      return void 0;\n    }\n    return nodes;\n  }\n  function chooseOverlappingNodes(span, node, result) {\n    if (!nodeOverlapsWithSpan(node, span)) {\n      return false;\n    }\n    if (textSpanContainsTextRange(span, node)) {\n      addSourceElement(node, result);\n      return true;\n    }\n    if (isBlockLike(node)) {\n      return chooseOverlappingBlockLike(span, node, result);\n    }\n    if (isClassLike(node)) {\n      return chooseOverlappingClassLike(span, node, result);\n    }\n    addSourceElement(node, result);\n    return true;\n  }\n  function nodeOverlapsWithSpan(node, span) {\n    const spanEnd = span.start + span.length;\n    return node.pos < spanEnd && node.end > span.start;\n  }\n  function addSourceElement(node, result) {\n    while (node.parent && !isSourceElement(node)) {\n      node = node.parent;\n    }\n    result.push(node);\n  }\n  function chooseOverlappingBlockLike(span, node, result) {\n    const childResult = [];\n    const stmts = node.statements.filter((stmt) => chooseOverlappingNodes(span, stmt, childResult));\n    if (stmts.length === node.statements.length) {\n      addSourceElement(node, result);\n      return true;\n    }\n    result.push(...childResult);\n    return false;\n  }\n  function chooseOverlappingClassLike(span, node, result) {\n    var _a2, _b, _c;\n    const overlaps = (n) => textRangeIntersectsWithTextSpan(n, span);\n    if (((_a2 = node.modifiers) == null ? void 0 : _a2.some(overlaps)) || node.name && overlaps(node.name) || ((_b = node.typeParameters) == null ? void 0 : _b.some(overlaps)) || ((_c = node.heritageClauses) == null ? void 0 : _c.some(overlaps))) {\n      addSourceElement(node, result);\n      return true;\n    }\n    const childResult = [];\n    const members = node.members.filter((member) => chooseOverlappingNodes(span, member, childResult));\n    if (members.length === node.members.length) {\n      addSourceElement(node, result);\n      return true;\n    }\n    result.push(...childResult);\n    return false;\n  }\n  function getSuggestionDiagnostics(fileName) {\n    synchronizeHostData();\n    return computeSuggestionDiagnostics(getValidSourceFile(fileName), program, cancellationToken);\n  }\n  function getCompilerOptionsDiagnostics() {\n    synchronizeHostData();\n    return [...program.getOptionsDiagnostics(cancellationToken), ...program.getGlobalDiagnostics(cancellationToken)];\n  }\n  function getCompletionsAtPosition2(fileName, position, options = emptyOptions, formattingSettings) {\n    const fullPreferences = {\n      ...identity(options),\n      // avoid excess property check\n      includeCompletionsForModuleExports: options.includeCompletionsForModuleExports || options.includeExternalModuleExports,\n      includeCompletionsWithInsertText: options.includeCompletionsWithInsertText || options.includeInsertTextCompletions\n    };\n    synchronizeHostData();\n    return ts_Completions_exports.getCompletionsAtPosition(\n      host,\n      program,\n      log,\n      getValidSourceFile(fileName),\n      position,\n      fullPreferences,\n      options.triggerCharacter,\n      options.triggerKind,\n      cancellationToken,\n      formattingSettings && ts_formatting_exports.getFormatContext(formattingSettings, host),\n      options.includeSymbol\n    );\n  }\n  function getCompletionEntryDetails2(fileName, position, name, formattingOptions, source, preferences = emptyOptions, data) {\n    synchronizeHostData();\n    return ts_Completions_exports.getCompletionEntryDetails(\n      program,\n      log,\n      getValidSourceFile(fileName),\n      position,\n      { name, source, data },\n      host,\n      formattingOptions && ts_formatting_exports.getFormatContext(formattingOptions, host),\n      // TODO: GH#18217\n      preferences,\n      cancellationToken\n    );\n  }\n  function getCompletionEntrySymbol2(fileName, position, name, source, preferences = emptyOptions) {\n    synchronizeHostData();\n    return ts_Completions_exports.getCompletionEntrySymbol(program, log, getValidSourceFile(fileName), position, { name, source }, host, preferences);\n  }\n  function getQuickInfoAtPosition(fileName, position, maximumLength, verbosityLevel) {\n    synchronizeHostData();\n    const sourceFile = getValidSourceFile(fileName);\n    const node = getTouchingPropertyName(sourceFile, position);\n    if (node === sourceFile) {\n      return void 0;\n    }\n    const typeChecker = program.getTypeChecker();\n    const nodeForQuickInfo = getNodeForQuickInfo(node);\n    const symbol = getSymbolAtLocationForQuickInfo(nodeForQuickInfo, typeChecker);\n    if (!symbol || typeChecker.isUnknownSymbol(symbol)) {\n      const type = shouldGetType(sourceFile, nodeForQuickInfo, position) ? typeChecker.getTypeAtLocation(nodeForQuickInfo) : void 0;\n      return type && {\n        kind: \"\" /* unknown */,\n        kindModifiers: \"\" /* none */,\n        textSpan: createTextSpanFromNode(nodeForQuickInfo, sourceFile),\n        displayParts: typeChecker.runWithCancellationToken(cancellationToken, (typeChecker2) => typeToDisplayParts(\n          typeChecker2,\n          type,\n          getContainerNode(nodeForQuickInfo),\n          /*flags*/\n          void 0,\n          verbosityLevel\n        )),\n        documentation: type.symbol ? type.symbol.getDocumentationComment(typeChecker) : void 0,\n        tags: type.symbol ? type.symbol.getJsDocTags(typeChecker) : void 0\n      };\n    }\n    const { symbolKind, displayParts, documentation, tags, canIncreaseVerbosityLevel } = typeChecker.runWithCancellationToken(\n      cancellationToken,\n      (typeChecker2) => ts_SymbolDisplay_exports.getSymbolDisplayPartsDocumentationAndSymbolKind(\n        typeChecker2,\n        symbol,\n        sourceFile,\n        getContainerNode(nodeForQuickInfo),\n        nodeForQuickInfo,\n        /*semanticMeaning*/\n        void 0,\n        /*alias*/\n        void 0,\n        maximumLength ?? defaultHoverMaximumTruncationLength,\n        verbosityLevel\n      )\n    );\n    return {\n      kind: symbolKind,\n      kindModifiers: ts_SymbolDisplay_exports.getSymbolModifiers(typeChecker, symbol),\n      textSpan: createTextSpanFromNode(nodeForQuickInfo, sourceFile),\n      displayParts,\n      documentation,\n      tags,\n      canIncreaseVerbosityLevel\n    };\n  }\n  function preparePasteEditsForFile(fileName, copiedTextRange) {\n    synchronizeHostData();\n    return ts_preparePasteEdits_exports.preparePasteEdits(\n      getValidSourceFile(fileName),\n      copiedTextRange,\n      program.getTypeChecker()\n    );\n  }\n  function getPasteEdits(args, formatOptions) {\n    synchronizeHostData();\n    return ts_PasteEdits_exports.pasteEditsProvider(\n      getValidSourceFile(args.targetFile),\n      args.pastedText,\n      args.pasteLocations,\n      args.copiedFrom ? { file: getValidSourceFile(args.copiedFrom.file), range: args.copiedFrom.range } : void 0,\n      host,\n      args.preferences,\n      ts_formatting_exports.getFormatContext(formatOptions, host),\n      cancellationToken\n    );\n  }\n  function getNodeForQuickInfo(node) {\n    if (isNewExpression(node.parent) && node.pos === node.parent.pos) {\n      return node.parent.expression;\n    }\n    if (isNamedTupleMember(node.parent) && node.pos === node.parent.pos) {\n      return node.parent;\n    }\n    if (isImportMeta(node.parent) && node.parent.name === node) {\n      return node.parent;\n    }\n    if (isJsxNamespacedName(node.parent)) {\n      return node.parent;\n    }\n    return node;\n  }\n  function shouldGetType(sourceFile, node, position) {\n    switch (node.kind) {\n      case 80 /* Identifier */:\n        if (node.flags & 16777216 /* JSDoc */ && !isInJSFile(node) && (node.parent.kind === 172 /* PropertySignature */ && node.parent.name === node || findAncestor(node, (n) => n.kind === 170 /* Parameter */))) {\n          return false;\n        }\n        return !isLabelName(node) && !isTagName(node) && !isConstTypeReference(node.parent);\n      case 212 /* PropertyAccessExpression */:\n      case 167 /* QualifiedName */:\n        return !isInComment(sourceFile, position);\n      case 110 /* ThisKeyword */:\n      case 198 /* ThisType */:\n      case 108 /* SuperKeyword */:\n      case 203 /* NamedTupleMember */:\n        return true;\n      case 237 /* MetaProperty */:\n        return isImportMeta(node);\n      default:\n        return false;\n    }\n  }\n  function getDefinitionAtPosition2(fileName, position, searchOtherFilesOnly, stopAtAlias) {\n    synchronizeHostData();\n    return ts_GoToDefinition_exports.getDefinitionAtPosition(program, getValidSourceFile(fileName), position, searchOtherFilesOnly, stopAtAlias);\n  }\n  function getDefinitionAndBoundSpan2(fileName, position) {\n    synchronizeHostData();\n    return ts_GoToDefinition_exports.getDefinitionAndBoundSpan(program, getValidSourceFile(fileName), position);\n  }\n  function getTypeDefinitionAtPosition2(fileName, position) {\n    synchronizeHostData();\n    return ts_GoToDefinition_exports.getTypeDefinitionAtPosition(program.getTypeChecker(), getValidSourceFile(fileName), position);\n  }\n  function getImplementationAtPosition(fileName, position) {\n    synchronizeHostData();\n    return ts_FindAllReferences_exports.getImplementationsAtPosition(program, cancellationToken, program.getSourceFiles(), getValidSourceFile(fileName), position);\n  }\n  function getDocumentHighlights(fileName, position, filesToSearch) {\n    const normalizedFileName = normalizePath(fileName);\n    Debug.assert(filesToSearch.some((f) => normalizePath(f) === normalizedFileName));\n    synchronizeHostData();\n    const sourceFilesToSearch = mapDefined(filesToSearch, (fileName2) => program.getSourceFile(fileName2));\n    const sourceFile = getValidSourceFile(fileName);\n    return DocumentHighlights.getDocumentHighlights(program, cancellationToken, sourceFile, position, sourceFilesToSearch);\n  }\n  function findRenameLocations(fileName, position, findInStrings, findInComments, preferences) {\n    synchronizeHostData();\n    const sourceFile = getValidSourceFile(fileName);\n    const node = getAdjustedRenameLocation(getTouchingPropertyName(sourceFile, position));\n    if (!ts_Rename_exports.nodeIsEligibleForRename(node)) return void 0;\n    if (isIdentifier(node) && (isJsxOpeningElement(node.parent) || isJsxClosingElement(node.parent)) && isIntrinsicJsxName(node.escapedText)) {\n      const { openingElement, closingElement } = node.parent.parent;\n      return [openingElement, closingElement].map((node2) => {\n        const textSpan = createTextSpanFromNode(node2.tagName, sourceFile);\n        return {\n          fileName: sourceFile.fileName,\n          textSpan,\n          ...ts_FindAllReferences_exports.toContextSpan(textSpan, sourceFile, node2.parent)\n        };\n      });\n    } else {\n      const quotePreference = getQuotePreference(sourceFile, preferences ?? emptyOptions);\n      const providePrefixAndSuffixTextForRename = typeof preferences === \"boolean\" ? preferences : preferences == null ? void 0 : preferences.providePrefixAndSuffixTextForRename;\n      return getReferencesWorker2(node, position, { findInStrings, findInComments, providePrefixAndSuffixTextForRename, use: ts_FindAllReferences_exports.FindReferencesUse.Rename }, (entry, originalNode, checker) => ts_FindAllReferences_exports.toRenameLocation(entry, originalNode, checker, providePrefixAndSuffixTextForRename || false, quotePreference));\n    }\n  }\n  function getReferencesAtPosition(fileName, position) {\n    synchronizeHostData();\n    return getReferencesWorker2(getTouchingPropertyName(getValidSourceFile(fileName), position), position, { use: ts_FindAllReferences_exports.FindReferencesUse.References }, ts_FindAllReferences_exports.toReferenceEntry);\n  }\n  function getReferencesWorker2(node, position, options, cb) {\n    synchronizeHostData();\n    const sourceFiles = options && options.use === ts_FindAllReferences_exports.FindReferencesUse.Rename ? program.getSourceFiles().filter((sourceFile) => !program.isSourceFileDefaultLibrary(sourceFile)) : program.getSourceFiles();\n    return ts_FindAllReferences_exports.findReferenceOrRenameEntries(program, cancellationToken, sourceFiles, node, position, options, cb);\n  }\n  function findReferences(fileName, position) {\n    synchronizeHostData();\n    return ts_FindAllReferences_exports.findReferencedSymbols(program, cancellationToken, program.getSourceFiles(), getValidSourceFile(fileName), position);\n  }\n  function getFileReferences(fileName) {\n    synchronizeHostData();\n    return ts_FindAllReferences_exports.Core.getReferencesForFileName(fileName, program, program.getSourceFiles()).map(ts_FindAllReferences_exports.toReferenceEntry);\n  }\n  function getNavigateToItems2(searchValue, maxResultCount, fileName, excludeDtsFiles = false, excludeLibFiles = false) {\n    synchronizeHostData();\n    const sourceFiles = fileName ? [getValidSourceFile(fileName)] : program.getSourceFiles();\n    return getNavigateToItems(sourceFiles, program.getTypeChecker(), cancellationToken, searchValue, maxResultCount, excludeDtsFiles, excludeLibFiles);\n  }\n  function getEmitOutput(fileName, emitOnlyDtsFiles, forceDtsEmit) {\n    synchronizeHostData();\n    const sourceFile = getValidSourceFile(fileName);\n    const customTransformers = host.getCustomTransformers && host.getCustomTransformers();\n    return getFileEmitOutput(program, sourceFile, !!emitOnlyDtsFiles, cancellationToken, customTransformers, forceDtsEmit);\n  }\n  function getSignatureHelpItems2(fileName, position, { triggerReason } = emptyOptions) {\n    synchronizeHostData();\n    const sourceFile = getValidSourceFile(fileName);\n    return ts_SignatureHelp_exports.getSignatureHelpItems(program, sourceFile, position, triggerReason, cancellationToken);\n  }\n  function getNonBoundSourceFile(fileName) {\n    return syntaxTreeCache.getCurrentSourceFile(fileName);\n  }\n  function getNameOrDottedNameSpan(fileName, startPos, _endPos) {\n    const sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName);\n    const node = getTouchingPropertyName(sourceFile, startPos);\n    if (node === sourceFile) {\n      return void 0;\n    }\n    switch (node.kind) {\n      case 212 /* PropertyAccessExpression */:\n      case 167 /* QualifiedName */:\n      case 11 /* StringLiteral */:\n      case 97 /* FalseKeyword */:\n      case 112 /* TrueKeyword */:\n      case 106 /* NullKeyword */:\n      case 108 /* SuperKeyword */:\n      case 110 /* ThisKeyword */:\n      case 198 /* ThisType */:\n      case 80 /* Identifier */:\n        break;\n      // Cant create the text span\n      default:\n        return void 0;\n    }\n    let nodeForStartPos = node;\n    while (true) {\n      if (isRightSideOfPropertyAccess(nodeForStartPos) || isRightSideOfQualifiedName(nodeForStartPos)) {\n        nodeForStartPos = nodeForStartPos.parent;\n      } else if (isNameOfModuleDeclaration(nodeForStartPos)) {\n        if (nodeForStartPos.parent.parent.kind === 268 /* ModuleDeclaration */ && nodeForStartPos.parent.parent.body === nodeForStartPos.parent) {\n          nodeForStartPos = nodeForStartPos.parent.parent.name;\n        } else {\n          break;\n        }\n      } else {\n        break;\n      }\n    }\n    return createTextSpanFromBounds(nodeForStartPos.getStart(), node.getEnd());\n  }\n  function getBreakpointStatementAtPosition(fileName, position) {\n    const sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName);\n    return ts_BreakpointResolver_exports.spanInSourceFileAtLocation(sourceFile, position);\n  }\n  function getNavigationBarItems2(fileName) {\n    return getNavigationBarItems(syntaxTreeCache.getCurrentSourceFile(fileName), cancellationToken);\n  }\n  function getNavigationTree2(fileName) {\n    return getNavigationTree(syntaxTreeCache.getCurrentSourceFile(fileName), cancellationToken);\n  }\n  function getSemanticClassifications3(fileName, span, format) {\n    synchronizeHostData();\n    const responseFormat = format || \"original\" /* Original */;\n    if (responseFormat === \"2020\" /* TwentyTwenty */) {\n      return getSemanticClassifications2(program, cancellationToken, getValidSourceFile(fileName), span);\n    } else {\n      return getSemanticClassifications(program.getTypeChecker(), cancellationToken, getValidSourceFile(fileName), program.getClassifiableNames(), span);\n    }\n  }\n  function getEncodedSemanticClassifications3(fileName, span, format) {\n    synchronizeHostData();\n    const responseFormat = format || \"original\" /* Original */;\n    if (responseFormat === \"original\" /* Original */) {\n      return getEncodedSemanticClassifications(program.getTypeChecker(), cancellationToken, getValidSourceFile(fileName), program.getClassifiableNames(), span);\n    } else {\n      return getEncodedSemanticClassifications2(program, cancellationToken, getValidSourceFile(fileName), span);\n    }\n  }\n  function getSyntacticClassifications2(fileName, span) {\n    return getSyntacticClassifications(cancellationToken, syntaxTreeCache.getCurrentSourceFile(fileName), span);\n  }\n  function getEncodedSyntacticClassifications2(fileName, span) {\n    return getEncodedSyntacticClassifications(cancellationToken, syntaxTreeCache.getCurrentSourceFile(fileName), span);\n  }\n  function getOutliningSpans(fileName) {\n    const sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName);\n    return ts_OutliningElementsCollector_exports.collectElements(sourceFile, cancellationToken);\n  }\n  const braceMatching = new Map(Object.entries({\n    [19 /* OpenBraceToken */]: 20 /* CloseBraceToken */,\n    [21 /* OpenParenToken */]: 22 /* CloseParenToken */,\n    [23 /* OpenBracketToken */]: 24 /* CloseBracketToken */,\n    [32 /* GreaterThanToken */]: 30 /* LessThanToken */\n  }));\n  braceMatching.forEach((value, key) => braceMatching.set(value.toString(), Number(key)));\n  function getBraceMatchingAtPosition(fileName, position) {\n    const sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName);\n    const token = getTouchingToken(sourceFile, position);\n    const matchKind = token.getStart(sourceFile) === position ? braceMatching.get(token.kind.toString()) : void 0;\n    const match = matchKind && findChildOfKind(token.parent, matchKind, sourceFile);\n    return match ? [createTextSpanFromNode(token, sourceFile), createTextSpanFromNode(match, sourceFile)].sort((a, b) => a.start - b.start) : emptyArray;\n  }\n  function getIndentationAtPosition(fileName, position, editorOptions) {\n    let start = timestamp();\n    const settings = toEditorSettings(editorOptions);\n    const sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName);\n    log(\"getIndentationAtPosition: getCurrentSourceFile: \" + (timestamp() - start));\n    start = timestamp();\n    const result = ts_formatting_exports.SmartIndenter.getIndentation(position, sourceFile, settings);\n    log(\"getIndentationAtPosition: computeIndentation  : \" + (timestamp() - start));\n    return result;\n  }\n  function getFormattingEditsForRange(fileName, start, end, options) {\n    const sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName);\n    return ts_formatting_exports.formatSelection(start, end, sourceFile, ts_formatting_exports.getFormatContext(toEditorSettings(options), host));\n  }\n  function getFormattingEditsForDocument(fileName, options) {\n    return ts_formatting_exports.formatDocument(syntaxTreeCache.getCurrentSourceFile(fileName), ts_formatting_exports.getFormatContext(toEditorSettings(options), host));\n  }\n  function getFormattingEditsAfterKeystroke(fileName, position, key, options) {\n    const sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName);\n    const formatContext = ts_formatting_exports.getFormatContext(toEditorSettings(options), host);\n    if (!isInComment(sourceFile, position)) {\n      switch (key) {\n        case \"{\":\n          return ts_formatting_exports.formatOnOpeningCurly(position, sourceFile, formatContext);\n        case \"}\":\n          return ts_formatting_exports.formatOnClosingCurly(position, sourceFile, formatContext);\n        case \";\":\n          return ts_formatting_exports.formatOnSemicolon(position, sourceFile, formatContext);\n        case \"\\n\":\n          return ts_formatting_exports.formatOnEnter(position, sourceFile, formatContext);\n      }\n    }\n    return [];\n  }\n  function getCodeFixesAtPosition(fileName, start, end, errorCodes68, formatOptions, preferences = emptyOptions) {\n    synchronizeHostData();\n    const sourceFile = getValidSourceFile(fileName);\n    const span = createTextSpanFromBounds(start, end);\n    const formatContext = ts_formatting_exports.getFormatContext(formatOptions, host);\n    return flatMap(deduplicate(errorCodes68, equateValues, compareValues), (errorCode) => {\n      cancellationToken.throwIfCancellationRequested();\n      return ts_codefix_exports.getFixes({ errorCode, sourceFile, span, program, host, cancellationToken, formatContext, preferences });\n    });\n  }\n  function getCombinedCodeFix(scope, fixId56, formatOptions, preferences = emptyOptions) {\n    synchronizeHostData();\n    Debug.assert(scope.type === \"file\");\n    const sourceFile = getValidSourceFile(scope.fileName);\n    const formatContext = ts_formatting_exports.getFormatContext(formatOptions, host);\n    return ts_codefix_exports.getAllFixes({ fixId: fixId56, sourceFile, program, host, cancellationToken, formatContext, preferences });\n  }\n  function organizeImports2(args, formatOptions, preferences = emptyOptions) {\n    synchronizeHostData();\n    Debug.assert(args.type === \"file\");\n    const sourceFile = getValidSourceFile(args.fileName);\n    if (containsParseError(sourceFile)) return emptyArray;\n    const formatContext = ts_formatting_exports.getFormatContext(formatOptions, host);\n    const mode = args.mode ?? (args.skipDestructiveCodeActions ? \"SortAndCombine\" /* SortAndCombine */ : \"All\" /* All */);\n    return ts_OrganizeImports_exports.organizeImports(sourceFile, formatContext, host, program, preferences, mode);\n  }\n  function getEditsForFileRename2(oldFilePath, newFilePath, formatOptions, preferences = emptyOptions) {\n    return getEditsForFileRename(getProgram(), oldFilePath, newFilePath, host, ts_formatting_exports.getFormatContext(formatOptions, host), preferences, sourceMapper);\n  }\n  function applyCodeActionCommand(fileName, actionOrFormatSettingsOrUndefined) {\n    const action = typeof fileName === \"string\" ? actionOrFormatSettingsOrUndefined : fileName;\n    return isArray(action) ? Promise.all(action.map((a) => applySingleCodeActionCommand(a))) : applySingleCodeActionCommand(action);\n  }\n  function applySingleCodeActionCommand(action) {\n    const getPath = (path) => toPath(path, currentDirectory, getCanonicalFileName);\n    Debug.assertEqual(action.type, \"install package\");\n    return host.installPackage ? host.installPackage({ fileName: getPath(action.file), packageName: action.packageName }) : Promise.reject(\"Host does not implement `installPackage`\");\n  }\n  function getDocCommentTemplateAtPosition2(fileName, position, options, formatOptions) {\n    const formatSettings = formatOptions ? ts_formatting_exports.getFormatContext(formatOptions, host).options : void 0;\n    return ts_JsDoc_exports.getDocCommentTemplateAtPosition(getNewLineOrDefaultFromHost(host, formatSettings), syntaxTreeCache.getCurrentSourceFile(fileName), position, options);\n  }\n  function isValidBraceCompletionAtPosition(fileName, position, openingBrace) {\n    if (openingBrace === 60 /* lessThan */) {\n      return false;\n    }\n    const sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName);\n    if (isInString(sourceFile, position)) {\n      return false;\n    }\n    if (isInsideJsxElementOrAttribute(sourceFile, position)) {\n      return openingBrace === 123 /* openBrace */;\n    }\n    if (isInTemplateString(sourceFile, position)) {\n      return false;\n    }\n    switch (openingBrace) {\n      case 39 /* singleQuote */:\n      case 34 /* doubleQuote */:\n      case 96 /* backtick */:\n        return !isInComment(sourceFile, position);\n    }\n    return true;\n  }\n  function getJsxClosingTagAtPosition(fileName, position) {\n    const sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName);\n    const token = findPrecedingToken(position, sourceFile);\n    if (!token) return void 0;\n    const element = token.kind === 32 /* GreaterThanToken */ && isJsxOpeningElement(token.parent) ? token.parent.parent : isJsxText(token) && isJsxElement(token.parent) ? token.parent : void 0;\n    if (element && isUnclosedTag(element)) {\n      return { newText: `</${element.openingElement.tagName.getText(sourceFile)}>` };\n    }\n    const fragment = token.kind === 32 /* GreaterThanToken */ && isJsxOpeningFragment(token.parent) ? token.parent.parent : isJsxText(token) && isJsxFragment(token.parent) ? token.parent : void 0;\n    if (fragment && isUnclosedFragment(fragment)) {\n      return { newText: \"</>\" };\n    }\n  }\n  function getLinkedEditingRangeAtPosition(fileName, position) {\n    const sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName);\n    const token = findPrecedingToken(position, sourceFile);\n    if (!token || token.parent.kind === 308 /* SourceFile */) return void 0;\n    const jsxTagWordPattern = \"[a-zA-Z0-9:\\\\-\\\\._$]*\";\n    if (isJsxFragment(token.parent.parent)) {\n      const openFragment = token.parent.parent.openingFragment;\n      const closeFragment = token.parent.parent.closingFragment;\n      if (containsParseError(openFragment) || containsParseError(closeFragment)) return void 0;\n      const openPos = openFragment.getStart(sourceFile) + 1;\n      const closePos = closeFragment.getStart(sourceFile) + 2;\n      if (position !== openPos && position !== closePos) return void 0;\n      return {\n        ranges: [{ start: openPos, length: 0 }, { start: closePos, length: 0 }],\n        wordPattern: jsxTagWordPattern\n      };\n    } else {\n      const tag = findAncestor(token.parent, (n) => {\n        if (isJsxOpeningElement(n) || isJsxClosingElement(n)) {\n          return true;\n        }\n        return false;\n      });\n      if (!tag) return void 0;\n      Debug.assert(isJsxOpeningElement(tag) || isJsxClosingElement(tag), \"tag should be opening or closing element\");\n      const openTag = tag.parent.openingElement;\n      const closeTag = tag.parent.closingElement;\n      const openTagNameStart = openTag.tagName.getStart(sourceFile);\n      const openTagNameEnd = openTag.tagName.end;\n      const closeTagNameStart = closeTag.tagName.getStart(sourceFile);\n      const closeTagNameEnd = closeTag.tagName.end;\n      if (openTagNameStart === openTag.getStart(sourceFile) || closeTagNameStart === closeTag.getStart(sourceFile) || openTagNameEnd === openTag.getEnd() || closeTagNameEnd === closeTag.getEnd()) return void 0;\n      if (!(openTagNameStart <= position && position <= openTagNameEnd || closeTagNameStart <= position && position <= closeTagNameEnd)) return void 0;\n      const openingTagText = openTag.tagName.getText(sourceFile);\n      if (openingTagText !== closeTag.tagName.getText(sourceFile)) return void 0;\n      return {\n        ranges: [{ start: openTagNameStart, length: openTagNameEnd - openTagNameStart }, { start: closeTagNameStart, length: closeTagNameEnd - closeTagNameStart }],\n        wordPattern: jsxTagWordPattern\n      };\n    }\n  }\n  function getLinesForRange(sourceFile, textRange) {\n    return {\n      lineStarts: sourceFile.getLineStarts(),\n      firstLine: sourceFile.getLineAndCharacterOfPosition(textRange.pos).line,\n      lastLine: sourceFile.getLineAndCharacterOfPosition(textRange.end).line\n    };\n  }\n  function toggleLineComment(fileName, textRange, insertComment) {\n    const sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName);\n    const textChanges2 = [];\n    const { lineStarts, firstLine, lastLine } = getLinesForRange(sourceFile, textRange);\n    let isCommenting = insertComment || false;\n    let leftMostPosition = Number.MAX_VALUE;\n    const lineTextStarts = /* @__PURE__ */ new Map();\n    const firstNonWhitespaceCharacterRegex = new RegExp(/\\S/);\n    const isJsx = isInsideJsxElement(sourceFile, lineStarts[firstLine]);\n    const openComment = isJsx ? \"{/*\" : \"//\";\n    for (let i = firstLine; i <= lastLine; i++) {\n      const lineText = sourceFile.text.substring(lineStarts[i], sourceFile.getLineEndOfPosition(lineStarts[i]));\n      const regExec = firstNonWhitespaceCharacterRegex.exec(lineText);\n      if (regExec) {\n        leftMostPosition = Math.min(leftMostPosition, regExec.index);\n        lineTextStarts.set(i.toString(), regExec.index);\n        if (lineText.substr(regExec.index, openComment.length) !== openComment) {\n          isCommenting = insertComment === void 0 || insertComment;\n        }\n      }\n    }\n    for (let i = firstLine; i <= lastLine; i++) {\n      if (firstLine !== lastLine && lineStarts[i] === textRange.end) {\n        continue;\n      }\n      const lineTextStart = lineTextStarts.get(i.toString());\n      if (lineTextStart !== void 0) {\n        if (isJsx) {\n          textChanges2.push(...toggleMultilineComment(fileName, { pos: lineStarts[i] + leftMostPosition, end: sourceFile.getLineEndOfPosition(lineStarts[i]) }, isCommenting, isJsx));\n        } else if (isCommenting) {\n          textChanges2.push({\n            newText: openComment,\n            span: {\n              length: 0,\n              start: lineStarts[i] + leftMostPosition\n            }\n          });\n        } else if (sourceFile.text.substr(lineStarts[i] + lineTextStart, openComment.length) === openComment) {\n          textChanges2.push({\n            newText: \"\",\n            span: {\n              length: openComment.length,\n              start: lineStarts[i] + lineTextStart\n            }\n          });\n        }\n      }\n    }\n    return textChanges2;\n  }\n  function toggleMultilineComment(fileName, textRange, insertComment, isInsideJsx) {\n    var _a2;\n    const sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName);\n    const textChanges2 = [];\n    const { text } = sourceFile;\n    let hasComment = false;\n    let isCommenting = insertComment || false;\n    const positions = [];\n    let { pos } = textRange;\n    const isJsx = isInsideJsx !== void 0 ? isInsideJsx : isInsideJsxElement(sourceFile, pos);\n    const openMultiline = isJsx ? \"{/*\" : \"/*\";\n    const closeMultiline = isJsx ? \"*/}\" : \"*/\";\n    const openMultilineRegex = isJsx ? \"\\\\{\\\\/\\\\*\" : \"\\\\/\\\\*\";\n    const closeMultilineRegex = isJsx ? \"\\\\*\\\\/\\\\}\" : \"\\\\*\\\\/\";\n    while (pos <= textRange.end) {\n      const offset = text.substr(pos, openMultiline.length) === openMultiline ? openMultiline.length : 0;\n      const commentRange = isInComment(sourceFile, pos + offset);\n      if (commentRange) {\n        if (isJsx) {\n          commentRange.pos--;\n          commentRange.end++;\n        }\n        positions.push(commentRange.pos);\n        if (commentRange.kind === 3 /* MultiLineCommentTrivia */) {\n          positions.push(commentRange.end);\n        }\n        hasComment = true;\n        pos = commentRange.end + 1;\n      } else {\n        const newPos = text.substring(pos, textRange.end).search(`(${openMultilineRegex})|(${closeMultilineRegex})`);\n        isCommenting = insertComment !== void 0 ? insertComment : isCommenting || !isTextWhiteSpaceLike(text, pos, newPos === -1 ? textRange.end : pos + newPos);\n        pos = newPos === -1 ? textRange.end + 1 : pos + newPos + closeMultiline.length;\n      }\n    }\n    if (isCommenting || !hasComment) {\n      if (((_a2 = isInComment(sourceFile, textRange.pos)) == null ? void 0 : _a2.kind) !== 2 /* SingleLineCommentTrivia */) {\n        insertSorted(positions, textRange.pos, compareValues);\n      }\n      insertSorted(positions, textRange.end, compareValues);\n      const firstPos = positions[0];\n      if (text.substr(firstPos, openMultiline.length) !== openMultiline) {\n        textChanges2.push({\n          newText: openMultiline,\n          span: {\n            length: 0,\n            start: firstPos\n          }\n        });\n      }\n      for (let i = 1; i < positions.length - 1; i++) {\n        if (text.substr(positions[i] - closeMultiline.length, closeMultiline.length) !== closeMultiline) {\n          textChanges2.push({\n            newText: closeMultiline,\n            span: {\n              length: 0,\n              start: positions[i]\n            }\n          });\n        }\n        if (text.substr(positions[i], openMultiline.length) !== openMultiline) {\n          textChanges2.push({\n            newText: openMultiline,\n            span: {\n              length: 0,\n              start: positions[i]\n            }\n          });\n        }\n      }\n      if (textChanges2.length % 2 !== 0) {\n        textChanges2.push({\n          newText: closeMultiline,\n          span: {\n            length: 0,\n            start: positions[positions.length - 1]\n          }\n        });\n      }\n    } else {\n      for (const pos2 of positions) {\n        const from = pos2 - closeMultiline.length > 0 ? pos2 - closeMultiline.length : 0;\n        const offset = text.substr(from, closeMultiline.length) === closeMultiline ? closeMultiline.length : 0;\n        textChanges2.push({\n          newText: \"\",\n          span: {\n            length: openMultiline.length,\n            start: pos2 - offset\n          }\n        });\n      }\n    }\n    return textChanges2;\n  }\n  function commentSelection(fileName, textRange) {\n    const sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName);\n    const { firstLine, lastLine } = getLinesForRange(sourceFile, textRange);\n    return firstLine === lastLine && textRange.pos !== textRange.end ? toggleMultilineComment(\n      fileName,\n      textRange,\n      /*insertComment*/\n      true\n    ) : toggleLineComment(\n      fileName,\n      textRange,\n      /*insertComment*/\n      true\n    );\n  }\n  function uncommentSelection(fileName, textRange) {\n    const sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName);\n    const textChanges2 = [];\n    const { pos } = textRange;\n    let { end } = textRange;\n    if (pos === end) {\n      end += isInsideJsxElement(sourceFile, pos) ? 2 : 1;\n    }\n    for (let i = pos; i <= end; i++) {\n      const commentRange = isInComment(sourceFile, i);\n      if (commentRange) {\n        switch (commentRange.kind) {\n          case 2 /* SingleLineCommentTrivia */:\n            textChanges2.push(...toggleLineComment(\n              fileName,\n              { end: commentRange.end, pos: commentRange.pos + 1 },\n              /*insertComment*/\n              false\n            ));\n            break;\n          case 3 /* MultiLineCommentTrivia */:\n            textChanges2.push(...toggleMultilineComment(\n              fileName,\n              { end: commentRange.end, pos: commentRange.pos + 1 },\n              /*insertComment*/\n              false\n            ));\n        }\n        i = commentRange.end + 1;\n      }\n    }\n    return textChanges2;\n  }\n  function isUnclosedTag({ openingElement, closingElement, parent: parent2 }) {\n    return !tagNamesAreEquivalent(openingElement.tagName, closingElement.tagName) || isJsxElement(parent2) && tagNamesAreEquivalent(openingElement.tagName, parent2.openingElement.tagName) && isUnclosedTag(parent2);\n  }\n  function isUnclosedFragment({ closingFragment, parent: parent2 }) {\n    return !!(closingFragment.flags & 262144 /* ThisNodeHasError */) || isJsxFragment(parent2) && isUnclosedFragment(parent2);\n  }\n  function getSpanOfEnclosingComment(fileName, position, onlyMultiLine) {\n    const sourceFile = syntaxTreeCache.getCurrentSourceFile(fileName);\n    const range = ts_formatting_exports.getRangeOfEnclosingComment(sourceFile, position);\n    return range && (!onlyMultiLine || range.kind === 3 /* MultiLineCommentTrivia */) ? createTextSpanFromRange(range) : void 0;\n  }\n  function getTodoComments(fileName, descriptors) {\n    synchronizeHostData();\n    const sourceFile = getValidSourceFile(fileName);\n    cancellationToken.throwIfCancellationRequested();\n    const fileContents = sourceFile.text;\n    const result = [];\n    if (descriptors.length > 0 && !isNodeModulesFile(sourceFile.fileName)) {\n      const regExp = getTodoCommentsRegExp();\n      let matchArray;\n      while (matchArray = regExp.exec(fileContents)) {\n        cancellationToken.throwIfCancellationRequested();\n        const firstDescriptorCaptureIndex = 3;\n        Debug.assert(matchArray.length === descriptors.length + firstDescriptorCaptureIndex);\n        const preamble = matchArray[1];\n        const matchPosition = matchArray.index + preamble.length;\n        if (!isInComment(sourceFile, matchPosition)) {\n          continue;\n        }\n        let descriptor;\n        for (let i = 0; i < descriptors.length; i++) {\n          if (matchArray[i + firstDescriptorCaptureIndex]) {\n            descriptor = descriptors[i];\n          }\n        }\n        if (descriptor === void 0) return Debug.fail();\n        if (isLetterOrDigit(fileContents.charCodeAt(matchPosition + descriptor.text.length))) {\n          continue;\n        }\n        const message = matchArray[2];\n        result.push({ descriptor, message, position: matchPosition });\n      }\n    }\n    return result;\n    function escapeRegExp(str) {\n      return str.replace(/[-[\\]/{}()*+?.\\\\^$|]/g, \"\\\\$&\");\n    }\n    function getTodoCommentsRegExp() {\n      const singleLineCommentStart = /(?:\\/{2,}\\s*)/.source;\n      const multiLineCommentStart = /(?:\\/\\*+\\s*)/.source;\n      const anyNumberOfSpacesAndAsterisksAtStartOfLine = /(?:^(?:\\s|\\*)*)/.source;\n      const preamble = \"(\" + anyNumberOfSpacesAndAsterisksAtStartOfLine + \"|\" + singleLineCommentStart + \"|\" + multiLineCommentStart + \")\";\n      const literals = \"(?:\" + map(descriptors, (d) => \"(\" + escapeRegExp(d.text) + \")\").join(\"|\") + \")\";\n      const endOfLineOrEndOfComment = /(?:$|\\*\\/)/.source;\n      const messageRemainder = /(?:.*?)/.source;\n      const messagePortion = \"(\" + literals + messageRemainder + \")\";\n      const regExpString = preamble + messagePortion + endOfLineOrEndOfComment;\n      return new RegExp(regExpString, \"gim\");\n    }\n    function isLetterOrDigit(char) {\n      return char >= 97 /* a */ && char <= 122 /* z */ || char >= 65 /* A */ && char <= 90 /* Z */ || char >= 48 /* _0 */ && char <= 57 /* _9 */;\n    }\n    function isNodeModulesFile(path) {\n      return path.includes(\"/node_modules/\");\n    }\n  }\n  function getRenameInfo2(fileName, position, preferences) {\n    synchronizeHostData();\n    return ts_Rename_exports.getRenameInfo(program, getValidSourceFile(fileName), position, preferences || {});\n  }\n  function getRefactorContext(file, positionOrRange, preferences, formatOptions, triggerReason, kind) {\n    const [startPosition, endPosition] = typeof positionOrRange === \"number\" ? [positionOrRange, void 0] : [positionOrRange.pos, positionOrRange.end];\n    return {\n      file,\n      startPosition,\n      endPosition,\n      program: getProgram(),\n      host,\n      formatContext: ts_formatting_exports.getFormatContext(formatOptions, host),\n      // TODO: GH#18217\n      cancellationToken,\n      preferences,\n      triggerReason,\n      kind\n    };\n  }\n  function getInlayHintsContext(file, span, preferences) {\n    return {\n      file,\n      program: getProgram(),\n      host,\n      span,\n      preferences,\n      cancellationToken\n    };\n  }\n  function getSmartSelectionRange2(fileName, position) {\n    return ts_SmartSelectionRange_exports.getSmartSelectionRange(position, syntaxTreeCache.getCurrentSourceFile(fileName));\n  }\n  function getApplicableRefactors2(fileName, positionOrRange, preferences = emptyOptions, triggerReason, kind, includeInteractiveActions) {\n    synchronizeHostData();\n    const file = getValidSourceFile(fileName);\n    return ts_refactor_exports.getApplicableRefactors(getRefactorContext(file, positionOrRange, preferences, emptyOptions, triggerReason, kind), includeInteractiveActions);\n  }\n  function getMoveToRefactoringFileSuggestions(fileName, positionOrRange, preferences = emptyOptions) {\n    synchronizeHostData();\n    const sourceFile = getValidSourceFile(fileName);\n    const allFiles = Debug.checkDefined(program.getSourceFiles());\n    const extension = extensionFromPath(fileName);\n    const toMove = getStatementsToMove(getRefactorContext(sourceFile, positionOrRange, preferences, emptyOptions));\n    const toMoveContainsJsx = containsJsx(toMove == null ? void 0 : toMove.all);\n    const files = mapDefined(allFiles, (file) => {\n      const fileNameExtension = extensionFromPath(file.fileName);\n      const isValidSourceFile = !(program == null ? void 0 : program.isSourceFileFromExternalLibrary(sourceFile)) && !(sourceFile === getValidSourceFile(file.fileName) || extension === \".ts\" /* Ts */ && fileNameExtension === \".d.ts\" /* Dts */ || extension === \".d.ts\" /* Dts */ && startsWith(getBaseFileName(file.fileName), \"lib.\") && fileNameExtension === \".d.ts\" /* Dts */);\n      return isValidSourceFile && (extension === fileNameExtension || (extension === \".tsx\" /* Tsx */ && fileNameExtension === \".ts\" /* Ts */ || extension === \".jsx\" /* Jsx */ && fileNameExtension === \".js\" /* Js */) && !toMoveContainsJsx) ? file.fileName : void 0;\n    });\n    return { newFileName: createNewFileName(sourceFile, program, host, toMove), files };\n  }\n  function getEditsForRefactor2(fileName, formatOptions, positionOrRange, refactorName14, actionName2, preferences = emptyOptions, interactiveRefactorArguments) {\n    synchronizeHostData();\n    const file = getValidSourceFile(fileName);\n    return ts_refactor_exports.getEditsForRefactor(getRefactorContext(file, positionOrRange, preferences, formatOptions), refactorName14, actionName2, interactiveRefactorArguments);\n  }\n  function toLineColumnOffset(fileName, position) {\n    if (position === 0) {\n      return { line: 0, character: 0 };\n    }\n    return sourceMapper.toLineColumnOffset(fileName, position);\n  }\n  function prepareCallHierarchy(fileName, position) {\n    synchronizeHostData();\n    const declarations = ts_CallHierarchy_exports.resolveCallHierarchyDeclaration(program, getTouchingPropertyName(getValidSourceFile(fileName), position));\n    return declarations && mapOneOrMany(declarations, (declaration) => ts_CallHierarchy_exports.createCallHierarchyItem(program, declaration));\n  }\n  function provideCallHierarchyIncomingCalls(fileName, position) {\n    synchronizeHostData();\n    const sourceFile = getValidSourceFile(fileName);\n    const declaration = firstOrOnly(ts_CallHierarchy_exports.resolveCallHierarchyDeclaration(program, position === 0 ? sourceFile : getTouchingPropertyName(sourceFile, position)));\n    return declaration ? ts_CallHierarchy_exports.getIncomingCalls(program, declaration, cancellationToken) : [];\n  }\n  function provideCallHierarchyOutgoingCalls(fileName, position) {\n    synchronizeHostData();\n    const sourceFile = getValidSourceFile(fileName);\n    const declaration = firstOrOnly(ts_CallHierarchy_exports.resolveCallHierarchyDeclaration(program, position === 0 ? sourceFile : getTouchingPropertyName(sourceFile, position)));\n    return declaration ? ts_CallHierarchy_exports.getOutgoingCalls(program, declaration) : [];\n  }\n  function provideInlayHints2(fileName, span, preferences = emptyOptions) {\n    synchronizeHostData();\n    const sourceFile = getValidSourceFile(fileName);\n    return ts_InlayHints_exports.provideInlayHints(getInlayHintsContext(sourceFile, span, preferences));\n  }\n  function mapCode2(sourceFile, contents, focusLocations, formatOptions, preferences) {\n    return ts_MapCode_exports.mapCode(\n      syntaxTreeCache.getCurrentSourceFile(sourceFile),\n      contents,\n      focusLocations,\n      host,\n      ts_formatting_exports.getFormatContext(formatOptions, host),\n      preferences\n    );\n  }\n  const ls = {\n    dispose,\n    cleanupSemanticCache,\n    getSyntacticDiagnostics,\n    getSemanticDiagnostics,\n    getRegionSemanticDiagnostics,\n    getSuggestionDiagnostics,\n    getCompilerOptionsDiagnostics,\n    getSyntacticClassifications: getSyntacticClassifications2,\n    getSemanticClassifications: getSemanticClassifications3,\n    getEncodedSyntacticClassifications: getEncodedSyntacticClassifications2,\n    getEncodedSemanticClassifications: getEncodedSemanticClassifications3,\n    getCompletionsAtPosition: getCompletionsAtPosition2,\n    getCompletionEntryDetails: getCompletionEntryDetails2,\n    getCompletionEntrySymbol: getCompletionEntrySymbol2,\n    getSignatureHelpItems: getSignatureHelpItems2,\n    getQuickInfoAtPosition,\n    getDefinitionAtPosition: getDefinitionAtPosition2,\n    getDefinitionAndBoundSpan: getDefinitionAndBoundSpan2,\n    getImplementationAtPosition,\n    getTypeDefinitionAtPosition: getTypeDefinitionAtPosition2,\n    getReferencesAtPosition,\n    findReferences,\n    getFileReferences,\n    getDocumentHighlights,\n    getNameOrDottedNameSpan,\n    getBreakpointStatementAtPosition,\n    getNavigateToItems: getNavigateToItems2,\n    getRenameInfo: getRenameInfo2,\n    getSmartSelectionRange: getSmartSelectionRange2,\n    findRenameLocations,\n    getNavigationBarItems: getNavigationBarItems2,\n    getNavigationTree: getNavigationTree2,\n    getOutliningSpans,\n    getTodoComments,\n    getBraceMatchingAtPosition,\n    getIndentationAtPosition,\n    getFormattingEditsForRange,\n    getFormattingEditsForDocument,\n    getFormattingEditsAfterKeystroke,\n    getDocCommentTemplateAtPosition: getDocCommentTemplateAtPosition2,\n    isValidBraceCompletionAtPosition,\n    getJsxClosingTagAtPosition,\n    getLinkedEditingRangeAtPosition,\n    getSpanOfEnclosingComment,\n    getCodeFixesAtPosition,\n    getCombinedCodeFix,\n    applyCodeActionCommand,\n    organizeImports: organizeImports2,\n    getEditsForFileRename: getEditsForFileRename2,\n    getEmitOutput,\n    getNonBoundSourceFile,\n    getProgram,\n    getCurrentProgram: () => program,\n    getAutoImportProvider,\n    updateIsDefinitionOfReferencedSymbols,\n    getApplicableRefactors: getApplicableRefactors2,\n    getEditsForRefactor: getEditsForRefactor2,\n    getMoveToRefactoringFileSuggestions,\n    toLineColumnOffset,\n    getSourceMapper: () => sourceMapper,\n    clearSourceMapperCache: () => sourceMapper.clearCache(),\n    prepareCallHierarchy,\n    provideCallHierarchyIncomingCalls,\n    provideCallHierarchyOutgoingCalls,\n    toggleLineComment,\n    toggleMultilineComment,\n    commentSelection,\n    uncommentSelection,\n    provideInlayHints: provideInlayHints2,\n    getSupportedCodeFixes,\n    preparePasteEditsForFile,\n    getPasteEdits,\n    mapCode: mapCode2\n  };\n  switch (languageServiceMode) {\n    case 0 /* Semantic */:\n      break;\n    case 1 /* PartialSemantic */:\n      invalidOperationsInPartialSemanticMode.forEach(\n        (key) => ls[key] = () => {\n          throw new Error(`LanguageService Operation: ${key} not allowed in LanguageServiceMode.PartialSemantic`);\n        }\n      );\n      break;\n    case 2 /* Syntactic */:\n      invalidOperationsInSyntacticMode.forEach(\n        (key) => ls[key] = () => {\n          throw new Error(`LanguageService Operation: ${key} not allowed in LanguageServiceMode.Syntactic`);\n        }\n      );\n      break;\n    default:\n      Debug.assertNever(languageServiceMode);\n  }\n  return ls;\n}\nfunction getNameTable(sourceFile) {\n  if (!sourceFile.nameTable) {\n    initializeNameTable(sourceFile);\n  }\n  return sourceFile.nameTable;\n}\nfunction initializeNameTable(sourceFile) {\n  const nameTable = sourceFile.nameTable = /* @__PURE__ */ new Map();\n  sourceFile.forEachChild(function walk(node) {\n    if (isIdentifier(node) && !isTagName(node) && node.escapedText || isStringOrNumericLiteralLike(node) && literalIsName(node)) {\n      const text = getEscapedTextOfIdentifierOrLiteral(node);\n      nameTable.set(text, nameTable.get(text) === void 0 ? node.pos : -1);\n    } else if (isPrivateIdentifier(node)) {\n      const text = node.escapedText;\n      nameTable.set(text, nameTable.get(text) === void 0 ? node.pos : -1);\n    }\n    forEachChild(node, walk);\n    if (hasJSDocNodes(node)) {\n      for (const jsDoc of node.jsDoc) {\n        forEachChild(jsDoc, walk);\n      }\n    }\n  });\n}\nfunction literalIsName(node) {\n  return isDeclarationName(node) || node.parent.kind === 284 /* ExternalModuleReference */ || isArgumentOfElementAccessExpression(node) || isLiteralComputedPropertyDeclarationName(node);\n}\nfunction getContainingObjectLiteralElement(node) {\n  const element = getContainingObjectLiteralElementWorker(node);\n  return element && (isObjectLiteralExpression(element.parent) || isJsxAttributes(element.parent)) ? element : void 0;\n}\nfunction getContainingObjectLiteralElementWorker(node) {\n  switch (node.kind) {\n    case 11 /* StringLiteral */:\n    case 15 /* NoSubstitutionTemplateLiteral */:\n    case 9 /* NumericLiteral */:\n      if (node.parent.kind === 168 /* ComputedPropertyName */) {\n        return isObjectLiteralElement(node.parent.parent) ? node.parent.parent : void 0;\n      }\n    // falls through\n    case 80 /* Identifier */:\n    case 296 /* JsxNamespacedName */:\n      return isObjectLiteralElement(node.parent) && (node.parent.parent.kind === 211 /* ObjectLiteralExpression */ || node.parent.parent.kind === 293 /* JsxAttributes */) && node.parent.name === node ? node.parent : void 0;\n  }\n  return void 0;\n}\nfunction getSymbolAtLocationForQuickInfo(node, checker) {\n  const object = getContainingObjectLiteralElement(node);\n  if (object) {\n    const contextualType = checker.getContextualType(object.parent);\n    const properties = contextualType && getPropertySymbolsFromContextualType(\n      object,\n      checker,\n      contextualType,\n      /*unionSymbolOk*/\n      false\n    );\n    if (properties && properties.length === 1) {\n      return first(properties);\n    }\n  }\n  return checker.getSymbolAtLocation(node);\n}\nfunction getPropertySymbolsFromContextualType(node, checker, contextualType, unionSymbolOk) {\n  const name = getNameFromPropertyName(node.name);\n  if (!name) return emptyArray;\n  if (!contextualType.isUnion()) {\n    const symbol = contextualType.getProperty(name);\n    return symbol ? [symbol] : emptyArray;\n  }\n  const filteredTypes = isObjectLiteralExpression(node.parent) || isJsxAttributes(node.parent) ? filter(contextualType.types, (t) => !checker.isTypeInvalidDueToUnionDiscriminant(t, node.parent)) : contextualType.types;\n  const discriminatedPropertySymbols = mapDefined(filteredTypes, (t) => t.getProperty(name));\n  if (unionSymbolOk && (discriminatedPropertySymbols.length === 0 || discriminatedPropertySymbols.length === contextualType.types.length)) {\n    const symbol = contextualType.getProperty(name);\n    if (symbol) return [symbol];\n  }\n  if (!filteredTypes.length && !discriminatedPropertySymbols.length) {\n    return mapDefined(contextualType.types, (t) => t.getProperty(name));\n  }\n  return deduplicate(discriminatedPropertySymbols, equateValues);\n}\nfunction isArgumentOfElementAccessExpression(node) {\n  return node && node.parent && node.parent.kind === 213 /* ElementAccessExpression */ && node.parent.argumentExpression === node;\n}\nfunction getDefaultLibFilePath(options) {\n  if (sys) {\n    return combinePaths(getDirectoryPath(normalizePath(sys.getExecutingFilePath())), getDefaultLibFileName(options));\n  }\n  throw new Error(\"getDefaultLibFilePath is only supported when consumed as a node module. \");\n}\nsetObjectAllocator(getServicesObjectAllocator());\n\n// src/services/transform.ts\nfunction transform(source, transformers, compilerOptions) {\n  const diagnostics = [];\n  compilerOptions = fixupCompilerOptions(compilerOptions, diagnostics);\n  const nodes = isArray(source) ? source : [source];\n  const result = transformNodes(\n    /*resolver*/\n    void 0,\n    /*host*/\n    void 0,\n    factory,\n    compilerOptions,\n    nodes,\n    transformers,\n    /*allowDtsFiles*/\n    true\n  );\n  result.diagnostics = concatenate(result.diagnostics, diagnostics);\n  return result;\n}\n\n// src/services/_namespaces/ts.BreakpointResolver.ts\nvar ts_BreakpointResolver_exports = {};\n__export(ts_BreakpointResolver_exports, {\n  spanInSourceFileAtLocation: () => spanInSourceFileAtLocation\n});\n\n// src/services/breakpoints.ts\nfunction spanInSourceFileAtLocation(sourceFile, position) {\n  if (sourceFile.isDeclarationFile) {\n    return void 0;\n  }\n  let tokenAtLocation = getTokenAtPosition(sourceFile, position);\n  const lineOfPosition = sourceFile.getLineAndCharacterOfPosition(position).line;\n  if (sourceFile.getLineAndCharacterOfPosition(tokenAtLocation.getStart(sourceFile)).line > lineOfPosition) {\n    const preceding = findPrecedingToken(tokenAtLocation.pos, sourceFile);\n    if (!preceding || sourceFile.getLineAndCharacterOfPosition(preceding.getEnd()).line !== lineOfPosition) {\n      return void 0;\n    }\n    tokenAtLocation = preceding;\n  }\n  if (tokenAtLocation.flags & 33554432 /* Ambient */) {\n    return void 0;\n  }\n  return spanInNode(tokenAtLocation);\n  function textSpan(startNode2, endNode2) {\n    const lastDecorator = canHaveDecorators(startNode2) ? findLast(startNode2.modifiers, isDecorator) : void 0;\n    const start = lastDecorator ? skipTrivia(sourceFile.text, lastDecorator.end) : startNode2.getStart(sourceFile);\n    return createTextSpanFromBounds(start, (endNode2 || startNode2).getEnd());\n  }\n  function textSpanEndingAtNextToken(startNode2, previousTokenToFindNextEndToken) {\n    return textSpan(startNode2, findNextToken(previousTokenToFindNextEndToken, previousTokenToFindNextEndToken.parent, sourceFile));\n  }\n  function spanInNodeIfStartsOnSameLine(node, otherwiseOnNode) {\n    if (node && lineOfPosition === sourceFile.getLineAndCharacterOfPosition(node.getStart(sourceFile)).line) {\n      return spanInNode(node);\n    }\n    return spanInNode(otherwiseOnNode);\n  }\n  function spanInNodeArray(nodeArray, node, match) {\n    if (nodeArray) {\n      const index = nodeArray.indexOf(node);\n      if (index >= 0) {\n        let start = index;\n        let end = index + 1;\n        while (start > 0 && match(nodeArray[start - 1])) start--;\n        while (end < nodeArray.length && match(nodeArray[end])) end++;\n        return createTextSpanFromBounds(skipTrivia(sourceFile.text, nodeArray[start].pos), nodeArray[end - 1].end);\n      }\n    }\n    return textSpan(node);\n  }\n  function spanInPreviousNode(node) {\n    return spanInNode(findPrecedingToken(node.pos, sourceFile));\n  }\n  function spanInNextNode(node) {\n    return spanInNode(findNextToken(node, node.parent, sourceFile));\n  }\n  function spanInNode(node) {\n    if (node) {\n      const { parent: parent2 } = node;\n      switch (node.kind) {\n        case 244 /* VariableStatement */:\n          return spanInVariableDeclaration(node.declarationList.declarations[0]);\n        case 261 /* VariableDeclaration */:\n        case 173 /* PropertyDeclaration */:\n        case 172 /* PropertySignature */:\n          return spanInVariableDeclaration(node);\n        case 170 /* Parameter */:\n          return spanInParameterDeclaration(node);\n        case 263 /* FunctionDeclaration */:\n        case 175 /* MethodDeclaration */:\n        case 174 /* MethodSignature */:\n        case 178 /* GetAccessor */:\n        case 179 /* SetAccessor */:\n        case 177 /* Constructor */:\n        case 219 /* FunctionExpression */:\n        case 220 /* ArrowFunction */:\n          return spanInFunctionDeclaration(node);\n        case 242 /* Block */:\n          if (isFunctionBlock(node)) {\n            return spanInFunctionBlock(node);\n          }\n        // falls through\n        case 269 /* ModuleBlock */:\n          return spanInBlock(node);\n        case 300 /* CatchClause */:\n          return spanInBlock(node.block);\n        case 245 /* ExpressionStatement */:\n          return textSpan(node.expression);\n        case 254 /* ReturnStatement */:\n          return textSpan(node.getChildAt(0), node.expression);\n        case 248 /* WhileStatement */:\n          return textSpanEndingAtNextToken(node, node.expression);\n        case 247 /* DoStatement */:\n          return spanInNode(node.statement);\n        case 260 /* DebuggerStatement */:\n          return textSpan(node.getChildAt(0));\n        case 246 /* IfStatement */:\n          return textSpanEndingAtNextToken(node, node.expression);\n        case 257 /* LabeledStatement */:\n          return spanInNode(node.statement);\n        case 253 /* BreakStatement */:\n        case 252 /* ContinueStatement */:\n          return textSpan(node.getChildAt(0), node.label);\n        case 249 /* ForStatement */:\n          return spanInForStatement(node);\n        case 250 /* ForInStatement */:\n          return textSpanEndingAtNextToken(node, node.expression);\n        case 251 /* ForOfStatement */:\n          return spanInInitializerOfForLike(node);\n        case 256 /* SwitchStatement */:\n          return textSpanEndingAtNextToken(node, node.expression);\n        case 297 /* CaseClause */:\n        case 298 /* DefaultClause */:\n          return spanInNode(node.statements[0]);\n        case 259 /* TryStatement */:\n          return spanInBlock(node.tryBlock);\n        case 258 /* ThrowStatement */:\n          return textSpan(node, node.expression);\n        case 278 /* ExportAssignment */:\n          return textSpan(node, node.expression);\n        case 272 /* ImportEqualsDeclaration */:\n          return textSpan(node, node.moduleReference);\n        case 273 /* ImportDeclaration */:\n          return textSpan(node, node.moduleSpecifier);\n        case 279 /* ExportDeclaration */:\n          return textSpan(node, node.moduleSpecifier);\n        case 268 /* ModuleDeclaration */:\n          if (getModuleInstanceState(node) !== 1 /* Instantiated */) {\n            return void 0;\n          }\n        // falls through\n        case 264 /* ClassDeclaration */:\n        case 267 /* EnumDeclaration */:\n        case 307 /* EnumMember */:\n        case 209 /* BindingElement */:\n          return textSpan(node);\n        case 255 /* WithStatement */:\n          return spanInNode(node.statement);\n        case 171 /* Decorator */:\n          return spanInNodeArray(parent2.modifiers, node, isDecorator);\n        case 207 /* ObjectBindingPattern */:\n        case 208 /* ArrayBindingPattern */:\n          return spanInBindingPattern(node);\n        // No breakpoint in interface, type alias\n        case 265 /* InterfaceDeclaration */:\n        case 266 /* TypeAliasDeclaration */:\n          return void 0;\n        // Tokens:\n        case 27 /* SemicolonToken */:\n        case 1 /* EndOfFileToken */:\n          return spanInNodeIfStartsOnSameLine(findPrecedingToken(node.pos, sourceFile));\n        case 28 /* CommaToken */:\n          return spanInPreviousNode(node);\n        case 19 /* OpenBraceToken */:\n          return spanInOpenBraceToken(node);\n        case 20 /* CloseBraceToken */:\n          return spanInCloseBraceToken(node);\n        case 24 /* CloseBracketToken */:\n          return spanInCloseBracketToken(node);\n        case 21 /* OpenParenToken */:\n          return spanInOpenParenToken(node);\n        case 22 /* CloseParenToken */:\n          return spanInCloseParenToken(node);\n        case 59 /* ColonToken */:\n          return spanInColonToken(node);\n        case 32 /* GreaterThanToken */:\n        case 30 /* LessThanToken */:\n          return spanInGreaterThanOrLessThanToken(node);\n        // Keywords:\n        case 117 /* WhileKeyword */:\n          return spanInWhileKeyword(node);\n        case 93 /* ElseKeyword */:\n        case 85 /* CatchKeyword */:\n        case 98 /* FinallyKeyword */:\n          return spanInNextNode(node);\n        case 165 /* OfKeyword */:\n          return spanInOfKeyword(node);\n        default:\n          if (isArrayLiteralOrObjectLiteralDestructuringPattern(node)) {\n            return spanInArrayLiteralOrObjectLiteralDestructuringPattern(node);\n          }\n          if ((node.kind === 80 /* Identifier */ || node.kind === 231 /* SpreadElement */ || node.kind === 304 /* PropertyAssignment */ || node.kind === 305 /* ShorthandPropertyAssignment */) && isArrayLiteralOrObjectLiteralDestructuringPattern(parent2)) {\n            return textSpan(node);\n          }\n          if (node.kind === 227 /* BinaryExpression */) {\n            const { left, operatorToken } = node;\n            if (isArrayLiteralOrObjectLiteralDestructuringPattern(left)) {\n              return spanInArrayLiteralOrObjectLiteralDestructuringPattern(\n                left\n              );\n            }\n            if (operatorToken.kind === 64 /* EqualsToken */ && isArrayLiteralOrObjectLiteralDestructuringPattern(node.parent)) {\n              return textSpan(node);\n            }\n            if (operatorToken.kind === 28 /* CommaToken */) {\n              return spanInNode(left);\n            }\n          }\n          if (isExpressionNode(node)) {\n            switch (parent2.kind) {\n              case 247 /* DoStatement */:\n                return spanInPreviousNode(node);\n              case 171 /* Decorator */:\n                return spanInNode(node.parent);\n              case 249 /* ForStatement */:\n              case 251 /* ForOfStatement */:\n                return textSpan(node);\n              case 227 /* BinaryExpression */:\n                if (node.parent.operatorToken.kind === 28 /* CommaToken */) {\n                  return textSpan(node);\n                }\n                break;\n              case 220 /* ArrowFunction */:\n                if (node.parent.body === node) {\n                  return textSpan(node);\n                }\n                break;\n            }\n          }\n          switch (node.parent.kind) {\n            case 304 /* PropertyAssignment */:\n              if (node.parent.name === node && !isArrayLiteralOrObjectLiteralDestructuringPattern(node.parent.parent)) {\n                return spanInNode(node.parent.initializer);\n              }\n              break;\n            case 217 /* TypeAssertionExpression */:\n              if (node.parent.type === node) {\n                return spanInNextNode(node.parent.type);\n              }\n              break;\n            case 261 /* VariableDeclaration */:\n            case 170 /* Parameter */: {\n              const { initializer, type } = node.parent;\n              if (initializer === node || type === node || isAssignmentOperator(node.kind)) {\n                return spanInPreviousNode(node);\n              }\n              break;\n            }\n            case 227 /* BinaryExpression */: {\n              const { left } = node.parent;\n              if (isArrayLiteralOrObjectLiteralDestructuringPattern(left) && node !== left) {\n                return spanInPreviousNode(node);\n              }\n              break;\n            }\n            default:\n              if (isFunctionLike(node.parent) && node.parent.type === node) {\n                return spanInPreviousNode(node);\n              }\n          }\n          return spanInNode(node.parent);\n      }\n    }\n    function textSpanFromVariableDeclaration(variableDeclaration) {\n      if (isVariableDeclarationList(variableDeclaration.parent) && variableDeclaration.parent.declarations[0] === variableDeclaration) {\n        return textSpan(findPrecedingToken(variableDeclaration.pos, sourceFile, variableDeclaration.parent), variableDeclaration);\n      } else {\n        return textSpan(variableDeclaration);\n      }\n    }\n    function spanInVariableDeclaration(variableDeclaration) {\n      if (variableDeclaration.parent.parent.kind === 250 /* ForInStatement */) {\n        return spanInNode(variableDeclaration.parent.parent);\n      }\n      const parent2 = variableDeclaration.parent;\n      if (isBindingPattern(variableDeclaration.name)) {\n        return spanInBindingPattern(variableDeclaration.name);\n      }\n      if (hasOnlyExpressionInitializer(variableDeclaration) && variableDeclaration.initializer || hasSyntacticModifier(variableDeclaration, 32 /* Export */) || parent2.parent.kind === 251 /* ForOfStatement */) {\n        return textSpanFromVariableDeclaration(variableDeclaration);\n      }\n      if (isVariableDeclarationList(variableDeclaration.parent) && variableDeclaration.parent.declarations[0] !== variableDeclaration) {\n        return spanInNode(findPrecedingToken(variableDeclaration.pos, sourceFile, variableDeclaration.parent));\n      }\n    }\n    function canHaveSpanInParameterDeclaration(parameter) {\n      return !!parameter.initializer || parameter.dotDotDotToken !== void 0 || hasSyntacticModifier(parameter, 1 /* Public */ | 2 /* Private */);\n    }\n    function spanInParameterDeclaration(parameter) {\n      if (isBindingPattern(parameter.name)) {\n        return spanInBindingPattern(parameter.name);\n      } else if (canHaveSpanInParameterDeclaration(parameter)) {\n        return textSpan(parameter);\n      } else {\n        const functionDeclaration = parameter.parent;\n        const indexOfParameter = functionDeclaration.parameters.indexOf(parameter);\n        Debug.assert(indexOfParameter !== -1);\n        if (indexOfParameter !== 0) {\n          return spanInParameterDeclaration(functionDeclaration.parameters[indexOfParameter - 1]);\n        } else {\n          return spanInNode(functionDeclaration.body);\n        }\n      }\n    }\n    function canFunctionHaveSpanInWholeDeclaration(functionDeclaration) {\n      return hasSyntacticModifier(functionDeclaration, 32 /* Export */) || functionDeclaration.parent.kind === 264 /* ClassDeclaration */ && functionDeclaration.kind !== 177 /* Constructor */;\n    }\n    function spanInFunctionDeclaration(functionDeclaration) {\n      if (!functionDeclaration.body) {\n        return void 0;\n      }\n      if (canFunctionHaveSpanInWholeDeclaration(functionDeclaration)) {\n        return textSpan(functionDeclaration);\n      }\n      return spanInNode(functionDeclaration.body);\n    }\n    function spanInFunctionBlock(block) {\n      const nodeForSpanInBlock = block.statements.length ? block.statements[0] : block.getLastToken();\n      if (canFunctionHaveSpanInWholeDeclaration(block.parent)) {\n        return spanInNodeIfStartsOnSameLine(block.parent, nodeForSpanInBlock);\n      }\n      return spanInNode(nodeForSpanInBlock);\n    }\n    function spanInBlock(block) {\n      switch (block.parent.kind) {\n        case 268 /* ModuleDeclaration */:\n          if (getModuleInstanceState(block.parent) !== 1 /* Instantiated */) {\n            return void 0;\n          }\n        // Set on parent if on same line otherwise on first statement\n        // falls through\n        case 248 /* WhileStatement */:\n        case 246 /* IfStatement */:\n        case 250 /* ForInStatement */:\n          return spanInNodeIfStartsOnSameLine(block.parent, block.statements[0]);\n        // Set span on previous token if it starts on same line otherwise on the first statement of the block\n        case 249 /* ForStatement */:\n        case 251 /* ForOfStatement */:\n          return spanInNodeIfStartsOnSameLine(findPrecedingToken(block.pos, sourceFile, block.parent), block.statements[0]);\n      }\n      return spanInNode(block.statements[0]);\n    }\n    function spanInInitializerOfForLike(forLikeStatement) {\n      if (forLikeStatement.initializer.kind === 262 /* VariableDeclarationList */) {\n        const variableDeclarationList = forLikeStatement.initializer;\n        if (variableDeclarationList.declarations.length > 0) {\n          return spanInNode(variableDeclarationList.declarations[0]);\n        }\n      } else {\n        return spanInNode(forLikeStatement.initializer);\n      }\n    }\n    function spanInForStatement(forStatement) {\n      if (forStatement.initializer) {\n        return spanInInitializerOfForLike(forStatement);\n      }\n      if (forStatement.condition) {\n        return textSpan(forStatement.condition);\n      }\n      if (forStatement.incrementor) {\n        return textSpan(forStatement.incrementor);\n      }\n    }\n    function spanInBindingPattern(bindingPattern) {\n      const firstBindingElement = forEach(bindingPattern.elements, (element) => element.kind !== 233 /* OmittedExpression */ ? element : void 0);\n      if (firstBindingElement) {\n        return spanInNode(firstBindingElement);\n      }\n      if (bindingPattern.parent.kind === 209 /* BindingElement */) {\n        return textSpan(bindingPattern.parent);\n      }\n      return textSpanFromVariableDeclaration(bindingPattern.parent);\n    }\n    function spanInArrayLiteralOrObjectLiteralDestructuringPattern(node2) {\n      Debug.assert(node2.kind !== 208 /* ArrayBindingPattern */ && node2.kind !== 207 /* ObjectBindingPattern */);\n      const elements = node2.kind === 210 /* ArrayLiteralExpression */ ? node2.elements : node2.properties;\n      const firstBindingElement = forEach(elements, (element) => element.kind !== 233 /* OmittedExpression */ ? element : void 0);\n      if (firstBindingElement) {\n        return spanInNode(firstBindingElement);\n      }\n      return textSpan(node2.parent.kind === 227 /* BinaryExpression */ ? node2.parent : node2);\n    }\n    function spanInOpenBraceToken(node2) {\n      switch (node2.parent.kind) {\n        case 267 /* EnumDeclaration */:\n          const enumDeclaration = node2.parent;\n          return spanInNodeIfStartsOnSameLine(findPrecedingToken(node2.pos, sourceFile, node2.parent), enumDeclaration.members.length ? enumDeclaration.members[0] : enumDeclaration.getLastToken(sourceFile));\n        case 264 /* ClassDeclaration */:\n          const classDeclaration = node2.parent;\n          return spanInNodeIfStartsOnSameLine(findPrecedingToken(node2.pos, sourceFile, node2.parent), classDeclaration.members.length ? classDeclaration.members[0] : classDeclaration.getLastToken(sourceFile));\n        case 270 /* CaseBlock */:\n          return spanInNodeIfStartsOnSameLine(node2.parent.parent, node2.parent.clauses[0]);\n      }\n      return spanInNode(node2.parent);\n    }\n    function spanInCloseBraceToken(node2) {\n      switch (node2.parent.kind) {\n        case 269 /* ModuleBlock */:\n          if (getModuleInstanceState(node2.parent.parent) !== 1 /* Instantiated */) {\n            return void 0;\n          }\n        // falls through\n        case 267 /* EnumDeclaration */:\n        case 264 /* ClassDeclaration */:\n          return textSpan(node2);\n        case 242 /* Block */:\n          if (isFunctionBlock(node2.parent)) {\n            return textSpan(node2);\n          }\n        // falls through\n        case 300 /* CatchClause */:\n          return spanInNode(lastOrUndefined(node2.parent.statements));\n        case 270 /* CaseBlock */:\n          const caseBlock = node2.parent;\n          const lastClause = lastOrUndefined(caseBlock.clauses);\n          if (lastClause) {\n            return spanInNode(lastOrUndefined(lastClause.statements));\n          }\n          return void 0;\n        case 207 /* ObjectBindingPattern */:\n          const bindingPattern = node2.parent;\n          return spanInNode(lastOrUndefined(bindingPattern.elements) || bindingPattern);\n        // Default to parent node\n        default:\n          if (isArrayLiteralOrObjectLiteralDestructuringPattern(node2.parent)) {\n            const objectLiteral = node2.parent;\n            return textSpan(lastOrUndefined(objectLiteral.properties) || objectLiteral);\n          }\n          return spanInNode(node2.parent);\n      }\n    }\n    function spanInCloseBracketToken(node2) {\n      switch (node2.parent.kind) {\n        case 208 /* ArrayBindingPattern */:\n          const bindingPattern = node2.parent;\n          return textSpan(lastOrUndefined(bindingPattern.elements) || bindingPattern);\n        default:\n          if (isArrayLiteralOrObjectLiteralDestructuringPattern(node2.parent)) {\n            const arrayLiteral = node2.parent;\n            return textSpan(lastOrUndefined(arrayLiteral.elements) || arrayLiteral);\n          }\n          return spanInNode(node2.parent);\n      }\n    }\n    function spanInOpenParenToken(node2) {\n      if (node2.parent.kind === 247 /* DoStatement */ || // Go to while keyword and do action instead\n      node2.parent.kind === 214 /* CallExpression */ || node2.parent.kind === 215 /* NewExpression */) {\n        return spanInPreviousNode(node2);\n      }\n      if (node2.parent.kind === 218 /* ParenthesizedExpression */) {\n        return spanInNextNode(node2);\n      }\n      return spanInNode(node2.parent);\n    }\n    function spanInCloseParenToken(node2) {\n      switch (node2.parent.kind) {\n        case 219 /* FunctionExpression */:\n        case 263 /* FunctionDeclaration */:\n        case 220 /* ArrowFunction */:\n        case 175 /* MethodDeclaration */:\n        case 174 /* MethodSignature */:\n        case 178 /* GetAccessor */:\n        case 179 /* SetAccessor */:\n        case 177 /* Constructor */:\n        case 248 /* WhileStatement */:\n        case 247 /* DoStatement */:\n        case 249 /* ForStatement */:\n        case 251 /* ForOfStatement */:\n        case 214 /* CallExpression */:\n        case 215 /* NewExpression */:\n        case 218 /* ParenthesizedExpression */:\n          return spanInPreviousNode(node2);\n        // Default to parent node\n        default:\n          return spanInNode(node2.parent);\n      }\n    }\n    function spanInColonToken(node2) {\n      if (isFunctionLike(node2.parent) || node2.parent.kind === 304 /* PropertyAssignment */ || node2.parent.kind === 170 /* Parameter */) {\n        return spanInPreviousNode(node2);\n      }\n      return spanInNode(node2.parent);\n    }\n    function spanInGreaterThanOrLessThanToken(node2) {\n      if (node2.parent.kind === 217 /* TypeAssertionExpression */) {\n        return spanInNextNode(node2);\n      }\n      return spanInNode(node2.parent);\n    }\n    function spanInWhileKeyword(node2) {\n      if (node2.parent.kind === 247 /* DoStatement */) {\n        return textSpanEndingAtNextToken(node2, node2.parent.expression);\n      }\n      return spanInNode(node2.parent);\n    }\n    function spanInOfKeyword(node2) {\n      if (node2.parent.kind === 251 /* ForOfStatement */) {\n        return spanInNextNode(node2);\n      }\n      return spanInNode(node2.parent);\n    }\n  }\n}\n\n// src/services/_namespaces/ts.CallHierarchy.ts\nvar ts_CallHierarchy_exports = {};\n__export(ts_CallHierarchy_exports, {\n  createCallHierarchyItem: () => createCallHierarchyItem,\n  getIncomingCalls: () => getIncomingCalls,\n  getOutgoingCalls: () => getOutgoingCalls,\n  resolveCallHierarchyDeclaration: () => resolveCallHierarchyDeclaration\n});\n\n// src/services/callHierarchy.ts\nfunction isNamedExpression(node) {\n  return (isFunctionExpression(node) || isClassExpression(node)) && isNamedDeclaration(node);\n}\nfunction isVariableLike2(node) {\n  return isPropertyDeclaration(node) || isVariableDeclaration(node);\n}\nfunction isAssignedExpression(node) {\n  return (isFunctionExpression(node) || isArrowFunction(node) || isClassExpression(node)) && isVariableLike2(node.parent) && node === node.parent.initializer && isIdentifier(node.parent.name) && (!!(getCombinedNodeFlags(node.parent) & 2 /* Const */) || isPropertyDeclaration(node.parent));\n}\nfunction isPossibleCallHierarchyDeclaration(node) {\n  return isSourceFile(node) || isModuleDeclaration(node) || isFunctionDeclaration(node) || isFunctionExpression(node) || isClassDeclaration(node) || isClassExpression(node) || isClassStaticBlockDeclaration(node) || isMethodDeclaration(node) || isMethodSignature(node) || isGetAccessorDeclaration(node) || isSetAccessorDeclaration(node);\n}\nfunction isValidCallHierarchyDeclaration(node) {\n  return isSourceFile(node) || isModuleDeclaration(node) && isIdentifier(node.name) || isFunctionDeclaration(node) || isClassDeclaration(node) || isClassStaticBlockDeclaration(node) || isMethodDeclaration(node) || isMethodSignature(node) || isGetAccessorDeclaration(node) || isSetAccessorDeclaration(node) || isNamedExpression(node) || isAssignedExpression(node);\n}\nfunction getCallHierarchyDeclarationReferenceNode(node) {\n  if (isSourceFile(node)) return node;\n  if (isNamedDeclaration(node)) return node.name;\n  if (isAssignedExpression(node)) return node.parent.name;\n  return Debug.checkDefined(node.modifiers && find(node.modifiers, isDefaultModifier3));\n}\nfunction isDefaultModifier3(node) {\n  return node.kind === 90 /* DefaultKeyword */;\n}\nfunction getSymbolOfCallHierarchyDeclaration(typeChecker, node) {\n  const location = getCallHierarchyDeclarationReferenceNode(node);\n  return location && typeChecker.getSymbolAtLocation(location);\n}\nfunction getCallHierarchyItemName(program, node) {\n  if (isSourceFile(node)) {\n    return { text: node.fileName, pos: 0, end: 0 };\n  }\n  if ((isFunctionDeclaration(node) || isClassDeclaration(node)) && !isNamedDeclaration(node)) {\n    const defaultModifier = node.modifiers && find(node.modifiers, isDefaultModifier3);\n    if (defaultModifier) {\n      return { text: \"default\", pos: defaultModifier.getStart(), end: defaultModifier.getEnd() };\n    }\n  }\n  if (isClassStaticBlockDeclaration(node)) {\n    const sourceFile = node.getSourceFile();\n    const pos = skipTrivia(sourceFile.text, moveRangePastModifiers(node).pos);\n    const end = pos + 6;\n    const typeChecker = program.getTypeChecker();\n    const symbol = typeChecker.getSymbolAtLocation(node.parent);\n    const prefix = symbol ? `${typeChecker.symbolToString(symbol, node.parent)} ` : \"\";\n    return { text: `${prefix}static {}`, pos, end };\n  }\n  const declName = isAssignedExpression(node) ? node.parent.name : Debug.checkDefined(getNameOfDeclaration(node), \"Expected call hierarchy item to have a name\");\n  let text = isIdentifier(declName) ? idText(declName) : isStringOrNumericLiteralLike(declName) ? declName.text : isComputedPropertyName(declName) ? isStringOrNumericLiteralLike(declName.expression) ? declName.expression.text : void 0 : void 0;\n  if (text === void 0) {\n    const typeChecker = program.getTypeChecker();\n    const symbol = typeChecker.getSymbolAtLocation(declName);\n    if (symbol) {\n      text = typeChecker.symbolToString(symbol, node);\n    }\n  }\n  if (text === void 0) {\n    const printer = createPrinterWithRemoveCommentsOmitTrailingSemicolon();\n    text = usingSingleLineStringWriter((writer) => printer.writeNode(4 /* Unspecified */, node, node.getSourceFile(), writer));\n  }\n  return { text, pos: declName.getStart(), end: declName.getEnd() };\n}\nfunction getCallHierarchItemContainerName(node) {\n  var _a, _b, _c, _d;\n  if (isAssignedExpression(node)) {\n    if (isPropertyDeclaration(node.parent) && isClassLike(node.parent.parent)) {\n      return isClassExpression(node.parent.parent) ? (_a = getAssignedName(node.parent.parent)) == null ? void 0 : _a.getText() : (_b = node.parent.parent.name) == null ? void 0 : _b.getText();\n    }\n    if (isModuleBlock(node.parent.parent.parent.parent) && isIdentifier(node.parent.parent.parent.parent.parent.name)) {\n      return node.parent.parent.parent.parent.parent.name.getText();\n    }\n    return;\n  }\n  switch (node.kind) {\n    case 178 /* GetAccessor */:\n    case 179 /* SetAccessor */:\n    case 175 /* MethodDeclaration */:\n      if (node.parent.kind === 211 /* ObjectLiteralExpression */) {\n        return (_c = getAssignedName(node.parent)) == null ? void 0 : _c.getText();\n      }\n      return (_d = getNameOfDeclaration(node.parent)) == null ? void 0 : _d.getText();\n    case 263 /* FunctionDeclaration */:\n    case 264 /* ClassDeclaration */:\n    case 268 /* ModuleDeclaration */:\n      if (isModuleBlock(node.parent) && isIdentifier(node.parent.parent.name)) {\n        return node.parent.parent.name.getText();\n      }\n  }\n}\nfunction findImplementation(typeChecker, node) {\n  if (node.body) {\n    return node;\n  }\n  if (isConstructorDeclaration(node)) {\n    return getFirstConstructorWithBody(node.parent);\n  }\n  if (isFunctionDeclaration(node) || isMethodDeclaration(node)) {\n    const symbol = getSymbolOfCallHierarchyDeclaration(typeChecker, node);\n    if (symbol && symbol.valueDeclaration && isFunctionLikeDeclaration(symbol.valueDeclaration) && symbol.valueDeclaration.body) {\n      return symbol.valueDeclaration;\n    }\n    return void 0;\n  }\n  return node;\n}\nfunction findAllInitialDeclarations(typeChecker, node) {\n  const symbol = getSymbolOfCallHierarchyDeclaration(typeChecker, node);\n  let declarations;\n  if (symbol && symbol.declarations) {\n    const indices = indicesOf(symbol.declarations);\n    const keys = map(symbol.declarations, (decl) => ({ file: decl.getSourceFile().fileName, pos: decl.pos }));\n    indices.sort((a, b) => compareStringsCaseSensitive(keys[a].file, keys[b].file) || keys[a].pos - keys[b].pos);\n    const sortedDeclarations = map(indices, (i) => symbol.declarations[i]);\n    let lastDecl;\n    for (const decl of sortedDeclarations) {\n      if (isValidCallHierarchyDeclaration(decl)) {\n        if (!lastDecl || lastDecl.parent !== decl.parent || lastDecl.end !== decl.pos) {\n          declarations = append(declarations, decl);\n        }\n        lastDecl = decl;\n      }\n    }\n  }\n  return declarations;\n}\nfunction findImplementationOrAllInitialDeclarations(typeChecker, node) {\n  if (isClassStaticBlockDeclaration(node)) {\n    return node;\n  }\n  if (isFunctionLikeDeclaration(node)) {\n    return findImplementation(typeChecker, node) ?? findAllInitialDeclarations(typeChecker, node) ?? node;\n  }\n  return findAllInitialDeclarations(typeChecker, node) ?? node;\n}\nfunction resolveCallHierarchyDeclaration(program, location) {\n  const typeChecker = program.getTypeChecker();\n  let followingSymbol = false;\n  while (true) {\n    if (isValidCallHierarchyDeclaration(location)) {\n      return findImplementationOrAllInitialDeclarations(typeChecker, location);\n    }\n    if (isPossibleCallHierarchyDeclaration(location)) {\n      const ancestor = findAncestor(location, isValidCallHierarchyDeclaration);\n      return ancestor && findImplementationOrAllInitialDeclarations(typeChecker, ancestor);\n    }\n    if (isDeclarationName(location)) {\n      if (isValidCallHierarchyDeclaration(location.parent)) {\n        return findImplementationOrAllInitialDeclarations(typeChecker, location.parent);\n      }\n      if (isPossibleCallHierarchyDeclaration(location.parent)) {\n        const ancestor = findAncestor(location.parent, isValidCallHierarchyDeclaration);\n        return ancestor && findImplementationOrAllInitialDeclarations(typeChecker, ancestor);\n      }\n      if (isVariableLike2(location.parent) && location.parent.initializer && isAssignedExpression(location.parent.initializer)) {\n        return location.parent.initializer;\n      }\n      return void 0;\n    }\n    if (isConstructorDeclaration(location)) {\n      if (isValidCallHierarchyDeclaration(location.parent)) {\n        return location.parent;\n      }\n      return void 0;\n    }\n    if (location.kind === 126 /* StaticKeyword */ && isClassStaticBlockDeclaration(location.parent)) {\n      location = location.parent;\n      continue;\n    }\n    if (isVariableDeclaration(location) && location.initializer && isAssignedExpression(location.initializer)) {\n      return location.initializer;\n    }\n    if (!followingSymbol) {\n      let symbol = typeChecker.getSymbolAtLocation(location);\n      if (symbol) {\n        if (symbol.flags & 2097152 /* Alias */) {\n          symbol = typeChecker.getAliasedSymbol(symbol);\n        }\n        if (symbol.valueDeclaration) {\n          followingSymbol = true;\n          location = symbol.valueDeclaration;\n          continue;\n        }\n      }\n    }\n    return void 0;\n  }\n}\nfunction createCallHierarchyItem(program, node) {\n  const sourceFile = node.getSourceFile();\n  const name = getCallHierarchyItemName(program, node);\n  const containerName = getCallHierarchItemContainerName(node);\n  const kind = getNodeKind(node);\n  const kindModifiers = getNodeModifiers(node);\n  const span = createTextSpanFromBounds(skipTrivia(\n    sourceFile.text,\n    node.getFullStart(),\n    /*stopAfterLineBreak*/\n    false,\n    /*stopAtComments*/\n    true\n  ), node.getEnd());\n  const selectionSpan = createTextSpanFromBounds(name.pos, name.end);\n  return { file: sourceFile.fileName, kind, kindModifiers, name: name.text, containerName, span, selectionSpan };\n}\nfunction isDefined(x) {\n  return x !== void 0;\n}\nfunction convertEntryToCallSite(entry) {\n  if (entry.kind === ts_FindAllReferences_exports.EntryKind.Node) {\n    const { node } = entry;\n    if (isCallOrNewExpressionTarget(\n      node,\n      /*includeElementAccess*/\n      true,\n      /*skipPastOuterExpressions*/\n      true\n    ) || isTaggedTemplateTag(\n      node,\n      /*includeElementAccess*/\n      true,\n      /*skipPastOuterExpressions*/\n      true\n    ) || isDecoratorTarget(\n      node,\n      /*includeElementAccess*/\n      true,\n      /*skipPastOuterExpressions*/\n      true\n    ) || isJsxOpeningLikeElementTagName(\n      node,\n      /*includeElementAccess*/\n      true,\n      /*skipPastOuterExpressions*/\n      true\n    ) || isRightSideOfPropertyAccess(node) || isArgumentExpressionOfElementAccess(node)) {\n      const sourceFile = node.getSourceFile();\n      const ancestor = findAncestor(node, isValidCallHierarchyDeclaration) || sourceFile;\n      return { declaration: ancestor, range: createTextRangeFromNode(node, sourceFile) };\n    }\n  }\n}\nfunction getCallSiteGroupKey(entry) {\n  return getNodeId(entry.declaration);\n}\nfunction createCallHierarchyIncomingCall(from, fromSpans) {\n  return { from, fromSpans };\n}\nfunction convertCallSiteGroupToIncomingCall(program, entries) {\n  return createCallHierarchyIncomingCall(createCallHierarchyItem(program, entries[0].declaration), map(entries, (entry) => createTextSpanFromRange(entry.range)));\n}\nfunction getIncomingCalls(program, declaration, cancellationToken) {\n  if (isSourceFile(declaration) || isModuleDeclaration(declaration) || isClassStaticBlockDeclaration(declaration)) {\n    return [];\n  }\n  const location = getCallHierarchyDeclarationReferenceNode(declaration);\n  const calls = filter(ts_FindAllReferences_exports.findReferenceOrRenameEntries(\n    program,\n    cancellationToken,\n    program.getSourceFiles(),\n    location,\n    /*position*/\n    0,\n    { use: ts_FindAllReferences_exports.FindReferencesUse.References },\n    convertEntryToCallSite\n  ), isDefined);\n  return calls ? group(calls, getCallSiteGroupKey, (entries) => convertCallSiteGroupToIncomingCall(program, entries)) : [];\n}\nfunction createCallSiteCollector(program, callSites) {\n  function recordCallSite(node) {\n    const target = isTaggedTemplateExpression(node) ? node.tag : isJsxOpeningLikeElement(node) ? node.tagName : isAccessExpression(node) ? node : isClassStaticBlockDeclaration(node) ? node : node.expression;\n    const declaration = resolveCallHierarchyDeclaration(program, target);\n    if (declaration) {\n      const range = createTextRangeFromNode(target, node.getSourceFile());\n      if (isArray(declaration)) {\n        for (const decl of declaration) {\n          callSites.push({ declaration: decl, range });\n        }\n      } else {\n        callSites.push({ declaration, range });\n      }\n    }\n  }\n  function collect(node) {\n    if (!node) return;\n    if (node.flags & 33554432 /* Ambient */) {\n      return;\n    }\n    if (isValidCallHierarchyDeclaration(node)) {\n      if (isClassLike(node)) {\n        for (const member of node.members) {\n          if (member.name && isComputedPropertyName(member.name)) {\n            collect(member.name.expression);\n          }\n        }\n      }\n      return;\n    }\n    switch (node.kind) {\n      case 80 /* Identifier */:\n      case 272 /* ImportEqualsDeclaration */:\n      case 273 /* ImportDeclaration */:\n      case 279 /* ExportDeclaration */:\n      case 265 /* InterfaceDeclaration */:\n      case 266 /* TypeAliasDeclaration */:\n        return;\n      case 176 /* ClassStaticBlockDeclaration */:\n        recordCallSite(node);\n        return;\n      case 217 /* TypeAssertionExpression */:\n      case 235 /* AsExpression */:\n        collect(node.expression);\n        return;\n      case 261 /* VariableDeclaration */:\n      case 170 /* Parameter */:\n        collect(node.name);\n        collect(node.initializer);\n        return;\n      case 214 /* CallExpression */:\n        recordCallSite(node);\n        collect(node.expression);\n        forEach(node.arguments, collect);\n        return;\n      case 215 /* NewExpression */:\n        recordCallSite(node);\n        collect(node.expression);\n        forEach(node.arguments, collect);\n        return;\n      case 216 /* TaggedTemplateExpression */:\n        recordCallSite(node);\n        collect(node.tag);\n        collect(node.template);\n        return;\n      case 287 /* JsxOpeningElement */:\n      case 286 /* JsxSelfClosingElement */:\n        recordCallSite(node);\n        collect(node.tagName);\n        collect(node.attributes);\n        return;\n      case 171 /* Decorator */:\n        recordCallSite(node);\n        collect(node.expression);\n        return;\n      case 212 /* PropertyAccessExpression */:\n      case 213 /* ElementAccessExpression */:\n        recordCallSite(node);\n        forEachChild(node, collect);\n        break;\n      case 239 /* SatisfiesExpression */:\n        collect(node.expression);\n        return;\n    }\n    if (isPartOfTypeNode(node)) {\n      return;\n    }\n    forEachChild(node, collect);\n  }\n  return collect;\n}\nfunction collectCallSitesOfSourceFile(node, collect) {\n  forEach(node.statements, collect);\n}\nfunction collectCallSitesOfModuleDeclaration(node, collect) {\n  if (!hasSyntacticModifier(node, 128 /* Ambient */) && node.body && isModuleBlock(node.body)) {\n    forEach(node.body.statements, collect);\n  }\n}\nfunction collectCallSitesOfFunctionLikeDeclaration(typeChecker, node, collect) {\n  const implementation = findImplementation(typeChecker, node);\n  if (implementation) {\n    forEach(implementation.parameters, collect);\n    collect(implementation.body);\n  }\n}\nfunction collectCallSitesOfClassStaticBlockDeclaration(node, collect) {\n  collect(node.body);\n}\nfunction collectCallSitesOfClassLikeDeclaration(node, collect) {\n  forEach(node.modifiers, collect);\n  const heritage = getClassExtendsHeritageElement(node);\n  if (heritage) {\n    collect(heritage.expression);\n  }\n  for (const member of node.members) {\n    if (canHaveModifiers(member)) {\n      forEach(member.modifiers, collect);\n    }\n    if (isPropertyDeclaration(member)) {\n      collect(member.initializer);\n    } else if (isConstructorDeclaration(member) && member.body) {\n      forEach(member.parameters, collect);\n      collect(member.body);\n    } else if (isClassStaticBlockDeclaration(member)) {\n      collect(member);\n    }\n  }\n}\nfunction collectCallSites(program, node) {\n  const callSites = [];\n  const collect = createCallSiteCollector(program, callSites);\n  switch (node.kind) {\n    case 308 /* SourceFile */:\n      collectCallSitesOfSourceFile(node, collect);\n      break;\n    case 268 /* ModuleDeclaration */:\n      collectCallSitesOfModuleDeclaration(node, collect);\n      break;\n    case 263 /* FunctionDeclaration */:\n    case 219 /* FunctionExpression */:\n    case 220 /* ArrowFunction */:\n    case 175 /* MethodDeclaration */:\n    case 178 /* GetAccessor */:\n    case 179 /* SetAccessor */:\n      collectCallSitesOfFunctionLikeDeclaration(program.getTypeChecker(), node, collect);\n      break;\n    case 264 /* ClassDeclaration */:\n    case 232 /* ClassExpression */:\n      collectCallSitesOfClassLikeDeclaration(node, collect);\n      break;\n    case 176 /* ClassStaticBlockDeclaration */:\n      collectCallSitesOfClassStaticBlockDeclaration(node, collect);\n      break;\n    default:\n      Debug.assertNever(node);\n  }\n  return callSites;\n}\nfunction createCallHierarchyOutgoingCall(to, fromSpans) {\n  return { to, fromSpans };\n}\nfunction convertCallSiteGroupToOutgoingCall(program, entries) {\n  return createCallHierarchyOutgoingCall(createCallHierarchyItem(program, entries[0].declaration), map(entries, (entry) => createTextSpanFromRange(entry.range)));\n}\nfunction getOutgoingCalls(program, declaration) {\n  if (declaration.flags & 33554432 /* Ambient */ || isMethodSignature(declaration)) {\n    return [];\n  }\n  return group(collectCallSites(program, declaration), getCallSiteGroupKey, (entries) => convertCallSiteGroupToOutgoingCall(program, entries));\n}\n\n// src/services/_namespaces/ts.classifier.ts\nvar ts_classifier_exports = {};\n__export(ts_classifier_exports, {\n  v2020: () => ts_classifier_v2020_exports\n});\n\n// src/services/_namespaces/ts.classifier.v2020.ts\nvar ts_classifier_v2020_exports = {};\n__export(ts_classifier_v2020_exports, {\n  TokenEncodingConsts: () => TokenEncodingConsts,\n  TokenModifier: () => TokenModifier,\n  TokenType: () => TokenType,\n  getEncodedSemanticClassifications: () => getEncodedSemanticClassifications2,\n  getSemanticClassifications: () => getSemanticClassifications2\n});\n\n// src/services/_namespaces/ts.codefix.ts\nvar ts_codefix_exports = {};\n__export(ts_codefix_exports, {\n  PreserveOptionalFlags: () => PreserveOptionalFlags,\n  addNewNodeForMemberSymbol: () => addNewNodeForMemberSymbol,\n  codeFixAll: () => codeFixAll,\n  createCodeFixAction: () => createCodeFixAction,\n  createCodeFixActionMaybeFixAll: () => createCodeFixActionMaybeFixAll,\n  createCodeFixActionWithoutFixAll: () => createCodeFixActionWithoutFixAll,\n  createCombinedCodeActions: () => createCombinedCodeActions,\n  createFileTextChanges: () => createFileTextChanges,\n  createImportAdder: () => createImportAdder,\n  createImportSpecifierResolver: () => createImportSpecifierResolver,\n  createMissingMemberNodes: () => createMissingMemberNodes,\n  createSignatureDeclarationFromCallExpression: () => createSignatureDeclarationFromCallExpression,\n  createSignatureDeclarationFromSignature: () => createSignatureDeclarationFromSignature,\n  createStubbedBody: () => createStubbedBody,\n  eachDiagnostic: () => eachDiagnostic,\n  findAncestorMatchingSpan: () => findAncestorMatchingSpan,\n  generateAccessorFromProperty: () => generateAccessorFromProperty,\n  getAccessorConvertiblePropertyAtPosition: () => getAccessorConvertiblePropertyAtPosition,\n  getAllFixes: () => getAllFixes,\n  getFixes: () => getFixes,\n  getImportCompletionAction: () => getImportCompletionAction,\n  getImportKind: () => getImportKind,\n  getJSDocTypedefNodes: () => getJSDocTypedefNodes,\n  getNoopSymbolTrackerWithResolver: () => getNoopSymbolTrackerWithResolver,\n  getPromoteTypeOnlyCompletionAction: () => getPromoteTypeOnlyCompletionAction,\n  getSupportedErrorCodes: () => getSupportedErrorCodes,\n  importFixName: () => importFixName,\n  importSymbols: () => importSymbols,\n  parameterShouldGetTypeFromJSDoc: () => parameterShouldGetTypeFromJSDoc,\n  registerCodeFix: () => registerCodeFix,\n  setJsonCompilerOptionValue: () => setJsonCompilerOptionValue,\n  setJsonCompilerOptionValues: () => setJsonCompilerOptionValues,\n  tryGetAutoImportableReferenceFromTypeNode: () => tryGetAutoImportableReferenceFromTypeNode,\n  typeNodeToAutoImportableTypeNode: () => typeNodeToAutoImportableTypeNode,\n  typePredicateToAutoImportableTypeNode: () => typePredicateToAutoImportableTypeNode,\n  typeToAutoImportableTypeNode: () => typeToAutoImportableTypeNode,\n  typeToMinimizedReferenceType: () => typeToMinimizedReferenceType\n});\n\n// src/services/codeFixProvider.ts\nvar errorCodeToFixes = createMultiMap();\nvar fixIdToRegistration = /* @__PURE__ */ new Map();\nfunction createCodeFixActionWithoutFixAll(fixName8, changes, description3) {\n  return createCodeFixActionWorker(\n    fixName8,\n    diagnosticToString(description3),\n    changes,\n    /*fixId*/\n    void 0,\n    /*fixAllDescription*/\n    void 0\n  );\n}\nfunction createCodeFixAction(fixName8, changes, description3, fixId56, fixAllDescription, command) {\n  return createCodeFixActionWorker(fixName8, diagnosticToString(description3), changes, fixId56, diagnosticToString(fixAllDescription), command);\n}\nfunction createCodeFixActionMaybeFixAll(fixName8, changes, description3, fixId56, fixAllDescription, command) {\n  return createCodeFixActionWorker(fixName8, diagnosticToString(description3), changes, fixId56, fixAllDescription && diagnosticToString(fixAllDescription), command);\n}\nfunction createCodeFixActionWorker(fixName8, description3, changes, fixId56, fixAllDescription, command) {\n  return { fixName: fixName8, description: description3, changes, fixId: fixId56, fixAllDescription, commands: command ? [command] : void 0 };\n}\nfunction registerCodeFix(reg) {\n  for (const error2 of reg.errorCodes) {\n    errorCodeToFixesArray = void 0;\n    errorCodeToFixes.add(String(error2), reg);\n  }\n  if (reg.fixIds) {\n    for (const fixId56 of reg.fixIds) {\n      Debug.assert(!fixIdToRegistration.has(fixId56));\n      fixIdToRegistration.set(fixId56, reg);\n    }\n  }\n}\nvar errorCodeToFixesArray;\nfunction getSupportedErrorCodes() {\n  return errorCodeToFixesArray ?? (errorCodeToFixesArray = arrayFrom(errorCodeToFixes.keys()));\n}\nfunction removeFixIdIfFixAllUnavailable(registration, diagnostics) {\n  const { errorCodes: errorCodes68 } = registration;\n  let maybeFixableDiagnostics = 0;\n  for (const diag2 of diagnostics) {\n    if (contains(errorCodes68, diag2.code)) maybeFixableDiagnostics++;\n    if (maybeFixableDiagnostics > 1) break;\n  }\n  const fixAllUnavailable = maybeFixableDiagnostics < 2;\n  return ({ fixId: fixId56, fixAllDescription, ...action }) => {\n    return fixAllUnavailable ? action : { ...action, fixId: fixId56, fixAllDescription };\n  };\n}\nfunction getFixes(context) {\n  const diagnostics = getDiagnostics(context);\n  const registrations = errorCodeToFixes.get(String(context.errorCode));\n  return flatMap(registrations, (f) => map(f.getCodeActions(context), removeFixIdIfFixAllUnavailable(f, diagnostics)));\n}\nfunction getAllFixes(context) {\n  return fixIdToRegistration.get(cast(context.fixId, isString)).getAllCodeActions(context);\n}\nfunction createCombinedCodeActions(changes, commands) {\n  return { changes, commands };\n}\nfunction createFileTextChanges(fileName, textChanges2) {\n  return { fileName, textChanges: textChanges2 };\n}\nfunction codeFixAll(context, errorCodes68, use) {\n  const commands = [];\n  const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => eachDiagnostic(context, errorCodes68, (diag2) => use(t, diag2, commands)));\n  return createCombinedCodeActions(changes, commands.length === 0 ? void 0 : commands);\n}\nfunction eachDiagnostic(context, errorCodes68, cb) {\n  for (const diag2 of getDiagnostics(context)) {\n    if (contains(errorCodes68, diag2.code)) {\n      cb(diag2);\n    }\n  }\n}\nfunction getDiagnostics({ program, sourceFile, cancellationToken }) {\n  const diagnostics = [\n    ...program.getSemanticDiagnostics(sourceFile, cancellationToken),\n    ...program.getSyntacticDiagnostics(sourceFile, cancellationToken),\n    ...computeSuggestionDiagnostics(sourceFile, program, cancellationToken)\n  ];\n  if (getEmitDeclarations(program.getCompilerOptions())) {\n    diagnostics.push(\n      ...program.getDeclarationDiagnostics(sourceFile, cancellationToken)\n    );\n  }\n  return diagnostics;\n}\n\n// src/services/codefixes/addConvertToUnknownForNonOverlappingTypes.ts\nvar fixId = \"addConvertToUnknownForNonOverlappingTypes\";\nvar errorCodes = [Diagnostics.Conversion_of_type_0_to_type_1_may_be_a_mistake_because_neither_type_sufficiently_overlaps_with_the_other_If_this_was_intentional_convert_the_expression_to_unknown_first.code];\nregisterCodeFix({\n  errorCodes,\n  getCodeActions: function getCodeActionsToAddConvertToUnknownForNonOverlappingTypes(context) {\n    const assertion = getAssertion(context.sourceFile, context.span.start);\n    if (assertion === void 0) return void 0;\n    const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => makeChange(t, context.sourceFile, assertion));\n    return [createCodeFixAction(fixId, changes, Diagnostics.Add_unknown_conversion_for_non_overlapping_types, fixId, Diagnostics.Add_unknown_to_all_conversions_of_non_overlapping_types)];\n  },\n  fixIds: [fixId],\n  getAllCodeActions: (context) => codeFixAll(context, errorCodes, (changes, diag2) => {\n    const assertion = getAssertion(diag2.file, diag2.start);\n    if (assertion) {\n      makeChange(changes, diag2.file, assertion);\n    }\n  })\n});\nfunction makeChange(changeTracker, sourceFile, assertion) {\n  const replacement = isAsExpression(assertion) ? factory.createAsExpression(assertion.expression, factory.createKeywordTypeNode(159 /* UnknownKeyword */)) : factory.createTypeAssertion(factory.createKeywordTypeNode(159 /* UnknownKeyword */), assertion.expression);\n  changeTracker.replaceNode(sourceFile, assertion.expression, replacement);\n}\nfunction getAssertion(sourceFile, pos) {\n  if (isInJSFile(sourceFile)) return void 0;\n  return findAncestor(getTokenAtPosition(sourceFile, pos), (n) => isAsExpression(n) || isTypeAssertionExpression(n));\n}\n\n// src/services/codefixes/addEmptyExportDeclaration.ts\nregisterCodeFix({\n  errorCodes: [\n    Diagnostics.await_expressions_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module.code,\n    Diagnostics.await_using_statements_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module.code,\n    Diagnostics.for_await_loops_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module.code\n  ],\n  getCodeActions: function getCodeActionsToAddEmptyExportDeclaration(context) {\n    const { sourceFile } = context;\n    const changes = ts_textChanges_exports.ChangeTracker.with(context, (changes2) => {\n      const exportDeclaration = factory.createExportDeclaration(\n        /*modifiers*/\n        void 0,\n        /*isTypeOnly*/\n        false,\n        factory.createNamedExports([]),\n        /*moduleSpecifier*/\n        void 0\n      );\n      changes2.insertNodeAtEndOfScope(sourceFile, sourceFile, exportDeclaration);\n    });\n    return [createCodeFixActionWithoutFixAll(\"addEmptyExportDeclaration\", changes, Diagnostics.Add_export_to_make_this_file_into_a_module)];\n  }\n});\n\n// src/services/codefixes/addMissingAsync.ts\nvar fixId2 = \"addMissingAsync\";\nvar errorCodes2 = [\n  Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code,\n  Diagnostics.Type_0_is_not_assignable_to_type_1.code,\n  Diagnostics.Type_0_is_not_comparable_to_type_1.code\n];\nregisterCodeFix({\n  fixIds: [fixId2],\n  errorCodes: errorCodes2,\n  getCodeActions: function getCodeActionsToAddMissingAsync(context) {\n    const { sourceFile, errorCode, cancellationToken, program, span } = context;\n    const diagnostic = find(program.getTypeChecker().getDiagnostics(sourceFile, cancellationToken), getIsMatchingAsyncError(span, errorCode));\n    const directSpan = diagnostic && diagnostic.relatedInformation && find(diagnostic.relatedInformation, (r) => r.code === Diagnostics.Did_you_mean_to_mark_this_function_as_async.code);\n    const decl = getFixableErrorSpanDeclaration(sourceFile, directSpan);\n    if (!decl) {\n      return;\n    }\n    const trackChanges = (cb) => ts_textChanges_exports.ChangeTracker.with(context, cb);\n    return [getFix(context, decl, trackChanges)];\n  },\n  getAllCodeActions: (context) => {\n    const { sourceFile } = context;\n    const fixedDeclarations = /* @__PURE__ */ new Set();\n    return codeFixAll(context, errorCodes2, (t, diagnostic) => {\n      const span = diagnostic.relatedInformation && find(diagnostic.relatedInformation, (r) => r.code === Diagnostics.Did_you_mean_to_mark_this_function_as_async.code);\n      const decl = getFixableErrorSpanDeclaration(sourceFile, span);\n      if (!decl) {\n        return;\n      }\n      const trackChanges = (cb) => (cb(t), []);\n      return getFix(context, decl, trackChanges, fixedDeclarations);\n    });\n  }\n});\nfunction getFix(context, decl, trackChanges, fixedDeclarations) {\n  const changes = trackChanges((t) => makeChange2(t, context.sourceFile, decl, fixedDeclarations));\n  return createCodeFixAction(fixId2, changes, Diagnostics.Add_async_modifier_to_containing_function, fixId2, Diagnostics.Add_all_missing_async_modifiers);\n}\nfunction makeChange2(changeTracker, sourceFile, insertionSite, fixedDeclarations) {\n  if (fixedDeclarations) {\n    if (fixedDeclarations.has(getNodeId(insertionSite))) {\n      return;\n    }\n  }\n  fixedDeclarations == null ? void 0 : fixedDeclarations.add(getNodeId(insertionSite));\n  const cloneWithModifier = factory.replaceModifiers(\n    getSynthesizedDeepClone(\n      insertionSite,\n      /*includeTrivia*/\n      true\n    ),\n    factory.createNodeArray(factory.createModifiersFromModifierFlags(getSyntacticModifierFlags(insertionSite) | 1024 /* Async */))\n  );\n  changeTracker.replaceNode(\n    sourceFile,\n    insertionSite,\n    cloneWithModifier\n  );\n}\nfunction getFixableErrorSpanDeclaration(sourceFile, span) {\n  if (!span) return void 0;\n  const token = getTokenAtPosition(sourceFile, span.start);\n  const decl = findAncestor(token, (node) => {\n    if (node.getStart(sourceFile) < span.start || node.getEnd() > textSpanEnd(span)) {\n      return \"quit\";\n    }\n    return (isArrowFunction(node) || isMethodDeclaration(node) || isFunctionExpression(node) || isFunctionDeclaration(node)) && textSpansEqual(span, createTextSpanFromNode(node, sourceFile));\n  });\n  return decl;\n}\nfunction getIsMatchingAsyncError(span, errorCode) {\n  return ({ start, length: length2, relatedInformation, code }) => isNumber(start) && isNumber(length2) && textSpansEqual({ start, length: length2 }, span) && code === errorCode && !!relatedInformation && some(relatedInformation, (related) => related.code === Diagnostics.Did_you_mean_to_mark_this_function_as_async.code);\n}\n\n// src/services/codefixes/addMissingAwait.ts\nvar fixId3 = \"addMissingAwait\";\nvar propertyAccessCode = Diagnostics.Property_0_does_not_exist_on_type_1.code;\nvar callableConstructableErrorCodes = [\n  Diagnostics.This_expression_is_not_callable.code,\n  Diagnostics.This_expression_is_not_constructable.code\n];\nvar errorCodes3 = [\n  Diagnostics.An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type.code,\n  Diagnostics.The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type.code,\n  Diagnostics.The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type.code,\n  Diagnostics.Operator_0_cannot_be_applied_to_type_1.code,\n  Diagnostics.Operator_0_cannot_be_applied_to_types_1_and_2.code,\n  Diagnostics.This_comparison_appears_to_be_unintentional_because_the_types_0_and_1_have_no_overlap.code,\n  Diagnostics.This_condition_will_always_return_true_since_this_0_is_always_defined.code,\n  Diagnostics.Type_0_is_not_an_array_type.code,\n  Diagnostics.Type_0_is_not_an_array_type_or_a_string_type.code,\n  Diagnostics.Type_0_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es2015_or_higher.code,\n  Diagnostics.Type_0_is_not_an_array_type_or_a_string_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator.code,\n  Diagnostics.Type_0_is_not_an_array_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator.code,\n  Diagnostics.Type_0_must_have_a_Symbol_iterator_method_that_returns_an_iterator.code,\n  Diagnostics.Type_0_must_have_a_Symbol_asyncIterator_method_that_returns_an_async_iterator.code,\n  Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code,\n  propertyAccessCode,\n  ...callableConstructableErrorCodes\n];\nregisterCodeFix({\n  fixIds: [fixId3],\n  errorCodes: errorCodes3,\n  getCodeActions: function getCodeActionsToAddMissingAwait(context) {\n    const { sourceFile, errorCode, span, cancellationToken, program } = context;\n    const expression = getAwaitErrorSpanExpression(sourceFile, errorCode, span, cancellationToken, program);\n    if (!expression) {\n      return;\n    }\n    const checker = context.program.getTypeChecker();\n    const trackChanges = (cb) => ts_textChanges_exports.ChangeTracker.with(context, cb);\n    return compact([\n      getDeclarationSiteFix(context, expression, errorCode, checker, trackChanges),\n      getUseSiteFix(context, expression, errorCode, checker, trackChanges)\n    ]);\n  },\n  getAllCodeActions: (context) => {\n    const { sourceFile, program, cancellationToken } = context;\n    const checker = context.program.getTypeChecker();\n    const fixedDeclarations = /* @__PURE__ */ new Set();\n    return codeFixAll(context, errorCodes3, (t, diagnostic) => {\n      const expression = getAwaitErrorSpanExpression(sourceFile, diagnostic.code, diagnostic, cancellationToken, program);\n      if (!expression) {\n        return;\n      }\n      const trackChanges = (cb) => (cb(t), []);\n      return getDeclarationSiteFix(context, expression, diagnostic.code, checker, trackChanges, fixedDeclarations) || getUseSiteFix(context, expression, diagnostic.code, checker, trackChanges, fixedDeclarations);\n    });\n  }\n});\nfunction getAwaitErrorSpanExpression(sourceFile, errorCode, span, cancellationToken, program) {\n  const expression = getFixableErrorSpanExpression(sourceFile, span);\n  return expression && isMissingAwaitError(sourceFile, errorCode, span, cancellationToken, program) && isInsideAwaitableBody(expression) ? expression : void 0;\n}\nfunction getDeclarationSiteFix(context, expression, errorCode, checker, trackChanges, fixedDeclarations) {\n  const { sourceFile, program, cancellationToken } = context;\n  const awaitableInitializers = findAwaitableInitializers(expression, sourceFile, cancellationToken, program, checker);\n  if (awaitableInitializers) {\n    const initializerChanges = trackChanges((t) => {\n      forEach(awaitableInitializers.initializers, ({ expression: expression2 }) => makeChange3(t, errorCode, sourceFile, checker, expression2, fixedDeclarations));\n      if (fixedDeclarations && awaitableInitializers.needsSecondPassForFixAll) {\n        makeChange3(t, errorCode, sourceFile, checker, expression, fixedDeclarations);\n      }\n    });\n    return createCodeFixActionWithoutFixAll(\n      \"addMissingAwaitToInitializer\",\n      initializerChanges,\n      awaitableInitializers.initializers.length === 1 ? [Diagnostics.Add_await_to_initializer_for_0, awaitableInitializers.initializers[0].declarationSymbol.name] : Diagnostics.Add_await_to_initializers\n    );\n  }\n}\nfunction getUseSiteFix(context, expression, errorCode, checker, trackChanges, fixedDeclarations) {\n  const changes = trackChanges((t) => makeChange3(t, errorCode, context.sourceFile, checker, expression, fixedDeclarations));\n  return createCodeFixAction(fixId3, changes, Diagnostics.Add_await, fixId3, Diagnostics.Fix_all_expressions_possibly_missing_await);\n}\nfunction isMissingAwaitError(sourceFile, errorCode, span, cancellationToken, program) {\n  const checker = program.getTypeChecker();\n  const diagnostics = checker.getDiagnostics(sourceFile, cancellationToken);\n  return some(diagnostics, ({ start, length: length2, relatedInformation, code }) => isNumber(start) && isNumber(length2) && textSpansEqual({ start, length: length2 }, span) && code === errorCode && !!relatedInformation && some(relatedInformation, (related) => related.code === Diagnostics.Did_you_forget_to_use_await.code));\n}\nfunction findAwaitableInitializers(expression, sourceFile, cancellationToken, program, checker) {\n  const identifiers = getIdentifiersFromErrorSpanExpression(expression, checker);\n  if (!identifiers) {\n    return;\n  }\n  let isCompleteFix = identifiers.isCompleteFix;\n  let initializers;\n  for (const identifier of identifiers.identifiers) {\n    const symbol = checker.getSymbolAtLocation(identifier);\n    if (!symbol) {\n      continue;\n    }\n    const declaration = tryCast(symbol.valueDeclaration, isVariableDeclaration);\n    const variableName = declaration && tryCast(declaration.name, isIdentifier);\n    const variableStatement = getAncestor(declaration, 244 /* VariableStatement */);\n    if (!declaration || !variableStatement || declaration.type || !declaration.initializer || variableStatement.getSourceFile() !== sourceFile || hasSyntacticModifier(variableStatement, 32 /* Export */) || !variableName || !isInsideAwaitableBody(declaration.initializer)) {\n      isCompleteFix = false;\n      continue;\n    }\n    const diagnostics = program.getSemanticDiagnostics(sourceFile, cancellationToken);\n    const isUsedElsewhere = ts_FindAllReferences_exports.Core.eachSymbolReferenceInFile(variableName, checker, sourceFile, (reference) => {\n      return identifier !== reference && !symbolReferenceIsAlsoMissingAwait(reference, diagnostics, sourceFile, checker);\n    });\n    if (isUsedElsewhere) {\n      isCompleteFix = false;\n      continue;\n    }\n    (initializers || (initializers = [])).push({\n      expression: declaration.initializer,\n      declarationSymbol: symbol\n    });\n  }\n  return initializers && {\n    initializers,\n    needsSecondPassForFixAll: !isCompleteFix\n  };\n}\nfunction getIdentifiersFromErrorSpanExpression(expression, checker) {\n  if (isPropertyAccessExpression(expression.parent) && isIdentifier(expression.parent.expression)) {\n    return { identifiers: [expression.parent.expression], isCompleteFix: true };\n  }\n  if (isIdentifier(expression)) {\n    return { identifiers: [expression], isCompleteFix: true };\n  }\n  if (isBinaryExpression(expression)) {\n    let sides;\n    let isCompleteFix = true;\n    for (const side of [expression.left, expression.right]) {\n      const type = checker.getTypeAtLocation(side);\n      if (checker.getPromisedTypeOfPromise(type)) {\n        if (!isIdentifier(side)) {\n          isCompleteFix = false;\n          continue;\n        }\n        (sides || (sides = [])).push(side);\n      }\n    }\n    return sides && { identifiers: sides, isCompleteFix };\n  }\n}\nfunction symbolReferenceIsAlsoMissingAwait(reference, diagnostics, sourceFile, checker) {\n  const errorNode = isPropertyAccessExpression(reference.parent) ? reference.parent.name : isBinaryExpression(reference.parent) ? reference.parent : reference;\n  const diagnostic = find(diagnostics, (diagnostic2) => diagnostic2.start === errorNode.getStart(sourceFile) && diagnostic2.start + diagnostic2.length === errorNode.getEnd());\n  return diagnostic && contains(errorCodes3, diagnostic.code) || // A Promise is usually not correct in a binary expression (it's not valid\n  // in an arithmetic expression and an equality comparison seems unusual),\n  // but if the other side of the binary expression has an error, the side\n  // is typed `any` which will squash the error that would identify this\n  // Promise as an invalid operand. So if the whole binary expression is\n  // typed `any` as a result, there is a strong likelihood that this Promise\n  // is accidentally missing `await`.\n  checker.getTypeAtLocation(errorNode).flags & 1 /* Any */;\n}\nfunction isInsideAwaitableBody(node) {\n  return node.flags & 65536 /* AwaitContext */ || !!findAncestor(node, (ancestor) => ancestor.parent && isArrowFunction(ancestor.parent) && ancestor.parent.body === ancestor || isBlock(ancestor) && (ancestor.parent.kind === 263 /* FunctionDeclaration */ || ancestor.parent.kind === 219 /* FunctionExpression */ || ancestor.parent.kind === 220 /* ArrowFunction */ || ancestor.parent.kind === 175 /* MethodDeclaration */));\n}\nfunction makeChange3(changeTracker, errorCode, sourceFile, checker, insertionSite, fixedDeclarations) {\n  if (isForOfStatement(insertionSite.parent) && !insertionSite.parent.awaitModifier) {\n    const exprType = checker.getTypeAtLocation(insertionSite);\n    const asyncIter = checker.getAnyAsyncIterableType();\n    if (asyncIter && checker.isTypeAssignableTo(exprType, asyncIter)) {\n      const forOf = insertionSite.parent;\n      changeTracker.replaceNode(sourceFile, forOf, factory.updateForOfStatement(forOf, factory.createToken(135 /* AwaitKeyword */), forOf.initializer, forOf.expression, forOf.statement));\n      return;\n    }\n  }\n  if (isBinaryExpression(insertionSite)) {\n    for (const side of [insertionSite.left, insertionSite.right]) {\n      if (fixedDeclarations && isIdentifier(side)) {\n        const symbol = checker.getSymbolAtLocation(side);\n        if (symbol && fixedDeclarations.has(getSymbolId(symbol))) {\n          continue;\n        }\n      }\n      const type = checker.getTypeAtLocation(side);\n      const newNode = checker.getPromisedTypeOfPromise(type) ? factory.createAwaitExpression(side) : side;\n      changeTracker.replaceNode(sourceFile, side, newNode);\n    }\n  } else if (errorCode === propertyAccessCode && isPropertyAccessExpression(insertionSite.parent)) {\n    if (fixedDeclarations && isIdentifier(insertionSite.parent.expression)) {\n      const symbol = checker.getSymbolAtLocation(insertionSite.parent.expression);\n      if (symbol && fixedDeclarations.has(getSymbolId(symbol))) {\n        return;\n      }\n    }\n    changeTracker.replaceNode(\n      sourceFile,\n      insertionSite.parent.expression,\n      factory.createParenthesizedExpression(factory.createAwaitExpression(insertionSite.parent.expression))\n    );\n    insertLeadingSemicolonIfNeeded(changeTracker, insertionSite.parent.expression, sourceFile);\n  } else if (contains(callableConstructableErrorCodes, errorCode) && isCallOrNewExpression(insertionSite.parent)) {\n    if (fixedDeclarations && isIdentifier(insertionSite)) {\n      const symbol = checker.getSymbolAtLocation(insertionSite);\n      if (symbol && fixedDeclarations.has(getSymbolId(symbol))) {\n        return;\n      }\n    }\n    changeTracker.replaceNode(sourceFile, insertionSite, factory.createParenthesizedExpression(factory.createAwaitExpression(insertionSite)));\n    insertLeadingSemicolonIfNeeded(changeTracker, insertionSite, sourceFile);\n  } else {\n    if (fixedDeclarations && isVariableDeclaration(insertionSite.parent) && isIdentifier(insertionSite.parent.name)) {\n      const symbol = checker.getSymbolAtLocation(insertionSite.parent.name);\n      if (symbol && !tryAddToSet(fixedDeclarations, getSymbolId(symbol))) {\n        return;\n      }\n    }\n    changeTracker.replaceNode(sourceFile, insertionSite, factory.createAwaitExpression(insertionSite));\n  }\n}\nfunction insertLeadingSemicolonIfNeeded(changeTracker, beforeNode, sourceFile) {\n  const precedingToken = findPrecedingToken(beforeNode.pos, sourceFile);\n  if (precedingToken && positionIsASICandidate(precedingToken.end, precedingToken.parent, sourceFile)) {\n    changeTracker.insertText(sourceFile, beforeNode.getStart(sourceFile), \";\");\n  }\n}\n\n// src/services/codefixes/addMissingConst.ts\nvar fixId4 = \"addMissingConst\";\nvar errorCodes4 = [\n  Diagnostics.Cannot_find_name_0.code,\n  Diagnostics.No_value_exists_in_scope_for_the_shorthand_property_0_Either_declare_one_or_provide_an_initializer.code\n];\nregisterCodeFix({\n  errorCodes: errorCodes4,\n  getCodeActions: function getCodeActionsToAddMissingConst(context) {\n    const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => makeChange4(t, context.sourceFile, context.span.start, context.program));\n    if (changes.length > 0) {\n      return [createCodeFixAction(fixId4, changes, Diagnostics.Add_const_to_unresolved_variable, fixId4, Diagnostics.Add_const_to_all_unresolved_variables)];\n    }\n  },\n  fixIds: [fixId4],\n  getAllCodeActions: (context) => {\n    const fixedNodes = /* @__PURE__ */ new Set();\n    return codeFixAll(context, errorCodes4, (changes, diag2) => makeChange4(changes, diag2.file, diag2.start, context.program, fixedNodes));\n  }\n});\nfunction makeChange4(changeTracker, sourceFile, pos, program, fixedNodes) {\n  const token = getTokenAtPosition(sourceFile, pos);\n  const forInitializer = findAncestor(token, (node) => isForInOrOfStatement(node.parent) ? node.parent.initializer === node : isPossiblyPartOfDestructuring(node) ? false : \"quit\");\n  if (forInitializer) return applyChange(changeTracker, forInitializer, sourceFile, fixedNodes);\n  const parent2 = token.parent;\n  if (isBinaryExpression(parent2) && parent2.operatorToken.kind === 64 /* EqualsToken */ && isExpressionStatement(parent2.parent)) {\n    return applyChange(changeTracker, token, sourceFile, fixedNodes);\n  }\n  if (isArrayLiteralExpression(parent2)) {\n    const checker = program.getTypeChecker();\n    if (!every(parent2.elements, (element) => arrayElementCouldBeVariableDeclaration(element, checker))) {\n      return;\n    }\n    return applyChange(changeTracker, parent2, sourceFile, fixedNodes);\n  }\n  const commaExpression = findAncestor(token, (node) => isExpressionStatement(node.parent) ? true : isPossiblyPartOfCommaSeperatedInitializer(node) ? false : \"quit\");\n  if (commaExpression) {\n    const checker = program.getTypeChecker();\n    if (!expressionCouldBeVariableDeclaration(commaExpression, checker)) {\n      return;\n    }\n    return applyChange(changeTracker, commaExpression, sourceFile, fixedNodes);\n  }\n}\nfunction applyChange(changeTracker, initializer, sourceFile, fixedNodes) {\n  if (!fixedNodes || tryAddToSet(fixedNodes, initializer)) {\n    changeTracker.insertModifierBefore(sourceFile, 87 /* ConstKeyword */, initializer);\n  }\n}\nfunction isPossiblyPartOfDestructuring(node) {\n  switch (node.kind) {\n    case 80 /* Identifier */:\n    case 210 /* ArrayLiteralExpression */:\n    case 211 /* ObjectLiteralExpression */:\n    case 304 /* PropertyAssignment */:\n    case 305 /* ShorthandPropertyAssignment */:\n      return true;\n    default:\n      return false;\n  }\n}\nfunction arrayElementCouldBeVariableDeclaration(expression, checker) {\n  const identifier = isIdentifier(expression) ? expression : isAssignmentExpression(\n    expression,\n    /*excludeCompoundAssignment*/\n    true\n  ) && isIdentifier(expression.left) ? expression.left : void 0;\n  return !!identifier && !checker.getSymbolAtLocation(identifier);\n}\nfunction isPossiblyPartOfCommaSeperatedInitializer(node) {\n  switch (node.kind) {\n    case 80 /* Identifier */:\n    case 227 /* BinaryExpression */:\n    case 28 /* CommaToken */:\n      return true;\n    default:\n      return false;\n  }\n}\nfunction expressionCouldBeVariableDeclaration(expression, checker) {\n  if (!isBinaryExpression(expression)) {\n    return false;\n  }\n  if (expression.operatorToken.kind === 28 /* CommaToken */) {\n    return every([expression.left, expression.right], (expression2) => expressionCouldBeVariableDeclaration(expression2, checker));\n  }\n  return expression.operatorToken.kind === 64 /* EqualsToken */ && isIdentifier(expression.left) && !checker.getSymbolAtLocation(expression.left);\n}\n\n// src/services/codefixes/addMissingDeclareProperty.ts\nvar fixId5 = \"addMissingDeclareProperty\";\nvar errorCodes5 = [\n  Diagnostics.Property_0_will_overwrite_the_base_property_in_1_If_this_is_intentional_add_an_initializer_Otherwise_add_a_declare_modifier_or_remove_the_redundant_declaration.code\n];\nregisterCodeFix({\n  errorCodes: errorCodes5,\n  getCodeActions: function getCodeActionsToAddMissingDeclareOnProperty(context) {\n    const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => makeChange5(t, context.sourceFile, context.span.start));\n    if (changes.length > 0) {\n      return [createCodeFixAction(fixId5, changes, Diagnostics.Prefix_with_declare, fixId5, Diagnostics.Prefix_all_incorrect_property_declarations_with_declare)];\n    }\n  },\n  fixIds: [fixId5],\n  getAllCodeActions: (context) => {\n    const fixedNodes = /* @__PURE__ */ new Set();\n    return codeFixAll(context, errorCodes5, (changes, diag2) => makeChange5(changes, diag2.file, diag2.start, fixedNodes));\n  }\n});\nfunction makeChange5(changeTracker, sourceFile, pos, fixedNodes) {\n  const token = getTokenAtPosition(sourceFile, pos);\n  if (!isIdentifier(token)) {\n    return;\n  }\n  const declaration = token.parent;\n  if (declaration.kind === 173 /* PropertyDeclaration */ && (!fixedNodes || tryAddToSet(fixedNodes, declaration))) {\n    changeTracker.insertModifierBefore(sourceFile, 138 /* DeclareKeyword */, declaration);\n  }\n}\n\n// src/services/codefixes/addMissingInvocationForDecorator.ts\nvar fixId6 = \"addMissingInvocationForDecorator\";\nvar errorCodes6 = [Diagnostics._0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write_0.code];\nregisterCodeFix({\n  errorCodes: errorCodes6,\n  getCodeActions: function getCodeActionsToAddMissingInvocationForDecorator(context) {\n    const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => makeChange6(t, context.sourceFile, context.span.start));\n    return [createCodeFixAction(fixId6, changes, Diagnostics.Call_decorator_expression, fixId6, Diagnostics.Add_to_all_uncalled_decorators)];\n  },\n  fixIds: [fixId6],\n  getAllCodeActions: (context) => codeFixAll(context, errorCodes6, (changes, diag2) => makeChange6(changes, diag2.file, diag2.start))\n});\nfunction makeChange6(changeTracker, sourceFile, pos) {\n  const token = getTokenAtPosition(sourceFile, pos);\n  const decorator = findAncestor(token, isDecorator);\n  Debug.assert(!!decorator, \"Expected position to be owned by a decorator.\");\n  const replacement = factory.createCallExpression(\n    decorator.expression,\n    /*typeArguments*/\n    void 0,\n    /*argumentsArray*/\n    void 0\n  );\n  changeTracker.replaceNode(sourceFile, decorator.expression, replacement);\n}\n\n// src/services/codefixes/addMissingResolutionModeImportAttribute.ts\nvar fixId7 = \"addMissingResolutionModeImportAttribute\";\nvar errorCodes7 = [\n  Diagnostics.Type_only_import_of_an_ECMAScript_module_from_a_CommonJS_module_must_have_a_resolution_mode_attribute.code,\n  Diagnostics.Type_import_of_an_ECMAScript_module_from_a_CommonJS_module_must_have_a_resolution_mode_attribute.code\n];\nregisterCodeFix({\n  errorCodes: errorCodes7,\n  getCodeActions: function getCodeActionsToAddMissingResolutionModeImportAttribute(context) {\n    const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => makeChange7(t, context.sourceFile, context.span.start, context.program, context.host, context.preferences));\n    return [createCodeFixAction(fixId7, changes, Diagnostics.Add_resolution_mode_import_attribute, fixId7, Diagnostics.Add_resolution_mode_import_attribute_to_all_type_only_imports_that_need_it)];\n  },\n  fixIds: [fixId7],\n  getAllCodeActions: (context) => codeFixAll(context, errorCodes7, (changes, diag2) => makeChange7(changes, diag2.file, diag2.start, context.program, context.host, context.preferences))\n});\nfunction makeChange7(changeTracker, sourceFile, pos, program, host, preferences) {\n  var _a, _b, _c;\n  const token = getTokenAtPosition(sourceFile, pos);\n  const importNode = findAncestor(token, or(isImportDeclaration, isImportTypeNode));\n  Debug.assert(!!importNode, \"Expected position to be owned by an ImportDeclaration or ImportType.\");\n  const useSingleQuotes = getQuotePreference(sourceFile, preferences) === 0 /* Single */;\n  const moduleSpecifier = tryGetModuleSpecifierFromDeclaration(importNode);\n  const canUseImportMode = !moduleSpecifier || ((_a = resolveModuleName(\n    moduleSpecifier.text,\n    sourceFile.fileName,\n    program.getCompilerOptions(),\n    host,\n    program.getModuleResolutionCache(),\n    /*redirectedReference*/\n    void 0,\n    99 /* ESNext */\n  ).resolvedModule) == null ? void 0 : _a.resolvedFileName) === ((_c = (_b = program.getResolvedModuleFromModuleSpecifier(\n    moduleSpecifier,\n    sourceFile\n  )) == null ? void 0 : _b.resolvedModule) == null ? void 0 : _c.resolvedFileName);\n  const attributes = importNode.attributes ? factory.updateImportAttributes(\n    importNode.attributes,\n    factory.createNodeArray([\n      ...importNode.attributes.elements,\n      factory.createImportAttribute(\n        factory.createStringLiteral(\"resolution-mode\", useSingleQuotes),\n        factory.createStringLiteral(canUseImportMode ? \"import\" : \"require\", useSingleQuotes)\n      )\n    ], importNode.attributes.elements.hasTrailingComma),\n    importNode.attributes.multiLine\n  ) : factory.createImportAttributes(\n    factory.createNodeArray([\n      factory.createImportAttribute(\n        factory.createStringLiteral(\"resolution-mode\", useSingleQuotes),\n        factory.createStringLiteral(canUseImportMode ? \"import\" : \"require\", useSingleQuotes)\n      )\n    ])\n  );\n  if (importNode.kind === 273 /* ImportDeclaration */) {\n    changeTracker.replaceNode(\n      sourceFile,\n      importNode,\n      factory.updateImportDeclaration(\n        importNode,\n        importNode.modifiers,\n        importNode.importClause,\n        importNode.moduleSpecifier,\n        attributes\n      )\n    );\n  } else {\n    changeTracker.replaceNode(\n      sourceFile,\n      importNode,\n      factory.updateImportTypeNode(\n        importNode,\n        importNode.argument,\n        attributes,\n        importNode.qualifier,\n        importNode.typeArguments\n      )\n    );\n  }\n}\n\n// src/services/codefixes/addNameToNamelessParameter.ts\nvar fixId8 = \"addNameToNamelessParameter\";\nvar errorCodes8 = [Diagnostics.Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1.code];\nregisterCodeFix({\n  errorCodes: errorCodes8,\n  getCodeActions: function getCodeActionsToAddNameToNamelessParameter(context) {\n    const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => makeChange8(t, context.sourceFile, context.span.start));\n    return [createCodeFixAction(fixId8, changes, Diagnostics.Add_parameter_name, fixId8, Diagnostics.Add_names_to_all_parameters_without_names)];\n  },\n  fixIds: [fixId8],\n  getAllCodeActions: (context) => codeFixAll(context, errorCodes8, (changes, diag2) => makeChange8(changes, diag2.file, diag2.start))\n});\nfunction makeChange8(changeTracker, sourceFile, start) {\n  const token = getTokenAtPosition(sourceFile, start);\n  const param = token.parent;\n  if (!isParameter(param)) {\n    return Debug.fail(\"Tried to add a parameter name to a non-parameter: \" + Debug.formatSyntaxKind(token.kind));\n  }\n  const i = param.parent.parameters.indexOf(param);\n  Debug.assert(!param.type, \"Tried to add a parameter name to a parameter that already had one.\");\n  Debug.assert(i > -1, \"Parameter not found in parent parameter list.\");\n  let end = param.name.getEnd();\n  let typeNode = factory.createTypeReferenceNode(\n    param.name,\n    /*typeArguments*/\n    void 0\n  );\n  let nextParam = tryGetNextParam(sourceFile, param);\n  while (nextParam) {\n    typeNode = factory.createArrayTypeNode(typeNode);\n    end = nextParam.getEnd();\n    nextParam = tryGetNextParam(sourceFile, nextParam);\n  }\n  const replacement = factory.createParameterDeclaration(\n    param.modifiers,\n    param.dotDotDotToken,\n    \"arg\" + i,\n    param.questionToken,\n    param.dotDotDotToken && !isArrayTypeNode(typeNode) ? factory.createArrayTypeNode(typeNode) : typeNode,\n    param.initializer\n  );\n  changeTracker.replaceRange(sourceFile, createRange(param.getStart(sourceFile), end), replacement);\n}\nfunction tryGetNextParam(sourceFile, param) {\n  const nextToken = findNextToken(param.name, param.parent, sourceFile);\n  if (nextToken && nextToken.kind === 23 /* OpenBracketToken */ && isArrayBindingPattern(nextToken.parent) && isParameter(nextToken.parent.parent)) {\n    return nextToken.parent.parent;\n  }\n  return void 0;\n}\n\n// src/services/codefixes/addOptionalPropertyUndefined.ts\nvar addOptionalPropertyUndefined = \"addOptionalPropertyUndefined\";\nvar errorCodes9 = [\n  Diagnostics.Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_type_of_the_target.code,\n  Diagnostics.Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties.code,\n  Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties.code\n];\nregisterCodeFix({\n  errorCodes: errorCodes9,\n  getCodeActions(context) {\n    const typeChecker = context.program.getTypeChecker();\n    const toAdd = getPropertiesToAdd(context.sourceFile, context.span, typeChecker);\n    if (!toAdd.length) {\n      return void 0;\n    }\n    const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => addUndefinedToOptionalProperty(t, toAdd));\n    return [createCodeFixActionWithoutFixAll(addOptionalPropertyUndefined, changes, Diagnostics.Add_undefined_to_optional_property_type)];\n  },\n  fixIds: [addOptionalPropertyUndefined]\n});\nfunction getPropertiesToAdd(file, span, checker) {\n  var _a, _b;\n  const sourceTarget = getSourceTarget(getFixableErrorSpanExpression(file, span), checker);\n  if (!sourceTarget) {\n    return emptyArray;\n  }\n  const { source: sourceNode, target: targetNode } = sourceTarget;\n  const target = shouldUseParentTypeOfProperty(sourceNode, targetNode, checker) ? checker.getTypeAtLocation(targetNode.expression) : checker.getTypeAtLocation(targetNode);\n  if ((_b = (_a = target.symbol) == null ? void 0 : _a.declarations) == null ? void 0 : _b.some((d) => getSourceFileOfNode(d).fileName.match(/\\.d\\.ts$/))) {\n    return emptyArray;\n  }\n  return checker.getExactOptionalProperties(target);\n}\nfunction shouldUseParentTypeOfProperty(sourceNode, targetNode, checker) {\n  return isPropertyAccessExpression(targetNode) && !!checker.getExactOptionalProperties(checker.getTypeAtLocation(targetNode.expression)).length && checker.getTypeAtLocation(sourceNode) === checker.getUndefinedType();\n}\nfunction getSourceTarget(errorNode, checker) {\n  var _a;\n  if (!errorNode) {\n    return void 0;\n  } else if (isBinaryExpression(errorNode.parent) && errorNode.parent.operatorToken.kind === 64 /* EqualsToken */) {\n    return { source: errorNode.parent.right, target: errorNode.parent.left };\n  } else if (isVariableDeclaration(errorNode.parent) && errorNode.parent.initializer) {\n    return { source: errorNode.parent.initializer, target: errorNode.parent.name };\n  } else if (isCallExpression(errorNode.parent)) {\n    const n = checker.getSymbolAtLocation(errorNode.parent.expression);\n    if (!(n == null ? void 0 : n.valueDeclaration) || !isFunctionLikeKind(n.valueDeclaration.kind)) return void 0;\n    if (!isExpression(errorNode)) return void 0;\n    const i = errorNode.parent.arguments.indexOf(errorNode);\n    if (i === -1) return void 0;\n    const name = n.valueDeclaration.parameters[i].name;\n    if (isIdentifier(name)) return { source: errorNode, target: name };\n  } else if (isPropertyAssignment(errorNode.parent) && isIdentifier(errorNode.parent.name) || isShorthandPropertyAssignment(errorNode.parent)) {\n    const parentTarget = getSourceTarget(errorNode.parent.parent, checker);\n    if (!parentTarget) return void 0;\n    const prop = checker.getPropertyOfType(checker.getTypeAtLocation(parentTarget.target), errorNode.parent.name.text);\n    const declaration = (_a = prop == null ? void 0 : prop.declarations) == null ? void 0 : _a[0];\n    if (!declaration) return void 0;\n    return {\n      source: isPropertyAssignment(errorNode.parent) ? errorNode.parent.initializer : errorNode.parent.name,\n      target: declaration\n    };\n  }\n  return void 0;\n}\nfunction addUndefinedToOptionalProperty(changes, toAdd) {\n  for (const add of toAdd) {\n    const d = add.valueDeclaration;\n    if (d && (isPropertySignature(d) || isPropertyDeclaration(d)) && d.type) {\n      const t = factory.createUnionTypeNode([\n        ...d.type.kind === 193 /* UnionType */ ? d.type.types : [d.type],\n        factory.createTypeReferenceNode(\"undefined\")\n      ]);\n      changes.replaceNode(d.getSourceFile(), d.type, t);\n    }\n  }\n}\n\n// src/services/codefixes/annotateWithTypeFromJSDoc.ts\nvar fixId9 = \"annotateWithTypeFromJSDoc\";\nvar errorCodes10 = [Diagnostics.JSDoc_types_may_be_moved_to_TypeScript_types.code];\nregisterCodeFix({\n  errorCodes: errorCodes10,\n  getCodeActions(context) {\n    const decl = getDeclaration(context.sourceFile, context.span.start);\n    if (!decl) return;\n    const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange8(t, context.sourceFile, decl));\n    return [createCodeFixAction(fixId9, changes, Diagnostics.Annotate_with_type_from_JSDoc, fixId9, Diagnostics.Annotate_everything_with_types_from_JSDoc)];\n  },\n  fixIds: [fixId9],\n  getAllCodeActions: (context) => codeFixAll(context, errorCodes10, (changes, diag2) => {\n    const decl = getDeclaration(diag2.file, diag2.start);\n    if (decl) doChange8(changes, diag2.file, decl);\n  })\n});\nfunction getDeclaration(file, pos) {\n  const name = getTokenAtPosition(file, pos);\n  return tryCast(isParameter(name.parent) ? name.parent.parent : name.parent, parameterShouldGetTypeFromJSDoc);\n}\nfunction parameterShouldGetTypeFromJSDoc(node) {\n  return isDeclarationWithType(node) && hasUsableJSDoc(node);\n}\nfunction hasUsableJSDoc(decl) {\n  return isFunctionLikeDeclaration(decl) ? decl.parameters.some(hasUsableJSDoc) || !decl.type && !!getJSDocReturnType(decl) : !decl.type && !!getJSDocType(decl);\n}\nfunction doChange8(changes, sourceFile, decl) {\n  if (isFunctionLikeDeclaration(decl) && (getJSDocReturnType(decl) || decl.parameters.some((p) => !!getJSDocType(p)))) {\n    if (!decl.typeParameters) {\n      const typeParameters = getJSDocTypeParameterDeclarations(decl);\n      if (typeParameters.length) changes.insertTypeParameters(sourceFile, decl, typeParameters);\n    }\n    const needParens = isArrowFunction(decl) && !findChildOfKind(decl, 21 /* OpenParenToken */, sourceFile);\n    if (needParens) changes.insertNodeBefore(sourceFile, first(decl.parameters), factory.createToken(21 /* OpenParenToken */));\n    for (const param of decl.parameters) {\n      if (!param.type) {\n        const paramType = getJSDocType(param);\n        if (paramType) changes.tryInsertTypeAnnotation(sourceFile, param, visitNode(paramType, transformJSDocType, isTypeNode));\n      }\n    }\n    if (needParens) changes.insertNodeAfter(sourceFile, last(decl.parameters), factory.createToken(22 /* CloseParenToken */));\n    if (!decl.type) {\n      const returnType = getJSDocReturnType(decl);\n      if (returnType) changes.tryInsertTypeAnnotation(sourceFile, decl, visitNode(returnType, transformJSDocType, isTypeNode));\n    }\n  } else {\n    const jsdocType = Debug.checkDefined(getJSDocType(decl), \"A JSDocType for this declaration should exist\");\n    Debug.assert(!decl.type, \"The JSDocType decl should have a type\");\n    changes.tryInsertTypeAnnotation(sourceFile, decl, visitNode(jsdocType, transformJSDocType, isTypeNode));\n  }\n}\nfunction isDeclarationWithType(node) {\n  return isFunctionLikeDeclaration(node) || node.kind === 261 /* VariableDeclaration */ || node.kind === 172 /* PropertySignature */ || node.kind === 173 /* PropertyDeclaration */;\n}\nfunction transformJSDocType(node) {\n  switch (node.kind) {\n    case 313 /* JSDocAllType */:\n    case 314 /* JSDocUnknownType */:\n      return factory.createTypeReferenceNode(\"any\", emptyArray);\n    case 317 /* JSDocOptionalType */:\n      return transformJSDocOptionalType(node);\n    case 316 /* JSDocNonNullableType */:\n      return transformJSDocType(node.type);\n    case 315 /* JSDocNullableType */:\n      return transformJSDocNullableType(node);\n    case 319 /* JSDocVariadicType */:\n      return transformJSDocVariadicType(node);\n    case 318 /* JSDocFunctionType */:\n      return transformJSDocFunctionType(node);\n    case 184 /* TypeReference */:\n      return transformJSDocTypeReference(node);\n    case 323 /* JSDocTypeLiteral */:\n      return transformJSDocTypeLiteral(node);\n    default:\n      const visited = visitEachChild(\n        node,\n        transformJSDocType,\n        /*context*/\n        void 0\n      );\n      setEmitFlags(visited, 1 /* SingleLine */);\n      return visited;\n  }\n}\nfunction transformJSDocTypeLiteral(node) {\n  const typeNode = factory.createTypeLiteralNode(map(node.jsDocPropertyTags, (tag) => factory.createPropertySignature(\n    /*modifiers*/\n    void 0,\n    isIdentifier(tag.name) ? tag.name : tag.name.right,\n    isOptionalJSDocPropertyLikeTag(tag) ? factory.createToken(58 /* QuestionToken */) : void 0,\n    tag.typeExpression && visitNode(tag.typeExpression.type, transformJSDocType, isTypeNode) || factory.createKeywordTypeNode(133 /* AnyKeyword */)\n  )));\n  setEmitFlags(typeNode, 1 /* SingleLine */);\n  return typeNode;\n}\nfunction transformJSDocOptionalType(node) {\n  return factory.createUnionTypeNode([visitNode(node.type, transformJSDocType, isTypeNode), factory.createTypeReferenceNode(\"undefined\", emptyArray)]);\n}\nfunction transformJSDocNullableType(node) {\n  return factory.createUnionTypeNode([visitNode(node.type, transformJSDocType, isTypeNode), factory.createTypeReferenceNode(\"null\", emptyArray)]);\n}\nfunction transformJSDocVariadicType(node) {\n  return factory.createArrayTypeNode(visitNode(node.type, transformJSDocType, isTypeNode));\n}\nfunction transformJSDocFunctionType(node) {\n  return factory.createFunctionTypeNode(emptyArray, node.parameters.map(transformJSDocParameter), node.type ?? factory.createKeywordTypeNode(133 /* AnyKeyword */));\n}\nfunction transformJSDocParameter(node) {\n  const index = node.parent.parameters.indexOf(node);\n  const isRest = node.type.kind === 319 /* JSDocVariadicType */ && index === node.parent.parameters.length - 1;\n  const name = node.name || (isRest ? \"rest\" : \"arg\" + index);\n  const dotdotdot = isRest ? factory.createToken(26 /* DotDotDotToken */) : node.dotDotDotToken;\n  return factory.createParameterDeclaration(node.modifiers, dotdotdot, name, node.questionToken, visitNode(node.type, transformJSDocType, isTypeNode), node.initializer);\n}\nfunction transformJSDocTypeReference(node) {\n  let name = node.typeName;\n  let args = node.typeArguments;\n  if (isIdentifier(node.typeName)) {\n    if (isJSDocIndexSignature(node)) {\n      return transformJSDocIndexSignature(node);\n    }\n    let text = node.typeName.text;\n    switch (node.typeName.text) {\n      case \"String\":\n      case \"Boolean\":\n      case \"Object\":\n      case \"Number\":\n        text = text.toLowerCase();\n        break;\n      case \"array\":\n      case \"date\":\n      case \"promise\":\n        text = text[0].toUpperCase() + text.slice(1);\n        break;\n    }\n    name = factory.createIdentifier(text);\n    if ((text === \"Array\" || text === \"Promise\") && !node.typeArguments) {\n      args = factory.createNodeArray([factory.createTypeReferenceNode(\"any\", emptyArray)]);\n    } else {\n      args = visitNodes2(node.typeArguments, transformJSDocType, isTypeNode);\n    }\n  }\n  return factory.createTypeReferenceNode(name, args);\n}\nfunction transformJSDocIndexSignature(node) {\n  const index = factory.createParameterDeclaration(\n    /*modifiers*/\n    void 0,\n    /*dotDotDotToken*/\n    void 0,\n    node.typeArguments[0].kind === 150 /* NumberKeyword */ ? \"n\" : \"s\",\n    /*questionToken*/\n    void 0,\n    factory.createTypeReferenceNode(node.typeArguments[0].kind === 150 /* NumberKeyword */ ? \"number\" : \"string\", []),\n    /*initializer*/\n    void 0\n  );\n  const indexSignature = factory.createTypeLiteralNode([factory.createIndexSignature(\n    /*modifiers*/\n    void 0,\n    [index],\n    node.typeArguments[1]\n  )]);\n  setEmitFlags(indexSignature, 1 /* SingleLine */);\n  return indexSignature;\n}\n\n// src/services/codefixes/convertFunctionToEs6Class.ts\nvar fixId10 = \"convertFunctionToEs6Class\";\nvar errorCodes11 = [Diagnostics.This_constructor_function_may_be_converted_to_a_class_declaration.code];\nregisterCodeFix({\n  errorCodes: errorCodes11,\n  getCodeActions(context) {\n    const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange9(t, context.sourceFile, context.span.start, context.program.getTypeChecker(), context.preferences, context.program.getCompilerOptions()));\n    return [createCodeFixAction(fixId10, changes, Diagnostics.Convert_function_to_an_ES2015_class, fixId10, Diagnostics.Convert_all_constructor_functions_to_classes)];\n  },\n  fixIds: [fixId10],\n  getAllCodeActions: (context) => codeFixAll(context, errorCodes11, (changes, err) => doChange9(changes, err.file, err.start, context.program.getTypeChecker(), context.preferences, context.program.getCompilerOptions()))\n});\nfunction doChange9(changes, sourceFile, position, checker, preferences, compilerOptions) {\n  const ctorSymbol = checker.getSymbolAtLocation(getTokenAtPosition(sourceFile, position));\n  if (!ctorSymbol || !ctorSymbol.valueDeclaration || !(ctorSymbol.flags & (16 /* Function */ | 3 /* Variable */))) {\n    return void 0;\n  }\n  const ctorDeclaration = ctorSymbol.valueDeclaration;\n  if (isFunctionDeclaration(ctorDeclaration) || isFunctionExpression(ctorDeclaration)) {\n    changes.replaceNode(sourceFile, ctorDeclaration, createClassFromFunction(ctorDeclaration));\n  } else if (isVariableDeclaration(ctorDeclaration)) {\n    const classDeclaration = createClassFromVariableDeclaration(ctorDeclaration);\n    if (!classDeclaration) {\n      return void 0;\n    }\n    const ancestor = ctorDeclaration.parent.parent;\n    if (isVariableDeclarationList(ctorDeclaration.parent) && ctorDeclaration.parent.declarations.length > 1) {\n      changes.delete(sourceFile, ctorDeclaration);\n      changes.insertNodeAfter(sourceFile, ancestor, classDeclaration);\n    } else {\n      changes.replaceNode(sourceFile, ancestor, classDeclaration);\n    }\n  }\n  function createClassElementsFromSymbol(symbol) {\n    const memberElements = [];\n    if (symbol.exports) {\n      symbol.exports.forEach((member) => {\n        if (member.name === \"prototype\" && member.declarations) {\n          const firstDeclaration = member.declarations[0];\n          if (member.declarations.length === 1 && isPropertyAccessExpression(firstDeclaration) && isBinaryExpression(firstDeclaration.parent) && firstDeclaration.parent.operatorToken.kind === 64 /* EqualsToken */ && isObjectLiteralExpression(firstDeclaration.parent.right)) {\n            const prototypes = firstDeclaration.parent.right;\n            createClassElement(\n              prototypes.symbol,\n              /*modifiers*/\n              void 0,\n              memberElements\n            );\n          }\n        } else {\n          createClassElement(member, [factory.createToken(126 /* StaticKeyword */)], memberElements);\n        }\n      });\n    }\n    if (symbol.members) {\n      symbol.members.forEach((member, key) => {\n        var _a, _b, _c, _d;\n        if (key === \"constructor\" && member.valueDeclaration) {\n          const prototypeAssignment = (_d = (_c = (_b = (_a = symbol.exports) == null ? void 0 : _a.get(\"prototype\")) == null ? void 0 : _b.declarations) == null ? void 0 : _c[0]) == null ? void 0 : _d.parent;\n          if (prototypeAssignment && isBinaryExpression(prototypeAssignment) && isObjectLiteralExpression(prototypeAssignment.right) && some(prototypeAssignment.right.properties, isConstructorAssignment)) {\n          } else {\n            changes.delete(sourceFile, member.valueDeclaration.parent);\n          }\n          return;\n        }\n        createClassElement(\n          member,\n          /*modifiers*/\n          void 0,\n          memberElements\n        );\n      });\n    }\n    return memberElements;\n    function shouldConvertDeclaration(_target, source) {\n      if (isAccessExpression(_target)) {\n        if (isPropertyAccessExpression(_target) && isConstructorAssignment(_target)) return true;\n        return isFunctionLike(source);\n      } else {\n        return every(_target.properties, (property) => {\n          if (isMethodDeclaration(property) || isGetOrSetAccessorDeclaration(property)) return true;\n          if (isPropertyAssignment(property) && isFunctionExpression(property.initializer) && !!property.name) return true;\n          if (isConstructorAssignment(property)) return true;\n          return false;\n        });\n      }\n    }\n    function createClassElement(symbol2, modifiers, members) {\n      if (!(symbol2.flags & 8192 /* Method */) && !(symbol2.flags & 4096 /* ObjectLiteral */)) {\n        return;\n      }\n      const memberDeclaration = symbol2.valueDeclaration;\n      const assignmentBinaryExpression = memberDeclaration.parent;\n      const assignmentExpr = assignmentBinaryExpression.right;\n      if (!shouldConvertDeclaration(memberDeclaration, assignmentExpr)) {\n        return;\n      }\n      if (some(members, (m) => {\n        const name = getNameOfDeclaration(m);\n        if (name && isIdentifier(name) && idText(name) === symbolName(symbol2)) {\n          return true;\n        }\n        return false;\n      })) {\n        return;\n      }\n      const nodeToDelete = assignmentBinaryExpression.parent && assignmentBinaryExpression.parent.kind === 245 /* ExpressionStatement */ ? assignmentBinaryExpression.parent : assignmentBinaryExpression;\n      changes.delete(sourceFile, nodeToDelete);\n      if (!assignmentExpr) {\n        members.push(factory.createPropertyDeclaration(\n          modifiers,\n          symbol2.name,\n          /*questionOrExclamationToken*/\n          void 0,\n          /*type*/\n          void 0,\n          /*initializer*/\n          void 0\n        ));\n        return;\n      }\n      if (isAccessExpression(memberDeclaration) && (isFunctionExpression(assignmentExpr) || isArrowFunction(assignmentExpr))) {\n        const quotePreference = getQuotePreference(sourceFile, preferences);\n        const name = tryGetPropertyName(memberDeclaration, compilerOptions, quotePreference);\n        if (name) {\n          createFunctionLikeExpressionMember(members, assignmentExpr, name);\n        }\n        return;\n      } else if (isObjectLiteralExpression(assignmentExpr)) {\n        forEach(\n          assignmentExpr.properties,\n          (property) => {\n            if (isMethodDeclaration(property) || isGetOrSetAccessorDeclaration(property)) {\n              members.push(property);\n            }\n            if (isPropertyAssignment(property) && isFunctionExpression(property.initializer)) {\n              createFunctionLikeExpressionMember(members, property.initializer, property.name);\n            }\n            if (isConstructorAssignment(property)) return;\n            return;\n          }\n        );\n        return;\n      } else {\n        if (isSourceFileJS(sourceFile)) return;\n        if (!isPropertyAccessExpression(memberDeclaration)) return;\n        const prop = factory.createPropertyDeclaration(\n          modifiers,\n          memberDeclaration.name,\n          /*questionOrExclamationToken*/\n          void 0,\n          /*type*/\n          void 0,\n          assignmentExpr\n        );\n        copyLeadingComments(assignmentBinaryExpression.parent, prop, sourceFile);\n        members.push(prop);\n        return;\n      }\n      function createFunctionLikeExpressionMember(members2, expression, name) {\n        if (isFunctionExpression(expression)) return createFunctionExpressionMember(members2, expression, name);\n        else return createArrowFunctionExpressionMember(members2, expression, name);\n      }\n      function createFunctionExpressionMember(members2, functionExpression, name) {\n        const fullModifiers = concatenate(modifiers, getModifierKindFromSource(functionExpression, 134 /* AsyncKeyword */));\n        const method = factory.createMethodDeclaration(\n          fullModifiers,\n          /*asteriskToken*/\n          void 0,\n          name,\n          /*questionToken*/\n          void 0,\n          /*typeParameters*/\n          void 0,\n          functionExpression.parameters,\n          /*type*/\n          void 0,\n          functionExpression.body\n        );\n        copyLeadingComments(assignmentBinaryExpression, method, sourceFile);\n        members2.push(method);\n        return;\n      }\n      function createArrowFunctionExpressionMember(members2, arrowFunction, name) {\n        const arrowFunctionBody = arrowFunction.body;\n        let bodyBlock;\n        if (arrowFunctionBody.kind === 242 /* Block */) {\n          bodyBlock = arrowFunctionBody;\n        } else {\n          bodyBlock = factory.createBlock([factory.createReturnStatement(arrowFunctionBody)]);\n        }\n        const fullModifiers = concatenate(modifiers, getModifierKindFromSource(arrowFunction, 134 /* AsyncKeyword */));\n        const method = factory.createMethodDeclaration(\n          fullModifiers,\n          /*asteriskToken*/\n          void 0,\n          name,\n          /*questionToken*/\n          void 0,\n          /*typeParameters*/\n          void 0,\n          arrowFunction.parameters,\n          /*type*/\n          void 0,\n          bodyBlock\n        );\n        copyLeadingComments(assignmentBinaryExpression, method, sourceFile);\n        members2.push(method);\n      }\n    }\n  }\n  function createClassFromVariableDeclaration(node) {\n    const initializer = node.initializer;\n    if (!initializer || !isFunctionExpression(initializer) || !isIdentifier(node.name)) {\n      return void 0;\n    }\n    const memberElements = createClassElementsFromSymbol(node.symbol);\n    if (initializer.body) {\n      memberElements.unshift(factory.createConstructorDeclaration(\n        /*modifiers*/\n        void 0,\n        initializer.parameters,\n        initializer.body\n      ));\n    }\n    const modifiers = getModifierKindFromSource(node.parent.parent, 95 /* ExportKeyword */);\n    const cls = factory.createClassDeclaration(\n      modifiers,\n      node.name,\n      /*typeParameters*/\n      void 0,\n      /*heritageClauses*/\n      void 0,\n      memberElements\n    );\n    return cls;\n  }\n  function createClassFromFunction(node) {\n    const memberElements = createClassElementsFromSymbol(ctorSymbol);\n    if (node.body) {\n      memberElements.unshift(factory.createConstructorDeclaration(\n        /*modifiers*/\n        void 0,\n        node.parameters,\n        node.body\n      ));\n    }\n    const modifiers = getModifierKindFromSource(node, 95 /* ExportKeyword */);\n    const cls = factory.createClassDeclaration(\n      modifiers,\n      node.name,\n      /*typeParameters*/\n      void 0,\n      /*heritageClauses*/\n      void 0,\n      memberElements\n    );\n    return cls;\n  }\n}\nfunction getModifierKindFromSource(source, kind) {\n  return canHaveModifiers(source) ? filter(source.modifiers, (modifier) => modifier.kind === kind) : void 0;\n}\nfunction isConstructorAssignment(x) {\n  if (!x.name) return false;\n  if (isIdentifier(x.name) && x.name.text === \"constructor\") return true;\n  return false;\n}\nfunction tryGetPropertyName(node, compilerOptions, quotePreference) {\n  if (isPropertyAccessExpression(node)) {\n    return node.name;\n  }\n  const propName = node.argumentExpression;\n  if (isNumericLiteral(propName)) {\n    return propName;\n  }\n  if (isStringLiteralLike(propName)) {\n    return isIdentifierText(propName.text, getEmitScriptTarget(compilerOptions)) ? factory.createIdentifier(propName.text) : isNoSubstitutionTemplateLiteral(propName) ? factory.createStringLiteral(propName.text, quotePreference === 0 /* Single */) : propName;\n  }\n  return void 0;\n}\n\n// src/services/codefixes/convertToAsyncFunction.ts\nvar fixId11 = \"convertToAsyncFunction\";\nvar errorCodes12 = [Diagnostics.This_may_be_converted_to_an_async_function.code];\nvar codeActionSucceeded = true;\nregisterCodeFix({\n  errorCodes: errorCodes12,\n  getCodeActions(context) {\n    codeActionSucceeded = true;\n    const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => convertToAsyncFunction(t, context.sourceFile, context.span.start, context.program.getTypeChecker()));\n    return codeActionSucceeded ? [createCodeFixAction(fixId11, changes, Diagnostics.Convert_to_async_function, fixId11, Diagnostics.Convert_all_to_async_functions)] : [];\n  },\n  fixIds: [fixId11],\n  getAllCodeActions: (context) => codeFixAll(context, errorCodes12, (changes, err) => convertToAsyncFunction(changes, err.file, err.start, context.program.getTypeChecker()))\n});\nfunction convertToAsyncFunction(changes, sourceFile, position, checker) {\n  const tokenAtPosition = getTokenAtPosition(sourceFile, position);\n  let functionToConvert;\n  if (isIdentifier(tokenAtPosition) && isVariableDeclaration(tokenAtPosition.parent) && tokenAtPosition.parent.initializer && isFunctionLikeDeclaration(tokenAtPosition.parent.initializer)) {\n    functionToConvert = tokenAtPosition.parent.initializer;\n  } else {\n    functionToConvert = tryCast(getContainingFunction(getTokenAtPosition(sourceFile, position)), canBeConvertedToAsync);\n  }\n  if (!functionToConvert) {\n    return;\n  }\n  const synthNamesMap = /* @__PURE__ */ new Map();\n  const isInJavascript = isInJSFile(functionToConvert);\n  const setOfExpressionsToReturn = getAllPromiseExpressionsToReturn(functionToConvert, checker);\n  const functionToConvertRenamed = renameCollidingVarNames(functionToConvert, checker, synthNamesMap);\n  if (!returnsPromise(functionToConvertRenamed, checker)) {\n    return;\n  }\n  const returnStatements = functionToConvertRenamed.body && isBlock(functionToConvertRenamed.body) ? getReturnStatementsWithPromiseHandlers(functionToConvertRenamed.body, checker) : emptyArray;\n  const transformer = { checker, synthNamesMap, setOfExpressionsToReturn, isInJSFile: isInJavascript };\n  if (!returnStatements.length) {\n    return;\n  }\n  const pos = skipTrivia(sourceFile.text, moveRangePastModifiers(functionToConvert).pos);\n  changes.insertModifierAt(sourceFile, pos, 134 /* AsyncKeyword */, { suffix: \" \" });\n  for (const returnStatement of returnStatements) {\n    forEachChild(returnStatement, function visit(node) {\n      if (isCallExpression(node)) {\n        const newNodes = transformExpression(\n          node,\n          node,\n          transformer,\n          /*hasContinuation*/\n          false\n        );\n        if (hasFailed()) {\n          return true;\n        }\n        changes.replaceNodeWithNodes(sourceFile, returnStatement, newNodes);\n      } else if (!isFunctionLike(node)) {\n        forEachChild(node, visit);\n        if (hasFailed()) {\n          return true;\n        }\n      }\n    });\n    if (hasFailed()) {\n      return;\n    }\n  }\n}\nfunction getReturnStatementsWithPromiseHandlers(body, checker) {\n  const res = [];\n  forEachReturnStatement(body, (ret) => {\n    if (isReturnStatementWithFixablePromiseHandler(ret, checker)) res.push(ret);\n  });\n  return res;\n}\nfunction getAllPromiseExpressionsToReturn(func, checker) {\n  if (!func.body) {\n    return /* @__PURE__ */ new Set();\n  }\n  const setOfExpressionsToReturn = /* @__PURE__ */ new Set();\n  forEachChild(func.body, function visit(node) {\n    if (isPromiseReturningCallExpression(node, checker, \"then\")) {\n      setOfExpressionsToReturn.add(getNodeId(node));\n      forEach(node.arguments, visit);\n    } else if (isPromiseReturningCallExpression(node, checker, \"catch\") || isPromiseReturningCallExpression(node, checker, \"finally\")) {\n      setOfExpressionsToReturn.add(getNodeId(node));\n      forEachChild(node, visit);\n    } else if (isPromiseTypedExpression(node, checker)) {\n      setOfExpressionsToReturn.add(getNodeId(node));\n    } else {\n      forEachChild(node, visit);\n    }\n  });\n  return setOfExpressionsToReturn;\n}\nfunction isPromiseReturningCallExpression(node, checker, name) {\n  if (!isCallExpression(node)) return false;\n  const isExpressionOfName = hasPropertyAccessExpressionWithName(node, name);\n  const nodeType = isExpressionOfName && checker.getTypeAtLocation(node);\n  return !!(nodeType && checker.getPromisedTypeOfPromise(nodeType));\n}\nfunction isReferenceToType(type, target) {\n  return (getObjectFlags(type) & 4 /* Reference */) !== 0 && type.target === target;\n}\nfunction getExplicitPromisedTypeOfPromiseReturningCallExpression(node, callback, checker) {\n  if (node.expression.name.escapedText === \"finally\") {\n    return void 0;\n  }\n  const promiseType = checker.getTypeAtLocation(node.expression.expression);\n  if (isReferenceToType(promiseType, checker.getPromiseType()) || isReferenceToType(promiseType, checker.getPromiseLikeType())) {\n    if (node.expression.name.escapedText === \"then\") {\n      if (callback === elementAt(node.arguments, 0)) {\n        return elementAt(node.typeArguments, 0);\n      } else if (callback === elementAt(node.arguments, 1)) {\n        return elementAt(node.typeArguments, 1);\n      }\n    } else {\n      return elementAt(node.typeArguments, 0);\n    }\n  }\n}\nfunction isPromiseTypedExpression(node, checker) {\n  if (!isExpression(node)) return false;\n  return !!checker.getPromisedTypeOfPromise(checker.getTypeAtLocation(node));\n}\nfunction renameCollidingVarNames(nodeToRename, checker, synthNamesMap) {\n  const identsToRenameMap = /* @__PURE__ */ new Map();\n  const collidingSymbolMap = createMultiMap();\n  forEachChild(nodeToRename, function visit(node) {\n    if (!isIdentifier(node)) {\n      forEachChild(node, visit);\n      return;\n    }\n    const symbol = checker.getSymbolAtLocation(node);\n    if (symbol) {\n      const type = checker.getTypeAtLocation(node);\n      const lastCallSignature = getLastCallSignature(type, checker);\n      const symbolIdString = getSymbolId(symbol).toString();\n      if (lastCallSignature && !isParameter(node.parent) && !isFunctionLikeDeclaration(node.parent) && !synthNamesMap.has(symbolIdString)) {\n        const firstParameter = firstOrUndefined(lastCallSignature.parameters);\n        const ident = (firstParameter == null ? void 0 : firstParameter.valueDeclaration) && isParameter(firstParameter.valueDeclaration) && tryCast(firstParameter.valueDeclaration.name, isIdentifier) || factory.createUniqueName(\"result\", 16 /* Optimistic */);\n        const synthName = getNewNameIfConflict(ident, collidingSymbolMap);\n        synthNamesMap.set(symbolIdString, synthName);\n        collidingSymbolMap.add(ident.text, symbol);\n      } else if (node.parent && (isParameter(node.parent) || isVariableDeclaration(node.parent) || isBindingElement(node.parent))) {\n        const originalName = node.text;\n        const collidingSymbols = collidingSymbolMap.get(originalName);\n        if (collidingSymbols && collidingSymbols.some((prevSymbol) => prevSymbol !== symbol)) {\n          const newName = getNewNameIfConflict(node, collidingSymbolMap);\n          identsToRenameMap.set(symbolIdString, newName.identifier);\n          synthNamesMap.set(symbolIdString, newName);\n          collidingSymbolMap.add(originalName, symbol);\n        } else {\n          const identifier = getSynthesizedDeepClone(node);\n          synthNamesMap.set(symbolIdString, createSynthIdentifier(identifier));\n          collidingSymbolMap.add(originalName, symbol);\n        }\n      }\n    }\n  });\n  return getSynthesizedDeepCloneWithReplacements(\n    nodeToRename,\n    /*includeTrivia*/\n    true,\n    (original) => {\n      if (isBindingElement(original) && isIdentifier(original.name) && isObjectBindingPattern(original.parent)) {\n        const symbol = checker.getSymbolAtLocation(original.name);\n        const renameInfo = symbol && identsToRenameMap.get(String(getSymbolId(symbol)));\n        if (renameInfo && renameInfo.text !== (original.name || original.propertyName).getText()) {\n          return factory.createBindingElement(\n            original.dotDotDotToken,\n            original.propertyName || original.name,\n            renameInfo,\n            original.initializer\n          );\n        }\n      } else if (isIdentifier(original)) {\n        const symbol = checker.getSymbolAtLocation(original);\n        const renameInfo = symbol && identsToRenameMap.get(String(getSymbolId(symbol)));\n        if (renameInfo) {\n          return factory.createIdentifier(renameInfo.text);\n        }\n      }\n    }\n  );\n}\nfunction getNewNameIfConflict(name, originalNames) {\n  const numVarsSameName = (originalNames.get(name.text) || emptyArray).length;\n  const identifier = numVarsSameName === 0 ? name : factory.createIdentifier(name.text + \"_\" + numVarsSameName);\n  return createSynthIdentifier(identifier);\n}\nfunction hasFailed() {\n  return !codeActionSucceeded;\n}\nfunction silentFail() {\n  codeActionSucceeded = false;\n  return emptyArray;\n}\nfunction transformExpression(returnContextNode, node, transformer, hasContinuation, continuationArgName) {\n  if (isPromiseReturningCallExpression(node, transformer.checker, \"then\")) {\n    return transformThen(node, elementAt(node.arguments, 0), elementAt(node.arguments, 1), transformer, hasContinuation, continuationArgName);\n  }\n  if (isPromiseReturningCallExpression(node, transformer.checker, \"catch\")) {\n    return transformCatch(node, elementAt(node.arguments, 0), transformer, hasContinuation, continuationArgName);\n  }\n  if (isPromiseReturningCallExpression(node, transformer.checker, \"finally\")) {\n    return transformFinally(node, elementAt(node.arguments, 0), transformer, hasContinuation, continuationArgName);\n  }\n  if (isPropertyAccessExpression(node)) {\n    return transformExpression(returnContextNode, node.expression, transformer, hasContinuation, continuationArgName);\n  }\n  const nodeType = transformer.checker.getTypeAtLocation(node);\n  if (nodeType && transformer.checker.getPromisedTypeOfPromise(nodeType)) {\n    Debug.assertNode(getOriginalNode(node).parent, isPropertyAccessExpression);\n    return transformPromiseExpressionOfPropertyAccess(returnContextNode, node, transformer, hasContinuation, continuationArgName);\n  }\n  return silentFail();\n}\nfunction isNullOrUndefined2({ checker }, node) {\n  if (node.kind === 106 /* NullKeyword */) return true;\n  if (isIdentifier(node) && !isGeneratedIdentifier(node) && idText(node) === \"undefined\") {\n    const symbol = checker.getSymbolAtLocation(node);\n    return !symbol || checker.isUndefinedSymbol(symbol);\n  }\n  return false;\n}\nfunction createUniqueSynthName(prevArgName) {\n  const renamedPrevArg = factory.createUniqueName(prevArgName.identifier.text, 16 /* Optimistic */);\n  return createSynthIdentifier(renamedPrevArg);\n}\nfunction getPossibleNameForVarDecl(node, transformer, continuationArgName) {\n  let possibleNameForVarDecl;\n  if (continuationArgName && !shouldReturn(node, transformer)) {\n    if (isSynthIdentifier(continuationArgName)) {\n      possibleNameForVarDecl = continuationArgName;\n      transformer.synthNamesMap.forEach((val, key) => {\n        if (val.identifier.text === continuationArgName.identifier.text) {\n          const newSynthName = createUniqueSynthName(continuationArgName);\n          transformer.synthNamesMap.set(key, newSynthName);\n        }\n      });\n    } else {\n      possibleNameForVarDecl = createSynthIdentifier(factory.createUniqueName(\"result\", 16 /* Optimistic */), continuationArgName.types);\n    }\n    declareSynthIdentifier(possibleNameForVarDecl);\n  }\n  return possibleNameForVarDecl;\n}\nfunction finishCatchOrFinallyTransform(node, transformer, tryStatement, possibleNameForVarDecl, continuationArgName) {\n  const statements = [];\n  let varDeclIdentifier;\n  if (possibleNameForVarDecl && !shouldReturn(node, transformer)) {\n    varDeclIdentifier = getSynthesizedDeepClone(declareSynthIdentifier(possibleNameForVarDecl));\n    const typeArray = possibleNameForVarDecl.types;\n    const unionType = transformer.checker.getUnionType(typeArray, 2 /* Subtype */);\n    const unionTypeNode = transformer.isInJSFile ? void 0 : transformer.checker.typeToTypeNode(\n      unionType,\n      /*enclosingDeclaration*/\n      void 0,\n      /*flags*/\n      void 0\n    );\n    const varDecl = [factory.createVariableDeclaration(\n      varDeclIdentifier,\n      /*exclamationToken*/\n      void 0,\n      unionTypeNode\n    )];\n    const varDeclList = factory.createVariableStatement(\n      /*modifiers*/\n      void 0,\n      factory.createVariableDeclarationList(varDecl, 1 /* Let */)\n    );\n    statements.push(varDeclList);\n  }\n  statements.push(tryStatement);\n  if (continuationArgName && varDeclIdentifier && isSynthBindingPattern(continuationArgName)) {\n    statements.push(factory.createVariableStatement(\n      /*modifiers*/\n      void 0,\n      factory.createVariableDeclarationList([\n        factory.createVariableDeclaration(\n          getSynthesizedDeepClone(declareSynthBindingPattern(continuationArgName)),\n          /*exclamationToken*/\n          void 0,\n          /*type*/\n          void 0,\n          varDeclIdentifier\n        )\n      ], 2 /* Const */)\n    ));\n  }\n  return statements;\n}\nfunction transformFinally(node, onFinally, transformer, hasContinuation, continuationArgName) {\n  if (!onFinally || isNullOrUndefined2(transformer, onFinally)) {\n    return transformExpression(\n      /* returnContextNode */\n      node,\n      node.expression.expression,\n      transformer,\n      hasContinuation,\n      continuationArgName\n    );\n  }\n  const possibleNameForVarDecl = getPossibleNameForVarDecl(node, transformer, continuationArgName);\n  const inlinedLeftHandSide = transformExpression(\n    /*returnContextNode*/\n    node,\n    node.expression.expression,\n    transformer,\n    /*hasContinuation*/\n    true,\n    possibleNameForVarDecl\n  );\n  if (hasFailed()) return silentFail();\n  const inlinedCallback = transformCallbackArgument(\n    onFinally,\n    hasContinuation,\n    /*continuationArgName*/\n    void 0,\n    /*inputArgName*/\n    void 0,\n    node,\n    transformer\n  );\n  if (hasFailed()) return silentFail();\n  const tryBlock = factory.createBlock(inlinedLeftHandSide);\n  const finallyBlock = factory.createBlock(inlinedCallback);\n  const tryStatement = factory.createTryStatement(\n    tryBlock,\n    /*catchClause*/\n    void 0,\n    finallyBlock\n  );\n  return finishCatchOrFinallyTransform(node, transformer, tryStatement, possibleNameForVarDecl, continuationArgName);\n}\nfunction transformCatch(node, onRejected, transformer, hasContinuation, continuationArgName) {\n  if (!onRejected || isNullOrUndefined2(transformer, onRejected)) {\n    return transformExpression(\n      /* returnContextNode */\n      node,\n      node.expression.expression,\n      transformer,\n      hasContinuation,\n      continuationArgName\n    );\n  }\n  const inputArgName = getArgBindingName(onRejected, transformer);\n  const possibleNameForVarDecl = getPossibleNameForVarDecl(node, transformer, continuationArgName);\n  const inlinedLeftHandSide = transformExpression(\n    /*returnContextNode*/\n    node,\n    node.expression.expression,\n    transformer,\n    /*hasContinuation*/\n    true,\n    possibleNameForVarDecl\n  );\n  if (hasFailed()) return silentFail();\n  const inlinedCallback = transformCallbackArgument(onRejected, hasContinuation, possibleNameForVarDecl, inputArgName, node, transformer);\n  if (hasFailed()) return silentFail();\n  const tryBlock = factory.createBlock(inlinedLeftHandSide);\n  const catchClause = factory.createCatchClause(inputArgName && getSynthesizedDeepClone(declareSynthBindingName(inputArgName)), factory.createBlock(inlinedCallback));\n  const tryStatement = factory.createTryStatement(\n    tryBlock,\n    catchClause,\n    /*finallyBlock*/\n    void 0\n  );\n  return finishCatchOrFinallyTransform(node, transformer, tryStatement, possibleNameForVarDecl, continuationArgName);\n}\nfunction transformThen(node, onFulfilled, onRejected, transformer, hasContinuation, continuationArgName) {\n  if (!onFulfilled || isNullOrUndefined2(transformer, onFulfilled)) {\n    return transformCatch(node, onRejected, transformer, hasContinuation, continuationArgName);\n  }\n  if (onRejected && !isNullOrUndefined2(transformer, onRejected)) {\n    return silentFail();\n  }\n  const inputArgName = getArgBindingName(onFulfilled, transformer);\n  const inlinedLeftHandSide = transformExpression(\n    node.expression.expression,\n    node.expression.expression,\n    transformer,\n    /*hasContinuation*/\n    true,\n    inputArgName\n  );\n  if (hasFailed()) return silentFail();\n  const inlinedCallback = transformCallbackArgument(onFulfilled, hasContinuation, continuationArgName, inputArgName, node, transformer);\n  if (hasFailed()) return silentFail();\n  return concatenate(inlinedLeftHandSide, inlinedCallback);\n}\nfunction transformPromiseExpressionOfPropertyAccess(returnContextNode, node, transformer, hasContinuation, continuationArgName) {\n  if (shouldReturn(returnContextNode, transformer)) {\n    let returnValue = getSynthesizedDeepClone(node);\n    if (hasContinuation) {\n      returnValue = factory.createAwaitExpression(returnValue);\n    }\n    return [factory.createReturnStatement(returnValue)];\n  }\n  return createVariableOrAssignmentOrExpressionStatement(\n    continuationArgName,\n    factory.createAwaitExpression(node),\n    /*typeAnnotation*/\n    void 0\n  );\n}\nfunction createVariableOrAssignmentOrExpressionStatement(variableName, rightHandSide, typeAnnotation) {\n  if (!variableName || isEmptyBindingName(variableName)) {\n    return [factory.createExpressionStatement(rightHandSide)];\n  }\n  if (isSynthIdentifier(variableName) && variableName.hasBeenDeclared) {\n    return [factory.createExpressionStatement(factory.createAssignment(getSynthesizedDeepClone(referenceSynthIdentifier(variableName)), rightHandSide))];\n  }\n  return [\n    factory.createVariableStatement(\n      /*modifiers*/\n      void 0,\n      factory.createVariableDeclarationList([\n        factory.createVariableDeclaration(\n          getSynthesizedDeepClone(declareSynthBindingName(variableName)),\n          /*exclamationToken*/\n          void 0,\n          typeAnnotation,\n          rightHandSide\n        )\n      ], 2 /* Const */)\n    )\n  ];\n}\nfunction maybeAnnotateAndReturn(expressionToReturn, typeAnnotation) {\n  if (typeAnnotation && expressionToReturn) {\n    const name = factory.createUniqueName(\"result\", 16 /* Optimistic */);\n    return [\n      ...createVariableOrAssignmentOrExpressionStatement(createSynthIdentifier(name), expressionToReturn, typeAnnotation),\n      factory.createReturnStatement(name)\n    ];\n  }\n  return [factory.createReturnStatement(expressionToReturn)];\n}\nfunction transformCallbackArgument(func, hasContinuation, continuationArgName, inputArgName, parent2, transformer) {\n  var _a;\n  switch (func.kind) {\n    case 106 /* NullKeyword */:\n      break;\n    case 212 /* PropertyAccessExpression */:\n    case 80 /* Identifier */:\n      if (!inputArgName) {\n        break;\n      }\n      const synthCall = factory.createCallExpression(\n        getSynthesizedDeepClone(func),\n        /*typeArguments*/\n        void 0,\n        isSynthIdentifier(inputArgName) ? [referenceSynthIdentifier(inputArgName)] : []\n      );\n      if (shouldReturn(parent2, transformer)) {\n        return maybeAnnotateAndReturn(synthCall, getExplicitPromisedTypeOfPromiseReturningCallExpression(parent2, func, transformer.checker));\n      }\n      const type = transformer.checker.getTypeAtLocation(func);\n      const callSignatures = transformer.checker.getSignaturesOfType(type, 0 /* Call */);\n      if (!callSignatures.length) {\n        return silentFail();\n      }\n      const returnType = callSignatures[0].getReturnType();\n      const varDeclOrAssignment = createVariableOrAssignmentOrExpressionStatement(continuationArgName, factory.createAwaitExpression(synthCall), getExplicitPromisedTypeOfPromiseReturningCallExpression(parent2, func, transformer.checker));\n      if (continuationArgName) {\n        continuationArgName.types.push(transformer.checker.getAwaitedType(returnType) || returnType);\n      }\n      return varDeclOrAssignment;\n    case 219 /* FunctionExpression */:\n    case 220 /* ArrowFunction */: {\n      const funcBody = func.body;\n      const returnType2 = (_a = getLastCallSignature(transformer.checker.getTypeAtLocation(func), transformer.checker)) == null ? void 0 : _a.getReturnType();\n      if (isBlock(funcBody)) {\n        let refactoredStmts = [];\n        let seenReturnStatement = false;\n        for (const statement of funcBody.statements) {\n          if (isReturnStatement(statement)) {\n            seenReturnStatement = true;\n            if (isReturnStatementWithFixablePromiseHandler(statement, transformer.checker)) {\n              refactoredStmts = refactoredStmts.concat(transformReturnStatementWithFixablePromiseHandler(transformer, statement, hasContinuation, continuationArgName));\n            } else {\n              const possiblyAwaitedRightHandSide = returnType2 && statement.expression ? getPossiblyAwaitedRightHandSide(transformer.checker, returnType2, statement.expression) : statement.expression;\n              refactoredStmts.push(...maybeAnnotateAndReturn(possiblyAwaitedRightHandSide, getExplicitPromisedTypeOfPromiseReturningCallExpression(parent2, func, transformer.checker)));\n            }\n          } else if (hasContinuation && forEachReturnStatement(statement, returnTrue)) {\n            return silentFail();\n          } else {\n            refactoredStmts.push(statement);\n          }\n        }\n        return shouldReturn(parent2, transformer) ? refactoredStmts.map((s) => getSynthesizedDeepClone(s)) : removeReturns(\n          refactoredStmts,\n          continuationArgName,\n          transformer,\n          seenReturnStatement\n        );\n      } else {\n        const inlinedStatements = isFixablePromiseHandler(funcBody, transformer.checker) ? transformReturnStatementWithFixablePromiseHandler(transformer, factory.createReturnStatement(funcBody), hasContinuation, continuationArgName) : emptyArray;\n        if (inlinedStatements.length > 0) {\n          return inlinedStatements;\n        }\n        if (returnType2) {\n          const possiblyAwaitedRightHandSide = getPossiblyAwaitedRightHandSide(transformer.checker, returnType2, funcBody);\n          if (!shouldReturn(parent2, transformer)) {\n            const transformedStatement = createVariableOrAssignmentOrExpressionStatement(\n              continuationArgName,\n              possiblyAwaitedRightHandSide,\n              /*typeAnnotation*/\n              void 0\n            );\n            if (continuationArgName) {\n              continuationArgName.types.push(transformer.checker.getAwaitedType(returnType2) || returnType2);\n            }\n            return transformedStatement;\n          } else {\n            return maybeAnnotateAndReturn(possiblyAwaitedRightHandSide, getExplicitPromisedTypeOfPromiseReturningCallExpression(parent2, func, transformer.checker));\n          }\n        } else {\n          return silentFail();\n        }\n      }\n    }\n    default:\n      return silentFail();\n  }\n  return emptyArray;\n}\nfunction getPossiblyAwaitedRightHandSide(checker, type, expr) {\n  const rightHandSide = getSynthesizedDeepClone(expr);\n  return !!checker.getPromisedTypeOfPromise(type) ? factory.createAwaitExpression(rightHandSide) : rightHandSide;\n}\nfunction getLastCallSignature(type, checker) {\n  const callSignatures = checker.getSignaturesOfType(type, 0 /* Call */);\n  return lastOrUndefined(callSignatures);\n}\nfunction removeReturns(stmts, prevArgName, transformer, seenReturnStatement) {\n  const ret = [];\n  for (const stmt of stmts) {\n    if (isReturnStatement(stmt)) {\n      if (stmt.expression) {\n        const possiblyAwaitedExpression = isPromiseTypedExpression(stmt.expression, transformer.checker) ? factory.createAwaitExpression(stmt.expression) : stmt.expression;\n        if (prevArgName === void 0) {\n          ret.push(factory.createExpressionStatement(possiblyAwaitedExpression));\n        } else if (isSynthIdentifier(prevArgName) && prevArgName.hasBeenDeclared) {\n          ret.push(factory.createExpressionStatement(factory.createAssignment(referenceSynthIdentifier(prevArgName), possiblyAwaitedExpression)));\n        } else {\n          ret.push(factory.createVariableStatement(\n            /*modifiers*/\n            void 0,\n            factory.createVariableDeclarationList([factory.createVariableDeclaration(\n              declareSynthBindingName(prevArgName),\n              /*exclamationToken*/\n              void 0,\n              /*type*/\n              void 0,\n              possiblyAwaitedExpression\n            )], 2 /* Const */)\n          ));\n        }\n      }\n    } else {\n      ret.push(getSynthesizedDeepClone(stmt));\n    }\n  }\n  if (!seenReturnStatement && prevArgName !== void 0) {\n    ret.push(factory.createVariableStatement(\n      /*modifiers*/\n      void 0,\n      factory.createVariableDeclarationList([factory.createVariableDeclaration(\n        declareSynthBindingName(prevArgName),\n        /*exclamationToken*/\n        void 0,\n        /*type*/\n        void 0,\n        factory.createIdentifier(\"undefined\")\n      )], 2 /* Const */)\n    ));\n  }\n  return ret;\n}\nfunction transformReturnStatementWithFixablePromiseHandler(transformer, innerRetStmt, hasContinuation, continuationArgName) {\n  let innerCbBody = [];\n  forEachChild(innerRetStmt, function visit(node) {\n    if (isCallExpression(node)) {\n      const temp = transformExpression(node, node, transformer, hasContinuation, continuationArgName);\n      innerCbBody = innerCbBody.concat(temp);\n      if (innerCbBody.length > 0) {\n        return;\n      }\n    } else if (!isFunctionLike(node)) {\n      forEachChild(node, visit);\n    }\n  });\n  return innerCbBody;\n}\nfunction getArgBindingName(funcNode, transformer) {\n  const types = [];\n  let name;\n  if (isFunctionLikeDeclaration(funcNode)) {\n    if (funcNode.parameters.length > 0) {\n      const param = funcNode.parameters[0].name;\n      name = getMappedBindingNameOrDefault(param);\n    }\n  } else if (isIdentifier(funcNode)) {\n    name = getMapEntryOrDefault(funcNode);\n  } else if (isPropertyAccessExpression(funcNode) && isIdentifier(funcNode.name)) {\n    name = getMapEntryOrDefault(funcNode.name);\n  }\n  if (!name || \"identifier\" in name && name.identifier.text === \"undefined\") {\n    return void 0;\n  }\n  return name;\n  function getMappedBindingNameOrDefault(bindingName) {\n    if (isIdentifier(bindingName)) return getMapEntryOrDefault(bindingName);\n    const elements = flatMap(bindingName.elements, (element) => {\n      if (isOmittedExpression(element)) return [];\n      return [getMappedBindingNameOrDefault(element.name)];\n    });\n    return createSynthBindingPattern(bindingName, elements);\n  }\n  function getMapEntryOrDefault(identifier) {\n    const originalNode = getOriginalNode2(identifier);\n    const symbol = getSymbol2(originalNode);\n    if (!symbol) {\n      return createSynthIdentifier(identifier, types);\n    }\n    const mapEntry = transformer.synthNamesMap.get(getSymbolId(symbol).toString());\n    return mapEntry || createSynthIdentifier(identifier, types);\n  }\n  function getSymbol2(node) {\n    var _a;\n    return ((_a = tryCast(node, canHaveSymbol)) == null ? void 0 : _a.symbol) ?? transformer.checker.getSymbolAtLocation(node);\n  }\n  function getOriginalNode2(node) {\n    return node.original ? node.original : node;\n  }\n}\nfunction isEmptyBindingName(bindingName) {\n  if (!bindingName) {\n    return true;\n  }\n  if (isSynthIdentifier(bindingName)) {\n    return !bindingName.identifier.text;\n  }\n  return every(bindingName.elements, isEmptyBindingName);\n}\nfunction createSynthIdentifier(identifier, types = []) {\n  return { kind: 0 /* Identifier */, identifier, types, hasBeenDeclared: false, hasBeenReferenced: false };\n}\nfunction createSynthBindingPattern(bindingPattern, elements = emptyArray, types = []) {\n  return { kind: 1 /* BindingPattern */, bindingPattern, elements, types };\n}\nfunction referenceSynthIdentifier(synthId) {\n  synthId.hasBeenReferenced = true;\n  return synthId.identifier;\n}\nfunction declareSynthBindingName(synthName) {\n  return isSynthIdentifier(synthName) ? declareSynthIdentifier(synthName) : declareSynthBindingPattern(synthName);\n}\nfunction declareSynthBindingPattern(synthPattern) {\n  for (const element of synthPattern.elements) {\n    declareSynthBindingName(element);\n  }\n  return synthPattern.bindingPattern;\n}\nfunction declareSynthIdentifier(synthId) {\n  synthId.hasBeenDeclared = true;\n  return synthId.identifier;\n}\nfunction isSynthIdentifier(bindingName) {\n  return bindingName.kind === 0 /* Identifier */;\n}\nfunction isSynthBindingPattern(bindingName) {\n  return bindingName.kind === 1 /* BindingPattern */;\n}\nfunction shouldReturn(expression, transformer) {\n  return !!expression.original && transformer.setOfExpressionsToReturn.has(getNodeId(expression.original));\n}\n\n// src/services/codefixes/convertToEsModule.ts\nregisterCodeFix({\n  errorCodes: [Diagnostics.File_is_a_CommonJS_module_it_may_be_converted_to_an_ES_module.code],\n  getCodeActions(context) {\n    const { sourceFile, program, preferences } = context;\n    const changes = ts_textChanges_exports.ChangeTracker.with(context, (changes2) => {\n      const moduleExportsChangedToDefault = convertFileToEsModule(sourceFile, program.getTypeChecker(), changes2, getEmitScriptTarget(program.getCompilerOptions()), getQuotePreference(sourceFile, preferences));\n      if (moduleExportsChangedToDefault) {\n        for (const importingFile of program.getSourceFiles()) {\n          fixImportOfModuleExports(importingFile, sourceFile, program, changes2, getQuotePreference(importingFile, preferences));\n        }\n      }\n    });\n    return [createCodeFixActionWithoutFixAll(\"convertToEsModule\", changes, Diagnostics.Convert_to_ES_module)];\n  }\n});\nfunction fixImportOfModuleExports(importingFile, exportingFile, program, changes, quotePreference) {\n  var _a;\n  for (const moduleSpecifier of importingFile.imports) {\n    const imported = (_a = program.getResolvedModuleFromModuleSpecifier(moduleSpecifier, importingFile)) == null ? void 0 : _a.resolvedModule;\n    if (!imported || imported.resolvedFileName !== exportingFile.fileName) {\n      continue;\n    }\n    const importNode = importFromModuleSpecifier(moduleSpecifier);\n    switch (importNode.kind) {\n      case 272 /* ImportEqualsDeclaration */:\n        changes.replaceNode(importingFile, importNode, makeImport(\n          importNode.name,\n          /*namedImports*/\n          void 0,\n          moduleSpecifier,\n          quotePreference\n        ));\n        break;\n      case 214 /* CallExpression */:\n        if (isRequireCall(\n          importNode,\n          /*requireStringLiteralLikeArgument*/\n          false\n        )) {\n          changes.replaceNode(importingFile, importNode, factory.createPropertyAccessExpression(getSynthesizedDeepClone(importNode), \"default\"));\n        }\n        break;\n    }\n  }\n}\nfunction convertFileToEsModule(sourceFile, checker, changes, target, quotePreference) {\n  const identifiers = { original: collectFreeIdentifiers(sourceFile), additional: /* @__PURE__ */ new Set() };\n  const exports2 = collectExportRenames(sourceFile, checker, identifiers);\n  convertExportsAccesses(sourceFile, exports2, changes);\n  let moduleExportsChangedToDefault = false;\n  let useSitesToUnqualify;\n  for (const statement of filter(sourceFile.statements, isVariableStatement)) {\n    const newUseSites = convertVariableStatement(sourceFile, statement, changes, checker, identifiers, target, quotePreference);\n    if (newUseSites) {\n      copyEntries(newUseSites, useSitesToUnqualify ?? (useSitesToUnqualify = /* @__PURE__ */ new Map()));\n    }\n  }\n  for (const statement of filter(sourceFile.statements, (s) => !isVariableStatement(s))) {\n    const moduleExportsChanged = convertStatement(sourceFile, statement, checker, changes, identifiers, target, exports2, useSitesToUnqualify, quotePreference);\n    moduleExportsChangedToDefault = moduleExportsChangedToDefault || moduleExportsChanged;\n  }\n  useSitesToUnqualify == null ? void 0 : useSitesToUnqualify.forEach((replacement, original) => {\n    changes.replaceNode(sourceFile, original, replacement);\n  });\n  return moduleExportsChangedToDefault;\n}\nfunction collectExportRenames(sourceFile, checker, identifiers) {\n  const res = /* @__PURE__ */ new Map();\n  forEachExportReference(sourceFile, (node) => {\n    const { text } = node.name;\n    if (!res.has(text) && (isIdentifierANonContextualKeyword(node.name) || checker.resolveName(\n      text,\n      node,\n      111551 /* Value */,\n      /*excludeGlobals*/\n      true\n    ))) {\n      res.set(text, makeUniqueName(`_${text}`, identifiers));\n    }\n  });\n  return res;\n}\nfunction convertExportsAccesses(sourceFile, exports2, changes) {\n  forEachExportReference(sourceFile, (node, isAssignmentLhs) => {\n    if (isAssignmentLhs) {\n      return;\n    }\n    const { text } = node.name;\n    changes.replaceNode(sourceFile, node, factory.createIdentifier(exports2.get(text) || text));\n  });\n}\nfunction forEachExportReference(sourceFile, cb) {\n  sourceFile.forEachChild(function recur(node) {\n    if (isPropertyAccessExpression(node) && isExportsOrModuleExportsOrAlias(sourceFile, node.expression) && isIdentifier(node.name)) {\n      const { parent: parent2 } = node;\n      cb(node, isBinaryExpression(parent2) && parent2.left === node && parent2.operatorToken.kind === 64 /* EqualsToken */);\n    }\n    node.forEachChild(recur);\n  });\n}\nfunction convertStatement(sourceFile, statement, checker, changes, identifiers, target, exports2, useSitesToUnqualify, quotePreference) {\n  switch (statement.kind) {\n    case 244 /* VariableStatement */:\n      convertVariableStatement(sourceFile, statement, changes, checker, identifiers, target, quotePreference);\n      return false;\n    case 245 /* ExpressionStatement */: {\n      const { expression } = statement;\n      switch (expression.kind) {\n        case 214 /* CallExpression */: {\n          if (isRequireCall(\n            expression,\n            /*requireStringLiteralLikeArgument*/\n            true\n          )) {\n            changes.replaceNode(sourceFile, statement, makeImport(\n              /*defaultImport*/\n              void 0,\n              /*namedImports*/\n              void 0,\n              expression.arguments[0],\n              quotePreference\n            ));\n          }\n          return false;\n        }\n        case 227 /* BinaryExpression */: {\n          const { operatorToken } = expression;\n          return operatorToken.kind === 64 /* EqualsToken */ && convertAssignment(sourceFile, checker, expression, changes, exports2, useSitesToUnqualify);\n        }\n      }\n    }\n    // falls through\n    default:\n      return false;\n  }\n}\nfunction convertVariableStatement(sourceFile, statement, changes, checker, identifiers, target, quotePreference) {\n  const { declarationList } = statement;\n  let foundImport = false;\n  const converted = map(declarationList.declarations, (decl) => {\n    const { name, initializer } = decl;\n    if (initializer) {\n      if (isExportsOrModuleExportsOrAlias(sourceFile, initializer)) {\n        foundImport = true;\n        return convertedImports([]);\n      } else if (isRequireCall(\n        initializer,\n        /*requireStringLiteralLikeArgument*/\n        true\n      )) {\n        foundImport = true;\n        return convertSingleImport(name, initializer.arguments[0], checker, identifiers, target, quotePreference);\n      } else if (isPropertyAccessExpression(initializer) && isRequireCall(\n        initializer.expression,\n        /*requireStringLiteralLikeArgument*/\n        true\n      )) {\n        foundImport = true;\n        return convertPropertyAccessImport(name, initializer.name.text, initializer.expression.arguments[0], identifiers, quotePreference);\n      }\n    }\n    return convertedImports([factory.createVariableStatement(\n      /*modifiers*/\n      void 0,\n      factory.createVariableDeclarationList([decl], declarationList.flags)\n    )]);\n  });\n  if (foundImport) {\n    changes.replaceNodeWithNodes(sourceFile, statement, flatMap(converted, (c) => c.newImports));\n    let combinedUseSites;\n    forEach(converted, (c) => {\n      if (c.useSitesToUnqualify) {\n        copyEntries(c.useSitesToUnqualify, combinedUseSites ?? (combinedUseSites = /* @__PURE__ */ new Map()));\n      }\n    });\n    return combinedUseSites;\n  }\n}\nfunction convertPropertyAccessImport(name, propertyName, moduleSpecifier, identifiers, quotePreference) {\n  switch (name.kind) {\n    case 207 /* ObjectBindingPattern */:\n    case 208 /* ArrayBindingPattern */: {\n      const tmp = makeUniqueName(propertyName, identifiers);\n      return convertedImports([\n        makeSingleImport(tmp, propertyName, moduleSpecifier, quotePreference),\n        makeConst(\n          /*modifiers*/\n          void 0,\n          name,\n          factory.createIdentifier(tmp)\n        )\n      ]);\n    }\n    case 80 /* Identifier */:\n      return convertedImports([makeSingleImport(name.text, propertyName, moduleSpecifier, quotePreference)]);\n    default:\n      return Debug.assertNever(name, `Convert to ES module got invalid syntax form ${name.kind}`);\n  }\n}\nfunction convertAssignment(sourceFile, checker, assignment, changes, exports2, useSitesToUnqualify) {\n  const { left, right } = assignment;\n  if (!isPropertyAccessExpression(left)) {\n    return false;\n  }\n  if (isExportsOrModuleExportsOrAlias(sourceFile, left)) {\n    if (isExportsOrModuleExportsOrAlias(sourceFile, right)) {\n      changes.delete(sourceFile, assignment.parent);\n    } else {\n      const replacement = isObjectLiteralExpression(right) ? tryChangeModuleExportsObject(right, useSitesToUnqualify) : isRequireCall(\n        right,\n        /*requireStringLiteralLikeArgument*/\n        true\n      ) ? convertReExportAll(right.arguments[0], checker) : void 0;\n      if (replacement) {\n        changes.replaceNodeWithNodes(sourceFile, assignment.parent, replacement[0]);\n        return replacement[1];\n      } else {\n        changes.replaceRangeWithText(sourceFile, createRange(left.getStart(sourceFile), right.pos), \"export default\");\n        return true;\n      }\n    }\n  } else if (isExportsOrModuleExportsOrAlias(sourceFile, left.expression)) {\n    convertNamedExport(sourceFile, assignment, changes, exports2);\n  }\n  return false;\n}\nfunction tryChangeModuleExportsObject(object, useSitesToUnqualify) {\n  const statements = mapAllOrFail(object.properties, (prop) => {\n    switch (prop.kind) {\n      case 178 /* GetAccessor */:\n      case 179 /* SetAccessor */:\n      // TODO: Maybe we should handle this? See fourslash test `refactorConvertToEs6Module_export_object_shorthand.ts`.\n      // falls through\n      case 305 /* ShorthandPropertyAssignment */:\n      case 306 /* SpreadAssignment */:\n        return void 0;\n      case 304 /* PropertyAssignment */:\n        return !isIdentifier(prop.name) ? void 0 : convertExportsDotXEquals_replaceNode(prop.name.text, prop.initializer, useSitesToUnqualify);\n      case 175 /* MethodDeclaration */:\n        return !isIdentifier(prop.name) ? void 0 : functionExpressionToDeclaration(prop.name.text, [factory.createToken(95 /* ExportKeyword */)], prop, useSitesToUnqualify);\n      default:\n        Debug.assertNever(prop, `Convert to ES6 got invalid prop kind ${prop.kind}`);\n    }\n  });\n  return statements && [statements, false];\n}\nfunction convertNamedExport(sourceFile, assignment, changes, exports2) {\n  const { text } = assignment.left.name;\n  const rename = exports2.get(text);\n  if (rename !== void 0) {\n    const newNodes = [\n      makeConst(\n        /*modifiers*/\n        void 0,\n        rename,\n        assignment.right\n      ),\n      makeExportDeclaration([factory.createExportSpecifier(\n        /*isTypeOnly*/\n        false,\n        rename,\n        text\n      )])\n    ];\n    changes.replaceNodeWithNodes(sourceFile, assignment.parent, newNodes);\n  } else {\n    convertExportsPropertyAssignment(assignment, sourceFile, changes);\n  }\n}\nfunction convertReExportAll(reExported, checker) {\n  const moduleSpecifier = reExported.text;\n  const moduleSymbol = checker.getSymbolAtLocation(reExported);\n  const exports2 = moduleSymbol ? moduleSymbol.exports : emptyMap;\n  return exports2.has(\"export=\" /* ExportEquals */) ? [[reExportDefault(moduleSpecifier)], true] : !exports2.has(\"default\" /* Default */) ? [[reExportStar(moduleSpecifier)], false] : (\n    // If there's some non-default export, must include both `export *` and `export default`.\n    exports2.size > 1 ? [[reExportStar(moduleSpecifier), reExportDefault(moduleSpecifier)], true] : [[reExportDefault(moduleSpecifier)], true]\n  );\n}\nfunction reExportStar(moduleSpecifier) {\n  return makeExportDeclaration(\n    /*exportSpecifiers*/\n    void 0,\n    moduleSpecifier\n  );\n}\nfunction reExportDefault(moduleSpecifier) {\n  return makeExportDeclaration([factory.createExportSpecifier(\n    /*isTypeOnly*/\n    false,\n    /*propertyName*/\n    void 0,\n    \"default\"\n  )], moduleSpecifier);\n}\nfunction convertExportsPropertyAssignment({ left, right, parent: parent2 }, sourceFile, changes) {\n  const name = left.name.text;\n  if ((isFunctionExpression(right) || isArrowFunction(right) || isClassExpression(right)) && (!right.name || right.name.text === name)) {\n    changes.replaceRange(sourceFile, { pos: left.getStart(sourceFile), end: right.getStart(sourceFile) }, factory.createToken(95 /* ExportKeyword */), { suffix: \" \" });\n    if (!right.name) changes.insertName(sourceFile, right, name);\n    const semi = findChildOfKind(parent2, 27 /* SemicolonToken */, sourceFile);\n    if (semi) changes.delete(sourceFile, semi);\n  } else {\n    changes.replaceNodeRangeWithNodes(sourceFile, left.expression, findChildOfKind(left, 25 /* DotToken */, sourceFile), [factory.createToken(95 /* ExportKeyword */), factory.createToken(87 /* ConstKeyword */)], { joiner: \" \", suffix: \" \" });\n  }\n}\nfunction convertExportsDotXEquals_replaceNode(name, exported, useSitesToUnqualify) {\n  const modifiers = [factory.createToken(95 /* ExportKeyword */)];\n  switch (exported.kind) {\n    case 219 /* FunctionExpression */: {\n      const { name: expressionName } = exported;\n      if (expressionName && expressionName.text !== name) {\n        return exportConst();\n      }\n    }\n    // falls through\n    case 220 /* ArrowFunction */:\n      return functionExpressionToDeclaration(name, modifiers, exported, useSitesToUnqualify);\n    case 232 /* ClassExpression */:\n      return classExpressionToDeclaration(name, modifiers, exported, useSitesToUnqualify);\n    default:\n      return exportConst();\n  }\n  function exportConst() {\n    return makeConst(modifiers, factory.createIdentifier(name), replaceImportUseSites(exported, useSitesToUnqualify));\n  }\n}\nfunction replaceImportUseSites(nodeOrNodes, useSitesToUnqualify) {\n  if (!useSitesToUnqualify || !some(arrayFrom(useSitesToUnqualify.keys()), (original) => rangeContainsRange(nodeOrNodes, original))) {\n    return nodeOrNodes;\n  }\n  return isArray(nodeOrNodes) ? getSynthesizedDeepClonesWithReplacements(\n    nodeOrNodes,\n    /*includeTrivia*/\n    true,\n    replaceNode\n  ) : getSynthesizedDeepCloneWithReplacements(\n    nodeOrNodes,\n    /*includeTrivia*/\n    true,\n    replaceNode\n  );\n  function replaceNode(original) {\n    if (original.kind === 212 /* PropertyAccessExpression */) {\n      const replacement = useSitesToUnqualify.get(original);\n      useSitesToUnqualify.delete(original);\n      return replacement;\n    }\n  }\n}\nfunction convertSingleImport(name, moduleSpecifier, checker, identifiers, target, quotePreference) {\n  switch (name.kind) {\n    case 207 /* ObjectBindingPattern */: {\n      const importSpecifiers = mapAllOrFail(name.elements, (e) => e.dotDotDotToken || e.initializer || e.propertyName && !isIdentifier(e.propertyName) || !isIdentifier(e.name) ? void 0 : makeImportSpecifier2(e.propertyName && e.propertyName.text, e.name.text));\n      if (importSpecifiers) {\n        return convertedImports([makeImport(\n          /*defaultImport*/\n          void 0,\n          importSpecifiers,\n          moduleSpecifier,\n          quotePreference\n        )]);\n      }\n    }\n    // falls through -- object destructuring has an interesting pattern and must be a variable declaration\n    case 208 /* ArrayBindingPattern */: {\n      const tmp = makeUniqueName(moduleSpecifierToValidIdentifier(moduleSpecifier.text, target), identifiers);\n      return convertedImports([\n        makeImport(\n          factory.createIdentifier(tmp),\n          /*namedImports*/\n          void 0,\n          moduleSpecifier,\n          quotePreference\n        ),\n        makeConst(\n          /*modifiers*/\n          void 0,\n          getSynthesizedDeepClone(name),\n          factory.createIdentifier(tmp)\n        )\n      ]);\n    }\n    case 80 /* Identifier */:\n      return convertSingleIdentifierImport(name, moduleSpecifier, checker, identifiers, quotePreference);\n    default:\n      return Debug.assertNever(name, `Convert to ES module got invalid name kind ${name.kind}`);\n  }\n}\nfunction convertSingleIdentifierImport(name, moduleSpecifier, checker, identifiers, quotePreference) {\n  const nameSymbol = checker.getSymbolAtLocation(name);\n  const namedBindingsNames = /* @__PURE__ */ new Map();\n  let needDefaultImport = false;\n  let useSitesToUnqualify;\n  for (const use of identifiers.original.get(name.text)) {\n    if (checker.getSymbolAtLocation(use) !== nameSymbol || use === name) {\n      continue;\n    }\n    const { parent: parent2 } = use;\n    if (isPropertyAccessExpression(parent2)) {\n      const { name: { text: propertyName } } = parent2;\n      if (propertyName === \"default\") {\n        needDefaultImport = true;\n        const importDefaultName = use.getText();\n        (useSitesToUnqualify ?? (useSitesToUnqualify = /* @__PURE__ */ new Map())).set(parent2, factory.createIdentifier(importDefaultName));\n      } else {\n        Debug.assert(parent2.expression === use, \"Didn't expect expression === use\");\n        let idName = namedBindingsNames.get(propertyName);\n        if (idName === void 0) {\n          idName = makeUniqueName(propertyName, identifiers);\n          namedBindingsNames.set(propertyName, idName);\n        }\n        (useSitesToUnqualify ?? (useSitesToUnqualify = /* @__PURE__ */ new Map())).set(parent2, factory.createIdentifier(idName));\n      }\n    } else {\n      needDefaultImport = true;\n    }\n  }\n  const namedBindings = namedBindingsNames.size === 0 ? void 0 : arrayFrom(mapIterator(namedBindingsNames.entries(), ([propertyName, idName]) => factory.createImportSpecifier(\n    /*isTypeOnly*/\n    false,\n    propertyName === idName ? void 0 : factory.createIdentifier(propertyName),\n    factory.createIdentifier(idName)\n  )));\n  if (!namedBindings) {\n    needDefaultImport = true;\n  }\n  return convertedImports(\n    [makeImport(needDefaultImport ? getSynthesizedDeepClone(name) : void 0, namedBindings, moduleSpecifier, quotePreference)],\n    useSitesToUnqualify\n  );\n}\nfunction makeUniqueName(name, identifiers) {\n  while (identifiers.original.has(name) || identifiers.additional.has(name)) {\n    name = `_${name}`;\n  }\n  identifiers.additional.add(name);\n  return name;\n}\nfunction collectFreeIdentifiers(file) {\n  const map2 = createMultiMap();\n  forEachFreeIdentifier(file, (id) => map2.add(id.text, id));\n  return map2;\n}\nfunction forEachFreeIdentifier(node, cb) {\n  if (isIdentifier(node) && isFreeIdentifier(node)) cb(node);\n  node.forEachChild((child) => forEachFreeIdentifier(child, cb));\n}\nfunction isFreeIdentifier(node) {\n  const { parent: parent2 } = node;\n  switch (parent2.kind) {\n    case 212 /* PropertyAccessExpression */:\n      return parent2.name !== node;\n    case 209 /* BindingElement */:\n      return parent2.propertyName !== node;\n    case 277 /* ImportSpecifier */:\n      return parent2.propertyName !== node;\n    default:\n      return true;\n  }\n}\nfunction functionExpressionToDeclaration(name, additionalModifiers, fn, useSitesToUnqualify) {\n  return factory.createFunctionDeclaration(\n    concatenate(additionalModifiers, getSynthesizedDeepClones(fn.modifiers)),\n    getSynthesizedDeepClone(fn.asteriskToken),\n    name,\n    getSynthesizedDeepClones(fn.typeParameters),\n    getSynthesizedDeepClones(fn.parameters),\n    getSynthesizedDeepClone(fn.type),\n    factory.converters.convertToFunctionBlock(replaceImportUseSites(fn.body, useSitesToUnqualify))\n  );\n}\nfunction classExpressionToDeclaration(name, additionalModifiers, cls, useSitesToUnqualify) {\n  return factory.createClassDeclaration(\n    concatenate(additionalModifiers, getSynthesizedDeepClones(cls.modifiers)),\n    name,\n    getSynthesizedDeepClones(cls.typeParameters),\n    getSynthesizedDeepClones(cls.heritageClauses),\n    replaceImportUseSites(cls.members, useSitesToUnqualify)\n  );\n}\nfunction makeSingleImport(localName, propertyName, moduleSpecifier, quotePreference) {\n  return propertyName === \"default\" ? makeImport(\n    factory.createIdentifier(localName),\n    /*namedImports*/\n    void 0,\n    moduleSpecifier,\n    quotePreference\n  ) : makeImport(\n    /*defaultImport*/\n    void 0,\n    [makeImportSpecifier2(propertyName, localName)],\n    moduleSpecifier,\n    quotePreference\n  );\n}\nfunction makeImportSpecifier2(propertyName, name) {\n  return factory.createImportSpecifier(\n    /*isTypeOnly*/\n    false,\n    propertyName !== void 0 && propertyName !== name ? factory.createIdentifier(propertyName) : void 0,\n    factory.createIdentifier(name)\n  );\n}\nfunction makeConst(modifiers, name, init) {\n  return factory.createVariableStatement(\n    modifiers,\n    factory.createVariableDeclarationList(\n      [factory.createVariableDeclaration(\n        name,\n        /*exclamationToken*/\n        void 0,\n        /*type*/\n        void 0,\n        init\n      )],\n      2 /* Const */\n    )\n  );\n}\nfunction makeExportDeclaration(exportSpecifiers, moduleSpecifier) {\n  return factory.createExportDeclaration(\n    /*modifiers*/\n    void 0,\n    /*isTypeOnly*/\n    false,\n    exportSpecifiers && factory.createNamedExports(exportSpecifiers),\n    moduleSpecifier === void 0 ? void 0 : factory.createStringLiteral(moduleSpecifier)\n  );\n}\nfunction convertedImports(newImports, useSitesToUnqualify) {\n  return {\n    newImports,\n    useSitesToUnqualify\n  };\n}\n\n// src/services/codefixes/correctQualifiedNameToIndexedAccessType.ts\nvar fixId12 = \"correctQualifiedNameToIndexedAccessType\";\nvar errorCodes13 = [Diagnostics.Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_property_1_in_0_with_0_1.code];\nregisterCodeFix({\n  errorCodes: errorCodes13,\n  getCodeActions(context) {\n    const qualifiedName = getQualifiedName(context.sourceFile, context.span.start);\n    if (!qualifiedName) return void 0;\n    const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange10(t, context.sourceFile, qualifiedName));\n    const newText = `${qualifiedName.left.text}[\"${qualifiedName.right.text}\"]`;\n    return [createCodeFixAction(fixId12, changes, [Diagnostics.Rewrite_as_the_indexed_access_type_0, newText], fixId12, Diagnostics.Rewrite_all_as_indexed_access_types)];\n  },\n  fixIds: [fixId12],\n  getAllCodeActions: (context) => codeFixAll(context, errorCodes13, (changes, diag2) => {\n    const q = getQualifiedName(diag2.file, diag2.start);\n    if (q) {\n      doChange10(changes, diag2.file, q);\n    }\n  })\n});\nfunction getQualifiedName(sourceFile, pos) {\n  const qualifiedName = findAncestor(getTokenAtPosition(sourceFile, pos), isQualifiedName);\n  Debug.assert(!!qualifiedName, \"Expected position to be owned by a qualified name.\");\n  return isIdentifier(qualifiedName.left) ? qualifiedName : void 0;\n}\nfunction doChange10(changeTracker, sourceFile, qualifiedName) {\n  const rightText = qualifiedName.right.text;\n  const replacement = factory.createIndexedAccessTypeNode(\n    factory.createTypeReferenceNode(\n      qualifiedName.left,\n      /*typeArguments*/\n      void 0\n    ),\n    factory.createLiteralTypeNode(factory.createStringLiteral(rightText))\n  );\n  changeTracker.replaceNode(sourceFile, qualifiedName, replacement);\n}\n\n// src/services/codefixes/convertToTypeOnlyExport.ts\nvar errorCodes14 = [Diagnostics.Re_exporting_a_type_when_0_is_enabled_requires_using_export_type.code];\nvar fixId13 = \"convertToTypeOnlyExport\";\nregisterCodeFix({\n  errorCodes: errorCodes14,\n  getCodeActions: function getCodeActionsToConvertToTypeOnlyExport(context) {\n    const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => fixSingleExportDeclaration(t, getExportSpecifierForDiagnosticSpan(context.span, context.sourceFile), context));\n    if (changes.length) {\n      return [createCodeFixAction(fixId13, changes, Diagnostics.Convert_to_type_only_export, fixId13, Diagnostics.Convert_all_re_exported_types_to_type_only_exports)];\n    }\n  },\n  fixIds: [fixId13],\n  getAllCodeActions: function getAllCodeActionsToConvertToTypeOnlyExport(context) {\n    const fixedExportDeclarations = /* @__PURE__ */ new Set();\n    return codeFixAll(context, errorCodes14, (changes, diag2) => {\n      const exportSpecifier = getExportSpecifierForDiagnosticSpan(diag2, context.sourceFile);\n      if (exportSpecifier && addToSeen(fixedExportDeclarations, getNodeId(exportSpecifier.parent.parent))) {\n        fixSingleExportDeclaration(changes, exportSpecifier, context);\n      }\n    });\n  }\n});\nfunction getExportSpecifierForDiagnosticSpan(span, sourceFile) {\n  return tryCast(getTokenAtPosition(sourceFile, span.start).parent, isExportSpecifier);\n}\nfunction fixSingleExportDeclaration(changes, exportSpecifier, context) {\n  if (!exportSpecifier) {\n    return;\n  }\n  const exportClause = exportSpecifier.parent;\n  const exportDeclaration = exportClause.parent;\n  const typeExportSpecifiers = getTypeExportSpecifiers(exportSpecifier, context);\n  if (typeExportSpecifiers.length === exportClause.elements.length) {\n    changes.insertModifierBefore(context.sourceFile, 156 /* TypeKeyword */, exportClause);\n  } else {\n    const valueExportDeclaration = factory.updateExportDeclaration(\n      exportDeclaration,\n      exportDeclaration.modifiers,\n      /*isTypeOnly*/\n      false,\n      factory.updateNamedExports(exportClause, filter(exportClause.elements, (e) => !contains(typeExportSpecifiers, e))),\n      exportDeclaration.moduleSpecifier,\n      /*attributes*/\n      void 0\n    );\n    const typeExportDeclaration = factory.createExportDeclaration(\n      /*modifiers*/\n      void 0,\n      /*isTypeOnly*/\n      true,\n      factory.createNamedExports(typeExportSpecifiers),\n      exportDeclaration.moduleSpecifier,\n      /*attributes*/\n      void 0\n    );\n    changes.replaceNode(context.sourceFile, exportDeclaration, valueExportDeclaration, {\n      leadingTriviaOption: ts_textChanges_exports.LeadingTriviaOption.IncludeAll,\n      trailingTriviaOption: ts_textChanges_exports.TrailingTriviaOption.Exclude\n    });\n    changes.insertNodeAfter(context.sourceFile, exportDeclaration, typeExportDeclaration);\n  }\n}\nfunction getTypeExportSpecifiers(originExportSpecifier, context) {\n  const exportClause = originExportSpecifier.parent;\n  if (exportClause.elements.length === 1) {\n    return exportClause.elements;\n  }\n  const diagnostics = getDiagnosticsWithinSpan(\n    createTextSpanFromNode(exportClause),\n    context.program.getSemanticDiagnostics(context.sourceFile, context.cancellationToken)\n  );\n  return filter(exportClause.elements, (element) => {\n    var _a;\n    return element === originExportSpecifier || ((_a = findDiagnosticForNode(element, diagnostics)) == null ? void 0 : _a.code) === errorCodes14[0];\n  });\n}\n\n// src/services/codefixes/convertToTypeOnlyImport.ts\nvar errorCodes15 = [\n  Diagnostics._0_is_a_type_and_must_be_imported_using_a_type_only_import_when_verbatimModuleSyntax_is_enabled.code,\n  Diagnostics._0_resolves_to_a_type_only_declaration_and_must_be_imported_using_a_type_only_import_when_verbatimModuleSyntax_is_enabled.code\n];\nvar fixId14 = \"convertToTypeOnlyImport\";\nregisterCodeFix({\n  errorCodes: errorCodes15,\n  getCodeActions: function getCodeActionsToConvertToTypeOnlyImport(context) {\n    var _a;\n    const declaration = getDeclaration2(context.sourceFile, context.span.start);\n    if (declaration) {\n      const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange11(t, context.sourceFile, declaration));\n      const importDeclarationChanges = declaration.kind === 277 /* ImportSpecifier */ && isImportDeclaration(declaration.parent.parent.parent) && canConvertImportDeclarationForSpecifier(declaration, context.sourceFile, context.program) ? ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange11(t, context.sourceFile, declaration.parent.parent.parent)) : void 0;\n      const mainAction = createCodeFixAction(\n        fixId14,\n        changes,\n        declaration.kind === 277 /* ImportSpecifier */ ? [Diagnostics.Use_type_0, ((_a = declaration.propertyName) == null ? void 0 : _a.text) ?? declaration.name.text] : Diagnostics.Use_import_type,\n        fixId14,\n        Diagnostics.Fix_all_with_type_only_imports\n      );\n      if (some(importDeclarationChanges)) {\n        return [\n          createCodeFixActionWithoutFixAll(fixId14, importDeclarationChanges, Diagnostics.Use_import_type),\n          mainAction\n        ];\n      }\n      return [mainAction];\n    }\n    return void 0;\n  },\n  fixIds: [fixId14],\n  getAllCodeActions: function getAllCodeActionsToConvertToTypeOnlyImport(context) {\n    const fixedImportDeclarations = /* @__PURE__ */ new Set();\n    return codeFixAll(context, errorCodes15, (changes, diag2) => {\n      const errorDeclaration = getDeclaration2(diag2.file, diag2.start);\n      if ((errorDeclaration == null ? void 0 : errorDeclaration.kind) === 273 /* ImportDeclaration */ && !fixedImportDeclarations.has(errorDeclaration)) {\n        doChange11(changes, diag2.file, errorDeclaration);\n        fixedImportDeclarations.add(errorDeclaration);\n      } else if ((errorDeclaration == null ? void 0 : errorDeclaration.kind) === 277 /* ImportSpecifier */ && isImportDeclaration(errorDeclaration.parent.parent.parent) && !fixedImportDeclarations.has(errorDeclaration.parent.parent.parent) && canConvertImportDeclarationForSpecifier(errorDeclaration, diag2.file, context.program)) {\n        doChange11(changes, diag2.file, errorDeclaration.parent.parent.parent);\n        fixedImportDeclarations.add(errorDeclaration.parent.parent.parent);\n      } else if ((errorDeclaration == null ? void 0 : errorDeclaration.kind) === 277 /* ImportSpecifier */) {\n        doChange11(changes, diag2.file, errorDeclaration);\n      }\n    });\n  }\n});\nfunction getDeclaration2(sourceFile, pos) {\n  const { parent: parent2 } = getTokenAtPosition(sourceFile, pos);\n  return isImportSpecifier(parent2) || isImportDeclaration(parent2) && parent2.importClause ? parent2 : void 0;\n}\nfunction canConvertImportDeclarationForSpecifier(specifier, sourceFile, program) {\n  if (specifier.parent.parent.name) {\n    return false;\n  }\n  const nonTypeOnlySpecifiers = specifier.parent.elements.filter((e) => !e.isTypeOnly);\n  if (nonTypeOnlySpecifiers.length === 1) {\n    return true;\n  }\n  const checker = program.getTypeChecker();\n  for (const specifier2 of nonTypeOnlySpecifiers) {\n    const isUsedAsValue = ts_FindAllReferences_exports.Core.eachSymbolReferenceInFile(specifier2.name, checker, sourceFile, (usage) => {\n      const symbol = checker.getSymbolAtLocation(usage);\n      return !!symbol && checker.symbolIsValue(symbol) || !isValidTypeOnlyAliasUseSite(usage);\n    });\n    if (isUsedAsValue) {\n      return false;\n    }\n  }\n  return true;\n}\nfunction doChange11(changes, sourceFile, declaration) {\n  var _a;\n  if (isImportSpecifier(declaration)) {\n    changes.replaceNode(sourceFile, declaration, factory.updateImportSpecifier(\n      declaration,\n      /*isTypeOnly*/\n      true,\n      declaration.propertyName,\n      declaration.name\n    ));\n  } else {\n    const importClause = declaration.importClause;\n    if (importClause.name && importClause.namedBindings) {\n      changes.replaceNodeWithNodes(sourceFile, declaration, [\n        factory.createImportDeclaration(\n          getSynthesizedDeepClones(\n            declaration.modifiers,\n            /*includeTrivia*/\n            true\n          ),\n          factory.createImportClause(\n            156 /* TypeKeyword */,\n            getSynthesizedDeepClone(\n              importClause.name,\n              /*includeTrivia*/\n              true\n            ),\n            /*namedBindings*/\n            void 0\n          ),\n          getSynthesizedDeepClone(\n            declaration.moduleSpecifier,\n            /*includeTrivia*/\n            true\n          ),\n          getSynthesizedDeepClone(\n            declaration.attributes,\n            /*includeTrivia*/\n            true\n          )\n        ),\n        factory.createImportDeclaration(\n          getSynthesizedDeepClones(\n            declaration.modifiers,\n            /*includeTrivia*/\n            true\n          ),\n          factory.createImportClause(\n            156 /* TypeKeyword */,\n            /*name*/\n            void 0,\n            getSynthesizedDeepClone(\n              importClause.namedBindings,\n              /*includeTrivia*/\n              true\n            )\n          ),\n          getSynthesizedDeepClone(\n            declaration.moduleSpecifier,\n            /*includeTrivia*/\n            true\n          ),\n          getSynthesizedDeepClone(\n            declaration.attributes,\n            /*includeTrivia*/\n            true\n          )\n        )\n      ]);\n    } else {\n      const newNamedBindings = ((_a = importClause.namedBindings) == null ? void 0 : _a.kind) === 276 /* NamedImports */ ? factory.updateNamedImports(\n        importClause.namedBindings,\n        sameMap(importClause.namedBindings.elements, (e) => factory.updateImportSpecifier(\n          e,\n          /*isTypeOnly*/\n          false,\n          e.propertyName,\n          e.name\n        ))\n      ) : importClause.namedBindings;\n      const importDeclaration = factory.updateImportDeclaration(declaration, declaration.modifiers, factory.updateImportClause(importClause, 156 /* TypeKeyword */, importClause.name, newNamedBindings), declaration.moduleSpecifier, declaration.attributes);\n      changes.replaceNode(sourceFile, declaration, importDeclaration);\n    }\n  }\n}\n\n// src/services/codefixes/convertTypedefToType.ts\nvar fixId15 = \"convertTypedefToType\";\nvar errorCodes16 = [Diagnostics.JSDoc_typedef_may_be_converted_to_TypeScript_type.code];\nregisterCodeFix({\n  fixIds: [fixId15],\n  errorCodes: errorCodes16,\n  getCodeActions(context) {\n    const newLineCharacter = getNewLineOrDefaultFromHost(context.host, context.formatContext.options);\n    const node = getTokenAtPosition(\n      context.sourceFile,\n      context.span.start\n    );\n    if (!node) return;\n    const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange12(t, node, context.sourceFile, newLineCharacter));\n    if (changes.length > 0) {\n      return [\n        createCodeFixAction(\n          fixId15,\n          changes,\n          Diagnostics.Convert_typedef_to_TypeScript_type,\n          fixId15,\n          Diagnostics.Convert_all_typedef_to_TypeScript_types\n        )\n      ];\n    }\n  },\n  getAllCodeActions: (context) => codeFixAll(\n    context,\n    errorCodes16,\n    (changes, diag2) => {\n      const newLineCharacter = getNewLineOrDefaultFromHost(context.host, context.formatContext.options);\n      const node = getTokenAtPosition(diag2.file, diag2.start);\n      const fixAll = true;\n      if (node) doChange12(changes, node, diag2.file, newLineCharacter, fixAll);\n    }\n  )\n});\nfunction doChange12(changes, node, sourceFile, newLine, fixAll = false) {\n  if (!isJSDocTypedefTag(node)) return;\n  const declaration = createDeclaration(node);\n  if (!declaration) return;\n  const commentNode = node.parent;\n  const { leftSibling, rightSibling } = getLeftAndRightSiblings(node);\n  let pos = commentNode.getStart();\n  let prefix = \"\";\n  if (!leftSibling && commentNode.comment) {\n    pos = findEndOfTextBetween(commentNode, commentNode.getStart(), node.getStart());\n    prefix = `${newLine} */${newLine}`;\n  }\n  if (leftSibling) {\n    if (fixAll && isJSDocTypedefTag(leftSibling)) {\n      pos = node.getStart();\n      prefix = \"\";\n    } else {\n      pos = findEndOfTextBetween(commentNode, leftSibling.getStart(), node.getStart());\n      prefix = `${newLine} */${newLine}`;\n    }\n  }\n  let end = commentNode.getEnd();\n  let suffix = \"\";\n  if (rightSibling) {\n    if (fixAll && isJSDocTypedefTag(rightSibling)) {\n      end = rightSibling.getStart();\n      suffix = `${newLine}${newLine}`;\n    } else {\n      end = rightSibling.getStart();\n      suffix = `${newLine}/**${newLine} * `;\n    }\n  }\n  changes.replaceRange(sourceFile, { pos, end }, declaration, { prefix, suffix });\n}\nfunction getLeftAndRightSiblings(typedefNode) {\n  const commentNode = typedefNode.parent;\n  const maxChildIndex = commentNode.getChildCount() - 1;\n  const currentNodeIndex = commentNode.getChildren().findIndex(\n    (n) => n.getStart() === typedefNode.getStart() && n.getEnd() === typedefNode.getEnd()\n  );\n  const leftSibling = currentNodeIndex > 0 ? commentNode.getChildAt(currentNodeIndex - 1) : void 0;\n  const rightSibling = currentNodeIndex < maxChildIndex ? commentNode.getChildAt(currentNodeIndex + 1) : void 0;\n  return { leftSibling, rightSibling };\n}\nfunction findEndOfTextBetween(jsDocComment, from, to) {\n  const comment = jsDocComment.getText().substring(from - jsDocComment.getStart(), to - jsDocComment.getStart());\n  for (let i = comment.length; i > 0; i--) {\n    if (!/[*/\\s]/.test(comment.substring(i - 1, i))) {\n      return from + i;\n    }\n  }\n  return to;\n}\nfunction createDeclaration(tag) {\n  var _a;\n  const { typeExpression } = tag;\n  if (!typeExpression) return;\n  const typeName = (_a = tag.name) == null ? void 0 : _a.getText();\n  if (!typeName) return;\n  if (typeExpression.kind === 323 /* JSDocTypeLiteral */) {\n    return createInterfaceForTypeLiteral(typeName, typeExpression);\n  }\n  if (typeExpression.kind === 310 /* JSDocTypeExpression */) {\n    return createTypeAliasForTypeExpression(typeName, typeExpression);\n  }\n}\nfunction createInterfaceForTypeLiteral(typeName, typeLiteral) {\n  const propertySignatures = createSignatureFromTypeLiteral(typeLiteral);\n  if (!some(propertySignatures)) return;\n  return factory.createInterfaceDeclaration(\n    /*modifiers*/\n    void 0,\n    typeName,\n    /*typeParameters*/\n    void 0,\n    /*heritageClauses*/\n    void 0,\n    propertySignatures\n  );\n}\nfunction createTypeAliasForTypeExpression(typeName, typeExpression) {\n  const typeReference = getSynthesizedDeepClone(typeExpression.type);\n  if (!typeReference) return;\n  return factory.createTypeAliasDeclaration(\n    /*modifiers*/\n    void 0,\n    factory.createIdentifier(typeName),\n    /*typeParameters*/\n    void 0,\n    typeReference\n  );\n}\nfunction createSignatureFromTypeLiteral(typeLiteral) {\n  const propertyTags = typeLiteral.jsDocPropertyTags;\n  if (!some(propertyTags)) return;\n  const getSignature = (tag) => {\n    var _a;\n    const name = getPropertyName(tag);\n    const type = (_a = tag.typeExpression) == null ? void 0 : _a.type;\n    const isOptional = tag.isBracketed;\n    let typeReference;\n    if (type && isJSDocTypeLiteral(type)) {\n      const signatures = createSignatureFromTypeLiteral(type);\n      typeReference = factory.createTypeLiteralNode(signatures);\n    } else if (type) {\n      typeReference = getSynthesizedDeepClone(type);\n    }\n    if (typeReference && name) {\n      const questionToken = isOptional ? factory.createToken(58 /* QuestionToken */) : void 0;\n      return factory.createPropertySignature(\n        /*modifiers*/\n        void 0,\n        name,\n        questionToken,\n        typeReference\n      );\n    }\n  };\n  return mapDefined(propertyTags, getSignature);\n}\nfunction getPropertyName(tag) {\n  return tag.name.kind === 80 /* Identifier */ ? tag.name.text : tag.name.right.text;\n}\nfunction getJSDocTypedefNodes(node) {\n  if (hasJSDocNodes(node)) {\n    return flatMap(node.jsDoc, (doc) => {\n      var _a;\n      return (_a = doc.tags) == null ? void 0 : _a.filter((tag) => isJSDocTypedefTag(tag));\n    });\n  }\n  return [];\n}\n\n// src/services/codefixes/convertLiteralTypeToMappedType.ts\nvar fixId16 = \"convertLiteralTypeToMappedType\";\nvar errorCodes17 = [Diagnostics._0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Did_you_mean_to_use_1_in_0.code];\nregisterCodeFix({\n  errorCodes: errorCodes17,\n  getCodeActions: function getCodeActionsToConvertLiteralTypeToMappedType(context) {\n    const { sourceFile, span } = context;\n    const info = getInfo5(sourceFile, span.start);\n    if (!info) {\n      return void 0;\n    }\n    const { name, constraint } = info;\n    const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange13(t, sourceFile, info));\n    return [createCodeFixAction(fixId16, changes, [Diagnostics.Convert_0_to_1_in_0, constraint, name], fixId16, Diagnostics.Convert_all_type_literals_to_mapped_type)];\n  },\n  fixIds: [fixId16],\n  getAllCodeActions: (context) => codeFixAll(context, errorCodes17, (changes, diag2) => {\n    const info = getInfo5(diag2.file, diag2.start);\n    if (info) {\n      doChange13(changes, diag2.file, info);\n    }\n  })\n});\nfunction getInfo5(sourceFile, pos) {\n  const token = getTokenAtPosition(sourceFile, pos);\n  if (isIdentifier(token)) {\n    const propertySignature = cast(token.parent.parent, isPropertySignature);\n    const propertyName = token.getText(sourceFile);\n    return {\n      container: cast(propertySignature.parent, isTypeLiteralNode),\n      typeNode: propertySignature.type,\n      constraint: propertyName,\n      name: propertyName === \"K\" ? \"P\" : \"K\"\n    };\n  }\n  return void 0;\n}\nfunction doChange13(changes, sourceFile, { container, typeNode, constraint, name }) {\n  changes.replaceNode(\n    sourceFile,\n    container,\n    factory.createMappedTypeNode(\n      /*readonlyToken*/\n      void 0,\n      factory.createTypeParameterDeclaration(\n        /*modifiers*/\n        void 0,\n        name,\n        factory.createTypeReferenceNode(constraint)\n      ),\n      /*nameType*/\n      void 0,\n      /*questionToken*/\n      void 0,\n      typeNode,\n      /*members*/\n      void 0\n    )\n  );\n}\n\n// src/services/codefixes/fixClassIncorrectlyImplementsInterface.ts\nvar errorCodes18 = [\n  Diagnostics.Class_0_incorrectly_implements_interface_1.code,\n  Diagnostics.Class_0_incorrectly_implements_class_1_Did_you_mean_to_extend_1_and_inherit_its_members_as_a_subclass.code\n];\nvar fixId17 = \"fixClassIncorrectlyImplementsInterface\";\nregisterCodeFix({\n  errorCodes: errorCodes18,\n  getCodeActions(context) {\n    const { sourceFile, span } = context;\n    const classDeclaration = getClass(sourceFile, span.start);\n    return mapDefined(getEffectiveImplementsTypeNodes(classDeclaration), (implementedTypeNode) => {\n      const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => addMissingDeclarations(context, implementedTypeNode, sourceFile, classDeclaration, t, context.preferences));\n      return changes.length === 0 ? void 0 : createCodeFixAction(fixId17, changes, [Diagnostics.Implement_interface_0, implementedTypeNode.getText(sourceFile)], fixId17, Diagnostics.Implement_all_unimplemented_interfaces);\n    });\n  },\n  fixIds: [fixId17],\n  getAllCodeActions(context) {\n    const seenClassDeclarations = /* @__PURE__ */ new Set();\n    return codeFixAll(context, errorCodes18, (changes, diag2) => {\n      const classDeclaration = getClass(diag2.file, diag2.start);\n      if (addToSeen(seenClassDeclarations, getNodeId(classDeclaration))) {\n        for (const implementedTypeNode of getEffectiveImplementsTypeNodes(classDeclaration)) {\n          addMissingDeclarations(context, implementedTypeNode, diag2.file, classDeclaration, changes, context.preferences);\n        }\n      }\n    });\n  }\n});\nfunction getClass(sourceFile, pos) {\n  return Debug.checkDefined(getContainingClass(getTokenAtPosition(sourceFile, pos)), \"There should be a containing class\");\n}\nfunction symbolPointsToNonPrivateMember(symbol) {\n  return !symbol.valueDeclaration || !(getEffectiveModifierFlags(symbol.valueDeclaration) & 2 /* Private */);\n}\nfunction addMissingDeclarations(context, implementedTypeNode, sourceFile, classDeclaration, changeTracker, preferences) {\n  const checker = context.program.getTypeChecker();\n  const maybeHeritageClauseSymbol = getHeritageClauseSymbolTable(classDeclaration, checker);\n  const implementedType = checker.getTypeAtLocation(implementedTypeNode);\n  const implementedTypeSymbols = checker.getPropertiesOfType(implementedType);\n  const nonPrivateAndNotExistedInHeritageClauseMembers = implementedTypeSymbols.filter(and(symbolPointsToNonPrivateMember, (symbol) => !maybeHeritageClauseSymbol.has(symbol.escapedName)));\n  const classType = checker.getTypeAtLocation(classDeclaration);\n  const constructor = find(classDeclaration.members, (m) => isConstructorDeclaration(m));\n  if (!classType.getNumberIndexType()) {\n    createMissingIndexSignatureDeclaration(implementedType, 1 /* Number */);\n  }\n  if (!classType.getStringIndexType()) {\n    createMissingIndexSignatureDeclaration(implementedType, 0 /* String */);\n  }\n  const importAdder = createImportAdder(sourceFile, context.program, preferences, context.host);\n  createMissingMemberNodes(classDeclaration, nonPrivateAndNotExistedInHeritageClauseMembers, sourceFile, context, preferences, importAdder, (member) => insertInterfaceMemberNode(sourceFile, classDeclaration, member));\n  importAdder.writeFixes(changeTracker);\n  function createMissingIndexSignatureDeclaration(type, kind) {\n    const indexInfoOfKind = checker.getIndexInfoOfType(type, kind);\n    if (indexInfoOfKind) {\n      insertInterfaceMemberNode(sourceFile, classDeclaration, checker.indexInfoToIndexSignatureDeclaration(\n        indexInfoOfKind,\n        classDeclaration,\n        /*flags*/\n        void 0,\n        /*internalFlags*/\n        void 0,\n        getNoopSymbolTrackerWithResolver(context)\n      ));\n    }\n  }\n  function insertInterfaceMemberNode(sourceFile2, cls, newElement) {\n    if (constructor) {\n      changeTracker.insertNodeAfter(sourceFile2, constructor, newElement);\n    } else {\n      changeTracker.insertMemberAtStart(sourceFile2, cls, newElement);\n    }\n  }\n}\nfunction getHeritageClauseSymbolTable(classDeclaration, checker) {\n  const heritageClauseNode = getEffectiveBaseTypeNode(classDeclaration);\n  if (!heritageClauseNode) return createSymbolTable();\n  const heritageClauseType = checker.getTypeAtLocation(heritageClauseNode);\n  const heritageClauseTypeSymbols = checker.getPropertiesOfType(heritageClauseType);\n  return createSymbolTable(heritageClauseTypeSymbols.filter(symbolPointsToNonPrivateMember));\n}\n\n// src/services/codefixes/importFixes.ts\nvar importFixName = \"import\";\nvar importFixId = \"fixMissingImport\";\nvar errorCodes19 = [\n  Diagnostics.Cannot_find_name_0.code,\n  Diagnostics.Cannot_find_name_0_Did_you_mean_1.code,\n  Diagnostics.Cannot_find_name_0_Did_you_mean_the_instance_member_this_0.code,\n  Diagnostics.Cannot_find_name_0_Did_you_mean_the_static_member_1_0.code,\n  Diagnostics.Cannot_find_namespace_0.code,\n  Diagnostics._0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead.code,\n  Diagnostics._0_only_refers_to_a_type_but_is_being_used_as_a_value_here.code,\n  Diagnostics.No_value_exists_in_scope_for_the_shorthand_property_0_Either_declare_one_or_provide_an_initializer.code,\n  Diagnostics._0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type.code,\n  Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slashjquery.code,\n  Diagnostics.Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_1_or_later.code,\n  Diagnostics.Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_include_dom.code,\n  Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_types_Slashjest_or_npm_i_save_dev_types_Slashmocha_and_then_add_jest_or_mocha_to_the_types_field_in_your_tsconfig.code,\n  Diagnostics.Cannot_find_name_0_Did_you_mean_to_write_this_in_an_async_function.code,\n  Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slashjquery_and_then_add_jquery_to_the_types_field_in_your_tsconfig.code,\n  Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_types_Slashjest_or_npm_i_save_dev_types_Slashmocha.code,\n  Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashnode.code,\n  Diagnostics.Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashnode_and_then_add_node_to_the_types_field_in_your_tsconfig.code,\n  Diagnostics.Cannot_find_namespace_0_Did_you_mean_1.code,\n  Diagnostics.Cannot_extend_an_interface_0_Did_you_mean_implements.code,\n  Diagnostics.This_JSX_tag_requires_0_to_be_in_scope_but_it_could_not_be_found.code\n];\nregisterCodeFix({\n  errorCodes: errorCodes19,\n  getCodeActions(context) {\n    const { errorCode, preferences, sourceFile, span, program } = context;\n    const info = getFixInfos(\n      context,\n      errorCode,\n      span.start,\n      /*useAutoImportProvider*/\n      true\n    );\n    if (!info) return void 0;\n    return info.map(\n      ({ fix, symbolName: symbolName2, errorIdentifierText }) => codeActionForFix(\n        context,\n        sourceFile,\n        symbolName2,\n        fix,\n        /*includeSymbolNameInDescription*/\n        symbolName2 !== errorIdentifierText,\n        program,\n        preferences\n      )\n    );\n  },\n  fixIds: [importFixId],\n  getAllCodeActions: (context) => {\n    const { sourceFile, program, preferences, host, cancellationToken } = context;\n    const importAdder = createImportAdderWorker(\n      sourceFile,\n      program,\n      /*useAutoImportProvider*/\n      true,\n      preferences,\n      host,\n      cancellationToken\n    );\n    eachDiagnostic(context, errorCodes19, (diag2) => importAdder.addImportFromDiagnostic(diag2, context));\n    return createCombinedCodeActions(ts_textChanges_exports.ChangeTracker.with(context, importAdder.writeFixes));\n  }\n});\nfunction createImportAdder(sourceFile, program, preferences, host, cancellationToken) {\n  return createImportAdderWorker(\n    sourceFile,\n    program,\n    /*useAutoImportProvider*/\n    false,\n    preferences,\n    host,\n    cancellationToken\n  );\n}\nfunction createImportAdderWorker(sourceFile, program, useAutoImportProvider, preferences, host, cancellationToken) {\n  const compilerOptions = program.getCompilerOptions();\n  const addToNamespace = [];\n  const importType = [];\n  const addToExisting = /* @__PURE__ */ new Map();\n  const removeExisting = /* @__PURE__ */ new Set();\n  const verbatimImports = /* @__PURE__ */ new Set();\n  const newImports = /* @__PURE__ */ new Map();\n  return { addImportFromDiagnostic, addImportFromExportedSymbol, addImportForModuleSymbol, writeFixes, hasFixes, addImportForUnresolvedIdentifier, addImportForNonExistentExport, removeExistingImport, addVerbatimImport };\n  function addVerbatimImport(declaration) {\n    verbatimImports.add(declaration);\n  }\n  function addImportForUnresolvedIdentifier(context, symbolToken, useAutoImportProvider2) {\n    const info = getFixInfosWithoutDiagnostic(context, symbolToken, useAutoImportProvider2);\n    if (!info || !info.length) return;\n    addImport(first(info));\n  }\n  function addImportFromDiagnostic(diagnostic, context) {\n    const info = getFixInfos(context, diagnostic.code, diagnostic.start, useAutoImportProvider);\n    if (!info || !info.length) return;\n    addImport(first(info));\n  }\n  function addImportFromExportedSymbol(exportedSymbol, isValidTypeOnlyUseSite, referenceImport) {\n    var _a, _b;\n    const moduleSymbol = Debug.checkDefined(exportedSymbol.parent, \"Expected exported symbol to have module symbol as parent\");\n    const symbolName2 = getNameForExportedSymbol(exportedSymbol, getEmitScriptTarget(compilerOptions));\n    const checker = program.getTypeChecker();\n    const symbol = checker.getMergedSymbol(skipAlias(exportedSymbol, checker));\n    const exportInfo = getAllExportInfoForSymbol(\n      sourceFile,\n      symbol,\n      symbolName2,\n      moduleSymbol,\n      /*preferCapitalized*/\n      false,\n      program,\n      host,\n      preferences,\n      cancellationToken\n    );\n    if (!exportInfo) {\n      Debug.assert((_a = preferences.autoImportFileExcludePatterns) == null ? void 0 : _a.length);\n      return;\n    }\n    const useRequire = shouldUseRequire(sourceFile, program);\n    let fix = getImportFixForSymbol(\n      sourceFile,\n      exportInfo,\n      program,\n      /*position*/\n      void 0,\n      !!isValidTypeOnlyUseSite,\n      useRequire,\n      host,\n      preferences\n    );\n    if (fix) {\n      const localName = ((_b = tryCast(referenceImport == null ? void 0 : referenceImport.name, isIdentifier)) == null ? void 0 : _b.text) ?? symbolName2;\n      let addAsTypeOnly;\n      let propertyName;\n      if (referenceImport && isTypeOnlyImportDeclaration(referenceImport) && (fix.kind === 3 /* AddNew */ || fix.kind === 2 /* AddToExisting */) && fix.addAsTypeOnly === 1 /* Allowed */) {\n        addAsTypeOnly = 2 /* Required */;\n      }\n      if (exportedSymbol.name !== localName) {\n        propertyName = exportedSymbol.name;\n      }\n      fix = {\n        ...fix,\n        ...addAsTypeOnly === void 0 ? {} : { addAsTypeOnly },\n        ...propertyName === void 0 ? {} : { propertyName }\n      };\n      addImport({ fix, symbolName: localName ?? symbolName2, errorIdentifierText: void 0 });\n    }\n  }\n  function addImportForModuleSymbol(symbolAlias, isValidTypeOnlyUseSite, referenceImport) {\n    var _a, _b, _c;\n    const checker = program.getTypeChecker();\n    const moduleSymbol = checker.getAliasedSymbol(symbolAlias);\n    Debug.assert(moduleSymbol.flags & 1536 /* Module */, \"Expected symbol to be a module\");\n    const moduleSpecifierResolutionHost = createModuleSpecifierResolutionHost(program, host);\n    const moduleSpecifierResult = ts_moduleSpecifiers_exports.getModuleSpecifiersWithCacheInfo(\n      moduleSymbol,\n      checker,\n      compilerOptions,\n      sourceFile,\n      moduleSpecifierResolutionHost,\n      preferences,\n      /*options*/\n      void 0,\n      /*forAutoImport*/\n      true\n    );\n    const useRequire = shouldUseRequire(sourceFile, program);\n    let addAsTypeOnly = getAddAsTypeOnly(\n      isValidTypeOnlyUseSite,\n      /*isForNewImportDeclaration*/\n      true,\n      /*symbol*/\n      void 0,\n      symbolAlias.flags,\n      program.getTypeChecker(),\n      compilerOptions\n    );\n    addAsTypeOnly = addAsTypeOnly === 1 /* Allowed */ && isTypeOnlyImportDeclaration(referenceImport) ? 2 /* Required */ : 1 /* Allowed */;\n    const importKind = isImportDeclaration(referenceImport) ? isDefaultImport(referenceImport) ? 1 /* Default */ : 2 /* Namespace */ : isImportSpecifier(referenceImport) ? 0 /* Named */ : isImportClause(referenceImport) && !!referenceImport.name ? 1 /* Default */ : 2 /* Namespace */;\n    const exportInfo = [{\n      symbol: symbolAlias,\n      moduleSymbol,\n      moduleFileName: (_c = (_b = (_a = moduleSymbol.declarations) == null ? void 0 : _a[0]) == null ? void 0 : _b.getSourceFile()) == null ? void 0 : _c.fileName,\n      exportKind: 4 /* Module */,\n      targetFlags: symbolAlias.flags,\n      isFromPackageJson: false\n    }];\n    const existingFix = getImportFixForSymbol(\n      sourceFile,\n      exportInfo,\n      program,\n      /*position*/\n      void 0,\n      !!isValidTypeOnlyUseSite,\n      useRequire,\n      host,\n      preferences\n    );\n    let fix;\n    if (existingFix && importKind !== 2 /* Namespace */ && existingFix.kind !== 0 /* UseNamespace */ && existingFix.kind !== 1 /* JsdocTypeImport */) {\n      fix = {\n        ...existingFix,\n        addAsTypeOnly,\n        importKind\n      };\n    } else {\n      fix = {\n        kind: 3 /* AddNew */,\n        moduleSpecifierKind: existingFix !== void 0 ? existingFix.moduleSpecifierKind : moduleSpecifierResult.kind,\n        moduleSpecifier: existingFix !== void 0 ? existingFix.moduleSpecifier : first(moduleSpecifierResult.moduleSpecifiers),\n        importKind,\n        addAsTypeOnly,\n        useRequire\n      };\n    }\n    addImport({ fix, symbolName: symbolAlias.name, errorIdentifierText: void 0 });\n  }\n  function addImportForNonExistentExport(exportName, exportingFileName, exportKind, exportedMeanings, isImportUsageValidAsTypeOnly) {\n    const exportingSourceFile = program.getSourceFile(exportingFileName);\n    const useRequire = shouldUseRequire(sourceFile, program);\n    if (exportingSourceFile && exportingSourceFile.symbol) {\n      const { fixes } = getImportFixes(\n        [{\n          exportKind,\n          isFromPackageJson: false,\n          moduleFileName: exportingFileName,\n          moduleSymbol: exportingSourceFile.symbol,\n          targetFlags: exportedMeanings\n        }],\n        /*usagePosition*/\n        void 0,\n        isImportUsageValidAsTypeOnly,\n        useRequire,\n        program,\n        sourceFile,\n        host,\n        preferences\n      );\n      if (fixes.length) {\n        addImport({ fix: fixes[0], symbolName: exportName, errorIdentifierText: exportName });\n      }\n    } else {\n      const futureExportingSourceFile = createFutureSourceFile(exportingFileName, 99 /* ESNext */, program, host);\n      const moduleSpecifier = ts_moduleSpecifiers_exports.getLocalModuleSpecifierBetweenFileNames(\n        sourceFile,\n        exportingFileName,\n        compilerOptions,\n        createModuleSpecifierResolutionHost(program, host),\n        preferences\n      );\n      const importKind = getImportKind(futureExportingSourceFile, exportKind, program);\n      const addAsTypeOnly = getAddAsTypeOnly(\n        isImportUsageValidAsTypeOnly,\n        /*isForNewImportDeclaration*/\n        true,\n        /*symbol*/\n        void 0,\n        exportedMeanings,\n        program.getTypeChecker(),\n        compilerOptions\n      );\n      const fix = {\n        kind: 3 /* AddNew */,\n        moduleSpecifierKind: \"relative\",\n        moduleSpecifier,\n        importKind,\n        addAsTypeOnly,\n        useRequire\n      };\n      addImport({ fix, symbolName: exportName, errorIdentifierText: exportName });\n    }\n  }\n  function removeExistingImport(declaration) {\n    if (declaration.kind === 274 /* ImportClause */) {\n      Debug.assertIsDefined(declaration.name, \"ImportClause should have a name if it's being removed\");\n    }\n    removeExisting.add(declaration);\n  }\n  function addImport(info) {\n    var _a, _b, _c;\n    const { fix, symbolName: symbolName2 } = info;\n    switch (fix.kind) {\n      case 0 /* UseNamespace */:\n        addToNamespace.push(fix);\n        break;\n      case 1 /* JsdocTypeImport */:\n        importType.push(fix);\n        break;\n      case 2 /* AddToExisting */: {\n        const { importClauseOrBindingPattern, importKind, addAsTypeOnly, propertyName } = fix;\n        let entry = addToExisting.get(importClauseOrBindingPattern);\n        if (!entry) {\n          addToExisting.set(importClauseOrBindingPattern, entry = { importClauseOrBindingPattern, defaultImport: void 0, namedImports: /* @__PURE__ */ new Map() });\n        }\n        if (importKind === 0 /* Named */) {\n          const prevTypeOnly = (_a = entry == null ? void 0 : entry.namedImports.get(symbolName2)) == null ? void 0 : _a.addAsTypeOnly;\n          entry.namedImports.set(symbolName2, { addAsTypeOnly: reduceAddAsTypeOnlyValues(prevTypeOnly, addAsTypeOnly), propertyName });\n        } else {\n          Debug.assert(entry.defaultImport === void 0 || entry.defaultImport.name === symbolName2, \"(Add to Existing) Default import should be missing or match symbolName\");\n          entry.defaultImport = {\n            name: symbolName2,\n            addAsTypeOnly: reduceAddAsTypeOnlyValues((_b = entry.defaultImport) == null ? void 0 : _b.addAsTypeOnly, addAsTypeOnly)\n          };\n        }\n        break;\n      }\n      case 3 /* AddNew */: {\n        const { moduleSpecifier, importKind, useRequire, addAsTypeOnly, propertyName } = fix;\n        const entry = getNewImportEntry(moduleSpecifier, importKind, useRequire, addAsTypeOnly);\n        Debug.assert(entry.useRequire === useRequire, \"(Add new) Tried to add an `import` and a `require` for the same module\");\n        switch (importKind) {\n          case 1 /* Default */:\n            Debug.assert(entry.defaultImport === void 0 || entry.defaultImport.name === symbolName2, \"(Add new) Default import should be missing or match symbolName\");\n            entry.defaultImport = { name: symbolName2, addAsTypeOnly: reduceAddAsTypeOnlyValues((_c = entry.defaultImport) == null ? void 0 : _c.addAsTypeOnly, addAsTypeOnly) };\n            break;\n          case 0 /* Named */:\n            const prevValue = (entry.namedImports || (entry.namedImports = /* @__PURE__ */ new Map())).get(symbolName2);\n            entry.namedImports.set(symbolName2, [reduceAddAsTypeOnlyValues(prevValue, addAsTypeOnly), propertyName]);\n            break;\n          case 3 /* CommonJS */:\n            if (compilerOptions.verbatimModuleSyntax) {\n              const prevValue2 = (entry.namedImports || (entry.namedImports = /* @__PURE__ */ new Map())).get(symbolName2);\n              entry.namedImports.set(symbolName2, [reduceAddAsTypeOnlyValues(prevValue2, addAsTypeOnly), propertyName]);\n            } else {\n              Debug.assert(entry.namespaceLikeImport === void 0 || entry.namespaceLikeImport.name === symbolName2, \"Namespacelike import shoudl be missing or match symbolName\");\n              entry.namespaceLikeImport = { importKind, name: symbolName2, addAsTypeOnly };\n            }\n            break;\n          case 2 /* Namespace */:\n            Debug.assert(entry.namespaceLikeImport === void 0 || entry.namespaceLikeImport.name === symbolName2, \"Namespacelike import shoudl be missing or match symbolName\");\n            entry.namespaceLikeImport = { importKind, name: symbolName2, addAsTypeOnly };\n            break;\n        }\n        break;\n      }\n      case 4 /* PromoteTypeOnly */:\n        break;\n      default:\n        Debug.assertNever(fix, `fix wasn't never - got kind ${fix.kind}`);\n    }\n    function reduceAddAsTypeOnlyValues(prevValue, newValue) {\n      return Math.max(prevValue ?? 0, newValue);\n    }\n    function getNewImportEntry(moduleSpecifier, importKind, useRequire, addAsTypeOnly) {\n      const typeOnlyKey = newImportsKey(\n        moduleSpecifier,\n        /*topLevelTypeOnly*/\n        true\n      );\n      const nonTypeOnlyKey = newImportsKey(\n        moduleSpecifier,\n        /*topLevelTypeOnly*/\n        false\n      );\n      const typeOnlyEntry = newImports.get(typeOnlyKey);\n      const nonTypeOnlyEntry = newImports.get(nonTypeOnlyKey);\n      const newEntry = {\n        defaultImport: void 0,\n        namedImports: void 0,\n        namespaceLikeImport: void 0,\n        useRequire\n      };\n      if (importKind === 1 /* Default */ && addAsTypeOnly === 2 /* Required */) {\n        if (typeOnlyEntry) return typeOnlyEntry;\n        newImports.set(typeOnlyKey, newEntry);\n        return newEntry;\n      }\n      if (addAsTypeOnly === 1 /* Allowed */ && (typeOnlyEntry || nonTypeOnlyEntry)) {\n        return typeOnlyEntry || nonTypeOnlyEntry;\n      }\n      if (nonTypeOnlyEntry) {\n        return nonTypeOnlyEntry;\n      }\n      newImports.set(nonTypeOnlyKey, newEntry);\n      return newEntry;\n    }\n    function newImportsKey(moduleSpecifier, topLevelTypeOnly) {\n      return `${topLevelTypeOnly ? 1 : 0}|${moduleSpecifier}`;\n    }\n  }\n  function writeFixes(changeTracker, oldFileQuotePreference) {\n    var _a, _b;\n    let quotePreference;\n    if (sourceFile.imports !== void 0 && sourceFile.imports.length === 0 && oldFileQuotePreference !== void 0) {\n      quotePreference = oldFileQuotePreference;\n    } else {\n      quotePreference = getQuotePreference(sourceFile, preferences);\n    }\n    for (const fix of addToNamespace) {\n      addNamespaceQualifier(changeTracker, sourceFile, fix);\n    }\n    for (const fix of importType) {\n      addImportType(changeTracker, sourceFile, fix, quotePreference);\n    }\n    let importSpecifiersToRemoveWhileAdding;\n    if (removeExisting.size) {\n      Debug.assert(isFullSourceFile(sourceFile), \"Cannot remove imports from a future source file\");\n      const importDeclarationsWithRemovals = new Set(mapDefined([...removeExisting], (d) => findAncestor(d, isImportDeclaration)));\n      const variableDeclarationsWithRemovals = new Set(mapDefined([...removeExisting], (d) => findAncestor(d, isVariableDeclarationInitializedToRequire)));\n      const emptyImportDeclarations = [...importDeclarationsWithRemovals].filter(\n        (d) => {\n          var _a2, _b2, _c;\n          return (\n            // nothing added to the import declaration\n            !addToExisting.has(d.importClause) && // no default, or default is being removed\n            (!((_a2 = d.importClause) == null ? void 0 : _a2.name) || removeExisting.has(d.importClause)) && // no namespace import, or namespace import is being removed\n            (!tryCast((_b2 = d.importClause) == null ? void 0 : _b2.namedBindings, isNamespaceImport) || removeExisting.has(d.importClause.namedBindings)) && // no named imports, or all named imports are being removed\n            (!tryCast((_c = d.importClause) == null ? void 0 : _c.namedBindings, isNamedImports) || every(d.importClause.namedBindings.elements, (e) => removeExisting.has(e)))\n          );\n        }\n      );\n      const emptyVariableDeclarations = [...variableDeclarationsWithRemovals].filter(\n        (d) => (\n          // no binding elements being added to the variable declaration\n          (d.name.kind !== 207 /* ObjectBindingPattern */ || !addToExisting.has(d.name)) && // no binding elements, or all binding elements are being removed\n          (d.name.kind !== 207 /* ObjectBindingPattern */ || every(d.name.elements, (e) => removeExisting.has(e)))\n        )\n      );\n      const namedBindingsToDelete = [...importDeclarationsWithRemovals].filter(\n        (d) => {\n          var _a2, _b2;\n          return (\n            // has named bindings\n            ((_a2 = d.importClause) == null ? void 0 : _a2.namedBindings) && // is not being fully removed\n            emptyImportDeclarations.indexOf(d) === -1 && // is not gaining named imports\n            !((_b2 = addToExisting.get(d.importClause)) == null ? void 0 : _b2.namedImports) && // all named imports are being removed\n            (d.importClause.namedBindings.kind === 275 /* NamespaceImport */ || every(d.importClause.namedBindings.elements, (e) => removeExisting.has(e)))\n          );\n        }\n      );\n      for (const declaration of [...emptyImportDeclarations, ...emptyVariableDeclarations]) {\n        changeTracker.delete(sourceFile, declaration);\n      }\n      for (const declaration of namedBindingsToDelete) {\n        changeTracker.replaceNode(\n          sourceFile,\n          declaration.importClause,\n          factory.updateImportClause(\n            declaration.importClause,\n            declaration.importClause.phaseModifier,\n            declaration.importClause.name,\n            /*namedBindings*/\n            void 0\n          )\n        );\n      }\n      for (const declaration of removeExisting) {\n        const importDeclaration = findAncestor(declaration, isImportDeclaration);\n        if (importDeclaration && emptyImportDeclarations.indexOf(importDeclaration) === -1 && namedBindingsToDelete.indexOf(importDeclaration) === -1) {\n          if (declaration.kind === 274 /* ImportClause */) {\n            changeTracker.delete(sourceFile, declaration.name);\n          } else {\n            Debug.assert(declaration.kind === 277 /* ImportSpecifier */, \"NamespaceImport should have been handled earlier\");\n            if ((_a = addToExisting.get(importDeclaration.importClause)) == null ? void 0 : _a.namedImports) {\n              (importSpecifiersToRemoveWhileAdding ?? (importSpecifiersToRemoveWhileAdding = /* @__PURE__ */ new Set())).add(declaration);\n            } else {\n              changeTracker.delete(sourceFile, declaration);\n            }\n          }\n        } else if (declaration.kind === 209 /* BindingElement */) {\n          if ((_b = addToExisting.get(declaration.parent)) == null ? void 0 : _b.namedImports) {\n            (importSpecifiersToRemoveWhileAdding ?? (importSpecifiersToRemoveWhileAdding = /* @__PURE__ */ new Set())).add(declaration);\n          } else {\n            changeTracker.delete(sourceFile, declaration);\n          }\n        } else if (declaration.kind === 272 /* ImportEqualsDeclaration */) {\n          changeTracker.delete(sourceFile, declaration);\n        }\n      }\n    }\n    addToExisting.forEach(({ importClauseOrBindingPattern, defaultImport, namedImports }) => {\n      doAddExistingFix(\n        changeTracker,\n        sourceFile,\n        importClauseOrBindingPattern,\n        defaultImport,\n        arrayFrom(namedImports.entries(), ([name, { addAsTypeOnly, propertyName }]) => ({ addAsTypeOnly, propertyName, name })),\n        importSpecifiersToRemoveWhileAdding,\n        preferences\n      );\n    });\n    let newDeclarations;\n    newImports.forEach(({ useRequire, defaultImport, namedImports, namespaceLikeImport }, key) => {\n      const moduleSpecifier = key.slice(2);\n      const getDeclarations = useRequire ? getNewRequires : getNewImports;\n      const declarations = getDeclarations(\n        moduleSpecifier,\n        quotePreference,\n        defaultImport,\n        namedImports && arrayFrom(namedImports.entries(), ([name, [addAsTypeOnly, propertyName]]) => ({ addAsTypeOnly, propertyName, name })),\n        namespaceLikeImport,\n        compilerOptions,\n        preferences\n      );\n      newDeclarations = combine(newDeclarations, declarations);\n    });\n    newDeclarations = combine(newDeclarations, getCombinedVerbatimImports());\n    if (newDeclarations) {\n      insertImports(\n        changeTracker,\n        sourceFile,\n        newDeclarations,\n        /*blankLineBetween*/\n        true,\n        preferences\n      );\n    }\n  }\n  function getCombinedVerbatimImports() {\n    if (!verbatimImports.size) return void 0;\n    const importDeclarations = new Set(mapDefined([...verbatimImports], (d) => findAncestor(d, isImportDeclaration)));\n    const requireStatements = new Set(mapDefined([...verbatimImports], (d) => findAncestor(d, isRequireVariableStatement)));\n    return [\n      ...mapDefined([...verbatimImports], (d) => d.kind === 272 /* ImportEqualsDeclaration */ ? getSynthesizedDeepClone(\n        d,\n        /*includeTrivia*/\n        true\n      ) : void 0),\n      ...[...importDeclarations].map((d) => {\n        var _a;\n        if (verbatimImports.has(d)) {\n          return getSynthesizedDeepClone(\n            d,\n            /*includeTrivia*/\n            true\n          );\n        }\n        return getSynthesizedDeepClone(\n          factory.updateImportDeclaration(\n            d,\n            d.modifiers,\n            d.importClause && factory.updateImportClause(\n              d.importClause,\n              d.importClause.phaseModifier,\n              verbatimImports.has(d.importClause) ? d.importClause.name : void 0,\n              verbatimImports.has(d.importClause.namedBindings) ? d.importClause.namedBindings : ((_a = tryCast(d.importClause.namedBindings, isNamedImports)) == null ? void 0 : _a.elements.some((e) => verbatimImports.has(e))) ? factory.updateNamedImports(\n                d.importClause.namedBindings,\n                d.importClause.namedBindings.elements.filter((e) => verbatimImports.has(e))\n              ) : void 0\n            ),\n            d.moduleSpecifier,\n            d.attributes\n          ),\n          /*includeTrivia*/\n          true\n        );\n      }),\n      ...[...requireStatements].map((s) => {\n        if (verbatimImports.has(s)) {\n          return getSynthesizedDeepClone(\n            s,\n            /*includeTrivia*/\n            true\n          );\n        }\n        return getSynthesizedDeepClone(\n          factory.updateVariableStatement(\n            s,\n            s.modifiers,\n            factory.updateVariableDeclarationList(\n              s.declarationList,\n              mapDefined(s.declarationList.declarations, (d) => {\n                if (verbatimImports.has(d)) {\n                  return d;\n                }\n                return factory.updateVariableDeclaration(\n                  d,\n                  d.name.kind === 207 /* ObjectBindingPattern */ ? factory.updateObjectBindingPattern(\n                    d.name,\n                    d.name.elements.filter((e) => verbatimImports.has(e))\n                  ) : d.name,\n                  d.exclamationToken,\n                  d.type,\n                  d.initializer\n                );\n              })\n            )\n          ),\n          /*includeTrivia*/\n          true\n        );\n      })\n    ];\n  }\n  function hasFixes() {\n    return addToNamespace.length > 0 || importType.length > 0 || addToExisting.size > 0 || newImports.size > 0 || verbatimImports.size > 0 || removeExisting.size > 0;\n  }\n}\nfunction createImportSpecifierResolver(importingFile, program, host, preferences) {\n  const packageJsonImportFilter = createPackageJsonImportFilter(importingFile, preferences, host);\n  const importMap = createExistingImportMap(importingFile, program);\n  return { getModuleSpecifierForBestExportInfo };\n  function getModuleSpecifierForBestExportInfo(exportInfo, position, isValidTypeOnlyUseSite, fromCacheOnly) {\n    const { fixes, computedWithoutCacheCount } = getImportFixes(\n      exportInfo,\n      position,\n      isValidTypeOnlyUseSite,\n      /*useRequire*/\n      false,\n      program,\n      importingFile,\n      host,\n      preferences,\n      importMap,\n      fromCacheOnly\n    );\n    const result = getBestFix(fixes, importingFile, program, packageJsonImportFilter, host, preferences);\n    return result && { ...result, computedWithoutCacheCount };\n  }\n}\nfunction getImportCompletionAction(targetSymbol, moduleSymbol, exportMapKey, sourceFile, symbolName2, isJsxTagName, host, program, formatContext, position, preferences, cancellationToken) {\n  let exportInfos;\n  if (exportMapKey) {\n    exportInfos = getExportInfoMap(sourceFile, host, program, preferences, cancellationToken).get(sourceFile.path, exportMapKey);\n    Debug.assertIsDefined(exportInfos, \"Some exportInfo should match the specified exportMapKey\");\n  } else {\n    exportInfos = pathIsBareSpecifier(stripQuotes(moduleSymbol.name)) ? [getSingleExportInfoForSymbol(targetSymbol, symbolName2, moduleSymbol, program, host)] : getAllExportInfoForSymbol(sourceFile, targetSymbol, symbolName2, moduleSymbol, isJsxTagName, program, host, preferences, cancellationToken);\n    Debug.assertIsDefined(exportInfos, \"Some exportInfo should match the specified symbol / moduleSymbol\");\n  }\n  const useRequire = shouldUseRequire(sourceFile, program);\n  const isValidTypeOnlyUseSite = isValidTypeOnlyAliasUseSite(getTokenAtPosition(sourceFile, position));\n  const fix = Debug.checkDefined(getImportFixForSymbol(sourceFile, exportInfos, program, position, isValidTypeOnlyUseSite, useRequire, host, preferences));\n  return {\n    moduleSpecifier: fix.moduleSpecifier,\n    codeAction: codeFixActionToCodeAction(codeActionForFix(\n      { host, formatContext, preferences },\n      sourceFile,\n      symbolName2,\n      fix,\n      /*includeSymbolNameInDescription*/\n      false,\n      program,\n      preferences\n    ))\n  };\n}\nfunction getPromoteTypeOnlyCompletionAction(sourceFile, symbolToken, program, host, formatContext, preferences) {\n  const compilerOptions = program.getCompilerOptions();\n  const symbolName2 = single(getSymbolNamesToImport(sourceFile, program.getTypeChecker(), symbolToken, compilerOptions));\n  const fix = getTypeOnlyPromotionFix(sourceFile, symbolToken, symbolName2, program);\n  const includeSymbolNameInDescription = symbolName2 !== symbolToken.text;\n  return fix && codeFixActionToCodeAction(codeActionForFix(\n    { host, formatContext, preferences },\n    sourceFile,\n    symbolName2,\n    fix,\n    includeSymbolNameInDescription,\n    program,\n    preferences\n  ));\n}\nfunction getImportFixForSymbol(sourceFile, exportInfos, program, position, isValidTypeOnlyUseSite, useRequire, host, preferences) {\n  const packageJsonImportFilter = createPackageJsonImportFilter(sourceFile, preferences, host);\n  return getBestFix(getImportFixes(exportInfos, position, isValidTypeOnlyUseSite, useRequire, program, sourceFile, host, preferences).fixes, sourceFile, program, packageJsonImportFilter, host, preferences);\n}\nfunction codeFixActionToCodeAction({ description: description3, changes, commands }) {\n  return { description: description3, changes, commands };\n}\nfunction getAllExportInfoForSymbol(importingFile, symbol, symbolName2, moduleSymbol, preferCapitalized, program, host, preferences, cancellationToken) {\n  const getChecker = createGetChecker(program, host);\n  const isFileExcluded = preferences.autoImportFileExcludePatterns && getIsFileExcluded(host, preferences);\n  const mergedModuleSymbol = program.getTypeChecker().getMergedSymbol(moduleSymbol);\n  const moduleSourceFile = isFileExcluded && mergedModuleSymbol.declarations && getDeclarationOfKind(mergedModuleSymbol, 308 /* SourceFile */);\n  const moduleSymbolExcluded = moduleSourceFile && isFileExcluded(moduleSourceFile);\n  return getExportInfoMap(importingFile, host, program, preferences, cancellationToken).search(importingFile.path, preferCapitalized, (name) => name === symbolName2, (info) => {\n    const checker = getChecker(info[0].isFromPackageJson);\n    if (checker.getMergedSymbol(skipAlias(info[0].symbol, checker)) === symbol && (moduleSymbolExcluded || info.some((i) => checker.getMergedSymbol(i.moduleSymbol) === moduleSymbol || i.symbol.parent === moduleSymbol))) {\n      return info;\n    }\n  });\n}\nfunction getSingleExportInfoForSymbol(symbol, symbolName2, moduleSymbol, program, host) {\n  var _a, _b;\n  const mainProgramInfo = getInfoWithChecker(\n    program.getTypeChecker(),\n    /*isFromPackageJson*/\n    false\n  );\n  if (mainProgramInfo) {\n    return mainProgramInfo;\n  }\n  const autoImportProvider = (_b = (_a = host.getPackageJsonAutoImportProvider) == null ? void 0 : _a.call(host)) == null ? void 0 : _b.getTypeChecker();\n  return Debug.checkDefined(autoImportProvider && getInfoWithChecker(\n    autoImportProvider,\n    /*isFromPackageJson*/\n    true\n  ), `Could not find symbol in specified module for code actions`);\n  function getInfoWithChecker(checker, isFromPackageJson) {\n    const defaultInfo = getDefaultLikeExportInfo(moduleSymbol, checker);\n    if (defaultInfo && skipAlias(defaultInfo.symbol, checker) === symbol) {\n      return { symbol: defaultInfo.symbol, moduleSymbol, moduleFileName: void 0, exportKind: defaultInfo.exportKind, targetFlags: skipAlias(symbol, checker).flags, isFromPackageJson };\n    }\n    const named = checker.tryGetMemberInModuleExportsAndProperties(symbolName2, moduleSymbol);\n    if (named && skipAlias(named, checker) === symbol) {\n      return { symbol: named, moduleSymbol, moduleFileName: void 0, exportKind: 0 /* Named */, targetFlags: skipAlias(symbol, checker).flags, isFromPackageJson };\n    }\n  }\n}\nfunction getImportFixes(exportInfos, usagePosition, isValidTypeOnlyUseSite, useRequire, program, sourceFile, host, preferences, importMap = isFullSourceFile(sourceFile) ? createExistingImportMap(sourceFile, program) : void 0, fromCacheOnly) {\n  const checker = program.getTypeChecker();\n  const existingImports = importMap ? flatMap(exportInfos, importMap.getImportsForExportInfo) : emptyArray;\n  const useNamespace = usagePosition !== void 0 && tryUseExistingNamespaceImport(existingImports, usagePosition);\n  const addToExisting = tryAddToExistingImport(existingImports, isValidTypeOnlyUseSite, checker, program.getCompilerOptions());\n  if (addToExisting) {\n    return {\n      computedWithoutCacheCount: 0,\n      fixes: [...useNamespace ? [useNamespace] : emptyArray, addToExisting]\n    };\n  }\n  const { fixes, computedWithoutCacheCount = 0 } = getFixesForAddImport(\n    exportInfos,\n    existingImports,\n    program,\n    sourceFile,\n    usagePosition,\n    isValidTypeOnlyUseSite,\n    useRequire,\n    host,\n    preferences,\n    fromCacheOnly\n  );\n  return {\n    computedWithoutCacheCount,\n    fixes: [...useNamespace ? [useNamespace] : emptyArray, ...fixes]\n  };\n}\nfunction tryUseExistingNamespaceImport(existingImports, position) {\n  return firstDefined(existingImports, ({ declaration, importKind }) => {\n    var _a;\n    if (importKind !== 0 /* Named */) return void 0;\n    const namespacePrefix = getNamespaceLikeImportText(declaration);\n    const moduleSpecifier = namespacePrefix && ((_a = tryGetModuleSpecifierFromDeclaration(declaration)) == null ? void 0 : _a.text);\n    if (moduleSpecifier) {\n      return { kind: 0 /* UseNamespace */, namespacePrefix, usagePosition: position, moduleSpecifierKind: void 0, moduleSpecifier };\n    }\n  });\n}\nfunction getNamespaceLikeImportText(declaration) {\n  var _a, _b, _c;\n  switch (declaration.kind) {\n    case 261 /* VariableDeclaration */:\n      return (_a = tryCast(declaration.name, isIdentifier)) == null ? void 0 : _a.text;\n    case 272 /* ImportEqualsDeclaration */:\n      return declaration.name.text;\n    case 352 /* JSDocImportTag */:\n    case 273 /* ImportDeclaration */:\n      return (_c = tryCast((_b = declaration.importClause) == null ? void 0 : _b.namedBindings, isNamespaceImport)) == null ? void 0 : _c.name.text;\n    default:\n      return Debug.assertNever(declaration);\n  }\n}\nfunction getAddAsTypeOnly(isValidTypeOnlyUseSite, isForNewImportDeclaration, symbol, targetFlags, checker, compilerOptions) {\n  if (!isValidTypeOnlyUseSite) {\n    return 4 /* NotAllowed */;\n  }\n  if (symbol && compilerOptions.verbatimModuleSyntax && (!(targetFlags & 111551 /* Value */) || !!checker.getTypeOnlyAliasDeclaration(symbol))) {\n    return 2 /* Required */;\n  }\n  return 1 /* Allowed */;\n}\nfunction tryAddToExistingImport(existingImports, isValidTypeOnlyUseSite, checker, compilerOptions) {\n  let best;\n  for (const existingImport of existingImports) {\n    const fix = getAddToExistingImportFix(existingImport);\n    if (!fix) continue;\n    const isTypeOnly = isTypeOnlyImportDeclaration(fix.importClauseOrBindingPattern);\n    if (fix.addAsTypeOnly !== 4 /* NotAllowed */ && isTypeOnly || fix.addAsTypeOnly === 4 /* NotAllowed */ && !isTypeOnly) {\n      return fix;\n    }\n    best ?? (best = fix);\n  }\n  return best;\n  function getAddToExistingImportFix({ declaration, importKind, symbol, targetFlags }) {\n    if (importKind === 3 /* CommonJS */ || importKind === 2 /* Namespace */ || declaration.kind === 272 /* ImportEqualsDeclaration */) {\n      return void 0;\n    }\n    if (declaration.kind === 261 /* VariableDeclaration */) {\n      return (importKind === 0 /* Named */ || importKind === 1 /* Default */) && declaration.name.kind === 207 /* ObjectBindingPattern */ ? { kind: 2 /* AddToExisting */, importClauseOrBindingPattern: declaration.name, importKind, moduleSpecifierKind: void 0, moduleSpecifier: declaration.initializer.arguments[0].text, addAsTypeOnly: 4 /* NotAllowed */ } : void 0;\n    }\n    const { importClause } = declaration;\n    if (!importClause || !isStringLiteralLike(declaration.moduleSpecifier)) {\n      return void 0;\n    }\n    const { name, namedBindings } = importClause;\n    if (importClause.isTypeOnly && !(importKind === 0 /* Named */ && namedBindings)) {\n      return void 0;\n    }\n    const addAsTypeOnly = getAddAsTypeOnly(\n      isValidTypeOnlyUseSite,\n      /*isForNewImportDeclaration*/\n      false,\n      symbol,\n      targetFlags,\n      checker,\n      compilerOptions\n    );\n    if (importKind === 1 /* Default */ && (name || // Cannot add a default import to a declaration that already has one\n    addAsTypeOnly === 2 /* Required */ && namedBindings)) {\n      return void 0;\n    }\n    if (importKind === 0 /* Named */ && (namedBindings == null ? void 0 : namedBindings.kind) === 275 /* NamespaceImport */) {\n      return void 0;\n    }\n    return {\n      kind: 2 /* AddToExisting */,\n      importClauseOrBindingPattern: importClause,\n      importKind,\n      moduleSpecifierKind: void 0,\n      moduleSpecifier: declaration.moduleSpecifier.text,\n      addAsTypeOnly\n    };\n  }\n}\nfunction createExistingImportMap(importingFile, program) {\n  const checker = program.getTypeChecker();\n  let importMap;\n  for (const moduleSpecifier of importingFile.imports) {\n    const i = importFromModuleSpecifier(moduleSpecifier);\n    if (isVariableDeclarationInitializedToRequire(i.parent)) {\n      const moduleSymbol = checker.resolveExternalModuleName(moduleSpecifier);\n      if (moduleSymbol) {\n        (importMap || (importMap = createMultiMap())).add(getSymbolId(moduleSymbol), i.parent);\n      }\n    } else if (i.kind === 273 /* ImportDeclaration */ || i.kind === 272 /* ImportEqualsDeclaration */ || i.kind === 352 /* JSDocImportTag */) {\n      const moduleSymbol = checker.getSymbolAtLocation(moduleSpecifier);\n      if (moduleSymbol) {\n        (importMap || (importMap = createMultiMap())).add(getSymbolId(moduleSymbol), i);\n      }\n    }\n  }\n  return {\n    getImportsForExportInfo: ({ moduleSymbol, exportKind, targetFlags, symbol }) => {\n      const matchingDeclarations = importMap == null ? void 0 : importMap.get(getSymbolId(moduleSymbol));\n      if (!matchingDeclarations) return emptyArray;\n      if (isSourceFileJS(importingFile) && !(targetFlags & 111551 /* Value */) && !every(matchingDeclarations, isJSDocImportTag)) return emptyArray;\n      const importKind = getImportKind(importingFile, exportKind, program);\n      return matchingDeclarations.map((declaration) => ({ declaration, importKind, symbol, targetFlags }));\n    }\n  };\n}\nfunction shouldUseRequire(sourceFile, program) {\n  if (!hasJSFileExtension(sourceFile.fileName)) {\n    return false;\n  }\n  if (sourceFile.commonJsModuleIndicator && !sourceFile.externalModuleIndicator) return true;\n  if (sourceFile.externalModuleIndicator && !sourceFile.commonJsModuleIndicator) return false;\n  const compilerOptions = program.getCompilerOptions();\n  if (compilerOptions.configFile) {\n    return getEmitModuleKind(compilerOptions) < 5 /* ES2015 */;\n  }\n  if (getImpliedNodeFormatForEmit(sourceFile, program) === 1 /* CommonJS */) return true;\n  if (getImpliedNodeFormatForEmit(sourceFile, program) === 99 /* ESNext */) return false;\n  for (const otherFile of program.getSourceFiles()) {\n    if (otherFile === sourceFile || !isSourceFileJS(otherFile) || program.isSourceFileFromExternalLibrary(otherFile)) continue;\n    if (otherFile.commonJsModuleIndicator && !otherFile.externalModuleIndicator) return true;\n    if (otherFile.externalModuleIndicator && !otherFile.commonJsModuleIndicator) return false;\n  }\n  return true;\n}\nfunction createGetChecker(program, host) {\n  return memoizeOne((isFromPackageJson) => isFromPackageJson ? host.getPackageJsonAutoImportProvider().getTypeChecker() : program.getTypeChecker());\n}\nfunction getNewImportFixes(program, sourceFile, usagePosition, isValidTypeOnlyUseSite, useRequire, exportInfo, host, preferences, fromCacheOnly) {\n  const isJs = hasJSFileExtension(sourceFile.fileName);\n  const compilerOptions = program.getCompilerOptions();\n  const moduleSpecifierResolutionHost = createModuleSpecifierResolutionHost(program, host);\n  const getChecker = createGetChecker(program, host);\n  const moduleResolution = getEmitModuleResolutionKind(compilerOptions);\n  const rejectNodeModulesRelativePaths = moduleResolutionUsesNodeModules(moduleResolution);\n  const getModuleSpecifiers2 = fromCacheOnly ? (exportInfo2) => ts_moduleSpecifiers_exports.tryGetModuleSpecifiersFromCache(exportInfo2.moduleSymbol, sourceFile, moduleSpecifierResolutionHost, preferences) : (exportInfo2, checker) => ts_moduleSpecifiers_exports.getModuleSpecifiersWithCacheInfo(\n    exportInfo2.moduleSymbol,\n    checker,\n    compilerOptions,\n    sourceFile,\n    moduleSpecifierResolutionHost,\n    preferences,\n    /*options*/\n    void 0,\n    /*forAutoImport*/\n    true\n  );\n  let computedWithoutCacheCount = 0;\n  const fixes = flatMap(exportInfo, (exportInfo2, i) => {\n    const checker = getChecker(exportInfo2.isFromPackageJson);\n    const { computedWithoutCache, moduleSpecifiers, kind: moduleSpecifierKind } = getModuleSpecifiers2(exportInfo2, checker) ?? {};\n    const importedSymbolHasValueMeaning = !!(exportInfo2.targetFlags & 111551 /* Value */);\n    const addAsTypeOnly = getAddAsTypeOnly(\n      isValidTypeOnlyUseSite,\n      /*isForNewImportDeclaration*/\n      true,\n      exportInfo2.symbol,\n      exportInfo2.targetFlags,\n      checker,\n      compilerOptions\n    );\n    computedWithoutCacheCount += computedWithoutCache ? 1 : 0;\n    return mapDefined(moduleSpecifiers, (moduleSpecifier) => {\n      if (rejectNodeModulesRelativePaths && pathContainsNodeModules(moduleSpecifier)) {\n        return void 0;\n      }\n      if (!importedSymbolHasValueMeaning && isJs && usagePosition !== void 0) {\n        return { kind: 1 /* JsdocTypeImport */, moduleSpecifierKind, moduleSpecifier, usagePosition, exportInfo: exportInfo2, isReExport: i > 0 };\n      }\n      const importKind = getImportKind(sourceFile, exportInfo2.exportKind, program);\n      let qualification;\n      if (usagePosition !== void 0 && importKind === 3 /* CommonJS */ && exportInfo2.exportKind === 0 /* Named */) {\n        const exportEquals = checker.resolveExternalModuleSymbol(exportInfo2.moduleSymbol);\n        let namespacePrefix;\n        if (exportEquals !== exportInfo2.moduleSymbol) {\n          namespacePrefix = forEachNameOfDefaultExport(exportEquals, checker, getEmitScriptTarget(compilerOptions), identity);\n        }\n        namespacePrefix || (namespacePrefix = moduleSymbolToValidIdentifier(\n          exportInfo2.moduleSymbol,\n          getEmitScriptTarget(compilerOptions),\n          /*forceCapitalize*/\n          false\n        ));\n        qualification = { namespacePrefix, usagePosition };\n      }\n      return {\n        kind: 3 /* AddNew */,\n        moduleSpecifierKind,\n        moduleSpecifier,\n        importKind,\n        useRequire,\n        addAsTypeOnly,\n        exportInfo: exportInfo2,\n        isReExport: i > 0,\n        qualification\n      };\n    });\n  });\n  return { computedWithoutCacheCount, fixes };\n}\nfunction getFixesForAddImport(exportInfos, existingImports, program, sourceFile, usagePosition, isValidTypeOnlyUseSite, useRequire, host, preferences, fromCacheOnly) {\n  const existingDeclaration = firstDefined(existingImports, (info) => newImportInfoFromExistingSpecifier(info, isValidTypeOnlyUseSite, useRequire, program.getTypeChecker(), program.getCompilerOptions()));\n  return existingDeclaration ? { fixes: [existingDeclaration] } : getNewImportFixes(program, sourceFile, usagePosition, isValidTypeOnlyUseSite, useRequire, exportInfos, host, preferences, fromCacheOnly);\n}\nfunction newImportInfoFromExistingSpecifier({ declaration, importKind, symbol, targetFlags }, isValidTypeOnlyUseSite, useRequire, checker, compilerOptions) {\n  var _a;\n  const moduleSpecifier = (_a = tryGetModuleSpecifierFromDeclaration(declaration)) == null ? void 0 : _a.text;\n  if (moduleSpecifier) {\n    const addAsTypeOnly = useRequire ? 4 /* NotAllowed */ : getAddAsTypeOnly(\n      isValidTypeOnlyUseSite,\n      /*isForNewImportDeclaration*/\n      true,\n      symbol,\n      targetFlags,\n      checker,\n      compilerOptions\n    );\n    return { kind: 3 /* AddNew */, moduleSpecifierKind: void 0, moduleSpecifier, importKind, addAsTypeOnly, useRequire };\n  }\n}\nfunction getFixInfos(context, errorCode, pos, useAutoImportProvider) {\n  const symbolToken = getTokenAtPosition(context.sourceFile, pos);\n  let info;\n  if (errorCode === Diagnostics._0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead.code) {\n    info = getFixesInfoForUMDImport(context, symbolToken);\n  } else if (!isIdentifier(symbolToken)) {\n    return void 0;\n  } else if (errorCode === Diagnostics._0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type.code) {\n    const symbolName2 = single(getSymbolNamesToImport(context.sourceFile, context.program.getTypeChecker(), symbolToken, context.program.getCompilerOptions()));\n    const fix = getTypeOnlyPromotionFix(context.sourceFile, symbolToken, symbolName2, context.program);\n    return fix && [{ fix, symbolName: symbolName2, errorIdentifierText: symbolToken.text }];\n  } else {\n    info = getFixesInfoForNonUMDImport(context, symbolToken, useAutoImportProvider);\n  }\n  const packageJsonImportFilter = createPackageJsonImportFilter(context.sourceFile, context.preferences, context.host);\n  return info && sortFixInfo(info, context.sourceFile, context.program, packageJsonImportFilter, context.host, context.preferences);\n}\nfunction sortFixInfo(fixes, sourceFile, program, packageJsonImportFilter, host, preferences) {\n  const _toPath = (fileName) => toPath(fileName, host.getCurrentDirectory(), hostGetCanonicalFileName(host));\n  return toSorted(fixes, (a, b) => compareBooleans(!!a.isJsxNamespaceFix, !!b.isJsxNamespaceFix) || compareValues(a.fix.kind, b.fix.kind) || compareModuleSpecifiers(a.fix, b.fix, sourceFile, program, preferences, packageJsonImportFilter.allowsImportingSpecifier, _toPath));\n}\nfunction getFixInfosWithoutDiagnostic(context, symbolToken, useAutoImportProvider) {\n  const info = getFixesInfoForNonUMDImport(context, symbolToken, useAutoImportProvider);\n  const packageJsonImportFilter = createPackageJsonImportFilter(context.sourceFile, context.preferences, context.host);\n  return info && sortFixInfo(info, context.sourceFile, context.program, packageJsonImportFilter, context.host, context.preferences);\n}\nfunction getBestFix(fixes, sourceFile, program, packageJsonImportFilter, host, preferences) {\n  if (!some(fixes)) return;\n  if (fixes[0].kind === 0 /* UseNamespace */ || fixes[0].kind === 2 /* AddToExisting */) {\n    return fixes[0];\n  }\n  return fixes.reduce(\n    (best, fix) => (\n      // Takes true branch of conditional if `fix` is better than `best`\n      compareModuleSpecifiers(\n        fix,\n        best,\n        sourceFile,\n        program,\n        preferences,\n        packageJsonImportFilter.allowsImportingSpecifier,\n        (fileName) => toPath(fileName, host.getCurrentDirectory(), hostGetCanonicalFileName(host))\n      ) === -1 /* LessThan */ ? fix : best\n    )\n  );\n}\nfunction compareModuleSpecifiers(a, b, importingFile, program, preferences, allowsImportingSpecifier, toPath3) {\n  if (a.kind !== 0 /* UseNamespace */ && b.kind !== 0 /* UseNamespace */) {\n    return compareBooleans(\n      b.moduleSpecifierKind !== \"node_modules\" || allowsImportingSpecifier(b.moduleSpecifier),\n      a.moduleSpecifierKind !== \"node_modules\" || allowsImportingSpecifier(a.moduleSpecifier)\n    ) || compareModuleSpecifierRelativity(a, b, preferences) || compareNodeCoreModuleSpecifiers(a.moduleSpecifier, b.moduleSpecifier, importingFile, program) || compareBooleans(\n      isFixPossiblyReExportingImportingFile(a, importingFile.path, toPath3),\n      isFixPossiblyReExportingImportingFile(b, importingFile.path, toPath3)\n    ) || compareNumberOfDirectorySeparators(a.moduleSpecifier, b.moduleSpecifier);\n  }\n  return 0 /* EqualTo */;\n}\nfunction compareModuleSpecifierRelativity(a, b, preferences) {\n  if (preferences.importModuleSpecifierPreference === \"non-relative\" || preferences.importModuleSpecifierPreference === \"project-relative\") {\n    return compareBooleans(a.moduleSpecifierKind === \"relative\", b.moduleSpecifierKind === \"relative\");\n  }\n  return 0 /* EqualTo */;\n}\nfunction isFixPossiblyReExportingImportingFile(fix, importingFilePath, toPath3) {\n  var _a;\n  if (fix.isReExport && ((_a = fix.exportInfo) == null ? void 0 : _a.moduleFileName) && isIndexFileName(fix.exportInfo.moduleFileName)) {\n    const reExportDir = toPath3(getDirectoryPath(fix.exportInfo.moduleFileName));\n    return startsWith(importingFilePath, reExportDir);\n  }\n  return false;\n}\nfunction isIndexFileName(fileName) {\n  return getBaseFileName(\n    fileName,\n    [\".js\", \".jsx\", \".d.ts\", \".ts\", \".tsx\"],\n    /*ignoreCase*/\n    true\n  ) === \"index\";\n}\nfunction compareNodeCoreModuleSpecifiers(a, b, importingFile, program) {\n  if (startsWith(a, \"node:\") && !startsWith(b, \"node:\")) return shouldUseUriStyleNodeCoreModules(importingFile, program) ? -1 /* LessThan */ : 1 /* GreaterThan */;\n  if (startsWith(b, \"node:\") && !startsWith(a, \"node:\")) return shouldUseUriStyleNodeCoreModules(importingFile, program) ? 1 /* GreaterThan */ : -1 /* LessThan */;\n  return 0 /* EqualTo */;\n}\nfunction getFixesInfoForUMDImport({ sourceFile, program, host, preferences }, token) {\n  const checker = program.getTypeChecker();\n  const umdSymbol = getUmdSymbol(token, checker);\n  if (!umdSymbol) return void 0;\n  const symbol = checker.getAliasedSymbol(umdSymbol);\n  const symbolName2 = umdSymbol.name;\n  const exportInfo = [{ symbol: umdSymbol, moduleSymbol: symbol, moduleFileName: void 0, exportKind: 3 /* UMD */, targetFlags: symbol.flags, isFromPackageJson: false }];\n  const useRequire = shouldUseRequire(sourceFile, program);\n  const fixes = getImportFixes(\n    exportInfo,\n    /*usagePosition*/\n    void 0,\n    /*isValidTypeOnlyUseSite*/\n    false,\n    useRequire,\n    program,\n    sourceFile,\n    host,\n    preferences\n  ).fixes;\n  return fixes.map((fix) => {\n    var _a;\n    return { fix, symbolName: symbolName2, errorIdentifierText: (_a = tryCast(token, isIdentifier)) == null ? void 0 : _a.text };\n  });\n}\nfunction getUmdSymbol(token, checker) {\n  const umdSymbol = isIdentifier(token) ? checker.getSymbolAtLocation(token) : void 0;\n  if (isUMDExportSymbol(umdSymbol)) return umdSymbol;\n  const { parent: parent2 } = token;\n  if (isJsxOpeningLikeElement(parent2) && parent2.tagName === token || isJsxOpeningFragment(parent2)) {\n    const parentSymbol = checker.resolveName(\n      checker.getJsxNamespace(parent2),\n      isJsxOpeningLikeElement(parent2) ? token : parent2,\n      111551 /* Value */,\n      /*excludeGlobals*/\n      false\n    );\n    if (isUMDExportSymbol(parentSymbol)) {\n      return parentSymbol;\n    }\n  }\n  return void 0;\n}\nfunction getImportKind(importingFile, exportKind, program, forceImportKeyword) {\n  if (program.getCompilerOptions().verbatimModuleSyntax && getEmitModuleFormatOfFile(importingFile, program) === 1 /* CommonJS */) {\n    return 3 /* CommonJS */;\n  }\n  switch (exportKind) {\n    case 0 /* Named */:\n      return 0 /* Named */;\n    case 1 /* Default */:\n      return 1 /* Default */;\n    case 2 /* ExportEquals */:\n      return getExportEqualsImportKind(importingFile, program.getCompilerOptions(), !!forceImportKeyword);\n    case 3 /* UMD */:\n      return getUmdImportKind(importingFile, program, !!forceImportKeyword);\n    case 4 /* Module */:\n      return 2 /* Namespace */;\n    default:\n      return Debug.assertNever(exportKind);\n  }\n}\nfunction getUmdImportKind(importingFile, program, forceImportKeyword) {\n  if (getAllowSyntheticDefaultImports(program.getCompilerOptions())) {\n    return 1 /* Default */;\n  }\n  const moduleKind = getEmitModuleKind(program.getCompilerOptions());\n  switch (moduleKind) {\n    case 2 /* AMD */:\n    case 1 /* CommonJS */:\n    case 3 /* UMD */:\n      if (hasJSFileExtension(importingFile.fileName)) {\n        return importingFile.externalModuleIndicator || forceImportKeyword ? 2 /* Namespace */ : 3 /* CommonJS */;\n      }\n      return 3 /* CommonJS */;\n    case 4 /* System */:\n    case 5 /* ES2015 */:\n    case 6 /* ES2020 */:\n    case 7 /* ES2022 */:\n    case 99 /* ESNext */:\n    case 0 /* None */:\n    case 200 /* Preserve */:\n      return 2 /* Namespace */;\n    case 100 /* Node16 */:\n    case 101 /* Node18 */:\n    case 102 /* Node20 */:\n    case 199 /* NodeNext */:\n      return getImpliedNodeFormatForEmit(importingFile, program) === 99 /* ESNext */ ? 2 /* Namespace */ : 3 /* CommonJS */;\n    default:\n      return Debug.assertNever(moduleKind, `Unexpected moduleKind ${moduleKind}`);\n  }\n}\nfunction getFixesInfoForNonUMDImport({ sourceFile, program, cancellationToken, host, preferences }, symbolToken, useAutoImportProvider) {\n  const checker = program.getTypeChecker();\n  const compilerOptions = program.getCompilerOptions();\n  return flatMap(getSymbolNamesToImport(sourceFile, checker, symbolToken, compilerOptions), (symbolName2) => {\n    if (symbolName2 === \"default\" /* Default */) {\n      return void 0;\n    }\n    const isValidTypeOnlyUseSite = isValidTypeOnlyAliasUseSite(symbolToken);\n    const useRequire = shouldUseRequire(sourceFile, program);\n    const exportInfo = getExportInfos(symbolName2, isJSXTagName(symbolToken), getMeaningFromLocation(symbolToken), cancellationToken, sourceFile, program, useAutoImportProvider, host, preferences);\n    return arrayFrom(\n      flatMapIterator(exportInfo.values(), (exportInfos) => getImportFixes(exportInfos, symbolToken.getStart(sourceFile), isValidTypeOnlyUseSite, useRequire, program, sourceFile, host, preferences).fixes),\n      (fix) => ({ fix, symbolName: symbolName2, errorIdentifierText: symbolToken.text, isJsxNamespaceFix: symbolName2 !== symbolToken.text })\n    );\n  });\n}\nfunction getTypeOnlyPromotionFix(sourceFile, symbolToken, symbolName2, program) {\n  const checker = program.getTypeChecker();\n  const symbol = checker.resolveName(\n    symbolName2,\n    symbolToken,\n    111551 /* Value */,\n    /*excludeGlobals*/\n    true\n  );\n  if (!symbol) return void 0;\n  const typeOnlyAliasDeclaration = checker.getTypeOnlyAliasDeclaration(symbol);\n  if (!typeOnlyAliasDeclaration || getSourceFileOfNode(typeOnlyAliasDeclaration) !== sourceFile) return void 0;\n  return { kind: 4 /* PromoteTypeOnly */, typeOnlyAliasDeclaration };\n}\nfunction getSymbolNamesToImport(sourceFile, checker, symbolToken, compilerOptions) {\n  const parent2 = symbolToken.parent;\n  if ((isJsxOpeningLikeElement(parent2) || isJsxClosingElement(parent2)) && parent2.tagName === symbolToken && jsxModeNeedsExplicitImport(compilerOptions.jsx)) {\n    const jsxNamespace = checker.getJsxNamespace(sourceFile);\n    if (needsJsxNamespaceFix(jsxNamespace, symbolToken, checker)) {\n      const needsComponentNameFix = !isIntrinsicJsxName(symbolToken.text) && !checker.resolveName(\n        symbolToken.text,\n        symbolToken,\n        111551 /* Value */,\n        /*excludeGlobals*/\n        false\n      );\n      return needsComponentNameFix ? [symbolToken.text, jsxNamespace] : [jsxNamespace];\n    }\n  }\n  return [symbolToken.text];\n}\nfunction needsJsxNamespaceFix(jsxNamespace, symbolToken, checker) {\n  if (isIntrinsicJsxName(symbolToken.text)) return true;\n  const namespaceSymbol = checker.resolveName(\n    jsxNamespace,\n    symbolToken,\n    111551 /* Value */,\n    /*excludeGlobals*/\n    true\n  );\n  return !namespaceSymbol || some(namespaceSymbol.declarations, isTypeOnlyImportOrExportDeclaration) && !(namespaceSymbol.flags & 111551 /* Value */);\n}\nfunction getExportInfos(symbolName2, isJsxTagName, currentTokenMeaning, cancellationToken, fromFile, program, useAutoImportProvider, host, preferences) {\n  var _a;\n  const originalSymbolToExportInfos = createMultiMap();\n  const packageJsonFilter = createPackageJsonImportFilter(fromFile, preferences, host);\n  const moduleSpecifierCache = (_a = host.getModuleSpecifierCache) == null ? void 0 : _a.call(host);\n  const getModuleSpecifierResolutionHost = memoizeOne((isFromPackageJson) => {\n    return createModuleSpecifierResolutionHost(isFromPackageJson ? host.getPackageJsonAutoImportProvider() : program, host);\n  });\n  function addSymbol(moduleSymbol, toFile, exportedSymbol, exportKind, program2, isFromPackageJson) {\n    const moduleSpecifierResolutionHost = getModuleSpecifierResolutionHost(isFromPackageJson);\n    if (isImportable(program2, fromFile, toFile, moduleSymbol, preferences, packageJsonFilter, moduleSpecifierResolutionHost, moduleSpecifierCache)) {\n      const checker = program2.getTypeChecker();\n      originalSymbolToExportInfos.add(getUniqueSymbolId(exportedSymbol, checker).toString(), { symbol: exportedSymbol, moduleSymbol, moduleFileName: toFile == null ? void 0 : toFile.fileName, exportKind, targetFlags: skipAlias(exportedSymbol, checker).flags, isFromPackageJson });\n    }\n  }\n  forEachExternalModuleToImportFrom(program, host, preferences, useAutoImportProvider, (moduleSymbol, sourceFile, program2, isFromPackageJson) => {\n    const checker = program2.getTypeChecker();\n    cancellationToken.throwIfCancellationRequested();\n    const compilerOptions = program2.getCompilerOptions();\n    const defaultInfo = getDefaultLikeExportInfo(moduleSymbol, checker);\n    if (defaultInfo && symbolFlagsHaveMeaning(checker.getSymbolFlags(defaultInfo.symbol), currentTokenMeaning) && forEachNameOfDefaultExport(defaultInfo.symbol, checker, getEmitScriptTarget(compilerOptions), (name, capitalizedName) => (isJsxTagName ? capitalizedName ?? name : name) === symbolName2)) {\n      addSymbol(moduleSymbol, sourceFile, defaultInfo.symbol, defaultInfo.exportKind, program2, isFromPackageJson);\n    }\n    const exportSymbolWithIdenticalName = checker.tryGetMemberInModuleExportsAndProperties(symbolName2, moduleSymbol);\n    if (exportSymbolWithIdenticalName && symbolFlagsHaveMeaning(checker.getSymbolFlags(exportSymbolWithIdenticalName), currentTokenMeaning)) {\n      addSymbol(moduleSymbol, sourceFile, exportSymbolWithIdenticalName, 0 /* Named */, program2, isFromPackageJson);\n    }\n  });\n  return originalSymbolToExportInfos;\n}\nfunction getExportEqualsImportKind(importingFile, compilerOptions, forceImportKeyword) {\n  const allowSyntheticDefaults = getAllowSyntheticDefaultImports(compilerOptions);\n  const isJS = hasJSFileExtension(importingFile.fileName);\n  if (!isJS && getEmitModuleKind(compilerOptions) >= 5 /* ES2015 */) {\n    return allowSyntheticDefaults ? 1 /* Default */ : 2 /* Namespace */;\n  }\n  if (isJS) {\n    return importingFile.externalModuleIndicator || forceImportKeyword ? allowSyntheticDefaults ? 1 /* Default */ : 2 /* Namespace */ : 3 /* CommonJS */;\n  }\n  for (const statement of importingFile.statements ?? emptyArray) {\n    if (isImportEqualsDeclaration(statement) && !nodeIsMissing(statement.moduleReference)) {\n      return 3 /* CommonJS */;\n    }\n  }\n  return allowSyntheticDefaults ? 1 /* Default */ : 3 /* CommonJS */;\n}\nfunction codeActionForFix(context, sourceFile, symbolName2, fix, includeSymbolNameInDescription, program, preferences) {\n  let diag2;\n  const changes = ts_textChanges_exports.ChangeTracker.with(context, (tracker) => {\n    diag2 = codeActionForFixWorker(tracker, sourceFile, symbolName2, fix, includeSymbolNameInDescription, program, preferences);\n  });\n  return createCodeFixAction(importFixName, changes, diag2, importFixId, Diagnostics.Add_all_missing_imports);\n}\nfunction codeActionForFixWorker(changes, sourceFile, symbolName2, fix, includeSymbolNameInDescription, program, preferences) {\n  const quotePreference = getQuotePreference(sourceFile, preferences);\n  switch (fix.kind) {\n    case 0 /* UseNamespace */:\n      addNamespaceQualifier(changes, sourceFile, fix);\n      return [Diagnostics.Change_0_to_1, symbolName2, `${fix.namespacePrefix}.${symbolName2}`];\n    case 1 /* JsdocTypeImport */:\n      addImportType(changes, sourceFile, fix, quotePreference);\n      return [Diagnostics.Change_0_to_1, symbolName2, getImportTypePrefix(fix.moduleSpecifier, quotePreference) + symbolName2];\n    case 2 /* AddToExisting */: {\n      const { importClauseOrBindingPattern, importKind, addAsTypeOnly, moduleSpecifier } = fix;\n      doAddExistingFix(\n        changes,\n        sourceFile,\n        importClauseOrBindingPattern,\n        importKind === 1 /* Default */ ? { name: symbolName2, addAsTypeOnly } : void 0,\n        importKind === 0 /* Named */ ? [{ name: symbolName2, addAsTypeOnly }] : emptyArray,\n        /*removeExistingImportSpecifiers*/\n        void 0,\n        preferences\n      );\n      const moduleSpecifierWithoutQuotes = stripQuotes(moduleSpecifier);\n      return includeSymbolNameInDescription ? [Diagnostics.Import_0_from_1, symbolName2, moduleSpecifierWithoutQuotes] : [Diagnostics.Update_import_from_0, moduleSpecifierWithoutQuotes];\n    }\n    case 3 /* AddNew */: {\n      const { importKind, moduleSpecifier, addAsTypeOnly, useRequire, qualification } = fix;\n      const getDeclarations = useRequire ? getNewRequires : getNewImports;\n      const defaultImport = importKind === 1 /* Default */ ? { name: symbolName2, addAsTypeOnly } : void 0;\n      const namedImports = importKind === 0 /* Named */ ? [{ name: symbolName2, addAsTypeOnly }] : void 0;\n      const namespaceLikeImport = importKind === 2 /* Namespace */ || importKind === 3 /* CommonJS */ ? { importKind, name: (qualification == null ? void 0 : qualification.namespacePrefix) || symbolName2, addAsTypeOnly } : void 0;\n      insertImports(\n        changes,\n        sourceFile,\n        getDeclarations(\n          moduleSpecifier,\n          quotePreference,\n          defaultImport,\n          namedImports,\n          namespaceLikeImport,\n          program.getCompilerOptions(),\n          preferences\n        ),\n        /*blankLineBetween*/\n        true,\n        preferences\n      );\n      if (qualification) {\n        addNamespaceQualifier(changes, sourceFile, qualification);\n      }\n      return includeSymbolNameInDescription ? [Diagnostics.Import_0_from_1, symbolName2, moduleSpecifier] : [Diagnostics.Add_import_from_0, moduleSpecifier];\n    }\n    case 4 /* PromoteTypeOnly */: {\n      const { typeOnlyAliasDeclaration } = fix;\n      const promotedDeclaration = promoteFromTypeOnly(changes, typeOnlyAliasDeclaration, program, sourceFile, preferences);\n      return promotedDeclaration.kind === 277 /* ImportSpecifier */ ? [Diagnostics.Remove_type_from_import_of_0_from_1, symbolName2, getModuleSpecifierText(promotedDeclaration.parent.parent)] : [Diagnostics.Remove_type_from_import_declaration_from_0, getModuleSpecifierText(promotedDeclaration)];\n    }\n    default:\n      return Debug.assertNever(fix, `Unexpected fix kind ${fix.kind}`);\n  }\n}\nfunction getModuleSpecifierText(promotedDeclaration) {\n  var _a, _b;\n  return promotedDeclaration.kind === 272 /* ImportEqualsDeclaration */ ? ((_b = tryCast((_a = tryCast(promotedDeclaration.moduleReference, isExternalModuleReference)) == null ? void 0 : _a.expression, isStringLiteralLike)) == null ? void 0 : _b.text) || promotedDeclaration.moduleReference.getText() : cast(promotedDeclaration.parent.moduleSpecifier, isStringLiteral).text;\n}\nfunction promoteFromTypeOnly(changes, aliasDeclaration, program, sourceFile, preferences) {\n  const compilerOptions = program.getCompilerOptions();\n  const convertExistingToTypeOnly = compilerOptions.verbatimModuleSyntax;\n  switch (aliasDeclaration.kind) {\n    case 277 /* ImportSpecifier */:\n      if (aliasDeclaration.isTypeOnly) {\n        if (aliasDeclaration.parent.elements.length > 1) {\n          const newSpecifier = factory.updateImportSpecifier(\n            aliasDeclaration,\n            /*isTypeOnly*/\n            false,\n            aliasDeclaration.propertyName,\n            aliasDeclaration.name\n          );\n          const { specifierComparer } = ts_OrganizeImports_exports.getNamedImportSpecifierComparerWithDetection(aliasDeclaration.parent.parent.parent, preferences, sourceFile);\n          const insertionIndex = ts_OrganizeImports_exports.getImportSpecifierInsertionIndex(aliasDeclaration.parent.elements, newSpecifier, specifierComparer);\n          if (insertionIndex !== aliasDeclaration.parent.elements.indexOf(aliasDeclaration)) {\n            changes.delete(sourceFile, aliasDeclaration);\n            changes.insertImportSpecifierAtIndex(sourceFile, newSpecifier, aliasDeclaration.parent, insertionIndex);\n            return aliasDeclaration;\n          }\n        }\n        changes.deleteRange(sourceFile, { pos: getTokenPosOfNode(aliasDeclaration.getFirstToken()), end: getTokenPosOfNode(aliasDeclaration.propertyName ?? aliasDeclaration.name) });\n        return aliasDeclaration;\n      } else {\n        Debug.assert(aliasDeclaration.parent.parent.isTypeOnly);\n        promoteImportClause(aliasDeclaration.parent.parent);\n        return aliasDeclaration.parent.parent;\n      }\n    case 274 /* ImportClause */:\n      promoteImportClause(aliasDeclaration);\n      return aliasDeclaration;\n    case 275 /* NamespaceImport */:\n      promoteImportClause(aliasDeclaration.parent);\n      return aliasDeclaration.parent;\n    case 272 /* ImportEqualsDeclaration */:\n      changes.deleteRange(sourceFile, aliasDeclaration.getChildAt(1));\n      return aliasDeclaration;\n    default:\n      Debug.failBadSyntaxKind(aliasDeclaration);\n  }\n  function promoteImportClause(importClause) {\n    var _a;\n    changes.delete(sourceFile, getTypeKeywordOfTypeOnlyImport(importClause, sourceFile));\n    if (!compilerOptions.allowImportingTsExtensions) {\n      const moduleSpecifier = tryGetModuleSpecifierFromDeclaration(importClause.parent);\n      const resolvedModule = moduleSpecifier && ((_a = program.getResolvedModuleFromModuleSpecifier(moduleSpecifier, sourceFile)) == null ? void 0 : _a.resolvedModule);\n      if (resolvedModule == null ? void 0 : resolvedModule.resolvedUsingTsExtension) {\n        const changedExtension = changeAnyExtension(moduleSpecifier.text, getOutputExtension(moduleSpecifier.text, compilerOptions));\n        changes.replaceNode(sourceFile, moduleSpecifier, factory.createStringLiteral(changedExtension));\n      }\n    }\n    if (convertExistingToTypeOnly) {\n      const namedImports = tryCast(importClause.namedBindings, isNamedImports);\n      if (namedImports && namedImports.elements.length > 1) {\n        const sortState = ts_OrganizeImports_exports.getNamedImportSpecifierComparerWithDetection(importClause.parent, preferences, sourceFile);\n        if (sortState.isSorted !== false && aliasDeclaration.kind === 277 /* ImportSpecifier */ && namedImports.elements.indexOf(aliasDeclaration) !== 0) {\n          changes.delete(sourceFile, aliasDeclaration);\n          changes.insertImportSpecifierAtIndex(sourceFile, aliasDeclaration, namedImports, 0);\n        }\n        for (const element of namedImports.elements) {\n          if (element !== aliasDeclaration && !element.isTypeOnly) {\n            changes.insertModifierBefore(sourceFile, 156 /* TypeKeyword */, element);\n          }\n        }\n      }\n    }\n  }\n}\nfunction doAddExistingFix(changes, sourceFile, clause, defaultImport, namedImports, removeExistingImportSpecifiers, preferences) {\n  var _a;\n  if (clause.kind === 207 /* ObjectBindingPattern */) {\n    if (removeExistingImportSpecifiers && clause.elements.some((e) => removeExistingImportSpecifiers.has(e))) {\n      changes.replaceNode(\n        sourceFile,\n        clause,\n        factory.createObjectBindingPattern([\n          ...clause.elements.filter((e) => !removeExistingImportSpecifiers.has(e)),\n          ...defaultImport ? [factory.createBindingElement(\n            /*dotDotDotToken*/\n            void 0,\n            /*propertyName*/\n            \"default\",\n            defaultImport.name\n          )] : emptyArray,\n          ...namedImports.map((i) => factory.createBindingElement(\n            /*dotDotDotToken*/\n            void 0,\n            i.propertyName,\n            i.name\n          ))\n        ])\n      );\n      return;\n    }\n    if (defaultImport) {\n      addElementToBindingPattern(clause, defaultImport.name, \"default\");\n    }\n    for (const specifier of namedImports) {\n      addElementToBindingPattern(clause, specifier.name, specifier.propertyName);\n    }\n    return;\n  }\n  const promoteFromTypeOnly2 = clause.isTypeOnly && some([defaultImport, ...namedImports], (i) => (i == null ? void 0 : i.addAsTypeOnly) === 4 /* NotAllowed */);\n  const existingSpecifiers = clause.namedBindings && ((_a = tryCast(clause.namedBindings, isNamedImports)) == null ? void 0 : _a.elements);\n  if (defaultImport) {\n    Debug.assert(!clause.name, \"Cannot add a default import to an import clause that already has one\");\n    changes.insertNodeAt(sourceFile, clause.getStart(sourceFile), factory.createIdentifier(defaultImport.name), { suffix: \", \" });\n  }\n  if (namedImports.length) {\n    const { specifierComparer, isSorted } = ts_OrganizeImports_exports.getNamedImportSpecifierComparerWithDetection(clause.parent, preferences, sourceFile);\n    const newSpecifiers = toSorted(\n      namedImports.map(\n        (namedImport) => factory.createImportSpecifier(\n          (!clause.isTypeOnly || promoteFromTypeOnly2) && shouldUseTypeOnly(namedImport, preferences),\n          namedImport.propertyName === void 0 ? void 0 : factory.createIdentifier(namedImport.propertyName),\n          factory.createIdentifier(namedImport.name)\n        )\n      ),\n      specifierComparer\n    );\n    if (removeExistingImportSpecifiers) {\n      changes.replaceNode(\n        sourceFile,\n        clause.namedBindings,\n        factory.updateNamedImports(\n          clause.namedBindings,\n          toSorted([...existingSpecifiers.filter((s) => !removeExistingImportSpecifiers.has(s)), ...newSpecifiers], specifierComparer)\n        )\n      );\n    } else if ((existingSpecifiers == null ? void 0 : existingSpecifiers.length) && isSorted !== false) {\n      const transformedExistingSpecifiers = promoteFromTypeOnly2 && existingSpecifiers ? factory.updateNamedImports(\n        clause.namedBindings,\n        sameMap(existingSpecifiers, (e) => factory.updateImportSpecifier(\n          e,\n          /*isTypeOnly*/\n          true,\n          e.propertyName,\n          e.name\n        ))\n      ).elements : existingSpecifiers;\n      for (const spec of newSpecifiers) {\n        const insertionIndex = ts_OrganizeImports_exports.getImportSpecifierInsertionIndex(transformedExistingSpecifiers, spec, specifierComparer);\n        changes.insertImportSpecifierAtIndex(sourceFile, spec, clause.namedBindings, insertionIndex);\n      }\n    } else if (existingSpecifiers == null ? void 0 : existingSpecifiers.length) {\n      for (const spec of newSpecifiers) {\n        changes.insertNodeInListAfter(sourceFile, last(existingSpecifiers), spec, existingSpecifiers);\n      }\n    } else {\n      if (newSpecifiers.length) {\n        const namedImports2 = factory.createNamedImports(newSpecifiers);\n        if (clause.namedBindings) {\n          changes.replaceNode(sourceFile, clause.namedBindings, namedImports2);\n        } else {\n          changes.insertNodeAfter(sourceFile, Debug.checkDefined(clause.name, \"Import clause must have either named imports or a default import\"), namedImports2);\n        }\n      }\n    }\n  }\n  if (promoteFromTypeOnly2) {\n    changes.delete(sourceFile, getTypeKeywordOfTypeOnlyImport(clause, sourceFile));\n    if (existingSpecifiers) {\n      for (const specifier of existingSpecifiers) {\n        changes.insertModifierBefore(sourceFile, 156 /* TypeKeyword */, specifier);\n      }\n    }\n  }\n  function addElementToBindingPattern(bindingPattern, name, propertyName) {\n    const element = factory.createBindingElement(\n      /*dotDotDotToken*/\n      void 0,\n      propertyName,\n      name\n    );\n    if (bindingPattern.elements.length) {\n      changes.insertNodeInListAfter(sourceFile, last(bindingPattern.elements), element);\n    } else {\n      changes.replaceNode(sourceFile, bindingPattern, factory.createObjectBindingPattern([element]));\n    }\n  }\n}\nfunction addNamespaceQualifier(changes, sourceFile, { namespacePrefix, usagePosition }) {\n  changes.insertText(sourceFile, usagePosition, namespacePrefix + \".\");\n}\nfunction addImportType(changes, sourceFile, { moduleSpecifier, usagePosition: position }, quotePreference) {\n  changes.insertText(sourceFile, position, getImportTypePrefix(moduleSpecifier, quotePreference));\n}\nfunction getImportTypePrefix(moduleSpecifier, quotePreference) {\n  const quote2 = getQuoteFromPreference(quotePreference);\n  return `import(${quote2}${moduleSpecifier}${quote2}).`;\n}\nfunction needsTypeOnly({ addAsTypeOnly }) {\n  return addAsTypeOnly === 2 /* Required */;\n}\nfunction shouldUseTypeOnly(info, preferences) {\n  return needsTypeOnly(info) || !!preferences.preferTypeOnlyAutoImports && info.addAsTypeOnly !== 4 /* NotAllowed */;\n}\nfunction getNewImports(moduleSpecifier, quotePreference, defaultImport, namedImports, namespaceLikeImport, compilerOptions, preferences) {\n  const quotedModuleSpecifier = makeStringLiteral(moduleSpecifier, quotePreference);\n  let statements;\n  if (defaultImport !== void 0 || (namedImports == null ? void 0 : namedImports.length)) {\n    const topLevelTypeOnly = (!defaultImport || needsTypeOnly(defaultImport)) && every(namedImports, needsTypeOnly) || (compilerOptions.verbatimModuleSyntax || preferences.preferTypeOnlyAutoImports) && (defaultImport == null ? void 0 : defaultImport.addAsTypeOnly) !== 4 /* NotAllowed */ && !some(namedImports, (i) => i.addAsTypeOnly === 4 /* NotAllowed */);\n    statements = combine(\n      statements,\n      makeImport(\n        defaultImport && factory.createIdentifier(defaultImport.name),\n        namedImports == null ? void 0 : namedImports.map(\n          (namedImport) => factory.createImportSpecifier(\n            !topLevelTypeOnly && shouldUseTypeOnly(namedImport, preferences),\n            namedImport.propertyName === void 0 ? void 0 : factory.createIdentifier(namedImport.propertyName),\n            factory.createIdentifier(namedImport.name)\n          )\n        ),\n        moduleSpecifier,\n        quotePreference,\n        topLevelTypeOnly\n      )\n    );\n  }\n  if (namespaceLikeImport) {\n    const declaration = namespaceLikeImport.importKind === 3 /* CommonJS */ ? factory.createImportEqualsDeclaration(\n      /*modifiers*/\n      void 0,\n      shouldUseTypeOnly(namespaceLikeImport, preferences),\n      factory.createIdentifier(namespaceLikeImport.name),\n      factory.createExternalModuleReference(quotedModuleSpecifier)\n    ) : factory.createImportDeclaration(\n      /*modifiers*/\n      void 0,\n      factory.createImportClause(\n        shouldUseTypeOnly(namespaceLikeImport, preferences) ? 156 /* TypeKeyword */ : void 0,\n        /*name*/\n        void 0,\n        factory.createNamespaceImport(factory.createIdentifier(namespaceLikeImport.name))\n      ),\n      quotedModuleSpecifier,\n      /*attributes*/\n      void 0\n    );\n    statements = combine(statements, declaration);\n  }\n  return Debug.checkDefined(statements);\n}\nfunction getNewRequires(moduleSpecifier, quotePreference, defaultImport, namedImports, namespaceLikeImport) {\n  const quotedModuleSpecifier = makeStringLiteral(moduleSpecifier, quotePreference);\n  let statements;\n  if (defaultImport || (namedImports == null ? void 0 : namedImports.length)) {\n    const bindingElements = (namedImports == null ? void 0 : namedImports.map(({ name, propertyName }) => factory.createBindingElement(\n      /*dotDotDotToken*/\n      void 0,\n      propertyName,\n      name\n    ))) || [];\n    if (defaultImport) {\n      bindingElements.unshift(factory.createBindingElement(\n        /*dotDotDotToken*/\n        void 0,\n        \"default\",\n        defaultImport.name\n      ));\n    }\n    const declaration = createConstEqualsRequireDeclaration(factory.createObjectBindingPattern(bindingElements), quotedModuleSpecifier);\n    statements = combine(statements, declaration);\n  }\n  if (namespaceLikeImport) {\n    const declaration = createConstEqualsRequireDeclaration(namespaceLikeImport.name, quotedModuleSpecifier);\n    statements = combine(statements, declaration);\n  }\n  return Debug.checkDefined(statements);\n}\nfunction createConstEqualsRequireDeclaration(name, quotedModuleSpecifier) {\n  return factory.createVariableStatement(\n    /*modifiers*/\n    void 0,\n    factory.createVariableDeclarationList([\n      factory.createVariableDeclaration(\n        typeof name === \"string\" ? factory.createIdentifier(name) : name,\n        /*exclamationToken*/\n        void 0,\n        /*type*/\n        void 0,\n        factory.createCallExpression(\n          factory.createIdentifier(\"require\"),\n          /*typeArguments*/\n          void 0,\n          [quotedModuleSpecifier]\n        )\n      )\n    ], 2 /* Const */)\n  );\n}\nfunction symbolFlagsHaveMeaning(flags, meaning) {\n  return meaning === 7 /* All */ ? true : meaning & 1 /* Value */ ? !!(flags & 111551 /* Value */) : meaning & 2 /* Type */ ? !!(flags & 788968 /* Type */) : meaning & 4 /* Namespace */ ? !!(flags & 1920 /* Namespace */) : false;\n}\nfunction getImpliedNodeFormatForEmit(file, program) {\n  return isFullSourceFile(file) ? program.getImpliedNodeFormatForEmit(file) : getImpliedNodeFormatForEmitWorker(file, program.getCompilerOptions());\n}\nfunction getEmitModuleFormatOfFile(file, program) {\n  return isFullSourceFile(file) ? program.getEmitModuleFormatOfFile(file) : getEmitModuleFormatOfFileWorker(file, program.getCompilerOptions());\n}\n\n// src/services/codefixes/fixAddMissingConstraint.ts\nvar fixId18 = \"addMissingConstraint\";\nvar errorCodes20 = [\n  // We want errors this could be attached to:\n  // Diagnostics.This_type_parameter_probably_needs_an_extends_0_constraint\n  Diagnostics.Type_0_is_not_comparable_to_type_1.code,\n  Diagnostics.Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated.code,\n  Diagnostics.Type_0_is_not_assignable_to_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties.code,\n  Diagnostics.Type_0_is_not_assignable_to_type_1.code,\n  Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_with_exactOptionalPropertyTypes_Colon_true_Consider_adding_undefined_to_the_types_of_the_target_s_properties.code,\n  Diagnostics.Property_0_is_incompatible_with_index_signature.code,\n  Diagnostics.Property_0_in_type_1_is_not_assignable_to_type_2.code,\n  Diagnostics.Type_0_does_not_satisfy_the_constraint_1.code\n];\nregisterCodeFix({\n  errorCodes: errorCodes20,\n  getCodeActions(context) {\n    const { sourceFile, span, program, preferences, host } = context;\n    const info = getInfo6(program, sourceFile, span);\n    if (info === void 0) return;\n    const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => addMissingConstraint(t, program, preferences, host, sourceFile, info));\n    return [createCodeFixAction(fixId18, changes, Diagnostics.Add_extends_constraint, fixId18, Diagnostics.Add_extends_constraint_to_all_type_parameters)];\n  },\n  fixIds: [fixId18],\n  getAllCodeActions: (context) => {\n    const { program, preferences, host } = context;\n    const seen = /* @__PURE__ */ new Set();\n    return createCombinedCodeActions(ts_textChanges_exports.ChangeTracker.with(context, (changes) => {\n      eachDiagnostic(context, errorCodes20, (diag2) => {\n        const info = getInfo6(program, diag2.file, createTextSpan(diag2.start, diag2.length));\n        if (info) {\n          if (addToSeen(seen, getNodeId(info.declaration))) {\n            return addMissingConstraint(changes, program, preferences, host, diag2.file, info);\n          }\n        }\n        return void 0;\n      });\n    }));\n  }\n});\nfunction getInfo6(program, sourceFile, span) {\n  const diag2 = find(program.getSemanticDiagnostics(sourceFile), (diag3) => diag3.start === span.start && diag3.length === span.length);\n  if (diag2 === void 0 || diag2.relatedInformation === void 0) return;\n  const related = find(diag2.relatedInformation, (related2) => related2.code === Diagnostics.This_type_parameter_might_need_an_extends_0_constraint.code);\n  if (related === void 0 || related.file === void 0 || related.start === void 0 || related.length === void 0) return;\n  let declaration = findAncestorMatchingSpan(related.file, createTextSpan(related.start, related.length));\n  if (declaration === void 0) return;\n  if (isIdentifier(declaration) && isTypeParameterDeclaration(declaration.parent)) {\n    declaration = declaration.parent;\n  }\n  if (isTypeParameterDeclaration(declaration)) {\n    if (isMappedTypeNode(declaration.parent)) return;\n    const token = getTokenAtPosition(sourceFile, span.start);\n    const checker = program.getTypeChecker();\n    const constraint = tryGetConstraintType(checker, token) || tryGetConstraintFromDiagnosticMessage(related.messageText);\n    return { constraint, declaration, token };\n  }\n  return void 0;\n}\nfunction addMissingConstraint(changes, program, preferences, host, sourceFile, info) {\n  const { declaration, constraint } = info;\n  const checker = program.getTypeChecker();\n  if (isString(constraint)) {\n    changes.insertText(sourceFile, declaration.name.end, ` extends ${constraint}`);\n  } else {\n    const scriptTarget = getEmitScriptTarget(program.getCompilerOptions());\n    const tracker = getNoopSymbolTrackerWithResolver({ program, host });\n    const importAdder = createImportAdder(sourceFile, program, preferences, host);\n    const typeNode = typeToAutoImportableTypeNode(\n      checker,\n      importAdder,\n      constraint,\n      /*contextNode*/\n      void 0,\n      scriptTarget,\n      /*flags*/\n      void 0,\n      /*internalFlags*/\n      void 0,\n      tracker\n    );\n    if (typeNode) {\n      changes.replaceNode(sourceFile, declaration, factory.updateTypeParameterDeclaration(\n        declaration,\n        /*modifiers*/\n        void 0,\n        declaration.name,\n        typeNode,\n        declaration.default\n      ));\n      importAdder.writeFixes(changes);\n    }\n  }\n}\nfunction tryGetConstraintFromDiagnosticMessage(messageText) {\n  const [, constraint] = flattenDiagnosticMessageText(messageText, \"\\n\", 0).match(/`extends (.*)`/) || [];\n  return constraint;\n}\nfunction tryGetConstraintType(checker, node) {\n  if (isTypeNode(node.parent)) {\n    return checker.getTypeArgumentConstraint(node.parent);\n  }\n  const contextualType = isExpression(node) ? checker.getContextualType(node) : void 0;\n  return contextualType || checker.getTypeAtLocation(node);\n}\n\n// src/services/codefixes/fixOverrideModifier.ts\nvar fixName = \"fixOverrideModifier\";\nvar fixAddOverrideId = \"fixAddOverrideModifier\";\nvar fixRemoveOverrideId = \"fixRemoveOverrideModifier\";\nvar errorCodes21 = [\n  Diagnostics.This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0.code,\n  Diagnostics.This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another_class.code,\n  Diagnostics.This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared_in_the_base_class_0.code,\n  Diagnostics.This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0.code,\n  Diagnostics.This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0.code,\n  Diagnostics.This_member_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0.code,\n  Diagnostics.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_extend_another_class.code,\n  Diagnostics.This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0.code,\n  Diagnostics.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0.code\n];\nvar errorCodeFixIdMap = {\n  // case #1:\n  [Diagnostics.This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0.code]: {\n    descriptions: Diagnostics.Add_override_modifier,\n    fixId: fixAddOverrideId,\n    fixAllDescriptions: Diagnostics.Add_all_missing_override_modifiers\n  },\n  [Diagnostics.This_member_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0.code]: {\n    descriptions: Diagnostics.Add_override_modifier,\n    fixId: fixAddOverrideId,\n    fixAllDescriptions: Diagnostics.Add_all_missing_override_modifiers\n  },\n  // case #2:\n  [Diagnostics.This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another_class.code]: {\n    descriptions: Diagnostics.Remove_override_modifier,\n    fixId: fixRemoveOverrideId,\n    fixAllDescriptions: Diagnostics.Remove_all_unnecessary_override_modifiers\n  },\n  [Diagnostics.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_extend_another_class.code]: {\n    descriptions: Diagnostics.Remove_override_modifier,\n    fixId: fixRemoveOverrideId,\n    fixAllDescriptions: Diagnostics.Remove_override_modifier\n  },\n  // case #3:\n  [Diagnostics.This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0.code]: {\n    descriptions: Diagnostics.Add_override_modifier,\n    fixId: fixAddOverrideId,\n    fixAllDescriptions: Diagnostics.Add_all_missing_override_modifiers\n  },\n  [Diagnostics.This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0.code]: {\n    descriptions: Diagnostics.Add_override_modifier,\n    fixId: fixAddOverrideId,\n    fixAllDescriptions: Diagnostics.Add_all_missing_override_modifiers\n  },\n  // case #4:\n  [Diagnostics.This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared_in_the_base_class_0.code]: {\n    descriptions: Diagnostics.Add_override_modifier,\n    fixId: fixAddOverrideId,\n    fixAllDescriptions: Diagnostics.Remove_all_unnecessary_override_modifiers\n  },\n  // case #5:\n  [Diagnostics.This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0.code]: {\n    descriptions: Diagnostics.Remove_override_modifier,\n    fixId: fixRemoveOverrideId,\n    fixAllDescriptions: Diagnostics.Remove_all_unnecessary_override_modifiers\n  },\n  [Diagnostics.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0.code]: {\n    descriptions: Diagnostics.Remove_override_modifier,\n    fixId: fixRemoveOverrideId,\n    fixAllDescriptions: Diagnostics.Remove_all_unnecessary_override_modifiers\n  }\n};\nregisterCodeFix({\n  errorCodes: errorCodes21,\n  getCodeActions: function getCodeActionsToFixOverrideModifierIssues(context) {\n    const { errorCode, span } = context;\n    const info = errorCodeFixIdMap[errorCode];\n    if (!info) return emptyArray;\n    const { descriptions, fixId: fixId56, fixAllDescriptions } = info;\n    const changes = ts_textChanges_exports.ChangeTracker.with(context, (changes2) => dispatchChanges(changes2, context, errorCode, span.start));\n    return [\n      createCodeFixActionMaybeFixAll(fixName, changes, descriptions, fixId56, fixAllDescriptions)\n    ];\n  },\n  fixIds: [fixName, fixAddOverrideId, fixRemoveOverrideId],\n  getAllCodeActions: (context) => codeFixAll(context, errorCodes21, (changes, diag2) => {\n    const { code, start } = diag2;\n    const info = errorCodeFixIdMap[code];\n    if (!info || info.fixId !== context.fixId) {\n      return;\n    }\n    dispatchChanges(changes, context, code, start);\n  })\n});\nfunction dispatchChanges(changeTracker, context, errorCode, pos) {\n  switch (errorCode) {\n    case Diagnostics.This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0.code:\n    case Diagnostics.This_member_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0.code:\n    case Diagnostics.This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared_in_the_base_class_0.code:\n    case Diagnostics.This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0.code:\n    case Diagnostics.This_parameter_property_must_have_a_JSDoc_comment_with_an_override_tag_because_it_overrides_a_member_in_the_base_class_0.code:\n      return doAddOverrideModifierChange(changeTracker, context.sourceFile, pos);\n    case Diagnostics.This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0.code:\n    case Diagnostics.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0.code:\n    case Diagnostics.This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another_class.code:\n    case Diagnostics.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_its_containing_class_0_does_not_extend_another_class.code:\n      return doRemoveOverrideModifierChange(changeTracker, context.sourceFile, pos);\n    default:\n      Debug.fail(\"Unexpected error code: \" + errorCode);\n  }\n}\nfunction doAddOverrideModifierChange(changeTracker, sourceFile, pos) {\n  const classElement = findContainerClassElementLike(sourceFile, pos);\n  if (isSourceFileJS(sourceFile)) {\n    changeTracker.addJSDocTags(sourceFile, classElement, [factory.createJSDocOverrideTag(factory.createIdentifier(\"override\"))]);\n    return;\n  }\n  const modifiers = classElement.modifiers || emptyArray;\n  const staticModifier = find(modifiers, isStaticModifier);\n  const abstractModifier = find(modifiers, isAbstractModifier);\n  const accessibilityModifier = find(modifiers, (m) => isAccessibilityModifier(m.kind));\n  const lastDecorator = findLast(modifiers, isDecorator);\n  const modifierPos = abstractModifier ? abstractModifier.end : staticModifier ? staticModifier.end : accessibilityModifier ? accessibilityModifier.end : lastDecorator ? skipTrivia(sourceFile.text, lastDecorator.end) : classElement.getStart(sourceFile);\n  const options = accessibilityModifier || staticModifier || abstractModifier ? { prefix: \" \" } : { suffix: \" \" };\n  changeTracker.insertModifierAt(sourceFile, modifierPos, 164 /* OverrideKeyword */, options);\n}\nfunction doRemoveOverrideModifierChange(changeTracker, sourceFile, pos) {\n  const classElement = findContainerClassElementLike(sourceFile, pos);\n  if (isSourceFileJS(sourceFile)) {\n    changeTracker.filterJSDocTags(sourceFile, classElement, not(isJSDocOverrideTag));\n    return;\n  }\n  const overrideModifier = find(classElement.modifiers, isOverrideModifier);\n  Debug.assertIsDefined(overrideModifier);\n  changeTracker.deleteModifier(sourceFile, overrideModifier);\n}\nfunction isClassElementLikeHasJSDoc(node) {\n  switch (node.kind) {\n    case 177 /* Constructor */:\n    case 173 /* PropertyDeclaration */:\n    case 175 /* MethodDeclaration */:\n    case 178 /* GetAccessor */:\n    case 179 /* SetAccessor */:\n      return true;\n    case 170 /* Parameter */:\n      return isParameterPropertyDeclaration(node, node.parent);\n    default:\n      return false;\n  }\n}\nfunction findContainerClassElementLike(sourceFile, pos) {\n  const token = getTokenAtPosition(sourceFile, pos);\n  const classElement = findAncestor(token, (node) => {\n    if (isClassLike(node)) return \"quit\";\n    return isClassElementLikeHasJSDoc(node);\n  });\n  Debug.assert(classElement && isClassElementLikeHasJSDoc(classElement));\n  return classElement;\n}\n\n// src/services/codefixes/fixNoPropertyAccessFromIndexSignature.ts\nvar fixId19 = \"fixNoPropertyAccessFromIndexSignature\";\nvar errorCodes22 = [\n  Diagnostics.Property_0_comes_from_an_index_signature_so_it_must_be_accessed_with_0.code\n];\nregisterCodeFix({\n  errorCodes: errorCodes22,\n  fixIds: [fixId19],\n  getCodeActions(context) {\n    const { sourceFile, span, preferences } = context;\n    const property = getPropertyAccessExpression(sourceFile, span.start);\n    const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange14(t, context.sourceFile, property, preferences));\n    return [createCodeFixAction(fixId19, changes, [Diagnostics.Use_element_access_for_0, property.name.text], fixId19, Diagnostics.Use_element_access_for_all_undeclared_properties)];\n  },\n  getAllCodeActions: (context) => codeFixAll(context, errorCodes22, (changes, diag2) => doChange14(changes, diag2.file, getPropertyAccessExpression(diag2.file, diag2.start), context.preferences))\n});\nfunction doChange14(changes, sourceFile, node, preferences) {\n  const quotePreference = getQuotePreference(sourceFile, preferences);\n  const argumentsExpression = factory.createStringLiteral(node.name.text, quotePreference === 0 /* Single */);\n  changes.replaceNode(\n    sourceFile,\n    node,\n    isPropertyAccessChain(node) ? factory.createElementAccessChain(node.expression, node.questionDotToken, argumentsExpression) : factory.createElementAccessExpression(node.expression, argumentsExpression)\n  );\n}\nfunction getPropertyAccessExpression(sourceFile, pos) {\n  return cast(getTokenAtPosition(sourceFile, pos).parent, isPropertyAccessExpression);\n}\n\n// src/services/codefixes/fixImplicitThis.ts\nvar fixId20 = \"fixImplicitThis\";\nvar errorCodes23 = [Diagnostics.this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation.code];\nregisterCodeFix({\n  errorCodes: errorCodes23,\n  getCodeActions: function getCodeActionsToFixImplicitThis(context) {\n    const { sourceFile, program, span } = context;\n    let diagnostic;\n    const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => {\n      diagnostic = doChange15(t, sourceFile, span.start, program.getTypeChecker());\n    });\n    return diagnostic ? [createCodeFixAction(fixId20, changes, diagnostic, fixId20, Diagnostics.Fix_all_implicit_this_errors)] : emptyArray;\n  },\n  fixIds: [fixId20],\n  getAllCodeActions: (context) => codeFixAll(context, errorCodes23, (changes, diag2) => {\n    doChange15(changes, diag2.file, diag2.start, context.program.getTypeChecker());\n  })\n});\nfunction doChange15(changes, sourceFile, pos, checker) {\n  const token = getTokenAtPosition(sourceFile, pos);\n  if (!isThis(token)) return void 0;\n  const fn = getThisContainer(\n    token,\n    /*includeArrowFunctions*/\n    false,\n    /*includeClassComputedPropertyName*/\n    false\n  );\n  if (!isFunctionDeclaration(fn) && !isFunctionExpression(fn)) return void 0;\n  if (!isSourceFile(getThisContainer(\n    fn,\n    /*includeArrowFunctions*/\n    false,\n    /*includeClassComputedPropertyName*/\n    false\n  ))) {\n    const fnKeyword = Debug.checkDefined(findChildOfKind(fn, 100 /* FunctionKeyword */, sourceFile));\n    const { name } = fn;\n    const body = Debug.checkDefined(fn.body);\n    if (isFunctionExpression(fn)) {\n      if (name && ts_FindAllReferences_exports.Core.isSymbolReferencedInFile(name, checker, sourceFile, body)) {\n        return void 0;\n      }\n      changes.delete(sourceFile, fnKeyword);\n      if (name) {\n        changes.delete(sourceFile, name);\n      }\n      changes.insertText(sourceFile, body.pos, \" =>\");\n      return [Diagnostics.Convert_function_expression_0_to_arrow_function, name ? name.text : ANONYMOUS];\n    } else {\n      changes.replaceNode(sourceFile, fnKeyword, factory.createToken(87 /* ConstKeyword */));\n      changes.insertText(sourceFile, name.end, \" = \");\n      changes.insertText(sourceFile, body.pos, \" =>\");\n      return [Diagnostics.Convert_function_declaration_0_to_arrow_function, name.text];\n    }\n  }\n}\n\n// src/services/codefixes/fixImportNonExportedMember.ts\nvar fixId21 = \"fixImportNonExportedMember\";\nvar errorCodes24 = [\n  Diagnostics.Module_0_declares_1_locally_but_it_is_not_exported.code\n];\nregisterCodeFix({\n  errorCodes: errorCodes24,\n  fixIds: [fixId21],\n  getCodeActions(context) {\n    const { sourceFile, span, program } = context;\n    const info = getInfo7(sourceFile, span.start, program);\n    if (info === void 0) return void 0;\n    const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange16(t, program, info));\n    return [createCodeFixAction(fixId21, changes, [Diagnostics.Export_0_from_module_1, info.exportName.node.text, info.moduleSpecifier], fixId21, Diagnostics.Export_all_referenced_locals)];\n  },\n  getAllCodeActions(context) {\n    const { program } = context;\n    return createCombinedCodeActions(ts_textChanges_exports.ChangeTracker.with(context, (changes) => {\n      const exports2 = /* @__PURE__ */ new Map();\n      eachDiagnostic(context, errorCodes24, (diag2) => {\n        const info = getInfo7(diag2.file, diag2.start, program);\n        if (info === void 0) return void 0;\n        const { exportName, node, moduleSourceFile } = info;\n        if (tryGetExportDeclaration(moduleSourceFile, exportName.isTypeOnly) === void 0 && canHaveExportModifier(node)) {\n          changes.insertExportModifier(moduleSourceFile, node);\n        } else {\n          const moduleExports = exports2.get(moduleSourceFile) || { typeOnlyExports: [], exports: [] };\n          if (exportName.isTypeOnly) {\n            moduleExports.typeOnlyExports.push(exportName);\n          } else {\n            moduleExports.exports.push(exportName);\n          }\n          exports2.set(moduleSourceFile, moduleExports);\n        }\n      });\n      exports2.forEach((moduleExports, moduleSourceFile) => {\n        const exportDeclaration = tryGetExportDeclaration(\n          moduleSourceFile,\n          /*isTypeOnly*/\n          true\n        );\n        if (exportDeclaration && exportDeclaration.isTypeOnly) {\n          doChanges(changes, program, moduleSourceFile, moduleExports.typeOnlyExports, exportDeclaration);\n          doChanges(changes, program, moduleSourceFile, moduleExports.exports, tryGetExportDeclaration(\n            moduleSourceFile,\n            /*isTypeOnly*/\n            false\n          ));\n        } else {\n          doChanges(changes, program, moduleSourceFile, [...moduleExports.exports, ...moduleExports.typeOnlyExports], exportDeclaration);\n        }\n      });\n    }));\n  }\n});\nfunction getInfo7(sourceFile, pos, program) {\n  var _a, _b;\n  const token = getTokenAtPosition(sourceFile, pos);\n  if (isIdentifier(token)) {\n    const importDeclaration = findAncestor(token, isImportDeclaration);\n    if (importDeclaration === void 0) return void 0;\n    const moduleSpecifier = isStringLiteral(importDeclaration.moduleSpecifier) ? importDeclaration.moduleSpecifier : void 0;\n    if (moduleSpecifier === void 0) return void 0;\n    const resolvedModule = (_a = program.getResolvedModuleFromModuleSpecifier(moduleSpecifier, sourceFile)) == null ? void 0 : _a.resolvedModule;\n    if (resolvedModule === void 0) return void 0;\n    const moduleSourceFile = program.getSourceFile(resolvedModule.resolvedFileName);\n    if (moduleSourceFile === void 0 || isSourceFileFromLibrary(program, moduleSourceFile)) return void 0;\n    const moduleSymbol = moduleSourceFile.symbol;\n    const locals = (_b = tryCast(moduleSymbol.valueDeclaration, canHaveLocals)) == null ? void 0 : _b.locals;\n    if (locals === void 0) return void 0;\n    const localSymbol = locals.get(token.escapedText);\n    if (localSymbol === void 0) return void 0;\n    const node = getNodeOfSymbol(localSymbol);\n    if (node === void 0) return void 0;\n    const exportName = { node: token, isTypeOnly: isTypeDeclaration(node) };\n    return { exportName, node, moduleSourceFile, moduleSpecifier: moduleSpecifier.text };\n  }\n  return void 0;\n}\nfunction doChange16(changes, program, { exportName, node, moduleSourceFile }) {\n  const exportDeclaration = tryGetExportDeclaration(moduleSourceFile, exportName.isTypeOnly);\n  if (exportDeclaration) {\n    updateExport(changes, program, moduleSourceFile, exportDeclaration, [exportName]);\n  } else if (canHaveExportModifier(node)) {\n    changes.insertExportModifier(moduleSourceFile, node);\n  } else {\n    createExport(changes, program, moduleSourceFile, [exportName]);\n  }\n}\nfunction doChanges(changes, program, sourceFile, moduleExports, node) {\n  if (length(moduleExports)) {\n    if (node) {\n      updateExport(changes, program, sourceFile, node, moduleExports);\n    } else {\n      createExport(changes, program, sourceFile, moduleExports);\n    }\n  }\n}\nfunction tryGetExportDeclaration(sourceFile, isTypeOnly) {\n  const predicate = (node) => isExportDeclaration(node) && (isTypeOnly && node.isTypeOnly || !node.isTypeOnly);\n  return findLast(sourceFile.statements, predicate);\n}\nfunction updateExport(changes, program, sourceFile, node, names) {\n  const namedExports = node.exportClause && isNamedExports(node.exportClause) ? node.exportClause.elements : factory.createNodeArray([]);\n  const allowTypeModifier = !node.isTypeOnly && !!(getIsolatedModules(program.getCompilerOptions()) || find(namedExports, (e) => e.isTypeOnly));\n  changes.replaceNode(\n    sourceFile,\n    node,\n    factory.updateExportDeclaration(\n      node,\n      node.modifiers,\n      node.isTypeOnly,\n      factory.createNamedExports(\n        factory.createNodeArray(\n          [...namedExports, ...createExportSpecifiers(names, allowTypeModifier)],\n          /*hasTrailingComma*/\n          namedExports.hasTrailingComma\n        )\n      ),\n      node.moduleSpecifier,\n      node.attributes\n    )\n  );\n}\nfunction createExport(changes, program, sourceFile, names) {\n  changes.insertNodeAtEndOfScope(sourceFile, sourceFile, factory.createExportDeclaration(\n    /*modifiers*/\n    void 0,\n    /*isTypeOnly*/\n    false,\n    factory.createNamedExports(createExportSpecifiers(\n      names,\n      /*allowTypeModifier*/\n      getIsolatedModules(program.getCompilerOptions())\n    )),\n    /*moduleSpecifier*/\n    void 0,\n    /*attributes*/\n    void 0\n  ));\n}\nfunction createExportSpecifiers(names, allowTypeModifier) {\n  return factory.createNodeArray(map(names, (n) => factory.createExportSpecifier(\n    allowTypeModifier && n.isTypeOnly,\n    /*propertyName*/\n    void 0,\n    n.node\n  )));\n}\nfunction getNodeOfSymbol(symbol) {\n  if (symbol.valueDeclaration === void 0) {\n    return firstOrUndefined(symbol.declarations);\n  }\n  const declaration = symbol.valueDeclaration;\n  const variableStatement = isVariableDeclaration(declaration) ? tryCast(declaration.parent.parent, isVariableStatement) : void 0;\n  return variableStatement && length(variableStatement.declarationList.declarations) === 1 ? variableStatement : declaration;\n}\n\n// src/services/codefixes/fixIncorrectNamedTupleSyntax.ts\nvar fixId22 = \"fixIncorrectNamedTupleSyntax\";\nvar errorCodes25 = [\n  Diagnostics.A_labeled_tuple_element_is_declared_as_optional_with_a_question_mark_after_the_name_and_before_the_colon_rather_than_after_the_type.code,\n  Diagnostics.A_labeled_tuple_element_is_declared_as_rest_with_a_before_the_name_rather_than_before_the_type.code\n];\nregisterCodeFix({\n  errorCodes: errorCodes25,\n  getCodeActions: function getCodeActionsToFixIncorrectNamedTupleSyntax(context) {\n    const { sourceFile, span } = context;\n    const namedTupleMember = getNamedTupleMember(sourceFile, span.start);\n    const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange17(t, sourceFile, namedTupleMember));\n    return [createCodeFixAction(fixId22, changes, Diagnostics.Move_labeled_tuple_element_modifiers_to_labels, fixId22, Diagnostics.Move_labeled_tuple_element_modifiers_to_labels)];\n  },\n  fixIds: [fixId22]\n});\nfunction getNamedTupleMember(sourceFile, pos) {\n  const token = getTokenAtPosition(sourceFile, pos);\n  return findAncestor(token, (t) => t.kind === 203 /* NamedTupleMember */);\n}\nfunction doChange17(changes, sourceFile, namedTupleMember) {\n  if (!namedTupleMember) {\n    return;\n  }\n  let unwrappedType = namedTupleMember.type;\n  let sawOptional = false;\n  let sawRest = false;\n  while (unwrappedType.kind === 191 /* OptionalType */ || unwrappedType.kind === 192 /* RestType */ || unwrappedType.kind === 197 /* ParenthesizedType */) {\n    if (unwrappedType.kind === 191 /* OptionalType */) {\n      sawOptional = true;\n    } else if (unwrappedType.kind === 192 /* RestType */) {\n      sawRest = true;\n    }\n    unwrappedType = unwrappedType.type;\n  }\n  const updated = factory.updateNamedTupleMember(\n    namedTupleMember,\n    namedTupleMember.dotDotDotToken || (sawRest ? factory.createToken(26 /* DotDotDotToken */) : void 0),\n    namedTupleMember.name,\n    namedTupleMember.questionToken || (sawOptional ? factory.createToken(58 /* QuestionToken */) : void 0),\n    unwrappedType\n  );\n  if (updated === namedTupleMember) {\n    return;\n  }\n  changes.replaceNode(sourceFile, namedTupleMember, updated);\n}\n\n// src/services/codefixes/fixSpelling.ts\nvar fixId23 = \"fixSpelling\";\nvar errorCodes26 = [\n  Diagnostics.Property_0_does_not_exist_on_type_1_Did_you_mean_2.code,\n  Diagnostics.Property_0_may_not_exist_on_type_1_Did_you_mean_2.code,\n  Diagnostics.Cannot_find_name_0_Did_you_mean_1.code,\n  Diagnostics.Could_not_find_name_0_Did_you_mean_1.code,\n  Diagnostics.Cannot_find_namespace_0_Did_you_mean_1.code,\n  Diagnostics.Cannot_find_name_0_Did_you_mean_the_instance_member_this_0.code,\n  Diagnostics.Cannot_find_name_0_Did_you_mean_the_static_member_1_0.code,\n  Diagnostics._0_has_no_exported_member_named_1_Did_you_mean_2.code,\n  Diagnostics.This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1.code,\n  Diagnostics.This_member_cannot_have_a_JSDoc_comment_with_an_override_tag_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1.code,\n  // for JSX class components\n  Diagnostics.No_overload_matches_this_call.code,\n  // for JSX FC\n  Diagnostics.Type_0_is_not_assignable_to_type_1.code\n];\nregisterCodeFix({\n  errorCodes: errorCodes26,\n  getCodeActions(context) {\n    const { sourceFile, errorCode } = context;\n    const info = getInfo8(sourceFile, context.span.start, context, errorCode);\n    if (!info) return void 0;\n    const { node, suggestedSymbol } = info;\n    const target = getEmitScriptTarget(context.host.getCompilationSettings());\n    const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange18(t, sourceFile, node, suggestedSymbol, target));\n    return [createCodeFixAction(\"spelling\", changes, [Diagnostics.Change_spelling_to_0, symbolName(suggestedSymbol)], fixId23, Diagnostics.Fix_all_detected_spelling_errors)];\n  },\n  fixIds: [fixId23],\n  getAllCodeActions: (context) => codeFixAll(context, errorCodes26, (changes, diag2) => {\n    const info = getInfo8(diag2.file, diag2.start, context, diag2.code);\n    const target = getEmitScriptTarget(context.host.getCompilationSettings());\n    if (info) doChange18(changes, context.sourceFile, info.node, info.suggestedSymbol, target);\n  })\n});\nfunction getInfo8(sourceFile, pos, context, errorCode) {\n  const node = getTokenAtPosition(sourceFile, pos);\n  const parent2 = node.parent;\n  if ((errorCode === Diagnostics.No_overload_matches_this_call.code || errorCode === Diagnostics.Type_0_is_not_assignable_to_type_1.code) && !isJsxAttribute(parent2)) return void 0;\n  const checker = context.program.getTypeChecker();\n  let suggestedSymbol;\n  if (isPropertyAccessExpression(parent2) && parent2.name === node) {\n    Debug.assert(isMemberName(node), \"Expected an identifier for spelling (property access)\");\n    let containingType = checker.getTypeAtLocation(parent2.expression);\n    if (parent2.flags & 64 /* OptionalChain */) {\n      containingType = checker.getNonNullableType(containingType);\n    }\n    suggestedSymbol = checker.getSuggestedSymbolForNonexistentProperty(node, containingType);\n  } else if (isBinaryExpression(parent2) && parent2.operatorToken.kind === 103 /* InKeyword */ && parent2.left === node && isPrivateIdentifier(node)) {\n    const receiverType = checker.getTypeAtLocation(parent2.right);\n    suggestedSymbol = checker.getSuggestedSymbolForNonexistentProperty(node, receiverType);\n  } else if (isQualifiedName(parent2) && parent2.right === node) {\n    const symbol = checker.getSymbolAtLocation(parent2.left);\n    if (symbol && symbol.flags & 1536 /* Module */) {\n      suggestedSymbol = checker.getSuggestedSymbolForNonexistentModule(parent2.right, symbol);\n    }\n  } else if (isImportSpecifier(parent2) && parent2.name === node) {\n    Debug.assertNode(node, isIdentifier, \"Expected an identifier for spelling (import)\");\n    const importDeclaration = findAncestor(node, isImportDeclaration);\n    const resolvedSourceFile = getResolvedSourceFileFromImportDeclaration(context, importDeclaration, sourceFile);\n    if (resolvedSourceFile && resolvedSourceFile.symbol) {\n      suggestedSymbol = checker.getSuggestedSymbolForNonexistentModule(node, resolvedSourceFile.symbol);\n    }\n  } else if (isJsxAttribute(parent2) && parent2.name === node) {\n    Debug.assertNode(node, isIdentifier, \"Expected an identifier for JSX attribute\");\n    const tag = findAncestor(node, isJsxOpeningLikeElement);\n    const props = checker.getContextualTypeForArgumentAtIndex(tag, 0);\n    suggestedSymbol = checker.getSuggestedSymbolForNonexistentJSXAttribute(node, props);\n  } else if (hasOverrideModifier(parent2) && isClassElement(parent2) && parent2.name === node) {\n    const baseDeclaration = findAncestor(node, isClassLike);\n    const baseTypeNode = baseDeclaration ? getEffectiveBaseTypeNode(baseDeclaration) : void 0;\n    const baseType = baseTypeNode ? checker.getTypeAtLocation(baseTypeNode) : void 0;\n    if (baseType) {\n      suggestedSymbol = checker.getSuggestedSymbolForNonexistentClassMember(getTextOfNode(node), baseType);\n    }\n  } else {\n    const meaning = getMeaningFromLocation(node);\n    const name = getTextOfNode(node);\n    Debug.assert(name !== void 0, \"name should be defined\");\n    suggestedSymbol = checker.getSuggestedSymbolForNonexistentSymbol(node, name, convertSemanticMeaningToSymbolFlags(meaning));\n  }\n  return suggestedSymbol === void 0 ? void 0 : { node, suggestedSymbol };\n}\nfunction doChange18(changes, sourceFile, node, suggestedSymbol, target) {\n  const suggestion = symbolName(suggestedSymbol);\n  if (!isIdentifierText(suggestion, target) && isPropertyAccessExpression(node.parent)) {\n    const valDecl = suggestedSymbol.valueDeclaration;\n    if (valDecl && isNamedDeclaration(valDecl) && isPrivateIdentifier(valDecl.name)) {\n      changes.replaceNode(sourceFile, node, factory.createIdentifier(suggestion));\n    } else {\n      changes.replaceNode(sourceFile, node.parent, factory.createElementAccessExpression(node.parent.expression, factory.createStringLiteral(suggestion)));\n    }\n  } else {\n    changes.replaceNode(sourceFile, node, factory.createIdentifier(suggestion));\n  }\n}\nfunction convertSemanticMeaningToSymbolFlags(meaning) {\n  let flags = 0;\n  if (meaning & 4 /* Namespace */) {\n    flags |= 1920 /* Namespace */;\n  }\n  if (meaning & 2 /* Type */) {\n    flags |= 788968 /* Type */;\n  }\n  if (meaning & 1 /* Value */) {\n    flags |= 111551 /* Value */;\n  }\n  return flags;\n}\nfunction getResolvedSourceFileFromImportDeclaration(context, importDeclaration, importingFile) {\n  var _a;\n  if (!importDeclaration || !isStringLiteralLike(importDeclaration.moduleSpecifier)) return void 0;\n  const resolvedModule = (_a = context.program.getResolvedModuleFromModuleSpecifier(importDeclaration.moduleSpecifier, importingFile)) == null ? void 0 : _a.resolvedModule;\n  if (!resolvedModule) return void 0;\n  return context.program.getSourceFile(resolvedModule.resolvedFileName);\n}\n\n// src/services/codefixes/returnValueCorrect.ts\nvar fixId24 = \"returnValueCorrect\";\nvar fixIdAddReturnStatement = \"fixAddReturnStatement\";\nvar fixRemoveBracesFromArrowFunctionBody = \"fixRemoveBracesFromArrowFunctionBody\";\nvar fixIdWrapTheBlockWithParen = \"fixWrapTheBlockWithParen\";\nvar errorCodes27 = [\n  Diagnostics.A_function_whose_declared_type_is_neither_undefined_void_nor_any_must_return_a_value.code,\n  Diagnostics.Type_0_is_not_assignable_to_type_1.code,\n  Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code\n];\nregisterCodeFix({\n  errorCodes: errorCodes27,\n  fixIds: [fixIdAddReturnStatement, fixRemoveBracesFromArrowFunctionBody, fixIdWrapTheBlockWithParen],\n  getCodeActions: function getCodeActionsToCorrectReturnValue(context) {\n    const { program, sourceFile, span: { start }, errorCode } = context;\n    const info = getInfo9(program.getTypeChecker(), sourceFile, start, errorCode);\n    if (!info) return void 0;\n    if (info.kind === 0 /* MissingReturnStatement */) {\n      return append(\n        [getActionForfixAddReturnStatement(context, info.expression, info.statement)],\n        isArrowFunction(info.declaration) ? getActionForFixRemoveBracesFromArrowFunctionBody(context, info.declaration, info.expression, info.commentSource) : void 0\n      );\n    } else {\n      return [getActionForfixWrapTheBlockWithParen(context, info.declaration, info.expression)];\n    }\n  },\n  getAllCodeActions: (context) => codeFixAll(context, errorCodes27, (changes, diag2) => {\n    const info = getInfo9(context.program.getTypeChecker(), diag2.file, diag2.start, diag2.code);\n    if (!info) return void 0;\n    switch (context.fixId) {\n      case fixIdAddReturnStatement:\n        addReturnStatement(changes, diag2.file, info.expression, info.statement);\n        break;\n      case fixRemoveBracesFromArrowFunctionBody:\n        if (!isArrowFunction(info.declaration)) return void 0;\n        removeBlockBodyBrace(\n          changes,\n          diag2.file,\n          info.declaration,\n          info.expression,\n          info.commentSource,\n          /*withParen*/\n          false\n        );\n        break;\n      case fixIdWrapTheBlockWithParen:\n        if (!isArrowFunction(info.declaration)) return void 0;\n        wrapBlockWithParen(changes, diag2.file, info.declaration, info.expression);\n        break;\n      default:\n        Debug.fail(JSON.stringify(context.fixId));\n    }\n  })\n});\nfunction createObjectTypeFromLabeledExpression(checker, label, expression) {\n  const member = checker.createSymbol(4 /* Property */, label.escapedText);\n  member.links.type = checker.getTypeAtLocation(expression);\n  const members = createSymbolTable([member]);\n  return checker.createAnonymousType(\n    /*symbol*/\n    void 0,\n    members,\n    [],\n    [],\n    []\n  );\n}\nfunction getFixInfo(checker, declaration, expectType, isFunctionType) {\n  if (!declaration.body || !isBlock(declaration.body) || length(declaration.body.statements) !== 1) return void 0;\n  const firstStatement = first(declaration.body.statements);\n  if (isExpressionStatement(firstStatement) && checkFixedAssignableTo(checker, declaration, checker.getTypeAtLocation(firstStatement.expression), expectType, isFunctionType)) {\n    return {\n      declaration,\n      kind: 0 /* MissingReturnStatement */,\n      expression: firstStatement.expression,\n      statement: firstStatement,\n      commentSource: firstStatement.expression\n    };\n  } else if (isLabeledStatement(firstStatement) && isExpressionStatement(firstStatement.statement)) {\n    const node = factory.createObjectLiteralExpression([factory.createPropertyAssignment(firstStatement.label, firstStatement.statement.expression)]);\n    const nodeType = createObjectTypeFromLabeledExpression(checker, firstStatement.label, firstStatement.statement.expression);\n    if (checkFixedAssignableTo(checker, declaration, nodeType, expectType, isFunctionType)) {\n      return isArrowFunction(declaration) ? {\n        declaration,\n        kind: 1 /* MissingParentheses */,\n        expression: node,\n        statement: firstStatement,\n        commentSource: firstStatement.statement.expression\n      } : {\n        declaration,\n        kind: 0 /* MissingReturnStatement */,\n        expression: node,\n        statement: firstStatement,\n        commentSource: firstStatement.statement.expression\n      };\n    }\n  } else if (isBlock(firstStatement) && length(firstStatement.statements) === 1) {\n    const firstBlockStatement = first(firstStatement.statements);\n    if (isLabeledStatement(firstBlockStatement) && isExpressionStatement(firstBlockStatement.statement)) {\n      const node = factory.createObjectLiteralExpression([factory.createPropertyAssignment(firstBlockStatement.label, firstBlockStatement.statement.expression)]);\n      const nodeType = createObjectTypeFromLabeledExpression(checker, firstBlockStatement.label, firstBlockStatement.statement.expression);\n      if (checkFixedAssignableTo(checker, declaration, nodeType, expectType, isFunctionType)) {\n        return {\n          declaration,\n          kind: 0 /* MissingReturnStatement */,\n          expression: node,\n          statement: firstStatement,\n          commentSource: firstBlockStatement\n        };\n      }\n    }\n  }\n  return void 0;\n}\nfunction checkFixedAssignableTo(checker, declaration, exprType, type, isFunctionType) {\n  if (isFunctionType) {\n    const sig = checker.getSignatureFromDeclaration(declaration);\n    if (sig) {\n      if (hasSyntacticModifier(declaration, 1024 /* Async */)) {\n        exprType = checker.createPromiseType(exprType);\n      }\n      const newSig = checker.createSignature(\n        declaration,\n        sig.typeParameters,\n        sig.thisParameter,\n        sig.parameters,\n        exprType,\n        /*typePredicate*/\n        void 0,\n        sig.minArgumentCount,\n        sig.flags\n      );\n      exprType = checker.createAnonymousType(\n        /*symbol*/\n        void 0,\n        createSymbolTable(),\n        [newSig],\n        [],\n        []\n      );\n    } else {\n      exprType = checker.getAnyType();\n    }\n  }\n  return checker.isTypeAssignableTo(exprType, type);\n}\nfunction getInfo9(checker, sourceFile, position, errorCode) {\n  const node = getTokenAtPosition(sourceFile, position);\n  if (!node.parent) return void 0;\n  const declaration = findAncestor(node.parent, isFunctionLikeDeclaration);\n  switch (errorCode) {\n    case Diagnostics.A_function_whose_declared_type_is_neither_undefined_void_nor_any_must_return_a_value.code:\n      if (!declaration || !declaration.body || !declaration.type || !rangeContainsRange(declaration.type, node)) return void 0;\n      return getFixInfo(\n        checker,\n        declaration,\n        checker.getTypeFromTypeNode(declaration.type),\n        /*isFunctionType*/\n        false\n      );\n    case Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code:\n      if (!declaration || !isCallExpression(declaration.parent) || !declaration.body) return void 0;\n      const pos = declaration.parent.arguments.indexOf(declaration);\n      if (pos === -1) return void 0;\n      const type = checker.getContextualTypeForArgumentAtIndex(declaration.parent, pos);\n      if (!type) return void 0;\n      return getFixInfo(\n        checker,\n        declaration,\n        type,\n        /*isFunctionType*/\n        true\n      );\n    case Diagnostics.Type_0_is_not_assignable_to_type_1.code:\n      if (!isDeclarationName(node) || !isVariableLike(node.parent) && !isJsxAttribute(node.parent)) return void 0;\n      const initializer = getVariableLikeInitializer(node.parent);\n      if (!initializer || !isFunctionLikeDeclaration(initializer) || !initializer.body) return void 0;\n      return getFixInfo(\n        checker,\n        initializer,\n        checker.getTypeAtLocation(node.parent),\n        /*isFunctionType*/\n        true\n      );\n  }\n  return void 0;\n}\nfunction getVariableLikeInitializer(declaration) {\n  switch (declaration.kind) {\n    case 261 /* VariableDeclaration */:\n    case 170 /* Parameter */:\n    case 209 /* BindingElement */:\n    case 173 /* PropertyDeclaration */:\n    case 304 /* PropertyAssignment */:\n      return declaration.initializer;\n    case 292 /* JsxAttribute */:\n      return declaration.initializer && (isJsxExpression(declaration.initializer) ? declaration.initializer.expression : void 0);\n    case 305 /* ShorthandPropertyAssignment */:\n    case 172 /* PropertySignature */:\n    case 307 /* EnumMember */:\n    case 349 /* JSDocPropertyTag */:\n    case 342 /* JSDocParameterTag */:\n      return void 0;\n  }\n}\nfunction addReturnStatement(changes, sourceFile, expression, statement) {\n  suppressLeadingAndTrailingTrivia(expression);\n  const probablyNeedSemi = probablyUsesSemicolons(sourceFile);\n  changes.replaceNode(sourceFile, statement, factory.createReturnStatement(expression), {\n    leadingTriviaOption: ts_textChanges_exports.LeadingTriviaOption.Exclude,\n    trailingTriviaOption: ts_textChanges_exports.TrailingTriviaOption.Exclude,\n    suffix: probablyNeedSemi ? \";\" : void 0\n  });\n}\nfunction removeBlockBodyBrace(changes, sourceFile, declaration, expression, commentSource, withParen) {\n  const newBody = withParen || needsParentheses(expression) ? factory.createParenthesizedExpression(expression) : expression;\n  suppressLeadingAndTrailingTrivia(commentSource);\n  copyComments(commentSource, newBody);\n  changes.replaceNode(sourceFile, declaration.body, newBody);\n}\nfunction wrapBlockWithParen(changes, sourceFile, declaration, expression) {\n  changes.replaceNode(sourceFile, declaration.body, factory.createParenthesizedExpression(expression));\n}\nfunction getActionForfixAddReturnStatement(context, expression, statement) {\n  const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => addReturnStatement(t, context.sourceFile, expression, statement));\n  return createCodeFixAction(fixId24, changes, Diagnostics.Add_a_return_statement, fixIdAddReturnStatement, Diagnostics.Add_all_missing_return_statement);\n}\nfunction getActionForFixRemoveBracesFromArrowFunctionBody(context, declaration, expression, commentSource) {\n  const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => removeBlockBodyBrace(\n    t,\n    context.sourceFile,\n    declaration,\n    expression,\n    commentSource,\n    /*withParen*/\n    false\n  ));\n  return createCodeFixAction(fixId24, changes, Diagnostics.Remove_braces_from_arrow_function_body, fixRemoveBracesFromArrowFunctionBody, Diagnostics.Remove_braces_from_all_arrow_function_bodies_with_relevant_issues);\n}\nfunction getActionForfixWrapTheBlockWithParen(context, declaration, expression) {\n  const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => wrapBlockWithParen(t, context.sourceFile, declaration, expression));\n  return createCodeFixAction(fixId24, changes, Diagnostics.Wrap_the_following_body_with_parentheses_which_should_be_an_object_literal, fixIdWrapTheBlockWithParen, Diagnostics.Wrap_all_object_literal_with_parentheses);\n}\n\n// src/services/codefixes/fixAddMissingMember.ts\nvar fixMissingMember = \"fixMissingMember\";\nvar fixMissingProperties = \"fixMissingProperties\";\nvar fixMissingAttributes = \"fixMissingAttributes\";\nvar fixMissingFunctionDeclaration = \"fixMissingFunctionDeclaration\";\nvar errorCodes28 = [\n  Diagnostics.Property_0_does_not_exist_on_type_1.code,\n  Diagnostics.Property_0_does_not_exist_on_type_1_Did_you_mean_2.code,\n  Diagnostics.Property_0_is_missing_in_type_1_but_required_in_type_2.code,\n  Diagnostics.Type_0_is_missing_the_following_properties_from_type_1_Colon_2.code,\n  Diagnostics.Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more.code,\n  Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code,\n  Diagnostics.Cannot_find_name_0.code,\n  Diagnostics.Type_0_does_not_satisfy_the_expected_type_1.code\n];\nregisterCodeFix({\n  errorCodes: errorCodes28,\n  getCodeActions(context) {\n    const typeChecker = context.program.getTypeChecker();\n    const info = getInfo10(context.sourceFile, context.span.start, context.errorCode, typeChecker, context.program);\n    if (!info) {\n      return void 0;\n    }\n    if (info.kind === 3 /* ObjectLiteral */) {\n      const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => addObjectLiteralProperties(t, context, info));\n      return [createCodeFixAction(fixMissingProperties, changes, Diagnostics.Add_missing_properties, fixMissingProperties, Diagnostics.Add_all_missing_properties)];\n    }\n    if (info.kind === 4 /* JsxAttributes */) {\n      const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => addJsxAttributes(t, context, info));\n      return [createCodeFixAction(fixMissingAttributes, changes, Diagnostics.Add_missing_attributes, fixMissingAttributes, Diagnostics.Add_all_missing_attributes)];\n    }\n    if (info.kind === 2 /* Function */ || info.kind === 5 /* Signature */) {\n      const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => addFunctionDeclaration(t, context, info));\n      return [createCodeFixAction(fixMissingFunctionDeclaration, changes, [Diagnostics.Add_missing_function_declaration_0, info.token.text], fixMissingFunctionDeclaration, Diagnostics.Add_all_missing_function_declarations)];\n    }\n    if (info.kind === 1 /* Enum */) {\n      const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => addEnumMemberDeclaration(t, context.program.getTypeChecker(), info));\n      return [createCodeFixAction(fixMissingMember, changes, [Diagnostics.Add_missing_enum_member_0, info.token.text], fixMissingMember, Diagnostics.Add_all_missing_members)];\n    }\n    return concatenate(getActionsForMissingMethodDeclaration(context, info), getActionsForMissingMemberDeclaration(context, info));\n  },\n  fixIds: [fixMissingMember, fixMissingFunctionDeclaration, fixMissingProperties, fixMissingAttributes],\n  getAllCodeActions: (context) => {\n    const { program, fixId: fixId56 } = context;\n    const checker = program.getTypeChecker();\n    const seen = /* @__PURE__ */ new Set();\n    const typeDeclToMembers = /* @__PURE__ */ new Map();\n    return createCombinedCodeActions(ts_textChanges_exports.ChangeTracker.with(context, (changes) => {\n      eachDiagnostic(context, errorCodes28, (diag2) => {\n        const info = getInfo10(diag2.file, diag2.start, diag2.code, checker, context.program);\n        if (info === void 0) return;\n        const nodeId = getNodeId(info.parentDeclaration) + \"#\" + (info.kind === 3 /* ObjectLiteral */ ? info.identifier || getNodeId(info.token) : info.token.text);\n        if (!addToSeen(seen, nodeId)) return;\n        if (fixId56 === fixMissingFunctionDeclaration && (info.kind === 2 /* Function */ || info.kind === 5 /* Signature */)) {\n          addFunctionDeclaration(changes, context, info);\n        } else if (fixId56 === fixMissingProperties && info.kind === 3 /* ObjectLiteral */) {\n          addObjectLiteralProperties(changes, context, info);\n        } else if (fixId56 === fixMissingAttributes && info.kind === 4 /* JsxAttributes */) {\n          addJsxAttributes(changes, context, info);\n        } else {\n          if (info.kind === 1 /* Enum */) {\n            addEnumMemberDeclaration(changes, checker, info);\n          }\n          if (info.kind === 0 /* TypeLikeDeclaration */) {\n            const { parentDeclaration, token } = info;\n            const infos = getOrUpdate(typeDeclToMembers, parentDeclaration, () => []);\n            if (!infos.some((i) => i.token.text === token.text)) {\n              infos.push(info);\n            }\n          }\n        }\n      });\n      typeDeclToMembers.forEach((infos, declaration) => {\n        const supers = isTypeLiteralNode(declaration) ? void 0 : getAllSupers(declaration, checker);\n        for (const info of infos) {\n          if (supers == null ? void 0 : supers.some((superClassOrInterface) => {\n            const superInfos = typeDeclToMembers.get(superClassOrInterface);\n            return !!superInfos && superInfos.some(({ token: token2 }) => token2.text === info.token.text);\n          })) continue;\n          const { parentDeclaration, declSourceFile, modifierFlags, token, call, isJSFile } = info;\n          if (call && !isPrivateIdentifier(token)) {\n            addMethodDeclaration(context, changes, call, token, modifierFlags & 256 /* Static */, parentDeclaration, declSourceFile);\n          } else {\n            if (isJSFile && !isInterfaceDeclaration(parentDeclaration) && !isTypeLiteralNode(parentDeclaration)) {\n              addMissingMemberInJs(changes, declSourceFile, parentDeclaration, token, !!(modifierFlags & 256 /* Static */));\n            } else {\n              const typeNode = getTypeNode2(checker, parentDeclaration, token);\n              addPropertyDeclaration(changes, declSourceFile, parentDeclaration, token.text, typeNode, modifierFlags & 256 /* Static */);\n            }\n          }\n        }\n      });\n    }));\n  }\n});\nfunction getInfo10(sourceFile, tokenPos, errorCode, checker, program) {\n  var _a, _b;\n  const token = getTokenAtPosition(sourceFile, tokenPos);\n  const parent2 = token.parent;\n  if (errorCode === Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code) {\n    if (!(token.kind === 19 /* OpenBraceToken */ && isObjectLiteralExpression(parent2) && isCallExpression(parent2.parent))) return void 0;\n    const argIndex = findIndex(parent2.parent.arguments, (arg) => arg === parent2);\n    if (argIndex < 0) return void 0;\n    const signature = checker.getResolvedSignature(parent2.parent);\n    if (!(signature && signature.declaration && signature.parameters[argIndex])) return void 0;\n    const param = signature.parameters[argIndex].valueDeclaration;\n    if (!(param && isParameter(param) && isIdentifier(param.name))) return void 0;\n    const properties = arrayFrom(checker.getUnmatchedProperties(\n      checker.getTypeAtLocation(parent2),\n      checker.getParameterType(signature, argIndex).getNonNullableType(),\n      /*requireOptionalProperties*/\n      false,\n      /*matchDiscriminantProperties*/\n      false\n    ));\n    if (!length(properties)) return void 0;\n    return { kind: 3 /* ObjectLiteral */, token: param.name, identifier: param.name.text, properties, parentDeclaration: parent2 };\n  }\n  if (token.kind === 19 /* OpenBraceToken */ || isSatisfiesExpression(parent2) || isReturnStatement(parent2)) {\n    const expression = (isSatisfiesExpression(parent2) || isReturnStatement(parent2)) && parent2.expression ? parent2.expression : parent2;\n    if (isObjectLiteralExpression(expression)) {\n      const targetType = isSatisfiesExpression(parent2) ? checker.getTypeFromTypeNode(parent2.type) : checker.getContextualType(expression) || checker.getTypeAtLocation(expression);\n      const properties = arrayFrom(checker.getUnmatchedProperties(\n        checker.getTypeAtLocation(parent2),\n        targetType.getNonNullableType(),\n        /*requireOptionalProperties*/\n        false,\n        /*matchDiscriminantProperties*/\n        false\n      ));\n      if (!length(properties)) return void 0;\n      return { kind: 3 /* ObjectLiteral */, token: parent2, identifier: void 0, properties, parentDeclaration: expression, indentation: isReturnStatement(expression.parent) || isYieldExpression(expression.parent) ? 0 : void 0 };\n    }\n  }\n  if (!isMemberName(token)) return void 0;\n  if (isIdentifier(token) && hasInitializer(parent2) && parent2.initializer && isObjectLiteralExpression(parent2.initializer)) {\n    const targetType = (_a = checker.getContextualType(token) || checker.getTypeAtLocation(token)) == null ? void 0 : _a.getNonNullableType();\n    const properties = arrayFrom(checker.getUnmatchedProperties(\n      checker.getTypeAtLocation(parent2.initializer),\n      targetType,\n      /*requireOptionalProperties*/\n      false,\n      /*matchDiscriminantProperties*/\n      false\n    ));\n    if (!length(properties)) return void 0;\n    return { kind: 3 /* ObjectLiteral */, token, identifier: token.text, properties, parentDeclaration: parent2.initializer };\n  }\n  if (isIdentifier(token) && isJsxOpeningLikeElement(token.parent)) {\n    const target = getEmitScriptTarget(program.getCompilerOptions());\n    const attributes = getUnmatchedAttributes(checker, target, token.parent);\n    if (!length(attributes)) return void 0;\n    return { kind: 4 /* JsxAttributes */, token, attributes, parentDeclaration: token.parent };\n  }\n  if (isIdentifier(token)) {\n    const type = (_b = checker.getContextualType(token)) == null ? void 0 : _b.getNonNullableType();\n    if (type && getObjectFlags(type) & 16 /* Anonymous */) {\n      const signature = firstOrUndefined(checker.getSignaturesOfType(type, 0 /* Call */));\n      if (signature === void 0) return void 0;\n      return { kind: 5 /* Signature */, token, signature, sourceFile, parentDeclaration: findScope(token) };\n    }\n    if (isCallExpression(parent2) && parent2.expression === token) {\n      return { kind: 2 /* Function */, token, call: parent2, sourceFile, modifierFlags: 0 /* None */, parentDeclaration: findScope(token) };\n    }\n  }\n  if (!isPropertyAccessExpression(parent2)) return void 0;\n  const leftExpressionType = skipConstraint(checker.getTypeAtLocation(parent2.expression));\n  const symbol = leftExpressionType.symbol;\n  if (!symbol || !symbol.declarations) return void 0;\n  if (isIdentifier(token) && isCallExpression(parent2.parent)) {\n    const moduleDeclaration = find(symbol.declarations, isModuleDeclaration);\n    const moduleDeclarationSourceFile = moduleDeclaration == null ? void 0 : moduleDeclaration.getSourceFile();\n    if (moduleDeclaration && moduleDeclarationSourceFile && !isSourceFileFromLibrary(program, moduleDeclarationSourceFile)) {\n      return { kind: 2 /* Function */, token, call: parent2.parent, sourceFile: moduleDeclarationSourceFile, modifierFlags: 32 /* Export */, parentDeclaration: moduleDeclaration };\n    }\n    const moduleSourceFile = find(symbol.declarations, isSourceFile);\n    if (sourceFile.commonJsModuleIndicator) return void 0;\n    if (moduleSourceFile && !isSourceFileFromLibrary(program, moduleSourceFile)) {\n      return { kind: 2 /* Function */, token, call: parent2.parent, sourceFile: moduleSourceFile, modifierFlags: 32 /* Export */, parentDeclaration: moduleSourceFile };\n    }\n  }\n  const classDeclaration = find(symbol.declarations, isClassLike);\n  if (!classDeclaration && isPrivateIdentifier(token)) return void 0;\n  const declaration = classDeclaration || find(symbol.declarations, (d) => isInterfaceDeclaration(d) || isTypeLiteralNode(d));\n  if (declaration && !isSourceFileFromLibrary(program, declaration.getSourceFile())) {\n    const makeStatic = !isTypeLiteralNode(declaration) && (leftExpressionType.target || leftExpressionType) !== checker.getDeclaredTypeOfSymbol(symbol);\n    if (makeStatic && (isPrivateIdentifier(token) || isInterfaceDeclaration(declaration))) return void 0;\n    const declSourceFile = declaration.getSourceFile();\n    const modifierFlags = isTypeLiteralNode(declaration) ? 0 /* None */ : (makeStatic ? 256 /* Static */ : 0 /* None */) | (startsWithUnderscore(token.text) ? 2 /* Private */ : 0 /* None */);\n    const isJSFile = isSourceFileJS(declSourceFile);\n    const call = tryCast(parent2.parent, isCallExpression);\n    return { kind: 0 /* TypeLikeDeclaration */, token, call, modifierFlags, parentDeclaration: declaration, declSourceFile, isJSFile };\n  }\n  const enumDeclaration = find(symbol.declarations, isEnumDeclaration);\n  if (enumDeclaration && !(leftExpressionType.flags & 1056 /* EnumLike */) && !isPrivateIdentifier(token) && !isSourceFileFromLibrary(program, enumDeclaration.getSourceFile())) {\n    return { kind: 1 /* Enum */, token, parentDeclaration: enumDeclaration };\n  }\n  return void 0;\n}\nfunction getActionsForMissingMemberDeclaration(context, info) {\n  return info.isJSFile ? singleElementArray(createActionForAddMissingMemberInJavascriptFile(context, info)) : createActionsForAddMissingMemberInTypeScriptFile(context, info);\n}\nfunction createActionForAddMissingMemberInJavascriptFile(context, { parentDeclaration, declSourceFile, modifierFlags, token }) {\n  if (isInterfaceDeclaration(parentDeclaration) || isTypeLiteralNode(parentDeclaration)) {\n    return void 0;\n  }\n  const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => addMissingMemberInJs(t, declSourceFile, parentDeclaration, token, !!(modifierFlags & 256 /* Static */)));\n  if (changes.length === 0) {\n    return void 0;\n  }\n  const diagnostic = modifierFlags & 256 /* Static */ ? Diagnostics.Initialize_static_property_0 : isPrivateIdentifier(token) ? Diagnostics.Declare_a_private_field_named_0 : Diagnostics.Initialize_property_0_in_the_constructor;\n  return createCodeFixAction(fixMissingMember, changes, [diagnostic, token.text], fixMissingMember, Diagnostics.Add_all_missing_members);\n}\nfunction addMissingMemberInJs(changeTracker, sourceFile, classDeclaration, token, makeStatic) {\n  const tokenName = token.text;\n  if (makeStatic) {\n    if (classDeclaration.kind === 232 /* ClassExpression */) {\n      return;\n    }\n    const className = classDeclaration.name.getText();\n    const staticInitialization = initializePropertyToUndefined(factory.createIdentifier(className), tokenName);\n    changeTracker.insertNodeAfter(sourceFile, classDeclaration, staticInitialization);\n  } else if (isPrivateIdentifier(token)) {\n    const property = factory.createPropertyDeclaration(\n      /*modifiers*/\n      void 0,\n      tokenName,\n      /*questionOrExclamationToken*/\n      void 0,\n      /*type*/\n      void 0,\n      /*initializer*/\n      void 0\n    );\n    const lastProp = getNodeToInsertPropertyAfter(classDeclaration);\n    if (lastProp) {\n      changeTracker.insertNodeAfter(sourceFile, lastProp, property);\n    } else {\n      changeTracker.insertMemberAtStart(sourceFile, classDeclaration, property);\n    }\n  } else {\n    const classConstructor = getFirstConstructorWithBody(classDeclaration);\n    if (!classConstructor) {\n      return;\n    }\n    const propertyInitialization = initializePropertyToUndefined(factory.createThis(), tokenName);\n    changeTracker.insertNodeAtConstructorEnd(sourceFile, classConstructor, propertyInitialization);\n  }\n}\nfunction initializePropertyToUndefined(obj, propertyName) {\n  return factory.createExpressionStatement(factory.createAssignment(factory.createPropertyAccessExpression(obj, propertyName), createUndefined()));\n}\nfunction createActionsForAddMissingMemberInTypeScriptFile(context, { parentDeclaration, declSourceFile, modifierFlags, token }) {\n  const memberName = token.text;\n  const isStatic2 = modifierFlags & 256 /* Static */;\n  const typeNode = getTypeNode2(context.program.getTypeChecker(), parentDeclaration, token);\n  const addPropertyDeclarationChanges = (modifierFlags2) => ts_textChanges_exports.ChangeTracker.with(context, (t) => addPropertyDeclaration(t, declSourceFile, parentDeclaration, memberName, typeNode, modifierFlags2));\n  const actions2 = [createCodeFixAction(fixMissingMember, addPropertyDeclarationChanges(modifierFlags & 256 /* Static */), [isStatic2 ? Diagnostics.Declare_static_property_0 : Diagnostics.Declare_property_0, memberName], fixMissingMember, Diagnostics.Add_all_missing_members)];\n  if (isStatic2 || isPrivateIdentifier(token)) {\n    return actions2;\n  }\n  if (modifierFlags & 2 /* Private */) {\n    actions2.unshift(createCodeFixActionWithoutFixAll(fixMissingMember, addPropertyDeclarationChanges(2 /* Private */), [Diagnostics.Declare_private_property_0, memberName]));\n  }\n  actions2.push(createAddIndexSignatureAction(context, declSourceFile, parentDeclaration, token.text, typeNode));\n  return actions2;\n}\nfunction getTypeNode2(checker, node, token) {\n  let typeNode;\n  if (token.parent.parent.kind === 227 /* BinaryExpression */) {\n    const binaryExpression = token.parent.parent;\n    const otherExpression = token.parent === binaryExpression.left ? binaryExpression.right : binaryExpression.left;\n    const widenedType = checker.getWidenedType(checker.getBaseTypeOfLiteralType(checker.getTypeAtLocation(otherExpression)));\n    typeNode = checker.typeToTypeNode(widenedType, node, 1 /* NoTruncation */, 8 /* AllowUnresolvedNames */);\n  } else {\n    const contextualType = checker.getContextualType(token.parent);\n    typeNode = contextualType ? checker.typeToTypeNode(\n      contextualType,\n      /*enclosingDeclaration*/\n      void 0,\n      1 /* NoTruncation */,\n      8 /* AllowUnresolvedNames */\n    ) : void 0;\n  }\n  return typeNode || factory.createKeywordTypeNode(133 /* AnyKeyword */);\n}\nfunction addPropertyDeclaration(changeTracker, sourceFile, node, tokenName, typeNode, modifierFlags) {\n  const modifiers = modifierFlags ? factory.createNodeArray(factory.createModifiersFromModifierFlags(modifierFlags)) : void 0;\n  const property = isClassLike(node) ? factory.createPropertyDeclaration(\n    modifiers,\n    tokenName,\n    /*questionOrExclamationToken*/\n    void 0,\n    typeNode,\n    /*initializer*/\n    void 0\n  ) : factory.createPropertySignature(\n    /*modifiers*/\n    void 0,\n    tokenName,\n    /*questionToken*/\n    void 0,\n    typeNode\n  );\n  const lastProp = getNodeToInsertPropertyAfter(node);\n  if (lastProp) {\n    changeTracker.insertNodeAfter(sourceFile, lastProp, property);\n  } else {\n    changeTracker.insertMemberAtStart(sourceFile, node, property);\n  }\n}\nfunction getNodeToInsertPropertyAfter(node) {\n  let res;\n  for (const member of node.members) {\n    if (!isPropertyDeclaration(member)) break;\n    res = member;\n  }\n  return res;\n}\nfunction createAddIndexSignatureAction(context, sourceFile, node, tokenName, typeNode) {\n  const stringTypeNode = factory.createKeywordTypeNode(154 /* StringKeyword */);\n  const indexingParameter = factory.createParameterDeclaration(\n    /*modifiers*/\n    void 0,\n    /*dotDotDotToken*/\n    void 0,\n    \"x\",\n    /*questionToken*/\n    void 0,\n    stringTypeNode,\n    /*initializer*/\n    void 0\n  );\n  const indexSignature = factory.createIndexSignature(\n    /*modifiers*/\n    void 0,\n    [indexingParameter],\n    typeNode\n  );\n  const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => t.insertMemberAtStart(sourceFile, node, indexSignature));\n  return createCodeFixActionWithoutFixAll(fixMissingMember, changes, [Diagnostics.Add_index_signature_for_property_0, tokenName]);\n}\nfunction getActionsForMissingMethodDeclaration(context, info) {\n  const { parentDeclaration, declSourceFile, modifierFlags, token, call } = info;\n  if (call === void 0) {\n    return void 0;\n  }\n  const methodName = token.text;\n  const addMethodDeclarationChanges = (modifierFlags2) => ts_textChanges_exports.ChangeTracker.with(context, (t) => addMethodDeclaration(context, t, call, token, modifierFlags2, parentDeclaration, declSourceFile));\n  const actions2 = [createCodeFixAction(fixMissingMember, addMethodDeclarationChanges(modifierFlags & 256 /* Static */), [modifierFlags & 256 /* Static */ ? Diagnostics.Declare_static_method_0 : Diagnostics.Declare_method_0, methodName], fixMissingMember, Diagnostics.Add_all_missing_members)];\n  if (modifierFlags & 2 /* Private */) {\n    actions2.unshift(createCodeFixActionWithoutFixAll(fixMissingMember, addMethodDeclarationChanges(2 /* Private */), [Diagnostics.Declare_private_method_0, methodName]));\n  }\n  return actions2;\n}\nfunction addMethodDeclaration(context, changes, callExpression, name, modifierFlags, parentDeclaration, sourceFile) {\n  const importAdder = createImportAdder(sourceFile, context.program, context.preferences, context.host);\n  const kind = isClassLike(parentDeclaration) ? 175 /* MethodDeclaration */ : 174 /* MethodSignature */;\n  const signatureDeclaration = createSignatureDeclarationFromCallExpression(kind, context, importAdder, callExpression, name, modifierFlags, parentDeclaration);\n  const containingMethodDeclaration = tryGetContainingMethodDeclaration(parentDeclaration, callExpression);\n  if (containingMethodDeclaration) {\n    changes.insertNodeAfter(sourceFile, containingMethodDeclaration, signatureDeclaration);\n  } else {\n    changes.insertMemberAtStart(sourceFile, parentDeclaration, signatureDeclaration);\n  }\n  importAdder.writeFixes(changes);\n}\nfunction addEnumMemberDeclaration(changes, checker, { token, parentDeclaration }) {\n  const hasStringInitializer = some(parentDeclaration.members, (member) => {\n    const type = checker.getTypeAtLocation(member);\n    return !!(type && type.flags & 402653316 /* StringLike */);\n  });\n  const sourceFile = parentDeclaration.getSourceFile();\n  const enumMember = factory.createEnumMember(token, hasStringInitializer ? factory.createStringLiteral(token.text) : void 0);\n  const last2 = lastOrUndefined(parentDeclaration.members);\n  if (last2) {\n    changes.insertNodeInListAfter(sourceFile, last2, enumMember, parentDeclaration.members);\n  } else {\n    changes.insertMemberAtStart(sourceFile, parentDeclaration, enumMember);\n  }\n}\nfunction addFunctionDeclaration(changes, context, info) {\n  const quotePreference = getQuotePreference(context.sourceFile, context.preferences);\n  const importAdder = createImportAdder(context.sourceFile, context.program, context.preferences, context.host);\n  const functionDeclaration = info.kind === 2 /* Function */ ? createSignatureDeclarationFromCallExpression(263 /* FunctionDeclaration */, context, importAdder, info.call, idText(info.token), info.modifierFlags, info.parentDeclaration) : createSignatureDeclarationFromSignature(\n    263 /* FunctionDeclaration */,\n    context,\n    quotePreference,\n    info.signature,\n    createStubbedBody(Diagnostics.Function_not_implemented.message, quotePreference),\n    info.token,\n    /*modifiers*/\n    void 0,\n    /*optional*/\n    void 0,\n    /*enclosingDeclaration*/\n    void 0,\n    importAdder\n  );\n  if (functionDeclaration === void 0) {\n    Debug.fail(\"fixMissingFunctionDeclaration codefix got unexpected error.\");\n  }\n  isReturnStatement(info.parentDeclaration) ? changes.insertNodeBefore(\n    info.sourceFile,\n    info.parentDeclaration,\n    functionDeclaration,\n    /*blankLineBetween*/\n    true\n  ) : changes.insertNodeAtEndOfScope(info.sourceFile, info.parentDeclaration, functionDeclaration);\n  importAdder.writeFixes(changes);\n}\nfunction addJsxAttributes(changes, context, info) {\n  const importAdder = createImportAdder(context.sourceFile, context.program, context.preferences, context.host);\n  const quotePreference = getQuotePreference(context.sourceFile, context.preferences);\n  const checker = context.program.getTypeChecker();\n  const jsxAttributesNode = info.parentDeclaration.attributes;\n  const hasSpreadAttribute = some(jsxAttributesNode.properties, isJsxSpreadAttribute);\n  const attrs = map(info.attributes, (attr) => {\n    const value = tryGetValueFromType(context, checker, importAdder, quotePreference, checker.getTypeOfSymbol(attr), info.parentDeclaration);\n    const name = factory.createIdentifier(attr.name);\n    const jsxAttribute = factory.createJsxAttribute(name, factory.createJsxExpression(\n      /*dotDotDotToken*/\n      void 0,\n      value\n    ));\n    setParent(name, jsxAttribute);\n    return jsxAttribute;\n  });\n  const jsxAttributes = factory.createJsxAttributes(hasSpreadAttribute ? [...attrs, ...jsxAttributesNode.properties] : [...jsxAttributesNode.properties, ...attrs]);\n  const options = { prefix: jsxAttributesNode.pos === jsxAttributesNode.end ? \" \" : void 0 };\n  changes.replaceNode(context.sourceFile, jsxAttributesNode, jsxAttributes, options);\n  importAdder.writeFixes(changes);\n}\nfunction addObjectLiteralProperties(changes, context, info) {\n  const importAdder = createImportAdder(context.sourceFile, context.program, context.preferences, context.host);\n  const quotePreference = getQuotePreference(context.sourceFile, context.preferences);\n  const target = getEmitScriptTarget(context.program.getCompilerOptions());\n  const checker = context.program.getTypeChecker();\n  const props = map(info.properties, (prop) => {\n    const initializer = tryGetValueFromType(context, checker, importAdder, quotePreference, checker.getTypeOfSymbol(prop), info.parentDeclaration);\n    return factory.createPropertyAssignment(createPropertyNameFromSymbol(prop, target, quotePreference, checker), initializer);\n  });\n  const options = {\n    leadingTriviaOption: ts_textChanges_exports.LeadingTriviaOption.Exclude,\n    trailingTriviaOption: ts_textChanges_exports.TrailingTriviaOption.Exclude,\n    indentation: info.indentation\n  };\n  changes.replaceNode(context.sourceFile, info.parentDeclaration, factory.createObjectLiteralExpression(\n    [...info.parentDeclaration.properties, ...props],\n    /*multiLine*/\n    true\n  ), options);\n  importAdder.writeFixes(changes);\n}\nfunction tryGetValueFromType(context, checker, importAdder, quotePreference, type, enclosingDeclaration) {\n  if (type.flags & 3 /* AnyOrUnknown */) {\n    return createUndefined();\n  }\n  if (type.flags & (4 /* String */ | 134217728 /* TemplateLiteral */)) {\n    return factory.createStringLiteral(\n      \"\",\n      /* isSingleQuote */\n      quotePreference === 0 /* Single */\n    );\n  }\n  if (type.flags & 8 /* Number */) {\n    return factory.createNumericLiteral(0);\n  }\n  if (type.flags & 64 /* BigInt */) {\n    return factory.createBigIntLiteral(\"0n\");\n  }\n  if (type.flags & 16 /* Boolean */) {\n    return factory.createFalse();\n  }\n  if (type.flags & 1056 /* EnumLike */) {\n    const enumMember = type.symbol.exports ? firstOrUndefinedIterator(type.symbol.exports.values()) : type.symbol;\n    const symbol = type.symbol.parent && type.symbol.parent.flags & 256 /* RegularEnum */ ? type.symbol.parent : type.symbol;\n    const name = checker.symbolToExpression(\n      symbol,\n      111551 /* Value */,\n      /*enclosingDeclaration*/\n      void 0,\n      /*flags*/\n      64 /* UseFullyQualifiedType */\n    );\n    return enumMember === void 0 || name === void 0 ? factory.createNumericLiteral(0) : factory.createPropertyAccessExpression(name, checker.symbolToString(enumMember));\n  }\n  if (type.flags & 256 /* NumberLiteral */) {\n    return factory.createNumericLiteral(type.value);\n  }\n  if (type.flags & 2048 /* BigIntLiteral */) {\n    return factory.createBigIntLiteral(type.value);\n  }\n  if (type.flags & 128 /* StringLiteral */) {\n    return factory.createStringLiteral(\n      type.value,\n      /* isSingleQuote */\n      quotePreference === 0 /* Single */\n    );\n  }\n  if (type.flags & 512 /* BooleanLiteral */) {\n    return type === checker.getFalseType() || type === checker.getFalseType(\n      /*fresh*/\n      true\n    ) ? factory.createFalse() : factory.createTrue();\n  }\n  if (type.flags & 65536 /* Null */) {\n    return factory.createNull();\n  }\n  if (type.flags & 1048576 /* Union */) {\n    const expression = firstDefined(type.types, (t) => tryGetValueFromType(context, checker, importAdder, quotePreference, t, enclosingDeclaration));\n    return expression ?? createUndefined();\n  }\n  if (checker.isArrayLikeType(type)) {\n    return factory.createArrayLiteralExpression();\n  }\n  if (isObjectLiteralType(type)) {\n    const props = map(checker.getPropertiesOfType(type), (prop) => {\n      const initializer = tryGetValueFromType(context, checker, importAdder, quotePreference, checker.getTypeOfSymbol(prop), enclosingDeclaration);\n      return factory.createPropertyAssignment(prop.name, initializer);\n    });\n    return factory.createObjectLiteralExpression(\n      props,\n      /*multiLine*/\n      true\n    );\n  }\n  if (getObjectFlags(type) & 16 /* Anonymous */) {\n    const decl = find(type.symbol.declarations || emptyArray, or(isFunctionTypeNode, isMethodSignature, isMethodDeclaration));\n    if (decl === void 0) return createUndefined();\n    const signature = checker.getSignaturesOfType(type, 0 /* Call */);\n    if (signature === void 0) return createUndefined();\n    const func = createSignatureDeclarationFromSignature(\n      219 /* FunctionExpression */,\n      context,\n      quotePreference,\n      signature[0],\n      createStubbedBody(Diagnostics.Function_not_implemented.message, quotePreference),\n      /*name*/\n      void 0,\n      /*modifiers*/\n      void 0,\n      /*optional*/\n      void 0,\n      /*enclosingDeclaration*/\n      enclosingDeclaration,\n      importAdder\n    );\n    return func ?? createUndefined();\n  }\n  if (getObjectFlags(type) & 1 /* Class */) {\n    const classDeclaration = getClassLikeDeclarationOfSymbol(type.symbol);\n    if (classDeclaration === void 0 || hasAbstractModifier(classDeclaration)) return createUndefined();\n    const constructorDeclaration = getFirstConstructorWithBody(classDeclaration);\n    if (constructorDeclaration && length(constructorDeclaration.parameters)) return createUndefined();\n    return factory.createNewExpression(\n      factory.createIdentifier(type.symbol.name),\n      /*typeArguments*/\n      void 0,\n      /*argumentsArray*/\n      void 0\n    );\n  }\n  return createUndefined();\n}\nfunction createUndefined() {\n  return factory.createIdentifier(\"undefined\");\n}\nfunction isObjectLiteralType(type) {\n  return type.flags & 524288 /* Object */ && (getObjectFlags(type) & 128 /* ObjectLiteral */ || type.symbol && tryCast(singleOrUndefined(type.symbol.declarations), isTypeLiteralNode));\n}\nfunction getUnmatchedAttributes(checker, target, source) {\n  const attrsType = checker.getContextualType(source.attributes);\n  if (attrsType === void 0) return emptyArray;\n  const targetProps = attrsType.getProperties();\n  if (!length(targetProps)) return emptyArray;\n  const seenNames = /* @__PURE__ */ new Set();\n  for (const sourceProp of source.attributes.properties) {\n    if (isJsxAttribute(sourceProp)) {\n      seenNames.add(getEscapedTextOfJsxAttributeName(sourceProp.name));\n    }\n    if (isJsxSpreadAttribute(sourceProp)) {\n      const type = checker.getTypeAtLocation(sourceProp.expression);\n      for (const prop of type.getProperties()) {\n        seenNames.add(prop.escapedName);\n      }\n    }\n  }\n  return filter(targetProps, (targetProp) => isIdentifierText(targetProp.name, target, 1 /* JSX */) && !(targetProp.flags & 16777216 /* Optional */ || getCheckFlags(targetProp) & 48 /* Partial */ || seenNames.has(targetProp.escapedName)));\n}\nfunction tryGetContainingMethodDeclaration(node, callExpression) {\n  if (isTypeLiteralNode(node)) {\n    return void 0;\n  }\n  const declaration = findAncestor(callExpression, (n) => isMethodDeclaration(n) || isConstructorDeclaration(n));\n  return declaration && declaration.parent === node ? declaration : void 0;\n}\nfunction createPropertyNameFromSymbol(symbol, target, quotePreference, checker) {\n  if (isTransientSymbol(symbol)) {\n    const prop = checker.symbolToNode(\n      symbol,\n      111551 /* Value */,\n      /*enclosingDeclaration*/\n      void 0,\n      /*flags*/\n      void 0,\n      1 /* WriteComputedProps */\n    );\n    if (prop && isComputedPropertyName(prop)) return prop;\n  }\n  return createPropertyNameNodeForIdentifierOrLiteral(\n    symbol.name,\n    target,\n    quotePreference === 0 /* Single */,\n    /*stringNamed*/\n    false,\n    /*isMethod*/\n    false\n  );\n}\nfunction findScope(node) {\n  if (findAncestor(node, isJsxExpression)) {\n    const returnStatement = findAncestor(node.parent, isReturnStatement);\n    if (returnStatement) return returnStatement;\n  }\n  return getSourceFileOfNode(node);\n}\nfunction getAllSupers(decl, checker) {\n  const res = [];\n  while (decl) {\n    const superElement = getClassExtendsHeritageElement(decl);\n    const superSymbol = superElement && checker.getSymbolAtLocation(superElement.expression);\n    if (!superSymbol) break;\n    const symbol = superSymbol.flags & 2097152 /* Alias */ ? checker.getAliasedSymbol(superSymbol) : superSymbol;\n    const superDecl = symbol.declarations && find(symbol.declarations, isClassLike);\n    if (!superDecl) break;\n    res.push(superDecl);\n    decl = superDecl;\n  }\n  return res;\n}\n\n// src/services/codefixes/fixAddMissingNewOperator.ts\nvar fixId25 = \"addMissingNewOperator\";\nvar errorCodes29 = [Diagnostics.Value_of_type_0_is_not_callable_Did_you_mean_to_include_new.code];\nregisterCodeFix({\n  errorCodes: errorCodes29,\n  getCodeActions(context) {\n    const { sourceFile, span } = context;\n    const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => addMissingNewOperator(t, sourceFile, span));\n    return [createCodeFixAction(fixId25, changes, Diagnostics.Add_missing_new_operator_to_call, fixId25, Diagnostics.Add_missing_new_operator_to_all_calls)];\n  },\n  fixIds: [fixId25],\n  getAllCodeActions: (context) => codeFixAll(context, errorCodes29, (changes, diag2) => addMissingNewOperator(changes, context.sourceFile, diag2))\n});\nfunction addMissingNewOperator(changes, sourceFile, span) {\n  const call = cast(findAncestorMatchingSpan2(sourceFile, span), isCallExpression);\n  const newExpression = factory.createNewExpression(call.expression, call.typeArguments, call.arguments);\n  changes.replaceNode(sourceFile, call, newExpression);\n}\nfunction findAncestorMatchingSpan2(sourceFile, span) {\n  let token = getTokenAtPosition(sourceFile, span.start);\n  const end = textSpanEnd(span);\n  while (token.end < end) {\n    token = token.parent;\n  }\n  return token;\n}\n\n// src/services/codefixes/fixAddMissingParam.ts\nvar addMissingParamFixId = \"addMissingParam\";\nvar addOptionalParamFixId = \"addOptionalParam\";\nvar errorCodes30 = [Diagnostics.Expected_0_arguments_but_got_1.code];\nregisterCodeFix({\n  errorCodes: errorCodes30,\n  fixIds: [addMissingParamFixId, addOptionalParamFixId],\n  getCodeActions(context) {\n    const info = getInfo11(context.sourceFile, context.program, context.span.start);\n    if (info === void 0) return void 0;\n    const { name, declarations, newParameters, newOptionalParameters } = info;\n    const actions2 = [];\n    if (length(newParameters)) {\n      append(\n        actions2,\n        createCodeFixAction(\n          addMissingParamFixId,\n          ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange19(t, context.program, context.preferences, context.host, declarations, newParameters)),\n          [length(newParameters) > 1 ? Diagnostics.Add_missing_parameters_to_0 : Diagnostics.Add_missing_parameter_to_0, name],\n          addMissingParamFixId,\n          Diagnostics.Add_all_missing_parameters\n        )\n      );\n    }\n    if (length(newOptionalParameters)) {\n      append(\n        actions2,\n        createCodeFixAction(\n          addOptionalParamFixId,\n          ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange19(t, context.program, context.preferences, context.host, declarations, newOptionalParameters)),\n          [length(newOptionalParameters) > 1 ? Diagnostics.Add_optional_parameters_to_0 : Diagnostics.Add_optional_parameter_to_0, name],\n          addOptionalParamFixId,\n          Diagnostics.Add_all_optional_parameters\n        )\n      );\n    }\n    return actions2;\n  },\n  getAllCodeActions: (context) => codeFixAll(context, errorCodes30, (changes, diag2) => {\n    const info = getInfo11(context.sourceFile, context.program, diag2.start);\n    if (info) {\n      const { declarations, newParameters, newOptionalParameters } = info;\n      if (context.fixId === addMissingParamFixId) {\n        doChange19(changes, context.program, context.preferences, context.host, declarations, newParameters);\n      }\n      if (context.fixId === addOptionalParamFixId) {\n        doChange19(changes, context.program, context.preferences, context.host, declarations, newOptionalParameters);\n      }\n    }\n  })\n});\nfunction getInfo11(sourceFile, program, pos) {\n  const token = getTokenAtPosition(sourceFile, pos);\n  const callExpression = findAncestor(token, isCallExpression);\n  if (callExpression === void 0 || length(callExpression.arguments) === 0) {\n    return void 0;\n  }\n  const checker = program.getTypeChecker();\n  const type = checker.getTypeAtLocation(callExpression.expression);\n  const convertibleSignatureDeclarations = filter(type.symbol.declarations, isConvertibleSignatureDeclaration);\n  if (convertibleSignatureDeclarations === void 0) {\n    return void 0;\n  }\n  const nonOverloadDeclaration = lastOrUndefined(convertibleSignatureDeclarations);\n  if (nonOverloadDeclaration === void 0 || nonOverloadDeclaration.body === void 0 || isSourceFileFromLibrary(program, nonOverloadDeclaration.getSourceFile())) {\n    return void 0;\n  }\n  const name = tryGetName2(nonOverloadDeclaration);\n  if (name === void 0) {\n    return void 0;\n  }\n  const newParameters = [];\n  const newOptionalParameters = [];\n  const parametersLength = length(nonOverloadDeclaration.parameters);\n  const argumentsLength = length(callExpression.arguments);\n  if (parametersLength > argumentsLength) {\n    return void 0;\n  }\n  const declarations = [nonOverloadDeclaration, ...getOverloads(nonOverloadDeclaration, convertibleSignatureDeclarations)];\n  for (let i = 0, pos2 = 0, paramIndex = 0; i < argumentsLength; i++) {\n    const arg = callExpression.arguments[i];\n    const expr = isAccessExpression(arg) ? getNameOfAccessExpression(arg) : arg;\n    const type2 = checker.getWidenedType(checker.getBaseTypeOfLiteralType(checker.getTypeAtLocation(arg)));\n    const parameter = pos2 < parametersLength ? nonOverloadDeclaration.parameters[pos2] : void 0;\n    if (parameter && checker.isTypeAssignableTo(type2, checker.getTypeAtLocation(parameter))) {\n      pos2++;\n      continue;\n    }\n    const name2 = expr && isIdentifier(expr) ? expr.text : `p${paramIndex++}`;\n    const typeNode = typeToTypeNode(checker, type2, nonOverloadDeclaration);\n    append(newParameters, {\n      pos: i,\n      declaration: createParameter(\n        name2,\n        typeNode,\n        /*questionToken*/\n        void 0\n      )\n    });\n    if (isOptionalPos(declarations, pos2)) {\n      continue;\n    }\n    append(newOptionalParameters, {\n      pos: i,\n      declaration: createParameter(name2, typeNode, factory.createToken(58 /* QuestionToken */))\n    });\n  }\n  return {\n    newParameters,\n    newOptionalParameters,\n    name: declarationNameToString(name),\n    declarations\n  };\n}\nfunction tryGetName2(node) {\n  const name = getNameOfDeclaration(node);\n  if (name) {\n    return name;\n  }\n  if (isVariableDeclaration(node.parent) && isIdentifier(node.parent.name) || isPropertyDeclaration(node.parent) || isParameter(node.parent)) {\n    return node.parent.name;\n  }\n}\nfunction typeToTypeNode(checker, type, enclosingDeclaration) {\n  return checker.typeToTypeNode(checker.getWidenedType(type), enclosingDeclaration, 1 /* NoTruncation */, 8 /* AllowUnresolvedNames */) ?? factory.createKeywordTypeNode(159 /* UnknownKeyword */);\n}\nfunction doChange19(changes, program, preferences, host, declarations, newParameters) {\n  const scriptTarget = getEmitScriptTarget(program.getCompilerOptions());\n  forEach(declarations, (declaration) => {\n    const sourceFile = getSourceFileOfNode(declaration);\n    const importAdder = createImportAdder(sourceFile, program, preferences, host);\n    if (length(declaration.parameters)) {\n      changes.replaceNodeRangeWithNodes(\n        sourceFile,\n        first(declaration.parameters),\n        last(declaration.parameters),\n        updateParameters(importAdder, scriptTarget, declaration, newParameters),\n        {\n          joiner: \", \",\n          indentation: 0,\n          leadingTriviaOption: ts_textChanges_exports.LeadingTriviaOption.IncludeAll,\n          trailingTriviaOption: ts_textChanges_exports.TrailingTriviaOption.Include\n        }\n      );\n    } else {\n      forEach(updateParameters(importAdder, scriptTarget, declaration, newParameters), (parameter, index) => {\n        if (length(declaration.parameters) === 0 && index === 0) {\n          changes.insertNodeAt(sourceFile, declaration.parameters.end, parameter);\n        } else {\n          changes.insertNodeAtEndOfList(sourceFile, declaration.parameters, parameter);\n        }\n      });\n    }\n    importAdder.writeFixes(changes);\n  });\n}\nfunction isConvertibleSignatureDeclaration(node) {\n  switch (node.kind) {\n    case 263 /* FunctionDeclaration */:\n    case 219 /* FunctionExpression */:\n    case 175 /* MethodDeclaration */:\n    case 220 /* ArrowFunction */:\n      return true;\n    default:\n      return false;\n  }\n}\nfunction updateParameters(importAdder, scriptTarget, node, newParameters) {\n  const parameters = map(node.parameters, (p) => factory.createParameterDeclaration(\n    p.modifiers,\n    p.dotDotDotToken,\n    p.name,\n    p.questionToken,\n    p.type,\n    p.initializer\n  ));\n  for (const { pos, declaration } of newParameters) {\n    const prev = pos > 0 ? parameters[pos - 1] : void 0;\n    parameters.splice(\n      pos,\n      0,\n      factory.updateParameterDeclaration(\n        declaration,\n        declaration.modifiers,\n        declaration.dotDotDotToken,\n        declaration.name,\n        prev && prev.questionToken ? factory.createToken(58 /* QuestionToken */) : declaration.questionToken,\n        getParameterType(importAdder, declaration.type, scriptTarget),\n        declaration.initializer\n      )\n    );\n  }\n  return parameters;\n}\nfunction getOverloads(implementation, declarations) {\n  const overloads = [];\n  for (const declaration of declarations) {\n    if (isOverload(declaration)) {\n      if (length(declaration.parameters) === length(implementation.parameters)) {\n        overloads.push(declaration);\n        continue;\n      }\n      if (length(declaration.parameters) > length(implementation.parameters)) {\n        return [];\n      }\n    }\n  }\n  return overloads;\n}\nfunction isOverload(declaration) {\n  return isConvertibleSignatureDeclaration(declaration) && declaration.body === void 0;\n}\nfunction createParameter(name, type, questionToken) {\n  return factory.createParameterDeclaration(\n    /*modifiers*/\n    void 0,\n    /*dotDotDotToken*/\n    void 0,\n    name,\n    questionToken,\n    type,\n    /*initializer*/\n    void 0\n  );\n}\nfunction isOptionalPos(declarations, pos) {\n  return length(declarations) && some(declarations, (d) => pos < length(d.parameters) && !!d.parameters[pos] && d.parameters[pos].questionToken === void 0);\n}\nfunction getParameterType(importAdder, typeNode, scriptTarget) {\n  const importableReference = tryGetAutoImportableReferenceFromTypeNode(typeNode, scriptTarget);\n  if (importableReference) {\n    importSymbols(importAdder, importableReference.symbols);\n    return importableReference.typeNode;\n  }\n  return typeNode;\n}\n\n// src/services/codefixes/fixCannotFindModule.ts\nvar fixName2 = \"fixCannotFindModule\";\nvar fixIdInstallTypesPackage = \"installTypesPackage\";\nvar errorCodeCannotFindModule = Diagnostics.Cannot_find_module_0_or_its_corresponding_type_declarations.code;\nvar errorCannotFindImplicitJsxImport = Diagnostics.This_JSX_tag_requires_the_module_path_0_to_exist_but_none_could_be_found_Make_sure_you_have_types_for_the_appropriate_package_installed.code;\nvar errorCodes31 = [\n  errorCodeCannotFindModule,\n  Diagnostics.Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type.code,\n  errorCannotFindImplicitJsxImport\n];\nregisterCodeFix({\n  errorCodes: errorCodes31,\n  getCodeActions: function getCodeActionsToFixNotFoundModule(context) {\n    const { host, sourceFile, span: { start }, errorCode } = context;\n    const packageName = errorCode === errorCannotFindImplicitJsxImport ? getJSXImplicitImportBase(context.program.getCompilerOptions(), sourceFile) : tryGetImportedPackageName(sourceFile, start);\n    if (packageName === void 0) return void 0;\n    const typesPackageName = getTypesPackageNameToInstall(packageName, host, errorCode);\n    return typesPackageName === void 0 ? [] : [createCodeFixAction(\n      fixName2,\n      /*changes*/\n      [],\n      [Diagnostics.Install_0, typesPackageName],\n      fixIdInstallTypesPackage,\n      Diagnostics.Install_all_missing_types_packages,\n      getInstallCommand(sourceFile.fileName, typesPackageName)\n    )];\n  },\n  fixIds: [fixIdInstallTypesPackage],\n  getAllCodeActions: (context) => {\n    return codeFixAll(context, errorCodes31, (_changes, diag2, commands) => {\n      const packageName = tryGetImportedPackageName(diag2.file, diag2.start);\n      if (packageName === void 0) return void 0;\n      switch (context.fixId) {\n        case fixIdInstallTypesPackage: {\n          const pkg = getTypesPackageNameToInstall(packageName, context.host, diag2.code);\n          if (pkg) {\n            commands.push(getInstallCommand(diag2.file.fileName, pkg));\n          }\n          break;\n        }\n        default:\n          Debug.fail(`Bad fixId: ${context.fixId}`);\n      }\n    });\n  }\n});\nfunction getInstallCommand(fileName, packageName) {\n  return { type: \"install package\", file: fileName, packageName };\n}\nfunction tryGetImportedPackageName(sourceFile, pos) {\n  const moduleSpecifierText = tryCast(getTokenAtPosition(sourceFile, pos), isStringLiteral);\n  if (!moduleSpecifierText) return void 0;\n  const moduleName = moduleSpecifierText.text;\n  const { packageName } = parsePackageName(moduleName);\n  return isExternalModuleNameRelative(packageName) ? void 0 : packageName;\n}\nfunction getTypesPackageNameToInstall(packageName, host, diagCode) {\n  var _a;\n  return diagCode === errorCodeCannotFindModule ? nodeCoreModules.has(packageName) ? \"@types/node\" : void 0 : ((_a = host.isKnownTypesPackageName) == null ? void 0 : _a.call(host, packageName)) ? getTypesPackageName(packageName) : void 0;\n}\n\n// src/services/codefixes/fixClassDoesntImplementInheritedAbstractMember.ts\nvar errorCodes32 = [\n  Diagnostics.Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_class_2.code,\n  Diagnostics.Non_abstract_class_0_is_missing_implementations_for_the_following_members_of_1_Colon_2.code,\n  Diagnostics.Non_abstract_class_0_is_missing_implementations_for_the_following_members_of_1_Colon_2_and_3_more.code,\n  Diagnostics.Non_abstract_class_expression_does_not_implement_inherited_abstract_member_0_from_class_1.code,\n  Diagnostics.Non_abstract_class_expression_is_missing_implementations_for_the_following_members_of_0_Colon_1.code,\n  Diagnostics.Non_abstract_class_expression_is_missing_implementations_for_the_following_members_of_0_Colon_1_and_2_more.code\n];\nvar fixId26 = \"fixClassDoesntImplementInheritedAbstractMember\";\nregisterCodeFix({\n  errorCodes: errorCodes32,\n  getCodeActions: function getCodeActionsToFixClassNotImplementingInheritedMembers(context) {\n    const { sourceFile, span } = context;\n    const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => addMissingMembers(getClass2(sourceFile, span.start), sourceFile, context, t, context.preferences));\n    return changes.length === 0 ? void 0 : [createCodeFixAction(fixId26, changes, Diagnostics.Implement_inherited_abstract_class, fixId26, Diagnostics.Implement_all_inherited_abstract_classes)];\n  },\n  fixIds: [fixId26],\n  getAllCodeActions: function getAllCodeActionsToFixClassDoesntImplementInheritedAbstractMember(context) {\n    const seenClassDeclarations = /* @__PURE__ */ new Set();\n    return codeFixAll(context, errorCodes32, (changes, diag2) => {\n      const classDeclaration = getClass2(diag2.file, diag2.start);\n      if (addToSeen(seenClassDeclarations, getNodeId(classDeclaration))) {\n        addMissingMembers(classDeclaration, context.sourceFile, context, changes, context.preferences);\n      }\n    });\n  }\n});\nfunction getClass2(sourceFile, pos) {\n  const token = getTokenAtPosition(sourceFile, pos);\n  return cast(token.parent, isClassLike);\n}\nfunction addMissingMembers(classDeclaration, sourceFile, context, changeTracker, preferences) {\n  const extendsNode = getEffectiveBaseTypeNode(classDeclaration);\n  const checker = context.program.getTypeChecker();\n  const instantiatedExtendsType = checker.getTypeAtLocation(extendsNode);\n  const abstractAndNonPrivateExtendsSymbols = checker.getPropertiesOfType(instantiatedExtendsType).filter(symbolPointsToNonPrivateAndAbstractMember);\n  const importAdder = createImportAdder(sourceFile, context.program, preferences, context.host);\n  createMissingMemberNodes(classDeclaration, abstractAndNonPrivateExtendsSymbols, sourceFile, context, preferences, importAdder, (member) => changeTracker.insertMemberAtStart(sourceFile, classDeclaration, member));\n  importAdder.writeFixes(changeTracker);\n}\nfunction symbolPointsToNonPrivateAndAbstractMember(symbol) {\n  const flags = getSyntacticModifierFlags(first(symbol.getDeclarations()));\n  return !(flags & 2 /* Private */) && !!(flags & 64 /* Abstract */);\n}\n\n// src/services/codefixes/fixClassSuperMustPrecedeThisAccess.ts\nvar fixId27 = \"classSuperMustPrecedeThisAccess\";\nvar errorCodes33 = [Diagnostics.super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class.code];\nregisterCodeFix({\n  errorCodes: errorCodes33,\n  getCodeActions(context) {\n    const { sourceFile, span } = context;\n    const nodes = getNodes(sourceFile, span.start);\n    if (!nodes) return void 0;\n    const { constructor, superCall } = nodes;\n    const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange20(t, sourceFile, constructor, superCall));\n    return [createCodeFixAction(fixId27, changes, Diagnostics.Make_super_call_the_first_statement_in_the_constructor, fixId27, Diagnostics.Make_all_super_calls_the_first_statement_in_their_constructor)];\n  },\n  fixIds: [fixId27],\n  getAllCodeActions(context) {\n    const { sourceFile } = context;\n    const seenClasses = /* @__PURE__ */ new Set();\n    return codeFixAll(context, errorCodes33, (changes, diag2) => {\n      const nodes = getNodes(diag2.file, diag2.start);\n      if (!nodes) return;\n      const { constructor, superCall } = nodes;\n      if (addToSeen(seenClasses, getNodeId(constructor.parent))) {\n        doChange20(changes, sourceFile, constructor, superCall);\n      }\n    });\n  }\n});\nfunction doChange20(changes, sourceFile, constructor, superCall) {\n  changes.insertNodeAtConstructorStart(sourceFile, constructor, superCall);\n  changes.delete(sourceFile, superCall);\n}\nfunction getNodes(sourceFile, pos) {\n  const token = getTokenAtPosition(sourceFile, pos);\n  if (token.kind !== 110 /* ThisKeyword */) return void 0;\n  const constructor = getContainingFunction(token);\n  const superCall = findSuperCall(constructor.body);\n  return superCall && !superCall.expression.arguments.some((arg) => isPropertyAccessExpression(arg) && arg.expression === token) ? { constructor, superCall } : void 0;\n}\nfunction findSuperCall(n) {\n  return isExpressionStatement(n) && isSuperCall(n.expression) ? n : isFunctionLike(n) ? void 0 : forEachChild(n, findSuperCall);\n}\n\n// src/services/codefixes/fixConstructorForDerivedNeedSuperCall.ts\nvar fixId28 = \"constructorForDerivedNeedSuperCall\";\nvar errorCodes34 = [Diagnostics.Constructors_for_derived_classes_must_contain_a_super_call.code];\nregisterCodeFix({\n  errorCodes: errorCodes34,\n  getCodeActions(context) {\n    const { sourceFile, span } = context;\n    const ctr = getNode(sourceFile, span.start);\n    const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange21(t, sourceFile, ctr));\n    return [createCodeFixAction(fixId28, changes, Diagnostics.Add_missing_super_call, fixId28, Diagnostics.Add_all_missing_super_calls)];\n  },\n  fixIds: [fixId28],\n  getAllCodeActions: (context) => codeFixAll(context, errorCodes34, (changes, diag2) => doChange21(changes, context.sourceFile, getNode(diag2.file, diag2.start)))\n});\nfunction getNode(sourceFile, pos) {\n  const token = getTokenAtPosition(sourceFile, pos);\n  Debug.assert(isConstructorDeclaration(token.parent), \"token should be at the constructor declaration\");\n  return token.parent;\n}\nfunction doChange21(changes, sourceFile, ctr) {\n  const superCall = factory.createExpressionStatement(factory.createCallExpression(\n    factory.createSuper(),\n    /*typeArguments*/\n    void 0,\n    /*argumentsArray*/\n    emptyArray\n  ));\n  changes.insertNodeAtConstructorStart(sourceFile, ctr, superCall);\n}\n\n// src/services/codefixes/fixEnableJsxFlag.ts\nvar fixID = \"fixEnableJsxFlag\";\nvar errorCodes35 = [Diagnostics.Cannot_use_JSX_unless_the_jsx_flag_is_provided.code];\nregisterCodeFix({\n  errorCodes: errorCodes35,\n  getCodeActions: function getCodeActionsToFixEnableJsxFlag(context) {\n    const { configFile } = context.program.getCompilerOptions();\n    if (configFile === void 0) {\n      return void 0;\n    }\n    const changes = ts_textChanges_exports.ChangeTracker.with(context, (changeTracker) => doChange22(changeTracker, configFile));\n    return [\n      createCodeFixActionWithoutFixAll(fixID, changes, Diagnostics.Enable_the_jsx_flag_in_your_configuration_file)\n    ];\n  },\n  fixIds: [fixID],\n  getAllCodeActions: (context) => codeFixAll(context, errorCodes35, (changes) => {\n    const { configFile } = context.program.getCompilerOptions();\n    if (configFile === void 0) {\n      return void 0;\n    }\n    doChange22(changes, configFile);\n  })\n});\nfunction doChange22(changeTracker, configFile) {\n  setJsonCompilerOptionValue(changeTracker, configFile, \"jsx\", factory.createStringLiteral(\"react\"));\n}\n\n// src/services/codefixes/fixNaNEquality.ts\nvar fixId29 = \"fixNaNEquality\";\nvar errorCodes36 = [\n  Diagnostics.This_condition_will_always_return_0.code\n];\nregisterCodeFix({\n  errorCodes: errorCodes36,\n  getCodeActions(context) {\n    const { sourceFile, span, program } = context;\n    const info = getInfo12(program, sourceFile, span);\n    if (info === void 0) return;\n    const { suggestion, expression, arg } = info;\n    const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange23(t, sourceFile, arg, expression));\n    return [createCodeFixAction(fixId29, changes, [Diagnostics.Use_0, suggestion], fixId29, Diagnostics.Use_Number_isNaN_in_all_conditions)];\n  },\n  fixIds: [fixId29],\n  getAllCodeActions: (context) => {\n    return codeFixAll(context, errorCodes36, (changes, diag2) => {\n      const info = getInfo12(context.program, diag2.file, createTextSpan(diag2.start, diag2.length));\n      if (info) {\n        doChange23(changes, diag2.file, info.arg, info.expression);\n      }\n    });\n  }\n});\nfunction getInfo12(program, sourceFile, span) {\n  const diag2 = find(program.getSemanticDiagnostics(sourceFile), (diag3) => diag3.start === span.start && diag3.length === span.length);\n  if (diag2 === void 0 || diag2.relatedInformation === void 0) return;\n  const related = find(diag2.relatedInformation, (related2) => related2.code === Diagnostics.Did_you_mean_0.code);\n  if (related === void 0 || related.file === void 0 || related.start === void 0 || related.length === void 0) return;\n  const token = findAncestorMatchingSpan(related.file, createTextSpan(related.start, related.length));\n  if (token === void 0) return;\n  if (isExpression(token) && isBinaryExpression(token.parent)) {\n    return { suggestion: getSuggestion(related.messageText), expression: token.parent, arg: token };\n  }\n  return void 0;\n}\nfunction doChange23(changes, sourceFile, arg, expression) {\n  const callExpression = factory.createCallExpression(\n    factory.createPropertyAccessExpression(factory.createIdentifier(\"Number\"), factory.createIdentifier(\"isNaN\")),\n    /*typeArguments*/\n    void 0,\n    [arg]\n  );\n  const operator = expression.operatorToken.kind;\n  changes.replaceNode(\n    sourceFile,\n    expression,\n    operator === 38 /* ExclamationEqualsEqualsToken */ || operator === 36 /* ExclamationEqualsToken */ ? factory.createPrefixUnaryExpression(54 /* ExclamationToken */, callExpression) : callExpression\n  );\n}\nfunction getSuggestion(messageText) {\n  const [, suggestion] = flattenDiagnosticMessageText(messageText, \"\\n\", 0).match(/'(.*)'/) || [];\n  return suggestion;\n}\n\n// src/services/codefixes/fixModuleAndTargetOptions.ts\nregisterCodeFix({\n  errorCodes: [\n    Diagnostics.Top_level_await_expressions_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_node18_node20_nodenext_or_preserve_and_the_target_option_is_set_to_es2017_or_higher.code,\n    Diagnostics.Top_level_await_using_statements_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_node18_node20_nodenext_or_preserve_and_the_target_option_is_set_to_es2017_or_higher.code,\n    Diagnostics.Top_level_for_await_loops_are_only_allowed_when_the_module_option_is_set_to_es2022_esnext_system_node16_node18_node20_nodenext_or_preserve_and_the_target_option_is_set_to_es2017_or_higher.code\n  ],\n  getCodeActions: function getCodeActionsToFixModuleAndTarget(context) {\n    const compilerOptions = context.program.getCompilerOptions();\n    const { configFile } = compilerOptions;\n    if (configFile === void 0) {\n      return void 0;\n    }\n    const codeFixes = [];\n    const moduleKind = getEmitModuleKind(compilerOptions);\n    const moduleOutOfRange = moduleKind >= 5 /* ES2015 */ && moduleKind < 99 /* ESNext */;\n    if (moduleOutOfRange) {\n      const changes = ts_textChanges_exports.ChangeTracker.with(context, (changes2) => {\n        setJsonCompilerOptionValue(changes2, configFile, \"module\", factory.createStringLiteral(\"esnext\"));\n      });\n      codeFixes.push(createCodeFixActionWithoutFixAll(\"fixModuleOption\", changes, [Diagnostics.Set_the_module_option_in_your_configuration_file_to_0, \"esnext\"]));\n    }\n    const target = getEmitScriptTarget(compilerOptions);\n    const targetOutOfRange = target < 4 /* ES2017 */ || target > 99 /* ESNext */;\n    if (targetOutOfRange) {\n      const changes = ts_textChanges_exports.ChangeTracker.with(context, (tracker) => {\n        const configObject = getTsConfigObjectLiteralExpression(configFile);\n        if (!configObject) return;\n        const options = [[\"target\", factory.createStringLiteral(\"es2017\")]];\n        if (moduleKind === 1 /* CommonJS */) {\n          options.push([\"module\", factory.createStringLiteral(\"commonjs\")]);\n        }\n        setJsonCompilerOptionValues(tracker, configFile, options);\n      });\n      codeFixes.push(createCodeFixActionWithoutFixAll(\"fixTargetOption\", changes, [Diagnostics.Set_the_target_option_in_your_configuration_file_to_0, \"es2017\"]));\n    }\n    return codeFixes.length ? codeFixes : void 0;\n  }\n});\n\n// src/services/codefixes/fixPropertyAssignment.ts\nvar fixId30 = \"fixPropertyAssignment\";\nvar errorCodes37 = [\n  Diagnostics.Did_you_mean_to_use_a_Colon_An_can_only_follow_a_property_name_when_the_containing_object_literal_is_part_of_a_destructuring_pattern.code\n];\nregisterCodeFix({\n  errorCodes: errorCodes37,\n  fixIds: [fixId30],\n  getCodeActions(context) {\n    const { sourceFile, span } = context;\n    const property = getProperty2(sourceFile, span.start);\n    const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange24(t, context.sourceFile, property));\n    return [createCodeFixAction(fixId30, changes, [Diagnostics.Change_0_to_1, \"=\", \":\"], fixId30, [Diagnostics.Switch_each_misused_0_to_1, \"=\", \":\"])];\n  },\n  getAllCodeActions: (context) => codeFixAll(context, errorCodes37, (changes, diag2) => doChange24(changes, diag2.file, getProperty2(diag2.file, diag2.start)))\n});\nfunction doChange24(changes, sourceFile, node) {\n  changes.replaceNode(sourceFile, node, factory.createPropertyAssignment(node.name, node.objectAssignmentInitializer));\n}\nfunction getProperty2(sourceFile, pos) {\n  return cast(getTokenAtPosition(sourceFile, pos).parent, isShorthandPropertyAssignment);\n}\n\n// src/services/codefixes/fixExtendsInterfaceBecomesImplements.ts\nvar fixId31 = \"extendsInterfaceBecomesImplements\";\nvar errorCodes38 = [Diagnostics.Cannot_extend_an_interface_0_Did_you_mean_implements.code];\nregisterCodeFix({\n  errorCodes: errorCodes38,\n  getCodeActions(context) {\n    const { sourceFile } = context;\n    const nodes = getNodes2(sourceFile, context.span.start);\n    if (!nodes) return void 0;\n    const { extendsToken, heritageClauses } = nodes;\n    const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChanges2(t, sourceFile, extendsToken, heritageClauses));\n    return [createCodeFixAction(fixId31, changes, Diagnostics.Change_extends_to_implements, fixId31, Diagnostics.Change_all_extended_interfaces_to_implements)];\n  },\n  fixIds: [fixId31],\n  getAllCodeActions: (context) => codeFixAll(context, errorCodes38, (changes, diag2) => {\n    const nodes = getNodes2(diag2.file, diag2.start);\n    if (nodes) doChanges2(changes, diag2.file, nodes.extendsToken, nodes.heritageClauses);\n  })\n});\nfunction getNodes2(sourceFile, pos) {\n  const token = getTokenAtPosition(sourceFile, pos);\n  const heritageClauses = getContainingClass(token).heritageClauses;\n  const extendsToken = heritageClauses[0].getFirstToken();\n  return extendsToken.kind === 96 /* ExtendsKeyword */ ? { extendsToken, heritageClauses } : void 0;\n}\nfunction doChanges2(changes, sourceFile, extendsToken, heritageClauses) {\n  changes.replaceNode(sourceFile, extendsToken, factory.createToken(119 /* ImplementsKeyword */));\n  if (heritageClauses.length === 2 && heritageClauses[0].token === 96 /* ExtendsKeyword */ && heritageClauses[1].token === 119 /* ImplementsKeyword */) {\n    const implementsToken = heritageClauses[1].getFirstToken();\n    const implementsFullStart = implementsToken.getFullStart();\n    changes.replaceRange(sourceFile, { pos: implementsFullStart, end: implementsFullStart }, factory.createToken(28 /* CommaToken */));\n    const text = sourceFile.text;\n    let end = implementsToken.end;\n    while (end < text.length && isWhiteSpaceSingleLine(text.charCodeAt(end))) {\n      end++;\n    }\n    changes.deleteRange(sourceFile, { pos: implementsToken.getStart(), end });\n  }\n}\n\n// src/services/codefixes/fixForgottenThisPropertyAccess.ts\nvar fixId32 = \"forgottenThisPropertyAccess\";\nvar didYouMeanStaticMemberCode = Diagnostics.Cannot_find_name_0_Did_you_mean_the_static_member_1_0.code;\nvar errorCodes39 = [\n  Diagnostics.Cannot_find_name_0_Did_you_mean_the_instance_member_this_0.code,\n  Diagnostics.Private_identifiers_are_only_allowed_in_class_bodies_and_may_only_be_used_as_part_of_a_class_member_declaration_property_access_or_on_the_left_hand_side_of_an_in_expression.code,\n  didYouMeanStaticMemberCode\n];\nregisterCodeFix({\n  errorCodes: errorCodes39,\n  getCodeActions(context) {\n    const { sourceFile } = context;\n    const info = getInfo13(sourceFile, context.span.start, context.errorCode);\n    if (!info) {\n      return void 0;\n    }\n    const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange25(t, sourceFile, info));\n    return [createCodeFixAction(fixId32, changes, [Diagnostics.Add_0_to_unresolved_variable, info.className || \"this\"], fixId32, Diagnostics.Add_qualifier_to_all_unresolved_variables_matching_a_member_name)];\n  },\n  fixIds: [fixId32],\n  getAllCodeActions: (context) => codeFixAll(context, errorCodes39, (changes, diag2) => {\n    const info = getInfo13(diag2.file, diag2.start, diag2.code);\n    if (info) doChange25(changes, context.sourceFile, info);\n  })\n});\nfunction getInfo13(sourceFile, pos, diagCode) {\n  const node = getTokenAtPosition(sourceFile, pos);\n  if (isIdentifier(node) || isPrivateIdentifier(node)) {\n    return { node, className: diagCode === didYouMeanStaticMemberCode ? getContainingClass(node).name.text : void 0 };\n  }\n}\nfunction doChange25(changes, sourceFile, { node, className }) {\n  suppressLeadingAndTrailingTrivia(node);\n  changes.replaceNode(sourceFile, node, factory.createPropertyAccessExpression(className ? factory.createIdentifier(className) : factory.createThis(), node));\n}\n\n// src/services/codefixes/fixInvalidJsxCharacters.ts\nvar fixIdExpression = \"fixInvalidJsxCharacters_expression\";\nvar fixIdHtmlEntity = \"fixInvalidJsxCharacters_htmlEntity\";\nvar errorCodes40 = [\n  Diagnostics.Unexpected_token_Did_you_mean_or_gt.code,\n  Diagnostics.Unexpected_token_Did_you_mean_or_rbrace.code\n];\nregisterCodeFix({\n  errorCodes: errorCodes40,\n  fixIds: [fixIdExpression, fixIdHtmlEntity],\n  getCodeActions(context) {\n    const { sourceFile, preferences, span } = context;\n    const changeToExpression = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange26(\n      t,\n      preferences,\n      sourceFile,\n      span.start,\n      /*useHtmlEntity*/\n      false\n    ));\n    const changeToHtmlEntity = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange26(\n      t,\n      preferences,\n      sourceFile,\n      span.start,\n      /*useHtmlEntity*/\n      true\n    ));\n    return [\n      createCodeFixAction(fixIdExpression, changeToExpression, Diagnostics.Wrap_invalid_character_in_an_expression_container, fixIdExpression, Diagnostics.Wrap_all_invalid_characters_in_an_expression_container),\n      createCodeFixAction(fixIdHtmlEntity, changeToHtmlEntity, Diagnostics.Convert_invalid_character_to_its_html_entity_code, fixIdHtmlEntity, Diagnostics.Convert_all_invalid_characters_to_HTML_entity_code)\n    ];\n  },\n  getAllCodeActions(context) {\n    return codeFixAll(context, errorCodes40, (changes, diagnostic) => doChange26(changes, context.preferences, diagnostic.file, diagnostic.start, context.fixId === fixIdHtmlEntity));\n  }\n});\nvar htmlEntity = {\n  \">\": \"&gt;\",\n  \"}\": \"&rbrace;\"\n};\nfunction isValidCharacter(character) {\n  return hasProperty(htmlEntity, character);\n}\nfunction doChange26(changes, preferences, sourceFile, start, useHtmlEntity) {\n  const character = sourceFile.getText()[start];\n  if (!isValidCharacter(character)) {\n    return;\n  }\n  const replacement = useHtmlEntity ? htmlEntity[character] : `{${quote(sourceFile, preferences, character)}}`;\n  changes.replaceRangeWithText(sourceFile, { pos: start, end: start + 1 }, replacement);\n}\n\n// src/services/codefixes/fixUnmatchedParameter.ts\nvar deleteUnmatchedParameter = \"deleteUnmatchedParameter\";\nvar renameUnmatchedParameter = \"renameUnmatchedParameter\";\nvar errorCodes41 = [\n  Diagnostics.JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name.code\n];\nregisterCodeFix({\n  fixIds: [deleteUnmatchedParameter, renameUnmatchedParameter],\n  errorCodes: errorCodes41,\n  getCodeActions: function getCodeActionsToFixUnmatchedParameter(context) {\n    const { sourceFile, span } = context;\n    const actions2 = [];\n    const info = getInfo14(sourceFile, span.start);\n    if (info) {\n      append(actions2, getDeleteAction(context, info));\n      append(actions2, getRenameAction(context, info));\n      return actions2;\n    }\n    return void 0;\n  },\n  getAllCodeActions: function getAllCodeActionsToFixUnmatchedParameter(context) {\n    const tagsToSignature = /* @__PURE__ */ new Map();\n    return createCombinedCodeActions(ts_textChanges_exports.ChangeTracker.with(context, (changes) => {\n      eachDiagnostic(context, errorCodes41, ({ file, start }) => {\n        const info = getInfo14(file, start);\n        if (info) {\n          tagsToSignature.set(info.signature, append(tagsToSignature.get(info.signature), info.jsDocParameterTag));\n        }\n      });\n      tagsToSignature.forEach((tags, signature) => {\n        if (context.fixId === deleteUnmatchedParameter) {\n          const tagsSet = new Set(tags);\n          changes.filterJSDocTags(signature.getSourceFile(), signature, (t) => !tagsSet.has(t));\n        }\n      });\n    }));\n  }\n});\nfunction getDeleteAction(context, { name, jsDocHost, jsDocParameterTag }) {\n  const changes = ts_textChanges_exports.ChangeTracker.with(context, (changeTracker) => changeTracker.filterJSDocTags(context.sourceFile, jsDocHost, (t) => t !== jsDocParameterTag));\n  return createCodeFixAction(\n    deleteUnmatchedParameter,\n    changes,\n    [Diagnostics.Delete_unused_param_tag_0, name.getText(context.sourceFile)],\n    deleteUnmatchedParameter,\n    Diagnostics.Delete_all_unused_param_tags\n  );\n}\nfunction getRenameAction(context, { name, jsDocHost, signature, jsDocParameterTag }) {\n  if (!length(signature.parameters)) return void 0;\n  const sourceFile = context.sourceFile;\n  const tags = getJSDocTags(signature);\n  const names = /* @__PURE__ */ new Set();\n  for (const tag of tags) {\n    if (isJSDocParameterTag(tag) && isIdentifier(tag.name)) {\n      names.add(tag.name.escapedText);\n    }\n  }\n  const parameterName = firstDefined(signature.parameters, (p) => isIdentifier(p.name) && !names.has(p.name.escapedText) ? p.name.getText(sourceFile) : void 0);\n  if (parameterName === void 0) return void 0;\n  const newJSDocParameterTag = factory.updateJSDocParameterTag(\n    jsDocParameterTag,\n    jsDocParameterTag.tagName,\n    factory.createIdentifier(parameterName),\n    jsDocParameterTag.isBracketed,\n    jsDocParameterTag.typeExpression,\n    jsDocParameterTag.isNameFirst,\n    jsDocParameterTag.comment\n  );\n  const changes = ts_textChanges_exports.ChangeTracker.with(context, (changeTracker) => changeTracker.replaceJSDocComment(sourceFile, jsDocHost, map(tags, (t) => t === jsDocParameterTag ? newJSDocParameterTag : t)));\n  return createCodeFixActionWithoutFixAll(renameUnmatchedParameter, changes, [Diagnostics.Rename_param_tag_name_0_to_1, name.getText(sourceFile), parameterName]);\n}\nfunction getInfo14(sourceFile, pos) {\n  const token = getTokenAtPosition(sourceFile, pos);\n  if (token.parent && isJSDocParameterTag(token.parent) && isIdentifier(token.parent.name)) {\n    const jsDocParameterTag = token.parent;\n    const jsDocHost = getJSDocHost(jsDocParameterTag);\n    const signature = getHostSignatureFromJSDoc(jsDocParameterTag);\n    if (jsDocHost && signature) {\n      return { jsDocHost, signature, name: token.parent.name, jsDocParameterTag };\n    }\n  }\n  return void 0;\n}\n\n// src/services/codefixes/fixUnreferenceableDecoratorMetadata.ts\nvar fixId33 = \"fixUnreferenceableDecoratorMetadata\";\nvar errorCodes42 = [Diagnostics.A_type_referenced_in_a_decorated_signature_must_be_imported_with_import_type_or_a_namespace_import_when_isolatedModules_and_emitDecoratorMetadata_are_enabled.code];\nregisterCodeFix({\n  errorCodes: errorCodes42,\n  getCodeActions: (context) => {\n    const importDeclaration = getImportDeclaration(context.sourceFile, context.program, context.span.start);\n    if (!importDeclaration) return;\n    const namespaceChanges = ts_textChanges_exports.ChangeTracker.with(context, (t) => importDeclaration.kind === 277 /* ImportSpecifier */ && doNamespaceImportChange(t, context.sourceFile, importDeclaration, context.program));\n    const typeOnlyChanges = ts_textChanges_exports.ChangeTracker.with(context, (t) => doTypeOnlyImportChange(t, context.sourceFile, importDeclaration, context.program));\n    let actions2;\n    if (namespaceChanges.length) {\n      actions2 = append(actions2, createCodeFixActionWithoutFixAll(fixId33, namespaceChanges, Diagnostics.Convert_named_imports_to_namespace_import));\n    }\n    if (typeOnlyChanges.length) {\n      actions2 = append(actions2, createCodeFixActionWithoutFixAll(fixId33, typeOnlyChanges, Diagnostics.Use_import_type));\n    }\n    return actions2;\n  },\n  fixIds: [fixId33]\n});\nfunction getImportDeclaration(sourceFile, program, start) {\n  const identifier = tryCast(getTokenAtPosition(sourceFile, start), isIdentifier);\n  if (!identifier || identifier.parent.kind !== 184 /* TypeReference */) return;\n  const checker = program.getTypeChecker();\n  const symbol = checker.getSymbolAtLocation(identifier);\n  return find((symbol == null ? void 0 : symbol.declarations) || emptyArray, or(isImportClause, isImportSpecifier, isImportEqualsDeclaration));\n}\nfunction doTypeOnlyImportChange(changes, sourceFile, importDeclaration, program) {\n  if (importDeclaration.kind === 272 /* ImportEqualsDeclaration */) {\n    changes.insertModifierBefore(sourceFile, 156 /* TypeKeyword */, importDeclaration.name);\n    return;\n  }\n  const importClause = importDeclaration.kind === 274 /* ImportClause */ ? importDeclaration : importDeclaration.parent.parent;\n  if (importClause.name && importClause.namedBindings) {\n    return;\n  }\n  const checker = program.getTypeChecker();\n  const importsValue = !!forEachImportClauseDeclaration(importClause, (decl) => {\n    if (skipAlias(decl.symbol, checker).flags & 111551 /* Value */) return true;\n  });\n  if (importsValue) {\n    return;\n  }\n  changes.insertModifierBefore(sourceFile, 156 /* TypeKeyword */, importClause);\n}\nfunction doNamespaceImportChange(changes, sourceFile, importDeclaration, program) {\n  ts_refactor_exports.doChangeNamedToNamespaceOrDefault(sourceFile, program, changes, importDeclaration.parent);\n}\n\n// src/services/codefixes/fixUnusedIdentifier.ts\nvar fixName3 = \"unusedIdentifier\";\nvar fixIdPrefix = \"unusedIdentifier_prefix\";\nvar fixIdDelete = \"unusedIdentifier_delete\";\nvar fixIdDeleteImports = \"unusedIdentifier_deleteImports\";\nvar fixIdInfer = \"unusedIdentifier_infer\";\nvar errorCodes43 = [\n  Diagnostics._0_is_declared_but_its_value_is_never_read.code,\n  Diagnostics._0_is_declared_but_never_used.code,\n  Diagnostics.Property_0_is_declared_but_its_value_is_never_read.code,\n  Diagnostics.All_imports_in_import_declaration_are_unused.code,\n  Diagnostics.All_destructured_elements_are_unused.code,\n  Diagnostics.All_variables_are_unused.code,\n  Diagnostics.All_type_parameters_are_unused.code\n];\nregisterCodeFix({\n  errorCodes: errorCodes43,\n  getCodeActions(context) {\n    const { errorCode, sourceFile, program, cancellationToken } = context;\n    const checker = program.getTypeChecker();\n    const sourceFiles = program.getSourceFiles();\n    const token = getTokenAtPosition(sourceFile, context.span.start);\n    if (isJSDocTemplateTag(token)) {\n      return [createDeleteFix(ts_textChanges_exports.ChangeTracker.with(context, (t) => t.delete(sourceFile, token)), Diagnostics.Remove_template_tag)];\n    }\n    if (token.kind === 30 /* LessThanToken */) {\n      const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => deleteTypeParameters(t, sourceFile, token));\n      return [createDeleteFix(changes, Diagnostics.Remove_type_parameters)];\n    }\n    const importDecl = tryGetFullImport(token);\n    if (importDecl) {\n      const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => t.delete(sourceFile, importDecl));\n      return [createCodeFixAction(fixName3, changes, [Diagnostics.Remove_import_from_0, showModuleSpecifier(importDecl)], fixIdDeleteImports, Diagnostics.Delete_all_unused_imports)];\n    } else if (isImport(token)) {\n      const deletion = ts_textChanges_exports.ChangeTracker.with(context, (t) => tryDeleteDeclaration(\n        sourceFile,\n        token,\n        t,\n        checker,\n        sourceFiles,\n        program,\n        cancellationToken,\n        /*isFixAll*/\n        false\n      ));\n      if (deletion.length) {\n        return [createCodeFixAction(fixName3, deletion, [Diagnostics.Remove_unused_declaration_for_Colon_0, token.getText(sourceFile)], fixIdDeleteImports, Diagnostics.Delete_all_unused_imports)];\n      }\n    }\n    if (isObjectBindingPattern(token.parent) || isArrayBindingPattern(token.parent)) {\n      if (isParameter(token.parent.parent)) {\n        const elements = token.parent.elements;\n        const diagnostic = [\n          elements.length > 1 ? Diagnostics.Remove_unused_declarations_for_Colon_0 : Diagnostics.Remove_unused_declaration_for_Colon_0,\n          map(elements, (e) => e.getText(sourceFile)).join(\", \")\n        ];\n        return [\n          createDeleteFix(ts_textChanges_exports.ChangeTracker.with(context, (t) => deleteDestructuringElements(t, sourceFile, token.parent)), diagnostic)\n        ];\n      }\n      return [\n        createDeleteFix(ts_textChanges_exports.ChangeTracker.with(context, (t) => deleteDestructuring(context, t, sourceFile, token.parent)), Diagnostics.Remove_unused_destructuring_declaration)\n      ];\n    }\n    if (canDeleteEntireVariableStatement(sourceFile, token)) {\n      return [\n        createDeleteFix(ts_textChanges_exports.ChangeTracker.with(context, (t) => deleteEntireVariableStatement(t, sourceFile, token.parent)), Diagnostics.Remove_variable_statement)\n      ];\n    }\n    if (isIdentifier(token) && isFunctionDeclaration(token.parent)) {\n      return [createDeleteFix(ts_textChanges_exports.ChangeTracker.with(context, (t) => deleteFunctionLikeDeclaration(t, sourceFile, token.parent)), [Diagnostics.Remove_unused_declaration_for_Colon_0, token.getText(sourceFile)])];\n    }\n    const result = [];\n    if (token.kind === 140 /* InferKeyword */) {\n      const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => changeInferToUnknown(t, sourceFile, token));\n      const name = cast(token.parent, isInferTypeNode).typeParameter.name.text;\n      result.push(createCodeFixAction(fixName3, changes, [Diagnostics.Replace_infer_0_with_unknown, name], fixIdInfer, Diagnostics.Replace_all_unused_infer_with_unknown));\n    } else {\n      const deletion = ts_textChanges_exports.ChangeTracker.with(context, (t) => tryDeleteDeclaration(\n        sourceFile,\n        token,\n        t,\n        checker,\n        sourceFiles,\n        program,\n        cancellationToken,\n        /*isFixAll*/\n        false\n      ));\n      if (deletion.length) {\n        const name = isComputedPropertyName(token.parent) ? token.parent : token;\n        result.push(createDeleteFix(deletion, [Diagnostics.Remove_unused_declaration_for_Colon_0, name.getText(sourceFile)]));\n      }\n    }\n    const prefix = ts_textChanges_exports.ChangeTracker.with(context, (t) => tryPrefixDeclaration(t, errorCode, sourceFile, token));\n    if (prefix.length) {\n      result.push(createCodeFixAction(fixName3, prefix, [Diagnostics.Prefix_0_with_an_underscore, token.getText(sourceFile)], fixIdPrefix, Diagnostics.Prefix_all_unused_declarations_with_where_possible));\n    }\n    return result;\n  },\n  fixIds: [fixIdPrefix, fixIdDelete, fixIdDeleteImports, fixIdInfer],\n  getAllCodeActions: (context) => {\n    const { sourceFile, program, cancellationToken } = context;\n    const checker = program.getTypeChecker();\n    const sourceFiles = program.getSourceFiles();\n    return codeFixAll(context, errorCodes43, (changes, diag2) => {\n      const token = getTokenAtPosition(sourceFile, diag2.start);\n      switch (context.fixId) {\n        case fixIdPrefix:\n          tryPrefixDeclaration(changes, diag2.code, sourceFile, token);\n          break;\n        case fixIdDeleteImports: {\n          const importDecl = tryGetFullImport(token);\n          if (importDecl) {\n            changes.delete(sourceFile, importDecl);\n          } else if (isImport(token)) {\n            tryDeleteDeclaration(\n              sourceFile,\n              token,\n              changes,\n              checker,\n              sourceFiles,\n              program,\n              cancellationToken,\n              /*isFixAll*/\n              true\n            );\n          }\n          break;\n        }\n        case fixIdDelete: {\n          if (token.kind === 140 /* InferKeyword */ || isImport(token)) {\n            break;\n          } else if (isJSDocTemplateTag(token)) {\n            changes.delete(sourceFile, token);\n          } else if (token.kind === 30 /* LessThanToken */) {\n            deleteTypeParameters(changes, sourceFile, token);\n          } else if (isObjectBindingPattern(token.parent)) {\n            if (token.parent.parent.initializer) {\n              break;\n            } else if (!isParameter(token.parent.parent) || isNotProvidedArguments(token.parent.parent, checker, sourceFiles)) {\n              changes.delete(sourceFile, token.parent.parent);\n            }\n          } else if (isArrayBindingPattern(token.parent.parent) && token.parent.parent.parent.initializer) {\n            break;\n          } else if (canDeleteEntireVariableStatement(sourceFile, token)) {\n            deleteEntireVariableStatement(changes, sourceFile, token.parent);\n          } else if (isIdentifier(token) && isFunctionDeclaration(token.parent)) {\n            deleteFunctionLikeDeclaration(changes, sourceFile, token.parent);\n          } else {\n            tryDeleteDeclaration(\n              sourceFile,\n              token,\n              changes,\n              checker,\n              sourceFiles,\n              program,\n              cancellationToken,\n              /*isFixAll*/\n              true\n            );\n          }\n          break;\n        }\n        case fixIdInfer:\n          if (token.kind === 140 /* InferKeyword */) {\n            changeInferToUnknown(changes, sourceFile, token);\n          }\n          break;\n        default:\n          Debug.fail(JSON.stringify(context.fixId));\n      }\n    });\n  }\n});\nfunction changeInferToUnknown(changes, sourceFile, token) {\n  changes.replaceNode(sourceFile, token.parent, factory.createKeywordTypeNode(159 /* UnknownKeyword */));\n}\nfunction createDeleteFix(changes, diag2) {\n  return createCodeFixAction(fixName3, changes, diag2, fixIdDelete, Diagnostics.Delete_all_unused_declarations);\n}\nfunction deleteTypeParameters(changes, sourceFile, token) {\n  changes.delete(sourceFile, Debug.checkDefined(cast(token.parent, isDeclarationWithTypeParameterChildren).typeParameters, \"The type parameter to delete should exist\"));\n}\nfunction isImport(token) {\n  return token.kind === 102 /* ImportKeyword */ || token.kind === 80 /* Identifier */ && (token.parent.kind === 277 /* ImportSpecifier */ || token.parent.kind === 274 /* ImportClause */);\n}\nfunction tryGetFullImport(token) {\n  return token.kind === 102 /* ImportKeyword */ ? tryCast(token.parent, isImportDeclaration) : void 0;\n}\nfunction canDeleteEntireVariableStatement(sourceFile, token) {\n  return isVariableDeclarationList(token.parent) && first(token.parent.getChildren(sourceFile)) === token;\n}\nfunction deleteEntireVariableStatement(changes, sourceFile, node) {\n  changes.delete(sourceFile, node.parent.kind === 244 /* VariableStatement */ ? node.parent : node);\n}\nfunction deleteDestructuringElements(changes, sourceFile, node) {\n  forEach(node.elements, (n) => changes.delete(sourceFile, n));\n}\nfunction deleteDestructuring(context, changes, sourceFile, { parent: parent2 }) {\n  if (isVariableDeclaration(parent2) && parent2.initializer && isCallLikeExpression(parent2.initializer)) {\n    if (isVariableDeclarationList(parent2.parent) && length(parent2.parent.declarations) > 1) {\n      const varStatement = parent2.parent.parent;\n      const pos = varStatement.getStart(sourceFile);\n      const end = varStatement.end;\n      changes.delete(sourceFile, parent2);\n      changes.insertNodeAt(sourceFile, end, parent2.initializer, {\n        prefix: getNewLineOrDefaultFromHost(context.host, context.formatContext.options) + sourceFile.text.slice(getPrecedingNonSpaceCharacterPosition(sourceFile.text, pos - 1), pos),\n        suffix: probablyUsesSemicolons(sourceFile) ? \";\" : \"\"\n      });\n    } else {\n      changes.replaceNode(sourceFile, parent2.parent, parent2.initializer);\n    }\n  } else {\n    changes.delete(sourceFile, parent2);\n  }\n}\nfunction tryPrefixDeclaration(changes, errorCode, sourceFile, token) {\n  if (errorCode === Diagnostics.Property_0_is_declared_but_its_value_is_never_read.code) return;\n  if (token.kind === 140 /* InferKeyword */) {\n    token = cast(token.parent, isInferTypeNode).typeParameter.name;\n  }\n  if (isIdentifier(token) && canPrefix(token)) {\n    changes.replaceNode(sourceFile, token, factory.createIdentifier(`_${token.text}`));\n    if (isParameter(token.parent)) {\n      getJSDocParameterTags(token.parent).forEach((tag) => {\n        if (isIdentifier(tag.name)) {\n          changes.replaceNode(sourceFile, tag.name, factory.createIdentifier(`_${tag.name.text}`));\n        }\n      });\n    }\n  }\n}\nfunction canPrefix(token) {\n  switch (token.parent.kind) {\n    case 170 /* Parameter */:\n    case 169 /* TypeParameter */:\n      return true;\n    case 261 /* VariableDeclaration */: {\n      const varDecl = token.parent;\n      switch (varDecl.parent.parent.kind) {\n        case 251 /* ForOfStatement */:\n        case 250 /* ForInStatement */:\n          return true;\n      }\n    }\n  }\n  return false;\n}\nfunction tryDeleteDeclaration(sourceFile, token, changes, checker, sourceFiles, program, cancellationToken, isFixAll) {\n  tryDeleteDeclarationWorker(token, changes, sourceFile, checker, sourceFiles, program, cancellationToken, isFixAll);\n  if (isIdentifier(token)) {\n    ts_FindAllReferences_exports.Core.eachSymbolReferenceInFile(token, checker, sourceFile, (ref) => {\n      if (isPropertyAccessExpression(ref.parent) && ref.parent.name === ref) ref = ref.parent;\n      if (!isFixAll && mayDeleteExpression(ref)) {\n        changes.delete(sourceFile, ref.parent.parent);\n      }\n    });\n  }\n}\nfunction tryDeleteDeclarationWorker(token, changes, sourceFile, checker, sourceFiles, program, cancellationToken, isFixAll) {\n  const { parent: parent2 } = token;\n  if (isParameter(parent2)) {\n    tryDeleteParameter(changes, sourceFile, parent2, checker, sourceFiles, program, cancellationToken, isFixAll);\n  } else if (!(isFixAll && isIdentifier(token) && ts_FindAllReferences_exports.Core.isSymbolReferencedInFile(token, checker, sourceFile))) {\n    const node = isImportClause(parent2) ? token : isComputedPropertyName(parent2) ? parent2.parent : parent2;\n    Debug.assert(node !== sourceFile, \"should not delete whole source file\");\n    changes.delete(sourceFile, node);\n  }\n}\nfunction tryDeleteParameter(changes, sourceFile, parameter, checker, sourceFiles, program, cancellationToken, isFixAll = false) {\n  if (mayDeleteParameter(checker, sourceFile, parameter, sourceFiles, program, cancellationToken, isFixAll)) {\n    if (parameter.modifiers && parameter.modifiers.length > 0 && (!isIdentifier(parameter.name) || ts_FindAllReferences_exports.Core.isSymbolReferencedInFile(parameter.name, checker, sourceFile))) {\n      for (const modifier of parameter.modifiers) {\n        if (isModifier(modifier)) {\n          changes.deleteModifier(sourceFile, modifier);\n        }\n      }\n    } else if (!parameter.initializer && isNotProvidedArguments(parameter, checker, sourceFiles)) {\n      changes.delete(sourceFile, parameter);\n    }\n  }\n}\nfunction isNotProvidedArguments(parameter, checker, sourceFiles) {\n  const index = parameter.parent.parameters.indexOf(parameter);\n  return !ts_FindAllReferences_exports.Core.someSignatureUsage(parameter.parent, sourceFiles, checker, (_, call) => !call || call.arguments.length > index);\n}\nfunction mayDeleteParameter(checker, sourceFile, parameter, sourceFiles, program, cancellationToken, isFixAll) {\n  const { parent: parent2 } = parameter;\n  switch (parent2.kind) {\n    case 175 /* MethodDeclaration */:\n    case 177 /* Constructor */:\n      const index = parent2.parameters.indexOf(parameter);\n      const referent = isMethodDeclaration(parent2) ? parent2.name : parent2;\n      const entries = ts_FindAllReferences_exports.Core.getReferencedSymbolsForNode(parent2.pos, referent, program, sourceFiles, cancellationToken);\n      if (entries) {\n        for (const entry of entries) {\n          for (const reference of entry.references) {\n            if (reference.kind === ts_FindAllReferences_exports.EntryKind.Node) {\n              const isSuperCall2 = isSuperKeyword(reference.node) && isCallExpression(reference.node.parent) && reference.node.parent.arguments.length > index;\n              const isSuperMethodCall = isPropertyAccessExpression(reference.node.parent) && isSuperKeyword(reference.node.parent.expression) && isCallExpression(reference.node.parent.parent) && reference.node.parent.parent.arguments.length > index;\n              const isOverriddenMethod = (isMethodDeclaration(reference.node.parent) || isMethodSignature(reference.node.parent)) && reference.node.parent !== parameter.parent && reference.node.parent.parameters.length > index;\n              if (isSuperCall2 || isSuperMethodCall || isOverriddenMethod) return false;\n            }\n          }\n        }\n      }\n      return true;\n    case 263 /* FunctionDeclaration */: {\n      if (parent2.name && isCallbackLike(checker, sourceFile, parent2.name)) {\n        return isLastParameter(parent2, parameter, isFixAll);\n      }\n      return true;\n    }\n    case 219 /* FunctionExpression */:\n    case 220 /* ArrowFunction */:\n      return isLastParameter(parent2, parameter, isFixAll);\n    case 179 /* SetAccessor */:\n      return false;\n    case 178 /* GetAccessor */:\n      return true;\n    default:\n      return Debug.failBadSyntaxKind(parent2);\n  }\n}\nfunction isCallbackLike(checker, sourceFile, name) {\n  return !!ts_FindAllReferences_exports.Core.eachSymbolReferenceInFile(name, checker, sourceFile, (reference) => isIdentifier(reference) && isCallExpression(reference.parent) && reference.parent.arguments.includes(reference));\n}\nfunction isLastParameter(func, parameter, isFixAll) {\n  const parameters = func.parameters;\n  const index = parameters.indexOf(parameter);\n  Debug.assert(index !== -1, \"The parameter should already be in the list\");\n  return isFixAll ? parameters.slice(index + 1).every((p) => isIdentifier(p.name) && !p.symbol.isReferenced) : index === parameters.length - 1;\n}\nfunction mayDeleteExpression(node) {\n  return (isBinaryExpression(node.parent) && node.parent.left === node || (isPostfixUnaryExpression(node.parent) || isPrefixUnaryExpression(node.parent)) && node.parent.operand === node) && isExpressionStatement(node.parent.parent);\n}\nfunction deleteFunctionLikeDeclaration(changes, sourceFile, node) {\n  const declarations = node.symbol.declarations;\n  if (declarations) {\n    for (const declaration of declarations) {\n      changes.delete(sourceFile, declaration);\n    }\n  }\n}\n\n// src/services/codefixes/fixUnreachableCode.ts\nvar fixId34 = \"fixUnreachableCode\";\nvar errorCodes44 = [Diagnostics.Unreachable_code_detected.code];\nregisterCodeFix({\n  errorCodes: errorCodes44,\n  getCodeActions(context) {\n    const syntacticDiagnostics = context.program.getSyntacticDiagnostics(context.sourceFile, context.cancellationToken);\n    if (syntacticDiagnostics.length) return;\n    const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange27(t, context.sourceFile, context.span.start, context.span.length, context.errorCode));\n    return [createCodeFixAction(fixId34, changes, Diagnostics.Remove_unreachable_code, fixId34, Diagnostics.Remove_all_unreachable_code)];\n  },\n  fixIds: [fixId34],\n  getAllCodeActions: (context) => codeFixAll(context, errorCodes44, (changes, diag2) => doChange27(changes, diag2.file, diag2.start, diag2.length, diag2.code))\n});\nfunction doChange27(changes, sourceFile, start, length2, errorCode) {\n  const token = getTokenAtPosition(sourceFile, start);\n  const statement = findAncestor(token, isStatement);\n  if (statement.getStart(sourceFile) !== token.getStart(sourceFile)) {\n    const logData = JSON.stringify({\n      statementKind: Debug.formatSyntaxKind(statement.kind),\n      tokenKind: Debug.formatSyntaxKind(token.kind),\n      errorCode,\n      start,\n      length: length2\n    });\n    Debug.fail(\"Token and statement should start at the same point. \" + logData);\n  }\n  const container = (isBlock(statement.parent) ? statement.parent : statement).parent;\n  if (!isBlock(statement.parent) || statement === first(statement.parent.statements)) {\n    switch (container.kind) {\n      case 246 /* IfStatement */:\n        if (container.elseStatement) {\n          if (isBlock(statement.parent)) {\n            break;\n          } else {\n            changes.replaceNode(sourceFile, statement, factory.createBlock(emptyArray));\n          }\n          return;\n        }\n      // falls through\n      case 248 /* WhileStatement */:\n      case 249 /* ForStatement */:\n        changes.delete(sourceFile, container);\n        return;\n    }\n  }\n  if (isBlock(statement.parent)) {\n    const end = start + length2;\n    const lastStatement = Debug.checkDefined(lastWhere(sliceAfter(statement.parent.statements, statement), (s) => s.pos < end), \"Some statement should be last\");\n    changes.deleteNodeRange(sourceFile, statement, lastStatement);\n  } else {\n    changes.delete(sourceFile, statement);\n  }\n}\nfunction lastWhere(a, pred) {\n  let last2;\n  for (const value of a) {\n    if (!pred(value)) break;\n    last2 = value;\n  }\n  return last2;\n}\n\n// src/services/codefixes/fixUnusedLabel.ts\nvar fixId35 = \"fixUnusedLabel\";\nvar errorCodes45 = [Diagnostics.Unused_label.code];\nregisterCodeFix({\n  errorCodes: errorCodes45,\n  getCodeActions(context) {\n    const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange28(t, context.sourceFile, context.span.start));\n    return [createCodeFixAction(fixId35, changes, Diagnostics.Remove_unused_label, fixId35, Diagnostics.Remove_all_unused_labels)];\n  },\n  fixIds: [fixId35],\n  getAllCodeActions: (context) => codeFixAll(context, errorCodes45, (changes, diag2) => doChange28(changes, diag2.file, diag2.start))\n});\nfunction doChange28(changes, sourceFile, start) {\n  const token = getTokenAtPosition(sourceFile, start);\n  const labeledStatement = cast(token.parent, isLabeledStatement);\n  const pos = token.getStart(sourceFile);\n  const statementPos = labeledStatement.statement.getStart(sourceFile);\n  const end = positionsAreOnSameLine(pos, statementPos, sourceFile) ? statementPos : skipTrivia(\n    sourceFile.text,\n    findChildOfKind(labeledStatement, 59 /* ColonToken */, sourceFile).end,\n    /*stopAfterLineBreak*/\n    true\n  );\n  changes.deleteRange(sourceFile, { pos, end });\n}\n\n// src/services/codefixes/fixJSDocTypes.ts\nvar fixIdPlain = \"fixJSDocTypes_plain\";\nvar fixIdNullable = \"fixJSDocTypes_nullable\";\nvar errorCodes46 = [\n  Diagnostics.JSDoc_types_can_only_be_used_inside_documentation_comments.code,\n  Diagnostics._0_at_the_end_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1.code,\n  Diagnostics._0_at_the_start_of_a_type_is_not_valid_TypeScript_syntax_Did_you_mean_to_write_1.code\n];\nregisterCodeFix({\n  errorCodes: errorCodes46,\n  getCodeActions(context) {\n    const { sourceFile } = context;\n    const checker = context.program.getTypeChecker();\n    const info = getInfo15(sourceFile, context.span.start, checker);\n    if (!info) return void 0;\n    const { typeNode, type } = info;\n    const original = typeNode.getText(sourceFile);\n    const actions2 = [fix(type, fixIdPlain, Diagnostics.Change_all_jsdoc_style_types_to_TypeScript)];\n    if (typeNode.kind === 315 /* JSDocNullableType */) {\n      actions2.push(fix(type, fixIdNullable, Diagnostics.Change_all_jsdoc_style_types_to_TypeScript_and_add_undefined_to_nullable_types));\n    }\n    return actions2;\n    function fix(type2, fixId56, fixAllDescription) {\n      const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange29(t, sourceFile, typeNode, type2, checker));\n      return createCodeFixAction(\"jdocTypes\", changes, [Diagnostics.Change_0_to_1, original, checker.typeToString(type2)], fixId56, fixAllDescription);\n    }\n  },\n  fixIds: [fixIdPlain, fixIdNullable],\n  getAllCodeActions(context) {\n    const { fixId: fixId56, program, sourceFile } = context;\n    const checker = program.getTypeChecker();\n    return codeFixAll(context, errorCodes46, (changes, err) => {\n      const info = getInfo15(err.file, err.start, checker);\n      if (!info) return;\n      const { typeNode, type } = info;\n      const fixedType = typeNode.kind === 315 /* JSDocNullableType */ && fixId56 === fixIdNullable ? checker.getNullableType(type, 32768 /* Undefined */) : type;\n      doChange29(changes, sourceFile, typeNode, fixedType, checker);\n    });\n  }\n});\nfunction doChange29(changes, sourceFile, oldTypeNode, newType, checker) {\n  changes.replaceNode(sourceFile, oldTypeNode, checker.typeToTypeNode(\n    newType,\n    /*enclosingDeclaration*/\n    oldTypeNode,\n    /*flags*/\n    void 0\n  ));\n}\nfunction getInfo15(sourceFile, pos, checker) {\n  const decl = findAncestor(getTokenAtPosition(sourceFile, pos), isTypeContainer);\n  const typeNode = decl && decl.type;\n  return typeNode && { typeNode, type: getType(checker, typeNode) };\n}\nfunction isTypeContainer(node) {\n  switch (node.kind) {\n    case 235 /* AsExpression */:\n    case 180 /* CallSignature */:\n    case 181 /* ConstructSignature */:\n    case 263 /* FunctionDeclaration */:\n    case 178 /* GetAccessor */:\n    case 182 /* IndexSignature */:\n    case 201 /* MappedType */:\n    case 175 /* MethodDeclaration */:\n    case 174 /* MethodSignature */:\n    case 170 /* Parameter */:\n    case 173 /* PropertyDeclaration */:\n    case 172 /* PropertySignature */:\n    case 179 /* SetAccessor */:\n    case 266 /* TypeAliasDeclaration */:\n    case 217 /* TypeAssertionExpression */:\n    case 261 /* VariableDeclaration */:\n      return true;\n    default:\n      return false;\n  }\n}\nfunction getType(checker, node) {\n  if (isJSDocNullableType(node)) {\n    const type = checker.getTypeFromTypeNode(node.type);\n    if (type === checker.getNeverType() || type === checker.getVoidType()) {\n      return type;\n    }\n    return checker.getUnionType(\n      append([type, checker.getUndefinedType()], node.postfix ? void 0 : checker.getNullType())\n    );\n  }\n  return checker.getTypeFromTypeNode(node);\n}\n\n// src/services/codefixes/fixMissingCallParentheses.ts\nvar fixId36 = \"fixMissingCallParentheses\";\nvar errorCodes47 = [\n  Diagnostics.This_condition_will_always_return_true_since_this_function_is_always_defined_Did_you_mean_to_call_it_instead.code\n];\nregisterCodeFix({\n  errorCodes: errorCodes47,\n  fixIds: [fixId36],\n  getCodeActions(context) {\n    const { sourceFile, span } = context;\n    const callName = getCallName(sourceFile, span.start);\n    if (!callName) return;\n    const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange30(t, context.sourceFile, callName));\n    return [createCodeFixAction(fixId36, changes, Diagnostics.Add_missing_call_parentheses, fixId36, Diagnostics.Add_all_missing_call_parentheses)];\n  },\n  getAllCodeActions: (context) => codeFixAll(context, errorCodes47, (changes, diag2) => {\n    const callName = getCallName(diag2.file, diag2.start);\n    if (callName) doChange30(changes, diag2.file, callName);\n  })\n});\nfunction doChange30(changes, sourceFile, name) {\n  changes.replaceNodeWithText(sourceFile, name, `${name.text}()`);\n}\nfunction getCallName(sourceFile, start) {\n  const token = getTokenAtPosition(sourceFile, start);\n  if (isPropertyAccessExpression(token.parent)) {\n    let current = token.parent;\n    while (isPropertyAccessExpression(current.parent)) {\n      current = current.parent;\n    }\n    return current.name;\n  }\n  if (isIdentifier(token)) {\n    return token;\n  }\n  return void 0;\n}\n\n// src/services/codefixes/fixMissingTypeAnnotationOnExports.ts\nvar fixId37 = \"fixMissingTypeAnnotationOnExports\";\nvar addAnnotationFix = \"add-annotation\";\nvar addInlineTypeAssertion = \"add-type-assertion\";\nvar extractExpression = \"extract-expression\";\nvar errorCodes48 = [\n  Diagnostics.Function_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations.code,\n  Diagnostics.Method_must_have_an_explicit_return_type_annotation_with_isolatedDeclarations.code,\n  Diagnostics.At_least_one_accessor_must_have_an_explicit_type_annotation_with_isolatedDeclarations.code,\n  Diagnostics.Variable_must_have_an_explicit_type_annotation_with_isolatedDeclarations.code,\n  Diagnostics.Parameter_must_have_an_explicit_type_annotation_with_isolatedDeclarations.code,\n  Diagnostics.Property_must_have_an_explicit_type_annotation_with_isolatedDeclarations.code,\n  Diagnostics.Expression_type_can_t_be_inferred_with_isolatedDeclarations.code,\n  Diagnostics.Binding_elements_can_t_be_exported_directly_with_isolatedDeclarations.code,\n  Diagnostics.Computed_property_names_on_class_or_object_literals_cannot_be_inferred_with_isolatedDeclarations.code,\n  Diagnostics.Computed_properties_must_be_number_or_string_literals_variables_or_dotted_expressions_with_isolatedDeclarations.code,\n  Diagnostics.Enum_member_initializers_must_be_computable_without_references_to_external_symbols_with_isolatedDeclarations.code,\n  Diagnostics.Extends_clause_can_t_contain_an_expression_with_isolatedDeclarations.code,\n  Diagnostics.Objects_that_contain_shorthand_properties_can_t_be_inferred_with_isolatedDeclarations.code,\n  Diagnostics.Objects_that_contain_spread_assignments_can_t_be_inferred_with_isolatedDeclarations.code,\n  Diagnostics.Arrays_with_spread_elements_can_t_inferred_with_isolatedDeclarations.code,\n  Diagnostics.Default_exports_can_t_be_inferred_with_isolatedDeclarations.code,\n  Diagnostics.Only_const_arrays_can_be_inferred_with_isolatedDeclarations.code,\n  Diagnostics.Assigning_properties_to_functions_without_declaring_them_is_not_supported_with_isolatedDeclarations_Add_an_explicit_declaration_for_the_properties_assigned_to_this_function.code,\n  Diagnostics.Declaration_emit_for_this_parameter_requires_implicitly_adding_undefined_to_its_type_This_is_not_supported_with_isolatedDeclarations.code,\n  Diagnostics.Type_containing_private_name_0_can_t_be_used_with_isolatedDeclarations.code,\n  Diagnostics.Add_satisfies_and_a_type_assertion_to_this_expression_satisfies_T_as_T_to_make_the_type_explicit.code\n];\nvar canHaveTypeAnnotation = /* @__PURE__ */ new Set([\n  178 /* GetAccessor */,\n  175 /* MethodDeclaration */,\n  173 /* PropertyDeclaration */,\n  263 /* FunctionDeclaration */,\n  219 /* FunctionExpression */,\n  220 /* ArrowFunction */,\n  261 /* VariableDeclaration */,\n  170 /* Parameter */,\n  278 /* ExportAssignment */,\n  264 /* ClassDeclaration */,\n  207 /* ObjectBindingPattern */,\n  208 /* ArrayBindingPattern */\n]);\nvar declarationEmitNodeBuilderFlags2 = 1024 /* MultilineObjectLiterals */ | 2048 /* WriteClassExpressionAsTypeLiteral */ | 4096 /* UseTypeOfFunction */ | 8 /* UseStructuralFallback */ | 524288 /* AllowEmptyTuple */ | 4 /* GenerateNamesForShadowedTypeParams */ | 1 /* NoTruncation */;\nvar declarationEmitInternalNodeBuilderFlags2 = 1 /* WriteComputedProps */;\nregisterCodeFix({\n  errorCodes: errorCodes48,\n  fixIds: [fixId37],\n  getCodeActions(context) {\n    const fixes = [];\n    addCodeAction(addAnnotationFix, fixes, context, 0 /* Full */, (f) => f.addTypeAnnotation(context.span));\n    addCodeAction(addAnnotationFix, fixes, context, 1 /* Relative */, (f) => f.addTypeAnnotation(context.span));\n    addCodeAction(addAnnotationFix, fixes, context, 2 /* Widened */, (f) => f.addTypeAnnotation(context.span));\n    addCodeAction(addInlineTypeAssertion, fixes, context, 0 /* Full */, (f) => f.addInlineAssertion(context.span));\n    addCodeAction(addInlineTypeAssertion, fixes, context, 1 /* Relative */, (f) => f.addInlineAssertion(context.span));\n    addCodeAction(addInlineTypeAssertion, fixes, context, 2 /* Widened */, (f) => f.addInlineAssertion(context.span));\n    addCodeAction(extractExpression, fixes, context, 0 /* Full */, (f) => f.extractAsVariable(context.span));\n    return fixes;\n  },\n  getAllCodeActions: (context) => {\n    const changes = withContext(context, 0 /* Full */, (f) => {\n      eachDiagnostic(context, errorCodes48, (diag2) => {\n        f.addTypeAnnotation(diag2);\n      });\n    });\n    return createCombinedCodeActions(changes.textChanges);\n  }\n});\nfunction addCodeAction(fixName8, fixes, context, typePrintMode, cb) {\n  const changes = withContext(context, typePrintMode, cb);\n  if (changes.result && changes.textChanges.length) {\n    fixes.push(createCodeFixAction(\n      fixName8,\n      changes.textChanges,\n      changes.result,\n      fixId37,\n      Diagnostics.Add_all_missing_type_annotations\n    ));\n  }\n}\nfunction withContext(context, typePrintMode, cb) {\n  const emptyInferenceResult = { typeNode: void 0, mutatedTarget: false };\n  const changeTracker = ts_textChanges_exports.ChangeTracker.fromContext(context);\n  const sourceFile = context.sourceFile;\n  const program = context.program;\n  const typeChecker = program.getTypeChecker();\n  const scriptTarget = getEmitScriptTarget(program.getCompilerOptions());\n  const importAdder = createImportAdder(context.sourceFile, context.program, context.preferences, context.host);\n  const fixedNodes = /* @__PURE__ */ new Set();\n  const expandoPropertiesAdded = /* @__PURE__ */ new Set();\n  const typePrinter = createPrinter({\n    preserveSourceNewlines: false\n  });\n  const result = cb({ addTypeAnnotation, addInlineAssertion, extractAsVariable });\n  importAdder.writeFixes(changeTracker);\n  return {\n    result,\n    textChanges: changeTracker.getChanges()\n  };\n  function addTypeAnnotation(span) {\n    context.cancellationToken.throwIfCancellationRequested();\n    const nodeWithDiag = getTokenAtPosition(sourceFile, span.start);\n    const expandoFunction = findExpandoFunction(nodeWithDiag);\n    if (expandoFunction) {\n      if (isFunctionDeclaration(expandoFunction)) {\n        return createNamespaceForExpandoProperties(expandoFunction);\n      }\n      return fixIsolatedDeclarationError(expandoFunction);\n    }\n    const nodeMissingType = findAncestorWithMissingType(nodeWithDiag);\n    if (nodeMissingType) {\n      return fixIsolatedDeclarationError(nodeMissingType);\n    }\n    return void 0;\n  }\n  function createNamespaceForExpandoProperties(expandoFunc) {\n    var _a;\n    if (expandoPropertiesAdded == null ? void 0 : expandoPropertiesAdded.has(expandoFunc)) return void 0;\n    expandoPropertiesAdded == null ? void 0 : expandoPropertiesAdded.add(expandoFunc);\n    const type = typeChecker.getTypeAtLocation(expandoFunc);\n    const elements = typeChecker.getPropertiesOfType(type);\n    if (!expandoFunc.name || elements.length === 0) return void 0;\n    const newProperties = [];\n    for (const symbol of elements) {\n      if (!isIdentifierText(symbol.name, getEmitScriptTarget(program.getCompilerOptions()))) continue;\n      if (symbol.valueDeclaration && isVariableDeclaration(symbol.valueDeclaration)) continue;\n      newProperties.push(factory.createVariableStatement(\n        [factory.createModifier(95 /* ExportKeyword */)],\n        factory.createVariableDeclarationList(\n          [factory.createVariableDeclaration(\n            symbol.name,\n            /*exclamationToken*/\n            void 0,\n            typeToTypeNode2(typeChecker.getTypeOfSymbol(symbol), expandoFunc),\n            /*initializer*/\n            void 0\n          )]\n        )\n      ));\n    }\n    if (newProperties.length === 0) return void 0;\n    const modifiers = [];\n    if ((_a = expandoFunc.modifiers) == null ? void 0 : _a.some((modifier) => modifier.kind === 95 /* ExportKeyword */)) {\n      modifiers.push(factory.createModifier(95 /* ExportKeyword */));\n    }\n    modifiers.push(factory.createModifier(138 /* DeclareKeyword */));\n    const namespace = factory.createModuleDeclaration(\n      modifiers,\n      expandoFunc.name,\n      factory.createModuleBlock(newProperties),\n      /*flags*/\n      32 /* Namespace */ | 128 /* ExportContext */ | 33554432 /* Ambient */ | 101441536 /* ContextFlags */\n    );\n    changeTracker.insertNodeAfter(sourceFile, expandoFunc, namespace);\n    return [Diagnostics.Annotate_types_of_properties_expando_function_in_a_namespace];\n  }\n  function needsParenthesizedExpressionForAssertion(node) {\n    return !isEntityNameExpression(node) && !isCallExpression(node) && !isObjectLiteralExpression(node) && !isArrayLiteralExpression(node);\n  }\n  function createAsExpression(node, type) {\n    if (needsParenthesizedExpressionForAssertion(node)) {\n      node = factory.createParenthesizedExpression(node);\n    }\n    return factory.createAsExpression(node, type);\n  }\n  function createSatisfiesAsExpression(node, type) {\n    if (needsParenthesizedExpressionForAssertion(node)) {\n      node = factory.createParenthesizedExpression(node);\n    }\n    return factory.createAsExpression(factory.createSatisfiesExpression(node, getSynthesizedDeepClone(type)), type);\n  }\n  function addInlineAssertion(span) {\n    context.cancellationToken.throwIfCancellationRequested();\n    const nodeWithDiag = getTokenAtPosition(sourceFile, span.start);\n    const expandoFunction = findExpandoFunction(nodeWithDiag);\n    if (expandoFunction) return;\n    const targetNode = findBestFittingNode(nodeWithDiag, span);\n    if (!targetNode || isValueSignatureDeclaration(targetNode) || isValueSignatureDeclaration(targetNode.parent)) return;\n    const isExpressionTarget = isExpression(targetNode);\n    const isShorthandPropertyAssignmentTarget = isShorthandPropertyAssignment(targetNode);\n    if (!isShorthandPropertyAssignmentTarget && isDeclaration(targetNode)) {\n      return void 0;\n    }\n    if (findAncestor(targetNode, isBindingPattern)) {\n      return void 0;\n    }\n    if (findAncestor(targetNode, isEnumMember)) {\n      return void 0;\n    }\n    if (isExpressionTarget && (findAncestor(targetNode, isHeritageClause) || findAncestor(targetNode, isTypeNode))) {\n      return void 0;\n    }\n    if (isSpreadElement(targetNode)) {\n      return void 0;\n    }\n    const variableDeclaration = findAncestor(targetNode, isVariableDeclaration);\n    const type = variableDeclaration && typeChecker.getTypeAtLocation(variableDeclaration);\n    if (type && type.flags & 8192 /* UniqueESSymbol */) {\n      return void 0;\n    }\n    if (!(isExpressionTarget || isShorthandPropertyAssignmentTarget)) return void 0;\n    const { typeNode, mutatedTarget } = inferType(targetNode, type);\n    if (!typeNode || mutatedTarget) return void 0;\n    if (isShorthandPropertyAssignmentTarget) {\n      changeTracker.insertNodeAt(\n        sourceFile,\n        targetNode.end,\n        createAsExpression(\n          getSynthesizedDeepClone(targetNode.name),\n          typeNode\n        ),\n        {\n          prefix: \": \"\n        }\n      );\n    } else if (isExpressionTarget) {\n      changeTracker.replaceNode(\n        sourceFile,\n        targetNode,\n        createSatisfiesAsExpression(\n          getSynthesizedDeepClone(targetNode),\n          typeNode\n        )\n      );\n    } else {\n      Debug.assertNever(targetNode);\n    }\n    return [Diagnostics.Add_satisfies_and_an_inline_type_assertion_with_0, typeToStringForDiag(typeNode)];\n  }\n  function extractAsVariable(span) {\n    context.cancellationToken.throwIfCancellationRequested();\n    const nodeWithDiag = getTokenAtPosition(sourceFile, span.start);\n    const targetNode = findBestFittingNode(nodeWithDiag, span);\n    if (!targetNode || isValueSignatureDeclaration(targetNode) || isValueSignatureDeclaration(targetNode.parent)) return;\n    const isExpressionTarget = isExpression(targetNode);\n    if (!isExpressionTarget) return;\n    if (isArrayLiteralExpression(targetNode)) {\n      changeTracker.replaceNode(\n        sourceFile,\n        targetNode,\n        createAsExpression(targetNode, factory.createTypeReferenceNode(\"const\"))\n      );\n      return [Diagnostics.Mark_array_literal_as_const];\n    }\n    const parentPropertyAssignment = findAncestor(targetNode, isPropertyAssignment);\n    if (parentPropertyAssignment) {\n      if (parentPropertyAssignment === targetNode.parent && isEntityNameExpression(targetNode)) return;\n      const tempName = factory.createUniqueName(\n        getIdentifierForNode(targetNode, sourceFile, typeChecker, sourceFile),\n        16 /* Optimistic */\n      );\n      let replacementTarget = targetNode;\n      let initializationNode = targetNode;\n      if (isSpreadElement(replacementTarget)) {\n        replacementTarget = walkUpParenthesizedExpressions(replacementTarget.parent);\n        if (isConstAssertion2(replacementTarget.parent)) {\n          initializationNode = replacementTarget = replacementTarget.parent;\n        } else {\n          initializationNode = createAsExpression(\n            replacementTarget,\n            factory.createTypeReferenceNode(\"const\")\n          );\n        }\n      }\n      if (isEntityNameExpression(replacementTarget)) return void 0;\n      const variableDefinition = factory.createVariableStatement(\n        /*modifiers*/\n        void 0,\n        factory.createVariableDeclarationList([\n          factory.createVariableDeclaration(\n            tempName,\n            /*exclamationToken*/\n            void 0,\n            /*type*/\n            void 0,\n            initializationNode\n          )\n        ], 2 /* Const */)\n      );\n      const statement = findAncestor(targetNode, isStatement);\n      changeTracker.insertNodeBefore(sourceFile, statement, variableDefinition);\n      changeTracker.replaceNode(\n        sourceFile,\n        replacementTarget,\n        factory.createAsExpression(\n          factory.cloneNode(tempName),\n          factory.createTypeQueryNode(\n            factory.cloneNode(tempName)\n          )\n        )\n      );\n      return [Diagnostics.Extract_to_variable_and_replace_with_0_as_typeof_0, typeToStringForDiag(tempName)];\n    }\n  }\n  function findExpandoFunction(node) {\n    const expandoDeclaration = findAncestor(node, (n) => isStatement(n) ? \"quit\" : isExpandoPropertyDeclaration(n));\n    if (expandoDeclaration && isExpandoPropertyDeclaration(expandoDeclaration)) {\n      let assignmentTarget = expandoDeclaration;\n      if (isBinaryExpression(assignmentTarget)) {\n        assignmentTarget = assignmentTarget.left;\n        if (!isExpandoPropertyDeclaration(assignmentTarget)) return void 0;\n      }\n      const targetType = typeChecker.getTypeAtLocation(assignmentTarget.expression);\n      if (!targetType) return;\n      const properties = typeChecker.getPropertiesOfType(targetType);\n      if (some(properties, (p) => p.valueDeclaration === expandoDeclaration || p.valueDeclaration === expandoDeclaration.parent)) {\n        const fn = targetType.symbol.valueDeclaration;\n        if (fn) {\n          if (isFunctionExpressionOrArrowFunction(fn) && isVariableDeclaration(fn.parent)) {\n            return fn.parent;\n          }\n          if (isFunctionDeclaration(fn)) {\n            return fn;\n          }\n        }\n      }\n    }\n    return void 0;\n  }\n  function fixIsolatedDeclarationError(node) {\n    if (fixedNodes == null ? void 0 : fixedNodes.has(node)) return void 0;\n    fixedNodes == null ? void 0 : fixedNodes.add(node);\n    switch (node.kind) {\n      case 170 /* Parameter */:\n      case 173 /* PropertyDeclaration */:\n      case 261 /* VariableDeclaration */:\n        return addTypeToVariableLike(node);\n      case 220 /* ArrowFunction */:\n      case 219 /* FunctionExpression */:\n      case 263 /* FunctionDeclaration */:\n      case 175 /* MethodDeclaration */:\n      case 178 /* GetAccessor */:\n        return addTypeToSignatureDeclaration(node, sourceFile);\n      case 278 /* ExportAssignment */:\n        return transformExportAssignment(node);\n      case 264 /* ClassDeclaration */:\n        return transformExtendsClauseWithExpression(node);\n      case 207 /* ObjectBindingPattern */:\n      case 208 /* ArrayBindingPattern */:\n        return transformDestructuringPatterns(node);\n      default:\n        throw new Error(`Cannot find a fix for the given node ${node.kind}`);\n    }\n  }\n  function addTypeToSignatureDeclaration(func, sourceFile2) {\n    if (func.type) {\n      return;\n    }\n    const { typeNode } = inferType(func);\n    if (typeNode) {\n      changeTracker.tryInsertTypeAnnotation(\n        sourceFile2,\n        func,\n        typeNode\n      );\n      return [Diagnostics.Add_return_type_0, typeToStringForDiag(typeNode)];\n    }\n  }\n  function transformExportAssignment(defaultExport) {\n    if (defaultExport.isExportEquals) {\n      return;\n    }\n    const { typeNode } = inferType(defaultExport.expression);\n    if (!typeNode) return void 0;\n    const defaultIdentifier = factory.createUniqueName(\"_default\");\n    changeTracker.replaceNodeWithNodes(sourceFile, defaultExport, [\n      factory.createVariableStatement(\n        /*modifiers*/\n        void 0,\n        factory.createVariableDeclarationList(\n          [factory.createVariableDeclaration(\n            defaultIdentifier,\n            /*exclamationToken*/\n            void 0,\n            typeNode,\n            defaultExport.expression\n          )],\n          2 /* Const */\n        )\n      ),\n      factory.updateExportAssignment(defaultExport, defaultExport == null ? void 0 : defaultExport.modifiers, defaultIdentifier)\n    ]);\n    return [\n      Diagnostics.Extract_default_export_to_variable\n    ];\n  }\n  function transformExtendsClauseWithExpression(classDecl) {\n    var _a, _b;\n    const extendsClause = (_a = classDecl.heritageClauses) == null ? void 0 : _a.find((p) => p.token === 96 /* ExtendsKeyword */);\n    const heritageExpression = extendsClause == null ? void 0 : extendsClause.types[0];\n    if (!heritageExpression) {\n      return void 0;\n    }\n    const { typeNode: heritageTypeNode } = inferType(heritageExpression.expression);\n    if (!heritageTypeNode) {\n      return void 0;\n    }\n    const baseClassName = factory.createUniqueName(\n      classDecl.name ? classDecl.name.text + \"Base\" : \"Anonymous\",\n      16 /* Optimistic */\n    );\n    const heritageVariable = factory.createVariableStatement(\n      /*modifiers*/\n      void 0,\n      factory.createVariableDeclarationList(\n        [factory.createVariableDeclaration(\n          baseClassName,\n          /*exclamationToken*/\n          void 0,\n          heritageTypeNode,\n          heritageExpression.expression\n        )],\n        2 /* Const */\n      )\n    );\n    changeTracker.insertNodeBefore(sourceFile, classDecl, heritageVariable);\n    const trailingComments = getTrailingCommentRanges(sourceFile.text, heritageExpression.end);\n    const realEnd = ((_b = trailingComments == null ? void 0 : trailingComments[trailingComments.length - 1]) == null ? void 0 : _b.end) ?? heritageExpression.end;\n    changeTracker.replaceRange(\n      sourceFile,\n      {\n        pos: heritageExpression.getFullStart(),\n        end: realEnd\n      },\n      baseClassName,\n      {\n        prefix: \" \"\n      }\n    );\n    return [Diagnostics.Extract_base_class_to_variable];\n  }\n  let ExpressionType;\n  ((ExpressionType2) => {\n    ExpressionType2[ExpressionType2[\"Text\"] = 0] = \"Text\";\n    ExpressionType2[ExpressionType2[\"Computed\"] = 1] = \"Computed\";\n    ExpressionType2[ExpressionType2[\"ArrayAccess\"] = 2] = \"ArrayAccess\";\n    ExpressionType2[ExpressionType2[\"Identifier\"] = 3] = \"Identifier\";\n  })(ExpressionType || (ExpressionType = {}));\n  function transformDestructuringPatterns(bindingPattern) {\n    var _a;\n    const enclosingVariableDeclaration = bindingPattern.parent;\n    const enclosingVarStmt = bindingPattern.parent.parent.parent;\n    if (!enclosingVariableDeclaration.initializer) return void 0;\n    let baseExpr;\n    const newNodes = [];\n    if (!isIdentifier(enclosingVariableDeclaration.initializer)) {\n      const tempHolderForReturn = factory.createUniqueName(\"dest\", 16 /* Optimistic */);\n      baseExpr = { expression: { kind: 3 /* Identifier */, identifier: tempHolderForReturn } };\n      newNodes.push(factory.createVariableStatement(\n        /*modifiers*/\n        void 0,\n        factory.createVariableDeclarationList(\n          [factory.createVariableDeclaration(\n            tempHolderForReturn,\n            /*exclamationToken*/\n            void 0,\n            /*type*/\n            void 0,\n            enclosingVariableDeclaration.initializer\n          )],\n          2 /* Const */\n        )\n      ));\n    } else {\n      baseExpr = { expression: { kind: 3 /* Identifier */, identifier: enclosingVariableDeclaration.initializer } };\n    }\n    const bindingElements = [];\n    if (isArrayBindingPattern(bindingPattern)) {\n      addArrayBindingPatterns(bindingPattern, bindingElements, baseExpr);\n    } else {\n      addObjectBindingPatterns(bindingPattern, bindingElements, baseExpr);\n    }\n    const expressionToVar = /* @__PURE__ */ new Map();\n    for (const bindingElement of bindingElements) {\n      if (bindingElement.element.propertyName && isComputedPropertyName(bindingElement.element.propertyName)) {\n        const computedExpression = bindingElement.element.propertyName.expression;\n        const identifierForComputedProperty = factory.getGeneratedNameForNode(computedExpression);\n        const variableDecl = factory.createVariableDeclaration(\n          identifierForComputedProperty,\n          /*exclamationToken*/\n          void 0,\n          /*type*/\n          void 0,\n          computedExpression\n        );\n        const variableList = factory.createVariableDeclarationList([variableDecl], 2 /* Const */);\n        const variableStatement = factory.createVariableStatement(\n          /*modifiers*/\n          void 0,\n          variableList\n        );\n        newNodes.push(variableStatement);\n        expressionToVar.set(computedExpression, identifierForComputedProperty);\n      }\n      const name = bindingElement.element.name;\n      if (isArrayBindingPattern(name)) {\n        addArrayBindingPatterns(name, bindingElements, bindingElement);\n      } else if (isObjectBindingPattern(name)) {\n        addObjectBindingPatterns(name, bindingElements, bindingElement);\n      } else {\n        const { typeNode } = inferType(name);\n        let variableInitializer = createChainedExpression(bindingElement, expressionToVar);\n        if (bindingElement.element.initializer) {\n          const propertyName = (_a = bindingElement.element) == null ? void 0 : _a.propertyName;\n          const tempName = factory.createUniqueName(\n            propertyName && isIdentifier(propertyName) ? propertyName.text : \"temp\",\n            16 /* Optimistic */\n          );\n          newNodes.push(factory.createVariableStatement(\n            /*modifiers*/\n            void 0,\n            factory.createVariableDeclarationList(\n              [factory.createVariableDeclaration(\n                tempName,\n                /*exclamationToken*/\n                void 0,\n                /*type*/\n                void 0,\n                variableInitializer\n              )],\n              2 /* Const */\n            )\n          ));\n          variableInitializer = factory.createConditionalExpression(\n            factory.createBinaryExpression(\n              tempName,\n              factory.createToken(37 /* EqualsEqualsEqualsToken */),\n              factory.createIdentifier(\"undefined\")\n            ),\n            factory.createToken(58 /* QuestionToken */),\n            bindingElement.element.initializer,\n            factory.createToken(59 /* ColonToken */),\n            variableInitializer\n          );\n        }\n        const exportModifier = hasSyntacticModifier(enclosingVarStmt, 32 /* Export */) ? [factory.createToken(95 /* ExportKeyword */)] : void 0;\n        newNodes.push(factory.createVariableStatement(\n          exportModifier,\n          factory.createVariableDeclarationList(\n            [factory.createVariableDeclaration(\n              name,\n              /*exclamationToken*/\n              void 0,\n              typeNode,\n              variableInitializer\n            )],\n            2 /* Const */\n          )\n        ));\n      }\n    }\n    if (enclosingVarStmt.declarationList.declarations.length > 1) {\n      newNodes.push(factory.updateVariableStatement(\n        enclosingVarStmt,\n        enclosingVarStmt.modifiers,\n        factory.updateVariableDeclarationList(\n          enclosingVarStmt.declarationList,\n          enclosingVarStmt.declarationList.declarations.filter((node) => node !== bindingPattern.parent)\n        )\n      ));\n    }\n    changeTracker.replaceNodeWithNodes(sourceFile, enclosingVarStmt, newNodes);\n    return [\n      Diagnostics.Extract_binding_expressions_to_variable\n    ];\n  }\n  function addArrayBindingPatterns(bindingPattern, bindingElements, parent2) {\n    for (let i = 0; i < bindingPattern.elements.length; ++i) {\n      const element = bindingPattern.elements[i];\n      if (isOmittedExpression(element)) {\n        continue;\n      }\n      bindingElements.push({\n        element,\n        parent: parent2,\n        expression: { kind: 2 /* ArrayAccess */, arrayIndex: i }\n      });\n    }\n  }\n  function addObjectBindingPatterns(bindingPattern, bindingElements, parent2) {\n    for (const bindingElement of bindingPattern.elements) {\n      let name;\n      if (bindingElement.propertyName) {\n        if (isComputedPropertyName(bindingElement.propertyName)) {\n          bindingElements.push({\n            element: bindingElement,\n            parent: parent2,\n            expression: { kind: 1 /* Computed */, computed: bindingElement.propertyName.expression }\n          });\n          continue;\n        } else {\n          name = bindingElement.propertyName.text;\n        }\n      } else {\n        name = bindingElement.name.text;\n      }\n      bindingElements.push({\n        element: bindingElement,\n        parent: parent2,\n        expression: { kind: 0 /* Text */, text: name }\n      });\n    }\n  }\n  function createChainedExpression(expression, expressionToVar) {\n    const reverseTraverse = [expression];\n    while (expression.parent) {\n      expression = expression.parent;\n      reverseTraverse.push(expression);\n    }\n    let chainedExpression = reverseTraverse[reverseTraverse.length - 1].expression.identifier;\n    for (let i = reverseTraverse.length - 2; i >= 0; --i) {\n      const nextSubExpr = reverseTraverse[i].expression;\n      if (nextSubExpr.kind === 0 /* Text */) {\n        chainedExpression = factory.createPropertyAccessChain(\n          chainedExpression,\n          /*questionDotToken*/\n          void 0,\n          factory.createIdentifier(nextSubExpr.text)\n        );\n      } else if (nextSubExpr.kind === 1 /* Computed */) {\n        chainedExpression = factory.createElementAccessExpression(\n          chainedExpression,\n          expressionToVar.get(nextSubExpr.computed)\n        );\n      } else if (nextSubExpr.kind === 2 /* ArrayAccess */) {\n        chainedExpression = factory.createElementAccessExpression(\n          chainedExpression,\n          nextSubExpr.arrayIndex\n        );\n      }\n    }\n    return chainedExpression;\n  }\n  function inferType(node, variableType) {\n    if (typePrintMode === 1 /* Relative */) {\n      return relativeType(node);\n    }\n    let type;\n    if (isValueSignatureDeclaration(node)) {\n      const signature = typeChecker.getSignatureFromDeclaration(node);\n      if (signature) {\n        const typePredicate = typeChecker.getTypePredicateOfSignature(signature);\n        if (typePredicate) {\n          if (!typePredicate.type) {\n            return emptyInferenceResult;\n          }\n          return {\n            typeNode: typePredicateToTypeNode(typePredicate, findAncestor(node, isDeclaration) ?? sourceFile, getFlags(typePredicate.type)),\n            mutatedTarget: false\n          };\n        }\n        type = typeChecker.getReturnTypeOfSignature(signature);\n      }\n    } else {\n      type = typeChecker.getTypeAtLocation(node);\n    }\n    if (!type) {\n      return emptyInferenceResult;\n    }\n    if (typePrintMode === 2 /* Widened */) {\n      if (variableType) {\n        type = variableType;\n      }\n      const widenedType = typeChecker.getWidenedLiteralType(type);\n      if (typeChecker.isTypeAssignableTo(widenedType, type)) {\n        return emptyInferenceResult;\n      }\n      type = widenedType;\n    }\n    const enclosingDeclaration = findAncestor(node, isDeclaration) ?? sourceFile;\n    if (isParameter(node) && typeChecker.requiresAddingImplicitUndefined(node, enclosingDeclaration)) {\n      type = typeChecker.getUnionType([typeChecker.getUndefinedType(), type], 0 /* None */);\n    }\n    return {\n      typeNode: typeToTypeNode2(type, enclosingDeclaration, getFlags(type)),\n      mutatedTarget: false\n    };\n    function getFlags(type2) {\n      return (isVariableDeclaration(node) || isPropertyDeclaration(node) && hasSyntacticModifier(node, 256 /* Static */ | 8 /* Readonly */)) && type2.flags & 8192 /* UniqueESSymbol */ ? 1048576 /* AllowUniqueESSymbolType */ : 0 /* None */;\n    }\n  }\n  function createTypeOfFromEntityNameExpression(node) {\n    return factory.createTypeQueryNode(getSynthesizedDeepClone(node));\n  }\n  function typeFromArraySpreadElements(node, name = \"temp\") {\n    const isConstContext = !!findAncestor(node, isConstAssertion2);\n    if (!isConstContext) return emptyInferenceResult;\n    return typeFromSpreads(\n      node,\n      name,\n      isConstContext,\n      (n) => n.elements,\n      isSpreadElement,\n      factory.createSpreadElement,\n      (props) => factory.createArrayLiteralExpression(\n        props,\n        /*multiLine*/\n        true\n      ),\n      (types) => factory.createTupleTypeNode(types.map(factory.createRestTypeNode))\n    );\n  }\n  function typeFromObjectSpreadAssignment(node, name = \"temp\") {\n    const isConstContext = !!findAncestor(node, isConstAssertion2);\n    return typeFromSpreads(\n      node,\n      name,\n      isConstContext,\n      (n) => n.properties,\n      isSpreadAssignment,\n      factory.createSpreadAssignment,\n      (props) => factory.createObjectLiteralExpression(\n        props,\n        /*multiLine*/\n        true\n      ),\n      factory.createIntersectionTypeNode\n    );\n  }\n  function typeFromSpreads(node, name, isConstContext, getChildren, isSpread, createSpread, makeNodeOfKind, finalType) {\n    const intersectionTypes = [];\n    const newSpreads = [];\n    let currentVariableProperties;\n    const statement = findAncestor(node, isStatement);\n    for (const prop of getChildren(node)) {\n      if (isSpread(prop)) {\n        finalizesVariablePart();\n        if (isEntityNameExpression(prop.expression)) {\n          intersectionTypes.push(createTypeOfFromEntityNameExpression(prop.expression));\n          newSpreads.push(prop);\n        } else {\n          makeVariable(prop.expression);\n        }\n      } else {\n        (currentVariableProperties ?? (currentVariableProperties = [])).push(prop);\n      }\n    }\n    if (newSpreads.length === 0) {\n      return emptyInferenceResult;\n    }\n    finalizesVariablePart();\n    changeTracker.replaceNode(sourceFile, node, makeNodeOfKind(newSpreads));\n    return {\n      typeNode: finalType(intersectionTypes),\n      mutatedTarget: true\n    };\n    function makeVariable(expression) {\n      const tempName = factory.createUniqueName(\n        name + \"_Part\" + (newSpreads.length + 1),\n        16 /* Optimistic */\n      );\n      const initializer = !isConstContext ? expression : factory.createAsExpression(\n        expression,\n        factory.createTypeReferenceNode(\"const\")\n      );\n      const variableDefinition = factory.createVariableStatement(\n        /*modifiers*/\n        void 0,\n        factory.createVariableDeclarationList([\n          factory.createVariableDeclaration(\n            tempName,\n            /*exclamationToken*/\n            void 0,\n            /*type*/\n            void 0,\n            initializer\n          )\n        ], 2 /* Const */)\n      );\n      changeTracker.insertNodeBefore(sourceFile, statement, variableDefinition);\n      intersectionTypes.push(createTypeOfFromEntityNameExpression(tempName));\n      newSpreads.push(createSpread(tempName));\n    }\n    function finalizesVariablePart() {\n      if (currentVariableProperties) {\n        makeVariable(makeNodeOfKind(\n          currentVariableProperties\n        ));\n        currentVariableProperties = void 0;\n      }\n    }\n  }\n  function isConstAssertion2(location) {\n    return isAssertionExpression(location) && isConstTypeReference(location.type);\n  }\n  function relativeType(node) {\n    if (isParameter(node)) {\n      return emptyInferenceResult;\n    }\n    if (isShorthandPropertyAssignment(node)) {\n      return {\n        typeNode: createTypeOfFromEntityNameExpression(node.name),\n        mutatedTarget: false\n      };\n    }\n    if (isEntityNameExpression(node)) {\n      return {\n        typeNode: createTypeOfFromEntityNameExpression(node),\n        mutatedTarget: false\n      };\n    }\n    if (isConstAssertion2(node)) {\n      return relativeType(node.expression);\n    }\n    if (isArrayLiteralExpression(node)) {\n      const variableDecl = findAncestor(node, isVariableDeclaration);\n      const partName = variableDecl && isIdentifier(variableDecl.name) ? variableDecl.name.text : void 0;\n      return typeFromArraySpreadElements(node, partName);\n    }\n    if (isObjectLiteralExpression(node)) {\n      const variableDecl = findAncestor(node, isVariableDeclaration);\n      const partName = variableDecl && isIdentifier(variableDecl.name) ? variableDecl.name.text : void 0;\n      return typeFromObjectSpreadAssignment(node, partName);\n    }\n    if (isVariableDeclaration(node) && node.initializer) {\n      return relativeType(node.initializer);\n    }\n    if (isConditionalExpression(node)) {\n      const { typeNode: trueType, mutatedTarget: mTrue } = relativeType(node.whenTrue);\n      if (!trueType) return emptyInferenceResult;\n      const { typeNode: falseType, mutatedTarget: mFalse } = relativeType(node.whenFalse);\n      if (!falseType) return emptyInferenceResult;\n      return {\n        typeNode: factory.createUnionTypeNode([trueType, falseType]),\n        mutatedTarget: mTrue || mFalse\n      };\n    }\n    return emptyInferenceResult;\n  }\n  function typeToTypeNode2(type, enclosingDeclaration, flags = 0 /* None */) {\n    let isTruncated = false;\n    const minimizedTypeNode = typeToMinimizedReferenceType(typeChecker, type, enclosingDeclaration, declarationEmitNodeBuilderFlags2 | flags, declarationEmitInternalNodeBuilderFlags2, {\n      moduleResolverHost: program,\n      trackSymbol() {\n        return true;\n      },\n      reportTruncationError() {\n        isTruncated = true;\n      }\n    });\n    if (!minimizedTypeNode) {\n      return void 0;\n    }\n    const result2 = typeNodeToAutoImportableTypeNode(minimizedTypeNode, importAdder, scriptTarget);\n    return isTruncated ? factory.createKeywordTypeNode(133 /* AnyKeyword */) : result2;\n  }\n  function typePredicateToTypeNode(typePredicate, enclosingDeclaration, flags = 0 /* None */) {\n    let isTruncated = false;\n    const result2 = typePredicateToAutoImportableTypeNode(typeChecker, importAdder, typePredicate, enclosingDeclaration, scriptTarget, declarationEmitNodeBuilderFlags2 | flags, declarationEmitInternalNodeBuilderFlags2, {\n      moduleResolverHost: program,\n      trackSymbol() {\n        return true;\n      },\n      reportTruncationError() {\n        isTruncated = true;\n      }\n    });\n    return isTruncated ? factory.createKeywordTypeNode(133 /* AnyKeyword */) : result2;\n  }\n  function addTypeToVariableLike(decl) {\n    const { typeNode } = inferType(decl);\n    if (typeNode) {\n      if (decl.type) {\n        changeTracker.replaceNode(getSourceFileOfNode(decl), decl.type, typeNode);\n      } else {\n        changeTracker.tryInsertTypeAnnotation(getSourceFileOfNode(decl), decl, typeNode);\n      }\n      return [Diagnostics.Add_annotation_of_type_0, typeToStringForDiag(typeNode)];\n    }\n  }\n  function typeToStringForDiag(node) {\n    setEmitFlags(node, 1 /* SingleLine */);\n    const result2 = typePrinter.printNode(4 /* Unspecified */, node, sourceFile);\n    if (result2.length > defaultMaximumTruncationLength) {\n      return result2.substring(0, defaultMaximumTruncationLength - \"...\".length) + \"...\";\n    }\n    setEmitFlags(node, 0 /* None */);\n    return result2;\n  }\n  function findAncestorWithMissingType(node) {\n    return findAncestor(node, (n) => {\n      return canHaveTypeAnnotation.has(n.kind) && (!isObjectBindingPattern(n) && !isArrayBindingPattern(n) || isVariableDeclaration(n.parent));\n    });\n  }\n  function findBestFittingNode(node, span) {\n    while (node && node.end < span.start + span.length) {\n      node = node.parent;\n    }\n    while (node.parent.pos === node.pos && node.parent.end === node.end) {\n      node = node.parent;\n    }\n    if (isIdentifier(node) && hasInitializer(node.parent) && node.parent.initializer) {\n      return node.parent.initializer;\n    }\n    return node;\n  }\n}\n\n// src/services/codefixes/fixAwaitInSyncFunction.ts\nvar fixId38 = \"fixAwaitInSyncFunction\";\nvar errorCodes49 = [\n  Diagnostics.await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules.code,\n  Diagnostics.await_using_statements_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules.code,\n  Diagnostics.for_await_loops_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules.code,\n  Diagnostics.Cannot_find_name_0_Did_you_mean_to_write_this_in_an_async_function.code\n];\nregisterCodeFix({\n  errorCodes: errorCodes49,\n  getCodeActions(context) {\n    const { sourceFile, span } = context;\n    const nodes = getNodes3(sourceFile, span.start);\n    if (!nodes) return void 0;\n    const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange31(t, sourceFile, nodes));\n    return [createCodeFixAction(fixId38, changes, Diagnostics.Add_async_modifier_to_containing_function, fixId38, Diagnostics.Add_all_missing_async_modifiers)];\n  },\n  fixIds: [fixId38],\n  getAllCodeActions: function getAllCodeActionsToFixAwaitInSyncFunction(context) {\n    const seen = /* @__PURE__ */ new Set();\n    return codeFixAll(context, errorCodes49, (changes, diag2) => {\n      const nodes = getNodes3(diag2.file, diag2.start);\n      if (!nodes || !addToSeen(seen, getNodeId(nodes.insertBefore))) return;\n      doChange31(changes, context.sourceFile, nodes);\n    });\n  }\n});\nfunction getReturnType(expr) {\n  if (expr.type) {\n    return expr.type;\n  }\n  if (isVariableDeclaration(expr.parent) && expr.parent.type && isFunctionTypeNode(expr.parent.type)) {\n    return expr.parent.type.type;\n  }\n}\nfunction getNodes3(sourceFile, start) {\n  const token = getTokenAtPosition(sourceFile, start);\n  const containingFunction = getContainingFunction(token);\n  if (!containingFunction) {\n    return;\n  }\n  let insertBefore;\n  switch (containingFunction.kind) {\n    case 175 /* MethodDeclaration */:\n      insertBefore = containingFunction.name;\n      break;\n    case 263 /* FunctionDeclaration */:\n    case 219 /* FunctionExpression */:\n      insertBefore = findChildOfKind(containingFunction, 100 /* FunctionKeyword */, sourceFile);\n      break;\n    case 220 /* ArrowFunction */:\n      const kind = containingFunction.typeParameters ? 30 /* LessThanToken */ : 21 /* OpenParenToken */;\n      insertBefore = findChildOfKind(containingFunction, kind, sourceFile) || first(containingFunction.parameters);\n      break;\n    default:\n      return;\n  }\n  return insertBefore && {\n    insertBefore,\n    returnType: getReturnType(containingFunction)\n  };\n}\nfunction doChange31(changes, sourceFile, { insertBefore, returnType }) {\n  if (returnType) {\n    const entityName = getEntityNameFromTypeNode(returnType);\n    if (!entityName || entityName.kind !== 80 /* Identifier */ || entityName.text !== \"Promise\") {\n      changes.replaceNode(sourceFile, returnType, factory.createTypeReferenceNode(\"Promise\", factory.createNodeArray([returnType])));\n    }\n  }\n  changes.insertModifierBefore(sourceFile, 134 /* AsyncKeyword */, insertBefore);\n}\n\n// src/services/codefixes/fixPropertyOverrideAccessor.ts\nvar errorCodes50 = [\n  Diagnostics._0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property.code,\n  Diagnostics._0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor.code\n];\nvar fixId39 = \"fixPropertyOverrideAccessor\";\nregisterCodeFix({\n  errorCodes: errorCodes50,\n  getCodeActions(context) {\n    const edits = doChange32(context.sourceFile, context.span.start, context.span.length, context.errorCode, context);\n    if (edits) {\n      return [createCodeFixAction(fixId39, edits, Diagnostics.Generate_get_and_set_accessors, fixId39, Diagnostics.Generate_get_and_set_accessors_for_all_overriding_properties)];\n    }\n  },\n  fixIds: [fixId39],\n  getAllCodeActions: (context) => codeFixAll(context, errorCodes50, (changes, diag2) => {\n    const edits = doChange32(diag2.file, diag2.start, diag2.length, diag2.code, context);\n    if (edits) {\n      for (const edit of edits) {\n        changes.pushRaw(context.sourceFile, edit);\n      }\n    }\n  })\n});\nfunction doChange32(file, start, length2, code, context) {\n  let startPosition;\n  let endPosition;\n  if (code === Diagnostics._0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property.code) {\n    startPosition = start;\n    endPosition = start + length2;\n  } else if (code === Diagnostics._0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor.code) {\n    const checker = context.program.getTypeChecker();\n    const node = getTokenAtPosition(file, start).parent;\n    if (isComputedPropertyName(node)) {\n      return;\n    }\n    Debug.assert(isAccessor(node), \"error span of fixPropertyOverrideAccessor should only be on an accessor\");\n    const containingClass = node.parent;\n    Debug.assert(isClassLike(containingClass), \"erroneous accessors should only be inside classes\");\n    const baseTypeNode = getEffectiveBaseTypeNode(containingClass);\n    if (!baseTypeNode) return;\n    const expression = skipParentheses(baseTypeNode.expression);\n    const base = isClassExpression(expression) ? expression.symbol : checker.getSymbolAtLocation(expression);\n    if (!base) return;\n    const baseType = checker.getDeclaredTypeOfSymbol(base);\n    const baseProp = checker.getPropertyOfType(baseType, unescapeLeadingUnderscores(getTextOfPropertyName(node.name)));\n    if (!baseProp || !baseProp.valueDeclaration) return;\n    startPosition = baseProp.valueDeclaration.pos;\n    endPosition = baseProp.valueDeclaration.end;\n    file = getSourceFileOfNode(baseProp.valueDeclaration);\n  } else {\n    Debug.fail(\"fixPropertyOverrideAccessor codefix got unexpected error code \" + code);\n  }\n  return generateAccessorFromProperty(file, context.program, startPosition, endPosition, context, Diagnostics.Generate_get_and_set_accessors.message);\n}\n\n// src/services/codefixes/inferFromUsage.ts\nvar fixId40 = \"inferFromUsage\";\nvar errorCodes51 = [\n  // Variable declarations\n  Diagnostics.Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined.code,\n  // Variable uses\n  Diagnostics.Variable_0_implicitly_has_an_1_type.code,\n  // Parameter declarations\n  Diagnostics.Parameter_0_implicitly_has_an_1_type.code,\n  Diagnostics.Rest_parameter_0_implicitly_has_an_any_type.code,\n  // Get Accessor declarations\n  Diagnostics.Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation.code,\n  Diagnostics._0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type.code,\n  // Set Accessor declarations\n  Diagnostics.Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation.code,\n  // Property declarations\n  Diagnostics.Member_0_implicitly_has_an_1_type.code,\n  //// Suggestions\n  // Variable declarations\n  Diagnostics.Variable_0_implicitly_has_type_1_in_some_locations_but_a_better_type_may_be_inferred_from_usage.code,\n  // Variable uses\n  Diagnostics.Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage.code,\n  // Parameter declarations\n  Diagnostics.Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage.code,\n  Diagnostics.Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage.code,\n  // Get Accessor declarations\n  Diagnostics.Property_0_implicitly_has_type_any_but_a_better_type_for_its_get_accessor_may_be_inferred_from_usage.code,\n  Diagnostics._0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage.code,\n  // Set Accessor declarations\n  Diagnostics.Property_0_implicitly_has_type_any_but_a_better_type_for_its_set_accessor_may_be_inferred_from_usage.code,\n  // Property declarations\n  Diagnostics.Member_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage.code,\n  // Function expressions and declarations\n  Diagnostics.this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation.code\n];\nregisterCodeFix({\n  errorCodes: errorCodes51,\n  getCodeActions(context) {\n    const { sourceFile, program, span: { start }, errorCode, cancellationToken, host, preferences } = context;\n    const token = getTokenAtPosition(sourceFile, start);\n    let declaration;\n    const changes = ts_textChanges_exports.ChangeTracker.with(context, (changes2) => {\n      declaration = doChange33(\n        changes2,\n        sourceFile,\n        token,\n        errorCode,\n        program,\n        cancellationToken,\n        /*markSeen*/\n        returnTrue,\n        host,\n        preferences\n      );\n    });\n    const name = declaration && getNameOfDeclaration(declaration);\n    return !name || changes.length === 0 ? void 0 : [createCodeFixAction(fixId40, changes, [getDiagnostic(errorCode, token), getTextOfNode(name)], fixId40, Diagnostics.Infer_all_types_from_usage)];\n  },\n  fixIds: [fixId40],\n  getAllCodeActions(context) {\n    const { sourceFile, program, cancellationToken, host, preferences } = context;\n    const markSeen = nodeSeenTracker();\n    return codeFixAll(context, errorCodes51, (changes, err) => {\n      doChange33(changes, sourceFile, getTokenAtPosition(err.file, err.start), err.code, program, cancellationToken, markSeen, host, preferences);\n    });\n  }\n});\nfunction getDiagnostic(errorCode, token) {\n  switch (errorCode) {\n    case Diagnostics.Parameter_0_implicitly_has_an_1_type.code:\n    case Diagnostics.Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage.code:\n      return isSetAccessorDeclaration(getContainingFunction(token)) ? Diagnostics.Infer_type_of_0_from_usage : Diagnostics.Infer_parameter_types_from_usage;\n    // TODO: GH#18217\n    case Diagnostics.Rest_parameter_0_implicitly_has_an_any_type.code:\n    case Diagnostics.Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage.code:\n      return Diagnostics.Infer_parameter_types_from_usage;\n    case Diagnostics.this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation.code:\n      return Diagnostics.Infer_this_type_of_0_from_usage;\n    default:\n      return Diagnostics.Infer_type_of_0_from_usage;\n  }\n}\nfunction mapSuggestionDiagnostic(errorCode) {\n  switch (errorCode) {\n    case Diagnostics.Variable_0_implicitly_has_type_1_in_some_locations_but_a_better_type_may_be_inferred_from_usage.code:\n      return Diagnostics.Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined.code;\n    case Diagnostics.Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage.code:\n      return Diagnostics.Variable_0_implicitly_has_an_1_type.code;\n    case Diagnostics.Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage.code:\n      return Diagnostics.Parameter_0_implicitly_has_an_1_type.code;\n    case Diagnostics.Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage.code:\n      return Diagnostics.Rest_parameter_0_implicitly_has_an_any_type.code;\n    case Diagnostics.Property_0_implicitly_has_type_any_but_a_better_type_for_its_get_accessor_may_be_inferred_from_usage.code:\n      return Diagnostics.Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation.code;\n    case Diagnostics._0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage.code:\n      return Diagnostics._0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type.code;\n    case Diagnostics.Property_0_implicitly_has_type_any_but_a_better_type_for_its_set_accessor_may_be_inferred_from_usage.code:\n      return Diagnostics.Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation.code;\n    case Diagnostics.Member_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage.code:\n      return Diagnostics.Member_0_implicitly_has_an_1_type.code;\n  }\n  return errorCode;\n}\nfunction doChange33(changes, sourceFile, token, errorCode, program, cancellationToken, markSeen, host, preferences) {\n  if (!isParameterPropertyModifier(token.kind) && token.kind !== 80 /* Identifier */ && token.kind !== 26 /* DotDotDotToken */ && token.kind !== 110 /* ThisKeyword */) {\n    return void 0;\n  }\n  const { parent: parent2 } = token;\n  const importAdder = createImportAdder(sourceFile, program, preferences, host);\n  errorCode = mapSuggestionDiagnostic(errorCode);\n  switch (errorCode) {\n    // Variable and Property declarations\n    case Diagnostics.Member_0_implicitly_has_an_1_type.code:\n    case Diagnostics.Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined.code:\n      if (isVariableDeclaration(parent2) && markSeen(parent2) || isPropertyDeclaration(parent2) || isPropertySignature(parent2)) {\n        annotateVariableDeclaration(changes, importAdder, sourceFile, parent2, program, host, cancellationToken);\n        importAdder.writeFixes(changes);\n        return parent2;\n      }\n      if (isPropertyAccessExpression(parent2)) {\n        const type = inferTypeForVariableFromUsage(parent2.name, program, cancellationToken);\n        const typeNode = getTypeNodeIfAccessible(type, parent2, program, host);\n        if (typeNode) {\n          const typeTag = factory.createJSDocTypeTag(\n            /*tagName*/\n            void 0,\n            factory.createJSDocTypeExpression(typeNode),\n            /*comment*/\n            void 0\n          );\n          changes.addJSDocTags(sourceFile, cast(parent2.parent.parent, isExpressionStatement), [typeTag]);\n        }\n        importAdder.writeFixes(changes);\n        return parent2;\n      }\n      return void 0;\n    case Diagnostics.Variable_0_implicitly_has_an_1_type.code: {\n      const symbol = program.getTypeChecker().getSymbolAtLocation(token);\n      if (symbol && symbol.valueDeclaration && isVariableDeclaration(symbol.valueDeclaration) && markSeen(symbol.valueDeclaration)) {\n        annotateVariableDeclaration(changes, importAdder, getSourceFileOfNode(symbol.valueDeclaration), symbol.valueDeclaration, program, host, cancellationToken);\n        importAdder.writeFixes(changes);\n        return symbol.valueDeclaration;\n      }\n      return void 0;\n    }\n  }\n  const containingFunction = getContainingFunction(token);\n  if (containingFunction === void 0) {\n    return void 0;\n  }\n  let declaration;\n  switch (errorCode) {\n    // Parameter declarations\n    case Diagnostics.Parameter_0_implicitly_has_an_1_type.code:\n      if (isSetAccessorDeclaration(containingFunction)) {\n        annotateSetAccessor(changes, importAdder, sourceFile, containingFunction, program, host, cancellationToken);\n        declaration = containingFunction;\n        break;\n      }\n    // falls through\n    case Diagnostics.Rest_parameter_0_implicitly_has_an_any_type.code:\n      if (markSeen(containingFunction)) {\n        const param = cast(parent2, isParameter);\n        annotateParameters(changes, importAdder, sourceFile, param, containingFunction, program, host, cancellationToken);\n        declaration = param;\n      }\n      break;\n    // Get Accessor declarations\n    case Diagnostics.Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation.code:\n    case Diagnostics._0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type.code:\n      if (isGetAccessorDeclaration(containingFunction) && isIdentifier(containingFunction.name)) {\n        annotate(changes, importAdder, sourceFile, containingFunction, inferTypeForVariableFromUsage(containingFunction.name, program, cancellationToken), program, host);\n        declaration = containingFunction;\n      }\n      break;\n    // Set Accessor declarations\n    case Diagnostics.Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation.code:\n      if (isSetAccessorDeclaration(containingFunction)) {\n        annotateSetAccessor(changes, importAdder, sourceFile, containingFunction, program, host, cancellationToken);\n        declaration = containingFunction;\n      }\n      break;\n    // Function 'this'\n    case Diagnostics.this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation.code:\n      if (ts_textChanges_exports.isThisTypeAnnotatable(containingFunction) && markSeen(containingFunction)) {\n        annotateThis(changes, sourceFile, containingFunction, program, host, cancellationToken);\n        declaration = containingFunction;\n      }\n      break;\n    default:\n      return Debug.fail(String(errorCode));\n  }\n  importAdder.writeFixes(changes);\n  return declaration;\n}\nfunction annotateVariableDeclaration(changes, importAdder, sourceFile, declaration, program, host, cancellationToken) {\n  if (isIdentifier(declaration.name)) {\n    annotate(changes, importAdder, sourceFile, declaration, inferTypeForVariableFromUsage(declaration.name, program, cancellationToken), program, host);\n  }\n}\nfunction annotateParameters(changes, importAdder, sourceFile, parameterDeclaration, containingFunction, program, host, cancellationToken) {\n  if (!isIdentifier(parameterDeclaration.name)) {\n    return;\n  }\n  const parameterInferences = inferTypeForParametersFromUsage(containingFunction, sourceFile, program, cancellationToken);\n  Debug.assert(containingFunction.parameters.length === parameterInferences.length, \"Parameter count and inference count should match\");\n  if (isInJSFile(containingFunction)) {\n    annotateJSDocParameters(changes, sourceFile, parameterInferences, program, host);\n  } else {\n    const needParens = isArrowFunction(containingFunction) && !findChildOfKind(containingFunction, 21 /* OpenParenToken */, sourceFile);\n    if (needParens) changes.insertNodeBefore(sourceFile, first(containingFunction.parameters), factory.createToken(21 /* OpenParenToken */));\n    for (const { declaration, type } of parameterInferences) {\n      if (declaration && !declaration.type && !declaration.initializer) {\n        annotate(changes, importAdder, sourceFile, declaration, type, program, host);\n      }\n    }\n    if (needParens) changes.insertNodeAfter(sourceFile, last(containingFunction.parameters), factory.createToken(22 /* CloseParenToken */));\n  }\n}\nfunction annotateThis(changes, sourceFile, containingFunction, program, host, cancellationToken) {\n  const references = getFunctionReferences(containingFunction, sourceFile, program, cancellationToken);\n  if (!references || !references.length) {\n    return;\n  }\n  const thisInference = inferTypeFromReferences(program, references, cancellationToken).thisParameter();\n  const typeNode = getTypeNodeIfAccessible(thisInference, containingFunction, program, host);\n  if (!typeNode) {\n    return;\n  }\n  if (isInJSFile(containingFunction)) {\n    annotateJSDocThis(changes, sourceFile, containingFunction, typeNode);\n  } else {\n    changes.tryInsertThisTypeAnnotation(sourceFile, containingFunction, typeNode);\n  }\n}\nfunction annotateJSDocThis(changes, sourceFile, containingFunction, typeNode) {\n  changes.addJSDocTags(sourceFile, containingFunction, [\n    factory.createJSDocThisTag(\n      /*tagName*/\n      void 0,\n      factory.createJSDocTypeExpression(typeNode)\n    )\n  ]);\n}\nfunction annotateSetAccessor(changes, importAdder, sourceFile, setAccessorDeclaration, program, host, cancellationToken) {\n  const param = firstOrUndefined(setAccessorDeclaration.parameters);\n  if (param && isIdentifier(setAccessorDeclaration.name) && isIdentifier(param.name)) {\n    let type = inferTypeForVariableFromUsage(setAccessorDeclaration.name, program, cancellationToken);\n    if (type === program.getTypeChecker().getAnyType()) {\n      type = inferTypeForVariableFromUsage(param.name, program, cancellationToken);\n    }\n    if (isInJSFile(setAccessorDeclaration)) {\n      annotateJSDocParameters(changes, sourceFile, [{ declaration: param, type }], program, host);\n    } else {\n      annotate(changes, importAdder, sourceFile, param, type, program, host);\n    }\n  }\n}\nfunction annotate(changes, importAdder, sourceFile, declaration, type, program, host) {\n  const typeNode = getTypeNodeIfAccessible(type, declaration, program, host);\n  if (typeNode) {\n    if (isInJSFile(sourceFile) && declaration.kind !== 172 /* PropertySignature */) {\n      const parent2 = isVariableDeclaration(declaration) ? tryCast(declaration.parent.parent, isVariableStatement) : declaration;\n      if (!parent2) {\n        return;\n      }\n      const typeExpression = factory.createJSDocTypeExpression(typeNode);\n      const typeTag = isGetAccessorDeclaration(declaration) ? factory.createJSDocReturnTag(\n        /*tagName*/\n        void 0,\n        typeExpression,\n        /*comment*/\n        void 0\n      ) : factory.createJSDocTypeTag(\n        /*tagName*/\n        void 0,\n        typeExpression,\n        /*comment*/\n        void 0\n      );\n      changes.addJSDocTags(sourceFile, parent2, [typeTag]);\n    } else if (!tryReplaceImportTypeNodeWithAutoImport(typeNode, declaration, sourceFile, changes, importAdder, getEmitScriptTarget(program.getCompilerOptions()))) {\n      changes.tryInsertTypeAnnotation(sourceFile, declaration, typeNode);\n    }\n  }\n}\nfunction tryReplaceImportTypeNodeWithAutoImport(typeNode, declaration, sourceFile, changes, importAdder, scriptTarget) {\n  const importableReference = tryGetAutoImportableReferenceFromTypeNode(typeNode, scriptTarget);\n  if (importableReference && changes.tryInsertTypeAnnotation(sourceFile, declaration, importableReference.typeNode)) {\n    forEach(importableReference.symbols, (s) => importAdder.addImportFromExportedSymbol(\n      s,\n      /*isValidTypeOnlyUseSite*/\n      true\n    ));\n    return true;\n  }\n  return false;\n}\nfunction annotateJSDocParameters(changes, sourceFile, parameterInferences, program, host) {\n  const signature = parameterInferences.length && parameterInferences[0].declaration.parent;\n  if (!signature) {\n    return;\n  }\n  const inferences = mapDefined(parameterInferences, (inference) => {\n    const param = inference.declaration;\n    if (param.initializer || getJSDocType(param) || !isIdentifier(param.name)) {\n      return;\n    }\n    const typeNode = inference.type && getTypeNodeIfAccessible(inference.type, param, program, host);\n    if (typeNode) {\n      const name = factory.cloneNode(param.name);\n      setEmitFlags(name, 3072 /* NoComments */ | 4096 /* NoNestedComments */);\n      return { name: factory.cloneNode(param.name), param, isOptional: !!inference.isOptional, typeNode };\n    }\n  });\n  if (!inferences.length) {\n    return;\n  }\n  if (isArrowFunction(signature) || isFunctionExpression(signature)) {\n    const needParens = isArrowFunction(signature) && !findChildOfKind(signature, 21 /* OpenParenToken */, sourceFile);\n    if (needParens) {\n      changes.insertNodeBefore(sourceFile, first(signature.parameters), factory.createToken(21 /* OpenParenToken */));\n    }\n    forEach(inferences, ({ typeNode, param }) => {\n      const typeTag = factory.createJSDocTypeTag(\n        /*tagName*/\n        void 0,\n        factory.createJSDocTypeExpression(typeNode)\n      );\n      const jsDoc = factory.createJSDocComment(\n        /*comment*/\n        void 0,\n        [typeTag]\n      );\n      changes.insertNodeAt(sourceFile, param.getStart(sourceFile), jsDoc, { suffix: \" \" });\n    });\n    if (needParens) {\n      changes.insertNodeAfter(sourceFile, last(signature.parameters), factory.createToken(22 /* CloseParenToken */));\n    }\n  } else {\n    const paramTags = map(inferences, ({ name, typeNode, isOptional }) => factory.createJSDocParameterTag(\n      /*tagName*/\n      void 0,\n      name,\n      /*isBracketed*/\n      !!isOptional,\n      factory.createJSDocTypeExpression(typeNode),\n      /*isNameFirst*/\n      false,\n      /*comment*/\n      void 0\n    ));\n    changes.addJSDocTags(sourceFile, signature, paramTags);\n  }\n}\nfunction getReferences(token, program, cancellationToken) {\n  return mapDefined(ts_FindAllReferences_exports.getReferenceEntriesForNode(-1, token, program, program.getSourceFiles(), cancellationToken), (entry) => entry.kind !== ts_FindAllReferences_exports.EntryKind.Span ? tryCast(entry.node, isIdentifier) : void 0);\n}\nfunction inferTypeForVariableFromUsage(token, program, cancellationToken) {\n  const references = getReferences(token, program, cancellationToken);\n  return inferTypeFromReferences(program, references, cancellationToken).single();\n}\nfunction inferTypeForParametersFromUsage(func, sourceFile, program, cancellationToken) {\n  const references = getFunctionReferences(func, sourceFile, program, cancellationToken);\n  return references && inferTypeFromReferences(program, references, cancellationToken).parameters(func) || func.parameters.map((p) => ({\n    declaration: p,\n    type: isIdentifier(p.name) ? inferTypeForVariableFromUsage(p.name, program, cancellationToken) : program.getTypeChecker().getAnyType()\n  }));\n}\nfunction getFunctionReferences(containingFunction, sourceFile, program, cancellationToken) {\n  let searchToken;\n  switch (containingFunction.kind) {\n    case 177 /* Constructor */:\n      searchToken = findChildOfKind(containingFunction, 137 /* ConstructorKeyword */, sourceFile);\n      break;\n    case 220 /* ArrowFunction */:\n    case 219 /* FunctionExpression */:\n      const parent2 = containingFunction.parent;\n      searchToken = (isVariableDeclaration(parent2) || isPropertyDeclaration(parent2)) && isIdentifier(parent2.name) ? parent2.name : containingFunction.name;\n      break;\n    case 263 /* FunctionDeclaration */:\n    case 175 /* MethodDeclaration */:\n    case 174 /* MethodSignature */:\n      searchToken = containingFunction.name;\n      break;\n  }\n  if (!searchToken) {\n    return void 0;\n  }\n  return getReferences(searchToken, program, cancellationToken);\n}\nfunction inferTypeFromReferences(program, references, cancellationToken) {\n  const checker = program.getTypeChecker();\n  const builtinConstructors = {\n    string: () => checker.getStringType(),\n    number: () => checker.getNumberType(),\n    Array: (t) => checker.createArrayType(t),\n    Promise: (t) => checker.createPromiseType(t)\n  };\n  const builtins = [\n    checker.getStringType(),\n    checker.getNumberType(),\n    checker.createArrayType(checker.getAnyType()),\n    checker.createPromiseType(checker.getAnyType())\n  ];\n  return {\n    single: single2,\n    parameters,\n    thisParameter\n  };\n  function createEmptyUsage() {\n    return {\n      isNumber: void 0,\n      isString: void 0,\n      isNumberOrString: void 0,\n      candidateTypes: void 0,\n      properties: void 0,\n      calls: void 0,\n      constructs: void 0,\n      numberIndex: void 0,\n      stringIndex: void 0,\n      candidateThisTypes: void 0,\n      inferredTypes: void 0\n    };\n  }\n  function combineUsages(usages) {\n    const combinedProperties = /* @__PURE__ */ new Map();\n    for (const u of usages) {\n      if (u.properties) {\n        u.properties.forEach((p, name) => {\n          if (!combinedProperties.has(name)) {\n            combinedProperties.set(name, []);\n          }\n          combinedProperties.get(name).push(p);\n        });\n      }\n    }\n    const properties = /* @__PURE__ */ new Map();\n    combinedProperties.forEach((ps, name) => {\n      properties.set(name, combineUsages(ps));\n    });\n    return {\n      isNumber: usages.some((u) => u.isNumber),\n      isString: usages.some((u) => u.isString),\n      isNumberOrString: usages.some((u) => u.isNumberOrString),\n      candidateTypes: flatMap(usages, (u) => u.candidateTypes),\n      properties,\n      calls: flatMap(usages, (u) => u.calls),\n      constructs: flatMap(usages, (u) => u.constructs),\n      numberIndex: forEach(usages, (u) => u.numberIndex),\n      stringIndex: forEach(usages, (u) => u.stringIndex),\n      candidateThisTypes: flatMap(usages, (u) => u.candidateThisTypes),\n      inferredTypes: void 0\n      // clear type cache\n    };\n  }\n  function single2() {\n    return combineTypes(inferTypesFromReferencesSingle(references));\n  }\n  function parameters(declaration) {\n    if (references.length === 0 || !declaration.parameters) {\n      return void 0;\n    }\n    const usage = createEmptyUsage();\n    for (const reference of references) {\n      cancellationToken.throwIfCancellationRequested();\n      calculateUsageOfNode(reference, usage);\n    }\n    const calls = [...usage.constructs || [], ...usage.calls || []];\n    return declaration.parameters.map((parameter, parameterIndex) => {\n      const types = [];\n      const isRest = isRestParameter(parameter);\n      let isOptional = false;\n      for (const call of calls) {\n        if (call.argumentTypes.length <= parameterIndex) {\n          isOptional = isInJSFile(declaration);\n          types.push(checker.getUndefinedType());\n        } else if (isRest) {\n          for (let i = parameterIndex; i < call.argumentTypes.length; i++) {\n            types.push(checker.getBaseTypeOfLiteralType(call.argumentTypes[i]));\n          }\n        } else {\n          types.push(checker.getBaseTypeOfLiteralType(call.argumentTypes[parameterIndex]));\n        }\n      }\n      if (isIdentifier(parameter.name)) {\n        const inferred = inferTypesFromReferencesSingle(getReferences(parameter.name, program, cancellationToken));\n        types.push(...isRest ? mapDefined(inferred, checker.getElementTypeOfArrayType) : inferred);\n      }\n      const type = combineTypes(types);\n      return {\n        type: isRest ? checker.createArrayType(type) : type,\n        isOptional: isOptional && !isRest,\n        declaration: parameter\n      };\n    });\n  }\n  function thisParameter() {\n    const usage = createEmptyUsage();\n    for (const reference of references) {\n      cancellationToken.throwIfCancellationRequested();\n      calculateUsageOfNode(reference, usage);\n    }\n    return combineTypes(usage.candidateThisTypes || emptyArray);\n  }\n  function inferTypesFromReferencesSingle(references2) {\n    const usage = createEmptyUsage();\n    for (const reference of references2) {\n      cancellationToken.throwIfCancellationRequested();\n      calculateUsageOfNode(reference, usage);\n    }\n    return inferTypes(usage);\n  }\n  function calculateUsageOfNode(node, usage) {\n    while (isRightSideOfQualifiedNameOrPropertyAccess(node)) {\n      node = node.parent;\n    }\n    switch (node.parent.kind) {\n      case 245 /* ExpressionStatement */:\n        inferTypeFromExpressionStatement(node, usage);\n        break;\n      case 226 /* PostfixUnaryExpression */:\n        usage.isNumber = true;\n        break;\n      case 225 /* PrefixUnaryExpression */:\n        inferTypeFromPrefixUnaryExpression(node.parent, usage);\n        break;\n      case 227 /* BinaryExpression */:\n        inferTypeFromBinaryExpression(node, node.parent, usage);\n        break;\n      case 297 /* CaseClause */:\n      case 298 /* DefaultClause */:\n        inferTypeFromSwitchStatementLabel(node.parent, usage);\n        break;\n      case 214 /* CallExpression */:\n      case 215 /* NewExpression */:\n        if (node.parent.expression === node) {\n          inferTypeFromCallExpression(node.parent, usage);\n        } else {\n          inferTypeFromContextualType(node, usage);\n        }\n        break;\n      case 212 /* PropertyAccessExpression */:\n        inferTypeFromPropertyAccessExpression(node.parent, usage);\n        break;\n      case 213 /* ElementAccessExpression */:\n        inferTypeFromPropertyElementExpression(node.parent, node, usage);\n        break;\n      case 304 /* PropertyAssignment */:\n      case 305 /* ShorthandPropertyAssignment */:\n        inferTypeFromPropertyAssignment(node.parent, usage);\n        break;\n      case 173 /* PropertyDeclaration */:\n        inferTypeFromPropertyDeclaration(node.parent, usage);\n        break;\n      case 261 /* VariableDeclaration */: {\n        const { name, initializer } = node.parent;\n        if (node === name) {\n          if (initializer) {\n            addCandidateType(usage, checker.getTypeAtLocation(initializer));\n          }\n          break;\n        }\n      }\n      // falls through\n      default:\n        return inferTypeFromContextualType(node, usage);\n    }\n  }\n  function inferTypeFromContextualType(node, usage) {\n    if (isExpressionNode(node)) {\n      addCandidateType(usage, checker.getContextualType(node));\n    }\n  }\n  function inferTypeFromExpressionStatement(node, usage) {\n    addCandidateType(usage, isCallExpression(node) ? checker.getVoidType() : checker.getAnyType());\n  }\n  function inferTypeFromPrefixUnaryExpression(node, usage) {\n    switch (node.operator) {\n      case 46 /* PlusPlusToken */:\n      case 47 /* MinusMinusToken */:\n      case 41 /* MinusToken */:\n      case 55 /* TildeToken */:\n        usage.isNumber = true;\n        break;\n      case 40 /* PlusToken */:\n        usage.isNumberOrString = true;\n        break;\n    }\n  }\n  function inferTypeFromBinaryExpression(node, parent2, usage) {\n    switch (parent2.operatorToken.kind) {\n      // ExponentiationOperator\n      case 43 /* AsteriskAsteriskToken */:\n      // MultiplicativeOperator\n      // falls through\n      case 42 /* AsteriskToken */:\n      case 44 /* SlashToken */:\n      case 45 /* PercentToken */:\n      // ShiftOperator\n      // falls through\n      case 48 /* LessThanLessThanToken */:\n      case 49 /* GreaterThanGreaterThanToken */:\n      case 50 /* GreaterThanGreaterThanGreaterThanToken */:\n      // BitwiseOperator\n      // falls through\n      case 51 /* AmpersandToken */:\n      case 52 /* BarToken */:\n      case 53 /* CaretToken */:\n      // CompoundAssignmentOperator\n      // falls through\n      case 66 /* MinusEqualsToken */:\n      case 68 /* AsteriskAsteriskEqualsToken */:\n      case 67 /* AsteriskEqualsToken */:\n      case 69 /* SlashEqualsToken */:\n      case 70 /* PercentEqualsToken */:\n      case 74 /* AmpersandEqualsToken */:\n      case 75 /* BarEqualsToken */:\n      case 79 /* CaretEqualsToken */:\n      case 71 /* LessThanLessThanEqualsToken */:\n      case 73 /* GreaterThanGreaterThanGreaterThanEqualsToken */:\n      case 72 /* GreaterThanGreaterThanEqualsToken */:\n      // AdditiveOperator\n      // falls through\n      case 41 /* MinusToken */:\n      // RelationalOperator\n      // falls through\n      case 30 /* LessThanToken */:\n      case 33 /* LessThanEqualsToken */:\n      case 32 /* GreaterThanToken */:\n      case 34 /* GreaterThanEqualsToken */:\n        const operandType = checker.getTypeAtLocation(parent2.left === node ? parent2.right : parent2.left);\n        if (operandType.flags & 1056 /* EnumLike */) {\n          addCandidateType(usage, operandType);\n        } else {\n          usage.isNumber = true;\n        }\n        break;\n      case 65 /* PlusEqualsToken */:\n      case 40 /* PlusToken */:\n        const otherOperandType = checker.getTypeAtLocation(parent2.left === node ? parent2.right : parent2.left);\n        if (otherOperandType.flags & 1056 /* EnumLike */) {\n          addCandidateType(usage, otherOperandType);\n        } else if (otherOperandType.flags & 296 /* NumberLike */) {\n          usage.isNumber = true;\n        } else if (otherOperandType.flags & 402653316 /* StringLike */) {\n          usage.isString = true;\n        } else if (otherOperandType.flags & 1 /* Any */) {\n        } else {\n          usage.isNumberOrString = true;\n        }\n        break;\n      //  AssignmentOperators\n      case 64 /* EqualsToken */:\n      case 35 /* EqualsEqualsToken */:\n      case 37 /* EqualsEqualsEqualsToken */:\n      case 38 /* ExclamationEqualsEqualsToken */:\n      case 36 /* ExclamationEqualsToken */:\n      case 77 /* AmpersandAmpersandEqualsToken */:\n      case 78 /* QuestionQuestionEqualsToken */:\n      case 76 /* BarBarEqualsToken */:\n        addCandidateType(usage, checker.getTypeAtLocation(parent2.left === node ? parent2.right : parent2.left));\n        break;\n      case 103 /* InKeyword */:\n        if (node === parent2.left) {\n          usage.isString = true;\n        }\n        break;\n      // LogicalOperator Or NullishCoalescing\n      case 57 /* BarBarToken */:\n      case 61 /* QuestionQuestionToken */:\n        if (node === parent2.left && (node.parent.parent.kind === 261 /* VariableDeclaration */ || isAssignmentExpression(\n          node.parent.parent,\n          /*excludeCompoundAssignment*/\n          true\n        ))) {\n          addCandidateType(usage, checker.getTypeAtLocation(parent2.right));\n        }\n        break;\n      case 56 /* AmpersandAmpersandToken */:\n      case 28 /* CommaToken */:\n      case 104 /* InstanceOfKeyword */:\n        break;\n    }\n  }\n  function inferTypeFromSwitchStatementLabel(parent2, usage) {\n    addCandidateType(usage, checker.getTypeAtLocation(parent2.parent.parent.expression));\n  }\n  function inferTypeFromCallExpression(parent2, usage) {\n    const call = {\n      argumentTypes: [],\n      return_: createEmptyUsage()\n    };\n    if (parent2.arguments) {\n      for (const argument of parent2.arguments) {\n        call.argumentTypes.push(checker.getTypeAtLocation(argument));\n      }\n    }\n    calculateUsageOfNode(parent2, call.return_);\n    if (parent2.kind === 214 /* CallExpression */) {\n      (usage.calls || (usage.calls = [])).push(call);\n    } else {\n      (usage.constructs || (usage.constructs = [])).push(call);\n    }\n  }\n  function inferTypeFromPropertyAccessExpression(parent2, usage) {\n    const name = escapeLeadingUnderscores(parent2.name.text);\n    if (!usage.properties) {\n      usage.properties = /* @__PURE__ */ new Map();\n    }\n    const propertyUsage = usage.properties.get(name) || createEmptyUsage();\n    calculateUsageOfNode(parent2, propertyUsage);\n    usage.properties.set(name, propertyUsage);\n  }\n  function inferTypeFromPropertyElementExpression(parent2, node, usage) {\n    if (node === parent2.argumentExpression) {\n      usage.isNumberOrString = true;\n      return;\n    } else {\n      const indexType = checker.getTypeAtLocation(parent2.argumentExpression);\n      const indexUsage = createEmptyUsage();\n      calculateUsageOfNode(parent2, indexUsage);\n      if (indexType.flags & 296 /* NumberLike */) {\n        usage.numberIndex = indexUsage;\n      } else {\n        usage.stringIndex = indexUsage;\n      }\n    }\n  }\n  function inferTypeFromPropertyAssignment(assignment, usage) {\n    const nodeWithRealType = isVariableDeclaration(assignment.parent.parent) ? assignment.parent.parent : assignment.parent;\n    addCandidateThisType(usage, checker.getTypeAtLocation(nodeWithRealType));\n  }\n  function inferTypeFromPropertyDeclaration(declaration, usage) {\n    addCandidateThisType(usage, checker.getTypeAtLocation(declaration.parent));\n  }\n  function removeLowPriorityInferences(inferences, priorities) {\n    const toRemove = [];\n    for (const i of inferences) {\n      for (const { high, low } of priorities) {\n        if (high(i)) {\n          Debug.assert(!low(i), \"Priority can't have both low and high\");\n          toRemove.push(low);\n        }\n      }\n    }\n    return inferences.filter((i) => toRemove.every((f) => !f(i)));\n  }\n  function combineFromUsage(usage) {\n    return combineTypes(inferTypes(usage));\n  }\n  function combineTypes(inferences) {\n    if (!inferences.length) return checker.getAnyType();\n    const stringNumber = checker.getUnionType([checker.getStringType(), checker.getNumberType()]);\n    const priorities = [\n      {\n        high: (t) => t === checker.getStringType() || t === checker.getNumberType(),\n        low: (t) => t === stringNumber\n      },\n      {\n        high: (t) => !(t.flags & (1 /* Any */ | 16384 /* Void */)),\n        low: (t) => !!(t.flags & (1 /* Any */ | 16384 /* Void */))\n      },\n      {\n        high: (t) => !(t.flags & (98304 /* Nullable */ | 1 /* Any */ | 16384 /* Void */)) && !(getObjectFlags(t) & 16 /* Anonymous */),\n        low: (t) => !!(getObjectFlags(t) & 16 /* Anonymous */)\n      }\n    ];\n    let good = removeLowPriorityInferences(inferences, priorities);\n    const anons = good.filter((i) => getObjectFlags(i) & 16 /* Anonymous */);\n    if (anons.length) {\n      good = good.filter((i) => !(getObjectFlags(i) & 16 /* Anonymous */));\n      good.push(combineAnonymousTypes(anons));\n    }\n    return checker.getWidenedType(checker.getUnionType(good.map(checker.getBaseTypeOfLiteralType), 2 /* Subtype */));\n  }\n  function combineAnonymousTypes(anons) {\n    if (anons.length === 1) {\n      return anons[0];\n    }\n    const calls = [];\n    const constructs = [];\n    const stringIndices = [];\n    const numberIndices = [];\n    let stringIndexReadonly = false;\n    let numberIndexReadonly = false;\n    const props = createMultiMap();\n    for (const anon2 of anons) {\n      for (const p of checker.getPropertiesOfType(anon2)) {\n        props.add(p.escapedName, p.valueDeclaration ? checker.getTypeOfSymbolAtLocation(p, p.valueDeclaration) : checker.getAnyType());\n      }\n      calls.push(...checker.getSignaturesOfType(anon2, 0 /* Call */));\n      constructs.push(...checker.getSignaturesOfType(anon2, 1 /* Construct */));\n      const stringIndexInfo = checker.getIndexInfoOfType(anon2, 0 /* String */);\n      if (stringIndexInfo) {\n        stringIndices.push(stringIndexInfo.type);\n        stringIndexReadonly = stringIndexReadonly || stringIndexInfo.isReadonly;\n      }\n      const numberIndexInfo = checker.getIndexInfoOfType(anon2, 1 /* Number */);\n      if (numberIndexInfo) {\n        numberIndices.push(numberIndexInfo.type);\n        numberIndexReadonly = numberIndexReadonly || numberIndexInfo.isReadonly;\n      }\n    }\n    const members = mapEntries(props, (name, types) => {\n      const isOptional = types.length < anons.length ? 16777216 /* Optional */ : 0;\n      const s = checker.createSymbol(4 /* Property */ | isOptional, name);\n      s.links.type = checker.getUnionType(types);\n      return [name, s];\n    });\n    const indexInfos = [];\n    if (stringIndices.length) indexInfos.push(checker.createIndexInfo(checker.getStringType(), checker.getUnionType(stringIndices), stringIndexReadonly));\n    if (numberIndices.length) indexInfos.push(checker.createIndexInfo(checker.getNumberType(), checker.getUnionType(numberIndices), numberIndexReadonly));\n    return checker.createAnonymousType(\n      anons[0].symbol,\n      members,\n      calls,\n      constructs,\n      indexInfos\n    );\n  }\n  function inferTypes(usage) {\n    var _a, _b, _c;\n    const types = [];\n    if (usage.isNumber) {\n      types.push(checker.getNumberType());\n    }\n    if (usage.isString) {\n      types.push(checker.getStringType());\n    }\n    if (usage.isNumberOrString) {\n      types.push(checker.getUnionType([checker.getStringType(), checker.getNumberType()]));\n    }\n    if (usage.numberIndex) {\n      types.push(checker.createArrayType(combineFromUsage(usage.numberIndex)));\n    }\n    if (((_a = usage.properties) == null ? void 0 : _a.size) || ((_b = usage.constructs) == null ? void 0 : _b.length) || usage.stringIndex) {\n      types.push(inferStructuralType(usage));\n    }\n    const candidateTypes = (usage.candidateTypes || []).map((t) => checker.getBaseTypeOfLiteralType(t));\n    const callsType = ((_c = usage.calls) == null ? void 0 : _c.length) ? inferStructuralType(usage) : void 0;\n    if (callsType && candidateTypes) {\n      types.push(checker.getUnionType([callsType, ...candidateTypes], 2 /* Subtype */));\n    } else {\n      if (callsType) {\n        types.push(callsType);\n      }\n      if (length(candidateTypes)) {\n        types.push(...candidateTypes);\n      }\n    }\n    types.push(...inferNamedTypesFromProperties(usage));\n    return types;\n  }\n  function inferStructuralType(usage) {\n    const members = /* @__PURE__ */ new Map();\n    if (usage.properties) {\n      usage.properties.forEach((u, name) => {\n        const symbol = checker.createSymbol(4 /* Property */, name);\n        symbol.links.type = combineFromUsage(u);\n        members.set(name, symbol);\n      });\n    }\n    const callSignatures = usage.calls ? [getSignatureFromCalls(usage.calls)] : [];\n    const constructSignatures = usage.constructs ? [getSignatureFromCalls(usage.constructs)] : [];\n    const indexInfos = usage.stringIndex ? [checker.createIndexInfo(\n      checker.getStringType(),\n      combineFromUsage(usage.stringIndex),\n      /*isReadonly*/\n      false\n    )] : [];\n    return checker.createAnonymousType(\n      /*symbol*/\n      void 0,\n      members,\n      callSignatures,\n      constructSignatures,\n      indexInfos\n    );\n  }\n  function inferNamedTypesFromProperties(usage) {\n    if (!usage.properties || !usage.properties.size) return [];\n    const types = builtins.filter((t) => allPropertiesAreAssignableToUsage(t, usage));\n    if (0 < types.length && types.length < 3) {\n      return types.map((t) => inferInstantiationFromUsage(t, usage));\n    }\n    return [];\n  }\n  function allPropertiesAreAssignableToUsage(type, usage) {\n    if (!usage.properties) return false;\n    return !forEachEntry(usage.properties, (propUsage, name) => {\n      const source = checker.getTypeOfPropertyOfType(type, name);\n      if (!source) {\n        return true;\n      }\n      if (propUsage.calls) {\n        const sigs = checker.getSignaturesOfType(source, 0 /* Call */);\n        return !sigs.length || !checker.isTypeAssignableTo(source, getFunctionFromCalls(propUsage.calls));\n      } else {\n        return !checker.isTypeAssignableTo(source, combineFromUsage(propUsage));\n      }\n    });\n  }\n  function inferInstantiationFromUsage(type, usage) {\n    if (!(getObjectFlags(type) & 4 /* Reference */) || !usage.properties) {\n      return type;\n    }\n    const generic = type.target;\n    const singleTypeParameter = singleOrUndefined(generic.typeParameters);\n    if (!singleTypeParameter) return type;\n    const types = [];\n    usage.properties.forEach((propUsage, name) => {\n      const genericPropertyType = checker.getTypeOfPropertyOfType(generic, name);\n      Debug.assert(!!genericPropertyType, \"generic should have all the properties of its reference.\");\n      types.push(...inferTypeParameters(genericPropertyType, combineFromUsage(propUsage), singleTypeParameter));\n    });\n    return builtinConstructors[type.symbol.escapedName](combineTypes(types));\n  }\n  function inferTypeParameters(genericType, usageType, typeParameter) {\n    if (genericType === typeParameter) {\n      return [usageType];\n    } else if (genericType.flags & 3145728 /* UnionOrIntersection */) {\n      return flatMap(genericType.types, (t) => inferTypeParameters(t, usageType, typeParameter));\n    } else if (getObjectFlags(genericType) & 4 /* Reference */ && getObjectFlags(usageType) & 4 /* Reference */) {\n      const genericArgs = checker.getTypeArguments(genericType);\n      const usageArgs = checker.getTypeArguments(usageType);\n      const types = [];\n      if (genericArgs && usageArgs) {\n        for (let i = 0; i < genericArgs.length; i++) {\n          if (usageArgs[i]) {\n            types.push(...inferTypeParameters(genericArgs[i], usageArgs[i], typeParameter));\n          }\n        }\n      }\n      return types;\n    }\n    const genericSigs = checker.getSignaturesOfType(genericType, 0 /* Call */);\n    const usageSigs = checker.getSignaturesOfType(usageType, 0 /* Call */);\n    if (genericSigs.length === 1 && usageSigs.length === 1) {\n      return inferFromSignatures(genericSigs[0], usageSigs[0], typeParameter);\n    }\n    return [];\n  }\n  function inferFromSignatures(genericSig, usageSig, typeParameter) {\n    var _a;\n    const types = [];\n    for (let i = 0; i < genericSig.parameters.length; i++) {\n      const genericParam = genericSig.parameters[i];\n      const usageParam = usageSig.parameters[i];\n      const isRest = genericSig.declaration && isRestParameter(genericSig.declaration.parameters[i]);\n      if (!usageParam) {\n        break;\n      }\n      let genericParamType = genericParam.valueDeclaration ? checker.getTypeOfSymbolAtLocation(genericParam, genericParam.valueDeclaration) : checker.getAnyType();\n      const elementType = isRest && checker.getElementTypeOfArrayType(genericParamType);\n      if (elementType) {\n        genericParamType = elementType;\n      }\n      const targetType = ((_a = tryCast(usageParam, isTransientSymbol)) == null ? void 0 : _a.links.type) || (usageParam.valueDeclaration ? checker.getTypeOfSymbolAtLocation(usageParam, usageParam.valueDeclaration) : checker.getAnyType());\n      types.push(...inferTypeParameters(genericParamType, targetType, typeParameter));\n    }\n    const genericReturn = checker.getReturnTypeOfSignature(genericSig);\n    const usageReturn = checker.getReturnTypeOfSignature(usageSig);\n    types.push(...inferTypeParameters(genericReturn, usageReturn, typeParameter));\n    return types;\n  }\n  function getFunctionFromCalls(calls) {\n    return checker.createAnonymousType(\n      /*symbol*/\n      void 0,\n      createSymbolTable(),\n      [getSignatureFromCalls(calls)],\n      emptyArray,\n      emptyArray\n    );\n  }\n  function getSignatureFromCalls(calls) {\n    const parameters2 = [];\n    const length2 = Math.max(...calls.map((c) => c.argumentTypes.length));\n    for (let i = 0; i < length2; i++) {\n      const symbol = checker.createSymbol(1 /* FunctionScopedVariable */, escapeLeadingUnderscores(`arg${i}`));\n      symbol.links.type = combineTypes(calls.map((call) => call.argumentTypes[i] || checker.getUndefinedType()));\n      if (calls.some((call) => call.argumentTypes[i] === void 0)) {\n        symbol.flags |= 16777216 /* Optional */;\n      }\n      parameters2.push(symbol);\n    }\n    const returnType = combineFromUsage(combineUsages(calls.map((call) => call.return_)));\n    return checker.createSignature(\n      /*declaration*/\n      void 0,\n      /*typeParameters*/\n      void 0,\n      /*thisParameter*/\n      void 0,\n      parameters2,\n      returnType,\n      /*typePredicate*/\n      void 0,\n      length2,\n      0 /* None */\n    );\n  }\n  function addCandidateType(usage, type) {\n    if (type && !(type.flags & 1 /* Any */) && !(type.flags & 131072 /* Never */)) {\n      (usage.candidateTypes || (usage.candidateTypes = [])).push(type);\n    }\n  }\n  function addCandidateThisType(usage, type) {\n    if (type && !(type.flags & 1 /* Any */) && !(type.flags & 131072 /* Never */)) {\n      (usage.candidateThisTypes || (usage.candidateThisTypes = [])).push(type);\n    }\n  }\n}\n\n// src/services/codefixes/fixReturnTypeInAsyncFunction.ts\nvar fixId41 = \"fixReturnTypeInAsyncFunction\";\nvar errorCodes52 = [\n  Diagnostics.The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_write_Promise_0.code\n];\nregisterCodeFix({\n  errorCodes: errorCodes52,\n  fixIds: [fixId41],\n  getCodeActions: function getCodeActionsToFixReturnTypeInAsyncFunction(context) {\n    const { sourceFile, program, span } = context;\n    const checker = program.getTypeChecker();\n    const info = getInfo16(sourceFile, program.getTypeChecker(), span.start);\n    if (!info) {\n      return void 0;\n    }\n    const { returnTypeNode, returnType, promisedTypeNode, promisedType } = info;\n    const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange34(t, sourceFile, returnTypeNode, promisedTypeNode));\n    return [createCodeFixAction(\n      fixId41,\n      changes,\n      [Diagnostics.Replace_0_with_Promise_1, checker.typeToString(returnType), checker.typeToString(promisedType)],\n      fixId41,\n      Diagnostics.Fix_all_incorrect_return_type_of_an_async_functions\n    )];\n  },\n  getAllCodeActions: (context) => codeFixAll(context, errorCodes52, (changes, diag2) => {\n    const info = getInfo16(diag2.file, context.program.getTypeChecker(), diag2.start);\n    if (info) {\n      doChange34(changes, diag2.file, info.returnTypeNode, info.promisedTypeNode);\n    }\n  })\n});\nfunction getInfo16(sourceFile, checker, pos) {\n  if (isInJSFile(sourceFile)) {\n    return void 0;\n  }\n  const token = getTokenAtPosition(sourceFile, pos);\n  const func = findAncestor(token, isFunctionLikeDeclaration);\n  const returnTypeNode = func == null ? void 0 : func.type;\n  if (!returnTypeNode) {\n    return void 0;\n  }\n  const returnType = checker.getTypeFromTypeNode(returnTypeNode);\n  const promisedType = checker.getAwaitedType(returnType) || checker.getVoidType();\n  const promisedTypeNode = checker.typeToTypeNode(\n    promisedType,\n    /*enclosingDeclaration*/\n    returnTypeNode,\n    /*flags*/\n    void 0\n  );\n  if (promisedTypeNode) {\n    return { returnTypeNode, returnType, promisedTypeNode, promisedType };\n  }\n}\nfunction doChange34(changes, sourceFile, returnTypeNode, promisedTypeNode) {\n  changes.replaceNode(sourceFile, returnTypeNode, factory.createTypeReferenceNode(\"Promise\", [promisedTypeNode]));\n}\n\n// src/services/codefixes/disableJsDiagnostics.ts\nvar fixName4 = \"disableJsDiagnostics\";\nvar fixId42 = \"disableJsDiagnostics\";\nvar errorCodes53 = mapDefined(Object.keys(Diagnostics), (key) => {\n  const diag2 = Diagnostics[key];\n  return diag2.category === 1 /* Error */ ? diag2.code : void 0;\n});\nregisterCodeFix({\n  errorCodes: errorCodes53,\n  getCodeActions: function getCodeActionsToDisableJsDiagnostics(context) {\n    const { sourceFile, program, span, host, formatContext } = context;\n    if (!isInJSFile(sourceFile) || !isCheckJsEnabledForFile(sourceFile, program.getCompilerOptions())) {\n      return void 0;\n    }\n    const newLineCharacter = sourceFile.checkJsDirective ? \"\" : getNewLineOrDefaultFromHost(host, formatContext.options);\n    const fixes = [\n      // fixId unnecessary because adding `// @ts-nocheck` even once will ignore every error in the file.\n      createCodeFixActionWithoutFixAll(\n        fixName4,\n        [createFileTextChanges(sourceFile.fileName, [\n          createTextChange(\n            sourceFile.checkJsDirective ? createTextSpanFromBounds(sourceFile.checkJsDirective.pos, sourceFile.checkJsDirective.end) : createTextSpan(0, 0),\n            `// @ts-nocheck${newLineCharacter}`\n          )\n        ])],\n        Diagnostics.Disable_checking_for_this_file\n      )\n    ];\n    if (ts_textChanges_exports.isValidLocationToAddComment(sourceFile, span.start)) {\n      fixes.unshift(createCodeFixAction(fixName4, ts_textChanges_exports.ChangeTracker.with(context, (t) => makeChange9(t, sourceFile, span.start)), Diagnostics.Ignore_this_error_message, fixId42, Diagnostics.Add_ts_ignore_to_all_error_messages));\n    }\n    return fixes;\n  },\n  fixIds: [fixId42],\n  getAllCodeActions: (context) => {\n    const seenLines = /* @__PURE__ */ new Set();\n    return codeFixAll(context, errorCodes53, (changes, diag2) => {\n      if (ts_textChanges_exports.isValidLocationToAddComment(diag2.file, diag2.start)) {\n        makeChange9(changes, diag2.file, diag2.start, seenLines);\n      }\n    });\n  }\n});\nfunction makeChange9(changes, sourceFile, position, seenLines) {\n  const { line: lineNumber } = getLineAndCharacterOfPosition(sourceFile, position);\n  if (!seenLines || tryAddToSet(seenLines, lineNumber)) {\n    changes.insertCommentBeforeLine(sourceFile, lineNumber, position, \" @ts-ignore\");\n  }\n}\n\n// src/services/codefixes/helpers.ts\nfunction createMissingMemberNodes(classDeclaration, possiblyMissingSymbols, sourceFile, context, preferences, importAdder, addClassElement) {\n  const classMembers = classDeclaration.symbol.members;\n  for (const symbol of possiblyMissingSymbols) {\n    if (!classMembers.has(symbol.escapedName)) {\n      addNewNodeForMemberSymbol(\n        symbol,\n        classDeclaration,\n        sourceFile,\n        context,\n        preferences,\n        importAdder,\n        addClassElement,\n        /*body*/\n        void 0\n      );\n    }\n  }\n}\nfunction getNoopSymbolTrackerWithResolver(context) {\n  return {\n    trackSymbol: () => false,\n    moduleResolverHost: getModuleSpecifierResolverHost(context.program, context.host)\n  };\n}\nvar PreserveOptionalFlags = /* @__PURE__ */ ((PreserveOptionalFlags2) => {\n  PreserveOptionalFlags2[PreserveOptionalFlags2[\"Method\"] = 1] = \"Method\";\n  PreserveOptionalFlags2[PreserveOptionalFlags2[\"Property\"] = 2] = \"Property\";\n  PreserveOptionalFlags2[PreserveOptionalFlags2[\"All\"] = 3] = \"All\";\n  return PreserveOptionalFlags2;\n})(PreserveOptionalFlags || {});\nfunction addNewNodeForMemberSymbol(symbol, enclosingDeclaration, sourceFile, context, preferences, importAdder, addClassElement, body, preserveOptional = 3 /* All */, isAmbient = false) {\n  const declarations = symbol.getDeclarations();\n  const declaration = firstOrUndefined(declarations);\n  const checker = context.program.getTypeChecker();\n  const scriptTarget = getEmitScriptTarget(context.program.getCompilerOptions());\n  const kind = (declaration == null ? void 0 : declaration.kind) ?? 172 /* PropertySignature */;\n  const declarationName = createDeclarationName(symbol, declaration);\n  const effectiveModifierFlags = declaration ? getEffectiveModifierFlags(declaration) : 0 /* None */;\n  let modifierFlags = effectiveModifierFlags & 256 /* Static */;\n  modifierFlags |= effectiveModifierFlags & 1 /* Public */ ? 1 /* Public */ : effectiveModifierFlags & 4 /* Protected */ ? 4 /* Protected */ : 0 /* None */;\n  if (declaration && isAutoAccessorPropertyDeclaration(declaration)) {\n    modifierFlags |= 512 /* Accessor */;\n  }\n  const modifiers = createModifiers();\n  const type = checker.getWidenedType(checker.getTypeOfSymbolAtLocation(symbol, enclosingDeclaration));\n  const optional = !!(symbol.flags & 16777216 /* Optional */);\n  const ambient = !!(enclosingDeclaration.flags & 33554432 /* Ambient */) || isAmbient;\n  const quotePreference = getQuotePreference(sourceFile, preferences);\n  const flags = 1 /* NoTruncation */ | (quotePreference === 0 /* Single */ ? 268435456 /* UseSingleQuotesForStringLiteralType */ : 0 /* None */);\n  switch (kind) {\n    case 172 /* PropertySignature */:\n    case 173 /* PropertyDeclaration */:\n      let typeNode = checker.typeToTypeNode(type, enclosingDeclaration, flags, 8 /* AllowUnresolvedNames */, getNoopSymbolTrackerWithResolver(context));\n      if (importAdder) {\n        const importableReference = tryGetAutoImportableReferenceFromTypeNode(typeNode, scriptTarget);\n        if (importableReference) {\n          typeNode = importableReference.typeNode;\n          importSymbols(importAdder, importableReference.symbols);\n        }\n      }\n      addClassElement(factory.createPropertyDeclaration(\n        modifiers,\n        declaration ? createName(declarationName) : symbol.getName(),\n        optional && preserveOptional & 2 /* Property */ ? factory.createToken(58 /* QuestionToken */) : void 0,\n        typeNode,\n        /*initializer*/\n        void 0\n      ));\n      break;\n    case 178 /* GetAccessor */:\n    case 179 /* SetAccessor */: {\n      Debug.assertIsDefined(declarations);\n      let typeNode2 = checker.typeToTypeNode(\n        type,\n        enclosingDeclaration,\n        flags,\n        /*internalFlags*/\n        void 0,\n        getNoopSymbolTrackerWithResolver(context)\n      );\n      const allAccessors = getAllAccessorDeclarations(declarations, declaration);\n      const orderedAccessors = allAccessors.secondAccessor ? [allAccessors.firstAccessor, allAccessors.secondAccessor] : [allAccessors.firstAccessor];\n      if (importAdder) {\n        const importableReference = tryGetAutoImportableReferenceFromTypeNode(typeNode2, scriptTarget);\n        if (importableReference) {\n          typeNode2 = importableReference.typeNode;\n          importSymbols(importAdder, importableReference.symbols);\n        }\n      }\n      for (const accessor of orderedAccessors) {\n        if (isGetAccessorDeclaration(accessor)) {\n          addClassElement(factory.createGetAccessorDeclaration(\n            modifiers,\n            createName(declarationName),\n            emptyArray,\n            createTypeNode(typeNode2),\n            createBody(body, quotePreference, ambient)\n          ));\n        } else {\n          Debug.assertNode(accessor, isSetAccessorDeclaration, \"The counterpart to a getter should be a setter\");\n          const parameter = getSetAccessorValueParameter(accessor);\n          const parameterName = parameter && isIdentifier(parameter.name) ? idText(parameter.name) : void 0;\n          addClassElement(factory.createSetAccessorDeclaration(\n            modifiers,\n            createName(declarationName),\n            createDummyParameters(\n              1,\n              [parameterName],\n              [createTypeNode(typeNode2)],\n              1,\n              /*inJs*/\n              false\n            ),\n            createBody(body, quotePreference, ambient)\n          ));\n        }\n      }\n      break;\n    }\n    case 174 /* MethodSignature */:\n    case 175 /* MethodDeclaration */:\n      Debug.assertIsDefined(declarations);\n      const signatures = type.isUnion() ? flatMap(type.types, (t) => t.getCallSignatures()) : type.getCallSignatures();\n      if (!some(signatures)) {\n        break;\n      }\n      if (declarations.length === 1) {\n        Debug.assert(signatures.length === 1, \"One declaration implies one signature\");\n        const signature = signatures[0];\n        outputMethod(quotePreference, signature, modifiers, createName(declarationName), createBody(body, quotePreference, ambient));\n        break;\n      }\n      for (const signature of signatures) {\n        if (signature.declaration && signature.declaration.flags & 33554432 /* Ambient */) {\n          continue;\n        }\n        outputMethod(quotePreference, signature, modifiers, createName(declarationName));\n      }\n      if (!ambient) {\n        if (declarations.length > signatures.length) {\n          const signature = checker.getSignatureFromDeclaration(declarations[declarations.length - 1]);\n          outputMethod(quotePreference, signature, modifiers, createName(declarationName), createBody(body, quotePreference));\n        } else {\n          Debug.assert(declarations.length === signatures.length, \"Declarations and signatures should match count\");\n          addClassElement(createMethodImplementingSignatures(checker, context, enclosingDeclaration, signatures, createName(declarationName), optional && !!(preserveOptional & 1 /* Method */), modifiers, quotePreference, body));\n        }\n      }\n      break;\n  }\n  function outputMethod(quotePreference2, signature, modifiers2, name, body2) {\n    const method = createSignatureDeclarationFromSignature(175 /* MethodDeclaration */, context, quotePreference2, signature, body2, name, modifiers2, optional && !!(preserveOptional & 1 /* Method */), enclosingDeclaration, importAdder);\n    if (method) addClassElement(method);\n  }\n  function createModifiers() {\n    let modifiers2;\n    if (modifierFlags) {\n      modifiers2 = combine(modifiers2, factory.createModifiersFromModifierFlags(modifierFlags));\n    }\n    if (shouldAddOverrideKeyword()) {\n      modifiers2 = append(modifiers2, factory.createToken(164 /* OverrideKeyword */));\n    }\n    return modifiers2 && factory.createNodeArray(modifiers2);\n  }\n  function shouldAddOverrideKeyword() {\n    return !!(context.program.getCompilerOptions().noImplicitOverride && declaration && hasAbstractModifier(declaration));\n  }\n  function createName(node) {\n    if (isIdentifier(node) && node.escapedText === \"constructor\") {\n      return factory.createComputedPropertyName(factory.createStringLiteral(idText(node), quotePreference === 0 /* Single */));\n    }\n    return getSynthesizedDeepClone(\n      node,\n      /*includeTrivia*/\n      false\n    );\n  }\n  function createBody(block, quotePreference2, ambient2) {\n    return ambient2 ? void 0 : getSynthesizedDeepClone(\n      block,\n      /*includeTrivia*/\n      false\n    ) || createStubbedMethodBody(quotePreference2);\n  }\n  function createTypeNode(typeNode) {\n    return getSynthesizedDeepClone(\n      typeNode,\n      /*includeTrivia*/\n      false\n    );\n  }\n  function createDeclarationName(symbol2, declaration2) {\n    if (getCheckFlags(symbol2) & 262144 /* Mapped */) {\n      const nameType = symbol2.links.nameType;\n      if (nameType && isTypeUsableAsPropertyName(nameType)) {\n        return factory.createIdentifier(unescapeLeadingUnderscores(getPropertyNameFromType(nameType)));\n      }\n    }\n    return getSynthesizedDeepClone(\n      getNameOfDeclaration(declaration2),\n      /*includeTrivia*/\n      false\n    );\n  }\n}\nfunction createSignatureDeclarationFromSignature(kind, context, quotePreference, signature, body, name, modifiers, optional, enclosingDeclaration, importAdder) {\n  const program = context.program;\n  const checker = program.getTypeChecker();\n  const scriptTarget = getEmitScriptTarget(program.getCompilerOptions());\n  const isJs = isInJSFile(enclosingDeclaration);\n  const flags = 1 /* NoTruncation */ | 256 /* SuppressAnyReturnType */ | 524288 /* AllowEmptyTuple */ | (quotePreference === 0 /* Single */ ? 268435456 /* UseSingleQuotesForStringLiteralType */ : 0 /* None */);\n  const signatureDeclaration = checker.signatureToSignatureDeclaration(signature, kind, enclosingDeclaration, flags, 8 /* AllowUnresolvedNames */, getNoopSymbolTrackerWithResolver(context));\n  if (!signatureDeclaration) {\n    return void 0;\n  }\n  let typeParameters = isJs ? void 0 : signatureDeclaration.typeParameters;\n  let parameters = signatureDeclaration.parameters;\n  let type = isJs ? void 0 : getSynthesizedDeepClone(signatureDeclaration.type);\n  if (importAdder) {\n    if (typeParameters) {\n      const newTypeParameters = sameMap(typeParameters, (typeParameterDecl) => {\n        let constraint = typeParameterDecl.constraint;\n        let defaultType = typeParameterDecl.default;\n        if (constraint) {\n          const importableReference = tryGetAutoImportableReferenceFromTypeNode(constraint, scriptTarget);\n          if (importableReference) {\n            constraint = importableReference.typeNode;\n            importSymbols(importAdder, importableReference.symbols);\n          }\n        }\n        if (defaultType) {\n          const importableReference = tryGetAutoImportableReferenceFromTypeNode(defaultType, scriptTarget);\n          if (importableReference) {\n            defaultType = importableReference.typeNode;\n            importSymbols(importAdder, importableReference.symbols);\n          }\n        }\n        return factory.updateTypeParameterDeclaration(\n          typeParameterDecl,\n          typeParameterDecl.modifiers,\n          typeParameterDecl.name,\n          constraint,\n          defaultType\n        );\n      });\n      if (typeParameters !== newTypeParameters) {\n        typeParameters = setTextRange(factory.createNodeArray(newTypeParameters, typeParameters.hasTrailingComma), typeParameters);\n      }\n    }\n    const newParameters = sameMap(parameters, (parameterDecl) => {\n      let type2 = isJs ? void 0 : parameterDecl.type;\n      if (type2) {\n        const importableReference = tryGetAutoImportableReferenceFromTypeNode(type2, scriptTarget);\n        if (importableReference) {\n          type2 = importableReference.typeNode;\n          importSymbols(importAdder, importableReference.symbols);\n        }\n      }\n      return factory.updateParameterDeclaration(\n        parameterDecl,\n        parameterDecl.modifiers,\n        parameterDecl.dotDotDotToken,\n        parameterDecl.name,\n        isJs ? void 0 : parameterDecl.questionToken,\n        type2,\n        parameterDecl.initializer\n      );\n    });\n    if (parameters !== newParameters) {\n      parameters = setTextRange(factory.createNodeArray(newParameters, parameters.hasTrailingComma), parameters);\n    }\n    if (type) {\n      const importableReference = tryGetAutoImportableReferenceFromTypeNode(type, scriptTarget);\n      if (importableReference) {\n        type = importableReference.typeNode;\n        importSymbols(importAdder, importableReference.symbols);\n      }\n    }\n  }\n  const questionToken = optional ? factory.createToken(58 /* QuestionToken */) : void 0;\n  const asteriskToken = signatureDeclaration.asteriskToken;\n  if (isFunctionExpression(signatureDeclaration)) {\n    return factory.updateFunctionExpression(signatureDeclaration, modifiers, signatureDeclaration.asteriskToken, tryCast(name, isIdentifier), typeParameters, parameters, type, body ?? signatureDeclaration.body);\n  }\n  if (isArrowFunction(signatureDeclaration)) {\n    return factory.updateArrowFunction(signatureDeclaration, modifiers, typeParameters, parameters, type, signatureDeclaration.equalsGreaterThanToken, body ?? signatureDeclaration.body);\n  }\n  if (isMethodDeclaration(signatureDeclaration)) {\n    return factory.updateMethodDeclaration(signatureDeclaration, modifiers, asteriskToken, name ?? factory.createIdentifier(\"\"), questionToken, typeParameters, parameters, type, body);\n  }\n  if (isFunctionDeclaration(signatureDeclaration)) {\n    return factory.updateFunctionDeclaration(signatureDeclaration, modifiers, signatureDeclaration.asteriskToken, tryCast(name, isIdentifier), typeParameters, parameters, type, body ?? signatureDeclaration.body);\n  }\n  return void 0;\n}\nfunction createSignatureDeclarationFromCallExpression(kind, context, importAdder, call, name, modifierFlags, contextNode) {\n  const quotePreference = getQuotePreference(context.sourceFile, context.preferences);\n  const scriptTarget = getEmitScriptTarget(context.program.getCompilerOptions());\n  const tracker = getNoopSymbolTrackerWithResolver(context);\n  const checker = context.program.getTypeChecker();\n  const isJs = isInJSFile(contextNode);\n  const { typeArguments, arguments: args, parent: parent2 } = call;\n  const contextualType = isJs ? void 0 : checker.getContextualType(call);\n  const names = map(args, (arg) => isIdentifier(arg) ? arg.text : isPropertyAccessExpression(arg) && isIdentifier(arg.name) ? arg.name.text : void 0);\n  const instanceTypes = isJs ? [] : map(args, (arg) => checker.getTypeAtLocation(arg));\n  const { argumentTypeNodes, argumentTypeParameters } = getArgumentTypesAndTypeParameters(\n    checker,\n    importAdder,\n    instanceTypes,\n    contextNode,\n    scriptTarget,\n    1 /* NoTruncation */,\n    8 /* AllowUnresolvedNames */,\n    tracker\n  );\n  const modifiers = modifierFlags ? factory.createNodeArray(factory.createModifiersFromModifierFlags(modifierFlags)) : void 0;\n  const asteriskToken = isYieldExpression(parent2) ? factory.createToken(42 /* AsteriskToken */) : void 0;\n  const typeParameters = isJs ? void 0 : createTypeParametersForArguments(checker, argumentTypeParameters, typeArguments);\n  const parameters = createDummyParameters(\n    args.length,\n    names,\n    argumentTypeNodes,\n    /*minArgumentCount*/\n    void 0,\n    isJs\n  );\n  const type = isJs || contextualType === void 0 ? void 0 : checker.typeToTypeNode(\n    contextualType,\n    contextNode,\n    /*flags*/\n    void 0,\n    /*internalFlags*/\n    void 0,\n    tracker\n  );\n  switch (kind) {\n    case 175 /* MethodDeclaration */:\n      return factory.createMethodDeclaration(\n        modifiers,\n        asteriskToken,\n        name,\n        /*questionToken*/\n        void 0,\n        typeParameters,\n        parameters,\n        type,\n        createStubbedMethodBody(quotePreference)\n      );\n    case 174 /* MethodSignature */:\n      return factory.createMethodSignature(\n        modifiers,\n        name,\n        /*questionToken*/\n        void 0,\n        typeParameters,\n        parameters,\n        type === void 0 ? factory.createKeywordTypeNode(159 /* UnknownKeyword */) : type\n      );\n    case 263 /* FunctionDeclaration */:\n      Debug.assert(typeof name === \"string\" || isIdentifier(name), \"Unexpected name\");\n      return factory.createFunctionDeclaration(\n        modifiers,\n        asteriskToken,\n        name,\n        typeParameters,\n        parameters,\n        type,\n        createStubbedBody(Diagnostics.Function_not_implemented.message, quotePreference)\n      );\n    default:\n      Debug.fail(\"Unexpected kind\");\n  }\n}\nfunction createTypeParametersForArguments(checker, argumentTypeParameters, typeArguments) {\n  const usedNames = new Set(argumentTypeParameters.map((pair) => pair[0]));\n  const constraintsByName = new Map(argumentTypeParameters);\n  if (typeArguments) {\n    const typeArgumentsWithNewTypes = typeArguments.filter((typeArgument) => !argumentTypeParameters.some((pair) => {\n      var _a;\n      return checker.getTypeAtLocation(typeArgument) === ((_a = pair[1]) == null ? void 0 : _a.argumentType);\n    }));\n    const targetSize = usedNames.size + typeArgumentsWithNewTypes.length;\n    for (let i = 0; usedNames.size < targetSize; i += 1) {\n      usedNames.add(createTypeParameterName(i));\n    }\n  }\n  return arrayFrom(\n    usedNames.values(),\n    (usedName) => {\n      var _a;\n      return factory.createTypeParameterDeclaration(\n        /*modifiers*/\n        void 0,\n        usedName,\n        (_a = constraintsByName.get(usedName)) == null ? void 0 : _a.constraint\n      );\n    }\n  );\n}\nfunction createTypeParameterName(index) {\n  return 84 /* T */ + index <= 90 /* Z */ ? String.fromCharCode(84 /* T */ + index) : `T${index}`;\n}\nfunction typeToAutoImportableTypeNode(checker, importAdder, type, contextNode, scriptTarget, flags, internalFlags, tracker) {\n  const typeNode = checker.typeToTypeNode(type, contextNode, flags, internalFlags, tracker);\n  if (!typeNode) {\n    return void 0;\n  }\n  return typeNodeToAutoImportableTypeNode(typeNode, importAdder, scriptTarget);\n}\nfunction typeNodeToAutoImportableTypeNode(typeNode, importAdder, scriptTarget) {\n  const importableReference = tryGetAutoImportableReferenceFromTypeNode(typeNode, scriptTarget);\n  if (importableReference) {\n    importSymbols(importAdder, importableReference.symbols);\n    typeNode = importableReference.typeNode;\n  }\n  return getSynthesizedDeepClone(typeNode);\n}\nfunction endOfRequiredTypeParameters(checker, type) {\n  var _a;\n  Debug.assert(type.typeArguments);\n  const fullTypeArguments = type.typeArguments;\n  const target = type.target;\n  for (let cutoff = 0; cutoff < fullTypeArguments.length; cutoff++) {\n    if (((_a = target.localTypeParameters) == null ? void 0 : _a[cutoff].constraint) === void 0) {\n      continue;\n    }\n    const typeArguments = fullTypeArguments.slice(0, cutoff);\n    const filledIn = checker.fillMissingTypeArguments(\n      typeArguments,\n      target.typeParameters,\n      cutoff,\n      /*isJavaScriptImplicitAny*/\n      false\n    );\n    if (filledIn.every((fill, i) => fill === fullTypeArguments[i])) {\n      return cutoff;\n    }\n  }\n  return fullTypeArguments.length;\n}\nfunction typeToMinimizedReferenceType(checker, type, contextNode, flags, internalFlags, tracker) {\n  let typeNode = checker.typeToTypeNode(type, contextNode, flags, internalFlags, tracker);\n  if (!typeNode) {\n    return void 0;\n  }\n  if (isTypeReferenceNode(typeNode)) {\n    const genericType = type;\n    if (genericType.typeArguments && typeNode.typeArguments) {\n      const cutoff = endOfRequiredTypeParameters(checker, genericType);\n      if (cutoff < typeNode.typeArguments.length) {\n        const newTypeArguments = factory.createNodeArray(typeNode.typeArguments.slice(0, cutoff));\n        typeNode = factory.updateTypeReferenceNode(typeNode, typeNode.typeName, newTypeArguments);\n      }\n    }\n  }\n  return typeNode;\n}\nfunction typePredicateToAutoImportableTypeNode(checker, importAdder, typePredicate, contextNode, scriptTarget, flags, internalFlags, tracker) {\n  let typePredicateNode = checker.typePredicateToTypePredicateNode(typePredicate, contextNode, flags, internalFlags, tracker);\n  if ((typePredicateNode == null ? void 0 : typePredicateNode.type) && isImportTypeNode(typePredicateNode.type)) {\n    const importableReference = tryGetAutoImportableReferenceFromTypeNode(typePredicateNode.type, scriptTarget);\n    if (importableReference) {\n      importSymbols(importAdder, importableReference.symbols);\n      typePredicateNode = factory.updateTypePredicateNode(typePredicateNode, typePredicateNode.assertsModifier, typePredicateNode.parameterName, importableReference.typeNode);\n    }\n  }\n  return getSynthesizedDeepClone(typePredicateNode);\n}\nfunction typeContainsTypeParameter(type) {\n  if (type.isUnionOrIntersection()) {\n    return type.types.some(typeContainsTypeParameter);\n  }\n  return type.flags & 262144 /* TypeParameter */;\n}\nfunction getArgumentTypesAndTypeParameters(checker, importAdder, instanceTypes, contextNode, scriptTarget, flags, internalFlags, tracker) {\n  const argumentTypeNodes = [];\n  const argumentTypeParameters = /* @__PURE__ */ new Map();\n  for (let i = 0; i < instanceTypes.length; i += 1) {\n    const instanceType = instanceTypes[i];\n    if (instanceType.isUnionOrIntersection() && instanceType.types.some(typeContainsTypeParameter)) {\n      const synthesizedTypeParameterName = createTypeParameterName(i);\n      argumentTypeNodes.push(factory.createTypeReferenceNode(synthesizedTypeParameterName));\n      argumentTypeParameters.set(synthesizedTypeParameterName, void 0);\n      continue;\n    }\n    const widenedInstanceType = checker.getBaseTypeOfLiteralType(instanceType);\n    const argumentTypeNode = typeToAutoImportableTypeNode(checker, importAdder, widenedInstanceType, contextNode, scriptTarget, flags, internalFlags, tracker);\n    if (!argumentTypeNode) {\n      continue;\n    }\n    argumentTypeNodes.push(argumentTypeNode);\n    const argumentTypeParameter = getFirstTypeParameterName(instanceType);\n    const instanceTypeConstraint = instanceType.isTypeParameter() && instanceType.constraint && !isAnonymousObjectConstraintType(instanceType.constraint) ? typeToAutoImportableTypeNode(checker, importAdder, instanceType.constraint, contextNode, scriptTarget, flags, internalFlags, tracker) : void 0;\n    if (argumentTypeParameter) {\n      argumentTypeParameters.set(argumentTypeParameter, { argumentType: instanceType, constraint: instanceTypeConstraint });\n    }\n  }\n  return { argumentTypeNodes, argumentTypeParameters: arrayFrom(argumentTypeParameters.entries()) };\n}\nfunction isAnonymousObjectConstraintType(type) {\n  return type.flags & 524288 /* Object */ && type.objectFlags === 16 /* Anonymous */;\n}\nfunction getFirstTypeParameterName(type) {\n  var _a;\n  if (type.flags & (1048576 /* Union */ | 2097152 /* Intersection */)) {\n    for (const subType of type.types) {\n      const subTypeName = getFirstTypeParameterName(subType);\n      if (subTypeName) {\n        return subTypeName;\n      }\n    }\n  }\n  return type.flags & 262144 /* TypeParameter */ ? (_a = type.getSymbol()) == null ? void 0 : _a.getName() : void 0;\n}\nfunction createDummyParameters(argCount, names, types, minArgumentCount, inJs) {\n  const parameters = [];\n  const parameterNameCounts = /* @__PURE__ */ new Map();\n  for (let i = 0; i < argCount; i++) {\n    const parameterName = (names == null ? void 0 : names[i]) || `arg${i}`;\n    const parameterNameCount = parameterNameCounts.get(parameterName);\n    parameterNameCounts.set(parameterName, (parameterNameCount || 0) + 1);\n    const newParameter = factory.createParameterDeclaration(\n      /*modifiers*/\n      void 0,\n      /*dotDotDotToken*/\n      void 0,\n      /*name*/\n      parameterName + (parameterNameCount || \"\"),\n      /*questionToken*/\n      minArgumentCount !== void 0 && i >= minArgumentCount ? factory.createToken(58 /* QuestionToken */) : void 0,\n      /*type*/\n      inJs ? void 0 : (types == null ? void 0 : types[i]) || factory.createKeywordTypeNode(159 /* UnknownKeyword */),\n      /*initializer*/\n      void 0\n    );\n    parameters.push(newParameter);\n  }\n  return parameters;\n}\nfunction createMethodImplementingSignatures(checker, context, enclosingDeclaration, signatures, name, optional, modifiers, quotePreference, body) {\n  let maxArgsSignature = signatures[0];\n  let minArgumentCount = signatures[0].minArgumentCount;\n  let someSigHasRestParameter = false;\n  for (const sig of signatures) {\n    minArgumentCount = Math.min(sig.minArgumentCount, minArgumentCount);\n    if (signatureHasRestParameter(sig)) {\n      someSigHasRestParameter = true;\n    }\n    if (sig.parameters.length >= maxArgsSignature.parameters.length && (!signatureHasRestParameter(sig) || signatureHasRestParameter(maxArgsSignature))) {\n      maxArgsSignature = sig;\n    }\n  }\n  const maxNonRestArgs = maxArgsSignature.parameters.length - (signatureHasRestParameter(maxArgsSignature) ? 1 : 0);\n  const maxArgsParameterSymbolNames = maxArgsSignature.parameters.map((symbol) => symbol.name);\n  const parameters = createDummyParameters(\n    maxNonRestArgs,\n    maxArgsParameterSymbolNames,\n    /*types*/\n    void 0,\n    minArgumentCount,\n    /*inJs*/\n    false\n  );\n  if (someSigHasRestParameter) {\n    const restParameter = factory.createParameterDeclaration(\n      /*modifiers*/\n      void 0,\n      factory.createToken(26 /* DotDotDotToken */),\n      maxArgsParameterSymbolNames[maxNonRestArgs] || \"rest\",\n      /*questionToken*/\n      maxNonRestArgs >= minArgumentCount ? factory.createToken(58 /* QuestionToken */) : void 0,\n      factory.createArrayTypeNode(factory.createKeywordTypeNode(159 /* UnknownKeyword */)),\n      /*initializer*/\n      void 0\n    );\n    parameters.push(restParameter);\n  }\n  return createStubbedMethod(\n    modifiers,\n    name,\n    optional,\n    /*typeParameters*/\n    void 0,\n    parameters,\n    getReturnTypeFromSignatures(signatures, checker, context, enclosingDeclaration),\n    quotePreference,\n    body\n  );\n}\nfunction getReturnTypeFromSignatures(signatures, checker, context, enclosingDeclaration) {\n  if (length(signatures)) {\n    const type = checker.getUnionType(map(signatures, checker.getReturnTypeOfSignature));\n    return checker.typeToTypeNode(type, enclosingDeclaration, 1 /* NoTruncation */, 8 /* AllowUnresolvedNames */, getNoopSymbolTrackerWithResolver(context));\n  }\n}\nfunction createStubbedMethod(modifiers, name, optional, typeParameters, parameters, returnType, quotePreference, body) {\n  return factory.createMethodDeclaration(\n    modifiers,\n    /*asteriskToken*/\n    void 0,\n    name,\n    optional ? factory.createToken(58 /* QuestionToken */) : void 0,\n    typeParameters,\n    parameters,\n    returnType,\n    body || createStubbedMethodBody(quotePreference)\n  );\n}\nfunction createStubbedMethodBody(quotePreference) {\n  return createStubbedBody(Diagnostics.Method_not_implemented.message, quotePreference);\n}\nfunction createStubbedBody(text, quotePreference) {\n  return factory.createBlock(\n    [factory.createThrowStatement(\n      factory.createNewExpression(\n        factory.createIdentifier(\"Error\"),\n        /*typeArguments*/\n        void 0,\n        // TODO Handle auto quote preference.\n        [factory.createStringLiteral(\n          text,\n          /*isSingleQuote*/\n          quotePreference === 0 /* Single */\n        )]\n      )\n    )],\n    /*multiLine*/\n    true\n  );\n}\nfunction setJsonCompilerOptionValues(changeTracker, configFile, options) {\n  const tsconfigObjectLiteral = getTsConfigObjectLiteralExpression(configFile);\n  if (!tsconfigObjectLiteral) return void 0;\n  const compilerOptionsProperty = findJsonProperty(tsconfigObjectLiteral, \"compilerOptions\");\n  if (compilerOptionsProperty === void 0) {\n    changeTracker.insertNodeAtObjectStart(\n      configFile,\n      tsconfigObjectLiteral,\n      createJsonPropertyAssignment(\n        \"compilerOptions\",\n        factory.createObjectLiteralExpression(\n          options.map(([optionName, optionValue]) => createJsonPropertyAssignment(optionName, optionValue)),\n          /*multiLine*/\n          true\n        )\n      )\n    );\n    return;\n  }\n  const compilerOptions = compilerOptionsProperty.initializer;\n  if (!isObjectLiteralExpression(compilerOptions)) {\n    return;\n  }\n  for (const [optionName, optionValue] of options) {\n    const optionProperty = findJsonProperty(compilerOptions, optionName);\n    if (optionProperty === void 0) {\n      changeTracker.insertNodeAtObjectStart(configFile, compilerOptions, createJsonPropertyAssignment(optionName, optionValue));\n    } else {\n      changeTracker.replaceNode(configFile, optionProperty.initializer, optionValue);\n    }\n  }\n}\nfunction setJsonCompilerOptionValue(changeTracker, configFile, optionName, optionValue) {\n  setJsonCompilerOptionValues(changeTracker, configFile, [[optionName, optionValue]]);\n}\nfunction createJsonPropertyAssignment(name, initializer) {\n  return factory.createPropertyAssignment(factory.createStringLiteral(name), initializer);\n}\nfunction findJsonProperty(obj, name) {\n  return find(obj.properties, (p) => isPropertyAssignment(p) && !!p.name && isStringLiteral(p.name) && p.name.text === name);\n}\nfunction tryGetAutoImportableReferenceFromTypeNode(importTypeNode, scriptTarget) {\n  let symbols;\n  const typeNode = visitNode(importTypeNode, visit, isTypeNode);\n  if (symbols && typeNode) {\n    return { typeNode, symbols };\n  }\n  function visit(node) {\n    if (isLiteralImportTypeNode(node) && node.qualifier) {\n      const firstIdentifier = getFirstIdentifier(node.qualifier);\n      if (!firstIdentifier.symbol) {\n        return visitEachChild(\n          node,\n          visit,\n          /*context*/\n          void 0\n        );\n      }\n      const name = getNameForExportedSymbol(firstIdentifier.symbol, scriptTarget);\n      const qualifier = name !== firstIdentifier.text ? replaceFirstIdentifierOfEntityName(node.qualifier, factory.createIdentifier(name)) : node.qualifier;\n      symbols = append(symbols, firstIdentifier.symbol);\n      const typeArguments = visitNodes2(node.typeArguments, visit, isTypeNode);\n      return factory.createTypeReferenceNode(qualifier, typeArguments);\n    }\n    return visitEachChild(\n      node,\n      visit,\n      /*context*/\n      void 0\n    );\n  }\n}\nfunction replaceFirstIdentifierOfEntityName(name, newIdentifier) {\n  if (name.kind === 80 /* Identifier */) {\n    return newIdentifier;\n  }\n  return factory.createQualifiedName(replaceFirstIdentifierOfEntityName(name.left, newIdentifier), name.right);\n}\nfunction importSymbols(importAdder, symbols) {\n  symbols.forEach((s) => importAdder.addImportFromExportedSymbol(\n    s,\n    /*isValidTypeOnlyUseSite*/\n    true\n  ));\n}\nfunction findAncestorMatchingSpan(sourceFile, span) {\n  const end = textSpanEnd(span);\n  let token = getTokenAtPosition(sourceFile, span.start);\n  while (token.end < end) {\n    token = token.parent;\n  }\n  return token;\n}\n\n// src/services/codefixes/generateAccessors.ts\nfunction generateAccessorFromProperty(file, program, start, end, context, _actionName) {\n  const fieldInfo = getAccessorConvertiblePropertyAtPosition(file, program, start, end);\n  if (!fieldInfo || ts_refactor_exports.isRefactorErrorInfo(fieldInfo)) return void 0;\n  const changeTracker = ts_textChanges_exports.ChangeTracker.fromContext(context);\n  const { isStatic: isStatic2, isReadonly, fieldName, accessorName, originalName, type, container, declaration } = fieldInfo;\n  suppressLeadingAndTrailingTrivia(fieldName);\n  suppressLeadingAndTrailingTrivia(accessorName);\n  suppressLeadingAndTrailingTrivia(declaration);\n  suppressLeadingAndTrailingTrivia(container);\n  let accessorModifiers;\n  let fieldModifiers;\n  if (isClassLike(container)) {\n    const modifierFlags = getEffectiveModifierFlags(declaration);\n    if (isSourceFileJS(file)) {\n      const modifiers = factory.createModifiersFromModifierFlags(modifierFlags);\n      accessorModifiers = modifiers;\n      fieldModifiers = modifiers;\n    } else {\n      accessorModifiers = factory.createModifiersFromModifierFlags(prepareModifierFlagsForAccessor(modifierFlags));\n      fieldModifiers = factory.createModifiersFromModifierFlags(prepareModifierFlagsForField(modifierFlags));\n    }\n    if (canHaveDecorators(declaration)) {\n      fieldModifiers = concatenate(getDecorators(declaration), fieldModifiers);\n    }\n  }\n  updateFieldDeclaration(changeTracker, file, declaration, type, fieldName, fieldModifiers);\n  const getAccessor = generateGetAccessor(fieldName, accessorName, type, accessorModifiers, isStatic2, container);\n  suppressLeadingAndTrailingTrivia(getAccessor);\n  insertAccessor(changeTracker, file, getAccessor, declaration, container);\n  if (isReadonly) {\n    const constructor = getFirstConstructorWithBody(container);\n    if (constructor) {\n      updateReadonlyPropertyInitializerStatementConstructor(changeTracker, file, constructor, fieldName.text, originalName);\n    }\n  } else {\n    const setAccessor = generateSetAccessor(fieldName, accessorName, type, accessorModifiers, isStatic2, container);\n    suppressLeadingAndTrailingTrivia(setAccessor);\n    insertAccessor(changeTracker, file, setAccessor, declaration, container);\n  }\n  return changeTracker.getChanges();\n}\nfunction isConvertibleName(name) {\n  return isIdentifier(name) || isStringLiteral(name);\n}\nfunction isAcceptedDeclaration(node) {\n  return isParameterPropertyDeclaration(node, node.parent) || isPropertyDeclaration(node) || isPropertyAssignment(node);\n}\nfunction createPropertyName(name, originalName) {\n  return isIdentifier(originalName) ? factory.createIdentifier(name) : factory.createStringLiteral(name);\n}\nfunction createAccessorAccessExpression(fieldName, isStatic2, container) {\n  const leftHead = isStatic2 ? container.name : factory.createThis();\n  return isIdentifier(fieldName) ? factory.createPropertyAccessExpression(leftHead, fieldName) : factory.createElementAccessExpression(leftHead, factory.createStringLiteralFromNode(fieldName));\n}\nfunction prepareModifierFlagsForAccessor(modifierFlags) {\n  modifierFlags &= ~8 /* Readonly */;\n  modifierFlags &= ~2 /* Private */;\n  if (!(modifierFlags & 4 /* Protected */)) {\n    modifierFlags |= 1 /* Public */;\n  }\n  return modifierFlags;\n}\nfunction prepareModifierFlagsForField(modifierFlags) {\n  modifierFlags &= ~1 /* Public */;\n  modifierFlags &= ~4 /* Protected */;\n  modifierFlags |= 2 /* Private */;\n  return modifierFlags;\n}\nfunction getAccessorConvertiblePropertyAtPosition(file, program, start, end, considerEmptySpans = true) {\n  const node = getTokenAtPosition(file, start);\n  const cursorRequest = start === end && considerEmptySpans;\n  const declaration = findAncestor(node.parent, isAcceptedDeclaration);\n  const meaning = 7 /* AccessibilityModifier */ | 256 /* Static */ | 8 /* Readonly */;\n  if (!declaration || !(nodeOverlapsWithStartEnd(declaration.name, file, start, end) || cursorRequest)) {\n    return {\n      error: getLocaleSpecificMessage(Diagnostics.Could_not_find_property_for_which_to_generate_accessor)\n    };\n  }\n  if (!isConvertibleName(declaration.name)) {\n    return {\n      error: getLocaleSpecificMessage(Diagnostics.Name_is_not_valid)\n    };\n  }\n  if ((getEffectiveModifierFlags(declaration) & 98303 /* Modifier */ | meaning) !== meaning) {\n    return {\n      error: getLocaleSpecificMessage(Diagnostics.Can_only_convert_property_with_modifier)\n    };\n  }\n  const name = declaration.name.text;\n  const startWithUnderscore = startsWithUnderscore(name);\n  const fieldName = createPropertyName(startWithUnderscore ? name : getUniqueName(`_${name}`, file), declaration.name);\n  const accessorName = createPropertyName(startWithUnderscore ? getUniqueName(name.substring(1), file) : name, declaration.name);\n  return {\n    isStatic: hasStaticModifier(declaration),\n    isReadonly: hasEffectiveReadonlyModifier(declaration),\n    type: getDeclarationType(declaration, program),\n    container: declaration.kind === 170 /* Parameter */ ? declaration.parent.parent : declaration.parent,\n    originalName: declaration.name.text,\n    declaration,\n    fieldName,\n    accessorName,\n    renameAccessor: startWithUnderscore\n  };\n}\nfunction generateGetAccessor(fieldName, accessorName, type, modifiers, isStatic2, container) {\n  return factory.createGetAccessorDeclaration(\n    modifiers,\n    accessorName,\n    [],\n    type,\n    factory.createBlock(\n      [\n        factory.createReturnStatement(\n          createAccessorAccessExpression(fieldName, isStatic2, container)\n        )\n      ],\n      /*multiLine*/\n      true\n    )\n  );\n}\nfunction generateSetAccessor(fieldName, accessorName, type, modifiers, isStatic2, container) {\n  return factory.createSetAccessorDeclaration(\n    modifiers,\n    accessorName,\n    [factory.createParameterDeclaration(\n      /*modifiers*/\n      void 0,\n      /*dotDotDotToken*/\n      void 0,\n      factory.createIdentifier(\"value\"),\n      /*questionToken*/\n      void 0,\n      type\n    )],\n    factory.createBlock(\n      [\n        factory.createExpressionStatement(\n          factory.createAssignment(\n            createAccessorAccessExpression(fieldName, isStatic2, container),\n            factory.createIdentifier(\"value\")\n          )\n        )\n      ],\n      /*multiLine*/\n      true\n    )\n  );\n}\nfunction updatePropertyDeclaration(changeTracker, file, declaration, type, fieldName, modifiers) {\n  const property = factory.updatePropertyDeclaration(\n    declaration,\n    modifiers,\n    fieldName,\n    declaration.questionToken || declaration.exclamationToken,\n    type,\n    declaration.initializer\n  );\n  changeTracker.replaceNode(file, declaration, property);\n}\nfunction updatePropertyAssignmentDeclaration(changeTracker, file, declaration, fieldName) {\n  let assignment = factory.updatePropertyAssignment(declaration, fieldName, declaration.initializer);\n  if (assignment.modifiers || assignment.questionToken || assignment.exclamationToken) {\n    if (assignment === declaration) assignment = factory.cloneNode(assignment);\n    assignment.modifiers = void 0;\n    assignment.questionToken = void 0;\n    assignment.exclamationToken = void 0;\n  }\n  changeTracker.replacePropertyAssignment(file, declaration, assignment);\n}\nfunction updateFieldDeclaration(changeTracker, file, declaration, type, fieldName, modifiers) {\n  if (isPropertyDeclaration(declaration)) {\n    updatePropertyDeclaration(changeTracker, file, declaration, type, fieldName, modifiers);\n  } else if (isPropertyAssignment(declaration)) {\n    updatePropertyAssignmentDeclaration(changeTracker, file, declaration, fieldName);\n  } else {\n    changeTracker.replaceNode(file, declaration, factory.updateParameterDeclaration(declaration, modifiers, declaration.dotDotDotToken, cast(fieldName, isIdentifier), declaration.questionToken, declaration.type, declaration.initializer));\n  }\n}\nfunction insertAccessor(changeTracker, file, accessor, declaration, container) {\n  isParameterPropertyDeclaration(declaration, declaration.parent) ? changeTracker.insertMemberAtStart(file, container, accessor) : isPropertyAssignment(declaration) ? changeTracker.insertNodeAfterComma(file, declaration, accessor) : changeTracker.insertNodeAfter(file, declaration, accessor);\n}\nfunction updateReadonlyPropertyInitializerStatementConstructor(changeTracker, file, constructor, fieldName, originalName) {\n  if (!constructor.body) return;\n  constructor.body.forEachChild(function recur(node) {\n    if (isElementAccessExpression(node) && node.expression.kind === 110 /* ThisKeyword */ && isStringLiteral(node.argumentExpression) && node.argumentExpression.text === originalName && isWriteAccess(node)) {\n      changeTracker.replaceNode(file, node.argumentExpression, factory.createStringLiteral(fieldName));\n    }\n    if (isPropertyAccessExpression(node) && node.expression.kind === 110 /* ThisKeyword */ && node.name.text === originalName && isWriteAccess(node)) {\n      changeTracker.replaceNode(file, node.name, factory.createIdentifier(fieldName));\n    }\n    if (!isFunctionLike(node) && !isClassLike(node)) {\n      node.forEachChild(recur);\n    }\n  });\n}\nfunction getDeclarationType(declaration, program) {\n  const typeNode = getTypeAnnotationNode(declaration);\n  if (isPropertyDeclaration(declaration) && typeNode && declaration.questionToken) {\n    const typeChecker = program.getTypeChecker();\n    const type = typeChecker.getTypeFromTypeNode(typeNode);\n    if (!typeChecker.isTypeAssignableTo(typeChecker.getUndefinedType(), type)) {\n      const types = isUnionTypeNode(typeNode) ? typeNode.types : [typeNode];\n      return factory.createUnionTypeNode([...types, factory.createKeywordTypeNode(157 /* UndefinedKeyword */)]);\n    }\n  }\n  return typeNode;\n}\n\n// src/services/codefixes/fixInvalidImportSyntax.ts\nvar fixName5 = \"invalidImportSyntax\";\nfunction getCodeFixesForImportDeclaration(context, node) {\n  const sourceFile = getSourceFileOfNode(node);\n  const namespace = getNamespaceDeclarationNode(node);\n  const opts = context.program.getCompilerOptions();\n  const variations = [];\n  variations.push(createAction(context, sourceFile, node, makeImport(\n    namespace.name,\n    /*namedImports*/\n    void 0,\n    node.moduleSpecifier,\n    getQuotePreference(sourceFile, context.preferences)\n  )));\n  if (getEmitModuleKind(opts) === 1 /* CommonJS */) {\n    variations.push(createAction(\n      context,\n      sourceFile,\n      node,\n      factory.createImportEqualsDeclaration(\n        /*modifiers*/\n        void 0,\n        /*isTypeOnly*/\n        false,\n        namespace.name,\n        factory.createExternalModuleReference(node.moduleSpecifier)\n      )\n    ));\n  }\n  return variations;\n}\nfunction createAction(context, sourceFile, node, replacement) {\n  const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => t.replaceNode(sourceFile, node, replacement));\n  return createCodeFixActionWithoutFixAll(fixName5, changes, [Diagnostics.Replace_import_with_0, changes[0].textChanges[0].newText]);\n}\nregisterCodeFix({\n  errorCodes: [\n    Diagnostics.This_expression_is_not_callable.code,\n    Diagnostics.This_expression_is_not_constructable.code\n  ],\n  getCodeActions: getActionsForUsageOfInvalidImport\n});\nfunction getActionsForUsageOfInvalidImport(context) {\n  const sourceFile = context.sourceFile;\n  const targetKind = Diagnostics.This_expression_is_not_callable.code === context.errorCode ? 214 /* CallExpression */ : 215 /* NewExpression */;\n  const node = findAncestor(getTokenAtPosition(sourceFile, context.span.start), (a) => a.kind === targetKind);\n  if (!node) {\n    return [];\n  }\n  const expr = node.expression;\n  return getImportCodeFixesForExpression(context, expr);\n}\nregisterCodeFix({\n  errorCodes: [\n    // The following error codes cover pretty much all assignability errors that could involve an expression\n    Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code,\n    Diagnostics.Type_0_does_not_satisfy_the_constraint_1.code,\n    Diagnostics.Type_0_is_not_assignable_to_type_1.code,\n    Diagnostics.Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated.code,\n    Diagnostics.Type_predicate_0_is_not_assignable_to_1.code,\n    Diagnostics.Property_0_of_type_1_is_not_assignable_to_2_index_type_3.code,\n    Diagnostics._0_index_type_1_is_not_assignable_to_2_index_type_3.code,\n    Diagnostics.Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2.code,\n    Diagnostics.Property_0_in_type_1_is_not_assignable_to_type_2.code,\n    Diagnostics.Property_0_of_JSX_spread_attribute_is_not_assignable_to_target_property.code,\n    Diagnostics.The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1.code\n  ],\n  getCodeActions: getActionsForInvalidImportLocation\n});\nfunction getActionsForInvalidImportLocation(context) {\n  const sourceFile = context.sourceFile;\n  const node = findAncestor(getTokenAtPosition(sourceFile, context.span.start), (a) => a.getStart() === context.span.start && a.getEnd() === context.span.start + context.span.length);\n  if (!node) {\n    return [];\n  }\n  return getImportCodeFixesForExpression(context, node);\n}\nfunction getImportCodeFixesForExpression(context, expr) {\n  const type = context.program.getTypeChecker().getTypeAtLocation(expr);\n  if (!(type.symbol && isTransientSymbol(type.symbol) && type.symbol.links.originatingImport)) {\n    return [];\n  }\n  const fixes = [];\n  const relatedImport = type.symbol.links.originatingImport;\n  if (!isImportCall(relatedImport)) {\n    addRange(fixes, getCodeFixesForImportDeclaration(context, relatedImport));\n  }\n  if (isExpression(expr) && !(isNamedDeclaration(expr.parent) && expr.parent.name === expr)) {\n    const sourceFile = context.sourceFile;\n    const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => t.replaceNode(sourceFile, expr, factory.createPropertyAccessExpression(expr, \"default\"), {}));\n    fixes.push(createCodeFixActionWithoutFixAll(fixName5, changes, Diagnostics.Use_synthetic_default_member));\n  }\n  return fixes;\n}\n\n// src/services/codefixes/fixStrictClassInitialization.ts\nvar fixName6 = \"strictClassInitialization\";\nvar fixIdAddDefiniteAssignmentAssertions = \"addMissingPropertyDefiniteAssignmentAssertions\";\nvar fixIdAddUndefinedType = \"addMissingPropertyUndefinedType\";\nvar fixIdAddInitializer = \"addMissingPropertyInitializer\";\nvar errorCodes54 = [Diagnostics.Property_0_has_no_initializer_and_is_not_definitely_assigned_in_the_constructor.code];\nregisterCodeFix({\n  errorCodes: errorCodes54,\n  getCodeActions: function getCodeActionsForStrictClassInitializationErrors(context) {\n    const info = getInfo17(context.sourceFile, context.span.start);\n    if (!info) return;\n    const result = [];\n    append(result, getActionForAddMissingUndefinedType(context, info));\n    append(result, getActionForAddMissingDefiniteAssignmentAssertion(context, info));\n    append(result, getActionForAddMissingInitializer(context, info));\n    return result;\n  },\n  fixIds: [fixIdAddDefiniteAssignmentAssertions, fixIdAddUndefinedType, fixIdAddInitializer],\n  getAllCodeActions: (context) => {\n    return codeFixAll(context, errorCodes54, (changes, diag2) => {\n      const info = getInfo17(diag2.file, diag2.start);\n      if (!info) return;\n      switch (context.fixId) {\n        case fixIdAddDefiniteAssignmentAssertions:\n          addDefiniteAssignmentAssertion(changes, diag2.file, info.prop);\n          break;\n        case fixIdAddUndefinedType:\n          addUndefinedType(changes, diag2.file, info);\n          break;\n        case fixIdAddInitializer:\n          const checker = context.program.getTypeChecker();\n          const initializer = getInitializer(checker, info.prop);\n          if (!initializer) return;\n          addInitializer(changes, diag2.file, info.prop, initializer);\n          break;\n        default:\n          Debug.fail(JSON.stringify(context.fixId));\n      }\n    });\n  }\n});\nfunction getInfo17(sourceFile, pos) {\n  const token = getTokenAtPosition(sourceFile, pos);\n  if (isIdentifier(token) && isPropertyDeclaration(token.parent)) {\n    const type = getEffectiveTypeAnnotationNode(token.parent);\n    if (type) {\n      return { type, prop: token.parent, isJs: isInJSFile(token.parent) };\n    }\n  }\n  return void 0;\n}\nfunction getActionForAddMissingDefiniteAssignmentAssertion(context, info) {\n  if (info.isJs) return void 0;\n  const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => addDefiniteAssignmentAssertion(t, context.sourceFile, info.prop));\n  return createCodeFixAction(fixName6, changes, [Diagnostics.Add_definite_assignment_assertion_to_property_0, info.prop.getText()], fixIdAddDefiniteAssignmentAssertions, Diagnostics.Add_definite_assignment_assertions_to_all_uninitialized_properties);\n}\nfunction addDefiniteAssignmentAssertion(changeTracker, propertyDeclarationSourceFile, propertyDeclaration) {\n  suppressLeadingAndTrailingTrivia(propertyDeclaration);\n  const property = factory.updatePropertyDeclaration(\n    propertyDeclaration,\n    propertyDeclaration.modifiers,\n    propertyDeclaration.name,\n    factory.createToken(54 /* ExclamationToken */),\n    propertyDeclaration.type,\n    propertyDeclaration.initializer\n  );\n  changeTracker.replaceNode(propertyDeclarationSourceFile, propertyDeclaration, property);\n}\nfunction getActionForAddMissingUndefinedType(context, info) {\n  const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => addUndefinedType(t, context.sourceFile, info));\n  return createCodeFixAction(fixName6, changes, [Diagnostics.Add_undefined_type_to_property_0, info.prop.name.getText()], fixIdAddUndefinedType, Diagnostics.Add_undefined_type_to_all_uninitialized_properties);\n}\nfunction addUndefinedType(changeTracker, sourceFile, info) {\n  const undefinedTypeNode = factory.createKeywordTypeNode(157 /* UndefinedKeyword */);\n  const types = isUnionTypeNode(info.type) ? info.type.types.concat(undefinedTypeNode) : [info.type, undefinedTypeNode];\n  const unionTypeNode = factory.createUnionTypeNode(types);\n  if (info.isJs) {\n    changeTracker.addJSDocTags(sourceFile, info.prop, [factory.createJSDocTypeTag(\n      /*tagName*/\n      void 0,\n      factory.createJSDocTypeExpression(unionTypeNode)\n    )]);\n  } else {\n    changeTracker.replaceNode(sourceFile, info.type, unionTypeNode);\n  }\n}\nfunction getActionForAddMissingInitializer(context, info) {\n  if (info.isJs) return void 0;\n  const checker = context.program.getTypeChecker();\n  const initializer = getInitializer(checker, info.prop);\n  if (!initializer) return void 0;\n  const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => addInitializer(t, context.sourceFile, info.prop, initializer));\n  return createCodeFixAction(fixName6, changes, [Diagnostics.Add_initializer_to_property_0, info.prop.name.getText()], fixIdAddInitializer, Diagnostics.Add_initializers_to_all_uninitialized_properties);\n}\nfunction addInitializer(changeTracker, propertyDeclarationSourceFile, propertyDeclaration, initializer) {\n  suppressLeadingAndTrailingTrivia(propertyDeclaration);\n  const property = factory.updatePropertyDeclaration(\n    propertyDeclaration,\n    propertyDeclaration.modifiers,\n    propertyDeclaration.name,\n    propertyDeclaration.questionToken,\n    propertyDeclaration.type,\n    initializer\n  );\n  changeTracker.replaceNode(propertyDeclarationSourceFile, propertyDeclaration, property);\n}\nfunction getInitializer(checker, propertyDeclaration) {\n  return getDefaultValueFromType(checker, checker.getTypeFromTypeNode(propertyDeclaration.type));\n}\nfunction getDefaultValueFromType(checker, type) {\n  if (type.flags & 512 /* BooleanLiteral */) {\n    return type === checker.getFalseType() || type === checker.getFalseType(\n      /*fresh*/\n      true\n    ) ? factory.createFalse() : factory.createTrue();\n  } else if (type.isStringLiteral()) {\n    return factory.createStringLiteral(type.value);\n  } else if (type.isNumberLiteral()) {\n    return factory.createNumericLiteral(type.value);\n  } else if (type.flags & 2048 /* BigIntLiteral */) {\n    return factory.createBigIntLiteral(type.value);\n  } else if (type.isUnion()) {\n    return firstDefined(type.types, (t) => getDefaultValueFromType(checker, t));\n  } else if (type.isClass()) {\n    const classDeclaration = getClassLikeDeclarationOfSymbol(type.symbol);\n    if (!classDeclaration || hasSyntacticModifier(classDeclaration, 64 /* Abstract */)) return void 0;\n    const constructorDeclaration = getFirstConstructorWithBody(classDeclaration);\n    if (constructorDeclaration && constructorDeclaration.parameters.length) return void 0;\n    return factory.createNewExpression(\n      factory.createIdentifier(type.symbol.name),\n      /*typeArguments*/\n      void 0,\n      /*argumentsArray*/\n      void 0\n    );\n  } else if (checker.isArrayLikeType(type)) {\n    return factory.createArrayLiteralExpression();\n  }\n  return void 0;\n}\n\n// src/services/codefixes/requireInTs.ts\nvar fixId43 = \"requireInTs\";\nvar errorCodes55 = [Diagnostics.require_call_may_be_converted_to_an_import.code];\nregisterCodeFix({\n  errorCodes: errorCodes55,\n  getCodeActions(context) {\n    const info = getInfo18(context.sourceFile, context.program, context.span.start, context.preferences);\n    if (!info) {\n      return void 0;\n    }\n    const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange35(t, context.sourceFile, info));\n    return [createCodeFixAction(fixId43, changes, Diagnostics.Convert_require_to_import, fixId43, Diagnostics.Convert_all_require_to_import)];\n  },\n  fixIds: [fixId43],\n  getAllCodeActions: (context) => codeFixAll(context, errorCodes55, (changes, diag2) => {\n    const info = getInfo18(diag2.file, context.program, diag2.start, context.preferences);\n    if (info) {\n      doChange35(changes, context.sourceFile, info);\n    }\n  })\n});\nfunction doChange35(changes, sourceFile, info) {\n  const { allowSyntheticDefaults, defaultImportName, namedImports, statement, moduleSpecifier } = info;\n  changes.replaceNode(\n    sourceFile,\n    statement,\n    defaultImportName && !allowSyntheticDefaults ? factory.createImportEqualsDeclaration(\n      /*modifiers*/\n      void 0,\n      /*isTypeOnly*/\n      false,\n      defaultImportName,\n      factory.createExternalModuleReference(moduleSpecifier)\n    ) : factory.createImportDeclaration(\n      /*modifiers*/\n      void 0,\n      factory.createImportClause(\n        /*phaseModifier*/\n        void 0,\n        defaultImportName,\n        namedImports\n      ),\n      moduleSpecifier,\n      /*attributes*/\n      void 0\n    )\n  );\n}\nfunction getInfo18(sourceFile, program, pos, preferences) {\n  const { parent: parent2 } = getTokenAtPosition(sourceFile, pos);\n  if (!isRequireCall(\n    parent2,\n    /*requireStringLiteralLikeArgument*/\n    true\n  )) {\n    Debug.failBadSyntaxKind(parent2);\n  }\n  const decl = cast(parent2.parent, isVariableDeclaration);\n  const quotePreference = getQuotePreference(sourceFile, preferences);\n  const defaultImportName = tryCast(decl.name, isIdentifier);\n  const namedImports = isObjectBindingPattern(decl.name) ? tryCreateNamedImportsFromObjectBindingPattern(decl.name) : void 0;\n  if (defaultImportName || namedImports) {\n    const moduleSpecifier = first(parent2.arguments);\n    return {\n      allowSyntheticDefaults: getAllowSyntheticDefaultImports(program.getCompilerOptions()),\n      defaultImportName,\n      namedImports,\n      statement: cast(decl.parent.parent, isVariableStatement),\n      moduleSpecifier: isNoSubstitutionTemplateLiteral(moduleSpecifier) ? factory.createStringLiteral(moduleSpecifier.text, quotePreference === 0 /* Single */) : moduleSpecifier\n    };\n  }\n}\nfunction tryCreateNamedImportsFromObjectBindingPattern(node) {\n  const importSpecifiers = [];\n  for (const element of node.elements) {\n    if (!isIdentifier(element.name) || element.initializer) {\n      return void 0;\n    }\n    importSpecifiers.push(factory.createImportSpecifier(\n      /*isTypeOnly*/\n      false,\n      tryCast(element.propertyName, isIdentifier),\n      element.name\n    ));\n  }\n  if (importSpecifiers.length) {\n    return factory.createNamedImports(importSpecifiers);\n  }\n}\n\n// src/services/codefixes/useDefaultImport.ts\nvar fixId44 = \"useDefaultImport\";\nvar errorCodes56 = [Diagnostics.Import_may_be_converted_to_a_default_import.code];\nregisterCodeFix({\n  errorCodes: errorCodes56,\n  getCodeActions(context) {\n    const { sourceFile, span: { start } } = context;\n    const info = getInfo19(sourceFile, start);\n    if (!info) return void 0;\n    const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange36(t, sourceFile, info, context.preferences));\n    return [createCodeFixAction(fixId44, changes, Diagnostics.Convert_to_default_import, fixId44, Diagnostics.Convert_all_to_default_imports)];\n  },\n  fixIds: [fixId44],\n  getAllCodeActions: (context) => codeFixAll(context, errorCodes56, (changes, diag2) => {\n    const info = getInfo19(diag2.file, diag2.start);\n    if (info) doChange36(changes, diag2.file, info, context.preferences);\n  })\n});\nfunction getInfo19(sourceFile, pos) {\n  const name = getTokenAtPosition(sourceFile, pos);\n  if (!isIdentifier(name)) return void 0;\n  const { parent: parent2 } = name;\n  if (isImportEqualsDeclaration(parent2) && isExternalModuleReference(parent2.moduleReference)) {\n    return { importNode: parent2, name, moduleSpecifier: parent2.moduleReference.expression };\n  } else if (isNamespaceImport(parent2) && isImportDeclaration(parent2.parent.parent)) {\n    const importNode = parent2.parent.parent;\n    return { importNode, name, moduleSpecifier: importNode.moduleSpecifier };\n  }\n}\nfunction doChange36(changes, sourceFile, info, preferences) {\n  changes.replaceNode(sourceFile, info.importNode, makeImport(\n    info.name,\n    /*namedImports*/\n    void 0,\n    info.moduleSpecifier,\n    getQuotePreference(sourceFile, preferences)\n  ));\n}\n\n// src/services/codefixes/useBigintLiteral.ts\nvar fixId45 = \"useBigintLiteral\";\nvar errorCodes57 = [\n  Diagnostics.Numeric_literals_with_absolute_values_equal_to_2_53_or_greater_are_too_large_to_be_represented_accurately_as_integers.code\n];\nregisterCodeFix({\n  errorCodes: errorCodes57,\n  getCodeActions: function getCodeActionsToUseBigintLiteral(context) {\n    const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => makeChange10(t, context.sourceFile, context.span));\n    if (changes.length > 0) {\n      return [createCodeFixAction(fixId45, changes, Diagnostics.Convert_to_a_bigint_numeric_literal, fixId45, Diagnostics.Convert_all_to_bigint_numeric_literals)];\n    }\n  },\n  fixIds: [fixId45],\n  getAllCodeActions: (context) => {\n    return codeFixAll(context, errorCodes57, (changes, diag2) => makeChange10(changes, diag2.file, diag2));\n  }\n});\nfunction makeChange10(changeTracker, sourceFile, span) {\n  const numericLiteral = tryCast(getTokenAtPosition(sourceFile, span.start), isNumericLiteral);\n  if (!numericLiteral) {\n    return;\n  }\n  const newText = numericLiteral.getText(sourceFile) + \"n\";\n  changeTracker.replaceNode(sourceFile, numericLiteral, factory.createBigIntLiteral(newText));\n}\n\n// src/services/codefixes/fixAddModuleReferTypeMissingTypeof.ts\nvar fixIdAddMissingTypeof = \"fixAddModuleReferTypeMissingTypeof\";\nvar fixId46 = fixIdAddMissingTypeof;\nvar errorCodes58 = [Diagnostics.Module_0_does_not_refer_to_a_type_but_is_used_as_a_type_here_Did_you_mean_typeof_import_0.code];\nregisterCodeFix({\n  errorCodes: errorCodes58,\n  getCodeActions: function getCodeActionsToAddMissingTypeof(context) {\n    const { sourceFile, span } = context;\n    const importType = getImportTypeNode(sourceFile, span.start);\n    const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange37(t, sourceFile, importType));\n    return [createCodeFixAction(fixId46, changes, Diagnostics.Add_missing_typeof, fixId46, Diagnostics.Add_missing_typeof)];\n  },\n  fixIds: [fixId46],\n  getAllCodeActions: (context) => codeFixAll(context, errorCodes58, (changes, diag2) => doChange37(changes, context.sourceFile, getImportTypeNode(diag2.file, diag2.start)))\n});\nfunction getImportTypeNode(sourceFile, pos) {\n  const token = getTokenAtPosition(sourceFile, pos);\n  Debug.assert(token.kind === 102 /* ImportKeyword */, \"This token should be an ImportKeyword\");\n  Debug.assert(token.parent.kind === 206 /* ImportType */, \"Token parent should be an ImportType\");\n  return token.parent;\n}\nfunction doChange37(changes, sourceFile, importType) {\n  const newTypeNode = factory.updateImportTypeNode(\n    importType,\n    importType.argument,\n    importType.attributes,\n    importType.qualifier,\n    importType.typeArguments,\n    /*isTypeOf*/\n    true\n  );\n  changes.replaceNode(sourceFile, importType, newTypeNode);\n}\n\n// src/services/codefixes/wrapJsxInFragment.ts\nvar fixID2 = \"wrapJsxInFragment\";\nvar errorCodes59 = [Diagnostics.JSX_expressions_must_have_one_parent_element.code];\nregisterCodeFix({\n  errorCodes: errorCodes59,\n  getCodeActions: function getCodeActionsToWrapJsxInFragment(context) {\n    const { sourceFile, span } = context;\n    const node = findNodeToFix(sourceFile, span.start);\n    if (!node) return void 0;\n    const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange38(t, sourceFile, node));\n    return [createCodeFixAction(fixID2, changes, Diagnostics.Wrap_in_JSX_fragment, fixID2, Diagnostics.Wrap_all_unparented_JSX_in_JSX_fragment)];\n  },\n  fixIds: [fixID2],\n  getAllCodeActions: (context) => codeFixAll(context, errorCodes59, (changes, diag2) => {\n    const node = findNodeToFix(context.sourceFile, diag2.start);\n    if (!node) return void 0;\n    doChange38(changes, context.sourceFile, node);\n  })\n});\nfunction findNodeToFix(sourceFile, pos) {\n  const lessThanToken = getTokenAtPosition(sourceFile, pos);\n  const firstJsxElementOrOpenElement = lessThanToken.parent;\n  let binaryExpr = firstJsxElementOrOpenElement.parent;\n  if (!isBinaryExpression(binaryExpr)) {\n    binaryExpr = binaryExpr.parent;\n    if (!isBinaryExpression(binaryExpr)) return void 0;\n  }\n  if (!nodeIsMissing(binaryExpr.operatorToken)) return void 0;\n  return binaryExpr;\n}\nfunction doChange38(changeTracker, sf, node) {\n  const jsx = flattenInvalidBinaryExpr(node);\n  if (jsx) changeTracker.replaceNode(sf, node, factory.createJsxFragment(factory.createJsxOpeningFragment(), jsx, factory.createJsxJsxClosingFragment()));\n}\nfunction flattenInvalidBinaryExpr(node) {\n  const children = [];\n  let current = node;\n  while (true) {\n    if (isBinaryExpression(current) && nodeIsMissing(current.operatorToken) && current.operatorToken.kind === 28 /* CommaToken */) {\n      children.push(current.left);\n      if (isJsxChild(current.right)) {\n        children.push(current.right);\n        return children;\n      } else if (isBinaryExpression(current.right)) {\n        current = current.right;\n        continue;\n      } else return void 0;\n    } else return void 0;\n  }\n}\n\n// src/services/codefixes/wrapDecoratorInParentheses.ts\nvar fixId47 = \"wrapDecoratorInParentheses\";\nvar errorCodes60 = [Diagnostics.Expression_must_be_enclosed_in_parentheses_to_be_used_as_a_decorator.code];\nregisterCodeFix({\n  errorCodes: errorCodes60,\n  getCodeActions: function getCodeActionsToWrapDecoratorExpressionInParentheses(context) {\n    const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => makeChange11(t, context.sourceFile, context.span.start));\n    return [createCodeFixAction(fixId47, changes, Diagnostics.Wrap_in_parentheses, fixId47, Diagnostics.Wrap_all_invalid_decorator_expressions_in_parentheses)];\n  },\n  fixIds: [fixId47],\n  getAllCodeActions: (context) => codeFixAll(context, errorCodes60, (changes, diag2) => makeChange11(changes, diag2.file, diag2.start))\n});\nfunction makeChange11(changeTracker, sourceFile, pos) {\n  const token = getTokenAtPosition(sourceFile, pos);\n  const decorator = findAncestor(token, isDecorator);\n  Debug.assert(!!decorator, \"Expected position to be owned by a decorator.\");\n  const replacement = factory.createParenthesizedExpression(decorator.expression);\n  changeTracker.replaceNode(sourceFile, decorator.expression, replacement);\n}\n\n// src/services/codefixes/convertToMappedObjectType.ts\nvar fixId48 = \"fixConvertToMappedObjectType\";\nvar errorCodes61 = [Diagnostics.An_index_signature_parameter_type_cannot_be_a_literal_type_or_generic_type_Consider_using_a_mapped_object_type_instead.code];\nregisterCodeFix({\n  errorCodes: errorCodes61,\n  getCodeActions: function getCodeActionsToConvertToMappedTypeObject(context) {\n    const { sourceFile, span } = context;\n    const info = getInfo20(sourceFile, span.start);\n    if (!info) return void 0;\n    const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange39(t, sourceFile, info));\n    const name = idText(info.container.name);\n    return [createCodeFixAction(fixId48, changes, [Diagnostics.Convert_0_to_mapped_object_type, name], fixId48, [Diagnostics.Convert_0_to_mapped_object_type, name])];\n  },\n  fixIds: [fixId48],\n  getAllCodeActions: (context) => codeFixAll(context, errorCodes61, (changes, diag2) => {\n    const info = getInfo20(diag2.file, diag2.start);\n    if (info) doChange39(changes, diag2.file, info);\n  })\n});\nfunction getInfo20(sourceFile, pos) {\n  const token = getTokenAtPosition(sourceFile, pos);\n  const indexSignature = tryCast(token.parent.parent, isIndexSignatureDeclaration);\n  if (!indexSignature) return void 0;\n  const container = isInterfaceDeclaration(indexSignature.parent) ? indexSignature.parent : tryCast(indexSignature.parent.parent, isTypeAliasDeclaration);\n  if (!container) return void 0;\n  return { indexSignature, container };\n}\nfunction createTypeAliasFromInterface(declaration, type) {\n  return factory.createTypeAliasDeclaration(declaration.modifiers, declaration.name, declaration.typeParameters, type);\n}\nfunction doChange39(changes, sourceFile, { indexSignature, container }) {\n  const members = isInterfaceDeclaration(container) ? container.members : container.type.members;\n  const otherMembers = members.filter((member) => !isIndexSignatureDeclaration(member));\n  const parameter = first(indexSignature.parameters);\n  const mappedTypeParameter = factory.createTypeParameterDeclaration(\n    /*modifiers*/\n    void 0,\n    cast(parameter.name, isIdentifier),\n    parameter.type\n  );\n  const mappedIntersectionType = factory.createMappedTypeNode(\n    hasEffectiveReadonlyModifier(indexSignature) ? factory.createModifier(148 /* ReadonlyKeyword */) : void 0,\n    mappedTypeParameter,\n    /*nameType*/\n    void 0,\n    indexSignature.questionToken,\n    indexSignature.type,\n    /*members*/\n    void 0\n  );\n  const intersectionType = factory.createIntersectionTypeNode([\n    ...getAllSuperTypeNodes(container),\n    mappedIntersectionType,\n    ...otherMembers.length ? [factory.createTypeLiteralNode(otherMembers)] : emptyArray\n  ]);\n  changes.replaceNode(sourceFile, container, createTypeAliasFromInterface(container, intersectionType));\n}\n\n// src/services/codefixes/removeAccidentalCallParentheses.ts\nvar fixId49 = \"removeAccidentalCallParentheses\";\nvar errorCodes62 = [\n  Diagnostics.This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without.code\n];\nregisterCodeFix({\n  errorCodes: errorCodes62,\n  getCodeActions(context) {\n    const callExpression = findAncestor(getTokenAtPosition(context.sourceFile, context.span.start), isCallExpression);\n    if (!callExpression) {\n      return void 0;\n    }\n    const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => {\n      t.deleteRange(context.sourceFile, { pos: callExpression.expression.end, end: callExpression.end });\n    });\n    return [createCodeFixActionWithoutFixAll(fixId49, changes, Diagnostics.Remove_parentheses)];\n  },\n  fixIds: [fixId49]\n});\n\n// src/services/codefixes/removeUnnecessaryAwait.ts\nvar fixId50 = \"removeUnnecessaryAwait\";\nvar errorCodes63 = [\n  Diagnostics.await_has_no_effect_on_the_type_of_this_expression.code\n];\nregisterCodeFix({\n  errorCodes: errorCodes63,\n  getCodeActions: function getCodeActionsToRemoveUnnecessaryAwait(context) {\n    const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => makeChange12(t, context.sourceFile, context.span));\n    if (changes.length > 0) {\n      return [createCodeFixAction(fixId50, changes, Diagnostics.Remove_unnecessary_await, fixId50, Diagnostics.Remove_all_unnecessary_uses_of_await)];\n    }\n  },\n  fixIds: [fixId50],\n  getAllCodeActions: (context) => {\n    return codeFixAll(context, errorCodes63, (changes, diag2) => makeChange12(changes, diag2.file, diag2));\n  }\n});\nfunction makeChange12(changeTracker, sourceFile, span) {\n  const awaitKeyword = tryCast(getTokenAtPosition(sourceFile, span.start), (node) => node.kind === 135 /* AwaitKeyword */);\n  const awaitExpression = awaitKeyword && tryCast(awaitKeyword.parent, isAwaitExpression);\n  if (!awaitExpression) {\n    return;\n  }\n  let expressionToReplace = awaitExpression;\n  const hasSurroundingParens = isParenthesizedExpression(awaitExpression.parent);\n  if (hasSurroundingParens) {\n    const leftMostExpression = getLeftmostExpression(\n      awaitExpression.expression,\n      /*stopAtCallExpressions*/\n      false\n    );\n    if (isIdentifier(leftMostExpression)) {\n      const precedingToken = findPrecedingToken(awaitExpression.parent.pos, sourceFile);\n      if (precedingToken && precedingToken.kind !== 105 /* NewKeyword */) {\n        expressionToReplace = awaitExpression.parent;\n      }\n    }\n  }\n  changeTracker.replaceNode(sourceFile, expressionToReplace, awaitExpression.expression);\n}\n\n// src/services/codefixes/splitTypeOnlyImport.ts\nvar errorCodes64 = [Diagnostics.A_type_only_import_can_specify_a_default_import_or_named_bindings_but_not_both.code];\nvar fixId51 = \"splitTypeOnlyImport\";\nregisterCodeFix({\n  errorCodes: errorCodes64,\n  fixIds: [fixId51],\n  getCodeActions: function getCodeActionsToSplitTypeOnlyImport(context) {\n    const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => {\n      return splitTypeOnlyImport(t, getImportDeclaration2(context.sourceFile, context.span), context);\n    });\n    if (changes.length) {\n      return [createCodeFixAction(fixId51, changes, Diagnostics.Split_into_two_separate_import_declarations, fixId51, Diagnostics.Split_all_invalid_type_only_imports)];\n    }\n  },\n  getAllCodeActions: (context) => codeFixAll(context, errorCodes64, (changes, error2) => {\n    splitTypeOnlyImport(changes, getImportDeclaration2(context.sourceFile, error2), context);\n  })\n});\nfunction getImportDeclaration2(sourceFile, span) {\n  return findAncestor(getTokenAtPosition(sourceFile, span.start), isImportDeclaration);\n}\nfunction splitTypeOnlyImport(changes, importDeclaration, context) {\n  if (!importDeclaration) {\n    return;\n  }\n  const importClause = Debug.checkDefined(importDeclaration.importClause);\n  changes.replaceNode(\n    context.sourceFile,\n    importDeclaration,\n    factory.updateImportDeclaration(\n      importDeclaration,\n      importDeclaration.modifiers,\n      factory.updateImportClause(\n        importClause,\n        importClause.phaseModifier,\n        importClause.name,\n        /*namedBindings*/\n        void 0\n      ),\n      importDeclaration.moduleSpecifier,\n      importDeclaration.attributes\n    )\n  );\n  changes.insertNodeAfter(\n    context.sourceFile,\n    importDeclaration,\n    factory.createImportDeclaration(\n      /*modifiers*/\n      void 0,\n      factory.updateImportClause(\n        importClause,\n        importClause.phaseModifier,\n        /*name*/\n        void 0,\n        importClause.namedBindings\n      ),\n      importDeclaration.moduleSpecifier,\n      importDeclaration.attributes\n    )\n  );\n}\n\n// src/services/codefixes/convertConstToLet.ts\nvar fixId52 = \"fixConvertConstToLet\";\nvar errorCodes65 = [Diagnostics.Cannot_assign_to_0_because_it_is_a_constant.code];\nregisterCodeFix({\n  errorCodes: errorCodes65,\n  getCodeActions: function getCodeActionsToConvertConstToLet(context) {\n    const { sourceFile, span, program } = context;\n    const info = getInfo21(sourceFile, span.start, program);\n    if (info === void 0) return;\n    const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange40(t, sourceFile, info.token));\n    return [createCodeFixActionMaybeFixAll(fixId52, changes, Diagnostics.Convert_const_to_let, fixId52, Diagnostics.Convert_all_const_to_let)];\n  },\n  getAllCodeActions: (context) => {\n    const { program } = context;\n    const seen = /* @__PURE__ */ new Set();\n    return createCombinedCodeActions(ts_textChanges_exports.ChangeTracker.with(context, (changes) => {\n      eachDiagnostic(context, errorCodes65, (diag2) => {\n        const info = getInfo21(diag2.file, diag2.start, program);\n        if (info) {\n          if (addToSeen(seen, getSymbolId(info.symbol))) {\n            return doChange40(changes, diag2.file, info.token);\n          }\n        }\n        return void 0;\n      });\n    }));\n  },\n  fixIds: [fixId52]\n});\nfunction getInfo21(sourceFile, pos, program) {\n  var _a;\n  const checker = program.getTypeChecker();\n  const symbol = checker.getSymbolAtLocation(getTokenAtPosition(sourceFile, pos));\n  if (symbol === void 0) return;\n  const declaration = tryCast((_a = symbol == null ? void 0 : symbol.valueDeclaration) == null ? void 0 : _a.parent, isVariableDeclarationList);\n  if (declaration === void 0) return;\n  const constToken = findChildOfKind(declaration, 87 /* ConstKeyword */, sourceFile);\n  if (constToken === void 0) return;\n  return { symbol, token: constToken };\n}\nfunction doChange40(changes, sourceFile, token) {\n  changes.replaceNode(sourceFile, token, factory.createToken(121 /* LetKeyword */));\n}\n\n// src/services/codefixes/fixExpectedComma.ts\nvar fixId53 = \"fixExpectedComma\";\nvar expectedErrorCode = Diagnostics._0_expected.code;\nvar errorCodes66 = [expectedErrorCode];\nregisterCodeFix({\n  errorCodes: errorCodes66,\n  getCodeActions(context) {\n    const { sourceFile } = context;\n    const info = getInfo22(sourceFile, context.span.start, context.errorCode);\n    if (!info) return void 0;\n    const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => doChange41(t, sourceFile, info));\n    return [createCodeFixAction(\n      fixId53,\n      changes,\n      [Diagnostics.Change_0_to_1, \";\", \",\"],\n      fixId53,\n      [Diagnostics.Change_0_to_1, \";\", \",\"]\n    )];\n  },\n  fixIds: [fixId53],\n  getAllCodeActions: (context) => codeFixAll(context, errorCodes66, (changes, diag2) => {\n    const info = getInfo22(diag2.file, diag2.start, diag2.code);\n    if (info) doChange41(changes, context.sourceFile, info);\n  })\n});\nfunction getInfo22(sourceFile, pos, _) {\n  const node = getTokenAtPosition(sourceFile, pos);\n  return node.kind === 27 /* SemicolonToken */ && node.parent && (isObjectLiteralExpression(node.parent) || isArrayLiteralExpression(node.parent)) ? { node } : void 0;\n}\nfunction doChange41(changes, sourceFile, { node }) {\n  const newNode = factory.createToken(28 /* CommaToken */);\n  changes.replaceNode(sourceFile, node, newNode);\n}\n\n// src/services/codefixes/fixAddVoidToPromise.ts\nvar fixName7 = \"addVoidToPromise\";\nvar fixId54 = \"addVoidToPromise\";\nvar errorCodes67 = [\n  Diagnostics.Expected_1_argument_but_got_0_new_Promise_needs_a_JSDoc_hint_to_produce_a_resolve_that_can_be_called_without_arguments.code,\n  Diagnostics.Expected_0_arguments_but_got_1_Did_you_forget_to_include_void_in_your_type_argument_to_Promise.code\n];\nregisterCodeFix({\n  errorCodes: errorCodes67,\n  fixIds: [fixId54],\n  getCodeActions(context) {\n    const changes = ts_textChanges_exports.ChangeTracker.with(context, (t) => makeChange13(t, context.sourceFile, context.span, context.program));\n    if (changes.length > 0) {\n      return [createCodeFixAction(fixName7, changes, Diagnostics.Add_void_to_Promise_resolved_without_a_value, fixId54, Diagnostics.Add_void_to_all_Promises_resolved_without_a_value)];\n    }\n  },\n  getAllCodeActions(context) {\n    return codeFixAll(context, errorCodes67, (changes, diag2) => makeChange13(changes, diag2.file, diag2, context.program, /* @__PURE__ */ new Set()));\n  }\n});\nfunction makeChange13(changes, sourceFile, span, program, seen) {\n  const node = getTokenAtPosition(sourceFile, span.start);\n  if (!isIdentifier(node) || !isCallExpression(node.parent) || node.parent.expression !== node || node.parent.arguments.length !== 0) return;\n  const checker = program.getTypeChecker();\n  const symbol = checker.getSymbolAtLocation(node);\n  const decl = symbol == null ? void 0 : symbol.valueDeclaration;\n  if (!decl || !isParameter(decl) || !isNewExpression(decl.parent.parent)) return;\n  if (seen == null ? void 0 : seen.has(decl)) return;\n  seen == null ? void 0 : seen.add(decl);\n  const typeArguments = getEffectiveTypeArguments(decl.parent.parent);\n  if (some(typeArguments)) {\n    const typeArgument = typeArguments[0];\n    const needsParens = !isUnionTypeNode(typeArgument) && !isParenthesizedTypeNode(typeArgument) && isParenthesizedTypeNode(factory.createUnionTypeNode([typeArgument, factory.createKeywordTypeNode(116 /* VoidKeyword */)]).types[0]);\n    if (needsParens) {\n      changes.insertText(sourceFile, typeArgument.pos, \"(\");\n    }\n    changes.insertText(sourceFile, typeArgument.end, needsParens ? \") | void\" : \" | void\");\n  } else {\n    const signature = checker.getResolvedSignature(node.parent);\n    const parameter = signature == null ? void 0 : signature.parameters[0];\n    const parameterType = parameter && checker.getTypeOfSymbolAtLocation(parameter, decl.parent.parent);\n    if (isInJSFile(decl)) {\n      if (!parameterType || parameterType.flags & 3 /* AnyOrUnknown */) {\n        changes.insertText(sourceFile, decl.parent.parent.end, `)`);\n        changes.insertText(sourceFile, skipTrivia(sourceFile.text, decl.parent.parent.pos), `/** @type {Promise<void>} */(`);\n      }\n    } else {\n      if (!parameterType || parameterType.flags & 2 /* Unknown */) {\n        changes.insertText(sourceFile, decl.parent.parent.expression.end, \"<void>\");\n      }\n    }\n  }\n}\nfunction getEffectiveTypeArguments(node) {\n  var _a;\n  if (isInJSFile(node)) {\n    if (isParenthesizedExpression(node.parent)) {\n      const jsDocType = (_a = getJSDocTypeTag(node.parent)) == null ? void 0 : _a.typeExpression.type;\n      if (jsDocType && isTypeReferenceNode(jsDocType) && isIdentifier(jsDocType.typeName) && idText(jsDocType.typeName) === \"Promise\") {\n        return jsDocType.typeArguments;\n      }\n    }\n  } else {\n    return node.typeArguments;\n  }\n}\n\n// src/services/_namespaces/ts.Completions.ts\nvar ts_Completions_exports = {};\n__export(ts_Completions_exports, {\n  CompletionKind: () => CompletionKind,\n  CompletionSource: () => CompletionSource,\n  SortText: () => SortText,\n  StringCompletions: () => ts_Completions_StringCompletions_exports,\n  SymbolOriginInfoKind: () => SymbolOriginInfoKind,\n  createCompletionDetails: () => createCompletionDetails,\n  createCompletionDetailsForSymbol: () => createCompletionDetailsForSymbol,\n  getCompletionEntriesFromSymbols: () => getCompletionEntriesFromSymbols,\n  getCompletionEntryDetails: () => getCompletionEntryDetails,\n  getCompletionEntrySymbol: () => getCompletionEntrySymbol,\n  getCompletionsAtPosition: () => getCompletionsAtPosition,\n  getDefaultCommitCharacters: () => getDefaultCommitCharacters,\n  getPropertiesForObjectExpression: () => getPropertiesForObjectExpression,\n  moduleSpecifierResolutionCacheAttemptLimit: () => moduleSpecifierResolutionCacheAttemptLimit,\n  moduleSpecifierResolutionLimit: () => moduleSpecifierResolutionLimit\n});\n\n// src/services/completions.ts\nvar moduleSpecifierResolutionLimit = 100;\nvar moduleSpecifierResolutionCacheAttemptLimit = 1e3;\nvar SortText = {\n  // Presets\n  LocalDeclarationPriority: \"10\",\n  LocationPriority: \"11\",\n  OptionalMember: \"12\",\n  MemberDeclaredBySpreadAssignment: \"13\",\n  SuggestedClassMembers: \"14\",\n  GlobalsOrKeywords: \"15\",\n  AutoImportSuggestions: \"16\",\n  ClassMemberSnippets: \"17\",\n  JavascriptIdentifiers: \"18\",\n  // Transformations\n  Deprecated(sortText) {\n    return \"z\" + sortText;\n  },\n  ObjectLiteralProperty(presetSortText, symbolDisplayName) {\n    return `${presetSortText}\\0${symbolDisplayName}\\0`;\n  },\n  SortBelow(sortText) {\n    return sortText + \"1\";\n  }\n};\nvar allCommitCharacters = [\".\", \",\", \";\"];\nvar noCommaCommitCharacters = [\".\", \";\"];\nvar CompletionSource = /* @__PURE__ */ ((CompletionSource2) => {\n  CompletionSource2[\"ThisProperty\"] = \"ThisProperty/\";\n  CompletionSource2[\"ClassMemberSnippet\"] = \"ClassMemberSnippet/\";\n  CompletionSource2[\"TypeOnlyAlias\"] = \"TypeOnlyAlias/\";\n  CompletionSource2[\"ObjectLiteralMethodSnippet\"] = \"ObjectLiteralMethodSnippet/\";\n  CompletionSource2[\"SwitchCases\"] = \"SwitchCases/\";\n  CompletionSource2[\"ObjectLiteralMemberWithComma\"] = \"ObjectLiteralMemberWithComma/\";\n  return CompletionSource2;\n})(CompletionSource || {});\nvar SymbolOriginInfoKind = /* @__PURE__ */ ((SymbolOriginInfoKind2) => {\n  SymbolOriginInfoKind2[SymbolOriginInfoKind2[\"ThisType\"] = 1] = \"ThisType\";\n  SymbolOriginInfoKind2[SymbolOriginInfoKind2[\"SymbolMember\"] = 2] = \"SymbolMember\";\n  SymbolOriginInfoKind2[SymbolOriginInfoKind2[\"Export\"] = 4] = \"Export\";\n  SymbolOriginInfoKind2[SymbolOriginInfoKind2[\"Promise\"] = 8] = \"Promise\";\n  SymbolOriginInfoKind2[SymbolOriginInfoKind2[\"Nullable\"] = 16] = \"Nullable\";\n  SymbolOriginInfoKind2[SymbolOriginInfoKind2[\"ResolvedExport\"] = 32] = \"ResolvedExport\";\n  SymbolOriginInfoKind2[SymbolOriginInfoKind2[\"TypeOnlyAlias\"] = 64] = \"TypeOnlyAlias\";\n  SymbolOriginInfoKind2[SymbolOriginInfoKind2[\"ObjectLiteralMethod\"] = 128] = \"ObjectLiteralMethod\";\n  SymbolOriginInfoKind2[SymbolOriginInfoKind2[\"Ignore\"] = 256] = \"Ignore\";\n  SymbolOriginInfoKind2[SymbolOriginInfoKind2[\"ComputedPropertyName\"] = 512] = \"ComputedPropertyName\";\n  SymbolOriginInfoKind2[SymbolOriginInfoKind2[\"SymbolMemberNoExport\"] = 2 /* SymbolMember */] = \"SymbolMemberNoExport\";\n  SymbolOriginInfoKind2[SymbolOriginInfoKind2[\"SymbolMemberExport\"] = 6] = \"SymbolMemberExport\";\n  return SymbolOriginInfoKind2;\n})(SymbolOriginInfoKind || {});\nfunction originIsThisType(origin) {\n  return !!(origin.kind & 1 /* ThisType */);\n}\nfunction originIsSymbolMember(origin) {\n  return !!(origin.kind & 2 /* SymbolMember */);\n}\nfunction originIsExport(origin) {\n  return !!(origin && origin.kind & 4 /* Export */);\n}\nfunction originIsResolvedExport(origin) {\n  return !!(origin && origin.kind === 32 /* ResolvedExport */);\n}\nfunction originIncludesSymbolName(origin) {\n  return originIsExport(origin) || originIsResolvedExport(origin) || originIsComputedPropertyName(origin);\n}\nfunction originIsPackageJsonImport(origin) {\n  return (originIsExport(origin) || originIsResolvedExport(origin)) && !!origin.isFromPackageJson;\n}\nfunction originIsPromise(origin) {\n  return !!(origin.kind & 8 /* Promise */);\n}\nfunction originIsNullableMember(origin) {\n  return !!(origin.kind & 16 /* Nullable */);\n}\nfunction originIsTypeOnlyAlias(origin) {\n  return !!(origin && origin.kind & 64 /* TypeOnlyAlias */);\n}\nfunction originIsObjectLiteralMethod(origin) {\n  return !!(origin && origin.kind & 128 /* ObjectLiteralMethod */);\n}\nfunction originIsIgnore(origin) {\n  return !!(origin && origin.kind & 256 /* Ignore */);\n}\nfunction originIsComputedPropertyName(origin) {\n  return !!(origin && origin.kind & 512 /* ComputedPropertyName */);\n}\nfunction resolvingModuleSpecifiers(logPrefix, host, resolver, program, position, preferences, isForImportStatementCompletion, isValidTypeOnlyUseSite, cb) {\n  var _a, _b, _c, _d;\n  const start = timestamp();\n  const needsFullResolution = isForImportStatementCompletion || getResolvePackageJsonExports(program.getCompilerOptions()) || ((_a = preferences.autoImportSpecifierExcludeRegexes) == null ? void 0 : _a.length);\n  let skippedAny = false;\n  let ambientCount = 0;\n  let resolvedCount = 0;\n  let resolvedFromCacheCount = 0;\n  let cacheAttemptCount = 0;\n  const result = cb({\n    tryResolve,\n    skippedAny: () => skippedAny,\n    resolvedAny: () => resolvedCount > 0,\n    resolvedBeyondLimit: () => resolvedCount > moduleSpecifierResolutionLimit\n  });\n  const hitRateMessage = cacheAttemptCount ? ` (${(resolvedFromCacheCount / cacheAttemptCount * 100).toFixed(1)}% hit rate)` : \"\";\n  (_b = host.log) == null ? void 0 : _b.call(host, `${logPrefix}: resolved ${resolvedCount} module specifiers, plus ${ambientCount} ambient and ${resolvedFromCacheCount} from cache${hitRateMessage}`);\n  (_c = host.log) == null ? void 0 : _c.call(host, `${logPrefix}: response is ${skippedAny ? \"incomplete\" : \"complete\"}`);\n  (_d = host.log) == null ? void 0 : _d.call(host, `${logPrefix}: ${timestamp() - start}`);\n  return result;\n  function tryResolve(exportInfo, isFromAmbientModule) {\n    if (isFromAmbientModule) {\n      const result3 = resolver.getModuleSpecifierForBestExportInfo(exportInfo, position, isValidTypeOnlyUseSite);\n      if (result3) {\n        ambientCount++;\n      }\n      return result3 || \"failed\";\n    }\n    const shouldResolveModuleSpecifier = needsFullResolution || preferences.allowIncompleteCompletions && resolvedCount < moduleSpecifierResolutionLimit;\n    const shouldGetModuleSpecifierFromCache = !shouldResolveModuleSpecifier && preferences.allowIncompleteCompletions && cacheAttemptCount < moduleSpecifierResolutionCacheAttemptLimit;\n    const result2 = shouldResolveModuleSpecifier || shouldGetModuleSpecifierFromCache ? resolver.getModuleSpecifierForBestExportInfo(exportInfo, position, isValidTypeOnlyUseSite, shouldGetModuleSpecifierFromCache) : void 0;\n    if (!shouldResolveModuleSpecifier && !shouldGetModuleSpecifierFromCache || shouldGetModuleSpecifierFromCache && !result2) {\n      skippedAny = true;\n    }\n    resolvedCount += (result2 == null ? void 0 : result2.computedWithoutCacheCount) || 0;\n    resolvedFromCacheCount += exportInfo.length - ((result2 == null ? void 0 : result2.computedWithoutCacheCount) || 0);\n    if (shouldGetModuleSpecifierFromCache) {\n      cacheAttemptCount++;\n    }\n    return result2 || (needsFullResolution ? \"failed\" : \"skipped\");\n  }\n}\nfunction getDefaultCommitCharacters(isNewIdentifierLocation) {\n  if (isNewIdentifierLocation) {\n    return [];\n  }\n  return allCommitCharacters;\n}\nfunction getCompletionsAtPosition(host, program, log, sourceFile, position, preferences, triggerCharacter, completionKind, cancellationToken, formatContext, includeSymbol = false) {\n  var _a;\n  const { previousToken } = getRelevantTokens(position, sourceFile);\n  if (triggerCharacter && !isInString(sourceFile, position, previousToken) && !isValidTrigger(sourceFile, triggerCharacter, previousToken, position)) {\n    return void 0;\n  }\n  if (triggerCharacter === \" \") {\n    if (preferences.includeCompletionsForImportStatements && preferences.includeCompletionsWithInsertText) {\n      return {\n        isGlobalCompletion: true,\n        isMemberCompletion: false,\n        isNewIdentifierLocation: true,\n        isIncomplete: true,\n        entries: [],\n        defaultCommitCharacters: getDefaultCommitCharacters(\n          /*isNewIdentifierLocation*/\n          true\n        )\n      };\n    }\n    return void 0;\n  }\n  const compilerOptions = program.getCompilerOptions();\n  const checker = program.getTypeChecker();\n  const incompleteCompletionsCache = preferences.allowIncompleteCompletions ? (_a = host.getIncompleteCompletionsCache) == null ? void 0 : _a.call(host) : void 0;\n  if (incompleteCompletionsCache && completionKind === 3 /* TriggerForIncompleteCompletions */ && previousToken && isIdentifier(previousToken)) {\n    const incompleteContinuation = continuePreviousIncompleteResponse(incompleteCompletionsCache, sourceFile, previousToken, program, host, preferences, cancellationToken, position);\n    if (incompleteContinuation) {\n      return incompleteContinuation;\n    }\n  } else {\n    incompleteCompletionsCache == null ? void 0 : incompleteCompletionsCache.clear();\n  }\n  const stringCompletions = ts_Completions_StringCompletions_exports.getStringLiteralCompletions(sourceFile, position, previousToken, compilerOptions, host, program, log, preferences, includeSymbol);\n  if (stringCompletions) {\n    return stringCompletions;\n  }\n  if (previousToken && isBreakOrContinueStatement(previousToken.parent) && (previousToken.kind === 83 /* BreakKeyword */ || previousToken.kind === 88 /* ContinueKeyword */ || previousToken.kind === 80 /* Identifier */)) {\n    return getLabelCompletionAtPosition(previousToken.parent);\n  }\n  const completionData = getCompletionData(\n    program,\n    log,\n    sourceFile,\n    compilerOptions,\n    position,\n    preferences,\n    /*detailsEntryId*/\n    void 0,\n    host,\n    formatContext,\n    cancellationToken\n  );\n  if (!completionData) {\n    return void 0;\n  }\n  switch (completionData.kind) {\n    case 0 /* Data */:\n      const response = completionInfoFromData(sourceFile, host, program, compilerOptions, log, completionData, preferences, formatContext, position, includeSymbol);\n      if (response == null ? void 0 : response.isIncomplete) {\n        incompleteCompletionsCache == null ? void 0 : incompleteCompletionsCache.set(response);\n      }\n      return response;\n    case 1 /* JsDocTagName */:\n      return jsdocCompletionInfo([\n        ...ts_JsDoc_exports.getJSDocTagNameCompletions(),\n        ...getJSDocParameterCompletions(\n          sourceFile,\n          position,\n          checker,\n          compilerOptions,\n          preferences,\n          /*tagNameOnly*/\n          true\n        )\n      ]);\n    case 2 /* JsDocTag */:\n      return jsdocCompletionInfo([\n        ...ts_JsDoc_exports.getJSDocTagCompletions(),\n        ...getJSDocParameterCompletions(\n          sourceFile,\n          position,\n          checker,\n          compilerOptions,\n          preferences,\n          /*tagNameOnly*/\n          false\n        )\n      ]);\n    case 3 /* JsDocParameterName */:\n      return jsdocCompletionInfo(ts_JsDoc_exports.getJSDocParameterNameCompletions(completionData.tag));\n    case 4 /* Keywords */:\n      return specificKeywordCompletionInfo(completionData.keywordCompletions, completionData.isNewIdentifierLocation);\n    default:\n      return Debug.assertNever(completionData);\n  }\n}\nfunction compareCompletionEntries(entryInArray, entryToInsert) {\n  var _a, _b;\n  let result = compareStringsCaseSensitiveUI(entryInArray.sortText, entryToInsert.sortText);\n  if (result === 0 /* EqualTo */) {\n    result = compareStringsCaseSensitiveUI(entryInArray.name, entryToInsert.name);\n  }\n  if (result === 0 /* EqualTo */ && ((_a = entryInArray.data) == null ? void 0 : _a.moduleSpecifier) && ((_b = entryToInsert.data) == null ? void 0 : _b.moduleSpecifier)) {\n    result = compareNumberOfDirectorySeparators(\n      entryInArray.data.moduleSpecifier,\n      entryToInsert.data.moduleSpecifier\n    );\n  }\n  if (result === 0 /* EqualTo */) {\n    return -1 /* LessThan */;\n  }\n  return result;\n}\nfunction completionEntryDataIsResolved(data) {\n  return !!(data == null ? void 0 : data.moduleSpecifier);\n}\nfunction continuePreviousIncompleteResponse(cache, file, location, program, host, preferences, cancellationToken, position) {\n  const previousResponse = cache.get();\n  if (!previousResponse) return void 0;\n  const touchNode = getTouchingPropertyName(file, position);\n  const lowerCaseTokenText = location.text.toLowerCase();\n  const exportMap = getExportInfoMap(file, host, program, preferences, cancellationToken);\n  const newEntries = resolvingModuleSpecifiers(\n    \"continuePreviousIncompleteResponse\",\n    host,\n    ts_codefix_exports.createImportSpecifierResolver(file, program, host, preferences),\n    program,\n    location.getStart(),\n    preferences,\n    /*isForImportStatementCompletion*/\n    false,\n    isValidTypeOnlyAliasUseSite(location),\n    (context) => {\n      const entries = mapDefined(previousResponse.entries, (entry) => {\n        var _a;\n        if (!entry.hasAction || !entry.source || !entry.data || completionEntryDataIsResolved(entry.data)) {\n          return entry;\n        }\n        if (!charactersFuzzyMatchInString(entry.name, lowerCaseTokenText)) {\n          return void 0;\n        }\n        const { origin } = Debug.checkDefined(getAutoImportSymbolFromCompletionEntryData(entry.name, entry.data, program, host));\n        const info = exportMap.get(file.path, entry.data.exportMapKey);\n        const result = info && context.tryResolve(info, !isExternalModuleNameRelative(stripQuotes(origin.moduleSymbol.name)));\n        if (result === \"skipped\") return entry;\n        if (!result || result === \"failed\") {\n          (_a = host.log) == null ? void 0 : _a.call(host, `Unexpected failure resolving auto import for '${entry.name}' from '${entry.source}'`);\n          return void 0;\n        }\n        const newOrigin = {\n          ...origin,\n          kind: 32 /* ResolvedExport */,\n          moduleSpecifier: result.moduleSpecifier\n        };\n        entry.data = originToCompletionEntryData(newOrigin);\n        entry.source = getSourceFromOrigin(newOrigin);\n        entry.sourceDisplay = [textPart(newOrigin.moduleSpecifier)];\n        return entry;\n      });\n      if (!context.skippedAny()) {\n        previousResponse.isIncomplete = void 0;\n      }\n      return entries;\n    }\n  );\n  previousResponse.entries = newEntries;\n  previousResponse.flags = (previousResponse.flags || 0) | 4 /* IsContinuation */;\n  previousResponse.optionalReplacementSpan = getOptionalReplacementSpan(touchNode);\n  return previousResponse;\n}\nfunction jsdocCompletionInfo(entries) {\n  return {\n    isGlobalCompletion: false,\n    isMemberCompletion: false,\n    isNewIdentifierLocation: false,\n    entries,\n    defaultCommitCharacters: getDefaultCommitCharacters(\n      /*isNewIdentifierLocation*/\n      false\n    )\n  };\n}\nfunction getJSDocParameterCompletions(sourceFile, position, checker, options, preferences, tagNameOnly) {\n  const currentToken = getTokenAtPosition(sourceFile, position);\n  if (!isJSDocTag(currentToken) && !isJSDoc(currentToken)) {\n    return [];\n  }\n  const jsDoc = isJSDoc(currentToken) ? currentToken : currentToken.parent;\n  if (!isJSDoc(jsDoc)) {\n    return [];\n  }\n  const func = jsDoc.parent;\n  if (!isFunctionLike(func)) {\n    return [];\n  }\n  const isJs = isSourceFileJS(sourceFile);\n  const isSnippet = preferences.includeCompletionsWithSnippetText || void 0;\n  const paramTagCount = countWhere(jsDoc.tags, (tag) => isJSDocParameterTag(tag) && tag.getEnd() <= position);\n  return mapDefined(func.parameters, (param) => {\n    if (getJSDocParameterTags(param).length) {\n      return void 0;\n    }\n    if (isIdentifier(param.name)) {\n      const tabstopCounter = { tabstop: 1 };\n      const paramName = param.name.text;\n      let displayText = getJSDocParamAnnotation(\n        paramName,\n        param.initializer,\n        param.dotDotDotToken,\n        isJs,\n        /*isObject*/\n        false,\n        /*isSnippet*/\n        false,\n        checker,\n        options,\n        preferences\n      );\n      let snippetText = isSnippet ? getJSDocParamAnnotation(\n        paramName,\n        param.initializer,\n        param.dotDotDotToken,\n        isJs,\n        /*isObject*/\n        false,\n        /*isSnippet*/\n        true,\n        checker,\n        options,\n        preferences,\n        tabstopCounter\n      ) : void 0;\n      if (tagNameOnly) {\n        displayText = displayText.slice(1);\n        if (snippetText) snippetText = snippetText.slice(1);\n      }\n      return {\n        name: displayText,\n        kind: \"parameter\" /* parameterElement */,\n        sortText: SortText.LocationPriority,\n        insertText: isSnippet ? snippetText : void 0,\n        isSnippet\n      };\n    } else if (param.parent.parameters.indexOf(param) === paramTagCount) {\n      const paramPath = `param${paramTagCount}`;\n      const displayTextResult = generateJSDocParamTagsForDestructuring(\n        paramPath,\n        param.name,\n        param.initializer,\n        param.dotDotDotToken,\n        isJs,\n        /*isSnippet*/\n        false,\n        checker,\n        options,\n        preferences\n      );\n      const snippetTextResult = isSnippet ? generateJSDocParamTagsForDestructuring(\n        paramPath,\n        param.name,\n        param.initializer,\n        param.dotDotDotToken,\n        isJs,\n        /*isSnippet*/\n        true,\n        checker,\n        options,\n        preferences\n      ) : void 0;\n      let displayText = displayTextResult.join(getNewLineCharacter(options) + \"* \");\n      let snippetText = snippetTextResult == null ? void 0 : snippetTextResult.join(getNewLineCharacter(options) + \"* \");\n      if (tagNameOnly) {\n        displayText = displayText.slice(1);\n        if (snippetText) snippetText = snippetText.slice(1);\n      }\n      return {\n        name: displayText,\n        kind: \"parameter\" /* parameterElement */,\n        sortText: SortText.LocationPriority,\n        insertText: isSnippet ? snippetText : void 0,\n        isSnippet\n      };\n    }\n  });\n}\nfunction generateJSDocParamTagsForDestructuring(path, pattern, initializer, dotDotDotToken, isJs, isSnippet, checker, options, preferences) {\n  if (!isJs) {\n    return [\n      getJSDocParamAnnotation(\n        path,\n        initializer,\n        dotDotDotToken,\n        isJs,\n        /*isObject*/\n        false,\n        isSnippet,\n        checker,\n        options,\n        preferences,\n        { tabstop: 1 }\n      )\n    ];\n  }\n  return patternWorker(path, pattern, initializer, dotDotDotToken, { tabstop: 1 });\n  function patternWorker(path2, pattern2, initializer2, dotDotDotToken2, counter) {\n    if (isObjectBindingPattern(pattern2) && !dotDotDotToken2) {\n      const oldTabstop = counter.tabstop;\n      const childCounter = { tabstop: oldTabstop };\n      const rootParam = getJSDocParamAnnotation(\n        path2,\n        initializer2,\n        dotDotDotToken2,\n        isJs,\n        /*isObject*/\n        true,\n        isSnippet,\n        checker,\n        options,\n        preferences,\n        childCounter\n      );\n      let childTags = [];\n      for (const element of pattern2.elements) {\n        const elementTags = elementWorker(path2, element, childCounter);\n        if (!elementTags) {\n          childTags = void 0;\n          break;\n        } else {\n          childTags.push(...elementTags);\n        }\n      }\n      if (childTags) {\n        counter.tabstop = childCounter.tabstop;\n        return [rootParam, ...childTags];\n      }\n    }\n    return [\n      getJSDocParamAnnotation(\n        path2,\n        initializer2,\n        dotDotDotToken2,\n        isJs,\n        /*isObject*/\n        false,\n        isSnippet,\n        checker,\n        options,\n        preferences,\n        counter\n      )\n    ];\n  }\n  function elementWorker(path2, element, counter) {\n    if (!element.propertyName && isIdentifier(element.name) || isIdentifier(element.name)) {\n      const propertyName = element.propertyName ? tryGetTextOfPropertyName(element.propertyName) : element.name.text;\n      if (!propertyName) {\n        return void 0;\n      }\n      const paramName = `${path2}.${propertyName}`;\n      return [\n        getJSDocParamAnnotation(\n          paramName,\n          element.initializer,\n          element.dotDotDotToken,\n          isJs,\n          /*isObject*/\n          false,\n          isSnippet,\n          checker,\n          options,\n          preferences,\n          counter\n        )\n      ];\n    } else if (element.propertyName) {\n      const propertyName = tryGetTextOfPropertyName(element.propertyName);\n      return propertyName && patternWorker(`${path2}.${propertyName}`, element.name, element.initializer, element.dotDotDotToken, counter);\n    }\n    return void 0;\n  }\n}\nfunction getJSDocParamAnnotation(paramName, initializer, dotDotDotToken, isJs, isObject, isSnippet, checker, options, preferences, tabstopCounter) {\n  if (isSnippet) {\n    Debug.assertIsDefined(tabstopCounter);\n  }\n  if (initializer) {\n    paramName = getJSDocParamNameWithInitializer(paramName, initializer);\n  }\n  if (isSnippet) {\n    paramName = escapeSnippetText(paramName);\n  }\n  if (isJs) {\n    let type = \"*\";\n    if (isObject) {\n      Debug.assert(!dotDotDotToken, `Cannot annotate a rest parameter with type 'Object'.`);\n      type = \"Object\";\n    } else {\n      if (initializer) {\n        const inferredType = checker.getTypeAtLocation(initializer.parent);\n        if (!(inferredType.flags & (1 /* Any */ | 16384 /* Void */))) {\n          const sourceFile = initializer.getSourceFile();\n          const quotePreference = getQuotePreference(sourceFile, preferences);\n          const builderFlags = quotePreference === 0 /* Single */ ? 268435456 /* UseSingleQuotesForStringLiteralType */ : 0 /* None */;\n          const typeNode = checker.typeToTypeNode(inferredType, findAncestor(initializer, isFunctionLike), builderFlags);\n          if (typeNode) {\n            const printer = isSnippet ? createSnippetPrinter({\n              removeComments: true,\n              module: options.module,\n              moduleResolution: options.moduleResolution,\n              target: options.target\n            }) : createPrinter({\n              removeComments: true,\n              module: options.module,\n              moduleResolution: options.moduleResolution,\n              target: options.target\n            });\n            setEmitFlags(typeNode, 1 /* SingleLine */);\n            type = printer.printNode(4 /* Unspecified */, typeNode, sourceFile);\n          }\n        }\n      }\n      if (isSnippet && type === \"*\") {\n        type = `\\${${tabstopCounter.tabstop++}:${type}}`;\n      }\n    }\n    const dotDotDot = !isObject && dotDotDotToken ? \"...\" : \"\";\n    const description3 = isSnippet ? `\\${${tabstopCounter.tabstop++}}` : \"\";\n    return `@param {${dotDotDot}${type}} ${paramName} ${description3}`;\n  } else {\n    const description3 = isSnippet ? `\\${${tabstopCounter.tabstop++}}` : \"\";\n    return `@param ${paramName} ${description3}`;\n  }\n}\nfunction getJSDocParamNameWithInitializer(paramName, initializer) {\n  const initializerText = initializer.getText().trim();\n  if (initializerText.includes(\"\\n\") || initializerText.length > 80) {\n    return `[${paramName}]`;\n  }\n  return `[${paramName}=${initializerText}]`;\n}\nfunction keywordToCompletionEntry(keyword) {\n  return {\n    name: tokenToString(keyword),\n    kind: \"keyword\" /* keyword */,\n    kindModifiers: \"\" /* none */,\n    sortText: SortText.GlobalsOrKeywords\n  };\n}\nfunction specificKeywordCompletionInfo(entries, isNewIdentifierLocation) {\n  return {\n    isGlobalCompletion: false,\n    isMemberCompletion: false,\n    isNewIdentifierLocation,\n    entries: entries.slice(),\n    defaultCommitCharacters: getDefaultCommitCharacters(isNewIdentifierLocation)\n  };\n}\nfunction keywordCompletionData(keywordFilters, filterOutTsOnlyKeywords, isNewIdentifierLocation) {\n  return {\n    kind: 4 /* Keywords */,\n    keywordCompletions: getKeywordCompletions(keywordFilters, filterOutTsOnlyKeywords),\n    isNewIdentifierLocation\n  };\n}\nfunction keywordFiltersFromSyntaxKind(keywordCompletion) {\n  switch (keywordCompletion) {\n    case 156 /* TypeKeyword */:\n      return 8 /* TypeKeyword */;\n    default:\n      Debug.fail(\"Unknown mapping from SyntaxKind to KeywordCompletionFilters\");\n  }\n}\nfunction getOptionalReplacementSpan(location) {\n  return (location == null ? void 0 : location.kind) === 80 /* Identifier */ ? createTextSpanFromNode(location) : void 0;\n}\nfunction completionInfoFromData(sourceFile, host, program, compilerOptions, log, completionData, preferences, formatContext, position, includeSymbol) {\n  const {\n    symbols,\n    contextToken,\n    completionKind,\n    isInSnippetScope,\n    isNewIdentifierLocation,\n    location,\n    propertyAccessToConvert,\n    keywordFilters,\n    symbolToOriginInfoMap,\n    recommendedCompletion,\n    isJsxInitializer,\n    isTypeOnlyLocation,\n    isJsxIdentifierExpected,\n    isRightOfOpenTag,\n    isRightOfDotOrQuestionDot,\n    importStatementCompletion,\n    insideJsDocTagTypeExpression,\n    symbolToSortTextMap,\n    hasUnresolvedAutoImports,\n    defaultCommitCharacters\n  } = completionData;\n  let literals = completionData.literals;\n  const checker = program.getTypeChecker();\n  if (getLanguageVariant(sourceFile.scriptKind) === 1 /* JSX */) {\n    const completionInfo = getJsxClosingTagCompletion(location, sourceFile);\n    if (completionInfo) {\n      return completionInfo;\n    }\n  }\n  const caseClause = findAncestor(contextToken, isCaseClause);\n  if (caseClause && (isCaseKeyword(contextToken) || isNodeDescendantOf(contextToken, caseClause.expression))) {\n    const tracker = newCaseClauseTracker(checker, caseClause.parent.clauses);\n    literals = literals.filter((literal) => !tracker.hasValue(literal));\n    symbols.forEach((symbol, i) => {\n      if (symbol.valueDeclaration && isEnumMember(symbol.valueDeclaration)) {\n        const value = checker.getConstantValue(symbol.valueDeclaration);\n        if (value !== void 0 && tracker.hasValue(value)) {\n          symbolToOriginInfoMap[i] = { kind: 256 /* Ignore */ };\n        }\n      }\n    });\n  }\n  const entries = createSortedArray();\n  const isChecked = isCheckedFile(sourceFile, compilerOptions);\n  if (isChecked && !isNewIdentifierLocation && (!symbols || symbols.length === 0) && keywordFilters === 0 /* None */) {\n    return void 0;\n  }\n  const uniqueNames = getCompletionEntriesFromSymbols(\n    symbols,\n    entries,\n    /*replacementToken*/\n    void 0,\n    contextToken,\n    location,\n    position,\n    sourceFile,\n    host,\n    program,\n    getEmitScriptTarget(compilerOptions),\n    log,\n    completionKind,\n    preferences,\n    compilerOptions,\n    formatContext,\n    isTypeOnlyLocation,\n    propertyAccessToConvert,\n    isJsxIdentifierExpected,\n    isJsxInitializer,\n    importStatementCompletion,\n    recommendedCompletion,\n    symbolToOriginInfoMap,\n    symbolToSortTextMap,\n    isJsxIdentifierExpected,\n    isRightOfOpenTag,\n    includeSymbol\n  );\n  if (keywordFilters !== 0 /* None */) {\n    for (const keywordEntry of getKeywordCompletions(keywordFilters, !insideJsDocTagTypeExpression && isSourceFileJS(sourceFile))) {\n      if (isTypeOnlyLocation && isTypeKeyword(stringToToken(keywordEntry.name)) || !isTypeOnlyLocation && isContextualKeywordInAutoImportableExpressionSpace(keywordEntry.name) || !uniqueNames.has(keywordEntry.name)) {\n        uniqueNames.add(keywordEntry.name);\n        insertSorted(\n          entries,\n          keywordEntry,\n          compareCompletionEntries,\n          /*equalityComparer*/\n          void 0,\n          /*allowDuplicates*/\n          true\n        );\n      }\n    }\n  }\n  for (const keywordEntry of getContextualKeywords(contextToken, position)) {\n    if (!uniqueNames.has(keywordEntry.name)) {\n      uniqueNames.add(keywordEntry.name);\n      insertSorted(\n        entries,\n        keywordEntry,\n        compareCompletionEntries,\n        /*equalityComparer*/\n        void 0,\n        /*allowDuplicates*/\n        true\n      );\n    }\n  }\n  for (const literal of literals) {\n    const literalEntry = createCompletionEntryForLiteral(sourceFile, preferences, literal);\n    uniqueNames.add(literalEntry.name);\n    insertSorted(\n      entries,\n      literalEntry,\n      compareCompletionEntries,\n      /*equalityComparer*/\n      void 0,\n      /*allowDuplicates*/\n      true\n    );\n  }\n  if (!isChecked) {\n    getJSCompletionEntries(sourceFile, location.pos, uniqueNames, getEmitScriptTarget(compilerOptions), entries);\n  }\n  let caseBlock;\n  if (preferences.includeCompletionsWithInsertText && contextToken && !isRightOfOpenTag && !isRightOfDotOrQuestionDot && (caseBlock = findAncestor(contextToken, isCaseBlock))) {\n    const cases = getExhaustiveCaseSnippets(caseBlock, sourceFile, preferences, compilerOptions, host, program, formatContext);\n    if (cases) {\n      entries.push(cases.entry);\n    }\n  }\n  return {\n    flags: completionData.flags,\n    isGlobalCompletion: isInSnippetScope,\n    isIncomplete: preferences.allowIncompleteCompletions && hasUnresolvedAutoImports ? true : void 0,\n    isMemberCompletion: isMemberCompletionKind(completionKind),\n    isNewIdentifierLocation,\n    optionalReplacementSpan: getOptionalReplacementSpan(location),\n    entries,\n    defaultCommitCharacters: defaultCommitCharacters ?? getDefaultCommitCharacters(isNewIdentifierLocation)\n  };\n}\nfunction isCheckedFile(sourceFile, compilerOptions) {\n  return !isSourceFileJS(sourceFile) || !!isCheckJsEnabledForFile(sourceFile, compilerOptions);\n}\nfunction getExhaustiveCaseSnippets(caseBlock, sourceFile, preferences, options, host, program, formatContext) {\n  const clauses = caseBlock.clauses;\n  const checker = program.getTypeChecker();\n  const switchType = checker.getTypeAtLocation(caseBlock.parent.expression);\n  if (switchType && switchType.isUnion() && every(switchType.types, (type) => type.isLiteral())) {\n    const tracker = newCaseClauseTracker(checker, clauses);\n    const target = getEmitScriptTarget(options);\n    const quotePreference = getQuotePreference(sourceFile, preferences);\n    const importAdder = ts_codefix_exports.createImportAdder(sourceFile, program, preferences, host);\n    const elements = [];\n    for (const type of switchType.types) {\n      if (type.flags & 1024 /* EnumLiteral */) {\n        Debug.assert(type.symbol, \"An enum member type should have a symbol\");\n        Debug.assert(type.symbol.parent, \"An enum member type should have a parent symbol (the enum symbol)\");\n        const enumValue = type.symbol.valueDeclaration && checker.getConstantValue(type.symbol.valueDeclaration);\n        if (enumValue !== void 0) {\n          if (tracker.hasValue(enumValue)) {\n            continue;\n          }\n          tracker.addValue(enumValue);\n        }\n        const typeNode = ts_codefix_exports.typeToAutoImportableTypeNode(checker, importAdder, type, caseBlock, target);\n        if (!typeNode) {\n          return void 0;\n        }\n        const expr = typeNodeToExpression(typeNode, target, quotePreference);\n        if (!expr) {\n          return void 0;\n        }\n        elements.push(expr);\n      } else if (!tracker.hasValue(type.value)) {\n        switch (typeof type.value) {\n          case \"object\":\n            elements.push(type.value.negative ? factory.createPrefixUnaryExpression(41 /* MinusToken */, factory.createBigIntLiteral({ negative: false, base10Value: type.value.base10Value })) : factory.createBigIntLiteral(type.value));\n            break;\n          case \"number\":\n            elements.push(type.value < 0 ? factory.createPrefixUnaryExpression(41 /* MinusToken */, factory.createNumericLiteral(-type.value)) : factory.createNumericLiteral(type.value));\n            break;\n          case \"string\":\n            elements.push(factory.createStringLiteral(type.value, quotePreference === 0 /* Single */));\n            break;\n        }\n      }\n    }\n    if (elements.length === 0) {\n      return void 0;\n    }\n    const newClauses = map(elements, (element) => factory.createCaseClause(element, []));\n    const newLineChar = getNewLineOrDefaultFromHost(host, formatContext == null ? void 0 : formatContext.options);\n    const printer = createSnippetPrinter({\n      removeComments: true,\n      module: options.module,\n      moduleResolution: options.moduleResolution,\n      target: options.target,\n      newLine: getNewLineKind(newLineChar)\n    });\n    const printNode = formatContext ? (node) => printer.printAndFormatNode(4 /* Unspecified */, node, sourceFile, formatContext) : (node) => printer.printNode(4 /* Unspecified */, node, sourceFile);\n    const insertText = map(newClauses, (clause, i) => {\n      if (preferences.includeCompletionsWithSnippetText) {\n        return `${printNode(clause)}$${i + 1}`;\n      }\n      return `${printNode(clause)}`;\n    }).join(newLineChar);\n    const firstClause = printer.printNode(4 /* Unspecified */, newClauses[0], sourceFile);\n    return {\n      entry: {\n        name: `${firstClause} ...`,\n        kind: \"\" /* unknown */,\n        sortText: SortText.GlobalsOrKeywords,\n        insertText,\n        hasAction: importAdder.hasFixes() || void 0,\n        source: \"SwitchCases/\" /* SwitchCases */,\n        isSnippet: preferences.includeCompletionsWithSnippetText ? true : void 0\n      },\n      importAdder\n    };\n  }\n  return void 0;\n}\nfunction typeNodeToExpression(typeNode, languageVersion, quotePreference) {\n  switch (typeNode.kind) {\n    case 184 /* TypeReference */:\n      const typeName = typeNode.typeName;\n      return entityNameToExpression(typeName, languageVersion, quotePreference);\n    case 200 /* IndexedAccessType */:\n      const objectExpression = typeNodeToExpression(typeNode.objectType, languageVersion, quotePreference);\n      const indexExpression = typeNodeToExpression(typeNode.indexType, languageVersion, quotePreference);\n      return objectExpression && indexExpression && factory.createElementAccessExpression(objectExpression, indexExpression);\n    case 202 /* LiteralType */:\n      const literal = typeNode.literal;\n      switch (literal.kind) {\n        case 11 /* StringLiteral */:\n          return factory.createStringLiteral(literal.text, quotePreference === 0 /* Single */);\n        case 9 /* NumericLiteral */:\n          return factory.createNumericLiteral(literal.text, literal.numericLiteralFlags);\n      }\n      return void 0;\n    case 197 /* ParenthesizedType */:\n      const exp = typeNodeToExpression(typeNode.type, languageVersion, quotePreference);\n      return exp && (isIdentifier(exp) ? exp : factory.createParenthesizedExpression(exp));\n    case 187 /* TypeQuery */:\n      return entityNameToExpression(typeNode.exprName, languageVersion, quotePreference);\n    case 206 /* ImportType */:\n      Debug.fail(`We should not get an import type after calling 'codefix.typeToAutoImportableTypeNode'.`);\n  }\n  return void 0;\n}\nfunction entityNameToExpression(entityName, languageVersion, quotePreference) {\n  if (isIdentifier(entityName)) {\n    return entityName;\n  }\n  const unescapedName = unescapeLeadingUnderscores(entityName.right.escapedText);\n  if (canUsePropertyAccess(unescapedName, languageVersion)) {\n    return factory.createPropertyAccessExpression(\n      entityNameToExpression(entityName.left, languageVersion, quotePreference),\n      unescapedName\n    );\n  } else {\n    return factory.createElementAccessExpression(\n      entityNameToExpression(entityName.left, languageVersion, quotePreference),\n      factory.createStringLiteral(unescapedName, quotePreference === 0 /* Single */)\n    );\n  }\n}\nfunction isMemberCompletionKind(kind) {\n  switch (kind) {\n    case 0 /* ObjectPropertyDeclaration */:\n    case 3 /* MemberLike */:\n    case 2 /* PropertyAccess */:\n      return true;\n    default:\n      return false;\n  }\n}\nfunction getJsxClosingTagCompletion(location, sourceFile) {\n  const jsxClosingElement = findAncestor(location, (node) => {\n    switch (node.kind) {\n      case 288 /* JsxClosingElement */:\n        return true;\n      case 44 /* SlashToken */:\n      case 32 /* GreaterThanToken */:\n      case 80 /* Identifier */:\n      case 212 /* PropertyAccessExpression */:\n        return false;\n      default:\n        return \"quit\";\n    }\n  });\n  if (jsxClosingElement) {\n    const hasClosingAngleBracket = !!findChildOfKind(jsxClosingElement, 32 /* GreaterThanToken */, sourceFile);\n    const tagName = jsxClosingElement.parent.openingElement.tagName;\n    const closingTag = tagName.getText(sourceFile);\n    const fullClosingTag = closingTag + (hasClosingAngleBracket ? \"\" : \">\");\n    const replacementSpan = createTextSpanFromNode(jsxClosingElement.tagName);\n    const entry = {\n      name: fullClosingTag,\n      kind: \"class\" /* classElement */,\n      kindModifiers: void 0,\n      sortText: SortText.LocationPriority\n    };\n    return {\n      isGlobalCompletion: false,\n      isMemberCompletion: true,\n      isNewIdentifierLocation: false,\n      optionalReplacementSpan: replacementSpan,\n      entries: [entry],\n      defaultCommitCharacters: getDefaultCommitCharacters(\n        /*isNewIdentifierLocation*/\n        false\n      )\n    };\n  }\n  return;\n}\nfunction getJSCompletionEntries(sourceFile, position, uniqueNames, target, entries) {\n  getNameTable(sourceFile).forEach((pos, name) => {\n    if (pos === position) {\n      return;\n    }\n    const realName = unescapeLeadingUnderscores(name);\n    if (!uniqueNames.has(realName) && isIdentifierText(realName, target)) {\n      uniqueNames.add(realName);\n      insertSorted(entries, {\n        name: realName,\n        kind: \"warning\" /* warning */,\n        kindModifiers: \"\",\n        sortText: SortText.JavascriptIdentifiers,\n        isFromUncheckedFile: true,\n        commitCharacters: []\n      }, compareCompletionEntries);\n    }\n  });\n}\nfunction completionNameForLiteral(sourceFile, preferences, literal) {\n  return typeof literal === \"object\" ? pseudoBigIntToString(literal) + \"n\" : isString(literal) ? quote(sourceFile, preferences, literal) : JSON.stringify(literal);\n}\nfunction createCompletionEntryForLiteral(sourceFile, preferences, literal) {\n  return {\n    name: completionNameForLiteral(sourceFile, preferences, literal),\n    kind: \"string\" /* string */,\n    kindModifiers: \"\" /* none */,\n    sortText: SortText.LocationPriority,\n    commitCharacters: []\n  };\n}\nfunction createCompletionEntry(symbol, sortText, replacementToken, contextToken, location, position, sourceFile, host, program, name, needsConvertPropertyAccess, origin, recommendedCompletion, propertyAccessToConvert, isJsxInitializer, importStatementCompletion, useSemicolons, options, preferences, completionKind, formatContext, isJsxIdentifierExpected, isRightOfOpenTag, includeSymbol) {\n  var _a, _b;\n  let insertText;\n  let filterText;\n  let replacementSpan = getReplacementSpanForContextToken(replacementToken, position);\n  let data;\n  let isSnippet;\n  let source = getSourceFromOrigin(origin);\n  let sourceDisplay;\n  let hasAction;\n  let labelDetails;\n  const typeChecker = program.getTypeChecker();\n  const insertQuestionDot = origin && originIsNullableMember(origin);\n  const useBraces = origin && originIsSymbolMember(origin) || needsConvertPropertyAccess;\n  if (origin && originIsThisType(origin)) {\n    insertText = needsConvertPropertyAccess ? `this${insertQuestionDot ? \"?.\" : \"\"}[${quotePropertyName(sourceFile, preferences, name)}]` : `this${insertQuestionDot ? \"?.\" : \".\"}${name}`;\n  } else if ((useBraces || insertQuestionDot) && propertyAccessToConvert) {\n    insertText = useBraces ? needsConvertPropertyAccess ? `[${quotePropertyName(sourceFile, preferences, name)}]` : `[${name}]` : name;\n    if (insertQuestionDot || propertyAccessToConvert.questionDotToken) {\n      insertText = `?.${insertText}`;\n    }\n    const dot = findChildOfKind(propertyAccessToConvert, 25 /* DotToken */, sourceFile) || findChildOfKind(propertyAccessToConvert, 29 /* QuestionDotToken */, sourceFile);\n    if (!dot) {\n      return void 0;\n    }\n    const end = startsWith(name, propertyAccessToConvert.name.text) ? propertyAccessToConvert.name.end : dot.end;\n    replacementSpan = createTextSpanFromBounds(dot.getStart(sourceFile), end);\n  }\n  if (isJsxInitializer) {\n    if (insertText === void 0) insertText = name;\n    insertText = `{${insertText}}`;\n    if (typeof isJsxInitializer !== \"boolean\") {\n      replacementSpan = createTextSpanFromNode(isJsxInitializer, sourceFile);\n    }\n  }\n  if (origin && originIsPromise(origin) && propertyAccessToConvert) {\n    if (insertText === void 0) insertText = name;\n    const precedingToken = findPrecedingToken(propertyAccessToConvert.pos, sourceFile);\n    let awaitText = \"\";\n    if (precedingToken && positionIsASICandidate(precedingToken.end, precedingToken.parent, sourceFile)) {\n      awaitText = \";\";\n    }\n    awaitText += `(await ${propertyAccessToConvert.expression.getText()})`;\n    insertText = needsConvertPropertyAccess ? `${awaitText}${insertText}` : `${awaitText}${insertQuestionDot ? \"?.\" : \".\"}${insertText}`;\n    const isInAwaitExpression = tryCast(propertyAccessToConvert.parent, isAwaitExpression);\n    const wrapNode = isInAwaitExpression ? propertyAccessToConvert.parent : propertyAccessToConvert.expression;\n    replacementSpan = createTextSpanFromBounds(wrapNode.getStart(sourceFile), propertyAccessToConvert.end);\n  }\n  if (originIsResolvedExport(origin)) {\n    sourceDisplay = [textPart(origin.moduleSpecifier)];\n    if (importStatementCompletion) {\n      ({ insertText, replacementSpan } = getInsertTextAndReplacementSpanForImportCompletion(name, importStatementCompletion, origin, useSemicolons, sourceFile, program, preferences));\n      isSnippet = preferences.includeCompletionsWithSnippetText ? true : void 0;\n    }\n  }\n  if ((origin == null ? void 0 : origin.kind) === 64 /* TypeOnlyAlias */) {\n    hasAction = true;\n  }\n  if (completionKind === 0 /* ObjectPropertyDeclaration */ && contextToken && ((_a = findPrecedingToken(contextToken.pos, sourceFile, contextToken)) == null ? void 0 : _a.kind) !== 28 /* CommaToken */) {\n    if (isMethodDeclaration(contextToken.parent.parent) || isGetAccessorDeclaration(contextToken.parent.parent) || isSetAccessorDeclaration(contextToken.parent.parent) || isSpreadAssignment(contextToken.parent) || ((_b = findAncestor(contextToken.parent, isPropertyAssignment)) == null ? void 0 : _b.getLastToken(sourceFile)) === contextToken || isShorthandPropertyAssignment(contextToken.parent) && getLineAndCharacterOfPosition(sourceFile, contextToken.getEnd()).line !== getLineAndCharacterOfPosition(sourceFile, position).line) {\n      source = \"ObjectLiteralMemberWithComma/\" /* ObjectLiteralMemberWithComma */;\n      hasAction = true;\n    }\n  }\n  if (preferences.includeCompletionsWithClassMemberSnippets && preferences.includeCompletionsWithInsertText && completionKind === 3 /* MemberLike */ && isClassLikeMemberCompletion(symbol, location, sourceFile)) {\n    let importAdder;\n    const memberCompletionEntry = getEntryForMemberCompletion(\n      host,\n      program,\n      options,\n      preferences,\n      name,\n      symbol,\n      location,\n      position,\n      contextToken,\n      formatContext\n    );\n    if (memberCompletionEntry) {\n      ({ insertText, filterText, isSnippet, importAdder } = memberCompletionEntry);\n      if ((importAdder == null ? void 0 : importAdder.hasFixes()) || memberCompletionEntry.eraseRange) {\n        hasAction = true;\n        source = \"ClassMemberSnippet/\" /* ClassMemberSnippet */;\n      }\n    } else {\n      return void 0;\n    }\n  }\n  if (origin && originIsObjectLiteralMethod(origin)) {\n    ({ insertText, isSnippet, labelDetails } = origin);\n    if (!preferences.useLabelDetailsInCompletionEntries) {\n      name = name + labelDetails.detail;\n      labelDetails = void 0;\n    }\n    source = \"ObjectLiteralMethodSnippet/\" /* ObjectLiteralMethodSnippet */;\n    sortText = SortText.SortBelow(sortText);\n  }\n  if (isJsxIdentifierExpected && !isRightOfOpenTag && preferences.includeCompletionsWithSnippetText && preferences.jsxAttributeCompletionStyle && preferences.jsxAttributeCompletionStyle !== \"none\" && !(isJsxAttribute(location.parent) && location.parent.initializer)) {\n    let useBraces2 = preferences.jsxAttributeCompletionStyle === \"braces\";\n    const type = typeChecker.getTypeOfSymbolAtLocation(symbol, location);\n    if (preferences.jsxAttributeCompletionStyle === \"auto\" && !(type.flags & 528 /* BooleanLike */) && !(type.flags & 1048576 /* Union */ && find(type.types, (type2) => !!(type2.flags & 528 /* BooleanLike */)))) {\n      if (type.flags & 402653316 /* StringLike */ || type.flags & 1048576 /* Union */ && every(type.types, (type2) => !!(type2.flags & (402653316 /* StringLike */ | 32768 /* Undefined */) || isStringAndEmptyAnonymousObjectIntersection(type2)))) {\n        insertText = `${escapeSnippetText(name)}=${quote(sourceFile, preferences, \"$1\")}`;\n        isSnippet = true;\n      } else {\n        useBraces2 = true;\n      }\n    }\n    if (useBraces2) {\n      insertText = `${escapeSnippetText(name)}={$1}`;\n      isSnippet = true;\n    }\n  }\n  if (insertText !== void 0 && !preferences.includeCompletionsWithInsertText) {\n    return void 0;\n  }\n  if (originIsExport(origin) || originIsResolvedExport(origin)) {\n    data = originToCompletionEntryData(origin);\n    hasAction = !importStatementCompletion;\n  }\n  const parentNamedImportOrExport = findAncestor(location, isNamedImportsOrExports);\n  if (parentNamedImportOrExport) {\n    const languageVersion = getEmitScriptTarget(host.getCompilationSettings());\n    if (!isIdentifierText(name, languageVersion)) {\n      insertText = quotePropertyName(sourceFile, preferences, name);\n      if (parentNamedImportOrExport.kind === 276 /* NamedImports */) {\n        scanner.setText(sourceFile.text);\n        scanner.resetTokenState(position);\n        if (!(scanner.scan() === 130 /* AsKeyword */ && scanner.scan() === 80 /* Identifier */)) {\n          insertText += \" as \" + generateIdentifierForArbitraryString(name, languageVersion);\n        }\n      }\n    } else if (parentNamedImportOrExport.kind === 276 /* NamedImports */) {\n      const possibleToken = stringToToken(name);\n      if (possibleToken && (possibleToken === 135 /* AwaitKeyword */ || isNonContextualKeyword(possibleToken))) {\n        insertText = `${name} as ${name}_`;\n      }\n    }\n  }\n  const kind = ts_SymbolDisplay_exports.getSymbolKind(typeChecker, symbol, location);\n  const commitCharacters = kind === \"warning\" /* warning */ || kind === \"string\" /* string */ ? [] : void 0;\n  return {\n    name,\n    kind,\n    kindModifiers: ts_SymbolDisplay_exports.getSymbolModifiers(typeChecker, symbol),\n    sortText,\n    source,\n    hasAction: hasAction ? true : void 0,\n    isRecommended: isRecommendedCompletionMatch(symbol, recommendedCompletion, typeChecker) || void 0,\n    insertText,\n    filterText,\n    replacementSpan,\n    sourceDisplay,\n    labelDetails,\n    isSnippet,\n    isPackageJsonImport: originIsPackageJsonImport(origin) || void 0,\n    isImportStatementCompletion: !!importStatementCompletion || void 0,\n    data,\n    commitCharacters,\n    ...includeSymbol ? { symbol } : void 0\n  };\n}\nfunction generateIdentifierForArbitraryString(text, languageVersion) {\n  let needsUnderscore = false;\n  let identifier = \"\";\n  let ch;\n  for (let i = 0; i < text.length; i += ch !== void 0 && ch >= 65536 ? 2 : 1) {\n    ch = text.codePointAt(i);\n    if (ch !== void 0 && (i === 0 ? isIdentifierStart(ch, languageVersion) : isIdentifierPart(ch, languageVersion))) {\n      if (needsUnderscore) identifier += \"_\";\n      identifier += String.fromCodePoint(ch);\n      needsUnderscore = false;\n    } else {\n      needsUnderscore = true;\n    }\n  }\n  if (needsUnderscore) identifier += \"_\";\n  return identifier || \"_\";\n}\nfunction isClassLikeMemberCompletion(symbol, location, sourceFile) {\n  if (isInJSFile(location)) {\n    return false;\n  }\n  const memberFlags = 106500 /* ClassMember */ & 900095 /* EnumMemberExcludes */;\n  return !!(symbol.flags & memberFlags) && (isClassLike(location) || location.parent && location.parent.parent && isClassElement(location.parent) && location === location.parent.name && location.parent.getLastToken(sourceFile) === location.parent.name && isClassLike(location.parent.parent) || location.parent && isSyntaxList(location) && isClassLike(location.parent));\n}\nfunction getEntryForMemberCompletion(host, program, options, preferences, name, symbol, location, position, contextToken, formatContext) {\n  const classLikeDeclaration = findAncestor(location, isClassLike);\n  if (!classLikeDeclaration) {\n    return void 0;\n  }\n  let isSnippet;\n  let insertText = name;\n  const filterText = name;\n  const checker = program.getTypeChecker();\n  const sourceFile = location.getSourceFile();\n  const printer = createSnippetPrinter({\n    removeComments: true,\n    module: options.module,\n    moduleResolution: options.moduleResolution,\n    target: options.target,\n    omitTrailingSemicolon: false,\n    newLine: getNewLineKind(getNewLineOrDefaultFromHost(host, formatContext == null ? void 0 : formatContext.options))\n  });\n  const importAdder = ts_codefix_exports.createImportAdder(sourceFile, program, preferences, host);\n  let body;\n  if (preferences.includeCompletionsWithSnippetText) {\n    isSnippet = true;\n    const emptyStmt = factory.createEmptyStatement();\n    body = factory.createBlock(\n      [emptyStmt],\n      /*multiLine*/\n      true\n    );\n    setSnippetElement(emptyStmt, { kind: 0 /* TabStop */, order: 0 });\n  } else {\n    body = factory.createBlock(\n      [],\n      /*multiLine*/\n      true\n    );\n  }\n  let modifiers = 0 /* None */;\n  const { modifiers: presentModifiers, range: eraseRange, decorators: presentDecorators } = getPresentModifiers(contextToken, sourceFile, position);\n  const isAbstract = presentModifiers & 64 /* Abstract */ && classLikeDeclaration.modifierFlagsCache & 64 /* Abstract */;\n  let completionNodes = [];\n  ts_codefix_exports.addNewNodeForMemberSymbol(\n    symbol,\n    classLikeDeclaration,\n    sourceFile,\n    { program, host },\n    preferences,\n    importAdder,\n    // `addNewNodeForMemberSymbol` calls this callback function for each new member node\n    // it adds for the given member symbol.\n    // We store these member nodes in the `completionNodes` array.\n    // Note: there might be:\n    //  - No nodes if `addNewNodeForMemberSymbol` cannot figure out a node for the member;\n    //  - One node;\n    //  - More than one node if the member is overloaded (e.g. a method with overload signatures).\n    (node) => {\n      let requiredModifiers = 0 /* None */;\n      if (isAbstract) {\n        requiredModifiers |= 64 /* Abstract */;\n      }\n      if (isClassElement(node) && checker.getMemberOverrideModifierStatus(classLikeDeclaration, node, symbol) === 1 /* NeedsOverride */) {\n        requiredModifiers |= 16 /* Override */;\n      }\n      if (!completionNodes.length) {\n        modifiers = node.modifierFlagsCache | requiredModifiers;\n      }\n      node = factory.replaceModifiers(node, modifiers);\n      completionNodes.push(node);\n    },\n    body,\n    ts_codefix_exports.PreserveOptionalFlags.Property,\n    !!isAbstract\n  );\n  if (completionNodes.length) {\n    const isMethod = symbol.flags & 8192 /* Method */;\n    let allowedModifiers = modifiers | 16 /* Override */ | 1 /* Public */;\n    if (!isMethod) {\n      allowedModifiers |= 128 /* Ambient */ | 8 /* Readonly */;\n    } else {\n      allowedModifiers |= 1024 /* Async */;\n    }\n    const allowedAndPresent = presentModifiers & allowedModifiers;\n    if (presentModifiers & ~allowedModifiers) {\n      return void 0;\n    }\n    if (modifiers & 4 /* Protected */ && allowedAndPresent & 1 /* Public */) {\n      modifiers &= ~4 /* Protected */;\n    }\n    if (allowedAndPresent !== 0 /* None */ && !(allowedAndPresent & 1 /* Public */)) {\n      modifiers &= ~1 /* Public */;\n    }\n    modifiers |= allowedAndPresent;\n    completionNodes = completionNodes.map((node) => factory.replaceModifiers(node, modifiers));\n    if (presentDecorators == null ? void 0 : presentDecorators.length) {\n      const lastNode = completionNodes[completionNodes.length - 1];\n      if (canHaveDecorators(lastNode)) {\n        completionNodes[completionNodes.length - 1] = factory.replaceDecoratorsAndModifiers(lastNode, presentDecorators.concat(getModifiers(lastNode) || []));\n      }\n    }\n    const format = 1 /* MultiLine */ | 131072 /* NoTrailingNewLine */;\n    if (formatContext) {\n      insertText = printer.printAndFormatSnippetList(\n        format,\n        factory.createNodeArray(completionNodes),\n        sourceFile,\n        formatContext\n      );\n    } else {\n      insertText = printer.printSnippetList(\n        format,\n        factory.createNodeArray(completionNodes),\n        sourceFile\n      );\n    }\n  }\n  return { insertText, filterText, isSnippet, importAdder, eraseRange };\n}\nfunction getPresentModifiers(contextToken, sourceFile, position) {\n  if (!contextToken || getLineAndCharacterOfPosition(sourceFile, position).line > getLineAndCharacterOfPosition(sourceFile, contextToken.getEnd()).line) {\n    return { modifiers: 0 /* None */ };\n  }\n  let modifiers = 0 /* None */;\n  let decorators;\n  let contextMod;\n  const range = { pos: position, end: position };\n  if (isPropertyDeclaration(contextToken.parent) && (contextMod = isModifierLike2(contextToken))) {\n    if (contextToken.parent.modifiers) {\n      modifiers |= modifiersToFlags(contextToken.parent.modifiers) & 98303 /* Modifier */;\n      decorators = contextToken.parent.modifiers.filter(isDecorator) || [];\n      range.pos = Math.min(...contextToken.parent.modifiers.map((n) => n.getStart(sourceFile)));\n    }\n    const contextModifierFlag = modifierToFlag(contextMod);\n    if (!(modifiers & contextModifierFlag)) {\n      modifiers |= contextModifierFlag;\n      range.pos = Math.min(range.pos, contextToken.getStart(sourceFile));\n    }\n    if (contextToken.parent.name !== contextToken) {\n      range.end = contextToken.parent.name.getStart(sourceFile);\n    }\n  }\n  return { modifiers, decorators, range: range.pos < range.end ? range : void 0 };\n}\nfunction isModifierLike2(node) {\n  if (isModifier(node)) {\n    return node.kind;\n  }\n  if (isIdentifier(node)) {\n    const originalKeywordKind = identifierToKeywordKind(node);\n    if (originalKeywordKind && isModifierKind(originalKeywordKind)) {\n      return originalKeywordKind;\n    }\n  }\n  return void 0;\n}\nfunction getEntryForObjectLiteralMethodCompletion(symbol, name, enclosingDeclaration, program, host, options, preferences, formatContext) {\n  const isSnippet = preferences.includeCompletionsWithSnippetText || void 0;\n  let insertText = name;\n  const sourceFile = enclosingDeclaration.getSourceFile();\n  const method = createObjectLiteralMethod(symbol, enclosingDeclaration, sourceFile, program, host, preferences);\n  if (!method) {\n    return void 0;\n  }\n  const printer = createSnippetPrinter({\n    removeComments: true,\n    module: options.module,\n    moduleResolution: options.moduleResolution,\n    target: options.target,\n    omitTrailingSemicolon: false,\n    newLine: getNewLineKind(getNewLineOrDefaultFromHost(host, formatContext == null ? void 0 : formatContext.options))\n  });\n  if (formatContext) {\n    insertText = printer.printAndFormatSnippetList(16 /* CommaDelimited */ | 64 /* AllowTrailingComma */, factory.createNodeArray(\n      [method],\n      /*hasTrailingComma*/\n      true\n    ), sourceFile, formatContext);\n  } else {\n    insertText = printer.printSnippetList(16 /* CommaDelimited */ | 64 /* AllowTrailingComma */, factory.createNodeArray(\n      [method],\n      /*hasTrailingComma*/\n      true\n    ), sourceFile);\n  }\n  const signaturePrinter = createPrinter({\n    removeComments: true,\n    module: options.module,\n    moduleResolution: options.moduleResolution,\n    target: options.target,\n    omitTrailingSemicolon: true\n  });\n  const methodSignature = factory.createMethodSignature(\n    /*modifiers*/\n    void 0,\n    /*name*/\n    \"\",\n    method.questionToken,\n    method.typeParameters,\n    method.parameters,\n    method.type\n  );\n  const labelDetails = { detail: signaturePrinter.printNode(4 /* Unspecified */, methodSignature, sourceFile) };\n  return { isSnippet, insertText, labelDetails };\n}\nfunction createObjectLiteralMethod(symbol, enclosingDeclaration, sourceFile, program, host, preferences) {\n  const declarations = symbol.getDeclarations();\n  if (!(declarations && declarations.length)) {\n    return void 0;\n  }\n  const checker = program.getTypeChecker();\n  const declaration = declarations[0];\n  const name = getSynthesizedDeepClone(\n    getNameOfDeclaration(declaration),\n    /*includeTrivia*/\n    false\n  );\n  const type = checker.getWidenedType(checker.getTypeOfSymbolAtLocation(symbol, enclosingDeclaration));\n  const quotePreference = getQuotePreference(sourceFile, preferences);\n  const builderFlags = 33554432 /* OmitThisParameter */ | (quotePreference === 0 /* Single */ ? 268435456 /* UseSingleQuotesForStringLiteralType */ : 0 /* None */);\n  switch (declaration.kind) {\n    case 172 /* PropertySignature */:\n    case 173 /* PropertyDeclaration */:\n    case 174 /* MethodSignature */:\n    case 175 /* MethodDeclaration */: {\n      let effectiveType = type.flags & 1048576 /* Union */ && type.types.length < 10 ? checker.getUnionType(type.types, 2 /* Subtype */) : type;\n      if (effectiveType.flags & 1048576 /* Union */) {\n        const functionTypes = filter(effectiveType.types, (type2) => checker.getSignaturesOfType(type2, 0 /* Call */).length > 0);\n        if (functionTypes.length === 1) {\n          effectiveType = functionTypes[0];\n        } else {\n          return void 0;\n        }\n      }\n      const signatures = checker.getSignaturesOfType(effectiveType, 0 /* Call */);\n      if (signatures.length !== 1) {\n        return void 0;\n      }\n      const typeNode = checker.typeToTypeNode(\n        effectiveType,\n        enclosingDeclaration,\n        builderFlags,\n        /*internalFlags*/\n        void 0,\n        ts_codefix_exports.getNoopSymbolTrackerWithResolver({ program, host })\n      );\n      if (!typeNode || !isFunctionTypeNode(typeNode)) {\n        return void 0;\n      }\n      let body;\n      if (preferences.includeCompletionsWithSnippetText) {\n        const emptyStmt = factory.createEmptyStatement();\n        body = factory.createBlock(\n          [emptyStmt],\n          /*multiLine*/\n          true\n        );\n        setSnippetElement(emptyStmt, { kind: 0 /* TabStop */, order: 0 });\n      } else {\n        body = factory.createBlock(\n          [],\n          /*multiLine*/\n          true\n        );\n      }\n      const parameters = typeNode.parameters.map(\n        (typedParam) => factory.createParameterDeclaration(\n          /*modifiers*/\n          void 0,\n          typedParam.dotDotDotToken,\n          typedParam.name,\n          /*questionToken*/\n          void 0,\n          /*type*/\n          void 0,\n          typedParam.initializer\n        )\n      );\n      return factory.createMethodDeclaration(\n        /*modifiers*/\n        void 0,\n        /*asteriskToken*/\n        void 0,\n        name,\n        /*questionToken*/\n        void 0,\n        /*typeParameters*/\n        void 0,\n        parameters,\n        /*type*/\n        void 0,\n        body\n      );\n    }\n    default:\n      return void 0;\n  }\n}\nfunction createSnippetPrinter(printerOptions) {\n  let escapes;\n  const baseWriter = ts_textChanges_exports.createWriter(getNewLineCharacter(printerOptions));\n  const printer = createPrinter(printerOptions, baseWriter);\n  const writer = {\n    ...baseWriter,\n    write: (s) => escapingWrite(s, () => baseWriter.write(s)),\n    nonEscapingWrite: baseWriter.write,\n    writeLiteral: (s) => escapingWrite(s, () => baseWriter.writeLiteral(s)),\n    writeStringLiteral: (s) => escapingWrite(s, () => baseWriter.writeStringLiteral(s)),\n    writeSymbol: (s, symbol) => escapingWrite(s, () => baseWriter.writeSymbol(s, symbol)),\n    writeParameter: (s) => escapingWrite(s, () => baseWriter.writeParameter(s)),\n    writeComment: (s) => escapingWrite(s, () => baseWriter.writeComment(s)),\n    writeProperty: (s) => escapingWrite(s, () => baseWriter.writeProperty(s))\n  };\n  return {\n    printSnippetList,\n    printAndFormatSnippetList,\n    printNode,\n    printAndFormatNode\n  };\n  function escapingWrite(s, write) {\n    const escaped = escapeSnippetText(s);\n    if (escaped !== s) {\n      const start = baseWriter.getTextPos();\n      write();\n      const end = baseWriter.getTextPos();\n      escapes = append(escapes || (escapes = []), { newText: escaped, span: { start, length: end - start } });\n    } else {\n      write();\n    }\n  }\n  function printSnippetList(format, list, sourceFile) {\n    const unescaped = printUnescapedSnippetList(format, list, sourceFile);\n    return escapes ? ts_textChanges_exports.applyChanges(unescaped, escapes) : unescaped;\n  }\n  function printUnescapedSnippetList(format, list, sourceFile) {\n    escapes = void 0;\n    writer.clear();\n    printer.writeList(format, list, sourceFile, writer);\n    return writer.getText();\n  }\n  function printAndFormatSnippetList(format, list, sourceFile, formatContext) {\n    const syntheticFile = {\n      text: printUnescapedSnippetList(\n        format,\n        list,\n        sourceFile\n      ),\n      getLineAndCharacterOfPosition(pos) {\n        return getLineAndCharacterOfPosition(this, pos);\n      }\n    };\n    const formatOptions = getFormatCodeSettingsForWriting(formatContext, sourceFile);\n    const changes = flatMap(list, (node) => {\n      const nodeWithPos = ts_textChanges_exports.assignPositionsToNode(node);\n      return ts_formatting_exports.formatNodeGivenIndentation(\n        nodeWithPos,\n        syntheticFile,\n        sourceFile.languageVariant,\n        /* indentation */\n        0,\n        /* delta */\n        0,\n        { ...formatContext, options: formatOptions }\n      );\n    });\n    const allChanges = escapes ? toSorted(concatenate(changes, escapes), (a, b) => compareTextSpans(a.span, b.span)) : changes;\n    return ts_textChanges_exports.applyChanges(syntheticFile.text, allChanges);\n  }\n  function printNode(hint, node, sourceFile) {\n    const unescaped = printUnescapedNode(hint, node, sourceFile);\n    return escapes ? ts_textChanges_exports.applyChanges(unescaped, escapes) : unescaped;\n  }\n  function printUnescapedNode(hint, node, sourceFile) {\n    escapes = void 0;\n    writer.clear();\n    printer.writeNode(hint, node, sourceFile, writer);\n    return writer.getText();\n  }\n  function printAndFormatNode(hint, node, sourceFile, formatContext) {\n    const syntheticFile = {\n      text: printUnescapedNode(\n        hint,\n        node,\n        sourceFile\n      ),\n      getLineAndCharacterOfPosition(pos) {\n        return getLineAndCharacterOfPosition(this, pos);\n      }\n    };\n    const formatOptions = getFormatCodeSettingsForWriting(formatContext, sourceFile);\n    const nodeWithPos = ts_textChanges_exports.assignPositionsToNode(node);\n    const changes = ts_formatting_exports.formatNodeGivenIndentation(\n      nodeWithPos,\n      syntheticFile,\n      sourceFile.languageVariant,\n      /* indentation */\n      0,\n      /* delta */\n      0,\n      { ...formatContext, options: formatOptions }\n    );\n    const allChanges = escapes ? toSorted(concatenate(changes, escapes), (a, b) => compareTextSpans(a.span, b.span)) : changes;\n    return ts_textChanges_exports.applyChanges(syntheticFile.text, allChanges);\n  }\n}\nfunction originToCompletionEntryData(origin) {\n  const ambientModuleName = origin.fileName ? void 0 : stripQuotes(origin.moduleSymbol.name);\n  const isPackageJsonImport = origin.isFromPackageJson ? true : void 0;\n  if (originIsResolvedExport(origin)) {\n    const resolvedData = {\n      exportName: origin.exportName,\n      exportMapKey: origin.exportMapKey,\n      moduleSpecifier: origin.moduleSpecifier,\n      ambientModuleName,\n      fileName: origin.fileName,\n      isPackageJsonImport\n    };\n    return resolvedData;\n  }\n  const unresolvedData = {\n    exportName: origin.exportName,\n    exportMapKey: origin.exportMapKey,\n    fileName: origin.fileName,\n    ambientModuleName: origin.fileName ? void 0 : stripQuotes(origin.moduleSymbol.name),\n    isPackageJsonImport: origin.isFromPackageJson ? true : void 0\n  };\n  return unresolvedData;\n}\nfunction completionEntryDataToSymbolOriginInfo(data, completionName, moduleSymbol) {\n  const isDefaultExport = data.exportName === \"default\" /* Default */;\n  const isFromPackageJson = !!data.isPackageJsonImport;\n  if (completionEntryDataIsResolved(data)) {\n    const resolvedOrigin = {\n      kind: 32 /* ResolvedExport */,\n      exportName: data.exportName,\n      exportMapKey: data.exportMapKey,\n      moduleSpecifier: data.moduleSpecifier,\n      symbolName: completionName,\n      fileName: data.fileName,\n      moduleSymbol,\n      isDefaultExport,\n      isFromPackageJson\n    };\n    return resolvedOrigin;\n  }\n  const unresolvedOrigin = {\n    kind: 4 /* Export */,\n    exportName: data.exportName,\n    exportMapKey: data.exportMapKey,\n    symbolName: completionName,\n    fileName: data.fileName,\n    moduleSymbol,\n    isDefaultExport,\n    isFromPackageJson\n  };\n  return unresolvedOrigin;\n}\nfunction getInsertTextAndReplacementSpanForImportCompletion(name, importStatementCompletion, origin, useSemicolons, sourceFile, program, preferences) {\n  const replacementSpan = importStatementCompletion.replacementSpan;\n  const quotedModuleSpecifier = escapeSnippetText(quote(sourceFile, preferences, origin.moduleSpecifier));\n  const exportKind = origin.isDefaultExport ? 1 /* Default */ : origin.exportName === \"export=\" /* ExportEquals */ ? 2 /* ExportEquals */ : 0 /* Named */;\n  const tabStop = preferences.includeCompletionsWithSnippetText ? \"$1\" : \"\";\n  const importKind = ts_codefix_exports.getImportKind(\n    sourceFile,\n    exportKind,\n    program,\n    /*forceImportKeyword*/\n    true\n  );\n  const isImportSpecifierTypeOnly = importStatementCompletion.couldBeTypeOnlyImportSpecifier;\n  const topLevelTypeOnlyText = importStatementCompletion.isTopLevelTypeOnly ? ` ${tokenToString(156 /* TypeKeyword */)} ` : \" \";\n  const importSpecifierTypeOnlyText = isImportSpecifierTypeOnly ? `${tokenToString(156 /* TypeKeyword */)} ` : \"\";\n  const suffix = useSemicolons ? \";\" : \"\";\n  switch (importKind) {\n    case 3 /* CommonJS */:\n      return { replacementSpan, insertText: `import${topLevelTypeOnlyText}${escapeSnippetText(name)}${tabStop} = require(${quotedModuleSpecifier})${suffix}` };\n    case 1 /* Default */:\n      return { replacementSpan, insertText: `import${topLevelTypeOnlyText}${escapeSnippetText(name)}${tabStop} from ${quotedModuleSpecifier}${suffix}` };\n    case 2 /* Namespace */:\n      return { replacementSpan, insertText: `import${topLevelTypeOnlyText}* as ${escapeSnippetText(name)} from ${quotedModuleSpecifier}${suffix}` };\n    case 0 /* Named */:\n      return { replacementSpan, insertText: `import${topLevelTypeOnlyText}{ ${importSpecifierTypeOnlyText}${escapeSnippetText(name)}${tabStop} } from ${quotedModuleSpecifier}${suffix}` };\n  }\n}\nfunction quotePropertyName(sourceFile, preferences, name) {\n  if (/^\\d+$/.test(name)) {\n    return name;\n  }\n  return quote(sourceFile, preferences, name);\n}\nfunction isRecommendedCompletionMatch(localSymbol, recommendedCompletion, checker) {\n  return localSymbol === recommendedCompletion || !!(localSymbol.flags & 1048576 /* ExportValue */) && checker.getExportSymbolOfSymbol(localSymbol) === recommendedCompletion;\n}\nfunction getSourceFromOrigin(origin) {\n  if (originIsExport(origin)) {\n    return stripQuotes(origin.moduleSymbol.name);\n  }\n  if (originIsResolvedExport(origin)) {\n    return origin.moduleSpecifier;\n  }\n  if ((origin == null ? void 0 : origin.kind) === 1 /* ThisType */) {\n    return \"ThisProperty/\" /* ThisProperty */;\n  }\n  if ((origin == null ? void 0 : origin.kind) === 64 /* TypeOnlyAlias */) {\n    return \"TypeOnlyAlias/\" /* TypeOnlyAlias */;\n  }\n}\nfunction getCompletionEntriesFromSymbols(symbols, entries, replacementToken, contextToken, location, position, sourceFile, host, program, target, log, kind, preferences, compilerOptions, formatContext, isTypeOnlyLocation, propertyAccessToConvert, jsxIdentifierExpected, isJsxInitializer, importStatementCompletion, recommendedCompletion, symbolToOriginInfoMap, symbolToSortTextMap, isJsxIdentifierExpected, isRightOfOpenTag, includeSymbol = false) {\n  const start = timestamp();\n  const closestSymbolDeclaration = getClosestSymbolDeclaration(contextToken, location);\n  const useSemicolons = probablyUsesSemicolons(sourceFile);\n  const typeChecker = program.getTypeChecker();\n  const uniques = /* @__PURE__ */ new Map();\n  for (let i = 0; i < symbols.length; i++) {\n    const symbol = symbols[i];\n    const origin = symbolToOriginInfoMap == null ? void 0 : symbolToOriginInfoMap[i];\n    const info = getCompletionEntryDisplayNameForSymbol(symbol, target, origin, kind, !!jsxIdentifierExpected);\n    if (!info || uniques.get(info.name) && (!origin || !originIsObjectLiteralMethod(origin)) || kind === 1 /* Global */ && symbolToSortTextMap && !shouldIncludeSymbol(symbol, symbolToSortTextMap)) {\n      continue;\n    }\n    if (!isTypeOnlyLocation && isInJSFile(sourceFile) && symbolAppearsToBeTypeOnly(symbol)) {\n      continue;\n    }\n    const { name, needsConvertPropertyAccess } = info;\n    const originalSortText = (symbolToSortTextMap == null ? void 0 : symbolToSortTextMap[getSymbolId(symbol)]) ?? SortText.LocationPriority;\n    const sortText = isDeprecated(symbol, typeChecker) ? SortText.Deprecated(originalSortText) : originalSortText;\n    const entry = createCompletionEntry(\n      symbol,\n      sortText,\n      replacementToken,\n      contextToken,\n      location,\n      position,\n      sourceFile,\n      host,\n      program,\n      name,\n      needsConvertPropertyAccess,\n      origin,\n      recommendedCompletion,\n      propertyAccessToConvert,\n      isJsxInitializer,\n      importStatementCompletion,\n      useSemicolons,\n      compilerOptions,\n      preferences,\n      kind,\n      formatContext,\n      isJsxIdentifierExpected,\n      isRightOfOpenTag,\n      includeSymbol\n    );\n    if (!entry) {\n      continue;\n    }\n    const shouldShadowLaterSymbols = (!origin || originIsTypeOnlyAlias(origin)) && !(symbol.parent === void 0 && !some(symbol.declarations, (d) => d.getSourceFile() === location.getSourceFile()));\n    uniques.set(name, shouldShadowLaterSymbols);\n    insertSorted(\n      entries,\n      entry,\n      compareCompletionEntries,\n      /*equalityComparer*/\n      void 0,\n      /*allowDuplicates*/\n      true\n    );\n  }\n  log(\"getCompletionsAtPosition: getCompletionEntriesFromSymbols: \" + (timestamp() - start));\n  return {\n    has: (name) => uniques.has(name),\n    add: (name) => uniques.set(name, true)\n  };\n  function shouldIncludeSymbol(symbol, symbolToSortTextMap2) {\n    var _a;\n    let allFlags = symbol.flags;\n    if (location.parent && isExportAssignment(location.parent)) {\n      return true;\n    }\n    if (closestSymbolDeclaration && tryCast(closestSymbolDeclaration, isVariableDeclaration)) {\n      if (symbol.valueDeclaration === closestSymbolDeclaration) {\n        return false;\n      }\n      if (isBindingPattern(closestSymbolDeclaration.name) && closestSymbolDeclaration.name.elements.some((e) => e === symbol.valueDeclaration)) {\n        return false;\n      }\n    }\n    const symbolDeclaration = symbol.valueDeclaration ?? ((_a = symbol.declarations) == null ? void 0 : _a[0]);\n    if (closestSymbolDeclaration && symbolDeclaration) {\n      if (isParameter(closestSymbolDeclaration) && isParameter(symbolDeclaration)) {\n        const parameters = closestSymbolDeclaration.parent.parameters;\n        if (symbolDeclaration.pos >= closestSymbolDeclaration.pos && symbolDeclaration.pos < parameters.end) {\n          return false;\n        }\n      } else if (isTypeParameterDeclaration(closestSymbolDeclaration) && isTypeParameterDeclaration(symbolDeclaration)) {\n        if (closestSymbolDeclaration === symbolDeclaration && (contextToken == null ? void 0 : contextToken.kind) === 96 /* ExtendsKeyword */) {\n          return false;\n        }\n        if (isInTypeParameterDefault(contextToken) && !isInferTypeNode(closestSymbolDeclaration.parent)) {\n          const typeParameters = closestSymbolDeclaration.parent.typeParameters;\n          if (typeParameters && symbolDeclaration.pos >= closestSymbolDeclaration.pos && symbolDeclaration.pos < typeParameters.end) {\n            return false;\n          }\n        }\n      }\n    }\n    const symbolOrigin = skipAlias(symbol, typeChecker);\n    if (!!sourceFile.externalModuleIndicator && !compilerOptions.allowUmdGlobalAccess && symbolToSortTextMap2[getSymbolId(symbol)] === SortText.GlobalsOrKeywords && (symbolToSortTextMap2[getSymbolId(symbolOrigin)] === SortText.AutoImportSuggestions || symbolToSortTextMap2[getSymbolId(symbolOrigin)] === SortText.LocationPriority)) {\n      return false;\n    }\n    allFlags |= getCombinedLocalAndExportSymbolFlags(symbolOrigin);\n    if (isInRightSideOfInternalImportEqualsDeclaration(location)) {\n      return !!(allFlags & 1920 /* Namespace */);\n    }\n    if (isTypeOnlyLocation) {\n      return symbolCanBeReferencedAtTypeLocation(symbol, typeChecker);\n    }\n    return !!(allFlags & 111551 /* Value */);\n  }\n  function symbolAppearsToBeTypeOnly(symbol) {\n    var _a;\n    const flags = getCombinedLocalAndExportSymbolFlags(skipAlias(symbol, typeChecker));\n    return !(flags & 111551 /* Value */) && (!isInJSFile((_a = symbol.declarations) == null ? void 0 : _a[0]) || !!(flags & 788968 /* Type */));\n  }\n}\nfunction getLabelCompletionAtPosition(node) {\n  const entries = getLabelStatementCompletions(node);\n  if (entries.length) {\n    return {\n      isGlobalCompletion: false,\n      isMemberCompletion: false,\n      isNewIdentifierLocation: false,\n      entries,\n      defaultCommitCharacters: getDefaultCommitCharacters(\n        /*isNewIdentifierLocation*/\n        false\n      )\n    };\n  }\n}\nfunction getLabelStatementCompletions(node) {\n  const entries = [];\n  const uniques = /* @__PURE__ */ new Map();\n  let current = node;\n  while (current) {\n    if (isFunctionLike(current)) {\n      break;\n    }\n    if (isLabeledStatement(current)) {\n      const name = current.label.text;\n      if (!uniques.has(name)) {\n        uniques.set(name, true);\n        entries.push({\n          name,\n          kindModifiers: \"\" /* none */,\n          kind: \"label\" /* label */,\n          sortText: SortText.LocationPriority\n        });\n      }\n    }\n    current = current.parent;\n  }\n  return entries;\n}\nfunction getSymbolCompletionFromEntryId(program, log, sourceFile, position, entryId, host, preferences) {\n  if (entryId.source === \"SwitchCases/\" /* SwitchCases */) {\n    return { type: \"cases\" };\n  }\n  if (entryId.data) {\n    const autoImport = getAutoImportSymbolFromCompletionEntryData(entryId.name, entryId.data, program, host);\n    if (autoImport) {\n      const { contextToken: contextToken2, previousToken: previousToken2 } = getRelevantTokens(position, sourceFile);\n      return {\n        type: \"symbol\",\n        symbol: autoImport.symbol,\n        location: getTouchingPropertyName(sourceFile, position),\n        previousToken: previousToken2,\n        contextToken: contextToken2,\n        isJsxInitializer: false,\n        isTypeOnlyLocation: false,\n        origin: autoImport.origin\n      };\n    }\n  }\n  const compilerOptions = program.getCompilerOptions();\n  const completionData = getCompletionData(\n    program,\n    log,\n    sourceFile,\n    compilerOptions,\n    position,\n    { includeCompletionsForModuleExports: true, includeCompletionsWithInsertText: true },\n    entryId,\n    host,\n    /*formatContext*/\n    void 0\n  );\n  if (!completionData) {\n    return { type: \"none\" };\n  }\n  if (completionData.kind !== 0 /* Data */) {\n    return { type: \"request\", request: completionData };\n  }\n  const { symbols, literals, location, completionKind, symbolToOriginInfoMap, contextToken, previousToken, isJsxInitializer, isTypeOnlyLocation } = completionData;\n  const literal = find(literals, (l) => completionNameForLiteral(sourceFile, preferences, l) === entryId.name);\n  if (literal !== void 0) return { type: \"literal\", literal };\n  return firstDefined(symbols, (symbol, index) => {\n    const origin = symbolToOriginInfoMap[index];\n    const info = getCompletionEntryDisplayNameForSymbol(symbol, getEmitScriptTarget(compilerOptions), origin, completionKind, completionData.isJsxIdentifierExpected);\n    return info && info.name === entryId.name && (entryId.source === \"ClassMemberSnippet/\" /* ClassMemberSnippet */ && symbol.flags & 106500 /* ClassMember */ || entryId.source === \"ObjectLiteralMethodSnippet/\" /* ObjectLiteralMethodSnippet */ && symbol.flags & (4 /* Property */ | 8192 /* Method */) || getSourceFromOrigin(origin) === entryId.source || entryId.source === \"ObjectLiteralMemberWithComma/\" /* ObjectLiteralMemberWithComma */) ? { type: \"symbol\", symbol, location, origin, contextToken, previousToken, isJsxInitializer, isTypeOnlyLocation } : void 0;\n  }) || { type: \"none\" };\n}\nfunction getCompletionEntryDetails(program, log, sourceFile, position, entryId, host, formatContext, preferences, cancellationToken) {\n  const typeChecker = program.getTypeChecker();\n  const compilerOptions = program.getCompilerOptions();\n  const { name, source, data } = entryId;\n  const { previousToken, contextToken } = getRelevantTokens(position, sourceFile);\n  if (isInString(sourceFile, position, previousToken)) {\n    return ts_Completions_StringCompletions_exports.getStringLiteralCompletionDetails(name, sourceFile, position, previousToken, program, host, cancellationToken, preferences);\n  }\n  const symbolCompletion = getSymbolCompletionFromEntryId(program, log, sourceFile, position, entryId, host, preferences);\n  switch (symbolCompletion.type) {\n    case \"request\": {\n      const { request } = symbolCompletion;\n      switch (request.kind) {\n        case 1 /* JsDocTagName */:\n          return ts_JsDoc_exports.getJSDocTagNameCompletionDetails(name);\n        case 2 /* JsDocTag */:\n          return ts_JsDoc_exports.getJSDocTagCompletionDetails(name);\n        case 3 /* JsDocParameterName */:\n          return ts_JsDoc_exports.getJSDocParameterNameCompletionDetails(name);\n        case 4 /* Keywords */:\n          return some(request.keywordCompletions, (c) => c.name === name) ? createSimpleDetails(name, \"keyword\" /* keyword */, 5 /* keyword */) : void 0;\n        default:\n          return Debug.assertNever(request);\n      }\n    }\n    case \"symbol\": {\n      const { symbol, location, contextToken: contextToken2, origin, previousToken: previousToken2 } = symbolCompletion;\n      const { codeActions, sourceDisplay } = getCompletionEntryCodeActionsAndSourceDisplay(name, location, contextToken2, origin, symbol, program, host, compilerOptions, sourceFile, position, previousToken2, formatContext, preferences, data, source, cancellationToken);\n      const symbolName2 = originIsComputedPropertyName(origin) ? origin.symbolName : symbol.name;\n      return createCompletionDetailsForSymbol(symbol, symbolName2, typeChecker, sourceFile, location, cancellationToken, codeActions, sourceDisplay);\n    }\n    case \"literal\": {\n      const { literal } = symbolCompletion;\n      return createSimpleDetails(completionNameForLiteral(sourceFile, preferences, literal), \"string\" /* string */, typeof literal === \"string\" ? 8 /* stringLiteral */ : 7 /* numericLiteral */);\n    }\n    case \"cases\": {\n      const snippets = getExhaustiveCaseSnippets(\n        contextToken.parent,\n        sourceFile,\n        preferences,\n        program.getCompilerOptions(),\n        host,\n        program,\n        /*formatContext*/\n        void 0\n      );\n      if (snippets == null ? void 0 : snippets.importAdder.hasFixes()) {\n        const { entry, importAdder } = snippets;\n        const changes = ts_textChanges_exports.ChangeTracker.with(\n          { host, formatContext, preferences },\n          importAdder.writeFixes\n        );\n        return {\n          name: entry.name,\n          kind: \"\" /* unknown */,\n          kindModifiers: \"\",\n          displayParts: [],\n          sourceDisplay: void 0,\n          codeActions: [{\n            changes,\n            description: diagnosticToString([Diagnostics.Includes_imports_of_types_referenced_by_0, name])\n          }]\n        };\n      }\n      return {\n        name,\n        kind: \"\" /* unknown */,\n        kindModifiers: \"\",\n        displayParts: [],\n        sourceDisplay: void 0\n      };\n    }\n    case \"none\":\n      return allKeywordsCompletions().some((c) => c.name === name) ? createSimpleDetails(name, \"keyword\" /* keyword */, 5 /* keyword */) : void 0;\n    default:\n      Debug.assertNever(symbolCompletion);\n  }\n}\nfunction createSimpleDetails(name, kind, kind2) {\n  return createCompletionDetails(name, \"\" /* none */, kind, [displayPart(name, kind2)]);\n}\nfunction createCompletionDetailsForSymbol(symbol, name, checker, sourceFile, location, cancellationToken, codeActions, sourceDisplay) {\n  const { displayParts, documentation, symbolKind, tags } = checker.runWithCancellationToken(cancellationToken, (checker2) => ts_SymbolDisplay_exports.getSymbolDisplayPartsDocumentationAndSymbolKind(checker2, symbol, sourceFile, location, location, 7 /* All */));\n  return createCompletionDetails(name, ts_SymbolDisplay_exports.getSymbolModifiers(checker, symbol), symbolKind, displayParts, documentation, tags, codeActions, sourceDisplay);\n}\nfunction createCompletionDetails(name, kindModifiers, kind, displayParts, documentation, tags, codeActions, source) {\n  return { name, kindModifiers, kind, displayParts, documentation, tags, codeActions, source, sourceDisplay: source };\n}\nfunction getCompletionEntryCodeActionsAndSourceDisplay(name, location, contextToken, origin, symbol, program, host, compilerOptions, sourceFile, position, previousToken, formatContext, preferences, data, source, cancellationToken) {\n  if (data == null ? void 0 : data.moduleSpecifier) {\n    if (previousToken && getImportStatementCompletionInfo(contextToken || previousToken, sourceFile).replacementSpan) {\n      return { codeActions: void 0, sourceDisplay: [textPart(data.moduleSpecifier)] };\n    }\n  }\n  if (source === \"ClassMemberSnippet/\" /* ClassMemberSnippet */) {\n    const { importAdder, eraseRange } = getEntryForMemberCompletion(\n      host,\n      program,\n      compilerOptions,\n      preferences,\n      name,\n      symbol,\n      location,\n      position,\n      contextToken,\n      formatContext\n    );\n    if ((importAdder == null ? void 0 : importAdder.hasFixes()) || eraseRange) {\n      const changes = ts_textChanges_exports.ChangeTracker.with(\n        { host, formatContext, preferences },\n        (tracker) => {\n          if (importAdder) {\n            importAdder.writeFixes(tracker);\n          }\n          if (eraseRange) {\n            tracker.deleteRange(sourceFile, eraseRange);\n          }\n        }\n      );\n      return {\n        sourceDisplay: void 0,\n        codeActions: [{\n          changes,\n          description: (importAdder == null ? void 0 : importAdder.hasFixes()) ? diagnosticToString([Diagnostics.Includes_imports_of_types_referenced_by_0, name]) : diagnosticToString([Diagnostics.Update_modifiers_of_0, name])\n        }]\n      };\n    }\n  }\n  if (originIsTypeOnlyAlias(origin)) {\n    const codeAction2 = ts_codefix_exports.getPromoteTypeOnlyCompletionAction(\n      sourceFile,\n      origin.declaration.name,\n      program,\n      host,\n      formatContext,\n      preferences\n    );\n    Debug.assertIsDefined(codeAction2, \"Expected to have a code action for promoting type-only alias\");\n    return { codeActions: [codeAction2], sourceDisplay: void 0 };\n  }\n  if (source === \"ObjectLiteralMemberWithComma/\" /* ObjectLiteralMemberWithComma */ && contextToken) {\n    const changes = ts_textChanges_exports.ChangeTracker.with(\n      { host, formatContext, preferences },\n      (tracker) => tracker.insertText(sourceFile, contextToken.end, \",\")\n    );\n    if (changes) {\n      return {\n        sourceDisplay: void 0,\n        codeActions: [{\n          changes,\n          description: diagnosticToString([Diagnostics.Add_missing_comma_for_object_member_completion_0, name])\n        }]\n      };\n    }\n  }\n  if (!origin || !(originIsExport(origin) || originIsResolvedExport(origin))) {\n    return { codeActions: void 0, sourceDisplay: void 0 };\n  }\n  const checker = origin.isFromPackageJson ? host.getPackageJsonAutoImportProvider().getTypeChecker() : program.getTypeChecker();\n  const { moduleSymbol } = origin;\n  const targetSymbol = checker.getMergedSymbol(skipAlias(symbol.exportSymbol || symbol, checker));\n  const isJsxOpeningTagName = (contextToken == null ? void 0 : contextToken.kind) === 30 /* LessThanToken */ && isJsxOpeningLikeElement(contextToken.parent);\n  const { moduleSpecifier, codeAction } = ts_codefix_exports.getImportCompletionAction(\n    targetSymbol,\n    moduleSymbol,\n    data == null ? void 0 : data.exportMapKey,\n    sourceFile,\n    name,\n    isJsxOpeningTagName,\n    host,\n    program,\n    formatContext,\n    previousToken && isIdentifier(previousToken) ? previousToken.getStart(sourceFile) : position,\n    preferences,\n    cancellationToken\n  );\n  Debug.assert(!(data == null ? void 0 : data.moduleSpecifier) || moduleSpecifier === data.moduleSpecifier);\n  return { sourceDisplay: [textPart(moduleSpecifier)], codeActions: [codeAction] };\n}\nfunction getCompletionEntrySymbol(program, log, sourceFile, position, entryId, host, preferences) {\n  const completion = getSymbolCompletionFromEntryId(program, log, sourceFile, position, entryId, host, preferences);\n  return completion.type === \"symbol\" ? completion.symbol : void 0;\n}\nvar CompletionKind = /* @__PURE__ */ ((CompletionKind2) => {\n  CompletionKind2[CompletionKind2[\"ObjectPropertyDeclaration\"] = 0] = \"ObjectPropertyDeclaration\";\n  CompletionKind2[CompletionKind2[\"Global\"] = 1] = \"Global\";\n  CompletionKind2[CompletionKind2[\"PropertyAccess\"] = 2] = \"PropertyAccess\";\n  CompletionKind2[CompletionKind2[\"MemberLike\"] = 3] = \"MemberLike\";\n  CompletionKind2[CompletionKind2[\"String\"] = 4] = \"String\";\n  CompletionKind2[CompletionKind2[\"None\"] = 5] = \"None\";\n  return CompletionKind2;\n})(CompletionKind || {});\nfunction getRecommendedCompletion(previousToken, contextualType, checker) {\n  return firstDefined(contextualType && (contextualType.isUnion() ? contextualType.types : [contextualType]), (type) => {\n    const symbol = type && type.symbol;\n    return symbol && (symbol.flags & (8 /* EnumMember */ | 384 /* Enum */ | 32 /* Class */) && !isAbstractConstructorSymbol(symbol)) ? getFirstSymbolInChain(symbol, previousToken, checker) : void 0;\n  });\n}\nfunction getContextualType(previousToken, position, sourceFile, checker) {\n  const { parent: parent2 } = previousToken;\n  switch (previousToken.kind) {\n    case 80 /* Identifier */:\n      return getContextualTypeFromParent(previousToken, checker);\n    case 64 /* EqualsToken */:\n      switch (parent2.kind) {\n        case 261 /* VariableDeclaration */:\n          return checker.getContextualType(parent2.initializer);\n        // TODO: GH#18217\n        case 227 /* BinaryExpression */:\n          return checker.getTypeAtLocation(parent2.left);\n        case 292 /* JsxAttribute */:\n          return checker.getContextualTypeForJsxAttribute(parent2);\n        default:\n          return void 0;\n      }\n    case 105 /* NewKeyword */:\n      return checker.getContextualType(parent2);\n    case 84 /* CaseKeyword */:\n      const caseClause = tryCast(parent2, isCaseClause);\n      return caseClause ? getSwitchedType(caseClause, checker) : void 0;\n    case 19 /* OpenBraceToken */:\n      return isJsxExpression(parent2) && !isJsxElement(parent2.parent) && !isJsxFragment(parent2.parent) ? checker.getContextualTypeForJsxAttribute(parent2.parent) : void 0;\n    default:\n      const argInfo = ts_SignatureHelp_exports.getArgumentInfoForCompletions(previousToken, position, sourceFile, checker);\n      return argInfo ? checker.getContextualTypeForArgumentAtIndex(argInfo.invocation, argInfo.argumentIndex) : isEqualityOperatorKind(previousToken.kind) && isBinaryExpression(parent2) && isEqualityOperatorKind(parent2.operatorToken.kind) ? (\n        // completion at `x ===/**/` should be for the right side\n        checker.getTypeAtLocation(parent2.left)\n      ) : checker.getContextualType(previousToken, 4 /* Completions */) || checker.getContextualType(previousToken);\n  }\n}\nfunction getFirstSymbolInChain(symbol, enclosingDeclaration, checker) {\n  const chain = checker.getAccessibleSymbolChain(\n    symbol,\n    enclosingDeclaration,\n    /*meaning*/\n    -1 /* All */,\n    /*useOnlyExternalAliasing*/\n    false\n  );\n  if (chain) return first(chain);\n  return symbol.parent && (isModuleSymbol(symbol.parent) ? symbol : getFirstSymbolInChain(symbol.parent, enclosingDeclaration, checker));\n}\nfunction isModuleSymbol(symbol) {\n  var _a;\n  return !!((_a = symbol.declarations) == null ? void 0 : _a.some((d) => d.kind === 308 /* SourceFile */));\n}\nfunction getCompletionData(program, log, sourceFile, compilerOptions, position, preferences, detailsEntryId, host, formatContext, cancellationToken) {\n  const typeChecker = program.getTypeChecker();\n  const inCheckedFile = isCheckedFile(sourceFile, compilerOptions);\n  let start = timestamp();\n  let currentToken = getTokenAtPosition(sourceFile, position);\n  log(\"getCompletionData: Get current token: \" + (timestamp() - start));\n  start = timestamp();\n  const insideComment = isInComment(sourceFile, position, currentToken);\n  log(\"getCompletionData: Is inside comment: \" + (timestamp() - start));\n  let insideJsDocTagTypeExpression = false;\n  let insideJsDocImportTag = false;\n  let isInSnippetScope = false;\n  if (insideComment) {\n    if (hasDocComment(sourceFile, position)) {\n      if (sourceFile.text.charCodeAt(position - 1) === 64 /* at */) {\n        return { kind: 1 /* JsDocTagName */ };\n      } else {\n        const lineStart = getLineStartPositionForPosition(position, sourceFile);\n        if (!/[^*|\\s(/)]/.test(sourceFile.text.substring(lineStart, position))) {\n          return { kind: 2 /* JsDocTag */ };\n        }\n      }\n    }\n    const tag = getJsDocTagAtPosition(currentToken, position);\n    if (tag) {\n      if (tag.tagName.pos <= position && position <= tag.tagName.end) {\n        return { kind: 1 /* JsDocTagName */ };\n      }\n      if (isJSDocImportTag(tag)) {\n        insideJsDocImportTag = true;\n      } else {\n        const typeExpression = tryGetTypeExpressionFromTag(tag);\n        if (typeExpression) {\n          currentToken = getTokenAtPosition(sourceFile, position);\n          if (!currentToken || !isDeclarationName(currentToken) && (currentToken.parent.kind !== 349 /* JSDocPropertyTag */ || currentToken.parent.name !== currentToken)) {\n            insideJsDocTagTypeExpression = isCurrentlyEditingNode(typeExpression);\n          }\n        }\n        if (!insideJsDocTagTypeExpression && isJSDocParameterTag(tag) && (nodeIsMissing(tag.name) || tag.name.pos <= position && position <= tag.name.end)) {\n          return { kind: 3 /* JsDocParameterName */, tag };\n        }\n      }\n    }\n    if (!insideJsDocTagTypeExpression && !insideJsDocImportTag) {\n      log(\"Returning an empty list because completion was inside a regular comment or plain text part of a JsDoc comment.\");\n      return void 0;\n    }\n  }\n  start = timestamp();\n  const isJsOnlyLocation = !insideJsDocTagTypeExpression && !insideJsDocImportTag && isSourceFileJS(sourceFile);\n  const tokens = getRelevantTokens(position, sourceFile);\n  const previousToken = tokens.previousToken;\n  let contextToken = tokens.contextToken;\n  log(\"getCompletionData: Get previous token: \" + (timestamp() - start));\n  let node = currentToken;\n  let propertyAccessToConvert;\n  let isRightOfDot = false;\n  let isRightOfQuestionDot = false;\n  let isRightOfOpenTag = false;\n  let isStartingCloseTag = false;\n  let isJsxInitializer = false;\n  let isJsxIdentifierExpected = false;\n  let importStatementCompletion;\n  let location = getTouchingPropertyName(sourceFile, position);\n  let keywordFilters = 0 /* None */;\n  let isNewIdentifierLocation = false;\n  let flags = 0 /* None */;\n  let defaultCommitCharacters;\n  if (contextToken) {\n    const importStatementCompletionInfo = getImportStatementCompletionInfo(contextToken, sourceFile);\n    if (importStatementCompletionInfo.keywordCompletion) {\n      if (importStatementCompletionInfo.isKeywordOnlyCompletion) {\n        return {\n          kind: 4 /* Keywords */,\n          keywordCompletions: [keywordToCompletionEntry(importStatementCompletionInfo.keywordCompletion)],\n          isNewIdentifierLocation: importStatementCompletionInfo.isNewIdentifierLocation\n        };\n      }\n      keywordFilters = keywordFiltersFromSyntaxKind(importStatementCompletionInfo.keywordCompletion);\n    }\n    if (importStatementCompletionInfo.replacementSpan && preferences.includeCompletionsForImportStatements && preferences.includeCompletionsWithInsertText) {\n      flags |= 2 /* IsImportStatementCompletion */;\n      importStatementCompletion = importStatementCompletionInfo;\n      isNewIdentifierLocation = importStatementCompletionInfo.isNewIdentifierLocation;\n    }\n    if (!importStatementCompletionInfo.replacementSpan && isCompletionListBlocker(contextToken)) {\n      log(\"Returning an empty list because completion was requested in an invalid position.\");\n      return keywordFilters ? keywordCompletionData(keywordFilters, isJsOnlyLocation, computeCommitCharactersAndIsNewIdentifier().isNewIdentifierLocation) : void 0;\n    }\n    let parent2 = contextToken.parent;\n    if (contextToken.kind === 25 /* DotToken */ || contextToken.kind === 29 /* QuestionDotToken */) {\n      isRightOfDot = contextToken.kind === 25 /* DotToken */;\n      isRightOfQuestionDot = contextToken.kind === 29 /* QuestionDotToken */;\n      switch (parent2.kind) {\n        case 212 /* PropertyAccessExpression */:\n          propertyAccessToConvert = parent2;\n          node = propertyAccessToConvert.expression;\n          const leftmostAccessExpression = getLeftmostAccessExpression(propertyAccessToConvert);\n          if (nodeIsMissing(leftmostAccessExpression) || (isCallExpression(node) || isFunctionLike(node)) && node.end === contextToken.pos && node.getChildCount(sourceFile) && last(node.getChildren(sourceFile)).kind !== 22 /* CloseParenToken */) {\n            return void 0;\n          }\n          break;\n        case 167 /* QualifiedName */:\n          node = parent2.left;\n          break;\n        case 268 /* ModuleDeclaration */:\n          node = parent2.name;\n          break;\n        case 206 /* ImportType */:\n          node = parent2;\n          break;\n        case 237 /* MetaProperty */:\n          node = parent2.getFirstToken(sourceFile);\n          Debug.assert(node.kind === 102 /* ImportKeyword */ || node.kind === 105 /* NewKeyword */);\n          break;\n        default:\n          return void 0;\n      }\n    } else if (!importStatementCompletion) {\n      if (parent2 && parent2.kind === 212 /* PropertyAccessExpression */) {\n        contextToken = parent2;\n        parent2 = parent2.parent;\n      }\n      if (currentToken.parent === location) {\n        switch (currentToken.kind) {\n          case 32 /* GreaterThanToken */:\n            if (currentToken.parent.kind === 285 /* JsxElement */ || currentToken.parent.kind === 287 /* JsxOpeningElement */) {\n              location = currentToken;\n            }\n            break;\n          case 44 /* SlashToken */:\n            if (currentToken.parent.kind === 286 /* JsxSelfClosingElement */) {\n              location = currentToken;\n            }\n            break;\n        }\n      }\n      switch (parent2.kind) {\n        case 288 /* JsxClosingElement */:\n          if (contextToken.kind === 44 /* SlashToken */) {\n            isStartingCloseTag = true;\n            location = contextToken;\n          }\n          break;\n        case 227 /* BinaryExpression */:\n          if (!binaryExpressionMayBeOpenTag(parent2)) {\n            break;\n          }\n        // falls through\n        case 286 /* JsxSelfClosingElement */:\n        case 285 /* JsxElement */:\n        case 287 /* JsxOpeningElement */:\n          isJsxIdentifierExpected = true;\n          if (contextToken.kind === 30 /* LessThanToken */) {\n            isRightOfOpenTag = true;\n            location = contextToken;\n          }\n          break;\n        case 295 /* JsxExpression */:\n        case 294 /* JsxSpreadAttribute */:\n          if (previousToken.kind === 20 /* CloseBraceToken */ || previousToken.kind === 80 /* Identifier */ && previousToken.parent.kind === 292 /* JsxAttribute */) {\n            isJsxIdentifierExpected = true;\n          }\n          break;\n        case 292 /* JsxAttribute */:\n          if (parent2.initializer === previousToken && previousToken.end < position) {\n            isJsxIdentifierExpected = true;\n            break;\n          }\n          switch (previousToken.kind) {\n            case 64 /* EqualsToken */:\n              isJsxInitializer = true;\n              break;\n            case 80 /* Identifier */:\n              isJsxIdentifierExpected = true;\n              if (parent2 !== previousToken.parent && !parent2.initializer && findChildOfKind(parent2, 64 /* EqualsToken */, sourceFile)) {\n                isJsxInitializer = previousToken;\n              }\n          }\n          break;\n      }\n    }\n  }\n  const semanticStart = timestamp();\n  let completionKind = 5 /* None */;\n  let hasUnresolvedAutoImports = false;\n  let symbols = [];\n  let importSpecifierResolver;\n  const symbolToOriginInfoMap = [];\n  const symbolToSortTextMap = [];\n  const seenPropertySymbols = /* @__PURE__ */ new Set();\n  const isTypeOnlyLocation = isTypeOnlyCompletion();\n  const getModuleSpecifierResolutionHost = memoizeOne((isFromPackageJson) => {\n    return createModuleSpecifierResolutionHost(isFromPackageJson ? host.getPackageJsonAutoImportProvider() : program, host);\n  });\n  if (isRightOfDot || isRightOfQuestionDot) {\n    getTypeScriptMemberSymbols();\n  } else if (isRightOfOpenTag) {\n    symbols = typeChecker.getJsxIntrinsicTagNamesAt(location);\n    Debug.assertEachIsDefined(symbols, \"getJsxIntrinsicTagNames() should all be defined\");\n    tryGetGlobalSymbols();\n    completionKind = 1 /* Global */;\n    keywordFilters = 0 /* None */;\n  } else if (isStartingCloseTag) {\n    const tagName = contextToken.parent.parent.openingElement.tagName;\n    const tagSymbol = typeChecker.getSymbolAtLocation(tagName);\n    if (tagSymbol) {\n      symbols = [tagSymbol];\n    }\n    completionKind = 1 /* Global */;\n    keywordFilters = 0 /* None */;\n  } else {\n    if (!tryGetGlobalSymbols()) {\n      return keywordFilters ? keywordCompletionData(keywordFilters, isJsOnlyLocation, isNewIdentifierLocation) : void 0;\n    }\n  }\n  log(\"getCompletionData: Semantic work: \" + (timestamp() - semanticStart));\n  const contextualType = previousToken && getContextualType(previousToken, position, sourceFile, typeChecker);\n  const isLiteralExpected = !tryCast(previousToken, isStringLiteralLike) && !isJsxIdentifierExpected;\n  const literals = !isLiteralExpected ? [] : mapDefined(\n    contextualType && (contextualType.isUnion() ? contextualType.types : [contextualType]),\n    (t) => t.isLiteral() && !(t.flags & 1024 /* EnumLiteral */) ? t.value : void 0\n  );\n  const recommendedCompletion = previousToken && contextualType && getRecommendedCompletion(previousToken, contextualType, typeChecker);\n  return {\n    kind: 0 /* Data */,\n    symbols,\n    completionKind,\n    isInSnippetScope,\n    propertyAccessToConvert,\n    isNewIdentifierLocation,\n    location,\n    keywordFilters,\n    literals,\n    symbolToOriginInfoMap,\n    recommendedCompletion,\n    previousToken,\n    contextToken,\n    isJsxInitializer,\n    insideJsDocTagTypeExpression,\n    symbolToSortTextMap,\n    isTypeOnlyLocation,\n    isJsxIdentifierExpected,\n    isRightOfOpenTag,\n    isRightOfDotOrQuestionDot: isRightOfDot || isRightOfQuestionDot,\n    importStatementCompletion,\n    hasUnresolvedAutoImports,\n    flags,\n    defaultCommitCharacters\n  };\n  function isTagWithTypeExpression(tag) {\n    switch (tag.kind) {\n      case 342 /* JSDocParameterTag */:\n      case 349 /* JSDocPropertyTag */:\n      case 343 /* JSDocReturnTag */:\n      case 345 /* JSDocTypeTag */:\n      case 347 /* JSDocTypedefTag */:\n      case 350 /* JSDocThrowsTag */:\n      case 351 /* JSDocSatisfiesTag */:\n        return true;\n      case 346 /* JSDocTemplateTag */:\n        return !!tag.constraint;\n      default:\n        return false;\n    }\n  }\n  function tryGetTypeExpressionFromTag(tag) {\n    if (isTagWithTypeExpression(tag)) {\n      const typeExpression = isJSDocTemplateTag(tag) ? tag.constraint : tag.typeExpression;\n      return typeExpression && typeExpression.kind === 310 /* JSDocTypeExpression */ ? typeExpression : void 0;\n    }\n    if (isJSDocAugmentsTag(tag) || isJSDocImplementsTag(tag)) {\n      return tag.class;\n    }\n    return void 0;\n  }\n  function getTypeScriptMemberSymbols() {\n    completionKind = 2 /* PropertyAccess */;\n    const isImportType = isLiteralImportTypeNode(node);\n    const isTypeLocation = isImportType && !node.isTypeOf || isPartOfTypeNode(node.parent) || isPossiblyTypeArgumentPosition(contextToken, sourceFile, typeChecker);\n    const isRhsOfImportDeclaration = isInRightSideOfInternalImportEqualsDeclaration(node);\n    if (isEntityName(node) || isImportType || isPropertyAccessExpression(node)) {\n      const isNamespaceName = isModuleDeclaration(node.parent);\n      if (isNamespaceName) {\n        isNewIdentifierLocation = true;\n        defaultCommitCharacters = [];\n      }\n      let symbol = typeChecker.getSymbolAtLocation(node);\n      if (symbol) {\n        symbol = skipAlias(symbol, typeChecker);\n        if (symbol.flags & (1536 /* Module */ | 384 /* Enum */)) {\n          const exportedSymbols = typeChecker.getExportsOfModule(symbol);\n          Debug.assertEachIsDefined(exportedSymbols, \"getExportsOfModule() should all be defined\");\n          const isValidValueAccess = (symbol2) => typeChecker.isValidPropertyAccess(isImportType ? node : node.parent, symbol2.name);\n          const isValidTypeAccess = (symbol2) => symbolCanBeReferencedAtTypeLocation(symbol2, typeChecker);\n          const isValidAccess = isNamespaceName ? (symbol2) => {\n            var _a;\n            return !!(symbol2.flags & 1920 /* Namespace */) && !((_a = symbol2.declarations) == null ? void 0 : _a.every((d) => d.parent === node.parent));\n          } : isRhsOfImportDeclaration ? (\n            // Any kind is allowed when dotting off namespace in internal import equals declaration\n            (symbol2) => isValidTypeAccess(symbol2) || isValidValueAccess(symbol2)\n          ) : isTypeLocation || insideJsDocTagTypeExpression ? isValidTypeAccess : isValidValueAccess;\n          for (const exportedSymbol of exportedSymbols) {\n            if (isValidAccess(exportedSymbol)) {\n              symbols.push(exportedSymbol);\n            }\n          }\n          if (!isTypeLocation && !insideJsDocTagTypeExpression && symbol.declarations && symbol.declarations.some((d) => d.kind !== 308 /* SourceFile */ && d.kind !== 268 /* ModuleDeclaration */ && d.kind !== 267 /* EnumDeclaration */)) {\n            let type = typeChecker.getTypeOfSymbolAtLocation(symbol, node).getNonOptionalType();\n            let insertQuestionDot = false;\n            if (type.isNullableType()) {\n              const canCorrectToQuestionDot = isRightOfDot && !isRightOfQuestionDot && preferences.includeAutomaticOptionalChainCompletions !== false;\n              if (canCorrectToQuestionDot || isRightOfQuestionDot) {\n                type = type.getNonNullableType();\n                if (canCorrectToQuestionDot) {\n                  insertQuestionDot = true;\n                }\n              }\n            }\n            addTypeProperties(type, !!(node.flags & 65536 /* AwaitContext */), insertQuestionDot);\n          }\n          return;\n        }\n      }\n    }\n    if (!isTypeLocation || isInTypeQuery(node)) {\n      typeChecker.tryGetThisTypeAt(\n        node,\n        /*includeGlobalThis*/\n        false\n      );\n      let type = typeChecker.getTypeAtLocation(node).getNonOptionalType();\n      if (!isTypeLocation) {\n        let insertQuestionDot = false;\n        if (type.isNullableType()) {\n          const canCorrectToQuestionDot = isRightOfDot && !isRightOfQuestionDot && preferences.includeAutomaticOptionalChainCompletions !== false;\n          if (canCorrectToQuestionDot || isRightOfQuestionDot) {\n            type = type.getNonNullableType();\n            if (canCorrectToQuestionDot) {\n              insertQuestionDot = true;\n            }\n          }\n        }\n        addTypeProperties(type, !!(node.flags & 65536 /* AwaitContext */), insertQuestionDot);\n      } else {\n        addTypeProperties(\n          type.getNonNullableType(),\n          /*insertAwait*/\n          false,\n          /*insertQuestionDot*/\n          false\n        );\n      }\n    }\n  }\n  function addTypeProperties(type, insertAwait, insertQuestionDot) {\n    if (type.getStringIndexType()) {\n      isNewIdentifierLocation = true;\n      defaultCommitCharacters = [];\n    }\n    if (isRightOfQuestionDot && some(type.getCallSignatures())) {\n      isNewIdentifierLocation = true;\n      defaultCommitCharacters ?? (defaultCommitCharacters = allCommitCharacters);\n    }\n    const propertyAccess = node.kind === 206 /* ImportType */ ? node : node.parent;\n    if (inCheckedFile) {\n      for (const symbol of type.getApparentProperties()) {\n        if (typeChecker.isValidPropertyAccessForCompletions(propertyAccess, type, symbol)) {\n          addPropertySymbol(\n            symbol,\n            /*insertAwait*/\n            false,\n            insertQuestionDot\n          );\n        }\n      }\n    } else {\n      symbols.push(...filter(getPropertiesForCompletion(type, typeChecker), (s) => typeChecker.isValidPropertyAccessForCompletions(propertyAccess, type, s)));\n    }\n    if (insertAwait && preferences.includeCompletionsWithInsertText) {\n      const promiseType = typeChecker.getPromisedTypeOfPromise(type);\n      if (promiseType) {\n        for (const symbol of promiseType.getApparentProperties()) {\n          if (typeChecker.isValidPropertyAccessForCompletions(propertyAccess, promiseType, symbol)) {\n            addPropertySymbol(\n              symbol,\n              /*insertAwait*/\n              true,\n              insertQuestionDot\n            );\n          }\n        }\n      }\n    }\n  }\n  function addPropertySymbol(symbol, insertAwait, insertQuestionDot) {\n    var _a;\n    const computedPropertyName = firstDefined(symbol.declarations, (decl) => tryCast(getNameOfDeclaration(decl), isComputedPropertyName));\n    if (computedPropertyName) {\n      const leftMostName = getLeftMostName(computedPropertyName.expression);\n      const nameSymbol = leftMostName && typeChecker.getSymbolAtLocation(leftMostName);\n      const firstAccessibleSymbol = nameSymbol && getFirstSymbolInChain(nameSymbol, contextToken, typeChecker);\n      const firstAccessibleSymbolId = firstAccessibleSymbol && getSymbolId(firstAccessibleSymbol);\n      if (firstAccessibleSymbolId && addToSeen(seenPropertySymbols, firstAccessibleSymbolId)) {\n        const index = symbols.length;\n        symbols.push(firstAccessibleSymbol);\n        symbolToSortTextMap[getSymbolId(firstAccessibleSymbol)] = SortText.GlobalsOrKeywords;\n        const moduleSymbol = firstAccessibleSymbol.parent;\n        if (!moduleSymbol || !isExternalModuleSymbol(moduleSymbol) || typeChecker.tryGetMemberInModuleExportsAndProperties(firstAccessibleSymbol.name, moduleSymbol) !== firstAccessibleSymbol) {\n          symbolToOriginInfoMap[index] = { kind: getNullableSymbolOriginInfoKind(2 /* SymbolMemberNoExport */) };\n        } else {\n          const fileName = isExternalModuleNameRelative(stripQuotes(moduleSymbol.name)) ? (_a = getSourceFileOfModule(moduleSymbol)) == null ? void 0 : _a.fileName : void 0;\n          const { moduleSpecifier } = (importSpecifierResolver || (importSpecifierResolver = ts_codefix_exports.createImportSpecifierResolver(sourceFile, program, host, preferences))).getModuleSpecifierForBestExportInfo(\n            [{\n              exportKind: 0 /* Named */,\n              moduleFileName: fileName,\n              isFromPackageJson: false,\n              moduleSymbol,\n              symbol: firstAccessibleSymbol,\n              targetFlags: skipAlias(firstAccessibleSymbol, typeChecker).flags\n            }],\n            position,\n            isValidTypeOnlyAliasUseSite(location)\n          ) || {};\n          if (moduleSpecifier) {\n            const origin = {\n              kind: getNullableSymbolOriginInfoKind(6 /* SymbolMemberExport */),\n              moduleSymbol,\n              isDefaultExport: false,\n              symbolName: firstAccessibleSymbol.name,\n              exportName: firstAccessibleSymbol.name,\n              fileName,\n              moduleSpecifier\n            };\n            symbolToOriginInfoMap[index] = origin;\n          }\n        }\n      } else if (preferences.includeCompletionsWithInsertText) {\n        if (firstAccessibleSymbolId && seenPropertySymbols.has(firstAccessibleSymbolId)) {\n          return;\n        }\n        addSymbolOriginInfo(symbol);\n        addSymbolSortInfo(symbol);\n        symbols.push(symbol);\n      }\n    } else {\n      addSymbolOriginInfo(symbol);\n      addSymbolSortInfo(symbol);\n      symbols.push(symbol);\n    }\n    function addSymbolSortInfo(symbol2) {\n      if (isStaticProperty(symbol2)) {\n        symbolToSortTextMap[getSymbolId(symbol2)] = SortText.LocalDeclarationPriority;\n      }\n    }\n    function addSymbolOriginInfo(symbol2) {\n      if (preferences.includeCompletionsWithInsertText) {\n        if (insertAwait && addToSeen(seenPropertySymbols, getSymbolId(symbol2))) {\n          symbolToOriginInfoMap[symbols.length] = { kind: getNullableSymbolOriginInfoKind(8 /* Promise */) };\n        } else if (insertQuestionDot) {\n          symbolToOriginInfoMap[symbols.length] = { kind: 16 /* Nullable */ };\n        }\n      }\n    }\n    function getNullableSymbolOriginInfoKind(kind) {\n      return insertQuestionDot ? kind | 16 /* Nullable */ : kind;\n    }\n  }\n  function getLeftMostName(e) {\n    return isIdentifier(e) ? e : isPropertyAccessExpression(e) ? getLeftMostName(e.expression) : void 0;\n  }\n  function tryGetGlobalSymbols() {\n    const result = tryGetObjectTypeLiteralInTypeArgumentCompletionSymbols() || tryGetObjectLikeCompletionSymbols() || tryGetImportCompletionSymbols() || tryGetImportOrExportClauseCompletionSymbols() || tryGetImportAttributesCompletionSymbols() || tryGetLocalNamedExportCompletionSymbols() || tryGetConstructorCompletion() || tryGetClassLikeCompletionSymbols() || tryGetJsxCompletionSymbols() || (getGlobalCompletions(), 1 /* Success */);\n    return result === 1 /* Success */;\n  }\n  function tryGetConstructorCompletion() {\n    if (!tryGetConstructorLikeCompletionContainer(contextToken)) return 0 /* Continue */;\n    completionKind = 5 /* None */;\n    isNewIdentifierLocation = true;\n    keywordFilters = 4 /* ConstructorParameterKeywords */;\n    return 1 /* Success */;\n  }\n  function tryGetJsxCompletionSymbols() {\n    const jsxContainer = tryGetContainingJsxElement(contextToken);\n    const attrsType = jsxContainer && typeChecker.getContextualType(jsxContainer.attributes);\n    if (!attrsType) return 0 /* Continue */;\n    const completionsType = jsxContainer && typeChecker.getContextualType(jsxContainer.attributes, 4 /* Completions */);\n    symbols = concatenate(symbols, filterJsxAttributes(getPropertiesForObjectExpression(attrsType, completionsType, jsxContainer.attributes, typeChecker), jsxContainer.attributes.properties));\n    setSortTextToOptionalMember();\n    completionKind = 3 /* MemberLike */;\n    isNewIdentifierLocation = false;\n    return 1 /* Success */;\n  }\n  function tryGetImportCompletionSymbols() {\n    if (!importStatementCompletion) return 0 /* Continue */;\n    isNewIdentifierLocation = true;\n    collectAutoImports();\n    return 1 /* Success */;\n  }\n  function getGlobalCompletions() {\n    keywordFilters = tryGetFunctionLikeBodyCompletionContainer(contextToken) ? 5 /* FunctionLikeBodyKeywords */ : 1 /* All */;\n    completionKind = 1 /* Global */;\n    ({ isNewIdentifierLocation, defaultCommitCharacters } = computeCommitCharactersAndIsNewIdentifier());\n    if (previousToken !== contextToken) {\n      Debug.assert(!!previousToken, \"Expected 'contextToken' to be defined when different from 'previousToken'.\");\n    }\n    const adjustedPosition = previousToken !== contextToken ? previousToken.getStart() : position;\n    const scopeNode = getScopeNode(contextToken, adjustedPosition, sourceFile) || sourceFile;\n    isInSnippetScope = isSnippetScope(scopeNode);\n    const symbolMeanings = (isTypeOnlyLocation ? 0 /* None */ : 111551 /* Value */) | 788968 /* Type */ | 1920 /* Namespace */ | 2097152 /* Alias */;\n    const typeOnlyAliasNeedsPromotion = previousToken && !isValidTypeOnlyAliasUseSite(previousToken);\n    symbols = concatenate(symbols, typeChecker.getSymbolsInScope(scopeNode, symbolMeanings));\n    Debug.assertEachIsDefined(symbols, \"getSymbolsInScope() should all be defined\");\n    for (let i = 0; i < symbols.length; i++) {\n      const symbol = symbols[i];\n      if (!typeChecker.isArgumentsSymbol(symbol) && !some(symbol.declarations, (d) => d.getSourceFile() === sourceFile)) {\n        symbolToSortTextMap[getSymbolId(symbol)] = SortText.GlobalsOrKeywords;\n      }\n      if (typeOnlyAliasNeedsPromotion && !(symbol.flags & 111551 /* Value */)) {\n        const typeOnlyAliasDeclaration = symbol.declarations && find(symbol.declarations, isTypeOnlyImportDeclaration);\n        if (typeOnlyAliasDeclaration) {\n          const origin = { kind: 64 /* TypeOnlyAlias */, declaration: typeOnlyAliasDeclaration };\n          symbolToOriginInfoMap[i] = origin;\n        }\n      }\n    }\n    if (preferences.includeCompletionsWithInsertText && scopeNode.kind !== 308 /* SourceFile */) {\n      const thisType = typeChecker.tryGetThisTypeAt(\n        scopeNode,\n        /*includeGlobalThis*/\n        false,\n        isClassLike(scopeNode.parent) ? scopeNode : void 0\n      );\n      if (thisType && !isProbablyGlobalType(thisType, sourceFile, typeChecker)) {\n        for (const symbol of getPropertiesForCompletion(thisType, typeChecker)) {\n          symbolToOriginInfoMap[symbols.length] = { kind: 1 /* ThisType */ };\n          symbols.push(symbol);\n          symbolToSortTextMap[getSymbolId(symbol)] = SortText.SuggestedClassMembers;\n        }\n      }\n    }\n    collectAutoImports();\n    if (isTypeOnlyLocation) {\n      keywordFilters = contextToken && isAssertionExpression(contextToken.parent) ? 6 /* TypeAssertionKeywords */ : 7 /* TypeKeywords */;\n    }\n  }\n  function shouldOfferImportCompletions() {\n    var _a;\n    if (importStatementCompletion) return true;\n    if (!preferences.includeCompletionsForModuleExports) return false;\n    if (sourceFile.externalModuleIndicator || sourceFile.commonJsModuleIndicator) return true;\n    if (compilerOptionsIndicateEsModules(program.getCompilerOptions())) return true;\n    return ((_a = program.getSymlinkCache) == null ? void 0 : _a.call(program).hasAnySymlinks()) || !!program.getCompilerOptions().paths || programContainsModules(program);\n  }\n  function isSnippetScope(scopeNode) {\n    switch (scopeNode.kind) {\n      case 308 /* SourceFile */:\n      case 229 /* TemplateExpression */:\n      case 295 /* JsxExpression */:\n      case 242 /* Block */:\n        return true;\n      default:\n        return isStatement(scopeNode);\n    }\n  }\n  function isTypeOnlyCompletion() {\n    return insideJsDocTagTypeExpression || insideJsDocImportTag || !!importStatementCompletion && isTypeOnlyImportOrExportDeclaration(location.parent) || !isContextTokenValueLocation(contextToken) && (isPossiblyTypeArgumentPosition(contextToken, sourceFile, typeChecker) || isPartOfTypeNode(location) || isContextTokenTypeLocation(contextToken));\n  }\n  function isContextTokenValueLocation(contextToken2) {\n    return contextToken2 && (contextToken2.kind === 114 /* TypeOfKeyword */ && (contextToken2.parent.kind === 187 /* TypeQuery */ || isTypeOfExpression(contextToken2.parent)) || contextToken2.kind === 131 /* AssertsKeyword */ && contextToken2.parent.kind === 183 /* TypePredicate */);\n  }\n  function isContextTokenTypeLocation(contextToken2) {\n    if (contextToken2) {\n      const parentKind = contextToken2.parent.kind;\n      switch (contextToken2.kind) {\n        case 59 /* ColonToken */:\n          return parentKind === 173 /* PropertyDeclaration */ || parentKind === 172 /* PropertySignature */ || parentKind === 170 /* Parameter */ || parentKind === 261 /* VariableDeclaration */ || isFunctionLikeKind(parentKind);\n        case 64 /* EqualsToken */:\n          return parentKind === 266 /* TypeAliasDeclaration */ || parentKind === 169 /* TypeParameter */;\n        case 130 /* AsKeyword */:\n          return parentKind === 235 /* AsExpression */;\n        case 30 /* LessThanToken */:\n          return parentKind === 184 /* TypeReference */ || parentKind === 217 /* TypeAssertionExpression */;\n        case 96 /* ExtendsKeyword */:\n          return parentKind === 169 /* TypeParameter */;\n        case 152 /* SatisfiesKeyword */:\n          return parentKind === 239 /* SatisfiesExpression */;\n      }\n    }\n    return false;\n  }\n  function collectAutoImports() {\n    var _a, _b;\n    if (!shouldOfferImportCompletions()) return;\n    Debug.assert(!(detailsEntryId == null ? void 0 : detailsEntryId.data), \"Should not run 'collectAutoImports' when faster path is available via `data`\");\n    if (detailsEntryId && !detailsEntryId.source) {\n      return;\n    }\n    flags |= 1 /* MayIncludeAutoImports */;\n    const isAfterTypeOnlyImportSpecifierModifier = previousToken === contextToken && importStatementCompletion;\n    const lowerCaseTokenText = isAfterTypeOnlyImportSpecifierModifier ? \"\" : previousToken && isIdentifier(previousToken) ? previousToken.text.toLowerCase() : \"\";\n    const moduleSpecifierCache = (_a = host.getModuleSpecifierCache) == null ? void 0 : _a.call(host);\n    const exportInfo = getExportInfoMap(sourceFile, host, program, preferences, cancellationToken);\n    const packageJsonAutoImportProvider = (_b = host.getPackageJsonAutoImportProvider) == null ? void 0 : _b.call(host);\n    const packageJsonFilter = detailsEntryId ? void 0 : createPackageJsonImportFilter(sourceFile, preferences, host);\n    resolvingModuleSpecifiers(\n      \"collectAutoImports\",\n      host,\n      importSpecifierResolver || (importSpecifierResolver = ts_codefix_exports.createImportSpecifierResolver(sourceFile, program, host, preferences)),\n      program,\n      position,\n      preferences,\n      !!importStatementCompletion,\n      isValidTypeOnlyAliasUseSite(location),\n      (context) => {\n        exportInfo.search(\n          sourceFile.path,\n          /*preferCapitalized*/\n          isRightOfOpenTag,\n          (symbolName2, targetFlags) => {\n            if (!isIdentifierText(symbolName2, getEmitScriptTarget(host.getCompilationSettings()))) return false;\n            if (!detailsEntryId && isStringANonContextualKeyword(symbolName2)) return false;\n            if (!isTypeOnlyLocation && !importStatementCompletion && !(targetFlags & 111551 /* Value */)) return false;\n            if (isTypeOnlyLocation && !(targetFlags & (1536 /* Module */ | 788968 /* Type */))) return false;\n            const firstChar = symbolName2.charCodeAt(0);\n            if (isRightOfOpenTag && (firstChar < 65 /* A */ || firstChar > 90 /* Z */)) return false;\n            if (detailsEntryId) return true;\n            return charactersFuzzyMatchInString(symbolName2, lowerCaseTokenText);\n          },\n          (info, symbolName2, isFromAmbientModule, exportMapKey) => {\n            if (detailsEntryId && !some(info, (i) => detailsEntryId.source === stripQuotes(i.moduleSymbol.name))) {\n              return;\n            }\n            info = filter(info, isImportableExportInfo);\n            if (!info.length) {\n              return;\n            }\n            const result = context.tryResolve(info, isFromAmbientModule) || {};\n            if (result === \"failed\") return;\n            let exportInfo2 = info[0], moduleSpecifier;\n            if (result !== \"skipped\") {\n              ({ exportInfo: exportInfo2 = info[0], moduleSpecifier } = result);\n            }\n            const isDefaultExport = exportInfo2.exportKind === 1 /* Default */;\n            const symbol = isDefaultExport && getLocalSymbolForExportDefault(Debug.checkDefined(exportInfo2.symbol)) || Debug.checkDefined(exportInfo2.symbol);\n            pushAutoImportSymbol(symbol, {\n              kind: moduleSpecifier ? 32 /* ResolvedExport */ : 4 /* Export */,\n              moduleSpecifier,\n              symbolName: symbolName2,\n              exportMapKey,\n              exportName: exportInfo2.exportKind === 2 /* ExportEquals */ ? \"export=\" /* ExportEquals */ : Debug.checkDefined(exportInfo2.symbol).name,\n              fileName: exportInfo2.moduleFileName,\n              isDefaultExport,\n              moduleSymbol: exportInfo2.moduleSymbol,\n              isFromPackageJson: exportInfo2.isFromPackageJson\n            });\n          }\n        );\n        hasUnresolvedAutoImports = context.skippedAny();\n        flags |= context.resolvedAny() ? 8 /* ResolvedModuleSpecifiers */ : 0;\n        flags |= context.resolvedBeyondLimit() ? 16 /* ResolvedModuleSpecifiersBeyondLimit */ : 0;\n      }\n    );\n    function isImportableExportInfo(info) {\n      return isImportable(\n        info.isFromPackageJson ? packageJsonAutoImportProvider : program,\n        sourceFile,\n        tryCast(info.moduleSymbol.valueDeclaration, isSourceFile),\n        info.moduleSymbol,\n        preferences,\n        packageJsonFilter,\n        getModuleSpecifierResolutionHost(info.isFromPackageJson),\n        moduleSpecifierCache\n      );\n    }\n  }\n  function pushAutoImportSymbol(symbol, origin) {\n    const symbolId = getSymbolId(symbol);\n    if (symbolToSortTextMap[symbolId] === SortText.GlobalsOrKeywords) {\n      return;\n    }\n    symbolToOriginInfoMap[symbols.length] = origin;\n    symbolToSortTextMap[symbolId] = importStatementCompletion ? SortText.LocationPriority : SortText.AutoImportSuggestions;\n    symbols.push(symbol);\n  }\n  function collectObjectLiteralMethodSymbols(members, enclosingDeclaration) {\n    if (isInJSFile(location)) {\n      return;\n    }\n    members.forEach((member) => {\n      if (!isObjectLiteralMethodSymbol(member)) {\n        return;\n      }\n      const displayName = getCompletionEntryDisplayNameForSymbol(\n        member,\n        getEmitScriptTarget(compilerOptions),\n        /*origin*/\n        void 0,\n        0 /* ObjectPropertyDeclaration */,\n        /*jsxIdentifierExpected*/\n        false\n      );\n      if (!displayName) {\n        return;\n      }\n      const { name } = displayName;\n      const entryProps = getEntryForObjectLiteralMethodCompletion(\n        member,\n        name,\n        enclosingDeclaration,\n        program,\n        host,\n        compilerOptions,\n        preferences,\n        formatContext\n      );\n      if (!entryProps) {\n        return;\n      }\n      const origin = { kind: 128 /* ObjectLiteralMethod */, ...entryProps };\n      flags |= 32 /* MayIncludeMethodSnippets */;\n      symbolToOriginInfoMap[symbols.length] = origin;\n      symbols.push(member);\n    });\n  }\n  function isObjectLiteralMethodSymbol(symbol) {\n    if (!(symbol.flags & (4 /* Property */ | 8192 /* Method */))) {\n      return false;\n    }\n    return true;\n  }\n  function getScopeNode(initialToken, position2, sourceFile2) {\n    let scope = initialToken;\n    while (scope && !positionBelongsToNode(scope, position2, sourceFile2)) {\n      scope = scope.parent;\n    }\n    return scope;\n  }\n  function isCompletionListBlocker(contextToken2) {\n    const start2 = timestamp();\n    const result = isInStringOrRegularExpressionOrTemplateLiteral(contextToken2) || isSolelyIdentifierDefinitionLocation(contextToken2) || isDotOfNumericLiteral(contextToken2) || isInJsxText(contextToken2) || isBigIntLiteral(contextToken2);\n    log(\"getCompletionsAtPosition: isCompletionListBlocker: \" + (timestamp() - start2));\n    return result;\n  }\n  function isInJsxText(contextToken2) {\n    if (contextToken2.kind === 12 /* JsxText */) {\n      return true;\n    }\n    if (contextToken2.kind === 32 /* GreaterThanToken */ && contextToken2.parent) {\n      if (location === contextToken2.parent && (location.kind === 287 /* JsxOpeningElement */ || location.kind === 286 /* JsxSelfClosingElement */)) {\n        return false;\n      }\n      if (contextToken2.parent.kind === 287 /* JsxOpeningElement */) {\n        return location.parent.kind !== 287 /* JsxOpeningElement */;\n      }\n      if (contextToken2.parent.kind === 288 /* JsxClosingElement */ || contextToken2.parent.kind === 286 /* JsxSelfClosingElement */) {\n        return !!contextToken2.parent.parent && contextToken2.parent.parent.kind === 285 /* JsxElement */;\n      }\n    }\n    return false;\n  }\n  function computeCommitCharactersAndIsNewIdentifier() {\n    if (contextToken) {\n      const containingNodeKind = contextToken.parent.kind;\n      const tokenKind = keywordForNode(contextToken);\n      switch (tokenKind) {\n        case 28 /* CommaToken */:\n          switch (containingNodeKind) {\n            case 214 /* CallExpression */:\n            // func( a, |\n            case 215 /* NewExpression */: {\n              const expression = contextToken.parent.expression;\n              if (getLineAndCharacterOfPosition(sourceFile, expression.end).line !== getLineAndCharacterOfPosition(sourceFile, position).line) {\n                return { defaultCommitCharacters: noCommaCommitCharacters, isNewIdentifierLocation: true };\n              }\n              return { defaultCommitCharacters: allCommitCharacters, isNewIdentifierLocation: true };\n            }\n            case 227 /* BinaryExpression */:\n              return { defaultCommitCharacters: noCommaCommitCharacters, isNewIdentifierLocation: true };\n            case 177 /* Constructor */:\n            // constructor( a, | /* public, protected, private keywords are allowed here, so show completion */\n            case 185 /* FunctionType */:\n            // var x: (s: string, list|\n            case 211 /* ObjectLiteralExpression */:\n              return { defaultCommitCharacters: [], isNewIdentifierLocation: true };\n            case 210 /* ArrayLiteralExpression */:\n              return { defaultCommitCharacters: allCommitCharacters, isNewIdentifierLocation: true };\n            default:\n              return { defaultCommitCharacters: allCommitCharacters, isNewIdentifierLocation: false };\n          }\n        case 21 /* OpenParenToken */:\n          switch (containingNodeKind) {\n            case 214 /* CallExpression */:\n            // func( |\n            case 215 /* NewExpression */: {\n              const expression = contextToken.parent.expression;\n              if (getLineAndCharacterOfPosition(sourceFile, expression.end).line !== getLineAndCharacterOfPosition(sourceFile, position).line) {\n                return { defaultCommitCharacters: noCommaCommitCharacters, isNewIdentifierLocation: true };\n              }\n              return { defaultCommitCharacters: allCommitCharacters, isNewIdentifierLocation: true };\n            }\n            case 218 /* ParenthesizedExpression */:\n              return { defaultCommitCharacters: noCommaCommitCharacters, isNewIdentifierLocation: true };\n            case 177 /* Constructor */:\n            // constructor( |\n            case 197 /* ParenthesizedType */:\n              return { defaultCommitCharacters: [], isNewIdentifierLocation: true };\n            default:\n              return { defaultCommitCharacters: allCommitCharacters, isNewIdentifierLocation: false };\n          }\n        case 23 /* OpenBracketToken */:\n          switch (containingNodeKind) {\n            case 210 /* ArrayLiteralExpression */:\n            // [ |\n            case 182 /* IndexSignature */:\n            // [ | : string ]\n            case 190 /* TupleType */:\n            // [ | : string ]\n            case 168 /* ComputedPropertyName */:\n              return { defaultCommitCharacters: allCommitCharacters, isNewIdentifierLocation: true };\n            default:\n              return { defaultCommitCharacters: allCommitCharacters, isNewIdentifierLocation: false };\n          }\n        case 144 /* ModuleKeyword */:\n        // module |\n        case 145 /* NamespaceKeyword */:\n        // namespace |\n        case 102 /* ImportKeyword */:\n          return { defaultCommitCharacters: [], isNewIdentifierLocation: true };\n        case 25 /* DotToken */:\n          switch (containingNodeKind) {\n            case 268 /* ModuleDeclaration */:\n              return { defaultCommitCharacters: [], isNewIdentifierLocation: true };\n            default:\n              return { defaultCommitCharacters: allCommitCharacters, isNewIdentifierLocation: false };\n          }\n        case 19 /* OpenBraceToken */:\n          switch (containingNodeKind) {\n            case 264 /* ClassDeclaration */:\n            // class A { |\n            case 211 /* ObjectLiteralExpression */:\n              return { defaultCommitCharacters: [], isNewIdentifierLocation: true };\n            default:\n              return { defaultCommitCharacters: allCommitCharacters, isNewIdentifierLocation: false };\n          }\n        case 64 /* EqualsToken */:\n          switch (containingNodeKind) {\n            case 261 /* VariableDeclaration */:\n            // const x = a|\n            case 227 /* BinaryExpression */:\n              return { defaultCommitCharacters: allCommitCharacters, isNewIdentifierLocation: true };\n            default:\n              return { defaultCommitCharacters: allCommitCharacters, isNewIdentifierLocation: false };\n          }\n        case 16 /* TemplateHead */:\n          return {\n            defaultCommitCharacters: allCommitCharacters,\n            isNewIdentifierLocation: containingNodeKind === 229 /* TemplateExpression */\n            // `aa ${|\n          };\n        case 17 /* TemplateMiddle */:\n          return {\n            defaultCommitCharacters: allCommitCharacters,\n            isNewIdentifierLocation: containingNodeKind === 240 /* TemplateSpan */\n            // `aa ${10} dd ${|\n          };\n        case 134 /* AsyncKeyword */:\n          return containingNodeKind === 175 /* MethodDeclaration */ || containingNodeKind === 305 /* ShorthandPropertyAssignment */ ? { defaultCommitCharacters: [], isNewIdentifierLocation: true } : { defaultCommitCharacters: allCommitCharacters, isNewIdentifierLocation: false };\n        case 42 /* AsteriskToken */:\n          return containingNodeKind === 175 /* MethodDeclaration */ ? { defaultCommitCharacters: [], isNewIdentifierLocation: true } : { defaultCommitCharacters: allCommitCharacters, isNewIdentifierLocation: false };\n      }\n      if (isClassMemberCompletionKeyword(tokenKind)) {\n        return { defaultCommitCharacters: [], isNewIdentifierLocation: true };\n      }\n    }\n    return { defaultCommitCharacters: allCommitCharacters, isNewIdentifierLocation: false };\n  }\n  function isInStringOrRegularExpressionOrTemplateLiteral(contextToken2) {\n    return (isRegularExpressionLiteral(contextToken2) || isStringTextContainingNode(contextToken2)) && (rangeContainsPositionExclusive(contextToken2, position) || position === contextToken2.end && (!!contextToken2.isUnterminated || isRegularExpressionLiteral(contextToken2)));\n  }\n  function tryGetObjectTypeLiteralInTypeArgumentCompletionSymbols() {\n    const typeLiteralNode = tryGetTypeLiteralNode(contextToken);\n    if (!typeLiteralNode) return 0 /* Continue */;\n    const intersectionTypeNode = isIntersectionTypeNode(typeLiteralNode.parent) ? typeLiteralNode.parent : void 0;\n    const containerTypeNode = intersectionTypeNode || typeLiteralNode;\n    const containerExpectedType = getConstraintOfTypeArgumentProperty(containerTypeNode, typeChecker);\n    if (!containerExpectedType) return 0 /* Continue */;\n    const containerActualType = typeChecker.getTypeFromTypeNode(containerTypeNode);\n    const members = getPropertiesForCompletion(containerExpectedType, typeChecker);\n    const existingMembers = getPropertiesForCompletion(containerActualType, typeChecker);\n    const existingMemberEscapedNames = /* @__PURE__ */ new Set();\n    existingMembers.forEach((s) => existingMemberEscapedNames.add(s.escapedName));\n    symbols = concatenate(symbols, filter(members, (s) => !existingMemberEscapedNames.has(s.escapedName)));\n    completionKind = 0 /* ObjectPropertyDeclaration */;\n    isNewIdentifierLocation = true;\n    return 1 /* Success */;\n  }\n  function tryGetObjectLikeCompletionSymbols() {\n    if ((contextToken == null ? void 0 : contextToken.kind) === 26 /* DotDotDotToken */) return 0 /* Continue */;\n    const symbolsStartIndex = symbols.length;\n    const objectLikeContainer = tryGetObjectLikeCompletionContainer(contextToken, position, sourceFile);\n    if (!objectLikeContainer) return 0 /* Continue */;\n    completionKind = 0 /* ObjectPropertyDeclaration */;\n    let typeMembers;\n    let existingMembers;\n    if (objectLikeContainer.kind === 211 /* ObjectLiteralExpression */) {\n      const instantiatedType = tryGetObjectLiteralContextualType(objectLikeContainer, typeChecker);\n      if (instantiatedType === void 0) {\n        if (objectLikeContainer.flags & 67108864 /* InWithStatement */) {\n          return 2 /* Fail */;\n        }\n        return 0 /* Continue */;\n      }\n      const completionsType = typeChecker.getContextualType(objectLikeContainer, 4 /* Completions */);\n      const hasStringIndexType = (completionsType || instantiatedType).getStringIndexType();\n      const hasNumberIndextype = (completionsType || instantiatedType).getNumberIndexType();\n      isNewIdentifierLocation = !!hasStringIndexType || !!hasNumberIndextype;\n      typeMembers = getPropertiesForObjectExpression(instantiatedType, completionsType, objectLikeContainer, typeChecker);\n      existingMembers = objectLikeContainer.properties;\n      if (typeMembers.length === 0) {\n        if (!hasNumberIndextype) {\n          return 0 /* Continue */;\n        }\n      }\n    } else {\n      Debug.assert(objectLikeContainer.kind === 207 /* ObjectBindingPattern */);\n      isNewIdentifierLocation = false;\n      const rootDeclaration = getRootDeclaration(objectLikeContainer.parent);\n      if (!isVariableLike(rootDeclaration)) return Debug.fail(\"Root declaration is not variable-like.\");\n      let canGetType = hasInitializer(rootDeclaration) || !!getEffectiveTypeAnnotationNode(rootDeclaration) || rootDeclaration.parent.parent.kind === 251 /* ForOfStatement */;\n      if (!canGetType && rootDeclaration.kind === 170 /* Parameter */) {\n        if (isExpression(rootDeclaration.parent)) {\n          canGetType = !!typeChecker.getContextualType(rootDeclaration.parent);\n        } else if (rootDeclaration.parent.kind === 175 /* MethodDeclaration */ || rootDeclaration.parent.kind === 179 /* SetAccessor */) {\n          canGetType = isExpression(rootDeclaration.parent.parent) && !!typeChecker.getContextualType(rootDeclaration.parent.parent);\n        }\n      }\n      if (canGetType) {\n        const typeForObject = typeChecker.getTypeAtLocation(objectLikeContainer);\n        if (!typeForObject) return 2 /* Fail */;\n        typeMembers = typeChecker.getPropertiesOfType(typeForObject).filter((propertySymbol) => {\n          return typeChecker.isPropertyAccessible(\n            objectLikeContainer,\n            /*isSuper*/\n            false,\n            /*isWrite*/\n            false,\n            typeForObject,\n            propertySymbol\n          );\n        });\n        existingMembers = objectLikeContainer.elements;\n      }\n    }\n    if (typeMembers && typeMembers.length > 0) {\n      const filteredMembers = filterObjectMembersList(typeMembers, Debug.checkDefined(existingMembers));\n      symbols = concatenate(symbols, filteredMembers);\n      setSortTextToOptionalMember();\n      if (objectLikeContainer.kind === 211 /* ObjectLiteralExpression */ && preferences.includeCompletionsWithObjectLiteralMethodSnippets && preferences.includeCompletionsWithInsertText) {\n        transformObjectLiteralMembersSortText(symbolsStartIndex);\n        collectObjectLiteralMethodSymbols(filteredMembers, objectLikeContainer);\n      }\n    }\n    return 1 /* Success */;\n  }\n  function tryGetImportOrExportClauseCompletionSymbols() {\n    if (!contextToken) return 0 /* Continue */;\n    const namedImportsOrExports = contextToken.kind === 19 /* OpenBraceToken */ || contextToken.kind === 28 /* CommaToken */ ? tryCast(contextToken.parent, isNamedImportsOrExports) : isTypeKeywordTokenOrIdentifier(contextToken) ? tryCast(contextToken.parent.parent, isNamedImportsOrExports) : void 0;\n    if (!namedImportsOrExports) return 0 /* Continue */;\n    if (!isTypeKeywordTokenOrIdentifier(contextToken)) {\n      keywordFilters = 8 /* TypeKeyword */;\n    }\n    const { moduleSpecifier } = namedImportsOrExports.kind === 276 /* NamedImports */ ? namedImportsOrExports.parent.parent : namedImportsOrExports.parent;\n    if (!moduleSpecifier) {\n      isNewIdentifierLocation = true;\n      return namedImportsOrExports.kind === 276 /* NamedImports */ ? 2 /* Fail */ : 0 /* Continue */;\n    }\n    const moduleSpecifierSymbol = typeChecker.getSymbolAtLocation(moduleSpecifier);\n    if (!moduleSpecifierSymbol) {\n      isNewIdentifierLocation = true;\n      return 2 /* Fail */;\n    }\n    completionKind = 3 /* MemberLike */;\n    isNewIdentifierLocation = false;\n    const exports2 = typeChecker.getExportsAndPropertiesOfModule(moduleSpecifierSymbol);\n    const existing = new Set(namedImportsOrExports.elements.filter((n) => !isCurrentlyEditingNode(n)).map((n) => moduleExportNameTextEscaped(n.propertyName || n.name)));\n    const uniques = exports2.filter((e) => e.escapedName !== \"default\" /* Default */ && !existing.has(e.escapedName));\n    symbols = concatenate(symbols, uniques);\n    if (!uniques.length) {\n      keywordFilters = 0 /* None */;\n    }\n    return 1 /* Success */;\n  }\n  function tryGetImportAttributesCompletionSymbols() {\n    if (contextToken === void 0) return 0 /* Continue */;\n    const importAttributes = contextToken.kind === 19 /* OpenBraceToken */ || contextToken.kind === 28 /* CommaToken */ ? tryCast(contextToken.parent, isImportAttributes) : contextToken.kind === 59 /* ColonToken */ ? tryCast(contextToken.parent.parent, isImportAttributes) : void 0;\n    if (importAttributes === void 0) return 0 /* Continue */;\n    const existing = new Set(importAttributes.elements.map(getNameFromImportAttribute));\n    symbols = filter(typeChecker.getTypeAtLocation(importAttributes).getApparentProperties(), (attr) => !existing.has(attr.escapedName));\n    return 1 /* Success */;\n  }\n  function tryGetLocalNamedExportCompletionSymbols() {\n    var _a;\n    const namedExports = contextToken && (contextToken.kind === 19 /* OpenBraceToken */ || contextToken.kind === 28 /* CommaToken */) ? tryCast(contextToken.parent, isNamedExports) : void 0;\n    if (!namedExports) {\n      return 0 /* Continue */;\n    }\n    const localsContainer = findAncestor(namedExports, or(isSourceFile, isModuleDeclaration));\n    completionKind = 5 /* None */;\n    isNewIdentifierLocation = false;\n    (_a = localsContainer.locals) == null ? void 0 : _a.forEach((symbol, name) => {\n      var _a2, _b;\n      symbols.push(symbol);\n      if ((_b = (_a2 = localsContainer.symbol) == null ? void 0 : _a2.exports) == null ? void 0 : _b.has(name)) {\n        symbolToSortTextMap[getSymbolId(symbol)] = SortText.OptionalMember;\n      }\n    });\n    return 1 /* Success */;\n  }\n  function tryGetClassLikeCompletionSymbols() {\n    const decl = tryGetObjectTypeDeclarationCompletionContainer(sourceFile, contextToken, location, position);\n    if (!decl) return 0 /* Continue */;\n    completionKind = 3 /* MemberLike */;\n    isNewIdentifierLocation = true;\n    keywordFilters = contextToken.kind === 42 /* AsteriskToken */ ? 0 /* None */ : isClassLike(decl) ? 2 /* ClassElementKeywords */ : 3 /* InterfaceElementKeywords */;\n    if (!isClassLike(decl)) return 1 /* Success */;\n    const classElement = contextToken.kind === 27 /* SemicolonToken */ ? contextToken.parent.parent : contextToken.parent;\n    let classElementModifierFlags = isClassElement(classElement) ? getEffectiveModifierFlags(classElement) : 0 /* None */;\n    if (contextToken.kind === 80 /* Identifier */ && !isCurrentlyEditingNode(contextToken)) {\n      switch (contextToken.getText()) {\n        case \"private\":\n          classElementModifierFlags = classElementModifierFlags | 2 /* Private */;\n          break;\n        case \"static\":\n          classElementModifierFlags = classElementModifierFlags | 256 /* Static */;\n          break;\n        case \"override\":\n          classElementModifierFlags = classElementModifierFlags | 16 /* Override */;\n          break;\n      }\n    }\n    if (isClassStaticBlockDeclaration(classElement)) {\n      classElementModifierFlags |= 256 /* Static */;\n    }\n    if (!(classElementModifierFlags & 2 /* Private */)) {\n      const baseTypeNodes = isClassLike(decl) && classElementModifierFlags & 16 /* Override */ ? singleElementArray(getEffectiveBaseTypeNode(decl)) : getAllSuperTypeNodes(decl);\n      const baseSymbols = flatMap(baseTypeNodes, (baseTypeNode) => {\n        const type = typeChecker.getTypeAtLocation(baseTypeNode);\n        return classElementModifierFlags & 256 /* Static */ ? (type == null ? void 0 : type.symbol) && typeChecker.getPropertiesOfType(typeChecker.getTypeOfSymbolAtLocation(type.symbol, decl)) : type && typeChecker.getPropertiesOfType(type);\n      });\n      symbols = concatenate(symbols, filterClassMembersList(baseSymbols, decl.members, classElementModifierFlags));\n      forEach(symbols, (symbol, index) => {\n        const declaration = symbol == null ? void 0 : symbol.valueDeclaration;\n        if (declaration && isClassElement(declaration) && declaration.name && isComputedPropertyName(declaration.name)) {\n          const origin = {\n            kind: 512 /* ComputedPropertyName */,\n            symbolName: typeChecker.symbolToString(symbol)\n          };\n          symbolToOriginInfoMap[index] = origin;\n        }\n      });\n    }\n    return 1 /* Success */;\n  }\n  function isConstructorParameterCompletion(node2) {\n    return !!node2.parent && isParameter(node2.parent) && isConstructorDeclaration(node2.parent.parent) && (isParameterPropertyModifier(node2.kind) || isDeclarationName(node2));\n  }\n  function tryGetConstructorLikeCompletionContainer(contextToken2) {\n    if (contextToken2) {\n      const parent2 = contextToken2.parent;\n      switch (contextToken2.kind) {\n        case 21 /* OpenParenToken */:\n        case 28 /* CommaToken */:\n          return isConstructorDeclaration(contextToken2.parent) ? contextToken2.parent : void 0;\n        default:\n          if (isConstructorParameterCompletion(contextToken2)) {\n            return parent2.parent;\n          }\n      }\n    }\n    return void 0;\n  }\n  function tryGetFunctionLikeBodyCompletionContainer(contextToken2) {\n    if (contextToken2) {\n      let prev;\n      const container = findAncestor(contextToken2.parent, (node2) => {\n        if (isClassLike(node2)) {\n          return \"quit\";\n        }\n        if (isFunctionLikeDeclaration(node2) && prev === node2.body) {\n          return true;\n        }\n        prev = node2;\n        return false;\n      });\n      return container && container;\n    }\n  }\n  function tryGetContainingJsxElement(contextToken2) {\n    if (contextToken2) {\n      const parent2 = contextToken2.parent;\n      switch (contextToken2.kind) {\n        case 32 /* GreaterThanToken */:\n        // End of a type argument list\n        case 31 /* LessThanSlashToken */:\n        case 44 /* SlashToken */:\n        case 80 /* Identifier */:\n        case 212 /* PropertyAccessExpression */:\n        case 293 /* JsxAttributes */:\n        case 292 /* JsxAttribute */:\n        case 294 /* JsxSpreadAttribute */:\n          if (parent2 && (parent2.kind === 286 /* JsxSelfClosingElement */ || parent2.kind === 287 /* JsxOpeningElement */)) {\n            if (contextToken2.kind === 32 /* GreaterThanToken */) {\n              const precedingToken = findPrecedingToken(\n                contextToken2.pos,\n                sourceFile,\n                /*startNode*/\n                void 0\n              );\n              if (!parent2.typeArguments || precedingToken && precedingToken.kind === 44 /* SlashToken */) break;\n            }\n            return parent2;\n          } else if (parent2.kind === 292 /* JsxAttribute */) {\n            return parent2.parent.parent;\n          }\n          break;\n        // The context token is the closing } or \" of an attribute, which means\n        // its parent is a JsxExpression, whose parent is a JsxAttribute,\n        // whose parent is a JsxOpeningLikeElement\n        case 11 /* StringLiteral */:\n          if (parent2 && (parent2.kind === 292 /* JsxAttribute */ || parent2.kind === 294 /* JsxSpreadAttribute */)) {\n            return parent2.parent.parent;\n          }\n          break;\n        case 20 /* CloseBraceToken */:\n          if (parent2 && parent2.kind === 295 /* JsxExpression */ && parent2.parent && parent2.parent.kind === 292 /* JsxAttribute */) {\n            return parent2.parent.parent.parent;\n          }\n          if (parent2 && parent2.kind === 294 /* JsxSpreadAttribute */) {\n            return parent2.parent.parent;\n          }\n          break;\n      }\n    }\n    return void 0;\n  }\n  function isInDifferentLineThanContextToken(contextToken2, position2) {\n    return sourceFile.getLineEndOfPosition(contextToken2.getEnd()) < position2;\n  }\n  function isSolelyIdentifierDefinitionLocation(contextToken2) {\n    const parent2 = contextToken2.parent;\n    const containingNodeKind = parent2.kind;\n    switch (contextToken2.kind) {\n      case 28 /* CommaToken */:\n        return containingNodeKind === 261 /* VariableDeclaration */ || isVariableDeclarationListButNotTypeArgument(contextToken2) || containingNodeKind === 244 /* VariableStatement */ || containingNodeKind === 267 /* EnumDeclaration */ || // enum a { foo, |\n        isFunctionLikeButNotConstructor(containingNodeKind) || containingNodeKind === 265 /* InterfaceDeclaration */ || // interface A<T, |\n        containingNodeKind === 208 /* ArrayBindingPattern */ || // var [x, y|\n        containingNodeKind === 266 /* TypeAliasDeclaration */ || // type Map, K, |\n        // class A<T, |\n        // var C = class D<T, |\n        isClassLike(parent2) && !!parent2.typeParameters && parent2.typeParameters.end >= contextToken2.pos;\n      case 25 /* DotToken */:\n        return containingNodeKind === 208 /* ArrayBindingPattern */;\n      // var [.|\n      case 59 /* ColonToken */:\n        return containingNodeKind === 209 /* BindingElement */;\n      // var {x :html|\n      case 23 /* OpenBracketToken */:\n        return containingNodeKind === 208 /* ArrayBindingPattern */;\n      // var [x|\n      case 21 /* OpenParenToken */:\n        return containingNodeKind === 300 /* CatchClause */ || isFunctionLikeButNotConstructor(containingNodeKind);\n      case 19 /* OpenBraceToken */:\n        return containingNodeKind === 267 /* EnumDeclaration */;\n      // enum a { |\n      case 30 /* LessThanToken */:\n        return containingNodeKind === 264 /* ClassDeclaration */ || // class A< |\n        containingNodeKind === 232 /* ClassExpression */ || // var C = class D< |\n        containingNodeKind === 265 /* InterfaceDeclaration */ || // interface A< |\n        containingNodeKind === 266 /* TypeAliasDeclaration */ || // type List< |\n        isFunctionLikeKind(containingNodeKind);\n      case 126 /* StaticKeyword */:\n        return containingNodeKind === 173 /* PropertyDeclaration */ && !isClassLike(parent2.parent);\n      case 26 /* DotDotDotToken */:\n        return containingNodeKind === 170 /* Parameter */ || !!parent2.parent && parent2.parent.kind === 208 /* ArrayBindingPattern */;\n      // var [...z|\n      case 125 /* PublicKeyword */:\n      case 123 /* PrivateKeyword */:\n      case 124 /* ProtectedKeyword */:\n        return containingNodeKind === 170 /* Parameter */ && !isConstructorDeclaration(parent2.parent);\n      case 130 /* AsKeyword */:\n        return containingNodeKind === 277 /* ImportSpecifier */ || containingNodeKind === 282 /* ExportSpecifier */ || containingNodeKind === 275 /* NamespaceImport */;\n      case 139 /* GetKeyword */:\n      case 153 /* SetKeyword */:\n        return !isFromObjectTypeDeclaration(contextToken2);\n      case 80 /* Identifier */: {\n        if ((containingNodeKind === 277 /* ImportSpecifier */ || containingNodeKind === 282 /* ExportSpecifier */) && contextToken2 === parent2.name && contextToken2.text === \"type\") {\n          return false;\n        }\n        const ancestorVariableDeclaration = findAncestor(\n          contextToken2.parent,\n          isVariableDeclaration\n        );\n        if (ancestorVariableDeclaration && isInDifferentLineThanContextToken(contextToken2, position)) {\n          return false;\n        }\n        break;\n      }\n      case 86 /* ClassKeyword */:\n      case 94 /* EnumKeyword */:\n      case 120 /* InterfaceKeyword */:\n      case 100 /* FunctionKeyword */:\n      case 115 /* VarKeyword */:\n      case 102 /* ImportKeyword */:\n      case 121 /* LetKeyword */:\n      case 87 /* ConstKeyword */:\n      case 140 /* InferKeyword */:\n        return true;\n      case 156 /* TypeKeyword */:\n        return containingNodeKind !== 277 /* ImportSpecifier */;\n      case 42 /* AsteriskToken */:\n        return isFunctionLike(contextToken2.parent) && !isMethodDeclaration(contextToken2.parent);\n    }\n    if (isClassMemberCompletionKeyword(keywordForNode(contextToken2)) && isFromObjectTypeDeclaration(contextToken2)) {\n      return false;\n    }\n    if (isConstructorParameterCompletion(contextToken2)) {\n      if (!isIdentifier(contextToken2) || isParameterPropertyModifier(keywordForNode(contextToken2)) || isCurrentlyEditingNode(contextToken2)) {\n        return false;\n      }\n    }\n    switch (keywordForNode(contextToken2)) {\n      case 128 /* AbstractKeyword */:\n      case 86 /* ClassKeyword */:\n      case 87 /* ConstKeyword */:\n      case 138 /* DeclareKeyword */:\n      case 94 /* EnumKeyword */:\n      case 100 /* FunctionKeyword */:\n      case 120 /* InterfaceKeyword */:\n      case 121 /* LetKeyword */:\n      case 123 /* PrivateKeyword */:\n      case 124 /* ProtectedKeyword */:\n      case 125 /* PublicKeyword */:\n      case 126 /* StaticKeyword */:\n      case 115 /* VarKeyword */:\n        return true;\n      case 134 /* AsyncKeyword */:\n        return isPropertyDeclaration(contextToken2.parent);\n    }\n    const ancestorClassLike = findAncestor(contextToken2.parent, isClassLike);\n    if (ancestorClassLike && contextToken2 === previousToken && isPreviousPropertyDeclarationTerminated(contextToken2, position)) {\n      return false;\n    }\n    const ancestorPropertyDeclaraion = getAncestor(contextToken2.parent, 173 /* PropertyDeclaration */);\n    if (ancestorPropertyDeclaraion && contextToken2 !== previousToken && isClassLike(previousToken.parent.parent) && position <= previousToken.end) {\n      if (isPreviousPropertyDeclarationTerminated(contextToken2, previousToken.end)) {\n        return false;\n      } else if (contextToken2.kind !== 64 /* EqualsToken */ && (isInitializedProperty(ancestorPropertyDeclaraion) || hasType(ancestorPropertyDeclaraion))) {\n        return true;\n      }\n    }\n    return isDeclarationName(contextToken2) && !isShorthandPropertyAssignment(contextToken2.parent) && !isJsxAttribute(contextToken2.parent) && !((isClassLike(contextToken2.parent) || isInterfaceDeclaration(contextToken2.parent) || isTypeParameterDeclaration(contextToken2.parent)) && (contextToken2 !== previousToken || position > previousToken.end));\n  }\n  function isPreviousPropertyDeclarationTerminated(contextToken2, position2) {\n    return contextToken2.kind !== 64 /* EqualsToken */ && (contextToken2.kind === 27 /* SemicolonToken */ || !positionsAreOnSameLine(contextToken2.end, position2, sourceFile));\n  }\n  function isFunctionLikeButNotConstructor(kind) {\n    return isFunctionLikeKind(kind) && kind !== 177 /* Constructor */;\n  }\n  function isDotOfNumericLiteral(contextToken2) {\n    if (contextToken2.kind === 9 /* NumericLiteral */) {\n      const text = contextToken2.getFullText();\n      return text.charAt(text.length - 1) === \".\";\n    }\n    return false;\n  }\n  function isVariableDeclarationListButNotTypeArgument(node2) {\n    return node2.parent.kind === 262 /* VariableDeclarationList */ && !isPossiblyTypeArgumentPosition(node2, sourceFile, typeChecker);\n  }\n  function filterObjectMembersList(contextualMemberSymbols, existingMembers) {\n    if (existingMembers.length === 0) {\n      return contextualMemberSymbols;\n    }\n    const membersDeclaredBySpreadAssignment = /* @__PURE__ */ new Set();\n    const existingMemberNames = /* @__PURE__ */ new Set();\n    for (const m of existingMembers) {\n      if (m.kind !== 304 /* PropertyAssignment */ && m.kind !== 305 /* ShorthandPropertyAssignment */ && m.kind !== 209 /* BindingElement */ && m.kind !== 175 /* MethodDeclaration */ && m.kind !== 178 /* GetAccessor */ && m.kind !== 179 /* SetAccessor */ && m.kind !== 306 /* SpreadAssignment */) {\n        continue;\n      }\n      if (isCurrentlyEditingNode(m)) {\n        continue;\n      }\n      let existingName;\n      if (isSpreadAssignment(m)) {\n        setMembersDeclaredBySpreadAssignment(m, membersDeclaredBySpreadAssignment);\n      } else if (isBindingElement(m) && m.propertyName) {\n        if (m.propertyName.kind === 80 /* Identifier */) {\n          existingName = m.propertyName.escapedText;\n        }\n      } else {\n        const name = getNameOfDeclaration(m);\n        existingName = name && isPropertyNameLiteral(name) ? getEscapedTextOfIdentifierOrLiteral(name) : void 0;\n      }\n      if (existingName !== void 0) {\n        existingMemberNames.add(existingName);\n      }\n    }\n    const filteredSymbols = contextualMemberSymbols.filter((m) => !existingMemberNames.has(m.escapedName));\n    setSortTextToMemberDeclaredBySpreadAssignment(membersDeclaredBySpreadAssignment, filteredSymbols);\n    return filteredSymbols;\n  }\n  function setMembersDeclaredBySpreadAssignment(declaration, membersDeclaredBySpreadAssignment) {\n    const expression = declaration.expression;\n    const symbol = typeChecker.getSymbolAtLocation(expression);\n    const type = symbol && typeChecker.getTypeOfSymbolAtLocation(symbol, expression);\n    const properties = type && type.properties;\n    if (properties) {\n      properties.forEach((property) => {\n        membersDeclaredBySpreadAssignment.add(property.name);\n      });\n    }\n  }\n  function setSortTextToOptionalMember() {\n    symbols.forEach((m) => {\n      if (m.flags & 16777216 /* Optional */) {\n        const symbolId = getSymbolId(m);\n        symbolToSortTextMap[symbolId] = symbolToSortTextMap[symbolId] ?? SortText.OptionalMember;\n      }\n    });\n  }\n  function setSortTextToMemberDeclaredBySpreadAssignment(membersDeclaredBySpreadAssignment, contextualMemberSymbols) {\n    if (membersDeclaredBySpreadAssignment.size === 0) {\n      return;\n    }\n    for (const contextualMemberSymbol of contextualMemberSymbols) {\n      if (membersDeclaredBySpreadAssignment.has(contextualMemberSymbol.name)) {\n        symbolToSortTextMap[getSymbolId(contextualMemberSymbol)] = SortText.MemberDeclaredBySpreadAssignment;\n      }\n    }\n  }\n  function transformObjectLiteralMembersSortText(start2) {\n    for (let i = start2; i < symbols.length; i++) {\n      const symbol = symbols[i];\n      const symbolId = getSymbolId(symbol);\n      const origin = symbolToOriginInfoMap == null ? void 0 : symbolToOriginInfoMap[i];\n      const target = getEmitScriptTarget(compilerOptions);\n      const displayName = getCompletionEntryDisplayNameForSymbol(\n        symbol,\n        target,\n        origin,\n        0 /* ObjectPropertyDeclaration */,\n        /*jsxIdentifierExpected*/\n        false\n      );\n      if (displayName) {\n        const originalSortText = symbolToSortTextMap[symbolId] ?? SortText.LocationPriority;\n        const { name } = displayName;\n        symbolToSortTextMap[symbolId] = SortText.ObjectLiteralProperty(originalSortText, name);\n      }\n    }\n  }\n  function filterClassMembersList(baseSymbols, existingMembers, currentClassElementModifierFlags) {\n    const existingMemberNames = /* @__PURE__ */ new Set();\n    for (const m of existingMembers) {\n      if (m.kind !== 173 /* PropertyDeclaration */ && m.kind !== 175 /* MethodDeclaration */ && m.kind !== 178 /* GetAccessor */ && m.kind !== 179 /* SetAccessor */) {\n        continue;\n      }\n      if (isCurrentlyEditingNode(m)) {\n        continue;\n      }\n      if (hasEffectiveModifier(m, 2 /* Private */)) {\n        continue;\n      }\n      if (isStatic(m) !== !!(currentClassElementModifierFlags & 256 /* Static */)) {\n        continue;\n      }\n      const existingName = getPropertyNameForPropertyNameNode(m.name);\n      if (existingName) {\n        existingMemberNames.add(existingName);\n      }\n    }\n    return baseSymbols.filter(\n      (propertySymbol) => !existingMemberNames.has(propertySymbol.escapedName) && !!propertySymbol.declarations && !(getDeclarationModifierFlagsFromSymbol(propertySymbol) & 2 /* Private */) && !(propertySymbol.valueDeclaration && isPrivateIdentifierClassElementDeclaration(propertySymbol.valueDeclaration))\n    );\n  }\n  function filterJsxAttributes(symbols2, attributes) {\n    const seenNames = /* @__PURE__ */ new Set();\n    const membersDeclaredBySpreadAssignment = /* @__PURE__ */ new Set();\n    for (const attr of attributes) {\n      if (isCurrentlyEditingNode(attr)) {\n        continue;\n      }\n      if (attr.kind === 292 /* JsxAttribute */) {\n        seenNames.add(getEscapedTextOfJsxAttributeName(attr.name));\n      } else if (isJsxSpreadAttribute(attr)) {\n        setMembersDeclaredBySpreadAssignment(attr, membersDeclaredBySpreadAssignment);\n      }\n    }\n    const filteredSymbols = symbols2.filter((a) => !seenNames.has(a.escapedName));\n    setSortTextToMemberDeclaredBySpreadAssignment(membersDeclaredBySpreadAssignment, filteredSymbols);\n    return filteredSymbols;\n  }\n  function isCurrentlyEditingNode(node2) {\n    return node2.getStart(sourceFile) <= position && position <= node2.getEnd();\n  }\n}\nfunction tryGetObjectLikeCompletionContainer(contextToken, position, sourceFile) {\n  var _a;\n  if (contextToken) {\n    const { parent: parent2 } = contextToken;\n    switch (contextToken.kind) {\n      case 19 /* OpenBraceToken */:\n      // const x = { |\n      case 28 /* CommaToken */:\n        if (isObjectLiteralExpression(parent2) || isObjectBindingPattern(parent2)) {\n          return parent2;\n        }\n        break;\n      case 42 /* AsteriskToken */:\n        return isMethodDeclaration(parent2) ? tryCast(parent2.parent, isObjectLiteralExpression) : void 0;\n      case 134 /* AsyncKeyword */:\n        return tryCast(parent2.parent, isObjectLiteralExpression);\n      case 80 /* Identifier */:\n        if (contextToken.text === \"async\" && isShorthandPropertyAssignment(contextToken.parent)) {\n          return contextToken.parent.parent;\n        } else {\n          if (isObjectLiteralExpression(contextToken.parent.parent) && (isSpreadAssignment(contextToken.parent) || isShorthandPropertyAssignment(contextToken.parent) && getLineAndCharacterOfPosition(sourceFile, contextToken.getEnd()).line !== getLineAndCharacterOfPosition(sourceFile, position).line)) {\n            return contextToken.parent.parent;\n          }\n          const ancestorNode2 = findAncestor(parent2, isPropertyAssignment);\n          if ((ancestorNode2 == null ? void 0 : ancestorNode2.getLastToken(sourceFile)) === contextToken && isObjectLiteralExpression(ancestorNode2.parent)) {\n            return ancestorNode2.parent;\n          }\n        }\n        break;\n      default:\n        if (((_a = parent2.parent) == null ? void 0 : _a.parent) && (isMethodDeclaration(parent2.parent) || isGetAccessorDeclaration(parent2.parent) || isSetAccessorDeclaration(parent2.parent)) && isObjectLiteralExpression(parent2.parent.parent)) {\n          return parent2.parent.parent;\n        }\n        if (isSpreadAssignment(parent2) && isObjectLiteralExpression(parent2.parent)) {\n          return parent2.parent;\n        }\n        const ancestorNode = findAncestor(parent2, isPropertyAssignment);\n        if (contextToken.kind !== 59 /* ColonToken */ && (ancestorNode == null ? void 0 : ancestorNode.getLastToken(sourceFile)) === contextToken && isObjectLiteralExpression(ancestorNode.parent)) {\n          return ancestorNode.parent;\n        }\n    }\n  }\n  return void 0;\n}\nfunction getRelevantTokens(position, sourceFile) {\n  const previousToken = findPrecedingToken(position, sourceFile);\n  if (previousToken && position <= previousToken.end && (isMemberName(previousToken) || isKeyword(previousToken.kind))) {\n    const contextToken = findPrecedingToken(\n      previousToken.getFullStart(),\n      sourceFile,\n      /*startNode*/\n      void 0\n    );\n    return { contextToken, previousToken };\n  }\n  return { contextToken: previousToken, previousToken };\n}\nfunction getAutoImportSymbolFromCompletionEntryData(name, data, program, host) {\n  const containingProgram = data.isPackageJsonImport ? host.getPackageJsonAutoImportProvider() : program;\n  const checker = containingProgram.getTypeChecker();\n  const moduleSymbol = data.ambientModuleName ? checker.tryFindAmbientModule(data.ambientModuleName) : data.fileName ? checker.getMergedSymbol(Debug.checkDefined(containingProgram.getSourceFile(data.fileName)).symbol) : void 0;\n  if (!moduleSymbol) return void 0;\n  let symbol = data.exportName === \"export=\" /* ExportEquals */ ? checker.resolveExternalModuleSymbol(moduleSymbol) : checker.tryGetMemberInModuleExportsAndProperties(data.exportName, moduleSymbol);\n  if (!symbol) return void 0;\n  const isDefaultExport = data.exportName === \"default\" /* Default */;\n  symbol = isDefaultExport && getLocalSymbolForExportDefault(symbol) || symbol;\n  return { symbol, origin: completionEntryDataToSymbolOriginInfo(data, name, moduleSymbol) };\n}\nfunction getCompletionEntryDisplayNameForSymbol(symbol, target, origin, kind, jsxIdentifierExpected) {\n  if (originIsIgnore(origin)) {\n    return void 0;\n  }\n  const name = originIncludesSymbolName(origin) ? origin.symbolName : symbol.name;\n  if (name === void 0 || symbol.flags & 1536 /* Module */ && isSingleOrDoubleQuote(name.charCodeAt(0)) || isKnownSymbol(symbol)) {\n    return void 0;\n  }\n  const validNameResult = { name, needsConvertPropertyAccess: false };\n  if (isIdentifierText(name, target, jsxIdentifierExpected ? 1 /* JSX */ : 0 /* Standard */) || symbol.valueDeclaration && isPrivateIdentifierClassElementDeclaration(symbol.valueDeclaration)) {\n    return validNameResult;\n  }\n  if (symbol.flags & 2097152 /* Alias */) {\n    return { name, needsConvertPropertyAccess: true };\n  }\n  switch (kind) {\n    case 3 /* MemberLike */:\n      return originIsComputedPropertyName(origin) ? { name: origin.symbolName, needsConvertPropertyAccess: false } : void 0;\n    case 0 /* ObjectPropertyDeclaration */:\n      return { name: JSON.stringify(name), needsConvertPropertyAccess: false };\n    case 2 /* PropertyAccess */:\n    case 1 /* Global */:\n      return name.charCodeAt(0) === 32 /* space */ ? void 0 : { name, needsConvertPropertyAccess: true };\n    case 5 /* None */:\n    case 4 /* String */:\n      return validNameResult;\n    default:\n      Debug.assertNever(kind);\n  }\n}\nvar _keywordCompletions = [];\nvar allKeywordsCompletions = memoize(() => {\n  const res = [];\n  for (let i = 83 /* FirstKeyword */; i <= 166 /* LastKeyword */; i++) {\n    res.push({\n      name: tokenToString(i),\n      kind: \"keyword\" /* keyword */,\n      kindModifiers: \"\" /* none */,\n      sortText: SortText.GlobalsOrKeywords\n    });\n  }\n  return res;\n});\nfunction getKeywordCompletions(keywordFilter, filterOutTsOnlyKeywords) {\n  if (!filterOutTsOnlyKeywords) return getTypescriptKeywordCompletions(keywordFilter);\n  const index = keywordFilter + 8 /* Last */ + 1;\n  return _keywordCompletions[index] || (_keywordCompletions[index] = getTypescriptKeywordCompletions(keywordFilter).filter((entry) => !isTypeScriptOnlyKeyword(stringToToken(entry.name))));\n}\nfunction getTypescriptKeywordCompletions(keywordFilter) {\n  return _keywordCompletions[keywordFilter] || (_keywordCompletions[keywordFilter] = allKeywordsCompletions().filter((entry) => {\n    const kind = stringToToken(entry.name);\n    switch (keywordFilter) {\n      case 0 /* None */:\n        return false;\n      case 1 /* All */:\n        return isFunctionLikeBodyKeyword(kind) || kind === 138 /* DeclareKeyword */ || kind === 144 /* ModuleKeyword */ || kind === 156 /* TypeKeyword */ || kind === 145 /* NamespaceKeyword */ || kind === 128 /* AbstractKeyword */ || isTypeKeyword(kind) && kind !== 157 /* UndefinedKeyword */;\n      case 5 /* FunctionLikeBodyKeywords */:\n        return isFunctionLikeBodyKeyword(kind);\n      case 2 /* ClassElementKeywords */:\n        return isClassMemberCompletionKeyword(kind);\n      case 3 /* InterfaceElementKeywords */:\n        return isInterfaceOrTypeLiteralCompletionKeyword(kind);\n      case 4 /* ConstructorParameterKeywords */:\n        return isParameterPropertyModifier(kind);\n      case 6 /* TypeAssertionKeywords */:\n        return isTypeKeyword(kind) || kind === 87 /* ConstKeyword */;\n      case 7 /* TypeKeywords */:\n        return isTypeKeyword(kind);\n      case 8 /* TypeKeyword */:\n        return kind === 156 /* TypeKeyword */;\n      default:\n        return Debug.assertNever(keywordFilter);\n    }\n  }));\n}\nfunction isTypeScriptOnlyKeyword(kind) {\n  switch (kind) {\n    case 128 /* AbstractKeyword */:\n    case 133 /* AnyKeyword */:\n    case 163 /* BigIntKeyword */:\n    case 136 /* BooleanKeyword */:\n    case 138 /* DeclareKeyword */:\n    case 94 /* EnumKeyword */:\n    case 162 /* GlobalKeyword */:\n    case 119 /* ImplementsKeyword */:\n    case 140 /* InferKeyword */:\n    case 120 /* InterfaceKeyword */:\n    case 142 /* IsKeyword */:\n    case 143 /* KeyOfKeyword */:\n    case 144 /* ModuleKeyword */:\n    case 145 /* NamespaceKeyword */:\n    case 146 /* NeverKeyword */:\n    case 150 /* NumberKeyword */:\n    case 151 /* ObjectKeyword */:\n    case 164 /* OverrideKeyword */:\n    case 123 /* PrivateKeyword */:\n    case 124 /* ProtectedKeyword */:\n    case 125 /* PublicKeyword */:\n    case 148 /* ReadonlyKeyword */:\n    case 154 /* StringKeyword */:\n    case 155 /* SymbolKeyword */:\n    case 156 /* TypeKeyword */:\n    case 158 /* UniqueKeyword */:\n    case 159 /* UnknownKeyword */:\n      return true;\n    default:\n      return false;\n  }\n}\nfunction isInterfaceOrTypeLiteralCompletionKeyword(kind) {\n  return kind === 148 /* ReadonlyKeyword */;\n}\nfunction isClassMemberCompletionKeyword(kind) {\n  switch (kind) {\n    case 128 /* AbstractKeyword */:\n    case 129 /* AccessorKeyword */:\n    case 137 /* ConstructorKeyword */:\n    case 139 /* GetKeyword */:\n    case 153 /* SetKeyword */:\n    case 134 /* AsyncKeyword */:\n    case 138 /* DeclareKeyword */:\n    case 164 /* OverrideKeyword */:\n      return true;\n    default:\n      return isClassMemberModifier(kind);\n  }\n}\nfunction isFunctionLikeBodyKeyword(kind) {\n  return kind === 134 /* AsyncKeyword */ || kind === 135 /* AwaitKeyword */ || kind === 160 /* UsingKeyword */ || kind === 130 /* AsKeyword */ || kind === 152 /* SatisfiesKeyword */ || kind === 156 /* TypeKeyword */ || !isContextualKeyword(kind) && !isClassMemberCompletionKeyword(kind);\n}\nfunction keywordForNode(node) {\n  return isIdentifier(node) ? identifierToKeywordKind(node) ?? 0 /* Unknown */ : node.kind;\n}\nfunction getContextualKeywords(contextToken, position) {\n  const entries = [];\n  if (contextToken) {\n    const file = contextToken.getSourceFile();\n    const parent2 = contextToken.parent;\n    const tokenLine = file.getLineAndCharacterOfPosition(contextToken.end).line;\n    const currentLine = file.getLineAndCharacterOfPosition(position).line;\n    if ((isImportDeclaration(parent2) || isExportDeclaration(parent2) && parent2.moduleSpecifier) && contextToken === parent2.moduleSpecifier && tokenLine === currentLine) {\n      entries.push({\n        name: tokenToString(132 /* AssertKeyword */),\n        kind: \"keyword\" /* keyword */,\n        kindModifiers: \"\" /* none */,\n        sortText: SortText.GlobalsOrKeywords\n      });\n    }\n  }\n  return entries;\n}\nfunction getJsDocTagAtPosition(node, position) {\n  return findAncestor(node, (n) => isJSDocTag(n) && rangeContainsPosition(n, position) ? true : isJSDoc(n) ? \"quit\" : false);\n}\nfunction getPropertiesForObjectExpression(contextualType, completionsType, obj, checker) {\n  const hasCompletionsType = completionsType && completionsType !== contextualType;\n  const promiseFilteredContextualType = checker.getUnionType(\n    filter(\n      contextualType.flags & 1048576 /* Union */ ? contextualType.types : [contextualType],\n      (t) => !checker.getPromisedTypeOfPromise(t)\n    )\n  );\n  const type = hasCompletionsType && !(completionsType.flags & 3 /* AnyOrUnknown */) ? checker.getUnionType([promiseFilteredContextualType, completionsType]) : promiseFilteredContextualType;\n  const properties = getApparentProperties(type, obj, checker);\n  return type.isClass() && containsNonPublicProperties(properties) ? [] : hasCompletionsType ? filter(properties, hasDeclarationOtherThanSelf) : properties;\n  function hasDeclarationOtherThanSelf(member) {\n    if (!length(member.declarations)) return true;\n    return some(member.declarations, (decl) => decl.parent !== obj);\n  }\n}\nfunction getApparentProperties(type, node, checker) {\n  if (!type.isUnion()) return type.getApparentProperties();\n  return checker.getAllPossiblePropertiesOfTypes(filter(type.types, (memberType) => !(memberType.flags & 402784252 /* Primitive */ || checker.isArrayLikeType(memberType) || checker.isTypeInvalidDueToUnionDiscriminant(memberType, node) || checker.typeHasCallOrConstructSignatures(memberType) || memberType.isClass() && containsNonPublicProperties(memberType.getApparentProperties()))));\n}\nfunction containsNonPublicProperties(props) {\n  return some(props, (p) => !!(getDeclarationModifierFlagsFromSymbol(p) & 6 /* NonPublicAccessibilityModifier */));\n}\nfunction getPropertiesForCompletion(type, checker) {\n  return type.isUnion() ? Debug.checkEachDefined(checker.getAllPossiblePropertiesOfTypes(type.types), \"getAllPossiblePropertiesOfTypes() should all be defined\") : Debug.checkEachDefined(type.getApparentProperties(), \"getApparentProperties() should all be defined\");\n}\nfunction tryGetObjectTypeDeclarationCompletionContainer(sourceFile, contextToken, location, position) {\n  switch (location.kind) {\n    case 353 /* SyntaxList */:\n      return tryCast(location.parent, isObjectTypeDeclaration);\n    case 1 /* EndOfFileToken */:\n      const cls = tryCast(lastOrUndefined(cast(location.parent, isSourceFile).statements), isObjectTypeDeclaration);\n      if (cls && !findChildOfKind(cls, 20 /* CloseBraceToken */, sourceFile)) {\n        return cls;\n      }\n      break;\n    case 81 /* PrivateIdentifier */:\n      if (tryCast(location.parent, isPropertyDeclaration)) {\n        return findAncestor(location, isClassLike);\n      }\n      break;\n    case 80 /* Identifier */: {\n      const originalKeywordKind = identifierToKeywordKind(location);\n      if (originalKeywordKind) {\n        return void 0;\n      }\n      if (isPropertyDeclaration(location.parent) && location.parent.initializer === location) {\n        return void 0;\n      }\n      if (isFromObjectTypeDeclaration(location)) {\n        return findAncestor(location, isObjectTypeDeclaration);\n      }\n    }\n  }\n  if (!contextToken) return void 0;\n  if (location.kind === 137 /* ConstructorKeyword */ || isIdentifier(contextToken) && isPropertyDeclaration(contextToken.parent) && isClassLike(location)) {\n    return findAncestor(contextToken, isClassLike);\n  }\n  switch (contextToken.kind) {\n    case 64 /* EqualsToken */:\n      return void 0;\n    case 27 /* SemicolonToken */:\n    // class c {getValue(): number; | }\n    case 20 /* CloseBraceToken */:\n      return isFromObjectTypeDeclaration(location) && location.parent.name === location ? location.parent.parent : tryCast(location, isObjectTypeDeclaration);\n    case 19 /* OpenBraceToken */:\n    // class c { |\n    case 28 /* CommaToken */:\n      return tryCast(contextToken.parent, isObjectTypeDeclaration);\n    default:\n      if (isObjectTypeDeclaration(location)) {\n        if (getLineAndCharacterOfPosition(sourceFile, contextToken.getEnd()).line !== getLineAndCharacterOfPosition(sourceFile, position).line) {\n          return location;\n        }\n        const isValidKeyword = isClassLike(contextToken.parent.parent) ? isClassMemberCompletionKeyword : isInterfaceOrTypeLiteralCompletionKeyword;\n        return isValidKeyword(contextToken.kind) || contextToken.kind === 42 /* AsteriskToken */ || isIdentifier(contextToken) && isValidKeyword(identifierToKeywordKind(contextToken) ?? 0 /* Unknown */) ? contextToken.parent.parent : void 0;\n      }\n      return void 0;\n  }\n}\nfunction tryGetTypeLiteralNode(node) {\n  if (!node) return void 0;\n  const parent2 = node.parent;\n  switch (node.kind) {\n    case 19 /* OpenBraceToken */:\n      if (isTypeLiteralNode(parent2)) {\n        return parent2;\n      }\n      break;\n    case 27 /* SemicolonToken */:\n    case 28 /* CommaToken */:\n    case 80 /* Identifier */:\n      if (parent2.kind === 172 /* PropertySignature */ && isTypeLiteralNode(parent2.parent)) {\n        return parent2.parent;\n      }\n      break;\n  }\n  return void 0;\n}\nfunction getConstraintOfTypeArgumentProperty(node, checker) {\n  if (!node) return void 0;\n  if (isTypeNode(node) && isTypeReferenceType(node.parent)) {\n    return checker.getTypeArgumentConstraint(node);\n  }\n  const t = getConstraintOfTypeArgumentProperty(node.parent, checker);\n  if (!t) return void 0;\n  switch (node.kind) {\n    case 172 /* PropertySignature */:\n      return checker.getTypeOfPropertyOfContextualType(t, node.symbol.escapedName);\n    case 194 /* IntersectionType */:\n    case 188 /* TypeLiteral */:\n    case 193 /* UnionType */:\n      return t;\n  }\n}\nfunction isFromObjectTypeDeclaration(node) {\n  return node.parent && isClassOrTypeElement(node.parent) && isObjectTypeDeclaration(node.parent.parent);\n}\nfunction isValidTrigger(sourceFile, triggerCharacter, contextToken, position) {\n  switch (triggerCharacter) {\n    case \".\":\n    case \"@\":\n      return true;\n    case '\"':\n    case \"'\":\n    case \"`\":\n      return !!contextToken && isStringLiteralOrTemplate(contextToken) && position === contextToken.getStart(sourceFile) + 1;\n    case \"#\":\n      return !!contextToken && isPrivateIdentifier(contextToken) && !!getContainingClass(contextToken);\n    case \"<\":\n      return !!contextToken && contextToken.kind === 30 /* LessThanToken */ && (!isBinaryExpression(contextToken.parent) || binaryExpressionMayBeOpenTag(contextToken.parent));\n    case \"/\":\n      return !!contextToken && (isStringLiteralLike(contextToken) ? !!tryGetImportFromModuleSpecifier(contextToken) : contextToken.kind === 44 /* SlashToken */ && isJsxClosingElement(contextToken.parent));\n    case \" \":\n      return !!contextToken && isImportKeyword(contextToken) && contextToken.parent.kind === 308 /* SourceFile */;\n    default:\n      return Debug.assertNever(triggerCharacter);\n  }\n}\nfunction binaryExpressionMayBeOpenTag({ left }) {\n  return nodeIsMissing(left);\n}\nfunction isProbablyGlobalType(type, sourceFile, checker) {\n  const selfSymbol = checker.resolveName(\n    \"self\",\n    /*location*/\n    void 0,\n    111551 /* Value */,\n    /*excludeGlobals*/\n    false\n  );\n  if (selfSymbol && checker.getTypeOfSymbolAtLocation(selfSymbol, sourceFile) === type) {\n    return true;\n  }\n  const globalSymbol = checker.resolveName(\n    \"global\",\n    /*location*/\n    void 0,\n    111551 /* Value */,\n    /*excludeGlobals*/\n    false\n  );\n  if (globalSymbol && checker.getTypeOfSymbolAtLocation(globalSymbol, sourceFile) === type) {\n    return true;\n  }\n  const globalThisSymbol = checker.resolveName(\n    \"globalThis\",\n    /*location*/\n    void 0,\n    111551 /* Value */,\n    /*excludeGlobals*/\n    false\n  );\n  if (globalThisSymbol && checker.getTypeOfSymbolAtLocation(globalThisSymbol, sourceFile) === type) {\n    return true;\n  }\n  return false;\n}\nfunction isStaticProperty(symbol) {\n  return !!(symbol.valueDeclaration && getEffectiveModifierFlags(symbol.valueDeclaration) & 256 /* Static */ && isClassLike(symbol.valueDeclaration.parent));\n}\nfunction tryGetObjectLiteralContextualType(node, typeChecker) {\n  const type = typeChecker.getContextualType(node);\n  if (type) {\n    return type;\n  }\n  const parent2 = walkUpParenthesizedExpressions(node.parent);\n  if (isBinaryExpression(parent2) && parent2.operatorToken.kind === 64 /* EqualsToken */ && node === parent2.left) {\n    return typeChecker.getTypeAtLocation(parent2);\n  }\n  if (isExpression(parent2)) {\n    return typeChecker.getContextualType(parent2);\n  }\n  return void 0;\n}\nfunction getImportStatementCompletionInfo(contextToken, sourceFile) {\n  var _a, _b, _c;\n  let keywordCompletion;\n  let isKeywordOnlyCompletion = false;\n  const candidate = getCandidate();\n  return {\n    isKeywordOnlyCompletion,\n    keywordCompletion,\n    isNewIdentifierLocation: !!(candidate || keywordCompletion === 156 /* TypeKeyword */),\n    isTopLevelTypeOnly: !!((_b = (_a = tryCast(candidate, isImportDeclaration)) == null ? void 0 : _a.importClause) == null ? void 0 : _b.isTypeOnly) || !!((_c = tryCast(candidate, isImportEqualsDeclaration)) == null ? void 0 : _c.isTypeOnly),\n    couldBeTypeOnlyImportSpecifier: !!candidate && couldBeTypeOnlyImportSpecifier(candidate, contextToken),\n    replacementSpan: getSingleLineReplacementSpanForImportCompletionNode(candidate)\n  };\n  function getCandidate() {\n    const parent2 = contextToken.parent;\n    if (isImportEqualsDeclaration(parent2)) {\n      const lastToken = parent2.getLastToken(sourceFile);\n      if (isIdentifier(contextToken) && lastToken !== contextToken) {\n        keywordCompletion = 161 /* FromKeyword */;\n        isKeywordOnlyCompletion = true;\n        return void 0;\n      }\n      keywordCompletion = contextToken.kind === 156 /* TypeKeyword */ ? void 0 : 156 /* TypeKeyword */;\n      return isModuleSpecifierMissingOrEmpty(parent2.moduleReference) ? parent2 : void 0;\n    }\n    if (couldBeTypeOnlyImportSpecifier(parent2, contextToken) && canCompleteFromNamedBindings(parent2.parent)) {\n      return parent2;\n    }\n    if (isNamedImports(parent2) || isNamespaceImport(parent2)) {\n      if (!parent2.parent.isTypeOnly && (contextToken.kind === 19 /* OpenBraceToken */ || contextToken.kind === 102 /* ImportKeyword */ || contextToken.kind === 28 /* CommaToken */)) {\n        keywordCompletion = 156 /* TypeKeyword */;\n      }\n      if (canCompleteFromNamedBindings(parent2)) {\n        if (contextToken.kind === 20 /* CloseBraceToken */ || contextToken.kind === 80 /* Identifier */) {\n          isKeywordOnlyCompletion = true;\n          keywordCompletion = 161 /* FromKeyword */;\n        } else {\n          return parent2.parent.parent;\n        }\n      }\n      return void 0;\n    }\n    if (isExportDeclaration(parent2) && contextToken.kind === 42 /* AsteriskToken */ || isNamedExports(parent2) && contextToken.kind === 20 /* CloseBraceToken */) {\n      isKeywordOnlyCompletion = true;\n      keywordCompletion = 161 /* FromKeyword */;\n      return void 0;\n    }\n    if (isImportKeyword(contextToken) && isSourceFile(parent2)) {\n      keywordCompletion = 156 /* TypeKeyword */;\n      return contextToken;\n    }\n    if (isImportKeyword(contextToken) && isImportDeclaration(parent2)) {\n      keywordCompletion = 156 /* TypeKeyword */;\n      return isModuleSpecifierMissingOrEmpty(parent2.moduleSpecifier) ? parent2 : void 0;\n    }\n    return void 0;\n  }\n}\nfunction getSingleLineReplacementSpanForImportCompletionNode(node) {\n  var _a;\n  if (!node) return void 0;\n  const top = findAncestor(node, or(isImportDeclaration, isImportEqualsDeclaration, isJSDocImportTag)) ?? node;\n  const sourceFile = top.getSourceFile();\n  if (rangeIsOnSingleLine(top, sourceFile)) {\n    return createTextSpanFromNode(top, sourceFile);\n  }\n  Debug.assert(top.kind !== 102 /* ImportKeyword */ && top.kind !== 277 /* ImportSpecifier */);\n  const potentialSplitPoint = top.kind === 273 /* ImportDeclaration */ || top.kind === 352 /* JSDocImportTag */ ? getPotentiallyInvalidImportSpecifier((_a = top.importClause) == null ? void 0 : _a.namedBindings) ?? top.moduleSpecifier : top.moduleReference;\n  const withoutModuleSpecifier = {\n    pos: top.getFirstToken().getStart(),\n    end: potentialSplitPoint.pos\n  };\n  if (rangeIsOnSingleLine(withoutModuleSpecifier, sourceFile)) {\n    return createTextSpanFromRange(withoutModuleSpecifier);\n  }\n}\nfunction getPotentiallyInvalidImportSpecifier(namedBindings) {\n  var _a;\n  return find(\n    (_a = tryCast(namedBindings, isNamedImports)) == null ? void 0 : _a.elements,\n    (e) => {\n      var _a2;\n      return !e.propertyName && isStringANonContextualKeyword(e.name.text) && ((_a2 = findPrecedingToken(e.name.pos, namedBindings.getSourceFile(), namedBindings)) == null ? void 0 : _a2.kind) !== 28 /* CommaToken */;\n    }\n  );\n}\nfunction couldBeTypeOnlyImportSpecifier(importSpecifier, contextToken) {\n  return isImportSpecifier(importSpecifier) && (importSpecifier.isTypeOnly || contextToken === importSpecifier.name && isTypeKeywordTokenOrIdentifier(contextToken));\n}\nfunction canCompleteFromNamedBindings(namedBindings) {\n  if (!isModuleSpecifierMissingOrEmpty(namedBindings.parent.parent.moduleSpecifier) || namedBindings.parent.name) {\n    return false;\n  }\n  if (isNamedImports(namedBindings)) {\n    const invalidNamedImport = getPotentiallyInvalidImportSpecifier(namedBindings);\n    const validImports = invalidNamedImport ? namedBindings.elements.indexOf(invalidNamedImport) : namedBindings.elements.length;\n    return validImports < 2;\n  }\n  return true;\n}\nfunction isModuleSpecifierMissingOrEmpty(specifier) {\n  var _a;\n  if (nodeIsMissing(specifier)) return true;\n  return !((_a = tryCast(isExternalModuleReference(specifier) ? specifier.expression : specifier, isStringLiteralLike)) == null ? void 0 : _a.text);\n}\nfunction getClosestSymbolDeclaration(contextToken, location) {\n  if (!contextToken) return;\n  let closestDeclaration = findAncestor(contextToken, (node) => isFunctionBlock(node) || isArrowFunctionBody(node) || isBindingPattern(node) ? \"quit\" : (isParameter(node) || isTypeParameterDeclaration(node)) && !isIndexSignatureDeclaration(node.parent));\n  if (!closestDeclaration) {\n    closestDeclaration = findAncestor(location, (node) => isFunctionBlock(node) || isArrowFunctionBody(node) || isBindingPattern(node) ? \"quit\" : isVariableDeclaration(node));\n  }\n  return closestDeclaration;\n}\nfunction isInTypeParameterDefault(contextToken) {\n  if (!contextToken) {\n    return false;\n  }\n  let node = contextToken;\n  let parent2 = contextToken.parent;\n  while (parent2) {\n    if (isTypeParameterDeclaration(parent2)) {\n      return parent2.default === node || node.kind === 64 /* EqualsToken */;\n    }\n    node = parent2;\n    parent2 = parent2.parent;\n  }\n  return false;\n}\nfunction isArrowFunctionBody(node) {\n  return node.parent && isArrowFunction(node.parent) && (node.parent.body === node || // const a = () => /**/;\n  node.kind === 39 /* EqualsGreaterThanToken */);\n}\nfunction symbolCanBeReferencedAtTypeLocation(symbol, checker, seenModules = /* @__PURE__ */ new Set()) {\n  return nonAliasCanBeReferencedAtTypeLocation(symbol) || nonAliasCanBeReferencedAtTypeLocation(skipAlias(symbol.exportSymbol || symbol, checker));\n  function nonAliasCanBeReferencedAtTypeLocation(symbol2) {\n    return !!(symbol2.flags & 788968 /* Type */) || checker.isUnknownSymbol(symbol2) || !!(symbol2.flags & 1536 /* Module */) && addToSeen(seenModules, symbol2) && checker.getExportsOfModule(symbol2).some((e) => symbolCanBeReferencedAtTypeLocation(e, checker, seenModules));\n  }\n}\nfunction isDeprecated(symbol, checker) {\n  const declarations = skipAlias(symbol, checker).declarations;\n  return !!length(declarations) && every(declarations, isDeprecatedDeclaration);\n}\nfunction charactersFuzzyMatchInString(identifierString, lowercaseCharacters) {\n  if (lowercaseCharacters.length === 0) {\n    return true;\n  }\n  let matchedFirstCharacter = false;\n  let prevChar;\n  let characterIndex = 0;\n  const len = identifierString.length;\n  for (let strIndex = 0; strIndex < len; strIndex++) {\n    const strChar = identifierString.charCodeAt(strIndex);\n    const testChar = lowercaseCharacters.charCodeAt(characterIndex);\n    if (strChar === testChar || strChar === toUpperCharCode(testChar)) {\n      matchedFirstCharacter || (matchedFirstCharacter = prevChar === void 0 || // Beginning of word\n      97 /* a */ <= prevChar && prevChar <= 122 /* z */ && 65 /* A */ <= strChar && strChar <= 90 /* Z */ || // camelCase transition\n      prevChar === 95 /* _ */ && strChar !== 95 /* _ */);\n      if (matchedFirstCharacter) {\n        characterIndex++;\n      }\n      if (characterIndex === lowercaseCharacters.length) {\n        return true;\n      }\n    }\n    prevChar = strChar;\n  }\n  return false;\n}\nfunction toUpperCharCode(charCode) {\n  if (97 /* a */ <= charCode && charCode <= 122 /* z */) {\n    return charCode - 32;\n  }\n  return charCode;\n}\nfunction isContextualKeywordInAutoImportableExpressionSpace(keyword) {\n  return keyword === \"abstract\" || keyword === \"async\" || keyword === \"await\" || keyword === \"declare\" || keyword === \"module\" || keyword === \"namespace\" || keyword === \"type\" || keyword === \"satisfies\" || keyword === \"as\";\n}\n\n// src/services/_namespaces/ts.Completions.StringCompletions.ts\nvar ts_Completions_StringCompletions_exports = {};\n__export(ts_Completions_StringCompletions_exports, {\n  getStringLiteralCompletionDetails: () => getStringLiteralCompletionDetails,\n  getStringLiteralCompletions: () => getStringLiteralCompletions\n});\n\n// src/services/stringCompletions.ts\nvar kindPrecedence = {\n  [\"directory\" /* directory */]: 0,\n  [\"script\" /* scriptElement */]: 1,\n  [\"external module name\" /* externalModuleName */]: 2\n};\nfunction createNameAndKindSet() {\n  const map2 = /* @__PURE__ */ new Map();\n  function add(value) {\n    const existing = map2.get(value.name);\n    if (!existing || kindPrecedence[existing.kind] < kindPrecedence[value.kind]) {\n      map2.set(value.name, value);\n    }\n  }\n  return {\n    add,\n    has: map2.has.bind(map2),\n    values: map2.values.bind(map2)\n  };\n}\nfunction getStringLiteralCompletions(sourceFile, position, contextToken, options, host, program, log, preferences, includeSymbol) {\n  if (isInReferenceComment(sourceFile, position)) {\n    const entries = getTripleSlashReferenceCompletion(sourceFile, position, program, host, createModuleSpecifierResolutionHost(program, host));\n    return entries && convertPathCompletions(entries);\n  }\n  if (isInString(sourceFile, position, contextToken)) {\n    if (!contextToken || !isStringLiteralLike(contextToken)) return void 0;\n    const entries = getStringLiteralCompletionEntries(sourceFile, contextToken, position, program, host, preferences);\n    return convertStringLiteralCompletions(entries, contextToken, sourceFile, host, program, log, options, preferences, position, includeSymbol);\n  }\n}\nfunction convertStringLiteralCompletions(completion, contextToken, sourceFile, host, program, log, options, preferences, position, includeSymbol) {\n  if (completion === void 0) {\n    return void 0;\n  }\n  const optionalReplacementSpan = createTextSpanFromStringLiteralLikeContent(contextToken, position);\n  switch (completion.kind) {\n    case 0 /* Paths */:\n      return convertPathCompletions(completion.paths);\n    case 1 /* Properties */: {\n      const entries = createSortedArray();\n      getCompletionEntriesFromSymbols(\n        completion.symbols,\n        entries,\n        contextToken,\n        contextToken,\n        sourceFile,\n        position,\n        sourceFile,\n        host,\n        program,\n        99 /* ESNext */,\n        log,\n        4 /* String */,\n        preferences,\n        options,\n        /*formatContext*/\n        void 0,\n        /*isTypeOnlyLocation*/\n        void 0,\n        /*propertyAccessToConvert*/\n        void 0,\n        /*jsxIdentifierExpected*/\n        void 0,\n        /*isJsxInitializer*/\n        void 0,\n        /*importStatementCompletion*/\n        void 0,\n        /*recommendedCompletion*/\n        void 0,\n        /*symbolToOriginInfoMap*/\n        void 0,\n        /*symbolToSortTextMap*/\n        void 0,\n        /*isJsxIdentifierExpected*/\n        void 0,\n        /*isRightOfOpenTag*/\n        void 0,\n        includeSymbol\n      );\n      return {\n        isGlobalCompletion: false,\n        isMemberCompletion: true,\n        isNewIdentifierLocation: completion.hasIndexSignature,\n        optionalReplacementSpan,\n        entries,\n        defaultCommitCharacters: getDefaultCommitCharacters(completion.hasIndexSignature)\n      };\n    }\n    case 2 /* Types */: {\n      const quoteChar = contextToken.kind === 15 /* NoSubstitutionTemplateLiteral */ ? 96 /* backtick */ : startsWith(getTextOfNode(contextToken), \"'\") ? 39 /* singleQuote */ : 34 /* doubleQuote */;\n      const entries = completion.types.map((type) => ({\n        name: escapeString(type.value, quoteChar),\n        kindModifiers: \"\" /* none */,\n        kind: \"string\" /* string */,\n        sortText: SortText.LocationPriority,\n        replacementSpan: getReplacementSpanForContextToken(contextToken, position),\n        commitCharacters: []\n      }));\n      return {\n        isGlobalCompletion: false,\n        isMemberCompletion: false,\n        isNewIdentifierLocation: completion.isNewIdentifier,\n        optionalReplacementSpan,\n        entries,\n        defaultCommitCharacters: getDefaultCommitCharacters(completion.isNewIdentifier)\n      };\n    }\n    default:\n      return Debug.assertNever(completion);\n  }\n}\nfunction getStringLiteralCompletionDetails(name, sourceFile, position, contextToken, program, host, cancellationToken, preferences) {\n  if (!contextToken || !isStringLiteralLike(contextToken)) return void 0;\n  const completions = getStringLiteralCompletionEntries(sourceFile, contextToken, position, program, host, preferences);\n  return completions && stringLiteralCompletionDetails(name, contextToken, completions, sourceFile, program.getTypeChecker(), cancellationToken);\n}\nfunction stringLiteralCompletionDetails(name, location, completion, sourceFile, checker, cancellationToken) {\n  switch (completion.kind) {\n    case 0 /* Paths */: {\n      const match = find(completion.paths, (p) => p.name === name);\n      return match && createCompletionDetails(name, kindModifiersFromExtension(match.extension), match.kind, [textPart(name)]);\n    }\n    case 1 /* Properties */: {\n      const match = find(completion.symbols, (s) => s.name === name);\n      return match && createCompletionDetailsForSymbol(match, match.name, checker, sourceFile, location, cancellationToken);\n    }\n    case 2 /* Types */:\n      return find(completion.types, (t) => t.value === name) ? createCompletionDetails(name, \"\" /* none */, \"string\" /* string */, [textPart(name)]) : void 0;\n    default:\n      return Debug.assertNever(completion);\n  }\n}\nfunction convertPathCompletions(pathCompletions) {\n  const isGlobalCompletion = false;\n  const isNewIdentifierLocation = true;\n  const entries = pathCompletions.map(({ name, kind, span, extension }) => ({ name, kind, kindModifiers: kindModifiersFromExtension(extension), sortText: SortText.LocationPriority, replacementSpan: span }));\n  return {\n    isGlobalCompletion,\n    isMemberCompletion: false,\n    isNewIdentifierLocation,\n    entries,\n    defaultCommitCharacters: getDefaultCommitCharacters(isNewIdentifierLocation)\n  };\n}\nfunction kindModifiersFromExtension(extension) {\n  switch (extension) {\n    case \".d.ts\" /* Dts */:\n      return \".d.ts\" /* dtsModifier */;\n    case \".js\" /* Js */:\n      return \".js\" /* jsModifier */;\n    case \".json\" /* Json */:\n      return \".json\" /* jsonModifier */;\n    case \".jsx\" /* Jsx */:\n      return \".jsx\" /* jsxModifier */;\n    case \".ts\" /* Ts */:\n      return \".ts\" /* tsModifier */;\n    case \".tsx\" /* Tsx */:\n      return \".tsx\" /* tsxModifier */;\n    case \".d.mts\" /* Dmts */:\n      return \".d.mts\" /* dmtsModifier */;\n    case \".mjs\" /* Mjs */:\n      return \".mjs\" /* mjsModifier */;\n    case \".mts\" /* Mts */:\n      return \".mts\" /* mtsModifier */;\n    case \".d.cts\" /* Dcts */:\n      return \".d.cts\" /* dctsModifier */;\n    case \".cjs\" /* Cjs */:\n      return \".cjs\" /* cjsModifier */;\n    case \".cts\" /* Cts */:\n      return \".cts\" /* ctsModifier */;\n    case \".tsbuildinfo\" /* TsBuildInfo */:\n      return Debug.fail(`Extension ${\".tsbuildinfo\" /* TsBuildInfo */} is unsupported.`);\n    case void 0:\n      return \"\" /* none */;\n    default:\n      return Debug.assertNever(extension);\n  }\n}\nfunction getStringLiteralCompletionEntries(sourceFile, node, position, program, host, preferences) {\n  const typeChecker = program.getTypeChecker();\n  const parent2 = walkUpParentheses(node.parent);\n  switch (parent2.kind) {\n    case 202 /* LiteralType */: {\n      const grandParent = walkUpParentheses(parent2.parent);\n      if (grandParent.kind === 206 /* ImportType */) {\n        return { kind: 0 /* Paths */, paths: getStringLiteralCompletionsFromModuleNames(sourceFile, node, program, host, preferences) };\n      }\n      return fromUnionableLiteralType(grandParent);\n    }\n    case 304 /* PropertyAssignment */:\n      if (isObjectLiteralExpression(parent2.parent) && parent2.name === node) {\n        return stringLiteralCompletionsForObjectLiteral(typeChecker, parent2.parent);\n      }\n      return fromContextualType() || fromContextualType(0 /* None */);\n    case 213 /* ElementAccessExpression */: {\n      const { expression, argumentExpression } = parent2;\n      if (node === skipParentheses(argumentExpression)) {\n        return stringLiteralCompletionsFromProperties(typeChecker.getTypeAtLocation(expression));\n      }\n      return void 0;\n    }\n    case 214 /* CallExpression */:\n    case 215 /* NewExpression */:\n    case 292 /* JsxAttribute */:\n      if (!isRequireCallArgument(node) && !isImportCall(parent2)) {\n        const argumentInfo = ts_SignatureHelp_exports.getArgumentInfoForCompletions(parent2.kind === 292 /* JsxAttribute */ ? parent2.parent : node, position, sourceFile, typeChecker);\n        return argumentInfo && getStringLiteralCompletionsFromSignature(argumentInfo.invocation, node, argumentInfo, typeChecker) || fromContextualType(0 /* None */);\n      }\n    // falls through (is `require(\"\")` or `require(\"\"` or `import(\"\")`)\n    case 273 /* ImportDeclaration */:\n    case 279 /* ExportDeclaration */:\n    case 284 /* ExternalModuleReference */:\n    case 352 /* JSDocImportTag */:\n      return { kind: 0 /* Paths */, paths: getStringLiteralCompletionsFromModuleNames(sourceFile, node, program, host, preferences) };\n    case 297 /* CaseClause */:\n      const tracker = newCaseClauseTracker(typeChecker, parent2.parent.clauses);\n      const contextualTypes = fromContextualType();\n      if (!contextualTypes) {\n        return;\n      }\n      const literals = contextualTypes.types.filter((literal) => !tracker.hasValue(literal.value));\n      return { kind: 2 /* Types */, types: literals, isNewIdentifier: false };\n    case 277 /* ImportSpecifier */:\n    case 282 /* ExportSpecifier */:\n      const specifier = parent2;\n      if (specifier.propertyName && node !== specifier.propertyName) {\n        return;\n      }\n      const namedImportsOrExports = specifier.parent;\n      const { moduleSpecifier } = namedImportsOrExports.kind === 276 /* NamedImports */ ? namedImportsOrExports.parent.parent : namedImportsOrExports.parent;\n      if (!moduleSpecifier) return;\n      const moduleSpecifierSymbol = typeChecker.getSymbolAtLocation(moduleSpecifier);\n      if (!moduleSpecifierSymbol) return;\n      const exports2 = typeChecker.getExportsAndPropertiesOfModule(moduleSpecifierSymbol);\n      const existing = new Set(namedImportsOrExports.elements.map((n) => moduleExportNameTextEscaped(n.propertyName || n.name)));\n      const uniques = exports2.filter((e) => e.escapedName !== \"default\" /* Default */ && !existing.has(e.escapedName));\n      return { kind: 1 /* Properties */, symbols: uniques, hasIndexSignature: false };\n    case 227 /* BinaryExpression */:\n      if (parent2.operatorToken.kind === 103 /* InKeyword */) {\n        const type = typeChecker.getTypeAtLocation(parent2.right);\n        const properties = type.isUnion() ? typeChecker.getAllPossiblePropertiesOfTypes(type.types) : type.getApparentProperties();\n        return {\n          kind: 1 /* Properties */,\n          symbols: properties.filter((prop) => !prop.valueDeclaration || !isPrivateIdentifierClassElementDeclaration(prop.valueDeclaration)),\n          hasIndexSignature: false\n        };\n      }\n      return fromContextualType(0 /* None */);\n    default:\n      return fromContextualType() || fromContextualType(0 /* None */);\n  }\n  function fromUnionableLiteralType(grandParent) {\n    switch (grandParent.kind) {\n      case 234 /* ExpressionWithTypeArguments */:\n      case 184 /* TypeReference */: {\n        const typeArgument = findAncestor(parent2, (n) => n.parent === grandParent);\n        if (typeArgument) {\n          return { kind: 2 /* Types */, types: getStringLiteralTypes(typeChecker.getTypeArgumentConstraint(typeArgument)), isNewIdentifier: false };\n        }\n        return void 0;\n      }\n      case 200 /* IndexedAccessType */:\n        const { indexType, objectType } = grandParent;\n        if (!rangeContainsPosition(indexType, position)) {\n          return void 0;\n        }\n        return stringLiteralCompletionsFromProperties(typeChecker.getTypeFromTypeNode(objectType));\n      case 193 /* UnionType */: {\n        const result = fromUnionableLiteralType(walkUpParentheses(grandParent.parent));\n        if (!result) {\n          return void 0;\n        }\n        const alreadyUsedTypes = getAlreadyUsedTypesInStringLiteralUnion(grandParent, parent2);\n        if (result.kind === 1 /* Properties */) {\n          return { kind: 1 /* Properties */, symbols: result.symbols.filter((sym) => !contains(alreadyUsedTypes, sym.name)), hasIndexSignature: result.hasIndexSignature };\n        }\n        return { kind: 2 /* Types */, types: result.types.filter((t) => !contains(alreadyUsedTypes, t.value)), isNewIdentifier: false };\n      }\n      default:\n        return void 0;\n    }\n  }\n  function fromContextualType(contextFlags = 4 /* Completions */) {\n    const types = getStringLiteralTypes(getContextualTypeFromParent(node, typeChecker, contextFlags));\n    if (!types.length) {\n      return;\n    }\n    return { kind: 2 /* Types */, types, isNewIdentifier: false };\n  }\n}\nfunction walkUpParentheses(node) {\n  switch (node.kind) {\n    case 197 /* ParenthesizedType */:\n      return walkUpParenthesizedTypes(node);\n    case 218 /* ParenthesizedExpression */:\n      return walkUpParenthesizedExpressions(node);\n    default:\n      return node;\n  }\n}\nfunction getAlreadyUsedTypesInStringLiteralUnion(union, current) {\n  return mapDefined(union.types, (type) => type !== current && isLiteralTypeNode(type) && isStringLiteral(type.literal) ? type.literal.text : void 0);\n}\nfunction getStringLiteralCompletionsFromSignature(call, arg, argumentInfo, checker) {\n  let isNewIdentifier = false;\n  const uniques = /* @__PURE__ */ new Set();\n  const editingArgument = isJsxOpeningLikeElement(call) ? Debug.checkDefined(findAncestor(arg.parent, isJsxAttribute)) : arg;\n  const candidates = checker.getCandidateSignaturesForStringLiteralCompletions(call, editingArgument);\n  const types = flatMap(candidates, (candidate) => {\n    if (!signatureHasRestParameter(candidate) && argumentInfo.argumentCount > candidate.parameters.length) return;\n    let type = candidate.getTypeParameterAtPosition(argumentInfo.argumentIndex);\n    if (isJsxOpeningLikeElement(call)) {\n      const propType = checker.getTypeOfPropertyOfType(type, getTextOfJsxAttributeName(editingArgument.name));\n      if (propType) {\n        type = propType;\n      }\n    }\n    isNewIdentifier = isNewIdentifier || !!(type.flags & 4 /* String */);\n    return getStringLiteralTypes(type, uniques);\n  });\n  return length(types) ? { kind: 2 /* Types */, types, isNewIdentifier } : void 0;\n}\nfunction stringLiteralCompletionsFromProperties(type) {\n  return type && {\n    kind: 1 /* Properties */,\n    symbols: filter(type.getApparentProperties(), (prop) => !(prop.valueDeclaration && isPrivateIdentifierClassElementDeclaration(prop.valueDeclaration))),\n    hasIndexSignature: hasIndexSignature(type)\n  };\n}\nfunction stringLiteralCompletionsForObjectLiteral(checker, objectLiteralExpression) {\n  const contextualType = checker.getContextualType(objectLiteralExpression);\n  if (!contextualType) return void 0;\n  const completionsType = checker.getContextualType(objectLiteralExpression, 4 /* Completions */);\n  const symbols = getPropertiesForObjectExpression(\n    contextualType,\n    completionsType,\n    objectLiteralExpression,\n    checker\n  );\n  return {\n    kind: 1 /* Properties */,\n    symbols,\n    hasIndexSignature: hasIndexSignature(contextualType)\n  };\n}\nfunction getStringLiteralTypes(type, uniques = /* @__PURE__ */ new Set()) {\n  if (!type) return emptyArray;\n  type = skipConstraint(type);\n  return type.isUnion() ? flatMap(type.types, (t) => getStringLiteralTypes(t, uniques)) : type.isStringLiteral() && !(type.flags & 1024 /* EnumLiteral */) && addToSeen(uniques, type.value) ? [type] : emptyArray;\n}\nfunction nameAndKind(name, kind, extension) {\n  return { name, kind, extension };\n}\nfunction directoryResult(name) {\n  return nameAndKind(\n    name,\n    \"directory\" /* directory */,\n    /*extension*/\n    void 0\n  );\n}\nfunction addReplacementSpans(text, textStart, names) {\n  const span = getDirectoryFragmentTextSpan(text, textStart);\n  const wholeSpan = text.length === 0 ? void 0 : createTextSpan(textStart, text.length);\n  return names.map(({ name, kind, extension }) => name.includes(directorySeparator) || name.includes(altDirectorySeparator) ? { name, kind, extension, span: wholeSpan } : { name, kind, extension, span });\n}\nfunction getStringLiteralCompletionsFromModuleNames(sourceFile, node, program, host, preferences) {\n  return addReplacementSpans(node.text, node.getStart(sourceFile) + 1, getStringLiteralCompletionsFromModuleNamesWorker(sourceFile, node, program, host, preferences));\n}\nfunction getStringLiteralCompletionsFromModuleNamesWorker(sourceFile, node, program, host, preferences) {\n  const literalValue = normalizeSlashes(node.text);\n  const mode = isStringLiteralLike(node) ? program.getModeForUsageLocation(sourceFile, node) : void 0;\n  const scriptPath = sourceFile.path;\n  const scriptDirectory = getDirectoryPath(scriptPath);\n  const compilerOptions = program.getCompilerOptions();\n  const typeChecker = program.getTypeChecker();\n  const moduleSpecifierResolutionHost = createModuleSpecifierResolutionHost(program, host);\n  const extensionOptions = getExtensionOptions(compilerOptions, 1 /* ModuleSpecifier */, sourceFile, typeChecker, preferences, mode);\n  return isPathRelativeToScript(literalValue) || !compilerOptions.baseUrl && !compilerOptions.paths && (isRootedDiskPath(literalValue) || isUrl(literalValue)) ? getCompletionEntriesForRelativeModules(literalValue, scriptDirectory, program, host, moduleSpecifierResolutionHost, scriptPath, extensionOptions) : getCompletionEntriesForNonRelativeModules(literalValue, scriptDirectory, mode, program, host, moduleSpecifierResolutionHost, extensionOptions);\n}\nfunction getExtensionOptions(compilerOptions, referenceKind, importingSourceFile, typeChecker, preferences, resolutionMode) {\n  return {\n    extensionsToSearch: flatten(getSupportedExtensionsForModuleResolution(compilerOptions, typeChecker)),\n    referenceKind,\n    importingSourceFile,\n    endingPreference: preferences == null ? void 0 : preferences.importModuleSpecifierEnding,\n    resolutionMode\n  };\n}\nfunction getCompletionEntriesForRelativeModules(literalValue, scriptDirectory, program, host, moduleSpecifierResolutionHost, scriptPath, extensionOptions) {\n  const compilerOptions = program.getCompilerOptions();\n  if (compilerOptions.rootDirs) {\n    return getCompletionEntriesForDirectoryFragmentWithRootDirs(\n      compilerOptions.rootDirs,\n      literalValue,\n      scriptDirectory,\n      extensionOptions,\n      program,\n      host,\n      moduleSpecifierResolutionHost,\n      scriptPath\n    );\n  } else {\n    return arrayFrom(getCompletionEntriesForDirectoryFragment(\n      literalValue,\n      scriptDirectory,\n      extensionOptions,\n      program,\n      host,\n      moduleSpecifierResolutionHost,\n      /*moduleSpecifierIsRelative*/\n      true,\n      scriptPath\n    ).values());\n  }\n}\nfunction getSupportedExtensionsForModuleResolution(compilerOptions, typeChecker) {\n  const ambientModulesExtensions = !typeChecker ? [] : mapDefined(typeChecker.getAmbientModules(), (module2) => {\n    const name = module2.name.slice(1, -1);\n    if (!name.startsWith(\"*.\") || name.includes(\"/\")) return;\n    return name.slice(1);\n  });\n  const extensions = [...getSupportedExtensions(compilerOptions), ambientModulesExtensions];\n  const moduleResolution = getEmitModuleResolutionKind(compilerOptions);\n  return moduleResolutionUsesNodeModules(moduleResolution) ? getSupportedExtensionsWithJsonIfResolveJsonModule(compilerOptions, extensions) : extensions;\n}\nfunction getBaseDirectoriesFromRootDirs(rootDirs, basePath, scriptDirectory, ignoreCase) {\n  rootDirs = rootDirs.map((rootDirectory) => ensureTrailingDirectorySeparator(normalizePath(isRootedDiskPath(rootDirectory) ? rootDirectory : combinePaths(basePath, rootDirectory))));\n  const relativeDirectory = firstDefined(rootDirs, (rootDirectory) => containsPath(rootDirectory, scriptDirectory, basePath, ignoreCase) ? scriptDirectory.substr(rootDirectory.length) : void 0);\n  return deduplicate(\n    [...rootDirs.map((rootDirectory) => combinePaths(rootDirectory, relativeDirectory)), scriptDirectory].map((baseDir) => removeTrailingDirectorySeparator(baseDir)),\n    equateStringsCaseSensitive,\n    compareStringsCaseSensitive\n  );\n}\nfunction getCompletionEntriesForDirectoryFragmentWithRootDirs(rootDirs, fragment, scriptDirectory, extensionOptions, program, host, moduleSpecifierResolutionHost, exclude) {\n  const compilerOptions = program.getCompilerOptions();\n  const basePath = compilerOptions.project || host.getCurrentDirectory();\n  const ignoreCase = !(host.useCaseSensitiveFileNames && host.useCaseSensitiveFileNames());\n  const baseDirectories = getBaseDirectoriesFromRootDirs(rootDirs, basePath, scriptDirectory, ignoreCase);\n  return deduplicate(\n    flatMap(baseDirectories, (baseDirectory) => arrayFrom(getCompletionEntriesForDirectoryFragment(\n      fragment,\n      baseDirectory,\n      extensionOptions,\n      program,\n      host,\n      moduleSpecifierResolutionHost,\n      /*moduleSpecifierIsRelative*/\n      true,\n      exclude\n    ).values())),\n    (itemA, itemB) => itemA.name === itemB.name && itemA.kind === itemB.kind && itemA.extension === itemB.extension\n  );\n}\nfunction getCompletionEntriesForDirectoryFragment(fragment, scriptDirectory, extensionOptions, program, host, moduleSpecifierResolutionHost, moduleSpecifierIsRelative, exclude, result = createNameAndKindSet()) {\n  var _a;\n  if (fragment === void 0) {\n    fragment = \"\";\n  }\n  fragment = normalizeSlashes(fragment);\n  if (!hasTrailingDirectorySeparator(fragment)) {\n    fragment = getDirectoryPath(fragment);\n  }\n  if (fragment === \"\") {\n    fragment = \".\" + directorySeparator;\n  }\n  fragment = ensureTrailingDirectorySeparator(fragment);\n  const absolutePath = resolvePath(scriptDirectory, fragment);\n  const baseDirectory = hasTrailingDirectorySeparator(absolutePath) ? absolutePath : getDirectoryPath(absolutePath);\n  if (!moduleSpecifierIsRelative) {\n    const packageJsonPath = findPackageJson(baseDirectory, host);\n    if (packageJsonPath) {\n      const packageJson = readJson(packageJsonPath, host);\n      const typesVersions = packageJson.typesVersions;\n      if (typeof typesVersions === \"object\") {\n        const versionPaths = (_a = getPackageJsonTypesVersionsPaths(typesVersions)) == null ? void 0 : _a.paths;\n        if (versionPaths) {\n          const packageDirectory = getDirectoryPath(packageJsonPath);\n          const pathInPackage = absolutePath.slice(ensureTrailingDirectorySeparator(packageDirectory).length);\n          if (addCompletionEntriesFromPaths(result, pathInPackage, packageDirectory, extensionOptions, program, host, moduleSpecifierResolutionHost, versionPaths)) {\n            return result;\n          }\n        }\n      }\n    }\n  }\n  const ignoreCase = !(host.useCaseSensitiveFileNames && host.useCaseSensitiveFileNames());\n  if (!tryDirectoryExists(host, baseDirectory)) return result;\n  const files = tryReadDirectory(\n    host,\n    baseDirectory,\n    extensionOptions.extensionsToSearch,\n    /*exclude*/\n    void 0,\n    /*include*/\n    [\"./*\"]\n  );\n  if (files) {\n    for (let filePath of files) {\n      filePath = normalizePath(filePath);\n      if (exclude && comparePaths(filePath, exclude, scriptDirectory, ignoreCase) === 0 /* EqualTo */) {\n        continue;\n      }\n      const { name, extension } = getFilenameWithExtensionOption(\n        getBaseFileName(filePath),\n        program,\n        extensionOptions,\n        /*isExportsOrImportsWildcard*/\n        false\n      );\n      result.add(nameAndKind(name, \"script\" /* scriptElement */, extension));\n    }\n  }\n  const directories = tryGetDirectories(host, baseDirectory);\n  if (directories) {\n    for (const directory of directories) {\n      const directoryName = getBaseFileName(normalizePath(directory));\n      if (directoryName !== \"@types\") {\n        result.add(directoryResult(directoryName));\n      }\n    }\n  }\n  return result;\n}\nfunction getFilenameWithExtensionOption(name, program, extensionOptions, isExportsOrImportsWildcard) {\n  const nonJsResult = ts_moduleSpecifiers_exports.tryGetRealFileNameForNonJsDeclarationFileName(name);\n  if (nonJsResult) {\n    return { name: nonJsResult, extension: tryGetExtensionFromPath2(nonJsResult) };\n  }\n  if (extensionOptions.referenceKind === 0 /* Filename */) {\n    return { name, extension: tryGetExtensionFromPath2(name) };\n  }\n  let allowedEndings = ts_moduleSpecifiers_exports.getModuleSpecifierPreferences(\n    { importModuleSpecifierEnding: extensionOptions.endingPreference },\n    program,\n    program.getCompilerOptions(),\n    extensionOptions.importingSourceFile\n  ).getAllowedEndingsInPreferredOrder(extensionOptions.resolutionMode);\n  if (isExportsOrImportsWildcard) {\n    allowedEndings = allowedEndings.filter((e) => e !== 0 /* Minimal */ && e !== 1 /* Index */);\n  }\n  if (allowedEndings[0] === 3 /* TsExtension */) {\n    if (fileExtensionIsOneOf(name, supportedTSImplementationExtensions)) {\n      return { name, extension: tryGetExtensionFromPath2(name) };\n    }\n    const outputExtension2 = ts_moduleSpecifiers_exports.tryGetJSExtensionForFile(name, program.getCompilerOptions());\n    return outputExtension2 ? { name: changeExtension(name, outputExtension2), extension: outputExtension2 } : { name, extension: tryGetExtensionFromPath2(name) };\n  }\n  if (!isExportsOrImportsWildcard && (allowedEndings[0] === 0 /* Minimal */ || allowedEndings[0] === 1 /* Index */) && fileExtensionIsOneOf(name, [\".js\" /* Js */, \".jsx\" /* Jsx */, \".ts\" /* Ts */, \".tsx\" /* Tsx */, \".d.ts\" /* Dts */])) {\n    return { name: removeFileExtension(name), extension: tryGetExtensionFromPath2(name) };\n  }\n  const outputExtension = ts_moduleSpecifiers_exports.tryGetJSExtensionForFile(name, program.getCompilerOptions());\n  return outputExtension ? { name: changeExtension(name, outputExtension), extension: outputExtension } : { name, extension: tryGetExtensionFromPath2(name) };\n}\nfunction addCompletionEntriesFromPaths(result, fragment, baseDirectory, extensionOptions, program, host, moduleSpecifierResolutionHost, paths) {\n  const getPatternsForKey = (key) => paths[key];\n  const comparePaths2 = (a, b) => {\n    const patternA = tryParsePattern(a);\n    const patternB = tryParsePattern(b);\n    const lengthA = typeof patternA === \"object\" ? patternA.prefix.length : a.length;\n    const lengthB = typeof patternB === \"object\" ? patternB.prefix.length : b.length;\n    return compareValues(lengthB, lengthA);\n  };\n  return addCompletionEntriesFromPathsOrExportsOrImports(\n    result,\n    /*isExports*/\n    false,\n    /*isImports*/\n    false,\n    fragment,\n    baseDirectory,\n    extensionOptions,\n    program,\n    host,\n    moduleSpecifierResolutionHost,\n    getOwnKeys(paths),\n    getPatternsForKey,\n    comparePaths2\n  );\n}\nfunction addCompletionEntriesFromPathsOrExportsOrImports(result, isExports, isImports, fragment, baseDirectory, extensionOptions, program, host, moduleSpecifierResolutionHost, keys, getPatternsForKey, comparePaths2) {\n  let pathResults = [];\n  let matchedPath;\n  for (const key of keys) {\n    if (key === \".\") continue;\n    const keyWithoutLeadingDotSlash = key.replace(/^\\.\\//, \"\") + ((isExports || isImports) && endsWith(key, \"/\") ? \"*\" : \"\");\n    const patterns = getPatternsForKey(key);\n    if (patterns) {\n      const pathPattern = tryParsePattern(keyWithoutLeadingDotSlash);\n      if (!pathPattern) continue;\n      const isMatch = typeof pathPattern === \"object\" && isPatternMatch(pathPattern, fragment);\n      const isLongestMatch = isMatch && (matchedPath === void 0 || comparePaths2(keyWithoutLeadingDotSlash, matchedPath) === -1 /* LessThan */);\n      if (isLongestMatch) {\n        matchedPath = keyWithoutLeadingDotSlash;\n        pathResults = pathResults.filter((r) => !r.matchedPattern);\n      }\n      if (typeof pathPattern === \"string\" || matchedPath === void 0 || comparePaths2(keyWithoutLeadingDotSlash, matchedPath) !== 1 /* GreaterThan */) {\n        pathResults.push({\n          matchedPattern: isMatch,\n          results: getCompletionsForPathMapping(keyWithoutLeadingDotSlash, patterns, fragment, baseDirectory, extensionOptions, isExports, isImports, program, host, moduleSpecifierResolutionHost).map(({ name, kind, extension }) => nameAndKind(name, kind, extension))\n        });\n      }\n    }\n  }\n  pathResults.forEach((pathResult) => pathResult.results.forEach((r) => result.add(r)));\n  return matchedPath !== void 0;\n}\nfunction getCompletionEntriesForNonRelativeModules(fragment, scriptPath, mode, program, host, moduleSpecifierResolutionHost, extensionOptions) {\n  const typeChecker = program.getTypeChecker();\n  const compilerOptions = program.getCompilerOptions();\n  const { baseUrl, paths } = compilerOptions;\n  const result = createNameAndKindSet();\n  const moduleResolution = getEmitModuleResolutionKind(compilerOptions);\n  if (baseUrl) {\n    const absolute = normalizePath(combinePaths(host.getCurrentDirectory(), baseUrl));\n    getCompletionEntriesForDirectoryFragment(\n      fragment,\n      absolute,\n      extensionOptions,\n      program,\n      host,\n      moduleSpecifierResolutionHost,\n      /*moduleSpecifierIsRelative*/\n      false,\n      /*exclude*/\n      void 0,\n      result\n    );\n  }\n  if (paths) {\n    const absolute = getPathsBasePath(compilerOptions, host);\n    addCompletionEntriesFromPaths(result, fragment, absolute, extensionOptions, program, host, moduleSpecifierResolutionHost, paths);\n  }\n  const fragmentDirectory = getFragmentDirectory(fragment);\n  for (const ambientName of getAmbientModuleCompletions(fragment, fragmentDirectory, typeChecker)) {\n    result.add(nameAndKind(\n      ambientName,\n      \"external module name\" /* externalModuleName */,\n      /*extension*/\n      void 0\n    ));\n  }\n  getCompletionEntriesFromTypings(program, host, moduleSpecifierResolutionHost, scriptPath, fragmentDirectory, extensionOptions, result);\n  if (moduleResolutionUsesNodeModules(moduleResolution)) {\n    let foundGlobal = false;\n    if (fragmentDirectory === void 0) {\n      for (const moduleName of enumerateNodeModulesVisibleToScript(host, scriptPath)) {\n        const moduleResult = nameAndKind(\n          moduleName,\n          \"external module name\" /* externalModuleName */,\n          /*extension*/\n          void 0\n        );\n        if (!result.has(moduleResult.name)) {\n          foundGlobal = true;\n          result.add(moduleResult);\n        }\n      }\n    }\n    if (!foundGlobal) {\n      const resolvePackageJsonExports = getResolvePackageJsonExports(compilerOptions);\n      const resolvePackageJsonImports = getResolvePackageJsonImports(compilerOptions);\n      let seenPackageScope = false;\n      const importsLookup = (directory) => {\n        if (resolvePackageJsonImports && !seenPackageScope) {\n          const packageFile = combinePaths(directory, \"package.json\");\n          if (seenPackageScope = tryFileExists(host, packageFile)) {\n            const packageJson = readJson(packageFile, host);\n            exportsOrImportsLookup(\n              packageJson.imports,\n              fragment,\n              directory,\n              /*isExports*/\n              false,\n              /*isImports*/\n              true\n            );\n          }\n        }\n      };\n      let ancestorLookup = (ancestor) => {\n        const nodeModules = combinePaths(ancestor, \"node_modules\");\n        if (tryDirectoryExists(host, nodeModules)) {\n          getCompletionEntriesForDirectoryFragment(\n            fragment,\n            nodeModules,\n            extensionOptions,\n            program,\n            host,\n            moduleSpecifierResolutionHost,\n            /*moduleSpecifierIsRelative*/\n            false,\n            /*exclude*/\n            void 0,\n            result\n          );\n        }\n        importsLookup(ancestor);\n      };\n      if (fragmentDirectory && resolvePackageJsonExports) {\n        const nodeModulesDirectoryOrImportsLookup = ancestorLookup;\n        ancestorLookup = (ancestor) => {\n          const components = getPathComponents(fragment);\n          components.shift();\n          let packagePath = components.shift();\n          if (!packagePath) {\n            return nodeModulesDirectoryOrImportsLookup(ancestor);\n          }\n          if (startsWith(packagePath, \"@\")) {\n            const subName = components.shift();\n            if (!subName) {\n              return nodeModulesDirectoryOrImportsLookup(ancestor);\n            }\n            packagePath = combinePaths(packagePath, subName);\n          }\n          if (resolvePackageJsonImports && startsWith(packagePath, \"#\")) {\n            return importsLookup(ancestor);\n          }\n          const packageDirectory = combinePaths(ancestor, \"node_modules\", packagePath);\n          const packageFile = combinePaths(packageDirectory, \"package.json\");\n          if (tryFileExists(host, packageFile)) {\n            const packageJson = readJson(packageFile, host);\n            const fragmentSubpath = components.join(\"/\") + (components.length && hasTrailingDirectorySeparator(fragment) ? \"/\" : \"\");\n            exportsOrImportsLookup(\n              packageJson.exports,\n              fragmentSubpath,\n              packageDirectory,\n              /*isExports*/\n              true,\n              /*isImports*/\n              false\n            );\n            return;\n          }\n          return nodeModulesDirectoryOrImportsLookup(ancestor);\n        };\n      }\n      forEachAncestorDirectoryStoppingAtGlobalCache(host, scriptPath, ancestorLookup);\n    }\n  }\n  return arrayFrom(result.values());\n  function exportsOrImportsLookup(lookupTable, fragment2, baseDirectory, isExports, isImports) {\n    if (typeof lookupTable !== \"object\" || lookupTable === null) {\n      return;\n    }\n    const keys = getOwnKeys(lookupTable);\n    const conditions = getConditions(compilerOptions, mode);\n    addCompletionEntriesFromPathsOrExportsOrImports(\n      result,\n      isExports,\n      isImports,\n      fragment2,\n      baseDirectory,\n      extensionOptions,\n      program,\n      host,\n      moduleSpecifierResolutionHost,\n      keys,\n      (key) => {\n        const pattern = getPatternFromFirstMatchingCondition(lookupTable[key], conditions);\n        if (pattern === void 0) {\n          return void 0;\n        }\n        return singleElementArray(endsWith(key, \"/\") && endsWith(pattern, \"/\") ? pattern + \"*\" : pattern);\n      },\n      comparePatternKeys\n    );\n  }\n}\nfunction getPatternFromFirstMatchingCondition(target, conditions) {\n  if (typeof target === \"string\") {\n    return target;\n  }\n  if (target && typeof target === \"object\" && !isArray(target)) {\n    for (const condition in target) {\n      if (condition === \"default\" || conditions.includes(condition) || isApplicableVersionedTypesKey(conditions, condition)) {\n        const pattern = target[condition];\n        return getPatternFromFirstMatchingCondition(pattern, conditions);\n      }\n    }\n  }\n}\nfunction getFragmentDirectory(fragment) {\n  return containsSlash(fragment) ? hasTrailingDirectorySeparator(fragment) ? fragment : getDirectoryPath(fragment) : void 0;\n}\nfunction getCompletionsForPathMapping(path, patterns, fragment, packageDirectory, extensionOptions, isExports, isImports, program, host, moduleSpecifierResolutionHost) {\n  const parsedPath = tryParsePattern(path);\n  if (!parsedPath) {\n    return emptyArray;\n  }\n  if (typeof parsedPath === \"string\") {\n    return justPathMappingName(path, \"script\" /* scriptElement */);\n  }\n  const remainingFragment = tryRemovePrefix(fragment, parsedPath.prefix);\n  if (remainingFragment === void 0) {\n    const starIsFullPathComponent = endsWith(path, \"/*\");\n    return starIsFullPathComponent ? justPathMappingName(parsedPath.prefix, \"directory\" /* directory */) : flatMap(patterns, (pattern) => {\n      var _a;\n      return (_a = getModulesForPathsPattern(\"\", packageDirectory, pattern, extensionOptions, isExports, isImports, program, host, moduleSpecifierResolutionHost)) == null ? void 0 : _a.map(({ name, ...rest }) => ({ name: parsedPath.prefix + name + parsedPath.suffix, ...rest }));\n    });\n  }\n  return flatMap(patterns, (pattern) => getModulesForPathsPattern(remainingFragment, packageDirectory, pattern, extensionOptions, isExports, isImports, program, host, moduleSpecifierResolutionHost));\n  function justPathMappingName(name, kind) {\n    return startsWith(name, fragment) ? [{ name: removeTrailingDirectorySeparator(name), kind, extension: void 0 }] : emptyArray;\n  }\n}\nfunction getModulesForPathsPattern(fragment, packageDirectory, pattern, extensionOptions, isExports, isImports, program, host, moduleSpecifierResolutionHost) {\n  if (!host.readDirectory) {\n    return void 0;\n  }\n  const parsed = tryParsePattern(pattern);\n  if (parsed === void 0 || isString(parsed)) {\n    return void 0;\n  }\n  const normalizedPrefix = resolvePath(parsed.prefix);\n  const normalizedPrefixDirectory = hasTrailingDirectorySeparator(parsed.prefix) ? normalizedPrefix : getDirectoryPath(normalizedPrefix);\n  const normalizedPrefixBase = hasTrailingDirectorySeparator(parsed.prefix) ? \"\" : getBaseFileName(normalizedPrefix);\n  const fragmentHasPath = containsSlash(fragment);\n  const fragmentDirectory = fragmentHasPath ? hasTrailingDirectorySeparator(fragment) ? fragment : getDirectoryPath(fragment) : void 0;\n  const getCommonSourceDirectory2 = () => moduleSpecifierResolutionHost.getCommonSourceDirectory();\n  const ignoreCase = !hostUsesCaseSensitiveFileNames(moduleSpecifierResolutionHost);\n  const outDir = program.getCompilerOptions().outDir;\n  const declarationDir = program.getCompilerOptions().declarationDir;\n  const expandedPrefixDirectory = fragmentHasPath ? combinePaths(normalizedPrefixDirectory, normalizedPrefixBase + fragmentDirectory) : normalizedPrefixDirectory;\n  const baseDirectory = normalizePath(combinePaths(packageDirectory, expandedPrefixDirectory));\n  const possibleInputBaseDirectoryForOutDir = isImports && outDir && getPossibleOriginalInputPathWithoutChangingExt(baseDirectory, ignoreCase, outDir, getCommonSourceDirectory2);\n  const possibleInputBaseDirectoryForDeclarationDir = isImports && declarationDir && getPossibleOriginalInputPathWithoutChangingExt(baseDirectory, ignoreCase, declarationDir, getCommonSourceDirectory2);\n  const normalizedSuffix = normalizePath(parsed.suffix);\n  const declarationExtension = normalizedSuffix && getDeclarationEmitExtensionForPath(\"_\" + normalizedSuffix);\n  const inputExtension = normalizedSuffix ? getPossibleOriginalInputExtensionForExtension(\"_\" + normalizedSuffix) : void 0;\n  const matchingSuffixes = [\n    declarationExtension && changeExtension(normalizedSuffix, declarationExtension),\n    ...inputExtension ? inputExtension.map((ext) => changeExtension(normalizedSuffix, ext)) : [],\n    normalizedSuffix\n  ].filter(isString);\n  const includeGlobs = normalizedSuffix ? matchingSuffixes.map((suffix) => \"**/*\" + suffix) : [\"./*\"];\n  const isExportsOrImportsWildcard = (isExports || isImports) && endsWith(pattern, \"/*\");\n  let matches = getMatchesWithPrefix(baseDirectory);\n  if (possibleInputBaseDirectoryForOutDir) {\n    matches = concatenate(matches, getMatchesWithPrefix(possibleInputBaseDirectoryForOutDir));\n  }\n  if (possibleInputBaseDirectoryForDeclarationDir) {\n    matches = concatenate(matches, getMatchesWithPrefix(possibleInputBaseDirectoryForDeclarationDir));\n  }\n  if (!normalizedSuffix) {\n    matches = concatenate(matches, getDirectoryMatches(baseDirectory));\n    if (possibleInputBaseDirectoryForOutDir) {\n      matches = concatenate(matches, getDirectoryMatches(possibleInputBaseDirectoryForOutDir));\n    }\n    if (possibleInputBaseDirectoryForDeclarationDir) {\n      matches = concatenate(matches, getDirectoryMatches(possibleInputBaseDirectoryForDeclarationDir));\n    }\n  }\n  return matches;\n  function getMatchesWithPrefix(directory) {\n    const completePrefix = fragmentHasPath ? directory : ensureTrailingDirectorySeparator(directory) + normalizedPrefixBase;\n    return mapDefined(tryReadDirectory(\n      host,\n      directory,\n      extensionOptions.extensionsToSearch,\n      /*exclude*/\n      void 0,\n      includeGlobs\n    ), (match) => {\n      const trimmedWithPattern = trimPrefixAndSuffix(match, completePrefix);\n      if (trimmedWithPattern) {\n        if (containsSlash(trimmedWithPattern)) {\n          return directoryResult(getPathComponents(removeLeadingDirectorySeparator(trimmedWithPattern))[1]);\n        }\n        const { name, extension } = getFilenameWithExtensionOption(trimmedWithPattern, program, extensionOptions, isExportsOrImportsWildcard);\n        return nameAndKind(name, \"script\" /* scriptElement */, extension);\n      }\n    });\n  }\n  function getDirectoryMatches(directoryName) {\n    return mapDefined(tryGetDirectories(host, directoryName), (dir) => dir === \"node_modules\" ? void 0 : directoryResult(dir));\n  }\n  function trimPrefixAndSuffix(path, prefix) {\n    return firstDefined(matchingSuffixes, (suffix) => {\n      const inner = withoutStartAndEnd(normalizePath(path), prefix, suffix);\n      return inner === void 0 ? void 0 : removeLeadingDirectorySeparator(inner);\n    });\n  }\n}\nfunction withoutStartAndEnd(s, start, end) {\n  return startsWith(s, start) && endsWith(s, end) ? s.slice(start.length, s.length - end.length) : void 0;\n}\nfunction removeLeadingDirectorySeparator(path) {\n  return path[0] === directorySeparator ? path.slice(1) : path;\n}\nfunction getAmbientModuleCompletions(fragment, fragmentDirectory, checker) {\n  const ambientModules = checker.getAmbientModules().map((sym) => stripQuotes(sym.name));\n  const nonRelativeModuleNames = ambientModules.filter((moduleName) => startsWith(moduleName, fragment) && !moduleName.includes(\"*\"));\n  if (fragmentDirectory !== void 0) {\n    const moduleNameWithSeparator = ensureTrailingDirectorySeparator(fragmentDirectory);\n    return nonRelativeModuleNames.map((nonRelativeModuleName) => removePrefix(nonRelativeModuleName, moduleNameWithSeparator));\n  }\n  return nonRelativeModuleNames;\n}\nfunction getTripleSlashReferenceCompletion(sourceFile, position, program, host, moduleSpecifierResolutionHost) {\n  const compilerOptions = program.getCompilerOptions();\n  const token = getTokenAtPosition(sourceFile, position);\n  const commentRanges = getLeadingCommentRanges(sourceFile.text, token.pos);\n  const range = commentRanges && find(commentRanges, (commentRange) => position >= commentRange.pos && position <= commentRange.end);\n  if (!range) {\n    return void 0;\n  }\n  const text = sourceFile.text.slice(range.pos, position);\n  const match = tripleSlashDirectiveFragmentRegex.exec(text);\n  if (!match) {\n    return void 0;\n  }\n  const [, prefix, kind, toComplete] = match;\n  const scriptPath = getDirectoryPath(sourceFile.path);\n  const names = kind === \"path\" ? getCompletionEntriesForDirectoryFragment(\n    toComplete,\n    scriptPath,\n    getExtensionOptions(compilerOptions, 0 /* Filename */, sourceFile),\n    program,\n    host,\n    moduleSpecifierResolutionHost,\n    /*moduleSpecifierIsRelative*/\n    true,\n    sourceFile.path\n  ) : kind === \"types\" ? getCompletionEntriesFromTypings(program, host, moduleSpecifierResolutionHost, scriptPath, getFragmentDirectory(toComplete), getExtensionOptions(compilerOptions, 1 /* ModuleSpecifier */, sourceFile)) : Debug.fail();\n  return addReplacementSpans(toComplete, range.pos + prefix.length, arrayFrom(names.values()));\n}\nfunction getCompletionEntriesFromTypings(program, host, moduleSpecifierResolutionHost, scriptPath, fragmentDirectory, extensionOptions, result = createNameAndKindSet()) {\n  const options = program.getCompilerOptions();\n  const seen = /* @__PURE__ */ new Map();\n  const typeRoots = tryAndIgnoreErrors(() => getEffectiveTypeRoots(options, host)) || emptyArray;\n  for (const root of typeRoots) {\n    getCompletionEntriesFromDirectories(root);\n  }\n  for (const packageJson of findPackageJsons(scriptPath, host)) {\n    const typesDir = combinePaths(getDirectoryPath(packageJson), \"node_modules/@types\");\n    getCompletionEntriesFromDirectories(typesDir);\n  }\n  return result;\n  function getCompletionEntriesFromDirectories(directory) {\n    if (!tryDirectoryExists(host, directory)) return;\n    for (const typeDirectoryName of tryGetDirectories(host, directory)) {\n      const packageName = unmangleScopedPackageName(typeDirectoryName);\n      if (options.types && !contains(options.types, packageName)) continue;\n      if (fragmentDirectory === void 0) {\n        if (!seen.has(packageName)) {\n          result.add(nameAndKind(\n            packageName,\n            \"external module name\" /* externalModuleName */,\n            /*extension*/\n            void 0\n          ));\n          seen.set(packageName, true);\n        }\n      } else {\n        const baseDirectory = combinePaths(directory, typeDirectoryName);\n        const remainingFragment = tryRemoveDirectoryPrefix(fragmentDirectory, packageName, hostGetCanonicalFileName(host));\n        if (remainingFragment !== void 0) {\n          getCompletionEntriesForDirectoryFragment(\n            remainingFragment,\n            baseDirectory,\n            extensionOptions,\n            program,\n            host,\n            moduleSpecifierResolutionHost,\n            /*moduleSpecifierIsRelative*/\n            false,\n            /*exclude*/\n            void 0,\n            result\n          );\n        }\n      }\n    }\n  }\n}\nfunction enumerateNodeModulesVisibleToScript(host, scriptPath) {\n  if (!host.readFile || !host.fileExists) return emptyArray;\n  const result = [];\n  for (const packageJson of findPackageJsons(scriptPath, host)) {\n    const contents = readJson(packageJson, host);\n    for (const key of nodeModulesDependencyKeys) {\n      const dependencies = contents[key];\n      if (!dependencies) continue;\n      for (const dep in dependencies) {\n        if (hasProperty(dependencies, dep) && !startsWith(dep, \"@types/\")) {\n          result.push(dep);\n        }\n      }\n    }\n  }\n  return result;\n}\nfunction getDirectoryFragmentTextSpan(text, textStart) {\n  const index = Math.max(text.lastIndexOf(directorySeparator), text.lastIndexOf(altDirectorySeparator));\n  const offset = index !== -1 ? index + 1 : 0;\n  const length2 = text.length - offset;\n  return length2 === 0 || isIdentifierText(text.substr(offset, length2), 99 /* ESNext */) ? void 0 : createTextSpan(textStart + offset, length2);\n}\nfunction isPathRelativeToScript(path) {\n  if (path && path.length >= 2 && path.charCodeAt(0) === 46 /* dot */) {\n    const slashIndex = path.length >= 3 && path.charCodeAt(1) === 46 /* dot */ ? 2 : 1;\n    const slashCharCode = path.charCodeAt(slashIndex);\n    return slashCharCode === 47 /* slash */ || slashCharCode === 92 /* backslash */;\n  }\n  return false;\n}\nvar tripleSlashDirectiveFragmentRegex = /^(\\/\\/\\/\\s*<reference\\s+(path|types)\\s*=\\s*(?:'|\"))([^\\x03\"]*)$/;\nvar nodeModulesDependencyKeys = [\"dependencies\", \"devDependencies\", \"peerDependencies\", \"optionalDependencies\"];\nfunction containsSlash(fragment) {\n  return fragment.includes(directorySeparator);\n}\nfunction isRequireCallArgument(node) {\n  return isCallExpression(node.parent) && firstOrUndefined(node.parent.arguments) === node && isIdentifier(node.parent.expression) && node.parent.expression.escapedText === \"require\";\n}\n\n// src/services/_namespaces/ts.FindAllReferences.ts\nvar ts_FindAllReferences_exports = {};\n__export(ts_FindAllReferences_exports, {\n  Core: () => Core,\n  DefinitionKind: () => DefinitionKind,\n  EntryKind: () => EntryKind,\n  ExportKind: () => ExportKind2,\n  FindReferencesUse: () => FindReferencesUse,\n  ImportExport: () => ImportExport,\n  createImportTracker: () => createImportTracker,\n  findModuleReferences: () => findModuleReferences,\n  findReferenceOrRenameEntries: () => findReferenceOrRenameEntries,\n  findReferencedSymbols: () => findReferencedSymbols,\n  getContextNode: () => getContextNode,\n  getExportInfo: () => getExportInfo,\n  getImplementationsAtPosition: () => getImplementationsAtPosition,\n  getImportOrExportSymbol: () => getImportOrExportSymbol,\n  getReferenceEntriesForNode: () => getReferenceEntriesForNode,\n  isContextWithStartAndEndNode: () => isContextWithStartAndEndNode,\n  isDeclarationOfSymbol: () => isDeclarationOfSymbol,\n  isWriteAccessForReference: () => isWriteAccessForReference,\n  toContextSpan: () => toContextSpan,\n  toHighlightSpan: () => toHighlightSpan,\n  toReferenceEntry: () => toReferenceEntry,\n  toRenameLocation: () => toRenameLocation\n});\n\n// src/services/importTracker.ts\nfunction createImportTracker(sourceFiles, sourceFilesSet, checker, cancellationToken) {\n  const allDirectImports = getDirectImportsMap(sourceFiles, checker, cancellationToken);\n  return (exportSymbol, exportInfo, isForRename) => {\n    const { directImports, indirectUsers } = getImportersForExport(sourceFiles, sourceFilesSet, allDirectImports, exportInfo, checker, cancellationToken);\n    return { indirectUsers, ...getSearchesFromDirectImports(directImports, exportSymbol, exportInfo.exportKind, checker, isForRename) };\n  };\n}\nvar ExportKind2 = /* @__PURE__ */ ((ExportKind3) => {\n  ExportKind3[ExportKind3[\"Named\"] = 0] = \"Named\";\n  ExportKind3[ExportKind3[\"Default\"] = 1] = \"Default\";\n  ExportKind3[ExportKind3[\"ExportEquals\"] = 2] = \"ExportEquals\";\n  return ExportKind3;\n})(ExportKind2 || {});\nvar ImportExport = /* @__PURE__ */ ((ImportExport2) => {\n  ImportExport2[ImportExport2[\"Import\"] = 0] = \"Import\";\n  ImportExport2[ImportExport2[\"Export\"] = 1] = \"Export\";\n  return ImportExport2;\n})(ImportExport || {});\nfunction getImportersForExport(sourceFiles, sourceFilesSet, allDirectImports, { exportingModuleSymbol, exportKind }, checker, cancellationToken) {\n  const markSeenDirectImport = nodeSeenTracker();\n  const markSeenIndirectUser = nodeSeenTracker();\n  const directImports = [];\n  const isAvailableThroughGlobal = !!exportingModuleSymbol.globalExports;\n  const indirectUserDeclarations = isAvailableThroughGlobal ? void 0 : [];\n  handleDirectImports(exportingModuleSymbol);\n  return { directImports, indirectUsers: getIndirectUsers() };\n  function getIndirectUsers() {\n    if (isAvailableThroughGlobal) {\n      return sourceFiles;\n    }\n    if (exportingModuleSymbol.declarations) {\n      for (const decl of exportingModuleSymbol.declarations) {\n        if (isExternalModuleAugmentation(decl) && sourceFilesSet.has(decl.getSourceFile().fileName)) {\n          addIndirectUser(decl);\n        }\n      }\n    }\n    return indirectUserDeclarations.map(getSourceFileOfNode);\n  }\n  function handleDirectImports(exportingModuleSymbol2) {\n    const theseDirectImports = getDirectImports(exportingModuleSymbol2);\n    if (theseDirectImports) {\n      for (const direct of theseDirectImports) {\n        if (!markSeenDirectImport(direct)) {\n          continue;\n        }\n        if (cancellationToken) cancellationToken.throwIfCancellationRequested();\n        switch (direct.kind) {\n          case 214 /* CallExpression */:\n            if (isImportCall(direct)) {\n              handleImportCall(direct);\n              break;\n            }\n            if (!isAvailableThroughGlobal) {\n              const parent2 = direct.parent;\n              if (exportKind === 2 /* ExportEquals */ && parent2.kind === 261 /* VariableDeclaration */) {\n                const { name } = parent2;\n                if (name.kind === 80 /* Identifier */) {\n                  directImports.push(name);\n                  break;\n                }\n              }\n            }\n            break;\n          case 80 /* Identifier */:\n            break;\n          // TODO: GH#23879\n          case 272 /* ImportEqualsDeclaration */:\n            handleNamespaceImport(\n              direct,\n              direct.name,\n              hasSyntacticModifier(direct, 32 /* Export */),\n              /*alreadyAddedDirect*/\n              false\n            );\n            break;\n          case 273 /* ImportDeclaration */:\n          case 352 /* JSDocImportTag */:\n            directImports.push(direct);\n            const namedBindings = direct.importClause && direct.importClause.namedBindings;\n            if (namedBindings && namedBindings.kind === 275 /* NamespaceImport */) {\n              handleNamespaceImport(\n                direct,\n                namedBindings.name,\n                /*isReExport*/\n                false,\n                /*alreadyAddedDirect*/\n                true\n              );\n            } else if (!isAvailableThroughGlobal && isDefaultImport(direct)) {\n              addIndirectUser(getSourceFileLikeForImportDeclaration(direct));\n            }\n            break;\n          case 279 /* ExportDeclaration */:\n            if (!direct.exportClause) {\n              handleDirectImports(getContainingModuleSymbol(direct, checker));\n            } else if (direct.exportClause.kind === 281 /* NamespaceExport */) {\n              addIndirectUser(\n                getSourceFileLikeForImportDeclaration(direct),\n                /*addTransitiveDependencies*/\n                true\n              );\n            } else {\n              directImports.push(direct);\n            }\n            break;\n          case 206 /* ImportType */:\n            if (!isAvailableThroughGlobal && direct.isTypeOf && !direct.qualifier && isExported2(direct)) {\n              addIndirectUser(\n                direct.getSourceFile(),\n                /*addTransitiveDependencies*/\n                true\n              );\n            }\n            directImports.push(direct);\n            break;\n          default:\n            Debug.failBadSyntaxKind(direct, \"Unexpected import kind.\");\n        }\n      }\n    }\n  }\n  function handleImportCall(importCall) {\n    const top = findAncestor(importCall, isAmbientModuleDeclaration) || importCall.getSourceFile();\n    addIndirectUser(\n      top,\n      /** addTransitiveDependencies */\n      !!isExported2(\n        importCall,\n        /*stopAtAmbientModule*/\n        true\n      )\n    );\n  }\n  function isExported2(node, stopAtAmbientModule = false) {\n    return findAncestor(node, (node2) => {\n      if (stopAtAmbientModule && isAmbientModuleDeclaration(node2)) return \"quit\";\n      return canHaveModifiers(node2) && some(node2.modifiers, isExportModifier);\n    });\n  }\n  function handleNamespaceImport(importDeclaration, name, isReExport, alreadyAddedDirect) {\n    if (exportKind === 2 /* ExportEquals */) {\n      if (!alreadyAddedDirect) directImports.push(importDeclaration);\n    } else if (!isAvailableThroughGlobal) {\n      const sourceFileLike = getSourceFileLikeForImportDeclaration(importDeclaration);\n      Debug.assert(sourceFileLike.kind === 308 /* SourceFile */ || sourceFileLike.kind === 268 /* ModuleDeclaration */);\n      if (isReExport || findNamespaceReExports(sourceFileLike, name, checker)) {\n        addIndirectUser(\n          sourceFileLike,\n          /*addTransitiveDependencies*/\n          true\n        );\n      } else {\n        addIndirectUser(sourceFileLike);\n      }\n    }\n  }\n  function addIndirectUser(sourceFileLike, addTransitiveDependencies = false) {\n    Debug.assert(!isAvailableThroughGlobal);\n    const isNew = markSeenIndirectUser(sourceFileLike);\n    if (!isNew) return;\n    indirectUserDeclarations.push(sourceFileLike);\n    if (!addTransitiveDependencies) return;\n    const moduleSymbol = checker.getMergedSymbol(sourceFileLike.symbol);\n    if (!moduleSymbol) return;\n    Debug.assert(!!(moduleSymbol.flags & 1536 /* Module */));\n    const directImports2 = getDirectImports(moduleSymbol);\n    if (directImports2) {\n      for (const directImport of directImports2) {\n        if (!isImportTypeNode(directImport)) {\n          addIndirectUser(\n            getSourceFileLikeForImportDeclaration(directImport),\n            /*addTransitiveDependencies*/\n            true\n          );\n        }\n      }\n    }\n  }\n  function getDirectImports(moduleSymbol) {\n    return allDirectImports.get(getSymbolId(moduleSymbol).toString());\n  }\n}\nfunction getSearchesFromDirectImports(directImports, exportSymbol, exportKind, checker, isForRename) {\n  const importSearches = [];\n  const singleReferences = [];\n  function addSearch(location, symbol) {\n    importSearches.push([location, symbol]);\n  }\n  if (directImports) {\n    for (const decl of directImports) {\n      handleImport(decl);\n    }\n  }\n  return { importSearches, singleReferences };\n  function handleImport(decl) {\n    if (decl.kind === 272 /* ImportEqualsDeclaration */) {\n      if (isExternalModuleImportEquals(decl)) {\n        handleNamespaceImportLike(decl.name);\n      }\n      return;\n    }\n    if (decl.kind === 80 /* Identifier */) {\n      handleNamespaceImportLike(decl);\n      return;\n    }\n    if (decl.kind === 206 /* ImportType */) {\n      if (decl.qualifier) {\n        const firstIdentifier = getFirstIdentifier(decl.qualifier);\n        if (firstIdentifier.escapedText === symbolName(exportSymbol)) {\n          singleReferences.push(firstIdentifier);\n        }\n      } else if (exportKind === 2 /* ExportEquals */) {\n        singleReferences.push(decl.argument.literal);\n      }\n      return;\n    }\n    if (decl.moduleSpecifier.kind !== 11 /* StringLiteral */) {\n      return;\n    }\n    if (decl.kind === 279 /* ExportDeclaration */) {\n      if (decl.exportClause && isNamedExports(decl.exportClause)) {\n        searchForNamedImport(decl.exportClause);\n      }\n      return;\n    }\n    const { name, namedBindings } = decl.importClause || { name: void 0, namedBindings: void 0 };\n    if (namedBindings) {\n      switch (namedBindings.kind) {\n        case 275 /* NamespaceImport */:\n          handleNamespaceImportLike(namedBindings.name);\n          break;\n        case 276 /* NamedImports */:\n          if (exportKind === 0 /* Named */ || exportKind === 1 /* Default */) {\n            searchForNamedImport(namedBindings);\n          }\n          break;\n        default:\n          Debug.assertNever(namedBindings);\n      }\n    }\n    if (name && (exportKind === 1 /* Default */ || exportKind === 2 /* ExportEquals */) && (!isForRename || name.escapedText === symbolEscapedNameNoDefault(exportSymbol))) {\n      const defaultImportAlias = checker.getSymbolAtLocation(name);\n      addSearch(name, defaultImportAlias);\n    }\n  }\n  function handleNamespaceImportLike(importName) {\n    if (exportKind === 2 /* ExportEquals */ && (!isForRename || isNameMatch(importName.escapedText))) {\n      addSearch(importName, checker.getSymbolAtLocation(importName));\n    }\n  }\n  function searchForNamedImport(namedBindings) {\n    if (!namedBindings) {\n      return;\n    }\n    for (const element of namedBindings.elements) {\n      const { name, propertyName } = element;\n      if (!isNameMatch(moduleExportNameTextEscaped(propertyName || name))) {\n        continue;\n      }\n      if (propertyName) {\n        singleReferences.push(propertyName);\n        if (!isForRename || moduleExportNameTextEscaped(name) === exportSymbol.escapedName) {\n          addSearch(name, checker.getSymbolAtLocation(name));\n        }\n      } else {\n        const localSymbol = element.kind === 282 /* ExportSpecifier */ && element.propertyName ? checker.getExportSpecifierLocalTargetSymbol(element) : checker.getSymbolAtLocation(name);\n        addSearch(name, localSymbol);\n      }\n    }\n  }\n  function isNameMatch(name) {\n    return name === exportSymbol.escapedName || exportKind !== 0 /* Named */ && name === \"default\" /* Default */;\n  }\n}\nfunction findNamespaceReExports(sourceFileLike, name, checker) {\n  const namespaceImportSymbol = checker.getSymbolAtLocation(name);\n  return !!forEachPossibleImportOrExportStatement(sourceFileLike, (statement) => {\n    if (!isExportDeclaration(statement)) return;\n    const { exportClause, moduleSpecifier } = statement;\n    return !moduleSpecifier && exportClause && isNamedExports(exportClause) && exportClause.elements.some((element) => checker.getExportSpecifierLocalTargetSymbol(element) === namespaceImportSymbol);\n  });\n}\nfunction findModuleReferences(program, sourceFiles, searchModuleSymbol) {\n  var _a;\n  const refs = [];\n  const checker = program.getTypeChecker();\n  for (const referencingFile of sourceFiles) {\n    const searchSourceFile = searchModuleSymbol.valueDeclaration;\n    if ((searchSourceFile == null ? void 0 : searchSourceFile.kind) === 308 /* SourceFile */) {\n      for (const ref of referencingFile.referencedFiles) {\n        if (program.getSourceFileFromReference(referencingFile, ref) === searchSourceFile) {\n          refs.push({ kind: \"reference\", referencingFile, ref });\n        }\n      }\n      for (const ref of referencingFile.typeReferenceDirectives) {\n        const referenced = (_a = program.getResolvedTypeReferenceDirectiveFromTypeReferenceDirective(ref, referencingFile)) == null ? void 0 : _a.resolvedTypeReferenceDirective;\n        if (referenced !== void 0 && referenced.resolvedFileName === searchSourceFile.fileName) {\n          refs.push({ kind: \"reference\", referencingFile, ref });\n        }\n      }\n    }\n    forEachImport(referencingFile, (importDecl, moduleSpecifier) => {\n      const moduleSymbol = checker.getSymbolAtLocation(moduleSpecifier);\n      if (moduleSymbol === searchModuleSymbol) {\n        refs.push(nodeIsSynthesized(importDecl) ? { kind: \"implicit\", literal: moduleSpecifier, referencingFile } : { kind: \"import\", literal: moduleSpecifier });\n      }\n    });\n  }\n  return refs;\n}\nfunction getDirectImportsMap(sourceFiles, checker, cancellationToken) {\n  const map2 = /* @__PURE__ */ new Map();\n  for (const sourceFile of sourceFiles) {\n    if (cancellationToken) cancellationToken.throwIfCancellationRequested();\n    forEachImport(sourceFile, (importDecl, moduleSpecifier) => {\n      const moduleSymbol = checker.getSymbolAtLocation(moduleSpecifier);\n      if (moduleSymbol) {\n        const id = getSymbolId(moduleSymbol).toString();\n        let imports = map2.get(id);\n        if (!imports) {\n          map2.set(id, imports = []);\n        }\n        imports.push(importDecl);\n      }\n    });\n  }\n  return map2;\n}\nfunction forEachPossibleImportOrExportStatement(sourceFileLike, action) {\n  return forEach(sourceFileLike.kind === 308 /* SourceFile */ ? sourceFileLike.statements : sourceFileLike.body.statements, (statement) => (\n    // TODO: GH#18217\n    action(statement) || isAmbientModuleDeclaration(statement) && forEach(statement.body && statement.body.statements, action)\n  ));\n}\nfunction forEachImport(sourceFile, action) {\n  if (sourceFile.externalModuleIndicator || sourceFile.imports !== void 0) {\n    for (const i of sourceFile.imports) {\n      action(importFromModuleSpecifier(i), i);\n    }\n  } else {\n    forEachPossibleImportOrExportStatement(sourceFile, (statement) => {\n      switch (statement.kind) {\n        case 279 /* ExportDeclaration */:\n        case 273 /* ImportDeclaration */: {\n          const decl = statement;\n          if (decl.moduleSpecifier && isStringLiteral(decl.moduleSpecifier)) {\n            action(decl, decl.moduleSpecifier);\n          }\n          break;\n        }\n        case 272 /* ImportEqualsDeclaration */: {\n          const decl = statement;\n          if (isExternalModuleImportEquals(decl)) {\n            action(decl, decl.moduleReference.expression);\n          }\n          break;\n        }\n      }\n    });\n  }\n}\nfunction getImportOrExportSymbol(node, symbol, checker, comingFromExport) {\n  return comingFromExport ? getExport() : getExport() || getImport();\n  function getExport() {\n    var _a;\n    const { parent: parent2 } = node;\n    const grandparent = parent2.parent;\n    if (symbol.exportSymbol) {\n      if (parent2.kind === 212 /* PropertyAccessExpression */) {\n        return ((_a = symbol.declarations) == null ? void 0 : _a.some((d) => d === parent2)) && isBinaryExpression(grandparent) ? getSpecialPropertyExport(\n          grandparent,\n          /*useLhsSymbol*/\n          false\n        ) : void 0;\n      } else {\n        return exportInfo(symbol.exportSymbol, getExportKindForDeclaration(parent2));\n      }\n    } else {\n      const exportNode = getExportNode(parent2, node);\n      if (exportNode && hasSyntacticModifier(exportNode, 32 /* Export */)) {\n        if (isImportEqualsDeclaration(exportNode) && exportNode.moduleReference === node) {\n          if (comingFromExport) {\n            return void 0;\n          }\n          const lhsSymbol = checker.getSymbolAtLocation(exportNode.name);\n          return { kind: 0 /* Import */, symbol: lhsSymbol };\n        } else {\n          return exportInfo(symbol, getExportKindForDeclaration(exportNode));\n        }\n      } else if (isNamespaceExport(parent2)) {\n        return exportInfo(symbol, 0 /* Named */);\n      } else if (isExportAssignment(parent2)) {\n        return getExportAssignmentExport(parent2);\n      } else if (isExportAssignment(grandparent)) {\n        return getExportAssignmentExport(grandparent);\n      } else if (isBinaryExpression(parent2)) {\n        return getSpecialPropertyExport(\n          parent2,\n          /*useLhsSymbol*/\n          true\n        );\n      } else if (isBinaryExpression(grandparent)) {\n        return getSpecialPropertyExport(\n          grandparent,\n          /*useLhsSymbol*/\n          true\n        );\n      } else if (isJSDocTypedefTag(parent2) || isJSDocCallbackTag(parent2)) {\n        return exportInfo(symbol, 0 /* Named */);\n      }\n    }\n    function getExportAssignmentExport(ex) {\n      if (!ex.symbol.parent) return void 0;\n      const exportKind = ex.isExportEquals ? 2 /* ExportEquals */ : 1 /* Default */;\n      return { kind: 1 /* Export */, symbol, exportInfo: { exportingModuleSymbol: ex.symbol.parent, exportKind } };\n    }\n    function getSpecialPropertyExport(node2, useLhsSymbol) {\n      let kind;\n      switch (getAssignmentDeclarationKind(node2)) {\n        case 1 /* ExportsProperty */:\n          kind = 0 /* Named */;\n          break;\n        case 2 /* ModuleExports */:\n          kind = 2 /* ExportEquals */;\n          break;\n        default:\n          return void 0;\n      }\n      const sym = useLhsSymbol ? checker.getSymbolAtLocation(getNameOfAccessExpression(cast(node2.left, isAccessExpression))) : symbol;\n      return sym && exportInfo(sym, kind);\n    }\n  }\n  function getImport() {\n    const isImport3 = isNodeImport(node);\n    if (!isImport3) return void 0;\n    let importedSymbol = checker.getImmediateAliasedSymbol(symbol);\n    if (!importedSymbol) return void 0;\n    importedSymbol = skipExportSpecifierSymbol(importedSymbol, checker);\n    if (importedSymbol.escapedName === \"export=\") {\n      importedSymbol = getExportEqualsLocalSymbol(importedSymbol, checker);\n      if (importedSymbol === void 0) return void 0;\n    }\n    const importedName = symbolEscapedNameNoDefault(importedSymbol);\n    if (importedName === void 0 || importedName === \"default\" /* Default */ || importedName === symbol.escapedName) {\n      return { kind: 0 /* Import */, symbol: importedSymbol };\n    }\n  }\n  function exportInfo(symbol2, kind) {\n    const exportInfo2 = getExportInfo(symbol2, kind, checker);\n    return exportInfo2 && { kind: 1 /* Export */, symbol: symbol2, exportInfo: exportInfo2 };\n  }\n  function getExportKindForDeclaration(node2) {\n    return hasSyntacticModifier(node2, 2048 /* Default */) ? 1 /* Default */ : 0 /* Named */;\n  }\n}\nfunction getExportEqualsLocalSymbol(importedSymbol, checker) {\n  var _a, _b;\n  if (importedSymbol.flags & 2097152 /* Alias */) {\n    return checker.getImmediateAliasedSymbol(importedSymbol);\n  }\n  const decl = Debug.checkDefined(importedSymbol.valueDeclaration);\n  if (isExportAssignment(decl)) {\n    return (_a = tryCast(decl.expression, canHaveSymbol)) == null ? void 0 : _a.symbol;\n  } else if (isBinaryExpression(decl)) {\n    return (_b = tryCast(decl.right, canHaveSymbol)) == null ? void 0 : _b.symbol;\n  } else if (isSourceFile(decl)) {\n    return decl.symbol;\n  }\n  return void 0;\n}\nfunction getExportNode(parent2, node) {\n  const declaration = isVariableDeclaration(parent2) ? parent2 : isBindingElement(parent2) ? walkUpBindingElementsAndPatterns(parent2) : void 0;\n  if (declaration) {\n    return parent2.name !== node ? void 0 : isCatchClause(declaration.parent) ? void 0 : isVariableStatement(declaration.parent.parent) ? declaration.parent.parent : void 0;\n  } else {\n    return parent2;\n  }\n}\nfunction isNodeImport(node) {\n  const { parent: parent2 } = node;\n  switch (parent2.kind) {\n    case 272 /* ImportEqualsDeclaration */:\n      return parent2.name === node && isExternalModuleImportEquals(parent2);\n    case 277 /* ImportSpecifier */:\n      return !parent2.propertyName;\n    case 274 /* ImportClause */:\n    case 275 /* NamespaceImport */:\n      Debug.assert(parent2.name === node);\n      return true;\n    case 209 /* BindingElement */:\n      return isInJSFile(node) && isVariableDeclarationInitializedToBareOrAccessedRequire(parent2.parent.parent);\n    default:\n      return false;\n  }\n}\nfunction getExportInfo(exportSymbol, exportKind, checker) {\n  const moduleSymbol = exportSymbol.parent;\n  if (!moduleSymbol) return void 0;\n  const exportingModuleSymbol = checker.getMergedSymbol(moduleSymbol);\n  return isExternalModuleSymbol(exportingModuleSymbol) ? { exportingModuleSymbol, exportKind } : void 0;\n}\nfunction skipExportSpecifierSymbol(symbol, checker) {\n  if (symbol.declarations) {\n    for (const declaration of symbol.declarations) {\n      if (isExportSpecifier(declaration) && !declaration.propertyName && !declaration.parent.parent.moduleSpecifier) {\n        return checker.getExportSpecifierLocalTargetSymbol(declaration) || symbol;\n      } else if (isPropertyAccessExpression(declaration) && isModuleExportsAccessExpression(declaration.expression) && !isPrivateIdentifier(declaration.name)) {\n        return checker.getSymbolAtLocation(declaration);\n      } else if (isShorthandPropertyAssignment(declaration) && isBinaryExpression(declaration.parent.parent) && getAssignmentDeclarationKind(declaration.parent.parent) === 2 /* ModuleExports */) {\n        return checker.getExportSpecifierLocalTargetSymbol(declaration.name);\n      }\n    }\n  }\n  return symbol;\n}\nfunction getContainingModuleSymbol(importer, checker) {\n  return checker.getMergedSymbol(getSourceFileLikeForImportDeclaration(importer).symbol);\n}\nfunction getSourceFileLikeForImportDeclaration(node) {\n  if (node.kind === 214 /* CallExpression */ || node.kind === 352 /* JSDocImportTag */) {\n    return node.getSourceFile();\n  }\n  const { parent: parent2 } = node;\n  if (parent2.kind === 308 /* SourceFile */) {\n    return parent2;\n  }\n  Debug.assert(parent2.kind === 269 /* ModuleBlock */);\n  return cast(parent2.parent, isAmbientModuleDeclaration);\n}\nfunction isAmbientModuleDeclaration(node) {\n  return node.kind === 268 /* ModuleDeclaration */ && node.name.kind === 11 /* StringLiteral */;\n}\nfunction isExternalModuleImportEquals(eq) {\n  return eq.moduleReference.kind === 284 /* ExternalModuleReference */ && eq.moduleReference.expression.kind === 11 /* StringLiteral */;\n}\n\n// src/services/findAllReferences.ts\nvar DefinitionKind = /* @__PURE__ */ ((DefinitionKind2) => {\n  DefinitionKind2[DefinitionKind2[\"Symbol\"] = 0] = \"Symbol\";\n  DefinitionKind2[DefinitionKind2[\"Label\"] = 1] = \"Label\";\n  DefinitionKind2[DefinitionKind2[\"Keyword\"] = 2] = \"Keyword\";\n  DefinitionKind2[DefinitionKind2[\"This\"] = 3] = \"This\";\n  DefinitionKind2[DefinitionKind2[\"String\"] = 4] = \"String\";\n  DefinitionKind2[DefinitionKind2[\"TripleSlashReference\"] = 5] = \"TripleSlashReference\";\n  return DefinitionKind2;\n})(DefinitionKind || {});\nvar EntryKind = /* @__PURE__ */ ((EntryKind2) => {\n  EntryKind2[EntryKind2[\"Span\"] = 0] = \"Span\";\n  EntryKind2[EntryKind2[\"Node\"] = 1] = \"Node\";\n  EntryKind2[EntryKind2[\"StringLiteral\"] = 2] = \"StringLiteral\";\n  EntryKind2[EntryKind2[\"SearchedLocalFoundProperty\"] = 3] = \"SearchedLocalFoundProperty\";\n  EntryKind2[EntryKind2[\"SearchedPropertyFoundLocal\"] = 4] = \"SearchedPropertyFoundLocal\";\n  return EntryKind2;\n})(EntryKind || {});\nfunction nodeEntry(node, kind = 1 /* Node */) {\n  return {\n    kind,\n    node: node.name || node,\n    context: getContextNodeForNodeEntry(node)\n  };\n}\nfunction isContextWithStartAndEndNode(node) {\n  return node && node.kind === void 0;\n}\nfunction getContextNodeForNodeEntry(node) {\n  if (isDeclaration(node)) {\n    return getContextNode(node);\n  }\n  if (!node.parent) return void 0;\n  if (!isDeclaration(node.parent) && !isExportAssignment(node.parent)) {\n    if (isInJSFile(node)) {\n      const binaryExpression = isBinaryExpression(node.parent) ? node.parent : isAccessExpression(node.parent) && isBinaryExpression(node.parent.parent) && node.parent.parent.left === node.parent ? node.parent.parent : void 0;\n      if (binaryExpression && getAssignmentDeclarationKind(binaryExpression) !== 0 /* None */) {\n        return getContextNode(binaryExpression);\n      }\n    }\n    if (isJsxOpeningElement(node.parent) || isJsxClosingElement(node.parent)) {\n      return node.parent.parent;\n    } else if (isJsxSelfClosingElement(node.parent) || isLabeledStatement(node.parent) || isBreakOrContinueStatement(node.parent)) {\n      return node.parent;\n    } else if (isStringLiteralLike(node)) {\n      const validImport = tryGetImportFromModuleSpecifier(node);\n      if (validImport) {\n        const declOrStatement = findAncestor(validImport, (node2) => isDeclaration(node2) || isStatement(node2) || isJSDocTag(node2));\n        return isDeclaration(declOrStatement) ? getContextNode(declOrStatement) : declOrStatement;\n      }\n    }\n    const propertyName = findAncestor(node, isComputedPropertyName);\n    return propertyName ? getContextNode(propertyName.parent) : void 0;\n  }\n  if (node.parent.name === node || // node is name of declaration, use parent\n  isConstructorDeclaration(node.parent) || isExportAssignment(node.parent) || // Property name of the import export specifier or binding pattern, use parent\n  (isImportOrExportSpecifier(node.parent) || isBindingElement(node.parent)) && node.parent.propertyName === node || // Is default export\n  node.kind === 90 /* DefaultKeyword */ && hasSyntacticModifier(node.parent, 2080 /* ExportDefault */)) {\n    return getContextNode(node.parent);\n  }\n  return void 0;\n}\nfunction getContextNode(node) {\n  if (!node) return void 0;\n  switch (node.kind) {\n    case 261 /* VariableDeclaration */:\n      return !isVariableDeclarationList(node.parent) || node.parent.declarations.length !== 1 ? node : isVariableStatement(node.parent.parent) ? node.parent.parent : isForInOrOfStatement(node.parent.parent) ? getContextNode(node.parent.parent) : node.parent;\n    case 209 /* BindingElement */:\n      return getContextNode(node.parent.parent);\n    case 277 /* ImportSpecifier */:\n      return node.parent.parent.parent;\n    case 282 /* ExportSpecifier */:\n    case 275 /* NamespaceImport */:\n      return node.parent.parent;\n    case 274 /* ImportClause */:\n    case 281 /* NamespaceExport */:\n      return node.parent;\n    case 227 /* BinaryExpression */:\n      return isExpressionStatement(node.parent) ? node.parent : node;\n    case 251 /* ForOfStatement */:\n    case 250 /* ForInStatement */:\n      return {\n        start: node.initializer,\n        end: node.expression\n      };\n    case 304 /* PropertyAssignment */:\n    case 305 /* ShorthandPropertyAssignment */:\n      return isArrayLiteralOrObjectLiteralDestructuringPattern(node.parent) ? getContextNode(\n        findAncestor(node.parent, (node2) => isBinaryExpression(node2) || isForInOrOfStatement(node2))\n      ) : node;\n    case 256 /* SwitchStatement */:\n      return {\n        start: find(node.getChildren(node.getSourceFile()), (node2) => node2.kind === 109 /* SwitchKeyword */),\n        end: node.caseBlock\n      };\n    default:\n      return node;\n  }\n}\nfunction toContextSpan(textSpan, sourceFile, context) {\n  if (!context) return void 0;\n  const contextSpan = isContextWithStartAndEndNode(context) ? getTextSpan(context.start, sourceFile, context.end) : getTextSpan(context, sourceFile);\n  return contextSpan.start !== textSpan.start || contextSpan.length !== textSpan.length ? { contextSpan } : void 0;\n}\nvar FindReferencesUse = /* @__PURE__ */ ((FindReferencesUse2) => {\n  FindReferencesUse2[FindReferencesUse2[\"Other\"] = 0] = \"Other\";\n  FindReferencesUse2[FindReferencesUse2[\"References\"] = 1] = \"References\";\n  FindReferencesUse2[FindReferencesUse2[\"Rename\"] = 2] = \"Rename\";\n  return FindReferencesUse2;\n})(FindReferencesUse || {});\nfunction findReferencedSymbols(program, cancellationToken, sourceFiles, sourceFile, position) {\n  const node = getTouchingPropertyName(sourceFile, position);\n  const options = { use: 1 /* References */ };\n  const referencedSymbols = Core.getReferencedSymbolsForNode(position, node, program, sourceFiles, cancellationToken, options);\n  const checker = program.getTypeChecker();\n  const adjustedNode = Core.getAdjustedNode(node, options);\n  const symbol = isDefinitionForReference(adjustedNode) ? checker.getSymbolAtLocation(adjustedNode) : void 0;\n  return !referencedSymbols || !referencedSymbols.length ? void 0 : mapDefined(referencedSymbols, ({ definition, references }) => (\n    // Only include referenced symbols that have a valid definition.\n    definition && {\n      definition: checker.runWithCancellationToken(cancellationToken, (checker2) => definitionToReferencedSymbolDefinitionInfo(definition, checker2, node)),\n      references: references.map((r) => toReferencedSymbolEntry(r, symbol))\n    }\n  ));\n}\nfunction isDefinitionForReference(node) {\n  return node.kind === 90 /* DefaultKeyword */ || !!getDeclarationFromName(node) || isLiteralComputedPropertyDeclarationName(node) || node.kind === 137 /* ConstructorKeyword */ && isConstructorDeclaration(node.parent);\n}\nfunction getImplementationsAtPosition(program, cancellationToken, sourceFiles, sourceFile, position) {\n  const node = getTouchingPropertyName(sourceFile, position);\n  let referenceEntries;\n  const entries = getImplementationReferenceEntries(program, cancellationToken, sourceFiles, node, position);\n  if (node.parent.kind === 212 /* PropertyAccessExpression */ || node.parent.kind === 209 /* BindingElement */ || node.parent.kind === 213 /* ElementAccessExpression */ || node.kind === 108 /* SuperKeyword */) {\n    referenceEntries = entries && [...entries];\n  } else if (entries) {\n    const queue = createQueue(entries);\n    const seenNodes = /* @__PURE__ */ new Set();\n    while (!queue.isEmpty()) {\n      const entry = queue.dequeue();\n      if (!addToSeen(seenNodes, getNodeId(entry.node))) {\n        continue;\n      }\n      referenceEntries = append(referenceEntries, entry);\n      const entries2 = getImplementationReferenceEntries(program, cancellationToken, sourceFiles, entry.node, entry.node.pos);\n      if (entries2) {\n        queue.enqueue(...entries2);\n      }\n    }\n  }\n  const checker = program.getTypeChecker();\n  return map(referenceEntries, (entry) => toImplementationLocation(entry, checker));\n}\nfunction getImplementationReferenceEntries(program, cancellationToken, sourceFiles, node, position) {\n  if (node.kind === 308 /* SourceFile */) {\n    return void 0;\n  }\n  const checker = program.getTypeChecker();\n  if (node.parent.kind === 305 /* ShorthandPropertyAssignment */) {\n    const result = [];\n    Core.getReferenceEntriesForShorthandPropertyAssignment(node, checker, (node2) => result.push(nodeEntry(node2)));\n    return result;\n  } else if (node.kind === 108 /* SuperKeyword */ || isSuperProperty(node.parent)) {\n    const symbol = checker.getSymbolAtLocation(node);\n    return symbol.valueDeclaration && [nodeEntry(symbol.valueDeclaration)];\n  } else {\n    return getReferenceEntriesForNode(position, node, program, sourceFiles, cancellationToken, { implementations: true, use: 1 /* References */ });\n  }\n}\nfunction findReferenceOrRenameEntries(program, cancellationToken, sourceFiles, node, position, options, convertEntry) {\n  return map(flattenEntries(Core.getReferencedSymbolsForNode(position, node, program, sourceFiles, cancellationToken, options)), (entry) => convertEntry(entry, node, program.getTypeChecker()));\n}\nfunction getReferenceEntriesForNode(position, node, program, sourceFiles, cancellationToken, options = {}, sourceFilesSet = new Set(sourceFiles.map((f) => f.fileName))) {\n  return flattenEntries(Core.getReferencedSymbolsForNode(position, node, program, sourceFiles, cancellationToken, options, sourceFilesSet));\n}\nfunction flattenEntries(referenceSymbols) {\n  return referenceSymbols && flatMap(referenceSymbols, (r) => r.references);\n}\nfunction definitionToReferencedSymbolDefinitionInfo(def, checker, originalNode) {\n  const info = (() => {\n    switch (def.type) {\n      case 0 /* Symbol */: {\n        const { symbol } = def;\n        const { displayParts: displayParts2, kind: kind2 } = getDefinitionKindAndDisplayParts(symbol, checker, originalNode);\n        const name2 = displayParts2.map((p) => p.text).join(\"\");\n        const declaration = symbol.declarations && firstOrUndefined(symbol.declarations);\n        const node = declaration ? getNameOfDeclaration(declaration) || declaration : originalNode;\n        return {\n          ...getFileAndTextSpanFromNode(node),\n          name: name2,\n          kind: kind2,\n          displayParts: displayParts2,\n          context: getContextNode(declaration)\n        };\n      }\n      case 1 /* Label */: {\n        const { node } = def;\n        return { ...getFileAndTextSpanFromNode(node), name: node.text, kind: \"label\" /* label */, displayParts: [displayPart(node.text, 17 /* text */)] };\n      }\n      case 2 /* Keyword */: {\n        const { node } = def;\n        const name2 = tokenToString(node.kind);\n        return { ...getFileAndTextSpanFromNode(node), name: name2, kind: \"keyword\" /* keyword */, displayParts: [{ text: name2, kind: \"keyword\" /* keyword */ }] };\n      }\n      case 3 /* This */: {\n        const { node } = def;\n        const symbol = checker.getSymbolAtLocation(node);\n        const displayParts2 = symbol && ts_SymbolDisplay_exports.getSymbolDisplayPartsDocumentationAndSymbolKind(\n          checker,\n          symbol,\n          node.getSourceFile(),\n          getContainerNode(node),\n          node\n        ).displayParts || [textPart(\"this\")];\n        return { ...getFileAndTextSpanFromNode(node), name: \"this\", kind: \"var\" /* variableElement */, displayParts: displayParts2 };\n      }\n      case 4 /* String */: {\n        const { node } = def;\n        return {\n          ...getFileAndTextSpanFromNode(node),\n          name: node.text,\n          kind: \"var\" /* variableElement */,\n          displayParts: [displayPart(getTextOfNode(node), 8 /* stringLiteral */)]\n        };\n      }\n      case 5 /* TripleSlashReference */: {\n        return {\n          textSpan: createTextSpanFromRange(def.reference),\n          sourceFile: def.file,\n          name: def.reference.fileName,\n          kind: \"string\" /* string */,\n          displayParts: [displayPart(`\"${def.reference.fileName}\"`, 8 /* stringLiteral */)]\n        };\n      }\n      default:\n        return Debug.assertNever(def);\n    }\n  })();\n  const { sourceFile, textSpan, name, kind, displayParts, context } = info;\n  return {\n    containerKind: \"\" /* unknown */,\n    containerName: \"\",\n    fileName: sourceFile.fileName,\n    kind,\n    name,\n    textSpan,\n    displayParts,\n    ...toContextSpan(textSpan, sourceFile, context)\n  };\n}\nfunction getFileAndTextSpanFromNode(node) {\n  const sourceFile = node.getSourceFile();\n  return {\n    sourceFile,\n    textSpan: getTextSpan(isComputedPropertyName(node) ? node.expression : node, sourceFile)\n  };\n}\nfunction getDefinitionKindAndDisplayParts(symbol, checker, node) {\n  const meaning = Core.getIntersectingMeaningFromDeclarations(node, symbol);\n  const enclosingDeclaration = symbol.declarations && firstOrUndefined(symbol.declarations) || node;\n  const { displayParts, symbolKind } = ts_SymbolDisplay_exports.getSymbolDisplayPartsDocumentationAndSymbolKind(checker, symbol, enclosingDeclaration.getSourceFile(), enclosingDeclaration, enclosingDeclaration, meaning);\n  return { displayParts, kind: symbolKind };\n}\nfunction toRenameLocation(entry, originalNode, checker, providePrefixAndSuffixText, quotePreference) {\n  return { ...entryToDocumentSpan(entry), ...providePrefixAndSuffixText && getPrefixAndSuffixText(entry, originalNode, checker, quotePreference) };\n}\nfunction toReferencedSymbolEntry(entry, symbol) {\n  const referenceEntry = toReferenceEntry(entry);\n  if (!symbol) return referenceEntry;\n  return {\n    ...referenceEntry,\n    isDefinition: entry.kind !== 0 /* Span */ && isDeclarationOfSymbol(entry.node, symbol)\n  };\n}\nfunction toReferenceEntry(entry) {\n  const documentSpan = entryToDocumentSpan(entry);\n  if (entry.kind === 0 /* Span */) {\n    return { ...documentSpan, isWriteAccess: false };\n  }\n  const { kind, node } = entry;\n  return {\n    ...documentSpan,\n    isWriteAccess: isWriteAccessForReference(node),\n    isInString: kind === 2 /* StringLiteral */ ? true : void 0\n  };\n}\nfunction entryToDocumentSpan(entry) {\n  if (entry.kind === 0 /* Span */) {\n    return { textSpan: entry.textSpan, fileName: entry.fileName };\n  } else {\n    const sourceFile = entry.node.getSourceFile();\n    const textSpan = getTextSpan(entry.node, sourceFile);\n    return {\n      textSpan,\n      fileName: sourceFile.fileName,\n      ...toContextSpan(textSpan, sourceFile, entry.context)\n    };\n  }\n}\nfunction getPrefixAndSuffixText(entry, originalNode, checker, quotePreference) {\n  if (entry.kind !== 0 /* Span */ && (isIdentifier(originalNode) || isStringLiteralLike(originalNode))) {\n    const { node, kind } = entry;\n    const parent2 = node.parent;\n    const name = originalNode.text;\n    const isShorthandAssignment = isShorthandPropertyAssignment(parent2);\n    if (isShorthandAssignment || isObjectBindingElementWithoutPropertyName(parent2) && parent2.name === node && parent2.dotDotDotToken === void 0) {\n      const prefixColon = { prefixText: name + \": \" };\n      const suffixColon = { suffixText: \": \" + name };\n      if (kind === 3 /* SearchedLocalFoundProperty */) {\n        return prefixColon;\n      }\n      if (kind === 4 /* SearchedPropertyFoundLocal */) {\n        return suffixColon;\n      }\n      if (isShorthandAssignment) {\n        const grandParent = parent2.parent;\n        if (isObjectLiteralExpression(grandParent) && isBinaryExpression(grandParent.parent) && isModuleExportsAccessExpression(grandParent.parent.left)) {\n          return prefixColon;\n        }\n        return suffixColon;\n      } else {\n        return prefixColon;\n      }\n    } else if (isImportSpecifier(parent2) && !parent2.propertyName) {\n      const originalSymbol = isExportSpecifier(originalNode.parent) ? checker.getExportSpecifierLocalTargetSymbol(originalNode.parent) : checker.getSymbolAtLocation(originalNode);\n      return contains(originalSymbol.declarations, parent2) ? { prefixText: name + \" as \" } : emptyOptions;\n    } else if (isExportSpecifier(parent2) && !parent2.propertyName) {\n      return originalNode === entry.node || checker.getSymbolAtLocation(originalNode) === checker.getSymbolAtLocation(entry.node) ? { prefixText: name + \" as \" } : { suffixText: \" as \" + name };\n    }\n  }\n  if (entry.kind !== 0 /* Span */ && isNumericLiteral(entry.node) && isAccessExpression(entry.node.parent)) {\n    const quote2 = getQuoteFromPreference(quotePreference);\n    return { prefixText: quote2, suffixText: quote2 };\n  }\n  return emptyOptions;\n}\nfunction toImplementationLocation(entry, checker) {\n  const documentSpan = entryToDocumentSpan(entry);\n  if (entry.kind !== 0 /* Span */) {\n    const { node } = entry;\n    return {\n      ...documentSpan,\n      ...implementationKindDisplayParts(node, checker)\n    };\n  } else {\n    return { ...documentSpan, kind: \"\" /* unknown */, displayParts: [] };\n  }\n}\nfunction implementationKindDisplayParts(node, checker) {\n  const symbol = checker.getSymbolAtLocation(isDeclaration(node) && node.name ? node.name : node);\n  if (symbol) {\n    return getDefinitionKindAndDisplayParts(symbol, checker, node);\n  } else if (node.kind === 211 /* ObjectLiteralExpression */) {\n    return {\n      kind: \"interface\" /* interfaceElement */,\n      displayParts: [punctuationPart(21 /* OpenParenToken */), textPart(\"object literal\"), punctuationPart(22 /* CloseParenToken */)]\n    };\n  } else if (node.kind === 232 /* ClassExpression */) {\n    return {\n      kind: \"local class\" /* localClassElement */,\n      displayParts: [punctuationPart(21 /* OpenParenToken */), textPart(\"anonymous local class\"), punctuationPart(22 /* CloseParenToken */)]\n    };\n  } else {\n    return { kind: getNodeKind(node), displayParts: [] };\n  }\n}\nfunction toHighlightSpan(entry) {\n  const documentSpan = entryToDocumentSpan(entry);\n  if (entry.kind === 0 /* Span */) {\n    return {\n      fileName: documentSpan.fileName,\n      span: {\n        textSpan: documentSpan.textSpan,\n        kind: \"reference\" /* reference */\n      }\n    };\n  }\n  const writeAccess = isWriteAccessForReference(entry.node);\n  const span = {\n    textSpan: documentSpan.textSpan,\n    kind: writeAccess ? \"writtenReference\" /* writtenReference */ : \"reference\" /* reference */,\n    isInString: entry.kind === 2 /* StringLiteral */ ? true : void 0,\n    ...documentSpan.contextSpan && { contextSpan: documentSpan.contextSpan }\n  };\n  return { fileName: documentSpan.fileName, span };\n}\nfunction getTextSpan(node, sourceFile, endNode2) {\n  let start = node.getStart(sourceFile);\n  let end = (endNode2 || node).getEnd();\n  if (isStringLiteralLike(node) && end - start > 2) {\n    Debug.assert(endNode2 === void 0);\n    start += 1;\n    end -= 1;\n  }\n  if ((endNode2 == null ? void 0 : endNode2.kind) === 270 /* CaseBlock */) {\n    end = endNode2.getFullStart();\n  }\n  return createTextSpanFromBounds(start, end);\n}\nfunction getTextSpanOfEntry(entry) {\n  return entry.kind === 0 /* Span */ ? entry.textSpan : getTextSpan(entry.node, entry.node.getSourceFile());\n}\nfunction isWriteAccessForReference(node) {\n  const decl = getDeclarationFromName(node);\n  return !!decl && declarationIsWriteAccess(decl) || node.kind === 90 /* DefaultKeyword */ || isWriteAccess(node);\n}\nfunction isDeclarationOfSymbol(node, target) {\n  var _a;\n  if (!target) return false;\n  const source = getDeclarationFromName(node) || (node.kind === 90 /* DefaultKeyword */ ? node.parent : isLiteralComputedPropertyDeclarationName(node) ? node.parent.parent : node.kind === 137 /* ConstructorKeyword */ && isConstructorDeclaration(node.parent) ? node.parent.parent : void 0);\n  const commonjsSource = source && isBinaryExpression(source) ? source.left : void 0;\n  return !!(source && ((_a = target.declarations) == null ? void 0 : _a.some((d) => d === source || d === commonjsSource)));\n}\nfunction declarationIsWriteAccess(decl) {\n  if (!!(decl.flags & 33554432 /* Ambient */)) return true;\n  switch (decl.kind) {\n    case 227 /* BinaryExpression */:\n    case 209 /* BindingElement */:\n    case 264 /* ClassDeclaration */:\n    case 232 /* ClassExpression */:\n    case 90 /* DefaultKeyword */:\n    case 267 /* EnumDeclaration */:\n    case 307 /* EnumMember */:\n    case 282 /* ExportSpecifier */:\n    case 274 /* ImportClause */:\n    // default import\n    case 272 /* ImportEqualsDeclaration */:\n    case 277 /* ImportSpecifier */:\n    case 265 /* InterfaceDeclaration */:\n    case 339 /* JSDocCallbackTag */:\n    case 347 /* JSDocTypedefTag */:\n    case 292 /* JsxAttribute */:\n    case 268 /* ModuleDeclaration */:\n    case 271 /* NamespaceExportDeclaration */:\n    case 275 /* NamespaceImport */:\n    case 281 /* NamespaceExport */:\n    case 170 /* Parameter */:\n    case 305 /* ShorthandPropertyAssignment */:\n    case 266 /* TypeAliasDeclaration */:\n    case 169 /* TypeParameter */:\n      return true;\n    case 304 /* PropertyAssignment */:\n      return !isArrayLiteralOrObjectLiteralDestructuringPattern(decl.parent);\n    case 263 /* FunctionDeclaration */:\n    case 219 /* FunctionExpression */:\n    case 177 /* Constructor */:\n    case 175 /* MethodDeclaration */:\n    case 178 /* GetAccessor */:\n    case 179 /* SetAccessor */:\n      return !!decl.body;\n    case 261 /* VariableDeclaration */:\n    case 173 /* PropertyDeclaration */:\n      return !!decl.initializer || isCatchClause(decl.parent);\n    case 174 /* MethodSignature */:\n    case 172 /* PropertySignature */:\n    case 349 /* JSDocPropertyTag */:\n    case 342 /* JSDocParameterTag */:\n      return false;\n    default:\n      return Debug.failBadSyntaxKind(decl);\n  }\n}\nvar Core;\n((Core2) => {\n  function getReferencedSymbolsForNode(position, node, program, sourceFiles, cancellationToken, options = {}, sourceFilesSet = new Set(sourceFiles.map((f) => f.fileName))) {\n    var _a, _b;\n    node = getAdjustedNode2(node, options);\n    if (isSourceFile(node)) {\n      const resolvedRef = ts_GoToDefinition_exports.getReferenceAtPosition(node, position, program);\n      if (!(resolvedRef == null ? void 0 : resolvedRef.file)) {\n        return void 0;\n      }\n      const moduleSymbol = program.getTypeChecker().getMergedSymbol(resolvedRef.file.symbol);\n      if (moduleSymbol) {\n        return getReferencedSymbolsForModule(\n          program,\n          moduleSymbol,\n          /*excludeImportTypeOfExportEquals*/\n          false,\n          sourceFiles,\n          sourceFilesSet\n        );\n      }\n      const fileIncludeReasons = program.getFileIncludeReasons();\n      if (!fileIncludeReasons) {\n        return void 0;\n      }\n      return [{\n        definition: { type: 5 /* TripleSlashReference */, reference: resolvedRef.reference, file: node },\n        references: getReferencesForNonModule(resolvedRef.file, fileIncludeReasons, program) || emptyArray\n      }];\n    }\n    if (!options.implementations) {\n      const special = getReferencedSymbolsSpecial(node, sourceFiles, cancellationToken);\n      if (special) {\n        return special;\n      }\n    }\n    const checker = program.getTypeChecker();\n    const symbol = checker.getSymbolAtLocation(isConstructorDeclaration(node) && node.parent.name || node);\n    if (!symbol) {\n      if (!options.implementations && isStringLiteralLike(node)) {\n        if (isModuleSpecifierLike(node)) {\n          const fileIncludeReasons = program.getFileIncludeReasons();\n          const referencedFileName = (_b = (_a = program.getResolvedModuleFromModuleSpecifier(node)) == null ? void 0 : _a.resolvedModule) == null ? void 0 : _b.resolvedFileName;\n          const referencedFile = referencedFileName ? program.getSourceFile(referencedFileName) : void 0;\n          if (referencedFile) {\n            return [{ definition: { type: 4 /* String */, node }, references: getReferencesForNonModule(referencedFile, fileIncludeReasons, program) || emptyArray }];\n          }\n        }\n        return getReferencesForStringLiteral(node, sourceFiles, checker, cancellationToken);\n      }\n      return void 0;\n    }\n    if (symbol.escapedName === \"export=\" /* ExportEquals */) {\n      return getReferencedSymbolsForModule(\n        program,\n        symbol.parent,\n        /*excludeImportTypeOfExportEquals*/\n        false,\n        sourceFiles,\n        sourceFilesSet\n      );\n    }\n    const moduleReferences = getReferencedSymbolsForModuleIfDeclaredBySourceFile(symbol, program, sourceFiles, cancellationToken, options, sourceFilesSet);\n    if (moduleReferences && !(symbol.flags & 33554432 /* Transient */)) {\n      return moduleReferences;\n    }\n    const aliasedSymbol = getMergedAliasedSymbolOfNamespaceExportDeclaration(node, symbol, checker);\n    const moduleReferencesOfExportTarget = aliasedSymbol && getReferencedSymbolsForModuleIfDeclaredBySourceFile(aliasedSymbol, program, sourceFiles, cancellationToken, options, sourceFilesSet);\n    const references = getReferencedSymbolsForSymbol(symbol, node, sourceFiles, sourceFilesSet, checker, cancellationToken, options);\n    return mergeReferences(program, moduleReferences, references, moduleReferencesOfExportTarget);\n  }\n  Core2.getReferencedSymbolsForNode = getReferencedSymbolsForNode;\n  function getAdjustedNode2(node, options) {\n    if (options.use === 1 /* References */) {\n      node = getAdjustedReferenceLocation(node);\n    } else if (options.use === 2 /* Rename */) {\n      node = getAdjustedRenameLocation(node);\n    }\n    return node;\n  }\n  Core2.getAdjustedNode = getAdjustedNode2;\n  function getReferencesForFileName(fileName, program, sourceFiles, sourceFilesSet = new Set(sourceFiles.map((f) => f.fileName))) {\n    var _a, _b;\n    const moduleSymbol = (_a = program.getSourceFile(fileName)) == null ? void 0 : _a.symbol;\n    if (moduleSymbol) {\n      return ((_b = getReferencedSymbolsForModule(\n        program,\n        moduleSymbol,\n        /*excludeImportTypeOfExportEquals*/\n        false,\n        sourceFiles,\n        sourceFilesSet\n      )[0]) == null ? void 0 : _b.references) || emptyArray;\n    }\n    const fileIncludeReasons = program.getFileIncludeReasons();\n    const referencedFile = program.getSourceFile(fileName);\n    return referencedFile && fileIncludeReasons && getReferencesForNonModule(referencedFile, fileIncludeReasons, program) || emptyArray;\n  }\n  Core2.getReferencesForFileName = getReferencesForFileName;\n  function getReferencesForNonModule(referencedFile, refFileMap, program) {\n    let entries;\n    const references = refFileMap.get(referencedFile.path) || emptyArray;\n    for (const ref of references) {\n      if (isReferencedFile(ref)) {\n        const referencingFile = program.getSourceFileByPath(ref.file);\n        const location = getReferencedFileLocation(program, ref);\n        if (isReferenceFileLocation(location)) {\n          entries = append(entries, {\n            kind: 0 /* Span */,\n            fileName: referencingFile.fileName,\n            textSpan: createTextSpanFromRange(location)\n          });\n        }\n      }\n    }\n    return entries;\n  }\n  function getMergedAliasedSymbolOfNamespaceExportDeclaration(node, symbol, checker) {\n    if (node.parent && isNamespaceExportDeclaration(node.parent)) {\n      const aliasedSymbol = checker.getAliasedSymbol(symbol);\n      const targetSymbol = checker.getMergedSymbol(aliasedSymbol);\n      if (aliasedSymbol !== targetSymbol) {\n        return targetSymbol;\n      }\n    }\n    return void 0;\n  }\n  function getReferencedSymbolsForModuleIfDeclaredBySourceFile(symbol, program, sourceFiles, cancellationToken, options, sourceFilesSet) {\n    const moduleSourceFile = symbol.flags & 1536 /* Module */ && symbol.declarations && find(symbol.declarations, isSourceFile);\n    if (!moduleSourceFile) return void 0;\n    const exportEquals = symbol.exports.get(\"export=\" /* ExportEquals */);\n    const moduleReferences = getReferencedSymbolsForModule(program, symbol, !!exportEquals, sourceFiles, sourceFilesSet);\n    if (!exportEquals || !sourceFilesSet.has(moduleSourceFile.fileName)) return moduleReferences;\n    const checker = program.getTypeChecker();\n    symbol = skipAlias(exportEquals, checker);\n    return mergeReferences(program, moduleReferences, getReferencedSymbolsForSymbol(\n      symbol,\n      /*node*/\n      void 0,\n      sourceFiles,\n      sourceFilesSet,\n      checker,\n      cancellationToken,\n      options\n    ));\n  }\n  function mergeReferences(program, ...referencesToMerge) {\n    let result;\n    for (const references of referencesToMerge) {\n      if (!references || !references.length) continue;\n      if (!result) {\n        result = references;\n        continue;\n      }\n      for (const entry of references) {\n        if (!entry.definition || entry.definition.type !== 0 /* Symbol */) {\n          result.push(entry);\n          continue;\n        }\n        const symbol = entry.definition.symbol;\n        const refIndex = findIndex(result, (ref) => !!ref.definition && ref.definition.type === 0 /* Symbol */ && ref.definition.symbol === symbol);\n        if (refIndex === -1) {\n          result.push(entry);\n          continue;\n        }\n        const reference = result[refIndex];\n        result[refIndex] = {\n          definition: reference.definition,\n          references: reference.references.concat(entry.references).sort((entry1, entry2) => {\n            const entry1File = getSourceFileIndexOfEntry(program, entry1);\n            const entry2File = getSourceFileIndexOfEntry(program, entry2);\n            if (entry1File !== entry2File) {\n              return compareValues(entry1File, entry2File);\n            }\n            const entry1Span = getTextSpanOfEntry(entry1);\n            const entry2Span = getTextSpanOfEntry(entry2);\n            return entry1Span.start !== entry2Span.start ? compareValues(entry1Span.start, entry2Span.start) : compareValues(entry1Span.length, entry2Span.length);\n          })\n        };\n      }\n    }\n    return result;\n  }\n  function getSourceFileIndexOfEntry(program, entry) {\n    const sourceFile = entry.kind === 0 /* Span */ ? program.getSourceFile(entry.fileName) : entry.node.getSourceFile();\n    return program.getSourceFiles().indexOf(sourceFile);\n  }\n  function getReferencedSymbolsForModule(program, symbol, excludeImportTypeOfExportEquals, sourceFiles, sourceFilesSet) {\n    Debug.assert(!!symbol.valueDeclaration);\n    const references = mapDefined(findModuleReferences(program, sourceFiles, symbol), (reference) => {\n      if (reference.kind === \"import\") {\n        const parent2 = reference.literal.parent;\n        if (isLiteralTypeNode(parent2)) {\n          const importType = cast(parent2.parent, isImportTypeNode);\n          if (excludeImportTypeOfExportEquals && !importType.qualifier) {\n            return void 0;\n          }\n        }\n        return nodeEntry(reference.literal);\n      } else if (reference.kind === \"implicit\") {\n        const range = reference.literal.text !== externalHelpersModuleNameText && forEachChildRecursively(\n          reference.referencingFile,\n          (n) => !(n.transformFlags & 2 /* ContainsJsx */) ? \"skip\" : isJsxElement(n) || isJsxSelfClosingElement(n) || isJsxFragment(n) ? n : void 0\n        ) || reference.referencingFile.statements[0] || reference.referencingFile;\n        return nodeEntry(range);\n      } else {\n        return {\n          kind: 0 /* Span */,\n          fileName: reference.referencingFile.fileName,\n          textSpan: createTextSpanFromRange(reference.ref)\n        };\n      }\n    });\n    if (symbol.declarations) {\n      for (const decl of symbol.declarations) {\n        switch (decl.kind) {\n          case 308 /* SourceFile */:\n            break;\n          case 268 /* ModuleDeclaration */:\n            if (sourceFilesSet.has(decl.getSourceFile().fileName)) {\n              references.push(nodeEntry(decl.name));\n            }\n            break;\n          default:\n            Debug.assert(!!(symbol.flags & 33554432 /* Transient */), \"Expected a module symbol to be declared by a SourceFile or ModuleDeclaration.\");\n        }\n      }\n    }\n    const exported = symbol.exports.get(\"export=\" /* ExportEquals */);\n    if (exported == null ? void 0 : exported.declarations) {\n      for (const decl of exported.declarations) {\n        const sourceFile = decl.getSourceFile();\n        if (sourceFilesSet.has(sourceFile.fileName)) {\n          const node = isBinaryExpression(decl) && isPropertyAccessExpression(decl.left) ? decl.left.expression : isExportAssignment(decl) ? Debug.checkDefined(findChildOfKind(decl, 95 /* ExportKeyword */, sourceFile)) : getNameOfDeclaration(decl) || decl;\n          references.push(nodeEntry(node));\n        }\n      }\n    }\n    return references.length ? [{ definition: { type: 0 /* Symbol */, symbol }, references }] : emptyArray;\n  }\n  function isReadonlyTypeOperator(node) {\n    return node.kind === 148 /* ReadonlyKeyword */ && isTypeOperatorNode(node.parent) && node.parent.operator === 148 /* ReadonlyKeyword */;\n  }\n  function getReferencedSymbolsSpecial(node, sourceFiles, cancellationToken) {\n    if (isTypeKeyword(node.kind)) {\n      if (node.kind === 116 /* VoidKeyword */ && isVoidExpression(node.parent)) {\n        return void 0;\n      }\n      if (node.kind === 148 /* ReadonlyKeyword */ && !isReadonlyTypeOperator(node)) {\n        return void 0;\n      }\n      return getAllReferencesForKeyword(\n        sourceFiles,\n        node.kind,\n        cancellationToken,\n        node.kind === 148 /* ReadonlyKeyword */ ? isReadonlyTypeOperator : void 0\n      );\n    }\n    if (isImportMeta(node.parent) && node.parent.name === node) {\n      return getAllReferencesForImportMeta(sourceFiles, cancellationToken);\n    }\n    if (isStaticModifier(node) && isClassStaticBlockDeclaration(node.parent)) {\n      return [{ definition: { type: 2 /* Keyword */, node }, references: [nodeEntry(node)] }];\n    }\n    if (isJumpStatementTarget(node)) {\n      const labelDefinition = getTargetLabel(node.parent, node.text);\n      return labelDefinition && getLabelReferencesInNode(labelDefinition.parent, labelDefinition);\n    } else if (isLabelOfLabeledStatement(node)) {\n      return getLabelReferencesInNode(node.parent, node);\n    }\n    if (isThis(node)) {\n      return getReferencesForThisKeyword(node, sourceFiles, cancellationToken);\n    }\n    if (node.kind === 108 /* SuperKeyword */) {\n      return getReferencesForSuperKeyword(node);\n    }\n    return void 0;\n  }\n  function getReferencedSymbolsForSymbol(originalSymbol, node, sourceFiles, sourceFilesSet, checker, cancellationToken, options) {\n    const symbol = node && skipPastExportOrImportSpecifierOrUnion(\n      originalSymbol,\n      node,\n      checker,\n      /*useLocalSymbolForExportSpecifier*/\n      !isForRenameWithPrefixAndSuffixText(options)\n    ) || originalSymbol;\n    const searchMeaning = node && options.use !== 2 /* Rename */ ? getIntersectingMeaningFromDeclarations(node, symbol) : 7 /* All */;\n    const result = [];\n    const state = new State(sourceFiles, sourceFilesSet, node ? getSpecialSearchKind(node) : 0 /* None */, checker, cancellationToken, searchMeaning, options, result);\n    const exportSpecifier = !isForRenameWithPrefixAndSuffixText(options) || !symbol.declarations ? void 0 : find(symbol.declarations, isExportSpecifier);\n    if (exportSpecifier) {\n      getReferencesAtExportSpecifier(\n        exportSpecifier.name,\n        symbol,\n        exportSpecifier,\n        state.createSearch(\n          node,\n          originalSymbol,\n          /*comingFrom*/\n          void 0\n        ),\n        state,\n        /*addReferencesHere*/\n        true,\n        /*alwaysGetReferences*/\n        true\n      );\n    } else if (node && node.kind === 90 /* DefaultKeyword */ && symbol.escapedName === \"default\" /* Default */ && symbol.parent) {\n      addReference(node, symbol, state);\n      searchForImportsOfExport(node, symbol, { exportingModuleSymbol: symbol.parent, exportKind: 1 /* Default */ }, state);\n    } else {\n      const search = state.createSearch(\n        node,\n        symbol,\n        /*comingFrom*/\n        void 0,\n        { allSearchSymbols: node ? populateSearchSymbolSet(symbol, node, checker, options.use === 2 /* Rename */, !!options.providePrefixAndSuffixTextForRename, !!options.implementations) : [symbol] }\n      );\n      getReferencesInContainerOrFiles(symbol, state, search);\n    }\n    return result;\n  }\n  function getReferencesInContainerOrFiles(symbol, state, search) {\n    const scope = getSymbolScope(symbol);\n    if (scope) {\n      getReferencesInContainer(\n        scope,\n        scope.getSourceFile(),\n        search,\n        state,\n        /*addReferencesHere*/\n        !(isSourceFile(scope) && !contains(state.sourceFiles, scope))\n      );\n    } else {\n      for (const sourceFile of state.sourceFiles) {\n        state.cancellationToken.throwIfCancellationRequested();\n        searchForName(sourceFile, search, state);\n      }\n    }\n  }\n  function getSpecialSearchKind(node) {\n    switch (node.kind) {\n      case 177 /* Constructor */:\n      case 137 /* ConstructorKeyword */:\n        return 1 /* Constructor */;\n      case 80 /* Identifier */:\n        if (isClassLike(node.parent)) {\n          Debug.assert(node.parent.name === node);\n          return 2 /* Class */;\n        }\n      // falls through\n      default:\n        return 0 /* None */;\n    }\n  }\n  function skipPastExportOrImportSpecifierOrUnion(symbol, node, checker, useLocalSymbolForExportSpecifier) {\n    const { parent: parent2 } = node;\n    if (isExportSpecifier(parent2) && useLocalSymbolForExportSpecifier) {\n      return getLocalSymbolForExportSpecifier(node, symbol, parent2, checker);\n    }\n    return firstDefined(symbol.declarations, (decl) => {\n      if (!decl.parent) {\n        if (symbol.flags & 33554432 /* Transient */) return void 0;\n        Debug.fail(`Unexpected symbol at ${Debug.formatSyntaxKind(node.kind)}: ${Debug.formatSymbol(symbol)}`);\n      }\n      return isTypeLiteralNode(decl.parent) && isUnionTypeNode(decl.parent.parent) ? checker.getPropertyOfType(checker.getTypeFromTypeNode(decl.parent.parent), symbol.name) : void 0;\n    });\n  }\n  let SpecialSearchKind;\n  ((SpecialSearchKind2) => {\n    SpecialSearchKind2[SpecialSearchKind2[\"None\"] = 0] = \"None\";\n    SpecialSearchKind2[SpecialSearchKind2[\"Constructor\"] = 1] = \"Constructor\";\n    SpecialSearchKind2[SpecialSearchKind2[\"Class\"] = 2] = \"Class\";\n  })(SpecialSearchKind || (SpecialSearchKind = {}));\n  function getNonModuleSymbolOfMergedModuleSymbol(symbol) {\n    if (!(symbol.flags & (1536 /* Module */ | 33554432 /* Transient */))) return void 0;\n    const decl = symbol.declarations && find(symbol.declarations, (d) => !isSourceFile(d) && !isModuleDeclaration(d));\n    return decl && decl.symbol;\n  }\n  class State {\n    constructor(sourceFiles, sourceFilesSet, specialSearchKind, checker, cancellationToken, searchMeaning, options, result) {\n      this.sourceFiles = sourceFiles;\n      this.sourceFilesSet = sourceFilesSet;\n      this.specialSearchKind = specialSearchKind;\n      this.checker = checker;\n      this.cancellationToken = cancellationToken;\n      this.searchMeaning = searchMeaning;\n      this.options = options;\n      this.result = result;\n      /** Cache for `explicitlyinheritsFrom`. */\n      this.inheritsFromCache = /* @__PURE__ */ new Map();\n      /**\n       * Type nodes can contain multiple references to the same type. For example:\n       *      let x: Foo & (Foo & Bar) = ...\n       * Because we are returning the implementation locations and not the identifier locations,\n       * duplicate entries would be returned here as each of the type references is part of\n       * the same implementation. For that reason, check before we add a new entry.\n       */\n      this.markSeenContainingTypeReference = nodeSeenTracker();\n      /**\n       * It's possible that we will encounter the right side of `export { foo as bar } from \"x\";` more than once.\n       * For example:\n       *     // b.ts\n       *     export { foo as bar } from \"./a\";\n       *     import { bar } from \"./b\";\n       *\n       * Normally at `foo as bar` we directly add `foo` and do not locally search for it (since it doesn't declare a local).\n       * But another reference to it may appear in the same source file.\n       * See `tests/cases/fourslash/transitiveExportImports3.ts`.\n       */\n      this.markSeenReExportRHS = nodeSeenTracker();\n      this.symbolIdToReferences = [];\n      // Source file ID -> symbol ID -> Whether the symbol has been searched for in the source file.\n      this.sourceFileToSeenSymbols = [];\n    }\n    includesSourceFile(sourceFile) {\n      return this.sourceFilesSet.has(sourceFile.fileName);\n    }\n    /** Gets every place to look for references of an exported symbols. See `ImportsResult` in `importTracker.ts` for more documentation. */\n    getImportSearches(exportSymbol, exportInfo) {\n      if (!this.importTracker) this.importTracker = createImportTracker(this.sourceFiles, this.sourceFilesSet, this.checker, this.cancellationToken);\n      return this.importTracker(exportSymbol, exportInfo, this.options.use === 2 /* Rename */);\n    }\n    /** @param allSearchSymbols set of additional symbols for use by `includes`. */\n    createSearch(location, symbol, comingFrom, searchOptions = {}) {\n      const {\n        text = stripQuotes(symbolName(getLocalSymbolForExportDefault(symbol) || getNonModuleSymbolOfMergedModuleSymbol(symbol) || symbol)),\n        allSearchSymbols = [symbol]\n      } = searchOptions;\n      const escapedText = escapeLeadingUnderscores(text);\n      const parents = this.options.implementations && location ? getParentSymbolsOfPropertyAccess(location, symbol, this.checker) : void 0;\n      return { symbol, comingFrom, text, escapedText, parents, allSearchSymbols, includes: (sym) => contains(allSearchSymbols, sym) };\n    }\n    /**\n     * Callback to add references for a particular searched symbol.\n     * This initializes a reference group, so only call this if you will add at least one reference.\n     */\n    referenceAdder(searchSymbol) {\n      const symbolId = getSymbolId(searchSymbol);\n      let references = this.symbolIdToReferences[symbolId];\n      if (!references) {\n        references = this.symbolIdToReferences[symbolId] = [];\n        this.result.push({ definition: { type: 0 /* Symbol */, symbol: searchSymbol }, references });\n      }\n      return (node, kind) => references.push(nodeEntry(node, kind));\n    }\n    /** Add a reference with no associated definition. */\n    addStringOrCommentReference(fileName, textSpan) {\n      this.result.push({\n        definition: void 0,\n        references: [{ kind: 0 /* Span */, fileName, textSpan }]\n      });\n    }\n    /** Returns `true` the first time we search for a symbol in a file and `false` afterwards. */\n    markSearchedSymbols(sourceFile, symbols) {\n      const sourceId = getNodeId(sourceFile);\n      const seenSymbols = this.sourceFileToSeenSymbols[sourceId] || (this.sourceFileToSeenSymbols[sourceId] = /* @__PURE__ */ new Set());\n      let anyNewSymbols = false;\n      for (const sym of symbols) {\n        anyNewSymbols = tryAddToSet(seenSymbols, getSymbolId(sym)) || anyNewSymbols;\n      }\n      return anyNewSymbols;\n    }\n  }\n  function searchForImportsOfExport(exportLocation, exportSymbol, exportInfo, state) {\n    const { importSearches, singleReferences, indirectUsers } = state.getImportSearches(exportSymbol, exportInfo);\n    if (singleReferences.length) {\n      const addRef = state.referenceAdder(exportSymbol);\n      for (const singleRef of singleReferences) {\n        if (shouldAddSingleReference(singleRef, state)) addRef(singleRef);\n      }\n    }\n    for (const [importLocation, importSymbol] of importSearches) {\n      getReferencesInSourceFile(importLocation.getSourceFile(), state.createSearch(importLocation, importSymbol, 1 /* Export */), state);\n    }\n    if (indirectUsers.length) {\n      let indirectSearch;\n      switch (exportInfo.exportKind) {\n        case 0 /* Named */:\n          indirectSearch = state.createSearch(exportLocation, exportSymbol, 1 /* Export */);\n          break;\n        case 1 /* Default */:\n          indirectSearch = state.options.use === 2 /* Rename */ ? void 0 : state.createSearch(exportLocation, exportSymbol, 1 /* Export */, { text: \"default\" });\n          break;\n        case 2 /* ExportEquals */:\n          break;\n      }\n      if (indirectSearch) {\n        for (const indirectUser of indirectUsers) {\n          searchForName(indirectUser, indirectSearch, state);\n        }\n      }\n    }\n  }\n  function eachExportReference(sourceFiles, checker, cancellationToken, exportSymbol, exportingModuleSymbol, exportName, isDefaultExport, cb) {\n    const importTracker = createImportTracker(sourceFiles, new Set(sourceFiles.map((f) => f.fileName)), checker, cancellationToken);\n    const { importSearches, indirectUsers, singleReferences } = importTracker(\n      exportSymbol,\n      { exportKind: isDefaultExport ? 1 /* Default */ : 0 /* Named */, exportingModuleSymbol },\n      /*isForRename*/\n      false\n    );\n    for (const [importLocation] of importSearches) {\n      cb(importLocation);\n    }\n    for (const singleReference of singleReferences) {\n      if (isIdentifier(singleReference) && isImportTypeNode(singleReference.parent)) {\n        cb(singleReference);\n      }\n    }\n    for (const indirectUser of indirectUsers) {\n      for (const node of getPossibleSymbolReferenceNodes(indirectUser, isDefaultExport ? \"default\" : exportName)) {\n        const symbol = checker.getSymbolAtLocation(node);\n        const hasExportAssignmentDeclaration = some(symbol == null ? void 0 : symbol.declarations, (d) => tryCast(d, isExportAssignment) ? true : false);\n        if (isIdentifier(node) && !isImportOrExportSpecifier(node.parent) && (symbol === exportSymbol || hasExportAssignmentDeclaration)) {\n          cb(node);\n        }\n      }\n    }\n  }\n  Core2.eachExportReference = eachExportReference;\n  function shouldAddSingleReference(singleRef, state) {\n    if (!hasMatchingMeaning(singleRef, state)) return false;\n    if (state.options.use !== 2 /* Rename */) return true;\n    if (!isIdentifier(singleRef) && !isImportOrExportSpecifier(singleRef.parent)) return false;\n    return !(isImportOrExportSpecifier(singleRef.parent) && moduleExportNameIsDefault(singleRef));\n  }\n  function searchForImportedSymbol(symbol, state) {\n    if (!symbol.declarations) return;\n    for (const declaration of symbol.declarations) {\n      const exportingFile = declaration.getSourceFile();\n      getReferencesInSourceFile(exportingFile, state.createSearch(declaration, symbol, 0 /* Import */), state, state.includesSourceFile(exportingFile));\n    }\n  }\n  function searchForName(sourceFile, search, state) {\n    if (getNameTable(sourceFile).get(search.escapedText) !== void 0) {\n      getReferencesInSourceFile(sourceFile, search, state);\n    }\n  }\n  function getPropertySymbolOfDestructuringAssignment(location, checker) {\n    return isArrayLiteralOrObjectLiteralDestructuringPattern(location.parent.parent) ? checker.getPropertySymbolOfDestructuringAssignment(location) : void 0;\n  }\n  function getSymbolScope(symbol) {\n    const { declarations, flags, parent: parent2, valueDeclaration } = symbol;\n    if (valueDeclaration && (valueDeclaration.kind === 219 /* FunctionExpression */ || valueDeclaration.kind === 232 /* ClassExpression */)) {\n      return valueDeclaration;\n    }\n    if (!declarations) {\n      return void 0;\n    }\n    if (flags & (4 /* Property */ | 8192 /* Method */)) {\n      const privateDeclaration = find(declarations, (d) => hasEffectiveModifier(d, 2 /* Private */) || isPrivateIdentifierClassElementDeclaration(d));\n      if (privateDeclaration) {\n        return getAncestor(privateDeclaration, 264 /* ClassDeclaration */);\n      }\n      return void 0;\n    }\n    if (declarations.some(isObjectBindingElementWithoutPropertyName)) {\n      return void 0;\n    }\n    const exposedByParent = parent2 && !(symbol.flags & 262144 /* TypeParameter */);\n    if (exposedByParent && !(isExternalModuleSymbol(parent2) && !parent2.globalExports)) {\n      return void 0;\n    }\n    let scope;\n    for (const declaration of declarations) {\n      const container = getContainerNode(declaration);\n      if (scope && scope !== container) {\n        return void 0;\n      }\n      if (!container || container.kind === 308 /* SourceFile */ && !isExternalOrCommonJsModule(container)) {\n        return void 0;\n      }\n      scope = container;\n      if (isFunctionExpression(scope)) {\n        let next;\n        while (next = getNextJSDocCommentLocation(scope)) {\n          scope = next;\n        }\n      }\n    }\n    return exposedByParent ? scope.getSourceFile() : scope;\n  }\n  function isSymbolReferencedInFile(definition, checker, sourceFile, searchContainer = sourceFile) {\n    return eachSymbolReferenceInFile(definition, checker, sourceFile, () => true, searchContainer) || false;\n  }\n  Core2.isSymbolReferencedInFile = isSymbolReferencedInFile;\n  function eachSymbolReferenceInFile(definition, checker, sourceFile, cb, searchContainer = sourceFile) {\n    const symbol = isParameterPropertyDeclaration(definition.parent, definition.parent.parent) ? first(checker.getSymbolsOfParameterPropertyDeclaration(definition.parent, definition.text)) : checker.getSymbolAtLocation(definition);\n    if (!symbol) return void 0;\n    for (const token of getPossibleSymbolReferenceNodes(sourceFile, symbol.name, searchContainer)) {\n      if (!isIdentifier(token) || token === definition || token.escapedText !== definition.escapedText) continue;\n      const referenceSymbol = checker.getSymbolAtLocation(token);\n      if (referenceSymbol === symbol || checker.getShorthandAssignmentValueSymbol(token.parent) === symbol || isExportSpecifier(token.parent) && getLocalSymbolForExportSpecifier(token, referenceSymbol, token.parent, checker) === symbol) {\n        const res = cb(token);\n        if (res) return res;\n      }\n    }\n  }\n  Core2.eachSymbolReferenceInFile = eachSymbolReferenceInFile;\n  function getTopMostDeclarationNamesInFile(declarationName, sourceFile) {\n    const candidates = filter(getPossibleSymbolReferenceNodes(sourceFile, declarationName), (name) => !!getDeclarationFromName(name));\n    return candidates.reduce((topMost, decl) => {\n      const depth = getDepth(decl);\n      if (!some(topMost.declarationNames) || depth === topMost.depth) {\n        topMost.declarationNames.push(decl);\n        topMost.depth = depth;\n      } else if (depth < topMost.depth) {\n        topMost.declarationNames = [decl];\n        topMost.depth = depth;\n      }\n      return topMost;\n    }, { depth: Infinity, declarationNames: [] }).declarationNames;\n    function getDepth(declaration) {\n      let depth = 0;\n      while (declaration) {\n        declaration = getContainerNode(declaration);\n        depth++;\n      }\n      return depth;\n    }\n  }\n  Core2.getTopMostDeclarationNamesInFile = getTopMostDeclarationNamesInFile;\n  function someSignatureUsage(signature, sourceFiles, checker, cb) {\n    if (!signature.name || !isIdentifier(signature.name)) return false;\n    const symbol = Debug.checkDefined(checker.getSymbolAtLocation(signature.name));\n    for (const sourceFile of sourceFiles) {\n      for (const name of getPossibleSymbolReferenceNodes(sourceFile, symbol.name)) {\n        if (!isIdentifier(name) || name === signature.name || name.escapedText !== signature.name.escapedText) continue;\n        const called = climbPastPropertyAccess(name);\n        const call = isCallExpression(called.parent) && called.parent.expression === called ? called.parent : void 0;\n        const referenceSymbol = checker.getSymbolAtLocation(name);\n        if (referenceSymbol && checker.getRootSymbols(referenceSymbol).some((s) => s === symbol)) {\n          if (cb(name, call)) {\n            return true;\n          }\n        }\n      }\n    }\n    return false;\n  }\n  Core2.someSignatureUsage = someSignatureUsage;\n  function getPossibleSymbolReferenceNodes(sourceFile, symbolName2, container = sourceFile) {\n    return mapDefined(getPossibleSymbolReferencePositions(sourceFile, symbolName2, container), (pos) => {\n      const referenceLocation = getTouchingPropertyName(sourceFile, pos);\n      return referenceLocation === sourceFile ? void 0 : referenceLocation;\n    });\n  }\n  function getPossibleSymbolReferencePositions(sourceFile, symbolName2, container = sourceFile) {\n    const positions = [];\n    if (!symbolName2 || !symbolName2.length) {\n      return positions;\n    }\n    const text = sourceFile.text;\n    const sourceLength = text.length;\n    const symbolNameLength = symbolName2.length;\n    let position = text.indexOf(symbolName2, container.pos);\n    while (position >= 0) {\n      if (position > container.end) break;\n      const endPosition = position + symbolNameLength;\n      if ((position === 0 || !isIdentifierPart(text.charCodeAt(position - 1), 99 /* Latest */)) && (endPosition === sourceLength || !isIdentifierPart(text.charCodeAt(endPosition), 99 /* Latest */))) {\n        positions.push(position);\n      }\n      position = text.indexOf(symbolName2, position + symbolNameLength + 1);\n    }\n    return positions;\n  }\n  function getLabelReferencesInNode(container, targetLabel) {\n    const sourceFile = container.getSourceFile();\n    const labelName = targetLabel.text;\n    const references = mapDefined(getPossibleSymbolReferenceNodes(sourceFile, labelName, container), (node) => (\n      // Only pick labels that are either the target label, or have a target that is the target label\n      node === targetLabel || isJumpStatementTarget(node) && getTargetLabel(node, labelName) === targetLabel ? nodeEntry(node) : void 0\n    ));\n    return [{ definition: { type: 1 /* Label */, node: targetLabel }, references }];\n  }\n  function isValidReferencePosition(node, searchSymbolName) {\n    switch (node.kind) {\n      case 81 /* PrivateIdentifier */:\n        if (isJSDocMemberName(node.parent)) {\n          return true;\n        }\n      // falls through I guess\n      case 80 /* Identifier */:\n        return node.text.length === searchSymbolName.length;\n      case 15 /* NoSubstitutionTemplateLiteral */:\n      case 11 /* StringLiteral */: {\n        const str = node;\n        return str.text.length === searchSymbolName.length && (isLiteralNameOfPropertyDeclarationOrIndexAccess(str) || isNameOfModuleDeclaration(node) || isExpressionOfExternalModuleImportEqualsDeclaration(node) || isCallExpression(node.parent) && isBindableObjectDefinePropertyCall(node.parent) && node.parent.arguments[1] === node || isImportOrExportSpecifier(node.parent));\n      }\n      case 9 /* NumericLiteral */:\n        return isLiteralNameOfPropertyDeclarationOrIndexAccess(node) && node.text.length === searchSymbolName.length;\n      case 90 /* DefaultKeyword */:\n        return \"default\".length === searchSymbolName.length;\n      default:\n        return false;\n    }\n  }\n  function getAllReferencesForImportMeta(sourceFiles, cancellationToken) {\n    const references = flatMap(sourceFiles, (sourceFile) => {\n      cancellationToken.throwIfCancellationRequested();\n      return mapDefined(getPossibleSymbolReferenceNodes(sourceFile, \"meta\", sourceFile), (node) => {\n        const parent2 = node.parent;\n        if (isImportMeta(parent2)) {\n          return nodeEntry(parent2);\n        }\n      });\n    });\n    return references.length ? [{ definition: { type: 2 /* Keyword */, node: references[0].node }, references }] : void 0;\n  }\n  function getAllReferencesForKeyword(sourceFiles, keywordKind, cancellationToken, filter2) {\n    const references = flatMap(sourceFiles, (sourceFile) => {\n      cancellationToken.throwIfCancellationRequested();\n      return mapDefined(getPossibleSymbolReferenceNodes(sourceFile, tokenToString(keywordKind), sourceFile), (referenceLocation) => {\n        if (referenceLocation.kind === keywordKind && (!filter2 || filter2(referenceLocation))) {\n          return nodeEntry(referenceLocation);\n        }\n      });\n    });\n    return references.length ? [{ definition: { type: 2 /* Keyword */, node: references[0].node }, references }] : void 0;\n  }\n  function getReferencesInSourceFile(sourceFile, search, state, addReferencesHere = true) {\n    state.cancellationToken.throwIfCancellationRequested();\n    return getReferencesInContainer(sourceFile, sourceFile, search, state, addReferencesHere);\n  }\n  function getReferencesInContainer(container, sourceFile, search, state, addReferencesHere) {\n    if (!state.markSearchedSymbols(sourceFile, search.allSearchSymbols)) {\n      return;\n    }\n    for (const position of getPossibleSymbolReferencePositions(sourceFile, search.text, container)) {\n      getReferencesAtLocation(sourceFile, position, search, state, addReferencesHere);\n    }\n  }\n  function hasMatchingMeaning(referenceLocation, state) {\n    return !!(getMeaningFromLocation(referenceLocation) & state.searchMeaning);\n  }\n  function getReferencesAtLocation(sourceFile, position, search, state, addReferencesHere) {\n    const referenceLocation = getTouchingPropertyName(sourceFile, position);\n    if (!isValidReferencePosition(referenceLocation, search.text)) {\n      if (!state.options.implementations && (state.options.findInStrings && isInString(sourceFile, position) || state.options.findInComments && isInNonReferenceComment(sourceFile, position))) {\n        state.addStringOrCommentReference(sourceFile.fileName, createTextSpan(position, search.text.length));\n      }\n      return;\n    }\n    if (!hasMatchingMeaning(referenceLocation, state)) return;\n    let referenceSymbol = state.checker.getSymbolAtLocation(referenceLocation);\n    if (!referenceSymbol) {\n      return;\n    }\n    const parent2 = referenceLocation.parent;\n    if (isImportSpecifier(parent2) && parent2.propertyName === referenceLocation) {\n      return;\n    }\n    if (isExportSpecifier(parent2)) {\n      Debug.assert(referenceLocation.kind === 80 /* Identifier */ || referenceLocation.kind === 11 /* StringLiteral */);\n      getReferencesAtExportSpecifier(referenceLocation, referenceSymbol, parent2, search, state, addReferencesHere);\n      return;\n    }\n    if (isJSDocPropertyLikeTag(parent2) && parent2.isNameFirst && parent2.typeExpression && isJSDocTypeLiteral(parent2.typeExpression.type) && parent2.typeExpression.type.jsDocPropertyTags && length(parent2.typeExpression.type.jsDocPropertyTags)) {\n      getReferencesAtJSDocTypeLiteral(parent2.typeExpression.type.jsDocPropertyTags, referenceLocation, search, state);\n      return;\n    }\n    const relatedSymbol = getRelatedSymbol(search, referenceSymbol, referenceLocation, state);\n    if (!relatedSymbol) {\n      getReferenceForShorthandProperty(referenceSymbol, search, state);\n      return;\n    }\n    switch (state.specialSearchKind) {\n      case 0 /* None */:\n        if (addReferencesHere) addReference(referenceLocation, relatedSymbol, state);\n        break;\n      case 1 /* Constructor */:\n        addConstructorReferences(referenceLocation, sourceFile, search, state);\n        break;\n      case 2 /* Class */:\n        addClassStaticThisReferences(referenceLocation, search, state);\n        break;\n      default:\n        Debug.assertNever(state.specialSearchKind);\n    }\n    if (isInJSFile(referenceLocation) && isBindingElement(referenceLocation.parent) && isVariableDeclarationInitializedToBareOrAccessedRequire(referenceLocation.parent.parent.parent)) {\n      referenceSymbol = referenceLocation.parent.symbol;\n      if (!referenceSymbol) return;\n    }\n    getImportOrExportReferences(referenceLocation, referenceSymbol, search, state);\n  }\n  function getReferencesAtJSDocTypeLiteral(jsDocPropertyTags, referenceLocation, search, state) {\n    const addRef = state.referenceAdder(search.symbol);\n    addReference(referenceLocation, search.symbol, state);\n    forEach(jsDocPropertyTags, (propTag) => {\n      if (isQualifiedName(propTag.name)) {\n        addRef(propTag.name.left);\n      }\n    });\n  }\n  function getReferencesAtExportSpecifier(referenceLocation, referenceSymbol, exportSpecifier, search, state, addReferencesHere, alwaysGetReferences) {\n    Debug.assert(!alwaysGetReferences || !!state.options.providePrefixAndSuffixTextForRename, \"If alwaysGetReferences is true, then prefix/suffix text must be enabled\");\n    const { parent: parent2, propertyName, name } = exportSpecifier;\n    const exportDeclaration = parent2.parent;\n    const localSymbol = getLocalSymbolForExportSpecifier(referenceLocation, referenceSymbol, exportSpecifier, state.checker);\n    if (!alwaysGetReferences && !search.includes(localSymbol)) {\n      return;\n    }\n    if (!propertyName) {\n      if (!(state.options.use === 2 /* Rename */ && moduleExportNameIsDefault(name))) {\n        addRef();\n      }\n    } else if (referenceLocation === propertyName) {\n      if (!exportDeclaration.moduleSpecifier) {\n        addRef();\n      }\n      if (addReferencesHere && state.options.use !== 2 /* Rename */ && state.markSeenReExportRHS(name)) {\n        addReference(name, Debug.checkDefined(exportSpecifier.symbol), state);\n      }\n    } else {\n      if (state.markSeenReExportRHS(referenceLocation)) {\n        addRef();\n      }\n    }\n    if (!isForRenameWithPrefixAndSuffixText(state.options) || alwaysGetReferences) {\n      const isDefaultExport = moduleExportNameIsDefault(referenceLocation) || moduleExportNameIsDefault(exportSpecifier.name);\n      const exportKind = isDefaultExport ? 1 /* Default */ : 0 /* Named */;\n      const exportSymbol = Debug.checkDefined(exportSpecifier.symbol);\n      const exportInfo = getExportInfo(exportSymbol, exportKind, state.checker);\n      if (exportInfo) {\n        searchForImportsOfExport(referenceLocation, exportSymbol, exportInfo, state);\n      }\n    }\n    if (search.comingFrom !== 1 /* Export */ && exportDeclaration.moduleSpecifier && !propertyName && !isForRenameWithPrefixAndSuffixText(state.options)) {\n      const imported = state.checker.getExportSpecifierLocalTargetSymbol(exportSpecifier);\n      if (imported) searchForImportedSymbol(imported, state);\n    }\n    function addRef() {\n      if (addReferencesHere) addReference(referenceLocation, localSymbol, state);\n    }\n  }\n  function getLocalSymbolForExportSpecifier(referenceLocation, referenceSymbol, exportSpecifier, checker) {\n    return isExportSpecifierAlias(referenceLocation, exportSpecifier) && checker.getExportSpecifierLocalTargetSymbol(exportSpecifier) || referenceSymbol;\n  }\n  function isExportSpecifierAlias(referenceLocation, exportSpecifier) {\n    const { parent: parent2, propertyName, name } = exportSpecifier;\n    Debug.assert(propertyName === referenceLocation || name === referenceLocation);\n    if (propertyName) {\n      return propertyName === referenceLocation;\n    } else {\n      return !parent2.parent.moduleSpecifier;\n    }\n  }\n  function getImportOrExportReferences(referenceLocation, referenceSymbol, search, state) {\n    const importOrExport = getImportOrExportSymbol(referenceLocation, referenceSymbol, state.checker, search.comingFrom === 1 /* Export */);\n    if (!importOrExport) return;\n    const { symbol } = importOrExport;\n    if (importOrExport.kind === 0 /* Import */) {\n      if (!isForRenameWithPrefixAndSuffixText(state.options)) {\n        searchForImportedSymbol(symbol, state);\n      }\n    } else {\n      searchForImportsOfExport(referenceLocation, symbol, importOrExport.exportInfo, state);\n    }\n  }\n  function getReferenceForShorthandProperty({ flags, valueDeclaration }, search, state) {\n    const shorthandValueSymbol = state.checker.getShorthandAssignmentValueSymbol(valueDeclaration);\n    const name = valueDeclaration && getNameOfDeclaration(valueDeclaration);\n    if (!(flags & 33554432 /* Transient */) && name && search.includes(shorthandValueSymbol)) {\n      addReference(name, shorthandValueSymbol, state);\n    }\n  }\n  function addReference(referenceLocation, relatedSymbol, state) {\n    const { kind, symbol } = \"kind\" in relatedSymbol ? relatedSymbol : { kind: void 0, symbol: relatedSymbol };\n    if (state.options.use === 2 /* Rename */ && referenceLocation.kind === 90 /* DefaultKeyword */) {\n      return;\n    }\n    const addRef = state.referenceAdder(symbol);\n    if (state.options.implementations) {\n      addImplementationReferences(referenceLocation, addRef, state);\n    } else {\n      addRef(referenceLocation, kind);\n    }\n  }\n  function addConstructorReferences(referenceLocation, sourceFile, search, state) {\n    if (isNewExpressionTarget(referenceLocation)) {\n      addReference(referenceLocation, search.symbol, state);\n    }\n    const pusher = () => state.referenceAdder(search.symbol);\n    if (isClassLike(referenceLocation.parent)) {\n      Debug.assert(referenceLocation.kind === 90 /* DefaultKeyword */ || referenceLocation.parent.name === referenceLocation);\n      findOwnConstructorReferences(search.symbol, sourceFile, pusher());\n    } else {\n      const classExtending = tryGetClassByExtendingIdentifier(referenceLocation);\n      if (classExtending) {\n        findSuperConstructorAccesses(classExtending, pusher());\n        findInheritedConstructorReferences(classExtending, state);\n      }\n    }\n  }\n  function addClassStaticThisReferences(referenceLocation, search, state) {\n    addReference(referenceLocation, search.symbol, state);\n    const classLike = referenceLocation.parent;\n    if (state.options.use === 2 /* Rename */ || !isClassLike(classLike)) return;\n    Debug.assert(classLike.name === referenceLocation);\n    const addRef = state.referenceAdder(search.symbol);\n    for (const member of classLike.members) {\n      if (!(isMethodOrAccessor(member) && isStatic(member))) {\n        continue;\n      }\n      if (member.body) {\n        member.body.forEachChild(function cb(node) {\n          if (node.kind === 110 /* ThisKeyword */) {\n            addRef(node);\n          } else if (!isFunctionLike(node) && !isClassLike(node)) {\n            node.forEachChild(cb);\n          }\n        });\n      }\n    }\n  }\n  function findOwnConstructorReferences(classSymbol, sourceFile, addNode) {\n    const constructorSymbol = getClassConstructorSymbol(classSymbol);\n    if (constructorSymbol && constructorSymbol.declarations) {\n      for (const decl of constructorSymbol.declarations) {\n        const ctrKeyword = findChildOfKind(decl, 137 /* ConstructorKeyword */, sourceFile);\n        Debug.assert(decl.kind === 177 /* Constructor */ && !!ctrKeyword);\n        addNode(ctrKeyword);\n      }\n    }\n    if (classSymbol.exports) {\n      classSymbol.exports.forEach((member) => {\n        const decl = member.valueDeclaration;\n        if (decl && decl.kind === 175 /* MethodDeclaration */) {\n          const body = decl.body;\n          if (body) {\n            forEachDescendantOfKind(body, 110 /* ThisKeyword */, (thisKeyword) => {\n              if (isNewExpressionTarget(thisKeyword)) {\n                addNode(thisKeyword);\n              }\n            });\n          }\n        }\n      });\n    }\n  }\n  function getClassConstructorSymbol(classSymbol) {\n    return classSymbol.members && classSymbol.members.get(\"__constructor\" /* Constructor */);\n  }\n  function findSuperConstructorAccesses(classDeclaration, addNode) {\n    const constructor = getClassConstructorSymbol(classDeclaration.symbol);\n    if (!(constructor && constructor.declarations)) {\n      return;\n    }\n    for (const decl of constructor.declarations) {\n      Debug.assert(decl.kind === 177 /* Constructor */);\n      const body = decl.body;\n      if (body) {\n        forEachDescendantOfKind(body, 108 /* SuperKeyword */, (node) => {\n          if (isCallExpressionTarget(node)) {\n            addNode(node);\n          }\n        });\n      }\n    }\n  }\n  function hasOwnConstructor(classDeclaration) {\n    return !!getClassConstructorSymbol(classDeclaration.symbol);\n  }\n  function findInheritedConstructorReferences(classDeclaration, state) {\n    if (hasOwnConstructor(classDeclaration)) return;\n    const classSymbol = classDeclaration.symbol;\n    const search = state.createSearch(\n      /*location*/\n      void 0,\n      classSymbol,\n      /*comingFrom*/\n      void 0\n    );\n    getReferencesInContainerOrFiles(classSymbol, state, search);\n  }\n  function addImplementationReferences(refNode, addReference2, state) {\n    if (isDeclarationName(refNode) && isImplementation(refNode.parent)) {\n      addReference2(refNode);\n      return;\n    }\n    if (refNode.kind !== 80 /* Identifier */) {\n      return;\n    }\n    if (refNode.parent.kind === 305 /* ShorthandPropertyAssignment */) {\n      getReferenceEntriesForShorthandPropertyAssignment(refNode, state.checker, addReference2);\n    }\n    const containingNode = getContainingNodeIfInHeritageClause(refNode);\n    if (containingNode) {\n      addReference2(containingNode);\n      return;\n    }\n    const typeNode = findAncestor(refNode, (a) => !isQualifiedName(a.parent) && !isTypeNode(a.parent) && !isTypeElement(a.parent));\n    const typeHavingNode = typeNode.parent;\n    if (hasType(typeHavingNode) && typeHavingNode.type === typeNode && state.markSeenContainingTypeReference(typeHavingNode)) {\n      if (hasInitializer(typeHavingNode)) {\n        addIfImplementation(typeHavingNode.initializer);\n      } else if (isFunctionLike(typeHavingNode) && typeHavingNode.body) {\n        const body = typeHavingNode.body;\n        if (body.kind === 242 /* Block */) {\n          forEachReturnStatement(body, (returnStatement) => {\n            if (returnStatement.expression) addIfImplementation(returnStatement.expression);\n          });\n        } else {\n          addIfImplementation(body);\n        }\n      } else if (isAssertionExpression(typeHavingNode) || isSatisfiesExpression(typeHavingNode)) {\n        addIfImplementation(typeHavingNode.expression);\n      }\n    }\n    function addIfImplementation(e) {\n      if (isImplementationExpression(e)) addReference2(e);\n    }\n  }\n  function getContainingNodeIfInHeritageClause(node) {\n    return isIdentifier(node) || isPropertyAccessExpression(node) ? getContainingNodeIfInHeritageClause(node.parent) : isExpressionWithTypeArguments(node) ? tryCast(node.parent.parent, or(isClassLike, isInterfaceDeclaration)) : void 0;\n  }\n  function isImplementationExpression(node) {\n    switch (node.kind) {\n      case 218 /* ParenthesizedExpression */:\n        return isImplementationExpression(node.expression);\n      case 220 /* ArrowFunction */:\n      case 219 /* FunctionExpression */:\n      case 211 /* ObjectLiteralExpression */:\n      case 232 /* ClassExpression */:\n      case 210 /* ArrayLiteralExpression */:\n        return true;\n      default:\n        return false;\n    }\n  }\n  function explicitlyInheritsFrom(symbol, parent2, cachedResults, checker) {\n    if (symbol === parent2) {\n      return true;\n    }\n    const key = getSymbolId(symbol) + \",\" + getSymbolId(parent2);\n    const cached = cachedResults.get(key);\n    if (cached !== void 0) {\n      return cached;\n    }\n    cachedResults.set(key, false);\n    const inherits = !!symbol.declarations && symbol.declarations.some(\n      (declaration) => getAllSuperTypeNodes(declaration).some((typeReference) => {\n        const type = checker.getTypeAtLocation(typeReference);\n        return !!type && !!type.symbol && explicitlyInheritsFrom(type.symbol, parent2, cachedResults, checker);\n      })\n    );\n    cachedResults.set(key, inherits);\n    return inherits;\n  }\n  function getReferencesForSuperKeyword(superKeyword) {\n    let searchSpaceNode = getSuperContainer(\n      superKeyword,\n      /*stopOnFunctions*/\n      false\n    );\n    if (!searchSpaceNode) {\n      return void 0;\n    }\n    let staticFlag = 256 /* Static */;\n    switch (searchSpaceNode.kind) {\n      case 173 /* PropertyDeclaration */:\n      case 172 /* PropertySignature */:\n      case 175 /* MethodDeclaration */:\n      case 174 /* MethodSignature */:\n      case 177 /* Constructor */:\n      case 178 /* GetAccessor */:\n      case 179 /* SetAccessor */:\n        staticFlag &= getSyntacticModifierFlags(searchSpaceNode);\n        searchSpaceNode = searchSpaceNode.parent;\n        break;\n      default:\n        return void 0;\n    }\n    const sourceFile = searchSpaceNode.getSourceFile();\n    const references = mapDefined(getPossibleSymbolReferenceNodes(sourceFile, \"super\", searchSpaceNode), (node) => {\n      if (node.kind !== 108 /* SuperKeyword */) {\n        return;\n      }\n      const container = getSuperContainer(\n        node,\n        /*stopOnFunctions*/\n        false\n      );\n      return container && isStatic(container) === !!staticFlag && container.parent.symbol === searchSpaceNode.symbol ? nodeEntry(node) : void 0;\n    });\n    return [{ definition: { type: 0 /* Symbol */, symbol: searchSpaceNode.symbol }, references }];\n  }\n  function isParameterName(node) {\n    return node.kind === 80 /* Identifier */ && node.parent.kind === 170 /* Parameter */ && node.parent.name === node;\n  }\n  function getReferencesForThisKeyword(thisOrSuperKeyword, sourceFiles, cancellationToken) {\n    let searchSpaceNode = getThisContainer(\n      thisOrSuperKeyword,\n      /*includeArrowFunctions*/\n      false,\n      /*includeClassComputedPropertyName*/\n      false\n    );\n    let staticFlag = 256 /* Static */;\n    switch (searchSpaceNode.kind) {\n      case 175 /* MethodDeclaration */:\n      case 174 /* MethodSignature */:\n        if (isObjectLiteralMethod(searchSpaceNode)) {\n          staticFlag &= getSyntacticModifierFlags(searchSpaceNode);\n          searchSpaceNode = searchSpaceNode.parent;\n          break;\n        }\n      // falls through\n      case 173 /* PropertyDeclaration */:\n      case 172 /* PropertySignature */:\n      case 177 /* Constructor */:\n      case 178 /* GetAccessor */:\n      case 179 /* SetAccessor */:\n        staticFlag &= getSyntacticModifierFlags(searchSpaceNode);\n        searchSpaceNode = searchSpaceNode.parent;\n        break;\n      case 308 /* SourceFile */:\n        if (isExternalModule(searchSpaceNode) || isParameterName(thisOrSuperKeyword)) {\n          return void 0;\n        }\n      // falls through\n      case 263 /* FunctionDeclaration */:\n      case 219 /* FunctionExpression */:\n        break;\n      // Computed properties in classes are not handled here because references to this are illegal,\n      // so there is no point finding references to them.\n      default:\n        return void 0;\n    }\n    const references = flatMap(searchSpaceNode.kind === 308 /* SourceFile */ ? sourceFiles : [searchSpaceNode.getSourceFile()], (sourceFile) => {\n      cancellationToken.throwIfCancellationRequested();\n      return getPossibleSymbolReferenceNodes(sourceFile, \"this\", isSourceFile(searchSpaceNode) ? sourceFile : searchSpaceNode).filter((node) => {\n        if (!isThis(node)) {\n          return false;\n        }\n        const container = getThisContainer(\n          node,\n          /*includeArrowFunctions*/\n          false,\n          /*includeClassComputedPropertyName*/\n          false\n        );\n        if (!canHaveSymbol(container)) return false;\n        switch (searchSpaceNode.kind) {\n          case 219 /* FunctionExpression */:\n          case 263 /* FunctionDeclaration */:\n            return searchSpaceNode.symbol === container.symbol;\n          case 175 /* MethodDeclaration */:\n          case 174 /* MethodSignature */:\n            return isObjectLiteralMethod(searchSpaceNode) && searchSpaceNode.symbol === container.symbol;\n          case 232 /* ClassExpression */:\n          case 264 /* ClassDeclaration */:\n          case 211 /* ObjectLiteralExpression */:\n            return container.parent && canHaveSymbol(container.parent) && searchSpaceNode.symbol === container.parent.symbol && isStatic(container) === !!staticFlag;\n          case 308 /* SourceFile */:\n            return container.kind === 308 /* SourceFile */ && !isExternalModule(container) && !isParameterName(node);\n        }\n      });\n    }).map((n) => nodeEntry(n));\n    const thisParameter = firstDefined(references, (r) => isParameter(r.node.parent) ? r.node : void 0);\n    return [{\n      definition: { type: 3 /* This */, node: thisParameter || thisOrSuperKeyword },\n      references\n    }];\n  }\n  function getReferencesForStringLiteral(node, sourceFiles, checker, cancellationToken) {\n    const type = getContextualTypeFromParentOrAncestorTypeNode(node, checker);\n    const references = flatMap(sourceFiles, (sourceFile) => {\n      cancellationToken.throwIfCancellationRequested();\n      return mapDefined(getPossibleSymbolReferenceNodes(sourceFile, node.text), (ref) => {\n        if (isStringLiteralLike(ref) && ref.text === node.text) {\n          if (type) {\n            const refType = getContextualTypeFromParentOrAncestorTypeNode(ref, checker);\n            if (type !== checker.getStringType() && (type === refType || isStringLiteralPropertyReference(ref, checker))) {\n              return nodeEntry(ref, 2 /* StringLiteral */);\n            }\n          } else {\n            return isNoSubstitutionTemplateLiteral(ref) && !rangeIsOnSingleLine(ref, sourceFile) ? void 0 : nodeEntry(ref, 2 /* StringLiteral */);\n          }\n        }\n      });\n    });\n    return [{\n      definition: { type: 4 /* String */, node },\n      references\n    }];\n  }\n  function isStringLiteralPropertyReference(node, checker) {\n    if (isPropertySignature(node.parent)) {\n      return checker.getPropertyOfType(checker.getTypeAtLocation(node.parent.parent), node.text);\n    }\n  }\n  function populateSearchSymbolSet(symbol, location, checker, isForRename, providePrefixAndSuffixText, implementations) {\n    const result = [];\n    forEachRelatedSymbol(\n      symbol,\n      location,\n      checker,\n      isForRename,\n      !(isForRename && providePrefixAndSuffixText),\n      (sym, root, base) => {\n        if (base) {\n          if (isStaticSymbol(symbol) !== isStaticSymbol(base)) {\n            base = void 0;\n          }\n        }\n        result.push(base || root || sym);\n      },\n      // when try to find implementation, implementations is true, and not allowed to find base class\n      /*allowBaseTypes*/\n      () => !implementations\n    );\n    return result;\n  }\n  function forEachRelatedSymbol(symbol, location, checker, isForRenamePopulateSearchSymbolSet, onlyIncludeBindingElementAtReferenceLocation, cbSymbol, allowBaseTypes) {\n    const containingObjectLiteralElement = getContainingObjectLiteralElement(location);\n    if (containingObjectLiteralElement) {\n      const shorthandValueSymbol = checker.getShorthandAssignmentValueSymbol(location.parent);\n      if (shorthandValueSymbol && isForRenamePopulateSearchSymbolSet) {\n        return cbSymbol(\n          shorthandValueSymbol,\n          /*rootSymbol*/\n          void 0,\n          /*baseSymbol*/\n          void 0,\n          3 /* SearchedLocalFoundProperty */\n        );\n      }\n      const contextualType = checker.getContextualType(containingObjectLiteralElement.parent);\n      const res2 = contextualType && firstDefined(\n        getPropertySymbolsFromContextualType(\n          containingObjectLiteralElement,\n          checker,\n          contextualType,\n          /*unionSymbolOk*/\n          true\n        ),\n        (sym) => fromRoot(sym, 4 /* SearchedPropertyFoundLocal */)\n      );\n      if (res2) return res2;\n      const propertySymbol = getPropertySymbolOfDestructuringAssignment(location, checker);\n      const res1 = propertySymbol && cbSymbol(\n        propertySymbol,\n        /*rootSymbol*/\n        void 0,\n        /*baseSymbol*/\n        void 0,\n        4 /* SearchedPropertyFoundLocal */\n      );\n      if (res1) return res1;\n      const res22 = shorthandValueSymbol && cbSymbol(\n        shorthandValueSymbol,\n        /*rootSymbol*/\n        void 0,\n        /*baseSymbol*/\n        void 0,\n        3 /* SearchedLocalFoundProperty */\n      );\n      if (res22) return res22;\n    }\n    const aliasedSymbol = getMergedAliasedSymbolOfNamespaceExportDeclaration(location, symbol, checker);\n    if (aliasedSymbol) {\n      const res2 = cbSymbol(\n        aliasedSymbol,\n        /*rootSymbol*/\n        void 0,\n        /*baseSymbol*/\n        void 0,\n        1 /* Node */\n      );\n      if (res2) return res2;\n    }\n    const res = fromRoot(symbol);\n    if (res) return res;\n    if (symbol.valueDeclaration && isParameterPropertyDeclaration(symbol.valueDeclaration, symbol.valueDeclaration.parent)) {\n      const paramProps = checker.getSymbolsOfParameterPropertyDeclaration(cast(symbol.valueDeclaration, isParameter), symbol.name);\n      Debug.assert(paramProps.length === 2 && !!(paramProps[0].flags & 1 /* FunctionScopedVariable */) && !!(paramProps[1].flags & 4 /* Property */));\n      return fromRoot(symbol.flags & 1 /* FunctionScopedVariable */ ? paramProps[1] : paramProps[0]);\n    }\n    const exportSpecifier = getDeclarationOfKind(symbol, 282 /* ExportSpecifier */);\n    if (!isForRenamePopulateSearchSymbolSet || exportSpecifier && !exportSpecifier.propertyName) {\n      const localSymbol = exportSpecifier && checker.getExportSpecifierLocalTargetSymbol(exportSpecifier);\n      if (localSymbol) {\n        const res2 = cbSymbol(\n          localSymbol,\n          /*rootSymbol*/\n          void 0,\n          /*baseSymbol*/\n          void 0,\n          1 /* Node */\n        );\n        if (res2) return res2;\n      }\n    }\n    if (!isForRenamePopulateSearchSymbolSet) {\n      let bindingElementPropertySymbol;\n      if (onlyIncludeBindingElementAtReferenceLocation) {\n        bindingElementPropertySymbol = isObjectBindingElementWithoutPropertyName(location.parent) ? getPropertySymbolFromBindingElement(checker, location.parent) : void 0;\n      } else {\n        bindingElementPropertySymbol = getPropertySymbolOfObjectBindingPatternWithoutPropertyName(symbol, checker);\n      }\n      return bindingElementPropertySymbol && fromRoot(bindingElementPropertySymbol, 4 /* SearchedPropertyFoundLocal */);\n    }\n    Debug.assert(isForRenamePopulateSearchSymbolSet);\n    const includeOriginalSymbolOfBindingElement = onlyIncludeBindingElementAtReferenceLocation;\n    if (includeOriginalSymbolOfBindingElement) {\n      const bindingElementPropertySymbol = getPropertySymbolOfObjectBindingPatternWithoutPropertyName(symbol, checker);\n      return bindingElementPropertySymbol && fromRoot(bindingElementPropertySymbol, 4 /* SearchedPropertyFoundLocal */);\n    }\n    function fromRoot(sym, kind) {\n      return firstDefined(checker.getRootSymbols(sym), (rootSymbol) => cbSymbol(\n        sym,\n        rootSymbol,\n        /*baseSymbol*/\n        void 0,\n        kind\n      ) || (rootSymbol.parent && rootSymbol.parent.flags & (32 /* Class */ | 64 /* Interface */) && allowBaseTypes(rootSymbol) ? getPropertySymbolsFromBaseTypes(rootSymbol.parent, rootSymbol.name, checker, (base) => cbSymbol(sym, rootSymbol, base, kind)) : void 0));\n    }\n    function getPropertySymbolOfObjectBindingPatternWithoutPropertyName(symbol2, checker2) {\n      const bindingElement = getDeclarationOfKind(symbol2, 209 /* BindingElement */);\n      if (bindingElement && isObjectBindingElementWithoutPropertyName(bindingElement)) {\n        return getPropertySymbolFromBindingElement(checker2, bindingElement);\n      }\n    }\n  }\n  function getPropertySymbolsFromBaseTypes(symbol, propertyName, checker, cb) {\n    const seen = /* @__PURE__ */ new Set();\n    return recur(symbol);\n    function recur(symbol2) {\n      if (!(symbol2.flags & (32 /* Class */ | 64 /* Interface */)) || !addToSeen(seen, symbol2)) return;\n      return firstDefined(symbol2.declarations, (declaration) => firstDefined(getAllSuperTypeNodes(declaration), (typeReference) => {\n        const type = checker.getTypeAtLocation(typeReference);\n        const propertySymbol = type.symbol && checker.getPropertyOfType(type, propertyName);\n        return propertySymbol && firstDefined(checker.getRootSymbols(propertySymbol), cb) || type.symbol && recur(type.symbol);\n      }));\n    }\n  }\n  function isStaticSymbol(symbol) {\n    if (!symbol.valueDeclaration) return false;\n    const modifierFlags = getEffectiveModifierFlags(symbol.valueDeclaration);\n    return !!(modifierFlags & 256 /* Static */);\n  }\n  function getRelatedSymbol(search, referenceSymbol, referenceLocation, state) {\n    const { checker } = state;\n    return forEachRelatedSymbol(\n      referenceSymbol,\n      referenceLocation,\n      checker,\n      /*isForRenamePopulateSearchSymbolSet*/\n      false,\n      /*onlyIncludeBindingElementAtReferenceLocation*/\n      state.options.use !== 2 /* Rename */ || !!state.options.providePrefixAndSuffixTextForRename,\n      (sym, rootSymbol, baseSymbol, kind) => {\n        if (baseSymbol) {\n          if (isStaticSymbol(referenceSymbol) !== isStaticSymbol(baseSymbol)) {\n            baseSymbol = void 0;\n          }\n        }\n        return search.includes(baseSymbol || rootSymbol || sym) ? { symbol: rootSymbol && !(getCheckFlags(sym) & 6 /* Synthetic */) ? rootSymbol : sym, kind } : void 0;\n      },\n      /*allowBaseTypes*/\n      (rootSymbol) => !(search.parents && !search.parents.some((parent2) => explicitlyInheritsFrom(rootSymbol.parent, parent2, state.inheritsFromCache, checker)))\n    );\n  }\n  function getIntersectingMeaningFromDeclarations(node, symbol) {\n    let meaning = getMeaningFromLocation(node);\n    const { declarations } = symbol;\n    if (declarations) {\n      let lastIterationMeaning;\n      do {\n        lastIterationMeaning = meaning;\n        for (const declaration of declarations) {\n          const declarationMeaning = getMeaningFromDeclaration(declaration);\n          if (declarationMeaning & meaning) {\n            meaning |= declarationMeaning;\n          }\n        }\n      } while (meaning !== lastIterationMeaning);\n    }\n    return meaning;\n  }\n  Core2.getIntersectingMeaningFromDeclarations = getIntersectingMeaningFromDeclarations;\n  function isImplementation(node) {\n    return !!(node.flags & 33554432 /* Ambient */) ? !(isInterfaceDeclaration(node) || isTypeAliasDeclaration(node)) : isVariableLike(node) ? hasInitializer(node) : isFunctionLikeDeclaration(node) ? !!node.body : isClassLike(node) || isModuleOrEnumDeclaration(node);\n  }\n  function getReferenceEntriesForShorthandPropertyAssignment(node, checker, addReference2) {\n    const refSymbol = checker.getSymbolAtLocation(node);\n    const shorthandSymbol = checker.getShorthandAssignmentValueSymbol(refSymbol.valueDeclaration);\n    if (shorthandSymbol) {\n      for (const declaration of shorthandSymbol.getDeclarations()) {\n        if (getMeaningFromDeclaration(declaration) & 1 /* Value */) {\n          addReference2(declaration);\n        }\n      }\n    }\n  }\n  Core2.getReferenceEntriesForShorthandPropertyAssignment = getReferenceEntriesForShorthandPropertyAssignment;\n  function forEachDescendantOfKind(node, kind, action) {\n    forEachChild(node, (child) => {\n      if (child.kind === kind) {\n        action(child);\n      }\n      forEachDescendantOfKind(child, kind, action);\n    });\n  }\n  function tryGetClassByExtendingIdentifier(node) {\n    return tryGetClassExtendingExpressionWithTypeArguments(climbPastPropertyAccess(node).parent);\n  }\n  function getParentSymbolsOfPropertyAccess(location, symbol, checker) {\n    const propertyAccessExpression = isRightSideOfPropertyAccess(location) ? location.parent : void 0;\n    const lhsType = propertyAccessExpression && checker.getTypeAtLocation(propertyAccessExpression.expression);\n    const res = mapDefined(lhsType && (lhsType.isUnionOrIntersection() ? lhsType.types : lhsType.symbol === symbol.parent ? void 0 : [lhsType]), (t) => t.symbol && t.symbol.flags & (32 /* Class */ | 64 /* Interface */) ? t.symbol : void 0);\n    return res.length === 0 ? void 0 : res;\n  }\n  function isForRenameWithPrefixAndSuffixText(options) {\n    return options.use === 2 /* Rename */ && options.providePrefixAndSuffixTextForRename;\n  }\n})(Core || (Core = {}));\n\n// src/services/_namespaces/ts.GoToDefinition.ts\nvar ts_GoToDefinition_exports = {};\n__export(ts_GoToDefinition_exports, {\n  createDefinitionInfo: () => createDefinitionInfo,\n  getDefinitionAndBoundSpan: () => getDefinitionAndBoundSpan,\n  getDefinitionAtPosition: () => getDefinitionAtPosition,\n  getReferenceAtPosition: () => getReferenceAtPosition,\n  getTypeDefinitionAtPosition: () => getTypeDefinitionAtPosition\n});\n\n// src/services/goToDefinition.ts\nfunction getDefinitionAtPosition(program, sourceFile, position, searchOtherFilesOnly, stopAtAlias) {\n  var _a;\n  const resolvedRef = getReferenceAtPosition(sourceFile, position, program);\n  const fileReferenceDefinition = resolvedRef && [getDefinitionInfoForFileReference(resolvedRef.reference.fileName, resolvedRef.fileName, resolvedRef.unverified)] || emptyArray;\n  if (resolvedRef == null ? void 0 : resolvedRef.file) {\n    return fileReferenceDefinition;\n  }\n  const node = getTouchingPropertyName(sourceFile, position);\n  if (node === sourceFile) {\n    return void 0;\n  }\n  const { parent: parent2 } = node;\n  const typeChecker = program.getTypeChecker();\n  if (node.kind === 164 /* OverrideKeyword */ || isIdentifier(node) && isJSDocOverrideTag(parent2) && parent2.tagName === node) {\n    const def = getDefinitionFromOverriddenMember(typeChecker, node);\n    if (def !== void 0 || node.kind !== 164 /* OverrideKeyword */) {\n      return def || emptyArray;\n    }\n  }\n  if (isJumpStatementTarget(node)) {\n    const label = getTargetLabel(node.parent, node.text);\n    return label ? [createDefinitionInfoFromName(\n      typeChecker,\n      label,\n      \"label\" /* label */,\n      node.text,\n      /*containerName*/\n      void 0\n    )] : void 0;\n  }\n  switch (node.kind) {\n    case 90 /* DefaultKeyword */:\n      if (!isDefaultClause(node.parent)) {\n        break;\n      }\n    // falls through\n    case 84 /* CaseKeyword */:\n      const switchStatement = findAncestor(node.parent, isSwitchStatement);\n      if (switchStatement) {\n        return [createDefinitionInfoFromSwitch(switchStatement, sourceFile)];\n      }\n      break;\n  }\n  let findFunctionDecl;\n  switch (node.kind) {\n    case 107 /* ReturnKeyword */:\n    case 135 /* AwaitKeyword */:\n    case 127 /* YieldKeyword */:\n      findFunctionDecl = isFunctionLikeDeclaration;\n      const functionDeclaration = findAncestor(node, findFunctionDecl);\n      return functionDeclaration ? [createDefinitionFromSignatureDeclaration(typeChecker, functionDeclaration)] : void 0;\n  }\n  if (isStaticModifier(node) && isClassStaticBlockDeclaration(node.parent)) {\n    const classDecl = node.parent.parent;\n    const { symbol: symbol2, failedAliasResolution: failedAliasResolution2 } = getSymbol(classDecl, typeChecker, stopAtAlias);\n    const staticBlocks = filter(classDecl.members, isClassStaticBlockDeclaration);\n    const containerName = symbol2 ? typeChecker.symbolToString(symbol2, classDecl) : \"\";\n    const sourceFile2 = node.getSourceFile();\n    return map(staticBlocks, (staticBlock) => {\n      let { pos } = moveRangePastModifiers(staticBlock);\n      pos = skipTrivia(sourceFile2.text, pos);\n      return createDefinitionInfoFromName(\n        typeChecker,\n        staticBlock,\n        \"constructor\" /* constructorImplementationElement */,\n        \"static {}\",\n        containerName,\n        /*unverified*/\n        false,\n        failedAliasResolution2,\n        { start: pos, length: \"static\".length }\n      );\n    });\n  }\n  let { symbol, failedAliasResolution } = getSymbol(node, typeChecker, stopAtAlias);\n  let fallbackNode = node;\n  if (searchOtherFilesOnly && failedAliasResolution) {\n    const importDeclaration = forEach([node, ...(symbol == null ? void 0 : symbol.declarations) || emptyArray], (n) => findAncestor(n, isAnyImportOrBareOrAccessedRequire));\n    const moduleSpecifier = importDeclaration && tryGetModuleSpecifierFromDeclaration(importDeclaration);\n    if (moduleSpecifier) {\n      ({ symbol, failedAliasResolution } = getSymbol(moduleSpecifier, typeChecker, stopAtAlias));\n      fallbackNode = moduleSpecifier;\n    }\n  }\n  if (!symbol && isModuleSpecifierLike(fallbackNode)) {\n    const ref = (_a = program.getResolvedModuleFromModuleSpecifier(fallbackNode, sourceFile)) == null ? void 0 : _a.resolvedModule;\n    if (ref) {\n      return [{\n        name: fallbackNode.text,\n        fileName: ref.resolvedFileName,\n        containerName: void 0,\n        containerKind: void 0,\n        kind: \"script\" /* scriptElement */,\n        textSpan: createTextSpan(0, 0),\n        failedAliasResolution,\n        isAmbient: isDeclarationFileName(ref.resolvedFileName),\n        unverified: fallbackNode !== node\n      }];\n    }\n  }\n  if (isModifier(node) && (isClassElement(parent2) || isNamedDeclaration(parent2))) {\n    symbol = parent2.symbol;\n  }\n  if (!symbol) {\n    return concatenate(fileReferenceDefinition, getDefinitionInfoForIndexSignatures(node, typeChecker));\n  }\n  if (searchOtherFilesOnly && every(symbol.declarations, (d) => d.getSourceFile().fileName === sourceFile.fileName)) return void 0;\n  const calledDeclaration = tryGetSignatureDeclaration(typeChecker, node);\n  if (calledDeclaration && !(isJsxOpeningLikeElement(node.parent) && isJsxConstructorLike(calledDeclaration))) {\n    const sigInfo = createDefinitionFromSignatureDeclaration(typeChecker, calledDeclaration, failedAliasResolution);\n    let declarationFilter = (d) => d !== calledDeclaration;\n    if (typeChecker.getRootSymbols(symbol).some((s) => symbolMatchesSignature(s, calledDeclaration))) {\n      if (!isConstructorDeclaration(calledDeclaration)) return [sigInfo];\n      declarationFilter = (d) => d !== calledDeclaration && (isClassDeclaration(d) || isClassExpression(d));\n    }\n    const defs = getDefinitionFromSymbol(typeChecker, symbol, node, failedAliasResolution, declarationFilter) || emptyArray;\n    return node.kind === 108 /* SuperKeyword */ ? [sigInfo, ...defs] : [...defs, sigInfo];\n  }\n  if (node.parent.kind === 305 /* ShorthandPropertyAssignment */) {\n    const shorthandSymbol = typeChecker.getShorthandAssignmentValueSymbol(symbol.valueDeclaration);\n    const definitions = (shorthandSymbol == null ? void 0 : shorthandSymbol.declarations) ? shorthandSymbol.declarations.map((decl) => createDefinitionInfo(\n      decl,\n      typeChecker,\n      shorthandSymbol,\n      node,\n      /*unverified*/\n      false,\n      failedAliasResolution\n    )) : emptyArray;\n    return concatenate(definitions, getDefinitionFromObjectLiteralElement(typeChecker, node));\n  }\n  if (isPropertyName(node) && isBindingElement(parent2) && isObjectBindingPattern(parent2.parent) && node === (parent2.propertyName || parent2.name)) {\n    const name = getNameFromPropertyName(node);\n    const type = typeChecker.getTypeAtLocation(parent2.parent);\n    return name === void 0 ? emptyArray : flatMap(type.isUnion() ? type.types : [type], (t) => {\n      const prop = t.getProperty(name);\n      return prop && getDefinitionFromSymbol(typeChecker, prop, node);\n    });\n  }\n  const objectLiteralElementDefinition = getDefinitionFromObjectLiteralElement(typeChecker, node);\n  return concatenate(fileReferenceDefinition, objectLiteralElementDefinition.length ? objectLiteralElementDefinition : getDefinitionFromSymbol(typeChecker, symbol, node, failedAliasResolution));\n}\nfunction symbolMatchesSignature(s, calledDeclaration) {\n  var _a;\n  return s === calledDeclaration.symbol || s === calledDeclaration.symbol.parent || isAssignmentExpression(calledDeclaration.parent) || !isCallLikeExpression(calledDeclaration.parent) && s === ((_a = tryCast(calledDeclaration.parent, canHaveSymbol)) == null ? void 0 : _a.symbol);\n}\nfunction getDefinitionFromObjectLiteralElement(typeChecker, node) {\n  const element = getContainingObjectLiteralElement(node);\n  if (element) {\n    const contextualType = element && typeChecker.getContextualType(element.parent);\n    if (contextualType) {\n      return flatMap(getPropertySymbolsFromContextualType(\n        element,\n        typeChecker,\n        contextualType,\n        /*unionSymbolOk*/\n        false\n      ), (propertySymbol) => getDefinitionFromSymbol(typeChecker, propertySymbol, node));\n    }\n  }\n  return emptyArray;\n}\nfunction getDefinitionFromOverriddenMember(typeChecker, node) {\n  const classElement = findAncestor(node, isClassElement);\n  if (!(classElement && classElement.name)) return;\n  const baseDeclaration = findAncestor(classElement, isClassLike);\n  if (!baseDeclaration) return;\n  const baseTypeNode = getEffectiveBaseTypeNode(baseDeclaration);\n  if (!baseTypeNode) return;\n  const expression = skipParentheses(baseTypeNode.expression);\n  const base = isClassExpression(expression) ? expression.symbol : typeChecker.getSymbolAtLocation(expression);\n  if (!base) return;\n  const baseType = hasStaticModifier(classElement) ? typeChecker.getTypeOfSymbol(base) : typeChecker.getDeclaredTypeOfSymbol(base);\n  let baseProp;\n  if (isComputedPropertyName(classElement.name)) {\n    const prop = typeChecker.getSymbolAtLocation(classElement.name);\n    if (!prop) {\n      return;\n    }\n    if (isKnownSymbol(prop)) {\n      baseProp = find(typeChecker.getPropertiesOfType(baseType), (s) => s.escapedName === prop.escapedName);\n    } else {\n      baseProp = typeChecker.getPropertyOfType(baseType, unescapeLeadingUnderscores(prop.escapedName));\n    }\n  } else {\n    baseProp = typeChecker.getPropertyOfType(baseType, unescapeLeadingUnderscores(getTextOfPropertyName(classElement.name)));\n  }\n  if (!baseProp) return;\n  return getDefinitionFromSymbol(typeChecker, baseProp, node);\n}\nfunction getReferenceAtPosition(sourceFile, position, program) {\n  var _a, _b;\n  const referencePath = findReferenceInPosition(sourceFile.referencedFiles, position);\n  if (referencePath) {\n    const file = program.getSourceFileFromReference(sourceFile, referencePath);\n    return file && { reference: referencePath, fileName: file.fileName, file, unverified: false };\n  }\n  const typeReferenceDirective = findReferenceInPosition(sourceFile.typeReferenceDirectives, position);\n  if (typeReferenceDirective) {\n    const reference = (_a = program.getResolvedTypeReferenceDirectiveFromTypeReferenceDirective(typeReferenceDirective, sourceFile)) == null ? void 0 : _a.resolvedTypeReferenceDirective;\n    const file = reference && program.getSourceFile(reference.resolvedFileName);\n    return file && { reference: typeReferenceDirective, fileName: file.fileName, file, unverified: false };\n  }\n  const libReferenceDirective = findReferenceInPosition(sourceFile.libReferenceDirectives, position);\n  if (libReferenceDirective) {\n    const file = program.getLibFileFromReference(libReferenceDirective);\n    return file && { reference: libReferenceDirective, fileName: file.fileName, file, unverified: false };\n  }\n  if (sourceFile.imports.length || sourceFile.moduleAugmentations.length) {\n    const node = getTouchingToken(sourceFile, position);\n    let resolution;\n    if (isModuleSpecifierLike(node) && isExternalModuleNameRelative(node.text) && (resolution = program.getResolvedModuleFromModuleSpecifier(node, sourceFile))) {\n      const verifiedFileName = (_b = resolution.resolvedModule) == null ? void 0 : _b.resolvedFileName;\n      const fileName = verifiedFileName || resolvePath(getDirectoryPath(sourceFile.fileName), node.text);\n      return {\n        file: program.getSourceFile(fileName),\n        fileName,\n        reference: {\n          pos: node.getStart(),\n          end: node.getEnd(),\n          fileName: node.text\n        },\n        unverified: !verifiedFileName\n      };\n    }\n  }\n  return void 0;\n}\nvar typesWithUnwrappedTypeArguments = /* @__PURE__ */ new Set([\n  \"Array\",\n  \"ArrayLike\",\n  \"ReadonlyArray\",\n  \"Promise\",\n  \"PromiseLike\",\n  \"Iterable\",\n  \"IterableIterator\",\n  \"AsyncIterable\",\n  \"Set\",\n  \"WeakSet\",\n  \"ReadonlySet\",\n  \"Map\",\n  \"WeakMap\",\n  \"ReadonlyMap\",\n  \"Partial\",\n  \"Required\",\n  \"Readonly\",\n  \"Pick\",\n  \"Omit\"\n]);\nfunction shouldUnwrapFirstTypeArgumentTypeDefinitionFromTypeReference(typeChecker, type) {\n  const referenceName = type.symbol.name;\n  if (!typesWithUnwrappedTypeArguments.has(referenceName)) {\n    return false;\n  }\n  const globalType = typeChecker.resolveName(\n    referenceName,\n    /*location*/\n    void 0,\n    788968 /* Type */,\n    /*excludeGlobals*/\n    false\n  );\n  return !!globalType && globalType === type.target.symbol;\n}\nfunction shouldUnwrapFirstTypeArgumentTypeDefinitionFromAlias(typeChecker, type) {\n  if (!type.aliasSymbol) {\n    return false;\n  }\n  const referenceName = type.aliasSymbol.name;\n  if (!typesWithUnwrappedTypeArguments.has(referenceName)) {\n    return false;\n  }\n  const globalType = typeChecker.resolveName(\n    referenceName,\n    /*location*/\n    void 0,\n    788968 /* Type */,\n    /*excludeGlobals*/\n    false\n  );\n  return !!globalType && globalType === type.aliasSymbol;\n}\nfunction getFirstTypeArgumentDefinitions(typeChecker, type, node, failedAliasResolution) {\n  var _a, _b;\n  if (!!(getObjectFlags(type) & 4 /* Reference */) && shouldUnwrapFirstTypeArgumentTypeDefinitionFromTypeReference(typeChecker, type)) {\n    return definitionFromType(typeChecker.getTypeArguments(type)[0], typeChecker, node, failedAliasResolution);\n  }\n  if (shouldUnwrapFirstTypeArgumentTypeDefinitionFromAlias(typeChecker, type) && type.aliasTypeArguments) {\n    return definitionFromType(type.aliasTypeArguments[0], typeChecker, node, failedAliasResolution);\n  }\n  if (getObjectFlags(type) & 32 /* Mapped */ && type.target && shouldUnwrapFirstTypeArgumentTypeDefinitionFromAlias(typeChecker, type.target)) {\n    const declaration = (_b = (_a = type.aliasSymbol) == null ? void 0 : _a.declarations) == null ? void 0 : _b[0];\n    if (declaration && isTypeAliasDeclaration(declaration) && isTypeReferenceNode(declaration.type) && declaration.type.typeArguments) {\n      return definitionFromType(typeChecker.getTypeAtLocation(declaration.type.typeArguments[0]), typeChecker, node, failedAliasResolution);\n    }\n  }\n  return [];\n}\nfunction getTypeDefinitionAtPosition(typeChecker, sourceFile, position) {\n  const node = getTouchingPropertyName(sourceFile, position);\n  if (node === sourceFile) {\n    return void 0;\n  }\n  if (isImportMeta(node.parent) && node.parent.name === node) {\n    return definitionFromType(\n      typeChecker.getTypeAtLocation(node.parent),\n      typeChecker,\n      node.parent,\n      /*failedAliasResolution*/\n      false\n    );\n  }\n  let { symbol, failedAliasResolution } = getSymbol(\n    node,\n    typeChecker,\n    /*stopAtAlias*/\n    false\n  );\n  if (isModifier(node) && (isClassElement(node.parent) || isNamedDeclaration(node.parent))) {\n    symbol = node.parent.symbol;\n    failedAliasResolution = false;\n  }\n  if (!symbol) return void 0;\n  const typeAtLocation = typeChecker.getTypeOfSymbolAtLocation(symbol, node);\n  const returnType = tryGetReturnTypeOfFunction(symbol, typeAtLocation, typeChecker);\n  const fromReturnType = returnType && definitionFromType(returnType, typeChecker, node, failedAliasResolution);\n  const [resolvedType, typeDefinitions] = fromReturnType && fromReturnType.length !== 0 ? [returnType, fromReturnType] : [typeAtLocation, definitionFromType(typeAtLocation, typeChecker, node, failedAliasResolution)];\n  return typeDefinitions.length ? [...getFirstTypeArgumentDefinitions(typeChecker, resolvedType, node, failedAliasResolution), ...typeDefinitions] : !(symbol.flags & 111551 /* Value */) && symbol.flags & 788968 /* Type */ ? getDefinitionFromSymbol(typeChecker, skipAlias(symbol, typeChecker), node, failedAliasResolution) : void 0;\n}\nfunction definitionFromType(type, checker, node, failedAliasResolution) {\n  return flatMap(type.isUnion() && !(type.flags & 32 /* Enum */) ? type.types : [type], (t) => t.symbol && getDefinitionFromSymbol(checker, t.symbol, node, failedAliasResolution));\n}\nfunction tryGetReturnTypeOfFunction(symbol, type, checker) {\n  if (type.symbol === symbol || // At `const f = () => {}`, the symbol is `f` and the type symbol is at `() => {}`\n  symbol.valueDeclaration && type.symbol && isVariableDeclaration(symbol.valueDeclaration) && symbol.valueDeclaration.initializer === type.symbol.valueDeclaration) {\n    const sigs = type.getCallSignatures();\n    if (sigs.length === 1) return checker.getReturnTypeOfSignature(first(sigs));\n  }\n  return void 0;\n}\nfunction getDefinitionAndBoundSpan(program, sourceFile, position) {\n  const definitions = getDefinitionAtPosition(program, sourceFile, position);\n  if (!definitions || definitions.length === 0) {\n    return void 0;\n  }\n  const comment = findReferenceInPosition(sourceFile.referencedFiles, position) || findReferenceInPosition(sourceFile.typeReferenceDirectives, position) || findReferenceInPosition(sourceFile.libReferenceDirectives, position);\n  if (comment) {\n    return { definitions, textSpan: createTextSpanFromRange(comment) };\n  }\n  const node = getTouchingPropertyName(sourceFile, position);\n  const textSpan = createTextSpan(node.getStart(), node.getWidth());\n  return { definitions, textSpan };\n}\nfunction getDefinitionInfoForIndexSignatures(node, checker) {\n  return mapDefined(checker.getIndexInfosAtLocation(node), (info) => info.declaration && createDefinitionFromSignatureDeclaration(checker, info.declaration));\n}\nfunction getSymbol(node, checker, stopAtAlias) {\n  const symbol = checker.getSymbolAtLocation(node);\n  let failedAliasResolution = false;\n  if ((symbol == null ? void 0 : symbol.declarations) && symbol.flags & 2097152 /* Alias */ && !stopAtAlias && shouldSkipAlias(node, symbol.declarations[0])) {\n    const aliased = checker.getAliasedSymbol(symbol);\n    if (aliased.declarations) {\n      return { symbol: aliased };\n    } else {\n      failedAliasResolution = true;\n    }\n  }\n  return { symbol, failedAliasResolution };\n}\nfunction shouldSkipAlias(node, declaration) {\n  if (node.kind !== 80 /* Identifier */ && (node.kind !== 11 /* StringLiteral */ || !isImportOrExportSpecifier(node.parent))) {\n    return false;\n  }\n  if (node.parent === declaration) {\n    return true;\n  }\n  if (declaration.kind === 275 /* NamespaceImport */) {\n    return false;\n  }\n  return true;\n}\nfunction isExpandoDeclaration(node) {\n  if (!isAssignmentDeclaration(node)) return false;\n  const containingAssignment = findAncestor(node, (p) => {\n    if (isAssignmentExpression(p)) return true;\n    if (!isAssignmentDeclaration(p)) return \"quit\";\n    return false;\n  });\n  return !!containingAssignment && getAssignmentDeclarationKind(containingAssignment) === 5 /* Property */;\n}\nfunction getDefinitionFromSymbol(typeChecker, symbol, node, failedAliasResolution, declarationFilter) {\n  const filteredDeclarations = declarationFilter !== void 0 ? filter(symbol.declarations, declarationFilter) : symbol.declarations;\n  const signatureDefinition = !declarationFilter && (getConstructSignatureDefinition() || getCallSignatureDefinition());\n  if (signatureDefinition) {\n    return signatureDefinition;\n  }\n  const withoutExpandos = filter(filteredDeclarations, (d) => !isExpandoDeclaration(d));\n  const results = some(withoutExpandos) ? withoutExpandos : filteredDeclarations;\n  return map(results, (declaration) => createDefinitionInfo(\n    declaration,\n    typeChecker,\n    symbol,\n    node,\n    /*unverified*/\n    false,\n    failedAliasResolution\n  ));\n  function getConstructSignatureDefinition() {\n    if (symbol.flags & 32 /* Class */ && !(symbol.flags & (16 /* Function */ | 3 /* Variable */)) && (isNewExpressionTarget(node) || node.kind === 137 /* ConstructorKeyword */)) {\n      const cls = find(filteredDeclarations, isClassLike);\n      return cls && getSignatureDefinition(\n        cls.members,\n        /*selectConstructors*/\n        true\n      );\n    }\n  }\n  function getCallSignatureDefinition() {\n    return isCallOrNewExpressionTarget(node) || isNameOfFunctionDeclaration(node) ? getSignatureDefinition(\n      filteredDeclarations,\n      /*selectConstructors*/\n      false\n    ) : void 0;\n  }\n  function getSignatureDefinition(signatureDeclarations, selectConstructors) {\n    if (!signatureDeclarations) {\n      return void 0;\n    }\n    const declarations = signatureDeclarations.filter(selectConstructors ? isConstructorDeclaration : isFunctionLike);\n    const declarationsWithBody = declarations.filter((d) => !!d.body);\n    return declarations.length ? declarationsWithBody.length !== 0 ? declarationsWithBody.map((x) => createDefinitionInfo(x, typeChecker, symbol, node)) : [createDefinitionInfo(\n      last(declarations),\n      typeChecker,\n      symbol,\n      node,\n      /*unverified*/\n      false,\n      failedAliasResolution\n    )] : void 0;\n  }\n}\nfunction createDefinitionInfo(declaration, checker, symbol, node, unverified, failedAliasResolution) {\n  const symbolName2 = checker.symbolToString(symbol);\n  const symbolKind = ts_SymbolDisplay_exports.getSymbolKind(checker, symbol, node);\n  const containerName = symbol.parent ? checker.symbolToString(symbol.parent, node) : \"\";\n  return createDefinitionInfoFromName(checker, declaration, symbolKind, symbolName2, containerName, unverified, failedAliasResolution);\n}\nfunction createDefinitionInfoFromName(checker, declaration, symbolKind, symbolName2, containerName, unverified, failedAliasResolution, textSpan) {\n  const sourceFile = declaration.getSourceFile();\n  if (!textSpan) {\n    const name = getNameOfDeclaration(declaration) || declaration;\n    textSpan = createTextSpanFromNode(name, sourceFile);\n  }\n  return {\n    fileName: sourceFile.fileName,\n    textSpan,\n    kind: symbolKind,\n    name: symbolName2,\n    containerKind: void 0,\n    // TODO: GH#18217\n    containerName,\n    ...ts_FindAllReferences_exports.toContextSpan(\n      textSpan,\n      sourceFile,\n      ts_FindAllReferences_exports.getContextNode(declaration)\n    ),\n    isLocal: !isDefinitionVisible(checker, declaration),\n    isAmbient: !!(declaration.flags & 33554432 /* Ambient */),\n    unverified,\n    failedAliasResolution\n  };\n}\nfunction createDefinitionInfoFromSwitch(statement, sourceFile) {\n  const keyword = ts_FindAllReferences_exports.getContextNode(statement);\n  const textSpan = createTextSpanFromNode(isContextWithStartAndEndNode(keyword) ? keyword.start : keyword, sourceFile);\n  return {\n    fileName: sourceFile.fileName,\n    textSpan,\n    kind: \"keyword\" /* keyword */,\n    name: \"switch\",\n    containerKind: void 0,\n    containerName: \"\",\n    ...ts_FindAllReferences_exports.toContextSpan(textSpan, sourceFile, keyword),\n    isLocal: true,\n    isAmbient: false,\n    unverified: false,\n    failedAliasResolution: void 0\n  };\n}\nfunction isDefinitionVisible(checker, declaration) {\n  if (checker.isDeclarationVisible(declaration)) return true;\n  if (!declaration.parent) return false;\n  if (hasInitializer(declaration.parent) && declaration.parent.initializer === declaration) return isDefinitionVisible(checker, declaration.parent);\n  switch (declaration.kind) {\n    case 173 /* PropertyDeclaration */:\n    case 178 /* GetAccessor */:\n    case 179 /* SetAccessor */:\n    case 175 /* MethodDeclaration */:\n      if (hasEffectiveModifier(declaration, 2 /* Private */)) return false;\n    // Public properties/methods are visible if its parents are visible, so:\n    // falls through\n    case 177 /* Constructor */:\n    case 304 /* PropertyAssignment */:\n    case 305 /* ShorthandPropertyAssignment */:\n    case 211 /* ObjectLiteralExpression */:\n    case 232 /* ClassExpression */:\n    case 220 /* ArrowFunction */:\n    case 219 /* FunctionExpression */:\n      return isDefinitionVisible(checker, declaration.parent);\n    default:\n      return false;\n  }\n}\nfunction createDefinitionFromSignatureDeclaration(typeChecker, decl, failedAliasResolution) {\n  return createDefinitionInfo(\n    decl,\n    typeChecker,\n    decl.symbol,\n    decl,\n    /*unverified*/\n    false,\n    failedAliasResolution\n  );\n}\nfunction findReferenceInPosition(refs, pos) {\n  return find(refs, (ref) => textRangeContainsPositionInclusive(ref, pos));\n}\nfunction getDefinitionInfoForFileReference(name, targetFileName, unverified) {\n  return {\n    fileName: targetFileName,\n    textSpan: createTextSpanFromBounds(0, 0),\n    kind: \"script\" /* scriptElement */,\n    name,\n    containerName: void 0,\n    containerKind: void 0,\n    // TODO: GH#18217\n    unverified\n  };\n}\nfunction getAncestorCallLikeExpression(node) {\n  const target = findAncestor(node, (n) => !isRightSideOfPropertyAccess(n));\n  const callLike = target == null ? void 0 : target.parent;\n  return callLike && isCallLikeExpression(callLike) && getInvokedExpression(callLike) === target ? callLike : void 0;\n}\nfunction tryGetSignatureDeclaration(typeChecker, node) {\n  const callLike = getAncestorCallLikeExpression(node);\n  const signature = callLike && typeChecker.getResolvedSignature(callLike);\n  return tryCast(signature && signature.declaration, (d) => isFunctionLike(d) && !isFunctionTypeNode(d));\n}\nfunction isJsxConstructorLike(node) {\n  switch (node.kind) {\n    case 177 /* Constructor */:\n    case 186 /* ConstructorType */:\n    case 180 /* CallSignature */:\n    case 181 /* ConstructSignature */:\n      return true;\n    default:\n      return false;\n  }\n}\n\n// src/services/_namespaces/ts.InlayHints.ts\nvar ts_InlayHints_exports = {};\n__export(ts_InlayHints_exports, {\n  provideInlayHints: () => provideInlayHints\n});\n\n// src/services/inlayHints.ts\nvar leadingParameterNameCommentRegexFactory = (name) => {\n  return new RegExp(`^\\\\s?/\\\\*\\\\*?\\\\s?${name}\\\\s?\\\\*\\\\/\\\\s?$`);\n};\nfunction shouldShowParameterNameHints(preferences) {\n  return preferences.includeInlayParameterNameHints === \"literals\" || preferences.includeInlayParameterNameHints === \"all\";\n}\nfunction shouldShowLiteralParameterNameHintsOnly(preferences) {\n  return preferences.includeInlayParameterNameHints === \"literals\";\n}\nfunction shouldUseInteractiveInlayHints(preferences) {\n  return preferences.interactiveInlayHints === true;\n}\nfunction provideInlayHints(context) {\n  const { file, program, span, cancellationToken, preferences } = context;\n  const sourceFileText = file.text;\n  const compilerOptions = program.getCompilerOptions();\n  const quotePreference = getQuotePreference(file, preferences);\n  const checker = program.getTypeChecker();\n  const result = [];\n  visitor(file);\n  return result;\n  function visitor(node) {\n    if (!node || node.getFullWidth() === 0) {\n      return;\n    }\n    switch (node.kind) {\n      case 268 /* ModuleDeclaration */:\n      case 264 /* ClassDeclaration */:\n      case 265 /* InterfaceDeclaration */:\n      case 263 /* FunctionDeclaration */:\n      case 232 /* ClassExpression */:\n      case 219 /* FunctionExpression */:\n      case 175 /* MethodDeclaration */:\n      case 220 /* ArrowFunction */:\n        cancellationToken.throwIfCancellationRequested();\n    }\n    if (!textSpanIntersectsWith(span, node.pos, node.getFullWidth())) {\n      return;\n    }\n    if (isTypeNode(node) && !isExpressionWithTypeArguments(node)) {\n      return;\n    }\n    if (preferences.includeInlayVariableTypeHints && isVariableDeclaration(node)) {\n      visitVariableLikeDeclaration(node);\n    } else if (preferences.includeInlayPropertyDeclarationTypeHints && isPropertyDeclaration(node)) {\n      visitVariableLikeDeclaration(node);\n    } else if (preferences.includeInlayEnumMemberValueHints && isEnumMember(node)) {\n      visitEnumMember(node);\n    } else if (shouldShowParameterNameHints(preferences) && (isCallExpression(node) || isNewExpression(node))) {\n      visitCallOrNewExpression(node);\n    } else {\n      if (preferences.includeInlayFunctionParameterTypeHints && isFunctionLikeDeclaration(node) && hasContextSensitiveParameters(node)) {\n        visitFunctionLikeForParameterType(node);\n      }\n      if (preferences.includeInlayFunctionLikeReturnTypeHints && isSignatureSupportingReturnAnnotation(node)) {\n        visitFunctionDeclarationLikeForReturnType(node);\n      }\n    }\n    return forEachChild(node, visitor);\n  }\n  function isSignatureSupportingReturnAnnotation(node) {\n    return isArrowFunction(node) || isFunctionExpression(node) || isFunctionDeclaration(node) || isMethodDeclaration(node) || isGetAccessorDeclaration(node);\n  }\n  function addParameterHints(text, parameter, position, isFirstVariadicArgument) {\n    let hintText = `${isFirstVariadicArgument ? \"...\" : \"\"}${text}`;\n    let displayParts;\n    if (shouldUseInteractiveInlayHints(preferences)) {\n      displayParts = [getNodeDisplayPart(hintText, parameter), { text: \":\" }];\n      hintText = \"\";\n    } else {\n      hintText += \":\";\n    }\n    result.push({\n      text: hintText,\n      position,\n      kind: \"Parameter\" /* Parameter */,\n      whitespaceAfter: true,\n      displayParts\n    });\n  }\n  function addTypeHints(hintText, position) {\n    result.push({\n      text: typeof hintText === \"string\" ? `: ${hintText}` : \"\",\n      displayParts: typeof hintText === \"string\" ? void 0 : [{ text: \": \" }, ...hintText],\n      position,\n      kind: \"Type\" /* Type */,\n      whitespaceBefore: true\n    });\n  }\n  function addEnumMemberValueHints(text, position) {\n    result.push({\n      text: `= ${text}`,\n      position,\n      kind: \"Enum\" /* Enum */,\n      whitespaceBefore: true\n    });\n  }\n  function visitEnumMember(member) {\n    if (member.initializer) {\n      return;\n    }\n    const enumValue = checker.getConstantValue(member);\n    if (enumValue !== void 0) {\n      addEnumMemberValueHints(enumValue.toString(), member.end);\n    }\n  }\n  function isModuleReferenceType(type) {\n    return type.symbol && type.symbol.flags & 1536 /* Module */;\n  }\n  function visitVariableLikeDeclaration(decl) {\n    if (decl.initializer === void 0 && !(isPropertyDeclaration(decl) && !(checker.getTypeAtLocation(decl).flags & 1 /* Any */)) || isBindingPattern(decl.name) || isVariableDeclaration(decl) && !isHintableDeclaration(decl)) {\n      return;\n    }\n    const effectiveTypeAnnotation = getEffectiveTypeAnnotationNode(decl);\n    if (effectiveTypeAnnotation) {\n      return;\n    }\n    const declarationType = checker.getTypeAtLocation(decl);\n    if (isModuleReferenceType(declarationType)) {\n      return;\n    }\n    const hintParts = typeToInlayHintParts(declarationType);\n    if (hintParts) {\n      const hintText = typeof hintParts === \"string\" ? hintParts : hintParts.map((part) => part.text).join(\"\");\n      const isVariableNameMatchesType = preferences.includeInlayVariableTypeHintsWhenTypeMatchesName === false && equateStringsCaseInsensitive(decl.name.getText(), hintText);\n      if (isVariableNameMatchesType) {\n        return;\n      }\n      addTypeHints(hintParts, decl.name.end);\n    }\n  }\n  function visitCallOrNewExpression(expr) {\n    const args = expr.arguments;\n    if (!args || !args.length) {\n      return;\n    }\n    const signature = checker.getResolvedSignature(expr);\n    if (signature === void 0) return;\n    let signatureParamPos = 0;\n    for (const originalArg of args) {\n      const arg = skipParentheses(originalArg);\n      if (shouldShowLiteralParameterNameHintsOnly(preferences) && !isHintableLiteral(arg)) {\n        signatureParamPos++;\n        continue;\n      }\n      let spreadArgs = 0;\n      if (isSpreadElement(arg)) {\n        const spreadType = checker.getTypeAtLocation(arg.expression);\n        if (checker.isTupleType(spreadType)) {\n          const { elementFlags, fixedLength } = spreadType.target;\n          if (fixedLength === 0) {\n            continue;\n          }\n          const firstOptionalIndex = findIndex(elementFlags, (f) => !(f & 1 /* Required */));\n          const requiredArgs = firstOptionalIndex < 0 ? fixedLength : firstOptionalIndex;\n          if (requiredArgs > 0) {\n            spreadArgs = firstOptionalIndex < 0 ? fixedLength : firstOptionalIndex;\n          }\n        }\n      }\n      const identifierInfo = checker.getParameterIdentifierInfoAtPosition(signature, signatureParamPos);\n      signatureParamPos = signatureParamPos + (spreadArgs || 1);\n      if (identifierInfo) {\n        const { parameter, parameterName, isRestParameter: isFirstVariadicArgument } = identifierInfo;\n        const isParameterNameNotSameAsArgument = preferences.includeInlayParameterNameHintsWhenArgumentMatchesName || !identifierOrAccessExpressionPostfixMatchesParameterName(arg, parameterName);\n        if (!isParameterNameNotSameAsArgument && !isFirstVariadicArgument) {\n          continue;\n        }\n        const name = unescapeLeadingUnderscores(parameterName);\n        if (leadingCommentsContainsParameterName(arg, name)) {\n          continue;\n        }\n        addParameterHints(name, parameter, originalArg.getStart(), isFirstVariadicArgument);\n      }\n    }\n  }\n  function identifierOrAccessExpressionPostfixMatchesParameterName(expr, parameterName) {\n    if (isIdentifier(expr)) {\n      return expr.text === parameterName;\n    }\n    if (isPropertyAccessExpression(expr)) {\n      return expr.name.text === parameterName;\n    }\n    return false;\n  }\n  function leadingCommentsContainsParameterName(node, name) {\n    if (!isIdentifierText(name, getEmitScriptTarget(compilerOptions), getLanguageVariant(file.scriptKind))) {\n      return false;\n    }\n    const ranges = getLeadingCommentRanges(sourceFileText, node.pos);\n    if (!(ranges == null ? void 0 : ranges.length)) {\n      return false;\n    }\n    const regex = leadingParameterNameCommentRegexFactory(name);\n    return some(ranges, (range) => regex.test(sourceFileText.substring(range.pos, range.end)));\n  }\n  function isHintableLiteral(node) {\n    switch (node.kind) {\n      case 225 /* PrefixUnaryExpression */: {\n        const operand = node.operand;\n        return isLiteralExpression(operand) || isIdentifier(operand) && isInfinityOrNaNString(operand.escapedText);\n      }\n      case 112 /* TrueKeyword */:\n      case 97 /* FalseKeyword */:\n      case 106 /* NullKeyword */:\n      case 15 /* NoSubstitutionTemplateLiteral */:\n      case 229 /* TemplateExpression */:\n        return true;\n      case 80 /* Identifier */: {\n        const name = node.escapedText;\n        return isUndefined(name) || isInfinityOrNaNString(name);\n      }\n    }\n    return isLiteralExpression(node);\n  }\n  function visitFunctionDeclarationLikeForReturnType(decl) {\n    if (isArrowFunction(decl)) {\n      if (!findChildOfKind(decl, 21 /* OpenParenToken */, file)) {\n        return;\n      }\n    }\n    const effectiveTypeAnnotation = getEffectiveReturnTypeNode(decl);\n    if (effectiveTypeAnnotation || !decl.body) {\n      return;\n    }\n    const signature = checker.getSignatureFromDeclaration(decl);\n    if (!signature) {\n      return;\n    }\n    const typePredicate = checker.getTypePredicateOfSignature(signature);\n    if (typePredicate == null ? void 0 : typePredicate.type) {\n      const hintParts2 = typePredicateToInlayHintParts(typePredicate);\n      if (hintParts2) {\n        addTypeHints(hintParts2, getTypeAnnotationPosition(decl));\n        return;\n      }\n    }\n    const returnType = checker.getReturnTypeOfSignature(signature);\n    if (isModuleReferenceType(returnType)) {\n      return;\n    }\n    const hintParts = typeToInlayHintParts(returnType);\n    if (hintParts) {\n      addTypeHints(hintParts, getTypeAnnotationPosition(decl));\n    }\n  }\n  function getTypeAnnotationPosition(decl) {\n    const closeParenToken = findChildOfKind(decl, 22 /* CloseParenToken */, file);\n    if (closeParenToken) {\n      return closeParenToken.end;\n    }\n    return decl.parameters.end;\n  }\n  function visitFunctionLikeForParameterType(node) {\n    const signature = checker.getSignatureFromDeclaration(node);\n    if (!signature) {\n      return;\n    }\n    let pos = 0;\n    for (const param of node.parameters) {\n      if (isHintableDeclaration(param)) {\n        addParameterTypeHint(param, parameterIsThisKeyword(param) ? signature.thisParameter : signature.parameters[pos]);\n      }\n      if (parameterIsThisKeyword(param)) {\n        continue;\n      }\n      pos++;\n    }\n  }\n  function addParameterTypeHint(node, symbol) {\n    const effectiveTypeAnnotation = getEffectiveTypeAnnotationNode(node);\n    if (effectiveTypeAnnotation || symbol === void 0) return;\n    const typeHints = getParameterDeclarationTypeHints(symbol);\n    if (typeHints === void 0) return;\n    addTypeHints(typeHints, node.questionToken ? node.questionToken.end : node.name.end);\n  }\n  function getParameterDeclarationTypeHints(symbol) {\n    const valueDeclaration = symbol.valueDeclaration;\n    if (!valueDeclaration || !isParameter(valueDeclaration)) {\n      return void 0;\n    }\n    const signatureParamType = checker.getTypeOfSymbolAtLocation(symbol, valueDeclaration);\n    if (isModuleReferenceType(signatureParamType)) {\n      return void 0;\n    }\n    return typeToInlayHintParts(signatureParamType);\n  }\n  function printTypeInSingleLine(type) {\n    const flags = 70221824 /* IgnoreErrors */ | 1048576 /* AllowUniqueESSymbolType */ | 16384 /* UseAliasDefinedOutsideCurrentScope */;\n    const printer = createPrinterWithRemoveComments();\n    return usingSingleLineStringWriter((writer) => {\n      const typeNode = checker.typeToTypeNode(\n        type,\n        /*enclosingDeclaration*/\n        void 0,\n        flags\n      );\n      Debug.assertIsDefined(typeNode, \"should always get typenode\");\n      printer.writeNode(\n        4 /* Unspecified */,\n        typeNode,\n        /*sourceFile*/\n        file,\n        writer\n      );\n    });\n  }\n  function printTypePredicateInSingleLine(typePredicate) {\n    const flags = 70221824 /* IgnoreErrors */ | 1048576 /* AllowUniqueESSymbolType */ | 16384 /* UseAliasDefinedOutsideCurrentScope */;\n    const printer = createPrinterWithRemoveComments();\n    return usingSingleLineStringWriter((writer) => {\n      const typePredicateNode = checker.typePredicateToTypePredicateNode(\n        typePredicate,\n        /*enclosingDeclaration*/\n        void 0,\n        flags\n      );\n      Debug.assertIsDefined(typePredicateNode, \"should always get typePredicateNode\");\n      printer.writeNode(\n        4 /* Unspecified */,\n        typePredicateNode,\n        /*sourceFile*/\n        file,\n        writer\n      );\n    });\n  }\n  function typeToInlayHintParts(type) {\n    if (!shouldUseInteractiveInlayHints(preferences)) {\n      return printTypeInSingleLine(type);\n    }\n    const flags = 70221824 /* IgnoreErrors */ | 1048576 /* AllowUniqueESSymbolType */ | 16384 /* UseAliasDefinedOutsideCurrentScope */;\n    const typeNode = checker.typeToTypeNode(\n      type,\n      /*enclosingDeclaration*/\n      void 0,\n      flags\n    );\n    Debug.assertIsDefined(typeNode, \"should always get typeNode\");\n    return getInlayHintDisplayParts(typeNode);\n  }\n  function typePredicateToInlayHintParts(typePredicate) {\n    if (!shouldUseInteractiveInlayHints(preferences)) {\n      return printTypePredicateInSingleLine(typePredicate);\n    }\n    const flags = 70221824 /* IgnoreErrors */ | 1048576 /* AllowUniqueESSymbolType */ | 16384 /* UseAliasDefinedOutsideCurrentScope */;\n    const typeNode = checker.typePredicateToTypePredicateNode(\n      typePredicate,\n      /*enclosingDeclaration*/\n      void 0,\n      flags\n    );\n    Debug.assertIsDefined(typeNode, \"should always get typenode\");\n    return getInlayHintDisplayParts(typeNode);\n  }\n  function getInlayHintDisplayParts(node) {\n    const parts = [];\n    visitForDisplayParts(node);\n    return parts;\n    function visitForDisplayParts(node2) {\n      var _a, _b;\n      if (!node2) {\n        return;\n      }\n      const tokenString = tokenToString(node2.kind);\n      if (tokenString) {\n        parts.push({ text: tokenString });\n        return;\n      }\n      if (isLiteralExpression(node2)) {\n        parts.push({ text: getLiteralText2(node2) });\n        return;\n      }\n      switch (node2.kind) {\n        case 80 /* Identifier */:\n          Debug.assertNode(node2, isIdentifier);\n          const identifierText = idText(node2);\n          const name = node2.symbol && node2.symbol.declarations && node2.symbol.declarations.length && getNameOfDeclaration(node2.symbol.declarations[0]);\n          if (name) {\n            parts.push(getNodeDisplayPart(identifierText, name));\n          } else {\n            parts.push({ text: identifierText });\n          }\n          break;\n        case 167 /* QualifiedName */:\n          Debug.assertNode(node2, isQualifiedName);\n          visitForDisplayParts(node2.left);\n          parts.push({ text: \".\" });\n          visitForDisplayParts(node2.right);\n          break;\n        case 183 /* TypePredicate */:\n          Debug.assertNode(node2, isTypePredicateNode);\n          if (node2.assertsModifier) {\n            parts.push({ text: \"asserts \" });\n          }\n          visitForDisplayParts(node2.parameterName);\n          if (node2.type) {\n            parts.push({ text: \" is \" });\n            visitForDisplayParts(node2.type);\n          }\n          break;\n        case 184 /* TypeReference */:\n          Debug.assertNode(node2, isTypeReferenceNode);\n          visitForDisplayParts(node2.typeName);\n          if (node2.typeArguments) {\n            parts.push({ text: \"<\" });\n            visitDisplayPartList(node2.typeArguments, \", \");\n            parts.push({ text: \">\" });\n          }\n          break;\n        case 169 /* TypeParameter */:\n          Debug.assertNode(node2, isTypeParameterDeclaration);\n          if (node2.modifiers) {\n            visitDisplayPartList(node2.modifiers, \" \");\n          }\n          visitForDisplayParts(node2.name);\n          if (node2.constraint) {\n            parts.push({ text: \" extends \" });\n            visitForDisplayParts(node2.constraint);\n          }\n          if (node2.default) {\n            parts.push({ text: \" = \" });\n            visitForDisplayParts(node2.default);\n          }\n          break;\n        case 170 /* Parameter */:\n          Debug.assertNode(node2, isParameter);\n          if (node2.modifiers) {\n            visitDisplayPartList(node2.modifiers, \" \");\n          }\n          if (node2.dotDotDotToken) {\n            parts.push({ text: \"...\" });\n          }\n          visitForDisplayParts(node2.name);\n          if (node2.questionToken) {\n            parts.push({ text: \"?\" });\n          }\n          if (node2.type) {\n            parts.push({ text: \": \" });\n            visitForDisplayParts(node2.type);\n          }\n          break;\n        case 186 /* ConstructorType */:\n          Debug.assertNode(node2, isConstructorTypeNode);\n          parts.push({ text: \"new \" });\n          visitParametersAndTypeParameters(node2);\n          parts.push({ text: \" => \" });\n          visitForDisplayParts(node2.type);\n          break;\n        case 187 /* TypeQuery */:\n          Debug.assertNode(node2, isTypeQueryNode);\n          parts.push({ text: \"typeof \" });\n          visitForDisplayParts(node2.exprName);\n          if (node2.typeArguments) {\n            parts.push({ text: \"<\" });\n            visitDisplayPartList(node2.typeArguments, \", \");\n            parts.push({ text: \">\" });\n          }\n          break;\n        case 188 /* TypeLiteral */:\n          Debug.assertNode(node2, isTypeLiteralNode);\n          parts.push({ text: \"{\" });\n          if (node2.members.length) {\n            parts.push({ text: \" \" });\n            visitDisplayPartList(node2.members, \"; \");\n            parts.push({ text: \" \" });\n          }\n          parts.push({ text: \"}\" });\n          break;\n        case 189 /* ArrayType */:\n          Debug.assertNode(node2, isArrayTypeNode);\n          visitForDisplayParts(node2.elementType);\n          parts.push({ text: \"[]\" });\n          break;\n        case 190 /* TupleType */:\n          Debug.assertNode(node2, isTupleTypeNode);\n          parts.push({ text: \"[\" });\n          visitDisplayPartList(node2.elements, \", \");\n          parts.push({ text: \"]\" });\n          break;\n        case 203 /* NamedTupleMember */:\n          Debug.assertNode(node2, isNamedTupleMember);\n          if (node2.dotDotDotToken) {\n            parts.push({ text: \"...\" });\n          }\n          visitForDisplayParts(node2.name);\n          if (node2.questionToken) {\n            parts.push({ text: \"?\" });\n          }\n          parts.push({ text: \": \" });\n          visitForDisplayParts(node2.type);\n          break;\n        case 191 /* OptionalType */:\n          Debug.assertNode(node2, isOptionalTypeNode);\n          visitForDisplayParts(node2.type);\n          parts.push({ text: \"?\" });\n          break;\n        case 192 /* RestType */:\n          Debug.assertNode(node2, isRestTypeNode);\n          parts.push({ text: \"...\" });\n          visitForDisplayParts(node2.type);\n          break;\n        case 193 /* UnionType */:\n          Debug.assertNode(node2, isUnionTypeNode);\n          visitDisplayPartList(node2.types, \" | \");\n          break;\n        case 194 /* IntersectionType */:\n          Debug.assertNode(node2, isIntersectionTypeNode);\n          visitDisplayPartList(node2.types, \" & \");\n          break;\n        case 195 /* ConditionalType */:\n          Debug.assertNode(node2, isConditionalTypeNode);\n          visitForDisplayParts(node2.checkType);\n          parts.push({ text: \" extends \" });\n          visitForDisplayParts(node2.extendsType);\n          parts.push({ text: \" ? \" });\n          visitForDisplayParts(node2.trueType);\n          parts.push({ text: \" : \" });\n          visitForDisplayParts(node2.falseType);\n          break;\n        case 196 /* InferType */:\n          Debug.assertNode(node2, isInferTypeNode);\n          parts.push({ text: \"infer \" });\n          visitForDisplayParts(node2.typeParameter);\n          break;\n        case 197 /* ParenthesizedType */:\n          Debug.assertNode(node2, isParenthesizedTypeNode);\n          parts.push({ text: \"(\" });\n          visitForDisplayParts(node2.type);\n          parts.push({ text: \")\" });\n          break;\n        case 199 /* TypeOperator */:\n          Debug.assertNode(node2, isTypeOperatorNode);\n          parts.push({ text: `${tokenToString(node2.operator)} ` });\n          visitForDisplayParts(node2.type);\n          break;\n        case 200 /* IndexedAccessType */:\n          Debug.assertNode(node2, isIndexedAccessTypeNode);\n          visitForDisplayParts(node2.objectType);\n          parts.push({ text: \"[\" });\n          visitForDisplayParts(node2.indexType);\n          parts.push({ text: \"]\" });\n          break;\n        case 201 /* MappedType */:\n          Debug.assertNode(node2, isMappedTypeNode);\n          parts.push({ text: \"{ \" });\n          if (node2.readonlyToken) {\n            if (node2.readonlyToken.kind === 40 /* PlusToken */) {\n              parts.push({ text: \"+\" });\n            } else if (node2.readonlyToken.kind === 41 /* MinusToken */) {\n              parts.push({ text: \"-\" });\n            }\n            parts.push({ text: \"readonly \" });\n          }\n          parts.push({ text: \"[\" });\n          visitForDisplayParts(node2.typeParameter);\n          if (node2.nameType) {\n            parts.push({ text: \" as \" });\n            visitForDisplayParts(node2.nameType);\n          }\n          parts.push({ text: \"]\" });\n          if (node2.questionToken) {\n            if (node2.questionToken.kind === 40 /* PlusToken */) {\n              parts.push({ text: \"+\" });\n            } else if (node2.questionToken.kind === 41 /* MinusToken */) {\n              parts.push({ text: \"-\" });\n            }\n            parts.push({ text: \"?\" });\n          }\n          parts.push({ text: \": \" });\n          if (node2.type) {\n            visitForDisplayParts(node2.type);\n          }\n          parts.push({ text: \"; }\" });\n          break;\n        case 202 /* LiteralType */:\n          Debug.assertNode(node2, isLiteralTypeNode);\n          visitForDisplayParts(node2.literal);\n          break;\n        case 185 /* FunctionType */:\n          Debug.assertNode(node2, isFunctionTypeNode);\n          visitParametersAndTypeParameters(node2);\n          parts.push({ text: \" => \" });\n          visitForDisplayParts(node2.type);\n          break;\n        case 206 /* ImportType */:\n          Debug.assertNode(node2, isImportTypeNode);\n          if (node2.isTypeOf) {\n            parts.push({ text: \"typeof \" });\n          }\n          parts.push({ text: \"import(\" });\n          visitForDisplayParts(node2.argument);\n          if (node2.assertions) {\n            parts.push({ text: \", { assert: \" });\n            visitDisplayPartList(node2.assertions.assertClause.elements, \", \");\n            parts.push({ text: \" }\" });\n          }\n          parts.push({ text: \")\" });\n          if (node2.qualifier) {\n            parts.push({ text: \".\" });\n            visitForDisplayParts(node2.qualifier);\n          }\n          if (node2.typeArguments) {\n            parts.push({ text: \"<\" });\n            visitDisplayPartList(node2.typeArguments, \", \");\n            parts.push({ text: \">\" });\n          }\n          break;\n        case 172 /* PropertySignature */:\n          Debug.assertNode(node2, isPropertySignature);\n          if ((_a = node2.modifiers) == null ? void 0 : _a.length) {\n            visitDisplayPartList(node2.modifiers, \" \");\n            parts.push({ text: \" \" });\n          }\n          visitForDisplayParts(node2.name);\n          if (node2.questionToken) {\n            parts.push({ text: \"?\" });\n          }\n          if (node2.type) {\n            parts.push({ text: \": \" });\n            visitForDisplayParts(node2.type);\n          }\n          break;\n        case 182 /* IndexSignature */:\n          Debug.assertNode(node2, isIndexSignatureDeclaration);\n          parts.push({ text: \"[\" });\n          visitDisplayPartList(node2.parameters, \", \");\n          parts.push({ text: \"]\" });\n          if (node2.type) {\n            parts.push({ text: \": \" });\n            visitForDisplayParts(node2.type);\n          }\n          break;\n        case 174 /* MethodSignature */:\n          Debug.assertNode(node2, isMethodSignature);\n          if ((_b = node2.modifiers) == null ? void 0 : _b.length) {\n            visitDisplayPartList(node2.modifiers, \" \");\n            parts.push({ text: \" \" });\n          }\n          visitForDisplayParts(node2.name);\n          if (node2.questionToken) {\n            parts.push({ text: \"?\" });\n          }\n          visitParametersAndTypeParameters(node2);\n          if (node2.type) {\n            parts.push({ text: \": \" });\n            visitForDisplayParts(node2.type);\n          }\n          break;\n        case 180 /* CallSignature */:\n          Debug.assertNode(node2, isCallSignatureDeclaration);\n          visitParametersAndTypeParameters(node2);\n          if (node2.type) {\n            parts.push({ text: \": \" });\n            visitForDisplayParts(node2.type);\n          }\n          break;\n        case 181 /* ConstructSignature */:\n          Debug.assertNode(node2, isConstructSignatureDeclaration);\n          parts.push({ text: \"new \" });\n          visitParametersAndTypeParameters(node2);\n          if (node2.type) {\n            parts.push({ text: \": \" });\n            visitForDisplayParts(node2.type);\n          }\n          break;\n        case 208 /* ArrayBindingPattern */:\n          Debug.assertNode(node2, isArrayBindingPattern);\n          parts.push({ text: \"[\" });\n          visitDisplayPartList(node2.elements, \", \");\n          parts.push({ text: \"]\" });\n          break;\n        case 207 /* ObjectBindingPattern */:\n          Debug.assertNode(node2, isObjectBindingPattern);\n          parts.push({ text: \"{\" });\n          if (node2.elements.length) {\n            parts.push({ text: \" \" });\n            visitDisplayPartList(node2.elements, \", \");\n            parts.push({ text: \" \" });\n          }\n          parts.push({ text: \"}\" });\n          break;\n        case 209 /* BindingElement */:\n          Debug.assertNode(node2, isBindingElement);\n          visitForDisplayParts(node2.name);\n          break;\n        case 225 /* PrefixUnaryExpression */:\n          Debug.assertNode(node2, isPrefixUnaryExpression);\n          parts.push({ text: tokenToString(node2.operator) });\n          visitForDisplayParts(node2.operand);\n          break;\n        case 204 /* TemplateLiteralType */:\n          Debug.assertNode(node2, isTemplateLiteralTypeNode);\n          visitForDisplayParts(node2.head);\n          node2.templateSpans.forEach(visitForDisplayParts);\n          break;\n        case 16 /* TemplateHead */:\n          Debug.assertNode(node2, isTemplateHead);\n          parts.push({ text: getLiteralText2(node2) });\n          break;\n        case 205 /* TemplateLiteralTypeSpan */:\n          Debug.assertNode(node2, isTemplateLiteralTypeSpan);\n          visitForDisplayParts(node2.type);\n          visitForDisplayParts(node2.literal);\n          break;\n        case 17 /* TemplateMiddle */:\n          Debug.assertNode(node2, isTemplateMiddle);\n          parts.push({ text: getLiteralText2(node2) });\n          break;\n        case 18 /* TemplateTail */:\n          Debug.assertNode(node2, isTemplateTail);\n          parts.push({ text: getLiteralText2(node2) });\n          break;\n        case 198 /* ThisType */:\n          Debug.assertNode(node2, isThisTypeNode);\n          parts.push({ text: \"this\" });\n          break;\n        case 168 /* ComputedPropertyName */:\n          Debug.assertNode(node2, isComputedPropertyName);\n          parts.push({ text: \"[\" });\n          visitForDisplayParts(node2.expression);\n          parts.push({ text: \"]\" });\n          break;\n        default:\n          Debug.failBadSyntaxKind(node2);\n      }\n    }\n    function visitParametersAndTypeParameters(signatureDeclaration) {\n      if (signatureDeclaration.typeParameters) {\n        parts.push({ text: \"<\" });\n        visitDisplayPartList(signatureDeclaration.typeParameters, \", \");\n        parts.push({ text: \">\" });\n      }\n      parts.push({ text: \"(\" });\n      visitDisplayPartList(signatureDeclaration.parameters, \", \");\n      parts.push({ text: \")\" });\n    }\n    function visitDisplayPartList(nodes, separator) {\n      nodes.forEach((node2, index) => {\n        if (index > 0) {\n          parts.push({ text: separator });\n        }\n        visitForDisplayParts(node2);\n      });\n    }\n    function getLiteralText2(node2) {\n      switch (node2.kind) {\n        case 11 /* StringLiteral */:\n          return quotePreference === 0 /* Single */ ? `'${escapeString(node2.text, 39 /* singleQuote */)}'` : `\"${escapeString(node2.text, 34 /* doubleQuote */)}\"`;\n        case 16 /* TemplateHead */:\n        case 17 /* TemplateMiddle */:\n        case 18 /* TemplateTail */: {\n          const rawText = node2.rawText ?? escapeTemplateSubstitution(escapeString(node2.text, 96 /* backtick */));\n          switch (node2.kind) {\n            case 16 /* TemplateHead */:\n              return \"`\" + rawText + \"${\";\n            case 17 /* TemplateMiddle */:\n              return \"}\" + rawText + \"${\";\n            case 18 /* TemplateTail */:\n              return \"}\" + rawText + \"`\";\n          }\n        }\n      }\n      return node2.text;\n    }\n  }\n  function isUndefined(name) {\n    return name === \"undefined\";\n  }\n  function isHintableDeclaration(node) {\n    if ((isPartOfParameterDeclaration(node) || isVariableDeclaration(node) && isVarConst(node)) && node.initializer) {\n      const initializer = skipParentheses(node.initializer);\n      return !(isHintableLiteral(initializer) || isNewExpression(initializer) || isObjectLiteralExpression(initializer) || isAssertionExpression(initializer));\n    }\n    return true;\n  }\n  function getNodeDisplayPart(text, node) {\n    const sourceFile = node.getSourceFile();\n    return {\n      text,\n      span: createTextSpanFromNode(node, sourceFile),\n      file: sourceFile.fileName\n    };\n  }\n}\n\n// src/services/_namespaces/ts.JsDoc.ts\nvar ts_JsDoc_exports = {};\n__export(ts_JsDoc_exports, {\n  getDocCommentTemplateAtPosition: () => getDocCommentTemplateAtPosition,\n  getJSDocParameterNameCompletionDetails: () => getJSDocParameterNameCompletionDetails,\n  getJSDocParameterNameCompletions: () => getJSDocParameterNameCompletions,\n  getJSDocTagCompletionDetails: () => getJSDocTagCompletionDetails,\n  getJSDocTagCompletions: () => getJSDocTagCompletions,\n  getJSDocTagNameCompletionDetails: () => getJSDocTagNameCompletionDetails,\n  getJSDocTagNameCompletions: () => getJSDocTagNameCompletions,\n  getJsDocCommentsFromDeclarations: () => getJsDocCommentsFromDeclarations,\n  getJsDocTagsFromDeclarations: () => getJsDocTagsFromDeclarations\n});\n\n// src/services/jsDoc.ts\nvar jsDocTagNames = [\n  \"abstract\",\n  \"access\",\n  \"alias\",\n  \"argument\",\n  \"async\",\n  \"augments\",\n  \"author\",\n  \"borrows\",\n  \"callback\",\n  \"class\",\n  \"classdesc\",\n  \"constant\",\n  \"constructor\",\n  \"constructs\",\n  \"copyright\",\n  \"default\",\n  \"deprecated\",\n  \"description\",\n  \"emits\",\n  \"enum\",\n  \"event\",\n  \"example\",\n  \"exports\",\n  \"extends\",\n  \"external\",\n  \"field\",\n  \"file\",\n  \"fileoverview\",\n  \"fires\",\n  \"function\",\n  \"generator\",\n  \"global\",\n  \"hideconstructor\",\n  \"host\",\n  \"ignore\",\n  \"implements\",\n  \"import\",\n  \"inheritdoc\",\n  \"inner\",\n  \"instance\",\n  \"interface\",\n  \"kind\",\n  \"lends\",\n  \"license\",\n  \"link\",\n  \"linkcode\",\n  \"linkplain\",\n  \"listens\",\n  \"member\",\n  \"memberof\",\n  \"method\",\n  \"mixes\",\n  \"module\",\n  \"name\",\n  \"namespace\",\n  \"overload\",\n  \"override\",\n  \"package\",\n  \"param\",\n  \"private\",\n  \"prop\",\n  \"property\",\n  \"protected\",\n  \"public\",\n  \"readonly\",\n  \"requires\",\n  \"returns\",\n  \"satisfies\",\n  \"see\",\n  \"since\",\n  \"static\",\n  \"summary\",\n  \"template\",\n  \"this\",\n  \"throws\",\n  \"todo\",\n  \"tutorial\",\n  \"type\",\n  \"typedef\",\n  \"var\",\n  \"variation\",\n  \"version\",\n  \"virtual\",\n  \"yields\"\n];\nvar jsDocTagNameCompletionEntries;\nvar jsDocTagCompletionEntries;\nfunction getJsDocCommentsFromDeclarations(declarations, checker) {\n  const parts = [];\n  forEachUnique(declarations, (declaration) => {\n    for (const jsdoc of getCommentHavingNodes(declaration)) {\n      const inheritDoc = isJSDoc(jsdoc) && jsdoc.tags && find(jsdoc.tags, (t) => t.kind === 328 /* JSDocTag */ && (t.tagName.escapedText === \"inheritDoc\" || t.tagName.escapedText === \"inheritdoc\"));\n      if (jsdoc.comment === void 0 && !inheritDoc || isJSDoc(jsdoc) && declaration.kind !== 347 /* JSDocTypedefTag */ && declaration.kind !== 339 /* JSDocCallbackTag */ && jsdoc.tags && jsdoc.tags.some((t) => t.kind === 347 /* JSDocTypedefTag */ || t.kind === 339 /* JSDocCallbackTag */) && !jsdoc.tags.some((t) => t.kind === 342 /* JSDocParameterTag */ || t.kind === 343 /* JSDocReturnTag */)) {\n        continue;\n      }\n      let newparts = jsdoc.comment ? getDisplayPartsFromComment(jsdoc.comment, checker) : [];\n      if (inheritDoc && inheritDoc.comment) {\n        newparts = newparts.concat(getDisplayPartsFromComment(inheritDoc.comment, checker));\n      }\n      if (!contains(parts, newparts, isIdenticalListOfDisplayParts)) {\n        parts.push(newparts);\n      }\n    }\n  });\n  return flatten(intersperse(parts, [lineBreakPart()]));\n}\nfunction isIdenticalListOfDisplayParts(parts1, parts2) {\n  return arrayIsEqualTo(parts1, parts2, (p1, p2) => p1.kind === p2.kind && p1.text === p2.text);\n}\nfunction getCommentHavingNodes(declaration) {\n  switch (declaration.kind) {\n    case 342 /* JSDocParameterTag */:\n    case 349 /* JSDocPropertyTag */:\n      return [declaration];\n    case 339 /* JSDocCallbackTag */:\n    case 347 /* JSDocTypedefTag */:\n      return [declaration, declaration.parent];\n    case 324 /* JSDocSignature */:\n      if (isJSDocOverloadTag(declaration.parent)) {\n        return [declaration.parent.parent];\n      }\n    // falls through\n    default:\n      return getJSDocCommentsAndTags(declaration);\n  }\n}\nfunction getJsDocTagsFromDeclarations(declarations, checker) {\n  const infos = [];\n  forEachUnique(declarations, (declaration) => {\n    const tags = getJSDocTags(declaration);\n    if (tags.some((t) => t.kind === 347 /* JSDocTypedefTag */ || t.kind === 339 /* JSDocCallbackTag */) && !tags.some((t) => t.kind === 342 /* JSDocParameterTag */ || t.kind === 343 /* JSDocReturnTag */)) {\n      return;\n    }\n    for (const tag of tags) {\n      infos.push({ name: tag.tagName.text, text: getCommentDisplayParts(tag, checker) });\n      infos.push(...getJSDocPropertyTagsInfo(tryGetJSDocPropertyTags(tag), checker));\n    }\n  });\n  return infos;\n}\nfunction getJSDocPropertyTagsInfo(nodes, checker) {\n  return flatMap(nodes, (propTag) => concatenate([{ name: propTag.tagName.text, text: getCommentDisplayParts(propTag, checker) }], getJSDocPropertyTagsInfo(tryGetJSDocPropertyTags(propTag), checker)));\n}\nfunction tryGetJSDocPropertyTags(node) {\n  return isJSDocPropertyLikeTag(node) && node.isNameFirst && node.typeExpression && isJSDocTypeLiteral(node.typeExpression.type) ? node.typeExpression.type.jsDocPropertyTags : void 0;\n}\nfunction getDisplayPartsFromComment(comment, checker) {\n  if (typeof comment === \"string\") {\n    return [textPart(comment)];\n  }\n  return flatMap(\n    comment,\n    (node) => node.kind === 322 /* JSDocText */ ? [textPart(node.text)] : buildLinkParts(node, checker)\n  );\n}\nfunction getCommentDisplayParts(tag, checker) {\n  const { comment, kind } = tag;\n  const namePart = getTagNameDisplayPart(kind);\n  switch (kind) {\n    case 350 /* JSDocThrowsTag */:\n      const typeExpression = tag.typeExpression;\n      return typeExpression ? withNode(typeExpression) : comment === void 0 ? void 0 : getDisplayPartsFromComment(comment, checker);\n    case 330 /* JSDocImplementsTag */:\n      return withNode(tag.class);\n    case 329 /* JSDocAugmentsTag */:\n      return withNode(tag.class);\n    case 346 /* JSDocTemplateTag */:\n      const templateTag = tag;\n      const displayParts = [];\n      if (templateTag.constraint) {\n        displayParts.push(textPart(templateTag.constraint.getText()));\n      }\n      if (length(templateTag.typeParameters)) {\n        if (length(displayParts)) {\n          displayParts.push(spacePart());\n        }\n        const lastTypeParameter = templateTag.typeParameters[templateTag.typeParameters.length - 1];\n        forEach(templateTag.typeParameters, (tp) => {\n          displayParts.push(namePart(tp.getText()));\n          if (lastTypeParameter !== tp) {\n            displayParts.push(...[punctuationPart(28 /* CommaToken */), spacePart()]);\n          }\n        });\n      }\n      if (comment) {\n        displayParts.push(...[spacePart(), ...getDisplayPartsFromComment(comment, checker)]);\n      }\n      return displayParts;\n    case 345 /* JSDocTypeTag */:\n    case 351 /* JSDocSatisfiesTag */:\n      return withNode(tag.typeExpression);\n    case 347 /* JSDocTypedefTag */:\n    case 339 /* JSDocCallbackTag */:\n    case 349 /* JSDocPropertyTag */:\n    case 342 /* JSDocParameterTag */:\n    case 348 /* JSDocSeeTag */:\n      const { name } = tag;\n      return name ? withNode(name) : comment === void 0 ? void 0 : getDisplayPartsFromComment(comment, checker);\n    default:\n      return comment === void 0 ? void 0 : getDisplayPartsFromComment(comment, checker);\n  }\n  function withNode(node) {\n    return addComment(node.getText());\n  }\n  function addComment(s) {\n    if (comment) {\n      if (s.match(/^https?$/)) {\n        return [textPart(s), ...getDisplayPartsFromComment(comment, checker)];\n      } else {\n        return [namePart(s), spacePart(), ...getDisplayPartsFromComment(comment, checker)];\n      }\n    } else {\n      return [textPart(s)];\n    }\n  }\n}\nfunction getTagNameDisplayPart(kind) {\n  switch (kind) {\n    case 342 /* JSDocParameterTag */:\n      return parameterNamePart;\n    case 349 /* JSDocPropertyTag */:\n      return propertyNamePart;\n    case 346 /* JSDocTemplateTag */:\n      return typeParameterNamePart;\n    case 347 /* JSDocTypedefTag */:\n    case 339 /* JSDocCallbackTag */:\n      return typeAliasNamePart;\n    default:\n      return textPart;\n  }\n}\nfunction getJSDocTagNameCompletions() {\n  return jsDocTagNameCompletionEntries || (jsDocTagNameCompletionEntries = map(jsDocTagNames, (tagName) => {\n    return {\n      name: tagName,\n      kind: \"keyword\" /* keyword */,\n      kindModifiers: \"\",\n      sortText: ts_Completions_exports.SortText.LocationPriority\n    };\n  }));\n}\nvar getJSDocTagNameCompletionDetails = getJSDocTagCompletionDetails;\nfunction getJSDocTagCompletions() {\n  return jsDocTagCompletionEntries || (jsDocTagCompletionEntries = map(jsDocTagNames, (tagName) => {\n    return {\n      name: `@${tagName}`,\n      kind: \"keyword\" /* keyword */,\n      kindModifiers: \"\",\n      sortText: ts_Completions_exports.SortText.LocationPriority\n    };\n  }));\n}\nfunction getJSDocTagCompletionDetails(name) {\n  return {\n    name,\n    kind: \"\" /* unknown */,\n    // TODO: should have its own kind?\n    kindModifiers: \"\",\n    displayParts: [textPart(name)],\n    documentation: emptyArray,\n    tags: void 0,\n    codeActions: void 0\n  };\n}\nfunction getJSDocParameterNameCompletions(tag) {\n  if (!isIdentifier(tag.name)) {\n    return emptyArray;\n  }\n  const nameThusFar = tag.name.text;\n  const jsdoc = tag.parent;\n  const fn = jsdoc.parent;\n  if (!isFunctionLike(fn)) return [];\n  return mapDefined(fn.parameters, (param) => {\n    if (!isIdentifier(param.name)) return void 0;\n    const name = param.name.text;\n    if (jsdoc.tags.some((t) => t !== tag && isJSDocParameterTag(t) && isIdentifier(t.name) && t.name.escapedText === name) || nameThusFar !== void 0 && !startsWith(name, nameThusFar)) {\n      return void 0;\n    }\n    return { name, kind: \"parameter\" /* parameterElement */, kindModifiers: \"\", sortText: ts_Completions_exports.SortText.LocationPriority };\n  });\n}\nfunction getJSDocParameterNameCompletionDetails(name) {\n  return {\n    name,\n    kind: \"parameter\" /* parameterElement */,\n    kindModifiers: \"\",\n    displayParts: [textPart(name)],\n    documentation: emptyArray,\n    tags: void 0,\n    codeActions: void 0\n  };\n}\nfunction getDocCommentTemplateAtPosition(newLine, sourceFile, position, options) {\n  const tokenAtPos = getTokenAtPosition(sourceFile, position);\n  const existingDocComment = findAncestor(tokenAtPos, isJSDoc);\n  if (existingDocComment && (existingDocComment.comment !== void 0 || length(existingDocComment.tags))) {\n    return void 0;\n  }\n  const tokenStart = tokenAtPos.getStart(sourceFile);\n  if (!existingDocComment && tokenStart < position) {\n    return void 0;\n  }\n  const commentOwnerInfo = getCommentOwnerInfo(tokenAtPos, options);\n  if (!commentOwnerInfo) {\n    return void 0;\n  }\n  const { commentOwner, parameters, hasReturn: hasReturn2 } = commentOwnerInfo;\n  const commentOwnerJsDoc = hasJSDocNodes(commentOwner) && commentOwner.jsDoc ? commentOwner.jsDoc : void 0;\n  const lastJsDoc = lastOrUndefined(commentOwnerJsDoc);\n  if (commentOwner.getStart(sourceFile) < position || lastJsDoc && existingDocComment && lastJsDoc !== existingDocComment) {\n    return void 0;\n  }\n  const indentationStr = getIndentationStringAtPosition(sourceFile, position);\n  const isJavaScriptFile = hasJSFileExtension(sourceFile.fileName);\n  const tags = (parameters ? parameterDocComments(parameters || [], isJavaScriptFile, indentationStr, newLine) : \"\") + (hasReturn2 ? returnsDocComment(indentationStr, newLine) : \"\");\n  const openComment = \"/**\";\n  const closeComment = \" */\";\n  const hasTag = length(getJSDocTags(commentOwner)) > 0;\n  if (tags && !hasTag) {\n    const preamble = openComment + newLine + indentationStr + \" * \";\n    const endLine = tokenStart === position ? newLine + indentationStr : \"\";\n    const result = preamble + newLine + tags + indentationStr + closeComment + endLine;\n    return { newText: result, caretOffset: preamble.length };\n  }\n  return { newText: openComment + closeComment, caretOffset: 3 };\n}\nfunction getIndentationStringAtPosition(sourceFile, position) {\n  const { text } = sourceFile;\n  const lineStart = getLineStartPositionForPosition(position, sourceFile);\n  let pos = lineStart;\n  for (; pos <= position && isWhiteSpaceSingleLine(text.charCodeAt(pos)); pos++) ;\n  return text.slice(lineStart, pos);\n}\nfunction parameterDocComments(parameters, isJavaScriptFile, indentationStr, newLine) {\n  return parameters.map(({ name, dotDotDotToken }, i) => {\n    const paramName = name.kind === 80 /* Identifier */ ? name.text : \"param\" + i;\n    const type = isJavaScriptFile ? dotDotDotToken ? \"{...any} \" : \"{any} \" : \"\";\n    return `${indentationStr} * @param ${type}${paramName}${newLine}`;\n  }).join(\"\");\n}\nfunction returnsDocComment(indentationStr, newLine) {\n  return `${indentationStr} * @returns${newLine}`;\n}\nfunction getCommentOwnerInfo(tokenAtPos, options) {\n  return forEachAncestor(tokenAtPos, (n) => getCommentOwnerInfoWorker(n, options));\n}\nfunction getCommentOwnerInfoWorker(commentOwner, options) {\n  switch (commentOwner.kind) {\n    case 263 /* FunctionDeclaration */:\n    case 219 /* FunctionExpression */:\n    case 175 /* MethodDeclaration */:\n    case 177 /* Constructor */:\n    case 174 /* MethodSignature */:\n    case 220 /* ArrowFunction */:\n      const host = commentOwner;\n      return { commentOwner, parameters: host.parameters, hasReturn: hasReturn(host, options) };\n    case 304 /* PropertyAssignment */:\n      return getCommentOwnerInfoWorker(commentOwner.initializer, options);\n    case 264 /* ClassDeclaration */:\n    case 265 /* InterfaceDeclaration */:\n    case 267 /* EnumDeclaration */:\n    case 307 /* EnumMember */:\n    case 266 /* TypeAliasDeclaration */:\n      return { commentOwner };\n    case 172 /* PropertySignature */: {\n      const host2 = commentOwner;\n      return host2.type && isFunctionTypeNode(host2.type) ? { commentOwner, parameters: host2.type.parameters, hasReturn: hasReturn(host2.type, options) } : { commentOwner };\n    }\n    case 244 /* VariableStatement */: {\n      const varStatement = commentOwner;\n      const varDeclarations = varStatement.declarationList.declarations;\n      const host2 = varDeclarations.length === 1 && varDeclarations[0].initializer ? getRightHandSideOfAssignment(varDeclarations[0].initializer) : void 0;\n      return host2 ? { commentOwner, parameters: host2.parameters, hasReturn: hasReturn(host2, options) } : { commentOwner };\n    }\n    case 308 /* SourceFile */:\n      return \"quit\";\n    case 268 /* ModuleDeclaration */:\n      return commentOwner.parent.kind === 268 /* ModuleDeclaration */ ? void 0 : { commentOwner };\n    case 245 /* ExpressionStatement */:\n      return getCommentOwnerInfoWorker(commentOwner.expression, options);\n    case 227 /* BinaryExpression */: {\n      const be = commentOwner;\n      if (getAssignmentDeclarationKind(be) === 0 /* None */) {\n        return \"quit\";\n      }\n      return isFunctionLike(be.right) ? { commentOwner, parameters: be.right.parameters, hasReturn: hasReturn(be.right, options) } : { commentOwner };\n    }\n    case 173 /* PropertyDeclaration */:\n      const init = commentOwner.initializer;\n      if (init && (isFunctionExpression(init) || isArrowFunction(init))) {\n        return { commentOwner, parameters: init.parameters, hasReturn: hasReturn(init, options) };\n      }\n  }\n}\nfunction hasReturn(node, options) {\n  return !!(options == null ? void 0 : options.generateReturnInDocTemplate) && (isFunctionTypeNode(node) || isArrowFunction(node) && isExpression(node.body) || isFunctionLikeDeclaration(node) && node.body && isBlock(node.body) && !!forEachReturnStatement(node.body, (n) => n));\n}\nfunction getRightHandSideOfAssignment(rightHandSide) {\n  while (rightHandSide.kind === 218 /* ParenthesizedExpression */) {\n    rightHandSide = rightHandSide.expression;\n  }\n  switch (rightHandSide.kind) {\n    case 219 /* FunctionExpression */:\n    case 220 /* ArrowFunction */:\n      return rightHandSide;\n    case 232 /* ClassExpression */:\n      return find(rightHandSide.members, isConstructorDeclaration);\n  }\n}\n\n// src/services/_namespaces/ts.MapCode.ts\nvar ts_MapCode_exports = {};\n__export(ts_MapCode_exports, {\n  mapCode: () => mapCode\n});\n\n// src/services/mapCode.ts\nfunction mapCode(sourceFile, contents, focusLocations, host, formatContext, preferences) {\n  return ts_textChanges_exports.ChangeTracker.with(\n    { host, formatContext, preferences },\n    (changeTracker) => {\n      const parsed = contents.map((c) => parse(sourceFile, c));\n      const flattenedLocations = focusLocations && flatten(focusLocations);\n      for (const nodes of parsed) {\n        placeNodeGroup(\n          sourceFile,\n          changeTracker,\n          nodes,\n          flattenedLocations\n        );\n      }\n    }\n  );\n}\nfunction parse(sourceFile, content) {\n  const nodeKinds = [\n    {\n      parse: () => createSourceFile(\n        \"__mapcode_content_nodes.ts\",\n        content,\n        sourceFile.languageVersion,\n        /*setParentNodes*/\n        true,\n        sourceFile.scriptKind\n      ),\n      body: (sf) => sf.statements\n    },\n    {\n      parse: () => createSourceFile(\n        \"__mapcode_class_content_nodes.ts\",\n        `class __class {\n${content}\n}`,\n        sourceFile.languageVersion,\n        /*setParentNodes*/\n        true,\n        sourceFile.scriptKind\n      ),\n      body: (cw) => cw.statements[0].members\n    }\n  ];\n  const parsedNodes = [];\n  for (const { parse: parse2, body: body2 } of nodeKinds) {\n    const sourceFile2 = parse2();\n    const bod = body2(sourceFile2);\n    if (bod.length && sourceFile2.parseDiagnostics.length === 0) {\n      return bod;\n    } else if (bod.length) {\n      parsedNodes.push({ sourceFile: sourceFile2, body: bod });\n    }\n  }\n  parsedNodes.sort(\n    (a, b) => a.sourceFile.parseDiagnostics.length - b.sourceFile.parseDiagnostics.length\n  );\n  const { body } = parsedNodes[0];\n  return body;\n}\nfunction placeNodeGroup(originalFile, changeTracker, changes, focusLocations) {\n  if (isClassElement(changes[0]) || isTypeElement(changes[0])) {\n    placeClassNodeGroup(\n      originalFile,\n      changeTracker,\n      changes,\n      focusLocations\n    );\n  } else {\n    placeStatements(\n      originalFile,\n      changeTracker,\n      changes,\n      focusLocations\n    );\n  }\n}\nfunction placeClassNodeGroup(originalFile, changeTracker, changes, focusLocations) {\n  let classOrInterface;\n  if (!focusLocations || !focusLocations.length) {\n    classOrInterface = find(originalFile.statements, or(isClassLike, isInterfaceDeclaration));\n  } else {\n    classOrInterface = forEach(focusLocations, (location) => findAncestor(\n      getTokenAtPosition(originalFile, location.start),\n      or(isClassLike, isInterfaceDeclaration)\n    ));\n  }\n  if (!classOrInterface) {\n    return;\n  }\n  const firstMatch = classOrInterface.members.find((member) => changes.some((change) => matchNode(change, member)));\n  if (firstMatch) {\n    const lastMatch = findLast(\n      classOrInterface.members,\n      (member) => changes.some((change) => matchNode(change, member))\n    );\n    forEach(changes, wipeNode);\n    changeTracker.replaceNodeRangeWithNodes(\n      originalFile,\n      firstMatch,\n      lastMatch,\n      changes\n    );\n    return;\n  }\n  forEach(changes, wipeNode);\n  changeTracker.insertNodesAfter(\n    originalFile,\n    classOrInterface.members[classOrInterface.members.length - 1],\n    changes\n  );\n}\nfunction placeStatements(originalFile, changeTracker, changes, focusLocations) {\n  if (!(focusLocations == null ? void 0 : focusLocations.length)) {\n    changeTracker.insertNodesAtEndOfFile(\n      originalFile,\n      changes,\n      /*blankLineBetween*/\n      false\n    );\n    return;\n  }\n  for (const location of focusLocations) {\n    const scope = findAncestor(\n      getTokenAtPosition(originalFile, location.start),\n      (block) => or(isBlock, isSourceFile)(block) && some(block.statements, (origStmt) => changes.some((newStmt) => matchNode(newStmt, origStmt)))\n    );\n    if (scope) {\n      const start = scope.statements.find((stmt) => changes.some((node) => matchNode(node, stmt)));\n      if (start) {\n        const end = findLast(scope.statements, (stmt) => changes.some((node) => matchNode(node, stmt)));\n        forEach(changes, wipeNode);\n        changeTracker.replaceNodeRangeWithNodes(\n          originalFile,\n          start,\n          end,\n          changes\n        );\n        return;\n      }\n    }\n  }\n  let scopeStatements = originalFile.statements;\n  for (const location of focusLocations) {\n    const block = findAncestor(\n      getTokenAtPosition(originalFile, location.start),\n      isBlock\n    );\n    if (block) {\n      scopeStatements = block.statements;\n      break;\n    }\n  }\n  forEach(changes, wipeNode);\n  changeTracker.insertNodesAfter(\n    originalFile,\n    scopeStatements[scopeStatements.length - 1],\n    changes\n  );\n}\nfunction matchNode(a, b) {\n  var _a, _b, _c, _d, _e, _f;\n  if (a.kind !== b.kind) {\n    return false;\n  }\n  if (a.kind === 177 /* Constructor */) {\n    return a.kind === b.kind;\n  }\n  if (isNamedDeclaration(a) && isNamedDeclaration(b)) {\n    return a.name.getText() === b.name.getText();\n  }\n  if (isIfStatement(a) && isIfStatement(b)) {\n    return a.expression.getText() === b.expression.getText();\n  }\n  if (isWhileStatement(a) && isWhileStatement(b)) {\n    return a.expression.getText() === b.expression.getText();\n  }\n  if (isForStatement(a) && isForStatement(b)) {\n    return ((_a = a.initializer) == null ? void 0 : _a.getText()) === ((_b = b.initializer) == null ? void 0 : _b.getText()) && ((_c = a.incrementor) == null ? void 0 : _c.getText()) === ((_d = b.incrementor) == null ? void 0 : _d.getText()) && ((_e = a.condition) == null ? void 0 : _e.getText()) === ((_f = b.condition) == null ? void 0 : _f.getText());\n  }\n  if (isForInOrOfStatement(a) && isForInOrOfStatement(b)) {\n    return a.expression.getText() === b.expression.getText() && a.initializer.getText() === b.initializer.getText();\n  }\n  if (isLabeledStatement(a) && isLabeledStatement(b)) {\n    return a.label.getText() === b.label.getText();\n  }\n  if (a.getText() === b.getText()) {\n    return true;\n  }\n  return false;\n}\nfunction wipeNode(node) {\n  resetNodePositions(node);\n  node.parent = void 0;\n}\nfunction resetNodePositions(node) {\n  node.pos = -1;\n  node.end = -1;\n  node.forEachChild(resetNodePositions);\n}\n\n// src/services/_namespaces/ts.OrganizeImports.ts\nvar ts_OrganizeImports_exports = {};\n__export(ts_OrganizeImports_exports, {\n  compareImportsOrRequireStatements: () => compareImportsOrRequireStatements,\n  compareModuleSpecifiers: () => compareModuleSpecifiers2,\n  getImportDeclarationInsertionIndex: () => getImportDeclarationInsertionIndex,\n  getImportSpecifierInsertionIndex: () => getImportSpecifierInsertionIndex,\n  getNamedImportSpecifierComparerWithDetection: () => getNamedImportSpecifierComparerWithDetection,\n  getOrganizeImportsStringComparerWithDetection: () => getOrganizeImportsStringComparerWithDetection,\n  organizeImports: () => organizeImports,\n  testCoalesceExports: () => testCoalesceExports,\n  testCoalesceImports: () => testCoalesceImports\n});\n\n// src/services/organizeImports.ts\nfunction organizeImports(sourceFile, formatContext, host, program, preferences, mode) {\n  const changeTracker = ts_textChanges_exports.ChangeTracker.fromContext({ host, formatContext, preferences });\n  const shouldSort = mode === \"SortAndCombine\" /* SortAndCombine */ || mode === \"All\" /* All */;\n  const shouldCombine = shouldSort;\n  const shouldRemove = mode === \"RemoveUnused\" /* RemoveUnused */ || mode === \"All\" /* All */;\n  const topLevelImportDecls = sourceFile.statements.filter(isImportDeclaration);\n  const topLevelImportGroupDecls = groupByNewlineContiguous(sourceFile, topLevelImportDecls);\n  const { comparersToTest, typeOrdersToTest } = getDetectionLists(preferences);\n  const defaultComparer = comparersToTest[0];\n  const comparer = {\n    moduleSpecifierComparer: typeof preferences.organizeImportsIgnoreCase === \"boolean\" ? defaultComparer : void 0,\n    namedImportComparer: typeof preferences.organizeImportsIgnoreCase === \"boolean\" ? defaultComparer : void 0,\n    typeOrder: preferences.organizeImportsTypeOrder\n  };\n  if (typeof preferences.organizeImportsIgnoreCase !== \"boolean\") {\n    ({ comparer: comparer.moduleSpecifierComparer } = detectModuleSpecifierCaseBySort(topLevelImportGroupDecls, comparersToTest));\n  }\n  if (!comparer.typeOrder || typeof preferences.organizeImportsIgnoreCase !== \"boolean\") {\n    const namedImportSort = detectNamedImportOrganizationBySort(topLevelImportDecls, comparersToTest, typeOrdersToTest);\n    if (namedImportSort) {\n      const { namedImportComparer, typeOrder } = namedImportSort;\n      comparer.namedImportComparer = comparer.namedImportComparer ?? namedImportComparer;\n      comparer.typeOrder = comparer.typeOrder ?? typeOrder;\n    }\n  }\n  topLevelImportGroupDecls.forEach((importGroupDecl) => organizeImportsWorker(importGroupDecl, comparer));\n  if (mode !== \"RemoveUnused\" /* RemoveUnused */) {\n    getTopLevelExportGroups(sourceFile).forEach((exportGroupDecl) => organizeExportsWorker(exportGroupDecl, comparer.namedImportComparer));\n  }\n  for (const ambientModule of sourceFile.statements.filter(isAmbientModule)) {\n    if (!ambientModule.body) continue;\n    const ambientModuleImportGroupDecls = groupByNewlineContiguous(sourceFile, ambientModule.body.statements.filter(isImportDeclaration));\n    ambientModuleImportGroupDecls.forEach((importGroupDecl) => organizeImportsWorker(importGroupDecl, comparer));\n    if (mode !== \"RemoveUnused\" /* RemoveUnused */) {\n      const ambientModuleExportDecls = ambientModule.body.statements.filter(isExportDeclaration);\n      organizeExportsWorker(ambientModuleExportDecls, comparer.namedImportComparer);\n    }\n  }\n  return changeTracker.getChanges();\n  function organizeDeclsWorker(oldImportDecls, coalesce) {\n    if (length(oldImportDecls) === 0) {\n      return;\n    }\n    setEmitFlags(oldImportDecls[0], 1024 /* NoLeadingComments */);\n    const oldImportGroups = shouldCombine ? group(oldImportDecls, (importDecl) => getExternalModuleName2(importDecl.moduleSpecifier)) : [oldImportDecls];\n    const sortedImportGroups = shouldSort ? toSorted(oldImportGroups, (group1, group2) => compareModuleSpecifiersWorker(group1[0].moduleSpecifier, group2[0].moduleSpecifier, comparer.moduleSpecifierComparer ?? defaultComparer)) : oldImportGroups;\n    const newImportDecls = flatMap(sortedImportGroups, (importGroup) => getExternalModuleName2(importGroup[0].moduleSpecifier) || importGroup[0].moduleSpecifier === void 0 ? coalesce(importGroup) : importGroup);\n    if (newImportDecls.length === 0) {\n      changeTracker.deleteNodes(\n        sourceFile,\n        oldImportDecls,\n        {\n          leadingTriviaOption: ts_textChanges_exports.LeadingTriviaOption.Exclude,\n          trailingTriviaOption: ts_textChanges_exports.TrailingTriviaOption.Include\n        },\n        /*hasTrailingComment*/\n        true\n      );\n    } else {\n      const replaceOptions = {\n        leadingTriviaOption: ts_textChanges_exports.LeadingTriviaOption.Exclude,\n        // Leave header comment in place\n        trailingTriviaOption: ts_textChanges_exports.TrailingTriviaOption.Include,\n        suffix: getNewLineOrDefaultFromHost(host, formatContext.options)\n      };\n      changeTracker.replaceNodeWithNodes(sourceFile, oldImportDecls[0], newImportDecls, replaceOptions);\n      const hasTrailingComment = changeTracker.nodeHasTrailingComment(sourceFile, oldImportDecls[0], replaceOptions);\n      changeTracker.deleteNodes(sourceFile, oldImportDecls.slice(1), {\n        trailingTriviaOption: ts_textChanges_exports.TrailingTriviaOption.Include\n      }, hasTrailingComment);\n    }\n  }\n  function organizeImportsWorker(oldImportDecls, comparer2) {\n    const detectedModuleCaseComparer = comparer2.moduleSpecifierComparer ?? defaultComparer;\n    const detectedNamedImportCaseComparer = comparer2.namedImportComparer ?? defaultComparer;\n    const detectedTypeOrder = comparer2.typeOrder ?? \"last\";\n    const specifierComparer = getNamedImportSpecifierComparer({ organizeImportsTypeOrder: detectedTypeOrder }, detectedNamedImportCaseComparer);\n    const processImportsOfSameModuleSpecifier = (importGroup) => {\n      if (shouldRemove) importGroup = removeUnusedImports(importGroup, sourceFile, program);\n      if (shouldCombine) importGroup = coalesceImportsWorker(importGroup, detectedModuleCaseComparer, specifierComparer, sourceFile);\n      if (shouldSort) importGroup = toSorted(importGroup, (s1, s2) => compareImportsOrRequireStatements(s1, s2, detectedModuleCaseComparer));\n      return importGroup;\n    };\n    organizeDeclsWorker(oldImportDecls, processImportsOfSameModuleSpecifier);\n  }\n  function organizeExportsWorker(oldExportDecls, specifierCaseComparer) {\n    const useComparer = getNamedImportSpecifierComparer(preferences, specifierCaseComparer);\n    organizeDeclsWorker(oldExportDecls, (group2) => coalesceExportsWorker(group2, useComparer));\n  }\n}\nfunction getDetectionLists(preferences) {\n  return {\n    comparersToTest: typeof preferences.organizeImportsIgnoreCase === \"boolean\" ? [getOrganizeImportsStringComparer(preferences, preferences.organizeImportsIgnoreCase)] : [getOrganizeImportsStringComparer(\n      preferences,\n      /*ignoreCase*/\n      true\n    ), getOrganizeImportsStringComparer(\n      preferences,\n      /*ignoreCase*/\n      false\n    )],\n    typeOrdersToTest: preferences.organizeImportsTypeOrder ? [preferences.organizeImportsTypeOrder] : [\"last\", \"inline\", \"first\"]\n  };\n}\nfunction groupByNewlineContiguous(sourceFile, decls) {\n  const scanner2 = createScanner(\n    sourceFile.languageVersion,\n    /*skipTrivia*/\n    false,\n    sourceFile.languageVariant\n  );\n  const group2 = [];\n  let groupIndex = 0;\n  for (const decl of decls) {\n    if (group2[groupIndex] && isNewGroup(sourceFile, decl, scanner2)) {\n      groupIndex++;\n    }\n    if (!group2[groupIndex]) {\n      group2[groupIndex] = [];\n    }\n    group2[groupIndex].push(decl);\n  }\n  return group2;\n}\nfunction isNewGroup(sourceFile, decl, scanner2) {\n  const startPos = decl.getFullStart();\n  const endPos = decl.getStart();\n  scanner2.setText(sourceFile.text, startPos, endPos - startPos);\n  let numberOfNewLines = 0;\n  while (scanner2.getTokenStart() < endPos) {\n    const tokenKind = scanner2.scan();\n    if (tokenKind === 4 /* NewLineTrivia */) {\n      numberOfNewLines++;\n      if (numberOfNewLines >= 2) {\n        return true;\n      }\n    }\n  }\n  return false;\n}\nfunction getTopLevelExportGroups(sourceFile) {\n  const topLevelExportGroups = [];\n  const statements = sourceFile.statements;\n  const len = length(statements);\n  let i = 0;\n  let groupIndex = 0;\n  while (i < len) {\n    if (isExportDeclaration(statements[i])) {\n      if (topLevelExportGroups[groupIndex] === void 0) {\n        topLevelExportGroups[groupIndex] = [];\n      }\n      const exportDecl = statements[i];\n      if (exportDecl.moduleSpecifier) {\n        topLevelExportGroups[groupIndex].push(exportDecl);\n        i++;\n      } else {\n        while (i < len && isExportDeclaration(statements[i])) {\n          topLevelExportGroups[groupIndex].push(statements[i++]);\n        }\n        groupIndex++;\n      }\n    } else {\n      i++;\n    }\n  }\n  return flatMap(topLevelExportGroups, (exportGroupDecls) => groupByNewlineContiguous(sourceFile, exportGroupDecls));\n}\nfunction removeUnusedImports(oldImports, sourceFile, program) {\n  const typeChecker = program.getTypeChecker();\n  const compilerOptions = program.getCompilerOptions();\n  const jsxNamespace = typeChecker.getJsxNamespace(sourceFile);\n  const jsxFragmentFactory = typeChecker.getJsxFragmentFactory(sourceFile);\n  const jsxElementsPresent = !!(sourceFile.transformFlags & 2 /* ContainsJsx */);\n  const usedImports = [];\n  for (const importDecl of oldImports) {\n    const { importClause, moduleSpecifier } = importDecl;\n    if (!importClause) {\n      usedImports.push(importDecl);\n      continue;\n    }\n    let { name, namedBindings } = importClause;\n    if (name && !isDeclarationUsed(name)) {\n      name = void 0;\n    }\n    if (namedBindings) {\n      if (isNamespaceImport(namedBindings)) {\n        if (!isDeclarationUsed(namedBindings.name)) {\n          namedBindings = void 0;\n        }\n      } else {\n        const newElements = namedBindings.elements.filter((e) => isDeclarationUsed(e.name));\n        if (newElements.length < namedBindings.elements.length) {\n          namedBindings = newElements.length ? factory.updateNamedImports(namedBindings, newElements) : void 0;\n        }\n      }\n    }\n    if (name || namedBindings) {\n      usedImports.push(updateImportDeclarationAndClause(importDecl, name, namedBindings));\n    } else if (hasModuleDeclarationMatchingSpecifier(sourceFile, moduleSpecifier)) {\n      if (sourceFile.isDeclarationFile) {\n        usedImports.push(factory.createImportDeclaration(\n          importDecl.modifiers,\n          /*importClause*/\n          void 0,\n          moduleSpecifier,\n          /*attributes*/\n          void 0\n        ));\n      } else {\n        usedImports.push(importDecl);\n      }\n    }\n  }\n  return usedImports;\n  function isDeclarationUsed(identifier) {\n    return jsxElementsPresent && (identifier.text === jsxNamespace || jsxFragmentFactory && identifier.text === jsxFragmentFactory) && jsxModeNeedsExplicitImport(compilerOptions.jsx) || ts_FindAllReferences_exports.Core.isSymbolReferencedInFile(identifier, typeChecker, sourceFile);\n  }\n}\nfunction getExternalModuleName2(specifier) {\n  return specifier !== void 0 && isStringLiteralLike(specifier) ? specifier.text : void 0;\n}\nfunction getCategorizedImports(importGroup) {\n  let importWithoutClause;\n  const typeOnlyImports = { defaultImports: [], namespaceImports: [], namedImports: [] };\n  const regularImports = { defaultImports: [], namespaceImports: [], namedImports: [] };\n  for (const importDeclaration of importGroup) {\n    if (importDeclaration.importClause === void 0) {\n      importWithoutClause = importWithoutClause || importDeclaration;\n      continue;\n    }\n    const group2 = importDeclaration.importClause.isTypeOnly ? typeOnlyImports : regularImports;\n    const { name, namedBindings } = importDeclaration.importClause;\n    if (name) {\n      group2.defaultImports.push(importDeclaration);\n    }\n    if (namedBindings) {\n      if (isNamespaceImport(namedBindings)) {\n        group2.namespaceImports.push(importDeclaration);\n      } else {\n        group2.namedImports.push(importDeclaration);\n      }\n    }\n  }\n  return {\n    importWithoutClause,\n    typeOnlyImports,\n    regularImports\n  };\n}\nfunction coalesceImportsWorker(importGroup, comparer, specifierComparer, sourceFile) {\n  if (importGroup.length === 0) {\n    return importGroup;\n  }\n  const importGroupsByAttributes = groupBy(importGroup, (decl) => {\n    if (decl.attributes) {\n      let attrs = decl.attributes.token + \" \";\n      for (const x of toSorted(decl.attributes.elements, (x2, y) => compareStringsCaseSensitive(x2.name.text, y.name.text))) {\n        attrs += x.name.text + \":\";\n        attrs += isStringLiteralLike(x.value) ? `\"${x.value.text}\"` : x.value.getText() + \" \";\n      }\n      return attrs;\n    }\n    return \"\";\n  });\n  const coalescedImports = [];\n  for (const attribute in importGroupsByAttributes) {\n    const importGroupSameAttrs = importGroupsByAttributes[attribute];\n    const { importWithoutClause, typeOnlyImports, regularImports } = getCategorizedImports(importGroupSameAttrs);\n    if (importWithoutClause) {\n      coalescedImports.push(importWithoutClause);\n    }\n    for (const group2 of [regularImports, typeOnlyImports]) {\n      const isTypeOnly = group2 === typeOnlyImports;\n      const { defaultImports, namespaceImports, namedImports } = group2;\n      if (!isTypeOnly && defaultImports.length === 1 && namespaceImports.length === 1 && namedImports.length === 0) {\n        const defaultImport = defaultImports[0];\n        coalescedImports.push(\n          updateImportDeclarationAndClause(defaultImport, defaultImport.importClause.name, namespaceImports[0].importClause.namedBindings)\n        );\n        continue;\n      }\n      const sortedNamespaceImports = toSorted(namespaceImports, (i1, i2) => comparer(i1.importClause.namedBindings.name.text, i2.importClause.namedBindings.name.text));\n      for (const namespaceImport of sortedNamespaceImports) {\n        coalescedImports.push(\n          updateImportDeclarationAndClause(\n            namespaceImport,\n            /*name*/\n            void 0,\n            namespaceImport.importClause.namedBindings\n          )\n        );\n      }\n      const firstDefaultImport = firstOrUndefined(defaultImports);\n      const firstNamedImport = firstOrUndefined(namedImports);\n      const importDecl = firstDefaultImport ?? firstNamedImport;\n      if (!importDecl) {\n        continue;\n      }\n      let newDefaultImport;\n      const newImportSpecifiers = [];\n      if (defaultImports.length === 1) {\n        newDefaultImport = defaultImports[0].importClause.name;\n      } else {\n        for (const defaultImport of defaultImports) {\n          newImportSpecifiers.push(\n            factory.createImportSpecifier(\n              /*isTypeOnly*/\n              false,\n              factory.createIdentifier(\"default\"),\n              defaultImport.importClause.name\n            )\n          );\n        }\n      }\n      newImportSpecifiers.push(...getNewImportSpecifiers(namedImports));\n      const sortedImportSpecifiers = factory.createNodeArray(\n        toSorted(newImportSpecifiers, specifierComparer),\n        firstNamedImport == null ? void 0 : firstNamedImport.importClause.namedBindings.elements.hasTrailingComma\n      );\n      const newNamedImports = sortedImportSpecifiers.length === 0 ? newDefaultImport ? void 0 : factory.createNamedImports(emptyArray) : firstNamedImport ? factory.updateNamedImports(firstNamedImport.importClause.namedBindings, sortedImportSpecifiers) : factory.createNamedImports(sortedImportSpecifiers);\n      if (sourceFile && newNamedImports && (firstNamedImport == null ? void 0 : firstNamedImport.importClause.namedBindings) && !rangeIsOnSingleLine(firstNamedImport.importClause.namedBindings, sourceFile)) {\n        setEmitFlags(newNamedImports, 2 /* MultiLine */);\n      }\n      if (isTypeOnly && newDefaultImport && newNamedImports) {\n        coalescedImports.push(\n          updateImportDeclarationAndClause(\n            importDecl,\n            newDefaultImport,\n            /*namedBindings*/\n            void 0\n          )\n        );\n        coalescedImports.push(\n          updateImportDeclarationAndClause(\n            firstNamedImport ?? importDecl,\n            /*name*/\n            void 0,\n            newNamedImports\n          )\n        );\n      } else {\n        coalescedImports.push(\n          updateImportDeclarationAndClause(importDecl, newDefaultImport, newNamedImports)\n        );\n      }\n    }\n  }\n  return coalescedImports;\n}\nfunction coalesceExportsWorker(exportGroup, specifierComparer) {\n  if (exportGroup.length === 0) {\n    return exportGroup;\n  }\n  const { exportWithoutClause, namedExports, typeOnlyExports } = getCategorizedExports(exportGroup);\n  const coalescedExports = [];\n  if (exportWithoutClause) {\n    coalescedExports.push(exportWithoutClause);\n  }\n  for (const exportGroup2 of [namedExports, typeOnlyExports]) {\n    if (exportGroup2.length === 0) {\n      continue;\n    }\n    const newExportSpecifiers = [];\n    newExportSpecifiers.push(...flatMap(exportGroup2, (i) => i.exportClause && isNamedExports(i.exportClause) ? i.exportClause.elements : emptyArray));\n    const sortedExportSpecifiers = toSorted(newExportSpecifiers, specifierComparer);\n    const exportDecl = exportGroup2[0];\n    coalescedExports.push(\n      factory.updateExportDeclaration(\n        exportDecl,\n        exportDecl.modifiers,\n        exportDecl.isTypeOnly,\n        exportDecl.exportClause && (isNamedExports(exportDecl.exportClause) ? factory.updateNamedExports(exportDecl.exportClause, sortedExportSpecifiers) : factory.updateNamespaceExport(exportDecl.exportClause, exportDecl.exportClause.name)),\n        exportDecl.moduleSpecifier,\n        exportDecl.attributes\n      )\n    );\n  }\n  return coalescedExports;\n  function getCategorizedExports(exportGroup2) {\n    let exportWithoutClause2;\n    const namedExports2 = [];\n    const typeOnlyExports2 = [];\n    for (const exportDeclaration of exportGroup2) {\n      if (exportDeclaration.exportClause === void 0) {\n        exportWithoutClause2 = exportWithoutClause2 || exportDeclaration;\n      } else if (exportDeclaration.isTypeOnly) {\n        typeOnlyExports2.push(exportDeclaration);\n      } else {\n        namedExports2.push(exportDeclaration);\n      }\n    }\n    return {\n      exportWithoutClause: exportWithoutClause2,\n      namedExports: namedExports2,\n      typeOnlyExports: typeOnlyExports2\n    };\n  }\n}\nfunction updateImportDeclarationAndClause(importDeclaration, name, namedBindings) {\n  return factory.updateImportDeclaration(\n    importDeclaration,\n    importDeclaration.modifiers,\n    factory.updateImportClause(importDeclaration.importClause, importDeclaration.importClause.phaseModifier, name, namedBindings),\n    // TODO: GH#18217\n    importDeclaration.moduleSpecifier,\n    importDeclaration.attributes\n  );\n}\nfunction compareImportOrExportSpecifiers(s1, s2, comparer, preferences) {\n  switch (preferences == null ? void 0 : preferences.organizeImportsTypeOrder) {\n    case \"first\":\n      return compareBooleans(s2.isTypeOnly, s1.isTypeOnly) || comparer(s1.name.text, s2.name.text);\n    case \"inline\":\n      return comparer(s1.name.text, s2.name.text);\n    default:\n      return compareBooleans(s1.isTypeOnly, s2.isTypeOnly) || comparer(s1.name.text, s2.name.text);\n  }\n}\nfunction compareModuleSpecifiersWorker(m1, m2, comparer) {\n  const name1 = m1 === void 0 ? void 0 : getExternalModuleName2(m1);\n  const name2 = m2 === void 0 ? void 0 : getExternalModuleName2(m2);\n  return compareBooleans(name1 === void 0, name2 === void 0) || compareBooleans(isExternalModuleNameRelative(name1), isExternalModuleNameRelative(name2)) || comparer(name1, name2);\n}\nfunction getModuleNamesFromDecls(decls) {\n  return decls.map((s) => getExternalModuleName2(getModuleSpecifierExpression(s)) || \"\");\n}\nfunction getModuleSpecifierExpression(declaration) {\n  var _a;\n  switch (declaration.kind) {\n    case 272 /* ImportEqualsDeclaration */:\n      return (_a = tryCast(declaration.moduleReference, isExternalModuleReference)) == null ? void 0 : _a.expression;\n    case 273 /* ImportDeclaration */:\n      return declaration.moduleSpecifier;\n    case 244 /* VariableStatement */:\n      return declaration.declarationList.declarations[0].initializer.arguments[0];\n  }\n}\nfunction hasModuleDeclarationMatchingSpecifier(sourceFile, moduleSpecifier) {\n  const moduleSpecifierText = isStringLiteral(moduleSpecifier) && moduleSpecifier.text;\n  return isString(moduleSpecifierText) && some(sourceFile.moduleAugmentations, (moduleName) => isStringLiteral(moduleName) && moduleName.text === moduleSpecifierText);\n}\nfunction getNewImportSpecifiers(namedImports) {\n  return flatMap(namedImports, (namedImport) => map(tryGetNamedBindingElements(namedImport), (importSpecifier) => importSpecifier.name && importSpecifier.propertyName && moduleExportNameTextEscaped(importSpecifier.name) === moduleExportNameTextEscaped(importSpecifier.propertyName) ? factory.updateImportSpecifier(\n    importSpecifier,\n    importSpecifier.isTypeOnly,\n    /*propertyName*/\n    void 0,\n    importSpecifier.name\n  ) : importSpecifier));\n}\nfunction tryGetNamedBindingElements(namedImport) {\n  var _a;\n  return ((_a = namedImport.importClause) == null ? void 0 : _a.namedBindings) && isNamedImports(namedImport.importClause.namedBindings) ? namedImport.importClause.namedBindings.elements : void 0;\n}\nfunction detectModuleSpecifierCaseBySort(importDeclsByGroup, comparersToTest) {\n  const moduleSpecifiersByGroup = [];\n  importDeclsByGroup.forEach((importGroup) => {\n    moduleSpecifiersByGroup.push(getModuleNamesFromDecls(importGroup));\n  });\n  return detectCaseSensitivityBySort(moduleSpecifiersByGroup, comparersToTest);\n}\nfunction detectNamedImportOrganizationBySort(originalGroups, comparersToTest, typesToTest) {\n  let bothNamedImports = false;\n  const importDeclsWithNamed = originalGroups.filter((i) => {\n    var _a, _b;\n    const namedImports = (_b = tryCast((_a = i.importClause) == null ? void 0 : _a.namedBindings, isNamedImports)) == null ? void 0 : _b.elements;\n    if (!(namedImports == null ? void 0 : namedImports.length)) return false;\n    if (!bothNamedImports && namedImports.some((n) => n.isTypeOnly) && namedImports.some((n) => !n.isTypeOnly)) {\n      bothNamedImports = true;\n    }\n    return true;\n  });\n  if (importDeclsWithNamed.length === 0) return;\n  const namedImportsByDecl = importDeclsWithNamed.map((importDecl) => {\n    var _a, _b;\n    return (_b = tryCast((_a = importDecl.importClause) == null ? void 0 : _a.namedBindings, isNamedImports)) == null ? void 0 : _b.elements;\n  }).filter((elements) => elements !== void 0);\n  if (!bothNamedImports || typesToTest.length === 0) {\n    const sortState = detectCaseSensitivityBySort(namedImportsByDecl.map((i) => i.map((n) => n.name.text)), comparersToTest);\n    return {\n      namedImportComparer: sortState.comparer,\n      typeOrder: typesToTest.length === 1 ? typesToTest[0] : void 0,\n      isSorted: sortState.isSorted\n    };\n  }\n  const bestDiff = { first: Infinity, last: Infinity, inline: Infinity };\n  const bestComparer = { first: comparersToTest[0], last: comparersToTest[0], inline: comparersToTest[0] };\n  for (const curComparer of comparersToTest) {\n    const currDiff = { first: 0, last: 0, inline: 0 };\n    for (const importDecl of namedImportsByDecl) {\n      for (const typeOrder of typesToTest) {\n        currDiff[typeOrder] = (currDiff[typeOrder] ?? 0) + measureSortedness(importDecl, (n1, n2) => compareImportOrExportSpecifiers(n1, n2, curComparer, { organizeImportsTypeOrder: typeOrder }));\n      }\n    }\n    for (const key of typesToTest) {\n      const typeOrder = key;\n      if (currDiff[typeOrder] < bestDiff[typeOrder]) {\n        bestDiff[typeOrder] = currDiff[typeOrder];\n        bestComparer[typeOrder] = curComparer;\n      }\n    }\n  }\n  outer: for (const bestKey of typesToTest) {\n    const bestTypeOrder = bestKey;\n    for (const testKey of typesToTest) {\n      const testTypeOrder = testKey;\n      if (bestDiff[testTypeOrder] < bestDiff[bestTypeOrder]) continue outer;\n    }\n    return { namedImportComparer: bestComparer[bestTypeOrder], typeOrder: bestTypeOrder, isSorted: bestDiff[bestTypeOrder] === 0 };\n  }\n  return { namedImportComparer: bestComparer.last, typeOrder: \"last\", isSorted: bestDiff.last === 0 };\n}\nfunction measureSortedness(arr, comparer) {\n  let i = 0;\n  for (let j = 0; j < arr.length - 1; j++) {\n    if (comparer(arr[j], arr[j + 1]) > 0) {\n      i++;\n    }\n  }\n  return i;\n}\nfunction detectCaseSensitivityBySort(originalGroups, comparersToTest) {\n  let bestComparer;\n  let bestDiff = Infinity;\n  for (const curComparer of comparersToTest) {\n    let diffOfCurrentComparer = 0;\n    for (const listToSort of originalGroups) {\n      if (listToSort.length <= 1) continue;\n      const diff = measureSortedness(listToSort, curComparer);\n      diffOfCurrentComparer += diff;\n    }\n    if (diffOfCurrentComparer < bestDiff) {\n      bestDiff = diffOfCurrentComparer;\n      bestComparer = curComparer;\n    }\n  }\n  return {\n    comparer: bestComparer ?? comparersToTest[0],\n    isSorted: bestDiff === 0\n  };\n}\nfunction compareImportKind(s1, s2) {\n  return compareValues(getImportKindOrder(s1), getImportKindOrder(s2));\n}\nfunction getImportKindOrder(s1) {\n  var _a;\n  switch (s1.kind) {\n    case 273 /* ImportDeclaration */:\n      if (!s1.importClause) return 0;\n      if (s1.importClause.isTypeOnly) return 1;\n      if (((_a = s1.importClause.namedBindings) == null ? void 0 : _a.kind) === 275 /* NamespaceImport */) return 2;\n      if (s1.importClause.name) return 3;\n      return 4;\n    case 272 /* ImportEqualsDeclaration */:\n      return 5;\n    case 244 /* VariableStatement */:\n      return 6;\n  }\n}\nfunction getOrganizeImportsOrdinalStringComparer(ignoreCase) {\n  return ignoreCase ? compareStringsCaseInsensitiveEslintCompatible : compareStringsCaseSensitive;\n}\nfunction getOrganizeImportsUnicodeStringComparer(ignoreCase, preferences) {\n  const resolvedLocale = getOrganizeImportsLocale(preferences);\n  const caseFirst = preferences.organizeImportsCaseFirst ?? false;\n  const numeric = preferences.organizeImportsNumericCollation ?? false;\n  const accents = preferences.organizeImportsAccentCollation ?? true;\n  const sensitivity = ignoreCase ? accents ? \"accent\" : \"base\" : accents ? \"variant\" : \"case\";\n  const collator = new Intl.Collator(resolvedLocale, {\n    usage: \"sort\",\n    caseFirst: caseFirst || \"false\",\n    sensitivity,\n    numeric\n  });\n  return collator.compare;\n}\nfunction getOrganizeImportsLocale(preferences) {\n  let locale = preferences.organizeImportsLocale;\n  if (locale === \"auto\") locale = getUILocale();\n  if (locale === void 0) locale = \"en\";\n  const supportedLocales = Intl.Collator.supportedLocalesOf(locale);\n  const resolvedLocale = supportedLocales.length ? supportedLocales[0] : \"en\";\n  return resolvedLocale;\n}\nfunction getOrganizeImportsStringComparer(preferences, ignoreCase) {\n  const collation = preferences.organizeImportsCollation ?? \"ordinal\";\n  return collation === \"unicode\" ? getOrganizeImportsUnicodeStringComparer(ignoreCase, preferences) : getOrganizeImportsOrdinalStringComparer(ignoreCase);\n}\nfunction getOrganizeImportsStringComparerWithDetection(originalImportDecls, preferences) {\n  return detectModuleSpecifierCaseBySort([originalImportDecls], getDetectionLists(preferences).comparersToTest);\n}\nfunction getNamedImportSpecifierComparer(preferences, comparer) {\n  const stringComparer = comparer ?? getOrganizeImportsOrdinalStringComparer(!!preferences.organizeImportsIgnoreCase);\n  return (s1, s2) => compareImportOrExportSpecifiers(s1, s2, stringComparer, preferences);\n}\nfunction getNamedImportSpecifierComparerWithDetection(importDecl, preferences, sourceFile) {\n  const { comparersToTest, typeOrdersToTest } = getDetectionLists(preferences);\n  const detectFromDecl = detectNamedImportOrganizationBySort([importDecl], comparersToTest, typeOrdersToTest);\n  let specifierComparer = getNamedImportSpecifierComparer(preferences, comparersToTest[0]);\n  let isSorted;\n  if (typeof preferences.organizeImportsIgnoreCase !== \"boolean\" || !preferences.organizeImportsTypeOrder) {\n    if (detectFromDecl) {\n      const { namedImportComparer, typeOrder, isSorted: isDetectedSorted } = detectFromDecl;\n      isSorted = isDetectedSorted;\n      specifierComparer = getNamedImportSpecifierComparer({ organizeImportsTypeOrder: typeOrder }, namedImportComparer);\n    } else if (sourceFile) {\n      const detectFromFile = detectNamedImportOrganizationBySort(sourceFile.statements.filter(isImportDeclaration), comparersToTest, typeOrdersToTest);\n      if (detectFromFile) {\n        const { namedImportComparer, typeOrder, isSorted: isDetectedSorted } = detectFromFile;\n        isSorted = isDetectedSorted;\n        specifierComparer = getNamedImportSpecifierComparer({ organizeImportsTypeOrder: typeOrder }, namedImportComparer);\n      }\n    }\n  }\n  return { specifierComparer, isSorted };\n}\nfunction getImportDeclarationInsertionIndex(sortedImports, newImport, comparer) {\n  const index = binarySearch(sortedImports, newImport, identity, (a, b) => compareImportsOrRequireStatements(a, b, comparer));\n  return index < 0 ? ~index : index;\n}\nfunction getImportSpecifierInsertionIndex(sortedImports, newImport, comparer) {\n  const index = binarySearch(sortedImports, newImport, identity, comparer);\n  return index < 0 ? ~index : index;\n}\nfunction compareImportsOrRequireStatements(s1, s2, comparer) {\n  return compareModuleSpecifiersWorker(getModuleSpecifierExpression(s1), getModuleSpecifierExpression(s2), comparer) || compareImportKind(s1, s2);\n}\nfunction testCoalesceImports(importGroup, ignoreCase, sourceFile, preferences) {\n  const comparer = getOrganizeImportsOrdinalStringComparer(ignoreCase);\n  const specifierComparer = getNamedImportSpecifierComparer({ organizeImportsTypeOrder: preferences == null ? void 0 : preferences.organizeImportsTypeOrder }, comparer);\n  return coalesceImportsWorker(importGroup, comparer, specifierComparer, sourceFile);\n}\nfunction testCoalesceExports(exportGroup, ignoreCase, preferences) {\n  const comparer = (s1, s2) => compareImportOrExportSpecifiers(s1, s2, getOrganizeImportsOrdinalStringComparer(ignoreCase), { organizeImportsTypeOrder: (preferences == null ? void 0 : preferences.organizeImportsTypeOrder) ?? \"last\" });\n  return coalesceExportsWorker(exportGroup, comparer);\n}\nfunction compareModuleSpecifiers2(m1, m2, ignoreCase) {\n  const comparer = getOrganizeImportsOrdinalStringComparer(!!ignoreCase);\n  return compareModuleSpecifiersWorker(m1, m2, comparer);\n}\n\n// src/services/_namespaces/ts.OutliningElementsCollector.ts\nvar ts_OutliningElementsCollector_exports = {};\n__export(ts_OutliningElementsCollector_exports, {\n  collectElements: () => collectElements\n});\n\n// src/services/outliningElementsCollector.ts\nfunction collectElements(sourceFile, cancellationToken) {\n  const res = [];\n  addNodeOutliningSpans(sourceFile, cancellationToken, res);\n  addRegionOutliningSpans(sourceFile, res);\n  res.sort((span1, span2) => span1.textSpan.start - span2.textSpan.start);\n  return res;\n}\nfunction addNodeOutliningSpans(sourceFile, cancellationToken, out) {\n  let depthRemaining = 40;\n  let current = 0;\n  const statements = sourceFile.statements;\n  const n = statements.length;\n  while (current < n) {\n    while (current < n && !isAnyImportSyntax(statements[current])) {\n      visitNode3(statements[current]);\n      current++;\n    }\n    if (current === n) break;\n    const firstImport = current;\n    while (current < n && isAnyImportSyntax(statements[current])) {\n      visitNode3(statements[current]);\n      current++;\n    }\n    const lastImport = current - 1;\n    if (lastImport !== firstImport) {\n      out.push(createOutliningSpanFromBounds(findChildOfKind(statements[firstImport], 102 /* ImportKeyword */, sourceFile).getStart(sourceFile), statements[lastImport].getEnd(), \"imports\" /* Imports */));\n    }\n  }\n  visitNode3(sourceFile.endOfFileToken);\n  function visitNode3(n2) {\n    var _a;\n    if (depthRemaining === 0) return;\n    cancellationToken.throwIfCancellationRequested();\n    if (isDeclaration(n2) || isVariableStatement(n2) || isReturnStatement(n2) || isCallOrNewExpression(n2) || n2.kind === 1 /* EndOfFileToken */) {\n      addOutliningForLeadingCommentsForNode(n2, sourceFile, cancellationToken, out);\n    }\n    if (isFunctionLike(n2) && isBinaryExpression(n2.parent) && isPropertyAccessExpression(n2.parent.left)) {\n      addOutliningForLeadingCommentsForNode(n2.parent.left, sourceFile, cancellationToken, out);\n    }\n    if (isBlock(n2) || isModuleBlock(n2)) {\n      addOutliningForLeadingCommentsForPos(n2.statements.end, sourceFile, cancellationToken, out);\n    }\n    if (isClassLike(n2) || isInterfaceDeclaration(n2)) {\n      addOutliningForLeadingCommentsForPos(n2.members.end, sourceFile, cancellationToken, out);\n    }\n    const span = getOutliningSpanForNode(n2, sourceFile);\n    if (span) out.push(span);\n    depthRemaining--;\n    if (isCallExpression(n2)) {\n      depthRemaining++;\n      visitNode3(n2.expression);\n      depthRemaining--;\n      n2.arguments.forEach(visitNode3);\n      (_a = n2.typeArguments) == null ? void 0 : _a.forEach(visitNode3);\n    } else if (isIfStatement(n2) && n2.elseStatement && isIfStatement(n2.elseStatement)) {\n      visitNode3(n2.expression);\n      visitNode3(n2.thenStatement);\n      depthRemaining++;\n      visitNode3(n2.elseStatement);\n      depthRemaining--;\n    } else {\n      n2.forEachChild(visitNode3);\n    }\n    depthRemaining++;\n  }\n}\nfunction addRegionOutliningSpans(sourceFile, out) {\n  const regions = [];\n  const lineStarts = sourceFile.getLineStarts();\n  for (const currentLineStart of lineStarts) {\n    const lineEnd = sourceFile.getLineEndOfPosition(currentLineStart);\n    const lineText = sourceFile.text.substring(currentLineStart, lineEnd);\n    const result = parseRegionDelimiter(lineText);\n    if (!result || isInComment(sourceFile, currentLineStart)) {\n      continue;\n    }\n    if (result.isStart) {\n      const span = createTextSpanFromBounds(sourceFile.text.indexOf(\"//\", currentLineStart), lineEnd);\n      regions.push(createOutliningSpan(\n        span,\n        \"region\" /* Region */,\n        span,\n        /*autoCollapse*/\n        false,\n        result.name || \"#region\"\n      ));\n    } else {\n      const region = regions.pop();\n      if (region) {\n        region.textSpan.length = lineEnd - region.textSpan.start;\n        region.hintSpan.length = lineEnd - region.textSpan.start;\n        out.push(region);\n      }\n    }\n  }\n}\nvar regionDelimiterRegExp = /^#(end)?region(.*)\\r?$/;\nfunction parseRegionDelimiter(lineText) {\n  lineText = lineText.trimStart();\n  if (!startsWith(lineText, \"//\")) {\n    return null;\n  }\n  lineText = lineText.slice(2).trim();\n  const result = regionDelimiterRegExp.exec(lineText);\n  if (result) {\n    return { isStart: !result[1], name: result[2].trim() };\n  }\n  return void 0;\n}\nfunction addOutliningForLeadingCommentsForPos(pos, sourceFile, cancellationToken, out) {\n  const comments = getLeadingCommentRanges(sourceFile.text, pos);\n  if (!comments) return;\n  let firstSingleLineCommentStart = -1;\n  let lastSingleLineCommentEnd = -1;\n  let singleLineCommentCount = 0;\n  const sourceText = sourceFile.getFullText();\n  for (const { kind, pos: pos2, end } of comments) {\n    cancellationToken.throwIfCancellationRequested();\n    switch (kind) {\n      case 2 /* SingleLineCommentTrivia */:\n        const commentText = sourceText.slice(pos2, end);\n        if (parseRegionDelimiter(commentText)) {\n          combineAndAddMultipleSingleLineComments();\n          singleLineCommentCount = 0;\n          break;\n        }\n        if (singleLineCommentCount === 0) {\n          firstSingleLineCommentStart = pos2;\n        }\n        lastSingleLineCommentEnd = end;\n        singleLineCommentCount++;\n        break;\n      case 3 /* MultiLineCommentTrivia */:\n        combineAndAddMultipleSingleLineComments();\n        out.push(createOutliningSpanFromBounds(pos2, end, \"comment\" /* Comment */));\n        singleLineCommentCount = 0;\n        break;\n      default:\n        Debug.assertNever(kind);\n    }\n  }\n  combineAndAddMultipleSingleLineComments();\n  function combineAndAddMultipleSingleLineComments() {\n    if (singleLineCommentCount > 1) {\n      out.push(createOutliningSpanFromBounds(firstSingleLineCommentStart, lastSingleLineCommentEnd, \"comment\" /* Comment */));\n    }\n  }\n}\nfunction addOutliningForLeadingCommentsForNode(n, sourceFile, cancellationToken, out) {\n  if (isJsxText(n)) return;\n  addOutliningForLeadingCommentsForPos(n.pos, sourceFile, cancellationToken, out);\n}\nfunction createOutliningSpanFromBounds(pos, end, kind) {\n  return createOutliningSpan(createTextSpanFromBounds(pos, end), kind);\n}\nfunction getOutliningSpanForNode(n, sourceFile) {\n  switch (n.kind) {\n    case 242 /* Block */:\n      if (isFunctionLike(n.parent)) {\n        return functionSpan(n.parent, n, sourceFile);\n      }\n      switch (n.parent.kind) {\n        case 247 /* DoStatement */:\n        case 250 /* ForInStatement */:\n        case 251 /* ForOfStatement */:\n        case 249 /* ForStatement */:\n        case 246 /* IfStatement */:\n        case 248 /* WhileStatement */:\n        case 255 /* WithStatement */:\n        case 300 /* CatchClause */:\n          return spanForNode(n.parent);\n        case 259 /* TryStatement */:\n          const tryStatement = n.parent;\n          if (tryStatement.tryBlock === n) {\n            return spanForNode(n.parent);\n          } else if (tryStatement.finallyBlock === n) {\n            const node = findChildOfKind(tryStatement, 98 /* FinallyKeyword */, sourceFile);\n            if (node) return spanForNode(node);\n          }\n        // falls through\n        default:\n          return createOutliningSpan(createTextSpanFromNode(n, sourceFile), \"code\" /* Code */);\n      }\n    case 269 /* ModuleBlock */:\n      return spanForNode(n.parent);\n    case 264 /* ClassDeclaration */:\n    case 232 /* ClassExpression */:\n    case 265 /* InterfaceDeclaration */:\n    case 267 /* EnumDeclaration */:\n    case 270 /* CaseBlock */:\n    case 188 /* TypeLiteral */:\n    case 207 /* ObjectBindingPattern */:\n      return spanForNode(n);\n    case 190 /* TupleType */:\n      return spanForNode(\n        n,\n        /*autoCollapse*/\n        false,\n        /*useFullStart*/\n        !isTupleTypeNode(n.parent),\n        23 /* OpenBracketToken */\n      );\n    case 297 /* CaseClause */:\n    case 298 /* DefaultClause */:\n      return spanForNodeArray(n.statements);\n    case 211 /* ObjectLiteralExpression */:\n      return spanForObjectOrArrayLiteral(n);\n    case 210 /* ArrayLiteralExpression */:\n      return spanForObjectOrArrayLiteral(n, 23 /* OpenBracketToken */);\n    case 285 /* JsxElement */:\n      return spanForJSXElement(n);\n    case 289 /* JsxFragment */:\n      return spanForJSXFragment(n);\n    case 286 /* JsxSelfClosingElement */:\n    case 287 /* JsxOpeningElement */:\n      return spanForJSXAttributes(n.attributes);\n    case 229 /* TemplateExpression */:\n    case 15 /* NoSubstitutionTemplateLiteral */:\n      return spanForTemplateLiteral(n);\n    case 208 /* ArrayBindingPattern */:\n      return spanForNode(\n        n,\n        /*autoCollapse*/\n        false,\n        /*useFullStart*/\n        !isBindingElement(n.parent),\n        23 /* OpenBracketToken */\n      );\n    case 220 /* ArrowFunction */:\n      return spanForArrowFunction(n);\n    case 214 /* CallExpression */:\n      return spanForCallExpression(n);\n    case 218 /* ParenthesizedExpression */:\n      return spanForParenthesizedExpression(n);\n    case 276 /* NamedImports */:\n    case 280 /* NamedExports */:\n    case 301 /* ImportAttributes */:\n      return spanForImportExportElements(n);\n  }\n  function spanForImportExportElements(node) {\n    if (!node.elements.length) {\n      return void 0;\n    }\n    const openToken = findChildOfKind(node, 19 /* OpenBraceToken */, sourceFile);\n    const closeToken = findChildOfKind(node, 20 /* CloseBraceToken */, sourceFile);\n    if (!openToken || !closeToken || positionsAreOnSameLine(openToken.pos, closeToken.pos, sourceFile)) {\n      return void 0;\n    }\n    return spanBetweenTokens(\n      openToken,\n      closeToken,\n      node,\n      sourceFile,\n      /*autoCollapse*/\n      false,\n      /*useFullStart*/\n      false\n    );\n  }\n  function spanForCallExpression(node) {\n    if (!node.arguments.length) {\n      return void 0;\n    }\n    const openToken = findChildOfKind(node, 21 /* OpenParenToken */, sourceFile);\n    const closeToken = findChildOfKind(node, 22 /* CloseParenToken */, sourceFile);\n    if (!openToken || !closeToken || positionsAreOnSameLine(openToken.pos, closeToken.pos, sourceFile)) {\n      return void 0;\n    }\n    return spanBetweenTokens(\n      openToken,\n      closeToken,\n      node,\n      sourceFile,\n      /*autoCollapse*/\n      false,\n      /*useFullStart*/\n      true\n    );\n  }\n  function spanForArrowFunction(node) {\n    if (isBlock(node.body) || isParenthesizedExpression(node.body) || positionsAreOnSameLine(node.body.getFullStart(), node.body.getEnd(), sourceFile)) {\n      return void 0;\n    }\n    const textSpan = createTextSpanFromBounds(node.body.getFullStart(), node.body.getEnd());\n    return createOutliningSpan(textSpan, \"code\" /* Code */, createTextSpanFromNode(node));\n  }\n  function spanForJSXElement(node) {\n    const textSpan = createTextSpanFromBounds(node.openingElement.getStart(sourceFile), node.closingElement.getEnd());\n    const tagName = node.openingElement.tagName.getText(sourceFile);\n    const bannerText = \"<\" + tagName + \">...</\" + tagName + \">\";\n    return createOutliningSpan(\n      textSpan,\n      \"code\" /* Code */,\n      textSpan,\n      /*autoCollapse*/\n      false,\n      bannerText\n    );\n  }\n  function spanForJSXFragment(node) {\n    const textSpan = createTextSpanFromBounds(node.openingFragment.getStart(sourceFile), node.closingFragment.getEnd());\n    const bannerText = \"<>...</>\";\n    return createOutliningSpan(\n      textSpan,\n      \"code\" /* Code */,\n      textSpan,\n      /*autoCollapse*/\n      false,\n      bannerText\n    );\n  }\n  function spanForJSXAttributes(node) {\n    if (node.properties.length === 0) {\n      return void 0;\n    }\n    return createOutliningSpanFromBounds(node.getStart(sourceFile), node.getEnd(), \"code\" /* Code */);\n  }\n  function spanForTemplateLiteral(node) {\n    if (node.kind === 15 /* NoSubstitutionTemplateLiteral */ && node.text.length === 0) {\n      return void 0;\n    }\n    return createOutliningSpanFromBounds(node.getStart(sourceFile), node.getEnd(), \"code\" /* Code */);\n  }\n  function spanForObjectOrArrayLiteral(node, open = 19 /* OpenBraceToken */) {\n    return spanForNode(\n      node,\n      /*autoCollapse*/\n      false,\n      /*useFullStart*/\n      !isArrayLiteralExpression(node.parent) && !isCallExpression(node.parent),\n      open\n    );\n  }\n  function spanForNode(hintSpanNode, autoCollapse = false, useFullStart = true, open = 19 /* OpenBraceToken */, close = open === 19 /* OpenBraceToken */ ? 20 /* CloseBraceToken */ : 24 /* CloseBracketToken */) {\n    const openToken = findChildOfKind(n, open, sourceFile);\n    const closeToken = findChildOfKind(n, close, sourceFile);\n    return openToken && closeToken && spanBetweenTokens(openToken, closeToken, hintSpanNode, sourceFile, autoCollapse, useFullStart);\n  }\n  function spanForNodeArray(nodeArray) {\n    return nodeArray.length ? createOutliningSpan(createTextSpanFromRange(nodeArray), \"code\" /* Code */) : void 0;\n  }\n  function spanForParenthesizedExpression(node) {\n    if (positionsAreOnSameLine(node.getStart(), node.getEnd(), sourceFile)) return void 0;\n    const textSpan = createTextSpanFromBounds(node.getStart(), node.getEnd());\n    return createOutliningSpan(textSpan, \"code\" /* Code */, createTextSpanFromNode(node));\n  }\n}\nfunction functionSpan(node, body, sourceFile) {\n  const openToken = tryGetFunctionOpenToken(node, body, sourceFile);\n  const closeToken = findChildOfKind(body, 20 /* CloseBraceToken */, sourceFile);\n  return openToken && closeToken && spanBetweenTokens(\n    openToken,\n    closeToken,\n    node,\n    sourceFile,\n    /*autoCollapse*/\n    node.kind !== 220 /* ArrowFunction */\n  );\n}\nfunction spanBetweenTokens(openToken, closeToken, hintSpanNode, sourceFile, autoCollapse = false, useFullStart = true) {\n  const textSpan = createTextSpanFromBounds(useFullStart ? openToken.getFullStart() : openToken.getStart(sourceFile), closeToken.getEnd());\n  return createOutliningSpan(textSpan, \"code\" /* Code */, createTextSpanFromNode(hintSpanNode, sourceFile), autoCollapse);\n}\nfunction createOutliningSpan(textSpan, kind, hintSpan = textSpan, autoCollapse = false, bannerText = \"...\") {\n  return { textSpan, kind, hintSpan, bannerText, autoCollapse };\n}\nfunction tryGetFunctionOpenToken(node, body, sourceFile) {\n  if (isNodeArrayMultiLine(node.parameters, sourceFile)) {\n    const openParenToken = findChildOfKind(node, 21 /* OpenParenToken */, sourceFile);\n    if (openParenToken) {\n      return openParenToken;\n    }\n  }\n  return findChildOfKind(body, 19 /* OpenBraceToken */, sourceFile);\n}\n\n// src/services/_namespaces/ts.Rename.ts\nvar ts_Rename_exports = {};\n__export(ts_Rename_exports, {\n  getRenameInfo: () => getRenameInfo,\n  nodeIsEligibleForRename: () => nodeIsEligibleForRename\n});\n\n// src/services/rename.ts\nfunction getRenameInfo(program, sourceFile, position, preferences) {\n  const node = getAdjustedRenameLocation(getTouchingPropertyName(sourceFile, position));\n  if (nodeIsEligibleForRename(node)) {\n    const renameInfo = getRenameInfoForNode(node, program.getTypeChecker(), sourceFile, program, preferences);\n    if (renameInfo) {\n      return renameInfo;\n    }\n  }\n  return getRenameInfoError(Diagnostics.You_cannot_rename_this_element);\n}\nfunction getRenameInfoForNode(node, typeChecker, sourceFile, program, preferences) {\n  const symbol = typeChecker.getSymbolAtLocation(node);\n  if (!symbol) {\n    if (isStringLiteralLike(node)) {\n      const type = getContextualTypeFromParentOrAncestorTypeNode(node, typeChecker);\n      if (type && (type.flags & 128 /* StringLiteral */ || type.flags & 1048576 /* Union */ && every(type.types, (type2) => !!(type2.flags & 128 /* StringLiteral */)))) {\n        return getRenameInfoSuccess(node.text, node.text, \"string\" /* string */, \"\", node, sourceFile);\n      }\n    } else if (isLabelName(node)) {\n      const name = getTextOfNode(node);\n      return getRenameInfoSuccess(name, name, \"label\" /* label */, \"\" /* none */, node, sourceFile);\n    }\n    return void 0;\n  }\n  const { declarations } = symbol;\n  if (!declarations || declarations.length === 0) return;\n  if (declarations.some((declaration) => isDefinedInLibraryFile(program, declaration))) {\n    return getRenameInfoError(Diagnostics.You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library);\n  }\n  if (isIdentifier(node) && node.escapedText === \"default\" && symbol.parent && symbol.parent.flags & 1536 /* Module */) {\n    return void 0;\n  }\n  if (isStringLiteralLike(node) && tryGetImportFromModuleSpecifier(node)) {\n    return preferences.allowRenameOfImportPath ? getRenameInfoForModule(node, sourceFile, symbol) : void 0;\n  }\n  const wouldRenameNodeModules = wouldRenameInOtherNodeModules(sourceFile, symbol, typeChecker, preferences);\n  if (wouldRenameNodeModules) {\n    return getRenameInfoError(wouldRenameNodeModules);\n  }\n  const kind = ts_SymbolDisplay_exports.getSymbolKind(typeChecker, symbol, node);\n  const specifierName = isImportOrExportSpecifierName(node) || isStringOrNumericLiteralLike(node) && node.parent.kind === 168 /* ComputedPropertyName */ ? stripQuotes(getTextOfIdentifierOrLiteral(node)) : void 0;\n  const displayName = specifierName || typeChecker.symbolToString(symbol);\n  const fullDisplayName = specifierName || typeChecker.getFullyQualifiedName(symbol);\n  return getRenameInfoSuccess(displayName, fullDisplayName, kind, ts_SymbolDisplay_exports.getSymbolModifiers(typeChecker, symbol), node, sourceFile);\n}\nfunction isDefinedInLibraryFile(program, declaration) {\n  const sourceFile = declaration.getSourceFile();\n  return program.isSourceFileDefaultLibrary(sourceFile) && fileExtensionIs(sourceFile.fileName, \".d.ts\" /* Dts */);\n}\nfunction wouldRenameInOtherNodeModules(originalFile, symbol, checker, preferences) {\n  if (!preferences.providePrefixAndSuffixTextForRename && symbol.flags & 2097152 /* Alias */) {\n    const importSpecifier = symbol.declarations && find(symbol.declarations, (decl) => isImportSpecifier(decl));\n    if (importSpecifier && !importSpecifier.propertyName) {\n      symbol = checker.getAliasedSymbol(symbol);\n    }\n  }\n  const { declarations } = symbol;\n  if (!declarations) {\n    return void 0;\n  }\n  const originalPackage = getPackagePathComponents(originalFile.path);\n  if (originalPackage === void 0) {\n    if (some(declarations, (declaration) => isInsideNodeModules(declaration.getSourceFile().path))) {\n      return Diagnostics.You_cannot_rename_elements_that_are_defined_in_a_node_modules_folder;\n    } else {\n      return void 0;\n    }\n  }\n  for (const declaration of declarations) {\n    const declPackage = getPackagePathComponents(declaration.getSourceFile().path);\n    if (declPackage) {\n      const length2 = Math.min(originalPackage.length, declPackage.length);\n      for (let i = 0; i <= length2; i++) {\n        if (compareStringsCaseSensitive(originalPackage[i], declPackage[i]) !== 0 /* EqualTo */) {\n          return Diagnostics.You_cannot_rename_elements_that_are_defined_in_another_node_modules_folder;\n        }\n      }\n    }\n  }\n  return void 0;\n}\nfunction getPackagePathComponents(filePath) {\n  const components = getPathComponents(filePath);\n  const nodeModulesIdx = components.lastIndexOf(\"node_modules\");\n  if (nodeModulesIdx === -1) {\n    return void 0;\n  }\n  return components.slice(0, nodeModulesIdx + 2);\n}\nfunction getRenameInfoForModule(node, sourceFile, moduleSymbol) {\n  if (!isExternalModuleNameRelative(node.text)) {\n    return getRenameInfoError(Diagnostics.You_cannot_rename_a_module_via_a_global_import);\n  }\n  const moduleSourceFile = moduleSymbol.declarations && find(moduleSymbol.declarations, isSourceFile);\n  if (!moduleSourceFile) return void 0;\n  const withoutIndex = endsWith(node.text, \"/index\") || endsWith(node.text, \"/index.js\") ? void 0 : tryRemoveSuffix(removeFileExtension(moduleSourceFile.fileName), \"/index\");\n  const fileName = withoutIndex === void 0 ? moduleSourceFile.fileName : withoutIndex;\n  const kind = withoutIndex === void 0 ? \"module\" /* moduleElement */ : \"directory\" /* directory */;\n  const indexAfterLastSlash = node.text.lastIndexOf(\"/\") + 1;\n  const triggerSpan = createTextSpan(node.getStart(sourceFile) + 1 + indexAfterLastSlash, node.text.length - indexAfterLastSlash);\n  return {\n    canRename: true,\n    fileToRename: fileName,\n    kind,\n    displayName: fileName,\n    fullDisplayName: node.text,\n    kindModifiers: \"\" /* none */,\n    triggerSpan\n  };\n}\nfunction getRenameInfoSuccess(displayName, fullDisplayName, kind, kindModifiers, node, sourceFile) {\n  return {\n    canRename: true,\n    fileToRename: void 0,\n    kind,\n    displayName,\n    fullDisplayName,\n    kindModifiers,\n    triggerSpan: createTriggerSpanForNode(node, sourceFile)\n  };\n}\nfunction getRenameInfoError(diagnostic) {\n  return { canRename: false, localizedErrorMessage: getLocaleSpecificMessage(diagnostic) };\n}\nfunction createTriggerSpanForNode(node, sourceFile) {\n  let start = node.getStart(sourceFile);\n  let width = node.getWidth(sourceFile);\n  if (isStringLiteralLike(node)) {\n    start += 1;\n    width -= 2;\n  }\n  return createTextSpan(start, width);\n}\nfunction nodeIsEligibleForRename(node) {\n  switch (node.kind) {\n    case 80 /* Identifier */:\n    case 81 /* PrivateIdentifier */:\n    case 11 /* StringLiteral */:\n    case 15 /* NoSubstitutionTemplateLiteral */:\n    case 110 /* ThisKeyword */:\n      return true;\n    case 9 /* NumericLiteral */:\n      return isLiteralNameOfPropertyDeclarationOrIndexAccess(node);\n    default:\n      return false;\n  }\n}\n\n// src/services/_namespaces/ts.SignatureHelp.ts\nvar ts_SignatureHelp_exports = {};\n__export(ts_SignatureHelp_exports, {\n  getArgumentInfoForCompletions: () => getArgumentInfoForCompletions,\n  getSignatureHelpItems: () => getSignatureHelpItems\n});\n\n// src/services/signatureHelp.ts\nfunction getSignatureHelpItems(program, sourceFile, position, triggerReason, cancellationToken) {\n  const typeChecker = program.getTypeChecker();\n  const startingToken = findTokenOnLeftOfPosition(sourceFile, position);\n  if (!startingToken) {\n    return void 0;\n  }\n  const onlyUseSyntacticOwners = !!triggerReason && triggerReason.kind === \"characterTyped\";\n  if (onlyUseSyntacticOwners && (isInString(sourceFile, position, startingToken) || isInComment(sourceFile, position))) {\n    return void 0;\n  }\n  const isManuallyInvoked = !!triggerReason && triggerReason.kind === \"invoked\";\n  const argumentInfo = getContainingArgumentInfo(startingToken, position, sourceFile, typeChecker, isManuallyInvoked);\n  if (!argumentInfo) return void 0;\n  cancellationToken.throwIfCancellationRequested();\n  const candidateInfo = getCandidateOrTypeInfo(argumentInfo, typeChecker, sourceFile, startingToken, onlyUseSyntacticOwners);\n  cancellationToken.throwIfCancellationRequested();\n  if (!candidateInfo) {\n    return isSourceFileJS(sourceFile) ? createJSSignatureHelpItems(argumentInfo, program, cancellationToken) : void 0;\n  }\n  return typeChecker.runWithCancellationToken(cancellationToken, (typeChecker2) => candidateInfo.kind === 0 /* Candidate */ ? createSignatureHelpItems(candidateInfo.candidates, candidateInfo.resolvedSignature, argumentInfo, sourceFile, typeChecker2) : createTypeHelpItems(candidateInfo.symbol, argumentInfo, sourceFile, typeChecker2));\n}\nfunction getCandidateOrTypeInfo({ invocation, argumentCount }, checker, sourceFile, startingToken, onlyUseSyntacticOwners) {\n  switch (invocation.kind) {\n    case 0 /* Call */: {\n      if (onlyUseSyntacticOwners && !isSyntacticOwner(startingToken, invocation.node, sourceFile)) {\n        return void 0;\n      }\n      const candidates = [];\n      const resolvedSignature = checker.getResolvedSignatureForSignatureHelp(invocation.node, candidates, argumentCount);\n      return candidates.length === 0 ? void 0 : { kind: 0 /* Candidate */, candidates, resolvedSignature };\n    }\n    case 1 /* TypeArgs */: {\n      const { called } = invocation;\n      if (onlyUseSyntacticOwners && !containsPrecedingToken(startingToken, sourceFile, isIdentifier(called) ? called.parent : called)) {\n        return void 0;\n      }\n      const candidates = getPossibleGenericSignatures(called, argumentCount, checker);\n      if (candidates.length !== 0) return { kind: 0 /* Candidate */, candidates, resolvedSignature: first(candidates) };\n      const symbol = checker.getSymbolAtLocation(called);\n      return symbol && { kind: 1 /* Type */, symbol };\n    }\n    case 2 /* Contextual */:\n      return { kind: 0 /* Candidate */, candidates: [invocation.signature], resolvedSignature: invocation.signature };\n    default:\n      return Debug.assertNever(invocation);\n  }\n}\nfunction isSyntacticOwner(startingToken, node, sourceFile) {\n  if (!isCallOrNewExpression(node)) return false;\n  const invocationChildren = node.getChildren(sourceFile);\n  switch (startingToken.kind) {\n    case 21 /* OpenParenToken */:\n      return contains(invocationChildren, startingToken);\n    case 28 /* CommaToken */: {\n      const containingList = findContainingList(startingToken);\n      return !!containingList && contains(invocationChildren, containingList);\n    }\n    case 30 /* LessThanToken */:\n      return containsPrecedingToken(startingToken, sourceFile, node.expression);\n    default:\n      return false;\n  }\n}\nfunction createJSSignatureHelpItems(argumentInfo, program, cancellationToken) {\n  if (argumentInfo.invocation.kind === 2 /* Contextual */) return void 0;\n  const expression = getExpressionFromInvocation(argumentInfo.invocation);\n  const name = isPropertyAccessExpression(expression) ? expression.name.text : void 0;\n  const typeChecker = program.getTypeChecker();\n  return name === void 0 ? void 0 : firstDefined(program.getSourceFiles(), (sourceFile) => firstDefined(sourceFile.getNamedDeclarations().get(name), (declaration) => {\n    const type = declaration.symbol && typeChecker.getTypeOfSymbolAtLocation(declaration.symbol, declaration);\n    const callSignatures = type && type.getCallSignatures();\n    if (callSignatures && callSignatures.length) {\n      return typeChecker.runWithCancellationToken(\n        cancellationToken,\n        (typeChecker2) => createSignatureHelpItems(\n          callSignatures,\n          callSignatures[0],\n          argumentInfo,\n          sourceFile,\n          typeChecker2,\n          /*useFullPrefix*/\n          true\n        )\n      );\n    }\n  }));\n}\nfunction containsPrecedingToken(startingToken, sourceFile, container) {\n  const pos = startingToken.getFullStart();\n  let currentParent = startingToken.parent;\n  while (currentParent) {\n    const precedingToken = findPrecedingToken(\n      pos,\n      sourceFile,\n      currentParent,\n      /*excludeJsdoc*/\n      true\n    );\n    if (precedingToken) {\n      return rangeContainsRange(container, precedingToken);\n    }\n    currentParent = currentParent.parent;\n  }\n  return Debug.fail(\"Could not find preceding token\");\n}\nfunction getArgumentInfoForCompletions(node, position, sourceFile, checker) {\n  const info = getImmediatelyContainingArgumentInfo(node, position, sourceFile, checker);\n  return !info || info.isTypeParameterList || info.invocation.kind !== 0 /* Call */ ? void 0 : { invocation: info.invocation.node, argumentCount: info.argumentCount, argumentIndex: info.argumentIndex };\n}\nfunction getArgumentOrParameterListInfo(node, position, sourceFile, checker) {\n  const info = getArgumentOrParameterListAndIndex(node, sourceFile, checker);\n  if (!info) return void 0;\n  const { list, argumentIndex } = info;\n  const argumentCount = getArgumentCount(checker, list);\n  const argumentsSpan = getApplicableSpanForArguments(list, sourceFile);\n  return { list, argumentIndex, argumentCount, argumentsSpan };\n}\nfunction getArgumentOrParameterListAndIndex(node, sourceFile, checker) {\n  if (node.kind === 30 /* LessThanToken */ || node.kind === 21 /* OpenParenToken */) {\n    return { list: getChildListThatStartsWithOpenerToken(node.parent, node, sourceFile), argumentIndex: 0 };\n  } else {\n    const list = findContainingList(node);\n    return list && { list, argumentIndex: getArgumentIndex(checker, list, node) };\n  }\n}\nfunction getImmediatelyContainingArgumentInfo(node, position, sourceFile, checker) {\n  const { parent: parent2 } = node;\n  if (isCallOrNewExpression(parent2)) {\n    const invocation = parent2;\n    const info = getArgumentOrParameterListInfo(node, position, sourceFile, checker);\n    if (!info) return void 0;\n    const { list, argumentIndex, argumentCount, argumentsSpan } = info;\n    const isTypeParameterList = !!parent2.typeArguments && parent2.typeArguments.pos === list.pos;\n    return { isTypeParameterList, invocation: { kind: 0 /* Call */, node: invocation }, argumentsSpan, argumentIndex, argumentCount };\n  } else if (isNoSubstitutionTemplateLiteral(node) && isTaggedTemplateExpression(parent2)) {\n    if (isInsideTemplateLiteral(node, position, sourceFile)) {\n      return getArgumentListInfoForTemplate(\n        parent2,\n        /*argumentIndex*/\n        0,\n        sourceFile\n      );\n    }\n    return void 0;\n  } else if (isTemplateHead(node) && parent2.parent.kind === 216 /* TaggedTemplateExpression */) {\n    const templateExpression = parent2;\n    const tagExpression = templateExpression.parent;\n    Debug.assert(templateExpression.kind === 229 /* TemplateExpression */);\n    const argumentIndex = isInsideTemplateLiteral(node, position, sourceFile) ? 0 : 1;\n    return getArgumentListInfoForTemplate(tagExpression, argumentIndex, sourceFile);\n  } else if (isTemplateSpan(parent2) && isTaggedTemplateExpression(parent2.parent.parent)) {\n    const templateSpan = parent2;\n    const tagExpression = parent2.parent.parent;\n    if (isTemplateTail(node) && !isInsideTemplateLiteral(node, position, sourceFile)) {\n      return void 0;\n    }\n    const spanIndex = templateSpan.parent.templateSpans.indexOf(templateSpan);\n    const argumentIndex = getArgumentIndexForTemplatePiece(spanIndex, node, position, sourceFile);\n    return getArgumentListInfoForTemplate(tagExpression, argumentIndex, sourceFile);\n  } else if (isJsxOpeningLikeElement(parent2)) {\n    const attributeSpanStart = parent2.attributes.pos;\n    const attributeSpanEnd = skipTrivia(\n      sourceFile.text,\n      parent2.attributes.end,\n      /*stopAfterLineBreak*/\n      false\n    );\n    return {\n      isTypeParameterList: false,\n      invocation: { kind: 0 /* Call */, node: parent2 },\n      argumentsSpan: createTextSpan(attributeSpanStart, attributeSpanEnd - attributeSpanStart),\n      argumentIndex: 0,\n      argumentCount: 1\n    };\n  } else {\n    const typeArgInfo = getPossibleTypeArgumentsInfo(node, sourceFile);\n    if (typeArgInfo) {\n      const { called, nTypeArguments } = typeArgInfo;\n      const invocation = { kind: 1 /* TypeArgs */, called };\n      const argumentsSpan = createTextSpanFromBounds(called.getStart(sourceFile), node.end);\n      return { isTypeParameterList: true, invocation, argumentsSpan, argumentIndex: nTypeArguments, argumentCount: nTypeArguments + 1 };\n    }\n    return void 0;\n  }\n}\nfunction getImmediatelyContainingArgumentOrContextualParameterInfo(node, position, sourceFile, checker) {\n  return tryGetParameterInfo(node, position, sourceFile, checker) || getImmediatelyContainingArgumentInfo(node, position, sourceFile, checker);\n}\nfunction getHighestBinary(b) {\n  return isBinaryExpression(b.parent) ? getHighestBinary(b.parent) : b;\n}\nfunction countBinaryExpressionParameters(b) {\n  return isBinaryExpression(b.left) ? countBinaryExpressionParameters(b.left) + 1 : 2;\n}\nfunction tryGetParameterInfo(startingToken, position, sourceFile, checker) {\n  const node = getAdjustedNode(startingToken);\n  if (node === void 0) return void 0;\n  const info = getContextualSignatureLocationInfo(node, sourceFile, position, checker);\n  if (info === void 0) return void 0;\n  const { contextualType, argumentIndex, argumentCount, argumentsSpan } = info;\n  const nonNullableContextualType = contextualType.getNonNullableType();\n  const symbol = nonNullableContextualType.symbol;\n  if (symbol === void 0) return void 0;\n  const signature = lastOrUndefined(nonNullableContextualType.getCallSignatures());\n  if (signature === void 0) return void 0;\n  const invocation = { kind: 2 /* Contextual */, signature, node: startingToken, symbol: chooseBetterSymbol(symbol) };\n  return { isTypeParameterList: false, invocation, argumentsSpan, argumentIndex, argumentCount };\n}\nfunction getAdjustedNode(node) {\n  switch (node.kind) {\n    case 21 /* OpenParenToken */:\n    case 28 /* CommaToken */:\n      return node;\n    default:\n      return findAncestor(node.parent, (n) => isParameter(n) ? true : isBindingElement(n) || isObjectBindingPattern(n) || isArrayBindingPattern(n) ? false : \"quit\");\n  }\n}\nfunction getContextualSignatureLocationInfo(node, sourceFile, position, checker) {\n  const { parent: parent2 } = node;\n  switch (parent2.kind) {\n    case 218 /* ParenthesizedExpression */:\n    case 175 /* MethodDeclaration */:\n    case 219 /* FunctionExpression */:\n    case 220 /* ArrowFunction */:\n      const info = getArgumentOrParameterListInfo(node, position, sourceFile, checker);\n      if (!info) return void 0;\n      const { argumentIndex, argumentCount, argumentsSpan } = info;\n      const contextualType = isMethodDeclaration(parent2) ? checker.getContextualTypeForObjectLiteralElement(parent2) : checker.getContextualType(parent2);\n      return contextualType && { contextualType, argumentIndex, argumentCount, argumentsSpan };\n    case 227 /* BinaryExpression */: {\n      const highestBinary = getHighestBinary(parent2);\n      const contextualType2 = checker.getContextualType(highestBinary);\n      const argumentIndex2 = node.kind === 21 /* OpenParenToken */ ? 0 : countBinaryExpressionParameters(parent2) - 1;\n      const argumentCount2 = countBinaryExpressionParameters(highestBinary);\n      return contextualType2 && { contextualType: contextualType2, argumentIndex: argumentIndex2, argumentCount: argumentCount2, argumentsSpan: createTextSpanFromNode(parent2) };\n    }\n    default:\n      return void 0;\n  }\n}\nfunction chooseBetterSymbol(s) {\n  return s.name === \"__type\" /* Type */ ? firstDefined(s.declarations, (d) => {\n    var _a;\n    return isFunctionTypeNode(d) ? (_a = tryCast(d.parent, canHaveSymbol)) == null ? void 0 : _a.symbol : void 0;\n  }) || s : s;\n}\nfunction getSpreadElementCount(node, checker) {\n  const spreadType = checker.getTypeAtLocation(node.expression);\n  if (checker.isTupleType(spreadType)) {\n    const { elementFlags, fixedLength } = spreadType.target;\n    if (fixedLength === 0) {\n      return 0;\n    }\n    const firstOptionalIndex = findIndex(elementFlags, (f) => !(f & 1 /* Required */));\n    return firstOptionalIndex < 0 ? fixedLength : firstOptionalIndex;\n  }\n  return 0;\n}\nfunction getArgumentIndex(checker, argumentsList, node) {\n  return getArgumentIndexOrCount(checker, argumentsList, node);\n}\nfunction getArgumentCount(checker, argumentsList) {\n  return getArgumentIndexOrCount(\n    checker,\n    argumentsList,\n    /*node*/\n    void 0\n  );\n}\nfunction getArgumentIndexOrCount(checker, argumentsList, node) {\n  const args = argumentsList.getChildren();\n  let argumentIndex = 0;\n  let skipComma = false;\n  for (const child of args) {\n    if (node && child === node) {\n      if (!skipComma && child.kind === 28 /* CommaToken */) {\n        argumentIndex++;\n      }\n      return argumentIndex;\n    }\n    if (isSpreadElement(child)) {\n      argumentIndex += getSpreadElementCount(child, checker);\n      skipComma = true;\n      continue;\n    }\n    if (child.kind !== 28 /* CommaToken */) {\n      argumentIndex++;\n      skipComma = true;\n      continue;\n    }\n    if (skipComma) {\n      skipComma = false;\n      continue;\n    }\n    argumentIndex++;\n  }\n  if (node) {\n    return argumentIndex;\n  }\n  return args.length && last(args).kind === 28 /* CommaToken */ ? argumentIndex + 1 : argumentIndex;\n}\nfunction getArgumentIndexForTemplatePiece(spanIndex, node, position, sourceFile) {\n  Debug.assert(position >= node.getStart(), \"Assumed 'position' could not occur before node.\");\n  if (isTemplateLiteralToken(node)) {\n    if (isInsideTemplateLiteral(node, position, sourceFile)) {\n      return 0;\n    }\n    return spanIndex + 2;\n  }\n  return spanIndex + 1;\n}\nfunction getArgumentListInfoForTemplate(tagExpression, argumentIndex, sourceFile) {\n  const argumentCount = isNoSubstitutionTemplateLiteral(tagExpression.template) ? 1 : tagExpression.template.templateSpans.length + 1;\n  if (argumentIndex !== 0) {\n    Debug.assertLessThan(argumentIndex, argumentCount);\n  }\n  return {\n    isTypeParameterList: false,\n    invocation: { kind: 0 /* Call */, node: tagExpression },\n    argumentsSpan: getApplicableSpanForTaggedTemplate(tagExpression, sourceFile),\n    argumentIndex,\n    argumentCount\n  };\n}\nfunction getApplicableSpanForArguments(argumentsList, sourceFile) {\n  const applicableSpanStart = argumentsList.getFullStart();\n  const applicableSpanEnd = skipTrivia(\n    sourceFile.text,\n    argumentsList.getEnd(),\n    /*stopAfterLineBreak*/\n    false\n  );\n  return createTextSpan(applicableSpanStart, applicableSpanEnd - applicableSpanStart);\n}\nfunction getApplicableSpanForTaggedTemplate(taggedTemplate, sourceFile) {\n  const template = taggedTemplate.template;\n  const applicableSpanStart = template.getStart();\n  let applicableSpanEnd = template.getEnd();\n  if (template.kind === 229 /* TemplateExpression */) {\n    const lastSpan = last(template.templateSpans);\n    if (lastSpan.literal.getFullWidth() === 0) {\n      applicableSpanEnd = skipTrivia(\n        sourceFile.text,\n        applicableSpanEnd,\n        /*stopAfterLineBreak*/\n        false\n      );\n    }\n  }\n  return createTextSpan(applicableSpanStart, applicableSpanEnd - applicableSpanStart);\n}\nfunction getContainingArgumentInfo(node, position, sourceFile, checker, isManuallyInvoked) {\n  for (let n = node; !isSourceFile(n) && (isManuallyInvoked || !isBlock(n)); n = n.parent) {\n    Debug.assert(rangeContainsRange(n.parent, n), \"Not a subspan\", () => `Child: ${Debug.formatSyntaxKind(n.kind)}, parent: ${Debug.formatSyntaxKind(n.parent.kind)}`);\n    const argumentInfo = getImmediatelyContainingArgumentOrContextualParameterInfo(n, position, sourceFile, checker);\n    if (argumentInfo) {\n      return argumentInfo;\n    }\n  }\n  return void 0;\n}\nfunction getChildListThatStartsWithOpenerToken(parent2, openerToken, sourceFile) {\n  const children = parent2.getChildren(sourceFile);\n  const indexOfOpenerToken = children.indexOf(openerToken);\n  Debug.assert(indexOfOpenerToken >= 0 && children.length > indexOfOpenerToken + 1);\n  return children[indexOfOpenerToken + 1];\n}\nfunction getExpressionFromInvocation(invocation) {\n  return invocation.kind === 0 /* Call */ ? getInvokedExpression(invocation.node) : invocation.called;\n}\nfunction getEnclosingDeclarationFromInvocation(invocation) {\n  return invocation.kind === 0 /* Call */ ? invocation.node : invocation.kind === 1 /* TypeArgs */ ? invocation.called : invocation.node;\n}\nvar signatureHelpNodeBuilderFlags = 8192 /* OmitParameterModifiers */ | 70221824 /* IgnoreErrors */ | 16384 /* UseAliasDefinedOutsideCurrentScope */;\nfunction createSignatureHelpItems(candidates, resolvedSignature, { isTypeParameterList, argumentCount, argumentsSpan: applicableSpan, invocation, argumentIndex }, sourceFile, typeChecker, useFullPrefix) {\n  var _a;\n  const enclosingDeclaration = getEnclosingDeclarationFromInvocation(invocation);\n  const callTargetSymbol = invocation.kind === 2 /* Contextual */ ? invocation.symbol : typeChecker.getSymbolAtLocation(getExpressionFromInvocation(invocation)) || useFullPrefix && ((_a = resolvedSignature.declaration) == null ? void 0 : _a.symbol);\n  const callTargetDisplayParts = callTargetSymbol ? symbolToDisplayParts(\n    typeChecker,\n    callTargetSymbol,\n    useFullPrefix ? sourceFile : void 0,\n    /*meaning*/\n    void 0\n  ) : emptyArray;\n  const items = map(candidates, (candidateSignature) => getSignatureHelpItem(candidateSignature, callTargetDisplayParts, isTypeParameterList, typeChecker, enclosingDeclaration, sourceFile));\n  let selectedItemIndex = 0;\n  let itemsSeen = 0;\n  for (let i = 0; i < items.length; i++) {\n    const item = items[i];\n    if (candidates[i] === resolvedSignature) {\n      selectedItemIndex = itemsSeen;\n      if (item.length > 1) {\n        let count = 0;\n        for (const i2 of item) {\n          if (i2.isVariadic || i2.parameters.length >= argumentCount) {\n            selectedItemIndex = itemsSeen + count;\n            break;\n          }\n          count++;\n        }\n      }\n    }\n    itemsSeen += item.length;\n  }\n  Debug.assert(selectedItemIndex !== -1);\n  const help = { items: flatMapToMutable(items, identity), applicableSpan, selectedItemIndex, argumentIndex, argumentCount };\n  const selected = help.items[selectedItemIndex];\n  if (selected.isVariadic) {\n    const firstRest = findIndex(selected.parameters, (p) => !!p.isRest);\n    if (-1 < firstRest && firstRest < selected.parameters.length - 1) {\n      help.argumentIndex = selected.parameters.length;\n    } else {\n      help.argumentIndex = Math.min(help.argumentIndex, selected.parameters.length - 1);\n    }\n  }\n  return help;\n}\nfunction createTypeHelpItems(symbol, { argumentCount, argumentsSpan: applicableSpan, invocation, argumentIndex }, sourceFile, checker) {\n  const typeParameters = checker.getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(symbol);\n  if (!typeParameters) return void 0;\n  const items = [getTypeHelpItem(symbol, typeParameters, checker, getEnclosingDeclarationFromInvocation(invocation), sourceFile)];\n  return { items, applicableSpan, selectedItemIndex: 0, argumentIndex, argumentCount };\n}\nfunction getTypeHelpItem(symbol, typeParameters, checker, enclosingDeclaration, sourceFile) {\n  const typeSymbolDisplay = symbolToDisplayParts(checker, symbol);\n  const printer = createPrinterWithRemoveComments();\n  const parameters = typeParameters.map((t) => createSignatureHelpParameterForTypeParameter(t, checker, enclosingDeclaration, sourceFile, printer));\n  const documentation = symbol.getDocumentationComment(checker);\n  const tags = symbol.getJsDocTags(checker);\n  const prefixDisplayParts = [...typeSymbolDisplay, punctuationPart(30 /* LessThanToken */)];\n  return { isVariadic: false, prefixDisplayParts, suffixDisplayParts: [punctuationPart(32 /* GreaterThanToken */)], separatorDisplayParts, parameters, documentation, tags };\n}\nvar separatorDisplayParts = [punctuationPart(28 /* CommaToken */), spacePart()];\nfunction getSignatureHelpItem(candidateSignature, callTargetDisplayParts, isTypeParameterList, checker, enclosingDeclaration, sourceFile) {\n  const infos = (isTypeParameterList ? itemInfoForTypeParameters : itemInfoForParameters)(candidateSignature, checker, enclosingDeclaration, sourceFile);\n  return map(infos, ({ isVariadic, parameters, prefix, suffix }) => {\n    const prefixDisplayParts = [...callTargetDisplayParts, ...prefix];\n    const suffixDisplayParts = [...suffix, ...returnTypeToDisplayParts(candidateSignature, enclosingDeclaration, checker)];\n    const documentation = candidateSignature.getDocumentationComment(checker);\n    const tags = candidateSignature.getJsDocTags();\n    return { isVariadic, prefixDisplayParts, suffixDisplayParts, separatorDisplayParts, parameters, documentation, tags };\n  });\n}\nfunction returnTypeToDisplayParts(candidateSignature, enclosingDeclaration, checker) {\n  return mapToDisplayParts((writer) => {\n    writer.writePunctuation(\":\");\n    writer.writeSpace(\" \");\n    const predicate = checker.getTypePredicateOfSignature(candidateSignature);\n    if (predicate) {\n      checker.writeTypePredicate(\n        predicate,\n        enclosingDeclaration,\n        /*flags*/\n        void 0,\n        writer\n      );\n    } else {\n      checker.writeType(\n        checker.getReturnTypeOfSignature(candidateSignature),\n        enclosingDeclaration,\n        /*flags*/\n        void 0,\n        writer\n      );\n    }\n  });\n}\nfunction itemInfoForTypeParameters(candidateSignature, checker, enclosingDeclaration, sourceFile) {\n  const typeParameters = (candidateSignature.target || candidateSignature).typeParameters;\n  const printer = createPrinterWithRemoveComments();\n  const parameters = (typeParameters || emptyArray).map((t) => createSignatureHelpParameterForTypeParameter(t, checker, enclosingDeclaration, sourceFile, printer));\n  const thisParameter = candidateSignature.thisParameter ? [checker.symbolToParameterDeclaration(candidateSignature.thisParameter, enclosingDeclaration, signatureHelpNodeBuilderFlags)] : [];\n  return checker.getExpandedParameters(candidateSignature).map((paramList) => {\n    const params = factory.createNodeArray([...thisParameter, ...map(paramList, (param) => checker.symbolToParameterDeclaration(param, enclosingDeclaration, signatureHelpNodeBuilderFlags))]);\n    const parameterParts = mapToDisplayParts((writer) => {\n      printer.writeList(2576 /* CallExpressionArguments */, params, sourceFile, writer);\n    });\n    return { isVariadic: false, parameters, prefix: [punctuationPart(30 /* LessThanToken */)], suffix: [punctuationPart(32 /* GreaterThanToken */), ...parameterParts] };\n  });\n}\nfunction itemInfoForParameters(candidateSignature, checker, enclosingDeclaration, sourceFile) {\n  const printer = createPrinterWithRemoveComments();\n  const typeParameterParts = mapToDisplayParts((writer) => {\n    if (candidateSignature.typeParameters && candidateSignature.typeParameters.length) {\n      const args = factory.createNodeArray(candidateSignature.typeParameters.map((p) => checker.typeParameterToDeclaration(p, enclosingDeclaration, signatureHelpNodeBuilderFlags)));\n      printer.writeList(53776 /* TypeParameters */, args, sourceFile, writer);\n    }\n  });\n  const lists = checker.getExpandedParameters(candidateSignature);\n  const isVariadic = !checker.hasEffectiveRestParameter(candidateSignature) ? (_) => false : lists.length === 1 ? (_) => true : (pList) => {\n    var _a;\n    return !!(pList.length && ((_a = tryCast(pList[pList.length - 1], isTransientSymbol)) == null ? void 0 : _a.links.checkFlags) & 32768 /* RestParameter */);\n  };\n  return lists.map((parameterList) => ({\n    isVariadic: isVariadic(parameterList),\n    parameters: parameterList.map((p) => createSignatureHelpParameterForParameter(p, checker, enclosingDeclaration, sourceFile, printer)),\n    prefix: [...typeParameterParts, punctuationPart(21 /* OpenParenToken */)],\n    suffix: [punctuationPart(22 /* CloseParenToken */)]\n  }));\n}\nfunction createSignatureHelpParameterForParameter(parameter, checker, enclosingDeclaration, sourceFile, printer) {\n  const displayParts = mapToDisplayParts((writer) => {\n    const param = checker.symbolToParameterDeclaration(parameter, enclosingDeclaration, signatureHelpNodeBuilderFlags);\n    printer.writeNode(4 /* Unspecified */, param, sourceFile, writer);\n  });\n  const isOptional = checker.isOptionalParameter(parameter.valueDeclaration);\n  const isRest = isTransientSymbol(parameter) && !!(parameter.links.checkFlags & 32768 /* RestParameter */);\n  return { name: parameter.name, documentation: parameter.getDocumentationComment(checker), displayParts, isOptional, isRest };\n}\nfunction createSignatureHelpParameterForTypeParameter(typeParameter, checker, enclosingDeclaration, sourceFile, printer) {\n  const displayParts = mapToDisplayParts((writer) => {\n    const param = checker.typeParameterToDeclaration(typeParameter, enclosingDeclaration, signatureHelpNodeBuilderFlags);\n    printer.writeNode(4 /* Unspecified */, param, sourceFile, writer);\n  });\n  return { name: typeParameter.symbol.name, documentation: typeParameter.symbol.getDocumentationComment(checker), displayParts, isOptional: false, isRest: false };\n}\n\n// src/services/_namespaces/ts.SmartSelectionRange.ts\nvar ts_SmartSelectionRange_exports = {};\n__export(ts_SmartSelectionRange_exports, {\n  getSmartSelectionRange: () => getSmartSelectionRange\n});\n\n// src/services/smartSelection.ts\nfunction getSmartSelectionRange(pos, sourceFile) {\n  var _a, _b;\n  let selectionRange = {\n    textSpan: createTextSpanFromBounds(sourceFile.getFullStart(), sourceFile.getEnd())\n  };\n  let parentNode = sourceFile;\n  outer:\n    while (true) {\n      const children = getSelectionChildren(parentNode);\n      if (!children.length) break;\n      for (let i = 0; i < children.length; i++) {\n        const prevNode = children[i - 1];\n        const node = children[i];\n        const nextNode = children[i + 1];\n        if (getTokenPosOfNode(\n          node,\n          sourceFile,\n          /*includeJsDoc*/\n          true\n        ) > pos) {\n          break outer;\n        }\n        const comment = singleOrUndefined(getTrailingCommentRanges(sourceFile.text, node.end));\n        if (comment && comment.kind === 2 /* SingleLineCommentTrivia */) {\n          pushSelectionCommentRange(comment.pos, comment.end);\n        }\n        if (positionShouldSnapToNode(sourceFile, pos, node)) {\n          if (isFunctionBody(node) && isFunctionLikeDeclaration(parentNode) && !positionsAreOnSameLine(node.getStart(sourceFile), node.getEnd(), sourceFile)) {\n            pushSelectionRange(node.getStart(sourceFile), node.getEnd());\n          }\n          if (isBlock(node) || isTemplateSpan(node) || isTemplateHead(node) || isTemplateTail(node) || prevNode && isTemplateHead(prevNode) || isVariableDeclarationList(node) && isVariableStatement(parentNode) || isSyntaxList(node) && isVariableDeclarationList(parentNode) || isVariableDeclaration(node) && isSyntaxList(parentNode) && children.length === 1 || isJSDocTypeExpression(node) || isJSDocSignature(node) || isJSDocTypeLiteral(node)) {\n            parentNode = node;\n            break;\n          }\n          if (isTemplateSpan(parentNode) && nextNode && isTemplateMiddleOrTemplateTail(nextNode)) {\n            const start2 = node.getFullStart() - \"${\".length;\n            const end2 = nextNode.getStart() + \"}\".length;\n            pushSelectionRange(start2, end2);\n          }\n          const isBetweenMultiLineBookends = isSyntaxList(node) && isListOpener(prevNode) && isListCloser(nextNode) && !positionsAreOnSameLine(prevNode.getStart(), nextNode.getStart(), sourceFile);\n          let start = isBetweenMultiLineBookends ? prevNode.getEnd() : node.getStart();\n          const end = isBetweenMultiLineBookends ? nextNode.getStart() : getEndPos(sourceFile, node);\n          if (hasJSDocNodes(node) && ((_a = node.jsDoc) == null ? void 0 : _a.length)) {\n            pushSelectionRange(first(node.jsDoc).getStart(), end);\n          }\n          if (isSyntaxList(node)) {\n            const firstChild = node.getChildren()[0];\n            if (firstChild && hasJSDocNodes(firstChild) && ((_b = firstChild.jsDoc) == null ? void 0 : _b.length) && firstChild.getStart() !== node.pos) {\n              start = Math.min(start, first(firstChild.jsDoc).getStart());\n            }\n          }\n          pushSelectionRange(start, end);\n          if (isStringLiteral(node) || isTemplateLiteral(node)) {\n            pushSelectionRange(start + 1, end - 1);\n          }\n          parentNode = node;\n          break;\n        }\n        if (i === children.length - 1) {\n          break outer;\n        }\n      }\n    }\n  return selectionRange;\n  function pushSelectionRange(start, end) {\n    if (start !== end) {\n      const textSpan = createTextSpanFromBounds(start, end);\n      if (!selectionRange || // Skip ranges that are identical to the parent\n      !textSpansEqual(textSpan, selectionRange.textSpan) && // Skip ranges that don't contain the original position\n      textSpanIntersectsWithPosition(textSpan, pos)) {\n        selectionRange = { textSpan, ...selectionRange && { parent: selectionRange } };\n      }\n    }\n  }\n  function pushSelectionCommentRange(start, end) {\n    pushSelectionRange(start, end);\n    let pos2 = start;\n    while (sourceFile.text.charCodeAt(pos2) === 47 /* slash */) {\n      pos2++;\n    }\n    pushSelectionRange(pos2, end);\n  }\n}\nfunction positionShouldSnapToNode(sourceFile, pos, node) {\n  Debug.assert(node.pos <= pos);\n  if (pos < node.end) {\n    return true;\n  }\n  const nodeEnd = node.getEnd();\n  if (nodeEnd === pos) {\n    return getTouchingPropertyName(sourceFile, pos).pos < node.end;\n  }\n  return false;\n}\nvar isImport2 = or(isImportDeclaration, isImportEqualsDeclaration);\nfunction getSelectionChildren(node) {\n  var _a;\n  if (isSourceFile(node)) {\n    return groupChildren(node.getChildAt(0).getChildren(), isImport2);\n  }\n  if (isMappedTypeNode(node)) {\n    const [openBraceToken, ...children] = node.getChildren();\n    const closeBraceToken = Debug.checkDefined(children.pop());\n    Debug.assertEqual(openBraceToken.kind, 19 /* OpenBraceToken */);\n    Debug.assertEqual(closeBraceToken.kind, 20 /* CloseBraceToken */);\n    const groupedWithPlusMinusTokens = groupChildren(children, (child) => child === node.readonlyToken || child.kind === 148 /* ReadonlyKeyword */ || child === node.questionToken || child.kind === 58 /* QuestionToken */);\n    const groupedWithBrackets = groupChildren(groupedWithPlusMinusTokens, ({ kind }) => kind === 23 /* OpenBracketToken */ || kind === 169 /* TypeParameter */ || kind === 24 /* CloseBracketToken */);\n    return [\n      openBraceToken,\n      // Pivot on `:`\n      createSyntaxList2(splitChildren(groupedWithBrackets, ({ kind }) => kind === 59 /* ColonToken */)),\n      closeBraceToken\n    ];\n  }\n  if (isPropertySignature(node)) {\n    const children = groupChildren(node.getChildren(), (child) => child === node.name || contains(node.modifiers, child));\n    const firstJSDocChild = ((_a = children[0]) == null ? void 0 : _a.kind) === 321 /* JSDoc */ ? children[0] : void 0;\n    const withJSDocSeparated = firstJSDocChild ? children.slice(1) : children;\n    const splittedChildren = splitChildren(withJSDocSeparated, ({ kind }) => kind === 59 /* ColonToken */);\n    return firstJSDocChild ? [firstJSDocChild, createSyntaxList2(splittedChildren)] : splittedChildren;\n  }\n  if (isParameter(node)) {\n    const groupedDotDotDotAndName = groupChildren(node.getChildren(), (child) => child === node.dotDotDotToken || child === node.name);\n    const groupedWithQuestionToken = groupChildren(groupedDotDotDotAndName, (child) => child === groupedDotDotDotAndName[0] || child === node.questionToken);\n    return splitChildren(groupedWithQuestionToken, ({ kind }) => kind === 64 /* EqualsToken */);\n  }\n  if (isBindingElement(node)) {\n    return splitChildren(node.getChildren(), ({ kind }) => kind === 64 /* EqualsToken */);\n  }\n  return node.getChildren();\n}\nfunction groupChildren(children, groupOn) {\n  const result = [];\n  let group2;\n  for (const child of children) {\n    if (groupOn(child)) {\n      group2 = group2 || [];\n      group2.push(child);\n    } else {\n      if (group2) {\n        result.push(createSyntaxList2(group2));\n        group2 = void 0;\n      }\n      result.push(child);\n    }\n  }\n  if (group2) {\n    result.push(createSyntaxList2(group2));\n  }\n  return result;\n}\nfunction splitChildren(children, pivotOn, separateTrailingSemicolon = true) {\n  if (children.length < 2) {\n    return children;\n  }\n  const splitTokenIndex = findIndex(children, pivotOn);\n  if (splitTokenIndex === -1) {\n    return children;\n  }\n  const leftChildren = children.slice(0, splitTokenIndex);\n  const splitToken = children[splitTokenIndex];\n  const lastToken = last(children);\n  const separateLastToken = separateTrailingSemicolon && lastToken.kind === 27 /* SemicolonToken */;\n  const rightChildren = children.slice(splitTokenIndex + 1, separateLastToken ? children.length - 1 : void 0);\n  const result = compact([\n    leftChildren.length ? createSyntaxList2(leftChildren) : void 0,\n    splitToken,\n    rightChildren.length ? createSyntaxList2(rightChildren) : void 0\n  ]);\n  return separateLastToken ? result.concat(lastToken) : result;\n}\nfunction createSyntaxList2(children) {\n  Debug.assertGreaterThanOrEqual(children.length, 1);\n  return setTextRangePosEnd(parseNodeFactory.createSyntaxList(children), children[0].pos, last(children).end);\n}\nfunction isListOpener(token) {\n  const kind = token && token.kind;\n  return kind === 19 /* OpenBraceToken */ || kind === 23 /* OpenBracketToken */ || kind === 21 /* OpenParenToken */ || kind === 287 /* JsxOpeningElement */;\n}\nfunction isListCloser(token) {\n  const kind = token && token.kind;\n  return kind === 20 /* CloseBraceToken */ || kind === 24 /* CloseBracketToken */ || kind === 22 /* CloseParenToken */ || kind === 288 /* JsxClosingElement */;\n}\nfunction getEndPos(sourceFile, node) {\n  switch (node.kind) {\n    case 342 /* JSDocParameterTag */:\n    case 339 /* JSDocCallbackTag */:\n    case 349 /* JSDocPropertyTag */:\n    case 347 /* JSDocTypedefTag */:\n    case 344 /* JSDocThisTag */:\n      return sourceFile.getLineEndOfPosition(node.getStart());\n    default:\n      return node.getEnd();\n  }\n}\n\n// src/services/_namespaces/ts.SymbolDisplay.ts\nvar ts_SymbolDisplay_exports = {};\n__export(ts_SymbolDisplay_exports, {\n  getSymbolDisplayPartsDocumentationAndSymbolKind: () => getSymbolDisplayPartsDocumentationAndSymbolKind,\n  getSymbolKind: () => getSymbolKind,\n  getSymbolModifiers: () => getSymbolModifiers\n});\n\n// src/services/symbolDisplay.ts\nvar symbolDisplayNodeBuilderFlags = 8192 /* OmitParameterModifiers */ | 70221824 /* IgnoreErrors */ | 16384 /* UseAliasDefinedOutsideCurrentScope */;\nfunction getSymbolKind(typeChecker, symbol, location) {\n  const result = getSymbolKindOfConstructorPropertyMethodAccessorFunctionOrVar(typeChecker, symbol, location);\n  if (result !== \"\" /* unknown */) {\n    return result;\n  }\n  const flags = getCombinedLocalAndExportSymbolFlags(symbol);\n  if (flags & 32 /* Class */) {\n    return getDeclarationOfKind(symbol, 232 /* ClassExpression */) ? \"local class\" /* localClassElement */ : \"class\" /* classElement */;\n  }\n  if (flags & 384 /* Enum */) return \"enum\" /* enumElement */;\n  if (flags & 524288 /* TypeAlias */) return \"type\" /* typeElement */;\n  if (flags & 64 /* Interface */) return \"interface\" /* interfaceElement */;\n  if (flags & 262144 /* TypeParameter */) return \"type parameter\" /* typeParameterElement */;\n  if (flags & 8 /* EnumMember */) return \"enum member\" /* enumMemberElement */;\n  if (flags & 2097152 /* Alias */) return \"alias\" /* alias */;\n  if (flags & 1536 /* Module */) return \"module\" /* moduleElement */;\n  return result;\n}\nfunction getSymbolKindOfConstructorPropertyMethodAccessorFunctionOrVar(typeChecker, symbol, location) {\n  const roots = typeChecker.getRootSymbols(symbol);\n  if (roots.length === 1 && first(roots).flags & 8192 /* Method */ && typeChecker.getTypeOfSymbolAtLocation(symbol, location).getNonNullableType().getCallSignatures().length !== 0) {\n    return \"method\" /* memberFunctionElement */;\n  }\n  if (typeChecker.isUndefinedSymbol(symbol)) {\n    return \"var\" /* variableElement */;\n  }\n  if (typeChecker.isArgumentsSymbol(symbol)) {\n    return \"local var\" /* localVariableElement */;\n  }\n  if (location.kind === 110 /* ThisKeyword */ && isExpression(location) || isThisInTypeQuery(location)) {\n    return \"parameter\" /* parameterElement */;\n  }\n  const flags = getCombinedLocalAndExportSymbolFlags(symbol);\n  if (flags & 3 /* Variable */) {\n    if (isFirstDeclarationOfSymbolParameter(symbol)) {\n      return \"parameter\" /* parameterElement */;\n    } else if (symbol.valueDeclaration && isVarConst(symbol.valueDeclaration)) {\n      return \"const\" /* constElement */;\n    } else if (symbol.valueDeclaration && isVarUsing(symbol.valueDeclaration)) {\n      return \"using\" /* variableUsingElement */;\n    } else if (symbol.valueDeclaration && isVarAwaitUsing(symbol.valueDeclaration)) {\n      return \"await using\" /* variableAwaitUsingElement */;\n    } else if (forEach(symbol.declarations, isLet)) {\n      return \"let\" /* letElement */;\n    }\n    return isLocalVariableOrFunction(symbol) ? \"local var\" /* localVariableElement */ : \"var\" /* variableElement */;\n  }\n  if (flags & 16 /* Function */) return isLocalVariableOrFunction(symbol) ? \"local function\" /* localFunctionElement */ : \"function\" /* functionElement */;\n  if (flags & 32768 /* GetAccessor */) return \"getter\" /* memberGetAccessorElement */;\n  if (flags & 65536 /* SetAccessor */) return \"setter\" /* memberSetAccessorElement */;\n  if (flags & 8192 /* Method */) return \"method\" /* memberFunctionElement */;\n  if (flags & 16384 /* Constructor */) return \"constructor\" /* constructorImplementationElement */;\n  if (flags & 131072 /* Signature */) return \"index\" /* indexSignatureElement */;\n  if (flags & 4 /* Property */) {\n    if (flags & 33554432 /* Transient */ && symbol.links.checkFlags & 6 /* Synthetic */) {\n      const unionPropertyKind = forEach(typeChecker.getRootSymbols(symbol), (rootSymbol) => {\n        const rootSymbolFlags = rootSymbol.getFlags();\n        if (rootSymbolFlags & (98308 /* PropertyOrAccessor */ | 3 /* Variable */)) {\n          return \"property\" /* memberVariableElement */;\n        }\n      });\n      if (!unionPropertyKind) {\n        const typeOfUnionProperty = typeChecker.getTypeOfSymbolAtLocation(symbol, location);\n        if (typeOfUnionProperty.getCallSignatures().length) {\n          return \"method\" /* memberFunctionElement */;\n        }\n        return \"property\" /* memberVariableElement */;\n      }\n      return unionPropertyKind;\n    }\n    return \"property\" /* memberVariableElement */;\n  }\n  return \"\" /* unknown */;\n}\nfunction getNormalizedSymbolModifiers(symbol) {\n  if (symbol.declarations && symbol.declarations.length) {\n    const [declaration, ...declarations] = symbol.declarations;\n    const excludeFlags = length(declarations) && isDeprecatedDeclaration(declaration) && some(declarations, (d) => !isDeprecatedDeclaration(d)) ? 65536 /* Deprecated */ : 0 /* None */;\n    const modifiers = getNodeModifiers(declaration, excludeFlags);\n    if (modifiers) {\n      return modifiers.split(\",\");\n    }\n  }\n  return [];\n}\nfunction getSymbolModifiers(typeChecker, symbol) {\n  if (!symbol) {\n    return \"\" /* none */;\n  }\n  const modifiers = new Set(getNormalizedSymbolModifiers(symbol));\n  if (symbol.flags & 2097152 /* Alias */) {\n    const resolvedSymbol = typeChecker.getAliasedSymbol(symbol);\n    if (resolvedSymbol !== symbol) {\n      forEach(getNormalizedSymbolModifiers(resolvedSymbol), (modifier) => {\n        modifiers.add(modifier);\n      });\n    }\n  }\n  if (symbol.flags & 16777216 /* Optional */) {\n    modifiers.add(\"optional\" /* optionalModifier */);\n  }\n  return modifiers.size > 0 ? arrayFrom(modifiers.values()).join(\",\") : \"\" /* none */;\n}\nfunction getSymbolDisplayPartsDocumentationAndSymbolKindWorker(typeChecker, symbol, sourceFile, enclosingDeclaration, location, type, semanticMeaning, alias, maximumLength, verbosityLevel) {\n  var _a;\n  const displayParts = [];\n  let documentation = [];\n  let tags = [];\n  const symbolFlags = getCombinedLocalAndExportSymbolFlags(symbol);\n  let symbolKind = semanticMeaning & 1 /* Value */ ? getSymbolKindOfConstructorPropertyMethodAccessorFunctionOrVar(typeChecker, symbol, location) : \"\" /* unknown */;\n  let hasAddedSymbolInfo = false;\n  const isThisExpression = location.kind === 110 /* ThisKeyword */ && isInExpressionContext(location) || isThisInTypeQuery(location);\n  let documentationFromAlias;\n  let tagsFromAlias;\n  let hasMultipleSignatures = false;\n  const typeWriterOut = { canIncreaseExpansionDepth: false, truncated: false };\n  let symbolWasExpanded = false;\n  if (location.kind === 110 /* ThisKeyword */ && !isThisExpression) {\n    return { displayParts: [keywordPart(110 /* ThisKeyword */)], documentation: [], symbolKind: \"primitive type\" /* primitiveType */, tags: void 0 };\n  }\n  if (symbolKind !== \"\" /* unknown */ || symbolFlags & 32 /* Class */ || symbolFlags & 2097152 /* Alias */) {\n    if (symbolKind === \"getter\" /* memberGetAccessorElement */ || symbolKind === \"setter\" /* memberSetAccessorElement */) {\n      const declaration = find(\n        symbol.declarations,\n        (declaration2) => declaration2.name === location && declaration2.kind !== 212 /* PropertyAccessExpression */\n      );\n      if (declaration) {\n        switch (declaration.kind) {\n          case 178 /* GetAccessor */:\n            symbolKind = \"getter\" /* memberGetAccessorElement */;\n            break;\n          case 179 /* SetAccessor */:\n            symbolKind = \"setter\" /* memberSetAccessorElement */;\n            break;\n          case 173 /* PropertyDeclaration */:\n            symbolKind = \"accessor\" /* memberAccessorVariableElement */;\n            break;\n          default:\n            Debug.assertNever(declaration);\n        }\n      } else {\n        symbolKind = \"property\" /* memberVariableElement */;\n      }\n    }\n    let signature;\n    type ?? (type = isThisExpression ? typeChecker.getTypeAtLocation(location) : typeChecker.getTypeOfSymbolAtLocation(symbol, location));\n    if (location.parent && location.parent.kind === 212 /* PropertyAccessExpression */) {\n      const right = location.parent.name;\n      if (right === location || right && right.getFullWidth() === 0) {\n        location = location.parent;\n      }\n    }\n    let callExpressionLike;\n    if (isCallOrNewExpression(location)) {\n      callExpressionLike = location;\n    } else if (isCallExpressionTarget(location) || isNewExpressionTarget(location)) {\n      callExpressionLike = location.parent;\n    } else if (location.parent && (isJsxOpeningLikeElement(location.parent) || isTaggedTemplateExpression(location.parent)) && isFunctionLike(symbol.valueDeclaration)) {\n      callExpressionLike = location.parent;\n    }\n    if (callExpressionLike) {\n      signature = typeChecker.getResolvedSignature(callExpressionLike);\n      const useConstructSignatures = callExpressionLike.kind === 215 /* NewExpression */ || isCallExpression(callExpressionLike) && callExpressionLike.expression.kind === 108 /* SuperKeyword */;\n      const allSignatures = useConstructSignatures ? type.getConstructSignatures() : type.getCallSignatures();\n      if (signature && !contains(allSignatures, signature.target) && !contains(allSignatures, signature)) {\n        signature = allSignatures.length ? allSignatures[0] : void 0;\n      }\n      if (signature) {\n        if (useConstructSignatures && symbolFlags & 32 /* Class */) {\n          symbolKind = \"constructor\" /* constructorImplementationElement */;\n          addPrefixForAnyFunctionOrVar(type.symbol, symbolKind);\n        } else if (symbolFlags & 2097152 /* Alias */) {\n          symbolKind = \"alias\" /* alias */;\n          pushSymbolKind(symbolKind);\n          displayParts.push(spacePart());\n          if (useConstructSignatures) {\n            if (signature.flags & 4 /* Abstract */) {\n              displayParts.push(keywordPart(128 /* AbstractKeyword */));\n              displayParts.push(spacePart());\n            }\n            displayParts.push(keywordPart(105 /* NewKeyword */));\n            displayParts.push(spacePart());\n          }\n          addFullSymbolName(symbol);\n        } else {\n          addPrefixForAnyFunctionOrVar(symbol, symbolKind);\n        }\n        switch (symbolKind) {\n          case \"JSX attribute\" /* jsxAttribute */:\n          case \"property\" /* memberVariableElement */:\n          case \"var\" /* variableElement */:\n          case \"const\" /* constElement */:\n          case \"let\" /* letElement */:\n          case \"parameter\" /* parameterElement */:\n          case \"local var\" /* localVariableElement */:\n            displayParts.push(punctuationPart(59 /* ColonToken */));\n            displayParts.push(spacePart());\n            if (!(getObjectFlags(type) & 16 /* Anonymous */) && type.symbol) {\n              addRange(displayParts, symbolToDisplayParts(\n                typeChecker,\n                type.symbol,\n                enclosingDeclaration,\n                /*meaning*/\n                void 0,\n                4 /* AllowAnyNodeKind */ | 1 /* WriteTypeParametersOrArguments */\n              ));\n              displayParts.push(lineBreakPart());\n            }\n            if (useConstructSignatures) {\n              if (signature.flags & 4 /* Abstract */) {\n                displayParts.push(keywordPart(128 /* AbstractKeyword */));\n                displayParts.push(spacePart());\n              }\n              displayParts.push(keywordPart(105 /* NewKeyword */));\n              displayParts.push(spacePart());\n            }\n            addSignatureDisplayParts(signature, allSignatures, 262144 /* WriteArrowStyleSignature */);\n            break;\n          default:\n            addSignatureDisplayParts(signature, allSignatures);\n        }\n        hasAddedSymbolInfo = true;\n        hasMultipleSignatures = allSignatures.length > 1;\n      }\n    } else if (isNameOfFunctionDeclaration(location) && !(symbolFlags & 98304 /* Accessor */) || // name of function declaration\n    location.kind === 137 /* ConstructorKeyword */ && location.parent.kind === 177 /* Constructor */) {\n      const functionDeclaration = location.parent;\n      const locationIsSymbolDeclaration = symbol.declarations && find(symbol.declarations, (declaration) => declaration === (location.kind === 137 /* ConstructorKeyword */ ? functionDeclaration.parent : functionDeclaration));\n      if (locationIsSymbolDeclaration) {\n        const allSignatures = functionDeclaration.kind === 177 /* Constructor */ ? type.getNonNullableType().getConstructSignatures() : type.getNonNullableType().getCallSignatures();\n        if (!typeChecker.isImplementationOfOverload(functionDeclaration)) {\n          signature = typeChecker.getSignatureFromDeclaration(functionDeclaration);\n        } else {\n          signature = allSignatures[0];\n        }\n        if (functionDeclaration.kind === 177 /* Constructor */) {\n          symbolKind = \"constructor\" /* constructorImplementationElement */;\n          addPrefixForAnyFunctionOrVar(type.symbol, symbolKind);\n        } else {\n          addPrefixForAnyFunctionOrVar(\n            functionDeclaration.kind === 180 /* CallSignature */ && !(type.symbol.flags & 2048 /* TypeLiteral */ || type.symbol.flags & 4096 /* ObjectLiteral */) ? type.symbol : symbol,\n            symbolKind\n          );\n        }\n        if (signature) {\n          addSignatureDisplayParts(signature, allSignatures);\n        }\n        hasAddedSymbolInfo = true;\n        hasMultipleSignatures = allSignatures.length > 1;\n      }\n    }\n  }\n  if (symbolFlags & 32 /* Class */ && !hasAddedSymbolInfo && !isThisExpression) {\n    addAliasPrefixIfNecessary();\n    const classExpression = getDeclarationOfKind(symbol, 232 /* ClassExpression */);\n    if (classExpression) {\n      pushSymbolKind(\"local class\" /* localClassElement */);\n      displayParts.push(spacePart());\n    }\n    if (!tryExpandSymbol(symbol, semanticMeaning)) {\n      if (!classExpression) {\n        displayParts.push(keywordPart(86 /* ClassKeyword */));\n        displayParts.push(spacePart());\n      }\n      addFullSymbolName(symbol);\n      writeTypeParametersOfSymbol(symbol, sourceFile);\n    }\n  }\n  if (symbolFlags & 64 /* Interface */ && semanticMeaning & 2 /* Type */) {\n    prefixNextMeaning();\n    if (!tryExpandSymbol(symbol, semanticMeaning)) {\n      displayParts.push(keywordPart(120 /* InterfaceKeyword */));\n      displayParts.push(spacePart());\n      addFullSymbolName(symbol);\n      writeTypeParametersOfSymbol(symbol, sourceFile);\n    }\n  }\n  if (symbolFlags & 524288 /* TypeAlias */ && semanticMeaning & 2 /* Type */) {\n    prefixNextMeaning();\n    displayParts.push(keywordPart(156 /* TypeKeyword */));\n    displayParts.push(spacePart());\n    addFullSymbolName(symbol);\n    writeTypeParametersOfSymbol(symbol, sourceFile);\n    displayParts.push(spacePart());\n    displayParts.push(operatorPart(64 /* EqualsToken */));\n    displayParts.push(spacePart());\n    addRange(\n      displayParts,\n      typeToDisplayParts(\n        typeChecker,\n        location.parent && isConstTypeReference(location.parent) ? typeChecker.getTypeAtLocation(location.parent) : typeChecker.getDeclaredTypeOfSymbol(symbol),\n        enclosingDeclaration,\n        8388608 /* InTypeAlias */,\n        maximumLength,\n        verbosityLevel,\n        typeWriterOut\n      )\n    );\n  }\n  if (symbolFlags & 384 /* Enum */) {\n    prefixNextMeaning();\n    if (!tryExpandSymbol(symbol, semanticMeaning)) {\n      if (some(symbol.declarations, (d) => isEnumDeclaration(d) && isEnumConst(d))) {\n        displayParts.push(keywordPart(87 /* ConstKeyword */));\n        displayParts.push(spacePart());\n      }\n      displayParts.push(keywordPart(94 /* EnumKeyword */));\n      displayParts.push(spacePart());\n      addFullSymbolName(\n        symbol,\n        /*enclosingDeclaration*/\n        void 0\n      );\n    }\n  }\n  if (symbolFlags & 1536 /* Module */ && !isThisExpression) {\n    prefixNextMeaning();\n    if (!tryExpandSymbol(symbol, semanticMeaning)) {\n      const declaration = getDeclarationOfKind(symbol, 268 /* ModuleDeclaration */);\n      const isNamespace = declaration && declaration.name && declaration.name.kind === 80 /* Identifier */;\n      displayParts.push(keywordPart(isNamespace ? 145 /* NamespaceKeyword */ : 144 /* ModuleKeyword */));\n      displayParts.push(spacePart());\n      addFullSymbolName(symbol);\n    }\n  }\n  if (symbolFlags & 262144 /* TypeParameter */ && semanticMeaning & 2 /* Type */) {\n    prefixNextMeaning();\n    displayParts.push(punctuationPart(21 /* OpenParenToken */));\n    displayParts.push(textPart(\"type parameter\"));\n    displayParts.push(punctuationPart(22 /* CloseParenToken */));\n    displayParts.push(spacePart());\n    addFullSymbolName(symbol);\n    if (symbol.parent) {\n      addInPrefix();\n      addFullSymbolName(symbol.parent, enclosingDeclaration);\n      writeTypeParametersOfSymbol(symbol.parent, enclosingDeclaration);\n    } else {\n      const decl = getDeclarationOfKind(symbol, 169 /* TypeParameter */);\n      if (decl === void 0) return Debug.fail();\n      const declaration = decl.parent;\n      if (declaration) {\n        if (isFunctionLike(declaration)) {\n          addInPrefix();\n          const signature = typeChecker.getSignatureFromDeclaration(declaration);\n          if (declaration.kind === 181 /* ConstructSignature */) {\n            displayParts.push(keywordPart(105 /* NewKeyword */));\n            displayParts.push(spacePart());\n          } else if (declaration.kind !== 180 /* CallSignature */ && declaration.name) {\n            addFullSymbolName(declaration.symbol);\n          }\n          addRange(displayParts, signatureToDisplayParts(typeChecker, signature, sourceFile, 32 /* WriteTypeArgumentsOfSignature */));\n        } else if (isTypeAliasDeclaration(declaration)) {\n          addInPrefix();\n          displayParts.push(keywordPart(156 /* TypeKeyword */));\n          displayParts.push(spacePart());\n          addFullSymbolName(declaration.symbol);\n          writeTypeParametersOfSymbol(declaration.symbol, sourceFile);\n        }\n      }\n    }\n  }\n  if (symbolFlags & 8 /* EnumMember */) {\n    symbolKind = \"enum member\" /* enumMemberElement */;\n    addPrefixForAnyFunctionOrVar(symbol, \"enum member\");\n    const declaration = (_a = symbol.declarations) == null ? void 0 : _a[0];\n    if ((declaration == null ? void 0 : declaration.kind) === 307 /* EnumMember */) {\n      const constantValue = typeChecker.getConstantValue(declaration);\n      if (constantValue !== void 0) {\n        displayParts.push(spacePart());\n        displayParts.push(operatorPart(64 /* EqualsToken */));\n        displayParts.push(spacePart());\n        displayParts.push(displayPart(getTextOfConstantValue(constantValue), typeof constantValue === \"number\" ? 7 /* numericLiteral */ : 8 /* stringLiteral */));\n      }\n    }\n  }\n  if (symbol.flags & 2097152 /* Alias */) {\n    prefixNextMeaning();\n    if (!hasAddedSymbolInfo || documentation.length === 0 && tags.length === 0) {\n      const resolvedSymbol = typeChecker.getAliasedSymbol(symbol);\n      if (resolvedSymbol !== symbol && resolvedSymbol.declarations && resolvedSymbol.declarations.length > 0) {\n        const resolvedNode = resolvedSymbol.declarations[0];\n        const declarationName = getNameOfDeclaration(resolvedNode);\n        if (declarationName && !hasAddedSymbolInfo) {\n          const isExternalModuleDeclaration = isModuleWithStringLiteralName(resolvedNode) && hasSyntacticModifier(resolvedNode, 128 /* Ambient */);\n          const shouldUseAliasName = symbol.name !== \"default\" && !isExternalModuleDeclaration;\n          const resolvedInfo = getSymbolDisplayPartsDocumentationAndSymbolKindWorker(\n            typeChecker,\n            resolvedSymbol,\n            getSourceFileOfNode(resolvedNode),\n            enclosingDeclaration,\n            declarationName,\n            type,\n            semanticMeaning,\n            shouldUseAliasName ? symbol : resolvedSymbol,\n            maximumLength,\n            verbosityLevel\n          );\n          displayParts.push(...resolvedInfo.displayParts);\n          displayParts.push(lineBreakPart());\n          documentationFromAlias = resolvedInfo.documentation;\n          tagsFromAlias = resolvedInfo.tags;\n          if (typeWriterOut && resolvedInfo.canIncreaseVerbosityLevel) {\n            typeWriterOut.canIncreaseExpansionDepth = true;\n          }\n        } else {\n          documentationFromAlias = resolvedSymbol.getContextualDocumentationComment(resolvedNode, typeChecker);\n          tagsFromAlias = resolvedSymbol.getJsDocTags(typeChecker);\n        }\n      }\n    }\n    if (symbol.declarations) {\n      switch (symbol.declarations[0].kind) {\n        case 271 /* NamespaceExportDeclaration */:\n          displayParts.push(keywordPart(95 /* ExportKeyword */));\n          displayParts.push(spacePart());\n          displayParts.push(keywordPart(145 /* NamespaceKeyword */));\n          break;\n        case 278 /* ExportAssignment */:\n          displayParts.push(keywordPart(95 /* ExportKeyword */));\n          displayParts.push(spacePart());\n          displayParts.push(keywordPart(symbol.declarations[0].isExportEquals ? 64 /* EqualsToken */ : 90 /* DefaultKeyword */));\n          break;\n        case 282 /* ExportSpecifier */:\n          displayParts.push(keywordPart(95 /* ExportKeyword */));\n          break;\n        default:\n          displayParts.push(keywordPart(102 /* ImportKeyword */));\n      }\n    }\n    displayParts.push(spacePart());\n    addFullSymbolName(symbol);\n    forEach(symbol.declarations, (declaration) => {\n      if (declaration.kind === 272 /* ImportEqualsDeclaration */) {\n        const importEqualsDeclaration = declaration;\n        if (isExternalModuleImportEqualsDeclaration(importEqualsDeclaration)) {\n          displayParts.push(spacePart());\n          displayParts.push(operatorPart(64 /* EqualsToken */));\n          displayParts.push(spacePart());\n          displayParts.push(keywordPart(149 /* RequireKeyword */));\n          displayParts.push(punctuationPart(21 /* OpenParenToken */));\n          displayParts.push(displayPart(getTextOfNode(getExternalModuleImportEqualsDeclarationExpression(importEqualsDeclaration)), 8 /* stringLiteral */));\n          displayParts.push(punctuationPart(22 /* CloseParenToken */));\n        } else {\n          const internalAliasSymbol = typeChecker.getSymbolAtLocation(importEqualsDeclaration.moduleReference);\n          if (internalAliasSymbol) {\n            displayParts.push(spacePart());\n            displayParts.push(operatorPart(64 /* EqualsToken */));\n            displayParts.push(spacePart());\n            addFullSymbolName(internalAliasSymbol, enclosingDeclaration);\n          }\n        }\n        return true;\n      }\n    });\n  }\n  if (!hasAddedSymbolInfo) {\n    if (symbolKind !== \"\" /* unknown */) {\n      if (type) {\n        if (isThisExpression) {\n          prefixNextMeaning();\n          displayParts.push(keywordPart(110 /* ThisKeyword */));\n        } else {\n          addPrefixForAnyFunctionOrVar(symbol, symbolKind);\n        }\n        if (symbolKind === \"property\" /* memberVariableElement */ || symbolKind === \"accessor\" /* memberAccessorVariableElement */ || symbolKind === \"getter\" /* memberGetAccessorElement */ || symbolKind === \"setter\" /* memberSetAccessorElement */ || symbolKind === \"JSX attribute\" /* jsxAttribute */ || symbolFlags & 3 /* Variable */ || symbolKind === \"local var\" /* localVariableElement */ || symbolKind === \"index\" /* indexSignatureElement */ || symbolKind === \"using\" /* variableUsingElement */ || symbolKind === \"await using\" /* variableAwaitUsingElement */ || isThisExpression) {\n          displayParts.push(punctuationPart(59 /* ColonToken */));\n          displayParts.push(spacePart());\n          if (type.symbol && type.symbol.flags & 262144 /* TypeParameter */ && symbolKind !== \"index\" /* indexSignatureElement */) {\n            const typeParameterParts = mapToDisplayParts((writer) => {\n              const param = typeChecker.typeParameterToDeclaration(\n                type,\n                enclosingDeclaration,\n                symbolDisplayNodeBuilderFlags,\n                /*internalFlags*/\n                void 0,\n                /*tracker*/\n                void 0,\n                maximumLength,\n                verbosityLevel,\n                typeWriterOut\n              );\n              getPrinter().writeNode(4 /* Unspecified */, param, getSourceFileOfNode(getParseTreeNode(enclosingDeclaration)), writer);\n            }, maximumLength);\n            addRange(displayParts, typeParameterParts);\n          } else {\n            addRange(\n              displayParts,\n              typeToDisplayParts(\n                typeChecker,\n                type,\n                enclosingDeclaration,\n                /*flags*/\n                void 0,\n                maximumLength,\n                verbosityLevel,\n                typeWriterOut\n              )\n            );\n          }\n          if (isTransientSymbol(symbol) && symbol.links.target && isTransientSymbol(symbol.links.target) && symbol.links.target.links.tupleLabelDeclaration) {\n            const labelDecl = symbol.links.target.links.tupleLabelDeclaration;\n            Debug.assertNode(labelDecl.name, isIdentifier);\n            displayParts.push(spacePart());\n            displayParts.push(punctuationPart(21 /* OpenParenToken */));\n            displayParts.push(textPart(idText(labelDecl.name)));\n            displayParts.push(punctuationPart(22 /* CloseParenToken */));\n          }\n        } else if (symbolFlags & 16 /* Function */ || symbolFlags & 8192 /* Method */ || symbolFlags & 16384 /* Constructor */ || symbolFlags & 131072 /* Signature */ || symbolFlags & 98304 /* Accessor */ || symbolKind === \"method\" /* memberFunctionElement */) {\n          const allSignatures = type.getNonNullableType().getCallSignatures();\n          if (allSignatures.length) {\n            addSignatureDisplayParts(allSignatures[0], allSignatures);\n            hasMultipleSignatures = allSignatures.length > 1;\n          }\n        }\n      }\n    } else {\n      symbolKind = getSymbolKind(typeChecker, symbol, location);\n    }\n  }\n  if (documentation.length === 0 && !hasMultipleSignatures) {\n    documentation = symbol.getContextualDocumentationComment(enclosingDeclaration, typeChecker);\n  }\n  if (documentation.length === 0 && symbolFlags & 4 /* Property */) {\n    if (symbol.parent && symbol.declarations && forEach(symbol.parent.declarations, (declaration) => declaration.kind === 308 /* SourceFile */)) {\n      for (const declaration of symbol.declarations) {\n        if (!declaration.parent || declaration.parent.kind !== 227 /* BinaryExpression */) {\n          continue;\n        }\n        const rhsSymbol = typeChecker.getSymbolAtLocation(declaration.parent.right);\n        if (!rhsSymbol) {\n          continue;\n        }\n        documentation = rhsSymbol.getDocumentationComment(typeChecker);\n        tags = rhsSymbol.getJsDocTags(typeChecker);\n        if (documentation.length > 0) {\n          break;\n        }\n      }\n    }\n  }\n  if (documentation.length === 0 && isIdentifier(location) && symbol.valueDeclaration && isBindingElement(symbol.valueDeclaration)) {\n    const declaration = symbol.valueDeclaration;\n    const parent2 = declaration.parent;\n    const name = declaration.propertyName || declaration.name;\n    if (isIdentifier(name) && isObjectBindingPattern(parent2)) {\n      const propertyName = getTextOfIdentifierOrLiteral(name);\n      const objectType = typeChecker.getTypeAtLocation(parent2);\n      documentation = firstDefined(objectType.isUnion() ? objectType.types : [objectType], (t) => {\n        const prop = t.getProperty(propertyName);\n        return prop ? prop.getDocumentationComment(typeChecker) : void 0;\n      }) || emptyArray;\n    }\n  }\n  if (tags.length === 0 && !hasMultipleSignatures && !isInJSDoc(location)) {\n    tags = symbol.getContextualJsDocTags(enclosingDeclaration, typeChecker);\n  }\n  if (documentation.length === 0 && documentationFromAlias) {\n    documentation = documentationFromAlias;\n  }\n  if (tags.length === 0 && tagsFromAlias) {\n    tags = tagsFromAlias;\n  }\n  const canIncreaseVerbosityLevel = !typeWriterOut.truncated && typeWriterOut.canIncreaseExpansionDepth;\n  return {\n    displayParts,\n    documentation,\n    symbolKind,\n    tags: tags.length === 0 ? void 0 : tags,\n    canIncreaseVerbosityLevel: verbosityLevel !== void 0 ? canIncreaseVerbosityLevel : void 0\n  };\n  function getPrinter() {\n    return createPrinterWithRemoveComments();\n  }\n  function prefixNextMeaning() {\n    if (displayParts.length) {\n      displayParts.push(lineBreakPart());\n    }\n    addAliasPrefixIfNecessary();\n  }\n  function addAliasPrefixIfNecessary() {\n    if (alias) {\n      pushSymbolKind(\"alias\" /* alias */);\n      displayParts.push(spacePart());\n    }\n  }\n  function addInPrefix() {\n    displayParts.push(spacePart());\n    displayParts.push(keywordPart(103 /* InKeyword */));\n    displayParts.push(spacePart());\n  }\n  function canExpandSymbol(symbol2, out) {\n    if (verbosityLevel === void 0) {\n      return false;\n    }\n    const type2 = symbol2.flags & (32 /* Class */ | 64 /* Interface */) ? typeChecker.getDeclaredTypeOfSymbol(symbol2) : typeChecker.getTypeOfSymbolAtLocation(symbol2, location);\n    if (!type2 || typeChecker.isLibType(type2)) {\n      return false;\n    }\n    if (0 < verbosityLevel) {\n      return true;\n    }\n    if (out) {\n      out.canIncreaseExpansionDepth = true;\n    }\n    return false;\n  }\n  function semanticToSymbolMeaning(meaning) {\n    let symbolMeaning = 0 /* None */;\n    if (meaning & 1 /* Value */) {\n      symbolMeaning |= 111551 /* Value */;\n    }\n    if (meaning & 2 /* Type */) {\n      symbolMeaning |= 788968 /* Type */;\n    }\n    if (meaning & 4 /* Namespace */) {\n      symbolMeaning |= 1920 /* Namespace */;\n    }\n    return symbolMeaning;\n  }\n  function tryExpandSymbol(symbol2, meaning) {\n    if (symbolWasExpanded) {\n      return true;\n    }\n    if (canExpandSymbol(symbol2, typeWriterOut)) {\n      const symbolMeaning = semanticToSymbolMeaning(meaning);\n      const expandedDisplayParts = mapToDisplayParts((writer) => {\n        const nodes = typeChecker.getEmitResolver().symbolToDeclarations(\n          symbol2,\n          symbolMeaning,\n          1024 /* MultilineObjectLiterals */ | 16384 /* UseAliasDefinedOutsideCurrentScope */,\n          maximumLength,\n          verbosityLevel !== void 0 ? verbosityLevel - 1 : void 0,\n          typeWriterOut\n        );\n        const printer = getPrinter();\n        const sourceFile2 = symbol2.valueDeclaration && getSourceFileOfNode(symbol2.valueDeclaration);\n        nodes.forEach((node, i) => {\n          if (i > 0) writer.writeLine();\n          printer.writeNode(4 /* Unspecified */, node, sourceFile2, writer);\n        });\n      }, maximumLength);\n      addRange(displayParts, expandedDisplayParts);\n      symbolWasExpanded = true;\n      return true;\n    }\n    return false;\n  }\n  function addFullSymbolName(symbolToDisplay, enclosingDeclaration2) {\n    let indexInfos;\n    if (alias && symbolToDisplay === symbol) {\n      symbolToDisplay = alias;\n    }\n    if (symbolKind === \"index\" /* indexSignatureElement */) {\n      indexInfos = typeChecker.getIndexInfosOfIndexSymbol(symbolToDisplay);\n    }\n    let fullSymbolDisplayParts = [];\n    if (symbolToDisplay.flags & 131072 /* Signature */ && indexInfos) {\n      if (symbolToDisplay.parent) {\n        fullSymbolDisplayParts = symbolToDisplayParts(typeChecker, symbolToDisplay.parent);\n      }\n      fullSymbolDisplayParts.push(punctuationPart(23 /* OpenBracketToken */));\n      indexInfos.forEach((info, i) => {\n        fullSymbolDisplayParts.push(...typeToDisplayParts(typeChecker, info.keyType));\n        if (i !== indexInfos.length - 1) {\n          fullSymbolDisplayParts.push(spacePart());\n          fullSymbolDisplayParts.push(punctuationPart(52 /* BarToken */));\n          fullSymbolDisplayParts.push(spacePart());\n        }\n      });\n      fullSymbolDisplayParts.push(punctuationPart(24 /* CloseBracketToken */));\n    } else {\n      fullSymbolDisplayParts = symbolToDisplayParts(\n        typeChecker,\n        symbolToDisplay,\n        enclosingDeclaration2 || sourceFile,\n        /*meaning*/\n        void 0,\n        1 /* WriteTypeParametersOrArguments */ | 2 /* UseOnlyExternalAliasing */ | 4 /* AllowAnyNodeKind */\n      );\n    }\n    addRange(displayParts, fullSymbolDisplayParts);\n    if (symbol.flags & 16777216 /* Optional */) {\n      displayParts.push(punctuationPart(58 /* QuestionToken */));\n    }\n  }\n  function addPrefixForAnyFunctionOrVar(symbol2, symbolKind2) {\n    prefixNextMeaning();\n    if (symbolKind2) {\n      pushSymbolKind(symbolKind2);\n      if (symbol2 && !some(symbol2.declarations, (d) => isArrowFunction(d) || (isFunctionExpression(d) || isClassExpression(d)) && !d.name)) {\n        displayParts.push(spacePart());\n        addFullSymbolName(symbol2);\n      }\n    }\n  }\n  function pushSymbolKind(symbolKind2) {\n    switch (symbolKind2) {\n      case \"var\" /* variableElement */:\n      case \"function\" /* functionElement */:\n      case \"let\" /* letElement */:\n      case \"const\" /* constElement */:\n      case \"constructor\" /* constructorImplementationElement */:\n      case \"using\" /* variableUsingElement */:\n      case \"await using\" /* variableAwaitUsingElement */:\n        displayParts.push(textOrKeywordPart(symbolKind2));\n        return;\n      default:\n        displayParts.push(punctuationPart(21 /* OpenParenToken */));\n        displayParts.push(textOrKeywordPart(symbolKind2));\n        displayParts.push(punctuationPart(22 /* CloseParenToken */));\n        return;\n    }\n  }\n  function addSignatureDisplayParts(signature, allSignatures, flags = 0 /* None */) {\n    addRange(displayParts, signatureToDisplayParts(typeChecker, signature, enclosingDeclaration, flags | 32 /* WriteTypeArgumentsOfSignature */, maximumLength, verbosityLevel, typeWriterOut));\n    if (allSignatures.length > 1) {\n      displayParts.push(spacePart());\n      displayParts.push(punctuationPart(21 /* OpenParenToken */));\n      displayParts.push(operatorPart(40 /* PlusToken */));\n      displayParts.push(displayPart((allSignatures.length - 1).toString(), 7 /* numericLiteral */));\n      displayParts.push(spacePart());\n      displayParts.push(textPart(allSignatures.length === 2 ? \"overload\" : \"overloads\"));\n      displayParts.push(punctuationPart(22 /* CloseParenToken */));\n    }\n    documentation = signature.getDocumentationComment(typeChecker);\n    tags = signature.getJsDocTags();\n    if (allSignatures.length > 1 && documentation.length === 0 && tags.length === 0) {\n      documentation = allSignatures[0].getDocumentationComment(typeChecker);\n      tags = allSignatures[0].getJsDocTags().filter((tag) => tag.name !== \"deprecated\");\n    }\n  }\n  function writeTypeParametersOfSymbol(symbol2, enclosingDeclaration2) {\n    const typeParameterParts = mapToDisplayParts((writer) => {\n      const params = typeChecker.symbolToTypeParameterDeclarations(symbol2, enclosingDeclaration2, symbolDisplayNodeBuilderFlags);\n      getPrinter().writeList(53776 /* TypeParameters */, params, getSourceFileOfNode(getParseTreeNode(enclosingDeclaration2)), writer);\n    });\n    addRange(displayParts, typeParameterParts);\n  }\n}\nfunction getSymbolDisplayPartsDocumentationAndSymbolKind(typeChecker, symbol, sourceFile, enclosingDeclaration, location, semanticMeaning = getMeaningFromLocation(location), alias, maximumLength, verbosityLevel) {\n  return getSymbolDisplayPartsDocumentationAndSymbolKindWorker(\n    typeChecker,\n    symbol,\n    sourceFile,\n    enclosingDeclaration,\n    location,\n    /*type*/\n    void 0,\n    semanticMeaning,\n    alias,\n    maximumLength,\n    verbosityLevel\n  );\n}\nfunction isLocalVariableOrFunction(symbol) {\n  if (symbol.parent) {\n    return false;\n  }\n  return forEach(symbol.declarations, (declaration) => {\n    if (declaration.kind === 219 /* FunctionExpression */) {\n      return true;\n    }\n    if (declaration.kind !== 261 /* VariableDeclaration */ && declaration.kind !== 263 /* FunctionDeclaration */) {\n      return false;\n    }\n    for (let parent2 = declaration.parent; !isFunctionBlock(parent2); parent2 = parent2.parent) {\n      if (parent2.kind === 308 /* SourceFile */ || parent2.kind === 269 /* ModuleBlock */) {\n        return false;\n      }\n    }\n    return true;\n  });\n}\n\n// src/services/_namespaces/ts.textChanges.ts\nvar ts_textChanges_exports = {};\n__export(ts_textChanges_exports, {\n  ChangeTracker: () => ChangeTracker,\n  LeadingTriviaOption: () => LeadingTriviaOption,\n  TrailingTriviaOption: () => TrailingTriviaOption,\n  applyChanges: () => applyChanges,\n  assignPositionsToNode: () => assignPositionsToNode,\n  createWriter: () => createWriter,\n  deleteNode: () => deleteNode,\n  getAdjustedEndPosition: () => getAdjustedEndPosition,\n  isThisTypeAnnotatable: () => isThisTypeAnnotatable,\n  isValidLocationToAddComment: () => isValidLocationToAddComment\n});\n\n// src/services/textChanges.ts\nfunction getPos2(n) {\n  const result = n.__pos;\n  Debug.assert(typeof result === \"number\");\n  return result;\n}\nfunction setPos(n, pos) {\n  Debug.assert(typeof pos === \"number\");\n  n.__pos = pos;\n}\nfunction getEnd(n) {\n  const result = n.__end;\n  Debug.assert(typeof result === \"number\");\n  return result;\n}\nfunction setEnd(n, end) {\n  Debug.assert(typeof end === \"number\");\n  n.__end = end;\n}\nvar LeadingTriviaOption = /* @__PURE__ */ ((LeadingTriviaOption2) => {\n  LeadingTriviaOption2[LeadingTriviaOption2[\"Exclude\"] = 0] = \"Exclude\";\n  LeadingTriviaOption2[LeadingTriviaOption2[\"IncludeAll\"] = 1] = \"IncludeAll\";\n  LeadingTriviaOption2[LeadingTriviaOption2[\"JSDoc\"] = 2] = \"JSDoc\";\n  LeadingTriviaOption2[LeadingTriviaOption2[\"StartLine\"] = 3] = \"StartLine\";\n  return LeadingTriviaOption2;\n})(LeadingTriviaOption || {});\nvar TrailingTriviaOption = /* @__PURE__ */ ((TrailingTriviaOption2) => {\n  TrailingTriviaOption2[TrailingTriviaOption2[\"Exclude\"] = 0] = \"Exclude\";\n  TrailingTriviaOption2[TrailingTriviaOption2[\"ExcludeWhitespace\"] = 1] = \"ExcludeWhitespace\";\n  TrailingTriviaOption2[TrailingTriviaOption2[\"Include\"] = 2] = \"Include\";\n  return TrailingTriviaOption2;\n})(TrailingTriviaOption || {});\nfunction skipWhitespacesAndLineBreaks(text, start) {\n  return skipTrivia(\n    text,\n    start,\n    /*stopAfterLineBreak*/\n    false,\n    /*stopAtComments*/\n    true\n  );\n}\nfunction hasCommentsBeforeLineBreak(text, start) {\n  let i = start;\n  while (i < text.length) {\n    const ch = text.charCodeAt(i);\n    if (isWhiteSpaceSingleLine(ch)) {\n      i++;\n      continue;\n    }\n    return ch === 47 /* slash */;\n  }\n  return false;\n}\nvar useNonAdjustedPositions = {\n  leadingTriviaOption: 0 /* Exclude */,\n  trailingTriviaOption: 0 /* Exclude */\n};\nfunction getAdjustedRange(sourceFile, startNode2, endNode2, options) {\n  return { pos: getAdjustedStartPosition(sourceFile, startNode2, options), end: getAdjustedEndPosition(sourceFile, endNode2, options) };\n}\nfunction getAdjustedStartPosition(sourceFile, node, options, hasTrailingComment = false) {\n  var _a, _b;\n  const { leadingTriviaOption } = options;\n  if (leadingTriviaOption === 0 /* Exclude */) {\n    return node.getStart(sourceFile);\n  }\n  if (leadingTriviaOption === 3 /* StartLine */) {\n    const startPos = node.getStart(sourceFile);\n    const pos = getLineStartPositionForPosition(startPos, sourceFile);\n    return rangeContainsPosition(node, pos) ? pos : startPos;\n  }\n  if (leadingTriviaOption === 2 /* JSDoc */) {\n    const JSDocComments = getJSDocCommentRanges(node, sourceFile.text);\n    if (JSDocComments == null ? void 0 : JSDocComments.length) {\n      return getLineStartPositionForPosition(JSDocComments[0].pos, sourceFile);\n    }\n  }\n  const fullStart = node.getFullStart();\n  const start = node.getStart(sourceFile);\n  if (fullStart === start) {\n    return start;\n  }\n  const fullStartLine = getLineStartPositionForPosition(fullStart, sourceFile);\n  const startLine = getLineStartPositionForPosition(start, sourceFile);\n  if (startLine === fullStartLine) {\n    return leadingTriviaOption === 1 /* IncludeAll */ ? fullStart : start;\n  }\n  if (hasTrailingComment) {\n    const comment = ((_a = getLeadingCommentRanges(sourceFile.text, fullStart)) == null ? void 0 : _a[0]) || ((_b = getTrailingCommentRanges(sourceFile.text, fullStart)) == null ? void 0 : _b[0]);\n    if (comment) {\n      return skipTrivia(\n        sourceFile.text,\n        comment.end,\n        /*stopAfterLineBreak*/\n        true,\n        /*stopAtComments*/\n        true\n      );\n    }\n  }\n  const nextLineStart = fullStart > 0 ? 1 : 0;\n  let adjustedStartPosition = getStartPositionOfLine(getLineOfLocalPosition(sourceFile, fullStartLine) + nextLineStart, sourceFile);\n  adjustedStartPosition = skipWhitespacesAndLineBreaks(sourceFile.text, adjustedStartPosition);\n  return getStartPositionOfLine(getLineOfLocalPosition(sourceFile, adjustedStartPosition), sourceFile);\n}\nfunction getEndPositionOfMultilineTrailingComment(sourceFile, node, options) {\n  const { end } = node;\n  const { trailingTriviaOption } = options;\n  if (trailingTriviaOption === 2 /* Include */) {\n    const comments = getTrailingCommentRanges(sourceFile.text, end);\n    if (comments) {\n      const nodeEndLine = getLineOfLocalPosition(sourceFile, node.end);\n      for (const comment of comments) {\n        if (comment.kind === 2 /* SingleLineCommentTrivia */ || getLineOfLocalPosition(sourceFile, comment.pos) > nodeEndLine) {\n          break;\n        }\n        const commentEndLine = getLineOfLocalPosition(sourceFile, comment.end);\n        if (commentEndLine > nodeEndLine) {\n          return skipTrivia(\n            sourceFile.text,\n            comment.end,\n            /*stopAfterLineBreak*/\n            true,\n            /*stopAtComments*/\n            true\n          );\n        }\n      }\n    }\n  }\n  return void 0;\n}\nfunction getAdjustedEndPosition(sourceFile, node, options) {\n  var _a;\n  const { end } = node;\n  const { trailingTriviaOption } = options;\n  if (trailingTriviaOption === 0 /* Exclude */) {\n    return end;\n  }\n  if (trailingTriviaOption === 1 /* ExcludeWhitespace */) {\n    const comments = concatenate(getTrailingCommentRanges(sourceFile.text, end), getLeadingCommentRanges(sourceFile.text, end));\n    const realEnd = (_a = comments == null ? void 0 : comments[comments.length - 1]) == null ? void 0 : _a.end;\n    if (realEnd) {\n      return realEnd;\n    }\n    return end;\n  }\n  const multilineEndPosition = getEndPositionOfMultilineTrailingComment(sourceFile, node, options);\n  if (multilineEndPosition) {\n    return multilineEndPosition;\n  }\n  const newEnd = skipTrivia(\n    sourceFile.text,\n    end,\n    /*stopAfterLineBreak*/\n    true\n  );\n  return newEnd !== end && (trailingTriviaOption === 2 /* Include */ || isLineBreak(sourceFile.text.charCodeAt(newEnd - 1))) ? newEnd : end;\n}\nfunction isSeparator(node, candidate) {\n  return !!candidate && !!node.parent && (candidate.kind === 28 /* CommaToken */ || candidate.kind === 27 /* SemicolonToken */ && node.parent.kind === 211 /* ObjectLiteralExpression */);\n}\nfunction isThisTypeAnnotatable(containingFunction) {\n  return isFunctionExpression(containingFunction) || isFunctionDeclaration(containingFunction);\n}\nvar ChangeTracker = class _ChangeTracker {\n  /** Public for tests only. Other callers should use `ChangeTracker.with`. */\n  constructor(newLineCharacter, formatContext) {\n    this.newLineCharacter = newLineCharacter;\n    this.formatContext = formatContext;\n    this.changes = [];\n    this.classesWithNodesInsertedAtStart = /* @__PURE__ */ new Map();\n    // Set<ClassDeclaration> implemented as Map<node id, ClassDeclaration>\n    this.deletedNodes = [];\n  }\n  static fromContext(context) {\n    return new _ChangeTracker(getNewLineOrDefaultFromHost(context.host, context.formatContext.options), context.formatContext);\n  }\n  static with(context, cb) {\n    const tracker = _ChangeTracker.fromContext(context);\n    cb(tracker);\n    return tracker.getChanges();\n  }\n  pushRaw(sourceFile, change) {\n    Debug.assertEqual(sourceFile.fileName, change.fileName);\n    for (const c of change.textChanges) {\n      this.changes.push({\n        kind: 3 /* Text */,\n        sourceFile,\n        text: c.newText,\n        range: createTextRangeFromSpan(c.span)\n      });\n    }\n  }\n  deleteRange(sourceFile, range) {\n    this.changes.push({ kind: 0 /* Remove */, sourceFile, range });\n  }\n  delete(sourceFile, node) {\n    this.deletedNodes.push({ sourceFile, node });\n  }\n  /** Stop! Consider using `delete` instead, which has logic for deleting nodes from delimited lists. */\n  deleteNode(sourceFile, node, options = { leadingTriviaOption: 1 /* IncludeAll */ }) {\n    this.deleteRange(sourceFile, getAdjustedRange(sourceFile, node, node, options));\n  }\n  deleteNodes(sourceFile, nodes, options = { leadingTriviaOption: 1 /* IncludeAll */ }, hasTrailingComment) {\n    for (const node of nodes) {\n      const pos = getAdjustedStartPosition(sourceFile, node, options, hasTrailingComment);\n      const end = getAdjustedEndPosition(sourceFile, node, options);\n      this.deleteRange(sourceFile, { pos, end });\n      hasTrailingComment = !!getEndPositionOfMultilineTrailingComment(sourceFile, node, options);\n    }\n  }\n  deleteModifier(sourceFile, modifier) {\n    this.deleteRange(sourceFile, { pos: modifier.getStart(sourceFile), end: skipTrivia(\n      sourceFile.text,\n      modifier.end,\n      /*stopAfterLineBreak*/\n      true\n    ) });\n  }\n  deleteNodeRange(sourceFile, startNode2, endNode2, options = { leadingTriviaOption: 1 /* IncludeAll */ }) {\n    const startPosition = getAdjustedStartPosition(sourceFile, startNode2, options);\n    const endPosition = getAdjustedEndPosition(sourceFile, endNode2, options);\n    this.deleteRange(sourceFile, { pos: startPosition, end: endPosition });\n  }\n  deleteNodeRangeExcludingEnd(sourceFile, startNode2, afterEndNode, options = { leadingTriviaOption: 1 /* IncludeAll */ }) {\n    const startPosition = getAdjustedStartPosition(sourceFile, startNode2, options);\n    const endPosition = afterEndNode === void 0 ? sourceFile.text.length : getAdjustedStartPosition(sourceFile, afterEndNode, options);\n    this.deleteRange(sourceFile, { pos: startPosition, end: endPosition });\n  }\n  replaceRange(sourceFile, range, newNode, options = {}) {\n    this.changes.push({ kind: 1 /* ReplaceWithSingleNode */, sourceFile, range, options, node: newNode });\n  }\n  replaceNode(sourceFile, oldNode, newNode, options = useNonAdjustedPositions) {\n    this.replaceRange(sourceFile, getAdjustedRange(sourceFile, oldNode, oldNode, options), newNode, options);\n  }\n  replaceNodeRange(sourceFile, startNode2, endNode2, newNode, options = useNonAdjustedPositions) {\n    this.replaceRange(sourceFile, getAdjustedRange(sourceFile, startNode2, endNode2, options), newNode, options);\n  }\n  replaceRangeWithNodes(sourceFile, range, newNodes, options = {}) {\n    this.changes.push({ kind: 2 /* ReplaceWithMultipleNodes */, sourceFile, range, options, nodes: newNodes });\n  }\n  replaceNodeWithNodes(sourceFile, oldNode, newNodes, options = useNonAdjustedPositions) {\n    this.replaceRangeWithNodes(sourceFile, getAdjustedRange(sourceFile, oldNode, oldNode, options), newNodes, options);\n  }\n  replaceNodeWithText(sourceFile, oldNode, text) {\n    this.replaceRangeWithText(sourceFile, getAdjustedRange(sourceFile, oldNode, oldNode, useNonAdjustedPositions), text);\n  }\n  replaceNodeRangeWithNodes(sourceFile, startNode2, endNode2, newNodes, options = useNonAdjustedPositions) {\n    this.replaceRangeWithNodes(sourceFile, getAdjustedRange(sourceFile, startNode2, endNode2, options), newNodes, options);\n  }\n  nodeHasTrailingComment(sourceFile, oldNode, configurableEnd = useNonAdjustedPositions) {\n    return !!getEndPositionOfMultilineTrailingComment(sourceFile, oldNode, configurableEnd);\n  }\n  nextCommaToken(sourceFile, node) {\n    const next = findNextToken(node, node.parent, sourceFile);\n    return next && next.kind === 28 /* CommaToken */ ? next : void 0;\n  }\n  replacePropertyAssignment(sourceFile, oldNode, newNode) {\n    const suffix = this.nextCommaToken(sourceFile, oldNode) ? \"\" : \",\" + this.newLineCharacter;\n    this.replaceNode(sourceFile, oldNode, newNode, { suffix });\n  }\n  insertNodeAt(sourceFile, pos, newNode, options = {}) {\n    this.replaceRange(sourceFile, createRange(pos), newNode, options);\n  }\n  insertNodesAt(sourceFile, pos, newNodes, options = {}) {\n    this.replaceRangeWithNodes(sourceFile, createRange(pos), newNodes, options);\n  }\n  insertNodeAtTopOfFile(sourceFile, newNode, blankLineBetween) {\n    this.insertAtTopOfFile(sourceFile, newNode, blankLineBetween);\n  }\n  insertNodesAtTopOfFile(sourceFile, newNodes, blankLineBetween) {\n    this.insertAtTopOfFile(sourceFile, newNodes, blankLineBetween);\n  }\n  insertAtTopOfFile(sourceFile, insert, blankLineBetween) {\n    const pos = getInsertionPositionAtSourceFileTop(sourceFile);\n    const options = {\n      prefix: pos === 0 ? void 0 : this.newLineCharacter,\n      suffix: (isLineBreak(sourceFile.text.charCodeAt(pos)) ? \"\" : this.newLineCharacter) + (blankLineBetween ? this.newLineCharacter : \"\")\n    };\n    if (isArray(insert)) {\n      this.insertNodesAt(sourceFile, pos, insert, options);\n    } else {\n      this.insertNodeAt(sourceFile, pos, insert, options);\n    }\n  }\n  insertNodesAtEndOfFile(sourceFile, newNodes, blankLineBetween) {\n    this.insertAtEndOfFile(sourceFile, newNodes, blankLineBetween);\n  }\n  insertAtEndOfFile(sourceFile, insert, blankLineBetween) {\n    const pos = sourceFile.end + 1;\n    const options = {\n      prefix: this.newLineCharacter,\n      suffix: this.newLineCharacter + (blankLineBetween ? this.newLineCharacter : \"\")\n    };\n    this.insertNodesAt(sourceFile, pos, insert, options);\n  }\n  insertStatementsInNewFile(fileName, statements, oldFile) {\n    if (!this.newFileChanges) {\n      this.newFileChanges = createMultiMap();\n    }\n    this.newFileChanges.add(fileName, { oldFile, statements });\n  }\n  insertFirstParameter(sourceFile, parameters, newParam) {\n    const p0 = firstOrUndefined(parameters);\n    if (p0) {\n      this.insertNodeBefore(sourceFile, p0, newParam);\n    } else {\n      this.insertNodeAt(sourceFile, parameters.pos, newParam);\n    }\n  }\n  insertNodeBefore(sourceFile, before, newNode, blankLineBetween = false, options = {}) {\n    this.insertNodeAt(sourceFile, getAdjustedStartPosition(sourceFile, before, options), newNode, this.getOptionsForInsertNodeBefore(before, newNode, blankLineBetween));\n  }\n  insertNodesBefore(sourceFile, before, newNodes, blankLineBetween = false, options = {}) {\n    this.insertNodesAt(sourceFile, getAdjustedStartPosition(sourceFile, before, options), newNodes, this.getOptionsForInsertNodeBefore(before, first(newNodes), blankLineBetween));\n  }\n  insertModifierAt(sourceFile, pos, modifier, options = {}) {\n    this.insertNodeAt(sourceFile, pos, factory.createToken(modifier), options);\n  }\n  insertModifierBefore(sourceFile, modifier, before) {\n    return this.insertModifierAt(sourceFile, before.getStart(sourceFile), modifier, { suffix: \" \" });\n  }\n  insertCommentBeforeLine(sourceFile, lineNumber, position, commentText) {\n    const lineStartPosition = getStartPositionOfLine(lineNumber, sourceFile);\n    const startPosition = getFirstNonSpaceCharacterPosition(sourceFile.text, lineStartPosition);\n    const insertAtLineStart = isValidLocationToAddComment(sourceFile, startPosition);\n    const token = getTouchingToken(sourceFile, insertAtLineStart ? startPosition : position);\n    const indent3 = sourceFile.text.slice(lineStartPosition, startPosition);\n    const text = `${insertAtLineStart ? \"\" : this.newLineCharacter}//${commentText}${this.newLineCharacter}${indent3}`;\n    this.insertText(sourceFile, token.getStart(sourceFile), text);\n  }\n  insertJsdocCommentBefore(sourceFile, node, tag) {\n    const fnStart = node.getStart(sourceFile);\n    if (node.jsDoc) {\n      for (const jsdoc of node.jsDoc) {\n        this.deleteRange(sourceFile, {\n          pos: getLineStartPositionForPosition(jsdoc.getStart(sourceFile), sourceFile),\n          end: getAdjustedEndPosition(\n            sourceFile,\n            jsdoc,\n            /*options*/\n            {}\n          )\n        });\n      }\n    }\n    const startPosition = getPrecedingNonSpaceCharacterPosition(sourceFile.text, fnStart - 1);\n    const indent3 = sourceFile.text.slice(startPosition, fnStart);\n    this.insertNodeAt(sourceFile, fnStart, tag, { suffix: this.newLineCharacter + indent3 });\n  }\n  createJSDocText(sourceFile, node) {\n    const comments = flatMap(node.jsDoc, (jsDoc2) => isString(jsDoc2.comment) ? factory.createJSDocText(jsDoc2.comment) : jsDoc2.comment);\n    const jsDoc = singleOrUndefined(node.jsDoc);\n    return jsDoc && positionsAreOnSameLine(jsDoc.pos, jsDoc.end, sourceFile) && length(comments) === 0 ? void 0 : factory.createNodeArray(intersperse(comments, factory.createJSDocText(\"\\n\")));\n  }\n  replaceJSDocComment(sourceFile, node, tags) {\n    this.insertJsdocCommentBefore(sourceFile, updateJSDocHost(node), factory.createJSDocComment(this.createJSDocText(sourceFile, node), factory.createNodeArray(tags)));\n  }\n  addJSDocTags(sourceFile, parent2, newTags) {\n    const oldTags = flatMapToMutable(parent2.jsDoc, (j) => j.tags);\n    const unmergedNewTags = newTags.filter(\n      (newTag) => !oldTags.some((tag, i) => {\n        const merged = tryMergeJsdocTags(tag, newTag);\n        if (merged) oldTags[i] = merged;\n        return !!merged;\n      })\n    );\n    this.replaceJSDocComment(sourceFile, parent2, [...oldTags, ...unmergedNewTags]);\n  }\n  filterJSDocTags(sourceFile, parent2, predicate) {\n    this.replaceJSDocComment(sourceFile, parent2, filter(flatMapToMutable(parent2.jsDoc, (j) => j.tags), predicate));\n  }\n  replaceRangeWithText(sourceFile, range, text) {\n    this.changes.push({ kind: 3 /* Text */, sourceFile, range, text });\n  }\n  insertText(sourceFile, pos, text) {\n    this.replaceRangeWithText(sourceFile, createRange(pos), text);\n  }\n  /** Prefer this over replacing a node with another that has a type annotation, as it avoids reformatting the other parts of the node. */\n  tryInsertTypeAnnotation(sourceFile, node, type) {\n    let endNode2;\n    if (isFunctionLike(node)) {\n      endNode2 = findChildOfKind(node, 22 /* CloseParenToken */, sourceFile);\n      if (!endNode2) {\n        if (!isArrowFunction(node)) return false;\n        endNode2 = first(node.parameters);\n      }\n    } else {\n      endNode2 = (node.kind === 261 /* VariableDeclaration */ ? node.exclamationToken : node.questionToken) ?? node.name;\n    }\n    this.insertNodeAt(sourceFile, endNode2.end, type, { prefix: \": \" });\n    return true;\n  }\n  tryInsertThisTypeAnnotation(sourceFile, node, type) {\n    const start = findChildOfKind(node, 21 /* OpenParenToken */, sourceFile).getStart(sourceFile) + 1;\n    const suffix = node.parameters.length ? \", \" : \"\";\n    this.insertNodeAt(sourceFile, start, type, { prefix: \"this: \", suffix });\n  }\n  insertTypeParameters(sourceFile, node, typeParameters) {\n    const start = (findChildOfKind(node, 21 /* OpenParenToken */, sourceFile) || first(node.parameters)).getStart(sourceFile);\n    this.insertNodesAt(sourceFile, start, typeParameters, { prefix: \"<\", suffix: \">\", joiner: \", \" });\n  }\n  getOptionsForInsertNodeBefore(before, inserted, blankLineBetween) {\n    if (isStatement(before) || isClassElement(before)) {\n      return { suffix: blankLineBetween ? this.newLineCharacter + this.newLineCharacter : this.newLineCharacter };\n    } else if (isVariableDeclaration(before)) {\n      return { suffix: \", \" };\n    } else if (isParameter(before)) {\n      return isParameter(inserted) ? { suffix: \", \" } : {};\n    } else if (isStringLiteral(before) && isImportDeclaration(before.parent) || isNamedImports(before)) {\n      return { suffix: \", \" };\n    } else if (isImportSpecifier(before)) {\n      return { suffix: \",\" + (blankLineBetween ? this.newLineCharacter : \" \") };\n    }\n    return Debug.failBadSyntaxKind(before);\n  }\n  insertNodeAtConstructorStart(sourceFile, ctr, newStatement) {\n    const firstStatement = firstOrUndefined(ctr.body.statements);\n    if (!firstStatement || !ctr.body.multiLine) {\n      this.replaceConstructorBody(sourceFile, ctr, [newStatement, ...ctr.body.statements]);\n    } else {\n      this.insertNodeBefore(sourceFile, firstStatement, newStatement);\n    }\n  }\n  insertNodeAtConstructorStartAfterSuperCall(sourceFile, ctr, newStatement) {\n    const superCallStatement = find(ctr.body.statements, (stmt) => isExpressionStatement(stmt) && isSuperCall(stmt.expression));\n    if (!superCallStatement || !ctr.body.multiLine) {\n      this.replaceConstructorBody(sourceFile, ctr, [...ctr.body.statements, newStatement]);\n    } else {\n      this.insertNodeAfter(sourceFile, superCallStatement, newStatement);\n    }\n  }\n  insertNodeAtConstructorEnd(sourceFile, ctr, newStatement) {\n    const lastStatement = lastOrUndefined(ctr.body.statements);\n    if (!lastStatement || !ctr.body.multiLine) {\n      this.replaceConstructorBody(sourceFile, ctr, [...ctr.body.statements, newStatement]);\n    } else {\n      this.insertNodeAfter(sourceFile, lastStatement, newStatement);\n    }\n  }\n  replaceConstructorBody(sourceFile, ctr, statements) {\n    this.replaceNode(sourceFile, ctr.body, factory.createBlock(\n      statements,\n      /*multiLine*/\n      true\n    ));\n  }\n  insertNodeAtEndOfScope(sourceFile, scope, newNode) {\n    const pos = getAdjustedStartPosition(sourceFile, scope.getLastToken(), {});\n    this.insertNodeAt(sourceFile, pos, newNode, {\n      prefix: isLineBreak(sourceFile.text.charCodeAt(scope.getLastToken().pos)) ? this.newLineCharacter : this.newLineCharacter + this.newLineCharacter,\n      suffix: this.newLineCharacter\n    });\n  }\n  insertMemberAtStart(sourceFile, node, newElement) {\n    this.insertNodeAtStartWorker(sourceFile, node, newElement);\n  }\n  insertNodeAtObjectStart(sourceFile, obj, newElement) {\n    this.insertNodeAtStartWorker(sourceFile, obj, newElement);\n  }\n  insertNodeAtStartWorker(sourceFile, node, newElement) {\n    const indentation = this.guessIndentationFromExistingMembers(sourceFile, node) ?? this.computeIndentationForNewMember(sourceFile, node);\n    this.insertNodeAt(sourceFile, getMembersOrProperties(node).pos, newElement, this.getInsertNodeAtStartInsertOptions(sourceFile, node, indentation));\n  }\n  /**\n   * Tries to guess the indentation from the existing members of a class/interface/object. All members must be on\n   * new lines and must share the same indentation.\n   */\n  guessIndentationFromExistingMembers(sourceFile, node) {\n    let indentation;\n    let lastRange = node;\n    for (const member of getMembersOrProperties(node)) {\n      if (rangeStartPositionsAreOnSameLine(lastRange, member, sourceFile)) {\n        return void 0;\n      }\n      const memberStart = member.getStart(sourceFile);\n      const memberIndentation = ts_formatting_exports.SmartIndenter.findFirstNonWhitespaceColumn(getLineStartPositionForPosition(memberStart, sourceFile), memberStart, sourceFile, this.formatContext.options);\n      if (indentation === void 0) {\n        indentation = memberIndentation;\n      } else if (memberIndentation !== indentation) {\n        return void 0;\n      }\n      lastRange = member;\n    }\n    return indentation;\n  }\n  computeIndentationForNewMember(sourceFile, node) {\n    const nodeStart = node.getStart(sourceFile);\n    return ts_formatting_exports.SmartIndenter.findFirstNonWhitespaceColumn(getLineStartPositionForPosition(nodeStart, sourceFile), nodeStart, sourceFile, this.formatContext.options) + (this.formatContext.options.indentSize ?? 4);\n  }\n  getInsertNodeAtStartInsertOptions(sourceFile, node, indentation) {\n    const members = getMembersOrProperties(node);\n    const isEmpty = members.length === 0;\n    const isFirstInsertion = !this.classesWithNodesInsertedAtStart.has(getNodeId(node));\n    if (isFirstInsertion) {\n      this.classesWithNodesInsertedAtStart.set(getNodeId(node), { node, sourceFile });\n    }\n    const insertTrailingComma = isObjectLiteralExpression(node) && (!isJsonSourceFile(sourceFile) || !isEmpty);\n    const insertLeadingComma = isObjectLiteralExpression(node) && isJsonSourceFile(sourceFile) && isEmpty && !isFirstInsertion;\n    return {\n      indentation,\n      prefix: (insertLeadingComma ? \",\" : \"\") + this.newLineCharacter,\n      suffix: insertTrailingComma ? \",\" : isInterfaceDeclaration(node) && isEmpty ? \";\" : \"\"\n    };\n  }\n  insertNodeAfterComma(sourceFile, after, newNode) {\n    const endPosition = this.insertNodeAfterWorker(sourceFile, this.nextCommaToken(sourceFile, after) || after, newNode);\n    this.insertNodeAt(sourceFile, endPosition, newNode, this.getInsertNodeAfterOptions(sourceFile, after));\n  }\n  insertNodeAfter(sourceFile, after, newNode) {\n    const endPosition = this.insertNodeAfterWorker(sourceFile, after, newNode);\n    this.insertNodeAt(sourceFile, endPosition, newNode, this.getInsertNodeAfterOptions(sourceFile, after));\n  }\n  insertNodeAtEndOfList(sourceFile, list, newNode) {\n    this.insertNodeAt(sourceFile, list.end, newNode, { prefix: \", \" });\n  }\n  insertNodesAfter(sourceFile, after, newNodes) {\n    const endPosition = this.insertNodeAfterWorker(sourceFile, after, first(newNodes));\n    this.insertNodesAt(sourceFile, endPosition, newNodes, this.getInsertNodeAfterOptions(sourceFile, after));\n  }\n  insertNodeAfterWorker(sourceFile, after, newNode) {\n    if (needSemicolonBetween(after, newNode)) {\n      if (sourceFile.text.charCodeAt(after.end - 1) !== 59 /* semicolon */) {\n        this.replaceRange(sourceFile, createRange(after.end), factory.createToken(27 /* SemicolonToken */));\n      }\n    }\n    const endPosition = getAdjustedEndPosition(sourceFile, after, {});\n    return endPosition;\n  }\n  getInsertNodeAfterOptions(sourceFile, after) {\n    const options = this.getInsertNodeAfterOptionsWorker(after);\n    return {\n      ...options,\n      prefix: after.end === sourceFile.end && isStatement(after) ? options.prefix ? `\n${options.prefix}` : \"\\n\" : options.prefix\n    };\n  }\n  getInsertNodeAfterOptionsWorker(node) {\n    switch (node.kind) {\n      case 264 /* ClassDeclaration */:\n      case 268 /* ModuleDeclaration */:\n        return { prefix: this.newLineCharacter, suffix: this.newLineCharacter };\n      case 261 /* VariableDeclaration */:\n      case 11 /* StringLiteral */:\n      case 80 /* Identifier */:\n        return { prefix: \", \" };\n      case 304 /* PropertyAssignment */:\n        return { suffix: \",\" + this.newLineCharacter };\n      case 95 /* ExportKeyword */:\n        return { prefix: \" \" };\n      case 170 /* Parameter */:\n        return {};\n      default:\n        Debug.assert(isStatement(node) || isClassOrTypeElement(node));\n        return { suffix: this.newLineCharacter };\n    }\n  }\n  insertName(sourceFile, node, name) {\n    Debug.assert(!node.name);\n    if (node.kind === 220 /* ArrowFunction */) {\n      const arrow = findChildOfKind(node, 39 /* EqualsGreaterThanToken */, sourceFile);\n      const lparen = findChildOfKind(node, 21 /* OpenParenToken */, sourceFile);\n      if (lparen) {\n        this.insertNodesAt(sourceFile, lparen.getStart(sourceFile), [factory.createToken(100 /* FunctionKeyword */), factory.createIdentifier(name)], { joiner: \" \" });\n        deleteNode(this, sourceFile, arrow);\n      } else {\n        this.insertText(sourceFile, first(node.parameters).getStart(sourceFile), `function ${name}(`);\n        this.replaceRange(sourceFile, arrow, factory.createToken(22 /* CloseParenToken */));\n      }\n      if (node.body.kind !== 242 /* Block */) {\n        this.insertNodesAt(sourceFile, node.body.getStart(sourceFile), [factory.createToken(19 /* OpenBraceToken */), factory.createToken(107 /* ReturnKeyword */)], { joiner: \" \", suffix: \" \" });\n        this.insertNodesAt(sourceFile, node.body.end, [factory.createToken(27 /* SemicolonToken */), factory.createToken(20 /* CloseBraceToken */)], { joiner: \" \" });\n      }\n    } else {\n      const pos = findChildOfKind(node, node.kind === 219 /* FunctionExpression */ ? 100 /* FunctionKeyword */ : 86 /* ClassKeyword */, sourceFile).end;\n      this.insertNodeAt(sourceFile, pos, factory.createIdentifier(name), { prefix: \" \" });\n    }\n  }\n  insertExportModifier(sourceFile, node) {\n    this.insertText(sourceFile, node.getStart(sourceFile), \"export \");\n  }\n  insertImportSpecifierAtIndex(sourceFile, importSpecifier, namedImports, index) {\n    const prevSpecifier = namedImports.elements[index - 1];\n    if (prevSpecifier) {\n      this.insertNodeInListAfter(sourceFile, prevSpecifier, importSpecifier);\n    } else {\n      this.insertNodeBefore(\n        sourceFile,\n        namedImports.elements[0],\n        importSpecifier,\n        !positionsAreOnSameLine(namedImports.elements[0].getStart(), namedImports.parent.parent.getStart(), sourceFile)\n      );\n    }\n  }\n  /**\n   * This function should be used to insert nodes in lists when nodes don't carry separators as the part of the node range,\n   * i.e. arguments in arguments lists, parameters in parameter lists etc.\n   * Note that separators are part of the node in statements and class elements.\n   */\n  insertNodeInListAfter(sourceFile, after, newNode, containingList = ts_formatting_exports.SmartIndenter.getContainingList(after, sourceFile)) {\n    if (!containingList) {\n      Debug.fail(\"node is not a list element\");\n      return;\n    }\n    const index = indexOfNode(containingList, after);\n    if (index < 0) {\n      return;\n    }\n    const end = after.getEnd();\n    if (index !== containingList.length - 1) {\n      const nextToken = getTokenAtPosition(sourceFile, after.end);\n      if (nextToken && isSeparator(after, nextToken)) {\n        const nextNode = containingList[index + 1];\n        const startPos = skipWhitespacesAndLineBreaks(sourceFile.text, nextNode.getFullStart());\n        const suffix = `${tokenToString(nextToken.kind)}${sourceFile.text.substring(nextToken.end, startPos)}`;\n        this.insertNodesAt(sourceFile, startPos, [newNode], { suffix });\n      }\n    } else {\n      const afterStart = after.getStart(sourceFile);\n      const afterStartLinePosition = getLineStartPositionForPosition(afterStart, sourceFile);\n      let separator;\n      let multilineList = false;\n      if (containingList.length === 1) {\n        separator = 28 /* CommaToken */;\n      } else {\n        const tokenBeforeInsertPosition = findPrecedingToken(after.pos, sourceFile);\n        separator = isSeparator(after, tokenBeforeInsertPosition) ? tokenBeforeInsertPosition.kind : 28 /* CommaToken */;\n        const afterMinusOneStartLinePosition = getLineStartPositionForPosition(containingList[index - 1].getStart(sourceFile), sourceFile);\n        multilineList = afterMinusOneStartLinePosition !== afterStartLinePosition;\n      }\n      if (hasCommentsBeforeLineBreak(sourceFile.text, after.end) || !positionsAreOnSameLine(containingList.pos, containingList.end, sourceFile)) {\n        multilineList = true;\n      }\n      if (multilineList) {\n        this.replaceRange(sourceFile, createRange(end), factory.createToken(separator));\n        const indentation = ts_formatting_exports.SmartIndenter.findFirstNonWhitespaceColumn(afterStartLinePosition, afterStart, sourceFile, this.formatContext.options);\n        let insertPos = skipTrivia(\n          sourceFile.text,\n          end,\n          /*stopAfterLineBreak*/\n          true,\n          /*stopAtComments*/\n          false\n        );\n        while (insertPos !== end && isLineBreak(sourceFile.text.charCodeAt(insertPos - 1))) {\n          insertPos--;\n        }\n        this.replaceRange(sourceFile, createRange(insertPos), newNode, { indentation, prefix: this.newLineCharacter });\n      } else {\n        this.replaceRange(sourceFile, createRange(end), newNode, { prefix: `${tokenToString(separator)} ` });\n      }\n    }\n  }\n  parenthesizeExpression(sourceFile, expression) {\n    this.replaceRange(sourceFile, rangeOfNode(expression), factory.createParenthesizedExpression(expression));\n  }\n  finishClassesWithNodesInsertedAtStart() {\n    this.classesWithNodesInsertedAtStart.forEach(({ node, sourceFile }) => {\n      const [openBraceEnd, closeBraceEnd] = getClassOrObjectBraceEnds(node, sourceFile);\n      if (openBraceEnd !== void 0 && closeBraceEnd !== void 0) {\n        const isEmpty = getMembersOrProperties(node).length === 0;\n        const isSingleLine = positionsAreOnSameLine(openBraceEnd, closeBraceEnd, sourceFile);\n        if (isEmpty && isSingleLine && openBraceEnd !== closeBraceEnd - 1) {\n          this.deleteRange(sourceFile, createRange(openBraceEnd, closeBraceEnd - 1));\n        }\n        if (isSingleLine) {\n          this.insertText(sourceFile, closeBraceEnd - 1, this.newLineCharacter);\n        }\n      }\n    });\n  }\n  finishDeleteDeclarations() {\n    const deletedNodesInLists = /* @__PURE__ */ new Set();\n    for (const { sourceFile, node } of this.deletedNodes) {\n      if (!this.deletedNodes.some((d) => d.sourceFile === sourceFile && rangeContainsRangeExclusive(d.node, node))) {\n        if (isArray(node)) {\n          this.deleteRange(sourceFile, rangeOfTypeParameters(sourceFile, node));\n        } else {\n          deleteDeclaration.deleteDeclaration(this, deletedNodesInLists, sourceFile, node);\n        }\n      }\n    }\n    deletedNodesInLists.forEach((node) => {\n      const sourceFile = node.getSourceFile();\n      const list = ts_formatting_exports.SmartIndenter.getContainingList(node, sourceFile);\n      if (node !== last(list)) return;\n      const lastNonDeletedIndex = findLastIndex(list, (n) => !deletedNodesInLists.has(n), list.length - 2);\n      if (lastNonDeletedIndex !== -1) {\n        this.deleteRange(sourceFile, { pos: list[lastNonDeletedIndex].end, end: startPositionToDeleteNodeInList(sourceFile, list[lastNonDeletedIndex + 1]) });\n      }\n    });\n  }\n  /**\n   * Note: after calling this, the TextChanges object must be discarded!\n   * @param validate only for tests\n   *    The reason we must validate as part of this method is that `getNonFormattedText` changes the node's positions,\n   *    so we can only call this once and can't get the non-formatted text separately.\n   */\n  getChanges(validate) {\n    this.finishDeleteDeclarations();\n    this.finishClassesWithNodesInsertedAtStart();\n    const changes = changesToText.getTextChangesFromChanges(this.changes, this.newLineCharacter, this.formatContext, validate);\n    if (this.newFileChanges) {\n      this.newFileChanges.forEach((insertions, fileName) => {\n        changes.push(changesToText.newFileChanges(fileName, insertions, this.newLineCharacter, this.formatContext));\n      });\n    }\n    return changes;\n  }\n  createNewFile(oldFile, fileName, statements) {\n    this.insertStatementsInNewFile(fileName, statements, oldFile);\n  }\n};\nfunction updateJSDocHost(parent2) {\n  if (parent2.kind !== 220 /* ArrowFunction */) {\n    return parent2;\n  }\n  const jsDocNode = parent2.parent.kind === 173 /* PropertyDeclaration */ ? parent2.parent : parent2.parent.parent;\n  jsDocNode.jsDoc = parent2.jsDoc;\n  return jsDocNode;\n}\nfunction tryMergeJsdocTags(oldTag, newTag) {\n  if (oldTag.kind !== newTag.kind) {\n    return void 0;\n  }\n  switch (oldTag.kind) {\n    case 342 /* JSDocParameterTag */: {\n      const oldParam = oldTag;\n      const newParam = newTag;\n      return isIdentifier(oldParam.name) && isIdentifier(newParam.name) && oldParam.name.escapedText === newParam.name.escapedText ? factory.createJSDocParameterTag(\n        /*tagName*/\n        void 0,\n        newParam.name,\n        /*isBracketed*/\n        false,\n        newParam.typeExpression,\n        newParam.isNameFirst,\n        oldParam.comment\n      ) : void 0;\n    }\n    case 343 /* JSDocReturnTag */:\n      return factory.createJSDocReturnTag(\n        /*tagName*/\n        void 0,\n        newTag.typeExpression,\n        oldTag.comment\n      );\n    case 345 /* JSDocTypeTag */:\n      return factory.createJSDocTypeTag(\n        /*tagName*/\n        void 0,\n        newTag.typeExpression,\n        oldTag.comment\n      );\n  }\n}\nfunction startPositionToDeleteNodeInList(sourceFile, node) {\n  return skipTrivia(\n    sourceFile.text,\n    getAdjustedStartPosition(sourceFile, node, { leadingTriviaOption: 1 /* IncludeAll */ }),\n    /*stopAfterLineBreak*/\n    false,\n    /*stopAtComments*/\n    true\n  );\n}\nfunction endPositionToDeleteNodeInList(sourceFile, node, prevNode, nextNode) {\n  const end = startPositionToDeleteNodeInList(sourceFile, nextNode);\n  if (prevNode === void 0 || positionsAreOnSameLine(getAdjustedEndPosition(sourceFile, node, {}), end, sourceFile)) {\n    return end;\n  }\n  const token = findPrecedingToken(nextNode.getStart(sourceFile), sourceFile);\n  if (isSeparator(node, token)) {\n    const prevToken = findPrecedingToken(node.getStart(sourceFile), sourceFile);\n    if (isSeparator(prevNode, prevToken)) {\n      const pos = skipTrivia(\n        sourceFile.text,\n        token.getEnd(),\n        /*stopAfterLineBreak*/\n        true,\n        /*stopAtComments*/\n        true\n      );\n      if (positionsAreOnSameLine(prevToken.getStart(sourceFile), token.getStart(sourceFile), sourceFile)) {\n        return isLineBreak(sourceFile.text.charCodeAt(pos - 1)) ? pos - 1 : pos;\n      }\n      if (isLineBreak(sourceFile.text.charCodeAt(pos))) {\n        return pos;\n      }\n    }\n  }\n  return end;\n}\nfunction getClassOrObjectBraceEnds(cls, sourceFile) {\n  const open = findChildOfKind(cls, 19 /* OpenBraceToken */, sourceFile);\n  const close = findChildOfKind(cls, 20 /* CloseBraceToken */, sourceFile);\n  return [open == null ? void 0 : open.end, close == null ? void 0 : close.end];\n}\nfunction getMembersOrProperties(node) {\n  return isObjectLiteralExpression(node) ? node.properties : node.members;\n}\nvar changesToText;\n((changesToText2) => {\n  function getTextChangesFromChanges(changes, newLineCharacter, formatContext, validate) {\n    return mapDefined(group(changes, (c) => c.sourceFile.path), (changesInFile) => {\n      const sourceFile = changesInFile[0].sourceFile;\n      const normalized = toSorted(changesInFile, (a, b) => a.range.pos - b.range.pos || a.range.end - b.range.end);\n      for (let i = 0; i < normalized.length - 1; i++) {\n        Debug.assert(normalized[i].range.end <= normalized[i + 1].range.pos, \"Changes overlap\", () => `${JSON.stringify(normalized[i].range)} and ${JSON.stringify(normalized[i + 1].range)}`);\n      }\n      const textChanges2 = mapDefined(normalized, (c) => {\n        const span = createTextSpanFromRange(c.range);\n        const targetSourceFile = c.kind === 1 /* ReplaceWithSingleNode */ ? getSourceFileOfNode(getOriginalNode(c.node)) ?? c.sourceFile : c.kind === 2 /* ReplaceWithMultipleNodes */ ? getSourceFileOfNode(getOriginalNode(c.nodes[0])) ?? c.sourceFile : c.sourceFile;\n        const newText = computeNewText(c, targetSourceFile, sourceFile, newLineCharacter, formatContext, validate);\n        if (span.length === newText.length && stringContainsAt(targetSourceFile.text, newText, span.start)) {\n          return void 0;\n        }\n        return createTextChange(span, newText);\n      });\n      return textChanges2.length > 0 ? { fileName: sourceFile.fileName, textChanges: textChanges2 } : void 0;\n    });\n  }\n  changesToText2.getTextChangesFromChanges = getTextChangesFromChanges;\n  function newFileChanges(fileName, insertions, newLineCharacter, formatContext) {\n    const text = newFileChangesWorker(getScriptKindFromFileName(fileName), insertions, newLineCharacter, formatContext);\n    return { fileName, textChanges: [createTextChange(createTextSpan(0, 0), text)], isNewFile: true };\n  }\n  changesToText2.newFileChanges = newFileChanges;\n  function newFileChangesWorker(scriptKind, insertions, newLineCharacter, formatContext) {\n    const nonFormattedText = flatMap(insertions, (insertion) => insertion.statements.map((s) => s === 4 /* NewLineTrivia */ ? \"\" : getNonformattedText(s, insertion.oldFile, newLineCharacter).text)).join(newLineCharacter);\n    const sourceFile = createSourceFile(\n      \"any file name\",\n      nonFormattedText,\n      { languageVersion: 99 /* ESNext */, jsDocParsingMode: 1 /* ParseNone */ },\n      /*setParentNodes*/\n      true,\n      scriptKind\n    );\n    const changes = ts_formatting_exports.formatDocument(sourceFile, formatContext);\n    return applyChanges(nonFormattedText, changes) + newLineCharacter;\n  }\n  changesToText2.newFileChangesWorker = newFileChangesWorker;\n  function computeNewText(change, targetSourceFile, sourceFile, newLineCharacter, formatContext, validate) {\n    var _a;\n    if (change.kind === 0 /* Remove */) {\n      return \"\";\n    }\n    if (change.kind === 3 /* Text */) {\n      return change.text;\n    }\n    const { options = {}, range: { pos } } = change;\n    const format = (n) => getFormattedTextOfNode(n, targetSourceFile, sourceFile, pos, options, newLineCharacter, formatContext, validate);\n    const text = change.kind === 2 /* ReplaceWithMultipleNodes */ ? change.nodes.map((n) => removeSuffix(format(n), newLineCharacter)).join(((_a = change.options) == null ? void 0 : _a.joiner) || newLineCharacter) : format(change.node);\n    const noIndent = options.indentation !== void 0 || getLineStartPositionForPosition(pos, targetSourceFile) === pos ? text : text.replace(/^\\s+/, \"\");\n    return (options.prefix || \"\") + noIndent + (!options.suffix || endsWith(noIndent, options.suffix) ? \"\" : options.suffix);\n  }\n  function getFormattedTextOfNode(nodeIn, targetSourceFile, sourceFile, pos, { indentation, prefix, delta }, newLineCharacter, formatContext, validate) {\n    const { node, text } = getNonformattedText(nodeIn, targetSourceFile, newLineCharacter);\n    if (validate) validate(node, text);\n    const formatOptions = getFormatCodeSettingsForWriting(formatContext, targetSourceFile);\n    const initialIndentation = indentation !== void 0 ? indentation : ts_formatting_exports.SmartIndenter.getIndentation(pos, sourceFile, formatOptions, prefix === newLineCharacter || getLineStartPositionForPosition(pos, targetSourceFile) === pos);\n    if (delta === void 0) {\n      delta = ts_formatting_exports.SmartIndenter.shouldIndentChildNode(formatOptions, nodeIn) ? formatOptions.indentSize || 0 : 0;\n    }\n    const file = {\n      text,\n      getLineAndCharacterOfPosition(pos2) {\n        return getLineAndCharacterOfPosition(this, pos2);\n      }\n    };\n    const changes = ts_formatting_exports.formatNodeGivenIndentation(node, file, targetSourceFile.languageVariant, initialIndentation, delta, { ...formatContext, options: formatOptions });\n    return applyChanges(text, changes);\n  }\n  function getNonformattedText(node, sourceFile, newLineCharacter) {\n    const writer = createWriter(newLineCharacter);\n    const newLine = getNewLineKind(newLineCharacter);\n    createPrinter({\n      newLine,\n      neverAsciiEscape: true,\n      preserveSourceNewlines: true,\n      terminateUnterminatedLiterals: true\n    }, writer).writeNode(4 /* Unspecified */, node, sourceFile, writer);\n    return { text: writer.getText(), node: assignPositionsToNode(node) };\n  }\n  changesToText2.getNonformattedText = getNonformattedText;\n})(changesToText || (changesToText = {}));\nfunction applyChanges(text, changes) {\n  for (let i = changes.length - 1; i >= 0; i--) {\n    const { span, newText } = changes[i];\n    text = `${text.substring(0, span.start)}${newText}${text.substring(textSpanEnd(span))}`;\n  }\n  return text;\n}\nfunction isTrivia2(s) {\n  return skipTrivia(s, 0) === s.length;\n}\nvar textChangesTransformationContext = {\n  ...nullTransformationContext,\n  factory: createNodeFactory(\n    nullTransformationContext.factory.flags | 1 /* NoParenthesizerRules */,\n    nullTransformationContext.factory.baseFactory\n  )\n};\nfunction assignPositionsToNode(node) {\n  const visited = visitEachChild(node, assignPositionsToNode, textChangesTransformationContext, assignPositionsToNodeArray, assignPositionsToNode);\n  const newNode = nodeIsSynthesized(visited) ? visited : Object.create(visited);\n  setTextRangePosEnd(newNode, getPos2(node), getEnd(node));\n  return newNode;\n}\nfunction assignPositionsToNodeArray(nodes, visitor, test, start, count) {\n  const visited = visitNodes2(nodes, visitor, test, start, count);\n  if (!visited) {\n    return visited;\n  }\n  Debug.assert(nodes);\n  const nodeArray = visited === nodes ? factory.createNodeArray(visited.slice(0)) : visited;\n  setTextRangePosEnd(nodeArray, getPos2(nodes), getEnd(nodes));\n  return nodeArray;\n}\nfunction createWriter(newLine) {\n  let lastNonTriviaPosition = 0;\n  const writer = createTextWriter(newLine);\n  const onBeforeEmitNode = (node) => {\n    if (node) {\n      setPos(node, lastNonTriviaPosition);\n    }\n  };\n  const onAfterEmitNode = (node) => {\n    if (node) {\n      setEnd(node, lastNonTriviaPosition);\n    }\n  };\n  const onBeforeEmitNodeArray = (nodes) => {\n    if (nodes) {\n      setPos(nodes, lastNonTriviaPosition);\n    }\n  };\n  const onAfterEmitNodeArray = (nodes) => {\n    if (nodes) {\n      setEnd(nodes, lastNonTriviaPosition);\n    }\n  };\n  const onBeforeEmitToken = (node) => {\n    if (node) {\n      setPos(node, lastNonTriviaPosition);\n    }\n  };\n  const onAfterEmitToken = (node) => {\n    if (node) {\n      setEnd(node, lastNonTriviaPosition);\n    }\n  };\n  function setLastNonTriviaPosition(s, force) {\n    if (force || !isTrivia2(s)) {\n      lastNonTriviaPosition = writer.getTextPos();\n      let i = 0;\n      while (isWhiteSpaceLike(s.charCodeAt(s.length - i - 1))) {\n        i++;\n      }\n      lastNonTriviaPosition -= i;\n    }\n  }\n  function write(s) {\n    writer.write(s);\n    setLastNonTriviaPosition(\n      s,\n      /*force*/\n      false\n    );\n  }\n  function writeComment(s) {\n    writer.writeComment(s);\n  }\n  function writeKeyword(s) {\n    writer.writeKeyword(s);\n    setLastNonTriviaPosition(\n      s,\n      /*force*/\n      false\n    );\n  }\n  function writeOperator(s) {\n    writer.writeOperator(s);\n    setLastNonTriviaPosition(\n      s,\n      /*force*/\n      false\n    );\n  }\n  function writePunctuation(s) {\n    writer.writePunctuation(s);\n    setLastNonTriviaPosition(\n      s,\n      /*force*/\n      false\n    );\n  }\n  function writeTrailingSemicolon(s) {\n    writer.writeTrailingSemicolon(s);\n    setLastNonTriviaPosition(\n      s,\n      /*force*/\n      false\n    );\n  }\n  function writeParameter(s) {\n    writer.writeParameter(s);\n    setLastNonTriviaPosition(\n      s,\n      /*force*/\n      false\n    );\n  }\n  function writeProperty(s) {\n    writer.writeProperty(s);\n    setLastNonTriviaPosition(\n      s,\n      /*force*/\n      false\n    );\n  }\n  function writeSpace(s) {\n    writer.writeSpace(s);\n    setLastNonTriviaPosition(\n      s,\n      /*force*/\n      false\n    );\n  }\n  function writeStringLiteral(s) {\n    writer.writeStringLiteral(s);\n    setLastNonTriviaPosition(\n      s,\n      /*force*/\n      false\n    );\n  }\n  function writeSymbol(s, sym) {\n    writer.writeSymbol(s, sym);\n    setLastNonTriviaPosition(\n      s,\n      /*force*/\n      false\n    );\n  }\n  function writeLine(force) {\n    writer.writeLine(force);\n  }\n  function increaseIndent() {\n    writer.increaseIndent();\n  }\n  function decreaseIndent() {\n    writer.decreaseIndent();\n  }\n  function getText() {\n    return writer.getText();\n  }\n  function rawWrite(s) {\n    writer.rawWrite(s);\n    setLastNonTriviaPosition(\n      s,\n      /*force*/\n      false\n    );\n  }\n  function writeLiteral(s) {\n    writer.writeLiteral(s);\n    setLastNonTriviaPosition(\n      s,\n      /*force*/\n      true\n    );\n  }\n  function getTextPos() {\n    return writer.getTextPos();\n  }\n  function getLine() {\n    return writer.getLine();\n  }\n  function getColumn() {\n    return writer.getColumn();\n  }\n  function getIndent() {\n    return writer.getIndent();\n  }\n  function isAtStartOfLine() {\n    return writer.isAtStartOfLine();\n  }\n  function clear2() {\n    writer.clear();\n    lastNonTriviaPosition = 0;\n  }\n  return {\n    onBeforeEmitNode,\n    onAfterEmitNode,\n    onBeforeEmitNodeArray,\n    onAfterEmitNodeArray,\n    onBeforeEmitToken,\n    onAfterEmitToken,\n    write,\n    writeComment,\n    writeKeyword,\n    writeOperator,\n    writePunctuation,\n    writeTrailingSemicolon,\n    writeParameter,\n    writeProperty,\n    writeSpace,\n    writeStringLiteral,\n    writeSymbol,\n    writeLine,\n    increaseIndent,\n    decreaseIndent,\n    getText,\n    rawWrite,\n    writeLiteral,\n    getTextPos,\n    getLine,\n    getColumn,\n    getIndent,\n    isAtStartOfLine,\n    hasTrailingComment: () => writer.hasTrailingComment(),\n    hasTrailingWhitespace: () => writer.hasTrailingWhitespace(),\n    clear: clear2\n  };\n}\nfunction getInsertionPositionAtSourceFileTop(sourceFile) {\n  let lastPrologue;\n  for (const node of sourceFile.statements) {\n    if (isPrologueDirective(node)) {\n      lastPrologue = node;\n    } else {\n      break;\n    }\n  }\n  let position = 0;\n  const text = sourceFile.text;\n  if (lastPrologue) {\n    position = lastPrologue.end;\n    advancePastLineBreak();\n    return position;\n  }\n  const shebang = getShebang(text);\n  if (shebang !== void 0) {\n    position = shebang.length;\n    advancePastLineBreak();\n  }\n  const ranges = getLeadingCommentRanges(text, position);\n  if (!ranges) return position;\n  let lastComment;\n  let firstNodeLine;\n  for (const range of ranges) {\n    if (range.kind === 3 /* MultiLineCommentTrivia */) {\n      if (isPinnedComment(text, range.pos)) {\n        lastComment = { range, pinnedOrTripleSlash: true };\n        continue;\n      }\n    } else if (isRecognizedTripleSlashComment(text, range.pos, range.end)) {\n      lastComment = { range, pinnedOrTripleSlash: true };\n      continue;\n    }\n    if (lastComment) {\n      if (lastComment.pinnedOrTripleSlash) break;\n      const commentLine = sourceFile.getLineAndCharacterOfPosition(range.pos).line;\n      const lastCommentEndLine = sourceFile.getLineAndCharacterOfPosition(lastComment.range.end).line;\n      if (commentLine >= lastCommentEndLine + 2) break;\n    }\n    if (sourceFile.statements.length) {\n      if (firstNodeLine === void 0) firstNodeLine = sourceFile.getLineAndCharacterOfPosition(sourceFile.statements[0].getStart()).line;\n      const commentEndLine = sourceFile.getLineAndCharacterOfPosition(range.end).line;\n      if (firstNodeLine < commentEndLine + 2) break;\n    }\n    lastComment = { range, pinnedOrTripleSlash: false };\n  }\n  if (lastComment) {\n    position = lastComment.range.end;\n    advancePastLineBreak();\n  }\n  return position;\n  function advancePastLineBreak() {\n    if (position < text.length) {\n      const charCode = text.charCodeAt(position);\n      if (isLineBreak(charCode)) {\n        position++;\n        if (position < text.length && charCode === 13 /* carriageReturn */ && text.charCodeAt(position) === 10 /* lineFeed */) {\n          position++;\n        }\n      }\n    }\n  }\n}\nfunction isValidLocationToAddComment(sourceFile, position) {\n  return !isInComment(sourceFile, position) && !isInString(sourceFile, position) && !isInTemplateString(sourceFile, position) && !isInJSXText(sourceFile, position);\n}\nfunction needSemicolonBetween(a, b) {\n  return (isPropertySignature(a) || isPropertyDeclaration(a)) && isClassOrTypeElement(b) && b.name.kind === 168 /* ComputedPropertyName */ || isStatementButNotDeclaration(a) && isStatementButNotDeclaration(b);\n}\nvar deleteDeclaration;\n((_deleteDeclaration) => {\n  function deleteDeclaration2(changes, deletedNodesInLists, sourceFile, node) {\n    switch (node.kind) {\n      case 170 /* Parameter */: {\n        const oldFunction = node.parent;\n        if (isArrowFunction(oldFunction) && oldFunction.parameters.length === 1 && !findChildOfKind(oldFunction, 21 /* OpenParenToken */, sourceFile)) {\n          changes.replaceNodeWithText(sourceFile, node, \"()\");\n        } else {\n          deleteNodeInList(changes, deletedNodesInLists, sourceFile, node);\n        }\n        break;\n      }\n      case 273 /* ImportDeclaration */:\n      case 272 /* ImportEqualsDeclaration */:\n        const isFirstImport = sourceFile.imports.length && node === first(sourceFile.imports).parent || node === find(sourceFile.statements, isAnyImportSyntax);\n        deleteNode(changes, sourceFile, node, {\n          leadingTriviaOption: isFirstImport ? 0 /* Exclude */ : hasJSDocNodes(node) ? 2 /* JSDoc */ : 3 /* StartLine */\n        });\n        break;\n      case 209 /* BindingElement */:\n        const pattern = node.parent;\n        const preserveComma = pattern.kind === 208 /* ArrayBindingPattern */ && node !== last(pattern.elements);\n        if (preserveComma) {\n          deleteNode(changes, sourceFile, node);\n        } else {\n          deleteNodeInList(changes, deletedNodesInLists, sourceFile, node);\n        }\n        break;\n      case 261 /* VariableDeclaration */:\n        deleteVariableDeclaration(changes, deletedNodesInLists, sourceFile, node);\n        break;\n      case 169 /* TypeParameter */:\n        deleteNodeInList(changes, deletedNodesInLists, sourceFile, node);\n        break;\n      case 277 /* ImportSpecifier */:\n        const namedImports = node.parent;\n        if (namedImports.elements.length === 1) {\n          deleteImportBinding(changes, sourceFile, namedImports);\n        } else {\n          deleteNodeInList(changes, deletedNodesInLists, sourceFile, node);\n        }\n        break;\n      case 275 /* NamespaceImport */:\n        deleteImportBinding(changes, sourceFile, node);\n        break;\n      case 27 /* SemicolonToken */:\n        deleteNode(changes, sourceFile, node, { trailingTriviaOption: 0 /* Exclude */ });\n        break;\n      case 100 /* FunctionKeyword */:\n        deleteNode(changes, sourceFile, node, { leadingTriviaOption: 0 /* Exclude */ });\n        break;\n      case 264 /* ClassDeclaration */:\n      case 263 /* FunctionDeclaration */:\n        deleteNode(changes, sourceFile, node, { leadingTriviaOption: hasJSDocNodes(node) ? 2 /* JSDoc */ : 3 /* StartLine */ });\n        break;\n      default:\n        if (!node.parent) {\n          deleteNode(changes, sourceFile, node);\n        } else if (isImportClause(node.parent) && node.parent.name === node) {\n          deleteDefaultImport(changes, sourceFile, node.parent);\n        } else if (isCallExpression(node.parent) && contains(node.parent.arguments, node)) {\n          deleteNodeInList(changes, deletedNodesInLists, sourceFile, node);\n        } else {\n          deleteNode(changes, sourceFile, node);\n        }\n    }\n  }\n  _deleteDeclaration.deleteDeclaration = deleteDeclaration2;\n  function deleteDefaultImport(changes, sourceFile, importClause) {\n    if (!importClause.namedBindings) {\n      deleteNode(changes, sourceFile, importClause.parent);\n    } else {\n      const start = importClause.name.getStart(sourceFile);\n      const nextToken = getTokenAtPosition(sourceFile, importClause.name.end);\n      if (nextToken && nextToken.kind === 28 /* CommaToken */) {\n        const end = skipTrivia(\n          sourceFile.text,\n          nextToken.end,\n          /*stopAfterLineBreak*/\n          false,\n          /*stopAtComments*/\n          true\n        );\n        changes.deleteRange(sourceFile, { pos: start, end });\n      } else {\n        deleteNode(changes, sourceFile, importClause.name);\n      }\n    }\n  }\n  function deleteImportBinding(changes, sourceFile, node) {\n    if (node.parent.name) {\n      const previousToken = Debug.checkDefined(getTokenAtPosition(sourceFile, node.pos - 1));\n      changes.deleteRange(sourceFile, { pos: previousToken.getStart(sourceFile), end: node.end });\n    } else {\n      const importDecl = getAncestor(node, 273 /* ImportDeclaration */);\n      deleteNode(changes, sourceFile, importDecl);\n    }\n  }\n  function deleteVariableDeclaration(changes, deletedNodesInLists, sourceFile, node) {\n    const { parent: parent2 } = node;\n    if (parent2.kind === 300 /* CatchClause */) {\n      changes.deleteNodeRange(sourceFile, findChildOfKind(parent2, 21 /* OpenParenToken */, sourceFile), findChildOfKind(parent2, 22 /* CloseParenToken */, sourceFile));\n      return;\n    }\n    if (parent2.declarations.length !== 1) {\n      deleteNodeInList(changes, deletedNodesInLists, sourceFile, node);\n      return;\n    }\n    const gp = parent2.parent;\n    switch (gp.kind) {\n      case 251 /* ForOfStatement */:\n      case 250 /* ForInStatement */:\n        changes.replaceNode(sourceFile, node, factory.createObjectLiteralExpression());\n        break;\n      case 249 /* ForStatement */:\n        deleteNode(changes, sourceFile, parent2);\n        break;\n      case 244 /* VariableStatement */:\n        deleteNode(changes, sourceFile, gp, { leadingTriviaOption: hasJSDocNodes(gp) ? 2 /* JSDoc */ : 3 /* StartLine */ });\n        break;\n      default:\n        Debug.assertNever(gp);\n    }\n  }\n})(deleteDeclaration || (deleteDeclaration = {}));\nfunction deleteNode(changes, sourceFile, node, options = { leadingTriviaOption: 1 /* IncludeAll */ }) {\n  const startPosition = getAdjustedStartPosition(sourceFile, node, options);\n  const endPosition = getAdjustedEndPosition(sourceFile, node, options);\n  changes.deleteRange(sourceFile, { pos: startPosition, end: endPosition });\n}\nfunction deleteNodeInList(changes, deletedNodesInLists, sourceFile, node) {\n  const containingList = Debug.checkDefined(ts_formatting_exports.SmartIndenter.getContainingList(node, sourceFile));\n  const index = indexOfNode(containingList, node);\n  Debug.assert(index !== -1);\n  if (containingList.length === 1) {\n    deleteNode(changes, sourceFile, node);\n    return;\n  }\n  Debug.assert(!deletedNodesInLists.has(node), \"Deleting a node twice\");\n  deletedNodesInLists.add(node);\n  changes.deleteRange(sourceFile, {\n    pos: startPositionToDeleteNodeInList(sourceFile, node),\n    end: index === containingList.length - 1 ? getAdjustedEndPosition(sourceFile, node, {}) : endPositionToDeleteNodeInList(sourceFile, node, containingList[index - 1], containingList[index + 1])\n  });\n}\n\n// src/services/_namespaces/ts.formatting.ts\nvar ts_formatting_exports = {};\n__export(ts_formatting_exports, {\n  FormattingContext: () => FormattingContext,\n  FormattingRequestKind: () => FormattingRequestKind,\n  RuleAction: () => RuleAction,\n  RuleFlags: () => RuleFlags,\n  SmartIndenter: () => SmartIndenter,\n  anyContext: () => anyContext,\n  createTextRangeWithKind: () => createTextRangeWithKind,\n  formatDocument: () => formatDocument,\n  formatNodeGivenIndentation: () => formatNodeGivenIndentation,\n  formatOnClosingCurly: () => formatOnClosingCurly,\n  formatOnEnter: () => formatOnEnter,\n  formatOnOpeningCurly: () => formatOnOpeningCurly,\n  formatOnSemicolon: () => formatOnSemicolon,\n  formatSelection: () => formatSelection,\n  getAllRules: () => getAllRules,\n  getFormatContext: () => getFormatContext,\n  getFormattingScanner: () => getFormattingScanner,\n  getIndentationString: () => getIndentationString,\n  getRangeOfEnclosingComment: () => getRangeOfEnclosingComment\n});\n\n// src/services/formatting/formattingContext.ts\nvar FormattingRequestKind = /* @__PURE__ */ ((FormattingRequestKind2) => {\n  FormattingRequestKind2[FormattingRequestKind2[\"FormatDocument\"] = 0] = \"FormatDocument\";\n  FormattingRequestKind2[FormattingRequestKind2[\"FormatSelection\"] = 1] = \"FormatSelection\";\n  FormattingRequestKind2[FormattingRequestKind2[\"FormatOnEnter\"] = 2] = \"FormatOnEnter\";\n  FormattingRequestKind2[FormattingRequestKind2[\"FormatOnSemicolon\"] = 3] = \"FormatOnSemicolon\";\n  FormattingRequestKind2[FormattingRequestKind2[\"FormatOnOpeningCurlyBrace\"] = 4] = \"FormatOnOpeningCurlyBrace\";\n  FormattingRequestKind2[FormattingRequestKind2[\"FormatOnClosingCurlyBrace\"] = 5] = \"FormatOnClosingCurlyBrace\";\n  return FormattingRequestKind2;\n})(FormattingRequestKind || {});\nvar FormattingContext = class {\n  constructor(sourceFile, formattingRequestKind, options) {\n    this.sourceFile = sourceFile;\n    this.formattingRequestKind = formattingRequestKind;\n    this.options = options;\n  }\n  updateContext(currentRange, currentTokenParent, nextRange, nextTokenParent, commonParent) {\n    this.currentTokenSpan = Debug.checkDefined(currentRange);\n    this.currentTokenParent = Debug.checkDefined(currentTokenParent);\n    this.nextTokenSpan = Debug.checkDefined(nextRange);\n    this.nextTokenParent = Debug.checkDefined(nextTokenParent);\n    this.contextNode = Debug.checkDefined(commonParent);\n    this.contextNodeAllOnSameLine = void 0;\n    this.nextNodeAllOnSameLine = void 0;\n    this.tokensAreOnSameLine = void 0;\n    this.contextNodeBlockIsOnOneLine = void 0;\n    this.nextNodeBlockIsOnOneLine = void 0;\n  }\n  ContextNodeAllOnSameLine() {\n    if (this.contextNodeAllOnSameLine === void 0) {\n      this.contextNodeAllOnSameLine = this.NodeIsOnOneLine(this.contextNode);\n    }\n    return this.contextNodeAllOnSameLine;\n  }\n  NextNodeAllOnSameLine() {\n    if (this.nextNodeAllOnSameLine === void 0) {\n      this.nextNodeAllOnSameLine = this.NodeIsOnOneLine(this.nextTokenParent);\n    }\n    return this.nextNodeAllOnSameLine;\n  }\n  TokensAreOnSameLine() {\n    if (this.tokensAreOnSameLine === void 0) {\n      const startLine = this.sourceFile.getLineAndCharacterOfPosition(this.currentTokenSpan.pos).line;\n      const endLine = this.sourceFile.getLineAndCharacterOfPosition(this.nextTokenSpan.pos).line;\n      this.tokensAreOnSameLine = startLine === endLine;\n    }\n    return this.tokensAreOnSameLine;\n  }\n  ContextNodeBlockIsOnOneLine() {\n    if (this.contextNodeBlockIsOnOneLine === void 0) {\n      this.contextNodeBlockIsOnOneLine = this.BlockIsOnOneLine(this.contextNode);\n    }\n    return this.contextNodeBlockIsOnOneLine;\n  }\n  NextNodeBlockIsOnOneLine() {\n    if (this.nextNodeBlockIsOnOneLine === void 0) {\n      this.nextNodeBlockIsOnOneLine = this.BlockIsOnOneLine(this.nextTokenParent);\n    }\n    return this.nextNodeBlockIsOnOneLine;\n  }\n  NodeIsOnOneLine(node) {\n    const startLine = this.sourceFile.getLineAndCharacterOfPosition(node.getStart(this.sourceFile)).line;\n    const endLine = this.sourceFile.getLineAndCharacterOfPosition(node.getEnd()).line;\n    return startLine === endLine;\n  }\n  BlockIsOnOneLine(node) {\n    const openBrace = findChildOfKind(node, 19 /* OpenBraceToken */, this.sourceFile);\n    const closeBrace = findChildOfKind(node, 20 /* CloseBraceToken */, this.sourceFile);\n    if (openBrace && closeBrace) {\n      const startLine = this.sourceFile.getLineAndCharacterOfPosition(openBrace.getEnd()).line;\n      const endLine = this.sourceFile.getLineAndCharacterOfPosition(closeBrace.getStart(this.sourceFile)).line;\n      return startLine === endLine;\n    }\n    return false;\n  }\n};\n\n// src/services/formatting/formattingScanner.ts\nvar standardScanner = createScanner(\n  99 /* Latest */,\n  /*skipTrivia*/\n  false,\n  0 /* Standard */\n);\nvar jsxScanner = createScanner(\n  99 /* Latest */,\n  /*skipTrivia*/\n  false,\n  1 /* JSX */\n);\nfunction getFormattingScanner(text, languageVariant, startPos, endPos, cb) {\n  const scanner2 = languageVariant === 1 /* JSX */ ? jsxScanner : standardScanner;\n  scanner2.setText(text);\n  scanner2.resetTokenState(startPos);\n  let wasNewLine = true;\n  let leadingTrivia;\n  let trailingTrivia;\n  let savedPos;\n  let lastScanAction;\n  let lastTokenInfo;\n  const res = cb({\n    advance,\n    readTokenInfo,\n    readEOFTokenRange,\n    isOnToken,\n    isOnEOF,\n    getCurrentLeadingTrivia: () => leadingTrivia,\n    lastTrailingTriviaWasNewLine: () => wasNewLine,\n    skipToEndOf,\n    skipToStartOf,\n    getTokenFullStart: () => (lastTokenInfo == null ? void 0 : lastTokenInfo.token.pos) ?? scanner2.getTokenStart(),\n    getStartPos: () => (lastTokenInfo == null ? void 0 : lastTokenInfo.token.pos) ?? scanner2.getTokenStart()\n  });\n  lastTokenInfo = void 0;\n  scanner2.setText(void 0);\n  return res;\n  function advance() {\n    lastTokenInfo = void 0;\n    const isStarted = scanner2.getTokenFullStart() !== startPos;\n    if (isStarted) {\n      wasNewLine = !!trailingTrivia && last(trailingTrivia).kind === 4 /* NewLineTrivia */;\n    } else {\n      scanner2.scan();\n    }\n    leadingTrivia = void 0;\n    trailingTrivia = void 0;\n    let pos = scanner2.getTokenFullStart();\n    while (pos < endPos) {\n      const t = scanner2.getToken();\n      if (!isTrivia(t)) {\n        break;\n      }\n      scanner2.scan();\n      const item = {\n        pos,\n        end: scanner2.getTokenFullStart(),\n        kind: t\n      };\n      pos = scanner2.getTokenFullStart();\n      leadingTrivia = append(leadingTrivia, item);\n    }\n    savedPos = scanner2.getTokenFullStart();\n  }\n  function shouldRescanGreaterThanToken(node) {\n    switch (node.kind) {\n      case 34 /* GreaterThanEqualsToken */:\n      case 72 /* GreaterThanGreaterThanEqualsToken */:\n      case 73 /* GreaterThanGreaterThanGreaterThanEqualsToken */:\n      case 50 /* GreaterThanGreaterThanGreaterThanToken */:\n      case 49 /* GreaterThanGreaterThanToken */:\n        return true;\n    }\n    return false;\n  }\n  function shouldRescanJsxIdentifier(node) {\n    if (node.parent) {\n      switch (node.parent.kind) {\n        case 292 /* JsxAttribute */:\n        case 287 /* JsxOpeningElement */:\n        case 288 /* JsxClosingElement */:\n        case 286 /* JsxSelfClosingElement */:\n          return isKeyword(node.kind) || node.kind === 80 /* Identifier */;\n      }\n    }\n    return false;\n  }\n  function shouldRescanJsxText(node) {\n    return isJsxText(node) || isJsxElement(node) && (lastTokenInfo == null ? void 0 : lastTokenInfo.token.kind) === 12 /* JsxText */;\n  }\n  function shouldRescanSlashToken(container) {\n    return container.kind === 14 /* RegularExpressionLiteral */;\n  }\n  function shouldRescanTemplateToken(container) {\n    return container.kind === 17 /* TemplateMiddle */ || container.kind === 18 /* TemplateTail */;\n  }\n  function shouldRescanJsxAttributeValue(node) {\n    return node.parent && isJsxAttribute(node.parent) && node.parent.initializer === node;\n  }\n  function startsWithSlashToken(t) {\n    return t === 44 /* SlashToken */ || t === 69 /* SlashEqualsToken */;\n  }\n  function readTokenInfo(n) {\n    Debug.assert(isOnToken());\n    const expectedScanAction = shouldRescanGreaterThanToken(n) ? 1 /* RescanGreaterThanToken */ : shouldRescanSlashToken(n) ? 2 /* RescanSlashToken */ : shouldRescanTemplateToken(n) ? 3 /* RescanTemplateToken */ : shouldRescanJsxIdentifier(n) ? 4 /* RescanJsxIdentifier */ : shouldRescanJsxText(n) ? 5 /* RescanJsxText */ : shouldRescanJsxAttributeValue(n) ? 6 /* RescanJsxAttributeValue */ : 0 /* Scan */;\n    if (lastTokenInfo && expectedScanAction === lastScanAction) {\n      return fixTokenKind(lastTokenInfo, n);\n    }\n    if (scanner2.getTokenFullStart() !== savedPos) {\n      Debug.assert(lastTokenInfo !== void 0);\n      scanner2.resetTokenState(savedPos);\n      scanner2.scan();\n    }\n    let currentToken = getNextToken(n, expectedScanAction);\n    const token = createTextRangeWithKind(\n      scanner2.getTokenFullStart(),\n      scanner2.getTokenEnd(),\n      currentToken\n    );\n    if (trailingTrivia) {\n      trailingTrivia = void 0;\n    }\n    while (scanner2.getTokenFullStart() < endPos) {\n      currentToken = scanner2.scan();\n      if (!isTrivia(currentToken)) {\n        break;\n      }\n      const trivia = createTextRangeWithKind(\n        scanner2.getTokenFullStart(),\n        scanner2.getTokenEnd(),\n        currentToken\n      );\n      if (!trailingTrivia) {\n        trailingTrivia = [];\n      }\n      trailingTrivia.push(trivia);\n      if (currentToken === 4 /* NewLineTrivia */) {\n        scanner2.scan();\n        break;\n      }\n    }\n    lastTokenInfo = { leadingTrivia, trailingTrivia, token };\n    return fixTokenKind(lastTokenInfo, n);\n  }\n  function getNextToken(n, expectedScanAction) {\n    const token = scanner2.getToken();\n    lastScanAction = 0 /* Scan */;\n    switch (expectedScanAction) {\n      case 1 /* RescanGreaterThanToken */:\n        if (token === 32 /* GreaterThanToken */) {\n          lastScanAction = 1 /* RescanGreaterThanToken */;\n          const newToken = scanner2.reScanGreaterToken();\n          Debug.assert(n.kind === newToken);\n          return newToken;\n        }\n        break;\n      case 2 /* RescanSlashToken */:\n        if (startsWithSlashToken(token)) {\n          lastScanAction = 2 /* RescanSlashToken */;\n          const newToken = scanner2.reScanSlashToken();\n          Debug.assert(n.kind === newToken);\n          return newToken;\n        }\n        break;\n      case 3 /* RescanTemplateToken */:\n        if (token === 20 /* CloseBraceToken */) {\n          lastScanAction = 3 /* RescanTemplateToken */;\n          return scanner2.reScanTemplateToken(\n            /*isTaggedTemplate*/\n            false\n          );\n        }\n        break;\n      case 4 /* RescanJsxIdentifier */:\n        lastScanAction = 4 /* RescanJsxIdentifier */;\n        return scanner2.scanJsxIdentifier();\n      case 5 /* RescanJsxText */:\n        lastScanAction = 5 /* RescanJsxText */;\n        return scanner2.reScanJsxToken(\n          /*allowMultilineJsxText*/\n          false\n        );\n      case 6 /* RescanJsxAttributeValue */:\n        lastScanAction = 6 /* RescanJsxAttributeValue */;\n        return scanner2.reScanJsxAttributeValue();\n      case 0 /* Scan */:\n        break;\n      default:\n        Debug.assertNever(expectedScanAction);\n    }\n    return token;\n  }\n  function readEOFTokenRange() {\n    Debug.assert(isOnEOF());\n    return createTextRangeWithKind(scanner2.getTokenFullStart(), scanner2.getTokenEnd(), 1 /* EndOfFileToken */);\n  }\n  function isOnToken() {\n    const current = lastTokenInfo ? lastTokenInfo.token.kind : scanner2.getToken();\n    return current !== 1 /* EndOfFileToken */ && !isTrivia(current);\n  }\n  function isOnEOF() {\n    const current = lastTokenInfo ? lastTokenInfo.token.kind : scanner2.getToken();\n    return current === 1 /* EndOfFileToken */;\n  }\n  function fixTokenKind(tokenInfo, container) {\n    if (isToken(container) && tokenInfo.token.kind !== container.kind) {\n      tokenInfo.token.kind = container.kind;\n    }\n    return tokenInfo;\n  }\n  function skipToEndOf(node) {\n    scanner2.resetTokenState(node.end);\n    savedPos = scanner2.getTokenFullStart();\n    lastScanAction = void 0;\n    lastTokenInfo = void 0;\n    wasNewLine = false;\n    leadingTrivia = void 0;\n    trailingTrivia = void 0;\n  }\n  function skipToStartOf(node) {\n    scanner2.resetTokenState(node.pos);\n    savedPos = scanner2.getTokenFullStart();\n    lastScanAction = void 0;\n    lastTokenInfo = void 0;\n    wasNewLine = false;\n    leadingTrivia = void 0;\n    trailingTrivia = void 0;\n  }\n}\n\n// src/services/formatting/rule.ts\nvar anyContext = emptyArray;\nvar RuleAction = /* @__PURE__ */ ((RuleAction2) => {\n  RuleAction2[RuleAction2[\"None\"] = 0] = \"None\";\n  RuleAction2[RuleAction2[\"StopProcessingSpaceActions\"] = 1] = \"StopProcessingSpaceActions\";\n  RuleAction2[RuleAction2[\"StopProcessingTokenActions\"] = 2] = \"StopProcessingTokenActions\";\n  RuleAction2[RuleAction2[\"InsertSpace\"] = 4] = \"InsertSpace\";\n  RuleAction2[RuleAction2[\"InsertNewLine\"] = 8] = \"InsertNewLine\";\n  RuleAction2[RuleAction2[\"DeleteSpace\"] = 16] = \"DeleteSpace\";\n  RuleAction2[RuleAction2[\"DeleteToken\"] = 32] = \"DeleteToken\";\n  RuleAction2[RuleAction2[\"InsertTrailingSemicolon\"] = 64] = \"InsertTrailingSemicolon\";\n  RuleAction2[RuleAction2[\"StopAction\"] = 3] = \"StopAction\";\n  RuleAction2[RuleAction2[\"ModifySpaceAction\"] = 28] = \"ModifySpaceAction\";\n  RuleAction2[RuleAction2[\"ModifyTokenAction\"] = 96] = \"ModifyTokenAction\";\n  return RuleAction2;\n})(RuleAction || {});\nvar RuleFlags = /* @__PURE__ */ ((RuleFlags2) => {\n  RuleFlags2[RuleFlags2[\"None\"] = 0] = \"None\";\n  RuleFlags2[RuleFlags2[\"CanDeleteNewLines\"] = 1] = \"CanDeleteNewLines\";\n  return RuleFlags2;\n})(RuleFlags || {});\n\n// src/services/formatting/rules.ts\nfunction getAllRules() {\n  const allTokens = [];\n  for (let token = 0 /* FirstToken */; token <= 166 /* LastToken */; token++) {\n    if (token !== 1 /* EndOfFileToken */) {\n      allTokens.push(token);\n    }\n  }\n  function anyTokenExcept(...tokens) {\n    return { tokens: allTokens.filter((t) => !tokens.some((t2) => t2 === t)), isSpecific: false };\n  }\n  const anyToken = { tokens: allTokens, isSpecific: false };\n  const anyTokenIncludingMultilineComments = tokenRangeFrom([...allTokens, 3 /* MultiLineCommentTrivia */]);\n  const anyTokenIncludingEOF = tokenRangeFrom([...allTokens, 1 /* EndOfFileToken */]);\n  const keywords = tokenRangeFromRange(83 /* FirstKeyword */, 166 /* LastKeyword */);\n  const binaryOperators = tokenRangeFromRange(30 /* FirstBinaryOperator */, 79 /* LastBinaryOperator */);\n  const binaryKeywordOperators = [\n    103 /* InKeyword */,\n    104 /* InstanceOfKeyword */,\n    165 /* OfKeyword */,\n    130 /* AsKeyword */,\n    142 /* IsKeyword */,\n    152 /* SatisfiesKeyword */\n  ];\n  const unaryPrefixOperators = [46 /* PlusPlusToken */, 47 /* MinusMinusToken */, 55 /* TildeToken */, 54 /* ExclamationToken */];\n  const unaryPrefixExpressions = [\n    9 /* NumericLiteral */,\n    10 /* BigIntLiteral */,\n    80 /* Identifier */,\n    21 /* OpenParenToken */,\n    23 /* OpenBracketToken */,\n    19 /* OpenBraceToken */,\n    110 /* ThisKeyword */,\n    105 /* NewKeyword */\n  ];\n  const unaryPreincrementExpressions = [80 /* Identifier */, 21 /* OpenParenToken */, 110 /* ThisKeyword */, 105 /* NewKeyword */];\n  const unaryPostincrementExpressions = [80 /* Identifier */, 22 /* CloseParenToken */, 24 /* CloseBracketToken */, 105 /* NewKeyword */];\n  const unaryPredecrementExpressions = [80 /* Identifier */, 21 /* OpenParenToken */, 110 /* ThisKeyword */, 105 /* NewKeyword */];\n  const unaryPostdecrementExpressions = [80 /* Identifier */, 22 /* CloseParenToken */, 24 /* CloseBracketToken */, 105 /* NewKeyword */];\n  const comments = [2 /* SingleLineCommentTrivia */, 3 /* MultiLineCommentTrivia */];\n  const typeNames = [80 /* Identifier */, ...typeKeywords];\n  const functionOpenBraceLeftTokenRange = anyTokenIncludingMultilineComments;\n  const typeScriptOpenBraceLeftTokenRange = tokenRangeFrom([80 /* Identifier */, 32 /* GreaterThanToken */, 3 /* MultiLineCommentTrivia */, 86 /* ClassKeyword */, 95 /* ExportKeyword */, 102 /* ImportKeyword */]);\n  const controlOpenBraceLeftTokenRange = tokenRangeFrom([22 /* CloseParenToken */, 3 /* MultiLineCommentTrivia */, 92 /* DoKeyword */, 113 /* TryKeyword */, 98 /* FinallyKeyword */, 93 /* ElseKeyword */, 85 /* CatchKeyword */]);\n  const highPriorityCommonRules = [\n    // Leave comments alone\n    rule(\"IgnoreBeforeComment\", anyToken, comments, anyContext, 1 /* StopProcessingSpaceActions */),\n    rule(\"IgnoreAfterLineComment\", 2 /* SingleLineCommentTrivia */, anyToken, anyContext, 1 /* StopProcessingSpaceActions */),\n    rule(\"NotSpaceBeforeColon\", anyToken, 59 /* ColonToken */, [isNonJsxSameLineTokenContext, isNotBinaryOpContext, isNotTypeAnnotationContext], 16 /* DeleteSpace */),\n    rule(\"SpaceAfterColon\", 59 /* ColonToken */, anyToken, [isNonJsxSameLineTokenContext, isNotBinaryOpContext, isNextTokenParentNotJsxNamespacedName], 4 /* InsertSpace */),\n    rule(\"NoSpaceBeforeQuestionMark\", anyToken, 58 /* QuestionToken */, [isNonJsxSameLineTokenContext, isNotBinaryOpContext, isNotTypeAnnotationContext], 16 /* DeleteSpace */),\n    // insert space after '?' only when it is used in conditional operator\n    rule(\"SpaceAfterQuestionMarkInConditionalOperator\", 58 /* QuestionToken */, anyToken, [isNonJsxSameLineTokenContext, isConditionalOperatorContext], 4 /* InsertSpace */),\n    // in other cases there should be no space between '?' and next token\n    rule(\"NoSpaceAfterQuestionMark\", 58 /* QuestionToken */, anyToken, [isNonJsxSameLineTokenContext, isNonOptionalPropertyContext], 16 /* DeleteSpace */),\n    rule(\"NoSpaceBeforeDot\", anyToken, [25 /* DotToken */, 29 /* QuestionDotToken */], [isNonJsxSameLineTokenContext, isNotPropertyAccessOnIntegerLiteral], 16 /* DeleteSpace */),\n    rule(\"NoSpaceAfterDot\", [25 /* DotToken */, 29 /* QuestionDotToken */], anyToken, [isNonJsxSameLineTokenContext], 16 /* DeleteSpace */),\n    rule(\"NoSpaceBetweenImportParenInImportType\", 102 /* ImportKeyword */, 21 /* OpenParenToken */, [isNonJsxSameLineTokenContext, isImportTypeContext], 16 /* DeleteSpace */),\n    // Special handling of unary operators.\n    // Prefix operators generally shouldn't have a space between\n    // them and their target unary expression.\n    rule(\"NoSpaceAfterUnaryPrefixOperator\", unaryPrefixOperators, unaryPrefixExpressions, [isNonJsxSameLineTokenContext, isNotBinaryOpContext], 16 /* DeleteSpace */),\n    rule(\"NoSpaceAfterUnaryPreincrementOperator\", 46 /* PlusPlusToken */, unaryPreincrementExpressions, [isNonJsxSameLineTokenContext], 16 /* DeleteSpace */),\n    rule(\"NoSpaceAfterUnaryPredecrementOperator\", 47 /* MinusMinusToken */, unaryPredecrementExpressions, [isNonJsxSameLineTokenContext], 16 /* DeleteSpace */),\n    rule(\"NoSpaceBeforeUnaryPostincrementOperator\", unaryPostincrementExpressions, 46 /* PlusPlusToken */, [isNonJsxSameLineTokenContext, isNotStatementConditionContext], 16 /* DeleteSpace */),\n    rule(\"NoSpaceBeforeUnaryPostdecrementOperator\", unaryPostdecrementExpressions, 47 /* MinusMinusToken */, [isNonJsxSameLineTokenContext, isNotStatementConditionContext], 16 /* DeleteSpace */),\n    // More unary operator special-casing.\n    // DevDiv 181814: Be careful when removing leading whitespace\n    // around unary operators.  Examples:\n    //      1 - -2  --X--> 1--2\n    //      a + ++b --X--> a+++b\n    rule(\"SpaceAfterPostincrementWhenFollowedByAdd\", 46 /* PlusPlusToken */, 40 /* PlusToken */, [isNonJsxSameLineTokenContext, isBinaryOpContext], 4 /* InsertSpace */),\n    rule(\"SpaceAfterAddWhenFollowedByUnaryPlus\", 40 /* PlusToken */, 40 /* PlusToken */, [isNonJsxSameLineTokenContext, isBinaryOpContext], 4 /* InsertSpace */),\n    rule(\"SpaceAfterAddWhenFollowedByPreincrement\", 40 /* PlusToken */, 46 /* PlusPlusToken */, [isNonJsxSameLineTokenContext, isBinaryOpContext], 4 /* InsertSpace */),\n    rule(\"SpaceAfterPostdecrementWhenFollowedBySubtract\", 47 /* MinusMinusToken */, 41 /* MinusToken */, [isNonJsxSameLineTokenContext, isBinaryOpContext], 4 /* InsertSpace */),\n    rule(\"SpaceAfterSubtractWhenFollowedByUnaryMinus\", 41 /* MinusToken */, 41 /* MinusToken */, [isNonJsxSameLineTokenContext, isBinaryOpContext], 4 /* InsertSpace */),\n    rule(\"SpaceAfterSubtractWhenFollowedByPredecrement\", 41 /* MinusToken */, 47 /* MinusMinusToken */, [isNonJsxSameLineTokenContext, isBinaryOpContext], 4 /* InsertSpace */),\n    rule(\"NoSpaceAfterCloseBrace\", 20 /* CloseBraceToken */, [28 /* CommaToken */, 27 /* SemicolonToken */], [isNonJsxSameLineTokenContext], 16 /* DeleteSpace */),\n    // For functions and control block place } on a new line [multi-line rule]\n    rule(\"NewLineBeforeCloseBraceInBlockContext\", anyTokenIncludingMultilineComments, 20 /* CloseBraceToken */, [isMultilineBlockContext], 8 /* InsertNewLine */),\n    // Space/new line after }.\n    rule(\"SpaceAfterCloseBrace\", 20 /* CloseBraceToken */, anyTokenExcept(22 /* CloseParenToken */), [isNonJsxSameLineTokenContext, isAfterCodeBlockContext], 4 /* InsertSpace */),\n    // Special case for (}, else) and (}, while) since else & while tokens are not part of the tree which makes SpaceAfterCloseBrace rule not applied\n    // Also should not apply to })\n    rule(\"SpaceBetweenCloseBraceAndElse\", 20 /* CloseBraceToken */, 93 /* ElseKeyword */, [isNonJsxSameLineTokenContext], 4 /* InsertSpace */),\n    rule(\"SpaceBetweenCloseBraceAndWhile\", 20 /* CloseBraceToken */, 117 /* WhileKeyword */, [isNonJsxSameLineTokenContext], 4 /* InsertSpace */),\n    rule(\"NoSpaceBetweenEmptyBraceBrackets\", 19 /* OpenBraceToken */, 20 /* CloseBraceToken */, [isNonJsxSameLineTokenContext, isObjectContext], 16 /* DeleteSpace */),\n    // Add a space after control dec context if the next character is an open bracket ex: 'if (false)[a, b] = [1, 2];' -> 'if (false) [a, b] = [1, 2];'\n    rule(\"SpaceAfterConditionalClosingParen\", 22 /* CloseParenToken */, 23 /* OpenBracketToken */, [isControlDeclContext], 4 /* InsertSpace */),\n    rule(\"NoSpaceBetweenFunctionKeywordAndStar\", 100 /* FunctionKeyword */, 42 /* AsteriskToken */, [isFunctionDeclarationOrFunctionExpressionContext], 16 /* DeleteSpace */),\n    rule(\"SpaceAfterStarInGeneratorDeclaration\", 42 /* AsteriskToken */, 80 /* Identifier */, [isFunctionDeclarationOrFunctionExpressionContext], 4 /* InsertSpace */),\n    rule(\"SpaceAfterFunctionInFuncDecl\", 100 /* FunctionKeyword */, anyToken, [isFunctionDeclContext], 4 /* InsertSpace */),\n    // Insert new line after { and before } in multi-line contexts.\n    rule(\"NewLineAfterOpenBraceInBlockContext\", 19 /* OpenBraceToken */, anyToken, [isMultilineBlockContext], 8 /* InsertNewLine */),\n    // For get/set members, we check for (identifier,identifier) since get/set don't have tokens and they are represented as just an identifier token.\n    // Though, we do extra check on the context to make sure we are dealing with get/set node. Example:\n    //      get x() {}\n    //      set x(val) {}\n    rule(\"SpaceAfterGetSetInMember\", [139 /* GetKeyword */, 153 /* SetKeyword */], 80 /* Identifier */, [isFunctionDeclContext], 4 /* InsertSpace */),\n    rule(\"NoSpaceBetweenYieldKeywordAndStar\", 127 /* YieldKeyword */, 42 /* AsteriskToken */, [isNonJsxSameLineTokenContext, isYieldOrYieldStarWithOperand], 16 /* DeleteSpace */),\n    rule(\"SpaceBetweenYieldOrYieldStarAndOperand\", [127 /* YieldKeyword */, 42 /* AsteriskToken */], anyToken, [isNonJsxSameLineTokenContext, isYieldOrYieldStarWithOperand], 4 /* InsertSpace */),\n    rule(\"NoSpaceBetweenReturnAndSemicolon\", 107 /* ReturnKeyword */, 27 /* SemicolonToken */, [isNonJsxSameLineTokenContext], 16 /* DeleteSpace */),\n    rule(\"SpaceAfterCertainKeywords\", [115 /* VarKeyword */, 111 /* ThrowKeyword */, 105 /* NewKeyword */, 91 /* DeleteKeyword */, 107 /* ReturnKeyword */, 114 /* TypeOfKeyword */, 135 /* AwaitKeyword */], anyToken, [isNonJsxSameLineTokenContext], 4 /* InsertSpace */),\n    rule(\"SpaceAfterLetConstInVariableDeclaration\", [121 /* LetKeyword */, 87 /* ConstKeyword */], anyToken, [isNonJsxSameLineTokenContext, isStartOfVariableDeclarationList], 4 /* InsertSpace */),\n    rule(\"NoSpaceBeforeOpenParenInFuncCall\", anyToken, 21 /* OpenParenToken */, [isNonJsxSameLineTokenContext, isFunctionCallOrNewContext, isPreviousTokenNotComma], 16 /* DeleteSpace */),\n    // Special case for binary operators (that are keywords). For these we have to add a space and shouldn't follow any user options.\n    rule(\"SpaceBeforeBinaryKeywordOperator\", anyToken, binaryKeywordOperators, [isNonJsxSameLineTokenContext, isBinaryOpContext], 4 /* InsertSpace */),\n    rule(\"SpaceAfterBinaryKeywordOperator\", binaryKeywordOperators, anyToken, [isNonJsxSameLineTokenContext, isBinaryOpContext], 4 /* InsertSpace */),\n    rule(\"SpaceAfterVoidOperator\", 116 /* VoidKeyword */, anyToken, [isNonJsxSameLineTokenContext, isVoidOpContext], 4 /* InsertSpace */),\n    // Async-await\n    rule(\"SpaceBetweenAsyncAndOpenParen\", 134 /* AsyncKeyword */, 21 /* OpenParenToken */, [isArrowFunctionContext, isNonJsxSameLineTokenContext], 4 /* InsertSpace */),\n    rule(\"SpaceBetweenAsyncAndFunctionKeyword\", 134 /* AsyncKeyword */, [100 /* FunctionKeyword */, 80 /* Identifier */], [isNonJsxSameLineTokenContext], 4 /* InsertSpace */),\n    // Template string\n    rule(\"NoSpaceBetweenTagAndTemplateString\", [80 /* Identifier */, 22 /* CloseParenToken */], [15 /* NoSubstitutionTemplateLiteral */, 16 /* TemplateHead */], [isNonJsxSameLineTokenContext], 16 /* DeleteSpace */),\n    // JSX opening elements\n    rule(\"SpaceBeforeJsxAttribute\", anyToken, 80 /* Identifier */, [isNextTokenParentJsxAttribute, isNonJsxSameLineTokenContext], 4 /* InsertSpace */),\n    rule(\"SpaceBeforeSlashInJsxOpeningElement\", anyToken, 44 /* SlashToken */, [isJsxSelfClosingElementContext, isNonJsxSameLineTokenContext], 4 /* InsertSpace */),\n    rule(\"NoSpaceBeforeGreaterThanTokenInJsxOpeningElement\", 44 /* SlashToken */, 32 /* GreaterThanToken */, [isJsxSelfClosingElementContext, isNonJsxSameLineTokenContext], 16 /* DeleteSpace */),\n    rule(\"NoSpaceBeforeEqualInJsxAttribute\", anyToken, 64 /* EqualsToken */, [isJsxAttributeContext, isNonJsxSameLineTokenContext], 16 /* DeleteSpace */),\n    rule(\"NoSpaceAfterEqualInJsxAttribute\", 64 /* EqualsToken */, anyToken, [isJsxAttributeContext, isNonJsxSameLineTokenContext], 16 /* DeleteSpace */),\n    rule(\"NoSpaceBeforeJsxNamespaceColon\", 80 /* Identifier */, 59 /* ColonToken */, [isNextTokenParentJsxNamespacedName], 16 /* DeleteSpace */),\n    rule(\"NoSpaceAfterJsxNamespaceColon\", 59 /* ColonToken */, 80 /* Identifier */, [isNextTokenParentJsxNamespacedName], 16 /* DeleteSpace */),\n    // TypeScript-specific rules\n    // Use of module as a function call. e.g.: import m2 = module(\"m2\");\n    rule(\"NoSpaceAfterModuleImport\", [144 /* ModuleKeyword */, 149 /* RequireKeyword */], 21 /* OpenParenToken */, [isNonJsxSameLineTokenContext], 16 /* DeleteSpace */),\n    // Add a space around certain TypeScript keywords\n    rule(\n      \"SpaceAfterCertainTypeScriptKeywords\",\n      [\n        128 /* AbstractKeyword */,\n        129 /* AccessorKeyword */,\n        86 /* ClassKeyword */,\n        138 /* DeclareKeyword */,\n        90 /* DefaultKeyword */,\n        94 /* EnumKeyword */,\n        95 /* ExportKeyword */,\n        96 /* ExtendsKeyword */,\n        139 /* GetKeyword */,\n        119 /* ImplementsKeyword */,\n        102 /* ImportKeyword */,\n        120 /* InterfaceKeyword */,\n        144 /* ModuleKeyword */,\n        145 /* NamespaceKeyword */,\n        123 /* PrivateKeyword */,\n        125 /* PublicKeyword */,\n        124 /* ProtectedKeyword */,\n        148 /* ReadonlyKeyword */,\n        153 /* SetKeyword */,\n        126 /* StaticKeyword */,\n        156 /* TypeKeyword */,\n        161 /* FromKeyword */,\n        143 /* KeyOfKeyword */,\n        140 /* InferKeyword */\n      ],\n      anyToken,\n      [isNonJsxSameLineTokenContext],\n      4 /* InsertSpace */\n    ),\n    rule(\n      \"SpaceBeforeCertainTypeScriptKeywords\",\n      anyToken,\n      [96 /* ExtendsKeyword */, 119 /* ImplementsKeyword */, 161 /* FromKeyword */],\n      [isNonJsxSameLineTokenContext],\n      4 /* InsertSpace */\n    ),\n    // Treat string literals in module names as identifiers, and add a space between the literal and the opening Brace braces, e.g.: module \"m2\" {\n    rule(\"SpaceAfterModuleName\", 11 /* StringLiteral */, 19 /* OpenBraceToken */, [isModuleDeclContext], 4 /* InsertSpace */),\n    // Lambda expressions\n    rule(\"SpaceBeforeArrow\", anyToken, 39 /* EqualsGreaterThanToken */, [isNonJsxSameLineTokenContext], 4 /* InsertSpace */),\n    rule(\"SpaceAfterArrow\", 39 /* EqualsGreaterThanToken */, anyToken, [isNonJsxSameLineTokenContext], 4 /* InsertSpace */),\n    // Optional parameters and let args\n    rule(\"NoSpaceAfterEllipsis\", 26 /* DotDotDotToken */, 80 /* Identifier */, [isNonJsxSameLineTokenContext], 16 /* DeleteSpace */),\n    rule(\"NoSpaceAfterOptionalParameters\", 58 /* QuestionToken */, [22 /* CloseParenToken */, 28 /* CommaToken */], [isNonJsxSameLineTokenContext, isNotBinaryOpContext], 16 /* DeleteSpace */),\n    // Remove spaces in empty interface literals. e.g.: x: {}\n    rule(\"NoSpaceBetweenEmptyInterfaceBraceBrackets\", 19 /* OpenBraceToken */, 20 /* CloseBraceToken */, [isNonJsxSameLineTokenContext, isObjectTypeContext], 16 /* DeleteSpace */),\n    // generics and type assertions\n    rule(\"NoSpaceBeforeOpenAngularBracket\", typeNames, 30 /* LessThanToken */, [isNonJsxSameLineTokenContext, isTypeArgumentOrParameterOrAssertionContext], 16 /* DeleteSpace */),\n    rule(\"NoSpaceBetweenCloseParenAndAngularBracket\", 22 /* CloseParenToken */, 30 /* LessThanToken */, [isNonJsxSameLineTokenContext, isTypeArgumentOrParameterOrAssertionContext], 16 /* DeleteSpace */),\n    rule(\"NoSpaceAfterOpenAngularBracket\", 30 /* LessThanToken */, anyToken, [isNonJsxSameLineTokenContext, isTypeArgumentOrParameterOrAssertionContext], 16 /* DeleteSpace */),\n    rule(\"NoSpaceBeforeCloseAngularBracket\", anyToken, 32 /* GreaterThanToken */, [isNonJsxSameLineTokenContext, isTypeArgumentOrParameterOrAssertionContext], 16 /* DeleteSpace */),\n    rule(\"NoSpaceAfterCloseAngularBracket\", 32 /* GreaterThanToken */, [21 /* OpenParenToken */, 23 /* OpenBracketToken */, 32 /* GreaterThanToken */, 28 /* CommaToken */], [\n      isNonJsxSameLineTokenContext,\n      isTypeArgumentOrParameterOrAssertionContext,\n      isNotFunctionDeclContext,\n      /*To prevent an interference with the SpaceBeforeOpenParenInFuncDecl rule*/\n      isNonTypeAssertionContext\n    ], 16 /* DeleteSpace */),\n    // decorators\n    rule(\"SpaceBeforeAt\", [22 /* CloseParenToken */, 80 /* Identifier */], 60 /* AtToken */, [isNonJsxSameLineTokenContext], 4 /* InsertSpace */),\n    rule(\"NoSpaceAfterAt\", 60 /* AtToken */, anyToken, [isNonJsxSameLineTokenContext], 16 /* DeleteSpace */),\n    // Insert space after @ in decorator\n    rule(\n      \"SpaceAfterDecorator\",\n      anyToken,\n      [\n        128 /* AbstractKeyword */,\n        80 /* Identifier */,\n        95 /* ExportKeyword */,\n        90 /* DefaultKeyword */,\n        86 /* ClassKeyword */,\n        126 /* StaticKeyword */,\n        125 /* PublicKeyword */,\n        123 /* PrivateKeyword */,\n        124 /* ProtectedKeyword */,\n        139 /* GetKeyword */,\n        153 /* SetKeyword */,\n        23 /* OpenBracketToken */,\n        42 /* AsteriskToken */\n      ],\n      [isEndOfDecoratorContextOnSameLine],\n      4 /* InsertSpace */\n    ),\n    rule(\"NoSpaceBeforeNonNullAssertionOperator\", anyToken, 54 /* ExclamationToken */, [isNonJsxSameLineTokenContext, isNonNullAssertionContext], 16 /* DeleteSpace */),\n    rule(\"NoSpaceAfterNewKeywordOnConstructorSignature\", 105 /* NewKeyword */, 21 /* OpenParenToken */, [isNonJsxSameLineTokenContext, isConstructorSignatureContext], 16 /* DeleteSpace */),\n    rule(\"SpaceLessThanAndNonJSXTypeAnnotation\", 30 /* LessThanToken */, 30 /* LessThanToken */, [isNonJsxSameLineTokenContext], 4 /* InsertSpace */)\n  ];\n  const userConfigurableRules = [\n    // Treat constructor as an identifier in a function declaration, and remove spaces between constructor and following left parentheses\n    rule(\"SpaceAfterConstructor\", 137 /* ConstructorKeyword */, 21 /* OpenParenToken */, [isOptionEnabled(\"insertSpaceAfterConstructor\"), isNonJsxSameLineTokenContext], 4 /* InsertSpace */),\n    rule(\"NoSpaceAfterConstructor\", 137 /* ConstructorKeyword */, 21 /* OpenParenToken */, [isOptionDisabledOrUndefined(\"insertSpaceAfterConstructor\"), isNonJsxSameLineTokenContext], 16 /* DeleteSpace */),\n    rule(\"SpaceAfterComma\", 28 /* CommaToken */, anyToken, [isOptionEnabled(\"insertSpaceAfterCommaDelimiter\"), isNonJsxSameLineTokenContext, isNonJsxElementOrFragmentContext, isNextTokenNotCloseBracket, isNextTokenNotCloseParen], 4 /* InsertSpace */),\n    rule(\"NoSpaceAfterComma\", 28 /* CommaToken */, anyToken, [isOptionDisabledOrUndefined(\"insertSpaceAfterCommaDelimiter\"), isNonJsxSameLineTokenContext, isNonJsxElementOrFragmentContext], 16 /* DeleteSpace */),\n    // Insert space after function keyword for anonymous functions\n    rule(\"SpaceAfterAnonymousFunctionKeyword\", [100 /* FunctionKeyword */, 42 /* AsteriskToken */], 21 /* OpenParenToken */, [isOptionEnabled(\"insertSpaceAfterFunctionKeywordForAnonymousFunctions\"), isFunctionDeclContext], 4 /* InsertSpace */),\n    rule(\"NoSpaceAfterAnonymousFunctionKeyword\", [100 /* FunctionKeyword */, 42 /* AsteriskToken */], 21 /* OpenParenToken */, [isOptionDisabledOrUndefined(\"insertSpaceAfterFunctionKeywordForAnonymousFunctions\"), isFunctionDeclContext], 16 /* DeleteSpace */),\n    // Insert space after keywords in control flow statements\n    rule(\"SpaceAfterKeywordInControl\", keywords, 21 /* OpenParenToken */, [isOptionEnabled(\"insertSpaceAfterKeywordsInControlFlowStatements\"), isControlDeclContext], 4 /* InsertSpace */),\n    rule(\"NoSpaceAfterKeywordInControl\", keywords, 21 /* OpenParenToken */, [isOptionDisabledOrUndefined(\"insertSpaceAfterKeywordsInControlFlowStatements\"), isControlDeclContext], 16 /* DeleteSpace */),\n    // Insert space after opening and before closing nonempty parenthesis\n    rule(\"SpaceAfterOpenParen\", 21 /* OpenParenToken */, anyToken, [isOptionEnabled(\"insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis\"), isNonJsxSameLineTokenContext], 4 /* InsertSpace */),\n    rule(\"SpaceBeforeCloseParen\", anyToken, 22 /* CloseParenToken */, [isOptionEnabled(\"insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis\"), isNonJsxSameLineTokenContext], 4 /* InsertSpace */),\n    rule(\"SpaceBetweenOpenParens\", 21 /* OpenParenToken */, 21 /* OpenParenToken */, [isOptionEnabled(\"insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis\"), isNonJsxSameLineTokenContext], 4 /* InsertSpace */),\n    rule(\"NoSpaceBetweenParens\", 21 /* OpenParenToken */, 22 /* CloseParenToken */, [isNonJsxSameLineTokenContext], 16 /* DeleteSpace */),\n    rule(\"NoSpaceAfterOpenParen\", 21 /* OpenParenToken */, anyToken, [isOptionDisabledOrUndefined(\"insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis\"), isNonJsxSameLineTokenContext], 16 /* DeleteSpace */),\n    rule(\"NoSpaceBeforeCloseParen\", anyToken, 22 /* CloseParenToken */, [isOptionDisabledOrUndefined(\"insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis\"), isNonJsxSameLineTokenContext], 16 /* DeleteSpace */),\n    // Insert space after opening and before closing nonempty brackets\n    rule(\"SpaceAfterOpenBracket\", 23 /* OpenBracketToken */, anyToken, [isOptionEnabled(\"insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets\"), isNonJsxSameLineTokenContext], 4 /* InsertSpace */),\n    rule(\"SpaceBeforeCloseBracket\", anyToken, 24 /* CloseBracketToken */, [isOptionEnabled(\"insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets\"), isNonJsxSameLineTokenContext], 4 /* InsertSpace */),\n    rule(\"NoSpaceBetweenBrackets\", 23 /* OpenBracketToken */, 24 /* CloseBracketToken */, [isNonJsxSameLineTokenContext], 16 /* DeleteSpace */),\n    rule(\"NoSpaceAfterOpenBracket\", 23 /* OpenBracketToken */, anyToken, [isOptionDisabledOrUndefined(\"insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets\"), isNonJsxSameLineTokenContext], 16 /* DeleteSpace */),\n    rule(\"NoSpaceBeforeCloseBracket\", anyToken, 24 /* CloseBracketToken */, [isOptionDisabledOrUndefined(\"insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets\"), isNonJsxSameLineTokenContext], 16 /* DeleteSpace */),\n    // Insert a space after { and before } in single-line contexts, but remove space from empty object literals {}.\n    rule(\"SpaceAfterOpenBrace\", 19 /* OpenBraceToken */, anyToken, [isOptionEnabledOrUndefined(\"insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces\"), isBraceWrappedContext], 4 /* InsertSpace */),\n    rule(\"SpaceBeforeCloseBrace\", anyToken, 20 /* CloseBraceToken */, [isOptionEnabledOrUndefined(\"insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces\"), isBraceWrappedContext], 4 /* InsertSpace */),\n    rule(\"NoSpaceBetweenEmptyBraceBrackets\", 19 /* OpenBraceToken */, 20 /* CloseBraceToken */, [isNonJsxSameLineTokenContext, isObjectContext], 16 /* DeleteSpace */),\n    rule(\"NoSpaceAfterOpenBrace\", 19 /* OpenBraceToken */, anyToken, [isOptionDisabled(\"insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces\"), isNonJsxSameLineTokenContext], 16 /* DeleteSpace */),\n    rule(\"NoSpaceBeforeCloseBrace\", anyToken, 20 /* CloseBraceToken */, [isOptionDisabled(\"insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces\"), isNonJsxSameLineTokenContext], 16 /* DeleteSpace */),\n    // Insert a space after opening and before closing empty brace brackets\n    rule(\"SpaceBetweenEmptyBraceBrackets\", 19 /* OpenBraceToken */, 20 /* CloseBraceToken */, [isOptionEnabled(\"insertSpaceAfterOpeningAndBeforeClosingEmptyBraces\")], 4 /* InsertSpace */),\n    rule(\"NoSpaceBetweenEmptyBraceBrackets\", 19 /* OpenBraceToken */, 20 /* CloseBraceToken */, [isOptionDisabled(\"insertSpaceAfterOpeningAndBeforeClosingEmptyBraces\"), isNonJsxSameLineTokenContext], 16 /* DeleteSpace */),\n    // Insert space after opening and before closing template string braces\n    rule(\"SpaceAfterTemplateHeadAndMiddle\", [16 /* TemplateHead */, 17 /* TemplateMiddle */], anyToken, [isOptionEnabled(\"insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces\"), isNonJsxTextContext], 4 /* InsertSpace */, 1 /* CanDeleteNewLines */),\n    rule(\"SpaceBeforeTemplateMiddleAndTail\", anyToken, [17 /* TemplateMiddle */, 18 /* TemplateTail */], [isOptionEnabled(\"insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces\"), isNonJsxSameLineTokenContext], 4 /* InsertSpace */),\n    rule(\"NoSpaceAfterTemplateHeadAndMiddle\", [16 /* TemplateHead */, 17 /* TemplateMiddle */], anyToken, [isOptionDisabledOrUndefined(\"insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces\"), isNonJsxTextContext], 16 /* DeleteSpace */, 1 /* CanDeleteNewLines */),\n    rule(\"NoSpaceBeforeTemplateMiddleAndTail\", anyToken, [17 /* TemplateMiddle */, 18 /* TemplateTail */], [isOptionDisabledOrUndefined(\"insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces\"), isNonJsxSameLineTokenContext], 16 /* DeleteSpace */),\n    // No space after { and before } in JSX expression\n    rule(\"SpaceAfterOpenBraceInJsxExpression\", 19 /* OpenBraceToken */, anyToken, [isOptionEnabled(\"insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces\"), isNonJsxSameLineTokenContext, isJsxExpressionContext], 4 /* InsertSpace */),\n    rule(\"SpaceBeforeCloseBraceInJsxExpression\", anyToken, 20 /* CloseBraceToken */, [isOptionEnabled(\"insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces\"), isNonJsxSameLineTokenContext, isJsxExpressionContext], 4 /* InsertSpace */),\n    rule(\"NoSpaceAfterOpenBraceInJsxExpression\", 19 /* OpenBraceToken */, anyToken, [isOptionDisabledOrUndefined(\"insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces\"), isNonJsxSameLineTokenContext, isJsxExpressionContext], 16 /* DeleteSpace */),\n    rule(\"NoSpaceBeforeCloseBraceInJsxExpression\", anyToken, 20 /* CloseBraceToken */, [isOptionDisabledOrUndefined(\"insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces\"), isNonJsxSameLineTokenContext, isJsxExpressionContext], 16 /* DeleteSpace */),\n    // Insert space after semicolon in for statement\n    rule(\"SpaceAfterSemicolonInFor\", 27 /* SemicolonToken */, anyToken, [isOptionEnabled(\"insertSpaceAfterSemicolonInForStatements\"), isNonJsxSameLineTokenContext, isForContext], 4 /* InsertSpace */),\n    rule(\"NoSpaceAfterSemicolonInFor\", 27 /* SemicolonToken */, anyToken, [isOptionDisabledOrUndefined(\"insertSpaceAfterSemicolonInForStatements\"), isNonJsxSameLineTokenContext, isForContext], 16 /* DeleteSpace */),\n    // Insert space before and after binary operators\n    rule(\"SpaceBeforeBinaryOperator\", anyToken, binaryOperators, [isOptionEnabled(\"insertSpaceBeforeAndAfterBinaryOperators\"), isNonJsxSameLineTokenContext, isBinaryOpContext], 4 /* InsertSpace */),\n    rule(\"SpaceAfterBinaryOperator\", binaryOperators, anyToken, [isOptionEnabled(\"insertSpaceBeforeAndAfterBinaryOperators\"), isNonJsxSameLineTokenContext, isBinaryOpContext], 4 /* InsertSpace */),\n    rule(\"NoSpaceBeforeBinaryOperator\", anyToken, binaryOperators, [isOptionDisabledOrUndefined(\"insertSpaceBeforeAndAfterBinaryOperators\"), isNonJsxSameLineTokenContext, isBinaryOpContext], 16 /* DeleteSpace */),\n    rule(\"NoSpaceAfterBinaryOperator\", binaryOperators, anyToken, [isOptionDisabledOrUndefined(\"insertSpaceBeforeAndAfterBinaryOperators\"), isNonJsxSameLineTokenContext, isBinaryOpContext], 16 /* DeleteSpace */),\n    rule(\"SpaceBeforeOpenParenInFuncDecl\", anyToken, 21 /* OpenParenToken */, [isOptionEnabled(\"insertSpaceBeforeFunctionParenthesis\"), isNonJsxSameLineTokenContext, isFunctionDeclContext], 4 /* InsertSpace */),\n    rule(\"NoSpaceBeforeOpenParenInFuncDecl\", anyToken, 21 /* OpenParenToken */, [isOptionDisabledOrUndefined(\"insertSpaceBeforeFunctionParenthesis\"), isNonJsxSameLineTokenContext, isFunctionDeclContext], 16 /* DeleteSpace */),\n    // Open Brace braces after control block\n    rule(\"NewLineBeforeOpenBraceInControl\", controlOpenBraceLeftTokenRange, 19 /* OpenBraceToken */, [isOptionEnabled(\"placeOpenBraceOnNewLineForControlBlocks\"), isControlDeclContext, isBeforeMultilineBlockContext], 8 /* InsertNewLine */, 1 /* CanDeleteNewLines */),\n    // Open Brace braces after function\n    // TypeScript: Function can have return types, which can be made of tons of different token kinds\n    rule(\"NewLineBeforeOpenBraceInFunction\", functionOpenBraceLeftTokenRange, 19 /* OpenBraceToken */, [isOptionEnabled(\"placeOpenBraceOnNewLineForFunctions\"), isFunctionDeclContext, isBeforeMultilineBlockContext], 8 /* InsertNewLine */, 1 /* CanDeleteNewLines */),\n    // Open Brace braces after TypeScript module/class/interface\n    rule(\"NewLineBeforeOpenBraceInTypeScriptDeclWithBlock\", typeScriptOpenBraceLeftTokenRange, 19 /* OpenBraceToken */, [isOptionEnabled(\"placeOpenBraceOnNewLineForFunctions\"), isTypeScriptDeclWithBlockContext, isBeforeMultilineBlockContext], 8 /* InsertNewLine */, 1 /* CanDeleteNewLines */),\n    rule(\"SpaceAfterTypeAssertion\", 32 /* GreaterThanToken */, anyToken, [isOptionEnabled(\"insertSpaceAfterTypeAssertion\"), isNonJsxSameLineTokenContext, isTypeAssertionContext], 4 /* InsertSpace */),\n    rule(\"NoSpaceAfterTypeAssertion\", 32 /* GreaterThanToken */, anyToken, [isOptionDisabledOrUndefined(\"insertSpaceAfterTypeAssertion\"), isNonJsxSameLineTokenContext, isTypeAssertionContext], 16 /* DeleteSpace */),\n    rule(\"SpaceBeforeTypeAnnotation\", anyToken, [58 /* QuestionToken */, 59 /* ColonToken */], [isOptionEnabled(\"insertSpaceBeforeTypeAnnotation\"), isNonJsxSameLineTokenContext, isTypeAnnotationContext], 4 /* InsertSpace */),\n    rule(\"NoSpaceBeforeTypeAnnotation\", anyToken, [58 /* QuestionToken */, 59 /* ColonToken */], [isOptionDisabledOrUndefined(\"insertSpaceBeforeTypeAnnotation\"), isNonJsxSameLineTokenContext, isTypeAnnotationContext], 16 /* DeleteSpace */),\n    rule(\"NoOptionalSemicolon\", 27 /* SemicolonToken */, anyTokenIncludingEOF, [optionEquals(\"semicolons\", \"remove\" /* Remove */), isSemicolonDeletionContext], 32 /* DeleteToken */),\n    rule(\"OptionalSemicolon\", anyToken, anyTokenIncludingEOF, [optionEquals(\"semicolons\", \"insert\" /* Insert */), isSemicolonInsertionContext], 64 /* InsertTrailingSemicolon */)\n  ];\n  const lowPriorityCommonRules = [\n    // Space after keyword but not before ; or : or ?\n    rule(\"NoSpaceBeforeSemicolon\", anyToken, 27 /* SemicolonToken */, [isNonJsxSameLineTokenContext], 16 /* DeleteSpace */),\n    rule(\"SpaceBeforeOpenBraceInControl\", controlOpenBraceLeftTokenRange, 19 /* OpenBraceToken */, [isOptionDisabledOrUndefinedOrTokensOnSameLine(\"placeOpenBraceOnNewLineForControlBlocks\"), isControlDeclContext, isNotFormatOnEnter, isSameLineTokenOrBeforeBlockContext], 4 /* InsertSpace */, 1 /* CanDeleteNewLines */),\n    rule(\"SpaceBeforeOpenBraceInFunction\", functionOpenBraceLeftTokenRange, 19 /* OpenBraceToken */, [isOptionDisabledOrUndefinedOrTokensOnSameLine(\"placeOpenBraceOnNewLineForFunctions\"), isFunctionDeclContext, isBeforeBlockContext, isNotFormatOnEnter, isSameLineTokenOrBeforeBlockContext], 4 /* InsertSpace */, 1 /* CanDeleteNewLines */),\n    rule(\"SpaceBeforeOpenBraceInTypeScriptDeclWithBlock\", typeScriptOpenBraceLeftTokenRange, 19 /* OpenBraceToken */, [isOptionDisabledOrUndefinedOrTokensOnSameLine(\"placeOpenBraceOnNewLineForFunctions\"), isTypeScriptDeclWithBlockContext, isNotFormatOnEnter, isSameLineTokenOrBeforeBlockContext], 4 /* InsertSpace */, 1 /* CanDeleteNewLines */),\n    rule(\"NoSpaceBeforeComma\", anyToken, 28 /* CommaToken */, [isNonJsxSameLineTokenContext], 16 /* DeleteSpace */),\n    // No space before and after indexer `x[]`\n    rule(\"NoSpaceBeforeOpenBracket\", anyTokenExcept(134 /* AsyncKeyword */, 84 /* CaseKeyword */), 23 /* OpenBracketToken */, [isNonJsxSameLineTokenContext], 16 /* DeleteSpace */),\n    rule(\"NoSpaceAfterCloseBracket\", 24 /* CloseBracketToken */, anyToken, [isNonJsxSameLineTokenContext, isNotBeforeBlockInFunctionDeclarationContext], 16 /* DeleteSpace */),\n    rule(\"SpaceAfterSemicolon\", 27 /* SemicolonToken */, anyToken, [isNonJsxSameLineTokenContext], 4 /* InsertSpace */),\n    // Remove extra space between for and await\n    rule(\"SpaceBetweenForAndAwaitKeyword\", 99 /* ForKeyword */, 135 /* AwaitKeyword */, [isNonJsxSameLineTokenContext], 4 /* InsertSpace */),\n    // Remove extra spaces between ... and type name in tuple spread\n    rule(\"SpaceBetweenDotDotDotAndTypeName\", 26 /* DotDotDotToken */, typeNames, [isNonJsxSameLineTokenContext], 16 /* DeleteSpace */),\n    // Add a space between statements. All keywords except (do,else,case) has open/close parens after them.\n    // So, we have a rule to add a space for [),Any], [do,Any], [else,Any], and [case,Any]\n    rule(\n      \"SpaceBetweenStatements\",\n      [22 /* CloseParenToken */, 92 /* DoKeyword */, 93 /* ElseKeyword */, 84 /* CaseKeyword */],\n      anyToken,\n      [isNonJsxSameLineTokenContext, isNonJsxElementOrFragmentContext, isNotForContext],\n      4 /* InsertSpace */\n    ),\n    // This low-pri rule takes care of \"try {\", \"catch {\" and \"finally {\" in case the rule SpaceBeforeOpenBraceInControl didn't execute on FormatOnEnter.\n    rule(\"SpaceAfterTryCatchFinally\", [113 /* TryKeyword */, 85 /* CatchKeyword */, 98 /* FinallyKeyword */], 19 /* OpenBraceToken */, [isNonJsxSameLineTokenContext], 4 /* InsertSpace */)\n  ];\n  return [\n    ...highPriorityCommonRules,\n    ...userConfigurableRules,\n    ...lowPriorityCommonRules\n  ];\n}\nfunction rule(debugName, left, right, context, action, flags = 0 /* None */) {\n  return { leftTokenRange: toTokenRange(left), rightTokenRange: toTokenRange(right), rule: { debugName, context, action, flags } };\n}\nfunction tokenRangeFrom(tokens) {\n  return { tokens, isSpecific: true };\n}\nfunction toTokenRange(arg) {\n  return typeof arg === \"number\" ? tokenRangeFrom([arg]) : isArray(arg) ? tokenRangeFrom(arg) : arg;\n}\nfunction tokenRangeFromRange(from, to, except = []) {\n  const tokens = [];\n  for (let token = from; token <= to; token++) {\n    if (!contains(except, token)) {\n      tokens.push(token);\n    }\n  }\n  return tokenRangeFrom(tokens);\n}\nfunction optionEquals(optionName, optionValue) {\n  return (context) => context.options && context.options[optionName] === optionValue;\n}\nfunction isOptionEnabled(optionName) {\n  return (context) => context.options && hasProperty(context.options, optionName) && !!context.options[optionName];\n}\nfunction isOptionDisabled(optionName) {\n  return (context) => context.options && hasProperty(context.options, optionName) && !context.options[optionName];\n}\nfunction isOptionDisabledOrUndefined(optionName) {\n  return (context) => !context.options || !hasProperty(context.options, optionName) || !context.options[optionName];\n}\nfunction isOptionDisabledOrUndefinedOrTokensOnSameLine(optionName) {\n  return (context) => !context.options || !hasProperty(context.options, optionName) || !context.options[optionName] || context.TokensAreOnSameLine();\n}\nfunction isOptionEnabledOrUndefined(optionName) {\n  return (context) => !context.options || !hasProperty(context.options, optionName) || !!context.options[optionName];\n}\nfunction isForContext(context) {\n  return context.contextNode.kind === 249 /* ForStatement */;\n}\nfunction isNotForContext(context) {\n  return !isForContext(context);\n}\nfunction isBinaryOpContext(context) {\n  switch (context.contextNode.kind) {\n    case 227 /* BinaryExpression */:\n      return context.contextNode.operatorToken.kind !== 28 /* CommaToken */;\n    case 228 /* ConditionalExpression */:\n    case 195 /* ConditionalType */:\n    case 235 /* AsExpression */:\n    case 282 /* ExportSpecifier */:\n    case 277 /* ImportSpecifier */:\n    case 183 /* TypePredicate */:\n    case 193 /* UnionType */:\n    case 194 /* IntersectionType */:\n    case 239 /* SatisfiesExpression */:\n      return true;\n    // equals in binding elements: function foo([[x, y] = [1, 2]])\n    case 209 /* BindingElement */:\n    // equals in type X = ...\n    // falls through\n    case 266 /* TypeAliasDeclaration */:\n    // equal in import a = module('a');\n    // falls through\n    case 272 /* ImportEqualsDeclaration */:\n    // equal in export = 1\n    // falls through\n    case 278 /* ExportAssignment */:\n    // equal in let a = 0\n    // falls through\n    case 261 /* VariableDeclaration */:\n    // equal in p = 0\n    // falls through\n    case 170 /* Parameter */:\n    case 307 /* EnumMember */:\n    case 173 /* PropertyDeclaration */:\n    case 172 /* PropertySignature */:\n      return context.currentTokenSpan.kind === 64 /* EqualsToken */ || context.nextTokenSpan.kind === 64 /* EqualsToken */;\n    // \"in\" keyword in for (let x in []) { }\n    case 250 /* ForInStatement */:\n    // \"in\" keyword in [P in keyof T]: T[P]\n    // falls through\n    case 169 /* TypeParameter */:\n      return context.currentTokenSpan.kind === 103 /* InKeyword */ || context.nextTokenSpan.kind === 103 /* InKeyword */ || context.currentTokenSpan.kind === 64 /* EqualsToken */ || context.nextTokenSpan.kind === 64 /* EqualsToken */;\n    // Technically, \"of\" is not a binary operator, but format it the same way as \"in\"\n    case 251 /* ForOfStatement */:\n      return context.currentTokenSpan.kind === 165 /* OfKeyword */ || context.nextTokenSpan.kind === 165 /* OfKeyword */;\n  }\n  return false;\n}\nfunction isNotBinaryOpContext(context) {\n  return !isBinaryOpContext(context);\n}\nfunction isNotTypeAnnotationContext(context) {\n  return !isTypeAnnotationContext(context);\n}\nfunction isTypeAnnotationContext(context) {\n  const contextKind = context.contextNode.kind;\n  return contextKind === 173 /* PropertyDeclaration */ || contextKind === 172 /* PropertySignature */ || contextKind === 170 /* Parameter */ || contextKind === 261 /* VariableDeclaration */ || isFunctionLikeKind(contextKind);\n}\nfunction isOptionalPropertyContext(context) {\n  return isPropertyDeclaration(context.contextNode) && context.contextNode.questionToken;\n}\nfunction isNonOptionalPropertyContext(context) {\n  return !isOptionalPropertyContext(context);\n}\nfunction isConditionalOperatorContext(context) {\n  return context.contextNode.kind === 228 /* ConditionalExpression */ || context.contextNode.kind === 195 /* ConditionalType */;\n}\nfunction isSameLineTokenOrBeforeBlockContext(context) {\n  return context.TokensAreOnSameLine() || isBeforeBlockContext(context);\n}\nfunction isBraceWrappedContext(context) {\n  return context.contextNode.kind === 207 /* ObjectBindingPattern */ || context.contextNode.kind === 201 /* MappedType */ || isSingleLineBlockContext(context);\n}\nfunction isBeforeMultilineBlockContext(context) {\n  return isBeforeBlockContext(context) && !(context.NextNodeAllOnSameLine() || context.NextNodeBlockIsOnOneLine());\n}\nfunction isMultilineBlockContext(context) {\n  return isBlockContext(context) && !(context.ContextNodeAllOnSameLine() || context.ContextNodeBlockIsOnOneLine());\n}\nfunction isSingleLineBlockContext(context) {\n  return isBlockContext(context) && (context.ContextNodeAllOnSameLine() || context.ContextNodeBlockIsOnOneLine());\n}\nfunction isBlockContext(context) {\n  return nodeIsBlockContext(context.contextNode);\n}\nfunction isBeforeBlockContext(context) {\n  return nodeIsBlockContext(context.nextTokenParent);\n}\nfunction nodeIsBlockContext(node) {\n  if (nodeIsTypeScriptDeclWithBlockContext(node)) {\n    return true;\n  }\n  switch (node.kind) {\n    case 242 /* Block */:\n    case 270 /* CaseBlock */:\n    case 211 /* ObjectLiteralExpression */:\n    case 269 /* ModuleBlock */:\n      return true;\n  }\n  return false;\n}\nfunction isFunctionDeclContext(context) {\n  switch (context.contextNode.kind) {\n    case 263 /* FunctionDeclaration */:\n    case 175 /* MethodDeclaration */:\n    case 174 /* MethodSignature */:\n    // case SyntaxKind.MemberFunctionDeclaration:\n    // falls through\n    case 178 /* GetAccessor */:\n    case 179 /* SetAccessor */:\n    // case SyntaxKind.MethodSignature:\n    // falls through\n    case 180 /* CallSignature */:\n    case 219 /* FunctionExpression */:\n    case 177 /* Constructor */:\n    case 220 /* ArrowFunction */:\n    // case SyntaxKind.ConstructorDeclaration:\n    // case SyntaxKind.SimpleArrowFunctionExpression:\n    // case SyntaxKind.ParenthesizedArrowFunctionExpression:\n    // falls through\n    case 265 /* InterfaceDeclaration */:\n      return true;\n  }\n  return false;\n}\nfunction isNotFunctionDeclContext(context) {\n  return !isFunctionDeclContext(context);\n}\nfunction isFunctionDeclarationOrFunctionExpressionContext(context) {\n  return context.contextNode.kind === 263 /* FunctionDeclaration */ || context.contextNode.kind === 219 /* FunctionExpression */;\n}\nfunction isTypeScriptDeclWithBlockContext(context) {\n  return nodeIsTypeScriptDeclWithBlockContext(context.contextNode);\n}\nfunction nodeIsTypeScriptDeclWithBlockContext(node) {\n  switch (node.kind) {\n    case 264 /* ClassDeclaration */:\n    case 232 /* ClassExpression */:\n    case 265 /* InterfaceDeclaration */:\n    case 267 /* EnumDeclaration */:\n    case 188 /* TypeLiteral */:\n    case 268 /* ModuleDeclaration */:\n    case 279 /* ExportDeclaration */:\n    case 280 /* NamedExports */:\n    case 273 /* ImportDeclaration */:\n    case 276 /* NamedImports */:\n      return true;\n  }\n  return false;\n}\nfunction isAfterCodeBlockContext(context) {\n  switch (context.currentTokenParent.kind) {\n    case 264 /* ClassDeclaration */:\n    case 268 /* ModuleDeclaration */:\n    case 267 /* EnumDeclaration */:\n    case 300 /* CatchClause */:\n    case 269 /* ModuleBlock */:\n    case 256 /* SwitchStatement */:\n      return true;\n    case 242 /* Block */: {\n      const blockParent = context.currentTokenParent.parent;\n      if (!blockParent || blockParent.kind !== 220 /* ArrowFunction */ && blockParent.kind !== 219 /* FunctionExpression */) {\n        return true;\n      }\n    }\n  }\n  return false;\n}\nfunction isControlDeclContext(context) {\n  switch (context.contextNode.kind) {\n    case 246 /* IfStatement */:\n    case 256 /* SwitchStatement */:\n    case 249 /* ForStatement */:\n    case 250 /* ForInStatement */:\n    case 251 /* ForOfStatement */:\n    case 248 /* WhileStatement */:\n    case 259 /* TryStatement */:\n    case 247 /* DoStatement */:\n    case 255 /* WithStatement */:\n    // TODO\n    // case SyntaxKind.ElseClause:\n    // falls through\n    case 300 /* CatchClause */:\n      return true;\n    default:\n      return false;\n  }\n}\nfunction isObjectContext(context) {\n  return context.contextNode.kind === 211 /* ObjectLiteralExpression */;\n}\nfunction isFunctionCallContext(context) {\n  return context.contextNode.kind === 214 /* CallExpression */;\n}\nfunction isNewContext(context) {\n  return context.contextNode.kind === 215 /* NewExpression */;\n}\nfunction isFunctionCallOrNewContext(context) {\n  return isFunctionCallContext(context) || isNewContext(context);\n}\nfunction isPreviousTokenNotComma(context) {\n  return context.currentTokenSpan.kind !== 28 /* CommaToken */;\n}\nfunction isNextTokenNotCloseBracket(context) {\n  return context.nextTokenSpan.kind !== 24 /* CloseBracketToken */;\n}\nfunction isNextTokenNotCloseParen(context) {\n  return context.nextTokenSpan.kind !== 22 /* CloseParenToken */;\n}\nfunction isArrowFunctionContext(context) {\n  return context.contextNode.kind === 220 /* ArrowFunction */;\n}\nfunction isImportTypeContext(context) {\n  return context.contextNode.kind === 206 /* ImportType */;\n}\nfunction isNonJsxSameLineTokenContext(context) {\n  return context.TokensAreOnSameLine() && context.contextNode.kind !== 12 /* JsxText */;\n}\nfunction isNonJsxTextContext(context) {\n  return context.contextNode.kind !== 12 /* JsxText */;\n}\nfunction isNonJsxElementOrFragmentContext(context) {\n  return context.contextNode.kind !== 285 /* JsxElement */ && context.contextNode.kind !== 289 /* JsxFragment */;\n}\nfunction isJsxExpressionContext(context) {\n  return context.contextNode.kind === 295 /* JsxExpression */ || context.contextNode.kind === 294 /* JsxSpreadAttribute */;\n}\nfunction isNextTokenParentJsxAttribute(context) {\n  return context.nextTokenParent.kind === 292 /* JsxAttribute */ || context.nextTokenParent.kind === 296 /* JsxNamespacedName */ && context.nextTokenParent.parent.kind === 292 /* JsxAttribute */;\n}\nfunction isJsxAttributeContext(context) {\n  return context.contextNode.kind === 292 /* JsxAttribute */;\n}\nfunction isNextTokenParentNotJsxNamespacedName(context) {\n  return context.nextTokenParent.kind !== 296 /* JsxNamespacedName */;\n}\nfunction isNextTokenParentJsxNamespacedName(context) {\n  return context.nextTokenParent.kind === 296 /* JsxNamespacedName */;\n}\nfunction isJsxSelfClosingElementContext(context) {\n  return context.contextNode.kind === 286 /* JsxSelfClosingElement */;\n}\nfunction isNotBeforeBlockInFunctionDeclarationContext(context) {\n  return !isFunctionDeclContext(context) && !isBeforeBlockContext(context);\n}\nfunction isEndOfDecoratorContextOnSameLine(context) {\n  return context.TokensAreOnSameLine() && hasDecorators(context.contextNode) && nodeIsInDecoratorContext(context.currentTokenParent) && !nodeIsInDecoratorContext(context.nextTokenParent);\n}\nfunction nodeIsInDecoratorContext(node) {\n  while (node && isExpression(node)) {\n    node = node.parent;\n  }\n  return node && node.kind === 171 /* Decorator */;\n}\nfunction isStartOfVariableDeclarationList(context) {\n  return context.currentTokenParent.kind === 262 /* VariableDeclarationList */ && context.currentTokenParent.getStart(context.sourceFile) === context.currentTokenSpan.pos;\n}\nfunction isNotFormatOnEnter(context) {\n  return context.formattingRequestKind !== 2 /* FormatOnEnter */;\n}\nfunction isModuleDeclContext(context) {\n  return context.contextNode.kind === 268 /* ModuleDeclaration */;\n}\nfunction isObjectTypeContext(context) {\n  return context.contextNode.kind === 188 /* TypeLiteral */;\n}\nfunction isConstructorSignatureContext(context) {\n  return context.contextNode.kind === 181 /* ConstructSignature */;\n}\nfunction isTypeArgumentOrParameterOrAssertion(token, parent2) {\n  if (token.kind !== 30 /* LessThanToken */ && token.kind !== 32 /* GreaterThanToken */) {\n    return false;\n  }\n  switch (parent2.kind) {\n    case 184 /* TypeReference */:\n    case 217 /* TypeAssertionExpression */:\n    case 266 /* TypeAliasDeclaration */:\n    case 264 /* ClassDeclaration */:\n    case 232 /* ClassExpression */:\n    case 265 /* InterfaceDeclaration */:\n    case 263 /* FunctionDeclaration */:\n    case 219 /* FunctionExpression */:\n    case 220 /* ArrowFunction */:\n    case 175 /* MethodDeclaration */:\n    case 174 /* MethodSignature */:\n    case 180 /* CallSignature */:\n    case 181 /* ConstructSignature */:\n    case 214 /* CallExpression */:\n    case 215 /* NewExpression */:\n    case 234 /* ExpressionWithTypeArguments */:\n      return true;\n    default:\n      return false;\n  }\n}\nfunction isTypeArgumentOrParameterOrAssertionContext(context) {\n  return isTypeArgumentOrParameterOrAssertion(context.currentTokenSpan, context.currentTokenParent) || isTypeArgumentOrParameterOrAssertion(context.nextTokenSpan, context.nextTokenParent);\n}\nfunction isTypeAssertionContext(context) {\n  return context.contextNode.kind === 217 /* TypeAssertionExpression */;\n}\nfunction isNonTypeAssertionContext(context) {\n  return !isTypeAssertionContext(context);\n}\nfunction isVoidOpContext(context) {\n  return context.currentTokenSpan.kind === 116 /* VoidKeyword */ && context.currentTokenParent.kind === 223 /* VoidExpression */;\n}\nfunction isYieldOrYieldStarWithOperand(context) {\n  return context.contextNode.kind === 230 /* YieldExpression */ && context.contextNode.expression !== void 0;\n}\nfunction isNonNullAssertionContext(context) {\n  return context.contextNode.kind === 236 /* NonNullExpression */;\n}\nfunction isNotStatementConditionContext(context) {\n  return !isStatementConditionContext(context);\n}\nfunction isStatementConditionContext(context) {\n  switch (context.contextNode.kind) {\n    case 246 /* IfStatement */:\n    case 249 /* ForStatement */:\n    case 250 /* ForInStatement */:\n    case 251 /* ForOfStatement */:\n    case 247 /* DoStatement */:\n    case 248 /* WhileStatement */:\n      return true;\n    default:\n      return false;\n  }\n}\nfunction isSemicolonDeletionContext(context) {\n  let nextTokenKind = context.nextTokenSpan.kind;\n  let nextTokenStart = context.nextTokenSpan.pos;\n  if (isTrivia(nextTokenKind)) {\n    const nextRealToken = context.nextTokenParent === context.currentTokenParent ? findNextToken(\n      context.currentTokenParent,\n      findAncestor(context.currentTokenParent, (a) => !a.parent),\n      context.sourceFile\n    ) : context.nextTokenParent.getFirstToken(context.sourceFile);\n    if (!nextRealToken) {\n      return true;\n    }\n    nextTokenKind = nextRealToken.kind;\n    nextTokenStart = nextRealToken.getStart(context.sourceFile);\n  }\n  const startLine = context.sourceFile.getLineAndCharacterOfPosition(context.currentTokenSpan.pos).line;\n  const endLine = context.sourceFile.getLineAndCharacterOfPosition(nextTokenStart).line;\n  if (startLine === endLine) {\n    return nextTokenKind === 20 /* CloseBraceToken */ || nextTokenKind === 1 /* EndOfFileToken */;\n  }\n  if (nextTokenKind === 27 /* SemicolonToken */ && context.currentTokenSpan.kind === 27 /* SemicolonToken */) {\n    return true;\n  }\n  if (nextTokenKind === 241 /* SemicolonClassElement */ || nextTokenKind === 27 /* SemicolonToken */) {\n    return false;\n  }\n  if (context.contextNode.kind === 265 /* InterfaceDeclaration */ || context.contextNode.kind === 266 /* TypeAliasDeclaration */) {\n    return !isPropertySignature(context.currentTokenParent) || !!context.currentTokenParent.type || nextTokenKind !== 21 /* OpenParenToken */;\n  }\n  if (isPropertyDeclaration(context.currentTokenParent)) {\n    return !context.currentTokenParent.initializer;\n  }\n  return context.currentTokenParent.kind !== 249 /* ForStatement */ && context.currentTokenParent.kind !== 243 /* EmptyStatement */ && context.currentTokenParent.kind !== 241 /* SemicolonClassElement */ && nextTokenKind !== 23 /* OpenBracketToken */ && nextTokenKind !== 21 /* OpenParenToken */ && nextTokenKind !== 40 /* PlusToken */ && nextTokenKind !== 41 /* MinusToken */ && nextTokenKind !== 44 /* SlashToken */ && nextTokenKind !== 14 /* RegularExpressionLiteral */ && nextTokenKind !== 28 /* CommaToken */ && nextTokenKind !== 229 /* TemplateExpression */ && nextTokenKind !== 16 /* TemplateHead */ && nextTokenKind !== 15 /* NoSubstitutionTemplateLiteral */ && nextTokenKind !== 25 /* DotToken */;\n}\nfunction isSemicolonInsertionContext(context) {\n  return positionIsASICandidate(context.currentTokenSpan.end, context.currentTokenParent, context.sourceFile);\n}\nfunction isNotPropertyAccessOnIntegerLiteral(context) {\n  return !isPropertyAccessExpression(context.contextNode) || !isNumericLiteral(context.contextNode.expression) || context.contextNode.expression.getText().includes(\".\");\n}\n\n// src/services/formatting/rulesMap.ts\nfunction getFormatContext(options, host) {\n  return { options, getRules: getRulesMap(), host };\n}\nvar rulesMapCache;\nfunction getRulesMap() {\n  if (rulesMapCache === void 0) {\n    rulesMapCache = createRulesMap(getAllRules());\n  }\n  return rulesMapCache;\n}\nfunction getRuleActionExclusion(ruleAction) {\n  let mask2 = 0 /* None */;\n  if (ruleAction & 1 /* StopProcessingSpaceActions */) {\n    mask2 |= 28 /* ModifySpaceAction */;\n  }\n  if (ruleAction & 2 /* StopProcessingTokenActions */) {\n    mask2 |= 96 /* ModifyTokenAction */;\n  }\n  if (ruleAction & 28 /* ModifySpaceAction */) {\n    mask2 |= 28 /* ModifySpaceAction */;\n  }\n  if (ruleAction & 96 /* ModifyTokenAction */) {\n    mask2 |= 96 /* ModifyTokenAction */;\n  }\n  return mask2;\n}\nfunction createRulesMap(rules) {\n  const map2 = buildMap(rules);\n  return (context) => {\n    const bucket = map2[getRuleBucketIndex(context.currentTokenSpan.kind, context.nextTokenSpan.kind)];\n    if (bucket) {\n      const rules2 = [];\n      let ruleActionMask = 0;\n      for (const rule2 of bucket) {\n        const acceptRuleActions = ~getRuleActionExclusion(ruleActionMask);\n        if (rule2.action & acceptRuleActions && every(rule2.context, (c) => c(context))) {\n          rules2.push(rule2);\n          ruleActionMask |= rule2.action;\n        }\n      }\n      if (rules2.length) {\n        return rules2;\n      }\n    }\n  };\n}\nfunction buildMap(rules) {\n  const map2 = new Array(mapRowLength * mapRowLength);\n  const rulesBucketConstructionStateList = new Array(map2.length);\n  for (const rule2 of rules) {\n    const specificRule = rule2.leftTokenRange.isSpecific && rule2.rightTokenRange.isSpecific;\n    for (const left of rule2.leftTokenRange.tokens) {\n      for (const right of rule2.rightTokenRange.tokens) {\n        const index = getRuleBucketIndex(left, right);\n        let rulesBucket = map2[index];\n        if (rulesBucket === void 0) {\n          rulesBucket = map2[index] = [];\n        }\n        addRule(rulesBucket, rule2.rule, specificRule, rulesBucketConstructionStateList, index);\n      }\n    }\n  }\n  return map2;\n}\nfunction getRuleBucketIndex(row, column) {\n  Debug.assert(row <= 166 /* LastKeyword */ && column <= 166 /* LastKeyword */, \"Must compute formatting context from tokens\");\n  return row * mapRowLength + column;\n}\nvar maskBitSize = 5;\nvar mask = 31;\nvar mapRowLength = 166 /* LastToken */ + 1;\nvar RulesPosition = ((RulesPosition2) => {\n  RulesPosition2[RulesPosition2[\"StopRulesSpecific\"] = 0] = \"StopRulesSpecific\";\n  RulesPosition2[RulesPosition2[\"StopRulesAny\"] = maskBitSize * 1] = \"StopRulesAny\";\n  RulesPosition2[RulesPosition2[\"ContextRulesSpecific\"] = maskBitSize * 2] = \"ContextRulesSpecific\";\n  RulesPosition2[RulesPosition2[\"ContextRulesAny\"] = maskBitSize * 3] = \"ContextRulesAny\";\n  RulesPosition2[RulesPosition2[\"NoContextRulesSpecific\"] = maskBitSize * 4] = \"NoContextRulesSpecific\";\n  RulesPosition2[RulesPosition2[\"NoContextRulesAny\"] = maskBitSize * 5] = \"NoContextRulesAny\";\n  return RulesPosition2;\n})(RulesPosition || {});\nfunction addRule(rules, rule2, specificTokens, constructionState, rulesBucketIndex) {\n  const position = rule2.action & 3 /* StopAction */ ? specificTokens ? 0 /* StopRulesSpecific */ : RulesPosition.StopRulesAny : rule2.context !== anyContext ? specificTokens ? RulesPosition.ContextRulesSpecific : RulesPosition.ContextRulesAny : specificTokens ? RulesPosition.NoContextRulesSpecific : RulesPosition.NoContextRulesAny;\n  const state = constructionState[rulesBucketIndex] || 0;\n  rules.splice(getInsertionIndex(state, position), 0, rule2);\n  constructionState[rulesBucketIndex] = increaseInsertionIndex(state, position);\n}\nfunction getInsertionIndex(indexBitmap, maskPosition) {\n  let index = 0;\n  for (let pos = 0; pos <= maskPosition; pos += maskBitSize) {\n    index += indexBitmap & mask;\n    indexBitmap >>= maskBitSize;\n  }\n  return index;\n}\nfunction increaseInsertionIndex(indexBitmap, maskPosition) {\n  const value = (indexBitmap >> maskPosition & mask) + 1;\n  Debug.assert((value & mask) === value, \"Adding more rules into the sub-bucket than allowed. Maximum allowed is 32 rules.\");\n  return indexBitmap & ~(mask << maskPosition) | value << maskPosition;\n}\n\n// src/services/formatting/formatting.ts\nfunction createTextRangeWithKind(pos, end, kind) {\n  const textRangeWithKind = { pos, end, kind };\n  if (Debug.isDebugging) {\n    Object.defineProperty(textRangeWithKind, \"__debugKind\", {\n      get: () => Debug.formatSyntaxKind(kind)\n    });\n  }\n  return textRangeWithKind;\n}\nfunction formatOnEnter(position, sourceFile, formatContext) {\n  const line = sourceFile.getLineAndCharacterOfPosition(position).line;\n  if (line === 0) {\n    return [];\n  }\n  let endOfFormatSpan = getEndLinePosition(line, sourceFile);\n  while (isWhiteSpaceSingleLine(sourceFile.text.charCodeAt(endOfFormatSpan))) {\n    endOfFormatSpan--;\n  }\n  if (isLineBreak(sourceFile.text.charCodeAt(endOfFormatSpan))) {\n    endOfFormatSpan--;\n  }\n  const span = {\n    // get start position for the previous line\n    pos: getStartPositionOfLine(line - 1, sourceFile),\n    // end value is exclusive so add 1 to the result\n    end: endOfFormatSpan + 1\n  };\n  return formatSpan(span, sourceFile, formatContext, 2 /* FormatOnEnter */);\n}\nfunction formatOnSemicolon(position, sourceFile, formatContext) {\n  const semicolon = findImmediatelyPrecedingTokenOfKind(position, 27 /* SemicolonToken */, sourceFile);\n  return formatNodeLines(findOutermostNodeWithinListLevel(semicolon), sourceFile, formatContext, 3 /* FormatOnSemicolon */);\n}\nfunction formatOnOpeningCurly(position, sourceFile, formatContext) {\n  const openingCurly = findImmediatelyPrecedingTokenOfKind(position, 19 /* OpenBraceToken */, sourceFile);\n  if (!openingCurly) {\n    return [];\n  }\n  const curlyBraceRange = openingCurly.parent;\n  const outermostNode = findOutermostNodeWithinListLevel(curlyBraceRange);\n  const textRange = {\n    pos: getLineStartPositionForPosition(outermostNode.getStart(sourceFile), sourceFile),\n    // TODO: GH#18217\n    end: position\n  };\n  return formatSpan(textRange, sourceFile, formatContext, 4 /* FormatOnOpeningCurlyBrace */);\n}\nfunction formatOnClosingCurly(position, sourceFile, formatContext) {\n  const precedingToken = findImmediatelyPrecedingTokenOfKind(position, 20 /* CloseBraceToken */, sourceFile);\n  return formatNodeLines(findOutermostNodeWithinListLevel(precedingToken), sourceFile, formatContext, 5 /* FormatOnClosingCurlyBrace */);\n}\nfunction formatDocument(sourceFile, formatContext) {\n  const span = {\n    pos: 0,\n    end: sourceFile.text.length\n  };\n  return formatSpan(span, sourceFile, formatContext, 0 /* FormatDocument */);\n}\nfunction formatSelection(start, end, sourceFile, formatContext) {\n  const span = {\n    pos: getLineStartPositionForPosition(start, sourceFile),\n    end\n  };\n  return formatSpan(span, sourceFile, formatContext, 1 /* FormatSelection */);\n}\nfunction findImmediatelyPrecedingTokenOfKind(end, expectedTokenKind, sourceFile) {\n  const precedingToken = findPrecedingToken(end, sourceFile);\n  return precedingToken && precedingToken.kind === expectedTokenKind && end === precedingToken.getEnd() ? precedingToken : void 0;\n}\nfunction findOutermostNodeWithinListLevel(node) {\n  let current = node;\n  while (current && current.parent && current.parent.end === node.end && !isListElement(current.parent, current)) {\n    current = current.parent;\n  }\n  return current;\n}\nfunction isListElement(parent2, node) {\n  switch (parent2.kind) {\n    case 264 /* ClassDeclaration */:\n    case 265 /* InterfaceDeclaration */:\n      return rangeContainsRange(parent2.members, node);\n    case 268 /* ModuleDeclaration */:\n      const body = parent2.body;\n      return !!body && body.kind === 269 /* ModuleBlock */ && rangeContainsRange(body.statements, node);\n    case 308 /* SourceFile */:\n    case 242 /* Block */:\n    case 269 /* ModuleBlock */:\n      return rangeContainsRange(parent2.statements, node);\n    case 300 /* CatchClause */:\n      return rangeContainsRange(parent2.block.statements, node);\n  }\n  return false;\n}\nfunction findEnclosingNode(range, sourceFile) {\n  return find2(sourceFile);\n  function find2(n) {\n    const candidate = forEachChild(n, (c) => startEndContainsRange(c.getStart(sourceFile), c.end, range) && c);\n    if (candidate) {\n      const result = find2(candidate);\n      if (result) {\n        return result;\n      }\n    }\n    return n;\n  }\n}\nfunction prepareRangeContainsErrorFunction(errors, originalRange) {\n  if (!errors.length) {\n    return rangeHasNoErrors;\n  }\n  const sorted = errors.filter((d) => rangeOverlapsWithStartEnd(originalRange, d.start, d.start + d.length)).sort((e1, e2) => e1.start - e2.start);\n  if (!sorted.length) {\n    return rangeHasNoErrors;\n  }\n  let index = 0;\n  return (r) => {\n    while (true) {\n      if (index >= sorted.length) {\n        return false;\n      }\n      const error2 = sorted[index];\n      if (r.end <= error2.start) {\n        return false;\n      }\n      if (startEndOverlapsWithStartEnd(r.pos, r.end, error2.start, error2.start + error2.length)) {\n        return true;\n      }\n      index++;\n    }\n  };\n  function rangeHasNoErrors() {\n    return false;\n  }\n}\nfunction getScanStartPosition(enclosingNode, originalRange, sourceFile) {\n  const start = enclosingNode.getStart(sourceFile);\n  if (start === originalRange.pos && enclosingNode.end === originalRange.end) {\n    return start;\n  }\n  const precedingToken = findPrecedingToken(originalRange.pos, sourceFile);\n  if (!precedingToken) {\n    return enclosingNode.pos;\n  }\n  if (precedingToken.end >= originalRange.pos) {\n    return enclosingNode.pos;\n  }\n  return precedingToken.end;\n}\nfunction getOwnOrInheritedDelta(n, options, sourceFile) {\n  let previousLine = -1 /* Unknown */;\n  let child;\n  while (n) {\n    const line = sourceFile.getLineAndCharacterOfPosition(n.getStart(sourceFile)).line;\n    if (previousLine !== -1 /* Unknown */ && line !== previousLine) {\n      break;\n    }\n    if (SmartIndenter.shouldIndentChildNode(options, n, child, sourceFile)) {\n      return options.indentSize;\n    }\n    previousLine = line;\n    child = n;\n    n = n.parent;\n  }\n  return 0;\n}\nfunction formatNodeGivenIndentation(node, sourceFileLike, languageVariant, initialIndentation, delta, formatContext) {\n  const range = { pos: node.pos, end: node.end };\n  return getFormattingScanner(sourceFileLike.text, languageVariant, range.pos, range.end, (scanner2) => formatSpanWorker(\n    range,\n    node,\n    initialIndentation,\n    delta,\n    scanner2,\n    formatContext,\n    1 /* FormatSelection */,\n    (_) => false,\n    // assume that node does not have any errors\n    sourceFileLike\n  ));\n}\nfunction formatNodeLines(node, sourceFile, formatContext, requestKind) {\n  if (!node) {\n    return [];\n  }\n  const span = {\n    pos: getLineStartPositionForPosition(node.getStart(sourceFile), sourceFile),\n    end: node.end\n  };\n  return formatSpan(span, sourceFile, formatContext, requestKind);\n}\nfunction formatSpan(originalRange, sourceFile, formatContext, requestKind) {\n  const enclosingNode = findEnclosingNode(originalRange, sourceFile);\n  return getFormattingScanner(\n    sourceFile.text,\n    sourceFile.languageVariant,\n    getScanStartPosition(enclosingNode, originalRange, sourceFile),\n    originalRange.end,\n    (scanner2) => formatSpanWorker(\n      originalRange,\n      enclosingNode,\n      SmartIndenter.getIndentationForNode(enclosingNode, originalRange, sourceFile, formatContext.options),\n      getOwnOrInheritedDelta(enclosingNode, formatContext.options, sourceFile),\n      scanner2,\n      formatContext,\n      requestKind,\n      prepareRangeContainsErrorFunction(sourceFile.parseDiagnostics, originalRange),\n      sourceFile\n    )\n  );\n}\nfunction formatSpanWorker(originalRange, enclosingNode, initialIndentation, delta, formattingScanner, { options, getRules, host }, requestKind, rangeContainsError, sourceFile) {\n  var _a;\n  const formattingContext = new FormattingContext(sourceFile, requestKind, options);\n  let previousRangeTriviaEnd;\n  let previousRange;\n  let previousParent;\n  let previousRangeStartLine;\n  let lastIndentedLine;\n  let indentationOnLastIndentedLine = -1 /* Unknown */;\n  const edits = [];\n  formattingScanner.advance();\n  if (formattingScanner.isOnToken()) {\n    const startLine = sourceFile.getLineAndCharacterOfPosition(enclosingNode.getStart(sourceFile)).line;\n    let undecoratedStartLine = startLine;\n    if (hasDecorators(enclosingNode)) {\n      undecoratedStartLine = sourceFile.getLineAndCharacterOfPosition(getNonDecoratorTokenPosOfNode(enclosingNode, sourceFile)).line;\n    }\n    processNode(enclosingNode, enclosingNode, startLine, undecoratedStartLine, initialIndentation, delta);\n  }\n  const remainingTrivia = formattingScanner.getCurrentLeadingTrivia();\n  if (remainingTrivia) {\n    const indentation = SmartIndenter.nodeWillIndentChild(\n      options,\n      enclosingNode,\n      /*child*/\n      void 0,\n      sourceFile,\n      /*indentByDefault*/\n      false\n    ) ? initialIndentation + options.indentSize : initialIndentation;\n    indentTriviaItems(\n      remainingTrivia,\n      indentation,\n      /*indentNextTokenOrTrivia*/\n      true,\n      (item) => {\n        processRange(\n          item,\n          sourceFile.getLineAndCharacterOfPosition(item.pos),\n          enclosingNode,\n          enclosingNode,\n          /*dynamicIndentation*/\n          void 0\n        );\n        insertIndentation(\n          item.pos,\n          indentation,\n          /*lineAdded*/\n          false\n        );\n      }\n    );\n    if (options.trimTrailingWhitespace !== false) {\n      trimTrailingWhitespacesForRemainingRange(remainingTrivia);\n    }\n  }\n  if (previousRange && formattingScanner.getTokenFullStart() >= originalRange.end) {\n    const tokenInfo = formattingScanner.isOnEOF() ? formattingScanner.readEOFTokenRange() : formattingScanner.isOnToken() ? formattingScanner.readTokenInfo(enclosingNode).token : void 0;\n    if (tokenInfo && tokenInfo.pos === previousRangeTriviaEnd) {\n      const parent2 = ((_a = findPrecedingToken(tokenInfo.end, sourceFile, enclosingNode)) == null ? void 0 : _a.parent) || previousParent;\n      processPair(\n        tokenInfo,\n        sourceFile.getLineAndCharacterOfPosition(tokenInfo.pos).line,\n        parent2,\n        previousRange,\n        previousRangeStartLine,\n        previousParent,\n        parent2,\n        /*dynamicIndentation*/\n        void 0\n      );\n    }\n  }\n  return edits;\n  function tryComputeIndentationForListItem(startPos, endPos, parentStartLine, range, inheritedIndentation) {\n    if (rangeOverlapsWithStartEnd(range, startPos, endPos) || rangeContainsStartEnd(range, startPos, endPos)) {\n      if (inheritedIndentation !== -1 /* Unknown */) {\n        return inheritedIndentation;\n      }\n    } else {\n      const startLine = sourceFile.getLineAndCharacterOfPosition(startPos).line;\n      const startLinePosition = getLineStartPositionForPosition(startPos, sourceFile);\n      const column = SmartIndenter.findFirstNonWhitespaceColumn(startLinePosition, startPos, sourceFile, options);\n      if (startLine !== parentStartLine || startPos === column) {\n        const baseIndentSize = SmartIndenter.getBaseIndentation(options);\n        return baseIndentSize > column ? baseIndentSize : column;\n      }\n    }\n    return -1 /* Unknown */;\n  }\n  function computeIndentation(node, startLine, inheritedIndentation, parent2, parentDynamicIndentation, effectiveParentStartLine) {\n    const delta2 = SmartIndenter.shouldIndentChildNode(options, node) ? options.indentSize : 0;\n    if (effectiveParentStartLine === startLine) {\n      return {\n        indentation: startLine === lastIndentedLine ? indentationOnLastIndentedLine : parentDynamicIndentation.getIndentation(),\n        delta: Math.min(options.indentSize, parentDynamicIndentation.getDelta(node) + delta2)\n      };\n    } else if (inheritedIndentation === -1 /* Unknown */) {\n      if (node.kind === 21 /* OpenParenToken */ && startLine === lastIndentedLine) {\n        return { indentation: indentationOnLastIndentedLine, delta: parentDynamicIndentation.getDelta(node) };\n      } else if (SmartIndenter.childStartsOnTheSameLineWithElseInIfStatement(parent2, node, startLine, sourceFile) || SmartIndenter.childIsUnindentedBranchOfConditionalExpression(parent2, node, startLine, sourceFile) || SmartIndenter.argumentStartsOnSameLineAsPreviousArgument(parent2, node, startLine, sourceFile)) {\n        return { indentation: parentDynamicIndentation.getIndentation(), delta: delta2 };\n      } else {\n        return { indentation: parentDynamicIndentation.getIndentation() + parentDynamicIndentation.getDelta(node), delta: delta2 };\n      }\n    } else {\n      return { indentation: inheritedIndentation, delta: delta2 };\n    }\n  }\n  function getFirstNonDecoratorTokenOfNode(node) {\n    if (canHaveModifiers(node)) {\n      const modifier = find(node.modifiers, isModifier, findIndex(node.modifiers, isDecorator));\n      if (modifier) return modifier.kind;\n    }\n    switch (node.kind) {\n      case 264 /* ClassDeclaration */:\n        return 86 /* ClassKeyword */;\n      case 265 /* InterfaceDeclaration */:\n        return 120 /* InterfaceKeyword */;\n      case 263 /* FunctionDeclaration */:\n        return 100 /* FunctionKeyword */;\n      case 267 /* EnumDeclaration */:\n        return 267 /* EnumDeclaration */;\n      case 178 /* GetAccessor */:\n        return 139 /* GetKeyword */;\n      case 179 /* SetAccessor */:\n        return 153 /* SetKeyword */;\n      case 175 /* MethodDeclaration */:\n        if (node.asteriskToken) {\n          return 42 /* AsteriskToken */;\n        }\n      // falls through\n      case 173 /* PropertyDeclaration */:\n      case 170 /* Parameter */:\n        const name = getNameOfDeclaration(node);\n        if (name) {\n          return name.kind;\n        }\n    }\n  }\n  function getDynamicIndentation(node, nodeStartLine, indentation, delta2) {\n    return {\n      getIndentationForComment: (kind, tokenIndentation, container) => {\n        switch (kind) {\n          // preceding comment to the token that closes the indentation scope inherits the indentation from the scope\n          // ..  {\n          //     // comment\n          // }\n          case 20 /* CloseBraceToken */:\n          case 24 /* CloseBracketToken */:\n          case 22 /* CloseParenToken */:\n            return indentation + getDelta(container);\n        }\n        return tokenIndentation !== -1 /* Unknown */ ? tokenIndentation : indentation;\n      },\n      // if list end token is LessThanToken '>' then its delta should be explicitly suppressed\n      // so that LessThanToken as a binary operator can still be indented.\n      // foo.then\n      //     <\n      //         number,\n      //         string,\n      //     >();\n      // vs\n      // var a = xValue\n      //     > yValue;\n      getIndentationForToken: (line, kind, container, suppressDelta) => !suppressDelta && shouldAddDelta(line, kind, container) ? indentation + getDelta(container) : indentation,\n      getIndentation: () => indentation,\n      getDelta,\n      recomputeIndentation: (lineAdded, parent2) => {\n        if (SmartIndenter.shouldIndentChildNode(options, parent2, node, sourceFile)) {\n          indentation += lineAdded ? options.indentSize : -options.indentSize;\n          delta2 = SmartIndenter.shouldIndentChildNode(options, node) ? options.indentSize : 0;\n        }\n      }\n    };\n    function shouldAddDelta(line, kind, container) {\n      switch (kind) {\n        // open and close brace, 'else' and 'while' (in do statement) tokens has indentation of the parent\n        case 19 /* OpenBraceToken */:\n        case 20 /* CloseBraceToken */:\n        case 22 /* CloseParenToken */:\n        case 93 /* ElseKeyword */:\n        case 117 /* WhileKeyword */:\n        case 60 /* AtToken */:\n          return false;\n        case 44 /* SlashToken */:\n        case 32 /* GreaterThanToken */:\n          switch (container.kind) {\n            case 287 /* JsxOpeningElement */:\n            case 288 /* JsxClosingElement */:\n            case 286 /* JsxSelfClosingElement */:\n              return false;\n          }\n          break;\n        case 23 /* OpenBracketToken */:\n        case 24 /* CloseBracketToken */:\n          if (container.kind !== 201 /* MappedType */) {\n            return false;\n          }\n          break;\n      }\n      return nodeStartLine !== line && !(hasDecorators(node) && kind === getFirstNonDecoratorTokenOfNode(node));\n    }\n    function getDelta(child) {\n      return SmartIndenter.nodeWillIndentChild(\n        options,\n        node,\n        child,\n        sourceFile,\n        /*indentByDefault*/\n        true\n      ) ? delta2 : 0;\n    }\n  }\n  function processNode(node, contextNode, nodeStartLine, undecoratedNodeStartLine, indentation, delta2) {\n    if (!rangeOverlapsWithStartEnd(originalRange, node.getStart(sourceFile), node.getEnd())) {\n      return;\n    }\n    const nodeDynamicIndentation = getDynamicIndentation(node, nodeStartLine, indentation, delta2);\n    let childContextNode = contextNode;\n    forEachChild(\n      node,\n      (child) => {\n        processChildNode(\n          child,\n          /*inheritedIndentation*/\n          -1 /* Unknown */,\n          node,\n          nodeDynamicIndentation,\n          nodeStartLine,\n          undecoratedNodeStartLine,\n          /*isListItem*/\n          false\n        );\n      },\n      (nodes) => {\n        processChildNodes(nodes, node, nodeStartLine, nodeDynamicIndentation);\n      }\n    );\n    while (formattingScanner.isOnToken() && formattingScanner.getTokenFullStart() < originalRange.end) {\n      const tokenInfo = formattingScanner.readTokenInfo(node);\n      if (tokenInfo.token.end > Math.min(node.end, originalRange.end)) {\n        break;\n      }\n      consumeTokenAndAdvanceScanner(tokenInfo, node, nodeDynamicIndentation, node);\n    }\n    function processChildNode(child, inheritedIndentation, parent2, parentDynamicIndentation, parentStartLine, undecoratedParentStartLine, isListItem, isFirstListItem) {\n      Debug.assert(!nodeIsSynthesized(child));\n      if (nodeIsMissing(child) || isGrammarError(parent2, child)) {\n        return inheritedIndentation;\n      }\n      const childStartPos = child.getStart(sourceFile);\n      const childStartLine = sourceFile.getLineAndCharacterOfPosition(childStartPos).line;\n      let undecoratedChildStartLine = childStartLine;\n      if (hasDecorators(child)) {\n        undecoratedChildStartLine = sourceFile.getLineAndCharacterOfPosition(getNonDecoratorTokenPosOfNode(child, sourceFile)).line;\n      }\n      let childIndentationAmount = -1 /* Unknown */;\n      if (isListItem && rangeContainsRange(originalRange, parent2)) {\n        childIndentationAmount = tryComputeIndentationForListItem(childStartPos, child.end, parentStartLine, originalRange, inheritedIndentation);\n        if (childIndentationAmount !== -1 /* Unknown */) {\n          inheritedIndentation = childIndentationAmount;\n        }\n      }\n      if (!rangeOverlapsWithStartEnd(originalRange, child.pos, child.end)) {\n        if (child.end < originalRange.pos) {\n          formattingScanner.skipToEndOf(child);\n        }\n        return inheritedIndentation;\n      }\n      if (child.getFullWidth() === 0) {\n        return inheritedIndentation;\n      }\n      while (formattingScanner.isOnToken() && formattingScanner.getTokenFullStart() < originalRange.end) {\n        const tokenInfo = formattingScanner.readTokenInfo(node);\n        if (tokenInfo.token.end > originalRange.end) {\n          return inheritedIndentation;\n        }\n        if (tokenInfo.token.end > childStartPos) {\n          if (tokenInfo.token.pos > childStartPos) {\n            formattingScanner.skipToStartOf(child);\n          }\n          break;\n        }\n        consumeTokenAndAdvanceScanner(tokenInfo, node, parentDynamicIndentation, node);\n      }\n      if (!formattingScanner.isOnToken() || formattingScanner.getTokenFullStart() >= originalRange.end) {\n        return inheritedIndentation;\n      }\n      if (isToken(child)) {\n        const tokenInfo = formattingScanner.readTokenInfo(child);\n        if (child.kind !== 12 /* JsxText */) {\n          Debug.assert(tokenInfo.token.end === child.end, \"Token end is child end\");\n          consumeTokenAndAdvanceScanner(tokenInfo, node, parentDynamicIndentation, child);\n          return inheritedIndentation;\n        }\n      }\n      const effectiveParentStartLine = child.kind === 171 /* Decorator */ ? childStartLine : undecoratedParentStartLine;\n      const childIndentation = computeIndentation(child, childStartLine, childIndentationAmount, node, parentDynamicIndentation, effectiveParentStartLine);\n      processNode(child, childContextNode, childStartLine, undecoratedChildStartLine, childIndentation.indentation, childIndentation.delta);\n      childContextNode = node;\n      if (isFirstListItem && parent2.kind === 210 /* ArrayLiteralExpression */ && inheritedIndentation === -1 /* Unknown */) {\n        inheritedIndentation = childIndentation.indentation;\n      }\n      return inheritedIndentation;\n    }\n    function processChildNodes(nodes, parent2, parentStartLine, parentDynamicIndentation) {\n      Debug.assert(isNodeArray(nodes));\n      Debug.assert(!nodeIsSynthesized(nodes));\n      const listStartToken = getOpenTokenForList(parent2, nodes);\n      let listDynamicIndentation = parentDynamicIndentation;\n      let startLine = parentStartLine;\n      if (!rangeOverlapsWithStartEnd(originalRange, nodes.pos, nodes.end)) {\n        if (nodes.end < originalRange.pos) {\n          formattingScanner.skipToEndOf(nodes);\n        }\n        return;\n      }\n      if (listStartToken !== 0 /* Unknown */) {\n        while (formattingScanner.isOnToken() && formattingScanner.getTokenFullStart() < originalRange.end) {\n          const tokenInfo = formattingScanner.readTokenInfo(parent2);\n          if (tokenInfo.token.end > nodes.pos) {\n            break;\n          } else if (tokenInfo.token.kind === listStartToken) {\n            startLine = sourceFile.getLineAndCharacterOfPosition(tokenInfo.token.pos).line;\n            consumeTokenAndAdvanceScanner(tokenInfo, parent2, parentDynamicIndentation, parent2);\n            let indentationOnListStartToken;\n            if (indentationOnLastIndentedLine !== -1 /* Unknown */) {\n              indentationOnListStartToken = indentationOnLastIndentedLine;\n            } else {\n              const startLinePosition = getLineStartPositionForPosition(tokenInfo.token.pos, sourceFile);\n              indentationOnListStartToken = SmartIndenter.findFirstNonWhitespaceColumn(startLinePosition, tokenInfo.token.pos, sourceFile, options);\n            }\n            listDynamicIndentation = getDynamicIndentation(parent2, parentStartLine, indentationOnListStartToken, options.indentSize);\n          } else {\n            consumeTokenAndAdvanceScanner(tokenInfo, parent2, parentDynamicIndentation, parent2);\n          }\n        }\n      }\n      let inheritedIndentation = -1 /* Unknown */;\n      for (let i = 0; i < nodes.length; i++) {\n        const child = nodes[i];\n        inheritedIndentation = processChildNode(\n          child,\n          inheritedIndentation,\n          node,\n          listDynamicIndentation,\n          startLine,\n          startLine,\n          /*isListItem*/\n          true,\n          /*isFirstListItem*/\n          i === 0\n        );\n      }\n      const listEndToken = getCloseTokenForOpenToken(listStartToken);\n      if (listEndToken !== 0 /* Unknown */ && formattingScanner.isOnToken() && formattingScanner.getTokenFullStart() < originalRange.end) {\n        let tokenInfo = formattingScanner.readTokenInfo(parent2);\n        if (tokenInfo.token.kind === 28 /* CommaToken */) {\n          consumeTokenAndAdvanceScanner(tokenInfo, parent2, listDynamicIndentation, parent2);\n          tokenInfo = formattingScanner.isOnToken() ? formattingScanner.readTokenInfo(parent2) : void 0;\n        }\n        if (tokenInfo && tokenInfo.token.kind === listEndToken && rangeContainsRange(parent2, tokenInfo.token)) {\n          consumeTokenAndAdvanceScanner(\n            tokenInfo,\n            parent2,\n            listDynamicIndentation,\n            parent2,\n            /*isListEndToken*/\n            true\n          );\n        }\n      }\n    }\n    function consumeTokenAndAdvanceScanner(currentTokenInfo, parent2, dynamicIndentation, container, isListEndToken) {\n      Debug.assert(rangeContainsRange(parent2, currentTokenInfo.token));\n      const lastTriviaWasNewLine = formattingScanner.lastTrailingTriviaWasNewLine();\n      let indentToken = false;\n      if (currentTokenInfo.leadingTrivia) {\n        processTrivia(currentTokenInfo.leadingTrivia, parent2, childContextNode, dynamicIndentation);\n      }\n      let lineAction = 0 /* None */;\n      const isTokenInRange = rangeContainsRange(originalRange, currentTokenInfo.token);\n      const tokenStart = sourceFile.getLineAndCharacterOfPosition(currentTokenInfo.token.pos);\n      if (isTokenInRange) {\n        const rangeHasError = rangeContainsError(currentTokenInfo.token);\n        const savePreviousRange = previousRange;\n        lineAction = processRange(currentTokenInfo.token, tokenStart, parent2, childContextNode, dynamicIndentation);\n        if (!rangeHasError) {\n          if (lineAction === 0 /* None */) {\n            const prevEndLine = savePreviousRange && sourceFile.getLineAndCharacterOfPosition(savePreviousRange.end).line;\n            indentToken = lastTriviaWasNewLine && tokenStart.line !== prevEndLine;\n          } else {\n            indentToken = lineAction === 1 /* LineAdded */;\n          }\n        }\n      }\n      if (currentTokenInfo.trailingTrivia) {\n        previousRangeTriviaEnd = last(currentTokenInfo.trailingTrivia).end;\n        processTrivia(currentTokenInfo.trailingTrivia, parent2, childContextNode, dynamicIndentation);\n      }\n      if (indentToken) {\n        const tokenIndentation = isTokenInRange && !rangeContainsError(currentTokenInfo.token) ? dynamicIndentation.getIndentationForToken(tokenStart.line, currentTokenInfo.token.kind, container, !!isListEndToken) : -1 /* Unknown */;\n        let indentNextTokenOrTrivia = true;\n        if (currentTokenInfo.leadingTrivia) {\n          const commentIndentation = dynamicIndentation.getIndentationForComment(currentTokenInfo.token.kind, tokenIndentation, container);\n          indentNextTokenOrTrivia = indentTriviaItems(currentTokenInfo.leadingTrivia, commentIndentation, indentNextTokenOrTrivia, (item) => insertIndentation(\n            item.pos,\n            commentIndentation,\n            /*lineAdded*/\n            false\n          ));\n        }\n        if (tokenIndentation !== -1 /* Unknown */ && indentNextTokenOrTrivia) {\n          insertIndentation(currentTokenInfo.token.pos, tokenIndentation, lineAction === 1 /* LineAdded */);\n          lastIndentedLine = tokenStart.line;\n          indentationOnLastIndentedLine = tokenIndentation;\n        }\n      }\n      formattingScanner.advance();\n      childContextNode = parent2;\n    }\n  }\n  function indentTriviaItems(trivia, commentIndentation, indentNextTokenOrTrivia, indentSingleLine) {\n    for (const triviaItem of trivia) {\n      const triviaInRange = rangeContainsRange(originalRange, triviaItem);\n      switch (triviaItem.kind) {\n        case 3 /* MultiLineCommentTrivia */:\n          if (triviaInRange) {\n            indentMultilineComment(\n              triviaItem,\n              commentIndentation,\n              /*firstLineIsIndented*/\n              !indentNextTokenOrTrivia\n            );\n          }\n          indentNextTokenOrTrivia = false;\n          break;\n        case 2 /* SingleLineCommentTrivia */:\n          if (indentNextTokenOrTrivia && triviaInRange) {\n            indentSingleLine(triviaItem);\n          }\n          indentNextTokenOrTrivia = false;\n          break;\n        case 4 /* NewLineTrivia */:\n          indentNextTokenOrTrivia = true;\n          break;\n      }\n    }\n    return indentNextTokenOrTrivia;\n  }\n  function processTrivia(trivia, parent2, contextNode, dynamicIndentation) {\n    for (const triviaItem of trivia) {\n      if (isComment(triviaItem.kind) && rangeContainsRange(originalRange, triviaItem)) {\n        const triviaItemStart = sourceFile.getLineAndCharacterOfPosition(triviaItem.pos);\n        processRange(triviaItem, triviaItemStart, parent2, contextNode, dynamicIndentation);\n      }\n    }\n  }\n  function processRange(range, rangeStart, parent2, contextNode, dynamicIndentation) {\n    const rangeHasError = rangeContainsError(range);\n    let lineAction = 0 /* None */;\n    if (!rangeHasError) {\n      if (!previousRange) {\n        const originalStart = sourceFile.getLineAndCharacterOfPosition(originalRange.pos);\n        trimTrailingWhitespacesForLines(originalStart.line, rangeStart.line);\n      } else {\n        lineAction = processPair(range, rangeStart.line, parent2, previousRange, previousRangeStartLine, previousParent, contextNode, dynamicIndentation);\n      }\n    }\n    previousRange = range;\n    previousRangeTriviaEnd = range.end;\n    previousParent = parent2;\n    previousRangeStartLine = rangeStart.line;\n    return lineAction;\n  }\n  function processPair(currentItem, currentStartLine, currentParent, previousItem, previousStartLine, previousParent2, contextNode, dynamicIndentation) {\n    formattingContext.updateContext(previousItem, previousParent2, currentItem, currentParent, contextNode);\n    const rules = getRules(formattingContext);\n    let trimTrailingWhitespaces = formattingContext.options.trimTrailingWhitespace !== false;\n    let lineAction = 0 /* None */;\n    if (rules) {\n      forEachRight(rules, (rule2) => {\n        lineAction = applyRuleEdits(rule2, previousItem, previousStartLine, currentItem, currentStartLine);\n        if (dynamicIndentation) {\n          switch (lineAction) {\n            case 2 /* LineRemoved */:\n              if (currentParent.getStart(sourceFile) === currentItem.pos) {\n                dynamicIndentation.recomputeIndentation(\n                  /*lineAddedByFormatting*/\n                  false,\n                  contextNode\n                );\n              }\n              break;\n            case 1 /* LineAdded */:\n              if (currentParent.getStart(sourceFile) === currentItem.pos) {\n                dynamicIndentation.recomputeIndentation(\n                  /*lineAddedByFormatting*/\n                  true,\n                  contextNode\n                );\n              }\n              break;\n            default:\n              Debug.assert(lineAction === 0 /* None */);\n          }\n        }\n        trimTrailingWhitespaces = trimTrailingWhitespaces && !(rule2.action & 16 /* DeleteSpace */) && rule2.flags !== 1 /* CanDeleteNewLines */;\n      });\n    } else {\n      trimTrailingWhitespaces = trimTrailingWhitespaces && currentItem.kind !== 1 /* EndOfFileToken */;\n    }\n    if (currentStartLine !== previousStartLine && trimTrailingWhitespaces) {\n      trimTrailingWhitespacesForLines(previousStartLine, currentStartLine, previousItem);\n    }\n    return lineAction;\n  }\n  function insertIndentation(pos, indentation, lineAdded) {\n    const indentationString = getIndentationString(indentation, options);\n    if (lineAdded) {\n      recordReplace(pos, 0, indentationString);\n    } else {\n      const tokenStart = sourceFile.getLineAndCharacterOfPosition(pos);\n      const startLinePosition = getStartPositionOfLine(tokenStart.line, sourceFile);\n      if (indentation !== characterToColumn(startLinePosition, tokenStart.character) || indentationIsDifferent(indentationString, startLinePosition)) {\n        recordReplace(startLinePosition, tokenStart.character, indentationString);\n      }\n    }\n  }\n  function characterToColumn(startLinePosition, characterInLine) {\n    let column = 0;\n    for (let i = 0; i < characterInLine; i++) {\n      if (sourceFile.text.charCodeAt(startLinePosition + i) === 9 /* tab */) {\n        column += options.tabSize - column % options.tabSize;\n      } else {\n        column++;\n      }\n    }\n    return column;\n  }\n  function indentationIsDifferent(indentationString, startLinePosition) {\n    return indentationString !== sourceFile.text.substr(startLinePosition, indentationString.length);\n  }\n  function indentMultilineComment(commentRange, indentation, firstLineIsIndented, indentFinalLine = true) {\n    let startLine = sourceFile.getLineAndCharacterOfPosition(commentRange.pos).line;\n    const endLine = sourceFile.getLineAndCharacterOfPosition(commentRange.end).line;\n    if (startLine === endLine) {\n      if (!firstLineIsIndented) {\n        insertIndentation(\n          commentRange.pos,\n          indentation,\n          /*lineAdded*/\n          false\n        );\n      }\n      return;\n    }\n    const parts = [];\n    let startPos = commentRange.pos;\n    for (let line = startLine; line < endLine; line++) {\n      const endOfLine = getEndLinePosition(line, sourceFile);\n      parts.push({ pos: startPos, end: endOfLine });\n      startPos = getStartPositionOfLine(line + 1, sourceFile);\n    }\n    if (indentFinalLine) {\n      parts.push({ pos: startPos, end: commentRange.end });\n    }\n    if (parts.length === 0) return;\n    const startLinePos = getStartPositionOfLine(startLine, sourceFile);\n    const nonWhitespaceColumnInFirstPart = SmartIndenter.findFirstNonWhitespaceCharacterAndColumn(startLinePos, parts[0].pos, sourceFile, options);\n    let startIndex = 0;\n    if (firstLineIsIndented) {\n      startIndex = 1;\n      startLine++;\n    }\n    const delta2 = indentation - nonWhitespaceColumnInFirstPart.column;\n    for (let i = startIndex; i < parts.length; i++, startLine++) {\n      const startLinePos2 = getStartPositionOfLine(startLine, sourceFile);\n      const nonWhitespaceCharacterAndColumn = i === 0 ? nonWhitespaceColumnInFirstPart : SmartIndenter.findFirstNonWhitespaceCharacterAndColumn(parts[i].pos, parts[i].end, sourceFile, options);\n      const newIndentation = nonWhitespaceCharacterAndColumn.column + delta2;\n      if (newIndentation > 0) {\n        const indentationString = getIndentationString(newIndentation, options);\n        recordReplace(startLinePos2, nonWhitespaceCharacterAndColumn.character, indentationString);\n      } else {\n        recordDelete(startLinePos2, nonWhitespaceCharacterAndColumn.character);\n      }\n    }\n  }\n  function trimTrailingWhitespacesForLines(line1, line2, range) {\n    for (let line = line1; line < line2; line++) {\n      const lineStartPosition = getStartPositionOfLine(line, sourceFile);\n      const lineEndPosition = getEndLinePosition(line, sourceFile);\n      if (range && (isComment(range.kind) || isStringOrRegularExpressionOrTemplateLiteral(range.kind)) && range.pos <= lineEndPosition && range.end > lineEndPosition) {\n        continue;\n      }\n      const whitespaceStart = getTrailingWhitespaceStartPosition(lineStartPosition, lineEndPosition);\n      if (whitespaceStart !== -1) {\n        Debug.assert(whitespaceStart === lineStartPosition || !isWhiteSpaceSingleLine(sourceFile.text.charCodeAt(whitespaceStart - 1)));\n        recordDelete(whitespaceStart, lineEndPosition + 1 - whitespaceStart);\n      }\n    }\n  }\n  function getTrailingWhitespaceStartPosition(start, end) {\n    let pos = end;\n    while (pos >= start && isWhiteSpaceSingleLine(sourceFile.text.charCodeAt(pos))) {\n      pos--;\n    }\n    if (pos !== end) {\n      return pos + 1;\n    }\n    return -1;\n  }\n  function trimTrailingWhitespacesForRemainingRange(trivias) {\n    let startPos = previousRange ? previousRange.end : originalRange.pos;\n    for (const trivia of trivias) {\n      if (isComment(trivia.kind)) {\n        if (startPos < trivia.pos) {\n          trimTrailingWitespacesForPositions(startPos, trivia.pos - 1, previousRange);\n        }\n        startPos = trivia.end + 1;\n      }\n    }\n    if (startPos < originalRange.end) {\n      trimTrailingWitespacesForPositions(startPos, originalRange.end, previousRange);\n    }\n  }\n  function trimTrailingWitespacesForPositions(startPos, endPos, previousRange2) {\n    const startLine = sourceFile.getLineAndCharacterOfPosition(startPos).line;\n    const endLine = sourceFile.getLineAndCharacterOfPosition(endPos).line;\n    trimTrailingWhitespacesForLines(startLine, endLine + 1, previousRange2);\n  }\n  function recordDelete(start, len) {\n    if (len) {\n      edits.push(createTextChangeFromStartLength(start, len, \"\"));\n    }\n  }\n  function recordReplace(start, len, newText) {\n    if (len || newText) {\n      edits.push(createTextChangeFromStartLength(start, len, newText));\n    }\n  }\n  function recordInsert(start, text) {\n    if (text) {\n      edits.push(createTextChangeFromStartLength(start, 0, text));\n    }\n  }\n  function applyRuleEdits(rule2, previousRange2, previousStartLine, currentRange, currentStartLine) {\n    const onLaterLine = currentStartLine !== previousStartLine;\n    switch (rule2.action) {\n      case 1 /* StopProcessingSpaceActions */:\n        return 0 /* None */;\n      case 16 /* DeleteSpace */:\n        if (previousRange2.end !== currentRange.pos) {\n          recordDelete(previousRange2.end, currentRange.pos - previousRange2.end);\n          return onLaterLine ? 2 /* LineRemoved */ : 0 /* None */;\n        }\n        break;\n      case 32 /* DeleteToken */:\n        recordDelete(previousRange2.pos, previousRange2.end - previousRange2.pos);\n        break;\n      case 8 /* InsertNewLine */:\n        if (rule2.flags !== 1 /* CanDeleteNewLines */ && previousStartLine !== currentStartLine) {\n          return 0 /* None */;\n        }\n        const lineDelta = currentStartLine - previousStartLine;\n        if (lineDelta !== 1) {\n          recordReplace(previousRange2.end, currentRange.pos - previousRange2.end, getNewLineOrDefaultFromHost(host, options));\n          return onLaterLine ? 0 /* None */ : 1 /* LineAdded */;\n        }\n        break;\n      case 4 /* InsertSpace */:\n        if (rule2.flags !== 1 /* CanDeleteNewLines */ && previousStartLine !== currentStartLine) {\n          return 0 /* None */;\n        }\n        const posDelta = currentRange.pos - previousRange2.end;\n        if (posDelta !== 1 || sourceFile.text.charCodeAt(previousRange2.end) !== 32 /* space */) {\n          recordReplace(previousRange2.end, currentRange.pos - previousRange2.end, \" \");\n          return onLaterLine ? 2 /* LineRemoved */ : 0 /* None */;\n        }\n        break;\n      case 64 /* InsertTrailingSemicolon */:\n        recordInsert(previousRange2.end, \";\");\n    }\n    return 0 /* None */;\n  }\n}\nfunction getRangeOfEnclosingComment(sourceFile, position, precedingToken, tokenAtPosition = getTokenAtPosition(sourceFile, position)) {\n  const jsdoc = findAncestor(tokenAtPosition, isJSDoc);\n  if (jsdoc) tokenAtPosition = jsdoc.parent;\n  const tokenStart = tokenAtPosition.getStart(sourceFile);\n  if (tokenStart <= position && position < tokenAtPosition.getEnd()) {\n    return void 0;\n  }\n  precedingToken = precedingToken === null ? void 0 : precedingToken === void 0 ? findPrecedingToken(position, sourceFile) : precedingToken;\n  const trailingRangesOfPreviousToken = precedingToken && getTrailingCommentRanges(sourceFile.text, precedingToken.end);\n  const leadingCommentRangesOfNextToken = getLeadingCommentRangesOfNode(tokenAtPosition, sourceFile);\n  const commentRanges = concatenate(trailingRangesOfPreviousToken, leadingCommentRangesOfNextToken);\n  return commentRanges && find(commentRanges, (range) => rangeContainsPositionExclusive(range, position) || // The end marker of a single-line comment does not include the newline character.\n  // With caret at `^`, in the following case, we are inside a comment (^ denotes the cursor position):\n  //\n  //    // asdf   ^\\n\n  //\n  // But for closed multi-line comments, we don't want to be inside the comment in the following case:\n  //\n  //    /* asdf */^\n  //\n  // However, unterminated multi-line comments *do* contain their end.\n  //\n  // Internally, we represent the end of the comment at the newline and closing '/', respectively.\n  //\n  position === range.end && (range.kind === 2 /* SingleLineCommentTrivia */ || position === sourceFile.getFullWidth()));\n}\nfunction getOpenTokenForList(node, list) {\n  switch (node.kind) {\n    case 177 /* Constructor */:\n    case 263 /* FunctionDeclaration */:\n    case 219 /* FunctionExpression */:\n    case 175 /* MethodDeclaration */:\n    case 174 /* MethodSignature */:\n    case 220 /* ArrowFunction */:\n    case 180 /* CallSignature */:\n    case 181 /* ConstructSignature */:\n    case 185 /* FunctionType */:\n    case 186 /* ConstructorType */:\n    case 178 /* GetAccessor */:\n    case 179 /* SetAccessor */:\n      if (node.typeParameters === list) {\n        return 30 /* LessThanToken */;\n      } else if (node.parameters === list) {\n        return 21 /* OpenParenToken */;\n      }\n      break;\n    case 214 /* CallExpression */:\n    case 215 /* NewExpression */:\n      if (node.typeArguments === list) {\n        return 30 /* LessThanToken */;\n      } else if (node.arguments === list) {\n        return 21 /* OpenParenToken */;\n      }\n      break;\n    case 264 /* ClassDeclaration */:\n    case 232 /* ClassExpression */:\n    case 265 /* InterfaceDeclaration */:\n    case 266 /* TypeAliasDeclaration */:\n      if (node.typeParameters === list) {\n        return 30 /* LessThanToken */;\n      }\n      break;\n    case 184 /* TypeReference */:\n    case 216 /* TaggedTemplateExpression */:\n    case 187 /* TypeQuery */:\n    case 234 /* ExpressionWithTypeArguments */:\n    case 206 /* ImportType */:\n      if (node.typeArguments === list) {\n        return 30 /* LessThanToken */;\n      }\n      break;\n    case 188 /* TypeLiteral */:\n      return 19 /* OpenBraceToken */;\n  }\n  return 0 /* Unknown */;\n}\nfunction getCloseTokenForOpenToken(kind) {\n  switch (kind) {\n    case 21 /* OpenParenToken */:\n      return 22 /* CloseParenToken */;\n    case 30 /* LessThanToken */:\n      return 32 /* GreaterThanToken */;\n    case 19 /* OpenBraceToken */:\n      return 20 /* CloseBraceToken */;\n  }\n  return 0 /* Unknown */;\n}\nvar internedSizes;\nvar internedTabsIndentation;\nvar internedSpacesIndentation;\nfunction getIndentationString(indentation, options) {\n  const resetInternedStrings = !internedSizes || (internedSizes.tabSize !== options.tabSize || internedSizes.indentSize !== options.indentSize);\n  if (resetInternedStrings) {\n    internedSizes = { tabSize: options.tabSize, indentSize: options.indentSize };\n    internedTabsIndentation = internedSpacesIndentation = void 0;\n  }\n  if (!options.convertTabsToSpaces) {\n    const tabs = Math.floor(indentation / options.tabSize);\n    const spaces = indentation - tabs * options.tabSize;\n    let tabString;\n    if (!internedTabsIndentation) {\n      internedTabsIndentation = [];\n    }\n    if (internedTabsIndentation[tabs] === void 0) {\n      internedTabsIndentation[tabs] = tabString = repeatString(\"\t\", tabs);\n    } else {\n      tabString = internedTabsIndentation[tabs];\n    }\n    return spaces ? tabString + repeatString(\" \", spaces) : tabString;\n  } else {\n    let spacesString;\n    const quotient = Math.floor(indentation / options.indentSize);\n    const remainder = indentation % options.indentSize;\n    if (!internedSpacesIndentation) {\n      internedSpacesIndentation = [];\n    }\n    if (internedSpacesIndentation[quotient] === void 0) {\n      spacesString = repeatString(\" \", options.indentSize * quotient);\n      internedSpacesIndentation[quotient] = spacesString;\n    } else {\n      spacesString = internedSpacesIndentation[quotient];\n    }\n    return remainder ? spacesString + repeatString(\" \", remainder) : spacesString;\n  }\n}\n\n// src/services/formatting/smartIndenter.ts\nvar SmartIndenter;\n((SmartIndenter2) => {\n  let Value;\n  ((Value2) => {\n    Value2[Value2[\"Unknown\"] = -1] = \"Unknown\";\n  })(Value || (Value = {}));\n  function getIndentation(position, sourceFile, options, assumeNewLineBeforeCloseBrace = false) {\n    if (position > sourceFile.text.length) {\n      return getBaseIndentation(options);\n    }\n    if (options.indentStyle === 0 /* None */) {\n      return 0;\n    }\n    const precedingToken = findPrecedingToken(\n      position,\n      sourceFile,\n      /*startNode*/\n      void 0,\n      /*excludeJsdoc*/\n      true\n    );\n    const enclosingCommentRange = getRangeOfEnclosingComment(sourceFile, position, precedingToken || null);\n    if (enclosingCommentRange && enclosingCommentRange.kind === 3 /* MultiLineCommentTrivia */) {\n      return getCommentIndent(sourceFile, position, options, enclosingCommentRange);\n    }\n    if (!precedingToken) {\n      return getBaseIndentation(options);\n    }\n    const precedingTokenIsLiteral = isStringOrRegularExpressionOrTemplateLiteral(precedingToken.kind);\n    if (precedingTokenIsLiteral && precedingToken.getStart(sourceFile) <= position && position < precedingToken.end) {\n      return 0;\n    }\n    const lineAtPosition = sourceFile.getLineAndCharacterOfPosition(position).line;\n    const currentToken = getTokenAtPosition(sourceFile, position);\n    const isObjectLiteral = currentToken.kind === 19 /* OpenBraceToken */ && currentToken.parent.kind === 211 /* ObjectLiteralExpression */;\n    if (options.indentStyle === 1 /* Block */ || isObjectLiteral) {\n      return getBlockIndent(sourceFile, position, options);\n    }\n    if (precedingToken.kind === 28 /* CommaToken */ && precedingToken.parent.kind !== 227 /* BinaryExpression */) {\n      const actualIndentation = getActualIndentationForListItemBeforeComma(precedingToken, sourceFile, options);\n      if (actualIndentation !== -1 /* Unknown */) {\n        return actualIndentation;\n      }\n    }\n    const containerList = getListByPosition(position, precedingToken.parent, sourceFile);\n    if (containerList && !rangeContainsRange(containerList, precedingToken)) {\n      const useTheSameBaseIndentation = [219 /* FunctionExpression */, 220 /* ArrowFunction */].includes(currentToken.parent.kind);\n      const indentSize = useTheSameBaseIndentation ? 0 : options.indentSize;\n      return getActualIndentationForListStartLine(containerList, sourceFile, options) + indentSize;\n    }\n    return getSmartIndent(sourceFile, position, precedingToken, lineAtPosition, assumeNewLineBeforeCloseBrace, options);\n  }\n  SmartIndenter2.getIndentation = getIndentation;\n  function getCommentIndent(sourceFile, position, options, enclosingCommentRange) {\n    const previousLine = getLineAndCharacterOfPosition(sourceFile, position).line - 1;\n    const commentStartLine = getLineAndCharacterOfPosition(sourceFile, enclosingCommentRange.pos).line;\n    Debug.assert(commentStartLine >= 0);\n    if (previousLine <= commentStartLine) {\n      return findFirstNonWhitespaceColumn(getStartPositionOfLine(commentStartLine, sourceFile), position, sourceFile, options);\n    }\n    const startPositionOfLine = getStartPositionOfLine(previousLine, sourceFile);\n    const { column, character } = findFirstNonWhitespaceCharacterAndColumn(startPositionOfLine, position, sourceFile, options);\n    if (column === 0) {\n      return column;\n    }\n    const firstNonWhitespaceCharacterCode = sourceFile.text.charCodeAt(startPositionOfLine + character);\n    return firstNonWhitespaceCharacterCode === 42 /* asterisk */ ? column - 1 : column;\n  }\n  function getBlockIndent(sourceFile, position, options) {\n    let current = position;\n    while (current > 0) {\n      const char = sourceFile.text.charCodeAt(current);\n      if (!isWhiteSpaceLike(char)) {\n        break;\n      }\n      current--;\n    }\n    const lineStart = getLineStartPositionForPosition(current, sourceFile);\n    return findFirstNonWhitespaceColumn(lineStart, current, sourceFile, options);\n  }\n  function getSmartIndent(sourceFile, position, precedingToken, lineAtPosition, assumeNewLineBeforeCloseBrace, options) {\n    let previous;\n    let current = precedingToken;\n    while (current) {\n      if (positionBelongsToNode(current, position, sourceFile) && shouldIndentChildNode(\n        options,\n        current,\n        previous,\n        sourceFile,\n        /*isNextChild*/\n        true\n      )) {\n        const currentStart = getStartLineAndCharacterForNode(current, sourceFile);\n        const nextTokenKind = nextTokenIsCurlyBraceOnSameLineAsCursor(precedingToken, current, lineAtPosition, sourceFile);\n        const indentationDelta = nextTokenKind !== 0 /* Unknown */ ? assumeNewLineBeforeCloseBrace && nextTokenKind === 2 /* CloseBrace */ ? options.indentSize : 0 : lineAtPosition !== currentStart.line ? options.indentSize : 0;\n        return getIndentationForNodeWorker(\n          current,\n          currentStart,\n          /*ignoreActualIndentationRange*/\n          void 0,\n          indentationDelta,\n          sourceFile,\n          /*isNextChild*/\n          true,\n          options\n        );\n      }\n      const actualIndentation = getActualIndentationForListItem(\n        current,\n        sourceFile,\n        options,\n        /*listIndentsChild*/\n        true\n      );\n      if (actualIndentation !== -1 /* Unknown */) {\n        return actualIndentation;\n      }\n      previous = current;\n      current = current.parent;\n    }\n    return getBaseIndentation(options);\n  }\n  function getIndentationForNode(n, ignoreActualIndentationRange, sourceFile, options) {\n    const start = sourceFile.getLineAndCharacterOfPosition(n.getStart(sourceFile));\n    return getIndentationForNodeWorker(\n      n,\n      start,\n      ignoreActualIndentationRange,\n      /*indentationDelta*/\n      0,\n      sourceFile,\n      /*isNextChild*/\n      false,\n      options\n    );\n  }\n  SmartIndenter2.getIndentationForNode = getIndentationForNode;\n  function getBaseIndentation(options) {\n    return options.baseIndentSize || 0;\n  }\n  SmartIndenter2.getBaseIndentation = getBaseIndentation;\n  function getIndentationForNodeWorker(current, currentStart, ignoreActualIndentationRange, indentationDelta, sourceFile, isNextChild, options) {\n    var _a;\n    let parent2 = current.parent;\n    while (parent2) {\n      let useActualIndentation = true;\n      if (ignoreActualIndentationRange) {\n        const start = current.getStart(sourceFile);\n        useActualIndentation = start < ignoreActualIndentationRange.pos || start > ignoreActualIndentationRange.end;\n      }\n      const containingListOrParentStart = getContainingListOrParentStart(parent2, current, sourceFile);\n      const parentAndChildShareLine = containingListOrParentStart.line === currentStart.line || childStartsOnTheSameLineWithElseInIfStatement(parent2, current, currentStart.line, sourceFile);\n      if (useActualIndentation) {\n        const firstListChild = (_a = getContainingList(current, sourceFile)) == null ? void 0 : _a[0];\n        const listIndentsChild = !!firstListChild && getStartLineAndCharacterForNode(firstListChild, sourceFile).line > containingListOrParentStart.line;\n        let actualIndentation = getActualIndentationForListItem(current, sourceFile, options, listIndentsChild);\n        if (actualIndentation !== -1 /* Unknown */) {\n          return actualIndentation + indentationDelta;\n        }\n        actualIndentation = getActualIndentationForNode(current, parent2, currentStart, parentAndChildShareLine, sourceFile, options);\n        if (actualIndentation !== -1 /* Unknown */) {\n          return actualIndentation + indentationDelta;\n        }\n      }\n      if (shouldIndentChildNode(options, parent2, current, sourceFile, isNextChild) && !parentAndChildShareLine) {\n        indentationDelta += options.indentSize;\n      }\n      const useTrueStart = isArgumentAndStartLineOverlapsExpressionBeingCalled(parent2, current, currentStart.line, sourceFile);\n      current = parent2;\n      parent2 = current.parent;\n      currentStart = useTrueStart ? sourceFile.getLineAndCharacterOfPosition(current.getStart(sourceFile)) : containingListOrParentStart;\n    }\n    return indentationDelta + getBaseIndentation(options);\n  }\n  function getContainingListOrParentStart(parent2, child, sourceFile) {\n    const containingList = getContainingList(child, sourceFile);\n    const startPos = containingList ? containingList.pos : parent2.getStart(sourceFile);\n    return sourceFile.getLineAndCharacterOfPosition(startPos);\n  }\n  function getActualIndentationForListItemBeforeComma(commaToken, sourceFile, options) {\n    const commaItemInfo = findListItemInfo(commaToken);\n    if (commaItemInfo && commaItemInfo.listItemIndex > 0) {\n      return deriveActualIndentationFromList(commaItemInfo.list.getChildren(), commaItemInfo.listItemIndex - 1, sourceFile, options);\n    } else {\n      return -1 /* Unknown */;\n    }\n  }\n  function getActualIndentationForNode(current, parent2, currentLineAndChar, parentAndChildShareLine, sourceFile, options) {\n    const useActualIndentation = (isDeclaration(current) || isStatementButNotDeclaration(current)) && (parent2.kind === 308 /* SourceFile */ || !parentAndChildShareLine);\n    if (!useActualIndentation) {\n      return -1 /* Unknown */;\n    }\n    return findColumnForFirstNonWhitespaceCharacterInLine(currentLineAndChar, sourceFile, options);\n  }\n  let NextTokenKind;\n  ((NextTokenKind2) => {\n    NextTokenKind2[NextTokenKind2[\"Unknown\"] = 0] = \"Unknown\";\n    NextTokenKind2[NextTokenKind2[\"OpenBrace\"] = 1] = \"OpenBrace\";\n    NextTokenKind2[NextTokenKind2[\"CloseBrace\"] = 2] = \"CloseBrace\";\n  })(NextTokenKind || (NextTokenKind = {}));\n  function nextTokenIsCurlyBraceOnSameLineAsCursor(precedingToken, current, lineAtPosition, sourceFile) {\n    const nextToken = findNextToken(precedingToken, current, sourceFile);\n    if (!nextToken) {\n      return 0 /* Unknown */;\n    }\n    if (nextToken.kind === 19 /* OpenBraceToken */) {\n      return 1 /* OpenBrace */;\n    } else if (nextToken.kind === 20 /* CloseBraceToken */) {\n      const nextTokenStartLine = getStartLineAndCharacterForNode(nextToken, sourceFile).line;\n      return lineAtPosition === nextTokenStartLine ? 2 /* CloseBrace */ : 0 /* Unknown */;\n    }\n    return 0 /* Unknown */;\n  }\n  function getStartLineAndCharacterForNode(n, sourceFile) {\n    return sourceFile.getLineAndCharacterOfPosition(n.getStart(sourceFile));\n  }\n  function isArgumentAndStartLineOverlapsExpressionBeingCalled(parent2, child, childStartLine, sourceFile) {\n    if (!(isCallExpression(parent2) && contains(parent2.arguments, child))) {\n      return false;\n    }\n    const expressionOfCallExpressionEnd = parent2.expression.getEnd();\n    const expressionOfCallExpressionEndLine = getLineAndCharacterOfPosition(sourceFile, expressionOfCallExpressionEnd).line;\n    return expressionOfCallExpressionEndLine === childStartLine;\n  }\n  SmartIndenter2.isArgumentAndStartLineOverlapsExpressionBeingCalled = isArgumentAndStartLineOverlapsExpressionBeingCalled;\n  function childStartsOnTheSameLineWithElseInIfStatement(parent2, child, childStartLine, sourceFile) {\n    if (parent2.kind === 246 /* IfStatement */ && parent2.elseStatement === child) {\n      const elseKeyword = findChildOfKind(parent2, 93 /* ElseKeyword */, sourceFile);\n      Debug.assert(elseKeyword !== void 0);\n      const elseKeywordStartLine = getStartLineAndCharacterForNode(elseKeyword, sourceFile).line;\n      return elseKeywordStartLine === childStartLine;\n    }\n    return false;\n  }\n  SmartIndenter2.childStartsOnTheSameLineWithElseInIfStatement = childStartsOnTheSameLineWithElseInIfStatement;\n  function childIsUnindentedBranchOfConditionalExpression(parent2, child, childStartLine, sourceFile) {\n    if (isConditionalExpression(parent2) && (child === parent2.whenTrue || child === parent2.whenFalse)) {\n      const conditionEndLine = getLineAndCharacterOfPosition(sourceFile, parent2.condition.end).line;\n      if (child === parent2.whenTrue) {\n        return childStartLine === conditionEndLine;\n      } else {\n        const trueStartLine = getStartLineAndCharacterForNode(parent2.whenTrue, sourceFile).line;\n        const trueEndLine = getLineAndCharacterOfPosition(sourceFile, parent2.whenTrue.end).line;\n        return conditionEndLine === trueStartLine && trueEndLine === childStartLine;\n      }\n    }\n    return false;\n  }\n  SmartIndenter2.childIsUnindentedBranchOfConditionalExpression = childIsUnindentedBranchOfConditionalExpression;\n  function argumentStartsOnSameLineAsPreviousArgument(parent2, child, childStartLine, sourceFile) {\n    if (isCallOrNewExpression(parent2)) {\n      if (!parent2.arguments) return false;\n      const currentNode = find(parent2.arguments, (arg) => arg.pos === child.pos);\n      if (!currentNode) return false;\n      const currentIndex = parent2.arguments.indexOf(currentNode);\n      if (currentIndex === 0) return false;\n      const previousNode = parent2.arguments[currentIndex - 1];\n      const lineOfPreviousNode = getLineAndCharacterOfPosition(sourceFile, previousNode.getEnd()).line;\n      if (childStartLine === lineOfPreviousNode) {\n        return true;\n      }\n    }\n    return false;\n  }\n  SmartIndenter2.argumentStartsOnSameLineAsPreviousArgument = argumentStartsOnSameLineAsPreviousArgument;\n  function getContainingList(node, sourceFile) {\n    return node.parent && getListByRange(node.getStart(sourceFile), node.getEnd(), node.parent, sourceFile);\n  }\n  SmartIndenter2.getContainingList = getContainingList;\n  function getListByPosition(pos, node, sourceFile) {\n    return node && getListByRange(pos, pos, node, sourceFile);\n  }\n  function getListByRange(start, end, node, sourceFile) {\n    switch (node.kind) {\n      case 184 /* TypeReference */:\n        return getList(node.typeArguments);\n      case 211 /* ObjectLiteralExpression */:\n        return getList(node.properties);\n      case 210 /* ArrayLiteralExpression */:\n        return getList(node.elements);\n      case 188 /* TypeLiteral */:\n        return getList(node.members);\n      case 263 /* FunctionDeclaration */:\n      case 219 /* FunctionExpression */:\n      case 220 /* ArrowFunction */:\n      case 175 /* MethodDeclaration */:\n      case 174 /* MethodSignature */:\n      case 180 /* CallSignature */:\n      case 177 /* Constructor */:\n      case 186 /* ConstructorType */:\n      case 181 /* ConstructSignature */:\n        return getList(node.typeParameters) || getList(node.parameters);\n      case 178 /* GetAccessor */:\n        return getList(node.parameters);\n      case 264 /* ClassDeclaration */:\n      case 232 /* ClassExpression */:\n      case 265 /* InterfaceDeclaration */:\n      case 266 /* TypeAliasDeclaration */:\n      case 346 /* JSDocTemplateTag */:\n        return getList(node.typeParameters);\n      case 215 /* NewExpression */:\n      case 214 /* CallExpression */:\n        return getList(node.typeArguments) || getList(node.arguments);\n      case 262 /* VariableDeclarationList */:\n        return getList(node.declarations);\n      case 276 /* NamedImports */:\n      case 280 /* NamedExports */:\n        return getList(node.elements);\n      case 207 /* ObjectBindingPattern */:\n      case 208 /* ArrayBindingPattern */:\n        return getList(node.elements);\n    }\n    function getList(list) {\n      return list && rangeContainsStartEnd(getVisualListRange(node, list, sourceFile), start, end) ? list : void 0;\n    }\n  }\n  function getVisualListRange(node, list, sourceFile) {\n    const children = node.getChildren(sourceFile);\n    for (let i = 1; i < children.length - 1; i++) {\n      if (children[i].pos === list.pos && children[i].end === list.end) {\n        return { pos: children[i - 1].end, end: children[i + 1].getStart(sourceFile) };\n      }\n    }\n    return list;\n  }\n  function getActualIndentationForListStartLine(list, sourceFile, options) {\n    if (!list) {\n      return -1 /* Unknown */;\n    }\n    return findColumnForFirstNonWhitespaceCharacterInLine(sourceFile.getLineAndCharacterOfPosition(list.pos), sourceFile, options);\n  }\n  function getActualIndentationForListItem(node, sourceFile, options, listIndentsChild) {\n    if (node.parent && node.parent.kind === 262 /* VariableDeclarationList */) {\n      return -1 /* Unknown */;\n    }\n    const containingList = getContainingList(node, sourceFile);\n    if (containingList) {\n      const index = containingList.indexOf(node);\n      if (index !== -1) {\n        const result = deriveActualIndentationFromList(containingList, index, sourceFile, options);\n        if (result !== -1 /* Unknown */) {\n          return result;\n        }\n      }\n      return getActualIndentationForListStartLine(containingList, sourceFile, options) + (listIndentsChild ? options.indentSize : 0);\n    }\n    return -1 /* Unknown */;\n  }\n  function deriveActualIndentationFromList(list, index, sourceFile, options) {\n    Debug.assert(index >= 0 && index < list.length);\n    const node = list[index];\n    let lineAndCharacter = getStartLineAndCharacterForNode(node, sourceFile);\n    for (let i = index - 1; i >= 0; i--) {\n      if (list[i].kind === 28 /* CommaToken */) {\n        continue;\n      }\n      const prevEndLine = sourceFile.getLineAndCharacterOfPosition(list[i].end).line;\n      if (prevEndLine !== lineAndCharacter.line) {\n        return findColumnForFirstNonWhitespaceCharacterInLine(lineAndCharacter, sourceFile, options);\n      }\n      lineAndCharacter = getStartLineAndCharacterForNode(list[i], sourceFile);\n    }\n    return -1 /* Unknown */;\n  }\n  function findColumnForFirstNonWhitespaceCharacterInLine(lineAndCharacter, sourceFile, options) {\n    const lineStart = sourceFile.getPositionOfLineAndCharacter(lineAndCharacter.line, 0);\n    return findFirstNonWhitespaceColumn(lineStart, lineStart + lineAndCharacter.character, sourceFile, options);\n  }\n  function findFirstNonWhitespaceCharacterAndColumn(startPos, endPos, sourceFile, options) {\n    let character = 0;\n    let column = 0;\n    for (let pos = startPos; pos < endPos; pos++) {\n      const ch = sourceFile.text.charCodeAt(pos);\n      if (!isWhiteSpaceSingleLine(ch)) {\n        break;\n      }\n      if (ch === 9 /* tab */) {\n        column += options.tabSize + column % options.tabSize;\n      } else {\n        column++;\n      }\n      character++;\n    }\n    return { column, character };\n  }\n  SmartIndenter2.findFirstNonWhitespaceCharacterAndColumn = findFirstNonWhitespaceCharacterAndColumn;\n  function findFirstNonWhitespaceColumn(startPos, endPos, sourceFile, options) {\n    return findFirstNonWhitespaceCharacterAndColumn(startPos, endPos, sourceFile, options).column;\n  }\n  SmartIndenter2.findFirstNonWhitespaceColumn = findFirstNonWhitespaceColumn;\n  function nodeWillIndentChild(settings, parent2, child, sourceFile, indentByDefault) {\n    const childKind = child ? child.kind : 0 /* Unknown */;\n    switch (parent2.kind) {\n      case 245 /* ExpressionStatement */:\n      case 264 /* ClassDeclaration */:\n      case 232 /* ClassExpression */:\n      case 265 /* InterfaceDeclaration */:\n      case 267 /* EnumDeclaration */:\n      case 266 /* TypeAliasDeclaration */:\n      case 210 /* ArrayLiteralExpression */:\n      case 242 /* Block */:\n      case 269 /* ModuleBlock */:\n      case 211 /* ObjectLiteralExpression */:\n      case 188 /* TypeLiteral */:\n      case 201 /* MappedType */:\n      case 190 /* TupleType */:\n      case 218 /* ParenthesizedExpression */:\n      case 212 /* PropertyAccessExpression */:\n      case 214 /* CallExpression */:\n      case 215 /* NewExpression */:\n      case 244 /* VariableStatement */:\n      case 278 /* ExportAssignment */:\n      case 254 /* ReturnStatement */:\n      case 228 /* ConditionalExpression */:\n      case 208 /* ArrayBindingPattern */:\n      case 207 /* ObjectBindingPattern */:\n      case 287 /* JsxOpeningElement */:\n      case 290 /* JsxOpeningFragment */:\n      case 286 /* JsxSelfClosingElement */:\n      case 295 /* JsxExpression */:\n      case 174 /* MethodSignature */:\n      case 180 /* CallSignature */:\n      case 181 /* ConstructSignature */:\n      case 170 /* Parameter */:\n      case 185 /* FunctionType */:\n      case 186 /* ConstructorType */:\n      case 197 /* ParenthesizedType */:\n      case 216 /* TaggedTemplateExpression */:\n      case 224 /* AwaitExpression */:\n      case 280 /* NamedExports */:\n      case 276 /* NamedImports */:\n      case 282 /* ExportSpecifier */:\n      case 277 /* ImportSpecifier */:\n      case 173 /* PropertyDeclaration */:\n      case 297 /* CaseClause */:\n      case 298 /* DefaultClause */:\n        return true;\n      case 270 /* CaseBlock */:\n        return settings.indentSwitchCase ?? true;\n      case 261 /* VariableDeclaration */:\n      case 304 /* PropertyAssignment */:\n      case 227 /* BinaryExpression */:\n        if (!settings.indentMultiLineObjectLiteralBeginningOnBlankLine && sourceFile && childKind === 211 /* ObjectLiteralExpression */) {\n          return rangeIsOnOneLine(sourceFile, child);\n        }\n        if (parent2.kind === 227 /* BinaryExpression */ && sourceFile && child && childKind === 285 /* JsxElement */) {\n          const parentStartLine = sourceFile.getLineAndCharacterOfPosition(skipTrivia(sourceFile.text, parent2.pos)).line;\n          const childStartLine = sourceFile.getLineAndCharacterOfPosition(skipTrivia(sourceFile.text, child.pos)).line;\n          return parentStartLine !== childStartLine;\n        }\n        if (parent2.kind !== 227 /* BinaryExpression */) {\n          return true;\n        }\n        break;\n      case 247 /* DoStatement */:\n      case 248 /* WhileStatement */:\n      case 250 /* ForInStatement */:\n      case 251 /* ForOfStatement */:\n      case 249 /* ForStatement */:\n      case 246 /* IfStatement */:\n      case 263 /* FunctionDeclaration */:\n      case 219 /* FunctionExpression */:\n      case 175 /* MethodDeclaration */:\n      case 177 /* Constructor */:\n      case 178 /* GetAccessor */:\n      case 179 /* SetAccessor */:\n        return childKind !== 242 /* Block */;\n      case 220 /* ArrowFunction */:\n        if (sourceFile && childKind === 218 /* ParenthesizedExpression */) {\n          return rangeIsOnOneLine(sourceFile, child);\n        }\n        return childKind !== 242 /* Block */;\n      case 279 /* ExportDeclaration */:\n        return childKind !== 280 /* NamedExports */;\n      case 273 /* ImportDeclaration */:\n        return childKind !== 274 /* ImportClause */ || !!child.namedBindings && child.namedBindings.kind !== 276 /* NamedImports */;\n      case 285 /* JsxElement */:\n        return childKind !== 288 /* JsxClosingElement */;\n      case 289 /* JsxFragment */:\n        return childKind !== 291 /* JsxClosingFragment */;\n      case 194 /* IntersectionType */:\n      case 193 /* UnionType */:\n      case 239 /* SatisfiesExpression */:\n        if (childKind === 188 /* TypeLiteral */ || childKind === 190 /* TupleType */ || childKind === 201 /* MappedType */) {\n          return false;\n        }\n        break;\n      case 259 /* TryStatement */:\n        if (childKind === 242 /* Block */) {\n          return false;\n        }\n        break;\n    }\n    return indentByDefault;\n  }\n  SmartIndenter2.nodeWillIndentChild = nodeWillIndentChild;\n  function isControlFlowEndingStatement(kind, parent2) {\n    switch (kind) {\n      case 254 /* ReturnStatement */:\n      case 258 /* ThrowStatement */:\n      case 252 /* ContinueStatement */:\n      case 253 /* BreakStatement */:\n        return parent2.kind !== 242 /* Block */;\n      default:\n        return false;\n    }\n  }\n  function shouldIndentChildNode(settings, parent2, child, sourceFile, isNextChild = false) {\n    return nodeWillIndentChild(\n      settings,\n      parent2,\n      child,\n      sourceFile,\n      /*indentByDefault*/\n      false\n    ) && !(isNextChild && child && isControlFlowEndingStatement(child.kind, parent2));\n  }\n  SmartIndenter2.shouldIndentChildNode = shouldIndentChildNode;\n  function rangeIsOnOneLine(sourceFile, range) {\n    const rangeStart = skipTrivia(sourceFile.text, range.pos);\n    const startLine = sourceFile.getLineAndCharacterOfPosition(rangeStart).line;\n    const endLine = sourceFile.getLineAndCharacterOfPosition(range.end).line;\n    return startLine === endLine;\n  }\n})(SmartIndenter || (SmartIndenter = {}));\n\n// src/services/_namespaces/ts.preparePasteEdits.ts\nvar ts_preparePasteEdits_exports = {};\n__export(ts_preparePasteEdits_exports, {\n  preparePasteEdits: () => preparePasteEdits\n});\n\n// src/services/preparePasteEdits.ts\nfunction preparePasteEdits(sourceFile, copiedFromRange, checker) {\n  let shouldProvidePasteEdits = false;\n  copiedFromRange.forEach((range) => {\n    const enclosingNode = findAncestor(\n      getTokenAtPosition(sourceFile, range.pos),\n      (ancestorNode) => rangeContainsRange(ancestorNode, range)\n    );\n    if (!enclosingNode) return;\n    forEachChild(enclosingNode, function checkNameResolution(node) {\n      var _a;\n      if (shouldProvidePasteEdits) return;\n      if (isIdentifier(node) && rangeContainsPosition(range, node.getStart(sourceFile))) {\n        const resolvedSymbol = checker.resolveName(\n          node.text,\n          node,\n          -1 /* All */,\n          /*excludeGlobals*/\n          false\n        );\n        if (resolvedSymbol && resolvedSymbol.declarations) {\n          for (const decl of resolvedSymbol.declarations) {\n            if (isInImport(decl) || !!(node.text && sourceFile.symbol && ((_a = sourceFile.symbol.exports) == null ? void 0 : _a.has(node.escapedText)))) {\n              shouldProvidePasteEdits = true;\n              return;\n            }\n          }\n        }\n      }\n      node.forEachChild(checkNameResolution);\n    });\n    if (shouldProvidePasteEdits) return;\n  });\n  return shouldProvidePasteEdits;\n}\n\n// src/services/_namespaces/ts.PasteEdits.ts\nvar ts_PasteEdits_exports = {};\n__export(ts_PasteEdits_exports, {\n  pasteEditsProvider: () => pasteEditsProvider\n});\n\n// src/services/pasteEdits.ts\nvar fixId55 = \"providePostPasteEdits\";\nfunction pasteEditsProvider(targetFile, pastedText, pasteLocations, copiedFrom, host, preferences, formatContext, cancellationToken) {\n  const changes = ts_textChanges_exports.ChangeTracker.with({ host, formatContext, preferences }, (changeTracker) => pasteEdits(targetFile, pastedText, pasteLocations, copiedFrom, host, preferences, formatContext, cancellationToken, changeTracker));\n  return { edits: changes, fixId: fixId55 };\n}\nfunction pasteEdits(targetFile, pastedText, pasteLocations, copiedFrom, host, preferences, formatContext, cancellationToken, changes) {\n  let actualPastedText;\n  if (pastedText.length !== pasteLocations.length) {\n    actualPastedText = pastedText.length === 1 ? pastedText[0] : pastedText.join(getNewLineOrDefaultFromHost(formatContext.host, formatContext.options));\n  }\n  const statements = [];\n  let newText = targetFile.text;\n  for (let i = pasteLocations.length - 1; i >= 0; i--) {\n    const { pos, end } = pasteLocations[i];\n    newText = actualPastedText ? newText.slice(0, pos) + actualPastedText + newText.slice(end) : newText.slice(0, pos) + pastedText[i] + newText.slice(end);\n  }\n  let importAdder;\n  Debug.checkDefined(host.runWithTemporaryFileUpdate).call(host, targetFile.fileName, newText, (updatedProgram, originalProgram, updatedFile) => {\n    importAdder = ts_codefix_exports.createImportAdder(updatedFile, updatedProgram, preferences, host);\n    if (copiedFrom == null ? void 0 : copiedFrom.range) {\n      Debug.assert(copiedFrom.range.length === pastedText.length);\n      copiedFrom.range.forEach((copy) => {\n        const statementsInSourceFile = copiedFrom.file.statements;\n        const startNodeIndex = findIndex(statementsInSourceFile, (s) => s.end > copy.pos);\n        if (startNodeIndex === -1) return void 0;\n        let endNodeIndex = findIndex(statementsInSourceFile, (s) => s.end >= copy.end, startNodeIndex);\n        if (endNodeIndex !== -1 && copy.end <= statementsInSourceFile[endNodeIndex].getStart()) {\n          endNodeIndex--;\n        }\n        statements.push(...statementsInSourceFile.slice(startNodeIndex, endNodeIndex === -1 ? statementsInSourceFile.length : endNodeIndex + 1));\n      });\n      Debug.assertIsDefined(originalProgram, \"no original program found\");\n      const originalProgramTypeChecker = originalProgram.getTypeChecker();\n      const usageInfoRange = getUsageInfoRangeForPasteEdits(copiedFrom);\n      const usage = getUsageInfo(copiedFrom.file, statements, originalProgramTypeChecker, getExistingLocals(updatedFile, statements, originalProgramTypeChecker), usageInfoRange);\n      const useEsModuleSyntax = !fileShouldUseJavaScriptRequire(targetFile.fileName, originalProgram, host, !!copiedFrom.file.commonJsModuleIndicator);\n      addExportsInOldFile(copiedFrom.file, usage.targetFileImportsFromOldFile, changes, useEsModuleSyntax);\n      addTargetFileImports(copiedFrom.file, usage.oldImportsNeededByTargetFile, usage.targetFileImportsFromOldFile, originalProgramTypeChecker, updatedProgram, importAdder);\n    } else {\n      const context = {\n        sourceFile: updatedFile,\n        program: originalProgram,\n        cancellationToken,\n        host,\n        preferences,\n        formatContext\n      };\n      let offset = 0;\n      pasteLocations.forEach((location, i) => {\n        const oldTextLength = location.end - location.pos;\n        const textToBePasted = actualPastedText ?? pastedText[i];\n        const startPos = location.pos + offset;\n        const endPos = startPos + textToBePasted.length;\n        const range = { pos: startPos, end: endPos };\n        offset += textToBePasted.length - oldTextLength;\n        const enclosingNode = findAncestor(\n          getTokenAtPosition(context.sourceFile, range.pos),\n          (ancestorNode) => rangeContainsRange(ancestorNode, range)\n        );\n        if (!enclosingNode) return;\n        forEachChild(enclosingNode, function importUnresolvedIdentifiers(node) {\n          const isImportCandidate = isIdentifier(node) && rangeContainsPosition(range, node.getStart(updatedFile)) && !(updatedProgram == null ? void 0 : updatedProgram.getTypeChecker().resolveName(\n            node.text,\n            node,\n            -1 /* All */,\n            /*excludeGlobals*/\n            false\n          ));\n          if (isImportCandidate) {\n            return importAdder.addImportForUnresolvedIdentifier(\n              context,\n              node,\n              /*useAutoImportProvider*/\n              true\n            );\n          }\n          node.forEachChild(importUnresolvedIdentifiers);\n        });\n      });\n    }\n    importAdder.writeFixes(changes, getQuotePreference(copiedFrom ? copiedFrom.file : targetFile, preferences));\n  });\n  if (!importAdder.hasFixes()) {\n    return;\n  }\n  pasteLocations.forEach((paste, i) => {\n    changes.replaceRangeWithText(\n      targetFile,\n      { pos: paste.pos, end: paste.end },\n      actualPastedText ?? pastedText[i]\n    );\n  });\n}\nfunction getUsageInfoRangeForPasteEdits({ file: sourceFile, range }) {\n  const pos = range[0].pos;\n  const end = range[range.length - 1].end;\n  const startToken = getTokenAtPosition(sourceFile, pos);\n  const endToken = findTokenOnLeftOfPosition(sourceFile, pos) ?? getTokenAtPosition(sourceFile, end);\n  return {\n    pos: isIdentifier(startToken) && pos <= startToken.getStart(sourceFile) ? startToken.getFullStart() : pos,\n    end: isIdentifier(endToken) && end === endToken.getEnd() ? ts_textChanges_exports.getAdjustedEndPosition(sourceFile, endToken, {}) : end\n  };\n}\n\n// src/server/_namespaces/ts.ts\nvar ts_exports2 = {};\n__export(ts_exports2, {\n  ANONYMOUS: () => ANONYMOUS,\n  AccessFlags: () => AccessFlags,\n  AssertionLevel: () => AssertionLevel,\n  AssignmentDeclarationKind: () => AssignmentDeclarationKind,\n  AssignmentKind: () => AssignmentKind,\n  Associativity: () => Associativity,\n  BreakpointResolver: () => ts_BreakpointResolver_exports,\n  BuilderFileEmit: () => BuilderFileEmit,\n  BuilderProgramKind: () => BuilderProgramKind,\n  BuilderState: () => BuilderState,\n  CallHierarchy: () => ts_CallHierarchy_exports,\n  CharacterCodes: () => CharacterCodes,\n  CheckFlags: () => CheckFlags,\n  CheckMode: () => CheckMode,\n  ClassificationType: () => ClassificationType,\n  ClassificationTypeNames: () => ClassificationTypeNames,\n  CommentDirectiveType: () => CommentDirectiveType,\n  Comparison: () => Comparison,\n  CompletionInfoFlags: () => CompletionInfoFlags,\n  CompletionTriggerKind: () => CompletionTriggerKind,\n  Completions: () => ts_Completions_exports,\n  ContainerFlags: () => ContainerFlags,\n  ContextFlags: () => ContextFlags,\n  Debug: () => Debug,\n  DiagnosticCategory: () => DiagnosticCategory,\n  Diagnostics: () => Diagnostics,\n  DocumentHighlights: () => DocumentHighlights,\n  ElementFlags: () => ElementFlags,\n  EmitFlags: () => EmitFlags,\n  EmitHint: () => EmitHint,\n  EmitOnly: () => EmitOnly,\n  EndOfLineState: () => EndOfLineState,\n  ExitStatus: () => ExitStatus,\n  ExportKind: () => ExportKind,\n  Extension: () => Extension,\n  ExternalEmitHelpers: () => ExternalEmitHelpers,\n  FileIncludeKind: () => FileIncludeKind,\n  FilePreprocessingDiagnosticsKind: () => FilePreprocessingDiagnosticsKind,\n  FileSystemEntryKind: () => FileSystemEntryKind,\n  FileWatcherEventKind: () => FileWatcherEventKind,\n  FindAllReferences: () => ts_FindAllReferences_exports,\n  FlattenLevel: () => FlattenLevel,\n  FlowFlags: () => FlowFlags,\n  ForegroundColorEscapeSequences: () => ForegroundColorEscapeSequences,\n  FunctionFlags: () => FunctionFlags,\n  GeneratedIdentifierFlags: () => GeneratedIdentifierFlags,\n  GetLiteralTextFlags: () => GetLiteralTextFlags,\n  GoToDefinition: () => ts_GoToDefinition_exports,\n  HighlightSpanKind: () => HighlightSpanKind,\n  IdentifierNameMap: () => IdentifierNameMap,\n  ImportKind: () => ImportKind,\n  ImportsNotUsedAsValues: () => ImportsNotUsedAsValues,\n  IndentStyle: () => IndentStyle,\n  IndexFlags: () => IndexFlags,\n  IndexKind: () => IndexKind,\n  InferenceFlags: () => InferenceFlags,\n  InferencePriority: () => InferencePriority,\n  InlayHintKind: () => InlayHintKind2,\n  InlayHints: () => ts_InlayHints_exports,\n  InternalEmitFlags: () => InternalEmitFlags,\n  InternalNodeBuilderFlags: () => InternalNodeBuilderFlags,\n  InternalSymbolName: () => InternalSymbolName,\n  IntersectionFlags: () => IntersectionFlags,\n  InvalidatedProjectKind: () => InvalidatedProjectKind,\n  JSDocParsingMode: () => JSDocParsingMode,\n  JsDoc: () => ts_JsDoc_exports,\n  JsTyping: () => ts_JsTyping_exports,\n  JsxEmit: () => JsxEmit,\n  JsxFlags: () => JsxFlags,\n  JsxReferenceKind: () => JsxReferenceKind,\n  LanguageFeatureMinimumTarget: () => LanguageFeatureMinimumTarget,\n  LanguageServiceMode: () => LanguageServiceMode,\n  LanguageVariant: () => LanguageVariant,\n  LexicalEnvironmentFlags: () => LexicalEnvironmentFlags,\n  ListFormat: () => ListFormat,\n  LogLevel: () => LogLevel,\n  MapCode: () => ts_MapCode_exports,\n  MemberOverrideStatus: () => MemberOverrideStatus,\n  ModifierFlags: () => ModifierFlags,\n  ModuleDetectionKind: () => ModuleDetectionKind,\n  ModuleInstanceState: () => ModuleInstanceState,\n  ModuleKind: () => ModuleKind,\n  ModuleResolutionKind: () => ModuleResolutionKind,\n  ModuleSpecifierEnding: () => ModuleSpecifierEnding,\n  NavigateTo: () => ts_NavigateTo_exports,\n  NavigationBar: () => ts_NavigationBar_exports,\n  NewLineKind: () => NewLineKind,\n  NodeBuilderFlags: () => NodeBuilderFlags,\n  NodeCheckFlags: () => NodeCheckFlags,\n  NodeFactoryFlags: () => NodeFactoryFlags,\n  NodeFlags: () => NodeFlags,\n  NodeResolutionFeatures: () => NodeResolutionFeatures,\n  ObjectFlags: () => ObjectFlags,\n  OperationCanceledException: () => OperationCanceledException,\n  OperatorPrecedence: () => OperatorPrecedence,\n  OrganizeImports: () => ts_OrganizeImports_exports,\n  OrganizeImportsMode: () => OrganizeImportsMode,\n  OuterExpressionKinds: () => OuterExpressionKinds,\n  OutliningElementsCollector: () => ts_OutliningElementsCollector_exports,\n  OutliningSpanKind: () => OutliningSpanKind,\n  OutputFileType: () => OutputFileType,\n  PackageJsonAutoImportPreference: () => PackageJsonAutoImportPreference,\n  PackageJsonDependencyGroup: () => PackageJsonDependencyGroup,\n  PatternMatchKind: () => PatternMatchKind,\n  PollingInterval: () => PollingInterval,\n  PollingWatchKind: () => PollingWatchKind,\n  PragmaKindFlags: () => PragmaKindFlags,\n  PredicateSemantics: () => PredicateSemantics,\n  PreparePasteEdits: () => ts_preparePasteEdits_exports,\n  PrivateIdentifierKind: () => PrivateIdentifierKind,\n  ProcessLevel: () => ProcessLevel,\n  ProgramUpdateLevel: () => ProgramUpdateLevel,\n  QuotePreference: () => QuotePreference,\n  RegularExpressionFlags: () => RegularExpressionFlags,\n  RelationComparisonResult: () => RelationComparisonResult,\n  Rename: () => ts_Rename_exports,\n  ScriptElementKind: () => ScriptElementKind,\n  ScriptElementKindModifier: () => ScriptElementKindModifier,\n  ScriptKind: () => ScriptKind,\n  ScriptSnapshot: () => ScriptSnapshot,\n  ScriptTarget: () => ScriptTarget,\n  SemanticClassificationFormat: () => SemanticClassificationFormat,\n  SemanticMeaning: () => SemanticMeaning,\n  SemicolonPreference: () => SemicolonPreference,\n  SignatureCheckMode: () => SignatureCheckMode,\n  SignatureFlags: () => SignatureFlags,\n  SignatureHelp: () => ts_SignatureHelp_exports,\n  SignatureInfo: () => SignatureInfo,\n  SignatureKind: () => SignatureKind,\n  SmartSelectionRange: () => ts_SmartSelectionRange_exports,\n  SnippetKind: () => SnippetKind,\n  StatisticType: () => StatisticType,\n  StructureIsReused: () => StructureIsReused,\n  SymbolAccessibility: () => SymbolAccessibility,\n  SymbolDisplay: () => ts_SymbolDisplay_exports,\n  SymbolDisplayPartKind: () => SymbolDisplayPartKind,\n  SymbolFlags: () => SymbolFlags,\n  SymbolFormatFlags: () => SymbolFormatFlags,\n  SyntaxKind: () => SyntaxKind,\n  Ternary: () => Ternary,\n  ThrottledCancellationToken: () => ThrottledCancellationToken,\n  TokenClass: () => TokenClass,\n  TokenFlags: () => TokenFlags,\n  TransformFlags: () => TransformFlags,\n  TypeFacts: () => TypeFacts,\n  TypeFlags: () => TypeFlags,\n  TypeFormatFlags: () => TypeFormatFlags,\n  TypeMapKind: () => TypeMapKind,\n  TypePredicateKind: () => TypePredicateKind,\n  TypeReferenceSerializationKind: () => TypeReferenceSerializationKind,\n  UnionReduction: () => UnionReduction,\n  UpToDateStatusType: () => UpToDateStatusType,\n  VarianceFlags: () => VarianceFlags,\n  Version: () => Version,\n  VersionRange: () => VersionRange,\n  WatchDirectoryFlags: () => WatchDirectoryFlags,\n  WatchDirectoryKind: () => WatchDirectoryKind,\n  WatchFileKind: () => WatchFileKind,\n  WatchLogLevel: () => WatchLogLevel,\n  WatchType: () => WatchType,\n  accessPrivateIdentifier: () => accessPrivateIdentifier,\n  addEmitFlags: () => addEmitFlags,\n  addEmitHelper: () => addEmitHelper,\n  addEmitHelpers: () => addEmitHelpers,\n  addInternalEmitFlags: () => addInternalEmitFlags,\n  addNodeFactoryPatcher: () => addNodeFactoryPatcher,\n  addObjectAllocatorPatcher: () => addObjectAllocatorPatcher,\n  addRange: () => addRange,\n  addRelatedInfo: () => addRelatedInfo,\n  addSyntheticLeadingComment: () => addSyntheticLeadingComment,\n  addSyntheticTrailingComment: () => addSyntheticTrailingComment,\n  addToSeen: () => addToSeen,\n  advancedAsyncSuperHelper: () => advancedAsyncSuperHelper,\n  affectsDeclarationPathOptionDeclarations: () => affectsDeclarationPathOptionDeclarations,\n  affectsEmitOptionDeclarations: () => affectsEmitOptionDeclarations,\n  allKeysStartWithDot: () => allKeysStartWithDot,\n  altDirectorySeparator: () => altDirectorySeparator,\n  and: () => and,\n  append: () => append,\n  appendIfUnique: () => appendIfUnique,\n  arrayFrom: () => arrayFrom,\n  arrayIsEqualTo: () => arrayIsEqualTo,\n  arrayIsHomogeneous: () => arrayIsHomogeneous,\n  arrayOf: () => arrayOf,\n  arrayReverseIterator: () => arrayReverseIterator,\n  arrayToMap: () => arrayToMap,\n  arrayToMultiMap: () => arrayToMultiMap,\n  arrayToNumericMap: () => arrayToNumericMap,\n  assertType: () => assertType,\n  assign: () => assign,\n  asyncSuperHelper: () => asyncSuperHelper,\n  attachFileToDiagnostics: () => attachFileToDiagnostics,\n  base64decode: () => base64decode,\n  base64encode: () => base64encode,\n  binarySearch: () => binarySearch,\n  binarySearchKey: () => binarySearchKey,\n  bindSourceFile: () => bindSourceFile,\n  breakIntoCharacterSpans: () => breakIntoCharacterSpans,\n  breakIntoWordSpans: () => breakIntoWordSpans,\n  buildLinkParts: () => buildLinkParts,\n  buildOpts: () => buildOpts,\n  buildOverload: () => buildOverload,\n  bundlerModuleNameResolver: () => bundlerModuleNameResolver,\n  canBeConvertedToAsync: () => canBeConvertedToAsync,\n  canHaveDecorators: () => canHaveDecorators,\n  canHaveExportModifier: () => canHaveExportModifier,\n  canHaveFlowNode: () => canHaveFlowNode,\n  canHaveIllegalDecorators: () => canHaveIllegalDecorators,\n  canHaveIllegalModifiers: () => canHaveIllegalModifiers,\n  canHaveIllegalType: () => canHaveIllegalType,\n  canHaveIllegalTypeParameters: () => canHaveIllegalTypeParameters,\n  canHaveJSDoc: () => canHaveJSDoc,\n  canHaveLocals: () => canHaveLocals,\n  canHaveModifiers: () => canHaveModifiers,\n  canHaveModuleSpecifier: () => canHaveModuleSpecifier,\n  canHaveSymbol: () => canHaveSymbol,\n  canIncludeBindAndCheckDiagnostics: () => canIncludeBindAndCheckDiagnostics,\n  canJsonReportNoInputFiles: () => canJsonReportNoInputFiles,\n  canProduceDiagnostics: () => canProduceDiagnostics,\n  canUsePropertyAccess: () => canUsePropertyAccess,\n  canWatchAffectingLocation: () => canWatchAffectingLocation,\n  canWatchAtTypes: () => canWatchAtTypes,\n  canWatchDirectoryOrFile: () => canWatchDirectoryOrFile,\n  canWatchDirectoryOrFilePath: () => canWatchDirectoryOrFilePath,\n  cartesianProduct: () => cartesianProduct,\n  cast: () => cast,\n  chainBundle: () => chainBundle,\n  chainDiagnosticMessages: () => chainDiagnosticMessages,\n  changeAnyExtension: () => changeAnyExtension,\n  changeCompilerHostLikeToUseCache: () => changeCompilerHostLikeToUseCache,\n  changeExtension: () => changeExtension,\n  changeFullExtension: () => changeFullExtension,\n  changesAffectModuleResolution: () => changesAffectModuleResolution,\n  changesAffectingProgramStructure: () => changesAffectingProgramStructure,\n  characterCodeToRegularExpressionFlag: () => characterCodeToRegularExpressionFlag,\n  childIsDecorated: () => childIsDecorated,\n  classElementOrClassElementParameterIsDecorated: () => classElementOrClassElementParameterIsDecorated,\n  classHasClassThisAssignment: () => classHasClassThisAssignment,\n  classHasDeclaredOrExplicitlyAssignedName: () => classHasDeclaredOrExplicitlyAssignedName,\n  classHasExplicitlyAssignedName: () => classHasExplicitlyAssignedName,\n  classOrConstructorParameterIsDecorated: () => classOrConstructorParameterIsDecorated,\n  classicNameResolver: () => classicNameResolver,\n  classifier: () => ts_classifier_exports,\n  cleanExtendedConfigCache: () => cleanExtendedConfigCache,\n  clear: () => clear,\n  clearMap: () => clearMap,\n  clearSharedExtendedConfigFileWatcher: () => clearSharedExtendedConfigFileWatcher,\n  climbPastPropertyAccess: () => climbPastPropertyAccess,\n  clone: () => clone,\n  cloneCompilerOptions: () => cloneCompilerOptions,\n  closeFileWatcher: () => closeFileWatcher,\n  closeFileWatcherOf: () => closeFileWatcherOf,\n  codefix: () => ts_codefix_exports,\n  collapseTextChangeRangesAcrossMultipleVersions: () => collapseTextChangeRangesAcrossMultipleVersions,\n  collectExternalModuleInfo: () => collectExternalModuleInfo,\n  combine: () => combine,\n  combinePaths: () => combinePaths,\n  commandLineOptionOfCustomType: () => commandLineOptionOfCustomType,\n  commentPragmas: () => commentPragmas,\n  commonOptionsWithBuild: () => commonOptionsWithBuild,\n  compact: () => compact,\n  compareBooleans: () => compareBooleans,\n  compareDataObjects: () => compareDataObjects,\n  compareDiagnostics: () => compareDiagnostics,\n  compareEmitHelpers: () => compareEmitHelpers,\n  compareNumberOfDirectorySeparators: () => compareNumberOfDirectorySeparators,\n  comparePaths: () => comparePaths,\n  comparePathsCaseInsensitive: () => comparePathsCaseInsensitive,\n  comparePathsCaseSensitive: () => comparePathsCaseSensitive,\n  comparePatternKeys: () => comparePatternKeys,\n  compareProperties: () => compareProperties,\n  compareStringsCaseInsensitive: () => compareStringsCaseInsensitive,\n  compareStringsCaseInsensitiveEslintCompatible: () => compareStringsCaseInsensitiveEslintCompatible,\n  compareStringsCaseSensitive: () => compareStringsCaseSensitive,\n  compareStringsCaseSensitiveUI: () => compareStringsCaseSensitiveUI,\n  compareTextSpans: () => compareTextSpans,\n  compareValues: () => compareValues,\n  compilerOptionsAffectDeclarationPath: () => compilerOptionsAffectDeclarationPath,\n  compilerOptionsAffectEmit: () => compilerOptionsAffectEmit,\n  compilerOptionsAffectSemanticDiagnostics: () => compilerOptionsAffectSemanticDiagnostics,\n  compilerOptionsDidYouMeanDiagnostics: () => compilerOptionsDidYouMeanDiagnostics,\n  compilerOptionsIndicateEsModules: () => compilerOptionsIndicateEsModules,\n  computeCommonSourceDirectoryOfFilenames: () => computeCommonSourceDirectoryOfFilenames,\n  computeLineAndCharacterOfPosition: () => computeLineAndCharacterOfPosition,\n  computeLineOfPosition: () => computeLineOfPosition,\n  computeLineStarts: () => computeLineStarts,\n  computePositionOfLineAndCharacter: () => computePositionOfLineAndCharacter,\n  computeSignatureWithDiagnostics: () => computeSignatureWithDiagnostics,\n  computeSuggestionDiagnostics: () => computeSuggestionDiagnostics,\n  computedOptions: () => computedOptions,\n  concatenate: () => concatenate,\n  concatenateDiagnosticMessageChains: () => concatenateDiagnosticMessageChains,\n  consumesNodeCoreModules: () => consumesNodeCoreModules,\n  contains: () => contains,\n  containsIgnoredPath: () => containsIgnoredPath,\n  containsObjectRestOrSpread: () => containsObjectRestOrSpread,\n  containsParseError: () => containsParseError,\n  containsPath: () => containsPath,\n  convertCompilerOptionsForTelemetry: () => convertCompilerOptionsForTelemetry,\n  convertCompilerOptionsFromJson: () => convertCompilerOptionsFromJson,\n  convertJsonOption: () => convertJsonOption,\n  convertToBase64: () => convertToBase64,\n  convertToJson: () => convertToJson,\n  convertToObject: () => convertToObject,\n  convertToOptionsWithAbsolutePaths: () => convertToOptionsWithAbsolutePaths,\n  convertToRelativePath: () => convertToRelativePath,\n  convertToTSConfig: () => convertToTSConfig,\n  convertTypeAcquisitionFromJson: () => convertTypeAcquisitionFromJson,\n  copyComments: () => copyComments,\n  copyEntries: () => copyEntries,\n  copyLeadingComments: () => copyLeadingComments,\n  copyProperties: () => copyProperties,\n  copyTrailingAsLeadingComments: () => copyTrailingAsLeadingComments,\n  copyTrailingComments: () => copyTrailingComments,\n  couldStartTrivia: () => couldStartTrivia,\n  countWhere: () => countWhere,\n  createAbstractBuilder: () => createAbstractBuilder,\n  createAccessorPropertyBackingField: () => createAccessorPropertyBackingField,\n  createAccessorPropertyGetRedirector: () => createAccessorPropertyGetRedirector,\n  createAccessorPropertySetRedirector: () => createAccessorPropertySetRedirector,\n  createBaseNodeFactory: () => createBaseNodeFactory,\n  createBinaryExpressionTrampoline: () => createBinaryExpressionTrampoline,\n  createBuilderProgram: () => createBuilderProgram,\n  createBuilderProgramUsingIncrementalBuildInfo: () => createBuilderProgramUsingIncrementalBuildInfo,\n  createBuilderStatusReporter: () => createBuilderStatusReporter,\n  createCacheableExportInfoMap: () => createCacheableExportInfoMap,\n  createCachedDirectoryStructureHost: () => createCachedDirectoryStructureHost,\n  createClassifier: () => createClassifier,\n  createCommentDirectivesMap: () => createCommentDirectivesMap,\n  createCompilerDiagnostic: () => createCompilerDiagnostic,\n  createCompilerDiagnosticForInvalidCustomType: () => createCompilerDiagnosticForInvalidCustomType,\n  createCompilerDiagnosticFromMessageChain: () => createCompilerDiagnosticFromMessageChain,\n  createCompilerHost: () => createCompilerHost,\n  createCompilerHostFromProgramHost: () => createCompilerHostFromProgramHost,\n  createCompilerHostWorker: () => createCompilerHostWorker,\n  createDetachedDiagnostic: () => createDetachedDiagnostic,\n  createDiagnosticCollection: () => createDiagnosticCollection,\n  createDiagnosticForFileFromMessageChain: () => createDiagnosticForFileFromMessageChain,\n  createDiagnosticForNode: () => createDiagnosticForNode,\n  createDiagnosticForNodeArray: () => createDiagnosticForNodeArray,\n  createDiagnosticForNodeArrayFromMessageChain: () => createDiagnosticForNodeArrayFromMessageChain,\n  createDiagnosticForNodeFromMessageChain: () => createDiagnosticForNodeFromMessageChain,\n  createDiagnosticForNodeInSourceFile: () => createDiagnosticForNodeInSourceFile,\n  createDiagnosticForRange: () => createDiagnosticForRange,\n  createDiagnosticMessageChainFromDiagnostic: () => createDiagnosticMessageChainFromDiagnostic,\n  createDiagnosticReporter: () => createDiagnosticReporter,\n  createDocumentPositionMapper: () => createDocumentPositionMapper,\n  createDocumentRegistry: () => createDocumentRegistry,\n  createDocumentRegistryInternal: () => createDocumentRegistryInternal,\n  createEmitAndSemanticDiagnosticsBuilderProgram: () => createEmitAndSemanticDiagnosticsBuilderProgram,\n  createEmitHelperFactory: () => createEmitHelperFactory,\n  createEmptyExports: () => createEmptyExports,\n  createEvaluator: () => createEvaluator,\n  createExpressionForJsxElement: () => createExpressionForJsxElement,\n  createExpressionForJsxFragment: () => createExpressionForJsxFragment,\n  createExpressionForObjectLiteralElementLike: () => createExpressionForObjectLiteralElementLike,\n  createExpressionForPropertyName: () => createExpressionForPropertyName,\n  createExpressionFromEntityName: () => createExpressionFromEntityName,\n  createExternalHelpersImportDeclarationIfNeeded: () => createExternalHelpersImportDeclarationIfNeeded,\n  createFileDiagnostic: () => createFileDiagnostic,\n  createFileDiagnosticFromMessageChain: () => createFileDiagnosticFromMessageChain,\n  createFlowNode: () => createFlowNode,\n  createForOfBindingStatement: () => createForOfBindingStatement,\n  createFutureSourceFile: () => createFutureSourceFile,\n  createGetCanonicalFileName: () => createGetCanonicalFileName,\n  createGetIsolatedDeclarationErrors: () => createGetIsolatedDeclarationErrors,\n  createGetSourceFile: () => createGetSourceFile,\n  createGetSymbolAccessibilityDiagnosticForNode: () => createGetSymbolAccessibilityDiagnosticForNode,\n  createGetSymbolAccessibilityDiagnosticForNodeName: () => createGetSymbolAccessibilityDiagnosticForNodeName,\n  createGetSymbolWalker: () => createGetSymbolWalker,\n  createIncrementalCompilerHost: () => createIncrementalCompilerHost,\n  createIncrementalProgram: () => createIncrementalProgram,\n  createJsxFactoryExpression: () => createJsxFactoryExpression,\n  createLanguageService: () => createLanguageService,\n  createLanguageServiceSourceFile: () => createLanguageServiceSourceFile,\n  createMemberAccessForPropertyName: () => createMemberAccessForPropertyName,\n  createModeAwareCache: () => createModeAwareCache,\n  createModeAwareCacheKey: () => createModeAwareCacheKey,\n  createModeMismatchDetails: () => createModeMismatchDetails,\n  createModuleNotFoundChain: () => createModuleNotFoundChain,\n  createModuleResolutionCache: () => createModuleResolutionCache,\n  createModuleResolutionLoader: () => createModuleResolutionLoader,\n  createModuleResolutionLoaderUsingGlobalCache: () => createModuleResolutionLoaderUsingGlobalCache,\n  createModuleSpecifierResolutionHost: () => createModuleSpecifierResolutionHost,\n  createMultiMap: () => createMultiMap,\n  createNameResolver: () => createNameResolver,\n  createNodeConverters: () => createNodeConverters,\n  createNodeFactory: () => createNodeFactory,\n  createOptionNameMap: () => createOptionNameMap,\n  createOverload: () => createOverload,\n  createPackageJsonImportFilter: () => createPackageJsonImportFilter,\n  createPackageJsonInfo: () => createPackageJsonInfo,\n  createParenthesizerRules: () => createParenthesizerRules,\n  createPatternMatcher: () => createPatternMatcher,\n  createPrinter: () => createPrinter,\n  createPrinterWithDefaults: () => createPrinterWithDefaults,\n  createPrinterWithRemoveComments: () => createPrinterWithRemoveComments,\n  createPrinterWithRemoveCommentsNeverAsciiEscape: () => createPrinterWithRemoveCommentsNeverAsciiEscape,\n  createPrinterWithRemoveCommentsOmitTrailingSemicolon: () => createPrinterWithRemoveCommentsOmitTrailingSemicolon,\n  createProgram: () => createProgram,\n  createProgramDiagnostics: () => createProgramDiagnostics,\n  createProgramHost: () => createProgramHost,\n  createPropertyNameNodeForIdentifierOrLiteral: () => createPropertyNameNodeForIdentifierOrLiteral,\n  createQueue: () => createQueue,\n  createRange: () => createRange,\n  createRedirectedBuilderProgram: () => createRedirectedBuilderProgram,\n  createResolutionCache: () => createResolutionCache,\n  createRuntimeTypeSerializer: () => createRuntimeTypeSerializer,\n  createScanner: () => createScanner,\n  createSemanticDiagnosticsBuilderProgram: () => createSemanticDiagnosticsBuilderProgram,\n  createSet: () => createSet,\n  createSolutionBuilder: () => createSolutionBuilder,\n  createSolutionBuilderHost: () => createSolutionBuilderHost,\n  createSolutionBuilderWithWatch: () => createSolutionBuilderWithWatch,\n  createSolutionBuilderWithWatchHost: () => createSolutionBuilderWithWatchHost,\n  createSortedArray: () => createSortedArray,\n  createSourceFile: () => createSourceFile,\n  createSourceMapGenerator: () => createSourceMapGenerator,\n  createSourceMapSource: () => createSourceMapSource,\n  createSuperAccessVariableStatement: () => createSuperAccessVariableStatement,\n  createSymbolTable: () => createSymbolTable,\n  createSymlinkCache: () => createSymlinkCache,\n  createSyntacticTypeNodeBuilder: () => createSyntacticTypeNodeBuilder,\n  createSystemWatchFunctions: () => createSystemWatchFunctions,\n  createTextChange: () => createTextChange,\n  createTextChangeFromStartLength: () => createTextChangeFromStartLength,\n  createTextChangeRange: () => createTextChangeRange,\n  createTextRangeFromNode: () => createTextRangeFromNode,\n  createTextRangeFromSpan: () => createTextRangeFromSpan,\n  createTextSpan: () => createTextSpan,\n  createTextSpanFromBounds: () => createTextSpanFromBounds,\n  createTextSpanFromNode: () => createTextSpanFromNode,\n  createTextSpanFromRange: () => createTextSpanFromRange,\n  createTextSpanFromStringLiteralLikeContent: () => createTextSpanFromStringLiteralLikeContent,\n  createTextWriter: () => createTextWriter,\n  createTokenRange: () => createTokenRange,\n  createTypeChecker: () => createTypeChecker,\n  createTypeReferenceDirectiveResolutionCache: () => createTypeReferenceDirectiveResolutionCache,\n  createTypeReferenceResolutionLoader: () => createTypeReferenceResolutionLoader,\n  createWatchCompilerHost: () => createWatchCompilerHost2,\n  createWatchCompilerHostOfConfigFile: () => createWatchCompilerHostOfConfigFile,\n  createWatchCompilerHostOfFilesAndCompilerOptions: () => createWatchCompilerHostOfFilesAndCompilerOptions,\n  createWatchFactory: () => createWatchFactory,\n  createWatchHost: () => createWatchHost,\n  createWatchProgram: () => createWatchProgram,\n  createWatchStatusReporter: () => createWatchStatusReporter,\n  createWriteFileMeasuringIO: () => createWriteFileMeasuringIO,\n  declarationNameToString: () => declarationNameToString,\n  decodeMappings: () => decodeMappings,\n  decodedTextSpanIntersectsWith: () => decodedTextSpanIntersectsWith,\n  deduplicate: () => deduplicate,\n  defaultHoverMaximumTruncationLength: () => defaultHoverMaximumTruncationLength,\n  defaultInitCompilerOptions: () => defaultInitCompilerOptions,\n  defaultMaximumTruncationLength: () => defaultMaximumTruncationLength,\n  diagnosticCategoryName: () => diagnosticCategoryName,\n  diagnosticToString: () => diagnosticToString,\n  diagnosticsEqualityComparer: () => diagnosticsEqualityComparer,\n  directoryProbablyExists: () => directoryProbablyExists,\n  directorySeparator: () => directorySeparator,\n  displayPart: () => displayPart,\n  displayPartsToString: () => displayPartsToString,\n  disposeEmitNodes: () => disposeEmitNodes,\n  documentSpansEqual: () => documentSpansEqual,\n  dumpTracingLegend: () => dumpTracingLegend,\n  elementAt: () => elementAt,\n  elideNodes: () => elideNodes,\n  emitDetachedComments: () => emitDetachedComments,\n  emitFiles: () => emitFiles,\n  emitFilesAndReportErrors: () => emitFilesAndReportErrors,\n  emitFilesAndReportErrorsAndGetExitStatus: () => emitFilesAndReportErrorsAndGetExitStatus,\n  emitModuleKindIsNonNodeESM: () => emitModuleKindIsNonNodeESM,\n  emitNewLineBeforeLeadingCommentOfPosition: () => emitNewLineBeforeLeadingCommentOfPosition,\n  emitResolverSkipsTypeChecking: () => emitResolverSkipsTypeChecking,\n  emitSkippedWithNoDiagnostics: () => emitSkippedWithNoDiagnostics,\n  emptyArray: () => emptyArray,\n  emptyFileSystemEntries: () => emptyFileSystemEntries,\n  emptyMap: () => emptyMap,\n  emptyOptions: () => emptyOptions,\n  endsWith: () => endsWith,\n  ensurePathIsNonModuleName: () => ensurePathIsNonModuleName,\n  ensureScriptKind: () => ensureScriptKind,\n  ensureTrailingDirectorySeparator: () => ensureTrailingDirectorySeparator,\n  entityNameToString: () => entityNameToString,\n  enumerateInsertsAndDeletes: () => enumerateInsertsAndDeletes,\n  equalOwnProperties: () => equalOwnProperties,\n  equateStringsCaseInsensitive: () => equateStringsCaseInsensitive,\n  equateStringsCaseSensitive: () => equateStringsCaseSensitive,\n  equateValues: () => equateValues,\n  escapeJsxAttributeString: () => escapeJsxAttributeString,\n  escapeLeadingUnderscores: () => escapeLeadingUnderscores,\n  escapeNonAsciiString: () => escapeNonAsciiString,\n  escapeSnippetText: () => escapeSnippetText,\n  escapeString: () => escapeString,\n  escapeTemplateSubstitution: () => escapeTemplateSubstitution,\n  evaluatorResult: () => evaluatorResult,\n  every: () => every,\n  exclusivelyPrefixedNodeCoreModules: () => exclusivelyPrefixedNodeCoreModules,\n  executeCommandLine: () => executeCommandLine,\n  expandPreOrPostfixIncrementOrDecrementExpression: () => expandPreOrPostfixIncrementOrDecrementExpression,\n  explainFiles: () => explainFiles,\n  explainIfFileIsRedirectAndImpliedFormat: () => explainIfFileIsRedirectAndImpliedFormat,\n  exportAssignmentIsAlias: () => exportAssignmentIsAlias,\n  expressionResultIsUnused: () => expressionResultIsUnused,\n  extend: () => extend,\n  extensionFromPath: () => extensionFromPath,\n  extensionIsTS: () => extensionIsTS,\n  extensionsNotSupportingExtensionlessResolution: () => extensionsNotSupportingExtensionlessResolution,\n  externalHelpersModuleNameText: () => externalHelpersModuleNameText,\n  factory: () => factory,\n  fileExtensionIs: () => fileExtensionIs,\n  fileExtensionIsOneOf: () => fileExtensionIsOneOf,\n  fileIncludeReasonToDiagnostics: () => fileIncludeReasonToDiagnostics,\n  fileShouldUseJavaScriptRequire: () => fileShouldUseJavaScriptRequire,\n  filter: () => filter,\n  filterMutate: () => filterMutate,\n  filterSemanticDiagnostics: () => filterSemanticDiagnostics,\n  find: () => find,\n  findAncestor: () => findAncestor,\n  findBestPatternMatch: () => findBestPatternMatch,\n  findChildOfKind: () => findChildOfKind,\n  findComputedPropertyNameCacheAssignment: () => findComputedPropertyNameCacheAssignment,\n  findConfigFile: () => findConfigFile,\n  findConstructorDeclaration: () => findConstructorDeclaration,\n  findContainingList: () => findContainingList,\n  findDiagnosticForNode: () => findDiagnosticForNode,\n  findFirstNonJsxWhitespaceToken: () => findFirstNonJsxWhitespaceToken,\n  findIndex: () => findIndex,\n  findLast: () => findLast,\n  findLastIndex: () => findLastIndex,\n  findListItemInfo: () => findListItemInfo,\n  findModifier: () => findModifier,\n  findNextToken: () => findNextToken,\n  findPackageJson: () => findPackageJson,\n  findPackageJsons: () => findPackageJsons,\n  findPrecedingMatchingToken: () => findPrecedingMatchingToken,\n  findPrecedingToken: () => findPrecedingToken,\n  findSuperStatementIndexPath: () => findSuperStatementIndexPath,\n  findTokenOnLeftOfPosition: () => findTokenOnLeftOfPosition,\n  findUseStrictPrologue: () => findUseStrictPrologue,\n  first: () => first,\n  firstDefined: () => firstDefined,\n  firstDefinedIterator: () => firstDefinedIterator,\n  firstIterator: () => firstIterator,\n  firstOrOnly: () => firstOrOnly,\n  firstOrUndefined: () => firstOrUndefined,\n  firstOrUndefinedIterator: () => firstOrUndefinedIterator,\n  fixupCompilerOptions: () => fixupCompilerOptions,\n  flatMap: () => flatMap,\n  flatMapIterator: () => flatMapIterator,\n  flatMapToMutable: () => flatMapToMutable,\n  flatten: () => flatten,\n  flattenCommaList: () => flattenCommaList,\n  flattenDestructuringAssignment: () => flattenDestructuringAssignment,\n  flattenDestructuringBinding: () => flattenDestructuringBinding,\n  flattenDiagnosticMessageText: () => flattenDiagnosticMessageText,\n  forEach: () => forEach,\n  forEachAncestor: () => forEachAncestor,\n  forEachAncestorDirectory: () => forEachAncestorDirectory,\n  forEachAncestorDirectoryStoppingAtGlobalCache: () => forEachAncestorDirectoryStoppingAtGlobalCache,\n  forEachChild: () => forEachChild,\n  forEachChildRecursively: () => forEachChildRecursively,\n  forEachDynamicImportOrRequireCall: () => forEachDynamicImportOrRequireCall,\n  forEachEmittedFile: () => forEachEmittedFile,\n  forEachEnclosingBlockScopeContainer: () => forEachEnclosingBlockScopeContainer,\n  forEachEntry: () => forEachEntry,\n  forEachExternalModuleToImportFrom: () => forEachExternalModuleToImportFrom,\n  forEachImportClauseDeclaration: () => forEachImportClauseDeclaration,\n  forEachKey: () => forEachKey,\n  forEachLeadingCommentRange: () => forEachLeadingCommentRange,\n  forEachNameInAccessChainWalkingLeft: () => forEachNameInAccessChainWalkingLeft,\n  forEachNameOfDefaultExport: () => forEachNameOfDefaultExport,\n  forEachOptionsSyntaxByName: () => forEachOptionsSyntaxByName,\n  forEachProjectReference: () => forEachProjectReference,\n  forEachPropertyAssignment: () => forEachPropertyAssignment,\n  forEachResolvedProjectReference: () => forEachResolvedProjectReference,\n  forEachReturnStatement: () => forEachReturnStatement,\n  forEachRight: () => forEachRight,\n  forEachTrailingCommentRange: () => forEachTrailingCommentRange,\n  forEachTsConfigPropArray: () => forEachTsConfigPropArray,\n  forEachUnique: () => forEachUnique,\n  forEachYieldExpression: () => forEachYieldExpression,\n  formatColorAndReset: () => formatColorAndReset,\n  formatDiagnostic: () => formatDiagnostic,\n  formatDiagnostics: () => formatDiagnostics,\n  formatDiagnosticsWithColorAndContext: () => formatDiagnosticsWithColorAndContext,\n  formatGeneratedName: () => formatGeneratedName,\n  formatGeneratedNamePart: () => formatGeneratedNamePart,\n  formatLocation: () => formatLocation,\n  formatMessage: () => formatMessage,\n  formatStringFromArgs: () => formatStringFromArgs,\n  formatting: () => ts_formatting_exports,\n  generateDjb2Hash: () => generateDjb2Hash,\n  generateTSConfig: () => generateTSConfig,\n  getAdjustedReferenceLocation: () => getAdjustedReferenceLocation,\n  getAdjustedRenameLocation: () => getAdjustedRenameLocation,\n  getAliasDeclarationFromName: () => getAliasDeclarationFromName,\n  getAllAccessorDeclarations: () => getAllAccessorDeclarations,\n  getAllDecoratorsOfClass: () => getAllDecoratorsOfClass,\n  getAllDecoratorsOfClassElement: () => getAllDecoratorsOfClassElement,\n  getAllJSDocTags: () => getAllJSDocTags,\n  getAllJSDocTagsOfKind: () => getAllJSDocTagsOfKind,\n  getAllKeys: () => getAllKeys,\n  getAllProjectOutputs: () => getAllProjectOutputs,\n  getAllSuperTypeNodes: () => getAllSuperTypeNodes,\n  getAllowImportingTsExtensions: () => getAllowImportingTsExtensions,\n  getAllowJSCompilerOption: () => getAllowJSCompilerOption,\n  getAllowSyntheticDefaultImports: () => getAllowSyntheticDefaultImports,\n  getAncestor: () => getAncestor,\n  getAnyExtensionFromPath: () => getAnyExtensionFromPath,\n  getAreDeclarationMapsEnabled: () => getAreDeclarationMapsEnabled,\n  getAssignedExpandoInitializer: () => getAssignedExpandoInitializer,\n  getAssignedName: () => getAssignedName,\n  getAssignmentDeclarationKind: () => getAssignmentDeclarationKind,\n  getAssignmentDeclarationPropertyAccessKind: () => getAssignmentDeclarationPropertyAccessKind,\n  getAssignmentTargetKind: () => getAssignmentTargetKind,\n  getAutomaticTypeDirectiveNames: () => getAutomaticTypeDirectiveNames,\n  getBaseFileName: () => getBaseFileName,\n  getBinaryOperatorPrecedence: () => getBinaryOperatorPrecedence,\n  getBuildInfo: () => getBuildInfo,\n  getBuildInfoFileVersionMap: () => getBuildInfoFileVersionMap,\n  getBuildInfoText: () => getBuildInfoText,\n  getBuildOrderFromAnyBuildOrder: () => getBuildOrderFromAnyBuildOrder,\n  getBuilderCreationParameters: () => getBuilderCreationParameters,\n  getBuilderFileEmit: () => getBuilderFileEmit,\n  getCanonicalDiagnostic: () => getCanonicalDiagnostic,\n  getCheckFlags: () => getCheckFlags,\n  getClassExtendsHeritageElement: () => getClassExtendsHeritageElement,\n  getClassLikeDeclarationOfSymbol: () => getClassLikeDeclarationOfSymbol,\n  getCombinedLocalAndExportSymbolFlags: () => getCombinedLocalAndExportSymbolFlags,\n  getCombinedModifierFlags: () => getCombinedModifierFlags,\n  getCombinedNodeFlags: () => getCombinedNodeFlags,\n  getCombinedNodeFlagsAlwaysIncludeJSDoc: () => getCombinedNodeFlagsAlwaysIncludeJSDoc,\n  getCommentRange: () => getCommentRange,\n  getCommonSourceDirectory: () => getCommonSourceDirectory,\n  getCommonSourceDirectoryOfConfig: () => getCommonSourceDirectoryOfConfig,\n  getCompilerOptionValue: () => getCompilerOptionValue,\n  getConditions: () => getConditions,\n  getConfigFileParsingDiagnostics: () => getConfigFileParsingDiagnostics,\n  getConstantValue: () => getConstantValue,\n  getContainerFlags: () => getContainerFlags,\n  getContainerNode: () => getContainerNode,\n  getContainingClass: () => getContainingClass,\n  getContainingClassExcludingClassDecorators: () => getContainingClassExcludingClassDecorators,\n  getContainingClassStaticBlock: () => getContainingClassStaticBlock,\n  getContainingFunction: () => getContainingFunction,\n  getContainingFunctionDeclaration: () => getContainingFunctionDeclaration,\n  getContainingFunctionOrClassStaticBlock: () => getContainingFunctionOrClassStaticBlock,\n  getContainingNodeArray: () => getContainingNodeArray,\n  getContainingObjectLiteralElement: () => getContainingObjectLiteralElement,\n  getContextualTypeFromParent: () => getContextualTypeFromParent,\n  getContextualTypeFromParentOrAncestorTypeNode: () => getContextualTypeFromParentOrAncestorTypeNode,\n  getDeclarationDiagnostics: () => getDeclarationDiagnostics,\n  getDeclarationEmitExtensionForPath: () => getDeclarationEmitExtensionForPath,\n  getDeclarationEmitOutputFilePath: () => getDeclarationEmitOutputFilePath,\n  getDeclarationEmitOutputFilePathWorker: () => getDeclarationEmitOutputFilePathWorker,\n  getDeclarationFileExtension: () => getDeclarationFileExtension,\n  getDeclarationFromName: () => getDeclarationFromName,\n  getDeclarationModifierFlagsFromSymbol: () => getDeclarationModifierFlagsFromSymbol,\n  getDeclarationOfKind: () => getDeclarationOfKind,\n  getDeclarationsOfKind: () => getDeclarationsOfKind,\n  getDeclaredExpandoInitializer: () => getDeclaredExpandoInitializer,\n  getDecorators: () => getDecorators,\n  getDefaultCompilerOptions: () => getDefaultCompilerOptions2,\n  getDefaultFormatCodeSettings: () => getDefaultFormatCodeSettings,\n  getDefaultLibFileName: () => getDefaultLibFileName,\n  getDefaultLibFilePath: () => getDefaultLibFilePath,\n  getDefaultLikeExportInfo: () => getDefaultLikeExportInfo,\n  getDefaultLikeExportNameFromDeclaration: () => getDefaultLikeExportNameFromDeclaration,\n  getDefaultResolutionModeForFileWorker: () => getDefaultResolutionModeForFileWorker,\n  getDiagnosticText: () => getDiagnosticText,\n  getDiagnosticsWithinSpan: () => getDiagnosticsWithinSpan,\n  getDirectoryPath: () => getDirectoryPath,\n  getDirectoryToWatchFailedLookupLocation: () => getDirectoryToWatchFailedLookupLocation,\n  getDirectoryToWatchFailedLookupLocationFromTypeRoot: () => getDirectoryToWatchFailedLookupLocationFromTypeRoot,\n  getDocumentPositionMapper: () => getDocumentPositionMapper,\n  getDocumentSpansEqualityComparer: () => getDocumentSpansEqualityComparer,\n  getESModuleInterop: () => getESModuleInterop,\n  getEditsForFileRename: () => getEditsForFileRename,\n  getEffectiveBaseTypeNode: () => getEffectiveBaseTypeNode,\n  getEffectiveConstraintOfTypeParameter: () => getEffectiveConstraintOfTypeParameter,\n  getEffectiveContainerForJSDocTemplateTag: () => getEffectiveContainerForJSDocTemplateTag,\n  getEffectiveImplementsTypeNodes: () => getEffectiveImplementsTypeNodes,\n  getEffectiveInitializer: () => getEffectiveInitializer,\n  getEffectiveJSDocHost: () => getEffectiveJSDocHost,\n  getEffectiveModifierFlags: () => getEffectiveModifierFlags,\n  getEffectiveModifierFlagsAlwaysIncludeJSDoc: () => getEffectiveModifierFlagsAlwaysIncludeJSDoc,\n  getEffectiveModifierFlagsNoCache: () => getEffectiveModifierFlagsNoCache,\n  getEffectiveReturnTypeNode: () => getEffectiveReturnTypeNode,\n  getEffectiveSetAccessorTypeAnnotationNode: () => getEffectiveSetAccessorTypeAnnotationNode,\n  getEffectiveTypeAnnotationNode: () => getEffectiveTypeAnnotationNode,\n  getEffectiveTypeParameterDeclarations: () => getEffectiveTypeParameterDeclarations,\n  getEffectiveTypeRoots: () => getEffectiveTypeRoots,\n  getElementOrPropertyAccessArgumentExpressionOrName: () => getElementOrPropertyAccessArgumentExpressionOrName,\n  getElementOrPropertyAccessName: () => getElementOrPropertyAccessName,\n  getElementsOfBindingOrAssignmentPattern: () => getElementsOfBindingOrAssignmentPattern,\n  getEmitDeclarations: () => getEmitDeclarations,\n  getEmitFlags: () => getEmitFlags,\n  getEmitHelpers: () => getEmitHelpers,\n  getEmitModuleDetectionKind: () => getEmitModuleDetectionKind,\n  getEmitModuleFormatOfFileWorker: () => getEmitModuleFormatOfFileWorker,\n  getEmitModuleKind: () => getEmitModuleKind,\n  getEmitModuleResolutionKind: () => getEmitModuleResolutionKind,\n  getEmitScriptTarget: () => getEmitScriptTarget,\n  getEmitStandardClassFields: () => getEmitStandardClassFields,\n  getEnclosingBlockScopeContainer: () => getEnclosingBlockScopeContainer,\n  getEnclosingContainer: () => getEnclosingContainer,\n  getEncodedSemanticClassifications: () => getEncodedSemanticClassifications,\n  getEncodedSyntacticClassifications: () => getEncodedSyntacticClassifications,\n  getEndLinePosition: () => getEndLinePosition,\n  getEntityNameFromTypeNode: () => getEntityNameFromTypeNode,\n  getEntrypointsFromPackageJsonInfo: () => getEntrypointsFromPackageJsonInfo,\n  getErrorCountForSummary: () => getErrorCountForSummary,\n  getErrorSpanForNode: () => getErrorSpanForNode,\n  getErrorSummaryText: () => getErrorSummaryText,\n  getEscapedTextOfIdentifierOrLiteral: () => getEscapedTextOfIdentifierOrLiteral,\n  getEscapedTextOfJsxAttributeName: () => getEscapedTextOfJsxAttributeName,\n  getEscapedTextOfJsxNamespacedName: () => getEscapedTextOfJsxNamespacedName,\n  getExpandoInitializer: () => getExpandoInitializer,\n  getExportAssignmentExpression: () => getExportAssignmentExpression,\n  getExportInfoMap: () => getExportInfoMap,\n  getExportNeedsImportStarHelper: () => getExportNeedsImportStarHelper,\n  getExpressionAssociativity: () => getExpressionAssociativity,\n  getExpressionPrecedence: () => getExpressionPrecedence,\n  getExternalHelpersModuleName: () => getExternalHelpersModuleName,\n  getExternalModuleImportEqualsDeclarationExpression: () => getExternalModuleImportEqualsDeclarationExpression,\n  getExternalModuleName: () => getExternalModuleName,\n  getExternalModuleNameFromDeclaration: () => getExternalModuleNameFromDeclaration,\n  getExternalModuleNameFromPath: () => getExternalModuleNameFromPath,\n  getExternalModuleNameLiteral: () => getExternalModuleNameLiteral,\n  getExternalModuleRequireArgument: () => getExternalModuleRequireArgument,\n  getFallbackOptions: () => getFallbackOptions,\n  getFileEmitOutput: () => getFileEmitOutput,\n  getFileMatcherPatterns: () => getFileMatcherPatterns,\n  getFileNamesFromConfigSpecs: () => getFileNamesFromConfigSpecs,\n  getFileWatcherEventKind: () => getFileWatcherEventKind,\n  getFilesInErrorForSummary: () => getFilesInErrorForSummary,\n  getFirstConstructorWithBody: () => getFirstConstructorWithBody,\n  getFirstIdentifier: () => getFirstIdentifier,\n  getFirstNonSpaceCharacterPosition: () => getFirstNonSpaceCharacterPosition,\n  getFirstProjectOutput: () => getFirstProjectOutput,\n  getFixableErrorSpanExpression: () => getFixableErrorSpanExpression,\n  getFormatCodeSettingsForWriting: () => getFormatCodeSettingsForWriting,\n  getFullWidth: () => getFullWidth,\n  getFunctionFlags: () => getFunctionFlags,\n  getHeritageClause: () => getHeritageClause,\n  getHostSignatureFromJSDoc: () => getHostSignatureFromJSDoc,\n  getIdentifierAutoGenerate: () => getIdentifierAutoGenerate,\n  getIdentifierGeneratedImportReference: () => getIdentifierGeneratedImportReference,\n  getIdentifierTypeArguments: () => getIdentifierTypeArguments,\n  getImmediatelyInvokedFunctionExpression: () => getImmediatelyInvokedFunctionExpression,\n  getImpliedNodeFormatForEmitWorker: () => getImpliedNodeFormatForEmitWorker,\n  getImpliedNodeFormatForFile: () => getImpliedNodeFormatForFile,\n  getImpliedNodeFormatForFileWorker: () => getImpliedNodeFormatForFileWorker,\n  getImportNeedsImportDefaultHelper: () => getImportNeedsImportDefaultHelper,\n  getImportNeedsImportStarHelper: () => getImportNeedsImportStarHelper,\n  getIndentString: () => getIndentString,\n  getInferredLibraryNameResolveFrom: () => getInferredLibraryNameResolveFrom,\n  getInitializedVariables: () => getInitializedVariables,\n  getInitializerOfBinaryExpression: () => getInitializerOfBinaryExpression,\n  getInitializerOfBindingOrAssignmentElement: () => getInitializerOfBindingOrAssignmentElement,\n  getInterfaceBaseTypeNodes: () => getInterfaceBaseTypeNodes,\n  getInternalEmitFlags: () => getInternalEmitFlags,\n  getInvokedExpression: () => getInvokedExpression,\n  getIsFileExcluded: () => getIsFileExcluded,\n  getIsolatedModules: () => getIsolatedModules,\n  getJSDocAugmentsTag: () => getJSDocAugmentsTag,\n  getJSDocClassTag: () => getJSDocClassTag,\n  getJSDocCommentRanges: () => getJSDocCommentRanges,\n  getJSDocCommentsAndTags: () => getJSDocCommentsAndTags,\n  getJSDocDeprecatedTag: () => getJSDocDeprecatedTag,\n  getJSDocDeprecatedTagNoCache: () => getJSDocDeprecatedTagNoCache,\n  getJSDocEnumTag: () => getJSDocEnumTag,\n  getJSDocHost: () => getJSDocHost,\n  getJSDocImplementsTags: () => getJSDocImplementsTags,\n  getJSDocOverloadTags: () => getJSDocOverloadTags,\n  getJSDocOverrideTagNoCache: () => getJSDocOverrideTagNoCache,\n  getJSDocParameterTags: () => getJSDocParameterTags,\n  getJSDocParameterTagsNoCache: () => getJSDocParameterTagsNoCache,\n  getJSDocPrivateTag: () => getJSDocPrivateTag,\n  getJSDocPrivateTagNoCache: () => getJSDocPrivateTagNoCache,\n  getJSDocProtectedTag: () => getJSDocProtectedTag,\n  getJSDocProtectedTagNoCache: () => getJSDocProtectedTagNoCache,\n  getJSDocPublicTag: () => getJSDocPublicTag,\n  getJSDocPublicTagNoCache: () => getJSDocPublicTagNoCache,\n  getJSDocReadonlyTag: () => getJSDocReadonlyTag,\n  getJSDocReadonlyTagNoCache: () => getJSDocReadonlyTagNoCache,\n  getJSDocReturnTag: () => getJSDocReturnTag,\n  getJSDocReturnType: () => getJSDocReturnType,\n  getJSDocRoot: () => getJSDocRoot,\n  getJSDocSatisfiesExpressionType: () => getJSDocSatisfiesExpressionType,\n  getJSDocSatisfiesTag: () => getJSDocSatisfiesTag,\n  getJSDocTags: () => getJSDocTags,\n  getJSDocTemplateTag: () => getJSDocTemplateTag,\n  getJSDocThisTag: () => getJSDocThisTag,\n  getJSDocType: () => getJSDocType,\n  getJSDocTypeAliasName: () => getJSDocTypeAliasName,\n  getJSDocTypeAssertionType: () => getJSDocTypeAssertionType,\n  getJSDocTypeParameterDeclarations: () => getJSDocTypeParameterDeclarations,\n  getJSDocTypeParameterTags: () => getJSDocTypeParameterTags,\n  getJSDocTypeParameterTagsNoCache: () => getJSDocTypeParameterTagsNoCache,\n  getJSDocTypeTag: () => getJSDocTypeTag,\n  getJSXImplicitImportBase: () => getJSXImplicitImportBase,\n  getJSXRuntimeImport: () => getJSXRuntimeImport,\n  getJSXTransformEnabled: () => getJSXTransformEnabled,\n  getKeyForCompilerOptions: () => getKeyForCompilerOptions,\n  getLanguageVariant: () => getLanguageVariant,\n  getLastChild: () => getLastChild,\n  getLeadingCommentRanges: () => getLeadingCommentRanges,\n  getLeadingCommentRangesOfNode: () => getLeadingCommentRangesOfNode,\n  getLeftmostAccessExpression: () => getLeftmostAccessExpression,\n  getLeftmostExpression: () => getLeftmostExpression,\n  getLibFileNameFromLibReference: () => getLibFileNameFromLibReference,\n  getLibNameFromLibReference: () => getLibNameFromLibReference,\n  getLibraryNameFromLibFileName: () => getLibraryNameFromLibFileName,\n  getLineAndCharacterOfPosition: () => getLineAndCharacterOfPosition,\n  getLineInfo: () => getLineInfo,\n  getLineOfLocalPosition: () => getLineOfLocalPosition,\n  getLineStartPositionForPosition: () => getLineStartPositionForPosition,\n  getLineStarts: () => getLineStarts,\n  getLinesBetweenPositionAndNextNonWhitespaceCharacter: () => getLinesBetweenPositionAndNextNonWhitespaceCharacter,\n  getLinesBetweenPositionAndPrecedingNonWhitespaceCharacter: () => getLinesBetweenPositionAndPrecedingNonWhitespaceCharacter,\n  getLinesBetweenPositions: () => getLinesBetweenPositions,\n  getLinesBetweenRangeEndAndRangeStart: () => getLinesBetweenRangeEndAndRangeStart,\n  getLinesBetweenRangeEndPositions: () => getLinesBetweenRangeEndPositions,\n  getLiteralText: () => getLiteralText,\n  getLocalNameForExternalImport: () => getLocalNameForExternalImport,\n  getLocalSymbolForExportDefault: () => getLocalSymbolForExportDefault,\n  getLocaleSpecificMessage: () => getLocaleSpecificMessage,\n  getLocaleTimeString: () => getLocaleTimeString,\n  getMappedContextSpan: () => getMappedContextSpan,\n  getMappedDocumentSpan: () => getMappedDocumentSpan,\n  getMappedLocation: () => getMappedLocation,\n  getMatchedFileSpec: () => getMatchedFileSpec,\n  getMatchedIncludeSpec: () => getMatchedIncludeSpec,\n  getMeaningFromDeclaration: () => getMeaningFromDeclaration,\n  getMeaningFromLocation: () => getMeaningFromLocation,\n  getMembersOfDeclaration: () => getMembersOfDeclaration,\n  getModeForFileReference: () => getModeForFileReference,\n  getModeForResolutionAtIndex: () => getModeForResolutionAtIndex,\n  getModeForUsageLocation: () => getModeForUsageLocation,\n  getModifiedTime: () => getModifiedTime,\n  getModifiers: () => getModifiers,\n  getModuleInstanceState: () => getModuleInstanceState,\n  getModuleNameStringLiteralAt: () => getModuleNameStringLiteralAt,\n  getModuleSpecifierEndingPreference: () => getModuleSpecifierEndingPreference,\n  getModuleSpecifierResolverHost: () => getModuleSpecifierResolverHost,\n  getNameForExportedSymbol: () => getNameForExportedSymbol,\n  getNameFromImportAttribute: () => getNameFromImportAttribute,\n  getNameFromIndexInfo: () => getNameFromIndexInfo,\n  getNameFromPropertyName: () => getNameFromPropertyName,\n  getNameOfAccessExpression: () => getNameOfAccessExpression,\n  getNameOfCompilerOptionValue: () => getNameOfCompilerOptionValue,\n  getNameOfDeclaration: () => getNameOfDeclaration,\n  getNameOfExpando: () => getNameOfExpando,\n  getNameOfJSDocTypedef: () => getNameOfJSDocTypedef,\n  getNameOfScriptTarget: () => getNameOfScriptTarget,\n  getNameOrArgument: () => getNameOrArgument,\n  getNameTable: () => getNameTable,\n  getNamespaceDeclarationNode: () => getNamespaceDeclarationNode,\n  getNewLineCharacter: () => getNewLineCharacter,\n  getNewLineKind: () => getNewLineKind,\n  getNewLineOrDefaultFromHost: () => getNewLineOrDefaultFromHost,\n  getNewTargetContainer: () => getNewTargetContainer,\n  getNextJSDocCommentLocation: () => getNextJSDocCommentLocation,\n  getNodeChildren: () => getNodeChildren,\n  getNodeForGeneratedName: () => getNodeForGeneratedName,\n  getNodeId: () => getNodeId,\n  getNodeKind: () => getNodeKind,\n  getNodeModifiers: () => getNodeModifiers,\n  getNodeModulePathParts: () => getNodeModulePathParts,\n  getNonAssignedNameOfDeclaration: () => getNonAssignedNameOfDeclaration,\n  getNonAssignmentOperatorForCompoundAssignment: () => getNonAssignmentOperatorForCompoundAssignment,\n  getNonAugmentationDeclaration: () => getNonAugmentationDeclaration,\n  getNonDecoratorTokenPosOfNode: () => getNonDecoratorTokenPosOfNode,\n  getNonIncrementalBuildInfoRoots: () => getNonIncrementalBuildInfoRoots,\n  getNonModifierTokenPosOfNode: () => getNonModifierTokenPosOfNode,\n  getNormalizedAbsolutePath: () => getNormalizedAbsolutePath,\n  getNormalizedAbsolutePathWithoutRoot: () => getNormalizedAbsolutePathWithoutRoot,\n  getNormalizedPathComponents: () => getNormalizedPathComponents,\n  getObjectFlags: () => getObjectFlags,\n  getOperatorAssociativity: () => getOperatorAssociativity,\n  getOperatorPrecedence: () => getOperatorPrecedence,\n  getOptionFromName: () => getOptionFromName,\n  getOptionsForLibraryResolution: () => getOptionsForLibraryResolution,\n  getOptionsNameMap: () => getOptionsNameMap,\n  getOptionsSyntaxByArrayElementValue: () => getOptionsSyntaxByArrayElementValue,\n  getOptionsSyntaxByValue: () => getOptionsSyntaxByValue,\n  getOrCreateEmitNode: () => getOrCreateEmitNode,\n  getOrUpdate: () => getOrUpdate,\n  getOriginalNode: () => getOriginalNode,\n  getOriginalNodeId: () => getOriginalNodeId,\n  getOutputDeclarationFileName: () => getOutputDeclarationFileName,\n  getOutputDeclarationFileNameWorker: () => getOutputDeclarationFileNameWorker,\n  getOutputExtension: () => getOutputExtension,\n  getOutputFileNames: () => getOutputFileNames,\n  getOutputJSFileNameWorker: () => getOutputJSFileNameWorker,\n  getOutputPathsFor: () => getOutputPathsFor,\n  getOwnEmitOutputFilePath: () => getOwnEmitOutputFilePath,\n  getOwnKeys: () => getOwnKeys,\n  getOwnValues: () => getOwnValues,\n  getPackageJsonTypesVersionsPaths: () => getPackageJsonTypesVersionsPaths,\n  getPackageNameFromTypesPackageName: () => getPackageNameFromTypesPackageName,\n  getPackageScopeForPath: () => getPackageScopeForPath,\n  getParameterSymbolFromJSDoc: () => getParameterSymbolFromJSDoc,\n  getParentNodeInSpan: () => getParentNodeInSpan,\n  getParseTreeNode: () => getParseTreeNode,\n  getParsedCommandLineOfConfigFile: () => getParsedCommandLineOfConfigFile,\n  getPathComponents: () => getPathComponents,\n  getPathFromPathComponents: () => getPathFromPathComponents,\n  getPathUpdater: () => getPathUpdater,\n  getPathsBasePath: () => getPathsBasePath,\n  getPatternFromSpec: () => getPatternFromSpec,\n  getPendingEmitKindWithSeen: () => getPendingEmitKindWithSeen,\n  getPositionOfLineAndCharacter: () => getPositionOfLineAndCharacter,\n  getPossibleGenericSignatures: () => getPossibleGenericSignatures,\n  getPossibleOriginalInputExtensionForExtension: () => getPossibleOriginalInputExtensionForExtension,\n  getPossibleOriginalInputPathWithoutChangingExt: () => getPossibleOriginalInputPathWithoutChangingExt,\n  getPossibleTypeArgumentsInfo: () => getPossibleTypeArgumentsInfo,\n  getPreEmitDiagnostics: () => getPreEmitDiagnostics,\n  getPrecedingNonSpaceCharacterPosition: () => getPrecedingNonSpaceCharacterPosition,\n  getPrivateIdentifier: () => getPrivateIdentifier,\n  getProperties: () => getProperties,\n  getProperty: () => getProperty,\n  getPropertyAssignmentAliasLikeExpression: () => getPropertyAssignmentAliasLikeExpression,\n  getPropertyNameForPropertyNameNode: () => getPropertyNameForPropertyNameNode,\n  getPropertyNameFromType: () => getPropertyNameFromType,\n  getPropertyNameOfBindingOrAssignmentElement: () => getPropertyNameOfBindingOrAssignmentElement,\n  getPropertySymbolFromBindingElement: () => getPropertySymbolFromBindingElement,\n  getPropertySymbolsFromContextualType: () => getPropertySymbolsFromContextualType,\n  getQuoteFromPreference: () => getQuoteFromPreference,\n  getQuotePreference: () => getQuotePreference,\n  getRangesWhere: () => getRangesWhere,\n  getRefactorContextSpan: () => getRefactorContextSpan,\n  getReferencedFileLocation: () => getReferencedFileLocation,\n  getRegexFromPattern: () => getRegexFromPattern,\n  getRegularExpressionForWildcard: () => getRegularExpressionForWildcard,\n  getRegularExpressionsForWildcards: () => getRegularExpressionsForWildcards,\n  getRelativePathFromDirectory: () => getRelativePathFromDirectory,\n  getRelativePathFromFile: () => getRelativePathFromFile,\n  getRelativePathToDirectoryOrUrl: () => getRelativePathToDirectoryOrUrl,\n  getRenameLocation: () => getRenameLocation,\n  getReplacementSpanForContextToken: () => getReplacementSpanForContextToken,\n  getResolutionDiagnostic: () => getResolutionDiagnostic,\n  getResolutionModeOverride: () => getResolutionModeOverride,\n  getResolveJsonModule: () => getResolveJsonModule,\n  getResolvePackageJsonExports: () => getResolvePackageJsonExports,\n  getResolvePackageJsonImports: () => getResolvePackageJsonImports,\n  getResolvedExternalModuleName: () => getResolvedExternalModuleName,\n  getResolvedModuleFromResolution: () => getResolvedModuleFromResolution,\n  getResolvedTypeReferenceDirectiveFromResolution: () => getResolvedTypeReferenceDirectiveFromResolution,\n  getRestIndicatorOfBindingOrAssignmentElement: () => getRestIndicatorOfBindingOrAssignmentElement,\n  getRestParameterElementType: () => getRestParameterElementType,\n  getRightMostAssignedExpression: () => getRightMostAssignedExpression,\n  getRootDeclaration: () => getRootDeclaration,\n  getRootDirectoryOfResolutionCache: () => getRootDirectoryOfResolutionCache,\n  getRootLength: () => getRootLength,\n  getScriptKind: () => getScriptKind,\n  getScriptKindFromFileName: () => getScriptKindFromFileName,\n  getScriptTargetFeatures: () => getScriptTargetFeatures,\n  getSelectedEffectiveModifierFlags: () => getSelectedEffectiveModifierFlags,\n  getSelectedSyntacticModifierFlags: () => getSelectedSyntacticModifierFlags,\n  getSemanticClassifications: () => getSemanticClassifications,\n  getSemanticJsxChildren: () => getSemanticJsxChildren,\n  getSetAccessorTypeAnnotationNode: () => getSetAccessorTypeAnnotationNode,\n  getSetAccessorValueParameter: () => getSetAccessorValueParameter,\n  getSetExternalModuleIndicator: () => getSetExternalModuleIndicator,\n  getShebang: () => getShebang,\n  getSingleVariableOfVariableStatement: () => getSingleVariableOfVariableStatement,\n  getSnapshotText: () => getSnapshotText,\n  getSnippetElement: () => getSnippetElement,\n  getSourceFileOfModule: () => getSourceFileOfModule,\n  getSourceFileOfNode: () => getSourceFileOfNode,\n  getSourceFilePathInNewDir: () => getSourceFilePathInNewDir,\n  getSourceFileVersionAsHashFromText: () => getSourceFileVersionAsHashFromText,\n  getSourceFilesToEmit: () => getSourceFilesToEmit,\n  getSourceMapRange: () => getSourceMapRange,\n  getSourceMapper: () => getSourceMapper,\n  getSourceTextOfNodeFromSourceFile: () => getSourceTextOfNodeFromSourceFile,\n  getSpanOfTokenAtPosition: () => getSpanOfTokenAtPosition,\n  getSpellingSuggestion: () => getSpellingSuggestion,\n  getStartPositionOfLine: () => getStartPositionOfLine,\n  getStartPositionOfRange: () => getStartPositionOfRange,\n  getStartsOnNewLine: () => getStartsOnNewLine,\n  getStaticPropertiesAndClassStaticBlock: () => getStaticPropertiesAndClassStaticBlock,\n  getStrictOptionValue: () => getStrictOptionValue,\n  getStringComparer: () => getStringComparer,\n  getSubPatternFromSpec: () => getSubPatternFromSpec,\n  getSuperCallFromStatement: () => getSuperCallFromStatement,\n  getSuperContainer: () => getSuperContainer,\n  getSupportedCodeFixes: () => getSupportedCodeFixes,\n  getSupportedExtensions: () => getSupportedExtensions,\n  getSupportedExtensionsWithJsonIfResolveJsonModule: () => getSupportedExtensionsWithJsonIfResolveJsonModule,\n  getSwitchedType: () => getSwitchedType,\n  getSymbolId: () => getSymbolId,\n  getSymbolNameForPrivateIdentifier: () => getSymbolNameForPrivateIdentifier,\n  getSymbolTarget: () => getSymbolTarget,\n  getSyntacticClassifications: () => getSyntacticClassifications,\n  getSyntacticModifierFlags: () => getSyntacticModifierFlags,\n  getSyntacticModifierFlagsNoCache: () => getSyntacticModifierFlagsNoCache,\n  getSynthesizedDeepClone: () => getSynthesizedDeepClone,\n  getSynthesizedDeepCloneWithReplacements: () => getSynthesizedDeepCloneWithReplacements,\n  getSynthesizedDeepClones: () => getSynthesizedDeepClones,\n  getSynthesizedDeepClonesWithReplacements: () => getSynthesizedDeepClonesWithReplacements,\n  getSyntheticLeadingComments: () => getSyntheticLeadingComments,\n  getSyntheticTrailingComments: () => getSyntheticTrailingComments,\n  getTargetLabel: () => getTargetLabel,\n  getTargetOfBindingOrAssignmentElement: () => getTargetOfBindingOrAssignmentElement,\n  getTemporaryModuleResolutionState: () => getTemporaryModuleResolutionState,\n  getTextOfConstantValue: () => getTextOfConstantValue,\n  getTextOfIdentifierOrLiteral: () => getTextOfIdentifierOrLiteral,\n  getTextOfJSDocComment: () => getTextOfJSDocComment,\n  getTextOfJsxAttributeName: () => getTextOfJsxAttributeName,\n  getTextOfJsxNamespacedName: () => getTextOfJsxNamespacedName,\n  getTextOfNode: () => getTextOfNode,\n  getTextOfNodeFromSourceText: () => getTextOfNodeFromSourceText,\n  getTextOfPropertyName: () => getTextOfPropertyName,\n  getThisContainer: () => getThisContainer,\n  getThisParameter: () => getThisParameter,\n  getTokenAtPosition: () => getTokenAtPosition,\n  getTokenPosOfNode: () => getTokenPosOfNode,\n  getTokenSourceMapRange: () => getTokenSourceMapRange,\n  getTouchingPropertyName: () => getTouchingPropertyName,\n  getTouchingToken: () => getTouchingToken,\n  getTrailingCommentRanges: () => getTrailingCommentRanges,\n  getTrailingSemicolonDeferringWriter: () => getTrailingSemicolonDeferringWriter,\n  getTransformers: () => getTransformers,\n  getTsBuildInfoEmitOutputFilePath: () => getTsBuildInfoEmitOutputFilePath,\n  getTsConfigObjectLiteralExpression: () => getTsConfigObjectLiteralExpression,\n  getTsConfigPropArrayElementValue: () => getTsConfigPropArrayElementValue,\n  getTypeAnnotationNode: () => getTypeAnnotationNode,\n  getTypeArgumentOrTypeParameterList: () => getTypeArgumentOrTypeParameterList,\n  getTypeKeywordOfTypeOnlyImport: () => getTypeKeywordOfTypeOnlyImport,\n  getTypeNode: () => getTypeNode,\n  getTypeNodeIfAccessible: () => getTypeNodeIfAccessible,\n  getTypeParameterFromJsDoc: () => getTypeParameterFromJsDoc,\n  getTypeParameterOwner: () => getTypeParameterOwner,\n  getTypesPackageName: () => getTypesPackageName,\n  getUILocale: () => getUILocale,\n  getUniqueName: () => getUniqueName,\n  getUniqueSymbolId: () => getUniqueSymbolId,\n  getUseDefineForClassFields: () => getUseDefineForClassFields,\n  getWatchErrorSummaryDiagnosticMessage: () => getWatchErrorSummaryDiagnosticMessage,\n  getWatchFactory: () => getWatchFactory,\n  group: () => group,\n  groupBy: () => groupBy,\n  guessIndentation: () => guessIndentation,\n  handleNoEmitOptions: () => handleNoEmitOptions,\n  handleWatchOptionsConfigDirTemplateSubstitution: () => handleWatchOptionsConfigDirTemplateSubstitution,\n  hasAbstractModifier: () => hasAbstractModifier,\n  hasAccessorModifier: () => hasAccessorModifier,\n  hasAmbientModifier: () => hasAmbientModifier,\n  hasChangesInResolutions: () => hasChangesInResolutions,\n  hasContextSensitiveParameters: () => hasContextSensitiveParameters,\n  hasDecorators: () => hasDecorators,\n  hasDocComment: () => hasDocComment,\n  hasDynamicName: () => hasDynamicName,\n  hasEffectiveModifier: () => hasEffectiveModifier,\n  hasEffectiveModifiers: () => hasEffectiveModifiers,\n  hasEffectiveReadonlyModifier: () => hasEffectiveReadonlyModifier,\n  hasExtension: () => hasExtension,\n  hasImplementationTSFileExtension: () => hasImplementationTSFileExtension,\n  hasIndexSignature: () => hasIndexSignature,\n  hasInferredType: () => hasInferredType,\n  hasInitializer: () => hasInitializer,\n  hasInvalidEscape: () => hasInvalidEscape,\n  hasJSDocNodes: () => hasJSDocNodes,\n  hasJSDocParameterTags: () => hasJSDocParameterTags,\n  hasJSFileExtension: () => hasJSFileExtension,\n  hasJsonModuleEmitEnabled: () => hasJsonModuleEmitEnabled,\n  hasOnlyExpressionInitializer: () => hasOnlyExpressionInitializer,\n  hasOverrideModifier: () => hasOverrideModifier,\n  hasPossibleExternalModuleReference: () => hasPossibleExternalModuleReference,\n  hasProperty: () => hasProperty,\n  hasPropertyAccessExpressionWithName: () => hasPropertyAccessExpressionWithName,\n  hasQuestionToken: () => hasQuestionToken,\n  hasRecordedExternalHelpers: () => hasRecordedExternalHelpers,\n  hasResolutionModeOverride: () => hasResolutionModeOverride,\n  hasRestParameter: () => hasRestParameter,\n  hasScopeMarker: () => hasScopeMarker,\n  hasStaticModifier: () => hasStaticModifier,\n  hasSyntacticModifier: () => hasSyntacticModifier,\n  hasSyntacticModifiers: () => hasSyntacticModifiers,\n  hasTSFileExtension: () => hasTSFileExtension,\n  hasTabstop: () => hasTabstop,\n  hasTrailingDirectorySeparator: () => hasTrailingDirectorySeparator,\n  hasType: () => hasType,\n  hasTypeArguments: () => hasTypeArguments,\n  hasZeroOrOneAsteriskCharacter: () => hasZeroOrOneAsteriskCharacter,\n  hostGetCanonicalFileName: () => hostGetCanonicalFileName,\n  hostUsesCaseSensitiveFileNames: () => hostUsesCaseSensitiveFileNames,\n  idText: () => idText,\n  identifierIsThisKeyword: () => identifierIsThisKeyword,\n  identifierToKeywordKind: () => identifierToKeywordKind,\n  identity: () => identity,\n  identitySourceMapConsumer: () => identitySourceMapConsumer,\n  ignoreSourceNewlines: () => ignoreSourceNewlines,\n  ignoredPaths: () => ignoredPaths,\n  importFromModuleSpecifier: () => importFromModuleSpecifier,\n  importSyntaxAffectsModuleResolution: () => importSyntaxAffectsModuleResolution,\n  indexOfAnyCharCode: () => indexOfAnyCharCode,\n  indexOfNode: () => indexOfNode,\n  indicesOf: () => indicesOf,\n  inferredTypesContainingFile: () => inferredTypesContainingFile,\n  injectClassNamedEvaluationHelperBlockIfMissing: () => injectClassNamedEvaluationHelperBlockIfMissing,\n  injectClassThisAssignmentIfMissing: () => injectClassThisAssignmentIfMissing,\n  insertImports: () => insertImports,\n  insertSorted: () => insertSorted,\n  insertStatementAfterCustomPrologue: () => insertStatementAfterCustomPrologue,\n  insertStatementAfterStandardPrologue: () => insertStatementAfterStandardPrologue,\n  insertStatementsAfterCustomPrologue: () => insertStatementsAfterCustomPrologue,\n  insertStatementsAfterStandardPrologue: () => insertStatementsAfterStandardPrologue,\n  intersperse: () => intersperse,\n  intrinsicTagNameToString: () => intrinsicTagNameToString,\n  introducesArgumentsExoticObject: () => introducesArgumentsExoticObject,\n  inverseJsxOptionMap: () => inverseJsxOptionMap,\n  isAbstractConstructorSymbol: () => isAbstractConstructorSymbol,\n  isAbstractModifier: () => isAbstractModifier,\n  isAccessExpression: () => isAccessExpression,\n  isAccessibilityModifier: () => isAccessibilityModifier,\n  isAccessor: () => isAccessor,\n  isAccessorModifier: () => isAccessorModifier,\n  isAliasableExpression: () => isAliasableExpression,\n  isAmbientModule: () => isAmbientModule,\n  isAmbientPropertyDeclaration: () => isAmbientPropertyDeclaration,\n  isAnyDirectorySeparator: () => isAnyDirectorySeparator,\n  isAnyImportOrBareOrAccessedRequire: () => isAnyImportOrBareOrAccessedRequire,\n  isAnyImportOrReExport: () => isAnyImportOrReExport,\n  isAnyImportOrRequireStatement: () => isAnyImportOrRequireStatement,\n  isAnyImportSyntax: () => isAnyImportSyntax,\n  isAnySupportedFileExtension: () => isAnySupportedFileExtension,\n  isApplicableVersionedTypesKey: () => isApplicableVersionedTypesKey,\n  isArgumentExpressionOfElementAccess: () => isArgumentExpressionOfElementAccess,\n  isArray: () => isArray,\n  isArrayBindingElement: () => isArrayBindingElement,\n  isArrayBindingOrAssignmentElement: () => isArrayBindingOrAssignmentElement,\n  isArrayBindingOrAssignmentPattern: () => isArrayBindingOrAssignmentPattern,\n  isArrayBindingPattern: () => isArrayBindingPattern,\n  isArrayLiteralExpression: () => isArrayLiteralExpression,\n  isArrayLiteralOrObjectLiteralDestructuringPattern: () => isArrayLiteralOrObjectLiteralDestructuringPattern,\n  isArrayTypeNode: () => isArrayTypeNode,\n  isArrowFunction: () => isArrowFunction,\n  isAsExpression: () => isAsExpression,\n  isAssertClause: () => isAssertClause,\n  isAssertEntry: () => isAssertEntry,\n  isAssertionExpression: () => isAssertionExpression,\n  isAssertsKeyword: () => isAssertsKeyword,\n  isAssignmentDeclaration: () => isAssignmentDeclaration,\n  isAssignmentExpression: () => isAssignmentExpression,\n  isAssignmentOperator: () => isAssignmentOperator,\n  isAssignmentPattern: () => isAssignmentPattern,\n  isAssignmentTarget: () => isAssignmentTarget,\n  isAsteriskToken: () => isAsteriskToken,\n  isAsyncFunction: () => isAsyncFunction,\n  isAsyncModifier: () => isAsyncModifier,\n  isAutoAccessorPropertyDeclaration: () => isAutoAccessorPropertyDeclaration,\n  isAwaitExpression: () => isAwaitExpression,\n  isAwaitKeyword: () => isAwaitKeyword,\n  isBigIntLiteral: () => isBigIntLiteral,\n  isBinaryExpression: () => isBinaryExpression,\n  isBinaryLogicalOperator: () => isBinaryLogicalOperator,\n  isBinaryOperatorToken: () => isBinaryOperatorToken,\n  isBindableObjectDefinePropertyCall: () => isBindableObjectDefinePropertyCall,\n  isBindableStaticAccessExpression: () => isBindableStaticAccessExpression,\n  isBindableStaticElementAccessExpression: () => isBindableStaticElementAccessExpression,\n  isBindableStaticNameExpression: () => isBindableStaticNameExpression,\n  isBindingElement: () => isBindingElement,\n  isBindingElementOfBareOrAccessedRequire: () => isBindingElementOfBareOrAccessedRequire,\n  isBindingName: () => isBindingName,\n  isBindingOrAssignmentElement: () => isBindingOrAssignmentElement,\n  isBindingOrAssignmentPattern: () => isBindingOrAssignmentPattern,\n  isBindingPattern: () => isBindingPattern,\n  isBlock: () => isBlock,\n  isBlockLike: () => isBlockLike,\n  isBlockOrCatchScoped: () => isBlockOrCatchScoped,\n  isBlockScope: () => isBlockScope,\n  isBlockScopedContainerTopLevel: () => isBlockScopedContainerTopLevel,\n  isBooleanLiteral: () => isBooleanLiteral,\n  isBreakOrContinueStatement: () => isBreakOrContinueStatement,\n  isBreakStatement: () => isBreakStatement,\n  isBuildCommand: () => isBuildCommand,\n  isBuildInfoFile: () => isBuildInfoFile,\n  isBuilderProgram: () => isBuilderProgram,\n  isBundle: () => isBundle,\n  isCallChain: () => isCallChain,\n  isCallExpression: () => isCallExpression,\n  isCallExpressionTarget: () => isCallExpressionTarget,\n  isCallLikeExpression: () => isCallLikeExpression,\n  isCallLikeOrFunctionLikeExpression: () => isCallLikeOrFunctionLikeExpression,\n  isCallOrNewExpression: () => isCallOrNewExpression,\n  isCallOrNewExpressionTarget: () => isCallOrNewExpressionTarget,\n  isCallSignatureDeclaration: () => isCallSignatureDeclaration,\n  isCallToHelper: () => isCallToHelper,\n  isCaseBlock: () => isCaseBlock,\n  isCaseClause: () => isCaseClause,\n  isCaseKeyword: () => isCaseKeyword,\n  isCaseOrDefaultClause: () => isCaseOrDefaultClause,\n  isCatchClause: () => isCatchClause,\n  isCatchClauseVariableDeclaration: () => isCatchClauseVariableDeclaration,\n  isCatchClauseVariableDeclarationOrBindingElement: () => isCatchClauseVariableDeclarationOrBindingElement,\n  isCheckJsEnabledForFile: () => isCheckJsEnabledForFile,\n  isCircularBuildOrder: () => isCircularBuildOrder,\n  isClassDeclaration: () => isClassDeclaration,\n  isClassElement: () => isClassElement,\n  isClassExpression: () => isClassExpression,\n  isClassInstanceProperty: () => isClassInstanceProperty,\n  isClassLike: () => isClassLike,\n  isClassMemberModifier: () => isClassMemberModifier,\n  isClassNamedEvaluationHelperBlock: () => isClassNamedEvaluationHelperBlock,\n  isClassOrTypeElement: () => isClassOrTypeElement,\n  isClassStaticBlockDeclaration: () => isClassStaticBlockDeclaration,\n  isClassThisAssignmentBlock: () => isClassThisAssignmentBlock,\n  isColonToken: () => isColonToken,\n  isCommaExpression: () => isCommaExpression,\n  isCommaListExpression: () => isCommaListExpression,\n  isCommaSequence: () => isCommaSequence,\n  isCommaToken: () => isCommaToken,\n  isComment: () => isComment,\n  isCommonJsExportPropertyAssignment: () => isCommonJsExportPropertyAssignment,\n  isCommonJsExportedExpression: () => isCommonJsExportedExpression,\n  isCompoundAssignment: () => isCompoundAssignment,\n  isComputedNonLiteralName: () => isComputedNonLiteralName,\n  isComputedPropertyName: () => isComputedPropertyName,\n  isConciseBody: () => isConciseBody,\n  isConditionalExpression: () => isConditionalExpression,\n  isConditionalTypeNode: () => isConditionalTypeNode,\n  isConstAssertion: () => isConstAssertion,\n  isConstTypeReference: () => isConstTypeReference,\n  isConstructSignatureDeclaration: () => isConstructSignatureDeclaration,\n  isConstructorDeclaration: () => isConstructorDeclaration,\n  isConstructorTypeNode: () => isConstructorTypeNode,\n  isContextualKeyword: () => isContextualKeyword,\n  isContinueStatement: () => isContinueStatement,\n  isCustomPrologue: () => isCustomPrologue,\n  isDebuggerStatement: () => isDebuggerStatement,\n  isDeclaration: () => isDeclaration,\n  isDeclarationBindingElement: () => isDeclarationBindingElement,\n  isDeclarationFileName: () => isDeclarationFileName,\n  isDeclarationName: () => isDeclarationName,\n  isDeclarationNameOfEnumOrNamespace: () => isDeclarationNameOfEnumOrNamespace,\n  isDeclarationReadonly: () => isDeclarationReadonly,\n  isDeclarationStatement: () => isDeclarationStatement,\n  isDeclarationWithTypeParameterChildren: () => isDeclarationWithTypeParameterChildren,\n  isDeclarationWithTypeParameters: () => isDeclarationWithTypeParameters,\n  isDecorator: () => isDecorator,\n  isDecoratorTarget: () => isDecoratorTarget,\n  isDefaultClause: () => isDefaultClause,\n  isDefaultImport: () => isDefaultImport,\n  isDefaultModifier: () => isDefaultModifier,\n  isDefaultedExpandoInitializer: () => isDefaultedExpandoInitializer,\n  isDeleteExpression: () => isDeleteExpression,\n  isDeleteTarget: () => isDeleteTarget,\n  isDeprecatedDeclaration: () => isDeprecatedDeclaration,\n  isDestructuringAssignment: () => isDestructuringAssignment,\n  isDiskPathRoot: () => isDiskPathRoot,\n  isDoStatement: () => isDoStatement,\n  isDocumentRegistryEntry: () => isDocumentRegistryEntry,\n  isDotDotDotToken: () => isDotDotDotToken,\n  isDottedName: () => isDottedName,\n  isDynamicName: () => isDynamicName,\n  isEffectiveExternalModule: () => isEffectiveExternalModule,\n  isEffectiveStrictModeSourceFile: () => isEffectiveStrictModeSourceFile,\n  isElementAccessChain: () => isElementAccessChain,\n  isElementAccessExpression: () => isElementAccessExpression,\n  isEmittedFileOfProgram: () => isEmittedFileOfProgram,\n  isEmptyArrayLiteral: () => isEmptyArrayLiteral,\n  isEmptyBindingElement: () => isEmptyBindingElement,\n  isEmptyBindingPattern: () => isEmptyBindingPattern,\n  isEmptyObjectLiteral: () => isEmptyObjectLiteral,\n  isEmptyStatement: () => isEmptyStatement,\n  isEmptyStringLiteral: () => isEmptyStringLiteral,\n  isEntityName: () => isEntityName,\n  isEntityNameExpression: () => isEntityNameExpression,\n  isEnumConst: () => isEnumConst,\n  isEnumDeclaration: () => isEnumDeclaration,\n  isEnumMember: () => isEnumMember,\n  isEqualityOperatorKind: () => isEqualityOperatorKind,\n  isEqualsGreaterThanToken: () => isEqualsGreaterThanToken,\n  isExclamationToken: () => isExclamationToken,\n  isExcludedFile: () => isExcludedFile,\n  isExclusivelyTypeOnlyImportOrExport: () => isExclusivelyTypeOnlyImportOrExport,\n  isExpandoPropertyDeclaration: () => isExpandoPropertyDeclaration,\n  isExportAssignment: () => isExportAssignment,\n  isExportDeclaration: () => isExportDeclaration,\n  isExportModifier: () => isExportModifier,\n  isExportName: () => isExportName,\n  isExportNamespaceAsDefaultDeclaration: () => isExportNamespaceAsDefaultDeclaration,\n  isExportOrDefaultModifier: () => isExportOrDefaultModifier,\n  isExportSpecifier: () => isExportSpecifier,\n  isExportsIdentifier: () => isExportsIdentifier,\n  isExportsOrModuleExportsOrAlias: () => isExportsOrModuleExportsOrAlias,\n  isExpression: () => isExpression,\n  isExpressionNode: () => isExpressionNode,\n  isExpressionOfExternalModuleImportEqualsDeclaration: () => isExpressionOfExternalModuleImportEqualsDeclaration,\n  isExpressionOfOptionalChainRoot: () => isExpressionOfOptionalChainRoot,\n  isExpressionStatement: () => isExpressionStatement,\n  isExpressionWithTypeArguments: () => isExpressionWithTypeArguments,\n  isExpressionWithTypeArgumentsInClassExtendsClause: () => isExpressionWithTypeArgumentsInClassExtendsClause,\n  isExternalModule: () => isExternalModule,\n  isExternalModuleAugmentation: () => isExternalModuleAugmentation,\n  isExternalModuleImportEqualsDeclaration: () => isExternalModuleImportEqualsDeclaration,\n  isExternalModuleIndicator: () => isExternalModuleIndicator,\n  isExternalModuleNameRelative: () => isExternalModuleNameRelative,\n  isExternalModuleReference: () => isExternalModuleReference,\n  isExternalModuleSymbol: () => isExternalModuleSymbol,\n  isExternalOrCommonJsModule: () => isExternalOrCommonJsModule,\n  isFileLevelReservedGeneratedIdentifier: () => isFileLevelReservedGeneratedIdentifier,\n  isFileLevelUniqueName: () => isFileLevelUniqueName,\n  isFileProbablyExternalModule: () => isFileProbablyExternalModule,\n  isFirstDeclarationOfSymbolParameter: () => isFirstDeclarationOfSymbolParameter,\n  isFixablePromiseHandler: () => isFixablePromiseHandler,\n  isForInOrOfStatement: () => isForInOrOfStatement,\n  isForInStatement: () => isForInStatement,\n  isForInitializer: () => isForInitializer,\n  isForOfStatement: () => isForOfStatement,\n  isForStatement: () => isForStatement,\n  isFullSourceFile: () => isFullSourceFile,\n  isFunctionBlock: () => isFunctionBlock,\n  isFunctionBody: () => isFunctionBody,\n  isFunctionDeclaration: () => isFunctionDeclaration,\n  isFunctionExpression: () => isFunctionExpression,\n  isFunctionExpressionOrArrowFunction: () => isFunctionExpressionOrArrowFunction,\n  isFunctionLike: () => isFunctionLike,\n  isFunctionLikeDeclaration: () => isFunctionLikeDeclaration,\n  isFunctionLikeKind: () => isFunctionLikeKind,\n  isFunctionLikeOrClassStaticBlockDeclaration: () => isFunctionLikeOrClassStaticBlockDeclaration,\n  isFunctionOrConstructorTypeNode: () => isFunctionOrConstructorTypeNode,\n  isFunctionOrModuleBlock: () => isFunctionOrModuleBlock,\n  isFunctionSymbol: () => isFunctionSymbol,\n  isFunctionTypeNode: () => isFunctionTypeNode,\n  isGeneratedIdentifier: () => isGeneratedIdentifier,\n  isGeneratedPrivateIdentifier: () => isGeneratedPrivateIdentifier,\n  isGetAccessor: () => isGetAccessor,\n  isGetAccessorDeclaration: () => isGetAccessorDeclaration,\n  isGetOrSetAccessorDeclaration: () => isGetOrSetAccessorDeclaration,\n  isGlobalScopeAugmentation: () => isGlobalScopeAugmentation,\n  isGlobalSourceFile: () => isGlobalSourceFile,\n  isGrammarError: () => isGrammarError,\n  isHeritageClause: () => isHeritageClause,\n  isHoistedFunction: () => isHoistedFunction,\n  isHoistedVariableStatement: () => isHoistedVariableStatement,\n  isIdentifier: () => isIdentifier,\n  isIdentifierANonContextualKeyword: () => isIdentifierANonContextualKeyword,\n  isIdentifierName: () => isIdentifierName,\n  isIdentifierOrThisTypeNode: () => isIdentifierOrThisTypeNode,\n  isIdentifierPart: () => isIdentifierPart,\n  isIdentifierStart: () => isIdentifierStart,\n  isIdentifierText: () => isIdentifierText,\n  isIdentifierTypePredicate: () => isIdentifierTypePredicate,\n  isIdentifierTypeReference: () => isIdentifierTypeReference,\n  isIfStatement: () => isIfStatement,\n  isIgnoredFileFromWildCardWatching: () => isIgnoredFileFromWildCardWatching,\n  isImplicitGlob: () => isImplicitGlob,\n  isImportAttribute: () => isImportAttribute,\n  isImportAttributeName: () => isImportAttributeName,\n  isImportAttributes: () => isImportAttributes,\n  isImportCall: () => isImportCall,\n  isImportClause: () => isImportClause,\n  isImportDeclaration: () => isImportDeclaration,\n  isImportEqualsDeclaration: () => isImportEqualsDeclaration,\n  isImportKeyword: () => isImportKeyword,\n  isImportMeta: () => isImportMeta,\n  isImportOrExportSpecifier: () => isImportOrExportSpecifier,\n  isImportOrExportSpecifierName: () => isImportOrExportSpecifierName,\n  isImportSpecifier: () => isImportSpecifier,\n  isImportTypeAssertionContainer: () => isImportTypeAssertionContainer,\n  isImportTypeNode: () => isImportTypeNode,\n  isImportable: () => isImportable,\n  isInComment: () => isInComment,\n  isInCompoundLikeAssignment: () => isInCompoundLikeAssignment,\n  isInExpressionContext: () => isInExpressionContext,\n  isInJSDoc: () => isInJSDoc,\n  isInJSFile: () => isInJSFile,\n  isInJSXText: () => isInJSXText,\n  isInJsonFile: () => isInJsonFile,\n  isInNonReferenceComment: () => isInNonReferenceComment,\n  isInReferenceComment: () => isInReferenceComment,\n  isInRightSideOfInternalImportEqualsDeclaration: () => isInRightSideOfInternalImportEqualsDeclaration,\n  isInString: () => isInString,\n  isInTemplateString: () => isInTemplateString,\n  isInTopLevelContext: () => isInTopLevelContext,\n  isInTypeQuery: () => isInTypeQuery,\n  isIncrementalBuildInfo: () => isIncrementalBuildInfo,\n  isIncrementalBundleEmitBuildInfo: () => isIncrementalBundleEmitBuildInfo,\n  isIncrementalCompilation: () => isIncrementalCompilation,\n  isIndexSignatureDeclaration: () => isIndexSignatureDeclaration,\n  isIndexedAccessTypeNode: () => isIndexedAccessTypeNode,\n  isInferTypeNode: () => isInferTypeNode,\n  isInfinityOrNaNString: () => isInfinityOrNaNString,\n  isInitializedProperty: () => isInitializedProperty,\n  isInitializedVariable: () => isInitializedVariable,\n  isInsideJsxElement: () => isInsideJsxElement,\n  isInsideJsxElementOrAttribute: () => isInsideJsxElementOrAttribute,\n  isInsideNodeModules: () => isInsideNodeModules,\n  isInsideTemplateLiteral: () => isInsideTemplateLiteral,\n  isInstanceOfExpression: () => isInstanceOfExpression,\n  isInstantiatedModule: () => isInstantiatedModule,\n  isInterfaceDeclaration: () => isInterfaceDeclaration,\n  isInternalDeclaration: () => isInternalDeclaration,\n  isInternalModuleImportEqualsDeclaration: () => isInternalModuleImportEqualsDeclaration,\n  isInternalName: () => isInternalName,\n  isIntersectionTypeNode: () => isIntersectionTypeNode,\n  isIntrinsicJsxName: () => isIntrinsicJsxName,\n  isIterationStatement: () => isIterationStatement,\n  isJSDoc: () => isJSDoc,\n  isJSDocAllType: () => isJSDocAllType,\n  isJSDocAugmentsTag: () => isJSDocAugmentsTag,\n  isJSDocAuthorTag: () => isJSDocAuthorTag,\n  isJSDocCallbackTag: () => isJSDocCallbackTag,\n  isJSDocClassTag: () => isJSDocClassTag,\n  isJSDocCommentContainingNode: () => isJSDocCommentContainingNode,\n  isJSDocConstructSignature: () => isJSDocConstructSignature,\n  isJSDocDeprecatedTag: () => isJSDocDeprecatedTag,\n  isJSDocEnumTag: () => isJSDocEnumTag,\n  isJSDocFunctionType: () => isJSDocFunctionType,\n  isJSDocImplementsTag: () => isJSDocImplementsTag,\n  isJSDocImportTag: () => isJSDocImportTag,\n  isJSDocIndexSignature: () => isJSDocIndexSignature,\n  isJSDocLikeText: () => isJSDocLikeText,\n  isJSDocLink: () => isJSDocLink,\n  isJSDocLinkCode: () => isJSDocLinkCode,\n  isJSDocLinkLike: () => isJSDocLinkLike,\n  isJSDocLinkPlain: () => isJSDocLinkPlain,\n  isJSDocMemberName: () => isJSDocMemberName,\n  isJSDocNameReference: () => isJSDocNameReference,\n  isJSDocNamepathType: () => isJSDocNamepathType,\n  isJSDocNamespaceBody: () => isJSDocNamespaceBody,\n  isJSDocNode: () => isJSDocNode,\n  isJSDocNonNullableType: () => isJSDocNonNullableType,\n  isJSDocNullableType: () => isJSDocNullableType,\n  isJSDocOptionalParameter: () => isJSDocOptionalParameter,\n  isJSDocOptionalType: () => isJSDocOptionalType,\n  isJSDocOverloadTag: () => isJSDocOverloadTag,\n  isJSDocOverrideTag: () => isJSDocOverrideTag,\n  isJSDocParameterTag: () => isJSDocParameterTag,\n  isJSDocPrivateTag: () => isJSDocPrivateTag,\n  isJSDocPropertyLikeTag: () => isJSDocPropertyLikeTag,\n  isJSDocPropertyTag: () => isJSDocPropertyTag,\n  isJSDocProtectedTag: () => isJSDocProtectedTag,\n  isJSDocPublicTag: () => isJSDocPublicTag,\n  isJSDocReadonlyTag: () => isJSDocReadonlyTag,\n  isJSDocReturnTag: () => isJSDocReturnTag,\n  isJSDocSatisfiesExpression: () => isJSDocSatisfiesExpression,\n  isJSDocSatisfiesTag: () => isJSDocSatisfiesTag,\n  isJSDocSeeTag: () => isJSDocSeeTag,\n  isJSDocSignature: () => isJSDocSignature,\n  isJSDocTag: () => isJSDocTag,\n  isJSDocTemplateTag: () => isJSDocTemplateTag,\n  isJSDocThisTag: () => isJSDocThisTag,\n  isJSDocThrowsTag: () => isJSDocThrowsTag,\n  isJSDocTypeAlias: () => isJSDocTypeAlias,\n  isJSDocTypeAssertion: () => isJSDocTypeAssertion,\n  isJSDocTypeExpression: () => isJSDocTypeExpression,\n  isJSDocTypeLiteral: () => isJSDocTypeLiteral,\n  isJSDocTypeTag: () => isJSDocTypeTag,\n  isJSDocTypedefTag: () => isJSDocTypedefTag,\n  isJSDocUnknownTag: () => isJSDocUnknownTag,\n  isJSDocUnknownType: () => isJSDocUnknownType,\n  isJSDocVariadicType: () => isJSDocVariadicType,\n  isJSXTagName: () => isJSXTagName,\n  isJsonEqual: () => isJsonEqual,\n  isJsonSourceFile: () => isJsonSourceFile,\n  isJsxAttribute: () => isJsxAttribute,\n  isJsxAttributeLike: () => isJsxAttributeLike,\n  isJsxAttributeName: () => isJsxAttributeName,\n  isJsxAttributes: () => isJsxAttributes,\n  isJsxCallLike: () => isJsxCallLike,\n  isJsxChild: () => isJsxChild,\n  isJsxClosingElement: () => isJsxClosingElement,\n  isJsxClosingFragment: () => isJsxClosingFragment,\n  isJsxElement: () => isJsxElement,\n  isJsxExpression: () => isJsxExpression,\n  isJsxFragment: () => isJsxFragment,\n  isJsxNamespacedName: () => isJsxNamespacedName,\n  isJsxOpeningElement: () => isJsxOpeningElement,\n  isJsxOpeningFragment: () => isJsxOpeningFragment,\n  isJsxOpeningLikeElement: () => isJsxOpeningLikeElement,\n  isJsxOpeningLikeElementTagName: () => isJsxOpeningLikeElementTagName,\n  isJsxSelfClosingElement: () => isJsxSelfClosingElement,\n  isJsxSpreadAttribute: () => isJsxSpreadAttribute,\n  isJsxTagNameExpression: () => isJsxTagNameExpression,\n  isJsxText: () => isJsxText,\n  isJumpStatementTarget: () => isJumpStatementTarget,\n  isKeyword: () => isKeyword,\n  isKeywordOrPunctuation: () => isKeywordOrPunctuation,\n  isKnownSymbol: () => isKnownSymbol,\n  isLabelName: () => isLabelName,\n  isLabelOfLabeledStatement: () => isLabelOfLabeledStatement,\n  isLabeledStatement: () => isLabeledStatement,\n  isLateVisibilityPaintedStatement: () => isLateVisibilityPaintedStatement,\n  isLeftHandSideExpression: () => isLeftHandSideExpression,\n  isLet: () => isLet,\n  isLineBreak: () => isLineBreak,\n  isLiteralComputedPropertyDeclarationName: () => isLiteralComputedPropertyDeclarationName,\n  isLiteralExpression: () => isLiteralExpression,\n  isLiteralExpressionOfObject: () => isLiteralExpressionOfObject,\n  isLiteralImportTypeNode: () => isLiteralImportTypeNode,\n  isLiteralKind: () => isLiteralKind,\n  isLiteralNameOfPropertyDeclarationOrIndexAccess: () => isLiteralNameOfPropertyDeclarationOrIndexAccess,\n  isLiteralTypeLiteral: () => isLiteralTypeLiteral,\n  isLiteralTypeNode: () => isLiteralTypeNode,\n  isLocalName: () => isLocalName,\n  isLogicalOperator: () => isLogicalOperator,\n  isLogicalOrCoalescingAssignmentExpression: () => isLogicalOrCoalescingAssignmentExpression,\n  isLogicalOrCoalescingAssignmentOperator: () => isLogicalOrCoalescingAssignmentOperator,\n  isLogicalOrCoalescingBinaryExpression: () => isLogicalOrCoalescingBinaryExpression,\n  isLogicalOrCoalescingBinaryOperator: () => isLogicalOrCoalescingBinaryOperator,\n  isMappedTypeNode: () => isMappedTypeNode,\n  isMemberName: () => isMemberName,\n  isMetaProperty: () => isMetaProperty,\n  isMethodDeclaration: () => isMethodDeclaration,\n  isMethodOrAccessor: () => isMethodOrAccessor,\n  isMethodSignature: () => isMethodSignature,\n  isMinusToken: () => isMinusToken,\n  isMissingDeclaration: () => isMissingDeclaration,\n  isMissingPackageJsonInfo: () => isMissingPackageJsonInfo,\n  isModifier: () => isModifier,\n  isModifierKind: () => isModifierKind,\n  isModifierLike: () => isModifierLike,\n  isModuleAugmentationExternal: () => isModuleAugmentationExternal,\n  isModuleBlock: () => isModuleBlock,\n  isModuleBody: () => isModuleBody,\n  isModuleDeclaration: () => isModuleDeclaration,\n  isModuleExportName: () => isModuleExportName,\n  isModuleExportsAccessExpression: () => isModuleExportsAccessExpression,\n  isModuleIdentifier: () => isModuleIdentifier,\n  isModuleName: () => isModuleName,\n  isModuleOrEnumDeclaration: () => isModuleOrEnumDeclaration,\n  isModuleReference: () => isModuleReference,\n  isModuleSpecifierLike: () => isModuleSpecifierLike,\n  isModuleWithStringLiteralName: () => isModuleWithStringLiteralName,\n  isNameOfFunctionDeclaration: () => isNameOfFunctionDeclaration,\n  isNameOfModuleDeclaration: () => isNameOfModuleDeclaration,\n  isNamedDeclaration: () => isNamedDeclaration,\n  isNamedEvaluation: () => isNamedEvaluation,\n  isNamedEvaluationSource: () => isNamedEvaluationSource,\n  isNamedExportBindings: () => isNamedExportBindings,\n  isNamedExports: () => isNamedExports,\n  isNamedImportBindings: () => isNamedImportBindings,\n  isNamedImports: () => isNamedImports,\n  isNamedImportsOrExports: () => isNamedImportsOrExports,\n  isNamedTupleMember: () => isNamedTupleMember,\n  isNamespaceBody: () => isNamespaceBody,\n  isNamespaceExport: () => isNamespaceExport,\n  isNamespaceExportDeclaration: () => isNamespaceExportDeclaration,\n  isNamespaceImport: () => isNamespaceImport,\n  isNamespaceReexportDeclaration: () => isNamespaceReexportDeclaration,\n  isNewExpression: () => isNewExpression,\n  isNewExpressionTarget: () => isNewExpressionTarget,\n  isNewScopeNode: () => isNewScopeNode,\n  isNoSubstitutionTemplateLiteral: () => isNoSubstitutionTemplateLiteral,\n  isNodeArray: () => isNodeArray,\n  isNodeArrayMultiLine: () => isNodeArrayMultiLine,\n  isNodeDescendantOf: () => isNodeDescendantOf,\n  isNodeKind: () => isNodeKind,\n  isNodeLikeSystem: () => isNodeLikeSystem,\n  isNodeModulesDirectory: () => isNodeModulesDirectory,\n  isNodeWithPossibleHoistedDeclaration: () => isNodeWithPossibleHoistedDeclaration,\n  isNonContextualKeyword: () => isNonContextualKeyword,\n  isNonGlobalAmbientModule: () => isNonGlobalAmbientModule,\n  isNonNullAccess: () => isNonNullAccess,\n  isNonNullChain: () => isNonNullChain,\n  isNonNullExpression: () => isNonNullExpression,\n  isNonStaticMethodOrAccessorWithPrivateName: () => isNonStaticMethodOrAccessorWithPrivateName,\n  isNotEmittedStatement: () => isNotEmittedStatement,\n  isNullishCoalesce: () => isNullishCoalesce,\n  isNumber: () => isNumber,\n  isNumericLiteral: () => isNumericLiteral,\n  isNumericLiteralName: () => isNumericLiteralName,\n  isObjectBindingElementWithoutPropertyName: () => isObjectBindingElementWithoutPropertyName,\n  isObjectBindingOrAssignmentElement: () => isObjectBindingOrAssignmentElement,\n  isObjectBindingOrAssignmentPattern: () => isObjectBindingOrAssignmentPattern,\n  isObjectBindingPattern: () => isObjectBindingPattern,\n  isObjectLiteralElement: () => isObjectLiteralElement,\n  isObjectLiteralElementLike: () => isObjectLiteralElementLike,\n  isObjectLiteralExpression: () => isObjectLiteralExpression,\n  isObjectLiteralMethod: () => isObjectLiteralMethod,\n  isObjectLiteralOrClassExpressionMethodOrAccessor: () => isObjectLiteralOrClassExpressionMethodOrAccessor,\n  isObjectTypeDeclaration: () => isObjectTypeDeclaration,\n  isOmittedExpression: () => isOmittedExpression,\n  isOptionalChain: () => isOptionalChain,\n  isOptionalChainRoot: () => isOptionalChainRoot,\n  isOptionalDeclaration: () => isOptionalDeclaration,\n  isOptionalJSDocPropertyLikeTag: () => isOptionalJSDocPropertyLikeTag,\n  isOptionalTypeNode: () => isOptionalTypeNode,\n  isOuterExpression: () => isOuterExpression,\n  isOutermostOptionalChain: () => isOutermostOptionalChain,\n  isOverrideModifier: () => isOverrideModifier,\n  isPackageJsonInfo: () => isPackageJsonInfo,\n  isPackedArrayLiteral: () => isPackedArrayLiteral,\n  isParameter: () => isParameter,\n  isParameterPropertyDeclaration: () => isParameterPropertyDeclaration,\n  isParameterPropertyModifier: () => isParameterPropertyModifier,\n  isParenthesizedExpression: () => isParenthesizedExpression,\n  isParenthesizedTypeNode: () => isParenthesizedTypeNode,\n  isParseTreeNode: () => isParseTreeNode,\n  isPartOfParameterDeclaration: () => isPartOfParameterDeclaration,\n  isPartOfTypeNode: () => isPartOfTypeNode,\n  isPartOfTypeOnlyImportOrExportDeclaration: () => isPartOfTypeOnlyImportOrExportDeclaration,\n  isPartOfTypeQuery: () => isPartOfTypeQuery,\n  isPartiallyEmittedExpression: () => isPartiallyEmittedExpression,\n  isPatternMatch: () => isPatternMatch,\n  isPinnedComment: () => isPinnedComment,\n  isPlainJsFile: () => isPlainJsFile,\n  isPlusToken: () => isPlusToken,\n  isPossiblyTypeArgumentPosition: () => isPossiblyTypeArgumentPosition,\n  isPostfixUnaryExpression: () => isPostfixUnaryExpression,\n  isPrefixUnaryExpression: () => isPrefixUnaryExpression,\n  isPrimitiveLiteralValue: () => isPrimitiveLiteralValue,\n  isPrivateIdentifier: () => isPrivateIdentifier,\n  isPrivateIdentifierClassElementDeclaration: () => isPrivateIdentifierClassElementDeclaration,\n  isPrivateIdentifierPropertyAccessExpression: () => isPrivateIdentifierPropertyAccessExpression,\n  isPrivateIdentifierSymbol: () => isPrivateIdentifierSymbol,\n  isProgramUptoDate: () => isProgramUptoDate,\n  isPrologueDirective: () => isPrologueDirective,\n  isPropertyAccessChain: () => isPropertyAccessChain,\n  isPropertyAccessEntityNameExpression: () => isPropertyAccessEntityNameExpression,\n  isPropertyAccessExpression: () => isPropertyAccessExpression,\n  isPropertyAccessOrQualifiedName: () => isPropertyAccessOrQualifiedName,\n  isPropertyAccessOrQualifiedNameOrImportTypeNode: () => isPropertyAccessOrQualifiedNameOrImportTypeNode,\n  isPropertyAssignment: () => isPropertyAssignment,\n  isPropertyDeclaration: () => isPropertyDeclaration,\n  isPropertyName: () => isPropertyName,\n  isPropertyNameLiteral: () => isPropertyNameLiteral,\n  isPropertySignature: () => isPropertySignature,\n  isPrototypeAccess: () => isPrototypeAccess,\n  isPrototypePropertyAssignment: () => isPrototypePropertyAssignment,\n  isPunctuation: () => isPunctuation,\n  isPushOrUnshiftIdentifier: () => isPushOrUnshiftIdentifier,\n  isQualifiedName: () => isQualifiedName,\n  isQuestionDotToken: () => isQuestionDotToken,\n  isQuestionOrExclamationToken: () => isQuestionOrExclamationToken,\n  isQuestionOrPlusOrMinusToken: () => isQuestionOrPlusOrMinusToken,\n  isQuestionToken: () => isQuestionToken,\n  isReadonlyKeyword: () => isReadonlyKeyword,\n  isReadonlyKeywordOrPlusOrMinusToken: () => isReadonlyKeywordOrPlusOrMinusToken,\n  isRecognizedTripleSlashComment: () => isRecognizedTripleSlashComment,\n  isReferenceFileLocation: () => isReferenceFileLocation,\n  isReferencedFile: () => isReferencedFile,\n  isRegularExpressionLiteral: () => isRegularExpressionLiteral,\n  isRequireCall: () => isRequireCall,\n  isRequireVariableStatement: () => isRequireVariableStatement,\n  isRestParameter: () => isRestParameter,\n  isRestTypeNode: () => isRestTypeNode,\n  isReturnStatement: () => isReturnStatement,\n  isReturnStatementWithFixablePromiseHandler: () => isReturnStatementWithFixablePromiseHandler,\n  isRightSideOfAccessExpression: () => isRightSideOfAccessExpression,\n  isRightSideOfInstanceofExpression: () => isRightSideOfInstanceofExpression,\n  isRightSideOfPropertyAccess: () => isRightSideOfPropertyAccess,\n  isRightSideOfQualifiedName: () => isRightSideOfQualifiedName,\n  isRightSideOfQualifiedNameOrPropertyAccess: () => isRightSideOfQualifiedNameOrPropertyAccess,\n  isRightSideOfQualifiedNameOrPropertyAccessOrJSDocMemberName: () => isRightSideOfQualifiedNameOrPropertyAccessOrJSDocMemberName,\n  isRootedDiskPath: () => isRootedDiskPath,\n  isSameEntityName: () => isSameEntityName,\n  isSatisfiesExpression: () => isSatisfiesExpression,\n  isSemicolonClassElement: () => isSemicolonClassElement,\n  isSetAccessor: () => isSetAccessor,\n  isSetAccessorDeclaration: () => isSetAccessorDeclaration,\n  isShiftOperatorOrHigher: () => isShiftOperatorOrHigher,\n  isShorthandAmbientModuleSymbol: () => isShorthandAmbientModuleSymbol,\n  isShorthandPropertyAssignment: () => isShorthandPropertyAssignment,\n  isSideEffectImport: () => isSideEffectImport,\n  isSignedNumericLiteral: () => isSignedNumericLiteral,\n  isSimpleCopiableExpression: () => isSimpleCopiableExpression,\n  isSimpleInlineableExpression: () => isSimpleInlineableExpression,\n  isSimpleParameterList: () => isSimpleParameterList,\n  isSingleOrDoubleQuote: () => isSingleOrDoubleQuote,\n  isSolutionConfig: () => isSolutionConfig,\n  isSourceElement: () => isSourceElement,\n  isSourceFile: () => isSourceFile,\n  isSourceFileFromLibrary: () => isSourceFileFromLibrary,\n  isSourceFileJS: () => isSourceFileJS,\n  isSourceFileNotJson: () => isSourceFileNotJson,\n  isSourceMapping: () => isSourceMapping,\n  isSpecialPropertyDeclaration: () => isSpecialPropertyDeclaration,\n  isSpreadAssignment: () => isSpreadAssignment,\n  isSpreadElement: () => isSpreadElement,\n  isStatement: () => isStatement,\n  isStatementButNotDeclaration: () => isStatementButNotDeclaration,\n  isStatementOrBlock: () => isStatementOrBlock,\n  isStatementWithLocals: () => isStatementWithLocals,\n  isStatic: () => isStatic,\n  isStaticModifier: () => isStaticModifier,\n  isString: () => isString,\n  isStringANonContextualKeyword: () => isStringANonContextualKeyword,\n  isStringAndEmptyAnonymousObjectIntersection: () => isStringAndEmptyAnonymousObjectIntersection,\n  isStringDoubleQuoted: () => isStringDoubleQuoted,\n  isStringLiteral: () => isStringLiteral,\n  isStringLiteralLike: () => isStringLiteralLike,\n  isStringLiteralOrJsxExpression: () => isStringLiteralOrJsxExpression,\n  isStringLiteralOrTemplate: () => isStringLiteralOrTemplate,\n  isStringOrNumericLiteralLike: () => isStringOrNumericLiteralLike,\n  isStringOrRegularExpressionOrTemplateLiteral: () => isStringOrRegularExpressionOrTemplateLiteral,\n  isStringTextContainingNode: () => isStringTextContainingNode,\n  isSuperCall: () => isSuperCall,\n  isSuperKeyword: () => isSuperKeyword,\n  isSuperProperty: () => isSuperProperty,\n  isSupportedSourceFileName: () => isSupportedSourceFileName,\n  isSwitchStatement: () => isSwitchStatement,\n  isSyntaxList: () => isSyntaxList,\n  isSyntheticExpression: () => isSyntheticExpression,\n  isSyntheticReference: () => isSyntheticReference,\n  isTagName: () => isTagName,\n  isTaggedTemplateExpression: () => isTaggedTemplateExpression,\n  isTaggedTemplateTag: () => isTaggedTemplateTag,\n  isTemplateExpression: () => isTemplateExpression,\n  isTemplateHead: () => isTemplateHead,\n  isTemplateLiteral: () => isTemplateLiteral,\n  isTemplateLiteralKind: () => isTemplateLiteralKind,\n  isTemplateLiteralToken: () => isTemplateLiteralToken,\n  isTemplateLiteralTypeNode: () => isTemplateLiteralTypeNode,\n  isTemplateLiteralTypeSpan: () => isTemplateLiteralTypeSpan,\n  isTemplateMiddle: () => isTemplateMiddle,\n  isTemplateMiddleOrTemplateTail: () => isTemplateMiddleOrTemplateTail,\n  isTemplateSpan: () => isTemplateSpan,\n  isTemplateTail: () => isTemplateTail,\n  isTextWhiteSpaceLike: () => isTextWhiteSpaceLike,\n  isThis: () => isThis,\n  isThisContainerOrFunctionBlock: () => isThisContainerOrFunctionBlock,\n  isThisIdentifier: () => isThisIdentifier,\n  isThisInTypeQuery: () => isThisInTypeQuery,\n  isThisInitializedDeclaration: () => isThisInitializedDeclaration,\n  isThisInitializedObjectBindingExpression: () => isThisInitializedObjectBindingExpression,\n  isThisProperty: () => isThisProperty,\n  isThisTypeNode: () => isThisTypeNode,\n  isThisTypeParameter: () => isThisTypeParameter,\n  isThisTypePredicate: () => isThisTypePredicate,\n  isThrowStatement: () => isThrowStatement,\n  isToken: () => isToken,\n  isTokenKind: () => isTokenKind,\n  isTraceEnabled: () => isTraceEnabled,\n  isTransientSymbol: () => isTransientSymbol,\n  isTrivia: () => isTrivia,\n  isTryStatement: () => isTryStatement,\n  isTupleTypeNode: () => isTupleTypeNode,\n  isTypeAlias: () => isTypeAlias,\n  isTypeAliasDeclaration: () => isTypeAliasDeclaration,\n  isTypeAssertionExpression: () => isTypeAssertionExpression,\n  isTypeDeclaration: () => isTypeDeclaration,\n  isTypeElement: () => isTypeElement,\n  isTypeKeyword: () => isTypeKeyword,\n  isTypeKeywordTokenOrIdentifier: () => isTypeKeywordTokenOrIdentifier,\n  isTypeLiteralNode: () => isTypeLiteralNode,\n  isTypeNode: () => isTypeNode,\n  isTypeNodeKind: () => isTypeNodeKind,\n  isTypeOfExpression: () => isTypeOfExpression,\n  isTypeOnlyExportDeclaration: () => isTypeOnlyExportDeclaration,\n  isTypeOnlyImportDeclaration: () => isTypeOnlyImportDeclaration,\n  isTypeOnlyImportOrExportDeclaration: () => isTypeOnlyImportOrExportDeclaration,\n  isTypeOperatorNode: () => isTypeOperatorNode,\n  isTypeParameterDeclaration: () => isTypeParameterDeclaration,\n  isTypePredicateNode: () => isTypePredicateNode,\n  isTypeQueryNode: () => isTypeQueryNode,\n  isTypeReferenceNode: () => isTypeReferenceNode,\n  isTypeReferenceType: () => isTypeReferenceType,\n  isTypeUsableAsPropertyName: () => isTypeUsableAsPropertyName,\n  isUMDExportSymbol: () => isUMDExportSymbol,\n  isUnaryExpression: () => isUnaryExpression,\n  isUnaryExpressionWithWrite: () => isUnaryExpressionWithWrite,\n  isUnicodeIdentifierStart: () => isUnicodeIdentifierStart,\n  isUnionTypeNode: () => isUnionTypeNode,\n  isUrl: () => isUrl,\n  isValidBigIntString: () => isValidBigIntString,\n  isValidESSymbolDeclaration: () => isValidESSymbolDeclaration,\n  isValidTypeOnlyAliasUseSite: () => isValidTypeOnlyAliasUseSite,\n  isValueSignatureDeclaration: () => isValueSignatureDeclaration,\n  isVarAwaitUsing: () => isVarAwaitUsing,\n  isVarConst: () => isVarConst,\n  isVarConstLike: () => isVarConstLike,\n  isVarUsing: () => isVarUsing,\n  isVariableDeclaration: () => isVariableDeclaration,\n  isVariableDeclarationInVariableStatement: () => isVariableDeclarationInVariableStatement,\n  isVariableDeclarationInitializedToBareOrAccessedRequire: () => isVariableDeclarationInitializedToBareOrAccessedRequire,\n  isVariableDeclarationInitializedToRequire: () => isVariableDeclarationInitializedToRequire,\n  isVariableDeclarationList: () => isVariableDeclarationList,\n  isVariableLike: () => isVariableLike,\n  isVariableStatement: () => isVariableStatement,\n  isVoidExpression: () => isVoidExpression,\n  isWatchSet: () => isWatchSet,\n  isWhileStatement: () => isWhileStatement,\n  isWhiteSpaceLike: () => isWhiteSpaceLike,\n  isWhiteSpaceSingleLine: () => isWhiteSpaceSingleLine,\n  isWithStatement: () => isWithStatement,\n  isWriteAccess: () => isWriteAccess,\n  isWriteOnlyAccess: () => isWriteOnlyAccess,\n  isYieldExpression: () => isYieldExpression,\n  jsxModeNeedsExplicitImport: () => jsxModeNeedsExplicitImport,\n  keywordPart: () => keywordPart,\n  last: () => last,\n  lastOrUndefined: () => lastOrUndefined,\n  length: () => length,\n  libMap: () => libMap,\n  libs: () => libs,\n  lineBreakPart: () => lineBreakPart,\n  loadModuleFromGlobalCache: () => loadModuleFromGlobalCache,\n  loadWithModeAwareCache: () => loadWithModeAwareCache,\n  makeIdentifierFromModuleName: () => makeIdentifierFromModuleName,\n  makeImport: () => makeImport,\n  makeStringLiteral: () => makeStringLiteral,\n  mangleScopedPackageName: () => mangleScopedPackageName,\n  map: () => map,\n  mapAllOrFail: () => mapAllOrFail,\n  mapDefined: () => mapDefined,\n  mapDefinedIterator: () => mapDefinedIterator,\n  mapEntries: () => mapEntries,\n  mapIterator: () => mapIterator,\n  mapOneOrMany: () => mapOneOrMany,\n  mapToDisplayParts: () => mapToDisplayParts,\n  matchFiles: () => matchFiles,\n  matchPatternOrExact: () => matchPatternOrExact,\n  matchedText: () => matchedText,\n  matchesExclude: () => matchesExclude,\n  matchesExcludeWorker: () => matchesExcludeWorker,\n  maxBy: () => maxBy,\n  maybeBind: () => maybeBind,\n  maybeSetLocalizedDiagnosticMessages: () => maybeSetLocalizedDiagnosticMessages,\n  memoize: () => memoize,\n  memoizeOne: () => memoizeOne,\n  min: () => min,\n  minAndMax: () => minAndMax,\n  missingFileModifiedTime: () => missingFileModifiedTime,\n  modifierToFlag: () => modifierToFlag,\n  modifiersToFlags: () => modifiersToFlags,\n  moduleExportNameIsDefault: () => moduleExportNameIsDefault,\n  moduleExportNameTextEscaped: () => moduleExportNameTextEscaped,\n  moduleExportNameTextUnescaped: () => moduleExportNameTextUnescaped,\n  moduleOptionDeclaration: () => moduleOptionDeclaration,\n  moduleResolutionIsEqualTo: () => moduleResolutionIsEqualTo,\n  moduleResolutionNameAndModeGetter: () => moduleResolutionNameAndModeGetter,\n  moduleResolutionOptionDeclarations: () => moduleResolutionOptionDeclarations,\n  moduleResolutionSupportsPackageJsonExportsAndImports: () => moduleResolutionSupportsPackageJsonExportsAndImports,\n  moduleResolutionUsesNodeModules: () => moduleResolutionUsesNodeModules,\n  moduleSpecifierToValidIdentifier: () => moduleSpecifierToValidIdentifier,\n  moduleSpecifiers: () => ts_moduleSpecifiers_exports,\n  moduleSupportsImportAttributes: () => moduleSupportsImportAttributes,\n  moduleSymbolToValidIdentifier: () => moduleSymbolToValidIdentifier,\n  moveEmitHelpers: () => moveEmitHelpers,\n  moveRangeEnd: () => moveRangeEnd,\n  moveRangePastDecorators: () => moveRangePastDecorators,\n  moveRangePastModifiers: () => moveRangePastModifiers,\n  moveRangePos: () => moveRangePos,\n  moveSyntheticComments: () => moveSyntheticComments,\n  mutateMap: () => mutateMap,\n  mutateMapSkippingNewValues: () => mutateMapSkippingNewValues,\n  needsParentheses: () => needsParentheses,\n  needsScopeMarker: () => needsScopeMarker,\n  newCaseClauseTracker: () => newCaseClauseTracker,\n  newPrivateEnvironment: () => newPrivateEnvironment,\n  noEmitNotification: () => noEmitNotification,\n  noEmitSubstitution: () => noEmitSubstitution,\n  noTransformers: () => noTransformers,\n  noTruncationMaximumTruncationLength: () => noTruncationMaximumTruncationLength,\n  nodeCanBeDecorated: () => nodeCanBeDecorated,\n  nodeCoreModules: () => nodeCoreModules,\n  nodeHasName: () => nodeHasName,\n  nodeIsDecorated: () => nodeIsDecorated,\n  nodeIsMissing: () => nodeIsMissing,\n  nodeIsPresent: () => nodeIsPresent,\n  nodeIsSynthesized: () => nodeIsSynthesized,\n  nodeModuleNameResolver: () => nodeModuleNameResolver,\n  nodeModulesPathPart: () => nodeModulesPathPart,\n  nodeNextJsonConfigResolver: () => nodeNextJsonConfigResolver,\n  nodeOrChildIsDecorated: () => nodeOrChildIsDecorated,\n  nodeOverlapsWithStartEnd: () => nodeOverlapsWithStartEnd,\n  nodePosToString: () => nodePosToString,\n  nodeSeenTracker: () => nodeSeenTracker,\n  nodeStartsNewLexicalEnvironment: () => nodeStartsNewLexicalEnvironment,\n  noop: () => noop,\n  noopFileWatcher: () => noopFileWatcher,\n  normalizePath: () => normalizePath,\n  normalizeSlashes: () => normalizeSlashes,\n  normalizeSpans: () => normalizeSpans,\n  not: () => not,\n  notImplemented: () => notImplemented,\n  notImplementedResolver: () => notImplementedResolver,\n  nullNodeConverters: () => nullNodeConverters,\n  nullParenthesizerRules: () => nullParenthesizerRules,\n  nullTransformationContext: () => nullTransformationContext,\n  objectAllocator: () => objectAllocator,\n  operatorPart: () => operatorPart,\n  optionDeclarations: () => optionDeclarations,\n  optionMapToObject: () => optionMapToObject,\n  optionsAffectingProgramStructure: () => optionsAffectingProgramStructure,\n  optionsForBuild: () => optionsForBuild,\n  optionsForWatch: () => optionsForWatch,\n  optionsHaveChanges: () => optionsHaveChanges,\n  or: () => or,\n  orderedRemoveItem: () => orderedRemoveItem,\n  orderedRemoveItemAt: () => orderedRemoveItemAt,\n  packageIdToPackageName: () => packageIdToPackageName,\n  packageIdToString: () => packageIdToString,\n  parameterIsThisKeyword: () => parameterIsThisKeyword,\n  parameterNamePart: () => parameterNamePart,\n  parseBaseNodeFactory: () => parseBaseNodeFactory,\n  parseBigInt: () => parseBigInt,\n  parseBuildCommand: () => parseBuildCommand,\n  parseCommandLine: () => parseCommandLine,\n  parseCommandLineWorker: () => parseCommandLineWorker,\n  parseConfigFileTextToJson: () => parseConfigFileTextToJson,\n  parseConfigFileWithSystem: () => parseConfigFileWithSystem,\n  parseConfigHostFromCompilerHostLike: () => parseConfigHostFromCompilerHostLike,\n  parseCustomTypeOption: () => parseCustomTypeOption,\n  parseIsolatedEntityName: () => parseIsolatedEntityName,\n  parseIsolatedJSDocComment: () => parseIsolatedJSDocComment,\n  parseJSDocTypeExpressionForTests: () => parseJSDocTypeExpressionForTests,\n  parseJsonConfigFileContent: () => parseJsonConfigFileContent,\n  parseJsonSourceFileConfigFileContent: () => parseJsonSourceFileConfigFileContent,\n  parseJsonText: () => parseJsonText,\n  parseListTypeOption: () => parseListTypeOption,\n  parseNodeFactory: () => parseNodeFactory,\n  parseNodeModuleFromPath: () => parseNodeModuleFromPath,\n  parsePackageName: () => parsePackageName,\n  parsePseudoBigInt: () => parsePseudoBigInt,\n  parseValidBigInt: () => parseValidBigInt,\n  pasteEdits: () => ts_PasteEdits_exports,\n  patchWriteFileEnsuringDirectory: () => patchWriteFileEnsuringDirectory,\n  pathContainsNodeModules: () => pathContainsNodeModules,\n  pathIsAbsolute: () => pathIsAbsolute,\n  pathIsBareSpecifier: () => pathIsBareSpecifier,\n  pathIsRelative: () => pathIsRelative,\n  patternText: () => patternText,\n  performIncrementalCompilation: () => performIncrementalCompilation,\n  performance: () => ts_performance_exports,\n  positionBelongsToNode: () => positionBelongsToNode,\n  positionIsASICandidate: () => positionIsASICandidate,\n  positionIsSynthesized: () => positionIsSynthesized,\n  positionsAreOnSameLine: () => positionsAreOnSameLine,\n  preProcessFile: () => preProcessFile,\n  probablyUsesSemicolons: () => probablyUsesSemicolons,\n  processCommentPragmas: () => processCommentPragmas,\n  processPragmasIntoFields: () => processPragmasIntoFields,\n  processTaggedTemplateExpression: () => processTaggedTemplateExpression,\n  programContainsEsModules: () => programContainsEsModules,\n  programContainsModules: () => programContainsModules,\n  projectReferenceIsEqualTo: () => projectReferenceIsEqualTo,\n  propertyNamePart: () => propertyNamePart,\n  pseudoBigIntToString: () => pseudoBigIntToString,\n  punctuationPart: () => punctuationPart,\n  pushIfUnique: () => pushIfUnique,\n  quote: () => quote,\n  quotePreferenceFromString: () => quotePreferenceFromString,\n  rangeContainsPosition: () => rangeContainsPosition,\n  rangeContainsPositionExclusive: () => rangeContainsPositionExclusive,\n  rangeContainsRange: () => rangeContainsRange,\n  rangeContainsRangeExclusive: () => rangeContainsRangeExclusive,\n  rangeContainsStartEnd: () => rangeContainsStartEnd,\n  rangeEndIsOnSameLineAsRangeStart: () => rangeEndIsOnSameLineAsRangeStart,\n  rangeEndPositionsAreOnSameLine: () => rangeEndPositionsAreOnSameLine,\n  rangeEquals: () => rangeEquals,\n  rangeIsOnSingleLine: () => rangeIsOnSingleLine,\n  rangeOfNode: () => rangeOfNode,\n  rangeOfTypeParameters: () => rangeOfTypeParameters,\n  rangeOverlapsWithStartEnd: () => rangeOverlapsWithStartEnd,\n  rangeStartIsOnSameLineAsRangeEnd: () => rangeStartIsOnSameLineAsRangeEnd,\n  rangeStartPositionsAreOnSameLine: () => rangeStartPositionsAreOnSameLine,\n  readBuilderProgram: () => readBuilderProgram,\n  readConfigFile: () => readConfigFile,\n  readJson: () => readJson,\n  readJsonConfigFile: () => readJsonConfigFile,\n  readJsonOrUndefined: () => readJsonOrUndefined,\n  reduceEachLeadingCommentRange: () => reduceEachLeadingCommentRange,\n  reduceEachTrailingCommentRange: () => reduceEachTrailingCommentRange,\n  reduceLeft: () => reduceLeft,\n  reduceLeftIterator: () => reduceLeftIterator,\n  reducePathComponents: () => reducePathComponents,\n  refactor: () => ts_refactor_exports,\n  regExpEscape: () => regExpEscape,\n  regularExpressionFlagToCharacterCode: () => regularExpressionFlagToCharacterCode,\n  relativeComplement: () => relativeComplement,\n  removeAllComments: () => removeAllComments,\n  removeEmitHelper: () => removeEmitHelper,\n  removeExtension: () => removeExtension,\n  removeFileExtension: () => removeFileExtension,\n  removeIgnoredPath: () => removeIgnoredPath,\n  removeMinAndVersionNumbers: () => removeMinAndVersionNumbers,\n  removePrefix: () => removePrefix,\n  removeSuffix: () => removeSuffix,\n  removeTrailingDirectorySeparator: () => removeTrailingDirectorySeparator,\n  repeatString: () => repeatString,\n  replaceElement: () => replaceElement,\n  replaceFirstStar: () => replaceFirstStar,\n  resolutionExtensionIsTSOrJson: () => resolutionExtensionIsTSOrJson,\n  resolveConfigFileProjectName: () => resolveConfigFileProjectName,\n  resolveJSModule: () => resolveJSModule,\n  resolveLibrary: () => resolveLibrary,\n  resolveModuleName: () => resolveModuleName,\n  resolveModuleNameFromCache: () => resolveModuleNameFromCache,\n  resolvePackageNameToPackageJson: () => resolvePackageNameToPackageJson,\n  resolvePath: () => resolvePath,\n  resolveProjectReferencePath: () => resolveProjectReferencePath,\n  resolveTripleslashReference: () => resolveTripleslashReference,\n  resolveTypeReferenceDirective: () => resolveTypeReferenceDirective,\n  resolvingEmptyArray: () => resolvingEmptyArray,\n  returnFalse: () => returnFalse,\n  returnNoopFileWatcher: () => returnNoopFileWatcher,\n  returnTrue: () => returnTrue,\n  returnUndefined: () => returnUndefined,\n  returnsPromise: () => returnsPromise,\n  rewriteModuleSpecifier: () => rewriteModuleSpecifier,\n  sameFlatMap: () => sameFlatMap,\n  sameMap: () => sameMap,\n  sameMapping: () => sameMapping,\n  scanTokenAtPosition: () => scanTokenAtPosition,\n  scanner: () => scanner,\n  semanticDiagnosticsOptionDeclarations: () => semanticDiagnosticsOptionDeclarations,\n  serializeCompilerOptions: () => serializeCompilerOptions,\n  server: () => ts_server_exports3,\n  servicesVersion: () => servicesVersion,\n  setCommentRange: () => setCommentRange,\n  setConfigFileInOptions: () => setConfigFileInOptions,\n  setConstantValue: () => setConstantValue,\n  setEmitFlags: () => setEmitFlags,\n  setGetSourceFileAsHashVersioned: () => setGetSourceFileAsHashVersioned,\n  setIdentifierAutoGenerate: () => setIdentifierAutoGenerate,\n  setIdentifierGeneratedImportReference: () => setIdentifierGeneratedImportReference,\n  setIdentifierTypeArguments: () => setIdentifierTypeArguments,\n  setInternalEmitFlags: () => setInternalEmitFlags,\n  setLocalizedDiagnosticMessages: () => setLocalizedDiagnosticMessages,\n  setNodeChildren: () => setNodeChildren,\n  setNodeFlags: () => setNodeFlags,\n  setObjectAllocator: () => setObjectAllocator,\n  setOriginalNode: () => setOriginalNode,\n  setParent: () => setParent,\n  setParentRecursive: () => setParentRecursive,\n  setPrivateIdentifier: () => setPrivateIdentifier,\n  setSnippetElement: () => setSnippetElement,\n  setSourceMapRange: () => setSourceMapRange,\n  setStackTraceLimit: () => setStackTraceLimit,\n  setStartsOnNewLine: () => setStartsOnNewLine,\n  setSyntheticLeadingComments: () => setSyntheticLeadingComments,\n  setSyntheticTrailingComments: () => setSyntheticTrailingComments,\n  setSys: () => setSys,\n  setSysLog: () => setSysLog,\n  setTextRange: () => setTextRange,\n  setTextRangeEnd: () => setTextRangeEnd,\n  setTextRangePos: () => setTextRangePos,\n  setTextRangePosEnd: () => setTextRangePosEnd,\n  setTextRangePosWidth: () => setTextRangePosWidth,\n  setTokenSourceMapRange: () => setTokenSourceMapRange,\n  setTypeNode: () => setTypeNode,\n  setUILocale: () => setUILocale,\n  setValueDeclaration: () => setValueDeclaration,\n  shouldAllowImportingTsExtension: () => shouldAllowImportingTsExtension,\n  shouldPreserveConstEnums: () => shouldPreserveConstEnums,\n  shouldRewriteModuleSpecifier: () => shouldRewriteModuleSpecifier,\n  shouldUseUriStyleNodeCoreModules: () => shouldUseUriStyleNodeCoreModules,\n  showModuleSpecifier: () => showModuleSpecifier,\n  signatureHasRestParameter: () => signatureHasRestParameter,\n  signatureToDisplayParts: () => signatureToDisplayParts,\n  single: () => single,\n  singleElementArray: () => singleElementArray,\n  singleIterator: () => singleIterator,\n  singleOrMany: () => singleOrMany,\n  singleOrUndefined: () => singleOrUndefined,\n  skipAlias: () => skipAlias,\n  skipConstraint: () => skipConstraint,\n  skipOuterExpressions: () => skipOuterExpressions,\n  skipParentheses: () => skipParentheses,\n  skipPartiallyEmittedExpressions: () => skipPartiallyEmittedExpressions,\n  skipTrivia: () => skipTrivia,\n  skipTypeChecking: () => skipTypeChecking,\n  skipTypeCheckingIgnoringNoCheck: () => skipTypeCheckingIgnoringNoCheck,\n  skipTypeParentheses: () => skipTypeParentheses,\n  skipWhile: () => skipWhile,\n  sliceAfter: () => sliceAfter,\n  some: () => some,\n  sortAndDeduplicate: () => sortAndDeduplicate,\n  sortAndDeduplicateDiagnostics: () => sortAndDeduplicateDiagnostics,\n  sourceFileAffectingCompilerOptions: () => sourceFileAffectingCompilerOptions,\n  sourceFileMayBeEmitted: () => sourceFileMayBeEmitted,\n  sourceMapCommentRegExp: () => sourceMapCommentRegExp,\n  sourceMapCommentRegExpDontCareLineStart: () => sourceMapCommentRegExpDontCareLineStart,\n  spacePart: () => spacePart,\n  spanMap: () => spanMap,\n  startEndContainsRange: () => startEndContainsRange,\n  startEndOverlapsWithStartEnd: () => startEndOverlapsWithStartEnd,\n  startOnNewLine: () => startOnNewLine,\n  startTracing: () => startTracing,\n  startsWith: () => startsWith,\n  startsWithDirectory: () => startsWithDirectory,\n  startsWithUnderscore: () => startsWithUnderscore,\n  startsWithUseStrict: () => startsWithUseStrict,\n  stringContainsAt: () => stringContainsAt,\n  stringToToken: () => stringToToken,\n  stripQuotes: () => stripQuotes,\n  supportedDeclarationExtensions: () => supportedDeclarationExtensions,\n  supportedJSExtensionsFlat: () => supportedJSExtensionsFlat,\n  supportedLocaleDirectories: () => supportedLocaleDirectories,\n  supportedTSExtensionsFlat: () => supportedTSExtensionsFlat,\n  supportedTSImplementationExtensions: () => supportedTSImplementationExtensions,\n  suppressLeadingAndTrailingTrivia: () => suppressLeadingAndTrailingTrivia,\n  suppressLeadingTrivia: () => suppressLeadingTrivia,\n  suppressTrailingTrivia: () => suppressTrailingTrivia,\n  symbolEscapedNameNoDefault: () => symbolEscapedNameNoDefault,\n  symbolName: () => symbolName,\n  symbolNameNoDefault: () => symbolNameNoDefault,\n  symbolToDisplayParts: () => symbolToDisplayParts,\n  sys: () => sys,\n  sysLog: () => sysLog,\n  tagNamesAreEquivalent: () => tagNamesAreEquivalent,\n  takeWhile: () => takeWhile,\n  targetOptionDeclaration: () => targetOptionDeclaration,\n  targetToLibMap: () => targetToLibMap,\n  testFormatSettings: () => testFormatSettings,\n  textChangeRangeIsUnchanged: () => textChangeRangeIsUnchanged,\n  textChangeRangeNewSpan: () => textChangeRangeNewSpan,\n  textChanges: () => ts_textChanges_exports,\n  textOrKeywordPart: () => textOrKeywordPart,\n  textPart: () => textPart,\n  textRangeContainsPositionInclusive: () => textRangeContainsPositionInclusive,\n  textRangeContainsTextSpan: () => textRangeContainsTextSpan,\n  textRangeIntersectsWithTextSpan: () => textRangeIntersectsWithTextSpan,\n  textSpanContainsPosition: () => textSpanContainsPosition,\n  textSpanContainsTextRange: () => textSpanContainsTextRange,\n  textSpanContainsTextSpan: () => textSpanContainsTextSpan,\n  textSpanEnd: () => textSpanEnd,\n  textSpanIntersection: () => textSpanIntersection,\n  textSpanIntersectsWith: () => textSpanIntersectsWith,\n  textSpanIntersectsWithPosition: () => textSpanIntersectsWithPosition,\n  textSpanIntersectsWithTextSpan: () => textSpanIntersectsWithTextSpan,\n  textSpanIsEmpty: () => textSpanIsEmpty,\n  textSpanOverlap: () => textSpanOverlap,\n  textSpanOverlapsWith: () => textSpanOverlapsWith,\n  textSpansEqual: () => textSpansEqual,\n  textToKeywordObj: () => textToKeywordObj,\n  timestamp: () => timestamp,\n  toArray: () => toArray,\n  toBuilderFileEmit: () => toBuilderFileEmit,\n  toBuilderStateFileInfoForMultiEmit: () => toBuilderStateFileInfoForMultiEmit,\n  toEditorSettings: () => toEditorSettings,\n  toFileNameLowerCase: () => toFileNameLowerCase,\n  toPath: () => toPath,\n  toProgramEmitPending: () => toProgramEmitPending,\n  toSorted: () => toSorted,\n  tokenIsIdentifierOrKeyword: () => tokenIsIdentifierOrKeyword,\n  tokenIsIdentifierOrKeywordOrGreaterThan: () => tokenIsIdentifierOrKeywordOrGreaterThan,\n  tokenToString: () => tokenToString,\n  trace: () => trace,\n  tracing: () => tracing,\n  tracingEnabled: () => tracingEnabled,\n  transferSourceFileChildren: () => transferSourceFileChildren,\n  transform: () => transform,\n  transformClassFields: () => transformClassFields,\n  transformDeclarations: () => transformDeclarations,\n  transformECMAScriptModule: () => transformECMAScriptModule,\n  transformES2015: () => transformES2015,\n  transformES2016: () => transformES2016,\n  transformES2017: () => transformES2017,\n  transformES2018: () => transformES2018,\n  transformES2019: () => transformES2019,\n  transformES2020: () => transformES2020,\n  transformES2021: () => transformES2021,\n  transformESDecorators: () => transformESDecorators,\n  transformESNext: () => transformESNext,\n  transformGenerators: () => transformGenerators,\n  transformImpliedNodeFormatDependentModule: () => transformImpliedNodeFormatDependentModule,\n  transformJsx: () => transformJsx,\n  transformLegacyDecorators: () => transformLegacyDecorators,\n  transformModule: () => transformModule,\n  transformNamedEvaluation: () => transformNamedEvaluation,\n  transformNodes: () => transformNodes,\n  transformSystemModule: () => transformSystemModule,\n  transformTypeScript: () => transformTypeScript,\n  transpile: () => transpile,\n  transpileDeclaration: () => transpileDeclaration,\n  transpileModule: () => transpileModule,\n  transpileOptionValueCompilerOptions: () => transpileOptionValueCompilerOptions,\n  tryAddToSet: () => tryAddToSet,\n  tryAndIgnoreErrors: () => tryAndIgnoreErrors,\n  tryCast: () => tryCast,\n  tryDirectoryExists: () => tryDirectoryExists,\n  tryExtractTSExtension: () => tryExtractTSExtension,\n  tryFileExists: () => tryFileExists,\n  tryGetClassExtendingExpressionWithTypeArguments: () => tryGetClassExtendingExpressionWithTypeArguments,\n  tryGetClassImplementingOrExtendingExpressionWithTypeArguments: () => tryGetClassImplementingOrExtendingExpressionWithTypeArguments,\n  tryGetDirectories: () => tryGetDirectories,\n  tryGetExtensionFromPath: () => tryGetExtensionFromPath2,\n  tryGetImportFromModuleSpecifier: () => tryGetImportFromModuleSpecifier,\n  tryGetJSDocSatisfiesTypeNode: () => tryGetJSDocSatisfiesTypeNode,\n  tryGetModuleNameFromFile: () => tryGetModuleNameFromFile,\n  tryGetModuleSpecifierFromDeclaration: () => tryGetModuleSpecifierFromDeclaration,\n  tryGetNativePerformanceHooks: () => tryGetNativePerformanceHooks,\n  tryGetPropertyAccessOrIdentifierToString: () => tryGetPropertyAccessOrIdentifierToString,\n  tryGetPropertyNameOfBindingOrAssignmentElement: () => tryGetPropertyNameOfBindingOrAssignmentElement,\n  tryGetSourceMappingURL: () => tryGetSourceMappingURL,\n  tryGetTextOfPropertyName: () => tryGetTextOfPropertyName,\n  tryParseJson: () => tryParseJson,\n  tryParsePattern: () => tryParsePattern,\n  tryParsePatterns: () => tryParsePatterns,\n  tryParseRawSourceMap: () => tryParseRawSourceMap,\n  tryReadDirectory: () => tryReadDirectory,\n  tryReadFile: () => tryReadFile,\n  tryRemoveDirectoryPrefix: () => tryRemoveDirectoryPrefix,\n  tryRemoveExtension: () => tryRemoveExtension,\n  tryRemovePrefix: () => tryRemovePrefix,\n  tryRemoveSuffix: () => tryRemoveSuffix,\n  tscBuildOption: () => tscBuildOption,\n  typeAcquisitionDeclarations: () => typeAcquisitionDeclarations,\n  typeAliasNamePart: () => typeAliasNamePart,\n  typeDirectiveIsEqualTo: () => typeDirectiveIsEqualTo,\n  typeKeywords: () => typeKeywords,\n  typeParameterNamePart: () => typeParameterNamePart,\n  typeToDisplayParts: () => typeToDisplayParts,\n  unchangedPollThresholds: () => unchangedPollThresholds,\n  unchangedTextChangeRange: () => unchangedTextChangeRange,\n  unescapeLeadingUnderscores: () => unescapeLeadingUnderscores,\n  unmangleScopedPackageName: () => unmangleScopedPackageName,\n  unorderedRemoveItem: () => unorderedRemoveItem,\n  unprefixedNodeCoreModules: () => unprefixedNodeCoreModules,\n  unreachableCodeIsError: () => unreachableCodeIsError,\n  unsetNodeChildren: () => unsetNodeChildren,\n  unusedLabelIsError: () => unusedLabelIsError,\n  unwrapInnermostStatementOfLabel: () => unwrapInnermostStatementOfLabel,\n  unwrapParenthesizedExpression: () => unwrapParenthesizedExpression,\n  updateErrorForNoInputFiles: () => updateErrorForNoInputFiles,\n  updateLanguageServiceSourceFile: () => updateLanguageServiceSourceFile,\n  updateMissingFilePathsWatch: () => updateMissingFilePathsWatch,\n  updateResolutionField: () => updateResolutionField,\n  updateSharedExtendedConfigFileWatcher: () => updateSharedExtendedConfigFileWatcher,\n  updateSourceFile: () => updateSourceFile,\n  updateWatchingWildcardDirectories: () => updateWatchingWildcardDirectories,\n  usingSingleLineStringWriter: () => usingSingleLineStringWriter,\n  utf16EncodeAsString: () => utf16EncodeAsString,\n  validateLocaleAndSetLanguage: () => validateLocaleAndSetLanguage,\n  version: () => version,\n  versionMajorMinor: () => versionMajorMinor,\n  visitArray: () => visitArray,\n  visitCommaListElements: () => visitCommaListElements,\n  visitEachChild: () => visitEachChild,\n  visitFunctionBody: () => visitFunctionBody,\n  visitIterationBody: () => visitIterationBody,\n  visitLexicalEnvironment: () => visitLexicalEnvironment,\n  visitNode: () => visitNode,\n  visitNodes: () => visitNodes2,\n  visitParameterList: () => visitParameterList,\n  walkUpBindingElementsAndPatterns: () => walkUpBindingElementsAndPatterns,\n  walkUpOuterExpressions: () => walkUpOuterExpressions,\n  walkUpParenthesizedExpressions: () => walkUpParenthesizedExpressions,\n  walkUpParenthesizedTypes: () => walkUpParenthesizedTypes,\n  walkUpParenthesizedTypesAndGetParentAndChild: () => walkUpParenthesizedTypesAndGetParentAndChild,\n  whitespaceOrMapCommentRegExp: () => whitespaceOrMapCommentRegExp,\n  writeCommentRange: () => writeCommentRange,\n  writeFile: () => writeFile,\n  writeFileEnsuringDirectories: () => writeFileEnsuringDirectories,\n  zipWith: () => zipWith\n});\n\n// src/deprecatedCompat/deprecate.ts\nvar enableDeprecationWarnings = true;\nvar typeScriptVersion2;\nfunction getTypeScriptVersion() {\n  return typeScriptVersion2 ?? (typeScriptVersion2 = new Version(version));\n}\nfunction formatDeprecationMessage(name, error2, errorAfter, since, message) {\n  let deprecationMessage = error2 ? \"DeprecationError: \" : \"DeprecationWarning: \";\n  deprecationMessage += `'${name}' `;\n  deprecationMessage += since ? `has been deprecated since v${since}` : \"is deprecated\";\n  deprecationMessage += error2 ? \" and can no longer be used.\" : errorAfter ? ` and will no longer be usable after v${errorAfter}.` : \".\";\n  deprecationMessage += message ? ` ${formatStringFromArgs(message, [name])}` : \"\";\n  return deprecationMessage;\n}\nfunction createErrorDeprecation(name, errorAfter, since, message) {\n  const deprecationMessage = formatDeprecationMessage(\n    name,\n    /*error*/\n    true,\n    errorAfter,\n    since,\n    message\n  );\n  return () => {\n    throw new TypeError(deprecationMessage);\n  };\n}\nfunction createWarningDeprecation(name, errorAfter, since, message) {\n  let hasWrittenDeprecation = false;\n  return () => {\n    if (enableDeprecationWarnings && !hasWrittenDeprecation) {\n      Debug.log.warn(formatDeprecationMessage(\n        name,\n        /*error*/\n        false,\n        errorAfter,\n        since,\n        message\n      ));\n      hasWrittenDeprecation = true;\n    }\n  };\n}\nfunction createDeprecation(name, options = {}) {\n  const version2 = typeof options.typeScriptVersion === \"string\" ? new Version(options.typeScriptVersion) : options.typeScriptVersion ?? getTypeScriptVersion();\n  const errorAfter = typeof options.errorAfter === \"string\" ? new Version(options.errorAfter) : options.errorAfter;\n  const warnAfter = typeof options.warnAfter === \"string\" ? new Version(options.warnAfter) : options.warnAfter;\n  const since = typeof options.since === \"string\" ? new Version(options.since) : options.since ?? warnAfter;\n  const error2 = options.error || errorAfter && version2.compareTo(errorAfter) >= 0;\n  const warn = !warnAfter || version2.compareTo(warnAfter) >= 0;\n  return error2 ? createErrorDeprecation(name, errorAfter, since, options.message) : warn ? createWarningDeprecation(name, errorAfter, since, options.message) : noop;\n}\nfunction wrapFunction(deprecation, func) {\n  return function() {\n    deprecation();\n    return func.apply(this, arguments);\n  };\n}\nfunction deprecate(func, options) {\n  const deprecation = createDeprecation((options == null ? void 0 : options.name) ?? Debug.getFunctionName(func), options);\n  return wrapFunction(deprecation, func);\n}\n\n// src/deprecatedCompat/deprecations.ts\nfunction createOverload(name, overloads, binder2, deprecations) {\n  Object.defineProperty(call, \"name\", { ...Object.getOwnPropertyDescriptor(call, \"name\"), value: name });\n  if (deprecations) {\n    for (const key of Object.keys(deprecations)) {\n      const index = +key;\n      if (!isNaN(index) && hasProperty(overloads, `${index}`)) {\n        overloads[index] = deprecate(overloads[index], { ...deprecations[index], name });\n      }\n    }\n  }\n  const bind = createBinder2(overloads, binder2);\n  return call;\n  function call(...args) {\n    const index = bind(args);\n    const fn = index !== void 0 ? overloads[index] : void 0;\n    if (typeof fn === \"function\") {\n      return fn(...args);\n    }\n    throw new TypeError(\"Invalid arguments\");\n  }\n}\nfunction createBinder2(overloads, binder2) {\n  return (args) => {\n    for (let i = 0; hasProperty(overloads, `${i}`) && hasProperty(binder2, `${i}`); i++) {\n      const fn = binder2[i];\n      if (fn(args)) {\n        return i;\n      }\n    }\n  };\n}\nfunction buildOverload(name) {\n  return {\n    overload: (overloads) => ({\n      bind: (binder2) => ({\n        finish: () => createOverload(name, overloads, binder2),\n        deprecate: (deprecations) => ({\n          finish: () => createOverload(name, overloads, binder2, deprecations)\n        })\n      })\n    })\n  };\n}\n\n// src/server/_namespaces/ts.server.ts\nvar ts_server_exports3 = {};\n__export(ts_server_exports3, {\n  ActionInvalidate: () => ActionInvalidate,\n  ActionPackageInstalled: () => ActionPackageInstalled,\n  ActionSet: () => ActionSet,\n  ActionWatchTypingLocations: () => ActionWatchTypingLocations,\n  Arguments: () => Arguments,\n  AutoImportProviderProject: () => AutoImportProviderProject,\n  AuxiliaryProject: () => AuxiliaryProject,\n  CharRangeSection: () => CharRangeSection,\n  CloseFileWatcherEvent: () => CloseFileWatcherEvent,\n  CommandNames: () => CommandNames,\n  ConfigFileDiagEvent: () => ConfigFileDiagEvent,\n  ConfiguredProject: () => ConfiguredProject2,\n  ConfiguredProjectLoadKind: () => ConfiguredProjectLoadKind,\n  CreateDirectoryWatcherEvent: () => CreateDirectoryWatcherEvent,\n  CreateFileWatcherEvent: () => CreateFileWatcherEvent,\n  Errors: () => Errors,\n  EventBeginInstallTypes: () => EventBeginInstallTypes,\n  EventEndInstallTypes: () => EventEndInstallTypes,\n  EventInitializationFailed: () => EventInitializationFailed,\n  EventTypesRegistry: () => EventTypesRegistry,\n  ExternalProject: () => ExternalProject,\n  GcTimer: () => GcTimer,\n  InferredProject: () => InferredProject2,\n  LargeFileReferencedEvent: () => LargeFileReferencedEvent,\n  LineIndex: () => LineIndex,\n  LineLeaf: () => LineLeaf,\n  LineNode: () => LineNode,\n  LogLevel: () => LogLevel2,\n  Msg: () => Msg,\n  OpenFileInfoTelemetryEvent: () => OpenFileInfoTelemetryEvent,\n  Project: () => Project2,\n  ProjectInfoTelemetryEvent: () => ProjectInfoTelemetryEvent,\n  ProjectKind: () => ProjectKind,\n  ProjectLanguageServiceStateEvent: () => ProjectLanguageServiceStateEvent,\n  ProjectLoadingFinishEvent: () => ProjectLoadingFinishEvent,\n  ProjectLoadingStartEvent: () => ProjectLoadingStartEvent,\n  ProjectService: () => ProjectService2,\n  ProjectsUpdatedInBackgroundEvent: () => ProjectsUpdatedInBackgroundEvent,\n  ScriptInfo: () => ScriptInfo,\n  ScriptVersionCache: () => ScriptVersionCache,\n  Session: () => Session3,\n  TextStorage: () => TextStorage,\n  ThrottledOperations: () => ThrottledOperations,\n  TypingsInstallerAdapter: () => TypingsInstallerAdapter,\n  allFilesAreJsOrDts: () => allFilesAreJsOrDts,\n  allRootFilesAreJsOrDts: () => allRootFilesAreJsOrDts,\n  asNormalizedPath: () => asNormalizedPath,\n  convertCompilerOptions: () => convertCompilerOptions,\n  convertFormatOptions: () => convertFormatOptions,\n  convertScriptKindName: () => convertScriptKindName,\n  convertTypeAcquisition: () => convertTypeAcquisition,\n  convertUserPreferences: () => convertUserPreferences,\n  convertWatchOptions: () => convertWatchOptions,\n  countEachFileTypes: () => countEachFileTypes,\n  createInstallTypingsRequest: () => createInstallTypingsRequest,\n  createModuleSpecifierCache: () => createModuleSpecifierCache,\n  createNormalizedPathMap: () => createNormalizedPathMap,\n  createPackageJsonCache: () => createPackageJsonCache,\n  createSortedArray: () => createSortedArray2,\n  emptyArray: () => emptyArray2,\n  findArgument: () => findArgument,\n  formatDiagnosticToProtocol: () => formatDiagnosticToProtocol,\n  formatMessage: () => formatMessage2,\n  getBaseConfigFileName: () => getBaseConfigFileName,\n  getDetailWatchInfo: () => getDetailWatchInfo,\n  getLocationInNewDocument: () => getLocationInNewDocument,\n  hasArgument: () => hasArgument,\n  hasNoTypeScriptSource: () => hasNoTypeScriptSource,\n  indent: () => indent2,\n  isBackgroundProject: () => isBackgroundProject,\n  isConfigFile: () => isConfigFile,\n  isConfiguredProject: () => isConfiguredProject,\n  isDynamicFileName: () => isDynamicFileName,\n  isExternalProject: () => isExternalProject,\n  isInferredProject: () => isInferredProject,\n  isInferredProjectName: () => isInferredProjectName,\n  isProjectDeferredClose: () => isProjectDeferredClose,\n  makeAutoImportProviderProjectName: () => makeAutoImportProviderProjectName,\n  makeAuxiliaryProjectName: () => makeAuxiliaryProjectName,\n  makeInferredProjectName: () => makeInferredProjectName,\n  maxFileSize: () => maxFileSize,\n  maxProgramSizeForNonTsFiles: () => maxProgramSizeForNonTsFiles,\n  normalizedPathToPath: () => normalizedPathToPath,\n  nowString: () => nowString,\n  nullCancellationToken: () => nullCancellationToken,\n  nullTypingsInstaller: () => nullTypingsInstaller,\n  protocol: () => ts_server_protocol_exports,\n  scriptInfoIsContainedByBackgroundProject: () => scriptInfoIsContainedByBackgroundProject,\n  scriptInfoIsContainedByDeferredClosedProject: () => scriptInfoIsContainedByDeferredClosedProject,\n  stringifyIndented: () => stringifyIndented,\n  toEvent: () => toEvent,\n  toNormalizedPath: () => toNormalizedPath,\n  tryConvertScriptKindName: () => tryConvertScriptKindName,\n  typingsInstaller: () => ts_server_typingsInstaller_exports,\n  updateProjectIfDirty: () => updateProjectIfDirty\n});\n\n// src/typingsInstallerCore/_namespaces/ts.server.typingsInstaller.ts\nvar ts_server_typingsInstaller_exports = {};\n__export(ts_server_typingsInstaller_exports, {\n  TypingsInstaller: () => TypingsInstaller,\n  getNpmCommandForInstallation: () => getNpmCommandForInstallation,\n  installNpmPackages: () => installNpmPackages,\n  typingsName: () => typingsName\n});\n\n// src/typingsInstallerCore/typingsInstaller.ts\nvar nullLog = {\n  isEnabled: () => false,\n  writeLine: noop\n};\nfunction typingToFileName(cachePath, packageName, installTypingHost, log) {\n  try {\n    const result = resolveModuleName(packageName, combinePaths(cachePath, \"index.d.ts\"), { moduleResolution: 2 /* Node10 */ }, installTypingHost);\n    return result.resolvedModule && result.resolvedModule.resolvedFileName;\n  } catch (e) {\n    if (log.isEnabled()) {\n      log.writeLine(`Failed to resolve ${packageName} in folder '${cachePath}': ${e.message}`);\n    }\n    return void 0;\n  }\n}\nfunction installNpmPackages(npmPath, tsVersion, packageNames, install) {\n  let hasError = false;\n  for (let remaining = packageNames.length; remaining > 0; ) {\n    const result = getNpmCommandForInstallation(npmPath, tsVersion, packageNames, remaining);\n    remaining = result.remaining;\n    hasError = install(result.command) || hasError;\n  }\n  return hasError;\n}\nfunction getNpmCommandForInstallation(npmPath, tsVersion, packageNames, remaining) {\n  const sliceStart = packageNames.length - remaining;\n  let command, toSlice = remaining;\n  while (true) {\n    command = `${npmPath} install --ignore-scripts ${(toSlice === packageNames.length ? packageNames : packageNames.slice(sliceStart, sliceStart + toSlice)).join(\" \")} --save-dev --user-agent=\"typesInstaller/${tsVersion}\"`;\n    if (command.length < 8e3) {\n      break;\n    }\n    toSlice = toSlice - Math.floor(toSlice / 2);\n  }\n  return { command, remaining: remaining - toSlice };\n}\nvar TypingsInstaller = class {\n  constructor(installTypingHost, globalCachePath, safeListPath, typesMapLocation, throttleLimit, log = nullLog) {\n    this.installTypingHost = installTypingHost;\n    this.globalCachePath = globalCachePath;\n    this.safeListPath = safeListPath;\n    this.typesMapLocation = typesMapLocation;\n    this.throttleLimit = throttleLimit;\n    this.log = log;\n    this.packageNameToTypingLocation = /* @__PURE__ */ new Map();\n    this.missingTypingsSet = /* @__PURE__ */ new Set();\n    this.knownCachesSet = /* @__PURE__ */ new Set();\n    this.projectWatchers = /* @__PURE__ */ new Map();\n    this.pendingRunRequests = [];\n    this.installRunCount = 1;\n    this.inFlightRequestCount = 0;\n    // eslint-disable-line @typescript-eslint/unified-signatures\n    this.latestDistTag = \"latest\";\n    const isLoggingEnabled = this.log.isEnabled();\n    if (isLoggingEnabled) {\n      this.log.writeLine(`Global cache location '${globalCachePath}', safe file path '${safeListPath}', types map path ${typesMapLocation}`);\n    }\n    this.processCacheLocation(this.globalCachePath);\n  }\n  /** @internal */\n  handleRequest(req) {\n    switch (req.kind) {\n      case \"discover\":\n        this.install(req);\n        break;\n      case \"closeProject\":\n        this.closeProject(req);\n        break;\n      case \"typesRegistry\": {\n        const typesRegistry = {};\n        this.typesRegistry.forEach((value, key) => {\n          typesRegistry[key] = value;\n        });\n        const response = { kind: EventTypesRegistry, typesRegistry };\n        this.sendResponse(response);\n        break;\n      }\n      case \"installPackage\": {\n        this.installPackage(req);\n        break;\n      }\n      default:\n        Debug.assertNever(req);\n    }\n  }\n  closeProject(req) {\n    this.closeWatchers(req.projectName);\n  }\n  closeWatchers(projectName) {\n    if (this.log.isEnabled()) {\n      this.log.writeLine(`Closing file watchers for project '${projectName}'`);\n    }\n    const watchers = this.projectWatchers.get(projectName);\n    if (!watchers) {\n      if (this.log.isEnabled()) {\n        this.log.writeLine(`No watchers are registered for project '${projectName}'`);\n      }\n      return;\n    }\n    this.projectWatchers.delete(projectName);\n    this.sendResponse({ kind: ActionWatchTypingLocations, projectName, files: [] });\n    if (this.log.isEnabled()) {\n      this.log.writeLine(`Closing file watchers for project '${projectName}' - done.`);\n    }\n  }\n  install(req) {\n    if (this.log.isEnabled()) {\n      this.log.writeLine(`Got install request${stringifyIndented(req)}`);\n    }\n    if (req.cachePath) {\n      if (this.log.isEnabled()) {\n        this.log.writeLine(`Request specifies cache path '${req.cachePath}', loading cached information...`);\n      }\n      this.processCacheLocation(req.cachePath);\n    }\n    if (this.safeList === void 0) {\n      this.initializeSafeList();\n    }\n    const discoverTypingsResult = ts_JsTyping_exports.discoverTypings(\n      this.installTypingHost,\n      this.log.isEnabled() ? (s) => this.log.writeLine(s) : void 0,\n      req.fileNames,\n      req.projectRootPath,\n      this.safeList,\n      this.packageNameToTypingLocation,\n      req.typeAcquisition,\n      req.unresolvedImports,\n      this.typesRegistry,\n      req.compilerOptions\n    );\n    this.watchFiles(req.projectName, discoverTypingsResult.filesToWatch);\n    if (discoverTypingsResult.newTypingNames.length) {\n      this.installTypings(req, req.cachePath || this.globalCachePath, discoverTypingsResult.cachedTypingPaths, discoverTypingsResult.newTypingNames);\n    } else {\n      this.sendResponse(this.createSetTypings(req, discoverTypingsResult.cachedTypingPaths));\n      if (this.log.isEnabled()) {\n        this.log.writeLine(`No new typings were requested as a result of typings discovery`);\n      }\n    }\n  }\n  /** @internal */\n  installPackage(req) {\n    const { fileName, packageName, projectName, projectRootPath, id } = req;\n    const cwd = forEachAncestorDirectory(getDirectoryPath(fileName), (directory) => {\n      if (this.installTypingHost.fileExists(combinePaths(directory, \"package.json\"))) {\n        return directory;\n      }\n    }) || projectRootPath;\n    if (cwd) {\n      this.installWorker(-1, [packageName], cwd, (success) => {\n        const message = success ? `Package ${packageName} installed.` : `There was an error installing ${packageName}.`;\n        const response = {\n          kind: ActionPackageInstalled,\n          projectName,\n          id,\n          success,\n          message\n        };\n        this.sendResponse(response);\n      });\n    } else {\n      const response = {\n        kind: ActionPackageInstalled,\n        projectName,\n        id,\n        success: false,\n        message: \"Could not determine a project root path.\"\n      };\n      this.sendResponse(response);\n    }\n  }\n  initializeSafeList() {\n    if (this.typesMapLocation) {\n      const safeListFromMap = ts_JsTyping_exports.loadTypesMap(this.installTypingHost, this.typesMapLocation);\n      if (safeListFromMap) {\n        this.log.writeLine(`Loaded safelist from types map file '${this.typesMapLocation}'`);\n        this.safeList = safeListFromMap;\n        return;\n      }\n      this.log.writeLine(`Failed to load safelist from types map file '${this.typesMapLocation}'`);\n    }\n    this.safeList = ts_JsTyping_exports.loadSafeList(this.installTypingHost, this.safeListPath);\n  }\n  processCacheLocation(cacheLocation) {\n    if (this.log.isEnabled()) {\n      this.log.writeLine(`Processing cache location '${cacheLocation}'`);\n    }\n    if (this.knownCachesSet.has(cacheLocation)) {\n      if (this.log.isEnabled()) {\n        this.log.writeLine(`Cache location was already processed...`);\n      }\n      return;\n    }\n    const packageJson = combinePaths(cacheLocation, \"package.json\");\n    const packageLockJson = combinePaths(cacheLocation, \"package-lock.json\");\n    if (this.log.isEnabled()) {\n      this.log.writeLine(`Trying to find '${packageJson}'...`);\n    }\n    if (this.installTypingHost.fileExists(packageJson) && this.installTypingHost.fileExists(packageLockJson)) {\n      const npmConfig = JSON.parse(this.installTypingHost.readFile(packageJson));\n      const npmLock = JSON.parse(this.installTypingHost.readFile(packageLockJson));\n      if (this.log.isEnabled()) {\n        this.log.writeLine(`Loaded content of '${packageJson}':${stringifyIndented(npmConfig)}`);\n        this.log.writeLine(`Loaded content of '${packageLockJson}':${stringifyIndented(npmLock)}`);\n      }\n      if (npmConfig.devDependencies && (npmLock.packages || npmLock.dependencies)) {\n        for (const key in npmConfig.devDependencies) {\n          if (npmLock.packages && !hasProperty(npmLock.packages, `node_modules/${key}`) || npmLock.dependencies && !hasProperty(npmLock.dependencies, key)) {\n            continue;\n          }\n          const packageName = getBaseFileName(key);\n          if (!packageName) {\n            continue;\n          }\n          const typingFile = typingToFileName(cacheLocation, packageName, this.installTypingHost, this.log);\n          if (!typingFile) {\n            this.missingTypingsSet.add(packageName);\n            continue;\n          }\n          const existingTypingFile = this.packageNameToTypingLocation.get(packageName);\n          if (existingTypingFile) {\n            if (existingTypingFile.typingLocation === typingFile) {\n              continue;\n            }\n            if (this.log.isEnabled()) {\n              this.log.writeLine(`New typing for package ${packageName} from '${typingFile}' conflicts with existing typing file '${existingTypingFile}'`);\n            }\n          }\n          if (this.log.isEnabled()) {\n            this.log.writeLine(`Adding entry into typings cache: '${packageName}' => '${typingFile}'`);\n          }\n          const info = npmLock.packages && getProperty(npmLock.packages, `node_modules/${key}`) || getProperty(npmLock.dependencies, key);\n          const version2 = info && info.version;\n          if (!version2) {\n            continue;\n          }\n          const newTyping = { typingLocation: typingFile, version: new Version(version2) };\n          this.packageNameToTypingLocation.set(packageName, newTyping);\n        }\n      }\n    }\n    if (this.log.isEnabled()) {\n      this.log.writeLine(`Finished processing cache location '${cacheLocation}'`);\n    }\n    this.knownCachesSet.add(cacheLocation);\n  }\n  filterTypings(typingsToInstall) {\n    return mapDefined(typingsToInstall, (typing) => {\n      const typingKey = mangleScopedPackageName(typing);\n      if (this.missingTypingsSet.has(typingKey)) {\n        if (this.log.isEnabled()) this.log.writeLine(`'${typing}':: '${typingKey}' is in missingTypingsSet - skipping...`);\n        return void 0;\n      }\n      const validationResult = ts_JsTyping_exports.validatePackageName(typing);\n      if (validationResult !== ts_JsTyping_exports.NameValidationResult.Ok) {\n        this.missingTypingsSet.add(typingKey);\n        if (this.log.isEnabled()) this.log.writeLine(ts_JsTyping_exports.renderPackageNameValidationFailure(validationResult, typing));\n        return void 0;\n      }\n      if (!this.typesRegistry.has(typingKey)) {\n        if (this.log.isEnabled()) this.log.writeLine(`'${typing}':: Entry for package '${typingKey}' does not exist in local types registry - skipping...`);\n        return void 0;\n      }\n      if (this.packageNameToTypingLocation.get(typingKey) && ts_JsTyping_exports.isTypingUpToDate(this.packageNameToTypingLocation.get(typingKey), this.typesRegistry.get(typingKey))) {\n        if (this.log.isEnabled()) this.log.writeLine(`'${typing}':: '${typingKey}' already has an up-to-date typing - skipping...`);\n        return void 0;\n      }\n      return typingKey;\n    });\n  }\n  ensurePackageDirectoryExists(directory) {\n    const npmConfigPath = combinePaths(directory, \"package.json\");\n    if (this.log.isEnabled()) {\n      this.log.writeLine(`Npm config file: ${npmConfigPath}`);\n    }\n    if (!this.installTypingHost.fileExists(npmConfigPath)) {\n      if (this.log.isEnabled()) {\n        this.log.writeLine(`Npm config file: '${npmConfigPath}' is missing, creating new one...`);\n      }\n      this.ensureDirectoryExists(directory, this.installTypingHost);\n      this.installTypingHost.writeFile(npmConfigPath, '{ \"private\": true }');\n    }\n  }\n  installTypings(req, cachePath, currentlyCachedTypings, typingsToInstall) {\n    if (this.log.isEnabled()) {\n      this.log.writeLine(`Installing typings ${JSON.stringify(typingsToInstall)}`);\n    }\n    const filteredTypings = this.filterTypings(typingsToInstall);\n    if (filteredTypings.length === 0) {\n      if (this.log.isEnabled()) {\n        this.log.writeLine(`All typings are known to be missing or invalid - no need to install more typings`);\n      }\n      this.sendResponse(this.createSetTypings(req, currentlyCachedTypings));\n      return;\n    }\n    this.ensurePackageDirectoryExists(cachePath);\n    const requestId = this.installRunCount;\n    this.installRunCount++;\n    this.sendResponse({\n      kind: EventBeginInstallTypes,\n      eventId: requestId,\n      typingsInstallerVersion: version,\n      projectName: req.projectName\n    });\n    const scopedTypings = filteredTypings.map(typingsName);\n    this.installTypingsAsync(requestId, scopedTypings, cachePath, (ok) => {\n      try {\n        if (!ok) {\n          if (this.log.isEnabled()) {\n            this.log.writeLine(`install request failed, marking packages as missing to prevent repeated requests: ${JSON.stringify(filteredTypings)}`);\n          }\n          for (const typing of filteredTypings) {\n            this.missingTypingsSet.add(typing);\n          }\n          return;\n        }\n        if (this.log.isEnabled()) {\n          this.log.writeLine(`Installed typings ${JSON.stringify(scopedTypings)}`);\n        }\n        const installedTypingFiles = [];\n        for (const packageName of filteredTypings) {\n          const typingFile = typingToFileName(cachePath, packageName, this.installTypingHost, this.log);\n          if (!typingFile) {\n            this.missingTypingsSet.add(packageName);\n            continue;\n          }\n          const distTags = this.typesRegistry.get(packageName);\n          const newVersion = new Version(distTags[`ts${versionMajorMinor}`] || distTags[this.latestDistTag]);\n          const newTyping = { typingLocation: typingFile, version: newVersion };\n          this.packageNameToTypingLocation.set(packageName, newTyping);\n          installedTypingFiles.push(typingFile);\n        }\n        if (this.log.isEnabled()) {\n          this.log.writeLine(`Installed typing files ${JSON.stringify(installedTypingFiles)}`);\n        }\n        this.sendResponse(this.createSetTypings(req, currentlyCachedTypings.concat(installedTypingFiles)));\n      } finally {\n        const response = {\n          kind: EventEndInstallTypes,\n          eventId: requestId,\n          projectName: req.projectName,\n          packagesToInstall: scopedTypings,\n          installSuccess: ok,\n          typingsInstallerVersion: version\n        };\n        this.sendResponse(response);\n      }\n    });\n  }\n  ensureDirectoryExists(directory, host) {\n    const directoryName = getDirectoryPath(directory);\n    if (!host.directoryExists(directoryName)) {\n      this.ensureDirectoryExists(directoryName, host);\n    }\n    if (!host.directoryExists(directory)) {\n      host.createDirectory(directory);\n    }\n  }\n  watchFiles(projectName, files) {\n    if (!files.length) {\n      this.closeWatchers(projectName);\n      return;\n    }\n    const existing = this.projectWatchers.get(projectName);\n    const newSet = new Set(files);\n    if (!existing || forEachKey(newSet, (s) => !existing.has(s)) || forEachKey(existing, (s) => !newSet.has(s))) {\n      this.projectWatchers.set(projectName, newSet);\n      this.sendResponse({ kind: ActionWatchTypingLocations, projectName, files });\n    } else {\n      this.sendResponse({ kind: ActionWatchTypingLocations, projectName, files: void 0 });\n    }\n  }\n  createSetTypings(request, typings) {\n    return {\n      projectName: request.projectName,\n      typeAcquisition: request.typeAcquisition,\n      compilerOptions: request.compilerOptions,\n      typings,\n      unresolvedImports: request.unresolvedImports,\n      kind: ActionSet\n    };\n  }\n  installTypingsAsync(requestId, packageNames, cwd, onRequestCompleted) {\n    this.pendingRunRequests.unshift({ requestId, packageNames, cwd, onRequestCompleted });\n    this.executeWithThrottling();\n  }\n  executeWithThrottling() {\n    while (this.inFlightRequestCount < this.throttleLimit && this.pendingRunRequests.length) {\n      this.inFlightRequestCount++;\n      const request = this.pendingRunRequests.pop();\n      this.installWorker(request.requestId, request.packageNames, request.cwd, (ok) => {\n        this.inFlightRequestCount--;\n        request.onRequestCompleted(ok);\n        this.executeWithThrottling();\n      });\n    }\n  }\n};\nfunction typingsName(packageName) {\n  return `@types/${packageName}@ts${versionMajorMinor}`;\n}\n\n// src/server/utilitiesPublic.ts\nvar LogLevel2 = /* @__PURE__ */ ((LogLevel3) => {\n  LogLevel3[LogLevel3[\"terse\"] = 0] = \"terse\";\n  LogLevel3[LogLevel3[\"normal\"] = 1] = \"normal\";\n  LogLevel3[LogLevel3[\"requestTime\"] = 2] = \"requestTime\";\n  LogLevel3[LogLevel3[\"verbose\"] = 3] = \"verbose\";\n  return LogLevel3;\n})(LogLevel2 || {});\nvar emptyArray2 = createSortedArray2();\nvar Msg = /* @__PURE__ */ ((Msg2) => {\n  Msg2[\"Err\"] = \"Err\";\n  Msg2[\"Info\"] = \"Info\";\n  Msg2[\"Perf\"] = \"Perf\";\n  return Msg2;\n})(Msg || {});\nfunction createInstallTypingsRequest(project, typeAcquisition, unresolvedImports, cachePath) {\n  return {\n    projectName: project.getProjectName(),\n    fileNames: project.getFileNames(\n      /*excludeFilesFromExternalLibraries*/\n      true,\n      /*excludeConfigFiles*/\n      true\n    ).concat(project.getExcludedFiles()),\n    compilerOptions: project.getCompilationSettings(),\n    typeAcquisition,\n    unresolvedImports,\n    projectRootPath: project.getCurrentDirectory(),\n    cachePath,\n    kind: \"discover\"\n  };\n}\nvar Errors;\n((Errors2) => {\n  function ThrowNoProject() {\n    throw new Error(\"No Project.\");\n  }\n  Errors2.ThrowNoProject = ThrowNoProject;\n  function ThrowProjectLanguageServiceDisabled() {\n    throw new Error(\"The project's language service is disabled.\");\n  }\n  Errors2.ThrowProjectLanguageServiceDisabled = ThrowProjectLanguageServiceDisabled;\n  function ThrowProjectDoesNotContainDocument(fileName, project) {\n    throw new Error(`Project '${project.getProjectName()}' does not contain document '${fileName}'`);\n  }\n  Errors2.ThrowProjectDoesNotContainDocument = ThrowProjectDoesNotContainDocument;\n})(Errors || (Errors = {}));\nfunction toNormalizedPath(fileName) {\n  return normalizePath(fileName);\n}\nfunction normalizedPathToPath(normalizedPath, currentDirectory, getCanonicalFileName) {\n  const f = isRootedDiskPath(normalizedPath) ? normalizedPath : getNormalizedAbsolutePath(normalizedPath, currentDirectory);\n  return getCanonicalFileName(f);\n}\nfunction asNormalizedPath(fileName) {\n  return fileName;\n}\nfunction createNormalizedPathMap() {\n  const map2 = /* @__PURE__ */ new Map();\n  return {\n    get(path) {\n      return map2.get(path);\n    },\n    set(path, value) {\n      map2.set(path, value);\n    },\n    contains(path) {\n      return map2.has(path);\n    },\n    remove(path) {\n      map2.delete(path);\n    }\n  };\n}\nfunction isInferredProjectName(name) {\n  return /dev\\/null\\/inferredProject\\d+\\*/.test(name);\n}\nfunction makeInferredProjectName(counter) {\n  return `/dev/null/inferredProject${counter}*`;\n}\nfunction makeAutoImportProviderProjectName(counter) {\n  return `/dev/null/autoImportProviderProject${counter}*`;\n}\nfunction makeAuxiliaryProjectName(counter) {\n  return `/dev/null/auxiliaryProject${counter}*`;\n}\nfunction createSortedArray2() {\n  return [];\n}\n\n// src/server/utilities.ts\nvar ThrottledOperations = class _ThrottledOperations {\n  constructor(host, logger) {\n    this.host = host;\n    this.pendingTimeouts = /* @__PURE__ */ new Map();\n    this.logger = logger.hasLevel(3 /* verbose */) ? logger : void 0;\n  }\n  /**\n   * Wait `number` milliseconds and then invoke `cb`.  If, while waiting, schedule\n   * is called again with the same `operationId`, cancel this operation in favor\n   * of the new one.  (Note that the amount of time the canceled operation had been\n   * waiting does not affect the amount of time that the new operation waits.)\n   */\n  schedule(operationId, delay, cb) {\n    const pendingTimeout = this.pendingTimeouts.get(operationId);\n    if (pendingTimeout) {\n      this.host.clearTimeout(pendingTimeout);\n    }\n    this.pendingTimeouts.set(operationId, this.host.setTimeout(_ThrottledOperations.run, delay, operationId, this, cb));\n    if (this.logger) {\n      this.logger.info(`Scheduled: ${operationId}${pendingTimeout ? \", Cancelled earlier one\" : \"\"}`);\n    }\n  }\n  cancel(operationId) {\n    const pendingTimeout = this.pendingTimeouts.get(operationId);\n    if (!pendingTimeout) return false;\n    this.host.clearTimeout(pendingTimeout);\n    return this.pendingTimeouts.delete(operationId);\n  }\n  static run(operationId, self, cb) {\n    self.pendingTimeouts.delete(operationId);\n    if (self.logger) {\n      self.logger.info(`Running: ${operationId}`);\n    }\n    cb();\n  }\n};\nvar GcTimer = class _GcTimer {\n  constructor(host, delay, logger) {\n    this.host = host;\n    this.delay = delay;\n    this.logger = logger;\n  }\n  scheduleCollect() {\n    if (!this.host.gc || this.timerId !== void 0) {\n      return;\n    }\n    this.timerId = this.host.setTimeout(_GcTimer.run, this.delay, this);\n  }\n  static run(self) {\n    self.timerId = void 0;\n    const log = self.logger.hasLevel(2 /* requestTime */);\n    const before = log && self.host.getMemoryUsage();\n    self.host.gc();\n    if (log) {\n      const after = self.host.getMemoryUsage();\n      self.logger.perftrc(`GC::before ${before}, after ${after}`);\n    }\n  }\n};\nfunction getBaseConfigFileName(configFilePath) {\n  const base = getBaseFileName(configFilePath);\n  return base === \"tsconfig.json\" || base === \"jsconfig.json\" ? base : void 0;\n}\n\n// src/server/_namespaces/ts.server.protocol.ts\nvar ts_server_protocol_exports = {};\n__export(ts_server_protocol_exports, {\n  ClassificationType: () => ClassificationType,\n  CommandTypes: () => CommandTypes,\n  CompletionTriggerKind: () => CompletionTriggerKind,\n  IndentStyle: () => IndentStyle2,\n  JsxEmit: () => JsxEmit2,\n  ModuleKind: () => ModuleKind2,\n  ModuleResolutionKind: () => ModuleResolutionKind2,\n  NewLineKind: () => NewLineKind2,\n  OrganizeImportsMode: () => OrganizeImportsMode,\n  PollingWatchKind: () => PollingWatchKind2,\n  ScriptTarget: () => ScriptTarget11,\n  SemicolonPreference: () => SemicolonPreference,\n  WatchDirectoryKind: () => WatchDirectoryKind2,\n  WatchFileKind: () => WatchFileKind2\n});\n\n// src/server/protocol.ts\nvar CommandTypes = /* @__PURE__ */ ((CommandTypes2) => {\n  CommandTypes2[\"JsxClosingTag\"] = \"jsxClosingTag\";\n  CommandTypes2[\"LinkedEditingRange\"] = \"linkedEditingRange\";\n  CommandTypes2[\"Brace\"] = \"brace\";\n  CommandTypes2[\"BraceFull\"] = \"brace-full\";\n  CommandTypes2[\"BraceCompletion\"] = \"braceCompletion\";\n  CommandTypes2[\"GetSpanOfEnclosingComment\"] = \"getSpanOfEnclosingComment\";\n  CommandTypes2[\"Change\"] = \"change\";\n  CommandTypes2[\"Close\"] = \"close\";\n  CommandTypes2[\"Completions\"] = \"completions\";\n  CommandTypes2[\"CompletionInfo\"] = \"completionInfo\";\n  CommandTypes2[\"CompletionsFull\"] = \"completions-full\";\n  CommandTypes2[\"CompletionDetails\"] = \"completionEntryDetails\";\n  CommandTypes2[\"CompletionDetailsFull\"] = \"completionEntryDetails-full\";\n  CommandTypes2[\"CompileOnSaveAffectedFileList\"] = \"compileOnSaveAffectedFileList\";\n  CommandTypes2[\"CompileOnSaveEmitFile\"] = \"compileOnSaveEmitFile\";\n  CommandTypes2[\"Configure\"] = \"configure\";\n  CommandTypes2[\"Definition\"] = \"definition\";\n  CommandTypes2[\"DefinitionFull\"] = \"definition-full\";\n  CommandTypes2[\"DefinitionAndBoundSpan\"] = \"definitionAndBoundSpan\";\n  CommandTypes2[\"DefinitionAndBoundSpanFull\"] = \"definitionAndBoundSpan-full\";\n  CommandTypes2[\"Implementation\"] = \"implementation\";\n  CommandTypes2[\"ImplementationFull\"] = \"implementation-full\";\n  CommandTypes2[\"EmitOutput\"] = \"emit-output\";\n  CommandTypes2[\"Exit\"] = \"exit\";\n  CommandTypes2[\"FileReferences\"] = \"fileReferences\";\n  CommandTypes2[\"FileReferencesFull\"] = \"fileReferences-full\";\n  CommandTypes2[\"Format\"] = \"format\";\n  CommandTypes2[\"Formatonkey\"] = \"formatonkey\";\n  CommandTypes2[\"FormatFull\"] = \"format-full\";\n  CommandTypes2[\"FormatonkeyFull\"] = \"formatonkey-full\";\n  CommandTypes2[\"FormatRangeFull\"] = \"formatRange-full\";\n  CommandTypes2[\"Geterr\"] = \"geterr\";\n  CommandTypes2[\"GeterrForProject\"] = \"geterrForProject\";\n  CommandTypes2[\"SemanticDiagnosticsSync\"] = \"semanticDiagnosticsSync\";\n  CommandTypes2[\"SyntacticDiagnosticsSync\"] = \"syntacticDiagnosticsSync\";\n  CommandTypes2[\"SuggestionDiagnosticsSync\"] = \"suggestionDiagnosticsSync\";\n  CommandTypes2[\"NavBar\"] = \"navbar\";\n  CommandTypes2[\"NavBarFull\"] = \"navbar-full\";\n  CommandTypes2[\"Navto\"] = \"navto\";\n  CommandTypes2[\"NavtoFull\"] = \"navto-full\";\n  CommandTypes2[\"NavTree\"] = \"navtree\";\n  CommandTypes2[\"NavTreeFull\"] = \"navtree-full\";\n  CommandTypes2[\"DocumentHighlights\"] = \"documentHighlights\";\n  CommandTypes2[\"DocumentHighlightsFull\"] = \"documentHighlights-full\";\n  CommandTypes2[\"Open\"] = \"open\";\n  CommandTypes2[\"Quickinfo\"] = \"quickinfo\";\n  CommandTypes2[\"QuickinfoFull\"] = \"quickinfo-full\";\n  CommandTypes2[\"References\"] = \"references\";\n  CommandTypes2[\"ReferencesFull\"] = \"references-full\";\n  CommandTypes2[\"Reload\"] = \"reload\";\n  CommandTypes2[\"Rename\"] = \"rename\";\n  CommandTypes2[\"RenameInfoFull\"] = \"rename-full\";\n  CommandTypes2[\"RenameLocationsFull\"] = \"renameLocations-full\";\n  CommandTypes2[\"Saveto\"] = \"saveto\";\n  CommandTypes2[\"SignatureHelp\"] = \"signatureHelp\";\n  CommandTypes2[\"SignatureHelpFull\"] = \"signatureHelp-full\";\n  CommandTypes2[\"FindSourceDefinition\"] = \"findSourceDefinition\";\n  CommandTypes2[\"Status\"] = \"status\";\n  CommandTypes2[\"TypeDefinition\"] = \"typeDefinition\";\n  CommandTypes2[\"ProjectInfo\"] = \"projectInfo\";\n  CommandTypes2[\"ReloadProjects\"] = \"reloadProjects\";\n  CommandTypes2[\"Unknown\"] = \"unknown\";\n  CommandTypes2[\"OpenExternalProject\"] = \"openExternalProject\";\n  CommandTypes2[\"OpenExternalProjects\"] = \"openExternalProjects\";\n  CommandTypes2[\"CloseExternalProject\"] = \"closeExternalProject\";\n  CommandTypes2[\"SynchronizeProjectList\"] = \"synchronizeProjectList\";\n  CommandTypes2[\"ApplyChangedToOpenFiles\"] = \"applyChangedToOpenFiles\";\n  CommandTypes2[\"UpdateOpen\"] = \"updateOpen\";\n  CommandTypes2[\"EncodedSyntacticClassificationsFull\"] = \"encodedSyntacticClassifications-full\";\n  CommandTypes2[\"EncodedSemanticClassificationsFull\"] = \"encodedSemanticClassifications-full\";\n  CommandTypes2[\"Cleanup\"] = \"cleanup\";\n  CommandTypes2[\"GetOutliningSpans\"] = \"getOutliningSpans\";\n  CommandTypes2[\"GetOutliningSpansFull\"] = \"outliningSpans\";\n  CommandTypes2[\"TodoComments\"] = \"todoComments\";\n  CommandTypes2[\"Indentation\"] = \"indentation\";\n  CommandTypes2[\"DocCommentTemplate\"] = \"docCommentTemplate\";\n  CommandTypes2[\"CompilerOptionsDiagnosticsFull\"] = \"compilerOptionsDiagnostics-full\";\n  CommandTypes2[\"NameOrDottedNameSpan\"] = \"nameOrDottedNameSpan\";\n  CommandTypes2[\"BreakpointStatement\"] = \"breakpointStatement\";\n  CommandTypes2[\"CompilerOptionsForInferredProjects\"] = \"compilerOptionsForInferredProjects\";\n  CommandTypes2[\"GetCodeFixes\"] = \"getCodeFixes\";\n  CommandTypes2[\"GetCodeFixesFull\"] = \"getCodeFixes-full\";\n  CommandTypes2[\"GetCombinedCodeFix\"] = \"getCombinedCodeFix\";\n  CommandTypes2[\"GetCombinedCodeFixFull\"] = \"getCombinedCodeFix-full\";\n  CommandTypes2[\"ApplyCodeActionCommand\"] = \"applyCodeActionCommand\";\n  CommandTypes2[\"GetSupportedCodeFixes\"] = \"getSupportedCodeFixes\";\n  CommandTypes2[\"GetApplicableRefactors\"] = \"getApplicableRefactors\";\n  CommandTypes2[\"GetEditsForRefactor\"] = \"getEditsForRefactor\";\n  CommandTypes2[\"GetMoveToRefactoringFileSuggestions\"] = \"getMoveToRefactoringFileSuggestions\";\n  CommandTypes2[\"PreparePasteEdits\"] = \"preparePasteEdits\";\n  CommandTypes2[\"GetPasteEdits\"] = \"getPasteEdits\";\n  CommandTypes2[\"GetEditsForRefactorFull\"] = \"getEditsForRefactor-full\";\n  CommandTypes2[\"OrganizeImports\"] = \"organizeImports\";\n  CommandTypes2[\"OrganizeImportsFull\"] = \"organizeImports-full\";\n  CommandTypes2[\"GetEditsForFileRename\"] = \"getEditsForFileRename\";\n  CommandTypes2[\"GetEditsForFileRenameFull\"] = \"getEditsForFileRename-full\";\n  CommandTypes2[\"ConfigurePlugin\"] = \"configurePlugin\";\n  CommandTypes2[\"SelectionRange\"] = \"selectionRange\";\n  CommandTypes2[\"SelectionRangeFull\"] = \"selectionRange-full\";\n  CommandTypes2[\"ToggleLineComment\"] = \"toggleLineComment\";\n  CommandTypes2[\"ToggleLineCommentFull\"] = \"toggleLineComment-full\";\n  CommandTypes2[\"ToggleMultilineComment\"] = \"toggleMultilineComment\";\n  CommandTypes2[\"ToggleMultilineCommentFull\"] = \"toggleMultilineComment-full\";\n  CommandTypes2[\"CommentSelection\"] = \"commentSelection\";\n  CommandTypes2[\"CommentSelectionFull\"] = \"commentSelection-full\";\n  CommandTypes2[\"UncommentSelection\"] = \"uncommentSelection\";\n  CommandTypes2[\"UncommentSelectionFull\"] = \"uncommentSelection-full\";\n  CommandTypes2[\"PrepareCallHierarchy\"] = \"prepareCallHierarchy\";\n  CommandTypes2[\"ProvideCallHierarchyIncomingCalls\"] = \"provideCallHierarchyIncomingCalls\";\n  CommandTypes2[\"ProvideCallHierarchyOutgoingCalls\"] = \"provideCallHierarchyOutgoingCalls\";\n  CommandTypes2[\"ProvideInlayHints\"] = \"provideInlayHints\";\n  CommandTypes2[\"WatchChange\"] = \"watchChange\";\n  CommandTypes2[\"MapCode\"] = \"mapCode\";\n  CommandTypes2[\"CopilotRelated\"] = \"copilotRelated\";\n  return CommandTypes2;\n})(CommandTypes || {});\nvar WatchFileKind2 = /* @__PURE__ */ ((WatchFileKind3) => {\n  WatchFileKind3[\"FixedPollingInterval\"] = \"FixedPollingInterval\";\n  WatchFileKind3[\"PriorityPollingInterval\"] = \"PriorityPollingInterval\";\n  WatchFileKind3[\"DynamicPriorityPolling\"] = \"DynamicPriorityPolling\";\n  WatchFileKind3[\"FixedChunkSizePolling\"] = \"FixedChunkSizePolling\";\n  WatchFileKind3[\"UseFsEvents\"] = \"UseFsEvents\";\n  WatchFileKind3[\"UseFsEventsOnParentDirectory\"] = \"UseFsEventsOnParentDirectory\";\n  return WatchFileKind3;\n})(WatchFileKind2 || {});\nvar WatchDirectoryKind2 = /* @__PURE__ */ ((WatchDirectoryKind3) => {\n  WatchDirectoryKind3[\"UseFsEvents\"] = \"UseFsEvents\";\n  WatchDirectoryKind3[\"FixedPollingInterval\"] = \"FixedPollingInterval\";\n  WatchDirectoryKind3[\"DynamicPriorityPolling\"] = \"DynamicPriorityPolling\";\n  WatchDirectoryKind3[\"FixedChunkSizePolling\"] = \"FixedChunkSizePolling\";\n  return WatchDirectoryKind3;\n})(WatchDirectoryKind2 || {});\nvar PollingWatchKind2 = /* @__PURE__ */ ((PollingWatchKind3) => {\n  PollingWatchKind3[\"FixedInterval\"] = \"FixedInterval\";\n  PollingWatchKind3[\"PriorityInterval\"] = \"PriorityInterval\";\n  PollingWatchKind3[\"DynamicPriority\"] = \"DynamicPriority\";\n  PollingWatchKind3[\"FixedChunkSize\"] = \"FixedChunkSize\";\n  return PollingWatchKind3;\n})(PollingWatchKind2 || {});\nvar IndentStyle2 = /* @__PURE__ */ ((IndentStyle3) => {\n  IndentStyle3[\"None\"] = \"None\";\n  IndentStyle3[\"Block\"] = \"Block\";\n  IndentStyle3[\"Smart\"] = \"Smart\";\n  return IndentStyle3;\n})(IndentStyle2 || {});\nvar JsxEmit2 = /* @__PURE__ */ ((JsxEmit3) => {\n  JsxEmit3[\"None\"] = \"none\";\n  JsxEmit3[\"Preserve\"] = \"preserve\";\n  JsxEmit3[\"ReactNative\"] = \"react-native\";\n  JsxEmit3[\"React\"] = \"react\";\n  JsxEmit3[\"ReactJSX\"] = \"react-jsx\";\n  JsxEmit3[\"ReactJSXDev\"] = \"react-jsxdev\";\n  return JsxEmit3;\n})(JsxEmit2 || {});\nvar ModuleKind2 = /* @__PURE__ */ ((ModuleKind3) => {\n  ModuleKind3[\"None\"] = \"none\";\n  ModuleKind3[\"CommonJS\"] = \"commonjs\";\n  ModuleKind3[\"AMD\"] = \"amd\";\n  ModuleKind3[\"UMD\"] = \"umd\";\n  ModuleKind3[\"System\"] = \"system\";\n  ModuleKind3[\"ES6\"] = \"es6\";\n  ModuleKind3[\"ES2015\"] = \"es2015\";\n  ModuleKind3[\"ES2020\"] = \"es2020\";\n  ModuleKind3[\"ES2022\"] = \"es2022\";\n  ModuleKind3[\"ESNext\"] = \"esnext\";\n  ModuleKind3[\"Node16\"] = \"node16\";\n  ModuleKind3[\"Node18\"] = \"node18\";\n  ModuleKind3[\"Node20\"] = \"node20\";\n  ModuleKind3[\"NodeNext\"] = \"nodenext\";\n  ModuleKind3[\"Preserve\"] = \"preserve\";\n  return ModuleKind3;\n})(ModuleKind2 || {});\nvar ModuleResolutionKind2 = /* @__PURE__ */ ((ModuleResolutionKind3) => {\n  ModuleResolutionKind3[\"Classic\"] = \"classic\";\n  ModuleResolutionKind3[\"Node\"] = \"node\";\n  ModuleResolutionKind3[\"NodeJs\"] = \"node\";\n  ModuleResolutionKind3[\"Node10\"] = \"node10\";\n  ModuleResolutionKind3[\"Node16\"] = \"node16\";\n  ModuleResolutionKind3[\"NodeNext\"] = \"nodenext\";\n  ModuleResolutionKind3[\"Bundler\"] = \"bundler\";\n  return ModuleResolutionKind3;\n})(ModuleResolutionKind2 || {});\nvar NewLineKind2 = /* @__PURE__ */ ((NewLineKind3) => {\n  NewLineKind3[\"Crlf\"] = \"Crlf\";\n  NewLineKind3[\"Lf\"] = \"Lf\";\n  return NewLineKind3;\n})(NewLineKind2 || {});\nvar ScriptTarget11 = /* @__PURE__ */ ((ScriptTarget12) => {\n  ScriptTarget12[\"ES3\"] = \"es3\";\n  ScriptTarget12[\"ES5\"] = \"es5\";\n  ScriptTarget12[\"ES6\"] = \"es6\";\n  ScriptTarget12[\"ES2015\"] = \"es2015\";\n  ScriptTarget12[\"ES2016\"] = \"es2016\";\n  ScriptTarget12[\"ES2017\"] = \"es2017\";\n  ScriptTarget12[\"ES2018\"] = \"es2018\";\n  ScriptTarget12[\"ES2019\"] = \"es2019\";\n  ScriptTarget12[\"ES2020\"] = \"es2020\";\n  ScriptTarget12[\"ES2021\"] = \"es2021\";\n  ScriptTarget12[\"ES2022\"] = \"es2022\";\n  ScriptTarget12[\"ES2023\"] = \"es2023\";\n  ScriptTarget12[\"ES2024\"] = \"es2024\";\n  ScriptTarget12[\"ESNext\"] = \"esnext\";\n  ScriptTarget12[\"JSON\"] = \"json\";\n  ScriptTarget12[\"Latest\"] = \"esnext\" /* ESNext */;\n  return ScriptTarget12;\n})(ScriptTarget11 || {});\n{\n}\n\n// src/server/scriptInfo.ts\nvar TextStorage = class {\n  constructor(host, info, initialVersion) {\n    this.host = host;\n    this.info = info;\n    /**\n     * True if the text is for the file thats open in the editor\n     */\n    this.isOpen = false;\n    /**\n     * True if the text present is the text from the file on the disk\n     */\n    this.ownFileText = false;\n    /**\n     * True when reloading contents of file from the disk is pending\n     */\n    this.pendingReloadFromDisk = false;\n    this.version = initialVersion || 0;\n  }\n  getVersion() {\n    return this.svc ? `SVC-${this.version}-${this.svc.getSnapshotVersion()}` : `Text-${this.version}`;\n  }\n  hasScriptVersionCache_TestOnly() {\n    return this.svc !== void 0;\n  }\n  resetSourceMapInfo() {\n    this.info.sourceFileLike = void 0;\n    this.info.closeSourceMapFileWatcher();\n    this.info.sourceMapFilePath = void 0;\n    this.info.declarationInfoPath = void 0;\n    this.info.sourceInfos = void 0;\n    this.info.documentPositionMapper = void 0;\n  }\n  /** Public for testing */\n  useText(newText) {\n    this.svc = void 0;\n    this.text = newText;\n    this.textSnapshot = void 0;\n    this.lineMap = void 0;\n    this.fileSize = void 0;\n    this.resetSourceMapInfo();\n    this.version++;\n  }\n  edit(start, end, newText) {\n    this.switchToScriptVersionCache().edit(start, end - start, newText);\n    this.ownFileText = false;\n    this.text = void 0;\n    this.textSnapshot = void 0;\n    this.lineMap = void 0;\n    this.fileSize = void 0;\n    this.resetSourceMapInfo();\n  }\n  /**\n   * Set the contents as newText\n   * returns true if text changed\n   */\n  reload(newText) {\n    Debug.assert(newText !== void 0);\n    this.pendingReloadFromDisk = false;\n    if (!this.text && this.svc) {\n      this.text = getSnapshotText(this.svc.getSnapshot());\n    }\n    if (this.text !== newText) {\n      this.useText(newText);\n      this.ownFileText = false;\n      return true;\n    }\n    return false;\n  }\n  /**\n   * Reads the contents from tempFile(if supplied) or own file and sets it as contents\n   * returns true if text changed\n   */\n  reloadWithFileText(tempFileName) {\n    const { text: newText, fileSize } = tempFileName || !this.info.isDynamicOrHasMixedContent() ? this.getFileTextAndSize(tempFileName) : { text: \"\", fileSize: void 0 };\n    const reloaded = this.reload(newText);\n    this.fileSize = fileSize;\n    this.ownFileText = !tempFileName || tempFileName === this.info.fileName;\n    if (this.ownFileText && this.info.mTime === missingFileModifiedTime.getTime()) {\n      this.info.mTime = (this.host.getModifiedTime(this.info.fileName) || missingFileModifiedTime).getTime();\n    }\n    return reloaded;\n  }\n  /**\n   * Schedule reload from the disk if its not already scheduled and its not own text\n   * returns true when scheduling reload\n   */\n  scheduleReloadIfNeeded() {\n    return !this.pendingReloadFromDisk && !this.ownFileText ? this.pendingReloadFromDisk = true : false;\n  }\n  delayReloadFromFileIntoText() {\n    this.pendingReloadFromDisk = true;\n  }\n  /**\n   * For telemetry purposes, we would like to be able to report the size of the file.\n   * However, we do not want telemetry to require extra file I/O so we report a size\n   * that may be stale (e.g. may not reflect change made on disk since the last reload).\n   * NB: Will read from disk if the file contents have never been loaded because\n   * telemetry falsely indicating size 0 would be counter-productive.\n   */\n  getTelemetryFileSize() {\n    return !!this.fileSize ? this.fileSize : !!this.text ? this.text.length : !!this.svc ? this.svc.getSnapshot().getLength() : this.getSnapshot().getLength();\n  }\n  getSnapshot() {\n    var _a;\n    return ((_a = this.tryUseScriptVersionCache()) == null ? void 0 : _a.getSnapshot()) || (this.textSnapshot ?? (this.textSnapshot = ScriptSnapshot.fromString(Debug.checkDefined(this.text))));\n  }\n  getAbsolutePositionAndLineText(oneBasedLine) {\n    const svc = this.tryUseScriptVersionCache();\n    if (svc) return svc.getAbsolutePositionAndLineText(oneBasedLine);\n    const lineMap = this.getLineMap();\n    return oneBasedLine <= lineMap.length ? {\n      absolutePosition: lineMap[oneBasedLine - 1],\n      lineText: this.text.substring(lineMap[oneBasedLine - 1], lineMap[oneBasedLine])\n    } : {\n      absolutePosition: this.text.length,\n      lineText: void 0\n    };\n  }\n  /**\n   *  @param line 0 based index\n   */\n  lineToTextSpan(line) {\n    const svc = this.tryUseScriptVersionCache();\n    if (svc) return svc.lineToTextSpan(line);\n    const lineMap = this.getLineMap();\n    const start = lineMap[line];\n    const end = line + 1 < lineMap.length ? lineMap[line + 1] : this.text.length;\n    return createTextSpanFromBounds(start, end);\n  }\n  /**\n   * @param line 1 based index\n   * @param offset 1 based index\n   */\n  lineOffsetToPosition(line, offset, allowEdits) {\n    const svc = this.tryUseScriptVersionCache();\n    return svc ? svc.lineOffsetToPosition(line, offset) : computePositionOfLineAndCharacter(this.getLineMap(), line - 1, offset - 1, this.text, allowEdits);\n  }\n  positionToLineOffset(position) {\n    const svc = this.tryUseScriptVersionCache();\n    if (svc) return svc.positionToLineOffset(position);\n    const { line, character } = computeLineAndCharacterOfPosition(this.getLineMap(), position);\n    return { line: line + 1, offset: character + 1 };\n  }\n  getFileTextAndSize(tempFileName) {\n    let text;\n    const fileName = tempFileName || this.info.fileName;\n    const getText = () => text === void 0 ? text = this.host.readFile(fileName) || \"\" : text;\n    if (!hasTSFileExtension(this.info.fileName)) {\n      const fileSize = this.host.getFileSize ? this.host.getFileSize(fileName) : getText().length;\n      if (fileSize > maxFileSize) {\n        Debug.assert(!!this.info.containingProjects.length);\n        const service = this.info.containingProjects[0].projectService;\n        service.logger.info(`Skipped loading contents of large file ${fileName} for info ${this.info.fileName}: fileSize: ${fileSize}`);\n        this.info.containingProjects[0].projectService.sendLargeFileReferencedEvent(fileName, fileSize);\n        return { text: \"\", fileSize };\n      }\n    }\n    return { text: getText() };\n  }\n  /** @internal */\n  switchToScriptVersionCache() {\n    if (!this.svc || this.pendingReloadFromDisk) {\n      this.svc = ScriptVersionCache.fromString(this.getOrLoadText());\n      this.textSnapshot = void 0;\n      this.version++;\n    }\n    return this.svc;\n  }\n  tryUseScriptVersionCache() {\n    if (!this.svc || this.pendingReloadFromDisk) {\n      this.getOrLoadText();\n    }\n    if (this.isOpen) {\n      if (!this.svc && !this.textSnapshot) {\n        this.svc = ScriptVersionCache.fromString(Debug.checkDefined(this.text));\n        this.textSnapshot = void 0;\n      }\n      return this.svc;\n    }\n    return this.svc;\n  }\n  getOrLoadText() {\n    if (this.text === void 0 || this.pendingReloadFromDisk) {\n      Debug.assert(!this.svc || this.pendingReloadFromDisk, \"ScriptVersionCache should not be set when reloading from disk\");\n      this.reloadWithFileText();\n    }\n    return this.text;\n  }\n  getLineMap() {\n    Debug.assert(!this.svc, \"ScriptVersionCache should not be set\");\n    return this.lineMap || (this.lineMap = computeLineStarts(Debug.checkDefined(this.text)));\n  }\n  getLineInfo() {\n    const svc = this.tryUseScriptVersionCache();\n    if (svc) {\n      return {\n        getLineCount: () => svc.getLineCount(),\n        getLineText: (line) => svc.getAbsolutePositionAndLineText(line + 1).lineText\n      };\n    }\n    const lineMap = this.getLineMap();\n    return getLineInfo(this.text, lineMap);\n  }\n};\nfunction isDynamicFileName(fileName) {\n  return fileName[0] === \"^\" || (fileName.includes(\"walkThroughSnippet:/\") || fileName.includes(\"untitled:/\")) && getBaseFileName(fileName)[0] === \"^\" || fileName.includes(\":^\") && !fileName.includes(directorySeparator);\n}\nvar ScriptInfo = class {\n  constructor(host, fileName, scriptKind, hasMixedContent, path, initialVersion) {\n    this.host = host;\n    this.fileName = fileName;\n    this.scriptKind = scriptKind;\n    this.hasMixedContent = hasMixedContent;\n    this.path = path;\n    /**\n     * All projects that include this file\n     */\n    this.containingProjects = [];\n    this.isDynamic = isDynamicFileName(fileName);\n    this.textStorage = new TextStorage(host, this, initialVersion);\n    if (hasMixedContent || this.isDynamic) {\n      this.realpath = this.path;\n    }\n    this.scriptKind = scriptKind ? scriptKind : getScriptKindFromFileName(fileName);\n  }\n  /** @internal */\n  isDynamicOrHasMixedContent() {\n    return this.hasMixedContent || this.isDynamic;\n  }\n  isScriptOpen() {\n    return this.textStorage.isOpen;\n  }\n  open(newText) {\n    this.textStorage.isOpen = true;\n    if (newText !== void 0 && this.textStorage.reload(newText)) {\n      this.markContainingProjectsAsDirty();\n    }\n  }\n  close(fileExists = true) {\n    this.textStorage.isOpen = false;\n    if (fileExists && this.textStorage.scheduleReloadIfNeeded()) {\n      this.markContainingProjectsAsDirty();\n    }\n  }\n  getSnapshot() {\n    return this.textStorage.getSnapshot();\n  }\n  ensureRealPath() {\n    if (this.realpath === void 0) {\n      this.realpath = this.path;\n      if (this.host.realpath) {\n        Debug.assert(!!this.containingProjects.length);\n        const project = this.containingProjects[0];\n        const realpath = this.host.realpath(this.path);\n        if (realpath) {\n          this.realpath = project.toPath(realpath);\n          if (this.realpath !== this.path) {\n            project.projectService.realpathToScriptInfos.add(this.realpath, this);\n          }\n        }\n      }\n    }\n  }\n  /** @internal */\n  getRealpathIfDifferent() {\n    return this.realpath && this.realpath !== this.path ? this.realpath : void 0;\n  }\n  /**\n   * @internal\n   * Does not compute realpath; uses precomputed result. Use `ensureRealPath`\n   * first if a definite result is needed.\n   */\n  isSymlink() {\n    return this.realpath && this.realpath !== this.path;\n  }\n  getFormatCodeSettings() {\n    return this.formatSettings;\n  }\n  getPreferences() {\n    return this.preferences;\n  }\n  attachToProject(project) {\n    const isNew = !this.isAttached(project);\n    if (isNew) {\n      this.containingProjects.push(project);\n      if (!project.getCompilerOptions().preserveSymlinks) {\n        this.ensureRealPath();\n      }\n      project.onFileAddedOrRemoved(this.isSymlink());\n    }\n    return isNew;\n  }\n  isAttached(project) {\n    switch (this.containingProjects.length) {\n      case 0:\n        return false;\n      case 1:\n        return this.containingProjects[0] === project;\n      case 2:\n        return this.containingProjects[0] === project || this.containingProjects[1] === project;\n      default:\n        return contains(this.containingProjects, project);\n    }\n  }\n  detachFromProject(project) {\n    switch (this.containingProjects.length) {\n      case 0:\n        return;\n      case 1:\n        if (this.containingProjects[0] === project) {\n          project.onFileAddedOrRemoved(this.isSymlink());\n          this.containingProjects.pop();\n        }\n        break;\n      case 2:\n        if (this.containingProjects[0] === project) {\n          project.onFileAddedOrRemoved(this.isSymlink());\n          this.containingProjects[0] = this.containingProjects.pop();\n        } else if (this.containingProjects[1] === project) {\n          project.onFileAddedOrRemoved(this.isSymlink());\n          this.containingProjects.pop();\n        }\n        break;\n      default:\n        if (orderedRemoveItem(this.containingProjects, project)) {\n          project.onFileAddedOrRemoved(this.isSymlink());\n        }\n        break;\n    }\n  }\n  detachAllProjects() {\n    for (const p of this.containingProjects) {\n      if (isConfiguredProject(p)) {\n        p.getCachedDirectoryStructureHost().addOrDeleteFile(this.fileName, this.path, 2 /* Deleted */);\n      }\n      const existingRoot = p.getRootFilesMap().get(this.path);\n      p.removeFile(\n        this,\n        /*fileExists*/\n        false,\n        /*detachFromProject*/\n        false\n      );\n      p.onFileAddedOrRemoved(this.isSymlink());\n      if (existingRoot && !isInferredProject(p)) {\n        p.addMissingFileRoot(existingRoot.fileName);\n      }\n    }\n    clear(this.containingProjects);\n  }\n  getDefaultProject() {\n    switch (this.containingProjects.length) {\n      case 0:\n        return Errors.ThrowNoProject();\n      case 1:\n        return isProjectDeferredClose(this.containingProjects[0]) || isBackgroundProject(this.containingProjects[0]) ? Errors.ThrowNoProject() : this.containingProjects[0];\n      default:\n        let firstConfiguredProject;\n        let firstInferredProject;\n        let firstNonSourceOfProjectReferenceRedirect;\n        let defaultConfiguredProject;\n        for (let index = 0; index < this.containingProjects.length; index++) {\n          const project = this.containingProjects[index];\n          if (isConfiguredProject(project)) {\n            if (project.deferredClose) continue;\n            if (!project.isSourceOfProjectReferenceRedirect(this.fileName)) {\n              if (defaultConfiguredProject === void 0 && index !== this.containingProjects.length - 1) {\n                defaultConfiguredProject = project.projectService.findDefaultConfiguredProject(this) || false;\n              }\n              if (defaultConfiguredProject === project) return project;\n              if (!firstNonSourceOfProjectReferenceRedirect) firstNonSourceOfProjectReferenceRedirect = project;\n            }\n            if (!firstConfiguredProject) firstConfiguredProject = project;\n          } else if (isExternalProject(project)) {\n            return project;\n          } else if (!firstInferredProject && isInferredProject(project)) {\n            firstInferredProject = project;\n          }\n        }\n        return (defaultConfiguredProject || firstNonSourceOfProjectReferenceRedirect || firstConfiguredProject || firstInferredProject) ?? Errors.ThrowNoProject();\n    }\n  }\n  registerFileUpdate() {\n    for (const p of this.containingProjects) {\n      p.registerFileUpdate(this.path);\n    }\n  }\n  setOptions(formatSettings, preferences) {\n    if (formatSettings) {\n      if (!this.formatSettings) {\n        this.formatSettings = getDefaultFormatCodeSettings(this.host.newLine);\n        assign(this.formatSettings, formatSettings);\n      } else {\n        this.formatSettings = { ...this.formatSettings, ...formatSettings };\n      }\n    }\n    if (preferences) {\n      if (!this.preferences) {\n        this.preferences = emptyOptions;\n      }\n      this.preferences = { ...this.preferences, ...preferences };\n    }\n  }\n  getLatestVersion() {\n    this.textStorage.getSnapshot();\n    return this.textStorage.getVersion();\n  }\n  saveTo(fileName) {\n    this.host.writeFile(fileName, getSnapshotText(this.textStorage.getSnapshot()));\n  }\n  /** @internal */\n  delayReloadNonMixedContentFile() {\n    Debug.assert(!this.isDynamicOrHasMixedContent());\n    this.textStorage.delayReloadFromFileIntoText();\n    this.markContainingProjectsAsDirty();\n  }\n  reloadFromFile(tempFileName) {\n    if (this.textStorage.reloadWithFileText(tempFileName)) {\n      this.markContainingProjectsAsDirty();\n      return true;\n    }\n    return false;\n  }\n  editContent(start, end, newText) {\n    this.textStorage.edit(start, end, newText);\n    this.markContainingProjectsAsDirty();\n  }\n  markContainingProjectsAsDirty() {\n    for (const p of this.containingProjects) {\n      p.markFileAsDirty(this.path);\n    }\n  }\n  isOrphan() {\n    return this.deferredDelete || !forEach(this.containingProjects, (p) => !p.isOrphan());\n  }\n  /**\n   *  @param line 1 based index\n   */\n  lineToTextSpan(line) {\n    return this.textStorage.lineToTextSpan(line);\n  }\n  // eslint-disable-line @typescript-eslint/unified-signatures\n  lineOffsetToPosition(line, offset, allowEdits) {\n    return this.textStorage.lineOffsetToPosition(line, offset, allowEdits);\n  }\n  positionToLineOffset(position) {\n    failIfInvalidPosition(position);\n    const location = this.textStorage.positionToLineOffset(position);\n    failIfInvalidLocation(location);\n    return location;\n  }\n  isJavaScript() {\n    return this.scriptKind === 1 /* JS */ || this.scriptKind === 2 /* JSX */;\n  }\n  /** @internal */\n  closeSourceMapFileWatcher() {\n    if (this.sourceMapFilePath && !isString(this.sourceMapFilePath)) {\n      closeFileWatcherOf(this.sourceMapFilePath);\n      this.sourceMapFilePath = void 0;\n    }\n  }\n};\nfunction failIfInvalidPosition(position) {\n  Debug.assert(typeof position === \"number\", `Expected position ${position} to be a number.`);\n  Debug.assert(position >= 0, `Expected position to be non-negative.`);\n}\nfunction failIfInvalidLocation(location) {\n  Debug.assert(typeof location.line === \"number\", `Expected line ${location.line} to be a number.`);\n  Debug.assert(typeof location.offset === \"number\", `Expected offset ${location.offset} to be a number.`);\n  Debug.assert(location.line > 0, `Expected line to be non-${location.line === 0 ? \"zero\" : \"negative\"}`);\n  Debug.assert(location.offset > 0, `Expected offset to be non-${location.offset === 0 ? \"zero\" : \"negative\"}`);\n}\nfunction scriptInfoIsContainedByBackgroundProject(info) {\n  return some(\n    info.containingProjects,\n    isBackgroundProject\n  );\n}\nfunction scriptInfoIsContainedByDeferredClosedProject(info) {\n  return some(\n    info.containingProjects,\n    isProjectDeferredClose\n  );\n}\n\n// src/server/project.ts\nvar ProjectKind = /* @__PURE__ */ ((ProjectKind2) => {\n  ProjectKind2[ProjectKind2[\"Inferred\"] = 0] = \"Inferred\";\n  ProjectKind2[ProjectKind2[\"Configured\"] = 1] = \"Configured\";\n  ProjectKind2[ProjectKind2[\"External\"] = 2] = \"External\";\n  ProjectKind2[ProjectKind2[\"AutoImportProvider\"] = 3] = \"AutoImportProvider\";\n  ProjectKind2[ProjectKind2[\"Auxiliary\"] = 4] = \"Auxiliary\";\n  return ProjectKind2;\n})(ProjectKind || {});\nfunction countEachFileTypes(infos, includeSizes = false) {\n  const result = {\n    js: 0,\n    jsSize: 0,\n    jsx: 0,\n    jsxSize: 0,\n    ts: 0,\n    tsSize: 0,\n    tsx: 0,\n    tsxSize: 0,\n    dts: 0,\n    dtsSize: 0,\n    deferred: 0,\n    deferredSize: 0\n  };\n  for (const info of infos) {\n    const fileSize = includeSizes ? info.textStorage.getTelemetryFileSize() : 0;\n    switch (info.scriptKind) {\n      case 1 /* JS */:\n        result.js += 1;\n        result.jsSize += fileSize;\n        break;\n      case 2 /* JSX */:\n        result.jsx += 1;\n        result.jsxSize += fileSize;\n        break;\n      case 3 /* TS */:\n        if (isDeclarationFileName(info.fileName)) {\n          result.dts += 1;\n          result.dtsSize += fileSize;\n        } else {\n          result.ts += 1;\n          result.tsSize += fileSize;\n        }\n        break;\n      case 4 /* TSX */:\n        result.tsx += 1;\n        result.tsxSize += fileSize;\n        break;\n      case 7 /* Deferred */:\n        result.deferred += 1;\n        result.deferredSize += fileSize;\n        break;\n    }\n  }\n  return result;\n}\nfunction hasOneOrMoreJsAndNoTsFiles(project) {\n  const counts2 = countEachFileTypes(project.getScriptInfos());\n  return counts2.js > 0 && counts2.ts === 0 && counts2.tsx === 0;\n}\nfunction allRootFilesAreJsOrDts(project) {\n  const counts2 = countEachFileTypes(project.getRootScriptInfos());\n  return counts2.ts === 0 && counts2.tsx === 0;\n}\nfunction allFilesAreJsOrDts(project) {\n  const counts2 = countEachFileTypes(project.getScriptInfos());\n  return counts2.ts === 0 && counts2.tsx === 0;\n}\nfunction hasNoTypeScriptSource(fileNames) {\n  return !fileNames.some((fileName) => fileExtensionIs(fileName, \".ts\" /* Ts */) && !isDeclarationFileName(fileName) || fileExtensionIs(fileName, \".tsx\" /* Tsx */));\n}\nfunction isGeneratedFileWatcher(watch) {\n  return watch.generatedFilePath !== void 0;\n}\nfunction setIsEqualTo(arr1, arr2) {\n  if (arr1 === arr2) {\n    return true;\n  }\n  if ((arr1 || emptyArray2).length === 0 && (arr2 || emptyArray2).length === 0) {\n    return true;\n  }\n  const set = /* @__PURE__ */ new Map();\n  let unique = 0;\n  for (const v of arr1) {\n    if (set.get(v) !== true) {\n      set.set(v, true);\n      unique++;\n    }\n  }\n  for (const v of arr2) {\n    const isSet = set.get(v);\n    if (isSet === void 0) {\n      return false;\n    }\n    if (isSet === true) {\n      set.set(v, false);\n      unique--;\n    }\n  }\n  return unique === 0;\n}\nfunction typeAcquisitionChanged(opt1, opt2) {\n  return opt1.enable !== opt2.enable || !setIsEqualTo(opt1.include, opt2.include) || !setIsEqualTo(opt1.exclude, opt2.exclude);\n}\nfunction compilerOptionsChanged(opt1, opt2) {\n  return getAllowJSCompilerOption(opt1) !== getAllowJSCompilerOption(opt2);\n}\nfunction unresolvedImportsChanged(imports1, imports2) {\n  if (imports1 === imports2) {\n    return false;\n  }\n  return !arrayIsEqualTo(imports1, imports2);\n}\nvar Project2 = class _Project {\n  /** @internal */\n  constructor(projectName, projectKind, projectService, hasExplicitListOfFiles, lastFileExceededProgramSize, compilerOptions, compileOnSaveEnabled, watchOptions, directoryStructureHost, currentDirectory) {\n    this.projectKind = projectKind;\n    this.projectService = projectService;\n    this.compilerOptions = compilerOptions;\n    this.compileOnSaveEnabled = compileOnSaveEnabled;\n    this.watchOptions = watchOptions;\n    this.rootFilesMap = /* @__PURE__ */ new Map();\n    /** @internal */\n    this.plugins = [];\n    /**\n     * This is map from files to unresolved imports in it\n     * Maop does not contain entries for files that do not have unresolved imports\n     * This helps in containing the set of files to invalidate\n     *\n     * @internal\n     */\n    this.cachedUnresolvedImportsPerFile = /* @__PURE__ */ new Map();\n    this.hasAddedorRemovedFiles = false;\n    this.hasAddedOrRemovedSymlinks = false;\n    /**\n     * Last version that was reported.\n     */\n    this.lastReportedVersion = 0;\n    /**\n     * Current project's program version. (incremented everytime new program is created that is not complete reuse from the old one)\n     * This property is changed in 'updateGraph' based on the set of files in program\n     * @internal\n     */\n    this.projectProgramVersion = 0;\n    /**\n     * Current version of the project state. It is changed when:\n     * - new root file was added/removed\n     * - edit happen in some file that is currently included in the project.\n     * This property is different from projectStructureVersion since in most cases edits don't affect set of files in the project\n     * @internal\n     */\n    this.projectStateVersion = 0;\n    /** @internal */\n    this.initialLoadPending = false;\n    /** @internal */\n    this.dirty = false;\n    /** @internal */\n    this.typingFiles = emptyArray2;\n    this.moduleSpecifierCache = createModuleSpecifierCache(this);\n    /** @internal */\n    this.createHash = maybeBind(this.projectService.host, this.projectService.host.createHash);\n    /** @internal */\n    this.globalCacheResolutionModuleName = ts_JsTyping_exports.nonRelativeModuleNameForTypingCache;\n    /** @internal */\n    this.updateFromProjectInProgress = false;\n    projectService.logger.info(`Creating ${ProjectKind[projectKind]}Project: ${projectName}, currentDirectory: ${currentDirectory}`);\n    this.projectName = projectName;\n    this.directoryStructureHost = directoryStructureHost;\n    this.currentDirectory = this.projectService.getNormalizedAbsolutePath(currentDirectory);\n    this.getCanonicalFileName = this.projectService.toCanonicalFileName;\n    this.jsDocParsingMode = this.projectService.jsDocParsingMode;\n    this.cancellationToken = new ThrottledCancellationToken(this.projectService.cancellationToken, this.projectService.throttleWaitMilliseconds);\n    if (!this.compilerOptions) {\n      this.compilerOptions = getDefaultCompilerOptions2();\n      this.compilerOptions.allowNonTsExtensions = true;\n      this.compilerOptions.allowJs = true;\n    } else if (hasExplicitListOfFiles || getAllowJSCompilerOption(this.compilerOptions) || this.projectService.hasDeferredExtension()) {\n      this.compilerOptions.allowNonTsExtensions = true;\n    }\n    switch (projectService.serverMode) {\n      case 0 /* Semantic */:\n        this.languageServiceEnabled = true;\n        break;\n      case 1 /* PartialSemantic */:\n        this.languageServiceEnabled = true;\n        this.compilerOptions.noResolve = true;\n        this.compilerOptions.types = [];\n        break;\n      case 2 /* Syntactic */:\n        this.languageServiceEnabled = false;\n        this.compilerOptions.noResolve = true;\n        this.compilerOptions.types = [];\n        break;\n      default:\n        Debug.assertNever(projectService.serverMode);\n    }\n    this.setInternalCompilerOptionsForEmittingJsFiles();\n    const host = this.projectService.host;\n    if (this.projectService.logger.loggingEnabled()) {\n      this.trace = (s) => this.writeLog(s);\n    } else if (host.trace) {\n      this.trace = (s) => host.trace(s);\n    }\n    this.realpath = maybeBind(host, host.realpath);\n    this.preferNonRecursiveWatch = this.projectService.canUseWatchEvents || host.preferNonRecursiveWatch;\n    this.resolutionCache = createResolutionCache(\n      this,\n      this.currentDirectory,\n      /*logChangesWhenResolvingModule*/\n      true\n    );\n    this.languageService = createLanguageService(\n      this,\n      this.projectService.documentRegistry,\n      this.projectService.serverMode\n    );\n    if (lastFileExceededProgramSize) {\n      this.disableLanguageService(lastFileExceededProgramSize);\n    }\n    this.markAsDirty();\n    if (!isBackgroundProject(this)) {\n      this.projectService.pendingEnsureProjectForOpenFiles = true;\n    }\n    this.projectService.onProjectCreation(this);\n  }\n  /** @internal */\n  getRedirectFromSourceFile(_fileName) {\n    return void 0;\n  }\n  isNonTsProject() {\n    updateProjectIfDirty(this);\n    return allFilesAreJsOrDts(this);\n  }\n  isJsOnlyProject() {\n    updateProjectIfDirty(this);\n    return hasOneOrMoreJsAndNoTsFiles(this);\n  }\n  static resolveModule(moduleName, initialDir, host, log) {\n    return _Project.importServicePluginSync({ name: moduleName }, [initialDir], host, log).resolvedModule;\n  }\n  /** @internal */\n  static importServicePluginSync(pluginConfigEntry, searchPaths, host, log) {\n    Debug.assertIsDefined(host.require);\n    let errorLogs;\n    let resolvedModule;\n    for (const initialDir of searchPaths) {\n      const resolvedPath = normalizeSlashes(host.resolvePath(combinePaths(initialDir, \"node_modules\")));\n      log(`Loading ${pluginConfigEntry.name} from ${initialDir} (resolved to ${resolvedPath})`);\n      const result = host.require(resolvedPath, pluginConfigEntry.name);\n      if (!result.error) {\n        resolvedModule = result.module;\n        break;\n      }\n      const err = result.error.stack || result.error.message || JSON.stringify(result.error);\n      (errorLogs ?? (errorLogs = [])).push(`Failed to load module '${pluginConfigEntry.name}' from ${resolvedPath}: ${err}`);\n    }\n    return { pluginConfigEntry, resolvedModule, errorLogs };\n  }\n  /** @internal */\n  static async importServicePluginAsync(pluginConfigEntry, searchPaths, host, log) {\n    Debug.assertIsDefined(host.importPlugin);\n    let errorLogs;\n    let resolvedModule;\n    for (const initialDir of searchPaths) {\n      const resolvedPath = combinePaths(initialDir, \"node_modules\");\n      log(`Dynamically importing ${pluginConfigEntry.name} from ${initialDir} (resolved to ${resolvedPath})`);\n      let result;\n      try {\n        result = await host.importPlugin(resolvedPath, pluginConfigEntry.name);\n      } catch (e) {\n        result = { module: void 0, error: e };\n      }\n      if (!result.error) {\n        resolvedModule = result.module;\n        break;\n      }\n      const err = result.error.stack || result.error.message || JSON.stringify(result.error);\n      (errorLogs ?? (errorLogs = [])).push(`Failed to dynamically import module '${pluginConfigEntry.name}' from ${resolvedPath}: ${err}`);\n    }\n    return { pluginConfigEntry, resolvedModule, errorLogs };\n  }\n  isKnownTypesPackageName(name) {\n    return this.projectService.typingsInstaller.isKnownTypesPackageName(name);\n  }\n  installPackage(options) {\n    return this.projectService.typingsInstaller.installPackage({ ...options, projectName: this.projectName, projectRootPath: this.toPath(this.currentDirectory) });\n  }\n  /** @internal */\n  getGlobalTypingsCacheLocation() {\n    return this.getTypeAcquisition().enable ? this.projectService.typingsInstaller.globalTypingsCacheLocation : void 0;\n  }\n  /** @internal */\n  getSymlinkCache() {\n    if (!this.symlinks) {\n      this.symlinks = createSymlinkCache(this.getCurrentDirectory(), this.getCanonicalFileName);\n    }\n    if (this.program && !this.symlinks.hasProcessedResolutions()) {\n      this.symlinks.setSymlinksFromResolutions(\n        this.program.forEachResolvedModule,\n        this.program.forEachResolvedTypeReferenceDirective,\n        this.program.getAutomaticTypeDirectiveResolutions()\n      );\n    }\n    return this.symlinks;\n  }\n  // Method of LanguageServiceHost\n  getCompilationSettings() {\n    return this.compilerOptions;\n  }\n  // Method to support public API\n  getCompilerOptions() {\n    return this.getCompilationSettings();\n  }\n  getNewLine() {\n    return this.projectService.host.newLine;\n  }\n  getProjectVersion() {\n    return this.projectStateVersion.toString();\n  }\n  getProjectReferences() {\n    return void 0;\n  }\n  getScriptFileNames() {\n    if (!this.rootFilesMap.size) {\n      return emptyArray;\n    }\n    let result;\n    this.rootFilesMap.forEach((value) => {\n      if (this.languageServiceEnabled || value.info && value.info.isScriptOpen()) {\n        (result || (result = [])).push(value.fileName);\n      }\n    });\n    return addRange(result, this.typingFiles) || emptyArray;\n  }\n  getOrCreateScriptInfoAndAttachToProject(fileName) {\n    const scriptInfo = this.projectService.getOrCreateScriptInfoNotOpenedByClient(\n      fileName,\n      this.currentDirectory,\n      this.directoryStructureHost,\n      /*deferredDeleteOk*/\n      false\n    );\n    if (scriptInfo) {\n      const existingValue = this.rootFilesMap.get(scriptInfo.path);\n      if (existingValue && existingValue.info !== scriptInfo) {\n        existingValue.info = scriptInfo;\n      }\n      scriptInfo.attachToProject(this);\n    }\n    return scriptInfo;\n  }\n  getScriptKind(fileName) {\n    const info = this.projectService.getScriptInfoForPath(this.toPath(fileName));\n    return info && info.scriptKind;\n  }\n  getScriptVersion(filename) {\n    const info = this.projectService.getOrCreateScriptInfoNotOpenedByClient(\n      filename,\n      this.currentDirectory,\n      this.directoryStructureHost,\n      /*deferredDeleteOk*/\n      false\n    );\n    return info && info.getLatestVersion();\n  }\n  getScriptSnapshot(filename) {\n    const scriptInfo = this.getOrCreateScriptInfoAndAttachToProject(filename);\n    if (scriptInfo) {\n      return scriptInfo.getSnapshot();\n    }\n  }\n  getCancellationToken() {\n    return this.cancellationToken;\n  }\n  getCurrentDirectory() {\n    return this.currentDirectory;\n  }\n  getDefaultLibFileName() {\n    const nodeModuleBinDir = getDirectoryPath(normalizePath(this.projectService.getExecutingFilePath()));\n    return combinePaths(nodeModuleBinDir, getDefaultLibFileName(this.compilerOptions));\n  }\n  useCaseSensitiveFileNames() {\n    return this.projectService.host.useCaseSensitiveFileNames;\n  }\n  readDirectory(path, extensions, exclude, include, depth) {\n    return this.directoryStructureHost.readDirectory(path, extensions, exclude, include, depth);\n  }\n  readFile(fileName) {\n    return this.projectService.host.readFile(fileName);\n  }\n  writeFile(fileName, content) {\n    return this.projectService.host.writeFile(fileName, content);\n  }\n  fileExists(file) {\n    const path = this.toPath(file);\n    return !!this.projectService.getScriptInfoForPath(path) || !this.isWatchedMissingFile(path) && this.directoryStructureHost.fileExists(file);\n  }\n  /** @internal */\n  resolveModuleNameLiterals(moduleLiterals, containingFile, redirectedReference, options, containingSourceFile, reusedNames) {\n    return this.resolutionCache.resolveModuleNameLiterals(moduleLiterals, containingFile, redirectedReference, options, containingSourceFile, reusedNames);\n  }\n  /** @internal */\n  getModuleResolutionCache() {\n    return this.resolutionCache.getModuleResolutionCache();\n  }\n  /** @internal */\n  resolveTypeReferenceDirectiveReferences(typeDirectiveReferences, containingFile, redirectedReference, options, containingSourceFile, reusedNames) {\n    return this.resolutionCache.resolveTypeReferenceDirectiveReferences(\n      typeDirectiveReferences,\n      containingFile,\n      redirectedReference,\n      options,\n      containingSourceFile,\n      reusedNames\n    );\n  }\n  /** @internal */\n  resolveLibrary(libraryName, resolveFrom, options, libFileName) {\n    return this.resolutionCache.resolveLibrary(libraryName, resolveFrom, options, libFileName);\n  }\n  directoryExists(path) {\n    return this.directoryStructureHost.directoryExists(path);\n  }\n  getDirectories(path) {\n    return this.directoryStructureHost.getDirectories(path);\n  }\n  /** @internal */\n  getCachedDirectoryStructureHost() {\n    return void 0;\n  }\n  /** @internal */\n  toPath(fileName) {\n    return toPath(fileName, this.currentDirectory, this.projectService.toCanonicalFileName);\n  }\n  /** @internal */\n  watchDirectoryOfFailedLookupLocation(directory, cb, flags) {\n    return this.projectService.watchFactory.watchDirectory(\n      directory,\n      cb,\n      flags,\n      this.projectService.getWatchOptions(this),\n      WatchType.FailedLookupLocations,\n      this\n    );\n  }\n  /** @internal */\n  watchAffectingFileLocation(file, cb) {\n    return this.projectService.watchFactory.watchFile(\n      file,\n      cb,\n      2e3 /* High */,\n      this.projectService.getWatchOptions(this),\n      WatchType.AffectingFileLocation,\n      this\n    );\n  }\n  /** @internal */\n  clearInvalidateResolutionOfFailedLookupTimer() {\n    return this.projectService.throttledOperations.cancel(`${this.getProjectName()}FailedLookupInvalidation`);\n  }\n  /** @internal */\n  scheduleInvalidateResolutionsOfFailedLookupLocations() {\n    this.projectService.throttledOperations.schedule(\n      `${this.getProjectName()}FailedLookupInvalidation`,\n      /*delay*/\n      1e3,\n      () => {\n        if (this.resolutionCache.invalidateResolutionsOfFailedLookupLocations()) {\n          this.projectService.delayUpdateProjectGraphAndEnsureProjectStructureForOpenFiles(this);\n        }\n      }\n    );\n  }\n  /** @internal */\n  invalidateResolutionsOfFailedLookupLocations() {\n    if (this.clearInvalidateResolutionOfFailedLookupTimer() && this.resolutionCache.invalidateResolutionsOfFailedLookupLocations()) {\n      this.markAsDirty();\n      this.projectService.delayEnsureProjectForOpenFiles();\n    }\n  }\n  /** @internal */\n  onInvalidatedResolution() {\n    this.projectService.delayUpdateProjectGraphAndEnsureProjectStructureForOpenFiles(this);\n  }\n  /** @internal */\n  watchTypeRootsDirectory(directory, cb, flags) {\n    return this.projectService.watchFactory.watchDirectory(\n      directory,\n      cb,\n      flags,\n      this.projectService.getWatchOptions(this),\n      WatchType.TypeRoots,\n      this\n    );\n  }\n  /** @internal */\n  hasChangedAutomaticTypeDirectiveNames() {\n    return this.resolutionCache.hasChangedAutomaticTypeDirectiveNames();\n  }\n  /** @internal */\n  onChangedAutomaticTypeDirectiveNames() {\n    this.projectService.delayUpdateProjectGraphAndEnsureProjectStructureForOpenFiles(this);\n  }\n  /** @internal */\n  fileIsOpen(filePath) {\n    return this.projectService.openFiles.has(filePath);\n  }\n  /** @internal */\n  writeLog(s) {\n    this.projectService.logger.info(s);\n  }\n  log(s) {\n    this.writeLog(s);\n  }\n  error(s) {\n    this.projectService.logger.msg(s, \"Err\" /* Err */);\n  }\n  setInternalCompilerOptionsForEmittingJsFiles() {\n    if (this.projectKind === 0 /* Inferred */ || this.projectKind === 2 /* External */) {\n      this.compilerOptions.noEmitForJsFiles = true;\n    }\n  }\n  /**\n   * Get the errors that dont have any file name associated\n   */\n  getGlobalProjectErrors() {\n    return filter(this.projectErrors, (diagnostic) => !diagnostic.file) || emptyArray2;\n  }\n  /**\n   * Get all the project errors\n   */\n  getAllProjectErrors() {\n    return this.projectErrors || emptyArray2;\n  }\n  setProjectErrors(projectErrors) {\n    this.projectErrors = projectErrors;\n  }\n  getLanguageService(ensureSynchronized = true) {\n    if (ensureSynchronized) {\n      updateProjectIfDirty(this);\n    }\n    return this.languageService;\n  }\n  /** @internal */\n  getSourceMapper() {\n    return this.getLanguageService().getSourceMapper();\n  }\n  /** @internal */\n  clearSourceMapperCache() {\n    this.languageService.clearSourceMapperCache();\n  }\n  /** @internal */\n  getDocumentPositionMapper(generatedFileName, sourceFileName) {\n    return this.projectService.getDocumentPositionMapper(this, generatedFileName, sourceFileName);\n  }\n  /** @internal */\n  getSourceFileLike(fileName) {\n    return this.projectService.getSourceFileLike(fileName, this);\n  }\n  /** @internal */\n  shouldEmitFile(scriptInfo) {\n    return scriptInfo && !scriptInfo.isDynamicOrHasMixedContent() && !this.program.isSourceOfProjectReferenceRedirect(scriptInfo.path);\n  }\n  getCompileOnSaveAffectedFileList(scriptInfo) {\n    if (!this.languageServiceEnabled) {\n      return [];\n    }\n    updateProjectIfDirty(this);\n    this.builderState = BuilderState.create(\n      this.program,\n      this.builderState,\n      /*disableUseFileVersionAsSignature*/\n      true\n    );\n    return mapDefined(\n      BuilderState.getFilesAffectedBy(\n        this.builderState,\n        this.program,\n        scriptInfo.path,\n        this.cancellationToken,\n        this.projectService.host\n      ),\n      (sourceFile) => this.shouldEmitFile(this.projectService.getScriptInfoForPath(sourceFile.path)) ? sourceFile.fileName : void 0\n    );\n  }\n  /**\n   * Returns true if emit was conducted\n   */\n  emitFile(scriptInfo, writeFile2) {\n    if (!this.languageServiceEnabled || !this.shouldEmitFile(scriptInfo)) {\n      return { emitSkipped: true, diagnostics: emptyArray2 };\n    }\n    const { emitSkipped, diagnostics, outputFiles } = this.getLanguageService().getEmitOutput(scriptInfo.fileName);\n    if (!emitSkipped) {\n      for (const outputFile of outputFiles) {\n        const outputFileAbsoluteFileName = getNormalizedAbsolutePath(outputFile.name, this.currentDirectory);\n        writeFile2(outputFileAbsoluteFileName, outputFile.text, outputFile.writeByteOrderMark);\n      }\n      if (this.builderState && getEmitDeclarations(this.compilerOptions)) {\n        const dtsFiles = outputFiles.filter((f) => isDeclarationFileName(f.name));\n        if (dtsFiles.length === 1) {\n          const sourceFile = this.program.getSourceFile(scriptInfo.fileName);\n          const signature = this.projectService.host.createHash ? this.projectService.host.createHash(dtsFiles[0].text) : generateDjb2Hash(dtsFiles[0].text);\n          BuilderState.updateSignatureOfFile(this.builderState, signature, sourceFile.resolvedPath);\n        }\n      }\n    }\n    return { emitSkipped, diagnostics };\n  }\n  enableLanguageService() {\n    if (this.languageServiceEnabled || this.projectService.serverMode === 2 /* Syntactic */) {\n      return;\n    }\n    this.languageServiceEnabled = true;\n    this.lastFileExceededProgramSize = void 0;\n    this.projectService.onUpdateLanguageServiceStateForProject(\n      this,\n      /*languageServiceEnabled*/\n      true\n    );\n  }\n  /** @internal */\n  cleanupProgram() {\n    if (this.program) {\n      for (const f of this.program.getSourceFiles()) {\n        this.detachScriptInfoIfNotRoot(f.fileName);\n      }\n      this.program.forEachResolvedProjectReference((ref) => this.detachScriptInfoFromProject(ref.sourceFile.fileName));\n      this.program = void 0;\n    }\n  }\n  disableLanguageService(lastFileExceededProgramSize) {\n    if (!this.languageServiceEnabled) {\n      return;\n    }\n    Debug.assert(this.projectService.serverMode !== 2 /* Syntactic */);\n    this.languageService.cleanupSemanticCache();\n    this.languageServiceEnabled = false;\n    this.cleanupProgram();\n    this.lastFileExceededProgramSize = lastFileExceededProgramSize;\n    this.builderState = void 0;\n    if (this.autoImportProviderHost) {\n      this.autoImportProviderHost.close();\n    }\n    this.autoImportProviderHost = void 0;\n    this.resolutionCache.closeTypeRootsWatch();\n    this.clearGeneratedFileWatch();\n    this.projectService.verifyDocumentRegistry();\n    this.projectService.onUpdateLanguageServiceStateForProject(\n      this,\n      /*languageServiceEnabled*/\n      false\n    );\n  }\n  getProjectName() {\n    return this.projectName;\n  }\n  removeLocalTypingsFromTypeAcquisition(newTypeAcquisition) {\n    if (!newTypeAcquisition.enable || !newTypeAcquisition.include) {\n      return newTypeAcquisition;\n    }\n    return { ...newTypeAcquisition, include: this.removeExistingTypings(newTypeAcquisition.include) };\n  }\n  getExternalFiles(updateLevel) {\n    return toSorted(flatMap(this.plugins, (plugin) => {\n      if (typeof plugin.module.getExternalFiles !== \"function\") return;\n      try {\n        return plugin.module.getExternalFiles(this, updateLevel || 0 /* Update */);\n      } catch (e) {\n        this.projectService.logger.info(`A plugin threw an exception in getExternalFiles: ${e}`);\n        if (e.stack) {\n          this.projectService.logger.info(e.stack);\n        }\n      }\n    }));\n  }\n  getSourceFile(path) {\n    if (!this.program) {\n      return void 0;\n    }\n    return this.program.getSourceFileByPath(path);\n  }\n  /** @internal */\n  getSourceFileOrConfigFile(path) {\n    const options = this.program.getCompilerOptions();\n    return path === options.configFilePath ? options.configFile : this.getSourceFile(path);\n  }\n  close() {\n    var _a;\n    if (this.typingsCache) this.projectService.typingsInstaller.onProjectClosed(this);\n    this.typingsCache = void 0;\n    this.closeWatchingTypingLocations();\n    this.cleanupProgram();\n    forEach(this.externalFiles, (externalFile) => this.detachScriptInfoIfNotRoot(externalFile));\n    this.rootFilesMap.forEach((root) => {\n      var _a2;\n      return (_a2 = root.info) == null ? void 0 : _a2.detachFromProject(this);\n    });\n    this.projectService.pendingEnsureProjectForOpenFiles = true;\n    this.rootFilesMap = void 0;\n    this.externalFiles = void 0;\n    this.program = void 0;\n    this.builderState = void 0;\n    this.resolutionCache.clear();\n    this.resolutionCache = void 0;\n    this.cachedUnresolvedImportsPerFile = void 0;\n    (_a = this.packageJsonWatches) == null ? void 0 : _a.forEach((watcher) => {\n      watcher.projects.delete(this);\n      watcher.close();\n    });\n    this.packageJsonWatches = void 0;\n    this.moduleSpecifierCache.clear();\n    this.moduleSpecifierCache = void 0;\n    this.directoryStructureHost = void 0;\n    this.exportMapCache = void 0;\n    this.projectErrors = void 0;\n    this.plugins.length = 0;\n    if (this.missingFilesMap) {\n      clearMap(this.missingFilesMap, closeFileWatcher);\n      this.missingFilesMap = void 0;\n    }\n    this.clearGeneratedFileWatch();\n    this.clearInvalidateResolutionOfFailedLookupTimer();\n    if (this.autoImportProviderHost) {\n      this.autoImportProviderHost.close();\n    }\n    this.autoImportProviderHost = void 0;\n    if (this.noDtsResolutionProject) {\n      this.noDtsResolutionProject.close();\n    }\n    this.noDtsResolutionProject = void 0;\n    this.languageService.dispose();\n    this.languageService = void 0;\n  }\n  detachScriptInfoIfNotRoot(uncheckedFilename) {\n    const info = this.projectService.getScriptInfo(uncheckedFilename);\n    if (info && !this.isRoot(info)) {\n      info.detachFromProject(this);\n    }\n  }\n  isClosed() {\n    return this.rootFilesMap === void 0;\n  }\n  hasRoots() {\n    var _a;\n    return !!((_a = this.rootFilesMap) == null ? void 0 : _a.size);\n  }\n  /** @internal */\n  isOrphan() {\n    return false;\n  }\n  getRootFiles() {\n    return this.rootFilesMap && arrayFrom(mapDefinedIterator(this.rootFilesMap.values(), (value) => {\n      var _a;\n      return (_a = value.info) == null ? void 0 : _a.fileName;\n    }));\n  }\n  /** @internal */\n  getRootFilesMap() {\n    return this.rootFilesMap;\n  }\n  getRootScriptInfos() {\n    return arrayFrom(mapDefinedIterator(this.rootFilesMap.values(), (value) => value.info));\n  }\n  getScriptInfos() {\n    if (!this.languageServiceEnabled) {\n      return this.getRootScriptInfos();\n    }\n    return map(this.program.getSourceFiles(), (sourceFile) => {\n      const scriptInfo = this.projectService.getScriptInfoForPath(sourceFile.resolvedPath);\n      Debug.assert(!!scriptInfo, \"getScriptInfo\", () => `scriptInfo for a file '${sourceFile.fileName}' Path: '${sourceFile.path}' / '${sourceFile.resolvedPath}' is missing.`);\n      return scriptInfo;\n    });\n  }\n  getExcludedFiles() {\n    return emptyArray2;\n  }\n  getFileNames(excludeFilesFromExternalLibraries, excludeConfigFiles) {\n    if (!this.program) {\n      return [];\n    }\n    if (!this.languageServiceEnabled) {\n      let rootFiles = this.getRootFiles();\n      if (this.compilerOptions) {\n        const defaultLibrary = getDefaultLibFilePath(this.compilerOptions);\n        if (defaultLibrary) {\n          (rootFiles || (rootFiles = [])).push(asNormalizedPath(defaultLibrary));\n        }\n      }\n      return rootFiles;\n    }\n    const result = [];\n    for (const f of this.program.getSourceFiles()) {\n      if (excludeFilesFromExternalLibraries && this.program.isSourceFileFromExternalLibrary(f)) {\n        continue;\n      }\n      result.push(asNormalizedPath(f.fileName));\n    }\n    if (!excludeConfigFiles) {\n      const configFile = this.program.getCompilerOptions().configFile;\n      if (configFile) {\n        result.push(asNormalizedPath(configFile.fileName));\n        if (configFile.extendedSourceFiles) {\n          for (const f of configFile.extendedSourceFiles) {\n            result.push(asNormalizedPath(f));\n          }\n        }\n      }\n    }\n    return result;\n  }\n  /** @internal */\n  getFileNamesWithRedirectInfo(includeProjectReferenceRedirectInfo) {\n    return this.getFileNames().map((fileName) => ({\n      fileName,\n      isSourceOfProjectReferenceRedirect: includeProjectReferenceRedirectInfo && this.isSourceOfProjectReferenceRedirect(fileName)\n    }));\n  }\n  hasConfigFile(configFilePath) {\n    if (this.program && this.languageServiceEnabled) {\n      const configFile = this.program.getCompilerOptions().configFile;\n      if (configFile) {\n        if (configFilePath === asNormalizedPath(configFile.fileName)) {\n          return true;\n        }\n        if (configFile.extendedSourceFiles) {\n          for (const f of configFile.extendedSourceFiles) {\n            if (configFilePath === asNormalizedPath(f)) {\n              return true;\n            }\n          }\n        }\n      }\n    }\n    return false;\n  }\n  containsScriptInfo(info) {\n    if (this.isRoot(info)) return true;\n    if (!this.program) return false;\n    const file = this.program.getSourceFileByPath(info.path);\n    return !!file && file.resolvedPath === info.path;\n  }\n  containsFile(filename, requireOpen) {\n    const info = this.projectService.getScriptInfoForNormalizedPath(filename);\n    if (info && (info.isScriptOpen() || !requireOpen)) {\n      return this.containsScriptInfo(info);\n    }\n    return false;\n  }\n  isRoot(info) {\n    var _a, _b;\n    return ((_b = (_a = this.rootFilesMap) == null ? void 0 : _a.get(info.path)) == null ? void 0 : _b.info) === info;\n  }\n  // add a root file to project\n  addRoot(info, fileName) {\n    Debug.assert(!this.isRoot(info));\n    this.rootFilesMap.set(info.path, { fileName: fileName || info.fileName, info });\n    info.attachToProject(this);\n    this.markAsDirty();\n  }\n  // add a root file that doesnt exist on host\n  addMissingFileRoot(fileName) {\n    const path = this.projectService.toPath(fileName);\n    this.rootFilesMap.set(path, { fileName });\n    this.markAsDirty();\n  }\n  removeFile(info, fileExists, detachFromProject) {\n    if (this.isRoot(info)) {\n      this.removeRoot(info);\n    }\n    if (fileExists) {\n      this.resolutionCache.removeResolutionsOfFile(info.path);\n    } else {\n      this.resolutionCache.invalidateResolutionOfFile(info.path);\n    }\n    this.cachedUnresolvedImportsPerFile.delete(info.path);\n    if (detachFromProject) {\n      info.detachFromProject(this);\n    }\n    this.markAsDirty();\n  }\n  registerFileUpdate(fileName) {\n    (this.updatedFileNames || (this.updatedFileNames = /* @__PURE__ */ new Set())).add(fileName);\n  }\n  /** @internal */\n  markFileAsDirty(changedFile) {\n    this.markAsDirty();\n    if (this.exportMapCache && !this.exportMapCache.isEmpty()) {\n      (this.changedFilesForExportMapCache || (this.changedFilesForExportMapCache = /* @__PURE__ */ new Set())).add(changedFile);\n    }\n  }\n  /** @internal */\n  markAsDirty() {\n    if (!this.dirty) {\n      this.projectStateVersion++;\n      this.dirty = true;\n    }\n  }\n  /** @internal */\n  markAutoImportProviderAsDirty() {\n    var _a;\n    if (!this.autoImportProviderHost) this.autoImportProviderHost = void 0;\n    (_a = this.autoImportProviderHost) == null ? void 0 : _a.markAsDirty();\n  }\n  /** @internal */\n  onAutoImportProviderSettingsChanged() {\n    this.markAutoImportProviderAsDirty();\n  }\n  /** @internal */\n  onPackageJsonChange() {\n    this.moduleSpecifierCache.clear();\n    this.markAutoImportProviderAsDirty();\n  }\n  /** @internal */\n  onFileAddedOrRemoved(isSymlink) {\n    this.hasAddedorRemovedFiles = true;\n    if (isSymlink) {\n      this.hasAddedOrRemovedSymlinks = true;\n    }\n  }\n  /** @internal */\n  onDiscoveredSymlink() {\n    this.hasAddedOrRemovedSymlinks = true;\n  }\n  /** @internal */\n  onReleaseOldSourceFile(oldSourceFile, _oldOptions, hasSourceFileByPath, newSourceFileByResolvedPath) {\n    if (!newSourceFileByResolvedPath || oldSourceFile.resolvedPath === oldSourceFile.path && newSourceFileByResolvedPath.resolvedPath !== oldSourceFile.path) {\n      this.detachScriptInfoFromProject(oldSourceFile.fileName, hasSourceFileByPath);\n    }\n  }\n  /** @internal */\n  updateFromProject() {\n    updateProjectIfDirty(this);\n  }\n  /**\n   * Updates set of files that contribute to this project\n   * @returns: true if set of files in the project stays the same and false - otherwise.\n   */\n  updateGraph() {\n    var _a, _b;\n    (_a = tracing) == null ? void 0 : _a.push(tracing.Phase.Session, \"updateGraph\", { name: this.projectName, kind: ProjectKind[this.projectKind] });\n    this.resolutionCache.startRecordingFilesWithChangedResolutions();\n    const hasNewProgram = this.updateGraphWorker();\n    const hasAddedorRemovedFiles = this.hasAddedorRemovedFiles;\n    this.hasAddedorRemovedFiles = false;\n    this.hasAddedOrRemovedSymlinks = false;\n    const changedFiles = this.resolutionCache.finishRecordingFilesWithChangedResolutions() || emptyArray2;\n    for (const file of changedFiles) {\n      this.cachedUnresolvedImportsPerFile.delete(file);\n    }\n    if (this.languageServiceEnabled && this.projectService.serverMode === 0 /* Semantic */ && !this.isOrphan()) {\n      if (hasNewProgram || changedFiles.length) {\n        this.lastCachedUnresolvedImportsList = getUnresolvedImports(this.program, this.cachedUnresolvedImportsPerFile);\n      }\n      this.enqueueInstallTypingsForProject(hasAddedorRemovedFiles);\n    } else {\n      this.lastCachedUnresolvedImportsList = void 0;\n    }\n    const isFirstProgramLoad = this.projectProgramVersion === 0 && hasNewProgram;\n    if (hasNewProgram) {\n      this.projectProgramVersion++;\n    }\n    if (hasAddedorRemovedFiles) {\n      this.markAutoImportProviderAsDirty();\n    }\n    if (isFirstProgramLoad) {\n      this.getPackageJsonAutoImportProvider();\n    }\n    (_b = tracing) == null ? void 0 : _b.pop();\n    return !hasNewProgram;\n  }\n  /** @internal */\n  enqueueInstallTypingsForProject(forceRefresh) {\n    const typeAcquisition = this.getTypeAcquisition();\n    if (!typeAcquisition || !typeAcquisition.enable || this.projectService.typingsInstaller === nullTypingsInstaller) {\n      return;\n    }\n    const entry = this.typingsCache;\n    if (forceRefresh || !entry || typeAcquisitionChanged(typeAcquisition, entry.typeAcquisition) || compilerOptionsChanged(this.getCompilationSettings(), entry.compilerOptions) || unresolvedImportsChanged(this.lastCachedUnresolvedImportsList, entry.unresolvedImports)) {\n      this.typingsCache = {\n        compilerOptions: this.getCompilationSettings(),\n        typeAcquisition,\n        unresolvedImports: this.lastCachedUnresolvedImportsList\n      };\n      this.projectService.typingsInstaller.enqueueInstallTypingsRequest(this, typeAcquisition, this.lastCachedUnresolvedImportsList);\n    }\n  }\n  /** @internal */\n  updateTypingFiles(compilerOptions, typeAcquisition, unresolvedImports, newTypings) {\n    this.typingsCache = {\n      compilerOptions,\n      typeAcquisition,\n      unresolvedImports\n    };\n    const typingFiles = !typeAcquisition || !typeAcquisition.enable ? emptyArray2 : toSorted(newTypings);\n    if (enumerateInsertsAndDeletes(\n      typingFiles,\n      this.typingFiles,\n      getStringComparer(!this.useCaseSensitiveFileNames()),\n      /*inserted*/\n      noop,\n      (removed) => this.detachScriptInfoFromProject(removed)\n    )) {\n      this.typingFiles = typingFiles;\n      this.resolutionCache.setFilesWithInvalidatedNonRelativeUnresolvedImports(this.cachedUnresolvedImportsPerFile);\n      this.projectService.delayUpdateProjectGraphAndEnsureProjectStructureForOpenFiles(this);\n    }\n  }\n  closeWatchingTypingLocations() {\n    if (this.typingWatchers) clearMap(this.typingWatchers, closeFileWatcher);\n    this.typingWatchers = void 0;\n  }\n  onTypingInstallerWatchInvoke() {\n    this.typingWatchers.isInvoked = true;\n    this.projectService.updateTypingsForProject({ projectName: this.getProjectName(), kind: ActionInvalidate });\n  }\n  /** @internal */\n  watchTypingLocations(files) {\n    if (!files) {\n      this.typingWatchers.isInvoked = false;\n      return;\n    }\n    if (!files.length) {\n      this.closeWatchingTypingLocations();\n      return;\n    }\n    const toRemove = new Map(this.typingWatchers);\n    if (!this.typingWatchers) this.typingWatchers = /* @__PURE__ */ new Map();\n    this.typingWatchers.isInvoked = false;\n    const createProjectWatcher = (path, typingsWatcherType) => {\n      const canonicalPath = this.toPath(path);\n      toRemove.delete(canonicalPath);\n      if (!this.typingWatchers.has(canonicalPath)) {\n        const watchType = typingsWatcherType === \"FileWatcher\" /* FileWatcher */ ? WatchType.TypingInstallerLocationFile : WatchType.TypingInstallerLocationDirectory;\n        this.typingWatchers.set(\n          canonicalPath,\n          canWatchDirectoryOrFilePath(canonicalPath) ? typingsWatcherType === \"FileWatcher\" /* FileWatcher */ ? this.projectService.watchFactory.watchFile(\n            path,\n            () => !this.typingWatchers.isInvoked ? this.onTypingInstallerWatchInvoke() : this.writeLog(`TypingWatchers already invoked`),\n            2e3 /* High */,\n            this.projectService.getWatchOptions(this),\n            watchType,\n            this\n          ) : this.projectService.watchFactory.watchDirectory(\n            path,\n            (f) => {\n              if (this.typingWatchers.isInvoked) return this.writeLog(`TypingWatchers already invoked`);\n              if (!fileExtensionIs(f, \".json\" /* Json */)) return this.writeLog(`Ignoring files that are not *.json`);\n              if (comparePaths(f, combinePaths(this.projectService.typingsInstaller.globalTypingsCacheLocation, \"package.json\"), !this.useCaseSensitiveFileNames())) return this.writeLog(`Ignoring package.json change at global typings location`);\n              this.onTypingInstallerWatchInvoke();\n            },\n            1 /* Recursive */,\n            this.projectService.getWatchOptions(this),\n            watchType,\n            this\n          ) : (this.writeLog(`Skipping watcher creation at ${path}:: ${getDetailWatchInfo(watchType, this)}`), noopFileWatcher)\n        );\n      }\n    };\n    for (const file of files) {\n      const basename = getBaseFileName(file);\n      if (basename === \"package.json\" || basename === \"bower.json\") {\n        createProjectWatcher(file, \"FileWatcher\" /* FileWatcher */);\n        continue;\n      }\n      if (containsPath(this.currentDirectory, file, this.currentDirectory, !this.useCaseSensitiveFileNames())) {\n        const subDirectory = file.indexOf(directorySeparator, this.currentDirectory.length + 1);\n        if (subDirectory !== -1) {\n          createProjectWatcher(file.substr(0, subDirectory), \"DirectoryWatcher\" /* DirectoryWatcher */);\n        } else {\n          createProjectWatcher(file, \"DirectoryWatcher\" /* DirectoryWatcher */);\n        }\n        continue;\n      }\n      if (containsPath(this.projectService.typingsInstaller.globalTypingsCacheLocation, file, this.currentDirectory, !this.useCaseSensitiveFileNames())) {\n        createProjectWatcher(this.projectService.typingsInstaller.globalTypingsCacheLocation, \"DirectoryWatcher\" /* DirectoryWatcher */);\n        continue;\n      }\n      createProjectWatcher(file, \"DirectoryWatcher\" /* DirectoryWatcher */);\n    }\n    toRemove.forEach((watch, path) => {\n      watch.close();\n      this.typingWatchers.delete(path);\n    });\n  }\n  /** @internal */\n  getCurrentProgram() {\n    return this.program;\n  }\n  removeExistingTypings(include) {\n    if (!include.length) return include;\n    const existing = getAutomaticTypeDirectiveNames(this.getCompilerOptions(), this);\n    return filter(include, (i) => !existing.includes(i));\n  }\n  updateGraphWorker() {\n    var _a, _b;\n    const oldProgram = this.languageService.getCurrentProgram();\n    Debug.assert(oldProgram === this.program);\n    Debug.assert(!this.isClosed(), \"Called update graph worker of closed project\");\n    this.writeLog(`Starting updateGraphWorker: Project: ${this.getProjectName()}`);\n    const start = timestamp();\n    const { hasInvalidatedResolutions, hasInvalidatedLibResolutions } = this.resolutionCache.createHasInvalidatedResolutions(returnFalse, returnFalse);\n    this.hasInvalidatedResolutions = hasInvalidatedResolutions;\n    this.hasInvalidatedLibResolutions = hasInvalidatedLibResolutions;\n    this.resolutionCache.startCachingPerDirectoryResolution();\n    this.dirty = false;\n    this.updateFromProjectInProgress = true;\n    this.program = this.languageService.getProgram();\n    this.updateFromProjectInProgress = false;\n    (_a = tracing) == null ? void 0 : _a.push(tracing.Phase.Session, \"finishCachingPerDirectoryResolution\");\n    this.resolutionCache.finishCachingPerDirectoryResolution(this.program, oldProgram);\n    (_b = tracing) == null ? void 0 : _b.pop();\n    Debug.assert(oldProgram === void 0 || this.program !== void 0);\n    let hasNewProgram = false;\n    if (this.program && (!oldProgram || this.program !== oldProgram && this.program.structureIsReused !== 2 /* Completely */)) {\n      hasNewProgram = true;\n      this.rootFilesMap.forEach((value, path) => {\n        var _a2;\n        const file = this.program.getSourceFileByPath(path);\n        const info = value.info;\n        if (!file || ((_a2 = value.info) == null ? void 0 : _a2.path) === file.resolvedPath) return;\n        value.info = this.projectService.getScriptInfo(file.fileName);\n        Debug.assert(value.info.isAttached(this));\n        info == null ? void 0 : info.detachFromProject(this);\n      });\n      updateMissingFilePathsWatch(\n        this.program,\n        this.missingFilesMap || (this.missingFilesMap = /* @__PURE__ */ new Map()),\n        // Watch the missing files\n        (missingFilePath, missingFileName) => this.addMissingFileWatcher(missingFilePath, missingFileName)\n      );\n      if (this.generatedFilesMap) {\n        const outPath = this.compilerOptions.outFile;\n        if (isGeneratedFileWatcher(this.generatedFilesMap)) {\n          if (!outPath || !this.isValidGeneratedFileWatcher(\n            removeFileExtension(outPath) + \".d.ts\" /* Dts */,\n            this.generatedFilesMap\n          )) {\n            this.clearGeneratedFileWatch();\n          }\n        } else {\n          if (outPath) {\n            this.clearGeneratedFileWatch();\n          } else {\n            this.generatedFilesMap.forEach((watcher, source) => {\n              const sourceFile = this.program.getSourceFileByPath(source);\n              if (!sourceFile || sourceFile.resolvedPath !== source || !this.isValidGeneratedFileWatcher(\n                getDeclarationEmitOutputFilePathWorker(sourceFile.fileName, this.compilerOptions, this.program),\n                watcher\n              )) {\n                closeFileWatcherOf(watcher);\n                this.generatedFilesMap.delete(source);\n              }\n            });\n          }\n        }\n      }\n      if (this.languageServiceEnabled && this.projectService.serverMode === 0 /* Semantic */) {\n        this.resolutionCache.updateTypeRootsWatch();\n      }\n    }\n    this.projectService.verifyProgram(this);\n    if (this.exportMapCache && !this.exportMapCache.isEmpty()) {\n      this.exportMapCache.releaseSymbols();\n      if (this.hasAddedorRemovedFiles || oldProgram && !this.program.structureIsReused) {\n        this.exportMapCache.clear();\n      } else if (this.changedFilesForExportMapCache && oldProgram && this.program) {\n        forEachKey(this.changedFilesForExportMapCache, (fileName) => {\n          const oldSourceFile = oldProgram.getSourceFileByPath(fileName);\n          const sourceFile = this.program.getSourceFileByPath(fileName);\n          if (!oldSourceFile || !sourceFile) {\n            this.exportMapCache.clear();\n            return true;\n          }\n          return this.exportMapCache.onFileChanged(oldSourceFile, sourceFile, !!this.getTypeAcquisition().enable);\n        });\n      }\n    }\n    if (this.changedFilesForExportMapCache) {\n      this.changedFilesForExportMapCache.clear();\n    }\n    if (this.hasAddedOrRemovedSymlinks || this.program && !this.program.structureIsReused && this.getCompilerOptions().preserveSymlinks) {\n      this.symlinks = void 0;\n      this.moduleSpecifierCache.clear();\n    }\n    const oldExternalFiles = this.externalFiles || emptyArray2;\n    this.externalFiles = this.getExternalFiles();\n    enumerateInsertsAndDeletes(\n      this.externalFiles,\n      oldExternalFiles,\n      getStringComparer(!this.useCaseSensitiveFileNames()),\n      // Ensure a ScriptInfo is created for new external files. This is performed indirectly\n      // by the host for files in the program when the program is retrieved above but\n      // the program doesn't contain external files so this must be done explicitly.\n      (inserted) => {\n        const scriptInfo = this.projectService.getOrCreateScriptInfoNotOpenedByClient(\n          inserted,\n          this.currentDirectory,\n          this.directoryStructureHost,\n          /*deferredDeleteOk*/\n          false\n        );\n        scriptInfo == null ? void 0 : scriptInfo.attachToProject(this);\n      },\n      (removed) => this.detachScriptInfoFromProject(removed)\n    );\n    const elapsed = timestamp() - start;\n    this.sendPerformanceEvent(\"UpdateGraph\", elapsed);\n    this.writeLog(`Finishing updateGraphWorker: Project: ${this.getProjectName()} projectStateVersion: ${this.projectStateVersion} projectProgramVersion: ${this.projectProgramVersion} structureChanged: ${hasNewProgram}${this.program ? ` structureIsReused:: ${StructureIsReused[this.program.structureIsReused]}` : \"\"} Elapsed: ${elapsed}ms`);\n    if (this.projectService.logger.isTestLogger) {\n      if (this.program !== oldProgram) {\n        this.print(\n          /*writeProjectFileNames*/\n          true,\n          this.hasAddedorRemovedFiles,\n          /*writeFileVersionAndText*/\n          true\n        );\n      } else {\n        this.writeLog(`Same program as before`);\n      }\n    } else if (this.hasAddedorRemovedFiles) {\n      this.print(\n        /*writeProjectFileNames*/\n        true,\n        /*writeFileExplaination*/\n        true,\n        /*writeFileVersionAndText*/\n        false\n      );\n    } else if (this.program !== oldProgram) {\n      this.writeLog(`Different program with same set of files`);\n    }\n    this.projectService.verifyDocumentRegistry();\n    return hasNewProgram;\n  }\n  /** @internal */\n  sendPerformanceEvent(kind, durationMs) {\n    this.projectService.sendPerformanceEvent(kind, durationMs);\n  }\n  detachScriptInfoFromProject(uncheckedFileName, noRemoveResolution) {\n    const scriptInfoToDetach = this.projectService.getScriptInfo(uncheckedFileName);\n    if (scriptInfoToDetach) {\n      scriptInfoToDetach.detachFromProject(this);\n      if (!noRemoveResolution) {\n        this.resolutionCache.removeResolutionsOfFile(scriptInfoToDetach.path);\n      }\n    }\n  }\n  addMissingFileWatcher(missingFilePath, missingFileName) {\n    var _a;\n    if (isConfiguredProject(this)) {\n      const configFileExistenceInfo = this.projectService.configFileExistenceInfoCache.get(missingFilePath);\n      if ((_a = configFileExistenceInfo == null ? void 0 : configFileExistenceInfo.config) == null ? void 0 : _a.projects.has(this.canonicalConfigFilePath)) return noopFileWatcher;\n    }\n    const fileWatcher = this.projectService.watchFactory.watchFile(\n      getNormalizedAbsolutePath(missingFileName, this.currentDirectory),\n      (fileName, eventKind) => {\n        if (isConfiguredProject(this)) {\n          this.getCachedDirectoryStructureHost().addOrDeleteFile(fileName, missingFilePath, eventKind);\n        }\n        if (eventKind === 0 /* Created */ && this.missingFilesMap.has(missingFilePath)) {\n          this.missingFilesMap.delete(missingFilePath);\n          fileWatcher.close();\n          this.projectService.delayUpdateProjectGraphAndEnsureProjectStructureForOpenFiles(this);\n        }\n      },\n      500 /* Medium */,\n      this.projectService.getWatchOptions(this),\n      WatchType.MissingFile,\n      this\n    );\n    return fileWatcher;\n  }\n  isWatchedMissingFile(path) {\n    return !!this.missingFilesMap && this.missingFilesMap.has(path);\n  }\n  /** @internal */\n  addGeneratedFileWatch(generatedFile, sourceFile) {\n    if (this.compilerOptions.outFile) {\n      if (!this.generatedFilesMap) {\n        this.generatedFilesMap = this.createGeneratedFileWatcher(generatedFile);\n      }\n    } else {\n      const path = this.toPath(sourceFile);\n      if (this.generatedFilesMap) {\n        if (isGeneratedFileWatcher(this.generatedFilesMap)) {\n          Debug.fail(`${this.projectName} Expected to not have --out watcher for generated file with options: ${JSON.stringify(this.compilerOptions)}`);\n          return;\n        }\n        if (this.generatedFilesMap.has(path)) return;\n      } else {\n        this.generatedFilesMap = /* @__PURE__ */ new Map();\n      }\n      this.generatedFilesMap.set(path, this.createGeneratedFileWatcher(generatedFile));\n    }\n  }\n  createGeneratedFileWatcher(generatedFile) {\n    return {\n      generatedFilePath: this.toPath(generatedFile),\n      watcher: this.projectService.watchFactory.watchFile(\n        generatedFile,\n        () => {\n          this.clearSourceMapperCache();\n          this.projectService.delayUpdateProjectGraphAndEnsureProjectStructureForOpenFiles(this);\n        },\n        2e3 /* High */,\n        this.projectService.getWatchOptions(this),\n        WatchType.MissingGeneratedFile,\n        this\n      )\n    };\n  }\n  isValidGeneratedFileWatcher(generateFile, watcher) {\n    return this.toPath(generateFile) === watcher.generatedFilePath;\n  }\n  clearGeneratedFileWatch() {\n    if (this.generatedFilesMap) {\n      if (isGeneratedFileWatcher(this.generatedFilesMap)) {\n        closeFileWatcherOf(this.generatedFilesMap);\n      } else {\n        clearMap(this.generatedFilesMap, closeFileWatcherOf);\n      }\n      this.generatedFilesMap = void 0;\n    }\n  }\n  getScriptInfoForNormalizedPath(fileName) {\n    const scriptInfo = this.projectService.getScriptInfoForPath(this.toPath(fileName));\n    if (scriptInfo && !scriptInfo.isAttached(this)) {\n      return Errors.ThrowProjectDoesNotContainDocument(fileName, this);\n    }\n    return scriptInfo;\n  }\n  getScriptInfo(uncheckedFileName) {\n    return this.projectService.getScriptInfo(uncheckedFileName);\n  }\n  filesToString(writeProjectFileNames) {\n    return this.filesToStringWorker(\n      writeProjectFileNames,\n      /*writeFileExplaination*/\n      true,\n      /*writeFileVersionAndText*/\n      false\n    );\n  }\n  filesToStringWorker(writeProjectFileNames, writeFileExplaination, writeFileVersionAndText) {\n    if (this.initialLoadPending) return \"\tFiles (0) InitialLoadPending\\n\";\n    if (!this.program) return \"\tFiles (0) NoProgram\\n\";\n    const sourceFiles = this.program.getSourceFiles();\n    let strBuilder = `\tFiles (${sourceFiles.length})\n`;\n    if (writeProjectFileNames) {\n      for (const file of sourceFiles) {\n        strBuilder += `\t${file.fileName}${writeFileVersionAndText ? ` ${file.version} ${JSON.stringify(file.text)}` : \"\"}\n`;\n      }\n      if (writeFileExplaination) {\n        strBuilder += \"\\n\\n\";\n        explainFiles(this.program, (s) => strBuilder += `\t${s}\n`);\n      }\n    }\n    return strBuilder;\n  }\n  /** @internal */\n  print(writeProjectFileNames, writeFileExplaination, writeFileVersionAndText) {\n    var _a;\n    this.writeLog(`Project '${this.projectName}' (${ProjectKind[this.projectKind]})`);\n    this.writeLog(this.filesToStringWorker(\n      writeProjectFileNames && this.projectService.logger.hasLevel(3 /* verbose */),\n      writeFileExplaination && this.projectService.logger.hasLevel(3 /* verbose */),\n      writeFileVersionAndText && this.projectService.logger.hasLevel(3 /* verbose */)\n    ));\n    this.writeLog(\"-----------------------------------------------\");\n    if (this.autoImportProviderHost) {\n      this.autoImportProviderHost.print(\n        /*writeProjectFileNames*/\n        false,\n        /*writeFileExplaination*/\n        false,\n        /*writeFileVersionAndText*/\n        false\n      );\n    }\n    (_a = this.noDtsResolutionProject) == null ? void 0 : _a.print(\n      /*writeProjectFileNames*/\n      false,\n      /*writeFileExplaination*/\n      false,\n      /*writeFileVersionAndText*/\n      false\n    );\n  }\n  setCompilerOptions(compilerOptions) {\n    var _a;\n    if (compilerOptions) {\n      compilerOptions.allowNonTsExtensions = true;\n      const oldOptions = this.compilerOptions;\n      this.compilerOptions = compilerOptions;\n      this.setInternalCompilerOptionsForEmittingJsFiles();\n      (_a = this.noDtsResolutionProject) == null ? void 0 : _a.setCompilerOptions(this.getCompilerOptionsForNoDtsResolutionProject());\n      if (changesAffectModuleResolution(oldOptions, compilerOptions)) {\n        this.cachedUnresolvedImportsPerFile.clear();\n        this.lastCachedUnresolvedImportsList = void 0;\n        this.resolutionCache.onChangesAffectModuleResolution();\n        this.moduleSpecifierCache.clear();\n      }\n      this.markAsDirty();\n    }\n  }\n  /** @internal */\n  setWatchOptions(watchOptions) {\n    this.watchOptions = watchOptions;\n  }\n  /** @internal */\n  getWatchOptions() {\n    return this.watchOptions;\n  }\n  setTypeAcquisition(newTypeAcquisition) {\n    if (newTypeAcquisition) {\n      this.typeAcquisition = this.removeLocalTypingsFromTypeAcquisition(newTypeAcquisition);\n    }\n  }\n  getTypeAcquisition() {\n    return this.typeAcquisition || {};\n  }\n  /** @internal */\n  getChangesSinceVersion(lastKnownVersion, includeProjectReferenceRedirectInfo) {\n    var _a, _b;\n    const includeProjectReferenceRedirectInfoIfRequested = includeProjectReferenceRedirectInfo ? (files) => arrayFrom(files.entries(), ([fileName, isSourceOfProjectReferenceRedirect]) => ({\n      fileName,\n      isSourceOfProjectReferenceRedirect\n    })) : (files) => arrayFrom(files.keys());\n    if (!this.initialLoadPending) {\n      updateProjectIfDirty(this);\n    }\n    const info = {\n      projectName: this.getProjectName(),\n      version: this.projectProgramVersion,\n      isInferred: isInferredProject(this),\n      options: this.getCompilationSettings(),\n      languageServiceDisabled: !this.languageServiceEnabled,\n      lastFileExceededProgramSize: this.lastFileExceededProgramSize\n    };\n    const updatedFileNames = this.updatedFileNames;\n    this.updatedFileNames = void 0;\n    if (this.lastReportedFileNames && lastKnownVersion === this.lastReportedVersion) {\n      if (this.projectProgramVersion === this.lastReportedVersion && !updatedFileNames) {\n        return { info, projectErrors: this.getGlobalProjectErrors() };\n      }\n      const lastReportedFileNames = this.lastReportedFileNames;\n      const externalFiles = ((_a = this.externalFiles) == null ? void 0 : _a.map((f) => ({\n        fileName: toNormalizedPath(f),\n        isSourceOfProjectReferenceRedirect: false\n      }))) || emptyArray2;\n      const currentFiles = arrayToMap(\n        this.getFileNamesWithRedirectInfo(!!includeProjectReferenceRedirectInfo).concat(externalFiles),\n        (info2) => info2.fileName,\n        (info2) => info2.isSourceOfProjectReferenceRedirect\n      );\n      const added = /* @__PURE__ */ new Map();\n      const removed = /* @__PURE__ */ new Map();\n      const updated = updatedFileNames ? arrayFrom(updatedFileNames.keys()) : [];\n      const updatedRedirects = [];\n      forEachEntry(currentFiles, (isSourceOfProjectReferenceRedirect, fileName) => {\n        if (!lastReportedFileNames.has(fileName)) {\n          added.set(fileName, isSourceOfProjectReferenceRedirect);\n        } else if (includeProjectReferenceRedirectInfo && isSourceOfProjectReferenceRedirect !== lastReportedFileNames.get(fileName)) {\n          updatedRedirects.push({\n            fileName,\n            isSourceOfProjectReferenceRedirect\n          });\n        }\n      });\n      forEachEntry(lastReportedFileNames, (isSourceOfProjectReferenceRedirect, fileName) => {\n        if (!currentFiles.has(fileName)) {\n          removed.set(fileName, isSourceOfProjectReferenceRedirect);\n        }\n      });\n      this.lastReportedFileNames = currentFiles;\n      this.lastReportedVersion = this.projectProgramVersion;\n      return {\n        info,\n        changes: {\n          added: includeProjectReferenceRedirectInfoIfRequested(added),\n          removed: includeProjectReferenceRedirectInfoIfRequested(removed),\n          updated: includeProjectReferenceRedirectInfo ? updated.map((fileName) => ({\n            fileName,\n            isSourceOfProjectReferenceRedirect: this.isSourceOfProjectReferenceRedirect(fileName)\n          })) : updated,\n          updatedRedirects: includeProjectReferenceRedirectInfo ? updatedRedirects : void 0\n        },\n        projectErrors: this.getGlobalProjectErrors()\n      };\n    } else {\n      const projectFileNames = this.getFileNamesWithRedirectInfo(!!includeProjectReferenceRedirectInfo);\n      const externalFiles = ((_b = this.externalFiles) == null ? void 0 : _b.map((f) => ({\n        fileName: toNormalizedPath(f),\n        isSourceOfProjectReferenceRedirect: false\n      }))) || emptyArray2;\n      const allFiles = projectFileNames.concat(externalFiles);\n      this.lastReportedFileNames = arrayToMap(\n        allFiles,\n        (info2) => info2.fileName,\n        (info2) => info2.isSourceOfProjectReferenceRedirect\n      );\n      this.lastReportedVersion = this.projectProgramVersion;\n      return {\n        info,\n        files: includeProjectReferenceRedirectInfo ? allFiles : allFiles.map((f) => f.fileName),\n        projectErrors: this.getGlobalProjectErrors()\n      };\n    }\n  }\n  // remove a root file from project\n  removeRoot(info) {\n    this.rootFilesMap.delete(info.path);\n  }\n  /** @internal */\n  isSourceOfProjectReferenceRedirect(fileName) {\n    return !!this.program && this.program.isSourceOfProjectReferenceRedirect(fileName);\n  }\n  /** @internal */\n  getGlobalPluginSearchPaths() {\n    return [\n      ...this.projectService.pluginProbeLocations,\n      // ../../.. to walk from X/node_modules/typescript/lib/tsserver.js to X/node_modules/\n      combinePaths(this.projectService.getExecutingFilePath(), \"../../..\")\n    ];\n  }\n  enableGlobalPlugins(options) {\n    if (!this.projectService.globalPlugins.length) return;\n    const host = this.projectService.host;\n    if (!host.require && !host.importPlugin) {\n      this.projectService.logger.info(\"Plugins were requested but not running in environment that supports 'require'. Nothing will be loaded\");\n      return;\n    }\n    const searchPaths = this.getGlobalPluginSearchPaths();\n    for (const globalPluginName of this.projectService.globalPlugins) {\n      if (!globalPluginName) continue;\n      if (options.plugins && options.plugins.some((p) => p.name === globalPluginName)) continue;\n      this.projectService.logger.info(`Loading global plugin ${globalPluginName}`);\n      this.enablePlugin({ name: globalPluginName, global: true }, searchPaths);\n    }\n  }\n  enablePlugin(pluginConfigEntry, searchPaths) {\n    this.projectService.requestEnablePlugin(this, pluginConfigEntry, searchPaths);\n  }\n  /** @internal */\n  enableProxy(pluginModuleFactory, configEntry) {\n    try {\n      if (typeof pluginModuleFactory !== \"function\") {\n        this.projectService.logger.info(`Skipped loading plugin ${configEntry.name} because it did not expose a proper factory function`);\n        return;\n      }\n      const info = {\n        config: configEntry,\n        project: this,\n        languageService: this.languageService,\n        languageServiceHost: this,\n        serverHost: this.projectService.host,\n        session: this.projectService.session\n      };\n      const pluginModule = pluginModuleFactory({ typescript: ts_exports2 });\n      const newLS = pluginModule.create(info);\n      for (const k of Object.keys(this.languageService)) {\n        if (!(k in newLS)) {\n          this.projectService.logger.info(`Plugin activation warning: Missing proxied method ${k} in created LS. Patching.`);\n          newLS[k] = this.languageService[k];\n        }\n      }\n      this.projectService.logger.info(`Plugin validation succeeded`);\n      this.languageService = newLS;\n      this.plugins.push({ name: configEntry.name, module: pluginModule });\n    } catch (e) {\n      this.projectService.logger.info(`Plugin activation failed: ${e}`);\n    }\n  }\n  /** @internal */\n  onPluginConfigurationChanged(pluginName, configuration) {\n    this.plugins.filter((plugin) => plugin.name === pluginName).forEach((plugin) => {\n      if (plugin.module.onConfigurationChanged) {\n        plugin.module.onConfigurationChanged(configuration);\n      }\n    });\n  }\n  /** Starts a new check for diagnostics. Call this if some file has updated that would cause diagnostics to be changed. */\n  refreshDiagnostics() {\n    this.projectService.sendProjectsUpdatedInBackgroundEvent();\n  }\n  /** @internal */\n  getPackageJsonsVisibleToFile(fileName, rootDir) {\n    if (this.projectService.serverMode !== 0 /* Semantic */) return emptyArray2;\n    return this.projectService.getPackageJsonsVisibleToFile(fileName, this, rootDir);\n  }\n  /** @internal */\n  getNearestAncestorDirectoryWithPackageJson(fileName) {\n    return this.projectService.getNearestAncestorDirectoryWithPackageJson(fileName, this);\n  }\n  /** @internal */\n  getPackageJsonsForAutoImport(rootDir) {\n    return this.getPackageJsonsVisibleToFile(combinePaths(this.currentDirectory, inferredTypesContainingFile), rootDir);\n  }\n  /** @internal */\n  getPackageJsonCache() {\n    return this.projectService.packageJsonCache;\n  }\n  /** @internal */\n  getCachedExportInfoMap() {\n    return this.exportMapCache || (this.exportMapCache = createCacheableExportInfoMap(this));\n  }\n  /** @internal */\n  clearCachedExportInfoMap() {\n    var _a;\n    (_a = this.exportMapCache) == null ? void 0 : _a.clear();\n  }\n  /** @internal */\n  getModuleSpecifierCache() {\n    return this.moduleSpecifierCache;\n  }\n  /** @internal */\n  includePackageJsonAutoImports() {\n    if (this.projectService.includePackageJsonAutoImports() === 0 /* Off */ || !this.languageServiceEnabled || isInsideNodeModules(this.currentDirectory) || !this.isDefaultProjectForOpenFiles()) {\n      return 0 /* Off */;\n    }\n    return this.projectService.includePackageJsonAutoImports();\n  }\n  /** @internal */\n  getHostForAutoImportProvider() {\n    var _a, _b;\n    if (this.program) {\n      return {\n        fileExists: this.program.fileExists,\n        directoryExists: this.program.directoryExists,\n        realpath: this.program.realpath || ((_a = this.projectService.host.realpath) == null ? void 0 : _a.bind(this.projectService.host)),\n        getCurrentDirectory: this.getCurrentDirectory.bind(this),\n        readFile: this.projectService.host.readFile.bind(this.projectService.host),\n        getDirectories: this.projectService.host.getDirectories.bind(this.projectService.host),\n        trace: (_b = this.projectService.host.trace) == null ? void 0 : _b.bind(this.projectService.host),\n        useCaseSensitiveFileNames: this.program.useCaseSensitiveFileNames(),\n        readDirectory: this.projectService.host.readDirectory.bind(this.projectService.host)\n      };\n    }\n    return this.projectService.host;\n  }\n  /** @internal */\n  getPackageJsonAutoImportProvider() {\n    var _a, _b, _c;\n    if (this.autoImportProviderHost === false) {\n      return void 0;\n    }\n    if (this.projectService.serverMode !== 0 /* Semantic */) {\n      this.autoImportProviderHost = false;\n      return void 0;\n    }\n    if (this.autoImportProviderHost) {\n      updateProjectIfDirty(this.autoImportProviderHost);\n      if (this.autoImportProviderHost.isEmpty()) {\n        this.autoImportProviderHost.close();\n        this.autoImportProviderHost = void 0;\n        return void 0;\n      }\n      return this.autoImportProviderHost.getCurrentProgram();\n    }\n    const dependencySelection = this.includePackageJsonAutoImports();\n    if (dependencySelection) {\n      (_a = tracing) == null ? void 0 : _a.push(tracing.Phase.Session, \"getPackageJsonAutoImportProvider\");\n      const start = timestamp();\n      this.autoImportProviderHost = AutoImportProviderProject.create(\n        dependencySelection,\n        this,\n        this.getHostForAutoImportProvider()\n      ) ?? false;\n      if (this.autoImportProviderHost) {\n        updateProjectIfDirty(this.autoImportProviderHost);\n        this.sendPerformanceEvent(\"CreatePackageJsonAutoImportProvider\", timestamp() - start);\n        (_b = tracing) == null ? void 0 : _b.pop();\n        return this.autoImportProviderHost.getCurrentProgram();\n      }\n      (_c = tracing) == null ? void 0 : _c.pop();\n    }\n  }\n  isDefaultProjectForOpenFiles() {\n    return !!forEachEntry(\n      this.projectService.openFiles,\n      (_projectRootPath, path) => this.projectService.tryGetDefaultProjectForFile(this.projectService.getScriptInfoForPath(path)) === this\n    );\n  }\n  /** @internal */\n  watchNodeModulesForPackageJsonChanges(directoryPath) {\n    return this.projectService.watchPackageJsonsInNodeModules(directoryPath, this);\n  }\n  /** @internal */\n  getIncompleteCompletionsCache() {\n    return this.projectService.getIncompleteCompletionsCache();\n  }\n  /** @internal */\n  getNoDtsResolutionProject(rootFile) {\n    Debug.assert(this.projectService.serverMode === 0 /* Semantic */);\n    this.noDtsResolutionProject ?? (this.noDtsResolutionProject = new AuxiliaryProject(this));\n    if (this.noDtsResolutionProject.rootFile !== rootFile) {\n      this.projectService.setFileNamesOfAutoImportProviderOrAuxillaryProject(\n        this.noDtsResolutionProject,\n        [rootFile]\n      );\n      this.noDtsResolutionProject.rootFile = rootFile;\n    }\n    return this.noDtsResolutionProject;\n  }\n  /** @internal */\n  runWithTemporaryFileUpdate(rootFile, updatedText, cb) {\n    var _a, _b, _c, _d;\n    const originalProgram = this.program;\n    const rootSourceFile = Debug.checkDefined((_a = this.program) == null ? void 0 : _a.getSourceFile(rootFile), \"Expected file to be part of program\");\n    const originalText = Debug.checkDefined(rootSourceFile.getFullText());\n    (_b = this.getScriptInfo(rootFile)) == null ? void 0 : _b.editContent(0, originalText.length, updatedText);\n    this.updateGraph();\n    try {\n      cb(this.program, originalProgram, (_c = this.program) == null ? void 0 : _c.getSourceFile(rootFile));\n    } finally {\n      (_d = this.getScriptInfo(rootFile)) == null ? void 0 : _d.editContent(0, updatedText.length, originalText);\n    }\n  }\n  /** @internal */\n  getCompilerOptionsForNoDtsResolutionProject() {\n    return {\n      ...this.getCompilerOptions(),\n      noDtsResolution: true,\n      allowJs: true,\n      maxNodeModuleJsDepth: 3,\n      diagnostics: false,\n      skipLibCheck: true,\n      sourceMap: false,\n      types: emptyArray,\n      lib: emptyArray,\n      noLib: true\n    };\n  }\n};\nfunction getUnresolvedImports(program, cachedUnresolvedImportsPerFile) {\n  var _a, _b;\n  const sourceFiles = program.getSourceFiles();\n  (_a = tracing) == null ? void 0 : _a.push(tracing.Phase.Session, \"getUnresolvedImports\", { count: sourceFiles.length });\n  const ambientModules = program.getTypeChecker().getAmbientModules().map((mod) => stripQuotes(mod.getName()));\n  const result = sortAndDeduplicate(flatMap(sourceFiles, (sourceFile) => extractUnresolvedImportsFromSourceFile(\n    program,\n    sourceFile,\n    ambientModules,\n    cachedUnresolvedImportsPerFile\n  )));\n  (_b = tracing) == null ? void 0 : _b.pop();\n  return result;\n}\nfunction extractUnresolvedImportsFromSourceFile(program, file, ambientModules, cachedUnresolvedImportsPerFile) {\n  return getOrUpdate(cachedUnresolvedImportsPerFile, file.path, () => {\n    let unresolvedImports;\n    program.forEachResolvedModule(({ resolvedModule }, name) => {\n      if ((!resolvedModule || !resolutionExtensionIsTSOrJson(resolvedModule.extension)) && !isExternalModuleNameRelative(name) && !ambientModules.some((m) => m === name)) {\n        unresolvedImports = append(unresolvedImports, parsePackageName(name).packageName);\n      }\n    }, file);\n    return unresolvedImports || emptyArray2;\n  });\n}\nvar InferredProject2 = class extends Project2 {\n  /** @internal */\n  constructor(projectService, compilerOptions, watchOptions, projectRootPath, currentDirectory, typeAcquisition) {\n    super(\n      projectService.newInferredProjectName(),\n      0 /* Inferred */,\n      projectService,\n      /*hasExplicitListOfFiles*/\n      false,\n      /*lastFileExceededProgramSize*/\n      void 0,\n      compilerOptions,\n      /*compileOnSaveEnabled*/\n      false,\n      watchOptions,\n      projectService.host,\n      currentDirectory\n    );\n    this._isJsInferredProject = false;\n    this.typeAcquisition = typeAcquisition;\n    this.projectRootPath = projectRootPath && projectService.toCanonicalFileName(projectRootPath);\n    if (!projectRootPath && !projectService.useSingleInferredProject) {\n      this.canonicalCurrentDirectory = projectService.toCanonicalFileName(this.currentDirectory);\n    }\n    this.enableGlobalPlugins(this.getCompilerOptions());\n  }\n  toggleJsInferredProject(isJsInferredProject) {\n    if (isJsInferredProject !== this._isJsInferredProject) {\n      this._isJsInferredProject = isJsInferredProject;\n      this.setCompilerOptions();\n    }\n  }\n  setCompilerOptions(options) {\n    if (!options && !this.getCompilationSettings()) {\n      return;\n    }\n    const newOptions = cloneCompilerOptions(options || this.getCompilationSettings());\n    if (this._isJsInferredProject && typeof newOptions.maxNodeModuleJsDepth !== \"number\") {\n      newOptions.maxNodeModuleJsDepth = 2;\n    } else if (!this._isJsInferredProject) {\n      newOptions.maxNodeModuleJsDepth = void 0;\n    }\n    newOptions.allowJs = true;\n    super.setCompilerOptions(newOptions);\n  }\n  addRoot(info) {\n    Debug.assert(info.isScriptOpen());\n    this.projectService.startWatchingConfigFilesForInferredProjectRoot(info);\n    if (!this._isJsInferredProject && info.isJavaScript()) {\n      this.toggleJsInferredProject(\n        /*isJsInferredProject*/\n        true\n      );\n    } else if (this.isOrphan() && this._isJsInferredProject && !info.isJavaScript()) {\n      this.toggleJsInferredProject(\n        /*isJsInferredProject*/\n        false\n      );\n    }\n    super.addRoot(info);\n  }\n  removeRoot(info) {\n    this.projectService.stopWatchingConfigFilesForScriptInfo(info);\n    super.removeRoot(info);\n    if (!this.isOrphan() && this._isJsInferredProject && info.isJavaScript()) {\n      if (every(this.getRootScriptInfos(), (rootInfo) => !rootInfo.isJavaScript())) {\n        this.toggleJsInferredProject(\n          /*isJsInferredProject*/\n          false\n        );\n      }\n    }\n  }\n  /** @internal */\n  isOrphan() {\n    return !this.hasRoots();\n  }\n  isProjectWithSingleRoot() {\n    return !this.projectRootPath && !this.projectService.useSingleInferredProject || this.getRootScriptInfos().length === 1;\n  }\n  close() {\n    forEach(this.getRootScriptInfos(), (info) => this.projectService.stopWatchingConfigFilesForScriptInfo(info));\n    super.close();\n  }\n  getTypeAcquisition() {\n    return this.typeAcquisition || {\n      enable: allRootFilesAreJsOrDts(this),\n      include: emptyArray,\n      exclude: emptyArray\n    };\n  }\n};\nvar AuxiliaryProject = class extends Project2 {\n  constructor(hostProject) {\n    super(\n      hostProject.projectService.newAuxiliaryProjectName(),\n      4 /* Auxiliary */,\n      hostProject.projectService,\n      /*hasExplicitListOfFiles*/\n      false,\n      /*lastFileExceededProgramSize*/\n      void 0,\n      hostProject.getCompilerOptionsForNoDtsResolutionProject(),\n      /*compileOnSaveEnabled*/\n      false,\n      /*watchOptions*/\n      void 0,\n      hostProject.projectService.host,\n      hostProject.currentDirectory\n    );\n  }\n  isOrphan() {\n    return true;\n  }\n  scheduleInvalidateResolutionsOfFailedLookupLocations() {\n    return;\n  }\n};\nvar _AutoImportProviderProject = class _AutoImportProviderProject extends Project2 {\n  /** @internal */\n  constructor(hostProject, initialRootNames, compilerOptions) {\n    super(\n      hostProject.projectService.newAutoImportProviderProjectName(),\n      3 /* AutoImportProvider */,\n      hostProject.projectService,\n      /*hasExplicitListOfFiles*/\n      false,\n      /*lastFileExceededProgramSize*/\n      void 0,\n      compilerOptions,\n      /*compileOnSaveEnabled*/\n      false,\n      hostProject.getWatchOptions(),\n      hostProject.projectService.host,\n      hostProject.currentDirectory\n    );\n    this.hostProject = hostProject;\n    this.rootFileNames = initialRootNames;\n    this.useSourceOfProjectReferenceRedirect = maybeBind(this.hostProject, this.hostProject.useSourceOfProjectReferenceRedirect);\n    this.getParsedCommandLine = maybeBind(this.hostProject, this.hostProject.getParsedCommandLine);\n  }\n  /** @internal */\n  static getRootFileNames(dependencySelection, hostProject, host, compilerOptions) {\n    var _a, _b;\n    if (!dependencySelection) {\n      return emptyArray;\n    }\n    const program = hostProject.getCurrentProgram();\n    if (!program) {\n      return emptyArray;\n    }\n    const start = timestamp();\n    let dependencyNames;\n    let rootNames;\n    const rootFileName = combinePaths(hostProject.currentDirectory, inferredTypesContainingFile);\n    const packageJsons = hostProject.getPackageJsonsForAutoImport(combinePaths(hostProject.currentDirectory, rootFileName));\n    for (const packageJson of packageJsons) {\n      (_a = packageJson.dependencies) == null ? void 0 : _a.forEach((_, dependenyName) => addDependency(dependenyName));\n      (_b = packageJson.peerDependencies) == null ? void 0 : _b.forEach((_, dependencyName) => addDependency(dependencyName));\n    }\n    let dependenciesAdded = 0;\n    if (dependencyNames) {\n      const symlinkCache = hostProject.getSymlinkCache();\n      for (const name of arrayFrom(dependencyNames.keys())) {\n        if (dependencySelection === 2 /* Auto */ && dependenciesAdded >= this.maxDependencies) {\n          hostProject.log(`AutoImportProviderProject: attempted to add more than ${this.maxDependencies} dependencies. Aborting.`);\n          return emptyArray;\n        }\n        const packageJson = resolvePackageNameToPackageJson(\n          name,\n          hostProject.currentDirectory,\n          compilerOptions,\n          host,\n          program.getModuleResolutionCache()\n        );\n        if (packageJson) {\n          const entrypoints = getRootNamesFromPackageJson(packageJson, program, symlinkCache);\n          if (entrypoints) {\n            dependenciesAdded += addRootNames(entrypoints);\n            continue;\n          }\n        }\n        const done = forEach([hostProject.currentDirectory, hostProject.getGlobalTypingsCacheLocation()], (directory) => {\n          if (directory) {\n            const typesPackageJson = resolvePackageNameToPackageJson(\n              `@types/${name}`,\n              directory,\n              compilerOptions,\n              host,\n              program.getModuleResolutionCache()\n            );\n            if (typesPackageJson) {\n              const entrypoints = getRootNamesFromPackageJson(typesPackageJson, program, symlinkCache);\n              dependenciesAdded += addRootNames(entrypoints);\n              return true;\n            }\n          }\n        });\n        if (done) continue;\n        if (packageJson && compilerOptions.allowJs && compilerOptions.maxNodeModuleJsDepth) {\n          const entrypoints = getRootNamesFromPackageJson(\n            packageJson,\n            program,\n            symlinkCache,\n            /*resolveJs*/\n            true\n          );\n          dependenciesAdded += addRootNames(entrypoints);\n        }\n      }\n    }\n    const references = program.getResolvedProjectReferences();\n    let referencesAddded = 0;\n    if ((references == null ? void 0 : references.length) && hostProject.projectService.getHostPreferences().includeCompletionsForModuleExports) {\n      references.forEach((ref) => {\n        if (ref == null ? void 0 : ref.commandLine.options.outFile) {\n          referencesAddded += addRootNames(filterEntrypoints([\n            changeExtension(ref.commandLine.options.outFile, \".d.ts\")\n          ]));\n        } else if (ref) {\n          const getCommonSourceDirectory2 = memoize(\n            () => getCommonSourceDirectoryOfConfig(\n              ref.commandLine,\n              !hostProject.useCaseSensitiveFileNames()\n            )\n          );\n          referencesAddded += addRootNames(filterEntrypoints(mapDefined(\n            ref.commandLine.fileNames,\n            (fileName) => !isDeclarationFileName(fileName) && !fileExtensionIs(fileName, \".json\" /* Json */) && !program.getSourceFile(fileName) ? getOutputDeclarationFileName(\n              fileName,\n              ref.commandLine,\n              !hostProject.useCaseSensitiveFileNames(),\n              getCommonSourceDirectory2\n            ) : void 0\n          )));\n        }\n      });\n    }\n    if (rootNames == null ? void 0 : rootNames.size) {\n      hostProject.log(`AutoImportProviderProject: found ${rootNames.size} root files in ${dependenciesAdded} dependencies ${referencesAddded} referenced projects in ${timestamp() - start} ms`);\n    }\n    return rootNames ? arrayFrom(rootNames.values()) : emptyArray;\n    function addRootNames(entrypoints) {\n      if (!(entrypoints == null ? void 0 : entrypoints.length)) return 0;\n      rootNames ?? (rootNames = /* @__PURE__ */ new Set());\n      entrypoints.forEach((entry) => rootNames.add(entry));\n      return 1;\n    }\n    function addDependency(dependency) {\n      if (!startsWith(dependency, \"@types/\")) {\n        (dependencyNames || (dependencyNames = /* @__PURE__ */ new Set())).add(dependency);\n      }\n    }\n    function getRootNamesFromPackageJson(packageJson, program2, symlinkCache, resolveJs) {\n      var _a2;\n      const entrypoints = getEntrypointsFromPackageJsonInfo(\n        packageJson,\n        compilerOptions,\n        host,\n        program2.getModuleResolutionCache(),\n        resolveJs\n      );\n      if (entrypoints) {\n        const real = (_a2 = host.realpath) == null ? void 0 : _a2.call(host, packageJson.packageDirectory);\n        const realPath2 = real ? hostProject.toPath(real) : void 0;\n        const isSymlink = realPath2 && realPath2 !== hostProject.toPath(packageJson.packageDirectory);\n        if (isSymlink) {\n          symlinkCache.setSymlinkedDirectory(packageJson.packageDirectory, {\n            real: ensureTrailingDirectorySeparator(real),\n            realPath: ensureTrailingDirectorySeparator(realPath2)\n          });\n        }\n        return filterEntrypoints(entrypoints, isSymlink ? (entrypoint) => entrypoint.replace(packageJson.packageDirectory, real) : void 0);\n      }\n    }\n    function filterEntrypoints(entrypoints, symlinkName) {\n      return mapDefined(entrypoints, (entrypoint) => {\n        const resolvedFileName = symlinkName ? symlinkName(entrypoint) : entrypoint;\n        if (!program.getSourceFile(resolvedFileName) && !(symlinkName && program.getSourceFile(entrypoint))) {\n          return resolvedFileName;\n        }\n      });\n    }\n  }\n  /** @internal */\n  static create(dependencySelection, hostProject, host) {\n    if (dependencySelection === 0 /* Off */) {\n      return void 0;\n    }\n    const compilerOptions = {\n      ...hostProject.getCompilerOptions(),\n      ...this.compilerOptionsOverrides\n    };\n    const rootNames = this.getRootFileNames(dependencySelection, hostProject, host, compilerOptions);\n    if (!rootNames.length) {\n      return void 0;\n    }\n    return new _AutoImportProviderProject(hostProject, rootNames, compilerOptions);\n  }\n  /** @internal */\n  isEmpty() {\n    return !some(this.rootFileNames);\n  }\n  /** @internal */\n  isOrphan() {\n    return true;\n  }\n  updateGraph() {\n    let rootFileNames = this.rootFileNames;\n    if (!rootFileNames) {\n      rootFileNames = _AutoImportProviderProject.getRootFileNames(\n        this.hostProject.includePackageJsonAutoImports(),\n        this.hostProject,\n        this.hostProject.getHostForAutoImportProvider(),\n        this.getCompilationSettings()\n      );\n    }\n    this.projectService.setFileNamesOfAutoImportProviderOrAuxillaryProject(this, rootFileNames);\n    this.rootFileNames = rootFileNames;\n    const oldProgram = this.getCurrentProgram();\n    const hasSameSetOfFiles = super.updateGraph();\n    if (oldProgram && oldProgram !== this.getCurrentProgram()) {\n      this.hostProject.clearCachedExportInfoMap();\n    }\n    return hasSameSetOfFiles;\n  }\n  /** @internal */\n  scheduleInvalidateResolutionsOfFailedLookupLocations() {\n    return;\n  }\n  hasRoots() {\n    var _a;\n    return !!((_a = this.rootFileNames) == null ? void 0 : _a.length);\n  }\n  /** @internal */\n  markAsDirty() {\n    this.rootFileNames = void 0;\n    super.markAsDirty();\n  }\n  getScriptFileNames() {\n    return this.rootFileNames || emptyArray;\n  }\n  getLanguageService() {\n    throw new Error(\"AutoImportProviderProject language service should never be used. To get the program, use `project.getCurrentProgram()`.\");\n  }\n  /** @internal */\n  onAutoImportProviderSettingsChanged() {\n    throw new Error(\"AutoImportProviderProject is an auto import provider; use `markAsDirty()` instead.\");\n  }\n  /** @internal */\n  onPackageJsonChange() {\n    throw new Error(\"package.json changes should be notified on an AutoImportProvider's host project\");\n  }\n  getHostForAutoImportProvider() {\n    throw new Error(\"AutoImportProviderProject cannot provide its own host; use `hostProject.getModuleResolutionHostForAutomImportProvider()` instead.\");\n  }\n  getProjectReferences() {\n    return this.hostProject.getProjectReferences();\n  }\n  /** @internal */\n  includePackageJsonAutoImports() {\n    return 0 /* Off */;\n  }\n  /** @internal */\n  getSymlinkCache() {\n    return this.hostProject.getSymlinkCache();\n  }\n  /** @internal */\n  getModuleResolutionCache() {\n    var _a;\n    return (_a = this.hostProject.getCurrentProgram()) == null ? void 0 : _a.getModuleResolutionCache();\n  }\n};\n_AutoImportProviderProject.maxDependencies = 10;\n/** @internal */\n_AutoImportProviderProject.compilerOptionsOverrides = {\n  diagnostics: false,\n  skipLibCheck: true,\n  sourceMap: false,\n  types: emptyArray,\n  lib: emptyArray,\n  noLib: true\n};\nvar AutoImportProviderProject = _AutoImportProviderProject;\nvar ConfiguredProject2 = class extends Project2 {\n  /** @internal */\n  constructor(configFileName, canonicalConfigFilePath, projectService, cachedDirectoryStructureHost, pendingUpdateReason) {\n    super(\n      configFileName,\n      1 /* Configured */,\n      projectService,\n      /*hasExplicitListOfFiles*/\n      false,\n      /*lastFileExceededProgramSize*/\n      void 0,\n      /*compilerOptions*/\n      {},\n      /*compileOnSaveEnabled*/\n      false,\n      /*watchOptions*/\n      void 0,\n      cachedDirectoryStructureHost,\n      getDirectoryPath(configFileName)\n    );\n    this.canonicalConfigFilePath = canonicalConfigFilePath;\n    /** @internal */\n    this.openFileWatchTriggered = /* @__PURE__ */ new Map();\n    /** @internal */\n    this.initialLoadPending = true;\n    /** @internal */\n    this.sendLoadingProjectFinish = false;\n    this.pendingUpdateLevel = 2 /* Full */;\n    this.pendingUpdateReason = pendingUpdateReason;\n  }\n  /** @internal */\n  setCompilerHost(host) {\n    this.compilerHost = host;\n  }\n  /** @internal */\n  getCompilerHost() {\n    return this.compilerHost;\n  }\n  /** @internal */\n  useSourceOfProjectReferenceRedirect() {\n    return this.languageServiceEnabled;\n  }\n  /** @internal */\n  getParsedCommandLine(fileName) {\n    const configFileName = toNormalizedPath(fileName);\n    const canonicalConfigFilePath = asNormalizedPath(this.projectService.toCanonicalFileName(configFileName));\n    let configFileExistenceInfo = this.projectService.configFileExistenceInfoCache.get(canonicalConfigFilePath);\n    if (!configFileExistenceInfo) {\n      this.projectService.configFileExistenceInfoCache.set(canonicalConfigFilePath, configFileExistenceInfo = { exists: this.projectService.host.fileExists(configFileName) });\n    }\n    this.projectService.ensureParsedConfigUptoDate(configFileName, canonicalConfigFilePath, configFileExistenceInfo, this);\n    if (this.languageServiceEnabled && this.projectService.serverMode === 0 /* Semantic */) {\n      this.projectService.watchWildcards(configFileName, configFileExistenceInfo, this);\n    }\n    return configFileExistenceInfo.exists ? configFileExistenceInfo.config.parsedCommandLine : void 0;\n  }\n  /** @internal */\n  onReleaseParsedCommandLine(fileName) {\n    this.releaseParsedConfig(asNormalizedPath(this.projectService.toCanonicalFileName(toNormalizedPath(fileName))));\n  }\n  releaseParsedConfig(canonicalConfigFilePath) {\n    this.projectService.stopWatchingWildCards(canonicalConfigFilePath, this);\n    this.projectService.releaseParsedConfig(canonicalConfigFilePath, this);\n  }\n  /**\n   * If the project has reload from disk pending, it reloads (and then updates graph as part of that) instead of just updating the graph\n   * @returns: true if set of files in the project stays the same and false - otherwise.\n   */\n  updateGraph() {\n    if (this.deferredClose) return false;\n    const isDirty = this.dirty;\n    this.initialLoadPending = false;\n    const updateLevel = this.pendingUpdateLevel;\n    this.pendingUpdateLevel = 0 /* Update */;\n    let result;\n    switch (updateLevel) {\n      case 1 /* RootNamesAndUpdate */:\n        this.openFileWatchTriggered.clear();\n        result = this.projectService.reloadFileNamesOfConfiguredProject(this);\n        break;\n      case 2 /* Full */:\n        this.openFileWatchTriggered.clear();\n        const reason = Debug.checkDefined(this.pendingUpdateReason);\n        this.projectService.reloadConfiguredProject(this, reason);\n        result = true;\n        break;\n      default:\n        result = super.updateGraph();\n    }\n    this.compilerHost = void 0;\n    this.projectService.sendProjectLoadingFinishEvent(this);\n    this.projectService.sendProjectTelemetry(this);\n    if (updateLevel === 2 /* Full */ || // Already sent event through reload\n    result && // Not new program\n    (!isDirty || !this.triggerFileForConfigFileDiag || this.getCurrentProgram().structureIsReused === 2 /* Completely */)) {\n      this.triggerFileForConfigFileDiag = void 0;\n    } else if (!this.triggerFileForConfigFileDiag) {\n      this.projectService.sendConfigFileDiagEvent(\n        this,\n        /*triggerFile*/\n        void 0,\n        /*force*/\n        false\n      );\n    }\n    return result;\n  }\n  /** @internal */\n  getCachedDirectoryStructureHost() {\n    return this.directoryStructureHost;\n  }\n  getConfigFilePath() {\n    return asNormalizedPath(this.getProjectName());\n  }\n  getProjectReferences() {\n    return this.projectReferences;\n  }\n  updateReferences(refs) {\n    this.projectReferences = refs;\n    this.potentialProjectReferences = void 0;\n  }\n  /** @internal */\n  setPotentialProjectReference(canonicalConfigPath) {\n    Debug.assert(this.initialLoadPending);\n    (this.potentialProjectReferences || (this.potentialProjectReferences = /* @__PURE__ */ new Set())).add(canonicalConfigPath);\n  }\n  /** @internal */\n  getRedirectFromSourceFile(fileName) {\n    const program = this.getCurrentProgram();\n    return program && program.getRedirectFromSourceFile(fileName);\n  }\n  /** @internal */\n  forEachResolvedProjectReference(cb) {\n    var _a;\n    return (_a = this.getCurrentProgram()) == null ? void 0 : _a.forEachResolvedProjectReference(cb);\n  }\n  /** @internal */\n  enablePluginsWithOptions(options) {\n    var _a;\n    this.plugins.length = 0;\n    if (!((_a = options.plugins) == null ? void 0 : _a.length) && !this.projectService.globalPlugins.length) return;\n    const host = this.projectService.host;\n    if (!host.require && !host.importPlugin) {\n      this.projectService.logger.info(\"Plugins were requested but not running in environment that supports 'require'. Nothing will be loaded\");\n      return;\n    }\n    const searchPaths = this.getGlobalPluginSearchPaths();\n    if (this.projectService.allowLocalPluginLoads) {\n      const local = getDirectoryPath(this.canonicalConfigFilePath);\n      this.projectService.logger.info(`Local plugin loading enabled; adding ${local} to search paths`);\n      searchPaths.unshift(local);\n    }\n    if (options.plugins) {\n      for (const pluginConfigEntry of options.plugins) {\n        this.enablePlugin(pluginConfigEntry, searchPaths);\n      }\n    }\n    return this.enableGlobalPlugins(options);\n  }\n  /**\n   * Get the errors that dont have any file name associated\n   */\n  getGlobalProjectErrors() {\n    return filter(this.projectErrors, (diagnostic) => !diagnostic.file) || emptyArray2;\n  }\n  /**\n   * Get all the project errors\n   */\n  getAllProjectErrors() {\n    return this.projectErrors || emptyArray2;\n  }\n  setProjectErrors(projectErrors) {\n    this.projectErrors = projectErrors;\n  }\n  close() {\n    this.projectService.configFileExistenceInfoCache.forEach((_configFileExistenceInfo, canonicalConfigFilePath) => this.releaseParsedConfig(canonicalConfigFilePath));\n    this.projectErrors = void 0;\n    this.openFileWatchTriggered.clear();\n    this.compilerHost = void 0;\n    super.close();\n  }\n  /** @internal */\n  markAsDirty() {\n    if (this.deferredClose) return;\n    super.markAsDirty();\n  }\n  /** @internal */\n  isOrphan() {\n    return !!this.deferredClose;\n  }\n  getEffectiveTypeRoots() {\n    return getEffectiveTypeRoots(this.getCompilationSettings(), this) || [];\n  }\n  /** @internal */\n  updateErrorOnNoInputFiles(parsedCommandLine) {\n    this.parsedCommandLine = parsedCommandLine;\n    updateErrorForNoInputFiles(\n      parsedCommandLine.fileNames,\n      this.getConfigFilePath(),\n      this.getCompilerOptions().configFile.configFileSpecs,\n      this.projectErrors,\n      canJsonReportNoInputFiles(parsedCommandLine.raw)\n    );\n  }\n};\nvar ExternalProject = class extends Project2 {\n  /** @internal */\n  constructor(externalProjectName, projectService, compilerOptions, lastFileExceededProgramSize, compileOnSaveEnabled, projectFilePath, watchOptions) {\n    super(\n      externalProjectName,\n      2 /* External */,\n      projectService,\n      /*hasExplicitListOfFiles*/\n      true,\n      lastFileExceededProgramSize,\n      compilerOptions,\n      compileOnSaveEnabled,\n      watchOptions,\n      projectService.host,\n      getDirectoryPath(projectFilePath || normalizeSlashes(externalProjectName))\n    );\n    this.externalProjectName = externalProjectName;\n    this.compileOnSaveEnabled = compileOnSaveEnabled;\n    this.excludedFiles = [];\n    this.enableGlobalPlugins(this.getCompilerOptions());\n  }\n  updateGraph() {\n    const result = super.updateGraph();\n    this.projectService.sendProjectTelemetry(this);\n    return result;\n  }\n  getExcludedFiles() {\n    return this.excludedFiles;\n  }\n};\nfunction isInferredProject(project) {\n  return project.projectKind === 0 /* Inferred */;\n}\nfunction isConfiguredProject(project) {\n  return project.projectKind === 1 /* Configured */;\n}\nfunction isExternalProject(project) {\n  return project.projectKind === 2 /* External */;\n}\nfunction isBackgroundProject(project) {\n  return project.projectKind === 3 /* AutoImportProvider */ || project.projectKind === 4 /* Auxiliary */;\n}\nfunction isProjectDeferredClose(project) {\n  return isConfiguredProject(project) && !!project.deferredClose;\n}\n\n// src/server/editorServices.ts\nvar maxProgramSizeForNonTsFiles = 20 * 1024 * 1024;\nvar maxFileSize = 4 * 1024 * 1024;\nvar ProjectsUpdatedInBackgroundEvent = \"projectsUpdatedInBackground\";\nvar ProjectLoadingStartEvent = \"projectLoadingStart\";\nvar ProjectLoadingFinishEvent = \"projectLoadingFinish\";\nvar LargeFileReferencedEvent = \"largeFileReferenced\";\nvar ConfigFileDiagEvent = \"configFileDiag\";\nvar ProjectLanguageServiceStateEvent = \"projectLanguageServiceState\";\nvar ProjectInfoTelemetryEvent = \"projectInfo\";\nvar OpenFileInfoTelemetryEvent = \"openFileInfo\";\nvar CreateFileWatcherEvent = \"createFileWatcher\";\nvar CreateDirectoryWatcherEvent = \"createDirectoryWatcher\";\nvar CloseFileWatcherEvent = \"closeFileWatcher\";\nvar ensureProjectForOpenFileSchedule = \"*ensureProjectForOpenFiles*\";\nfunction prepareConvertersForEnumLikeCompilerOptions(commandLineOptions) {\n  const map2 = /* @__PURE__ */ new Map();\n  for (const option of commandLineOptions) {\n    if (typeof option.type === \"object\") {\n      const optionMap = option.type;\n      optionMap.forEach((value) => {\n        Debug.assert(typeof value === \"number\");\n      });\n      map2.set(option.name, optionMap);\n    }\n  }\n  return map2;\n}\nvar compilerOptionConverters = prepareConvertersForEnumLikeCompilerOptions(optionDeclarations);\nvar watchOptionsConverters = prepareConvertersForEnumLikeCompilerOptions(optionsForWatch);\nvar indentStyle = new Map(Object.entries({\n  none: 0 /* None */,\n  block: 1 /* Block */,\n  smart: 2 /* Smart */\n}));\nvar defaultTypeSafeList = {\n  \"jquery\": {\n    // jquery files can have names like \"jquery-1.10.2.min.js\" (or \"jquery.intellisense.js\")\n    match: /jquery(-[\\d.]+)?(\\.intellisense)?(\\.min)?\\.js$/i,\n    types: [\"jquery\"]\n  },\n  \"WinJS\": {\n    // e.g. c:/temp/UWApp1/lib/winjs-4.0.1/js/base.js\n    match: /^(.*\\/winjs-[.\\d]+)\\/js\\/base\\.js$/i,\n    // If the winjs/base.js file is found..\n    exclude: [[\"^\", 1, \"/.*\"]],\n    // ..then exclude all files under the winjs folder\n    types: [\"winjs\"]\n    // And fetch the @types package for WinJS\n  },\n  \"Kendo\": {\n    // e.g. /Kendo3/wwwroot/lib/kendo/kendo.all.min.js\n    match: /^(.*\\/kendo(-ui)?)\\/kendo\\.all(\\.min)?\\.js$/i,\n    exclude: [[\"^\", 1, \"/.*\"]],\n    types: [\"kendo-ui\"]\n  },\n  \"Office Nuget\": {\n    // e.g. /scripts/Office/1/excel-15.debug.js\n    match: /^(.*\\/office\\/1)\\/excel-\\d+\\.debug\\.js$/i,\n    // Office NuGet package is installed under a \"1/office\" folder\n    exclude: [[\"^\", 1, \"/.*\"]],\n    // Exclude that whole folder if the file indicated above is found in it\n    types: [\"office\"]\n    // @types package to fetch instead\n  },\n  \"References\": {\n    match: /^(.*\\/_references\\.js)$/i,\n    exclude: [[\"^\", 1, \"$\"]]\n  }\n};\nfunction convertFormatOptions(protocolOptions) {\n  if (isString(protocolOptions.indentStyle)) {\n    protocolOptions.indentStyle = indentStyle.get(protocolOptions.indentStyle.toLowerCase());\n    Debug.assert(protocolOptions.indentStyle !== void 0);\n  }\n  return protocolOptions;\n}\nfunction convertCompilerOptions(protocolOptions) {\n  compilerOptionConverters.forEach((mappedValues, id) => {\n    const propertyValue = protocolOptions[id];\n    if (isString(propertyValue)) {\n      protocolOptions[id] = mappedValues.get(propertyValue.toLowerCase());\n    }\n  });\n  return protocolOptions;\n}\nfunction convertWatchOptions(protocolOptions, currentDirectory) {\n  let watchOptions;\n  let errors;\n  optionsForWatch.forEach((option) => {\n    const propertyValue = protocolOptions[option.name];\n    if (propertyValue === void 0) return;\n    const mappedValues = watchOptionsConverters.get(option.name);\n    (watchOptions || (watchOptions = {}))[option.name] = mappedValues ? isString(propertyValue) ? mappedValues.get(propertyValue.toLowerCase()) : propertyValue : convertJsonOption(option, propertyValue, currentDirectory || \"\", errors || (errors = []));\n  });\n  return watchOptions && { watchOptions, errors };\n}\nfunction convertTypeAcquisition(protocolOptions) {\n  let result;\n  typeAcquisitionDeclarations.forEach((option) => {\n    const propertyValue = protocolOptions[option.name];\n    if (propertyValue === void 0) return;\n    (result || (result = {}))[option.name] = propertyValue;\n  });\n  return result;\n}\nfunction tryConvertScriptKindName(scriptKindName) {\n  return isString(scriptKindName) ? convertScriptKindName(scriptKindName) : scriptKindName;\n}\nfunction convertScriptKindName(scriptKindName) {\n  switch (scriptKindName) {\n    case \"JS\":\n      return 1 /* JS */;\n    case \"JSX\":\n      return 2 /* JSX */;\n    case \"TS\":\n      return 3 /* TS */;\n    case \"TSX\":\n      return 4 /* TSX */;\n    default:\n      return 0 /* Unknown */;\n  }\n}\nfunction convertUserPreferences(preferences) {\n  const { lazyConfiguredProjectsFromExternalProject: _, ...userPreferences } = preferences;\n  return userPreferences;\n}\nvar fileNamePropertyReader = {\n  getFileName: (x) => x,\n  getScriptKind: (fileName, extraFileExtensions) => {\n    let result;\n    if (extraFileExtensions) {\n      const fileExtension = getAnyExtensionFromPath(fileName);\n      if (fileExtension) {\n        some(extraFileExtensions, (info) => {\n          if (info.extension === fileExtension) {\n            result = info.scriptKind;\n            return true;\n          }\n          return false;\n        });\n      }\n    }\n    return result;\n  },\n  hasMixedContent: (fileName, extraFileExtensions) => some(extraFileExtensions, (ext) => ext.isMixedContent && fileExtensionIs(fileName, ext.extension))\n};\nvar externalFilePropertyReader = {\n  getFileName: (x) => x.fileName,\n  getScriptKind: (x) => tryConvertScriptKindName(x.scriptKind),\n  // TODO: GH#18217\n  hasMixedContent: (x) => !!x.hasMixedContent\n};\nfunction findProjectByName(projectName, projects) {\n  for (const proj of projects) {\n    if (proj.getProjectName() === projectName) {\n      return proj;\n    }\n  }\n}\nvar nullTypingsInstaller = {\n  isKnownTypesPackageName: returnFalse,\n  // Should never be called because we never provide a types registry.\n  installPackage: notImplemented,\n  enqueueInstallTypingsRequest: noop,\n  attach: noop,\n  onProjectClosed: noop,\n  globalTypingsCacheLocation: void 0\n  // TODO: GH#18217\n};\nvar noopConfigFileWatcher = { close: noop };\nfunction getConfigFileNameFromCache(info, cache) {\n  if (!cache) return void 0;\n  const configFileForOpenFile = cache.get(info.path);\n  if (configFileForOpenFile === void 0) return void 0;\n  if (!isAncestorConfigFileInfo(info)) {\n    return isString(configFileForOpenFile) || !configFileForOpenFile ? configFileForOpenFile : (\n      // direct result\n      configFileForOpenFile.get(\n        /*key*/\n        false\n      )\n    );\n  } else {\n    return configFileForOpenFile && !isString(configFileForOpenFile) ? (\n      // Map with fileName as key\n      configFileForOpenFile.get(info.fileName)\n    ) : void 0;\n  }\n}\nfunction isOpenScriptInfo(infoOrFileNameOrConfig) {\n  return !!infoOrFileNameOrConfig.containingProjects;\n}\nfunction isAncestorConfigFileInfo(infoOrFileNameOrConfig) {\n  return !!infoOrFileNameOrConfig.configFileInfo;\n}\nvar ConfiguredProjectLoadKind = /* @__PURE__ */ ((ConfiguredProjectLoadKind2) => {\n  ConfiguredProjectLoadKind2[ConfiguredProjectLoadKind2[\"FindOptimized\"] = 0] = \"FindOptimized\";\n  ConfiguredProjectLoadKind2[ConfiguredProjectLoadKind2[\"Find\"] = 1] = \"Find\";\n  ConfiguredProjectLoadKind2[ConfiguredProjectLoadKind2[\"CreateReplayOptimized\"] = 2] = \"CreateReplayOptimized\";\n  ConfiguredProjectLoadKind2[ConfiguredProjectLoadKind2[\"CreateReplay\"] = 3] = \"CreateReplay\";\n  ConfiguredProjectLoadKind2[ConfiguredProjectLoadKind2[\"CreateOptimized\"] = 4] = \"CreateOptimized\";\n  ConfiguredProjectLoadKind2[ConfiguredProjectLoadKind2[\"Create\"] = 5] = \"Create\";\n  ConfiguredProjectLoadKind2[ConfiguredProjectLoadKind2[\"ReloadOptimized\"] = 6] = \"ReloadOptimized\";\n  ConfiguredProjectLoadKind2[ConfiguredProjectLoadKind2[\"Reload\"] = 7] = \"Reload\";\n  return ConfiguredProjectLoadKind2;\n})(ConfiguredProjectLoadKind || {});\nfunction toConfiguredProjectLoadOptimized(kind) {\n  return kind - 1;\n}\nfunction forEachAncestorProjectLoad(info, project, cb, kind, reason, allowDeferredClosed, reloadedProjects, searchOnlyPotentialSolution, delayReloadedConfiguredProjects) {\n  var _a;\n  while (true) {\n    if (project.parsedCommandLine && (searchOnlyPotentialSolution && !project.parsedCommandLine.options.composite || // Currently disableSolutionSearching is shared for finding solution/project when\n    // - loading solution for find all references\n    // - trying to find default project\n    project.parsedCommandLine.options.disableSolutionSearching)) return;\n    const configFileName = project.projectService.getConfigFileNameForFile(\n      {\n        fileName: project.getConfigFilePath(),\n        path: info.path,\n        configFileInfo: true,\n        isForDefaultProject: !searchOnlyPotentialSolution\n      },\n      kind <= 3 /* CreateReplay */\n    );\n    if (!configFileName) return;\n    const ancestor = project.projectService.findCreateOrReloadConfiguredProject(\n      configFileName,\n      kind,\n      reason,\n      allowDeferredClosed,\n      !searchOnlyPotentialSolution ? info.fileName : void 0,\n      // Config Diag event for project if its for default project\n      reloadedProjects,\n      searchOnlyPotentialSolution,\n      // Delay load if we are searching for solution\n      delayReloadedConfiguredProjects\n    );\n    if (!ancestor) return;\n    if (!ancestor.project.parsedCommandLine && ((_a = project.parsedCommandLine) == null ? void 0 : _a.options.composite)) {\n      ancestor.project.setPotentialProjectReference(project.canonicalConfigFilePath);\n    }\n    const result = cb(ancestor);\n    if (result) return result;\n    project = ancestor.project;\n  }\n}\nfunction forEachResolvedProjectReferenceProjectLoad(project, parentConfig, cb, kind, reason, allowDeferredClosed, reloadedProjects, seenResolvedRefs) {\n  const loadKind = parentConfig.options.disableReferencedProjectLoad ? 0 /* FindOptimized */ : kind;\n  let children;\n  return forEach(\n    parentConfig.projectReferences,\n    (ref) => {\n      var _a;\n      const childConfigName = toNormalizedPath(resolveProjectReferencePath(ref));\n      const childCanonicalConfigPath = asNormalizedPath(project.projectService.toCanonicalFileName(childConfigName));\n      const seenValue = seenResolvedRefs == null ? void 0 : seenResolvedRefs.get(childCanonicalConfigPath);\n      if (seenValue !== void 0 && seenValue >= loadKind) return void 0;\n      const configFileExistenceInfo = project.projectService.configFileExistenceInfoCache.get(childCanonicalConfigPath);\n      let childConfig = loadKind === 0 /* FindOptimized */ ? (configFileExistenceInfo == null ? void 0 : configFileExistenceInfo.exists) || ((_a = project.resolvedChildConfigs) == null ? void 0 : _a.has(childCanonicalConfigPath)) ? configFileExistenceInfo.config.parsedCommandLine : void 0 : project.getParsedCommandLine(childConfigName);\n      if (childConfig && loadKind !== kind && loadKind > 2 /* CreateReplayOptimized */) {\n        childConfig = project.getParsedCommandLine(childConfigName);\n      }\n      if (!childConfig) return void 0;\n      const childProject = project.projectService.findConfiguredProjectByProjectName(childConfigName, allowDeferredClosed);\n      if (loadKind === 2 /* CreateReplayOptimized */ && !configFileExistenceInfo && !childProject) return void 0;\n      switch (loadKind) {\n        case 6 /* ReloadOptimized */:\n          if (childProject) childProject.projectService.reloadConfiguredProjectOptimized(childProject, reason, reloadedProjects);\n        // falls through\n        case 4 /* CreateOptimized */:\n          (project.resolvedChildConfigs ?? (project.resolvedChildConfigs = /* @__PURE__ */ new Set())).add(childCanonicalConfigPath);\n        // falls through\n        case 2 /* CreateReplayOptimized */:\n        case 0 /* FindOptimized */:\n          if (childProject || loadKind !== 0 /* FindOptimized */) {\n            const result = cb(\n              configFileExistenceInfo ?? project.projectService.configFileExistenceInfoCache.get(childCanonicalConfigPath),\n              childProject,\n              childConfigName,\n              reason,\n              project,\n              childCanonicalConfigPath\n            );\n            if (result) return result;\n          }\n          break;\n        default:\n          Debug.assertNever(loadKind);\n      }\n      (seenResolvedRefs ?? (seenResolvedRefs = /* @__PURE__ */ new Map())).set(childCanonicalConfigPath, loadKind);\n      (children ?? (children = [])).push(childConfig);\n    }\n  ) || forEach(\n    children,\n    (childConfig) => childConfig.projectReferences && forEachResolvedProjectReferenceProjectLoad(\n      project,\n      childConfig,\n      cb,\n      loadKind,\n      reason,\n      allowDeferredClosed,\n      reloadedProjects,\n      seenResolvedRefs\n    )\n  );\n}\nfunction updateProjectFoundUsingFind(project, kind, triggerFile, reason, reloadedProjects) {\n  let sentConfigFileDiag = false;\n  let configFileExistenceInfo;\n  switch (kind) {\n    case 2 /* CreateReplayOptimized */:\n    case 3 /* CreateReplay */:\n      if (useConfigFileExistenceInfoForOptimizedLoading(project)) {\n        configFileExistenceInfo = project.projectService.configFileExistenceInfoCache.get(project.canonicalConfigFilePath);\n      }\n      break;\n    case 4 /* CreateOptimized */:\n      configFileExistenceInfo = configFileExistenceInfoForOptimizedLoading(project);\n      if (configFileExistenceInfo) break;\n    // falls through\n    case 5 /* Create */:\n      sentConfigFileDiag = updateConfiguredProject(project, triggerFile);\n      break;\n    case 6 /* ReloadOptimized */:\n      project.projectService.reloadConfiguredProjectOptimized(project, reason, reloadedProjects);\n      configFileExistenceInfo = configFileExistenceInfoForOptimizedLoading(project);\n      if (configFileExistenceInfo) break;\n    // falls through\n    case 7 /* Reload */:\n      sentConfigFileDiag = project.projectService.reloadConfiguredProjectClearingSemanticCache(\n        project,\n        reason,\n        reloadedProjects\n      );\n      break;\n    case 0 /* FindOptimized */:\n    case 1 /* Find */:\n      break;\n    default:\n      Debug.assertNever(kind);\n  }\n  return { project, sentConfigFileDiag, configFileExistenceInfo, reason };\n}\nfunction forEachPotentialProjectReference(project, cb) {\n  return project.initialLoadPending ? (project.potentialProjectReferences && forEachKey(project.potentialProjectReferences, cb)) ?? (project.resolvedChildConfigs && forEachKey(project.resolvedChildConfigs, cb)) : void 0;\n}\nfunction forEachAnyProjectReferenceKind(project, cb, cbProjectRef, cbPotentialProjectRef) {\n  return project.getCurrentProgram() ? project.forEachResolvedProjectReference(cb) : project.initialLoadPending ? forEachPotentialProjectReference(project, cbPotentialProjectRef) : forEach(project.getProjectReferences(), cbProjectRef);\n}\nfunction callbackRefProject(project, cb, refPath) {\n  const refProject = refPath && project.projectService.configuredProjects.get(refPath);\n  return refProject && cb(refProject);\n}\nfunction forEachReferencedProject(project, cb) {\n  return forEachAnyProjectReferenceKind(\n    project,\n    (resolvedRef) => callbackRefProject(project, cb, resolvedRef.sourceFile.path),\n    (projectRef) => callbackRefProject(project, cb, project.toPath(resolveProjectReferencePath(projectRef))),\n    (potentialProjectRef) => callbackRefProject(project, cb, potentialProjectRef)\n  );\n}\nfunction getDetailWatchInfo(watchType, project) {\n  return `${isString(project) ? `Config: ${project} ` : project ? `Project: ${project.getProjectName()} ` : \"\"}WatchType: ${watchType}`;\n}\nfunction isScriptInfoWatchedFromNodeModules(info) {\n  return !info.isScriptOpen() && info.mTime !== void 0;\n}\nfunction updateProjectIfDirty(project) {\n  project.invalidateResolutionsOfFailedLookupLocations();\n  return project.dirty && !project.updateGraph();\n}\nfunction updateWithTriggerFile(project, triggerFile, isReload) {\n  if (!isReload) {\n    project.invalidateResolutionsOfFailedLookupLocations();\n    if (!project.dirty) return false;\n  }\n  project.triggerFileForConfigFileDiag = triggerFile;\n  const updateLevel = project.pendingUpdateLevel;\n  project.updateGraph();\n  if (!project.triggerFileForConfigFileDiag && !isReload) return updateLevel === 2 /* Full */;\n  const sent = project.projectService.sendConfigFileDiagEvent(project, triggerFile, isReload);\n  project.triggerFileForConfigFileDiag = void 0;\n  return sent;\n}\nfunction updateConfiguredProject(project, triggerFile) {\n  if (triggerFile) {\n    if (updateWithTriggerFile(\n      project,\n      triggerFile,\n      /*isReload*/\n      false\n    )) return true;\n  } else {\n    updateProjectIfDirty(project);\n  }\n  return false;\n}\nfunction configFileExistenceInfoForOptimizedLoading(project) {\n  const configFileName = toNormalizedPath(project.getConfigFilePath());\n  const configFileExistenceInfo = project.projectService.ensureParsedConfigUptoDate(\n    configFileName,\n    project.canonicalConfigFilePath,\n    project.projectService.configFileExistenceInfoCache.get(project.canonicalConfigFilePath),\n    project\n  );\n  const parsedCommandLine = configFileExistenceInfo.config.parsedCommandLine;\n  project.parsedCommandLine = parsedCommandLine;\n  project.resolvedChildConfigs = void 0;\n  project.updateReferences(parsedCommandLine.projectReferences);\n  if (useConfigFileExistenceInfoForOptimizedLoading(project)) return configFileExistenceInfo;\n}\nfunction useConfigFileExistenceInfoForOptimizedLoading(project) {\n  return !!project.parsedCommandLine && (!!project.parsedCommandLine.options.composite || // If solution, no need to load it to determine if file belongs to it\n  !!isSolutionConfig(project.parsedCommandLine));\n}\nfunction configFileExistenceInfoForOptimizedReplay(project) {\n  return useConfigFileExistenceInfoForOptimizedLoading(project) ? project.projectService.configFileExistenceInfoCache.get(project.canonicalConfigFilePath) : void 0;\n}\nfunction fileOpenReason(info) {\n  return `Creating possible configured project for ${info.fileName} to open`;\n}\nfunction reloadReason(reason) {\n  return `User requested reload projects: ${reason}`;\n}\nfunction setProjectOptionsUsed(project) {\n  if (isConfiguredProject(project)) {\n    project.projectOptions = true;\n  }\n}\nfunction createProjectNameFactoryWithCounter(nameFactory) {\n  let nextId = 1;\n  return () => nameFactory(nextId++);\n}\nfunction getHostWatcherMap() {\n  return { idToCallbacks: /* @__PURE__ */ new Map(), pathToId: /* @__PURE__ */ new Map() };\n}\nfunction getCanUseWatchEvents(service, canUseWatchEvents) {\n  return !!canUseWatchEvents && !!service.eventHandler && !!service.session;\n}\nfunction createWatchFactoryHostUsingWatchEvents(service, canUseWatchEvents) {\n  if (!getCanUseWatchEvents(service, canUseWatchEvents)) return void 0;\n  const watchedFiles = getHostWatcherMap();\n  const watchedDirectories = getHostWatcherMap();\n  const watchedDirectoriesRecursive = getHostWatcherMap();\n  let ids = 1;\n  service.session.addProtocolHandler(\"watchChange\" /* WatchChange */, (req) => {\n    onWatchChange(req.arguments);\n    return { responseRequired: false };\n  });\n  return {\n    watchFile: watchFile2,\n    watchDirectory,\n    getCurrentDirectory: () => service.host.getCurrentDirectory(),\n    useCaseSensitiveFileNames: service.host.useCaseSensitiveFileNames\n  };\n  function watchFile2(path, callback) {\n    return getOrCreateFileWatcher(\n      watchedFiles,\n      path,\n      callback,\n      (id) => ({ eventName: CreateFileWatcherEvent, data: { id, path } })\n    );\n  }\n  function watchDirectory(path, callback, recursive) {\n    return getOrCreateFileWatcher(\n      recursive ? watchedDirectoriesRecursive : watchedDirectories,\n      path,\n      callback,\n      (id) => ({\n        eventName: CreateDirectoryWatcherEvent,\n        data: {\n          id,\n          path,\n          recursive: !!recursive,\n          // Special case node_modules as we watch it for changes to closed script infos as well\n          ignoreUpdate: !path.endsWith(\"/node_modules\") ? true : void 0\n        }\n      })\n    );\n  }\n  function getOrCreateFileWatcher({ pathToId, idToCallbacks }, path, callback, event) {\n    const key = service.toPath(path);\n    let id = pathToId.get(key);\n    if (!id) pathToId.set(key, id = ids++);\n    let callbacks = idToCallbacks.get(id);\n    if (!callbacks) {\n      idToCallbacks.set(id, callbacks = /* @__PURE__ */ new Set());\n      service.eventHandler(event(id));\n    }\n    callbacks.add(callback);\n    return {\n      close() {\n        const callbacks2 = idToCallbacks.get(id);\n        if (!(callbacks2 == null ? void 0 : callbacks2.delete(callback))) return;\n        if (callbacks2.size) return;\n        idToCallbacks.delete(id);\n        pathToId.delete(key);\n        service.eventHandler({ eventName: CloseFileWatcherEvent, data: { id } });\n      }\n    };\n  }\n  function onWatchChange(args) {\n    if (isArray(args)) args.forEach(onWatchChangeRequestArgs);\n    else onWatchChangeRequestArgs(args);\n  }\n  function onWatchChangeRequestArgs({ id, created, deleted, updated }) {\n    onWatchEventType(id, created, 0 /* Created */);\n    onWatchEventType(id, deleted, 2 /* Deleted */);\n    onWatchEventType(id, updated, 1 /* Changed */);\n  }\n  function onWatchEventType(id, paths, eventKind) {\n    if (!(paths == null ? void 0 : paths.length)) return;\n    forEachCallback(watchedFiles, id, paths, (callback, eventPath) => callback(eventPath, eventKind));\n    forEachCallback(watchedDirectories, id, paths, (callback, eventPath) => callback(eventPath));\n    forEachCallback(watchedDirectoriesRecursive, id, paths, (callback, eventPath) => callback(eventPath));\n  }\n  function forEachCallback(hostWatcherMap, id, eventPaths, cb) {\n    var _a;\n    (_a = hostWatcherMap.idToCallbacks.get(id)) == null ? void 0 : _a.forEach((callback) => {\n      eventPaths.forEach((eventPath) => cb(callback, normalizeSlashes(eventPath)));\n    });\n  }\n}\nvar _ProjectService = class _ProjectService {\n  constructor(opts) {\n    /**\n     * Container of all known scripts\n     *\n     * @internal\n     */\n    this.filenameToScriptInfo = /* @__PURE__ */ new Map();\n    this.nodeModulesWatchers = /* @__PURE__ */ new Map();\n    /**\n     * Contains all the deleted script info's version information so that\n     * it does not reset when creating script info again\n     * (and could have potentially collided with version where contents mismatch)\n     */\n    this.filenameToScriptInfoVersion = /* @__PURE__ */ new Map();\n    // Set of all '.js' files ever opened.\n    this.allJsFilesForOpenFileTelemetry = /* @__PURE__ */ new Set();\n    /**\n     * maps external project file name to list of config files that were the part of this project\n     */\n    this.externalProjectToConfiguredProjectMap = /* @__PURE__ */ new Map();\n    /**\n     * external projects (configuration and list of root files is not controlled by tsserver)\n     */\n    this.externalProjects = [];\n    /**\n     * projects built from openFileRoots\n     */\n    this.inferredProjects = [];\n    /**\n     * projects specified by a tsconfig.json file\n     */\n    this.configuredProjects = /* @__PURE__ */ new Map();\n    /** @internal */\n    this.newInferredProjectName = createProjectNameFactoryWithCounter(makeInferredProjectName);\n    /** @internal */\n    this.newAutoImportProviderProjectName = createProjectNameFactoryWithCounter(makeAutoImportProviderProjectName);\n    /** @internal */\n    this.newAuxiliaryProjectName = createProjectNameFactoryWithCounter(makeAuxiliaryProjectName);\n    /**\n     * Open files: with value being project root path, and key being Path of the file that is open\n     */\n    this.openFiles = /* @__PURE__ */ new Map();\n    /** Config files looked up and cached config files for open script info */\n    this.configFileForOpenFiles = /* @__PURE__ */ new Map();\n    /** Set of open script infos that are root of inferred project */\n    this.rootOfInferredProjects = /* @__PURE__ */ new Set();\n    /**\n     * Map of open files that are opened without complete path but have projectRoot as current directory\n     */\n    this.openFilesWithNonRootedDiskPath = /* @__PURE__ */ new Map();\n    this.compilerOptionsForInferredProjectsPerProjectRoot = /* @__PURE__ */ new Map();\n    this.watchOptionsForInferredProjectsPerProjectRoot = /* @__PURE__ */ new Map();\n    this.typeAcquisitionForInferredProjectsPerProjectRoot = /* @__PURE__ */ new Map();\n    /**\n     * Project size for configured or external projects\n     */\n    this.projectToSizeMap = /* @__PURE__ */ new Map();\n    /**\n     * This is a map of config file paths existence that doesnt need query to disk\n     * - The entry can be present because there is inferred project that needs to watch addition of config file to directory\n     *   In this case the exists could be true/false based on config file is present or not\n     * - Or it is present if we have configured project open with config file at that location\n     *   In this case the exists property is always true\n     *\n     * @internal\n     */\n    this.configFileExistenceInfoCache = /* @__PURE__ */ new Map();\n    this.safelist = defaultTypeSafeList;\n    this.legacySafelist = /* @__PURE__ */ new Map();\n    this.pendingProjectUpdates = /* @__PURE__ */ new Map();\n    /** @internal */\n    this.pendingEnsureProjectForOpenFiles = false;\n    /** Tracks projects that we have already sent telemetry for. */\n    this.seenProjects = /* @__PURE__ */ new Map();\n    this.sharedExtendedConfigFileWatchers = /* @__PURE__ */ new Map();\n    this.extendedConfigCache = /* @__PURE__ */ new Map();\n    /** @internal */\n    this.baseline = noop;\n    /** @internal */\n    this.verifyDocumentRegistry = noop;\n    /** @internal */\n    this.verifyProgram = noop;\n    /** @internal */\n    this.onProjectCreation = noop;\n    var _a;\n    this.host = opts.host;\n    this.logger = opts.logger;\n    this.cancellationToken = opts.cancellationToken;\n    this.useSingleInferredProject = opts.useSingleInferredProject;\n    this.useInferredProjectPerProjectRoot = opts.useInferredProjectPerProjectRoot;\n    this.typingsInstaller = opts.typingsInstaller || nullTypingsInstaller;\n    this.throttleWaitMilliseconds = opts.throttleWaitMilliseconds;\n    this.eventHandler = opts.eventHandler;\n    this.suppressDiagnosticEvents = opts.suppressDiagnosticEvents;\n    this.globalPlugins = opts.globalPlugins || emptyArray2;\n    this.pluginProbeLocations = opts.pluginProbeLocations || emptyArray2;\n    this.allowLocalPluginLoads = !!opts.allowLocalPluginLoads;\n    this.typesMapLocation = opts.typesMapLocation === void 0 ? combinePaths(getDirectoryPath(this.getExecutingFilePath()), \"typesMap.json\") : opts.typesMapLocation;\n    this.session = opts.session;\n    this.jsDocParsingMode = opts.jsDocParsingMode;\n    if (opts.serverMode !== void 0) {\n      this.serverMode = opts.serverMode;\n    } else {\n      this.serverMode = 0 /* Semantic */;\n    }\n    if (this.host.realpath) {\n      this.realpathToScriptInfos = createMultiMap();\n    }\n    this.currentDirectory = toNormalizedPath(this.host.getCurrentDirectory());\n    this.toCanonicalFileName = createGetCanonicalFileName(this.host.useCaseSensitiveFileNames);\n    this.globalCacheLocationDirectoryPath = this.typingsInstaller.globalTypingsCacheLocation ? ensureTrailingDirectorySeparator(this.toPath(this.typingsInstaller.globalTypingsCacheLocation)) : void 0;\n    this.throttledOperations = new ThrottledOperations(this.host, this.logger);\n    this.logger.info(`currentDirectory:: ${this.host.getCurrentDirectory()} useCaseSensitiveFileNames:: ${this.host.useCaseSensitiveFileNames}`);\n    this.logger.info(`libs Location:: ${getDirectoryPath(this.host.getExecutingFilePath())}`);\n    this.logger.info(`globalTypingsCacheLocation:: ${this.typingsInstaller.globalTypingsCacheLocation}`);\n    if (this.typesMapLocation) {\n      this.loadTypesMap();\n    } else {\n      this.logger.info(\"No types map provided; using the default\");\n    }\n    this.typingsInstaller.attach(this);\n    this.hostConfiguration = {\n      formatCodeOptions: getDefaultFormatCodeSettings(this.host.newLine),\n      preferences: emptyOptions,\n      hostInfo: \"Unknown host\",\n      extraFileExtensions: []\n    };\n    this.documentRegistry = createDocumentRegistryInternal(\n      this.host.useCaseSensitiveFileNames,\n      this.currentDirectory,\n      this.jsDocParsingMode,\n      this\n    );\n    const watchLogLevel = this.logger.hasLevel(3 /* verbose */) ? 2 /* Verbose */ : this.logger.loggingEnabled() ? 1 /* TriggerOnly */ : 0 /* None */;\n    const log = watchLogLevel !== 0 /* None */ ? (s) => this.logger.info(s) : noop;\n    this.packageJsonCache = createPackageJsonCache(this);\n    this.watchFactory = this.serverMode !== 0 /* Semantic */ ? {\n      watchFile: returnNoopFileWatcher,\n      watchDirectory: returnNoopFileWatcher\n    } : getWatchFactory(\n      createWatchFactoryHostUsingWatchEvents(this, opts.canUseWatchEvents) || this.host,\n      watchLogLevel,\n      log,\n      getDetailWatchInfo\n    );\n    this.canUseWatchEvents = getCanUseWatchEvents(this, opts.canUseWatchEvents);\n    (_a = opts.incrementalVerifier) == null ? void 0 : _a.call(opts, this);\n  }\n  toPath(fileName) {\n    return toPath(fileName, this.currentDirectory, this.toCanonicalFileName);\n  }\n  /** @internal */\n  getExecutingFilePath() {\n    return this.getNormalizedAbsolutePath(this.host.getExecutingFilePath());\n  }\n  /** @internal */\n  getNormalizedAbsolutePath(fileName) {\n    return getNormalizedAbsolutePath(fileName, this.host.getCurrentDirectory());\n  }\n  /** @internal */\n  setDocument(key, path, sourceFile) {\n    const info = Debug.checkDefined(this.getScriptInfoForPath(path));\n    info.cacheSourceFile = { key, sourceFile };\n  }\n  /** @internal */\n  getDocument(key, path) {\n    const info = this.getScriptInfoForPath(path);\n    return info && info.cacheSourceFile && info.cacheSourceFile.key === key ? info.cacheSourceFile.sourceFile : void 0;\n  }\n  /** @internal */\n  ensureInferredProjectsUpToDate_TestOnly() {\n    this.ensureProjectStructuresUptoDate();\n  }\n  /** @internal */\n  getCompilerOptionsForInferredProjects() {\n    return this.compilerOptionsForInferredProjects;\n  }\n  /** @internal */\n  onUpdateLanguageServiceStateForProject(project, languageServiceEnabled) {\n    if (!this.eventHandler) {\n      return;\n    }\n    const event = {\n      eventName: ProjectLanguageServiceStateEvent,\n      data: { project, languageServiceEnabled }\n    };\n    this.eventHandler(event);\n  }\n  loadTypesMap() {\n    try {\n      const fileContent = this.host.readFile(this.typesMapLocation);\n      if (fileContent === void 0) {\n        this.logger.info(`Provided types map file \"${this.typesMapLocation}\" doesn't exist`);\n        return;\n      }\n      const raw = JSON.parse(fileContent);\n      for (const k of Object.keys(raw.typesMap)) {\n        raw.typesMap[k].match = new RegExp(raw.typesMap[k].match, \"i\");\n      }\n      this.safelist = raw.typesMap;\n      for (const key in raw.simpleMap) {\n        if (hasProperty(raw.simpleMap, key)) {\n          this.legacySafelist.set(key, raw.simpleMap[key].toLowerCase());\n        }\n      }\n    } catch (e) {\n      this.logger.info(`Error loading types map: ${e}`);\n      this.safelist = defaultTypeSafeList;\n      this.legacySafelist.clear();\n    }\n  }\n  // eslint-disable-line @typescript-eslint/unified-signatures\n  updateTypingsForProject(response) {\n    const project = this.findProject(response.projectName);\n    if (!project) {\n      return;\n    }\n    switch (response.kind) {\n      case ActionSet:\n        project.updateTypingFiles(\n          response.compilerOptions,\n          response.typeAcquisition,\n          response.unresolvedImports,\n          response.typings\n        );\n        return;\n      case ActionInvalidate:\n        project.enqueueInstallTypingsForProject(\n          /*forceRefresh*/\n          true\n        );\n        return;\n    }\n  }\n  /** @internal */\n  watchTypingLocations(response) {\n    var _a;\n    (_a = this.findProject(response.projectName)) == null ? void 0 : _a.watchTypingLocations(response.files);\n  }\n  /** @internal */\n  delayEnsureProjectForOpenFiles() {\n    if (!this.openFiles.size) return;\n    this.pendingEnsureProjectForOpenFiles = true;\n    this.throttledOperations.schedule(\n      ensureProjectForOpenFileSchedule,\n      /*delay*/\n      2500,\n      () => {\n        if (this.pendingProjectUpdates.size !== 0) {\n          this.delayEnsureProjectForOpenFiles();\n        } else {\n          if (this.pendingEnsureProjectForOpenFiles) {\n            this.ensureProjectForOpenFiles();\n            this.sendProjectsUpdatedInBackgroundEvent();\n          }\n        }\n      }\n    );\n  }\n  delayUpdateProjectGraph(project) {\n    if (isProjectDeferredClose(project)) return;\n    project.markAsDirty();\n    if (isBackgroundProject(project)) return;\n    const projectName = project.getProjectName();\n    this.pendingProjectUpdates.set(projectName, project);\n    this.throttledOperations.schedule(\n      projectName,\n      /*delay*/\n      250,\n      () => {\n        if (this.pendingProjectUpdates.delete(projectName)) {\n          updateProjectIfDirty(project);\n        }\n      }\n    );\n  }\n  /** @internal */\n  hasPendingProjectUpdate(project) {\n    return this.pendingProjectUpdates.has(project.getProjectName());\n  }\n  /** @internal */\n  sendProjectsUpdatedInBackgroundEvent() {\n    if (!this.eventHandler) {\n      return;\n    }\n    const event = {\n      eventName: ProjectsUpdatedInBackgroundEvent,\n      data: {\n        openFiles: arrayFrom(this.openFiles.keys(), (path) => this.getScriptInfoForPath(path).fileName)\n      }\n    };\n    this.eventHandler(event);\n  }\n  /** @internal */\n  sendLargeFileReferencedEvent(file, fileSize) {\n    if (!this.eventHandler) {\n      return;\n    }\n    const event = {\n      eventName: LargeFileReferencedEvent,\n      data: { file, fileSize, maxFileSize }\n    };\n    this.eventHandler(event);\n  }\n  /** @internal */\n  sendProjectLoadingStartEvent(project, reason) {\n    if (!this.eventHandler) {\n      return;\n    }\n    project.sendLoadingProjectFinish = true;\n    const event = {\n      eventName: ProjectLoadingStartEvent,\n      data: { project, reason }\n    };\n    this.eventHandler(event);\n  }\n  /** @internal */\n  sendProjectLoadingFinishEvent(project) {\n    if (!this.eventHandler || !project.sendLoadingProjectFinish) {\n      return;\n    }\n    project.sendLoadingProjectFinish = false;\n    const event = {\n      eventName: ProjectLoadingFinishEvent,\n      data: { project }\n    };\n    this.eventHandler(event);\n  }\n  /** @internal */\n  sendPerformanceEvent(kind, durationMs) {\n    if (this.performanceEventHandler) {\n      this.performanceEventHandler({ kind, durationMs });\n    }\n  }\n  /** @internal */\n  delayUpdateProjectGraphAndEnsureProjectStructureForOpenFiles(project) {\n    this.delayUpdateProjectGraph(project);\n    this.delayEnsureProjectForOpenFiles();\n  }\n  delayUpdateProjectGraphs(projects, clearSourceMapperCache) {\n    if (projects.length) {\n      for (const project of projects) {\n        if (clearSourceMapperCache) project.clearSourceMapperCache();\n        this.delayUpdateProjectGraph(project);\n      }\n      this.delayEnsureProjectForOpenFiles();\n    }\n  }\n  setCompilerOptionsForInferredProjects(projectCompilerOptions, projectRootPath) {\n    Debug.assert(projectRootPath === void 0 || this.useInferredProjectPerProjectRoot, \"Setting compiler options per project root path is only supported when useInferredProjectPerProjectRoot is enabled\");\n    const compilerOptions = convertCompilerOptions(projectCompilerOptions);\n    const watchOptions = convertWatchOptions(projectCompilerOptions, projectRootPath);\n    const typeAcquisition = convertTypeAcquisition(projectCompilerOptions);\n    compilerOptions.allowNonTsExtensions = true;\n    const canonicalProjectRootPath = projectRootPath && this.toCanonicalFileName(projectRootPath);\n    if (canonicalProjectRootPath) {\n      this.compilerOptionsForInferredProjectsPerProjectRoot.set(canonicalProjectRootPath, compilerOptions);\n      this.watchOptionsForInferredProjectsPerProjectRoot.set(canonicalProjectRootPath, watchOptions || false);\n      this.typeAcquisitionForInferredProjectsPerProjectRoot.set(canonicalProjectRootPath, typeAcquisition);\n    } else {\n      this.compilerOptionsForInferredProjects = compilerOptions;\n      this.watchOptionsForInferredProjects = watchOptions;\n      this.typeAcquisitionForInferredProjects = typeAcquisition;\n    }\n    for (const project of this.inferredProjects) {\n      if (canonicalProjectRootPath ? project.projectRootPath === canonicalProjectRootPath : !project.projectRootPath || !this.compilerOptionsForInferredProjectsPerProjectRoot.has(project.projectRootPath)) {\n        project.setCompilerOptions(compilerOptions);\n        project.setTypeAcquisition(typeAcquisition);\n        project.setWatchOptions(watchOptions == null ? void 0 : watchOptions.watchOptions);\n        project.setProjectErrors(watchOptions == null ? void 0 : watchOptions.errors);\n        project.compileOnSaveEnabled = compilerOptions.compileOnSave;\n        project.markAsDirty();\n        this.delayUpdateProjectGraph(project);\n      }\n    }\n    this.delayEnsureProjectForOpenFiles();\n  }\n  findProject(projectName) {\n    if (projectName === void 0) {\n      return void 0;\n    }\n    if (isInferredProjectName(projectName)) {\n      return findProjectByName(projectName, this.inferredProjects);\n    }\n    return this.findExternalProjectByProjectName(projectName) || this.findConfiguredProjectByProjectName(toNormalizedPath(projectName));\n  }\n  /** @internal */\n  forEachProject(cb) {\n    this.externalProjects.forEach(cb);\n    this.configuredProjects.forEach(cb);\n    this.inferredProjects.forEach(cb);\n  }\n  /** @internal */\n  forEachEnabledProject(cb) {\n    this.forEachProject((project) => {\n      if (!project.isOrphan() && project.languageServiceEnabled) {\n        cb(project);\n      }\n    });\n  }\n  getDefaultProjectForFile(fileName, ensureProject) {\n    return ensureProject ? this.ensureDefaultProjectForFile(fileName) : this.tryGetDefaultProjectForFile(fileName);\n  }\n  /** @internal */\n  tryGetDefaultProjectForFile(fileNameOrScriptInfo) {\n    const scriptInfo = isString(fileNameOrScriptInfo) ? this.getScriptInfoForNormalizedPath(fileNameOrScriptInfo) : fileNameOrScriptInfo;\n    return scriptInfo && !scriptInfo.isOrphan() ? scriptInfo.getDefaultProject() : void 0;\n  }\n  /**\n   * If there is default project calculation pending for this file,\n   * then it completes that calculation so that correct default project is used for the project\n   */\n  tryGetDefaultProjectForEnsuringConfiguredProjectForFile(fileNameOrScriptInfo) {\n    var _a;\n    const scriptInfo = isString(fileNameOrScriptInfo) ? this.getScriptInfoForNormalizedPath(fileNameOrScriptInfo) : fileNameOrScriptInfo;\n    if (!scriptInfo) return void 0;\n    if ((_a = this.pendingOpenFileProjectUpdates) == null ? void 0 : _a.delete(scriptInfo.path)) {\n      this.tryFindDefaultConfiguredProjectAndLoadAncestorsForOpenScriptInfo(\n        scriptInfo,\n        5 /* Create */\n      );\n      if (scriptInfo.isOrphan()) {\n        this.assignOrphanScriptInfoToInferredProject(scriptInfo, this.openFiles.get(scriptInfo.path));\n      }\n    }\n    return this.tryGetDefaultProjectForFile(scriptInfo);\n  }\n  /** @internal */\n  ensureDefaultProjectForFile(fileNameOrScriptInfo) {\n    return this.tryGetDefaultProjectForEnsuringConfiguredProjectForFile(fileNameOrScriptInfo) || this.doEnsureDefaultProjectForFile(fileNameOrScriptInfo);\n  }\n  doEnsureDefaultProjectForFile(fileNameOrScriptInfo) {\n    this.ensureProjectStructuresUptoDate();\n    const scriptInfo = isString(fileNameOrScriptInfo) ? this.getScriptInfoForNormalizedPath(fileNameOrScriptInfo) : fileNameOrScriptInfo;\n    return scriptInfo ? scriptInfo.getDefaultProject() : (this.logErrorForScriptInfoNotFound(isString(fileNameOrScriptInfo) ? fileNameOrScriptInfo : fileNameOrScriptInfo.fileName), Errors.ThrowNoProject());\n  }\n  getScriptInfoEnsuringProjectsUptoDate(uncheckedFileName) {\n    this.ensureProjectStructuresUptoDate();\n    return this.getScriptInfo(uncheckedFileName);\n  }\n  /**\n   * Ensures the project structures are upto date\n   * This means,\n   * - we go through all the projects and update them if they are dirty\n   * - if updates reflect some change in structure or there was pending request to ensure projects for open files\n   *   ensure that each open script info has project\n   */\n  ensureProjectStructuresUptoDate() {\n    let hasChanges = this.pendingEnsureProjectForOpenFiles;\n    this.pendingProjectUpdates.clear();\n    const updateGraph = (project) => {\n      hasChanges = updateProjectIfDirty(project) || hasChanges;\n    };\n    this.externalProjects.forEach(updateGraph);\n    this.configuredProjects.forEach(updateGraph);\n    this.inferredProjects.forEach(updateGraph);\n    if (hasChanges) {\n      this.ensureProjectForOpenFiles();\n    }\n  }\n  getFormatCodeOptions(file) {\n    const info = this.getScriptInfoForNormalizedPath(file);\n    return info && info.getFormatCodeSettings() || this.hostConfiguration.formatCodeOptions;\n  }\n  getPreferences(file) {\n    const info = this.getScriptInfoForNormalizedPath(file);\n    return { ...this.hostConfiguration.preferences, ...info && info.getPreferences() };\n  }\n  getHostFormatCodeOptions() {\n    return this.hostConfiguration.formatCodeOptions;\n  }\n  getHostPreferences() {\n    return this.hostConfiguration.preferences;\n  }\n  onSourceFileChanged(info, eventKind) {\n    Debug.assert(!info.isScriptOpen());\n    if (eventKind === 2 /* Deleted */) {\n      this.handleDeletedFile(\n        info,\n        /*deferredDelete*/\n        true\n      );\n    } else {\n      if (info.deferredDelete) info.deferredDelete = void 0;\n      info.delayReloadNonMixedContentFile();\n      this.delayUpdateProjectGraphs(\n        info.containingProjects,\n        /*clearSourceMapperCache*/\n        false\n      );\n      this.handleSourceMapProjects(info);\n    }\n  }\n  handleSourceMapProjects(info) {\n    if (info.sourceMapFilePath) {\n      if (isString(info.sourceMapFilePath)) {\n        const sourceMapFileInfo = this.getScriptInfoForPath(info.sourceMapFilePath);\n        this.delayUpdateSourceInfoProjects(sourceMapFileInfo == null ? void 0 : sourceMapFileInfo.sourceInfos);\n      } else {\n        this.delayUpdateSourceInfoProjects(info.sourceMapFilePath.sourceInfos);\n      }\n    }\n    this.delayUpdateSourceInfoProjects(info.sourceInfos);\n    if (info.declarationInfoPath) {\n      this.delayUpdateProjectsOfScriptInfoPath(info.declarationInfoPath);\n    }\n  }\n  delayUpdateSourceInfoProjects(sourceInfos) {\n    if (sourceInfos) {\n      sourceInfos.forEach((_value, path) => this.delayUpdateProjectsOfScriptInfoPath(path));\n    }\n  }\n  delayUpdateProjectsOfScriptInfoPath(path) {\n    const info = this.getScriptInfoForPath(path);\n    if (info) {\n      this.delayUpdateProjectGraphs(\n        info.containingProjects,\n        /*clearSourceMapperCache*/\n        true\n      );\n    }\n  }\n  handleDeletedFile(info, deferredDelete) {\n    Debug.assert(!info.isScriptOpen());\n    this.delayUpdateProjectGraphs(\n      info.containingProjects,\n      /*clearSourceMapperCache*/\n      false\n    );\n    this.handleSourceMapProjects(info);\n    info.detachAllProjects();\n    if (deferredDelete) {\n      info.delayReloadNonMixedContentFile();\n      info.deferredDelete = true;\n    } else {\n      this.deleteScriptInfo(info);\n    }\n  }\n  /**\n   * This is to watch whenever files are added or removed to the wildcard directories\n   */\n  watchWildcardDirectory(directory, flags, configFileName, config) {\n    let watcher = this.watchFactory.watchDirectory(\n      directory,\n      (fileOrDirectory) => this.onWildCardDirectoryWatcherInvoke(\n        directory,\n        configFileName,\n        config,\n        result,\n        fileOrDirectory\n      ),\n      flags,\n      this.getWatchOptionsFromProjectWatchOptions(config.parsedCommandLine.watchOptions, getDirectoryPath(configFileName)),\n      WatchType.WildcardDirectory,\n      configFileName\n    );\n    const result = {\n      packageJsonWatches: void 0,\n      close() {\n        var _a;\n        if (watcher) {\n          watcher.close();\n          watcher = void 0;\n          (_a = result.packageJsonWatches) == null ? void 0 : _a.forEach((watcher2) => {\n            watcher2.projects.delete(result);\n            watcher2.close();\n          });\n          result.packageJsonWatches = void 0;\n        }\n      }\n    };\n    return result;\n  }\n  onWildCardDirectoryWatcherInvoke(directory, configFileName, config, wildCardWatcher, fileOrDirectory) {\n    const fileOrDirectoryPath = this.toPath(fileOrDirectory);\n    const fsResult = config.cachedDirectoryStructureHost.addOrDeleteFileOrDirectory(fileOrDirectory, fileOrDirectoryPath);\n    if (getBaseFileName(fileOrDirectoryPath) === \"package.json\" && !isInsideNodeModules(fileOrDirectoryPath) && (fsResult && fsResult.fileExists || !fsResult && this.host.fileExists(fileOrDirectory))) {\n      const file = this.getNormalizedAbsolutePath(fileOrDirectory);\n      this.logger.info(`Config: ${configFileName} Detected new package.json: ${file}`);\n      this.packageJsonCache.addOrUpdate(file, fileOrDirectoryPath);\n      this.watchPackageJsonFile(file, fileOrDirectoryPath, wildCardWatcher);\n    }\n    if (!(fsResult == null ? void 0 : fsResult.fileExists)) {\n      this.sendSourceFileChange(fileOrDirectoryPath);\n    }\n    const configuredProjectForConfig = this.findConfiguredProjectByProjectName(configFileName);\n    if (isIgnoredFileFromWildCardWatching({\n      watchedDirPath: this.toPath(directory),\n      fileOrDirectory,\n      fileOrDirectoryPath,\n      configFileName,\n      extraFileExtensions: this.hostConfiguration.extraFileExtensions,\n      currentDirectory: this.currentDirectory,\n      options: config.parsedCommandLine.options,\n      program: (configuredProjectForConfig == null ? void 0 : configuredProjectForConfig.getCurrentProgram()) || config.parsedCommandLine.fileNames,\n      useCaseSensitiveFileNames: this.host.useCaseSensitiveFileNames,\n      writeLog: (s) => this.logger.info(s),\n      toPath: (s) => this.toPath(s),\n      getScriptKind: configuredProjectForConfig ? (fileName) => configuredProjectForConfig.getScriptKind(fileName) : void 0\n    })) return;\n    if (config.updateLevel !== 2 /* Full */) config.updateLevel = 1 /* RootNamesAndUpdate */;\n    config.projects.forEach((watchWildcardDirectories, projectCanonicalPath) => {\n      var _a;\n      if (!watchWildcardDirectories) return;\n      const project = this.getConfiguredProjectByCanonicalConfigFilePath(projectCanonicalPath);\n      if (!project) return;\n      if (configuredProjectForConfig !== project && this.getHostPreferences().includeCompletionsForModuleExports) {\n        const path = this.toPath(configFileName);\n        if (find((_a = project.getCurrentProgram()) == null ? void 0 : _a.getResolvedProjectReferences(), (ref) => (ref == null ? void 0 : ref.sourceFile.path) === path)) {\n          project.markAutoImportProviderAsDirty();\n        }\n      }\n      const updateLevel = configuredProjectForConfig === project ? 1 /* RootNamesAndUpdate */ : 0 /* Update */;\n      if (project.pendingUpdateLevel > updateLevel) return;\n      if (this.openFiles.has(fileOrDirectoryPath)) {\n        const info = Debug.checkDefined(this.getScriptInfoForPath(fileOrDirectoryPath));\n        if (info.isAttached(project)) {\n          const loadLevelToSet = Math.max(updateLevel, project.openFileWatchTriggered.get(fileOrDirectoryPath) || 0 /* Update */);\n          project.openFileWatchTriggered.set(fileOrDirectoryPath, loadLevelToSet);\n        } else {\n          project.pendingUpdateLevel = updateLevel;\n          this.delayUpdateProjectGraphAndEnsureProjectStructureForOpenFiles(project);\n        }\n      } else {\n        project.pendingUpdateLevel = updateLevel;\n        this.delayUpdateProjectGraphAndEnsureProjectStructureForOpenFiles(project);\n      }\n    });\n  }\n  delayUpdateProjectsFromParsedConfigOnConfigFileChange(canonicalConfigFilePath, loadReason) {\n    const configFileExistenceInfo = this.configFileExistenceInfoCache.get(canonicalConfigFilePath);\n    if (!(configFileExistenceInfo == null ? void 0 : configFileExistenceInfo.config)) return false;\n    let scheduledAnyProjectUpdate = false;\n    configFileExistenceInfo.config.updateLevel = 2 /* Full */;\n    configFileExistenceInfo.config.cachedDirectoryStructureHost.clearCache();\n    configFileExistenceInfo.config.projects.forEach((_watchWildcardDirectories, projectCanonicalPath) => {\n      var _a, _b, _c;\n      const project = this.getConfiguredProjectByCanonicalConfigFilePath(projectCanonicalPath);\n      if (!project) return;\n      scheduledAnyProjectUpdate = true;\n      if (projectCanonicalPath === canonicalConfigFilePath) {\n        if (project.initialLoadPending) return;\n        project.pendingUpdateLevel = 2 /* Full */;\n        project.pendingUpdateReason = loadReason;\n        this.delayUpdateProjectGraph(project);\n        project.markAutoImportProviderAsDirty();\n      } else {\n        if (project.initialLoadPending) {\n          (_b = (_a = this.configFileExistenceInfoCache.get(projectCanonicalPath)) == null ? void 0 : _a.openFilesImpactedByConfigFile) == null ? void 0 : _b.forEach((path2) => {\n            var _a2;\n            if (!((_a2 = this.pendingOpenFileProjectUpdates) == null ? void 0 : _a2.has(path2))) {\n              (this.pendingOpenFileProjectUpdates ?? (this.pendingOpenFileProjectUpdates = /* @__PURE__ */ new Map())).set(\n                path2,\n                this.configFileForOpenFiles.get(path2)\n              );\n            }\n          });\n          return;\n        }\n        const path = this.toPath(canonicalConfigFilePath);\n        project.resolutionCache.removeResolutionsFromProjectReferenceRedirects(path);\n        this.delayUpdateProjectGraph(project);\n        if (this.getHostPreferences().includeCompletionsForModuleExports && find((_c = project.getCurrentProgram()) == null ? void 0 : _c.getResolvedProjectReferences(), (ref) => (ref == null ? void 0 : ref.sourceFile.path) === path)) {\n          project.markAutoImportProviderAsDirty();\n        }\n      }\n    });\n    return scheduledAnyProjectUpdate;\n  }\n  onConfigFileChanged(configFileName, canonicalConfigFilePath, eventKind) {\n    const configFileExistenceInfo = this.configFileExistenceInfoCache.get(canonicalConfigFilePath);\n    const project = this.getConfiguredProjectByCanonicalConfigFilePath(canonicalConfigFilePath);\n    const wasDefferedClose = project == null ? void 0 : project.deferredClose;\n    if (eventKind === 2 /* Deleted */) {\n      configFileExistenceInfo.exists = false;\n      if (project) project.deferredClose = true;\n    } else {\n      configFileExistenceInfo.exists = true;\n      if (wasDefferedClose) {\n        project.deferredClose = void 0;\n        project.markAsDirty();\n      }\n    }\n    this.delayUpdateProjectsFromParsedConfigOnConfigFileChange(\n      canonicalConfigFilePath,\n      \"Change in config file detected\"\n    );\n    this.openFiles.forEach((_projectRootPath, path) => {\n      var _a, _b;\n      const configFileForOpenFile = this.configFileForOpenFiles.get(path);\n      if (!((_a = configFileExistenceInfo.openFilesImpactedByConfigFile) == null ? void 0 : _a.has(path))) return;\n      this.configFileForOpenFiles.delete(path);\n      const info = this.getScriptInfoForPath(path);\n      const newConfigFileNameForInfo = this.getConfigFileNameForFile(\n        info,\n        /*findFromCacheOnly*/\n        false\n      );\n      if (!newConfigFileNameForInfo) return;\n      if (!((_b = this.pendingOpenFileProjectUpdates) == null ? void 0 : _b.has(path))) {\n        (this.pendingOpenFileProjectUpdates ?? (this.pendingOpenFileProjectUpdates = /* @__PURE__ */ new Map())).set(path, configFileForOpenFile);\n      }\n    });\n    this.delayEnsureProjectForOpenFiles();\n  }\n  removeProject(project) {\n    this.logger.info(\"`remove Project::\");\n    project.print(\n      /*writeProjectFileNames*/\n      true,\n      /*writeFileExplaination*/\n      true,\n      /*writeFileVersionAndText*/\n      false\n    );\n    project.close();\n    if (Debug.shouldAssert(1 /* Normal */)) {\n      this.filenameToScriptInfo.forEach(\n        (info) => Debug.assert(\n          !info.isAttached(project),\n          \"Found script Info still attached to project\",\n          () => `${project.projectName}: ScriptInfos still attached: ${JSON.stringify(\n            arrayFrom(\n              mapDefinedIterator(\n                this.filenameToScriptInfo.values(),\n                (info2) => info2.isAttached(project) ? {\n                  fileName: info2.fileName,\n                  projects: info2.containingProjects.map((p) => p.projectName),\n                  hasMixedContent: info2.hasMixedContent\n                } : void 0\n              )\n            ),\n            /*replacer*/\n            void 0,\n            \" \"\n          )}`\n        )\n      );\n    }\n    this.pendingProjectUpdates.delete(project.getProjectName());\n    switch (project.projectKind) {\n      case 2 /* External */:\n        unorderedRemoveItem(this.externalProjects, project);\n        this.projectToSizeMap.delete(project.getProjectName());\n        break;\n      case 1 /* Configured */:\n        this.configuredProjects.delete(project.canonicalConfigFilePath);\n        this.projectToSizeMap.delete(project.canonicalConfigFilePath);\n        break;\n      case 0 /* Inferred */:\n        unorderedRemoveItem(this.inferredProjects, project);\n        break;\n    }\n  }\n  /** @internal */\n  assignOrphanScriptInfoToInferredProject(info, projectRootPath) {\n    Debug.assert(info.isOrphan());\n    const project = this.getOrCreateInferredProjectForProjectRootPathIfEnabled(info, projectRootPath) || this.getOrCreateSingleInferredProjectIfEnabled() || this.getOrCreateSingleInferredWithoutProjectRoot(\n      info.isDynamic ? projectRootPath || this.currentDirectory : getDirectoryPath(\n        isRootedDiskPath(info.fileName) ? info.fileName : getNormalizedAbsolutePath(\n          info.fileName,\n          projectRootPath ? this.getNormalizedAbsolutePath(projectRootPath) : this.currentDirectory\n        )\n      )\n    );\n    project.addRoot(info);\n    if (info.containingProjects[0] !== project) {\n      orderedRemoveItem(info.containingProjects, project);\n      info.containingProjects.unshift(project);\n    }\n    project.updateGraph();\n    if (!this.useSingleInferredProject && !project.projectRootPath) {\n      for (const inferredProject of this.inferredProjects) {\n        if (inferredProject === project || inferredProject.isOrphan()) {\n          continue;\n        }\n        const roots = inferredProject.getRootScriptInfos();\n        Debug.assert(roots.length === 1 || !!inferredProject.projectRootPath);\n        if (roots.length === 1 && forEach(roots[0].containingProjects, (p) => p !== roots[0].containingProjects[0] && !p.isOrphan())) {\n          inferredProject.removeFile(\n            roots[0],\n            /*fileExists*/\n            true,\n            /*detachFromProject*/\n            true\n          );\n        }\n      }\n    }\n    return project;\n  }\n  assignOrphanScriptInfosToInferredProject() {\n    this.openFiles.forEach((projectRootPath, path) => {\n      const info = this.getScriptInfoForPath(path);\n      if (info.isOrphan()) {\n        this.assignOrphanScriptInfoToInferredProject(info, projectRootPath);\n      }\n    });\n  }\n  /**\n   * Remove this file from the set of open, non-configured files.\n   * @param info The file that has been closed or newly configured\n   */\n  closeOpenFile(info, skipAssignOrphanScriptInfosToInferredProject) {\n    var _a;\n    const fileExists = info.isDynamic ? false : this.host.fileExists(info.fileName);\n    info.close(fileExists);\n    this.stopWatchingConfigFilesForScriptInfo(info);\n    const canonicalFileName = this.toCanonicalFileName(info.fileName);\n    if (this.openFilesWithNonRootedDiskPath.get(canonicalFileName) === info) {\n      this.openFilesWithNonRootedDiskPath.delete(canonicalFileName);\n    }\n    let ensureProjectsForOpenFiles = false;\n    for (const p of info.containingProjects) {\n      if (isConfiguredProject(p)) {\n        if (info.hasMixedContent) {\n          info.registerFileUpdate();\n        }\n        const updateLevel = p.openFileWatchTriggered.get(info.path);\n        if (updateLevel !== void 0) {\n          p.openFileWatchTriggered.delete(info.path);\n          if (p.pendingUpdateLevel < updateLevel) {\n            p.pendingUpdateLevel = updateLevel;\n            p.markFileAsDirty(info.path);\n          }\n        }\n      } else if (isInferredProject(p) && p.isRoot(info)) {\n        if (p.isProjectWithSingleRoot()) {\n          ensureProjectsForOpenFiles = true;\n        }\n        p.removeFile(\n          info,\n          fileExists,\n          /*detachFromProject*/\n          true\n        );\n      }\n      if (!p.languageServiceEnabled) {\n        p.markAsDirty();\n      }\n    }\n    this.openFiles.delete(info.path);\n    this.configFileForOpenFiles.delete(info.path);\n    (_a = this.pendingOpenFileProjectUpdates) == null ? void 0 : _a.delete(info.path);\n    Debug.assert(!this.rootOfInferredProjects.has(info));\n    if (!skipAssignOrphanScriptInfosToInferredProject && ensureProjectsForOpenFiles) {\n      this.assignOrphanScriptInfosToInferredProject();\n    }\n    if (fileExists) {\n      this.watchClosedScriptInfo(info);\n    } else {\n      this.handleDeletedFile(\n        info,\n        /*deferredDelete*/\n        false\n      );\n    }\n    return ensureProjectsForOpenFiles;\n  }\n  deleteScriptInfo(info) {\n    Debug.assert(!info.isScriptOpen());\n    this.filenameToScriptInfo.delete(info.path);\n    this.filenameToScriptInfoVersion.set(info.path, info.textStorage.version);\n    this.stopWatchingScriptInfo(info);\n    const realpath = info.getRealpathIfDifferent();\n    if (realpath) {\n      this.realpathToScriptInfos.remove(realpath, info);\n    }\n    info.closeSourceMapFileWatcher();\n  }\n  configFileExists(configFileName, canonicalConfigFilePath, info) {\n    const configFileExistenceInfo = this.configFileExistenceInfoCache.get(canonicalConfigFilePath);\n    let openFilesImpactedByConfigFile;\n    if (this.openFiles.has(info.path) && (!isAncestorConfigFileInfo(info) || info.isForDefaultProject)) {\n      if (configFileExistenceInfo) (configFileExistenceInfo.openFilesImpactedByConfigFile ?? (configFileExistenceInfo.openFilesImpactedByConfigFile = /* @__PURE__ */ new Set())).add(info.path);\n      else (openFilesImpactedByConfigFile = /* @__PURE__ */ new Set()).add(info.path);\n    }\n    if (configFileExistenceInfo) return configFileExistenceInfo.exists;\n    const exists = this.host.fileExists(configFileName);\n    this.configFileExistenceInfoCache.set(canonicalConfigFilePath, { exists, openFilesImpactedByConfigFile });\n    return exists;\n  }\n  createConfigFileWatcherForParsedConfig(configFileName, canonicalConfigFilePath, forProject) {\n    var _a, _b;\n    const configFileExistenceInfo = this.configFileExistenceInfoCache.get(canonicalConfigFilePath);\n    if (!configFileExistenceInfo.watcher || configFileExistenceInfo.watcher === noopConfigFileWatcher) {\n      configFileExistenceInfo.watcher = this.watchFactory.watchFile(\n        configFileName,\n        (_fileName, eventKind) => this.onConfigFileChanged(configFileName, canonicalConfigFilePath, eventKind),\n        2e3 /* High */,\n        this.getWatchOptionsFromProjectWatchOptions((_b = (_a = configFileExistenceInfo == null ? void 0 : configFileExistenceInfo.config) == null ? void 0 : _a.parsedCommandLine) == null ? void 0 : _b.watchOptions, getDirectoryPath(configFileName)),\n        WatchType.ConfigFile,\n        forProject\n      );\n    }\n    this.ensureConfigFileWatcherForProject(configFileExistenceInfo, forProject);\n  }\n  ensureConfigFileWatcherForProject(configFileExistenceInfo, forProject) {\n    const projects = configFileExistenceInfo.config.projects;\n    projects.set(forProject.canonicalConfigFilePath, projects.get(forProject.canonicalConfigFilePath) || false);\n  }\n  /** @internal */\n  releaseParsedConfig(canonicalConfigFilePath, forProject) {\n    var _a, _b, _c;\n    const configFileExistenceInfo = this.configFileExistenceInfoCache.get(canonicalConfigFilePath);\n    if (!((_a = configFileExistenceInfo.config) == null ? void 0 : _a.projects.delete(forProject.canonicalConfigFilePath))) return;\n    if ((_b = configFileExistenceInfo.config) == null ? void 0 : _b.projects.size) return;\n    configFileExistenceInfo.config = void 0;\n    clearSharedExtendedConfigFileWatcher(canonicalConfigFilePath, this.sharedExtendedConfigFileWatchers);\n    Debug.checkDefined(configFileExistenceInfo.watcher);\n    if ((_c = configFileExistenceInfo.openFilesImpactedByConfigFile) == null ? void 0 : _c.size) {\n      if (configFileExistenceInfo.inferredProjectRoots) {\n        if (!canWatchDirectoryOrFilePath(getDirectoryPath(canonicalConfigFilePath))) {\n          configFileExistenceInfo.watcher.close();\n          configFileExistenceInfo.watcher = noopConfigFileWatcher;\n        }\n      } else {\n        configFileExistenceInfo.watcher.close();\n        configFileExistenceInfo.watcher = void 0;\n      }\n    } else {\n      configFileExistenceInfo.watcher.close();\n      this.configFileExistenceInfoCache.delete(canonicalConfigFilePath);\n    }\n  }\n  /**\n   * This is called on file close or when its removed from inferred project as root,\n   * so that we handle the watches and inferred project root data\n   * @internal\n   */\n  stopWatchingConfigFilesForScriptInfo(info) {\n    if (this.serverMode !== 0 /* Semantic */) return;\n    const isRootOfInferredProject = this.rootOfInferredProjects.delete(info);\n    const isOpen = info.isScriptOpen();\n    if (isOpen && !isRootOfInferredProject) return;\n    this.forEachConfigFileLocation(info, (canonicalConfigFilePath) => {\n      var _a, _b, _c;\n      const configFileExistenceInfo = this.configFileExistenceInfoCache.get(canonicalConfigFilePath);\n      if (!configFileExistenceInfo) return;\n      if (isOpen) {\n        if (!((_a = configFileExistenceInfo == null ? void 0 : configFileExistenceInfo.openFilesImpactedByConfigFile) == null ? void 0 : _a.has(info.path))) return;\n      } else {\n        if (!((_b = configFileExistenceInfo.openFilesImpactedByConfigFile) == null ? void 0 : _b.delete(info.path))) return;\n      }\n      if (isRootOfInferredProject) {\n        configFileExistenceInfo.inferredProjectRoots--;\n        if (configFileExistenceInfo.watcher && !configFileExistenceInfo.config && !configFileExistenceInfo.inferredProjectRoots) {\n          configFileExistenceInfo.watcher.close();\n          configFileExistenceInfo.watcher = void 0;\n        }\n      }\n      if (!((_c = configFileExistenceInfo.openFilesImpactedByConfigFile) == null ? void 0 : _c.size) && !configFileExistenceInfo.config) {\n        Debug.assert(!configFileExistenceInfo.watcher);\n        this.configFileExistenceInfoCache.delete(canonicalConfigFilePath);\n      }\n    });\n  }\n  /**\n   * This is called by inferred project whenever script info is added as a root\n   *\n   * @internal\n   */\n  startWatchingConfigFilesForInferredProjectRoot(info) {\n    if (this.serverMode !== 0 /* Semantic */) return;\n    Debug.assert(info.isScriptOpen());\n    this.rootOfInferredProjects.add(info);\n    this.forEachConfigFileLocation(info, (canonicalConfigFilePath, configFileName) => {\n      let configFileExistenceInfo = this.configFileExistenceInfoCache.get(canonicalConfigFilePath);\n      if (!configFileExistenceInfo) {\n        configFileExistenceInfo = { exists: this.host.fileExists(configFileName), inferredProjectRoots: 1 };\n        this.configFileExistenceInfoCache.set(canonicalConfigFilePath, configFileExistenceInfo);\n      } else {\n        configFileExistenceInfo.inferredProjectRoots = (configFileExistenceInfo.inferredProjectRoots ?? 0) + 1;\n      }\n      (configFileExistenceInfo.openFilesImpactedByConfigFile ?? (configFileExistenceInfo.openFilesImpactedByConfigFile = /* @__PURE__ */ new Set())).add(info.path);\n      configFileExistenceInfo.watcher || (configFileExistenceInfo.watcher = canWatchDirectoryOrFilePath(getDirectoryPath(canonicalConfigFilePath)) ? this.watchFactory.watchFile(\n        configFileName,\n        (_filename, eventKind) => this.onConfigFileChanged(configFileName, canonicalConfigFilePath, eventKind),\n        2e3 /* High */,\n        this.hostConfiguration.watchOptions,\n        WatchType.ConfigFileForInferredRoot\n      ) : noopConfigFileWatcher);\n    });\n  }\n  /**\n   * This function tries to search for a tsconfig.json for the given file.\n   * This is different from the method the compiler uses because\n   * the compiler can assume it will always start searching in the\n   * current directory (the directory in which tsc was invoked).\n   * The server must start searching from the directory containing\n   * the newly opened file.\n   */\n  forEachConfigFileLocation(info, action) {\n    if (this.serverMode !== 0 /* Semantic */) {\n      return void 0;\n    }\n    Debug.assert(!isOpenScriptInfo(info) || this.openFiles.has(info.path));\n    const projectRootPath = this.openFiles.get(info.path);\n    const scriptInfo = Debug.checkDefined(this.getScriptInfo(info.path));\n    if (scriptInfo.isDynamic) return void 0;\n    let searchPath = asNormalizedPath(getDirectoryPath(info.fileName));\n    const isSearchPathInProjectRoot = () => containsPath(projectRootPath, searchPath, this.currentDirectory, !this.host.useCaseSensitiveFileNames);\n    const anySearchPathOk = !projectRootPath || !isSearchPathInProjectRoot();\n    let searchTsconfig = true;\n    let searchJsconfig = true;\n    if (isAncestorConfigFileInfo(info)) {\n      if (endsWith(info.fileName, \"tsconfig.json\")) searchTsconfig = false;\n      else searchTsconfig = searchJsconfig = false;\n    }\n    do {\n      const canonicalSearchPath = normalizedPathToPath(searchPath, this.currentDirectory, this.toCanonicalFileName);\n      if (searchTsconfig) {\n        const tsconfigFileName = asNormalizedPath(combinePaths(searchPath, \"tsconfig.json\"));\n        const result = action(combinePaths(canonicalSearchPath, \"tsconfig.json\"), tsconfigFileName);\n        if (result) return tsconfigFileName;\n      }\n      if (searchJsconfig) {\n        const jsconfigFileName = asNormalizedPath(combinePaths(searchPath, \"jsconfig.json\"));\n        const result = action(combinePaths(canonicalSearchPath, \"jsconfig.json\"), jsconfigFileName);\n        if (result) return jsconfigFileName;\n      }\n      if (isNodeModulesDirectory(canonicalSearchPath)) {\n        break;\n      }\n      const parentPath = asNormalizedPath(getDirectoryPath(searchPath));\n      if (parentPath === searchPath) break;\n      searchPath = parentPath;\n      searchTsconfig = searchJsconfig = true;\n    } while (anySearchPathOk || isSearchPathInProjectRoot());\n    return void 0;\n  }\n  /** @internal */\n  findDefaultConfiguredProject(info) {\n    var _a;\n    return (_a = this.findDefaultConfiguredProjectWorker(\n      info,\n      1 /* Find */\n    )) == null ? void 0 : _a.defaultProject;\n  }\n  /** @internal */\n  findDefaultConfiguredProjectWorker(info, kind) {\n    return info.isScriptOpen() ? this.tryFindDefaultConfiguredProjectForOpenScriptInfo(\n      info,\n      kind\n    ) : void 0;\n  }\n  /** Get cached configFileName for scriptInfo or ancestor of open script info */\n  getConfigFileNameForFileFromCache(info, lookInPendingFilesForValue) {\n    if (lookInPendingFilesForValue) {\n      const result = getConfigFileNameFromCache(info, this.pendingOpenFileProjectUpdates);\n      if (result !== void 0) return result;\n    }\n    return getConfigFileNameFromCache(info, this.configFileForOpenFiles);\n  }\n  /** Caches the configFilename for script info or ancestor of open script info */\n  setConfigFileNameForFileInCache(info, configFileName) {\n    if (!this.openFiles.has(info.path)) return;\n    const config = configFileName || false;\n    if (!isAncestorConfigFileInfo(info)) {\n      this.configFileForOpenFiles.set(info.path, config);\n    } else {\n      let configFileForOpenFile = this.configFileForOpenFiles.get(info.path);\n      if (!configFileForOpenFile || isString(configFileForOpenFile)) {\n        this.configFileForOpenFiles.set(\n          info.path,\n          configFileForOpenFile = (/* @__PURE__ */ new Map()).set(false, configFileForOpenFile)\n        );\n      }\n      configFileForOpenFile.set(info.fileName, config);\n    }\n  }\n  /**\n   * This function tries to search for a tsconfig.json for the given file.\n   * This is different from the method the compiler uses because\n   * the compiler can assume it will always start searching in the\n   * current directory (the directory in which tsc was invoked).\n   * The server must start searching from the directory containing\n   * the newly opened file.\n   * If script info is passed in, it is asserted to be open script info\n   * otherwise just file name\n   * when findFromCacheOnly is true only looked up in cache instead of hitting disk to figure things out\n   * @internal\n   */\n  getConfigFileNameForFile(info, findFromCacheOnly) {\n    const fromCache = this.getConfigFileNameForFileFromCache(info, findFromCacheOnly);\n    if (fromCache !== void 0) return fromCache || void 0;\n    if (findFromCacheOnly) return void 0;\n    const configFileName = this.forEachConfigFileLocation(info, (canonicalConfigFilePath, configFileName2) => this.configFileExists(configFileName2, canonicalConfigFilePath, info));\n    this.logger.info(`getConfigFileNameForFile:: File: ${info.fileName} ProjectRootPath: ${this.openFiles.get(info.path)}:: Result: ${configFileName}`);\n    this.setConfigFileNameForFileInCache(info, configFileName);\n    return configFileName;\n  }\n  printProjects() {\n    if (!this.logger.hasLevel(1 /* normal */)) {\n      return;\n    }\n    this.logger.startGroup();\n    this.externalProjects.forEach(printProjectWithoutFileNames);\n    this.configuredProjects.forEach(printProjectWithoutFileNames);\n    this.inferredProjects.forEach(printProjectWithoutFileNames);\n    this.logger.info(\"Open files: \");\n    this.openFiles.forEach((projectRootPath, path) => {\n      const info = this.getScriptInfoForPath(path);\n      this.logger.info(`\tFileName: ${info.fileName} ProjectRootPath: ${projectRootPath}`);\n      this.logger.info(`\t\tProjects: ${info.containingProjects.map((p) => p.getProjectName())}`);\n    });\n    this.logger.endGroup();\n  }\n  /** @internal */\n  findConfiguredProjectByProjectName(configFileName, allowDeferredClosed) {\n    const canonicalConfigFilePath = asNormalizedPath(this.toCanonicalFileName(configFileName));\n    const result = this.getConfiguredProjectByCanonicalConfigFilePath(canonicalConfigFilePath);\n    return allowDeferredClosed ? result : !(result == null ? void 0 : result.deferredClose) ? result : void 0;\n  }\n  getConfiguredProjectByCanonicalConfigFilePath(canonicalConfigFilePath) {\n    return this.configuredProjects.get(canonicalConfigFilePath);\n  }\n  findExternalProjectByProjectName(projectFileName) {\n    return findProjectByName(projectFileName, this.externalProjects);\n  }\n  /** Get a filename if the language service exceeds the maximum allowed program size; otherwise returns undefined. */\n  getFilenameForExceededTotalSizeLimitForNonTsFiles(name, options, fileNames, propertyReader) {\n    if (options && options.disableSizeLimit || !this.host.getFileSize) {\n      return;\n    }\n    let availableSpace = maxProgramSizeForNonTsFiles;\n    this.projectToSizeMap.set(name, 0);\n    this.projectToSizeMap.forEach((val) => availableSpace -= val || 0);\n    let totalNonTsFileSize = 0;\n    for (const f of fileNames) {\n      const fileName = propertyReader.getFileName(f);\n      if (hasTSFileExtension(fileName)) {\n        continue;\n      }\n      totalNonTsFileSize += this.host.getFileSize(fileName);\n      if (totalNonTsFileSize > maxProgramSizeForNonTsFiles || totalNonTsFileSize > availableSpace) {\n        const top5LargestFiles = fileNames.map((f2) => propertyReader.getFileName(f2)).filter((name2) => !hasTSFileExtension(name2)).map((name2) => ({ name: name2, size: this.host.getFileSize(name2) })).sort((a, b) => b.size - a.size).slice(0, 5);\n        this.logger.info(`Non TS file size exceeded limit (${totalNonTsFileSize}). Largest files: ${top5LargestFiles.map((file) => `${file.name}:${file.size}`).join(\", \")}`);\n        return fileName;\n      }\n    }\n    this.projectToSizeMap.set(name, totalNonTsFileSize);\n  }\n  createExternalProject(projectFileName, files, options, typeAcquisition, excludedFiles) {\n    const compilerOptions = convertCompilerOptions(options);\n    const watchOptionsAndErrors = convertWatchOptions(options, getDirectoryPath(normalizeSlashes(projectFileName)));\n    const project = new ExternalProject(\n      projectFileName,\n      this,\n      compilerOptions,\n      /*lastFileExceededProgramSize*/\n      this.getFilenameForExceededTotalSizeLimitForNonTsFiles(projectFileName, compilerOptions, files, externalFilePropertyReader),\n      options.compileOnSave === void 0 ? true : options.compileOnSave,\n      /*projectFilePath*/\n      void 0,\n      watchOptionsAndErrors == null ? void 0 : watchOptionsAndErrors.watchOptions\n    );\n    project.setProjectErrors(watchOptionsAndErrors == null ? void 0 : watchOptionsAndErrors.errors);\n    project.excludedFiles = excludedFiles;\n    this.addFilesToNonInferredProject(project, files, externalFilePropertyReader, typeAcquisition);\n    this.externalProjects.push(project);\n    return project;\n  }\n  /** @internal */\n  sendProjectTelemetry(project) {\n    if (this.seenProjects.has(project.projectName)) {\n      setProjectOptionsUsed(project);\n      return;\n    }\n    this.seenProjects.set(project.projectName, true);\n    if (!this.eventHandler || !this.host.createSHA256Hash) {\n      setProjectOptionsUsed(project);\n      return;\n    }\n    const projectOptions = isConfiguredProject(project) ? project.projectOptions : void 0;\n    setProjectOptionsUsed(project);\n    const data = {\n      projectId: this.host.createSHA256Hash(project.projectName),\n      fileStats: countEachFileTypes(\n        project.getScriptInfos(),\n        /*includeSizes*/\n        true\n      ),\n      compilerOptions: convertCompilerOptionsForTelemetry(project.getCompilationSettings()),\n      typeAcquisition: convertTypeAcquisition2(project.getTypeAcquisition()),\n      extends: projectOptions && projectOptions.configHasExtendsProperty,\n      files: projectOptions && projectOptions.configHasFilesProperty,\n      include: projectOptions && projectOptions.configHasIncludeProperty,\n      exclude: projectOptions && projectOptions.configHasExcludeProperty,\n      compileOnSave: project.compileOnSaveEnabled,\n      configFileName: configFileName(),\n      projectType: project instanceof ExternalProject ? \"external\" : \"configured\",\n      languageServiceEnabled: project.languageServiceEnabled,\n      version\n    };\n    this.eventHandler({ eventName: ProjectInfoTelemetryEvent, data });\n    function configFileName() {\n      if (!isConfiguredProject(project)) {\n        return \"other\";\n      }\n      return getBaseConfigFileName(project.getConfigFilePath()) || \"other\";\n    }\n    function convertTypeAcquisition2({ enable: enable2, include, exclude }) {\n      return {\n        enable: enable2,\n        include: include !== void 0 && include.length !== 0,\n        exclude: exclude !== void 0 && exclude.length !== 0\n      };\n    }\n  }\n  addFilesToNonInferredProject(project, files, propertyReader, typeAcquisition) {\n    this.updateNonInferredProjectFiles(project, files, propertyReader);\n    project.setTypeAcquisition(typeAcquisition);\n    project.markAsDirty();\n  }\n  /** @internal */\n  createConfiguredProject(configFileName, reason) {\n    var _a;\n    (_a = tracing) == null ? void 0 : _a.instant(tracing.Phase.Session, \"createConfiguredProject\", { configFilePath: configFileName });\n    const canonicalConfigFilePath = asNormalizedPath(this.toCanonicalFileName(configFileName));\n    let configFileExistenceInfo = this.configFileExistenceInfoCache.get(canonicalConfigFilePath);\n    if (!configFileExistenceInfo) {\n      this.configFileExistenceInfoCache.set(canonicalConfigFilePath, configFileExistenceInfo = { exists: true });\n    } else {\n      configFileExistenceInfo.exists = true;\n    }\n    if (!configFileExistenceInfo.config) {\n      configFileExistenceInfo.config = {\n        cachedDirectoryStructureHost: createCachedDirectoryStructureHost(this.host, this.host.getCurrentDirectory(), this.host.useCaseSensitiveFileNames),\n        projects: /* @__PURE__ */ new Map(),\n        updateLevel: 2 /* Full */\n      };\n    }\n    const project = new ConfiguredProject2(\n      configFileName,\n      canonicalConfigFilePath,\n      this,\n      configFileExistenceInfo.config.cachedDirectoryStructureHost,\n      reason\n    );\n    Debug.assert(!this.configuredProjects.has(canonicalConfigFilePath));\n    this.configuredProjects.set(canonicalConfigFilePath, project);\n    this.createConfigFileWatcherForParsedConfig(configFileName, canonicalConfigFilePath, project);\n    return project;\n  }\n  /**\n   * Read the config file of the project, and update the project root file names.\n   */\n  loadConfiguredProject(project, reason) {\n    var _a, _b;\n    (_a = tracing) == null ? void 0 : _a.push(tracing.Phase.Session, \"loadConfiguredProject\", { configFilePath: project.canonicalConfigFilePath });\n    this.sendProjectLoadingStartEvent(project, reason);\n    const configFilename = toNormalizedPath(project.getConfigFilePath());\n    const configFileExistenceInfo = this.ensureParsedConfigUptoDate(\n      configFilename,\n      project.canonicalConfigFilePath,\n      this.configFileExistenceInfoCache.get(project.canonicalConfigFilePath),\n      project\n    );\n    const parsedCommandLine = configFileExistenceInfo.config.parsedCommandLine;\n    Debug.assert(!!parsedCommandLine.fileNames);\n    const compilerOptions = parsedCommandLine.options;\n    if (!project.projectOptions) {\n      project.projectOptions = {\n        configHasExtendsProperty: parsedCommandLine.raw.extends !== void 0,\n        configHasFilesProperty: parsedCommandLine.raw.files !== void 0,\n        configHasIncludeProperty: parsedCommandLine.raw.include !== void 0,\n        configHasExcludeProperty: parsedCommandLine.raw.exclude !== void 0\n      };\n    }\n    project.parsedCommandLine = parsedCommandLine;\n    project.setProjectErrors(parsedCommandLine.options.configFile.parseDiagnostics);\n    project.updateReferences(parsedCommandLine.projectReferences);\n    const lastFileExceededProgramSize = this.getFilenameForExceededTotalSizeLimitForNonTsFiles(project.canonicalConfigFilePath, compilerOptions, parsedCommandLine.fileNames, fileNamePropertyReader);\n    if (lastFileExceededProgramSize) {\n      project.disableLanguageService(lastFileExceededProgramSize);\n      this.configFileExistenceInfoCache.forEach((_configFileExistenceInfo, canonicalConfigFilePath) => this.stopWatchingWildCards(canonicalConfigFilePath, project));\n    } else {\n      project.setCompilerOptions(compilerOptions);\n      project.setWatchOptions(parsedCommandLine.watchOptions);\n      project.enableLanguageService();\n      this.watchWildcards(configFilename, configFileExistenceInfo, project);\n    }\n    project.enablePluginsWithOptions(compilerOptions);\n    const filesToAdd = parsedCommandLine.fileNames.concat(project.getExternalFiles(2 /* Full */));\n    this.updateRootAndOptionsOfNonInferredProject(project, filesToAdd, fileNamePropertyReader, compilerOptions, parsedCommandLine.typeAcquisition, parsedCommandLine.compileOnSave, parsedCommandLine.watchOptions);\n    (_b = tracing) == null ? void 0 : _b.pop();\n  }\n  /** @internal */\n  ensureParsedConfigUptoDate(configFilename, canonicalConfigFilePath, configFileExistenceInfo, forProject) {\n    var _a, _b, _c;\n    if (configFileExistenceInfo.config) {\n      if (configFileExistenceInfo.config.updateLevel === 1 /* RootNamesAndUpdate */) {\n        this.reloadFileNamesOfParsedConfig(configFilename, configFileExistenceInfo.config);\n      }\n      if (!configFileExistenceInfo.config.updateLevel) {\n        this.ensureConfigFileWatcherForProject(configFileExistenceInfo, forProject);\n        return configFileExistenceInfo;\n      }\n    }\n    if (!configFileExistenceInfo.exists && configFileExistenceInfo.config) {\n      configFileExistenceInfo.config.updateLevel = void 0;\n      this.ensureConfigFileWatcherForProject(configFileExistenceInfo, forProject);\n      return configFileExistenceInfo;\n    }\n    const cachedDirectoryStructureHost = ((_a = configFileExistenceInfo.config) == null ? void 0 : _a.cachedDirectoryStructureHost) || createCachedDirectoryStructureHost(this.host, this.host.getCurrentDirectory(), this.host.useCaseSensitiveFileNames);\n    const configFileContent = tryReadFile(configFilename, (fileName) => this.host.readFile(fileName));\n    const configFile = parseJsonText(configFilename, isString(configFileContent) ? configFileContent : \"\");\n    const configFileErrors = configFile.parseDiagnostics;\n    if (!isString(configFileContent)) configFileErrors.push(configFileContent);\n    const configDir = getDirectoryPath(configFilename);\n    const parsedCommandLine = parseJsonSourceFileConfigFileContent(\n      configFile,\n      cachedDirectoryStructureHost,\n      configDir,\n      /*existingOptions*/\n      void 0,\n      configFilename,\n      /*resolutionStack*/\n      void 0,\n      this.hostConfiguration.extraFileExtensions,\n      this.extendedConfigCache\n    );\n    if (parsedCommandLine.errors.length) {\n      configFileErrors.push(...parsedCommandLine.errors);\n    }\n    this.logger.info(`Config: ${configFilename} : ${JSON.stringify(\n      {\n        rootNames: parsedCommandLine.fileNames,\n        options: parsedCommandLine.options,\n        watchOptions: parsedCommandLine.watchOptions,\n        projectReferences: parsedCommandLine.projectReferences\n      },\n      /*replacer*/\n      void 0,\n      \" \"\n    )}`);\n    const oldCommandLine = (_b = configFileExistenceInfo.config) == null ? void 0 : _b.parsedCommandLine;\n    if (!configFileExistenceInfo.config) {\n      configFileExistenceInfo.config = { parsedCommandLine, cachedDirectoryStructureHost, projects: /* @__PURE__ */ new Map() };\n    } else {\n      configFileExistenceInfo.config.parsedCommandLine = parsedCommandLine;\n      configFileExistenceInfo.config.watchedDirectoriesStale = true;\n      configFileExistenceInfo.config.updateLevel = void 0;\n    }\n    if (!oldCommandLine && !isJsonEqual(\n      // Old options\n      this.getWatchOptionsFromProjectWatchOptions(\n        /*projectOptions*/\n        void 0,\n        configDir\n      ),\n      // New options\n      this.getWatchOptionsFromProjectWatchOptions(parsedCommandLine.watchOptions, configDir)\n    )) {\n      (_c = configFileExistenceInfo.watcher) == null ? void 0 : _c.close();\n      configFileExistenceInfo.watcher = void 0;\n    }\n    this.createConfigFileWatcherForParsedConfig(configFilename, canonicalConfigFilePath, forProject);\n    updateSharedExtendedConfigFileWatcher(\n      canonicalConfigFilePath,\n      parsedCommandLine.options,\n      this.sharedExtendedConfigFileWatchers,\n      (extendedConfigFileName, extendedConfigFilePath) => this.watchFactory.watchFile(\n        extendedConfigFileName,\n        () => {\n          var _a2;\n          cleanExtendedConfigCache(this.extendedConfigCache, extendedConfigFilePath, (fileName) => this.toPath(fileName));\n          let ensureProjectsForOpenFiles = false;\n          (_a2 = this.sharedExtendedConfigFileWatchers.get(extendedConfigFilePath)) == null ? void 0 : _a2.projects.forEach((canonicalPath) => {\n            ensureProjectsForOpenFiles = this.delayUpdateProjectsFromParsedConfigOnConfigFileChange(canonicalPath, `Change in extended config file ${extendedConfigFileName} detected`) || ensureProjectsForOpenFiles;\n          });\n          if (ensureProjectsForOpenFiles) this.delayEnsureProjectForOpenFiles();\n        },\n        2e3 /* High */,\n        this.hostConfiguration.watchOptions,\n        WatchType.ExtendedConfigFile,\n        configFilename\n      ),\n      (fileName) => this.toPath(fileName)\n    );\n    return configFileExistenceInfo;\n  }\n  /** @internal */\n  watchWildcards(configFileName, { exists, config }, forProject) {\n    config.projects.set(forProject.canonicalConfigFilePath, true);\n    if (exists) {\n      if (config.watchedDirectories && !config.watchedDirectoriesStale) return;\n      config.watchedDirectoriesStale = false;\n      updateWatchingWildcardDirectories(\n        config.watchedDirectories || (config.watchedDirectories = /* @__PURE__ */ new Map()),\n        config.parsedCommandLine.wildcardDirectories,\n        // Create new directory watcher\n        (directory, flags) => this.watchWildcardDirectory(directory, flags, configFileName, config)\n      );\n    } else {\n      config.watchedDirectoriesStale = false;\n      if (!config.watchedDirectories) return;\n      clearMap(config.watchedDirectories, closeFileWatcherOf);\n      config.watchedDirectories = void 0;\n    }\n  }\n  /** @internal */\n  stopWatchingWildCards(canonicalConfigFilePath, forProject) {\n    const configFileExistenceInfo = this.configFileExistenceInfoCache.get(canonicalConfigFilePath);\n    if (!configFileExistenceInfo.config || !configFileExistenceInfo.config.projects.get(forProject.canonicalConfigFilePath)) {\n      return;\n    }\n    configFileExistenceInfo.config.projects.set(forProject.canonicalConfigFilePath, false);\n    if (forEachEntry(configFileExistenceInfo.config.projects, identity)) return;\n    if (configFileExistenceInfo.config.watchedDirectories) {\n      clearMap(configFileExistenceInfo.config.watchedDirectories, closeFileWatcherOf);\n      configFileExistenceInfo.config.watchedDirectories = void 0;\n    }\n    configFileExistenceInfo.config.watchedDirectoriesStale = void 0;\n  }\n  updateNonInferredProjectFiles(project, files, propertyReader) {\n    var _a;\n    const projectRootFilesMap = project.getRootFilesMap();\n    const newRootScriptInfoMap = /* @__PURE__ */ new Map();\n    for (const f of files) {\n      const newRootFile = propertyReader.getFileName(f);\n      const fileName = toNormalizedPath(newRootFile);\n      const isDynamic = isDynamicFileName(fileName);\n      let path;\n      if (!isDynamic && !project.fileExists(newRootFile)) {\n        path = normalizedPathToPath(fileName, this.currentDirectory, this.toCanonicalFileName);\n        const existingValue = projectRootFilesMap.get(path);\n        if (existingValue) {\n          if (((_a = existingValue.info) == null ? void 0 : _a.path) === path) {\n            project.removeFile(\n              existingValue.info,\n              /*fileExists*/\n              false,\n              /*detachFromProject*/\n              true\n            );\n            existingValue.info = void 0;\n          }\n          existingValue.fileName = fileName;\n        } else {\n          projectRootFilesMap.set(path, { fileName });\n        }\n      } else {\n        const scriptKind = propertyReader.getScriptKind(f, this.hostConfiguration.extraFileExtensions);\n        const hasMixedContent = propertyReader.hasMixedContent(f, this.hostConfiguration.extraFileExtensions);\n        const scriptInfo = Debug.checkDefined(this.getOrCreateScriptInfoNotOpenedByClientForNormalizedPath(\n          fileName,\n          project.currentDirectory,\n          scriptKind,\n          hasMixedContent,\n          project.directoryStructureHost,\n          /*deferredDeleteOk*/\n          false\n        ));\n        path = scriptInfo.path;\n        const existingValue = projectRootFilesMap.get(path);\n        if (!existingValue || existingValue.info !== scriptInfo) {\n          project.addRoot(scriptInfo, fileName);\n          if (scriptInfo.isScriptOpen()) {\n            this.removeRootOfInferredProjectIfNowPartOfOtherProject(scriptInfo);\n          }\n        } else {\n          existingValue.fileName = fileName;\n        }\n      }\n      newRootScriptInfoMap.set(path, true);\n    }\n    if (projectRootFilesMap.size > newRootScriptInfoMap.size) {\n      projectRootFilesMap.forEach((value, path) => {\n        if (!newRootScriptInfoMap.has(path)) {\n          if (value.info) {\n            project.removeFile(\n              value.info,\n              project.fileExists(value.info.fileName),\n              /*detachFromProject*/\n              true\n            );\n          } else {\n            projectRootFilesMap.delete(path);\n          }\n        }\n      });\n    }\n  }\n  updateRootAndOptionsOfNonInferredProject(project, newUncheckedFiles, propertyReader, newOptions, newTypeAcquisition, compileOnSave, watchOptions) {\n    project.setCompilerOptions(newOptions);\n    project.setWatchOptions(watchOptions);\n    if (compileOnSave !== void 0) {\n      project.compileOnSaveEnabled = compileOnSave;\n    }\n    this.addFilesToNonInferredProject(project, newUncheckedFiles, propertyReader, newTypeAcquisition);\n  }\n  /**\n   * Reload the file names from config file specs and update the project graph\n   *\n   * @internal\n   */\n  reloadFileNamesOfConfiguredProject(project) {\n    const config = this.reloadFileNamesOfParsedConfig(project.getConfigFilePath(), this.configFileExistenceInfoCache.get(project.canonicalConfigFilePath).config);\n    project.updateErrorOnNoInputFiles(config);\n    this.updateNonInferredProjectFiles(\n      project,\n      config.fileNames.concat(project.getExternalFiles(1 /* RootNamesAndUpdate */)),\n      fileNamePropertyReader\n    );\n    project.markAsDirty();\n    return project.updateGraph();\n  }\n  reloadFileNamesOfParsedConfig(configFileName, config) {\n    if (config.updateLevel === void 0) return config.parsedCommandLine;\n    Debug.assert(config.updateLevel === 1 /* RootNamesAndUpdate */);\n    const configFileSpecs = config.parsedCommandLine.options.configFile.configFileSpecs;\n    const fileNames = getFileNamesFromConfigSpecs(\n      configFileSpecs,\n      getDirectoryPath(configFileName),\n      config.parsedCommandLine.options,\n      config.cachedDirectoryStructureHost,\n      this.hostConfiguration.extraFileExtensions\n    );\n    config.parsedCommandLine = { ...config.parsedCommandLine, fileNames };\n    config.updateLevel = void 0;\n    return config.parsedCommandLine;\n  }\n  /** @internal */\n  setFileNamesOfAutoImportProviderOrAuxillaryProject(project, fileNames) {\n    this.updateNonInferredProjectFiles(project, fileNames, fileNamePropertyReader);\n  }\n  /** @internal */\n  reloadConfiguredProjectOptimized(project, reason, reloadedProjects) {\n    if (reloadedProjects.has(project)) return;\n    reloadedProjects.set(project, 6 /* ReloadOptimized */);\n    if (!project.initialLoadPending) {\n      this.setProjectForReload(project, 2 /* Full */, reason);\n    }\n  }\n  /** @internal */\n  reloadConfiguredProjectClearingSemanticCache(project, reason, reloadedProjects) {\n    if (reloadedProjects.get(project) === 7 /* Reload */) return false;\n    reloadedProjects.set(project, 7 /* Reload */);\n    this.clearSemanticCache(project);\n    this.reloadConfiguredProject(project, reloadReason(reason));\n    return true;\n  }\n  setProjectForReload(project, updateLevel, reason) {\n    if (updateLevel === 2 /* Full */) this.clearSemanticCache(project);\n    project.pendingUpdateReason = reason && reloadReason(reason);\n    project.pendingUpdateLevel = updateLevel;\n  }\n  /**\n   * Read the config file of the project again by clearing the cache and update the project graph\n   *\n   * @internal\n   */\n  reloadConfiguredProject(project, reason) {\n    project.initialLoadPending = false;\n    this.setProjectForReload(project, 0 /* Update */);\n    this.loadConfiguredProject(project, reason);\n    updateWithTriggerFile(\n      project,\n      project.triggerFileForConfigFileDiag ?? project.getConfigFilePath(),\n      /*isReload*/\n      true\n    );\n  }\n  clearSemanticCache(project) {\n    project.originalConfiguredProjects = void 0;\n    project.resolutionCache.clear();\n    project.getLanguageService(\n      /*ensureSynchronized*/\n      false\n    ).cleanupSemanticCache();\n    project.cleanupProgram();\n    project.markAsDirty();\n  }\n  /** @internal */\n  sendConfigFileDiagEvent(project, triggerFile, force) {\n    if (!this.eventHandler || this.suppressDiagnosticEvents) return false;\n    const diagnostics = project.getLanguageService().getCompilerOptionsDiagnostics();\n    diagnostics.push(...project.getAllProjectErrors());\n    if (!force && diagnostics.length === (project.configDiagDiagnosticsReported ?? 0)) return false;\n    project.configDiagDiagnosticsReported = diagnostics.length;\n    this.eventHandler(\n      {\n        eventName: ConfigFileDiagEvent,\n        data: { configFileName: project.getConfigFilePath(), diagnostics, triggerFile: triggerFile ?? project.getConfigFilePath() }\n      }\n    );\n    return true;\n  }\n  getOrCreateInferredProjectForProjectRootPathIfEnabled(info, projectRootPath) {\n    if (!this.useInferredProjectPerProjectRoot || // Its a dynamic info opened without project root\n    info.isDynamic && projectRootPath === void 0) {\n      return void 0;\n    }\n    if (projectRootPath) {\n      const canonicalProjectRootPath = this.toCanonicalFileName(projectRootPath);\n      for (const project of this.inferredProjects) {\n        if (project.projectRootPath === canonicalProjectRootPath) {\n          return project;\n        }\n      }\n      return this.createInferredProject(\n        projectRootPath,\n        /*isSingleInferredProject*/\n        false,\n        projectRootPath\n      );\n    }\n    let bestMatch;\n    for (const project of this.inferredProjects) {\n      if (!project.projectRootPath) continue;\n      if (!containsPath(project.projectRootPath, info.path, this.host.getCurrentDirectory(), !this.host.useCaseSensitiveFileNames)) continue;\n      if (bestMatch && bestMatch.projectRootPath.length > project.projectRootPath.length) continue;\n      bestMatch = project;\n    }\n    return bestMatch;\n  }\n  getOrCreateSingleInferredProjectIfEnabled() {\n    if (!this.useSingleInferredProject) {\n      return void 0;\n    }\n    if (this.inferredProjects.length > 0 && this.inferredProjects[0].projectRootPath === void 0) {\n      return this.inferredProjects[0];\n    }\n    return this.createInferredProject(\n      this.currentDirectory,\n      /*isSingleInferredProject*/\n      true,\n      /*projectRootPath*/\n      void 0\n    );\n  }\n  getOrCreateSingleInferredWithoutProjectRoot(currentDirectory) {\n    Debug.assert(!this.useSingleInferredProject);\n    const expectedCurrentDirectory = this.toCanonicalFileName(this.getNormalizedAbsolutePath(currentDirectory));\n    for (const inferredProject of this.inferredProjects) {\n      if (!inferredProject.projectRootPath && inferredProject.isOrphan() && inferredProject.canonicalCurrentDirectory === expectedCurrentDirectory) {\n        return inferredProject;\n      }\n    }\n    return this.createInferredProject(\n      currentDirectory,\n      /*isSingleInferredProject*/\n      false,\n      /*projectRootPath*/\n      void 0\n    );\n  }\n  createInferredProject(currentDirectory, isSingleInferredProject, projectRootPath) {\n    const compilerOptions = projectRootPath && this.compilerOptionsForInferredProjectsPerProjectRoot.get(projectRootPath) || this.compilerOptionsForInferredProjects;\n    let watchOptionsAndErrors;\n    let typeAcquisition;\n    if (projectRootPath) {\n      watchOptionsAndErrors = this.watchOptionsForInferredProjectsPerProjectRoot.get(projectRootPath);\n      typeAcquisition = this.typeAcquisitionForInferredProjectsPerProjectRoot.get(projectRootPath);\n    }\n    if (watchOptionsAndErrors === void 0) {\n      watchOptionsAndErrors = this.watchOptionsForInferredProjects;\n    }\n    if (typeAcquisition === void 0) {\n      typeAcquisition = this.typeAcquisitionForInferredProjects;\n    }\n    watchOptionsAndErrors = watchOptionsAndErrors || void 0;\n    const project = new InferredProject2(\n      this,\n      compilerOptions,\n      watchOptionsAndErrors == null ? void 0 : watchOptionsAndErrors.watchOptions,\n      projectRootPath,\n      currentDirectory,\n      typeAcquisition\n    );\n    project.setProjectErrors(watchOptionsAndErrors == null ? void 0 : watchOptionsAndErrors.errors);\n    if (isSingleInferredProject) {\n      this.inferredProjects.unshift(project);\n    } else {\n      this.inferredProjects.push(project);\n    }\n    return project;\n  }\n  /** @internal */\n  getOrCreateScriptInfoNotOpenedByClient(uncheckedFileName, currentDirectory, hostToQueryFileExistsOn, deferredDeleteOk) {\n    return this.getOrCreateScriptInfoNotOpenedByClientForNormalizedPath(\n      toNormalizedPath(uncheckedFileName),\n      currentDirectory,\n      /*scriptKind*/\n      void 0,\n      /*hasMixedContent*/\n      void 0,\n      hostToQueryFileExistsOn,\n      deferredDeleteOk\n    );\n  }\n  getScriptInfo(uncheckedFileName) {\n    return this.getScriptInfoForNormalizedPath(toNormalizedPath(uncheckedFileName));\n  }\n  /** @internal */\n  getScriptInfoOrConfig(uncheckedFileName) {\n    const path = toNormalizedPath(uncheckedFileName);\n    const info = this.getScriptInfoForNormalizedPath(path);\n    if (info) return info;\n    const configProject = this.configuredProjects.get(this.toPath(uncheckedFileName));\n    return configProject && configProject.getCompilerOptions().configFile;\n  }\n  /** @internal */\n  logErrorForScriptInfoNotFound(fileName) {\n    const names = arrayFrom(\n      mapDefinedIterator(\n        this.filenameToScriptInfo.entries(),\n        (entry) => entry[1].deferredDelete ? void 0 : entry\n      ),\n      ([path, scriptInfo]) => ({ path, fileName: scriptInfo.fileName })\n    );\n    this.logger.msg(`Could not find file ${JSON.stringify(fileName)}.\nAll files are: ${JSON.stringify(names)}`, \"Err\" /* Err */);\n  }\n  /**\n   * Returns the projects that contain script info through SymLink\n   * Note that this does not return projects in info.containingProjects\n   *\n   * @internal\n   */\n  getSymlinkedProjects(info) {\n    let projects;\n    if (this.realpathToScriptInfos) {\n      const realpath = info.getRealpathIfDifferent();\n      if (realpath) {\n        forEach(this.realpathToScriptInfos.get(realpath), combineProjects);\n      }\n      forEach(this.realpathToScriptInfos.get(info.path), combineProjects);\n    }\n    return projects;\n    function combineProjects(toAddInfo) {\n      if (toAddInfo !== info) {\n        for (const project of toAddInfo.containingProjects) {\n          if (project.languageServiceEnabled && !project.isOrphan() && !project.getCompilerOptions().preserveSymlinks && !info.isAttached(project)) {\n            if (!projects) {\n              projects = createMultiMap();\n              projects.add(toAddInfo.path, project);\n            } else if (!forEachEntry(projects, (projs, path) => path === toAddInfo.path ? false : contains(projs, project))) {\n              projects.add(toAddInfo.path, project);\n            }\n          }\n        }\n      }\n    }\n  }\n  watchClosedScriptInfo(info) {\n    Debug.assert(!info.fileWatcher);\n    if (!info.isDynamicOrHasMixedContent() && (!this.globalCacheLocationDirectoryPath || !startsWith(info.path, this.globalCacheLocationDirectoryPath))) {\n      const indexOfNodeModules = info.fileName.indexOf(\"/node_modules/\");\n      if (!this.host.getModifiedTime || indexOfNodeModules === -1) {\n        info.fileWatcher = this.watchFactory.watchFile(\n          info.fileName,\n          (_fileName, eventKind) => this.onSourceFileChanged(info, eventKind),\n          500 /* Medium */,\n          this.hostConfiguration.watchOptions,\n          WatchType.ClosedScriptInfo\n        );\n      } else {\n        info.mTime = this.getModifiedTime(info);\n        info.fileWatcher = this.watchClosedScriptInfoInNodeModules(info.fileName.substring(0, indexOfNodeModules));\n      }\n    }\n  }\n  createNodeModulesWatcher(dir, dirPath) {\n    let watcher = this.watchFactory.watchDirectory(\n      dir,\n      (fileOrDirectory) => {\n        var _a;\n        const fileOrDirectoryPath = removeIgnoredPath(this.toPath(fileOrDirectory));\n        if (!fileOrDirectoryPath) return;\n        const basename = getBaseFileName(fileOrDirectoryPath);\n        if (((_a = result.affectedModuleSpecifierCacheProjects) == null ? void 0 : _a.size) && (basename === \"package.json\" || basename === \"node_modules\")) {\n          result.affectedModuleSpecifierCacheProjects.forEach((project) => {\n            var _a2;\n            (_a2 = project.getModuleSpecifierCache()) == null ? void 0 : _a2.clear();\n          });\n        }\n        if (result.refreshScriptInfoRefCount) {\n          if (dirPath === fileOrDirectoryPath) {\n            this.refreshScriptInfosInDirectory(dirPath);\n          } else {\n            const info = this.filenameToScriptInfo.get(fileOrDirectoryPath);\n            if (info) {\n              if (isScriptInfoWatchedFromNodeModules(info)) {\n                this.refreshScriptInfo(info);\n              }\n            } else if (!hasExtension(fileOrDirectoryPath)) {\n              this.refreshScriptInfosInDirectory(fileOrDirectoryPath);\n            }\n          }\n        }\n      },\n      1 /* Recursive */,\n      this.hostConfiguration.watchOptions,\n      WatchType.NodeModules\n    );\n    const result = {\n      refreshScriptInfoRefCount: 0,\n      affectedModuleSpecifierCacheProjects: void 0,\n      close: () => {\n        var _a;\n        if (watcher && !result.refreshScriptInfoRefCount && !((_a = result.affectedModuleSpecifierCacheProjects) == null ? void 0 : _a.size)) {\n          watcher.close();\n          watcher = void 0;\n          this.nodeModulesWatchers.delete(dirPath);\n        }\n      }\n    };\n    this.nodeModulesWatchers.set(dirPath, result);\n    return result;\n  }\n  /** @internal */\n  watchPackageJsonsInNodeModules(dir, project) {\n    var _a;\n    const dirPath = this.toPath(dir);\n    const watcher = this.nodeModulesWatchers.get(dirPath) || this.createNodeModulesWatcher(dir, dirPath);\n    Debug.assert(!((_a = watcher.affectedModuleSpecifierCacheProjects) == null ? void 0 : _a.has(project)));\n    (watcher.affectedModuleSpecifierCacheProjects || (watcher.affectedModuleSpecifierCacheProjects = /* @__PURE__ */ new Set())).add(project);\n    return {\n      close: () => {\n        var _a2;\n        (_a2 = watcher.affectedModuleSpecifierCacheProjects) == null ? void 0 : _a2.delete(project);\n        watcher.close();\n      }\n    };\n  }\n  watchClosedScriptInfoInNodeModules(dir) {\n    const watchDir = dir + \"/node_modules\";\n    const watchDirPath = this.toPath(watchDir);\n    const watcher = this.nodeModulesWatchers.get(watchDirPath) || this.createNodeModulesWatcher(watchDir, watchDirPath);\n    watcher.refreshScriptInfoRefCount++;\n    return {\n      close: () => {\n        watcher.refreshScriptInfoRefCount--;\n        watcher.close();\n      }\n    };\n  }\n  getModifiedTime(info) {\n    return (this.host.getModifiedTime(info.fileName) || missingFileModifiedTime).getTime();\n  }\n  refreshScriptInfo(info) {\n    const mTime = this.getModifiedTime(info);\n    if (mTime !== info.mTime) {\n      const eventKind = getFileWatcherEventKind(info.mTime, mTime);\n      info.mTime = mTime;\n      this.onSourceFileChanged(info, eventKind);\n    }\n  }\n  refreshScriptInfosInDirectory(dir) {\n    dir = dir + directorySeparator;\n    this.filenameToScriptInfo.forEach((info) => {\n      if (isScriptInfoWatchedFromNodeModules(info) && startsWith(info.path, dir)) {\n        this.refreshScriptInfo(info);\n      }\n    });\n  }\n  stopWatchingScriptInfo(info) {\n    if (info.fileWatcher) {\n      info.fileWatcher.close();\n      info.fileWatcher = void 0;\n    }\n  }\n  getOrCreateScriptInfoNotOpenedByClientForNormalizedPath(fileName, currentDirectory, scriptKind, hasMixedContent, hostToQueryFileExistsOn, deferredDeleteOk) {\n    if (isRootedDiskPath(fileName) || isDynamicFileName(fileName)) {\n      return this.getOrCreateScriptInfoWorker(\n        fileName,\n        currentDirectory,\n        /*openedByClient*/\n        false,\n        /*fileContent*/\n        void 0,\n        scriptKind,\n        !!hasMixedContent,\n        hostToQueryFileExistsOn,\n        deferredDeleteOk\n      );\n    }\n    const info = this.openFilesWithNonRootedDiskPath.get(this.toCanonicalFileName(fileName));\n    if (info) {\n      return info;\n    }\n    return void 0;\n  }\n  getOrCreateScriptInfoForNormalizedPath(fileName, openedByClient, fileContent, scriptKind, hasMixedContent, hostToQueryFileExistsOn) {\n    return this.getOrCreateScriptInfoWorker(\n      fileName,\n      this.currentDirectory,\n      openedByClient,\n      fileContent,\n      scriptKind,\n      !!hasMixedContent,\n      hostToQueryFileExistsOn,\n      /*deferredDeleteOk*/\n      false\n    );\n  }\n  getOrCreateScriptInfoWorker(fileName, currentDirectory, openedByClient, fileContent, scriptKind, hasMixedContent, hostToQueryFileExistsOn, deferredDeleteOk) {\n    Debug.assert(fileContent === void 0 || openedByClient, \"ScriptInfo needs to be opened by client to be able to set its user defined content\");\n    const path = normalizedPathToPath(fileName, currentDirectory, this.toCanonicalFileName);\n    let info = this.filenameToScriptInfo.get(path);\n    if (!info) {\n      const isDynamic = isDynamicFileName(fileName);\n      Debug.assert(isRootedDiskPath(fileName) || isDynamic || openedByClient, \"\", () => `${JSON.stringify({ fileName, currentDirectory, hostCurrentDirectory: this.currentDirectory, openKeys: arrayFrom(this.openFilesWithNonRootedDiskPath.keys()) })}\nScript info with non-dynamic relative file name can only be open script info or in context of host currentDirectory`);\n      Debug.assert(!isRootedDiskPath(fileName) || this.currentDirectory === currentDirectory || !this.openFilesWithNonRootedDiskPath.has(this.toCanonicalFileName(fileName)), \"\", () => `${JSON.stringify({ fileName, currentDirectory, hostCurrentDirectory: this.currentDirectory, openKeys: arrayFrom(this.openFilesWithNonRootedDiskPath.keys()) })}\nOpen script files with non rooted disk path opened with current directory context cannot have same canonical names`);\n      Debug.assert(!isDynamic || this.currentDirectory === currentDirectory || this.useInferredProjectPerProjectRoot, \"\", () => `${JSON.stringify({ fileName, currentDirectory, hostCurrentDirectory: this.currentDirectory, openKeys: arrayFrom(this.openFilesWithNonRootedDiskPath.keys()) })}\nDynamic files must always be opened with service's current directory or service should support inferred project per projectRootPath.`);\n      if (!openedByClient && !isDynamic && !(hostToQueryFileExistsOn || this.host).fileExists(fileName)) {\n        return;\n      }\n      info = new ScriptInfo(this.host, fileName, scriptKind, hasMixedContent, path, this.filenameToScriptInfoVersion.get(path));\n      this.filenameToScriptInfo.set(info.path, info);\n      this.filenameToScriptInfoVersion.delete(info.path);\n      if (!openedByClient) {\n        this.watchClosedScriptInfo(info);\n      } else if (!isRootedDiskPath(fileName) && (!isDynamic || this.currentDirectory !== currentDirectory)) {\n        this.openFilesWithNonRootedDiskPath.set(this.toCanonicalFileName(fileName), info);\n      }\n    } else if (info.deferredDelete) {\n      Debug.assert(!info.isDynamic);\n      if (!openedByClient && !(hostToQueryFileExistsOn || this.host).fileExists(fileName)) {\n        return deferredDeleteOk ? info : void 0;\n      }\n      info.deferredDelete = void 0;\n    }\n    if (openedByClient) {\n      this.stopWatchingScriptInfo(info);\n      info.open(fileContent);\n      if (hasMixedContent) {\n        info.registerFileUpdate();\n      }\n    }\n    return info;\n  }\n  /**\n   * This gets the script info for the normalized path. If the path is not rooted disk path then the open script info with project root context is preferred\n   */\n  getScriptInfoForNormalizedPath(fileName) {\n    return !isRootedDiskPath(fileName) && this.openFilesWithNonRootedDiskPath.get(this.toCanonicalFileName(fileName)) || this.getScriptInfoForPath(normalizedPathToPath(fileName, this.currentDirectory, this.toCanonicalFileName));\n  }\n  getScriptInfoForPath(fileName) {\n    const info = this.filenameToScriptInfo.get(fileName);\n    return !info || !info.deferredDelete ? info : void 0;\n  }\n  /** @internal */\n  getDocumentPositionMapper(project, generatedFileName, sourceFileName) {\n    const declarationInfo = this.getOrCreateScriptInfoNotOpenedByClient(\n      generatedFileName,\n      project.currentDirectory,\n      this.host,\n      /*deferredDeleteOk*/\n      false\n    );\n    if (!declarationInfo) {\n      if (sourceFileName) {\n        project.addGeneratedFileWatch(generatedFileName, sourceFileName);\n      }\n      return void 0;\n    }\n    declarationInfo.getSnapshot();\n    if (isString(declarationInfo.sourceMapFilePath)) {\n      const sourceMapFileInfo2 = this.getScriptInfoForPath(declarationInfo.sourceMapFilePath);\n      if (sourceMapFileInfo2) {\n        sourceMapFileInfo2.getSnapshot();\n        if (sourceMapFileInfo2.documentPositionMapper !== void 0) {\n          sourceMapFileInfo2.sourceInfos = this.addSourceInfoToSourceMap(sourceFileName, project, sourceMapFileInfo2.sourceInfos);\n          return sourceMapFileInfo2.documentPositionMapper ? sourceMapFileInfo2.documentPositionMapper : void 0;\n        }\n      }\n      declarationInfo.sourceMapFilePath = void 0;\n    } else if (declarationInfo.sourceMapFilePath) {\n      declarationInfo.sourceMapFilePath.sourceInfos = this.addSourceInfoToSourceMap(sourceFileName, project, declarationInfo.sourceMapFilePath.sourceInfos);\n      return void 0;\n    } else if (declarationInfo.sourceMapFilePath !== void 0) {\n      return void 0;\n    }\n    let sourceMapFileInfo;\n    let readMapFile = (mapFileName, mapFileNameFromDts) => {\n      const mapInfo = this.getOrCreateScriptInfoNotOpenedByClient(\n        mapFileName,\n        project.currentDirectory,\n        this.host,\n        /*deferredDeleteOk*/\n        true\n      );\n      sourceMapFileInfo = mapInfo || mapFileNameFromDts;\n      if (!mapInfo || mapInfo.deferredDelete) return void 0;\n      const snap = mapInfo.getSnapshot();\n      if (mapInfo.documentPositionMapper !== void 0) return mapInfo.documentPositionMapper;\n      return getSnapshotText(snap);\n    };\n    const projectName = project.projectName;\n    const documentPositionMapper = getDocumentPositionMapper(\n      { getCanonicalFileName: this.toCanonicalFileName, log: (s) => this.logger.info(s), getSourceFileLike: (f) => this.getSourceFileLike(f, projectName, declarationInfo) },\n      declarationInfo.fileName,\n      declarationInfo.textStorage.getLineInfo(),\n      readMapFile\n    );\n    readMapFile = void 0;\n    if (sourceMapFileInfo) {\n      if (!isString(sourceMapFileInfo)) {\n        declarationInfo.sourceMapFilePath = sourceMapFileInfo.path;\n        sourceMapFileInfo.declarationInfoPath = declarationInfo.path;\n        if (!sourceMapFileInfo.deferredDelete) sourceMapFileInfo.documentPositionMapper = documentPositionMapper || false;\n        sourceMapFileInfo.sourceInfos = this.addSourceInfoToSourceMap(sourceFileName, project, sourceMapFileInfo.sourceInfos);\n      } else {\n        declarationInfo.sourceMapFilePath = {\n          watcher: this.addMissingSourceMapFile(\n            project.currentDirectory === this.currentDirectory ? sourceMapFileInfo : getNormalizedAbsolutePath(sourceMapFileInfo, project.currentDirectory),\n            declarationInfo.path\n          ),\n          sourceInfos: this.addSourceInfoToSourceMap(sourceFileName, project)\n        };\n      }\n    } else {\n      declarationInfo.sourceMapFilePath = false;\n    }\n    return documentPositionMapper;\n  }\n  addSourceInfoToSourceMap(sourceFileName, project, sourceInfos) {\n    if (sourceFileName) {\n      const sourceInfo = this.getOrCreateScriptInfoNotOpenedByClient(\n        sourceFileName,\n        project.currentDirectory,\n        project.directoryStructureHost,\n        /*deferredDeleteOk*/\n        false\n      );\n      (sourceInfos || (sourceInfos = /* @__PURE__ */ new Set())).add(sourceInfo.path);\n    }\n    return sourceInfos;\n  }\n  addMissingSourceMapFile(mapFileName, declarationInfoPath) {\n    const fileWatcher = this.watchFactory.watchFile(\n      mapFileName,\n      () => {\n        const declarationInfo = this.getScriptInfoForPath(declarationInfoPath);\n        if (declarationInfo && declarationInfo.sourceMapFilePath && !isString(declarationInfo.sourceMapFilePath)) {\n          this.delayUpdateProjectGraphs(\n            declarationInfo.containingProjects,\n            /*clearSourceMapperCache*/\n            true\n          );\n          this.delayUpdateSourceInfoProjects(declarationInfo.sourceMapFilePath.sourceInfos);\n          declarationInfo.closeSourceMapFileWatcher();\n        }\n      },\n      2e3 /* High */,\n      this.hostConfiguration.watchOptions,\n      WatchType.MissingSourceMapFile\n    );\n    return fileWatcher;\n  }\n  /** @internal */\n  getSourceFileLike(fileName, projectNameOrProject, declarationInfo) {\n    const project = projectNameOrProject.projectName ? projectNameOrProject : this.findProject(projectNameOrProject);\n    if (project) {\n      const path = project.toPath(fileName);\n      const sourceFile = project.getSourceFile(path);\n      if (sourceFile && sourceFile.resolvedPath === path) return sourceFile;\n    }\n    const info = this.getOrCreateScriptInfoNotOpenedByClient(\n      fileName,\n      (project || this).currentDirectory,\n      project ? project.directoryStructureHost : this.host,\n      /*deferredDeleteOk*/\n      false\n    );\n    if (!info) return void 0;\n    if (declarationInfo && isString(declarationInfo.sourceMapFilePath) && info !== declarationInfo) {\n      const sourceMapInfo = this.getScriptInfoForPath(declarationInfo.sourceMapFilePath);\n      if (sourceMapInfo) {\n        (sourceMapInfo.sourceInfos ?? (sourceMapInfo.sourceInfos = /* @__PURE__ */ new Set())).add(info.path);\n      }\n    }\n    if (info.cacheSourceFile) return info.cacheSourceFile.sourceFile;\n    if (!info.sourceFileLike) {\n      info.sourceFileLike = {\n        get text() {\n          Debug.fail(\"shouldnt need text\");\n          return \"\";\n        },\n        getLineAndCharacterOfPosition: (pos) => {\n          const lineOffset = info.positionToLineOffset(pos);\n          return { line: lineOffset.line - 1, character: lineOffset.offset - 1 };\n        },\n        getPositionOfLineAndCharacter: (line, character, allowEdits) => info.lineOffsetToPosition(line + 1, character + 1, allowEdits)\n      };\n    }\n    return info.sourceFileLike;\n  }\n  /** @internal */\n  setPerformanceEventHandler(performanceEventHandler) {\n    this.performanceEventHandler = performanceEventHandler;\n  }\n  setHostConfiguration(args) {\n    var _a;\n    if (args.file) {\n      const info = this.getScriptInfoForNormalizedPath(toNormalizedPath(args.file));\n      if (info) {\n        info.setOptions(convertFormatOptions(args.formatOptions), args.preferences);\n        this.logger.info(`Host configuration update for file ${args.file}`);\n      }\n    } else {\n      if (args.hostInfo !== void 0) {\n        this.hostConfiguration.hostInfo = args.hostInfo;\n        this.logger.info(`Host information ${args.hostInfo}`);\n      }\n      if (args.formatOptions) {\n        this.hostConfiguration.formatCodeOptions = { ...this.hostConfiguration.formatCodeOptions, ...convertFormatOptions(args.formatOptions) };\n        this.logger.info(\"Format host information updated\");\n      }\n      if (args.preferences) {\n        const {\n          lazyConfiguredProjectsFromExternalProject,\n          includePackageJsonAutoImports,\n          includeCompletionsForModuleExports\n        } = this.hostConfiguration.preferences;\n        this.hostConfiguration.preferences = { ...this.hostConfiguration.preferences, ...args.preferences };\n        if (lazyConfiguredProjectsFromExternalProject && !this.hostConfiguration.preferences.lazyConfiguredProjectsFromExternalProject) {\n          this.externalProjectToConfiguredProjectMap.forEach(\n            (projects) => projects.forEach((project) => {\n              if (!project.deferredClose && !project.isClosed() && project.pendingUpdateLevel === 2 /* Full */ && !this.hasPendingProjectUpdate(project)) {\n                project.updateGraph();\n              }\n            })\n          );\n        }\n        if (includePackageJsonAutoImports !== args.preferences.includePackageJsonAutoImports || !!includeCompletionsForModuleExports !== !!args.preferences.includeCompletionsForModuleExports) {\n          this.forEachProject((project) => {\n            project.onAutoImportProviderSettingsChanged();\n          });\n        }\n      }\n      if (args.extraFileExtensions) {\n        this.hostConfiguration.extraFileExtensions = args.extraFileExtensions;\n        this.reloadProjects();\n        this.logger.info(\"Host file extension mappings updated\");\n      }\n      if (args.watchOptions) {\n        const watchOptions = (_a = convertWatchOptions(args.watchOptions)) == null ? void 0 : _a.watchOptions;\n        const substitution = handleWatchOptionsConfigDirTemplateSubstitution(watchOptions, this.currentDirectory);\n        this.hostConfiguration.watchOptions = substitution;\n        this.hostConfiguration.beforeSubstitution = substitution === watchOptions ? void 0 : watchOptions;\n        this.logger.info(`Host watch options changed to ${JSON.stringify(this.hostConfiguration.watchOptions)}, it will be take effect for next watches.`);\n      }\n    }\n  }\n  /** @internal */\n  getWatchOptions(project) {\n    return this.getWatchOptionsFromProjectWatchOptions(project.getWatchOptions(), project.getCurrentDirectory());\n  }\n  getWatchOptionsFromProjectWatchOptions(projectOptions, basePath) {\n    const hostWatchOptions = !this.hostConfiguration.beforeSubstitution ? this.hostConfiguration.watchOptions : handleWatchOptionsConfigDirTemplateSubstitution(\n      this.hostConfiguration.beforeSubstitution,\n      basePath\n    );\n    return projectOptions && hostWatchOptions ? { ...hostWatchOptions, ...projectOptions } : projectOptions || hostWatchOptions;\n  }\n  closeLog() {\n    this.logger.close();\n  }\n  sendSourceFileChange(inPath) {\n    this.filenameToScriptInfo.forEach((info) => {\n      if (this.openFiles.has(info.path)) return;\n      if (!info.fileWatcher) return;\n      const eventKind = memoize(\n        () => this.host.fileExists(info.fileName) ? info.deferredDelete ? 0 /* Created */ : 1 /* Changed */ : 2 /* Deleted */\n      );\n      if (inPath) {\n        if (isScriptInfoWatchedFromNodeModules(info) || !info.path.startsWith(inPath)) return;\n        if (eventKind() === 2 /* Deleted */ && info.deferredDelete) return;\n        this.logger.info(`Invoking sourceFileChange on ${info.fileName}:: ${eventKind()}`);\n      }\n      this.onSourceFileChanged(\n        info,\n        eventKind()\n      );\n    });\n  }\n  /**\n   * This function rebuilds the project for every file opened by the client\n   * This does not reload contents of open files from disk. But we could do that if needed\n   */\n  reloadProjects() {\n    this.logger.info(\"reload projects.\");\n    this.sendSourceFileChange(\n      /*inPath*/\n      void 0\n    );\n    this.pendingProjectUpdates.forEach((_project, projectName) => {\n      this.throttledOperations.cancel(projectName);\n      this.pendingProjectUpdates.delete(projectName);\n    });\n    this.throttledOperations.cancel(ensureProjectForOpenFileSchedule);\n    this.pendingOpenFileProjectUpdates = void 0;\n    this.pendingEnsureProjectForOpenFiles = false;\n    this.configFileExistenceInfoCache.forEach((info) => {\n      if (info.config) {\n        info.config.updateLevel = 2 /* Full */;\n        info.config.cachedDirectoryStructureHost.clearCache();\n      }\n    });\n    this.configFileForOpenFiles.clear();\n    this.externalProjects.forEach((project) => {\n      this.clearSemanticCache(project);\n      project.updateGraph();\n    });\n    const reloadedConfiguredProjects = /* @__PURE__ */ new Map();\n    const delayReloadedConfiguredProjects = /* @__PURE__ */ new Set();\n    this.externalProjectToConfiguredProjectMap.forEach((projects, externalProjectName) => {\n      const reason = `Reloading configured project in external project: ${externalProjectName}`;\n      projects.forEach((project) => {\n        if (this.getHostPreferences().lazyConfiguredProjectsFromExternalProject) {\n          this.reloadConfiguredProjectOptimized(project, reason, reloadedConfiguredProjects);\n        } else {\n          this.reloadConfiguredProjectClearingSemanticCache(\n            project,\n            reason,\n            reloadedConfiguredProjects\n          );\n        }\n      });\n    });\n    this.openFiles.forEach((_projectRootPath, path) => {\n      const info = this.getScriptInfoForPath(path);\n      if (find(info.containingProjects, isExternalProject)) return;\n      this.tryFindDefaultConfiguredProjectAndLoadAncestorsForOpenScriptInfo(\n        info,\n        7 /* Reload */,\n        reloadedConfiguredProjects,\n        delayReloadedConfiguredProjects\n      );\n    });\n    delayReloadedConfiguredProjects.forEach((p) => reloadedConfiguredProjects.set(p, 7 /* Reload */));\n    this.inferredProjects.forEach((project) => this.clearSemanticCache(project));\n    this.ensureProjectForOpenFiles();\n    this.cleanupProjectsAndScriptInfos(\n      reloadedConfiguredProjects,\n      new Set(this.openFiles.keys()),\n      new Set(this.externalProjectToConfiguredProjectMap.keys())\n    );\n    this.logger.info(\"After reloading projects..\");\n    this.printProjects();\n  }\n  /**\n   * Remove the root of inferred project if script info is part of another project\n   */\n  removeRootOfInferredProjectIfNowPartOfOtherProject(info) {\n    Debug.assert(info.containingProjects.length > 0);\n    const firstProject = info.containingProjects[0];\n    if (!firstProject.isOrphan() && isInferredProject(firstProject) && firstProject.isRoot(info) && forEach(info.containingProjects, (p) => p !== firstProject && !p.isOrphan())) {\n      firstProject.removeFile(\n        info,\n        /*fileExists*/\n        true,\n        /*detachFromProject*/\n        true\n      );\n    }\n  }\n  /**\n   * This function is to update the project structure for every inferred project.\n   * It is called on the premise that all the configured projects are\n   * up to date.\n   * This will go through open files and assign them to inferred project if open file is not part of any other project\n   * After that all the inferred project graphs are updated\n   */\n  ensureProjectForOpenFiles() {\n    this.logger.info(\"Before ensureProjectForOpenFiles:\");\n    this.printProjects();\n    const pendingOpenFileProjectUpdates = this.pendingOpenFileProjectUpdates;\n    this.pendingOpenFileProjectUpdates = void 0;\n    pendingOpenFileProjectUpdates == null ? void 0 : pendingOpenFileProjectUpdates.forEach(\n      (_config, path) => this.tryFindDefaultConfiguredProjectAndLoadAncestorsForOpenScriptInfo(\n        this.getScriptInfoForPath(path),\n        5 /* Create */\n      )\n    );\n    this.openFiles.forEach((projectRootPath, path) => {\n      const info = this.getScriptInfoForPath(path);\n      if (info.isOrphan()) {\n        this.assignOrphanScriptInfoToInferredProject(info, projectRootPath);\n      } else {\n        this.removeRootOfInferredProjectIfNowPartOfOtherProject(info);\n      }\n    });\n    this.pendingEnsureProjectForOpenFiles = false;\n    this.inferredProjects.forEach(updateProjectIfDirty);\n    this.logger.info(\"After ensureProjectForOpenFiles:\");\n    this.printProjects();\n  }\n  /**\n   * Open file whose contents is managed by the client\n   * @param filename is absolute pathname\n   * @param fileContent is a known version of the file content that is more up to date than the one on disk\n   */\n  openClientFile(fileName, fileContent, scriptKind, projectRootPath) {\n    return this.openClientFileWithNormalizedPath(\n      toNormalizedPath(fileName),\n      fileContent,\n      scriptKind,\n      /*hasMixedContent*/\n      false,\n      projectRootPath ? toNormalizedPath(projectRootPath) : void 0\n    );\n  }\n  /** @internal */\n  getOriginalLocationEnsuringConfiguredProject(project, location) {\n    const isSourceOfProjectReferenceRedirect = project.isSourceOfProjectReferenceRedirect(location.fileName);\n    const originalLocation = isSourceOfProjectReferenceRedirect ? location : project.getSourceMapper().tryGetSourcePosition(location);\n    if (!originalLocation) return void 0;\n    const { fileName } = originalLocation;\n    const scriptInfo = this.getScriptInfo(fileName);\n    if (!scriptInfo && !this.host.fileExists(fileName)) return void 0;\n    const originalFileInfo = { fileName: toNormalizedPath(fileName), path: this.toPath(fileName) };\n    const configFileName = this.getConfigFileNameForFile(\n      originalFileInfo,\n      /*findFromCacheOnly*/\n      false\n    );\n    if (!configFileName) return void 0;\n    let configuredProject = this.findConfiguredProjectByProjectName(configFileName);\n    if (!configuredProject) {\n      if (project.getCompilerOptions().disableReferencedProjectLoad) {\n        if (isSourceOfProjectReferenceRedirect) {\n          return location;\n        }\n        return (scriptInfo == null ? void 0 : scriptInfo.containingProjects.length) ? originalLocation : location;\n      }\n      configuredProject = this.createConfiguredProject(configFileName, `Creating project for original file: ${originalFileInfo.fileName}${location !== originalLocation ? \" for location: \" + location.fileName : \"\"}`);\n    }\n    const result = this.tryFindDefaultConfiguredProjectForOpenScriptInfoOrClosedFileInfo(\n      originalFileInfo,\n      5 /* Create */,\n      updateProjectFoundUsingFind(\n        configuredProject,\n        4 /* CreateOptimized */\n      ),\n      (project2) => `Creating project referenced in solution ${project2.projectName} to find possible configured project for original file: ${originalFileInfo.fileName}${location !== originalLocation ? \" for location: \" + location.fileName : \"\"}`\n    );\n    if (!result.defaultProject) return void 0;\n    if (result.defaultProject === project) return originalLocation;\n    addOriginalConfiguredProject(result.defaultProject);\n    const originalScriptInfo = this.getScriptInfo(fileName);\n    if (!originalScriptInfo || !originalScriptInfo.containingProjects.length) return void 0;\n    originalScriptInfo.containingProjects.forEach((project2) => {\n      if (isConfiguredProject(project2)) {\n        addOriginalConfiguredProject(project2);\n      }\n    });\n    return originalLocation;\n    function addOriginalConfiguredProject(originalProject) {\n      (project.originalConfiguredProjects ?? (project.originalConfiguredProjects = /* @__PURE__ */ new Set())).add(originalProject.canonicalConfigFilePath);\n    }\n  }\n  /** @internal */\n  fileExists(fileName) {\n    return !!this.getScriptInfoForNormalizedPath(fileName) || this.host.fileExists(fileName);\n  }\n  findExternalProjectContainingOpenScriptInfo(info) {\n    return find(this.externalProjects, (proj) => {\n      updateProjectIfDirty(proj);\n      return proj.containsScriptInfo(info);\n    });\n  }\n  getOrCreateOpenScriptInfo(fileName, fileContent, scriptKind, hasMixedContent, projectRootPath) {\n    const info = this.getOrCreateScriptInfoWorker(\n      fileName,\n      projectRootPath ? this.getNormalizedAbsolutePath(projectRootPath) : this.currentDirectory,\n      /*openedByClient*/\n      true,\n      fileContent,\n      scriptKind,\n      !!hasMixedContent,\n      /*hostToQueryFileExistsOn*/\n      void 0,\n      /*deferredDeleteOk*/\n      true\n    );\n    this.openFiles.set(info.path, projectRootPath);\n    return info;\n  }\n  assignProjectToOpenedScriptInfo(info) {\n    let configFileName;\n    let configFileErrors;\n    const project = this.findExternalProjectContainingOpenScriptInfo(info);\n    let retainProjects;\n    let sentConfigDiag;\n    if (!project && this.serverMode === 0 /* Semantic */) {\n      const result = this.tryFindDefaultConfiguredProjectAndLoadAncestorsForOpenScriptInfo(\n        info,\n        5 /* Create */\n      );\n      if (result) {\n        retainProjects = result.seenProjects;\n        sentConfigDiag = result.sentConfigDiag;\n        if (result.defaultProject) {\n          configFileName = result.defaultProject.getConfigFilePath();\n          configFileErrors = result.defaultProject.getAllProjectErrors();\n        }\n      }\n    }\n    info.containingProjects.forEach(updateProjectIfDirty);\n    if (info.isOrphan()) {\n      retainProjects == null ? void 0 : retainProjects.forEach((kind, project2) => {\n        if (kind !== 4 /* CreateOptimized */ && !sentConfigDiag.has(project2)) this.sendConfigFileDiagEvent(\n          project2,\n          info.fileName,\n          /*force*/\n          true\n        );\n      });\n      Debug.assert(this.openFiles.has(info.path));\n      this.assignOrphanScriptInfoToInferredProject(info, this.openFiles.get(info.path));\n    }\n    Debug.assert(!info.isOrphan());\n    return { configFileName, configFileErrors, retainProjects };\n  }\n  /**\n   * Depending on kind\n   * - Find the configuedProject and return it - if allowDeferredClosed is set it will find the deferredClosed project as well\n   * - Create - if the project doesnt exist, it creates one as well. If not delayLoad, the project is updated (with triggerFile if passed)\n   * - Reload - if the project doesnt exist, it creates one. If not delayLoad, the project is reloaded clearing semantic cache\n   *  @internal\n   */\n  findCreateOrReloadConfiguredProject(configFileName, kind, reason, allowDeferredClosed, triggerFile, reloadedProjects, delayLoad, delayReloadedConfiguredProjects, projectForConfigFile) {\n    let project = projectForConfigFile ?? this.findConfiguredProjectByProjectName(configFileName, allowDeferredClosed);\n    let sentConfigFileDiag = false;\n    let configFileExistenceInfo;\n    switch (kind) {\n      case 0 /* FindOptimized */:\n      case 1 /* Find */:\n      case 3 /* CreateReplay */:\n        if (!project) return;\n        break;\n      case 2 /* CreateReplayOptimized */:\n        if (!project) return;\n        configFileExistenceInfo = configFileExistenceInfoForOptimizedReplay(project);\n        break;\n      case 4 /* CreateOptimized */:\n      case 5 /* Create */:\n        project ?? (project = this.createConfiguredProject(configFileName, reason));\n        if (!delayLoad) {\n          ({ sentConfigFileDiag, configFileExistenceInfo } = updateProjectFoundUsingFind(\n            project,\n            kind,\n            triggerFile\n          ));\n        }\n        break;\n      case 6 /* ReloadOptimized */:\n        project ?? (project = this.createConfiguredProject(configFileName, reloadReason(reason)));\n        project.projectService.reloadConfiguredProjectOptimized(project, reason, reloadedProjects);\n        configFileExistenceInfo = configFileExistenceInfoForOptimizedLoading(project);\n        if (configFileExistenceInfo) break;\n      // falls through\n      case 7 /* Reload */:\n        project ?? (project = this.createConfiguredProject(configFileName, reloadReason(reason)));\n        sentConfigFileDiag = !delayReloadedConfiguredProjects && this.reloadConfiguredProjectClearingSemanticCache(project, reason, reloadedProjects);\n        if (delayReloadedConfiguredProjects && !delayReloadedConfiguredProjects.has(project) && !reloadedProjects.has(project)) {\n          this.setProjectForReload(project, 2 /* Full */, reason);\n          delayReloadedConfiguredProjects.add(project);\n        }\n        break;\n      default:\n        Debug.assertNever(kind);\n    }\n    return { project, sentConfigFileDiag, configFileExistenceInfo, reason };\n  }\n  /**\n   * Finds the default configured project for given info\n   * For any tsconfig found, it looks into that project, if not then all its references,\n   * The search happens for all tsconfigs till projectRootPath\n   */\n  tryFindDefaultConfiguredProjectForOpenScriptInfo(info, kind, allowDeferredClosed, reloadedProjects) {\n    const configFileName = this.getConfigFileNameForFile(info, kind <= 3 /* CreateReplay */);\n    if (!configFileName) return;\n    const optimizedKind = toConfiguredProjectLoadOptimized(kind);\n    const result = this.findCreateOrReloadConfiguredProject(\n      configFileName,\n      optimizedKind,\n      fileOpenReason(info),\n      allowDeferredClosed,\n      info.fileName,\n      reloadedProjects\n    );\n    return result && this.tryFindDefaultConfiguredProjectForOpenScriptInfoOrClosedFileInfo(\n      info,\n      kind,\n      result,\n      (project) => `Creating project referenced in solution ${project.projectName} to find possible configured project for ${info.fileName} to open`,\n      allowDeferredClosed,\n      reloadedProjects\n    );\n  }\n  isMatchedByConfig(configFileName, config, info) {\n    if (config.fileNames.some((rootName) => this.toPath(rootName) === info.path)) return true;\n    if (isSupportedSourceFileName(\n      info.fileName,\n      config.options,\n      this.hostConfiguration.extraFileExtensions\n    )) return false;\n    const { validatedFilesSpec, validatedIncludeSpecs, validatedExcludeSpecs } = config.options.configFile.configFileSpecs;\n    const basePath = toNormalizedPath(getNormalizedAbsolutePath(getDirectoryPath(configFileName), this.currentDirectory));\n    if (validatedFilesSpec == null ? void 0 : validatedFilesSpec.some((fileSpec) => this.toPath(getNormalizedAbsolutePath(fileSpec, basePath)) === info.path)) return true;\n    if (!(validatedIncludeSpecs == null ? void 0 : validatedIncludeSpecs.length)) return false;\n    if (matchesExcludeWorker(\n      info.fileName,\n      validatedExcludeSpecs,\n      this.host.useCaseSensitiveFileNames,\n      this.currentDirectory,\n      basePath\n    )) return false;\n    return validatedIncludeSpecs == null ? void 0 : validatedIncludeSpecs.some((includeSpec) => {\n      const pattern = getPatternFromSpec(includeSpec, basePath, \"files\");\n      return !!pattern && getRegexFromPattern(`(${pattern})$`, this.host.useCaseSensitiveFileNames).test(info.fileName);\n    });\n  }\n  tryFindDefaultConfiguredProjectForOpenScriptInfoOrClosedFileInfo(info, kind, initialConfigResult, referencedProjectReason, allowDeferredClosed, reloadedProjects) {\n    const infoIsOpenScriptInfo = isOpenScriptInfo(info);\n    const optimizedKind = toConfiguredProjectLoadOptimized(kind);\n    const seenProjects = /* @__PURE__ */ new Map();\n    let seenConfigs;\n    const sentConfigDiag = /* @__PURE__ */ new Set();\n    let defaultProject;\n    let possiblyDefault;\n    let tsconfigOfDefault;\n    let tsconfigOfPossiblyDefault;\n    tryFindDefaultConfiguredProject(initialConfigResult);\n    return {\n      defaultProject: defaultProject ?? possiblyDefault,\n      tsconfigProject: tsconfigOfDefault ?? tsconfigOfPossiblyDefault,\n      sentConfigDiag,\n      seenProjects,\n      seenConfigs\n    };\n    function tryFindDefaultConfiguredProject(result) {\n      return isDefaultProjectOptimized(result, result.project) ?? tryFindDefaultConfiguredProjectFromReferences(result.project) ?? tryFindDefaultConfiguredProjectFromAncestor(result.project);\n    }\n    function isDefaultConfigFileExistenceInfo(configFileExistenceInfo, project, childConfigName, reason, tsconfigProject, canonicalConfigFilePath) {\n      if (project) {\n        if (seenProjects.has(project)) return;\n        seenProjects.set(project, optimizedKind);\n      } else {\n        if (seenConfigs == null ? void 0 : seenConfigs.has(canonicalConfigFilePath)) return;\n        (seenConfigs ?? (seenConfigs = /* @__PURE__ */ new Set())).add(canonicalConfigFilePath);\n      }\n      if (!tsconfigProject.projectService.isMatchedByConfig(\n        childConfigName,\n        configFileExistenceInfo.config.parsedCommandLine,\n        info\n      )) {\n        if (tsconfigProject.languageServiceEnabled) {\n          tsconfigProject.projectService.watchWildcards(\n            childConfigName,\n            configFileExistenceInfo,\n            tsconfigProject\n          );\n        }\n        return;\n      }\n      const result = project ? updateProjectFoundUsingFind(\n        project,\n        kind,\n        info.fileName,\n        reason,\n        reloadedProjects\n      ) : tsconfigProject.projectService.findCreateOrReloadConfiguredProject(\n        childConfigName,\n        kind,\n        reason,\n        allowDeferredClosed,\n        info.fileName,\n        reloadedProjects\n      );\n      if (!result) {\n        Debug.assert(kind === 3 /* CreateReplay */);\n        return void 0;\n      }\n      seenProjects.set(result.project, optimizedKind);\n      if (result.sentConfigFileDiag) sentConfigDiag.add(result.project);\n      return isDefaultProject(result.project, tsconfigProject);\n    }\n    function isDefaultProject(project, tsconfigProject) {\n      if (seenProjects.get(project) === kind) return;\n      seenProjects.set(project, kind);\n      const scriptInfo = infoIsOpenScriptInfo ? info : project.projectService.getScriptInfo(info.fileName);\n      const projectWithInfo = scriptInfo && project.containsScriptInfo(scriptInfo);\n      if (projectWithInfo && !project.isSourceOfProjectReferenceRedirect(scriptInfo.path)) {\n        tsconfigOfDefault = tsconfigProject;\n        return defaultProject = project;\n      }\n      if (!possiblyDefault && infoIsOpenScriptInfo && projectWithInfo) {\n        tsconfigOfPossiblyDefault = tsconfigProject;\n        possiblyDefault = project;\n      }\n    }\n    function isDefaultProjectOptimized(result, tsconfigProject) {\n      if (result.sentConfigFileDiag) sentConfigDiag.add(result.project);\n      return result.configFileExistenceInfo ? isDefaultConfigFileExistenceInfo(\n        result.configFileExistenceInfo,\n        result.project,\n        toNormalizedPath(result.project.getConfigFilePath()),\n        result.reason,\n        result.project,\n        result.project.canonicalConfigFilePath\n      ) : isDefaultProject(result.project, tsconfigProject);\n    }\n    function tryFindDefaultConfiguredProjectFromReferences(project) {\n      return project.parsedCommandLine && forEachResolvedProjectReferenceProjectLoad(\n        project,\n        project.parsedCommandLine,\n        isDefaultConfigFileExistenceInfo,\n        optimizedKind,\n        referencedProjectReason(project),\n        allowDeferredClosed,\n        reloadedProjects\n      );\n    }\n    function tryFindDefaultConfiguredProjectFromAncestor(project) {\n      return infoIsOpenScriptInfo ? forEachAncestorProjectLoad(\n        // If not in referenced projects, try ancestors and its references\n        info,\n        project,\n        tryFindDefaultConfiguredProject,\n        optimizedKind,\n        `Creating possible configured project for ${info.fileName} to open`,\n        allowDeferredClosed,\n        reloadedProjects,\n        /*searchOnlyPotentialSolution*/\n        false\n      ) : void 0;\n    }\n  }\n  tryFindDefaultConfiguredProjectAndLoadAncestorsForOpenScriptInfo(info, kind, reloadedProjects, delayReloadedConfiguredProjects) {\n    const allowDeferredClosed = kind === 1 /* Find */;\n    const result = this.tryFindDefaultConfiguredProjectForOpenScriptInfo(\n      info,\n      kind,\n      allowDeferredClosed,\n      reloadedProjects\n    );\n    if (!result) return;\n    const { defaultProject, tsconfigProject, seenProjects } = result;\n    if (defaultProject) {\n      forEachAncestorProjectLoad(\n        info,\n        tsconfigProject,\n        (ancestor) => {\n          seenProjects.set(ancestor.project, kind);\n        },\n        kind,\n        `Creating project possibly referencing default composite project ${defaultProject.getProjectName()} of open file ${info.fileName}`,\n        allowDeferredClosed,\n        reloadedProjects,\n        /*searchOnlyPotentialSolution*/\n        true,\n        delayReloadedConfiguredProjects\n      );\n    }\n    return result;\n  }\n  /** @internal */\n  loadAncestorProjectTree(forProjects) {\n    forProjects ?? (forProjects = new Set(\n      mapDefinedIterator(this.configuredProjects.entries(), ([key, project]) => !project.initialLoadPending ? key : void 0)\n    ));\n    const seenProjects = /* @__PURE__ */ new Set();\n    const currentConfiguredProjects = arrayFrom(this.configuredProjects.values());\n    for (const project of currentConfiguredProjects) {\n      if (forEachPotentialProjectReference(project, (potentialRefPath) => forProjects.has(potentialRefPath))) {\n        updateProjectIfDirty(project);\n      }\n      this.ensureProjectChildren(project, forProjects, seenProjects);\n    }\n  }\n  ensureProjectChildren(project, forProjects, seenProjects) {\n    var _a;\n    if (!tryAddToSet(seenProjects, project.canonicalConfigFilePath)) return;\n    if (project.getCompilerOptions().disableReferencedProjectLoad) return;\n    const children = (_a = project.getCurrentProgram()) == null ? void 0 : _a.getResolvedProjectReferences();\n    if (!children) return;\n    for (const child of children) {\n      if (!child) continue;\n      const referencedProject = forEachResolvedProjectReference(child.references, (ref) => forProjects.has(ref.sourceFile.path) ? ref : void 0);\n      if (!referencedProject) continue;\n      const configFileName = toNormalizedPath(child.sourceFile.fileName);\n      const childProject = this.findConfiguredProjectByProjectName(configFileName) ?? this.createConfiguredProject(\n        configFileName,\n        `Creating project referenced by : ${project.projectName} as it references project ${referencedProject.sourceFile.fileName}`\n      );\n      updateProjectIfDirty(childProject);\n      this.ensureProjectChildren(childProject, forProjects, seenProjects);\n    }\n  }\n  cleanupConfiguredProjects(toRetainConfiguredProjects, externalProjectsRetainingConfiguredProjects, openFilesWithRetainedConfiguredProject) {\n    this.getOrphanConfiguredProjects(\n      toRetainConfiguredProjects,\n      openFilesWithRetainedConfiguredProject,\n      externalProjectsRetainingConfiguredProjects\n    ).forEach((project) => this.removeProject(project));\n  }\n  cleanupProjectsAndScriptInfos(toRetainConfiguredProjects, openFilesWithRetainedConfiguredProject, externalProjectsRetainingConfiguredProjects) {\n    this.cleanupConfiguredProjects(\n      toRetainConfiguredProjects,\n      externalProjectsRetainingConfiguredProjects,\n      openFilesWithRetainedConfiguredProject\n    );\n    for (const inferredProject of this.inferredProjects.slice()) {\n      if (inferredProject.isOrphan()) {\n        this.removeProject(inferredProject);\n      }\n    }\n    this.removeOrphanScriptInfos();\n  }\n  tryInvokeWildCardDirectories(info) {\n    this.configFileExistenceInfoCache.forEach((configFileExistenceInfo, config) => {\n      var _a, _b;\n      if (!((_a = configFileExistenceInfo.config) == null ? void 0 : _a.parsedCommandLine) || contains(\n        configFileExistenceInfo.config.parsedCommandLine.fileNames,\n        info.fileName,\n        !this.host.useCaseSensitiveFileNames ? equateStringsCaseInsensitive : equateStringsCaseSensitive\n      )) {\n        return;\n      }\n      (_b = configFileExistenceInfo.config.watchedDirectories) == null ? void 0 : _b.forEach((watcher, directory) => {\n        if (containsPath(directory, info.fileName, !this.host.useCaseSensitiveFileNames)) {\n          this.logger.info(`Invoking ${config}:: wildcard for open scriptInfo:: ${info.fileName}`);\n          this.onWildCardDirectoryWatcherInvoke(\n            directory,\n            config,\n            configFileExistenceInfo.config,\n            watcher.watcher,\n            info.fileName\n          );\n        }\n      });\n    });\n  }\n  openClientFileWithNormalizedPath(fileName, fileContent, scriptKind, hasMixedContent, projectRootPath) {\n    const existing = this.getScriptInfoForPath(normalizedPathToPath(\n      fileName,\n      projectRootPath ? this.getNormalizedAbsolutePath(projectRootPath) : this.currentDirectory,\n      this.toCanonicalFileName\n    ));\n    const info = this.getOrCreateOpenScriptInfo(fileName, fileContent, scriptKind, hasMixedContent, projectRootPath);\n    if (!existing && info && !info.isDynamic) this.tryInvokeWildCardDirectories(info);\n    const { retainProjects, ...result } = this.assignProjectToOpenedScriptInfo(info);\n    this.cleanupProjectsAndScriptInfos(\n      retainProjects,\n      /* @__PURE__ */ new Set([info.path]),\n      /*externalProjectsRetainingConfiguredProjects*/\n      void 0\n    );\n    this.telemetryOnOpenFile(info);\n    this.printProjects();\n    return result;\n  }\n  /** @internal */\n  getOrphanConfiguredProjects(toRetainConfiguredProjects, openFilesWithRetainedConfiguredProject, externalProjectsRetainingConfiguredProjects) {\n    const toRemoveConfiguredProjects = new Set(this.configuredProjects.values());\n    const markOriginalProjectsAsUsed = (project) => {\n      if (project.originalConfiguredProjects && (isConfiguredProject(project) || !project.isOrphan())) {\n        project.originalConfiguredProjects.forEach(\n          (_value, configuredProjectPath) => {\n            const project2 = this.getConfiguredProjectByCanonicalConfigFilePath(configuredProjectPath);\n            return project2 && retainConfiguredProject(project2);\n          }\n        );\n      }\n    };\n    toRetainConfiguredProjects == null ? void 0 : toRetainConfiguredProjects.forEach((_, project) => retainConfiguredProject(project));\n    if (!toRemoveConfiguredProjects.size) return toRemoveConfiguredProjects;\n    this.inferredProjects.forEach(markOriginalProjectsAsUsed);\n    this.externalProjects.forEach(markOriginalProjectsAsUsed);\n    this.externalProjectToConfiguredProjectMap.forEach((projects, externalProjectName) => {\n      if (!(externalProjectsRetainingConfiguredProjects == null ? void 0 : externalProjectsRetainingConfiguredProjects.has(externalProjectName))) {\n        projects.forEach(retainConfiguredProject);\n      }\n    });\n    if (!toRemoveConfiguredProjects.size) return toRemoveConfiguredProjects;\n    forEachEntry(this.openFiles, (_projectRootPath, path) => {\n      if (openFilesWithRetainedConfiguredProject == null ? void 0 : openFilesWithRetainedConfiguredProject.has(path)) return;\n      const info = this.getScriptInfoForPath(path);\n      if (find(info.containingProjects, isExternalProject)) return;\n      const result = this.tryFindDefaultConfiguredProjectAndLoadAncestorsForOpenScriptInfo(\n        info,\n        1 /* Find */\n      );\n      if (result == null ? void 0 : result.defaultProject) {\n        result == null ? void 0 : result.seenProjects.forEach((_, project) => retainConfiguredProject(project));\n        if (!toRemoveConfiguredProjects.size) return toRemoveConfiguredProjects;\n      }\n    });\n    if (!toRemoveConfiguredProjects.size) return toRemoveConfiguredProjects;\n    forEachEntry(this.configuredProjects, (project) => {\n      if (toRemoveConfiguredProjects.has(project)) {\n        if (isPendingUpdate(project) || forEachReferencedProject(project, isRetained)) {\n          retainConfiguredProject(project);\n          if (!toRemoveConfiguredProjects.size) return toRemoveConfiguredProjects;\n        }\n      }\n    });\n    return toRemoveConfiguredProjects;\n    function isRetained(project) {\n      return !toRemoveConfiguredProjects.has(project) || isPendingUpdate(project);\n    }\n    function isPendingUpdate(project) {\n      var _a, _b;\n      return (project.deferredClose || project.projectService.hasPendingProjectUpdate(project)) && !!((_b = (_a = project.projectService.configFileExistenceInfoCache.get(project.canonicalConfigFilePath)) == null ? void 0 : _a.openFilesImpactedByConfigFile) == null ? void 0 : _b.size);\n    }\n    function retainConfiguredProject(project) {\n      if (!toRemoveConfiguredProjects.delete(project)) return;\n      markOriginalProjectsAsUsed(project);\n      forEachReferencedProject(project, retainConfiguredProject);\n    }\n  }\n  removeOrphanScriptInfos() {\n    const toRemoveScriptInfos = new Map(this.filenameToScriptInfo);\n    this.filenameToScriptInfo.forEach((info) => {\n      if (info.deferredDelete) return;\n      if (!info.isScriptOpen() && info.isOrphan() && !scriptInfoIsContainedByDeferredClosedProject(info) && !scriptInfoIsContainedByBackgroundProject(info)) {\n        if (!info.sourceMapFilePath) return;\n        let sourceInfos;\n        if (isString(info.sourceMapFilePath)) {\n          const sourceMapInfo = this.filenameToScriptInfo.get(info.sourceMapFilePath);\n          sourceInfos = sourceMapInfo == null ? void 0 : sourceMapInfo.sourceInfos;\n        } else {\n          sourceInfos = info.sourceMapFilePath.sourceInfos;\n        }\n        if (!sourceInfos) return;\n        if (!forEachKey(sourceInfos, (path) => {\n          const info2 = this.getScriptInfoForPath(path);\n          return !!info2 && (info2.isScriptOpen() || !info2.isOrphan());\n        })) {\n          return;\n        }\n      }\n      toRemoveScriptInfos.delete(info.path);\n      if (info.sourceMapFilePath) {\n        let sourceInfos;\n        if (isString(info.sourceMapFilePath)) {\n          const sourceMapInfo = this.filenameToScriptInfo.get(info.sourceMapFilePath);\n          if (sourceMapInfo == null ? void 0 : sourceMapInfo.deferredDelete) {\n            info.sourceMapFilePath = {\n              watcher: this.addMissingSourceMapFile(sourceMapInfo.fileName, info.path),\n              sourceInfos: sourceMapInfo.sourceInfos\n            };\n          } else {\n            toRemoveScriptInfos.delete(info.sourceMapFilePath);\n          }\n          sourceInfos = sourceMapInfo == null ? void 0 : sourceMapInfo.sourceInfos;\n        } else {\n          sourceInfos = info.sourceMapFilePath.sourceInfos;\n        }\n        if (sourceInfos) {\n          sourceInfos.forEach((_value, path) => toRemoveScriptInfos.delete(path));\n        }\n      }\n    });\n    toRemoveScriptInfos.forEach((info) => this.deleteScriptInfo(info));\n  }\n  telemetryOnOpenFile(scriptInfo) {\n    if (this.serverMode !== 0 /* Semantic */ || !this.eventHandler || !scriptInfo.isJavaScript() || !addToSeen(this.allJsFilesForOpenFileTelemetry, scriptInfo.path)) {\n      return;\n    }\n    const project = this.ensureDefaultProjectForFile(scriptInfo);\n    if (!project.languageServiceEnabled) {\n      return;\n    }\n    const sourceFile = project.getSourceFile(scriptInfo.path);\n    const checkJs = !!sourceFile && !!sourceFile.checkJsDirective;\n    this.eventHandler({ eventName: OpenFileInfoTelemetryEvent, data: { info: { checkJs } } });\n  }\n  closeClientFile(uncheckedFileName, skipAssignOrphanScriptInfosToInferredProject) {\n    const info = this.getScriptInfoForNormalizedPath(toNormalizedPath(uncheckedFileName));\n    const result = info ? this.closeOpenFile(info, skipAssignOrphanScriptInfosToInferredProject) : false;\n    if (!skipAssignOrphanScriptInfosToInferredProject) {\n      this.printProjects();\n    }\n    return result;\n  }\n  collectChanges(lastKnownProjectVersions, currentProjects, includeProjectReferenceRedirectInfo, result) {\n    for (const proj of currentProjects) {\n      const knownProject = find(lastKnownProjectVersions, (p) => p.projectName === proj.getProjectName());\n      result.push(proj.getChangesSinceVersion(knownProject && knownProject.version, includeProjectReferenceRedirectInfo));\n    }\n  }\n  /** @internal */\n  synchronizeProjectList(knownProjects, includeProjectReferenceRedirectInfo) {\n    const files = [];\n    this.collectChanges(knownProjects, this.externalProjects, includeProjectReferenceRedirectInfo, files);\n    this.collectChanges(knownProjects, mapDefinedIterator(this.configuredProjects.values(), (p) => p.deferredClose ? void 0 : p), includeProjectReferenceRedirectInfo, files);\n    this.collectChanges(knownProjects, this.inferredProjects, includeProjectReferenceRedirectInfo, files);\n    return files;\n  }\n  /** @internal */\n  applyChangesInOpenFiles(openFiles, changedFiles, closedFiles) {\n    let existingOpenScriptInfos;\n    let openScriptInfos;\n    let assignOrphanScriptInfosToInferredProject = false;\n    if (openFiles) {\n      for (const file of openFiles) {\n        (existingOpenScriptInfos ?? (existingOpenScriptInfos = [])).push(this.getScriptInfoForPath(normalizedPathToPath(\n          toNormalizedPath(file.fileName),\n          file.projectRootPath ? this.getNormalizedAbsolutePath(file.projectRootPath) : this.currentDirectory,\n          this.toCanonicalFileName\n        )));\n        const info = this.getOrCreateOpenScriptInfo(\n          toNormalizedPath(file.fileName),\n          file.content,\n          tryConvertScriptKindName(file.scriptKind),\n          file.hasMixedContent,\n          file.projectRootPath ? toNormalizedPath(file.projectRootPath) : void 0\n        );\n        (openScriptInfos || (openScriptInfos = [])).push(info);\n      }\n    }\n    if (changedFiles) {\n      for (const file of changedFiles) {\n        const scriptInfo = this.getScriptInfo(file.fileName);\n        Debug.assert(!!scriptInfo);\n        this.applyChangesToFile(scriptInfo, file.changes);\n      }\n    }\n    if (closedFiles) {\n      for (const file of closedFiles) {\n        assignOrphanScriptInfosToInferredProject = this.closeClientFile(\n          file,\n          /*skipAssignOrphanScriptInfosToInferredProject*/\n          true\n        ) || assignOrphanScriptInfosToInferredProject;\n      }\n    }\n    let retainProjects;\n    forEach(\n      existingOpenScriptInfos,\n      (existing, index) => !existing && openScriptInfos[index] && !openScriptInfos[index].isDynamic ? this.tryInvokeWildCardDirectories(openScriptInfos[index]) : void 0\n    );\n    openScriptInfos == null ? void 0 : openScriptInfos.forEach(\n      (info) => {\n        var _a;\n        return (_a = this.assignProjectToOpenedScriptInfo(info).retainProjects) == null ? void 0 : _a.forEach(\n          (kind, p) => (retainProjects ?? (retainProjects = /* @__PURE__ */ new Map())).set(p, kind)\n        );\n      }\n    );\n    if (assignOrphanScriptInfosToInferredProject) {\n      this.assignOrphanScriptInfosToInferredProject();\n    }\n    if (openScriptInfos) {\n      this.cleanupProjectsAndScriptInfos(\n        retainProjects,\n        new Set(openScriptInfos.map((info) => info.path)),\n        /*externalProjectsRetainingConfiguredProjects*/\n        void 0\n      );\n      openScriptInfos.forEach((info) => this.telemetryOnOpenFile(info));\n      this.printProjects();\n    } else if (length(closedFiles)) {\n      this.printProjects();\n    }\n  }\n  /** @internal */\n  applyChangesToFile(scriptInfo, changes) {\n    for (const change of changes) {\n      scriptInfo.editContent(change.span.start, change.span.start + change.span.length, change.newText);\n    }\n  }\n  // eslint-disable-line @typescript-eslint/unified-signatures\n  closeExternalProject(uncheckedFileName, cleanupAfter) {\n    const fileName = toNormalizedPath(uncheckedFileName);\n    const projects = this.externalProjectToConfiguredProjectMap.get(fileName);\n    if (projects) {\n      this.externalProjectToConfiguredProjectMap.delete(fileName);\n    } else {\n      const externalProject = this.findExternalProjectByProjectName(uncheckedFileName);\n      if (externalProject) {\n        this.removeProject(externalProject);\n      }\n    }\n    if (cleanupAfter) {\n      this.cleanupConfiguredProjects();\n      this.printProjects();\n    }\n  }\n  openExternalProjects(projects) {\n    const projectsToClose = new Set(this.externalProjects.map((p) => p.getProjectName()));\n    this.externalProjectToConfiguredProjectMap.forEach((_, externalProjectName) => projectsToClose.add(externalProjectName));\n    for (const externalProject of projects) {\n      this.openExternalProject(\n        externalProject,\n        /*cleanupAfter*/\n        false\n      );\n      projectsToClose.delete(externalProject.projectFileName);\n    }\n    projectsToClose.forEach((externalProjectName) => this.closeExternalProject(\n      externalProjectName,\n      /*cleanupAfter*/\n      false\n    ));\n    this.cleanupConfiguredProjects();\n    this.printProjects();\n  }\n  static escapeFilenameForRegex(filename) {\n    return filename.replace(this.filenameEscapeRegexp, \"\\\\$&\");\n  }\n  resetSafeList() {\n    this.safelist = defaultTypeSafeList;\n  }\n  applySafeList(proj) {\n    const typeAcquisition = proj.typeAcquisition;\n    Debug.assert(!!typeAcquisition, \"proj.typeAcquisition should be set by now\");\n    const result = this.applySafeListWorker(proj, proj.rootFiles, typeAcquisition);\n    return (result == null ? void 0 : result.excludedFiles) ?? [];\n  }\n  applySafeListWorker(proj, rootFiles, typeAcquisition) {\n    if (typeAcquisition.enable === false || typeAcquisition.disableFilenameBasedTypeAcquisition) {\n      return void 0;\n    }\n    const typeAcqInclude = typeAcquisition.include || (typeAcquisition.include = []);\n    const excludeRules = [];\n    const normalizedNames = rootFiles.map((f) => normalizeSlashes(f.fileName));\n    for (const name of Object.keys(this.safelist)) {\n      const rule2 = this.safelist[name];\n      for (const root of normalizedNames) {\n        if (rule2.match.test(root)) {\n          this.logger.info(`Excluding files based on rule ${name} matching file '${root}'`);\n          if (rule2.types) {\n            for (const type of rule2.types) {\n              if (!typeAcqInclude.includes(type)) {\n                typeAcqInclude.push(type);\n              }\n            }\n          }\n          if (rule2.exclude) {\n            for (const exclude of rule2.exclude) {\n              const processedRule = root.replace(rule2.match, (...groups) => {\n                return exclude.map((groupNumberOrString) => {\n                  if (typeof groupNumberOrString === \"number\") {\n                    if (!isString(groups[groupNumberOrString])) {\n                      this.logger.info(`Incorrect RegExp specification in safelist rule ${name} - not enough groups`);\n                      return \"\\\\*\";\n                    }\n                    return _ProjectService.escapeFilenameForRegex(groups[groupNumberOrString]);\n                  }\n                  return groupNumberOrString;\n                }).join(\"\");\n              });\n              if (!excludeRules.includes(processedRule)) {\n                excludeRules.push(processedRule);\n              }\n            }\n          } else {\n            const escaped = _ProjectService.escapeFilenameForRegex(root);\n            if (!excludeRules.includes(escaped)) {\n              excludeRules.push(escaped);\n            }\n          }\n        }\n      }\n    }\n    const excludeRegexes = excludeRules.map((e) => new RegExp(e, \"i\"));\n    let filesToKeep;\n    let excludedFiles;\n    for (let i = 0; i < rootFiles.length; i++) {\n      if (excludeRegexes.some((re) => re.test(normalizedNames[i]))) {\n        addExcludedFile(i);\n      } else {\n        if (typeAcquisition.enable) {\n          const baseName = getBaseFileName(toFileNameLowerCase(normalizedNames[i]));\n          if (fileExtensionIs(baseName, \"js\")) {\n            const inferredTypingName = removeFileExtension(baseName);\n            const cleanedTypingName = removeMinAndVersionNumbers(inferredTypingName);\n            const typeName = this.legacySafelist.get(cleanedTypingName);\n            if (typeName !== void 0) {\n              this.logger.info(`Excluded '${normalizedNames[i]}' because it matched ${cleanedTypingName} from the legacy safelist`);\n              addExcludedFile(i);\n              if (!typeAcqInclude.includes(typeName)) {\n                typeAcqInclude.push(typeName);\n              }\n              continue;\n            }\n          }\n        }\n        if (/^.+[.-]min\\.js$/.test(normalizedNames[i])) {\n          addExcludedFile(i);\n        } else {\n          filesToKeep == null ? void 0 : filesToKeep.push(rootFiles[i]);\n        }\n      }\n    }\n    return excludedFiles ? {\n      rootFiles: filesToKeep,\n      excludedFiles\n    } : void 0;\n    function addExcludedFile(index) {\n      if (!excludedFiles) {\n        Debug.assert(!filesToKeep);\n        filesToKeep = rootFiles.slice(0, index);\n        excludedFiles = [];\n      }\n      excludedFiles.push(normalizedNames[index]);\n    }\n  }\n  // eslint-disable-line @typescript-eslint/unified-signatures\n  openExternalProject(proj, cleanupAfter) {\n    const existingExternalProject = this.findExternalProjectByProjectName(proj.projectFileName);\n    let configuredProjects;\n    let rootFiles = [];\n    for (const file of proj.rootFiles) {\n      const normalized = toNormalizedPath(file.fileName);\n      if (getBaseConfigFileName(normalized)) {\n        if (this.serverMode === 0 /* Semantic */ && this.host.fileExists(normalized)) {\n          let project = this.findConfiguredProjectByProjectName(normalized);\n          if (!project) {\n            project = this.createConfiguredProject(normalized, `Creating configured project in external project: ${proj.projectFileName}`);\n            if (!this.getHostPreferences().lazyConfiguredProjectsFromExternalProject) project.updateGraph();\n          }\n          (configuredProjects ?? (configuredProjects = /* @__PURE__ */ new Set())).add(project);\n          Debug.assert(!project.isClosed());\n        }\n      } else {\n        rootFiles.push(file);\n      }\n    }\n    if (configuredProjects) {\n      this.externalProjectToConfiguredProjectMap.set(proj.projectFileName, configuredProjects);\n      if (existingExternalProject) this.removeProject(existingExternalProject);\n    } else {\n      this.externalProjectToConfiguredProjectMap.delete(proj.projectFileName);\n      const typeAcquisition = proj.typeAcquisition || {};\n      typeAcquisition.include = typeAcquisition.include || [];\n      typeAcquisition.exclude = typeAcquisition.exclude || [];\n      if (typeAcquisition.enable === void 0) {\n        typeAcquisition.enable = hasNoTypeScriptSource(rootFiles.map((f) => f.fileName));\n      }\n      const excludeResult = this.applySafeListWorker(proj, rootFiles, typeAcquisition);\n      const excludedFiles = (excludeResult == null ? void 0 : excludeResult.excludedFiles) ?? [];\n      rootFiles = (excludeResult == null ? void 0 : excludeResult.rootFiles) ?? rootFiles;\n      if (existingExternalProject) {\n        existingExternalProject.excludedFiles = excludedFiles;\n        const compilerOptions = convertCompilerOptions(proj.options);\n        const watchOptionsAndErrors = convertWatchOptions(proj.options, existingExternalProject.getCurrentDirectory());\n        const lastFileExceededProgramSize = this.getFilenameForExceededTotalSizeLimitForNonTsFiles(proj.projectFileName, compilerOptions, rootFiles, externalFilePropertyReader);\n        if (lastFileExceededProgramSize) {\n          existingExternalProject.disableLanguageService(lastFileExceededProgramSize);\n        } else {\n          existingExternalProject.enableLanguageService();\n        }\n        existingExternalProject.setProjectErrors(watchOptionsAndErrors == null ? void 0 : watchOptionsAndErrors.errors);\n        this.updateRootAndOptionsOfNonInferredProject(existingExternalProject, rootFiles, externalFilePropertyReader, compilerOptions, typeAcquisition, proj.options.compileOnSave, watchOptionsAndErrors == null ? void 0 : watchOptionsAndErrors.watchOptions);\n        existingExternalProject.updateGraph();\n      } else {\n        const project = this.createExternalProject(proj.projectFileName, rootFiles, proj.options, typeAcquisition, excludedFiles);\n        project.updateGraph();\n      }\n    }\n    if (cleanupAfter) {\n      this.cleanupConfiguredProjects(\n        configuredProjects,\n        /* @__PURE__ */ new Set([proj.projectFileName])\n      );\n      this.printProjects();\n    }\n  }\n  hasDeferredExtension() {\n    for (const extension of this.hostConfiguration.extraFileExtensions) {\n      if (extension.scriptKind === 7 /* Deferred */) {\n        return true;\n      }\n    }\n    return false;\n  }\n  /**\n   * Performs the initial steps of enabling a plugin by finding and instantiating the module for a plugin either asynchronously or synchronously\n   * @internal\n   */\n  requestEnablePlugin(project, pluginConfigEntry, searchPaths) {\n    if (!this.host.importPlugin && !this.host.require) {\n      this.logger.info(\"Plugins were requested but not running in environment that supports 'require'. Nothing will be loaded\");\n      return;\n    }\n    this.logger.info(`Enabling plugin ${pluginConfigEntry.name} from candidate paths: ${searchPaths.join(\",\")}`);\n    if (!pluginConfigEntry.name || isExternalModuleNameRelative(pluginConfigEntry.name) || /[\\\\/]\\.\\.?(?:$|[\\\\/])/.test(pluginConfigEntry.name)) {\n      this.logger.info(`Skipped loading plugin ${pluginConfigEntry.name || JSON.stringify(pluginConfigEntry)} because only package name is allowed plugin name`);\n      return;\n    }\n    if (this.host.importPlugin) {\n      const importPromise = Project2.importServicePluginAsync(\n        pluginConfigEntry,\n        searchPaths,\n        this.host,\n        (s) => this.logger.info(s)\n      );\n      this.pendingPluginEnablements ?? (this.pendingPluginEnablements = /* @__PURE__ */ new Map());\n      let promises = this.pendingPluginEnablements.get(project);\n      if (!promises) this.pendingPluginEnablements.set(project, promises = []);\n      promises.push(importPromise);\n      return;\n    }\n    this.endEnablePlugin(\n      project,\n      Project2.importServicePluginSync(\n        pluginConfigEntry,\n        searchPaths,\n        this.host,\n        (s) => this.logger.info(s)\n      )\n    );\n  }\n  /**\n   * Performs the remaining steps of enabling a plugin after its module has been instantiated.\n   */\n  endEnablePlugin(project, { pluginConfigEntry, resolvedModule, errorLogs }) {\n    var _a;\n    if (resolvedModule) {\n      const configurationOverride = (_a = this.currentPluginConfigOverrides) == null ? void 0 : _a.get(pluginConfigEntry.name);\n      if (configurationOverride) {\n        const pluginName = pluginConfigEntry.name;\n        pluginConfigEntry = configurationOverride;\n        pluginConfigEntry.name = pluginName;\n      }\n      project.enableProxy(resolvedModule, pluginConfigEntry);\n    } else {\n      forEach(errorLogs, (message) => this.logger.info(message));\n      this.logger.info(`Couldn't find ${pluginConfigEntry.name}`);\n    }\n  }\n  /** @internal */\n  hasNewPluginEnablementRequests() {\n    return !!this.pendingPluginEnablements;\n  }\n  /** @internal */\n  hasPendingPluginEnablements() {\n    return !!this.currentPluginEnablementPromise;\n  }\n  /**\n   * Waits for any ongoing plugin enablement requests to complete.\n   *\n   * @internal\n   */\n  async waitForPendingPlugins() {\n    while (this.currentPluginEnablementPromise) {\n      await this.currentPluginEnablementPromise;\n    }\n  }\n  /**\n   * Starts enabling any requested plugins without waiting for the result.\n   *\n   * @internal\n   */\n  enableRequestedPlugins() {\n    if (this.pendingPluginEnablements) {\n      void this.enableRequestedPluginsAsync();\n    }\n  }\n  async enableRequestedPluginsAsync() {\n    if (this.currentPluginEnablementPromise) {\n      await this.waitForPendingPlugins();\n    }\n    if (!this.pendingPluginEnablements) {\n      return;\n    }\n    const entries = arrayFrom(this.pendingPluginEnablements.entries());\n    this.pendingPluginEnablements = void 0;\n    this.currentPluginEnablementPromise = this.enableRequestedPluginsWorker(entries);\n    await this.currentPluginEnablementPromise;\n  }\n  async enableRequestedPluginsWorker(pendingPlugins) {\n    Debug.assert(this.currentPluginEnablementPromise === void 0);\n    let sendProjectsUpdatedInBackgroundEvent = false;\n    await Promise.all(map(pendingPlugins, async ([project, promises]) => {\n      const results = await Promise.all(promises);\n      if (project.isClosed() || isProjectDeferredClose(project)) {\n        this.logger.info(`Cancelling plugin enabling for ${project.getProjectName()} as it is ${project.isClosed() ? \"closed\" : \"deferred close\"}`);\n        return;\n      }\n      sendProjectsUpdatedInBackgroundEvent = true;\n      for (const result of results) {\n        this.endEnablePlugin(project, result);\n      }\n      this.delayUpdateProjectGraph(project);\n    }));\n    this.currentPluginEnablementPromise = void 0;\n    if (sendProjectsUpdatedInBackgroundEvent) this.sendProjectsUpdatedInBackgroundEvent();\n  }\n  configurePlugin(args) {\n    this.forEachEnabledProject((project) => project.onPluginConfigurationChanged(args.pluginName, args.configuration));\n    this.currentPluginConfigOverrides = this.currentPluginConfigOverrides || /* @__PURE__ */ new Map();\n    this.currentPluginConfigOverrides.set(args.pluginName, args.configuration);\n  }\n  /** @internal */\n  getPackageJsonsVisibleToFile(fileName, project, rootDir) {\n    const packageJsonCache = this.packageJsonCache;\n    const rootPath = rootDir && this.toPath(rootDir);\n    const result = [];\n    const processDirectory = (directory) => {\n      switch (packageJsonCache.directoryHasPackageJson(directory)) {\n        // Sync and check same directory again\n        case 3 /* Maybe */:\n          packageJsonCache.searchDirectoryAndAncestors(directory, project);\n          return processDirectory(directory);\n        // Check package.json\n        case -1 /* True */:\n          const packageJsonFileName = combinePaths(directory, \"package.json\");\n          this.watchPackageJsonFile(packageJsonFileName, this.toPath(packageJsonFileName), project);\n          const info = packageJsonCache.getInDirectory(directory);\n          if (info) result.push(info);\n      }\n      if (rootPath && rootPath === directory) {\n        return true;\n      }\n    };\n    forEachAncestorDirectoryStoppingAtGlobalCache(\n      project,\n      getDirectoryPath(fileName),\n      processDirectory\n    );\n    return result;\n  }\n  /** @internal */\n  getNearestAncestorDirectoryWithPackageJson(fileName, project) {\n    return forEachAncestorDirectoryStoppingAtGlobalCache(\n      project,\n      fileName,\n      (directory) => {\n        switch (this.packageJsonCache.directoryHasPackageJson(directory)) {\n          case -1 /* True */:\n            return directory;\n          case 0 /* False */:\n            return void 0;\n          case 3 /* Maybe */:\n            return this.host.fileExists(combinePaths(directory, \"package.json\")) ? directory : void 0;\n        }\n      }\n    );\n  }\n  watchPackageJsonFile(file, path, project) {\n    Debug.assert(project !== void 0);\n    let result = (this.packageJsonFilesMap ?? (this.packageJsonFilesMap = /* @__PURE__ */ new Map())).get(path);\n    if (!result) {\n      let watcher = this.watchFactory.watchFile(\n        file,\n        (fileName, eventKind) => {\n          switch (eventKind) {\n            case 0 /* Created */:\n            case 1 /* Changed */:\n              this.packageJsonCache.addOrUpdate(fileName, path);\n              this.onPackageJsonChange(result);\n              break;\n            case 2 /* Deleted */:\n              this.packageJsonCache.delete(path);\n              this.onPackageJsonChange(result);\n              result.projects.clear();\n              result.close();\n          }\n        },\n        250 /* Low */,\n        this.hostConfiguration.watchOptions,\n        WatchType.PackageJson\n      );\n      result = {\n        projects: /* @__PURE__ */ new Set(),\n        close: () => {\n          var _a;\n          if (result.projects.size || !watcher) return;\n          watcher.close();\n          watcher = void 0;\n          (_a = this.packageJsonFilesMap) == null ? void 0 : _a.delete(path);\n          this.packageJsonCache.invalidate(path);\n        }\n      };\n      this.packageJsonFilesMap.set(path, result);\n    }\n    result.projects.add(project);\n    (project.packageJsonWatches ?? (project.packageJsonWatches = /* @__PURE__ */ new Set())).add(result);\n  }\n  onPackageJsonChange(result) {\n    result.projects.forEach((project) => {\n      var _a;\n      return (_a = project.onPackageJsonChange) == null ? void 0 : _a.call(project);\n    });\n  }\n  /** @internal */\n  includePackageJsonAutoImports() {\n    switch (this.hostConfiguration.preferences.includePackageJsonAutoImports) {\n      case \"on\":\n        return 1 /* On */;\n      case \"off\":\n        return 0 /* Off */;\n      default:\n        return 2 /* Auto */;\n    }\n  }\n  /** @internal */\n  getIncompleteCompletionsCache() {\n    return this.incompleteCompletionsCache || (this.incompleteCompletionsCache = createIncompleteCompletionsCache());\n  }\n};\n/** Makes a filename safe to insert in a RegExp */\n_ProjectService.filenameEscapeRegexp = /[-/\\\\^$*+?.()|[\\]{}]/g;\nvar ProjectService2 = _ProjectService;\nfunction createIncompleteCompletionsCache() {\n  let info;\n  return {\n    get() {\n      return info;\n    },\n    set(newInfo) {\n      info = newInfo;\n    },\n    clear() {\n      info = void 0;\n    }\n  };\n}\nfunction isConfigFile(config) {\n  return config.kind !== void 0;\n}\nfunction printProjectWithoutFileNames(project) {\n  project.print(\n    /*writeProjectFileNames*/\n    false,\n    /*writeFileExplaination*/\n    false,\n    /*writeFileVersionAndText*/\n    false\n  );\n}\n\n// src/server/moduleSpecifierCache.ts\nfunction createModuleSpecifierCache(host) {\n  let containedNodeModulesWatchers;\n  let cache;\n  let currentKey;\n  const result = {\n    get(fromFileName, toFileName2, preferences, options) {\n      if (!cache || currentKey !== key(fromFileName, preferences, options)) return void 0;\n      return cache.get(toFileName2);\n    },\n    set(fromFileName, toFileName2, preferences, options, kind, modulePaths, moduleSpecifiers) {\n      ensureCache(fromFileName, preferences, options).set(toFileName2, createInfo(\n        kind,\n        modulePaths,\n        moduleSpecifiers,\n        /*packageName*/\n        void 0,\n        /*isBlockedByPackageJsonDependencies*/\n        false\n      ));\n      if (moduleSpecifiers) {\n        for (const p of modulePaths) {\n          if (p.isInNodeModules) {\n            const nodeModulesPath = p.path.substring(0, p.path.indexOf(nodeModulesPathPart) + nodeModulesPathPart.length - 1);\n            const key2 = host.toPath(nodeModulesPath);\n            if (!(containedNodeModulesWatchers == null ? void 0 : containedNodeModulesWatchers.has(key2))) {\n              (containedNodeModulesWatchers || (containedNodeModulesWatchers = /* @__PURE__ */ new Map())).set(\n                key2,\n                host.watchNodeModulesForPackageJsonChanges(nodeModulesPath)\n              );\n            }\n          }\n        }\n      }\n    },\n    setModulePaths(fromFileName, toFileName2, preferences, options, modulePaths) {\n      const cache2 = ensureCache(fromFileName, preferences, options);\n      const info = cache2.get(toFileName2);\n      if (info) {\n        info.modulePaths = modulePaths;\n      } else {\n        cache2.set(toFileName2, createInfo(\n          /*kind*/\n          void 0,\n          modulePaths,\n          /*moduleSpecifiers*/\n          void 0,\n          /*packageName*/\n          void 0,\n          /*isBlockedByPackageJsonDependencies*/\n          void 0\n        ));\n      }\n    },\n    setBlockedByPackageJsonDependencies(fromFileName, toFileName2, preferences, options, packageName, isBlockedByPackageJsonDependencies) {\n      const cache2 = ensureCache(fromFileName, preferences, options);\n      const info = cache2.get(toFileName2);\n      if (info) {\n        info.isBlockedByPackageJsonDependencies = isBlockedByPackageJsonDependencies;\n        info.packageName = packageName;\n      } else {\n        cache2.set(toFileName2, createInfo(\n          /*kind*/\n          void 0,\n          /*modulePaths*/\n          void 0,\n          /*moduleSpecifiers*/\n          void 0,\n          packageName,\n          isBlockedByPackageJsonDependencies\n        ));\n      }\n    },\n    clear() {\n      containedNodeModulesWatchers == null ? void 0 : containedNodeModulesWatchers.forEach(closeFileWatcher);\n      cache == null ? void 0 : cache.clear();\n      containedNodeModulesWatchers == null ? void 0 : containedNodeModulesWatchers.clear();\n      currentKey = void 0;\n    },\n    count() {\n      return cache ? cache.size : 0;\n    }\n  };\n  if (Debug.isDebugging) {\n    Object.defineProperty(result, \"__cache\", { get: () => cache });\n  }\n  return result;\n  function ensureCache(fromFileName, preferences, options) {\n    const newKey = key(fromFileName, preferences, options);\n    if (cache && currentKey !== newKey) {\n      result.clear();\n    }\n    currentKey = newKey;\n    return cache || (cache = /* @__PURE__ */ new Map());\n  }\n  function key(fromFileName, preferences, options) {\n    return `${fromFileName},${preferences.importModuleSpecifierEnding},${preferences.importModuleSpecifierPreference},${options.overrideImportMode}`;\n  }\n  function createInfo(kind, modulePaths, moduleSpecifiers, packageName, isBlockedByPackageJsonDependencies) {\n    return { kind, modulePaths, moduleSpecifiers, packageName, isBlockedByPackageJsonDependencies };\n  }\n}\n\n// src/server/packageJsonCache.ts\nfunction createPackageJsonCache(host) {\n  const packageJsons = /* @__PURE__ */ new Map();\n  const directoriesWithoutPackageJson = /* @__PURE__ */ new Map();\n  return {\n    addOrUpdate,\n    invalidate,\n    delete: (fileName) => {\n      packageJsons.delete(fileName);\n      directoriesWithoutPackageJson.set(getDirectoryPath(fileName), true);\n    },\n    getInDirectory: (directory) => {\n      return packageJsons.get(host.toPath(combinePaths(directory, \"package.json\"))) || void 0;\n    },\n    directoryHasPackageJson: (directory) => directoryHasPackageJson(host.toPath(directory)),\n    searchDirectoryAndAncestors: (directory, project) => {\n      forEachAncestorDirectoryStoppingAtGlobalCache(\n        project,\n        directory,\n        (ancestor) => {\n          const ancestorPath = host.toPath(ancestor);\n          if (directoryHasPackageJson(ancestorPath) !== 3 /* Maybe */) {\n            return true;\n          }\n          const packageJsonFileName = combinePaths(ancestor, \"package.json\");\n          if (tryFileExists(host, packageJsonFileName)) {\n            addOrUpdate(packageJsonFileName, combinePaths(ancestorPath, \"package.json\"));\n          } else {\n            directoriesWithoutPackageJson.set(ancestorPath, true);\n          }\n        }\n      );\n    }\n  };\n  function addOrUpdate(fileName, path) {\n    const packageJsonInfo = Debug.checkDefined(createPackageJsonInfo(fileName, host.host));\n    packageJsons.set(path, packageJsonInfo);\n    directoriesWithoutPackageJson.delete(getDirectoryPath(path));\n  }\n  function invalidate(path) {\n    packageJsons.delete(path);\n    directoriesWithoutPackageJson.delete(getDirectoryPath(path));\n  }\n  function directoryHasPackageJson(directory) {\n    return packageJsons.has(combinePaths(directory, \"package.json\")) ? -1 /* True */ : directoriesWithoutPackageJson.has(directory) ? 0 /* False */ : 3 /* Maybe */;\n  }\n}\n\n// src/server/session.ts\nvar nullCancellationToken = {\n  isCancellationRequested: () => false,\n  setRequest: () => void 0,\n  resetRequest: () => void 0\n};\nfunction hrTimeToMilliseconds(time) {\n  const seconds = time[0];\n  const nanoseconds = time[1];\n  return (1e9 * seconds + nanoseconds) / 1e6;\n}\nfunction isDeclarationFileInJSOnlyNonConfiguredProject(project, file) {\n  if ((isInferredProject(project) || isExternalProject(project)) && project.isJsOnlyProject()) {\n    const scriptInfo = project.getScriptInfoForNormalizedPath(file);\n    return scriptInfo && !scriptInfo.isJavaScript();\n  }\n  return false;\n}\nfunction dtsChangeCanAffectEmit(compilationSettings) {\n  return getEmitDeclarations(compilationSettings) || !!compilationSettings.emitDecoratorMetadata;\n}\nfunction formatDiag(fileName, project, diag2) {\n  const scriptInfo = project.getScriptInfoForNormalizedPath(fileName);\n  return {\n    start: scriptInfo.positionToLineOffset(diag2.start),\n    end: scriptInfo.positionToLineOffset(diag2.start + diag2.length),\n    // TODO: GH#18217\n    text: flattenDiagnosticMessageText(diag2.messageText, \"\\n\"),\n    code: diag2.code,\n    category: diagnosticCategoryName(diag2),\n    reportsUnnecessary: diag2.reportsUnnecessary,\n    reportsDeprecated: diag2.reportsDeprecated,\n    source: diag2.source,\n    relatedInformation: map(diag2.relatedInformation, formatRelatedInformation)\n  };\n}\nfunction formatRelatedInformation(info) {\n  if (!info.file) {\n    return {\n      message: flattenDiagnosticMessageText(info.messageText, \"\\n\"),\n      category: diagnosticCategoryName(info),\n      code: info.code\n    };\n  }\n  return {\n    span: {\n      start: convertToLocation(getLineAndCharacterOfPosition(info.file, info.start)),\n      end: convertToLocation(getLineAndCharacterOfPosition(info.file, info.start + info.length)),\n      // TODO: GH#18217\n      file: info.file.fileName\n    },\n    message: flattenDiagnosticMessageText(info.messageText, \"\\n\"),\n    category: diagnosticCategoryName(info),\n    code: info.code\n  };\n}\nfunction convertToLocation(lineAndCharacter) {\n  return { line: lineAndCharacter.line + 1, offset: lineAndCharacter.character + 1 };\n}\nfunction formatDiagnosticToProtocol(diag2, includeFileName) {\n  const start = diag2.file && convertToLocation(getLineAndCharacterOfPosition(diag2.file, diag2.start));\n  const end = diag2.file && convertToLocation(getLineAndCharacterOfPosition(diag2.file, diag2.start + diag2.length));\n  const text = flattenDiagnosticMessageText(diag2.messageText, \"\\n\");\n  const { code, source } = diag2;\n  const category = diagnosticCategoryName(diag2);\n  const common = {\n    start,\n    end,\n    text,\n    code,\n    category,\n    reportsUnnecessary: diag2.reportsUnnecessary,\n    reportsDeprecated: diag2.reportsDeprecated,\n    source,\n    relatedInformation: map(diag2.relatedInformation, formatRelatedInformation)\n  };\n  return includeFileName ? { ...common, fileName: diag2.file && diag2.file.fileName } : common;\n}\nfunction allEditsBeforePos(edits, pos) {\n  return edits.every((edit) => textSpanEnd(edit.span) < pos);\n}\nvar CommandNames = CommandTypes;\nfunction formatMessage2(msg, logger, byteLength, newLine) {\n  const verboseLogging = logger.hasLevel(3 /* verbose */);\n  const json = JSON.stringify(msg);\n  if (verboseLogging) {\n    logger.info(`${msg.type}:${stringifyIndented(msg)}`);\n  }\n  const len = byteLength(json, \"utf8\");\n  return `Content-Length: ${1 + len}\\r\n\\r\n${json}${newLine}`;\n}\nvar MultistepOperation = class {\n  constructor(operationHost) {\n    this.operationHost = operationHost;\n  }\n  startNew(action) {\n    this.complete();\n    this.requestId = this.operationHost.getCurrentRequestId();\n    this.executeAction(action);\n  }\n  complete() {\n    if (this.requestId !== void 0) {\n      this.operationHost.sendRequestCompletedEvent(this.requestId, this.performanceData);\n      this.requestId = void 0;\n    }\n    this.setTimerHandle(void 0);\n    this.setImmediateId(void 0);\n    this.performanceData = void 0;\n  }\n  immediate(actionType, action) {\n    const requestId = this.requestId;\n    Debug.assert(requestId === this.operationHost.getCurrentRequestId(), \"immediate: incorrect request id\");\n    this.setImmediateId(\n      this.operationHost.getServerHost().setImmediate(() => {\n        this.immediateId = void 0;\n        this.operationHost.executeWithRequestId(requestId, () => this.executeAction(action), this.performanceData);\n      }, actionType)\n    );\n  }\n  delay(actionType, ms, action) {\n    const requestId = this.requestId;\n    Debug.assert(requestId === this.operationHost.getCurrentRequestId(), \"delay: incorrect request id\");\n    this.setTimerHandle(\n      this.operationHost.getServerHost().setTimeout(\n        () => {\n          this.timerHandle = void 0;\n          this.operationHost.executeWithRequestId(requestId, () => this.executeAction(action), this.performanceData);\n        },\n        ms,\n        actionType\n      )\n    );\n  }\n  executeAction(action) {\n    var _a, _b, _c, _d, _e, _f;\n    let stop = false;\n    try {\n      if (this.operationHost.isCancellationRequested()) {\n        stop = true;\n        (_a = tracing) == null ? void 0 : _a.instant(tracing.Phase.Session, \"stepCanceled\", { seq: this.requestId, early: true });\n      } else {\n        (_b = tracing) == null ? void 0 : _b.push(tracing.Phase.Session, \"stepAction\", { seq: this.requestId });\n        action(this);\n        (_c = tracing) == null ? void 0 : _c.pop();\n      }\n    } catch (e) {\n      (_d = tracing) == null ? void 0 : _d.popAll();\n      stop = true;\n      if (e instanceof OperationCanceledException) {\n        (_e = tracing) == null ? void 0 : _e.instant(tracing.Phase.Session, \"stepCanceled\", { seq: this.requestId });\n      } else {\n        (_f = tracing) == null ? void 0 : _f.instant(tracing.Phase.Session, \"stepError\", { seq: this.requestId, message: e.message });\n        this.operationHost.logError(e, `delayed processing of request ${this.requestId}`);\n      }\n    }\n    this.performanceData = this.operationHost.getPerformanceData();\n    if (stop || !this.hasPendingWork()) {\n      this.complete();\n    }\n  }\n  setTimerHandle(timerHandle) {\n    if (this.timerHandle !== void 0) {\n      this.operationHost.getServerHost().clearTimeout(this.timerHandle);\n    }\n    this.timerHandle = timerHandle;\n  }\n  setImmediateId(immediateId) {\n    if (this.immediateId !== void 0) {\n      this.operationHost.getServerHost().clearImmediate(this.immediateId);\n    }\n    this.immediateId = immediateId;\n  }\n  hasPendingWork() {\n    return !!this.timerHandle || !!this.immediateId;\n  }\n};\nfunction toEvent(eventName, body) {\n  return {\n    seq: 0,\n    type: \"event\",\n    event: eventName,\n    body\n  };\n}\nfunction combineProjectOutput(defaultValue, getValue, projects, action) {\n  const outputs = flatMapToMutable(isArray(projects) ? projects : projects.projects, (project) => action(project, defaultValue));\n  if (!isArray(projects) && projects.symLinkedProjects) {\n    projects.symLinkedProjects.forEach((projects2, path) => {\n      const value = getValue(path);\n      outputs.push(...flatMap(projects2, (project) => action(project, value)));\n    });\n  }\n  return deduplicate(outputs, equateValues);\n}\nfunction createDocumentSpanSet(useCaseSensitiveFileNames2) {\n  return createSet(({ textSpan }) => textSpan.start + 100003 * textSpan.length, getDocumentSpansEqualityComparer(useCaseSensitiveFileNames2));\n}\nfunction getRenameLocationsWorker(projects, defaultProject, initialLocation, findInStrings, findInComments, preferences, useCaseSensitiveFileNames2) {\n  const perProjectResults = getPerProjectReferences(\n    projects,\n    defaultProject,\n    initialLocation,\n    getDefinitionLocation(\n      defaultProject,\n      initialLocation,\n      /*isForRename*/\n      true\n    ),\n    mapDefinitionInProject,\n    (project, position) => project.getLanguageService().findRenameLocations(position.fileName, position.pos, findInStrings, findInComments, preferences),\n    (renameLocation, cb) => cb(documentSpanLocation(renameLocation))\n  );\n  if (isArray(perProjectResults)) {\n    return perProjectResults;\n  }\n  const results = [];\n  const seen = createDocumentSpanSet(useCaseSensitiveFileNames2);\n  perProjectResults.forEach((projectResults, project) => {\n    for (const result of projectResults) {\n      if (!seen.has(result) && !getMappedLocationForProject(documentSpanLocation(result), project)) {\n        results.push(result);\n        seen.add(result);\n      }\n    }\n  });\n  return results;\n}\nfunction getDefinitionLocation(defaultProject, initialLocation, isForRename) {\n  const infos = defaultProject.getLanguageService().getDefinitionAtPosition(\n    initialLocation.fileName,\n    initialLocation.pos,\n    /*searchOtherFilesOnly*/\n    false,\n    /*stopAtAlias*/\n    isForRename\n  );\n  const info = infos && firstOrUndefined(infos);\n  return info && !info.isLocal ? { fileName: info.fileName, pos: info.textSpan.start } : void 0;\n}\nfunction getReferencesWorker(projects, defaultProject, initialLocation, useCaseSensitiveFileNames2, logger) {\n  var _a, _b;\n  const perProjectResults = getPerProjectReferences(\n    projects,\n    defaultProject,\n    initialLocation,\n    getDefinitionLocation(\n      defaultProject,\n      initialLocation,\n      /*isForRename*/\n      false\n    ),\n    mapDefinitionInProject,\n    (project, position) => {\n      logger.info(`Finding references to ${position.fileName} position ${position.pos} in project ${project.getProjectName()}`);\n      return project.getLanguageService().findReferences(position.fileName, position.pos);\n    },\n    (referencedSymbol, cb) => {\n      cb(documentSpanLocation(referencedSymbol.definition));\n      for (const ref of referencedSymbol.references) {\n        cb(documentSpanLocation(ref));\n      }\n    }\n  );\n  if (isArray(perProjectResults)) {\n    return perProjectResults;\n  }\n  const defaultProjectResults = perProjectResults.get(defaultProject);\n  if (((_b = (_a = defaultProjectResults == null ? void 0 : defaultProjectResults[0]) == null ? void 0 : _a.references[0]) == null ? void 0 : _b.isDefinition) === void 0) {\n    perProjectResults.forEach((projectResults) => {\n      for (const referencedSymbol of projectResults) {\n        for (const ref of referencedSymbol.references) {\n          delete ref.isDefinition;\n        }\n      }\n    });\n  } else {\n    const knownSymbolSpans = createDocumentSpanSet(useCaseSensitiveFileNames2);\n    for (const referencedSymbol of defaultProjectResults) {\n      for (const ref of referencedSymbol.references) {\n        if (ref.isDefinition) {\n          knownSymbolSpans.add(ref);\n          break;\n        }\n      }\n    }\n    const updatedProjects = /* @__PURE__ */ new Set();\n    while (true) {\n      let progress = false;\n      perProjectResults.forEach((referencedSymbols, project) => {\n        if (updatedProjects.has(project)) return;\n        const updated = project.getLanguageService().updateIsDefinitionOfReferencedSymbols(referencedSymbols, knownSymbolSpans);\n        if (updated) {\n          updatedProjects.add(project);\n          progress = true;\n        }\n      });\n      if (!progress) break;\n    }\n    perProjectResults.forEach((referencedSymbols, project) => {\n      if (updatedProjects.has(project)) return;\n      for (const referencedSymbol of referencedSymbols) {\n        for (const ref of referencedSymbol.references) {\n          ref.isDefinition = false;\n        }\n      }\n    });\n  }\n  const results = [];\n  const seenRefs = createDocumentSpanSet(useCaseSensitiveFileNames2);\n  perProjectResults.forEach((projectResults, project) => {\n    for (const referencedSymbol of projectResults) {\n      const mappedDefinitionFile = getMappedLocationForProject(documentSpanLocation(referencedSymbol.definition), project);\n      const definition = mappedDefinitionFile === void 0 ? referencedSymbol.definition : {\n        ...referencedSymbol.definition,\n        textSpan: createTextSpan(mappedDefinitionFile.pos, referencedSymbol.definition.textSpan.length),\n        // Why would the length be the same in the original?\n        fileName: mappedDefinitionFile.fileName,\n        contextSpan: getMappedContextSpanForProject(referencedSymbol.definition, project)\n      };\n      let symbolToAddTo = find(results, (o) => documentSpansEqual(o.definition, definition, useCaseSensitiveFileNames2));\n      if (!symbolToAddTo) {\n        symbolToAddTo = { definition, references: [] };\n        results.push(symbolToAddTo);\n      }\n      for (const ref of referencedSymbol.references) {\n        if (!seenRefs.has(ref) && !getMappedLocationForProject(documentSpanLocation(ref), project)) {\n          seenRefs.add(ref);\n          symbolToAddTo.references.push(ref);\n        }\n      }\n    }\n  });\n  return results.filter((o) => o.references.length !== 0);\n}\nfunction forEachProjectInProjects(projects, path, cb) {\n  for (const project of isArray(projects) ? projects : projects.projects) {\n    cb(project, path);\n  }\n  if (!isArray(projects) && projects.symLinkedProjects) {\n    projects.symLinkedProjects.forEach((symlinkedProjects, symlinkedPath) => {\n      for (const project of symlinkedProjects) {\n        cb(project, symlinkedPath);\n      }\n    });\n  }\n}\nfunction getPerProjectReferences(projects, defaultProject, initialLocation, defaultDefinition, mapDefinitionInProject2, getResultsForPosition, forPositionInResult) {\n  const resultsMap = /* @__PURE__ */ new Map();\n  const queue = createQueue();\n  queue.enqueue({ project: defaultProject, location: initialLocation });\n  forEachProjectInProjects(projects, initialLocation.fileName, (project, path) => {\n    const location = { fileName: path, pos: initialLocation.pos };\n    queue.enqueue({ project, location });\n  });\n  const projectService = defaultProject.projectService;\n  const cancellationToken = defaultProject.getCancellationToken();\n  const getGeneratedDefinition = memoize(\n    () => defaultProject.isSourceOfProjectReferenceRedirect(defaultDefinition.fileName) ? defaultDefinition : defaultProject.getLanguageService().getSourceMapper().tryGetGeneratedPosition(defaultDefinition)\n  );\n  const getSourceDefinition = memoize(\n    () => defaultProject.isSourceOfProjectReferenceRedirect(defaultDefinition.fileName) ? defaultDefinition : defaultProject.getLanguageService().getSourceMapper().tryGetSourcePosition(defaultDefinition)\n  );\n  const searchedProjectKeys = /* @__PURE__ */ new Set();\n  onCancellation:\n    while (!queue.isEmpty()) {\n      while (!queue.isEmpty()) {\n        if (cancellationToken.isCancellationRequested()) break onCancellation;\n        const { project, location } = queue.dequeue();\n        if (resultsMap.has(project)) continue;\n        if (isLocationProjectReferenceRedirect(project, location)) continue;\n        updateProjectIfDirty(project);\n        if (!project.containsFile(toNormalizedPath(location.fileName))) {\n          continue;\n        }\n        const projectResults = searchPosition(project, location);\n        resultsMap.set(project, projectResults ?? emptyArray2);\n        searchedProjectKeys.add(getProjectKey(project));\n      }\n      if (defaultDefinition) {\n        projectService.loadAncestorProjectTree(searchedProjectKeys);\n        projectService.forEachEnabledProject((project) => {\n          if (cancellationToken.isCancellationRequested()) return;\n          if (resultsMap.has(project)) return;\n          const location = mapDefinitionInProject2(defaultDefinition, project, getGeneratedDefinition, getSourceDefinition);\n          if (location) {\n            queue.enqueue({ project, location });\n          }\n        });\n      }\n    }\n  if (resultsMap.size === 1) {\n    return firstIterator(resultsMap.values());\n  }\n  return resultsMap;\n  function searchPosition(project, location) {\n    const projectResults = getResultsForPosition(project, location);\n    if (!projectResults || !forPositionInResult) return projectResults;\n    for (const result of projectResults) {\n      forPositionInResult(result, (position) => {\n        const originalLocation = projectService.getOriginalLocationEnsuringConfiguredProject(project, position);\n        if (!originalLocation) return;\n        const originalScriptInfo = projectService.getScriptInfo(originalLocation.fileName);\n        for (const project2 of originalScriptInfo.containingProjects) {\n          if (!project2.isOrphan() && !resultsMap.has(project2)) {\n            queue.enqueue({ project: project2, location: originalLocation });\n          }\n        }\n        const symlinkedProjectsMap = projectService.getSymlinkedProjects(originalScriptInfo);\n        if (symlinkedProjectsMap) {\n          symlinkedProjectsMap.forEach((symlinkedProjects, symlinkedPath) => {\n            for (const symlinkedProject of symlinkedProjects) {\n              if (!symlinkedProject.isOrphan() && !resultsMap.has(symlinkedProject)) {\n                queue.enqueue({ project: symlinkedProject, location: { fileName: symlinkedPath, pos: originalLocation.pos } });\n              }\n            }\n          });\n        }\n      });\n    }\n    return projectResults;\n  }\n}\nfunction mapDefinitionInProjectIfFileInProject(definition, project) {\n  if (project.containsFile(toNormalizedPath(definition.fileName)) && !isLocationProjectReferenceRedirect(project, definition)) {\n    return definition;\n  }\n}\nfunction mapDefinitionInProject(definition, project, getGeneratedDefinition, getSourceDefinition) {\n  const result = mapDefinitionInProjectIfFileInProject(definition, project);\n  if (result) return result;\n  const generatedDefinition = getGeneratedDefinition();\n  if (generatedDefinition && project.containsFile(toNormalizedPath(generatedDefinition.fileName))) return generatedDefinition;\n  const sourceDefinition = getSourceDefinition();\n  return sourceDefinition && project.containsFile(toNormalizedPath(sourceDefinition.fileName)) ? sourceDefinition : void 0;\n}\nfunction isLocationProjectReferenceRedirect(project, location) {\n  if (!location) return false;\n  const program = project.getLanguageService().getProgram();\n  if (!program) return false;\n  const sourceFile = program.getSourceFile(location.fileName);\n  return !!sourceFile && sourceFile.resolvedPath !== sourceFile.path && sourceFile.resolvedPath !== project.toPath(location.fileName);\n}\nfunction getProjectKey(project) {\n  return isConfiguredProject(project) ? project.canonicalConfigFilePath : project.getProjectName();\n}\nfunction documentSpanLocation({ fileName, textSpan }) {\n  return { fileName, pos: textSpan.start };\n}\nfunction getMappedLocationForProject(location, project) {\n  return getMappedLocation(location, project.getSourceMapper(), (p) => project.projectService.fileExists(p));\n}\nfunction getMappedDocumentSpanForProject(documentSpan, project) {\n  return getMappedDocumentSpan(documentSpan, project.getSourceMapper(), (p) => project.projectService.fileExists(p));\n}\nfunction getMappedContextSpanForProject(documentSpan, project) {\n  return getMappedContextSpan(documentSpan, project.getSourceMapper(), (p) => project.projectService.fileExists(p));\n}\nvar invalidPartialSemanticModeCommands = [\n  \"openExternalProject\" /* OpenExternalProject */,\n  \"openExternalProjects\" /* OpenExternalProjects */,\n  \"closeExternalProject\" /* CloseExternalProject */,\n  \"synchronizeProjectList\" /* SynchronizeProjectList */,\n  \"emit-output\" /* EmitOutput */,\n  \"compileOnSaveAffectedFileList\" /* CompileOnSaveAffectedFileList */,\n  \"compileOnSaveEmitFile\" /* CompileOnSaveEmitFile */,\n  \"compilerOptionsDiagnostics-full\" /* CompilerOptionsDiagnosticsFull */,\n  \"encodedSemanticClassifications-full\" /* EncodedSemanticClassificationsFull */,\n  \"semanticDiagnosticsSync\" /* SemanticDiagnosticsSync */,\n  \"suggestionDiagnosticsSync\" /* SuggestionDiagnosticsSync */,\n  \"geterrForProject\" /* GeterrForProject */,\n  \"reload\" /* Reload */,\n  \"reloadProjects\" /* ReloadProjects */,\n  \"getCodeFixes\" /* GetCodeFixes */,\n  \"getCodeFixes-full\" /* GetCodeFixesFull */,\n  \"getCombinedCodeFix\" /* GetCombinedCodeFix */,\n  \"getCombinedCodeFix-full\" /* GetCombinedCodeFixFull */,\n  \"applyCodeActionCommand\" /* ApplyCodeActionCommand */,\n  \"getSupportedCodeFixes\" /* GetSupportedCodeFixes */,\n  \"getApplicableRefactors\" /* GetApplicableRefactors */,\n  \"getMoveToRefactoringFileSuggestions\" /* GetMoveToRefactoringFileSuggestions */,\n  \"getEditsForRefactor\" /* GetEditsForRefactor */,\n  \"getEditsForRefactor-full\" /* GetEditsForRefactorFull */,\n  \"organizeImports\" /* OrganizeImports */,\n  \"organizeImports-full\" /* OrganizeImportsFull */,\n  \"getEditsForFileRename\" /* GetEditsForFileRename */,\n  \"getEditsForFileRename-full\" /* GetEditsForFileRenameFull */,\n  \"prepareCallHierarchy\" /* PrepareCallHierarchy */,\n  \"provideCallHierarchyIncomingCalls\" /* ProvideCallHierarchyIncomingCalls */,\n  \"provideCallHierarchyOutgoingCalls\" /* ProvideCallHierarchyOutgoingCalls */,\n  \"getPasteEdits\" /* GetPasteEdits */,\n  \"copilotRelated\" /* CopilotRelated */\n];\nvar invalidSyntacticModeCommands = [\n  ...invalidPartialSemanticModeCommands,\n  \"definition\" /* Definition */,\n  \"definition-full\" /* DefinitionFull */,\n  \"definitionAndBoundSpan\" /* DefinitionAndBoundSpan */,\n  \"definitionAndBoundSpan-full\" /* DefinitionAndBoundSpanFull */,\n  \"typeDefinition\" /* TypeDefinition */,\n  \"implementation\" /* Implementation */,\n  \"implementation-full\" /* ImplementationFull */,\n  \"references\" /* References */,\n  \"references-full\" /* ReferencesFull */,\n  \"rename\" /* Rename */,\n  \"renameLocations-full\" /* RenameLocationsFull */,\n  \"rename-full\" /* RenameInfoFull */,\n  \"quickinfo\" /* Quickinfo */,\n  \"quickinfo-full\" /* QuickinfoFull */,\n  \"completionInfo\" /* CompletionInfo */,\n  \"completions\" /* Completions */,\n  \"completions-full\" /* CompletionsFull */,\n  \"completionEntryDetails\" /* CompletionDetails */,\n  \"completionEntryDetails-full\" /* CompletionDetailsFull */,\n  \"signatureHelp\" /* SignatureHelp */,\n  \"signatureHelp-full\" /* SignatureHelpFull */,\n  \"navto\" /* Navto */,\n  \"navto-full\" /* NavtoFull */,\n  \"documentHighlights\" /* DocumentHighlights */,\n  \"documentHighlights-full\" /* DocumentHighlightsFull */,\n  \"preparePasteEdits\" /* PreparePasteEdits */\n];\nvar Session3 = class _Session {\n  constructor(opts) {\n    this.changeSeq = 0;\n    // Minimum number of lines for attempting to use region diagnostics for a file.\n    /** @internal */\n    this.regionDiagLineCountThreshold = 500;\n    this.handlers = new Map(Object.entries({\n      // TODO(jakebailey): correctly type the handlers\n      [\"status\" /* Status */]: () => {\n        const response = { version };\n        return this.requiredResponse(response);\n      },\n      [\"openExternalProject\" /* OpenExternalProject */]: (request) => {\n        this.projectService.openExternalProject(\n          request.arguments,\n          /*cleanupAfter*/\n          true\n        );\n        return this.requiredResponse(\n          /*response*/\n          true\n        );\n      },\n      [\"openExternalProjects\" /* OpenExternalProjects */]: (request) => {\n        this.projectService.openExternalProjects(request.arguments.projects);\n        return this.requiredResponse(\n          /*response*/\n          true\n        );\n      },\n      [\"closeExternalProject\" /* CloseExternalProject */]: (request) => {\n        this.projectService.closeExternalProject(\n          request.arguments.projectFileName,\n          /*cleanupAfter*/\n          true\n        );\n        return this.requiredResponse(\n          /*response*/\n          true\n        );\n      },\n      [\"synchronizeProjectList\" /* SynchronizeProjectList */]: (request) => {\n        const result = this.projectService.synchronizeProjectList(request.arguments.knownProjects, request.arguments.includeProjectReferenceRedirectInfo);\n        if (!result.some((p) => p.projectErrors && p.projectErrors.length !== 0)) {\n          return this.requiredResponse(result);\n        }\n        const converted = map(result, (p) => {\n          if (!p.projectErrors || p.projectErrors.length === 0) {\n            return p;\n          }\n          return {\n            info: p.info,\n            changes: p.changes,\n            files: p.files,\n            projectErrors: this.convertToDiagnosticsWithLinePosition(\n              p.projectErrors,\n              /*scriptInfo*/\n              void 0\n            )\n          };\n        });\n        return this.requiredResponse(converted);\n      },\n      [\"updateOpen\" /* UpdateOpen */]: (request) => {\n        this.changeSeq++;\n        this.projectService.applyChangesInOpenFiles(\n          request.arguments.openFiles && mapIterator(request.arguments.openFiles, (file) => ({\n            fileName: file.file,\n            content: file.fileContent,\n            scriptKind: file.scriptKindName,\n            projectRootPath: file.projectRootPath\n          })),\n          request.arguments.changedFiles && mapIterator(request.arguments.changedFiles, (file) => ({\n            fileName: file.fileName,\n            changes: mapDefinedIterator(arrayReverseIterator(file.textChanges), (change) => {\n              const scriptInfo = Debug.checkDefined(this.projectService.getScriptInfo(file.fileName));\n              const start = scriptInfo.lineOffsetToPosition(change.start.line, change.start.offset);\n              const end = scriptInfo.lineOffsetToPosition(change.end.line, change.end.offset);\n              return start >= 0 ? { span: { start, length: end - start }, newText: change.newText } : void 0;\n            })\n          })),\n          request.arguments.closedFiles\n        );\n        return this.requiredResponse(\n          /*response*/\n          true\n        );\n      },\n      [\"applyChangedToOpenFiles\" /* ApplyChangedToOpenFiles */]: (request) => {\n        this.changeSeq++;\n        this.projectService.applyChangesInOpenFiles(\n          request.arguments.openFiles,\n          request.arguments.changedFiles && mapIterator(request.arguments.changedFiles, (file) => ({\n            fileName: file.fileName,\n            // apply changes in reverse order\n            changes: arrayReverseIterator(file.changes)\n          })),\n          request.arguments.closedFiles\n        );\n        return this.requiredResponse(\n          /*response*/\n          true\n        );\n      },\n      [\"exit\" /* Exit */]: () => {\n        this.exit();\n        return this.notRequired(\n          /*request*/\n          void 0\n        );\n      },\n      [\"definition\" /* Definition */]: (request) => {\n        return this.requiredResponse(this.getDefinition(\n          request.arguments,\n          /*simplifiedResult*/\n          true\n        ));\n      },\n      [\"definition-full\" /* DefinitionFull */]: (request) => {\n        return this.requiredResponse(this.getDefinition(\n          request.arguments,\n          /*simplifiedResult*/\n          false\n        ));\n      },\n      [\"definitionAndBoundSpan\" /* DefinitionAndBoundSpan */]: (request) => {\n        return this.requiredResponse(this.getDefinitionAndBoundSpan(\n          request.arguments,\n          /*simplifiedResult*/\n          true\n        ));\n      },\n      [\"definitionAndBoundSpan-full\" /* DefinitionAndBoundSpanFull */]: (request) => {\n        return this.requiredResponse(this.getDefinitionAndBoundSpan(\n          request.arguments,\n          /*simplifiedResult*/\n          false\n        ));\n      },\n      [\"findSourceDefinition\" /* FindSourceDefinition */]: (request) => {\n        return this.requiredResponse(this.findSourceDefinition(request.arguments));\n      },\n      [\"emit-output\" /* EmitOutput */]: (request) => {\n        return this.requiredResponse(this.getEmitOutput(request.arguments));\n      },\n      [\"typeDefinition\" /* TypeDefinition */]: (request) => {\n        return this.requiredResponse(this.getTypeDefinition(request.arguments));\n      },\n      [\"implementation\" /* Implementation */]: (request) => {\n        return this.requiredResponse(this.getImplementation(\n          request.arguments,\n          /*simplifiedResult*/\n          true\n        ));\n      },\n      [\"implementation-full\" /* ImplementationFull */]: (request) => {\n        return this.requiredResponse(this.getImplementation(\n          request.arguments,\n          /*simplifiedResult*/\n          false\n        ));\n      },\n      [\"references\" /* References */]: (request) => {\n        return this.requiredResponse(this.getReferences(\n          request.arguments,\n          /*simplifiedResult*/\n          true\n        ));\n      },\n      [\"references-full\" /* ReferencesFull */]: (request) => {\n        return this.requiredResponse(this.getReferences(\n          request.arguments,\n          /*simplifiedResult*/\n          false\n        ));\n      },\n      [\"rename\" /* Rename */]: (request) => {\n        return this.requiredResponse(this.getRenameLocations(\n          request.arguments,\n          /*simplifiedResult*/\n          true\n        ));\n      },\n      [\"renameLocations-full\" /* RenameLocationsFull */]: (request) => {\n        return this.requiredResponse(this.getRenameLocations(\n          request.arguments,\n          /*simplifiedResult*/\n          false\n        ));\n      },\n      [\"rename-full\" /* RenameInfoFull */]: (request) => {\n        return this.requiredResponse(this.getRenameInfo(request.arguments));\n      },\n      [\"open\" /* Open */]: (request) => {\n        this.openClientFile(\n          toNormalizedPath(request.arguments.file),\n          request.arguments.fileContent,\n          convertScriptKindName(request.arguments.scriptKindName),\n          // TODO: GH#18217\n          request.arguments.projectRootPath ? toNormalizedPath(request.arguments.projectRootPath) : void 0\n        );\n        return this.notRequired(request);\n      },\n      [\"quickinfo\" /* Quickinfo */]: (request) => {\n        return this.requiredResponse(this.getQuickInfoWorker(\n          request.arguments,\n          /*simplifiedResult*/\n          true\n        ));\n      },\n      [\"quickinfo-full\" /* QuickinfoFull */]: (request) => {\n        return this.requiredResponse(this.getQuickInfoWorker(\n          request.arguments,\n          /*simplifiedResult*/\n          false\n        ));\n      },\n      [\"getOutliningSpans\" /* GetOutliningSpans */]: (request) => {\n        return this.requiredResponse(this.getOutliningSpans(\n          request.arguments,\n          /*simplifiedResult*/\n          true\n        ));\n      },\n      [\"outliningSpans\" /* GetOutliningSpansFull */]: (request) => {\n        return this.requiredResponse(this.getOutliningSpans(\n          request.arguments,\n          /*simplifiedResult*/\n          false\n        ));\n      },\n      [\"todoComments\" /* TodoComments */]: (request) => {\n        return this.requiredResponse(this.getTodoComments(request.arguments));\n      },\n      [\"indentation\" /* Indentation */]: (request) => {\n        return this.requiredResponse(this.getIndentation(request.arguments));\n      },\n      [\"nameOrDottedNameSpan\" /* NameOrDottedNameSpan */]: (request) => {\n        return this.requiredResponse(this.getNameOrDottedNameSpan(request.arguments));\n      },\n      [\"breakpointStatement\" /* BreakpointStatement */]: (request) => {\n        return this.requiredResponse(this.getBreakpointStatement(request.arguments));\n      },\n      [\"braceCompletion\" /* BraceCompletion */]: (request) => {\n        return this.requiredResponse(this.isValidBraceCompletion(request.arguments));\n      },\n      [\"docCommentTemplate\" /* DocCommentTemplate */]: (request) => {\n        return this.requiredResponse(this.getDocCommentTemplate(request.arguments));\n      },\n      [\"getSpanOfEnclosingComment\" /* GetSpanOfEnclosingComment */]: (request) => {\n        return this.requiredResponse(this.getSpanOfEnclosingComment(request.arguments));\n      },\n      [\"fileReferences\" /* FileReferences */]: (request) => {\n        return this.requiredResponse(this.getFileReferences(\n          request.arguments,\n          /*simplifiedResult*/\n          true\n        ));\n      },\n      [\"fileReferences-full\" /* FileReferencesFull */]: (request) => {\n        return this.requiredResponse(this.getFileReferences(\n          request.arguments,\n          /*simplifiedResult*/\n          false\n        ));\n      },\n      [\"format\" /* Format */]: (request) => {\n        return this.requiredResponse(this.getFormattingEditsForRange(request.arguments));\n      },\n      [\"formatonkey\" /* Formatonkey */]: (request) => {\n        return this.requiredResponse(this.getFormattingEditsAfterKeystroke(request.arguments));\n      },\n      [\"format-full\" /* FormatFull */]: (request) => {\n        return this.requiredResponse(this.getFormattingEditsForDocumentFull(request.arguments));\n      },\n      [\"formatonkey-full\" /* FormatonkeyFull */]: (request) => {\n        return this.requiredResponse(this.getFormattingEditsAfterKeystrokeFull(request.arguments));\n      },\n      [\"formatRange-full\" /* FormatRangeFull */]: (request) => {\n        return this.requiredResponse(this.getFormattingEditsForRangeFull(request.arguments));\n      },\n      [\"completionInfo\" /* CompletionInfo */]: (request) => {\n        return this.requiredResponse(this.getCompletions(request.arguments, \"completionInfo\" /* CompletionInfo */));\n      },\n      [\"completions\" /* Completions */]: (request) => {\n        return this.requiredResponse(this.getCompletions(request.arguments, \"completions\" /* Completions */));\n      },\n      [\"completions-full\" /* CompletionsFull */]: (request) => {\n        return this.requiredResponse(this.getCompletions(request.arguments, \"completions-full\" /* CompletionsFull */));\n      },\n      [\"completionEntryDetails\" /* CompletionDetails */]: (request) => {\n        return this.requiredResponse(this.getCompletionEntryDetails(\n          request.arguments,\n          /*fullResult*/\n          false\n        ));\n      },\n      [\"completionEntryDetails-full\" /* CompletionDetailsFull */]: (request) => {\n        return this.requiredResponse(this.getCompletionEntryDetails(\n          request.arguments,\n          /*fullResult*/\n          true\n        ));\n      },\n      [\"compileOnSaveAffectedFileList\" /* CompileOnSaveAffectedFileList */]: (request) => {\n        return this.requiredResponse(this.getCompileOnSaveAffectedFileList(request.arguments));\n      },\n      [\"compileOnSaveEmitFile\" /* CompileOnSaveEmitFile */]: (request) => {\n        return this.requiredResponse(this.emitFile(request.arguments));\n      },\n      [\"signatureHelp\" /* SignatureHelp */]: (request) => {\n        return this.requiredResponse(this.getSignatureHelpItems(\n          request.arguments,\n          /*simplifiedResult*/\n          true\n        ));\n      },\n      [\"signatureHelp-full\" /* SignatureHelpFull */]: (request) => {\n        return this.requiredResponse(this.getSignatureHelpItems(\n          request.arguments,\n          /*simplifiedResult*/\n          false\n        ));\n      },\n      [\"compilerOptionsDiagnostics-full\" /* CompilerOptionsDiagnosticsFull */]: (request) => {\n        return this.requiredResponse(this.getCompilerOptionsDiagnostics(request.arguments));\n      },\n      [\"encodedSyntacticClassifications-full\" /* EncodedSyntacticClassificationsFull */]: (request) => {\n        return this.requiredResponse(this.getEncodedSyntacticClassifications(request.arguments));\n      },\n      [\"encodedSemanticClassifications-full\" /* EncodedSemanticClassificationsFull */]: (request) => {\n        return this.requiredResponse(this.getEncodedSemanticClassifications(request.arguments));\n      },\n      [\"cleanup\" /* Cleanup */]: () => {\n        this.cleanup();\n        return this.requiredResponse(\n          /*response*/\n          true\n        );\n      },\n      [\"semanticDiagnosticsSync\" /* SemanticDiagnosticsSync */]: (request) => {\n        return this.requiredResponse(this.getSemanticDiagnosticsSync(request.arguments));\n      },\n      [\"syntacticDiagnosticsSync\" /* SyntacticDiagnosticsSync */]: (request) => {\n        return this.requiredResponse(this.getSyntacticDiagnosticsSync(request.arguments));\n      },\n      [\"suggestionDiagnosticsSync\" /* SuggestionDiagnosticsSync */]: (request) => {\n        return this.requiredResponse(this.getSuggestionDiagnosticsSync(request.arguments));\n      },\n      [\"geterr\" /* Geterr */]: (request) => {\n        this.errorCheck.startNew((next) => this.getDiagnostics(next, request.arguments.delay, request.arguments.files));\n        return this.notRequired(\n          /*request*/\n          void 0\n        );\n      },\n      [\"geterrForProject\" /* GeterrForProject */]: (request) => {\n        this.errorCheck.startNew((next) => this.getDiagnosticsForProject(next, request.arguments.delay, request.arguments.file));\n        return this.notRequired(\n          /*request*/\n          void 0\n        );\n      },\n      [\"change\" /* Change */]: (request) => {\n        this.change(request.arguments);\n        return this.notRequired(request);\n      },\n      [\"configure\" /* Configure */]: (request) => {\n        this.projectService.setHostConfiguration(request.arguments);\n        return this.notRequired(request);\n      },\n      [\"reload\" /* Reload */]: (request) => {\n        this.reload(request.arguments);\n        return this.requiredResponse({ reloadFinished: true });\n      },\n      [\"saveto\" /* Saveto */]: (request) => {\n        const savetoArgs = request.arguments;\n        this.saveToTmp(savetoArgs.file, savetoArgs.tmpfile);\n        return this.notRequired(request);\n      },\n      [\"close\" /* Close */]: (request) => {\n        const closeArgs = request.arguments;\n        this.closeClientFile(closeArgs.file);\n        return this.notRequired(request);\n      },\n      [\"navto\" /* Navto */]: (request) => {\n        return this.requiredResponse(this.getNavigateToItems(\n          request.arguments,\n          /*simplifiedResult*/\n          true\n        ));\n      },\n      [\"navto-full\" /* NavtoFull */]: (request) => {\n        return this.requiredResponse(this.getNavigateToItems(\n          request.arguments,\n          /*simplifiedResult*/\n          false\n        ));\n      },\n      [\"brace\" /* Brace */]: (request) => {\n        return this.requiredResponse(this.getBraceMatching(\n          request.arguments,\n          /*simplifiedResult*/\n          true\n        ));\n      },\n      [\"brace-full\" /* BraceFull */]: (request) => {\n        return this.requiredResponse(this.getBraceMatching(\n          request.arguments,\n          /*simplifiedResult*/\n          false\n        ));\n      },\n      [\"navbar\" /* NavBar */]: (request) => {\n        return this.requiredResponse(this.getNavigationBarItems(\n          request.arguments,\n          /*simplifiedResult*/\n          true\n        ));\n      },\n      [\"navbar-full\" /* NavBarFull */]: (request) => {\n        return this.requiredResponse(this.getNavigationBarItems(\n          request.arguments,\n          /*simplifiedResult*/\n          false\n        ));\n      },\n      [\"navtree\" /* NavTree */]: (request) => {\n        return this.requiredResponse(this.getNavigationTree(\n          request.arguments,\n          /*simplifiedResult*/\n          true\n        ));\n      },\n      [\"navtree-full\" /* NavTreeFull */]: (request) => {\n        return this.requiredResponse(this.getNavigationTree(\n          request.arguments,\n          /*simplifiedResult*/\n          false\n        ));\n      },\n      [\"documentHighlights\" /* DocumentHighlights */]: (request) => {\n        return this.requiredResponse(this.getDocumentHighlights(\n          request.arguments,\n          /*simplifiedResult*/\n          true\n        ));\n      },\n      [\"documentHighlights-full\" /* DocumentHighlightsFull */]: (request) => {\n        return this.requiredResponse(this.getDocumentHighlights(\n          request.arguments,\n          /*simplifiedResult*/\n          false\n        ));\n      },\n      [\"compilerOptionsForInferredProjects\" /* CompilerOptionsForInferredProjects */]: (request) => {\n        this.setCompilerOptionsForInferredProjects(request.arguments);\n        return this.requiredResponse(\n          /*response*/\n          true\n        );\n      },\n      [\"projectInfo\" /* ProjectInfo */]: (request) => {\n        return this.requiredResponse(this.getProjectInfo(request.arguments));\n      },\n      [\"reloadProjects\" /* ReloadProjects */]: (request) => {\n        this.projectService.reloadProjects();\n        return this.notRequired(request);\n      },\n      [\"jsxClosingTag\" /* JsxClosingTag */]: (request) => {\n        return this.requiredResponse(this.getJsxClosingTag(request.arguments));\n      },\n      [\"linkedEditingRange\" /* LinkedEditingRange */]: (request) => {\n        return this.requiredResponse(this.getLinkedEditingRange(request.arguments));\n      },\n      [\"getCodeFixes\" /* GetCodeFixes */]: (request) => {\n        return this.requiredResponse(this.getCodeFixes(\n          request.arguments,\n          /*simplifiedResult*/\n          true\n        ));\n      },\n      [\"getCodeFixes-full\" /* GetCodeFixesFull */]: (request) => {\n        return this.requiredResponse(this.getCodeFixes(\n          request.arguments,\n          /*simplifiedResult*/\n          false\n        ));\n      },\n      [\"getCombinedCodeFix\" /* GetCombinedCodeFix */]: (request) => {\n        return this.requiredResponse(this.getCombinedCodeFix(\n          request.arguments,\n          /*simplifiedResult*/\n          true\n        ));\n      },\n      [\"getCombinedCodeFix-full\" /* GetCombinedCodeFixFull */]: (request) => {\n        return this.requiredResponse(this.getCombinedCodeFix(\n          request.arguments,\n          /*simplifiedResult*/\n          false\n        ));\n      },\n      [\"applyCodeActionCommand\" /* ApplyCodeActionCommand */]: (request) => {\n        return this.requiredResponse(this.applyCodeActionCommand(request.arguments));\n      },\n      [\"getSupportedCodeFixes\" /* GetSupportedCodeFixes */]: (request) => {\n        return this.requiredResponse(this.getSupportedCodeFixes(request.arguments));\n      },\n      [\"getApplicableRefactors\" /* GetApplicableRefactors */]: (request) => {\n        return this.requiredResponse(this.getApplicableRefactors(request.arguments));\n      },\n      [\"getEditsForRefactor\" /* GetEditsForRefactor */]: (request) => {\n        return this.requiredResponse(this.getEditsForRefactor(\n          request.arguments,\n          /*simplifiedResult*/\n          true\n        ));\n      },\n      [\"getMoveToRefactoringFileSuggestions\" /* GetMoveToRefactoringFileSuggestions */]: (request) => {\n        return this.requiredResponse(this.getMoveToRefactoringFileSuggestions(request.arguments));\n      },\n      [\"preparePasteEdits\" /* PreparePasteEdits */]: (request) => {\n        return this.requiredResponse(this.preparePasteEdits(request.arguments));\n      },\n      [\"getPasteEdits\" /* GetPasteEdits */]: (request) => {\n        return this.requiredResponse(this.getPasteEdits(request.arguments));\n      },\n      [\"getEditsForRefactor-full\" /* GetEditsForRefactorFull */]: (request) => {\n        return this.requiredResponse(this.getEditsForRefactor(\n          request.arguments,\n          /*simplifiedResult*/\n          false\n        ));\n      },\n      [\"organizeImports\" /* OrganizeImports */]: (request) => {\n        return this.requiredResponse(this.organizeImports(\n          request.arguments,\n          /*simplifiedResult*/\n          true\n        ));\n      },\n      [\"organizeImports-full\" /* OrganizeImportsFull */]: (request) => {\n        return this.requiredResponse(this.organizeImports(\n          request.arguments,\n          /*simplifiedResult*/\n          false\n        ));\n      },\n      [\"getEditsForFileRename\" /* GetEditsForFileRename */]: (request) => {\n        return this.requiredResponse(this.getEditsForFileRename(\n          request.arguments,\n          /*simplifiedResult*/\n          true\n        ));\n      },\n      [\"getEditsForFileRename-full\" /* GetEditsForFileRenameFull */]: (request) => {\n        return this.requiredResponse(this.getEditsForFileRename(\n          request.arguments,\n          /*simplifiedResult*/\n          false\n        ));\n      },\n      [\"configurePlugin\" /* ConfigurePlugin */]: (request) => {\n        this.configurePlugin(request.arguments);\n        return this.notRequired(request);\n      },\n      [\"selectionRange\" /* SelectionRange */]: (request) => {\n        return this.requiredResponse(this.getSmartSelectionRange(\n          request.arguments,\n          /*simplifiedResult*/\n          true\n        ));\n      },\n      [\"selectionRange-full\" /* SelectionRangeFull */]: (request) => {\n        return this.requiredResponse(this.getSmartSelectionRange(\n          request.arguments,\n          /*simplifiedResult*/\n          false\n        ));\n      },\n      [\"prepareCallHierarchy\" /* PrepareCallHierarchy */]: (request) => {\n        return this.requiredResponse(this.prepareCallHierarchy(request.arguments));\n      },\n      [\"provideCallHierarchyIncomingCalls\" /* ProvideCallHierarchyIncomingCalls */]: (request) => {\n        return this.requiredResponse(this.provideCallHierarchyIncomingCalls(request.arguments));\n      },\n      [\"provideCallHierarchyOutgoingCalls\" /* ProvideCallHierarchyOutgoingCalls */]: (request) => {\n        return this.requiredResponse(this.provideCallHierarchyOutgoingCalls(request.arguments));\n      },\n      [\"toggleLineComment\" /* ToggleLineComment */]: (request) => {\n        return this.requiredResponse(this.toggleLineComment(\n          request.arguments,\n          /*simplifiedResult*/\n          true\n        ));\n      },\n      [\"toggleLineComment-full\" /* ToggleLineCommentFull */]: (request) => {\n        return this.requiredResponse(this.toggleLineComment(\n          request.arguments,\n          /*simplifiedResult*/\n          false\n        ));\n      },\n      [\"toggleMultilineComment\" /* ToggleMultilineComment */]: (request) => {\n        return this.requiredResponse(this.toggleMultilineComment(\n          request.arguments,\n          /*simplifiedResult*/\n          true\n        ));\n      },\n      [\"toggleMultilineComment-full\" /* ToggleMultilineCommentFull */]: (request) => {\n        return this.requiredResponse(this.toggleMultilineComment(\n          request.arguments,\n          /*simplifiedResult*/\n          false\n        ));\n      },\n      [\"commentSelection\" /* CommentSelection */]: (request) => {\n        return this.requiredResponse(this.commentSelection(\n          request.arguments,\n          /*simplifiedResult*/\n          true\n        ));\n      },\n      [\"commentSelection-full\" /* CommentSelectionFull */]: (request) => {\n        return this.requiredResponse(this.commentSelection(\n          request.arguments,\n          /*simplifiedResult*/\n          false\n        ));\n      },\n      [\"uncommentSelection\" /* UncommentSelection */]: (request) => {\n        return this.requiredResponse(this.uncommentSelection(\n          request.arguments,\n          /*simplifiedResult*/\n          true\n        ));\n      },\n      [\"uncommentSelection-full\" /* UncommentSelectionFull */]: (request) => {\n        return this.requiredResponse(this.uncommentSelection(\n          request.arguments,\n          /*simplifiedResult*/\n          false\n        ));\n      },\n      [\"provideInlayHints\" /* ProvideInlayHints */]: (request) => {\n        return this.requiredResponse(this.provideInlayHints(request.arguments));\n      },\n      [\"mapCode\" /* MapCode */]: (request) => {\n        return this.requiredResponse(this.mapCode(request.arguments));\n      },\n      [\"copilotRelated\" /* CopilotRelated */]: () => {\n        return this.requiredResponse(this.getCopilotRelatedInfo());\n      }\n    }));\n    this.host = opts.host;\n    this.cancellationToken = opts.cancellationToken;\n    this.typingsInstaller = opts.typingsInstaller || nullTypingsInstaller;\n    this.byteLength = opts.byteLength;\n    this.hrtime = opts.hrtime;\n    this.logger = opts.logger;\n    this.canUseEvents = opts.canUseEvents;\n    this.suppressDiagnosticEvents = opts.suppressDiagnosticEvents;\n    this.noGetErrOnBackgroundUpdate = opts.noGetErrOnBackgroundUpdate;\n    const { throttleWaitMilliseconds } = opts;\n    this.eventHandler = this.canUseEvents ? opts.eventHandler || ((event) => this.defaultEventHandler(event)) : void 0;\n    const multistepOperationHost = {\n      executeWithRequestId: (requestId, action, performanceData) => this.executeWithRequestId(requestId, action, performanceData),\n      getCurrentRequestId: () => this.currentRequestId,\n      getPerformanceData: () => this.performanceData,\n      getServerHost: () => this.host,\n      logError: (err, cmd) => this.logError(err, cmd),\n      sendRequestCompletedEvent: (requestId, performanceData) => this.sendRequestCompletedEvent(requestId, performanceData),\n      isCancellationRequested: () => this.cancellationToken.isCancellationRequested()\n    };\n    this.errorCheck = new MultistepOperation(multistepOperationHost);\n    const settings = {\n      host: this.host,\n      logger: this.logger,\n      cancellationToken: this.cancellationToken,\n      useSingleInferredProject: opts.useSingleInferredProject,\n      useInferredProjectPerProjectRoot: opts.useInferredProjectPerProjectRoot,\n      typingsInstaller: this.typingsInstaller,\n      throttleWaitMilliseconds,\n      eventHandler: this.eventHandler,\n      suppressDiagnosticEvents: this.suppressDiagnosticEvents,\n      globalPlugins: opts.globalPlugins,\n      pluginProbeLocations: opts.pluginProbeLocations,\n      allowLocalPluginLoads: opts.allowLocalPluginLoads,\n      typesMapLocation: opts.typesMapLocation,\n      serverMode: opts.serverMode,\n      session: this,\n      canUseWatchEvents: opts.canUseWatchEvents,\n      incrementalVerifier: opts.incrementalVerifier\n    };\n    this.projectService = new ProjectService2(settings);\n    this.projectService.setPerformanceEventHandler(this.performanceEventHandler.bind(this));\n    this.gcTimer = new GcTimer(\n      this.host,\n      /*delay*/\n      7e3,\n      this.logger\n    );\n    switch (this.projectService.serverMode) {\n      case 0 /* Semantic */:\n        break;\n      case 1 /* PartialSemantic */:\n        invalidPartialSemanticModeCommands.forEach(\n          (commandName) => this.handlers.set(commandName, (request) => {\n            throw new Error(`Request: ${request.command} not allowed in LanguageServiceMode.PartialSemantic`);\n          })\n        );\n        break;\n      case 2 /* Syntactic */:\n        invalidSyntacticModeCommands.forEach(\n          (commandName) => this.handlers.set(commandName, (request) => {\n            throw new Error(`Request: ${request.command} not allowed in LanguageServiceMode.Syntactic`);\n          })\n        );\n        break;\n      default:\n        Debug.assertNever(this.projectService.serverMode);\n    }\n  }\n  sendRequestCompletedEvent(requestId, performanceData) {\n    this.event(\n      {\n        request_seq: requestId,\n        performanceData: performanceData && toProtocolPerformanceData(performanceData)\n      },\n      \"requestCompleted\"\n    );\n  }\n  addPerformanceData(key, value) {\n    if (!this.performanceData) {\n      this.performanceData = {};\n    }\n    this.performanceData[key] = (this.performanceData[key] ?? 0) + value;\n  }\n  addDiagnosticsPerformanceData(file, kind, duration) {\n    var _a, _b;\n    if (!this.performanceData) {\n      this.performanceData = {};\n    }\n    let fileDiagnosticDuration = (_a = this.performanceData.diagnosticsDuration) == null ? void 0 : _a.get(file);\n    if (!fileDiagnosticDuration) ((_b = this.performanceData).diagnosticsDuration ?? (_b.diagnosticsDuration = /* @__PURE__ */ new Map())).set(file, fileDiagnosticDuration = {});\n    fileDiagnosticDuration[kind] = duration;\n  }\n  performanceEventHandler(event) {\n    switch (event.kind) {\n      case \"UpdateGraph\":\n        this.addPerformanceData(\"updateGraphDurationMs\", event.durationMs);\n        break;\n      case \"CreatePackageJsonAutoImportProvider\":\n        this.addPerformanceData(\"createAutoImportProviderProgramDurationMs\", event.durationMs);\n        break;\n    }\n  }\n  defaultEventHandler(event) {\n    switch (event.eventName) {\n      case ProjectsUpdatedInBackgroundEvent:\n        this.projectsUpdatedInBackgroundEvent(event.data.openFiles);\n        break;\n      case ProjectLoadingStartEvent:\n        this.event({\n          projectName: event.data.project.getProjectName(),\n          reason: event.data.reason\n        }, event.eventName);\n        break;\n      case ProjectLoadingFinishEvent:\n        this.event({\n          projectName: event.data.project.getProjectName()\n        }, event.eventName);\n        break;\n      case LargeFileReferencedEvent:\n      case CreateFileWatcherEvent:\n      case CreateDirectoryWatcherEvent:\n      case CloseFileWatcherEvent:\n        this.event(event.data, event.eventName);\n        break;\n      case ConfigFileDiagEvent:\n        this.event({\n          triggerFile: event.data.triggerFile,\n          configFile: event.data.configFileName,\n          diagnostics: map(event.data.diagnostics, (diagnostic) => formatDiagnosticToProtocol(\n            diagnostic,\n            /*includeFileName*/\n            true\n          ))\n        }, event.eventName);\n        break;\n      case ProjectLanguageServiceStateEvent: {\n        this.event({\n          projectName: event.data.project.getProjectName(),\n          languageServiceEnabled: event.data.languageServiceEnabled\n        }, event.eventName);\n        break;\n      }\n      case ProjectInfoTelemetryEvent: {\n        const eventName = \"telemetry\";\n        this.event({\n          telemetryEventName: event.eventName,\n          payload: event.data\n        }, eventName);\n        break;\n      }\n    }\n  }\n  projectsUpdatedInBackgroundEvent(openFiles) {\n    this.projectService.logger.info(`got projects updated in background ${openFiles}`);\n    if (openFiles.length) {\n      if (!this.suppressDiagnosticEvents && !this.noGetErrOnBackgroundUpdate) {\n        this.projectService.logger.info(`Queueing diagnostics update for ${openFiles}`);\n        this.errorCheck.startNew((next) => this.updateErrorCheck(\n          next,\n          openFiles,\n          100,\n          /*requireOpen*/\n          true\n        ));\n      }\n      this.event({\n        openFiles\n      }, ProjectsUpdatedInBackgroundEvent);\n    }\n  }\n  logError(err, cmd) {\n    this.logErrorWorker(err, cmd);\n  }\n  logErrorWorker(err, cmd, fileRequest) {\n    let msg = \"Exception on executing command \" + cmd;\n    if (err.message) {\n      msg += \":\\n\" + indent2(err.message);\n      if (err.stack) {\n        msg += \"\\n\" + indent2(err.stack);\n      }\n    }\n    if (this.logger.hasLevel(3 /* verbose */)) {\n      if (fileRequest) {\n        try {\n          const { file, project } = this.getFileAndProject(fileRequest);\n          const scriptInfo = project.getScriptInfoForNormalizedPath(file);\n          if (scriptInfo) {\n            const text = getSnapshotText(scriptInfo.getSnapshot());\n            msg += `\n\nFile text of ${fileRequest.file}:${indent2(text)}\n`;\n          }\n        } catch {\n        }\n      }\n      if (err.ProgramFiles) {\n        msg += `\n\nProgram files: ${JSON.stringify(err.ProgramFiles)}\n`;\n        msg += `\n\nProjects::\n`;\n        let counter = 0;\n        const addProjectInfo = (project) => {\n          msg += `\nProject '${project.projectName}' (${ProjectKind[project.projectKind]}) ${counter}\n`;\n          msg += project.filesToString(\n            /*writeProjectFileNames*/\n            true\n          );\n          msg += \"\\n-----------------------------------------------\\n\";\n          counter++;\n        };\n        this.projectService.externalProjects.forEach(addProjectInfo);\n        this.projectService.configuredProjects.forEach(addProjectInfo);\n        this.projectService.inferredProjects.forEach(addProjectInfo);\n      }\n    }\n    this.logger.msg(msg, \"Err\" /* Err */);\n  }\n  send(msg) {\n    if (msg.type === \"event\" && !this.canUseEvents) {\n      if (this.logger.hasLevel(3 /* verbose */)) {\n        this.logger.info(`Session does not support events: ignored event: ${stringifyIndented(msg)}`);\n      }\n      return;\n    }\n    this.writeMessage(msg);\n  }\n  writeMessage(msg) {\n    const msgText = formatMessage2(msg, this.logger, this.byteLength, this.host.newLine);\n    this.host.write(msgText);\n  }\n  event(body, eventName) {\n    this.send(toEvent(eventName, body));\n  }\n  /** @internal */\n  doOutput(info, cmdName, reqSeq, success, performanceData, message) {\n    const res = {\n      seq: 0,\n      type: \"response\",\n      command: cmdName,\n      request_seq: reqSeq,\n      success,\n      performanceData: performanceData && toProtocolPerformanceData(performanceData)\n    };\n    if (success) {\n      let metadata;\n      if (isArray(info)) {\n        res.body = info;\n        metadata = info.metadata;\n        delete info.metadata;\n      } else if (typeof info === \"object\") {\n        if (info.metadata) {\n          const { metadata: infoMetadata, ...body } = info;\n          res.body = body;\n          metadata = infoMetadata;\n        } else {\n          res.body = info;\n        }\n      } else {\n        res.body = info;\n      }\n      if (metadata) res.metadata = metadata;\n    } else {\n      Debug.assert(info === void 0);\n    }\n    if (message) {\n      res.message = message;\n    }\n    this.send(res);\n  }\n  semanticCheck(file, project) {\n    var _a, _b;\n    const diagnosticsStartTime = timestamp();\n    (_a = tracing) == null ? void 0 : _a.push(tracing.Phase.Session, \"semanticCheck\", { file, configFilePath: project.canonicalConfigFilePath });\n    const diags = isDeclarationFileInJSOnlyNonConfiguredProject(project, file) ? emptyArray2 : project.getLanguageService().getSemanticDiagnostics(file).filter((d) => !!d.file);\n    this.sendDiagnosticsEvent(file, project, diags, \"semanticDiag\", diagnosticsStartTime);\n    (_b = tracing) == null ? void 0 : _b.pop();\n  }\n  syntacticCheck(file, project) {\n    var _a, _b;\n    const diagnosticsStartTime = timestamp();\n    (_a = tracing) == null ? void 0 : _a.push(tracing.Phase.Session, \"syntacticCheck\", { file, configFilePath: project.canonicalConfigFilePath });\n    this.sendDiagnosticsEvent(file, project, project.getLanguageService().getSyntacticDiagnostics(file), \"syntaxDiag\", diagnosticsStartTime);\n    (_b = tracing) == null ? void 0 : _b.pop();\n  }\n  suggestionCheck(file, project) {\n    var _a, _b;\n    const diagnosticsStartTime = timestamp();\n    (_a = tracing) == null ? void 0 : _a.push(tracing.Phase.Session, \"suggestionCheck\", { file, configFilePath: project.canonicalConfigFilePath });\n    this.sendDiagnosticsEvent(file, project, project.getLanguageService().getSuggestionDiagnostics(file), \"suggestionDiag\", diagnosticsStartTime);\n    (_b = tracing) == null ? void 0 : _b.pop();\n  }\n  regionSemanticCheck(file, project, ranges) {\n    var _a, _b, _c;\n    const diagnosticsStartTime = timestamp();\n    (_a = tracing) == null ? void 0 : _a.push(tracing.Phase.Session, \"regionSemanticCheck\", { file, configFilePath: project.canonicalConfigFilePath });\n    let diagnosticsResult;\n    if (!this.shouldDoRegionCheck(file) || !(diagnosticsResult = project.getLanguageService().getRegionSemanticDiagnostics(file, ranges))) {\n      (_b = tracing) == null ? void 0 : _b.pop();\n      return;\n    }\n    this.sendDiagnosticsEvent(file, project, diagnosticsResult.diagnostics, \"regionSemanticDiag\", diagnosticsStartTime, diagnosticsResult.spans);\n    (_c = tracing) == null ? void 0 : _c.pop();\n    return;\n  }\n  // We should only do the region-based semantic check if we think it would be\n  // considerably faster than a whole-file semantic check.\n  /** @internal */\n  shouldDoRegionCheck(file) {\n    var _a;\n    const lineCount = (_a = this.projectService.getScriptInfoForNormalizedPath(file)) == null ? void 0 : _a.textStorage.getLineInfo().getLineCount();\n    return !!(lineCount && lineCount >= this.regionDiagLineCountThreshold);\n  }\n  sendDiagnosticsEvent(file, project, diagnostics, kind, diagnosticsStartTime, spans) {\n    try {\n      const scriptInfo = Debug.checkDefined(project.getScriptInfo(file));\n      const duration = timestamp() - diagnosticsStartTime;\n      const body = {\n        file,\n        diagnostics: diagnostics.map((diag2) => formatDiag(file, project, diag2)),\n        spans: spans == null ? void 0 : spans.map((span) => toProtocolTextSpan(span, scriptInfo))\n      };\n      this.event(\n        body,\n        kind\n      );\n      this.addDiagnosticsPerformanceData(file, kind, duration);\n    } catch (err) {\n      this.logError(err, kind);\n    }\n  }\n  /** It is the caller's responsibility to verify that `!this.suppressDiagnosticEvents`. */\n  updateErrorCheck(next, checkList, ms, requireOpen = true) {\n    if (checkList.length === 0) {\n      return;\n    }\n    Debug.assert(!this.suppressDiagnosticEvents);\n    const seq = this.changeSeq;\n    const followMs = Math.min(ms, 200);\n    let index = 0;\n    const goNext = () => {\n      index++;\n      if (checkList.length > index) {\n        return next.delay(\"checkOne\", followMs, checkOne);\n      }\n    };\n    const doSemanticCheck = (fileName, project) => {\n      this.semanticCheck(fileName, project);\n      if (this.changeSeq !== seq) {\n        return;\n      }\n      if (this.getPreferences(fileName).disableSuggestions) {\n        return goNext();\n      }\n      next.immediate(\"suggestionCheck\", () => {\n        this.suggestionCheck(fileName, project);\n        goNext();\n      });\n    };\n    const checkOne = () => {\n      if (this.changeSeq !== seq) {\n        return;\n      }\n      let ranges;\n      let item = checkList[index];\n      if (isString(item)) {\n        item = this.toPendingErrorCheck(item);\n      } else if (\"ranges\" in item) {\n        ranges = item.ranges;\n        item = this.toPendingErrorCheck(item.file);\n      }\n      if (!item) {\n        return goNext();\n      }\n      const { fileName, project } = item;\n      updateProjectIfDirty(project);\n      if (!project.containsFile(fileName, requireOpen)) {\n        return;\n      }\n      this.syntacticCheck(fileName, project);\n      if (this.changeSeq !== seq) {\n        return;\n      }\n      if (project.projectService.serverMode !== 0 /* Semantic */) {\n        return goNext();\n      }\n      if (ranges) {\n        return next.immediate(\"regionSemanticCheck\", () => {\n          const scriptInfo = this.projectService.getScriptInfoForNormalizedPath(fileName);\n          if (scriptInfo) {\n            this.regionSemanticCheck(fileName, project, ranges.map((range) => this.getRange({ file: fileName, ...range }, scriptInfo)));\n          }\n          if (this.changeSeq !== seq) {\n            return;\n          }\n          next.immediate(\"semanticCheck\", () => doSemanticCheck(fileName, project));\n        });\n      }\n      next.immediate(\"semanticCheck\", () => doSemanticCheck(fileName, project));\n    };\n    if (checkList.length > index && this.changeSeq === seq) {\n      next.delay(\"checkOne\", ms, checkOne);\n    }\n  }\n  cleanProjects(caption, projects) {\n    if (!projects) {\n      return;\n    }\n    this.logger.info(`cleaning ${caption}`);\n    for (const p of projects) {\n      p.getLanguageService(\n        /*ensureSynchronized*/\n        false\n      ).cleanupSemanticCache();\n      p.cleanupProgram();\n    }\n  }\n  cleanup() {\n    this.cleanProjects(\"inferred projects\", this.projectService.inferredProjects);\n    this.cleanProjects(\"configured projects\", arrayFrom(this.projectService.configuredProjects.values()));\n    this.cleanProjects(\"external projects\", this.projectService.externalProjects);\n    if (this.host.gc) {\n      this.logger.info(`host.gc()`);\n      this.host.gc();\n    }\n  }\n  getEncodedSyntacticClassifications(args) {\n    const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args);\n    return languageService.getEncodedSyntacticClassifications(file, args);\n  }\n  getEncodedSemanticClassifications(args) {\n    const { file, project } = this.getFileAndProject(args);\n    const format = args.format === \"2020\" ? \"2020\" /* TwentyTwenty */ : \"original\" /* Original */;\n    return project.getLanguageService().getEncodedSemanticClassifications(file, args, format);\n  }\n  getProject(projectFileName) {\n    return projectFileName === void 0 ? void 0 : this.projectService.findProject(projectFileName);\n  }\n  getConfigFileAndProject(args) {\n    const project = this.getProject(args.projectFileName);\n    const file = toNormalizedPath(args.file);\n    return {\n      configFile: project && project.hasConfigFile(file) ? file : void 0,\n      project\n    };\n  }\n  getConfigFileDiagnostics(configFile, project, includeLinePosition) {\n    const projectErrors = project.getAllProjectErrors();\n    const optionsErrors = project.getLanguageService().getCompilerOptionsDiagnostics();\n    const diagnosticsForConfigFile = filter(\n      concatenate(projectErrors, optionsErrors),\n      (diagnostic) => !!diagnostic.file && diagnostic.file.fileName === configFile\n    );\n    return includeLinePosition ? this.convertToDiagnosticsWithLinePositionFromDiagnosticFile(diagnosticsForConfigFile) : map(\n      diagnosticsForConfigFile,\n      (diagnostic) => formatDiagnosticToProtocol(\n        diagnostic,\n        /*includeFileName*/\n        false\n      )\n    );\n  }\n  convertToDiagnosticsWithLinePositionFromDiagnosticFile(diagnostics) {\n    return diagnostics.map((d) => ({\n      message: flattenDiagnosticMessageText(d.messageText, this.host.newLine),\n      start: d.start,\n      // TODO: GH#18217\n      length: d.length,\n      // TODO: GH#18217\n      category: diagnosticCategoryName(d),\n      code: d.code,\n      source: d.source,\n      startLocation: d.file && convertToLocation(getLineAndCharacterOfPosition(d.file, d.start)),\n      // TODO: GH#18217\n      endLocation: d.file && convertToLocation(getLineAndCharacterOfPosition(d.file, d.start + d.length)),\n      // TODO: GH#18217\n      reportsUnnecessary: d.reportsUnnecessary,\n      reportsDeprecated: d.reportsDeprecated,\n      relatedInformation: map(d.relatedInformation, formatRelatedInformation)\n    }));\n  }\n  getCompilerOptionsDiagnostics(args) {\n    const project = this.getProject(args.projectFileName);\n    return this.convertToDiagnosticsWithLinePosition(\n      filter(\n        project.getLanguageService().getCompilerOptionsDiagnostics(),\n        (diagnostic) => !diagnostic.file\n      ),\n      /*scriptInfo*/\n      void 0\n    );\n  }\n  convertToDiagnosticsWithLinePosition(diagnostics, scriptInfo) {\n    return diagnostics.map(\n      (d) => ({\n        message: flattenDiagnosticMessageText(d.messageText, this.host.newLine),\n        start: d.start,\n        length: d.length,\n        category: diagnosticCategoryName(d),\n        code: d.code,\n        source: d.source,\n        startLocation: scriptInfo && scriptInfo.positionToLineOffset(d.start),\n        // TODO: GH#18217\n        endLocation: scriptInfo && scriptInfo.positionToLineOffset(d.start + d.length),\n        reportsUnnecessary: d.reportsUnnecessary,\n        reportsDeprecated: d.reportsDeprecated,\n        relatedInformation: map(d.relatedInformation, formatRelatedInformation)\n      })\n    );\n  }\n  getDiagnosticsWorker(args, isSemantic, selector, includeLinePosition) {\n    const { project, file } = this.getFileAndProject(args);\n    if (isSemantic && isDeclarationFileInJSOnlyNonConfiguredProject(project, file)) {\n      return emptyArray2;\n    }\n    const scriptInfo = project.getScriptInfoForNormalizedPath(file);\n    const diagnostics = selector(project, file);\n    return includeLinePosition ? this.convertToDiagnosticsWithLinePosition(diagnostics, scriptInfo) : diagnostics.map((d) => formatDiag(file, project, d));\n  }\n  getDefinition(args, simplifiedResult) {\n    const { file, project } = this.getFileAndProject(args);\n    const position = this.getPositionInFile(args, file);\n    const definitions = this.mapDefinitionInfoLocations(project.getLanguageService().getDefinitionAtPosition(file, position) || emptyArray2, project);\n    return simplifiedResult ? this.mapDefinitionInfo(definitions, project) : definitions.map(_Session.mapToOriginalLocation);\n  }\n  mapDefinitionInfoLocations(definitions, project) {\n    return definitions.map((info) => {\n      const newDocumentSpan = getMappedDocumentSpanForProject(info, project);\n      return !newDocumentSpan ? info : {\n        ...newDocumentSpan,\n        containerKind: info.containerKind,\n        containerName: info.containerName,\n        kind: info.kind,\n        name: info.name,\n        failedAliasResolution: info.failedAliasResolution,\n        ...info.unverified && { unverified: info.unverified }\n      };\n    });\n  }\n  getDefinitionAndBoundSpan(args, simplifiedResult) {\n    const { file, project } = this.getFileAndProject(args);\n    const position = this.getPositionInFile(args, file);\n    const scriptInfo = Debug.checkDefined(project.getScriptInfo(file));\n    const unmappedDefinitionAndBoundSpan = project.getLanguageService().getDefinitionAndBoundSpan(file, position);\n    if (!unmappedDefinitionAndBoundSpan || !unmappedDefinitionAndBoundSpan.definitions) {\n      return {\n        definitions: emptyArray2,\n        textSpan: void 0\n        // TODO: GH#18217\n      };\n    }\n    const definitions = this.mapDefinitionInfoLocations(unmappedDefinitionAndBoundSpan.definitions, project);\n    const { textSpan } = unmappedDefinitionAndBoundSpan;\n    if (simplifiedResult) {\n      return {\n        definitions: this.mapDefinitionInfo(definitions, project),\n        textSpan: toProtocolTextSpan(textSpan, scriptInfo)\n      };\n    }\n    return {\n      definitions: definitions.map(_Session.mapToOriginalLocation),\n      textSpan\n    };\n  }\n  findSourceDefinition(args) {\n    var _a;\n    const { file, project } = this.getFileAndProject(args);\n    const position = this.getPositionInFile(args, file);\n    const unmappedDefinitions = project.getLanguageService().getDefinitionAtPosition(file, position);\n    let definitions = this.mapDefinitionInfoLocations(unmappedDefinitions || emptyArray2, project).slice();\n    const needsJsResolution = this.projectService.serverMode === 0 /* Semantic */ && (!some(definitions, (d) => toNormalizedPath(d.fileName) !== file && !d.isAmbient) || some(definitions, (d) => !!d.failedAliasResolution));\n    if (needsJsResolution) {\n      const definitionSet = createSet(\n        (d) => d.textSpan.start,\n        getDocumentSpansEqualityComparer(this.host.useCaseSensitiveFileNames)\n      );\n      definitions == null ? void 0 : definitions.forEach((d) => definitionSet.add(d));\n      const noDtsProject = project.getNoDtsResolutionProject(file);\n      const ls = noDtsProject.getLanguageService();\n      const jsDefinitions = (_a = ls.getDefinitionAtPosition(\n        file,\n        position,\n        /*searchOtherFilesOnly*/\n        true,\n        /*stopAtAlias*/\n        false\n      )) == null ? void 0 : _a.filter((d) => toNormalizedPath(d.fileName) !== file);\n      if (some(jsDefinitions)) {\n        for (const jsDefinition of jsDefinitions) {\n          if (jsDefinition.unverified) {\n            const refined = tryRefineDefinition(jsDefinition, project.getLanguageService().getProgram(), ls.getProgram());\n            if (some(refined)) {\n              for (const def of refined) {\n                definitionSet.add(def);\n              }\n              continue;\n            }\n          }\n          definitionSet.add(jsDefinition);\n        }\n      } else {\n        const ambientCandidates = definitions.filter((d) => toNormalizedPath(d.fileName) !== file && d.isAmbient);\n        for (const candidate of some(ambientCandidates) ? ambientCandidates : getAmbientCandidatesByClimbingAccessChain()) {\n          const fileNameToSearch = findImplementationFileFromDtsFileName(candidate.fileName, file, noDtsProject);\n          if (!fileNameToSearch) continue;\n          const info = this.projectService.getOrCreateScriptInfoNotOpenedByClient(\n            fileNameToSearch,\n            noDtsProject.currentDirectory,\n            noDtsProject.directoryStructureHost,\n            /*deferredDeleteOk*/\n            false\n          );\n          if (!info) continue;\n          if (!noDtsProject.containsScriptInfo(info)) {\n            noDtsProject.addRoot(info);\n            noDtsProject.updateGraph();\n          }\n          const noDtsProgram = ls.getProgram();\n          const fileToSearch = Debug.checkDefined(noDtsProgram.getSourceFile(fileNameToSearch));\n          for (const match of searchForDeclaration(candidate.name, fileToSearch, noDtsProgram)) {\n            definitionSet.add(match);\n          }\n        }\n      }\n      definitions = arrayFrom(definitionSet.values());\n    }\n    definitions = definitions.filter((d) => !d.isAmbient && !d.failedAliasResolution);\n    return this.mapDefinitionInfo(definitions, project);\n    function findImplementationFileFromDtsFileName(fileName, resolveFromFile, auxiliaryProject) {\n      var _a2, _b, _c;\n      const nodeModulesPathParts = getNodeModulePathParts(fileName);\n      if (nodeModulesPathParts && fileName.lastIndexOf(nodeModulesPathPart) === nodeModulesPathParts.topLevelNodeModulesIndex) {\n        const packageDirectory = fileName.substring(0, nodeModulesPathParts.packageRootIndex);\n        const packageJsonCache = (_a2 = project.getModuleResolutionCache()) == null ? void 0 : _a2.getPackageJsonInfoCache();\n        const compilerOptions = project.getCompilationSettings();\n        const packageJson = getPackageScopeForPath(getNormalizedAbsolutePath(packageDirectory, project.getCurrentDirectory()), getTemporaryModuleResolutionState(packageJsonCache, project, compilerOptions));\n        if (!packageJson) return void 0;\n        const entrypoints = getEntrypointsFromPackageJsonInfo(\n          packageJson,\n          { moduleResolution: 2 /* Node10 */ },\n          project,\n          project.getModuleResolutionCache()\n        );\n        const packageNamePathPart = fileName.substring(\n          nodeModulesPathParts.topLevelPackageNameIndex + 1,\n          nodeModulesPathParts.packageRootIndex\n        );\n        const packageName = getPackageNameFromTypesPackageName(unmangleScopedPackageName(packageNamePathPart));\n        const path = project.toPath(fileName);\n        if (entrypoints && some(entrypoints, (e) => project.toPath(e) === path)) {\n          return (_b = auxiliaryProject.resolutionCache.resolveSingleModuleNameWithoutWatching(packageName, resolveFromFile).resolvedModule) == null ? void 0 : _b.resolvedFileName;\n        } else {\n          const pathToFileInPackage = fileName.substring(nodeModulesPathParts.packageRootIndex + 1);\n          const specifier = `${packageName}/${removeFileExtension(pathToFileInPackage)}`;\n          return (_c = auxiliaryProject.resolutionCache.resolveSingleModuleNameWithoutWatching(specifier, resolveFromFile).resolvedModule) == null ? void 0 : _c.resolvedFileName;\n        }\n      }\n      return void 0;\n    }\n    function getAmbientCandidatesByClimbingAccessChain() {\n      const ls = project.getLanguageService();\n      const program = ls.getProgram();\n      const initialNode = getTouchingPropertyName(program.getSourceFile(file), position);\n      if ((isStringLiteralLike(initialNode) || isIdentifier(initialNode)) && isAccessExpression(initialNode.parent)) {\n        return forEachNameInAccessChainWalkingLeft(initialNode, (nameInChain) => {\n          var _a2;\n          if (nameInChain === initialNode) return void 0;\n          const candidates = (_a2 = ls.getDefinitionAtPosition(\n            file,\n            nameInChain.getStart(),\n            /*searchOtherFilesOnly*/\n            true,\n            /*stopAtAlias*/\n            false\n          )) == null ? void 0 : _a2.filter((d) => toNormalizedPath(d.fileName) !== file && d.isAmbient).map((d) => ({\n            fileName: d.fileName,\n            name: getTextOfIdentifierOrLiteral(initialNode)\n          }));\n          if (some(candidates)) {\n            return candidates;\n          }\n        }) || emptyArray2;\n      }\n      return emptyArray2;\n    }\n    function tryRefineDefinition(definition, program, noDtsProgram) {\n      var _a2;\n      const fileToSearch = noDtsProgram.getSourceFile(definition.fileName);\n      if (!fileToSearch) {\n        return void 0;\n      }\n      const initialNode = getTouchingPropertyName(program.getSourceFile(file), position);\n      const symbol = program.getTypeChecker().getSymbolAtLocation(initialNode);\n      const importSpecifier = symbol && getDeclarationOfKind(symbol, 277 /* ImportSpecifier */);\n      if (!importSpecifier) return void 0;\n      const nameToSearch = ((_a2 = importSpecifier.propertyName) == null ? void 0 : _a2.text) || importSpecifier.name.text;\n      return searchForDeclaration(nameToSearch, fileToSearch, noDtsProgram);\n    }\n    function searchForDeclaration(declarationName, fileToSearch, noDtsProgram) {\n      const matches = ts_FindAllReferences_exports.Core.getTopMostDeclarationNamesInFile(declarationName, fileToSearch);\n      return mapDefined(matches, (match) => {\n        const symbol = noDtsProgram.getTypeChecker().getSymbolAtLocation(match);\n        const decl = getDeclarationFromName(match);\n        if (symbol && decl) {\n          return ts_GoToDefinition_exports.createDefinitionInfo(\n            decl,\n            noDtsProgram.getTypeChecker(),\n            symbol,\n            decl,\n            /*unverified*/\n            true\n          );\n        }\n      });\n    }\n  }\n  getEmitOutput(args) {\n    const { file, project } = this.getFileAndProject(args);\n    if (!project.shouldEmitFile(project.getScriptInfo(file))) {\n      return { emitSkipped: true, outputFiles: [], diagnostics: [] };\n    }\n    const result = project.getLanguageService().getEmitOutput(file);\n    return args.richResponse ? {\n      ...result,\n      diagnostics: args.includeLinePosition ? this.convertToDiagnosticsWithLinePositionFromDiagnosticFile(result.diagnostics) : result.diagnostics.map((d) => formatDiagnosticToProtocol(\n        d,\n        /*includeFileName*/\n        true\n      ))\n    } : result;\n  }\n  mapJSDocTagInfo(tags, project, richResponse) {\n    return tags ? tags.map((tag) => {\n      var _a;\n      return {\n        ...tag,\n        text: richResponse ? this.mapDisplayParts(tag.text, project) : (_a = tag.text) == null ? void 0 : _a.map((part) => part.text).join(\"\")\n      };\n    }) : [];\n  }\n  mapDisplayParts(parts, project) {\n    if (!parts) {\n      return [];\n    }\n    return parts.map(\n      (part) => part.kind !== \"linkName\" ? part : {\n        ...part,\n        target: this.toFileSpan(part.target.fileName, part.target.textSpan, project)\n      }\n    );\n  }\n  mapSignatureHelpItems(items, project, richResponse) {\n    return items.map((item) => ({\n      ...item,\n      documentation: this.mapDisplayParts(item.documentation, project),\n      parameters: item.parameters.map((p) => ({ ...p, documentation: this.mapDisplayParts(p.documentation, project) })),\n      tags: this.mapJSDocTagInfo(item.tags, project, richResponse)\n    }));\n  }\n  mapDefinitionInfo(definitions, project) {\n    return definitions.map((def) => ({ ...this.toFileSpanWithContext(def.fileName, def.textSpan, def.contextSpan, project), ...def.unverified && { unverified: def.unverified } }));\n  }\n  /*\n   * When we map a .d.ts location to .ts, Visual Studio gets confused because there's no associated Roslyn Document in\n   * the same project which corresponds to the file. VS Code has no problem with this, and luckily we have two protocols.\n   * This retains the existing behavior for the \"simplified\" (VS Code) protocol but stores the .d.ts location in a\n   * set of additional fields, and does the reverse for VS (store the .d.ts location where\n   * it used to be and stores the .ts location in the additional fields).\n   */\n  static mapToOriginalLocation(def) {\n    if (def.originalFileName) {\n      Debug.assert(def.originalTextSpan !== void 0, \"originalTextSpan should be present if originalFileName is\");\n      return {\n        ...def,\n        fileName: def.originalFileName,\n        textSpan: def.originalTextSpan,\n        targetFileName: def.fileName,\n        targetTextSpan: def.textSpan,\n        contextSpan: def.originalContextSpan,\n        targetContextSpan: def.contextSpan\n      };\n    }\n    return def;\n  }\n  toFileSpan(fileName, textSpan, project) {\n    const ls = project.getLanguageService();\n    const start = ls.toLineColumnOffset(fileName, textSpan.start);\n    const end = ls.toLineColumnOffset(fileName, textSpanEnd(textSpan));\n    return {\n      file: fileName,\n      start: { line: start.line + 1, offset: start.character + 1 },\n      end: { line: end.line + 1, offset: end.character + 1 }\n    };\n  }\n  toFileSpanWithContext(fileName, textSpan, contextSpan, project) {\n    const fileSpan = this.toFileSpan(fileName, textSpan, project);\n    const context = contextSpan && this.toFileSpan(fileName, contextSpan, project);\n    return context ? { ...fileSpan, contextStart: context.start, contextEnd: context.end } : fileSpan;\n  }\n  getTypeDefinition(args) {\n    const { file, project } = this.getFileAndProject(args);\n    const position = this.getPositionInFile(args, file);\n    const definitions = this.mapDefinitionInfoLocations(project.getLanguageService().getTypeDefinitionAtPosition(file, position) || emptyArray2, project);\n    return this.mapDefinitionInfo(definitions, project);\n  }\n  mapImplementationLocations(implementations, project) {\n    return implementations.map((info) => {\n      const newDocumentSpan = getMappedDocumentSpanForProject(info, project);\n      return !newDocumentSpan ? info : {\n        ...newDocumentSpan,\n        kind: info.kind,\n        displayParts: info.displayParts\n      };\n    });\n  }\n  getImplementation(args, simplifiedResult) {\n    const { file, project } = this.getFileAndProject(args);\n    const position = this.getPositionInFile(args, file);\n    const implementations = this.mapImplementationLocations(project.getLanguageService().getImplementationAtPosition(file, position) || emptyArray2, project);\n    return simplifiedResult ? implementations.map(({ fileName, textSpan, contextSpan }) => this.toFileSpanWithContext(fileName, textSpan, contextSpan, project)) : implementations.map(_Session.mapToOriginalLocation);\n  }\n  getSyntacticDiagnosticsSync(args) {\n    const { configFile } = this.getConfigFileAndProject(args);\n    if (configFile) {\n      return emptyArray2;\n    }\n    return this.getDiagnosticsWorker(\n      args,\n      /*isSemantic*/\n      false,\n      (project, file) => project.getLanguageService().getSyntacticDiagnostics(file),\n      !!args.includeLinePosition\n    );\n  }\n  getSemanticDiagnosticsSync(args) {\n    const { configFile, project } = this.getConfigFileAndProject(args);\n    if (configFile) {\n      return this.getConfigFileDiagnostics(configFile, project, !!args.includeLinePosition);\n    }\n    return this.getDiagnosticsWorker(\n      args,\n      /*isSemantic*/\n      true,\n      (project2, file) => project2.getLanguageService().getSemanticDiagnostics(file).filter((d) => !!d.file),\n      !!args.includeLinePosition\n    );\n  }\n  getSuggestionDiagnosticsSync(args) {\n    const { configFile } = this.getConfigFileAndProject(args);\n    if (configFile) {\n      return emptyArray2;\n    }\n    return this.getDiagnosticsWorker(\n      args,\n      /*isSemantic*/\n      true,\n      (project, file) => project.getLanguageService().getSuggestionDiagnostics(file),\n      !!args.includeLinePosition\n    );\n  }\n  getJsxClosingTag(args) {\n    const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args);\n    const position = this.getPositionInFile(args, file);\n    const tag = languageService.getJsxClosingTagAtPosition(file, position);\n    return tag === void 0 ? void 0 : { newText: tag.newText, caretOffset: 0 };\n  }\n  getLinkedEditingRange(args) {\n    const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args);\n    const position = this.getPositionInFile(args, file);\n    const linkedEditInfo = languageService.getLinkedEditingRangeAtPosition(file, position);\n    const scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file);\n    if (scriptInfo === void 0 || linkedEditInfo === void 0) return void 0;\n    return convertLinkedEditInfoToRanges(linkedEditInfo, scriptInfo);\n  }\n  getDocumentHighlights(args, simplifiedResult) {\n    const { file, project } = this.getFileAndProject(args);\n    const position = this.getPositionInFile(args, file);\n    const documentHighlights = project.getLanguageService().getDocumentHighlights(file, position, args.filesToSearch);\n    if (!documentHighlights) return emptyArray2;\n    if (!simplifiedResult) return documentHighlights;\n    return documentHighlights.map(({ fileName, highlightSpans }) => {\n      const scriptInfo = project.getScriptInfo(fileName);\n      return {\n        file: fileName,\n        highlightSpans: highlightSpans.map(({ textSpan, kind, contextSpan }) => ({\n          ...toProtocolTextSpanWithContext(textSpan, contextSpan, scriptInfo),\n          kind\n        }))\n      };\n    });\n  }\n  provideInlayHints(args) {\n    const { file, project } = this.getFileAndProject(args);\n    const scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file);\n    const hints = project.getLanguageService().provideInlayHints(file, args, this.getPreferences(file));\n    return hints.map((hint) => {\n      const { position, displayParts } = hint;\n      return {\n        ...hint,\n        position: scriptInfo.positionToLineOffset(position),\n        displayParts: displayParts == null ? void 0 : displayParts.map(({ text, span, file: file2 }) => {\n          if (span) {\n            Debug.assertIsDefined(file2, \"Target file should be defined together with its span.\");\n            const scriptInfo2 = this.projectService.getScriptInfo(file2);\n            return {\n              text,\n              span: {\n                start: scriptInfo2.positionToLineOffset(span.start),\n                end: scriptInfo2.positionToLineOffset(span.start + span.length),\n                file: file2\n              }\n            };\n          } else {\n            return { text };\n          }\n        })\n      };\n    });\n  }\n  mapCode(args) {\n    var _a;\n    const formatOptions = this.getHostFormatOptions();\n    const preferences = this.getHostPreferences();\n    const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args);\n    const scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file);\n    const focusLocations = (_a = args.mapping.focusLocations) == null ? void 0 : _a.map((spans) => {\n      return spans.map((loc) => {\n        const start = scriptInfo.lineOffsetToPosition(loc.start.line, loc.start.offset);\n        const end = scriptInfo.lineOffsetToPosition(loc.end.line, loc.end.offset);\n        return {\n          start,\n          length: end - start\n        };\n      });\n    });\n    const changes = languageService.mapCode(file, args.mapping.contents, focusLocations, formatOptions, preferences);\n    return this.mapTextChangesToCodeEdits(changes);\n  }\n  getCopilotRelatedInfo() {\n    return {\n      relatedFiles: []\n    };\n  }\n  setCompilerOptionsForInferredProjects(args) {\n    this.projectService.setCompilerOptionsForInferredProjects(args.options, args.projectRootPath);\n  }\n  getProjectInfo(args) {\n    return this.getProjectInfoWorker(\n      args.file,\n      args.projectFileName,\n      args.needFileNameList,\n      args.needDefaultConfiguredProjectInfo,\n      /*excludeConfigFiles*/\n      false\n    );\n  }\n  getProjectInfoWorker(uncheckedFileName, projectFileName, needFileNameList, needDefaultConfiguredProjectInfo, excludeConfigFiles) {\n    const { project } = this.getFileAndProjectWorker(uncheckedFileName, projectFileName);\n    updateProjectIfDirty(project);\n    const projectInfo = {\n      configFileName: project.getProjectName(),\n      languageServiceDisabled: !project.languageServiceEnabled,\n      fileNames: needFileNameList ? project.getFileNames(\n        /*excludeFilesFromExternalLibraries*/\n        false,\n        excludeConfigFiles\n      ) : void 0,\n      configuredProjectInfo: needDefaultConfiguredProjectInfo ? this.getDefaultConfiguredProjectInfo(uncheckedFileName) : void 0\n    };\n    return projectInfo;\n  }\n  getDefaultConfiguredProjectInfo(uncheckedFileName) {\n    var _a;\n    const info = this.projectService.getScriptInfo(uncheckedFileName);\n    if (!info) return;\n    const result = this.projectService.findDefaultConfiguredProjectWorker(\n      info,\n      3 /* CreateReplay */\n    );\n    if (!result) return void 0;\n    let notMatchedByConfig;\n    let notInProject;\n    result.seenProjects.forEach((kind, project) => {\n      if (project !== result.defaultProject) {\n        if (kind !== 3 /* CreateReplay */) {\n          (notMatchedByConfig ?? (notMatchedByConfig = [])).push(toNormalizedPath(project.getConfigFilePath()));\n        } else {\n          (notInProject ?? (notInProject = [])).push(toNormalizedPath(project.getConfigFilePath()));\n        }\n      }\n    });\n    (_a = result.seenConfigs) == null ? void 0 : _a.forEach((config) => (notMatchedByConfig ?? (notMatchedByConfig = [])).push(config));\n    return {\n      notMatchedByConfig,\n      notInProject,\n      defaultProject: result.defaultProject && toNormalizedPath(result.defaultProject.getConfigFilePath())\n    };\n  }\n  getRenameInfo(args) {\n    const { file, project } = this.getFileAndProject(args);\n    const position = this.getPositionInFile(args, file);\n    const preferences = this.getPreferences(file);\n    return project.getLanguageService().getRenameInfo(file, position, preferences);\n  }\n  getProjects(args, getScriptInfoEnsuringProjectsUptoDate, ignoreNoProjectError) {\n    let projects;\n    let symLinkedProjects;\n    if (args.projectFileName) {\n      const project = this.getProject(args.projectFileName);\n      if (project) {\n        projects = [project];\n      }\n    } else {\n      const scriptInfo = getScriptInfoEnsuringProjectsUptoDate ? this.projectService.getScriptInfoEnsuringProjectsUptoDate(args.file) : this.projectService.getScriptInfo(args.file);\n      if (!scriptInfo) {\n        if (ignoreNoProjectError) return emptyArray2;\n        this.projectService.logErrorForScriptInfoNotFound(args.file);\n        return Errors.ThrowNoProject();\n      } else if (!getScriptInfoEnsuringProjectsUptoDate) {\n        this.projectService.ensureDefaultProjectForFile(scriptInfo);\n      }\n      projects = scriptInfo.containingProjects;\n      symLinkedProjects = this.projectService.getSymlinkedProjects(scriptInfo);\n    }\n    projects = filter(projects, (p) => p.languageServiceEnabled && !p.isOrphan());\n    if (!ignoreNoProjectError && (!projects || !projects.length) && !symLinkedProjects) {\n      this.projectService.logErrorForScriptInfoNotFound(args.file ?? args.projectFileName);\n      return Errors.ThrowNoProject();\n    }\n    return symLinkedProjects ? { projects, symLinkedProjects } : projects;\n  }\n  getDefaultProject(args) {\n    if (args.projectFileName) {\n      const project = this.getProject(args.projectFileName);\n      if (project) {\n        return project;\n      }\n      if (!args.file) {\n        return Errors.ThrowNoProject();\n      }\n    }\n    const info = this.projectService.getScriptInfo(args.file);\n    return info.getDefaultProject();\n  }\n  getRenameLocations(args, simplifiedResult) {\n    const file = toNormalizedPath(args.file);\n    const position = this.getPositionInFile(args, file);\n    const projects = this.getProjects(args);\n    const defaultProject = this.getDefaultProject(args);\n    const preferences = this.getPreferences(file);\n    const renameInfo = this.mapRenameInfo(\n      defaultProject.getLanguageService().getRenameInfo(file, position, preferences),\n      Debug.checkDefined(this.projectService.getScriptInfo(file))\n    );\n    if (!renameInfo.canRename) return simplifiedResult ? { info: renameInfo, locs: [] } : [];\n    const locations = getRenameLocationsWorker(\n      projects,\n      defaultProject,\n      { fileName: args.file, pos: position },\n      !!args.findInStrings,\n      !!args.findInComments,\n      preferences,\n      this.host.useCaseSensitiveFileNames\n    );\n    if (!simplifiedResult) return locations;\n    return { info: renameInfo, locs: this.toSpanGroups(locations) };\n  }\n  mapRenameInfo(info, scriptInfo) {\n    if (info.canRename) {\n      const { canRename, fileToRename, displayName, fullDisplayName, kind, kindModifiers, triggerSpan } = info;\n      return identity(\n        { canRename, fileToRename, displayName, fullDisplayName, kind, kindModifiers, triggerSpan: toProtocolTextSpan(triggerSpan, scriptInfo) }\n      );\n    } else {\n      return info;\n    }\n  }\n  toSpanGroups(locations) {\n    const map2 = /* @__PURE__ */ new Map();\n    for (const { fileName, textSpan, contextSpan, originalContextSpan: _2, originalTextSpan: _, originalFileName: _1, ...prefixSuffixText } of locations) {\n      let group2 = map2.get(fileName);\n      if (!group2) map2.set(fileName, group2 = { file: fileName, locs: [] });\n      const scriptInfo = Debug.checkDefined(this.projectService.getScriptInfo(fileName));\n      group2.locs.push({ ...toProtocolTextSpanWithContext(textSpan, contextSpan, scriptInfo), ...prefixSuffixText });\n    }\n    return arrayFrom(map2.values());\n  }\n  getReferences(args, simplifiedResult) {\n    const file = toNormalizedPath(args.file);\n    const projects = this.getProjects(args);\n    const position = this.getPositionInFile(args, file);\n    const references = getReferencesWorker(\n      projects,\n      this.getDefaultProject(args),\n      { fileName: args.file, pos: position },\n      this.host.useCaseSensitiveFileNames,\n      this.logger\n    );\n    if (!simplifiedResult) return references;\n    const preferences = this.getPreferences(file);\n    const defaultProject = this.getDefaultProject(args);\n    const scriptInfo = defaultProject.getScriptInfoForNormalizedPath(file);\n    const nameInfo = defaultProject.getLanguageService().getQuickInfoAtPosition(file, position);\n    const symbolDisplayString = nameInfo ? displayPartsToString(nameInfo.displayParts) : \"\";\n    const nameSpan = nameInfo && nameInfo.textSpan;\n    const symbolStartOffset = nameSpan ? scriptInfo.positionToLineOffset(nameSpan.start).offset : 0;\n    const symbolName2 = nameSpan ? scriptInfo.getSnapshot().getText(nameSpan.start, textSpanEnd(nameSpan)) : \"\";\n    const refs = flatMap(references, (referencedSymbol) => {\n      return referencedSymbol.references.map((entry) => referenceEntryToReferencesResponseItem(this.projectService, entry, preferences));\n    });\n    return { refs, symbolName: symbolName2, symbolStartOffset, symbolDisplayString };\n  }\n  getFileReferences(args, simplifiedResult) {\n    const projects = this.getProjects(args);\n    const fileName = toNormalizedPath(args.file);\n    const preferences = this.getPreferences(fileName);\n    const initialLocation = { fileName, pos: 0 };\n    const perProjectResults = getPerProjectReferences(\n      projects,\n      this.getDefaultProject(args),\n      initialLocation,\n      initialLocation,\n      mapDefinitionInProjectIfFileInProject,\n      (project) => {\n        this.logger.info(`Finding references to file ${fileName} in project ${project.getProjectName()}`);\n        return project.getLanguageService().getFileReferences(fileName);\n      }\n    );\n    let references;\n    if (isArray(perProjectResults)) {\n      references = perProjectResults;\n    } else {\n      references = [];\n      const seen = createDocumentSpanSet(this.host.useCaseSensitiveFileNames);\n      perProjectResults.forEach((projectOutputs) => {\n        for (const referenceEntry of projectOutputs) {\n          if (!seen.has(referenceEntry)) {\n            references.push(referenceEntry);\n            seen.add(referenceEntry);\n          }\n        }\n      });\n    }\n    if (!simplifiedResult) return references;\n    const refs = references.map((entry) => referenceEntryToReferencesResponseItem(this.projectService, entry, preferences));\n    return {\n      refs,\n      symbolName: `\"${args.file}\"`\n    };\n  }\n  /**\n   * @param fileName is the name of the file to be opened\n   * @param fileContent is a version of the file content that is known to be more up to date than the one on disk\n   */\n  openClientFile(fileName, fileContent, scriptKind, projectRootPath) {\n    this.projectService.openClientFileWithNormalizedPath(\n      fileName,\n      fileContent,\n      scriptKind,\n      /*hasMixedContent*/\n      false,\n      projectRootPath\n    );\n  }\n  getPosition(args, scriptInfo) {\n    return args.position !== void 0 ? args.position : scriptInfo.lineOffsetToPosition(args.line, args.offset);\n  }\n  getPositionInFile(args, file) {\n    const scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file);\n    return this.getPosition(args, scriptInfo);\n  }\n  getFileAndProject(args) {\n    return this.getFileAndProjectWorker(args.file, args.projectFileName);\n  }\n  getFileAndLanguageServiceForSyntacticOperation(args) {\n    const { file, project } = this.getFileAndProject(args);\n    return {\n      file,\n      languageService: project.getLanguageService(\n        /*ensureSynchronized*/\n        false\n      )\n    };\n  }\n  getFileAndProjectWorker(uncheckedFileName, projectFileName) {\n    const file = toNormalizedPath(uncheckedFileName);\n    const project = this.getProject(projectFileName) || this.projectService.ensureDefaultProjectForFile(file);\n    return { file, project };\n  }\n  getOutliningSpans(args, simplifiedResult) {\n    const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args);\n    const spans = languageService.getOutliningSpans(file);\n    if (simplifiedResult) {\n      const scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file);\n      return spans.map((s) => ({\n        textSpan: toProtocolTextSpan(s.textSpan, scriptInfo),\n        hintSpan: toProtocolTextSpan(s.hintSpan, scriptInfo),\n        bannerText: s.bannerText,\n        autoCollapse: s.autoCollapse,\n        kind: s.kind\n      }));\n    } else {\n      return spans;\n    }\n  }\n  getTodoComments(args) {\n    const { file, project } = this.getFileAndProject(args);\n    return project.getLanguageService().getTodoComments(file, args.descriptors);\n  }\n  getDocCommentTemplate(args) {\n    const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args);\n    const position = this.getPositionInFile(args, file);\n    return languageService.getDocCommentTemplateAtPosition(file, position, this.getPreferences(file), this.getFormatOptions(file));\n  }\n  getSpanOfEnclosingComment(args) {\n    const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args);\n    const onlyMultiLine = args.onlyMultiLine;\n    const position = this.getPositionInFile(args, file);\n    return languageService.getSpanOfEnclosingComment(file, position, onlyMultiLine);\n  }\n  getIndentation(args) {\n    const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args);\n    const position = this.getPositionInFile(args, file);\n    const options = args.options ? convertFormatOptions(args.options) : this.getFormatOptions(file);\n    const indentation = languageService.getIndentationAtPosition(file, position, options);\n    return { position, indentation };\n  }\n  getBreakpointStatement(args) {\n    const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args);\n    const position = this.getPositionInFile(args, file);\n    return languageService.getBreakpointStatementAtPosition(file, position);\n  }\n  getNameOrDottedNameSpan(args) {\n    const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args);\n    const position = this.getPositionInFile(args, file);\n    return languageService.getNameOrDottedNameSpan(file, position, position);\n  }\n  isValidBraceCompletion(args) {\n    const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args);\n    const position = this.getPositionInFile(args, file);\n    return languageService.isValidBraceCompletionAtPosition(file, position, args.openingBrace.charCodeAt(0));\n  }\n  getQuickInfoWorker(args, simplifiedResult) {\n    const { file, project } = this.getFileAndProject(args);\n    const scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file);\n    const userPreferences = this.getPreferences(file);\n    const quickInfo = project.getLanguageService().getQuickInfoAtPosition(\n      file,\n      this.getPosition(args, scriptInfo),\n      userPreferences.maximumHoverLength,\n      args.verbosityLevel\n    );\n    if (!quickInfo) {\n      return void 0;\n    }\n    const useDisplayParts = !!userPreferences.displayPartsForJSDoc;\n    if (simplifiedResult) {\n      const displayString = displayPartsToString(quickInfo.displayParts);\n      return {\n        kind: quickInfo.kind,\n        kindModifiers: quickInfo.kindModifiers,\n        start: scriptInfo.positionToLineOffset(quickInfo.textSpan.start),\n        end: scriptInfo.positionToLineOffset(textSpanEnd(quickInfo.textSpan)),\n        displayString,\n        documentation: useDisplayParts ? this.mapDisplayParts(quickInfo.documentation, project) : displayPartsToString(quickInfo.documentation),\n        tags: this.mapJSDocTagInfo(quickInfo.tags, project, useDisplayParts),\n        canIncreaseVerbosityLevel: quickInfo.canIncreaseVerbosityLevel\n      };\n    } else {\n      return useDisplayParts ? quickInfo : {\n        ...quickInfo,\n        tags: this.mapJSDocTagInfo(\n          quickInfo.tags,\n          project,\n          /*richResponse*/\n          false\n        )\n      };\n    }\n  }\n  getFormattingEditsForRange(args) {\n    const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args);\n    const scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file);\n    const startPosition = scriptInfo.lineOffsetToPosition(args.line, args.offset);\n    const endPosition = scriptInfo.lineOffsetToPosition(args.endLine, args.endOffset);\n    const edits = languageService.getFormattingEditsForRange(file, startPosition, endPosition, this.getFormatOptions(file));\n    if (!edits) {\n      return void 0;\n    }\n    return edits.map((edit) => this.convertTextChangeToCodeEdit(edit, scriptInfo));\n  }\n  getFormattingEditsForRangeFull(args) {\n    const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args);\n    const options = args.options ? convertFormatOptions(args.options) : this.getFormatOptions(file);\n    return languageService.getFormattingEditsForRange(file, args.position, args.endPosition, options);\n  }\n  getFormattingEditsForDocumentFull(args) {\n    const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args);\n    const options = args.options ? convertFormatOptions(args.options) : this.getFormatOptions(file);\n    return languageService.getFormattingEditsForDocument(file, options);\n  }\n  getFormattingEditsAfterKeystrokeFull(args) {\n    const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args);\n    const options = args.options ? convertFormatOptions(args.options) : this.getFormatOptions(file);\n    return languageService.getFormattingEditsAfterKeystroke(file, args.position, args.key, options);\n  }\n  getFormattingEditsAfterKeystroke(args) {\n    const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args);\n    const scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file);\n    const position = scriptInfo.lineOffsetToPosition(args.line, args.offset);\n    const formatOptions = this.getFormatOptions(file);\n    const edits = languageService.getFormattingEditsAfterKeystroke(file, position, args.key, formatOptions);\n    if (args.key === \"\\n\" && (!edits || edits.length === 0 || allEditsBeforePos(edits, position))) {\n      const { lineText, absolutePosition } = scriptInfo.textStorage.getAbsolutePositionAndLineText(args.line);\n      if (lineText && lineText.search(\"\\\\S\") < 0) {\n        const preferredIndent = languageService.getIndentationAtPosition(file, position, formatOptions);\n        let hasIndent = 0;\n        let i, len;\n        for (i = 0, len = lineText.length; i < len; i++) {\n          if (lineText.charAt(i) === \" \") {\n            hasIndent++;\n          } else if (lineText.charAt(i) === \"\t\") {\n            hasIndent += formatOptions.tabSize;\n          } else {\n            break;\n          }\n        }\n        if (preferredIndent !== hasIndent) {\n          const firstNoWhiteSpacePosition = absolutePosition + i;\n          edits.push({\n            span: createTextSpanFromBounds(absolutePosition, firstNoWhiteSpacePosition),\n            newText: ts_formatting_exports.getIndentationString(preferredIndent, formatOptions)\n          });\n        }\n      }\n    }\n    if (!edits) {\n      return void 0;\n    }\n    return edits.map((edit) => {\n      return {\n        start: scriptInfo.positionToLineOffset(edit.span.start),\n        end: scriptInfo.positionToLineOffset(textSpanEnd(edit.span)),\n        newText: edit.newText ? edit.newText : \"\"\n      };\n    });\n  }\n  getCompletions(args, kind) {\n    const { file, project } = this.getFileAndProject(args);\n    const scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file);\n    const position = this.getPosition(args, scriptInfo);\n    const completions = project.getLanguageService().getCompletionsAtPosition(\n      file,\n      position,\n      {\n        ...convertUserPreferences(this.getPreferences(file)),\n        triggerCharacter: args.triggerCharacter,\n        triggerKind: args.triggerKind,\n        includeExternalModuleExports: args.includeExternalModuleExports,\n        includeInsertTextCompletions: args.includeInsertTextCompletions\n      },\n      project.projectService.getFormatCodeOptions(file)\n    );\n    if (completions === void 0) return void 0;\n    if (kind === \"completions-full\" /* CompletionsFull */) return completions;\n    const prefix = args.prefix || \"\";\n    const entries = mapDefined(completions.entries, (entry) => {\n      if (completions.isMemberCompletion || startsWith(entry.name.toLowerCase(), prefix.toLowerCase())) {\n        const convertedSpan = entry.replacementSpan ? toProtocolTextSpan(entry.replacementSpan, scriptInfo) : void 0;\n        return {\n          ...entry,\n          replacementSpan: convertedSpan,\n          hasAction: entry.hasAction || void 0,\n          symbol: void 0\n        };\n      }\n    });\n    if (kind === \"completions\" /* Completions */) {\n      if (completions.metadata) entries.metadata = completions.metadata;\n      return entries;\n    }\n    const res = {\n      ...completions,\n      optionalReplacementSpan: completions.optionalReplacementSpan && toProtocolTextSpan(completions.optionalReplacementSpan, scriptInfo),\n      entries\n    };\n    return res;\n  }\n  getCompletionEntryDetails(args, fullResult) {\n    const { file, project } = this.getFileAndProject(args);\n    const scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file);\n    const position = this.getPosition(args, scriptInfo);\n    const formattingOptions = project.projectService.getFormatCodeOptions(file);\n    const useDisplayParts = !!this.getPreferences(file).displayPartsForJSDoc;\n    const result = mapDefined(args.entryNames, (entryName) => {\n      const { name, source, data } = typeof entryName === \"string\" ? { name: entryName, source: void 0, data: void 0 } : entryName;\n      return project.getLanguageService().getCompletionEntryDetails(file, position, name, formattingOptions, source, this.getPreferences(file), data ? cast(data, isCompletionEntryData) : void 0);\n    });\n    return fullResult ? useDisplayParts ? result : result.map((details) => ({ ...details, tags: this.mapJSDocTagInfo(\n      details.tags,\n      project,\n      /*richResponse*/\n      false\n    ) })) : result.map((details) => ({\n      ...details,\n      codeActions: map(details.codeActions, (action) => this.mapCodeAction(action)),\n      documentation: this.mapDisplayParts(details.documentation, project),\n      tags: this.mapJSDocTagInfo(details.tags, project, useDisplayParts)\n    }));\n  }\n  getCompileOnSaveAffectedFileList(args) {\n    const projects = this.getProjects(\n      args,\n      /*getScriptInfoEnsuringProjectsUptoDate*/\n      true,\n      /*ignoreNoProjectError*/\n      true\n    );\n    const info = this.projectService.getScriptInfo(args.file);\n    if (!info) {\n      return emptyArray2;\n    }\n    return combineProjectOutput(\n      info,\n      (path) => this.projectService.getScriptInfoForPath(path),\n      projects,\n      (project, info2) => {\n        if (!project.compileOnSaveEnabled || !project.languageServiceEnabled || project.isOrphan()) {\n          return void 0;\n        }\n        const compilationSettings = project.getCompilationSettings();\n        if (!!compilationSettings.noEmit || isDeclarationFileName(info2.fileName) && !dtsChangeCanAffectEmit(compilationSettings)) {\n          return void 0;\n        }\n        return {\n          projectFileName: project.getProjectName(),\n          fileNames: project.getCompileOnSaveAffectedFileList(info2),\n          projectUsesOutFile: !!compilationSettings.outFile\n        };\n      }\n    );\n  }\n  emitFile(args) {\n    const { file, project } = this.getFileAndProject(args);\n    if (!project) {\n      Errors.ThrowNoProject();\n    }\n    if (!project.languageServiceEnabled) {\n      return args.richResponse ? { emitSkipped: true, diagnostics: [] } : false;\n    }\n    const scriptInfo = project.getScriptInfo(file);\n    const { emitSkipped, diagnostics } = project.emitFile(scriptInfo, (path, data, writeByteOrderMark) => this.host.writeFile(path, data, writeByteOrderMark));\n    return args.richResponse ? {\n      emitSkipped,\n      diagnostics: args.includeLinePosition ? this.convertToDiagnosticsWithLinePositionFromDiagnosticFile(diagnostics) : diagnostics.map((d) => formatDiagnosticToProtocol(\n        d,\n        /*includeFileName*/\n        true\n      ))\n    } : !emitSkipped;\n  }\n  getSignatureHelpItems(args, simplifiedResult) {\n    const { file, project } = this.getFileAndProject(args);\n    const scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file);\n    const position = this.getPosition(args, scriptInfo);\n    const helpItems = project.getLanguageService().getSignatureHelpItems(file, position, args);\n    const useDisplayParts = !!this.getPreferences(file).displayPartsForJSDoc;\n    if (helpItems && simplifiedResult) {\n      const span = helpItems.applicableSpan;\n      return {\n        ...helpItems,\n        applicableSpan: {\n          start: scriptInfo.positionToLineOffset(span.start),\n          end: scriptInfo.positionToLineOffset(span.start + span.length)\n        },\n        items: this.mapSignatureHelpItems(helpItems.items, project, useDisplayParts)\n      };\n    } else if (useDisplayParts || !helpItems) {\n      return helpItems;\n    } else {\n      return {\n        ...helpItems,\n        items: helpItems.items.map((item) => ({ ...item, tags: this.mapJSDocTagInfo(\n          item.tags,\n          project,\n          /*richResponse*/\n          false\n        ) }))\n      };\n    }\n  }\n  toPendingErrorCheck(uncheckedFileName) {\n    const fileName = toNormalizedPath(uncheckedFileName);\n    const project = this.projectService.tryGetDefaultProjectForFile(fileName);\n    return project && { fileName, project };\n  }\n  getDiagnostics(next, delay, fileArgs) {\n    if (this.suppressDiagnosticEvents) {\n      return;\n    }\n    if (fileArgs.length > 0) {\n      this.updateErrorCheck(next, fileArgs, delay);\n    }\n  }\n  change(args) {\n    const scriptInfo = this.projectService.getScriptInfo(args.file);\n    Debug.assert(!!scriptInfo);\n    scriptInfo.textStorage.switchToScriptVersionCache();\n    const start = scriptInfo.lineOffsetToPosition(args.line, args.offset);\n    const end = scriptInfo.lineOffsetToPosition(args.endLine, args.endOffset);\n    if (start >= 0) {\n      this.changeSeq++;\n      this.projectService.applyChangesToFile(\n        scriptInfo,\n        singleIterator({\n          span: { start, length: end - start },\n          newText: args.insertString\n          // TODO: GH#18217\n        })\n      );\n    }\n  }\n  reload(args) {\n    const file = toNormalizedPath(args.file);\n    const tempFileName = args.tmpfile === void 0 ? void 0 : toNormalizedPath(args.tmpfile);\n    const info = this.projectService.getScriptInfoForNormalizedPath(file);\n    if (info) {\n      this.changeSeq++;\n      info.reloadFromFile(tempFileName);\n    }\n  }\n  saveToTmp(fileName, tempFileName) {\n    const scriptInfo = this.projectService.getScriptInfo(fileName);\n    if (scriptInfo) {\n      scriptInfo.saveTo(tempFileName);\n    }\n  }\n  closeClientFile(fileName) {\n    if (!fileName) {\n      return;\n    }\n    const file = normalizePath(fileName);\n    this.projectService.closeClientFile(file);\n  }\n  mapLocationNavigationBarItems(items, scriptInfo) {\n    return map(items, (item) => ({\n      text: item.text,\n      kind: item.kind,\n      kindModifiers: item.kindModifiers,\n      spans: item.spans.map((span) => toProtocolTextSpan(span, scriptInfo)),\n      childItems: this.mapLocationNavigationBarItems(item.childItems, scriptInfo),\n      indent: item.indent\n    }));\n  }\n  getNavigationBarItems(args, simplifiedResult) {\n    const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args);\n    const items = languageService.getNavigationBarItems(file);\n    return !items ? void 0 : simplifiedResult ? this.mapLocationNavigationBarItems(items, this.projectService.getScriptInfoForNormalizedPath(file)) : items;\n  }\n  toLocationNavigationTree(tree, scriptInfo) {\n    return {\n      text: tree.text,\n      kind: tree.kind,\n      kindModifiers: tree.kindModifiers,\n      spans: tree.spans.map((span) => toProtocolTextSpan(span, scriptInfo)),\n      nameSpan: tree.nameSpan && toProtocolTextSpan(tree.nameSpan, scriptInfo),\n      childItems: map(tree.childItems, (item) => this.toLocationNavigationTree(item, scriptInfo))\n    };\n  }\n  getNavigationTree(args, simplifiedResult) {\n    const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args);\n    const tree = languageService.getNavigationTree(file);\n    return !tree ? void 0 : simplifiedResult ? this.toLocationNavigationTree(tree, this.projectService.getScriptInfoForNormalizedPath(file)) : tree;\n  }\n  getNavigateToItems(args, simplifiedResult) {\n    const full = this.getFullNavigateToItems(args);\n    return !simplifiedResult ? flatMap(full, ({ navigateToItems }) => navigateToItems) : flatMap(\n      full,\n      ({ project, navigateToItems }) => navigateToItems.map((navItem) => {\n        const scriptInfo = project.getScriptInfo(navItem.fileName);\n        const bakedItem = {\n          name: navItem.name,\n          kind: navItem.kind,\n          kindModifiers: navItem.kindModifiers,\n          isCaseSensitive: navItem.isCaseSensitive,\n          matchKind: navItem.matchKind,\n          file: navItem.fileName,\n          start: scriptInfo.positionToLineOffset(navItem.textSpan.start),\n          end: scriptInfo.positionToLineOffset(textSpanEnd(navItem.textSpan))\n        };\n        if (navItem.kindModifiers && navItem.kindModifiers !== \"\") {\n          bakedItem.kindModifiers = navItem.kindModifiers;\n        }\n        if (navItem.containerName && navItem.containerName.length > 0) {\n          bakedItem.containerName = navItem.containerName;\n        }\n        if (navItem.containerKind && navItem.containerKind.length > 0) {\n          bakedItem.containerKind = navItem.containerKind;\n        }\n        return bakedItem;\n      })\n    );\n  }\n  getFullNavigateToItems(args) {\n    const { currentFileOnly, searchValue, maxResultCount, projectFileName } = args;\n    if (currentFileOnly) {\n      Debug.assertIsDefined(args.file);\n      const { file, project } = this.getFileAndProject(args);\n      return [{ project, navigateToItems: project.getLanguageService().getNavigateToItems(searchValue, maxResultCount, file) }];\n    }\n    const preferences = this.getHostPreferences();\n    const outputs = [];\n    const seenItems = /* @__PURE__ */ new Map();\n    if (!args.file && !projectFileName) {\n      this.projectService.loadAncestorProjectTree();\n      this.projectService.forEachEnabledProject((project) => addItemsForProject(project));\n    } else {\n      const projects = this.getProjects(args);\n      forEachProjectInProjects(\n        projects,\n        /*path*/\n        void 0,\n        (project) => addItemsForProject(project)\n      );\n    }\n    return outputs;\n    function addItemsForProject(project) {\n      const projectItems = project.getLanguageService().getNavigateToItems(\n        searchValue,\n        maxResultCount,\n        /*fileName*/\n        void 0,\n        /*excludeDts*/\n        project.isNonTsProject(),\n        /*excludeLibFiles*/\n        preferences.excludeLibrarySymbolsInNavTo\n      );\n      const unseenItems = filter(projectItems, (item) => tryAddSeenItem(item) && !getMappedLocationForProject(documentSpanLocation(item), project));\n      if (unseenItems.length) {\n        outputs.push({ project, navigateToItems: unseenItems });\n      }\n    }\n    function tryAddSeenItem(item) {\n      const name = item.name;\n      if (!seenItems.has(name)) {\n        seenItems.set(name, [item]);\n        return true;\n      }\n      const seen = seenItems.get(name);\n      for (const seenItem of seen) {\n        if (navigateToItemIsEqualTo(seenItem, item)) {\n          return false;\n        }\n      }\n      seen.push(item);\n      return true;\n    }\n    function navigateToItemIsEqualTo(a, b) {\n      if (a === b) {\n        return true;\n      }\n      if (!a || !b) {\n        return false;\n      }\n      return a.containerKind === b.containerKind && a.containerName === b.containerName && a.fileName === b.fileName && a.isCaseSensitive === b.isCaseSensitive && a.kind === b.kind && a.kindModifiers === b.kindModifiers && a.matchKind === b.matchKind && a.name === b.name && a.textSpan.start === b.textSpan.start && a.textSpan.length === b.textSpan.length;\n    }\n  }\n  getSupportedCodeFixes(args) {\n    if (!args) return getSupportedCodeFixes();\n    if (args.file) {\n      const { file, project: project2 } = this.getFileAndProject(args);\n      return project2.getLanguageService().getSupportedCodeFixes(file);\n    }\n    const project = this.getProject(args.projectFileName);\n    if (!project) Errors.ThrowNoProject();\n    return project.getLanguageService().getSupportedCodeFixes();\n  }\n  isLocation(locationOrSpan) {\n    return locationOrSpan.line !== void 0;\n  }\n  extractPositionOrRange(args, scriptInfo) {\n    let position;\n    let textRange;\n    if (this.isLocation(args)) {\n      position = getPosition(args);\n    } else {\n      textRange = this.getRange(args, scriptInfo);\n    }\n    return Debug.checkDefined(position === void 0 ? textRange : position);\n    function getPosition(loc) {\n      return loc.position !== void 0 ? loc.position : scriptInfo.lineOffsetToPosition(loc.line, loc.offset);\n    }\n  }\n  getRange(args, scriptInfo) {\n    const { startPosition, endPosition } = this.getStartAndEndPosition(args, scriptInfo);\n    return { pos: startPosition, end: endPosition };\n  }\n  getApplicableRefactors(args) {\n    const { file, project } = this.getFileAndProject(args);\n    const scriptInfo = project.getScriptInfoForNormalizedPath(file);\n    const result = project.getLanguageService().getApplicableRefactors(file, this.extractPositionOrRange(args, scriptInfo), this.getPreferences(file), args.triggerReason, args.kind, args.includeInteractiveActions);\n    return result.map((result2) => ({ ...result2, actions: result2.actions.map((action) => ({ ...action, range: action.range ? { start: convertToLocation({ line: action.range.start.line, character: action.range.start.offset }), end: convertToLocation({ line: action.range.end.line, character: action.range.end.offset }) } : void 0 })) }));\n  }\n  getEditsForRefactor(args, simplifiedResult) {\n    const { file, project } = this.getFileAndProject(args);\n    const scriptInfo = project.getScriptInfoForNormalizedPath(file);\n    const result = project.getLanguageService().getEditsForRefactor(\n      file,\n      this.getFormatOptions(file),\n      this.extractPositionOrRange(args, scriptInfo),\n      args.refactor,\n      args.action,\n      this.getPreferences(file),\n      args.interactiveRefactorArguments\n    );\n    if (result === void 0) {\n      return {\n        edits: []\n      };\n    }\n    if (simplifiedResult) {\n      const { renameFilename, renameLocation, edits } = result;\n      let mappedRenameLocation;\n      if (renameFilename !== void 0 && renameLocation !== void 0) {\n        const renameScriptInfo = project.getScriptInfoForNormalizedPath(toNormalizedPath(renameFilename));\n        mappedRenameLocation = getLocationInNewDocument(getSnapshotText(renameScriptInfo.getSnapshot()), renameFilename, renameLocation, edits);\n      }\n      return {\n        renameLocation: mappedRenameLocation,\n        renameFilename,\n        edits: this.mapTextChangesToCodeEdits(edits),\n        notApplicableReason: result.notApplicableReason\n      };\n    }\n    return result;\n  }\n  getMoveToRefactoringFileSuggestions(args) {\n    const { file, project } = this.getFileAndProject(args);\n    const scriptInfo = project.getScriptInfoForNormalizedPath(file);\n    return project.getLanguageService().getMoveToRefactoringFileSuggestions(file, this.extractPositionOrRange(args, scriptInfo), this.getPreferences(file));\n  }\n  preparePasteEdits(args) {\n    const { file, project } = this.getFileAndProject(args);\n    return project.getLanguageService().preparePasteEditsForFile(file, args.copiedTextSpan.map((copies) => this.getRange({ file, startLine: copies.start.line, startOffset: copies.start.offset, endLine: copies.end.line, endOffset: copies.end.offset }, this.projectService.getScriptInfoForNormalizedPath(file))));\n  }\n  getPasteEdits(args) {\n    const { file, project } = this.getFileAndProject(args);\n    if (isDynamicFileName(file)) return void 0;\n    const copiedFrom = args.copiedFrom ? { file: args.copiedFrom.file, range: args.copiedFrom.spans.map((copies) => this.getRange({ file: args.copiedFrom.file, startLine: copies.start.line, startOffset: copies.start.offset, endLine: copies.end.line, endOffset: copies.end.offset }, project.getScriptInfoForNormalizedPath(toNormalizedPath(args.copiedFrom.file)))) } : void 0;\n    const result = project.getLanguageService().getPasteEdits(\n      {\n        targetFile: file,\n        pastedText: args.pastedText,\n        pasteLocations: args.pasteLocations.map((paste) => this.getRange({ file, startLine: paste.start.line, startOffset: paste.start.offset, endLine: paste.end.line, endOffset: paste.end.offset }, project.getScriptInfoForNormalizedPath(file))),\n        copiedFrom,\n        preferences: this.getPreferences(file)\n      },\n      this.getFormatOptions(file)\n    );\n    return result && this.mapPasteEditsAction(result);\n  }\n  organizeImports(args, simplifiedResult) {\n    Debug.assert(args.scope.type === \"file\");\n    const { file, project } = this.getFileAndProject(args.scope.args);\n    const changes = project.getLanguageService().organizeImports(\n      {\n        fileName: file,\n        mode: args.mode ?? (args.skipDestructiveCodeActions ? \"SortAndCombine\" /* SortAndCombine */ : void 0),\n        type: \"file\"\n      },\n      this.getFormatOptions(file),\n      this.getPreferences(file)\n    );\n    if (simplifiedResult) {\n      return this.mapTextChangesToCodeEdits(changes);\n    } else {\n      return changes;\n    }\n  }\n  getEditsForFileRename(args, simplifiedResult) {\n    const oldPath = toNormalizedPath(args.oldFilePath);\n    const newPath = toNormalizedPath(args.newFilePath);\n    const formatOptions = this.getHostFormatOptions();\n    const preferences = this.getHostPreferences();\n    const seenFiles = /* @__PURE__ */ new Set();\n    const textChanges2 = [];\n    this.projectService.loadAncestorProjectTree();\n    this.projectService.forEachEnabledProject((project) => {\n      const projectTextChanges = project.getLanguageService().getEditsForFileRename(oldPath, newPath, formatOptions, preferences);\n      const projectFiles = [];\n      for (const textChange of projectTextChanges) {\n        if (!seenFiles.has(textChange.fileName)) {\n          textChanges2.push(textChange);\n          projectFiles.push(textChange.fileName);\n        }\n      }\n      for (const file of projectFiles) {\n        seenFiles.add(file);\n      }\n    });\n    return simplifiedResult ? textChanges2.map((c) => this.mapTextChangeToCodeEdit(c)) : textChanges2;\n  }\n  getCodeFixes(args, simplifiedResult) {\n    const { file, project } = this.getFileAndProject(args);\n    const scriptInfo = project.getScriptInfoForNormalizedPath(file);\n    const { startPosition, endPosition } = this.getStartAndEndPosition(args, scriptInfo);\n    let codeActions;\n    try {\n      codeActions = project.getLanguageService().getCodeFixesAtPosition(file, startPosition, endPosition, args.errorCodes, this.getFormatOptions(file), this.getPreferences(file));\n    } catch (e) {\n      const error2 = e instanceof Error ? e : new Error(e);\n      const ls = project.getLanguageService();\n      const existingDiagCodes = [\n        ...ls.getSyntacticDiagnostics(file),\n        ...ls.getSemanticDiagnostics(file),\n        ...ls.getSuggestionDiagnostics(file)\n      ].filter((d) => decodedTextSpanIntersectsWith(startPosition, endPosition - startPosition, d.start, d.length)).map((d) => d.code);\n      const badCode = args.errorCodes.find((c) => !existingDiagCodes.includes(c));\n      if (badCode !== void 0) {\n        error2.message += `\nAdditional information: BADCLIENT: Bad error code, ${badCode} not found in range ${startPosition}..${endPosition} (found: ${existingDiagCodes.join(\", \")})`;\n      }\n      throw error2;\n    }\n    return simplifiedResult ? codeActions.map((codeAction) => this.mapCodeFixAction(codeAction)) : codeActions;\n  }\n  getCombinedCodeFix({ scope, fixId: fixId56 }, simplifiedResult) {\n    Debug.assert(scope.type === \"file\");\n    const { file, project } = this.getFileAndProject(scope.args);\n    const res = project.getLanguageService().getCombinedCodeFix({ type: \"file\", fileName: file }, fixId56, this.getFormatOptions(file), this.getPreferences(file));\n    if (simplifiedResult) {\n      return { changes: this.mapTextChangesToCodeEdits(res.changes), commands: res.commands };\n    } else {\n      return res;\n    }\n  }\n  applyCodeActionCommand(args) {\n    const commands = args.command;\n    for (const command of toArray(commands)) {\n      const { file, project } = this.getFileAndProject(command);\n      project.getLanguageService().applyCodeActionCommand(command, this.getFormatOptions(file)).then(\n        (_result) => {\n        },\n        (_error) => {\n        }\n      );\n    }\n    return {};\n  }\n  getStartAndEndPosition(args, scriptInfo) {\n    let startPosition, endPosition;\n    if (args.startPosition !== void 0) {\n      startPosition = args.startPosition;\n    } else {\n      startPosition = scriptInfo.lineOffsetToPosition(args.startLine, args.startOffset);\n      args.startPosition = startPosition;\n    }\n    if (args.endPosition !== void 0) {\n      endPosition = args.endPosition;\n    } else {\n      endPosition = scriptInfo.lineOffsetToPosition(args.endLine, args.endOffset);\n      args.endPosition = endPosition;\n    }\n    return { startPosition, endPosition };\n  }\n  mapCodeAction({ description: description3, changes, commands }) {\n    return { description: description3, changes: this.mapTextChangesToCodeEdits(changes), commands };\n  }\n  mapCodeFixAction({ fixName: fixName8, description: description3, changes, commands, fixId: fixId56, fixAllDescription }) {\n    return { fixName: fixName8, description: description3, changes: this.mapTextChangesToCodeEdits(changes), commands, fixId: fixId56, fixAllDescription };\n  }\n  mapPasteEditsAction({ edits, fixId: fixId56 }) {\n    return { edits: this.mapTextChangesToCodeEdits(edits), fixId: fixId56 };\n  }\n  mapTextChangesToCodeEdits(textChanges2) {\n    return textChanges2.map((change) => this.mapTextChangeToCodeEdit(change));\n  }\n  mapTextChangeToCodeEdit(textChanges2) {\n    const scriptInfo = this.projectService.getScriptInfoOrConfig(textChanges2.fileName);\n    if (!!textChanges2.isNewFile === !!scriptInfo) {\n      if (!scriptInfo) {\n        this.projectService.logErrorForScriptInfoNotFound(textChanges2.fileName);\n      }\n      Debug.fail(\"Expected isNewFile for (only) new files. \" + JSON.stringify({ isNewFile: !!textChanges2.isNewFile, hasScriptInfo: !!scriptInfo }));\n    }\n    return scriptInfo ? { fileName: textChanges2.fileName, textChanges: textChanges2.textChanges.map((textChange) => convertTextChangeToCodeEdit(textChange, scriptInfo)) } : convertNewFileTextChangeToCodeEdit(textChanges2);\n  }\n  convertTextChangeToCodeEdit(change, scriptInfo) {\n    return {\n      start: scriptInfo.positionToLineOffset(change.span.start),\n      end: scriptInfo.positionToLineOffset(change.span.start + change.span.length),\n      newText: change.newText ? change.newText : \"\"\n    };\n  }\n  getBraceMatching(args, simplifiedResult) {\n    const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args);\n    const scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file);\n    const position = this.getPosition(args, scriptInfo);\n    const spans = languageService.getBraceMatchingAtPosition(file, position);\n    return !spans ? void 0 : simplifiedResult ? spans.map((span) => toProtocolTextSpan(span, scriptInfo)) : spans;\n  }\n  getDiagnosticsForProject(next, delay, fileName) {\n    if (this.suppressDiagnosticEvents) {\n      return;\n    }\n    const { fileNames, languageServiceDisabled } = this.getProjectInfoWorker(\n      fileName,\n      /*projectFileName*/\n      void 0,\n      /*needFileNameList*/\n      true,\n      /*needDefaultConfiguredProjectInfo*/\n      void 0,\n      /*excludeConfigFiles*/\n      true\n    );\n    if (languageServiceDisabled) return;\n    const fileNamesInProject = fileNames.filter((value) => !value.includes(\"lib.d.ts\"));\n    if (fileNamesInProject.length === 0) return;\n    const highPriorityFiles = [];\n    const mediumPriorityFiles = [];\n    const lowPriorityFiles = [];\n    const veryLowPriorityFiles = [];\n    const normalizedFileName = toNormalizedPath(fileName);\n    const project = this.projectService.ensureDefaultProjectForFile(normalizedFileName);\n    for (const fileNameInProject of fileNamesInProject) {\n      if (this.getCanonicalFileName(fileNameInProject) === this.getCanonicalFileName(fileName)) {\n        highPriorityFiles.push(fileNameInProject);\n      } else {\n        const info = this.projectService.getScriptInfo(fileNameInProject);\n        if (!info.isScriptOpen()) {\n          if (isDeclarationFileName(fileNameInProject)) {\n            veryLowPriorityFiles.push(fileNameInProject);\n          } else {\n            lowPriorityFiles.push(fileNameInProject);\n          }\n        } else {\n          mediumPriorityFiles.push(fileNameInProject);\n        }\n      }\n    }\n    const sortedFiles = [...highPriorityFiles, ...mediumPriorityFiles, ...lowPriorityFiles, ...veryLowPriorityFiles];\n    const checkList = sortedFiles.map((fileName2) => ({ fileName: fileName2, project }));\n    this.updateErrorCheck(\n      next,\n      checkList,\n      delay,\n      /*requireOpen*/\n      false\n    );\n  }\n  configurePlugin(args) {\n    this.projectService.configurePlugin(args);\n  }\n  getSmartSelectionRange(args, simplifiedResult) {\n    const { locations } = args;\n    const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args);\n    const scriptInfo = Debug.checkDefined(this.projectService.getScriptInfo(file));\n    return map(locations, (location) => {\n      const pos = this.getPosition(location, scriptInfo);\n      const selectionRange = languageService.getSmartSelectionRange(file, pos);\n      return simplifiedResult ? this.mapSelectionRange(selectionRange, scriptInfo) : selectionRange;\n    });\n  }\n  toggleLineComment(args, simplifiedResult) {\n    const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args);\n    const scriptInfo = this.projectService.getScriptInfo(file);\n    const textRange = this.getRange(args, scriptInfo);\n    const textChanges2 = languageService.toggleLineComment(file, textRange);\n    if (simplifiedResult) {\n      const scriptInfo2 = this.projectService.getScriptInfoForNormalizedPath(file);\n      return textChanges2.map((textChange) => this.convertTextChangeToCodeEdit(textChange, scriptInfo2));\n    }\n    return textChanges2;\n  }\n  toggleMultilineComment(args, simplifiedResult) {\n    const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args);\n    const scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file);\n    const textRange = this.getRange(args, scriptInfo);\n    const textChanges2 = languageService.toggleMultilineComment(file, textRange);\n    if (simplifiedResult) {\n      const scriptInfo2 = this.projectService.getScriptInfoForNormalizedPath(file);\n      return textChanges2.map((textChange) => this.convertTextChangeToCodeEdit(textChange, scriptInfo2));\n    }\n    return textChanges2;\n  }\n  commentSelection(args, simplifiedResult) {\n    const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args);\n    const scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file);\n    const textRange = this.getRange(args, scriptInfo);\n    const textChanges2 = languageService.commentSelection(file, textRange);\n    if (simplifiedResult) {\n      const scriptInfo2 = this.projectService.getScriptInfoForNormalizedPath(file);\n      return textChanges2.map((textChange) => this.convertTextChangeToCodeEdit(textChange, scriptInfo2));\n    }\n    return textChanges2;\n  }\n  uncommentSelection(args, simplifiedResult) {\n    const { file, languageService } = this.getFileAndLanguageServiceForSyntacticOperation(args);\n    const scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file);\n    const textRange = this.getRange(args, scriptInfo);\n    const textChanges2 = languageService.uncommentSelection(file, textRange);\n    if (simplifiedResult) {\n      const scriptInfo2 = this.projectService.getScriptInfoForNormalizedPath(file);\n      return textChanges2.map((textChange) => this.convertTextChangeToCodeEdit(textChange, scriptInfo2));\n    }\n    return textChanges2;\n  }\n  mapSelectionRange(selectionRange, scriptInfo) {\n    const result = {\n      textSpan: toProtocolTextSpan(selectionRange.textSpan, scriptInfo)\n    };\n    if (selectionRange.parent) {\n      result.parent = this.mapSelectionRange(selectionRange.parent, scriptInfo);\n    }\n    return result;\n  }\n  getScriptInfoFromProjectService(file) {\n    const normalizedFile = toNormalizedPath(file);\n    const scriptInfo = this.projectService.getScriptInfoForNormalizedPath(normalizedFile);\n    if (!scriptInfo) {\n      this.projectService.logErrorForScriptInfoNotFound(normalizedFile);\n      return Errors.ThrowNoProject();\n    }\n    return scriptInfo;\n  }\n  toProtocolCallHierarchyItem(item) {\n    const scriptInfo = this.getScriptInfoFromProjectService(item.file);\n    return {\n      name: item.name,\n      kind: item.kind,\n      kindModifiers: item.kindModifiers,\n      file: item.file,\n      containerName: item.containerName,\n      span: toProtocolTextSpan(item.span, scriptInfo),\n      selectionSpan: toProtocolTextSpan(item.selectionSpan, scriptInfo)\n    };\n  }\n  toProtocolCallHierarchyIncomingCall(incomingCall) {\n    const scriptInfo = this.getScriptInfoFromProjectService(incomingCall.from.file);\n    return {\n      from: this.toProtocolCallHierarchyItem(incomingCall.from),\n      fromSpans: incomingCall.fromSpans.map((fromSpan) => toProtocolTextSpan(fromSpan, scriptInfo))\n    };\n  }\n  toProtocolCallHierarchyOutgoingCall(outgoingCall, scriptInfo) {\n    return {\n      to: this.toProtocolCallHierarchyItem(outgoingCall.to),\n      fromSpans: outgoingCall.fromSpans.map((fromSpan) => toProtocolTextSpan(fromSpan, scriptInfo))\n    };\n  }\n  prepareCallHierarchy(args) {\n    const { file, project } = this.getFileAndProject(args);\n    const scriptInfo = this.projectService.getScriptInfoForNormalizedPath(file);\n    if (scriptInfo) {\n      const position = this.getPosition(args, scriptInfo);\n      const result = project.getLanguageService().prepareCallHierarchy(file, position);\n      return result && mapOneOrMany(result, (item) => this.toProtocolCallHierarchyItem(item));\n    }\n    return void 0;\n  }\n  provideCallHierarchyIncomingCalls(args) {\n    const { file, project } = this.getFileAndProject(args);\n    const scriptInfo = this.getScriptInfoFromProjectService(file);\n    const incomingCalls = project.getLanguageService().provideCallHierarchyIncomingCalls(file, this.getPosition(args, scriptInfo));\n    return incomingCalls.map((call) => this.toProtocolCallHierarchyIncomingCall(call));\n  }\n  provideCallHierarchyOutgoingCalls(args) {\n    const { file, project } = this.getFileAndProject(args);\n    const scriptInfo = this.getScriptInfoFromProjectService(file);\n    const outgoingCalls = project.getLanguageService().provideCallHierarchyOutgoingCalls(file, this.getPosition(args, scriptInfo));\n    return outgoingCalls.map((call) => this.toProtocolCallHierarchyOutgoingCall(call, scriptInfo));\n  }\n  getCanonicalFileName(fileName) {\n    const name = this.host.useCaseSensitiveFileNames ? fileName : toFileNameLowerCase(fileName);\n    return normalizePath(name);\n  }\n  exit() {\n  }\n  notRequired(request) {\n    if (request) this.doOutput(\n      /*info*/\n      void 0,\n      request.command,\n      request.seq,\n      /*success*/\n      true,\n      this.performanceData\n    );\n    return { responseRequired: false, performanceData: this.performanceData };\n  }\n  requiredResponse(response) {\n    return { response, responseRequired: true, performanceData: this.performanceData };\n  }\n  addProtocolHandler(command, handler) {\n    if (this.handlers.has(command)) {\n      throw new Error(`Protocol handler already exists for command \"${command}\"`);\n    }\n    this.handlers.set(command, handler);\n  }\n  setCurrentRequest(requestId) {\n    Debug.assert(this.currentRequestId === void 0);\n    this.currentRequestId = requestId;\n    this.cancellationToken.setRequest(requestId);\n  }\n  resetCurrentRequest(requestId) {\n    Debug.assert(this.currentRequestId === requestId);\n    this.currentRequestId = void 0;\n    this.cancellationToken.resetRequest(requestId);\n  }\n  // eslint-disable-line @typescript-eslint/unified-signatures\n  executeWithRequestId(requestId, f, perfomanceData) {\n    const currentPerformanceData = this.performanceData;\n    try {\n      this.performanceData = perfomanceData;\n      this.setCurrentRequest(requestId);\n      return f();\n    } finally {\n      this.resetCurrentRequest(requestId);\n      this.performanceData = currentPerformanceData;\n    }\n  }\n  executeCommand(request) {\n    const handler = this.handlers.get(request.command);\n    if (handler) {\n      const response = this.executeWithRequestId(\n        request.seq,\n        () => handler(request),\n        /*perfomanceData*/\n        void 0\n      );\n      this.projectService.enableRequestedPlugins();\n      return response;\n    } else {\n      this.logger.msg(`Unrecognized JSON command:${stringifyIndented(request)}`, \"Err\" /* Err */);\n      this.doOutput(\n        /*info*/\n        void 0,\n        \"unknown\" /* Unknown */,\n        request.seq,\n        /*success*/\n        false,\n        /*performanceData*/\n        void 0,\n        `Unrecognized JSON command: ${request.command}`\n      );\n      return { responseRequired: false };\n    }\n  }\n  onMessage(message) {\n    var _a, _b, _c, _d, _e, _f, _g;\n    this.gcTimer.scheduleCollect();\n    let start;\n    const currentPerformanceData = this.performanceData;\n    if (this.logger.hasLevel(2 /* requestTime */)) {\n      start = this.hrtime();\n      if (this.logger.hasLevel(3 /* verbose */)) {\n        this.logger.info(`request:${indent2(this.toStringMessage(message))}`);\n      }\n    }\n    let request;\n    let relevantFile;\n    try {\n      request = this.parseMessage(message);\n      relevantFile = request.arguments && request.arguments.file ? request.arguments : void 0;\n      (_a = tracing) == null ? void 0 : _a.instant(tracing.Phase.Session, \"request\", { seq: request.seq, command: request.command });\n      (_b = tracing) == null ? void 0 : _b.push(\n        tracing.Phase.Session,\n        \"executeCommand\",\n        { seq: request.seq, command: request.command },\n        /*separateBeginAndEnd*/\n        true\n      );\n      const { response, responseRequired, performanceData } = this.executeCommand(request);\n      (_c = tracing) == null ? void 0 : _c.pop();\n      if (this.logger.hasLevel(2 /* requestTime */)) {\n        const elapsedTime = hrTimeToMilliseconds(this.hrtime(start)).toFixed(4);\n        if (responseRequired) {\n          this.logger.perftrc(`${request.seq}::${request.command}: elapsed time (in milliseconds) ${elapsedTime}`);\n        } else {\n          this.logger.perftrc(`${request.seq}::${request.command}: async elapsed time (in milliseconds) ${elapsedTime}`);\n        }\n      }\n      (_d = tracing) == null ? void 0 : _d.instant(tracing.Phase.Session, \"response\", { seq: request.seq, command: request.command, success: !!response });\n      if (response) {\n        this.doOutput(\n          response,\n          request.command,\n          request.seq,\n          /*success*/\n          true,\n          performanceData\n        );\n      } else if (responseRequired) {\n        this.doOutput(\n          /*info*/\n          void 0,\n          request.command,\n          request.seq,\n          /*success*/\n          false,\n          performanceData,\n          \"No content available.\"\n        );\n      }\n    } catch (err) {\n      (_e = tracing) == null ? void 0 : _e.popAll();\n      if (err instanceof OperationCanceledException) {\n        (_f = tracing) == null ? void 0 : _f.instant(tracing.Phase.Session, \"commandCanceled\", { seq: request == null ? void 0 : request.seq, command: request == null ? void 0 : request.command });\n        this.doOutput(\n          { canceled: true },\n          request.command,\n          request.seq,\n          /*success*/\n          true,\n          this.performanceData\n        );\n        return;\n      }\n      this.logErrorWorker(err, this.toStringMessage(message), relevantFile);\n      (_g = tracing) == null ? void 0 : _g.instant(tracing.Phase.Session, \"commandError\", { seq: request == null ? void 0 : request.seq, command: request == null ? void 0 : request.command, message: err.message });\n      this.doOutput(\n        /*info*/\n        void 0,\n        request ? request.command : \"unknown\" /* Unknown */,\n        request ? request.seq : 0,\n        /*success*/\n        false,\n        this.performanceData,\n        \"Error processing request. \" + err.message + \"\\n\" + err.stack\n      );\n    } finally {\n      this.performanceData = currentPerformanceData;\n    }\n  }\n  parseMessage(message) {\n    return JSON.parse(message);\n  }\n  toStringMessage(message) {\n    return message;\n  }\n  getFormatOptions(file) {\n    return this.projectService.getFormatCodeOptions(file);\n  }\n  getPreferences(file) {\n    return this.projectService.getPreferences(file);\n  }\n  getHostFormatOptions() {\n    return this.projectService.getHostFormatCodeOptions();\n  }\n  getHostPreferences() {\n    return this.projectService.getHostPreferences();\n  }\n};\nfunction toProtocolPerformanceData(performanceData) {\n  const diagnosticsDuration = performanceData.diagnosticsDuration && arrayFrom(performanceData.diagnosticsDuration, ([file, data]) => ({ ...data, file }));\n  return { ...performanceData, diagnosticsDuration };\n}\nfunction toProtocolTextSpan(textSpan, scriptInfo) {\n  return {\n    start: scriptInfo.positionToLineOffset(textSpan.start),\n    end: scriptInfo.positionToLineOffset(textSpanEnd(textSpan))\n  };\n}\nfunction toProtocolTextSpanWithContext(span, contextSpan, scriptInfo) {\n  const textSpan = toProtocolTextSpan(span, scriptInfo);\n  const contextTextSpan = contextSpan && toProtocolTextSpan(contextSpan, scriptInfo);\n  return contextTextSpan ? { ...textSpan, contextStart: contextTextSpan.start, contextEnd: contextTextSpan.end } : textSpan;\n}\nfunction convertTextChangeToCodeEdit(change, scriptInfo) {\n  return { start: positionToLineOffset(scriptInfo, change.span.start), end: positionToLineOffset(scriptInfo, textSpanEnd(change.span)), newText: change.newText };\n}\nfunction positionToLineOffset(info, position) {\n  return isConfigFile(info) ? locationFromLineAndCharacter(info.getLineAndCharacterOfPosition(position)) : info.positionToLineOffset(position);\n}\nfunction convertLinkedEditInfoToRanges(linkedEdit, scriptInfo) {\n  const ranges = linkedEdit.ranges.map(\n    (r) => {\n      return {\n        start: scriptInfo.positionToLineOffset(r.start),\n        end: scriptInfo.positionToLineOffset(r.start + r.length)\n      };\n    }\n  );\n  if (!linkedEdit.wordPattern) return { ranges };\n  return { ranges, wordPattern: linkedEdit.wordPattern };\n}\nfunction locationFromLineAndCharacter(lc) {\n  return { line: lc.line + 1, offset: lc.character + 1 };\n}\nfunction convertNewFileTextChangeToCodeEdit(textChanges2) {\n  Debug.assert(textChanges2.textChanges.length === 1);\n  const change = first(textChanges2.textChanges);\n  Debug.assert(change.span.start === 0 && change.span.length === 0);\n  return { fileName: textChanges2.fileName, textChanges: [{ start: { line: 0, offset: 0 }, end: { line: 0, offset: 0 }, newText: change.newText }] };\n}\nfunction getLocationInNewDocument(oldText, renameFilename, renameLocation, edits) {\n  const newText = applyEdits(oldText, renameFilename, edits);\n  const { line, character } = computeLineAndCharacterOfPosition(computeLineStarts(newText), renameLocation);\n  return { line: line + 1, offset: character + 1 };\n}\nfunction applyEdits(text, textFilename, edits) {\n  for (const { fileName, textChanges: textChanges2 } of edits) {\n    if (fileName !== textFilename) {\n      continue;\n    }\n    for (let i = textChanges2.length - 1; i >= 0; i--) {\n      const { newText, span: { start, length: length2 } } = textChanges2[i];\n      text = text.slice(0, start) + newText + text.slice(start + length2);\n    }\n  }\n  return text;\n}\nfunction referenceEntryToReferencesResponseItem(projectService, { fileName, textSpan, contextSpan, isWriteAccess: isWriteAccess2, isDefinition }, { disableLineTextInReferences }) {\n  const scriptInfo = Debug.checkDefined(projectService.getScriptInfo(fileName));\n  const span = toProtocolTextSpanWithContext(textSpan, contextSpan, scriptInfo);\n  const lineText = disableLineTextInReferences ? void 0 : getLineText(scriptInfo, span);\n  return {\n    file: fileName,\n    ...span,\n    lineText,\n    isWriteAccess: isWriteAccess2,\n    isDefinition\n  };\n}\nfunction getLineText(scriptInfo, span) {\n  const lineSpan = scriptInfo.lineToTextSpan(span.start.line - 1);\n  return scriptInfo.getSnapshot().getText(lineSpan.start, textSpanEnd(lineSpan)).replace(/\\r|\\n/g, \"\");\n}\nfunction isCompletionEntryData(data) {\n  return data === void 0 || data && typeof data === \"object\" && typeof data.exportName === \"string\" && (data.fileName === void 0 || typeof data.fileName === \"string\") && (data.ambientModuleName === void 0 || typeof data.ambientModuleName === \"string\" && (data.isPackageJsonImport === void 0 || typeof data.isPackageJsonImport === \"boolean\"));\n}\n\n// src/server/scriptVersionCache.ts\nvar lineCollectionCapacity = 4;\nvar CharRangeSection = /* @__PURE__ */ ((CharRangeSection2) => {\n  CharRangeSection2[CharRangeSection2[\"PreStart\"] = 0] = \"PreStart\";\n  CharRangeSection2[CharRangeSection2[\"Start\"] = 1] = \"Start\";\n  CharRangeSection2[CharRangeSection2[\"Entire\"] = 2] = \"Entire\";\n  CharRangeSection2[CharRangeSection2[\"Mid\"] = 3] = \"Mid\";\n  CharRangeSection2[CharRangeSection2[\"End\"] = 4] = \"End\";\n  CharRangeSection2[CharRangeSection2[\"PostEnd\"] = 5] = \"PostEnd\";\n  return CharRangeSection2;\n})(CharRangeSection || {});\nvar EditWalker = class {\n  constructor() {\n    this.goSubtree = true;\n    this.lineIndex = new LineIndex();\n    this.endBranch = [];\n    this.state = 2 /* Entire */;\n    this.initialText = \"\";\n    this.trailingText = \"\";\n    this.lineIndex.root = new LineNode();\n    this.startPath = [this.lineIndex.root];\n    this.stack = [this.lineIndex.root];\n  }\n  get done() {\n    return false;\n  }\n  insertLines(insertedText, suppressTrailingText) {\n    if (suppressTrailingText) {\n      this.trailingText = \"\";\n    }\n    if (insertedText) {\n      insertedText = this.initialText + insertedText + this.trailingText;\n    } else {\n      insertedText = this.initialText + this.trailingText;\n    }\n    const lm = LineIndex.linesFromText(insertedText);\n    const lines = lm.lines;\n    if (lines.length > 1 && lines[lines.length - 1] === \"\") {\n      lines.pop();\n    }\n    let branchParent;\n    let lastZeroCount;\n    for (let k = this.endBranch.length - 1; k >= 0; k--) {\n      this.endBranch[k].updateCounts();\n      if (this.endBranch[k].charCount() === 0) {\n        lastZeroCount = this.endBranch[k];\n        if (k > 0) {\n          branchParent = this.endBranch[k - 1];\n        } else {\n          branchParent = this.branchNode;\n        }\n      }\n    }\n    if (lastZeroCount) {\n      branchParent.remove(lastZeroCount);\n    }\n    const leafNode = this.startPath[this.startPath.length - 1];\n    if (lines.length > 0) {\n      leafNode.text = lines[0];\n      if (lines.length > 1) {\n        let insertedNodes = new Array(lines.length - 1);\n        let startNode2 = leafNode;\n        for (let i = 1; i < lines.length; i++) {\n          insertedNodes[i - 1] = new LineLeaf(lines[i]);\n        }\n        let pathIndex = this.startPath.length - 2;\n        while (pathIndex >= 0) {\n          const insertionNode = this.startPath[pathIndex];\n          insertedNodes = insertionNode.insertAt(startNode2, insertedNodes);\n          pathIndex--;\n          startNode2 = insertionNode;\n        }\n        let insertedNodesLen = insertedNodes.length;\n        while (insertedNodesLen > 0) {\n          const newRoot = new LineNode();\n          newRoot.add(this.lineIndex.root);\n          insertedNodes = newRoot.insertAt(this.lineIndex.root, insertedNodes);\n          insertedNodesLen = insertedNodes.length;\n          this.lineIndex.root = newRoot;\n        }\n        this.lineIndex.root.updateCounts();\n      } else {\n        for (let j = this.startPath.length - 2; j >= 0; j--) {\n          this.startPath[j].updateCounts();\n        }\n      }\n    } else {\n      const insertionNode = this.startPath[this.startPath.length - 2];\n      insertionNode.remove(leafNode);\n      for (let j = this.startPath.length - 2; j >= 0; j--) {\n        this.startPath[j].updateCounts();\n      }\n    }\n    return this.lineIndex;\n  }\n  post(_relativeStart, _relativeLength, lineCollection) {\n    if (lineCollection === this.lineCollectionAtBranch) {\n      this.state = 4 /* End */;\n    }\n    this.stack.pop();\n  }\n  pre(_relativeStart, _relativeLength, lineCollection, _parent, nodeType) {\n    const currentNode = this.stack[this.stack.length - 1];\n    if (this.state === 2 /* Entire */ && nodeType === 1 /* Start */) {\n      this.state = 1 /* Start */;\n      this.branchNode = currentNode;\n      this.lineCollectionAtBranch = lineCollection;\n    }\n    let child;\n    function fresh(node) {\n      if (node.isLeaf()) {\n        return new LineLeaf(\"\");\n      } else return new LineNode();\n    }\n    switch (nodeType) {\n      case 0 /* PreStart */:\n        this.goSubtree = false;\n        if (this.state !== 4 /* End */) {\n          currentNode.add(lineCollection);\n        }\n        break;\n      case 1 /* Start */:\n        if (this.state === 4 /* End */) {\n          this.goSubtree = false;\n        } else {\n          child = fresh(lineCollection);\n          currentNode.add(child);\n          this.startPath.push(child);\n        }\n        break;\n      case 2 /* Entire */:\n        if (this.state !== 4 /* End */) {\n          child = fresh(lineCollection);\n          currentNode.add(child);\n          this.startPath.push(child);\n        } else {\n          if (!lineCollection.isLeaf()) {\n            child = fresh(lineCollection);\n            currentNode.add(child);\n            this.endBranch.push(child);\n          }\n        }\n        break;\n      case 3 /* Mid */:\n        this.goSubtree = false;\n        break;\n      case 4 /* End */:\n        if (this.state !== 4 /* End */) {\n          this.goSubtree = false;\n        } else {\n          if (!lineCollection.isLeaf()) {\n            child = fresh(lineCollection);\n            currentNode.add(child);\n            this.endBranch.push(child);\n          }\n        }\n        break;\n      case 5 /* PostEnd */:\n        this.goSubtree = false;\n        if (this.state !== 1 /* Start */) {\n          currentNode.add(lineCollection);\n        }\n        break;\n    }\n    if (this.goSubtree) {\n      this.stack.push(child);\n    }\n  }\n  // just gather text from the leaves\n  leaf(relativeStart, relativeLength, ll) {\n    if (this.state === 1 /* Start */) {\n      this.initialText = ll.text.substring(0, relativeStart);\n    } else if (this.state === 2 /* Entire */) {\n      this.initialText = ll.text.substring(0, relativeStart);\n      this.trailingText = ll.text.substring(relativeStart + relativeLength);\n    } else {\n      this.trailingText = ll.text.substring(relativeStart + relativeLength);\n    }\n  }\n};\nvar TextChange9 = class {\n  constructor(pos, deleteLen, insertedText) {\n    this.pos = pos;\n    this.deleteLen = deleteLen;\n    this.insertedText = insertedText;\n  }\n  getTextChangeRange() {\n    return createTextChangeRange(createTextSpan(this.pos, this.deleteLen), this.insertedText ? this.insertedText.length : 0);\n  }\n};\nvar _ScriptVersionCache = class _ScriptVersionCache {\n  constructor() {\n    this.changes = [];\n    this.versions = new Array(_ScriptVersionCache.maxVersions);\n    this.minVersion = 0;\n    // no versions earlier than min version will maintain change history\n    this.currentVersion = 0;\n  }\n  versionToIndex(version2) {\n    if (version2 < this.minVersion || version2 > this.currentVersion) {\n      return void 0;\n    }\n    return version2 % _ScriptVersionCache.maxVersions;\n  }\n  currentVersionToIndex() {\n    return this.currentVersion % _ScriptVersionCache.maxVersions;\n  }\n  // REVIEW: can optimize by coalescing simple edits\n  edit(pos, deleteLen, insertedText) {\n    this.changes.push(new TextChange9(pos, deleteLen, insertedText));\n    if (this.changes.length > _ScriptVersionCache.changeNumberThreshold || deleteLen > _ScriptVersionCache.changeLengthThreshold || insertedText && insertedText.length > _ScriptVersionCache.changeLengthThreshold) {\n      this.getSnapshot();\n    }\n  }\n  getSnapshot() {\n    return this._getSnapshot();\n  }\n  _getSnapshot() {\n    let snap = this.versions[this.currentVersionToIndex()];\n    if (this.changes.length > 0) {\n      let snapIndex = snap.index;\n      for (const change of this.changes) {\n        snapIndex = snapIndex.edit(change.pos, change.deleteLen, change.insertedText);\n      }\n      snap = new LineIndexSnapshot(this.currentVersion + 1, this, snapIndex, this.changes);\n      this.currentVersion = snap.version;\n      this.versions[this.currentVersionToIndex()] = snap;\n      this.changes = [];\n      if (this.currentVersion - this.minVersion >= _ScriptVersionCache.maxVersions) {\n        this.minVersion = this.currentVersion - _ScriptVersionCache.maxVersions + 1;\n      }\n    }\n    return snap;\n  }\n  getSnapshotVersion() {\n    return this._getSnapshot().version;\n  }\n  getAbsolutePositionAndLineText(oneBasedLine) {\n    return this._getSnapshot().index.lineNumberToInfo(oneBasedLine);\n  }\n  lineOffsetToPosition(line, column) {\n    return this._getSnapshot().index.absolutePositionOfStartOfLine(line) + (column - 1);\n  }\n  positionToLineOffset(position) {\n    return this._getSnapshot().index.positionToLineOffset(position);\n  }\n  lineToTextSpan(line) {\n    const index = this._getSnapshot().index;\n    const { lineText, absolutePosition } = index.lineNumberToInfo(line + 1);\n    const len = lineText !== void 0 ? lineText.length : index.absolutePositionOfStartOfLine(line + 2) - absolutePosition;\n    return createTextSpan(absolutePosition, len);\n  }\n  getTextChangesBetweenVersions(oldVersion, newVersion) {\n    if (oldVersion < newVersion) {\n      if (oldVersion >= this.minVersion) {\n        const textChangeRanges = [];\n        for (let i = oldVersion + 1; i <= newVersion; i++) {\n          const snap = this.versions[this.versionToIndex(i)];\n          for (const textChange of snap.changesSincePreviousVersion) {\n            textChangeRanges.push(textChange.getTextChangeRange());\n          }\n        }\n        return collapseTextChangeRangesAcrossMultipleVersions(textChangeRanges);\n      } else {\n        return void 0;\n      }\n    } else {\n      return unchangedTextChangeRange;\n    }\n  }\n  getLineCount() {\n    return this._getSnapshot().index.getLineCount();\n  }\n  static fromString(script) {\n    const svc = new _ScriptVersionCache();\n    const snap = new LineIndexSnapshot(0, svc, new LineIndex());\n    svc.versions[svc.currentVersion] = snap;\n    const lm = LineIndex.linesFromText(script);\n    snap.index.load(lm.lines);\n    return svc;\n  }\n};\n_ScriptVersionCache.changeNumberThreshold = 8;\n_ScriptVersionCache.changeLengthThreshold = 256;\n_ScriptVersionCache.maxVersions = 8;\nvar ScriptVersionCache = _ScriptVersionCache;\nvar LineIndexSnapshot = class _LineIndexSnapshot {\n  constructor(version2, cache, index, changesSincePreviousVersion = emptyArray2) {\n    this.version = version2;\n    this.cache = cache;\n    this.index = index;\n    this.changesSincePreviousVersion = changesSincePreviousVersion;\n  }\n  getText(rangeStart, rangeEnd) {\n    return this.index.getText(rangeStart, rangeEnd - rangeStart);\n  }\n  getLength() {\n    return this.index.getLength();\n  }\n  getChangeRange(oldSnapshot) {\n    if (oldSnapshot instanceof _LineIndexSnapshot && this.cache === oldSnapshot.cache) {\n      if (this.version <= oldSnapshot.version) {\n        return unchangedTextChangeRange;\n      } else {\n        return this.cache.getTextChangesBetweenVersions(oldSnapshot.version, this.version);\n      }\n    }\n  }\n};\nvar LineIndex = class _LineIndex {\n  constructor() {\n    // set this to true to check each edit for accuracy\n    this.checkEdits = false;\n  }\n  absolutePositionOfStartOfLine(oneBasedLine) {\n    return this.lineNumberToInfo(oneBasedLine).absolutePosition;\n  }\n  positionToLineOffset(position) {\n    const { oneBasedLine, zeroBasedColumn } = this.root.charOffsetToLineInfo(1, position);\n    return { line: oneBasedLine, offset: zeroBasedColumn + 1 };\n  }\n  positionToColumnAndLineText(position) {\n    return this.root.charOffsetToLineInfo(1, position);\n  }\n  getLineCount() {\n    return this.root.lineCount();\n  }\n  lineNumberToInfo(oneBasedLine) {\n    const lineCount = this.getLineCount();\n    if (oneBasedLine <= lineCount) {\n      const { position, leaf } = this.root.lineNumberToInfo(oneBasedLine, 0);\n      return { absolutePosition: position, lineText: leaf && leaf.text };\n    } else {\n      return { absolutePosition: this.root.charCount(), lineText: void 0 };\n    }\n  }\n  load(lines) {\n    if (lines.length > 0) {\n      const leaves = [];\n      for (let i = 0; i < lines.length; i++) {\n        leaves[i] = new LineLeaf(lines[i]);\n      }\n      this.root = _LineIndex.buildTreeFromBottom(leaves);\n    } else {\n      this.root = new LineNode();\n    }\n  }\n  walk(rangeStart, rangeLength, walkFns) {\n    this.root.walk(rangeStart, rangeLength, walkFns);\n  }\n  getText(rangeStart, rangeLength) {\n    let accum = \"\";\n    if (rangeLength > 0 && rangeStart < this.root.charCount()) {\n      this.walk(rangeStart, rangeLength, {\n        goSubtree: true,\n        done: false,\n        leaf: (relativeStart, relativeLength, ll) => {\n          accum = accum.concat(ll.text.substring(relativeStart, relativeStart + relativeLength));\n        }\n      });\n    }\n    return accum;\n  }\n  getLength() {\n    return this.root.charCount();\n  }\n  every(f, rangeStart, rangeEnd) {\n    if (!rangeEnd) {\n      rangeEnd = this.root.charCount();\n    }\n    const walkFns = {\n      goSubtree: true,\n      done: false,\n      leaf(relativeStart, relativeLength, ll) {\n        if (!f(ll, relativeStart, relativeLength)) {\n          this.done = true;\n        }\n      }\n    };\n    this.walk(rangeStart, rangeEnd - rangeStart, walkFns);\n    return !walkFns.done;\n  }\n  edit(pos, deleteLength, newText) {\n    if (this.root.charCount() === 0) {\n      Debug.assert(deleteLength === 0);\n      if (newText !== void 0) {\n        this.load(_LineIndex.linesFromText(newText).lines);\n        return this;\n      }\n      return void 0;\n    } else {\n      let checkText;\n      if (this.checkEdits) {\n        const source = this.getText(0, this.root.charCount());\n        checkText = source.slice(0, pos) + newText + source.slice(pos + deleteLength);\n      }\n      const walker = new EditWalker();\n      let suppressTrailingText = false;\n      if (pos >= this.root.charCount()) {\n        pos = this.root.charCount() - 1;\n        const endString = this.getText(pos, 1);\n        if (newText) {\n          newText = endString + newText;\n        } else {\n          newText = endString;\n        }\n        deleteLength = 0;\n        suppressTrailingText = true;\n      } else if (deleteLength > 0) {\n        const e = pos + deleteLength;\n        const { zeroBasedColumn, lineText } = this.positionToColumnAndLineText(e);\n        if (zeroBasedColumn === 0) {\n          deleteLength += lineText.length;\n          newText = newText ? newText + lineText : lineText;\n        }\n      }\n      this.root.walk(pos, deleteLength, walker);\n      walker.insertLines(newText, suppressTrailingText);\n      if (this.checkEdits) {\n        const updatedText = walker.lineIndex.getText(0, walker.lineIndex.getLength());\n        Debug.assert(checkText === updatedText, \"buffer edit mismatch\");\n      }\n      return walker.lineIndex;\n    }\n  }\n  static buildTreeFromBottom(nodes) {\n    if (nodes.length < lineCollectionCapacity) {\n      return new LineNode(nodes);\n    }\n    const interiorNodes = new Array(Math.ceil(nodes.length / lineCollectionCapacity));\n    let nodeIndex = 0;\n    for (let i = 0; i < interiorNodes.length; i++) {\n      const end = Math.min(nodeIndex + lineCollectionCapacity, nodes.length);\n      interiorNodes[i] = new LineNode(nodes.slice(nodeIndex, end));\n      nodeIndex = end;\n    }\n    return this.buildTreeFromBottom(interiorNodes);\n  }\n  static linesFromText(text) {\n    const lineMap = computeLineStarts(text);\n    if (lineMap.length === 0) {\n      return { lines: [], lineMap };\n    }\n    const lines = new Array(lineMap.length);\n    const lc = lineMap.length - 1;\n    for (let lmi = 0; lmi < lc; lmi++) {\n      lines[lmi] = text.substring(lineMap[lmi], lineMap[lmi + 1]);\n    }\n    const endText = text.substring(lineMap[lc]);\n    if (endText.length > 0) {\n      lines[lc] = endText;\n    } else {\n      lines.pop();\n    }\n    return { lines, lineMap };\n  }\n};\nvar LineNode = class _LineNode {\n  constructor(children = []) {\n    this.children = children;\n    this.totalChars = 0;\n    this.totalLines = 0;\n    if (children.length) this.updateCounts();\n  }\n  isLeaf() {\n    return false;\n  }\n  updateCounts() {\n    this.totalChars = 0;\n    this.totalLines = 0;\n    for (const child of this.children) {\n      this.totalChars += child.charCount();\n      this.totalLines += child.lineCount();\n    }\n  }\n  execWalk(rangeStart, rangeLength, walkFns, childIndex, nodeType) {\n    if (walkFns.pre) {\n      walkFns.pre(rangeStart, rangeLength, this.children[childIndex], this, nodeType);\n    }\n    if (walkFns.goSubtree) {\n      this.children[childIndex].walk(rangeStart, rangeLength, walkFns);\n      if (walkFns.post) {\n        walkFns.post(rangeStart, rangeLength, this.children[childIndex], this, nodeType);\n      }\n    } else {\n      walkFns.goSubtree = true;\n    }\n    return walkFns.done;\n  }\n  skipChild(relativeStart, relativeLength, childIndex, walkFns, nodeType) {\n    if (walkFns.pre && !walkFns.done) {\n      walkFns.pre(relativeStart, relativeLength, this.children[childIndex], this, nodeType);\n      walkFns.goSubtree = true;\n    }\n  }\n  walk(rangeStart, rangeLength, walkFns) {\n    if (this.children.length === 0) return;\n    let childIndex = 0;\n    let childCharCount = this.children[childIndex].charCount();\n    let adjustedStart = rangeStart;\n    while (adjustedStart >= childCharCount) {\n      this.skipChild(adjustedStart, rangeLength, childIndex, walkFns, 0 /* PreStart */);\n      adjustedStart -= childCharCount;\n      childIndex++;\n      childCharCount = this.children[childIndex].charCount();\n    }\n    if (adjustedStart + rangeLength <= childCharCount) {\n      if (this.execWalk(adjustedStart, rangeLength, walkFns, childIndex, 2 /* Entire */)) {\n        return;\n      }\n    } else {\n      if (this.execWalk(adjustedStart, childCharCount - adjustedStart, walkFns, childIndex, 1 /* Start */)) {\n        return;\n      }\n      let adjustedLength = rangeLength - (childCharCount - adjustedStart);\n      childIndex++;\n      const child = this.children[childIndex];\n      childCharCount = child.charCount();\n      while (adjustedLength > childCharCount) {\n        if (this.execWalk(0, childCharCount, walkFns, childIndex, 3 /* Mid */)) {\n          return;\n        }\n        adjustedLength -= childCharCount;\n        childIndex++;\n        childCharCount = this.children[childIndex].charCount();\n      }\n      if (adjustedLength > 0) {\n        if (this.execWalk(0, adjustedLength, walkFns, childIndex, 4 /* End */)) {\n          return;\n        }\n      }\n    }\n    if (walkFns.pre) {\n      const clen = this.children.length;\n      if (childIndex < clen - 1) {\n        for (let ej = childIndex + 1; ej < clen; ej++) {\n          this.skipChild(0, 0, ej, walkFns, 5 /* PostEnd */);\n        }\n      }\n    }\n  }\n  // Input position is relative to the start of this node.\n  // Output line number is absolute.\n  charOffsetToLineInfo(lineNumberAccumulator, relativePosition) {\n    if (this.children.length === 0) {\n      return { oneBasedLine: lineNumberAccumulator, zeroBasedColumn: relativePosition, lineText: void 0 };\n    }\n    for (const child of this.children) {\n      if (child.charCount() > relativePosition) {\n        if (child.isLeaf()) {\n          return { oneBasedLine: lineNumberAccumulator, zeroBasedColumn: relativePosition, lineText: child.text };\n        } else {\n          return child.charOffsetToLineInfo(lineNumberAccumulator, relativePosition);\n        }\n      } else {\n        relativePosition -= child.charCount();\n        lineNumberAccumulator += child.lineCount();\n      }\n    }\n    const lineCount = this.lineCount();\n    if (lineCount === 0) {\n      return { oneBasedLine: 1, zeroBasedColumn: 0, lineText: void 0 };\n    }\n    const leaf = Debug.checkDefined(this.lineNumberToInfo(lineCount, 0).leaf);\n    return { oneBasedLine: lineCount, zeroBasedColumn: leaf.charCount(), lineText: void 0 };\n  }\n  /**\n   * Input line number is relative to the start of this node.\n   * Output line number is relative to the child.\n   * positionAccumulator will be an absolute position once relativeLineNumber reaches 0.\n   */\n  lineNumberToInfo(relativeOneBasedLine, positionAccumulator) {\n    for (const child of this.children) {\n      const childLineCount = child.lineCount();\n      if (childLineCount >= relativeOneBasedLine) {\n        return child.isLeaf() ? { position: positionAccumulator, leaf: child } : child.lineNumberToInfo(relativeOneBasedLine, positionAccumulator);\n      } else {\n        relativeOneBasedLine -= childLineCount;\n        positionAccumulator += child.charCount();\n      }\n    }\n    return { position: positionAccumulator, leaf: void 0 };\n  }\n  splitAfter(childIndex) {\n    let splitNode;\n    const clen = this.children.length;\n    childIndex++;\n    const endLength = childIndex;\n    if (childIndex < clen) {\n      splitNode = new _LineNode();\n      while (childIndex < clen) {\n        splitNode.add(this.children[childIndex]);\n        childIndex++;\n      }\n      splitNode.updateCounts();\n    }\n    this.children.length = endLength;\n    return splitNode;\n  }\n  remove(child) {\n    const childIndex = this.findChildIndex(child);\n    const clen = this.children.length;\n    if (childIndex < clen - 1) {\n      for (let i = childIndex; i < clen - 1; i++) {\n        this.children[i] = this.children[i + 1];\n      }\n    }\n    this.children.pop();\n  }\n  findChildIndex(child) {\n    const childIndex = this.children.indexOf(child);\n    Debug.assert(childIndex !== -1);\n    return childIndex;\n  }\n  insertAt(child, nodes) {\n    let childIndex = this.findChildIndex(child);\n    const clen = this.children.length;\n    const nodeCount = nodes.length;\n    if (clen < lineCollectionCapacity && childIndex === clen - 1 && nodeCount === 1) {\n      this.add(nodes[0]);\n      this.updateCounts();\n      return [];\n    } else {\n      const shiftNode = this.splitAfter(childIndex);\n      let nodeIndex = 0;\n      childIndex++;\n      while (childIndex < lineCollectionCapacity && nodeIndex < nodeCount) {\n        this.children[childIndex] = nodes[nodeIndex];\n        childIndex++;\n        nodeIndex++;\n      }\n      let splitNodes = [];\n      let splitNodeCount = 0;\n      if (nodeIndex < nodeCount) {\n        splitNodeCount = Math.ceil((nodeCount - nodeIndex) / lineCollectionCapacity);\n        splitNodes = new Array(splitNodeCount);\n        let splitNodeIndex = 0;\n        for (let i = 0; i < splitNodeCount; i++) {\n          splitNodes[i] = new _LineNode();\n        }\n        let splitNode = splitNodes[0];\n        while (nodeIndex < nodeCount) {\n          splitNode.add(nodes[nodeIndex]);\n          nodeIndex++;\n          if (splitNode.children.length === lineCollectionCapacity) {\n            splitNodeIndex++;\n            splitNode = splitNodes[splitNodeIndex];\n          }\n        }\n        for (let i = splitNodes.length - 1; i >= 0; i--) {\n          if (splitNodes[i].children.length === 0) {\n            splitNodes.pop();\n          }\n        }\n      }\n      if (shiftNode) {\n        splitNodes.push(shiftNode);\n      }\n      this.updateCounts();\n      for (let i = 0; i < splitNodeCount; i++) {\n        splitNodes[i].updateCounts();\n      }\n      return splitNodes;\n    }\n  }\n  // assume there is room for the item; return true if more room\n  add(collection) {\n    this.children.push(collection);\n    Debug.assert(this.children.length <= lineCollectionCapacity);\n  }\n  charCount() {\n    return this.totalChars;\n  }\n  lineCount() {\n    return this.totalLines;\n  }\n};\nvar LineLeaf = class {\n  constructor(text) {\n    this.text = text;\n  }\n  isLeaf() {\n    return true;\n  }\n  walk(rangeStart, rangeLength, walkFns) {\n    walkFns.leaf(rangeStart, rangeLength, this);\n  }\n  charCount() {\n    return this.text.length;\n  }\n  lineCount() {\n    return 1;\n  }\n};\n\n// src/server/typingInstallerAdapter.ts\nvar _TypingsInstallerAdapter = class _TypingsInstallerAdapter {\n  constructor(telemetryEnabled, logger, host, globalTypingsCacheLocation, event, maxActiveRequestCount) {\n    this.telemetryEnabled = telemetryEnabled;\n    this.logger = logger;\n    this.host = host;\n    this.globalTypingsCacheLocation = globalTypingsCacheLocation;\n    this.event = event;\n    this.maxActiveRequestCount = maxActiveRequestCount;\n    this.activeRequestCount = 0;\n    this.requestQueue = createQueue();\n    this.requestMap = /* @__PURE__ */ new Map();\n    // Maps project name to newest requestQueue entry for that project\n    /** We will lazily request the types registry on the first call to `isKnownTypesPackageName` and store it in `typesRegistryCache`. */\n    this.requestedRegistry = false;\n    this.packageInstallId = 0;\n  }\n  isKnownTypesPackageName(name) {\n    var _a;\n    const validationResult = ts_JsTyping_exports.validatePackageName(name);\n    if (validationResult !== ts_JsTyping_exports.NameValidationResult.Ok) {\n      return false;\n    }\n    if (!this.requestedRegistry) {\n      this.requestedRegistry = true;\n      this.installer.send({ kind: \"typesRegistry\" });\n    }\n    return !!((_a = this.typesRegistryCache) == null ? void 0 : _a.has(name));\n  }\n  installPackage(options) {\n    this.packageInstallId++;\n    const request = { kind: \"installPackage\", ...options, id: this.packageInstallId };\n    const promise = new Promise((resolve, reject) => {\n      (this.packageInstalledPromise ?? (this.packageInstalledPromise = /* @__PURE__ */ new Map())).set(this.packageInstallId, { resolve, reject });\n    });\n    this.installer.send(request);\n    return promise;\n  }\n  attach(projectService) {\n    this.projectService = projectService;\n    this.installer = this.createInstallerProcess();\n  }\n  onProjectClosed(p) {\n    this.installer.send({ projectName: p.getProjectName(), kind: \"closeProject\" });\n  }\n  enqueueInstallTypingsRequest(project, typeAcquisition, unresolvedImports) {\n    const request = createInstallTypingsRequest(project, typeAcquisition, unresolvedImports);\n    if (this.logger.hasLevel(3 /* verbose */)) {\n      this.logger.info(`TIAdapter:: Scheduling throttled operation:${stringifyIndented(request)}`);\n    }\n    if (this.activeRequestCount < this.maxActiveRequestCount) {\n      this.scheduleRequest(request);\n    } else {\n      if (this.logger.hasLevel(3 /* verbose */)) {\n        this.logger.info(`TIAdapter:: Deferring request for: ${request.projectName}`);\n      }\n      this.requestQueue.enqueue(request);\n      this.requestMap.set(request.projectName, request);\n    }\n  }\n  handleMessage(response) {\n    var _a, _b;\n    if (this.logger.hasLevel(3 /* verbose */)) {\n      this.logger.info(`TIAdapter:: Received response:${stringifyIndented(response)}`);\n    }\n    switch (response.kind) {\n      case EventTypesRegistry:\n        this.typesRegistryCache = new Map(Object.entries(response.typesRegistry));\n        break;\n      case ActionPackageInstalled: {\n        const promise = (_a = this.packageInstalledPromise) == null ? void 0 : _a.get(response.id);\n        Debug.assertIsDefined(promise, \"Should find the promise for package install\");\n        (_b = this.packageInstalledPromise) == null ? void 0 : _b.delete(response.id);\n        if (response.success) {\n          promise.resolve({ successMessage: response.message });\n        } else {\n          promise.reject(response.message);\n        }\n        this.projectService.updateTypingsForProject(response);\n        this.event(response, \"setTypings\");\n        break;\n      }\n      case EventInitializationFailed: {\n        const body = {\n          message: response.message\n        };\n        const eventName = \"typesInstallerInitializationFailed\";\n        this.event(body, eventName);\n        break;\n      }\n      case EventBeginInstallTypes: {\n        const body = {\n          eventId: response.eventId,\n          packages: response.packagesToInstall\n        };\n        const eventName = \"beginInstallTypes\";\n        this.event(body, eventName);\n        break;\n      }\n      case EventEndInstallTypes: {\n        if (this.telemetryEnabled) {\n          const body2 = {\n            telemetryEventName: \"typingsInstalled\",\n            payload: {\n              installedPackages: response.packagesToInstall.join(\",\"),\n              installSuccess: response.installSuccess,\n              typingsInstallerVersion: response.typingsInstallerVersion\n            }\n          };\n          const eventName2 = \"telemetry\";\n          this.event(body2, eventName2);\n        }\n        const body = {\n          eventId: response.eventId,\n          packages: response.packagesToInstall,\n          success: response.installSuccess\n        };\n        const eventName = \"endInstallTypes\";\n        this.event(body, eventName);\n        break;\n      }\n      case ActionInvalidate: {\n        this.projectService.updateTypingsForProject(response);\n        break;\n      }\n      case ActionSet: {\n        if (this.activeRequestCount > 0) {\n          this.activeRequestCount--;\n        } else {\n          Debug.fail(\"TIAdapter:: Received too many responses\");\n        }\n        while (!this.requestQueue.isEmpty()) {\n          const queuedRequest = this.requestQueue.dequeue();\n          if (this.requestMap.get(queuedRequest.projectName) === queuedRequest) {\n            this.requestMap.delete(queuedRequest.projectName);\n            this.scheduleRequest(queuedRequest);\n            break;\n          }\n          if (this.logger.hasLevel(3 /* verbose */)) {\n            this.logger.info(`TIAdapter:: Skipping defunct request for: ${queuedRequest.projectName}`);\n          }\n        }\n        this.projectService.updateTypingsForProject(response);\n        this.event(response, \"setTypings\");\n        break;\n      }\n      case ActionWatchTypingLocations:\n        this.projectService.watchTypingLocations(response);\n        break;\n      default:\n        assertType(response);\n    }\n  }\n  scheduleRequest(request) {\n    if (this.logger.hasLevel(3 /* verbose */)) {\n      this.logger.info(`TIAdapter:: Scheduling request for: ${request.projectName}`);\n    }\n    this.activeRequestCount++;\n    this.host.setTimeout(\n      () => {\n        if (this.logger.hasLevel(3 /* verbose */)) {\n          this.logger.info(`TIAdapter:: Sending request:${stringifyIndented(request)}`);\n        }\n        this.installer.send(request);\n      },\n      _TypingsInstallerAdapter.requestDelayMillis,\n      `${request.projectName}::${request.kind}`\n    );\n  }\n};\n// This number is essentially arbitrary.  Processing more than one typings request\n// at a time makes sense, but having too many in the pipe results in a hang\n// (see https://github.com/nodejs/node/issues/7657).\n// It would be preferable to base our limit on the amount of space left in the\n// buffer, but we have yet to find a way to retrieve that value.\n_TypingsInstallerAdapter.requestDelayMillis = 100;\nvar TypingsInstallerAdapter = _TypingsInstallerAdapter;\n\n// src/typescript/_namespaces/ts.server.ts\nvar ts_server_exports4 = {};\n__export(ts_server_exports4, {\n  ActionInvalidate: () => ActionInvalidate,\n  ActionPackageInstalled: () => ActionPackageInstalled,\n  ActionSet: () => ActionSet,\n  ActionWatchTypingLocations: () => ActionWatchTypingLocations,\n  Arguments: () => Arguments,\n  AutoImportProviderProject: () => AutoImportProviderProject,\n  AuxiliaryProject: () => AuxiliaryProject,\n  CharRangeSection: () => CharRangeSection,\n  CloseFileWatcherEvent: () => CloseFileWatcherEvent,\n  CommandNames: () => CommandNames,\n  ConfigFileDiagEvent: () => ConfigFileDiagEvent,\n  ConfiguredProject: () => ConfiguredProject2,\n  ConfiguredProjectLoadKind: () => ConfiguredProjectLoadKind,\n  CreateDirectoryWatcherEvent: () => CreateDirectoryWatcherEvent,\n  CreateFileWatcherEvent: () => CreateFileWatcherEvent,\n  Errors: () => Errors,\n  EventBeginInstallTypes: () => EventBeginInstallTypes,\n  EventEndInstallTypes: () => EventEndInstallTypes,\n  EventInitializationFailed: () => EventInitializationFailed,\n  EventTypesRegistry: () => EventTypesRegistry,\n  ExternalProject: () => ExternalProject,\n  GcTimer: () => GcTimer,\n  InferredProject: () => InferredProject2,\n  LargeFileReferencedEvent: () => LargeFileReferencedEvent,\n  LineIndex: () => LineIndex,\n  LineLeaf: () => LineLeaf,\n  LineNode: () => LineNode,\n  LogLevel: () => LogLevel2,\n  Msg: () => Msg,\n  OpenFileInfoTelemetryEvent: () => OpenFileInfoTelemetryEvent,\n  Project: () => Project2,\n  ProjectInfoTelemetryEvent: () => ProjectInfoTelemetryEvent,\n  ProjectKind: () => ProjectKind,\n  ProjectLanguageServiceStateEvent: () => ProjectLanguageServiceStateEvent,\n  ProjectLoadingFinishEvent: () => ProjectLoadingFinishEvent,\n  ProjectLoadingStartEvent: () => ProjectLoadingStartEvent,\n  ProjectService: () => ProjectService2,\n  ProjectsUpdatedInBackgroundEvent: () => ProjectsUpdatedInBackgroundEvent,\n  ScriptInfo: () => ScriptInfo,\n  ScriptVersionCache: () => ScriptVersionCache,\n  Session: () => Session3,\n  TextStorage: () => TextStorage,\n  ThrottledOperations: () => ThrottledOperations,\n  TypingsInstallerAdapter: () => TypingsInstallerAdapter,\n  allFilesAreJsOrDts: () => allFilesAreJsOrDts,\n  allRootFilesAreJsOrDts: () => allRootFilesAreJsOrDts,\n  asNormalizedPath: () => asNormalizedPath,\n  convertCompilerOptions: () => convertCompilerOptions,\n  convertFormatOptions: () => convertFormatOptions,\n  convertScriptKindName: () => convertScriptKindName,\n  convertTypeAcquisition: () => convertTypeAcquisition,\n  convertUserPreferences: () => convertUserPreferences,\n  convertWatchOptions: () => convertWatchOptions,\n  countEachFileTypes: () => countEachFileTypes,\n  createInstallTypingsRequest: () => createInstallTypingsRequest,\n  createModuleSpecifierCache: () => createModuleSpecifierCache,\n  createNormalizedPathMap: () => createNormalizedPathMap,\n  createPackageJsonCache: () => createPackageJsonCache,\n  createSortedArray: () => createSortedArray2,\n  emptyArray: () => emptyArray2,\n  findArgument: () => findArgument,\n  formatDiagnosticToProtocol: () => formatDiagnosticToProtocol,\n  formatMessage: () => formatMessage2,\n  getBaseConfigFileName: () => getBaseConfigFileName,\n  getDetailWatchInfo: () => getDetailWatchInfo,\n  getLocationInNewDocument: () => getLocationInNewDocument,\n  hasArgument: () => hasArgument,\n  hasNoTypeScriptSource: () => hasNoTypeScriptSource,\n  indent: () => indent2,\n  isBackgroundProject: () => isBackgroundProject,\n  isConfigFile: () => isConfigFile,\n  isConfiguredProject: () => isConfiguredProject,\n  isDynamicFileName: () => isDynamicFileName,\n  isExternalProject: () => isExternalProject,\n  isInferredProject: () => isInferredProject,\n  isInferredProjectName: () => isInferredProjectName,\n  isProjectDeferredClose: () => isProjectDeferredClose,\n  makeAutoImportProviderProjectName: () => makeAutoImportProviderProjectName,\n  makeAuxiliaryProjectName: () => makeAuxiliaryProjectName,\n  makeInferredProjectName: () => makeInferredProjectName,\n  maxFileSize: () => maxFileSize,\n  maxProgramSizeForNonTsFiles: () => maxProgramSizeForNonTsFiles,\n  normalizedPathToPath: () => normalizedPathToPath,\n  nowString: () => nowString,\n  nullCancellationToken: () => nullCancellationToken,\n  nullTypingsInstaller: () => nullTypingsInstaller,\n  protocol: () => ts_server_protocol_exports,\n  scriptInfoIsContainedByBackgroundProject: () => scriptInfoIsContainedByBackgroundProject,\n  scriptInfoIsContainedByDeferredClosedProject: () => scriptInfoIsContainedByDeferredClosedProject,\n  stringifyIndented: () => stringifyIndented,\n  toEvent: () => toEvent,\n  toNormalizedPath: () => toNormalizedPath,\n  tryConvertScriptKindName: () => tryConvertScriptKindName,\n  typingsInstaller: () => ts_server_typingsInstaller_exports,\n  updateProjectIfDirty: () => updateProjectIfDirty\n});\n\n// src/typescript/typescript.ts\nif (typeof console !== \"undefined\") {\n  Debug.loggingHost = {\n    log(level, s) {\n      switch (level) {\n        case 1 /* Error */:\n          return console.error(s);\n        case 2 /* Warning */:\n          return console.warn(s);\n        case 3 /* Info */:\n          return console.log(s);\n        case 4 /* Verbose */:\n          return console.log(s);\n      }\n    }\n  };\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n  ANONYMOUS,\n  AccessFlags,\n  AssertionLevel,\n  AssignmentDeclarationKind,\n  AssignmentKind,\n  Associativity,\n  BreakpointResolver,\n  BuilderFileEmit,\n  BuilderProgramKind,\n  BuilderState,\n  CallHierarchy,\n  CharacterCodes,\n  CheckFlags,\n  CheckMode,\n  ClassificationType,\n  ClassificationTypeNames,\n  CommentDirectiveType,\n  Comparison,\n  CompletionInfoFlags,\n  CompletionTriggerKind,\n  Completions,\n  ContainerFlags,\n  ContextFlags,\n  Debug,\n  DiagnosticCategory,\n  Diagnostics,\n  DocumentHighlights,\n  ElementFlags,\n  EmitFlags,\n  EmitHint,\n  EmitOnly,\n  EndOfLineState,\n  ExitStatus,\n  ExportKind,\n  Extension,\n  ExternalEmitHelpers,\n  FileIncludeKind,\n  FilePreprocessingDiagnosticsKind,\n  FileSystemEntryKind,\n  FileWatcherEventKind,\n  FindAllReferences,\n  FlattenLevel,\n  FlowFlags,\n  ForegroundColorEscapeSequences,\n  FunctionFlags,\n  GeneratedIdentifierFlags,\n  GetLiteralTextFlags,\n  GoToDefinition,\n  HighlightSpanKind,\n  IdentifierNameMap,\n  ImportKind,\n  ImportsNotUsedAsValues,\n  IndentStyle,\n  IndexFlags,\n  IndexKind,\n  InferenceFlags,\n  InferencePriority,\n  InlayHintKind,\n  InlayHints,\n  InternalEmitFlags,\n  InternalNodeBuilderFlags,\n  InternalSymbolName,\n  IntersectionFlags,\n  InvalidatedProjectKind,\n  JSDocParsingMode,\n  JsDoc,\n  JsTyping,\n  JsxEmit,\n  JsxFlags,\n  JsxReferenceKind,\n  LanguageFeatureMinimumTarget,\n  LanguageServiceMode,\n  LanguageVariant,\n  LexicalEnvironmentFlags,\n  ListFormat,\n  LogLevel,\n  MapCode,\n  MemberOverrideStatus,\n  ModifierFlags,\n  ModuleDetectionKind,\n  ModuleInstanceState,\n  ModuleKind,\n  ModuleResolutionKind,\n  ModuleSpecifierEnding,\n  NavigateTo,\n  NavigationBar,\n  NewLineKind,\n  NodeBuilderFlags,\n  NodeCheckFlags,\n  NodeFactoryFlags,\n  NodeFlags,\n  NodeResolutionFeatures,\n  ObjectFlags,\n  OperationCanceledException,\n  OperatorPrecedence,\n  OrganizeImports,\n  OrganizeImportsMode,\n  OuterExpressionKinds,\n  OutliningElementsCollector,\n  OutliningSpanKind,\n  OutputFileType,\n  PackageJsonAutoImportPreference,\n  PackageJsonDependencyGroup,\n  PatternMatchKind,\n  PollingInterval,\n  PollingWatchKind,\n  PragmaKindFlags,\n  PredicateSemantics,\n  PreparePasteEdits,\n  PrivateIdentifierKind,\n  ProcessLevel,\n  ProgramUpdateLevel,\n  QuotePreference,\n  RegularExpressionFlags,\n  RelationComparisonResult,\n  Rename,\n  ScriptElementKind,\n  ScriptElementKindModifier,\n  ScriptKind,\n  ScriptSnapshot,\n  ScriptTarget,\n  SemanticClassificationFormat,\n  SemanticMeaning,\n  SemicolonPreference,\n  SignatureCheckMode,\n  SignatureFlags,\n  SignatureHelp,\n  SignatureInfo,\n  SignatureKind,\n  SmartSelectionRange,\n  SnippetKind,\n  StatisticType,\n  StructureIsReused,\n  SymbolAccessibility,\n  SymbolDisplay,\n  SymbolDisplayPartKind,\n  SymbolFlags,\n  SymbolFormatFlags,\n  SyntaxKind,\n  Ternary,\n  ThrottledCancellationToken,\n  TokenClass,\n  TokenFlags,\n  TransformFlags,\n  TypeFacts,\n  TypeFlags,\n  TypeFormatFlags,\n  TypeMapKind,\n  TypePredicateKind,\n  TypeReferenceSerializationKind,\n  UnionReduction,\n  UpToDateStatusType,\n  VarianceFlags,\n  Version,\n  VersionRange,\n  WatchDirectoryFlags,\n  WatchDirectoryKind,\n  WatchFileKind,\n  WatchLogLevel,\n  WatchType,\n  accessPrivateIdentifier,\n  addEmitFlags,\n  addEmitHelper,\n  addEmitHelpers,\n  addInternalEmitFlags,\n  addNodeFactoryPatcher,\n  addObjectAllocatorPatcher,\n  addRange,\n  addRelatedInfo,\n  addSyntheticLeadingComment,\n  addSyntheticTrailingComment,\n  addToSeen,\n  advancedAsyncSuperHelper,\n  affectsDeclarationPathOptionDeclarations,\n  affectsEmitOptionDeclarations,\n  allKeysStartWithDot,\n  altDirectorySeparator,\n  and,\n  append,\n  appendIfUnique,\n  arrayFrom,\n  arrayIsEqualTo,\n  arrayIsHomogeneous,\n  arrayOf,\n  arrayReverseIterator,\n  arrayToMap,\n  arrayToMultiMap,\n  arrayToNumericMap,\n  assertType,\n  assign,\n  asyncSuperHelper,\n  attachFileToDiagnostics,\n  base64decode,\n  base64encode,\n  binarySearch,\n  binarySearchKey,\n  bindSourceFile,\n  breakIntoCharacterSpans,\n  breakIntoWordSpans,\n  buildLinkParts,\n  buildOpts,\n  buildOverload,\n  bundlerModuleNameResolver,\n  canBeConvertedToAsync,\n  canHaveDecorators,\n  canHaveExportModifier,\n  canHaveFlowNode,\n  canHaveIllegalDecorators,\n  canHaveIllegalModifiers,\n  canHaveIllegalType,\n  canHaveIllegalTypeParameters,\n  canHaveJSDoc,\n  canHaveLocals,\n  canHaveModifiers,\n  canHaveModuleSpecifier,\n  canHaveSymbol,\n  canIncludeBindAndCheckDiagnostics,\n  canJsonReportNoInputFiles,\n  canProduceDiagnostics,\n  canUsePropertyAccess,\n  canWatchAffectingLocation,\n  canWatchAtTypes,\n  canWatchDirectoryOrFile,\n  canWatchDirectoryOrFilePath,\n  cartesianProduct,\n  cast,\n  chainBundle,\n  chainDiagnosticMessages,\n  changeAnyExtension,\n  changeCompilerHostLikeToUseCache,\n  changeExtension,\n  changeFullExtension,\n  changesAffectModuleResolution,\n  changesAffectingProgramStructure,\n  characterCodeToRegularExpressionFlag,\n  childIsDecorated,\n  classElementOrClassElementParameterIsDecorated,\n  classHasClassThisAssignment,\n  classHasDeclaredOrExplicitlyAssignedName,\n  classHasExplicitlyAssignedName,\n  classOrConstructorParameterIsDecorated,\n  classicNameResolver,\n  classifier,\n  cleanExtendedConfigCache,\n  clear,\n  clearMap,\n  clearSharedExtendedConfigFileWatcher,\n  climbPastPropertyAccess,\n  clone,\n  cloneCompilerOptions,\n  closeFileWatcher,\n  closeFileWatcherOf,\n  codefix,\n  collapseTextChangeRangesAcrossMultipleVersions,\n  collectExternalModuleInfo,\n  combine,\n  combinePaths,\n  commandLineOptionOfCustomType,\n  commentPragmas,\n  commonOptionsWithBuild,\n  compact,\n  compareBooleans,\n  compareDataObjects,\n  compareDiagnostics,\n  compareEmitHelpers,\n  compareNumberOfDirectorySeparators,\n  comparePaths,\n  comparePathsCaseInsensitive,\n  comparePathsCaseSensitive,\n  comparePatternKeys,\n  compareProperties,\n  compareStringsCaseInsensitive,\n  compareStringsCaseInsensitiveEslintCompatible,\n  compareStringsCaseSensitive,\n  compareStringsCaseSensitiveUI,\n  compareTextSpans,\n  compareValues,\n  compilerOptionsAffectDeclarationPath,\n  compilerOptionsAffectEmit,\n  compilerOptionsAffectSemanticDiagnostics,\n  compilerOptionsDidYouMeanDiagnostics,\n  compilerOptionsIndicateEsModules,\n  computeCommonSourceDirectoryOfFilenames,\n  computeLineAndCharacterOfPosition,\n  computeLineOfPosition,\n  computeLineStarts,\n  computePositionOfLineAndCharacter,\n  computeSignatureWithDiagnostics,\n  computeSuggestionDiagnostics,\n  computedOptions,\n  concatenate,\n  concatenateDiagnosticMessageChains,\n  consumesNodeCoreModules,\n  contains,\n  containsIgnoredPath,\n  containsObjectRestOrSpread,\n  containsParseError,\n  containsPath,\n  convertCompilerOptionsForTelemetry,\n  convertCompilerOptionsFromJson,\n  convertJsonOption,\n  convertToBase64,\n  convertToJson,\n  convertToObject,\n  convertToOptionsWithAbsolutePaths,\n  convertToRelativePath,\n  convertToTSConfig,\n  convertTypeAcquisitionFromJson,\n  copyComments,\n  copyEntries,\n  copyLeadingComments,\n  copyProperties,\n  copyTrailingAsLeadingComments,\n  copyTrailingComments,\n  couldStartTrivia,\n  countWhere,\n  createAbstractBuilder,\n  createAccessorPropertyBackingField,\n  createAccessorPropertyGetRedirector,\n  createAccessorPropertySetRedirector,\n  createBaseNodeFactory,\n  createBinaryExpressionTrampoline,\n  createBuilderProgram,\n  createBuilderProgramUsingIncrementalBuildInfo,\n  createBuilderStatusReporter,\n  createCacheableExportInfoMap,\n  createCachedDirectoryStructureHost,\n  createClassifier,\n  createCommentDirectivesMap,\n  createCompilerDiagnostic,\n  createCompilerDiagnosticForInvalidCustomType,\n  createCompilerDiagnosticFromMessageChain,\n  createCompilerHost,\n  createCompilerHostFromProgramHost,\n  createCompilerHostWorker,\n  createDetachedDiagnostic,\n  createDiagnosticCollection,\n  createDiagnosticForFileFromMessageChain,\n  createDiagnosticForNode,\n  createDiagnosticForNodeArray,\n  createDiagnosticForNodeArrayFromMessageChain,\n  createDiagnosticForNodeFromMessageChain,\n  createDiagnosticForNodeInSourceFile,\n  createDiagnosticForRange,\n  createDiagnosticMessageChainFromDiagnostic,\n  createDiagnosticReporter,\n  createDocumentPositionMapper,\n  createDocumentRegistry,\n  createDocumentRegistryInternal,\n  createEmitAndSemanticDiagnosticsBuilderProgram,\n  createEmitHelperFactory,\n  createEmptyExports,\n  createEvaluator,\n  createExpressionForJsxElement,\n  createExpressionForJsxFragment,\n  createExpressionForObjectLiteralElementLike,\n  createExpressionForPropertyName,\n  createExpressionFromEntityName,\n  createExternalHelpersImportDeclarationIfNeeded,\n  createFileDiagnostic,\n  createFileDiagnosticFromMessageChain,\n  createFlowNode,\n  createForOfBindingStatement,\n  createFutureSourceFile,\n  createGetCanonicalFileName,\n  createGetIsolatedDeclarationErrors,\n  createGetSourceFile,\n  createGetSymbolAccessibilityDiagnosticForNode,\n  createGetSymbolAccessibilityDiagnosticForNodeName,\n  createGetSymbolWalker,\n  createIncrementalCompilerHost,\n  createIncrementalProgram,\n  createJsxFactoryExpression,\n  createLanguageService,\n  createLanguageServiceSourceFile,\n  createMemberAccessForPropertyName,\n  createModeAwareCache,\n  createModeAwareCacheKey,\n  createModeMismatchDetails,\n  createModuleNotFoundChain,\n  createModuleResolutionCache,\n  createModuleResolutionLoader,\n  createModuleResolutionLoaderUsingGlobalCache,\n  createModuleSpecifierResolutionHost,\n  createMultiMap,\n  createNameResolver,\n  createNodeConverters,\n  createNodeFactory,\n  createOptionNameMap,\n  createOverload,\n  createPackageJsonImportFilter,\n  createPackageJsonInfo,\n  createParenthesizerRules,\n  createPatternMatcher,\n  createPrinter,\n  createPrinterWithDefaults,\n  createPrinterWithRemoveComments,\n  createPrinterWithRemoveCommentsNeverAsciiEscape,\n  createPrinterWithRemoveCommentsOmitTrailingSemicolon,\n  createProgram,\n  createProgramDiagnostics,\n  createProgramHost,\n  createPropertyNameNodeForIdentifierOrLiteral,\n  createQueue,\n  createRange,\n  createRedirectedBuilderProgram,\n  createResolutionCache,\n  createRuntimeTypeSerializer,\n  createScanner,\n  createSemanticDiagnosticsBuilderProgram,\n  createSet,\n  createSolutionBuilder,\n  createSolutionBuilderHost,\n  createSolutionBuilderWithWatch,\n  createSolutionBuilderWithWatchHost,\n  createSortedArray,\n  createSourceFile,\n  createSourceMapGenerator,\n  createSourceMapSource,\n  createSuperAccessVariableStatement,\n  createSymbolTable,\n  createSymlinkCache,\n  createSyntacticTypeNodeBuilder,\n  createSystemWatchFunctions,\n  createTextChange,\n  createTextChangeFromStartLength,\n  createTextChangeRange,\n  createTextRangeFromNode,\n  createTextRangeFromSpan,\n  createTextSpan,\n  createTextSpanFromBounds,\n  createTextSpanFromNode,\n  createTextSpanFromRange,\n  createTextSpanFromStringLiteralLikeContent,\n  createTextWriter,\n  createTokenRange,\n  createTypeChecker,\n  createTypeReferenceDirectiveResolutionCache,\n  createTypeReferenceResolutionLoader,\n  createWatchCompilerHost,\n  createWatchCompilerHostOfConfigFile,\n  createWatchCompilerHostOfFilesAndCompilerOptions,\n  createWatchFactory,\n  createWatchHost,\n  createWatchProgram,\n  createWatchStatusReporter,\n  createWriteFileMeasuringIO,\n  declarationNameToString,\n  decodeMappings,\n  decodedTextSpanIntersectsWith,\n  deduplicate,\n  defaultHoverMaximumTruncationLength,\n  defaultInitCompilerOptions,\n  defaultMaximumTruncationLength,\n  diagnosticCategoryName,\n  diagnosticToString,\n  diagnosticsEqualityComparer,\n  directoryProbablyExists,\n  directorySeparator,\n  displayPart,\n  displayPartsToString,\n  disposeEmitNodes,\n  documentSpansEqual,\n  dumpTracingLegend,\n  elementAt,\n  elideNodes,\n  emitDetachedComments,\n  emitFiles,\n  emitFilesAndReportErrors,\n  emitFilesAndReportErrorsAndGetExitStatus,\n  emitModuleKindIsNonNodeESM,\n  emitNewLineBeforeLeadingCommentOfPosition,\n  emitResolverSkipsTypeChecking,\n  emitSkippedWithNoDiagnostics,\n  emptyArray,\n  emptyFileSystemEntries,\n  emptyMap,\n  emptyOptions,\n  endsWith,\n  ensurePathIsNonModuleName,\n  ensureScriptKind,\n  ensureTrailingDirectorySeparator,\n  entityNameToString,\n  enumerateInsertsAndDeletes,\n  equalOwnProperties,\n  equateStringsCaseInsensitive,\n  equateStringsCaseSensitive,\n  equateValues,\n  escapeJsxAttributeString,\n  escapeLeadingUnderscores,\n  escapeNonAsciiString,\n  escapeSnippetText,\n  escapeString,\n  escapeTemplateSubstitution,\n  evaluatorResult,\n  every,\n  exclusivelyPrefixedNodeCoreModules,\n  executeCommandLine,\n  expandPreOrPostfixIncrementOrDecrementExpression,\n  explainFiles,\n  explainIfFileIsRedirectAndImpliedFormat,\n  exportAssignmentIsAlias,\n  expressionResultIsUnused,\n  extend,\n  extensionFromPath,\n  extensionIsTS,\n  extensionsNotSupportingExtensionlessResolution,\n  externalHelpersModuleNameText,\n  factory,\n  fileExtensionIs,\n  fileExtensionIsOneOf,\n  fileIncludeReasonToDiagnostics,\n  fileShouldUseJavaScriptRequire,\n  filter,\n  filterMutate,\n  filterSemanticDiagnostics,\n  find,\n  findAncestor,\n  findBestPatternMatch,\n  findChildOfKind,\n  findComputedPropertyNameCacheAssignment,\n  findConfigFile,\n  findConstructorDeclaration,\n  findContainingList,\n  findDiagnosticForNode,\n  findFirstNonJsxWhitespaceToken,\n  findIndex,\n  findLast,\n  findLastIndex,\n  findListItemInfo,\n  findModifier,\n  findNextToken,\n  findPackageJson,\n  findPackageJsons,\n  findPrecedingMatchingToken,\n  findPrecedingToken,\n  findSuperStatementIndexPath,\n  findTokenOnLeftOfPosition,\n  findUseStrictPrologue,\n  first,\n  firstDefined,\n  firstDefinedIterator,\n  firstIterator,\n  firstOrOnly,\n  firstOrUndefined,\n  firstOrUndefinedIterator,\n  fixupCompilerOptions,\n  flatMap,\n  flatMapIterator,\n  flatMapToMutable,\n  flatten,\n  flattenCommaList,\n  flattenDestructuringAssignment,\n  flattenDestructuringBinding,\n  flattenDiagnosticMessageText,\n  forEach,\n  forEachAncestor,\n  forEachAncestorDirectory,\n  forEachAncestorDirectoryStoppingAtGlobalCache,\n  forEachChild,\n  forEachChildRecursively,\n  forEachDynamicImportOrRequireCall,\n  forEachEmittedFile,\n  forEachEnclosingBlockScopeContainer,\n  forEachEntry,\n  forEachExternalModuleToImportFrom,\n  forEachImportClauseDeclaration,\n  forEachKey,\n  forEachLeadingCommentRange,\n  forEachNameInAccessChainWalkingLeft,\n  forEachNameOfDefaultExport,\n  forEachOptionsSyntaxByName,\n  forEachProjectReference,\n  forEachPropertyAssignment,\n  forEachResolvedProjectReference,\n  forEachReturnStatement,\n  forEachRight,\n  forEachTrailingCommentRange,\n  forEachTsConfigPropArray,\n  forEachUnique,\n  forEachYieldExpression,\n  formatColorAndReset,\n  formatDiagnostic,\n  formatDiagnostics,\n  formatDiagnosticsWithColorAndContext,\n  formatGeneratedName,\n  formatGeneratedNamePart,\n  formatLocation,\n  formatMessage,\n  formatStringFromArgs,\n  formatting,\n  generateDjb2Hash,\n  generateTSConfig,\n  getAdjustedReferenceLocation,\n  getAdjustedRenameLocation,\n  getAliasDeclarationFromName,\n  getAllAccessorDeclarations,\n  getAllDecoratorsOfClass,\n  getAllDecoratorsOfClassElement,\n  getAllJSDocTags,\n  getAllJSDocTagsOfKind,\n  getAllKeys,\n  getAllProjectOutputs,\n  getAllSuperTypeNodes,\n  getAllowImportingTsExtensions,\n  getAllowJSCompilerOption,\n  getAllowSyntheticDefaultImports,\n  getAncestor,\n  getAnyExtensionFromPath,\n  getAreDeclarationMapsEnabled,\n  getAssignedExpandoInitializer,\n  getAssignedName,\n  getAssignmentDeclarationKind,\n  getAssignmentDeclarationPropertyAccessKind,\n  getAssignmentTargetKind,\n  getAutomaticTypeDirectiveNames,\n  getBaseFileName,\n  getBinaryOperatorPrecedence,\n  getBuildInfo,\n  getBuildInfoFileVersionMap,\n  getBuildInfoText,\n  getBuildOrderFromAnyBuildOrder,\n  getBuilderCreationParameters,\n  getBuilderFileEmit,\n  getCanonicalDiagnostic,\n  getCheckFlags,\n  getClassExtendsHeritageElement,\n  getClassLikeDeclarationOfSymbol,\n  getCombinedLocalAndExportSymbolFlags,\n  getCombinedModifierFlags,\n  getCombinedNodeFlags,\n  getCombinedNodeFlagsAlwaysIncludeJSDoc,\n  getCommentRange,\n  getCommonSourceDirectory,\n  getCommonSourceDirectoryOfConfig,\n  getCompilerOptionValue,\n  getConditions,\n  getConfigFileParsingDiagnostics,\n  getConstantValue,\n  getContainerFlags,\n  getContainerNode,\n  getContainingClass,\n  getContainingClassExcludingClassDecorators,\n  getContainingClassStaticBlock,\n  getContainingFunction,\n  getContainingFunctionDeclaration,\n  getContainingFunctionOrClassStaticBlock,\n  getContainingNodeArray,\n  getContainingObjectLiteralElement,\n  getContextualTypeFromParent,\n  getContextualTypeFromParentOrAncestorTypeNode,\n  getDeclarationDiagnostics,\n  getDeclarationEmitExtensionForPath,\n  getDeclarationEmitOutputFilePath,\n  getDeclarationEmitOutputFilePathWorker,\n  getDeclarationFileExtension,\n  getDeclarationFromName,\n  getDeclarationModifierFlagsFromSymbol,\n  getDeclarationOfKind,\n  getDeclarationsOfKind,\n  getDeclaredExpandoInitializer,\n  getDecorators,\n  getDefaultCompilerOptions,\n  getDefaultFormatCodeSettings,\n  getDefaultLibFileName,\n  getDefaultLibFilePath,\n  getDefaultLikeExportInfo,\n  getDefaultLikeExportNameFromDeclaration,\n  getDefaultResolutionModeForFileWorker,\n  getDiagnosticText,\n  getDiagnosticsWithinSpan,\n  getDirectoryPath,\n  getDirectoryToWatchFailedLookupLocation,\n  getDirectoryToWatchFailedLookupLocationFromTypeRoot,\n  getDocumentPositionMapper,\n  getDocumentSpansEqualityComparer,\n  getESModuleInterop,\n  getEditsForFileRename,\n  getEffectiveBaseTypeNode,\n  getEffectiveConstraintOfTypeParameter,\n  getEffectiveContainerForJSDocTemplateTag,\n  getEffectiveImplementsTypeNodes,\n  getEffectiveInitializer,\n  getEffectiveJSDocHost,\n  getEffectiveModifierFlags,\n  getEffectiveModifierFlagsAlwaysIncludeJSDoc,\n  getEffectiveModifierFlagsNoCache,\n  getEffectiveReturnTypeNode,\n  getEffectiveSetAccessorTypeAnnotationNode,\n  getEffectiveTypeAnnotationNode,\n  getEffectiveTypeParameterDeclarations,\n  getEffectiveTypeRoots,\n  getElementOrPropertyAccessArgumentExpressionOrName,\n  getElementOrPropertyAccessName,\n  getElementsOfBindingOrAssignmentPattern,\n  getEmitDeclarations,\n  getEmitFlags,\n  getEmitHelpers,\n  getEmitModuleDetectionKind,\n  getEmitModuleFormatOfFileWorker,\n  getEmitModuleKind,\n  getEmitModuleResolutionKind,\n  getEmitScriptTarget,\n  getEmitStandardClassFields,\n  getEnclosingBlockScopeContainer,\n  getEnclosingContainer,\n  getEncodedSemanticClassifications,\n  getEncodedSyntacticClassifications,\n  getEndLinePosition,\n  getEntityNameFromTypeNode,\n  getEntrypointsFromPackageJsonInfo,\n  getErrorCountForSummary,\n  getErrorSpanForNode,\n  getErrorSummaryText,\n  getEscapedTextOfIdentifierOrLiteral,\n  getEscapedTextOfJsxAttributeName,\n  getEscapedTextOfJsxNamespacedName,\n  getExpandoInitializer,\n  getExportAssignmentExpression,\n  getExportInfoMap,\n  getExportNeedsImportStarHelper,\n  getExpressionAssociativity,\n  getExpressionPrecedence,\n  getExternalHelpersModuleName,\n  getExternalModuleImportEqualsDeclarationExpression,\n  getExternalModuleName,\n  getExternalModuleNameFromDeclaration,\n  getExternalModuleNameFromPath,\n  getExternalModuleNameLiteral,\n  getExternalModuleRequireArgument,\n  getFallbackOptions,\n  getFileEmitOutput,\n  getFileMatcherPatterns,\n  getFileNamesFromConfigSpecs,\n  getFileWatcherEventKind,\n  getFilesInErrorForSummary,\n  getFirstConstructorWithBody,\n  getFirstIdentifier,\n  getFirstNonSpaceCharacterPosition,\n  getFirstProjectOutput,\n  getFixableErrorSpanExpression,\n  getFormatCodeSettingsForWriting,\n  getFullWidth,\n  getFunctionFlags,\n  getHeritageClause,\n  getHostSignatureFromJSDoc,\n  getIdentifierAutoGenerate,\n  getIdentifierGeneratedImportReference,\n  getIdentifierTypeArguments,\n  getImmediatelyInvokedFunctionExpression,\n  getImpliedNodeFormatForEmitWorker,\n  getImpliedNodeFormatForFile,\n  getImpliedNodeFormatForFileWorker,\n  getImportNeedsImportDefaultHelper,\n  getImportNeedsImportStarHelper,\n  getIndentString,\n  getInferredLibraryNameResolveFrom,\n  getInitializedVariables,\n  getInitializerOfBinaryExpression,\n  getInitializerOfBindingOrAssignmentElement,\n  getInterfaceBaseTypeNodes,\n  getInternalEmitFlags,\n  getInvokedExpression,\n  getIsFileExcluded,\n  getIsolatedModules,\n  getJSDocAugmentsTag,\n  getJSDocClassTag,\n  getJSDocCommentRanges,\n  getJSDocCommentsAndTags,\n  getJSDocDeprecatedTag,\n  getJSDocDeprecatedTagNoCache,\n  getJSDocEnumTag,\n  getJSDocHost,\n  getJSDocImplementsTags,\n  getJSDocOverloadTags,\n  getJSDocOverrideTagNoCache,\n  getJSDocParameterTags,\n  getJSDocParameterTagsNoCache,\n  getJSDocPrivateTag,\n  getJSDocPrivateTagNoCache,\n  getJSDocProtectedTag,\n  getJSDocProtectedTagNoCache,\n  getJSDocPublicTag,\n  getJSDocPublicTagNoCache,\n  getJSDocReadonlyTag,\n  getJSDocReadonlyTagNoCache,\n  getJSDocReturnTag,\n  getJSDocReturnType,\n  getJSDocRoot,\n  getJSDocSatisfiesExpressionType,\n  getJSDocSatisfiesTag,\n  getJSDocTags,\n  getJSDocTemplateTag,\n  getJSDocThisTag,\n  getJSDocType,\n  getJSDocTypeAliasName,\n  getJSDocTypeAssertionType,\n  getJSDocTypeParameterDeclarations,\n  getJSDocTypeParameterTags,\n  getJSDocTypeParameterTagsNoCache,\n  getJSDocTypeTag,\n  getJSXImplicitImportBase,\n  getJSXRuntimeImport,\n  getJSXTransformEnabled,\n  getKeyForCompilerOptions,\n  getLanguageVariant,\n  getLastChild,\n  getLeadingCommentRanges,\n  getLeadingCommentRangesOfNode,\n  getLeftmostAccessExpression,\n  getLeftmostExpression,\n  getLibFileNameFromLibReference,\n  getLibNameFromLibReference,\n  getLibraryNameFromLibFileName,\n  getLineAndCharacterOfPosition,\n  getLineInfo,\n  getLineOfLocalPosition,\n  getLineStartPositionForPosition,\n  getLineStarts,\n  getLinesBetweenPositionAndNextNonWhitespaceCharacter,\n  getLinesBetweenPositionAndPrecedingNonWhitespaceCharacter,\n  getLinesBetweenPositions,\n  getLinesBetweenRangeEndAndRangeStart,\n  getLinesBetweenRangeEndPositions,\n  getLiteralText,\n  getLocalNameForExternalImport,\n  getLocalSymbolForExportDefault,\n  getLocaleSpecificMessage,\n  getLocaleTimeString,\n  getMappedContextSpan,\n  getMappedDocumentSpan,\n  getMappedLocation,\n  getMatchedFileSpec,\n  getMatchedIncludeSpec,\n  getMeaningFromDeclaration,\n  getMeaningFromLocation,\n  getMembersOfDeclaration,\n  getModeForFileReference,\n  getModeForResolutionAtIndex,\n  getModeForUsageLocation,\n  getModifiedTime,\n  getModifiers,\n  getModuleInstanceState,\n  getModuleNameStringLiteralAt,\n  getModuleSpecifierEndingPreference,\n  getModuleSpecifierResolverHost,\n  getNameForExportedSymbol,\n  getNameFromImportAttribute,\n  getNameFromIndexInfo,\n  getNameFromPropertyName,\n  getNameOfAccessExpression,\n  getNameOfCompilerOptionValue,\n  getNameOfDeclaration,\n  getNameOfExpando,\n  getNameOfJSDocTypedef,\n  getNameOfScriptTarget,\n  getNameOrArgument,\n  getNameTable,\n  getNamespaceDeclarationNode,\n  getNewLineCharacter,\n  getNewLineKind,\n  getNewLineOrDefaultFromHost,\n  getNewTargetContainer,\n  getNextJSDocCommentLocation,\n  getNodeChildren,\n  getNodeForGeneratedName,\n  getNodeId,\n  getNodeKind,\n  getNodeModifiers,\n  getNodeModulePathParts,\n  getNonAssignedNameOfDeclaration,\n  getNonAssignmentOperatorForCompoundAssignment,\n  getNonAugmentationDeclaration,\n  getNonDecoratorTokenPosOfNode,\n  getNonIncrementalBuildInfoRoots,\n  getNonModifierTokenPosOfNode,\n  getNormalizedAbsolutePath,\n  getNormalizedAbsolutePathWithoutRoot,\n  getNormalizedPathComponents,\n  getObjectFlags,\n  getOperatorAssociativity,\n  getOperatorPrecedence,\n  getOptionFromName,\n  getOptionsForLibraryResolution,\n  getOptionsNameMap,\n  getOptionsSyntaxByArrayElementValue,\n  getOptionsSyntaxByValue,\n  getOrCreateEmitNode,\n  getOrUpdate,\n  getOriginalNode,\n  getOriginalNodeId,\n  getOutputDeclarationFileName,\n  getOutputDeclarationFileNameWorker,\n  getOutputExtension,\n  getOutputFileNames,\n  getOutputJSFileNameWorker,\n  getOutputPathsFor,\n  getOwnEmitOutputFilePath,\n  getOwnKeys,\n  getOwnValues,\n  getPackageJsonTypesVersionsPaths,\n  getPackageNameFromTypesPackageName,\n  getPackageScopeForPath,\n  getParameterSymbolFromJSDoc,\n  getParentNodeInSpan,\n  getParseTreeNode,\n  getParsedCommandLineOfConfigFile,\n  getPathComponents,\n  getPathFromPathComponents,\n  getPathUpdater,\n  getPathsBasePath,\n  getPatternFromSpec,\n  getPendingEmitKindWithSeen,\n  getPositionOfLineAndCharacter,\n  getPossibleGenericSignatures,\n  getPossibleOriginalInputExtensionForExtension,\n  getPossibleOriginalInputPathWithoutChangingExt,\n  getPossibleTypeArgumentsInfo,\n  getPreEmitDiagnostics,\n  getPrecedingNonSpaceCharacterPosition,\n  getPrivateIdentifier,\n  getProperties,\n  getProperty,\n  getPropertyAssignmentAliasLikeExpression,\n  getPropertyNameForPropertyNameNode,\n  getPropertyNameFromType,\n  getPropertyNameOfBindingOrAssignmentElement,\n  getPropertySymbolFromBindingElement,\n  getPropertySymbolsFromContextualType,\n  getQuoteFromPreference,\n  getQuotePreference,\n  getRangesWhere,\n  getRefactorContextSpan,\n  getReferencedFileLocation,\n  getRegexFromPattern,\n  getRegularExpressionForWildcard,\n  getRegularExpressionsForWildcards,\n  getRelativePathFromDirectory,\n  getRelativePathFromFile,\n  getRelativePathToDirectoryOrUrl,\n  getRenameLocation,\n  getReplacementSpanForContextToken,\n  getResolutionDiagnostic,\n  getResolutionModeOverride,\n  getResolveJsonModule,\n  getResolvePackageJsonExports,\n  getResolvePackageJsonImports,\n  getResolvedExternalModuleName,\n  getResolvedModuleFromResolution,\n  getResolvedTypeReferenceDirectiveFromResolution,\n  getRestIndicatorOfBindingOrAssignmentElement,\n  getRestParameterElementType,\n  getRightMostAssignedExpression,\n  getRootDeclaration,\n  getRootDirectoryOfResolutionCache,\n  getRootLength,\n  getScriptKind,\n  getScriptKindFromFileName,\n  getScriptTargetFeatures,\n  getSelectedEffectiveModifierFlags,\n  getSelectedSyntacticModifierFlags,\n  getSemanticClassifications,\n  getSemanticJsxChildren,\n  getSetAccessorTypeAnnotationNode,\n  getSetAccessorValueParameter,\n  getSetExternalModuleIndicator,\n  getShebang,\n  getSingleVariableOfVariableStatement,\n  getSnapshotText,\n  getSnippetElement,\n  getSourceFileOfModule,\n  getSourceFileOfNode,\n  getSourceFilePathInNewDir,\n  getSourceFileVersionAsHashFromText,\n  getSourceFilesToEmit,\n  getSourceMapRange,\n  getSourceMapper,\n  getSourceTextOfNodeFromSourceFile,\n  getSpanOfTokenAtPosition,\n  getSpellingSuggestion,\n  getStartPositionOfLine,\n  getStartPositionOfRange,\n  getStartsOnNewLine,\n  getStaticPropertiesAndClassStaticBlock,\n  getStrictOptionValue,\n  getStringComparer,\n  getSubPatternFromSpec,\n  getSuperCallFromStatement,\n  getSuperContainer,\n  getSupportedCodeFixes,\n  getSupportedExtensions,\n  getSupportedExtensionsWithJsonIfResolveJsonModule,\n  getSwitchedType,\n  getSymbolId,\n  getSymbolNameForPrivateIdentifier,\n  getSymbolTarget,\n  getSyntacticClassifications,\n  getSyntacticModifierFlags,\n  getSyntacticModifierFlagsNoCache,\n  getSynthesizedDeepClone,\n  getSynthesizedDeepCloneWithReplacements,\n  getSynthesizedDeepClones,\n  getSynthesizedDeepClonesWithReplacements,\n  getSyntheticLeadingComments,\n  getSyntheticTrailingComments,\n  getTargetLabel,\n  getTargetOfBindingOrAssignmentElement,\n  getTemporaryModuleResolutionState,\n  getTextOfConstantValue,\n  getTextOfIdentifierOrLiteral,\n  getTextOfJSDocComment,\n  getTextOfJsxAttributeName,\n  getTextOfJsxNamespacedName,\n  getTextOfNode,\n  getTextOfNodeFromSourceText,\n  getTextOfPropertyName,\n  getThisContainer,\n  getThisParameter,\n  getTokenAtPosition,\n  getTokenPosOfNode,\n  getTokenSourceMapRange,\n  getTouchingPropertyName,\n  getTouchingToken,\n  getTrailingCommentRanges,\n  getTrailingSemicolonDeferringWriter,\n  getTransformers,\n  getTsBuildInfoEmitOutputFilePath,\n  getTsConfigObjectLiteralExpression,\n  getTsConfigPropArrayElementValue,\n  getTypeAnnotationNode,\n  getTypeArgumentOrTypeParameterList,\n  getTypeKeywordOfTypeOnlyImport,\n  getTypeNode,\n  getTypeNodeIfAccessible,\n  getTypeParameterFromJsDoc,\n  getTypeParameterOwner,\n  getTypesPackageName,\n  getUILocale,\n  getUniqueName,\n  getUniqueSymbolId,\n  getUseDefineForClassFields,\n  getWatchErrorSummaryDiagnosticMessage,\n  getWatchFactory,\n  group,\n  groupBy,\n  guessIndentation,\n  handleNoEmitOptions,\n  handleWatchOptionsConfigDirTemplateSubstitution,\n  hasAbstractModifier,\n  hasAccessorModifier,\n  hasAmbientModifier,\n  hasChangesInResolutions,\n  hasContextSensitiveParameters,\n  hasDecorators,\n  hasDocComment,\n  hasDynamicName,\n  hasEffectiveModifier,\n  hasEffectiveModifiers,\n  hasEffectiveReadonlyModifier,\n  hasExtension,\n  hasImplementationTSFileExtension,\n  hasIndexSignature,\n  hasInferredType,\n  hasInitializer,\n  hasInvalidEscape,\n  hasJSDocNodes,\n  hasJSDocParameterTags,\n  hasJSFileExtension,\n  hasJsonModuleEmitEnabled,\n  hasOnlyExpressionInitializer,\n  hasOverrideModifier,\n  hasPossibleExternalModuleReference,\n  hasProperty,\n  hasPropertyAccessExpressionWithName,\n  hasQuestionToken,\n  hasRecordedExternalHelpers,\n  hasResolutionModeOverride,\n  hasRestParameter,\n  hasScopeMarker,\n  hasStaticModifier,\n  hasSyntacticModifier,\n  hasSyntacticModifiers,\n  hasTSFileExtension,\n  hasTabstop,\n  hasTrailingDirectorySeparator,\n  hasType,\n  hasTypeArguments,\n  hasZeroOrOneAsteriskCharacter,\n  hostGetCanonicalFileName,\n  hostUsesCaseSensitiveFileNames,\n  idText,\n  identifierIsThisKeyword,\n  identifierToKeywordKind,\n  identity,\n  identitySourceMapConsumer,\n  ignoreSourceNewlines,\n  ignoredPaths,\n  importFromModuleSpecifier,\n  importSyntaxAffectsModuleResolution,\n  indexOfAnyCharCode,\n  indexOfNode,\n  indicesOf,\n  inferredTypesContainingFile,\n  injectClassNamedEvaluationHelperBlockIfMissing,\n  injectClassThisAssignmentIfMissing,\n  insertImports,\n  insertSorted,\n  insertStatementAfterCustomPrologue,\n  insertStatementAfterStandardPrologue,\n  insertStatementsAfterCustomPrologue,\n  insertStatementsAfterStandardPrologue,\n  intersperse,\n  intrinsicTagNameToString,\n  introducesArgumentsExoticObject,\n  inverseJsxOptionMap,\n  isAbstractConstructorSymbol,\n  isAbstractModifier,\n  isAccessExpression,\n  isAccessibilityModifier,\n  isAccessor,\n  isAccessorModifier,\n  isAliasableExpression,\n  isAmbientModule,\n  isAmbientPropertyDeclaration,\n  isAnyDirectorySeparator,\n  isAnyImportOrBareOrAccessedRequire,\n  isAnyImportOrReExport,\n  isAnyImportOrRequireStatement,\n  isAnyImportSyntax,\n  isAnySupportedFileExtension,\n  isApplicableVersionedTypesKey,\n  isArgumentExpressionOfElementAccess,\n  isArray,\n  isArrayBindingElement,\n  isArrayBindingOrAssignmentElement,\n  isArrayBindingOrAssignmentPattern,\n  isArrayBindingPattern,\n  isArrayLiteralExpression,\n  isArrayLiteralOrObjectLiteralDestructuringPattern,\n  isArrayTypeNode,\n  isArrowFunction,\n  isAsExpression,\n  isAssertClause,\n  isAssertEntry,\n  isAssertionExpression,\n  isAssertsKeyword,\n  isAssignmentDeclaration,\n  isAssignmentExpression,\n  isAssignmentOperator,\n  isAssignmentPattern,\n  isAssignmentTarget,\n  isAsteriskToken,\n  isAsyncFunction,\n  isAsyncModifier,\n  isAutoAccessorPropertyDeclaration,\n  isAwaitExpression,\n  isAwaitKeyword,\n  isBigIntLiteral,\n  isBinaryExpression,\n  isBinaryLogicalOperator,\n  isBinaryOperatorToken,\n  isBindableObjectDefinePropertyCall,\n  isBindableStaticAccessExpression,\n  isBindableStaticElementAccessExpression,\n  isBindableStaticNameExpression,\n  isBindingElement,\n  isBindingElementOfBareOrAccessedRequire,\n  isBindingName,\n  isBindingOrAssignmentElement,\n  isBindingOrAssignmentPattern,\n  isBindingPattern,\n  isBlock,\n  isBlockLike,\n  isBlockOrCatchScoped,\n  isBlockScope,\n  isBlockScopedContainerTopLevel,\n  isBooleanLiteral,\n  isBreakOrContinueStatement,\n  isBreakStatement,\n  isBuildCommand,\n  isBuildInfoFile,\n  isBuilderProgram,\n  isBundle,\n  isCallChain,\n  isCallExpression,\n  isCallExpressionTarget,\n  isCallLikeExpression,\n  isCallLikeOrFunctionLikeExpression,\n  isCallOrNewExpression,\n  isCallOrNewExpressionTarget,\n  isCallSignatureDeclaration,\n  isCallToHelper,\n  isCaseBlock,\n  isCaseClause,\n  isCaseKeyword,\n  isCaseOrDefaultClause,\n  isCatchClause,\n  isCatchClauseVariableDeclaration,\n  isCatchClauseVariableDeclarationOrBindingElement,\n  isCheckJsEnabledForFile,\n  isCircularBuildOrder,\n  isClassDeclaration,\n  isClassElement,\n  isClassExpression,\n  isClassInstanceProperty,\n  isClassLike,\n  isClassMemberModifier,\n  isClassNamedEvaluationHelperBlock,\n  isClassOrTypeElement,\n  isClassStaticBlockDeclaration,\n  isClassThisAssignmentBlock,\n  isColonToken,\n  isCommaExpression,\n  isCommaListExpression,\n  isCommaSequence,\n  isCommaToken,\n  isComment,\n  isCommonJsExportPropertyAssignment,\n  isCommonJsExportedExpression,\n  isCompoundAssignment,\n  isComputedNonLiteralName,\n  isComputedPropertyName,\n  isConciseBody,\n  isConditionalExpression,\n  isConditionalTypeNode,\n  isConstAssertion,\n  isConstTypeReference,\n  isConstructSignatureDeclaration,\n  isConstructorDeclaration,\n  isConstructorTypeNode,\n  isContextualKeyword,\n  isContinueStatement,\n  isCustomPrologue,\n  isDebuggerStatement,\n  isDeclaration,\n  isDeclarationBindingElement,\n  isDeclarationFileName,\n  isDeclarationName,\n  isDeclarationNameOfEnumOrNamespace,\n  isDeclarationReadonly,\n  isDeclarationStatement,\n  isDeclarationWithTypeParameterChildren,\n  isDeclarationWithTypeParameters,\n  isDecorator,\n  isDecoratorTarget,\n  isDefaultClause,\n  isDefaultImport,\n  isDefaultModifier,\n  isDefaultedExpandoInitializer,\n  isDeleteExpression,\n  isDeleteTarget,\n  isDeprecatedDeclaration,\n  isDestructuringAssignment,\n  isDiskPathRoot,\n  isDoStatement,\n  isDocumentRegistryEntry,\n  isDotDotDotToken,\n  isDottedName,\n  isDynamicName,\n  isEffectiveExternalModule,\n  isEffectiveStrictModeSourceFile,\n  isElementAccessChain,\n  isElementAccessExpression,\n  isEmittedFileOfProgram,\n  isEmptyArrayLiteral,\n  isEmptyBindingElement,\n  isEmptyBindingPattern,\n  isEmptyObjectLiteral,\n  isEmptyStatement,\n  isEmptyStringLiteral,\n  isEntityName,\n  isEntityNameExpression,\n  isEnumConst,\n  isEnumDeclaration,\n  isEnumMember,\n  isEqualityOperatorKind,\n  isEqualsGreaterThanToken,\n  isExclamationToken,\n  isExcludedFile,\n  isExclusivelyTypeOnlyImportOrExport,\n  isExpandoPropertyDeclaration,\n  isExportAssignment,\n  isExportDeclaration,\n  isExportModifier,\n  isExportName,\n  isExportNamespaceAsDefaultDeclaration,\n  isExportOrDefaultModifier,\n  isExportSpecifier,\n  isExportsIdentifier,\n  isExportsOrModuleExportsOrAlias,\n  isExpression,\n  isExpressionNode,\n  isExpressionOfExternalModuleImportEqualsDeclaration,\n  isExpressionOfOptionalChainRoot,\n  isExpressionStatement,\n  isExpressionWithTypeArguments,\n  isExpressionWithTypeArgumentsInClassExtendsClause,\n  isExternalModule,\n  isExternalModuleAugmentation,\n  isExternalModuleImportEqualsDeclaration,\n  isExternalModuleIndicator,\n  isExternalModuleNameRelative,\n  isExternalModuleReference,\n  isExternalModuleSymbol,\n  isExternalOrCommonJsModule,\n  isFileLevelReservedGeneratedIdentifier,\n  isFileLevelUniqueName,\n  isFileProbablyExternalModule,\n  isFirstDeclarationOfSymbolParameter,\n  isFixablePromiseHandler,\n  isForInOrOfStatement,\n  isForInStatement,\n  isForInitializer,\n  isForOfStatement,\n  isForStatement,\n  isFullSourceFile,\n  isFunctionBlock,\n  isFunctionBody,\n  isFunctionDeclaration,\n  isFunctionExpression,\n  isFunctionExpressionOrArrowFunction,\n  isFunctionLike,\n  isFunctionLikeDeclaration,\n  isFunctionLikeKind,\n  isFunctionLikeOrClassStaticBlockDeclaration,\n  isFunctionOrConstructorTypeNode,\n  isFunctionOrModuleBlock,\n  isFunctionSymbol,\n  isFunctionTypeNode,\n  isGeneratedIdentifier,\n  isGeneratedPrivateIdentifier,\n  isGetAccessor,\n  isGetAccessorDeclaration,\n  isGetOrSetAccessorDeclaration,\n  isGlobalScopeAugmentation,\n  isGlobalSourceFile,\n  isGrammarError,\n  isHeritageClause,\n  isHoistedFunction,\n  isHoistedVariableStatement,\n  isIdentifier,\n  isIdentifierANonContextualKeyword,\n  isIdentifierName,\n  isIdentifierOrThisTypeNode,\n  isIdentifierPart,\n  isIdentifierStart,\n  isIdentifierText,\n  isIdentifierTypePredicate,\n  isIdentifierTypeReference,\n  isIfStatement,\n  isIgnoredFileFromWildCardWatching,\n  isImplicitGlob,\n  isImportAttribute,\n  isImportAttributeName,\n  isImportAttributes,\n  isImportCall,\n  isImportClause,\n  isImportDeclaration,\n  isImportEqualsDeclaration,\n  isImportKeyword,\n  isImportMeta,\n  isImportOrExportSpecifier,\n  isImportOrExportSpecifierName,\n  isImportSpecifier,\n  isImportTypeAssertionContainer,\n  isImportTypeNode,\n  isImportable,\n  isInComment,\n  isInCompoundLikeAssignment,\n  isInExpressionContext,\n  isInJSDoc,\n  isInJSFile,\n  isInJSXText,\n  isInJsonFile,\n  isInNonReferenceComment,\n  isInReferenceComment,\n  isInRightSideOfInternalImportEqualsDeclaration,\n  isInString,\n  isInTemplateString,\n  isInTopLevelContext,\n  isInTypeQuery,\n  isIncrementalBuildInfo,\n  isIncrementalBundleEmitBuildInfo,\n  isIncrementalCompilation,\n  isIndexSignatureDeclaration,\n  isIndexedAccessTypeNode,\n  isInferTypeNode,\n  isInfinityOrNaNString,\n  isInitializedProperty,\n  isInitializedVariable,\n  isInsideJsxElement,\n  isInsideJsxElementOrAttribute,\n  isInsideNodeModules,\n  isInsideTemplateLiteral,\n  isInstanceOfExpression,\n  isInstantiatedModule,\n  isInterfaceDeclaration,\n  isInternalDeclaration,\n  isInternalModuleImportEqualsDeclaration,\n  isInternalName,\n  isIntersectionTypeNode,\n  isIntrinsicJsxName,\n  isIterationStatement,\n  isJSDoc,\n  isJSDocAllType,\n  isJSDocAugmentsTag,\n  isJSDocAuthorTag,\n  isJSDocCallbackTag,\n  isJSDocClassTag,\n  isJSDocCommentContainingNode,\n  isJSDocConstructSignature,\n  isJSDocDeprecatedTag,\n  isJSDocEnumTag,\n  isJSDocFunctionType,\n  isJSDocImplementsTag,\n  isJSDocImportTag,\n  isJSDocIndexSignature,\n  isJSDocLikeText,\n  isJSDocLink,\n  isJSDocLinkCode,\n  isJSDocLinkLike,\n  isJSDocLinkPlain,\n  isJSDocMemberName,\n  isJSDocNameReference,\n  isJSDocNamepathType,\n  isJSDocNamespaceBody,\n  isJSDocNode,\n  isJSDocNonNullableType,\n  isJSDocNullableType,\n  isJSDocOptionalParameter,\n  isJSDocOptionalType,\n  isJSDocOverloadTag,\n  isJSDocOverrideTag,\n  isJSDocParameterTag,\n  isJSDocPrivateTag,\n  isJSDocPropertyLikeTag,\n  isJSDocPropertyTag,\n  isJSDocProtectedTag,\n  isJSDocPublicTag,\n  isJSDocReadonlyTag,\n  isJSDocReturnTag,\n  isJSDocSatisfiesExpression,\n  isJSDocSatisfiesTag,\n  isJSDocSeeTag,\n  isJSDocSignature,\n  isJSDocTag,\n  isJSDocTemplateTag,\n  isJSDocThisTag,\n  isJSDocThrowsTag,\n  isJSDocTypeAlias,\n  isJSDocTypeAssertion,\n  isJSDocTypeExpression,\n  isJSDocTypeLiteral,\n  isJSDocTypeTag,\n  isJSDocTypedefTag,\n  isJSDocUnknownTag,\n  isJSDocUnknownType,\n  isJSDocVariadicType,\n  isJSXTagName,\n  isJsonEqual,\n  isJsonSourceFile,\n  isJsxAttribute,\n  isJsxAttributeLike,\n  isJsxAttributeName,\n  isJsxAttributes,\n  isJsxCallLike,\n  isJsxChild,\n  isJsxClosingElement,\n  isJsxClosingFragment,\n  isJsxElement,\n  isJsxExpression,\n  isJsxFragment,\n  isJsxNamespacedName,\n  isJsxOpeningElement,\n  isJsxOpeningFragment,\n  isJsxOpeningLikeElement,\n  isJsxOpeningLikeElementTagName,\n  isJsxSelfClosingElement,\n  isJsxSpreadAttribute,\n  isJsxTagNameExpression,\n  isJsxText,\n  isJumpStatementTarget,\n  isKeyword,\n  isKeywordOrPunctuation,\n  isKnownSymbol,\n  isLabelName,\n  isLabelOfLabeledStatement,\n  isLabeledStatement,\n  isLateVisibilityPaintedStatement,\n  isLeftHandSideExpression,\n  isLet,\n  isLineBreak,\n  isLiteralComputedPropertyDeclarationName,\n  isLiteralExpression,\n  isLiteralExpressionOfObject,\n  isLiteralImportTypeNode,\n  isLiteralKind,\n  isLiteralNameOfPropertyDeclarationOrIndexAccess,\n  isLiteralTypeLiteral,\n  isLiteralTypeNode,\n  isLocalName,\n  isLogicalOperator,\n  isLogicalOrCoalescingAssignmentExpression,\n  isLogicalOrCoalescingAssignmentOperator,\n  isLogicalOrCoalescingBinaryExpression,\n  isLogicalOrCoalescingBinaryOperator,\n  isMappedTypeNode,\n  isMemberName,\n  isMetaProperty,\n  isMethodDeclaration,\n  isMethodOrAccessor,\n  isMethodSignature,\n  isMinusToken,\n  isMissingDeclaration,\n  isMissingPackageJsonInfo,\n  isModifier,\n  isModifierKind,\n  isModifierLike,\n  isModuleAugmentationExternal,\n  isModuleBlock,\n  isModuleBody,\n  isModuleDeclaration,\n  isModuleExportName,\n  isModuleExportsAccessExpression,\n  isModuleIdentifier,\n  isModuleName,\n  isModuleOrEnumDeclaration,\n  isModuleReference,\n  isModuleSpecifierLike,\n  isModuleWithStringLiteralName,\n  isNameOfFunctionDeclaration,\n  isNameOfModuleDeclaration,\n  isNamedDeclaration,\n  isNamedEvaluation,\n  isNamedEvaluationSource,\n  isNamedExportBindings,\n  isNamedExports,\n  isNamedImportBindings,\n  isNamedImports,\n  isNamedImportsOrExports,\n  isNamedTupleMember,\n  isNamespaceBody,\n  isNamespaceExport,\n  isNamespaceExportDeclaration,\n  isNamespaceImport,\n  isNamespaceReexportDeclaration,\n  isNewExpression,\n  isNewExpressionTarget,\n  isNewScopeNode,\n  isNoSubstitutionTemplateLiteral,\n  isNodeArray,\n  isNodeArrayMultiLine,\n  isNodeDescendantOf,\n  isNodeKind,\n  isNodeLikeSystem,\n  isNodeModulesDirectory,\n  isNodeWithPossibleHoistedDeclaration,\n  isNonContextualKeyword,\n  isNonGlobalAmbientModule,\n  isNonNullAccess,\n  isNonNullChain,\n  isNonNullExpression,\n  isNonStaticMethodOrAccessorWithPrivateName,\n  isNotEmittedStatement,\n  isNullishCoalesce,\n  isNumber,\n  isNumericLiteral,\n  isNumericLiteralName,\n  isObjectBindingElementWithoutPropertyName,\n  isObjectBindingOrAssignmentElement,\n  isObjectBindingOrAssignmentPattern,\n  isObjectBindingPattern,\n  isObjectLiteralElement,\n  isObjectLiteralElementLike,\n  isObjectLiteralExpression,\n  isObjectLiteralMethod,\n  isObjectLiteralOrClassExpressionMethodOrAccessor,\n  isObjectTypeDeclaration,\n  isOmittedExpression,\n  isOptionalChain,\n  isOptionalChainRoot,\n  isOptionalDeclaration,\n  isOptionalJSDocPropertyLikeTag,\n  isOptionalTypeNode,\n  isOuterExpression,\n  isOutermostOptionalChain,\n  isOverrideModifier,\n  isPackageJsonInfo,\n  isPackedArrayLiteral,\n  isParameter,\n  isParameterPropertyDeclaration,\n  isParameterPropertyModifier,\n  isParenthesizedExpression,\n  isParenthesizedTypeNode,\n  isParseTreeNode,\n  isPartOfParameterDeclaration,\n  isPartOfTypeNode,\n  isPartOfTypeOnlyImportOrExportDeclaration,\n  isPartOfTypeQuery,\n  isPartiallyEmittedExpression,\n  isPatternMatch,\n  isPinnedComment,\n  isPlainJsFile,\n  isPlusToken,\n  isPossiblyTypeArgumentPosition,\n  isPostfixUnaryExpression,\n  isPrefixUnaryExpression,\n  isPrimitiveLiteralValue,\n  isPrivateIdentifier,\n  isPrivateIdentifierClassElementDeclaration,\n  isPrivateIdentifierPropertyAccessExpression,\n  isPrivateIdentifierSymbol,\n  isProgramUptoDate,\n  isPrologueDirective,\n  isPropertyAccessChain,\n  isPropertyAccessEntityNameExpression,\n  isPropertyAccessExpression,\n  isPropertyAccessOrQualifiedName,\n  isPropertyAccessOrQualifiedNameOrImportTypeNode,\n  isPropertyAssignment,\n  isPropertyDeclaration,\n  isPropertyName,\n  isPropertyNameLiteral,\n  isPropertySignature,\n  isPrototypeAccess,\n  isPrototypePropertyAssignment,\n  isPunctuation,\n  isPushOrUnshiftIdentifier,\n  isQualifiedName,\n  isQuestionDotToken,\n  isQuestionOrExclamationToken,\n  isQuestionOrPlusOrMinusToken,\n  isQuestionToken,\n  isReadonlyKeyword,\n  isReadonlyKeywordOrPlusOrMinusToken,\n  isRecognizedTripleSlashComment,\n  isReferenceFileLocation,\n  isReferencedFile,\n  isRegularExpressionLiteral,\n  isRequireCall,\n  isRequireVariableStatement,\n  isRestParameter,\n  isRestTypeNode,\n  isReturnStatement,\n  isReturnStatementWithFixablePromiseHandler,\n  isRightSideOfAccessExpression,\n  isRightSideOfInstanceofExpression,\n  isRightSideOfPropertyAccess,\n  isRightSideOfQualifiedName,\n  isRightSideOfQualifiedNameOrPropertyAccess,\n  isRightSideOfQualifiedNameOrPropertyAccessOrJSDocMemberName,\n  isRootedDiskPath,\n  isSameEntityName,\n  isSatisfiesExpression,\n  isSemicolonClassElement,\n  isSetAccessor,\n  isSetAccessorDeclaration,\n  isShiftOperatorOrHigher,\n  isShorthandAmbientModuleSymbol,\n  isShorthandPropertyAssignment,\n  isSideEffectImport,\n  isSignedNumericLiteral,\n  isSimpleCopiableExpression,\n  isSimpleInlineableExpression,\n  isSimpleParameterList,\n  isSingleOrDoubleQuote,\n  isSolutionConfig,\n  isSourceElement,\n  isSourceFile,\n  isSourceFileFromLibrary,\n  isSourceFileJS,\n  isSourceFileNotJson,\n  isSourceMapping,\n  isSpecialPropertyDeclaration,\n  isSpreadAssignment,\n  isSpreadElement,\n  isStatement,\n  isStatementButNotDeclaration,\n  isStatementOrBlock,\n  isStatementWithLocals,\n  isStatic,\n  isStaticModifier,\n  isString,\n  isStringANonContextualKeyword,\n  isStringAndEmptyAnonymousObjectIntersection,\n  isStringDoubleQuoted,\n  isStringLiteral,\n  isStringLiteralLike,\n  isStringLiteralOrJsxExpression,\n  isStringLiteralOrTemplate,\n  isStringOrNumericLiteralLike,\n  isStringOrRegularExpressionOrTemplateLiteral,\n  isStringTextContainingNode,\n  isSuperCall,\n  isSuperKeyword,\n  isSuperProperty,\n  isSupportedSourceFileName,\n  isSwitchStatement,\n  isSyntaxList,\n  isSyntheticExpression,\n  isSyntheticReference,\n  isTagName,\n  isTaggedTemplateExpression,\n  isTaggedTemplateTag,\n  isTemplateExpression,\n  isTemplateHead,\n  isTemplateLiteral,\n  isTemplateLiteralKind,\n  isTemplateLiteralToken,\n  isTemplateLiteralTypeNode,\n  isTemplateLiteralTypeSpan,\n  isTemplateMiddle,\n  isTemplateMiddleOrTemplateTail,\n  isTemplateSpan,\n  isTemplateTail,\n  isTextWhiteSpaceLike,\n  isThis,\n  isThisContainerOrFunctionBlock,\n  isThisIdentifier,\n  isThisInTypeQuery,\n  isThisInitializedDeclaration,\n  isThisInitializedObjectBindingExpression,\n  isThisProperty,\n  isThisTypeNode,\n  isThisTypeParameter,\n  isThisTypePredicate,\n  isThrowStatement,\n  isToken,\n  isTokenKind,\n  isTraceEnabled,\n  isTransientSymbol,\n  isTrivia,\n  isTryStatement,\n  isTupleTypeNode,\n  isTypeAlias,\n  isTypeAliasDeclaration,\n  isTypeAssertionExpression,\n  isTypeDeclaration,\n  isTypeElement,\n  isTypeKeyword,\n  isTypeKeywordTokenOrIdentifier,\n  isTypeLiteralNode,\n  isTypeNode,\n  isTypeNodeKind,\n  isTypeOfExpression,\n  isTypeOnlyExportDeclaration,\n  isTypeOnlyImportDeclaration,\n  isTypeOnlyImportOrExportDeclaration,\n  isTypeOperatorNode,\n  isTypeParameterDeclaration,\n  isTypePredicateNode,\n  isTypeQueryNode,\n  isTypeReferenceNode,\n  isTypeReferenceType,\n  isTypeUsableAsPropertyName,\n  isUMDExportSymbol,\n  isUnaryExpression,\n  isUnaryExpressionWithWrite,\n  isUnicodeIdentifierStart,\n  isUnionTypeNode,\n  isUrl,\n  isValidBigIntString,\n  isValidESSymbolDeclaration,\n  isValidTypeOnlyAliasUseSite,\n  isValueSignatureDeclaration,\n  isVarAwaitUsing,\n  isVarConst,\n  isVarConstLike,\n  isVarUsing,\n  isVariableDeclaration,\n  isVariableDeclarationInVariableStatement,\n  isVariableDeclarationInitializedToBareOrAccessedRequire,\n  isVariableDeclarationInitializedToRequire,\n  isVariableDeclarationList,\n  isVariableLike,\n  isVariableStatement,\n  isVoidExpression,\n  isWatchSet,\n  isWhileStatement,\n  isWhiteSpaceLike,\n  isWhiteSpaceSingleLine,\n  isWithStatement,\n  isWriteAccess,\n  isWriteOnlyAccess,\n  isYieldExpression,\n  jsxModeNeedsExplicitImport,\n  keywordPart,\n  last,\n  lastOrUndefined,\n  length,\n  libMap,\n  libs,\n  lineBreakPart,\n  loadModuleFromGlobalCache,\n  loadWithModeAwareCache,\n  makeIdentifierFromModuleName,\n  makeImport,\n  makeStringLiteral,\n  mangleScopedPackageName,\n  map,\n  mapAllOrFail,\n  mapDefined,\n  mapDefinedIterator,\n  mapEntries,\n  mapIterator,\n  mapOneOrMany,\n  mapToDisplayParts,\n  matchFiles,\n  matchPatternOrExact,\n  matchedText,\n  matchesExclude,\n  matchesExcludeWorker,\n  maxBy,\n  maybeBind,\n  maybeSetLocalizedDiagnosticMessages,\n  memoize,\n  memoizeOne,\n  min,\n  minAndMax,\n  missingFileModifiedTime,\n  modifierToFlag,\n  modifiersToFlags,\n  moduleExportNameIsDefault,\n  moduleExportNameTextEscaped,\n  moduleExportNameTextUnescaped,\n  moduleOptionDeclaration,\n  moduleResolutionIsEqualTo,\n  moduleResolutionNameAndModeGetter,\n  moduleResolutionOptionDeclarations,\n  moduleResolutionSupportsPackageJsonExportsAndImports,\n  moduleResolutionUsesNodeModules,\n  moduleSpecifierToValidIdentifier,\n  moduleSpecifiers,\n  moduleSupportsImportAttributes,\n  moduleSymbolToValidIdentifier,\n  moveEmitHelpers,\n  moveRangeEnd,\n  moveRangePastDecorators,\n  moveRangePastModifiers,\n  moveRangePos,\n  moveSyntheticComments,\n  mutateMap,\n  mutateMapSkippingNewValues,\n  needsParentheses,\n  needsScopeMarker,\n  newCaseClauseTracker,\n  newPrivateEnvironment,\n  noEmitNotification,\n  noEmitSubstitution,\n  noTransformers,\n  noTruncationMaximumTruncationLength,\n  nodeCanBeDecorated,\n  nodeCoreModules,\n  nodeHasName,\n  nodeIsDecorated,\n  nodeIsMissing,\n  nodeIsPresent,\n  nodeIsSynthesized,\n  nodeModuleNameResolver,\n  nodeModulesPathPart,\n  nodeNextJsonConfigResolver,\n  nodeOrChildIsDecorated,\n  nodeOverlapsWithStartEnd,\n  nodePosToString,\n  nodeSeenTracker,\n  nodeStartsNewLexicalEnvironment,\n  noop,\n  noopFileWatcher,\n  normalizePath,\n  normalizeSlashes,\n  normalizeSpans,\n  not,\n  notImplemented,\n  notImplementedResolver,\n  nullNodeConverters,\n  nullParenthesizerRules,\n  nullTransformationContext,\n  objectAllocator,\n  operatorPart,\n  optionDeclarations,\n  optionMapToObject,\n  optionsAffectingProgramStructure,\n  optionsForBuild,\n  optionsForWatch,\n  optionsHaveChanges,\n  or,\n  orderedRemoveItem,\n  orderedRemoveItemAt,\n  packageIdToPackageName,\n  packageIdToString,\n  parameterIsThisKeyword,\n  parameterNamePart,\n  parseBaseNodeFactory,\n  parseBigInt,\n  parseBuildCommand,\n  parseCommandLine,\n  parseCommandLineWorker,\n  parseConfigFileTextToJson,\n  parseConfigFileWithSystem,\n  parseConfigHostFromCompilerHostLike,\n  parseCustomTypeOption,\n  parseIsolatedEntityName,\n  parseIsolatedJSDocComment,\n  parseJSDocTypeExpressionForTests,\n  parseJsonConfigFileContent,\n  parseJsonSourceFileConfigFileContent,\n  parseJsonText,\n  parseListTypeOption,\n  parseNodeFactory,\n  parseNodeModuleFromPath,\n  parsePackageName,\n  parsePseudoBigInt,\n  parseValidBigInt,\n  pasteEdits,\n  patchWriteFileEnsuringDirectory,\n  pathContainsNodeModules,\n  pathIsAbsolute,\n  pathIsBareSpecifier,\n  pathIsRelative,\n  patternText,\n  performIncrementalCompilation,\n  performance,\n  positionBelongsToNode,\n  positionIsASICandidate,\n  positionIsSynthesized,\n  positionsAreOnSameLine,\n  preProcessFile,\n  probablyUsesSemicolons,\n  processCommentPragmas,\n  processPragmasIntoFields,\n  processTaggedTemplateExpression,\n  programContainsEsModules,\n  programContainsModules,\n  projectReferenceIsEqualTo,\n  propertyNamePart,\n  pseudoBigIntToString,\n  punctuationPart,\n  pushIfUnique,\n  quote,\n  quotePreferenceFromString,\n  rangeContainsPosition,\n  rangeContainsPositionExclusive,\n  rangeContainsRange,\n  rangeContainsRangeExclusive,\n  rangeContainsStartEnd,\n  rangeEndIsOnSameLineAsRangeStart,\n  rangeEndPositionsAreOnSameLine,\n  rangeEquals,\n  rangeIsOnSingleLine,\n  rangeOfNode,\n  rangeOfTypeParameters,\n  rangeOverlapsWithStartEnd,\n  rangeStartIsOnSameLineAsRangeEnd,\n  rangeStartPositionsAreOnSameLine,\n  readBuilderProgram,\n  readConfigFile,\n  readJson,\n  readJsonConfigFile,\n  readJsonOrUndefined,\n  reduceEachLeadingCommentRange,\n  reduceEachTrailingCommentRange,\n  reduceLeft,\n  reduceLeftIterator,\n  reducePathComponents,\n  refactor,\n  regExpEscape,\n  regularExpressionFlagToCharacterCode,\n  relativeComplement,\n  removeAllComments,\n  removeEmitHelper,\n  removeExtension,\n  removeFileExtension,\n  removeIgnoredPath,\n  removeMinAndVersionNumbers,\n  removePrefix,\n  removeSuffix,\n  removeTrailingDirectorySeparator,\n  repeatString,\n  replaceElement,\n  replaceFirstStar,\n  resolutionExtensionIsTSOrJson,\n  resolveConfigFileProjectName,\n  resolveJSModule,\n  resolveLibrary,\n  resolveModuleName,\n  resolveModuleNameFromCache,\n  resolvePackageNameToPackageJson,\n  resolvePath,\n  resolveProjectReferencePath,\n  resolveTripleslashReference,\n  resolveTypeReferenceDirective,\n  resolvingEmptyArray,\n  returnFalse,\n  returnNoopFileWatcher,\n  returnTrue,\n  returnUndefined,\n  returnsPromise,\n  rewriteModuleSpecifier,\n  sameFlatMap,\n  sameMap,\n  sameMapping,\n  scanTokenAtPosition,\n  scanner,\n  semanticDiagnosticsOptionDeclarations,\n  serializeCompilerOptions,\n  server,\n  servicesVersion,\n  setCommentRange,\n  setConfigFileInOptions,\n  setConstantValue,\n  setEmitFlags,\n  setGetSourceFileAsHashVersioned,\n  setIdentifierAutoGenerate,\n  setIdentifierGeneratedImportReference,\n  setIdentifierTypeArguments,\n  setInternalEmitFlags,\n  setLocalizedDiagnosticMessages,\n  setNodeChildren,\n  setNodeFlags,\n  setObjectAllocator,\n  setOriginalNode,\n  setParent,\n  setParentRecursive,\n  setPrivateIdentifier,\n  setSnippetElement,\n  setSourceMapRange,\n  setStackTraceLimit,\n  setStartsOnNewLine,\n  setSyntheticLeadingComments,\n  setSyntheticTrailingComments,\n  setSys,\n  setSysLog,\n  setTextRange,\n  setTextRangeEnd,\n  setTextRangePos,\n  setTextRangePosEnd,\n  setTextRangePosWidth,\n  setTokenSourceMapRange,\n  setTypeNode,\n  setUILocale,\n  setValueDeclaration,\n  shouldAllowImportingTsExtension,\n  shouldPreserveConstEnums,\n  shouldRewriteModuleSpecifier,\n  shouldUseUriStyleNodeCoreModules,\n  showModuleSpecifier,\n  signatureHasRestParameter,\n  signatureToDisplayParts,\n  single,\n  singleElementArray,\n  singleIterator,\n  singleOrMany,\n  singleOrUndefined,\n  skipAlias,\n  skipConstraint,\n  skipOuterExpressions,\n  skipParentheses,\n  skipPartiallyEmittedExpressions,\n  skipTrivia,\n  skipTypeChecking,\n  skipTypeCheckingIgnoringNoCheck,\n  skipTypeParentheses,\n  skipWhile,\n  sliceAfter,\n  some,\n  sortAndDeduplicate,\n  sortAndDeduplicateDiagnostics,\n  sourceFileAffectingCompilerOptions,\n  sourceFileMayBeEmitted,\n  sourceMapCommentRegExp,\n  sourceMapCommentRegExpDontCareLineStart,\n  spacePart,\n  spanMap,\n  startEndContainsRange,\n  startEndOverlapsWithStartEnd,\n  startOnNewLine,\n  startTracing,\n  startsWith,\n  startsWithDirectory,\n  startsWithUnderscore,\n  startsWithUseStrict,\n  stringContainsAt,\n  stringToToken,\n  stripQuotes,\n  supportedDeclarationExtensions,\n  supportedJSExtensionsFlat,\n  supportedLocaleDirectories,\n  supportedTSExtensionsFlat,\n  supportedTSImplementationExtensions,\n  suppressLeadingAndTrailingTrivia,\n  suppressLeadingTrivia,\n  suppressTrailingTrivia,\n  symbolEscapedNameNoDefault,\n  symbolName,\n  symbolNameNoDefault,\n  symbolToDisplayParts,\n  sys,\n  sysLog,\n  tagNamesAreEquivalent,\n  takeWhile,\n  targetOptionDeclaration,\n  targetToLibMap,\n  testFormatSettings,\n  textChangeRangeIsUnchanged,\n  textChangeRangeNewSpan,\n  textChanges,\n  textOrKeywordPart,\n  textPart,\n  textRangeContainsPositionInclusive,\n  textRangeContainsTextSpan,\n  textRangeIntersectsWithTextSpan,\n  textSpanContainsPosition,\n  textSpanContainsTextRange,\n  textSpanContainsTextSpan,\n  textSpanEnd,\n  textSpanIntersection,\n  textSpanIntersectsWith,\n  textSpanIntersectsWithPosition,\n  textSpanIntersectsWithTextSpan,\n  textSpanIsEmpty,\n  textSpanOverlap,\n  textSpanOverlapsWith,\n  textSpansEqual,\n  textToKeywordObj,\n  timestamp,\n  toArray,\n  toBuilderFileEmit,\n  toBuilderStateFileInfoForMultiEmit,\n  toEditorSettings,\n  toFileNameLowerCase,\n  toPath,\n  toProgramEmitPending,\n  toSorted,\n  tokenIsIdentifierOrKeyword,\n  tokenIsIdentifierOrKeywordOrGreaterThan,\n  tokenToString,\n  trace,\n  tracing,\n  tracingEnabled,\n  transferSourceFileChildren,\n  transform,\n  transformClassFields,\n  transformDeclarations,\n  transformECMAScriptModule,\n  transformES2015,\n  transformES2016,\n  transformES2017,\n  transformES2018,\n  transformES2019,\n  transformES2020,\n  transformES2021,\n  transformESDecorators,\n  transformESNext,\n  transformGenerators,\n  transformImpliedNodeFormatDependentModule,\n  transformJsx,\n  transformLegacyDecorators,\n  transformModule,\n  transformNamedEvaluation,\n  transformNodes,\n  transformSystemModule,\n  transformTypeScript,\n  transpile,\n  transpileDeclaration,\n  transpileModule,\n  transpileOptionValueCompilerOptions,\n  tryAddToSet,\n  tryAndIgnoreErrors,\n  tryCast,\n  tryDirectoryExists,\n  tryExtractTSExtension,\n  tryFileExists,\n  tryGetClassExtendingExpressionWithTypeArguments,\n  tryGetClassImplementingOrExtendingExpressionWithTypeArguments,\n  tryGetDirectories,\n  tryGetExtensionFromPath,\n  tryGetImportFromModuleSpecifier,\n  tryGetJSDocSatisfiesTypeNode,\n  tryGetModuleNameFromFile,\n  tryGetModuleSpecifierFromDeclaration,\n  tryGetNativePerformanceHooks,\n  tryGetPropertyAccessOrIdentifierToString,\n  tryGetPropertyNameOfBindingOrAssignmentElement,\n  tryGetSourceMappingURL,\n  tryGetTextOfPropertyName,\n  tryParseJson,\n  tryParsePattern,\n  tryParsePatterns,\n  tryParseRawSourceMap,\n  tryReadDirectory,\n  tryReadFile,\n  tryRemoveDirectoryPrefix,\n  tryRemoveExtension,\n  tryRemovePrefix,\n  tryRemoveSuffix,\n  tscBuildOption,\n  typeAcquisitionDeclarations,\n  typeAliasNamePart,\n  typeDirectiveIsEqualTo,\n  typeKeywords,\n  typeParameterNamePart,\n  typeToDisplayParts,\n  unchangedPollThresholds,\n  unchangedTextChangeRange,\n  unescapeLeadingUnderscores,\n  unmangleScopedPackageName,\n  unorderedRemoveItem,\n  unprefixedNodeCoreModules,\n  unreachableCodeIsError,\n  unsetNodeChildren,\n  unusedLabelIsError,\n  unwrapInnermostStatementOfLabel,\n  unwrapParenthesizedExpression,\n  updateErrorForNoInputFiles,\n  updateLanguageServiceSourceFile,\n  updateMissingFilePathsWatch,\n  updateResolutionField,\n  updateSharedExtendedConfigFileWatcher,\n  updateSourceFile,\n  updateWatchingWildcardDirectories,\n  usingSingleLineStringWriter,\n  utf16EncodeAsString,\n  validateLocaleAndSetLanguage,\n  version,\n  versionMajorMinor,\n  visitArray,\n  visitCommaListElements,\n  visitEachChild,\n  visitFunctionBody,\n  visitIterationBody,\n  visitLexicalEnvironment,\n  visitNode,\n  visitNodes,\n  visitParameterList,\n  walkUpBindingElementsAndPatterns,\n  walkUpOuterExpressions,\n  walkUpParenthesizedExpressions,\n  walkUpParenthesizedTypes,\n  walkUpParenthesizedTypesAndGetParentAndChild,\n  whitespaceOrMapCommentRegExp,\n  writeCommentRange,\n  writeFile,\n  writeFileEnsuringDirectories,\n  zipWith\n});\n})({ get exports() { return ts; }, set exports(v) { ts = v; if (typeof module !== \"undefined\" && module.exports) { module.exports = v; } } })\n//# sourceMappingURL=typescript.js.map\n","/** File/directory names to always skip when scanning. */\r\nexport const IGNORE = new Set([\r\n  \"node_modules\",\r\n  \"dist\",\r\n  \".git\",\r\n  \"package.json\",\r\n  \"tsconfig.json\",\r\n  \"README.md\",\r\n  \"package-lock.json\",\r\n  \"bun.lock\",\r\n  \"bun.lockb\"\r\n]);\r\n\r\n/** Asset/binary file extensions excluded from the code tree by default. */\r\nexport const ASSET_EXTS = new Set([\r\n  \".svg\", \".png\", \".jpg\", \".jpeg\", \".gif\", \".webp\", \".avif\", \".ico\", \".bmp\",\r\n  \".tiff\", \".tif\", \".heic\", \".heif\",\r\n  \".mp4\", \".webm\", \".mov\", \".avi\", \".mkv\",\r\n  \".mp3\", \".wav\", \".ogg\", \".flac\", \".aac\",\r\n  \".woff\", \".woff2\", \".ttf\", \".otf\", \".eot\",\r\n  \".zip\", \".tar\", \".gz\", \".bz2\", \".7z\", \".rar\",\r\n  \".pdf\", \".doc\", \".docx\", \".xls\", \".xlsx\", \".ppt\", \".pptx\",\r\n]);\r\n\r\n/** File extensions that can be parsed for imports/exports. */\r\nexport const PARSEABLE_EXTS = new Set([\".ts\", \".tsx\", \".js\", \".jsx\", \".mjs\"]);\r\n\r\n/** Node.js built-in module specifiers (excluded from import lists). */\r\nexport const SYSTEM_MODULES = new Set([\r\n  \"fs\", \"path\", \"os\", \"url\", \"util\", \"http\", \"https\", \"stream\",\r\n  \"events\", \"child_process\", \"crypto\", \"buffer\", \"querystring\",\r\n  \"readline\", \"net\", \"tls\", \"dns\", \"assert\", \"zlib\", \"worker_threads\",\r\n  \"node:fs\", \"node:path\", \"node:os\", \"node:url\", \"node:util\",\r\n  \"node:http\", \"node:https\", \"node:stream\", \"node:events\",\r\n  \"node:child_process\", \"node:crypto\", \"node:buffer\", \"node:readline\",\r\n  \"node:net\", \"node:tls\", \"node:dns\", \"node:assert\", \"node:zlib\",\r\n  \"node:worker_threads\", \"fs/promises\", \"node:fs/promises\",\r\n]);\r\n","/**\r\n * @file ESTree-based file analyser for JSX/TSX files.\r\n *\r\n * Uses `@typescript-eslint/typescript-estree` so that JSX syntax is handled\r\n * without needing a full TypeScript program.\r\n */\r\nimport fs from \"fs\";\r\nimport { parse } from \"@typescript-eslint/typescript-estree\";\r\nimport type { AnalysisItem, AnalysisKind, FileAnalysis, TypeProperty } from \"./types\";\r\nimport { SYSTEM_MODULES } from \"./constants\";\r\n\r\n/**\r\n * Analyse a source file using the ESTree AST.\r\n *\r\n * @param filePath - Absolute path used for reading (ignored when `providedContent` is set).\r\n * @param providedContent - Optional in-memory source text.\r\n * @returns Parsed import/export information, or `undefined` if the file cannot be parsed.\r\n */\r\nexport function analyzeFileEstree(filePath: string, providedContent?: string): FileAnalysis | undefined {\r\n  let content: string;\r\n  if (providedContent !== undefined) {\r\n    content = providedContent;\r\n  } else {\r\n    try {\r\n      content = fs.readFileSync(filePath, \"utf8\");\r\n    } catch {\r\n      return undefined;\r\n    }\r\n  }\r\n\r\n  let ast: any;\r\n  try {\r\n    ast = parse(content, {\r\n      jsx: true,\r\n      loc: true,\r\n      range: true,\r\n      comment: true,\r\n    });\r\n  } catch {\r\n    return undefined;\r\n  }\r\n\r\n  const localImports: string[] = [];\r\n  const localImportSymbols: {\r\n    source: string;\r\n    valueNames: string[];\r\n    typeNames: string[];\r\n  }[] = [];\r\n  const npmImports: string[] = [];\r\n  const exports: AnalysisItem[] = [];\r\n  const functions: AnalysisItem[] = [];\r\n  const types: AnalysisItem[] = [];\r\n\r\n  /**\r\n   * Find the closest preceding JSDoc block comment for a node.\r\n   * @returns The cleaned comment text, or `undefined`.\r\n   */\r\n  function getJsDoc(node: any): string | undefined {\r\n    if (!ast.comments) return undefined;\r\n    let closestComment: any = undefined;\r\n    for (const comment of ast.comments) {\r\n      if (comment.type === 'Block' && comment.value.startsWith('*')) {\r\n        if (comment.loc.end.line <= node.loc.start.line && (!closestComment || comment.loc.end.line > closestComment.loc.end.line)) {\r\n            closestComment = comment;\r\n        }\r\n      }\r\n    }\r\n\r\n    if (closestComment && node.loc.start.line - closestComment.loc.end.line <= 2) {\r\n       const lines = closestComment.value.split('\\\\n');\r\n       for (const line of lines) {\r\n         if (line.includes('@description')) return line.split('@description')[1].trim();\r\n       }\r\n       return lines.map((l: string) => l.replace(/^\\\\s*\\\\*\\\\s?/, '').trim()).filter((l: string) => l && !l.startsWith('@')).join('\\\\n').trim() || undefined;\r\n    }\r\n    return undefined;\r\n  }\r\n\r\n  /**\r\n   * Extract a condensed signature string from a declaration node.\r\n   */\r\n  function getSignature(node: any): string | undefined {\r\n      if (!node.range) return undefined;\r\n      if (node.type === 'FunctionDeclaration' || node.type === 'TSDeclareFunction') {\r\n         const headEnd = node.body ? node.body.range[0] : node.range[1];\r\n         return content.slice(node.range[0], headEnd).replace(/^export\\\\s+|default\\\\s+|async\\\\s+/g, '').trim();\r\n      }\r\n      if (node.type === 'VariableDeclarator') {\r\n         if (node.init && (node.init.type === 'ArrowFunctionExpression' || node.init.type === 'FunctionExpression')) {\r\n            const headEnd = node.init.body.type === 'BlockStatement' ? node.init.body.range[0] : node.init.range[0];\r\n            return content.slice(node.init.range[0], headEnd).trim();\r\n         }\r\n         return node.id.typeAnnotation ? content.slice(node.id.typeAnnotation.range[0], node.id.typeAnnotation.range[1]) : undefined;\r\n      }\r\n      if (node.type === 'TSTypeAliasDeclaration' || node.type === 'TSInterfaceDeclaration' || node.type === 'TSEnumDeclaration' || node.type === 'ClassDeclaration') {\r\n         return content.slice(node.range[0], node.range[1]);\r\n      }\r\n      return undefined;\r\n  }\r\n\r\n  /**\r\n   * Extract properties from an interface or type-literal node.\r\n   */\r\n  function getProperties(node: any): TypeProperty[] | undefined {\r\n      let members: any[] = [];\r\n      if (node.type === 'TSInterfaceDeclaration' && node.body && node.body.body) {\r\n          members = node.body.body;\r\n      } else if (node.type === 'TSTypeAliasDeclaration' && node.typeAnnotation && node.typeAnnotation.type === 'TSTypeLiteral') {\r\n          members = node.typeAnnotation.members;\r\n      }\r\n\r\n      if (!members.length) return undefined;\r\n\r\n      const props: TypeProperty[] = [];\r\n      for (const member of members) {\r\n          if (member.type === 'TSPropertySignature' && member.key && member.key.name) {\r\n             const required = !member.optional;\r\n             const type = member.typeAnnotation ? content.slice(member.typeAnnotation.typeAnnotation.range[0], member.typeAnnotation.typeAnnotation.range[1]) : 'unknown';\r\n             const propDoc = getJsDoc(member);\r\n             const prop: TypeProperty = { name: member.key.name, type, required };\r\n             if (propDoc) prop.description = propDoc;\r\n             props.push(prop);\r\n          }\r\n      }\r\n      return props.length > 0 ? props : undefined;\r\n  }\r\n\r\n  /**\r\n   * Build an {@link AnalysisItem} from a declaration node.\r\n   */\r\n  function item(name: string, node: any, kind?: AnalysisKind): AnalysisItem {\r\n    const line = node.loc.start.line;\r\n    const jsdoc = getJsDoc(node);\r\n    const signature = getSignature(node);\r\n    const properties = getProperties(node);\r\n    const result: AnalysisItem = { name, line };\r\n    if (kind) result.kind = kind;\r\n    if (jsdoc) result.jsdoc = jsdoc;\r\n    if (signature) result.signature = signature;\r\n    if (properties) result.properties = properties;\r\n    return result;\r\n  }\r\n\r\n  /**\r\n   * Process a single top-level AST node, populating the result arrays.\r\n   */\r\n  function processNode(node: any, isExported: boolean = false) {\r\n     if (node.type === 'ImportDeclaration') {\r\n        const mod = node.source.value;\r\n        if (!SYSTEM_MODULES.has(mod)) {\r\n            const isLocal = mod.startsWith(\".\") || mod.startsWith(\"/\");\r\n            const list = isLocal ? localImports : npmImports;\r\n            if (!list.includes(mod)) list.push(mod);\r\n            if (isLocal) {\r\n               const symbolEntry = { source: mod, valueNames: [] as string[], typeNames: [] as string[] };\r\n               for (const specifier of node.specifiers) {\r\n                   if (specifier.type === 'ImportSpecifier') {\r\n                       if (node.importKind === 'type' || specifier.importKind === 'type') {\r\n                           symbolEntry.typeNames.push(specifier.local.name);\r\n                       } else {\r\n                           symbolEntry.valueNames.push(specifier.local.name);\r\n                       }\r\n                   } else if (specifier.type === 'ImportDefaultSpecifier') {\r\n                       if (node.importKind === 'type') symbolEntry.typeNames.push(specifier.local.name);\r\n                       else symbolEntry.valueNames.push(specifier.local.name);\r\n                   }\r\n               }\r\n               if (symbolEntry.valueNames.length > 0 || symbolEntry.typeNames.length > 0) {\r\n                   localImportSymbols.push(symbolEntry);\r\n               }\r\n            }\r\n        }\r\n     } else if (node.type === 'ExportNamedDeclaration') {\r\n        if (node.declaration) {\r\n            processNode(node.declaration, true);\r\n        } else {\r\n            for (const specifier of node.specifiers) {\r\n                exports.push(item(specifier.exported.name, node));\r\n            }\r\n        }\r\n     } else if (node.type === 'ExportDefaultDeclaration') {\r\n         exports.push(item('default', node.declaration));\r\n     } else if (node.type === 'FunctionDeclaration' || node.type === 'TSDeclareFunction') {\r\n         const entry = item(node.id ? node.id.name : 'default', node, 'function');\r\n         if (isExported) exports.push(entry);\r\n         else functions.push(entry);\r\n     } else if (node.type === 'ClassDeclaration') {\r\n         const entry = item(node.id ? node.id.name : 'default', node, 'class');\r\n         if (isExported) exports.push(entry);\r\n         else functions.push(entry);\r\n     } else if (node.type === 'VariableDeclaration') {\r\n         for (const decl of node.declarations) {\r\n             if (decl.id.type === 'Identifier') {\r\n                const isFunc = decl.init && (decl.init.type === 'ArrowFunctionExpression' || decl.init.type === 'FunctionExpression');\r\n                const entry = item(decl.id.name, decl, isFunc ? 'function' : 'constant');\r\n\r\n                if (!entry.jsdoc) entry.jsdoc = getJsDoc(node);\r\n\r\n                if (isExported) exports.push(entry);\r\n                else if (isFunc) functions.push(entry);\r\n             }\r\n         }\r\n     } else if (node.type === 'TSTypeAliasDeclaration' || node.type === 'TSInterfaceDeclaration' || node.type === 'TSEnumDeclaration') {\r\n         const entry = item(node.id ? node.id.name : 'unknown', node, 'type');\r\n         if (isExported) exports.push(entry);\r\n         else types.push(entry);\r\n     }\r\n  }\r\n\r\n  for (const node of ast.body) {\r\n      processNode(node);\r\n  }\r\n\r\n  const hasContent = localImports.length > 0 || localImportSymbols.length > 0 || npmImports.length > 0 ||\r\n    exports.length > 0 || functions.length > 0 || types.length > 0;\r\n  if (!hasContent) return undefined;\r\n  return { localImports, localImportSymbols, npmImports, exports, functions, types };\r\n}\r\n","/**\r\n * @file TypeScript compiler-based file analyser.\r\n *\r\n * Uses `ts.createSourceFile` to parse `.ts`, `.js`, and `.mjs` files and\r\n * extract import/export metadata.  Falls back to the ESTree analyser for\r\n * `.tsx`/`.jsx` files.\r\n */\r\nimport fs from \"fs\";\r\nimport path from \"path\";\r\nimport * as ts from \"typescript\";\r\nimport type { AnalysisItem, AnalysisKind, FileAnalysis, TypeProperty } from \"./types\";\r\nimport { PARSEABLE_EXTS, SYSTEM_MODULES } from \"./constants\";\r\nimport { analyzeFileEstree } from \"./analyze-estree\";\r\n\r\n/**\r\n * Analyse a source file using the TypeScript compiler API.\r\n *\r\n * For `.tsx`/`.jsx` files the work is delegated to {@link analyzeFileEstree}.\r\n *\r\n * @param filePath - Absolute path (or virtual name when `providedContent` is given).\r\n * @param providedContent - Optional in-memory source text to analyse instead of reading from disk.\r\n * @returns Parsed import/export information, or `undefined` when the file is not parseable.\r\n */\r\nexport function analyzeFile(filePath: string, providedContent?: string): FileAnalysis | undefined {\r\n  const ext = path.extname(filePath);\r\n  if (!PARSEABLE_EXTS.has(ext)) return undefined;\r\n\r\n  if (ext === \".tsx\" || ext === \".jsx\") {\r\n    return analyzeFileEstree(filePath, providedContent);\r\n  }\r\n\r\n  let content: string;\r\n  if (providedContent !== undefined) {\r\n    content = providedContent;\r\n  } else {\r\n    try {\r\n      content = fs.readFileSync(filePath, \"utf8\");\r\n    } catch {\r\n      return undefined;\r\n    }\r\n  }\r\n\r\n  const sourceFile = ts.createSourceFile(\r\n    path.basename(filePath),\r\n    content,\r\n    ts.ScriptTarget.Latest,\r\n    true,\r\n    ext === \".tsx\" || ext === \".jsx\" ? ts.ScriptKind.TSX : undefined\r\n  );\r\n\r\n  const localImports: string[] = [];\r\n  const localImportSymbols: {\r\n    source: string;\r\n    valueNames: string[];\r\n    typeNames: string[];\r\n  }[] = [];\r\n  const npmImports: string[] = [];\r\n  const exports: AnalysisItem[] = [];\r\n  const functions: AnalysisItem[] = [];\r\n  const types: AnalysisItem[] = [];\r\n\r\n  /** Check whether a node has the `export` keyword modifier. */\r\n  function hasExportModifier(node: ts.Node): boolean {\r\n    return ts.canHaveModifiers(node)\r\n      ? (ts.getModifiers(node) ?? []).some(m => m.kind === ts.SyntaxKind.ExportKeyword)\r\n      : false;\r\n  }\r\n\r\n  /**\r\n   * Extract a JSDoc comment string from a node.\r\n   *\r\n   * Looks at the compiler's own `jsDoc` array first, then falls back to\r\n   * searching for a leading `//` comment in the source text.\r\n   */\r\n  function getJsDoc(node: ts.Node): string | undefined {\r\n    const jsDocNodes = (node as any).jsDoc as ts.JSDoc[] | undefined;\r\n    if (jsDocNodes && jsDocNodes.length > 0) {\r\n      const doc = jsDocNodes[0];\r\n      let comment: string | undefined;\r\n      if (typeof doc.comment === \"string\") {\r\n        comment = doc.comment;\r\n      } else if (Array.isArray(doc.comment)) {\r\n        comment = doc.comment.map((part: any) => part.text || \"\").join(\"\").trim() || undefined;\r\n      }\r\n      if (comment) return comment;\r\n      if (doc.tags) {\r\n        for (const tag of doc.tags) {\r\n          if (tag.tagName.text === \"description\" && typeof tag.comment === \"string\") {\r\n            return tag.comment;\r\n          }\r\n        }\r\n      }\r\n    }\r\n    const fullText = sourceFile.getFullText();\r\n    const nodeStart = node.getFullStart();\r\n    const textBefore = fullText.substring(0, nodeStart);\r\n    const lines = textBefore.split(\"\\n\");\r\n    for (let i = lines.length - 1; i >= 0; i--) {\r\n      const line = lines[i].trim();\r\n      if (line === \"\") continue;\r\n      if (line.startsWith(\"//\")) {\r\n        return line.replace(/^\\/\\/\\s*/, \"\").trim() || undefined;\r\n      }\r\n      break;\r\n    }\r\n    return undefined;\r\n  }\r\n\r\n  /** Build a condensed signature string from a declaration node. */\r\n  function getSignature(node: ts.Node): string | undefined {\r\n    if (ts.isFunctionDeclaration(node)) {\r\n      const params = node.parameters.map(p => p.getText(sourceFile)).join(\", \");\r\n      const ret = node.type ? `: ${node.type.getText(sourceFile)}` : \"\";\r\n      return `(${params})${ret}`;\r\n    }\r\n    if (ts.isVariableStatement(node)) {\r\n      for (const decl of node.declarationList.declarations) {\r\n        if (decl.initializer && (ts.isArrowFunction(decl.initializer) || ts.isFunctionExpression(decl.initializer))) {\r\n          const fn = decl.initializer;\r\n          const params = fn.parameters.map(p => p.getText(sourceFile)).join(\", \");\r\n          const ret = fn.type ? `: ${fn.type.getText(sourceFile)}` : \"\";\r\n          return `(${params})${ret}`;\r\n        }\r\n        if (decl.type) return decl.type.getText(sourceFile);\r\n      }\r\n    }\r\n    if (ts.isTypeAliasDeclaration(node)) return node.type.getText(sourceFile);\r\n    if (ts.isInterfaceDeclaration(node)) {\r\n      const members = node.members.map(m => m.getText(sourceFile).replace(/;$/, \"\")).filter(Boolean);\r\n      if (members.length === 0) return undefined;\r\n      return `{\\n  ${members.join(\";\\n  \")}\\n}`;\r\n    }\r\n    if (ts.isEnumDeclaration(node)) {\r\n      const members = node.members.map(m => m.getText(sourceFile)).filter(Boolean);\r\n      if (members.length === 0) return undefined;\r\n      return `{ ${members.join(\", \")} }`;\r\n    }\r\n    if (ts.isClassDeclaration(node)) {\r\n      const methods = node.members.filter(ts.isMethodDeclaration).map(m => m.name?.getText(sourceFile)).filter(Boolean);\r\n      if (methods.length === 0) return undefined;\r\n      return `{ ${methods.join(\", \")} }`;\r\n    }\r\n    return undefined;\r\n  }\r\n\r\n  /** Extract properties from an interface or type-literal declaration. */\r\n  function getProperties(node: ts.Node): TypeProperty[] | undefined {\r\n    let members: ts.NodeArray<ts.TypeElement> | undefined;\r\n    if (ts.isInterfaceDeclaration(node)) {\r\n      members = node.members;\r\n    } else if (ts.isTypeAliasDeclaration(node) && ts.isTypeLiteralNode(node.type)) {\r\n      members = node.type.members;\r\n    }\r\n    if (!members || members.length === 0) return undefined;\r\n    const props: TypeProperty[] = [];\r\n    for (const member of members) {\r\n      if (!ts.isPropertySignature(member) || !member.name) continue;\r\n      const propName = member.name.getText(sourceFile);\r\n      const propType = member.type ? member.type.getText(sourceFile) : \"unknown\";\r\n      const propDoc = getJsDoc(member);\r\n      const required = !member.questionToken;\r\n      const prop: TypeProperty = { name: propName, type: propType, required };\r\n      if (propDoc) prop.description = propDoc;\r\n      props.push(prop);\r\n    }\r\n    return props.length > 0 ? props : undefined;\r\n  }\r\n\r\n  /** Get the 1-based line number where a node starts. */\r\n  function getLine(node: ts.Node): number {\r\n    return sourceFile.getLineAndCharacterOfPosition(node.getStart(sourceFile)).line + 1;\r\n  }\r\n\r\n  /** Build an {@link AnalysisItem} from a TypeScript AST node. */\r\n  function item(name: string, node: ts.Node, kind?: AnalysisKind): AnalysisItem {\r\n    const jsdoc = getJsDoc(node);\r\n    const signature = getSignature(node);\r\n    const properties = getProperties(node);\r\n    const line = getLine(node);\r\n    const result: AnalysisItem = { name, line };\r\n    if (kind) result.kind = kind;\r\n    if (jsdoc) result.jsdoc = jsdoc;\r\n    if (signature) result.signature = signature;\r\n    if (properties) result.properties = properties;\r\n    return result;\r\n  }\r\n\r\n  ts.forEachChild(sourceFile, (node) => {\r\n    if (ts.isImportDeclaration(node) && node.moduleSpecifier) {\r\n      const mod = (node.moduleSpecifier as ts.StringLiteral).text;\r\n      if (SYSTEM_MODULES.has(mod)) return;\r\n      const isLocal = mod.startsWith(\".\") || mod.startsWith(\"/\");\r\n      const list = isLocal ? localImports : npmImports;\r\n      if (!list.includes(mod)) list.push(mod);\r\n      if (isLocal && node.importClause) {\r\n        const symbolEntry = { source: mod, valueNames: [] as string[], typeNames: [] as string[] };\r\n        if (node.importClause.name && !node.importClause.isTypeOnly) {\r\n          symbolEntry.valueNames.push(node.importClause.name.text);\r\n        }\r\n        const bindings = node.importClause.namedBindings;\r\n        if (bindings && ts.isNamedImports(bindings)) {\r\n          for (const el of bindings.elements) {\r\n            const importedName = el.propertyName?.text || el.name.text;\r\n            if (node.importClause.isTypeOnly || el.isTypeOnly) {\r\n              symbolEntry.typeNames.push(importedName);\r\n            } else {\r\n              symbolEntry.valueNames.push(importedName);\r\n            }\r\n          }\r\n        }\r\n        if (symbolEntry.valueNames.length > 0 || symbolEntry.typeNames.length > 0) {\r\n          localImportSymbols.push(symbolEntry);\r\n        }\r\n      }\r\n    }\r\n    if (ts.isExportDeclaration(node) && node.exportClause && ts.isNamedExports(node.exportClause)) {\r\n      for (const el of node.exportClause.elements) {\r\n        exports.push(item(el.name.text, node));\r\n      }\r\n    }\r\n    if (ts.isFunctionDeclaration(node) && node.name) {\r\n      if (hasExportModifier(node)) {\r\n        exports.push(item(node.name.text, node, \"function\"));\r\n      } else {\r\n        functions.push(item(node.name.text, node, \"function\"));\r\n      }\r\n    }\r\n    if (ts.isVariableStatement(node)) {\r\n      const isExported = hasExportModifier(node);\r\n      const stmtDoc = getJsDoc(node);\r\n      const stmtSig = getSignature(node);\r\n      for (const decl of node.declarationList.declarations) {\r\n        if (decl.name && ts.isIdentifier(decl.name)) {\r\n          const declDoc = getJsDoc(decl) || stmtDoc;\r\n          const isFunc = decl.initializer && (ts.isArrowFunction(decl.initializer) || ts.isFunctionExpression(decl.initializer));\r\n          const kind: AnalysisKind = isFunc ? \"function\" : \"constant\";\r\n          const entry: AnalysisItem = { name: decl.name.text, kind, line: getLine(node) };\r\n          if (declDoc) entry.jsdoc = declDoc;\r\n          if (stmtSig) entry.signature = stmtSig;\r\n          const props = getProperties(decl);\r\n          if (props) entry.properties = props;\r\n          if (isExported) {\r\n            exports.push(entry);\r\n          } else if (isFunc) {\r\n            functions.push(entry);\r\n          }\r\n        }\r\n      }\r\n    }\r\n    if (ts.isClassDeclaration(node) && node.name) {\r\n      if (hasExportModifier(node)) {\r\n        exports.push(item(node.name.text, node, \"class\"));\r\n      } else {\r\n        functions.push(item(node.name.text, node, \"class\"));\r\n      }\r\n    }\r\n    if (ts.isTypeAliasDeclaration(node)) types.push(item(node.name.text, node, \"type\"));\r\n    if (ts.isInterfaceDeclaration(node)) types.push(item(node.name.text, node, \"type\"));\r\n    if (ts.isEnumDeclaration(node)) types.push(item(node.name.text, node, \"type\"));\r\n    if (ts.isExportAssignment(node)) exports.push(item(\"default\", node));\r\n  });\r\n\r\n  const hasContent = localImports.length > 0 || localImportSymbols.length > 0 || npmImports.length > 0 ||\r\n    exports.length > 0 || functions.length > 0 || types.length > 0;\r\n  if (!hasContent) return undefined;\r\n  return { localImports, localImportSymbols, npmImports, exports, functions, types };\r\n}\r\n","/**\r\n * @file Directory scanning and file-tree construction utilities.\r\n */\r\nimport fs from \"fs\";\r\nimport path from \"path\";\r\nimport type { AnalysisItem, FileTreeNode } from \"./types\";\r\nimport { ASSET_EXTS, IGNORE, PARSEABLE_EXTS } from \"./constants\";\r\nimport { analyzeFile } from \"./analyze-ts\";\r\n\r\n/**\r\n * Check whether a relative path matches any entry in the ignore set.\r\n *\r\n * Matches against the full relative path as well as each individual segment.\r\n */\r\nfunction matchesIgnore(relPath: string, patterns: Set<string>): boolean {\r\n  if (patterns.has(relPath)) return true;\r\n  for (const seg of relPath.split(\"/\")) {\r\n    if (patterns.has(seg)) return true;\r\n  }\r\n  return false;\r\n}\r\n\r\n/**\r\n * Recursively scan a directory and build an array of {@link FileTreeNode}s.\r\n *\r\n * @param dirPath - Absolute path of the directory to scan.\r\n * @param basePath - Root path used to compute relative paths.\r\n * @param extraIgnore - Additional patterns to skip.\r\n */\r\nexport function scanDir(dirPath: string, basePath: string, extraIgnore: Set<string>): FileTreeNode[] {\r\n  const entries = fs.readdirSync(dirPath, { withFileTypes: true });\r\n  const nodes: FileTreeNode[] = [];\r\n  for (const entry of entries) {\r\n    if (IGNORE.has(entry.name) || entry.name.startsWith(\".\")) continue;\r\n    const fullPath = path.join(dirPath, entry.name);\r\n    const relPath = path.relative(basePath, fullPath).replace(/\\\\/g, \"/\");\r\n    if (matchesIgnore(relPath, extraIgnore)) continue;\r\n    if (!entry.isDirectory() && ASSET_EXTS.has(path.extname(entry.name).toLowerCase())) continue;\r\n    if (entry.isDirectory()) {\r\n      const children = scanDir(fullPath, basePath, extraIgnore);\r\n      const pkgPath = path.join(fullPath, \"package.json\");\r\n      let packageDependencies: string[] | undefined;\r\n      let packageExports: AnalysisItem[] | undefined;\r\n\r\n      if (fs.existsSync(pkgPath)) {\r\n        try {\r\n          const pkgJson = JSON.parse(fs.readFileSync(pkgPath, \"utf8\"));\r\n          const combinedDeps: string[] = [];\r\n          if (pkgJson.dependencies) combinedDeps.push(...Object.keys(pkgJson.dependencies));\r\n          if (pkgJson.peerDependencies) combinedDeps.push(...Object.keys(pkgJson.peerDependencies));\r\n          if (combinedDeps.length > 0) packageDependencies = [...new Set(combinedDeps)];\r\n\r\n          const mainFile = pkgJson.exports?.['.']?.import || pkgJson.exports?.['.']?.require || pkgJson.exports?.['.']?.default || pkgJson.main || pkgJson.module || \"index.ts\";\r\n          const resolvedMainPaths = [\r\n            path.resolve(fullPath, mainFile),\r\n            path.resolve(fullPath, \"src\", mainFile),\r\n            path.resolve(fullPath, \"src/index.ts\"),\r\n            path.resolve(fullPath, \"index.ts\"),\r\n          ];\r\n\r\n          for (const mainPath of resolvedMainPaths) {\r\n            if (fs.existsSync(mainPath)) {\r\n              const analysis = analyzeFile(mainPath);\r\n              if (analysis && analysis.exports.length > 0) {\r\n                packageExports = analysis.exports.filter(e => e.kind === \"function\" || e.kind === \"class\");\r\n                if (packageExports.length === 0) {\r\n                  packageExports = analysis.exports;\r\n                }\r\n                break;\r\n              }\r\n            }\r\n          }\r\n        } catch {}\r\n      }\r\n\r\n      if (children.length > 0) nodes.push({\r\n        name: entry.name,\r\n        type: \"folder\",\r\n        path: relPath,\r\n        children,\r\n        ...(packageDependencies ? { packageDependencies } : {}),\r\n        ...(packageExports ? { packageExports } : {})\r\n      });\r\n    } else {\r\n      const analysis = analyzeFile(fullPath);\r\n      nodes.push({ name: entry.name, type: \"file\", path: relPath, analysis });\r\n    }\r\n  }\r\n  nodes.sort((a, b) => {\r\n    if (a.type !== b.type) return a.type === \"folder\" ? -1 : 1;\r\n    return a.name.localeCompare(b.name);\r\n  });\r\n  return nodes;\r\n}\r\n\r\n/**\r\n * Try to extract a file-level description from the leading comment block of a source file.\r\n *\r\n * Looks for `@description` / `@file` JSDoc tags first, then falls back to\r\n * plain `//` line comments at the top of the file.\r\n *\r\n * @param filePath - Absolute path to the source file.\r\n */\r\nexport function inferFileDescription(filePath: string): string | undefined {\r\n  const ext = path.extname(filePath);\r\n  if (!PARSEABLE_EXTS.has(ext)) return undefined;\r\n  let content: string;\r\n  try {\r\n    content = fs.readFileSync(filePath, \"utf8\");\r\n  } catch {\r\n    return undefined;\r\n  }\r\n  const jsdocMatch = content.match(/^\\s*\\/\\*\\*\\s*\\n?([\\s\\S]*?)\\*\\//);\r\n  if (jsdocMatch) {\r\n    const body = jsdocMatch[1];\r\n    const tagMatch = body.match(/@(?:description|file)\\s+([\\s\\S]+?)(?=\\n\\s*\\*?\\s*@|$)/);\r\n    if (tagMatch) {\r\n      return tagMatch[1].split(\"\\n\").map(l => l.replace(/^\\s*\\*\\s?/, \"\").trim()).join(\"\\n\").trim();\r\n    }\r\n    const lines: string[] = [];\r\n    let foundContent = false;\r\n    for (const line of body.split(\"\\n\")) {\r\n      const cleaned = line.replace(/^\\s*\\*\\s?/, \"\").trim();\r\n      if (cleaned.startsWith(\"@\")) break;\r\n      if (cleaned) {\r\n        foundContent = true;\r\n        lines.push(cleaned);\r\n      } else if (foundContent) {\r\n        lines.push(\"\");\r\n      }\r\n    }\r\n    if (lines.length > 0) return lines.join(\"\\n\").trim();\r\n  }\r\n  const descLines: string[] = [];\r\n  const lines = content.split(\"\\n\").slice(0, 10);\r\n  for (const line of lines) {\r\n    const trimmed = line.trim();\r\n    if (trimmed === \"\" || trimmed.startsWith(\"'use\") || trimmed.startsWith('\"use')) continue;\r\n    if (trimmed.startsWith(\"//\")) {\r\n      const comment = trimmed.replace(/^\\/\\/\\s*/, \"\").trim();\r\n      if (comment) descLines.push(comment);\r\n      continue;\r\n    }\r\n    break;\r\n  }\r\n  if (descLines.length > 0) return descLines.join(\"\\n\").trim();\r\n  return undefined;\r\n}\r\n\r\n/**\r\n * Walk the tree and attach human-readable descriptions from a lookup map\r\n * (or infer them from source comments when `inferDesc` is `true`).\r\n *\r\n * @param nodes - File-tree nodes to annotate.\r\n * @param descriptions - Manual `relPath -> description` mapping.\r\n * @param basePath - Root directory used to resolve absolute paths.\r\n * @param inferDesc - When `true`, attempt to extract descriptions from source comments.\r\n */\r\nexport function applyDescriptions(\r\n  nodes: FileTreeNode[],\r\n  descriptions: Record<string, string>,\r\n  basePath: string,\r\n  inferDesc: boolean\r\n): FileTreeNode[] {\r\n  return nodes.map((node) => {\r\n    const updated = { ...node };\r\n    const desc = descriptions[node.path];\r\n    if (desc) {\r\n      updated.description = desc;\r\n    } else if (inferDesc && node.type === \"file\") {\r\n      const fullPath = path.join(basePath, node.path);\r\n      const inferred = inferFileDescription(fullPath);\r\n      if (inferred) updated.description = inferred;\r\n    }\r\n    if (node.children) {\r\n      updated.children = applyDescriptions(node.children, descriptions, basePath, inferDesc);\r\n    }\r\n    return updated;\r\n  });\r\n}\r\n","/**\r\n * @file Public API for the file-tree generator.\r\n *\r\n * Re-exports all types and key functions so that consumers can import from\r\n * a single module path.\r\n */\r\nimport fs from \"fs\";\r\nimport { PARSEABLE_EXTS } from \"./constants\";\r\nimport { analyzeFile } from \"./analyze-ts\";\r\nimport { scanDir, applyDescriptions } from \"./scan\";\r\nimport type { FileAnalysis, FileTreeNode } from \"./types\";\r\n\r\nexport type { TypeProperty, AnalysisKind, AnalysisItem, FileAnalysis, FileTreeNode } from \"./types\";\r\nexport { PARSEABLE_EXTS } from \"./constants\";\r\n\r\n/**\r\n * Parse an ignore file (e.g. `.gitignore`-style) into a set of patterns.\r\n *\r\n * @param filePath - Absolute path to the ignore file.\r\n * @returns A set of trimmed, non-comment patterns.\r\n */\r\nexport function parseIgnoreFile(filePath: string): Set<string> {\r\n  try {\r\n    const content = fs.readFileSync(filePath, \"utf8\");\r\n    const patterns = new Set<string>();\r\n    for (const line of content.split(\"\\n\")) {\r\n      const trimmed = line.trim();\r\n      if (trimmed && !trimmed.startsWith(\"#\")) {\r\n        patterns.add(trimmed.replace(/\\/+$/, \"\"));\r\n      }\r\n    }\r\n    return patterns;\r\n  } catch {\r\n    return new Set();\r\n  }\r\n}\r\n\r\n/**\r\n * Analyse a file's content without reading from the filesystem.\r\n *\r\n * Useful for in-memory analysis of extracted archive files.\r\n *\r\n * @param fileName - Virtual file name (used to pick the right parser by extension).\r\n * @param content - Source text to analyse.\r\n */\r\nexport function analyzeFileContent(fileName: string, content: string): FileAnalysis | undefined {\r\n  return analyzeFile(fileName, content);\r\n}\r\n\r\n/**\r\n * Scan a directory and produce a tree of {@link FileTreeNode}s with optional\r\n * descriptions and static analysis metadata.\r\n *\r\n * @param packagesDir - Root directory to scan.\r\n * @param descriptions - Optional `relPath -> description` map applied to matching nodes.\r\n * @param ignorePatterns - Extra file/folder names to skip.\r\n * @param inferDescriptions - When `true`, attempt to infer descriptions from leading source comments.\r\n */\r\nexport function generateFileTree(\r\n  packagesDir: string,\r\n  descriptions: Record<string, string> = {},\r\n  ignorePatterns: Set<string> = new Set(),\r\n  inferDescriptions: boolean = false\r\n): FileTreeNode[] {\r\n  const tree = scanDir(packagesDir, packagesDir, ignorePatterns);\r\n  return applyDescriptions(tree, descriptions, packagesDir, inferDescriptions);\r\n}\r\n","/**\n * @license lucide-react v0.555.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nconst toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\nconst toCamelCase = (string) => string.replace(\n  /^([A-Z])|[\\s-_]+(\\w)/g,\n  (match, p1, p2) => p2 ? p2.toUpperCase() : p1.toLowerCase()\n);\nconst toPascalCase = (string) => {\n  const camelCase = toCamelCase(string);\n  return camelCase.charAt(0).toUpperCase() + camelCase.slice(1);\n};\nconst mergeClasses = (...classes) => classes.filter((className, index, array) => {\n  return Boolean(className) && className.trim() !== \"\" && array.indexOf(className) === index;\n}).join(\" \").trim();\nconst hasA11yProp = (props) => {\n  for (const prop in props) {\n    if (prop.startsWith(\"aria-\") || prop === \"role\" || prop === \"title\") {\n      return true;\n    }\n  }\n};\n\nexport { hasA11yProp, mergeClasses, toCamelCase, toKebabCase, toPascalCase };\n//# sourceMappingURL=utils.js.map\n","/**\n * @license lucide-react v0.555.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nvar defaultAttributes = {\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: 24,\n  height: 24,\n  viewBox: \"0 0 24 24\",\n  fill: \"none\",\n  stroke: \"currentColor\",\n  strokeWidth: 2,\n  strokeLinecap: \"round\",\n  strokeLinejoin: \"round\"\n};\n\nexport { defaultAttributes as default };\n//# sourceMappingURL=defaultAttributes.js.map\n","/**\n * @license lucide-react v0.555.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport defaultAttributes from './defaultAttributes.js';\nimport { mergeClasses, hasA11yProp } from './shared/src/utils.js';\n\nconst Icon = forwardRef(\n  ({\n    color = \"currentColor\",\n    size = 24,\n    strokeWidth = 2,\n    absoluteStrokeWidth,\n    className = \"\",\n    children,\n    iconNode,\n    ...rest\n  }, ref) => createElement(\n    \"svg\",\n    {\n      ref,\n      ...defaultAttributes,\n      width: size,\n      height: size,\n      stroke: color,\n      strokeWidth: absoluteStrokeWidth ? Number(strokeWidth) * 24 / Number(size) : strokeWidth,\n      className: mergeClasses(\"lucide\", className),\n      ...!children && !hasA11yProp(rest) && { \"aria-hidden\": \"true\" },\n      ...rest\n    },\n    [\n      ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n      ...Array.isArray(children) ? children : [children]\n    ]\n  )\n);\n\nexport { Icon as default };\n//# sourceMappingURL=Icon.js.map\n","/**\n * @license lucide-react v0.555.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { forwardRef, createElement } from 'react';\nimport { mergeClasses, toKebabCase, toPascalCase } from './shared/src/utils.js';\nimport Icon from './Icon.js';\n\nconst createLucideIcon = (iconName, iconNode) => {\n  const Component = forwardRef(\n    ({ className, ...props }, ref) => createElement(Icon, {\n      ref,\n      iconNode,\n      className: mergeClasses(\n        `lucide-${toKebabCase(toPascalCase(iconName))}`,\n        `lucide-${iconName}`,\n        className\n      ),\n      ...props\n    })\n  );\n  Component.displayName = toPascalCase(iconName);\n  return Component;\n};\n\nexport { createLucideIcon as default };\n//# sourceMappingURL=createLucideIcon.js.map\n","/**\n * @license lucide-react v0.555.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n  [\"path\", { d: \"M12 5v14\", key: \"s699le\" }],\n  [\"path\", { d: \"m19 12-7 7-7-7\", key: \"1idqje\" }]\n];\nconst ArrowDown = createLucideIcon(\"arrow-down\", __iconNode);\n\nexport { __iconNode, ArrowDown as default };\n//# sourceMappingURL=arrow-down.js.map\n","/**\n * @license lucide-react v0.555.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n  [\"path\", { d: \"m21 16-4 4-4-4\", key: \"f6ql7i\" }],\n  [\"path\", { d: \"M17 20V4\", key: \"1ejh1v\" }],\n  [\"path\", { d: \"m3 8 4-4 4 4\", key: \"11wl7u\" }],\n  [\"path\", { d: \"M7 4v16\", key: \"1glfcx\" }]\n];\nconst ArrowUpDown = createLucideIcon(\"arrow-up-down\", __iconNode);\n\nexport { __iconNode, ArrowUpDown as default };\n//# sourceMappingURL=arrow-up-down.js.map\n","/**\n * @license lucide-react v0.555.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n  [\"path\", { d: \"m5 12 7-7 7 7\", key: \"hav0vg\" }],\n  [\"path\", { d: \"M12 19V5\", key: \"x0mq9r\" }]\n];\nconst ArrowUp = createLucideIcon(\"arrow-up\", __iconNode);\n\nexport { __iconNode, ArrowUp as default };\n//# sourceMappingURL=arrow-up.js.map\n","/**\n * @license lucide-react v0.555.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n  [\n    \"path\",\n    {\n      d: \"M10 22V7a1 1 0 0 0-1-1H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-5a1 1 0 0 0-1-1H2\",\n      key: \"1ah6g2\"\n    }\n  ],\n  [\"rect\", { x: \"14\", y: \"2\", width: \"8\", height: \"8\", rx: \"1\", key: \"88lufb\" }]\n];\nconst Blocks = createLucideIcon(\"blocks\", __iconNode);\n\nexport { __iconNode, Blocks as default };\n//# sourceMappingURL=blocks.js.map\n","/**\n * @license lucide-react v0.555.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n  [\n    \"path\",\n    {\n      d: \"M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z\",\n      key: \"hh9hay\"\n    }\n  ],\n  [\"path\", { d: \"m3.3 7 8.7 5 8.7-5\", key: \"g66t2b\" }],\n  [\"path\", { d: \"M12 22V12\", key: \"d0xqtd\" }]\n];\nconst Box = createLucideIcon(\"box\", __iconNode);\n\nexport { __iconNode, Box as default };\n//# sourceMappingURL=box.js.map\n","/**\n * @license lucide-react v0.555.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n  [\n    \"path\",\n    {\n      d: \"M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z\",\n      key: \"lc1i9w\"\n    }\n  ],\n  [\"path\", { d: \"m7 16.5-4.74-2.85\", key: \"1o9zyk\" }],\n  [\"path\", { d: \"m7 16.5 5-3\", key: \"va8pkn\" }],\n  [\"path\", { d: \"M7 16.5v5.17\", key: \"jnp8gn\" }],\n  [\n    \"path\",\n    {\n      d: \"M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z\",\n      key: \"8zsnat\"\n    }\n  ],\n  [\"path\", { d: \"m17 16.5-5-3\", key: \"8arw3v\" }],\n  [\"path\", { d: \"m17 16.5 4.74-2.85\", key: \"8rfmw\" }],\n  [\"path\", { d: \"M17 16.5v5.17\", key: \"k6z78m\" }],\n  [\n    \"path\",\n    {\n      d: \"M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z\",\n      key: \"1xygjf\"\n    }\n  ],\n  [\"path\", { d: \"M12 8 7.26 5.15\", key: \"1vbdud\" }],\n  [\"path\", { d: \"m12 8 4.74-2.85\", key: \"3rx089\" }],\n  [\"path\", { d: \"M12 13.5V8\", key: \"1io7kd\" }]\n];\nconst Boxes = createLucideIcon(\"boxes\", __iconNode);\n\nexport { __iconNode, Boxes as default };\n//# sourceMappingURL=boxes.js.map\n","/**\n * @license lucide-react v0.555.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n  [\n    \"path\",\n    { d: \"M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1\", key: \"ezmyqa\" }\n  ],\n  [\n    \"path\",\n    {\n      d: \"M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1\",\n      key: \"e1hn23\"\n    }\n  ]\n];\nconst Braces = createLucideIcon(\"braces\", __iconNode);\n\nexport { __iconNode, Braces as default };\n//# sourceMappingURL=braces.js.map\n","/**\n * @license lucide-react v0.555.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [[\"path\", { d: \"m6 9 6 6 6-6\", key: \"qrunsl\" }]];\nconst ChevronDown = createLucideIcon(\"chevron-down\", __iconNode);\n\nexport { __iconNode, ChevronDown as default };\n//# sourceMappingURL=chevron-down.js.map\n","/**\n * @license lucide-react v0.555.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [[\"path\", { d: \"m9 18 6-6-6-6\", key: \"mthhwq\" }]];\nconst ChevronRight = createLucideIcon(\"chevron-right\", __iconNode);\n\nexport { __iconNode, ChevronRight as default };\n//# sourceMappingURL=chevron-right.js.map\n","/**\n * @license lucide-react v0.555.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n  [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n  [\"path\", { d: \"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\", key: \"1u773s\" }],\n  [\"path\", { d: \"M12 17h.01\", key: \"p32p05\" }]\n];\nconst CircleQuestionMark = createLucideIcon(\"circle-question-mark\", __iconNode);\n\nexport { __iconNode, CircleQuestionMark as default };\n//# sourceMappingURL=circle-question-mark.js.map\n","/**\n * @license lucide-react v0.555.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n  [\"path\", { d: \"M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z\", key: \"p7xjir\" }]\n];\nconst Cloud = createLucideIcon(\"cloud\", __iconNode);\n\nexport { __iconNode, Cloud as default };\n//# sourceMappingURL=cloud.js.map\n","/**\n * @license lucide-react v0.555.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n  [\"path\", { d: \"M12 15V3\", key: \"m9g1x1\" }],\n  [\"path\", { d: \"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\", key: \"ih7n3h\" }],\n  [\"path\", { d: \"m7 10 5 5 5-5\", key: \"brsn70\" }]\n];\nconst Download = createLucideIcon(\"download\", __iconNode);\n\nexport { __iconNode, Download as default };\n//# sourceMappingURL=download.js.map\n","/**\n * @license lucide-react v0.555.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n  [\"path\", { d: \"M15 3h6v6\", key: \"1q9fwt\" }],\n  [\"path\", { d: \"M10 14 21 3\", key: \"gplh6r\" }],\n  [\"path\", { d: \"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\", key: \"a6xqqp\" }]\n];\nconst ExternalLink = createLucideIcon(\"external-link\", __iconNode);\n\nexport { __iconNode, ExternalLink as default };\n//# sourceMappingURL=external-link.js.map\n","/**\n * @license lucide-react v0.555.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n  [\n    \"path\",\n    {\n      d: \"M4 11V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.706.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-1\",\n      key: \"1q9hii\"\n    }\n  ],\n  [\"path\", { d: \"M14 2v5a1 1 0 0 0 1 1h5\", key: \"wfsgrz\" }],\n  [\"path\", { d: \"M2 15h10\", key: \"jfw4w8\" }],\n  [\"path\", { d: \"m9 18 3-3-3-3\", key: \"112psh\" }]\n];\nconst FileInput = createLucideIcon(\"file-input\", __iconNode);\n\nexport { __iconNode, FileInput as default };\n//# sourceMappingURL=file-input.js.map\n","/**\n * @license lucide-react v0.555.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n  [\n    \"path\",\n    {\n      d: \"M4.226 20.925A2 2 0 0 0 6 22h12a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v3.127\",\n      key: \"wfxp4w\"\n    }\n  ],\n  [\"path\", { d: \"M14 2v5a1 1 0 0 0 1 1h5\", key: \"wfsgrz\" }],\n  [\"path\", { d: \"m5 11-3 3\", key: \"1dgrs4\" }],\n  [\"path\", { d: \"m5 17-3-3h10\", key: \"1mvvaf\" }]\n];\nconst FileOutput = createLucideIcon(\"file-output\", __iconNode);\n\nexport { __iconNode, FileOutput as default };\n//# sourceMappingURL=file-output.js.map\n","/**\n * @license lucide-react v0.555.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n  [\n    \"path\",\n    {\n      d: \"M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z\",\n      key: \"sc7q7i\"\n    }\n  ]\n];\nconst Funnel = createLucideIcon(\"funnel\", __iconNode);\n\nexport { __iconNode, Funnel as default };\n//# sourceMappingURL=funnel.js.map\n","/**\n * @license lucide-react v0.555.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n  [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n  [\"path\", { d: \"M12 16v-4\", key: \"1dtifu\" }],\n  [\"path\", { d: \"M12 8h.01\", key: \"e9boi3\" }]\n];\nconst Info = createLucideIcon(\"info\", __iconNode);\n\nexport { __iconNode, Info as default };\n//# sourceMappingURL=info.js.map\n","/**\n * @license lucide-react v0.555.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [[\"path\", { d: \"M21 12a9 9 0 1 1-6.219-8.56\", key: \"13zald\" }]];\nconst LoaderCircle = createLucideIcon(\"loader-circle\", __iconNode);\n\nexport { __iconNode, LoaderCircle as default };\n//# sourceMappingURL=loader-circle.js.map\n","/**\n * @license lucide-react v0.555.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n  [\n    \"path\",\n    {\n      d: \"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z\",\n      key: \"1a0edw\"\n    }\n  ],\n  [\"path\", { d: \"M12 22V12\", key: \"d0xqtd\" }],\n  [\"polyline\", { points: \"3.29 7 12 12 20.71 7\", key: \"ousv84\" }],\n  [\"path\", { d: \"m7.5 4.27 9 5.15\", key: \"1c824w\" }]\n];\nconst Package = createLucideIcon(\"package\", __iconNode);\n\nexport { __iconNode, Package as default };\n//# sourceMappingURL=package.js.map\n","/**\n * @license lucide-react v0.555.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n  [\"path\", { d: \"m21 21-4.34-4.34\", key: \"14j7rj\" }],\n  [\"circle\", { cx: \"11\", cy: \"11\", r: \"8\", key: \"4ej97u\" }]\n];\nconst Search = createLucideIcon(\"search\", __iconNode);\n\nexport { __iconNode, Search as default };\n//# sourceMappingURL=search.js.map\n","/**\n * @license lucide-react v0.555.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n  [\n    \"path\",\n    {\n      d: \"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915\",\n      key: \"1i5ecw\"\n    }\n  ],\n  [\"circle\", { cx: \"12\", cy: \"12\", r: \"3\", key: \"1v7zrd\" }]\n];\nconst Settings = createLucideIcon(\"settings\", __iconNode);\n\nexport { __iconNode, Settings as default };\n//# sourceMappingURL=settings.js.map\n","/**\n * @license lucide-react v0.555.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n  [\"circle\", { cx: \"18\", cy: \"5\", r: \"3\", key: \"gq8acd\" }],\n  [\"circle\", { cx: \"6\", cy: \"12\", r: \"3\", key: \"w7nqdw\" }],\n  [\"circle\", { cx: \"18\", cy: \"19\", r: \"3\", key: \"1xt0gg\" }],\n  [\"line\", { x1: \"8.59\", x2: \"15.42\", y1: \"13.51\", y2: \"17.49\", key: \"47mynk\" }],\n  [\"line\", { x1: \"15.41\", x2: \"8.59\", y1: \"6.51\", y2: \"10.49\", key: \"1n3mei\" }]\n];\nconst Share2 = createLucideIcon(\"share-2\", __iconNode);\n\nexport { __iconNode, Share2 as default };\n//# sourceMappingURL=share-2.js.map\n","/**\n * @license lucide-react v0.555.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n  [\"rect\", { width: \"18\", height: \"18\", x: \"3\", y: \"3\", rx: \"2\", ry: \"2\", key: \"1m3agn\" }],\n  [\"path\", { d: \"M9 17c2 0 2.8-1 2.8-2.8V10c0-2 1-3.3 3.2-3\", key: \"m1af9g\" }],\n  [\"path\", { d: \"M9 11.2h5.7\", key: \"3zgcl2\" }]\n];\nconst SquareFunction = createLucideIcon(\"square-function\", __iconNode);\n\nexport { __iconNode, SquareFunction as default };\n//# sourceMappingURL=square-function.js.map\n","/**\n * @license lucide-react v0.555.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n  [\"path\", { d: \"M18 6 6 18\", key: \"1bl5f8\" }],\n  [\"path\", { d: \"m6 6 12 12\", key: \"d8bk6v\" }]\n];\nconst X = createLucideIcon(\"x\", __iconNode);\n\nexport { __iconNode, X as default };\n//# sourceMappingURL=x.js.map\n","// src/primitive.tsx\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\nfunction composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {\n  return function handleEvent(event) {\n    originalEventHandler?.(event);\n    if (checkForDefaultPrevented === false || !event.defaultPrevented) {\n      return ourEventHandler?.(event);\n    }\n  };\n}\nfunction getOwnerWindow(element) {\n  if (!canUseDOM) {\n    throw new Error(\"Cannot access window outside of the DOM\");\n  }\n  return element?.ownerDocument?.defaultView ?? window;\n}\nfunction getOwnerDocument(element) {\n  if (!canUseDOM) {\n    throw new Error(\"Cannot access document outside of the DOM\");\n  }\n  return element?.ownerDocument ?? document;\n}\nfunction getActiveElement(node, activeDescendant = false) {\n  const { activeElement } = getOwnerDocument(node);\n  if (!activeElement?.nodeName) {\n    return null;\n  }\n  if (isFrame(activeElement) && activeElement.contentDocument) {\n    return getActiveElement(activeElement.contentDocument.body, activeDescendant);\n  }\n  if (activeDescendant) {\n    const id = activeElement.getAttribute(\"aria-activedescendant\");\n    if (id) {\n      const element = getOwnerDocument(activeElement).getElementById(id);\n      if (element) {\n        return element;\n      }\n    }\n  }\n  return activeElement;\n}\nfunction isFrame(element) {\n  return element.tagName === \"IFRAME\";\n}\nexport {\n  canUseDOM,\n  composeEventHandlers,\n  getActiveElement,\n  getOwnerDocument,\n  getOwnerWindow,\n  isFrame\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/compose-refs/src/compose-refs.tsx\nimport * as React from \"react\";\nfunction setRef(ref, value) {\n  if (typeof ref === \"function\") {\n    return ref(value);\n  } else if (ref !== null && ref !== void 0) {\n    ref.current = value;\n  }\n}\nfunction composeRefs(...refs) {\n  return (node) => {\n    let hasCleanup = false;\n    const cleanups = refs.map((ref) => {\n      const cleanup = setRef(ref, node);\n      if (!hasCleanup && typeof cleanup == \"function\") {\n        hasCleanup = true;\n      }\n      return cleanup;\n    });\n    if (hasCleanup) {\n      return () => {\n        for (let i = 0; i < cleanups.length; i++) {\n          const cleanup = cleanups[i];\n          if (typeof cleanup == \"function\") {\n            cleanup();\n          } else {\n            setRef(refs[i], null);\n          }\n        }\n      };\n    }\n  };\n}\nfunction useComposedRefs(...refs) {\n  return React.useCallback(composeRefs(...refs), refs);\n}\nexport {\n  composeRefs,\n  useComposedRefs\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/context/src/create-context.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createContext2(rootComponentName, defaultContext) {\n  const Context = React.createContext(defaultContext);\n  const Provider = (props) => {\n    const { children, ...context } = props;\n    const value = React.useMemo(() => context, Object.values(context));\n    return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n  };\n  Provider.displayName = rootComponentName + \"Provider\";\n  function useContext2(consumerName) {\n    const context = React.useContext(Context);\n    if (context) return context;\n    if (defaultContext !== void 0) return defaultContext;\n    throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n  }\n  return [Provider, useContext2];\n}\nfunction createContextScope(scopeName, createContextScopeDeps = []) {\n  let defaultContexts = [];\n  function createContext3(rootComponentName, defaultContext) {\n    const BaseContext = React.createContext(defaultContext);\n    const index = defaultContexts.length;\n    defaultContexts = [...defaultContexts, defaultContext];\n    const Provider = (props) => {\n      const { scope, children, ...context } = props;\n      const Context = scope?.[scopeName]?.[index] || BaseContext;\n      const value = React.useMemo(() => context, Object.values(context));\n      return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n    };\n    Provider.displayName = rootComponentName + \"Provider\";\n    function useContext2(consumerName, scope) {\n      const Context = scope?.[scopeName]?.[index] || BaseContext;\n      const context = React.useContext(Context);\n      if (context) return context;\n      if (defaultContext !== void 0) return defaultContext;\n      throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n    }\n    return [Provider, useContext2];\n  }\n  const createScope = () => {\n    const scopeContexts = defaultContexts.map((defaultContext) => {\n      return React.createContext(defaultContext);\n    });\n    return function useScope(scope) {\n      const contexts = scope?.[scopeName] || scopeContexts;\n      return React.useMemo(\n        () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),\n        [scope, contexts]\n      );\n    };\n  };\n  createScope.scopeName = scopeName;\n  return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)];\n}\nfunction composeContextScopes(...scopes) {\n  const baseScope = scopes[0];\n  if (scopes.length === 1) return baseScope;\n  const createScope = () => {\n    const scopeHooks = scopes.map((createScope2) => ({\n      useScope: createScope2(),\n      scopeName: createScope2.scopeName\n    }));\n    return function useComposedScopes(overrideScopes) {\n      const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => {\n        const scopeProps = useScope(overrideScopes);\n        const currentScope = scopeProps[`__scope${scopeName}`];\n        return { ...nextScopes2, ...currentScope };\n      }, {});\n      return React.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);\n    };\n  };\n  createScope.scopeName = baseScope.scopeName;\n  return createScope;\n}\nexport {\n  createContext2 as createContext,\n  createContextScope\n};\n//# sourceMappingURL=index.mjs.map\n","// src/slot.tsx\nimport * as React from \"react\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { Fragment as Fragment2, jsx } from \"react/jsx-runtime\";\n// @__NO_SIDE_EFFECTS__\nfunction createSlot(ownerName) {\n  const SlotClone = /* @__PURE__ */ createSlotClone(ownerName);\n  const Slot2 = React.forwardRef((props, forwardedRef) => {\n    const { children, ...slotProps } = props;\n    const childrenArray = React.Children.toArray(children);\n    const slottable = childrenArray.find(isSlottable);\n    if (slottable) {\n      const newElement = slottable.props.children;\n      const newChildren = childrenArray.map((child) => {\n        if (child === slottable) {\n          if (React.Children.count(newElement) > 1) return React.Children.only(null);\n          return React.isValidElement(newElement) ? newElement.props.children : null;\n        } else {\n          return child;\n        }\n      });\n      return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });\n    }\n    return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });\n  });\n  Slot2.displayName = `${ownerName}.Slot`;\n  return Slot2;\n}\nvar Slot = /* @__PURE__ */ createSlot(\"Slot\");\n// @__NO_SIDE_EFFECTS__\nfunction createSlotClone(ownerName) {\n  const SlotClone = React.forwardRef((props, forwardedRef) => {\n    const { children, ...slotProps } = props;\n    if (React.isValidElement(children)) {\n      const childrenRef = getElementRef(children);\n      const props2 = mergeProps(slotProps, children.props);\n      if (children.type !== React.Fragment) {\n        props2.ref = forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef;\n      }\n      return React.cloneElement(children, props2);\n    }\n    return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n  });\n  SlotClone.displayName = `${ownerName}.SlotClone`;\n  return SlotClone;\n}\nvar SLOTTABLE_IDENTIFIER = Symbol(\"radix.slottable\");\n// @__NO_SIDE_EFFECTS__\nfunction createSlottable(ownerName) {\n  const Slottable2 = ({ children }) => {\n    return /* @__PURE__ */ jsx(Fragment2, { children });\n  };\n  Slottable2.displayName = `${ownerName}.Slottable`;\n  Slottable2.__radixId = SLOTTABLE_IDENTIFIER;\n  return Slottable2;\n}\nvar Slottable = /* @__PURE__ */ createSlottable(\"Slottable\");\nfunction isSlottable(child) {\n  return React.isValidElement(child) && typeof child.type === \"function\" && \"__radixId\" in child.type && child.type.__radixId === SLOTTABLE_IDENTIFIER;\n}\nfunction mergeProps(slotProps, childProps) {\n  const overrideProps = { ...childProps };\n  for (const propName in childProps) {\n    const slotPropValue = slotProps[propName];\n    const childPropValue = childProps[propName];\n    const isHandler = /^on[A-Z]/.test(propName);\n    if (isHandler) {\n      if (slotPropValue && childPropValue) {\n        overrideProps[propName] = (...args) => {\n          const result = childPropValue(...args);\n          slotPropValue(...args);\n          return result;\n        };\n      } else if (slotPropValue) {\n        overrideProps[propName] = slotPropValue;\n      }\n    } else if (propName === \"style\") {\n      overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n    } else if (propName === \"className\") {\n      overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n    }\n  }\n  return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n  let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n  let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n  if (mayWarn) {\n    return element.ref;\n  }\n  getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n  mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n  if (mayWarn) {\n    return element.props.ref;\n  }\n  return element.props.ref || element.ref;\n}\nexport {\n  Slot as Root,\n  Slot,\n  Slottable,\n  createSlot,\n  createSlottable\n};\n//# sourceMappingURL=index.mjs.map\n","// src/primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { createSlot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n  \"a\",\n  \"button\",\n  \"div\",\n  \"form\",\n  \"h2\",\n  \"h3\",\n  \"img\",\n  \"input\",\n  \"label\",\n  \"li\",\n  \"nav\",\n  \"ol\",\n  \"p\",\n  \"select\",\n  \"span\",\n  \"svg\",\n  \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n  const Slot = createSlot(`Primitive.${node}`);\n  const Node = React.forwardRef((props, forwardedRef) => {\n    const { asChild, ...primitiveProps } = props;\n    const Comp = asChild ? Slot : node;\n    if (typeof window !== \"undefined\") {\n      window[Symbol.for(\"radix-ui\")] = true;\n    }\n    return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n  });\n  Node.displayName = `Primitive.${node}`;\n  return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n  if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\nexport {\n  Primitive,\n  Root,\n  dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-callback-ref/src/use-callback-ref.tsx\nimport * as React from \"react\";\nfunction useCallbackRef(callback) {\n  const callbackRef = React.useRef(callback);\n  React.useEffect(() => {\n    callbackRef.current = callback;\n  });\n  return React.useMemo(() => (...args) => callbackRef.current?.(...args), []);\n}\nexport {\n  useCallbackRef\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-escape-keydown/src/use-escape-keydown.tsx\nimport * as React from \"react\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nfunction useEscapeKeydown(onEscapeKeyDownProp, ownerDocument = globalThis?.document) {\n  const onEscapeKeyDown = useCallbackRef(onEscapeKeyDownProp);\n  React.useEffect(() => {\n    const handleKeyDown = (event) => {\n      if (event.key === \"Escape\") {\n        onEscapeKeyDown(event);\n      }\n    };\n    ownerDocument.addEventListener(\"keydown\", handleKeyDown, { capture: true });\n    return () => ownerDocument.removeEventListener(\"keydown\", handleKeyDown, { capture: true });\n  }, [onEscapeKeyDown, ownerDocument]);\n}\nexport {\n  useEscapeKeydown\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/dismissable-layer.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { Primitive, dispatchDiscreteCustomEvent } from \"@radix-ui/react-primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useEscapeKeydown } from \"@radix-ui/react-use-escape-keydown\";\nimport { jsx } from \"react/jsx-runtime\";\nvar DISMISSABLE_LAYER_NAME = \"DismissableLayer\";\nvar CONTEXT_UPDATE = \"dismissableLayer.update\";\nvar POINTER_DOWN_OUTSIDE = \"dismissableLayer.pointerDownOutside\";\nvar FOCUS_OUTSIDE = \"dismissableLayer.focusOutside\";\nvar originalBodyPointerEvents;\nvar DismissableLayerContext = React.createContext({\n  layers: /* @__PURE__ */ new Set(),\n  layersWithOutsidePointerEventsDisabled: /* @__PURE__ */ new Set(),\n  branches: /* @__PURE__ */ new Set()\n});\nvar DismissableLayer = React.forwardRef(\n  (props, forwardedRef) => {\n    const {\n      disableOutsidePointerEvents = false,\n      onEscapeKeyDown,\n      onPointerDownOutside,\n      onFocusOutside,\n      onInteractOutside,\n      onDismiss,\n      ...layerProps\n    } = props;\n    const context = React.useContext(DismissableLayerContext);\n    const [node, setNode] = React.useState(null);\n    const ownerDocument = node?.ownerDocument ?? globalThis?.document;\n    const [, force] = React.useState({});\n    const composedRefs = useComposedRefs(forwardedRef, (node2) => setNode(node2));\n    const layers = Array.from(context.layers);\n    const [highestLayerWithOutsidePointerEventsDisabled] = [...context.layersWithOutsidePointerEventsDisabled].slice(-1);\n    const highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(highestLayerWithOutsidePointerEventsDisabled);\n    const index = node ? layers.indexOf(node) : -1;\n    const isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0;\n    const isPointerEventsEnabled = index >= highestLayerWithOutsidePointerEventsDisabledIndex;\n    const pointerDownOutside = usePointerDownOutside((event) => {\n      const target = event.target;\n      const isPointerDownOnBranch = [...context.branches].some((branch) => branch.contains(target));\n      if (!isPointerEventsEnabled || isPointerDownOnBranch) return;\n      onPointerDownOutside?.(event);\n      onInteractOutside?.(event);\n      if (!event.defaultPrevented) onDismiss?.();\n    }, ownerDocument);\n    const focusOutside = useFocusOutside((event) => {\n      const target = event.target;\n      const isFocusInBranch = [...context.branches].some((branch) => branch.contains(target));\n      if (isFocusInBranch) return;\n      onFocusOutside?.(event);\n      onInteractOutside?.(event);\n      if (!event.defaultPrevented) onDismiss?.();\n    }, ownerDocument);\n    useEscapeKeydown((event) => {\n      const isHighestLayer = index === context.layers.size - 1;\n      if (!isHighestLayer) return;\n      onEscapeKeyDown?.(event);\n      if (!event.defaultPrevented && onDismiss) {\n        event.preventDefault();\n        onDismiss();\n      }\n    }, ownerDocument);\n    React.useEffect(() => {\n      if (!node) return;\n      if (disableOutsidePointerEvents) {\n        if (context.layersWithOutsidePointerEventsDisabled.size === 0) {\n          originalBodyPointerEvents = ownerDocument.body.style.pointerEvents;\n          ownerDocument.body.style.pointerEvents = \"none\";\n        }\n        context.layersWithOutsidePointerEventsDisabled.add(node);\n      }\n      context.layers.add(node);\n      dispatchUpdate();\n      return () => {\n        if (disableOutsidePointerEvents && context.layersWithOutsidePointerEventsDisabled.size === 1) {\n          ownerDocument.body.style.pointerEvents = originalBodyPointerEvents;\n        }\n      };\n    }, [node, ownerDocument, disableOutsidePointerEvents, context]);\n    React.useEffect(() => {\n      return () => {\n        if (!node) return;\n        context.layers.delete(node);\n        context.layersWithOutsidePointerEventsDisabled.delete(node);\n        dispatchUpdate();\n      };\n    }, [node, context]);\n    React.useEffect(() => {\n      const handleUpdate = () => force({});\n      document.addEventListener(CONTEXT_UPDATE, handleUpdate);\n      return () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);\n    }, []);\n    return /* @__PURE__ */ jsx(\n      Primitive.div,\n      {\n        ...layerProps,\n        ref: composedRefs,\n        style: {\n          pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? \"auto\" : \"none\" : void 0,\n          ...props.style\n        },\n        onFocusCapture: composeEventHandlers(props.onFocusCapture, focusOutside.onFocusCapture),\n        onBlurCapture: composeEventHandlers(props.onBlurCapture, focusOutside.onBlurCapture),\n        onPointerDownCapture: composeEventHandlers(\n          props.onPointerDownCapture,\n          pointerDownOutside.onPointerDownCapture\n        )\n      }\n    );\n  }\n);\nDismissableLayer.displayName = DISMISSABLE_LAYER_NAME;\nvar BRANCH_NAME = \"DismissableLayerBranch\";\nvar DismissableLayerBranch = React.forwardRef((props, forwardedRef) => {\n  const context = React.useContext(DismissableLayerContext);\n  const ref = React.useRef(null);\n  const composedRefs = useComposedRefs(forwardedRef, ref);\n  React.useEffect(() => {\n    const node = ref.current;\n    if (node) {\n      context.branches.add(node);\n      return () => {\n        context.branches.delete(node);\n      };\n    }\n  }, [context.branches]);\n  return /* @__PURE__ */ jsx(Primitive.div, { ...props, ref: composedRefs });\n});\nDismissableLayerBranch.displayName = BRANCH_NAME;\nfunction usePointerDownOutside(onPointerDownOutside, ownerDocument = globalThis?.document) {\n  const handlePointerDownOutside = useCallbackRef(onPointerDownOutside);\n  const isPointerInsideReactTreeRef = React.useRef(false);\n  const handleClickRef = React.useRef(() => {\n  });\n  React.useEffect(() => {\n    const handlePointerDown = (event) => {\n      if (event.target && !isPointerInsideReactTreeRef.current) {\n        let handleAndDispatchPointerDownOutsideEvent2 = function() {\n          handleAndDispatchCustomEvent(\n            POINTER_DOWN_OUTSIDE,\n            handlePointerDownOutside,\n            eventDetail,\n            { discrete: true }\n          );\n        };\n        var handleAndDispatchPointerDownOutsideEvent = handleAndDispatchPointerDownOutsideEvent2;\n        const eventDetail = { originalEvent: event };\n        if (event.pointerType === \"touch\") {\n          ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n          handleClickRef.current = handleAndDispatchPointerDownOutsideEvent2;\n          ownerDocument.addEventListener(\"click\", handleClickRef.current, { once: true });\n        } else {\n          handleAndDispatchPointerDownOutsideEvent2();\n        }\n      } else {\n        ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n      }\n      isPointerInsideReactTreeRef.current = false;\n    };\n    const timerId = window.setTimeout(() => {\n      ownerDocument.addEventListener(\"pointerdown\", handlePointerDown);\n    }, 0);\n    return () => {\n      window.clearTimeout(timerId);\n      ownerDocument.removeEventListener(\"pointerdown\", handlePointerDown);\n      ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n    };\n  }, [ownerDocument, handlePointerDownOutside]);\n  return {\n    // ensures we check React component tree (not just DOM tree)\n    onPointerDownCapture: () => isPointerInsideReactTreeRef.current = true\n  };\n}\nfunction useFocusOutside(onFocusOutside, ownerDocument = globalThis?.document) {\n  const handleFocusOutside = useCallbackRef(onFocusOutside);\n  const isFocusInsideReactTreeRef = React.useRef(false);\n  React.useEffect(() => {\n    const handleFocus = (event) => {\n      if (event.target && !isFocusInsideReactTreeRef.current) {\n        const eventDetail = { originalEvent: event };\n        handleAndDispatchCustomEvent(FOCUS_OUTSIDE, handleFocusOutside, eventDetail, {\n          discrete: false\n        });\n      }\n    };\n    ownerDocument.addEventListener(\"focusin\", handleFocus);\n    return () => ownerDocument.removeEventListener(\"focusin\", handleFocus);\n  }, [ownerDocument, handleFocusOutside]);\n  return {\n    onFocusCapture: () => isFocusInsideReactTreeRef.current = true,\n    onBlurCapture: () => isFocusInsideReactTreeRef.current = false\n  };\n}\nfunction dispatchUpdate() {\n  const event = new CustomEvent(CONTEXT_UPDATE);\n  document.dispatchEvent(event);\n}\nfunction handleAndDispatchCustomEvent(name, handler, detail, { discrete }) {\n  const target = detail.originalEvent.target;\n  const event = new CustomEvent(name, { bubbles: false, cancelable: true, detail });\n  if (handler) target.addEventListener(name, handler, { once: true });\n  if (discrete) {\n    dispatchDiscreteCustomEvent(target, event);\n  } else {\n    target.dispatchEvent(event);\n  }\n}\nvar Root = DismissableLayer;\nvar Branch = DismissableLayerBranch;\nexport {\n  Branch,\n  DismissableLayer,\n  DismissableLayerBranch,\n  Root\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-layout-effect/src/use-layout-effect.tsx\nimport * as React from \"react\";\nvar useLayoutEffect2 = globalThis?.document ? React.useLayoutEffect : () => {\n};\nexport {\n  useLayoutEffect2 as useLayoutEffect\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/id/src/id.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nvar useReactId = React[\" useId \".trim().toString()] || (() => void 0);\nvar count = 0;\nfunction useId(deterministicId) {\n  const [id, setId] = React.useState(useReactId());\n  useLayoutEffect(() => {\n    if (!deterministicId) setId((reactId) => reactId ?? String(count++));\n  }, [deterministicId]);\n  return deterministicId || (id ? `radix-${id}` : \"\");\n}\nexport {\n  useId\n};\n//# sourceMappingURL=index.mjs.map\n","/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n  x: v,\n  y: v\n});\nconst oppositeSideMap = {\n  left: 'right',\n  right: 'left',\n  bottom: 'top',\n  top: 'bottom'\n};\nfunction clamp(start, value, end) {\n  return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n  return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n  return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n  return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n  return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n  return axis === 'y' ? 'height' : 'width';\n}\nfunction getSideAxis(placement) {\n  const firstChar = placement[0];\n  return firstChar === 't' || firstChar === 'b' ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n  return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n  if (rtl === void 0) {\n    rtl = false;\n  }\n  const alignment = getAlignment(placement);\n  const alignmentAxis = getAlignmentAxis(placement);\n  const length = getAxisLength(alignmentAxis);\n  let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n  if (rects.reference[length] > rects.floating[length]) {\n    mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n  }\n  return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n  const oppositePlacement = getOppositePlacement(placement);\n  return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n  return placement.includes('start') ? placement.replace('start', 'end') : placement.replace('end', 'start');\n}\nconst lrPlacement = ['left', 'right'];\nconst rlPlacement = ['right', 'left'];\nconst tbPlacement = ['top', 'bottom'];\nconst btPlacement = ['bottom', 'top'];\nfunction getSideList(side, isStart, rtl) {\n  switch (side) {\n    case 'top':\n    case 'bottom':\n      if (rtl) return isStart ? rlPlacement : lrPlacement;\n      return isStart ? lrPlacement : rlPlacement;\n    case 'left':\n    case 'right':\n      return isStart ? tbPlacement : btPlacement;\n    default:\n      return [];\n  }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n  const alignment = getAlignment(placement);\n  let list = getSideList(getSide(placement), direction === 'start', rtl);\n  if (alignment) {\n    list = list.map(side => side + \"-\" + alignment);\n    if (flipAlignment) {\n      list = list.concat(list.map(getOppositeAlignmentPlacement));\n    }\n  }\n  return list;\n}\nfunction getOppositePlacement(placement) {\n  const side = getSide(placement);\n  return oppositeSideMap[side] + placement.slice(side.length);\n}\nfunction expandPaddingObject(padding) {\n  return {\n    top: 0,\n    right: 0,\n    bottom: 0,\n    left: 0,\n    ...padding\n  };\n}\nfunction getPaddingObject(padding) {\n  return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n    top: padding,\n    right: padding,\n    bottom: padding,\n    left: padding\n  };\n}\nfunction rectToClientRect(rect) {\n  const {\n    x,\n    y,\n    width,\n    height\n  } = rect;\n  return {\n    width,\n    height,\n    top: y,\n    left: x,\n    right: x + width,\n    bottom: y + height,\n    x,\n    y\n  };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n","import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n  let {\n    reference,\n    floating\n  } = _ref;\n  const sideAxis = getSideAxis(placement);\n  const alignmentAxis = getAlignmentAxis(placement);\n  const alignLength = getAxisLength(alignmentAxis);\n  const side = getSide(placement);\n  const isVertical = sideAxis === 'y';\n  const commonX = reference.x + reference.width / 2 - floating.width / 2;\n  const commonY = reference.y + reference.height / 2 - floating.height / 2;\n  const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n  let coords;\n  switch (side) {\n    case 'top':\n      coords = {\n        x: commonX,\n        y: reference.y - floating.height\n      };\n      break;\n    case 'bottom':\n      coords = {\n        x: commonX,\n        y: reference.y + reference.height\n      };\n      break;\n    case 'right':\n      coords = {\n        x: reference.x + reference.width,\n        y: commonY\n      };\n      break;\n    case 'left':\n      coords = {\n        x: reference.x - floating.width,\n        y: commonY\n      };\n      break;\n    default:\n      coords = {\n        x: reference.x,\n        y: reference.y\n      };\n  }\n  switch (getAlignment(placement)) {\n    case 'start':\n      coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n      break;\n    case 'end':\n      coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n      break;\n  }\n  return coords;\n}\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n  var _await$platform$isEle;\n  if (options === void 0) {\n    options = {};\n  }\n  const {\n    x,\n    y,\n    platform,\n    rects,\n    elements,\n    strategy\n  } = state;\n  const {\n    boundary = 'clippingAncestors',\n    rootBoundary = 'viewport',\n    elementContext = 'floating',\n    altBoundary = false,\n    padding = 0\n  } = evaluate(options, state);\n  const paddingObject = getPaddingObject(padding);\n  const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n  const element = elements[altBoundary ? altContext : elementContext];\n  const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n    element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n    boundary,\n    rootBoundary,\n    strategy\n  }));\n  const rect = elementContext === 'floating' ? {\n    x,\n    y,\n    width: rects.floating.width,\n    height: rects.floating.height\n  } : rects.reference;\n  const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n  const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n    x: 1,\n    y: 1\n  } : {\n    x: 1,\n    y: 1\n  };\n  const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n    elements,\n    rect,\n    offsetParent,\n    strategy\n  }) : rect);\n  return {\n    top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n    bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n    left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n    right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n  };\n}\n\n// Maximum number of resets that can occur before bailing to avoid infinite reset loops.\nconst MAX_RESET_COUNT = 50;\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n  const {\n    placement = 'bottom',\n    strategy = 'absolute',\n    middleware = [],\n    platform\n  } = config;\n  const platformWithDetectOverflow = platform.detectOverflow ? platform : {\n    ...platform,\n    detectOverflow\n  };\n  const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n  let rects = await platform.getElementRects({\n    reference,\n    floating,\n    strategy\n  });\n  let {\n    x,\n    y\n  } = computeCoordsFromPlacement(rects, placement, rtl);\n  let statefulPlacement = placement;\n  let resetCount = 0;\n  const middlewareData = {};\n  for (let i = 0; i < middleware.length; i++) {\n    const currentMiddleware = middleware[i];\n    if (!currentMiddleware) {\n      continue;\n    }\n    const {\n      name,\n      fn\n    } = currentMiddleware;\n    const {\n      x: nextX,\n      y: nextY,\n      data,\n      reset\n    } = await fn({\n      x,\n      y,\n      initialPlacement: placement,\n      placement: statefulPlacement,\n      strategy,\n      middlewareData,\n      rects,\n      platform: platformWithDetectOverflow,\n      elements: {\n        reference,\n        floating\n      }\n    });\n    x = nextX != null ? nextX : x;\n    y = nextY != null ? nextY : y;\n    middlewareData[name] = {\n      ...middlewareData[name],\n      ...data\n    };\n    if (reset && resetCount < MAX_RESET_COUNT) {\n      resetCount++;\n      if (typeof reset === 'object') {\n        if (reset.placement) {\n          statefulPlacement = reset.placement;\n        }\n        if (reset.rects) {\n          rects = reset.rects === true ? await platform.getElementRects({\n            reference,\n            floating,\n            strategy\n          }) : reset.rects;\n        }\n        ({\n          x,\n          y\n        } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n      }\n      i = -1;\n    }\n  }\n  return {\n    x,\n    y,\n    placement: statefulPlacement,\n    strategy,\n    middlewareData\n  };\n};\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n  name: 'arrow',\n  options,\n  async fn(state) {\n    const {\n      x,\n      y,\n      placement,\n      rects,\n      platform,\n      elements,\n      middlewareData\n    } = state;\n    // Since `element` is required, we don't Partial<> the type.\n    const {\n      element,\n      padding = 0\n    } = evaluate(options, state) || {};\n    if (element == null) {\n      return {};\n    }\n    const paddingObject = getPaddingObject(padding);\n    const coords = {\n      x,\n      y\n    };\n    const axis = getAlignmentAxis(placement);\n    const length = getAxisLength(axis);\n    const arrowDimensions = await platform.getDimensions(element);\n    const isYAxis = axis === 'y';\n    const minProp = isYAxis ? 'top' : 'left';\n    const maxProp = isYAxis ? 'bottom' : 'right';\n    const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n    const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n    const startDiff = coords[axis] - rects.reference[axis];\n    const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n    let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n    // DOM platform can return `window` as the `offsetParent`.\n    if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n      clientSize = elements.floating[clientProp] || rects.floating[length];\n    }\n    const centerToReference = endDiff / 2 - startDiff / 2;\n\n    // If the padding is large enough that it causes the arrow to no longer be\n    // centered, modify the padding so that it is centered.\n    const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n    const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n    const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n    // Make sure the arrow doesn't overflow the floating element if the center\n    // point is outside the floating element's bounds.\n    const min$1 = minPadding;\n    const max = clientSize - arrowDimensions[length] - maxPadding;\n    const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n    const offset = clamp(min$1, center, max);\n\n    // If the reference is small enough that the arrow's padding causes it to\n    // to point to nothing for an aligned placement, adjust the offset of the\n    // floating element itself. To ensure `shift()` continues to take action,\n    // a single reset is performed when this is true.\n    const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n    const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\n    return {\n      [axis]: coords[axis] + alignmentOffset,\n      data: {\n        [axis]: offset,\n        centerOffset: center - offset - alignmentOffset,\n        ...(shouldAddOffset && {\n          alignmentOffset\n        })\n      },\n      reset: shouldAddOffset\n    };\n  }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n  const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n  return allowedPlacementsSortedByAlignment.filter(placement => {\n    if (alignment) {\n      return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n    }\n    return true;\n  });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    name: 'autoPlacement',\n    options,\n    async fn(state) {\n      var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n      const {\n        rects,\n        middlewareData,\n        placement,\n        platform,\n        elements\n      } = state;\n      const {\n        crossAxis = false,\n        alignment,\n        allowedPlacements = placements,\n        autoAlignment = true,\n        ...detectOverflowOptions\n      } = evaluate(options, state);\n      const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n      const overflow = await platform.detectOverflow(state, detectOverflowOptions);\n      const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n      const currentPlacement = placements$1[currentIndex];\n      if (currentPlacement == null) {\n        return {};\n      }\n      const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n      // Make `computeCoords` start from the right place.\n      if (placement !== currentPlacement) {\n        return {\n          reset: {\n            placement: placements$1[0]\n          }\n        };\n      }\n      const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n      const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n        placement: currentPlacement,\n        overflows: currentOverflows\n      }];\n      const nextPlacement = placements$1[currentIndex + 1];\n\n      // There are more placements to check.\n      if (nextPlacement) {\n        return {\n          data: {\n            index: currentIndex + 1,\n            overflows: allOverflows\n          },\n          reset: {\n            placement: nextPlacement\n          }\n        };\n      }\n      const placementsSortedByMostSpace = allOverflows.map(d => {\n        const alignment = getAlignment(d.placement);\n        return [d.placement, alignment && crossAxis ?\n        // Check along the mainAxis and main crossAxis side.\n        d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n        // Check only the mainAxis.\n        d.overflows[0], d.overflows];\n      }).sort((a, b) => a[1] - b[1]);\n      const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n      // Aligned placements should not check their opposite crossAxis\n      // side.\n      getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n      const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n      if (resetPlacement !== placement) {\n        return {\n          data: {\n            index: currentIndex + 1,\n            overflows: allOverflows\n          },\n          reset: {\n            placement: resetPlacement\n          }\n        };\n      }\n      return {};\n    }\n  };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    name: 'flip',\n    options,\n    async fn(state) {\n      var _middlewareData$arrow, _middlewareData$flip;\n      const {\n        placement,\n        middlewareData,\n        rects,\n        initialPlacement,\n        platform,\n        elements\n      } = state;\n      const {\n        mainAxis: checkMainAxis = true,\n        crossAxis: checkCrossAxis = true,\n        fallbackPlacements: specifiedFallbackPlacements,\n        fallbackStrategy = 'bestFit',\n        fallbackAxisSideDirection = 'none',\n        flipAlignment = true,\n        ...detectOverflowOptions\n      } = evaluate(options, state);\n\n      // If a reset by the arrow was caused due to an alignment offset being\n      // added, we should skip any logic now since `flip()` has already done its\n      // work.\n      // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n      if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n        return {};\n      }\n      const side = getSide(placement);\n      const initialSideAxis = getSideAxis(initialPlacement);\n      const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n      const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n      const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n      const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';\n      if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {\n        fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n      }\n      const placements = [initialPlacement, ...fallbackPlacements];\n      const overflow = await platform.detectOverflow(state, detectOverflowOptions);\n      const overflows = [];\n      let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n      if (checkMainAxis) {\n        overflows.push(overflow[side]);\n      }\n      if (checkCrossAxis) {\n        const sides = getAlignmentSides(placement, rects, rtl);\n        overflows.push(overflow[sides[0]], overflow[sides[1]]);\n      }\n      overflowsData = [...overflowsData, {\n        placement,\n        overflows\n      }];\n\n      // One or more sides is overflowing.\n      if (!overflows.every(side => side <= 0)) {\n        var _middlewareData$flip2, _overflowsData$filter;\n        const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n        const nextPlacement = placements[nextIndex];\n        if (nextPlacement) {\n          const ignoreCrossAxisOverflow = checkCrossAxis === 'alignment' ? initialSideAxis !== getSideAxis(nextPlacement) : false;\n          if (!ignoreCrossAxisOverflow ||\n          // We leave the current main axis only if every placement on that axis\n          // overflows the main axis.\n          overflowsData.every(d => getSideAxis(d.placement) === initialSideAxis ? d.overflows[0] > 0 : true)) {\n            // Try next placement and re-run the lifecycle.\n            return {\n              data: {\n                index: nextIndex,\n                overflows: overflowsData\n              },\n              reset: {\n                placement: nextPlacement\n              }\n            };\n          }\n        }\n\n        // First, find the candidates that fit on the mainAxis side of overflow,\n        // then find the placement that fits the best on the main crossAxis side.\n        let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n        // Otherwise fallback.\n        if (!resetPlacement) {\n          switch (fallbackStrategy) {\n            case 'bestFit':\n              {\n                var _overflowsData$filter2;\n                const placement = (_overflowsData$filter2 = overflowsData.filter(d => {\n                  if (hasFallbackAxisSideDirection) {\n                    const currentSideAxis = getSideAxis(d.placement);\n                    return currentSideAxis === initialSideAxis ||\n                    // Create a bias to the `y` side axis due to horizontal\n                    // reading directions favoring greater width.\n                    currentSideAxis === 'y';\n                  }\n                  return true;\n                }).map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];\n                if (placement) {\n                  resetPlacement = placement;\n                }\n                break;\n              }\n            case 'initialPlacement':\n              resetPlacement = initialPlacement;\n              break;\n          }\n        }\n        if (placement !== resetPlacement) {\n          return {\n            reset: {\n              placement: resetPlacement\n            }\n          };\n        }\n      }\n      return {};\n    }\n  };\n};\n\nfunction getSideOffsets(overflow, rect) {\n  return {\n    top: overflow.top - rect.height,\n    right: overflow.right - rect.width,\n    bottom: overflow.bottom - rect.height,\n    left: overflow.left - rect.width\n  };\n}\nfunction isAnySideFullyClipped(overflow) {\n  return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    name: 'hide',\n    options,\n    async fn(state) {\n      const {\n        rects,\n        platform\n      } = state;\n      const {\n        strategy = 'referenceHidden',\n        ...detectOverflowOptions\n      } = evaluate(options, state);\n      switch (strategy) {\n        case 'referenceHidden':\n          {\n            const overflow = await platform.detectOverflow(state, {\n              ...detectOverflowOptions,\n              elementContext: 'reference'\n            });\n            const offsets = getSideOffsets(overflow, rects.reference);\n            return {\n              data: {\n                referenceHiddenOffsets: offsets,\n                referenceHidden: isAnySideFullyClipped(offsets)\n              }\n            };\n          }\n        case 'escaped':\n          {\n            const overflow = await platform.detectOverflow(state, {\n              ...detectOverflowOptions,\n              altBoundary: true\n            });\n            const offsets = getSideOffsets(overflow, rects.floating);\n            return {\n              data: {\n                escapedOffsets: offsets,\n                escaped: isAnySideFullyClipped(offsets)\n              }\n            };\n          }\n        default:\n          {\n            return {};\n          }\n      }\n    }\n  };\n};\n\nfunction getBoundingRect(rects) {\n  const minX = min(...rects.map(rect => rect.left));\n  const minY = min(...rects.map(rect => rect.top));\n  const maxX = max(...rects.map(rect => rect.right));\n  const maxY = max(...rects.map(rect => rect.bottom));\n  return {\n    x: minX,\n    y: minY,\n    width: maxX - minX,\n    height: maxY - minY\n  };\n}\nfunction getRectsByLine(rects) {\n  const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n  const groups = [];\n  let prevRect = null;\n  for (let i = 0; i < sortedRects.length; i++) {\n    const rect = sortedRects[i];\n    if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n      groups.push([rect]);\n    } else {\n      groups[groups.length - 1].push(rect);\n    }\n    prevRect = rect;\n  }\n  return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    name: 'inline',\n    options,\n    async fn(state) {\n      const {\n        placement,\n        elements,\n        rects,\n        platform,\n        strategy\n      } = state;\n      // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n      // ClientRect's bounds, despite the event listener being triggered. A\n      // padding of 2 seems to handle this issue.\n      const {\n        padding = 2,\n        x,\n        y\n      } = evaluate(options, state);\n      const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n      const clientRects = getRectsByLine(nativeClientRects);\n      const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n      const paddingObject = getPaddingObject(padding);\n      function getBoundingClientRect() {\n        // There are two rects and they are disjoined.\n        if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n          // Find the first rect in which the point is fully inside.\n          return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n        }\n\n        // There are 2 or more connected rects.\n        if (clientRects.length >= 2) {\n          if (getSideAxis(placement) === 'y') {\n            const firstRect = clientRects[0];\n            const lastRect = clientRects[clientRects.length - 1];\n            const isTop = getSide(placement) === 'top';\n            const top = firstRect.top;\n            const bottom = lastRect.bottom;\n            const left = isTop ? firstRect.left : lastRect.left;\n            const right = isTop ? firstRect.right : lastRect.right;\n            const width = right - left;\n            const height = bottom - top;\n            return {\n              top,\n              bottom,\n              left,\n              right,\n              width,\n              height,\n              x: left,\n              y: top\n            };\n          }\n          const isLeftSide = getSide(placement) === 'left';\n          const maxRight = max(...clientRects.map(rect => rect.right));\n          const minLeft = min(...clientRects.map(rect => rect.left));\n          const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n          const top = measureRects[0].top;\n          const bottom = measureRects[measureRects.length - 1].bottom;\n          const left = minLeft;\n          const right = maxRight;\n          const width = right - left;\n          const height = bottom - top;\n          return {\n            top,\n            bottom,\n            left,\n            right,\n            width,\n            height,\n            x: left,\n            y: top\n          };\n        }\n        return fallback;\n      }\n      const resetRects = await platform.getElementRects({\n        reference: {\n          getBoundingClientRect\n        },\n        floating: elements.floating,\n        strategy\n      });\n      if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n        return {\n          reset: {\n            rects: resetRects\n          }\n        };\n      }\n      return {};\n    }\n  };\n};\n\nconst originSides = /*#__PURE__*/new Set(['left', 'top']);\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\nasync function convertValueToCoords(state, options) {\n  const {\n    placement,\n    platform,\n    elements\n  } = state;\n  const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n  const side = getSide(placement);\n  const alignment = getAlignment(placement);\n  const isVertical = getSideAxis(placement) === 'y';\n  const mainAxisMulti = originSides.has(side) ? -1 : 1;\n  const crossAxisMulti = rtl && isVertical ? -1 : 1;\n  const rawValue = evaluate(options, state);\n\n  // eslint-disable-next-line prefer-const\n  let {\n    mainAxis,\n    crossAxis,\n    alignmentAxis\n  } = typeof rawValue === 'number' ? {\n    mainAxis: rawValue,\n    crossAxis: 0,\n    alignmentAxis: null\n  } : {\n    mainAxis: rawValue.mainAxis || 0,\n    crossAxis: rawValue.crossAxis || 0,\n    alignmentAxis: rawValue.alignmentAxis\n  };\n  if (alignment && typeof alignmentAxis === 'number') {\n    crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n  }\n  return isVertical ? {\n    x: crossAxis * crossAxisMulti,\n    y: mainAxis * mainAxisMulti\n  } : {\n    x: mainAxis * mainAxisMulti,\n    y: crossAxis * crossAxisMulti\n  };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n  if (options === void 0) {\n    options = 0;\n  }\n  return {\n    name: 'offset',\n    options,\n    async fn(state) {\n      var _middlewareData$offse, _middlewareData$arrow;\n      const {\n        x,\n        y,\n        placement,\n        middlewareData\n      } = state;\n      const diffCoords = await convertValueToCoords(state, options);\n\n      // If the placement is the same and the arrow caused an alignment offset\n      // then we don't need to change the positioning coordinates.\n      if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n        return {};\n      }\n      return {\n        x: x + diffCoords.x,\n        y: y + diffCoords.y,\n        data: {\n          ...diffCoords,\n          placement\n        }\n      };\n    }\n  };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    name: 'shift',\n    options,\n    async fn(state) {\n      const {\n        x,\n        y,\n        placement,\n        platform\n      } = state;\n      const {\n        mainAxis: checkMainAxis = true,\n        crossAxis: checkCrossAxis = false,\n        limiter = {\n          fn: _ref => {\n            let {\n              x,\n              y\n            } = _ref;\n            return {\n              x,\n              y\n            };\n          }\n        },\n        ...detectOverflowOptions\n      } = evaluate(options, state);\n      const coords = {\n        x,\n        y\n      };\n      const overflow = await platform.detectOverflow(state, detectOverflowOptions);\n      const crossAxis = getSideAxis(getSide(placement));\n      const mainAxis = getOppositeAxis(crossAxis);\n      let mainAxisCoord = coords[mainAxis];\n      let crossAxisCoord = coords[crossAxis];\n      if (checkMainAxis) {\n        const minSide = mainAxis === 'y' ? 'top' : 'left';\n        const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n        const min = mainAxisCoord + overflow[minSide];\n        const max = mainAxisCoord - overflow[maxSide];\n        mainAxisCoord = clamp(min, mainAxisCoord, max);\n      }\n      if (checkCrossAxis) {\n        const minSide = crossAxis === 'y' ? 'top' : 'left';\n        const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n        const min = crossAxisCoord + overflow[minSide];\n        const max = crossAxisCoord - overflow[maxSide];\n        crossAxisCoord = clamp(min, crossAxisCoord, max);\n      }\n      const limitedCoords = limiter.fn({\n        ...state,\n        [mainAxis]: mainAxisCoord,\n        [crossAxis]: crossAxisCoord\n      });\n      return {\n        ...limitedCoords,\n        data: {\n          x: limitedCoords.x - x,\n          y: limitedCoords.y - y,\n          enabled: {\n            [mainAxis]: checkMainAxis,\n            [crossAxis]: checkCrossAxis\n          }\n        }\n      };\n    }\n  };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    options,\n    fn(state) {\n      const {\n        x,\n        y,\n        placement,\n        rects,\n        middlewareData\n      } = state;\n      const {\n        offset = 0,\n        mainAxis: checkMainAxis = true,\n        crossAxis: checkCrossAxis = true\n      } = evaluate(options, state);\n      const coords = {\n        x,\n        y\n      };\n      const crossAxis = getSideAxis(placement);\n      const mainAxis = getOppositeAxis(crossAxis);\n      let mainAxisCoord = coords[mainAxis];\n      let crossAxisCoord = coords[crossAxis];\n      const rawOffset = evaluate(offset, state);\n      const computedOffset = typeof rawOffset === 'number' ? {\n        mainAxis: rawOffset,\n        crossAxis: 0\n      } : {\n        mainAxis: 0,\n        crossAxis: 0,\n        ...rawOffset\n      };\n      if (checkMainAxis) {\n        const len = mainAxis === 'y' ? 'height' : 'width';\n        const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n        const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n        if (mainAxisCoord < limitMin) {\n          mainAxisCoord = limitMin;\n        } else if (mainAxisCoord > limitMax) {\n          mainAxisCoord = limitMax;\n        }\n      }\n      if (checkCrossAxis) {\n        var _middlewareData$offse, _middlewareData$offse2;\n        const len = mainAxis === 'y' ? 'width' : 'height';\n        const isOriginSide = originSides.has(getSide(placement));\n        const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n        const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n        if (crossAxisCoord < limitMin) {\n          crossAxisCoord = limitMin;\n        } else if (crossAxisCoord > limitMax) {\n          crossAxisCoord = limitMax;\n        }\n      }\n      return {\n        [mainAxis]: mainAxisCoord,\n        [crossAxis]: crossAxisCoord\n      };\n    }\n  };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    name: 'size',\n    options,\n    async fn(state) {\n      var _state$middlewareData, _state$middlewareData2;\n      const {\n        placement,\n        rects,\n        platform,\n        elements\n      } = state;\n      const {\n        apply = () => {},\n        ...detectOverflowOptions\n      } = evaluate(options, state);\n      const overflow = await platform.detectOverflow(state, detectOverflowOptions);\n      const side = getSide(placement);\n      const alignment = getAlignment(placement);\n      const isYAxis = getSideAxis(placement) === 'y';\n      const {\n        width,\n        height\n      } = rects.floating;\n      let heightSide;\n      let widthSide;\n      if (side === 'top' || side === 'bottom') {\n        heightSide = side;\n        widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n      } else {\n        widthSide = side;\n        heightSide = alignment === 'end' ? 'top' : 'bottom';\n      }\n      const maximumClippingHeight = height - overflow.top - overflow.bottom;\n      const maximumClippingWidth = width - overflow.left - overflow.right;\n      const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);\n      const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);\n      const noShift = !state.middlewareData.shift;\n      let availableHeight = overflowAvailableHeight;\n      let availableWidth = overflowAvailableWidth;\n      if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {\n        availableWidth = maximumClippingWidth;\n      }\n      if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {\n        availableHeight = maximumClippingHeight;\n      }\n      if (noShift && !alignment) {\n        const xMin = max(overflow.left, 0);\n        const xMax = max(overflow.right, 0);\n        const yMin = max(overflow.top, 0);\n        const yMax = max(overflow.bottom, 0);\n        if (isYAxis) {\n          availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n        } else {\n          availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n        }\n      }\n      await apply({\n        ...state,\n        availableWidth,\n        availableHeight\n      });\n      const nextDimensions = await platform.getDimensions(elements.floating);\n      if (width !== nextDimensions.width || height !== nextDimensions.height) {\n        return {\n          reset: {\n            rects: true\n          }\n        };\n      }\n      return {};\n    }\n  };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\n","function hasWindow() {\n  return typeof window !== 'undefined';\n}\nfunction getNodeName(node) {\n  if (isNode(node)) {\n    return (node.nodeName || '').toLowerCase();\n  }\n  // Mocked nodes in testing environments may not be instances of Node. By\n  // returning `#document` an infinite loop won't occur.\n  // https://github.com/floating-ui/floating-ui/issues/2317\n  return '#document';\n}\nfunction getWindow(node) {\n  var _node$ownerDocument;\n  return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n  var _ref;\n  return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n  if (!hasWindow()) {\n    return false;\n  }\n  return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n  if (!hasWindow()) {\n    return false;\n  }\n  return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n  if (!hasWindow()) {\n    return false;\n  }\n  return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n  if (!hasWindow() || typeof ShadowRoot === 'undefined') {\n    return false;\n  }\n  return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nfunction isOverflowElement(element) {\n  const {\n    overflow,\n    overflowX,\n    overflowY,\n    display\n  } = getComputedStyle(element);\n  return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && display !== 'inline' && display !== 'contents';\n}\nfunction isTableElement(element) {\n  return /^(table|td|th)$/.test(getNodeName(element));\n}\nfunction isTopLayer(element) {\n  try {\n    if (element.matches(':popover-open')) {\n      return true;\n    }\n  } catch (_e) {\n    // no-op\n  }\n  try {\n    return element.matches(':modal');\n  } catch (_e) {\n    return false;\n  }\n}\nconst willChangeRe = /transform|translate|scale|rotate|perspective|filter/;\nconst containRe = /paint|layout|strict|content/;\nconst isNotNone = value => !!value && value !== 'none';\nlet isWebKitValue;\nfunction isContainingBlock(elementOrCss) {\n  const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;\n\n  // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n  // https://drafts.csswg.org/css-transforms-2/#individual-transforms\n  return isNotNone(css.transform) || isNotNone(css.translate) || isNotNone(css.scale) || isNotNone(css.rotate) || isNotNone(css.perspective) || !isWebKit() && (isNotNone(css.backdropFilter) || isNotNone(css.filter)) || willChangeRe.test(css.willChange || '') || containRe.test(css.contain || '');\n}\nfunction getContainingBlock(element) {\n  let currentNode = getParentNode(element);\n  while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n    if (isContainingBlock(currentNode)) {\n      return currentNode;\n    } else if (isTopLayer(currentNode)) {\n      return null;\n    }\n    currentNode = getParentNode(currentNode);\n  }\n  return null;\n}\nfunction isWebKit() {\n  if (isWebKitValue == null) {\n    isWebKitValue = typeof CSS !== 'undefined' && CSS.supports && CSS.supports('-webkit-backdrop-filter', 'none');\n  }\n  return isWebKitValue;\n}\nfunction isLastTraversableNode(node) {\n  return /^(html|body|#document)$/.test(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n  return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n  if (isElement(element)) {\n    return {\n      scrollLeft: element.scrollLeft,\n      scrollTop: element.scrollTop\n    };\n  }\n  return {\n    scrollLeft: element.scrollX,\n    scrollTop: element.scrollY\n  };\n}\nfunction getParentNode(node) {\n  if (getNodeName(node) === 'html') {\n    return node;\n  }\n  const result =\n  // Step into the shadow DOM of the parent of a slotted node.\n  node.assignedSlot ||\n  // DOM Element detected.\n  node.parentNode ||\n  // ShadowRoot detected.\n  isShadowRoot(node) && node.host ||\n  // Fallback.\n  getDocumentElement(node);\n  return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n  const parentNode = getParentNode(node);\n  if (isLastTraversableNode(parentNode)) {\n    return node.ownerDocument ? node.ownerDocument.body : node.body;\n  }\n  if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n    return parentNode;\n  }\n  return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n  var _node$ownerDocument2;\n  if (list === void 0) {\n    list = [];\n  }\n  if (traverseIframes === void 0) {\n    traverseIframes = true;\n  }\n  const scrollableAncestor = getNearestOverflowAncestor(node);\n  const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n  const win = getWindow(scrollableAncestor);\n  if (isBody) {\n    const frameElement = getFrameElement(win);\n    return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);\n  } else {\n    return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n  }\n}\nfunction getFrameElement(win) {\n  return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getFrameElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isTopLayer, isWebKit };\n","import { rectToClientRect, arrow as arrow$1, autoPlacement as autoPlacement$1, detectOverflow as detectOverflow$1, flip as flip$1, hide as hide$1, inline as inline$1, limitShift as limitShift$1, offset as offset$1, shift as shift$1, size as size$1, computePosition as computePosition$1 } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle as getComputedStyle$1, isHTMLElement, isElement, getWindow, isWebKit, getFrameElement, getNodeScroll, getDocumentElement, isTopLayer, getNodeName, isOverflowElement, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n  const css = getComputedStyle$1(element);\n  // In testing environments, the `width` and `height` properties are empty\n  // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n  let width = parseFloat(css.width) || 0;\n  let height = parseFloat(css.height) || 0;\n  const hasOffset = isHTMLElement(element);\n  const offsetWidth = hasOffset ? element.offsetWidth : width;\n  const offsetHeight = hasOffset ? element.offsetHeight : height;\n  const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n  if (shouldFallback) {\n    width = offsetWidth;\n    height = offsetHeight;\n  }\n  return {\n    width,\n    height,\n    $: shouldFallback\n  };\n}\n\nfunction unwrapElement(element) {\n  return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n  const domElement = unwrapElement(element);\n  if (!isHTMLElement(domElement)) {\n    return createCoords(1);\n  }\n  const rect = domElement.getBoundingClientRect();\n  const {\n    width,\n    height,\n    $\n  } = getCssDimensions(domElement);\n  let x = ($ ? round(rect.width) : rect.width) / width;\n  let y = ($ ? round(rect.height) : rect.height) / height;\n\n  // 0, NaN, or Infinity should always fallback to 1.\n\n  if (!x || !Number.isFinite(x)) {\n    x = 1;\n  }\n  if (!y || !Number.isFinite(y)) {\n    y = 1;\n  }\n  return {\n    x,\n    y\n  };\n}\n\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n  const win = getWindow(element);\n  if (!isWebKit() || !win.visualViewport) {\n    return noOffsets;\n  }\n  return {\n    x: win.visualViewport.offsetLeft,\n    y: win.visualViewport.offsetTop\n  };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n  if (isFixed === void 0) {\n    isFixed = false;\n  }\n  if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n    return false;\n  }\n  return isFixed;\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n  if (includeScale === void 0) {\n    includeScale = false;\n  }\n  if (isFixedStrategy === void 0) {\n    isFixedStrategy = false;\n  }\n  const clientRect = element.getBoundingClientRect();\n  const domElement = unwrapElement(element);\n  let scale = createCoords(1);\n  if (includeScale) {\n    if (offsetParent) {\n      if (isElement(offsetParent)) {\n        scale = getScale(offsetParent);\n      }\n    } else {\n      scale = getScale(element);\n    }\n  }\n  const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n  let x = (clientRect.left + visualOffsets.x) / scale.x;\n  let y = (clientRect.top + visualOffsets.y) / scale.y;\n  let width = clientRect.width / scale.x;\n  let height = clientRect.height / scale.y;\n  if (domElement) {\n    const win = getWindow(domElement);\n    const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n    let currentWin = win;\n    let currentIFrame = getFrameElement(currentWin);\n    while (currentIFrame && offsetParent && offsetWin !== currentWin) {\n      const iframeScale = getScale(currentIFrame);\n      const iframeRect = currentIFrame.getBoundingClientRect();\n      const css = getComputedStyle$1(currentIFrame);\n      const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n      const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n      x *= iframeScale.x;\n      y *= iframeScale.y;\n      width *= iframeScale.x;\n      height *= iframeScale.y;\n      x += left;\n      y += top;\n      currentWin = getWindow(currentIFrame);\n      currentIFrame = getFrameElement(currentWin);\n    }\n  }\n  return rectToClientRect({\n    width,\n    height,\n    x,\n    y\n  });\n}\n\n// If <html> has a CSS width greater than the viewport, then this will be\n// incorrect for RTL.\nfunction getWindowScrollBarX(element, rect) {\n  const leftScroll = getNodeScroll(element).scrollLeft;\n  if (!rect) {\n    return getBoundingClientRect(getDocumentElement(element)).left + leftScroll;\n  }\n  return rect.left + leftScroll;\n}\n\nfunction getHTMLOffset(documentElement, scroll) {\n  const htmlRect = documentElement.getBoundingClientRect();\n  const x = htmlRect.left + scroll.scrollLeft - getWindowScrollBarX(documentElement, htmlRect);\n  const y = htmlRect.top + scroll.scrollTop;\n  return {\n    x,\n    y\n  };\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n  let {\n    elements,\n    rect,\n    offsetParent,\n    strategy\n  } = _ref;\n  const isFixed = strategy === 'fixed';\n  const documentElement = getDocumentElement(offsetParent);\n  const topLayer = elements ? isTopLayer(elements.floating) : false;\n  if (offsetParent === documentElement || topLayer && isFixed) {\n    return rect;\n  }\n  let scroll = {\n    scrollLeft: 0,\n    scrollTop: 0\n  };\n  let scale = createCoords(1);\n  const offsets = createCoords(0);\n  const isOffsetParentAnElement = isHTMLElement(offsetParent);\n  if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n    if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n      scroll = getNodeScroll(offsetParent);\n    }\n    if (isOffsetParentAnElement) {\n      const offsetRect = getBoundingClientRect(offsetParent);\n      scale = getScale(offsetParent);\n      offsets.x = offsetRect.x + offsetParent.clientLeft;\n      offsets.y = offsetRect.y + offsetParent.clientTop;\n    }\n  }\n  const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n  return {\n    width: rect.width * scale.x,\n    height: rect.height * scale.y,\n    x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x,\n    y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y\n  };\n}\n\nfunction getClientRects(element) {\n  return Array.from(element.getClientRects());\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n  const html = getDocumentElement(element);\n  const scroll = getNodeScroll(element);\n  const body = element.ownerDocument.body;\n  const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n  const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n  let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n  const y = -scroll.scrollTop;\n  if (getComputedStyle$1(body).direction === 'rtl') {\n    x += max(html.clientWidth, body.clientWidth) - width;\n  }\n  return {\n    width,\n    height,\n    x,\n    y\n  };\n}\n\n// Safety check: ensure the scrollbar space is reasonable in case this\n// calculation is affected by unusual styles.\n// Most scrollbars leave 15-18px of space.\nconst SCROLLBAR_MAX = 25;\nfunction getViewportRect(element, strategy) {\n  const win = getWindow(element);\n  const html = getDocumentElement(element);\n  const visualViewport = win.visualViewport;\n  let width = html.clientWidth;\n  let height = html.clientHeight;\n  let x = 0;\n  let y = 0;\n  if (visualViewport) {\n    width = visualViewport.width;\n    height = visualViewport.height;\n    const visualViewportBased = isWebKit();\n    if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n      x = visualViewport.offsetLeft;\n      y = visualViewport.offsetTop;\n    }\n  }\n  const windowScrollbarX = getWindowScrollBarX(html);\n  // <html> `overflow: hidden` + `scrollbar-gutter: stable` reduces the\n  // visual width of the <html> but this is not considered in the size\n  // of `html.clientWidth`.\n  if (windowScrollbarX <= 0) {\n    const doc = html.ownerDocument;\n    const body = doc.body;\n    const bodyStyles = getComputedStyle(body);\n    const bodyMarginInline = doc.compatMode === 'CSS1Compat' ? parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight) || 0 : 0;\n    const clippingStableScrollbarWidth = Math.abs(html.clientWidth - body.clientWidth - bodyMarginInline);\n    if (clippingStableScrollbarWidth <= SCROLLBAR_MAX) {\n      width -= clippingStableScrollbarWidth;\n    }\n  } else if (windowScrollbarX <= SCROLLBAR_MAX) {\n    // If the <body> scrollbar is on the left, the width needs to be extended\n    // by the scrollbar amount so there isn't extra space on the right.\n    width += windowScrollbarX;\n  }\n  return {\n    width,\n    height,\n    x,\n    y\n  };\n}\n\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n  const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n  const top = clientRect.top + element.clientTop;\n  const left = clientRect.left + element.clientLeft;\n  const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n  const width = element.clientWidth * scale.x;\n  const height = element.clientHeight * scale.y;\n  const x = left * scale.x;\n  const y = top * scale.y;\n  return {\n    width,\n    height,\n    x,\n    y\n  };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n  let rect;\n  if (clippingAncestor === 'viewport') {\n    rect = getViewportRect(element, strategy);\n  } else if (clippingAncestor === 'document') {\n    rect = getDocumentRect(getDocumentElement(element));\n  } else if (isElement(clippingAncestor)) {\n    rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n  } else {\n    const visualOffsets = getVisualOffsets(element);\n    rect = {\n      x: clippingAncestor.x - visualOffsets.x,\n      y: clippingAncestor.y - visualOffsets.y,\n      width: clippingAncestor.width,\n      height: clippingAncestor.height\n    };\n  }\n  return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n  const parentNode = getParentNode(element);\n  if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n    return false;\n  }\n  return getComputedStyle$1(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n  const cachedResult = cache.get(element);\n  if (cachedResult) {\n    return cachedResult;\n  }\n  let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n  let currentContainingBlockComputedStyle = null;\n  const elementIsFixed = getComputedStyle$1(element).position === 'fixed';\n  let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n  // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n  while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n    const computedStyle = getComputedStyle$1(currentNode);\n    const currentNodeIsContaining = isContainingBlock(currentNode);\n    if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n      currentContainingBlockComputedStyle = null;\n    }\n    const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && (currentContainingBlockComputedStyle.position === 'absolute' || currentContainingBlockComputedStyle.position === 'fixed') || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n    if (shouldDropCurrentNode) {\n      // Drop non-containing blocks.\n      result = result.filter(ancestor => ancestor !== currentNode);\n    } else {\n      // Record last containing block for next iteration.\n      currentContainingBlockComputedStyle = computedStyle;\n    }\n    currentNode = getParentNode(currentNode);\n  }\n  cache.set(element, result);\n  return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n  let {\n    element,\n    boundary,\n    rootBoundary,\n    strategy\n  } = _ref;\n  const elementClippingAncestors = boundary === 'clippingAncestors' ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);\n  const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n  const firstRect = getClientRectFromClippingAncestor(element, clippingAncestors[0], strategy);\n  let top = firstRect.top;\n  let right = firstRect.right;\n  let bottom = firstRect.bottom;\n  let left = firstRect.left;\n  for (let i = 1; i < clippingAncestors.length; i++) {\n    const rect = getClientRectFromClippingAncestor(element, clippingAncestors[i], strategy);\n    top = max(rect.top, top);\n    right = min(rect.right, right);\n    bottom = min(rect.bottom, bottom);\n    left = max(rect.left, left);\n  }\n  return {\n    width: right - left,\n    height: bottom - top,\n    x: left,\n    y: top\n  };\n}\n\nfunction getDimensions(element) {\n  const {\n    width,\n    height\n  } = getCssDimensions(element);\n  return {\n    width,\n    height\n  };\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n  const isOffsetParentAnElement = isHTMLElement(offsetParent);\n  const documentElement = getDocumentElement(offsetParent);\n  const isFixed = strategy === 'fixed';\n  const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n  let scroll = {\n    scrollLeft: 0,\n    scrollTop: 0\n  };\n  const offsets = createCoords(0);\n\n  // If the <body> scrollbar appears on the left (e.g. RTL systems). Use\n  // Firefox with layout.scrollbar.side = 3 in about:config to test this.\n  function setLeftRTLScrollbarOffset() {\n    offsets.x = getWindowScrollBarX(documentElement);\n  }\n  if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n    if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n      scroll = getNodeScroll(offsetParent);\n    }\n    if (isOffsetParentAnElement) {\n      const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n      offsets.x = offsetRect.x + offsetParent.clientLeft;\n      offsets.y = offsetRect.y + offsetParent.clientTop;\n    } else if (documentElement) {\n      setLeftRTLScrollbarOffset();\n    }\n  }\n  if (isFixed && !isOffsetParentAnElement && documentElement) {\n    setLeftRTLScrollbarOffset();\n  }\n  const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n  const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;\n  const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;\n  return {\n    x,\n    y,\n    width: rect.width,\n    height: rect.height\n  };\n}\n\nfunction isStaticPositioned(element) {\n  return getComputedStyle$1(element).position === 'static';\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n  if (!isHTMLElement(element) || getComputedStyle$1(element).position === 'fixed') {\n    return null;\n  }\n  if (polyfill) {\n    return polyfill(element);\n  }\n  let rawOffsetParent = element.offsetParent;\n\n  // Firefox returns the <html> element as the offsetParent if it's non-static,\n  // while Chrome and Safari return the <body> element. The <body> element must\n  // be used to perform the correct calculations even if the <html> element is\n  // non-static.\n  if (getDocumentElement(element) === rawOffsetParent) {\n    rawOffsetParent = rawOffsetParent.ownerDocument.body;\n  }\n  return rawOffsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n  const win = getWindow(element);\n  if (isTopLayer(element)) {\n    return win;\n  }\n  if (!isHTMLElement(element)) {\n    let svgOffsetParent = getParentNode(element);\n    while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {\n      if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {\n        return svgOffsetParent;\n      }\n      svgOffsetParent = getParentNode(svgOffsetParent);\n    }\n    return win;\n  }\n  let offsetParent = getTrueOffsetParent(element, polyfill);\n  while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {\n    offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n  }\n  if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {\n    return win;\n  }\n  return offsetParent || getContainingBlock(element) || win;\n}\n\nconst getElementRects = async function (data) {\n  const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n  const getDimensionsFn = this.getDimensions;\n  const floatingDimensions = await getDimensionsFn(data.floating);\n  return {\n    reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\n    floating: {\n      x: 0,\n      y: 0,\n      width: floatingDimensions.width,\n      height: floatingDimensions.height\n    }\n  };\n};\n\nfunction isRTL(element) {\n  return getComputedStyle$1(element).direction === 'rtl';\n}\n\nconst platform = {\n  convertOffsetParentRelativeRectToViewportRelativeRect,\n  getDocumentElement,\n  getClippingRect,\n  getOffsetParent,\n  getElementRects,\n  getClientRects,\n  getDimensions,\n  getScale,\n  isElement,\n  isRTL\n};\n\nfunction rectsAreEqual(a, b) {\n  return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;\n}\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n  let io = null;\n  let timeoutId;\n  const root = getDocumentElement(element);\n  function cleanup() {\n    var _io;\n    clearTimeout(timeoutId);\n    (_io = io) == null || _io.disconnect();\n    io = null;\n  }\n  function refresh(skip, threshold) {\n    if (skip === void 0) {\n      skip = false;\n    }\n    if (threshold === void 0) {\n      threshold = 1;\n    }\n    cleanup();\n    const elementRectForRootMargin = element.getBoundingClientRect();\n    const {\n      left,\n      top,\n      width,\n      height\n    } = elementRectForRootMargin;\n    if (!skip) {\n      onMove();\n    }\n    if (!width || !height) {\n      return;\n    }\n    const insetTop = floor(top);\n    const insetRight = floor(root.clientWidth - (left + width));\n    const insetBottom = floor(root.clientHeight - (top + height));\n    const insetLeft = floor(left);\n    const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n    const options = {\n      rootMargin,\n      threshold: max(0, min(1, threshold)) || 1\n    };\n    let isFirstUpdate = true;\n    function handleObserve(entries) {\n      const ratio = entries[0].intersectionRatio;\n      if (ratio !== threshold) {\n        if (!isFirstUpdate) {\n          return refresh();\n        }\n        if (!ratio) {\n          // If the reference is clipped, the ratio is 0. Throttle the refresh\n          // to prevent an infinite loop of updates.\n          timeoutId = setTimeout(() => {\n            refresh(false, 1e-7);\n          }, 1000);\n        } else {\n          refresh(false, ratio);\n        }\n      }\n      if (ratio === 1 && !rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {\n        // It's possible that even though the ratio is reported as 1, the\n        // element is not actually fully within the IntersectionObserver's root\n        // area anymore. This can happen under performance constraints. This may\n        // be a bug in the browser's IntersectionObserver implementation. To\n        // work around this, we compare the element's bounding rect now with\n        // what it was at the time we created the IntersectionObserver. If they\n        // are not equal then the element moved, so we refresh.\n        refresh();\n      }\n      isFirstUpdate = false;\n    }\n\n    // Older browsers don't support a `document` as the root and will throw an\n    // error.\n    try {\n      io = new IntersectionObserver(handleObserve, {\n        ...options,\n        // Handle <iframe>s\n        root: root.ownerDocument\n      });\n    } catch (_e) {\n      io = new IntersectionObserver(handleObserve, options);\n    }\n    io.observe(element);\n  }\n  refresh(true);\n  return cleanup;\n}\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n  if (options === void 0) {\n    options = {};\n  }\n  const {\n    ancestorScroll = true,\n    ancestorResize = true,\n    elementResize = typeof ResizeObserver === 'function',\n    layoutShift = typeof IntersectionObserver === 'function',\n    animationFrame = false\n  } = options;\n  const referenceEl = unwrapElement(reference);\n  const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...(floating ? getOverflowAncestors(floating) : [])] : [];\n  ancestors.forEach(ancestor => {\n    ancestorScroll && ancestor.addEventListener('scroll', update, {\n      passive: true\n    });\n    ancestorResize && ancestor.addEventListener('resize', update);\n  });\n  const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n  let reobserveFrame = -1;\n  let resizeObserver = null;\n  if (elementResize) {\n    resizeObserver = new ResizeObserver(_ref => {\n      let [firstEntry] = _ref;\n      if (firstEntry && firstEntry.target === referenceEl && resizeObserver && floating) {\n        // Prevent update loops when using the `size` middleware.\n        // https://github.com/floating-ui/floating-ui/issues/1740\n        resizeObserver.unobserve(floating);\n        cancelAnimationFrame(reobserveFrame);\n        reobserveFrame = requestAnimationFrame(() => {\n          var _resizeObserver;\n          (_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating);\n        });\n      }\n      update();\n    });\n    if (referenceEl && !animationFrame) {\n      resizeObserver.observe(referenceEl);\n    }\n    if (floating) {\n      resizeObserver.observe(floating);\n    }\n  }\n  let frameId;\n  let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n  if (animationFrame) {\n    frameLoop();\n  }\n  function frameLoop() {\n    const nextRefRect = getBoundingClientRect(reference);\n    if (prevRefRect && !rectsAreEqual(prevRefRect, nextRefRect)) {\n      update();\n    }\n    prevRefRect = nextRefRect;\n    frameId = requestAnimationFrame(frameLoop);\n  }\n  update();\n  return () => {\n    var _resizeObserver2;\n    ancestors.forEach(ancestor => {\n      ancestorScroll && ancestor.removeEventListener('scroll', update);\n      ancestorResize && ancestor.removeEventListener('resize', update);\n    });\n    cleanupIo == null || cleanupIo();\n    (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();\n    resizeObserver = null;\n    if (animationFrame) {\n      cancelAnimationFrame(frameId);\n    }\n  };\n}\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nconst detectOverflow = detectOverflow$1;\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = offset$1;\n\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = autoPlacement$1;\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = shift$1;\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = flip$1;\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = size$1;\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = hide$1;\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = arrow$1;\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = inline$1;\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = limitShift$1;\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n */\nconst computePosition = (reference, floating, options) => {\n  // This caches the expensive `getClippingElementAncestors` function so that\n  // multiple lifecycle resets re-use the same result. It only lives for a\n  // single call. If other functions become expensive, we can add them as well.\n  const cache = new Map();\n  const mergedOptions = {\n    platform,\n    ...options\n  };\n  const platformWithCache = {\n    ...mergedOptions.platform,\n    _c: cache\n  };\n  return computePosition$1(reference, floating, {\n    ...mergedOptions,\n    platform: platformWithCache\n  });\n};\n\nexport { arrow, autoPlacement, autoUpdate, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, platform, shift, size };\n","import { computePosition, arrow as arrow$2, autoPlacement as autoPlacement$1, flip as flip$1, hide as hide$1, inline as inline$1, limitShift as limitShift$1, offset as offset$1, shift as shift$1, size as size$1 } from '@floating-ui/dom';\nexport { autoUpdate, computePosition, detectOverflow, getOverflowAncestors, platform } from '@floating-ui/dom';\nimport * as React from 'react';\nimport { useLayoutEffect } from 'react';\nimport * as ReactDOM from 'react-dom';\n\nvar isClient = typeof document !== 'undefined';\n\nvar noop = function noop() {};\nvar index = isClient ? useLayoutEffect : noop;\n\n// Fork of `fast-deep-equal` that only does the comparisons we need and compares\n// functions\nfunction deepEqual(a, b) {\n  if (a === b) {\n    return true;\n  }\n  if (typeof a !== typeof b) {\n    return false;\n  }\n  if (typeof a === 'function' && a.toString() === b.toString()) {\n    return true;\n  }\n  let length;\n  let i;\n  let keys;\n  if (a && b && typeof a === 'object') {\n    if (Array.isArray(a)) {\n      length = a.length;\n      if (length !== b.length) return false;\n      for (i = length; i-- !== 0;) {\n        if (!deepEqual(a[i], b[i])) {\n          return false;\n        }\n      }\n      return true;\n    }\n    keys = Object.keys(a);\n    length = keys.length;\n    if (length !== Object.keys(b).length) {\n      return false;\n    }\n    for (i = length; i-- !== 0;) {\n      if (!{}.hasOwnProperty.call(b, keys[i])) {\n        return false;\n      }\n    }\n    for (i = length; i-- !== 0;) {\n      const key = keys[i];\n      if (key === '_owner' && a.$$typeof) {\n        continue;\n      }\n      if (!deepEqual(a[key], b[key])) {\n        return false;\n      }\n    }\n    return true;\n  }\n  return a !== a && b !== b;\n}\n\nfunction getDPR(element) {\n  if (typeof window === 'undefined') {\n    return 1;\n  }\n  const win = element.ownerDocument.defaultView || window;\n  return win.devicePixelRatio || 1;\n}\n\nfunction roundByDPR(element, value) {\n  const dpr = getDPR(element);\n  return Math.round(value * dpr) / dpr;\n}\n\nfunction useLatestRef(value) {\n  const ref = React.useRef(value);\n  index(() => {\n    ref.current = value;\n  });\n  return ref;\n}\n\n/**\n * Provides data to position a floating element.\n * @see https://floating-ui.com/docs/useFloating\n */\nfunction useFloating(options) {\n  if (options === void 0) {\n    options = {};\n  }\n  const {\n    placement = 'bottom',\n    strategy = 'absolute',\n    middleware = [],\n    platform,\n    elements: {\n      reference: externalReference,\n      floating: externalFloating\n    } = {},\n    transform = true,\n    whileElementsMounted,\n    open\n  } = options;\n  const [data, setData] = React.useState({\n    x: 0,\n    y: 0,\n    strategy,\n    placement,\n    middlewareData: {},\n    isPositioned: false\n  });\n  const [latestMiddleware, setLatestMiddleware] = React.useState(middleware);\n  if (!deepEqual(latestMiddleware, middleware)) {\n    setLatestMiddleware(middleware);\n  }\n  const [_reference, _setReference] = React.useState(null);\n  const [_floating, _setFloating] = React.useState(null);\n  const setReference = React.useCallback(node => {\n    if (node !== referenceRef.current) {\n      referenceRef.current = node;\n      _setReference(node);\n    }\n  }, []);\n  const setFloating = React.useCallback(node => {\n    if (node !== floatingRef.current) {\n      floatingRef.current = node;\n      _setFloating(node);\n    }\n  }, []);\n  const referenceEl = externalReference || _reference;\n  const floatingEl = externalFloating || _floating;\n  const referenceRef = React.useRef(null);\n  const floatingRef = React.useRef(null);\n  const dataRef = React.useRef(data);\n  const hasWhileElementsMounted = whileElementsMounted != null;\n  const whileElementsMountedRef = useLatestRef(whileElementsMounted);\n  const platformRef = useLatestRef(platform);\n  const openRef = useLatestRef(open);\n  const update = React.useCallback(() => {\n    if (!referenceRef.current || !floatingRef.current) {\n      return;\n    }\n    const config = {\n      placement,\n      strategy,\n      middleware: latestMiddleware\n    };\n    if (platformRef.current) {\n      config.platform = platformRef.current;\n    }\n    computePosition(referenceRef.current, floatingRef.current, config).then(data => {\n      const fullData = {\n        ...data,\n        // The floating element's position may be recomputed while it's closed\n        // but still mounted (such as when transitioning out). To ensure\n        // `isPositioned` will be `false` initially on the next open, avoid\n        // setting it to `true` when `open === false` (must be specified).\n        isPositioned: openRef.current !== false\n      };\n      if (isMountedRef.current && !deepEqual(dataRef.current, fullData)) {\n        dataRef.current = fullData;\n        ReactDOM.flushSync(() => {\n          setData(fullData);\n        });\n      }\n    });\n  }, [latestMiddleware, placement, strategy, platformRef, openRef]);\n  index(() => {\n    if (open === false && dataRef.current.isPositioned) {\n      dataRef.current.isPositioned = false;\n      setData(data => ({\n        ...data,\n        isPositioned: false\n      }));\n    }\n  }, [open]);\n  const isMountedRef = React.useRef(false);\n  index(() => {\n    isMountedRef.current = true;\n    return () => {\n      isMountedRef.current = false;\n    };\n  }, []);\n  index(() => {\n    if (referenceEl) referenceRef.current = referenceEl;\n    if (floatingEl) floatingRef.current = floatingEl;\n    if (referenceEl && floatingEl) {\n      if (whileElementsMountedRef.current) {\n        return whileElementsMountedRef.current(referenceEl, floatingEl, update);\n      }\n      update();\n    }\n  }, [referenceEl, floatingEl, update, whileElementsMountedRef, hasWhileElementsMounted]);\n  const refs = React.useMemo(() => ({\n    reference: referenceRef,\n    floating: floatingRef,\n    setReference,\n    setFloating\n  }), [setReference, setFloating]);\n  const elements = React.useMemo(() => ({\n    reference: referenceEl,\n    floating: floatingEl\n  }), [referenceEl, floatingEl]);\n  const floatingStyles = React.useMemo(() => {\n    const initialStyles = {\n      position: strategy,\n      left: 0,\n      top: 0\n    };\n    if (!elements.floating) {\n      return initialStyles;\n    }\n    const x = roundByDPR(elements.floating, data.x);\n    const y = roundByDPR(elements.floating, data.y);\n    if (transform) {\n      return {\n        ...initialStyles,\n        transform: \"translate(\" + x + \"px, \" + y + \"px)\",\n        ...(getDPR(elements.floating) >= 1.5 && {\n          willChange: 'transform'\n        })\n      };\n    }\n    return {\n      position: strategy,\n      left: x,\n      top: y\n    };\n  }, [strategy, transform, elements.floating, data.x, data.y]);\n  return React.useMemo(() => ({\n    ...data,\n    update,\n    refs,\n    elements,\n    floatingStyles\n  }), [data, update, refs, elements, floatingStyles]);\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * This wraps the core `arrow` middleware to allow React refs as the element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow$1 = options => {\n  function isRef(value) {\n    return {}.hasOwnProperty.call(value, 'current');\n  }\n  return {\n    name: 'arrow',\n    options,\n    fn(state) {\n      const {\n        element,\n        padding\n      } = typeof options === 'function' ? options(state) : options;\n      if (element && isRef(element)) {\n        if (element.current != null) {\n          return arrow$2({\n            element: element.current,\n            padding\n          }).fn(state);\n        }\n        return {};\n      }\n      if (element) {\n        return arrow$2({\n          element,\n          padding\n        }).fn(state);\n      }\n      return {};\n    }\n  };\n};\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = (options, deps) => {\n  const result = offset$1(options);\n  return {\n    name: result.name,\n    fn: result.fn,\n    options: [options, deps]\n  };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = (options, deps) => {\n  const result = shift$1(options);\n  return {\n    name: result.name,\n    fn: result.fn,\n    options: [options, deps]\n  };\n};\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = (options, deps) => {\n  const result = limitShift$1(options);\n  return {\n    fn: result.fn,\n    options: [options, deps]\n  };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = (options, deps) => {\n  const result = flip$1(options);\n  return {\n    name: result.name,\n    fn: result.fn,\n    options: [options, deps]\n  };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = (options, deps) => {\n  const result = size$1(options);\n  return {\n    name: result.name,\n    fn: result.fn,\n    options: [options, deps]\n  };\n};\n\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = (options, deps) => {\n  const result = autoPlacement$1(options);\n  return {\n    name: result.name,\n    fn: result.fn,\n    options: [options, deps]\n  };\n};\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = (options, deps) => {\n  const result = hide$1(options);\n  return {\n    name: result.name,\n    fn: result.fn,\n    options: [options, deps]\n  };\n};\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = (options, deps) => {\n  const result = inline$1(options);\n  return {\n    name: result.name,\n    fn: result.fn,\n    options: [options, deps]\n  };\n};\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * This wraps the core `arrow` middleware to allow React refs as the element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = (options, deps) => {\n  const result = arrow$1(options);\n  return {\n    name: result.name,\n    fn: result.fn,\n    options: [options, deps]\n  };\n};\n\nexport { arrow, autoPlacement, flip, hide, inline, limitShift, offset, shift, size, useFloating };\n","// src/arrow.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NAME = \"Arrow\";\nvar Arrow = React.forwardRef((props, forwardedRef) => {\n  const { children, width = 10, height = 5, ...arrowProps } = props;\n  return /* @__PURE__ */ jsx(\n    Primitive.svg,\n    {\n      ...arrowProps,\n      ref: forwardedRef,\n      width,\n      height,\n      viewBox: \"0 0 30 10\",\n      preserveAspectRatio: \"none\",\n      children: props.asChild ? children : /* @__PURE__ */ jsx(\"polygon\", { points: \"0,0 30,0 15,10\" })\n    }\n  );\n});\nArrow.displayName = NAME;\nvar Root = Arrow;\nexport {\n  Arrow,\n  Root\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-size/src/use-size.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nfunction useSize(element) {\n  const [size, setSize] = React.useState(void 0);\n  useLayoutEffect(() => {\n    if (element) {\n      setSize({ width: element.offsetWidth, height: element.offsetHeight });\n      const resizeObserver = new ResizeObserver((entries) => {\n        if (!Array.isArray(entries)) {\n          return;\n        }\n        if (!entries.length) {\n          return;\n        }\n        const entry = entries[0];\n        let width;\n        let height;\n        if (\"borderBoxSize\" in entry) {\n          const borderSizeEntry = entry[\"borderBoxSize\"];\n          const borderSize = Array.isArray(borderSizeEntry) ? borderSizeEntry[0] : borderSizeEntry;\n          width = borderSize[\"inlineSize\"];\n          height = borderSize[\"blockSize\"];\n        } else {\n          width = element.offsetWidth;\n          height = element.offsetHeight;\n        }\n        setSize({ width, height });\n      });\n      resizeObserver.observe(element, { box: \"border-box\" });\n      return () => resizeObserver.unobserve(element);\n    } else {\n      setSize(void 0);\n    }\n  }, [element]);\n  return size;\n}\nexport {\n  useSize\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/popper.tsx\nimport * as React from \"react\";\nimport {\n  useFloating,\n  autoUpdate,\n  offset,\n  shift,\n  limitShift,\n  hide,\n  arrow as floatingUIarrow,\n  flip,\n  size\n} from \"@floating-ui/react-dom\";\nimport * as ArrowPrimitive from \"@radix-ui/react-arrow\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { jsx } from \"react/jsx-runtime\";\nvar SIDE_OPTIONS = [\"top\", \"right\", \"bottom\", \"left\"];\nvar ALIGN_OPTIONS = [\"start\", \"center\", \"end\"];\nvar POPPER_NAME = \"Popper\";\nvar [createPopperContext, createPopperScope] = createContextScope(POPPER_NAME);\nvar [PopperProvider, usePopperContext] = createPopperContext(POPPER_NAME);\nvar Popper = (props) => {\n  const { __scopePopper, children } = props;\n  const [anchor, setAnchor] = React.useState(null);\n  return /* @__PURE__ */ jsx(PopperProvider, { scope: __scopePopper, anchor, onAnchorChange: setAnchor, children });\n};\nPopper.displayName = POPPER_NAME;\nvar ANCHOR_NAME = \"PopperAnchor\";\nvar PopperAnchor = React.forwardRef(\n  (props, forwardedRef) => {\n    const { __scopePopper, virtualRef, ...anchorProps } = props;\n    const context = usePopperContext(ANCHOR_NAME, __scopePopper);\n    const ref = React.useRef(null);\n    const composedRefs = useComposedRefs(forwardedRef, ref);\n    const anchorRef = React.useRef(null);\n    React.useEffect(() => {\n      const previousAnchor = anchorRef.current;\n      anchorRef.current = virtualRef?.current || ref.current;\n      if (previousAnchor !== anchorRef.current) {\n        context.onAnchorChange(anchorRef.current);\n      }\n    });\n    return virtualRef ? null : /* @__PURE__ */ jsx(Primitive.div, { ...anchorProps, ref: composedRefs });\n  }\n);\nPopperAnchor.displayName = ANCHOR_NAME;\nvar CONTENT_NAME = \"PopperContent\";\nvar [PopperContentProvider, useContentContext] = createPopperContext(CONTENT_NAME);\nvar PopperContent = React.forwardRef(\n  (props, forwardedRef) => {\n    const {\n      __scopePopper,\n      side = \"bottom\",\n      sideOffset = 0,\n      align = \"center\",\n      alignOffset = 0,\n      arrowPadding = 0,\n      avoidCollisions = true,\n      collisionBoundary = [],\n      collisionPadding: collisionPaddingProp = 0,\n      sticky = \"partial\",\n      hideWhenDetached = false,\n      updatePositionStrategy = \"optimized\",\n      onPlaced,\n      ...contentProps\n    } = props;\n    const context = usePopperContext(CONTENT_NAME, __scopePopper);\n    const [content, setContent] = React.useState(null);\n    const composedRefs = useComposedRefs(forwardedRef, (node) => setContent(node));\n    const [arrow, setArrow] = React.useState(null);\n    const arrowSize = useSize(arrow);\n    const arrowWidth = arrowSize?.width ?? 0;\n    const arrowHeight = arrowSize?.height ?? 0;\n    const desiredPlacement = side + (align !== \"center\" ? \"-\" + align : \"\");\n    const collisionPadding = typeof collisionPaddingProp === \"number\" ? collisionPaddingProp : { top: 0, right: 0, bottom: 0, left: 0, ...collisionPaddingProp };\n    const boundary = Array.isArray(collisionBoundary) ? collisionBoundary : [collisionBoundary];\n    const hasExplicitBoundaries = boundary.length > 0;\n    const detectOverflowOptions = {\n      padding: collisionPadding,\n      boundary: boundary.filter(isNotNull),\n      // with `strategy: 'fixed'`, this is the only way to get it to respect boundaries\n      altBoundary: hasExplicitBoundaries\n    };\n    const { refs, floatingStyles, placement, isPositioned, middlewareData } = useFloating({\n      // default to `fixed` strategy so users don't have to pick and we also avoid focus scroll issues\n      strategy: \"fixed\",\n      placement: desiredPlacement,\n      whileElementsMounted: (...args) => {\n        const cleanup = autoUpdate(...args, {\n          animationFrame: updatePositionStrategy === \"always\"\n        });\n        return cleanup;\n      },\n      elements: {\n        reference: context.anchor\n      },\n      middleware: [\n        offset({ mainAxis: sideOffset + arrowHeight, alignmentAxis: alignOffset }),\n        avoidCollisions && shift({\n          mainAxis: true,\n          crossAxis: false,\n          limiter: sticky === \"partial\" ? limitShift() : void 0,\n          ...detectOverflowOptions\n        }),\n        avoidCollisions && flip({ ...detectOverflowOptions }),\n        size({\n          ...detectOverflowOptions,\n          apply: ({ elements, rects, availableWidth, availableHeight }) => {\n            const { width: anchorWidth, height: anchorHeight } = rects.reference;\n            const contentStyle = elements.floating.style;\n            contentStyle.setProperty(\"--radix-popper-available-width\", `${availableWidth}px`);\n            contentStyle.setProperty(\"--radix-popper-available-height\", `${availableHeight}px`);\n            contentStyle.setProperty(\"--radix-popper-anchor-width\", `${anchorWidth}px`);\n            contentStyle.setProperty(\"--radix-popper-anchor-height\", `${anchorHeight}px`);\n          }\n        }),\n        arrow && floatingUIarrow({ element: arrow, padding: arrowPadding }),\n        transformOrigin({ arrowWidth, arrowHeight }),\n        hideWhenDetached && hide({ strategy: \"referenceHidden\", ...detectOverflowOptions })\n      ]\n    });\n    const [placedSide, placedAlign] = getSideAndAlignFromPlacement(placement);\n    const handlePlaced = useCallbackRef(onPlaced);\n    useLayoutEffect(() => {\n      if (isPositioned) {\n        handlePlaced?.();\n      }\n    }, [isPositioned, handlePlaced]);\n    const arrowX = middlewareData.arrow?.x;\n    const arrowY = middlewareData.arrow?.y;\n    const cannotCenterArrow = middlewareData.arrow?.centerOffset !== 0;\n    const [contentZIndex, setContentZIndex] = React.useState();\n    useLayoutEffect(() => {\n      if (content) setContentZIndex(window.getComputedStyle(content).zIndex);\n    }, [content]);\n    return /* @__PURE__ */ jsx(\n      \"div\",\n      {\n        ref: refs.setFloating,\n        \"data-radix-popper-content-wrapper\": \"\",\n        style: {\n          ...floatingStyles,\n          transform: isPositioned ? floatingStyles.transform : \"translate(0, -200%)\",\n          // keep off the page when measuring\n          minWidth: \"max-content\",\n          zIndex: contentZIndex,\n          [\"--radix-popper-transform-origin\"]: [\n            middlewareData.transformOrigin?.x,\n            middlewareData.transformOrigin?.y\n          ].join(\" \"),\n          // hide the content if using the hide middleware and should be hidden\n          // set visibility to hidden and disable pointer events so the UI behaves\n          // as if the PopperContent isn't there at all\n          ...middlewareData.hide?.referenceHidden && {\n            visibility: \"hidden\",\n            pointerEvents: \"none\"\n          }\n        },\n        dir: props.dir,\n        children: /* @__PURE__ */ jsx(\n          PopperContentProvider,\n          {\n            scope: __scopePopper,\n            placedSide,\n            onArrowChange: setArrow,\n            arrowX,\n            arrowY,\n            shouldHideArrow: cannotCenterArrow,\n            children: /* @__PURE__ */ jsx(\n              Primitive.div,\n              {\n                \"data-side\": placedSide,\n                \"data-align\": placedAlign,\n                ...contentProps,\n                ref: composedRefs,\n                style: {\n                  ...contentProps.style,\n                  // if the PopperContent hasn't been placed yet (not all measurements done)\n                  // we prevent animations so that users's animation don't kick in too early referring wrong sides\n                  animation: !isPositioned ? \"none\" : void 0\n                }\n              }\n            )\n          }\n        )\n      }\n    );\n  }\n);\nPopperContent.displayName = CONTENT_NAME;\nvar ARROW_NAME = \"PopperArrow\";\nvar OPPOSITE_SIDE = {\n  top: \"bottom\",\n  right: \"left\",\n  bottom: \"top\",\n  left: \"right\"\n};\nvar PopperArrow = React.forwardRef(function PopperArrow2(props, forwardedRef) {\n  const { __scopePopper, ...arrowProps } = props;\n  const contentContext = useContentContext(ARROW_NAME, __scopePopper);\n  const baseSide = OPPOSITE_SIDE[contentContext.placedSide];\n  return (\n    // we have to use an extra wrapper because `ResizeObserver` (used by `useSize`)\n    // doesn't report size as we'd expect on SVG elements.\n    // it reports their bounding box which is effectively the largest path inside the SVG.\n    /* @__PURE__ */ jsx(\n      \"span\",\n      {\n        ref: contentContext.onArrowChange,\n        style: {\n          position: \"absolute\",\n          left: contentContext.arrowX,\n          top: contentContext.arrowY,\n          [baseSide]: 0,\n          transformOrigin: {\n            top: \"\",\n            right: \"0 0\",\n            bottom: \"center 0\",\n            left: \"100% 0\"\n          }[contentContext.placedSide],\n          transform: {\n            top: \"translateY(100%)\",\n            right: \"translateY(50%) rotate(90deg) translateX(-50%)\",\n            bottom: `rotate(180deg)`,\n            left: \"translateY(50%) rotate(-90deg) translateX(50%)\"\n          }[contentContext.placedSide],\n          visibility: contentContext.shouldHideArrow ? \"hidden\" : void 0\n        },\n        children: /* @__PURE__ */ jsx(\n          ArrowPrimitive.Root,\n          {\n            ...arrowProps,\n            ref: forwardedRef,\n            style: {\n              ...arrowProps.style,\n              // ensures the element can be measured correctly (mostly for if SVG)\n              display: \"block\"\n            }\n          }\n        )\n      }\n    )\n  );\n});\nPopperArrow.displayName = ARROW_NAME;\nfunction isNotNull(value) {\n  return value !== null;\n}\nvar transformOrigin = (options) => ({\n  name: \"transformOrigin\",\n  options,\n  fn(data) {\n    const { placement, rects, middlewareData } = data;\n    const cannotCenterArrow = middlewareData.arrow?.centerOffset !== 0;\n    const isArrowHidden = cannotCenterArrow;\n    const arrowWidth = isArrowHidden ? 0 : options.arrowWidth;\n    const arrowHeight = isArrowHidden ? 0 : options.arrowHeight;\n    const [placedSide, placedAlign] = getSideAndAlignFromPlacement(placement);\n    const noArrowAlign = { start: \"0%\", center: \"50%\", end: \"100%\" }[placedAlign];\n    const arrowXCenter = (middlewareData.arrow?.x ?? 0) + arrowWidth / 2;\n    const arrowYCenter = (middlewareData.arrow?.y ?? 0) + arrowHeight / 2;\n    let x = \"\";\n    let y = \"\";\n    if (placedSide === \"bottom\") {\n      x = isArrowHidden ? noArrowAlign : `${arrowXCenter}px`;\n      y = `${-arrowHeight}px`;\n    } else if (placedSide === \"top\") {\n      x = isArrowHidden ? noArrowAlign : `${arrowXCenter}px`;\n      y = `${rects.floating.height + arrowHeight}px`;\n    } else if (placedSide === \"right\") {\n      x = `${-arrowHeight}px`;\n      y = isArrowHidden ? noArrowAlign : `${arrowYCenter}px`;\n    } else if (placedSide === \"left\") {\n      x = `${rects.floating.width + arrowHeight}px`;\n      y = isArrowHidden ? noArrowAlign : `${arrowYCenter}px`;\n    }\n    return { data: { x, y } };\n  }\n});\nfunction getSideAndAlignFromPlacement(placement) {\n  const [side, align = \"center\"] = placement.split(\"-\");\n  return [side, align];\n}\nvar Root2 = Popper;\nvar Anchor = PopperAnchor;\nvar Content = PopperContent;\nvar Arrow = PopperArrow;\nexport {\n  ALIGN_OPTIONS,\n  Anchor,\n  Arrow,\n  Content,\n  Popper,\n  PopperAnchor,\n  PopperArrow,\n  PopperContent,\n  Root2 as Root,\n  SIDE_OPTIONS,\n  createPopperScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/portal.tsx\nimport * as React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { jsx } from \"react/jsx-runtime\";\nvar PORTAL_NAME = \"Portal\";\nvar Portal = React.forwardRef((props, forwardedRef) => {\n  const { container: containerProp, ...portalProps } = props;\n  const [mounted, setMounted] = React.useState(false);\n  useLayoutEffect(() => setMounted(true), []);\n  const container = containerProp || mounted && globalThis?.document?.body;\n  return container ? ReactDOM.createPortal(/* @__PURE__ */ jsx(Primitive.div, { ...portalProps, ref: forwardedRef }), container) : null;\n});\nPortal.displayName = PORTAL_NAME;\nvar Root = Portal;\nexport {\n  Portal,\n  Root\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/presence.tsx\nimport * as React2 from \"react\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\n\n// src/use-state-machine.tsx\nimport * as React from \"react\";\nfunction useStateMachine(initialState, machine) {\n  return React.useReducer((state, event) => {\n    const nextState = machine[state][event];\n    return nextState ?? state;\n  }, initialState);\n}\n\n// src/presence.tsx\nvar Presence = (props) => {\n  const { present, children } = props;\n  const presence = usePresence(present);\n  const child = typeof children === \"function\" ? children({ present: presence.isPresent }) : React2.Children.only(children);\n  const ref = useComposedRefs(presence.ref, getElementRef(child));\n  const forceMount = typeof children === \"function\";\n  return forceMount || presence.isPresent ? React2.cloneElement(child, { ref }) : null;\n};\nPresence.displayName = \"Presence\";\nfunction usePresence(present) {\n  const [node, setNode] = React2.useState();\n  const stylesRef = React2.useRef(null);\n  const prevPresentRef = React2.useRef(present);\n  const prevAnimationNameRef = React2.useRef(\"none\");\n  const initialState = present ? \"mounted\" : \"unmounted\";\n  const [state, send] = useStateMachine(initialState, {\n    mounted: {\n      UNMOUNT: \"unmounted\",\n      ANIMATION_OUT: \"unmountSuspended\"\n    },\n    unmountSuspended: {\n      MOUNT: \"mounted\",\n      ANIMATION_END: \"unmounted\"\n    },\n    unmounted: {\n      MOUNT: \"mounted\"\n    }\n  });\n  React2.useEffect(() => {\n    const currentAnimationName = getAnimationName(stylesRef.current);\n    prevAnimationNameRef.current = state === \"mounted\" ? currentAnimationName : \"none\";\n  }, [state]);\n  useLayoutEffect(() => {\n    const styles = stylesRef.current;\n    const wasPresent = prevPresentRef.current;\n    const hasPresentChanged = wasPresent !== present;\n    if (hasPresentChanged) {\n      const prevAnimationName = prevAnimationNameRef.current;\n      const currentAnimationName = getAnimationName(styles);\n      if (present) {\n        send(\"MOUNT\");\n      } else if (currentAnimationName === \"none\" || styles?.display === \"none\") {\n        send(\"UNMOUNT\");\n      } else {\n        const isAnimating = prevAnimationName !== currentAnimationName;\n        if (wasPresent && isAnimating) {\n          send(\"ANIMATION_OUT\");\n        } else {\n          send(\"UNMOUNT\");\n        }\n      }\n      prevPresentRef.current = present;\n    }\n  }, [present, send]);\n  useLayoutEffect(() => {\n    if (node) {\n      let timeoutId;\n      const ownerWindow = node.ownerDocument.defaultView ?? window;\n      const handleAnimationEnd = (event) => {\n        const currentAnimationName = getAnimationName(stylesRef.current);\n        const isCurrentAnimation = currentAnimationName.includes(CSS.escape(event.animationName));\n        if (event.target === node && isCurrentAnimation) {\n          send(\"ANIMATION_END\");\n          if (!prevPresentRef.current) {\n            const currentFillMode = node.style.animationFillMode;\n            node.style.animationFillMode = \"forwards\";\n            timeoutId = ownerWindow.setTimeout(() => {\n              if (node.style.animationFillMode === \"forwards\") {\n                node.style.animationFillMode = currentFillMode;\n              }\n            });\n          }\n        }\n      };\n      const handleAnimationStart = (event) => {\n        if (event.target === node) {\n          prevAnimationNameRef.current = getAnimationName(stylesRef.current);\n        }\n      };\n      node.addEventListener(\"animationstart\", handleAnimationStart);\n      node.addEventListener(\"animationcancel\", handleAnimationEnd);\n      node.addEventListener(\"animationend\", handleAnimationEnd);\n      return () => {\n        ownerWindow.clearTimeout(timeoutId);\n        node.removeEventListener(\"animationstart\", handleAnimationStart);\n        node.removeEventListener(\"animationcancel\", handleAnimationEnd);\n        node.removeEventListener(\"animationend\", handleAnimationEnd);\n      };\n    } else {\n      send(\"ANIMATION_END\");\n    }\n  }, [node, send]);\n  return {\n    isPresent: [\"mounted\", \"unmountSuspended\"].includes(state),\n    ref: React2.useCallback((node2) => {\n      stylesRef.current = node2 ? getComputedStyle(node2) : null;\n      setNode(node2);\n    }, [])\n  };\n}\nfunction getAnimationName(styles) {\n  return styles?.animationName || \"none\";\n}\nfunction getElementRef(element) {\n  let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n  let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n  if (mayWarn) {\n    return element.ref;\n  }\n  getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n  mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n  if (mayWarn) {\n    return element.props.ref;\n  }\n  return element.props.ref || element.ref;\n}\nvar Root = Presence;\nexport {\n  Presence,\n  Root\n};\n//# sourceMappingURL=index.mjs.map\n","// src/use-controllable-state.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nvar useInsertionEffect = React[\" useInsertionEffect \".trim().toString()] || useLayoutEffect;\nfunction useControllableState({\n  prop,\n  defaultProp,\n  onChange = () => {\n  },\n  caller\n}) {\n  const [uncontrolledProp, setUncontrolledProp, onChangeRef] = useUncontrolledState({\n    defaultProp,\n    onChange\n  });\n  const isControlled = prop !== void 0;\n  const value = isControlled ? prop : uncontrolledProp;\n  if (true) {\n    const isControlledRef = React.useRef(prop !== void 0);\n    React.useEffect(() => {\n      const wasControlled = isControlledRef.current;\n      if (wasControlled !== isControlled) {\n        const from = wasControlled ? \"controlled\" : \"uncontrolled\";\n        const to = isControlled ? \"controlled\" : \"uncontrolled\";\n        console.warn(\n          `${caller} is changing from ${from} to ${to}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`\n        );\n      }\n      isControlledRef.current = isControlled;\n    }, [isControlled, caller]);\n  }\n  const setValue = React.useCallback(\n    (nextValue) => {\n      if (isControlled) {\n        const value2 = isFunction(nextValue) ? nextValue(prop) : nextValue;\n        if (value2 !== prop) {\n          onChangeRef.current?.(value2);\n        }\n      } else {\n        setUncontrolledProp(nextValue);\n      }\n    },\n    [isControlled, prop, setUncontrolledProp, onChangeRef]\n  );\n  return [value, setValue];\n}\nfunction useUncontrolledState({\n  defaultProp,\n  onChange\n}) {\n  const [value, setValue] = React.useState(defaultProp);\n  const prevValueRef = React.useRef(value);\n  const onChangeRef = React.useRef(onChange);\n  useInsertionEffect(() => {\n    onChangeRef.current = onChange;\n  }, [onChange]);\n  React.useEffect(() => {\n    if (prevValueRef.current !== value) {\n      onChangeRef.current?.(value);\n      prevValueRef.current = value;\n    }\n  }, [value, prevValueRef]);\n  return [value, setValue, onChangeRef];\n}\nfunction isFunction(value) {\n  return typeof value === \"function\";\n}\n\n// src/use-controllable-state-reducer.tsx\nimport * as React2 from \"react\";\nimport { useEffectEvent } from \"@radix-ui/react-use-effect-event\";\nvar SYNC_STATE = Symbol(\"RADIX:SYNC_STATE\");\nfunction useControllableStateReducer(reducer, userArgs, initialArg, init) {\n  const { prop: controlledState, defaultProp, onChange: onChangeProp, caller } = userArgs;\n  const isControlled = controlledState !== void 0;\n  const onChange = useEffectEvent(onChangeProp);\n  if (true) {\n    const isControlledRef = React2.useRef(controlledState !== void 0);\n    React2.useEffect(() => {\n      const wasControlled = isControlledRef.current;\n      if (wasControlled !== isControlled) {\n        const from = wasControlled ? \"controlled\" : \"uncontrolled\";\n        const to = isControlled ? \"controlled\" : \"uncontrolled\";\n        console.warn(\n          `${caller} is changing from ${from} to ${to}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`\n        );\n      }\n      isControlledRef.current = isControlled;\n    }, [isControlled, caller]);\n  }\n  const args = [{ ...initialArg, state: defaultProp }];\n  if (init) {\n    args.push(init);\n  }\n  const [internalState, dispatch] = React2.useReducer(\n    (state2, action) => {\n      if (action.type === SYNC_STATE) {\n        return { ...state2, state: action.state };\n      }\n      const next = reducer(state2, action);\n      if (isControlled && !Object.is(next.state, state2.state)) {\n        onChange(next.state);\n      }\n      return next;\n    },\n    ...args\n  );\n  const uncontrolledState = internalState.state;\n  const prevValueRef = React2.useRef(uncontrolledState);\n  React2.useEffect(() => {\n    if (prevValueRef.current !== uncontrolledState) {\n      prevValueRef.current = uncontrolledState;\n      if (!isControlled) {\n        onChange(uncontrolledState);\n      }\n    }\n  }, [onChange, uncontrolledState, prevValueRef, isControlled]);\n  const state = React2.useMemo(() => {\n    const isControlled2 = controlledState !== void 0;\n    if (isControlled2) {\n      return { ...internalState, state: controlledState };\n    }\n    return internalState;\n  }, [internalState, controlledState]);\n  React2.useEffect(() => {\n    if (isControlled && !Object.is(controlledState, internalState.state)) {\n      dispatch({ type: SYNC_STATE, state: controlledState });\n    }\n  }, [controlledState, internalState.state, isControlled]);\n  return [state, dispatch];\n}\nexport {\n  useControllableState,\n  useControllableStateReducer\n};\n//# sourceMappingURL=index.mjs.map\n","// src/visually-hidden.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar VISUALLY_HIDDEN_STYLES = Object.freeze({\n  // See: https://github.com/twbs/bootstrap/blob/main/scss/mixins/_visually-hidden.scss\n  position: \"absolute\",\n  border: 0,\n  width: 1,\n  height: 1,\n  padding: 0,\n  margin: -1,\n  overflow: \"hidden\",\n  clip: \"rect(0, 0, 0, 0)\",\n  whiteSpace: \"nowrap\",\n  wordWrap: \"normal\"\n});\nvar NAME = \"VisuallyHidden\";\nvar VisuallyHidden = React.forwardRef(\n  (props, forwardedRef) => {\n    return /* @__PURE__ */ jsx(\n      Primitive.span,\n      {\n        ...props,\n        ref: forwardedRef,\n        style: { ...VISUALLY_HIDDEN_STYLES, ...props.style }\n      }\n    );\n  }\n);\nVisuallyHidden.displayName = NAME;\nvar Root = VisuallyHidden;\nexport {\n  Root,\n  VISUALLY_HIDDEN_STYLES,\n  VisuallyHidden\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// src/tooltip.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { useId } from \"@radix-ui/react-id\";\nimport * as PopperPrimitive from \"@radix-ui/react-popper\";\nimport { createPopperScope } from \"@radix-ui/react-popper\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { createSlottable } from \"@radix-ui/react-slot\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport * as VisuallyHiddenPrimitive from \"@radix-ui/react-visually-hidden\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar [createTooltipContext, createTooltipScope] = createContextScope(\"Tooltip\", [\n  createPopperScope\n]);\nvar usePopperScope = createPopperScope();\nvar PROVIDER_NAME = \"TooltipProvider\";\nvar DEFAULT_DELAY_DURATION = 700;\nvar TOOLTIP_OPEN = \"tooltip.open\";\nvar [TooltipProviderContextProvider, useTooltipProviderContext] = createTooltipContext(PROVIDER_NAME);\nvar TooltipProvider = (props) => {\n  const {\n    __scopeTooltip,\n    delayDuration = DEFAULT_DELAY_DURATION,\n    skipDelayDuration = 300,\n    disableHoverableContent = false,\n    children\n  } = props;\n  const isOpenDelayedRef = React.useRef(true);\n  const isPointerInTransitRef = React.useRef(false);\n  const skipDelayTimerRef = React.useRef(0);\n  React.useEffect(() => {\n    const skipDelayTimer = skipDelayTimerRef.current;\n    return () => window.clearTimeout(skipDelayTimer);\n  }, []);\n  return /* @__PURE__ */ jsx(\n    TooltipProviderContextProvider,\n    {\n      scope: __scopeTooltip,\n      isOpenDelayedRef,\n      delayDuration,\n      onOpen: React.useCallback(() => {\n        window.clearTimeout(skipDelayTimerRef.current);\n        isOpenDelayedRef.current = false;\n      }, []),\n      onClose: React.useCallback(() => {\n        window.clearTimeout(skipDelayTimerRef.current);\n        skipDelayTimerRef.current = window.setTimeout(\n          () => isOpenDelayedRef.current = true,\n          skipDelayDuration\n        );\n      }, [skipDelayDuration]),\n      isPointerInTransitRef,\n      onPointerInTransitChange: React.useCallback((inTransit) => {\n        isPointerInTransitRef.current = inTransit;\n      }, []),\n      disableHoverableContent,\n      children\n    }\n  );\n};\nTooltipProvider.displayName = PROVIDER_NAME;\nvar TOOLTIP_NAME = \"Tooltip\";\nvar [TooltipContextProvider, useTooltipContext] = createTooltipContext(TOOLTIP_NAME);\nvar Tooltip = (props) => {\n  const {\n    __scopeTooltip,\n    children,\n    open: openProp,\n    defaultOpen,\n    onOpenChange,\n    disableHoverableContent: disableHoverableContentProp,\n    delayDuration: delayDurationProp\n  } = props;\n  const providerContext = useTooltipProviderContext(TOOLTIP_NAME, props.__scopeTooltip);\n  const popperScope = usePopperScope(__scopeTooltip);\n  const [trigger, setTrigger] = React.useState(null);\n  const contentId = useId();\n  const openTimerRef = React.useRef(0);\n  const disableHoverableContent = disableHoverableContentProp ?? providerContext.disableHoverableContent;\n  const delayDuration = delayDurationProp ?? providerContext.delayDuration;\n  const wasOpenDelayedRef = React.useRef(false);\n  const [open, setOpen] = useControllableState({\n    prop: openProp,\n    defaultProp: defaultOpen ?? false,\n    onChange: (open2) => {\n      if (open2) {\n        providerContext.onOpen();\n        document.dispatchEvent(new CustomEvent(TOOLTIP_OPEN));\n      } else {\n        providerContext.onClose();\n      }\n      onOpenChange?.(open2);\n    },\n    caller: TOOLTIP_NAME\n  });\n  const stateAttribute = React.useMemo(() => {\n    return open ? wasOpenDelayedRef.current ? \"delayed-open\" : \"instant-open\" : \"closed\";\n  }, [open]);\n  const handleOpen = React.useCallback(() => {\n    window.clearTimeout(openTimerRef.current);\n    openTimerRef.current = 0;\n    wasOpenDelayedRef.current = false;\n    setOpen(true);\n  }, [setOpen]);\n  const handleClose = React.useCallback(() => {\n    window.clearTimeout(openTimerRef.current);\n    openTimerRef.current = 0;\n    setOpen(false);\n  }, [setOpen]);\n  const handleDelayedOpen = React.useCallback(() => {\n    window.clearTimeout(openTimerRef.current);\n    openTimerRef.current = window.setTimeout(() => {\n      wasOpenDelayedRef.current = true;\n      setOpen(true);\n      openTimerRef.current = 0;\n    }, delayDuration);\n  }, [delayDuration, setOpen]);\n  React.useEffect(() => {\n    return () => {\n      if (openTimerRef.current) {\n        window.clearTimeout(openTimerRef.current);\n        openTimerRef.current = 0;\n      }\n    };\n  }, []);\n  return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsx(\n    TooltipContextProvider,\n    {\n      scope: __scopeTooltip,\n      contentId,\n      open,\n      stateAttribute,\n      trigger,\n      onTriggerChange: setTrigger,\n      onTriggerEnter: React.useCallback(() => {\n        if (providerContext.isOpenDelayedRef.current) handleDelayedOpen();\n        else handleOpen();\n      }, [providerContext.isOpenDelayedRef, handleDelayedOpen, handleOpen]),\n      onTriggerLeave: React.useCallback(() => {\n        if (disableHoverableContent) {\n          handleClose();\n        } else {\n          window.clearTimeout(openTimerRef.current);\n          openTimerRef.current = 0;\n        }\n      }, [handleClose, disableHoverableContent]),\n      onOpen: handleOpen,\n      onClose: handleClose,\n      disableHoverableContent,\n      children\n    }\n  ) });\n};\nTooltip.displayName = TOOLTIP_NAME;\nvar TRIGGER_NAME = \"TooltipTrigger\";\nvar TooltipTrigger = React.forwardRef(\n  (props, forwardedRef) => {\n    const { __scopeTooltip, ...triggerProps } = props;\n    const context = useTooltipContext(TRIGGER_NAME, __scopeTooltip);\n    const providerContext = useTooltipProviderContext(TRIGGER_NAME, __scopeTooltip);\n    const popperScope = usePopperScope(__scopeTooltip);\n    const ref = React.useRef(null);\n    const composedRefs = useComposedRefs(forwardedRef, ref, context.onTriggerChange);\n    const isPointerDownRef = React.useRef(false);\n    const hasPointerMoveOpenedRef = React.useRef(false);\n    const handlePointerUp = React.useCallback(() => isPointerDownRef.current = false, []);\n    React.useEffect(() => {\n      return () => document.removeEventListener(\"pointerup\", handlePointerUp);\n    }, [handlePointerUp]);\n    return /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { asChild: true, ...popperScope, children: /* @__PURE__ */ jsx(\n      Primitive.button,\n      {\n        \"aria-describedby\": context.open ? context.contentId : void 0,\n        \"data-state\": context.stateAttribute,\n        ...triggerProps,\n        ref: composedRefs,\n        onPointerMove: composeEventHandlers(props.onPointerMove, (event) => {\n          if (event.pointerType === \"touch\") return;\n          if (!hasPointerMoveOpenedRef.current && !providerContext.isPointerInTransitRef.current) {\n            context.onTriggerEnter();\n            hasPointerMoveOpenedRef.current = true;\n          }\n        }),\n        onPointerLeave: composeEventHandlers(props.onPointerLeave, () => {\n          context.onTriggerLeave();\n          hasPointerMoveOpenedRef.current = false;\n        }),\n        onPointerDown: composeEventHandlers(props.onPointerDown, () => {\n          if (context.open) {\n            context.onClose();\n          }\n          isPointerDownRef.current = true;\n          document.addEventListener(\"pointerup\", handlePointerUp, { once: true });\n        }),\n        onFocus: composeEventHandlers(props.onFocus, () => {\n          if (!isPointerDownRef.current) context.onOpen();\n        }),\n        onBlur: composeEventHandlers(props.onBlur, context.onClose),\n        onClick: composeEventHandlers(props.onClick, context.onClose)\n      }\n    ) });\n  }\n);\nTooltipTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"TooltipPortal\";\nvar [PortalProvider, usePortalContext] = createTooltipContext(PORTAL_NAME, {\n  forceMount: void 0\n});\nvar TooltipPortal = (props) => {\n  const { __scopeTooltip, forceMount, children, container } = props;\n  const context = useTooltipContext(PORTAL_NAME, __scopeTooltip);\n  return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopeTooltip, forceMount, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, container, children }) }) });\n};\nTooltipPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"TooltipContent\";\nvar TooltipContent = React.forwardRef(\n  (props, forwardedRef) => {\n    const portalContext = usePortalContext(CONTENT_NAME, props.__scopeTooltip);\n    const { forceMount = portalContext.forceMount, side = \"top\", ...contentProps } = props;\n    const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);\n    return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: context.disableHoverableContent ? /* @__PURE__ */ jsx(TooltipContentImpl, { side, ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(TooltipContentHoverable, { side, ...contentProps, ref: forwardedRef }) });\n  }\n);\nvar TooltipContentHoverable = React.forwardRef((props, forwardedRef) => {\n  const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);\n  const providerContext = useTooltipProviderContext(CONTENT_NAME, props.__scopeTooltip);\n  const ref = React.useRef(null);\n  const composedRefs = useComposedRefs(forwardedRef, ref);\n  const [pointerGraceArea, setPointerGraceArea] = React.useState(null);\n  const { trigger, onClose } = context;\n  const content = ref.current;\n  const { onPointerInTransitChange } = providerContext;\n  const handleRemoveGraceArea = React.useCallback(() => {\n    setPointerGraceArea(null);\n    onPointerInTransitChange(false);\n  }, [onPointerInTransitChange]);\n  const handleCreateGraceArea = React.useCallback(\n    (event, hoverTarget) => {\n      const currentTarget = event.currentTarget;\n      const exitPoint = { x: event.clientX, y: event.clientY };\n      const exitSide = getExitSideFromRect(exitPoint, currentTarget.getBoundingClientRect());\n      const paddedExitPoints = getPaddedExitPoints(exitPoint, exitSide);\n      const hoverTargetPoints = getPointsFromRect(hoverTarget.getBoundingClientRect());\n      const graceArea = getHull([...paddedExitPoints, ...hoverTargetPoints]);\n      setPointerGraceArea(graceArea);\n      onPointerInTransitChange(true);\n    },\n    [onPointerInTransitChange]\n  );\n  React.useEffect(() => {\n    return () => handleRemoveGraceArea();\n  }, [handleRemoveGraceArea]);\n  React.useEffect(() => {\n    if (trigger && content) {\n      const handleTriggerLeave = (event) => handleCreateGraceArea(event, content);\n      const handleContentLeave = (event) => handleCreateGraceArea(event, trigger);\n      trigger.addEventListener(\"pointerleave\", handleTriggerLeave);\n      content.addEventListener(\"pointerleave\", handleContentLeave);\n      return () => {\n        trigger.removeEventListener(\"pointerleave\", handleTriggerLeave);\n        content.removeEventListener(\"pointerleave\", handleContentLeave);\n      };\n    }\n  }, [trigger, content, handleCreateGraceArea, handleRemoveGraceArea]);\n  React.useEffect(() => {\n    if (pointerGraceArea) {\n      const handleTrackPointerGrace = (event) => {\n        const target = event.target;\n        const pointerPosition = { x: event.clientX, y: event.clientY };\n        const hasEnteredTarget = trigger?.contains(target) || content?.contains(target);\n        const isPointerOutsideGraceArea = !isPointInPolygon(pointerPosition, pointerGraceArea);\n        if (hasEnteredTarget) {\n          handleRemoveGraceArea();\n        } else if (isPointerOutsideGraceArea) {\n          handleRemoveGraceArea();\n          onClose();\n        }\n      };\n      document.addEventListener(\"pointermove\", handleTrackPointerGrace);\n      return () => document.removeEventListener(\"pointermove\", handleTrackPointerGrace);\n    }\n  }, [trigger, content, pointerGraceArea, onClose, handleRemoveGraceArea]);\n  return /* @__PURE__ */ jsx(TooltipContentImpl, { ...props, ref: composedRefs });\n});\nvar [VisuallyHiddenContentContextProvider, useVisuallyHiddenContentContext] = createTooltipContext(TOOLTIP_NAME, { isInside: false });\nvar Slottable = createSlottable(\"TooltipContent\");\nvar TooltipContentImpl = React.forwardRef(\n  (props, forwardedRef) => {\n    const {\n      __scopeTooltip,\n      children,\n      \"aria-label\": ariaLabel,\n      onEscapeKeyDown,\n      onPointerDownOutside,\n      ...contentProps\n    } = props;\n    const context = useTooltipContext(CONTENT_NAME, __scopeTooltip);\n    const popperScope = usePopperScope(__scopeTooltip);\n    const { onClose } = context;\n    React.useEffect(() => {\n      document.addEventListener(TOOLTIP_OPEN, onClose);\n      return () => document.removeEventListener(TOOLTIP_OPEN, onClose);\n    }, [onClose]);\n    React.useEffect(() => {\n      if (context.trigger) {\n        const handleScroll = (event) => {\n          const target = event.target;\n          if (target?.contains(context.trigger)) onClose();\n        };\n        window.addEventListener(\"scroll\", handleScroll, { capture: true });\n        return () => window.removeEventListener(\"scroll\", handleScroll, { capture: true });\n      }\n    }, [context.trigger, onClose]);\n    return /* @__PURE__ */ jsx(\n      DismissableLayer,\n      {\n        asChild: true,\n        disableOutsidePointerEvents: false,\n        onEscapeKeyDown,\n        onPointerDownOutside,\n        onFocusOutside: (event) => event.preventDefault(),\n        onDismiss: onClose,\n        children: /* @__PURE__ */ jsxs(\n          PopperPrimitive.Content,\n          {\n            \"data-state\": context.stateAttribute,\n            ...popperScope,\n            ...contentProps,\n            ref: forwardedRef,\n            style: {\n              ...contentProps.style,\n              // re-namespace exposed content custom properties\n              ...{\n                \"--radix-tooltip-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n                \"--radix-tooltip-content-available-width\": \"var(--radix-popper-available-width)\",\n                \"--radix-tooltip-content-available-height\": \"var(--radix-popper-available-height)\",\n                \"--radix-tooltip-trigger-width\": \"var(--radix-popper-anchor-width)\",\n                \"--radix-tooltip-trigger-height\": \"var(--radix-popper-anchor-height)\"\n              }\n            },\n            children: [\n              /* @__PURE__ */ jsx(Slottable, { children }),\n              /* @__PURE__ */ jsx(VisuallyHiddenContentContextProvider, { scope: __scopeTooltip, isInside: true, children: /* @__PURE__ */ jsx(VisuallyHiddenPrimitive.Root, { id: context.contentId, role: \"tooltip\", children: ariaLabel || children }) })\n            ]\n          }\n        )\n      }\n    );\n  }\n);\nTooltipContent.displayName = CONTENT_NAME;\nvar ARROW_NAME = \"TooltipArrow\";\nvar TooltipArrow = React.forwardRef(\n  (props, forwardedRef) => {\n    const { __scopeTooltip, ...arrowProps } = props;\n    const popperScope = usePopperScope(__scopeTooltip);\n    const visuallyHiddenContentContext = useVisuallyHiddenContentContext(\n      ARROW_NAME,\n      __scopeTooltip\n    );\n    return visuallyHiddenContentContext.isInside ? null : /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });\n  }\n);\nTooltipArrow.displayName = ARROW_NAME;\nfunction getExitSideFromRect(point, rect) {\n  const top = Math.abs(rect.top - point.y);\n  const bottom = Math.abs(rect.bottom - point.y);\n  const right = Math.abs(rect.right - point.x);\n  const left = Math.abs(rect.left - point.x);\n  switch (Math.min(top, bottom, right, left)) {\n    case left:\n      return \"left\";\n    case right:\n      return \"right\";\n    case top:\n      return \"top\";\n    case bottom:\n      return \"bottom\";\n    default:\n      throw new Error(\"unreachable\");\n  }\n}\nfunction getPaddedExitPoints(exitPoint, exitSide, padding = 5) {\n  const paddedExitPoints = [];\n  switch (exitSide) {\n    case \"top\":\n      paddedExitPoints.push(\n        { x: exitPoint.x - padding, y: exitPoint.y + padding },\n        { x: exitPoint.x + padding, y: exitPoint.y + padding }\n      );\n      break;\n    case \"bottom\":\n      paddedExitPoints.push(\n        { x: exitPoint.x - padding, y: exitPoint.y - padding },\n        { x: exitPoint.x + padding, y: exitPoint.y - padding }\n      );\n      break;\n    case \"left\":\n      paddedExitPoints.push(\n        { x: exitPoint.x + padding, y: exitPoint.y - padding },\n        { x: exitPoint.x + padding, y: exitPoint.y + padding }\n      );\n      break;\n    case \"right\":\n      paddedExitPoints.push(\n        { x: exitPoint.x - padding, y: exitPoint.y - padding },\n        { x: exitPoint.x - padding, y: exitPoint.y + padding }\n      );\n      break;\n  }\n  return paddedExitPoints;\n}\nfunction getPointsFromRect(rect) {\n  const { top, right, bottom, left } = rect;\n  return [\n    { x: left, y: top },\n    { x: right, y: top },\n    { x: right, y: bottom },\n    { x: left, y: bottom }\n  ];\n}\nfunction isPointInPolygon(point, polygon) {\n  const { x, y } = point;\n  let inside = false;\n  for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {\n    const ii = polygon[i];\n    const jj = polygon[j];\n    const xi = ii.x;\n    const yi = ii.y;\n    const xj = jj.x;\n    const yj = jj.y;\n    const intersect = yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi;\n    if (intersect) inside = !inside;\n  }\n  return inside;\n}\nfunction getHull(points) {\n  const newPoints = points.slice();\n  newPoints.sort((a, b) => {\n    if (a.x < b.x) return -1;\n    else if (a.x > b.x) return 1;\n    else if (a.y < b.y) return -1;\n    else if (a.y > b.y) return 1;\n    else return 0;\n  });\n  return getHullPresorted(newPoints);\n}\nfunction getHullPresorted(points) {\n  if (points.length <= 1) return points.slice();\n  const upperHull = [];\n  for (let i = 0; i < points.length; i++) {\n    const p = points[i];\n    while (upperHull.length >= 2) {\n      const q = upperHull[upperHull.length - 1];\n      const r = upperHull[upperHull.length - 2];\n      if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) upperHull.pop();\n      else break;\n    }\n    upperHull.push(p);\n  }\n  upperHull.pop();\n  const lowerHull = [];\n  for (let i = points.length - 1; i >= 0; i--) {\n    const p = points[i];\n    while (lowerHull.length >= 2) {\n      const q = lowerHull[lowerHull.length - 1];\n      const r = lowerHull[lowerHull.length - 2];\n      if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) lowerHull.pop();\n      else break;\n    }\n    lowerHull.push(p);\n  }\n  lowerHull.pop();\n  if (upperHull.length === 1 && lowerHull.length === 1 && upperHull[0].x === lowerHull[0].x && upperHull[0].y === lowerHull[0].y) {\n    return upperHull;\n  } else {\n    return upperHull.concat(lowerHull);\n  }\n}\nvar Provider = TooltipProvider;\nvar Root3 = Tooltip;\nvar Trigger = TooltipTrigger;\nvar Portal = TooltipPortal;\nvar Content2 = TooltipContent;\nvar Arrow2 = TooltipArrow;\nexport {\n  Arrow2 as Arrow,\n  Content2 as Content,\n  Portal,\n  Provider,\n  Root3 as Root,\n  Tooltip,\n  TooltipArrow,\n  TooltipContent,\n  TooltipPortal,\n  TooltipProvider,\n  TooltipTrigger,\n  Trigger,\n  createTooltipScope\n};\n//# sourceMappingURL=index.mjs.map\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","/**\n * Concatenates two arrays faster than the array spread operator.\n */\nconst concatArrays = (array1, array2) => {\n  // Pre-allocate for better V8 optimization\n  const combinedArray = new Array(array1.length + array2.length);\n  for (let i = 0; i < array1.length; i++) {\n    combinedArray[i] = array1[i];\n  }\n  for (let i = 0; i < array2.length; i++) {\n    combinedArray[array1.length + i] = array2[i];\n  }\n  return combinedArray;\n};\n\n// Factory function ensures consistent object shapes\nconst createClassValidatorObject = (classGroupId, validator) => ({\n  classGroupId,\n  validator\n});\n// Factory ensures consistent ClassPartObject shape\nconst createClassPartObject = (nextPart = new Map(), validators = null, classGroupId) => ({\n  nextPart,\n  validators,\n  classGroupId\n});\nconst CLASS_PART_SEPARATOR = '-';\nconst EMPTY_CONFLICTS = [];\n// I use two dots here because one dot is used as prefix for class groups in plugins\nconst ARBITRARY_PROPERTY_PREFIX = 'arbitrary..';\nconst createClassGroupUtils = config => {\n  const classMap = createClassMap(config);\n  const {\n    conflictingClassGroups,\n    conflictingClassGroupModifiers\n  } = config;\n  const getClassGroupId = className => {\n    if (className.startsWith('[') && className.endsWith(']')) {\n      return getGroupIdForArbitraryProperty(className);\n    }\n    const classParts = className.split(CLASS_PART_SEPARATOR);\n    // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and skip it.\n    const startIndex = classParts[0] === '' && classParts.length > 1 ? 1 : 0;\n    return getGroupRecursive(classParts, startIndex, classMap);\n  };\n  const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {\n    if (hasPostfixModifier) {\n      const modifierConflicts = conflictingClassGroupModifiers[classGroupId];\n      const baseConflicts = conflictingClassGroups[classGroupId];\n      if (modifierConflicts) {\n        if (baseConflicts) {\n          // Merge base conflicts with modifier conflicts\n          return concatArrays(baseConflicts, modifierConflicts);\n        }\n        // Only modifier conflicts\n        return modifierConflicts;\n      }\n      // Fall back to without postfix if no modifier conflicts\n      return baseConflicts || EMPTY_CONFLICTS;\n    }\n    return conflictingClassGroups[classGroupId] || EMPTY_CONFLICTS;\n  };\n  return {\n    getClassGroupId,\n    getConflictingClassGroupIds\n  };\n};\nconst getGroupRecursive = (classParts, startIndex, classPartObject) => {\n  const classPathsLength = classParts.length - startIndex;\n  if (classPathsLength === 0) {\n    return classPartObject.classGroupId;\n  }\n  const currentClassPart = classParts[startIndex];\n  const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);\n  if (nextClassPartObject) {\n    const result = getGroupRecursive(classParts, startIndex + 1, nextClassPartObject);\n    if (result) return result;\n  }\n  const validators = classPartObject.validators;\n  if (validators === null) {\n    return undefined;\n  }\n  // Build classRest string efficiently by joining from startIndex onwards\n  const classRest = startIndex === 0 ? classParts.join(CLASS_PART_SEPARATOR) : classParts.slice(startIndex).join(CLASS_PART_SEPARATOR);\n  const validatorsLength = validators.length;\n  for (let i = 0; i < validatorsLength; i++) {\n    const validatorObj = validators[i];\n    if (validatorObj.validator(classRest)) {\n      return validatorObj.classGroupId;\n    }\n  }\n  return undefined;\n};\n/**\n * Get the class group ID for an arbitrary property.\n *\n * @param className - The class name to get the group ID for. Is expected to be string starting with `[` and ending with `]`.\n */\nconst getGroupIdForArbitraryProperty = className => className.slice(1, -1).indexOf(':') === -1 ? undefined : (() => {\n  const content = className.slice(1, -1);\n  const colonIndex = content.indexOf(':');\n  const property = content.slice(0, colonIndex);\n  return property ? ARBITRARY_PROPERTY_PREFIX + property : undefined;\n})();\n/**\n * Exported for testing only\n */\nconst createClassMap = config => {\n  const {\n    theme,\n    classGroups\n  } = config;\n  return processClassGroups(classGroups, theme);\n};\n// Split into separate functions to maintain monomorphic call sites\nconst processClassGroups = (classGroups, theme) => {\n  const classMap = createClassPartObject();\n  for (const classGroupId in classGroups) {\n    const group = classGroups[classGroupId];\n    processClassesRecursively(group, classMap, classGroupId, theme);\n  }\n  return classMap;\n};\nconst processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {\n  const len = classGroup.length;\n  for (let i = 0; i < len; i++) {\n    const classDefinition = classGroup[i];\n    processClassDefinition(classDefinition, classPartObject, classGroupId, theme);\n  }\n};\n// Split into separate functions for each type to maintain monomorphic call sites\nconst processClassDefinition = (classDefinition, classPartObject, classGroupId, theme) => {\n  if (typeof classDefinition === 'string') {\n    processStringDefinition(classDefinition, classPartObject, classGroupId);\n    return;\n  }\n  if (typeof classDefinition === 'function') {\n    processFunctionDefinition(classDefinition, classPartObject, classGroupId, theme);\n    return;\n  }\n  processObjectDefinition(classDefinition, classPartObject, classGroupId, theme);\n};\nconst processStringDefinition = (classDefinition, classPartObject, classGroupId) => {\n  const classPartObjectToEdit = classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition);\n  classPartObjectToEdit.classGroupId = classGroupId;\n};\nconst processFunctionDefinition = (classDefinition, classPartObject, classGroupId, theme) => {\n  if (isThemeGetter(classDefinition)) {\n    processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);\n    return;\n  }\n  if (classPartObject.validators === null) {\n    classPartObject.validators = [];\n  }\n  classPartObject.validators.push(createClassValidatorObject(classGroupId, classDefinition));\n};\nconst processObjectDefinition = (classDefinition, classPartObject, classGroupId, theme) => {\n  const entries = Object.entries(classDefinition);\n  const len = entries.length;\n  for (let i = 0; i < len; i++) {\n    const [key, value] = entries[i];\n    processClassesRecursively(value, getPart(classPartObject, key), classGroupId, theme);\n  }\n};\nconst getPart = (classPartObject, path) => {\n  let current = classPartObject;\n  const parts = path.split(CLASS_PART_SEPARATOR);\n  const len = parts.length;\n  for (let i = 0; i < len; i++) {\n    const part = parts[i];\n    let next = current.nextPart.get(part);\n    if (!next) {\n      next = createClassPartObject();\n      current.nextPart.set(part, next);\n    }\n    current = next;\n  }\n  return current;\n};\n// Type guard maintains monomorphic check\nconst isThemeGetter = func => 'isThemeGetter' in func && func.isThemeGetter === true;\n\n// LRU cache implementation using plain objects for simplicity\nconst createLruCache = maxCacheSize => {\n  if (maxCacheSize < 1) {\n    return {\n      get: () => undefined,\n      set: () => {}\n    };\n  }\n  let cacheSize = 0;\n  let cache = Object.create(null);\n  let previousCache = Object.create(null);\n  const update = (key, value) => {\n    cache[key] = value;\n    cacheSize++;\n    if (cacheSize > maxCacheSize) {\n      cacheSize = 0;\n      previousCache = cache;\n      cache = Object.create(null);\n    }\n  };\n  return {\n    get(key) {\n      let value = cache[key];\n      if (value !== undefined) {\n        return value;\n      }\n      if ((value = previousCache[key]) !== undefined) {\n        update(key, value);\n        return value;\n      }\n    },\n    set(key, value) {\n      if (key in cache) {\n        cache[key] = value;\n      } else {\n        update(key, value);\n      }\n    }\n  };\n};\nconst IMPORTANT_MODIFIER = '!';\nconst MODIFIER_SEPARATOR = ':';\nconst EMPTY_MODIFIERS = [];\n// Pre-allocated result object shape for consistency\nconst createResultObject = (modifiers, hasImportantModifier, baseClassName, maybePostfixModifierPosition, isExternal) => ({\n  modifiers,\n  hasImportantModifier,\n  baseClassName,\n  maybePostfixModifierPosition,\n  isExternal\n});\nconst createParseClassName = config => {\n  const {\n    prefix,\n    experimentalParseClassName\n  } = config;\n  /**\n   * Parse class name into parts.\n   *\n   * Inspired by `splitAtTopLevelOnly` used in Tailwind CSS\n   * @see https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js\n   */\n  let parseClassName = className => {\n    // Use simple array with push for better performance\n    const modifiers = [];\n    let bracketDepth = 0;\n    let parenDepth = 0;\n    let modifierStart = 0;\n    let postfixModifierPosition;\n    const len = className.length;\n    for (let index = 0; index < len; index++) {\n      const currentCharacter = className[index];\n      if (bracketDepth === 0 && parenDepth === 0) {\n        if (currentCharacter === MODIFIER_SEPARATOR) {\n          modifiers.push(className.slice(modifierStart, index));\n          modifierStart = index + 1;\n          continue;\n        }\n        if (currentCharacter === '/') {\n          postfixModifierPosition = index;\n          continue;\n        }\n      }\n      if (currentCharacter === '[') bracketDepth++;else if (currentCharacter === ']') bracketDepth--;else if (currentCharacter === '(') parenDepth++;else if (currentCharacter === ')') parenDepth--;\n    }\n    const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.slice(modifierStart);\n    // Inline important modifier check\n    let baseClassName = baseClassNameWithImportantModifier;\n    let hasImportantModifier = false;\n    if (baseClassNameWithImportantModifier.endsWith(IMPORTANT_MODIFIER)) {\n      baseClassName = baseClassNameWithImportantModifier.slice(0, -1);\n      hasImportantModifier = true;\n    } else if (\n    /**\n     * In Tailwind CSS v3 the important modifier was at the start of the base class name. This is still supported for legacy reasons.\n     * @see https://github.com/dcastil/tailwind-merge/issues/513#issuecomment-2614029864\n     */\n    baseClassNameWithImportantModifier.startsWith(IMPORTANT_MODIFIER)) {\n      baseClassName = baseClassNameWithImportantModifier.slice(1);\n      hasImportantModifier = true;\n    }\n    const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined;\n    return createResultObject(modifiers, hasImportantModifier, baseClassName, maybePostfixModifierPosition);\n  };\n  if (prefix) {\n    const fullPrefix = prefix + MODIFIER_SEPARATOR;\n    const parseClassNameOriginal = parseClassName;\n    parseClassName = className => className.startsWith(fullPrefix) ? parseClassNameOriginal(className.slice(fullPrefix.length)) : createResultObject(EMPTY_MODIFIERS, false, className, undefined, true);\n  }\n  if (experimentalParseClassName) {\n    const parseClassNameOriginal = parseClassName;\n    parseClassName = className => experimentalParseClassName({\n      className,\n      parseClassName: parseClassNameOriginal\n    });\n  }\n  return parseClassName;\n};\n\n/**\n * Sorts modifiers according to following schema:\n * - Predefined modifiers are sorted alphabetically\n * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it\n */\nconst createSortModifiers = config => {\n  // Pre-compute weights for all known modifiers for O(1) comparison\n  const modifierWeights = new Map();\n  // Assign weights to sensitive modifiers (highest priority, but preserve order)\n  config.orderSensitiveModifiers.forEach((mod, index) => {\n    modifierWeights.set(mod, 1000000 + index); // High weights for sensitive mods\n  });\n  return modifiers => {\n    const result = [];\n    let currentSegment = [];\n    // Process modifiers in one pass\n    for (let i = 0; i < modifiers.length; i++) {\n      const modifier = modifiers[i];\n      // Check if modifier is sensitive (starts with '[' or in orderSensitiveModifiers)\n      const isArbitrary = modifier[0] === '[';\n      const isOrderSensitive = modifierWeights.has(modifier);\n      if (isArbitrary || isOrderSensitive) {\n        // Sort and flush current segment alphabetically\n        if (currentSegment.length > 0) {\n          currentSegment.sort();\n          result.push(...currentSegment);\n          currentSegment = [];\n        }\n        result.push(modifier);\n      } else {\n        // Regular modifier - add to current segment for batch sorting\n        currentSegment.push(modifier);\n      }\n    }\n    // Sort and add any remaining segment items\n    if (currentSegment.length > 0) {\n      currentSegment.sort();\n      result.push(...currentSegment);\n    }\n    return result;\n  };\n};\nconst createConfigUtils = config => ({\n  cache: createLruCache(config.cacheSize),\n  parseClassName: createParseClassName(config),\n  sortModifiers: createSortModifiers(config),\n  postfixLookupClassGroupIds: createPostfixLookupClassGroupIds(config),\n  ...createClassGroupUtils(config)\n});\nconst createPostfixLookupClassGroupIds = config => {\n  const lookup = Object.create(null);\n  const classGroupIds = config.postfixLookupClassGroups;\n  if (classGroupIds) {\n    for (let i = 0; i < classGroupIds.length; i++) {\n      lookup[classGroupIds[i]] = true;\n    }\n  }\n  return lookup;\n};\nconst SPLIT_CLASSES_REGEX = /\\s+/;\nconst mergeClassList = (classList, configUtils) => {\n  const {\n    parseClassName,\n    getClassGroupId,\n    getConflictingClassGroupIds,\n    sortModifiers,\n    postfixLookupClassGroupIds\n  } = configUtils;\n  /**\n   * Set of classGroupIds in following format:\n   * `{importantModifier}{variantModifiers}{classGroupId}`\n   * @example 'float'\n   * @example 'hover:focus:bg-color'\n   * @example 'md:!pr'\n   */\n  const classGroupsInConflict = [];\n  const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);\n  let result = '';\n  for (let index = classNames.length - 1; index >= 0; index -= 1) {\n    const originalClassName = classNames[index];\n    const {\n      isExternal,\n      modifiers,\n      hasImportantModifier,\n      baseClassName,\n      maybePostfixModifierPosition\n    } = parseClassName(originalClassName);\n    if (isExternal) {\n      result = originalClassName + (result.length > 0 ? ' ' + result : result);\n      continue;\n    }\n    let hasPostfixModifier = !!maybePostfixModifierPosition;\n    let classGroupId;\n    if (hasPostfixModifier) {\n      const baseClassNameWithoutPostfix = baseClassName.substring(0, maybePostfixModifierPosition);\n      classGroupId = getClassGroupId(baseClassNameWithoutPostfix);\n      const classGroupIdWithPostfix = classGroupId && postfixLookupClassGroupIds[classGroupId] ? getClassGroupId(baseClassName) : undefined;\n      if (classGroupIdWithPostfix && classGroupIdWithPostfix !== classGroupId) {\n        classGroupId = classGroupIdWithPostfix;\n        hasPostfixModifier = false;\n      }\n    } else {\n      classGroupId = getClassGroupId(baseClassName);\n    }\n    if (!classGroupId) {\n      if (!hasPostfixModifier) {\n        // Not a Tailwind class\n        result = originalClassName + (result.length > 0 ? ' ' + result : result);\n        continue;\n      }\n      classGroupId = getClassGroupId(baseClassName);\n      if (!classGroupId) {\n        // Not a Tailwind class\n        result = originalClassName + (result.length > 0 ? ' ' + result : result);\n        continue;\n      }\n      hasPostfixModifier = false;\n    }\n    // Fast path: skip sorting for empty or single modifier\n    const variantModifier = modifiers.length === 0 ? '' : modifiers.length === 1 ? modifiers[0] : sortModifiers(modifiers).join(':');\n    const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;\n    const classId = modifierId + classGroupId;\n    if (classGroupsInConflict.indexOf(classId) > -1) {\n      // Tailwind class omitted due to conflict\n      continue;\n    }\n    classGroupsInConflict.push(classId);\n    const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier);\n    for (let i = 0; i < conflictGroups.length; ++i) {\n      const group = conflictGroups[i];\n      classGroupsInConflict.push(modifierId + group);\n    }\n    // Tailwind class not in conflict\n    result = originalClassName + (result.length > 0 ? ' ' + result : result);\n  }\n  return result;\n};\n\n/**\n * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better.\n *\n * Specifically:\n * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js\n * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts\n *\n * Original code has MIT license: Copyright (c) Luke Edwards <luke.edwards05@gmail.com> (lukeed.com)\n */\nconst twJoin = (...classLists) => {\n  let index = 0;\n  let argument;\n  let resolvedValue;\n  let string = '';\n  while (index < classLists.length) {\n    if (argument = classLists[index++]) {\n      if (resolvedValue = toValue(argument)) {\n        string && (string += ' ');\n        string += resolvedValue;\n      }\n    }\n  }\n  return string;\n};\nconst toValue = mix => {\n  // Fast path for strings\n  if (typeof mix === 'string') {\n    return mix;\n  }\n  let resolvedValue;\n  let string = '';\n  for (let k = 0; k < mix.length; k++) {\n    if (mix[k]) {\n      if (resolvedValue = toValue(mix[k])) {\n        string && (string += ' ');\n        string += resolvedValue;\n      }\n    }\n  }\n  return string;\n};\nconst createTailwindMerge = (createConfigFirst, ...createConfigRest) => {\n  let configUtils;\n  let cacheGet;\n  let cacheSet;\n  let functionToCall;\n  const initTailwindMerge = classList => {\n    const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());\n    configUtils = createConfigUtils(config);\n    cacheGet = configUtils.cache.get;\n    cacheSet = configUtils.cache.set;\n    functionToCall = tailwindMerge;\n    return tailwindMerge(classList);\n  };\n  const tailwindMerge = classList => {\n    const cachedResult = cacheGet(classList);\n    if (cachedResult) {\n      return cachedResult;\n    }\n    const result = mergeClassList(classList, configUtils);\n    cacheSet(classList, result);\n    return result;\n  };\n  functionToCall = initTailwindMerge;\n  return (...args) => functionToCall(twJoin(...args));\n};\nconst fallbackThemeArr = [];\nconst fromTheme = key => {\n  const themeGetter = theme => theme[key] || fallbackThemeArr;\n  themeGetter.isThemeGetter = true;\n  return themeGetter;\n};\nconst arbitraryValueRegex = /^\\[(?:(\\w[\\w-]*):)?(.+)\\]$/i;\nconst arbitraryVariableRegex = /^\\((?:(\\w[\\w-]*):)?(.+)\\)$/i;\nconst fractionRegex = /^\\d+(?:\\.\\d+)?\\/\\d+(?:\\.\\d+)?$/;\nconst tshirtUnitRegex = /^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/;\nconst lengthUnitRegex = /\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\b(calc|min|max|clamp)\\(.+\\)|^0$/;\nconst colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\\(.+\\)$/;\n// Shadow always begins with x and y offset separated by underscore optionally prepended by inset\nconst shadowRegex = /^(inset_)?-?((\\d+)?\\.?(\\d+)[a-z]+|0)_-?((\\d+)?\\.?(\\d+)[a-z]+|0)/;\nconst imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/;\nconst isFraction = value => fractionRegex.test(value);\nconst isNumber = value => !!value && !Number.isNaN(Number(value));\nconst isInteger = value => !!value && Number.isInteger(Number(value));\nconst isPercent = value => value.endsWith('%') && isNumber(value.slice(0, -1));\nconst isTshirtSize = value => tshirtUnitRegex.test(value);\nconst isAny = () => true;\nconst isLengthOnly = value =>\n// `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.\n// For example, `hsl(0 0% 0%)` would be classified as a length without this check.\n// I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.\nlengthUnitRegex.test(value) && !colorFunctionRegex.test(value);\nconst isNever = () => false;\nconst isShadow = value => shadowRegex.test(value);\nconst isImage = value => imageRegex.test(value);\nconst isAnyNonArbitrary = value => !isArbitraryValue(value) && !isArbitraryVariable(value);\nconst isNamedContainerQuery = value => value.startsWith('@container') && (value[10] === '/' && value[11] !== undefined || value[11] === 's' && value[16] !== undefined && value.startsWith('-size/', 10) || value[11] === 'n' && value[18] !== undefined && value.startsWith('-normal/', 10));\nconst isArbitrarySize = value => getIsArbitraryValue(value, isLabelSize, isNever);\nconst isArbitraryValue = value => arbitraryValueRegex.test(value);\nconst isArbitraryLength = value => getIsArbitraryValue(value, isLabelLength, isLengthOnly);\nconst isArbitraryNumber = value => getIsArbitraryValue(value, isLabelNumber, isNumber);\nconst isArbitraryWeight = value => getIsArbitraryValue(value, isLabelWeight, isAny);\nconst isArbitraryFamilyName = value => getIsArbitraryValue(value, isLabelFamilyName, isNever);\nconst isArbitraryPosition = value => getIsArbitraryValue(value, isLabelPosition, isNever);\nconst isArbitraryImage = value => getIsArbitraryValue(value, isLabelImage, isImage);\nconst isArbitraryShadow = value => getIsArbitraryValue(value, isLabelShadow, isShadow);\nconst isArbitraryVariable = value => arbitraryVariableRegex.test(value);\nconst isArbitraryVariableLength = value => getIsArbitraryVariable(value, isLabelLength);\nconst isArbitraryVariableFamilyName = value => getIsArbitraryVariable(value, isLabelFamilyName);\nconst isArbitraryVariablePosition = value => getIsArbitraryVariable(value, isLabelPosition);\nconst isArbitraryVariableSize = value => getIsArbitraryVariable(value, isLabelSize);\nconst isArbitraryVariableImage = value => getIsArbitraryVariable(value, isLabelImage);\nconst isArbitraryVariableShadow = value => getIsArbitraryVariable(value, isLabelShadow, true);\nconst isArbitraryVariableWeight = value => getIsArbitraryVariable(value, isLabelWeight, true);\n// Helpers\nconst getIsArbitraryValue = (value, testLabel, testValue) => {\n  const result = arbitraryValueRegex.exec(value);\n  if (result) {\n    if (result[1]) {\n      return testLabel(result[1]);\n    }\n    return testValue(result[2]);\n  }\n  return false;\n};\nconst getIsArbitraryVariable = (value, testLabel, shouldMatchNoLabel = false) => {\n  const result = arbitraryVariableRegex.exec(value);\n  if (result) {\n    if (result[1]) {\n      return testLabel(result[1]);\n    }\n    return shouldMatchNoLabel;\n  }\n  return false;\n};\n// Labels\nconst isLabelPosition = label => label === 'position' || label === 'percentage';\nconst isLabelImage = label => label === 'image' || label === 'url';\nconst isLabelSize = label => label === 'length' || label === 'size' || label === 'bg-size';\nconst isLabelLength = label => label === 'length';\nconst isLabelNumber = label => label === 'number';\nconst isLabelFamilyName = label => label === 'family-name';\nconst isLabelWeight = label => label === 'number' || label === 'weight';\nconst isLabelShadow = label => label === 'shadow';\nconst validators = /*#__PURE__*/Object.defineProperty({\n  __proto__: null,\n  isAny,\n  isAnyNonArbitrary,\n  isArbitraryFamilyName,\n  isArbitraryImage,\n  isArbitraryLength,\n  isArbitraryNumber,\n  isArbitraryPosition,\n  isArbitraryShadow,\n  isArbitrarySize,\n  isArbitraryValue,\n  isArbitraryVariable,\n  isArbitraryVariableFamilyName,\n  isArbitraryVariableImage,\n  isArbitraryVariableLength,\n  isArbitraryVariablePosition,\n  isArbitraryVariableShadow,\n  isArbitraryVariableSize,\n  isArbitraryVariableWeight,\n  isArbitraryWeight,\n  isFraction,\n  isInteger,\n  isNamedContainerQuery,\n  isNumber,\n  isPercent,\n  isTshirtSize\n}, Symbol.toStringTag, {\n  value: 'Module'\n});\nconst getDefaultConfig = () => {\n  /**\n   * Theme getters for theme variable namespaces\n   * @see https://tailwindcss.com/docs/theme#theme-variable-namespaces\n   */\n  /***/\n  const themeColor = fromTheme('color');\n  const themeFont = fromTheme('font');\n  const themeText = fromTheme('text');\n  const themeFontWeight = fromTheme('font-weight');\n  const themeTracking = fromTheme('tracking');\n  const themeLeading = fromTheme('leading');\n  const themeBreakpoint = fromTheme('breakpoint');\n  const themeContainer = fromTheme('container');\n  const themeSpacing = fromTheme('spacing');\n  const themeRadius = fromTheme('radius');\n  const themeShadow = fromTheme('shadow');\n  const themeInsetShadow = fromTheme('inset-shadow');\n  const themeTextShadow = fromTheme('text-shadow');\n  const themeDropShadow = fromTheme('drop-shadow');\n  const themeBlur = fromTheme('blur');\n  const themePerspective = fromTheme('perspective');\n  const themeAspect = fromTheme('aspect');\n  const themeEase = fromTheme('ease');\n  const themeAnimate = fromTheme('animate');\n  /**\n   * Helpers to avoid repeating the same scales\n   *\n   * We use functions that create a new array every time they're called instead of static arrays.\n   * This ensures that users who modify any scale by mutating the array (e.g. with `array.push(element)`) don't accidentally mutate arrays in other parts of the config.\n   */\n  /***/\n  const scaleBreak = () => ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column'];\n  const scalePosition = () => ['center', 'top', 'bottom', 'left', 'right', 'top-left',\n  // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n  'left-top', 'top-right',\n  // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n  'right-top', 'bottom-right',\n  // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n  'right-bottom', 'bottom-left',\n  // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n  'left-bottom'];\n  const scalePositionWithArbitrary = () => [...scalePosition(), isArbitraryVariable, isArbitraryValue];\n  const scaleOverflow = () => ['auto', 'hidden', 'clip', 'visible', 'scroll'];\n  const scaleOverscroll = () => ['auto', 'contain', 'none'];\n  const scaleUnambiguousSpacing = () => [isArbitraryVariable, isArbitraryValue, themeSpacing];\n  const scaleInset = () => [isFraction, 'full', 'auto', ...scaleUnambiguousSpacing()];\n  const scaleGridTemplateColsRows = () => [isInteger, 'none', 'subgrid', isArbitraryVariable, isArbitraryValue];\n  const scaleGridColRowStartAndEnd = () => ['auto', {\n    span: ['full', isInteger, isArbitraryVariable, isArbitraryValue]\n  }, isInteger, isArbitraryVariable, isArbitraryValue];\n  const scaleGridColRowStartOrEnd = () => [isInteger, 'auto', isArbitraryVariable, isArbitraryValue];\n  const scaleGridAutoColsRows = () => ['auto', 'min', 'max', 'fr', isArbitraryVariable, isArbitraryValue];\n  const scaleAlignPrimaryAxis = () => ['start', 'end', 'center', 'between', 'around', 'evenly', 'stretch', 'baseline', 'center-safe', 'end-safe'];\n  const scaleAlignSecondaryAxis = () => ['start', 'end', 'center', 'stretch', 'center-safe', 'end-safe'];\n  const scaleMargin = () => ['auto', ...scaleUnambiguousSpacing()];\n  const scaleSizing = () => [isFraction, 'auto', 'full', 'dvw', 'dvh', 'lvw', 'lvh', 'svw', 'svh', 'min', 'max', 'fit', ...scaleUnambiguousSpacing()];\n  const scaleSizingInline = () => [isFraction, 'screen', 'full', 'dvw', 'lvw', 'svw', 'min', 'max', 'fit', ...scaleUnambiguousSpacing()];\n  const scaleSizingBlock = () => [isFraction, 'screen', 'full', 'lh', 'dvh', 'lvh', 'svh', 'min', 'max', 'fit', ...scaleUnambiguousSpacing()];\n  const scaleColor = () => [themeColor, isArbitraryVariable, isArbitraryValue];\n  const scaleBgPosition = () => [...scalePosition(), isArbitraryVariablePosition, isArbitraryPosition, {\n    position: [isArbitraryVariable, isArbitraryValue]\n  }];\n  const scaleBgRepeat = () => ['no-repeat', {\n    repeat: ['', 'x', 'y', 'space', 'round']\n  }];\n  const scaleBgSize = () => ['auto', 'cover', 'contain', isArbitraryVariableSize, isArbitrarySize, {\n    size: [isArbitraryVariable, isArbitraryValue]\n  }];\n  const scaleGradientStopPosition = () => [isPercent, isArbitraryVariableLength, isArbitraryLength];\n  const scaleRadius = () => [\n  // Deprecated since Tailwind CSS v4.0.0\n  '', 'none', 'full', themeRadius, isArbitraryVariable, isArbitraryValue];\n  const scaleBorderWidth = () => ['', isNumber, isArbitraryVariableLength, isArbitraryLength];\n  const scaleLineStyle = () => ['solid', 'dashed', 'dotted', 'double'];\n  const scaleBlendMode = () => ['normal', 'multiply', 'screen', 'overlay', 'darken', 'lighten', 'color-dodge', 'color-burn', 'hard-light', 'soft-light', 'difference', 'exclusion', 'hue', 'saturation', 'color', 'luminosity'];\n  const scaleMaskImagePosition = () => [isNumber, isPercent, isArbitraryVariablePosition, isArbitraryPosition];\n  const scaleBlur = () => [\n  // Deprecated since Tailwind CSS v4.0.0\n  '', 'none', themeBlur, isArbitraryVariable, isArbitraryValue];\n  const scaleRotate = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue];\n  const scaleScale = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue];\n  const scaleSkew = () => [isNumber, isArbitraryVariable, isArbitraryValue];\n  const scaleTranslate = () => [isFraction, 'full', ...scaleUnambiguousSpacing()];\n  return {\n    cacheSize: 500,\n    theme: {\n      animate: ['spin', 'ping', 'pulse', 'bounce'],\n      aspect: ['video'],\n      blur: [isTshirtSize],\n      breakpoint: [isTshirtSize],\n      color: [isAny],\n      container: [isTshirtSize],\n      'drop-shadow': [isTshirtSize],\n      ease: ['in', 'out', 'in-out'],\n      font: [isAnyNonArbitrary],\n      'font-weight': ['thin', 'extralight', 'light', 'normal', 'medium', 'semibold', 'bold', 'extrabold', 'black'],\n      'inset-shadow': [isTshirtSize],\n      leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose'],\n      perspective: ['dramatic', 'near', 'normal', 'midrange', 'distant', 'none'],\n      radius: [isTshirtSize],\n      shadow: [isTshirtSize],\n      spacing: ['px', isNumber],\n      text: [isTshirtSize],\n      'text-shadow': [isTshirtSize],\n      tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest']\n    },\n    classGroups: {\n      // --------------\n      // --- Layout ---\n      // --------------\n      /**\n       * Aspect Ratio\n       * @see https://tailwindcss.com/docs/aspect-ratio\n       */\n      aspect: [{\n        aspect: ['auto', 'square', isFraction, isArbitraryValue, isArbitraryVariable, themeAspect]\n      }],\n      /**\n       * Container\n       * @see https://tailwindcss.com/docs/container\n       * @deprecated since Tailwind CSS v4.0.0\n       */\n      container: ['container'],\n      /**\n       * Container Type\n       * @see https://tailwindcss.com/docs/responsive-design#container-queries\n       */\n      'container-type': [{\n        '@container': ['', 'normal', 'size', isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Container Name\n       * @see https://tailwindcss.com/docs/responsive-design#named-containers\n       */\n      'container-named': [isNamedContainerQuery],\n      /**\n       * Columns\n       * @see https://tailwindcss.com/docs/columns\n       */\n      columns: [{\n        columns: [isNumber, isArbitraryValue, isArbitraryVariable, themeContainer]\n      }],\n      /**\n       * Break After\n       * @see https://tailwindcss.com/docs/break-after\n       */\n      'break-after': [{\n        'break-after': scaleBreak()\n      }],\n      /**\n       * Break Before\n       * @see https://tailwindcss.com/docs/break-before\n       */\n      'break-before': [{\n        'break-before': scaleBreak()\n      }],\n      /**\n       * Break Inside\n       * @see https://tailwindcss.com/docs/break-inside\n       */\n      'break-inside': [{\n        'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column']\n      }],\n      /**\n       * Box Decoration Break\n       * @see https://tailwindcss.com/docs/box-decoration-break\n       */\n      'box-decoration': [{\n        'box-decoration': ['slice', 'clone']\n      }],\n      /**\n       * Box Sizing\n       * @see https://tailwindcss.com/docs/box-sizing\n       */\n      box: [{\n        box: ['border', 'content']\n      }],\n      /**\n       * Display\n       * @see https://tailwindcss.com/docs/display\n       */\n      display: ['block', 'inline-block', 'inline', 'flex', 'inline-flex', 'table', 'inline-table', 'table-caption', 'table-cell', 'table-column', 'table-column-group', 'table-footer-group', 'table-header-group', 'table-row-group', 'table-row', 'flow-root', 'grid', 'inline-grid', 'contents', 'list-item', 'hidden'],\n      /**\n       * Screen Reader Only\n       * @see https://tailwindcss.com/docs/display#screen-reader-only\n       */\n      sr: ['sr-only', 'not-sr-only'],\n      /**\n       * Floats\n       * @see https://tailwindcss.com/docs/float\n       */\n      float: [{\n        float: ['right', 'left', 'none', 'start', 'end']\n      }],\n      /**\n       * Clear\n       * @see https://tailwindcss.com/docs/clear\n       */\n      clear: [{\n        clear: ['left', 'right', 'both', 'none', 'start', 'end']\n      }],\n      /**\n       * Isolation\n       * @see https://tailwindcss.com/docs/isolation\n       */\n      isolation: ['isolate', 'isolation-auto'],\n      /**\n       * Object Fit\n       * @see https://tailwindcss.com/docs/object-fit\n       */\n      'object-fit': [{\n        object: ['contain', 'cover', 'fill', 'none', 'scale-down']\n      }],\n      /**\n       * Object Position\n       * @see https://tailwindcss.com/docs/object-position\n       */\n      'object-position': [{\n        object: scalePositionWithArbitrary()\n      }],\n      /**\n       * Overflow\n       * @see https://tailwindcss.com/docs/overflow\n       */\n      overflow: [{\n        overflow: scaleOverflow()\n      }],\n      /**\n       * Overflow X\n       * @see https://tailwindcss.com/docs/overflow\n       */\n      'overflow-x': [{\n        'overflow-x': scaleOverflow()\n      }],\n      /**\n       * Overflow Y\n       * @see https://tailwindcss.com/docs/overflow\n       */\n      'overflow-y': [{\n        'overflow-y': scaleOverflow()\n      }],\n      /**\n       * Overscroll Behavior\n       * @see https://tailwindcss.com/docs/overscroll-behavior\n       */\n      overscroll: [{\n        overscroll: scaleOverscroll()\n      }],\n      /**\n       * Overscroll Behavior X\n       * @see https://tailwindcss.com/docs/overscroll-behavior\n       */\n      'overscroll-x': [{\n        'overscroll-x': scaleOverscroll()\n      }],\n      /**\n       * Overscroll Behavior Y\n       * @see https://tailwindcss.com/docs/overscroll-behavior\n       */\n      'overscroll-y': [{\n        'overscroll-y': scaleOverscroll()\n      }],\n      /**\n       * Position\n       * @see https://tailwindcss.com/docs/position\n       */\n      position: ['static', 'fixed', 'absolute', 'relative', 'sticky'],\n      /**\n       * Inset\n       * @see https://tailwindcss.com/docs/top-right-bottom-left\n       */\n      inset: [{\n        inset: scaleInset()\n      }],\n      /**\n       * Inset Inline\n       * @see https://tailwindcss.com/docs/top-right-bottom-left\n       */\n      'inset-x': [{\n        'inset-x': scaleInset()\n      }],\n      /**\n       * Inset Block\n       * @see https://tailwindcss.com/docs/top-right-bottom-left\n       */\n      'inset-y': [{\n        'inset-y': scaleInset()\n      }],\n      /**\n       * Inset Inline Start\n       * @see https://tailwindcss.com/docs/top-right-bottom-left\n       * @todo class group will be renamed to `inset-s` in next major release\n       */\n      start: [{\n        'inset-s': scaleInset(),\n        /**\n         * @deprecated since Tailwind CSS v4.2.0 in favor of `inset-s-*` utilities.\n         * @see https://github.com/tailwindlabs/tailwindcss/pull/19613\n         */\n        start: scaleInset()\n      }],\n      /**\n       * Inset Inline End\n       * @see https://tailwindcss.com/docs/top-right-bottom-left\n       * @todo class group will be renamed to `inset-e` in next major release\n       */\n      end: [{\n        'inset-e': scaleInset(),\n        /**\n         * @deprecated since Tailwind CSS v4.2.0 in favor of `inset-e-*` utilities.\n         * @see https://github.com/tailwindlabs/tailwindcss/pull/19613\n         */\n        end: scaleInset()\n      }],\n      /**\n       * Inset Block Start\n       * @see https://tailwindcss.com/docs/top-right-bottom-left\n       */\n      'inset-bs': [{\n        'inset-bs': scaleInset()\n      }],\n      /**\n       * Inset Block End\n       * @see https://tailwindcss.com/docs/top-right-bottom-left\n       */\n      'inset-be': [{\n        'inset-be': scaleInset()\n      }],\n      /**\n       * Top\n       * @see https://tailwindcss.com/docs/top-right-bottom-left\n       */\n      top: [{\n        top: scaleInset()\n      }],\n      /**\n       * Right\n       * @see https://tailwindcss.com/docs/top-right-bottom-left\n       */\n      right: [{\n        right: scaleInset()\n      }],\n      /**\n       * Bottom\n       * @see https://tailwindcss.com/docs/top-right-bottom-left\n       */\n      bottom: [{\n        bottom: scaleInset()\n      }],\n      /**\n       * Left\n       * @see https://tailwindcss.com/docs/top-right-bottom-left\n       */\n      left: [{\n        left: scaleInset()\n      }],\n      /**\n       * Visibility\n       * @see https://tailwindcss.com/docs/visibility\n       */\n      visibility: ['visible', 'invisible', 'collapse'],\n      /**\n       * Z-Index\n       * @see https://tailwindcss.com/docs/z-index\n       */\n      z: [{\n        z: [isInteger, 'auto', isArbitraryVariable, isArbitraryValue]\n      }],\n      // ------------------------\n      // --- Flexbox and Grid ---\n      // ------------------------\n      /**\n       * Flex Basis\n       * @see https://tailwindcss.com/docs/flex-basis\n       */\n      basis: [{\n        basis: [isFraction, 'full', 'auto', themeContainer, ...scaleUnambiguousSpacing()]\n      }],\n      /**\n       * Flex Direction\n       * @see https://tailwindcss.com/docs/flex-direction\n       */\n      'flex-direction': [{\n        flex: ['row', 'row-reverse', 'col', 'col-reverse']\n      }],\n      /**\n       * Flex Wrap\n       * @see https://tailwindcss.com/docs/flex-wrap\n       */\n      'flex-wrap': [{\n        flex: ['nowrap', 'wrap', 'wrap-reverse']\n      }],\n      /**\n       * Flex\n       * @see https://tailwindcss.com/docs/flex\n       */\n      flex: [{\n        flex: [isNumber, isFraction, 'auto', 'initial', 'none', isArbitraryValue]\n      }],\n      /**\n       * Flex Grow\n       * @see https://tailwindcss.com/docs/flex-grow\n       */\n      grow: [{\n        grow: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Flex Shrink\n       * @see https://tailwindcss.com/docs/flex-shrink\n       */\n      shrink: [{\n        shrink: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Order\n       * @see https://tailwindcss.com/docs/order\n       */\n      order: [{\n        order: [isInteger, 'first', 'last', 'none', isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Grid Template Columns\n       * @see https://tailwindcss.com/docs/grid-template-columns\n       */\n      'grid-cols': [{\n        'grid-cols': scaleGridTemplateColsRows()\n      }],\n      /**\n       * Grid Column Start / End\n       * @see https://tailwindcss.com/docs/grid-column\n       */\n      'col-start-end': [{\n        col: scaleGridColRowStartAndEnd()\n      }],\n      /**\n       * Grid Column Start\n       * @see https://tailwindcss.com/docs/grid-column\n       */\n      'col-start': [{\n        'col-start': scaleGridColRowStartOrEnd()\n      }],\n      /**\n       * Grid Column End\n       * @see https://tailwindcss.com/docs/grid-column\n       */\n      'col-end': [{\n        'col-end': scaleGridColRowStartOrEnd()\n      }],\n      /**\n       * Grid Template Rows\n       * @see https://tailwindcss.com/docs/grid-template-rows\n       */\n      'grid-rows': [{\n        'grid-rows': scaleGridTemplateColsRows()\n      }],\n      /**\n       * Grid Row Start / End\n       * @see https://tailwindcss.com/docs/grid-row\n       */\n      'row-start-end': [{\n        row: scaleGridColRowStartAndEnd()\n      }],\n      /**\n       * Grid Row Start\n       * @see https://tailwindcss.com/docs/grid-row\n       */\n      'row-start': [{\n        'row-start': scaleGridColRowStartOrEnd()\n      }],\n      /**\n       * Grid Row End\n       * @see https://tailwindcss.com/docs/grid-row\n       */\n      'row-end': [{\n        'row-end': scaleGridColRowStartOrEnd()\n      }],\n      /**\n       * Grid Auto Flow\n       * @see https://tailwindcss.com/docs/grid-auto-flow\n       */\n      'grid-flow': [{\n        'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense']\n      }],\n      /**\n       * Grid Auto Columns\n       * @see https://tailwindcss.com/docs/grid-auto-columns\n       */\n      'auto-cols': [{\n        'auto-cols': scaleGridAutoColsRows()\n      }],\n      /**\n       * Grid Auto Rows\n       * @see https://tailwindcss.com/docs/grid-auto-rows\n       */\n      'auto-rows': [{\n        'auto-rows': scaleGridAutoColsRows()\n      }],\n      /**\n       * Gap\n       * @see https://tailwindcss.com/docs/gap\n       */\n      gap: [{\n        gap: scaleUnambiguousSpacing()\n      }],\n      /**\n       * Gap X\n       * @see https://tailwindcss.com/docs/gap\n       */\n      'gap-x': [{\n        'gap-x': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Gap Y\n       * @see https://tailwindcss.com/docs/gap\n       */\n      'gap-y': [{\n        'gap-y': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Justify Content\n       * @see https://tailwindcss.com/docs/justify-content\n       */\n      'justify-content': [{\n        justify: [...scaleAlignPrimaryAxis(), 'normal']\n      }],\n      /**\n       * Justify Items\n       * @see https://tailwindcss.com/docs/justify-items\n       */\n      'justify-items': [{\n        'justify-items': [...scaleAlignSecondaryAxis(), 'normal']\n      }],\n      /**\n       * Justify Self\n       * @see https://tailwindcss.com/docs/justify-self\n       */\n      'justify-self': [{\n        'justify-self': ['auto', ...scaleAlignSecondaryAxis()]\n      }],\n      /**\n       * Align Content\n       * @see https://tailwindcss.com/docs/align-content\n       */\n      'align-content': [{\n        content: ['normal', ...scaleAlignPrimaryAxis()]\n      }],\n      /**\n       * Align Items\n       * @see https://tailwindcss.com/docs/align-items\n       */\n      'align-items': [{\n        items: [...scaleAlignSecondaryAxis(), {\n          baseline: ['', 'last']\n        }]\n      }],\n      /**\n       * Align Self\n       * @see https://tailwindcss.com/docs/align-self\n       */\n      'align-self': [{\n        self: ['auto', ...scaleAlignSecondaryAxis(), {\n          baseline: ['', 'last']\n        }]\n      }],\n      /**\n       * Place Content\n       * @see https://tailwindcss.com/docs/place-content\n       */\n      'place-content': [{\n        'place-content': scaleAlignPrimaryAxis()\n      }],\n      /**\n       * Place Items\n       * @see https://tailwindcss.com/docs/place-items\n       */\n      'place-items': [{\n        'place-items': [...scaleAlignSecondaryAxis(), 'baseline']\n      }],\n      /**\n       * Place Self\n       * @see https://tailwindcss.com/docs/place-self\n       */\n      'place-self': [{\n        'place-self': ['auto', ...scaleAlignSecondaryAxis()]\n      }],\n      // Spacing\n      /**\n       * Padding\n       * @see https://tailwindcss.com/docs/padding\n       */\n      p: [{\n        p: scaleUnambiguousSpacing()\n      }],\n      /**\n       * Padding Inline\n       * @see https://tailwindcss.com/docs/padding\n       */\n      px: [{\n        px: scaleUnambiguousSpacing()\n      }],\n      /**\n       * Padding Block\n       * @see https://tailwindcss.com/docs/padding\n       */\n      py: [{\n        py: scaleUnambiguousSpacing()\n      }],\n      /**\n       * Padding Inline Start\n       * @see https://tailwindcss.com/docs/padding\n       */\n      ps: [{\n        ps: scaleUnambiguousSpacing()\n      }],\n      /**\n       * Padding Inline End\n       * @see https://tailwindcss.com/docs/padding\n       */\n      pe: [{\n        pe: scaleUnambiguousSpacing()\n      }],\n      /**\n       * Padding Block Start\n       * @see https://tailwindcss.com/docs/padding\n       */\n      pbs: [{\n        pbs: scaleUnambiguousSpacing()\n      }],\n      /**\n       * Padding Block End\n       * @see https://tailwindcss.com/docs/padding\n       */\n      pbe: [{\n        pbe: scaleUnambiguousSpacing()\n      }],\n      /**\n       * Padding Top\n       * @see https://tailwindcss.com/docs/padding\n       */\n      pt: [{\n        pt: scaleUnambiguousSpacing()\n      }],\n      /**\n       * Padding Right\n       * @see https://tailwindcss.com/docs/padding\n       */\n      pr: [{\n        pr: scaleUnambiguousSpacing()\n      }],\n      /**\n       * Padding Bottom\n       * @see https://tailwindcss.com/docs/padding\n       */\n      pb: [{\n        pb: scaleUnambiguousSpacing()\n      }],\n      /**\n       * Padding Left\n       * @see https://tailwindcss.com/docs/padding\n       */\n      pl: [{\n        pl: scaleUnambiguousSpacing()\n      }],\n      /**\n       * Margin\n       * @see https://tailwindcss.com/docs/margin\n       */\n      m: [{\n        m: scaleMargin()\n      }],\n      /**\n       * Margin Inline\n       * @see https://tailwindcss.com/docs/margin\n       */\n      mx: [{\n        mx: scaleMargin()\n      }],\n      /**\n       * Margin Block\n       * @see https://tailwindcss.com/docs/margin\n       */\n      my: [{\n        my: scaleMargin()\n      }],\n      /**\n       * Margin Inline Start\n       * @see https://tailwindcss.com/docs/margin\n       */\n      ms: [{\n        ms: scaleMargin()\n      }],\n      /**\n       * Margin Inline End\n       * @see https://tailwindcss.com/docs/margin\n       */\n      me: [{\n        me: scaleMargin()\n      }],\n      /**\n       * Margin Block Start\n       * @see https://tailwindcss.com/docs/margin\n       */\n      mbs: [{\n        mbs: scaleMargin()\n      }],\n      /**\n       * Margin Block End\n       * @see https://tailwindcss.com/docs/margin\n       */\n      mbe: [{\n        mbe: scaleMargin()\n      }],\n      /**\n       * Margin Top\n       * @see https://tailwindcss.com/docs/margin\n       */\n      mt: [{\n        mt: scaleMargin()\n      }],\n      /**\n       * Margin Right\n       * @see https://tailwindcss.com/docs/margin\n       */\n      mr: [{\n        mr: scaleMargin()\n      }],\n      /**\n       * Margin Bottom\n       * @see https://tailwindcss.com/docs/margin\n       */\n      mb: [{\n        mb: scaleMargin()\n      }],\n      /**\n       * Margin Left\n       * @see https://tailwindcss.com/docs/margin\n       */\n      ml: [{\n        ml: scaleMargin()\n      }],\n      /**\n       * Space Between X\n       * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n       */\n      'space-x': [{\n        'space-x': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Space Between X Reverse\n       * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n       */\n      'space-x-reverse': ['space-x-reverse'],\n      /**\n       * Space Between Y\n       * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n       */\n      'space-y': [{\n        'space-y': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Space Between Y Reverse\n       * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n       */\n      'space-y-reverse': ['space-y-reverse'],\n      // --------------\n      // --- Sizing ---\n      // --------------\n      /**\n       * Size\n       * @see https://tailwindcss.com/docs/width#setting-both-width-and-height\n       */\n      size: [{\n        size: scaleSizing()\n      }],\n      /**\n       * Inline Size\n       * @see https://tailwindcss.com/docs/width\n       */\n      'inline-size': [{\n        inline: ['auto', ...scaleSizingInline()]\n      }],\n      /**\n       * Min-Inline Size\n       * @see https://tailwindcss.com/docs/min-width\n       */\n      'min-inline-size': [{\n        'min-inline': ['auto', ...scaleSizingInline()]\n      }],\n      /**\n       * Max-Inline Size\n       * @see https://tailwindcss.com/docs/max-width\n       */\n      'max-inline-size': [{\n        'max-inline': ['none', ...scaleSizingInline()]\n      }],\n      /**\n       * Block Size\n       * @see https://tailwindcss.com/docs/height\n       */\n      'block-size': [{\n        block: ['auto', ...scaleSizingBlock()]\n      }],\n      /**\n       * Min-Block Size\n       * @see https://tailwindcss.com/docs/min-height\n       */\n      'min-block-size': [{\n        'min-block': ['auto', ...scaleSizingBlock()]\n      }],\n      /**\n       * Max-Block Size\n       * @see https://tailwindcss.com/docs/max-height\n       */\n      'max-block-size': [{\n        'max-block': ['none', ...scaleSizingBlock()]\n      }],\n      /**\n       * Width\n       * @see https://tailwindcss.com/docs/width\n       */\n      w: [{\n        w: [themeContainer, 'screen', ...scaleSizing()]\n      }],\n      /**\n       * Min-Width\n       * @see https://tailwindcss.com/docs/min-width\n       */\n      'min-w': [{\n        'min-w': [themeContainer, 'screen', /** Deprecated. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n        'none', ...scaleSizing()]\n      }],\n      /**\n       * Max-Width\n       * @see https://tailwindcss.com/docs/max-width\n       */\n      'max-w': [{\n        'max-w': [themeContainer, 'screen', 'none', /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n        'prose', /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n        {\n          screen: [themeBreakpoint]\n        }, ...scaleSizing()]\n      }],\n      /**\n       * Height\n       * @see https://tailwindcss.com/docs/height\n       */\n      h: [{\n        h: ['screen', 'lh', ...scaleSizing()]\n      }],\n      /**\n       * Min-Height\n       * @see https://tailwindcss.com/docs/min-height\n       */\n      'min-h': [{\n        'min-h': ['screen', 'lh', 'none', ...scaleSizing()]\n      }],\n      /**\n       * Max-Height\n       * @see https://tailwindcss.com/docs/max-height\n       */\n      'max-h': [{\n        'max-h': ['screen', 'lh', ...scaleSizing()]\n      }],\n      // ------------------\n      // --- Typography ---\n      // ------------------\n      /**\n       * Font Size\n       * @see https://tailwindcss.com/docs/font-size\n       */\n      'font-size': [{\n        text: ['base', themeText, isArbitraryVariableLength, isArbitraryLength]\n      }],\n      /**\n       * Font Smoothing\n       * @see https://tailwindcss.com/docs/font-smoothing\n       */\n      'font-smoothing': ['antialiased', 'subpixel-antialiased'],\n      /**\n       * Font Style\n       * @see https://tailwindcss.com/docs/font-style\n       */\n      'font-style': ['italic', 'not-italic'],\n      /**\n       * Font Weight\n       * @see https://tailwindcss.com/docs/font-weight\n       */\n      'font-weight': [{\n        font: [themeFontWeight, isArbitraryVariableWeight, isArbitraryWeight]\n      }],\n      /**\n       * Font Stretch\n       * @see https://tailwindcss.com/docs/font-stretch\n       */\n      'font-stretch': [{\n        'font-stretch': ['ultra-condensed', 'extra-condensed', 'condensed', 'semi-condensed', 'normal', 'semi-expanded', 'expanded', 'extra-expanded', 'ultra-expanded', isPercent, isArbitraryValue]\n      }],\n      /**\n       * Font Family\n       * @see https://tailwindcss.com/docs/font-family\n       */\n      'font-family': [{\n        font: [isArbitraryVariableFamilyName, isArbitraryFamilyName, themeFont]\n      }],\n      /**\n       * Font Feature Settings\n       * @see https://tailwindcss.com/docs/font-feature-settings\n       */\n      'font-features': [{\n        'font-features': [isArbitraryValue]\n      }],\n      /**\n       * Font Variant Numeric\n       * @see https://tailwindcss.com/docs/font-variant-numeric\n       */\n      'fvn-normal': ['normal-nums'],\n      /**\n       * Font Variant Numeric\n       * @see https://tailwindcss.com/docs/font-variant-numeric\n       */\n      'fvn-ordinal': ['ordinal'],\n      /**\n       * Font Variant Numeric\n       * @see https://tailwindcss.com/docs/font-variant-numeric\n       */\n      'fvn-slashed-zero': ['slashed-zero'],\n      /**\n       * Font Variant Numeric\n       * @see https://tailwindcss.com/docs/font-variant-numeric\n       */\n      'fvn-figure': ['lining-nums', 'oldstyle-nums'],\n      /**\n       * Font Variant Numeric\n       * @see https://tailwindcss.com/docs/font-variant-numeric\n       */\n      'fvn-spacing': ['proportional-nums', 'tabular-nums'],\n      /**\n       * Font Variant Numeric\n       * @see https://tailwindcss.com/docs/font-variant-numeric\n       */\n      'fvn-fraction': ['diagonal-fractions', 'stacked-fractions'],\n      /**\n       * Letter Spacing\n       * @see https://tailwindcss.com/docs/letter-spacing\n       */\n      tracking: [{\n        tracking: [themeTracking, isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Line Clamp\n       * @see https://tailwindcss.com/docs/line-clamp\n       */\n      'line-clamp': [{\n        'line-clamp': [isNumber, 'none', isArbitraryVariable, isArbitraryNumber]\n      }],\n      /**\n       * Line Height\n       * @see https://tailwindcss.com/docs/line-height\n       */\n      leading: [{\n        leading: [/** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n        themeLeading, ...scaleUnambiguousSpacing()]\n      }],\n      /**\n       * List Style Image\n       * @see https://tailwindcss.com/docs/list-style-image\n       */\n      'list-image': [{\n        'list-image': ['none', isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * List Style Position\n       * @see https://tailwindcss.com/docs/list-style-position\n       */\n      'list-style-position': [{\n        list: ['inside', 'outside']\n      }],\n      /**\n       * List Style Type\n       * @see https://tailwindcss.com/docs/list-style-type\n       */\n      'list-style-type': [{\n        list: ['disc', 'decimal', 'none', isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Text Alignment\n       * @see https://tailwindcss.com/docs/text-align\n       */\n      'text-alignment': [{\n        text: ['left', 'center', 'right', 'justify', 'start', 'end']\n      }],\n      /**\n       * Placeholder Color\n       * @deprecated since Tailwind CSS v3.0.0\n       * @see https://v3.tailwindcss.com/docs/placeholder-color\n       */\n      'placeholder-color': [{\n        placeholder: scaleColor()\n      }],\n      /**\n       * Text Color\n       * @see https://tailwindcss.com/docs/text-color\n       */\n      'text-color': [{\n        text: scaleColor()\n      }],\n      /**\n       * Text Decoration\n       * @see https://tailwindcss.com/docs/text-decoration\n       */\n      'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'],\n      /**\n       * Text Decoration Style\n       * @see https://tailwindcss.com/docs/text-decoration-style\n       */\n      'text-decoration-style': [{\n        decoration: [...scaleLineStyle(), 'wavy']\n      }],\n      /**\n       * Text Decoration Thickness\n       * @see https://tailwindcss.com/docs/text-decoration-thickness\n       */\n      'text-decoration-thickness': [{\n        decoration: [isNumber, 'from-font', 'auto', isArbitraryVariable, isArbitraryLength]\n      }],\n      /**\n       * Text Decoration Color\n       * @see https://tailwindcss.com/docs/text-decoration-color\n       */\n      'text-decoration-color': [{\n        decoration: scaleColor()\n      }],\n      /**\n       * Text Underline Offset\n       * @see https://tailwindcss.com/docs/text-underline-offset\n       */\n      'underline-offset': [{\n        'underline-offset': [isNumber, 'auto', isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Text Transform\n       * @see https://tailwindcss.com/docs/text-transform\n       */\n      'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'],\n      /**\n       * Text Overflow\n       * @see https://tailwindcss.com/docs/text-overflow\n       */\n      'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'],\n      /**\n       * Text Wrap\n       * @see https://tailwindcss.com/docs/text-wrap\n       */\n      'text-wrap': [{\n        text: ['wrap', 'nowrap', 'balance', 'pretty']\n      }],\n      /**\n       * Text Indent\n       * @see https://tailwindcss.com/docs/text-indent\n       */\n      indent: [{\n        indent: scaleUnambiguousSpacing()\n      }],\n      /**\n       * Tab Size\n       * @see https://tailwindcss.com/docs/tab-size\n       */\n      'tab-size': [{\n        tab: [isInteger, isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Vertical Alignment\n       * @see https://tailwindcss.com/docs/vertical-align\n       */\n      'vertical-align': [{\n        align: ['baseline', 'top', 'middle', 'bottom', 'text-top', 'text-bottom', 'sub', 'super', isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Whitespace\n       * @see https://tailwindcss.com/docs/whitespace\n       */\n      whitespace: [{\n        whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces']\n      }],\n      /**\n       * Word Break\n       * @see https://tailwindcss.com/docs/word-break\n       */\n      break: [{\n        break: ['normal', 'words', 'all', 'keep']\n      }],\n      /**\n       * Overflow Wrap\n       * @see https://tailwindcss.com/docs/overflow-wrap\n       */\n      wrap: [{\n        wrap: ['break-word', 'anywhere', 'normal']\n      }],\n      /**\n       * Hyphens\n       * @see https://tailwindcss.com/docs/hyphens\n       */\n      hyphens: [{\n        hyphens: ['none', 'manual', 'auto']\n      }],\n      /**\n       * Content\n       * @see https://tailwindcss.com/docs/content\n       */\n      content: [{\n        content: ['none', isArbitraryVariable, isArbitraryValue]\n      }],\n      // -------------------\n      // --- Backgrounds ---\n      // -------------------\n      /**\n       * Background Attachment\n       * @see https://tailwindcss.com/docs/background-attachment\n       */\n      'bg-attachment': [{\n        bg: ['fixed', 'local', 'scroll']\n      }],\n      /**\n       * Background Clip\n       * @see https://tailwindcss.com/docs/background-clip\n       */\n      'bg-clip': [{\n        'bg-clip': ['border', 'padding', 'content', 'text']\n      }],\n      /**\n       * Background Origin\n       * @see https://tailwindcss.com/docs/background-origin\n       */\n      'bg-origin': [{\n        'bg-origin': ['border', 'padding', 'content']\n      }],\n      /**\n       * Background Position\n       * @see https://tailwindcss.com/docs/background-position\n       */\n      'bg-position': [{\n        bg: scaleBgPosition()\n      }],\n      /**\n       * Background Repeat\n       * @see https://tailwindcss.com/docs/background-repeat\n       */\n      'bg-repeat': [{\n        bg: scaleBgRepeat()\n      }],\n      /**\n       * Background Size\n       * @see https://tailwindcss.com/docs/background-size\n       */\n      'bg-size': [{\n        bg: scaleBgSize()\n      }],\n      /**\n       * Background Image\n       * @see https://tailwindcss.com/docs/background-image\n       */\n      'bg-image': [{\n        bg: ['none', {\n          linear: [{\n            to: ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl']\n          }, isInteger, isArbitraryVariable, isArbitraryValue],\n          radial: ['', isArbitraryVariable, isArbitraryValue],\n          conic: [isInteger, isArbitraryVariable, isArbitraryValue]\n        }, isArbitraryVariableImage, isArbitraryImage]\n      }],\n      /**\n       * Background Color\n       * @see https://tailwindcss.com/docs/background-color\n       */\n      'bg-color': [{\n        bg: scaleColor()\n      }],\n      /**\n       * Gradient Color Stops From Position\n       * @see https://tailwindcss.com/docs/gradient-color-stops\n       */\n      'gradient-from-pos': [{\n        from: scaleGradientStopPosition()\n      }],\n      /**\n       * Gradient Color Stops Via Position\n       * @see https://tailwindcss.com/docs/gradient-color-stops\n       */\n      'gradient-via-pos': [{\n        via: scaleGradientStopPosition()\n      }],\n      /**\n       * Gradient Color Stops To Position\n       * @see https://tailwindcss.com/docs/gradient-color-stops\n       */\n      'gradient-to-pos': [{\n        to: scaleGradientStopPosition()\n      }],\n      /**\n       * Gradient Color Stops From\n       * @see https://tailwindcss.com/docs/gradient-color-stops\n       */\n      'gradient-from': [{\n        from: scaleColor()\n      }],\n      /**\n       * Gradient Color Stops Via\n       * @see https://tailwindcss.com/docs/gradient-color-stops\n       */\n      'gradient-via': [{\n        via: scaleColor()\n      }],\n      /**\n       * Gradient Color Stops To\n       * @see https://tailwindcss.com/docs/gradient-color-stops\n       */\n      'gradient-to': [{\n        to: scaleColor()\n      }],\n      // ---------------\n      // --- Borders ---\n      // ---------------\n      /**\n       * Border Radius\n       * @see https://tailwindcss.com/docs/border-radius\n       */\n      rounded: [{\n        rounded: scaleRadius()\n      }],\n      /**\n       * Border Radius Start\n       * @see https://tailwindcss.com/docs/border-radius\n       */\n      'rounded-s': [{\n        'rounded-s': scaleRadius()\n      }],\n      /**\n       * Border Radius End\n       * @see https://tailwindcss.com/docs/border-radius\n       */\n      'rounded-e': [{\n        'rounded-e': scaleRadius()\n      }],\n      /**\n       * Border Radius Top\n       * @see https://tailwindcss.com/docs/border-radius\n       */\n      'rounded-t': [{\n        'rounded-t': scaleRadius()\n      }],\n      /**\n       * Border Radius Right\n       * @see https://tailwindcss.com/docs/border-radius\n       */\n      'rounded-r': [{\n        'rounded-r': scaleRadius()\n      }],\n      /**\n       * Border Radius Bottom\n       * @see https://tailwindcss.com/docs/border-radius\n       */\n      'rounded-b': [{\n        'rounded-b': scaleRadius()\n      }],\n      /**\n       * Border Radius Left\n       * @see https://tailwindcss.com/docs/border-radius\n       */\n      'rounded-l': [{\n        'rounded-l': scaleRadius()\n      }],\n      /**\n       * Border Radius Start Start\n       * @see https://tailwindcss.com/docs/border-radius\n       */\n      'rounded-ss': [{\n        'rounded-ss': scaleRadius()\n      }],\n      /**\n       * Border Radius Start End\n       * @see https://tailwindcss.com/docs/border-radius\n       */\n      'rounded-se': [{\n        'rounded-se': scaleRadius()\n      }],\n      /**\n       * Border Radius End End\n       * @see https://tailwindcss.com/docs/border-radius\n       */\n      'rounded-ee': [{\n        'rounded-ee': scaleRadius()\n      }],\n      /**\n       * Border Radius End Start\n       * @see https://tailwindcss.com/docs/border-radius\n       */\n      'rounded-es': [{\n        'rounded-es': scaleRadius()\n      }],\n      /**\n       * Border Radius Top Left\n       * @see https://tailwindcss.com/docs/border-radius\n       */\n      'rounded-tl': [{\n        'rounded-tl': scaleRadius()\n      }],\n      /**\n       * Border Radius Top Right\n       * @see https://tailwindcss.com/docs/border-radius\n       */\n      'rounded-tr': [{\n        'rounded-tr': scaleRadius()\n      }],\n      /**\n       * Border Radius Bottom Right\n       * @see https://tailwindcss.com/docs/border-radius\n       */\n      'rounded-br': [{\n        'rounded-br': scaleRadius()\n      }],\n      /**\n       * Border Radius Bottom Left\n       * @see https://tailwindcss.com/docs/border-radius\n       */\n      'rounded-bl': [{\n        'rounded-bl': scaleRadius()\n      }],\n      /**\n       * Border Width\n       * @see https://tailwindcss.com/docs/border-width\n       */\n      'border-w': [{\n        border: scaleBorderWidth()\n      }],\n      /**\n       * Border Width Inline\n       * @see https://tailwindcss.com/docs/border-width\n       */\n      'border-w-x': [{\n        'border-x': scaleBorderWidth()\n      }],\n      /**\n       * Border Width Block\n       * @see https://tailwindcss.com/docs/border-width\n       */\n      'border-w-y': [{\n        'border-y': scaleBorderWidth()\n      }],\n      /**\n       * Border Width Inline Start\n       * @see https://tailwindcss.com/docs/border-width\n       */\n      'border-w-s': [{\n        'border-s': scaleBorderWidth()\n      }],\n      /**\n       * Border Width Inline End\n       * @see https://tailwindcss.com/docs/border-width\n       */\n      'border-w-e': [{\n        'border-e': scaleBorderWidth()\n      }],\n      /**\n       * Border Width Block Start\n       * @see https://tailwindcss.com/docs/border-width\n       */\n      'border-w-bs': [{\n        'border-bs': scaleBorderWidth()\n      }],\n      /**\n       * Border Width Block End\n       * @see https://tailwindcss.com/docs/border-width\n       */\n      'border-w-be': [{\n        'border-be': scaleBorderWidth()\n      }],\n      /**\n       * Border Width Top\n       * @see https://tailwindcss.com/docs/border-width\n       */\n      'border-w-t': [{\n        'border-t': scaleBorderWidth()\n      }],\n      /**\n       * Border Width Right\n       * @see https://tailwindcss.com/docs/border-width\n       */\n      'border-w-r': [{\n        'border-r': scaleBorderWidth()\n      }],\n      /**\n       * Border Width Bottom\n       * @see https://tailwindcss.com/docs/border-width\n       */\n      'border-w-b': [{\n        'border-b': scaleBorderWidth()\n      }],\n      /**\n       * Border Width Left\n       * @see https://tailwindcss.com/docs/border-width\n       */\n      'border-w-l': [{\n        'border-l': scaleBorderWidth()\n      }],\n      /**\n       * Divide Width X\n       * @see https://tailwindcss.com/docs/border-width#between-children\n       */\n      'divide-x': [{\n        'divide-x': scaleBorderWidth()\n      }],\n      /**\n       * Divide Width X Reverse\n       * @see https://tailwindcss.com/docs/border-width#between-children\n       */\n      'divide-x-reverse': ['divide-x-reverse'],\n      /**\n       * Divide Width Y\n       * @see https://tailwindcss.com/docs/border-width#between-children\n       */\n      'divide-y': [{\n        'divide-y': scaleBorderWidth()\n      }],\n      /**\n       * Divide Width Y Reverse\n       * @see https://tailwindcss.com/docs/border-width#between-children\n       */\n      'divide-y-reverse': ['divide-y-reverse'],\n      /**\n       * Border Style\n       * @see https://tailwindcss.com/docs/border-style\n       */\n      'border-style': [{\n        border: [...scaleLineStyle(), 'hidden', 'none']\n      }],\n      /**\n       * Divide Style\n       * @see https://tailwindcss.com/docs/border-style#setting-the-divider-style\n       */\n      'divide-style': [{\n        divide: [...scaleLineStyle(), 'hidden', 'none']\n      }],\n      /**\n       * Border Color\n       * @see https://tailwindcss.com/docs/border-color\n       */\n      'border-color': [{\n        border: scaleColor()\n      }],\n      /**\n       * Border Color Inline\n       * @see https://tailwindcss.com/docs/border-color\n       */\n      'border-color-x': [{\n        'border-x': scaleColor()\n      }],\n      /**\n       * Border Color Block\n       * @see https://tailwindcss.com/docs/border-color\n       */\n      'border-color-y': [{\n        'border-y': scaleColor()\n      }],\n      /**\n       * Border Color Inline Start\n       * @see https://tailwindcss.com/docs/border-color\n       */\n      'border-color-s': [{\n        'border-s': scaleColor()\n      }],\n      /**\n       * Border Color Inline End\n       * @see https://tailwindcss.com/docs/border-color\n       */\n      'border-color-e': [{\n        'border-e': scaleColor()\n      }],\n      /**\n       * Border Color Block Start\n       * @see https://tailwindcss.com/docs/border-color\n       */\n      'border-color-bs': [{\n        'border-bs': scaleColor()\n      }],\n      /**\n       * Border Color Block End\n       * @see https://tailwindcss.com/docs/border-color\n       */\n      'border-color-be': [{\n        'border-be': scaleColor()\n      }],\n      /**\n       * Border Color Top\n       * @see https://tailwindcss.com/docs/border-color\n       */\n      'border-color-t': [{\n        'border-t': scaleColor()\n      }],\n      /**\n       * Border Color Right\n       * @see https://tailwindcss.com/docs/border-color\n       */\n      'border-color-r': [{\n        'border-r': scaleColor()\n      }],\n      /**\n       * Border Color Bottom\n       * @see https://tailwindcss.com/docs/border-color\n       */\n      'border-color-b': [{\n        'border-b': scaleColor()\n      }],\n      /**\n       * Border Color Left\n       * @see https://tailwindcss.com/docs/border-color\n       */\n      'border-color-l': [{\n        'border-l': scaleColor()\n      }],\n      /**\n       * Divide Color\n       * @see https://tailwindcss.com/docs/divide-color\n       */\n      'divide-color': [{\n        divide: scaleColor()\n      }],\n      /**\n       * Outline Style\n       * @see https://tailwindcss.com/docs/outline-style\n       */\n      'outline-style': [{\n        outline: [...scaleLineStyle(), 'none', 'hidden']\n      }],\n      /**\n       * Outline Offset\n       * @see https://tailwindcss.com/docs/outline-offset\n       */\n      'outline-offset': [{\n        'outline-offset': [isNumber, isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Outline Width\n       * @see https://tailwindcss.com/docs/outline-width\n       */\n      'outline-w': [{\n        outline: ['', isNumber, isArbitraryVariableLength, isArbitraryLength]\n      }],\n      /**\n       * Outline Color\n       * @see https://tailwindcss.com/docs/outline-color\n       */\n      'outline-color': [{\n        outline: scaleColor()\n      }],\n      // ---------------\n      // --- Effects ---\n      // ---------------\n      /**\n       * Box Shadow\n       * @see https://tailwindcss.com/docs/box-shadow\n       */\n      shadow: [{\n        shadow: [\n        // Deprecated since Tailwind CSS v4.0.0\n        '', 'none', themeShadow, isArbitraryVariableShadow, isArbitraryShadow]\n      }],\n      /**\n       * Box Shadow Color\n       * @see https://tailwindcss.com/docs/box-shadow#setting-the-shadow-color\n       */\n      'shadow-color': [{\n        shadow: scaleColor()\n      }],\n      /**\n       * Inset Box Shadow\n       * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-shadow\n       */\n      'inset-shadow': [{\n        'inset-shadow': ['none', themeInsetShadow, isArbitraryVariableShadow, isArbitraryShadow]\n      }],\n      /**\n       * Inset Box Shadow Color\n       * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-shadow-color\n       */\n      'inset-shadow-color': [{\n        'inset-shadow': scaleColor()\n      }],\n      /**\n       * Ring Width\n       * @see https://tailwindcss.com/docs/box-shadow#adding-a-ring\n       */\n      'ring-w': [{\n        ring: scaleBorderWidth()\n      }],\n      /**\n       * Ring Width Inset\n       * @see https://v3.tailwindcss.com/docs/ring-width#inset-rings\n       * @deprecated since Tailwind CSS v4.0.0\n       * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n       */\n      'ring-w-inset': ['ring-inset'],\n      /**\n       * Ring Color\n       * @see https://tailwindcss.com/docs/box-shadow#setting-the-ring-color\n       */\n      'ring-color': [{\n        ring: scaleColor()\n      }],\n      /**\n       * Ring Offset Width\n       * @see https://v3.tailwindcss.com/docs/ring-offset-width\n       * @deprecated since Tailwind CSS v4.0.0\n       * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n       */\n      'ring-offset-w': [{\n        'ring-offset': [isNumber, isArbitraryLength]\n      }],\n      /**\n       * Ring Offset Color\n       * @see https://v3.tailwindcss.com/docs/ring-offset-color\n       * @deprecated since Tailwind CSS v4.0.0\n       * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n       */\n      'ring-offset-color': [{\n        'ring-offset': scaleColor()\n      }],\n      /**\n       * Inset Ring Width\n       * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-ring\n       */\n      'inset-ring-w': [{\n        'inset-ring': scaleBorderWidth()\n      }],\n      /**\n       * Inset Ring Color\n       * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-ring-color\n       */\n      'inset-ring-color': [{\n        'inset-ring': scaleColor()\n      }],\n      /**\n       * Text Shadow\n       * @see https://tailwindcss.com/docs/text-shadow\n       */\n      'text-shadow': [{\n        'text-shadow': ['none', themeTextShadow, isArbitraryVariableShadow, isArbitraryShadow]\n      }],\n      /**\n       * Text Shadow Color\n       * @see https://tailwindcss.com/docs/text-shadow#setting-the-shadow-color\n       */\n      'text-shadow-color': [{\n        'text-shadow': scaleColor()\n      }],\n      /**\n       * Opacity\n       * @see https://tailwindcss.com/docs/opacity\n       */\n      opacity: [{\n        opacity: [isNumber, isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Mix Blend Mode\n       * @see https://tailwindcss.com/docs/mix-blend-mode\n       */\n      'mix-blend': [{\n        'mix-blend': [...scaleBlendMode(), 'plus-darker', 'plus-lighter']\n      }],\n      /**\n       * Background Blend Mode\n       * @see https://tailwindcss.com/docs/background-blend-mode\n       */\n      'bg-blend': [{\n        'bg-blend': scaleBlendMode()\n      }],\n      /**\n       * Mask Clip\n       * @see https://tailwindcss.com/docs/mask-clip\n       */\n      'mask-clip': [{\n        'mask-clip': ['border', 'padding', 'content', 'fill', 'stroke', 'view']\n      }, 'mask-no-clip'],\n      /**\n       * Mask Composite\n       * @see https://tailwindcss.com/docs/mask-composite\n       */\n      'mask-composite': [{\n        mask: ['add', 'subtract', 'intersect', 'exclude']\n      }],\n      /**\n       * Mask Image\n       * @see https://tailwindcss.com/docs/mask-image\n       */\n      'mask-image-linear-pos': [{\n        'mask-linear': [isNumber]\n      }],\n      'mask-image-linear-from-pos': [{\n        'mask-linear-from': scaleMaskImagePosition()\n      }],\n      'mask-image-linear-to-pos': [{\n        'mask-linear-to': scaleMaskImagePosition()\n      }],\n      'mask-image-linear-from-color': [{\n        'mask-linear-from': scaleColor()\n      }],\n      'mask-image-linear-to-color': [{\n        'mask-linear-to': scaleColor()\n      }],\n      'mask-image-t-from-pos': [{\n        'mask-t-from': scaleMaskImagePosition()\n      }],\n      'mask-image-t-to-pos': [{\n        'mask-t-to': scaleMaskImagePosition()\n      }],\n      'mask-image-t-from-color': [{\n        'mask-t-from': scaleColor()\n      }],\n      'mask-image-t-to-color': [{\n        'mask-t-to': scaleColor()\n      }],\n      'mask-image-r-from-pos': [{\n        'mask-r-from': scaleMaskImagePosition()\n      }],\n      'mask-image-r-to-pos': [{\n        'mask-r-to': scaleMaskImagePosition()\n      }],\n      'mask-image-r-from-color': [{\n        'mask-r-from': scaleColor()\n      }],\n      'mask-image-r-to-color': [{\n        'mask-r-to': scaleColor()\n      }],\n      'mask-image-b-from-pos': [{\n        'mask-b-from': scaleMaskImagePosition()\n      }],\n      'mask-image-b-to-pos': [{\n        'mask-b-to': scaleMaskImagePosition()\n      }],\n      'mask-image-b-from-color': [{\n        'mask-b-from': scaleColor()\n      }],\n      'mask-image-b-to-color': [{\n        'mask-b-to': scaleColor()\n      }],\n      'mask-image-l-from-pos': [{\n        'mask-l-from': scaleMaskImagePosition()\n      }],\n      'mask-image-l-to-pos': [{\n        'mask-l-to': scaleMaskImagePosition()\n      }],\n      'mask-image-l-from-color': [{\n        'mask-l-from': scaleColor()\n      }],\n      'mask-image-l-to-color': [{\n        'mask-l-to': scaleColor()\n      }],\n      'mask-image-x-from-pos': [{\n        'mask-x-from': scaleMaskImagePosition()\n      }],\n      'mask-image-x-to-pos': [{\n        'mask-x-to': scaleMaskImagePosition()\n      }],\n      'mask-image-x-from-color': [{\n        'mask-x-from': scaleColor()\n      }],\n      'mask-image-x-to-color': [{\n        'mask-x-to': scaleColor()\n      }],\n      'mask-image-y-from-pos': [{\n        'mask-y-from': scaleMaskImagePosition()\n      }],\n      'mask-image-y-to-pos': [{\n        'mask-y-to': scaleMaskImagePosition()\n      }],\n      'mask-image-y-from-color': [{\n        'mask-y-from': scaleColor()\n      }],\n      'mask-image-y-to-color': [{\n        'mask-y-to': scaleColor()\n      }],\n      'mask-image-radial': [{\n        'mask-radial': [isArbitraryVariable, isArbitraryValue]\n      }],\n      'mask-image-radial-from-pos': [{\n        'mask-radial-from': scaleMaskImagePosition()\n      }],\n      'mask-image-radial-to-pos': [{\n        'mask-radial-to': scaleMaskImagePosition()\n      }],\n      'mask-image-radial-from-color': [{\n        'mask-radial-from': scaleColor()\n      }],\n      'mask-image-radial-to-color': [{\n        'mask-radial-to': scaleColor()\n      }],\n      'mask-image-radial-shape': [{\n        'mask-radial': ['circle', 'ellipse']\n      }],\n      'mask-image-radial-size': [{\n        'mask-radial': [{\n          closest: ['side', 'corner'],\n          farthest: ['side', 'corner']\n        }]\n      }],\n      'mask-image-radial-pos': [{\n        'mask-radial-at': scalePosition()\n      }],\n      'mask-image-conic-pos': [{\n        'mask-conic': [isNumber]\n      }],\n      'mask-image-conic-from-pos': [{\n        'mask-conic-from': scaleMaskImagePosition()\n      }],\n      'mask-image-conic-to-pos': [{\n        'mask-conic-to': scaleMaskImagePosition()\n      }],\n      'mask-image-conic-from-color': [{\n        'mask-conic-from': scaleColor()\n      }],\n      'mask-image-conic-to-color': [{\n        'mask-conic-to': scaleColor()\n      }],\n      /**\n       * Mask Mode\n       * @see https://tailwindcss.com/docs/mask-mode\n       */\n      'mask-mode': [{\n        mask: ['alpha', 'luminance', 'match']\n      }],\n      /**\n       * Mask Origin\n       * @see https://tailwindcss.com/docs/mask-origin\n       */\n      'mask-origin': [{\n        'mask-origin': ['border', 'padding', 'content', 'fill', 'stroke', 'view']\n      }],\n      /**\n       * Mask Position\n       * @see https://tailwindcss.com/docs/mask-position\n       */\n      'mask-position': [{\n        mask: scaleBgPosition()\n      }],\n      /**\n       * Mask Repeat\n       * @see https://tailwindcss.com/docs/mask-repeat\n       */\n      'mask-repeat': [{\n        mask: scaleBgRepeat()\n      }],\n      /**\n       * Mask Size\n       * @see https://tailwindcss.com/docs/mask-size\n       */\n      'mask-size': [{\n        mask: scaleBgSize()\n      }],\n      /**\n       * Mask Type\n       * @see https://tailwindcss.com/docs/mask-type\n       */\n      'mask-type': [{\n        'mask-type': ['alpha', 'luminance']\n      }],\n      /**\n       * Mask Image\n       * @see https://tailwindcss.com/docs/mask-image\n       */\n      'mask-image': [{\n        mask: ['none', isArbitraryVariable, isArbitraryValue]\n      }],\n      // ---------------\n      // --- Filters ---\n      // ---------------\n      /**\n       * Filter\n       * @see https://tailwindcss.com/docs/filter\n       */\n      filter: [{\n        filter: [\n        // Deprecated since Tailwind CSS v3.0.0\n        '', 'none', isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Blur\n       * @see https://tailwindcss.com/docs/blur\n       */\n      blur: [{\n        blur: scaleBlur()\n      }],\n      /**\n       * Brightness\n       * @see https://tailwindcss.com/docs/brightness\n       */\n      brightness: [{\n        brightness: [isNumber, isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Contrast\n       * @see https://tailwindcss.com/docs/contrast\n       */\n      contrast: [{\n        contrast: [isNumber, isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Drop Shadow\n       * @see https://tailwindcss.com/docs/drop-shadow\n       */\n      'drop-shadow': [{\n        'drop-shadow': [\n        // Deprecated since Tailwind CSS v4.0.0\n        '', 'none', themeDropShadow, isArbitraryVariableShadow, isArbitraryShadow]\n      }],\n      /**\n       * Drop Shadow Color\n       * @see https://tailwindcss.com/docs/filter-drop-shadow#setting-the-shadow-color\n       */\n      'drop-shadow-color': [{\n        'drop-shadow': scaleColor()\n      }],\n      /**\n       * Grayscale\n       * @see https://tailwindcss.com/docs/grayscale\n       */\n      grayscale: [{\n        grayscale: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Hue Rotate\n       * @see https://tailwindcss.com/docs/hue-rotate\n       */\n      'hue-rotate': [{\n        'hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Invert\n       * @see https://tailwindcss.com/docs/invert\n       */\n      invert: [{\n        invert: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Saturate\n       * @see https://tailwindcss.com/docs/saturate\n       */\n      saturate: [{\n        saturate: [isNumber, isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Sepia\n       * @see https://tailwindcss.com/docs/sepia\n       */\n      sepia: [{\n        sepia: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Backdrop Filter\n       * @see https://tailwindcss.com/docs/backdrop-filter\n       */\n      'backdrop-filter': [{\n        'backdrop-filter': [\n        // Deprecated since Tailwind CSS v3.0.0\n        '', 'none', isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Backdrop Blur\n       * @see https://tailwindcss.com/docs/backdrop-blur\n       */\n      'backdrop-blur': [{\n        'backdrop-blur': scaleBlur()\n      }],\n      /**\n       * Backdrop Brightness\n       * @see https://tailwindcss.com/docs/backdrop-brightness\n       */\n      'backdrop-brightness': [{\n        'backdrop-brightness': [isNumber, isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Backdrop Contrast\n       * @see https://tailwindcss.com/docs/backdrop-contrast\n       */\n      'backdrop-contrast': [{\n        'backdrop-contrast': [isNumber, isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Backdrop Grayscale\n       * @see https://tailwindcss.com/docs/backdrop-grayscale\n       */\n      'backdrop-grayscale': [{\n        'backdrop-grayscale': ['', isNumber, isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Backdrop Hue Rotate\n       * @see https://tailwindcss.com/docs/backdrop-hue-rotate\n       */\n      'backdrop-hue-rotate': [{\n        'backdrop-hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Backdrop Invert\n       * @see https://tailwindcss.com/docs/backdrop-invert\n       */\n      'backdrop-invert': [{\n        'backdrop-invert': ['', isNumber, isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Backdrop Opacity\n       * @see https://tailwindcss.com/docs/backdrop-opacity\n       */\n      'backdrop-opacity': [{\n        'backdrop-opacity': [isNumber, isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Backdrop Saturate\n       * @see https://tailwindcss.com/docs/backdrop-saturate\n       */\n      'backdrop-saturate': [{\n        'backdrop-saturate': [isNumber, isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Backdrop Sepia\n       * @see https://tailwindcss.com/docs/backdrop-sepia\n       */\n      'backdrop-sepia': [{\n        'backdrop-sepia': ['', isNumber, isArbitraryVariable, isArbitraryValue]\n      }],\n      // --------------\n      // --- Tables ---\n      // --------------\n      /**\n       * Border Collapse\n       * @see https://tailwindcss.com/docs/border-collapse\n       */\n      'border-collapse': [{\n        border: ['collapse', 'separate']\n      }],\n      /**\n       * Border Spacing\n       * @see https://tailwindcss.com/docs/border-spacing\n       */\n      'border-spacing': [{\n        'border-spacing': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Border Spacing X\n       * @see https://tailwindcss.com/docs/border-spacing\n       */\n      'border-spacing-x': [{\n        'border-spacing-x': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Border Spacing Y\n       * @see https://tailwindcss.com/docs/border-spacing\n       */\n      'border-spacing-y': [{\n        'border-spacing-y': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Table Layout\n       * @see https://tailwindcss.com/docs/table-layout\n       */\n      'table-layout': [{\n        table: ['auto', 'fixed']\n      }],\n      /**\n       * Caption Side\n       * @see https://tailwindcss.com/docs/caption-side\n       */\n      caption: [{\n        caption: ['top', 'bottom']\n      }],\n      // ---------------------------------\n      // --- Transitions and Animation ---\n      // ---------------------------------\n      /**\n       * Transition Property\n       * @see https://tailwindcss.com/docs/transition-property\n       */\n      transition: [{\n        transition: ['', 'all', 'colors', 'opacity', 'shadow', 'transform', 'none', isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Transition Behavior\n       * @see https://tailwindcss.com/docs/transition-behavior\n       */\n      'transition-behavior': [{\n        transition: ['normal', 'discrete']\n      }],\n      /**\n       * Transition Duration\n       * @see https://tailwindcss.com/docs/transition-duration\n       */\n      duration: [{\n        duration: [isNumber, 'initial', isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Transition Timing Function\n       * @see https://tailwindcss.com/docs/transition-timing-function\n       */\n      ease: [{\n        ease: ['linear', 'initial', themeEase, isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Transition Delay\n       * @see https://tailwindcss.com/docs/transition-delay\n       */\n      delay: [{\n        delay: [isNumber, isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Animation\n       * @see https://tailwindcss.com/docs/animation\n       */\n      animate: [{\n        animate: ['none', themeAnimate, isArbitraryVariable, isArbitraryValue]\n      }],\n      // ------------------\n      // --- Transforms ---\n      // ------------------\n      /**\n       * Backface Visibility\n       * @see https://tailwindcss.com/docs/backface-visibility\n       */\n      backface: [{\n        backface: ['hidden', 'visible']\n      }],\n      /**\n       * Perspective\n       * @see https://tailwindcss.com/docs/perspective\n       */\n      perspective: [{\n        perspective: [themePerspective, isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Perspective Origin\n       * @see https://tailwindcss.com/docs/perspective-origin\n       */\n      'perspective-origin': [{\n        'perspective-origin': scalePositionWithArbitrary()\n      }],\n      /**\n       * Rotate\n       * @see https://tailwindcss.com/docs/rotate\n       */\n      rotate: [{\n        rotate: scaleRotate()\n      }],\n      /**\n       * Rotate X\n       * @see https://tailwindcss.com/docs/rotate\n       */\n      'rotate-x': [{\n        'rotate-x': scaleRotate()\n      }],\n      /**\n       * Rotate Y\n       * @see https://tailwindcss.com/docs/rotate\n       */\n      'rotate-y': [{\n        'rotate-y': scaleRotate()\n      }],\n      /**\n       * Rotate Z\n       * @see https://tailwindcss.com/docs/rotate\n       */\n      'rotate-z': [{\n        'rotate-z': scaleRotate()\n      }],\n      /**\n       * Scale\n       * @see https://tailwindcss.com/docs/scale\n       */\n      scale: [{\n        scale: scaleScale()\n      }],\n      /**\n       * Scale X\n       * @see https://tailwindcss.com/docs/scale\n       */\n      'scale-x': [{\n        'scale-x': scaleScale()\n      }],\n      /**\n       * Scale Y\n       * @see https://tailwindcss.com/docs/scale\n       */\n      'scale-y': [{\n        'scale-y': scaleScale()\n      }],\n      /**\n       * Scale Z\n       * @see https://tailwindcss.com/docs/scale\n       */\n      'scale-z': [{\n        'scale-z': scaleScale()\n      }],\n      /**\n       * Scale 3D\n       * @see https://tailwindcss.com/docs/scale\n       */\n      'scale-3d': ['scale-3d'],\n      /**\n       * Skew\n       * @see https://tailwindcss.com/docs/skew\n       */\n      skew: [{\n        skew: scaleSkew()\n      }],\n      /**\n       * Skew X\n       * @see https://tailwindcss.com/docs/skew\n       */\n      'skew-x': [{\n        'skew-x': scaleSkew()\n      }],\n      /**\n       * Skew Y\n       * @see https://tailwindcss.com/docs/skew\n       */\n      'skew-y': [{\n        'skew-y': scaleSkew()\n      }],\n      /**\n       * Transform\n       * @see https://tailwindcss.com/docs/transform\n       */\n      transform: [{\n        transform: [isArbitraryVariable, isArbitraryValue, '', 'none', 'gpu', 'cpu']\n      }],\n      /**\n       * Transform Origin\n       * @see https://tailwindcss.com/docs/transform-origin\n       */\n      'transform-origin': [{\n        origin: scalePositionWithArbitrary()\n      }],\n      /**\n       * Transform Style\n       * @see https://tailwindcss.com/docs/transform-style\n       */\n      'transform-style': [{\n        transform: ['3d', 'flat']\n      }],\n      /**\n       * Translate\n       * @see https://tailwindcss.com/docs/translate\n       */\n      translate: [{\n        translate: scaleTranslate()\n      }],\n      /**\n       * Translate X\n       * @see https://tailwindcss.com/docs/translate\n       */\n      'translate-x': [{\n        'translate-x': scaleTranslate()\n      }],\n      /**\n       * Translate Y\n       * @see https://tailwindcss.com/docs/translate\n       */\n      'translate-y': [{\n        'translate-y': scaleTranslate()\n      }],\n      /**\n       * Translate Z\n       * @see https://tailwindcss.com/docs/translate\n       */\n      'translate-z': [{\n        'translate-z': scaleTranslate()\n      }],\n      /**\n       * Translate None\n       * @see https://tailwindcss.com/docs/translate\n       */\n      'translate-none': ['translate-none'],\n      /**\n       * Zoom\n       * @see https://tailwindcss.com/docs/zoom\n       */\n      zoom: [{\n        zoom: [isInteger, isArbitraryVariable, isArbitraryValue]\n      }],\n      // ---------------------\n      // --- Interactivity ---\n      // ---------------------\n      /**\n       * Accent Color\n       * @see https://tailwindcss.com/docs/accent-color\n       */\n      accent: [{\n        accent: scaleColor()\n      }],\n      /**\n       * Appearance\n       * @see https://tailwindcss.com/docs/appearance\n       */\n      appearance: [{\n        appearance: ['none', 'auto']\n      }],\n      /**\n       * Caret Color\n       * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities\n       */\n      'caret-color': [{\n        caret: scaleColor()\n      }],\n      /**\n       * Color Scheme\n       * @see https://tailwindcss.com/docs/color-scheme\n       */\n      'color-scheme': [{\n        scheme: ['normal', 'dark', 'light', 'light-dark', 'only-dark', 'only-light']\n      }],\n      /**\n       * Cursor\n       * @see https://tailwindcss.com/docs/cursor\n       */\n      cursor: [{\n        cursor: ['auto', 'default', 'pointer', 'wait', 'text', 'move', 'help', 'not-allowed', 'none', 'context-menu', 'progress', 'cell', 'crosshair', 'vertical-text', 'alias', 'copy', 'no-drop', 'grab', 'grabbing', 'all-scroll', 'col-resize', 'row-resize', 'n-resize', 'e-resize', 's-resize', 'w-resize', 'ne-resize', 'nw-resize', 'se-resize', 'sw-resize', 'ew-resize', 'ns-resize', 'nesw-resize', 'nwse-resize', 'zoom-in', 'zoom-out', isArbitraryVariable, isArbitraryValue]\n      }],\n      /**\n       * Field Sizing\n       * @see https://tailwindcss.com/docs/field-sizing\n       */\n      'field-sizing': [{\n        'field-sizing': ['fixed', 'content']\n      }],\n      /**\n       * Pointer Events\n       * @see https://tailwindcss.com/docs/pointer-events\n       */\n      'pointer-events': [{\n        'pointer-events': ['auto', 'none']\n      }],\n      /**\n       * Resize\n       * @see https://tailwindcss.com/docs/resize\n       */\n      resize: [{\n        resize: ['none', '', 'y', 'x']\n      }],\n      /**\n       * Scroll Behavior\n       * @see https://tailwindcss.com/docs/scroll-behavior\n       */\n      'scroll-behavior': [{\n        scroll: ['auto', 'smooth']\n      }],\n      /**\n       * Scrollbar Thumb Color\n       * @see https://tailwindcss.com/docs/scrollbar-color\n       */\n      'scrollbar-thumb-color': [{\n        'scrollbar-thumb': scaleColor()\n      }],\n      /**\n       * Scrollbar Track Color\n       * @see https://tailwindcss.com/docs/scrollbar-color\n       */\n      'scrollbar-track-color': [{\n        'scrollbar-track': scaleColor()\n      }],\n      /**\n       * Scrollbar Gutter\n       * @see https://tailwindcss.com/docs/scrollbar-gutter\n       */\n      'scrollbar-gutter': [{\n        'scrollbar-gutter': ['auto', 'stable', 'both']\n      }],\n      /**\n       * Scrollbar Width\n       * @see https://tailwindcss.com/docs/scrollbar-width\n       */\n      'scrollbar-w': [{\n        scrollbar: ['auto', 'thin', 'none']\n      }],\n      /**\n       * Scroll Margin\n       * @see https://tailwindcss.com/docs/scroll-margin\n       */\n      'scroll-m': [{\n        'scroll-m': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Scroll Margin Inline\n       * @see https://tailwindcss.com/docs/scroll-margin\n       */\n      'scroll-mx': [{\n        'scroll-mx': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Scroll Margin Block\n       * @see https://tailwindcss.com/docs/scroll-margin\n       */\n      'scroll-my': [{\n        'scroll-my': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Scroll Margin Inline Start\n       * @see https://tailwindcss.com/docs/scroll-margin\n       */\n      'scroll-ms': [{\n        'scroll-ms': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Scroll Margin Inline End\n       * @see https://tailwindcss.com/docs/scroll-margin\n       */\n      'scroll-me': [{\n        'scroll-me': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Scroll Margin Block Start\n       * @see https://tailwindcss.com/docs/scroll-margin\n       */\n      'scroll-mbs': [{\n        'scroll-mbs': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Scroll Margin Block End\n       * @see https://tailwindcss.com/docs/scroll-margin\n       */\n      'scroll-mbe': [{\n        'scroll-mbe': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Scroll Margin Top\n       * @see https://tailwindcss.com/docs/scroll-margin\n       */\n      'scroll-mt': [{\n        'scroll-mt': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Scroll Margin Right\n       * @see https://tailwindcss.com/docs/scroll-margin\n       */\n      'scroll-mr': [{\n        'scroll-mr': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Scroll Margin Bottom\n       * @see https://tailwindcss.com/docs/scroll-margin\n       */\n      'scroll-mb': [{\n        'scroll-mb': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Scroll Margin Left\n       * @see https://tailwindcss.com/docs/scroll-margin\n       */\n      'scroll-ml': [{\n        'scroll-ml': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Scroll Padding\n       * @see https://tailwindcss.com/docs/scroll-padding\n       */\n      'scroll-p': [{\n        'scroll-p': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Scroll Padding Inline\n       * @see https://tailwindcss.com/docs/scroll-padding\n       */\n      'scroll-px': [{\n        'scroll-px': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Scroll Padding Block\n       * @see https://tailwindcss.com/docs/scroll-padding\n       */\n      'scroll-py': [{\n        'scroll-py': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Scroll Padding Inline Start\n       * @see https://tailwindcss.com/docs/scroll-padding\n       */\n      'scroll-ps': [{\n        'scroll-ps': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Scroll Padding Inline End\n       * @see https://tailwindcss.com/docs/scroll-padding\n       */\n      'scroll-pe': [{\n        'scroll-pe': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Scroll Padding Block Start\n       * @see https://tailwindcss.com/docs/scroll-padding\n       */\n      'scroll-pbs': [{\n        'scroll-pbs': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Scroll Padding Block End\n       * @see https://tailwindcss.com/docs/scroll-padding\n       */\n      'scroll-pbe': [{\n        'scroll-pbe': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Scroll Padding Top\n       * @see https://tailwindcss.com/docs/scroll-padding\n       */\n      'scroll-pt': [{\n        'scroll-pt': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Scroll Padding Right\n       * @see https://tailwindcss.com/docs/scroll-padding\n       */\n      'scroll-pr': [{\n        'scroll-pr': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Scroll Padding Bottom\n       * @see https://tailwindcss.com/docs/scroll-padding\n       */\n      'scroll-pb': [{\n        'scroll-pb': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Scroll Padding Left\n       * @see https://tailwindcss.com/docs/scroll-padding\n       */\n      'scroll-pl': [{\n        'scroll-pl': scaleUnambiguousSpacing()\n      }],\n      /**\n       * Scroll Snap Align\n       * @see https://tailwindcss.com/docs/scroll-snap-align\n       */\n      'snap-align': [{\n        snap: ['start', 'end', 'center', 'align-none']\n      }],\n      /**\n       * Scroll Snap Stop\n       * @see https://tailwindcss.com/docs/scroll-snap-stop\n       */\n      'snap-stop': [{\n        snap: ['normal', 'always']\n      }],\n      /**\n       * Scroll Snap Type\n       * @see https://tailwindcss.com/docs/scroll-snap-type\n       */\n      'snap-type': [{\n        snap: ['none', 'x', 'y', 'both']\n      }],\n      /**\n       * Scroll Snap Type Strictness\n       * @see https://tailwindcss.com/docs/scroll-snap-type\n       */\n      'snap-strictness': [{\n        snap: ['mandatory', 'proximity']\n      }],\n      /**\n       * Touch Action\n       * @see https://tailwindcss.com/docs/touch-action\n       */\n      touch: [{\n        touch: ['auto', 'none', 'manipulation']\n      }],\n      /**\n       * Touch Action X\n       * @see https://tailwindcss.com/docs/touch-action\n       */\n      'touch-x': [{\n        'touch-pan': ['x', 'left', 'right']\n      }],\n      /**\n       * Touch Action Y\n       * @see https://tailwindcss.com/docs/touch-action\n       */\n      'touch-y': [{\n        'touch-pan': ['y', 'up', 'down']\n      }],\n      /**\n       * Touch Action Pinch Zoom\n       * @see https://tailwindcss.com/docs/touch-action\n       */\n      'touch-pz': ['touch-pinch-zoom'],\n      /**\n       * User Select\n       * @see https://tailwindcss.com/docs/user-select\n       */\n      select: [{\n        select: ['none', 'text', 'all', 'auto']\n      }],\n      /**\n       * Will Change\n       * @see https://tailwindcss.com/docs/will-change\n       */\n      'will-change': [{\n        'will-change': ['auto', 'scroll', 'contents', 'transform', isArbitraryVariable, isArbitraryValue]\n      }],\n      // -----------\n      // --- SVG ---\n      // -----------\n      /**\n       * Fill\n       * @see https://tailwindcss.com/docs/fill\n       */\n      fill: [{\n        fill: ['none', ...scaleColor()]\n      }],\n      /**\n       * Stroke Width\n       * @see https://tailwindcss.com/docs/stroke-width\n       */\n      'stroke-w': [{\n        stroke: [isNumber, isArbitraryVariableLength, isArbitraryLength, isArbitraryNumber]\n      }],\n      /**\n       * Stroke\n       * @see https://tailwindcss.com/docs/stroke\n       */\n      stroke: [{\n        stroke: ['none', ...scaleColor()]\n      }],\n      // ---------------------\n      // --- Accessibility ---\n      // ---------------------\n      /**\n       * Forced Color Adjust\n       * @see https://tailwindcss.com/docs/forced-color-adjust\n       */\n      'forced-color-adjust': [{\n        'forced-color-adjust': ['auto', 'none']\n      }]\n    },\n    conflictingClassGroups: {\n      'container-named': ['container-type'],\n      overflow: ['overflow-x', 'overflow-y'],\n      overscroll: ['overscroll-x', 'overscroll-y'],\n      inset: ['inset-x', 'inset-y', 'inset-bs', 'inset-be', 'start', 'end', 'top', 'right', 'bottom', 'left'],\n      'inset-x': ['right', 'left'],\n      'inset-y': ['top', 'bottom'],\n      flex: ['basis', 'grow', 'shrink'],\n      gap: ['gap-x', 'gap-y'],\n      p: ['px', 'py', 'ps', 'pe', 'pbs', 'pbe', 'pt', 'pr', 'pb', 'pl'],\n      px: ['pr', 'pl'],\n      py: ['pt', 'pb'],\n      m: ['mx', 'my', 'ms', 'me', 'mbs', 'mbe', 'mt', 'mr', 'mb', 'ml'],\n      mx: ['mr', 'ml'],\n      my: ['mt', 'mb'],\n      size: ['w', 'h'],\n      'font-size': ['leading'],\n      'fvn-normal': ['fvn-ordinal', 'fvn-slashed-zero', 'fvn-figure', 'fvn-spacing', 'fvn-fraction'],\n      'fvn-ordinal': ['fvn-normal'],\n      'fvn-slashed-zero': ['fvn-normal'],\n      'fvn-figure': ['fvn-normal'],\n      'fvn-spacing': ['fvn-normal'],\n      'fvn-fraction': ['fvn-normal'],\n      'line-clamp': ['display', 'overflow'],\n      rounded: ['rounded-s', 'rounded-e', 'rounded-t', 'rounded-r', 'rounded-b', 'rounded-l', 'rounded-ss', 'rounded-se', 'rounded-ee', 'rounded-es', 'rounded-tl', 'rounded-tr', 'rounded-br', 'rounded-bl'],\n      'rounded-s': ['rounded-ss', 'rounded-es'],\n      'rounded-e': ['rounded-se', 'rounded-ee'],\n      'rounded-t': ['rounded-tl', 'rounded-tr'],\n      'rounded-r': ['rounded-tr', 'rounded-br'],\n      'rounded-b': ['rounded-br', 'rounded-bl'],\n      'rounded-l': ['rounded-tl', 'rounded-bl'],\n      'border-spacing': ['border-spacing-x', 'border-spacing-y'],\n      'border-w': ['border-w-x', 'border-w-y', 'border-w-s', 'border-w-e', 'border-w-bs', 'border-w-be', 'border-w-t', 'border-w-r', 'border-w-b', 'border-w-l'],\n      'border-w-x': ['border-w-r', 'border-w-l'],\n      'border-w-y': ['border-w-t', 'border-w-b'],\n      'border-color': ['border-color-x', 'border-color-y', 'border-color-s', 'border-color-e', 'border-color-bs', 'border-color-be', 'border-color-t', 'border-color-r', 'border-color-b', 'border-color-l'],\n      'border-color-x': ['border-color-r', 'border-color-l'],\n      'border-color-y': ['border-color-t', 'border-color-b'],\n      translate: ['translate-x', 'translate-y', 'translate-none'],\n      'translate-none': ['translate', 'translate-x', 'translate-y', 'translate-z'],\n      'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mbs', 'scroll-mbe', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'],\n      'scroll-mx': ['scroll-mr', 'scroll-ml'],\n      'scroll-my': ['scroll-mt', 'scroll-mb'],\n      'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pbs', 'scroll-pbe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'],\n      'scroll-px': ['scroll-pr', 'scroll-pl'],\n      'scroll-py': ['scroll-pt', 'scroll-pb'],\n      touch: ['touch-x', 'touch-y', 'touch-pz'],\n      'touch-x': ['touch'],\n      'touch-y': ['touch'],\n      'touch-pz': ['touch']\n    },\n    conflictingClassGroupModifiers: {\n      'font-size': ['leading']\n    },\n    postfixLookupClassGroups: ['container-type'],\n    orderSensitiveModifiers: ['*', '**', 'after', 'backdrop', 'before', 'details-content', 'file', 'first-letter', 'first-line', 'marker', 'placeholder', 'selection']\n  };\n};\n\n/**\n * @param baseConfig Config where other config will be merged into. This object will be mutated.\n * @param configExtension Partial config to merge into the `baseConfig`.\n */\nconst mergeConfigs = (baseConfig, {\n  cacheSize,\n  prefix,\n  experimentalParseClassName,\n  extend = {},\n  override = {}\n}) => {\n  overrideProperty(baseConfig, 'cacheSize', cacheSize);\n  overrideProperty(baseConfig, 'prefix', prefix);\n  overrideProperty(baseConfig, 'experimentalParseClassName', experimentalParseClassName);\n  overrideConfigProperties(baseConfig.theme, override.theme);\n  overrideConfigProperties(baseConfig.classGroups, override.classGroups);\n  overrideConfigProperties(baseConfig.conflictingClassGroups, override.conflictingClassGroups);\n  overrideConfigProperties(baseConfig.conflictingClassGroupModifiers, override.conflictingClassGroupModifiers);\n  overrideProperty(baseConfig, 'postfixLookupClassGroups', override.postfixLookupClassGroups);\n  overrideProperty(baseConfig, 'orderSensitiveModifiers', override.orderSensitiveModifiers);\n  mergeConfigProperties(baseConfig.theme, extend.theme);\n  mergeConfigProperties(baseConfig.classGroups, extend.classGroups);\n  mergeConfigProperties(baseConfig.conflictingClassGroups, extend.conflictingClassGroups);\n  mergeConfigProperties(baseConfig.conflictingClassGroupModifiers, extend.conflictingClassGroupModifiers);\n  mergeArrayProperties(baseConfig, extend, 'postfixLookupClassGroups');\n  mergeArrayProperties(baseConfig, extend, 'orderSensitiveModifiers');\n  return baseConfig;\n};\nconst overrideProperty = (baseObject, overrideKey, overrideValue) => {\n  if (overrideValue !== undefined) {\n    baseObject[overrideKey] = overrideValue;\n  }\n};\nconst overrideConfigProperties = (baseObject, overrideObject) => {\n  if (overrideObject) {\n    for (const key in overrideObject) {\n      overrideProperty(baseObject, key, overrideObject[key]);\n    }\n  }\n};\nconst mergeConfigProperties = (baseObject, mergeObject) => {\n  if (mergeObject) {\n    for (const key in mergeObject) {\n      mergeArrayProperties(baseObject, mergeObject, key);\n    }\n  }\n};\nconst mergeArrayProperties = (baseObject, mergeObject, key) => {\n  const mergeValue = mergeObject[key];\n  if (mergeValue !== undefined) {\n    baseObject[key] = baseObject[key] ? baseObject[key].concat(mergeValue) : mergeValue;\n  }\n};\nconst extendTailwindMerge = (configExtension, ...createConfig) => typeof configExtension === 'function' ? createTailwindMerge(getDefaultConfig, configExtension, ...createConfig) : createTailwindMerge(() => mergeConfigs(getDefaultConfig(), configExtension), ...createConfig);\nconst twMerge = /*#__PURE__*/createTailwindMerge(getDefaultConfig);\nexport { createTailwindMerge, extendTailwindMerge, fromTheme, getDefaultConfig, mergeConfigs, twJoin, twMerge, validators };\n//# sourceMappingURL=bundle-mjs.mjs.map\n","import { clsx, type ClassValue } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\nexport function cn(...inputs: ClassValue[]) {\n  return twMerge(clsx(inputs));\n}\n","// @ts-nocheck - Radix UI types incompatible with React 19 children prop\n\"use client\"\n\nimport * as React from \"react\"\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\"\n\nimport { cn } from \"../../utils\"\n\nfunction TooltipProvider({\n  delayDuration = 0,\n  ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Provider>) {\n  return (\n    <TooltipPrimitive.Provider\n      data-slot=\"tooltip-provider\"\n      delayDuration={delayDuration}\n      {...props}\n    />\n  )\n}\n\nfunction Tooltip({\n  ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Root>) {\n  return (\n    <TooltipProvider>\n      <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />\n    </TooltipProvider>\n  )\n}\n\nfunction TooltipTrigger({\n  children,\n  ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Trigger> & { children?: React.ReactNode }) {\n  return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props}>{children}</TooltipPrimitive.Trigger>\n}\n\nfunction TooltipContent({\n  className,\n  sideOffset = 4,\n  children,\n  ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Content>) {\n  return (\n    <TooltipPrimitive.Portal>\n      <TooltipPrimitive.Content\n        data-slot=\"tooltip-content\"\n        sideOffset={sideOffset}\n        className={cn(\n          \"bg-slate-950 border-slate-800 text-slate-100 z-50 overflow-hidden rounded-md border px-3 py-1.5 text-xs shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n          className\n        )}\n        {...props}\n      >\n        {children}\n        <TooltipPrimitive.Arrow className=\"fill-slate-950\" />\n      </TooltipPrimitive.Content>\n    </TooltipPrimitive.Portal>\n  )\n}\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }\n","/**\r\n * Widens Mermaid cluster labels and parses SVG metadata for svg-toolbelt.\r\n */\r\n\r\nconst CLUSTER_LABEL_EXTRA_WIDTH = 96;\r\n\r\n/** Parsed SVG data needed by svg-toolbelt. */\r\nexport type ParsedSvg = {\r\n  innerHtml: string;\r\n  width: number;\r\n  height: number;\r\n};\r\n\r\n/**\r\n * Widens the bounding rects of Mermaid cluster labels so long directory\r\n * names are not clipped by the auto-sized SVG foreignObject boxes.\r\n */\r\nexport function widenClusterLabels(container: HTMLElement) {\r\n  container.querySelectorAll('g.cluster').forEach((cluster) => {\r\n    const clusterElement = cluster as SVGGElement;\r\n    const rect = clusterElement.querySelector('rect');\r\n    if (rect instanceof SVGRectElement) {\r\n      const currentWidth = rect.width.baseVal.value;\r\n      const currentX = rect.x.baseVal.value;\r\n      rect.width.baseVal.value = currentWidth + CLUSTER_LABEL_EXTRA_WIDTH;\r\n      rect.x.baseVal.value = currentX - CLUSTER_LABEL_EXTRA_WIDTH / 2;\r\n    }\r\n\r\n    const foreignObject = clusterElement.querySelector('foreignObject');\r\n    if (foreignObject instanceof SVGForeignObjectElement) {\r\n      const currentWidth = foreignObject.width.baseVal.value;\r\n      const currentX = foreignObject.x.baseVal.value;\r\n      foreignObject.width.baseVal.value = currentWidth + CLUSTER_LABEL_EXTRA_WIDTH;\r\n      foreignObject.x.baseVal.value = currentX - CLUSTER_LABEL_EXTRA_WIDTH / 2;\r\n      foreignObject.style.overflow = 'visible';\r\n    }\r\n  });\r\n}\r\n\r\n/**\r\n * Parses a rendered Mermaid SVG string to extract the inner content and\r\n * dimensions needed by svg-toolbelt.\r\n */\r\nexport function parseMermaidSvg(svgString: string): ParsedSvg {\r\n  const parser = new DOMParser();\r\n  const doc = parser.parseFromString(svgString, 'image/svg+xml');\r\n  const svg = doc.querySelector('svg');\r\n  if (!svg) return { innerHtml: '', width: 1200, height: 600 };\r\n\r\n  const viewBox = svg.getAttribute('viewBox');\r\n  let width = 1200;\r\n  let height = 600;\r\n\r\n  if (viewBox) {\r\n    const parts = viewBox.split(/\\s+/).map(Number);\r\n    if (parts.length === 4) {\r\n      width = parts[2];\r\n      height = parts[3];\r\n    }\r\n  } else {\r\n    width = parseFloat(svg.getAttribute('width') || '1200');\r\n    height = parseFloat(svg.getAttribute('height') || '600');\r\n  }\r\n\r\n  return { innerHtml: svg.innerHTML, width, height };\r\n}\r\n","/**\r\n * Post-render DOM mutations applied to each `g.node` inside the Mermaid SVG.\r\n *\r\n * Handles three concerns that are all driven by iterating the same node set:\r\n *  1. Attaching hover tooltip data so the parent component can show a rich popup.\r\n *  2. Highlighting nodes whose text matches a search query.\r\n *  3. Intercepting `#file-*` anchor clicks so they smooth-scroll to file-tree rows.\r\n */\r\n\r\nimport type { MermaidTooltipData } from './dependency-graph-shared';\r\n\r\n/** The tooltip state object surfaced to the React component via setState. */\r\nexport type ActiveTooltip = MermaidTooltipData & { x: number; y: number };\r\n\r\n/**\r\n * Binds hover-tooltip listeners to every graph node that has a matching entry\r\n * in `nodeTooltips`. A native `<title>` element is also injected as a\r\n * fallback for accessibility / screen-readers.\r\n */\r\nexport function bindNodeTooltips(\r\n  container: HTMLElement | Element,\r\n  nodeTooltips: Record<string, MermaidTooltipData>,\r\n  setTooltip: (value: ActiveTooltip | null | ((prev: ActiveTooltip | null) => ActiveTooltip | null)) => void,\r\n) {\r\n  container.querySelectorAll('g.node').forEach((node) => {\r\n    if (!(node instanceof SVGGElement)) return;\r\n    const tooltipData = nodeTooltips[node.id];\r\n    if (!tooltipData) return;\r\n\r\n    const existingTitle = node.querySelector('title');\r\n    if (existingTitle) existingTitle.remove();\r\n    const title = document.createElementNS('http://www.w3.org/2000/svg', 'title');\r\n    const exportSummary = tooltipData.exports?.length\r\n      ? `Exports: ${tooltipData.exports.join(', ')}`\r\n      : '';\r\n    title.textContent = [tooltipData.title, tooltipData.description, exportSummary]\r\n      .filter(Boolean)\r\n      .join('\\n');\r\n    node.prepend(title);\r\n\r\n    node.addEventListener('mouseenter', (event) => {\r\n      const source = event.currentTarget;\r\n      if (!(source instanceof SVGGElement)) return;\r\n      const rect = source.getBoundingClientRect();\r\n      setTooltip({\r\n        ...tooltipData,\r\n        x: rect.left + rect.width / 2,\r\n        y: rect.top - 12,\r\n      });\r\n    });\r\n\r\n    node.addEventListener('mousemove', (event) => {\r\n      setTooltip((current: ActiveTooltip | null) =>\r\n        current ? { ...current, x: event.clientX, y: event.clientY - 16 } : current,\r\n      );\r\n    });\r\n\r\n    node.addEventListener('mouseleave', () => {\r\n      setTooltip(null);\r\n    });\r\n  });\r\n}\r\n\r\n/**\r\n * Applies a yellow stroke highlight and bold text to every graph node whose\r\n * visible text includes the search `query` (case-insensitive).\r\n */\r\nexport function highlightMatchingNodes(container: HTMLElement | Element, query: string) {\r\n  const normalizedQuery = query.trim().toLowerCase();\r\n  if (!normalizedQuery) return;\r\n\r\n  container.querySelectorAll('g.node').forEach((node) => {\r\n    if (!(node instanceof SVGGElement)) return;\r\n    if (!node.textContent?.toLowerCase().includes(normalizedQuery)) return;\r\n\r\n    node.querySelectorAll('rect, polygon, path').forEach((shape) => {\r\n      const element = shape as SVGElement;\r\n      element.setAttribute('stroke', '#facc15');\r\n      element.setAttribute('stroke-width', '4');\r\n      element.setAttribute('filter', 'drop-shadow(0 0 10px rgba(250,204,21,0.35))');\r\n    });\r\n\r\n    node.querySelectorAll('span, tspan, text').forEach((textNode) => {\r\n      if (textNode instanceof SVGTextElement || textNode instanceof SVGTSpanElement) {\r\n        textNode.setAttribute('fill', '#fef08a');\r\n        textNode.setAttribute('font-weight', '800');\r\n      }\r\n    });\r\n  });\r\n}\r\n\r\n/**\r\n * Intercepts clicks on `<a href=\"#file-…\">` links inside the rendered SVG so\r\n * they smooth-scroll to the corresponding file-tree row and briefly highlight it.\r\n */\r\nexport function interceptFiletreeAnchorClicks(container: HTMLElement | Element) {\r\n  container.querySelectorAll('a[href^=\"#file-\"]').forEach((a) => {\r\n    a.addEventListener('click', (e) => {\r\n      e.preventDefault();\r\n      const href = a.getAttribute('href');\r\n      if (!href) return;\r\n      const target = document.querySelector(href);\r\n      target?.scrollIntoView({ behavior: 'smooth', block: 'center' });\r\n      if (target instanceof HTMLElement) {\r\n        target.style.outline = '2px solid rgb(59,130,246)';\r\n        target.style.outlineOffset = '-2px';\r\n        setTimeout(() => {\r\n          target.style.outline = '';\r\n          target.style.outlineOffset = '';\r\n        }, 1500);\r\n      }\r\n    });\r\n  });\r\n}\r\n","/**\n * marked v17.0.6 - a markdown parser\n * Copyright (c) 2018-2026, MarkedJS. (MIT License)\n * Copyright (c) 2011-2018, Christopher Jeffrey. (MIT License)\n * https://github.com/markedjs/marked\n */\n\n/**\n * DO NOT EDIT THIS FILE\n * The code in this file is generated from files in ./src/\n */\n\nfunction M(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var O=M();function G(u){O=u}var _={exec:()=>null};function k(u,e=\"\"){let t=typeof u==\"string\"?u:u.source,n={replace:(r,i)=>{let s=typeof i==\"string\"?i:i.source;return s=s.replace(m.caret,\"$1\"),t=t.replace(r,s),n},getRegex:()=>new RegExp(t,e)};return n}var be=(()=>{try{return!!new RegExp(\"(?<=1)(?<!1)\")}catch{return!1}})(),m={codeRemoveIndent:/^(?: {1,4}| {0,3}\\t)/gm,outputLinkReplace:/\\\\([\\[\\]])/g,indentCodeCompensation:/^(\\s+)(?:```)/,beginningSpace:/^\\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\\n/g,tabCharGlobal:/\\t/g,multipleSpaceGlobal:/\\s+/g,blankLine:/^[ \\t]*$/,doubleBlankLine:/\\n[ \\t]*\\n[ \\t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\\n {0,3}((?:=+|-+) *)(?=\\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \\t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\\[[ xX]\\] +\\S/,listReplaceTask:/^\\[[ xX]\\] +/,listTaskCheckbox:/\\[[ xX]\\]/,anyLine:/\\n.*\\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\\||\\| *$/g,tableRowBlankLine:/\\n[ \\t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\\s|>)/i,endPreScriptTag:/^<\\/(pre|code|kbd|script)(\\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/,unicodeAlphaNumeric:/[\\p{L}\\p{N}]/u,escapeTest:/[&<>\"']/,escapeReplace:/[&<>\"']/g,escapeTestNoEncode:/[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/,escapeReplaceNoEncode:/[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/g,caret:/(^|[^\\[])\\^/g,percentDecode:/%25/g,findPipe:/\\|/g,splitPipe:/ \\|/,slashPipe:/\\\\\\|/g,carriageReturn:/\\r\\n|\\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\\S*/,endingNewline:/\\n$/,listItemRegex:u=>new RegExp(`^( {0,3}${u})((?:[\t ][^\\\\n]*)?(?:\\\\n|$))`),nextBulletRegex:u=>new RegExp(`^ {0,${Math.min(3,u-1)}}(?:[*+-]|\\\\d{1,9}[.)])((?:[ \t][^\\\\n]*)?(?:\\\\n|$))`),hrRegex:u=>new RegExp(`^ {0,${Math.min(3,u-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$)`),fencesBeginRegex:u=>new RegExp(`^ {0,${Math.min(3,u-1)}}(?:\\`\\`\\`|~~~)`),headingBeginRegex:u=>new RegExp(`^ {0,${Math.min(3,u-1)}}#`),htmlBeginRegex:u=>new RegExp(`^ {0,${Math.min(3,u-1)}}<(?:[a-z].*>|!--)`,\"i\"),blockquoteBeginRegex:u=>new RegExp(`^ {0,${Math.min(3,u-1)}}>`)},Re=/^(?:[ \\t]*(?:\\n|$))+/,Oe=/^((?: {4}| {0,3}\\t)[^\\n]+(?:\\n(?:[ \\t]*(?:\\n|$))*)?)+/,Te=/^ {0,3}(`{3,}(?=[^`\\n]*(?:\\n|$))|~{3,})([^\\n]*)(?:\\n|$)(?:|([\\s\\S]*?)(?:\\n|$))(?: {0,3}\\1[~`]* *(?=\\n|$)|$)/,C=/^ {0,3}((?:-[\\t ]*){3,}|(?:_[ \\t]*){3,}|(?:\\*[ \\t]*){3,})(?:\\n+|$)/,we=/^ {0,3}(#{1,6})(?=\\s|$)(.*)(?:\\n+|$)/,Q=/ {0,3}(?:[*+-]|\\d{1,9}[.)])/,se=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\\n(?!\\s*?\\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/,ie=k(se).replace(/bull/g,Q).replace(/blockCode/g,/(?: {4}| {0,3}\\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\\n>]+>\\n/).replace(/\\|table/g,\"\").getRegex(),ye=k(se).replace(/bull/g,Q).replace(/blockCode/g,/(?: {4}| {0,3}\\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\\n>]+>\\n/).replace(/table/g,/ {0,3}\\|?(?:[:\\- ]*\\|)+[\\:\\- ]*\\n/).getRegex(),j=/^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\\n)[^\\n]+)*)/,Pe=/^[^\\n]+/,F=/(?!\\s*\\])(?:\\\\[\\s\\S]|[^\\[\\]\\\\])+/,Se=k(/^ {0,3}\\[(label)\\]: *(?:\\n[ \\t]*)?([^<\\s][^\\s]*|<.*?>)(?:(?: +(?:\\n[ \\t]*)?| *\\n[ \\t]*)(title))? *(?:\\n+|$)/).replace(\"label\",F).replace(\"title\",/(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/).getRegex(),$e=k(/^(bull)([ \\t][^\\n]+?)?(?:\\n|$)/).replace(/bull/g,Q).getRegex(),v=\"address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul\",U=/<!--(?:-?>|[\\s\\S]*?(?:-->|$))/,_e=k(\"^ {0,3}(?:<(script|pre|style|textarea)[\\\\s>][\\\\s\\\\S]*?(?:</\\\\1>[^\\\\n]*\\\\n+|$)|comment[^\\\\n]*(\\\\n+|$)|<\\\\?[\\\\s\\\\S]*?(?:\\\\?>\\\\n*|$)|<![A-Z][\\\\s\\\\S]*?(?:>\\\\n*|$)|<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?(?:\\\\]\\\\]>\\\\n*|$)|</?(tag)(?: +|\\\\n|/?>)[\\\\s\\\\S]*?(?:(?:\\\\n[ \t]*)+\\\\n|$)|<(?!script|pre|style|textarea)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n[ \t]*)+\\\\n|$)|</(?!script|pre|style|textarea)[a-z][\\\\w-]*\\\\s*>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n[ \t]*)+\\\\n|$))\",\"i\").replace(\"comment\",U).replace(\"tag\",v).replace(\"attribute\",/ +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/).getRegex(),oe=k(j).replace(\"hr\",C).replace(\"heading\",\" {0,3}#{1,6}(?:\\\\s|$)\").replace(\"|lheading\",\"\").replace(\"|table\",\"\").replace(\"blockquote\",\" {0,3}>\").replace(\"fences\",\" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\",\" {0,3}(?:[*+-]|1[.)])[ \\\\t]\").replace(\"html\",\"</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)\").replace(\"tag\",v).getRegex(),Le=k(/^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/).replace(\"paragraph\",oe).getRegex(),K={blockquote:Le,code:Oe,def:Se,fences:Te,heading:we,hr:C,html:_e,lheading:ie,list:$e,newline:Re,paragraph:oe,table:_,text:Pe},ne=k(\"^ *([^\\\\n ].*)\\\\n {0,3}((?:\\\\| *)?:?-+:? *(?:\\\\| *:?-+:? *)*(?:\\\\| *)?)(?:\\\\n((?:(?! *\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)\").replace(\"hr\",C).replace(\"heading\",\" {0,3}#{1,6}(?:\\\\s|$)\").replace(\"blockquote\",\" {0,3}>\").replace(\"code\",\"(?: {4}| {0,3}\t)[^\\\\n]\").replace(\"fences\",\" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\",\" {0,3}(?:[*+-]|1[.)])[ \\\\t]\").replace(\"html\",\"</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)\").replace(\"tag\",v).getRegex(),Me={...K,lheading:ye,table:ne,paragraph:k(j).replace(\"hr\",C).replace(\"heading\",\" {0,3}#{1,6}(?:\\\\s|$)\").replace(\"|lheading\",\"\").replace(\"table\",ne).replace(\"blockquote\",\" {0,3}>\").replace(\"fences\",\" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\",\" {0,3}(?:[*+-]|1[.)])[ \\\\t]\").replace(\"html\",\"</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)\").replace(\"tag\",v).getRegex()},ze={...K,html:k(`^ *(?:comment *(?:\\\\n|\\\\s*$)|<(tag)[\\\\s\\\\S]+?</\\\\1> *(?:\\\\n{2,}|\\\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\\\s[^'\"/>\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))`).replace(\"comment\",U).replace(/tag/g,\"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b\").getRegex(),def:/^ *\\[([^\\]]+)\\]: *<?([^\\s>]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,heading:/^(#{1,6})(.*)(?:\\n+|$)/,fences:_,lheading:/^(.+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/,paragraph:k(j).replace(\"hr\",C).replace(\"heading\",` *#{1,6} *[^\n]`).replace(\"lheading\",ie).replace(\"|table\",\"\").replace(\"blockquote\",\" {0,3}>\").replace(\"|fences\",\"\").replace(\"|list\",\"\").replace(\"|html\",\"\").replace(\"|tag\",\"\").getRegex()},Ee=/^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/,Ie=/^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/,ae=/^( {2,}|\\\\)\\n(?!\\s*$)/,Ae=/^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*_]|\\b_|$)|[^ ](?= {2,}\\n)))/,z=/[\\p{P}\\p{S}]/u,H=/[\\s\\p{P}\\p{S}]/u,W=/[^\\s\\p{P}\\p{S}]/u,Ce=k(/^((?![*_])punctSpace)/,\"u\").replace(/punctSpace/g,H).getRegex(),le=/(?!~)[\\p{P}\\p{S}]/u,Be=/(?!~)[\\s\\p{P}\\p{S}]/u,De=/(?:[^\\s\\p{P}\\p{S}]|~)/u,qe=k(/link|precode-code|html/,\"g\").replace(\"link\",/\\[(?:[^\\[\\]`]|(?<a>`+)[^`]+\\k<a>(?!`))*?\\]\\((?:\\\\[\\s\\S]|[^\\\\\\(\\)]|\\((?:\\\\[\\s\\S]|[^\\\\\\(\\)])*\\))*\\)/).replace(\"precode-\",be?\"(?<!`)()\":\"(^^|[^`])\").replace(\"code\",/(?<b>`+)[^`]+\\k<b>(?!`)/).replace(\"html\",/<(?! )[^<>]*?>/).getRegex(),ue=/^(?:\\*+(?:((?!\\*)punct)|([^\\s*]))?)|^_+(?:((?!_)punct)|([^\\s_]))?/,ve=k(ue,\"u\").replace(/punct/g,z).getRegex(),He=k(ue,\"u\").replace(/punct/g,le).getRegex(),pe=\"^[^_*]*?__[^_*]*?\\\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\\\*)punct(\\\\*+)(?=[\\\\s]|$)|notPunctSpace(\\\\*+)(?!\\\\*)(?=punctSpace|$)|(?!\\\\*)punctSpace(\\\\*+)(?=notPunctSpace)|[\\\\s](\\\\*+)(?!\\\\*)(?=punct)|(?!\\\\*)punct(\\\\*+)(?!\\\\*)(?=punct)|notPunctSpace(\\\\*+)(?=notPunctSpace)\",Ze=k(pe,\"gu\").replace(/notPunctSpace/g,W).replace(/punctSpace/g,H).replace(/punct/g,z).getRegex(),Ge=k(pe,\"gu\").replace(/notPunctSpace/g,De).replace(/punctSpace/g,Be).replace(/punct/g,le).getRegex(),Ne=k(\"^[^_*]*?\\\\*\\\\*[^_*]*?_[^_*]*?(?=\\\\*\\\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)\",\"gu\").replace(/notPunctSpace/g,W).replace(/punctSpace/g,H).replace(/punct/g,z).getRegex(),Qe=k(/^~~?(?:((?!~)punct)|[^\\s~])/,\"u\").replace(/punct/g,z).getRegex(),je=\"^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)\",Fe=k(je,\"gu\").replace(/notPunctSpace/g,W).replace(/punctSpace/g,H).replace(/punct/g,z).getRegex(),Ue=k(/\\\\(punct)/,\"gu\").replace(/punct/g,z).getRegex(),Ke=k(/^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/).replace(\"scheme\",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace(\"email\",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),We=k(U).replace(\"(?:-->|$)\",\"-->\").getRegex(),Xe=k(\"^comment|^</[a-zA-Z][\\\\w:-]*\\\\s*>|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>|^<\\\\?[\\\\s\\\\S]*?\\\\?>|^<![a-zA-Z]+\\\\s[\\\\s\\\\S]*?>|^<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>\").replace(\"comment\",We).replace(\"attribute\",/\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/).getRegex(),q=/(?:\\[(?:\\\\[\\s\\S]|[^\\[\\]\\\\])*\\]|\\\\[\\s\\S]|`+(?!`)[^`]*?`+(?!`)|``+(?=\\])|[^\\[\\]\\\\`])*?/,Je=k(/^!?\\[(label)\\]\\(\\s*(href)(?:(?:[ \\t]+(?:\\n[ \\t]*)?|\\n[ \\t]*)(title))?\\s*\\)/).replace(\"label\",q).replace(\"href\",/<(?:\\\\.|[^\\n<>\\\\])+>|[^ \\t\\n\\x00-\\x1f]*/).replace(\"title\",/\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/).getRegex(),ce=k(/^!?\\[(label)\\]\\[(ref)\\]/).replace(\"label\",q).replace(\"ref\",F).getRegex(),he=k(/^!?\\[(ref)\\](?:\\[\\])?/).replace(\"ref\",F).getRegex(),Ve=k(\"reflink|nolink(?!\\\\()\",\"g\").replace(\"reflink\",ce).replace(\"nolink\",he).getRegex(),re=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,X={_backpedal:_,anyPunctuation:Ue,autolink:Ke,blockSkip:qe,br:ae,code:Ie,del:_,delLDelim:_,delRDelim:_,emStrongLDelim:ve,emStrongRDelimAst:Ze,emStrongRDelimUnd:Ne,escape:Ee,link:Je,nolink:he,punctuation:Ce,reflink:ce,reflinkSearch:Ve,tag:Xe,text:Ae,url:_},Ye={...X,link:k(/^!?\\[(label)\\]\\((.*?)\\)/).replace(\"label\",q).getRegex(),reflink:k(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/).replace(\"label\",q).getRegex()},N={...X,emStrongRDelimAst:Ge,emStrongLDelim:He,delLDelim:Qe,delRDelim:Fe,url:k(/^((?:protocol):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/).replace(\"protocol\",re).replace(\"email\",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'\"~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'\"~)]+(?!$))+/,del:/^(~~?)(?=[^\\s~])((?:\\\\[\\s\\S]|[^\\\\])*?(?:\\\\[\\s\\S]|[^\\s~\\\\]))\\1(?=[^~]|$)/,text:k(/^([`~]+|[^`~])(?:(?= {2,}\\n)|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*~_]|\\b_|protocol:\\/\\/|www\\.|$)|[^ ](?= {2,}\\n)|[^a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-](?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)))/).replace(\"protocol\",re).getRegex()},et={...N,br:k(ae).replace(\"{2,}\",\"*\").getRegex(),text:k(N.text).replace(\"\\\\b_\",\"\\\\b_| {2,}\\\\n\").replace(/\\{2,\\}/g,\"*\").getRegex()},B={normal:K,gfm:Me,pedantic:ze},E={normal:X,gfm:N,breaks:et,pedantic:Ye};var tt={\"&\":\"&amp;\",\"<\":\"&lt;\",\">\":\"&gt;\",'\"':\"&quot;\",\"'\":\"&#39;\"},ke=u=>tt[u];function T(u,e){if(e){if(m.escapeTest.test(u))return u.replace(m.escapeReplace,ke)}else if(m.escapeTestNoEncode.test(u))return u.replace(m.escapeReplaceNoEncode,ke);return u}function J(u){try{u=encodeURI(u).replace(m.percentDecode,\"%\")}catch{return null}return u}function V(u,e){let t=u.replace(m.findPipe,(i,s,a)=>{let o=!1,l=s;for(;--l>=0&&a[l]===\"\\\\\";)o=!o;return o?\"|\":\" |\"}),n=t.split(m.splitPipe),r=0;if(n[0].trim()||n.shift(),n.length>0&&!n.at(-1)?.trim()&&n.pop(),e)if(n.length>e)n.splice(e);else for(;n.length<e;)n.push(\"\");for(;r<n.length;r++)n[r]=n[r].trim().replace(m.slashPipe,\"|\");return n}function I(u,e,t){let n=u.length;if(n===0)return\"\";let r=0;for(;r<n;){let i=u.charAt(n-r-1);if(i===e&&!t)r++;else if(i!==e&&t)r++;else break}return u.slice(0,n-r)}function de(u,e){if(u.indexOf(e[1])===-1)return-1;let t=0;for(let n=0;n<u.length;n++)if(u[n]===\"\\\\\")n++;else if(u[n]===e[0])t++;else if(u[n]===e[1]&&(t--,t<0))return n;return t>0?-2:-1}function ge(u,e=0){let t=e,n=\"\";for(let r of u)if(r===\"\t\"){let i=4-t%4;n+=\" \".repeat(i),t+=i}else n+=r,t++;return n}function fe(u,e,t,n,r){let i=e.href,s=e.title||null,a=u[1].replace(r.other.outputLinkReplace,\"$1\");n.state.inLink=!0;let o={type:u[0].charAt(0)===\"!\"?\"image\":\"link\",raw:t,href:i,title:s,text:a,tokens:n.inlineTokens(a)};return n.state.inLink=!1,o}function nt(u,e,t){let n=u.match(t.other.indentCodeCompensation);if(n===null)return e;let r=n[1];return e.split(`\n`).map(i=>{let s=i.match(t.other.beginningSpace);if(s===null)return i;let[a]=s;return a.length>=r.length?i.slice(r.length):i}).join(`\n`)}var w=class{options;rules;lexer;constructor(e){this.options=e||O}space(e){let t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:\"space\",raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let n=t[0].replace(this.rules.other.codeRemoveIndent,\"\");return{type:\"code\",raw:t[0],codeBlockStyle:\"indented\",text:this.options.pedantic?n:I(n,`\n`)}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let n=t[0],r=nt(n,t[3]||\"\",this.rules);return{type:\"code\",raw:n,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,\"$1\"):t[2],text:r}}}heading(e){let t=this.rules.block.heading.exec(e);if(t){let n=t[2].trim();if(this.rules.other.endingHash.test(n)){let r=I(n,\"#\");(this.options.pedantic||!r||this.rules.other.endingSpaceChar.test(r))&&(n=r.trim())}return{type:\"heading\",raw:t[0],depth:t[1].length,text:n,tokens:this.lexer.inline(n)}}}hr(e){let t=this.rules.block.hr.exec(e);if(t)return{type:\"hr\",raw:I(t[0],`\n`)}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let n=I(t[0],`\n`).split(`\n`),r=\"\",i=\"\",s=[];for(;n.length>0;){let a=!1,o=[],l;for(l=0;l<n.length;l++)if(this.rules.other.blockquoteStart.test(n[l]))o.push(n[l]),a=!0;else if(!a)o.push(n[l]);else break;n=n.slice(l);let p=o.join(`\n`),c=p.replace(this.rules.other.blockquoteSetextReplace,`\n    $1`).replace(this.rules.other.blockquoteSetextReplace2,\"\");r=r?`${r}\n${p}`:p,i=i?`${i}\n${c}`:c;let d=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(c,s,!0),this.lexer.state.top=d,n.length===0)break;let h=s.at(-1);if(h?.type===\"code\")break;if(h?.type===\"blockquote\"){let R=h,f=R.raw+`\n`+n.join(`\n`),S=this.blockquote(f);s[s.length-1]=S,r=r.substring(0,r.length-R.raw.length)+S.raw,i=i.substring(0,i.length-R.text.length)+S.text;break}else if(h?.type===\"list\"){let R=h,f=R.raw+`\n`+n.join(`\n`),S=this.list(f);s[s.length-1]=S,r=r.substring(0,r.length-h.raw.length)+S.raw,i=i.substring(0,i.length-R.raw.length)+S.raw,n=f.substring(s.at(-1).raw.length).split(`\n`);continue}}return{type:\"blockquote\",raw:r,tokens:s,text:i}}}list(e){let t=this.rules.block.list.exec(e);if(t){let n=t[1].trim(),r=n.length>1,i={type:\"list\",raw:\"\",ordered:r,start:r?+n.slice(0,-1):\"\",loose:!1,items:[]};n=r?`\\\\d{1,9}\\\\${n.slice(-1)}`:`\\\\${n}`,this.options.pedantic&&(n=r?n:\"[*+-]\");let s=this.rules.other.listItemRegex(n),a=!1;for(;e;){let l=!1,p=\"\",c=\"\";if(!(t=s.exec(e))||this.rules.block.hr.test(e))break;p=t[0],e=e.substring(p.length);let d=ge(t[2].split(`\n`,1)[0],t[1].length),h=e.split(`\n`,1)[0],R=!d.trim(),f=0;if(this.options.pedantic?(f=2,c=d.trimStart()):R?f=t[1].length+1:(f=d.search(this.rules.other.nonSpaceChar),f=f>4?1:f,c=d.slice(f),f+=t[1].length),R&&this.rules.other.blankLine.test(h)&&(p+=h+`\n`,e=e.substring(h.length+1),l=!0),!l){let S=this.rules.other.nextBulletRegex(f),Y=this.rules.other.hrRegex(f),ee=this.rules.other.fencesBeginRegex(f),te=this.rules.other.headingBeginRegex(f),me=this.rules.other.htmlBeginRegex(f),xe=this.rules.other.blockquoteBeginRegex(f);for(;e;){let Z=e.split(`\n`,1)[0],A;if(h=Z,this.options.pedantic?(h=h.replace(this.rules.other.listReplaceNesting,\"  \"),A=h):A=h.replace(this.rules.other.tabCharGlobal,\"    \"),ee.test(h)||te.test(h)||me.test(h)||xe.test(h)||S.test(h)||Y.test(h))break;if(A.search(this.rules.other.nonSpaceChar)>=f||!h.trim())c+=`\n`+A.slice(f);else{if(R||d.replace(this.rules.other.tabCharGlobal,\"    \").search(this.rules.other.nonSpaceChar)>=4||ee.test(d)||te.test(d)||Y.test(d))break;c+=`\n`+h}R=!h.trim(),p+=Z+`\n`,e=e.substring(Z.length+1),d=A.slice(f)}}i.loose||(a?i.loose=!0:this.rules.other.doubleBlankLine.test(p)&&(a=!0)),i.items.push({type:\"list_item\",raw:p,task:!!this.options.gfm&&this.rules.other.listIsTask.test(c),loose:!1,text:c,tokens:[]}),i.raw+=p}let o=i.items.at(-1);if(o)o.raw=o.raw.trimEnd(),o.text=o.text.trimEnd();else return;i.raw=i.raw.trimEnd();for(let l of i.items){if(this.lexer.state.top=!1,l.tokens=this.lexer.blockTokens(l.text,[]),l.task){if(l.text=l.text.replace(this.rules.other.listReplaceTask,\"\"),l.tokens[0]?.type===\"text\"||l.tokens[0]?.type===\"paragraph\"){l.tokens[0].raw=l.tokens[0].raw.replace(this.rules.other.listReplaceTask,\"\"),l.tokens[0].text=l.tokens[0].text.replace(this.rules.other.listReplaceTask,\"\");for(let c=this.lexer.inlineQueue.length-1;c>=0;c--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[c].src)){this.lexer.inlineQueue[c].src=this.lexer.inlineQueue[c].src.replace(this.rules.other.listReplaceTask,\"\");break}}let p=this.rules.other.listTaskCheckbox.exec(l.raw);if(p){let c={type:\"checkbox\",raw:p[0]+\" \",checked:p[0]!==\"[ ]\"};l.checked=c.checked,i.loose?l.tokens[0]&&[\"paragraph\",\"text\"].includes(l.tokens[0].type)&&\"tokens\"in l.tokens[0]&&l.tokens[0].tokens?(l.tokens[0].raw=c.raw+l.tokens[0].raw,l.tokens[0].text=c.raw+l.tokens[0].text,l.tokens[0].tokens.unshift(c)):l.tokens.unshift({type:\"paragraph\",raw:c.raw,text:c.raw,tokens:[c]}):l.tokens.unshift(c)}}if(!i.loose){let p=l.tokens.filter(d=>d.type===\"space\"),c=p.length>0&&p.some(d=>this.rules.other.anyLine.test(d.raw));i.loose=c}}if(i.loose)for(let l of i.items){l.loose=!0;for(let p of l.tokens)p.type===\"text\"&&(p.type=\"paragraph\")}return i}}html(e){let t=this.rules.block.html.exec(e);if(t)return{type:\"html\",block:!0,raw:t[0],pre:t[1]===\"pre\"||t[1]===\"script\"||t[1]===\"style\",text:t[0]}}def(e){let t=this.rules.block.def.exec(e);if(t){let n=t[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal,\" \"),r=t[2]?t[2].replace(this.rules.other.hrefBrackets,\"$1\").replace(this.rules.inline.anyPunctuation,\"$1\"):\"\",i=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline.anyPunctuation,\"$1\"):t[3];return{type:\"def\",tag:n,raw:t[0],href:r,title:i}}}table(e){let t=this.rules.block.table.exec(e);if(!t||!this.rules.other.tableDelimiter.test(t[2]))return;let n=V(t[1]),r=t[2].replace(this.rules.other.tableAlignChars,\"\").split(\"|\"),i=t[3]?.trim()?t[3].replace(this.rules.other.tableRowBlankLine,\"\").split(`\n`):[],s={type:\"table\",raw:t[0],header:[],align:[],rows:[]};if(n.length===r.length){for(let a of r)this.rules.other.tableAlignRight.test(a)?s.align.push(\"right\"):this.rules.other.tableAlignCenter.test(a)?s.align.push(\"center\"):this.rules.other.tableAlignLeft.test(a)?s.align.push(\"left\"):s.align.push(null);for(let a=0;a<n.length;a++)s.header.push({text:n[a],tokens:this.lexer.inline(n[a]),header:!0,align:s.align[a]});for(let a of i)s.rows.push(V(a,s.header.length).map((o,l)=>({text:o,tokens:this.lexer.inline(o),header:!1,align:s.align[l]})));return s}}lheading(e){let t=this.rules.block.lheading.exec(e);if(t){let n=t[1].trim();return{type:\"heading\",raw:t[0],depth:t[2].charAt(0)===\"=\"?1:2,text:n,tokens:this.lexer.inline(n)}}}paragraph(e){let t=this.rules.block.paragraph.exec(e);if(t){let n=t[1].charAt(t[1].length-1)===`\n`?t[1].slice(0,-1):t[1];return{type:\"paragraph\",raw:t[0],text:n,tokens:this.lexer.inline(n)}}}text(e){let t=this.rules.block.text.exec(e);if(t)return{type:\"text\",raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){let t=this.rules.inline.escape.exec(e);if(t)return{type:\"escape\",raw:t[0],text:t[1]}}tag(e){let t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:\"html\",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){let t=this.rules.inline.link.exec(e);if(t){let n=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(n)){if(!this.rules.other.endAngleBracket.test(n))return;let s=I(n.slice(0,-1),\"\\\\\");if((n.length-s.length)%2===0)return}else{let s=de(t[2],\"()\");if(s===-2)return;if(s>-1){let o=(t[0].indexOf(\"!\")===0?5:4)+t[1].length+s;t[2]=t[2].substring(0,s),t[0]=t[0].substring(0,o).trim(),t[3]=\"\"}}let r=t[2],i=\"\";if(this.options.pedantic){let s=this.rules.other.pedanticHrefTitle.exec(r);s&&(r=s[1],i=s[3])}else i=t[3]?t[3].slice(1,-1):\"\";return r=r.trim(),this.rules.other.startAngleBracket.test(r)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(n)?r=r.slice(1):r=r.slice(1,-1)),fe(t,{href:r&&r.replace(this.rules.inline.anyPunctuation,\"$1\"),title:i&&i.replace(this.rules.inline.anyPunctuation,\"$1\")},t[0],this.lexer,this.rules)}}reflink(e,t){let n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){let r=(n[2]||n[1]).replace(this.rules.other.multipleSpaceGlobal,\" \"),i=t[r.toLowerCase()];if(!i){let s=n[0].charAt(0);return{type:\"text\",raw:s,text:s}}return fe(n,i,n[0],this.lexer,this.rules)}}emStrong(e,t,n=\"\"){let r=this.rules.inline.emStrongLDelim.exec(e);if(!r||!r[1]&&!r[2]&&!r[3]&&!r[4]||r[4]&&n.match(this.rules.other.unicodeAlphaNumeric))return;if(!(r[1]||r[3]||\"\")||!n||this.rules.inline.punctuation.exec(n)){let s=[...r[0]].length-1,a,o,l=s,p=0,c=r[0][0]===\"*\"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(c.lastIndex=0,t=t.slice(-1*e.length+s);(r=c.exec(t))!==null;){if(a=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!a)continue;if(o=[...a].length,r[3]||r[4]){l+=o;continue}else if((r[5]||r[6])&&s%3&&!((s+o)%3)){p+=o;continue}if(l-=o,l>0)continue;o=Math.min(o,o+l+p);let d=[...r[0]][0].length,h=e.slice(0,s+r.index+d+o);if(Math.min(s,o)%2){let f=h.slice(1,-1);return{type:\"em\",raw:h,text:f,tokens:this.lexer.inlineTokens(f)}}let R=h.slice(2,-2);return{type:\"strong\",raw:h,text:R,tokens:this.lexer.inlineTokens(R)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let n=t[2].replace(this.rules.other.newLineCharGlobal,\" \"),r=this.rules.other.nonSpaceChar.test(n),i=this.rules.other.startingSpaceChar.test(n)&&this.rules.other.endingSpaceChar.test(n);return r&&i&&(n=n.substring(1,n.length-1)),{type:\"codespan\",raw:t[0],text:n}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:\"br\",raw:t[0]}}del(e,t,n=\"\"){let r=this.rules.inline.delLDelim.exec(e);if(!r)return;if(!(r[1]||\"\")||!n||this.rules.inline.punctuation.exec(n)){let s=[...r[0]].length-1,a,o,l=s,p=this.rules.inline.delRDelim;for(p.lastIndex=0,t=t.slice(-1*e.length+s);(r=p.exec(t))!==null;){if(a=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!a||(o=[...a].length,o!==s))continue;if(r[3]||r[4]){l+=o;continue}if(l-=o,l>0)continue;o=Math.min(o,o+l);let c=[...r[0]][0].length,d=e.slice(0,s+r.index+c+o),h=d.slice(s,-s);return{type:\"del\",raw:d,text:h,tokens:this.lexer.inlineTokens(h)}}}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let n,r;return t[2]===\"@\"?(n=t[1],r=\"mailto:\"+n):(n=t[1],r=n),{type:\"link\",raw:t[0],text:n,href:r,tokens:[{type:\"text\",raw:n,text:n}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let n,r;if(t[2]===\"@\")n=t[0],r=\"mailto:\"+n;else{let i;do i=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??\"\";while(i!==t[0]);n=t[0],t[1]===\"www.\"?r=\"http://\"+t[0]:r=t[0]}return{type:\"link\",raw:t[0],text:n,href:r,tokens:[{type:\"text\",raw:n,text:n}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let n=this.lexer.state.inRawBlock;return{type:\"text\",raw:t[0],text:t[0],escaped:n}}}};var x=class u{tokens;options;state;inlineQueue;tokenizer;constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||O,this.options.tokenizer=this.options.tokenizer||new w,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let t={other:m,block:B.normal,inline:E.normal};this.options.pedantic?(t.block=B.pedantic,t.inline=E.pedantic):this.options.gfm&&(t.block=B.gfm,this.options.breaks?t.inline=E.breaks:t.inline=E.gfm),this.tokenizer.rules=t}static get rules(){return{block:B,inline:E}}static lex(e,t){return new u(t).lex(e)}static lexInline(e,t){return new u(t).inlineTokens(e)}lex(e){e=e.replace(m.carriageReturn,`\n`),this.blockTokens(e,this.tokens);for(let t=0;t<this.inlineQueue.length;t++){let n=this.inlineQueue[t];this.inlineTokens(n.src,n.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(e,t=[],n=!1){for(this.tokenizer.lexer=this,this.options.pedantic&&(e=e.replace(m.tabCharGlobal,\"    \").replace(m.spaceLine,\"\"));e;){let r;if(this.options.extensions?.block?.some(s=>(r=s.call({lexer:this},e,t))?(e=e.substring(r.raw.length),t.push(r),!0):!1))continue;if(r=this.tokenizer.space(e)){e=e.substring(r.raw.length);let s=t.at(-1);r.raw.length===1&&s!==void 0?s.raw+=`\n`:t.push(r);continue}if(r=this.tokenizer.code(e)){e=e.substring(r.raw.length);let s=t.at(-1);s?.type===\"paragraph\"||s?.type===\"text\"?(s.raw+=(s.raw.endsWith(`\n`)?\"\":`\n`)+r.raw,s.text+=`\n`+r.text,this.inlineQueue.at(-1).src=s.text):t.push(r);continue}if(r=this.tokenizer.fences(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.heading(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.hr(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.blockquote(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.list(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.html(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.def(e)){e=e.substring(r.raw.length);let s=t.at(-1);s?.type===\"paragraph\"||s?.type===\"text\"?(s.raw+=(s.raw.endsWith(`\n`)?\"\":`\n`)+r.raw,s.text+=`\n`+r.raw,this.inlineQueue.at(-1).src=s.text):this.tokens.links[r.tag]||(this.tokens.links[r.tag]={href:r.href,title:r.title},t.push(r));continue}if(r=this.tokenizer.table(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.lheading(e)){e=e.substring(r.raw.length),t.push(r);continue}let i=e;if(this.options.extensions?.startBlock){let s=1/0,a=e.slice(1),o;this.options.extensions.startBlock.forEach(l=>{o=l.call({lexer:this},a),typeof o==\"number\"&&o>=0&&(s=Math.min(s,o))}),s<1/0&&s>=0&&(i=e.substring(0,s+1))}if(this.state.top&&(r=this.tokenizer.paragraph(i))){let s=t.at(-1);n&&s?.type===\"paragraph\"?(s.raw+=(s.raw.endsWith(`\n`)?\"\":`\n`)+r.raw,s.text+=`\n`+r.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=s.text):t.push(r),n=i.length!==e.length,e=e.substring(r.raw.length);continue}if(r=this.tokenizer.text(e)){e=e.substring(r.raw.length);let s=t.at(-1);s?.type===\"text\"?(s.raw+=(s.raw.endsWith(`\n`)?\"\":`\n`)+r.raw,s.text+=`\n`+r.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=s.text):t.push(r);continue}if(e){let s=\"Infinite loop on byte: \"+e.charCodeAt(0);if(this.options.silent){console.error(s);break}else throw new Error(s)}}return this.state.top=!0,t}inline(e,t=[]){return this.inlineQueue.push({src:e,tokens:t}),t}inlineTokens(e,t=[]){this.tokenizer.lexer=this;let n=e,r=null;if(this.tokens.links){let o=Object.keys(this.tokens.links);if(o.length>0)for(;(r=this.tokenizer.rules.inline.reflinkSearch.exec(n))!==null;)o.includes(r[0].slice(r[0].lastIndexOf(\"[\")+1,-1))&&(n=n.slice(0,r.index)+\"[\"+\"a\".repeat(r[0].length-2)+\"]\"+n.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(r=this.tokenizer.rules.inline.anyPunctuation.exec(n))!==null;)n=n.slice(0,r.index)+\"++\"+n.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);let i;for(;(r=this.tokenizer.rules.inline.blockSkip.exec(n))!==null;)i=r[2]?r[2].length:0,n=n.slice(0,r.index+i)+\"[\"+\"a\".repeat(r[0].length-i-2)+\"]\"+n.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);n=this.options.hooks?.emStrongMask?.call({lexer:this},n)??n;let s=!1,a=\"\";for(;e;){s||(a=\"\"),s=!1;let o;if(this.options.extensions?.inline?.some(p=>(o=p.call({lexer:this},e,t))?(e=e.substring(o.raw.length),t.push(o),!0):!1))continue;if(o=this.tokenizer.escape(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.tag(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.link(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(o.raw.length);let p=t.at(-1);o.type===\"text\"&&p?.type===\"text\"?(p.raw+=o.raw,p.text+=o.text):t.push(o);continue}if(o=this.tokenizer.emStrong(e,n,a)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.codespan(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.br(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.del(e,n,a)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.autolink(e)){e=e.substring(o.raw.length),t.push(o);continue}if(!this.state.inLink&&(o=this.tokenizer.url(e))){e=e.substring(o.raw.length),t.push(o);continue}let l=e;if(this.options.extensions?.startInline){let p=1/0,c=e.slice(1),d;this.options.extensions.startInline.forEach(h=>{d=h.call({lexer:this},c),typeof d==\"number\"&&d>=0&&(p=Math.min(p,d))}),p<1/0&&p>=0&&(l=e.substring(0,p+1))}if(o=this.tokenizer.inlineText(l)){e=e.substring(o.raw.length),o.raw.slice(-1)!==\"_\"&&(a=o.raw.slice(-1)),s=!0;let p=t.at(-1);p?.type===\"text\"?(p.raw+=o.raw,p.text+=o.text):t.push(o);continue}if(e){let p=\"Infinite loop on byte: \"+e.charCodeAt(0);if(this.options.silent){console.error(p);break}else throw new Error(p)}}return t}};var y=class{options;parser;constructor(e){this.options=e||O}space(e){return\"\"}code({text:e,lang:t,escaped:n}){let r=(t||\"\").match(m.notSpaceStart)?.[0],i=e.replace(m.endingNewline,\"\")+`\n`;return r?'<pre><code class=\"language-'+T(r)+'\">'+(n?i:T(i,!0))+`</code></pre>\n`:\"<pre><code>\"+(n?i:T(i,!0))+`</code></pre>\n`}blockquote({tokens:e}){return`<blockquote>\n${this.parser.parse(e)}</blockquote>\n`}html({text:e}){return e}def(e){return\"\"}heading({tokens:e,depth:t}){return`<h${t}>${this.parser.parseInline(e)}</h${t}>\n`}hr(e){return`<hr>\n`}list(e){let t=e.ordered,n=e.start,r=\"\";for(let a=0;a<e.items.length;a++){let o=e.items[a];r+=this.listitem(o)}let i=t?\"ol\":\"ul\",s=t&&n!==1?' start=\"'+n+'\"':\"\";return\"<\"+i+s+`>\n`+r+\"</\"+i+`>\n`}listitem(e){return`<li>${this.parser.parse(e.tokens)}</li>\n`}checkbox({checked:e}){return\"<input \"+(e?'checked=\"\" ':\"\")+'disabled=\"\" type=\"checkbox\"> '}paragraph({tokens:e}){return`<p>${this.parser.parseInline(e)}</p>\n`}table(e){let t=\"\",n=\"\";for(let i=0;i<e.header.length;i++)n+=this.tablecell(e.header[i]);t+=this.tablerow({text:n});let r=\"\";for(let i=0;i<e.rows.length;i++){let s=e.rows[i];n=\"\";for(let a=0;a<s.length;a++)n+=this.tablecell(s[a]);r+=this.tablerow({text:n})}return r&&(r=`<tbody>${r}</tbody>`),`<table>\n<thead>\n`+t+`</thead>\n`+r+`</table>\n`}tablerow({text:e}){return`<tr>\n${e}</tr>\n`}tablecell(e){let t=this.parser.parseInline(e.tokens),n=e.header?\"th\":\"td\";return(e.align?`<${n} align=\"${e.align}\">`:`<${n}>`)+t+`</${n}>\n`}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${T(e,!0)}</code>`}br(e){return\"<br>\"}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:t,tokens:n}){let r=this.parser.parseInline(n),i=J(e);if(i===null)return r;e=i;let s='<a href=\"'+e+'\"';return t&&(s+=' title=\"'+T(t)+'\"'),s+=\">\"+r+\"</a>\",s}image({href:e,title:t,text:n,tokens:r}){r&&(n=this.parser.parseInline(r,this.parser.textRenderer));let i=J(e);if(i===null)return T(n);e=i;let s=`<img src=\"${e}\" alt=\"${T(n)}\"`;return t&&(s+=` title=\"${T(t)}\"`),s+=\">\",s}text(e){return\"tokens\"in e&&e.tokens?this.parser.parseInline(e.tokens):\"escaped\"in e&&e.escaped?e.text:T(e.text)}};var $=class{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return\"\"+e}image({text:e}){return\"\"+e}br(){return\"\"}checkbox({raw:e}){return e}};var b=class u{options;renderer;textRenderer;constructor(e){this.options=e||O,this.options.renderer=this.options.renderer||new y,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new $}static parse(e,t){return new u(t).parse(e)}static parseInline(e,t){return new u(t).parseInline(e)}parse(e){this.renderer.parser=this;let t=\"\";for(let n=0;n<e.length;n++){let r=e[n];if(this.options.extensions?.renderers?.[r.type]){let s=r,a=this.options.extensions.renderers[s.type].call({parser:this},s);if(a!==!1||![\"space\",\"hr\",\"heading\",\"code\",\"table\",\"blockquote\",\"list\",\"html\",\"def\",\"paragraph\",\"text\"].includes(s.type)){t+=a||\"\";continue}}let i=r;switch(i.type){case\"space\":{t+=this.renderer.space(i);break}case\"hr\":{t+=this.renderer.hr(i);break}case\"heading\":{t+=this.renderer.heading(i);break}case\"code\":{t+=this.renderer.code(i);break}case\"table\":{t+=this.renderer.table(i);break}case\"blockquote\":{t+=this.renderer.blockquote(i);break}case\"list\":{t+=this.renderer.list(i);break}case\"checkbox\":{t+=this.renderer.checkbox(i);break}case\"html\":{t+=this.renderer.html(i);break}case\"def\":{t+=this.renderer.def(i);break}case\"paragraph\":{t+=this.renderer.paragraph(i);break}case\"text\":{t+=this.renderer.text(i);break}default:{let s='Token with \"'+i.type+'\" type was not found.';if(this.options.silent)return console.error(s),\"\";throw new Error(s)}}}return t}parseInline(e,t=this.renderer){this.renderer.parser=this;let n=\"\";for(let r=0;r<e.length;r++){let i=e[r];if(this.options.extensions?.renderers?.[i.type]){let a=this.options.extensions.renderers[i.type].call({parser:this},i);if(a!==!1||![\"escape\",\"html\",\"link\",\"image\",\"strong\",\"em\",\"codespan\",\"br\",\"del\",\"text\"].includes(i.type)){n+=a||\"\";continue}}let s=i;switch(s.type){case\"escape\":{n+=t.text(s);break}case\"html\":{n+=t.html(s);break}case\"link\":{n+=t.link(s);break}case\"image\":{n+=t.image(s);break}case\"checkbox\":{n+=t.checkbox(s);break}case\"strong\":{n+=t.strong(s);break}case\"em\":{n+=t.em(s);break}case\"codespan\":{n+=t.codespan(s);break}case\"br\":{n+=t.br(s);break}case\"del\":{n+=t.del(s);break}case\"text\":{n+=t.text(s);break}default:{let a='Token with \"'+s.type+'\" type was not found.';if(this.options.silent)return console.error(a),\"\";throw new Error(a)}}}return n}};var P=class{options;block;constructor(e){this.options=e||O}static passThroughHooks=new Set([\"preprocess\",\"postprocess\",\"processAllTokens\",\"emStrongMask\"]);static passThroughHooksRespectAsync=new Set([\"preprocess\",\"postprocess\",\"processAllTokens\"]);preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}emStrongMask(e){return e}provideLexer(e=this.block){return e?x.lex:x.lexInline}provideParser(e=this.block){return e?b.parse:b.parseInline}};var D=class{defaults=M();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=b;Renderer=y;TextRenderer=$;Lexer=x;Tokenizer=w;Hooks=P;constructor(...e){this.use(...e)}walkTokens(e,t){let n=[];for(let r of e)switch(n=n.concat(t.call(this,r)),r.type){case\"table\":{let i=r;for(let s of i.header)n=n.concat(this.walkTokens(s.tokens,t));for(let s of i.rows)for(let a of s)n=n.concat(this.walkTokens(a.tokens,t));break}case\"list\":{let i=r;n=n.concat(this.walkTokens(i.items,t));break}default:{let i=r;this.defaults.extensions?.childTokens?.[i.type]?this.defaults.extensions.childTokens[i.type].forEach(s=>{let a=i[s].flat(1/0);n=n.concat(this.walkTokens(a,t))}):i.tokens&&(n=n.concat(this.walkTokens(i.tokens,t)))}}return n}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(n=>{let r={...n};if(r.async=this.defaults.async||r.async||!1,n.extensions&&(n.extensions.forEach(i=>{if(!i.name)throw new Error(\"extension name required\");if(\"renderer\"in i){let s=t.renderers[i.name];s?t.renderers[i.name]=function(...a){let o=i.renderer.apply(this,a);return o===!1&&(o=s.apply(this,a)),o}:t.renderers[i.name]=i.renderer}if(\"tokenizer\"in i){if(!i.level||i.level!==\"block\"&&i.level!==\"inline\")throw new Error(\"extension level must be 'block' or 'inline'\");let s=t[i.level];s?s.unshift(i.tokenizer):t[i.level]=[i.tokenizer],i.start&&(i.level===\"block\"?t.startBlock?t.startBlock.push(i.start):t.startBlock=[i.start]:i.level===\"inline\"&&(t.startInline?t.startInline.push(i.start):t.startInline=[i.start]))}\"childTokens\"in i&&i.childTokens&&(t.childTokens[i.name]=i.childTokens)}),r.extensions=t),n.renderer){let i=this.defaults.renderer||new y(this.defaults);for(let s in n.renderer){if(!(s in i))throw new Error(`renderer '${s}' does not exist`);if([\"options\",\"parser\"].includes(s))continue;let a=s,o=n.renderer[a],l=i[a];i[a]=(...p)=>{let c=o.apply(i,p);return c===!1&&(c=l.apply(i,p)),c||\"\"}}r.renderer=i}if(n.tokenizer){let i=this.defaults.tokenizer||new w(this.defaults);for(let s in n.tokenizer){if(!(s in i))throw new Error(`tokenizer '${s}' does not exist`);if([\"options\",\"rules\",\"lexer\"].includes(s))continue;let a=s,o=n.tokenizer[a],l=i[a];i[a]=(...p)=>{let c=o.apply(i,p);return c===!1&&(c=l.apply(i,p)),c}}r.tokenizer=i}if(n.hooks){let i=this.defaults.hooks||new P;for(let s in n.hooks){if(!(s in i))throw new Error(`hook '${s}' does not exist`);if([\"options\",\"block\"].includes(s))continue;let a=s,o=n.hooks[a],l=i[a];P.passThroughHooks.has(s)?i[a]=p=>{if(this.defaults.async&&P.passThroughHooksRespectAsync.has(s))return(async()=>{let d=await o.call(i,p);return l.call(i,d)})();let c=o.call(i,p);return l.call(i,c)}:i[a]=(...p)=>{if(this.defaults.async)return(async()=>{let d=await o.apply(i,p);return d===!1&&(d=await l.apply(i,p)),d})();let c=o.apply(i,p);return c===!1&&(c=l.apply(i,p)),c}}r.hooks=i}if(n.walkTokens){let i=this.defaults.walkTokens,s=n.walkTokens;r.walkTokens=function(a){let o=[];return o.push(s.call(this,a)),i&&(o=o.concat(i.call(this,a))),o}}this.defaults={...this.defaults,...r}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return x.lex(e,t??this.defaults)}parser(e,t){return b.parse(e,t??this.defaults)}parseMarkdown(e){return(n,r)=>{let i={...r},s={...this.defaults,...i},a=this.onError(!!s.silent,!!s.async);if(this.defaults.async===!0&&i.async===!1)return a(new Error(\"marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise.\"));if(typeof n>\"u\"||n===null)return a(new Error(\"marked(): input parameter is undefined or null\"));if(typeof n!=\"string\")return a(new Error(\"marked(): input parameter is of type \"+Object.prototype.toString.call(n)+\", string expected\"));if(s.hooks&&(s.hooks.options=s,s.hooks.block=e),s.async)return(async()=>{let o=s.hooks?await s.hooks.preprocess(n):n,p=await(s.hooks?await s.hooks.provideLexer(e):e?x.lex:x.lexInline)(o,s),c=s.hooks?await s.hooks.processAllTokens(p):p;s.walkTokens&&await Promise.all(this.walkTokens(c,s.walkTokens));let h=await(s.hooks?await s.hooks.provideParser(e):e?b.parse:b.parseInline)(c,s);return s.hooks?await s.hooks.postprocess(h):h})().catch(a);try{s.hooks&&(n=s.hooks.preprocess(n));let l=(s.hooks?s.hooks.provideLexer(e):e?x.lex:x.lexInline)(n,s);s.hooks&&(l=s.hooks.processAllTokens(l)),s.walkTokens&&this.walkTokens(l,s.walkTokens);let c=(s.hooks?s.hooks.provideParser(e):e?b.parse:b.parseInline)(l,s);return s.hooks&&(c=s.hooks.postprocess(c)),c}catch(o){return a(o)}}}onError(e,t){return n=>{if(n.message+=`\nPlease report this to https://github.com/markedjs/marked.`,e){let r=\"<p>An error occurred:</p><pre>\"+T(n.message+\"\",!0)+\"</pre>\";return t?Promise.resolve(r):r}if(t)return Promise.reject(n);throw n}}};var L=new D;function g(u,e){return L.parse(u,e)}g.options=g.setOptions=function(u){return L.setOptions(u),g.defaults=L.defaults,G(g.defaults),g};g.getDefaults=M;g.defaults=O;g.use=function(...u){return L.use(...u),g.defaults=L.defaults,G(g.defaults),g};g.walkTokens=function(u,e){return L.walkTokens(u,e)};g.parseInline=L.parseInline;g.Parser=b;g.parser=b.parse;g.Renderer=y;g.TextRenderer=$;g.Lexer=x;g.lexer=x.lex;g.Tokenizer=w;g.Hooks=P;g.parse=g;var Qt=g.options,jt=g.setOptions,Ft=g.use,Ut=g.walkTokens,Kt=g.parseInline,Wt=g,Xt=b.parse,Jt=x.lex;export{P as Hooks,x as Lexer,D as Marked,b as Parser,y as Renderer,$ as TextRenderer,w as Tokenizer,O as defaults,M as getDefaults,Jt as lexer,g as marked,Qt as options,Wt as parse,Kt as parseInline,Xt as parser,jt as setOptions,Ft as use,Ut as walkTokens};\n//# sourceMappingURL=marked.esm.js.map\n","\"use client\";\n\n/**\n * Component to safely render Markdown content, supporting keyword highlighting and external links.\n */\nimport { marked } from \"marked\";\nimport styles from \"../code-tree/filetree-table.module.css\";\n\nfunction escapeHtml(value: string): string {\n  return value\n    .replace(/&/g, \"&amp;\")\n    .replace(/</g, \"&lt;\")\n    .replace(/>/g, \"&gt;\")\n    .replace(/\"/g, \"&quot;\")\n    .replace(/'/g, \"&#039;\");\n}\n\nfunction escapeRegExp(value: string): string {\n  return value.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\n\nexport function Markdown({ text, query, className }: { text: string; query?: string; className?: string }) {\n  if (!text) return null;\n\n  const renderer = new marked.Renderer();\n\n  renderer.link = ({ href, title, text }) => {\n    const safeHref = href ? escapeHtml(href) : \"#\";\n    const titleAttr = title ? ` title=\"${escapeHtml(title)}\"` : \"\";\n    return `<a href=\"${safeHref}\" target=\"_blank\" rel=\"noopener noreferrer\"${titleAttr} style=\"color:rgb(59,130,246);text-decoration:underline\">${text}</a>`;\n  };\n\n  renderer.image = ({ href, title, text }) => {\n    const safeSrc = href ? escapeHtml(href) : \"\";\n    const safeAlt = escapeHtml(text || \"\");\n    const titleAttr = title ? ` title=\"${escapeHtml(title)}\"` : \"\";\n    return `<img src=\"${safeSrc}\" alt=\"${safeAlt}\"${titleAttr} loading=\"lazy\" style=\"display:block;max-width:100%;height:auto;border-radius:0.5rem;margin:0.5rem 0;\" />`;\n  };\n\n  renderer.paragraph = ({ text }) => `<p style=\"margin:0.35rem 0;\">${text}</p>`;\n  renderer.code = ({ text }) => `<pre class=\"bg-slate-900 p-2 rounded my-2 overflow-x-auto\"><code>${escapeHtml(text)}</code></pre>`;\n\n  let processed = marked.parse(text, {\n    async: false,\n    breaks: true,\n    gfm: true,\n    renderer,\n  }) as string;\n\n  processed = processed\n    .replace(/<ul>/g, '<ul class=\"list-disc ml-4 my-2\">')\n    .replace(/<ol>/g, '<ol class=\"list-decimal ml-4 my-2\">');\n\n  if (query) {\n    const safeQuery = escapeRegExp(query);\n    processed = processed.replace(\n      new RegExp(`(${safeQuery})`, \"gi\"),\n      `<mark class=\"${styles.highlight}\">$1</mark>`,\n    );\n  }\n\n  const hasBlockContent = /<(p|ul|ol|pre|img|h[1-6]|blockquote|table)\\b/i.test(processed);\n  const Tag = hasBlockContent ? \"div\" : \"span\";\n\n  return (\n    <Tag\n      className={className}\n      dangerouslySetInnerHTML={{ __html: processed }}\n    />\n  );\n}\n","/**\r\n * Rich tooltip popup that appears when hovering over a graph node.\r\n * Displays the node title, description (rendered as Markdown), and\r\n * categorised lists of exports, functions, and types.\r\n */\r\n\r\n// @ts-nocheck - Radix UI types incompatible with React 19 children prop\r\n'use client';\r\n\r\nimport { ExternalLink } from 'lucide-react';\r\nimport { Tooltip, TooltipContent, TooltipTrigger } from '../ui/tooltip';\r\nimport { Markdown } from '../typography/markdown';\r\nimport type { ActiveTooltip } from './bind-node-interactions';\r\n\r\nexport function MermaidTooltipOverlay({ tooltip }: { tooltip: ActiveTooltip | null }) {\r\n  return (\r\n    <Tooltip open={!!tooltip}>\r\n      <TooltipTrigger asChild>\r\n        <span\r\n          aria-hidden=\"true\"\r\n          className=\"fixed pointer-events-none\"\r\n          style={{\r\n            left: tooltip?.x ?? -9999,\r\n            top: (tooltip?.y ?? -9999) - 8,\r\n            width: 1,\r\n            height: 1,\r\n          }}\r\n        />\r\n      </TooltipTrigger>\r\n      <TooltipContent className=\"w-80 p-3\">\r\n        {tooltip && (\r\n          <>\r\n            <div className=\"flex items-start justify-between gap-3\">\r\n              <div className=\"font-semibold text-white\">{tooltip.title}</div>\r\n              {tooltip.href && (\r\n                <span className=\"inline-flex items-center gap-1 text-xs text-sky-300\">\r\n                  <ExternalLink size={12} />\r\n                  npm\r\n                </span>\r\n              )}\r\n            </div>\r\n            {tooltip.description && (\r\n              <div className=\"mt-2 text-[13px] leading-5 text-slate-300\">\r\n                <Markdown text={tooltip.description} />\r\n              </div>\r\n            )}\r\n            {tooltip.exports && tooltip.exports.length > 0 && (\r\n              <div className=\"mt-3\">\r\n                <div className=\"mb-1 text-[11px] font-semibold uppercase tracking-wide text-slate-400\">Exports</div>\r\n                <div className=\"flex flex-wrap gap-1.5\">\r\n                  {tooltip.exports.map((item) => (\r\n                    <span key={item} className=\"rounded-md border border-cyan-900/60 bg-cyan-500/10 px-2 py-0.5 text-xs text-cyan-200\">\r\n                      {item}\r\n                    </span>\r\n                  ))}\r\n                </div>\r\n              </div>\r\n            )}\r\n            {tooltip.functions && tooltip.functions.length > 0 && (\r\n              <div className=\"mt-3\">\r\n                <div className=\"mb-1 text-[11px] font-semibold uppercase tracking-wide text-slate-400\">Functions</div>\r\n                <div className=\"flex flex-wrap gap-1.5\">\r\n                  {tooltip.functions.map((item) => (\r\n                    <span key={item} className=\"rounded-md border border-emerald-900/60 bg-emerald-500/10 px-2 py-0.5 text-xs text-emerald-200\">\r\n                      {item}\r\n                    </span>\r\n                  ))}\r\n                </div>\r\n              </div>\r\n            )}\r\n            {tooltip.types && tooltip.types.length > 0 && (\r\n              <div className=\"mt-3\">\r\n                <div className=\"mb-1 text-[11px] font-semibold uppercase tracking-wide text-slate-400\">Types</div>\r\n                <div className=\"flex flex-wrap gap-1.5\">\r\n                  {tooltip.types.map((item) => (\r\n                    <span key={item} className=\"rounded-md border border-violet-900/60 bg-violet-500/10 px-2 py-0.5 text-xs text-violet-200\">\r\n                      {item}\r\n                    </span>\r\n                  ))}\r\n                </div>\r\n              </div>\r\n            )}\r\n          </>\r\n        )}\r\n      </TooltipContent>\r\n    </Tooltip>\r\n  );\r\n}\r\n","/**\n * Main Mermaid graph component that orchestrates rendering, pan/zoom via\n * svg-toolbelt, node tooltips, search highlighting, and file-tree\n * anchor interception.\n */\n\n'use client';\n\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport { TooltipProvider } from '../ui/tooltip';\nimport type { MermaidTooltipData } from './dependency-graph-shared';\nimport { widenClusterLabels, parseMermaidSvg, type ParsedSvg } from './pan-zoom-controller';\nimport { type ActiveTooltip, bindNodeTooltips, highlightMatchingNodes, interceptFiletreeAnchorClicks } from './bind-node-interactions';\nimport { MermaidTooltipOverlay } from './mermaid-tooltip-overlay';\nimport 'svg-toolbelt/dist/svg-toolbelt.css';\n\nexport { Mermaid as MermaidClient };\n\nfunction Mermaid({\n  chart,\n  nodeTooltips = {},\n  highlightQuery = '',\n}: {\n  chart: string;\n  nodeTooltips?: Record<string, MermaidTooltipData>;\n  highlightQuery?: string;\n}) {\n  const containerRef = useRef<HTMLDivElement>(null);\n  const svgContainerRef = useRef<HTMLDivElement>(null);\n  const svgWrapperRef = useRef<SVGGElement>(null);\n  const toolbeltRef = useRef<any>(null);\n  const [tooltip, setTooltip] = useState<ActiveTooltip | null>(null);\n  const [svgData, setSvgData] = useState<ParsedSvg | null>(null);\n\n  // Render Mermaid chart to SVG string, then parse\n  useEffect(() => {\n    let cancelled = false;\n    import('mermaid').then((m) => {\n      if (cancelled) return;\n      m.default.initialize({\n        startOnLoad: false,\n        maxTextSize: 500000,\n        theme: 'dark',\n        themeVariables: {\n          fontFamily: 'ui-sans-serif, system-ui, sans-serif',\n          fontSize: '80px',\n          primaryTextColor: '#f8fafc',\n          lineColor: '#94a3b8',\n          clusterBkg: '#0f172a',\n          clusterBorder: '#64748b',\n          clusterTextSize: '96px',\n        },\n        flowchart: { curve: 'basis', rankSpacing: 120, nodeSpacing: 80 },\n        securityLevel: 'loose',\n      });\n      const id = `mermaid-${Math.random().toString(36).slice(2, 9)}`;\n      console.log(\"[Mermaid] Rendering chart, length:\", chart.trim().length);\n      m.default.render(id, chart.trim()).then(({ svg }) => {\n        if (cancelled) return;\n        console.log(\"[Mermaid] SVG rendered, length:\", svg.length);\n        const temp = document.createElement('div');\n        temp.innerHTML = svg;\n        widenClusterLabels(temp);\n        const finalSvg = temp.innerHTML;\n        const parsed = parseMermaidSvg(finalSvg);\n        console.log(\"[Mermaid] Parsed SVG:\", { width: parsed.width, height: parsed.height, innerHtmlLength: parsed.innerHtml.length });\n        setSvgData(parsed);\n      }).catch((err) => {\n        console.error(\"[Mermaid] Render FAILED:\", err);\n      });\n    }).catch((err) => {\n      console.error(\"[Mermaid] Failed to import mermaid:\", err);\n    });\n    return () => {\n      cancelled = true;\n      setTooltip(null);\n      setSvgData(null);\n    };\n  }, [chart]);\n\n  // Initialize svg-toolbelt once SVG is in the DOM (pan, zoom, controls)\n  useEffect(() => {\n    if (!svgData || !svgContainerRef.current) return;\n\n    import('svg-toolbelt').then(({ SvgZoom }) => {\n      const container = svgContainerRef.current;\n      if (!container) return;\n      const tb = new SvgZoom(container, {\n        minScale: 0.2,\n        maxScale: 6,\n        zoomStep: 0.15,\n        showControls: true,\n        controlsPosition: 'top-right',\n        enableTouch: true,\n        enableKeyboard: true,\n        showZoomLevelIndicator: true,\n      });\n      tb.init();\n      toolbeltRef.current = tb;\n    }).catch((err) => {\n      console.error(\"[Mermaid] svg-toolbelt init failed:\", err);\n    });\n\n    return () => {\n      toolbeltRef.current?.destroy();\n      toolbeltRef.current = null;\n    };\n  }, [svgData]);\n\n  // After the SVG inner content is rendered in the DOM, bind tooltips/highlights\n  const bindInteractions = useCallback(\n    (g: SVGGElement | null) => {\n      svgWrapperRef.current = g;\n      if (!g) return;\n      bindNodeTooltips(g, nodeTooltips, setTooltip);\n      highlightMatchingNodes(g, highlightQuery);\n      interceptFiletreeAnchorClicks(g);\n\n      // Add manual click listeners for cluster collapse\n      g.querySelectorAll('.cluster').forEach((cluster) => {\n        const match = cluster.id.match(/-(pkg_[^-]+)-/);\n        if (match && match[1]) {\n          const nodeId = match[1];\n          const label = cluster.querySelector('.cluster-label');\n          if (label) {\n            label.setAttribute('style', 'cursor: pointer');\n            label.addEventListener('click', (e) => {\n              e.stopPropagation();\n              if ((window as any).toggleCollapse) {\n                (window as any).toggleCollapse(nodeId);\n              }\n            });\n          }\n        }\n      });\n    },\n    [nodeTooltips, highlightQuery],\n  );\n\n  return (\n    <TooltipProvider delayDuration={0}>\n      <div\n        ref={containerRef}\n        className=\"relative my-6 mx-auto max-w-[3000px] rounded-2xl border border-slate-800 bg-slate-950/70 p-4 shadow-[0_20px_60px_rgba(15,23,42,0.35)] [&_.cluster-label]:overflow-visible [&_.cluster-label]:text-[80px] [&_.cluster-label]:font-black [&_.cluster-label]:leading-[1.15] [&_.cluster-label]:!fill-sky-300 [&_.cluster-label_span]:px-4 [&_.cluster-label_span]:py-1 [&_.cluster-label_span]:leading-[1.15] [&_.cluster-label_span]:text-sky-300 [&_.edgeLabel]:text-lg [&_.label]:text-[64px] [&_.label]:font-bold [&_.node]:cursor-pointer [&_.cluster_rect]:!stroke-sky-500/50 [&_.cluster_rect]:!stroke-[3px]\"\n      >\n        {svgData ? (\n          <div\n            ref={svgContainerRef}\n            className=\"min-h-[600px]\"\n            style={{ overflow: 'hidden' }}\n          >\n            <svg\n              width=\"100%\"\n              height=\"600\"\n              viewBox={`0 0 ${svgData.width} ${svgData.height}`}\n              style={{ background: 'transparent' }}\n            >\n              <g\n                ref={bindInteractions}\n                dangerouslySetInnerHTML={{ __html: svgData.innerHtml }}\n              />\n            </svg>\n          </div>\n        ) : (\n          <div className=\"flex items-center justify-center min-h-[600px] text-slate-500\">\n            Loading graph…\n          </div>\n        )}\n        <MermaidTooltipOverlay tooltip={tooltip} />\n      </div>\n    </TooltipProvider>\n  );\n}\n","/**\n * Shared utility functions, logic, and tooltip builders for the dependency graph and its components.\n */\nimport type { FileAnalysis } from \"../../lib\";\n\nexport interface FileInfo {\n  path: string;\n  name: string;\n  id: string;\n  pkg: string;\n  description?: string;\n  analysis?: FileAnalysis;\n}\n\nexport interface GraphDisplayOptions {\n  showNpmImports: boolean;\n  showTypes: boolean;\n  showPrivateFunctions: boolean;\n  showExportedFunctions: boolean;\n}\n\nexport interface MermaidTooltipData {\n  title: string;\n  description?: string;\n  exports?: string[];\n  functions?: string[];\n  types?: string[];\n  href?: string;\n}\n\nconst NODE_COLORS = {\n  entry: { bg: \"#14532d\", border: \"#22c55e\", font: \"#f0fdf4\" },\n  core: { bg: \"#1d4ed8\", border: \"#60a5fa\", font: \"#eff6ff\" },\n  types: { bg: \"#7e22ce\", border: \"#c084fc\", font: \"#faf5ff\" },\n  util: { bg: \"#334155\", border: \"#94a3b8\", font: \"#f8fafc\" },\n  npm: { bg: \"#7c2d12\", border: \"#fb923c\", font: \"#fff7ed\" },\n  fn: { bg: \"#14532d\", border: \"#4ade80\", font: \"#ecfdf5\" },\n  exportFn: { bg: \"#164e63\", border: \"#22d3ee\", font: \"#ecfeff\" },\n  typeNode: { bg: \"#581c87\", border: \"#c084fc\", font: \"#faf5ff\" },\n} as const;\n\nfunction resolveImport(fromPath: string, importPath: string): string {\n  const dir = fromPath.split(\"/\").slice(0, -1);\n  const parts = importPath.replace(/\\.(js|ts|mjs|mts)$/, \"\").split(\"/\");\n  const resolved = [...dir];\n  for (const p of parts) {\n    if (p === \"..\") resolved.pop();\n    else if (p !== \".\") resolved.push(p);\n  }\n  return resolved.join(\"/\");\n}\n\nfunction uniqueNames(values: string[]): string[] {\n  return [...new Set(values.filter(Boolean))];\n}\n\nfunction makeSymbolNodeId(\n  fileId: string,\n  prefix: \"private_fn\" | \"exported_fn\" | \"type\",\n  name: string,\n): string {\n  return `${fileId}__${prefix}_${name.replace(/[^a-zA-Z0-9]/g, \"_\")}`;\n}\n\nfunction escapeC4(value: string): string {\n  return value.replace(/\"/g, \"'\");\n}\n\nfunction classifyFile(f: FileInfo): keyof typeof NODE_COLORS {\n  if (f.name === \"index.ts\" || f.name === \"index.js\") return \"entry\";\n  if (f.name.includes(\"type\")) return \"types\";\n  if (\n    f.analysis?.exports.some((e) => e.kind === \"function\" || e.kind === \"class\")\n  )\n    return \"core\";\n  return \"util\";\n}\n\nfunction fileExtTech(f: FileInfo): string {\n  const ext = f.name.split(\".\").pop() ?? \"\";\n  const map: Record<string, string> = {\n    ts: \"TypeScript\",\n    tsx: \"React TSX\",\n    js: \"JavaScript\",\n    jsx: \"React JSX\",\n    mjs: \"ESModule\",\n    md: \"Markdown\",\n    json: \"JSON\",\n  };\n  return map[ext] ?? ext;\n}\n\nexport function buildChart(\n  files: FileInfo[],\n  options: GraphDisplayOptions,\n): string {\n  const lines: string[] = [\"C4Container\"];\n\n  // Group files by package\n  const pkgs = new Map<string, FileInfo[]>();\n  for (const f of files) {\n    if (!pkgs.has(f.pkg)) pkgs.set(f.pkg, []);\n    pkgs.get(f.pkg)!.push(f);\n  }\n\n  const pathLookup = new Map<string, string>();\n  for (const f of files) {\n    pathLookup.set(f.path, f.id);\n    pathLookup.set(f.path.replace(/\\.[^.]+$/, \"\"), f.id);\n  }\n\n  // Track boundary IDs for styling\n  const pkgBoundaryIds: string[] = [];\n  const dirBoundaryIds: string[] = [];\n\n  // Track all file IDs and their color classification for styling\n  const fileStyles: { id: string; color: keyof typeof NODE_COLORS }[] = [];\n\n  // Emit Container_Boundary per package, nested by subdirectory\n  for (const [pkg, pkgFiles] of pkgs) {\n    const pkgId = `pkg_${pkg.replace(/[^a-zA-Z0-9_]/g, \"_\")}`;\n    pkgBoundaryIds.push(pkgId);\n    lines.push(`  Container_Boundary(${pkgId}, \"${pkg} ➕\") {`);\n\n    // Separate files into subdirectories vs package root\n    const subDirs = new Map<string, FileInfo[]>();\n    const rootFiles: FileInfo[] = [];\n    for (const f of pkgFiles) {\n      const relPath =\n        pkg === \"root\"\n          ? f.name\n          : f.path.startsWith(`${pkg}/`)\n            ? f.path.slice(pkg.length + 1)\n            : f.name;\n      const parts = relPath.split(\"/\");\n      if (parts.length > 1) {\n        const subDir = parts[0];\n        if (!subDirs.has(subDir)) subDirs.set(subDir, []);\n        subDirs.get(subDir)!.push(f);\n      } else {\n        rootFiles.push(f);\n      }\n    }\n\n    // Nested subdirectory boundaries\n    for (const [subDir, subFiles] of subDirs) {\n      const subId = `${pkgId}_${subDir.replace(/[^a-zA-Z0-9_]/g, \"_\")}`;\n      dirBoundaryIds.push(subId);\n      lines.push(`    Container_Boundary(${subId}, \"${subDir}/ ➕\") {`);\n      for (const f of subFiles) {\n        const shortName = f.path.startsWith(`${pkg}/`)\n          ? f.path.slice(pkg.length + 1)\n          : f.name;\n        const tech = fileExtTech(f);\n        const cls = classifyFile(f);\n        fileStyles.push({ id: f.id, color: cls });\n        lines.push(\n          `      Component(${f.id}, \"${escapeC4(f.name)}\", \"${tech}\")`,\n        );\n      }\n      lines.push(`    }`);\n    }\n\n    // Root-level files in the package\n    for (const f of rootFiles) {\n      const tech = fileExtTech(f);\n      const cls = classifyFile(f);\n      fileStyles.push({ id: f.id, color: cls });\n      lines.push(`    Component(${f.id}, \"${escapeC4(f.name)}\", \"${tech}\")`);\n    }\n\n    lines.push(`  }`);\n  }\n\n  // Symbol nodes (private functions, exported functions, types) as top-level components\n  const symbolStyles: { id: string; color: keyof typeof NODE_COLORS }[] = [];\n\n  if (\n    options.showPrivateFunctions ||\n    options.showExportedFunctions ||\n    options.showTypes\n  ) {\n    for (const f of files) {\n      if (!f.analysis) continue;\n\n      if (options.showPrivateFunctions) {\n        for (const fnName of uniqueNames(\n          f.analysis.functions.map((i) => i.name),\n        )) {\n          const nodeId = makeSymbolNodeId(f.id, \"private_fn\", fnName);\n          lines.push(\n            `  Component(${nodeId}, \"${escapeC4(fnName)}\", \"Function\")`,\n          );\n          symbolStyles.push({ id: nodeId, color: \"fn\" });\n        }\n      }\n\n      if (options.showExportedFunctions) {\n        for (const fnName of uniqueNames(\n          f.analysis.exports\n            .filter((i) => i.kind === \"function\" || i.kind === \"class\")\n            .map((i) => i.name),\n        )) {\n          const nodeId = makeSymbolNodeId(f.id, \"exported_fn\", fnName);\n          lines.push(`  Component(${nodeId}, \"${escapeC4(fnName)}\", \"Export\")`);\n          symbolStyles.push({ id: nodeId, color: \"exportFn\" });\n        }\n      }\n\n      if (options.showTypes) {\n        const typeNames = uniqueNames([\n          ...f.analysis.types.map((i) => i.name),\n          ...f.analysis.exports\n            .filter((i) => i.kind === \"type\")\n            .map((i) => i.name),\n        ]);\n        for (const typeName of typeNames) {\n          const nodeId = makeSymbolNodeId(f.id, \"type\", typeName);\n          lines.push(`  Component(${nodeId}, \"${escapeC4(typeName)}\", \"Type\")`);\n          symbolStyles.push({ id: nodeId, color: \"typeNode\" });\n        }\n      }\n    }\n  }\n\n  // NPM external systems\n  if (options.showNpmImports) {\n    const npmNodes = new Map<string, string>();\n    for (const f of files) {\n      for (const pkg of [...new Set(f.analysis?.npmImports ?? [])]) {\n        if (!npmNodes.has(pkg)) {\n          const nodeId = `npm_${pkg.replace(/[^a-zA-Z0-9]/g, \"_\")}`;\n          npmNodes.set(pkg, nodeId);\n          lines.push(\n            `  System_Ext(${nodeId}, \"${escapeC4(pkg)}\", \"npm package\")`,\n          );\n          symbolStyles.push({ id: nodeId, color: \"npm\" });\n        }\n      }\n    }\n  }\n\n  lines.push(\"\");\n\n  // Relationships: file-to-file imports\n  const edges = new Set<string>();\n\n  const fileEdges = new Map<\n    string,\n    {\n      from: string;\n      to: string;\n      valueNames: Set<string>;\n      typeNames: Set<string>;\n    }\n  >();\n  const getFileEdge = (from: string, to: string) => {\n    const key = `${from}=>${to}`;\n    let edge = fileEdges.get(key);\n    if (!edge) {\n      edge = { from, to, valueNames: new Set(), typeNames: new Set() };\n      fileEdges.set(key, edge);\n    }\n    return edge;\n  };\n\n  for (const f of files) {\n    if (!f.analysis) continue;\n    for (const imp of f.analysis.localImports) {\n      const resolved = resolveImport(f.path, imp);\n      const targetId = pathLookup.get(resolved);\n      if (targetId && targetId !== f.id) getFileEdge(f.id, targetId);\n    }\n  }\n\n  // Collect symbol import details\n  if (options.showExportedFunctions || options.showTypes) {\n    for (const f of files) {\n      if (!f.analysis) continue;\n      for (const imported of f.analysis.localImportSymbols ?? []) {\n        const resolved = resolveImport(f.path, imported.source);\n        const targetFile = files.find(\n          (c) =>\n            c.path === resolved || c.path.replace(/\\.[^.]+$/, \"\") === resolved,\n        );\n        if (!targetFile || targetFile.id === f.id) continue;\n        const fileEdge = getFileEdge(f.id, targetFile.id);\n        if (options.showExportedFunctions)\n          for (const v of imported.valueNames) fileEdge.valueNames.add(v);\n        if (options.showTypes)\n          for (const t of imported.typeNames) fileEdge.typeNames.add(t);\n      }\n    }\n  }\n\n  // Emit Rel() for file edges\n  for (const edge of fileEdges.values()) {\n    const valueParts = options.showExportedFunctions\n      ? uniqueNames([...edge.valueNames]).slice(0, 5)\n      : [];\n    const typeParts = options.showTypes\n      ? uniqueNames([...edge.typeNames])\n          .slice(0, 3)\n          .map((n) => `type ${n}`)\n      : [];\n    const label = [...valueParts, ...typeParts].join(\", \") || \"imports\";\n    const key = `${edge.from}->${edge.to}`;\n    if (!edges.has(key)) {\n      edges.add(key);\n      lines.push(`  Rel(${edge.from}, ${edge.to}, \"${escapeC4(label)}\")`);\n    }\n  }\n\n  // Symbol relationships\n  if (\n    options.showPrivateFunctions ||\n    options.showExportedFunctions ||\n    options.showTypes\n  ) {\n    for (const f of files) {\n      if (!f.analysis) continue;\n      if (options.showPrivateFunctions) {\n        for (const fnName of uniqueNames(\n          f.analysis.functions.map((i) => i.name),\n        )) {\n          lines.push(\n            `  Rel(${f.id}, ${makeSymbolNodeId(f.id, \"private_fn\", fnName)}, \"defines\")`,\n          );\n        }\n      }\n      if (options.showTypes) {\n        const typeNames = uniqueNames([\n          ...f.analysis.types.map((i) => i.name),\n          ...f.analysis.exports\n            .filter((i) => i.kind === \"type\")\n            .map((i) => i.name),\n        ]);\n        for (const typeName of typeNames) {\n          lines.push(\n            `  Rel(${f.id}, ${makeSymbolNodeId(f.id, \"type\", typeName)}, \"declares\")`,\n          );\n        }\n      }\n    }\n  }\n\n  // NPM import relationships\n  if (options.showNpmImports) {\n    const npmNodes = new Map<string, string>();\n    for (const f of files) {\n      for (const pkg of [...new Set(f.analysis?.npmImports ?? [])]) {\n        if (!npmNodes.has(pkg))\n          npmNodes.set(pkg, `npm_${pkg.replace(/[^a-zA-Z0-9]/g, \"_\")}`);\n        const targetId = npmNodes.get(pkg)!;\n        const key = `${f.id}->${targetId}`;\n        if (!edges.has(key)) {\n          edges.add(key);\n          lines.push(`  Rel(${f.id}, ${targetId}, \"uses\")`);\n        }\n      }\n    }\n  }\n\n  lines.push(\"\");\n\n  lines.push(\"\");\n\n  lines.push(\"\");\n\n  // Per-element styling\n  for (const { id, color } of [...fileStyles, ...symbolStyles]) {\n    const c = NODE_COLORS[color];\n    lines.push(\n      `  UpdateElementStyle(${id}, $bgColor=\"${c.bg}\", $fontColor=\"${c.font}\", $borderColor=\"${c.border}\")`,\n    );\n  }\n\n  // Per-boundary styling\n  for (const id of pkgBoundaryIds) {\n    lines.push(\n      `  UpdateBoundaryStyle(${id}, $bgColor=\"#0f172a\", $fontColor=\"#38bdf8\", $borderColor=\"#0284c7\")`,\n    );\n  }\n  for (const id of dirBoundaryIds) {\n    lines.push(\n      `  UpdateBoundaryStyle(${id}, $bgColor=\"#1e293b\", $fontColor=\"#a78bfa\", $borderColor=\"#7c3aed\")`,\n    );\n  }\n\n  // Layout\n  lines.push(`  UpdateLayoutConfig($c4ShapeInRow=\"4\", $c4BoundaryInRow=\"2\")`);\n\n  return lines.join(\"\\n\");\n}\n\nexport function buildNodeTooltips(\n  files: FileInfo[],\n  options: GraphDisplayOptions,\n  npmMetadata?: Record<string, any>,\n): Record<string, MermaidTooltipData> {\n  const tooltips: Record<string, MermaidTooltipData> = {};\n\n  for (const file of files) {\n    const exportNames =\n      file.analysis?.exports.map((item) => item.name).filter(Boolean) ?? [];\n    const functionNames =\n      file.analysis?.functions.map((item) => item.name).filter(Boolean) ?? [];\n    const typeNames = [\n      ...(file.analysis?.types.map((item) => item.name).filter(Boolean) ?? []),\n      ...(file.analysis?.exports\n        .filter((item) => item.kind === \"type\")\n        .map((item) => item.name)\n        .filter(Boolean) ?? []),\n    ];\n\n    tooltips[file.id] = {\n      title: file.path,\n      description: file.description,\n      exports: exportNames.slice(0, 8),\n      functions: functionNames.slice(\n        0,\n        options.showPrivateFunctions || options.showExportedFunctions ? 8 : 5,\n      ),\n      types: [...new Set(typeNames)].slice(0, options.showTypes ? 8 : 5),\n    };\n\n    if (options.showPrivateFunctions) {\n      const privateFunctionNames = uniqueNames([\n        ...(file.analysis?.functions.map((item) => item.name) ?? []),\n      ]);\n\n      for (const fnName of privateFunctionNames) {\n        tooltips[makeSymbolNodeId(file.id, \"private_fn\", fnName)] = {\n          title: fnName,\n          description: `Private function from ${file.path}`,\n        };\n      }\n    }\n\n    if (options.showExportedFunctions) {\n      const exportedFunctionNames = uniqueNames([\n        ...(file.analysis?.exports\n          .filter((item) => item.kind === \"function\" || item.kind === \"class\")\n          .map((item) => item.name) ?? []),\n      ]);\n\n      for (const fnName of exportedFunctionNames) {\n        tooltips[makeSymbolNodeId(file.id, \"exported_fn\", fnName)] = {\n          title: fnName,\n          description: `Exported function from ${file.path}`,\n        };\n      }\n    }\n\n    if (options.showTypes) {\n      const uniqueTypes = uniqueNames([\n        ...(file.analysis?.types.map((item) => item.name) ?? []),\n        ...(file.analysis?.exports\n          .filter((item) => item.kind === \"type\")\n          .map((item) => item.name) ?? []),\n      ]);\n\n      for (const typeName of uniqueTypes) {\n        tooltips[makeSymbolNodeId(file.id, \"type\", typeName)] = {\n          title: typeName,\n          description: `Type from ${file.path}`,\n        };\n      }\n    }\n  }\n\n  if (options.showNpmImports) {\n    const packages = new Set<string>();\n    for (const file of files) {\n      for (const pkg of file.analysis?.npmImports ?? []) {\n        packages.add(pkg);\n      }\n    }\n\n    for (const pkg of packages) {\n      const nodeId = `npm_${pkg.replace(/[^a-zA-Z0-9]/g, \"_\")}`;\n      let description = \"npm package dependency\";\n\n      if (npmMetadata && npmMetadata[pkg]) {\n        const meta = npmMetadata[pkg];\n        if (!meta._loading && !meta._error && meta.name) {\n          description = `**${meta.name}**\\n\\n${meta.description || \"\"}\\n`;\n          const latest = meta.version ?? meta[\"dist-tags\"]?.latest;\n          if (latest) description += `\\n**Latest:** \\`${latest}\\``;\n          if (meta.author?.name)\n            description += `\\n**Author:** ${meta.author.name}`;\n          if (meta.license) description += `\\n**License:** ${meta.license}`;\n          if (meta.lastUpdated)\n            description += `\\n**Last updated:** ${meta.lastUpdated}`;\n        } else if (meta._loading) {\n          description = \"Loading package metadata...\";\n        }\n      }\n\n      tooltips[nodeId] = {\n        title: pkg,\n        description,\n        href: `https://npmgraph.js.org/?q=${pkg}`,\n      };\n    }\n  }\n\n  return tooltips;\n}\n\nexport function getGraphHierarchy(\n  files: FileInfo[],\n  options: GraphDisplayOptions,\n): Record<string, string[]> {\n  const hierarchy: Record<string, string[]> = {};\n\n  const pkgs = new Map<string, FileInfo[]>();\n  for (const f of files) {\n    if (!pkgs.has(f.pkg)) pkgs.set(f.pkg, []);\n    pkgs.get(f.pkg)!.push(f);\n  }\n\n  for (const [pkg, pkgFiles] of pkgs) {\n    const pkgId = `pkg_${pkg.replace(/[^a-zA-Z0-9_]/g, \"_\")}`;\n    if (!hierarchy[pkgId]) hierarchy[pkgId] = [];\n\n    const subDirs = new Map<string, FileInfo[]>();\n    for (const f of pkgFiles) {\n      const relPath =\n        pkg === \"root\"\n          ? f.name\n          : f.path.startsWith(`${pkg}/`)\n            ? f.path.slice(pkg.length + 1)\n            : f.name;\n      const parts = relPath.split(\"/\");\n      if (parts.length > 1) {\n        const subDir = parts[0];\n        if (!subDirs.has(subDir)) subDirs.set(subDir, []);\n        subDirs.get(subDir)!.push(f);\n      } else {\n        hierarchy[pkgId].push(f.id);\n      }\n    }\n\n    for (const [subDir, subFiles] of subDirs) {\n      const subId = `${pkgId}_${subDir.replace(/[^a-zA-Z0-9_]/g, \"_\")}`;\n      hierarchy[pkgId].push(subId);\n      if (!hierarchy[subId]) hierarchy[subId] = [];\n      for (const f of subFiles) {\n        hierarchy[subId].push(f.id);\n      }\n    }\n  }\n\n  // Symbol nodes\n  if (\n    options.showPrivateFunctions ||\n    options.showExportedFunctions ||\n    options.showTypes\n  ) {\n    for (const f of files) {\n      if (!f.analysis) continue;\n      if (!hierarchy[f.id]) hierarchy[f.id] = [];\n      if (options.showPrivateFunctions) {\n        for (const fnName of uniqueNames(\n          f.analysis.functions.map((i) => i.name),\n        )) {\n          hierarchy[f.id].push(makeSymbolNodeId(f.id, \"private_fn\", fnName));\n        }\n      }\n      if (options.showExportedFunctions) {\n        for (const fnName of uniqueNames(\n          f.analysis.exports\n            .filter((i) => i.kind === \"function\" || i.kind === \"class\")\n            .map((i) => i.name),\n        )) {\n          hierarchy[f.id].push(makeSymbolNodeId(f.id, \"exported_fn\", fnName));\n        }\n      }\n      if (options.showTypes) {\n        const typeNames = uniqueNames([\n          ...f.analysis.types.map((i) => i.name),\n          ...f.analysis.exports\n            .filter((i) => i.kind === \"type\")\n            .map((i) => i.name),\n        ]);\n        for (const typeName of typeNames) {\n          hierarchy[f.id].push(makeSymbolNodeId(f.id, \"type\", typeName));\n        }\n      }\n    }\n  }\n  return hierarchy;\n}\n","/*!\n\nJSZip v3.10.1 - A JavaScript class for generating and reading zip files\n<http://stuartk.com/jszip>\n\n(c) 2009-2016 Stuart Knightley <stuart [at] stuartk.com>\nDual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown.\n\nJSZip uses the library pako released under the MIT license :\nhttps://github.com/nodeca/pako/blob/main/LICENSE\n*/\n\n!function(e){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=e();else if(\"function\"==typeof define&&define.amd)define([],e);else{(\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this).JSZip=e()}}(function(){return function s(a,o,h){function u(r,e){if(!o[r]){if(!a[r]){var t=\"function\"==typeof require&&require;if(!e&&t)return t(r,!0);if(l)return l(r,!0);var n=new Error(\"Cannot find module '\"+r+\"'\");throw n.code=\"MODULE_NOT_FOUND\",n}var i=o[r]={exports:{}};a[r][0].call(i.exports,function(e){var t=a[r][1][e];return u(t||e)},i,i.exports,s,a,o,h)}return o[r].exports}for(var l=\"function\"==typeof require&&require,e=0;e<h.length;e++)u(h[e]);return u}({1:[function(e,t,r){\"use strict\";var d=e(\"./utils\"),c=e(\"./support\"),p=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";r.encode=function(e){for(var t,r,n,i,s,a,o,h=[],u=0,l=e.length,f=l,c=\"string\"!==d.getTypeOf(e);u<e.length;)f=l-u,n=c?(t=e[u++],r=u<l?e[u++]:0,u<l?e[u++]:0):(t=e.charCodeAt(u++),r=u<l?e.charCodeAt(u++):0,u<l?e.charCodeAt(u++):0),i=t>>2,s=(3&t)<<4|r>>4,a=1<f?(15&r)<<2|n>>6:64,o=2<f?63&n:64,h.push(p.charAt(i)+p.charAt(s)+p.charAt(a)+p.charAt(o));return h.join(\"\")},r.decode=function(e){var t,r,n,i,s,a,o=0,h=0,u=\"data:\";if(e.substr(0,u.length)===u)throw new Error(\"Invalid base64 input, it looks like a data url.\");var l,f=3*(e=e.replace(/[^A-Za-z0-9+/=]/g,\"\")).length/4;if(e.charAt(e.length-1)===p.charAt(64)&&f--,e.charAt(e.length-2)===p.charAt(64)&&f--,f%1!=0)throw new Error(\"Invalid base64 input, bad content length.\");for(l=c.uint8array?new Uint8Array(0|f):new Array(0|f);o<e.length;)t=p.indexOf(e.charAt(o++))<<2|(i=p.indexOf(e.charAt(o++)))>>4,r=(15&i)<<4|(s=p.indexOf(e.charAt(o++)))>>2,n=(3&s)<<6|(a=p.indexOf(e.charAt(o++))),l[h++]=t,64!==s&&(l[h++]=r),64!==a&&(l[h++]=n);return l}},{\"./support\":30,\"./utils\":32}],2:[function(e,t,r){\"use strict\";var n=e(\"./external\"),i=e(\"./stream/DataWorker\"),s=e(\"./stream/Crc32Probe\"),a=e(\"./stream/DataLengthProbe\");function o(e,t,r,n,i){this.compressedSize=e,this.uncompressedSize=t,this.crc32=r,this.compression=n,this.compressedContent=i}o.prototype={getContentWorker:function(){var e=new i(n.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new a(\"data_length\")),t=this;return e.on(\"end\",function(){if(this.streamInfo.data_length!==t.uncompressedSize)throw new Error(\"Bug : uncompressed data size mismatch\")}),e},getCompressedWorker:function(){return new i(n.Promise.resolve(this.compressedContent)).withStreamInfo(\"compressedSize\",this.compressedSize).withStreamInfo(\"uncompressedSize\",this.uncompressedSize).withStreamInfo(\"crc32\",this.crc32).withStreamInfo(\"compression\",this.compression)}},o.createWorkerFrom=function(e,t,r){return e.pipe(new s).pipe(new a(\"uncompressedSize\")).pipe(t.compressWorker(r)).pipe(new a(\"compressedSize\")).withStreamInfo(\"compression\",t)},t.exports=o},{\"./external\":6,\"./stream/Crc32Probe\":25,\"./stream/DataLengthProbe\":26,\"./stream/DataWorker\":27}],3:[function(e,t,r){\"use strict\";var n=e(\"./stream/GenericWorker\");r.STORE={magic:\"\\0\\0\",compressWorker:function(){return new n(\"STORE compression\")},uncompressWorker:function(){return new n(\"STORE decompression\")}},r.DEFLATE=e(\"./flate\")},{\"./flate\":7,\"./stream/GenericWorker\":28}],4:[function(e,t,r){\"use strict\";var n=e(\"./utils\");var o=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t}();t.exports=function(e,t){return void 0!==e&&e.length?\"string\"!==n.getTypeOf(e)?function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a<s;a++)e=e>>>8^i[255&(e^t[a])];return-1^e}(0|t,e,e.length,0):function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a<s;a++)e=e>>>8^i[255&(e^t.charCodeAt(a))];return-1^e}(0|t,e,e.length,0):0}},{\"./utils\":32}],5:[function(e,t,r){\"use strict\";r.base64=!1,r.binary=!1,r.dir=!1,r.createFolders=!0,r.date=null,r.compression=null,r.compressionOptions=null,r.comment=null,r.unixPermissions=null,r.dosPermissions=null},{}],6:[function(e,t,r){\"use strict\";var n=null;n=\"undefined\"!=typeof Promise?Promise:e(\"lie\"),t.exports={Promise:n}},{lie:37}],7:[function(e,t,r){\"use strict\";var n=\"undefined\"!=typeof Uint8Array&&\"undefined\"!=typeof Uint16Array&&\"undefined\"!=typeof Uint32Array,i=e(\"pako\"),s=e(\"./utils\"),a=e(\"./stream/GenericWorker\"),o=n?\"uint8array\":\"array\";function h(e,t){a.call(this,\"FlateWorker/\"+e),this._pako=null,this._pakoAction=e,this._pakoOptions=t,this.meta={}}r.magic=\"\\b\\0\",s.inherits(h,a),h.prototype.processChunk=function(e){this.meta=e.meta,null===this._pako&&this._createPako(),this._pako.push(s.transformTo(o,e.data),!1)},h.prototype.flush=function(){a.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},h.prototype.cleanUp=function(){a.prototype.cleanUp.call(this),this._pako=null},h.prototype._createPako=function(){this._pako=new i[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var t=this;this._pako.onData=function(e){t.push({data:e,meta:t.meta})}},r.compressWorker=function(e){return new h(\"Deflate\",e)},r.uncompressWorker=function(){return new h(\"Inflate\",{})}},{\"./stream/GenericWorker\":28,\"./utils\":32,pako:38}],8:[function(e,t,r){\"use strict\";function A(e,t){var r,n=\"\";for(r=0;r<t;r++)n+=String.fromCharCode(255&e),e>>>=8;return n}function n(e,t,r,n,i,s){var a,o,h=e.file,u=e.compression,l=s!==O.utf8encode,f=I.transformTo(\"string\",s(h.name)),c=I.transformTo(\"string\",O.utf8encode(h.name)),d=h.comment,p=I.transformTo(\"string\",s(d)),m=I.transformTo(\"string\",O.utf8encode(d)),_=c.length!==h.name.length,g=m.length!==d.length,b=\"\",v=\"\",y=\"\",w=h.dir,k=h.date,x={crc32:0,compressedSize:0,uncompressedSize:0};t&&!r||(x.crc32=e.crc32,x.compressedSize=e.compressedSize,x.uncompressedSize=e.uncompressedSize);var S=0;t&&(S|=8),l||!_&&!g||(S|=2048);var z=0,C=0;w&&(z|=16),\"UNIX\"===i?(C=798,z|=function(e,t){var r=e;return e||(r=t?16893:33204),(65535&r)<<16}(h.unixPermissions,w)):(C=20,z|=function(e){return 63&(e||0)}(h.dosPermissions)),a=k.getUTCHours(),a<<=6,a|=k.getUTCMinutes(),a<<=5,a|=k.getUTCSeconds()/2,o=k.getUTCFullYear()-1980,o<<=4,o|=k.getUTCMonth()+1,o<<=5,o|=k.getUTCDate(),_&&(v=A(1,1)+A(B(f),4)+c,b+=\"up\"+A(v.length,2)+v),g&&(y=A(1,1)+A(B(p),4)+m,b+=\"uc\"+A(y.length,2)+y);var E=\"\";return E+=\"\\n\\0\",E+=A(S,2),E+=u.magic,E+=A(a,2),E+=A(o,2),E+=A(x.crc32,4),E+=A(x.compressedSize,4),E+=A(x.uncompressedSize,4),E+=A(f.length,2),E+=A(b.length,2),{fileRecord:R.LOCAL_FILE_HEADER+E+f+b,dirRecord:R.CENTRAL_FILE_HEADER+A(C,2)+E+A(p.length,2)+\"\\0\\0\\0\\0\"+A(z,4)+A(n,4)+f+b+p}}var I=e(\"../utils\"),i=e(\"../stream/GenericWorker\"),O=e(\"../utf8\"),B=e(\"../crc32\"),R=e(\"../signature\");function s(e,t,r,n){i.call(this,\"ZipFileWorker\"),this.bytesWritten=0,this.zipComment=t,this.zipPlatform=r,this.encodeFileName=n,this.streamFiles=e,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}I.inherits(s,i),s.prototype.push=function(e){var t=e.meta.percent||0,r=this.entriesCount,n=this._sources.length;this.accumulate?this.contentBuffer.push(e):(this.bytesWritten+=e.data.length,i.prototype.push.call(this,{data:e.data,meta:{currentFile:this.currentFile,percent:r?(t+100*(r-n-1))/r:100}}))},s.prototype.openedSource=function(e){this.currentSourceOffset=this.bytesWritten,this.currentFile=e.file.name;var t=this.streamFiles&&!e.file.dir;if(t){var r=n(e,t,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:r.fileRecord,meta:{percent:0}})}else this.accumulate=!0},s.prototype.closedSource=function(e){this.accumulate=!1;var t=this.streamFiles&&!e.file.dir,r=n(e,t,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(r.dirRecord),t)this.push({data:function(e){return R.DATA_DESCRIPTOR+A(e.crc32,4)+A(e.compressedSize,4)+A(e.uncompressedSize,4)}(e),meta:{percent:100}});else for(this.push({data:r.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},s.prototype.flush=function(){for(var e=this.bytesWritten,t=0;t<this.dirRecords.length;t++)this.push({data:this.dirRecords[t],meta:{percent:100}});var r=this.bytesWritten-e,n=function(e,t,r,n,i){var s=I.transformTo(\"string\",i(n));return R.CENTRAL_DIRECTORY_END+\"\\0\\0\\0\\0\"+A(e,2)+A(e,2)+A(t,4)+A(r,4)+A(s.length,2)+s}(this.dirRecords.length,r,e,this.zipComment,this.encodeFileName);this.push({data:n,meta:{percent:100}})},s.prototype.prepareNextSource=function(){this.previous=this._sources.shift(),this.openedSource(this.previous.streamInfo),this.isPaused?this.previous.pause():this.previous.resume()},s.prototype.registerPrevious=function(e){this._sources.push(e);var t=this;return e.on(\"data\",function(e){t.processChunk(e)}),e.on(\"end\",function(){t.closedSource(t.previous.streamInfo),t._sources.length?t.prepareNextSource():t.end()}),e.on(\"error\",function(e){t.error(e)}),this},s.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(!this.previous&&this._sources.length?(this.prepareNextSource(),!0):this.previous||this._sources.length||this.generatedError?void 0:(this.end(),!0))},s.prototype.error=function(e){var t=this._sources;if(!i.prototype.error.call(this,e))return!1;for(var r=0;r<t.length;r++)try{t[r].error(e)}catch(e){}return!0},s.prototype.lock=function(){i.prototype.lock.call(this);for(var e=this._sources,t=0;t<e.length;t++)e[t].lock()},t.exports=s},{\"../crc32\":4,\"../signature\":23,\"../stream/GenericWorker\":28,\"../utf8\":31,\"../utils\":32}],9:[function(e,t,r){\"use strict\";var u=e(\"../compressions\"),n=e(\"./ZipFileWorker\");r.generateWorker=function(e,a,t){var o=new n(a.streamFiles,t,a.platform,a.encodeFileName),h=0;try{e.forEach(function(e,t){h++;var r=function(e,t){var r=e||t,n=u[r];if(!n)throw new Error(r+\" is not a valid compression method !\");return n}(t.options.compression,a.compression),n=t.options.compressionOptions||a.compressionOptions||{},i=t.dir,s=t.date;t._compressWorker(r,n).withStreamInfo(\"file\",{name:e,dir:i,date:s,comment:t.comment||\"\",unixPermissions:t.unixPermissions,dosPermissions:t.dosPermissions}).pipe(o)}),o.entriesCount=h}catch(e){o.error(e)}return o}},{\"../compressions\":3,\"./ZipFileWorker\":8}],10:[function(e,t,r){\"use strict\";function n(){if(!(this instanceof n))return new n;if(arguments.length)throw new Error(\"The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.\");this.files=Object.create(null),this.comment=null,this.root=\"\",this.clone=function(){var e=new n;for(var t in this)\"function\"!=typeof this[t]&&(e[t]=this[t]);return e}}(n.prototype=e(\"./object\")).loadAsync=e(\"./load\"),n.support=e(\"./support\"),n.defaults=e(\"./defaults\"),n.version=\"3.10.1\",n.loadAsync=function(e,t){return(new n).loadAsync(e,t)},n.external=e(\"./external\"),t.exports=n},{\"./defaults\":5,\"./external\":6,\"./load\":11,\"./object\":15,\"./support\":30}],11:[function(e,t,r){\"use strict\";var u=e(\"./utils\"),i=e(\"./external\"),n=e(\"./utf8\"),s=e(\"./zipEntries\"),a=e(\"./stream/Crc32Probe\"),l=e(\"./nodejsUtils\");function f(n){return new i.Promise(function(e,t){var r=n.decompressed.getContentWorker().pipe(new a);r.on(\"error\",function(e){t(e)}).on(\"end\",function(){r.streamInfo.crc32!==n.decompressed.crc32?t(new Error(\"Corrupted zip : CRC32 mismatch\")):e()}).resume()})}t.exports=function(e,o){var h=this;return o=u.extend(o||{},{base64:!1,checkCRC32:!1,optimizedBinaryString:!1,createFolders:!1,decodeFileName:n.utf8decode}),l.isNode&&l.isStream(e)?i.Promise.reject(new Error(\"JSZip can't accept a stream when loading a zip file.\")):u.prepareContent(\"the loaded zip file\",e,!0,o.optimizedBinaryString,o.base64).then(function(e){var t=new s(o);return t.load(e),t}).then(function(e){var t=[i.Promise.resolve(e)],r=e.files;if(o.checkCRC32)for(var n=0;n<r.length;n++)t.push(f(r[n]));return i.Promise.all(t)}).then(function(e){for(var t=e.shift(),r=t.files,n=0;n<r.length;n++){var i=r[n],s=i.fileNameStr,a=u.resolve(i.fileNameStr);h.file(a,i.decompressed,{binary:!0,optimizedBinaryString:!0,date:i.date,dir:i.dir,comment:i.fileCommentStr.length?i.fileCommentStr:null,unixPermissions:i.unixPermissions,dosPermissions:i.dosPermissions,createFolders:o.createFolders}),i.dir||(h.file(a).unsafeOriginalName=s)}return t.zipComment.length&&(h.comment=t.zipComment),h})}},{\"./external\":6,\"./nodejsUtils\":14,\"./stream/Crc32Probe\":25,\"./utf8\":31,\"./utils\":32,\"./zipEntries\":33}],12:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"../stream/GenericWorker\");function s(e,t){i.call(this,\"Nodejs stream input adapter for \"+e),this._upstreamEnded=!1,this._bindStream(t)}n.inherits(s,i),s.prototype._bindStream=function(e){var t=this;(this._stream=e).pause(),e.on(\"data\",function(e){t.push({data:e,meta:{percent:0}})}).on(\"error\",function(e){t.isPaused?this.generatedError=e:t.error(e)}).on(\"end\",function(){t.isPaused?t._upstreamEnded=!0:t.end()})},s.prototype.pause=function(){return!!i.prototype.pause.call(this)&&(this._stream.pause(),!0)},s.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(this._upstreamEnded?this.end():this._stream.resume(),!0)},t.exports=s},{\"../stream/GenericWorker\":28,\"../utils\":32}],13:[function(e,t,r){\"use strict\";var i=e(\"readable-stream\").Readable;function n(e,t,r){i.call(this,t),this._helper=e;var n=this;e.on(\"data\",function(e,t){n.push(e)||n._helper.pause(),r&&r(t)}).on(\"error\",function(e){n.emit(\"error\",e)}).on(\"end\",function(){n.push(null)})}e(\"../utils\").inherits(n,i),n.prototype._read=function(){this._helper.resume()},t.exports=n},{\"../utils\":32,\"readable-stream\":16}],14:[function(e,t,r){\"use strict\";t.exports={isNode:\"undefined\"!=typeof Buffer,newBufferFrom:function(e,t){if(Buffer.from&&Buffer.from!==Uint8Array.from)return Buffer.from(e,t);if(\"number\"==typeof e)throw new Error('The \"data\" argument must not be a number');return new Buffer(e,t)},allocBuffer:function(e){if(Buffer.alloc)return Buffer.alloc(e);var t=new Buffer(e);return t.fill(0),t},isBuffer:function(e){return Buffer.isBuffer(e)},isStream:function(e){return e&&\"function\"==typeof e.on&&\"function\"==typeof e.pause&&\"function\"==typeof e.resume}}},{}],15:[function(e,t,r){\"use strict\";function s(e,t,r){var n,i=u.getTypeOf(t),s=u.extend(r||{},f);s.date=s.date||new Date,null!==s.compression&&(s.compression=s.compression.toUpperCase()),\"string\"==typeof s.unixPermissions&&(s.unixPermissions=parseInt(s.unixPermissions,8)),s.unixPermissions&&16384&s.unixPermissions&&(s.dir=!0),s.dosPermissions&&16&s.dosPermissions&&(s.dir=!0),s.dir&&(e=g(e)),s.createFolders&&(n=_(e))&&b.call(this,n,!0);var a=\"string\"===i&&!1===s.binary&&!1===s.base64;r&&void 0!==r.binary||(s.binary=!a),(t instanceof c&&0===t.uncompressedSize||s.dir||!t||0===t.length)&&(s.base64=!1,s.binary=!0,t=\"\",s.compression=\"STORE\",i=\"string\");var o=null;o=t instanceof c||t instanceof l?t:p.isNode&&p.isStream(t)?new m(e,t):u.prepareContent(e,t,s.binary,s.optimizedBinaryString,s.base64);var h=new d(e,o,s);this.files[e]=h}var i=e(\"./utf8\"),u=e(\"./utils\"),l=e(\"./stream/GenericWorker\"),a=e(\"./stream/StreamHelper\"),f=e(\"./defaults\"),c=e(\"./compressedObject\"),d=e(\"./zipObject\"),o=e(\"./generate\"),p=e(\"./nodejsUtils\"),m=e(\"./nodejs/NodejsStreamInputAdapter\"),_=function(e){\"/\"===e.slice(-1)&&(e=e.substring(0,e.length-1));var t=e.lastIndexOf(\"/\");return 0<t?e.substring(0,t):\"\"},g=function(e){return\"/\"!==e.slice(-1)&&(e+=\"/\"),e},b=function(e,t){return t=void 0!==t?t:f.createFolders,e=g(e),this.files[e]||s.call(this,e,null,{dir:!0,createFolders:t}),this.files[e]};function h(e){return\"[object RegExp]\"===Object.prototype.toString.call(e)}var n={load:function(){throw new Error(\"This method has been removed in JSZip 3.0, please check the upgrade guide.\")},forEach:function(e){var t,r,n;for(t in this.files)n=this.files[t],(r=t.slice(this.root.length,t.length))&&t.slice(0,this.root.length)===this.root&&e(r,n)},filter:function(r){var n=[];return this.forEach(function(e,t){r(e,t)&&n.push(t)}),n},file:function(e,t,r){if(1!==arguments.length)return e=this.root+e,s.call(this,e,t,r),this;if(h(e)){var n=e;return this.filter(function(e,t){return!t.dir&&n.test(e)})}var i=this.files[this.root+e];return i&&!i.dir?i:null},folder:function(r){if(!r)return this;if(h(r))return this.filter(function(e,t){return t.dir&&r.test(e)});var e=this.root+r,t=b.call(this,e),n=this.clone();return n.root=t.name,n},remove:function(r){r=this.root+r;var e=this.files[r];if(e||(\"/\"!==r.slice(-1)&&(r+=\"/\"),e=this.files[r]),e&&!e.dir)delete this.files[r];else for(var t=this.filter(function(e,t){return t.name.slice(0,r.length)===r}),n=0;n<t.length;n++)delete this.files[t[n].name];return this},generate:function(){throw new Error(\"This method has been removed in JSZip 3.0, please check the upgrade guide.\")},generateInternalStream:function(e){var t,r={};try{if((r=u.extend(e||{},{streamFiles:!1,compression:\"STORE\",compressionOptions:null,type:\"\",platform:\"DOS\",comment:null,mimeType:\"application/zip\",encodeFileName:i.utf8encode})).type=r.type.toLowerCase(),r.compression=r.compression.toUpperCase(),\"binarystring\"===r.type&&(r.type=\"string\"),!r.type)throw new Error(\"No output type specified.\");u.checkSupport(r.type),\"darwin\"!==r.platform&&\"freebsd\"!==r.platform&&\"linux\"!==r.platform&&\"sunos\"!==r.platform||(r.platform=\"UNIX\"),\"win32\"===r.platform&&(r.platform=\"DOS\");var n=r.comment||this.comment||\"\";t=o.generateWorker(this,r,n)}catch(e){(t=new l(\"error\")).error(e)}return new a(t,r.type||\"string\",r.mimeType)},generateAsync:function(e,t){return this.generateInternalStream(e).accumulate(t)},generateNodeStream:function(e,t){return(e=e||{}).type||(e.type=\"nodebuffer\"),this.generateInternalStream(e).toNodejsStream(t)}};t.exports=n},{\"./compressedObject\":2,\"./defaults\":5,\"./generate\":9,\"./nodejs/NodejsStreamInputAdapter\":12,\"./nodejsUtils\":14,\"./stream/GenericWorker\":28,\"./stream/StreamHelper\":29,\"./utf8\":31,\"./utils\":32,\"./zipObject\":35}],16:[function(e,t,r){\"use strict\";t.exports=e(\"stream\")},{stream:void 0}],17:[function(e,t,r){\"use strict\";var n=e(\"./DataReader\");function i(e){n.call(this,e);for(var t=0;t<this.data.length;t++)e[t]=255&e[t]}e(\"../utils\").inherits(i,n),i.prototype.byteAt=function(e){return this.data[this.zero+e]},i.prototype.lastIndexOfSignature=function(e){for(var t=e.charCodeAt(0),r=e.charCodeAt(1),n=e.charCodeAt(2),i=e.charCodeAt(3),s=this.length-4;0<=s;--s)if(this.data[s]===t&&this.data[s+1]===r&&this.data[s+2]===n&&this.data[s+3]===i)return s-this.zero;return-1},i.prototype.readAndCheckSignature=function(e){var t=e.charCodeAt(0),r=e.charCodeAt(1),n=e.charCodeAt(2),i=e.charCodeAt(3),s=this.readData(4);return t===s[0]&&r===s[1]&&n===s[2]&&i===s[3]},i.prototype.readData=function(e){if(this.checkOffset(e),0===e)return[];var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./DataReader\":18}],18:[function(e,t,r){\"use strict\";var n=e(\"../utils\");function i(e){this.data=e,this.length=e.length,this.index=0,this.zero=0}i.prototype={checkOffset:function(e){this.checkIndex(this.index+e)},checkIndex:function(e){if(this.length<this.zero+e||e<0)throw new Error(\"End of data reached (data length = \"+this.length+\", asked index = \"+e+\"). Corrupted zip ?\")},setIndex:function(e){this.checkIndex(e),this.index=e},skip:function(e){this.setIndex(this.index+e)},byteAt:function(){},readInt:function(e){var t,r=0;for(this.checkOffset(e),t=this.index+e-1;t>=this.index;t--)r=(r<<8)+this.byteAt(t);return this.index+=e,r},readString:function(e){return n.transformTo(\"string\",this.readData(e))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var e=this.readInt(4);return new Date(Date.UTC(1980+(e>>25&127),(e>>21&15)-1,e>>16&31,e>>11&31,e>>5&63,(31&e)<<1))}},t.exports=i},{\"../utils\":32}],19:[function(e,t,r){\"use strict\";var n=e(\"./Uint8ArrayReader\");function i(e){n.call(this,e)}e(\"../utils\").inherits(i,n),i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./Uint8ArrayReader\":21}],20:[function(e,t,r){\"use strict\";var n=e(\"./DataReader\");function i(e){n.call(this,e)}e(\"../utils\").inherits(i,n),i.prototype.byteAt=function(e){return this.data.charCodeAt(this.zero+e)},i.prototype.lastIndexOfSignature=function(e){return this.data.lastIndexOf(e)-this.zero},i.prototype.readAndCheckSignature=function(e){return e===this.readData(4)},i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./DataReader\":18}],21:[function(e,t,r){\"use strict\";var n=e(\"./ArrayReader\");function i(e){n.call(this,e)}e(\"../utils\").inherits(i,n),i.prototype.readData=function(e){if(this.checkOffset(e),0===e)return new Uint8Array(0);var t=this.data.subarray(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./ArrayReader\":17}],22:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"../support\"),s=e(\"./ArrayReader\"),a=e(\"./StringReader\"),o=e(\"./NodeBufferReader\"),h=e(\"./Uint8ArrayReader\");t.exports=function(e){var t=n.getTypeOf(e);return n.checkSupport(t),\"string\"!==t||i.uint8array?\"nodebuffer\"===t?new o(e):i.uint8array?new h(n.transformTo(\"uint8array\",e)):new s(n.transformTo(\"array\",e)):new a(e)}},{\"../support\":30,\"../utils\":32,\"./ArrayReader\":17,\"./NodeBufferReader\":19,\"./StringReader\":20,\"./Uint8ArrayReader\":21}],23:[function(e,t,r){\"use strict\";r.LOCAL_FILE_HEADER=\"PK\u0003\u0004\",r.CENTRAL_FILE_HEADER=\"PK\u0001\u0002\",r.CENTRAL_DIRECTORY_END=\"PK\u0005\u0006\",r.ZIP64_CENTRAL_DIRECTORY_LOCATOR=\"PK\u0006\u0007\",r.ZIP64_CENTRAL_DIRECTORY_END=\"PK\u0006\u0006\",r.DATA_DESCRIPTOR=\"PK\u0007\\b\"},{}],24:[function(e,t,r){\"use strict\";var n=e(\"./GenericWorker\"),i=e(\"../utils\");function s(e){n.call(this,\"ConvertWorker to \"+e),this.destType=e}i.inherits(s,n),s.prototype.processChunk=function(e){this.push({data:i.transformTo(this.destType,e.data),meta:e.meta})},t.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],25:[function(e,t,r){\"use strict\";var n=e(\"./GenericWorker\"),i=e(\"../crc32\");function s(){n.call(this,\"Crc32Probe\"),this.withStreamInfo(\"crc32\",0)}e(\"../utils\").inherits(s,n),s.prototype.processChunk=function(e){this.streamInfo.crc32=i(e.data,this.streamInfo.crc32||0),this.push(e)},t.exports=s},{\"../crc32\":4,\"../utils\":32,\"./GenericWorker\":28}],26:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"./GenericWorker\");function s(e){i.call(this,\"DataLengthProbe for \"+e),this.propName=e,this.withStreamInfo(e,0)}n.inherits(s,i),s.prototype.processChunk=function(e){if(e){var t=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=t+e.data.length}i.prototype.processChunk.call(this,e)},t.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],27:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"./GenericWorker\");function s(e){i.call(this,\"DataWorker\");var t=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type=\"\",this._tickScheduled=!1,e.then(function(e){t.dataIsReady=!0,t.data=e,t.max=e&&e.length||0,t.type=n.getTypeOf(e),t.isPaused||t._tickAndRepeat()},function(e){t.error(e)})}n.inherits(s,i),s.prototype.cleanUp=function(){i.prototype.cleanUp.call(this),this.data=null},s.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,n.delay(this._tickAndRepeat,[],this)),!0)},s.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(n.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},s.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var e=null,t=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case\"string\":e=this.data.substring(this.index,t);break;case\"uint8array\":e=this.data.subarray(this.index,t);break;case\"array\":case\"nodebuffer\":e=this.data.slice(this.index,t)}return this.index=t,this.push({data:e,meta:{percent:this.max?this.index/this.max*100:0}})},t.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],28:[function(e,t,r){\"use strict\";function n(e){this.name=e||\"default\",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}n.prototype={push:function(e){this.emit(\"data\",e)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit(\"end\"),this.cleanUp(),this.isFinished=!0}catch(e){this.emit(\"error\",e)}return!0},error:function(e){return!this.isFinished&&(this.isPaused?this.generatedError=e:(this.isFinished=!0,this.emit(\"error\",e),this.previous&&this.previous.error(e),this.cleanUp()),!0)},on:function(e,t){return this._listeners[e].push(t),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(e,t){if(this._listeners[e])for(var r=0;r<this._listeners[e].length;r++)this._listeners[e][r].call(this,t)},pipe:function(e){return e.registerPrevious(this)},registerPrevious:function(e){if(this.isLocked)throw new Error(\"The stream '\"+this+\"' has already been used.\");this.streamInfo=e.streamInfo,this.mergeStreamInfo(),this.previous=e;var t=this;return e.on(\"data\",function(e){t.processChunk(e)}),e.on(\"end\",function(){t.end()}),e.on(\"error\",function(e){t.error(e)}),this},pause:function(){return!this.isPaused&&!this.isFinished&&(this.isPaused=!0,this.previous&&this.previous.pause(),!0)},resume:function(){if(!this.isPaused||this.isFinished)return!1;var e=this.isPaused=!1;return this.generatedError&&(this.error(this.generatedError),e=!0),this.previous&&this.previous.resume(),!e},flush:function(){},processChunk:function(e){this.push(e)},withStreamInfo:function(e,t){return this.extraStreamInfo[e]=t,this.mergeStreamInfo(),this},mergeStreamInfo:function(){for(var e in this.extraStreamInfo)Object.prototype.hasOwnProperty.call(this.extraStreamInfo,e)&&(this.streamInfo[e]=this.extraStreamInfo[e])},lock:function(){if(this.isLocked)throw new Error(\"The stream '\"+this+\"' has already been used.\");this.isLocked=!0,this.previous&&this.previous.lock()},toString:function(){var e=\"Worker \"+this.name;return this.previous?this.previous+\" -> \"+e:e}},t.exports=n},{}],29:[function(e,t,r){\"use strict\";var h=e(\"../utils\"),i=e(\"./ConvertWorker\"),s=e(\"./GenericWorker\"),u=e(\"../base64\"),n=e(\"../support\"),a=e(\"../external\"),o=null;if(n.nodestream)try{o=e(\"../nodejs/NodejsStreamOutputAdapter\")}catch(e){}function l(e,o){return new a.Promise(function(t,r){var n=[],i=e._internalType,s=e._outputType,a=e._mimeType;e.on(\"data\",function(e,t){n.push(e),o&&o(t)}).on(\"error\",function(e){n=[],r(e)}).on(\"end\",function(){try{var e=function(e,t,r){switch(e){case\"blob\":return h.newBlob(h.transformTo(\"arraybuffer\",t),r);case\"base64\":return u.encode(t);default:return h.transformTo(e,t)}}(s,function(e,t){var r,n=0,i=null,s=0;for(r=0;r<t.length;r++)s+=t[r].length;switch(e){case\"string\":return t.join(\"\");case\"array\":return Array.prototype.concat.apply([],t);case\"uint8array\":for(i=new Uint8Array(s),r=0;r<t.length;r++)i.set(t[r],n),n+=t[r].length;return i;case\"nodebuffer\":return Buffer.concat(t);default:throw new Error(\"concat : unsupported type '\"+e+\"'\")}}(i,n),a);t(e)}catch(e){r(e)}n=[]}).resume()})}function f(e,t,r){var n=t;switch(t){case\"blob\":case\"arraybuffer\":n=\"uint8array\";break;case\"base64\":n=\"string\"}try{this._internalType=n,this._outputType=t,this._mimeType=r,h.checkSupport(n),this._worker=e.pipe(new i(n)),e.lock()}catch(e){this._worker=new s(\"error\"),this._worker.error(e)}}f.prototype={accumulate:function(e){return l(this,e)},on:function(e,t){var r=this;return\"data\"===e?this._worker.on(e,function(e){t.call(r,e.data,e.meta)}):this._worker.on(e,function(){h.delay(t,arguments,r)}),this},resume:function(){return h.delay(this._worker.resume,[],this._worker),this},pause:function(){return this._worker.pause(),this},toNodejsStream:function(e){if(h.checkSupport(\"nodestream\"),\"nodebuffer\"!==this._outputType)throw new Error(this._outputType+\" is not supported by this method\");return new o(this,{objectMode:\"nodebuffer\"!==this._outputType},e)}},t.exports=f},{\"../base64\":1,\"../external\":6,\"../nodejs/NodejsStreamOutputAdapter\":13,\"../support\":30,\"../utils\":32,\"./ConvertWorker\":24,\"./GenericWorker\":28}],30:[function(e,t,r){\"use strict\";if(r.base64=!0,r.array=!0,r.string=!0,r.arraybuffer=\"undefined\"!=typeof ArrayBuffer&&\"undefined\"!=typeof Uint8Array,r.nodebuffer=\"undefined\"!=typeof Buffer,r.uint8array=\"undefined\"!=typeof Uint8Array,\"undefined\"==typeof ArrayBuffer)r.blob=!1;else{var n=new ArrayBuffer(0);try{r.blob=0===new Blob([n],{type:\"application/zip\"}).size}catch(e){try{var i=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);i.append(n),r.blob=0===i.getBlob(\"application/zip\").size}catch(e){r.blob=!1}}}try{r.nodestream=!!e(\"readable-stream\").Readable}catch(e){r.nodestream=!1}},{\"readable-stream\":16}],31:[function(e,t,s){\"use strict\";for(var o=e(\"./utils\"),h=e(\"./support\"),r=e(\"./nodejsUtils\"),n=e(\"./stream/GenericWorker\"),u=new Array(256),i=0;i<256;i++)u[i]=252<=i?6:248<=i?5:240<=i?4:224<=i?3:192<=i?2:1;u[254]=u[254]=1;function a(){n.call(this,\"utf-8 decode\"),this.leftOver=null}function l(){n.call(this,\"utf-8 encode\")}s.utf8encode=function(e){return h.nodebuffer?r.newBufferFrom(e,\"utf-8\"):function(e){var t,r,n,i,s,a=e.length,o=0;for(i=0;i<a;i++)55296==(64512&(r=e.charCodeAt(i)))&&i+1<a&&56320==(64512&(n=e.charCodeAt(i+1)))&&(r=65536+(r-55296<<10)+(n-56320),i++),o+=r<128?1:r<2048?2:r<65536?3:4;for(t=h.uint8array?new Uint8Array(o):new Array(o),i=s=0;s<o;i++)55296==(64512&(r=e.charCodeAt(i)))&&i+1<a&&56320==(64512&(n=e.charCodeAt(i+1)))&&(r=65536+(r-55296<<10)+(n-56320),i++),r<128?t[s++]=r:(r<2048?t[s++]=192|r>>>6:(r<65536?t[s++]=224|r>>>12:(t[s++]=240|r>>>18,t[s++]=128|r>>>12&63),t[s++]=128|r>>>6&63),t[s++]=128|63&r);return t}(e)},s.utf8decode=function(e){return h.nodebuffer?o.transformTo(\"nodebuffer\",e).toString(\"utf-8\"):function(e){var t,r,n,i,s=e.length,a=new Array(2*s);for(t=r=0;t<s;)if((n=e[t++])<128)a[r++]=n;else if(4<(i=u[n]))a[r++]=65533,t+=i-1;else{for(n&=2===i?31:3===i?15:7;1<i&&t<s;)n=n<<6|63&e[t++],i--;1<i?a[r++]=65533:n<65536?a[r++]=n:(n-=65536,a[r++]=55296|n>>10&1023,a[r++]=56320|1023&n)}return a.length!==r&&(a.subarray?a=a.subarray(0,r):a.length=r),o.applyFromCharCode(a)}(e=o.transformTo(h.uint8array?\"uint8array\":\"array\",e))},o.inherits(a,n),a.prototype.processChunk=function(e){var t=o.transformTo(h.uint8array?\"uint8array\":\"array\",e.data);if(this.leftOver&&this.leftOver.length){if(h.uint8array){var r=t;(t=new Uint8Array(r.length+this.leftOver.length)).set(this.leftOver,0),t.set(r,this.leftOver.length)}else t=this.leftOver.concat(t);this.leftOver=null}var n=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0?t:0===r?t:r+u[e[r]]>t?r:t}(t),i=t;n!==t.length&&(h.uint8array?(i=t.subarray(0,n),this.leftOver=t.subarray(n,t.length)):(i=t.slice(0,n),this.leftOver=t.slice(n,t.length))),this.push({data:s.utf8decode(i),meta:e.meta})},a.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:s.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},s.Utf8DecodeWorker=a,o.inherits(l,n),l.prototype.processChunk=function(e){this.push({data:s.utf8encode(e.data),meta:e.meta})},s.Utf8EncodeWorker=l},{\"./nodejsUtils\":14,\"./stream/GenericWorker\":28,\"./support\":30,\"./utils\":32}],32:[function(e,t,a){\"use strict\";var o=e(\"./support\"),h=e(\"./base64\"),r=e(\"./nodejsUtils\"),u=e(\"./external\");function n(e){return e}function l(e,t){for(var r=0;r<e.length;++r)t[r]=255&e.charCodeAt(r);return t}e(\"setimmediate\"),a.newBlob=function(t,r){a.checkSupport(\"blob\");try{return new Blob([t],{type:r})}catch(e){try{var n=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);return n.append(t),n.getBlob(r)}catch(e){throw new Error(\"Bug : can't construct the Blob.\")}}};var i={stringifyByChunk:function(e,t,r){var n=[],i=0,s=e.length;if(s<=r)return String.fromCharCode.apply(null,e);for(;i<s;)\"array\"===t||\"nodebuffer\"===t?n.push(String.fromCharCode.apply(null,e.slice(i,Math.min(i+r,s)))):n.push(String.fromCharCode.apply(null,e.subarray(i,Math.min(i+r,s)))),i+=r;return n.join(\"\")},stringifyByChar:function(e){for(var t=\"\",r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return t},applyCanBeUsed:{uint8array:function(){try{return o.uint8array&&1===String.fromCharCode.apply(null,new Uint8Array(1)).length}catch(e){return!1}}(),nodebuffer:function(){try{return o.nodebuffer&&1===String.fromCharCode.apply(null,r.allocBuffer(1)).length}catch(e){return!1}}()}};function s(e){var t=65536,r=a.getTypeOf(e),n=!0;if(\"uint8array\"===r?n=i.applyCanBeUsed.uint8array:\"nodebuffer\"===r&&(n=i.applyCanBeUsed.nodebuffer),n)for(;1<t;)try{return i.stringifyByChunk(e,r,t)}catch(e){t=Math.floor(t/2)}return i.stringifyByChar(e)}function f(e,t){for(var r=0;r<e.length;r++)t[r]=e[r];return t}a.applyFromCharCode=s;var c={};c.string={string:n,array:function(e){return l(e,new Array(e.length))},arraybuffer:function(e){return c.string.uint8array(e).buffer},uint8array:function(e){return l(e,new Uint8Array(e.length))},nodebuffer:function(e){return l(e,r.allocBuffer(e.length))}},c.array={string:s,array:n,arraybuffer:function(e){return new Uint8Array(e).buffer},uint8array:function(e){return new Uint8Array(e)},nodebuffer:function(e){return r.newBufferFrom(e)}},c.arraybuffer={string:function(e){return s(new Uint8Array(e))},array:function(e){return f(new Uint8Array(e),new Array(e.byteLength))},arraybuffer:n,uint8array:function(e){return new Uint8Array(e)},nodebuffer:function(e){return r.newBufferFrom(new Uint8Array(e))}},c.uint8array={string:s,array:function(e){return f(e,new Array(e.length))},arraybuffer:function(e){return e.buffer},uint8array:n,nodebuffer:function(e){return r.newBufferFrom(e)}},c.nodebuffer={string:s,array:function(e){return f(e,new Array(e.length))},arraybuffer:function(e){return c.nodebuffer.uint8array(e).buffer},uint8array:function(e){return f(e,new Uint8Array(e.length))},nodebuffer:n},a.transformTo=function(e,t){if(t=t||\"\",!e)return t;a.checkSupport(e);var r=a.getTypeOf(t);return c[r][e](t)},a.resolve=function(e){for(var t=e.split(\"/\"),r=[],n=0;n<t.length;n++){var i=t[n];\".\"===i||\"\"===i&&0!==n&&n!==t.length-1||(\"..\"===i?r.pop():r.push(i))}return r.join(\"/\")},a.getTypeOf=function(e){return\"string\"==typeof e?\"string\":\"[object Array]\"===Object.prototype.toString.call(e)?\"array\":o.nodebuffer&&r.isBuffer(e)?\"nodebuffer\":o.uint8array&&e instanceof Uint8Array?\"uint8array\":o.arraybuffer&&e instanceof ArrayBuffer?\"arraybuffer\":void 0},a.checkSupport=function(e){if(!o[e.toLowerCase()])throw new Error(e+\" is not supported by this platform\")},a.MAX_VALUE_16BITS=65535,a.MAX_VALUE_32BITS=-1,a.pretty=function(e){var t,r,n=\"\";for(r=0;r<(e||\"\").length;r++)n+=\"\\\\x\"+((t=e.charCodeAt(r))<16?\"0\":\"\")+t.toString(16).toUpperCase();return n},a.delay=function(e,t,r){setImmediate(function(){e.apply(r||null,t||[])})},a.inherits=function(e,t){function r(){}r.prototype=t.prototype,e.prototype=new r},a.extend=function(){var e,t,r={};for(e=0;e<arguments.length;e++)for(t in arguments[e])Object.prototype.hasOwnProperty.call(arguments[e],t)&&void 0===r[t]&&(r[t]=arguments[e][t]);return r},a.prepareContent=function(r,e,n,i,s){return u.Promise.resolve(e).then(function(n){return o.blob&&(n instanceof Blob||-1!==[\"[object File]\",\"[object Blob]\"].indexOf(Object.prototype.toString.call(n)))&&\"undefined\"!=typeof FileReader?new u.Promise(function(t,r){var e=new FileReader;e.onload=function(e){t(e.target.result)},e.onerror=function(e){r(e.target.error)},e.readAsArrayBuffer(n)}):n}).then(function(e){var t=a.getTypeOf(e);return t?(\"arraybuffer\"===t?e=a.transformTo(\"uint8array\",e):\"string\"===t&&(s?e=h.decode(e):n&&!0!==i&&(e=function(e){return l(e,o.uint8array?new Uint8Array(e.length):new Array(e.length))}(e))),e):u.Promise.reject(new Error(\"Can't read the data of '\"+r+\"'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?\"))})}},{\"./base64\":1,\"./external\":6,\"./nodejsUtils\":14,\"./support\":30,setimmediate:54}],33:[function(e,t,r){\"use strict\";var n=e(\"./reader/readerFor\"),i=e(\"./utils\"),s=e(\"./signature\"),a=e(\"./zipEntry\"),o=e(\"./support\");function h(e){this.files=[],this.loadOptions=e}h.prototype={checkSignature:function(e){if(!this.reader.readAndCheckSignature(e)){this.reader.index-=4;var t=this.reader.readString(4);throw new Error(\"Corrupted zip or bug: unexpected signature (\"+i.pretty(t)+\", expected \"+i.pretty(e)+\")\")}},isSignature:function(e,t){var r=this.reader.index;this.reader.setIndex(e);var n=this.reader.readString(4)===t;return this.reader.setIndex(r),n},readBlockEndOfCentral:function(){this.diskNumber=this.reader.readInt(2),this.diskWithCentralDirStart=this.reader.readInt(2),this.centralDirRecordsOnThisDisk=this.reader.readInt(2),this.centralDirRecords=this.reader.readInt(2),this.centralDirSize=this.reader.readInt(4),this.centralDirOffset=this.reader.readInt(4),this.zipCommentLength=this.reader.readInt(2);var e=this.reader.readData(this.zipCommentLength),t=o.uint8array?\"uint8array\":\"array\",r=i.transformTo(t,e);this.zipComment=this.loadOptions.decodeFileName(r)},readBlockZip64EndOfCentral:function(){this.zip64EndOfCentralSize=this.reader.readInt(8),this.reader.skip(4),this.diskNumber=this.reader.readInt(4),this.diskWithCentralDirStart=this.reader.readInt(4),this.centralDirRecordsOnThisDisk=this.reader.readInt(8),this.centralDirRecords=this.reader.readInt(8),this.centralDirSize=this.reader.readInt(8),this.centralDirOffset=this.reader.readInt(8),this.zip64ExtensibleData={};for(var e,t,r,n=this.zip64EndOfCentralSize-44;0<n;)e=this.reader.readInt(2),t=this.reader.readInt(4),r=this.reader.readData(t),this.zip64ExtensibleData[e]={id:e,length:t,value:r}},readBlockZip64EndOfCentralLocator:function(){if(this.diskWithZip64CentralDirStart=this.reader.readInt(4),this.relativeOffsetEndOfZip64CentralDir=this.reader.readInt(8),this.disksCount=this.reader.readInt(4),1<this.disksCount)throw new Error(\"Multi-volumes zip are not supported\")},readLocalFiles:function(){var e,t;for(e=0;e<this.files.length;e++)t=this.files[e],this.reader.setIndex(t.localHeaderOffset),this.checkSignature(s.LOCAL_FILE_HEADER),t.readLocalPart(this.reader),t.handleUTF8(),t.processAttributes()},readCentralDir:function(){var e;for(this.reader.setIndex(this.centralDirOffset);this.reader.readAndCheckSignature(s.CENTRAL_FILE_HEADER);)(e=new a({zip64:this.zip64},this.loadOptions)).readCentralPart(this.reader),this.files.push(e);if(this.centralDirRecords!==this.files.length&&0!==this.centralDirRecords&&0===this.files.length)throw new Error(\"Corrupted zip or bug: expected \"+this.centralDirRecords+\" records in central dir, got \"+this.files.length)},readEndOfCentral:function(){var e=this.reader.lastIndexOfSignature(s.CENTRAL_DIRECTORY_END);if(e<0)throw!this.isSignature(0,s.LOCAL_FILE_HEADER)?new Error(\"Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html\"):new Error(\"Corrupted zip: can't find end of central directory\");this.reader.setIndex(e);var t=e;if(this.checkSignature(s.CENTRAL_DIRECTORY_END),this.readBlockEndOfCentral(),this.diskNumber===i.MAX_VALUE_16BITS||this.diskWithCentralDirStart===i.MAX_VALUE_16BITS||this.centralDirRecordsOnThisDisk===i.MAX_VALUE_16BITS||this.centralDirRecords===i.MAX_VALUE_16BITS||this.centralDirSize===i.MAX_VALUE_32BITS||this.centralDirOffset===i.MAX_VALUE_32BITS){if(this.zip64=!0,(e=this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR))<0)throw new Error(\"Corrupted zip: can't find the ZIP64 end of central directory locator\");if(this.reader.setIndex(e),this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR),this.readBlockZip64EndOfCentralLocator(),!this.isSignature(this.relativeOffsetEndOfZip64CentralDir,s.ZIP64_CENTRAL_DIRECTORY_END)&&(this.relativeOffsetEndOfZip64CentralDir=this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_END),this.relativeOffsetEndOfZip64CentralDir<0))throw new Error(\"Corrupted zip: can't find the ZIP64 end of central directory\");this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir),this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_END),this.readBlockZip64EndOfCentral()}var r=this.centralDirOffset+this.centralDirSize;this.zip64&&(r+=20,r+=12+this.zip64EndOfCentralSize);var n=t-r;if(0<n)this.isSignature(t,s.CENTRAL_FILE_HEADER)||(this.reader.zero=n);else if(n<0)throw new Error(\"Corrupted zip: missing \"+Math.abs(n)+\" bytes.\")},prepareReader:function(e){this.reader=n(e)},load:function(e){this.prepareReader(e),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}},t.exports=h},{\"./reader/readerFor\":22,\"./signature\":23,\"./support\":30,\"./utils\":32,\"./zipEntry\":34}],34:[function(e,t,r){\"use strict\";var n=e(\"./reader/readerFor\"),s=e(\"./utils\"),i=e(\"./compressedObject\"),a=e(\"./crc32\"),o=e(\"./utf8\"),h=e(\"./compressions\"),u=e(\"./support\");function l(e,t){this.options=e,this.loadOptions=t}l.prototype={isEncrypted:function(){return 1==(1&this.bitFlag)},useUTF8:function(){return 2048==(2048&this.bitFlag)},readLocalPart:function(e){var t,r;if(e.skip(22),this.fileNameLength=e.readInt(2),r=e.readInt(2),this.fileName=e.readData(this.fileNameLength),e.skip(r),-1===this.compressedSize||-1===this.uncompressedSize)throw new Error(\"Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)\");if(null===(t=function(e){for(var t in h)if(Object.prototype.hasOwnProperty.call(h,t)&&h[t].magic===e)return h[t];return null}(this.compressionMethod)))throw new Error(\"Corrupted zip : compression \"+s.pretty(this.compressionMethod)+\" unknown (inner file : \"+s.transformTo(\"string\",this.fileName)+\")\");this.decompressed=new i(this.compressedSize,this.uncompressedSize,this.crc32,t,e.readData(this.compressedSize))},readCentralPart:function(e){this.versionMadeBy=e.readInt(2),e.skip(2),this.bitFlag=e.readInt(2),this.compressionMethod=e.readString(2),this.date=e.readDate(),this.crc32=e.readInt(4),this.compressedSize=e.readInt(4),this.uncompressedSize=e.readInt(4);var t=e.readInt(2);if(this.extraFieldsLength=e.readInt(2),this.fileCommentLength=e.readInt(2),this.diskNumberStart=e.readInt(2),this.internalFileAttributes=e.readInt(2),this.externalFileAttributes=e.readInt(4),this.localHeaderOffset=e.readInt(4),this.isEncrypted())throw new Error(\"Encrypted zip are not supported\");e.skip(t),this.readExtraFields(e),this.parseZIP64ExtraField(e),this.fileComment=e.readData(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var e=this.versionMadeBy>>8;this.dir=!!(16&this.externalFileAttributes),0==e&&(this.dosPermissions=63&this.externalFileAttributes),3==e&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||\"/\"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var e=n(this.extraFields[1].value);this.uncompressedSize===s.MAX_VALUE_32BITS&&(this.uncompressedSize=e.readInt(8)),this.compressedSize===s.MAX_VALUE_32BITS&&(this.compressedSize=e.readInt(8)),this.localHeaderOffset===s.MAX_VALUE_32BITS&&(this.localHeaderOffset=e.readInt(8)),this.diskNumberStart===s.MAX_VALUE_32BITS&&(this.diskNumberStart=e.readInt(4))}},readExtraFields:function(e){var t,r,n,i=e.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});e.index+4<i;)t=e.readInt(2),r=e.readInt(2),n=e.readData(r),this.extraFields[t]={id:t,length:r,value:n};e.setIndex(i)},handleUTF8:function(){var e=u.uint8array?\"uint8array\":\"array\";if(this.useUTF8())this.fileNameStr=o.utf8decode(this.fileName),this.fileCommentStr=o.utf8decode(this.fileComment);else{var t=this.findExtraFieldUnicodePath();if(null!==t)this.fileNameStr=t;else{var r=s.transformTo(e,this.fileName);this.fileNameStr=this.loadOptions.decodeFileName(r)}var n=this.findExtraFieldUnicodeComment();if(null!==n)this.fileCommentStr=n;else{var i=s.transformTo(e,this.fileComment);this.fileCommentStr=this.loadOptions.decodeFileName(i)}}},findExtraFieldUnicodePath:function(){var e=this.extraFields[28789];if(e){var t=n(e.value);return 1!==t.readInt(1)?null:a(this.fileName)!==t.readInt(4)?null:o.utf8decode(t.readData(e.length-5))}return null},findExtraFieldUnicodeComment:function(){var e=this.extraFields[25461];if(e){var t=n(e.value);return 1!==t.readInt(1)?null:a(this.fileComment)!==t.readInt(4)?null:o.utf8decode(t.readData(e.length-5))}return null}},t.exports=l},{\"./compressedObject\":2,\"./compressions\":3,\"./crc32\":4,\"./reader/readerFor\":22,\"./support\":30,\"./utf8\":31,\"./utils\":32}],35:[function(e,t,r){\"use strict\";function n(e,t,r){this.name=e,this.dir=r.dir,this.date=r.date,this.comment=r.comment,this.unixPermissions=r.unixPermissions,this.dosPermissions=r.dosPermissions,this._data=t,this._dataBinary=r.binary,this.options={compression:r.compression,compressionOptions:r.compressionOptions}}var s=e(\"./stream/StreamHelper\"),i=e(\"./stream/DataWorker\"),a=e(\"./utf8\"),o=e(\"./compressedObject\"),h=e(\"./stream/GenericWorker\");n.prototype={internalStream:function(e){var t=null,r=\"string\";try{if(!e)throw new Error(\"No output type specified.\");var n=\"string\"===(r=e.toLowerCase())||\"text\"===r;\"binarystring\"!==r&&\"text\"!==r||(r=\"string\"),t=this._decompressWorker();var i=!this._dataBinary;i&&!n&&(t=t.pipe(new a.Utf8EncodeWorker)),!i&&n&&(t=t.pipe(new a.Utf8DecodeWorker))}catch(e){(t=new h(\"error\")).error(e)}return new s(t,r,\"\")},async:function(e,t){return this.internalStream(e).accumulate(t)},nodeStream:function(e,t){return this.internalStream(e||\"nodebuffer\").toNodejsStream(t)},_compressWorker:function(e,t){if(this._data instanceof o&&this._data.compression.magic===e.magic)return this._data.getCompressedWorker();var r=this._decompressWorker();return this._dataBinary||(r=r.pipe(new a.Utf8EncodeWorker)),o.createWorkerFrom(r,e,t)},_decompressWorker:function(){return this._data instanceof o?this._data.getContentWorker():this._data instanceof h?this._data:new i(this._data)}};for(var u=[\"asText\",\"asBinary\",\"asNodeBuffer\",\"asUint8Array\",\"asArrayBuffer\"],l=function(){throw new Error(\"This method has been removed in JSZip 3.0, please check the upgrade guide.\")},f=0;f<u.length;f++)n.prototype[u[f]]=l;t.exports=n},{\"./compressedObject\":2,\"./stream/DataWorker\":27,\"./stream/GenericWorker\":28,\"./stream/StreamHelper\":29,\"./utf8\":31}],36:[function(e,l,t){(function(t){\"use strict\";var r,n,e=t.MutationObserver||t.WebKitMutationObserver;if(e){var i=0,s=new e(u),a=t.document.createTextNode(\"\");s.observe(a,{characterData:!0}),r=function(){a.data=i=++i%2}}else if(t.setImmediate||void 0===t.MessageChannel)r=\"document\"in t&&\"onreadystatechange\"in t.document.createElement(\"script\")?function(){var e=t.document.createElement(\"script\");e.onreadystatechange=function(){u(),e.onreadystatechange=null,e.parentNode.removeChild(e),e=null},t.document.documentElement.appendChild(e)}:function(){setTimeout(u,0)};else{var o=new t.MessageChannel;o.port1.onmessage=u,r=function(){o.port2.postMessage(0)}}var h=[];function u(){var e,t;n=!0;for(var r=h.length;r;){for(t=h,h=[],e=-1;++e<r;)t[e]();r=h.length}n=!1}l.exports=function(e){1!==h.push(e)||n||r()}}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}],37:[function(e,t,r){\"use strict\";var i=e(\"immediate\");function u(){}var l={},s=[\"REJECTED\"],a=[\"FULFILLED\"],n=[\"PENDING\"];function o(e){if(\"function\"!=typeof e)throw new TypeError(\"resolver must be a function\");this.state=n,this.queue=[],this.outcome=void 0,e!==u&&d(this,e)}function h(e,t,r){this.promise=e,\"function\"==typeof t&&(this.onFulfilled=t,this.callFulfilled=this.otherCallFulfilled),\"function\"==typeof r&&(this.onRejected=r,this.callRejected=this.otherCallRejected)}function f(t,r,n){i(function(){var e;try{e=r(n)}catch(e){return l.reject(t,e)}e===t?l.reject(t,new TypeError(\"Cannot resolve promise with itself\")):l.resolve(t,e)})}function c(e){var t=e&&e.then;if(e&&(\"object\"==typeof e||\"function\"==typeof e)&&\"function\"==typeof t)return function(){t.apply(e,arguments)}}function d(t,e){var r=!1;function n(e){r||(r=!0,l.reject(t,e))}function i(e){r||(r=!0,l.resolve(t,e))}var s=p(function(){e(i,n)});\"error\"===s.status&&n(s.value)}function p(e,t){var r={};try{r.value=e(t),r.status=\"success\"}catch(e){r.status=\"error\",r.value=e}return r}(t.exports=o).prototype.finally=function(t){if(\"function\"!=typeof t)return this;var r=this.constructor;return this.then(function(e){return r.resolve(t()).then(function(){return e})},function(e){return r.resolve(t()).then(function(){throw e})})},o.prototype.catch=function(e){return this.then(null,e)},o.prototype.then=function(e,t){if(\"function\"!=typeof e&&this.state===a||\"function\"!=typeof t&&this.state===s)return this;var r=new this.constructor(u);this.state!==n?f(r,this.state===a?e:t,this.outcome):this.queue.push(new h(r,e,t));return r},h.prototype.callFulfilled=function(e){l.resolve(this.promise,e)},h.prototype.otherCallFulfilled=function(e){f(this.promise,this.onFulfilled,e)},h.prototype.callRejected=function(e){l.reject(this.promise,e)},h.prototype.otherCallRejected=function(e){f(this.promise,this.onRejected,e)},l.resolve=function(e,t){var r=p(c,t);if(\"error\"===r.status)return l.reject(e,r.value);var n=r.value;if(n)d(e,n);else{e.state=a,e.outcome=t;for(var i=-1,s=e.queue.length;++i<s;)e.queue[i].callFulfilled(t)}return e},l.reject=function(e,t){e.state=s,e.outcome=t;for(var r=-1,n=e.queue.length;++r<n;)e.queue[r].callRejected(t);return e},o.resolve=function(e){if(e instanceof this)return e;return l.resolve(new this(u),e)},o.reject=function(e){var t=new this(u);return l.reject(t,e)},o.all=function(e){var r=this;if(\"[object Array]\"!==Object.prototype.toString.call(e))return this.reject(new TypeError(\"must be an array\"));var n=e.length,i=!1;if(!n)return this.resolve([]);var s=new Array(n),a=0,t=-1,o=new this(u);for(;++t<n;)h(e[t],t);return o;function h(e,t){r.resolve(e).then(function(e){s[t]=e,++a!==n||i||(i=!0,l.resolve(o,s))},function(e){i||(i=!0,l.reject(o,e))})}},o.race=function(e){var t=this;if(\"[object Array]\"!==Object.prototype.toString.call(e))return this.reject(new TypeError(\"must be an array\"));var r=e.length,n=!1;if(!r)return this.resolve([]);var i=-1,s=new this(u);for(;++i<r;)a=e[i],t.resolve(a).then(function(e){n||(n=!0,l.resolve(s,e))},function(e){n||(n=!0,l.reject(s,e))});var a;return s}},{immediate:36}],38:[function(e,t,r){\"use strict\";var n={};(0,e(\"./lib/utils/common\").assign)(n,e(\"./lib/deflate\"),e(\"./lib/inflate\"),e(\"./lib/zlib/constants\")),t.exports=n},{\"./lib/deflate\":39,\"./lib/inflate\":40,\"./lib/utils/common\":41,\"./lib/zlib/constants\":44}],39:[function(e,t,r){\"use strict\";var a=e(\"./zlib/deflate\"),o=e(\"./utils/common\"),h=e(\"./utils/strings\"),i=e(\"./zlib/messages\"),s=e(\"./zlib/zstream\"),u=Object.prototype.toString,l=0,f=-1,c=0,d=8;function p(e){if(!(this instanceof p))return new p(e);this.options=o.assign({level:f,method:d,chunkSize:16384,windowBits:15,memLevel:8,strategy:c,to:\"\"},e||{});var t=this.options;t.raw&&0<t.windowBits?t.windowBits=-t.windowBits:t.gzip&&0<t.windowBits&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg=\"\",this.ended=!1,this.chunks=[],this.strm=new s,this.strm.avail_out=0;var r=a.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(r!==l)throw new Error(i[r]);if(t.header&&a.deflateSetHeader(this.strm,t.header),t.dictionary){var n;if(n=\"string\"==typeof t.dictionary?h.string2buf(t.dictionary):\"[object ArrayBuffer]\"===u.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,(r=a.deflateSetDictionary(this.strm,n))!==l)throw new Error(i[r]);this._dict_set=!0}}function n(e,t){var r=new p(t);if(r.push(e,!0),r.err)throw r.msg||i[r.err];return r.result}p.prototype.push=function(e,t){var r,n,i=this.strm,s=this.options.chunkSize;if(this.ended)return!1;n=t===~~t?t:!0===t?4:0,\"string\"==typeof e?i.input=h.string2buf(e):\"[object ArrayBuffer]\"===u.call(e)?i.input=new Uint8Array(e):i.input=e,i.next_in=0,i.avail_in=i.input.length;do{if(0===i.avail_out&&(i.output=new o.Buf8(s),i.next_out=0,i.avail_out=s),1!==(r=a.deflate(i,n))&&r!==l)return this.onEnd(r),!(this.ended=!0);0!==i.avail_out&&(0!==i.avail_in||4!==n&&2!==n)||(\"string\"===this.options.to?this.onData(h.buf2binstring(o.shrinkBuf(i.output,i.next_out))):this.onData(o.shrinkBuf(i.output,i.next_out)))}while((0<i.avail_in||0===i.avail_out)&&1!==r);return 4===n?(r=a.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===l):2!==n||(this.onEnd(l),!(i.avail_out=0))},p.prototype.onData=function(e){this.chunks.push(e)},p.prototype.onEnd=function(e){e===l&&(\"string\"===this.options.to?this.result=this.chunks.join(\"\"):this.result=o.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},r.Deflate=p,r.deflate=n,r.deflateRaw=function(e,t){return(t=t||{}).raw=!0,n(e,t)},r.gzip=function(e,t){return(t=t||{}).gzip=!0,n(e,t)}},{\"./utils/common\":41,\"./utils/strings\":42,\"./zlib/deflate\":46,\"./zlib/messages\":51,\"./zlib/zstream\":53}],40:[function(e,t,r){\"use strict\";var c=e(\"./zlib/inflate\"),d=e(\"./utils/common\"),p=e(\"./utils/strings\"),m=e(\"./zlib/constants\"),n=e(\"./zlib/messages\"),i=e(\"./zlib/zstream\"),s=e(\"./zlib/gzheader\"),_=Object.prototype.toString;function a(e){if(!(this instanceof a))return new a(e);this.options=d.assign({chunkSize:16384,windowBits:0,to:\"\"},e||{});var t=this.options;t.raw&&0<=t.windowBits&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(0<=t.windowBits&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),15<t.windowBits&&t.windowBits<48&&0==(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg=\"\",this.ended=!1,this.chunks=[],this.strm=new i,this.strm.avail_out=0;var r=c.inflateInit2(this.strm,t.windowBits);if(r!==m.Z_OK)throw new Error(n[r]);this.header=new s,c.inflateGetHeader(this.strm,this.header)}function o(e,t){var r=new a(t);if(r.push(e,!0),r.err)throw r.msg||n[r.err];return r.result}a.prototype.push=function(e,t){var r,n,i,s,a,o,h=this.strm,u=this.options.chunkSize,l=this.options.dictionary,f=!1;if(this.ended)return!1;n=t===~~t?t:!0===t?m.Z_FINISH:m.Z_NO_FLUSH,\"string\"==typeof e?h.input=p.binstring2buf(e):\"[object ArrayBuffer]\"===_.call(e)?h.input=new Uint8Array(e):h.input=e,h.next_in=0,h.avail_in=h.input.length;do{if(0===h.avail_out&&(h.output=new d.Buf8(u),h.next_out=0,h.avail_out=u),(r=c.inflate(h,m.Z_NO_FLUSH))===m.Z_NEED_DICT&&l&&(o=\"string\"==typeof l?p.string2buf(l):\"[object ArrayBuffer]\"===_.call(l)?new Uint8Array(l):l,r=c.inflateSetDictionary(this.strm,o)),r===m.Z_BUF_ERROR&&!0===f&&(r=m.Z_OK,f=!1),r!==m.Z_STREAM_END&&r!==m.Z_OK)return this.onEnd(r),!(this.ended=!0);h.next_out&&(0!==h.avail_out&&r!==m.Z_STREAM_END&&(0!==h.avail_in||n!==m.Z_FINISH&&n!==m.Z_SYNC_FLUSH)||(\"string\"===this.options.to?(i=p.utf8border(h.output,h.next_out),s=h.next_out-i,a=p.buf2string(h.output,i),h.next_out=s,h.avail_out=u-s,s&&d.arraySet(h.output,h.output,i,s,0),this.onData(a)):this.onData(d.shrinkBuf(h.output,h.next_out)))),0===h.avail_in&&0===h.avail_out&&(f=!0)}while((0<h.avail_in||0===h.avail_out)&&r!==m.Z_STREAM_END);return r===m.Z_STREAM_END&&(n=m.Z_FINISH),n===m.Z_FINISH?(r=c.inflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===m.Z_OK):n!==m.Z_SYNC_FLUSH||(this.onEnd(m.Z_OK),!(h.avail_out=0))},a.prototype.onData=function(e){this.chunks.push(e)},a.prototype.onEnd=function(e){e===m.Z_OK&&(\"string\"===this.options.to?this.result=this.chunks.join(\"\"):this.result=d.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},r.Inflate=a,r.inflate=o,r.inflateRaw=function(e,t){return(t=t||{}).raw=!0,o(e,t)},r.ungzip=o},{\"./utils/common\":41,\"./utils/strings\":42,\"./zlib/constants\":44,\"./zlib/gzheader\":47,\"./zlib/inflate\":49,\"./zlib/messages\":51,\"./zlib/zstream\":53}],41:[function(e,t,r){\"use strict\";var n=\"undefined\"!=typeof Uint8Array&&\"undefined\"!=typeof Uint16Array&&\"undefined\"!=typeof Int32Array;r.assign=function(e){for(var t=Array.prototype.slice.call(arguments,1);t.length;){var r=t.shift();if(r){if(\"object\"!=typeof r)throw new TypeError(r+\"must be non-object\");for(var n in r)r.hasOwnProperty(n)&&(e[n]=r[n])}}return e},r.shrinkBuf=function(e,t){return e.length===t?e:e.subarray?e.subarray(0,t):(e.length=t,e)};var i={arraySet:function(e,t,r,n,i){if(t.subarray&&e.subarray)e.set(t.subarray(r,r+n),i);else for(var s=0;s<n;s++)e[i+s]=t[r+s]},flattenChunks:function(e){var t,r,n,i,s,a;for(t=n=0,r=e.length;t<r;t++)n+=e[t].length;for(a=new Uint8Array(n),t=i=0,r=e.length;t<r;t++)s=e[t],a.set(s,i),i+=s.length;return a}},s={arraySet:function(e,t,r,n,i){for(var s=0;s<n;s++)e[i+s]=t[r+s]},flattenChunks:function(e){return[].concat.apply([],e)}};r.setTyped=function(e){e?(r.Buf8=Uint8Array,r.Buf16=Uint16Array,r.Buf32=Int32Array,r.assign(r,i)):(r.Buf8=Array,r.Buf16=Array,r.Buf32=Array,r.assign(r,s))},r.setTyped(n)},{}],42:[function(e,t,r){\"use strict\";var h=e(\"./common\"),i=!0,s=!0;try{String.fromCharCode.apply(null,[0])}catch(e){i=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(e){s=!1}for(var u=new h.Buf8(256),n=0;n<256;n++)u[n]=252<=n?6:248<=n?5:240<=n?4:224<=n?3:192<=n?2:1;function l(e,t){if(t<65537&&(e.subarray&&s||!e.subarray&&i))return String.fromCharCode.apply(null,h.shrinkBuf(e,t));for(var r=\"\",n=0;n<t;n++)r+=String.fromCharCode(e[n]);return r}u[254]=u[254]=1,r.string2buf=function(e){var t,r,n,i,s,a=e.length,o=0;for(i=0;i<a;i++)55296==(64512&(r=e.charCodeAt(i)))&&i+1<a&&56320==(64512&(n=e.charCodeAt(i+1)))&&(r=65536+(r-55296<<10)+(n-56320),i++),o+=r<128?1:r<2048?2:r<65536?3:4;for(t=new h.Buf8(o),i=s=0;s<o;i++)55296==(64512&(r=e.charCodeAt(i)))&&i+1<a&&56320==(64512&(n=e.charCodeAt(i+1)))&&(r=65536+(r-55296<<10)+(n-56320),i++),r<128?t[s++]=r:(r<2048?t[s++]=192|r>>>6:(r<65536?t[s++]=224|r>>>12:(t[s++]=240|r>>>18,t[s++]=128|r>>>12&63),t[s++]=128|r>>>6&63),t[s++]=128|63&r);return t},r.buf2binstring=function(e){return l(e,e.length)},r.binstring2buf=function(e){for(var t=new h.Buf8(e.length),r=0,n=t.length;r<n;r++)t[r]=e.charCodeAt(r);return t},r.buf2string=function(e,t){var r,n,i,s,a=t||e.length,o=new Array(2*a);for(r=n=0;r<a;)if((i=e[r++])<128)o[n++]=i;else if(4<(s=u[i]))o[n++]=65533,r+=s-1;else{for(i&=2===s?31:3===s?15:7;1<s&&r<a;)i=i<<6|63&e[r++],s--;1<s?o[n++]=65533:i<65536?o[n++]=i:(i-=65536,o[n++]=55296|i>>10&1023,o[n++]=56320|1023&i)}return l(o,n)},r.utf8border=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0?t:0===r?t:r+u[e[r]]>t?r:t}},{\"./common\":41}],43:[function(e,t,r){\"use strict\";t.exports=function(e,t,r,n){for(var i=65535&e|0,s=e>>>16&65535|0,a=0;0!==r;){for(r-=a=2e3<r?2e3:r;s=s+(i=i+t[n++]|0)|0,--a;);i%=65521,s%=65521}return i|s<<16|0}},{}],44:[function(e,t,r){\"use strict\";t.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],45:[function(e,t,r){\"use strict\";var o=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t}();t.exports=function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a<s;a++)e=e>>>8^i[255&(e^t[a])];return-1^e}},{}],46:[function(e,t,r){\"use strict\";var h,c=e(\"../utils/common\"),u=e(\"./trees\"),d=e(\"./adler32\"),p=e(\"./crc32\"),n=e(\"./messages\"),l=0,f=4,m=0,_=-2,g=-1,b=4,i=2,v=8,y=9,s=286,a=30,o=19,w=2*s+1,k=15,x=3,S=258,z=S+x+1,C=42,E=113,A=1,I=2,O=3,B=4;function R(e,t){return e.msg=n[t],t}function T(e){return(e<<1)-(4<e?9:0)}function D(e){for(var t=e.length;0<=--t;)e[t]=0}function F(e){var t=e.state,r=t.pending;r>e.avail_out&&(r=e.avail_out),0!==r&&(c.arraySet(e.output,t.pending_buf,t.pending_out,r,e.next_out),e.next_out+=r,t.pending_out+=r,e.total_out+=r,e.avail_out-=r,t.pending-=r,0===t.pending&&(t.pending_out=0))}function N(e,t){u._tr_flush_block(e,0<=e.block_start?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,F(e.strm)}function U(e,t){e.pending_buf[e.pending++]=t}function P(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t}function L(e,t){var r,n,i=e.max_chain_length,s=e.strstart,a=e.prev_length,o=e.nice_match,h=e.strstart>e.w_size-z?e.strstart-(e.w_size-z):0,u=e.window,l=e.w_mask,f=e.prev,c=e.strstart+S,d=u[s+a-1],p=u[s+a];e.prev_length>=e.good_match&&(i>>=2),o>e.lookahead&&(o=e.lookahead);do{if(u[(r=t)+a]===p&&u[r+a-1]===d&&u[r]===u[s]&&u[++r]===u[s+1]){s+=2,r++;do{}while(u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&s<c);if(n=S-(c-s),s=c-S,a<n){if(e.match_start=t,o<=(a=n))break;d=u[s+a-1],p=u[s+a]}}}while((t=f[t&l])>h&&0!=--i);return a<=e.lookahead?a:e.lookahead}function j(e){var t,r,n,i,s,a,o,h,u,l,f=e.w_size;do{if(i=e.window_size-e.lookahead-e.strstart,e.strstart>=f+(f-z)){for(c.arraySet(e.window,e.window,f,f,0),e.match_start-=f,e.strstart-=f,e.block_start-=f,t=r=e.hash_size;n=e.head[--t],e.head[t]=f<=n?n-f:0,--r;);for(t=r=f;n=e.prev[--t],e.prev[t]=f<=n?n-f:0,--r;);i+=f}if(0===e.strm.avail_in)break;if(a=e.strm,o=e.window,h=e.strstart+e.lookahead,u=i,l=void 0,l=a.avail_in,u<l&&(l=u),r=0===l?0:(a.avail_in-=l,c.arraySet(o,a.input,a.next_in,l,h),1===a.state.wrap?a.adler=d(a.adler,o,l,h):2===a.state.wrap&&(a.adler=p(a.adler,o,l,h)),a.next_in+=l,a.total_in+=l,l),e.lookahead+=r,e.lookahead+e.insert>=x)for(s=e.strstart-e.insert,e.ins_h=e.window[s],e.ins_h=(e.ins_h<<e.hash_shift^e.window[s+1])&e.hash_mask;e.insert&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[s+x-1])&e.hash_mask,e.prev[s&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=s,s++,e.insert--,!(e.lookahead+e.insert<x)););}while(e.lookahead<z&&0!==e.strm.avail_in)}function Z(e,t){for(var r,n;;){if(e.lookahead<z){if(j(e),e.lookahead<z&&t===l)return A;if(0===e.lookahead)break}if(r=0,e.lookahead>=x&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+x-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==r&&e.strstart-r<=e.w_size-z&&(e.match_length=L(e,r)),e.match_length>=x)if(n=u._tr_tally(e,e.strstart-e.match_start,e.match_length-x),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=x){for(e.match_length--;e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+x-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart,0!=--e.match_length;);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+1])&e.hash_mask;else n=u._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(n&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=e.strstart<x-1?e.strstart:x-1,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}function W(e,t){for(var r,n,i;;){if(e.lookahead<z){if(j(e),e.lookahead<z&&t===l)return A;if(0===e.lookahead)break}if(r=0,e.lookahead>=x&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+x-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=x-1,0!==r&&e.prev_length<e.max_lazy_match&&e.strstart-r<=e.w_size-z&&(e.match_length=L(e,r),e.match_length<=5&&(1===e.strategy||e.match_length===x&&4096<e.strstart-e.match_start)&&(e.match_length=x-1)),e.prev_length>=x&&e.match_length<=e.prev_length){for(i=e.strstart+e.lookahead-x,n=u._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-x),e.lookahead-=e.prev_length-1,e.prev_length-=2;++e.strstart<=i&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+x-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!=--e.prev_length;);if(e.match_available=0,e.match_length=x-1,e.strstart++,n&&(N(e,!1),0===e.strm.avail_out))return A}else if(e.match_available){if((n=u._tr_tally(e,0,e.window[e.strstart-1]))&&N(e,!1),e.strstart++,e.lookahead--,0===e.strm.avail_out)return A}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(n=u._tr_tally(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<x-1?e.strstart:x-1,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}function M(e,t,r,n,i){this.good_length=e,this.max_lazy=t,this.nice_length=r,this.max_chain=n,this.func=i}function H(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=v,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new c.Buf16(2*w),this.dyn_dtree=new c.Buf16(2*(2*a+1)),this.bl_tree=new c.Buf16(2*(2*o+1)),D(this.dyn_ltree),D(this.dyn_dtree),D(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new c.Buf16(k+1),this.heap=new c.Buf16(2*s+1),D(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new c.Buf16(2*s+1),D(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function G(e){var t;return e&&e.state?(e.total_in=e.total_out=0,e.data_type=i,(t=e.state).pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?C:E,e.adler=2===t.wrap?0:1,t.last_flush=l,u._tr_init(t),m):R(e,_)}function K(e){var t=G(e);return t===m&&function(e){e.window_size=2*e.w_size,D(e.head),e.max_lazy_match=h[e.level].max_lazy,e.good_match=h[e.level].good_length,e.nice_match=h[e.level].nice_length,e.max_chain_length=h[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=x-1,e.match_available=0,e.ins_h=0}(e.state),t}function Y(e,t,r,n,i,s){if(!e)return _;var a=1;if(t===g&&(t=6),n<0?(a=0,n=-n):15<n&&(a=2,n-=16),i<1||y<i||r!==v||n<8||15<n||t<0||9<t||s<0||b<s)return R(e,_);8===n&&(n=9);var o=new H;return(e.state=o).strm=e,o.wrap=a,o.gzhead=null,o.w_bits=n,o.w_size=1<<o.w_bits,o.w_mask=o.w_size-1,o.hash_bits=i+7,o.hash_size=1<<o.hash_bits,o.hash_mask=o.hash_size-1,o.hash_shift=~~((o.hash_bits+x-1)/x),o.window=new c.Buf8(2*o.w_size),o.head=new c.Buf16(o.hash_size),o.prev=new c.Buf16(o.w_size),o.lit_bufsize=1<<i+6,o.pending_buf_size=4*o.lit_bufsize,o.pending_buf=new c.Buf8(o.pending_buf_size),o.d_buf=1*o.lit_bufsize,o.l_buf=3*o.lit_bufsize,o.level=t,o.strategy=s,o.method=r,K(e)}h=[new M(0,0,0,0,function(e,t){var r=65535;for(r>e.pending_buf_size-5&&(r=e.pending_buf_size-5);;){if(e.lookahead<=1){if(j(e),0===e.lookahead&&t===l)return A;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var n=e.block_start+r;if((0===e.strstart||e.strstart>=n)&&(e.lookahead=e.strstart-n,e.strstart=n,N(e,!1),0===e.strm.avail_out))return A;if(e.strstart-e.block_start>=e.w_size-z&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):(e.strstart>e.block_start&&(N(e,!1),e.strm.avail_out),A)}),new M(4,4,8,4,Z),new M(4,5,16,8,Z),new M(4,6,32,32,Z),new M(4,4,16,16,W),new M(8,16,32,32,W),new M(8,16,128,128,W),new M(8,32,128,256,W),new M(32,128,258,1024,W),new M(32,258,258,4096,W)],r.deflateInit=function(e,t){return Y(e,t,v,15,8,0)},r.deflateInit2=Y,r.deflateReset=K,r.deflateResetKeep=G,r.deflateSetHeader=function(e,t){return e&&e.state?2!==e.state.wrap?_:(e.state.gzhead=t,m):_},r.deflate=function(e,t){var r,n,i,s;if(!e||!e.state||5<t||t<0)return e?R(e,_):_;if(n=e.state,!e.output||!e.input&&0!==e.avail_in||666===n.status&&t!==f)return R(e,0===e.avail_out?-5:_);if(n.strm=e,r=n.last_flush,n.last_flush=t,n.status===C)if(2===n.wrap)e.adler=0,U(n,31),U(n,139),U(n,8),n.gzhead?(U(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),U(n,255&n.gzhead.time),U(n,n.gzhead.time>>8&255),U(n,n.gzhead.time>>16&255),U(n,n.gzhead.time>>24&255),U(n,9===n.level?2:2<=n.strategy||n.level<2?4:0),U(n,255&n.gzhead.os),n.gzhead.extra&&n.gzhead.extra.length&&(U(n,255&n.gzhead.extra.length),U(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=p(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=69):(U(n,0),U(n,0),U(n,0),U(n,0),U(n,0),U(n,9===n.level?2:2<=n.strategy||n.level<2?4:0),U(n,3),n.status=E);else{var a=v+(n.w_bits-8<<4)<<8;a|=(2<=n.strategy||n.level<2?0:n.level<6?1:6===n.level?2:3)<<6,0!==n.strstart&&(a|=32),a+=31-a%31,n.status=E,P(n,a),0!==n.strstart&&(P(n,e.adler>>>16),P(n,65535&e.adler)),e.adler=1}if(69===n.status)if(n.gzhead.extra){for(i=n.pending;n.gzindex<(65535&n.gzhead.extra.length)&&(n.pending!==n.pending_buf_size||(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending!==n.pending_buf_size));)U(n,255&n.gzhead.extra[n.gzindex]),n.gzindex++;n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=73)}else n.status=73;if(73===n.status)if(n.gzhead.name){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending===n.pending_buf_size)){s=1;break}s=n.gzindex<n.gzhead.name.length?255&n.gzhead.name.charCodeAt(n.gzindex++):0,U(n,s)}while(0!==s);n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),0===s&&(n.gzindex=0,n.status=91)}else n.status=91;if(91===n.status)if(n.gzhead.comment){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending===n.pending_buf_size)){s=1;break}s=n.gzindex<n.gzhead.comment.length?255&n.gzhead.comment.charCodeAt(n.gzindex++):0,U(n,s)}while(0!==s);n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),0===s&&(n.status=103)}else n.status=103;if(103===n.status&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&F(e),n.pending+2<=n.pending_buf_size&&(U(n,255&e.adler),U(n,e.adler>>8&255),e.adler=0,n.status=E)):n.status=E),0!==n.pending){if(F(e),0===e.avail_out)return n.last_flush=-1,m}else if(0===e.avail_in&&T(t)<=T(r)&&t!==f)return R(e,-5);if(666===n.status&&0!==e.avail_in)return R(e,-5);if(0!==e.avail_in||0!==n.lookahead||t!==l&&666!==n.status){var o=2===n.strategy?function(e,t){for(var r;;){if(0===e.lookahead&&(j(e),0===e.lookahead)){if(t===l)return A;break}if(e.match_length=0,r=u._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,r&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}(n,t):3===n.strategy?function(e,t){for(var r,n,i,s,a=e.window;;){if(e.lookahead<=S){if(j(e),e.lookahead<=S&&t===l)return A;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=x&&0<e.strstart&&(n=a[i=e.strstart-1])===a[++i]&&n===a[++i]&&n===a[++i]){s=e.strstart+S;do{}while(n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&i<s);e.match_length=S-(s-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=x?(r=u._tr_tally(e,1,e.match_length-x),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(r=u._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),r&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}(n,t):h[n.level].func(n,t);if(o!==O&&o!==B||(n.status=666),o===A||o===O)return 0===e.avail_out&&(n.last_flush=-1),m;if(o===I&&(1===t?u._tr_align(n):5!==t&&(u._tr_stored_block(n,0,0,!1),3===t&&(D(n.head),0===n.lookahead&&(n.strstart=0,n.block_start=0,n.insert=0))),F(e),0===e.avail_out))return n.last_flush=-1,m}return t!==f?m:n.wrap<=0?1:(2===n.wrap?(U(n,255&e.adler),U(n,e.adler>>8&255),U(n,e.adler>>16&255),U(n,e.adler>>24&255),U(n,255&e.total_in),U(n,e.total_in>>8&255),U(n,e.total_in>>16&255),U(n,e.total_in>>24&255)):(P(n,e.adler>>>16),P(n,65535&e.adler)),F(e),0<n.wrap&&(n.wrap=-n.wrap),0!==n.pending?m:1)},r.deflateEnd=function(e){var t;return e&&e.state?(t=e.state.status)!==C&&69!==t&&73!==t&&91!==t&&103!==t&&t!==E&&666!==t?R(e,_):(e.state=null,t===E?R(e,-3):m):_},r.deflateSetDictionary=function(e,t){var r,n,i,s,a,o,h,u,l=t.length;if(!e||!e.state)return _;if(2===(s=(r=e.state).wrap)||1===s&&r.status!==C||r.lookahead)return _;for(1===s&&(e.adler=d(e.adler,t,l,0)),r.wrap=0,l>=r.w_size&&(0===s&&(D(r.head),r.strstart=0,r.block_start=0,r.insert=0),u=new c.Buf8(r.w_size),c.arraySet(u,t,l-r.w_size,r.w_size,0),t=u,l=r.w_size),a=e.avail_in,o=e.next_in,h=e.input,e.avail_in=l,e.next_in=0,e.input=t,j(r);r.lookahead>=x;){for(n=r.strstart,i=r.lookahead-(x-1);r.ins_h=(r.ins_h<<r.hash_shift^r.window[n+x-1])&r.hash_mask,r.prev[n&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=n,n++,--i;);r.strstart=n,r.lookahead=x-1,j(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=x-1,r.match_available=0,e.next_in=o,e.input=h,e.avail_in=a,r.wrap=s,m},r.deflateInfo=\"pako deflate (from Nodeca project)\"},{\"../utils/common\":41,\"./adler32\":43,\"./crc32\":45,\"./messages\":51,\"./trees\":52}],47:[function(e,t,r){\"use strict\";t.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name=\"\",this.comment=\"\",this.hcrc=0,this.done=!1}},{}],48:[function(e,t,r){\"use strict\";t.exports=function(e,t){var r,n,i,s,a,o,h,u,l,f,c,d,p,m,_,g,b,v,y,w,k,x,S,z,C;r=e.state,n=e.next_in,z=e.input,i=n+(e.avail_in-5),s=e.next_out,C=e.output,a=s-(t-e.avail_out),o=s+(e.avail_out-257),h=r.dmax,u=r.wsize,l=r.whave,f=r.wnext,c=r.window,d=r.hold,p=r.bits,m=r.lencode,_=r.distcode,g=(1<<r.lenbits)-1,b=(1<<r.distbits)-1;e:do{p<15&&(d+=z[n++]<<p,p+=8,d+=z[n++]<<p,p+=8),v=m[d&g];t:for(;;){if(d>>>=y=v>>>24,p-=y,0===(y=v>>>16&255))C[s++]=65535&v;else{if(!(16&y)){if(0==(64&y)){v=m[(65535&v)+(d&(1<<y)-1)];continue t}if(32&y){r.mode=12;break e}e.msg=\"invalid literal/length code\",r.mode=30;break e}w=65535&v,(y&=15)&&(p<y&&(d+=z[n++]<<p,p+=8),w+=d&(1<<y)-1,d>>>=y,p-=y),p<15&&(d+=z[n++]<<p,p+=8,d+=z[n++]<<p,p+=8),v=_[d&b];r:for(;;){if(d>>>=y=v>>>24,p-=y,!(16&(y=v>>>16&255))){if(0==(64&y)){v=_[(65535&v)+(d&(1<<y)-1)];continue r}e.msg=\"invalid distance code\",r.mode=30;break e}if(k=65535&v,p<(y&=15)&&(d+=z[n++]<<p,(p+=8)<y&&(d+=z[n++]<<p,p+=8)),h<(k+=d&(1<<y)-1)){e.msg=\"invalid distance too far back\",r.mode=30;break e}if(d>>>=y,p-=y,(y=s-a)<k){if(l<(y=k-y)&&r.sane){e.msg=\"invalid distance too far back\",r.mode=30;break e}if(S=c,(x=0)===f){if(x+=u-y,y<w){for(w-=y;C[s++]=c[x++],--y;);x=s-k,S=C}}else if(f<y){if(x+=u+f-y,(y-=f)<w){for(w-=y;C[s++]=c[x++],--y;);if(x=0,f<w){for(w-=y=f;C[s++]=c[x++],--y;);x=s-k,S=C}}}else if(x+=f-y,y<w){for(w-=y;C[s++]=c[x++],--y;);x=s-k,S=C}for(;2<w;)C[s++]=S[x++],C[s++]=S[x++],C[s++]=S[x++],w-=3;w&&(C[s++]=S[x++],1<w&&(C[s++]=S[x++]))}else{for(x=s-k;C[s++]=C[x++],C[s++]=C[x++],C[s++]=C[x++],2<(w-=3););w&&(C[s++]=C[x++],1<w&&(C[s++]=C[x++]))}break}}break}}while(n<i&&s<o);n-=w=p>>3,d&=(1<<(p-=w<<3))-1,e.next_in=n,e.next_out=s,e.avail_in=n<i?i-n+5:5-(n-i),e.avail_out=s<o?o-s+257:257-(s-o),r.hold=d,r.bits=p}},{}],49:[function(e,t,r){\"use strict\";var I=e(\"../utils/common\"),O=e(\"./adler32\"),B=e(\"./crc32\"),R=e(\"./inffast\"),T=e(\"./inftrees\"),D=1,F=2,N=0,U=-2,P=1,n=852,i=592;function L(e){return(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function s(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new I.Buf16(320),this.work=new I.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function a(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg=\"\",t.wrap&&(e.adler=1&t.wrap),t.mode=P,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new I.Buf32(n),t.distcode=t.distdyn=new I.Buf32(i),t.sane=1,t.back=-1,N):U}function o(e){var t;return e&&e.state?((t=e.state).wsize=0,t.whave=0,t.wnext=0,a(e)):U}function h(e,t){var r,n;return e&&e.state?(n=e.state,t<0?(r=0,t=-t):(r=1+(t>>4),t<48&&(t&=15)),t&&(t<8||15<t)?U:(null!==n.window&&n.wbits!==t&&(n.window=null),n.wrap=r,n.wbits=t,o(e))):U}function u(e,t){var r,n;return e?(n=new s,(e.state=n).window=null,(r=h(e,t))!==N&&(e.state=null),r):U}var l,f,c=!0;function j(e){if(c){var t;for(l=new I.Buf32(512),f=new I.Buf32(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(T(D,e.lens,0,288,l,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;T(F,e.lens,0,32,f,0,e.work,{bits:5}),c=!1}e.lencode=l,e.lenbits=9,e.distcode=f,e.distbits=5}function Z(e,t,r,n){var i,s=e.state;return null===s.window&&(s.wsize=1<<s.wbits,s.wnext=0,s.whave=0,s.window=new I.Buf8(s.wsize)),n>=s.wsize?(I.arraySet(s.window,t,r-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):(n<(i=s.wsize-s.wnext)&&(i=n),I.arraySet(s.window,t,r-n,i,s.wnext),(n-=i)?(I.arraySet(s.window,t,r-n,n,0),s.wnext=n,s.whave=s.wsize):(s.wnext+=i,s.wnext===s.wsize&&(s.wnext=0),s.whave<s.wsize&&(s.whave+=i))),0}r.inflateReset=o,r.inflateReset2=h,r.inflateResetKeep=a,r.inflateInit=function(e){return u(e,15)},r.inflateInit2=u,r.inflate=function(e,t){var r,n,i,s,a,o,h,u,l,f,c,d,p,m,_,g,b,v,y,w,k,x,S,z,C=0,E=new I.Buf8(4),A=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&0!==e.avail_in)return U;12===(r=e.state).mode&&(r.mode=13),a=e.next_out,i=e.output,h=e.avail_out,s=e.next_in,n=e.input,o=e.avail_in,u=r.hold,l=r.bits,f=o,c=h,x=N;e:for(;;)switch(r.mode){case P:if(0===r.wrap){r.mode=13;break}for(;l<16;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(2&r.wrap&&35615===u){E[r.check=0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0),l=u=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&u)<<8)+(u>>8))%31){e.msg=\"incorrect header check\",r.mode=30;break}if(8!=(15&u)){e.msg=\"unknown compression method\",r.mode=30;break}if(l-=4,k=8+(15&(u>>>=4)),0===r.wbits)r.wbits=k;else if(k>r.wbits){e.msg=\"invalid window size\",r.mode=30;break}r.dmax=1<<k,e.adler=r.check=1,r.mode=512&u?10:12,l=u=0;break;case 2:for(;l<16;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(r.flags=u,8!=(255&r.flags)){e.msg=\"unknown compression method\",r.mode=30;break}if(57344&r.flags){e.msg=\"unknown header flags set\",r.mode=30;break}r.head&&(r.head.text=u>>8&1),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=3;case 3:for(;l<32;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}r.head&&(r.head.time=u),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,E[2]=u>>>16&255,E[3]=u>>>24&255,r.check=B(r.check,E,4,0)),l=u=0,r.mode=4;case 4:for(;l<16;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}r.head&&(r.head.xflags=255&u,r.head.os=u>>8),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=5;case 5:if(1024&r.flags){for(;l<16;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}r.length=u,r.head&&(r.head.extra_len=u),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&(o<(d=r.length)&&(d=o),d&&(r.head&&(k=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),I.arraySet(r.head.extra,n,s,d,k)),512&r.flags&&(r.check=B(r.check,n,d,s)),o-=d,s+=d,r.length-=d),r.length))break e;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===o)break e;for(d=0;k=n[s+d++],r.head&&k&&r.length<65536&&(r.head.name+=String.fromCharCode(k)),k&&d<o;);if(512&r.flags&&(r.check=B(r.check,n,d,s)),o-=d,s+=d,k)break e}else r.head&&(r.head.name=null);r.length=0,r.mode=8;case 8:if(4096&r.flags){if(0===o)break e;for(d=0;k=n[s+d++],r.head&&k&&r.length<65536&&(r.head.comment+=String.fromCharCode(k)),k&&d<o;);if(512&r.flags&&(r.check=B(r.check,n,d,s)),o-=d,s+=d,k)break e}else r.head&&(r.head.comment=null);r.mode=9;case 9:if(512&r.flags){for(;l<16;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(u!==(65535&r.check)){e.msg=\"header crc mismatch\",r.mode=30;break}l=u=0}r.head&&(r.head.hcrc=r.flags>>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=12;break;case 10:for(;l<32;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}e.adler=r.check=L(u),l=u=0,r.mode=11;case 11:if(0===r.havedict)return e.next_out=a,e.avail_out=h,e.next_in=s,e.avail_in=o,r.hold=u,r.bits=l,2;e.adler=r.check=1,r.mode=12;case 12:if(5===t||6===t)break e;case 13:if(r.last){u>>>=7&l,l-=7&l,r.mode=27;break}for(;l<3;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}switch(r.last=1&u,l-=1,3&(u>>>=1)){case 0:r.mode=14;break;case 1:if(j(r),r.mode=20,6!==t)break;u>>>=2,l-=2;break e;case 2:r.mode=17;break;case 3:e.msg=\"invalid block type\",r.mode=30}u>>>=2,l-=2;break;case 14:for(u>>>=7&l,l-=7&l;l<32;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if((65535&u)!=(u>>>16^65535)){e.msg=\"invalid stored block lengths\",r.mode=30;break}if(r.length=65535&u,l=u=0,r.mode=15,6===t)break e;case 15:r.mode=16;case 16:if(d=r.length){if(o<d&&(d=o),h<d&&(d=h),0===d)break e;I.arraySet(i,n,s,d,a),o-=d,s+=d,h-=d,a+=d,r.length-=d;break}r.mode=12;break;case 17:for(;l<14;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(r.nlen=257+(31&u),u>>>=5,l-=5,r.ndist=1+(31&u),u>>>=5,l-=5,r.ncode=4+(15&u),u>>>=4,l-=4,286<r.nlen||30<r.ndist){e.msg=\"too many length or distance symbols\",r.mode=30;break}r.have=0,r.mode=18;case 18:for(;r.have<r.ncode;){for(;l<3;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}r.lens[A[r.have++]]=7&u,u>>>=3,l-=3}for(;r.have<19;)r.lens[A[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,S={bits:r.lenbits},x=T(0,r.lens,0,19,r.lencode,0,r.work,S),r.lenbits=S.bits,x){e.msg=\"invalid code lengths set\",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have<r.nlen+r.ndist;){for(;g=(C=r.lencode[u&(1<<r.lenbits)-1])>>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(b<16)u>>>=_,l-=_,r.lens[r.have++]=b;else{if(16===b){for(z=_+2;l<z;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(u>>>=_,l-=_,0===r.have){e.msg=\"invalid bit length repeat\",r.mode=30;break}k=r.lens[r.have-1],d=3+(3&u),u>>>=2,l-=2}else if(17===b){for(z=_+3;l<z;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}l-=_,k=0,d=3+(7&(u>>>=_)),u>>>=3,l-=3}else{for(z=_+7;l<z;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}l-=_,k=0,d=11+(127&(u>>>=_)),u>>>=7,l-=7}if(r.have+d>r.nlen+r.ndist){e.msg=\"invalid bit length repeat\",r.mode=30;break}for(;d--;)r.lens[r.have++]=k}}if(30===r.mode)break;if(0===r.lens[256]){e.msg=\"invalid code -- missing end-of-block\",r.mode=30;break}if(r.lenbits=9,S={bits:r.lenbits},x=T(D,r.lens,0,r.nlen,r.lencode,0,r.work,S),r.lenbits=S.bits,x){e.msg=\"invalid literal/lengths set\",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,S={bits:r.distbits},x=T(F,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,S),r.distbits=S.bits,x){e.msg=\"invalid distances set\",r.mode=30;break}if(r.mode=20,6===t)break e;case 20:r.mode=21;case 21:if(6<=o&&258<=h){e.next_out=a,e.avail_out=h,e.next_in=s,e.avail_in=o,r.hold=u,r.bits=l,R(e,c),a=e.next_out,i=e.output,h=e.avail_out,s=e.next_in,n=e.input,o=e.avail_in,u=r.hold,l=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;g=(C=r.lencode[u&(1<<r.lenbits)-1])>>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(g&&0==(240&g)){for(v=_,y=g,w=b;g=(C=r.lencode[w+((u&(1<<v+y)-1)>>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}u>>>=v,l-=v,r.back+=v}if(u>>>=_,l-=_,r.back+=_,r.length=b,0===g){r.mode=26;break}if(32&g){r.back=-1,r.mode=12;break}if(64&g){e.msg=\"invalid literal/length code\",r.mode=30;break}r.extra=15&g,r.mode=22;case 22:if(r.extra){for(z=r.extra;l<z;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}r.length+=u&(1<<r.extra)-1,u>>>=r.extra,l-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=23;case 23:for(;g=(C=r.distcode[u&(1<<r.distbits)-1])>>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(0==(240&g)){for(v=_,y=g,w=b;g=(C=r.distcode[w+((u&(1<<v+y)-1)>>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}u>>>=v,l-=v,r.back+=v}if(u>>>=_,l-=_,r.back+=_,64&g){e.msg=\"invalid distance code\",r.mode=30;break}r.offset=b,r.extra=15&g,r.mode=24;case 24:if(r.extra){for(z=r.extra;l<z;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}r.offset+=u&(1<<r.extra)-1,u>>>=r.extra,l-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){e.msg=\"invalid distance too far back\",r.mode=30;break}r.mode=25;case 25:if(0===h)break e;if(d=c-h,r.offset>d){if((d=r.offset-d)>r.whave&&r.sane){e.msg=\"invalid distance too far back\",r.mode=30;break}p=d>r.wnext?(d-=r.wnext,r.wsize-d):r.wnext-d,d>r.length&&(d=r.length),m=r.window}else m=i,p=a-r.offset,d=r.length;for(h<d&&(d=h),h-=d,r.length-=d;i[a++]=m[p++],--d;);0===r.length&&(r.mode=21);break;case 26:if(0===h)break e;i[a++]=r.length,h--,r.mode=21;break;case 27:if(r.wrap){for(;l<32;){if(0===o)break e;o--,u|=n[s++]<<l,l+=8}if(c-=h,e.total_out+=c,r.total+=c,c&&(e.adler=r.check=r.flags?B(r.check,i,c,a-c):O(r.check,i,c,a-c)),c=h,(r.flags?u:L(u))!==r.check){e.msg=\"incorrect data check\",r.mode=30;break}l=u=0}r.mode=28;case 28:if(r.wrap&&r.flags){for(;l<32;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(u!==(4294967295&r.total)){e.msg=\"incorrect length check\",r.mode=30;break}l=u=0}r.mode=29;case 29:x=1;break e;case 30:x=-3;break e;case 31:return-4;case 32:default:return U}return e.next_out=a,e.avail_out=h,e.next_in=s,e.avail_in=o,r.hold=u,r.bits=l,(r.wsize||c!==e.avail_out&&r.mode<30&&(r.mode<27||4!==t))&&Z(e,e.output,e.next_out,c-e.avail_out)?(r.mode=31,-4):(f-=e.avail_in,c-=e.avail_out,e.total_in+=f,e.total_out+=c,r.total+=c,r.wrap&&c&&(e.adler=r.check=r.flags?B(r.check,i,c,e.next_out-c):O(r.check,i,c,e.next_out-c)),e.data_type=r.bits+(r.last?64:0)+(12===r.mode?128:0)+(20===r.mode||15===r.mode?256:0),(0==f&&0===c||4===t)&&x===N&&(x=-5),x)},r.inflateEnd=function(e){if(!e||!e.state)return U;var t=e.state;return t.window&&(t.window=null),e.state=null,N},r.inflateGetHeader=function(e,t){var r;return e&&e.state?0==(2&(r=e.state).wrap)?U:((r.head=t).done=!1,N):U},r.inflateSetDictionary=function(e,t){var r,n=t.length;return e&&e.state?0!==(r=e.state).wrap&&11!==r.mode?U:11===r.mode&&O(1,t,n,0)!==r.check?-3:Z(e,t,n,n)?(r.mode=31,-4):(r.havedict=1,N):U},r.inflateInfo=\"pako inflate (from Nodeca project)\"},{\"../utils/common\":41,\"./adler32\":43,\"./crc32\":45,\"./inffast\":48,\"./inftrees\":50}],50:[function(e,t,r){\"use strict\";var D=e(\"../utils/common\"),F=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],N=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],U=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],P=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];t.exports=function(e,t,r,n,i,s,a,o){var h,u,l,f,c,d,p,m,_,g=o.bits,b=0,v=0,y=0,w=0,k=0,x=0,S=0,z=0,C=0,E=0,A=null,I=0,O=new D.Buf16(16),B=new D.Buf16(16),R=null,T=0;for(b=0;b<=15;b++)O[b]=0;for(v=0;v<n;v++)O[t[r+v]]++;for(k=g,w=15;1<=w&&0===O[w];w--);if(w<k&&(k=w),0===w)return i[s++]=20971520,i[s++]=20971520,o.bits=1,0;for(y=1;y<w&&0===O[y];y++);for(k<y&&(k=y),b=z=1;b<=15;b++)if(z<<=1,(z-=O[b])<0)return-1;if(0<z&&(0===e||1!==w))return-1;for(B[1]=0,b=1;b<15;b++)B[b+1]=B[b]+O[b];for(v=0;v<n;v++)0!==t[r+v]&&(a[B[t[r+v]]++]=v);if(d=0===e?(A=R=a,19):1===e?(A=F,I-=257,R=N,T-=257,256):(A=U,R=P,-1),b=y,c=s,S=v=E=0,l=-1,f=(C=1<<(x=k))-1,1===e&&852<C||2===e&&592<C)return 1;for(;;){for(p=b-S,_=a[v]<d?(m=0,a[v]):a[v]>d?(m=R[T+a[v]],A[I+a[v]]):(m=96,0),h=1<<b-S,y=u=1<<x;i[c+(E>>S)+(u-=h)]=p<<24|m<<16|_|0,0!==u;);for(h=1<<b-1;E&h;)h>>=1;if(0!==h?(E&=h-1,E+=h):E=0,v++,0==--O[b]){if(b===w)break;b=t[r+a[v]]}if(k<b&&(E&f)!==l){for(0===S&&(S=k),c+=y,z=1<<(x=b-S);x+S<w&&!((z-=O[x+S])<=0);)x++,z<<=1;if(C+=1<<x,1===e&&852<C||2===e&&592<C)return 1;i[l=E&f]=k<<24|x<<16|c-s|0}}return 0!==E&&(i[c+E]=b-S<<24|64<<16|0),o.bits=k,0}},{\"../utils/common\":41}],51:[function(e,t,r){\"use strict\";t.exports={2:\"need dictionary\",1:\"stream end\",0:\"\",\"-1\":\"file error\",\"-2\":\"stream error\",\"-3\":\"data error\",\"-4\":\"insufficient memory\",\"-5\":\"buffer error\",\"-6\":\"incompatible version\"}},{}],52:[function(e,t,r){\"use strict\";var i=e(\"../utils/common\"),o=0,h=1;function n(e){for(var t=e.length;0<=--t;)e[t]=0}var s=0,a=29,u=256,l=u+1+a,f=30,c=19,_=2*l+1,g=15,d=16,p=7,m=256,b=16,v=17,y=18,w=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],k=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],x=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],S=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],z=new Array(2*(l+2));n(z);var C=new Array(2*f);n(C);var E=new Array(512);n(E);var A=new Array(256);n(A);var I=new Array(a);n(I);var O,B,R,T=new Array(f);function D(e,t,r,n,i){this.static_tree=e,this.extra_bits=t,this.extra_base=r,this.elems=n,this.max_length=i,this.has_stree=e&&e.length}function F(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function N(e){return e<256?E[e]:E[256+(e>>>7)]}function U(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255}function P(e,t,r){e.bi_valid>d-r?(e.bi_buf|=t<<e.bi_valid&65535,U(e,e.bi_buf),e.bi_buf=t>>d-e.bi_valid,e.bi_valid+=r-d):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=r)}function L(e,t,r){P(e,r[2*t],r[2*t+1])}function j(e,t){for(var r=0;r|=1&e,e>>>=1,r<<=1,0<--t;);return r>>>1}function Z(e,t,r){var n,i,s=new Array(g+1),a=0;for(n=1;n<=g;n++)s[n]=a=a+r[n-1]<<1;for(i=0;i<=t;i++){var o=e[2*i+1];0!==o&&(e[2*i]=j(s[o]++,o))}}function W(e){var t;for(t=0;t<l;t++)e.dyn_ltree[2*t]=0;for(t=0;t<f;t++)e.dyn_dtree[2*t]=0;for(t=0;t<c;t++)e.bl_tree[2*t]=0;e.dyn_ltree[2*m]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function M(e){8<e.bi_valid?U(e,e.bi_buf):0<e.bi_valid&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function H(e,t,r,n){var i=2*t,s=2*r;return e[i]<e[s]||e[i]===e[s]&&n[t]<=n[r]}function G(e,t,r){for(var n=e.heap[r],i=r<<1;i<=e.heap_len&&(i<e.heap_len&&H(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!H(t,n,e.heap[i],e.depth));)e.heap[r]=e.heap[i],r=i,i<<=1;e.heap[r]=n}function K(e,t,r){var n,i,s,a,o=0;if(0!==e.last_lit)for(;n=e.pending_buf[e.d_buf+2*o]<<8|e.pending_buf[e.d_buf+2*o+1],i=e.pending_buf[e.l_buf+o],o++,0===n?L(e,i,t):(L(e,(s=A[i])+u+1,t),0!==(a=w[s])&&P(e,i-=I[s],a),L(e,s=N(--n),r),0!==(a=k[s])&&P(e,n-=T[s],a)),o<e.last_lit;);L(e,m,t)}function Y(e,t){var r,n,i,s=t.dyn_tree,a=t.stat_desc.static_tree,o=t.stat_desc.has_stree,h=t.stat_desc.elems,u=-1;for(e.heap_len=0,e.heap_max=_,r=0;r<h;r++)0!==s[2*r]?(e.heap[++e.heap_len]=u=r,e.depth[r]=0):s[2*r+1]=0;for(;e.heap_len<2;)s[2*(i=e.heap[++e.heap_len]=u<2?++u:0)]=1,e.depth[i]=0,e.opt_len--,o&&(e.static_len-=a[2*i+1]);for(t.max_code=u,r=e.heap_len>>1;1<=r;r--)G(e,s,r);for(i=h;r=e.heap[1],e.heap[1]=e.heap[e.heap_len--],G(e,s,1),n=e.heap[1],e.heap[--e.heap_max]=r,e.heap[--e.heap_max]=n,s[2*i]=s[2*r]+s[2*n],e.depth[i]=(e.depth[r]>=e.depth[n]?e.depth[r]:e.depth[n])+1,s[2*r+1]=s[2*n+1]=i,e.heap[1]=i++,G(e,s,1),2<=e.heap_len;);e.heap[--e.heap_max]=e.heap[1],function(e,t){var r,n,i,s,a,o,h=t.dyn_tree,u=t.max_code,l=t.stat_desc.static_tree,f=t.stat_desc.has_stree,c=t.stat_desc.extra_bits,d=t.stat_desc.extra_base,p=t.stat_desc.max_length,m=0;for(s=0;s<=g;s++)e.bl_count[s]=0;for(h[2*e.heap[e.heap_max]+1]=0,r=e.heap_max+1;r<_;r++)p<(s=h[2*h[2*(n=e.heap[r])+1]+1]+1)&&(s=p,m++),h[2*n+1]=s,u<n||(e.bl_count[s]++,a=0,d<=n&&(a=c[n-d]),o=h[2*n],e.opt_len+=o*(s+a),f&&(e.static_len+=o*(l[2*n+1]+a)));if(0!==m){do{for(s=p-1;0===e.bl_count[s];)s--;e.bl_count[s]--,e.bl_count[s+1]+=2,e.bl_count[p]--,m-=2}while(0<m);for(s=p;0!==s;s--)for(n=e.bl_count[s];0!==n;)u<(i=e.heap[--r])||(h[2*i+1]!==s&&(e.opt_len+=(s-h[2*i+1])*h[2*i],h[2*i+1]=s),n--)}}(e,t),Z(s,u,e.bl_count)}function X(e,t,r){var n,i,s=-1,a=t[1],o=0,h=7,u=4;for(0===a&&(h=138,u=3),t[2*(r+1)+1]=65535,n=0;n<=r;n++)i=a,a=t[2*(n+1)+1],++o<h&&i===a||(o<u?e.bl_tree[2*i]+=o:0!==i?(i!==s&&e.bl_tree[2*i]++,e.bl_tree[2*b]++):o<=10?e.bl_tree[2*v]++:e.bl_tree[2*y]++,s=i,u=(o=0)===a?(h=138,3):i===a?(h=6,3):(h=7,4))}function V(e,t,r){var n,i,s=-1,a=t[1],o=0,h=7,u=4;for(0===a&&(h=138,u=3),n=0;n<=r;n++)if(i=a,a=t[2*(n+1)+1],!(++o<h&&i===a)){if(o<u)for(;L(e,i,e.bl_tree),0!=--o;);else 0!==i?(i!==s&&(L(e,i,e.bl_tree),o--),L(e,b,e.bl_tree),P(e,o-3,2)):o<=10?(L(e,v,e.bl_tree),P(e,o-3,3)):(L(e,y,e.bl_tree),P(e,o-11,7));s=i,u=(o=0)===a?(h=138,3):i===a?(h=6,3):(h=7,4)}}n(T);var q=!1;function J(e,t,r,n){P(e,(s<<1)+(n?1:0),3),function(e,t,r,n){M(e),n&&(U(e,r),U(e,~r)),i.arraySet(e.pending_buf,e.window,t,r,e.pending),e.pending+=r}(e,t,r,!0)}r._tr_init=function(e){q||(function(){var e,t,r,n,i,s=new Array(g+1);for(n=r=0;n<a-1;n++)for(I[n]=r,e=0;e<1<<w[n];e++)A[r++]=n;for(A[r-1]=n,n=i=0;n<16;n++)for(T[n]=i,e=0;e<1<<k[n];e++)E[i++]=n;for(i>>=7;n<f;n++)for(T[n]=i<<7,e=0;e<1<<k[n]-7;e++)E[256+i++]=n;for(t=0;t<=g;t++)s[t]=0;for(e=0;e<=143;)z[2*e+1]=8,e++,s[8]++;for(;e<=255;)z[2*e+1]=9,e++,s[9]++;for(;e<=279;)z[2*e+1]=7,e++,s[7]++;for(;e<=287;)z[2*e+1]=8,e++,s[8]++;for(Z(z,l+1,s),e=0;e<f;e++)C[2*e+1]=5,C[2*e]=j(e,5);O=new D(z,w,u+1,l,g),B=new D(C,k,0,f,g),R=new D(new Array(0),x,0,c,p)}(),q=!0),e.l_desc=new F(e.dyn_ltree,O),e.d_desc=new F(e.dyn_dtree,B),e.bl_desc=new F(e.bl_tree,R),e.bi_buf=0,e.bi_valid=0,W(e)},r._tr_stored_block=J,r._tr_flush_block=function(e,t,r,n){var i,s,a=0;0<e.level?(2===e.strm.data_type&&(e.strm.data_type=function(e){var t,r=4093624447;for(t=0;t<=31;t++,r>>>=1)if(1&r&&0!==e.dyn_ltree[2*t])return o;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return h;for(t=32;t<u;t++)if(0!==e.dyn_ltree[2*t])return h;return o}(e)),Y(e,e.l_desc),Y(e,e.d_desc),a=function(e){var t;for(X(e,e.dyn_ltree,e.l_desc.max_code),X(e,e.dyn_dtree,e.d_desc.max_code),Y(e,e.bl_desc),t=c-1;3<=t&&0===e.bl_tree[2*S[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t}(e),i=e.opt_len+3+7>>>3,(s=e.static_len+3+7>>>3)<=i&&(i=s)):i=s=r+5,r+4<=i&&-1!==t?J(e,t,r,n):4===e.strategy||s===i?(P(e,2+(n?1:0),3),K(e,z,C)):(P(e,4+(n?1:0),3),function(e,t,r,n){var i;for(P(e,t-257,5),P(e,r-1,5),P(e,n-4,4),i=0;i<n;i++)P(e,e.bl_tree[2*S[i]+1],3);V(e,e.dyn_ltree,t-1),V(e,e.dyn_dtree,r-1)}(e,e.l_desc.max_code+1,e.d_desc.max_code+1,a+1),K(e,e.dyn_ltree,e.dyn_dtree)),W(e),n&&M(e)},r._tr_tally=function(e,t,r){return e.pending_buf[e.d_buf+2*e.last_lit]=t>>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&r,e.last_lit++,0===t?e.dyn_ltree[2*r]++:(e.matches++,t--,e.dyn_ltree[2*(A[r]+u+1)]++,e.dyn_dtree[2*N(t)]++),e.last_lit===e.lit_bufsize-1},r._tr_align=function(e){P(e,2,3),L(e,m,z),function(e){16===e.bi_valid?(U(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):8<=e.bi_valid&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)}(e)}},{\"../utils/common\":41}],53:[function(e,t,r){\"use strict\";t.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg=\"\",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(e,t,r){(function(e){!function(r,n){\"use strict\";if(!r.setImmediate){var i,s,t,a,o=1,h={},u=!1,l=r.document,e=Object.getPrototypeOf&&Object.getPrototypeOf(r);e=e&&e.setTimeout?e:r,i=\"[object process]\"==={}.toString.call(r.process)?function(e){process.nextTick(function(){c(e)})}:function(){if(r.postMessage&&!r.importScripts){var e=!0,t=r.onmessage;return r.onmessage=function(){e=!1},r.postMessage(\"\",\"*\"),r.onmessage=t,e}}()?(a=\"setImmediate$\"+Math.random()+\"$\",r.addEventListener?r.addEventListener(\"message\",d,!1):r.attachEvent(\"onmessage\",d),function(e){r.postMessage(a+e,\"*\")}):r.MessageChannel?((t=new MessageChannel).port1.onmessage=function(e){c(e.data)},function(e){t.port2.postMessage(e)}):l&&\"onreadystatechange\"in l.createElement(\"script\")?(s=l.documentElement,function(e){var t=l.createElement(\"script\");t.onreadystatechange=function(){c(e),t.onreadystatechange=null,s.removeChild(t),t=null},s.appendChild(t)}):function(e){setTimeout(c,0,e)},e.setImmediate=function(e){\"function\"!=typeof e&&(e=new Function(\"\"+e));for(var t=new Array(arguments.length-1),r=0;r<t.length;r++)t[r]=arguments[r+1];var n={callback:e,args:t};return h[o]=n,i(o),o++},e.clearImmediate=f}function f(e){delete h[e]}function c(e){if(u)setTimeout(c,0,e);else{var t=h[e];if(t){u=!0;try{!function(e){var t=e.callback,r=e.args;switch(r.length){case 0:t();break;case 1:t(r[0]);break;case 2:t(r[0],r[1]);break;case 3:t(r[0],r[1],r[2]);break;default:t.apply(n,r)}}(t)}finally{f(e),u=!1}}}}function d(e){e.source===r&&\"string\"==typeof e.data&&0===e.data.indexOf(a)&&c(+e.data.slice(a.length))}}(\"undefined\"==typeof self?void 0===e?this:e:self)}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}]},{},[10])(10)});","'use server';\n\nimport path from 'path';\nimport JSZip from 'jszip';\nimport { analyzeFileContent, type FileAnalysis } from './lib';\nimport type { FileInfo } from './components/codegraph/dependency-graph-shared';\n\nconst PARSEABLE_EXTS = new Set([\".ts\", \".tsx\", \".js\", \".jsx\", \".mjs\"]);\n\nconst IGNORE_SEGMENTS = new Set([\n  \"node_modules\", \"dist\", \".git\", \"package-lock.json\", \"bun.lock\", \"bun.lockb\",\n]);\n\nfunction shouldIgnore(filePath: string): boolean {\n  for (const seg of filePath.split(\"/\")) {\n    if (IGNORE_SEGMENTS.has(seg) || seg.startsWith(\".\")) return true;\n  }\n  return false;\n}\n\n/** Infer a file-level description from leading comments in source content */\nfunction inferDescription(content: string): string | undefined {\n  const jsdocMatch = content.match(/^\\s*\\/\\*\\*\\s*\\n?([\\s\\S]*?)\\*\\//);\n  if (jsdocMatch) {\n    const body = jsdocMatch[1];\n    const tagMatch = body.match(/@(?:description|file)\\s+([\\s\\S]+?)(?=\\n\\s*\\*?\\s*@|$)/);\n    if (tagMatch) {\n      return tagMatch[1].split(\"\\n\").map(l => l.replace(/^\\s*\\*\\s?/, \"\").trim()).join(\"\\n\").trim();\n    }\n    const lines: string[] = [];\n    let foundContent = false;\n    for (const line of body.split(\"\\n\")) {\n      const cleaned = line.replace(/^\\s*\\*\\s?/, \"\").trim();\n      if (cleaned.startsWith(\"@\")) break;\n      if (cleaned) { foundContent = true; lines.push(cleaned); }\n      else if (foundContent) lines.push(\"\");\n    }\n    if (lines.length > 0) return lines.join(\"\\n\").trim();\n  }\n  const descLines: string[] = [];\n  for (const line of content.split(\"\\n\").slice(0, 10)) {\n    const trimmed = line.trim();\n    if (trimmed === \"\" || trimmed.startsWith(\"'use\") || trimmed.startsWith('\"use')) continue;\n    if (trimmed.startsWith(\"//\")) {\n      const comment = trimmed.replace(/^\\/\\/\\s*/, \"\").trim();\n      if (comment) descLines.push(comment);\n      continue;\n    }\n    break;\n  }\n  return descLines.length > 0 ? descLines.join(\"\\n\").trim() : undefined;\n}\n\nexport async function analyzeRemoteRepository(url: string): Promise<{ success: boolean; files?: FileInfo[]; error?: string }> {\n  try {\n    // 1. Normalize GitHub URLs to ZIP archive URLs\n    let zipUrl = url;\n    if (url.includes('github.com') && !url.endsWith('.zip')) {\n      const match = url.match(/github\\.com\\/([^/]+)\\/([^/]+)/);\n      if (match) {\n        const [, user, repo] = match;\n        zipUrl = `https://github.com/${user}/${repo}/archive/refs/heads/master.zip`;\n      }\n    }\n\n    // 2. Download ZIP into memory\n    let response = await fetch(zipUrl);\n    if (!response.ok && zipUrl.includes('/refs/heads/master.zip')) {\n      const mainZipUrl = zipUrl.replace('/refs/heads/master.zip', '/refs/heads/main.zip');\n      response = await fetch(mainZipUrl);\n      if (!response.ok) {\n        throw new Error(`Failed to download repository from ${url}. (Tried master and main branches)`);\n      }\n    } else if (!response.ok) {\n      throw new Error(`Failed to download repository from ${url}. Status: ${response.status}`);\n    }\n\n    const archiveBuffer = await response.arrayBuffer();\n\n    // 3. Extract ZIP in memory using JSZip\n    const zip = await JSZip.loadAsync(archiveBuffer);\n    const extracted: { path: string; content: string }[] = [];\n    for (const [filePath, file] of Object.entries(zip.files)) {\n      if (file.dir) continue;\n      const content = await file.async('string');\n      extracted.push({ path: filePath, content });\n    }\n\n    // 4. Strip the top-level directory GitHub adds (e.g. \"repo-master/\")\n    let prefix = '';\n    if (extracted.length > 0) {\n      const firstSlash = extracted[0].path.indexOf('/');\n      if (firstSlash > 0) {\n        const candidate = extracted[0].path.slice(0, firstSlash + 1);\n        if (extracted.every(f => f.path.startsWith(candidate))) {\n          prefix = candidate;\n        }\n      }\n    }\n\n    // 5. Analyze each parseable file\n    const files: FileInfo[] = [];\n    for (const entry of extracted) {\n      const relativePath = prefix ? entry.path.slice(prefix.length) : entry.path;\n      if (!relativePath || shouldIgnore(relativePath)) continue;\n\n      const ext = path.extname(relativePath);\n      if (!PARSEABLE_EXTS.has(ext)) continue;\n\n      const analysis = analyzeFileContent(relativePath, entry.content);\n      if (!analysis) continue;\n\n      const pkg = relativePath.split(\"/\")[0];\n      const id = relativePath.replace(/[^a-zA-Z0-9]/g, \"_\");\n      const name = path.basename(relativePath);\n      const description = inferDescription(entry.content);\n\n      files.push({ path: relativePath, name, id, pkg, description, analysis });\n    }\n\n    return { success: true, files };\n\n  } catch (error: any) {\n    console.error('Analysis error:', error);\n    return { success: false, error: error.message || 'Unknown error during analysis' };\n  }\n}\n","'use client';\n\n/**\n * Client component responsible for rendering the interactive dependency graph and fetching live npm metadata.\n */\nimport { useMemo, useState, useTransition, useRef, useEffect, type ReactNode } from \"react\";\nimport { Boxes, FunctionSquare, Package, Search, Share2, Settings, Cloud, Loader2, X, Download, HelpCircle } from \"lucide-react\";\nimport { MermaidClient } from \"./mermaid\";\nimport { buildChart, buildNodeTooltips, getGraphHierarchy, type FileInfo, type GraphDisplayOptions } from \"./dependency-graph-shared\";\nimport { analyzeRemoteRepository } from \"../../actions\";\n\nexport function DependencyGraphClient({\n  files: initialFiles,\n  showLegend,\n  initialOptions,\n  helpContent,\n}: {\n  files: FileInfo[];\n  showLegend: boolean;\n  initialOptions: GraphDisplayOptions;\n  helpContent?: ReactNode;\n}) {\n  const [files, setFiles] = useState(initialFiles);\n  const [options, setOptions] = useState(initialOptions);\n  const [search, setSearch] = useState(\"\");\n  const [showConfig, setShowConfig] = useState(false);\n  const [showHelp, setShowHelp] = useState(false);\n  const [repoUrl, setRepoUrl] = useState(\"\");\n  const [isPending, startTransition] = useTransition();\n\n  const [npmMetadata, setNpmMetadata] = useState<Record<string, any>>({});\n  const requestedNpmPkgs = useRef(new Set<string>());\n\n  useEffect(() => {\n    if (!options.showNpmImports) {\n      return;\n    }\n\n    const packages = new Set<string>();\n    for (const f of files) {\n      for (const pkg of f.analysis?.npmImports ?? []) {\n        packages.add(pkg);\n      }\n    }\n\n    // Workspace packages and alias-like paths that should not be fetched from npm\n    const workspaceScopes = [\"@grab-url/\"];\n    const isWorkspacePkg = (name: string) =>\n      workspaceScopes.some((s) => name.startsWith(s));\n\n    const isLikelyAliasOrPath = (name: string) =>\n      name.startsWith(\"@/\") || name.startsWith(\"./\") || name.startsWith(\"../\");\n\n    const toFetch: string[] = [];\n\n    packages.forEach((pkg) => {\n      if (requestedNpmPkgs.current.has(pkg)) return;\n      requestedNpmPkgs.current.add(pkg);\n      if (isWorkspacePkg(pkg) || isLikelyAliasOrPath(pkg)) return;\n      toFetch.push(pkg);\n    });\n\n    if (toFetch.length === 0) return;\n\n    // mark as loading initially\n    setNpmMetadata((prev) => {\n      const next = { ...prev };\n      for (const pkg of toFetch) {\n        next[pkg] = { _loading: true };\n      }\n      return next;\n    });\n\n    fetch(\"/api/npm-meta\", {\n      method: \"POST\",\n      headers: {\n        \"Content-Type\": \"application/json\",\n      },\n      body: JSON.stringify({ packages: toFetch }),\n    })\n      .then((res) => {\n        if (!res.ok) throw new Error(`Failed to fetch npm metadata: ${res.status}`);\n        return res.json();\n      })\n      .then((data: Record<string, any>) => {\n        setNpmMetadata((prev) => ({ ...prev, ...data }));\n      })\n      .catch((e) => {\n        console.error(\"Failed to fetch npm metadata batch\", e);\n        setNpmMetadata((prev) => {\n          const next = { ...prev };\n          for (const pkg of toFetch) {\n            next[pkg] = { _error: true };\n          }\n          return next;\n        });\n      });\n  }, [files, options.showNpmImports]);\n\n  const handleRemoteLoad = () => {\n    if (!repoUrl) return;\n    \n    startTransition(async () => {\n      const result = await analyzeRemoteRepository(repoUrl);\n      if (result.success && result.files) {\n        setFiles(result.files);\n        setShowConfig(false);\n      } else {\n        alert(result.error || \"Failed to analyze repository\");\n      }\n    });\n  };\n\n  const chart = useMemo(() => {\n    const c = buildChart(files, options);\n    console.log(\"[DependencyGraphClient] files:\", files.length, \"| chart length:\", c.length, \"| chart preview:\", c.substring(0, 200));\n    return c;\n  }, [files, options]);\n  const nodeTooltips = useMemo(() => buildNodeTooltips(files, options, npmMetadata), [files, options, npmMetadata]);\n  const hierarchy = useMemo(() => getGraphHierarchy(files, options), [files, options]);\n\n  useEffect(() => {\n    (window as any).__c4Hierarchy = hierarchy;\n    \n    (window as any).toggleCollapse = (nodeId: string) => {\n      // Find the node to toggle its icon\n      const node = document.querySelector(`[id*=\"-${nodeId}-\"]`);\n      if (node) {\n        // Toggle the +/- icon text\n        node.querySelectorAll('tspan, span, div, text').forEach((el) => {\n          if (el.textContent?.endsWith(' ➕')) {\n             el.textContent = el.textContent.replace(' ➕', ' ➖');\n          } else if (el.textContent?.endsWith(' ➖')) {\n             el.textContent = el.textContent.replace(' ➖', ' ➕');\n          }\n        });\n      }\n\n      const h = (window as any).__c4Hierarchy;\n      if (!h || !h[nodeId]) return;\n\n      const directChildren = h[nodeId] || [];\n      if (directChildren.length === 0) return;\n\n      // Determine collapse state from the first child\n      let isCollapsed = false;\n      for (const cId of directChildren) {\n        const cEl = document.querySelector(`[id*=\"-${cId}-\"]`) as HTMLElement;\n        if (cEl) {\n          isCollapsed = cEl.style.display !== 'none';\n          break;\n        }\n      }\n\n      const display = isCollapsed ? 'none' : '';\n      \n      const toggleDescendants = (id: string) => {\n        const children = h[id] || [];\n        for (const cId of children) {\n          const el = document.querySelector(`[id*=\"-${cId}-\"]`) as HTMLElement;\n          if (el) el.style.display = display;\n          \n          // Also hide/show edges connected to this child in mermaid\n          // Mermaid C4 flowchart edges don't nicely match by class/id, so we just let them disconnect.\n          // Recursively toggle\n          toggleDescendants(cId);\n        }\n      };\n\n      toggleDescendants(nodeId);\n    };\n  }, [hierarchy]);\n\n\n  return (\n    <div className=\"space-y-3\">\n      <div className=\"flex flex-col gap-3 lg:flex-row lg:items-center lg:justify-between\">\n        <div className=\"flex min-w-0 flex-1 flex-col gap-3 sm:flex-row sm:flex-wrap sm:items-center\">\n          <div className=\"flex items-center gap-2 rounded-xl border border-slate-800 bg-slate-950/70 px-3 py-2\">\n            <Search size={14} className=\"text-slate-400\" />\n            <input\n              type=\"text\"\n              value={search}\n              onChange={(e) => setSearch(e.target.value)}\n              placeholder=\"Search graph nodes...\"\n              className=\"w-full min-w-0 border-none bg-transparent text-sm text-slate-100 outline-none placeholder:text-slate-500 sm:w-56\"\n            />\n          </div>\n          {showLegend ? (\n            <div className=\"flex flex-wrap gap-2\">\n              <button\n                type=\"button\"\n                onClick={() => {\n                  setShowConfig(!showConfig);\n                  setShowHelp(false);\n                }}\n                className={`inline-flex items-center gap-2 rounded-full border px-3 py-2 text-sm font-semibold transition ${\n                  showConfig\n                    ? \"border-amber-400 bg-amber-500/15 text-amber-200\"\n                    : \"border-slate-700 bg-slate-950/70 text-slate-300 hover:border-slate-500 hover:text-slate-100\"\n                }`}\n              >\n                <Settings size={14} className={isPending ? \"animate-spin\" : \"\"} />\n                Repo\n              </button>\n\n              {helpContent && (\n                <button\n                  type=\"button\"\n                  onClick={() => {\n                    setShowHelp(!showHelp);\n                    setShowConfig(false);\n                  }}\n                  className={`inline-flex items-center gap-2 rounded-full border px-3 py-2 text-sm font-semibold transition ${\n                    showHelp\n                      ? \"border-sky-400 bg-sky-500/15 text-sky-200\"\n                      : \"border-slate-700 bg-slate-950/70 text-slate-300 hover:border-slate-500 hover:text-slate-100\"\n                  }`}\n                >\n                  <HelpCircle size={14} />\n                  Help\n                </button>\n              )}\n\n              <div className=\"mx-1 h-8 w-px bg-slate-800\" />\n\n              {[\n                {\n                  key: \"showNpmImports\",\n                  label: \"External\",\n                  icon: Package,\n                },\n                {\n                  key: \"showTypes\",\n                  label: \"Types\",\n                  icon: Boxes,\n                },\n                {\n                  key: \"showPrivateFunctions\",\n                  label: \"Private\",\n                  icon: FunctionSquare,\n                },\n                {\n                  key: \"showExportedFunctions\",\n                  label: \"Exported\",\n                  icon: Share2,\n                },\n              ].map((toggle) => {\n                const active = options[toggle.key as keyof GraphDisplayOptions] as boolean;\n                const Icon = toggle.icon;\n                return (\n                  <button\n                    key={toggle.key}\n                    type=\"button\"\n                    onClick={() => setOptions((prev) => ({ ...prev, [toggle.key]: !active }))}\n                    aria-pressed={active}\n                    className={\n                      active\n                        ? \"inline-flex items-center gap-2 rounded-full border border-sky-400 bg-sky-500/15 px-3 py-2 text-sm font-semibold text-sky-200 transition hover:bg-sky-500/20\"\n                        : \"inline-flex items-center gap-2 rounded-full border border-slate-700 bg-slate-950/70 px-3 py-2 text-sm font-semibold text-slate-300 transition hover:border-slate-500 hover:text-slate-100\"\n                    }\n                  >\n                    <Icon size={14} />\n                    {toggle.label}\n                  </button>\n                );\n              })}\n            </div>\n          ) : null}\n        </div>\n      </div>\n\n      {showConfig && (\n        <div className=\"flex flex-col gap-3 rounded-xl border border-amber-900/50 bg-amber-950/20 p-4 shadow-xl animate-in fade-in slide-in-from-top-2\">\n          <div className=\"flex items-center justify-between\">\n            <div className=\"flex items-center gap-2 text-sm font-medium text-amber-200\">\n              <Cloud size={16} />\n              Load Remote Repository\n            </div>\n            <button onClick={() => setShowConfig(false)} className=\"text-slate-500 hover:text-white\">\n              <X size={16} />\n            </button>\n          </div>\n          <div className=\"flex flex-col gap-3 sm:flex-row\">\n            <div className=\"relative flex-1\">\n              <input\n                type=\"text\"\n                placeholder=\"https://github.com/user/repo or ZIP URL\"\n                value={repoUrl}\n                onChange={(e) => setRepoUrl(e.target.value)}\n                className=\"w-full rounded-lg border border-slate-700 bg-slate-950 px-3 py-2 text-sm text-slate-200 outline-none focus:border-amber-500/50\"\n                onKeyDown={(e) => e.key === 'Enter' && handleRemoteLoad()}\n              />\n            </div>\n            <button\n              disabled={isPending || !repoUrl}\n              onClick={handleRemoteLoad}\n              className=\"inline-flex items-center justify-center gap-2 rounded-lg bg-amber-600 px-4 py-2 text-sm font-semibold text-white transition hover:bg-amber-500 disabled:opacity-50\"\n            >\n              {isPending ? <Loader2 size={16} className=\"animate-spin\" /> : <Download size={16} />}\n              Analyze\n            </button>\n          </div>\n          <p className=\"text-xs text-slate-500\">\n            Enter a public GitHub repository URL or a direct link to a ZIP file. The server will download and analyze the code structure.\n          </p>\n        </div>\n      )}\n\n      {showHelp && helpContent && (\n        <div className=\"flex flex-col gap-3 rounded-xl border border-slate-800 bg-slate-950/70 p-4 shadow-xl animate-in fade-in slide-in-from-top-2\">\n          <div className=\"flex items-center justify-between\">\n            <div className=\"flex items-center gap-2 text-sm font-medium text-sky-300\">\n              <HelpCircle size={16} />\n              Instructions & Tips\n            </div>\n            <button onClick={() => setShowHelp(false)} className=\"text-slate-500 hover:text-white\">\n              <X size={16} />\n            </button>\n          </div>\n          <div className=\"text-sm text-slate-300\">\n            {helpContent}\n          </div>\n        </div>\n      )}\n\n      <details open>\n        <summary className=\"cursor-pointer select-none rounded-lg border border-slate-800 bg-slate-900/60 px-4 py-2.5 text-sm font-semibold text-slate-200 transition hover:border-slate-600 hover:text-white\">\n          Code Dependency Graph\n        </summary>\n        <div className=\"relative mt-2\">\n          {isPending && (\n            <div className=\"absolute inset-0 z-10 flex items-center justify-center bg-slate-950/50 backdrop-blur-[1px]\">\n              <div className=\"flex flex-col items-center gap-3 rounded-2xl border border-slate-800 bg-slate-900/80 p-8 shadow-2xl\">\n                <Loader2 size={32} className=\"animate-spin text-sky-400\" />\n                <div className=\"text-sm font-medium text-slate-200\">Analyzing Architecture...</div>\n              </div>\n            </div>\n          )}\n          <MermaidClient chart={chart} nodeTooltips={nodeTooltips} highlightQuery={search} />\n        </div>\n      </details>\n    </div>\n  );\n}\n","/**\n * Server component that initializes and passes parsed graph data to the client-side dependency graph.\n */\nimport { generateFileTree, parseIgnoreFile, type FileTreeNode } from \"../../lib\";\nimport path from \"path\";\nimport { DependencyGraphClient } from \"./dependency-graph-client\";\nimport type { FileInfo, GraphDisplayOptions } from \"./dependency-graph-shared\";\n\nconst DEFAULT_INSTRUCTIONS = (\n  <ul className=\"space-y-3 list-none p-0\">\n    <li>\n      <strong>Dependency Mapping</strong>: The graph visualizes package files, local imports, and optional npm dependencies.\n    </li>\n    <li>\n      <strong>Graph Controls</strong>: Use the toggle buttons to show or hide <strong>External</strong>, <strong>Types</strong>, <strong>Private</strong>, and <strong>Exported</strong> nodes.\n    </li>\n    <li>\n      <strong>Navigation</strong>: <strong>Drag</strong> to pan the view, or hold <code>Ctrl</code> while <strong>scrolling</strong> to zoom.\n    </li>\n    <li>\n      <strong>Interactivity</strong>: <strong>Click</strong> any node to automatically scroll to its matching entry in the file tree below.\n    </li>\n    <li>\n      <strong>Detailed Insights</strong>: <strong>Hover</strong> over graph nodes or file tree badges to see <strong>Markdown-parsed tooltips</strong> with descriptions, exports, and property details.\n    </li>\n    <li>\n      <strong>Filtering</strong>: Use the <strong>Search Box</strong> in the graph or file tree to find specific files or symbols instantly.\n    </li>\n  </ul>\n);\n\nfunction collectFiles(nodes: FileTreeNode[], result: FileInfo[] = []): FileInfo[] {\n  for (const node of nodes) {\n    if (node.type === \"file\") {\n      const pkg = node.path.includes(\"/\") ? node.path.split(\"/\")[0] : \"root\";\n      const id = node.path.replace(/[^a-zA-Z0-9]/g, \"_\");\n      result.push({\n        path: node.path,\n        name: node.name,\n        id,\n        pkg,\n        description: node.description,\n        analysis: node.analysis,\n      });\n    }\n    if (node.children) collectFiles(node.children, result);\n  }\n  return result;\n}\n\nexport function DependencyGraph({\n  paths,\n  descriptions = {},\n  ignore = [],\n  ignoreFile,\n  showLegend = true,\n  showNpmImports = false,\n  showTypes = false,\n  showPrivateFunctions = false,\n  showExportedFunctions = false,\n  instructions,\n}: {\n  paths: string[];\n  descriptions?: Record<string, string>;\n  ignore?: string[];\n  ignoreFile?: string;\n  showLegend?: boolean;\n  showNpmImports?: boolean;\n  showTypes?: boolean;\n  showPrivateFunctions?: boolean;\n  showExportedFunctions?: boolean;\n  instructions?: React.ReactNode;\n}) {\n  const dirs = paths;\n  const ignorePatterns = new Set(ignore);\n  if (ignoreFile) {\n    const filePath = path.isAbsolute(ignoreFile) ? ignoreFile : path.resolve(process.cwd(), ignoreFile);\n    for (const p of parseIgnoreFile(filePath)) ignorePatterns.add(p);\n  }\n\n  const files: FileInfo[] = [];\n  for (const d of dirs) {\n    const resolvedDir = path.isAbsolute(d) ? d : path.resolve(process.cwd(), d);\n    console.log(\"[DependencyGraph] Scanning:\", resolvedDir);\n    const tree = generateFileTree(resolvedDir, descriptions, ignorePatterns, false);\n    console.log(\"[DependencyGraph] Tree nodes:\", tree.length);\n    collectFiles(tree, files);\n  }\n  console.log(\"[DependencyGraph] Total files collected:\", files.length, \"| With analysis:\", files.filter(f => f.analysis).length);\n  const initialOptions: GraphDisplayOptions = {\n    showNpmImports,\n    showTypes,\n    showPrivateFunctions,\n    showExportedFunctions,\n  };\n\n  return <DependencyGraphClient files={files} showLegend={showLegend} initialOptions={initialOptions} helpContent={instructions ?? DEFAULT_INSTRUCTIONS} />;\n}\n","/**\n * Fuse.js v7.4.1 - Lightweight fuzzy-search (http://fusejs.io)\n *\n * Copyright (c) 2026 Kiro Risk (http://kiro.me)\n * All Rights Reserved. Apache Software License 2.0\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nfunction isArray(value) {\n  return !Array.isArray ? getTag(value) === '[object Array]' : Array.isArray(value);\n}\nfunction baseToString(value) {\n  // Exit early for strings to avoid a performance hit in some environments.\n  if (typeof value == 'string') {\n    return value;\n  }\n  if (typeof value === 'bigint') {\n    return value.toString();\n  }\n  const result = value + '';\n  return result == '0' && 1 / value == -Infinity ? '-0' : result;\n}\nfunction toString(value) {\n  return value == null ? '' : baseToString(value);\n}\nfunction isString(value) {\n  return typeof value === 'string';\n}\nfunction isNumber(value) {\n  return typeof value === 'number';\n}\n\n// Adapted from: https://github.com/lodash/lodash/blob/master/isBoolean.js\nfunction isBoolean(value) {\n  return value === true || value === false || isObjectLike(value) && getTag(value) == '[object Boolean]';\n}\nfunction isObject(value) {\n  return typeof value === 'object';\n}\n\n// Checks if `value` is object-like.\nfunction isObjectLike(value) {\n  return isObject(value) && value !== null;\n}\nfunction isDefined(value) {\n  return value !== undefined && value !== null;\n}\nfunction isBlank(value) {\n  return !value.trim().length;\n}\n\n// Gets the `toStringTag` of `value`.\n// Adapted from: https://github.com/lodash/lodash/blob/master/.internal/getTag.js\nfunction getTag(value) {\n  return value == null ? value === undefined ? '[object Undefined]' : '[object Null]' : Object.prototype.toString.call(value);\n}\n\nconst INCORRECT_INDEX_TYPE = \"Incorrect 'index' type\";\nconst INVALID_DOC_INDEX = 'Invalid doc index: must be a non-negative integer within the bounds of the docs array';\nconst LOGICAL_SEARCH_INVALID_QUERY_FOR_KEY = key => `Invalid value for key ${key}`;\nconst PATTERN_LENGTH_TOO_LARGE = max => `Pattern length exceeds max of ${max}.`;\nconst MISSING_KEY_PROPERTY = name => `Missing ${name} property in key`;\nconst INVALID_KEY_WEIGHT_VALUE = key => `Property 'weight' in key '${key}' must be a positive integer`;\nconst FUSE_MATCH_TOKEN_SEARCH_UNSUPPORTED = `Fuse.match does not support useTokenSearch: token search requires ` + `corpus-level statistics (df, fieldCount) that a one-off string ` + `comparison does not have. Use new Fuse(...).search(...) instead.`;\n\nconst hasOwn = Object.prototype.hasOwnProperty;\nclass KeyStore {\n  constructor(keys) {\n    this._keys = [];\n    this._keyMap = {};\n    let totalWeight = 0;\n    keys.forEach(key => {\n      const obj = createKey(key);\n      this._keys.push(obj);\n      this._keyMap[obj.id] = obj;\n      totalWeight += obj.weight;\n    });\n\n    // Normalize weights so that their sum is equal to 1\n    this._keys.forEach(key => {\n      key.weight /= totalWeight;\n    });\n  }\n  get(keyId) {\n    return this._keyMap[keyId];\n  }\n  keys() {\n    return this._keys;\n  }\n  toJSON() {\n    return JSON.stringify(this._keys);\n  }\n}\nfunction createKey(key) {\n  let path = null;\n  let id = null;\n  let src = null;\n  let weight = 1;\n  let getFn = null;\n  if (isString(key) || isArray(key)) {\n    src = key;\n    path = createKeyPath(key);\n    id = createKeyId(key);\n  } else {\n    if (!hasOwn.call(key, 'name')) {\n      throw new Error(MISSING_KEY_PROPERTY('name'));\n    }\n    const name = key.name;\n    src = name;\n    if (hasOwn.call(key, 'weight') && key.weight !== undefined) {\n      weight = key.weight;\n      if (weight <= 0) {\n        throw new Error(INVALID_KEY_WEIGHT_VALUE(createKeyId(name)));\n      }\n    }\n    path = createKeyPath(name);\n    id = createKeyId(name);\n    getFn = key.getFn ?? null;\n  }\n  return {\n    path: path,\n    id: id,\n    weight,\n    src: src,\n    getFn\n  };\n}\nfunction createKeyPath(key) {\n  return isArray(key) ? key : key.split('.');\n}\nfunction createKeyId(key) {\n  return isArray(key) ? key.join('.') : key;\n}\n\nfunction get(obj, path) {\n  const list = [];\n  let arr = false;\n  const deepGet = (obj, path, index, arrayIndex) => {\n    if (!isDefined(obj)) {\n      return;\n    }\n    if (!path[index]) {\n      // If there's no path left, we've arrived at the object we care about.\n      list.push(arrayIndex !== undefined ? {\n        v: obj,\n        i: arrayIndex\n      } : obj);\n    } else {\n      const key = path[index];\n      const value = obj[key];\n      if (!isDefined(value)) {\n        return;\n      }\n\n      // If we're at the last value in the path, and if it's a string/number/bool,\n      // add it to the list\n      if (index === path.length - 1 && (isString(value) || isNumber(value) || isBoolean(value) || typeof value === 'bigint')) {\n        list.push(arrayIndex !== undefined ? {\n          v: toString(value),\n          i: arrayIndex\n        } : toString(value));\n      } else if (isArray(value)) {\n        arr = true;\n        // Search each item in the array.\n        for (let i = 0, len = value.length; i < len; i += 1) {\n          deepGet(value[i], path, index + 1, i);\n        }\n      } else if (path.length) {\n        // An object. Recurse further.\n        deepGet(value, path, index + 1, arrayIndex);\n      }\n    }\n  };\n\n  // Backwards compatibility (since path used to be a string)\n  deepGet(obj, isString(path) ? path.split('.') : path, 0);\n  return arr ? list : list[0];\n}\n\nconst MatchOptions = {\n  includeMatches: false,\n  findAllMatches: false,\n  minMatchCharLength: 1\n};\nconst BasicOptions = {\n  isCaseSensitive: false,\n  ignoreDiacritics: false,\n  includeScore: false,\n  keys: [],\n  shouldSort: true,\n  sortFn: (a, b) => a.score === b.score ? a.idx < b.idx ? -1 : 1 : a.score < b.score ? -1 : 1\n};\nconst FuzzyOptions = {\n  location: 0,\n  threshold: 0.6,\n  distance: 100\n};\nconst AdvancedOptions = {\n  useExtendedSearch: false,\n  useTokenSearch: false,\n  tokenize: undefined,\n  tokenMatch: 'any',\n  getFn: get,\n  ignoreLocation: false,\n  ignoreFieldNorm: false,\n  fieldNormWeight: 1\n};\nconst Config = Object.freeze({\n  ...BasicOptions,\n  ...MatchOptions,\n  ...FuzzyOptions,\n  ...AdvancedOptions\n});\n\n// Field-length norm: the shorter the field, the higher the weight.\n// Set to 3 decimals to reduce index size.\nfunction norm(weight = 1, mantissa = 3) {\n  const cache = new Map();\n  const m = Math.pow(10, mantissa);\n  return {\n    get(value) {\n      // Count words by counting space transitions — avoids allocating a regex match array\n      let numTokens = 1;\n      let inSpace = false;\n      for (let i = 0; i < value.length; i++) {\n        if (value.charCodeAt(i) === 32) {\n          if (!inSpace) {\n            numTokens++;\n            inSpace = true;\n          }\n        } else {\n          inSpace = false;\n        }\n      }\n      if (cache.has(numTokens)) {\n        return cache.get(numTokens);\n      }\n\n      // Default function is 1/sqrt(x), weight makes that variable\n      const n = Math.round(m / Math.pow(numTokens, 0.5 * weight)) / m;\n      cache.set(numTokens, n);\n      return n;\n    },\n    clear() {\n      cache.clear();\n    }\n  };\n}\n\nclass FuseIndex {\n  constructor({\n    getFn = Config.getFn,\n    fieldNormWeight = Config.fieldNormWeight\n  } = {}) {\n    this.norm = norm(fieldNormWeight, 3);\n    this.getFn = getFn;\n    this.isCreated = false;\n    this.docs = [];\n    this.keys = [];\n    this._keysMap = {};\n    this.setIndexRecords();\n  }\n  setSources(docs = []) {\n    this.docs = docs;\n  }\n  setIndexRecords(records = []) {\n    this.records = records;\n  }\n  setKeys(keys = []) {\n    this.keys = keys;\n    this._keysMap = {};\n    keys.forEach((key, idx) => {\n      this._keysMap[key.id] = idx;\n    });\n  }\n  create() {\n    if (this.isCreated || !this.docs.length) {\n      return;\n    }\n    this.isCreated = true;\n    const len = this.docs.length;\n    this.records = new Array(len);\n    let recordCount = 0;\n\n    // List is Array<String>\n    if (isString(this.docs[0])) {\n      for (let i = 0; i < len; i++) {\n        const record = this._createStringRecord(this.docs[i], i);\n        if (record) {\n          this.records[recordCount++] = record;\n        }\n      }\n    } else {\n      // List is Array<Object>\n      for (let i = 0; i < len; i++) {\n        this.records[recordCount++] = this._createObjectRecord(this.docs[i], i);\n      }\n    }\n    this.records.length = recordCount;\n    this.norm.clear();\n  }\n  // Appends a record for `doc` at `docIndex` (the doc's position in the source\n  // array). Returns the appended record, or null when `doc` is a blank string\n  // (those are skipped at record creation; see `_createStringRecord`). Callers\n  // use the return value to gate downstream bookkeeping like the inverted\n  // index, which must not be touched when no record was produced.\n  add(doc, docIndex) {\n    if (!Number.isInteger(docIndex) || docIndex < 0) {\n      throw new Error(INVALID_DOC_INDEX);\n    }\n    if (isString(doc)) {\n      const record = this._createStringRecord(doc, docIndex);\n      if (record) {\n        this.records.push(record);\n      }\n      return record;\n    }\n    const record = this._createObjectRecord(doc, docIndex);\n    this.records.push(record);\n    return record;\n  }\n  // Removes the record for the doc at the specified source-array (docs) index.\n  // Blank string docs have no record; callers may pass such an index and the\n  // splice is a no-op, but subsequent records still need their .i decremented\n  // to track the docs array that the caller is splicing in parallel.\n  removeAt(idx) {\n    if (!Number.isInteger(idx) || idx < 0) {\n      throw new Error(INVALID_DOC_INDEX);\n    }\n\n    // Find and remove the record at this doc-index, if one exists. Records are\n    // typically sorted by .i but the algorithm doesn't depend on it — parsed\n    // indexes via setIndexRecords may arrive in arbitrary order.\n    for (let i = 0, len = this.records.length; i < len; i += 1) {\n      if (this.records[i].i === idx) {\n        this.records.splice(i, 1);\n        break;\n      }\n    }\n\n    // Decrement every record whose source-array index is now stale.\n    for (let i = 0, len = this.records.length; i < len; i += 1) {\n      if (this.records[i].i > idx) {\n        this.records[i].i -= 1;\n      }\n    }\n  }\n  // Removes records for the docs at the specified source-array indices, then\n  // shifts every surviving record's .i down by the count of removed indices\n  // strictly less than it (mirrors removeAndShiftInvertedIndex's shift math).\n  // Invalid entries (non-integer, negative) in `indices` are dropped silently\n  // — removeAll's natural use case is \"caller passed a list of matched doc\n  // indices\"; asymmetric throw-vs-no-op would be more surprising than a clean\n  // filter.\n  removeAll(indices) {\n    const toRemove = new Set();\n    for (const v of indices) {\n      if (Number.isInteger(v) && v >= 0) {\n        toRemove.add(v);\n      }\n    }\n    if (toRemove.size === 0) {\n      return;\n    }\n    this.records = this.records.filter(r => !toRemove.has(r.i));\n    const sorted = Array.from(toRemove).sort((a, b) => a - b);\n    for (const record of this.records) {\n      // shift = count of removed indices strictly less than record.i\n      let lo = 0;\n      let hi = sorted.length;\n      while (lo < hi) {\n        const mid = lo + hi >>> 1;\n        if (sorted[mid] < record.i) lo = mid + 1;else hi = mid;\n      }\n      record.i -= lo;\n    }\n  }\n  getValueForItemAtKeyId(item, keyId) {\n    return item[this._keysMap[keyId]];\n  }\n  size() {\n    return this.records.length;\n  }\n  _createStringRecord(doc, docIndex) {\n    if (!isDefined(doc) || isBlank(doc)) {\n      return null;\n    }\n    return {\n      v: doc,\n      i: docIndex,\n      n: this.norm.get(doc)\n    };\n  }\n  _createObjectRecord(doc, docIndex) {\n    const record = {\n      i: docIndex,\n      $: {}\n    };\n\n    // Iterate over every key (i.e, path), and fetch the value at that key\n    for (let keyIndex = 0, keyLen = this.keys.length; keyIndex < keyLen; keyIndex++) {\n      const key = this.keys[keyIndex];\n      const value = key.getFn ? key.getFn(doc) : this.getFn(doc, key.path);\n      if (!isDefined(value)) {\n        continue;\n      }\n      if (isArray(value)) {\n        const subRecords = [];\n        for (let i = 0, len = value.length; i < len; i += 1) {\n          const item = value[i];\n          if (!isDefined(item)) {\n            continue;\n          }\n          if (isString(item)) {\n            // Custom getFn returning plain string array (backward compat)\n            if (!isBlank(item)) {\n              const subRecord = {\n                v: item,\n                i: i,\n                n: this.norm.get(item)\n              };\n              subRecords.push(subRecord);\n            }\n          } else if (isDefined(item.v)) {\n            // Default get() returns {v, i} objects with original array indices\n            const text = isString(item.v) ? item.v : toString(item.v);\n            if (!isBlank(text)) {\n              const subRecord = {\n                v: text,\n                i: item.i,\n                n: this.norm.get(text)\n              };\n              subRecords.push(subRecord);\n            }\n          }\n        }\n        record.$[keyIndex] = subRecords;\n      } else if (isString(value) && !isBlank(value)) {\n        const subRecord = {\n          v: value,\n          n: this.norm.get(value)\n        };\n        record.$[keyIndex] = subRecord;\n      }\n    }\n    return record;\n  }\n  toJSON() {\n    return {\n      // eslint-disable-next-line @typescript-eslint/no-unused-vars\n      keys: this.keys.map(({\n        getFn,\n        ...key\n      }) => key),\n      records: this.records\n    };\n  }\n}\nfunction createIndex(keys, docs, {\n  getFn = Config.getFn,\n  fieldNormWeight = Config.fieldNormWeight\n} = {}) {\n  const myIndex = new FuseIndex({\n    getFn,\n    fieldNormWeight\n  });\n  myIndex.setKeys(keys.map(createKey));\n  myIndex.setSources(docs);\n  myIndex.create();\n  return myIndex;\n}\nfunction parseIndex(data, {\n  getFn = Config.getFn,\n  fieldNormWeight = Config.fieldNormWeight\n} = {}) {\n  const {\n    keys,\n    records\n  } = data;\n  const myIndex = new FuseIndex({\n    getFn,\n    fieldNormWeight\n  });\n  myIndex.setKeys(keys);\n  myIndex.setIndexRecords(records);\n  return myIndex;\n}\n\nfunction convertMaskToIndices(matchmask = [], minMatchCharLength = Config.minMatchCharLength) {\n  const indices = [];\n  let start = -1;\n  let end = -1;\n  let i = 0;\n  for (let len = matchmask.length; i < len; i += 1) {\n    const match = matchmask[i];\n    if (match && start === -1) {\n      start = i;\n    } else if (!match && start !== -1) {\n      end = i - 1;\n      if (end - start + 1 >= minMatchCharLength) {\n        indices.push([start, end]);\n      }\n      start = -1;\n    }\n  }\n\n  // (i-1 - start) + 1 => i - start\n  if (matchmask[i - 1] && i - start >= minMatchCharLength) {\n    indices.push([start, i - 1]);\n  }\n  return indices;\n}\n\n// Machine word size\nconst MAX_BITS = 32;\n\nfunction search(text, pattern, patternAlphabet, {\n  location = Config.location,\n  distance = Config.distance,\n  threshold = Config.threshold,\n  findAllMatches = Config.findAllMatches,\n  minMatchCharLength = Config.minMatchCharLength,\n  includeMatches = Config.includeMatches,\n  ignoreLocation = Config.ignoreLocation\n} = {}) {\n  if (pattern.length > MAX_BITS) {\n    throw new Error(PATTERN_LENGTH_TOO_LARGE(MAX_BITS));\n  }\n  const patternLen = pattern.length;\n  // Set starting location at beginning text and initialize the alphabet.\n  const textLen = text.length;\n  // Handle the case when location > text.length\n  const expectedLocation = Math.max(0, Math.min(location, textLen));\n  // Highest score beyond which we give up.\n  let currentThreshold = threshold;\n  // Is there a nearby exact match? (speedup)\n  let bestLocation = expectedLocation;\n\n  // Inlined score computation — avoids object allocation per call in hot loops.\n  // See ./computeScore.ts for the documented version of this formula.\n  const calcScore = (errors, currentLocation) => {\n    const accuracy = errors / patternLen;\n    if (ignoreLocation) return accuracy;\n    const proximity = Math.abs(expectedLocation - currentLocation);\n    if (!distance) return proximity ? 1.0 : accuracy;\n    return accuracy + proximity / distance;\n  };\n\n  // Performance: only computer matches when the minMatchCharLength > 1\n  // OR if `includeMatches` is true.\n  const computeMatches = minMatchCharLength > 1 || includeMatches;\n  // A mask of the matches, used for building the indices\n  const matchMask = computeMatches ? Array(textLen) : [];\n  let index;\n\n  // Get all exact matches, here for speed up\n  while ((index = text.indexOf(pattern, bestLocation)) > -1) {\n    const score = calcScore(0, index);\n    currentThreshold = Math.min(score, currentThreshold);\n    bestLocation = index + patternLen;\n    if (computeMatches) {\n      let i = 0;\n      while (i < patternLen) {\n        matchMask[index + i] = 1;\n        i += 1;\n      }\n    }\n  }\n\n  // Reset the best location\n  bestLocation = -1;\n  let lastBitArr = [];\n  let finalScore = 1;\n  let bestErrors = 0;\n  let binMax = patternLen + textLen;\n  const mask = 1 << patternLen - 1;\n  for (let i = 0; i < patternLen; i += 1) {\n    // Scan for the best match; each iteration allows for one more error.\n    // Run a binary search to determine how far from the match location we can stray\n    // at this error level.\n    let binMin = 0;\n    let binMid = binMax;\n    while (binMin < binMid) {\n      const score = calcScore(i, expectedLocation + binMid);\n      if (score <= currentThreshold) {\n        binMin = binMid;\n      } else {\n        binMax = binMid;\n      }\n      binMid = Math.floor((binMax - binMin) / 2 + binMin);\n    }\n\n    // Use the result from this iteration as the maximum for the next.\n    binMax = binMid;\n    let start = Math.max(1, expectedLocation - binMid + 1);\n    const finish = findAllMatches ? textLen : Math.min(expectedLocation + binMid, textLen) + patternLen;\n\n    // Initialize the bit array\n    const bitArr = Array(finish + 2);\n    bitArr[finish + 1] = (1 << i) - 1;\n    for (let j = finish; j >= start; j -= 1) {\n      const currentLocation = j - 1;\n      const charMatch = patternAlphabet[text[currentLocation]];\n\n      // First pass: exact match\n      bitArr[j] = (bitArr[j + 1] << 1 | 1) & charMatch;\n\n      // Subsequent passes: fuzzy match\n      if (i) {\n        bitArr[j] |= (lastBitArr[j + 1] | lastBitArr[j]) << 1 | 1 | lastBitArr[j + 1];\n      }\n      if (bitArr[j] & mask) {\n        finalScore = calcScore(i, currentLocation);\n\n        // This match will almost certainly be better than any existing match.\n        // But check anyway.\n        if (finalScore <= currentThreshold) {\n          // Indeed it is\n          currentThreshold = finalScore;\n          bestLocation = currentLocation;\n          bestErrors = i;\n\n          // Already passed `loc`, downhill from here on in.\n          if (bestLocation <= expectedLocation) {\n            break;\n          }\n\n          // When passing `bestLocation`, don't exceed our current distance from `expectedLocation`.\n          start = Math.max(1, 2 * expectedLocation - bestLocation);\n        }\n      }\n    }\n\n    // No hope for a (better) match at greater error levels.\n    const score = calcScore(i + 1, expectedLocation);\n    if (score > currentThreshold) {\n      break;\n    }\n    lastBitArr = bitArr;\n  }\n\n  // Fill matchMask across the matched window only. Bitap anchors a match at\n  // bestLocation (the start), spanning patternLen characters plus up to\n  // bestErrors extra characters when errors are text-side insertions. Marking\n  // alphabet positions in that window keeps the highlight indices honest about\n  // what actually matched, instead of every pattern-alphabet character the\n  // scan happened to visit.\n  if (computeMatches && bestLocation >= 0) {\n    const matchEnd = Math.min(textLen - 1, bestLocation + patternLen - 1 + bestErrors);\n    for (let k = bestLocation; k <= matchEnd; k += 1) {\n      if (patternAlphabet[text[k]]) {\n        matchMask[k] = 1;\n      }\n    }\n  }\n  const result = {\n    isMatch: bestLocation >= 0,\n    // Count exact matches (those with a score of 0) to be \"almost\" exact\n    score: Math.max(0.001, finalScore)\n  };\n  if (computeMatches) {\n    const indices = convertMaskToIndices(matchMask, minMatchCharLength);\n    if (!indices.length) {\n      result.isMatch = false;\n    } else if (includeMatches) {\n      result.indices = indices;\n    }\n  }\n  return result;\n}\n\nfunction createPatternAlphabet(pattern) {\n  const mask = {};\n  for (let i = 0, len = pattern.length; i < len; i += 1) {\n    const char = pattern.charAt(i);\n    mask[char] = (mask[char] || 0) | 1 << len - i - 1;\n  }\n  return mask;\n}\n\nfunction mergeIndices(indices) {\n  if (indices.length <= 1) return indices;\n  indices.sort((a, b) => a[0] - b[0] || a[1] - b[1]);\n  const merged = [indices[0]];\n  for (let i = 1, len = indices.length; i < len; i += 1) {\n    const last = merged[merged.length - 1];\n    const curr = indices[i];\n    if (curr[0] <= last[1] + 1) {\n      last[1] = Math.max(last[1], curr[1]);\n    } else {\n      merged.push(curr);\n    }\n  }\n  return merged;\n}\n\n// Characters that survive NFD normalization unchanged and need explicit mapping\nconst NON_DECOMPOSABLE_MAP = {\n  '\\u0142': 'l',\n  // ł\n  '\\u0141': 'L',\n  // Ł\n  '\\u0111': 'd',\n  // đ\n  '\\u0110': 'D',\n  // Đ\n  '\\u00F8': 'o',\n  // ø\n  '\\u00D8': 'O',\n  // Ø\n  '\\u0127': 'h',\n  // ħ\n  '\\u0126': 'H',\n  // Ħ\n  '\\u0167': 't',\n  // ŧ\n  '\\u0166': 'T',\n  // Ŧ\n  '\\u0131': 'i',\n  // ı\n  '\\u00DF': 'ss' // ß\n};\nconst NON_DECOMPOSABLE_RE = new RegExp('[' + Object.keys(NON_DECOMPOSABLE_MAP).join('') + ']', 'g');\nconst stripDiacritics = typeof String.prototype.normalize === 'function' ? str => str.normalize('NFD').replace(/[\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u07FD\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08D3-\\u08E1\\u08E3-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u09FE\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0AFA-\\u0AFF\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C04\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0D00-\\u0D03\\u0D3B\\u0D3C\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D82\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180D\\u1885\\u1886\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ABE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF2-\\u1CF4\\u1CF7-\\u1CF9\\u1DC0-\\u1DF9\\u1DFB-\\u1DFF\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA880\\uA881\\uA8B4-\\uA8C5\\uA8E0-\\uA8F1\\uA8FF\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F]/g, '').replace(NON_DECOMPOSABLE_RE, ch => NON_DECOMPOSABLE_MAP[ch]) : str => str;\n\nclass BitapSearch {\n  constructor(pattern, {\n    location = Config.location,\n    threshold = Config.threshold,\n    distance = Config.distance,\n    includeMatches = Config.includeMatches,\n    findAllMatches = Config.findAllMatches,\n    minMatchCharLength = Config.minMatchCharLength,\n    isCaseSensitive = Config.isCaseSensitive,\n    ignoreDiacritics = Config.ignoreDiacritics,\n    ignoreLocation = Config.ignoreLocation\n  } = {}) {\n    this.options = {\n      location,\n      threshold,\n      distance,\n      includeMatches,\n      findAllMatches,\n      minMatchCharLength,\n      isCaseSensitive,\n      ignoreDiacritics,\n      ignoreLocation\n    };\n    pattern = isCaseSensitive ? pattern : pattern.toLowerCase();\n    pattern = ignoreDiacritics ? stripDiacritics(pattern) : pattern;\n    this.pattern = pattern;\n    this.chunks = [];\n    if (!this.pattern.length) {\n      return;\n    }\n    const addChunk = (pattern, startIndex) => {\n      this.chunks.push({\n        pattern,\n        alphabet: createPatternAlphabet(pattern),\n        startIndex\n      });\n    };\n    const len = this.pattern.length;\n    if (len > MAX_BITS) {\n      let i = 0;\n      const remainder = len % MAX_BITS;\n      const end = len - remainder;\n      while (i < end) {\n        addChunk(this.pattern.substr(i, MAX_BITS), i);\n        i += MAX_BITS;\n      }\n      if (remainder) {\n        const startIndex = len - MAX_BITS;\n        addChunk(this.pattern.substr(startIndex), startIndex);\n      }\n    } else {\n      addChunk(this.pattern, 0);\n    }\n  }\n  searchIn(text) {\n    const {\n      isCaseSensitive,\n      ignoreDiacritics,\n      includeMatches\n    } = this.options;\n    text = isCaseSensitive ? text : text.toLowerCase();\n    text = ignoreDiacritics ? stripDiacritics(text) : text;\n\n    // Exact match\n    if (this.pattern === text) {\n      const result = {\n        isMatch: true,\n        score: 0\n      };\n      if (includeMatches) {\n        result.indices = [[0, text.length - 1]];\n      }\n      return result;\n    }\n\n    // Otherwise, use Bitap algorithm\n    const {\n      location,\n      distance,\n      threshold,\n      findAllMatches,\n      minMatchCharLength,\n      ignoreLocation\n    } = this.options;\n    const allIndices = [];\n    let totalScore = 0;\n    let hasMatches = false;\n    this.chunks.forEach(({\n      pattern,\n      alphabet,\n      startIndex\n    }) => {\n      const {\n        isMatch,\n        score,\n        indices\n      } = search(text, pattern, alphabet, {\n        location: location + startIndex,\n        distance,\n        threshold,\n        findAllMatches,\n        minMatchCharLength,\n        includeMatches,\n        ignoreLocation\n      });\n      if (isMatch) {\n        hasMatches = true;\n      }\n      totalScore += score;\n      if (isMatch && indices) {\n        allIndices.push(...indices);\n      }\n    });\n    const result = {\n      isMatch: hasMatches,\n      score: hasMatches ? totalScore / this.chunks.length : 1\n    };\n    if (hasMatches && includeMatches) {\n      result.indices = mergeIndices(allIndices);\n    }\n    return result;\n  }\n}\n\n// ── Matcher interface ─────────────────────────────────────────────\n//\n// Each matcher is a lightweight object with a type tag and a search\n// function. No class hierarchy needed — the search logic for most\n// matchers is a one-liner.\n\n// ── Matcher definition ────────────────────────────────────────────\n//\n// A definition pairs the detection regexes (used by parseQuery to\n// recognize string-syntax operators like ^, =, !) with a factory\n// that creates a Matcher instance.\n\n// Whether a matcher type can return multiple index ranges\nconst MULTI_MATCH_TYPES = new Set(['fuzzy', 'include']);\n\n// Whether a matcher type is an inverse match\nfunction isInverse(type) {\n  return type.startsWith('inverse');\n}\n\n// ── Matcher definitions ───────────────────────────────────────────\n//\n// Order matters — parseQuery tries each in sequence and uses the\n// first match. FuzzyMatch (catch-all) must be last.\n\n// prettier-ignore\nconst matchers = [\n// =term — exact match\n{\n  type: 'exact',\n  multiRegex: /^=\"(.*)\"$/,\n  singleRegex: /^=(.*)$/,\n  create: pattern => ({\n    type: 'exact',\n    search(text) {\n      const isMatch = text === pattern;\n      return {\n        isMatch,\n        score: isMatch ? 0 : 1,\n        indices: [0, pattern.length - 1]\n      };\n    }\n  })\n},\n// 'term — include (substring) match\n{\n  type: 'include',\n  multiRegex: /^'\"(.*)\"$/,\n  singleRegex: /^'(.*)$/,\n  create: pattern => ({\n    type: 'include',\n    search(text) {\n      let location = 0;\n      let index;\n      const indices = [];\n      const patternLen = pattern.length;\n      while ((index = text.indexOf(pattern, location)) > -1) {\n        location = index + patternLen;\n        indices.push([index, location - 1]);\n      }\n      const isMatch = !!indices.length;\n      return {\n        isMatch,\n        score: isMatch ? 0 : 1,\n        indices\n      };\n    }\n  })\n},\n// ^term — prefix match\n{\n  type: 'prefix-exact',\n  multiRegex: /^\\^\"(.*)\"$/,\n  singleRegex: /^\\^(.*)$/,\n  create: pattern => ({\n    type: 'prefix-exact',\n    search(text) {\n      const isMatch = text.startsWith(pattern);\n      return {\n        isMatch,\n        score: isMatch ? 0 : 1,\n        indices: [0, pattern.length - 1]\n      };\n    }\n  })\n},\n// !^term — inverse prefix match\n{\n  type: 'inverse-prefix-exact',\n  multiRegex: /^!\\^\"(.*)\"$/,\n  singleRegex: /^!\\^(.*)$/,\n  create: pattern => ({\n    type: 'inverse-prefix-exact',\n    search(text) {\n      const isMatch = !text.startsWith(pattern);\n      return {\n        isMatch,\n        score: isMatch ? 0 : 1,\n        indices: [0, text.length - 1]\n      };\n    }\n  })\n},\n// !term$ — inverse suffix match\n{\n  type: 'inverse-suffix-exact',\n  multiRegex: /^!\"(.*)\"\\$$/,\n  singleRegex: /^!(.*)\\$$/,\n  create: pattern => ({\n    type: 'inverse-suffix-exact',\n    search(text) {\n      const isMatch = !text.endsWith(pattern);\n      return {\n        isMatch,\n        score: isMatch ? 0 : 1,\n        indices: [0, text.length - 1]\n      };\n    }\n  })\n},\n// term$ — suffix match\n{\n  type: 'suffix-exact',\n  multiRegex: /^\"(.*)\"\\$$/,\n  singleRegex: /^(.*)\\$$/,\n  create: pattern => ({\n    type: 'suffix-exact',\n    search(text) {\n      const isMatch = text.endsWith(pattern);\n      return {\n        isMatch,\n        score: isMatch ? 0 : 1,\n        indices: [text.length - pattern.length, text.length - 1]\n      };\n    }\n  })\n},\n// !term — inverse exact (does not contain)\n{\n  type: 'inverse-exact',\n  multiRegex: /^!\"(.*)\"$/,\n  singleRegex: /^!(.*)$/,\n  create: pattern => ({\n    type: 'inverse-exact',\n    search(text) {\n      const isMatch = text.indexOf(pattern) === -1;\n      return {\n        isMatch,\n        score: isMatch ? 0 : 1,\n        indices: [0, text.length - 1]\n      };\n    }\n  })\n},\n// term — fuzzy match (catch-all, must be last)\n{\n  type: 'fuzzy',\n  multiRegex: /^\"(.*)\"$/,\n  singleRegex: /^(.*)$/,\n  create: (pattern, options = {}) => {\n    const bitap = new BitapSearch(pattern, {\n      location: options.location ?? Config.location,\n      threshold: options.threshold ?? Config.threshold,\n      distance: options.distance ?? Config.distance,\n      includeMatches: options.includeMatches ?? Config.includeMatches,\n      findAllMatches: options.findAllMatches ?? Config.findAllMatches,\n      minMatchCharLength: options.minMatchCharLength ?? Config.minMatchCharLength,\n      isCaseSensitive: options.isCaseSensitive ?? Config.isCaseSensitive,\n      ignoreDiacritics: options.ignoreDiacritics ?? Config.ignoreDiacritics,\n      ignoreLocation: options.ignoreLocation ?? Config.ignoreLocation\n    });\n    return {\n      type: 'fuzzy',\n      search(text) {\n        return bitap.searchIn(text);\n      }\n    };\n  }\n}];\n\nconst matchersLen = matchers.length;\nconst ESCAPED_PIPE = '\\u0000'; // placeholder for escaped \\|\nconst OR_TOKEN = '|';\n\n// Tokenize a query string into individual search terms.\n// Respects multi-match quoted tokens like =\"said \"test\"\" or ^\"hello world\"$\n// where inner spaces and quotes are part of the token.\nfunction tokenize(pattern) {\n  const tokens = [];\n  const len = pattern.length;\n  let i = 0;\n  while (i < len) {\n    // Skip spaces\n    while (i < len && pattern[i] === ' ') i++;\n    if (i >= len) break;\n\n    // Scan past prefix characters (=, !, ^, ') to see if a quote follows\n    let j = i;\n    while (j < len && pattern[j] !== ' ' && pattern[j] !== '\"') j++;\n    if (j < len && pattern[j] === '\"') {\n      // Multi-match token: prefix + \"content\" (possibly with inner quotes)\n      // Find the closing \" that ends this token:\n      // it must be followed by optional $, then space or end-of-string\n      j++; // skip opening quote\n      while (j < len) {\n        if (pattern[j] === '\"') {\n          // Check if this is the closing quote\n          const next = j + 1;\n          if (next >= len || pattern[next] === ' ') {\n            j++; // include closing quote\n            break;\n          }\n          if (pattern[next] === '$' && (next + 1 >= len || pattern[next + 1] === ' ')) {\n            j += 2; // include \"$\n            break;\n          }\n        }\n        j++;\n      }\n      tokens.push(pattern.substring(i, j));\n      i = j;\n    } else {\n      // Regular (unquoted) token: read until space or end\n      while (j < len && pattern[j] !== ' ') j++;\n      tokens.push(pattern.substring(i, j));\n      i = j;\n    }\n  }\n  return tokens;\n}\nfunction getMatch(pattern, exp) {\n  const matches = pattern.match(exp);\n  return matches ? matches[1] : null;\n}\n\n// Return a 2D array representation of the query, for simpler parsing.\n// Example:\n// \"^core go$ | rb$ | py$ xy$\" => [[\"^core\", \"go$\"], [\"rb$\"], [\"py$\", \"xy$\"]]\nfunction parseQuery(pattern, options = {}) {\n  // Replace escaped \\| with placeholder before splitting on |\n  const escaped = pattern.replace(/\\\\\\|/g, ESCAPED_PIPE);\n  return escaped.split(OR_TOKEN).map(item => {\n    // Restore escaped pipes in each OR group\n    const restored = item.replace(/\\u0000/g, '|');\n    const query = tokenize(restored.trim()).filter(item => item && !!item.trim());\n    const results = [];\n    for (let i = 0, len = query.length; i < len; i += 1) {\n      const queryItem = query[i];\n\n      // 1. Handle multiple query match (i.e, ones that are quoted, like `\"hello world\"`)\n      let found = false;\n      let idx = -1;\n      while (!found && ++idx < matchersLen) {\n        const def = matchers[idx];\n        const token = getMatch(queryItem, def.multiRegex);\n        if (token) {\n          results.push(def.create(token, options));\n          found = true;\n        }\n      }\n      if (found) {\n        continue;\n      }\n\n      // 2. Handle single query matches (i.e, ones that are *not* quoted)\n      idx = -1;\n      while (++idx < matchersLen) {\n        const def = matchers[idx];\n        const token = getMatch(queryItem, def.singleRegex);\n        if (token) {\n          results.push(def.create(token, options));\n          break;\n        }\n      }\n    }\n    return results;\n  });\n}\n\nclass ExtendedSearch {\n  constructor(pattern, {\n    isCaseSensitive = Config.isCaseSensitive,\n    ignoreDiacritics = Config.ignoreDiacritics,\n    includeMatches = Config.includeMatches,\n    minMatchCharLength = Config.minMatchCharLength,\n    ignoreLocation = Config.ignoreLocation,\n    findAllMatches = Config.findAllMatches,\n    location = Config.location,\n    threshold = Config.threshold,\n    distance = Config.distance\n  } = {}) {\n    this.query = null;\n    this.options = {\n      isCaseSensitive,\n      ignoreDiacritics,\n      includeMatches,\n      minMatchCharLength,\n      findAllMatches,\n      ignoreLocation,\n      location,\n      threshold,\n      distance\n    };\n    pattern = isCaseSensitive ? pattern : pattern.toLowerCase();\n    pattern = ignoreDiacritics ? stripDiacritics(pattern) : pattern;\n    this.pattern = pattern;\n    this.query = parseQuery(this.pattern, this.options);\n  }\n  static condition(_, options) {\n    return options.useExtendedSearch;\n  }\n\n  // Note: searchIn operates on a single text value and sets hasInverse on the\n  // result when inverse patterns are involved. _searchObjectList uses this to\n  // switch from \"ANY key\" to \"ALL keys\" aggregation. See #712.\n  searchIn(text) {\n    const query = this.query;\n    if (!query) {\n      return {\n        isMatch: false,\n        score: 1\n      };\n    }\n    const {\n      includeMatches,\n      isCaseSensitive,\n      ignoreDiacritics\n    } = this.options;\n    text = isCaseSensitive ? text : text.toLowerCase();\n    text = ignoreDiacritics ? stripDiacritics(text) : text;\n    let numMatches = 0;\n    const allIndices = [];\n    let totalScore = 0;\n    let hasInverse = false;\n\n    // ORs\n    for (let i = 0, qLen = query.length; i < qLen; i += 1) {\n      const searchers = query[i];\n\n      // Reset indices\n      allIndices.length = 0;\n      numMatches = 0;\n      hasInverse = false;\n\n      // ANDs\n      for (let j = 0, pLen = searchers.length; j < pLen; j += 1) {\n        const matcher = searchers[j];\n        const {\n          isMatch,\n          indices,\n          score\n        } = matcher.search(text);\n        if (isMatch) {\n          numMatches += 1;\n          totalScore += score;\n          if (isInverse(matcher.type)) {\n            hasInverse = true;\n          }\n          if (includeMatches) {\n            if (MULTI_MATCH_TYPES.has(matcher.type)) {\n              allIndices.push(...indices);\n            } else {\n              allIndices.push(indices);\n            }\n          }\n        } else {\n          totalScore = 0;\n          numMatches = 0;\n          allIndices.length = 0;\n          hasInverse = false;\n          break;\n        }\n      }\n\n      // OR condition, so if TRUE, return\n      if (numMatches) {\n        const result = {\n          isMatch: true,\n          score: totalScore / numMatches\n        };\n        if (hasInverse) {\n          result.hasInverse = true;\n        }\n        if (includeMatches) {\n          result.indices = mergeIndices(allIndices);\n        }\n        return result;\n      }\n    }\n\n    // Nothing was matched\n    return {\n      isMatch: false,\n      score: 1\n    };\n  }\n}\n\nconst registeredSearchers = [];\nfunction register(...args) {\n  registeredSearchers.push(...args);\n}\nfunction createSearcher(pattern, options) {\n  for (let i = 0, len = registeredSearchers.length; i < len; i += 1) {\n    const searcherClass = registeredSearchers[i];\n    if (searcherClass.condition(pattern, options)) {\n      return new searcherClass(pattern, options);\n    }\n  }\n  return new BitapSearch(pattern, options);\n}\n\nconst LogicalOperator = {\n  AND: '$and',\n  OR: '$or'\n};\nconst KeyType = {\n  PATH: '$path',\n  PATTERN: '$val'\n};\nconst isExpression = query => !!(query[LogicalOperator.AND] || query[LogicalOperator.OR]);\nconst isPath = query => !!query[KeyType.PATH];\nconst isLeaf = query => !isArray(query) && isObject(query) && !isExpression(query);\nconst convertToExplicit = query => ({\n  [LogicalOperator.AND]: Object.keys(query).map(key => ({\n    [key]: query[key]\n  }))\n});\n\n// When `auto` is `true`, the parse function will infer and initialize and add\n// the appropriate `Searcher` instance\nfunction parse(query, options, {\n  auto = true\n} = {}) {\n  const next = query => {\n    // Keyless string entry: search across all keys\n    if (isString(query)) {\n      const obj = {\n        keyId: null,\n        pattern: query\n      };\n      if (auto) {\n        obj.searcher = createSearcher(query, options);\n      }\n      return obj;\n    }\n    const keys = Object.keys(query);\n    const isQueryPath = isPath(query);\n    if (!isQueryPath && keys.length > 1 && !isExpression(query)) {\n      return next(convertToExplicit(query));\n    }\n    if (isLeaf(query)) {\n      const key = isQueryPath ? query[KeyType.PATH] : keys[0];\n      const pattern = isQueryPath ? query[KeyType.PATTERN] : query[key];\n      if (!isString(pattern)) {\n        throw new Error(LOGICAL_SEARCH_INVALID_QUERY_FOR_KEY(key));\n      }\n      const obj = {\n        keyId: createKeyId(key),\n        pattern\n      };\n      if (auto) {\n        obj.searcher = createSearcher(pattern, options);\n      }\n      return obj;\n    }\n    const node = {\n      children: [],\n      operator: keys[0]\n    };\n    keys.forEach(key => {\n      const value = query[key];\n      if (isArray(value)) {\n        value.forEach(item => {\n          node.children.push(next(item));\n        });\n      }\n    });\n    return node;\n  };\n  if (!isExpression(query)) {\n    query = convertToExplicit(query);\n  }\n  return next(query);\n}\n\nfunction computeScoreSingle(matches, {\n  ignoreFieldNorm = Config.ignoreFieldNorm\n}) {\n  let totalScore = 1;\n  matches.forEach(({\n    key,\n    norm,\n    score\n  }) => {\n    const weight = key ? key.weight : null;\n    totalScore *= Math.pow(score === 0 && weight ? Number.EPSILON : score, (weight || 1) * (ignoreFieldNorm ? 1 : norm));\n  });\n  return totalScore;\n}\nfunction computeScore(results, {\n  ignoreFieldNorm = Config.ignoreFieldNorm\n}) {\n  results.forEach(result => {\n    result.score = computeScoreSingle(result.matches, {\n      ignoreFieldNorm\n    });\n  });\n}\n\n// Max-heap by score: keeps the worst (highest) score at the top\n// so we can efficiently evict it when a better result arrives.\nclass MaxHeap {\n  constructor(limit) {\n    this.limit = limit;\n    this.heap = [];\n  }\n  get size() {\n    return this.heap.length;\n  }\n  shouldInsert(score) {\n    return this.size < this.limit || score < this.heap[0].score;\n  }\n  insert(item) {\n    if (this.size < this.limit) {\n      this.heap.push(item);\n      this._bubbleUp(this.size - 1);\n    } else if (item.score < this.heap[0].score) {\n      this.heap[0] = item;\n      this._sinkDown(0);\n    }\n  }\n  extractSorted(sortFn) {\n    return this.heap.sort(sortFn);\n  }\n  _bubbleUp(i) {\n    const heap = this.heap;\n    while (i > 0) {\n      const parent = i - 1 >> 1;\n      if (heap[i].score <= heap[parent].score) break;\n      const tmp = heap[i];\n      heap[i] = heap[parent];\n      heap[parent] = tmp;\n      i = parent;\n    }\n  }\n  _sinkDown(i) {\n    const heap = this.heap;\n    const len = heap.length;\n    let largest = i;\n    do {\n      i = largest;\n      const left = 2 * i + 1;\n      const right = 2 * i + 2;\n      if (left < len && heap[left].score > heap[largest].score) {\n        largest = left;\n      }\n      if (right < len && heap[right].score > heap[largest].score) {\n        largest = right;\n      }\n      if (largest !== i) {\n        const tmp = heap[i];\n        heap[i] = heap[largest];\n        heap[largest] = tmp;\n      }\n    } while (largest !== i);\n  }\n}\n\nfunction formatMatches(result) {\n  const matches = [];\n  result.matches.forEach(match => {\n    if (!isDefined(match.indices) || !match.indices.length) {\n      return;\n    }\n    const obj = {\n      indices: match.indices,\n      value: match.value\n    };\n    if (match.key) {\n      // `key.id` is the canonical dotted-string identity (array paths joined\n      // with '.'); `key.src` is the raw user input and can be a string[].\n      obj.key = match.key.id;\n    }\n    if (match.idx > -1) {\n      obj.refIndex = match.idx;\n    }\n    matches.push(obj);\n  });\n  return matches;\n}\n\nfunction format(results, docs, {\n  includeMatches = Config.includeMatches,\n  includeScore = Config.includeScore\n} = {}) {\n  return results.map(result => {\n    const {\n      idx\n    } = result;\n    const data = {\n      item: docs[idx],\n      refIndex: idx\n    };\n    if (includeMatches) data.matches = formatMatches(result);\n    if (includeScore) data.score = result.score;\n    return data;\n  });\n}\n\n// Includes \\p{M} (Mark) so combining marks stay attached to their base\n// letter — without it, scripts like Devanagari and NFD-normalized Latin\n// shatter (e.g. 'हिन्दी' → ['ह','न','द'], 'café'.normalize('NFD') → ['cafe']).\nconst DEFAULT_TOKEN = /[\\p{L}\\p{M}\\p{N}_]+/gu;\nconst warned = new WeakSet();\nfunction warnNonGlobal(regex) {\n  if (!warned.has(regex)) {\n    warned.add(regex);\n    console.warn(`[Fuse] tokenize regex ${regex} lacks the global flag; only the ` + `first match per text will be returned. Add the 'g' flag.`);\n  }\n}\nfunction resolveTokenize(tokenize) {\n  if (typeof tokenize === 'function') {\n    let validated = false;\n    return text => {\n      const result = tokenize(text);\n      if (!validated) {\n        validated = true;\n        if (!Array.isArray(result) || result.some(t => typeof t !== 'string')) {\n          throw new Error(`[Fuse] tokenize function must return string[]; received ${Array.isArray(result) ? 'array containing non-strings' : typeof result}.`);\n        }\n      }\n      return result;\n    };\n  }\n  if (tokenize instanceof RegExp) {\n    if (!tokenize.global) warnNonGlobal(tokenize);\n    return text => text.match(tokenize) || [];\n  }\n  return text => text.match(DEFAULT_TOKEN) || [];\n}\nfunction createAnalyzer({\n  isCaseSensitive = false,\n  ignoreDiacritics = false,\n  tokenize\n} = {}) {\n  const tokenizeFn = resolveTokenize(tokenize);\n  return {\n    tokenize(text) {\n      if (!isCaseSensitive) {\n        text = text.toLowerCase();\n      }\n      if (ignoreDiacritics) {\n        text = stripDiacritics(text);\n      }\n      return tokenizeFn(text);\n    }\n  };\n}\n\n// `tokenMatch: 'all'` packs per-term coverage into a bitmask. JS bitwise ops\n// are 32-bit *signed*, so bit 31 is the sign bit — only bits 0..30 are safe.\n// Queries with more than this many terms fall back to a Set (no bit limit).\nconst MAX_MASK_TERMS = 31;\nclass TokenSearch {\n  // `tokenMatch: 'all'` (AND) coverage. When true, searchIn reports which\n  // query terms matched each text so the core loop can require record-level\n  // coverage of every term. Bitmask is the ≤31-term fast path; Set is the\n  // ≥32-term fallback (JS bitwise ops are 32-bit signed).\n\n  static condition(_, options) {\n    return options.useTokenSearch;\n  }\n  constructor(pattern, options) {\n    this.options = options;\n    this.analyzer = createAnalyzer({\n      isCaseSensitive: options.isCaseSensitive,\n      ignoreDiacritics: options.ignoreDiacritics,\n      tokenize: options.tokenize\n    });\n    const queryTerms = this.analyzer.tokenize(pattern);\n    const invertedIndex = options._invertedIndex;\n    const {\n      df,\n      fieldCount\n    } = invertedIndex;\n    this.termSearchers = [];\n    this.idfWeights = [];\n    for (const term of queryTerms) {\n      this.termSearchers.push(new BitapSearch(term, {\n        location: options.location,\n        threshold: options.threshold,\n        distance: options.distance,\n        includeMatches: options.includeMatches,\n        findAllMatches: options.findAllMatches,\n        minMatchCharLength: options.minMatchCharLength,\n        isCaseSensitive: options.isCaseSensitive,\n        ignoreDiacritics: options.ignoreDiacritics,\n        ignoreLocation: true\n      }));\n      const docFreq = df.get(term) || 0;\n      const idf = Math.log(1 + (fieldCount - docFreq + 0.5) / (docFreq + 0.5));\n      this.idfWeights.push(idf);\n    }\n    this.combineAll = options.tokenMatch === 'all';\n    this.numTerms = this.termSearchers.length;\n    this.useMask = this.numTerms <= MAX_MASK_TERMS;\n  }\n  searchIn(text) {\n    if (!this.termSearchers.length) {\n      return {\n        isMatch: false,\n        score: 1\n      };\n    }\n    const allIndices = [];\n    let weightedScore = 0;\n    let maxPossibleScore = 0;\n    let matchedCount = 0;\n\n    // `tokenMatch: 'all'` coverage for this text (untouched in the default\n    // 'any' path, so it allocates nothing there).\n    let matchedMask = 0;\n    const matchedTerms = this.combineAll && !this.useMask ? new Set() : null;\n    for (let i = 0; i < this.termSearchers.length; i++) {\n      const result = this.termSearchers[i].searchIn(text);\n      const idf = this.idfWeights[i];\n      maxPossibleScore += idf;\n      if (result.isMatch) {\n        matchedCount++;\n        weightedScore += idf * (1 - result.score);\n        if (result.indices) {\n          allIndices.push(...result.indices);\n        }\n        if (this.combineAll) {\n          if (this.useMask) {\n            matchedMask |= 1 << i;\n          } else {\n            matchedTerms.add(i);\n          }\n        }\n      }\n    }\n    if (matchedCount === 0) {\n      return {\n        isMatch: false,\n        score: 1\n      };\n    }\n    const normalized = maxPossibleScore > 0 ? 1 - weightedScore / maxPossibleScore : 0;\n    const searchResult = {\n      isMatch: true,\n      score: Math.max(0.001, normalized)\n    };\n    if (this.options.includeMatches && allIndices.length) {\n      searchResult.indices = mergeIndices(allIndices);\n    }\n\n    // Report term coverage so the core loop can enforce record-level AND.\n    if (this.combineAll) {\n      if (this.useMask) {\n        searchResult.matchedMask = matchedMask;\n      } else {\n        searchResult.matchedTerms = matchedTerms;\n      }\n      searchResult.termCount = this.numTerms;\n    }\n    return searchResult;\n  }\n}\n\n// Stats-only inverted index for token search (per Plan 008 Direction B).\n//\n// The query path consumes only `df` and `fieldCount` (IDF weighting). The\n// per-doc maps exist solely to keep `df` and `fieldCount` correct under\n// `add` / `remove` / `removeAt`:\n//\n//   docFieldCount[doc]    = # distinct fields the doc contributed; subtracted\n//                           from `fieldCount` on remove.\n//   docTermFieldHits[doc] = Map<term, # fields in which `term` appears for\n//                           that doc>; each entry decrements `df[term]` by\n//                           that count on remove.\n//\n// `df` is incremented once per (doc, term, field) at index time. Removing a\n// doc decrements `df` by the same count, mirroring the increment exactly.\n\nfunction addField(index, text, docIdx, analyzer) {\n  const tokens = analyzer.tokenize(text);\n  if (!tokens.length) return;\n  index.fieldCount++;\n  index.docFieldCount.set(docIdx, (index.docFieldCount.get(docIdx) || 0) + 1);\n\n  // We count each (doc, term, field) once — repeated occurrences within the\n  // same field don't multiply df.\n  const distinctTerms = new Set(tokens);\n  let perDocTerms = index.docTermFieldHits.get(docIdx);\n  if (!perDocTerms) {\n    perDocTerms = new Map();\n    index.docTermFieldHits.set(docIdx, perDocTerms);\n  }\n  for (const term of distinctTerms) {\n    perDocTerms.set(term, (perDocTerms.get(term) || 0) + 1);\n    index.df.set(term, (index.df.get(term) || 0) + 1);\n  }\n}\nfunction ingestRecord(index, record, keyCount, analyzer) {\n  const {\n    i: docIdx,\n    v,\n    $: fields\n  } = record;\n  if (v !== undefined) {\n    addField(index, v, docIdx, analyzer);\n    return;\n  }\n  if (!fields) return;\n  for (let keyIdx = 0; keyIdx < keyCount; keyIdx++) {\n    const value = fields[keyIdx];\n    if (!value) continue;\n    if (Array.isArray(value)) {\n      for (const sub of value) addField(index, sub.v, docIdx, analyzer);\n    } else {\n      addField(index, value.v, docIdx, analyzer);\n    }\n  }\n}\nfunction buildInvertedIndex(records, keyCount, analyzer) {\n  const index = {\n    fieldCount: 0,\n    df: new Map(),\n    docFieldCount: new Map(),\n    docTermFieldHits: new Map()\n  };\n  for (const record of records) {\n    ingestRecord(index, record, keyCount, analyzer);\n  }\n  return index;\n}\nfunction addToInvertedIndex(index, record, keyCount, analyzer) {\n  ingestRecord(index, record, keyCount, analyzer);\n}\nfunction removeFromInvertedIndex(index, docIdx) {\n  const fieldCount = index.docFieldCount.get(docIdx);\n  if (fieldCount === undefined) return;\n  index.fieldCount -= fieldCount;\n  index.docFieldCount.delete(docIdx);\n  const perDocTerms = index.docTermFieldHits.get(docIdx);\n  if (!perDocTerms) return;\n  for (const [term, hits] of perDocTerms) {\n    const next = (index.df.get(term) || 0) - hits;\n    if (next <= 0) {\n      index.df.delete(term);\n    } else {\n      index.df.set(term, next);\n    }\n  }\n  index.docTermFieldHits.delete(docIdx);\n}\n\n// Removes the given docIdx entries and renumbers the remaining per-doc maps\n// so they stay in sync with FuseIndex's contiguous renumbering on remove.\nfunction removeAndShiftInvertedIndex(index, removedIndices) {\n  if (removedIndices.length === 0) return;\n\n  // De-dup and sort so the shift computation is O(log k) per lookup.\n  const sorted = Array.from(new Set(removedIndices)).sort((a, b) => a - b);\n  for (const idx of sorted) {\n    removeFromInvertedIndex(index, idx);\n  }\n\n  // For any surviving oldIdx, its new idx is oldIdx minus the number of\n  // removed indices strictly less than oldIdx.\n  const shift = oldIdx => {\n    let lo = 0;\n    let hi = sorted.length;\n    while (lo < hi) {\n      const mid = lo + hi >>> 1;\n      if (sorted[mid] < oldIdx) lo = mid + 1;else hi = mid;\n    }\n    return oldIdx - lo;\n  };\n  const firstRemoved = sorted[0];\n  const shiftedDocFieldCount = new Map();\n  for (const [oldKey, count] of index.docFieldCount) {\n    shiftedDocFieldCount.set(oldKey > firstRemoved ? shift(oldKey) : oldKey, count);\n  }\n  index.docFieldCount = shiftedDocFieldCount;\n  const shiftedDocTermFieldHits = new Map();\n  for (const [oldKey, terms] of index.docTermFieldHits) {\n    shiftedDocTermFieldHits.set(oldKey > firstRemoved ? shift(oldKey) : oldKey, terms);\n  }\n  index.docTermFieldHits = shiftedDocTermFieldHits;\n}\n\nclass Fuse {\n  // Statics are assigned in entry.ts\n\n  constructor(docs, options, index) {\n    this.options = {\n      ...Config,\n      ...options\n    };\n    if (this.options.useExtendedSearch && false) ;\n    if (this.options.useTokenSearch && false) ;\n    this._keyStore = new KeyStore(this.options.keys);\n    this._docs = docs;\n    this._myIndex = null;\n    this._invertedIndex = null;\n    this.setCollection(docs, index);\n    this._lastQuery = null;\n    this._lastSearcher = null;\n  }\n  _getSearcher(query) {\n    if (this._lastQuery === query) {\n      return this._lastSearcher;\n    }\n    const opts = this._invertedIndex ? {\n      ...this.options,\n      _invertedIndex: this._invertedIndex\n    } : this.options;\n    const searcher = createSearcher(query, opts);\n    this._lastQuery = query;\n    this._lastSearcher = searcher;\n    return searcher;\n  }\n  setCollection(docs, index) {\n    this._docs = docs;\n    if (index && !(index instanceof FuseIndex)) {\n      throw new Error(INCORRECT_INDEX_TYPE);\n    }\n    this._myIndex = index || createIndex(this.options.keys, this._docs, {\n      getFn: this.options.getFn,\n      fieldNormWeight: this.options.fieldNormWeight\n    });\n    if (this.options.useTokenSearch) {\n      const analyzer = createAnalyzer({\n        isCaseSensitive: this.options.isCaseSensitive,\n        ignoreDiacritics: this.options.ignoreDiacritics,\n        tokenize: this.options.tokenize\n      });\n      this._invertedIndex = buildInvertedIndex(this._myIndex.records, this._myIndex.keys.length, analyzer);\n    }\n    this._invalidateSearcherCache();\n  }\n  add(doc) {\n    if (!isDefined(doc)) {\n      return;\n    }\n    this._docs.push(doc);\n    const record = this._myIndex.add(doc, this._docs.length - 1);\n\n    // Skip inverted-index bookkeeping when no record was appended (blank\n    // strings produce null). The previous code read `records[records.length-1]`\n    // unconditionally, which would re-ingest the previous doc on `add(\"\")`.\n    if (this._invertedIndex && record) {\n      const analyzer = createAnalyzer({\n        isCaseSensitive: this.options.isCaseSensitive,\n        ignoreDiacritics: this.options.ignoreDiacritics,\n        tokenize: this.options.tokenize\n      });\n      addToInvertedIndex(this._invertedIndex, record, this._myIndex.keys.length, analyzer);\n    }\n    this._invalidateSearcherCache();\n  }\n  remove(predicate = () => false) {\n    const results = [];\n    const indicesToRemove = [];\n    for (let i = 0, len = this._docs.length; i < len; i += 1) {\n      if (predicate(this._docs[i], i)) {\n        results.push(this._docs[i]);\n        indicesToRemove.push(i);\n      }\n    }\n    if (indicesToRemove.length) {\n      if (this._invertedIndex) {\n        removeAndShiftInvertedIndex(this._invertedIndex, indicesToRemove);\n      }\n\n      // Filter docs in a single pass instead of reverse-splicing\n      const toRemove = new Set(indicesToRemove);\n      this._docs = this._docs.filter((_, i) => !toRemove.has(i));\n      this._myIndex.removeAll(indicesToRemove);\n      this._invalidateSearcherCache();\n    }\n    return results;\n  }\n  removeAt(idx) {\n    // Validate before any mutation. The previous code spliced `_docs` first\n    // and let FuseIndex.removeAt throw afterward — partial-state on invalid\n    // input. Atomic now.\n    if (!Number.isInteger(idx) || idx < 0 || idx >= this._docs.length) {\n      throw new Error(INVALID_DOC_INDEX);\n    }\n    if (this._invertedIndex) {\n      removeAndShiftInvertedIndex(this._invertedIndex, [idx]);\n    }\n    const doc = this._docs.splice(idx, 1)[0];\n    this._myIndex.removeAt(idx);\n    this._invalidateSearcherCache();\n    return doc;\n  }\n  _invalidateSearcherCache() {\n    this._lastQuery = null;\n    this._lastSearcher = null;\n  }\n  getIndex() {\n    return this._myIndex;\n  }\n  search(query, options) {\n    const {\n      limit = -1\n    } = options || {};\n    const {\n      includeMatches,\n      includeScore,\n      shouldSort,\n      sortFn,\n      ignoreFieldNorm\n    } = this.options;\n\n    // Empty string query returns all docs (useful for search UIs)\n    if (isString(query) && !query.trim()) {\n      let docs = this._docs.map((item, idx) => ({\n        item,\n        refIndex: idx\n      }));\n      if (isNumber(limit) && limit > -1) {\n        docs = docs.slice(0, limit);\n      }\n      return docs;\n    }\n    const useHeap = isNumber(limit) && limit > 0 && isString(query);\n    let results;\n    if (useHeap) {\n      const heap = new MaxHeap(limit);\n      if (isString(this._docs[0])) {\n        this._searchStringList(query, {\n          heap,\n          ignoreFieldNorm\n        });\n      } else {\n        this._searchObjectList(query, {\n          heap,\n          ignoreFieldNorm\n        });\n      }\n      results = heap.extractSorted(sortFn);\n    } else {\n      results = isString(query) ? isString(this._docs[0]) ? this._searchStringList(query) : this._searchObjectList(query) : this._searchLogical(query);\n      computeScore(results, {\n        ignoreFieldNorm\n      });\n      if (shouldSort) {\n        results.sort(sortFn);\n      }\n      if (isNumber(limit) && limit > -1) {\n        results = results.slice(0, limit);\n      }\n    }\n    return format(results, this._docs, {\n      includeMatches,\n      includeScore\n    });\n  }\n  _searchStringList(query, {\n    heap,\n    ignoreFieldNorm\n  } = {}) {\n    const searcher = this._getSearcher(query);\n    const requireAllTokens = this.options.useTokenSearch && this.options.tokenMatch === 'all';\n    const {\n      records\n    } = this._myIndex;\n    const results = heap ? null : [];\n\n    // Iterate over every string in the index\n    records.forEach(({\n      v: text,\n      i: idx,\n      n: norm\n    }) => {\n      if (!isDefined(text)) {\n        return;\n      }\n      const searchResult = searcher.searchIn(text);\n      if (searchResult.isMatch) {\n        const match = {\n          score: searchResult.score,\n          value: text,\n          norm: norm,\n          indices: searchResult.indices\n        };\n        if (requireAllTokens) {\n          match.matchedMask = searchResult.matchedMask;\n          match.matchedTerms = searchResult.matchedTerms;\n          match.termCount = searchResult.termCount;\n        }\n        const matches = [match];\n\n        // Record-level AND gate (token search `tokenMatch: 'all'`), applied\n        // before heap insertion so `limit` returns the same top-N as unlimited.\n        if (!requireAllTokens || this._coversAllTokens(matches)) {\n          const result = {\n            item: text,\n            idx,\n            matches\n          };\n          if (heap) {\n            result.score = computeScoreSingle(result.matches, {\n              ignoreFieldNorm\n            });\n            if (heap.shouldInsert(result.score)) {\n              heap.insert(result);\n            }\n          } else {\n            results.push(result);\n          }\n        }\n      }\n    });\n    return results;\n  }\n  _searchLogical(query) {\n    const expression = parse(query, this.options);\n    const evaluate = (node, item, idx) => {\n      if (!('children' in node)) {\n        const {\n          keyId,\n          searcher\n        } = node;\n        let matches;\n        if (keyId === null) {\n          // Keyless entry: search across all keys\n          matches = [];\n          this._myIndex.keys.forEach((key, keyIndex) => {\n            matches.push(...this._findMatches({\n              key,\n              value: item[keyIndex],\n              searcher: searcher\n            }));\n          });\n        } else {\n          matches = this._findMatches({\n            key: this._keyStore.get(keyId),\n            value: this._myIndex.getValueForItemAtKeyId(item, keyId),\n            searcher: searcher\n          });\n        }\n        if (matches && matches.length) {\n          return [{\n            idx,\n            item,\n            matches\n          }];\n        }\n        return [];\n      }\n      const {\n        children,\n        operator\n      } = node;\n      const res = [];\n      for (let i = 0, len = children.length; i < len; i += 1) {\n        const child = children[i];\n        const result = evaluate(child, item, idx);\n        if (result.length) {\n          res.push(...result);\n        } else if (operator === LogicalOperator.AND) {\n          return [];\n        }\n      }\n      return res;\n    };\n    const records = this._myIndex.records;\n    const resultMap = new Map();\n    const results = [];\n    records.forEach(({\n      $: item,\n      i: idx\n    }) => {\n      if (isDefined(item)) {\n        const expResults = evaluate(expression, item, idx);\n        if (expResults.length) {\n          // Dedupe when adding\n          if (!resultMap.has(idx)) {\n            resultMap.set(idx, {\n              idx,\n              item,\n              matches: []\n            });\n            results.push(resultMap.get(idx));\n          }\n          expResults.forEach(({\n            matches\n          }) => {\n            resultMap.get(idx).matches.push(...matches);\n          });\n        }\n      }\n    });\n    return results;\n  }\n\n  // When a search involves inverse patterns (e.g. !Syrup), the aggregation\n  // across keys switches from \"ANY key matches\" to \"ALL keys must match.\"\n  // This is signaled by hasInverse on the SearchResult from ExtendedSearch.\n  //\n  // For mixed patterns like \"^hello !Syrup\", a key failure is ambiguous —\n  // it could be the positive or inverse term that failed. In that case we\n  // conservatively exclude the item, which is strictly better than the old\n  // behavior of including it. See: https://github.com/krisk/Fuse/issues/712\n  _searchObjectList(query, {\n    heap,\n    ignoreFieldNorm\n  } = {}) {\n    const searcher = this._getSearcher(query);\n    const requireAllTokens = this.options.useTokenSearch && this.options.tokenMatch === 'all';\n    const {\n      keys,\n      records\n    } = this._myIndex;\n    const results = heap ? null : [];\n\n    // List is Array<Object>\n    records.forEach(({\n      $: item,\n      i: idx\n    }) => {\n      if (!isDefined(item)) {\n        return;\n      }\n      const matches = [];\n      let anyKeyFailed = false;\n      let hasInverse = false;\n\n      // Iterate over every key (i.e, path), and fetch the value at that key\n      keys.forEach((key, keyIndex) => {\n        const keyMatches = this._findMatches({\n          key,\n          value: item[keyIndex],\n          searcher\n        });\n        if (keyMatches.length) {\n          matches.push(...keyMatches);\n          if (keyMatches[0].hasInverse) {\n            hasInverse = true;\n          }\n        } else {\n          anyKeyFailed = true;\n        }\n      });\n\n      // If the search involves inverse patterns, ALL keys must match\n      if (hasInverse && anyKeyFailed) {\n        return;\n      }\n\n      // Record-level AND gate (token search `tokenMatch: 'all'`): every query\n      // term must be covered across the record's field/array-element matches.\n      // Applied before heap insertion so `limit` returns the same top-N.\n      if (matches.length && (!requireAllTokens || this._coversAllTokens(matches))) {\n        const result = {\n          idx,\n          item,\n          matches\n        };\n        if (heap) {\n          result.score = computeScoreSingle(result.matches, {\n            ignoreFieldNorm\n          });\n          if (heap.shouldInsert(result.score)) {\n            heap.insert(result);\n          }\n        } else {\n          results.push(result);\n        }\n      }\n    });\n    return results;\n  }\n  _findMatches({\n    key,\n    value,\n    searcher\n  }) {\n    if (!isDefined(value)) {\n      return [];\n    }\n    const matches = [];\n    if (isArray(value)) {\n      value.forEach(({\n        v: text,\n        i: idx,\n        n: norm\n      }) => {\n        if (!isDefined(text)) {\n          return;\n        }\n        const searchResult = searcher.searchIn(text);\n        if (searchResult.isMatch) {\n          const match = {\n            score: searchResult.score,\n            key,\n            value: text,\n            idx,\n            norm,\n            indices: searchResult.indices,\n            hasInverse: searchResult.hasInverse\n          };\n          // Carry token-search AND coverage only when present, so the default\n          // (non-token / 'any') MatchScore keeps its original object shape.\n          if (searchResult.termCount !== undefined) {\n            match.matchedMask = searchResult.matchedMask;\n            match.matchedTerms = searchResult.matchedTerms;\n            match.termCount = searchResult.termCount;\n          }\n          matches.push(match);\n        }\n      });\n    } else {\n      const {\n        v: text,\n        n: norm\n      } = value;\n      const searchResult = searcher.searchIn(text);\n      if (searchResult.isMatch) {\n        const match = {\n          score: searchResult.score,\n          key,\n          value: text,\n          norm,\n          indices: searchResult.indices,\n          hasInverse: searchResult.hasInverse\n        };\n        if (searchResult.termCount !== undefined) {\n          match.matchedMask = searchResult.matchedMask;\n          match.matchedTerms = searchResult.matchedTerms;\n          match.termCount = searchResult.termCount;\n        }\n        matches.push(match);\n      }\n    }\n    return matches;\n  }\n\n  // Record-level AND gate for token search (`tokenMatch: 'all'`). Returns true\n  // unless the matched terms across ALL of a record's field/array-element\n  // matches fail to cover every query term. `termCount` is only set by\n  // TokenSearch in 'all' mode, so non-token / 'any' searches always pass.\n  _coversAllTokens(matches) {\n    const termCount = matches.length ? matches[0].termCount : undefined;\n    if (termCount === undefined) {\n      return true;\n    }\n    if (termCount <= MAX_MASK_TERMS) {\n      let coverage = 0;\n      for (let i = 0; i < matches.length; i++) {\n        coverage |= matches[i].matchedMask || 0;\n      }\n      return coverage === 2 ** termCount - 1;\n    }\n    const coverage = new Set();\n    for (let i = 0; i < matches.length; i++) {\n      const terms = matches[i].matchedTerms;\n      if (terms) {\n        for (const t of terms) {\n          coverage.add(t);\n        }\n      }\n    }\n    return coverage.size === termCount;\n  }\n}\n\nFuse.version = '7.4.1';\nFuse.createIndex = createIndex;\nFuse.parseIndex = parseIndex;\nFuse.config = Config;\nFuse.match = function (pattern, text, options) {\n  // Token search needs corpus statistics (df, fieldCount) that a one-off\n  // string comparison can't provide. Reject it here so the contract is the\n  // same in the full and basic builds — without this guard, the full build\n  // crashes with an opaque TypeError and the basic build silently falls back\n  // to fuzzy matching.\n  if (options && options.useTokenSearch) {\n    throw new Error(FUSE_MATCH_TOKEN_SEARCH_UNSUPPORTED);\n  }\n  const searcher = createSearcher(pattern, {\n    ...Config,\n    ...options\n  });\n  return searcher.searchIn(text);\n};\n{\n  Fuse.parseQuery = parse;\n}\n{\n  register(ExtendedSearch);\n}\n{\n  register(TokenSearch);\n}\nFuse.use = function (...plugins) {\n  plugins.forEach(plugin => register(plugin));\n};\n\n// Re-export public types\n\nexport { Fuse as default };\n","\"use client\";\n\n/**\n * Reusable badge component with an interactive tooltip for displaying rich metadata.\n */\nimport { useRef, useState, useCallback, useEffect } from \"react\";\nimport { Package, FunctionSquare, Braces, FileOutput, FileInput, Box, Blocks, Info } from \"lucide-react\";\nimport type { TypeProperty } from \"../../lib\";\nimport styles from \"./badge-tooltip.module.css\";\nimport { Markdown } from \"../typography/markdown\";\n\nconst PRIMITIVE_TYPES = new Set([\n  \"string\", \"number\", \"boolean\", \"void\", \"null\", \"undefined\",\n  \"any\", \"never\", \"unknown\", \"object\", \"symbol\", \"bigint\",\n]);\nconst SIG_KEYWORDS = new Set([\"=>\", \"extends\", \"keyof\", \"typeof\", \"infer\", \"readonly\", \"new\"]);\n\nfunction lookAheadColon(tokens: string[], i: number): boolean {\n  if (tokens[i] === \":\") return true;\n  if (tokens[i] === \"?\" && i + 1 < tokens.length && tokens[i + 1] === \":\") return true;\n  return false;\n}\n\n/** Tokenize a TS signature string into syntax-colored spans */\nfunction ColorizedSignature({ text }: { text: string }) {\n  const tokens = text.match(/=>|\\.\\.\\.|\\w+|[^a-zA-Z0-9\\s]|\\s+/g);\n  if (!tokens) return <>{text}</>;\n\n  const spans: React.ReactNode[] = [];\n  for (let i = 0; i < tokens.length; i++) {\n    const tok = tokens[i];\n    if (SIG_KEYWORDS.has(tok)) {\n      spans.push(<span key={i} className={styles.sigKw}>{tok}</span>);\n    } else if (PRIMITIVE_TYPES.has(tok)) {\n      spans.push(<span key={i} className={styles.sigTy}>{tok}</span>);\n    } else if (/^[A-Z]/.test(tok)) {\n      spans.push(<span key={i} className={styles.sigTy}>{tok}</span>);\n    } else if (/^[a-z_$]/i.test(tok) && i + 1 < tokens.length && lookAheadColon(tokens, i + 1)) {\n      spans.push(<span key={i} className={styles.sigParam}>{tok}</span>);\n    } else if (/^[(){}[\\]:,;|&<>?=]$/.test(tok) || tok === \"...\") {\n      spans.push(<span key={i} className={styles.sigPunc}>{tok}</span>);\n    } else {\n      spans.push(<span key={i}>{tok}</span>);\n    }\n  }\n  return <>{spans}</>;\n}\n\nconst icons = {\n  package: Package,\n  function: FunctionSquare,\n  braces: Braces,\n  export: FileOutput,\n  import: FileInput,\n  constant: Box,\n  class: Blocks,\n} as const;\n\nexport type BadgeIconName = keyof typeof icons;\n\nexport interface BadgeTooltipSectionItem {\n  name: string;\n  signature?: string;\n  icon?: BadgeIconName;\n}\n\nexport interface BadgeTooltipSection {\n  label: string;\n  colorClassName: string;\n  items: BadgeTooltipSectionItem[];\n}\n\nexport function Badge({\n  bg,\n  color,\n  icon,\n  label,\n  tooltip,\n  signature,\n  properties,\n  href,\n  sections,\n}: {\n  bg: string;\n  color: string;\n  icon: BadgeIconName;\n  label: string;\n  tooltip?: string;\n  signature?: string;\n  href?: string;\n  properties?: TypeProperty[];\n  sections?: BadgeTooltipSection[];\n}) {\n  const Icon = icons[icon];\n  const hasSections = Boolean(sections && sections.length > 0);\n  const hasPopover = tooltip || signature || (properties && properties.length > 0) || hasSections;\n  const wrapperRef = useRef<HTMLSpanElement>(null);\n  const tooltipRef = useRef<HTMLDivElement>(null);\n  const [pos, setPos] = useState<{ top: number; left: number } | null>(null);\n  const [pinned, setPinned] = useState(false);\n\n  const calcPos = useCallback(() => {\n    if (!wrapperRef.current) return null;\n    const rect = wrapperRef.current.getBoundingClientRect();\n    return { top: rect.top - 8, left: rect.left + rect.width / 2 };\n  }, []);\n\n  const showTooltip = useCallback(() => {\n    if (pinned) return;\n    setPos(calcPos());\n  }, [pinned, calcPos]);\n\n  const hideTooltip = useCallback(() => {\n    if (pinned) return;\n    setPos(null);\n  }, [pinned]);\n\n  const togglePin = useCallback((e: React.MouseEvent) => {\n    e.stopPropagation();\n    e.preventDefault();\n    if (pinned) {\n      setPinned(false);\n      setPos(null);\n    } else {\n      setPinned(true);\n      setPos(calcPos());\n    }\n  }, [pinned, calcPos]);\n\n  const openSource = useCallback(() => {\n    if (!href) return;\n    window.open(href, \"_blank\", \"noopener,noreferrer\");\n  }, [href]);\n\n  // Close on outside click\n  useEffect(() => {\n    if (!pinned) return;\n    const handler = (e: MouseEvent) => {\n      if (\n        wrapperRef.current?.contains(e.target as Node) ||\n        tooltipRef.current?.contains(e.target as Node)\n      ) return;\n      setPinned(false);\n      setPos(null);\n    };\n    document.addEventListener(\"mousedown\", handler);\n    return () => document.removeEventListener(\"mousedown\", handler);\n  }, [pinned]);\n\n  if (!hasPopover) {\n    const inner = (\n      <span\n        style={{\n          display: \"inline-flex\",\n          alignItems: \"center\",\n          gap: \"0.2rem\",\n          padding: \"0.1rem 0.4rem\",\n          borderRadius: \"0.375rem\",\n          fontSize: \"0.78rem\",\n          fontWeight: 500,\n          lineHeight: \"1.4\",\n          backgroundColor: bg,\n          color,\n        }}\n      >\n        <Icon size={12} /> {label}\n      </span>\n    );\n    if (href) {\n      return <a href={href} target=\"_blank\" rel=\"noopener noreferrer\" style={{ textDecoration: \"none\" }}>{inner}</a>;\n    }\n    return inner;\n  }\n\n  return (\n    <span\n      ref={wrapperRef}\n      onMouseEnter={showTooltip}\n      onMouseLeave={hideTooltip}\n      style={{\n        display: \"inline-flex\",\n        alignItems: \"center\",\n        gap: \"0.2rem\",\n        padding: \"0.1rem 0.4rem\",\n        borderRadius: \"0.375rem\",\n        fontSize: \"0.78rem\",\n        fontWeight: 500,\n        lineHeight: \"1.4\",\n        backgroundColor: bg,\n        color,\n        cursor: href ? \"pointer\" : \"default\",\n        position: \"relative\",\n      }}\n    >\n      <button\n        type=\"button\"\n        onClick={togglePin}\n        aria-label={`${pinned ? \"Unpin\" : \"Pin\"} tooltip for ${label}`}\n        className={styles.iconPinButton}\n      >\n        <Icon size={12} />\n      </button>\n      <span onClick={href ? openSource : undefined}>{label}</span>\n      <button\n        type=\"button\"\n        onClick={togglePin}\n        aria-label={`${pinned ? \"Hide\" : \"Show\"} info for ${label}`}\n        className={styles.mobileInfoButton}\n      >\n        <Info size={11} />\n      </button>\n      {pos && (\n        <div\n          ref={tooltipRef}\n          className={styles.tooltip}\n          style={{\n            position: \"fixed\",\n            bottom: \"auto\",\n            top: pos.top,\n            left: pos.left,\n            transform: \"translate(-50%, -100%)\",\n            visibility: \"visible\",\n            opacity: 1,\n          }}\n        >\n          {tooltip && (\n            <div className={styles.tooltipHeader}>\n              <Markdown text={tooltip} className={styles.desc} />\n            </div>\n          )}\n          {hasSections ? (\n            <div className={styles.sectionList}>\n              {sections?.map((section) => (\n                <div key={section.label} className={styles.sectionGroup}>\n                  <div className={styles.sectionTitle}>{section.label}</div>\n                  <div className={styles.sectionChips}>\n                    {section.items.map((item) => {\n                      const ItemIcon = item.icon ? icons[item.icon] : undefined;\n                      return (\n                        <span key={`${section.label}-${item.name}`} className={`${styles.sectionChip} ${section.colorClassName}`}>\n                          {ItemIcon && <ItemIcon size={11} style={{ flexShrink: 0 }} />}\n                          <span className={styles.sectionChipName}>{item.name}</span>\n                          {item.signature && (\n                            <span className={styles.sectionChipSig}><ColorizedSignature text={item.signature} /></span>\n                          )}\n                        </span>\n                      );\n                    })}\n                  </div>\n                </div>\n              ))}\n            </div>\n          ) : properties && properties.length > 0 ? (\n            <div className={styles.propList}>\n              {properties.map((p) => (\n                <div key={p.name} className={styles.propItem}>\n                  <div className={styles.propHeader}>\n                    <code className={styles.ttPropName}>\n                      {p.name}{!p.required && <span className={styles.ttOptional}>?</span>}\n                    </code>\n                    <code className={styles.propType}>{p.type}</code>\n                  </div>\n                  {p.description && (\n                    <Markdown text={p.description} className={styles.propDesc} />\n                  )}\n                </div>\n              ))}\n            </div>\n          ) : signature ? (\n            <span className={styles.sig}>\n              <span className={styles.sigKeyword}>{label}</span>\n              <span className={styles.sigType}>{signature}</span>\n            </span>\n          ) : null}\n        </div>\n      )}\n    </span>\n  );\n}\n\n/* ── Npm package badge with lazy-fetched tooltip ── */\n\ninterface NpmPackageInfo {\n  version: string;\n  description: string;\n  downloads: number;\n  license: string;\n  homepage?: string;\n  gzipSize?: number;\n  depCount: number;\n  lastUpdated?: string;\n}\n\nconst npmCache = new Map<string, NpmPackageInfo | null>();\n\nfunction formatBytes(bytes: number): string {\n  if (bytes < 1024) return `${bytes} B`;\n  const kb = bytes / 1024;\n  if (kb < 1024) return `${kb.toFixed(1)} kB`;\n  return `${(kb / 1024).toFixed(1)} MB`;\n}\n\nfunction timeAgo(dateStr: string): string {\n  const diff = Date.now() - new Date(dateStr).getTime();\n  const days = Math.floor(diff / 86400000);\n  if (days < 1) return \"today\";\n  if (days < 30) return `${days}d ago`;\n  const months = Math.floor(days / 30);\n  if (months < 12) return `${months}mo ago`;\n  const years = Math.floor(months / 12);\n  return `${years}y ago`;\n}\n\nasync function fetchNpmInfo(pkg: string): Promise<NpmPackageInfo | null> {\n  if (npmCache.has(pkg)) return npmCache.get(pkg)!;\n  try {\n    const encoded = encodeURIComponent(pkg);\n    const [metaRes, dlRes, sizeRes] = await Promise.allSettled([\n      fetch(`https://registry.npmjs.org/${encoded}/latest`),\n      fetch(`https://api.npmjs.org/downloads/point/last-week/${encoded}`),\n      fetch(`https://bundlephobia.com/api/size?package=${encoded}`),\n    ]);\n    const meta = metaRes.status === \"fulfilled\" ? await metaRes.value.json() : null;\n    if (!meta) { npmCache.set(pkg, null); return null; }\n    const dl = dlRes.status === \"fulfilled\" ? await dlRes.value.json() : null;\n    const size = sizeRes.status === \"fulfilled\" && sizeRes.value.ok ? await sizeRes.value.json() : null;\n\n    const depCount = meta.dependencies ? Object.keys(meta.dependencies).length : 0;\n\n    const info: NpmPackageInfo = {\n      version: meta.version ?? \"?\",\n      description: meta.description ?? \"\",\n      downloads: dl?.downloads ?? 0,\n      license: meta.license ?? \"Unknown\",\n      homepage: meta.homepage,\n      gzipSize: size?.gzip,\n      depCount,\n      lastUpdated: meta.time?.[meta.version] ?? meta._time,\n    };\n    npmCache.set(pkg, info);\n    return info;\n  } catch {\n    npmCache.set(pkg, null);\n    return null;\n  }\n}\n\nexport function NpmBadge({ pkg, href }: { pkg: string; href?: string }) {\n  const [info, setInfo] = useState<NpmPackageInfo | null | undefined>(\n    npmCache.has(pkg) ? npmCache.get(pkg) : undefined,\n  );\n\n  const onHover = useCallback(() => {\n    if (info !== undefined) return;\n    fetchNpmInfo(pkg).then(setInfo);\n  }, [pkg, info]);\n\n  const tooltip = info ? `${info.description}` : undefined;\n\n  const sections: BadgeTooltipSection[] | undefined = info\n    ? [\n        {\n          label: \"Package\",\n          colorClassName: styles.sectionNpm,\n          items: [\n            { name: `v${info.version}` },\n            { name: info.license },\n            { name: `${info.downloads.toLocaleString()}/wk` },\n            ...(info.gzipSize ? [{ name: `${formatBytes(info.gzipSize)} gzip` }] : []),\n            { name: `${info.depCount} dep${info.depCount !== 1 ? \"s\" : \"\"}` },\n            ...(info.lastUpdated ? [{ name: timeAgo(info.lastUpdated) }] : []),\n          ],\n        },\n      ]\n    : undefined;\n\n  return (\n    <span onMouseEnter={onHover}>\n      <Badge\n        bg=\"rgba(59,130,246,0.15)\"\n        color=\"rgb(59,130,246)\"\n        icon=\"package\"\n        label={pkg}\n        href={href}\n        tooltip={tooltip}\n        sections={sections}\n      />\n    </span>\n  );\n}\n","/**\n * Utility functions, types, and shared constants supporting the file tree components.\n */\nimport type { FileTreeNode, AnalysisItem, AnalysisKind } from \"../../lib\";\nimport { type BadgeTooltipSection, type BadgeTooltipSectionItem, type BadgeIconName } from \"./badge-tooltip\";\nimport { Markdown } from \"../typography/markdown\";\nimport styles from \"./filetree-table.module.css\";\n\nexport type ImportFilter = \"all\" | \"local\" | \"npm\";\nexport type InternalFilter = \"all\" | \"declared-types\" | \"exported-types\" | \"functions\" | \"classes\";\nexport type ExportFilter = \"all\" | \"functions\" | \"classes\" | \"constants\";\n\nexport const FILE_EXTENSIONS = [\".ts\", \".tsx\", \".js\", \".jsx\", \".mjs\"];\n\nexport const exportStyles: Record<string, { bg: string; color: string; icon: BadgeIconName }> = {\n  function: { bg: \"rgba(249,115,22,0.15)\", color: \"rgb(249,115,22)\", icon: \"function\" },\n  class: { bg: \"rgba(236,72,153,0.15)\", color: \"rgb(236,72,153)\", icon: \"class\" },\n  constant: { bg: \"rgba(34,197,94,0.15)\", color: \"rgb(34,197,94)\", icon: \"constant\" },\n};\nexport const defaultExportStyle = exportStyles.function;\n\nexport function getExportStyle(m: AnalysisItem) {\n  return exportStyles[m.kind || \"\"] || defaultExportStyle;\n}\n\nexport const internalStyles: Record<string, { bg: string; color: string; icon: BadgeIconName }> = {\n  function: { bg: \"rgba(34,197,94,0.15)\", color: \"rgb(34,197,94)\", icon: \"function\" },\n  class: { bg: \"rgba(236,72,153,0.12)\", color: \"rgb(219,100,155)\", icon: \"class\" },\n};\n\nexport function ghLineUrl(ghBase: string, filePath: string, line?: number): string | undefined {\n  if (!line) return undefined;\n  return `${ghBase}/${filePath}#L${line}`;\n}\n\n/** Resolve a relative local import (e.g. \"../common/types\") to a filetree path */\nexport function resolveLocalImport(fromPath: string, importPath: string, knownPaths: Set<string>): string | undefined {\n  const dir = fromPath.split('/').slice(0, -1);\n  const parts = importPath.replace(/\\.(js|ts|mjs|mts)$/, '').split('/');\n  const resolved = [...dir];\n  for (const p of parts) {\n    if (p === '..') resolved.pop();\n    else if (p !== '.') resolved.push(p);\n  }\n  const base = resolved.join('/');\n\n  if (knownPaths.has(base)) return base;\n\n  for (const ext of FILE_EXTENSIONS) {\n    const candidate = `${base}${ext}`;\n    if (knownPaths.has(candidate)) return candidate;\n  }\n\n  for (const ext of FILE_EXTENSIONS) {\n    const candidate = `${base}/index${ext}`;\n    if (knownPaths.has(candidate)) return candidate;\n  }\n\n  return undefined;\n}\n\nexport function getLocalImportLabel(importPath: string, resolvedPath?: string): string {\n  const source = resolvedPath ?? importPath;\n  const parts = source.split(\"/\").filter(Boolean);\n  return parts[parts.length - 1] || source;\n}\n\nexport function collectFileNodeMap(nodes: FileTreeNode[], result = new Map<string, FileTreeNode>()): Map<string, FileTreeNode> {\n  for (const node of nodes) {\n    result.set(node.path, node);\n    if (node.children) collectFileNodeMap(node.children, result);\n  }\n  return result;\n}\n\nconst kindToIcon: Record<string, BadgeIconName> = {\n  function: \"function\",\n  class: \"class\",\n  constant: \"constant\",\n  type: \"braces\",\n};\n\nfunction buildSectionItem(\n  name: string,\n  kind: AnalysisKind | undefined,\n  exportMap: Map<string, { kind?: AnalysisKind; signature?: string }>,\n): BadgeTooltipSectionItem {\n  const entry = exportMap.get(name);\n  const resolvedKind = kind ?? entry?.kind ?? \"constant\";\n  const item: BadgeTooltipSectionItem = { name, icon: kindToIcon[resolvedKind] };\n  if (entry?.signature) item.signature = entry.signature;\n  return item;\n}\n\nexport function getLocalImportSections(\n  sourceNode: FileTreeNode,\n  importPath: string,\n  resolvedPath: string | undefined,\n  fileNodeMap: Map<string, FileTreeNode>,\n): BadgeTooltipSection[] | undefined {\n  if (!sourceNode.analysis) return undefined;\n  const importSymbols = sourceNode.analysis.localImportSymbols.find((entry) => entry.source === importPath);\n  if (!importSymbols) return undefined;\n\n  const targetNode = resolvedPath ? fileNodeMap.get(resolvedPath) : undefined;\n  const targetExports = targetNode?.analysis?.exports ?? [];\n  const exportMap = new Map(\n    targetExports.map((item) => [item.name, { kind: item.kind, signature: item.signature }] as const),\n  );\n\n  const functions = importSymbols.valueNames\n    .filter((name) => (exportMap.get(name)?.kind ?? \"constant\") === \"function\")\n    .map((name) => buildSectionItem(name, \"function\", exportMap));\n  const classes = importSymbols.valueNames\n    .filter((name) => exportMap.get(name)?.kind === \"class\")\n    .map((name) => buildSectionItem(name, \"class\", exportMap));\n  const values = importSymbols.valueNames\n    .filter((name) => {\n      const kind = exportMap.get(name)?.kind;\n      return !kind || kind === \"constant\";\n    })\n    .map((name) => buildSectionItem(name, \"constant\", exportMap));\n  const types = importSymbols.typeNames\n    .map((name) => buildSectionItem(name, \"type\", exportMap));\n\n  const sections: BadgeTooltipSection[] = [];\n  if (functions.length > 0) sections.push({ label: \"Functions\", colorClassName: styles.sectionFunction, items: functions });\n  if (types.length > 0) sections.push({ label: \"Types\", colorClassName: styles.sectionType, items: types });\n  if (classes.length > 0) sections.push({ label: \"Classes\", colorClassName: styles.sectionClass, items: classes });\n  if (values.length > 0) sections.push({ label: \"Values\", colorClassName: styles.sectionValue, items: values });\n  return sections.length > 0 ? sections : undefined;\n}\n\nexport function collectFilePaths(nodes: FileTreeNode[], result = new Set<string>()): Set<string> {\n  for (const node of nodes) {\n    result.add(node.path);\n    if (node.children) collectFilePaths(node.children, result);\n  }\n  return result;\n}\n\nexport function analysisItemMatches(item: AnalysisItem, q: string): boolean {\n  if (item.name.toLowerCase().includes(q)) return true;\n  if (item.jsdoc?.toLowerCase().includes(q)) return true;\n  if (item.signature?.toLowerCase().includes(q)) return true;\n  if (item.properties?.some((property) =>\n    property.name.toLowerCase().includes(q) ||\n    property.type.toLowerCase().includes(q) ||\n    property.description?.toLowerCase().includes(q)\n  )) {\n    return true;\n  }\n  return false;\n}\n\nexport type SearchRecord = {\n  path: string;\n  type: FileTreeNode[\"type\"];\n  name: string;\n  description: string;\n  pathText: string;\n  npmImports: string[];\n  localImports: string[];\n  localImportSources: string[];\n  localImportValues: string[];\n  localImportTypes: string[];\n  exportNames: string[];\n  exportDocs: string[];\n  functionNames: string[];\n  functionDocs: string[];\n  typeNames: string[];\n  typeDocs: string[];\n};\n\nexport function analysisItemDocText(item: AnalysisItem): string {\n  return [\n    item.jsdoc ?? \"\",\n    item.signature ?? \"\",\n    ...(item.properties ?? []).flatMap((property) => [\n      property.name,\n      property.type,\n      property.description ?? \"\",\n    ]),\n  ].filter(Boolean).join(\" \");\n}\n\nexport function buildSearchRecords(nodes: FileTreeNode[], result: SearchRecord[] = []): SearchRecord[] {\n  for (const node of nodes) {\n    const analysis = node.analysis;\n    result.push({\n      path: node.path,\n      type: node.type,\n      name: node.name,\n      description: node.description ?? \"\",\n      pathText: node.path,\n      npmImports: analysis?.npmImports ?? [],\n      localImports: analysis?.localImports ?? [],\n      localImportSources: analysis?.localImportSymbols.map((entry) => entry.source) ?? [],\n      localImportValues: analysis?.localImportSymbols.flatMap((entry) => entry.valueNames) ?? [],\n      localImportTypes: analysis?.localImportSymbols.flatMap((entry) => entry.typeNames) ?? [],\n      exportNames: analysis?.exports.map((item) => item.name) ?? [],\n      exportDocs: analysis?.exports.map(analysisItemDocText) ?? [],\n      functionNames: analysis?.functions.map((item) => item.name) ?? [],\n      functionDocs: analysis?.functions.map(analysisItemDocText) ?? [],\n      typeNames: analysis?.types.map((item) => item.name) ?? [],\n      typeDocs: analysis?.types.map(analysisItemDocText) ?? [],\n    });\n    if (node.children) buildSearchRecords(node.children, result);\n  }\n  return result;\n}\n\nexport function filterTreeByPaths(nodes: FileTreeNode[], matchedPaths: Set<string>): FileTreeNode[] {\n  const result: FileTreeNode[] = [];\n  for (const node of nodes) {\n    if (node.type === \"folder\") {\n      const filtered = filterTreeByPaths(node.children || [], matchedPaths);\n      if (filtered.length > 0 || matchedPaths.has(node.path)) {\n        result.push({ ...node, children: filtered });\n      }\n    } else if (matchedPaths.has(node.path)) {\n      result.push(node);\n    }\n  }\n  return result;\n}\n\n// Basic components moved to markdown.tsx\nexport const Highlight = ({ text, query }: { text: string; query: string }) => (\n  <Markdown text={text} query={query} />\n);\n\nexport function getNodeFontSize(depth: number, isFolder: boolean): string {\n  const base = isFolder ? 1.06 : 0.98;\n  const step = isFolder ? 0.06 : 0.045;\n  const min = isFolder ? 0.86 : 0.8;\n  return `${Math.max(min, base - depth * step).toFixed(3)}rem`;\n}\n\nexport function getMaxTreeDepth(nodes: FileTreeNode[], depth = 1): number {\n  let maxDepth = depth;\n  for (const node of nodes) {\n    if (node.children && node.children.length > 0) {\n      maxDepth = Math.max(maxDepth, getMaxTreeDepth(node.children, depth + 1));\n    }\n  }\n  return maxDepth;\n}\n","/**\n * Row components (FileRow, FolderRow, TreeRow) used to build the interactive file tree table.\n */\nimport { useState } from \"react\";\nimport { ChevronRight } from \"lucide-react\";\nimport { Badge, NpmBadge } from \"./badge-tooltip\";\nimport { Markdown } from \"../typography/markdown\";\nimport type { FileTreeNode } from \"../../lib\";\nimport styles from \"./filetree-table.module.css\";\nimport {\n  exportStyles, defaultExportStyle, internalStyles, ghLineUrl, resolveLocalImport,\n  getLocalImportLabel, getLocalImportSections, getNodeFontSize, Highlight,\n  getExportStyle,\n  type ImportFilter, type InternalFilter, type ExportFilter\n} from \"./filetree-utils\";\n\nfunction FileRow({\n  node,\n  depth,\n  ghBase,\n  query,\n  knownPaths,\n  fileNodeMap,\n  importFilter,\n  internalFilter,\n  exportFilter,\n}: {\n  node: FileTreeNode;\n  depth: number;\n  ghBase: string;\n  query: string;\n  knownPaths: Set<string>;\n  fileNodeMap: Map<string, FileTreeNode>;\n  importFilter: ImportFilter;\n  internalFilter: InternalFilter;\n  exportFilter: ExportFilter;\n}) {\n  const meta = node.analysis;\n  const indent = depth * 1.2;\n  const nameSize = getNodeFontSize(depth, false);\n\n  return (\n    <tr className={styles.row} id={`file-${node.path.replace(/[^a-zA-Z0-9]/g, '-')}`}>\n      <td className={styles.cellName} style={{ paddingLeft: `${0.6 + indent}rem` }}>\n        <span style={{ display: \"inline-flex\", alignItems: \"center\", gap: \"0.15rem\" }}>\n          <span style={{ width: 16, flexShrink: 0 }} />\n          <a\n            href={`${ghBase}/${node.path}`}\n            target=\"_blank\"\n            rel=\"noopener noreferrer\"\n            className={styles.fileName}\n            style={{ fontSize: nameSize }}\n          >\n            <Highlight text={node.name} query={query} />\n          </a>\n        </span>\n        {node.description && (\n          <div className={styles.descLine} style={{ paddingLeft: `${16 + 2}px` }}>\n            <Markdown text={node.description} query={query} />\n          </div>\n        )}\n      </td>\n      <td className={styles.cellBadges}>\n        {meta && (\n          <span className={styles.badgeWrap}>\n            {(importFilter === \"all\" || importFilter === \"npm\") && meta.npmImports.map((m) => (\n              <NpmBadge key={m} pkg={m} href={`https://npmgraph.js.org/?q=${m}#select=${m}`} />\n            ))}\n            {(importFilter === \"all\" || importFilter === \"local\") && meta.localImports.map((m) => {\n              const resolvedPath = resolveLocalImport(node.path, m, knownPaths);\n              const anchorId = resolvedPath ? `#file-${resolvedPath.replace(/[^a-zA-Z0-9]/g, '-')}` : undefined;\n              const label = getLocalImportLabel(m, resolvedPath);\n              const sections = getLocalImportSections(node, m, resolvedPath, fileNodeMap);\n              return (\n                <a\n                  key={m}\n                  href={anchorId}\n                  style={{ textDecoration: 'none' }}\n                  onClick={anchorId ? (e) => {\n                    e.preventDefault();\n                    const target = document.querySelector(anchorId);\n                    target?.scrollIntoView({ behavior: 'smooth', block: 'center' });\n                    if (target instanceof HTMLElement) {\n                      target.style.outline = '2px solid rgb(234,179,8)';\n                      target.style.outlineOffset = '-2px';\n                      setTimeout(() => {\n                        target.style.outline = '';\n                        target.style.outlineOffset = '';\n                      }, 1500);\n                    }\n                  } : undefined}\n                >\n                  <Badge\n                    bg=\"rgba(234,179,8,0.15)\"\n                    color=\"rgb(180,140,10)\"\n                    icon=\"import\"\n                    label={label}\n                    sections={sections}\n                  />\n                </a>\n              );\n            })}\n          </span>\n        )}\n      </td>\n      <td className={styles.cellBadges}>\n        {meta && (\n          <span className={styles.badgeWrap}>\n            {(internalFilter === \"all\" || internalFilter === \"declared-types\") && meta.types.map((m) => (\n              <Badge key={m.name} bg=\"rgba(168,85,247,0.15)\" color=\"rgb(168,85,247)\" icon=\"braces\" label={m.name} tooltip={m.jsdoc} signature={m.signature} properties={m.properties} href={ghLineUrl(ghBase, node.path, m.line)} />\n            ))}\n            {(internalFilter === \"all\" || internalFilter === \"exported-types\") && meta.exports.filter((m) => m.kind === \"type\").map((m) => (\n              <Badge key={m.name} bg=\"rgba(168,85,247,0.15)\" color=\"rgb(168,85,247)\" icon=\"braces\" label={m.name} tooltip={m.jsdoc} signature={m.signature} properties={m.properties} href={ghLineUrl(ghBase, node.path, m.line)} />\n            ))}\n            {meta.functions\n              .filter((m) => {\n                if (internalFilter === \"all\") return true;\n                if (internalFilter === \"functions\") return m.kind !== \"class\";\n                if (internalFilter === \"classes\") return m.kind === \"class\";\n                return false;\n              })\n              .map((m) => {\n                const s = internalStyles[m.kind || \"function\"] || internalStyles.function;\n                return <Badge key={m.name} bg={s.bg} color={s.color} icon={s.icon} label={m.name} tooltip={m.jsdoc} signature={m.signature} href={ghLineUrl(ghBase, node.path, m.line)} />;\n              })}\n          </span>\n        )}\n      </td>\n      <td className={styles.cellBadges}>\n        {meta && (\n          <span className={styles.badgeWrap}>\n            {meta.exports.filter((m) => {\n              if (m.kind === \"type\") return false;\n              if (exportFilter === \"all\") return true;\n              if (exportFilter === \"functions\") return m.kind === \"function\";\n              if (exportFilter === \"classes\") return m.kind === \"class\";\n              return m.kind === \"constant\";\n            }).map((m) => {\n              const s = getExportStyle(m);\n              return <Badge key={m.name} bg={s.bg} color={s.color} icon={s.icon} label={m.name} tooltip={m.jsdoc} signature={m.signature} properties={m.properties} href={ghLineUrl(ghBase, node.path, m.line)} />;\n            })}\n          </span>\n        )}\n      </td>\n    </tr>\n  );\n}\n\nfunction FolderRows({\n  node,\n  depth,\n  ghBase,\n  query,\n  knownPaths,\n  collapseDepth,\n  fileNodeMap,\n  importFilter,\n  internalFilter,\n  exportFilter,\n  forceOpen,\n}: {\n  node: FileTreeNode;\n  depth: number;\n  ghBase: string;\n  query: string;\n  knownPaths: Set<string>;\n  collapseDepth: number;\n  fileNodeMap: Map<string, FileTreeNode>;\n  importFilter: ImportFilter;\n  internalFilter: InternalFilter;\n  exportFilter: ExportFilter;\n  forceOpen: boolean;\n}) {\n  const [isOpen, setIsOpen] = useState(depth + 1 < collapseDepth);\n  const indent = depth * 1.2;\n  const open = forceOpen || isOpen;\n  const nameSize = getNodeFontSize(depth, true);\n\n  return (\n    <>\n      <tr className={styles.rowFolder} id={`file-${node.path.replace(/[^a-zA-Z0-9]/g, '-')}`} onClick={() => setIsOpen(!open)}>\n        <td className={styles.cellName} style={{ paddingLeft: `${0.6 + indent}rem` }}>\n          <span style={{ display: \"inline-flex\", alignItems: \"center\", gap: \"0.15rem\" }}>\n            <span className={open ? styles.folderToggleOpen : styles.folderToggle}>\n              <ChevronRight size={14} />\n            </span>\n            <span className={styles.folderName} style={{ fontSize: nameSize }}>\n              <Highlight text={node.name} query={query} />\n            </span>\n          </span>\n          {node.description && (\n            <div className={styles.descLine} style={{ paddingLeft: `${16 + 2}px` }}>\n              <Markdown text={node.description} query={query} />\n            </div>\n          )}\n        </td>\n        <td className={styles.cellBadges}>\n          {node.packageDependencies && (\n            <span className={styles.badgeWrap}>\n              {(importFilter === \"all\" || importFilter === \"npm\") && node.packageDependencies.map((m) => (\n                <NpmBadge key={m} pkg={m} href={`https://npmgraph.js.org/?q=${m}#select=${m}`} />\n              ))}\n            </span>\n          )}\n        </td>\n        <td className={styles.cellBadges} />\n        <td className={styles.cellBadges}>\n          {node.packageExports && (\n            <span className={styles.badgeWrap}>\n              {node.packageExports.filter((m) => {\n                if (m.kind === \"type\") return false;\n                if (exportFilter === \"all\") return true;\n                const kind = m.kind || \"constant\";\n                if (exportFilter === \"functions\") return kind === \"function\";\n                if (exportFilter === \"classes\") return kind === \"class\";\n                return kind === \"constant\";\n              }).map((m) => {\n                const s = exportStyles[m.kind || \"\"] || defaultExportStyle;\n                return <Badge key={m.name} bg={s.bg} color={s.color} icon={s.icon} label={m.name} tooltip={m.jsdoc} signature={m.signature} properties={m.properties} href={ghLineUrl(ghBase, node.path + (m.line ? `/index.ts` : \"\"), m.line)} />;\n              })}\n            </span>\n          )}\n        </td>\n      </tr>\n      {open &&\n        node.children?.map((child) => (\n          <TreeRows\n            key={child.path}\n            node={child}\n            depth={depth + 1}\n            ghBase={ghBase}\n            query={query}\n            knownPaths={knownPaths}\n            collapseDepth={collapseDepth}\n            fileNodeMap={fileNodeMap}\n            importFilter={importFilter}\n            internalFilter={internalFilter}\n            exportFilter={exportFilter}\n            forceOpen={forceOpen}\n          />\n        ))}\n    </>\n  );\n}\n\nexport function TreeRows({\n  node,\n  depth,\n  ghBase,\n  query,\n  knownPaths,\n  collapseDepth,\n  fileNodeMap,\n  importFilter,\n  internalFilter,\n  exportFilter,\n  forceOpen,\n}: {\n  node: FileTreeNode;\n  depth: number;\n  ghBase: string;\n  query: string;\n  knownPaths: Set<string>;\n  collapseDepth: number;\n  fileNodeMap: Map<string, FileTreeNode>;\n  importFilter: ImportFilter;\n  internalFilter: InternalFilter;\n  exportFilter: ExportFilter;\n  forceOpen: boolean;\n}) {\n  if (node.type === \"folder\") {\n    return (\n      <FolderRows\n        node={node}\n        depth={depth}\n        ghBase={ghBase}\n        query={query}\n        knownPaths={knownPaths}\n        collapseDepth={collapseDepth}\n        fileNodeMap={fileNodeMap}\n        importFilter={importFilter}\n        internalFilter={internalFilter}\n        exportFilter={exportFilter}\n        forceOpen={forceOpen}\n      />\n    );\n  }\n  return <FileRow node={node} depth={depth} ghBase={ghBase} query={query} knownPaths={knownPaths} fileNodeMap={fileNodeMap} importFilter={importFilter} internalFilter={internalFilter} exportFilter={exportFilter} />;\n}\n\n","\"use client\";\n\n/**\n * Main table component for displaying, filtering, and sorting an interactive representation of the file tree.\n */\nimport { useState, useMemo, useCallback, useEffect, useRef } from \"react\";\nimport Fuse from \"fuse.js\";\nimport { ChevronDown, Search, ArrowUpDown, ArrowUp, ArrowDown, Filter } from \"lucide-react\";\nimport type { FileTreeNode } from \"../../lib\";\nimport styles from \"./filetree-table.module.css\";\nimport { TreeRows } from \"./filetree-rows\";\nimport {\n  getMaxTreeDepth, collectFilePaths, collectFileNodeMap,\n  buildSearchRecords, filterTreeByPaths,\n  type ImportFilter, type InternalFilter, type ExportFilter\n} from \"./filetree-utils\";\n\nexport function FileTreeTable({\n  tree,\n  ghBase,\n  defaultImportFilter = \"all\",\n  defaultInternalFilter = \"all\",\n  defaultExportFilter = \"all\",\n  defaultCollapseDepth,\n}: {\n  tree: FileTreeNode[];\n  ghBase: string;\n  defaultImportFilter?: ImportFilter;\n  defaultInternalFilter?: InternalFilter;\n  defaultExportFilter?: ExportFilter;\n  defaultCollapseDepth?: number;\n}) {\n  const maxCollapseDepth = Math.max(1, getMaxTreeDepth(tree) + 1);\n  const [search, setSearch] = useState(\"\");\n  const [collapseDepth, setCollapseDepth] = useState(defaultCollapseDepth ?? maxCollapseDepth);\n  const [showCollapseMenu, setShowCollapseMenu] = useState(false);\n  const [showImportFilterMenu, setShowImportFilterMenu] = useState(false);\n  const [showInternalFilterMenu, setShowInternalFilterMenu] = useState(false);\n  const [showExportFilterMenu, setShowExportFilterMenu] = useState(false);\n  const [importFilter, setImportFilter] = useState<ImportFilter>(defaultImportFilter);\n  const [internalFilter, setInternalFilter] = useState<InternalFilter>(defaultInternalFilter);\n  const [exportFilter, setExportFilter] = useState<ExportFilter>(defaultExportFilter);\n  const [sortConfig, setSortConfig] = useState<{\n    key: \"imports\" | \"types\" | \"exports\" | null;\n    order: \"asc\" | \"desc\";\n  }>({ key: null, order: \"desc\" });\n  const collapseMenuRef = useRef<HTMLDivElement>(null);\n  const importFilterMenuRef = useRef<HTMLDivElement>(null);\n  const internalFilterMenuRef = useRef<HTMLDivElement>(null);\n  const exportFilterMenuRef = useRef<HTMLDivElement>(null);\n\n  const query = search.toLowerCase().trim();\n  const forceOpenSearchResults = query.length > 0;\n  const searchRecords = useMemo(() => buildSearchRecords(tree), [tree]);\n  const fuse = useMemo(() => new Fuse(searchRecords, {\n    includeScore: true,\n    shouldSort: true,\n    threshold: 0.1,\n    ignoreLocation: true,\n    minMatchCharLength: 2,\n    keys: [\n      { name: \"name\", weight: 3 },\n      { name: \"pathText\", weight: 2.5 },\n      { name: \"description\", weight: 2.2 },\n      { name: \"exportNames\", weight: 2 },\n      { name: \"functionNames\", weight: 2 },\n      { name: \"typeNames\", weight: 2 },\n      { name: \"exportDocs\", weight: 1.6 },\n      { name: \"functionDocs\", weight: 1.6 },\n      { name: \"typeDocs\", weight: 1.6 },\n      { name: \"localImports\", weight: 1.5 },\n      { name: \"npmImports\", weight: 1.5 },\n      { name: \"localImportSources\", weight: 1.3 },\n      { name: \"localImportValues\", weight: 1.3 },\n      { name: \"localImportTypes\", weight: 1.3 },\n    ],\n  }), [searchRecords]);\n\n  const getNodeEntryCount = useCallback((node: FileTreeNode, key: \"imports\" | \"types\" | \"exports\"): number => {\n    let count = 0;\n\n    if (node.analysis) {\n      const meta = node.analysis;\n      switch (key) {\n        case \"imports\":\n          count += importFilter === \"all\"\n            ? meta.npmImports.length + meta.localImports.length\n            : importFilter === \"npm\"\n              ? meta.npmImports.length\n              : meta.localImports.length;\n          break;\n        case \"types\":\n          count += internalFilter === \"all\"\n            ? meta.types.length + meta.functions.length + meta.exports.filter((e) => e.kind === \"type\").length\n            : internalFilter === \"declared-types\"\n              ? meta.types.length\n              : internalFilter === \"exported-types\"\n                ? meta.exports.filter((e) => e.kind === \"type\").length\n                : internalFilter === \"classes\"\n                  ? meta.functions.filter((e) => e.kind === \"class\").length\n                  : meta.functions.filter((e) => e.kind !== \"class\").length;\n          break;\n        case \"exports\":\n          count += exportFilter === \"all\"\n            ? meta.exports.filter((e) => e.kind !== \"type\").length\n            : meta.exports.filter((e) => {\n              if (e.kind === \"type\") return false;\n              if (exportFilter === \"functions\") return e.kind === \"function\";\n              if (exportFilter === \"classes\") return e.kind === \"class\";\n              return e.kind === \"constant\";\n            }).length;\n          break;\n      }\n    }\n\n    if (node.children && node.children.length > 0) {\n      for (const child of node.children) {\n        count += getNodeEntryCount(child, key);\n      }\n    }\n\n    return count;\n  }, [exportFilter, importFilter, internalFilter]);\n\n  const sortNodes = useCallback((nodes: FileTreeNode[]): FileTreeNode[] => {\n    if (!sortConfig.key) {\n      // Default sort: Folders first, then Name\n      return [...nodes]\n        .sort((a, b) => {\n          if (a.type !== b.type) return a.type === \"folder\" ? -1 : 1;\n          return a.name.localeCompare(b.name);\n        })\n        .map(node => node.children ? { ...node, children: sortNodes(node.children) } : node);\n    }\n\n    const sorted = [...nodes].sort((a, b) => {\n      const valA = getNodeEntryCount(a, sortConfig.key!);\n      const valB = getNodeEntryCount(b, sortConfig.key!);\n\n      if (valA !== valB) {\n        return sortConfig.order === \"asc\" ? valA - valB : valB - valA;\n      }\n\n      // If values are equal, fallback to folders first, then name\n      if (a.type !== b.type) return a.type === \"folder\" ? -1 : 1;\n      return a.name.localeCompare(b.name);\n    });\n\n    return sorted.map((node) => {\n      if (node.children && node.children.length > 0) {\n        return { ...node, children: sortNodes(node.children) };\n      }\n      return node;\n    });\n  }, [getNodeEntryCount, sortConfig]);\n\n  const filtered = useMemo(() => {\n    const filterRes = !query\n      ? tree\n      : filterTreeByPaths(\n        tree,\n        new Set(\n          fuse.search(query).map((result) => result.item.path),\n        ),\n      );\n    return sortNodes(filterRes);\n  }, [tree, query, fuse, sortNodes]);\n\n  const toggleSort = (key: \"imports\" | \"types\" | \"exports\") => {\n    setSortConfig((prev) => {\n      if (prev.key === key) {\n        if (prev.order === \"desc\") return { key, order: \"asc\" };\n        return { key: null, order: \"desc\" };\n      }\n      return { key, order: \"desc\" };\n    });\n  };\n\n  const renderSortIcon = (key: \"imports\" | \"types\" | \"exports\") => {\n    if (sortConfig.key !== key) return <ArrowUpDown size={12} className={styles.sortIconMuted} />;\n    return sortConfig.order === \"asc\" ? <ArrowUp size={12} className={styles.sortIconActive} /> : <ArrowDown size={12} className={styles.sortIconActive} />;\n  };\n\n  const knownPaths = useMemo(() => collectFilePaths(tree), [tree]);\n  const fileNodeMap = useMemo(() => collectFileNodeMap(tree), [tree]);\n  const collapseLevels = Array.from({ length: maxCollapseDepth }, (_, index) => index + 1);\n\n  useEffect(() => {\n    if (!showCollapseMenu) return;\n    const handleClickOutside = (event: MouseEvent) => {\n      if (collapseMenuRef.current?.contains(event.target as Node)) return;\n      setShowCollapseMenu(false);\n    };\n    document.addEventListener(\"mousedown\", handleClickOutside);\n    return () => document.removeEventListener(\"mousedown\", handleClickOutside);\n  }, [showCollapseMenu]);\n\n  useEffect(() => {\n    if (!showImportFilterMenu) return;\n    const handleClickOutside = (event: MouseEvent) => {\n      if (importFilterMenuRef.current?.contains(event.target as Node)) return;\n      setShowImportFilterMenu(false);\n    };\n    document.addEventListener(\"mousedown\", handleClickOutside);\n    return () => document.removeEventListener(\"mousedown\", handleClickOutside);\n  }, [showImportFilterMenu]);\n\n  useEffect(() => {\n    if (!showInternalFilterMenu) return;\n    const handleClickOutside = (event: MouseEvent) => {\n      if (internalFilterMenuRef.current?.contains(event.target as Node)) return;\n      setShowInternalFilterMenu(false);\n    };\n    document.addEventListener(\"mousedown\", handleClickOutside);\n    return () => document.removeEventListener(\"mousedown\", handleClickOutside);\n  }, [showInternalFilterMenu]);\n\n  useEffect(() => {\n    if (!showExportFilterMenu) return;\n    const handleClickOutside = (event: MouseEvent) => {\n      if (exportFilterMenuRef.current?.contains(event.target as Node)) return;\n      setShowExportFilterMenu(false);\n    };\n    document.addEventListener(\"mousedown\", handleClickOutside);\n    return () => document.removeEventListener(\"mousedown\", handleClickOutside);\n  }, [showExportFilterMenu]);\n\n  return (\n    <div>\n      <div className={styles.searchBox}>\n        <Search size={15} className={styles.searchIcon} />\n        <input\n          type=\"text\"\n          placeholder=\"Filter files, exports, types...\"\n          value={search}\n          onChange={(e) => setSearch(e.target.value)}\n          className={styles.searchInput}\n        />\n      </div>\n      <div style={{ overflowX: \"auto\" }}>\n        <table className={styles.table}>\n          <colgroup>\n            <col className={styles.colName} />\n            <col className={styles.colImports} />\n            <col className={styles.colInternal} />\n            <col className={styles.colExports} />\n          </colgroup>\n          <thead className={styles.thead}>\n            <tr>\n              <th>\n                <div className={styles.headerName}>\n                  <span>Name</span>\n                  <div className={styles.headerSliderWrap}>\n                    <button\n                      type=\"button\"\n                      className={styles.headerStepButton}\n                      aria-label=\"Decrease collapse level\"\n                      disabled={collapseDepth <= collapseLevels[0]}\n                      style={{ opacity: collapseDepth <= collapseLevels[0] ? 0.3 : 1, cursor: collapseDepth <= collapseLevels[0] ? 'not-allowed' : 'pointer' }}\n                      onClick={() => setCollapseDepth((current) => Math.max(collapseLevels[0], current - 1))}\n                    >\n                      -\n                    </button>\n                    <div ref={collapseMenuRef} className=\"relative\">\n                      <button\n                        type=\"button\"\n                        aria-label=\"Collapse folders to level\"\n                        onClick={() => setShowCollapseMenu((open) => !open)}\n                        className=\"inline-flex items-center gap-2 rounded-full border border-slate-800 bg-slate-900/80 px-3 py-1 text-[0.78rem] font-semibold text-slate-100 transition hover:border-sky-400\"\n                      >\n                        <span className={styles.headerSliderLabel}>L{collapseDepth}</span>\n                        <ChevronDown size={12} className={showCollapseMenu ? \"rotate-180 transition\" : \"transition\"} />\n                      </button>\n                      {showCollapseMenu ? (\n                        <div className=\"absolute right-0 z-20 mt-2 min-w-28 rounded-xl border border-slate-800 bg-slate-950/95 p-1 shadow-2xl backdrop-blur\">\n                          {collapseLevels.map((level) => (\n                            <button\n                              key={level}\n                              type=\"button\"\n                              onClick={() => {\n                                setCollapseDepth(level);\n                                setShowCollapseMenu(false);\n                              }}\n                              className={\n                                level === collapseDepth\n                                  ? \"block w-full rounded-lg bg-sky-500/15 px-3 py-2 text-left text-sm font-semibold text-sky-300\"\n                                  : \"block w-full rounded-lg px-3 py-2 text-left text-sm text-slate-200 transition hover:bg-slate-800\"\n                              }\n                            >\n                              Level {level}\n                            </button>\n                          ))}\n                        </div>\n                      ) : null}\n                    </div>\n                    <button\n                      type=\"button\"\n                      className={styles.headerStepButton}\n                      aria-label=\"Increase collapse level\"\n                      disabled={collapseDepth >= collapseLevels[collapseLevels.length - 1]}\n                      style={{ opacity: collapseDepth >= collapseLevels[collapseLevels.length - 1] ? 0.3 : 1, cursor: collapseDepth >= collapseLevels[collapseLevels.length - 1] ? 'not-allowed' : 'pointer' }}\n                      onClick={() => setCollapseDepth((current) => Math.min(collapseLevels[collapseLevels.length - 1], current + 1))}\n                    >\n                      +\n                    </button>\n                  </div>\n                </div>\n              </th>\n              <th className={styles.sortableHeader}>\n                <div className={styles.headerCellContent}>\n                  <button type=\"button\" className={styles.headerInlineButton} onClick={() => toggleSort(\"imports\")}>\n                    Imports {renderSortIcon(\"imports\")}\n                  </button>\n                  <div ref={importFilterMenuRef} className=\"relative\">\n                    <button\n                      type=\"button\"\n                      className={styles.headerInlineButton}\n                      aria-label=\"Filter imports\"\n                      onClick={(e) => {\n                        e.stopPropagation();\n                        setShowImportFilterMenu((open) => !open);\n                      }}\n                    >\n                      <Filter size={12} className={importFilter !== \"all\" ? styles.sortIconActive : styles.sortIconMuted} />\n                    </button>\n                    {showImportFilterMenu ? (\n                      <div className=\"absolute right-0 z-20 mt-2 min-w-36 rounded-xl border border-slate-800 bg-slate-950/95 p-1 shadow-2xl backdrop-blur\">\n                        {[\n                          { key: \"all\", label: \"All imports\" },\n                          { key: \"local\", label: \"Local imports\" },\n                          { key: \"npm\", label: \"npm imports\" },\n                        ].map((option) => (\n                          <button\n                            key={option.key}\n                            type=\"button\"\n                            onClick={() => {\n                              setImportFilter(option.key as \"all\" | \"local\" | \"npm\");\n                              setShowImportFilterMenu(false);\n                            }}\n                            className={\n                              importFilter === option.key\n                                ? \"block w-full rounded-lg bg-sky-500/15 px-3 py-2 text-left text-sm font-semibold text-sky-300\"\n                                : \"block w-full rounded-lg px-3 py-2 text-left text-sm text-slate-200 transition hover:bg-slate-800\"\n                            }\n                          >\n                            {option.label}\n                          </button>\n                        ))}\n                      </div>\n                    ) : null}\n                  </div>\n                </div>\n              </th>\n              <th className={styles.sortableHeader}>\n                <div className={styles.headerCellContent}>\n                  <button type=\"button\" className={styles.headerInlineButton} onClick={() => toggleSort(\"types\")}>\n                    Types &amp; Internal {renderSortIcon(\"types\")}\n                  </button>\n                  <div ref={internalFilterMenuRef} className=\"relative\">\n                    <button\n                      type=\"button\"\n                      className={styles.headerInlineButton}\n                      aria-label=\"Filter types and internal symbols\"\n                      onClick={(e) => {\n                        e.stopPropagation();\n                        setShowInternalFilterMenu((open) => !open);\n                      }}\n                    >\n                      <Filter size={12} className={internalFilter !== \"all\" ? styles.sortIconActive : styles.sortIconMuted} />\n                    </button>\n                    {showInternalFilterMenu ? (\n                      <div className=\"absolute right-0 z-20 mt-2 min-w-44 rounded-xl border border-slate-800 bg-slate-950/95 p-1 shadow-2xl backdrop-blur\">\n                        {[\n                          { key: \"all\", label: \"All symbols\" },\n                          { key: \"declared-types\", label: \"Declared types\" },\n                          { key: \"exported-types\", label: \"Exported types\" },\n                          { key: \"functions\", label: \"Functions\" },\n                          { key: \"classes\", label: \"Classes\" },\n                        ].map((option) => (\n                          <button\n                            key={option.key}\n                            type=\"button\"\n                            onClick={() => {\n                              setInternalFilter(option.key as InternalFilter);\n                              setShowInternalFilterMenu(false);\n                            }}\n                            className={\n                              internalFilter === option.key\n                                ? \"block w-full rounded-lg bg-sky-500/15 px-3 py-2 text-left text-sm font-semibold text-sky-300\"\n                                : \"block w-full rounded-lg px-3 py-2 text-left text-sm text-slate-200 transition hover:bg-slate-800\"\n                            }\n                          >\n                            {option.label}\n                          </button>\n                        ))}\n                      </div>\n                    ) : null}\n                  </div>\n                </div>\n              </th>\n              <th className={styles.sortableHeader}>\n                <div className={styles.headerCellContent}>\n                  <button type=\"button\" className={styles.headerInlineButton} onClick={() => toggleSort(\"exports\")}>\n                    Exports {renderSortIcon(\"exports\")}\n                  </button>\n                  <div ref={exportFilterMenuRef} className=\"relative\">\n                    <button\n                      type=\"button\"\n                      className={styles.headerInlineButton}\n                      aria-label=\"Filter exports\"\n                      onClick={(e) => {\n                        e.stopPropagation();\n                        setShowExportFilterMenu((open) => !open);\n                      }}\n                    >\n                      <Filter size={12} className={exportFilter !== \"all\" ? styles.sortIconActive : styles.sortIconMuted} />\n                    </button>\n                    {showExportFilterMenu ? (\n                      <div className=\"absolute right-0 z-20 mt-2 min-w-40 rounded-xl border border-slate-800 bg-slate-950/95 p-1 shadow-2xl backdrop-blur\">\n                        {[\n                          { key: \"all\", label: \"All exports\" },\n                          { key: \"functions\", label: \"Functions\" },\n                          { key: \"classes\", label: \"Classes\" },\n                          { key: \"constants\", label: \"Constants\" },\n                        ].map((option) => (\n                          <button\n                            key={option.key}\n                            type=\"button\"\n                            onClick={() => {\n                              setExportFilter(option.key as ExportFilter);\n                              setShowExportFilterMenu(false);\n                            }}\n                            className={\n                              exportFilter === option.key\n                                ? \"block w-full rounded-lg bg-sky-500/15 px-3 py-2 text-left text-sm font-semibold text-sky-300\"\n                                : \"block w-full rounded-lg px-3 py-2 text-left text-sm text-slate-200 transition hover:bg-slate-800\"\n                            }\n                          >\n                            {option.label}\n                          </button>\n                        ))}\n                      </div>\n                    ) : null}\n                  </div>\n                </div>\n              </th>\n            </tr>\n          </thead>\n          <tbody>\n            {filtered.length > 0 ? (\n              filtered.map((node) => (\n                <TreeRows\n                  key={`${collapseDepth}-${node.path}`}\n                  node={node}\n                  depth={0}\n                  ghBase={ghBase}\n                  query={query}\n                  knownPaths={knownPaths}\n                  collapseDepth={collapseDepth}\n                  fileNodeMap={fileNodeMap}\n                  importFilter={importFilter}\n                  internalFilter={internalFilter}\n                  exportFilter={exportFilter}\n                  forceOpen={forceOpenSearchResults}\n                />\n              ))\n            ) : (\n              <tr>\n                <td colSpan={4} className={styles.noResults}>\n                  No matches found\n                </td>\n              </tr>\n            )}\n          </tbody>\n        </table>\n      </div>\n    </div>\n  );\n}\n","/**\r\n * Client-side component wrapping the standard file tree view with interactivity.\r\n */\r\nimport { generateFileTree, parseIgnoreFile } from \"../../lib\";\r\nimport { FileTreeTable } from \"./filetree-table\";\r\nimport path from \"path\";\r\n\r\nexport function FileTreeView({\r\n  paths,\r\n  ghBase,\r\n  descriptions = {},\r\n  ignore = [],\r\n  ignoreFile,\r\n  inferDescriptions = true,\r\n  defaultImportFilter,\r\n  defaultInternalFilter,\r\n  defaultExportFilter,\r\n  defaultCollapseDepth,\r\n}: {\r\n  /** Absolute or relative (to cwd) paths to directories or files to scan */\r\n  paths: string[];\r\n  /** Base GitHub URL for file links, e.g. \"https://github.com/user/repo/tree/master/src\" */\r\n  ghBase: string;\r\n  /** Descriptions keyed by relative path from the scanned dir */\r\n  descriptions?: Record<string, string>;\r\n  /** List of file/folder names or relative paths to ignore */\r\n  ignore?: string[];\r\n  /** Path to a .treeignore file (gitignore-style, one pattern per line) */\r\n  ignoreFile?: string;\r\n  /** Infer file descriptions from JSDoc/comments at the top of source files (default: true) */\r\n  inferDescriptions?: boolean;\r\n  /** Default import filter: \"all\" | \"local\" | \"npm\" */\r\n  defaultImportFilter?: \"all\" | \"local\" | \"npm\";\r\n  /** Default internal filter: \"all\" | \"declared-types\" | \"exported-types\" | \"functions\" | \"classes\" */\r\n  defaultInternalFilter?: \"all\" | \"declared-types\" | \"exported-types\" | \"functions\" | \"classes\";\r\n  /** Default export filter: \"all\" | \"functions\" | \"classes\" | \"constants\" */\r\n  defaultExportFilter?: \"all\" | \"functions\" | \"classes\" | \"constants\";\r\n  /** Default collapse depth level */\r\n  defaultCollapseDepth?: number;\r\n}) {\r\n  const ignorePatterns = new Set(ignore);\r\n  if (ignoreFile) {\r\n    const filePath = path.isAbsolute(ignoreFile) ? ignoreFile : path.resolve(process.cwd(), ignoreFile);\r\n    for (const p of parseIgnoreFile(filePath)) {\r\n      ignorePatterns.add(p);\r\n    }\r\n  }\r\n\r\n  const tree = paths.flatMap((p) => {\r\n    const resolved = path.isAbsolute(p) ? p : path.resolve(process.cwd(), p);\r\n    return generateFileTree(resolved, descriptions, ignorePatterns, inferDescriptions);\r\n  });\r\n\r\n  return (\r\n    <FileTreeTable\r\n      tree={tree}\r\n      ghBase={ghBase}\r\n      defaultImportFilter={defaultImportFilter}\r\n      defaultInternalFilter={defaultInternalFilter}\r\n      defaultExportFilter={defaultExportFilter}\r\n      defaultCollapseDepth={defaultCollapseDepth}\r\n    />\r\n  );\r\n}\r\n","/**\n * Copyright 2022 Joe Bell. All rights reserved.\n *\n * This file is licensed to you under the Apache License, Version 2.0\n * (the \"License\"); you may not use this file except in compliance with the\n * License. You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR REPRESENTATIONS OF ANY KIND, either express or implied. See the\n * License for the specific language governing permissions and limitations under\n * the License.\n */ import { clsx } from \"clsx\";\nconst falsyToString = (value)=>typeof value === \"boolean\" ? `${value}` : value === 0 ? \"0\" : value;\nexport const cx = clsx;\nexport const cva = (base, config)=>(props)=>{\n        var _config_compoundVariants;\n        if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n        const { variants, defaultVariants } = config;\n        const getVariantClassNames = Object.keys(variants).map((variant)=>{\n            const variantProp = props === null || props === void 0 ? void 0 : props[variant];\n            const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];\n            if (variantProp === null) return null;\n            const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);\n            return variants[variant][variantKey];\n        });\n        const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param)=>{\n            let [key, value] = param;\n            if (value === undefined) {\n                return acc;\n            }\n            acc[key] = value;\n            return acc;\n        }, {});\n        const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (_config_compoundVariants = config.compoundVariants) === null || _config_compoundVariants === void 0 ? void 0 : _config_compoundVariants.reduce((acc, param)=>{\n            let { class: cvClass, className: cvClassName, ...compoundVariantOptions } = param;\n            return Object.entries(compoundVariantOptions).every((param)=>{\n                let [key, value] = param;\n                return Array.isArray(value) ? value.includes({\n                    ...defaultVariants,\n                    ...propsWithoutUndefined\n                }[key]) : ({\n                    ...defaultVariants,\n                    ...propsWithoutUndefined\n                })[key] === value;\n            }) ? [\n                ...acc,\n                cvClass,\n                cvClassName\n            ] : acc;\n        }, []);\n        return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n    };\n\n","\"use client\";\n\n// src/collapsible.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { jsx } from \"react/jsx-runtime\";\nvar COLLAPSIBLE_NAME = \"Collapsible\";\nvar [createCollapsibleContext, createCollapsibleScope] = createContextScope(COLLAPSIBLE_NAME);\nvar [CollapsibleProvider, useCollapsibleContext] = createCollapsibleContext(COLLAPSIBLE_NAME);\nvar Collapsible = React.forwardRef(\n  (props, forwardedRef) => {\n    const {\n      __scopeCollapsible,\n      open: openProp,\n      defaultOpen,\n      disabled,\n      onOpenChange,\n      ...collapsibleProps\n    } = props;\n    const [open, setOpen] = useControllableState({\n      prop: openProp,\n      defaultProp: defaultOpen ?? false,\n      onChange: onOpenChange,\n      caller: COLLAPSIBLE_NAME\n    });\n    return /* @__PURE__ */ jsx(\n      CollapsibleProvider,\n      {\n        scope: __scopeCollapsible,\n        disabled,\n        contentId: useId(),\n        open,\n        onOpenToggle: React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),\n        children: /* @__PURE__ */ jsx(\n          Primitive.div,\n          {\n            \"data-state\": getState(open),\n            \"data-disabled\": disabled ? \"\" : void 0,\n            ...collapsibleProps,\n            ref: forwardedRef\n          }\n        )\n      }\n    );\n  }\n);\nCollapsible.displayName = COLLAPSIBLE_NAME;\nvar TRIGGER_NAME = \"CollapsibleTrigger\";\nvar CollapsibleTrigger = React.forwardRef(\n  (props, forwardedRef) => {\n    const { __scopeCollapsible, ...triggerProps } = props;\n    const context = useCollapsibleContext(TRIGGER_NAME, __scopeCollapsible);\n    return /* @__PURE__ */ jsx(\n      Primitive.button,\n      {\n        type: \"button\",\n        \"aria-controls\": context.contentId,\n        \"aria-expanded\": context.open || false,\n        \"data-state\": getState(context.open),\n        \"data-disabled\": context.disabled ? \"\" : void 0,\n        disabled: context.disabled,\n        ...triggerProps,\n        ref: forwardedRef,\n        onClick: composeEventHandlers(props.onClick, context.onOpenToggle)\n      }\n    );\n  }\n);\nCollapsibleTrigger.displayName = TRIGGER_NAME;\nvar CONTENT_NAME = \"CollapsibleContent\";\nvar CollapsibleContent = React.forwardRef(\n  (props, forwardedRef) => {\n    const { forceMount, ...contentProps } = props;\n    const context = useCollapsibleContext(CONTENT_NAME, props.__scopeCollapsible);\n    return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: ({ present }) => /* @__PURE__ */ jsx(CollapsibleContentImpl, { ...contentProps, ref: forwardedRef, present }) });\n  }\n);\nCollapsibleContent.displayName = CONTENT_NAME;\nvar CollapsibleContentImpl = React.forwardRef((props, forwardedRef) => {\n  const { __scopeCollapsible, present, children, ...contentProps } = props;\n  const context = useCollapsibleContext(CONTENT_NAME, __scopeCollapsible);\n  const [isPresent, setIsPresent] = React.useState(present);\n  const ref = React.useRef(null);\n  const composedRefs = useComposedRefs(forwardedRef, ref);\n  const heightRef = React.useRef(0);\n  const height = heightRef.current;\n  const widthRef = React.useRef(0);\n  const width = widthRef.current;\n  const isOpen = context.open || isPresent;\n  const isMountAnimationPreventedRef = React.useRef(isOpen);\n  const originalStylesRef = React.useRef(void 0);\n  React.useEffect(() => {\n    const rAF = requestAnimationFrame(() => isMountAnimationPreventedRef.current = false);\n    return () => cancelAnimationFrame(rAF);\n  }, []);\n  useLayoutEffect(() => {\n    const node = ref.current;\n    if (node) {\n      originalStylesRef.current = originalStylesRef.current || {\n        transitionDuration: node.style.transitionDuration,\n        animationName: node.style.animationName\n      };\n      node.style.transitionDuration = \"0s\";\n      node.style.animationName = \"none\";\n      const rect = node.getBoundingClientRect();\n      heightRef.current = rect.height;\n      widthRef.current = rect.width;\n      if (!isMountAnimationPreventedRef.current) {\n        node.style.transitionDuration = originalStylesRef.current.transitionDuration;\n        node.style.animationName = originalStylesRef.current.animationName;\n      }\n      setIsPresent(present);\n    }\n  }, [context.open, present]);\n  return /* @__PURE__ */ jsx(\n    Primitive.div,\n    {\n      \"data-state\": getState(context.open),\n      \"data-disabled\": context.disabled ? \"\" : void 0,\n      id: context.contentId,\n      hidden: !isOpen,\n      ...contentProps,\n      ref: composedRefs,\n      style: {\n        [`--radix-collapsible-content-height`]: height ? `${height}px` : void 0,\n        [`--radix-collapsible-content-width`]: width ? `${width}px` : void 0,\n        ...props.style\n      },\n      children: isOpen && children\n    }\n  );\n});\nfunction getState(open) {\n  return open ? \"open\" : \"closed\";\n}\nvar Root = Collapsible;\nvar Trigger = CollapsibleTrigger;\nvar Content = CollapsibleContent;\nexport {\n  Collapsible,\n  CollapsibleContent,\n  CollapsibleTrigger,\n  Content,\n  Root,\n  Trigger,\n  createCollapsibleScope\n};\n//# sourceMappingURL=index.mjs.map\n","// @ts-nocheck - Radix UI types incompatible with React 19 children prop\n\"use client\"\n\nimport * as CollapsiblePrimitive from \"@radix-ui/react-collapsible\"\n\nfunction Collapsible({\n  ...props\n}: React.ComponentProps<typeof CollapsiblePrimitive.Root>) {\n  return <CollapsiblePrimitive.Root data-slot=\"collapsible\" {...props} />\n}\n\nfunction CollapsibleTrigger({\n  ...props\n}: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleTrigger>) {\n  return (\n    <CollapsiblePrimitive.CollapsibleTrigger\n      data-slot=\"collapsible-trigger\"\n      {...props}\n    />\n  )\n}\n\nfunction CollapsibleContent({\n  ...props\n}: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleContent>) {\n  return (\n    <CollapsiblePrimitive.CollapsibleContent\n      data-slot=\"collapsible-content\"\n      {...props}\n    />\n  )\n}\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent }\n","/**\n * @file type-table.tsx\n * @description Component for displaying property/type tables in documentation.\n */\n// @ts-nocheck - Radix UI types incompatible with React 19 children prop\n'use client';\n\nimport { ChevronDown } from 'lucide-react';\nimport Link from 'fumadocs-core/link';\nimport { cva } from 'class-variance-authority';\nimport { cn } from '../../utils';\nimport { type ReactNode, useState } from 'react';\nimport {\n  Collapsible,\n  CollapsibleContent,\n  CollapsibleTrigger,\n} from '../ui/collapsible';\n\nexport interface ParameterNode {\n  name: string;\n  description: ReactNode;\n}\n\nexport interface TypeNode {\n  /**\n   * Additional description of the field\n   */\n  description?: ReactNode;\n\n  /**\n   * type signature (short)\n   */\n  type: ReactNode;\n\n  /**\n   * type signature (full)\n   */\n  typeDescription?: ReactNode;\n\n  /**\n   * Optional `href` for the type\n   */\n  typeDescriptionLink?: string;\n\n  default?: ReactNode;\n\n  required?: boolean;\n  deprecated?: boolean;\n\n  parameters?: ParameterNode[];\n\n  returns?: ReactNode;\n}\n\nconst keyVariants = cva('text-fd-primary', {\n  variants: {\n    deprecated: {\n      true: 'line-through text-fd-primary/50',\n    },\n  },\n});\n\nconst fieldVariants = cva('text-fd-muted-foreground not-prose pe-2');\n\nexport function TypeTable({ type }: { type: Record<string, TypeNode> }) {\n  return (\n    <div className=\"@container flex flex-col p-1 bg-fd-card text-fd-card-foreground rounded-2xl border my-6 text-sm overflow-hidden\">\n      <div className=\"flex font-medium items-center px-3 py-1 not-prose text-fd-muted-foreground\">\n        <p className=\"w-[25%]\">Prop</p>\n        <p className=\"@max-xl:hidden\">Type</p>\n      </div>\n      {Object.entries(type).map(([key, value]) => (\n        <Item key={key} name={key} item={value} />\n      ))}\n    </div>\n  );\n}\n\nfunction Item({\n  name,\n  item: {\n    parameters = [],\n    description,\n    required = false,\n    deprecated,\n    typeDescription,\n    default: defaultValue,\n    type,\n    typeDescriptionLink,\n    returns,\n  },\n}: {\n  name: string;\n  item: TypeNode;\n}) {\n  const [open, setOpen] = useState(false);\n\n  return (\n    <Collapsible\n      open={open}\n      onOpenChange={setOpen}\n      className={cn(\n        'rounded-xl border overflow-hidden transition-all',\n        open\n          ? 'shadow-sm bg-fd-background not-last:mb-2'\n          : 'border-transparent',\n      )}\n    >\n      <CollapsibleTrigger className=\"relative flex flex-row items-center w-full group text-start px-3 py-2 not-prose hover:bg-fd-accent\">\n        <code\n          className={cn(\n            keyVariants({\n              deprecated,\n              className: 'min-w-fit w-[25%] font-medium',\n            }),\n          )}\n        >\n          {name}\n          {!required && '?'}\n        </code>\n        {typeDescriptionLink ? (\n          <Link href={typeDescriptionLink} className=\"underline @max-xl:hidden\">\n            {type}\n          </Link>\n        ) : (\n          <span className=\"@max-xl:hidden\">{type}</span>\n        )}\n        <ChevronDown className=\"absolute end-2 size-4 text-fd-muted-foreground transition-transform group-data-[state=open]:rotate-180\" />\n      </CollapsibleTrigger>\n      <CollapsibleContent>\n        <div className=\"grid grid-cols-[1fr_3fr] gap-y-4 text-sm p-3 overflow-auto fd-scroll-container border-t\">\n          <div className=\"text-sm prose col-span-full prose-no-margin empty:hidden\">\n            {description}\n          </div>\n          {typeDescription && (\n            <>\n              <p className={cn(fieldVariants())}>Type</p>\n              <p className=\"my-auto not-prose\">{typeDescription}</p>\n            </>\n          )}\n          {defaultValue && (\n            <>\n              <p className={cn(fieldVariants())}>Default</p>\n              <p className=\"my-auto not-prose\">{defaultValue}</p>\n            </>\n          )}\n          {parameters.length > 0 && (\n            <>\n              <p className={cn(fieldVariants())}>Parameters</p>\n              <div className=\"flex flex-col gap-2\">\n                {parameters.map((param) => (\n                  <div\n                    key={param.name}\n                    className=\"inline-flex items-center flex-wrap gap-1\"\n                  >\n                    <p className=\"font-medium not-prose text-nowrap\">\n                      {param.name} -\n                    </p>\n                    <div className=\"text-sm prose prose-no-margin\">\n                      {param.description}\n                    </div>\n                  </div>\n                ))}\n              </div>\n            </>\n          )}\n          {returns && (\n            <>\n              <p className={cn(fieldVariants())}>Returns</p>\n              <div className=\"my-auto text-sm prose prose-no-margin\">\n                {returns}\n              </div>\n            </>\n          )}\n        </div>\n      </CollapsibleContent>\n    </Collapsible>\n  );\n}\n"],"names":["path","ts","module","__defProp","__export","target","all","name","__toCommonJS","mod","typescript_exports","ANONYMOUS","AccessFlags","AssertionLevel","AssignmentDeclarationKind","AssignmentKind","Associativity","ts_BreakpointResolver_exports","BuilderFileEmit","BuilderProgramKind","BuilderState","ts_CallHierarchy_exports","CharacterCodes","CheckFlags","CheckMode","ClassificationType","ClassificationTypeNames","CommentDirectiveType","Comparison","CompletionInfoFlags","CompletionTriggerKind","ts_Completions_exports","ContainerFlags","ContextFlags","Debug","DiagnosticCategory","Diagnostics","DocumentHighlights","ElementFlags","EmitFlags","EmitHint","EmitOnly","EndOfLineState","ExitStatus","ExportKind","Extension","ExternalEmitHelpers","FileIncludeKind","FilePreprocessingDiagnosticsKind","FileSystemEntryKind","FileWatcherEventKind","ts_FindAllReferences_exports","FlattenLevel","FlowFlags","ForegroundColorEscapeSequences","FunctionFlags","GeneratedIdentifierFlags","GetLiteralTextFlags","ts_GoToDefinition_exports","HighlightSpanKind","IdentifierNameMap","ImportKind","ImportsNotUsedAsValues","IndentStyle","IndexFlags","IndexKind","InferenceFlags","InferencePriority","InlayHintKind2","ts_InlayHints_exports","InternalEmitFlags","InternalNodeBuilderFlags","InternalSymbolName","IntersectionFlags","InvalidatedProjectKind","JSDocParsingMode","ts_JsDoc_exports","ts_JsTyping_exports","JsxEmit","JsxFlags","JsxReferenceKind","LanguageFeatureMinimumTarget","LanguageServiceMode","LanguageVariant","LexicalEnvironmentFlags","ListFormat","LogLevel","ts_MapCode_exports","MemberOverrideStatus","ModifierFlags","ModuleDetectionKind","ModuleInstanceState","ModuleKind","ModuleResolutionKind","ModuleSpecifierEnding","ts_NavigateTo_exports","ts_NavigationBar_exports","NewLineKind","NodeBuilderFlags","NodeCheckFlags","NodeFactoryFlags","NodeFlags","NodeResolutionFeatures","ObjectFlags","OperationCanceledException","OperatorPrecedence","ts_OrganizeImports_exports","OrganizeImportsMode","OuterExpressionKinds","ts_OutliningElementsCollector_exports","OutliningSpanKind","OutputFileType","PackageJsonAutoImportPreference","PackageJsonDependencyGroup","PatternMatchKind","PollingInterval","PollingWatchKind","PragmaKindFlags","PredicateSemantics","ts_preparePasteEdits_exports","PrivateIdentifierKind","ProcessLevel","ProgramUpdateLevel","QuotePreference","RegularExpressionFlags","RelationComparisonResult","ts_Rename_exports","ScriptElementKind","ScriptElementKindModifier","ScriptKind","ScriptSnapshot","ScriptTarget","SemanticClassificationFormat","SemanticMeaning","SemicolonPreference","SignatureCheckMode","SignatureFlags","ts_SignatureHelp_exports","SignatureInfo","SignatureKind","ts_SmartSelectionRange_exports","SnippetKind","StatisticType","StructureIsReused","SymbolAccessibility","ts_SymbolDisplay_exports","SymbolDisplayPartKind","SymbolFlags","SymbolFormatFlags","SyntaxKind","Ternary","ThrottledCancellationToken","TokenClass","TokenFlags","TransformFlags","TypeFacts","TypeFlags","TypeFormatFlags","TypeMapKind","TypePredicateKind","TypeReferenceSerializationKind","UnionReduction","UpToDateStatusType","VarianceFlags","Version","VersionRange","WatchDirectoryFlags","WatchDirectoryKind","WatchFileKind","WatchLogLevel","WatchType","accessPrivateIdentifier","addEmitFlags","addEmitHelper","addEmitHelpers","addInternalEmitFlags","addNodeFactoryPatcher","addObjectAllocatorPatcher","addRange","addRelatedInfo","addSyntheticLeadingComment","addSyntheticTrailingComment","addToSeen","advancedAsyncSuperHelper","affectsDeclarationPathOptionDeclarations","affectsEmitOptionDeclarations","allKeysStartWithDot","altDirectorySeparator","and","append","appendIfUnique","arrayFrom","arrayIsEqualTo","arrayIsHomogeneous","arrayOf","arrayReverseIterator","arrayToMap","arrayToMultiMap","arrayToNumericMap","assertType","assign","asyncSuperHelper","attachFileToDiagnostics","base64decode","base64encode","binarySearch","binarySearchKey","bindSourceFile","breakIntoCharacterSpans","breakIntoWordSpans","buildLinkParts","buildOpts","buildOverload","bundlerModuleNameResolver","canBeConvertedToAsync","canHaveDecorators","canHaveExportModifier","canHaveFlowNode","canHaveIllegalDecorators","canHaveIllegalModifiers","canHaveIllegalType","canHaveIllegalTypeParameters","canHaveJSDoc","canHaveLocals","canHaveModifiers","canHaveModuleSpecifier","canHaveSymbol","canIncludeBindAndCheckDiagnostics","canJsonReportNoInputFiles","canProduceDiagnostics","canUsePropertyAccess","canWatchAffectingLocation","canWatchAtTypes","canWatchDirectoryOrFile","canWatchDirectoryOrFilePath","cartesianProduct","cast","chainBundle","chainDiagnosticMessages","changeAnyExtension","changeCompilerHostLikeToUseCache","changeExtension","changeFullExtension","changesAffectModuleResolution","changesAffectingProgramStructure","characterCodeToRegularExpressionFlag","childIsDecorated","classElementOrClassElementParameterIsDecorated","classHasClassThisAssignment","classHasDeclaredOrExplicitlyAssignedName","classHasExplicitlyAssignedName","classOrConstructorParameterIsDecorated","classicNameResolver","ts_classifier_exports","cleanExtendedConfigCache","clear","clearMap","clearSharedExtendedConfigFileWatcher","climbPastPropertyAccess","clone","cloneCompilerOptions","closeFileWatcher","closeFileWatcherOf","ts_codefix_exports","collapseTextChangeRangesAcrossMultipleVersions","collectExternalModuleInfo","combine","combinePaths","commandLineOptionOfCustomType","commentPragmas","commonOptionsWithBuild","compact","compareBooleans","compareDataObjects","compareDiagnostics","compareEmitHelpers","compareNumberOfDirectorySeparators","comparePaths","comparePathsCaseInsensitive","comparePathsCaseSensitive","comparePatternKeys","compareProperties","compareStringsCaseInsensitive","compareStringsCaseInsensitiveEslintCompatible","compareStringsCaseSensitive","compareStringsCaseSensitiveUI","compareTextSpans","compareValues","compilerOptionsAffectDeclarationPath","compilerOptionsAffectEmit","compilerOptionsAffectSemanticDiagnostics","compilerOptionsDidYouMeanDiagnostics","compilerOptionsIndicateEsModules","computeCommonSourceDirectoryOfFilenames","computeLineAndCharacterOfPosition","computeLineOfPosition","computeLineStarts","computePositionOfLineAndCharacter","computeSignatureWithDiagnostics","computeSuggestionDiagnostics","computedOptions","concatenate","concatenateDiagnosticMessageChains","consumesNodeCoreModules","contains","containsIgnoredPath","containsObjectRestOrSpread","containsParseError","containsPath","convertCompilerOptionsForTelemetry","convertCompilerOptionsFromJson","convertJsonOption","convertToBase64","convertToJson","convertToObject","convertToOptionsWithAbsolutePaths","convertToRelativePath","convertToTSConfig","convertTypeAcquisitionFromJson","copyComments","copyEntries","copyLeadingComments","copyProperties","copyTrailingAsLeadingComments","copyTrailingComments","couldStartTrivia","countWhere","createAbstractBuilder","createAccessorPropertyBackingField","createAccessorPropertyGetRedirector","createAccessorPropertySetRedirector","createBaseNodeFactory","createBinaryExpressionTrampoline","createBuilderProgram","createBuilderProgramUsingIncrementalBuildInfo","createBuilderStatusReporter","createCacheableExportInfoMap","createCachedDirectoryStructureHost","createClassifier","createCommentDirectivesMap","createCompilerDiagnostic","createCompilerDiagnosticForInvalidCustomType","createCompilerDiagnosticFromMessageChain","createCompilerHost","createCompilerHostFromProgramHost","createCompilerHostWorker","createDetachedDiagnostic","createDiagnosticCollection","createDiagnosticForFileFromMessageChain","createDiagnosticForNode","createDiagnosticForNodeArray","createDiagnosticForNodeArrayFromMessageChain","createDiagnosticForNodeFromMessageChain","createDiagnosticForNodeInSourceFile","createDiagnosticForRange","createDiagnosticMessageChainFromDiagnostic","createDiagnosticReporter","createDocumentPositionMapper","createDocumentRegistry","createDocumentRegistryInternal","createEmitAndSemanticDiagnosticsBuilderProgram","createEmitHelperFactory","createEmptyExports","createEvaluator","createExpressionForJsxElement","createExpressionForJsxFragment","createExpressionForObjectLiteralElementLike","createExpressionForPropertyName","createExpressionFromEntityName","createExternalHelpersImportDeclarationIfNeeded","createFileDiagnostic","createFileDiagnosticFromMessageChain","createFlowNode","createForOfBindingStatement","createFutureSourceFile","createGetCanonicalFileName","createGetIsolatedDeclarationErrors","createGetSourceFile","createGetSymbolAccessibilityDiagnosticForNode","createGetSymbolAccessibilityDiagnosticForNodeName","createGetSymbolWalker","createIncrementalCompilerHost","createIncrementalProgram","createJsxFactoryExpression","createLanguageService","createLanguageServiceSourceFile","createMemberAccessForPropertyName","createModeAwareCache","createModeAwareCacheKey","createModeMismatchDetails","createModuleNotFoundChain","createModuleResolutionCache","createModuleResolutionLoader","createModuleResolutionLoaderUsingGlobalCache","createModuleSpecifierResolutionHost","createMultiMap","createNameResolver","createNodeConverters","createNodeFactory","createOptionNameMap","createOverload","createPackageJsonImportFilter","createPackageJsonInfo","createParenthesizerRules","createPatternMatcher","createPrinter","createPrinterWithDefaults","createPrinterWithRemoveComments","createPrinterWithRemoveCommentsNeverAsciiEscape","createPrinterWithRemoveCommentsOmitTrailingSemicolon","createProgram","createProgramDiagnostics","createProgramHost","createPropertyNameNodeForIdentifierOrLiteral","createQueue","createRange","createRedirectedBuilderProgram","createResolutionCache","createRuntimeTypeSerializer","createScanner","createSemanticDiagnosticsBuilderProgram","createSet","createSolutionBuilder","createSolutionBuilderHost","createSolutionBuilderWithWatch","createSolutionBuilderWithWatchHost","createSortedArray","createSourceFile","createSourceMapGenerator","createSourceMapSource","createSuperAccessVariableStatement","createSymbolTable","createSymlinkCache","createSyntacticTypeNodeBuilder","createSystemWatchFunctions","createTextChange","createTextChangeFromStartLength","createTextChangeRange","createTextRangeFromNode","createTextRangeFromSpan","createTextSpan","createTextSpanFromBounds","createTextSpanFromNode","createTextSpanFromRange","createTextSpanFromStringLiteralLikeContent","createTextWriter","createTokenRange","createTypeChecker","createTypeReferenceDirectiveResolutionCache","createTypeReferenceResolutionLoader","createWatchCompilerHost2","createWatchCompilerHostOfConfigFile","createWatchCompilerHostOfFilesAndCompilerOptions","createWatchFactory","createWatchHost","createWatchProgram","createWatchStatusReporter","createWriteFileMeasuringIO","declarationNameToString","decodeMappings","decodedTextSpanIntersectsWith","deduplicate","defaultHoverMaximumTruncationLength","defaultInitCompilerOptions","defaultMaximumTruncationLength","diagnosticCategoryName","diagnosticToString","diagnosticsEqualityComparer","directoryProbablyExists","directorySeparator","displayPart","displayPartsToString","disposeEmitNodes","documentSpansEqual","dumpTracingLegend","elementAt","elideNodes","emitDetachedComments","emitFiles","emitFilesAndReportErrors","emitFilesAndReportErrorsAndGetExitStatus","emitModuleKindIsNonNodeESM","emitNewLineBeforeLeadingCommentOfPosition","emitResolverSkipsTypeChecking","emitSkippedWithNoDiagnostics","emptyArray","emptyFileSystemEntries","emptyMap","emptyOptions","endsWith","ensurePathIsNonModuleName","ensureScriptKind","ensureTrailingDirectorySeparator","entityNameToString","enumerateInsertsAndDeletes","equalOwnProperties","equateStringsCaseInsensitive","equateStringsCaseSensitive","equateValues","escapeJsxAttributeString","escapeLeadingUnderscores","escapeNonAsciiString","escapeSnippetText","escapeString","escapeTemplateSubstitution","evaluatorResult","every","exclusivelyPrefixedNodeCoreModules","executeCommandLine","expandPreOrPostfixIncrementOrDecrementExpression","explainFiles","explainIfFileIsRedirectAndImpliedFormat","exportAssignmentIsAlias","expressionResultIsUnused","extend","extensionFromPath","extensionIsTS","extensionsNotSupportingExtensionlessResolution","externalHelpersModuleNameText","factory","fileExtensionIs","fileExtensionIsOneOf","fileIncludeReasonToDiagnostics","fileShouldUseJavaScriptRequire","filter","filterMutate","filterSemanticDiagnostics","find","findAncestor","findBestPatternMatch","findChildOfKind","findComputedPropertyNameCacheAssignment","findConfigFile","findConstructorDeclaration","findContainingList","findDiagnosticForNode","findFirstNonJsxWhitespaceToken","findIndex","findLast","findLastIndex","findListItemInfo","findModifier","findNextToken","findPackageJson","findPackageJsons","findPrecedingMatchingToken","findPrecedingToken","findSuperStatementIndexPath","findTokenOnLeftOfPosition","findUseStrictPrologue","first","firstDefined","firstDefinedIterator","firstIterator","firstOrOnly","firstOrUndefined","firstOrUndefinedIterator","fixupCompilerOptions","flatMap","flatMapIterator","flatMapToMutable","flatten","flattenCommaList","flattenDestructuringAssignment","flattenDestructuringBinding","flattenDiagnosticMessageText","forEach","forEachAncestor","forEachAncestorDirectory","forEachAncestorDirectoryStoppingAtGlobalCache","forEachChild","forEachChildRecursively","forEachDynamicImportOrRequireCall","forEachEmittedFile","forEachEnclosingBlockScopeContainer","forEachEntry","forEachExternalModuleToImportFrom","forEachImportClauseDeclaration","forEachKey","forEachLeadingCommentRange","forEachNameInAccessChainWalkingLeft","forEachNameOfDefaultExport","forEachOptionsSyntaxByName","forEachProjectReference","forEachPropertyAssignment","forEachResolvedProjectReference","forEachReturnStatement","forEachRight","forEachTrailingCommentRange","forEachTsConfigPropArray","forEachUnique","forEachYieldExpression","formatColorAndReset","formatDiagnostic","formatDiagnostics","formatDiagnosticsWithColorAndContext","formatGeneratedName","formatGeneratedNamePart","formatLocation","formatMessage","formatStringFromArgs","ts_formatting_exports","generateDjb2Hash","generateTSConfig","getAdjustedReferenceLocation","getAdjustedRenameLocation","getAliasDeclarationFromName","getAllAccessorDeclarations","getAllDecoratorsOfClass","getAllDecoratorsOfClassElement","getAllJSDocTags","getAllJSDocTagsOfKind","getAllKeys","getAllProjectOutputs","getAllSuperTypeNodes","getAllowImportingTsExtensions","getAllowJSCompilerOption","getAllowSyntheticDefaultImports","getAncestor","getAnyExtensionFromPath","getAreDeclarationMapsEnabled","getAssignedExpandoInitializer","getAssignedName","getAssignmentDeclarationKind","getAssignmentDeclarationPropertyAccessKind","getAssignmentTargetKind","getAutomaticTypeDirectiveNames","getBaseFileName","getBinaryOperatorPrecedence","getBuildInfo","getBuildInfoFileVersionMap","getBuildInfoText","getBuildOrderFromAnyBuildOrder","getBuilderCreationParameters","getBuilderFileEmit","getCanonicalDiagnostic","getCheckFlags","getClassExtendsHeritageElement","getClassLikeDeclarationOfSymbol","getCombinedLocalAndExportSymbolFlags","getCombinedModifierFlags","getCombinedNodeFlags","getCombinedNodeFlagsAlwaysIncludeJSDoc","getCommentRange","getCommonSourceDirectory","getCommonSourceDirectoryOfConfig","getCompilerOptionValue","getConditions","getConfigFileParsingDiagnostics","getConstantValue","getContainerFlags","getContainerNode","getContainingClass","getContainingClassExcludingClassDecorators","getContainingClassStaticBlock","getContainingFunction","getContainingFunctionDeclaration","getContainingFunctionOrClassStaticBlock","getContainingNodeArray","getContainingObjectLiteralElement","getContextualTypeFromParent","getContextualTypeFromParentOrAncestorTypeNode","getDeclarationDiagnostics","getDeclarationEmitExtensionForPath","getDeclarationEmitOutputFilePath","getDeclarationEmitOutputFilePathWorker","getDeclarationFileExtension","getDeclarationFromName","getDeclarationModifierFlagsFromSymbol","getDeclarationOfKind","getDeclarationsOfKind","getDeclaredExpandoInitializer","getDecorators","getDefaultCompilerOptions2","getDefaultFormatCodeSettings","getDefaultLibFileName","getDefaultLibFilePath","getDefaultLikeExportInfo","getDefaultLikeExportNameFromDeclaration","getDefaultResolutionModeForFileWorker","getDiagnosticText","getDiagnosticsWithinSpan","getDirectoryPath","getDirectoryToWatchFailedLookupLocation","getDirectoryToWatchFailedLookupLocationFromTypeRoot","getDocumentPositionMapper","getDocumentSpansEqualityComparer","getESModuleInterop","getEditsForFileRename","getEffectiveBaseTypeNode","getEffectiveConstraintOfTypeParameter","getEffectiveContainerForJSDocTemplateTag","getEffectiveImplementsTypeNodes","getEffectiveInitializer","getEffectiveJSDocHost","getEffectiveModifierFlags","getEffectiveModifierFlagsAlwaysIncludeJSDoc","getEffectiveModifierFlagsNoCache","getEffectiveReturnTypeNode","getEffectiveSetAccessorTypeAnnotationNode","getEffectiveTypeAnnotationNode","getEffectiveTypeParameterDeclarations","getEffectiveTypeRoots","getElementOrPropertyAccessArgumentExpressionOrName","getElementOrPropertyAccessName","getElementsOfBindingOrAssignmentPattern","getEmitDeclarations","getEmitFlags","getEmitHelpers","getEmitModuleDetectionKind","getEmitModuleFormatOfFileWorker","getEmitModuleKind","getEmitModuleResolutionKind","getEmitScriptTarget","getEmitStandardClassFields","getEnclosingBlockScopeContainer","getEnclosingContainer","getEncodedSemanticClassifications","getEncodedSyntacticClassifications","getEndLinePosition","getEntityNameFromTypeNode","getEntrypointsFromPackageJsonInfo","getErrorCountForSummary","getErrorSpanForNode","getErrorSummaryText","getEscapedTextOfIdentifierOrLiteral","getEscapedTextOfJsxAttributeName","getEscapedTextOfJsxNamespacedName","getExpandoInitializer","getExportAssignmentExpression","getExportInfoMap","getExportNeedsImportStarHelper","getExpressionAssociativity","getExpressionPrecedence","getExternalHelpersModuleName","getExternalModuleImportEqualsDeclarationExpression","getExternalModuleName","getExternalModuleNameFromDeclaration","getExternalModuleNameFromPath","getExternalModuleNameLiteral","getExternalModuleRequireArgument","getFallbackOptions","getFileEmitOutput","getFileMatcherPatterns","getFileNamesFromConfigSpecs","getFileWatcherEventKind","getFilesInErrorForSummary","getFirstConstructorWithBody","getFirstIdentifier","getFirstNonSpaceCharacterPosition","getFirstProjectOutput","getFixableErrorSpanExpression","getFormatCodeSettingsForWriting","getFullWidth","getFunctionFlags","getHeritageClause","getHostSignatureFromJSDoc","getIdentifierAutoGenerate","getIdentifierGeneratedImportReference","getIdentifierTypeArguments","getImmediatelyInvokedFunctionExpression","getImpliedNodeFormatForEmitWorker","getImpliedNodeFormatForFile","getImpliedNodeFormatForFileWorker","getImportNeedsImportDefaultHelper","getImportNeedsImportStarHelper","getIndentString","getInferredLibraryNameResolveFrom","getInitializedVariables","getInitializerOfBinaryExpression","getInitializerOfBindingOrAssignmentElement","getInterfaceBaseTypeNodes","getInternalEmitFlags","getInvokedExpression","getIsFileExcluded","getIsolatedModules","getJSDocAugmentsTag","getJSDocClassTag","getJSDocCommentRanges","getJSDocCommentsAndTags","getJSDocDeprecatedTag","getJSDocDeprecatedTagNoCache","getJSDocEnumTag","getJSDocHost","getJSDocImplementsTags","getJSDocOverloadTags","getJSDocOverrideTagNoCache","getJSDocParameterTags","getJSDocParameterTagsNoCache","getJSDocPrivateTag","getJSDocPrivateTagNoCache","getJSDocProtectedTag","getJSDocProtectedTagNoCache","getJSDocPublicTag","getJSDocPublicTagNoCache","getJSDocReadonlyTag","getJSDocReadonlyTagNoCache","getJSDocReturnTag","getJSDocReturnType","getJSDocRoot","getJSDocSatisfiesExpressionType","getJSDocSatisfiesTag","getJSDocTags","getJSDocTemplateTag","getJSDocThisTag","getJSDocType","getJSDocTypeAliasName","getJSDocTypeAssertionType","getJSDocTypeParameterDeclarations","getJSDocTypeParameterTags","getJSDocTypeParameterTagsNoCache","getJSDocTypeTag","getJSXImplicitImportBase","getJSXRuntimeImport","getJSXTransformEnabled","getKeyForCompilerOptions","getLanguageVariant","getLastChild","getLeadingCommentRanges","getLeadingCommentRangesOfNode","getLeftmostAccessExpression","getLeftmostExpression","getLibFileNameFromLibReference","getLibNameFromLibReference","getLibraryNameFromLibFileName","getLineAndCharacterOfPosition","getLineInfo","getLineOfLocalPosition","getLineStartPositionForPosition","getLineStarts","getLinesBetweenPositionAndNextNonWhitespaceCharacter","getLinesBetweenPositionAndPrecedingNonWhitespaceCharacter","getLinesBetweenPositions","getLinesBetweenRangeEndAndRangeStart","getLinesBetweenRangeEndPositions","getLiteralText","getLocalNameForExternalImport","getLocalSymbolForExportDefault","getLocaleSpecificMessage","getLocaleTimeString","getMappedContextSpan","getMappedDocumentSpan","getMappedLocation","getMatchedFileSpec","getMatchedIncludeSpec","getMeaningFromDeclaration","getMeaningFromLocation","getMembersOfDeclaration","getModeForFileReference","getModeForResolutionAtIndex","getModeForUsageLocation","getModifiedTime","getModifiers","getModuleInstanceState","getModuleNameStringLiteralAt","getModuleSpecifierEndingPreference","getModuleSpecifierResolverHost","getNameForExportedSymbol","getNameFromImportAttribute","getNameFromIndexInfo","getNameFromPropertyName","getNameOfAccessExpression","getNameOfCompilerOptionValue","getNameOfDeclaration","getNameOfExpando","getNameOfJSDocTypedef","getNameOfScriptTarget","getNameOrArgument","getNameTable","getNamespaceDeclarationNode","getNewLineCharacter","getNewLineKind","getNewLineOrDefaultFromHost","getNewTargetContainer","getNextJSDocCommentLocation","getNodeChildren","getNodeForGeneratedName","getNodeId","getNodeKind","getNodeModifiers","getNodeModulePathParts","getNonAssignedNameOfDeclaration","getNonAssignmentOperatorForCompoundAssignment","getNonAugmentationDeclaration","getNonDecoratorTokenPosOfNode","getNonIncrementalBuildInfoRoots","getNonModifierTokenPosOfNode","getNormalizedAbsolutePath","getNormalizedAbsolutePathWithoutRoot","getNormalizedPathComponents","getObjectFlags","getOperatorAssociativity","getOperatorPrecedence","getOptionFromName","getOptionsForLibraryResolution","getOptionsNameMap","getOptionsSyntaxByArrayElementValue","getOptionsSyntaxByValue","getOrCreateEmitNode","getOrUpdate","getOriginalNode","getOriginalNodeId","getOutputDeclarationFileName","getOutputDeclarationFileNameWorker","getOutputExtension","getOutputFileNames","getOutputJSFileNameWorker","getOutputPathsFor","getOwnEmitOutputFilePath","getOwnKeys","getOwnValues","getPackageJsonTypesVersionsPaths","getPackageNameFromTypesPackageName","getPackageScopeForPath","getParameterSymbolFromJSDoc","getParentNodeInSpan","getParseTreeNode","getParsedCommandLineOfConfigFile","getPathComponents","getPathFromPathComponents","getPathUpdater","getPathsBasePath","getPatternFromSpec","getPendingEmitKindWithSeen","getPositionOfLineAndCharacter","getPossibleGenericSignatures","getPossibleOriginalInputExtensionForExtension","getPossibleOriginalInputPathWithoutChangingExt","getPossibleTypeArgumentsInfo","getPreEmitDiagnostics","getPrecedingNonSpaceCharacterPosition","getPrivateIdentifier","getProperties","getProperty","getPropertyAssignmentAliasLikeExpression","getPropertyNameForPropertyNameNode","getPropertyNameFromType","getPropertyNameOfBindingOrAssignmentElement","getPropertySymbolFromBindingElement","getPropertySymbolsFromContextualType","getQuoteFromPreference","getQuotePreference","getRangesWhere","getRefactorContextSpan","getReferencedFileLocation","getRegexFromPattern","getRegularExpressionForWildcard","getRegularExpressionsForWildcards","getRelativePathFromDirectory","getRelativePathFromFile","getRelativePathToDirectoryOrUrl","getRenameLocation","getReplacementSpanForContextToken","getResolutionDiagnostic","getResolutionModeOverride","getResolveJsonModule","getResolvePackageJsonExports","getResolvePackageJsonImports","getResolvedExternalModuleName","getResolvedModuleFromResolution","getResolvedTypeReferenceDirectiveFromResolution","getRestIndicatorOfBindingOrAssignmentElement","getRestParameterElementType","getRightMostAssignedExpression","getRootDeclaration","getRootDirectoryOfResolutionCache","getRootLength","getScriptKind","getScriptKindFromFileName","getScriptTargetFeatures","getSelectedEffectiveModifierFlags","getSelectedSyntacticModifierFlags","getSemanticClassifications","getSemanticJsxChildren","getSetAccessorTypeAnnotationNode","getSetAccessorValueParameter","getSetExternalModuleIndicator","getShebang","getSingleVariableOfVariableStatement","getSnapshotText","getSnippetElement","getSourceFileOfModule","getSourceFileOfNode","getSourceFilePathInNewDir","getSourceFileVersionAsHashFromText","getSourceFilesToEmit","getSourceMapRange","getSourceMapper","getSourceTextOfNodeFromSourceFile","getSpanOfTokenAtPosition","getSpellingSuggestion","getStartPositionOfLine","getStartPositionOfRange","getStartsOnNewLine","getStaticPropertiesAndClassStaticBlock","getStrictOptionValue","getStringComparer","getSubPatternFromSpec","getSuperCallFromStatement","getSuperContainer","getSupportedCodeFixes","getSupportedExtensions","getSupportedExtensionsWithJsonIfResolveJsonModule","getSwitchedType","getSymbolId","getSymbolNameForPrivateIdentifier","getSymbolTarget","getSyntacticClassifications","getSyntacticModifierFlags","getSyntacticModifierFlagsNoCache","getSynthesizedDeepClone","getSynthesizedDeepCloneWithReplacements","getSynthesizedDeepClones","getSynthesizedDeepClonesWithReplacements","getSyntheticLeadingComments","getSyntheticTrailingComments","getTargetLabel","getTargetOfBindingOrAssignmentElement","getTemporaryModuleResolutionState","getTextOfConstantValue","getTextOfIdentifierOrLiteral","getTextOfJSDocComment","getTextOfJsxAttributeName","getTextOfJsxNamespacedName","getTextOfNode","getTextOfNodeFromSourceText","getTextOfPropertyName","getThisContainer","getThisParameter","getTokenAtPosition","getTokenPosOfNode","getTokenSourceMapRange","getTouchingPropertyName","getTouchingToken","getTrailingCommentRanges","getTrailingSemicolonDeferringWriter","getTransformers","getTsBuildInfoEmitOutputFilePath","getTsConfigObjectLiteralExpression","getTsConfigPropArrayElementValue","getTypeAnnotationNode","getTypeArgumentOrTypeParameterList","getTypeKeywordOfTypeOnlyImport","getTypeNode","getTypeNodeIfAccessible","getTypeParameterFromJsDoc","getTypeParameterOwner","getTypesPackageName","getUILocale","getUniqueName","getUniqueSymbolId","getUseDefineForClassFields","getWatchErrorSummaryDiagnosticMessage","getWatchFactory","group","groupBy","guessIndentation","handleNoEmitOptions","handleWatchOptionsConfigDirTemplateSubstitution","hasAbstractModifier","hasAccessorModifier","hasAmbientModifier","hasChangesInResolutions","hasContextSensitiveParameters","hasDecorators","hasDocComment","hasDynamicName","hasEffectiveModifier","hasEffectiveModifiers","hasEffectiveReadonlyModifier","hasExtension","hasImplementationTSFileExtension","hasIndexSignature","hasInferredType","hasInitializer","hasInvalidEscape","hasJSDocNodes","hasJSDocParameterTags","hasJSFileExtension","hasJsonModuleEmitEnabled","hasOnlyExpressionInitializer","hasOverrideModifier","hasPossibleExternalModuleReference","hasProperty","hasPropertyAccessExpressionWithName","hasQuestionToken","hasRecordedExternalHelpers","hasResolutionModeOverride","hasRestParameter","hasScopeMarker","hasStaticModifier","hasSyntacticModifier","hasSyntacticModifiers","hasTSFileExtension","hasTabstop","hasTrailingDirectorySeparator","hasType","hasTypeArguments","hasZeroOrOneAsteriskCharacter","hostGetCanonicalFileName","hostUsesCaseSensitiveFileNames","idText","identifierIsThisKeyword","identifierToKeywordKind","identity","identitySourceMapConsumer","ignoreSourceNewlines","ignoredPaths","importFromModuleSpecifier","importSyntaxAffectsModuleResolution","indexOfAnyCharCode","indexOfNode","indicesOf","inferredTypesContainingFile","injectClassNamedEvaluationHelperBlockIfMissing","injectClassThisAssignmentIfMissing","insertImports","insertSorted","insertStatementAfterCustomPrologue","insertStatementAfterStandardPrologue","insertStatementsAfterCustomPrologue","insertStatementsAfterStandardPrologue","intersperse","intrinsicTagNameToString","introducesArgumentsExoticObject","inverseJsxOptionMap","isAbstractConstructorSymbol","isAbstractModifier","isAccessExpression","isAccessibilityModifier","isAccessor","isAccessorModifier","isAliasableExpression","isAmbientModule","isAmbientPropertyDeclaration","isAnyDirectorySeparator","isAnyImportOrBareOrAccessedRequire","isAnyImportOrReExport","isAnyImportOrRequireStatement","isAnyImportSyntax","isAnySupportedFileExtension","isApplicableVersionedTypesKey","isArgumentExpressionOfElementAccess","isArray","isArrayBindingElement","isArrayBindingOrAssignmentElement","isArrayBindingOrAssignmentPattern","isArrayBindingPattern","isArrayLiteralExpression","isArrayLiteralOrObjectLiteralDestructuringPattern","isArrayTypeNode","isArrowFunction","isAsExpression","isAssertClause","isAssertEntry","isAssertionExpression","isAssertsKeyword","isAssignmentDeclaration","isAssignmentExpression","isAssignmentOperator","isAssignmentPattern","isAssignmentTarget","isAsteriskToken","isAsyncFunction","isAsyncModifier","isAutoAccessorPropertyDeclaration","isAwaitExpression","isAwaitKeyword","isBigIntLiteral","isBinaryExpression","isBinaryLogicalOperator","isBinaryOperatorToken","isBindableObjectDefinePropertyCall","isBindableStaticAccessExpression","isBindableStaticElementAccessExpression","isBindableStaticNameExpression","isBindingElement","isBindingElementOfBareOrAccessedRequire","isBindingName","isBindingOrAssignmentElement","isBindingOrAssignmentPattern","isBindingPattern","isBlock","isBlockLike","isBlockOrCatchScoped","isBlockScope","isBlockScopedContainerTopLevel","isBooleanLiteral","isBreakOrContinueStatement","isBreakStatement","isBuildCommand","isBuildInfoFile","isBuilderProgram","isBundle","isCallChain","isCallExpression","isCallExpressionTarget","isCallLikeExpression","isCallLikeOrFunctionLikeExpression","isCallOrNewExpression","isCallOrNewExpressionTarget","isCallSignatureDeclaration","isCallToHelper","isCaseBlock","isCaseClause","isCaseKeyword","isCaseOrDefaultClause","isCatchClause","isCatchClauseVariableDeclaration","isCatchClauseVariableDeclarationOrBindingElement","isCheckJsEnabledForFile","isCircularBuildOrder","isClassDeclaration","isClassElement","isClassExpression","isClassInstanceProperty","isClassLike","isClassMemberModifier","isClassNamedEvaluationHelperBlock","isClassOrTypeElement","isClassStaticBlockDeclaration","isClassThisAssignmentBlock","isColonToken","isCommaExpression","isCommaListExpression","isCommaSequence","isCommaToken","isComment","isCommonJsExportPropertyAssignment","isCommonJsExportedExpression","isCompoundAssignment","isComputedNonLiteralName","isComputedPropertyName","isConciseBody","isConditionalExpression","isConditionalTypeNode","isConstAssertion","isConstTypeReference","isConstructSignatureDeclaration","isConstructorDeclaration","isConstructorTypeNode","isContextualKeyword","isContinueStatement","isCustomPrologue","isDebuggerStatement","isDeclaration","isDeclarationBindingElement","isDeclarationFileName","isDeclarationName","isDeclarationNameOfEnumOrNamespace","isDeclarationReadonly","isDeclarationStatement","isDeclarationWithTypeParameterChildren","isDeclarationWithTypeParameters","isDecorator","isDecoratorTarget","isDefaultClause","isDefaultImport","isDefaultModifier","isDefaultedExpandoInitializer","isDeleteExpression","isDeleteTarget","isDeprecatedDeclaration","isDestructuringAssignment","isDiskPathRoot","isDoStatement","isDocumentRegistryEntry","isDotDotDotToken","isDottedName","isDynamicName","isEffectiveExternalModule","isEffectiveStrictModeSourceFile","isElementAccessChain","isElementAccessExpression","isEmittedFileOfProgram","isEmptyArrayLiteral","isEmptyBindingElement","isEmptyBindingPattern","isEmptyObjectLiteral","isEmptyStatement","isEmptyStringLiteral","isEntityName","isEntityNameExpression","isEnumConst","isEnumDeclaration","isEnumMember","isEqualityOperatorKind","isEqualsGreaterThanToken","isExclamationToken","isExcludedFile","isExclusivelyTypeOnlyImportOrExport","isExpandoPropertyDeclaration","isExportAssignment","isExportDeclaration","isExportModifier","isExportName","isExportNamespaceAsDefaultDeclaration","isExportOrDefaultModifier","isExportSpecifier","isExportsIdentifier","isExportsOrModuleExportsOrAlias","isExpression","isExpressionNode","isExpressionOfExternalModuleImportEqualsDeclaration","isExpressionOfOptionalChainRoot","isExpressionStatement","isExpressionWithTypeArguments","isExpressionWithTypeArgumentsInClassExtendsClause","isExternalModule","isExternalModuleAugmentation","isExternalModuleImportEqualsDeclaration","isExternalModuleIndicator","isExternalModuleNameRelative","isExternalModuleReference","isExternalModuleSymbol","isExternalOrCommonJsModule","isFileLevelReservedGeneratedIdentifier","isFileLevelUniqueName","isFileProbablyExternalModule","isFirstDeclarationOfSymbolParameter","isFixablePromiseHandler","isForInOrOfStatement","isForInStatement","isForInitializer","isForOfStatement","isForStatement","isFullSourceFile","isFunctionBlock","isFunctionBody","isFunctionDeclaration","isFunctionExpression","isFunctionExpressionOrArrowFunction","isFunctionLike","isFunctionLikeDeclaration","isFunctionLikeKind","isFunctionLikeOrClassStaticBlockDeclaration","isFunctionOrConstructorTypeNode","isFunctionOrModuleBlock","isFunctionSymbol","isFunctionTypeNode","isGeneratedIdentifier","isGeneratedPrivateIdentifier","isGetAccessor","isGetAccessorDeclaration","isGetOrSetAccessorDeclaration","isGlobalScopeAugmentation","isGlobalSourceFile","isGrammarError","isHeritageClause","isHoistedFunction","isHoistedVariableStatement","isIdentifier","isIdentifierANonContextualKeyword","isIdentifierName","isIdentifierOrThisTypeNode","isIdentifierPart","isIdentifierStart","isIdentifierText","isIdentifierTypePredicate","isIdentifierTypeReference","isIfStatement","isIgnoredFileFromWildCardWatching","isImplicitGlob","isImportAttribute","isImportAttributeName","isImportAttributes","isImportCall","isImportClause","isImportDeclaration","isImportEqualsDeclaration","isImportKeyword","isImportMeta","isImportOrExportSpecifier","isImportOrExportSpecifierName","isImportSpecifier","isImportTypeAssertionContainer","isImportTypeNode","isImportable","isInComment","isInCompoundLikeAssignment","isInExpressionContext","isInJSDoc","isInJSFile","isInJSXText","isInJsonFile","isInNonReferenceComment","isInReferenceComment","isInRightSideOfInternalImportEqualsDeclaration","isInString","isInTemplateString","isInTopLevelContext","isInTypeQuery","isIncrementalBuildInfo","isIncrementalBundleEmitBuildInfo","isIncrementalCompilation","isIndexSignatureDeclaration","isIndexedAccessTypeNode","isInferTypeNode","isInfinityOrNaNString","isInitializedProperty","isInitializedVariable","isInsideJsxElement","isInsideJsxElementOrAttribute","isInsideNodeModules","isInsideTemplateLiteral","isInstanceOfExpression","isInstantiatedModule","isInterfaceDeclaration","isInternalDeclaration","isInternalModuleImportEqualsDeclaration","isInternalName","isIntersectionTypeNode","isIntrinsicJsxName","isIterationStatement","isJSDoc","isJSDocAllType","isJSDocAugmentsTag","isJSDocAuthorTag","isJSDocCallbackTag","isJSDocClassTag","isJSDocCommentContainingNode","isJSDocConstructSignature","isJSDocDeprecatedTag","isJSDocEnumTag","isJSDocFunctionType","isJSDocImplementsTag","isJSDocImportTag","isJSDocIndexSignature","isJSDocLikeText","isJSDocLink","isJSDocLinkCode","isJSDocLinkLike","isJSDocLinkPlain","isJSDocMemberName","isJSDocNameReference","isJSDocNamepathType","isJSDocNamespaceBody","isJSDocNode","isJSDocNonNullableType","isJSDocNullableType","isJSDocOptionalParameter","isJSDocOptionalType","isJSDocOverloadTag","isJSDocOverrideTag","isJSDocParameterTag","isJSDocPrivateTag","isJSDocPropertyLikeTag","isJSDocPropertyTag","isJSDocProtectedTag","isJSDocPublicTag","isJSDocReadonlyTag","isJSDocReturnTag","isJSDocSatisfiesExpression","isJSDocSatisfiesTag","isJSDocSeeTag","isJSDocSignature","isJSDocTag","isJSDocTemplateTag","isJSDocThisTag","isJSDocThrowsTag","isJSDocTypeAlias","isJSDocTypeAssertion","isJSDocTypeExpression","isJSDocTypeLiteral","isJSDocTypeTag","isJSDocTypedefTag","isJSDocUnknownTag","isJSDocUnknownType","isJSDocVariadicType","isJSXTagName","isJsonEqual","isJsonSourceFile","isJsxAttribute","isJsxAttributeLike","isJsxAttributeName","isJsxAttributes","isJsxCallLike","isJsxChild","isJsxClosingElement","isJsxClosingFragment","isJsxElement","isJsxExpression","isJsxFragment","isJsxNamespacedName","isJsxOpeningElement","isJsxOpeningFragment","isJsxOpeningLikeElement","isJsxOpeningLikeElementTagName","isJsxSelfClosingElement","isJsxSpreadAttribute","isJsxTagNameExpression","isJsxText","isJumpStatementTarget","isKeyword","isKeywordOrPunctuation","isKnownSymbol","isLabelName","isLabelOfLabeledStatement","isLabeledStatement","isLateVisibilityPaintedStatement","isLeftHandSideExpression","isLet","isLineBreak","isLiteralComputedPropertyDeclarationName","isLiteralExpression","isLiteralExpressionOfObject","isLiteralImportTypeNode","isLiteralKind","isLiteralNameOfPropertyDeclarationOrIndexAccess","isLiteralTypeLiteral","isLiteralTypeNode","isLocalName","isLogicalOperator","isLogicalOrCoalescingAssignmentExpression","isLogicalOrCoalescingAssignmentOperator","isLogicalOrCoalescingBinaryExpression","isLogicalOrCoalescingBinaryOperator","isMappedTypeNode","isMemberName","isMetaProperty","isMethodDeclaration","isMethodOrAccessor","isMethodSignature","isMinusToken","isMissingDeclaration","isMissingPackageJsonInfo","isModifier","isModifierKind","isModifierLike","isModuleAugmentationExternal","isModuleBlock","isModuleBody","isModuleDeclaration","isModuleExportName","isModuleExportsAccessExpression","isModuleIdentifier","isModuleName","isModuleOrEnumDeclaration","isModuleReference","isModuleSpecifierLike","isModuleWithStringLiteralName","isNameOfFunctionDeclaration","isNameOfModuleDeclaration","isNamedDeclaration","isNamedEvaluation","isNamedEvaluationSource","isNamedExportBindings","isNamedExports","isNamedImportBindings","isNamedImports","isNamedImportsOrExports","isNamedTupleMember","isNamespaceBody","isNamespaceExport","isNamespaceExportDeclaration","isNamespaceImport","isNamespaceReexportDeclaration","isNewExpression","isNewExpressionTarget","isNewScopeNode","isNoSubstitutionTemplateLiteral","isNodeArray","isNodeArrayMultiLine","isNodeDescendantOf","isNodeKind","isNodeLikeSystem","isNodeModulesDirectory","isNodeWithPossibleHoistedDeclaration","isNonContextualKeyword","isNonGlobalAmbientModule","isNonNullAccess","isNonNullChain","isNonNullExpression","isNonStaticMethodOrAccessorWithPrivateName","isNotEmittedStatement","isNullishCoalesce","isNumber","isNumericLiteral","isNumericLiteralName","isObjectBindingElementWithoutPropertyName","isObjectBindingOrAssignmentElement","isObjectBindingOrAssignmentPattern","isObjectBindingPattern","isObjectLiteralElement","isObjectLiteralElementLike","isObjectLiteralExpression","isObjectLiteralMethod","isObjectLiteralOrClassExpressionMethodOrAccessor","isObjectTypeDeclaration","isOmittedExpression","isOptionalChain","isOptionalChainRoot","isOptionalDeclaration","isOptionalJSDocPropertyLikeTag","isOptionalTypeNode","isOuterExpression","isOutermostOptionalChain","isOverrideModifier","isPackageJsonInfo","isPackedArrayLiteral","isParameter","isParameterPropertyDeclaration","isParameterPropertyModifier","isParenthesizedExpression","isParenthesizedTypeNode","isParseTreeNode","isPartOfParameterDeclaration","isPartOfTypeNode","isPartOfTypeOnlyImportOrExportDeclaration","isPartOfTypeQuery","isPartiallyEmittedExpression","isPatternMatch","isPinnedComment","isPlainJsFile","isPlusToken","isPossiblyTypeArgumentPosition","isPostfixUnaryExpression","isPrefixUnaryExpression","isPrimitiveLiteralValue","isPrivateIdentifier","isPrivateIdentifierClassElementDeclaration","isPrivateIdentifierPropertyAccessExpression","isPrivateIdentifierSymbol","isProgramUptoDate","isPrologueDirective","isPropertyAccessChain","isPropertyAccessEntityNameExpression","isPropertyAccessExpression","isPropertyAccessOrQualifiedName","isPropertyAccessOrQualifiedNameOrImportTypeNode","isPropertyAssignment","isPropertyDeclaration","isPropertyName","isPropertyNameLiteral","isPropertySignature","isPrototypeAccess","isPrototypePropertyAssignment","isPunctuation","isPushOrUnshiftIdentifier","isQualifiedName","isQuestionDotToken","isQuestionOrExclamationToken","isQuestionOrPlusOrMinusToken","isQuestionToken","isReadonlyKeyword","isReadonlyKeywordOrPlusOrMinusToken","isRecognizedTripleSlashComment","isReferenceFileLocation","isReferencedFile","isRegularExpressionLiteral","isRequireCall","isRequireVariableStatement","isRestParameter","isRestTypeNode","isReturnStatement","isReturnStatementWithFixablePromiseHandler","isRightSideOfAccessExpression","isRightSideOfInstanceofExpression","isRightSideOfPropertyAccess","isRightSideOfQualifiedName","isRightSideOfQualifiedNameOrPropertyAccess","isRightSideOfQualifiedNameOrPropertyAccessOrJSDocMemberName","isRootedDiskPath","isSameEntityName","isSatisfiesExpression","isSemicolonClassElement","isSetAccessor","isSetAccessorDeclaration","isShiftOperatorOrHigher","isShorthandAmbientModuleSymbol","isShorthandPropertyAssignment","isSideEffectImport","isSignedNumericLiteral","isSimpleCopiableExpression","isSimpleInlineableExpression","isSimpleParameterList","isSingleOrDoubleQuote","isSolutionConfig","isSourceElement","isSourceFile","isSourceFileFromLibrary","isSourceFileJS","isSourceFileNotJson","isSourceMapping","isSpecialPropertyDeclaration","isSpreadAssignment","isSpreadElement","isStatement","isStatementButNotDeclaration","isStatementOrBlock","isStatementWithLocals","isStatic","isStaticModifier","isString","isStringANonContextualKeyword","isStringAndEmptyAnonymousObjectIntersection","isStringDoubleQuoted","isStringLiteral","isStringLiteralLike","isStringLiteralOrJsxExpression","isStringLiteralOrTemplate","isStringOrNumericLiteralLike","isStringOrRegularExpressionOrTemplateLiteral","isStringTextContainingNode","isSuperCall","isSuperKeyword","isSuperProperty","isSupportedSourceFileName","isSwitchStatement","isSyntaxList","isSyntheticExpression","isSyntheticReference","isTagName","isTaggedTemplateExpression","isTaggedTemplateTag","isTemplateExpression","isTemplateHead","isTemplateLiteral","isTemplateLiteralKind","isTemplateLiteralToken","isTemplateLiteralTypeNode","isTemplateLiteralTypeSpan","isTemplateMiddle","isTemplateMiddleOrTemplateTail","isTemplateSpan","isTemplateTail","isTextWhiteSpaceLike","isThis","isThisContainerOrFunctionBlock","isThisIdentifier","isThisInTypeQuery","isThisInitializedDeclaration","isThisInitializedObjectBindingExpression","isThisProperty","isThisTypeNode","isThisTypeParameter","isThisTypePredicate","isThrowStatement","isToken","isTokenKind","isTraceEnabled","isTransientSymbol","isTrivia","isTryStatement","isTupleTypeNode","isTypeAlias","isTypeAliasDeclaration","isTypeAssertionExpression","isTypeDeclaration","isTypeElement","isTypeKeyword","isTypeKeywordTokenOrIdentifier","isTypeLiteralNode","isTypeNode","isTypeNodeKind","isTypeOfExpression","isTypeOnlyExportDeclaration","isTypeOnlyImportDeclaration","isTypeOnlyImportOrExportDeclaration","isTypeOperatorNode","isTypeParameterDeclaration","isTypePredicateNode","isTypeQueryNode","isTypeReferenceNode","isTypeReferenceType","isTypeUsableAsPropertyName","isUMDExportSymbol","isUnaryExpression","isUnaryExpressionWithWrite","isUnicodeIdentifierStart","isUnionTypeNode","isUrl","isValidBigIntString","isValidESSymbolDeclaration","isValidTypeOnlyAliasUseSite","isValueSignatureDeclaration","isVarAwaitUsing","isVarConst","isVarConstLike","isVarUsing","isVariableDeclaration","isVariableDeclarationInVariableStatement","isVariableDeclarationInitializedToBareOrAccessedRequire","isVariableDeclarationInitializedToRequire","isVariableDeclarationList","isVariableLike","isVariableStatement","isVoidExpression","isWatchSet","isWhileStatement","isWhiteSpaceLike","isWhiteSpaceSingleLine","isWithStatement","isWriteAccess","isWriteOnlyAccess","isYieldExpression","jsxModeNeedsExplicitImport","keywordPart","last","lastOrUndefined","length","libMap","libs","lineBreakPart","loadModuleFromGlobalCache","loadWithModeAwareCache","makeIdentifierFromModuleName","makeImport","makeStringLiteral","mangleScopedPackageName","map","mapAllOrFail","mapDefined","mapDefinedIterator","mapEntries","mapIterator","mapOneOrMany","mapToDisplayParts","matchFiles","matchPatternOrExact","matchedText","matchesExclude","matchesExcludeWorker","maxBy","maybeBind","maybeSetLocalizedDiagnosticMessages","memoize","memoizeOne","min","minAndMax","missingFileModifiedTime","modifierToFlag","modifiersToFlags","moduleExportNameIsDefault","moduleExportNameTextEscaped","moduleExportNameTextUnescaped","moduleOptionDeclaration","moduleResolutionIsEqualTo","moduleResolutionNameAndModeGetter","moduleResolutionOptionDeclarations","moduleResolutionSupportsPackageJsonExportsAndImports","moduleResolutionUsesNodeModules","moduleSpecifierToValidIdentifier","ts_moduleSpecifiers_exports","moduleSupportsImportAttributes","moduleSymbolToValidIdentifier","moveEmitHelpers","moveRangeEnd","moveRangePastDecorators","moveRangePastModifiers","moveRangePos","moveSyntheticComments","mutateMap","mutateMapSkippingNewValues","needsParentheses","needsScopeMarker","newCaseClauseTracker","newPrivateEnvironment","noEmitNotification","noEmitSubstitution","noTransformers","noTruncationMaximumTruncationLength","nodeCanBeDecorated","nodeCoreModules","nodeHasName","nodeIsDecorated","nodeIsMissing","nodeIsPresent","nodeIsSynthesized","nodeModuleNameResolver","nodeModulesPathPart","nodeNextJsonConfigResolver","nodeOrChildIsDecorated","nodeOverlapsWithStartEnd","nodePosToString","nodeSeenTracker","nodeStartsNewLexicalEnvironment","noop","noopFileWatcher","normalizePath","normalizeSlashes","normalizeSpans","not","notImplemented","notImplementedResolver","nullNodeConverters","nullParenthesizerRules","nullTransformationContext","objectAllocator","operatorPart","optionDeclarations","optionMapToObject","optionsAffectingProgramStructure","optionsForBuild","optionsForWatch","optionsHaveChanges","or","orderedRemoveItem","orderedRemoveItemAt","packageIdToPackageName","packageIdToString","parameterIsThisKeyword","parameterNamePart","parseBaseNodeFactory","parseBigInt","parseBuildCommand","parseCommandLine","parseCommandLineWorker","parseConfigFileTextToJson","parseConfigFileWithSystem","parseConfigHostFromCompilerHostLike","parseCustomTypeOption","parseIsolatedEntityName","parseIsolatedJSDocComment","parseJSDocTypeExpressionForTests","parseJsonConfigFileContent","parseJsonSourceFileConfigFileContent","parseJsonText","parseListTypeOption","parseNodeFactory","parseNodeModuleFromPath","parsePackageName","parsePseudoBigInt","parseValidBigInt","ts_PasteEdits_exports","patchWriteFileEnsuringDirectory","pathContainsNodeModules","pathIsAbsolute","pathIsBareSpecifier","pathIsRelative","patternText","performIncrementalCompilation","ts_performance_exports","positionBelongsToNode","positionIsASICandidate","positionIsSynthesized","positionsAreOnSameLine","preProcessFile","probablyUsesSemicolons","processCommentPragmas","processPragmasIntoFields","processTaggedTemplateExpression","programContainsEsModules","programContainsModules","projectReferenceIsEqualTo","propertyNamePart","pseudoBigIntToString","punctuationPart","pushIfUnique","quote","quotePreferenceFromString","rangeContainsPosition","rangeContainsPositionExclusive","rangeContainsRange","rangeContainsRangeExclusive","rangeContainsStartEnd","rangeEndIsOnSameLineAsRangeStart","rangeEndPositionsAreOnSameLine","rangeEquals","rangeIsOnSingleLine","rangeOfNode","rangeOfTypeParameters","rangeOverlapsWithStartEnd","rangeStartIsOnSameLineAsRangeEnd","rangeStartPositionsAreOnSameLine","readBuilderProgram","readConfigFile","readJson","readJsonConfigFile","readJsonOrUndefined","reduceEachLeadingCommentRange","reduceEachTrailingCommentRange","reduceLeft","reduceLeftIterator","reducePathComponents","ts_refactor_exports","regExpEscape","regularExpressionFlagToCharacterCode","relativeComplement","removeAllComments","removeEmitHelper","removeExtension","removeFileExtension","removeIgnoredPath","removeMinAndVersionNumbers","removePrefix","removeSuffix","removeTrailingDirectorySeparator","repeatString","replaceElement","replaceFirstStar","resolutionExtensionIsTSOrJson","resolveConfigFileProjectName","resolveJSModule","resolveLibrary","resolveModuleName","resolveModuleNameFromCache","resolvePackageNameToPackageJson","resolvePath","resolveProjectReferencePath","resolveTripleslashReference","resolveTypeReferenceDirective","resolvingEmptyArray","returnFalse","returnNoopFileWatcher","returnTrue","returnUndefined","returnsPromise","rewriteModuleSpecifier","sameFlatMap","sameMap","sameMapping","scanTokenAtPosition","scanner","semanticDiagnosticsOptionDeclarations","serializeCompilerOptions","ts_server_exports4","servicesVersion","setCommentRange","setConfigFileInOptions","setConstantValue","setEmitFlags","setGetSourceFileAsHashVersioned","setIdentifierAutoGenerate","setIdentifierGeneratedImportReference","setIdentifierTypeArguments","setInternalEmitFlags","setLocalizedDiagnosticMessages","setNodeChildren","setNodeFlags","setObjectAllocator","setOriginalNode","setParent","setParentRecursive","setPrivateIdentifier","setSnippetElement","setSourceMapRange","setStackTraceLimit","setStartsOnNewLine","setSyntheticLeadingComments","setSyntheticTrailingComments","setSys","setSysLog","setTextRange","setTextRangeEnd","setTextRangePos","setTextRangePosEnd","setTextRangePosWidth","setTokenSourceMapRange","setTypeNode","setUILocale","setValueDeclaration","shouldAllowImportingTsExtension","shouldPreserveConstEnums","shouldRewriteModuleSpecifier","shouldUseUriStyleNodeCoreModules","showModuleSpecifier","signatureHasRestParameter","signatureToDisplayParts","single","singleElementArray","singleIterator","singleOrMany","singleOrUndefined","skipAlias","skipConstraint","skipOuterExpressions","skipParentheses","skipPartiallyEmittedExpressions","skipTrivia","skipTypeChecking","skipTypeCheckingIgnoringNoCheck","skipTypeParentheses","skipWhile","sliceAfter","some","sortAndDeduplicate","sortAndDeduplicateDiagnostics","sourceFileAffectingCompilerOptions","sourceFileMayBeEmitted","sourceMapCommentRegExp","sourceMapCommentRegExpDontCareLineStart","spacePart","spanMap","startEndContainsRange","startEndOverlapsWithStartEnd","startOnNewLine","startTracing","startsWith","startsWithDirectory","startsWithUnderscore","startsWithUseStrict","stringContainsAt","stringToToken","stripQuotes","supportedDeclarationExtensions","supportedJSExtensionsFlat","supportedLocaleDirectories","supportedTSExtensionsFlat","supportedTSImplementationExtensions","suppressLeadingAndTrailingTrivia","suppressLeadingTrivia","suppressTrailingTrivia","symbolEscapedNameNoDefault","symbolName","symbolNameNoDefault","symbolToDisplayParts","sys","sysLog","tagNamesAreEquivalent","takeWhile","targetOptionDeclaration","targetToLibMap","testFormatSettings","textChangeRangeIsUnchanged","textChangeRangeNewSpan","ts_textChanges_exports","textOrKeywordPart","textPart","textRangeContainsPositionInclusive","textRangeContainsTextSpan","textRangeIntersectsWithTextSpan","textSpanContainsPosition","textSpanContainsTextRange","textSpanContainsTextSpan","textSpanEnd","textSpanIntersection","textSpanIntersectsWith","textSpanIntersectsWithPosition","textSpanIntersectsWithTextSpan","textSpanIsEmpty","textSpanOverlap","textSpanOverlapsWith","textSpansEqual","textToKeywordObj","timestamp","toArray","toBuilderFileEmit","toBuilderStateFileInfoForMultiEmit","toEditorSettings","toFileNameLowerCase","toPath","toProgramEmitPending","toSorted","tokenIsIdentifierOrKeyword","tokenIsIdentifierOrKeywordOrGreaterThan","tokenToString","trace","tracing","tracingEnabled","transferSourceFileChildren","transform","transformClassFields","transformDeclarations","transformECMAScriptModule","transformES2015","transformES2016","transformES2017","transformES2018","transformES2019","transformES2020","transformES2021","transformESDecorators","transformESNext","transformGenerators","transformImpliedNodeFormatDependentModule","transformJsx","transformLegacyDecorators","transformModule","transformNamedEvaluation","transformNodes","transformSystemModule","transformTypeScript","transpile","transpileDeclaration","transpileModule","transpileOptionValueCompilerOptions","tryAddToSet","tryAndIgnoreErrors","tryCast","tryDirectoryExists","tryExtractTSExtension","tryFileExists","tryGetClassExtendingExpressionWithTypeArguments","tryGetClassImplementingOrExtendingExpressionWithTypeArguments","tryGetDirectories","tryGetExtensionFromPath2","tryGetImportFromModuleSpecifier","tryGetJSDocSatisfiesTypeNode","tryGetModuleNameFromFile","tryGetModuleSpecifierFromDeclaration","tryGetNativePerformanceHooks","tryGetPropertyAccessOrIdentifierToString","tryGetPropertyNameOfBindingOrAssignmentElement","tryGetSourceMappingURL","tryGetTextOfPropertyName","tryParseJson","tryParsePattern","tryParsePatterns","tryParseRawSourceMap","tryReadDirectory","tryReadFile","tryRemoveDirectoryPrefix","tryRemoveExtension","tryRemovePrefix","tryRemoveSuffix","tscBuildOption","typeAcquisitionDeclarations","typeAliasNamePart","typeDirectiveIsEqualTo","typeKeywords","typeParameterNamePart","typeToDisplayParts","unchangedPollThresholds","unchangedTextChangeRange","unescapeLeadingUnderscores","unmangleScopedPackageName","unorderedRemoveItem","unprefixedNodeCoreModules","unreachableCodeIsError","unsetNodeChildren","unusedLabelIsError","unwrapInnermostStatementOfLabel","unwrapParenthesizedExpression","updateErrorForNoInputFiles","updateLanguageServiceSourceFile","updateMissingFilePathsWatch","updateResolutionField","updateSharedExtendedConfigFileWatcher","updateSourceFile","updateWatchingWildcardDirectories","usingSingleLineStringWriter","utf16EncodeAsString","validateLocaleAndSetLanguage","version","versionMajorMinor","visitArray","visitCommaListElements","visitEachChild","visitFunctionBody","visitIterationBody","visitLexicalEnvironment","visitNode","visitNodes2","visitParameterList","walkUpBindingElementsAndPatterns","walkUpOuterExpressions","walkUpParenthesizedExpressions","walkUpParenthesizedTypes","walkUpParenthesizedTypesAndGetParentAndChild","whitespaceOrMapCommentRegExp","writeCommentRange","writeFile","writeFileEnsuringDirectories","zipWith","Comparison3","array","callback","i","result","iter","value","iterator","f","initial","pos","arrayA","arrayB","input","element","n","predicate","startIndex","equalityComparer","text","charCodes","start","count","v","len","item","outIndex","mapFn","x","mapped","mapfn","iter2","map2","key","set","keyfn","previousKey","newKey","newValue","arr","pred","cb","array1","array2","selectIndex","_","deduplicateRelational","comparer","indices","stableSortIndices","last2","deduplicated","index","deduplicateEquality","deduplicateSorted","next","insert","compare","allowDuplicates","insertIndex","idx","loopB","offsetA","offsetB","loopA","startA","to","xs","ys","toOffset","offset","from","end","toAdd","y","keySelector","keyComparer","low","high","middle","midKey","size","hasOwnProperty","keys","obj","names","collection","values","t","args","arg","p","left","right","makeKey","makeValue","getGroupId","resultSelector","object","id","first2","second","fn","multiMapAdd","multiMapRemove","items","elements","headIndex","isEmpty","enqueue","items2","dequeue","newLength","getHashCode","equals","multiMap","getElementIterator","hash","candidates","unorderedRemoveItemAt","action","test","toLowerCase","fileNameLowerCaseRegExp","AssertionLevel2","a","b","compareComparableValues","init","mapper","ignoreCase","createUIStringComparer","createIntlCollatorStringComparer","compareWithCallback","locale","uiComparerCaseSensitive","uiLocale","getName","maximumLengthDifference","bestDistance","bestCandidate","candidate","candidateName","distance","levenshteinWithMax","s1","s2","max","previous","current","big","c1","minJ","maxJ","colMin","j","substitutionDistance","dist","temp","res","str","suffix","expectedPos","fileName","ch","unorderedRemoveFirstItemWhere","useCaseSensitiveFileNames2","prefix","pattern","getPattern","matchedValue","longestMatchPrefixLength","getCanonicalFileName","g","fs","lastResult","newItems","oldItems","inserted","deleted","unchanged","newIndex","oldIndex","newLen","oldLen","hasChanges","newItem","oldItem","compareResult","arrays","cartesianProductWorker","outer","inner","require","LogLevel3","Debug2","currentAssertionLevel","shouldLog","level","logMessage","s","log","_log","error2","warn","log2","trace2","assertionCache","getAssertionLevel","setAssertionLevel","prevAssertionLevel","cachedFunc","shouldAssert","shouldAssertFunction","fail","message","stackCrawlMark","e","failBadSyntaxKind","node","formatSyntaxKind","assert","expression","verboseDebugInfo","assertEqual","msg","msg2","assertLessThan","assertLessThanOrEqual","assertGreaterThanOrEqual","assertIsDefined","checkDefined","assertEachIsDefined","checkEachDefined","assertNever","member","detail","assertEachNode","nodes","getFunctionName","assertNode","assertNotNode","assertOptionalNode","assertOptionalToken","kind","assertMissingNode","type","_value","func","match","formatSymbol","symbol","formatSymbolFlags","formatEnum","enumObject","isFlags","members","getEnumMembers","remainingFlags","enumValue","enumName","enumMemberCache","existing","sorted","formatSnippetKind","formatScriptKind","formatNodeFlags","flags","formatNodeCheckFlags","formatModifierFlags","formatTransformFlags","formatEmitFlags","formatTypeFlags","formatSignatureFlags","formatObjectFlags","formatFlowFlags","formatRelationComparisonResult","formatCheckMode","mode","formatSignatureCheckMode","formatTypeFacts","facts","isDebugInfoEnabled","flowNodeProto","attachFlowNodeDebugInfoWorker","flowNode","flowHeader","formatControlFlowGraph","attachFlowNodeDebugInfo","nodeArrayProto","attachNodeArrayDebugInfoWorker","defaultValue","attachNodeArrayDebugInfo","enableDebugInfo","weakTypeTextMap","weakNodeTextMap","symbolHeader","remainingSymbolFlags","typeHeader","remainingObjectFlags","_a","nodeConstructors","ctor","includeTrivia","parseNode","sourceFile","formatVariance","varianceFlags","variance","DebugTypeMapper","attachDebugPrototypeIfDebug","printControlFlowGraph","nextDebugFlowId","getDebugFlowNodeId","BoxCharacter","BoxCharacter2","Connection","Connection2","hasAntecedentFlags","hasNodeFlags","links","root","buildGraphNode","renderFlowNode","computeLevel","height","computeHeight","columnWidths","computeColumnWidths","computeLanes","renderGraph","isFlowSwitchClause","hasAntecedents","hasAntecedent","hasNode","getChildren","children","edge","getParents","parents","flowNode2","seen","graphNode","antecedent","buildGraphEdge","source","parent2","height2","child","columns","fill","lane","getHeader2","getNodeText","circular","clauses","switchStatement","clauseStart","clauseEnd","clause","columnCount","laneCount","lanes","grid","connectors","connector","column","above","fill2","writeLane","repeat","getBoxCharacter","length2","versionRegExp","prereleaseRegExp","prereleasePartRegExp","buildRegExp","buildPartRegExp","numericIdentifierRegExp","_Version","major","minor","patch","prerelease","build2","tryParseComponents","prereleaseArray","buildArray","other","comparePrereleaseIdentifiers","field","fields","leftIdentifier","rightIdentifier","leftIsNumeric","rightIsNumeric","_VersionRange","spec","parseRange","sets","range","version2","testDisjunction","formatDisjunction","logicalOrRegExp","whitespaceRegExp","partialRegExp","hyphenRegExp","rangeRegExp","alternatives","comparators","parseHyphen","simple","match2","parseComparator","parsePartial","isWildcard","leftResult","rightResult","createComparator","operator","part","operand","alternative","testAlternative","comparator","testComparator","cmp","formatAlternative","formatComparator","tryGetPerformance","performance2","require$$0","tryGetPerformanceHooks","shouldWriteNativeEvents","hooks","nativePerformanceHooks","nativePerformanceTime","clearMarks","clearMeasures","createTimer","createTimerIf","disable","enable","forEachMark","forEachMeasure","getCount","getDuration","isEnabled","mark","measure","nullTimer","perfHooks","performanceImpl","condition","measureName","startMarkName","endMarkName","enterCount","enter","exit","enabled","timeorigin","marks","counts","durations","markName","previousDuration","duration","_time","system","tracingEnabled2","traceCount","traceFd","typeCatalog","legendPath","legend","startTracing2","tracingMode","traceDir","configFilePath","require$$1","countPart","tracePath","typesPath","meta","stopTracing","dumpTypes","recordType","Phase2","instant","phase","writeEvent","eventStack","push","separateBeginAndEnd","pop","results","writeStackEvent","popAll","endTime","sampleInterval","time","eventType","extras","getLocation","file","indexFromOne","lc","types","_b","_c","_d","_e","_f","_g","_h","_i","_j","_k","_l","_m","_n","_o","_p","_q","_r","_s","typesFd","recursionIdentityMap","numTypes","objectFlags","display","indexedAccessProperties","indexedAccessType","referenceProperties","referenceType","conditionalProperties","conditionalType","substitutionProperties","substitutionType","reverseMappedProperties","reverseMappedType","evolvingArrayProperties","evolvingArrayType","recursionToken","recursionIdentity","descriptor","dumpLegend","SyntaxKind5","NodeFlags3","ModifierFlags3","JsxFlags2","RelationComparisonResult3","PredicateSemantics2","GeneratedIdentifierFlags2","RegularExpressionFlags2","TokenFlags2","FlowFlags2","CommentDirectiveType2","FileIncludeKind2","FilePreprocessingDiagnosticsKind2","EmitOnly4","StructureIsReused2","ExitStatus2","MemberOverrideStatus2","UnionReduction2","IntersectionFlags2","ContextFlags3","NodeBuilderFlags2","InternalNodeBuilderFlags2","TypeFormatFlags2","SymbolFormatFlags2","SymbolAccessibility2","TypePredicateKind2","TypeReferenceSerializationKind2","SymbolFlags3","CheckFlags2","InternalSymbolName2","NodeCheckFlags3","TypeFlags2","ObjectFlags3","VarianceFlags2","ElementFlags2","AccessFlags2","IndexFlags2","JsxReferenceKind2","SignatureKind2","SignatureFlags5","IndexKind2","TypeMapKind2","InferencePriority2","InferenceFlags2","Ternary2","AssignmentDeclarationKind2","DiagnosticCategory2","d","lowerCase","ModuleResolutionKind3","ModuleDetectionKind2","WatchFileKind3","WatchDirectoryKind3","PollingWatchKind3","ModuleKind3","JsxEmit3","ImportsNotUsedAsValues2","NewLineKind3","ScriptKind7","ScriptTarget12","LanguageVariant4","WatchDirectoryFlags3","CharacterCodes2","Extension2","TransformFlags3","SnippetKind3","EmitFlags3","InternalEmitFlags3","ExternalEmitHelpers2","EmitHint5","OuterExpressionKinds2","LexicalEnvironmentFlags2","ListFormat2","PragmaKindFlags2","JSDocParsingMode6","data","acc","FileWatcherEventKind2","PollingInterval3","host","createPollingIntervalBasedLevels","levels","defaultChunkLevels","pollingChunkSize","setCustomPollingValues","pollingIntervalChanged","setCustomLevels","getCustomPollingBasedLevels","getLevel","envVar","getCustomLevels","baseVariable","customLevels","setCustomLevel","customLevel","setLevel","defaultLevels","pollWatchedFileQueue","queue","pollIndex","chunkSize","callbackOnWatchFileStat","definedValueCopyToIndex","canVisit","nextPollIndex","watchedFile","fileChanged","onWatchedFileStat","createDynamicPriorityPollingWatchFile","watchedFiles","changedFilesInLastPoll","lowPollingIntervalQueue","createPollingIntervalQueue","mediumPollingIntervalQueue","highPollingIntervalQueue","watchFile2","defaultPollingInterval","addToPollingIntervalQueue","pollingInterval","pollPollingIntervalQueue","_timeoutType","pollQueue","scheduleNextPoll","pollLowPollingIntervalQueue","onWatchFileStat","pollIndex2","addChangedFileToLowPollingIntervalQueue","pollingIntervalQueue","scheduleNextPollIfNotAlreadyScheduled","createUseFsEventsOnParentDirectoryWatchFile","fsWatch","getModifiedTime3","fsWatchWithTimestamp","fileWatcherCallbacks","fileTimestamps","dirWatchers","toCanonicalName","nonPollingWatchFile","_pollingInterval","fallbackOptions","filePath","dirPath","watcher","createDirectoryWatcher","dirName","eventName","relativeFileName","callbacks","currentModifiedTime","eventKind","existingTime","fileCallback","createFixedChunkSizePollingWatchFile","pollScheduled","createSingleWatcherPerName","cache","createWatcher","param1","param2","param3","modifiedTime","oldTime","newTime","curSysLog","logger","createDirectoryWatcherSupportingRecursive","watchDirectory","getCurrentDirectory","getAccessibleSortedChildDirectories","fileSystemEntryExists","realpath","setTimeout2","clearTimeout2","callbackCache","cacheToUpdateChildWatches","timerToUpdateChildWatches","filePathComparer","toCanonicalFilePath","recursive","options","link","directoryWatcher","isIgnoredPath","invokeCallbacks","updateChildWatches","nonSyncUpdateChildWatches","callbackToAdd","directoryWatcher2","closeTargetWatcher","fileNameOrInvokeMap","fileNames","invokeMap","rootDirName","toPathInLink","fileName2","parentWatcher","scheduleUpdateChildWatches","removeChildWatches","onTimerToUpdateChildWatches","elapsed","existingChildWatches","childWatcher","parentDir","parentDirPath","newChildWatches","childFullName","createAndAddChildDirectoryWatcher","addChildDirectoryWatcher","childName","searchPath","isInPath","isIgnoredByWatchOptions","FileSystemEntryKind2","createFileWatcherCallback","_fileName","createFsWatchCallbackForFileWatcherCallback","_relativeFileName","pathToCheck","createFsWatchCallbackForDirectoryWatcherCallback","directoryName","pollingWatchFileWorker","fsWatchWorker","fsSupportsRecursiveFsWatch","tscWatchFile","useNonPollingWatchers","tscWatchDirectory","inodeWatching","sysLog2","pollingWatches","fsWatches","fsWatchesRecursive","dynamicPollingWatchFile","fixedChunkSizePollingWatchFile","hostRecursiveDirectoryWatcher","hitSystemWatcherLimit","updateOptionsForWatchFile","watchFileKind","pollingWatchFile","ensureDynamicPollingWatchFile","ensureFixedChunkSizePollingWatchFile","useNonPollingWatchers2","generateWatchFileOptions","watchFile3","fallbackPolling","defaultFallbackPolling","nonRecursiveWatchDirectory","watchDirectoryOptions","updateOptionsForWatchDirectory","watchDirectoryKind","fileOrDirectory","entryKind","fallbackPollingInterval","fsWatchHandlingExistenceOnHost","lastDirectoryPartWithDirectorySeparator","lastDirectoryPart","watchPresentFileSystemEntry","watchMissingFileSystemEntry","updateWatcher","watchPresentFileSystemEntryWithFsWatchFile","presentWatcher","fsWatchWorkerHandlingTimestamp","callbackChangingToMissingFileSystemEntry","event","relativeName","originalRelativeName","sys2","originalWriteFile","writeBom","path2","data2","writeByteOrderMark","getNodeSystem","nativePattern","_fs","_path","require$$2","_os","require$$3","_crypto","require$$4","activeSession","profilePath","isMacOs","isLinuxOrMacOs","statSyncOptions","platform","isFileSystemCaseSensitive","fsRealpath","fsRealPathHandlingLongPath","executingFilePath","fsWatchFileWorker","getAccessibleFileSystemEntries","nodeSystem","readFile","writeFile2","fileExists","directoryExists","getDirectories","readDirectory","setModifiedTime","deleteFile","createSHA256Hash","global","stat","statSync","exitCode","disableCPUProfiler","enableCPUProfiler","require$$5","handle","baseDir","moduleName","modulePath","inspector","require$$6","session","cleanupPaths","profile","externalFileCounter","remappedPaths","normalizedDir","fileUrlRoot","url","err","swapCase","up","curr","prev","isPreviouslyDeleted","_encoding","buffer","fd","entries","files","directories","dirent","entry","extensions","excludes","includes","depth","urlSchemeSeparator","backslashRegExp","charCode","getEncodedRootLength","rootLength","extension","isVolumeCharacter","getFileUrlVolumeSeparatorEnd","ch0","ch2","p1","schemeEnd","authorityStart","authorityEnd","scheme","authority","volumeSeparatorEnd","tryGetExtensionFromPath","stringEqualityComparer","pathExtension","getAnyExtensionFromPathWorker","baseFileName","extensionIndex","pathComponents","rest","currentDirectory","pathComponents2","components","reduced","component","paths","relativePath","simpleNormalized","simpleNormalizePath","normalized","segmentStart","normalizedUpTo","seenNonDotDotSegment","segmentEnd","segmentLength","lastSlash","relativePathSegmentRegExp","simplified","getPathWithoutRoot","basePath","nonCanonicalizedPath","ext","pathext","newExtension","declarationExtension","comparePathsWorker","componentComparer","aRoot","bRoot","aRest","bRest","aComponents","bComponents","sharedLength","result2","parentComponents","childComponents","componentEqualityComparer","canonicalFileName","canonicalDirectoryName","getPathComponentsRelativeTo","fromComponents","toComponents","fromComponent","toComponent","relative","fromDirectory","getCanonicalFileNameOrIgnoreCase","absoluteOrRelativePath","directoryPathOrUrl","relativeOrAbsolutePath","isAbsolutePathAnUrl","firstComponent","directory","parentPath","diag","code","category","reportsUnnecessary","elidedInCompatabilityPyramid","reportsDeprecated","token","textToKeyword","textToToken","charCodeToRegExpFlag","regExpFlagToFirstAvailableLanguageVersion","unicodeES5IdentifierStart","unicodeES5IdentifierPart","unicodeESNextIdentifierStart","unicodeESNextIdentifierPart","commentDirectiveRegExSingleLine","commentDirectiveRegExMultiLine","jsDocSeeOrLink","lookupInUnicodeMap","lo","hi","mid","languageVersion","isUnicodeIdentifierPart","makeReverseMap","tokenStrings","regExpFlagCharCodes","lineStart","line","character","allowEdits","lineStarts","debugText","position","lineNumber","lowerBound","pos1","pos2","lower","isNegative","upper","lowerLine","upperLine","isDigit","isHexDigit","isASCIILetter","isWordCharacter","isOctalDigit","stopAfterLineBreak","stopAtComments","inJSDoc","canConsumeStar","isConflictMarkerTrivia","scanConflictMarkerTrivia","isShebangTrivia","scanShebangTrivia","mergeConflictMarkerLength","currentChar","shebangTriviaRegex","shebang","iterateCommentRanges","reduce","trailing","state","pendingPos","pendingEnd","pendingKind","pendingHasTrailingNewLine","hasPendingCommentRange","collecting","accumulator","scan","nextChar","hasTrailingNewLine","startPos","appendCommentRange","_state","comments","identifierVariant","codePointAt","charSize","skipTrivia2","languageVariant","textInitial","onError","fullStartPos","tokenStart","tokenValue","tokenFlags","commentDirectives","skipJsDocLeadingAsterisks","scriptKind","jsDocParsingMode","setText","scanner2","reScanGreaterToken","reScanAsteriskEqualsToken","reScanSlashToken","reScanTemplateToken","reScanTemplateHeadOrNoSubstitutionTemplate","scanJsxIdentifier","scanJsxAttributeValue","reScanJsxAttributeValue","reScanJsxToken","reScanLessThanToken","reScanHashToken","reScanQuestionToken","reScanInvalidIdentifier","scanJsxToken","scanJsDocToken","scanJSDocCommentTextToken","getText","clearCommentDirectives","setScriptTarget","setLanguageVariant","setScriptKind","setJSDocParsingMode","setOnError","resetTokenState","setSkipJsDocLeadingAsterisks","tryScan","lookAhead","scanRange","text2","codePointUnchecked","codePointChecked","charCodeUnchecked","charCodeChecked","errPos","length3","arg0","oldPos","scanNumberFragment","start2","allowSeparator","isPreviousTokenSeparator","scanNumber","mainFragment","scanDigits","withMinus","literal","decimalFragment","scientificFragment","end2","preNumericPart","finalFragment","checkForIdentifierStartAfterNumericLiteral","checkBigIntSuffix","numericStart","isScientific","identifierStart","scanIdentifierParts","isOctal","scanExactNumberOfHexDigits","canHaveSeparators","valueString","scanHexDigits","scanMinimumNumberOfHexDigits","minCount","scanAsManyAsPossible","valueChars","scanString","jsxAttributeString","quote2","scanEscapeSequence","scanTemplateAndSetTokenValue","shouldEmitInvalidEscapeError","startedWithBacktick","contents","resultingToken","currChar","scanExtendedUnicodeEscape","escapedValue","escapedValueString","nextStart","nextPos","nextEscapedValue","escapedStart","isInvalidExtendedEscape","peekUnicodeEscape","peekExtendedUnicodeEscape","getIdentifierToken","keyword","scanBinaryOrOctalDigits","base","separatorAllowed","appendIfCommentDirective","isJSDoc2","commentClosed","lastLineStart","shouldParseJSDoc","extendedCookedChar","cookedChar","charAfterHash","extendedCookedChar2","cookedChar2","scanIdentifier","identifierKind","startCharacter","languageVersion2","reportErrors2","startOfRegExpBody","inEscape","namedCaptureGroups","inCharacterClass","endOfRegExpBody","characterClassDepth","inDecimalQuantifier","groupDepth","regExpFlags","flag","checkRegularExpressionFlagAvailability","scanRegularExpressionWorker","annexB","unicodeSetsMode","anyUnicodeMode","anyUnicodeModeOrNonAnnexB","mayContainStrings","numberOfCapturingGroups","groupSpecifiers","groupNameReferences","decimalEscapes","namedCapturingGroupsScopeStack","topNamedCapturingGroupsScope","scanDisjunction","isInGroup","scanAlternative","isPreviousTermQuantifiable","scanAtomEscape","groupNameStart","scanGroupName","scanExpectedChar","start3","setFlags","scanPatternModifiers","digitsStart","min2","scanClassSetExpression","scanClassRanges","scanSourceCharacter","currFlags","scanCharacterClassEscape","scanDecimalEscape","scanCharacterEscape","atomEscape","isReference","group2","isClassContentExit","minStart","minCharacter","scanClassAtom","maxStart","maxCharacter","minCharacterValue","maxCharacterValue","isCharacterComplement","expressionMayContainStrings","scanClassSetOperand","scanClassSetSubExpression","secondStart","secondOperand","expressionType","scanClassStringDisjunctionContents","scanClassSetCharacter","characterCount","propertyNameOrValueStart","propertyNameOrValue","scanWordCharacters","propertyName","nonBinaryUnicodeProperties","suggestion","propertyValueStart","propertyValue","valuesOfNonBinaryUnicodeProperties","binaryUnicodePropertiesOfStrings","binaryUnicodeProperties","reference","escape","availableFrom","commentDirectives2","commentDirectiveRegEx","getDirectiveFromComment","isTaggedTemplate","allowMultilineJsxText","char","firstNonWhitespace","inBackticks","speculationHelper","isLookahead","savePos","saveStartPos","saveTokenPos","saveToken","saveTokenValue","saveTokenFlags","saveEnd","saveErrorExpectations","newText","errorCallback","scriptTarget","variant","skip","utf16EncodeAsStringFallback","codePoint","codeUnit1","codeUnit2","utf16EncodeAsStringWorker","diagnostics","span","span1","span2","overlap","start1","length1","end1","spans","changes","change0","oldStartN","oldEndN","newEndN","nextChange","oldStart1","oldEnd1","newEnd1","oldStart2","oldEnd2","newEnd2","binding","getCombinedFlags","getFlags","getNodeFlags","errors","lowerCaseLocale","matchResult","language","territory","trySetLanguageAndTerritory","language2","territory2","errors2","compilerFilePath","containingDirectoryPath","fileContents","nodeTest","identifier","identifierOrPrivateName","nameForNamelessJSDocTypedef","declaration","hostNode","getDeclarationIdentifier","expr","statement","expr2","getJSDocParameterTagsWorker","param","noCache","getJSDocTagsWorker","tag","paramTags","getJSDocTypeParameterTagsWorker","tp","getFirstJSDocTag","tag2","returnTag","typeTag","sig","tags","doc","comment","c","formatJSDocLink","space","jsDoc","decls","idToken","isFunctionLikeDeclarationKind","bindingElement","isLeftHandSideExpressionKind","isUnaryExpressionKind","isExpressionKind","lookInLabeledStatements","isScopeMarker","statements","isDeclarationKind","isDeclarationStatementKind","isStatementKindButNotDeclarationKind","isBlockStatement","MAX_SMI_X86","lines","indentation","hasInternalAnnotation","parseTreeNode","paramIdx","previousSibling","commentRanges","leadingCommentRanges","declarations","symbols","moduleSymbol","stringWriter","createSingleLineStringWriter","writeText","oldOptions","newOptions","optionsHaveModuleResolutionChanges","optionDeclarations2","o","oldString","oldRef","newRef","oldResolution","newResolution","packageIdIsEqual","resolution","moduleReference","packageName","alternateResult","alternateResultMessage","currentSourceFile","scope","targetExt","subModuleName","packageId","newResolutions","getOldResolution","aggregateChildData","module2","checkJs","loc","lineIndex","sourceText","hasGlobalName","isGrammarErrorElement","nodeArray","isElement","insertStatementsAfterPrologue","isPrologueDirective2","statementIndex","insertStatementAfterPrologue","isAnyPrologueDirective","commentPos","commentEnd","textSubStr","fullTripleSlashReferencePathRegEx","fullTripleSlashAMDReferencePathRegEx","fullTripleSlashAMDModuleRegEx","fullTripleSlashReferenceTypeReferenceDirectiveRegEx","fullTripleSlashLibReferenceRegEx","defaultLibReferenceRegEx","directivesByLine","commentDirective","usedLines","getUnusedExpectations","markUsed","directive","includeJsDoc","lastDecorator","lastModifier","isJSDocTypeExpressionOrChild","getPos","emitNode","GetLiteralTextFlags2","canUseOriginalText","escapeText","rawText","isEffectiveModuleDeclaration","isShorthandAmbientModule","isCommonJSContainingModuleKind","compilerOptions","parentNode","container","info","messageChain","relatedInformation","assertDiagnosticLocation","diagnostic","getErrorSpanForArrowFunction","startLine","endLine","errorNode","constructorDeclaration","isMissing","blockScopeKind","isHoistedVariable","sourceFileOfNode","isPartOfTypeExpressionWithTypeArguments","body","visitor","traverse","beforeUnwrapLabelCallback","objectLiteral","key2","property","propName","tsConfigSourceFile","propKey","elementValue","decorator","includeArrowFunctions","includeClassComputedPropertyName","stopOnFunctions","useLegacyDecorators","grandparent","m","constructor","parameters","firstAccessor","secondAccessor","setAccessor","firstAccessorWithDecorators","parameter","forStatement","forInOrOfStatement","callExpression","requireStringLiteralLikeArgument","isVariableDeclarationInitializedWithRequireHelper","allowAccessedRequire","decl","hasExpandoValueProperty","isPrototypeAssignment","getDefaultedExpandoInitializer","initializer","isLiteralLikeAccess","isLiteralLikeElementAccess","special","getAssignmentDeclarationKindWorker","excludeThisKeyword","entityName","isVoidZero","lhs","nextToLast","valueDeclaration","node2","specifier","getSourceOfAssignment","getSourceOfDefaultedAssignment","getSingleInitializerOfVariableStatementOrPropertyDeclaration","getNestedModuleDeclaration","filterOwnedJSDocTags","lastJsDoc","ownedTags","ownsJSDocTag","typeAlias","typeParameters","AssignmentKind2","getAssignmentTarget","binaryExpression","binaryOperator","unaryExpression","unaryOperator","isCompoundLikeAssignment","assignment","walkUp","excludeJSDocTypeAssertions","ancestor","binExp","baseType","heritageClause","originalKeywordKind","FunctionFlags2","nameExpression","containingClassSymbol","description3","isProtoSetter","isAnonymousFunctionDefinition","Associativity2","getOperator","hasArguments","OperatorPrecedence2","nodeKind","operatorKind","nonFileDiagnostics","filesWithDiagnostics","fileDiagnostics","hasReadNonFileDiagnostics","add","lookup","getGlobalDiagnostics","getDiagnostics2","compareDiagnosticsSkipRelatedInformation","fileDiags","templateSubstitutionRegExp","containsInvalidEscapeFlag","template","doubleQuoteEscapedCharsRegExp","singleQuoteEscapedCharsRegExp","backtickQuoteEscapedCharsRegExp","escapedCharsMap","encodeUtf16EscapeSequence","getReplacement","quoteChar","escapedCharsRegExp","nonAsciiCharacters","jsxDoubleQuoteEscapedCharsRegExp","jsxSingleQuoteEscapedCharsRegExp","jsxEscapedCharsMap","encodeJsxCharacterEntity","getJsxAttributeStringReplacement","isQuoteOrBacktick","indentStrings","singleLevel","getIndentSize","newLine","output","indent3","lineCount","linePos","hasTrailingComment","updateLineCountAndPosFor","lineStartsOfS","write","writeComment","reset2","rawWrite","writeLiteral","writeLine","force","writer","pendingTrailingSemicolon","commitPendingTrailingSemicolon","sym","referenceFile","getCanonicalAbsolutePath","resolver","referencePath","dir","extensionless","emitOutputFilePathWithoutExtension","outputDir","getSourceFilePathInNewDirWorker","getCommonSourceDirectory2","targetSourceFile","forceDtsEmit","moduleKind","moduleEmitEnabled","sourceFiles","commonDir","outputPath","newDirPath","commonSourceDirectory","sourceFilePath","hostErrorMessage","ensureDirectoriesExist","directoryPath","createDirectory","parentDirectory","getLineOfLocalPositionFromLineMap","lineMap","accessor","hasThis","signature","thisParameter","getAccessor","memberName","accessorName","isNonTypeAliasTemplate","emitNewLineBeforeLeadingComments","leadingComments","emitNewLineBeforeLeadingCommentsOfPosition","emitComments","leadingSeparator","trailingSeparator","emitInterveningSeparator","removeComments","currentDetachedCommentInfo","isPinnedCommentLocal","detachedComments","lastComment","lastCommentLine","firstCommentLineAndCharacter","firstCommentLineIndent","currentLine","nextLineStart","calculateIndent","spacesToEmit","numberOfSingleSpacesToEmit","indentSizeSpaceString","writeTrimmedCurrentLine","currentLineText","currentLineIndent","getModifierFlagsWorker","includeJSDoc","alwaysIncludeJSDoc","getRawJSDocModifierFlagsNoCache","selectEffectiveModifierFlags","selectSyntacticModifierFlags","getJSDocModifierFlagsNoCache","modifiers","modifier","cls","excludeCompoundAssignment","baseStr","isExportDefaultSymbol","supportedTSExtensionsForExtractExtension","getExpandedCharCodes","base64Digits","byte1","byte2","byte3","byte4","getStringFromExpandedCharCodes","codes","nextCode","expandedCharCodes","ch1","ch3","ch4","code1","code2","code3","hostOrText","jsonText","looseResult","carriageReturnLineFeed","lineFeed","range1","range2","includeSecondRangeComments","range2Start","list","includeComments","stopPos","prevPos","getPreviousNonWhitespacePosition","r1","r2","isWrite","checkFlags","accessModifier","staticModifier","checker","accessKind","operatorToken","parentAccess","reverseAccessKind","dst","src","onDeleteValue","newMap","onExistingValue","existingValue","createNewValue","valueInNewMap","moduleSpecifier","lastChild","walkAccessExpression","access","stopAtCallExpressions","Symbol4","Type3","Signature2","Node4","Token","Identifier2","SourceMapSource","objectAllocatorPatchers","alloc","_match","localizedDiagnosticMessages","messages","getMessages","isDiagnosticWithDetachedLocation","attachFileToDiagnostic","diagnosticWithLocation","related","diagnosticsWithLocation","chain","details","headChain","tailChain","lastChain","getDiagnosticFilePath","d1","d2","compareRelatedInformation","getDiagnosticCode","compareMessageText","d1i","d2i","headMsg1","getDiagnosticMessage","headMsg2","chain1","chain2","compareMessageChain","c2","compareMessageChainSize","compareMessageChainContent","msg1","messageTextEqualityComparer","m1","m2","t1","t2","walkTreeForJSXTags","isFileModuleFromUsingJSXTag","isFileForcedToBeModuleByFormat","checks","combined","moduleResolution","createComputedCompilerOptions","_computedOptions","option","jsx","jsxImportSourcePragmas","jsxImportSourcePragma","jsxRuntimePragmas","jsxRuntimePragma","seenAsterisk","cwd","symlinkedDirectories","symlinkedDirectoriesByRealpath","symlinkedFiles","hasProcessedResolutions","real","symlink","symlinkPath","forEachResolvedModule","forEachResolvedTypeReferenceDirective","typeReferenceDirectives","processResolution","hasAnySymlinks","resolvedFileName","originalPath","commonResolved","commonOriginal","guessDirectorySymlink","aParts","bParts","isDirectory","isNodeModulesOrScopedPackageDirectory","stripLeadingDirectorySeparator","withoutPrefix","reservedCharacterPattern","escapeRegExpCharacter","wildcardCharCodes","commonPackageFolders","implicitExcludePathRegexPattern","filesMatcher","replaceWildcardCharacter","directoriesMatcher","excludeMatcher","wildcardMatchers","specs","usage","patterns","pattern2","lastPathComponent","singleAsteriskRegexFragment","doubleAsteriskRegexFragment","replaceWildcardCharacter2","subpattern","hasWrittenComponent","lastComponent","optionalCount","componentPattern","absolutePath","getBasePaths","getFileSystemEntries","includeFileRegexes","includeDirectoryRegex","excludeRegex","visited","toCanonical","visitDirectory","depth2","canonicalPath","absoluteName","includeIndex","re","basePaths","includeBasePaths","include","absolute","getIncludeBasePath","includeBasePath","wildcardOffset","supportedTSExtensions","supportedTSExtensionsWithJson","supportedJSExtensions","allSupportedExtensions","allSupportedExtensionsWithJson","extraFileExtensions","needJsExtensions","builtins","flatBuiltins","isJSLike","supportedExtensions","ModuleSpecifierEnding2","usesExtensionsOnImports","imports","hasExtension2","preference","resolutionMode","moduleResolutionIsNodeNext","inferPreference","usesJsExtensions","specifiers","getRequiresAtTopOfFile","r","nonRequireStatementCount","requires","numberOfDirectorySeparators","path1","extensionsToRemove","indexOfStar","parsedPatternsCache","matchableStringSet","pathList","patternOrStr","parsedPatterns","getValue","skipTypeCheckingWorker","ignoreNoCheck","isCheckJs","stringValue","log2Base","nIndex","nonZeroStart","endIndex","bitsNeeded","segments","bitOffset","segment","digitChar","shiftedDigit","residual","base10Value","firstNonzeroSegment","segmentsRemaining","mod10","newSegment","segmentValue","negative","roundTripOnly","success","useSite","isIdentifierInNonEmittingHeritageClause","isPartOfPossiblyValidTypeOrAbstractComputedPropertyName","isShorthandPropertyNameUseSite","containerKind","width","newFlags","rootNode","incremental","bindParentToChildIgnoringJSDoc","bindParentToChild","bindJSDoc","isPackedElement","parent3","parent4","singleQuote","stringNamed","isMethod","isMethodNamedNew","fullPath","topLevelNodeModulesIndex","topLevelPackageNameIndex","packageRootIndex","fileNameIndex","States","States2","partStart","partEnd","isBracketed","typeExpression","firstChar","stringReplace","replacement","isSyntacticallyString","resolvedOtherFiles","hasExternalReferences","evaluateElementAccessExpression","evaluateEntityNameExpression","evaluate","location","evaluateTemplateExpression","spanResult","requireSymbol","argumentsSymbol","getSymbolOfDeclaration","globals","setRequiresScopeChangeCache","getRequiresScopeChangeCache","onPropertyWithInvalidInitializer","onFailedToResolveSymbol","onSuccessfullyResolvedSymbol","isolatedModulesLikeFlagName","emitStandardClassFields","emptySymbols","resolveNameHelper","nameArg","meaning","nameNotFoundMessage","isUse","excludeGlobals","originalLocation","lastLocation","lastSelfReferenceLocation","propertyWithInvalidInitializer","associatedDeclarationForContainingInitializerOrBindingName","withinDeferredContext","loop","useResult","useOuterVariableScopeInParameter","getIsDeferredContext","moduleExports","localSymbol","moduleExport","isTypeParameterSymbolDeclaredInContainer","className","functionName","parameterName","isSelfReferenceLocation","functionLocation","declarationRequiresScopeChange","requiresScopeChange","requiresScopeChangeWorker","includeBigInt","unprefixedNodeCoreModulesList","includeTypeSpaceImports","isJavaScriptFile","getNodeAtPosition","moduleNameExpr","getContainingChild","libReference","libName","resolvedProjectReferences","resolvedRef","projectReferences","cbResolvedRef","cbRef","seenResolvedRefs","worker","projectReferences2","resolvedProjectReferences2","skipChildren","optionsObject","getPropertyArrayElementValue","clone2","getSynthesizedDeepCloneWorker","replaceNode","nodeClone","ns","cloned","addEmitFlagsRecursively","getFirstChild","getChild","NodeConstructor2","TokenConstructor2","IdentifierConstructor2","PrivateIdentifierConstructor2","SourceFileConstructor2","createBaseSourceFileNode","createBaseIdentifierNode","createBasePrivateIdentifierNode","createBaseTokenNode","createBaseNode","factory2","binaryLeftOperandParenthesizerCache","binaryRightOperandParenthesizerCache","getParenthesizeLeftSideOfBinaryForOperator","getParenthesizeRightSideOfBinaryForOperator","parenthesizeLeftSideOfBinary","parenthesizeRightSideOfBinary","parenthesizeExpressionOfComputedPropertyName","parenthesizeConditionOfConditionalExpression","parenthesizeBranchOfConditionalExpression","parenthesizeExpressionOfExportDefault","parenthesizeExpressionOfNew","parenthesizeLeftSideOfAccess","parenthesizeOperandOfPostfixUnary","parenthesizeOperandOfPrefixUnary","parenthesizeExpressionsOfCommaDelimitedList","parenthesizeExpressionForDisallowedComma","parenthesizeExpressionOfExpressionStatement","parenthesizeConciseBodyOfArrowFunction","parenthesizeCheckTypeOfConditionalType","parenthesizeExtendsTypeOfConditionalType","parenthesizeConstituentTypesOfUnionType","parenthesizeConstituentTypeOfUnionType","parenthesizeConstituentTypesOfIntersectionType","parenthesizeConstituentTypeOfIntersectionType","parenthesizeOperandOfTypeOperator","parenthesizeOperandOfReadonlyTypeOperator","parenthesizeNonArrayTypeOfPostfixType","parenthesizeElementTypesOfTupleType","parenthesizeElementTypeOfTupleType","parenthesizeTypeOfOptionalType","parenthesizeTypeArguments","parenthesizeLeadingTypeArgument","parenthesizerRule","mixingBinaryOperatorsRequiresParentheses","binaryOperandNeedsParentheses","isLeftSideOfBinary","leftOperand","emittedOperand","binaryOperatorPrecedence","binaryOperatorAssociativity","operandPrecedence","operatorHasAssociativeProperty","leftKind","getLiteralKindOfBinaryPlusOperand","literalKind","parenthesizeBinaryOperand","leftSide","rightSide","conditionalPrecedence","emittedCondition","conditionPrecedence","branch","emittedExpression","check","needsParens","leftmostExpr","optionalChain","expressionPrecedence","commaPrecedence","callee","updated","leftmostExpressionKind","checkType","extendsType","hasJSDocPostfixQuestion","parenthesizeOrdinalTypeArgument","typeArguments","_binaryOperator","_leftSide","convertToFunctionBlock","convertToFunctionExpression","convertToClassExpression","convertToArrayAssignmentElement","convertToObjectAssignmentElement","convertToAssignmentPattern","convertToObjectAssignmentPattern","convertToArrayAssignmentPattern","convertToAssignmentElementTarget","multiLine","returnStatement","nextAutoGenerateId","NodeFactoryFlags2","nodeFactoryPatchers","baseFactory2","setOriginal","parenthesizerRules","converters","getBinaryCreateFunction","createBinaryExpression","getPrefixUnaryCreateFunction","createPrefixUnaryExpression","getPostfixUnaryCreateFunction","createPostfixUnaryExpression","getJSDocPrimaryTypeCreateFunction","createJSDocPrimaryTypeWorker","getJSDocUnaryTypeCreateFunction","createJSDocUnaryTypeWorker","getJSDocUnaryTypeUpdateFunction","updateJSDocUnaryTypeWorker","getJSDocPrePostfixUnaryTypeCreateFunction","postfix","createJSDocPrePostfixUnaryTypeWorker","getJSDocPrePostfixUnaryTypeUpdateFunction","updateJSDocPrePostfixUnaryTypeWorker","getJSDocSimpleTagCreateFunction","tagName","createJSDocSimpleTagWorker","getJSDocSimpleTagUpdateFunction","updateJSDocSimpleTagWorker","getJSDocTypeLikeTagCreateFunction","createJSDocTypeLikeTagWorker","getJSDocTypeLikeTagUpdateFunction","updateJSDocTypeLikeTagWorker","createNodeArray","createNumericLiteral","createBigIntLiteral","createStringLiteral","createStringLiteralFromNode","createRegularExpressionLiteral","createLiteralLikeNode","createIdentifier","createTempVariable","createLoopVariable","createUniqueName","getGeneratedNameForNode","createPrivateIdentifier","createUniquePrivateName","getGeneratedPrivateNameForNode","createToken","createSuper","createThis","createNull","createTrue","createFalse","createModifier","createModifiersFromModifierFlags","createQualifiedName","updateQualifiedName","createComputedPropertyName","updateComputedPropertyName","createTypeParameterDeclaration","updateTypeParameterDeclaration","createParameterDeclaration","updateParameterDeclaration","createDecorator","updateDecorator","createPropertySignature","updatePropertySignature","createPropertyDeclaration","updatePropertyDeclaration2","createMethodSignature","updateMethodSignature","createMethodDeclaration","updateMethodDeclaration","createConstructorDeclaration","updateConstructorDeclaration","createGetAccessorDeclaration","updateGetAccessorDeclaration","createSetAccessorDeclaration","updateSetAccessorDeclaration","createCallSignature","updateCallSignature","createConstructSignature","updateConstructSignature","createIndexSignature","updateIndexSignature","createClassStaticBlockDeclaration","updateClassStaticBlockDeclaration","createTemplateLiteralTypeSpan","updateTemplateLiteralTypeSpan","createKeywordTypeNode","createTypePredicateNode","updateTypePredicateNode","createTypeReferenceNode","updateTypeReferenceNode","createFunctionTypeNode","updateFunctionTypeNode","createConstructorTypeNode","updateConstructorTypeNode","createTypeQueryNode","updateTypeQueryNode","createTypeLiteralNode","updateTypeLiteralNode","createArrayTypeNode","updateArrayTypeNode","createTupleTypeNode","updateTupleTypeNode","createNamedTupleMember","updateNamedTupleMember","createOptionalTypeNode","updateOptionalTypeNode","createRestTypeNode","updateRestTypeNode","createUnionTypeNode","updateUnionTypeNode","createIntersectionTypeNode","updateIntersectionTypeNode","createConditionalTypeNode","updateConditionalTypeNode","createInferTypeNode","updateInferTypeNode","createImportTypeNode","updateImportTypeNode","createParenthesizedType","updateParenthesizedType","createThisTypeNode","createTypeOperatorNode","updateTypeOperatorNode","createIndexedAccessTypeNode","updateIndexedAccessTypeNode","createMappedTypeNode","updateMappedTypeNode","createLiteralTypeNode","updateLiteralTypeNode","createTemplateLiteralType","updateTemplateLiteralType","createObjectBindingPattern","updateObjectBindingPattern","createArrayBindingPattern","updateArrayBindingPattern","createBindingElement","updateBindingElement","createArrayLiteralExpression","updateArrayLiteralExpression","createObjectLiteralExpression","updateObjectLiteralExpression","createPropertyAccessExpression","updatePropertyAccessExpression","questionDotToken","createPropertyAccessChain","updatePropertyAccessChain","createElementAccessExpression","updateElementAccessExpression","createElementAccessChain","updateElementAccessChain","createCallExpression","updateCallExpression","createCallChain","updateCallChain","createNewExpression","updateNewExpression","createTaggedTemplateExpression","updateTaggedTemplateExpression","createTypeAssertion","updateTypeAssertion","createParenthesizedExpression","updateParenthesizedExpression","createFunctionExpression","updateFunctionExpression","createArrowFunction","updateArrowFunction","createDeleteExpression","updateDeleteExpression","createTypeOfExpression","updateTypeOfExpression","createVoidExpression","updateVoidExpression","createAwaitExpression","updateAwaitExpression","updatePrefixUnaryExpression","updatePostfixUnaryExpression","updateBinaryExpression","createConditionalExpression","updateConditionalExpression","createTemplateExpression","updateTemplateExpression","createTemplateHead","createTemplateMiddle","createTemplateTail","createNoSubstitutionTemplateLiteral","createTemplateLiteralLikeNode","createYieldExpression","updateYieldExpression","createSpreadElement","updateSpreadElement","createClassExpression","updateClassExpression","createOmittedExpression","createExpressionWithTypeArguments","updateExpressionWithTypeArguments","createAsExpression","updateAsExpression","createNonNullExpression","updateNonNullExpression","createSatisfiesExpression","updateSatisfiesExpression","createNonNullChain","updateNonNullChain","createMetaProperty","updateMetaProperty","createTemplateSpan","updateTemplateSpan","createSemicolonClassElement","createBlock","updateBlock","createVariableStatement","updateVariableStatement","createEmptyStatement","createExpressionStatement","updateExpressionStatement","createIfStatement","updateIfStatement","createDoStatement","updateDoStatement","createWhileStatement","updateWhileStatement","createForStatement","updateForStatement","createForInStatement","updateForInStatement","createForOfStatement","updateForOfStatement","createContinueStatement","updateContinueStatement","createBreakStatement","updateBreakStatement","createReturnStatement","updateReturnStatement","createWithStatement","updateWithStatement","createSwitchStatement","updateSwitchStatement","createLabeledStatement","updateLabeledStatement","createThrowStatement","updateThrowStatement","createTryStatement","updateTryStatement","createDebuggerStatement","createVariableDeclaration","updateVariableDeclaration","createVariableDeclarationList","updateVariableDeclarationList","createFunctionDeclaration","updateFunctionDeclaration","createClassDeclaration","updateClassDeclaration","createInterfaceDeclaration","updateInterfaceDeclaration","createTypeAliasDeclaration","updateTypeAliasDeclaration","createEnumDeclaration","updateEnumDeclaration","createModuleDeclaration","updateModuleDeclaration","createModuleBlock","updateModuleBlock","createCaseBlock","updateCaseBlock","createNamespaceExportDeclaration","updateNamespaceExportDeclaration","createImportEqualsDeclaration","updateImportEqualsDeclaration","createImportDeclaration","updateImportDeclaration","createImportClause2","updateImportClause","createAssertClause","updateAssertClause","createAssertEntry","updateAssertEntry","createImportTypeAssertionContainer","updateImportTypeAssertionContainer","createImportAttributes","updateImportAttributes","createImportAttribute","updateImportAttribute","createNamespaceImport","updateNamespaceImport","createNamespaceExport","updateNamespaceExport","createNamedImports","updateNamedImports","createImportSpecifier","updateImportSpecifier","createExportAssignment2","updateExportAssignment","createExportDeclaration","updateExportDeclaration","createNamedExports","updateNamedExports","createExportSpecifier","updateExportSpecifier","createMissingDeclaration","createExternalModuleReference","updateExternalModuleReference","createJSDocFunctionType","updateJSDocFunctionType","createJSDocTypeLiteral","updateJSDocTypeLiteral","createJSDocTypeExpression","updateJSDocTypeExpression","createJSDocSignature","updateJSDocSignature","createJSDocTemplateTag","updateJSDocTemplateTag","createJSDocTypedefTag","updateJSDocTypedefTag","createJSDocParameterTag","updateJSDocParameterTag","createJSDocPropertyTag","updateJSDocPropertyTag","createJSDocCallbackTag","updateJSDocCallbackTag","createJSDocOverloadTag","updateJSDocOverloadTag","createJSDocAugmentsTag","updateJSDocAugmentsTag","createJSDocImplementsTag","updateJSDocImplementsTag","createJSDocSeeTag","updateJSDocSeeTag","createJSDocImportTag","updateJSDocImportTag","createJSDocNameReference","updateJSDocNameReference","createJSDocMemberName","updateJSDocMemberName","createJSDocLink","updateJSDocLink","createJSDocLinkCode","updateJSDocLinkCode","createJSDocLinkPlain","updateJSDocLinkPlain","createJSDocEnumTag","updateJSDocEnumTag","createJSDocUnknownTag","updateJSDocUnknownTag","createJSDocText","updateJSDocText","createJSDocComment","updateJSDocComment","createJsxElement","updateJsxElement","createJsxSelfClosingElement","updateJsxSelfClosingElement","createJsxOpeningElement","updateJsxOpeningElement","createJsxClosingElement","updateJsxClosingElement","createJsxFragment","createJsxText","updateJsxText","createJsxOpeningFragment","createJsxJsxClosingFragment","updateJsxFragment","createJsxAttribute","updateJsxAttribute","createJsxAttributes","updateJsxAttributes","createJsxSpreadAttribute","updateJsxSpreadAttribute","createJsxExpression","updateJsxExpression","createJsxNamespacedName","updateJsxNamespacedName","createCaseClause","updateCaseClause","createDefaultClause","updateDefaultClause","createHeritageClause","updateHeritageClause","createCatchClause","updateCatchClause","createPropertyAssignment","updatePropertyAssignment","createShorthandPropertyAssignment","updateShorthandPropertyAssignment","createSpreadAssignment","updateSpreadAssignment","createEnumMember","updateEnumMember","createSourceFile2","updateSourceFile2","createRedirectedSourceFile","createBundle","updateBundle","createSyntheticExpression","createSyntaxList3","createNotEmittedStatement","createNotEmittedTypeElement","createPartiallyEmittedExpression","updatePartiallyEmittedExpression","createCommaListExpression","updateCommaListExpression","createSyntheticReferenceExpression","updateSyntheticReferenceExpression","cloneNode","createImmediatelyInvokedFunctionExpression","createImmediatelyInvokedArrowFunction","createVoidZero","createExportDefault","createExternalModuleExport","createTypeCheck","createIsNotTypeCheck","createMethodCall","createGlobalMethodCall","createFunctionBindCall","createFunctionCallCall","createFunctionApplyCall","createArraySliceCall","createArrayConcatCall","createObjectDefinePropertyCall","createObjectGetOwnPropertyDescriptorCall","createReflectGetCall","createReflectSetCall","createPropertyDescriptor","createCallBinding","createAssignmentTargetWrapper","inlineExpressions","getInternalName","getLocalName","getExportName","getDeclarationName","getNamespaceMemberName","getExternalModuleOrNamespaceExportName","restoreOuterExpressions","restoreEnclosingLabel","createUseStrictPrologue","copyPrologue","copyStandardPrologue","copyCustomPrologue","ensureUseStrict","liftToBlock","mergeLexicalEnvironment","replaceModifiers","replaceDecoratorsAndModifiers","replacePropertyName","hasTrailingComma","aggregateChildrenFlags","createBaseDeclaration","finishUpdateBaseSignatureDeclaration","original","update","numericLiteralFlags","createBaseToken","createBaseStringLiteral","isSingleQuote","hasExtendedUnicodeEscape","sourceNode","createBaseIdentifier","escapedText","createBaseGeneratedIdentifier","autoGenerateFlags","recordTempVariable","reservedInNestedScopes","flags2","createBasePrivateIdentifier","createBaseGeneratedPrivateIdentifier","transformFlags","asName","propagateChildFlags","propagateIdentifierNameFlags","constraint","defaultType","asNodeArray","dotDotDotToken","questionToken","asInitializer","propagateChildrenFlags","propagateNameFlags","finishUpdatePropertySignature","questionOrExclamationToken","isAmbient","asteriskToken","isAsync","isGenerator","isAsyncGenerator","finishUpdateMethodDeclaration","finishUpdateClassStaticBlockDeclaration","finishUpdateConstructorDeclaration","finishUpdateGetAccessorDeclaration","finishUpdateSetAccessorDeclaration","assertsModifier","typeName","finishUpdateFunctionTypeNode","createConstructorTypeNode1","createConstructorTypeNode2","updateConstructorTypeNode1","updateConstructorTypeNode2","exprName","elementType","createUnionOrIntersectionTypeNode","parenthesize","updateUnionOrIntersectionTypeNode","trueType","falseType","typeParameter","head","templateSpans","argument","attributes","qualifier","isTypeOf","objectType","indexType","readonlyToken","nameType","lastElement","elementsArray","properties","createBasePropertyAccessExpression","createBaseElementAccessExpression","argumentExpression","asExpression","createBaseCallExpression","argumentsArray","equalsGreaterThanToken","asToken","propagateAssignmentPatternFlags","whenTrue","colonToken","whenFalse","checkTemplateLiteralLikeNode","templateFlags","cooked","getCookedText","getTransformFlagsOfTemplateLiteralLike","createTemplateLiteralLikeToken","createTemplateLiteralLikeDeclaration","heritageClauses","keywordToken","declarationList","thenStatement","elseStatement","asEmbeddedStatement","incrementor","awaitModifier","label","caseBlock","tryBlock","catchClause","finallyBlock","exclamationToken","finishUpdateFunctionDeclaration","finishUpdateNamespaceExportDeclaration","isTypeOnly","importClause","phaseModifier","namedBindings","isExportEquals","exportClause","finishUpdateExportDeclaration","propertyTags","isArrayType","getDefaultTagName","defaultTagName","getDefaultTagNameForKind","createBaseJSDocTag","createBaseJSDocTagDeclaration","fullName","isNameFirst","openingElement","closingElement","openingFragment","closingFragment","containsOnlyTriviaWhiteSpaces","namespace","variableDeclaration","block","asVariableDeclaration","finishUpdatePropertyAssignment","objectAssignmentInitializer","finishUpdateShorthandPropertyAssignment","endOfFileToken","redirectInfo","cloneRedirectedSourceFile","cloneSourceFileWorker","cloneSourceFile","cloneSourceFileWithChanges","isDeclarationFile","referencedFiles","typeReferences","hasNoDefaultLib","libReferences","libReferenceDirectives","isSpread","tupleNameSource","flattenCommaElements","thisArg","cloneGeneratedIdentifier","cloneIdentifier","cloneGeneratedPrivateIdentifier","clonePrivateIdentifier","paramValue","exportName","methodName","argumentsList","argumentsExpression","globalObjectName","propertyKey","receiver","tryAddPropertyAssignment","singleLine","isData","isAccessor2","updateOuterExpression","outerExpression","isIgnorableParen","innerExpression","kinds","outermostLabeledStatement","afterRestoreLabelCallback","shouldBeCapturedInTempVariable","cacheIdentifiers","paramName","expressions","allowComments","allowSourceMaps","emitFlags","ignoreAssignedName","nodeName","qualifiedName","ensureUseStrict2","isUseStrictPrologue2","statementOffset","foundUseStrict","numStatements","filter2","findSpanEnd","leftStandardPrologueEnd","leftHoistedFunctionsEnd","leftHoistedVariablesEnd","rightStandardPrologueEnd","rightHoistedFunctionsEnd","rightHoistedVariablesEnd","rightCustomPrologueEnd","leftPrologues","leftPrologue","rightPrologue","modifierArray","rawTextScanner","invalidValueSentinel","propagatePropertyNameFlagsOfChild","childFlags","getTransformFlagsSubtreeExclusions","subtreeFlags","baseFactory","makeSynthetic","syntheticFactory","SourceMapSource2","mergeEmitNode","sourceEmitNode","destEmitNode","internalFlags","trailingComments","commentRange","sourceMapRange","tokenSourceMapRanges","constantValue","helpers","startsOnNewLine","snippetElement","classThis","assignedName","mergeTokenSourceMapRanges","helper","sourceRanges","destRanges","annotatedNodes","emit","sourceEmitHelpers","targetEmitNode","helpersRemoved","snippet","autoGenerate","PrivateIdentifierKind2","context","immutableTrue","immutableFalse","getUnscopedHelperName","createDecorateHelper","createMetadataHelper","createParamHelper","createESDecorateHelper","createRunInitializersHelper","createAssignHelper","createAwaitHelper","createAsyncGeneratorHelper","createAsyncDelegatorHelper","createAsyncValuesHelper","createRestHelper","createAwaiterHelper","createExtendsHelper","createTemplateObjectHelper","createSpreadArrayHelper","createPropKeyHelper","createSetFunctionNameHelper","createValuesHelper","createReadHelper","createGeneratorHelper","createImportStarHelper","createImportStarCallbackHelper","createImportDefaultHelper","createExportStarHelper","createClassPrivateFieldGetHelper","createClassPrivateFieldSetHelper","createClassPrivateFieldInHelper","createAddDisposableResourceHelper","createDisposeResourcesHelper","createRewriteRelativeImportExtensionsHelper","decoratorExpressions","decorateHelper","metadataKey","metadataValue","metadataHelper","parameterOffset","paramHelper","createESDecorateClassContextObject","contextIn","createESDecorateClassElementAccessGetMethod","elementName","createESDecorateClassElementAccessSetMethod","createESDecorateClassElementAccessHasMethod","createESDecorateClassElementAccessObject","createESDecorateClassElementContextObject","createESDecorateContextObject","descriptorIn","decorators","initializers","extraInitializers","esDecorateHelper","runInitializersHelper","attributesSegments","assignHelper","awaitHelper","generatorFunc","hasLexicalThis","asyncGeneratorHelper","asyncDelegator","asyncValues","computedTempVariables","restHelper","propertyNames","computedTempVariableOffset","promiseConstructor","awaiterHelper","extendsHelper","raw","templateObjectHelper","packFrom","spreadArrayHelper","propKeyHelper","setFunctionNameHelper","valuesHelper","iteratorRecord","readHelper","generatorHelper","importStarHelper","importDefaultHelper","moduleExpression","exportsExpression","exportStarHelper","createBindingHelper","classPrivateFieldGetHelper","classPrivateFieldSetHelper","classPrivateFieldInHelper","envBinding","async","addDisposableResourceHelper","disposeResourcesHelper","rewriteRelativeImportExtensionsHelper","helperString","uniqueName","setModuleDefaultHelper","firstSegment","helperName","sourceFileToNodeChildren","origSourceFile","createReactNamespace","reactNamespace","react","createJsxFactoryExpressionFromEntityName","jsxFactory","jsxFactoryEntity","createJsxFragmentFactoryExpression","jsxFragmentFactoryEntity","props","parentElement","boundValue","firstDeclaration","updatedDeclaration","updatedExpression","createExpressionForAccessorDeclaration","createExpressionForPropertyAssignment","createExpressionForShorthandPropertyAssignment","createExpressionForMethodDeclaration","method","resultVariable","operation","isUseStrictPrologue","firstStatement","nodeFactory","helperFactory","hasExportStarsToExportValues","hasImportStar","hasImportDefault","impliedModuleKind","getImportedHelpers","helperNames","importName","externalHelpersImportDeclaration","externalHelpersModuleName","getOrCreateExternalHelpersModuleNameIfNeeded","hasImportStarOrImportDefault","namespaceDeclaration","importNode","tryGetModuleNameFromDeclaration","tryRenameExternalModule","rename","isStringOrNumericLiteral","rightNode","isExponentiationOperator","isMultiplicativeOperator","isMultiplicativeOperatorOrHigher","isAdditiveOperator","isAdditiveOperatorOrHigher","isShiftOperator","isRelationalOperator","isRelationalOperatorOrHigher","isEqualityOperator","isEqualityOperatorOrHigher","isBitwiseOperator","isBitwiseOperatorOrHigher","isLogicalOperator2","isLogicalOperatorOrHigher","isAssignmentOperatorOrHigher","isBinaryOperator","BinaryExpressionState","BinaryExpressionState2","machine","stackIndex","stateStack","nodeStack","userStateStack","_resultHolder","outerState","prevUserState","nextState","_outerState","nextNode","checkCircularity","pushStack","resultHolder","side","done","_machine","_nodeStack","_userStateStack","currentState","BinaryExpressionStateMachine","onEnter","onLeft","onOperator","onRight","onExit","foldState","trampoline","isExportOrDefaultKeywordKind","autoGenerateId","autoGenerate2","generateName","formatIdentifier","formatIdentifierWorker","privateName","baseName","isSyntheticParenthesizedExpression","flattenCommaListWorker","NodeConstructor","TokenConstructor","IdentifierConstructor","PrivateIdentifierConstructor","SourceFileConstructor","visitNode2","cbNode","visitNodes","cbNodes","isAnExternalModuleIndicatorNode","getImportMetaIfNecessary","hasModifierOfKind","walkTreeForImportMeta","isImportMeta2","forEachChildTable","_cbNodes","forEachChildInCallOrConstructSignature","forEachChildInUnionOrIntersectionType","forEachChildInParenthesizedTypeOrTypeOperator","forEachChildInObjectOrArrayBindingPattern","forEachChildInCallOrNewExpression","forEachChildInBlock","forEachChildInContinueOrBreakStatement","forEachChildInClassDeclarationOrExpression","forEachChildInNamedImportsOrExports","forEachChildInImportOrExportSpecifier","forEachChildInJsxOpeningOrSelfClosingElement","forEachChildInOptionalRestOrJSDocParameterModifier","forEachChildInJSDocParameterOrPropertyTag","forEachChildInJSDocTypeLikeTag","forEachChildInJSDocLinkCodeOrPlain","forEachChildInJSDocTag","forEachChildInJSDocImportTag","forEachChildInPartiallyEmittedExpression","gatherPossibleChildren","addWorkItem","setExternalModuleIndicator","languageVersionOrOptions","setParentNodes","overrideSetExternalModuleIndicator","format","Parser","setIndicator","textChangeRange","aggressiveChecks","newSourceFile","IncrementalParser","content","Parser2","disallowInAndDecoratorContext","countNode","nodeCount","baseNodeFactory","factoryCreateNodeArray","factoryCreateNumericLiteral","factoryCreateStringLiteral","factoryCreateLiteralLikeNode","factoryCreateIdentifier","factoryCreatePrivateIdentifier","factoryCreateToken","factoryCreateArrayLiteralExpression","factoryCreateObjectLiteralExpression","factoryCreatePropertyAccessExpression","factoryCreatePropertyAccessChain","factoryCreateElementAccessExpression","factoryCreateElementAccessChain","factoryCreateCallExpression","factoryCreateCallChain","factoryCreateNewExpression","factoryCreateParenthesizedExpression","factoryCreateBlock","factoryCreateVariableStatement","factoryCreateExpressionStatement","factoryCreateIfStatement","factoryCreateWhileStatement","factoryCreateForStatement","factoryCreateForOfStatement","factoryCreateVariableDeclaration","factoryCreateVariableDeclarationList","sourceFlags","parseDiagnostics","jsDocDiagnostics","syntaxCursor","currentToken","identifiers","identifierCount","parsingContext","notParenthesizedArrow","contextFlags","topLevel","parseErrorBeforeNextFinishedNode","parseSourceFile","sourceText2","syntaxCursor2","scriptKind2","setExternalModuleIndicatorOverride","parseJsonText2","initializeState","parseSourceFileWorker","clearState","parseIsolatedEntityName2","nextToken","parseEntityName","isValid","getNodePos","parseTokenNode","expression2","parseArrayLiteralExpression","parsePrefixUnaryExpression","parseObjectLiteralExpression","parseLiteralNode","parseErrorAtCurrentToken","finishNode","parseExpectedToken","fixupParentReferences","_sourceText","_languageVersion","_syntaxCursor","_scriptKind","_jsDocParsingMode","scanError","setExternalModuleIndicator2","parseList","parseStatement","endHasJSDoc","hasPrecedingJSDocComment","withJSDoc","reportPragmaDiagnostic","hasDeprecatedTag","hasJSDoc","JSDocParser","reparseTopLevelAwait","savedSyntaxCursor","baseSyntaxCursor","currentNode2","savedParseDiagnostics","findNextStatementWithAwait","prevStatement","nextStatement","findNextStatementWithoutAwait","diagnosticStart","diagnosticEnd","savedContextFlags","parseListElement","nonAwaitStatement","containsPossibleTopLevelAwait","statements2","markAsIntersectingIncrementalChange","setFields","oldSourceFile","sourceFile2","setContextFlag","val","setDisallowInContext","setYieldContext","setDecoratorContext","setAwaitContext","doOutsideOfContext","contextFlagsToClear","doInsideOfContext","contextFlagsToSet","allowInAnd","disallowInAnd","allowConditionalTypesAnd","disallowConditionalTypesAnd","doInYieldContext","doInDecoratorContext","doInAwaitContext","doOutsideOfAwaitContext","doInYieldAndAwaitContext","doOutsideOfYieldAndAwaitContext","inContext","inYieldContext","inDisallowInContext","inDisallowConditionalTypesContext","inDecoratorContext","inAwaitContext","parseErrorAt","parseErrorAtPosition","lastError","parseErrorAtRange","nextTokenWithoutCheck","nextTokenAnd","nextTokenJSDoc","nextJSDocCommentTextToken","scanJsxText","speculationKind","saveParseDiagnosticsLength","saveParseErrorBeforeNextFinishedNode","saveContextFlags","tryParse","isBindingIdentifier","isIdentifier2","parseExpected","diagnosticMessage","shouldAdvance","viableKeywordSuggestions","parseErrorForMissingSemicolonAfter","expressionText","parseErrorForInvalidName","getSpaceSuggestion","nameDiagnostic","blankDiagnostic","tokenIfBlankName","parseSemicolonAfterPropertyName","canParseSemicolon","tryParseSemicolon","parseExpectedJSDoc","parseExpectedMatchingBrackets","openKind","closeKind","openParsed","openPosition","parseOptional","parseOptionalToken","parseOptionalTokenJSDoc","parseTokenNodeJSDoc","createMissingNode","parseExpectedTokenJSDoc","optional","parseSemicolon","reportAtCurrentPosition","internIdentifier","isIdentifier3","privateIdentifierDiagnosticMessage","isReservedWord","msgArg","defaultMessage","parseBindingIdentifier","parseIdentifier","parseIdentifierName","parseIdentifierNameErrorOnUnicodeEscapeSequence","isLiteralPropertyName","isImportAttributeName2","parsePropertyNameWorker","allowComputedPropertyNames","parseComputedPropertyName","parsePrivateIdentifier","parsePropertyName","parseExpression","parseContextualModifier","nextTokenCanFollowModifier","nextTokenIsOnSameLineAndCanFollowModifier","canFollowModifier","nextTokenCanFollowDefaultKeyword","nextTokenCanFollowExportModifier","canFollowExportModifier","canFollowGetOrSetKeyword","parseAnyContextualModifier","nextTokenIsClassKeywordOnSameLine","nextTokenIsFunctionKeywordOnSameLine","isListElement2","parsingContext2","inErrorRecovery","currentNode","isStartOfStatement","isTypeMemberStart","isClassMemberStart","isValidHeritageClauseObjectLiteral","isHeritageClauseExtendsOrImplementsKeyword","isStartOfLeftHandSideExpression","isBindingIdentifierOrPrivateIdentifierOrPattern","isStartOfExpression","isStartOfParameter","isStartOfType","isHeritageClause2","nextTokenIsStringLiteral","nextTokenIsIdentifier","nextTokenIsIdentifierOrKeyword","nextTokenIsIdentifierOrKeywordOrGreaterThan","nextTokenIsStartOfExpression","nextTokenIsStartOfType","isListTerminator","isVariableDeclaratorListTerminator","nextTokenIsSlash","isInOrOfKeyword","isInSomeParsingContext","parseElement","saveParsingContext","listPos","abortParsingListOrMoveToNextToken","consumeNode","isReusableParsingContext","intersectsIncrementalChange","canReuseNode","isReusableClassMember","isReusableSwitchClause","isReusableStatement","isReusableEnumMember","isReusableTypeMember","isReusableVariableDeclaration","isReusableParameter","methodDeclaration","parsingContextErrors","parseDelimitedList","considerSemicolonAsDelimiter","commaStart","getExpectedCommaDiagnostic","createMissingList","isMissingList","parseBracketedList","open","close","allowReservedWords","entity","parseRightSideOfDot","allowIdentifierNames","allowPrivateIdentifiers","allowUnicodeEscapeSequenceInIdentifierName","nextTokenIsIdentifierOrKeywordOnSameLine","parseTemplateSpans","parseTemplateSpan","parseTemplateExpression","parseTemplateHead","parseTemplateType","parseTemplateTypeSpans","parseTemplateTypeSpan","parseType","parseLiteralOfTemplateSpan","parseTemplateMiddleOrTemplateTail","parseLiteralLikeNode","fragment","getTemplateLiteralRawText","isLast","tokenText","parseEntityNameOfTypeReference","parseTypeArgumentsOfTypeReference","parseTypeReference","typeHasArrowFunctionBlockingParseError","parseThisTypePredicate","parseThisTypeNode","parseJSDocAllType","parseJSDocNonNullableType","parseNonArrayType","parseJSDocUnknownOrNullableType","parseJSDocFunctionType","nextTokenIsOpenParen","parseParameters","parseReturnType","parseJSDocParameter","parseJSDocType","moduleTag","terminate","hasDotDotDot","parseTypeOrTypePredicate","parseTypeQuery","tryParseTypeArguments","parseTypeParameter","parseModifiers","parseUnaryExpressionOrHigher","parseTypeParameters","isJSDocParameter","parseNameOfParameter","parseIdentifierOrPattern","isParameterNameStart","parseParameter","inOuterAwaitContext","parseParameterWorker","parseParameterForSpeculation","allowAmbiguity","parseTypeAnnotation","savedTopLevel","parseInitializer","returnToken","isType","shouldParseReturnType","parseParametersWorker","savedYieldContext","savedAwaitContext","parseTypeMemberSemicolon","parseSignatureMember","isIndexSignature","isUnambiguouslyIndexSignature","parseIndexSignatureDeclaration","parsePropertyOrMethodSignature","parseTypeMember","nextTokenIsOpenParenOrLessThan","parseAccessorDeclaration","nextTokenIsDot","nextTokenIsOpenParenOrLessThanOrDot","parseTypeLiteral","parseObjectTypeMembers","isStartOfMappedType","parseMappedTypeParameter","parseMappedType","parseTupleElementType","isNextTokenColonOrQuestionColon","isTupleElementName","parseTupleElementNameOrTupleElementType","parseTupleType","parseParenthesizedType","parseModifiersForConstructorType","parseFunctionOrConstructorType","isConstructorType","parseKeywordAndNoDot","parseLiteralTypeNode","isStartOfTypeOfImportType","parseImportType","openBracePosition","currentToken2","parseImportAttributes","nextTokenIsNumericOrBigIntLiteral","thisKeyword","parseAssertsTypePredicate","inStartOfParameter","isStartOfParenthesizedOrFunctionType","parsePostfixTypeOrHigher","parseTypeOperator","parseTypeOperatorOrHigher","tryParseConstraintOfInferType","parseTypeParameterOfInferType","parseInferType","parseFunctionOrConstructorTypeToError","isInUnionType","isStartOfFunctionTypeOrConstructorType","parseUnionOrIntersectionType","parseConstituentType","createTypeNode","isUnionType","hasLeadingOperator","parseIntersectionTypeOrHigher","parseUnionTypeOrHigher","nextTokenIsNewKeyword","isUnambiguouslyStartOfFunctionType","skipParameterStart","previousErrorCount","typePredicateVariable","parseTypePredicatePrefix","isBinaryOperator2","isStartOfExpressionStatement","saveDecoratorContext","parseAssignmentExpressionOrHigher","makeBinaryExpression","allowReturnTypeInArrowFunction","isYieldExpression2","parseYieldExpression","arrowExpression","tryParseParenthesizedArrowFunctionExpression","tryParseAsyncSimpleArrowFunctionExpression","parseBinaryExpressionOrHigher","parseSimpleArrowFunctionExpression","parseConditionalExpressionRest","nextTokenIsIdentifierOrKeywordOrLiteralOnSameLine","nextTokenIsIdentifierOnSameLine","asyncModifier","parseArrowFunctionExpressionBody","triState","isParenthesizedArrowFunctionExpression","parseParenthesizedArrowFunctionExpression","parsePossibleParenthesizedArrowFunctionExpression","isParenthesizedArrowFunctionExpressionWorker","third","tokenPos","isUnParenthesizedAsyncArrowFunctionWorker","parseModifiersForArrowFunction","maybeParameters","hasReturnColon","unwrappedType","hasJSDocFunctionType","lastToken","parseFunctionBlock","precedence","parseBinaryExpressionRest","newPrecedence","keywordKind","makeSatisfiesExpression","makeAsExpression","parseSimpleUnaryExpression","parseDeleteExpression","parseTypeOfExpression","parseVoidExpression","isAwaitExpression2","parseAwaitExpression","isUpdateExpression","updateExpression","parseUpdateExpression","simpleUnaryExpression","parseJsxElementOrSelfClosingElementOrFragment","parseTypeAssertion","parseLeftHandSideExpressionOrHigher","parseMemberExpressionOrHigher","parseSuperExpression","parseCallExpressionRest","parsePrimaryExpression","parseMemberExpressionRest","parseTypeArgumentsInExpression","isTemplateStartOfTaggedTemplate","inExpressionContext","topInvalidNodePosition","openingTag","mustBeUnary","opening","parseJsxOpeningOrSelfClosingElementOrOpeningFragment","parseJsxChildren","newLast","parseJsxClosingElement","parseJsxClosingFragment","topBadPos","invalidElement","parseJsxText","parseJsxChild","token2","parseJsxExpression","parseJsxAttributes","parseJsxAttribute","parseJsxElementName","initialExpression","parseJsxTagName","isThis2","parseJsxSpreadAttribute","parseJsxAttributeName","parseJsxAttributeValue","attrName","nextTokenIsIdentifierOrKeywordOrOpenBracketOrTemplate","isStartOfOptionalPropertyOrElementAccessChain","tryReparseOptionalChain","parsePropertyAccessExpressionRest","isOptionalChain2","propertyAccess","parseElementAccessExpressionRest","indexedAccess","allowOptionalChain","isPropertyAccess","parseTaggedTemplateRest","tagExpression","argumentList","parseArgumentList","callExpr","parseArgumentExpression","canFollowTypeArgumentsInExpression","parseParenthesizedExpression","parseFunctionExpression","parseDecoratedExpression","parseClassExpression","parseNewExpressionOrNewDotTarget","parseSpreadElement","parseArgumentOrArrayLiteralElement","openBracketPosition","openBracketParsed","parseObjectLiteralElement","tokenIsIdentifier","parseMethodDeclaration","equalsToken","openBraceParsed","savedDecoratorContext","parseOptionalBindingIdentifier","expressionPos","parseBlock","ignoreMissingOpenBrace","parseEmptyStatement","parseIfStatement","openParenPosition","openParenParsed","parseDoStatement","parseWhileStatement","parseForOrForInOrForOfStatement","awaitToken","nextTokenIsBindingIdentifierOrStartOfDestructuringOnSameLineDisallowOf","nextTokenIsUsingKeywordThenBindingIdentifierOrStartOfObjectDestructuringOnSameLine","parseVariableDeclarationList","parseBreakOrContinueStatement","parseReturnStatement","parseWithStatement","parseCaseClause","parseDefaultClause","parseCaseOrDefaultClause","parseCaseBlock","parseSwitchStatement","parseThrowStatement","parseTryStatement","parseCatchClause","parseVariableDeclaration","parseDebuggerStatement","parseExpressionOrLabeledStatement","hasParen","isDeclaration2","isUsingDeclaration","isAwaitUsingDeclaration","nextTokenIsIdentifierOrStringLiteralOnSameLine","previousToken","isStartOfDeclaration","nextTokenIsBindingIdentifierOrStartOfDestructuring","isLetDeclaration","nextTokenIsBindingIdentifierOrStartOfDestructuringOnSameLine","nextTokenIsEqualsOrSemicolonOrColonToken","disallowOf","parseVariableStatement","parseFunctionDeclaration","parseClassDeclaration","parseDeclaration","isDeclareModifier","tryReuseAmbientDeclaration","parseDeclarationWorker","modifiersIn","parseInterfaceDeclaration","parseTypeAliasDeclaration","parseEnumDeclaration","parseModuleDeclaration","parseImportDeclarationOrImportEqualsDeclaration","parseExportAssignment","parseNamespaceExportDeclaration","parseExportDeclaration","missing","nextTokenIsFromKeywordOrEqualsToken","parseFunctionBlockOrSemicolon","parseArrayBindingElement","parseObjectBindingElement","parseObjectBindingPattern","parseArrayBindingPattern","parseVariableDeclarationAllowExclamation","allowExclamation","inForStatementInitializer","canFollowContextualOfKeyword","savedDisallowIn","modifierFlags","parseConstructorName","literalNode","tryParseConstructorDeclaration","parsePropertyDeclaration","parsePropertyOrMethodDeclaration","parseClassStaticBlockDeclaration","parseClassStaticBlockBody","parseDecoratorExpression","awaitExpression","memberExpression","tryParseDecorator","tryParseModifier","hasSeenStaticModifier","permitConstAsModifier","stopOnStartOfClassStaticBlock","nextTokenIsOpenBrace","allowDecorators","hasLeadingModifier","hasTrailingDecorator","parseClassElement","parseClassDeclarationOrExpression","parseNameOfClassDeclarationOrExpression","parseHeritageClauses","parseClassMembers","isImplementsClause","parseHeritageClause","tok","parseExpressionWithTypeArguments","parseEnumMember","parseModuleBlock","parseModuleOrNamespaceDeclaration","namespaceFlag","parseAmbientExternalModuleDeclaration","isExternalModuleReference2","afterImportPos","tokenAfterImportDefinitelyProducesImportDeclaration","tokenAfterImportedIdentifierDefinitelyProducesImportDeclaration","parseImportEqualsDeclaration","tryParseImportClause","parseModuleSpecifier","tryParseImportAttributes","parseImportClause","parseImportAttribute","skipKeyword","parseModuleReference","parseNamespaceImport","parseNamedImportsOrExports","parseExternalModuleReference","canParseModuleExportName","parseModuleExportName","parseName","parseImportSpecifier","parseExportSpecifier","parseImportOrExportSpecifier","checkIdentifierIsKeyword","checkIdentifierStart","checkIdentifierEnd","canParseAsKeyword","firstAs","secondAs","parseNameWithKeywordCheck","parseNamespaceExport","namespaceExportPos","ParsingContext","ParsingContext2","Tristate","Tristate2","JSDocParser2","parseJSDocTypeExpressionForTests2","jsDocTypeExpression","parseJSDocTypeExpression","mayOmitBraces","hasBrace","parseJSDocNameReference","p2","parseIsolatedJSDocComment2","parseJSDocCommentWorker","parseJSDocComment","JSDocState","JSDocState2","PropertyLikeParse","PropertyLikeParse2","tagsPos","tagsEnd","linkEnd","commentsPos","parts","doJSDocScan","margin","pushComment","parseOptionalJsdoc","removeTrailingWhitespace","addTag","parseTag","asterisk","whitespace","linkStart","parseJSDocLink","removeLeadingNewlines","trimmedComments","tagsArray","comments2","trimmed","isNextNonwhitespaceTokenEndOfFile","skipWhitespace","skipWhitespaceOrAsterisk","precedingLineBreak","seenLineBreak","indentText","parseJSDocIdentifierName","parseAuthorTag","parseImplementsTag","parseAugmentsTag","parseSimpleTag","parseThisTag","parseEnumTag","parseParameterOrPropertyTag","parseReturnTag","parseTemplateTag","parseTypeTag","parseTypedefTag","parseCallbackTag","parseOverloadTag","parseSatisfiesTag","parseSeeTag","parseThrowsTag","parseImportTag","parseUnknownTag","parseTrailingTagComments","parseTagComments","initialMargin","commentsPos2","parts2","linkEnd2","linkType","parseJSDocLinkPrefix","parseJSDocLinkName","create","isJSDocLinkTag","tryParseTypeExpression","parseBracketNameInPropertyAndParamTag","isBackquoted","parseJSDocEntityName","isObjectOrObjectArrayTypeReference","nestedTypeLiteral","parseNestedTypeLiteral","parseChildParameterOrPropertyTag","commentStart","textOnly","parseAuthorNameAndEmail","allParts","inEmail","parseExpressionWithTypeArgumentsForAugments","afterImportTagPos","usedBrace","parsePropertyAccessEntityNameExpression","createTag","parseJSDocTypeNameWithNamespace","childTypeTag","jsDocPropertyTags","hasChildren","parseChildPropertyTag","jsdocTypeLiteral","typedefTag","nested","typeNameOrNamespaceName","jsDocNamespaceNode","parseCallbackTagParameters","parseJSDocSignature","escapedTextsEqual","canParseTag","tryParseChildTag","parseTemplateTagTypeParameter","typeParameterPos","parseTemplateTagTypeParameters","incrementallyParsedFiles","markAsIncrementallyParsed","intersectingChangeSet","IncrementalParser2","checkChangeRange","oldText","createSyntaxCursor","changeRange","extendToAffectedRange","delta","updateTokenPositionsAndMarkElements","getNewCommentDirectives","oldDirectives","newDirectives","changeStart","changeRangeOldEnd","addedNewlyScannedDirectives","addNewlyScannedDirectives","updatedDirective","moveElementEntirelyPastChangeRange","isArray2","visitArray2","visitNode3","shouldCheckNode","jsDocComment","checkNodePositions","adjustIntersectingElement","changeRangeNewEnd","fullEnd","nearestNode","findNearestNodeStartingBeforeOrAtPosition","finalSpan","finalLength","bestResult","lastNodeEntirelyBeforePosition","visit","lastChildOfLastEntireNodeBeforePosition","getLastDescendant","oldTextPrefix","newTextPrefix","oldTextSuffix","newTextSuffix","currentArray","currentArrayIndex","lastQueriedPosition","findHighestListElementThatStartsAtPosition","InvalidPosition","InvalidPosition2","standardExtension","parseResolutionMode","reportDiagnostic","pragmas","extractPragmas","pragma","currentValue","entryOrList","lib","_preserve","preserve","parsed","namedArgRegExCache","getNamedArgRegEx","tripleSlashXMLCommentStartRegEx","singleLinePragmaRegEx","tripleSlash","addPragmaForMatch","multiLinePragmaRegEx","multiLineMatch","getNamedPragmaArguments","argMap","rhs","compileOnSaveCommandLineOption","jsxOptionMap","libEntries","specToDiagnostic","commandOptionsWithoutBuild","configDirTemplateSubstitutionOptions","configDirTemplateSubstitutionWatchOptions","isCommandLineOptionOfCustomType","optionsNameMap","shortOptionNames","optionsNameMapCache","compilerOptionsAlternateMode","getBuildOptionsNameMap","opt","createDiagnosticForInvalidCustomType","createDiagnostic","namesOfType","stringNames","k","convertJsonOptionOfCustomType","validateJsonOptionValue","getOptionName","createUnknownOptionError","unknownOption","unknownOptionErrorText","otherOption","createDiagnosticForNodeInSourceFileOrCompilerDiagnostic","possibleOption","commandLine","watchOptions","parseStrings","parseResponseFile","inputOptionName","getOptionDeclarationFromName","parseOptionValue","watchOpt","watchOptionsDidYouMeanDiagnostics","optValue","getCompilerOptionValueTypeString","optionName","allowShort","getOptionNameMap","short","buildOptionsNameMapCache","buildOptionsAlternateMode","buildOptionsDidYouMeanDiagnostics","projects","buildOptions","configFileName","optionsToExtend","extendedConfigCache","watchOptionsToExtend","configFileText","textOrDiagnostic","jsonSourceFile","convertConfigFileToObject","commandLineOptionsToMap","typeAcquisitionDidYouMeanDiagnostics","watchOptionsNameMapCache","getWatchOptionsNameMap","commandLineCompilerOptionsMapCache","getCommandLineCompilerOptionsMap","commandLineWatchOptionsMapCache","getCommandLineWatchOptionsMap","commandLineTypeAcquisitionMapCache","getCommandLineTypeAcquisitionMap","extendsOptionDeclaration","compilerOptionsDeclaration","watchOptionsDeclaration","typeAcquisitionDeclaration","_tsconfigRootOptions","getTsconfigRootOptionsMap","jsonConversionNotifier","rootExpression","firstObject","returnValue","convertPropertyValueToJson","convertObjectLiteralExpressionToJson","objectOption","isDoubleQuotedString","textOfKey","keyText","convertArrayLiteralExpressionToJson","elementOption","valueExpression","isCompilerOptionsValue","isNullOrUndefined","expectedType","configParseResult","matchesSpecs","pathOptions","optionMap","watchOptionMap","serializeWatchOptions","config","filterSameAsDefaultInclude","providedKeys","impliedCompilerOptions","optionDependsOn","implied","dependsOn","optionDependsOnRecursive","option2","dep","defaultIncludeSpec","includeSpecs","excludeSpecs","excludeRe","includeRe","getCustomTypeMapOfCommandLineOption","optionDefinition","customTypeMap","mapValue","serializeOptionBaseObject","allSetOptions","emitHeader","emitOption","newline","header","setting","commented","existingOptionIndex","formatValueOrArray","settingName","map3","formatSingleValue","toAbsolutePath","convertToOptionValueWithAbsolutePaths","json","existingOptions","resolutionStack","existingWatchOptions","parseJsonConfigFileContentWorker","configFile","directoryOfCombinedPath","parsedConfig","parseConfig","handleOptionConfigDirTemplateSubstitution","basePathForFileNames","configFileSpecs","getConfigFileSpecs","getFileNames","getProjectReferences","getDefaultTypeAcquisition","getWildcardDirectories","referencesOfRaw","getPropFromRaw","filesSpecs","toPropValue","getSpecsFromRaw","hasZeroOrNoReferences","hasExtends","nodeValue","createCompilerDiagnosticOnlyIfJson","excludeOfRaw","isDefaultIncludeSpec","outDir","declarationDir","validatedIncludeSpecsBeforeSubstitution","validatedExcludeSpecsBeforeSubstitution","validatedIncludeSpecs","validatedExcludeSpecs","validateSpecs","getSubstitutedStringArrayWithConfigDirTemplate","validatedFilesSpecBeforeSubstitution","validatedFilesSpec","basePath2","shouldReportNoInputFiles","getErrorForNoInputFiles","ref","specResult","prop","validateElement","elementTypeName","startsWithConfigDirTemplate","setOptionValue","getSubstitutedPathWithConfigDirTemplate","listResult","objectResult","getSubstitutedMapLikeOfStringArrayWithConfigDirTemplate","configDirTemplate","mapLike","subStitution","isErrorNoInputFiles","canJsonReportNoInutFiles","configParseDiagnostics","existingErrors","isSuccessfulParsedTsconfig","resolvedPath","ownConfig","parseOwnConfigOfJson","parseOwnConfigOfJsonSourceFile","applyExtendedConfig","extendedConfigPath","assignWatchOptions","extendedConfig","getExtendedConfig","extendsRaw","relativeDifference","setPropertyInResultIfNotUndefined","convertCompilerOptionsFromJsonWorker","typeAcquisition","convertTypeAcquisitionFromJsonWorker","convertWatchOptionsFromJsonWorker","convertCompileOnSaveOptionFromJson","getExtendsConfigPathOrArray","propertyAssignment","newBase","getExtendsConfigPath","getDefaultCompilerOptions","rootCompilerOptions","rootOptions","onPropertySet","parentOption","currentOption","resolved","extendedResult","extenedSourceFile","jsonOption","jsonOptions","convertOptionsFromJson","defaultOptions","optType","convertJsonOptionOfListType","validatedValue","normalizeNonListOptionValue","invalidTrailingRecursionPattern","wildcardDirectoryPattern","keyMapper","literalFileMap","wildcardFileMap","wildCardJsonFileMap","supportedExtensionsWithJsonIfResolveJsonModule","jsonOnlyIncludeRegexes","includeFilePatterns","hasFileWithHigherPriorityExtension","removeWildcardFilesWithLowerPriorityExtension","literalFiles","wildcardFiles","invalidDotDotAfterRecursiveWildcard","wildcardIndex","excludePattern","disallowTrailingRecursion","specKey","diag2","exclude","rawExcludeRegex","wildcardDirectories","wildCardKeyToPath","recursiveKeys","getWildcardDirectoryFromSpec","existingPath","existingFlags","recursiveKey","toCanonicalKey","questionWildcardIndex","starWildcardIndex","lastDirectorySeperatorIndex","extensionGroup","higherPriorityPath","lowerPriorityPath","opts","out","getOptionValueWithEmptyStrings","optionEnumValue","optionStringValue","withPackageId","packageInfo","packageJsonContent","getPeerDependenciesOfPackageJsonInfo","noPackageId","removeIgnoredPackageId","formatExtensions","extensionsToExtensionsArray","resolvedTypeScriptOnly","createResolvedModuleWithFailedLookupLocationsHandlingSymlink","isExternalLibraryImport","failedLookupLocations","affectingLocations","getOriginalAndResolvedFileName","createResolvedModuleWithFailedLookupLocations","resultFromCache","initializeResolutionFieldForReadonlyCache","initializeResolutionField","fromCache","readPackageJsonField","jsonContent","fieldName","typeOfTag","readPackageJsonPathField","baseDirectory","readPackageJsonTypesFields","readPackageJsonTSConfigField","readPackageJsonMainField","readPackageJsonTypesVersionsField","typesVersions","readPackageJsonTypesVersionPaths","bestVersionKey","bestVersionPaths","typeScriptVersion","keyRange","getDefaultTypeRoots","typeRoots","atTypes","nodeModulesAtTypes","arePathsEqual","traceEnabled","realPath","pathsAreEqual","getCandidateFromTypeRoot","typeRoot","typeReferenceDirectiveName","moduleResolutionState","nameForLookup","mangleScopedPackageNameWithTrace","containingFile","redirectedReference","containingDirectory","traceResult","features","getNodeResolutionFeatures","conditions","primaryLookup","primary","secondaryLookup","resolvedTypeReferenceDirective","resolvedFromFile","loadModuleFromFile","packageDirectory","getPackageJsonInfo","loadNodeModuleFromDirectory","initialLocationForSecondaryLookup","normalizePathForCJSResolution","nodeLoadModuleByRelativeName","searchResult","loadModuleFromNearestNodeModulesDirectory","ancestorDirectory","nodeModulesFolder","typeDirectivePath","packageJsonPath","compilerOptionValueToString","affectingOptionDeclarations","createCacheWithRedirects","ownOptions","optionsToRedirectsKey","redirectsMap","redirectsKeyToMap","ownMap","getMapOfCacheRedirects","getOrCreateMapOfCacheRedirects","clear2","getOrCreateMap","redirectOptions","getRedirectsCacheKey","ownKey","createPackageJsonInfoCache","getPackageJsonInfo2","setPackageJsonInfo","getInternalMap","getOrCreateCache","cacheWithRedirects","createPerDirectoryResolutionCache","directoryToModuleNameMap","getFromDirectoryCache","getOrCreateCacheForDirectory","options2","underlying","memoizedReverseKeys","getUnderlyingCacheKey","elem","getOriginalOrResolvedModuleFileName","getOriginalOrResolvedTypeReferenceFileName","createNonRelativeNameResolutionCache","getResolvedFileName","moduleNameToDirectoryMap","getFromNonRelativeNameCache","getOrCreateCacheForNonRelativeName","nonRelativeModuleName","createPerModuleNameCache","directoryPathMap","get","commonPrefix","getCommonPrefix","resolutionDirectory","limit","sep","createModuleOrTypeReferenceResolutionCache","packageJsonInfoCache","perDirectoryResolutionCache","nonRelativeNameResolutionCache","clearAllExceptPackageJsonInfoCache","nonRelativeName","libraryName","resolveFrom","node16ModuleNameResolver","nodeNextModuleNameResolver","tryLoadModuleUsingOptionalResolutionSettings","loader","tryLoadModuleUsingPathsIfEligible","tryLoadModuleUsingRootDirs","tryLoadModuleUsingBaseUrl","baseUrl","pathPatterns","tryLoadModuleUsingPaths","matchedRootDir","matchedNormalizedPrefix","rootDir","normalizedRoot","isLongestMatchingPrefix","candidate2","resolvedFileName2","initialDir","resolvedModule","tryResolveJSModuleWorker","NodeResolutionFeatures2","nodeNextModuleNameResolverWorker","esmMode","nodeModuleNameResolverWorker","isConfigLookup","priorityExtensions","secondaryExtensions","tryResolve","wantedTypesButGotJs","extensionIsOk","traceIfEnabled","diagnosticState","diagnosticResult","diagnosticsCompilerOptions","extensions2","state2","extensions3","onlyRecordFailures","state3","toSearchResult","resolved2","resolved3","loadModuleFromImports","loadModuleFromSelfNameReference","resolveFromTypeRoot","lastPart","considerPackageJson","parentOfCandidate","isFolder","indexAfterNodeModules","indexAfterPackageName","moveToNextDirectorySeparatorIfAvailable","prevSeparatorIndex","nextSeparatorIndex","loadModuleFromFileNoPackageId","resolvedByReplacingExtension","loadModuleFromFileNoImplicitExtensions","resolvedByAddingExtension","tryAddingExtensions","loadFileNameFromPackageJsonField","packageJsonValue","tryFile","originalExtension","tryExtension","resolvedUsingTsExtension","tryFileLookup","fileNameNoExtension","loadNodeModuleFromDirectoryWorker","packageJsonInfo","resolveJs","entrypoints","loadPackageJsonMainState","mainResolution","conditionSets","loadPackageJsonExportsState","exportResolutions","loadEntrypointsFromExportMap","exports2","loadEntrypointsFromTargetExports","partsAfterFirst","resolvedTarget","finalPath","getVersionPathsOfPackageJsonInfo","readPackageJsonPeerDependencies","peerDependencies","nodeModules","peerPackageJson","packageJson","versionPaths","packageFile","onlyRecordFailures2","fromFile","expandedExtensions","candidateIsFromPackageJsonField","onlyRecordFailuresForPackageFile","onlyRecordFailuresForIndex","indexPath","packageFileResult","noKeyStartsWithDot","nameParts","trailingParts","subpath","loadModuleFromExports","mainExport","getLoadModuleFromTargetExportOrImport","loadModuleFromExportsOrImports","aPatternIndex","bPatternIndex","baseLenA","baseLenB","lookupTable","isImports","loadModuleFromTargetExportOrImport","expandingKeys","hasOneAsterisk","potentialTarget","matchesPatternWithTrailer","starPos","patternKey","firstStar","combinedLookup","subpathParts","inputLink","tryLoadInputFileForPath","subTarget","_a2","_b2","combineDirectoryPath","packagePath","isImports2","useCaseSensitiveFileNames","commonSourceDirGuesses","requestingFile","commonDir2","commonSourceDirGuess","candidateDirectories","getOutputDirectoriesForBaseDirectory","candidateDir","pathFragment","possibleInputBase","jsAndDtsExtensions","inputExts","possibleExt","possibleInputWithInputExtension","_a3","_b3","currentDir","loadModuleFromNearestNodeModulesDirectoryWorker","loadModuleFromNearestNodeModulesDirectoryTypesScope","typesScopeOnly","resolutionFromCache","tryFindNonRelativeModuleNameInCache","loadModuleFromImmediateNodeModulesDirectory","globalCache","nodeModulesFolderExists","packageResult","loadModuleFromSpecificNodeModulesDirectory","nodeModulesAtTypes2","nodeModulesAtTypesExists","nodeModulesDirectory","nodeModulesDirectoryExists","rootPackageInfo","pathAndExtension","packageDirectoryExists","fromPaths","matchedPattern","matchedStar","matchedPatternText","subst","mangledScopedPackageSeparator","mangled","replaceSlash","mangledName","withoutAtTypePrefix","typesPackageName","resolvedUsingSettings","searchName","fromFileName","projectName","ModuleInstanceState2","getModuleInstanceStateCached","nodeId","getModuleInstanceStateWorker","exportDeclaration","specifierState","getModuleInstanceStateForAliasTarget","childState","found","ContainerFlags2","binder","createBinder","thisParentContainer","blockScopeContainer","lastContainer","delayedTypeAliases","seenThisKeyword","jsDocImports","currentFlow","currentBreakTarget","currentContinueTarget","currentReturnTarget","currentTrueTarget","currentFalseTarget","currentExceptionTarget","preSwitchCaseFlow","activeLabelList","hasExplicitReturn","inReturnPosition","hasFlowEffects","inStrictMode","inAssignmentPattern","symbolCount","Symbol48","classifiableNames","unreachableFlow","reportedUnreachableFlow","bindBinaryExpressionFlow","createBindBinaryExpressionFlow","bindSourceFile2","createDiagnosticForNode2","bindInStrictMode","bind","delayedBindJSDocTypedefTag","bindJSDocImports","file2","createSymbol","addDeclarationToSymbol","symbolFlags","containingClass","getDisplayName","declareSymbol","symbolTable","isReplaceableByMethod","isComputedName","isDefaultExport","messageNeedsName","multipleDefaultExports","declarationName","diag3","declareModuleMember","symbolExcludes","hasExportModifier","jsdocTreatAsExported","exportKind","local","declName","isTopLevelNamespaceAssignment","bindContainer","containerFlags","saveContainer","saveThisParentContainer","savedBlockScopeContainer","savedInReturnPosition","addToContainerChain","saveCurrentFlow","saveBreakTarget","saveContinueTarget","saveReturnTarget","saveExceptionTarget","saveActiveLabelList","saveHasExplicitReturn","isImmediatelyInvoked","createBranchLabel","bindChildren","addAntecedent","finishFlowLabel","bindEachFunctionsFirst","bindEach","bindFunction","bindEachChild","saveInAssignmentPattern","checkUnreachable","bindWhileStatement","bindDoStatement","bindForStatement","bindForInOrForOfStatement","bindIfStatement","bindReturnOrThrow","bindBreakOrContinueStatement","bindTryStatement","bindSwitchStatement","bindCaseBlock","bindCaseClause","bindExpressionStatement","bindLabeledStatement","bindPrefixUnaryExpressionFlow","bindPostfixUnaryExpressionFlow","bindDestructuringAssignmentFlow","bindDeleteExpressionFlow","bindConditionalExpressionFlow","bindVariableDeclarationFlow","bindAccessExpressionFlow","bindCallExpressionFlow","bindNonNullExpressionFlow","bindJSDocTypeAlias","bindJSDocImportTag","bindBindingElementFlow","bindParameterFlow","isNarrowingExpression","containsNarrowableReference","hasNarrowableArgument","isNarrowingBinaryExpression","isNarrowableReference","isNarrowingTypeofOperands","expr1","isNarrowableOperand","createLoopLabel","createReduceLabel","antecedents","setFlowNodeReferenced","flow","createFlowCondition","createFlowSwitchClause","createFlowMutation","createFlowCall","isStatementCondition","isLogicalExpression","isLogicalAssignmentExpression","isTopLevelLogicalExpression","doWithConditionalBranches","trueTarget","falseTarget","savedTrueTarget","savedFalseTarget","bindCondition","bindIterativeStatement","breakTarget","continueTarget","setContinueTarget","preWhileLabel","preBodyLabel","postWhileLabel","preDoLabel","preConditionLabel","postDoLabel","preLoopLabel","preIncrementorLabel","postLoopLabel","bindAssignmentTargetFlow","thenLabel","elseLabel","postIfLabel","findActiveLabel","bindBreakOrContinueFlow","flowLabel","activeLabel","normalExitLabel","returnLabel","exceptionLabel","finallyLabel","postSwitchLabel","savePreSwitchCaseFlow","hasDefault","isNarrowingSwitch","fallthroughFlow","preCaseLabel","maybeBindExpressionFlowIfCall","call","postStatementLabel","errorOrSuggestionOnNode","bindDestructuringTargetFlow","bindLogicalLikeExpression","preRightLabel","saveTrueTarget","saveInStrictMode","bindWorker","saveParent","postExpressionLabel","saveHasFlowEffects","maybeBound","maybeBind2","_node","elementAccess","savedInStrictMode","savedParent","trueLabel","falseLabel","bindInitializedVariableFlow","bindInitializer","entryFlow","exitFlow","bindJSDocClassTag","bindOptionalExpression","bindOptionalChainRest","bindOptionalChain","preChainLabel","bindOptionalChainFlow","declareSymbolAndAddToSymbolTable","declareSourceFileMember","declareClassMember","hasExportDeclarations","setExportContextFlag","bindModuleDeclaration","errorOnFirstToken","declareModuleSymbol","instantiated","bindFunctionOrConstructorType","typeLiteralSymbol","bindObjectLiteralExpression","bindAnonymousDeclaration","bindJsxAttributes","bindJsxAttribute","bindBlockScopedDeclaration","saveLastContainer","saveBlockScopeContainer","isTopLevel","bindPotentiallyMissingNamespaces","oldContainer","jsDocImportTag","enclosingContainer","enclosingBlockScopeContainer","checkContextualIdentifier","getStrictModeIdentifierMessage","checkPrivateIdentifier","checkStrictModeBinaryExpression","checkStrictModeEvalOrArguments","checkStrictModeCatchClause","checkStrictModeDeleteExpression","isEvalOrArgumentsIdentifier","contextNode","getStrictModeEvalOrArgumentsMessage","checkStrictModeFunctionName","getStrictModeBlockScopeFunctionDeclarationMessage","checkStrictModeFunctionDeclaration","errorSpan","checkStrictModePostfixUnaryExpression","checkStrictModePrefixUnaryExpression","checkStrictModeWithStatement","checkStrictModeLabeledStatement","isError","errorOrSuggestionOnRange","startNode2","endNode2","addErrorOrSuggestionDiagnostic","updateStrictModeStatementList","isUseStrictPrologueDirective","nodeText2","bindSpecialPropertyDeclaration","lookupSymbolForName","bindExportsPropertyAssignment","bindModuleExportsAssignment","bindPrototypePropertyAssignment","bindPrototypeAssignment","bindThisPropertyAssignment","bindSpecialPropertyAssignment","bindTypeParameter","bindParameter","bindVariableDeclarationOrBindingElement","bindPropertyWorker","bindPropertyOrMethodOrAccessor","bindFunctionDeclaration","bindAnonymousTypeWorker","bindFunctionExpression","bindObjectDefinePropertyAssignment","bindObjectDefinePropertyExport","bindObjectDefinePrototypeProperty","bindCallExpression","bindClassLikeDeclaration","bindEnumDeclaration","bindNamespaceExportDeclaration","bindImportClause","bindExportDeclaration","bindExportAssignment","bindSourceFileIfExternalModule","propTag","isAutoAccessor","bindSourceFileAsExternalModule","originalSymbol","setCommonJsModuleIndicator","forEachIdentifierInEntityName","symbol2","assignedExpression","bindExportAssignedObjectMemberAlias","thisContainer","constructorSymbol","l","lookupSymbolForPropertyAccess","bindDynamicallyNamedThisPropertyAssignment","addLateBoundAssignmentDeclarationToSymbol","bindStaticPropertyAssignment","bindPropertyAssignment","namespaceSymbol","bindPotentiallyNewExpandoMemberToNamespace","classPrototype","constructorFunction","isToplevel","parentSymbol","rootExpr","isPrototypeProperty","containerIsClass","table","isExpandoSymbol","getParentOfBinaryExpression","lookupContainer","bindingName","prototypeSymbol","symbolExport","possibleVariableDecl","classDeclaration","getInferTypeContainer","container2","shouldReportErrorOnModuleDeclaration","instanceState","isEnumDeclarationWithPreservedEmit","eachUnreachableRange","isExecutableStatement","slice","afterEnd","isPurelyTypeDeclaration","q","getRestTypeOfSignature","getTypePredicateOfSignature","getReturnTypeOfSignature","getBaseTypes","resolveStructuredTypeMembers","getTypeOfSymbol","getResolvedSymbol","getConstraintOfTypeParameter","getFirstIdentifier2","getTypeArguments","getSymbolWalker","accept","visitedTypes","visitedSymbols","visitType","visitSymbol","visitTypeReference","visitMappedType","visitInterfaceType","visitObjectType","visitTypeParameter","visitUnionOrIntersectionType","visitIndexType","visitIndexedAccessType","visitSignature","typePredicate","interfaceT","symbolId","query","RelativePreference","countPathComponents","forEachFileNameOfModule","getLocalModuleSpecifierBetweenFileNames","getModuleSpecifier","getModuleSpecifierPreferences","getModuleSpecifiers","getModuleSpecifiersWithCacheInfo","getNodeModulesPackageName","tryGetJSExtensionForFile","tryGetModuleSpecifiersFromCache","tryGetRealFileNameForNonJsDeclarationFileName","updateModuleSpecifier","stringToRegex","slash","RelativePreference2","importModuleSpecifierPreference","importModuleSpecifierEnding","autoImportSpecifierExcludeRegexes","importingSourceFile","oldImportSpecifier","filePreferredEnding","getPreferredEnding","syntaxImpliedNodeFormat","impliedNodeFormat","getDefaultResolutionModeForFile","preferredEnding","allowImportingTsExtension","importingSourceFileName","toFileName2","getModuleSpecifierWorker","nodeModulesFileName","preferences","getInfo","modulePaths","getAllModulePaths","tryGetModuleNameAsNodeModule","userPreferences","getLocalModuleSpecifier","tryGetModuleSpecifiersFromCacheWorker","moduleSourceFile","cached","forAutoImport","computedWithoutCache","ambient","tryGetModuleNameFromAmbientModule","isExcludedByRegex","getAllModulePathsWorker","computeModuleSpecifiers","importingFile","targetFileName","importMode","existingSpecifier","reason","existingMode","targetMode","importedFileIsInNodeModules","nodeModulesSpecifiers","pathsSpecifiers","redirectPathsSpecifiers","relativeSpecifiers","excludeRegexes","sourceDirectory","moduleFileName","getAllowedEndingsInPrefererredOrder","relativePreference","pathsOnly","rootDirs","canonicalSourceDirectory","allowedEndings","tryGetModuleNameFromRootDirs","processEnding","relativeToBaseUrl","getRelativePathIfInSameVolume","fromPackageJsonImports","tryGetModuleNameFromPackageJsonImports","prefersTsExtension","tryGetModuleNameFromPaths","maybeNonRelative","relativeIsExcluded","nonRelativeIsExcluded","projectDirectory","sourceIsInternal","targetIsInternal","nearestTargetPackageJson","getNearestAncestorDirectoryWithPackageJson","nearestSourcePackageJson","packageJsonPathsAreEqual","isPathRelativeToParent","comparePathsByRedirectAndNumberOfDirectorySeparators","importingFileName","importedFileName","preferSymlinks","referenceRedirect","importedPath","redirects","targets","shouldFilterIgnoredPaths","fullImportedFileName","realPathDirectory","symlinkDirectories","symlinkDirectory","importingFilePath","importedFilePath","runtimeDependencyFields","getAllRuntimeDependencies","deps","toResolve","depName","allFileNames","isRedirect","isInNodeModules","sortedPaths","directoryStart","pathsInDirectory","newDirectory","remainingPaths","ambientModuleDeclare","topNamespace","getTopNamespace","exportAssignment","exportSymbol","patternText2","ending","validateEnding","tryGetModuleNameFromExportsOrImports","targetFilePath","preferTsExtension","outputFile","declarationFile","pathOrPattern","extensionSwappedTarget","canTryTsExtension","getJSExtensionForFile","leadingSlice","trailingSlice","starReplacement","substituted","jsExtension","tryGetModuleNameFromExports","subPackageName","ancestorDirectoryWithPackageJson","cachedPackageJson","normalizedTargetPaths","getPathsRelativeToRootDirs","normalizedSourcePaths","relativePaths","sourcePath","targetPath","shortest","packageNameOnly","overrideMode","isPackageRootPath","moduleFileToTry","packageRootPath","blockedByExports","verbatimFromExports","tryDirectoryWithPackageJson","globalTypingsCacheLocation","pathToTopLevelNodeModules","nodeModulesDirectoryName","maybeBlockedByTypesVersions","nodeModulesDirectoryName2","packageName2","fromExports","mainFileRelative","mainExportFile","canonicalModuleFileToTry","tryGetAnyFileFromPath","noExtension","jsPriority","tsPriority","withoutIndex","extensionlessPriority","ambientModuleSymbolRegex","anon","nextSymbolId","nextNodeId","nextMergeId","nextFlowId","TypeFacts3","typeofNEFacts","CheckMode3","SignatureCheckMode3","isNotOverloadAndNotAccessor","isNotOverload","isNotAccessor","intrinsicTypeKinds","SymbolLinks","NodeLinks","preserveConstEnums","moduleState","deferredDiagnosticsCallbacks","addLazyDiagnostic","cancellationToken","Type29","Signature13","typeCount","totalInstantiationCount","instantiationCount","instantiationDepth","inlineLevel","varianceTypeParameter","isInferencePartiallyBlocked","arrayVariances","legacyDecorators","useDefineForClassFields","allowSyntheticDefaultImports","strictNullChecks","strictFunctionTypes","strictBindCallApply","strictPropertyInitialization","strictBuiltinIteratorReturn","noImplicitAny","noImplicitThis","useUnknownInCatchVariables","exactOptionalPropertyTypes","noUncheckedSideEffectImports","checkBinaryExpression","createCheckBinaryExpression","emitResolver","createResolver","nodeBuilder","createNodeBuilder","syntacticNodeBuilder","undefinedSymbol","globalThisSymbol","canCollectSymbolAliasAccessabilityData","apparentArgumentCount","lastGetCombinedNodeFlagsNode","lastGetCombinedNodeFlagsResult","lastGetCombinedModifierFlagsNode","lastGetCombinedModifierFlagsResult","resolveName","getSymbol2","checkAndReportErrorForInvalidInitializer","resolveNameForSymbolSuggestion","getSuggestionForSymbolNameLookup","assignableRelation","identityRelation","subtypeRelation","strictSubtypeRelation","unknownSymbol","getMergedSymbol","symbolIsValue","getRecursionIdentity","getUnmatchedProperties","locationIn","getTypeOfSymbolAtLocation","errorType","parameterIn","getSymbolsOfParameterPropertyDeclaration","getDeclaredTypeOfSymbol","getPropertiesOfType","getPropertyOfType","leftType","lexicallyScopedIdentifier","lookupSymbolForPrivateIdentifierDeclaration","getPrivateIdentifierPropertyOfType","getTypeOfPropertyOfType","getIndexInfoOfType","stringType","numberType","getIndexInfosOfType","getIndexInfosOfIndexSymbol","getSignaturesOfType","getIndexTypeOfType","getIndexType","getBaseTypeOfLiteralType","getWidenedType","getWidenedLiteralType","fillMissingTypeArguments","nodeIn","getTypeFromTypeNode","getTypeAtPosition","getParameterIdentifierInfoAtPosition","getPromisedTypeOfPromise","getAwaitedType","isNullableType","getNullableType","getNonNullableType","removeOptionalTypeMarker","getSymbolsInScope","getSymbolAtLocation","getIndexInfosAtLocation","getShorthandAssignmentValueSymbol","getExportSpecifierLocalTargetSymbol","getTypeOfNode","getTypeOfAssignmentPattern","getPropertySymbolOfDestructuringAssignment","enclosingDeclaration","signatureToString","typeToString","symbolToString","typePredicateToString","maximumLength","verbosityLevel","getAugmentedPropertiesOfType","getRootSymbols","getSymbolOfExpando","runWithInferenceBlockedFromSourceNode","getContextualType2","getContextualTypeForObjectLiteralElement","argIndex","getContextualTypeForArgumentAtIndex","getContextualTypeForJsxAttribute","isContextSensitive","getTypeOfPropertyOfContextualType","getFullyQualifiedName","candidatesOutArray","argumentCount","getResolvedSignatureWorker","getCandidateSignaturesForStringLiteralCompletions","runWithoutResolvedSignatureCaching","getExpandedParameters","hasEffectiveRestParameter","containsArgumentsReference","canHaveConstantValue","getConstantValue2","isValidPropertyAccess","isValidPropertyAccessForCompletions","declarationIn","getSignatureFromDeclaration","isImplementationOfOverload","getImmediateAliasedSymbol","resolveAlias","getEmitResolver","requiresAddingImplicitUndefined","getExportsOfModuleAsArray","getExportsAndPropertiesOfModule","forEachExportAndPropertyOfModule","getAmbientModules","getJsxIntrinsicTagNamesAt","isOptionalParameter","tryGetMemberInModuleExports","tryGetMemberInModuleExportsAndProperties","tryFindAmbientModule","getApparentType","getUnionType","isTypeAssignableTo","createAnonymousType","createSignature","createIndexInfo","anyType","getStringLiteralType","getNumberLiteralType","bigintType","getBigIntLiteralType","unknownType","createPromiseType","createArrayType","getElementTypeOfArrayType","booleanType","fresh","regularFalseType","regularTrueType","voidType","undefinedType","nullType","esSymbolType","neverType","nonPrimitiveType","optionalType","getGlobalPromiseType","getGlobalPromiseLikeType","getGlobalAsyncIterableType","emptyGenericType","createTypeReference","isSymbolAccessible","isTupleType","isArrayLikeType","isEmptyAnonymousObjectType","isTypeInvalidDueToUnionDiscriminant","getExactOptionalProperties","getAllPossiblePropertiesOfTypes","getSuggestedSymbolForNonexistentProperty","getSuggestedSymbolForNonexistentJSXAttribute","getSuggestedSymbolForNonexistentSymbol","getSuggestedSymbolForNonexistentModule","getSuggestedSymbolForNonexistentClassMember","getBaseConstraintOfType","getDefaultFromTypeParameter","getJsxNamespace","jsxFragmentFactory","getJsxFragmentFactoryEntity","getAccessibleSymbolChain","moduleSpecifierIn","resolveExternalModuleName","resolveExternalModuleSymbol","includeGlobalThis","tryGetThisTypeAt","getTypeArgumentConstraint","fileIn","ct","diagnostics2","checkSourceFileWithEagerDiagnostics","getNodeLinks","suggestionDiagnostics","checkUnusedIdentifiers","getPotentiallyUnusedIdentifiers","containingNode","unusedIsError","getLocalTypeParametersOfClassOrInterfaceOrTypeAlias","isDeclarationVisible","isPropertyAccessible","getTypeOnlyAliasDeclaration","getMemberOverrideModifierStatus","isTypeParameterPossiblyReferenced","typeHasCallOrConstructSignatures","getSymbolFlags","getTypeArgumentsForResolvedSignature","isLibType","instantiateTypes","editingArgument","candidatesSet","cachedResolvedSignatures","cachedTypes2","nodeLinks2","symbolLinks2","getSymbolLinks","resolvedSignature","containingCall","toMarkSkip","checkMode","getResolvedSignature","tupleTypes","unionTypes","unionOfUnionTypes","intersectionTypes","stringLiteralTypes","numberLiteralTypes","bigIntLiteralTypes","enumLiteralTypes","indexedAccessTypes","templateLiteralTypes","stringMappingTypes","substitutionTypes","subtypeReductionCache","decoratorContextOverrideTypeCache","cachedTypes","evolvingArrayTypes","undefinedProperties","markerTypes","resolvingSymbol","unresolvedSymbols","errorTypes","seenIntrinsicNames","createIntrinsicType","autoType","wildcardType","blockedStringType","unresolvedType","nonInferrableAnyType","intrinsicMarkerType","undefinedWideningType","missingType","undefinedOrMissingType","nullWideningType","silentNeverType","implicitNeverType","unreachableNeverType","stringOrNumberType","stringNumberSymbolType","numberOrBigIntType","templateConstraintType","numericStringType","getTemplateLiteralType","restrictiveMapper","makeFunctionTypeMapper","getRestrictiveTypeParameter","permissiveMapper","uniqueLiteralType","uniqueLiteralMapper","outofbandVarianceMarkerHandler","reportUnreliableMapper","markerSuperType","markerSubType","markerOtherType","reportUnmeasurableMapper","emptyObjectType","emptyJsxObjectType","emptyFreshJsxObjectType","emptyTypeLiteralSymbol","emptyTypeLiteralType","unknownEmptyObjectType","unknownUnionType","anyFunctionType","noConstraintType","circularConstraintType","resolvingDefaultType","createTypeParameter","markerSuperTypeForCheck","markerSubTypeForCheck","noTypePredicate","createTypePredicate","anySignature","unknownSignature","resolvingSignature","silentNeverSignature","enumNumberIndexInfo","anyBaseTypeIndexInfo","iterationTypesCache","noIterationTypes","anyIterationTypes","createIterationTypes","silentNeverIterationTypes","asyncIterationTypesResolver","getGlobalAsyncIteratorType","getGlobalAsyncIterableIteratorType","getGlobalAsyncIteratorObjectType","getGlobalAsyncGeneratorType","getGlobalBuiltinAsyncIteratorTypes","syncIterationTypesResolver","getGlobalIteratorType","getGlobalIterableType","getGlobalIterableIteratorType","getGlobalIteratorObjectType","getGlobalGeneratorType","getGlobalBuiltinIteratorTypes","_errorNode","amalgamatedDuplicates","reverseMappedCache","reverseHomomorphicMappedCache","ambientModulesCache","patternAmbientModules","patternAmbientModuleAugmentations","globalObjectType","globalFunctionType","globalCallableFunctionType","globalNewableFunctionType","globalArrayType","globalReadonlyArrayType","globalStringType","globalNumberType","globalBooleanType","globalRegExpType","globalThisType","anyArrayType","autoArrayType","anyReadonlyArrayType","deferredGlobalNonNullableTypeAlias","deferredGlobalESSymbolConstructorSymbol","deferredGlobalESSymbolConstructorTypeSymbol","deferredGlobalESSymbolType","deferredGlobalTypedPropertyDescriptorType","deferredGlobalPromiseType","deferredGlobalPromiseLikeType","deferredGlobalPromiseConstructorSymbol","deferredGlobalPromiseConstructorLikeType","deferredGlobalIterableType","deferredGlobalIteratorType","deferredGlobalIterableIteratorType","deferredGlobalIteratorObjectType","deferredGlobalGeneratorType","deferredGlobalIteratorYieldResultType","deferredGlobalIteratorReturnResultType","deferredGlobalAsyncIterableType","deferredGlobalAsyncIteratorType","deferredGlobalAsyncIterableIteratorType","deferredGlobalBuiltinIteratorTypes","deferredGlobalBuiltinAsyncIteratorTypes","deferredGlobalAsyncIteratorObjectType","deferredGlobalAsyncGeneratorType","deferredGlobalTemplateStringsArrayType","deferredGlobalImportMetaType","deferredGlobalImportMetaExpressionType","deferredGlobalImportCallOptionsType","deferredGlobalImportAttributesType","deferredGlobalDisposableType","deferredGlobalAsyncDisposableType","deferredGlobalExtractSymbol","deferredGlobalOmitSymbol","deferredGlobalAwaitedSymbol","deferredGlobalBigIntType","deferredGlobalNaNSymbol","deferredGlobalRecordSymbol","deferredGlobalClassDecoratorContextType","deferredGlobalClassMethodDecoratorContextType","deferredGlobalClassGetterDecoratorContextType","deferredGlobalClassSetterDecoratorContextType","deferredGlobalClassAccessorDecoratorContextType","deferredGlobalClassAccessorDecoratorTargetType","deferredGlobalClassAccessorDecoratorResultType","deferredGlobalClassFieldDecoratorContextType","allPotentiallyUnusedIdentifiers","flowLoopStart","flowLoopCount","sharedFlowCount","flowAnalysisDisabled","flowInvocationCount","lastFlowNode","lastFlowNodeReachable","flowTypeCache","contextualTypeNodes","contextualTypes","contextualIsCache","contextualTypeCount","contextualBindingPatterns","inferenceContextNodes","inferenceContexts","inferenceContextCount","activeTypeMappers","activeTypeMappersCaches","activeTypeMappersCount","emptyStringType","zeroType","zeroBigIntType","resolutionTargets","resolutionResults","resolutionPropertyNames","resolutionStart","inVarianceComputation","suggestionCount","maximumSuggestionCount","mergedSymbols","symbolLinks","nodeLinks","flowLoopCaches","flowLoopNodes","flowLoopKeys","flowLoopTypes","sharedFlowNodes","sharedFlowTypes","flowNodeReachable","flowNodePostSuper","potentialThisCollisions","potentialNewTargetCollisions","potentialWeakMapSetCollisions","potentialReflectCollisions","potentialUnusedRenamedBindingElementsInTypes","awaitedTypeStack","reverseMappedSourceStack","reverseMappedTargetStack","reverseExpandingFlags","typeofType","createTypeofType","_jsxNamespace","_jsxFactoryEntity","comparableRelation","enumRelation","suggestedExtensions","initializeTypeChecker","isDefinitelyReferenceToGlobalSymbolObject","getGlobalSymbol","getCachedType","setCachedType","jsxFragmentPragma","chosenPragma","markAsSynthetic","localJsxNamespace","getLocalJsxNamespace","jsxPragma","cancellationToken2","skipDiagnostics","lookupOrIssueError","errorSkippedOn","createError","getVerbatimModuleSyntaxErrorMessage","addErrorOrSuggestion","errorOrSuggestion","errorAndMaybeSuggestAwait","maybeMissingAwait","addDeprecatedSuggestionWorker","deprecatedTag","isDeprecatedSymbol","getParentOfSymbol","isDeprecatedDeclaration2","getCombinedNodeFlagsCached","addDeprecatedSuggestion","deprecatedEntity","addDeprecatedSuggestionWithSignature","signatureString","createParameter2","createProperty","getExcludedSymbolFlags","recordMergedSymbol","cloneSymbol","mergeSymbol","unidirectional","resolveSymbol","reportMergeSymbolError","mergeSymbolTable","target2","source2","isEitherEnum","isEitherBlockScoped","sourceSymbolFile","targetSymbolFile","isSourcePlainJs","isTargetPlainJs","symbolName2","firstFile","secondFile","filesDuplicates","conflictingSymbolInfo","addDuplicateLocations","addDuplicateDeclarationErrorsForSymbols","locs","addDuplicateDeclarationError","relatedNodes","relatedNode","adjustedNode","leadingMessage","followOnMessage","combineSymbolTables","mergedParent","sourceSymbol","targetSymbol","merged","mergeModuleAugmentation","moduleAugmentation","moduleNotFoundError","mainModule","resolveExternalModuleNameWorker","resolvedExports","getResolvedMembersOrExportsOfSymbol","addUndefinedToGlobalsOrErrorOnRedeclaration","parameterSymbol","propertySymbol","getMembersOfSymbol","isBlockScopedNameDeclaredBeforeUse","useFile","declContainer","isUsedInFunctionOrInstanceProperty","isInAmbientOrTypeNode","errorBindingElement","isImmediatelyUsedInInitializerOfBlockScopedVariable","isPropertyImmediatelyReferencedWithinDeclaration","declaration2","usage2","isSameScopeDescendentOf","isUsedInFunctionOrInstancePropertyWorker","propertyDeclaration","staticBlocks","isPropertyInitializedInStaticBlocks","stopAtAnyPropertyDeclaration","errorLocation","checkAndReportErrorForMissingPrefix","diagnosticName","checkAndReportErrorForExtendingInterface","checkAndReportErrorForUsingTypeAsNamespace","checkAndReportErrorForExportingPrimitiveType","checkAndReportErrorForUsingNamespaceAsTypeOrValue","checkAndReportErrorForUsingTypeAsValue","checkAndReportErrorForUsingValueAsType","suggestedLib","getSuggestedLibForNonExistentName","suggestionName","isUncheckedJS","isUncheckedJSSuggestion","isInExternalModule","exportOrLocalSymbol","getExportSymbolOfValueSymbolIfExported","checkResolvedBlockScopedVariable","getLateBoundSymbol","typeOnlyDeclaration","unescapedName","addTypeOnlyDeclarationRelatedInfo","nonValueSymbol","importDecl","isTypeReferenceIdentifier","classSymbol","constructorType","instanceType","getEntityNameForExtendingInterface","resolveEntityName","namespaceMeaning","isPrimitiveTypeName","heritageKind","allFlags","rawName","isES2015OrLaterConstructorName","maybeMappedType","allTypesAssignableToKind","stopAt","getAnyImportSyntax","getDeclarationOfAliasSymbol","isAliasSymbolDeclaration","isAliasableOrJsExpression","isJSConstructor","getTargetOfImportEqualsDeclaration","dontResolveAlias","commonJSPropertyAccess","getCommonJSPropertyAccess","resolveExternalModuleTypeByLiteral","immediate","getExportOfModule","markSymbolOfAliasDeclarationIfTypeOnly","getSymbolOfPartOfRightHandSideOfImportEquals","checkAndReportErrorForResolvingImportAliasToTypeOnlySymbol","isExport","relatedMessage","resolveExportByName","exportValue","isSyntacticDefault","getEmitSyntaxForModuleSpecifierExpression","isESMFormatImportImportingCommonjsFormatFile","usageMode","isOnlyImportableAsDefault","targetFile","canHaveSyntheticDefault","defaultExportSymbol","hasExportAssignmentSymbol","getTargetOfImportClause","getTargetofModuleDefault","getModuleSpecifierForImportOrExport","exportDefaultSymbol","exportModuleDotExportsSymbol","hasDefaultOnly","hasSyntheticDefault","compilerOptionName","reportNonDefaultExport","errorNoModuleMemberSymbol","exportStar","defaultExport","getTargetOfNamespaceImport","resolveESModuleSymbol","getTargetOfNamespaceExport","combineValueAndTypeSymbols","valueSymbol","typeSymbol","nameText","getExportsOfSymbol","exportStarDeclaration","getPropertyOfVariable","typeAnnotation","getExternalModuleMember","symbolFromVariable","symbolFromModule","reportNonExportedMember","exportedEqualsSymbol","getSymbolIfSameReference","reportInvalidImportEqualsExportMember","exportedSymbol","symbolsToArray","getTargetOfImportSpecifier","getTargetOfNamespaceExportDeclaration","getTargetOfExportSpecifier","getTargetOfExportAssignment","getTargetOfAliasLikeExpression","checkExpressionCached","aliasLike","getTargetOfAccessExpression","dontRecursivelyResolve","getTargetOfAliasDeclaration","isNonLocalAlias","tryResolveAlias","excludeTypeOnlyMeanings","excludeLocalMeanings","typeOnlyDeclarationIsExportStar","typeOnlyResolution","typeOnlyExportStarTargets","getExportsOfModule","seenSymbols","aliasDeclaration","immediateTarget","finalTarget","overwriteEmpty","exportStarName","links2","markSymbolOfAliasDeclarationIfTypeOnlyWorker","aliasDeclarationLinks","typeOnly","containingLocation","getContainingQualifiedNameNode","tryGetQualifiedNameAsValue","ignoreErrors","getCannotFindNameDiagnosticForName","symbolFromJSPrototype","resolveEntityNameFromAssignmentDeclaration","isCommonJsRequire","moduleSym","resolvedModuleSymbol","namespaceName","suggestionForNonexistentModule","containingQualifiedName","exportedTypeSymbol","isJSDocTypeReference","secondaryLocation","getAssignmentDeclarationLocation","host2","getDeclarationOfJSPrototypeContainer","getExpandoSymbol","initSymbol","getSymbolOfNode","mergeJSSymbols","moduleReferenceExpression","errorMessage","isForAugmentation","resolveExternalModule","ambientModule","contextSpecifier","moduleResolutionKind","resolutionDiagnostic","importOrExport","getSuggestedImportSource","tsExtension","shouldRewrite","redirect","ownRootDir","otherRootDir","rootDirPath","outDirPath","errorOnImplicitAnyModule","isSyncImport","overrideHost","diagnosticDetails","augmentation","isExtensionlessRelativePathImport","resolutionIsNode16OrNext","absoluteRef","suggestedExt","actualExt","_importExt","errorInfo","importSourceWithoutExtension","preferTs","exportEquals","exported","getCommonJsExportEquals","referencingLocation","suppressInteropError","referenceParent","namespaceImport","defaultOnlyType","getTypeWithSyntheticDefaultOnly","cloneTypeAsModuleType","hasSignatures","isEsmCjsRef","moduleType","getTypeWithSyntheticDefaultImportType","createDefaultPropertyWrapperForModule","getSignaturesOfStructuredType","resolvedModuleType","shouldTreatPropertiesOfExternalModuleAsExports","isReservedMemberName","forEachPropertyOfType","escapedName","resolvedExternalModuleType","typeOnlyExportStarMap","getExportsOfModuleWorker","extendExportSymbols","exportNode","collisionTracker","nonTypeOnlyNames","exportStars","nestedSymbols","exportedSymbols","exportsWithDuplicate","getFunctionExpressionParentSymbolOrSymbol","getAlternativeContainingModules","importRef","getAliasForSymbolInContainer","otherFiles","getContainersOfSymbol","getWithAlternativeContainers","hasNonGlobalAugmentationExternalModuleSymbol","containers","bestContainers","alternativeContainers","bestMatch","additionalContainers","fileSymbolIfFileSymbolExportEqualsContainer","reexportContainers","objectLiteralContainer","getVariableDeclarationOfObjectLiteral","getQualifiedLeftMeaning","firstVariableMatch","forEachSymbolTableInScope","getFileSymbolIfFileSymbolExportEqualsContainer","firstDecl","fileSymbol","getExternalModuleContainer","quick","includeTypeOnlyMembers","createType","createTypeWithSymbol","createOriginType","intrinsicName","debugIntrinsicName","checkIntrinsicName","debug","createObjectType","getNamedMembers","isNamedMember","getNamedOrIndexSignatureMembers","getIndexSymbolFromSymbolTable","setStructuredTypeMembers","callSignatures","constructSignatures","indexInfos","getResolvedTypeWithoutAbstractConstructSignatures","typeCopy","memberSymbol","rightMeaning","useOnlyExternalAliasing","visitedSymbolTablesMap","isPropertyOrMethodDeclarationSymbol","firstRelevantLocation","__","___","visitedSymbolTables","getAccessibleSymbolChainFromSymbolTable","ignoreQualification","isLocalNameLookup","trySymbolTable","canQualifySymbol","symbolFromSymbolTable","meaning2","needsQualification","isAccessible","resolvedAliasSymbol","resolvedImportedSymbol","getCandidateListForSymbol","candidateTable","accessibleSymbolsFromExports","qualify","shouldResolveAlias","isTypeSymbolAccessible","isSymbolAccessibleWorker","isValueSymbolAccessible","isSymbolAccessibleByFlags","isAnySymbolAccessible","initialSymbol","shouldComputeAliasesToMakeVisible","allowModules","hadAccessibleChain","earlyModuleBail","accessibleSymbolChain","hasAccessibleDeclarations","hasVisibleDeclarations","parentResult","symbolExternalModule","enclosingExternalModule","hasExternalModuleSymbol","shouldComputeAliasToMakeVisible","aliasesToMakeVisible","getIsDeclarationVisible","anyImportSyntax","addVisibleAlias","rootDeclaration","variableStatement","aliasingStatement","getMeaningOfEntityNameReference","isEntityNameVisible","firstIdentifier","nodeFlags","internalNodeFlags","builder","symbolToStringWorker","writer2","printer","signatureToStringWorker","sigOutput","toNodeBuilderFlags","noTruncation","typeNode","maxLength2","getTypeNamesForErrorDisplay","leftStr","symbolValueDeclarationIsContextSensitive","rightStr","getTypeNameForErrorDisplay","isClassInstanceSide","getDeclaredTypeOfClassOrInterface","getTypeFromTypeNodeWithoutContext","isExpandoFunctionDeclaration","hasLateBindableName","checkComputedPropertyName","createRecoveryBoundary","getAllAccessorDeclarationsForDeclaration","containsNonMissingUndefinedType","addUndefined","serializeExistingTypeNode","syntacticContext","signatureDeclaration","returnType","instantiateType","serializeInferredReturnTypeForSignature","getRegularTypeOfExpression","typeToTypeNodeHelper","getWriteTypeOfSymbol","getOptionalType","serializeInferredTypeForDeclaration","parameterToParameterDeclarationName","symbolToExpression","serializeTypeName","jsDocTypeLiteral","jsDocProperty","typeViaParent","getTypeFromTypeNode2","enterNewScope","getInferTypeParameters","getDeclaredTypeOfTypeParameter","setTextRange2","trackExistingEntityName","accessExpression","trackComputedName","lit","originalName","nodeSymbol","lookupSymbolChain","getSpecifierForModuleSymbol","getExternalModuleFileFromDeclaration","canReuseTypeNode","requiresAddingUndefined","getTypeOfAccessors","annotationType","isErrorType","addOptionality","typeNodeIsEquivalentToType","existingTypeNodeIsNotReferenceOrIsReferenceWithCompatibleTypeArgumentCount","tracker","withContext2","typePredicateToTypePredicateNodeHelper","indexInfo","indexInfoToIndexSignatureDeclarationHelper","signatureToSignatureDeclarationHelper","symbolToName","typeParametersToTypeParameterDeclarations","symbolToParameterDeclaration","typeParameterToDeclaration","symbolTableToDeclarationStatements","symbolToNode","symbolToDeclarations","noMappedTypes","mappedType","symbolToDeclarationsWorker","simplifyClassDeclaration","simplifyModifiers","simplifyInterfaceDeclaration","classDecl","classDeclarations","originalClassDecl","newDecl","isDeclKind","declWithModifiers","interfaceDecl","moduleResolverHost","createBasicNodeBuilderModuleSpecifierResolutionHost","maxTruncationLength","SymbolTrackerImpl","resultingNode","addSymbolTypeToContext","oldType","restore","saveRestoreFlags","checkTruncationLengthIfExpanding","checkTruncationLength","canPossiblyExpandType","shouldExpandType","isAlias","restoreFlags","typeToTypeNodeWorker","inTypeAlias","expandingEnum","getReducedType","symbolToEntityNameNode","mapToTypeNodes","parentName","symbolToTypeNode","appendReferenceToType","typeArgumentNodes","createAnonymousTypeNode","visitAndTransformType","typeReferenceToTypeNode","constraintNode","inferredConstraint","getInferredTypeParameterConstraint","isTypeIdenticalTo","typeParameterToDeclarationWithConstraint","name2","typeParameterToName","formatUnionTypes","typeNodes","indexedType","indexTypeNode","texts","templateHead","objectTypeNode","type2","conditionalTypeToTypeNode","noInferSymbol","isNoInferType","getGlobalTypeSymbol","checkTypeNode","newParam","newTypeVariable","newMapper","prependTypeMapping","saveInferTypeParameters2","extendsTypeNode2","trueTypeNode2","typeToTypeNodeOrCircularityElision","falseTypeNode2","saveInferTypeParameters","extendsTypeNode","trueTypeNode","getTrueTypeFromConditionalType","falseTypeNode","getFalseTypeFromConditionalType","getTypeId","createElidedInformationPlaceholder","type3","isMappedTypeHomomorphic","getHomomorphicTypeVariable","isHomomorphicMappedTypeWithNonHomomorphicInstantiation","createMappedTypeNodeFromType","appropriateConstraintTypeNode","templateType","getTemplateTypeFromMappedType","getTypeParameterFromMappedType","needsModifierPreservingWrapper","isMappedTypeWithKeyofConstraintDeclaration","getModifiersTypeFromMappedType","getConstraintTypeFromMappedType","newConstraintParam","makeArrayTypeMapper","typeParameterNode","cleanup","nameTypeNode","getNameTypeFromMappedType","templateTypeNode","removeMissingType","getMappedTypeModifiers","mappedTypeNode","originalConstraint","forceClassExpansion","forceExpansion","typeId","createTypeNodeFromObjectType","isInstanceType","getBaseTypeVariableOfClass","shouldWriteTypeOfFunctionSymbol","getTypeAliasForTypeLiteral","isStaticMethodSymbol","isLateBindableIndexSignature","isNonLocalFunctionSymbol","transform2","isConstructorObject","cachedResult","deepCloneOrReuseNode","prevTrackedSymbols","startLength","addedLength","deepCloneOrReuseNodes","isGenericMappedType","abstractSignatures","getOrCreateTypeFromSignature","getIntersectionType","createTypeNodesFromResolvedType","typeLiteralNode","typeArgumentNode","arrayType","arity","getTypeReferenceArity","tupleConstituentNodes","labeledElementDeclarations","labeledElementDeclaration","getTupleElementLabel","tupleTypeNode","outerTypeParameters","resultType","getParentSymbolOfTypeParameter","typeArgumentSlice","restoreFlags2","typeParameterCount","isReferenceToType2","typeArgument","finalRef","ids","getAccessStack","indexInfoToObjectComputedNamesOrSignatureDeclaration","context2","newComponents","resolvedType","typeElements","isExpanding","typeElement","addPropertyToElementList","shouldUsePlaceholderForProperty","isDeeplyNestedReverseMappedTypeProperty","propertyIsReverseMapped","propertyType","getNonMissingTypeOfSymbol","saveEnclosingDeclaration","isLateBoundName","getPropertyNameNodeForSymbol","writeType","symbolMapper","propDeclaration","getterDeclaration","getterSignature","setCommentRange2","instantiateSignature","setterDeclaration","setterSignature","fakeGetterSignature","setterParam","fakeSetterSignature","optionalToken","getPropertiesOfObjectType","isReadonlySymbol","signatures","filterType","preserveCommentsOn","propertyTypeNode","serializeTypeForDeclaration","propertySignature","jsdocPropertyTag","commentText","isBareList","seenNames","typeNode2","types2","typesAreSameReference","resultIndex","indexerTypeNode","indexingParameter","expandedParams","tryGetThisParameterDeclaration","returnTypeNode","serializeReturnTypeForSignature","trackedSymbols","unreportedErrors","hadError","oldTracker","oldTrackedSymbols","oldEncounteredError","markError","startRecoveryScope","finalizeBoundary","unreportedError","trackedSymbolsTop","unreportedErrorsTop","originalParameters","cleanupContext","cloneNodeBuilderContext","cleanupParams","cleanupTypeParams","oldEnclosingDecl","oldMapper","pushFakeScope2","addAll","existingFakeScope","locals","newLocals","oldLocals","oldSymbol","fakeScope","pIndex","originalParam","bindPattern","bindElement","typeParam","typeParamName","thisTag","getTypeParameterModifiers","defaultParameter","defaultParameterNode","typeToTypeNodeHelperWithPossibleReusableTypeNode","getConstraintDeclaration","getEffectiveParameterDeclaration","parameterDeclaration","preserveModifierFlags","parameterType","parameterTypeNode","parameterNode","cloneBindingName","elideInitializerAndSetEmitFlags","isLateBindableName","fallback","yieldModuleSymbol","lookupSymbolChainWorker","getSymbolChain","endOfChain","parentSpecifiers","symbol3","sortByBestName","sortedParents","parentChain","specifierA","specifierB","isBRelative","typeParameterNodes","getTargetSymbol","lookupTypeParameterNodes","nextSymbol","params","getTypeParametersOfClassOrInterface","getMappedType","getTopmostIndexedAccessType","top","overrideImportMode","equivalentFileSymbol","originalModuleSpecifier","contextFile","cacheKey","isBundle2","specifierCompilerOptions","overrideTypeArguments","nonRootParts","createAccessFromSymbolChain","oldSpecifier","swappedMode","lastId","splitNode","lastTypeArgs","stopper","getNameOfSymbolAsWritten","ex","LHS","typeParameterShadowsOtherTypeParameterInScope","rawtext","expectsIdentifier","createEntityNameFromSymbolChain","createExpressionFromSymbolChain","literalText","isStringNamed","checkExpression","isSingleQuotedStringNamed","hashPrivateName","getClonedHashPrivateName","rawName2","fromNameType","getPropertyNameNodeForSymbolFromNameType","oldMustCreateTypeParameterSymbolList","oldMustCreateTypeParametersNamesLookups","oldTypeParameterNames","oldTypeParameterNamesByText","oldTypeParameterNamesByTextNextNameCount","oldTypeParameterSymbolList","getDeclarationWithTypeAnnotation","getNonlocalEffectiveTypeAnnotationNode","getTypeFromTypeReference","existingTarget","getMinTypeArgumentCount","getEnclosingDeclarationIgnoringFakeScope","addUndefinedForParameter","annotatedDeclaration","typeFromTypeNode","hasEffectiveQuestionToken","getTypeWithFacts","suppressAny","isTypeAny","declarationSymbol","oldSuppressReportInferenceFallback","instantiateTypePredicate","introducesError","leftmost","attachSymbolToLeftmostIdentifier","symAtLocation","resolvedSymbol","getTypeFromImportTypeNode","declaredType","getIntendedTypeFromJSDocTypeReference","effectiveEnclosingContext","someType","serializePropertySymbolForClass","makeSerializePropertySymbol","serializePropertySymbolForInterfaceWorker","mods","question","deferredPrivatesStack","oldcontext","includePrivateSymbol","getInternalSymbolName","addingDeclare","visitSymbolTable","mergeRedundantStatements","isIdentifierAndNotUndefined","getNamesOfDeclaration","flattenExportAssignedNamespace","nsIndex","excessExports","mixinExportFlag","addResult","mergeExportDeclarations","reexports","groups","inlineExportModifiers","exportDecl","replacements","associatedIndices","index2","addExportModifier","removeExportModifier","symbolTable2","suppressNewPrivateContext","propertyAsAlias","createTruncationStatement","serializeSymbol","isPrivate","visitedSym","scopeCleanup","serializeSymbolWorker","escapedSymbolName","isDefault","needsPostExportDefault","needsExportDeclaration","isConstMergedWithNS","isConstMergedWithNSPrintableAsSignatureMerge","isTypeRepresentableAsFunctionNamespaceMerge","serializeAsFunctionNamespaceMerge","serializeTypeAlias","serializeMaybeAliasAssignment","localName","isConstantVariable","getUnusedName","textRange","propertyAccessRequire","alias","serializeEnum","serializeAsAlias","serializeAsClass","isTypeOnlyNamespace","serializeModule","serializeInterface","internalSymbolName","isExternalImportAlias","isExportingScope","enclosingDeclaration2","additionalModifierFlags","oldModifierFlags","newModifierFlags","modifiersLength","aliasType","getDeclaredTypeOfTypeAlias","typeParams","typeParamDecls","jsdocAliasDecl","interfaceType","localParams","baseTypes","serializePropertySymbolsForClassOrInterface","serializeSignatures","indexSignatures","serializeIndexSignatures","trySerializeAsTypeReference","isClass","isStatic2","placeholder","createTruncationProperty","serializePropertySymbolForInterface","dotDotDotText","getNamespaceMembersForSerialization","membersSet","isNamespaceMember","expanding","locationMap","realMembers","mergedMembers","oldFlags","localText","serializeAsNamespaceDeclaration","nsBody","localName2","aliasDecl","targetName","memberProps","initializedValue","initializer2","memberName2","member2","memberDecl","initializerLength","isConstEnumSymbol","getSignatureTextRangeLocation","localProps","fakespace","oldResults","oldAddingDeclare","subcontext","oldContext","defaultReplaced","exportModifierStripped","sanitizeJSDocImplements","oldEnclosing","originalDecl","classType","getTypeWithThisArgument","originalImplements","implementsExpressions","getImplementsTypes","serializeImplementedType","staticType","staticBaseType","getBaseConstructorTypeOfClass","serializeBaseType","symbolProps","getNonInheritedProperties","publicSymbolProps","isHashPrivate","hasPrivateIdentifier","privateProperties","publicProperties","staticMembers","isNonConstructableClassLikeInJsFile","constructors","getSomeTargetNameFromDeclarations","verbatimTargetName","specifier2","propertyNameText","serializeExportSpecifier","isLocalImport","generatedSpecifier","isExportAssignmentCompatibleSymbolName","getFirstNonModuleExportsIdentifier","referenced","prevDisableTrackSymbol","varName","typeToSerialize","hostSymbol","ctxSrc","createProperty2","methodKind","useAccessors","omitType","firstPropertyLikeDecl","setter","propDecl","paramSymbol","modifierFlags2","results2","outputKind","baseSigs","failed2","compareSignaturesIdentical","compareTypesIdentical","privateProtected","baseInfo","rootName","tempName","typeArgs","getNameCandidateWorker","nameCandidate","typePredicateToStringWorker","nodeBuilderFlags","getBaseTypeOfEnumLikeType","getRegularTypeOfLiteralType","visibilityToString","isTopLevelInExternalModuleAugmentation","isDefaultBindingContext","getNameOfSymbolFromNameType","determineIfDeclarationIsVisible","getDeclarationContainer","getCombinedModifierFlagsCached","collectLinkedAliases","setVisibility","buildVisibleNodeList","resultNode","internalModuleReference","importSymbol","pushTypeResolution","resolutionCycleStartIndex","findResolutionCycleStartIndex","resolutionTargetHasProperty","popTypeResolution","getTypeOfPrototypeProperty","prototype","getTypeOfPropertyOrIndexSignatureOfType","propType","getApplicableIndexInfoForName","getTypeForBindingElementParent","getTypeForVariableLikeDeclaration","getRestType","mapType","omitKeyType","getLiteralTypeFromPropertyName","spreadableProperties","unspreadableToRestKeys","literalTypeFromProperty","getLiteralTypeFromProperty","isSpreadableProperty","isGenericObjectType","isGenericIndexType","omitTypeAlias","getGlobalOmitSymbol","getTypeAliasInstantiation","getSpreadSymbol","isGenericTypeWithUndefinedConstraint","maybeTypeOfKind","getNonUndefinedType","typeOrConstraint","getBaseConstraintOrType","getFlowTypeOfDestructuring","getSyntheticElementAccess","getFlowTypeOfReference","getParentElementAccess","getDestructuringPropertyName","lhsExpr","getLiteralPropertyNameText","getTypeForBindingElement","parentType","getBindingElementTypeFromParentType","noTupleBoundsCheck","hasTypeFacts","getTypeOfInitializer","accessFlags","hasDefaultValue","isValidSpreadType","literalMembers","getIndexedAccessType","checkIteratedTypeOrElementType","baseConstraint","everyType","sliceTupleType","getIndexedAccessTypeOrUndefined","checkDeclarationInitializer","widenTypeInferredFromInitializer","getTypeForDeclarationFromJSDocComment","jsdocType","isNullOrUndefined3","isEmptyArrayLiteral2","isProperty","isOptional","includeOptionality","getNonNullableTypeIfNeeded","getExtractStringType","forOfStatement","checkRightHandSideOfForOf","tryGetTypeFromEffectiveTypeNode","hasBindableName","getter","getAccessorThisParameter","parameterTypeOfTypeTag","getParameterTypeOfTypeTag","getContextualThisParameterType","getContextuallyTypedParameterType","containerObjectType","getJSContainerObjectType","getFlowTypeInStaticBlocks","getTypeOfPropertyInBaseClass","getFlowTypeInConstructor","getTypeFromBindingPattern","isConstructorDeclaredProperty","getDeclaringConstructor","isPossiblyAliasedThisProperty","getAnnotatedTypeForAssignmentDeclaration","isAutoTypedProperty","getFlowTypeFromCommonJSExport","accessName","areAllModuleExports","staticBlock","flowType","getFlowTypeOfProperty","convertAutoToAny","initialType","getWidenedTypeForAssignmentDeclaration","definedInConstructor","definedInMethod","isDeclarationInConstructor","getInitializerTypeFromAssignmentDeclaration","constructorTypes","getConstructorDefinedThisAssignmentTypes","sourceTypes","widened","reportImplicitAny","errorNextVariableOrPropertyDeclarationMustHaveSameType","possiblyAnnotatedSymbol","annotationSymbol","objectLitType","valueType","getFunc","getSig","getSingleCallSignature","setFunc","setSig","getTypeOfFirstParameterOfSignature","containsSameNamedThisProperty","isDirectExport","exportedType","initialSize","exportedMember","exportedMemberName","union","getPropagatingFlagsOfTypes","isEmptyArrayLiteralType","thisProperty","isMatchingReference","getTypeFromBindingElement","includePatternInType","contextualType","getWidenedLiteralTypeForInitializer","declarationBelongsToPrivateAmbientMember","getTypeFromObjectBindingPattern","stringIndexInfo","exprType","getTypeFromArrayBindingPattern","restElement","createIterableType","elementTypes","minLength","elementFlags","createTupleType","cloneTypeReference","getWidenedTypeForVariableLikeDeclaration","widenTypeForVariableLikeDeclaration","getTypeFromImportAttributes","attr","checkImportAttribute","isGlobalSymbolConstructor","globalSymbol","getGlobalESSymbolConstructorTypeSymbol","getESSymbolLikeTypeForNode","reportErrorsFromWidening","memberDeclaration","isPrivateWithinAmbient","isParameterOfContextSensitiveSignature","isContextSensitiveFunctionOrObjectLiteralMethod","getTypeOfVariableOrParameterOrProperty","getTypeOfVariableOrParameterOrPropertyWorker","getTypeOfFuncClassEnumModule","reportCircularityError","checkPropertyAssignment","checkJsxAttribute","checkExpressionForMutableLocation","checkObjectLiteralMethod","getTypeOfEnumMember","getAnnotatedAccessorTypeNode","getAnnotatedAccessorType","getAnnotatedAccessorThisParameter","getThisTypeOfDeclaration","getThisTypeOfSignature","getReturnTypeFromBody","getWriteTypeOfAccessors","baseConstructorType","originalLinks","expando","getTypeOfFuncClassEnumModuleWorker","baseTypeVariable","getDeclaredTypeOfEnumMember","getTypeOfAlias","isDuplicatedCommonJSExport","getTypeOfInstantiatedSymbol","getWriteTypeOfInstantiatedSymbol","getTypeOfSymbolWithDeferredType","getWriteTypeOfSymbolWithDeferredType","getTypeOfMappedSymbol","getTypeOfReverseMappedSymbol","isReferenceToSomeType","getTargetType","hasBaseType","checkBase","appendTypeParameters","getOuterTypeParameters","includeThisTypes","assignmentKind","outerAndOwnTypeParameters","thisType","getOuterTypeParametersOfClassOrInterface","isMixinConstructorType","paramType","getTypeOfParameter","getBaseTypeNodeOfClass","getConstructorsForTypeArguments","typeArgCount","isJavascript","getInstantiatedConstructorsForTypeArguments","getSignatureInstantiation","extended","baseTypeNode","getConstraintFromTypeParameter","ctorReturn","ctorSig","resolvedImplementsTypes","implementsTypeNodes","implementsType","reportCircularBaseType","getTupleBaseType","resolveBaseTypesOfClass","resolveBaseTypesOfInterface","originalBaseType","areAllOuterTypeParametersApplied","getTypeFromClassOrInterfaceReference","reducedBaseType","isValidBaseType","elaboration","elaborateNeverIntersection","isThislessInterface","baseTypeNodes","baseSymbol","getAssignedClassSymbol","localTypeParameters","getTypeListId","getBuiltinIteratorReturnType","getDeclaredTypeOfEnum","memberTypeList","getEnumMemberValue","memberType","getFreshTypeOfLiteralType","getEnumLiteralType","createComputedEnumType","enumType","regularType","freshType","getDeclaredTypeOfAlias","tryGetDeclaredTypeOfSymbol","isThislessType","isThislessTypeParameter","isThislessVariableLikeDeclaration","isThislessFunctionLikeDeclaration","isThisless","createInstantiatedSymbolTable","mappingThisOnly","instantiateSymbol","addInheritedMembers","baseSymbols","isStaticPrivateIdentifierProperty","derived","resolveDeclaredMembers","getSignaturesOfSymbol","getIndexInfosOfSymbol","isLateBindableAST","isTypeUsableAsIndexSignature","hasLateBindableIndexSignature","isNonBindableDynamicName","addDeclarationToLateBoundSymbol","lateBindMember","earlySymbols","lateSymbols","lateSymbol","earlySymbol","lateBindIndexSignature","indexSymbol","early","resolutionKind","assignments","isInstanceMember","thisArgument","needApparentType","resolveObjectTypeMembers","createTypeMapper","instantiateSignatures","instantiateIndexInfos","sourceIndex","getIndexSymbol","instantiatedBaseType","inheritedIndexInfos","findIndexInfo","resolveClassOrInterfaceMembers","resolveTypeReferenceMembers","paddedTypeArguments","resolvedReturnType","resolvedTypePredicate","minArgumentCount","cloneSignature","createUnionSignature","unionSignatures","getOptionalCallSignature","callChainFlags","createOptionalCallSignature","skipUnionExpanding","restIndex","restSymbol","restType","expandSignatureParametersWithTupleMembers","associatedNames","getUniqAssociatedNamesFromTupleType","restParams","getParameterNameAtPosition","labeledElement","duplicates","uniqueNames","counters","counter","getDefaultConstructSignatures","baseSignatures","isAbstract","isJavaScript","typeArgumentsFromTypeReferenceNode","baseSig","minTypeArgumentCount","typeParamCount","createSignatureInstantiation","findMatchingSignature","signatureList","partialMatch","ignoreThisTypes","ignoreReturnTypes","compareTypesSubtypeOf","findMatchingSignatures","signatureLists","listIndex","getUnionSignatures","indexWithLengthOverOne","firstThisParameterOfUnionSignatures","createSymbolWithType","masterList","compareTypeParametersIdentical","combineSignaturesOfUnionMembers","sourceParams","targetParams","combineUnionThisParam","combineUnionParameters","leftCount","getParameterCount","rightCount","longest","shorter","longestCount","eitherHasEffectiveRest","needsExtraRestElement","longestParamType","tryGetTypeAtPosition","shorterParamType","unionParamType","isRestParam","getMinArgumentCount","leftName","rightName","restParamSymbol","paramMapper","lastParam","thisParam","minArgCount","combineTypeMappers","getUnionIndexInfos","sourceInfos","resolveUnionTypeMembers","intersectTypes","type1","findMixins","constructorTypeCount","mixinFlags","firstMixinIndex","includeMixinType","mixedTypes","resolveIntersectionTypeMembers","mixinCount","appendSignatures","infos","newInfo","appendIndexInfo","newSignatures","resolveAnonymousTypeMembers","members2","indexInfos2","varsOnly","baseConstructorIndexInfo","replaceIndexedAccess","instantiable","getLimitedConstraint","origin","limitedConstraint","resolveReverseMappedTypeMembers","readonlyMask","optionalMask","inferReverseMappedType","propertyNameType","inferredProp","newTypeParam","newMappedType","getLowerBoundOfKeyType","isGenericTupleType","getKnownKeysOfTupleType","getConditionalTypeInstantiation","getIsLateCheckFlag","forEachMappedTypePropertyKeyTypeAndIndexSignatureKeyType","stringsOnly","resolveMappedTypeMembers","constraintType","shouldLinkPropDeclarations","getMappedTypeNameTypeKind","modifiersType","templateModifiers","addMemberForKeyType","forEachType","keyType","propNameType","appendTypeMapping","addMemberForKeyTypeWorker","existingProp","modifiersProp","isReadonly","stripOptional","lateFlag","isValidIndexKeyType","indexKeyType","modifiersIndexInfo","getApplicableIndexInfo","removeMissingOrUndefinedType","getConstraintDeclarationForMappedType","constraintDeclaration","getTypeFromMappedTypeNode","extendedConstraint","getMappedTypeOptionality","getCombinedMappedTypeOptionality","optionality","isPartialMappedType","makeUnaryTypeMapper","getPropertyOfObjectType","getPropertiesOfUnionOrIntersectionType","combinedProp","getPropertyOfUnionOrIntersectionType","getReducedApparentType","expected","isLiteralType","unionType","createUnionOrIntersectionProperty","getConstraintOfType","getConstraintOfIndexedAccess","getConstraintOfConditionalType","hasNonCircularBaseConstraint","isConstMappedType","typeVariable","isConstTypeVariable","getElementTypes","getConstraintFromIndexedAccess","getSimplifiedTypeOrConstraint","getSimplifiedType","isMappedTypeGenericIndexedAccess","substituteIndexedMappedType","indexConstraint","objectConstraint","getDefaultConstraintOfConditionalType","trueConstraint","getInferredTrueTypeFromConditionalType","falseConstraint","getConstraintOfDistributiveConditionalType","getConstraintFromConditionalType","getEffectiveConstraintOfIntersection","targetIsUnion","constraints","hasDisjointDomainType","getNormalizedType","getResolvedBaseConstraint","stack","getImmediateBaseConstraint","identity2","computeBaseConstraint","getBaseConstraint","different","getStringMappingType","baseObjectType","baseIndexType","baseIndexedAccess","getSubstitutionIntersection","newElements","isArrayOrTupleType","getApparentTypeOfIntersectionType","getResolvedTypeParameterDefault","targetDefault","defaultDeclaration","hasNonCircularTypeParameterDefault","hasTypeParameterDefault","getApparentTypeOfMappedType","getResolvedApparentTypeOfMappedType","isArrayOrTupleOrIntersection","getGlobalBigIntType","getGlobalESSymbolType","containingType","skipObjectFunctionPropertyAugment","propFlags","singleProp","propSet","indexTypes","isUnion","optionalFlag","syntheticFlag","mergedInstantiations","compareProperties2","getRestTypeOfTupleType","isObjectLiteralType2","getCommonDeclarationsOfSymbols","firstType","propTypes","writeTypes","firstValueDeclaration","hasNonUniformValueDeclaration","isPatternLiteralType","getUnionOrIntersectionProperty","commonDeclarations","getReducedUnionType","isNeverReducedProperty","reducedTypes","isDiscriminantWithNeverType","isConflictingPrivateProperty","isGenericReducibleType","isReducibleIntersection","uniqueFilled","neverProp","privateProp","functionType","isArrayOrTupleSymbol","arrayArg","isReadonlyArraySymbol","findApplicableIndexInfo","applicableInfo","applicableInfos","isApplicableIndexType","getIndexInfosOfStructuredType","getApplicableIndexInfos","getTypeParametersFromDeclaration","getSignatureOfTypeTag","withAugmentations","parameterIndex","iife","getEffectiveCallArguments","isOptionalPropertyDeclaration","isJavaScriptImplicitAny","numTypeParameters","numTypeArguments","baseDefaultType","getDefaultTypeArgumentType","hasThisParameter2","isJSConstructSignature","getContextualSignatureForFunctionLikeDeclaration","otherKind","hostDeclaration","maybeAddJsSyntheticRestParameter","lastParamTags","lastParamVariadicType","syntheticArgsSymbol","getRestTypeAtPosition","getReturnTypeOfTypeTag","getReferencedValueSymbol","jsDocSignature","targetTypePredicate","getUnionOrIntersectionTypePredicate","jsdocPredicate","jsdocSignature","createTypePredicateFromTypePredicateNode","getTypePredicateFromBody","getUnionOrIntersectionType","unionReduction","getReturnTypeFromAnnotation","addOptionalTypeMarker","jsDocType","setterType","isResolvingReturnTypeOfSignature","tryGetRestTypeOfSignature","sigRestType","inferredTypeParameters","instantiatedSignature","getSignatureInstantiationWithoutFillingInTypeArguments","returnSignature","getSingleCallOrConstructSignature","newReturnSignature","newReturnType","newInstantiatedSignature","instantiations","instantiation","createSignatureTypeMapper","getTypeParametersForMapper","getErasedSignature","createErasedSignature","createTypeEraser","getCanonicalSignature","createCanonicalSignature","getBaseSignature","typeEraser","baseConstraintMapper","baseConstraints","isConstructor","siblingSymbols","hasComputedNumberProperty","readonlyComputedNumberProperty","hasComputedSymbolProperty","readonlyComputedSymbolProperty","hasComputedStringProperty","readonlyComputedStringProperty","computedPropertySymbols","allPropertySymbols","getObjectLiteralIndexInfo","isGenericType","omitTypeReferences","inferences","childTypeParameter","grandParent","typeReference","getTypeParametersForTypeReferenceOrImport","declaredConstraint","makeDeferredTypeMapper","getEffectiveTypeArgumentAtIndex","checkMappedType2","nodeType","targetConstraint","startId","getAliasId","aliasSymbol","aliasTypeArguments","excludeKinds","tryCreateTypeReference","createDeferredTypeReference","getAliasSymbolForTypeNode","localAliasTypeArguments","getTypeArgumentsForAliasSymbol","getEffectiveTypeArguments2","isJs","missingAugmentsTag","typeStr","isDeferredTypeReferenceNode","checkNoTypeArguments","typeKind","getNoInferType","instantiateTypeWithAlias","getTypeFromTypeAliasReference","errorType2","newAliasSymbol","isLocalTypeAlias","aliasSymbol2","resolveTypeReferenceName","getTypeReferenceName","getSymbolPath","getUnresolvedSymbolForEntityName","getTypeReferenceType","getTypeFromJSDocValueReference","typeType","isImportTypeWithQualifier","isNoInferTargetType","getOrCreateSubstitutionType","getSubstitutionType","isUnaryTupleTypeNode","getImpliedConstraint","checkNode","extendsNode","getActualTypeVariable","getConditionalFlowTypeOfType","covariant","indexed","getTypeFromJSDocNullableTypeNode","getTypeFromTypeQueryNode","checkExpressionWithTypeArguments","getTypeOfGlobalSymbol","getTypeDeclaration","getGlobalValueSymbol","getGlobalTypeAliasSymbol","getGlobalType","getGlobalBuiltinTypes","typeNames","getGlobalTypedPropertyDescriptorType","getGlobalTemplateStringsArrayType","getGlobalImportMetaType","getGlobalImportMetaExpressionType","importMetaType","metaPropertySymbol","getGlobalImportCallOptionsType","getGlobalImportAttributesType","getGlobalESSymbolConstructorSymbol","getGlobalPromiseConstructorSymbol","getGlobalPromiseConstructorLikeType","getGlobalIteratorYieldResultType","getGlobalIteratorReturnResultType","getGlobalDisposableType","getGlobalAsyncDisposableType","getGlobalTypeOrUndefined","getGlobalExtractSymbol","getGlobalAwaitedSymbol","getGlobalClassDecoratorContextType","getGlobalClassMethodDecoratorContextType","getGlobalClassGetterDecoratorContextType","getGlobalClassSetterDecoratorContextType","getGlobalClassAccessorDecoratorContextType","getGlobalClassAccessorDecoratorTargetType","getGlobalClassAccessorDecoratorResultType","getGlobalClassFieldDecoratorContextType","getGlobalNaNSymbol","getGlobalRecordSymbol","createTypeFromGenericGlobalType","genericGlobalType","createTypedPropertyDescriptorType","iteratedType","readonly","getTupleElementFlags","getRestTypeElementFlags","getArrayElementTypeNode","getArrayOrTupleTargetType","isReadonlyTypeOperator","getTupleTargetType","memberIfLabeledElementDeclaration","hasDefaultTypeArguments","isResolvedByTypeAlias","mayResolveTypeAlias","getTypeFromArrayOrTupleTypeNode","createNormalizedTypeReference","namedMemberDeclarations","tupleTarget","createTupleTargetType","combinedFlags","fixedLength","lengthSymbol","literalTypes","createNormalizedTupleType","unionIndex","checkCrossProductUnion","expandedTypes","expandedFlags","expandedDeclarations","lastRequiredIndex","firstRestIndex","lastOptionalOrRestIndex","addElement","endSkipCount","getRestArrayTypeOfTupleType","getStartElementCount","getEndElementCount","getTotalFixedElementCount","getTypeFromOptionalTypeNode","containsType","insertType","addTypeToUnion","typeSet","addTypesToUnion","lastType","isNamedUnionType","removeSubtypes","hasObjectTypes","hasEmptyObject","isEmptyResolvedType","isTypeRelatedTo","keyProperty","isUnitType","keyPropertyType","isTypeDerivedFrom","removeRedundantLiteralTypes","reduceVoidUndefined","isFreshLiteralType","removeStringLiteralsMatchedByTemplateLiterals","templates","isTypeMatchedByTemplateLiteralOrStringMapping","isTypeMatchedByTemplateLiteralType","isMemberOfStringMapping","removeConstrainedTypeVariables","typeVariables","primitives","addNamedUnions","namedUnions","createOriginUnionOrIntersectionType","infix","getUnionTypeWorker","sum","getUnionTypeFromSortedList","typePredicateKindsMatch","compositeType","precomputedObjectFlags","getTypeFromUnionTypeNode","addTypeToIntersection","addTypesToIntersection","removeRedundantSupertypes","eachUnionContains","unionTypes2","u","primitive","extractRedundantTemplateLiterals","literals","isTypeSubtypeOf","removeFromEach","intersectUnionsOfPrimitiveTypes","checked","createIntersectionType","typeMembershipMap","typeVarIndex","primitiveType","isGenericStringLikeType","isTypeStrictSubtypeOf","containedUndefinedType","containsMissingType","constituents","getCrossProductIntersections","getConstituentCountOfTypes","getCrossProductUnionSize","intersections","getConstituentCount","getTypeFromIntersectionTypeNode","emptyIndex","noSupertypeReduction","createIndexType","indexFlags","createOriginIndexType","getIndexTypeForGenericType","getIndexTypeForMappedType","keyTypes","hasDistributiveNameType","isDistributive","includeNonPublic","isKeyTypeIncluded","getLiteralTypeFromProperties","includeOrigin","propertyTypes","indexKeyTypes","shouldDeferIndexType","extractTypeAlias","getIndexTypeOrString","getTypeFromTypeOperatorNode","getTypeFromTemplateTypeNode","newTypes","newTexts","addSpans","texts2","getTemplateStringForType","isPatternLiteralPlaceholderType","applyStringMapping","applyTemplateStringMapping","getStringMappingTypeForGenericType","createStringMappingType","createIndexedAccessType","isJSLiteralType","getPropertyNameFromIndex","accessNode","isUncalledFunctionReference","hasMatchingArgument","getPropertyTypeForIndexType","originalObjectType","fullIndexType","deprecatedNode","markPropertyAsReferenced","isSelfTypeAccess","isAssignmentToReadonlyEntity","isThisPropertyAccessInConstructor","indexNode","getIndexNodeForAccessExpression","errorIfWritingToReadonlyIndex","getTupleElementTypeOutOfStartCount","isTypeAssignableToKind","isConstEnumObjectType","typeHasStaticProperty","getSuggestionForNonexistentProperty","suggestion2","getSuggestionForNonexistentIndexSignature","typeString","seenPlaceholder","getGenericObjectFlags","writing","getSimplifiedIndexedAccessType","getSimplifiedConditionalType","distributeIndexOverObjectType","distributeObjectOverIndexType","distributedOverIndex","distributedOverObject","getElementTypeOfSliceOfTupleType","trueType2","falseType2","getRestrictiveInstantiation","isIntersectionEmpty","templateMapper","instantiatedTemplateType","couldAccessOptionalProperty","indexTypeLessThan","isStringIndexSignatureOnlyType","persistentAccessFlags","apparentObjectType","wasMissingProp","getTypeFromIndexedAccessTypeNode","potentialAlias","isSimpleTupleType","isDeferredType","checkTuples","getConditionalType","forConstraint","extraTypes","tailCount","checkTypeDeferred","combinedMapper","createInferenceContext","inferTypes","inferredExtendsType","getPermissiveInstantiation","newRoot","canTailRecurse","trueMapper","newType","typeParamMapper","newRootMapper","newCheckType","isDistributionDependent","getTypeFromConditionalTypeNode","allOuterTypeParameters","getTypeFromInferTypeNode","getIdentifierChain","targetMeaning","innerModuleSymbol","resolveImportSymbolType","nameStack","currentNamespace","mergedResolvedSymbol","getInstantiationExpressionType","getTypeFromTypeLiteralOrFunctionOrConstructorTypeNode","isNonGenericObjectType","isEmptyObjectTypeOrSpreadsIntoEmptyObject","isEmptyObjectType","tryMergeUnionOfObjectTypeAndEmptyObject","getAnonymousPartialType","isSetonlyAccessor","spread","getSpreadType","lastLeft","skippedPrivateMembers","rightProp","leftProp","rightType","leftTypeWithoutUndefined","rightTypeWithoutUndefined","getIndexInfoWithReadonly","createLiteralType","enumId","getTypeFromLiteralTypeNode","createUniqueESSymbolType","getThisType","getTypeFromThisTypeNode","getTypeFromRestTypeNode","getTypeFromNamedTupleTypeNode","getTypeFromTypeNodeWorker","getTypeFromJSDocVariadicType","instantiateList","instantiator","instantiateIndexInfo","sources","debugInfo","makeCompositeTypeMapper","mapper1","mapper2","createBackreferenceMapper","forwardInferences","createOuterReturnMapper","mergeTypeMappers","cloneInferenceContext","cloneTypeParameter","eraseTypeParameters","freshTypeParameters","couldContainTypeVariables","getObjectTypeInstantiation","templateTagParameters","allDeclarations","newAliasTypeArguments","instantiateMappedType","instantiateAnonymousType","resultObjectFlags","resultCouldContainTypeVariables","maybeTypeParameterReference","containsReference","firstIdentifierSymbol","tpDeclaration","tpScope","idDecl","mappedTypeVariable","mapTypeWithAlias","instantiateConstituent","instantiateMappedArrayType","instantiateMappedTupleType","getModifiedReadonlyState","tupleType","fixedMapper","newElementTypes","instantiateMappedTypeTemplate","newElementFlags","newReadonly","isReadonlyArrayType","origTypeParameter","freshTypeParameter","distributionType","findActiveMapper","pushActiveMapper","mapperCache","instantiateTypeWorker","popActiveMapper","resolvedTypeArguments","newTypeArguments","instantiateReverseMappedType","newBaseType","newConstraint","innerMappedType","innerIndexType","inferTypeForHomomorphicMappedType","isContextSensitiveFunctionLikeDeclaration","hasContextSensitiveReturnExpression","getTypeWithoutSignatures","compareTypesAssignable","isFunctionObjectType","isTypeComparableTo","areTypesComparable","checkTypeAssignableTo","headMessage","containingMessageChain","errorOutputObject","checkTypeRelatedTo","checkTypeAssignableToAndOptionallyElaborate","checkTypeRelatedToAndOptionallyElaborate","relation","errorOutputContainer","elaborateError","isOrHasGenericConditional","elaborateDidYouMeanToCallOrConstruct","elaborateObjectLiteral","elaborateArrayLiteral","elaborateJsxComponents","elaborateArrowFunction","resultObj","sourceSig","targetSignatures","returnExpression","sourceReturn","targetReturn","elaborated","getBestMatchIndexedAccessTypeOrUndefined","best","getBestMatchingType","checkExpressionForMutableLocationWithContextualType","sourcePropType","pushContextualType","popContextualType","elaborateElementwise","reportedError","targetPropType","specificSource","isExactOptionalPropertyMismatch","targetIsOptional","sourceIsOptional","reportedDiag","targetProp","issuedElaboration","targetNode","elaborateIterableOrArrayLikeTargetElementwise","tupleOrArrayLikeTargetParts","isArrayOrTupleLikeType","nonTupleOrArrayLikeTargetParts","iterationType","getIterationTypeOfIterable","status","targetIndexedPropType","generateJsxAttributes","isHyphenatedJsxName","generateJsxChildren","getInvalidTextDiagnostic","memberOffset","getElaborationElementForJsxChild","invalidTextDiagnostic","containingElement","childPropName","getJsxElementChildrenPropertyName","getJsxNamespaceAt","childrenPropName","childrenNameType","childrenTargetType","validChildren","moreThanOneRealChildren","arrayLikeTargetParts","nonArrayLikeTargetParts","anyIterable","realSource","checkJsxChildren","getInvalidTextualChildDiagnostic","tagNameText","generateLimitedTupleElements","isTupleLikeType","getEffectiveCheckNode","tupleizedType","checkArrayLiteral","generateObjectLiteralElements","checkTypeComparableTo","isSignatureAssignableTo","compareSignaturesRelated","isTopSignature","errorReporter","incompatibleErrorReporter","compareTypes","reportUnreliableMarkers","targetCount","instantiateSignatureInContextOf","sourceCount","sourceRestType","getNonArrayRestType","targetRestType","strictVariance","sourceThisType","targetThisType","paramCount","sourceType","getRestOrAnyTypeAtPosition","targetType","isInstantiatedGenericParameter","targetSig","getTypeFacts","targetReturnType","sourceReturnType","sourceTypePredicate","compareTypePredicateRelatedTo","isImplementationCompatibleWithOverload","implementation","overload","erasedSource","erasedTarget","isUnknownLikeUnionType","containsUndefinedType","isEnumTypeRelatedTo","targetEnumType","sourceProperty","targetProperty","sourceValue","targetValue","sourceIsString","targetIsString","escapedSource","escapedTarget","knownStringValue","isSimpleTypeRelatedTo","getRelationKey","isIgnoredJsxProperty","sourceProp","getNormalizedTupleType","getSingleBaseForNonAugmentingSubtype","getNormalizedUnionOrIntersectionType","shouldNormalizeIntersection","normalizedTypes","hasInstantiable","hasNullableOrEmpty","normalizedElements","relatedInfo","maybeKeys","maybeKeysSet","sourceStack","targetStack","maybeCount","sourceDepth","targetDepth","expandingFlags","overflow","overrideNextErrorInfo","skipParentCounter","lastSkippedInfo","incompatibleStack","relationCount","isRelatedTo","reportIncompatibleStack","resetErrorInfo","saved","captureErrorCalculationState","reportIncompatibleError","reportError","reportRelationError","secondaryRootErrors","mappedMsg","originalValue","reportParentSkippedError","associateRelatedInfo","generalizedSource","generalizedSourceType","typeCouldHaveTopLevelSingletonTypes","needsOriginalSource","getExactOptionalUnassignableProperties","suggestedType","getSuggestedTypeForNonexistentStringLiteralType","tryElaborateErrorsForPrimitivesAndObjects","tryElaborateArrayLikeErrors","isMutableArrayOrTuple","isRelatedToWorker","originalSource","originalTarget","recursionFlags","headMessage2","intersectionState","reportErrorResults","traceUnionsOrIntersectionsTooLarge","recursiveTypeRelatedTo","hasExcessProperties","isPerformingCommonPropertyChecks","isWeakType","isComparingJsxAttributes","hasCommonProperties","sourceString","targetString","calls","constructs","unionOrIntersectionRelatedTo","sourceHasBase","targetHasBase","maybeSuppress","currentError","targetTypes","intrinsicAttributes","getJsxType","JsxNames","intrinsicClassAttributes","savedErrorState","canonical","syntheticParam","targetConstraintString","sourceUnionOrIntersection","targetUnionOrIntersection","sourceSize","targetSize","getTypeOfPropertyInTypes","isExcessPropertyCheckTarget","isTypeSubsetOf","reducedTarget","checkTypes","findMatchingDiscriminantType","filterPrimitivesIfContainsNonPrimitive","shouldCheckAsExcessProperty","isKnownProperty","errorTarget","suggestionSymbol","objectLiteralDeclaration","sourceOrigin","targetOrigin","someTypeRelatedToType","eachTypeRelatedToType","typeRelatedToSomeType","getRegularTypeOfObjectLiteral","typeRelatedToEachType","eachTypeRelatedToSomeType","alternateForm","getMatchingUnionConstituentForType","bestMatchingType","getUndefinedStrippedTargetIfNeeded","extractTypesOfKind","undefinedStrippedTarget","related2","typeArgumentsRelatedTo","variances","broadestEquivalentId","maybeStart","saveExpandingFlags","isDeeplyNestedType","originalHandler","propagatingVarianceFlags","onlyUnreliable","structuredTypeRelatedTo","resetMaybeStack","markAllAsSucceeded","saveErrorInfo","structuredTypeRelatedToWorker","propertiesRelatedTo","indexSignaturesRelatedTo","getApparentMappedTypeKeys","mappedKeys","originalErrorInfo","varianceCheckFailed","targetFlags","result3","isMarkerType","getAliasVariances","minParams","varianceResult","relateVariances","isSingleElementGenericTupleType","targetKeys","countMessageChainBreadth","keysRemapped","sourceKeys","includeOptional","filteredByApplicability","templateType2","nonNullComponent","indexingType","skipTrue","skipFalse","templateLiteralTypesDefinitelyUnrelated","isDeferredMappedIndex","sourceMappedKeys","sourceExtends","ctx","defaultConstraint","distributiveConstraint","mappedTypeRelatedTo","sourceIsPrimitive","getVariances","reportStructuralErrors","signaturesRelatedTo","objectOnlyTarget","typeRelatedToDiscriminatedType","sourceTypeArguments","targetTypeArguments","intersectionState2","allowStructuralFallback","hasCovariantVoidArgument","sourceConstraint","sourceProperties","sourcePropertiesFiltered","findDiscriminantProperties","numCombinations","countTypes","sourceDiscriminantTypes","excludedProperties","sourcePropertyType","discriminantCombinations","matchingTypes","combination","hasMatch","propertyRelatedTo","excludeProperties","isPropertySymbolTypeRelated","getTypeOfSourceProperty","effectiveTarget","effectiveSource","skipOptional","sourcePropFlags","targetPropFlags","isValidOverrideOf","getDeclaringClass","reportUnmatchedProperty","unmatchedProperty","requireOptionalProperties","shouldSkipElaboration","privateIdentifierDescription","symbolTableKey","sourceName","optionalsOnly","propertiesIdenticalTo","sourceArity","targetArity","sourceRestFlag","targetHasRestElement","sourceMinLength","targetMinLength","targetStartCount","targetEndCount","canExcludeDiscriminants","sourcePosition","sourcePositionFromEnd","targetPosition","targetCheckType","getUnmatchedProperty","shouldReportUnmatchedPropertyError","numericNamesOnly","targetProperties","signaturesIdenticalTo","sourceIsJSConstructor","targetIsJSConstructor","sourceSignatures","sourceIsAbstract","targetIsAbstract","constructorVisibilitiesAreCompatible","incompatibleReporter","reportIncompatibleConstructSignatureReturn","reportIncompatibleCallSignatureReturn","sourceObjectFlags","targetObjectFlags","signatureRelatedTo","eraseGenerics","sourceSignature","targetSignature","constructSignatureToString","shouldElaborateErrors","typeCallSignatures","typeConstructSignatures","typeProperties","siga","sigb","erase","isRelatedToWorker2","source3","target3","reportErrors3","membersRelatedToIndexInfo","targetInfo","indexInfoRelatedTo","sourceInfo","indexSignaturesIdenticalTo","targetHasStringIndex","typeRelatedToIndexInfo","isObjectTypeWithInferableIndex","targetInfos","sourceAccessibility","targetAccessibility","findMatchingTypeReferenceOrTypeAliasReference","findBestTypeForObjectLiteral","findBestTypeForInvokable","findMostOverlappyType","discriminateTypeByDiscriminableItems","discriminators","getDiscriminatingType","matched","filtered","getVariancesWorker","oldVarianceComputation","saveResolutionStart","unmeasurable","unreliable","oldHandler","typeWithSuper","createMarkerType","typeWithSub","isUnconstrainedTypeParameter","isNonDeferredTypeReference","isTypeReferenceWithGenericArguments","getGenericTypeReferenceRelationKey","postFix","ignoreConstraints","constraintMarker","sourceId","getTypeReferenceId","targetId","forEachProperty2","baseClassType","isPropertyInClassDerivedFrom","baseClass","sp","sourceClass","isClassDerivedFromDeclaringClasses","checkClass","maxDepth","getMappedTargetWithSymbol","lastTypeId","hasMatchingRecursionIdentity","isObjectOrArrayLiteralType","isPropertyIdenticalTo","sourcePropAccessibility","targetPropAccessibility","isMatchingSignature","sourceParameterCount","targetParameterCount","sourceMinArgumentCount","targetMinArgumentCount","sourceHasRestParameter","targetHasRestParameter","targetLen","compareTypePredicatesIdentical","literalTypesWithSameBaseType","commonBaseType","getCombinedTypeFlags","getCommonSupertype","primaryTypes","superTypeOrUnion","getSingleCommonSupertype","getCommonSubtype","isMutableArrayLikeType","bases","instantiatedBase","isEmptyLiteralType","lengthType","getTupleElementType","isNeitherUnitTypeNorNever","isUnitLikeType","extractUnitType","getBaseTypeOfLiteralTypeUnion","getBaseTypeOfLiteralTypeForComparison","getWidenedUniqueESSymbolType","getWidenedLiteralLikeTypeForContextualType","isLiteralOfContextualType","getWidenedLiteralLikeTypeForContextualReturnTypeIfNeeded","contextualSignatureReturnType","getWidenedLiteralLikeTypeForContextualIterationTypeIfNeeded","getIterationTypeOfGeneratorFunctionReturnType","undefinedOrMissingType2","noReductions","isTupleTypeStructureMatching","isZeroBigInt","removeDefinitelyFalsyTypes","extractDefinitelyFalsyTypes","getDefinitelyFalsyPartOfType","missingOrUndefined","getGlobalNonNullableTypeInstantiation","getAdjustedTypeWithFacts","removeType","propagateOptionalTypeMarker","wasOptional","getOptionalExpressionType","isCoercibleUnderDoubleEquals","transformTypeOfMembers","regularNew","createWideningContext","siblings","getSiblingsOfContext","getPropertiesOfContext","getWidenedProperty","propContext","getWidenedTypeWithContext","getUndefinedProperty","getWidenedTypeOfObjectLiteral","unionContext","widenedTypes","reportWideningErrorsInType","errorReported","wideningKind","typeAsString","newName","shouldReportErrorsFromWideningWithContextualSignature","getAwaitedTypeNoAlias","yieldType","nextType","applyToParameterTypes","getEffectiveRestType","targetNonRestCount","applyToReturnTypes","createInferenceContextWorker","createInferenceInfo","extraFlags","cloneInferenceInfo","makeFixingMapperForContext","makeNonFixingMapperForContext","inference","inferFromIntraExpressionSites","clearCachedInferences","getInferredType","addIntraExpressionInferenceSite","getContextualTypeForObjectLiteralMethod","cloneInferredPartOfContext","hasInferenceCandidates","getMapperFromContext","isNonGenericTopLevelType","isTypeParameterAtTopLevel","isTypeParameterAtTopLevelInReturnType","createEmptyObjectTypeFromStringLiteral","literalProp","createReverseMappedType","isPartiallyInferableType","reversed","inferReverseMappedTypeWorker","getTypeFromInference","matchDiscriminantProperties","tupleTypesDefinitelyUnrelated","typesDefinitelyUnrelated","hasSkipDirectInferenceFlag","isFromInferenceBlockedSource","sourceStart","targetStart","sourceEnd","targetEnd","startLen","endLen","isValidNumberString","parseBigIntLiteralType","mappingStack","memo","isValidTypeForTemplateLiteralPlaceholder","inferTypesFromTemplateLiteralType","inferFromLiteralPartsToTemplateLiteral","getStringLikeTypeForType","sourceTexts","lastSourceIndex","sourceStartText","sourceEndText","targetTexts","lastTargetIndex","targetStartText","targetEndText","remainingEndText","matches","seg","delim","getSourceText","addMatch","matchType","priority","contravariant","bivariant","propagationType","inferencePriority","inferFromTypes","savePropagationType","inferFromTypeArguments","tempSources","tempTargets","inferFromMatchingTypes","isTypeOrBaseIdenticalTo","isTypeCloselyMatchedBy","inferWithPriority","getInferenceInfoForType","simplified2","inferFromContravariantTypes","empty","inferFromContravariantTypesWithPriority","invokeOnce","inferToConditionalType","inferToMultipleTypes","inferToTemplateLiteralType","inferFromGenericMappedTypes","apparentSource","inferFromObjectTypes","newPriority","savePriority","inferToMultipleTypesWithPriority","saveInferencePriority","matchedSources","matchedTargets","inferFromContravariantTypesIfStrictFunctionTypes","getSingleTypeVariableFromIntersectionTypes","typeVariableCount","nakedTypeVariable","inferenceCircularity","intersectionTypeVariable","unmatched","inferToMappedType","inferredType","inferenceContext","constraintTypes","allTypeFlags","matchingType","sourceNameType","targetNameType","endLength","middleLength","impliedArity","endsInOptional","sourceSlice","inferFromIndexTypes","inferFromProperties","inferFromSignatures","sourceLen","inferFromSignature","saveBivariant","priority2","hasPrimitiveConstraint","unionObjectAndArrayLiteralCandidates","objectLiterals","literalsType","getContravariantInference","getCovariantInference","primitiveConstraint","widenLiteralTypes","baseCandidates","unwidenedType","fallbackType","inferredCovariantType","inferredContravariantType","preferCovariantType","instantiatedConstraint","clearActiveMapperCaches","isInJavaScriptFile","getInferredTypes","getFlowCacheKey","flowContainer","getAccessedPropertyName","isParameterOrMutableLocalVariable","isSymbolAssigned","sourcePropertyName","targetPropertyName","tryGetElementAccessExpressionName","tryGetNameFromType","tryGetNameFromEntityNameExpression","initializerType","getTypeOfExpression","containsMatchingReference","optionalChainContainsReference","isDiscriminantProperty","mapTypesByKeyProperty","discriminant","duplicate","getKeyPropertyName","keyPropertyName","mapByKeyProperty","getConstituentTypeForKeyType","getMatchingUnionConstituentForObjectLiteral","propNode","isPossiblyDiscriminantValue","getContextFreeTypeOfExpression","isOrContainsMatchingReference","getFlowNodeId","typeMaybeAssignableTo","getAssignmentReducedType","assignedType","getAssignmentReducedTypeWorker","filteredType","reducedType","mask2","getTypeFactsWorker","callerOnlyNeeds","isZero","getIntersectionTypeFacts","ignoreObjects","oredFacts","andedFacts","recombineUnknownType","removeNullableByIntersection","targetFacts","otherFacts","otherIncludesFacts","otherType","emptyAndOtherUnion","getTypeWithDefault","defaultExpression","getTypeOfDestructuredProperty","includeUndefinedInIndexSignature","getTypeOfDestructuredArrayElement","getTypeOfDestructuredSpreadExpression","getAssignedTypeOfBinaryExpression","isDestructuringAssignmentTarget","getAssignedType","getAssignedTypeOfArrayLiteralElement","getAssignedTypeOfSpreadExpression","getAssignedTypeOfPropertyAssignment","getAssignedTypeOfShorthandPropertyAssignment","getInitialTypeOfBindingElement","getInitialType","getInitialTypeOfVariableDeclaration","isEmptyArrayAssignment","getReferenceCandidate","getReferenceRoot","getTypeOfSwitchClause","getSwitchClauseTypes","getSwitchClauseTypeOfWitnesses","witnesses","eachTypeContainedIn","isTypeSubsetOfUnion","everyContainedType","newOrigin","originTypes","originFiltered","mappedTypes","changed","replacePrimitivesWithLiterals","typeWithPrimitives","typeWithLiterals","isIncomplete","getTypeFromFlowType","createFlowType","incomplete","createEvolvingArrayType","getEvolvingArrayType","addEvolvingArrayElementType","createFinalArrayType","getFinalArrayType","finalizeEvolvingArrayType","getElementTypeOfEvolvingArrayType","isEvolvingArrayTypeList","hasEvolvingArrayType","isEvolvingArrayOperationTarget","isLengthPushOrUnshift","isElementAssignment","isDeclarationWithExplicitTypeAnnotation","getExplicitTypeOfSymbol","getTypeOfDottedName","use","getExplicitThisType","checkSuperExpression","getEffectsSignature","funcType","checkNonNullExpression","getSymbolHasInstanceMethodOfObjectType","checkNonNullType","hasTypePredicateOrNeverReturnType","getTypePredicateArgument","invokedExpression","reportFlowControlError","isReachableFlowNode","isReachableFlowNodeWorker","isFalseExpression","noCacheCheck","reachable","predicateArgument","isExhaustiveSwitchStatement","saveAntecedents","isPostSuperFlowNode","postSuper","isConstantReference","isSomeSymbolAssigned","isVarConstLike2","isKeySet","flowDepth","sharedFlowStart","evolvedType","getTypeAtFlowNode","getOrSetCacheKey","sharedFlow","getTypeAtFlowAssignment","getTypeAtFlowCall","getTypeAtFlowCondition","getTypeAtSwitchClause","getTypeAtFlowBranchLabel","getTypeAtFlowLoopLabel","getTypeAtFlowArrayMutation","getInitialOrAssignedType","getNarrowableTypeForReference","narrowTypeByAssertion","narrowType","narrowedType","narrowTypeByTypePredicate","evolvedType2","assumeTrue","nonEvolvingType","narrowTypeBySwitchOnDiscriminant","narrowTypeBySwitchOnTypeOf","narrowTypeBySwitchOnTrue","narrowTypeBySwitchOptionalChainContainment","getDiscriminantPropertyAccess","narrowTypeBySwitchOnDiscriminantProperty","antecedentTypes","subtypeReduction","seenIncomplete","bypassFlow","getUnionOrEvolvingArrayType","firstAntecedentType","saveFlowTypeCache","cached2","getCandidateDiscriminantPropertyAccess","computedType","narrowTypeByDiscriminant","narrowType2","removeNullable","narrowedPropType","discriminantType","narrowTypeByDiscriminantProperty","narrowTypeByEquality","clauseTypes","narrowTypeByTruthiness","isTypePresencePossible","narrowTypeByInKeyword","recordSymbol","narrowTypeByBooleanComparison","bool","narrowTypeByBinaryExpression","narrowTypeByTypeof","narrowTypeByOptionalChainContainment","leftAccess","rightAccess","isMatchingConstructorReference","narrowTypeByConstructor","narrowTypeByInstanceof","narrowTypeByPrivateIdentifierInInExpression","getSymbolForPrivateIdentifierExpression","getNarrowedType","equalsOperator","nullableFlags","doubleEquals","typeOfExpr","narrowTypeByLiteralExpression","narrowTypeByTypeName","clauseCheck","switchTypes","hasDefaultClause","groundClauseTypes","caseType","narrowTypeByTypeFacts","impliedType","defaultIndex","notEqualFacts","getNotEqualFactsFromTypeofSwitch","clauseWitnesses","identifierType","isFunctionType","prototypeProperty","prototypeType","isConstructedBy","getInstanceType","prototypePropertyType","checkDerived","getNarrowedTypeWorker","isRelated","matching","directlyRelated","narrowTypeByCallExpression","callAccess","narrowTypeByOptionality","assumePresent","checkPropertyAccessExpression","getControlFlowContainer","isSymbolAssignedDefinitely","isPastLastAssignment","isFunctionOrSourceFile","hasParentWithAssignmentsMarked","markNodeAssignments","isSomeSymbolAssignedWorker","assigmentTarget","hasDefiniteAssignment","referencingFunction","declaringFunction","extendAssignmentPosition","sign","getDeclarationNodeFlagsFromSymbol","isMutableLocalVariableDeclaration","parameterInitializerContainsUndefined","containsUndefined","removeOptionalityFromDeclaredType","isConstraintPosition","isGenericTypeWithoutNullableConstraint","isGenericTypeWithUnionConstraint","hasContextualTypeWithNoGenericTypes","isExportOrExportExpression","markLinkedReferences","hint","propSymbol","markIdentifierAliasReferenced","markPropertyAliasReferenced","markExportAssignmentAliasReferenced","markJsxAliasReferenced","markAsyncFunctionAliasReferenced","markImportEqualsAliasReferenced","markExportSpecifierAliasReferenced","markDecoratorAliasReferenced","shouldMarkIdentifierAliasReferenced","topProp","checkExternalImportOrExportDeclaration","markAliasReferenced","lexicallyScopedSymbol","apparentType","isMethodAccessForCall","isConstEnumOrConstEnumOnlyModule","getJsxNamespaceContainerForImplicitImport","jsxFactoryRefErr","jsxFactoryNamespace","jsxFactoryLocation","shouldFactoryRefErr","jsxFactorySym","markAliasSymbolAsReferenced","getJsxFactoryEntity","markTypeNodeAsReferenced","markExportAsReferenced","exportedName","firstDecorator","checkExternalEmitHelpers","markDecoratorMedataDataTypeNodeAsReferenced","getParameterTypeNodeForDecoratorCheck","otherAccessor","containingSignature","markEntityNameOrEntityExpressionAsReference","forDecoratorMetadata","rootSymbol","getEntityNameForDecoratorMetadata","getNarrowedTypeOfSymbol","parentTypeConstraint","contextualSignature","getContextualSignature","getInferenceContext","checkIdentifierCalculateNodeCheckFlags","isInPropertyInitializerOrClassStaticBlock","localOrExportSymbol","resolveAliasWithDeprecationCheck","checkNestedBlockScopedBinding","checkIdentifier","checkThisExpression","immediateDeclaration","assignmentError","isParameter2","declarationContainer","isOuterVariable","isSpreadDestructuringAssignmentTarget","isModuleExports","typeIsAutomatic","isAutomaticTypeInNonNull","isNeverInitialized","assumeInitialized","isSameScopedBindingElement","greatGrandparent","isInsideFunctionOrInstancePropertyInitializer","threshold","getPartOfForStatementContainingNode","getEnclosingIterationStatement","isCaptured","enclosingIterationStatement","capturesBlockScopeBindingInLoopBody","varDeclList","capturedBindings","isAssignedInBodyOfForStatement","isBindingCapturedByNode","isAssigned","captureLexicalThis","classNode","findFirstSuperCall","classDeclarationExtendsNull","classInstanceType","checkThisBeforeSuper","containingClassDecl","checkThisInStaticClassFieldInitializerInDecoratedClass","thisExpression","isNodeInTypeQuery","capturedByArrowFunction","thisInComputedPropertyName","globalThisType2","outsideThis","isInJS","isInParameterInitializerBeforeContainingFunction","getTypeForThisExpressionFromJSDoc","getClassNameFromPrototypeMethod","isInConstructorArgumentInitializer","constructorDecl","isCallExpression2","immediateContainer","needToCaptureLexicalThis","inAsyncFunction","nodeCheckFlag","isLegalUsageOfSuperExpression","classLikeDeclaration","getContainingObjectLiteral","getThisTypeArgument","getThisTypeFromContextualType","getThisTypeOfObjectLiteralFromContextualType","containingLiteral","getApparentTypeOfContextualType","inJs","indexOfParameter","getSpreadArgumentType","getContextualTypeForVariableLikeDeclaration","getContextualTypeForBindingElement","getContextualTypeForStaticPropertyDeclaration","getContextualTypeForElementExpression","getContextualTypeForInitializerExpression","getContextualTypeForReturnExpression","contextualReturnType","getContextualReturnType","functionFlags","iterationReturnType","contextualAwaitedType","createPromiseLikeType","getContextualTypeForAwaitOperand","getContextualTypeForYieldOperand","iterationTypes","getIterationTypesOfGeneratorFunctionReturnType","generatorType","createGeneratorType","asyncGeneratorType","inBindingInitializer","getContextualIterationType","functionDecl","returnType2","checkGeneratorInstantiationAssignabilityToReturnType","getAwaitedTypeOfPromise","getContextualTypeForArgument","callTarget","getEffectiveFirstArgumentForJsxSignature","getContextualTypeForDecorator","getDecoratorCallSignature","getContextualTypeForSubstitutionExpression","substitutionExpression","getContextualTypeForBinaryOperand","getContextualTypeForAssignmentDeclaration","getSymbolForExpression","lhsType","tryGetPrivateIdentifierPropertyOfType","lhsSymbol","overallAnnotation","getContextualTypeForThisPropertyAssignment","decl2","annotated2","nameStr","annotated","thisAccess","isCircularMappedProperty","isExcludedMappedPropertyName","indexInfoCandidates","ignoreIndexInfos","constituentType","substitutedType","getIndexedMappedTypeSubstitutedTypeOfContextualType","appendContextualPropertyTypeConstituent","getTypeOfConcretePropertyOfContextualType","indexInfoType","getTypeFromIndexInfosOfContextualType","constraintOfConstraint","propertyAssignmentType","getSpreadIndices","firstSpreadIndex","lastSpreadIndex","fixedEndLength","getIteratedTypeOrElementType","getContextualTypeForConditionalOperand","conditional","getContextualTypeForChildJsxExpression","attributesType","jsxChildrenPropertyName","realChildren","childIndex","childFieldType","getContextualTypeForJsxExpression","exprParent","attribute","discriminateContextualTypeByObjectMembers","discriminateContextualTypeByJSXAttributes","instantiatedType","instantiateContextualType","hasInferenceCandidatesOrDefault","instantiateInstantiableTypes","findContextualNode","arrayLiteral","elementIndex","spreadIndices","getContextualJsxElementAttributesType","getContextualImportAttributeType","pushCachedContextualType","isCache","includeCaches","pushInferenceContext","popInferenceContext","getJsxReferenceKind","getJsxPropsTypeFromCallSignature","getJsxPropsTypeFromClassType","propsType","getTypeOfFirstParameterOfSignatureWithFallback","getJsxManagedAttributesFromLocatedAttributes","intrinsicAttribs","getJsxPropsTypeForSignatureFromMember","forcedLookupLocation","instance","getStaticTypeOfReferencedJsxConstructor","getJSXFragmentType","isJsxIntrinsicTagName","getIntrinsicAttributesTypeFromJsxOpeningLikeElement","fakeSignature","createSignatureForJSXIntrinsic","tagType","getIntrinsicAttributesTypeFromStringLiteralType","managedSym","getJsxLibraryManagedAttributes","ctorType","instantiateAliasOrInterfaceWithDefaults","getJsxElementPropertiesName","apparentAttributesType","intrinsicClassAttribs","hostClassType","libraryManagedAttributeType","inferredArgs","getIntersectedSignatures","combineSignaturesOfIntersectionMembers","combineIntersectionThisParam","combineIntersectionParameters","getContextualCallSignature","applicableByArity","isAritySmaller","typeTagSignature","checkGrammarRegularExpressionLiteral","hasParseDiagnostics","error3","checkRegularExpressionLiteral","checkSpreadExpression","arrayOrIterableType","checkSyntheticExpression","isSpreadIntoCallOrNew","forceTuple","elementCount","inDestructuringPattern","inConstContext","isConstContext","inTupleContext","hasOmittedExpression","spreadType","restElementType","createArrayLiteralType","literalType","isNumericName","isNumericComputedName","isSymbolWithNumericName","isSymbolWithSymbolName","isSymbolWithComputedName","checkObjectLiteral","checkGrammarObjectLiteralExpression","allPropertiesTable","propertiesTable","propertiesArray","contextualTypeHasPattern","isInJavascript","enumTag","isJSObjectLiteral","patternWithComputedProperties","computedNameType","impliedProp","inferenceNode","createObjectLiteralType","mergedType","checkSpreadPropOverrides","checkNodeDeferred","checkJsxSelfClosingElementDeferred","checkJsxOpeningLikeElementOrOpeningFragment","checkJsxSelfClosingElement","_checkMode","getJsxElementTypeAt","checkJsxElementDeferred","getIntrinsicTagSymbol","checkJsxElement","checkJsxFragment","nodeSourceFile","jsxElementType","createJsxAttributesTypeFromAttributesProperty","openingLikeElement","allAttributesTable","attributesTable","hasSpreadAnyType","typeToIntersect","explicitlySpecifyChildrenAttribute","isJsxOpenFragment","attributesSymbol","attributeParent","attributeDecl","attributeSymbol","createJsxAttributesTypeHelper","childrenTypes","childrenContextualType","childrenPropSymbol","childPropMap","createJsxAttributesType","checkJsxAttributes","intrinsicElementsType","intrinsicProp","getApplicableIndexSymbol","runtimeImportSpecifier","getJSXRuntimeImportSpecifier","resolvedNamespace","getNameFromJsxElementAttributesContainer","nameOfAttribPropContainer","jsxNamespace","jsxElementAttribPropInterfaceSym","jsxElementAttribPropInterfaceType","propertiesOfJsxElementAttribPropInterface","getJsxElementTypeSymbol","getUninstantiatedJsxSignaturesOfType","caller","intrinsicType","apparentElemType","stringLiteralTypeName","indexSignatureType","checkJsxReturnAssignableToAppropriateBound","refKind","elemInstanceType","sfcReturnConstraint","getJsxStatelessElementTypeAt","generateInitialErrorChain","classConstraint","getJsxElementClassTypeAt","componentName","getJsxElementTypeTypeAt","declaredManagedType","intrinsics","checkJsxPreconditions","isNodeOpeningLikeElement","checkGrammarJsxElement","checkDeprecatedSignature","jsxOpeningLikeNode","elementTypeConstraint","checkJsxExpression","checkGrammarJsxExpression","checkPropertyAccessibility","isSuper","checkPropertyAccessibilityAtLocation","symbolHasNonMethodDeclaration","declaringClassDeclaration","isNodeUsedDuringClassInitialization","isNodeWithinClass","enclosingClass","forEachEnclosingClass","enclosingClass2","getEnclosingClassFromThisParameter","getThisParameterFromNodeContext","reportObjectPossiblyNullOrUndefinedError","reportCannotInvokePossiblyNullOrUndefinedError","checkNonNullTypeWithReporter","checkNonNullNonVoidType","nonNullType","writeOnly","checkPropertyAccessChain","checkPropertyAccessExpressionOrQualifiedName","nonOptionalType","checkQualifiedName","checkGrammarPrivateIdentifierExpression","privId","grammarErrorOnNode","isInOperation","checkPrivateIdentifierExpression","checkPrivateIdentifierPropertyAccess","propertyOnType","diagName","typeValueDecl","typeClass","lexicalValueDecl","lexicalClass","isAnyLike","targetPropSymbol","checkPropertyNotUsedBeforeDeclaration","reportNonexistentProperty","getFlowTypeOfAccessExpression","excludeClasses","suggestionHasNoExtendsOrDecorators","assumeUninitialized","isPropertyWithoutInitializer","isPropertyDeclaredInAncestorClass","ignoreArrowFunctions","getSuperClass","superProperty","subtype","promisedType","missingProperty","libSuggestion","getSuggestedLibForNonExistentProperty","suggestedName","containerSeemsToBeEmptyDomElement","resultDiagnostic","missingName","typeFeatures","containingTypeName","libTarget","featuresOfType","getSpellingSuggestionForName","strName","outerName","targetModule","keyedType","hasProp","suggestedMethod","getCandidateName","nodeForCheckWriteOnly","isSelfTypeAccess2","hasPrivateModifier","containingMethod","isValidPropertyAccessWithType","declClass","getForInVariableSymbol","variable","hasNumericPropertyNames","isForInVariableForNumericPropertyNames","checkIndexedAccess","checkElementAccessChain","checkElementAccessExpression","indexExpression","effectiveIndexType","assignmentTargetKind","checkIndexedAccessIndexType","callLikeExpressionMayHaveTypeArguments","resolveUntypedCall","checkSourceElement","resolveErrorCall","reorderCandidates","lastParent","lastSymbol","cutoffIndex","specializedIndex","spliceIndex","signatureHasLiteralTypes","isSpreadArgument","getSpreadArgumentIndex","acceptsVoid","acceptsVoidUndefinedUnknownOrAny","hasCorrectArity","signatureHelpTrailingComma","argCount","callIsIncomplete","effectiveParameterCount","effectiveMinimumArguments","lastSpan","templateLiteral","getDecoratorArgumentCount","spreadArgIndex","hasCorrectTypeArgumentArity","getSingleSignature","allowMembers","inferJsxTypeArguments","checkAttrType","checkExpressionWithContextualType","getThisArgumentType","thisArgumentNode","thisArgumentType","inferTypeArguments","skipBindingPatterns","inferenceTargetType","outerContext","outerMapper","inferenceSourceType","returnContext","returnSourceType","info2","getThisArgumentOfCall","argType","getMutableArrayOrTupleType","hasPrimitiveContextualType","checkTypeArguments","typeArgumentTypes","typeArgumentHeadMessage","checkApplicableSignatureForJsxCallLikeElement","checkAttributesType","checkTagNameDoesNotExpectTooManyArguments","tagCallSignatures","factorySymbol","factoryType","hasFirstParamSignatures","maxParamCount","firstparam","signaturesOfParam","paramSig","absoluteMinArgCount","tagSig","tagRequiredArgCount","tagNameDeclaration","getSignatureApplicabilityError","checkArgType","effectiveCheckArgumentNode","maybeAddMissingAwaitInfo","restArgCount","awaitedTypeOfSource","args2","getEffectiveDecoratorArguments","spreadIndex","effectiveArgs","i2","syntheticArg","getLegacyDecoratorArgumentCount","getDiagnosticSpanForCallNode","getDiagnosticForCallNode","getErrorNodeForCallNode","callLike","isPromiseResolveArityError","globalPromiseSymbol","getArgumentArityError","maxBelow","minAbove","closestSignature","minParameter","maxParameter","hasRestParameter2","parameterRange","isVoidPromiseError","messageAndArgs","parameterError","getTypeArgumentArityError","belowArgCount","aboveArgCount","resolveCall","isDecorator2","isJsxOpeningOrSelfClosingElement","isInstanceof","candidatesForArgumentError","candidateForArgumentArityError","candidateForTypeArgumentError","argCheckMode","isSingleNonGenericCandidate","chooseOverload","getCandidateForOverloadFailure","diags","addImplementationSuccessElaboration","allDiagnostics","minIndex","diags2","signaturesWithCorrectTypeArgumentArity","oldCandidatesForArgumentError","oldCandidateForArgumentArityError","oldCandidateForTypeArgumentError","failedSignatureDeclarations","implDecl","isSingleNonGenericCandidate2","candidates2","signatureHelpTrailingComma2","candidateIndex","checkCandidate","hasCandidatesOutArray","pickLongestCandidateSignature","createUnionOfSignaturesForOverloadFailure","thisParameters","createCombinedSymbolFromTypes","maxNonRestParam","getNumNonRestParameters","restParameterSymbols","createCombinedSymbolForOverloadFailure","numParams","bestIndex","getLongestCandidateIndex","getTypeArgumentsFromNodes","inferSignatureInstantiationForOverloadFailure","argsCount","maxParamsIndex","maxParams","resolveCallExpression","superType","baseConstructors","numConstructSignatures","isUntypedFunctionCall","invocationError","isGenericFunctionReturningFunction","skippedGenericFunction","apparentFuncType","numCallSignatures","resolveNewExpression","isConstructorAccessible","someSignature","valueDecl","typeHasProtectedAccessibleBase","firstBase","intersectionMember","declaringClass","invocationErrorDetails","isCall","awaitedType","hasSignatures2","constituent","invocationErrorRecovery","sigs","resolveTaggedTemplateExpression","getDiagnosticHeadMessageForDecoratorResolution","resolveDecorator","isPotentiallyUncalledDecorator","nodeStr","errorDetails","returnNode","sourceFileLinks","jsxFragmentFactoryName","shouldModuleRefErr","jsxFactorySymbol","ReactNames","resolvedAlias","reactExports","resolveJsxOpeningLikeElement","exprTypes","resolveInstanceofExpression","hasInstanceMethodType","resolveSignature","inferred","assignmentSymbol","getAssignedJSPrototype","allowDeclaration","parentNodeOperator","checkCallExpression","checkGrammarTypeArguments","isSymbolOrSymbolForCall","jsSymbol","jsAssignmentType","suggestionNode","getDeprecatedSuggestionNode","globalESSymbol","checkImportCallExpression","checkGrammarImportCallExpression","createPromiseReturnType","specifierType","optionsType","importCallOptionsType","esModuleSymbol","anonymousSymbol","memberTable","newSymbol","synthType","defaultContainingObject","resolvedRequire","targetDeclarationKind","checkTaggedTemplateExpression","checkGrammarTaggedTemplateChain","checkAssertion","checkAssertionWorker","isValidConstAssertionArgument","op","getAssertionTypeAndExpression","checkAssertionDeferred","errNode","widenedType","checkNonNullChain","checkNonNullAssertion","checkGrammarExpressionWithTypeArguments","hasSomeApplicableSignature","nonApplicableType","getInstantiatedType","hasApplicableSignature","getInstantiatedTypePart","getInstantiatedSignatures","applicableSignatures","checkSatisfiesExpression","checkSatisfiesExpressionWorker","checkMetaProperty","checkGrammarMetaProperty","checkNewTargetMetaProperty","checkImportMetaProperty","checkMetaPropertyKeyword","createNewTargetExpressionType","getTupleElementLabelFromBindingElement","restParameter","overrideRestType","associatedName","paramIdent","getParameterDeclarationIdentifier","restIdent","isRestTupleElement","isValidDeclarationForTupleLabel","getNameableDeclarationAtPosition","parameterCount","strongArityForUntypedJS","voidIsNonOptional","firstOptionalIndex","requiredCount","inferFromAnnotatedParametersAndReturn","assignContextualParameterTypes","assignParameterType","contextualParameterType","assignNonContextualParameterTypes","assignBindingElementTypes","createClassDecoratorContextType","createClassMethodDecoratorContextType","createClassGetterDecoratorContextType","createClassSetterDecoratorContextType","createClassAccessorDecoratorContextType","createClassFieldDecoratorContextType","getClassMemberDecoratorContextOverrideType","overrideType","createClassMemberDecoratorContextTypeForNode","contextType","createClassAccessorDecoratorTargetType","createClassAccessorDecoratorResultType","createClassFieldDecoratorInitializerMutatorType","valueParam","createFunctionType","createESDecoratorCallSignature","nonOptionalReturnType","targetParam","contextParam","getESDecoratorCallSignature","createGetterFunctionType","createSetterFunctionType","getLegacyDecoratorCallSignature","getParentTypeOfClassElement","getClassElementPropertyKeyType","keyParam","indexParam","descriptorType","descriptorParam","globalPromiseType","unwrapAwaitedType","globalPromiseLikeType","promiseType","targetPropertySymbol","fallbackReturnType","checkAwaitedType","returnTypes","checkAndAggregateReturnExpressionTypes","yieldTypes","nextTypes","checkAndAggregateYieldOperandTypes","unwrapReturnType","globalGeneratorType","globalIterableIteratorType","yieldExpression","yieldExpressionType","getYieldedTypeOfYieldExpression","getIterationTypesOfIterable","sentType","yieldedType","witness","exhaustive","computeExhaustiveSwitchStatement","operandConstraint","functionHasImplicitReturn","aggregatedTypes","hasReturnWithNoExpression","hasReturnOfTypeNever","mayReturnNever","singleReturn","checkIfExpressionRefinesAnyParameter","initType","checkIfExpressionRefinesParameter","trueCondition","falseCondition","checkAllCodePathsInNonVoidFunctionReturnOrThrow","checkAllCodePathsInNonVoidFunctionReturnOrThrowDiagnostics","inferredReturnType","isUnwrappedReturnTypeUndefinedVoidOrAny","checkFunctionExpressionOrObjectLiteralMethod","checkCollisionsForDeclarationName","returnOnlySignature","returnOnlyType","checkGrammarFunctionLikeDeclaration","checkGrammarForGenerator","contextuallyCheckFunctionExpressionOrObjectLiteralMethod","instantiatedContextualSignature","checkSignatureDeclaration","checkFunctionExpressionOrObjectLiteralMethodDeferred","returnOrPromisedType","checkReturnExpression","checkArithmeticOperandType","isAwaitValid","isReadonlyAssignmentDeclaration","writableProp","writableType","rawOriginalType","isAssignmentDeclaration2","isLocalPropertyDeclaration","isLocalParameterProperty","isLocalThisPropertyAssignment","isLocalThisPropertyAssignmentConstructorFunction","checkReferenceExpression","invalidReferenceMessage","invalidOptionalChainMessage","checkDeleteExpression","checkDeleteExpressionMustBeOptional","checkTypeOfExpression","checkVoidExpression","checkAwaitGrammar","hasError","checkAwaitExpression","operandType","checkPrefixUnaryExpression","maybeTypeOfKindConsideringBaseConstraint","getUnaryResultType","checkTruthinessOfType","checkPostfixUnaryExpression","strict","subType","hasInstancePropertyName","getPropertyNameForKnownSymbolName","hasInstanceProperty","hasInstancePropertyType","checkInstanceOfExpression","hasEmptyObjectIntersection","checkInExpression","checkObjectLiteralAssignment","rightIsThis","checkObjectLiteralDestructuringPropertyAssignment","objectLiteralType","propertyIndex","allProperties","checkDestructuringAssignment","nonRestNames","otherProperty","checkGrammarForDisallowedTrailingComma","checkArrayLiteralAssignment","possiblyOutOfBoundsType","inBoundsType","checkArrayLiteralDestructuringElementAssignment","elementType2","restExpression","exprOrAssignment","checkBinaryLikeExpression","checkReferenceAssignment","optionalError","isSideEffectFree","isTypeEqualityComparableTo","setLeftType","setLastResult","checkNullishCoalesceOperands","maybeCheckExpression","getLastResult","checkTestingKnownTruthyCallableOrAwaitableOrEnumMemberType","getLeftType","checkBinaryLikeExpressionWorker","_side","checkNullishCoalesceOperandLeft","checkNullishCoalesceOperandRight","leftTarget","nullishSemantics","getSyntacticNullishnessSemantics","rightTarget","isNotWithinNullishCoalesceExpression","checkTruthinessExpression","suggestedOperator","getSuggestedBooleanOperator","leftOk","rightOk","resultType2","bothAreBigIntLike","reportOperatorError","checkAssignmentOperator","rhsEval","checkForDisallowedESSymbolOperand","left2","right2","reportOperatorErrorUnless","leftAssignableToNumber","rightAssignableToNumber","eqType","checkNaNEquality","declKind","checkAssignmentDeclaration","isIndirectCall","sf","rightType2","operator2","offendingSymbolOperand","checkAssignmentOperatorWorker","assigneeType","typesAreCompatible","wouldWorkWithAwait","awaitedLeftType","awaitedRightType","effectiveLeft","effectiveRight","getBaseTypesIfUnrelated","tryGiveBetterPrimaryError","errorNode2","isLeftNaN","isGlobalNaN","isRightNaN","operatorString","globalNaNSymbol","leftBase","rightBase","checkYieldExpression","checkYieldExpressionGrammar","signatureYieldType","signatureNextType","grammarErrorOnFirstToken","checkConditionalExpression","isTemplateLiteralContext","checkTemplateExpression","evaluated","isTemplateLiteralContextualType","getContextNode2","saveFlowLoopStart","isTypeAssertion","getQuickTypeOfExpression","padObjectLiteralType","padTupleType","missingElements","getPropertyNameFromBindingElement","patternElements","candidateType","checkGrammarMethod","uninstantiatedType","instantiateTypeWithSingleGenericCallSignature","callSignature","constructSignature","uniqueTypeParameters","getUniqueTypeParameters","hasOverlappingInferences","mergeInferences","oldTypeParameters","newTypeParameters","hasTypeParameterByName","getUniqueTypeParameterName","newTypeParameter","augmentedName","getReturnTypeOfSingleNonGenericCallSignature","getReturnTypeOfSingleNonGenericSignatureOfCallChain","quickType","cachedType","startInvocationCount","saveCurrentNode","checkExpressionWorker","checkConstEnumAccess","ok","isInRightSideOfImportOrExportAssignment","constEnumDeclaration","checkParenthesizedExpression","checkGrammarNumericLiteral","checkGrammarBigIntLiteral","checkClassExpression","checkTypeParameter","checkGrammarModifiers","checkTypeNameIsReserved","checkTypeParameterDeferred","saveVarianceTypeParameter","checkParameter","checkVariableLikeDeclaration","checkTypePredicate","getTypePredicateParent","leadingError","hasReportedError","checkIfTypePredicateVariableIsDeclaredInBindingPattern","predicateVariableNode","predicateVariableName","checkGrammarIndexSignature","checkTypeParameters","checkUnmatchedJSDocParameters","checkSignatureDeclarationDiagnostics","checkCollisionWithArgumentsInGeneratedCode","returnTypeErrorLocation","functionFlags2","checkAsyncFunctionReturnType","registerForUnusedIdentifiersCheck","generatorYieldType","generatorReturnType","generatorNextType","generatorInstantiation","checkClassForDuplicateDeclarations","instanceNames","staticNames","privateIdentifiers","addName","isStaticMember","privateStaticFlags","getEffectivePropertyNameForPropertyNameNode","prevIsMethod","checkClassForStaticPropertyNameConflicts","memberNameNode","checkObjectTypeForDuplicateDeclarations","checkTypeForDuplicateIndexSignatures","indexSignatureMap","checkPropertyDeclaration","checkGrammarProperty","checkGrammarComputedPropertyName","setNodeLinksForPrivateIdentifierScope","checkPropertySignature","checkMethodDeclaration","checkFunctionOrMethodDeclaration","lexicalScope","checkClassStaticBlockDeclaration","checkConstructorDeclaration","checkGrammarConstructorTypeParameters","checkGrammarConstructorTypeAnnotation","checkFunctionOrConstructorSymbol","checkConstructorDeclarationDiagnostics","isInstancePropertyWithInitializerOrPrivateIdentifierProperty","classExtendsNull","superCall","superCallIsRootLevelInConstructor","superCallStatement","nodeImmediatelyReferencesSuperOrThis","superCallParent","checkAccessorDeclaration","checkAccessorDeclarationDiagnostics","checkGrammarAccessor","checkDecorators","getNodeCheckFlags","getterFlags","setterFlags","checkMissingDeclaration","checkTypeArgumentConstraints","getTypeParametersForTypeAndSymbol","checkTypeReferenceNode","grammarErrorAtPos","checkTypeReferenceOrImport","typeReferenceNode","checkTypeQuery","checkTypeLiteral","checkTypeLiteralDiagnostics","checkIndexConstraints","checkArrayType","checkTupleType","seenOptionalElement","seenRestElement","checkUnionOrIntersectionType","objectIndexType","hasNumberIndexInfo","checkIndexedAccessType","checkMappedType","checkGrammarMappedType","checkThisType","checkTypeOperator","checkGrammarTypeOperatorNode","checkConditionalType","checkInferType","areTypeParametersIdentical","checkTemplateLiteralType","checkImportType","checkNamedTupleMember","getEffectiveDeclarationFlags","flagsToCheck","checkFunctionOrConstructorSymbolWorker","getCanonicalOverload","overloads","checkFlagAgreementBetweenOverloads","flagsToCheck2","someOverloadFlags","allOverloadFlags","canonicalFlags","overloadsInFile","canonicalFlagsForFile","deviation","deviationInFile","checkQuestionTokenAgreementBetweenOverloads","someHaveQuestionToken2","allHaveQuestionToken2","canonicalHasQuestionToken","someNodeFlags","allNodeFlags","someHaveQuestionToken","allHaveQuestionToken","hasOverloads","bodyDeclaration","lastSeenNonAmbientDeclaration","previousDeclaration","reportImplementationExpectedError","subsequentNode","subsequentName","duplicateFunctionDeclaration","multipleConstructorImplementation","hasNonAmbientClass","functionDeclarations","inAmbientContext","inAmbientContextOrInterface","currentNodeFlags","bodyIsPresent","relatedDiagnostics","bodySignature","checkExportsOnMergedDeclarations","checkExportsOnMergedDeclarationsWorker","exportedDeclarationSpaces","nonExportedDeclarationSpaces","defaultExportedDeclarationSpaces","declarationSpaces","getDeclarationSpaces","effectiveDeclarationFlags","nonDefaultExportedDeclarationSpaces","commonDeclarationSpacesForExportsAndLocals","commonDeclarationSpacesForDefaultAndNonDefault","thisTypeForErrorOut","typeAsPromise","thenFunction","thenSignatures","thisTypeForError","thenSignature","onfulfilledParameterType","onfulfilledParameterSignatures","withAlias","isThenableType","isAwaitedTypeInstantiation","awaitedSymbol","isAwaitedTypeNeeded","tryCreateAwaitedType","createAwaitedTypeIfNeeded","typeAsAwaitable","reportErrorForInvalidReturnType","promiseConstructorName","promiseConstructorSymbol","promiseConstructorType","globalPromiseConstructorLikeType","collidingSymbol","returnTypeNode2","returnTypeErrorLocation2","checkGrammarDecorator","canHaveCallExpression","checkDecorator","decoratorSignature","expectedReturnType","getEntityNameForDecoratorMetadataFromTypeList","commonEntityName","individualEntityName","getFirstTransformableStaticClassElement","checkFunctionDeclaration","checkFunctionDeclarationDiagnostics","checkJSDocTypeAliasTag","checkJSDocTemplateTag","checkJSDocTypeTag","checkJSDocSatisfiesTag","checkJSDocLinkLikeTag","resolveJSDocMemberName","checkJSDocParameterTag","checkJSDocPropertyTag","checkJSDocFunctionType","checkJSDocFunctionTypeImplicitAny","checkJSDocThisTag","checkJSDocImportTag","checkImportAttributes","checkJSDocImplementsTag","classLike","checkJSDocAugmentsTag","augmentsTags","getIdentifierFromEntityNameExpression","extend2","checkJSDocAccessibilityModifiers","checkFunctionOrMethodDeclarationDiagnostics","registerForUnusedIdentifiersCheckDiagnostics","potentiallyUnusedIdentifiers","addDiagnostic","checkUnusedClassMembers","checkUnusedTypeParameters","checkUnusedLocalsAndParameters","checkUnusedInferTypeParameter","errorUnusedLocal","isIdentifierThatStartsWithUnderscore","isTypeParameterUnused","seenParentsWithEveryUnused","messageAndArg","addToGroup","getKey","keyString","tryGetRootParameterDeclaration","isValidUnusedLocalDeclaration","isImportedDeclaration","nodeWithLocals","unusedImports","unusedDestructures","unusedVariables","importClauseFromImported","unuseds","unused","bindingPattern","bindingElements","bindingNameText","checkPotentialUncheckedRenamedBindingElementsInTypes","wrappingDeclaration","checkBlock","checkGrammarStatementInAmbientContext","saveFlowAnalysisDisabled","needCollisionCheckForIdentifier","checkIfThisIsCapturedInEnclosingScope","checkIfNewTargetIsCapturedInEnclosingScope","checkCollisionWithRequireExportsInGeneratedCode","checkCollisionWithGlobalPromiseInGeneratedCode","recordPotentialCollisionWithWeakMapSetInGeneratedCode","checkWeakMapSetCollision","enclosingBlockScope","recordPotentialCollisionWithReflectInGeneratedCode","checkReflectCollision","hasCollision","checkClassNameCollisionWithObject","checkVarDeclaredNamesNotShadowed","localDeclarationSymbol","parentCheckMode","needCheckInitializer","needCheckWidenedType","checkAliasSymbol","globalAsyncDisposableType","globalDisposableType","optionalDisposableType","areDeclarationFlagsIdentical","declarationType","nextDeclaration","nextDeclarationName","interestingFlags","checkVariableDeclaration","checkGrammarVariableDeclaration","checkBindingElement","checkGrammarBindingElement","checkVariableDeclarationList","checkVariableStatement","checkGrammarVariableDeclarationList","checkGrammarForDisallowedBlockScopedVariableStatement","checkExpressionStatement","checkIfStatement","condExpr","condType","bothHelper","condExpr2","body2","isPropertyExpressionCast","isPromise","testedNode","testedSymbol","isSymbolUsedInBinaryExpressionChain","isSymbolUsedInConditionBody","childNode","childSymbol","testedExpression","childExpression","checkDoStatement","checkWhileStatement","semantics","getSyntacticTruthySemantics","checkForStatement","checkForOfStatement","checkGrammarForInOrForOfStatement","varExpr","checkForInStatement","inputType","checkAssignability","allowAsyncIterables","reportTypeNotIterableError","uplevelIteration","downlevelIteration","possibleOutOfBounds","hasStringConstituent","arrayTypes","filteredTypes","allowsStrings","defaultDiagnostic","getIterationDiagnosticDetails","arrayElementType","downlevelIteration2","isES2015OrLaterIterable","getIterationTypesKeyFromIterationTypeKind","combineIterationTypes","getCachedIterationTypes","setCachedIterationTypes","iterationTypes2","getIterationTypesOfIterableWorker","rootDiag","allIterationTypes","getAsyncFromSyncIterationTypes","getIterationTypesOfIterableCached","getIterationTypesOfIterableFast","getIterationTypesOfIterableSlow","uniqueType","methodType","allSignatures","validSignatures","iteratorType","getIterationTypesOfIteratorWorker","suggestAwait","getIterationTypesOfIterator","getIterationTypesOfIteratorCached","getIterationTypesOfIteratorFast","getIterationTypesOfIteratorSlow","isIteratorResult","doneType","isYieldIteratorResult","isReturnIteratorResult","getIterationTypesOfIteratorResult","yieldType2","yieldIteratorResult","returnIteratorResult","getIterationTypesOfMethod","methodSignatures","globalIteratorType","isGeneratorMethod","isIteratorMethod","globalType","methodParameterTypes","methodReturnTypes","methodParameterType","resolvedMethodParameterType","methodReturnType","resolvedMethodReturnType","checkBreakOrContinueStatement","checkGrammarBreakOrContinueStatement","returnIterationType","checkReturnStatement","exprType2","unwrappedReturnType","inConditionalExpression","unwrappedExpr","inReturnStatement","unwrappedExprType","effectiveExpr","checkWithStatement","checkSwitchStatement","firstDefaultClause","hasDuplicateDefaultClause","createLazyCaseClauseDiagnostics","clause2","checkLabeledStatement","checkThrowStatement","grammarErrorAfterFirstToken","checkTryStatement","blockLocals","caughtName","blockLocal","isStaticIndex","checkIndexConstraintForProperty","typeDeclaration","checkIndexConstraintForIndexSignature","interfaceDeclaration","localPropDeclaration","localIndexDeclaration","checkInfo","localCheckDeclaration","jsdocParameters","excludedParameters","lastJSDocParamIndex","lastJSDocParam","typeParameterDeclarations","seenDefault","createCheckTypeParameterDiagnostic","checkTypeParametersNotReferenced","checkTypeParameterListsIdentical","getClassOrInterfaceDeclarationsOfSymbol","targetParameters","getTypeParameterDeclarations","maxTypeArgumentCount","sourceParameters","sourceDefault","willTransformStaticElementsOfDecoratedClass","willTransformPrivateElementsOrClassStaticBlocks","willTransformInitializers","checkClassExpressionExternalHelpers","willTransformESDecorators","checkClassLikeDeclaration","checkClassExpressionDeferred","checkClassDeclaration","checkGrammarClassLikeDeclaration","typeWithThis","checkBaseTypeAccessibility","baseWithThis","issueMemberSpecificError","checkKindsOfPropertyMemberOverrides","checkMembersForOverrideModifier","implementedTypeNodes","typeRefNode","createImplementsDiagnostics","checkPropertyInitialization","genericDiag","baseStaticType","checkExistingMemberForOverrideModifier","memberIsParameterProperty","declaredProp","checkMemberForOverrideModifier","memberHasOverrideModifier","memberHasAbstractModifier","memberIsStatic","nodeInAmbientContext","baseProp","baseClassName","baseHasAbstract","broadDiag","issuedMemberError","rootChain","typeClassDeclaration","baseProperties","notImplementedInfo","basePropertyCheck","baseProperty","baseDeclarationFlags","derivedClassDecl","otherBaseType","baseSymbol2","derivedElsewhere","baseTypeName","basePropertyName","missedProperties","derivedDeclarationFlags","basePropertyFlags","derivedPropertyFlags","isPropertyAbstractOrInterface","overriddenInstanceProperty","errorMessage2","uninitialized","isPropertyInitializedInConstructor","memberInfo","remainingMissedProperties","properties2","checkInheritedPropertiesAreIdentical","typeName1","typeName2","endPos","checkInterfaceDeclaration","checkGrammarInterfaceDeclaration","allowBlockDeclarations","firstInterfaceDecl","heritageElement","checkTypeAliasDeclaration","computeEnumMemberValues","autoValue","computeEnumMemberValue","computeConstantEnumMemberValue","prevValue","isConstEnum","evaluateEnumMember","checkEnumDeclaration","checkEnumDeclarationWorker","enumSymbol","enumIsConst","seenEnumMissingInitialInitializer","enumDeclaration","firstEnumMember","checkEnumMember","getFirstNonAmbientClassOrFunctionDeclaration","inSameLexicalScope","node1","container1","checkModuleDeclaration","checkModuleDeclarationDiagnostics","isGlobalAugmentation","isAmbientExternalModule","contextErrorMessage","checkGrammarModuleElementContext","firstNonAmbientClassOrFunc","mergedClass","exportModifier","checkModuleAugmentationElement","el","inAmbientExternalModule","checkModuleExportName","allowStringLiteral","alreadyExportedSymbol","exportingDeclaration","importDeclaration","importedIdentifier","excludedMeanings","typeOnlyAlias","checkImportBinding","importAttributesType","validForTypeAttributes","override","isImportAttributes2","checkImportDeclaration","checkGrammarImportClause","hasTypeJsonImportAttribute","checkImportEqualsDeclaration","checkExportDeclaration","checkGrammarExportDeclaration","checkExportSpecifier","inAmbientNamespaceDeclaration","checkGrammarNamedImportsOrExports","isInAppropriateContext","hasModuleSpecifier","checkExportAssignment","illegalContextMessage","typeAnnotationNode","isIllegalExportDefaultInCJS","nonLocalMeanings","checkExternalModuleExports","hasExportedMembers","exportEqualsSymbol","exportedDeclarationsCount","checkSourceElementWorker","checkJSDocCommentWorker","checkJSDocTypeIsInJsFile","checkJSDocVariadicType","paramTag","isCallbackTag","lastParamDeclaration","enclosingFile","checkDeferredNodes","checkDeferredNode","checkSourceFile","nodesToCheck","beforeMark","afterMark","checkSourceFileNodesWorker","checkSourceFileWorker","checkGrammarSourceFile","getDiagnosticsWorker","ensurePendingDiagnosticWorkComplete","oldAddLazyDiagnostics","previousGlobalDiagnostics","previousGlobalDiagnosticsSize","semanticDiagnostics","currentGlobalDiagnostics","deferredGlobalDiagnostics","isStaticSymbol","populateSymbols","copySymbols","copyLocallyVisibleExportSymbols","copySymbol","isTypeDeclarationName","isInNameOfExpressionWithTypeArguments","getLeftSideOfImportEqualsOrExportAssignment","nodeOnRightSide","getSpecialPropertyAssignmentSymbolFromEntityName","isImportTypeQualifierPart","isThisPropertyAndThisTyped","getSymbolOfNameOrPropertyAccessExpression","specialPropertyAssignmentSymbol","importEqualsDeclaration","possibleImportNode","entityNameSymbol","nodeListId","copy","proto","isDeclarationNameOrImportPropertyName","typeOfPattern","objectTypes","typeOfParentObjectLiteral","typeOfArrayLiteral","typeOfObjectLiteral","propsByName","roots","getImmediateRootSymbols","leftSpread","rightSpread","syntheticOrigin","tryGetTarget","isArgumentsLocalBinding","isNameOfModuleOrEnumDeclaration","getReferencedExportContainer","prefixLocals","symbolFile","getReferencedImportDeclaration","getReferencedValueOrAliasSymbol","isSymbolOfDestructuredElementOfCatchBinding","isSymbolOfDeclarationWithCollidingName","hasNodeCheckFlag","isDeclaredInLoop","inLoopInitializer","inLoopBodyBlock","getReferencedDeclarationWithCollidingName","isDeclarationWithCollidingName","isValueAliasDeclaration","isAliasResolvedToValue","isTopLevelValueImportEqualsWithEntityName","excludeTypeOnlyValues","isReferencedAliasDeclaration","checkChildren","signaturesOfSymbol","declaredParameterTypeContainsUndefined","isRequiredInitializedParameter","isOptionalUninitializedParameterProperty","getPropertiesOfContainerFunction","calculateNodeCheckFlagWorker","checkSingleSuperExpression","checkChildSuperExpressions","checkChildIdentifiers","checkSingleIdentifier","checkContainingBlockScopeBindingUses","forEachNodeRecursively","rootResult","checkSuperExpressions","checkIdentifiers","isExpressionNodeOrShorthandPropertyAssignmentName","checkBlockScopeBindings","checkSingleBlockScopeBinding","getTypeReferenceSerializationKind","typeNameIn","rootValueSymbol","resolvedValueSymbol","resolvedTypeSymbol","createTypeOfDeclaration","createReturnTypeOfSignatureDeclaration","signatureDeclarationIn","exprIn","startInDeclarationContainer","getReferencedValueDeclaration","referenceIn","getReferencedValueDeclarations","isLiteralConstDeclaration","literalTypeToNode","enclosing","enumResult","literalValue","createLiteralConstValue","jsxFragPragmas","jsxFragPragma","direct","parseDecl","isImportRequiredByAugmentation","staticInfos","instanceIndexSymbol","instanceInfos","infoList","importTarget","augmentations","fileGlobalThisSymbol","conflictingSymbols","isBlockScoped","firstFileLocations","secondFileLocations","helpersModule","resolveHelpersModule","uncheckedHelpers","getHelperNames","getImportHelpersImportSpecifier","quickResult","reportObviousDecoratorErrors","reportObviousModifierErrors","lastStatic","lastDeclare","lastAsync","lastOverride","sawExportBeforeDecorators","hasLeadingDecorators","accessors","inOutFlag","inOutText","checkGrammarAsyncModifier","findFirstIllegalModifier","findFirstModifierExcept","allowedModifier","findFirstIllegalDecorator","checkGrammarTypeParameterList","checkGrammarParameterList","seenOptionalParameter","getNonSimpleParameters","checkGrammarForUseStrictSimpleParameterList","useStrictDirective","nonSimpleParameters","checkGrammarArrowFunction","checkGrammarClassDeclarationHeritageClauses","checkGrammarIndexSignatureParameters","checkGrammarForAtLeastOneTypeArgument","checkGrammarHeritageClause","listType","seenExtendsClause","seenImplementsClause","computedPropertyName","checkGrammarForInvalidQuestionMark","checkGrammarForInvalidExclamationToken","inDestructuring","currentKind","effectiveName","existingKind","checkGrammarJsxName","variableList","doesAccessorHaveCorrectParameterCount","checkGrammarForInvalidDynamicName","isStringOrNumberLiteralExpression","isBigIntLiteralExpression","isSimpleLiteralEnumReference","checkAmbientInitializer","isInvalidInitializer","checkESModuleMarker","checkGrammarNameInLetOrConstDeclarations","grammarErrorOnNodeSkippedOn","blockScopeFlags","isCallee","nodeForSourceFile","jsdocTypeParameters","checkGrammarTopLevelElementForRequiredDeclareModifier","checkGrammarTopLevelElementsForRequiredDeclareModifier","isFractional","global2","nodeArguments","importAttributesArgument","spreadElement","unionTarget","overlapObjFlags","signatureKind","matchingCount","discriminated","specifierText","jsxImportIndex","JsxNames2","ReactNames2","_SymbolTrackerImpl","augmentingSymbol","lift","visitedNode","extractSingleNode","visitArrayWorker","updatedArray","nodesVisitor","addDefaultValueAssignmentsIfNeeded","addDefaultValueAssignmentIfNeeded","addDefaultValueAssignmentForBindingPattern","addDefaultValueAssignmentForInitializer","nodeVisitor","discardVisitor","discarded","tokenVisitor","visitEachChildTable","_nodesVisitor","_tokenVisitor","_nodeVisitor","sourceRoot","sourcesDirectoryPath","generatorOptions","rawSources","sourceToSourceIndexMap","sourcesContent","nameToNameIndexMap","mappingCharCodes","mappings","lastGeneratedLine","lastGeneratedCharacter","lastSourceLine","lastSourceCharacter","lastNameIndex","hasLast","pendingGeneratedLine","pendingGeneratedCharacter","pendingSourceIndex","pendingSourceLine","pendingSourceCharacter","pendingNameIndex","hasPending","hasPendingSource","hasPendingName","addSource","setSourceContent","addMapping","appendSourceMap","toJSON","nameIndex","isNewGeneratedPosition","generatedLine","generatedCharacter","isBacktrackingSourcePosition","sourceLine","sourceCharacter","commitPendingMapping","sourceMapPath","sourceIndexToNewSourceIndexMap","nameIndexToNewNameIndexMap","mappingIterator","newSourceIndex","newSourceLine","newSourceCharacter","newNameIndex","rawPath","combinedPath","rawGeneratedLine","newGeneratedLine","rawGeneratedCharacter","newGeneratedCharacter","shouldCommitMapping","appendMappingCharCode","flushMappingBuffer","appendBase64VLQ","inValue","currentDigit","base64FormatEncode","lineInfo","isStringOrNull","isRawSourceMap","captureMapping","hasSource","hasName","base64VLQFormatDecode","stopIterating","setErrorAndStopIterating","isSourceMappingSegmentEnd","setError","moreDigits","shiftCount","currentByte","base64FormatDecode","mapping","isSourceMappedPosition","sameMappedPosition","compareSourcePositions","compareGeneratedPositions","getSourcePositionOfMapping","getGeneratedPositionOfMapping","mapPath","mapDirectory","generatedAbsoluteFilePath","generatedFile","sourceFileAbsolutePaths","decodedMappings","generatedMappings","sourceMappings","getSourcePosition","getGeneratedPosition","processMapping","generatedPosition","getDecodedMappings","decoder","getSourceMappings","lists","getGeneratedMappings","sourceMappings2","targetIndex","generatedMappings2","containsDefaultReference","isNamedDefaultReference","transformSourceFile","transformSourceFileOrBundle","transformBundle","bindings","defaultRefCount","externalImports","exportSpecifiers","IdentifierNameMultiMap","exportedBindings","uniqueExports","exportedFunctions","exportedNames","hasExportDefault","addExportedNamesForExportDeclaration","multiMapSparseArrayAdd","collectExportedVariableInfo","addExportedFunctionDeclaration","specifierNameText","_IdentifierNameMap","findSuperStatementIndexPathWorker","requireInitializer","isInitializedOrStaticProperty","isStaticPropertyDeclarationOrClassStaticBlockDeclaration","isStaticPropertyDeclaration","getDecoratorsOfParameters","firstParameterIsThis","firstParameterOffset","numParameters","getAllDecoratorsOfAccessors","getAllDecoratorsOfMethod","getAllDecoratorsOfProperty","walkUpLexicalEnvironments","env","privateEnv","env2","isSimpleParameter","updatedText","FlattenLevel2","needsValue","createAssignmentCallback","flattenContext","emitExpression","emitBindingOrAssignment","makeArrayAssignmentPattern","makeObjectAssignmentPattern","makeAssignmentElement","bindingOrAssignmentElementAssignsToName","bindingOrAssignmentElementContainsNonLiteralComputedName","ensureIdentifier","flattenBindingOrAssignmentElement","value2","location2","bindingOrAssignmentPatternAssignsToName","bindingOrAssignmentPatternContainsNonLiteralComputedName","rval","hoistTempVariables","skipInitializer","pendingExpressions","pendingDeclarations","makeArrayBindingPattern","makeObjectBindingPattern","makeBindingElement","pendingDeclaration","pendingExpressions2","bindingTarget","createDefaultValueCheck","flattenObjectBindingOrAssignmentPattern","flattenArrayBindingOrAssignmentPattern","numElements","reuseIdentifierExpressions","rhsValue","createDestructuringPropertyAccess","restContainingElements","isSimpleBindingOrAssignmentElement","createClassThisAssignmentBlock","updatedNode","getAssignedNameOfIdentifier","getAssignedNameOfPropertyName","assignedNameText","updatedName","createClassNamedEvaluationHelperBlock","namedEvaluationBlock","insertionIndex","leading","finishTransformNamedEvaluation","ignoreEmptyStringLiteral","transformNamedEvaluationOfPropertyAssignment","transformNamedEvaluationOfShorthandAssignmentProperty","transformNamedEvaluationOfVariableDeclaration","transformNamedEvaluationOfParameterDeclaration","transformNamedEvaluationOfBindingElement","transformNamedEvaluationOfPropertyDeclaration","transformNamedEvaluationOfAssignmentExpression","transformNamedEvaluationOfExportAssignment","ProcessLevel2","recordTaggedTemplateString","templateArguments","cookedStrings","rawStrings","createTemplateCooked","getRawLiteral","templateSpan","helperCall","tempVar","emitHelpers","startLexicalEnvironment","resumeLexicalEnvironment","endLexicalEnvironment","hoistVariableDeclaration","typeSerializer","previousOnEmitNode","previousOnSubstituteNode","onEmitNode","onSubstituteNode","currentNamespaceContainerName","currentLexicalScope","currentScopeFirstDeclarationsOfName","enabledSubstitutions","applicableSubstitutions","saveStateAndInvoke","visitSourceFile","savedCurrentScope","savedCurrentScopeFirstDeclarationsOfName","onBeforeVisitNode","recordEmittedDeclarationInScope","visitorWorker","visitTypeScript","sourceElementVisitor","sourceElementVisitorWorker","visitElidableStatement","isElisionBlocked","visitImportDeclaration","visitImportEqualsDeclaration","visitExportAssignment","visitExportDeclaration","namespaceElementVisitor","namespaceElementVisitorWorker","getClassElementVisitor","classElementVisitorWorker","visitConstructor","visitPropertyDeclaration","visitGetAccessor","visitSetAccessor","visitMethodDeclaration","getObjectLiteralElementVisitor","objectLiteralElementVisitorWorker","decoratorElidingVisitor","modifierElidingVisitor","modifierVisitor","visitClassDeclaration","visitClassExpression","visitHeritageClause","visitExpressionWithTypeArguments","visitObjectLiteralExpression","visitFunctionDeclaration","visitFunctionExpression","visitArrowFunction","visitParameter","visitParenthesizedExpression","visitAssertionExpression","visitSatisfiesExpression","visitCallExpression","visitNewExpression","visitTaggedTemplateExpression","visitNonNullExpression","visitEnumDeclaration","visitVariableStatement","visitVariableDeclaration","visitModuleDeclaration","visitJsxSelfClosingElement","visitJsxJsxOpeningElement","alwaysStrict","getClassFacts","extendsClauseElement","isExportOfNamespace","isDefaultExternalModuleExport","isNamedExternalModuleExport","hasTypeScriptClassSyntax","isClassLikeDeclarationWithTypeScriptSyntax","promoteToIIFE","moveModifiers","injectClassTypeMetadata","transformClassMembers","closingBraceLocation","varDecl","varStatement","createExportMemberAssignmentStatement","newMembers","parametersWithPropertyAssignments","parameterProperty","metadata","getTypeMetadata","modifiersArray","injectClassElementTypeMetadata","getOldTypeMetadata","shouldAddTypeMetadata","typeMetadata","shouldAddParamTypesMetadata","paramTypesMetadata","shouldAddReturnTypeMetadata","returnTypeMetadata","getExpressionForPropertyName","generateNameForComputedPropertyName","visitPropertyNameOfClassElement","generatedName","shouldEmitFunctionLikeDeclaration","transformConstructorBody","transformConstructorBodyWorker","statementsOut","statementsIn","superPath","superPathDepth","initializerStatements","superStatementIndex","superStatement","tryBlockStatements","tryBlockStatementsArray","prologueStatementCount","parameterPropertyAssignments","transformParameterWithPropertyAssignment","shouldEmitAccessorDeclaration","addExportMemberAssignment","variables","transformInitializedVariable","createNamespaceExportExpression","getNamespaceMemberNameWithSourceMapsAndWithoutComments","shouldEmitEnumDeclaration","varAdded","addVarForEnumOrModuleDeclaration","getNamespaceParameterName","containerName","getNamespaceContainerName","moduleArg","enumStatement","transformEnumBody","savedCurrentNamespaceLocalName","transformEnumMember","transformEnumMemberDeclarationValue","innerAssignment","outerAssignment","enableSubstitutionForNonQualifiedEnumMembers","shouldEmitModuleDeclaration","declaredNameInScope","isFirstEmittedDeclarationInScope","varFlags","enableSubstitutionForNamespaceExports","moduleStatement","transformModuleBody","namespaceLocalName","savedCurrentNamespaceContainerName","savedCurrentNamespace","statementsLocation","blockLocation","moduleBlock","getInnerMostModuleDeclarationFromDottedModule","moduleDeclaration","visitImportClause","shouldEmitAliasDeclaration","visitNamedImportBindings","allowEmpty","visitImportSpecifier","visitNamedExportBindings","visitNamedExports","visitExportSpecifier","visitNamespaceExports","shouldEmitImportEqualsDeclaration","isExternalModuleExport","isTransformedModuleDeclaration","isTransformedEnumDeclaration","emitCallback","savedApplicableSubstitutions","savedCurrentSourceFile","substituteExpression","substituteShorthandPropertyAssignment","trySubstituteNamespaceExportedName","substituteExpressionIdentifier","substitutePropertyAccessExpression","substituteElementAccessExpression","substituteConstantValue","safeMultiLineComment","tryGetConstEnumValue","substitute","originalNode","addBlockScopedVariable","shouldTransformInitializersUsingSet","shouldTransformInitializersUsingDefine","shouldTransformInitializers","shouldTransformPrivateElementsOrClassStaticBlocks","shouldTransformAutoAccessors","shouldTransformThisInStaticInitializers","shouldTransformSuperInStaticInitializers","shouldTransformAnything","shouldTransformPrivateStaticElementsInFile","classAliases","pendingStatements","lexicalEnvironment","lexicalEnvironmentMap","noSubstitution","currentClassContainer","currentClassElement","shouldSubstituteThisWithClassThis","previousShouldSubstituteThisWithClassThis","shouldTransformAutoAccessorsInCurrentClass","visitPropertyAssignment","visitParameterDeclaration","visitBindingElement","visitPrivateIdentifier","visitPropertyAccessExpression","visitElementAccessExpression","visitPreOrPostfixUnaryExpression","visitBinaryExpression","visitExpressionStatement","visitForStatement","visitThisExpression","setCurrentClassElementAnd","fallbackVisitor","discardedValueVisitor","visitCommaListExpression","heritageClauseVisitor","visitExpressionWithTypeArgumentsInHeritageClause","assignmentTargetVisitor","visitAssignmentPattern","classElementVisitor","visitConstructorDeclaration","visitMethodOrAccessorDeclaration","visitClassStaticBlockDeclaration","visitComputedPropertyName","propertyNameVisitor","accessorFieldResultVisitor","transformFieldInitializer","transformPrivateIdentifierInInExpression","accessPrivateIdentifier2","isAnonymousClassNeedingAssignedName","savedPendingStatements","injectPendingExpressions","transformConstructor","shouldTransformClassElementToWeakMap","getHoistedFunctionName","getPendingExpressions","classElement","visitor2","savedCurrentClassElement","tryGetClassThis","lex","getClassLexicalEnvironment","transformAutoAccessor","getterName","setterName","cacheAssignment","backingField","setterModifiers","transformPrivateFieldInitializer","transformPropertyOrClassStaticBlock","transformPublicFieldInitializer","getPropertyNameExpressionIfNeeded","initializerStatement","shouldForceDynamicThis","ensureDynamicThisIfNeeded","createPrivateIdentifierAccess","createPrivateIdentifierAccessHelper","privateIdentifierInfo","isStaticPropertyDeclarationOrClassStaticBlock","classConstructor","superClassReference","visitInvalidSuperProperty","readExpression","initializeExpression","createCopiableReceiverExpr","createPrivateIdentifierAssignment","invocation","transformClassStaticBlockDeclaration","staticPropertiesOrClassStaticBlocks","savedPendingExpressions","superPropertyGet","isPrivateIdentifierInExpression","visitorFunc","getPrivateInstanceMethodsAndAccessors","containsPublicInstanceFields","containsInitializedPublicInstanceFields","containsInstancePrivateElements","containsInstanceAutoAccessors","visitInNewClassLexicalEnvironment","savedCurrentClassContainer","savedLexicalEnvironment","startClassLexicalEnvironment","shouldAlwaysTransformPrivateStaticElements","getPrivateIdentifierEnvironment","prefixName","privateInstanceMethodsAndAccessors","createHoistedVariableForClass","enableSubstitutionForClassStaticThisOrSuperReference","endClassLexicalEnvironment","visitClassDeclarationInNewClassLexicalEnvironment","pendingClassReferenceAssignment","isClassWithConstructorReference","prologue","staticProperties","addPropertyOrClassStaticBlockStatements","enableSubstitutionForClassAliases","visitClassExpressionInNewClassLexicalEnvironment","isDecoratedClassDeclaration","requiresBlockScopedVar","createClassTempVar","temp2","classExpression","generateInitializedPropertyExpressionsOrClassStaticBlock","shouldTransformPrivateStaticElementsInClass","addPrivateIdentifierToEnvironment","addPrivateIdentifierClassElementToEnvironment","createBrandCheckWeakSetForPrivateMethods","storageName","addPrivateIdentifierPropertyDeclarationToEnvironment","syntheticConstructor","syntheticStaticBlock","arrow","membersArray","classThisAssignmentBlock","classNamedEvaluationHelperBlock","remainingMembers","weakSetName","isDerivedClass","instanceProperties","privateMethodsAndAccessors","needsConstructorBody","needsSyntheticConstructor","addInstanceMethodStatements","parameterProperties","nonParameterProperties","superStatementIndices","transformProperty","propertyOriginalNode","propertiesOrClassStaticBlocks","transformed","transformPropertyWorker","emitAssignment","createPrivateStaticFieldInitializer","createPrivateInstanceFieldInitializer","memberAccess","methods","createPrivateInstanceMethodInitializer","shouldHoist","inlinable","previousInfo","addPrivateIdentifierAutoAccessorPropertyDeclarationToEnvironment","addPrivateIdentifierMethodDeclarationToEnvironment","addPrivateIdentifierGetAccessorDeclarationToEnvironment","addPrivateIdentifierSetAccessorDeclarationToEnvironment","_previousInfo","brandCheckIdentifier","variableName","createHoistedVariableForPrivateName","weakMapName","addDeclaration","isReservedPrivateName","wrapPrivateIdentifierForDestructuringTarget","visitDestructuringAssignmentTarget","visitAssignmentElement","visitAssignmentRestElement","visitArrayAssignmentElement","visitAssignmentProperty","assignmentElement","visitShorthandAssignmentProperty","visitAssignmentRestProperty","visitObjectAssignmentElement","savedPreviousShouldSubstituteThisWithClassThis","savedShouldSubstituteThisWithClassThis","substituteThisExpression","substituteThis","trySubstituteClassAlias","classAlias","isStaticPropertyDeclaration2","currentNameScope","serializerContext","setSerializerContextAnd","serializeTypeNode","serializeTypeOfNode","serializeParameterTypesOfNode","serializeReturnTypeOfNode","savedCurrentLexicalScope","savedCurrentNameScope","getAccessorTypeNode","getParametersOfDecoratedDeclaration","serializeLiteralOfLiteralTypeNode","getGlobalConstructor","serializeTypeReferenceNode","serializeUnionOrIntersectionConstituents","isIntersection","serializedType","serializedConstituent","equateSerializedTypeNodes","serialized","serializeEntityNameAsExpressionFallback","serializeEntityNameAsExpression","createCheckedValue","copied","serializeQualifiedNameAsExpression","getGlobalConstructorWithFallback","minLanguageVersion","visitSetAccessorDeclaration","visitGetAccessorDeclaration","transformClassDeclarationWithClassDecorators","transformClassDeclarationWithoutClassDecorators","decoratorContainsPrivateIdentifierInExpression","parameterDecoratorsContainPrivateIdentifierInExpression","parameterDecorators","hasClassElementWithDecoratorContainingPrivateIdentifierInExpression","allDecorators","transformDecoratorsOfClassElements","decorationStatements","addClassElementDecorationStatements","getClassAliasIfNeeded","assignClassAliasInStaticBlock","varInitializer","addConstructorDecorationStatement","exportStatement","finishClassElement","isSyntheticMetadataDecorator","transformAllDecoratorsOfDeclaration","transformDecorator","transformDecoratorsOfParameter","generateClassElementDecorationExpressions","isDecoratedClassElement","isStaticElement","getDecoratedClassElements","generateClassElementDecorationExpression","getClassMemberPrefix","generateConstructorDecorationExpression","decorate","getClassPrototype","classInfo","classSuper","updateState","enterClass","classInfo2","exitClass","enterClassElement","exitClassElement","enterName","exitName","enterOther","exitOther","shouldVisitNode","visitPartiallyEmittedExpression","getHelperVariableName","createHelperVariable","createLet","createClassInfo","metadataReference","instanceMethodExtraInitializersName","staticMethodExtraInitializersName","hasStaticInitializers","hasNonAmbientInstanceFields","hasStaticPrivateClassElements","classThis2","pendingStaticInitializers","pendingInstanceInitializers","needsUniqueClassThis","transformClassLike","classReference","classDefinitionStatements","leadingBlockStatements","trailingBlockStatements","classDecorators","extendsClause","extendsElement","extendsExpression","unwrapped","safeExtendsExpression","updatedExtendsElement","updatedExtendsClause","renamedClassThis","createMetadata","outerThis","thisVisitor","prepareConstructor","constructorStatements","spreadArguments","constructorBody","valueProperty","classDescriptor","classDescriptorAssignment","classNameReference","esDecorateHelper2","esDecorateStatement","classDescriptorValueReference","classThisAssignment","classReferenceAssignment","createSymbolMetadata","runClassInitializersHelper","runClassInitializersStatement","leadingStaticBlock","trailingStaticBlock","existingNamedEvaluationHelperBlockIndex","classReferenceDeclaration","classReferenceVarDeclList","returnExpr","isDecoratedClassLike","originalClass","varDecls","modifierVisitorNoExport","_parent","nonPrologueStart","partialTransformClassElement","createDescriptor","referencedName","initializersName","extraInitializersName","descriptorName","modifiers2","visitPropertyName","memberDecorators","memberDecoratorsName","memberDecoratorsArray","memberDecoratorsAssignment","visitReferencedPropertyName","methodExtraInitializersName","esDecorateExpression","createMethodDescriptorObject","createMethodDescriptorForwarder","createGetAccessorDescriptorObject","createGetAccessorDescriptorForwarder","createSetAccessorDescriptorObject","createSetAccessorDescriptorForwarder","savedClassThis","canIgnoreEmptyStringLiteralInAssignedName","createAccessorPropertyDescriptorObject","injectPendingInitializers","modifiersWithoutAccessor","boundTag","referencedName2","assignmentTarget","injectPendingExpressionsCommon","createDescriptorMethod","namedFunction","classSuper2","createSymbolMetadataReference","defineProperty","enclosingSuperContainerFlags","enclosingFunctionParameterNames","capturedSuperProperties","hasSuperElementAccess","lexicalArgumentsBinding","substitutedSuperAccessors","inTopLevelContext","inHasLexicalThisContext","doWithContext","visitDefault","argumentsVisitor","visitAwaitExpression","asyncBodyVisitor","visitVariableStatementInAsyncBody","visitForStatementInAsyncBody","visitForInStatementInAsyncBody","visitForOfStatementInAsyncBody","visitCatchClauseInAsyncBody","catchClauseNames","recordDeclarationName","catchClauseUnshadowedNames","savedEnclosingFunctionParameterNames","isVariableDeclarationListWithCollidingName","visitVariableDeclarationListWithCollidingNames","savedLexicalArgumentsBinding","transformMethodBody","transformAsyncFunctionParameterList","transformAsyncFunctionBody","collidesWithParameterName","hasReceiver","hoistVariableDeclarationList","hoistVariable","converted","savedCapturedSuperProperties","savedHasSuperElementAccess","originalMethod","enableSubstitutionForAsyncMethodsWithSuper","createCaptureArgumentsStatement","newParameters","newParameter","newParametersArray","outerParameters","innerParameters","getPromiseConstructor","isArrowFunction2","captureLexicalArguments","parameterBindings","originalParameter","outerParameter","asyncBody","transformAsyncFunctionBodyWorker","emitSuperHelpers","serializationKind","isSuperContainer","superContainerFlags","savedEnclosingSuperContainerFlags","substituteCallExpression","createSuperElementAccessInAsyncMethod","hasBinding","getterAndSetter","exportedVariableStatement","enclosingFunctionFlags","parametersWithPrecedingObjectRestOrSpread","hierarchyFacts","taggedTemplateStringDeclarations","affectsSubtree","excludeFacts","includeFacts","enterSubtree","ancestorFacts","exitSubtree","visitorWithUnusedExpressionResult","visitorNoAsyncModifier","doWithHierarchyFacts","expressionResultIsUnused2","visitYieldExpression","visitReturnStatement","visitLabeledStatement","visitCatchClause","visitForOfStatement","visitVoidExpression","createDownlevelAwait","chunkObjectLiteralElements","chunkObject","objects","updatedDecl","visitedBindings","savedExportedVariableStatement","visitVariableDeclarationWorker","exportedVariableStatement2","transformForOfStatementWithObjectRest","transformForAwaitOfStatement","initializerWithoutParens","bodyLocation","convertForOfStatementHead","nonUserCode","iteratorValueExpression","iteratorValueStatement","exitNonUserCodeExpression","exitNonUserCodeStatement","errorRecord","catchVariable","returnMethod","callValues","callNext","getDone","callReturn","parameterVisitor","collectParametersWithPrecedingObjectRestOrSpread","savedEnclosingFunctionFlags","savedParametersWithPrecedingObjectRestOrSpread","transformFunctionBody2","transformAsyncGeneratorFunctionParameterList","transformAsyncGeneratorFunctionBody","outerStatements","appendObjectRestAssignmentsIfNeeded","leadingStatements","containsPrecedingObjectRestOrSpread","typeCheck","visitNonOptionalCallExpression","visitOptionalExpression","transformNullishCoalescingExpression","visitDeleteExpression","flattenChain","visitNonOptionalParenthesizedExpression","captureThisArg","isDelete","visitNonOptionalExpression","visitNonOptionalPropertyOrElementAccessExpression","leftThisArg","capturedLeft","leftExpression","rightExpression","createNotNullCondition","invert","transformLogicalAssignment","nonAssignmentOperator","propertyAccessTargetSimpleCopiable","propertyAccessTarget","propertyAccessTargetAssignment","elementAccessArgumentSimpleCopiable","elementAccessArgument","exportBindings","exportVars","defaultExportBinding","exportEqualsBinding","visitBlock","visitSwitchStatement","usingKind","getUsingKindOfStatements","prologueCount","countPrologueStatements","topLevelStatements","getUsingKind","createEnvBinding","bodyStatements","transformUsingDeclarations","createDownlevelUsingStatements","isUsingVariableDeclarationList","forInitializer","forDecl","isAwaitUsing","getUsingKindOfVariableDeclarationList","usingVar","usingVarList","usingVarStatement","visitCaseOrDefaultClause","getUsingKindOfCaseOrDefaultClauses","varList","hoistOrAppendNode","hoist","hoistImportOrExportOrHoistedDeclaration","hoistExportAssignment","hoistClassDeclaration","hoistVariableStatement","hoistExportEquals","hoistExportDefault","hoistBindingIdentifier","isExported2","hoistBindingElement","hoistInitializedVariable","isExportedDeclaration","exportAlias","envObject","envVarList","envVarStatement","bodyCatchBinding","tryStatement","getUsingKindOfVariableStatement","currentFileState","getCurrentFileNameExpression","getJsxFactoryCalleePrimitive","isStaticChildren","getJsxFactoryCallee","getImplicitImportForName","getImplicitJsxFragmentReference","importSource","specifierSourceImports","importSpecifiersMap","importStatement","requireStatement","visitJsxElement","visitJsxFragment","visitJsxExpression","transformJsxChildToExpression","visitJsxText","hasProto","hasKeyAfterPropsSpread","shouldUseCreateElement","isChild","visitJsxOpeningLikeElementCreateElement","visitJsxOpeningLikeElementJSX","visitJsxOpeningFragmentCreateElement","visitJsxOpeningFragmentJSX","convertJsxChildrenToChildrenPropObject","convertJsxChildrenToChildrenPropAssignment","nonWhitespaceChildren","getTagName","childrenProp","keyAttr","attrs","objectProperties","transformJsxAttributesToObjectProps","visitJsxOpeningLikeElementOrFragmentJSX","transformJsxAttributeInitializer","originalFile","lineCol","childrenProps","transformJsxSpreadAttributeToProps","transformJsxAttributesToProps","transformJsxAttributesToExpression","attrs2","transformJsxAttributeToObjectLiteralElement","finishObjectLiteralIfNeeded","getAttributeName","tryDecodeEntities","fixed","fixupWhitespaceAndDecodeEntities","lastNonWhitespace","addLineOfJsxText","trimmedLine","decoded","decodeEntities","_all","_number","_digits","decimal","hex","word","entities","visitExponentiationAssignmentExpression","visitExponentiationExpression","expressionTemp","argumentExpressionTemp","createSpreadSegment","currentText","convertedLoopState","isReturnVoidStatementInConstructorWithCapturedSuper","isOrMayContainReturnCompletion","shouldConvertIterationStatement","classWrapperStatementVisitor","callExpressionVisitor","visitSuperKeyword","visitIdentifier","visitVariableDeclarationList","visitCaseBlock","visitBreakOrContinueStatement","visitDoOrWhileStatement","visitForInStatement","visitShorthandPropertyAssignment","visitArrayLiteralExpression","visitTemplateLiteral","visitStringLiteral","visitNumericLiteral","visitTemplateExpression","visitSpreadElement","visitThisKeyword","visitMetaProperty","visitAccessorDeclaration","insertCaptureThisForNodeIfNeeded","savedAllowedNonLabeledJumps","returnCapturedThis","createCapturedThis","jump","labelMarker","setLabeledJump","outParams","copyExpr","copyOutParameter","transformClassLikeDeclarationToExpression","enableSubstitutionsForBlockScopedBindings","classFunction","createSyntheticSuper","transformClassBody","constructorLikeName","addExtendsHelperIfNeeded","addConstructor","addClassMembers","savedConvertedLoopState","hasSynthesizedSuper","hasSynthesizedDefaultSuperCall","transformConstructorParameters","createDefaultConstructorBody","createDefaultSuperCallOrThis","statementsArray","isUninitializedVariableStatement","containsSuperCall","named","standardPrologueEnd","mayReplaceThis","addDefaultValueAssignmentsIfNeeded2","addRestParameterIfNeeded","insertCaptureNewTargetIfNeeded","insertCaptureThisForNode","createActualThis","isSufficientlyCoveredByReturnStatements","simplifyConstructor","isCapturedThis","isSyntheticSuper","isThisCapturingVariableStatement","isThisCapturingVariableDeclaration","isThisCapturingAssignment","isTransformedSuperCall","isTransformedSuperCallWithFallback","isImplicitSuperCall","isImplicitSuperCallWithFallback","isThisCapturingTransformedSuperCallWithFallback","isThisCapturingImplicitSuperCallWithFallback","isTransformedSuperCallLike","simplifyConstructorInlineSuperInThisCaptureVariable","thisCaptureStatementIndex","superCallIndex","statement2","following","newVarDecl","newDeclList","newVarStatement","newStatements","simplifyConstructorInlineSuperReturn","canElideThisCapturingVariable","preceding","newReturnStatement","elideUnusedThisCaptureWorker","simplifyConstructorElideUnusedThisCapture","injectSuperPresenceCheckWorker","complicateConstructorInjectSuperPresenceCheck","inputBody","ifStatement","lastStatement","hasDefaultValueOrBindingPattern","added","insertDefaultValueAssignmentForBindingPattern","insertDefaultValueAssignmentForInitializer","shouldAddRestParameter","inConstructorWithSynthesizedSuper","prologueStatements","expressionName","enableSubstitutionsForCapturedThis","captureThisStatement","newTarget","captureNewTargetStatement","transformSemicolonClassElementToStatement","transformClassMethodDeclarationToStatement","transformAccessorsToStatement","memberFunction","transformFunctionLikeToExpression","transformAccessorsToExpression","visitedAccessorName","getterFunction","setterFunction","closeBraceLocation","isFunctionBody2","isVariableStatementOfTypeScriptClassWrapper","hoistVariableDeclarationDeclaredInConvertedLoop","visitVariableDeclarationInLetDeclarationList","getRangeUnion","shouldEmitExplicitInitializerForLetDeclaration","isCapturedInFunction","recordLabel","resetLabel","visitIterationStatement","visitIterationStatementWithFacts","convert","convertIterationStatementBodyIfNecessary","visitEachChildOfForStatement2","convertForOfStatementForIterable","convertForOfStatementForArray","convertedLoopBodyStatements","firstOriginalDeclaration","createSyntheticBlockForConvertedStatements","rhsReference","numInitialProperties","hasComputed","addObjectLiteralMembers","shouldConvertPartOfIterationStatement","shouldConvertInitializerOfForStatement","shouldConvertConditionOfForStatement","shouldConvertIncrementorOfForStatement","shouldConvertBodyOfIterationStatement","saveAllowedNonLabeledJumps","createConvertedLoopState","outerConvertedLoopState","initializerFunction","createFunctionForInitializerOfForStatement","bodyFunction","createFunctionForBodyOfIterationStatement","addExtraDeclarationsForConvertedLoop","generateCallToConvertedLoopInitializer","convertIterationStatementCore","convertedLoopBody","convertForStatement","convertForInStatement","convertForOfStatement","convertDoStatement","convertWhileStatement","shouldConvertCondition","shouldConvertIncrementor","loopInitializer","loopParameters","loopOutParameters","hasCapturedBindingsInForHead","processLoopVariableDeclaration","extraVariableDeclarations","outParam","createOutVariable","containsYield","copyOutParameters","functionDeclaration","loopBody","generateCallToConvertedLoop","copyDirection","partFlags","initFunctionExpressionName","callResult","loopFunctionExpressionName","isSimpleLoop","loopResultName","stateVariable","caseClauses","processLabeledJumps","isBreak","labelText","outerLoop","needsOutParam","outParamName","numProperties","transformObjectLiteralMethodDeclarationToExpression","transformPropertyAssignmentToExpression","transformShorthandPropertyAssignmentToExpression","newVariableDeclaration","vars","destructure","addStatementToStartOfBlock","transformedStatements","functionExpression","transformAndSpreadElements","visitTypeScriptClassWrapper","visitCallExpressionWithPotentialCapturedThisAssignment","isVariableStatementWithInitializer","stmt","classStatements","remainingStatements","aliasAssignment","funcStatements","classBodyStart","classBodyEnd","extendsCall","assignToCapturedThis","resultingCall","isArgumentList","partitionSpread","partition","visitPartition","_start","startsWithSpread","visitSpanOfSpreads","visitSpanOfNonSpreads","chunk","visitExpressionOfSpread","isCallToReadHelper","isExpressionOfCall","substituteIdentifier","isNameOfDeclarationWithCollidingName","substituteThisKeyword","isPartOfClassBody","blockScope","hasExtendsClause","statementExpression","callArgument","getInstructionName","instruction","hoistFunctionDeclaration","renamedCatchVariables","renamedCatchVariableDeclarations","inGeneratorFunctionBody","inStatementContainingYield","blocks","blockOffsets","blockActions","blockStack","labelOffsets","labelExpressions","nextLabelId","operations","operationArguments","operationLocations","blockIndex","labelNumber","labelNumbers","lastOperationWasAbrupt","lastOperationWasCompletion","exceptionBlockStack","currentExceptionBlock","withBlockStack","visitJavaScriptInStatementContainingYield","visitJavaScriptInGeneratorFunctionBody","visitGenerator","visitDoStatement","visitWhileStatement","visitBreakStatement","visitContinueStatement","visitJavaScriptContainingYield","visitConditionalExpression","transformGeneratorFunctionBody","savedInGeneratorFunctionBody","savedInStatementContainingYield","savedBlocks","savedBlockOffsets","savedBlockActions","savedBlockStack","savedLabelOffsets","savedLabelExpressions","savedNextLabelId","savedOperations","savedOperationArguments","savedOperationLocations","savedState","transformAndEmitStatements","buildResult","transformAndEmitVariableDeclarationList","assoc","visitLeftAssociativeBinaryExpression","visitRightAssociativeBinaryExpression","cacheExpression","visitLogicalBinaryExpression","visitCommaExpression","emitWorker","resultLabel","defineLabel","resultLocal","declareLocal","emitBreakWhenFalse","emitBreakWhenTrue","markLabel","whenFalseLabel","emitBreak","resumeLabel","emitYieldStar","emitYield","createGeneratorResume","visitElements","leadingElement","numInitialElements","countInitialNodesWithoutYield","initialElements","reduceElement","expressions2","hasAssignedTemp","reduceProperty","emitStatement","transformAndEmitStatement","transformAndEmitEmbeddedStatement","transformAndEmitStatementWorker","transformAndEmitBlock","transformAndEmitExpressionStatement","transformAndEmitIfStatement","transformAndEmitDoStatement","transformAndEmitWhileStatement","transformAndEmitForStatement","transformAndEmitForInStatement","transformAndEmitContinueStatement","transformAndEmitBreakStatement","transformAndEmitReturnStatement","transformAndEmitWithStatement","transformAndEmitSwitchStatement","transformAndEmitLabeledStatement","transformAndEmitThrowStatement","transformAndEmitTryStatement","numVariables","variablesWritten","endLabel","conditionLabel","loopLabel","beginLoopBlock","endLoopBlock","beginScriptLoopBlock","incrementLabel","keysArray","keysIndex","endLoopLabel","variable2","findContinueTarget","createInlineBreak","findBreakTarget","emitReturn","createInlineReturn","beginWithBlock","endWithBlock","numClauses","beginSwitchBlock","clauseLabels","defaultClauseIndex","clausesWritten","pendingClauses","defaultClausesSkipped","endSwitchBlock","beginScriptSwitchBlock","beginLabeledBlock","endLabeledBlock","beginScriptLabeledBlock","emitThrow","beginExceptionBlock","beginCatchBlock","beginFinallyBlock","endExceptionBlock","numNodes","beginBlock","endBlock","peekBlock","peekBlockKind","startLabel","emitNop","exception","catchLabel","emitEndfinally","continueLabel","breakLabel","supportsUnlabeledBreak","supportsLabeledBreakOrContinue","supportsUnlabeledContinue","hasImmediateContainingLabeledBlock","containingBlock","createLabel","createInstruction","operationIndex","buildStatements","writeOperation","flushFinalLabel","labelExpression","flushLabel","appendLabel","isFinalLabelReachable","tryEnterLabel","writeReturn","updateLabelExpressions","markLabelEnd","withBlock","labelNumber2","labels","tryEnterOrLeaveBlock","blockAction","opcode","writeEndfinally","writeStatement","writeAssign","writeBreak","writeBreakWhenTrue","writeBreakWhenFalse","writeYield","writeYieldStar","writeThrow","operationLocation","getTransformModuleDelegate","moduleKind2","transformAMDModule","transformUMDModule","transformCommonJSModule","moduleInfoMap","currentModuleInfo","importsAndRequiresToRewriteOrShim","needUMDDynamicImportHelper","shouldEmitUnderscoreUnderscoreESModule","topLevelVisitor","createUnderscoreUnderscoreESModule","nextId","appendExportsOfHoistedDeclaration","addExportEqualsIfNeeded","define","aliasedModuleNames","unaliasedModuleNames","importAliasNames","collectAsynchronousDependencies","transformAsynchronousModuleBody","umdHeader","includeNonAmdDependencies","amdDependency","externalModuleName","importAliasName","getAMDImportExpressionForImport","getHelperExpressionForImport","dynamicImportUMDHelper","emitAsReturn","expressionResult","visitTopLevelImportDeclaration","visitTopLevelImportEqualsDeclaration","visitTopLevelExportDeclaration","visitTopLevelExportAssignment","topLevelNestedVisitor","visitWithStatement","visitIfStatement","visitCaseClause","visitDefaultClause","visitTryStatement","valueIsDiscarded","needsRewrite","visitImportCallExpression","shimOrRewriteImportOrRequireCall","visitDestructuringAssignment","destructuringNeedsFlattening","getExports","createAllExportExpressions","exportStatements","appendExportsOfVariableDeclarationList","mergedBody","createExportExpression","rewriteOrShim","firstArgument","containsLexicalThis","createImportCallExpressionAMD","createImportCallExpressionUMD","createImportCallExpressionCommonJS","argClone","resolve","reject","promise","isInlineable","needSyncEval","promiseResolveCall","requireCall","getHelperExpressionForExport","innerExpr","createRequireCall2","appendExportsOfImportDeclaration","appendExportsOfImportEqualsDeclaration","specifierName","exportedValue","createExportStatement","removeCommentsOnExpressions","updatedVariable","appendExportsOfVariableStatement","appendExportsOfDeclaration","importBinding","isForInOrOfInitializer","appendExportsOfBindingElement","appendExportStatement","liveBinding","exportSpecifier","exportedOrImportedName","substituteTaggedTemplateExpression","substituteBinaryExpression","exportContainer","bindingsSet","exportFunctionsMap","noSubstitutionMap","contextObjectMap","moduleInfo","exportFunction","contextObject","hoistedStatements","enclosingBlockScopedContainer","dependencyGroups","collectDependencyGroups","moduleBodyBlock","createSystemModuleBody","moduleBodyFunction","dependencies","dependencyGroup","groupIndices","externalImport","groupIndex","executeStatements","exportStarFunction","addExportStarIfNeeded","moduleObject","createSettersArray","hasExportDeclarationWithExportClause","exportStarFunction2","createExportStarFunction","exportedLocalName","exportedNamesStorageRef","localNames","setters","importVariableName","shouldHoistVariableDeclarationList","createAssignment","createExportedVariableAssignment","createNonExportedVariableAssignment","createVariableAssignment","preventSubstitution","exportSelf","excludeName","savedEnclosingBlockScopedContainer","visitForInitializer","shouldHoistForInitializer","visitPrefixOrPostfixUnaryExpression","hasExportedReferenceInDestructuringTarget","isSubstitutionPrevented","substituteUnspecified","importedName","substituteMetaProperty","getReferencedDeclaration","exportedNames2","helperNameSubstitutions","importRequireStatements","updateExternalModule","visitImportOrRequireCall","updatedModuleSpecifier","createRequireName","requireHelperName","oldIdentifier","synthName","substituteHelperName","substitution","esmTransform","esmOnSubstituteNode","esmOnEmitNode","cjsTransform","cjsOnSubstituteNode","cjsOnEmitNode","getEmitModuleFormatOfFile2","getModuleTransformForFile","getAccessorNameVisibilityError","getMethodNameVisibilityError","symbolAccessibilityResult","getAccessorNameVisibilityDiagnosticMessage","getMethodNameVisibilityDiagnosticMessage","getVariableDeclarationTypeVisibilityError","getAccessorDeclarationTypeVisibilityError","getReturnTypeVisibilityError","getParameterDeclarationTypeVisibilityError","getTypeParameterConstraintVisibilityError","getHeritageClauseVisibilityError","getImportEntityNameVisibilityError","getTypeAliasDeclarationVisibilityError","getVariableDeclarationTypeVisibilityDiagnosticMessage","getParameterDeclarationTypeVisibilityDiagnosticMessage","relatedSuggestionByDeclarationKind","errorByDeclarationKind","getDiagnostic2","createEntityInTypeNodeError","createAccessorTypeError","createObjectLiteralError","createArrayLiteralError","createReturnTypeError","createBindingElementError","createVariableOrPropertyError","createParameterError","createExpressionError","createClassExpressionError","findNearestDeclaration","addParentDeclarationRelatedInfo","parentDeclaration","targetStr","declarationEmitNodeBuilderFlags","declarationEmitInternalNodeBuilderFlags","throwDiagnostic","getSymbolAccessibilityDiagnostic","needsDeclare","isBundledEmit","resultHasExternalModuleIndicator","needsScopeFixMarker","resultHasScopeMarker","lateMarkedStatements","lateStatementReplacementMap","suppressNewDiagnosticContexts","restoreFallbackNode","symbolTracker","trackSymbol","reportInaccessibleThisError","reportInaccessibleUniqueSymbolError","reportCyclicStructureError","reportPrivateInBaseOfClassExpression","reportLikelyUnsafeImportRequiredError","reportTruncationError","reportNonlocalAugmentation","reportNonSerializableProperty","reportInferenceFallback","currentFallback","errorFallbackNode","currentRestore","errorNameNode","rawReferencedFiles","rawTypeReferenceDirectives","rawLibReferenceDirectives","getIsolatedDeclarationError","stripInternal","isolatedDeclarations","transformRoot","reportExpandoFunctionErrors","handleSymbolAccessibilityError","errorDeclarationNameWithFallback","primaryDeclaration","augmentingDeclarations","transformDeclarationsForJS","oldDiag","bundle","collectFileReferences","visitDeclarationStatements","transformAndReplaceLatePaintedStatements","outputFilePath2","getReferencedFiles","getTypeReferences","getLibReferences","combinedStatements","outputFilePath","copyFileReferenceAsSynthetic","declFileName","filterBindingPatternInitializers","checkEntityNameVisibility","ensureParameter","modifierMask","maskModifiers","ensureType","ensureNoInitializer","shouldPrintWithInitializer","canHaveLiteralInitializer","unwrappedInitializer","ignorePrivate","visitDeclarationSubtree","oldErrorNameNode","isDeclarationAndNotVisible","getBindingNameVisible","shouldEmitFunctionProperties","overloadSignatures","updateParamsList","newParams","updateAccessorParamsList","newValueParameter","valueParameter","ensureTypeParams","isEnclosingDeclaration","visibilityResult","preserveJsDoc","rewriteModuleSpecifier2","transformImportEqualsDeclaration","transformImportDeclaration","tryGetResolutionModeOverride","visibleDefaultBinding","bindingList","priorNeedsDeclare","transformTopLevelDeclaration","visitLateVisibilityMarkedStatements","shouldStripInternal","previousEnclosingDeclaration","canProduceDiagnostic","oldWithinObjectLiteralType","shouldEnterSuppressNewDiagnosticsContextContext","ensureModifiers","isProcessedComponent","recreateBindingPattern","isPrivateMethodTypeParameter","checkName","isPreservedDeclarationStatement","newId","stripExportModifiers","updateModuleDeclarationAndKeyword","canProdiceDiagnostic","previousNeedsDeclare","clean2","transformHeritageClauses","exportMappings","isNonContextualKeywordName","gen","exp","namespaceDecl","cleanDeclaration","exportDefaultDeclaration","oldNeedsScopeFix","oldHasScopeFix","lateStatements","hasScopeMarker2","oldDiag2","walkBindingPattern","elems","privateIdentifier","lateIndexes","memberNodes","oldId","newClause","transformVariableStatement","constValue","newInitializer","declList","recreateBindingElement","isScopeMarker2","currentFlags","ensureModifierFlags","additions","isAlwaysType","parentIsFile","maskModifierFlags","modifierAdditions","getModuleTransformer","customTransformers","emitOnly","getScriptTransformers","getDeclarationTransformers","transformers","wrapScriptTransformerFactory","wrapDeclarationTransformerFactory","wrapCustomTransformer","transformer","wrapCustomTransformerFactory","handleDefault","customTransformer","_hint","allowDtsFiles","enabledSyntaxKindFeatures","lexicalEnvironmentVariableDeclarations","lexicalEnvironmentFunctionDeclarations","lexicalEnvironmentStatements","lexicalEnvironmentFlags","lexicalEnvironmentVariableDeclarationsStack","lexicalEnvironmentFunctionDeclarationsStack","lexicalEnvironmentStatementsStack","lexicalEnvironmentFlagsStack","lexicalEnvironmentStackOffset","lexicalEnvironmentSuspended","blockScopedVariableDeclarationsStack","blockScopeStackOffset","blockScopedVariableDeclarations","suspendLexicalEnvironment","setLexicalEnvironmentFlags","getLexicalEnvironmentFlags","addInitializationStatement","startBlockScope","endBlockScope","requestEmitHelper","readEmitHelpers","enableSubstitution","enableEmitNotification","isSubstitutionEnabled","isEmitNotificationEnabled","transformersWithContext","transformation","substituteNode","emitNodeWithNotification","dispose","h","brackets","createBracketsMap","sourceFilesOrTargetSourceFile","onlyBuildInfo","includeBuildInfo","buildInfoPath","canEmitTsBuildInfo","outPath","buildInfoExtensionLess","configFileExtensionLess","getOutputPathsForBundle","forceDtsPaths","jsFilePath","sourceMapFilePath","getSourceMapFilePath","declarationFilePath","declarationMapPath","ownOutputFilePath","isJsonFile","isJsonEmittedToSameLocation","getOutputPathWithoutChangingExt","inputFileName","getOutputJSFileName","outputFileName","createAddOutput","outputs","addOutput","getOutputs","getSingleOutputFileNames","getOwnOutputFileNames","js","dts","emittedFiles","checkSourceFilesBelongToPath","scriptTransformers","declarationTransformers","skipBuildInfo","sourceMapDataList","emittedFilesList","emitterDiagnostics","emitSkipped","emitSourceFileOrBundle","sourceFileOrBundle","emitJsFileOrBundle","emitDeclarationFileOrBundle","emitBuildInfo","buildInfo","printerOptions","printSourceFileOrBundle","filesForEmit","inputListOrBundle","declarationTransform","declBlocked","declarationPrinter","dtsWritten","mapOptions","sourceMapGenerator","shouldEmitSourceMaps","getSourceRoot","getSourceMapDirectory","sourceMapUrlPos","sourceMappingURL","getSourceMappingURL","sourceMap","sourceMapDir","sourceMapText","sourceMapFile","buildInfoFile","buildInfoText","handlers","onBeforeEmitNode","onAfterEmitNode","onBeforeEmitNodeArray","onAfterEmitNodeArray","onBeforeEmitToken","onAfterEmitToken","extendedDiagnostics","omitBraceSourcePositions","bundledHelpers","nodeIdToGeneratedName","nodeIdToGeneratedPrivateName","autoGeneratedIdToGeneratedName","generatedNames","formattedNameTempFlagsStack","formattedNameTempFlags","privateNameTempFlagsStack","privateNameTempFlags","tempFlagsStack","tempFlags","reservedNamesStack","reservedNames","reservedPrivateNamesStack","reservedPrivateNames","preserveSourceNewlines","nextListElementPos","ownWriter","writeBase","isOwnFileEmit","sourceMapsDisabled","sourceMapSource","sourceMapSourceIndex","mostRecentlyAddedSourceMapSource","mostRecentlyAddedSourceMapSourceIndex","containerPos","containerEnd","declarationListContainerEnd","currentLineMap","detachedCommentsInfo","hasWrittenComment","commentsDisabled","lastSubstitution","currentParenthesizerRule","enterComment","exitComment","parenthesizer","typeArgumentParenthesizerRuleSelector","emitBinaryExpression","createEmitBinaryExpression","printNode","printList","printFile","printBundle","writeNode","writeList","writeBundle","beginPrint","endPrint","previousWriter","setWriter","print","setSourceFile","emitList","sourceMapGenerator2","emitShebangIfNeeded","emitPrologueDirectivesIfNeeded","emitSyntheticTripleSlashReferencesIfNeeded","pipelineEmit","setSourceMapSource","_writer","_sourceMapGenerator","getCurrentLineMap","emitIdentifierName","emitJsxAttributeValue","beforeEmitNode","afterEmitNode","savedPreserveSourceNewlines","emitHint","getPipelinePhase","shouldEmitComments","pipelineEmitWithNotification","pipelineEmitWithSubstitution","pipelineEmitWithComments","pipelineEmitWithSourceMaps","pipelineEmitWithHint","getNextPipelinePhase","currentPhase","pipelinePhase","pipelineEmitWithHintWorker","allowSnippets","emitSnippetNode","emitSourceFile","emitIdentifier","emitLiteral","emitMappedTypeParameter","emitImportTypeNodeAttributes","emitEmptyStatement","emitPrivateIdentifier","emitQualifiedName","emitComputedPropertyName","emitTypeParameter","emitParameter","emitDecorator","emitPropertySignature","emitPropertyDeclaration","emitMethodSignature","emitMethodDeclaration","emitClassStaticBlockDeclaration","emitConstructor","emitAccessorDeclaration","emitCallSignature","emitConstructSignature","emitIndexSignature","emitTypePredicate","emitTypeReference","emitFunctionType","emitConstructorType","emitTypeQuery","emitTypeLiteral","emitArrayType","emitTupleType","emitOptionalType","emitUnionType","emitIntersectionType","emitConditionalType","emitInferType","emitParenthesizedType","emitExpressionWithTypeArguments","emitThisType","emitTypeOperator","emitIndexedAccessType","emitMappedType","emitLiteralType","emitNamedTupleMember","emitTemplateType","emitTemplateTypeSpan","emitImportTypeNode","emitObjectBindingPattern","emitArrayBindingPattern","emitBindingElement","emitTemplateSpan","emitSemicolonClassElement","emitBlock","emitVariableStatement","emitExpressionStatement","emitIfStatement","emitDoStatement","emitWhileStatement","emitForStatement","emitForInStatement","emitForOfStatement","emitContinueStatement","emitBreakStatement","emitReturnStatement","emitWithStatement","emitSwitchStatement","emitLabeledStatement","emitThrowStatement","emitTryStatement","emitDebuggerStatement","emitVariableDeclaration","emitVariableDeclarationList","emitFunctionDeclaration","emitClassDeclaration","emitInterfaceDeclaration","emitTypeAliasDeclaration","emitEnumDeclaration","emitModuleDeclaration","emitModuleBlock","emitCaseBlock","emitNamespaceExportDeclaration","emitImportEqualsDeclaration","emitImportDeclaration","emitImportClause","emitNamespaceImport","emitNamespaceExport","emitNamedImports","emitImportSpecifier","emitExportAssignment","emitExportDeclaration","emitNamedExports","emitExportSpecifier","emitImportAttributes","emitImportAttribute","emitExternalModuleReference","emitJsxText","emitJsxOpeningElementOrFragment","emitJsxClosingElementOrFragment","emitJsxAttribute","emitJsxAttributes","emitJsxSpreadAttribute","emitJsxExpression","emitJsxNamespacedName","emitCaseClause","emitDefaultClause","emitHeritageClause","emitCatchClause","emitPropertyAssignment","emitShorthandPropertyAssignment","emitSpreadAssignment","emitEnumMember","emitJSDocTypeExpression","emitJSDocNameReference","writePunctuation","emitJSDocNullableType","emitJSDocNonNullableType","emitJSDocOptionalType","emitJSDocFunctionType","emitRestOrJSDocVariadicType","emitJSDoc","emitJSDocTypeLiteral","emitJSDocSignature","emitJSDocSimpleTag","emitJSDocHeritageTag","emitJSDocCallbackTag","emitJSDocOverloadTag","emitJSDocPropertyLikeTag","emitJSDocSimpleTypedTag","emitJSDocTemplateTag","emitJSDocTypedefTag","emitJSDocSeeTag","emitJSDocImportTag","emitNumericOrBigIntLiteral","emitArrayLiteralExpression","emitObjectLiteralExpression","emitPropertyAccessExpression","emitElementAccessExpression","emitCallExpression","emitNewExpression","emitTaggedTemplateExpression","emitTypeAssertionExpression","emitParenthesizedExpression","emitFunctionExpression","emitArrowFunction","emitDeleteExpression","emitTypeOfExpression","emitVoidExpression","emitAwaitExpression","emitPrefixUnaryExpression","emitPostfixUnaryExpression","emitConditionalExpression","emitTemplateExpression","emitYieldExpression","emitSpreadElement","emitClassExpression","emitAsExpression","emitNonNullExpression","emitSatisfiesExpression","emitMetaProperty","emitJsxElement","emitJsxSelfClosingElement","emitJsxFragment","emitPartiallyEmittedExpression","emitCommaList","writeTokenNode","writeKeyword","writeSpace","helpersEmitted","shouldSkip","shouldBundle","getSortedEmitHelpers","writeLines","makeFileLevelOptimisticUniqueName","jsxAttributeEscape","getLiteralTextOfNode","writeStringLiteral","emitPlaceholder","emitTabStop","nonEscapingWrite","writeSymbol","getTextOfNode2","emitEntityName","emitModifierList","writeOperator","emitDecoratorsAndModifiers","emitNodeWithWriter","writeParameter","emitTypeAnnotation","emitInitializer","writeProperty","writeTrailingSemicolon","emitSignatureAndBody","emitSignatureHead","emitEmptyFunctionBody","emitFunctionBody","pushNameGenerationScope","emitBlockFunctionBody","popNameGenerationScope","emitTokenWithComment","emitParametersForIndexSignature","emitTypeArguments","emitFunctionTypeHead","emitFunctionTypeBody","emitTypeParameters","emitParametersForArrow","emitParameters","generateMemberNames","writeTokenText","increaseIndent","decreaseIndent","preferNewLine","emitExpressionList","indentedFlag","allowTrailingComma","linesBeforeDot","getLinesBetweenNodes","linesAfterDot","writeLinesAndIndent","mayNeedDotDotForPropertyAccess","decreaseIndentIf","indirectCall","openParenPos","indented","writeLineSeparatorsAndIndentBefore","writeLineSeparatorsAfter","generateNameIfNeeded","emitFunctionDeclarationOrExpression","emitArrowFunctionHead","emitArrowFunctionBody","shouldEmitWhitespaceBeforeOperand","emitComments2","emitSourceMaps","emitCommentsBeforeNode","emitSourceMapsBeforeNode","_workArea","maybeEmitExpression","isCommaOperator","linesBeforeOperator","linesAfterOperator","emitLeadingCommentsOfPosition","emitTrailingCommentsOfPosition","savedContainerPos","savedContainerEnd","savedDeclarationListContainerEnd","shouldEmitComments2","shouldEmitSourceMaps2","emitSourceMapsAfterNode","emitCommentsAfterNode","linesBeforeQuestion","linesAfterQuestion","linesBeforeColon","linesAfterColon","emitExpressionWithLeadingSpace","parenthesizeExpressionForNoAsi","parenthesizeExpressionForNoAsiAndDisallowedComma","emitClassDeclarationOrExpression","writeToken","emitBlockStatements","isEmptyBlock","forceSingleLine","isEmbeddedStatement","emitEmbeddedStatement","writeLineOrSpace","emitWhileClause","emitForBinding","emitWithTrailingSpace","emitWithLeadingSpace","indentLeading","isSimilarNode","needsIndent","isJsxExprContext","commentWillEmitNewLine","willEmitLeadingNewLine","parens","emitSignatureHead2","emitBody","generateNames","shouldEmitBlockFunctionBodyOnSingleLine","getLeadingLineTerminatorCount","getClosingLineTerminatorCount","previousStatement","getSeparatingLineTerminatorCount","emitBlockFunctionBody2","emitBlockFunctionBodyOnSingleLine","emitBlockFunctionBodyWorker","emitBodyWithDetachedComments","emitBlockFunctionBodyOnSingleLine2","emitPrologueDirectives","emitModuleReference","asPos","emitNamedImportsOrExports","emitImportOrExportSpecifier","fromPos","emitJsxTagName","emitNodeWithPrefix","hasTrailingCommentsAtPosition","hasLeadingCommentsAtPosition","hasCommentsAtPosition","isMultiline","emitCaseOrDefaultClauseRest","colonPos","emitAsSingleStatement","emitJSDocTagName","emitJSDocComment","emitSourceFileWorker","emitTripleSlashDirectives","emitTripleSlashDirectivesIfNeeded","libs2","writeDirectives","directives","seenPrologueDirectives","needsToSetSourceFile","savedWrite","emitDecoratorList","lastMode","emitNodeListItems","equalCommentStartPos","prefixWriter","emit2","canEmitSimpleArrowHead","writeDelimiter","emitNodeList","getOpeningBracket","getClosingBracket","childrenTextRange","mayEmitInterveningComments","shouldEmitInterveningComments","leadingLineTerminatorCount","emitListItem","getEmitListItem","shouldDecreaseIndentAfterEmit","separatingLineTerminatorCount","skipTrailingComments","emitTrailingComma","closingLineTerminatorCount","emitTokenWithSourceMap","tokenString","prevChildNode","nextChildNode","lineText","writeSpaceIfNotIndenting","value1","firstChild","getEffectiveLines","synthesizedNodeStartsOnNewLine","previousNode","siblingNodePositionsAreComparable","originalNodesHaveSameParent","getLineDifference","leadingNewlines","trailingNewlines","skipSynthesizedParentheses","canUseSourceFile","neverAsciiEscape","textSourceNode","reserveNameInNestedScopes","reservePrivateNameInNestedScopes","generateNameCached","makeName","generateNameForNode","isUniqueName","isFileLevelUniqueNameInCurrentFile","isReservedName","_isPrivate","isUniqueLocalName","getTempFlags","formattedNameKey","setTempFlags","makeTempVariableName","tempFlags2","makeUniqueName2","checkFn","optimistic","scoped","generateNameForModuleOrEnum","generateNameForImportOrExportDeclaration","generateNameForExportDefault","generateNameForClassExpression","generateNameForMethodOrAccessor","emitLeadingCommentsOfNode","emitTrailingCommentsOfNode","skipLeadingComments","emitLeadingComments","emitLeadingSynthesizedComment","emitTrailingSynthesizedComment","emitTrailingComments","writeSynthesizedComment","formatSynthesizedComment","detachedRange","emitDetachedCommentsAndUpdateCommentsInfo","nodeA","nodeB","parentNodeArray","prevNodeIndex","isEmittedNode","forEachLeadingCommentToEmit","emitNonTripleSlashLeadingComment","emitLeadingComment","emitTripleSlashLeadingComment","rangePos","isTripleSlashComment","shouldWriteComment","emitPos","forEachTrailingCommentToEmit","emitTrailingComment","_kind","prefixSpace","forceNoNewline","emitTrailingCommentOfPositionNoNewline","emitTrailingCommentOfPosition","hasDetachedComments","forEachLeadingCommentWithoutDetachedComments","emitComment","newLine2","emitSourcePos","skipSourceTrivia","isJsonSourceMapSource","savedSourceMapSource","savedSourceMapSourceIndex","resetSourceMapSource","brackets2","emitListItemNoParenthesizer","_parenthesizerRule","_index","emitListItemWithParenthesizerRuleSelector","parenthesizerRuleSelector","emitListItemWithParenthesizerRule","cachedReadDirectoryResult","encoding","addOrDeleteFileOrDirectory","addOrDeleteFile","clearCache","toPath3","getCachedFileSystemEntries","getCachedFileSystemEntriesForBaseDir","getBaseNameOfFileName","createCachedFileSystemEntries","resultFromHost","tryReadDirectory2","hasEntry","updateFilesOfFileSystemEntry","canonicalizedBaseName","canonicalizedDirectories","rootSymLinkResult","getFileSystemEntriesFromHost","clearFirstAncestorEntry","fileOrDirectoryPath","fsQueryResult","fileExists2","canonicalizedFiles","sortedIndex","unsortedIndex","ProgramUpdateLevel2","projectPath","extendedConfigFilesMap","createExtendedConfigFileWatch","extendedConfigs","extendedConfigFilePath","extendedConfigFileName","existing2","extendedFile","program","missingFileWatches","createMissingFileWatch","existingWatchedForWildcards","createWildcardDirectoryWatcher","updateWildcardDirectoryWatcher","existingWatcher","watchedDirPath","writeLog","getScriptKind2","newPath","isSupportedScriptKind","filePathWithoutExtension","realProgram","builderProgram","hasSourceFile","rootFile","WatchLogLevel2","watchLogLevel","getDetailWatchInfo2","plainInvokeFactory","triggerInvokingFactory","createTriggerLoggingAddWatch","createFileWatcherWithLogging","createDirectoryWatcherWithLogging","excludeWatcherFactory","createExcludeWatcherWithLogging","createExcludeHandlingAddWatch","detailInfo1","detailInfo2","getWatchInfo","watchInfo","watchInfo2","elapsed2","triggerredInfo","getDetailWatchInfo3","objWithWatcher","configName","referencedFileName","commonPathComponents","sourcePathComponents","actualWriteFile","existingDirectories","compilerHost","getDefaultLibLocation","getSourceFile","originalReadFile","originalFileExists","originalDirectoryExists","originalCreateDirectory","readFileCache","fileExistsCache","directoryExistsCache","sourceFileCache","readFileWithCache","setReadFileCache","getSourceFileWithCache","shouldCreateNewSourceFile","forImpliedNodeFormat","ForegroundColorEscapeSequences2","gutterStyleSequence","gutterSeparator","resetEscapeSequence","ellipsis","halfIndent","indent","getCategoryFormat","formatStyle","formatCodeSpan","squiggleColor","firstLine","firstLineChar","lastLine","lastLineChar","lastLineInFile","hasMoreThanFiveLines","gutterWidth","lineEnd","lineContent","lastCharForLine","color","messageText","kid","containingFileMode","getModeForUsageLocationWorker","getEmitSyntaxForUsageLocationWorker","exprParentParent","shouldTransformImportCallWorker","fileEmitMode","emptyResolution","getModuleResolutionName","getTypeReferenceResolutionName","typeReferenceResolutionNameAndModeGetter","typeRef","resoluionMode","containingSourceFile","resolutionCache","createLoader","resolutions","libFileName","importLiteral","rootFileNames","getSourceVersion","hasInvalidatedResolutions","hasInvalidatedLibResolutions","hasChangedAutomaticTypeDirectiveNames","getParsedCommandLine","projectReferenceUptoDate","sourceFileNotUptoDate","missingPaths","currentOptions","sourceFileVersionUptoDate","resolvedProjectReferenceUptoDate","oldResolvedRef","refPath2","newParsedCommandLine","childResolvedRef","refPath","configFileParseResult","shouldLookupFromPackageJson","lookupFromPackageJson","packageJsonLocations","packageJsonScope","plainJSErrors","shouldProgramCreateNewSourceFiles","createCreateProgramOptions","rootNames","oldProgram","configFileParsingDiagnostics","typeScriptVersion3","_rootNamesOrOptions","_options","_host","_oldProgram","_configFileParsingDiagnostics","_createProgramOptions","createProgramOptionsHost","reportInvalidIgnoreDeprecations","createOptionValueDiagnostic","processingDefaultLibFiles","processingOtherFiles","symlinks","typeChecker","filesWithReferencesProcessed","cachedBindAndCheckDiagnosticsForFile","cachedDeclarationDiagnosticsForFile","programDiagnostics","getCompilerOptionsObjectLiteralSyntax","automaticTypeDirectiveNames","automaticTypeDirectiveResolutions","resolvedLibReferences","resolvedLibProcessing","resolvedModules","resolvedModulesProcessing","resolvedTypeReferenceDirectiveNames","resolvedTypeReferenceDirectiveNamesProcessing","packageMap","maxNodeModuleJsDepth","currentNodeModulesDepth","modulesWithElidedImports","sourceFilesFoundSearchingNodeModules","configParsingHost","skipDefaultLib","getDefaultLibraryFileName","defaultLibraryPath","skipVerifyCompilerOptions","hasEmitBlockingDiagnostics","_compilerOptionsObjectLiteralSyntax","_compilerOptionsPropertySyntax","moduleResolutionCache","actualResolveModuleNamesWorker","moduleNames","reusedNames","actualResolveTypeReferenceDirectiveNamesWorker","typeDirectiveNames","typeReferenceDirectiveResolutionCache","actualResolveLibrary","libraryResolutionCache","packageIdToSourceFile","sourceFileToPackageName","redirectTargetsMap","usesUriStyleNodeCoreModules","filesByName","missingFileNames","filesByNameIgnoreCase","projectReferenceRedirects","mapSourceFileToResolvedRef","mapOutputFileToResolvedRef","useSourceOfProjectReferenceRedirect","onProgramCreateComplete","updateHostForUseSourceOfProjectReferenceRedirect","getSymlinkCache","getResolvedProjectReferences","getRedirectFromOutput","forEachResolvedProjectReference2","structureIsReused","tryReuseStructureFromOldProgram","parseProjectReferenceConfigFile","parsedRef","processProjectReferenceFile","getCommonSourceDirectory3","processRootFile","containingFilename","resolveTypeReferenceDirectiveNamesReusingOldState","processTypeReferenceDirective","defaultLibraryFileName","pathForLibFile","compareDefaultLibFiles","oldSourceFiles","newFile","getSourceFileByPath","resolvedProjectReference","getResolvedProjectReferenceByPath","oldReference","oldRefPath","getSyntacticDiagnostics","getOptionsDiagnostics","getSemanticDiagnostics","getCachedSemanticDiagnostics","getSuggestionDiagnostics","getDeclarationDiagnostics2","getBindAndCheckDiagnostics","getProgramDiagnostics","getTypeChecker","getClassifiableNames","isSourceFileFromExternalLibrary","isSourceFileDefaultLibrary","getModeForUsageLocation2","getEmitSyntaxForUsageLocation","getModeForResolutionAtIndex2","getSourceFileFromReference","getLibFileFromReference","getResolvedModule","getResolvedModuleFromModuleSpecifier","getResolvedTypeReferenceDirective","getResolvedTypeReferenceDirectiveFromTypeReferenceDirective","typesPackageExists","packageBundlesTypes","isEmittedFile","getConfigFileParsingDiagnostics2","getRedirectFromSourceFile","isSourceOfProjectReferenceRedirect","getCompilerOptionsForFile","getDefaultResolutionModeForFile2","getImpliedNodeFormatForEmit2","shouldTransformImportCall","verifyCompilerOptions","typeDirectiveName","getModeForTypeReferenceDirectiveInFile","forEachResolution","getPackagesMap","addResolutionDiagnostics","addResolutionDiagnosticsFromResolutionOrCache","containingFileName","containingDir","getRedirectReferenceForResolution","resolveModuleNamesWorker","resolveTypeReferenceDirectiveNamesWorker","resultFromDts","realDeclarationPath","getDefaultLibFilePriority","basename","commonSourceDirectory2","resolveModuleNamesReusingOldState","resolveNamesReusingOldState","nameAndModeGetter","resolutionWorker","getResolutionFromOldProgram","getResolved","canReuseResolutionsInFile","resolveToOwnAmbientModule","unknownEntries","unknownEntryIndices","reuseResolutions","oldResolved","canReuseProjectReferences","newResolvedRef","oldProjectReferences","newReferences","oldRootNames","newSourceFiles","modifiedSourceFiles","missingFileName","SeenPackageName","SeenPackageName2","seenPackageNames","sourceFileOptions","getCreateSourceFileOptions","prevKind","newKind","fileReferenceIsEqualTo","collectExternalModuleReferences","moduleNameIsEqualTo","getModuleNames","optionsForFile","typesReferenceDirectives","typeReferenceResolutions","pathForLibFileWorker","oldFile","isConfigIdentical","getEmitHost","writeFileCallback","isEmitBlocked","emitResult","resolvedLib","runWithCancellationToken","emitFileName","program2","typeChecker2","getDiagnosticsHelper","getSyntacticDiagnosticsForFile","getSemanticDiagnosticsForFile","getBindAndCheckDiagnosticsForFile","programDiagnosticsInFile","getDiagnosticsWithPrecedingDirectives","getDeclarationDiagnosticsForFile","getJSSyntacticDiagnosticsForFile","getBindAndCheckDiagnosticsForFileNoCache","isPlainJs","bindDiagnostics","checkDiagnostics","getMergedBindAndCheckDiagnostics","includeBindAndCheckDiagnostics","partialCheck","flatDiagnostics","errorExpectation","markPrecedingCommentDirectiveLine","walk","walkArray","interfaceKeyword","moduleKeyword","enumKeyword","decoratorIndex","exportIndex","trailingDecoratorIndex","createDiagnosticForNodeArray2","checkModifiers","isConstValid","getDeclarationDiagnosticsWorker","getDeclarationDiagnosticsForFileNoCache","getOptionsDiagnosticsOfConfigFile","isDefaultLib","ignoreNoDefaultLib","processSourceFile","createSyntheticImport","externalHelpersModuleReference","isExternalModuleFile","moduleAugmentations","ambientModules","jsxImport","collectModuleReferences","inAmbientModule","actualFileName","referencingFile","getSourceFileFromReferenceWorker","getSourceFile2","sourceFileNoExtension","sourceFileWithAddedExtension","findSourceFile","addFilePreprocessingFileExplainingDiagnostic","reportFileNamesDifferOnlyInCasingError","existingFile","redirectTarget","unredirected","originalFileName","findSourceFileWorker","moduleResolutionCache2","realPath2","addFileToFilesByName","addedReason","addFileIncludeReason","checkedName","checkedAbsolutePath","inputAbsolutePath","processReferencedFiles","processTypeReferenceDirectives","processLibReferenceDirectives","processImportedModules","redirectedPath","redirectProject","packageIdKey","fileFromPackageId","dupFile","pathLowerCase","checkExisting","updateFilesByNameMap","projectReferencePath","typeDirectives","resolutionsInFile","typeReferenceDirective","processTypeReferenceDirectiveWorker","_c2","_d2","_e2","libraryName2","resolveFrom2","isFromNodeModulesSearch","isJsFile","isJsFileFromNodeModules","elideImport","shouldAddFile","rootDirectory","allFilesBelongToPath","absoluteRootDirectoryPath","outDts","outputDts","createDiagnosticForOptionName","verifyDeprecatedCompilerOptions","verifyProjectReferences","rootPaths","createDiagnosticForOptionPaths","typeOfSubst","createDiagnosticForOptionPathKeyValue","firstNonAmbientExternalModuleSourceFile","moduleKindName","moduleResolutionName","emitHost","emitFilesSeen","emitFileNames","verifyEmitFilePath","emitFilePath","blockEmittingOfFile","emitFileKey","getIgnoreDeprecationsVersion","ignoreDeprecations","checkDeprecations","deprecatedIn","removedIn","deprecatedInVersion","removedInVersion","typescriptVersion","ignoreDeprecationsVersion","mustBeRemoved","canBeSilenced","useInstead","createDiagnosticForOption","createDeprecatedDiagnostic","verifyDeprecatedProjectReference","parentFile","_name","_useInstead","createDiagnosticForReference","fileProcessingReason","valueIndex","needCompilerDiagnostic","forEachOptionPathsSyntax","pathProp","keyProps","createCompilerOptionsDiagnostic","onKey","createOptionDiagnosticInObjectLiteralSyntax","option1","option3","referencesSyntax","compilerOptionsObjectLiteralSyntax","compilerOptionsProperty","getCompilerOptionsPropertySyntax","key1","needsCompilerDiagnostic","isSameFile","file1","setOfDeclarationDirectories","originalGetDirectories","originalRealpath","handleDirectoryCouldBeSymlink","fileOrDirectoryExistsUsingSource","fileExistsIfProjectReferenceDts","directoryExistsIfProjectReferenceDeclDir","dirPathWithTrailingDirectorySeparator","declDirPath","symlinkCache","isFile","fileOrDirectoryExistsUsingSource2","symlinkedDirectory","directoryStructureHost","needJsx","needAllowJs","needResolveJsonModule","needAllowArbitraryExtensions","aug","augIndex","computedDiagnostics","fileReasons","fileProcessingDiagnostics","configDiagnostics","lazyConfigDiagnostics","fileReasonsToChain","reasonToRelatedInfo","oldProgramDiagnostics","createDiagnosticExplainingFile","filePreprocessingLibreferenceDiagnostic","unqualifiedLibName","seenReasons","fileIncludeReasons","fileIncludeReasonDetails","reasons","locationReason","cachedChain","populateRelatedInfo","processReason","processedExtraReason","cachedFileIncludeDetailsHasProcessedExtraReason","getFileIncludeReasonToRelatedInformation","fileIncludeReasonToRelatedInformation","referenceLocation","message2","configFileNode","matchedByFiles","matchedByInclude","referencedResolvedRef","referenceInfo","emitOnlyDtsFiles","outputFiles","SignatureInfo2","BuilderState2","createManyToManyPathMap","create2","forward","reverse","deleteFromMultimap","vSet","existingVSet","addToMultimap","getReferencedFilesFromImportedModuleSymbol","getReferencedFilesFromImportLiteral","getReferencedFileFromFileName","sourceFileDirectory","declarationSourceFilePaths","addReferencedFile","referencedFile","referencedPath","typeFilePath","addReferenceFromAmbientModule","declarationSourceFile","canReuseOldState","newReferencedMap","oldState","createReferencedMap","newProgram","disableUseFileVersionAsSignature","fileInfos","referencedMap","useOldState","oldUncommittedSignature","isFileAffectingGlobalScope","releaseCache2","getFilesAffectedBy","programOfThisState","getFilesAffectedByWithOldState","updateShapeSignature","getFilesAffectedByUpdatedShapeWhenModuleEmit","getFilesAffectedByUpdatedShapeWhenNonModuleEmit","updateSignatureOfFile","computeDtsSignature","onNewSignature","_writeByteOrderMark","_onError","useFileVersionAsSignature","prevSignature","latestSignature","getAllDependencies","getAllFileNames","seenMap","references","getReferencedByPaths","referencedFilePath","containsOnlyAmbientModules","containsGlobalScopeAugmentation","getAllFilesExcludingDefaultLibraryFile","firstSourceFile","addSourceFile","sourceFileWithUpdatedShape","seenFileNamesMap","currentPath","BuilderFileEmit2","isBuilderProgramStateWithDefinedProgram","toBuilderProgramStateWithDefinedProgram","getPendingEmitKind","optionsOrEmitKind","oldOptionsOrEmitKind","oldEmitKind","emitKind","diff","hasSameKeys","map1","createBuilderProgramState","outFilePath","getEmitSignatureFromOldSignature","oldCompilerOptions","canCopySemanticDiagnostics","canCopyEmitSignatures","canCopyEmitDiagnostics","oldReferencedMap","copyDeclarationFileDiagnostics","copyLibFileDiagnostics","oldInfo","addFileToChangeSet","emitDiagnostics","convertToDiagnostics","repopulateDiagnostics","oldEmitSignature","pendingEmitKind","addToAffectedFilesPendingEmit","repopulatedChain","convertOrRepopulateDiagnosticMessageChain","repopulateInfo","convertOrRepopulateDiagnosticMessageChainArray","diagnosticFilePath","buildInfoDirectory","convertToDiagnosticRelatedInformation","toPathInBuildInfoDirectory","releaseCache","assertSourceFileOkWithoutNextAffectedCall","getNextAffectedFile","affectedFiles","seenAffectedFiles","affectedFilesIndex","affectedFile","handleDtsMayChangeOfAffectedFile","nextKey","clearAffectedFilesPendingEmit","isForDtsErrors","pending","seenOldOptionsOrEmitKind","getBuilderFileEmitAllDts","getNextAffectedFilePendingEmit","seenKind","getNextPendingEmitDiagnosticsFile","removeDiagnosticsOfLibraryFiles","removeSemanticDiagnosticsOf","handleDtsMayChangeOfReferencingExportOfAffectedFile","handleDtsMayChangeOf","invalidateJsFiles","isChangedSignature","oldSignature","handleDtsMayChangeOfGlobalScope","seenFileAndExportsOfFile","aliased","exportedFromPath","handleDtsMayChangeOfFileAndExportsOfFile","referencingFilePath","getSemanticDiagnosticsOfFile","semanticDiagnosticsPerFile","getBinderAndCheckerDiagnosticsOfFile","cachedDiagnostics","isNonIncrementalBuildInfo","ensureHasErrorsForState","bindAndCheckDiagnostics","hasSyntaxOrGlobalErrors","getBuildInfoEmitPending","getBuildInfo2","latestChangedDtsFile","relativeToBuildInfoEnsuringAbsolutePath","fileNameToFileId","relativeToBuildInfo","fileInfos2","fileId","toFileId","tryAddRoot","toResolvedRoot","toIncrementalBuildInfoCompilerOptions","toIncrementalBuildInfoDiagnostics","toIncrementalBuildInfoEmitDiagnostics","toChangeFileSet","fileIdsList","fileNamesToFileIdListId","emitSignatures","actualSignature","emitSignature","toFileIdListId","affectedFilesPendingEmit","fullEmitForOptions","seenFiles","pendingEmit","fileIds","fileIdListId","isLastStartEnd","lastButOne","optionInfo","toReusableCompilerOptionValue","toReusableDiagnostic","toReusableDiagnosticRelatedInformation","toReusableDiagnosticMessageChain","toReusableDiagnosticMessageChainArray","reusable","changeFileSet","BuilderProgramKind2","newProgramOrRootNames","hostOrOptions","oldProgramOrHost","configFileParsingDiagnosticsOrOldProgram","getTextHandlingSourceMapForSignature","locationInfo","flattenDiagnosticMessageText2","computeSignature","getSemanticDiagnosticsOfNextAffectedFile","emitNextAffectedFile","emitNextAffectedFileOrDtsErrors","affected","programEmitKind","pendingAffectedFile","pendingForDiagnostics","affected2","getWriteFileCallback","affectedSourceFile","existingPending","setEmitDiagnosticsPerFile","emitDiagnosticsPerFile","newSignature","handleNewSignature","oldSignatureFormat","sourceMaps","affectedEmitResult","handleNonEmitBuilderWithEmitOrDtsErrors","ignoreSourceFile","affectedResult","affectedFilePendingEmit","fileInfo","filePaths","filePathsSetList","changedFilesSet","toFilePath","toPerFileSemanticDiagnostics","toPerFileEmitDiagnostics","stateFileInfo","toManyToManyPathMap","toFilePathsSet","fileIdsListId","referenceMap","rootIndex","resolvedRoots","addRoot","getProgram","emitOnlyDts","newConfigFileParsingDiagnostics","perceivedOsRootLengthForWatching","indexAfterOsRoot","isDosStyle","perceivedOsRootLength","canWatchAffectedPackageJsonOrNodeModulesOfAtTypes","isInDirectoryPath","dirComponents","fileOrDirComponents","fileOrDirPath","failedLookupLocation","failedLookupLocationPath","rootPath","rootPathComponents","isRootWatchable","preferNonRecursiveWatch","failedLookupPathComponents","failedLookupComponents","nodeModulesIndex","lastNodeModulesIndex","getDirectoryOfFailedLookupWatch","getDirectoryToWatchFromFailedLookupLocationDirectory","dirPathComponents","dirPathComponentsLength","nonRecursive","packageDirLength","typeRootPath","filterCustomPath","typeRootPathComponents","toWatch","rootDirForResolution","getModuleResolutionHost","resolutionHost","resolveModuleNameUsingGlobalCache","primaryResult","resolutionDiagnostics","logChangesWhenResolvingModule","filesWithChangedSetOfUnresolvedImports","filesWithInvalidatedResolutions","filesWithInvalidatedNonRelativeUnresolvedImports","nonRelativeExternalModuleResolutions","resolutionsWithFailedLookups","resolutionsWithOnlyAffectingLocations","resolvedFileToResolution","impliedFormatPackageJsons","affectingPathChecksForFile","affectingPathChecks","failedLookupChecks","startsWithPathChecks","isInDirectoryChecks","allModuleAndTypeResolutionsAreInvalidated","cachedDirectoryStructureHost","resolvedModuleNames","resolvedTypeReferenceDirectives","resolvedLibraries","directoryWatchesOfFailedLookups","fileWatchesOfAffectingLocations","isSymlinkCache","packageDirWatchers","dirPathToSymlinkPackageRefCount","typeRootsWatches","watchFailedLookupLocationsOfExternalModuleResolutions","startRecordingFilesWithChangedResolutions","finishRecordingFilesWithChangedResolutions","startCachingPerDirectoryResolution","finishCachingPerDirectoryResolution","resolveModuleNameLiterals","resolveTypeReferenceDirectiveReferences","resolveLibrary2","resolveSingleModuleNameWithoutWatching","removeResolutionsFromProjectReferenceRedirects","removeResolutionsOfFile","invalidateResolutionOfFile","invalidateResolutionsOfFailedLookupLocations","setFilesWithInvalidatedNonRelativeUnresolvedImports","createHasInvalidatedResolutions","isFileWithInvalidatedNonRelativeUnresolvedImports","updateTypeRootsWatch","closeTypeRootsWatch","onChangesAffectModuleResolution","collected","customHasInvalidatedResolutions","customHasInvalidatedLibResolutions","watchFailedLookupLocationOfNonRelativeModuleResolutions","cleanupLibResolutionWatching","stopWatchFailedLookupLocationOfResolution","createFileWatcherOfAffectingLocation","closeDirectoryWatchesOfFailedLookup","closeFileWatcherOfAffectingLocation","closePackageDirWatcher","packageDirPath","resolveNamesWithLocalCache","perFileCache","getResolutionWithResolvedFileName","deferWatchingNonRelativeResolution","shouldRetryResolution","logChanges","hasInvalidatedNonRelativeUnresolvedImport","oldRedirect","unmatchedRedirects","seenNamesInFile","existingResolution","resolutionIsSymlink","resolutionIsEqualTo","oldResult","newResult","typeDirectiveReferences","moduleLiterals","isNodeModulesAtTypesDirectory","watchFailedLookupLocationOfResolution","watchFailedLookupLocation","setAtRoot","packageDir","setDirectoryWatcher","watchAffectingLocationsOfResolution","addToResolutionsWithOnlyAffectingLocations","affectingLocation","forResolution","fileWatcher","locationToWatch","isSymlink","symlinkWatcher","invalidateAffectingFileWatcher","symlinkWatcher2","packageJsonMap","createDirectoryWatcherForPackageDir","packageDirWatcher","removeDirectoryWatcher","createDirPathToWatcher","forDirPath","createOrAddRefToDirectoryWatchOfFailedLookups","dirWatcher","stopWatchFailedLookupLocation","removeAtRoot","refCount","scheduleInvalidateResolutionOfFailedLookupLocation","removeResolutionsOfFileFromCache","invalidateResolutions","canInvalidate","invalidated","containingFilePath","prevHasChangedAutomaticTypeDirectiveNames","filesMap","isCreatingWatchedDirectory","updatedPath","dirOfFileOrDirectory","invalidatePackageJsonMap","isInvalidatedFailedLookup","canInvalidateFailedLookupResolution","canInvalidatedFailedLookupResolutionWithAffectingLocation","locationPath","createTypeRootsWatch","canWatchTypeRootPath","dirPath2","sysFormatDiagnosticsHost","pretty","clearScreenIfNotWatchingForFileChanges","screenStartingMessageCodes","getPlainDiagnosticFollowingNewLines","reportUnrecoverableDiagnostic","errorDiagnostic","diagnosticForFileName","errorCount","prettyPathForFileError","filesInError","nonNilFiles","fileInError","distinctFileNamesWithLines","self","firstFileReference","createTabularErrorsDisplay","distinctFiles","numberLength","num","fileToErrorCount","maxErrors","headerRow","leftColumnHeadingLength","leftPaddingGoal","headerPadding","tabularData","row","errorCountDigitsLength","leftPadding","fileRef","listFiles","toFileName","fileNameConvertor","fileSpec","includeSpec","referenceText","isOutput","reportSummary","configFileParsingDiagnosticsLength","filepath","reportWatchStatus2","getCompilerOptions","originalGetSourceFile","createProgram2","createWatchCompilerHost","diagnosticReporter","rootFiles","exitStatus","rootFilesOrConfigFileName","projectReferencesOrWatchOptionsToExtend","watchOptionsOrExtraFileExtensions","updateLevel","missingFilesMap","watchedWildcardDirectories","staleWatches","timerToUpdateProgram","timerToInvalidateFailedLookupResolutions","parsedConfigs","sharedExtendedConfigFileWatchers","reportFileChangeDetectedOnCreateProgram","sourceFilesCache","missingFilePathsRequestedForRelease","hasChangedCompilerOptions","optionsToExtendForConfigFile","canConfigFileJsonReportNoInputFiles","hasChangedConfigFileParsingErrors","parseConfigFileHost","updateNewLine","setConfigFileParsingResult","reportWatchDiagnostic","parseConfigFile2","configFileWatcher","scheduleProgramReload","getNewSourceFile","getVersionedSourceFileByPath","onReleaseOldSourceFile","onReleaseParsedCommandLine","scheduleInvalidateResolutionsOfFailedLookupLocations","scheduleProgramUpdate","getCurrentProgram","customHasInvalidLibResolutions","synchronizeProgram","getCurrentBuilderProgram","updateProgram","getResolutionCache","updateRootFileNames","clearInvalidateResolutionsOfFailedLookupLocations","createNewProgram","configPath","watchConfigFileWildCardDirectories","updateExtendedConfigFilesWatches","watchReferencedProject","needsUpdateInTypeRootWatch","watchMissingFilePath","missingFilePath","isFileMissingOnHost","hostSourceFile","isFilePresenceUnknownOnHost","watchFilePath","onSourceFileChange","nextSourceFileVersion","_oldOptions","hasSourceFileByPath","hostSourceFileInfo","invalidateResolutionsOfFailedLookup","updateProgramWithWatchStatus","reloadFileNamesFromConfigFile","reloadConfigFile","configFileName2","parsedCommandLine","getParsedCommandLineFromConfigFileHost","onUnRecoverableConfigFileDiagnostic","watchType","updateCachedSystemWithFile","onMissingFileChange","watchWildcardDirectory","forProjectPath","watchOptions2","UpToDateStatusType2","project","minimumDate","getOrCreateValueFromConfigFileMap","configFileMap","createT","getOrCreateValueMapFromConfigFileMap","getCurrentTime","buildOrder","anyBuildOrder","createSolutionBuilderHostBase","reportSolutionBuilderStatus","date","reportErrorSummary2","watchHost","getCompilerOptionsOfBuildOptions","createSolutionBuilderWorker","baseWatchOptions","createSolutionBuilderState","watch","hostOrHostWithWatch","hostWithWatch","baseCompilerOptions","parseConfigFile","toResolvedConfigFilePath","getBuildInfo3","toPath2","resolvedConfigFilePaths","isParsedCommandLine","getCachedParsedConfigFile","configFileCache","resolveProjectName","createBuildOrder","temporaryMarks","permanentMarks","circularityReportStack","circularDiagnostics","inCircularContext","projPath","resolvedRefPath","getBuildOrder","createStateBuildOrder","currentProjects","noopOnDelete","existingMap","getBuildOrderFor","onlyReferences","resolvedProject","buildOrderFromState","enableCache","disableCache","originalReadFileWithCache","clearProjectStatus","addProjToQueue","projectPendingBuild","proj","setupInitialBuild","reportWatchStatus","InvalidatedProjectKind2","doneInvalidatedProject","createUpdateOutputFileStampsProject","updateOutputFileStampsPending","updateOutputTimestamps","createBuildOrUpdateInvalidedProject","projectIndex","step","withProgramOrUndefined","withProgramOrEmptyArray","executeSteps","reportStatus","reportAndStoreErrors","getOldProgram","internalMap","emittedOutputs","isIncremental","outputTimeStampMap","now","isChangedSignature2","getBuildInfoCacheEntry","getOutputTimeStampMap","updateOutputTimestampsWorker","afterProgramDone","till","currentStep","queueReferencingProjects","getNextInvalidatedProjectCreateInfo","reportQueue","reportBuildQueue","reportParseConfigFileDiagnostic","watchConfigFile","watchExtendedConfigFiles","watchWildCardDirectories","watchInputFiles","watchPackageJsonFiles","getUpToDateStatus","verboseReportProjectStatus","createInvalidatedProjectWithInfo","getNextInvalidatedProject","builderPrograms","isFileWatcherWithModifiedTime","getModifiedTime2","watchFile","resolvedConfigFilePath","resolvedConfigPath","checkConfigFileUpToDateStatus","oldestOutputFileTime","oldestOutputFileName","tsconfigTime","getUpToDateStatusWorker","referenceStatuses","resolvedConfig","refStatus","buildInfoCacheEntry","buildInfoTime","incrementalBuildInfo","newestInputFileName","newestInputFileTime","pseudoInputUpToDate","seenRoots","buildInfoVersionMap","inputFile","inputTime","inputPath","currentVersion","resolvedInputPath","existingRoot","_resolved","existingRoot2","outputTime","pseudoUpToDate","hasSameBuildInfo","newestDeclarationFileContentChangedTime","getLatestChangedDtsTime","configStatus","extendedConfigStatus","packageJsonLookups","dependentPackageFileStatus","prior","actual","verboseMessage","skipOutputs","modifiedOutputs","reportVerbose","latestChangedDtsTime","nextProject","nextProjectPath","nextProjectConfig","build","getCustomTransformers","buildWorker","successfulProjects","invalidatedProject","reportErrorSummary","startWatching","clean","cleanWorker","reportErrors","filesToDelete","inputFileNames","invalidateProject","invalidateProjectAndScheduleBuilds","scheduleBuildInvalidatedProject","changeDetected","buildNextInvalidatedProject","buildNextInvalidatedProjectWorker","projectsBuilt","projectConfigFilePath","cfg","stopWatching","watchedPacageJsonFiles","relName","canReportSummary","totalErrors","singleProjectErrors","buildQueue","reportUpToDateStatus","StatisticType2","countLines","counts2","getCountsMap","getCountKey","updateReportDiagnostic","shouldBePretty","defaultIsPretty","getOptionsForHelp","printVersion","createColors","bold","isWindows","isWindowsTerminal","isVSCode","blue","brightWhite","supportsRicherColors","blueBackground","getDisplayNameTextOfOption","generateOptionOutput","rightAlignOfLeft","leftAlignOfRight","colors","valueCandidates","getValueCandidate","defaultValueDescription","formatDefaultValue","terminalWidth","getPrettyOutput","showAdditionalInfoOutput","diagType","valueCandidates2","ignoreValues","ignoredDescriptions","defaultValueDescription2","rightAlignOfLeft2","leftAlignOfRight2","terminalWidth2","colorLeft","isFirstLine","remainRight","rightCharacterNumber","curLeft","curRight","getValueType","getPossibleValues","possibleValues","inverted","synonyms","generateGroupOptionOutput","optionsList","curLength","rightAlignOfLeftPart","leftAlignOfRightPart","tmp","generateSectionOptionsOutput","sectionName","subCategory","beforeOptionsDescription","afterOptionsDescription","categoryMap","curCategory","optionsOfCurCategory","printEasyHelp","simpleOptions","getHeader","example","cliCommands","configOpts","desc","examples","example2","printAllHelp","printBuildHelp","tsIconLength","tsIconFirstLine","tsIconSecondLine","leftAlign","printHelp","executeCommandLineWorker","writeConfigFile","commandLineOptions","reportWatchModeWithoutSysSupport","createWatchOfConfigFile","performIncrementalCompilation2","performCompilation","createWatchOfFilesAndCompilerOptions","commandLineArgs","firstOption","performBuild","defaultJSDocParsingMode","buildHost2","createWatchStatusReporter2","solutionPerformance2","enableSolutionPerformance","updateSolutionBuilderHost","onWatchStatusChange","reportBuildStatistics","reportSolutionBuilderTimes","builder2","buildHost","createReportErrorSummary","solutionPerformance","enableStatisticsAndTracing","programOptions","reportStatistics","updateCreateProgram","isBuildMode","compileUsingBuilder","updateWatchCompilationHost","watchCompilerHost","emitFilesUsingBuilder","createSolutionPerfomrance","statistics","addAggregateStatistic","forEachAggreateStatistics","reportSolutionBuilderCountStatistic","isSolutionMarkOrMeasure","getNameFromSolutionBuilderMarkOrMeasure","reportAllStatistics","canReportDiagnostics","canTrace","memoryUsed","reportCountStatistic","lineCounts","reportStatisticalValue","isPerformanceEnabled","programTime","bindTime","checkTime","emitTime","caches","reportTimeStatistic","aggregate","nameSize","valueSize","statisticValue","syntacticResult","reportFallback","notImplemented2","alreadyReported","failed","serializeTypeOfDeclaration","serializeTypeOfExpression","serializeTypeOfAccessor","tryReuseExistingTypeNode","reuseNode","visitExistingNodeTreeSymbols","recover","onExitNewScope","visitExistingNodeTreeSymbolsWorker","tryVisitSimpleTypeNode","innerNode","tryVisitTypeReference","tryVisitTypeQuery","tryVisitIndexedAccess","typeOperatorNode","tryVisitKeyOf","resultObjectType","serializedName","overrideTypeNode","newTypeNode","getEffectiveDotDotDotForParameter","getNameForJSDocFunctionParameter","visitEachChild2","computedPropertyNameType","disposeScope","extendType","nonlocalNode","visitNodesWithoutCopyingPositions","canAddUndefined","addUndefinedIfNeeded","serializeTypeAnnotationOfDeclaration","useFallback","serializeExistingTypeNodeWithFallback","typeFromAccessor","inferAccessorType","preserveLiterals","typeFromExpression","inferExpressionType","typeFromParameter","typeFromVariable","typeFromProperty","inferTypeOfDeclaration","typeFromExpandoProperty","typeFromPropertyAssignment","assertionNode","createReturnFromSignature","getTypeAnnotationFromAccessor","getTypeAnnotationFromAllAccessorDeclarations","accessorType","accessorDeclarations","withNewScope","isContextuallyTyped","inferReturnTypeOfSignatureSignature","allAccessors","typeFromTypeAssertion","createUndefinedTypeNode","typeFromFunctionLikeExpression","typeFromPrimitiveLiteral","typeFromArrayLiteral","typeFromObjectLiteral","primitiveNode","fnNode","reuseTypeParameters","canGetTypeFromArrayLiteral","oldNoInferenceFallback","elementTypesInfo","canGetTypeFromObjectLiteral","newProp","typeFromObjectLiteralMethod","typeFromObjectLiteralPropertyAssignment","typeFromObjectLiteralAccessor","tpName","getAccessorType","setAccessorType","owner","optionalDeclaration","typeFromSingleReturnExpression","candidateExpr","NameValidationResult","discoverTypings","isTypingUpToDate","loadSafeList","loadTypesMap","nonRelativeModuleNameForTypingCache","renderPackageNameValidationFailure","validatePackageName","ActionSet","ActionInvalidate","ActionPackageInstalled","EventTypesRegistry","EventBeginInstallTypes","EventEndInstallTypes","EventInitializationFailed","ActionWatchTypingLocations","Arguments","Arguments2","hasArgument","argumentName","findArgument","nowString","indentStr","indent2","stringifyIndented","cachedTyping","availableTypingVersions","safeListPath","typesMapPath","projectRootPath","safeList","packageNameToTypingLocation","unresolvedImports","typesRegistry","inferredTypings","filesToWatch","addInferredTypings","possibleSearchDirs","searchDir","getTypingNames","getTypingNamesFromSourceFileNames","excludeTypingName","typing","registryEntry","newTypingNames","cachedTypingPaths","addInferredTyping","typingName","typingNames","projectRootPath2","manifestName","modulesDirName","filesToWatch2","manifestPath","manifest","manifestTypingNames","packagesFolderPath","packageNames","dependencyManifestNames","manifestPath2","isScoped","normalizedFileName","manifest2","ownTypes","fileNames2","fromFileNames","inferredTypingName","cleanedTypingName","NameValidationResult2","maxPackageNameLength","validatePackageNameWorker","supportScopedPackage","scopeResult","renderPackageNameValidationFailureWorker","isScopeName","ScriptSnapshot2","StringScriptSnapshot","fromString","PackageJsonDependencyGroup2","PackageJsonAutoImportPreference2","LanguageServiceMode2","SemanticClassificationFormat2","OrganizeImportsMode2","CompletionTriggerKind2","InlayHintKind3","HighlightSpanKind2","IndentStyle3","SemicolonPreference2","newLineCharacter","SymbolDisplayPartKind2","CompletionInfoFlags2","OutliningSpanKind2","OutputFileType2","EndOfLineState2","TokenClass2","ScriptElementKind2","ScriptElementKindModifier2","ClassificationTypeNames2","ClassificationType2","SemanticMeaning2","getMeaningFromRightHandSideOfImportEquals","isTypeReference","isNamespaceReference","isQualifiedNameNamespaceReference","isPropertyAccessNamespaceReference","isLastClause","includeElementAccess","skipPastOuterExpressions","isCalleeWorker","selectExpressionOfCallOrNewExpressionOrDecorator","selectTagOfTaggedTemplateExpression","selectTagNameOfJsxOpeningLikeElement","calleeSelector","climbPastPropertyOrElementAccess","referenceNode","labelName","funcName","getKindOfVariableDeclaration","rightKind","tripleSlashDirectivePrefixRegex","isCompletedNode","nodeEndsWith","hasChildOfKind","expectedLastToken","syntaxList","isDefaultModifier2","isClassKeyword","isFunctionKeyword","getAdjustedLocationForClass","defaultModifier","classKeyword","getAdjustedLocationForFunction","functionKeyword","getAncestorTypeNode","lastTypeNode","ancestorTypeNode","getAdjustedLocationForDeclaration","forRename","getAdjustedLocationForImportDeclaration","onlyBinding","getAdjustedLocationForExportDeclaration","getAdjustedLocationForHeritageClause","getAdjustedLocation","includePrecedingTokenAtEndPosition","getTokenAtPositionWorker","allowPositionInLeadingTrivia","includeEndPosition","foundToken","nodeContainsPosition","tokenAtPosition","isWhiteSpaceOnlyJsxText","find2","nodeHasTokens","excludeJsdoc","isNonWhitespaceToken","findRightmostChildNodeWithTokens","findRightmostToken","exclusiveStartPosition","parentKind","isInsideJsxElementTraversal","matchingTokenKind","closeTokenText","matchingTokenText","tokenFullStart","bestGuessIndex","nodeAtGuess","tokenKind","remainingMatchingTokens","removeOptionality","isOptionalExpression","called","typeArgumentCount","tokenIn","remainingLessThanTokens","nTypeArguments","excludeFlags","areIntersectedTypesAvoidingStringReduction","isInReferenceCommentWorker","shouldBeReference","contextToken","replacementEnd","isTypeKeywordToken","snap","defaultImport","namedImports","quotePreference","QuotePreference6","firstModuleSpecifier","qp","escaped","spanContainsNode","blankLineBetween","importKindPredicate","existingImportStatements","isSorted","sortedNewImports","newImport","prevImport","lastExistingImport","sourceMapper","mapsTo","documentSpan","textSpan","newPosition","newEndPosition","contextSpanStart","contextSpanEnd","displayPartWriterCache","getDisplayPartWriter","getDisplayPartWriterWorker","absoluteMaximumLength","displayParts","resetWriter","unknownWrite","writeKind","finalText","writeIndent","indentString","symbolPart","displayPartKind","linkTextPart","linkNamePart","linkPart","findLinkNameEnd","skipSeparatorFromLinkText","separator","lineFeed2","formatSettings","writeDisplayParts","displayPartWriter","typechecker","isAliasSymbol","hasLeadingLineBreak","edits","renameFilename","preferLastLocation","lastPos","textChanges2","change","indexInTextChange","commentKind","getAddCommentsFunction","htnl","quoted","caseClause","enclosingScope","typeIsAccessible","notAccessible","syntaxRequiresTrailingCommaOrSemicolonOrASI","syntaxRequiresTrailingFunctionBlockOrSemicolonOrASI","syntaxRequiresTrailingModuleBlockOrSemicolonOrASI","syntaxRequiresTrailingSemicolonOrASI","syntaxMayBeASICandidate","nodeIsASICandidate","topNode","contextAncestor","withSemicolon","withoutSemicolon","nStatementsToObserve","lastTokenLine","nextTokenLine","tryIOAndConsumeErrors","toApply","startDirectory","currentConfigPath","getPackageJsonsVisibleToFile","packageJsons","packageJsonFileName","dependencyKeys","stringContent","dependencyMap","dependencyName","inGroups","usesNodeCoreModules","ambientModuleCache","allowsImportingAmbientModule","getSourceFileInfo","allowsImportingSpecifier","moduleSpecifierIsCoveredByPackageJson","getNodeModuleRootSpecifier","moduleSpecifierResolutionHost","declaredModuleSpecifier","isAllowedCoreNodeModulesImport","declaringSourceFile","declaringNodeModuleName","getNodeModulesPackageNameFromFileName","fullSpecifier","isDiagnosticWithLocation","sortedFileDiagnostics","startPosition","endPosition","valueOrArray","preferCapitalized","getSymbolParentOrFail","inJS","forceCapitalize","lastCharWasValid","firstCharCode","haystack","needle","needleLength","decisionFromFile","shouldAutoDetectSemicolonPreference","shouldRemoveSemicolons","existingStrings","existingNumbers","existingBigInts","parsedBigInt","addValue","hasValue","preferRequire","sourceFileLike","syntaxModuleIndicator","moduleResolutionHost","ImportKind2","ExportKind3","exportInfoId","exportInfo","packages","usableByFileName","moduleFile","isFromPackageJson","nodeModulesPathParts","prevDeepestNodeModulesPath","nodeModulesPath","prevDeepestNodeModulesIndex","namedSymbol","getNamesForExportedSymbol","capitalizedSymbolName","storedSymbol","storedModuleSymbol","rehydrateCachedInfo","ambientModuleName","parseKey","isNotShadowedByDeeperNodeModulesPackage","typeAcquisitionEnabled","fileIsGlobalOnly","ambientModuleDeclarationsAreEqual","cachedSymbol","cachedModuleSymbol","moduleKey","firstSpace","secondSpace","symbolNameLength","oldFileStatementIndex","newFileStatementIndex","isMatchingModuleDeclaration","typingsCacheLocation","packageDeepestNodeModulesPath","toFile","toModule","packageJsonFilter","moduleSpecifierCache","useNodePrefix","fileContainsPackageImport","globalTypingsCache","hasImportablePath","isImportablePath","importInfo","fromPath","globalCachePath","toNodeModules","toNodeModulesParent","useAutoImportProvider","excludePatterns","getIsExcludedPatterns","forEachExternalModule","autoImportProvider","allSourceFiles","isExcluded","getIsExcluded","realpathsWithSymlinks","moduleCount","seenExports","defaultInfo","isImportableSymbol","defaultExport2","capitalizedName","fromDeclaration","final","getClassificationsForLine","lexState","syntacticClassifierAbsent","convertClassificationsToResult","getEncodedLexicalClassifications","lastNonTriviaToken","templateStack","pushTemplate","getPrefixFromLexState","endOfLineState","angleBracketStack","handleToken","pushEncodedClassification","classFromKind","getNewEndOfLineState","noRegexTable","lastTemplateStackToken","canFollow","lastOnTemplateStack","lastCharIndex","numBackslashes","classification","classifications","dense","lastEnd","whitespaceLength2","convertClassification","whitespaceLength","keyword1","keyword2","isBinaryExpressionOperatorToken","isPrefixUnaryExpressionOperatorToken","convertClassificationsToSpans","checkForClassificationCancellation","classifySymbol","pushClassification","meaningAtPosition","hasValueSideModule","getClassificationTypeName","spanStart","spanLength","triviaScanner","mergeConflictScanner","processElement","classifyLeadingTriviaAndGetTokenStart","classifyComment","classifyDisabledMergeCode","docCommentAndDiagnostics","classifyJSDocComment","tryClassifyTripleSlashComment","pushCommentRange","docComment","processJSDocParameterTag","processJSDocTemplateTag","tripleSlashXMLCommentRegEx","attributeRegex","attrText","attrPos","attrMatch","newAttrPos","classifyDisabledCodeToken","classifyTokenType","tryClassifyNode","classifiedElementName","tryClassifyJsxElementName","tokenWidth","DocumentHighlights3","getDocumentHighlights","sourceFilesToSearch","highlightSpans","getHighlightSpanForNode","getSemanticDocumentHighlights","getSyntacticDocumentHighlights","sourceFilesSet","referenceEntries","getHighlightSpans","getIfElseOccurrences","useParent","getReturnOccurrences","getThrowOccurrences","getTryCatchFinallyOccurrences","getSwitchCaseDefaultOccurrences","getBreakOrContinueStatementOccurrences","getLoopBreakContinueOccurrences","getFromAllDeclarations","getAsyncAndAwaitOccurrences","getYieldOccurrences","getModifierOccurrences","keywords","getNodes4","aggregateOwnedThrowStatements","flatMapChildren","getThrowStatementOwner","throwStatement","aggregateAllBreakAndContinueStatements","ownsBreakOrContinueStatement","actualOwner","getBreakOrContinueOwner","isLabeledBy","getNodesToSearchForModifier","modifierFlag","pushKeywordIf","keywordList","loopNode","loopTokens","breakOrContinueStatement","finallyKeyword","throwStatement2","returnStatement2","traverseWithoutCrossingFunction","getIfElseKeywords","elseKeyword","ifKeyword","shouldCombineElseAndIf","externalCache","buckets","reportStats","bucketInfoArray","getCompilationSettings","settingsOrHost","acquireDocument","compilationSettings","scriptSnapshot","getKeyForCompilationSettings","acquireDocumentWithKey","acquireOrUpdateDocument","updateDocument","updateDocumentWithKey","getDocumentRegistryEntry","bucketEntry","compilationSettingsOrHost","acquiring","oldBucketCount","keyWithMode","getDocumentRegistryBucketKeyWithMode","bucket","otherBucketKey","bucket2","bucketKey","setBucketEntry","scriptKindMap","releaseDocument","releaseDocumentWithKey","settings","oldFileOrDirPath","newFileOrDirPath","formatContext","oldToNew","newToOld","changeTracker","updateTsconfigFiles","updateImports","canonicalOldPath","getUpdatedPath","makeCorrespondingRelativeChange","pathToUpdate","a0","b0","a1","rel","combinePathsSafe","configDir","jsonObjectLiteral","forEachProperty","updatePaths","matchers","property2","propertyName2","pathsProperty","tryUpdateString","foundExactMatch","elementFileName","createStringRange","allFiles","newFromOld","newImportFromPath","newImportFromDirectory","oldFromNew","oldImportFromPath","oldImportFromDirectory","importingSourceFileMoved","updateImportsWorker","oldAbsolute","newAbsolute","importedModuleSymbol","toImport","getSourceFileToImportFromResolved","getSourceFileToImport","combineNormal","pathA","pathB","oldFileName","newFileName","tryChange","tryChangeWithIgnoringPackageJsonExisting","tryChangeWithIgnoringPackageJson","updateRef","updateImport","importStringLiteral","PatternMatchKind2","createPatternMatch","isCaseSensitive","stringToWordSpans","dotSeparatedSegments","createSegment","getFullMatch","matchSegment","candidateContainers","betterMatch","getWordSpans","matchTextChunk","indexOfIgnoringCase","wordSpans","partStartsWith","isUpperCaseLetter","candidateParts","tryCamelCaseMatch","every2","subWordTextChunks","subWordTextChunk","compareMatches","candidateSpan","patternSpan","everyInRange","equalChars","toLowerCase2","chunkCharacterSpans","currentCandidate","currentChunkSpan","candidatePart","gotOneMatchThisCandidate","chunkCharacterSpan","createTextChunk","breakPatternIntoTextChunks","isLowerCaseLetter","valueChar","isDigit2","isWordChar","wordStart","wordLength","textLowerCase","breakIntoSpans","lastIsDigit","currentIsDigit","hasTransitionFromLowerToUpper","transitionFromLowerToUpper","hasTransitionFromUpperToLower","transitionFromUpperToLower","charIsPunctuation","isAllPunctuation","lastIsUpper","readImportFiles","detectJavaScriptImports","pragmaContext","importedFiles","ambientExternalModules","braceNesting","externalModule","getFileReference","recordAmbientExternalModule","recordModuleName","markAsExternalModuleIfTopLevel","tryConsumeDeclare","tryConsumeImport","tryConsumeRequireCall","tryConsumeExport","skipCurrentToken","allowTemplateLiterals","tryConsumeDefine","processImports","ambientModuleNames","base64UrlRegExp","documentPositionMappers","tryGetSourcePosition","tryGetGeneratedPosition","toLineColumnOffset","getDocumentPositionMapper2","generatedFileName","sourceFileName","getSourceFileLike","newLoc","declarationPath","getOrCreateSourceFileLike","fileFromCache","createSourceFileLike","generatedFileLineInfo","readMapFile","mapFileName","base64Object","convertDocumentToSourceMapper","possibleMapLocations","originalMapFileName","mapFileName2","mapFileContents","visitedNestedConvertibleFunctions","containsTopLevelCommonjs","getErrorNodeFromCommonJsIndicator","importNameForConvertToDefaultImport","resolvedFile","canBeConvertedToClass","jsdocTypedefNodes","jsdocTypedefNode","addConvertToAsyncFunctionDiagnostics","propertyAccessLeftHandSide","isConvertibleFunction","getKeyFromNode","hasReturnStatementWithPromiseHandler","commonJsModuleIndicator","isPromiseHandler","hasSupportedNumberOfArguments","isFixablePromiseArgument","maxArguments","optionsRedundantWithVerbatimModuleSyntax","transpileOptions","transpileWorker","barebonesLibContent","barebonesLibName","barebonesLibSourceFile","outputText","commandLineOptionsStringToEnum","getNavigateToItems","searchValue","maxResultCount","excludeDtsFiles","excludeLibFiles","patternMatcher","rawItems","singleCurrentFile","shouldExcludeFile","getItemsFromNamedDeclaration","compareNavigateToItems","createNavigateToItem","shouldKeepItem","fullMatch","getContainers","importer","imported","tryAddSingleDeclarationName","pushLiteral","tryAddComputedPropertyName","i1","rawItem","getNavigationBarItems","getNavigationTree","whiteSpaceRegex","maxLength","curCancellationToken","curSourceFile","parentsStack","parent","trackedEs5ClassesStack","trackedEs5Classes","emptyChildItemArray","primaryNavBarMenuItems","rootNavigationBarNode","convertToPrimaryNavBarMenuItem","reset","convertToTree","nodeText","cleanText","navigationBarNodeKind","pushChild","addChildrenRecursively","endNode","addLeafNode","emptyNavigationBarNode","addTrackedEs5Class","endNestedNodes","startNestedNodes","startNode","navNode","mergeChildren","sortChildren","addNodeWithRecursiveChild","addNodeWithRecursiveInitializer","isFunctionOrClassExpression","hasNavigationBarName","ctr","nameNode","isComputedProperty","getInteriorModule","prototypeAccess","defineCall","classNameIdentifier","targetFunction","nameToItems","itemsWithSameName","itemWithSameName","tryMerge","isEs5ClassMember","tryMergeEs5Class","bIndex","isPossibleConstructor","bAssignmentDeclarationKind","aAssignmentDeclarationKind","isSynthesized","lastANode","ctorFunction","ctorNode","bNode","shouldReallyMerge","merge","isOwnChild","areSameModule","getFullyQualifiedModuleName","par","compareChildren","child1","child2","tryGetName","getModuleName","getFunctionOrClassName","getItemName","primaryNavBarMenuItems2","recur","shouldAppearInPrimaryNavBarMenu","isTopLevelFunctionDeclaration","item2","getModifiers2","getSpans","getNodeSpan","convertToSecondaryNavBarMenuItem","n2","getCalledExpressionName","addExportsInOldFile","addImportsForMovedSymbols","addNewFileToTsconfig","ts_refactor_addOrRemoveBracesToArrowFunction_exports","addTargetFileImports","containsJsx","ts_refactor_convertArrowFunctionOrFunctionExpression_exports","ts_refactor_convertParamsToDestructuredObject_exports","ts_refactor_convertStringOrTemplateLiteral_exports","ts_refactor_convertToOptionalChainExpression_exports","createNewFileName","doChangeNamedToNamespaceOrDefault","ts_refactor_extractSymbol_exports","ts_refactor_generateGetAccessorAndSetAccessor_exports","getApplicableRefactors","getEditsForRefactor","getExistingLocals","getIdentifierForNode","getNewStatementsAndRemoveFromOldFile","getStatementsToMove","getUsageInfo","ts_refactor_inferFunctionReturnType_exports","isInImport","isRefactorErrorInfo","refactorKindBeginsWith","registerRefactor","refactors","refactor","includeInteractiveActions","refactorName14","actionName2","interactiveRefactorArguments","refactorName","defaultToNamedAction","namedToDefaultAction","getInfo2","doChange","considerPartialSpans","exportingModuleSymbol","getExportingModuleSymbol","wasDefault","noSymbolError","vs","exportingSourceFile","changeExport","changeImports","makeExportSpecifier","exportKeyword","changeDefaultToNamedImport","changeNamedToDefaultImport","makeImportSpecifier","importTypeNode","refactorName2","actions","getImportConversionInfo","doChange2","getShouldUseDefault","isExportEqualsModule","doChangeNamespaceToNamed","toConvert","usedAsNamespaceOrDefault","nodesToReplace","conflictingNames","getRightOfPropertyAccessOrQualifiedName","getLeftOfPropertyAccessOrQualifiedName","exportNameToImportName","propertyAccessOrQualifiedName","importSpecifiers","createImport","defaultImportName","createImportClause","shouldUseDefault","toConvertSymbols","namedImport","preferredName","hasNamespaceNameConflict","namespaceImportName","neededNamedImports","newNamedImports","refactorName3","extractToTypeAliasAction","extractToInterfaceAction","extractToTypeDefAction","affectedTextRange","getRangeToExtract","doTypeAliasChange","doTypedefChange","doInterfaceChange","renameLocation","considerEmptySpans","isJS","isCursorRequest","getFirstTypeAt","enclosingNode","getEnclosingNode","expandedFirstType","getExpandedSelectionNode","typeList","selection","collectTypeParameters","flattenTypeLiteralNodeReference","currentNodes","overlappingRange","rangeContainsSkipTrivia","flattenedTypeMembers","selectionArray","selectionRange","conditionalTypeNode","functionLikeNode","firstTypeNode","getNodesToEdit","newTypeDeclaration","refactorNameForMoveToFile","description","moveToFileAction","startNodeAncestor","endNodeAncestor","error","doChange3","notApplicableReason","toMove","isForNewFile","importAdderForOldFile","importAdderForNewFile","prologueDirectives","useEsModuleSyntax","deleteUnusedOldImports","deleteMovedStatements","updateImportsInOtherFiles","addExports","moveStatementsToTargetFile","newFileNameWithExtension","newFileAbsolutePath","newFilePath","cfgObject","filesProp","moved","afterLast","toDelete","importAdder","forEachImportInStatement","forEachAliasDeclarationInImportOrRequire","targetFileImportsFromOldFile","markSeenTop","isTopLevelDeclaration","nameOfTopLevelDeclaration","getTopLevelDeclarationStatement","addExportToChanges","movedSymbols","moduleSpecifierFromImport","shouldMove","deleteUnusedImports","pathToTargetFileWithExtension","newModuleSpecifier","newImportDeclaration","filterImport","getNamespaceLikeImport","updateNamespaceLikeImport","oldImportId","oldImportNode","preferredNewNamespaceName","needUniqueName","toChange","newNamespaceName","updateNamespaceLikeImportNode","newNamespaceId","newModuleString","createRequireCall","importOrRequire","isValidTypeOnlyUseSite","makeVariableStatement","needExport","useEs6Exports","isTopLevelDeclarationStatement","isExported","forEachTopLevelDeclaration","addExport","getNamesToExportInCommonJS","isUnused","isNonVariableTopLevelDeclaration","addEs6Export","addCommonjsExport","createExportAssignment","keep","filterNamedBindings","filterBindingName","makeUniqueFilename","inferNewFileName","getRangeToMove","startNodeIndex","startStatement","overloadRangeToMove","getOverloadRangeToMove","endNodeIndex","endingOverloadRangeToMove","rangeToMove","ranges","isAllowedStatementToMove","afterEndIndex","isPureImport","existingTargetLocals","enclosingRange","oldImportsNeededByTargetFile","jsxNamespaceSymbol","getJsxNamespaceSymbol","unusedImportsFromOldFile","forEachReference","importedDeclaration","prevIsTypeOnly","sourceFileOfTopLevelDeclaration","unusedImport","oldFileImportsFromTargetFile","containsJsx2","jsxNamespaceSymbol2","proposedFilename","inDirectory","newFilename","importsFromNewFile","onReference","forEachTopLevelDeclarationInBindingName","isVariableDeclarationInImport","em","removedExports","targetExports","targetToSourceExports","targetDeclarations","topLevelDeclarations","updatedElements","lastReExport","lastDecl","statementsToMove","existingLocals","known","requested","importsToCopy","refactorName4","refactorDescription","inlineVariableAction","triggerReason","getInliningInfo","closestStringIdentifierParent","replaceTemplateStringVariableWithLiteral","getReplacementExpression","tryWithReferenceToken","isDeclarationExported","getReferenceNodes","definition","cannotInline","templateExpression","prevNode","refactorName5","description2","moveToNewFileAction","doChange4","refactorName6","refactorDescription2","functionOverloadAction","getRefactorEditsToConvertOverloadsToOneSignature","getRefactorActionsToConvertOverloadsToOneSignature","getConvertableOverloadListAtPosition","signatureDecls","lastDeclaration","getNewParametersForCombinedSignature","signatureDeclarations","lastSig","convertSignatureParametersToTuple","convertParameterToNamedTupleMember","parameterDocComment","newComment","isConvertableSignatureDeclaration","containingDecl","signatureSymbol","kindOne","returnOne","refactorName7","refactorDescription3","addBracesAction","removeBracesAction","getRefactorEditsToRemoveFunctionBraces","getRefactorActionsToRemoveFunctionBraces","getConvertibleArrowFunctionAtPosition","actualExpression","considerFunctionBodies","refactorName8","refactorDescription4","toAnonymousFunctionAction","toNamedFunctionAction","toArrowFunctionAction","getRefactorEditsToConvertFunctionExpressions","getRefactorActionsToConvertFunctionExpressions","getFunctionInfo","selectedVariableDeclaration","possibleActions","getEditInfoForConvertToAnonymousFunction","variableInfo","getVariableInfo","getEditInfoForConvertToNamedFunction","getEditInfoForConvertToArrowFunction","containingThis","containsThis","checkThis","tryGetFunctionFromVariableDeclaration","maybeFunc","isFunctionReferencedInFile","isSingleVariableDeclaration","convertToBlock","variableDeclarationList","newNode","modifiersFlags","canBeConvertedToExpression","refactorName9","minimumParameterLength","refactorDescription5","toDestructuredAction","getRefactorEditsToConvertParametersToDestructuredObject","getRefactorActionsToConvertParametersToDestructuredObject","getFunctionDeclarationAtPosition","groupedReferences","getGroupedReferences","doChange5","newFunctionDeclarationParams","createNewParameters","newSignatureParams","replaceParameters","functionCalls","newArgument","createNewArgument","declarationOrSignature","parameterDeclarations","functionNames","getFunctionNames","classNames","getClassNames","groupReferences","classReferences","groupedReferences2","functionSymbols","getSymbolTargetAtLocation","classSymbols","contextualSymbols","getSymbolForContextualType","isValidMethodSignature","entryToFunctionCall","contextualSymbol","entryToDeclaration","entryToImportOrExport","entryToAccessExpression","entryToType","functionReference","callOrNewExpression","propertyAccessExpression","callOrNewExpression2","elementAccessExpression","isTopLevelJSDoc","isValidFunctionDeclaration","containingJSDoc","containingNonJSDoc","isValidParameterNodeArray","hasNameOrDefault","isSingleImplementation","isValidVariableDeclaration","functionOrClassDeclaration","getRefactorableParametersLength","paramDecl","isValidParameterDeclaration","hasThisParameter","getRefactorableParameters","createPropertyOrShorthandAssignment","functionArguments","nonRestArguments","getParameterName","restArguments","restProperty","refactorableParameters","createBindingElementFromParameterDeclaration","objectParameterName","objectParameterType","createParameterTypeNode","objectInitializer","objectParameter","newThisParameter","createPropertySignatureFromParameterDeclaration","getTypeNode3","paramDeclaration","ctrKeyword","refactorName10","refactorDescription6","convertStringAction","getRefactorEditsToConvertToTemplateString","getRefactorActionsToConvertToTemplateString","getNodeOrParentOfParentheses","maybeBinary","getParentBinaryExpression","nodeIsStringLiteral","refactorInfo","treeToArray","nestedBinary","getEditsForToTemplateLiteral","nodesToTemplate","trailingCommentRanges","trailingRange","isNotEqualsOperator","current2","nodes2","operators2","leftHasString","leftOperatorValid","currentOperatorValid","validOperators2","operators","validOperators","hasString","copyTrailingOperatorComments","copyCommentFromMultiNode","copyOperatorComments","indexes","escapeRawStringForTemplate","getRawTextOfTemplate","rightShaving","concatConsecutiveString","copyCommentFromStringLiterals","begin","headText","rawHeadText","headIndexes","noSubstitutionTemplateLiteral","getExpressionFromParenthesesOrExpression","subsequentText","rawSubsequentText","stringIndexes","copyExpressionComments","isLastSpan","templatePart","refactorName11","convertToOptionalChainExpressionMessage","toOptionalChainAction","getRefactorEditsToConvertToOptionalChain","getRefactorActionsToConvertToOptionalChain","getInfo3","doChange6","isValidExpression","isValidStatement","isValidExpressionOrStatement","forEmptySpan","startToken","endToken","adjustedSpan","getValidParentNodeOfEmptySpan","getValidParentNodeContainingSpan","getExpression","getConditionalInfo","getBinaryInfo","finalExpression","getFinalExpressionInChain","getMatchingStart","occurrences","getOccurrencesInExpression","matchTo","finalMatch","subchain","chainStartsWith","getTextOfChainNode","convertOccurrences","lastOccurrence","isOccurrence","_actionName","firstOccurrence","convertedChain","Messages","RangeFacts","getRangeToExtract2","getRefactorActionsToExtractSymbol","getRefactorEditsToExtractSymbol","refactorName12","extractConstantAction","extractFunctionAction","requestedRefactor","rangeToExtract","targetRange","getStringError","extractions","getPossibleExtractions","functionActions","usedFunctionNames","innermostErrorFunctionAction","constantActions","usedConstantNames","innermostErrorConstantAction","functionExtraction","constantExtraction","parsedFunctionIndexMatch","getFunctionExtractionAtIndex","parsedConstantIndexMatch","getConstantExtractionAtIndex","Messages2","createMessage","RangeFacts2","invoked","cursorRequest","getAdjustedSpanFromNodes","getExtractableParent","rangeFacts","thisNode","refineNode","checkRootNode","getStatementOrExpressionRange","numInitializers","lastInitializer","checkForStaticContext","nodeToCheck","PermittedJumps","PermittedJumps2","isExtractableExpression","isStringLiteralJsxAttribute","permittedJumps","seenLabels","declaringNode","containingClass2","savedPermittedJumps","isScope","collectEnclosingScopes","isReadonlyArray","containingFunction","scopes","requestedChangesIndex","usagesPerScope","functionErrorsPerScope","exposedVariableDeclarations","getPossibleExtractionsWorker","extractFunctionInScope","constantErrorsPerScope","extractConstantInScope","functionDescriptionPart","getDescriptionForFunctionInScope","constantDescriptionPart","getDescriptionForConstantInScope","scopeDescription","getDescriptionForFunctionLikeDeclaration","getDescriptionForClassLikeDeclaration","getDescriptionForModuleLikeDeclaration","functionDescription","constantDescription","enclosingTextRange","getEnclosingTextRange","readsAndWrites","collectReadsAndWrites","usagesInScope","typeParameterUsages","substitutions","functionNameText","callArguments","writes","typeParametersAndDeclarations","getFirstDeclarationBeforePosition","compareTypesByDeclarationOrder","callTypeArguments","returnValueProperty","transformFunctionBody","newFunction","callThis","minInsertionPos","nodeToInsertBefore","getNodeToInsertFunctionBefore","newNodes","getCalledExpression","isInJSXContent","commonNodeFlags","sawExplicitType","variableType","typeLiteral","getTypeDeepCloneUnionUndefined","getPropertyAssignmentsForWritesAndVariableDeclarations","withoutParens","localNameText","transformConstantInitializer","transformFunctionInitializerAndType","newVariable","localReference","maxInsertionPos","getNodeToInsertPropertyBefore","oldVariableDeclaration","getContainingVariableDeclarationIfInList","newVariableStatement","getNodeToInsertConstantBefore","variableType2","functionSignature","hasAny","firstParameter","declaration1","hasReturn2","hasWritesOrVariableDeclarations","ignoreReturns","rewrittenStatements","oldIgnoreReturns","getStatementsOrClassElements","minPos","maxPos","prevMember","prevScope","variableAssignments","writeAssignments","w","allTypeParameterUsages","substitutionsPerScope","visibleDeclarationsInExtractedRange","exposedVariableSymbolSet","firstExposedNonVariableDeclaration","expressionDiagnostic","constantErrors","seenUsages","unmodifiedNode","inGenericContext","isInGenericContext","collectUsages","recordTypeParameterUsages","seenTypeParameterUsages","typeParameterDecl","containingLexicalScopeOfExtraction","checkForUsedDeclarations","scopeUsages","hasWrite","readonlyClassPropertyWrite","symbolWalker","visitedType","valueUsage","recordUsage","isTypeNode2","recordUsagebySymbol","isTypeName","getSymbolReferencedByIdentifier","lastUsage","perScope","declInFile","tryReplaceWithQualifiedNameOrPropertyAccess","idString","scopeDecl","actionName","actionDescription","generateGetSetAction","nameNeedRename","refactorName13","refactorDescription7","inferReturnTypeAction","getRefactorEditsToInferReturnType","getRefactorActionsToInferReturnType","getInfo4","doChange7","closeParen","needParens","isConvertibleDeclaration","typePredicateTypeNode","TokenEncodingConsts","TokenEncodingConsts2","TokenType","TokenType2","TokenModifier","TokenModifier2","getSemanticClassifications2","getEncodedSemanticClassifications2","getSemanticTokens","resultTokens","collectTokens","typeIdx","modifierSet","collector","inJSXElement","prevInJSXElement","inImportClause","classifySymbol2","tokenFromDeclarationMapping","isRightSideOfQualifiedNameOrPropertyAccess2","reclassifyByType","isLocalDeclaration","getDeclarationForBindingElement","isExpressionInCallExpression","createNode","NodeObject","IdentifierObject","PrivateIdentifierObject","TokenObject","includeJsDocComment","createChildren","cbNodeArray","processNode","addSyntheticNodes","processNodes","createSyntaxList","textPos","TokenOrIdentifierObject","SymbolObject","labelDecl","getDocumentationComment","getJsDocTagsOfDeclarations","TypeObject","SignatureObject","hasJSDocInheritDocTag","inheritedTags","findBaseOfDeclaration","inheritedDocs","classOrInterfaceDeclaration","superTypeNode","SourceFileObject","lastCharPos","fullText","getDeclarations","SourceMapSourceObject","getServicesObjectAllocator","optionsAsMap","allPropertiesAreCamelCased","isCamelCase","displayPart2","SyntaxTreeCache","editRange","setSourceFileFields","scriptTargetOrOptions","setNodeParents","changedText","NoopCancellationToken","CancellationTokenObject","hostCancellationToken","throttleWaitMilliseconds","invalidOperationsInPartialSemanticMode","invalidOperationsInSyntacticMode","documentRegistry","syntaxOnlyOrLanguageServiceMode","languageServiceMode","syntaxTreeCache","lastProjectVersion","lastTypesRootVersion","getValidSourceFile","synchronizeHostData","synchronizeHostDataWorker","hostProjectVersion","typeRootsVersion","newSettings","parsedCommandLines","getOrCreateSourceFile","getOrCreateSourceFileByPath","parseConfigHost","documentRegistryBucketKey","releasedScriptKinds","getParsedCommandLineOfConfigFileUsingSourceFile","releaseOldSourceFile","oldSettingsKey","newSourceFileByResolvedPath","scriptVersion","getAutoImportProvider","updateIsDefinitionOfReferencedSymbols","referencedSymbols","knownSymbolSpans","getSymbolForProgram","referencedSymbol","refNode","getNodeForSpan","mappedSpan","docSpan","rawNode","cleanupSemanticCache","declarationDiagnostics","getRegionSemanticDiagnostics","getNodesForRanges","checkedSpans","nodesForSpan","getNodesForSpan","chooseOverlappingNodes","nodeOverlapsWithSpan","addSourceElement","chooseOverlappingBlockLike","chooseOverlappingClassLike","spanEnd","childResult","overlaps","getCompilerOptionsDiagnostics","getCompletionsAtPosition2","formattingSettings","fullPreferences","getCompletionEntryDetails2","formattingOptions","getCompletionEntrySymbol2","getQuickInfoAtPosition","nodeForQuickInfo","getNodeForQuickInfo","getSymbolAtLocationForQuickInfo","shouldGetType","symbolKind","documentation","canIncreaseVerbosityLevel","preparePasteEditsForFile","copiedTextRange","getPasteEdits","formatOptions","getDefinitionAtPosition2","searchOtherFilesOnly","stopAtAlias","getDefinitionAndBoundSpan2","getTypeDefinitionAtPosition2","getImplementationAtPosition","filesToSearch","findRenameLocations","findInStrings","findInComments","providePrefixAndSuffixTextForRename","getReferencesWorker2","getReferencesAtPosition","findReferences","getFileReferences","getNavigateToItems2","getEmitOutput","getSignatureHelpItems2","getNonBoundSourceFile","getNameOrDottedNameSpan","_endPos","nodeForStartPos","getBreakpointStatementAtPosition","getNavigationBarItems2","getNavigationTree2","getSemanticClassifications3","getEncodedSemanticClassifications3","getSyntacticClassifications2","getEncodedSyntacticClassifications2","getOutliningSpans","braceMatching","getBraceMatchingAtPosition","matchKind","getIndentationAtPosition","editorOptions","getFormattingEditsForRange","getFormattingEditsForDocument","getFormattingEditsAfterKeystroke","getCodeFixesAtPosition","errorCodes68","errorCode","getCombinedCodeFix","fixId56","organizeImports2","getEditsForFileRename2","oldFilePath","applyCodeActionCommand","actionOrFormatSettingsOrUndefined","applySingleCodeActionCommand","getPath","getDocCommentTemplateAtPosition2","isValidBraceCompletionAtPosition","openingBrace","getJsxClosingTagAtPosition","isUnclosedTag","isUnclosedFragment","getLinkedEditingRangeAtPosition","jsxTagWordPattern","openFragment","closeFragment","openPos","closePos","openTag","closeTag","openTagNameStart","openTagNameEnd","closeTagNameStart","closeTagNameEnd","getLinesForRange","toggleLineComment","insertComment","isCommenting","leftMostPosition","lineTextStarts","firstNonWhitespaceCharacterRegex","isJsx","openComment","regExec","lineTextStart","toggleMultilineComment","isInsideJsx","hasComment","positions","openMultiline","closeMultiline","openMultilineRegex","closeMultilineRegex","newPos","firstPos","commentSelection","uncommentSelection","getSpanOfEnclosingComment","onlyMultiLine","getTodoComments","descriptors","isNodeModulesFile","regExp","getTodoCommentsRegExp","matchArray","firstDescriptorCaptureIndex","preamble","matchPosition","isLetterOrDigit","escapeRegExp","singleLineCommentStart","multiLineCommentStart","endOfLineOrEndOfComment","messageRemainder","messagePortion","regExpString","getRenameInfo2","getRefactorContext","positionOrRange","getInlayHintsContext","getSmartSelectionRange2","getApplicableRefactors2","getMoveToRefactoringFileSuggestions","toMoveContainsJsx","fileNameExtension","getEditsForRefactor2","prepareCallHierarchy","provideCallHierarchyIncomingCalls","provideCallHierarchyOutgoingCalls","provideInlayHints2","mapCode2","focusLocations","ls","initializeNameTable","nameTable","literalIsName","isArgumentOfElementAccessExpression","getContainingObjectLiteralElementWorker","unionSymbolOk","discriminatedPropertySymbols","spanInSourceFileAtLocation","tokenAtLocation","lineOfPosition","spanInNode","textSpanEndingAtNextToken","previousTokenToFindNextEndToken","spanInNodeIfStartsOnSameLine","otherwiseOnNode","spanInNodeArray","spanInPreviousNode","spanInNextNode","spanInVariableDeclaration","spanInParameterDeclaration","spanInFunctionDeclaration","spanInFunctionBlock","spanInBlock","spanInForStatement","spanInInitializerOfForLike","spanInBindingPattern","spanInOpenBraceToken","spanInCloseBraceToken","spanInCloseBracketToken","spanInOpenParenToken","spanInCloseParenToken","spanInColonToken","spanInGreaterThanOrLessThanToken","spanInWhileKeyword","spanInOfKeyword","spanInArrayLiteralOrObjectLiteralDestructuringPattern","textSpanFromVariableDeclaration","canHaveSpanInParameterDeclaration","canFunctionHaveSpanInWholeDeclaration","nodeForSpanInBlock","forLikeStatement","firstBindingElement","lastClause","createCallHierarchyItem","getIncomingCalls","getOutgoingCalls","resolveCallHierarchyDeclaration","isNamedExpression","isVariableLike2","isAssignedExpression","isPossibleCallHierarchyDeclaration","isValidCallHierarchyDeclaration","getCallHierarchyDeclarationReferenceNode","isDefaultModifier3","getSymbolOfCallHierarchyDeclaration","getCallHierarchyItemName","getCallHierarchItemContainerName","findImplementation","findAllInitialDeclarations","sortedDeclarations","findImplementationOrAllInitialDeclarations","followingSymbol","kindModifiers","selectionSpan","isDefined","convertEntryToCallSite","getCallSiteGroupKey","createCallHierarchyIncomingCall","fromSpans","convertCallSiteGroupToIncomingCall","createCallSiteCollector","callSites","recordCallSite","collect","collectCallSitesOfSourceFile","collectCallSitesOfModuleDeclaration","collectCallSitesOfFunctionLikeDeclaration","collectCallSitesOfClassStaticBlockDeclaration","collectCallSitesOfClassLikeDeclaration","heritage","collectCallSites","createCallHierarchyOutgoingCall","convertCallSiteGroupToOutgoingCall","ts_classifier_v2020_exports","PreserveOptionalFlags","addNewNodeForMemberSymbol","codeFixAll","createCodeFixAction","createCodeFixActionMaybeFixAll","createCodeFixActionWithoutFixAll","createCombinedCodeActions","createFileTextChanges","createImportAdder","createImportSpecifierResolver","createMissingMemberNodes","createSignatureDeclarationFromCallExpression","createSignatureDeclarationFromSignature","createStubbedBody","eachDiagnostic","findAncestorMatchingSpan","generateAccessorFromProperty","getAccessorConvertiblePropertyAtPosition","getAllFixes","getFixes","getImportCompletionAction","getImportKind","getJSDocTypedefNodes","getNoopSymbolTrackerWithResolver","getPromoteTypeOnlyCompletionAction","getSupportedErrorCodes","importFixName","importSymbols","parameterShouldGetTypeFromJSDoc","registerCodeFix","setJsonCompilerOptionValue","setJsonCompilerOptionValues","tryGetAutoImportableReferenceFromTypeNode","typeNodeToAutoImportableTypeNode","typePredicateToAutoImportableTypeNode","typeToAutoImportableTypeNode","typeToMinimizedReferenceType","errorCodeToFixes","fixIdToRegistration","fixName8","createCodeFixActionWorker","fixAllDescription","command","reg","errorCodeToFixesArray","removeFixIdIfFixAllUnavailable","registration","maybeFixableDiagnostics","fixAllUnavailable","getDiagnostics","registrations","commands","fixId","errorCodes","assertion","getAssertion","makeChange","changes2","fixId2","errorCodes2","getIsMatchingAsyncError","directSpan","getFixableErrorSpanDeclaration","getFix","fixedDeclarations","trackChanges","makeChange2","insertionSite","cloneWithModifier","fixId3","propertyAccessCode","callableConstructableErrorCodes","errorCodes3","getAwaitErrorSpanExpression","getDeclarationSiteFix","getUseSiteFix","isMissingAwaitError","isInsideAwaitableBody","awaitableInitializers","findAwaitableInitializers","initializerChanges","makeChange3","getIdentifiersFromErrorSpanExpression","isCompleteFix","symbolReferenceIsAlsoMissingAwait","sides","diagnostic2","asyncIter","forOf","insertLeadingSemicolonIfNeeded","beforeNode","precedingToken","fixId4","errorCodes4","makeChange4","fixedNodes","isPossiblyPartOfDestructuring","applyChange","arrayElementCouldBeVariableDeclaration","commaExpression","isPossiblyPartOfCommaSeperatedInitializer","expressionCouldBeVariableDeclaration","fixId5","errorCodes5","makeChange5","fixId6","errorCodes6","makeChange6","fixId7","errorCodes7","makeChange7","useSingleQuotes","canUseImportMode","fixId8","errorCodes8","makeChange8","nextParam","tryGetNextParam","addOptionalPropertyUndefined","errorCodes9","getPropertiesToAdd","addUndefinedToOptionalProperty","sourceTarget","getSourceTarget","shouldUseParentTypeOfProperty","parentTarget","fixId9","errorCodes10","getDeclaration","doChange8","isDeclarationWithType","hasUsableJSDoc","transformJSDocType","transformJSDocOptionalType","transformJSDocNullableType","transformJSDocVariadicType","transformJSDocFunctionType","transformJSDocTypeReference","transformJSDocTypeLiteral","transformJSDocParameter","isRest","dotdotdot","transformJSDocIndexSignature","indexSignature","fixId10","errorCodes11","doChange9","ctorSymbol","ctorDeclaration","createClassFromFunction","createClassFromVariableDeclaration","createClassElementsFromSymbol","memberElements","prototypes","createClassElement","prototypeAssignment","isConstructorAssignment","shouldConvertDeclaration","_target","assignmentBinaryExpression","assignmentExpr","nodeToDelete","tryGetPropertyName","createFunctionLikeExpressionMember","createFunctionExpressionMember","createArrowFunctionExpressionMember","fullModifiers","getModifierKindFromSource","arrowFunction","arrowFunctionBody","bodyBlock","fixId11","errorCodes12","codeActionSucceeded","convertToAsyncFunction","functionToConvert","synthNamesMap","setOfExpressionsToReturn","getAllPromiseExpressionsToReturn","functionToConvertRenamed","renameCollidingVarNames","returnStatements","getReturnStatementsWithPromiseHandlers","transformExpression","hasFailed","ret","isPromiseReturningCallExpression","isPromiseTypedExpression","isReferenceToType","getExplicitPromisedTypeOfPromiseReturningCallExpression","nodeToRename","identsToRenameMap","collidingSymbolMap","lastCallSignature","getLastCallSignature","symbolIdString","ident","getNewNameIfConflict","collidingSymbols","prevSymbol","createSynthIdentifier","renameInfo","originalNames","numVarsSameName","silentFail","returnContextNode","hasContinuation","continuationArgName","transformThen","transformCatch","transformFinally","transformPromiseExpressionOfPropertyAccess","isNullOrUndefined2","createUniqueSynthName","prevArgName","renamedPrevArg","getPossibleNameForVarDecl","possibleNameForVarDecl","shouldReturn","isSynthIdentifier","newSynthName","declareSynthIdentifier","finishCatchOrFinallyTransform","varDeclIdentifier","typeArray","unionTypeNode","isSynthBindingPattern","declareSynthBindingPattern","onFinally","inlinedLeftHandSide","inlinedCallback","transformCallbackArgument","onRejected","inputArgName","getArgBindingName","declareSynthBindingName","onFulfilled","createVariableOrAssignmentOrExpressionStatement","rightHandSide","isEmptyBindingName","referenceSynthIdentifier","maybeAnnotateAndReturn","expressionToReturn","synthCall","varDeclOrAssignment","funcBody","refactoredStmts","seenReturnStatement","transformReturnStatementWithFixablePromiseHandler","possiblyAwaitedRightHandSide","getPossiblyAwaitedRightHandSide","removeReturns","inlinedStatements","transformedStatement","stmts","possiblyAwaitedExpression","innerRetStmt","innerCbBody","funcNode","getMappedBindingNameOrDefault","getMapEntryOrDefault","createSynthBindingPattern","getOriginalNode2","synthId","synthPattern","convertFileToEsModule","fixImportOfModuleExports","exportingFile","collectFreeIdentifiers","collectExportRenames","convertExportsAccesses","moduleExportsChangedToDefault","useSitesToUnqualify","newUseSites","convertVariableStatement","moduleExportsChanged","convertStatement","forEachExportReference","makeUniqueName","isAssignmentLhs","convertAssignment","foundImport","convertedImports","convertSingleImport","convertPropertyAccessImport","combinedUseSites","makeSingleImport","makeConst","tryChangeModuleExportsObject","convertReExportAll","convertNamedExport","convertExportsDotXEquals_replaceNode","functionExpressionToDeclaration","makeExportDeclaration","convertExportsPropertyAssignment","reExported","reExportDefault","reExportStar","semi","exportConst","classExpressionToDeclaration","replaceImportUseSites","nodeOrNodes","makeImportSpecifier2","convertSingleIdentifierImport","nameSymbol","namedBindingsNames","needDefaultImport","importDefaultName","idName","forEachFreeIdentifier","isFreeIdentifier","additionalModifiers","newImports","fixId12","errorCodes13","getQualifiedName","doChange10","rightText","errorCodes14","fixId13","fixSingleExportDeclaration","getExportSpecifierForDiagnosticSpan","fixedExportDeclarations","typeExportSpecifiers","getTypeExportSpecifiers","valueExportDeclaration","typeExportDeclaration","originExportSpecifier","errorCodes15","fixId14","getDeclaration2","doChange11","importDeclarationChanges","canConvertImportDeclarationForSpecifier","mainAction","fixedImportDeclarations","errorDeclaration","nonTypeOnlySpecifiers","newNamedBindings","fixId15","errorCodes16","doChange12","fixAll","createDeclaration","commentNode","leftSibling","rightSibling","getLeftAndRightSiblings","findEndOfTextBetween","typedefNode","maxChildIndex","currentNodeIndex","createInterfaceForTypeLiteral","createTypeAliasForTypeExpression","propertySignatures","createSignatureFromTypeLiteral","getPropertyName","fixId16","errorCodes17","getInfo5","doChange13","errorCodes18","fixId17","getClass","implementedTypeNode","addMissingDeclarations","seenClassDeclarations","symbolPointsToNonPrivateMember","maybeHeritageClauseSymbol","getHeritageClauseSymbolTable","implementedType","nonPrivateAndNotExistedInHeritageClauseMembers","createMissingIndexSignatureDeclaration","insertInterfaceMemberNode","indexInfoOfKind","newElement","heritageClauseNode","heritageClauseType","heritageClauseTypeSymbols","importFixId","errorCodes19","getFixInfos","fix","errorIdentifierText","codeActionForFix","createImportAdderWorker","addToNamespace","importType","addToExisting","removeExisting","verbatimImports","addImportFromDiagnostic","addImportFromExportedSymbol","addImportForModuleSymbol","writeFixes","hasFixes","addImportForUnresolvedIdentifier","addImportForNonExistentExport","removeExistingImport","addVerbatimImport","symbolToken","useAutoImportProvider2","getFixInfosWithoutDiagnostic","addImport","referenceImport","getAllExportInfoForSymbol","useRequire","shouldUseRequire","getImportFixForSymbol","addAsTypeOnly","symbolAlias","moduleSpecifierResult","getAddAsTypeOnly","importKind","existingFix","exportingFileName","exportedMeanings","isImportUsageValidAsTypeOnly","fixes","getImportFixes","futureExportingSourceFile","importClauseOrBindingPattern","prevTypeOnly","reduceAddAsTypeOnlyValues","getNewImportEntry","prevValue2","typeOnlyKey","newImportsKey","nonTypeOnlyKey","typeOnlyEntry","nonTypeOnlyEntry","newEntry","topLevelTypeOnly","oldFileQuotePreference","addNamespaceQualifier","addImportType","importSpecifiersToRemoveWhileAdding","importDeclarationsWithRemovals","variableDeclarationsWithRemovals","emptyImportDeclarations","emptyVariableDeclarations","namedBindingsToDelete","doAddExistingFix","newDeclarations","namespaceLikeImport","getNewRequires","getNewImports","getCombinedVerbatimImports","importDeclarations","requireStatements","packageJsonImportFilter","importMap","createExistingImportMap","getModuleSpecifierForBestExportInfo","fromCacheOnly","computedWithoutCacheCount","getBestFix","exportMapKey","isJsxTagName","exportInfos","getSingleExportInfoForSymbol","codeFixActionToCodeAction","getSymbolNamesToImport","getTypeOnlyPromotionFix","includeSymbolNameInDescription","getChecker","createGetChecker","isFileExcluded","mergedModuleSymbol","moduleSymbolExcluded","mainProgramInfo","getInfoWithChecker","usagePosition","existingImports","useNamespace","tryUseExistingNamespaceImport","tryAddToExistingImport","getFixesForAddImport","namespacePrefix","getNamespaceLikeImportText","isForNewImportDeclaration","existingImport","getAddToExistingImportFix","matchingDeclarations","getImpliedNodeFormatForEmit","otherFile","getNewImportFixes","rejectNodeModulesRelativePaths","getModuleSpecifiers2","exportInfo2","moduleSpecifiers","moduleSpecifierKind","importedSymbolHasValueMeaning","qualification","existingDeclaration","newImportInfoFromExistingSpecifier","getFixesInfoForUMDImport","getFixesInfoForNonUMDImport","sortFixInfo","_toPath","compareModuleSpecifiers","compareModuleSpecifierRelativity","compareNodeCoreModuleSpecifiers","isFixPossiblyReExportingImportingFile","isIndexFileName","reExportDir","umdSymbol","getUmdSymbol","forceImportKeyword","getEmitModuleFormatOfFile","getExportEqualsImportKind","getUmdImportKind","getExportInfos","typeOnlyAliasDeclaration","needsJsxNamespaceFix","currentTokenMeaning","originalSymbolToExportInfos","getModuleSpecifierResolutionHost","addSymbol","symbolFlagsHaveMeaning","exportSymbolWithIdenticalName","allowSyntheticDefaults","codeActionForFixWorker","getImportTypePrefix","moduleSpecifierWithoutQuotes","promotedDeclaration","promoteFromTypeOnly","getModuleSpecifierText","convertExistingToTypeOnly","newSpecifier","specifierComparer","promoteImportClause","changedExtension","removeExistingImportSpecifiers","addElementToBindingPattern","promoteFromTypeOnly2","existingSpecifiers","newSpecifiers","shouldUseTypeOnly","transformedExistingSpecifiers","namedImports2","needsTypeOnly","quotedModuleSpecifier","createConstEqualsRequireDeclaration","fixId18","errorCodes20","getInfo6","addMissingConstraint","tryGetConstraintType","tryGetConstraintFromDiagnosticMessage","fixName","fixAddOverrideId","fixRemoveOverrideId","errorCodes21","errorCodeFixIdMap","descriptions","fixAllDescriptions","dispatchChanges","doAddOverrideModifierChange","doRemoveOverrideModifierChange","findContainerClassElementLike","abstractModifier","accessibilityModifier","modifierPos","overrideModifier","isClassElementLikeHasJSDoc","fixId19","errorCodes22","getPropertyAccessExpression","doChange14","fixId20","errorCodes23","doChange15","fnKeyword","fixId21","errorCodes24","getInfo7","doChange16","tryGetExportDeclaration","doChanges","getNodeOfSymbol","updateExport","createExport","namedExports","allowTypeModifier","createExportSpecifiers","fixId22","errorCodes25","namedTupleMember","getNamedTupleMember","doChange17","sawOptional","sawRest","fixId23","errorCodes26","getInfo8","suggestedSymbol","doChange18","receiverType","resolvedSourceFile","getResolvedSourceFileFromImportDeclaration","baseDeclaration","convertSemanticMeaningToSymbolFlags","valDecl","fixId24","fixIdAddReturnStatement","fixRemoveBracesFromArrowFunctionBody","fixIdWrapTheBlockWithParen","errorCodes27","getInfo9","getActionForfixAddReturnStatement","getActionForFixRemoveBracesFromArrowFunctionBody","getActionForfixWrapTheBlockWithParen","addReturnStatement","removeBlockBodyBrace","wrapBlockWithParen","createObjectTypeFromLabeledExpression","getFixInfo","expectType","checkFixedAssignableTo","firstBlockStatement","newSig","getVariableLikeInitializer","probablyNeedSemi","commentSource","withParen","newBody","fixMissingMember","fixMissingProperties","fixMissingAttributes","fixMissingFunctionDeclaration","errorCodes28","getInfo10","addObjectLiteralProperties","addJsxAttributes","addFunctionDeclaration","addEnumMemberDeclaration","getActionsForMissingMethodDeclaration","getActionsForMissingMemberDeclaration","typeDeclToMembers","supers","getAllSupers","superClassOrInterface","superInfos","declSourceFile","isJSFile","addMethodDeclaration","addMissingMemberInJs","getTypeNode2","addPropertyDeclaration","getUnmatchedAttributes","findScope","leftExpressionType","moduleDeclarationSourceFile","makeStatic","createActionForAddMissingMemberInJavascriptFile","createActionsForAddMissingMemberInTypeScriptFile","tokenName","staticInitialization","initializePropertyToUndefined","lastProp","getNodeToInsertPropertyAfter","propertyInitialization","createUndefined","addPropertyDeclarationChanges","actions2","createAddIndexSignatureAction","otherExpression","stringTypeNode","addMethodDeclarationChanges","containingMethodDeclaration","tryGetContainingMethodDeclaration","hasStringInitializer","enumMember","jsxAttributesNode","hasSpreadAttribute","tryGetValueFromType","jsxAttribute","jsxAttributes","createPropertyNameFromSymbol","isObjectLiteralType","attrsType","targetProps","superElement","superSymbol","superDecl","fixId25","errorCodes29","addMissingNewOperator","findAncestorMatchingSpan2","newExpression","addMissingParamFixId","addOptionalParamFixId","errorCodes30","getInfo11","newOptionalParameters","doChange19","convertibleSignatureDeclarations","isConvertibleSignatureDeclaration","nonOverloadDeclaration","tryGetName2","parametersLength","argumentsLength","getOverloads","paramIndex","typeToTypeNode","createParameter","isOptionalPos","updateParameters","getParameterType","isOverload","importableReference","fixName2","fixIdInstallTypesPackage","errorCodeCannotFindModule","errorCannotFindImplicitJsxImport","errorCodes31","tryGetImportedPackageName","getTypesPackageNameToInstall","getInstallCommand","_changes","pkg","moduleSpecifierText","diagCode","errorCodes32","fixId26","addMissingMembers","getClass2","instantiatedExtendsType","abstractAndNonPrivateExtendsSymbols","symbolPointsToNonPrivateAndAbstractMember","fixId27","errorCodes33","getNodes","doChange20","seenClasses","findSuperCall","fixId28","errorCodes34","getNode","doChange21","fixID","errorCodes35","doChange22","fixId29","errorCodes36","getInfo12","doChange23","getSuggestion","codeFixes","fixId30","errorCodes37","getProperty2","doChange24","fixId31","errorCodes38","getNodes2","extendsToken","doChanges2","implementsToken","implementsFullStart","fixId32","didYouMeanStaticMemberCode","errorCodes39","getInfo13","doChange25","fixIdExpression","fixIdHtmlEntity","errorCodes40","changeToExpression","doChange26","changeToHtmlEntity","htmlEntity","isValidCharacter","useHtmlEntity","deleteUnmatchedParameter","renameUnmatchedParameter","errorCodes41","getInfo14","getDeleteAction","getRenameAction","tagsToSignature","tagsSet","jsDocHost","jsDocParameterTag","newJSDocParameterTag","fixId33","errorCodes42","getImportDeclaration","namespaceChanges","doNamespaceImportChange","typeOnlyChanges","doTypeOnlyImportChange","fixName3","fixIdPrefix","fixIdDelete","fixIdDeleteImports","fixIdInfer","errorCodes43","createDeleteFix","deleteTypeParameters","tryGetFullImport","isImport","deletion","tryDeleteDeclaration","deleteDestructuringElements","deleteDestructuring","canDeleteEntireVariableStatement","deleteEntireVariableStatement","deleteFunctionLikeDeclaration","changeInferToUnknown","tryPrefixDeclaration","isNotProvidedArguments","canPrefix","isFixAll","tryDeleteDeclarationWorker","mayDeleteExpression","tryDeleteParameter","mayDeleteParameter","referent","isSuperCall2","isSuperMethodCall","isOverriddenMethod","isCallbackLike","isLastParameter","fixId34","errorCodes44","doChange27","logData","lastWhere","fixId35","errorCodes45","doChange28","labeledStatement","statementPos","fixIdPlain","fixIdNullable","errorCodes46","getInfo15","doChange29","fixedType","oldTypeNode","isTypeContainer","getType","fixId36","errorCodes47","callName","getCallName","doChange30","fixId37","addAnnotationFix","addInlineTypeAssertion","extractExpression","errorCodes48","canHaveTypeAnnotation","declarationEmitNodeBuilderFlags2","declarationEmitInternalNodeBuilderFlags2","addCodeAction","withContext","typePrintMode","emptyInferenceResult","expandoPropertiesAdded","typePrinter","addTypeAnnotation","addInlineAssertion","extractAsVariable","nodeWithDiag","expandoFunction","findExpandoFunction","createNamespaceForExpandoProperties","fixIsolatedDeclarationError","nodeMissingType","findAncestorWithMissingType","expandoFunc","newProperties","typeToTypeNode2","needsParenthesizedExpressionForAssertion","createSatisfiesAsExpression","findBestFittingNode","isExpressionTarget","isShorthandPropertyAssignmentTarget","mutatedTarget","inferType","typeToStringForDiag","parentPropertyAssignment","replacementTarget","initializationNode","isConstAssertion2","variableDefinition","expandoDeclaration","addTypeToVariableLike","addTypeToSignatureDeclaration","transformExportAssignment","transformExtendsClauseWithExpression","transformDestructuringPatterns","defaultIdentifier","heritageExpression","heritageTypeNode","heritageVariable","realEnd","enclosingVariableDeclaration","enclosingVarStmt","baseExpr","tempHolderForReturn","addArrayBindingPatterns","addObjectBindingPatterns","expressionToVar","computedExpression","identifierForComputedProperty","variableDecl","variableInitializer","createChainedExpression","reverseTraverse","chainedExpression","nextSubExpr","relativeType","typePredicateToTypeNode","createTypeOfFromEntityNameExpression","typeFromArraySpreadElements","typeFromSpreads","typeFromObjectSpreadAssignment","createSpread","makeNodeOfKind","finalType","newSpreads","currentVariableProperties","finalizesVariablePart","makeVariable","partName","mTrue","mFalse","isTruncated","minimizedTypeNode","fixId38","errorCodes49","getNodes3","doChange31","getReturnType","insertBefore","errorCodes50","fixId39","doChange32","edit","fixId40","errorCodes51","doChange33","getDiagnostic","markSeen","mapSuggestionDiagnostic","annotateVariableDeclaration","inferTypeForVariableFromUsage","annotateSetAccessor","annotateParameters","annotate","annotateThis","parameterInferences","inferTypeForParametersFromUsage","annotateJSDocParameters","getFunctionReferences","thisInference","inferTypeFromReferences","annotateJSDocThis","setAccessorDeclaration","tryReplaceImportTypeNodeWithAutoImport","getReferences","searchToken","builtinConstructors","single2","createEmptyUsage","combineUsages","usages","combinedProperties","ps","combineTypes","inferTypesFromReferencesSingle","calculateUsageOfNode","references2","inferTypeFromExpressionStatement","inferTypeFromPrefixUnaryExpression","inferTypeFromBinaryExpression","inferTypeFromSwitchStatementLabel","inferTypeFromCallExpression","inferTypeFromContextualType","inferTypeFromPropertyAccessExpression","inferTypeFromPropertyElementExpression","inferTypeFromPropertyAssignment","inferTypeFromPropertyDeclaration","addCandidateType","otherOperandType","propertyUsage","indexUsage","nodeWithRealType","addCandidateThisType","removeLowPriorityInferences","priorities","toRemove","combineFromUsage","stringNumber","good","anons","combineAnonymousTypes","stringIndices","numberIndices","stringIndexReadonly","numberIndexReadonly","anon2","numberIndexInfo","inferStructuralType","candidateTypes","callsType","inferNamedTypesFromProperties","getSignatureFromCalls","allPropertiesAreAssignableToUsage","inferInstantiationFromUsage","propUsage","getFunctionFromCalls","generic","singleTypeParameter","genericPropertyType","inferTypeParameters","genericType","usageType","genericArgs","usageArgs","genericSigs","usageSigs","genericSig","usageSig","genericParam","usageParam","genericParamType","genericReturn","usageReturn","parameters2","fixId41","errorCodes52","getInfo16","promisedTypeNode","doChange34","fixName4","fixId42","errorCodes53","makeChange9","seenLines","possiblyMissingSymbols","addClassElement","classMembers","PreserveOptionalFlags2","preserveOptional","createDeclarationName","effectiveModifierFlags","createModifiers","createName","orderedAccessors","createBody","createDummyParameters","outputMethod","createMethodImplementingSignatures","quotePreference2","shouldAddOverrideKeyword","ambient2","createStubbedMethodBody","parameterDecl","instanceTypes","argumentTypeNodes","argumentTypeParameters","getArgumentTypesAndTypeParameters","createTypeParametersForArguments","usedNames","pair","constraintsByName","typeArgumentsWithNewTypes","createTypeParameterName","usedName","endOfRequiredTypeParameters","fullTypeArguments","cutoff","typePredicateNode","typeContainsTypeParameter","synthesizedTypeParameterName","widenedInstanceType","argumentTypeNode","argumentTypeParameter","getFirstTypeParameterName","instanceTypeConstraint","isAnonymousObjectConstraintType","subTypeName","parameterNameCounts","parameterNameCount","maxArgsSignature","someSigHasRestParameter","maxNonRestArgs","maxArgsParameterSymbolNames","createStubbedMethod","getReturnTypeFromSignatures","tsconfigObjectLiteral","findJsonProperty","createJsonPropertyAssignment","optionValue","optionProperty","replaceFirstIdentifierOfEntityName","newIdentifier","fieldInfo","accessorModifiers","fieldModifiers","prepareModifierFlagsForAccessor","prepareModifierFlagsForField","updateFieldDeclaration","generateGetAccessor","insertAccessor","updateReadonlyPropertyInitializerStatementConstructor","generateSetAccessor","isConvertibleName","isAcceptedDeclaration","createPropertyName","createAccessorAccessExpression","leftHead","startWithUnderscore","getDeclarationType","updatePropertyDeclaration","updatePropertyAssignmentDeclaration","fixName5","getCodeFixesForImportDeclaration","variations","createAction","getActionsForUsageOfInvalidImport","targetKind","getImportCodeFixesForExpression","getActionsForInvalidImportLocation","relatedImport","fixName6","fixIdAddDefiniteAssignmentAssertions","fixIdAddUndefinedType","fixIdAddInitializer","errorCodes54","getInfo17","getActionForAddMissingUndefinedType","getActionForAddMissingDefiniteAssignmentAssertion","getActionForAddMissingInitializer","addDefiniteAssignmentAssertion","addUndefinedType","getInitializer","addInitializer","propertyDeclarationSourceFile","undefinedTypeNode","getDefaultValueFromType","fixId43","errorCodes55","getInfo18","doChange35","tryCreateNamedImportsFromObjectBindingPattern","fixId44","errorCodes56","getInfo19","doChange36","fixId45","errorCodes57","makeChange10","numericLiteral","fixIdAddMissingTypeof","fixId46","errorCodes58","getImportTypeNode","doChange37","fixID2","errorCodes59","findNodeToFix","doChange38","binaryExpr","flattenInvalidBinaryExpr","fixId47","errorCodes60","makeChange11","fixId48","errorCodes61","getInfo20","doChange39","createTypeAliasFromInterface","otherMembers","mappedTypeParameter","mappedIntersectionType","intersectionType","fixId49","errorCodes62","fixId50","errorCodes63","makeChange12","awaitKeyword","expressionToReplace","leftMostExpression","errorCodes64","fixId51","splitTypeOnlyImport","getImportDeclaration2","fixId52","errorCodes65","getInfo21","doChange40","constToken","fixId53","expectedErrorCode","errorCodes66","getInfo22","doChange41","fixName7","fixId54","errorCodes67","makeChange13","getEffectiveTypeArguments","CompletionKind","CompletionSource","SortText","ts_Completions_StringCompletions_exports","SymbolOriginInfoKind","createCompletionDetails","createCompletionDetailsForSymbol","getCompletionEntriesFromSymbols","getCompletionEntryDetails","getCompletionEntrySymbol","getCompletionsAtPosition","getDefaultCommitCharacters","getPropertiesForObjectExpression","moduleSpecifierResolutionCacheAttemptLimit","moduleSpecifierResolutionLimit","sortText","presetSortText","symbolDisplayName","allCommitCharacters","noCommaCommitCharacters","CompletionSource2","SymbolOriginInfoKind2","originIsThisType","originIsSymbolMember","originIsExport","originIsResolvedExport","originIncludesSymbolName","originIsComputedPropertyName","originIsPackageJsonImport","originIsPromise","originIsNullableMember","originIsTypeOnlyAlias","originIsObjectLiteralMethod","originIsIgnore","resolvingModuleSpecifiers","logPrefix","isForImportStatementCompletion","needsFullResolution","skippedAny","ambientCount","resolvedCount","resolvedFromCacheCount","cacheAttemptCount","hitRateMessage","isFromAmbientModule","shouldResolveModuleSpecifier","shouldGetModuleSpecifierFromCache","isNewIdentifierLocation","triggerCharacter","completionKind","includeSymbol","getRelevantTokens","isValidTrigger","incompleteCompletionsCache","incompleteContinuation","continuePreviousIncompleteResponse","stringCompletions","getLabelCompletionAtPosition","completionData","getCompletionData","response","completionInfoFromData","jsdocCompletionInfo","getJSDocParameterCompletions","specificKeywordCompletionInfo","compareCompletionEntries","entryInArray","entryToInsert","completionEntryDataIsResolved","previousResponse","touchNode","lowerCaseTokenText","exportMap","newEntries","charactersFuzzyMatchInString","getAutoImportSymbolFromCompletionEntryData","originToCompletionEntryData","getSourceFromOrigin","getOptionalReplacementSpan","tagNameOnly","isSnippet","paramTagCount","tabstopCounter","displayText","getJSDocParamAnnotation","snippetText","paramPath","displayTextResult","generateJSDocParamTagsForDestructuring","snippetTextResult","patternWorker","dotDotDotToken2","childCounter","rootParam","childTags","elementTags","elementWorker","isObject","getJSDocParamNameWithInitializer","builderFlags","createSnippetPrinter","dotDotDot","initializerText","keywordToCompletionEntry","keywordCompletionData","keywordFilters","filterOutTsOnlyKeywords","getKeywordCompletions","keywordFiltersFromSyntaxKind","keywordCompletion","isInSnippetScope","propertyAccessToConvert","symbolToOriginInfoMap","recommendedCompletion","isJsxInitializer","isTypeOnlyLocation","isJsxIdentifierExpected","isRightOfOpenTag","isRightOfDotOrQuestionDot","importStatementCompletion","insideJsDocTagTypeExpression","symbolToSortTextMap","hasUnresolvedAutoImports","defaultCommitCharacters","completionInfo","getJsxClosingTagCompletion","isChecked","isCheckedFile","keywordEntry","isContextualKeywordInAutoImportableExpressionSpace","getContextualKeywords","literalEntry","createCompletionEntryForLiteral","getJSCompletionEntries","cases","getExhaustiveCaseSnippets","isMemberCompletionKind","switchType","typeNodeToExpression","newClauses","newLineChar","insertText","entityNameToExpression","objectExpression","jsxClosingElement","hasClosingAngleBracket","fullClosingTag","replacementSpan","realName","completionNameForLiteral","createCompletionEntry","replacementToken","needsConvertPropertyAccess","useSemicolons","filterText","sourceDisplay","hasAction","labelDetails","insertQuestionDot","useBraces","quotePropertyName","dot","awaitText","wrapNode","getInsertTextAndReplacementSpanForImportCompletion","isClassLikeMemberCompletion","memberCompletionEntry","getEntryForMemberCompletion","useBraces2","parentNamedImportOrExport","generateIdentifierForArbitraryString","possibleToken","commitCharacters","isRecommendedCompletionMatch","needsUnderscore","emptyStmt","presentModifiers","eraseRange","presentDecorators","getPresentModifiers","completionNodes","requiredModifiers","allowedModifiers","allowedAndPresent","lastNode","contextMod","isModifierLike2","contextModifierFlag","getEntryForObjectLiteralMethodCompletion","createObjectLiteralMethod","signaturePrinter","methodSignature","effectiveType","functionTypes","typedParam","escapes","baseWriter","escapingWrite","printSnippetList","printAndFormatSnippetList","printAndFormatNode","unescaped","printUnescapedSnippetList","syntheticFile","nodeWithPos","allChanges","printUnescapedNode","isPackageJsonImport","completionEntryDataToSymbolOriginInfo","completionName","tabStop","isImportSpecifierTypeOnly","topLevelTypeOnlyText","importSpecifierTypeOnlyText","jsxIdentifierExpected","closestSymbolDeclaration","getClosestSymbolDeclaration","uniques","getCompletionEntryDisplayNameForSymbol","shouldIncludeSymbol","symbolAppearsToBeTypeOnly","originalSortText","isDeprecated","shouldShadowLaterSymbols","symbolToSortTextMap2","symbolDeclaration","isInTypeParameterDefault","symbolOrigin","symbolCanBeReferencedAtTypeLocation","getLabelStatementCompletions","getSymbolCompletionFromEntryId","entryId","autoImport","contextToken2","previousToken2","symbolCompletion","request","createSimpleDetails","codeActions","getCompletionEntryCodeActionsAndSourceDisplay","snippets","allKeywordsCompletions","kind2","checker2","getImportStatementCompletionInfo","codeAction2","isJsxOpeningTagName","codeAction","completion","CompletionKind2","getRecommendedCompletion","getFirstSymbolInChain","getContextualType","argInfo","isModuleSymbol","detailsEntryId","inCheckedFile","insideComment","insideJsDocImportTag","getJsDocTagAtPosition","tryGetTypeExpressionFromTag","isCurrentlyEditingNode","isJsOnlyLocation","tokens","isRightOfDot","isRightOfQuestionDot","isStartingCloseTag","importStatementCompletionInfo","isCompletionListBlocker","computeCommitCharactersAndIsNewIdentifier","leftmostAccessExpression","binaryExpressionMayBeOpenTag","semanticStart","importSpecifierResolver","seenPropertySymbols","isTypeOnlyCompletion","getTypeScriptMemberSymbols","tryGetGlobalSymbols","tagSymbol","isTagWithTypeExpression","isImportType","isTypeLocation","isRhsOfImportDeclaration","isNamespaceName","isValidValueAccess","isValidTypeAccess","isValidAccess","canCorrectToQuestionDot","addTypeProperties","insertAwait","addPropertySymbol","getPropertiesForCompletion","leftMostName","getLeftMostName","firstAccessibleSymbol","firstAccessibleSymbolId","getNullableSymbolOriginInfoKind","addSymbolOriginInfo","addSymbolSortInfo","isStaticProperty","tryGetObjectTypeLiteralInTypeArgumentCompletionSymbols","tryGetObjectLikeCompletionSymbols","tryGetImportCompletionSymbols","tryGetImportOrExportClauseCompletionSymbols","tryGetImportAttributesCompletionSymbols","tryGetLocalNamedExportCompletionSymbols","tryGetConstructorCompletion","tryGetClassLikeCompletionSymbols","tryGetJsxCompletionSymbols","getGlobalCompletions","tryGetConstructorLikeCompletionContainer","jsxContainer","tryGetContainingJsxElement","completionsType","filterJsxAttributes","setSortTextToOptionalMember","collectAutoImports","tryGetFunctionLikeBodyCompletionContainer","adjustedPosition","scopeNode","getScopeNode","isSnippetScope","symbolMeanings","typeOnlyAliasNeedsPromotion","isProbablyGlobalType","shouldOfferImportCompletions","isContextTokenValueLocation","isContextTokenTypeLocation","packageJsonAutoImportProvider","isImportableExportInfo","pushAutoImportSymbol","collectObjectLiteralMethodSymbols","isObjectLiteralMethodSymbol","displayName","entryProps","initialToken","position2","isInStringOrRegularExpressionOrTemplateLiteral","isSolelyIdentifierDefinitionLocation","isDotOfNumericLiteral","isInJsxText","containingNodeKind","keywordForNode","isClassMemberCompletionKeyword","tryGetTypeLiteralNode","containerTypeNode","containerExpectedType","getConstraintOfTypeArgumentProperty","containerActualType","existingMembers","existingMemberEscapedNames","symbolsStartIndex","objectLikeContainer","tryGetObjectLikeCompletionContainer","typeMembers","tryGetObjectLiteralContextualType","hasStringIndexType","hasNumberIndextype","canGetType","typeForObject","filteredMembers","filterObjectMembersList","transformObjectLiteralMembersSortText","namedImportsOrExports","moduleSpecifierSymbol","importAttributes","localsContainer","tryGetObjectTypeDeclarationCompletionContainer","classElementModifierFlags","filterClassMembersList","isConstructorParameterCompletion","isInDifferentLineThanContextToken","isVariableDeclarationListButNotTypeArgument","isFunctionLikeButNotConstructor","isFromObjectTypeDeclaration","isPreviousPropertyDeclarationTerminated","ancestorPropertyDeclaraion","contextualMemberSymbols","membersDeclaredBySpreadAssignment","existingMemberNames","existingName","setMembersDeclaredBySpreadAssignment","filteredSymbols","setSortTextToMemberDeclaredBySpreadAssignment","contextualMemberSymbol","currentClassElementModifierFlags","symbols2","ancestorNode2","ancestorNode","containingProgram","validNameResult","_keywordCompletions","keywordFilter","getTypescriptKeywordCompletions","isTypeScriptOnlyKeyword","isFunctionLikeBodyKeyword","isInterfaceOrTypeLiteralCompletionKeyword","tokenLine","hasCompletionsType","promiseFilteredContextualType","getApparentProperties","containsNonPublicProperties","hasDeclarationOtherThanSelf","isValidKeyword","selfSymbol","isKeywordOnlyCompletion","getCandidate","couldBeTypeOnlyImportSpecifier","getSingleLineReplacementSpanForImportCompletionNode","isModuleSpecifierMissingOrEmpty","canCompleteFromNamedBindings","potentialSplitPoint","getPotentiallyInvalidImportSpecifier","withoutModuleSpecifier","importSpecifier","invalidNamedImport","closestDeclaration","isArrowFunctionBody","seenModules","nonAliasCanBeReferencedAtTypeLocation","identifierString","lowercaseCharacters","matchedFirstCharacter","prevChar","characterIndex","strIndex","strChar","testChar","toUpperCharCode","getStringLiteralCompletionDetails","getStringLiteralCompletions","kindPrecedence","createNameAndKindSet","getTripleSlashReferenceCompletion","convertPathCompletions","getStringLiteralCompletionEntries","convertStringLiteralCompletions","optionalReplacementSpan","completions","stringLiteralCompletionDetails","kindModifiersFromExtension","pathCompletions","walkUpParentheses","getStringLiteralCompletionsFromModuleNames","fromUnionableLiteralType","stringLiteralCompletionsForObjectLiteral","fromContextualType","stringLiteralCompletionsFromProperties","isRequireCallArgument","argumentInfo","getStringLiteralCompletionsFromSignature","getStringLiteralTypes","alreadyUsedTypes","getAlreadyUsedTypesInStringLiteralUnion","isNewIdentifier","objectLiteralExpression","nameAndKind","directoryResult","addReplacementSpans","textStart","getDirectoryFragmentTextSpan","wholeSpan","getStringLiteralCompletionsFromModuleNamesWorker","scriptPath","scriptDirectory","extensionOptions","getExtensionOptions","isPathRelativeToScript","getCompletionEntriesForRelativeModules","getCompletionEntriesForNonRelativeModules","referenceKind","getSupportedExtensionsForModuleResolution","getCompletionEntriesForDirectoryFragmentWithRootDirs","getCompletionEntriesForDirectoryFragment","ambientModulesExtensions","getBaseDirectoriesFromRootDirs","relativeDirectory","baseDirectories","itemA","itemB","moduleSpecifierIsRelative","pathInPackage","addCompletionEntriesFromPaths","getFilenameWithExtensionOption","isExportsOrImportsWildcard","nonJsResult","outputExtension2","outputExtension","getPatternsForKey","comparePaths2","patternA","patternB","lengthA","lengthB","addCompletionEntriesFromPathsOrExportsOrImports","isExports","pathResults","matchedPath","keyWithoutLeadingDotSlash","pathPattern","isMatch","getCompletionsForPathMapping","pathResult","fragmentDirectory","getFragmentDirectory","ambientName","getAmbientModuleCompletions","getCompletionEntriesFromTypings","foundGlobal","enumerateNodeModulesVisibleToScript","moduleResult","resolvePackageJsonExports","resolvePackageJsonImports","seenPackageScope","importsLookup","exportsOrImportsLookup","ancestorLookup","nodeModulesDirectoryOrImportsLookup","subName","fragmentSubpath","fragment2","getPatternFromFirstMatchingCondition","containsSlash","parsedPath","justPathMappingName","remainingFragment","getModulesForPathsPattern","normalizedPrefix","normalizedPrefixDirectory","normalizedPrefixBase","fragmentHasPath","expandedPrefixDirectory","possibleInputBaseDirectoryForOutDir","possibleInputBaseDirectoryForDeclarationDir","normalizedSuffix","inputExtension","matchingSuffixes","includeGlobs","getMatchesWithPrefix","getDirectoryMatches","completePrefix","trimmedWithPattern","trimPrefixAndSuffix","removeLeadingDirectorySeparator","withoutStartAndEnd","nonRelativeModuleNames","moduleNameWithSeparator","tripleSlashDirectiveFragmentRegex","toComplete","getCompletionEntriesFromDirectories","typesDir","typeDirectoryName","nodeModulesDependencyKeys","slashIndex","slashCharCode","Core","DefinitionKind","EntryKind","ExportKind2","FindReferencesUse","ImportExport","createImportTracker","findModuleReferences","findReferenceOrRenameEntries","findReferencedSymbols","getContextNode","getExportInfo","getImplementationsAtPosition","getImportOrExportSymbol","getReferenceEntriesForNode","isContextWithStartAndEndNode","isDeclarationOfSymbol","isWriteAccessForReference","toContextSpan","toHighlightSpan","toReferenceEntry","toRenameLocation","allDirectImports","getDirectImportsMap","isForRename","directImports","indirectUsers","getImportersForExport","getSearchesFromDirectImports","ImportExport2","markSeenDirectImport","markSeenIndirectUser","isAvailableThroughGlobal","indirectUserDeclarations","handleDirectImports","getIndirectUsers","addIndirectUser","exportingModuleSymbol2","theseDirectImports","getDirectImports","handleImportCall","handleNamespaceImport","getSourceFileLikeForImportDeclaration","getContainingModuleSymbol","importCall","isAmbientModuleDeclaration","stopAtAmbientModule","isReExport","alreadyAddedDirect","findNamespaceReExports","addTransitiveDependencies","directImports2","directImport","importSearches","singleReferences","addSearch","handleImport","isExternalModuleImportEquals","handleNamespaceImportLike","searchForNamedImport","defaultImportAlias","isNameMatch","namespaceImportSymbol","forEachPossibleImportOrExportStatement","searchModuleSymbol","refs","searchSourceFile","forEachImport","comingFromExport","getExport","getImport","getSpecialPropertyExport","getExportKindForDeclaration","getExportNode","getExportAssignmentExport","useLhsSymbol","isNodeImport","importedSymbol","skipExportSpecifierSymbol","getExportEqualsLocalSymbol","eq","DefinitionKind2","EntryKind2","nodeEntry","getContextNodeForNodeEntry","validImport","declOrStatement","contextSpan","getTextSpan","FindReferencesUse2","isDefinitionForReference","definitionToReferencedSymbolDefinitionInfo","toReferencedSymbolEntry","getImplementationReferenceEntries","seenNodes","entries2","toImplementationLocation","convertEntry","flattenEntries","referenceSymbols","def","displayParts2","getDefinitionKindAndDisplayParts","getFileAndTextSpanFromNode","providePrefixAndSuffixText","entryToDocumentSpan","getPrefixAndSuffixText","referenceEntry","isShorthandAssignment","prefixColon","suffixColon","implementationKindDisplayParts","writeAccess","getTextSpanOfEntry","declarationIsWriteAccess","commonjsSource","Core2","getReferencedSymbolsForNode","getAdjustedNode2","getReferencedSymbolsForModule","getReferencesForNonModule","getReferencedSymbolsSpecial","getReferencesForStringLiteral","moduleReferences","getReferencedSymbolsForModuleIfDeclaredBySourceFile","aliasedSymbol","getMergedAliasedSymbolOfNamespaceExportDeclaration","moduleReferencesOfExportTarget","getReferencedSymbolsForSymbol","mergeReferences","getReferencesForFileName","refFileMap","referencesToMerge","refIndex","entry1","entry2","entry1File","getSourceFileIndexOfEntry","entry2File","entry1Span","entry2Span","excludeImportTypeOfExportEquals","getAllReferencesForKeyword","getAllReferencesForImportMeta","labelDefinition","getLabelReferencesInNode","getReferencesForThisKeyword","getReferencesForSuperKeyword","skipPastExportOrImportSpecifierOrUnion","isForRenameWithPrefixAndSuffixText","searchMeaning","getIntersectingMeaningFromDeclarations","State","getSpecialSearchKind","getReferencesAtExportSpecifier","addReference","searchForImportsOfExport","search","populateSearchSymbolSet","getReferencesInContainerOrFiles","getSymbolScope","getReferencesInContainer","searchForName","useLocalSymbolForExportSpecifier","getLocalSymbolForExportSpecifier","SpecialSearchKind","SpecialSearchKind2","getNonModuleSymbolOfMergedModuleSymbol","specialSearchKind","comingFrom","searchOptions","allSearchSymbols","getParentSymbolsOfPropertyAccess","searchSymbol","anyNewSymbols","exportLocation","addRef","singleRef","shouldAddSingleReference","importLocation","getReferencesInSourceFile","indirectSearch","indirectUser","eachExportReference","importTracker","singleReference","getPossibleSymbolReferenceNodes","hasExportAssignmentDeclaration","hasMatchingMeaning","searchForImportedSymbol","privateDeclaration","exposedByParent","isSymbolReferencedInFile","searchContainer","eachSymbolReferenceInFile","referenceSymbol","getTopMostDeclarationNamesInFile","topMost","getDepth","someSignatureUsage","getPossibleSymbolReferencePositions","sourceLength","targetLabel","isValidReferencePosition","searchSymbolName","addReferencesHere","getReferencesAtLocation","getReferencesAtJSDocTypeLiteral","relatedSymbol","getRelatedSymbol","getReferenceForShorthandProperty","addConstructorReferences","addClassStaticThisReferences","getImportOrExportReferences","alwaysGetReferences","isExportSpecifierAlias","shorthandValueSymbol","addImplementationReferences","pusher","findOwnConstructorReferences","classExtending","tryGetClassByExtendingIdentifier","findSuperConstructorAccesses","findInheritedConstructorReferences","addNode","getClassConstructorSymbol","forEachDescendantOfKind","hasOwnConstructor","addReference2","isImplementation","getReferenceEntriesForShorthandPropertyAssignment","getContainingNodeIfInHeritageClause","typeHavingNode","addIfImplementation","isImplementationExpression","explicitlyInheritsFrom","cachedResults","inherits","superKeyword","searchSpaceNode","staticFlag","isParameterName","thisOrSuperKeyword","refType","isStringLiteralPropertyReference","implementations","forEachRelatedSymbol","isForRenamePopulateSearchSymbolSet","onlyIncludeBindingElementAtReferenceLocation","cbSymbol","allowBaseTypes","containingObjectLiteralElement","res2","fromRoot","res1","res22","paramProps","bindingElementPropertySymbol","getPropertySymbolOfObjectBindingPatternWithoutPropertyName","getPropertySymbolsFromBaseTypes","lastIterationMeaning","declarationMeaning","refSymbol","shorthandSymbol","createDefinitionInfo","getDefinitionAndBoundSpan","getDefinitionAtPosition","getReferenceAtPosition","getTypeDefinitionAtPosition","fileReferenceDefinition","getDefinitionInfoForFileReference","getDefinitionFromOverriddenMember","createDefinitionInfoFromName","createDefinitionInfoFromSwitch","findFunctionDecl","createDefinitionFromSignatureDeclaration","failedAliasResolution2","getSymbol","failedAliasResolution","fallbackNode","getDefinitionInfoForIndexSignatures","calledDeclaration","tryGetSignatureDeclaration","isJsxConstructorLike","sigInfo","declarationFilter","symbolMatchesSignature","defs","getDefinitionFromSymbol","definitions","getDefinitionFromObjectLiteralElement","objectLiteralElementDefinition","findReferenceInPosition","libReferenceDirective","verifiedFileName","typesWithUnwrappedTypeArguments","shouldUnwrapFirstTypeArgumentTypeDefinitionFromTypeReference","referenceName","shouldUnwrapFirstTypeArgumentTypeDefinitionFromAlias","getFirstTypeArgumentDefinitions","definitionFromType","typeAtLocation","tryGetReturnTypeOfFunction","fromReturnType","typeDefinitions","shouldSkipAlias","isExpandoDeclaration","containingAssignment","filteredDeclarations","signatureDefinition","getConstructSignatureDefinition","getCallSignatureDefinition","withoutExpandos","getSignatureDefinition","selectConstructors","declarationsWithBody","unverified","isDefinitionVisible","getAncestorCallLikeExpression","provideInlayHints","leadingParameterNameCommentRegexFactory","shouldShowParameterNameHints","shouldShowLiteralParameterNameHintsOnly","shouldUseInteractiveInlayHints","sourceFileText","visitVariableLikeDeclaration","visitEnumMember","visitCallOrNewExpression","visitFunctionLikeForParameterType","isSignatureSupportingReturnAnnotation","visitFunctionDeclarationLikeForReturnType","addParameterHints","isFirstVariadicArgument","hintText","getNodeDisplayPart","addTypeHints","addEnumMemberValueHints","isModuleReferenceType","isHintableDeclaration","hintParts","typeToInlayHintParts","signatureParamPos","originalArg","isHintableLiteral","spreadArgs","identifierInfo","identifierOrAccessExpressionPostfixMatchesParameterName","leadingCommentsContainsParameterName","regex","isUndefined","hintParts2","typePredicateToInlayHintParts","getTypeAnnotationPosition","closeParenToken","addParameterTypeHint","typeHints","getParameterDeclarationTypeHints","signatureParamType","printTypeInSingleLine","printTypePredicateInSingleLine","getInlayHintDisplayParts","visitForDisplayParts","getLiteralText2","identifierText","visitDisplayPartList","visitParametersAndTypeParameters","getDocCommentTemplateAtPosition","getJSDocParameterNameCompletionDetails","getJSDocParameterNameCompletions","getJSDocTagCompletionDetails","getJSDocTagCompletions","getJSDocTagNameCompletionDetails","getJSDocTagNameCompletions","getJsDocCommentsFromDeclarations","getJsDocTagsFromDeclarations","jsDocTagNames","jsDocTagNameCompletionEntries","jsDocTagCompletionEntries","jsdoc","getCommentHavingNodes","inheritDoc","newparts","getDisplayPartsFromComment","isIdenticalListOfDisplayParts","parts1","getCommentDisplayParts","getJSDocPropertyTagsInfo","tryGetJSDocPropertyTags","namePart","getTagNameDisplayPart","withNode","templateTag","lastTypeParameter","addComment","nameThusFar","tokenAtPos","existingDocComment","commentOwnerInfo","getCommentOwnerInfo","commentOwner","commentOwnerJsDoc","indentationStr","getIndentationStringAtPosition","parameterDocComments","returnsDocComment","closeComment","hasTag","getCommentOwnerInfoWorker","hasReturn","varDeclarations","getRightHandSideOfAssignment","be","mapCode","parse","flattenedLocations","placeNodeGroup","nodeKinds","cw","parsedNodes","parse2","bod","placeClassNodeGroup","placeStatements","classOrInterface","firstMatch","matchNode","lastMatch","wipeNode","origStmt","newStmt","scopeStatements","resetNodePositions","compareImportsOrRequireStatements","compareModuleSpecifiers2","getImportDeclarationInsertionIndex","getImportSpecifierInsertionIndex","getNamedImportSpecifierComparerWithDetection","getOrganizeImportsStringComparerWithDetection","organizeImports","testCoalesceExports","testCoalesceImports","shouldSort","shouldCombine","shouldRemove","topLevelImportDecls","topLevelImportGroupDecls","groupByNewlineContiguous","comparersToTest","typeOrdersToTest","getDetectionLists","defaultComparer","detectModuleSpecifierCaseBySort","namedImportSort","detectNamedImportOrganizationBySort","namedImportComparer","typeOrder","importGroupDecl","organizeImportsWorker","getTopLevelExportGroups","exportGroupDecl","organizeExportsWorker","ambientModuleExportDecls","organizeDeclsWorker","oldImportDecls","coalesce","oldImportGroups","getExternalModuleName2","sortedImportGroups","group1","compareModuleSpecifiersWorker","newImportDecls","importGroup","replaceOptions","comparer2","detectedModuleCaseComparer","detectedNamedImportCaseComparer","detectedTypeOrder","getNamedImportSpecifierComparer","removeUnusedImports","coalesceImportsWorker","oldExportDecls","specifierCaseComparer","useComparer","coalesceExportsWorker","getOrganizeImportsStringComparer","isNewGroup","numberOfNewLines","topLevelExportGroups","exportGroupDecls","oldImports","jsxElementsPresent","usedImports","isDeclarationUsed","updateImportDeclarationAndClause","hasModuleDeclarationMatchingSpecifier","getCategorizedImports","importWithoutClause","typeOnlyImports","regularImports","importGroupsByAttributes","x2","coalescedImports","importGroupSameAttrs","defaultImports","namespaceImports","sortedNamespaceImports","firstDefaultImport","firstNamedImport","newDefaultImport","newImportSpecifiers","getNewImportSpecifiers","sortedImportSpecifiers","exportGroup","exportWithoutClause","typeOnlyExports","getCategorizedExports","coalescedExports","exportGroup2","newExportSpecifiers","sortedExportSpecifiers","exportWithoutClause2","namedExports2","typeOnlyExports2","compareImportOrExportSpecifiers","name1","getModuleNamesFromDecls","getModuleSpecifierExpression","tryGetNamedBindingElements","importDeclsByGroup","moduleSpecifiersByGroup","detectCaseSensitivityBySort","originalGroups","typesToTest","bothNamedImports","importDeclsWithNamed","namedImportsByDecl","sortState","bestDiff","bestComparer","curComparer","currDiff","measureSortedness","n1","bestKey","bestTypeOrder","testKey","diffOfCurrentComparer","listToSort","compareImportKind","getImportKindOrder","getOrganizeImportsOrdinalStringComparer","getOrganizeImportsUnicodeStringComparer","resolvedLocale","getOrganizeImportsLocale","caseFirst","numeric","accents","sensitivity","supportedLocales","originalImportDecls","stringComparer","detectFromDecl","isDetectedSorted","detectFromFile","sortedImports","collectElements","addNodeOutliningSpans","addRegionOutliningSpans","depthRemaining","firstImport","lastImport","createOutliningSpanFromBounds","addOutliningForLeadingCommentsForNode","addOutliningForLeadingCommentsForPos","getOutliningSpanForNode","regions","currentLineStart","parseRegionDelimiter","createOutliningSpan","region","regionDelimiterRegExp","firstSingleLineCommentStart","lastSingleLineCommentEnd","singleLineCommentCount","combineAndAddMultipleSingleLineComments","functionSpan","spanForNode","spanForNodeArray","spanForObjectOrArrayLiteral","spanForJSXElement","spanForJSXFragment","spanForJSXAttributes","spanForTemplateLiteral","spanForArrowFunction","spanForCallExpression","spanForParenthesizedExpression","spanForImportExportElements","openToken","closeToken","spanBetweenTokens","bannerText","hintSpanNode","autoCollapse","useFullStart","tryGetFunctionOpenToken","hintSpan","openParenToken","getRenameInfo","nodeIsEligibleForRename","getRenameInfoForNode","getRenameInfoError","getRenameInfoSuccess","isDefinedInLibraryFile","getRenameInfoForModule","wouldRenameNodeModules","wouldRenameInOtherNodeModules","fullDisplayName","originalPackage","getPackagePathComponents","declPackage","nodeModulesIdx","indexAfterLastSlash","triggerSpan","createTriggerSpanForNode","getArgumentInfoForCompletions","getSignatureHelpItems","startingToken","onlyUseSyntacticOwners","isManuallyInvoked","getContainingArgumentInfo","candidateInfo","getCandidateOrTypeInfo","createSignatureHelpItems","createTypeHelpItems","createJSSignatureHelpItems","isSyntacticOwner","containsPrecedingToken","invocationChildren","containingList","getExpressionFromInvocation","currentParent","getImmediatelyContainingArgumentInfo","getArgumentOrParameterListInfo","getArgumentOrParameterListAndIndex","argumentIndex","getArgumentCount","argumentsSpan","getApplicableSpanForArguments","getChildListThatStartsWithOpenerToken","getArgumentIndex","getArgumentListInfoForTemplate","spanIndex","getArgumentIndexForTemplatePiece","attributeSpanStart","attributeSpanEnd","typeArgInfo","getImmediatelyContainingArgumentOrContextualParameterInfo","tryGetParameterInfo","getHighestBinary","countBinaryExpressionParameters","getAdjustedNode","getContextualSignatureLocationInfo","nonNullableContextualType","chooseBetterSymbol","highestBinary","contextualType2","argumentIndex2","argumentCount2","getSpreadElementCount","getArgumentIndexOrCount","skipComma","getApplicableSpanForTaggedTemplate","applicableSpanStart","applicableSpanEnd","taggedTemplate","openerToken","indexOfOpenerToken","getEnclosingDeclarationFromInvocation","signatureHelpNodeBuilderFlags","isTypeParameterList","applicableSpan","useFullPrefix","callTargetSymbol","callTargetDisplayParts","candidateSignature","getSignatureHelpItem","selectedItemIndex","itemsSeen","help","selected","firstRest","getTypeHelpItem","typeSymbolDisplay","createSignatureHelpParameterForTypeParameter","separatorDisplayParts","itemInfoForTypeParameters","itemInfoForParameters","isVariadic","prefixDisplayParts","suffixDisplayParts","returnTypeToDisplayParts","paramList","parameterParts","typeParameterParts","pList","parameterList","createSignatureHelpParameterForParameter","getSmartSelectionRange","getSelectionChildren","pushSelectionCommentRange","positionShouldSnapToNode","pushSelectionRange","isBetweenMultiLineBookends","isListOpener","isListCloser","getEndPos","isImport2","groupChildren","openBraceToken","closeBraceToken","groupedWithPlusMinusTokens","groupedWithBrackets","createSyntaxList2","splitChildren","firstJSDocChild","withJSDocSeparated","splittedChildren","groupedDotDotDotAndName","groupedWithQuestionToken","groupOn","pivotOn","separateTrailingSemicolon","splitTokenIndex","leftChildren","splitToken","separateLastToken","rightChildren","getSymbolDisplayPartsDocumentationAndSymbolKind","getSymbolKind","getSymbolModifiers","symbolDisplayNodeBuilderFlags","getSymbolKindOfConstructorPropertyMethodAccessorFunctionOrVar","isLocalVariableOrFunction","unionPropertyKind","getNormalizedSymbolModifiers","getSymbolDisplayPartsDocumentationAndSymbolKindWorker","semanticMeaning","hasAddedSymbolInfo","isThisExpression","documentationFromAlias","tagsFromAlias","hasMultipleSignatures","typeWriterOut","symbolWasExpanded","callExpressionLike","useConstructSignatures","addPrefixForAnyFunctionOrVar","pushSymbolKind","addFullSymbolName","addSignatureDisplayParts","addAliasPrefixIfNecessary","tryExpandSymbol","writeTypeParametersOfSymbol","prefixNextMeaning","isNamespace","addInPrefix","resolvedNode","isExternalModuleDeclaration","shouldUseAliasName","resolvedInfo","internalAliasSymbol","getPrinter","rhsSymbol","canExpandSymbol","semanticToSymbolMeaning","symbolMeaning","expandedDisplayParts","symbolToDisplay","fullSymbolDisplayParts","symbolKind2","ChangeTracker","LeadingTriviaOption","TrailingTriviaOption","applyChanges","assignPositionsToNode","createWriter","deleteNode","getAdjustedEndPosition","isThisTypeAnnotatable","isValidLocationToAddComment","getPos2","setPos","getEnd","setEnd","LeadingTriviaOption2","TrailingTriviaOption2","skipWhitespacesAndLineBreaks","hasCommentsBeforeLineBreak","useNonAdjustedPositions","getAdjustedRange","getAdjustedStartPosition","leadingTriviaOption","JSDocComments","fullStart","fullStartLine","adjustedStartPosition","getEndPositionOfMultilineTrailingComment","trailingTriviaOption","nodeEndLine","multilineEndPosition","newEnd","isSeparator","_ChangeTracker","afterEndNode","oldNode","configurableEnd","getInsertionPositionAtSourceFileTop","p0","before","lineStartPosition","insertAtLineStart","fnStart","jsDoc2","updateJSDocHost","newTags","oldTags","unmergedNewTags","newTag","tryMergeJsdocTags","newStatement","getMembersOrProperties","lastRange","memberStart","memberIndentation","nodeStart","isFirstInsertion","insertTrailingComma","insertLeadingComma","after","needSemicolonBetween","lparen","prevSpecifier","afterStart","afterStartLinePosition","multilineList","tokenBeforeInsertPosition","insertPos","openBraceEnd","closeBraceEnd","getClassOrObjectBraceEnds","isSingleLine","deletedNodesInLists","deleteDeclaration","lastNonDeletedIndex","startPositionToDeleteNodeInList","validate","changesToText","insertions","jsDocNode","oldTag","oldParam","endPositionToDeleteNodeInList","prevToken","changesToText2","getTextChangesFromChanges","changesInFile","computeNewText","newFileChanges","newFileChangesWorker","nonFormattedText","insertion","getNonformattedText","getFormattedTextOfNode","noIndent","initialIndentation","isTrivia2","textChangesTransformationContext","assignPositionsToNodeArray","lastNonTriviaPosition","setLastNonTriviaPosition","getTextPos","getLine","getColumn","getIndent","isAtStartOfLine","lastPrologue","advancePastLineBreak","firstNodeLine","commentLine","lastCommentEndLine","commentEndLine","_deleteDeclaration","deleteDeclaration2","oldFunction","deleteNodeInList","isFirstImport","deleteVariableDeclaration","deleteImportBinding","deleteDefaultImport","gp","FormattingContext","FormattingRequestKind","RuleAction","RuleFlags","SmartIndenter","anyContext","createTextRangeWithKind","formatDocument","formatNodeGivenIndentation","formatOnClosingCurly","formatOnEnter","formatOnOpeningCurly","formatOnSemicolon","formatSelection","getAllRules","getFormatContext","getFormattingScanner","getIndentationString","getRangeOfEnclosingComment","FormattingRequestKind2","formattingRequestKind","currentRange","currentTokenParent","nextRange","nextTokenParent","commonParent","openBrace","closeBrace","standardScanner","jsxScanner","wasNewLine","leadingTrivia","trailingTrivia","savedPos","lastScanAction","lastTokenInfo","advance","readTokenInfo","readEOFTokenRange","isOnToken","isOnEOF","skipToEndOf","skipToStartOf","shouldRescanGreaterThanToken","shouldRescanJsxIdentifier","shouldRescanJsxText","shouldRescanSlashToken","shouldRescanTemplateToken","shouldRescanJsxAttributeValue","startsWithSlashToken","expectedScanAction","fixTokenKind","getNextToken","trivia","newToken","tokenInfo","RuleAction2","RuleFlags2","allTokens","anyTokenExcept","anyToken","anyTokenIncludingMultilineComments","tokenRangeFrom","anyTokenIncludingEOF","tokenRangeFromRange","binaryOperators","binaryKeywordOperators","unaryPrefixOperators","unaryPrefixExpressions","unaryPreincrementExpressions","unaryPostincrementExpressions","unaryPredecrementExpressions","unaryPostdecrementExpressions","functionOpenBraceLeftTokenRange","typeScriptOpenBraceLeftTokenRange","controlOpenBraceLeftTokenRange","highPriorityCommonRules","rule","isNonJsxSameLineTokenContext","isNotBinaryOpContext","isNotTypeAnnotationContext","isNextTokenParentNotJsxNamespacedName","isConditionalOperatorContext","isNonOptionalPropertyContext","isNotPropertyAccessOnIntegerLiteral","isImportTypeContext","isNotStatementConditionContext","isBinaryOpContext","isMultilineBlockContext","isAfterCodeBlockContext","isObjectContext","isControlDeclContext","isFunctionDeclarationOrFunctionExpressionContext","isFunctionDeclContext","isYieldOrYieldStarWithOperand","isStartOfVariableDeclarationList","isFunctionCallOrNewContext","isPreviousTokenNotComma","isVoidOpContext","isArrowFunctionContext","isNextTokenParentJsxAttribute","isJsxSelfClosingElementContext","isJsxAttributeContext","isNextTokenParentJsxNamespacedName","isModuleDeclContext","isObjectTypeContext","isTypeArgumentOrParameterOrAssertionContext","isNotFunctionDeclContext","isNonTypeAssertionContext","isEndOfDecoratorContextOnSameLine","isNonNullAssertionContext","isConstructorSignatureContext","userConfigurableRules","isOptionEnabled","isOptionDisabledOrUndefined","isNonJsxElementOrFragmentContext","isNextTokenNotCloseBracket","isNextTokenNotCloseParen","isOptionEnabledOrUndefined","isBraceWrappedContext","isOptionDisabled","isNonJsxTextContext","isJsxExpressionContext","isForContext","isBeforeMultilineBlockContext","isTypeScriptDeclWithBlockContext","isTypeAssertionContext","isTypeAnnotationContext","optionEquals","isSemicolonDeletionContext","isSemicolonInsertionContext","lowPriorityCommonRules","isOptionDisabledOrUndefinedOrTokensOnSameLine","isNotFormatOnEnter","isSameLineTokenOrBeforeBlockContext","isBeforeBlockContext","isNotBeforeBlockInFunctionDeclarationContext","isNotForContext","debugName","toTokenRange","except","contextKind","isOptionalPropertyContext","isSingleLineBlockContext","isBlockContext","nodeIsBlockContext","nodeIsTypeScriptDeclWithBlockContext","blockParent","isFunctionCallContext","isNewContext","nodeIsInDecoratorContext","isTypeArgumentOrParameterOrAssertion","isStatementConditionContext","nextTokenKind","nextTokenStart","nextRealToken","getRulesMap","rulesMapCache","createRulesMap","getRuleActionExclusion","ruleAction","rules","buildMap","getRuleBucketIndex","rules2","ruleActionMask","rule2","acceptRuleActions","mapRowLength","rulesBucketConstructionStateList","specificRule","rulesBucket","addRule","maskBitSize","mask","RulesPosition","RulesPosition2","specificTokens","constructionState","rulesBucketIndex","getInsertionIndex","increaseInsertionIndex","indexBitmap","maskPosition","textRangeWithKind","endOfFormatSpan","formatSpan","semicolon","findImmediatelyPrecedingTokenOfKind","formatNodeLines","findOutermostNodeWithinListLevel","openingCurly","curlyBraceRange","outermostNode","expectedTokenKind","isListElement","findEnclosingNode","prepareRangeContainsErrorFunction","originalRange","rangeHasNoErrors","e1","e2","getScanStartPosition","getOwnOrInheritedDelta","previousLine","formatSpanWorker","requestKind","formattingScanner","getRules","rangeContainsError","formattingContext","previousRangeTriviaEnd","previousRange","previousParent","previousRangeStartLine","lastIndentedLine","indentationOnLastIndentedLine","undecoratedStartLine","remainingTrivia","indentTriviaItems","processRange","insertIndentation","trimTrailingWhitespacesForRemainingRange","processPair","tryComputeIndentationForListItem","parentStartLine","inheritedIndentation","startLinePosition","baseIndentSize","computeIndentation","parentDynamicIndentation","effectiveParentStartLine","delta2","getFirstNonDecoratorTokenOfNode","getDynamicIndentation","nodeStartLine","tokenIndentation","getDelta","suppressDelta","shouldAddDelta","lineAdded","undecoratedNodeStartLine","nodeDynamicIndentation","childContextNode","processChildNode","processChildNodes","consumeTokenAndAdvanceScanner","undecoratedParentStartLine","isListItem","isFirstListItem","childStartPos","childStartLine","undecoratedChildStartLine","childIndentationAmount","childIndentation","listStartToken","getOpenTokenForList","listDynamicIndentation","indentationOnListStartToken","listEndToken","getCloseTokenForOpenToken","currentTokenInfo","dynamicIndentation","isListEndToken","lastTriviaWasNewLine","indentToken","processTrivia","lineAction","isTokenInRange","rangeHasError","savePreviousRange","prevEndLine","indentNextTokenOrTrivia","commentIndentation","indentSingleLine","triviaItem","triviaInRange","indentMultilineComment","triviaItemStart","rangeStart","originalStart","trimTrailingWhitespacesForLines","currentItem","currentStartLine","previousItem","previousStartLine","previousParent2","trimTrailingWhitespaces","applyRuleEdits","indentationString","recordReplace","characterToColumn","indentationIsDifferent","characterInLine","firstLineIsIndented","indentFinalLine","endOfLine","startLinePos","nonWhitespaceColumnInFirstPart","startLinePos2","nonWhitespaceCharacterAndColumn","newIndentation","recordDelete","line1","line2","lineEndPosition","whitespaceStart","getTrailingWhitespaceStartPosition","trivias","trimTrailingWitespacesForPositions","previousRange2","recordInsert","onLaterLine","trailingRangesOfPreviousToken","leadingCommentRangesOfNextToken","internedSizes","internedTabsIndentation","internedSpacesIndentation","spacesString","quotient","remainder","tabs","spaces","tabString","SmartIndenter2","Value","Value2","getIndentation","assumeNewLineBeforeCloseBrace","getBaseIndentation","enclosingCommentRange","getCommentIndent","lineAtPosition","isObjectLiteral","getBlockIndent","actualIndentation","getActualIndentationForListItemBeforeComma","containerList","getListByPosition","indentSize","getActualIndentationForListStartLine","getSmartIndent","commentStartLine","findFirstNonWhitespaceColumn","startPositionOfLine","findFirstNonWhitespaceCharacterAndColumn","shouldIndentChildNode","currentStart","getStartLineAndCharacterForNode","nextTokenIsCurlyBraceOnSameLineAsCursor","indentationDelta","getIndentationForNodeWorker","getActualIndentationForListItem","getIndentationForNode","ignoreActualIndentationRange","isNextChild","useActualIndentation","containingListOrParentStart","getContainingListOrParentStart","parentAndChildShareLine","childStartsOnTheSameLineWithElseInIfStatement","firstListChild","getContainingList","listIndentsChild","getActualIndentationForNode","useTrueStart","isArgumentAndStartLineOverlapsExpressionBeingCalled","commaToken","commaItemInfo","deriveActualIndentationFromList","currentLineAndChar","findColumnForFirstNonWhitespaceCharacterInLine","NextTokenKind","NextTokenKind2","nextTokenStartLine","expressionOfCallExpressionEnd","childIsUnindentedBranchOfConditionalExpression","conditionEndLine","trueStartLine","trueEndLine","argumentStartsOnSameLineAsPreviousArgument","currentIndex","lineOfPreviousNode","getListByRange","getList","getVisualListRange","lineAndCharacter","nodeWillIndentChild","indentByDefault","childKind","rangeIsOnOneLine","isControlFlowEndingStatement","preparePasteEdits","copiedFromRange","shouldProvidePasteEdits","checkNameResolution","pasteEditsProvider","fixId55","pastedText","pasteLocations","copiedFrom","pasteEdits","actualPastedText","updatedProgram","originalProgram","updatedFile","statementsInSourceFile","originalProgramTypeChecker","usageInfoRange","getUsageInfoRangeForPasteEdits","oldTextLength","textToBePasted","importUnresolvedIdentifiers","paste","ts_exports2","ts_server_exports3","typeScriptVersion2","getTypeScriptVersion","formatDeprecationMessage","errorAfter","since","deprecationMessage","createErrorDeprecation","createWarningDeprecation","hasWrittenDeprecation","createDeprecation","warnAfter","wrapFunction","deprecation","deprecate","binder2","deprecations","createBinder2","AutoImportProviderProject","AuxiliaryProject","CharRangeSection","CloseFileWatcherEvent","CommandNames","ConfigFileDiagEvent","ConfiguredProject2","ConfiguredProjectLoadKind","CreateDirectoryWatcherEvent","CreateFileWatcherEvent","Errors","ExternalProject","GcTimer","InferredProject2","LargeFileReferencedEvent","LineIndex","LineLeaf","LineNode","LogLevel2","Msg","OpenFileInfoTelemetryEvent","Project2","ProjectInfoTelemetryEvent","ProjectKind","ProjectLanguageServiceStateEvent","ProjectLoadingFinishEvent","ProjectLoadingStartEvent","ProjectService2","ProjectsUpdatedInBackgroundEvent","ScriptInfo","ScriptVersionCache","Session3","TextStorage","ThrottledOperations","TypingsInstallerAdapter","allFilesAreJsOrDts","allRootFilesAreJsOrDts","asNormalizedPath","convertCompilerOptions","convertFormatOptions","convertScriptKindName","convertTypeAcquisition","convertUserPreferences","convertWatchOptions","countEachFileTypes","createInstallTypingsRequest","createModuleSpecifierCache","createNormalizedPathMap","createPackageJsonCache","createSortedArray2","emptyArray2","formatDiagnosticToProtocol","formatMessage2","getBaseConfigFileName","getDetailWatchInfo","getLocationInNewDocument","hasNoTypeScriptSource","isBackgroundProject","isConfigFile","isConfiguredProject","isDynamicFileName","isExternalProject","isInferredProject","isInferredProjectName","isProjectDeferredClose","makeAutoImportProviderProjectName","makeAuxiliaryProjectName","makeInferredProjectName","maxFileSize","maxProgramSizeForNonTsFiles","normalizedPathToPath","nullCancellationToken","nullTypingsInstaller","ts_server_protocol_exports","scriptInfoIsContainedByBackgroundProject","scriptInfoIsContainedByDeferredClosedProject","toEvent","toNormalizedPath","tryConvertScriptKindName","ts_server_typingsInstaller_exports","updateProjectIfDirty","TypingsInstaller","getNpmCommandForInstallation","installNpmPackages","typingsName","nullLog","typingToFileName","cachePath","installTypingHost","npmPath","tsVersion","install","remaining","sliceStart","toSlice","typesMapLocation","throttleLimit","req","discoverTypingsResult","safeListFromMap","cacheLocation","packageLockJson","npmConfig","npmLock","typingFile","existingTypingFile","newTyping","typingsToInstall","typingKey","validationResult","npmConfigPath","currentlyCachedTypings","filteredTypings","requestId","scopedTypings","installedTypingFiles","distTags","newVersion","newSet","typings","onRequestCompleted","Msg2","Errors2","ThrowNoProject","ThrowProjectLanguageServiceDisabled","ThrowProjectDoesNotContainDocument","normalizedPath","_ThrottledOperations","operationId","delay","pendingTimeout","_GcTimer","CommandTypes","IndentStyle2","JsxEmit2","ModuleKind2","ModuleResolutionKind2","NewLineKind2","PollingWatchKind2","ScriptTarget11","WatchDirectoryKind2","WatchFileKind2","CommandTypes2","initialVersion","tempFileName","fileSize","reloaded","oneBasedLine","svc","hasMixedContent","isNew","firstConfiguredProject","firstInferredProject","firstNonSourceOfProjectReferenceRedirect","defaultConfiguredProject","failIfInvalidPosition","failIfInvalidLocation","ProjectKind2","includeSizes","hasOneOrMoreJsAndNoTsFiles","isGeneratedFileWatcher","setIsEqualTo","arr1","arr2","unique","isSet","typeAcquisitionChanged","opt1","opt2","compilerOptionsChanged","unresolvedImportsChanged","imports1","imports2","_Project","projectKind","projectService","hasExplicitListOfFiles","lastFileExceededProgramSize","compileOnSaveEnabled","pluginConfigEntry","searchPaths","errorLogs","scriptInfo","filename","nodeModuleBinDir","projectErrors","ensureSynchronized","outputFileAbsoluteFileName","dtsFiles","newTypeAcquisition","plugin","externalFile","uncheckedFilename","excludeFilesFromExternalLibraries","excludeConfigFiles","defaultLibrary","includeProjectReferenceRedirectInfo","requireOpen","detachFromProject","changedFile","hasNewProgram","hasAddedorRemovedFiles","changedFiles","getUnresolvedImports","isFirstProgramLoad","forceRefresh","newTypings","typingFiles","removed","createProjectWatcher","typingsWatcherType","subDirectory","oldExternalFiles","durationMs","uncheckedFileName","noRemoveResolution","scriptInfoToDetach","configFileExistenceInfo","generateFile","writeProjectFileNames","writeFileExplaination","writeFileVersionAndText","strBuilder","lastKnownVersion","includeProjectReferenceRedirectInfoIfRequested","updatedFileNames","lastReportedFileNames","externalFiles","currentFiles","updatedRedirects","projectFileNames","globalPluginName","pluginModuleFactory","configEntry","pluginModule","newLS","pluginName","configuration","dependencySelection","_projectRootPath","rootSourceFile","originalText","cachedUnresolvedImportsPerFile","extractUnresolvedImportsFromSourceFile","isJsInferredProject","rootInfo","hostProject","_AutoImportProviderProject","initialRootNames","dependencyNames","rootFileName","dependenyName","addDependency","dependenciesAdded","getRootNamesFromPackageJson","addRootNames","typesPackageJson","referencesAddded","filterEntrypoints","dependency","entrypoint","symlinkName","hasSameSetOfFiles","canonicalConfigFilePath","pendingUpdateReason","isDirty","canonicalConfigPath","_configFileExistenceInfo","externalProjectName","projectFilePath","ensureProjectForOpenFileSchedule","prepareConvertersForEnumLikeCompilerOptions","compilerOptionConverters","watchOptionsConverters","indentStyle","defaultTypeSafeList","protocolOptions","mappedValues","scriptKindName","fileNamePropertyReader","fileExtension","externalFilePropertyReader","findProjectByName","noopConfigFileWatcher","getConfigFileNameFromCache","configFileForOpenFile","isAncestorConfigFileInfo","isOpenScriptInfo","infoOrFileNameOrConfig","ConfiguredProjectLoadKind2","toConfiguredProjectLoadOptimized","forEachAncestorProjectLoad","allowDeferredClosed","reloadedProjects","searchOnlyPotentialSolution","delayReloadedConfiguredProjects","forEachResolvedProjectReferenceProjectLoad","parentConfig","loadKind","childConfigName","childCanonicalConfigPath","seenValue","childConfig","childProject","updateProjectFoundUsingFind","triggerFile","sentConfigFileDiag","useConfigFileExistenceInfoForOptimizedLoading","configFileExistenceInfoForOptimizedLoading","updateConfiguredProject","forEachPotentialProjectReference","forEachAnyProjectReferenceKind","cbProjectRef","cbPotentialProjectRef","callbackRefProject","refProject","forEachReferencedProject","projectRef","potentialProjectRef","isScriptInfoWatchedFromNodeModules","updateWithTriggerFile","isReload","sent","configFileExistenceInfoForOptimizedReplay","fileOpenReason","reloadReason","setProjectOptionsUsed","createProjectNameFactoryWithCounter","nameFactory","getHostWatcherMap","getCanUseWatchEvents","service","canUseWatchEvents","createWatchFactoryHostUsingWatchEvents","watchedDirectories","watchedDirectoriesRecursive","onWatchChange","getOrCreateFileWatcher","pathToId","idToCallbacks","callbacks2","onWatchChangeRequestArgs","created","onWatchEventType","forEachCallback","eventPath","hostWatcherMap","eventPaths","_ProjectService","languageServiceEnabled","fileContent","clearSourceMapperCache","projectCompilerOptions","canonicalProjectRootPath","ensureProject","fileNameOrScriptInfo","updateGraph","sourceMapFileInfo","deferredDelete","watcher2","wildCardWatcher","fsResult","configuredProjectForConfig","watchWildcardDirectories","projectCanonicalPath","loadLevelToSet","loadReason","scheduledAnyProjectUpdate","_watchWildcardDirectories","wasDefferedClose","inferredProject","skipAssignOrphanScriptInfosToInferredProject","ensureProjectsForOpenFiles","openFilesImpactedByConfigFile","exists","forProject","isRootOfInferredProject","isOpen","_filename","isSearchPathInProjectRoot","anySearchPathOk","searchTsconfig","searchJsconfig","canonicalSearchPath","tsconfigFileName","jsconfigFileName","lookInPendingFilesForValue","findFromCacheOnly","printProjectWithoutFileNames","projectFileName","propertyReader","availableSpace","totalNonTsFileSize","top5LargestFiles","f2","excludedFiles","watchOptionsAndErrors","projectOptions","convertTypeAcquisition2","enable2","configFilename","filesToAdd","configFileContent","configFileErrors","oldCommandLine","projectRootFilesMap","newRootScriptInfoMap","newRootFile","isDynamic","newUncheckedFiles","compileOnSave","expectedCurrentDirectory","isSingleInferredProject","hostToQueryFileExistsOn","deferredDeleteOk","configProject","combineProjects","toAddInfo","projs","indexOfNodeModules","watchDir","watchDirPath","mTime","openedByClient","declarationInfo","sourceMapFileInfo2","mapFileNameFromDts","mapInfo","documentPositionMapper","declarationInfoPath","projectNameOrProject","sourceMapInfo","lineOffset","performanceEventHandler","lazyConfiguredProjectsFromExternalProject","includePackageJsonAutoImports","includeCompletionsForModuleExports","hostWatchOptions","inPath","_project","reloadedConfiguredProjects","firstProject","pendingOpenFileProjectUpdates","_config","originalFileInfo","configuredProject","project2","addOriginalConfiguredProject","originalScriptInfo","originalProject","retainProjects","sentConfigDiag","delayLoad","projectForConfigFile","optimizedKind","initialConfigResult","referencedProjectReason","infoIsOpenScriptInfo","seenProjects","seenConfigs","defaultProject","possiblyDefault","tsconfigOfDefault","tsconfigOfPossiblyDefault","tryFindDefaultConfiguredProject","isDefaultProjectOptimized","tryFindDefaultConfiguredProjectFromReferences","tryFindDefaultConfiguredProjectFromAncestor","isDefaultConfigFileExistenceInfo","tsconfigProject","isDefaultProject","projectWithInfo","forProjects","currentConfiguredProjects","potentialRefPath","referencedProject","toRetainConfiguredProjects","externalProjectsRetainingConfiguredProjects","openFilesWithRetainedConfiguredProject","toRemoveConfiguredProjects","markOriginalProjectsAsUsed","configuredProjectPath","retainConfiguredProject","isPendingUpdate","isRetained","toRemoveScriptInfos","lastKnownProjectVersions","knownProject","knownProjects","openFiles","closedFiles","existingOpenScriptInfos","openScriptInfos","assignOrphanScriptInfosToInferredProject","cleanupAfter","externalProject","projectsToClose","typeAcqInclude","excludeRules","normalizedNames","processedRule","groupNumberOrString","filesToKeep","addExcludedFile","existingExternalProject","configuredProjects","excludeResult","importPromise","promises","configurationOverride","pendingPlugins","sendProjectsUpdatedInBackgroundEvent","packageJsonCache","processDirectory","createIncompleteCompletionsCache","containedNodeModulesWatchers","currentKey","ensureCache","createInfo","cache2","isBlockedByPackageJsonDependencies","directoriesWithoutPackageJson","addOrUpdate","invalidate","directoryHasPackageJson","ancestorPath","hrTimeToMilliseconds","seconds","nanoseconds","isDeclarationFileInJSOnlyNonConfiguredProject","dtsChangeCanAffectEmit","formatDiag","formatRelatedInformation","convertToLocation","includeFileName","common","allEditsBeforePos","byteLength","verboseLogging","MultistepOperation","operationHost","actionType","ms","stop","timerHandle","immediateId","combineProjectOutput","projects2","createDocumentSpanSet","getRenameLocationsWorker","initialLocation","perProjectResults","getPerProjectReferences","getDefinitionLocation","mapDefinitionInProject","documentSpanLocation","projectResults","getMappedLocationForProject","getReferencesWorker","defaultProjectResults","updatedProjects","progress","seenRefs","mappedDefinitionFile","getMappedContextSpanForProject","symbolToAddTo","forEachProjectInProjects","symlinkedProjects","symlinkedPath","defaultDefinition","mapDefinitionInProject2","getResultsForPosition","forPositionInResult","resultsMap","getGeneratedDefinition","getSourceDefinition","searchedProjectKeys","onCancellation","isLocationProjectReferenceRedirect","searchPosition","getProjectKey","symlinkedProjectsMap","symlinkedProject","mapDefinitionInProjectIfFileInProject","generatedDefinition","sourceDefinition","getMappedDocumentSpanForProject","invalidPartialSemanticModeCommands","invalidSyntacticModeCommands","_Session","savetoArgs","closeArgs","multistepOperationHost","performanceData","cmd","commandName","toProtocolPerformanceData","fileDiagnosticDuration","fileRequest","addProjectInfo","msgText","cmdName","reqSeq","infoMetadata","diagnosticsStartTime","diagnosticsResult","toProtocolTextSpan","checkList","seq","followMs","goNext","checkOne","doSemanticCheck","caption","languageService","includeLinePosition","optionsErrors","diagnosticsForConfigFile","isSemantic","selector","simplifiedResult","newDocumentSpan","unmappedDefinitionAndBoundSpan","unmappedDefinitions","definitionSet","noDtsProject","jsDefinitions","jsDefinition","refined","tryRefineDefinition","ambientCandidates","getAmbientCandidatesByClimbingAccessChain","fileNameToSearch","findImplementationFileFromDtsFileName","noDtsProgram","fileToSearch","searchForDeclaration","resolveFromFile","auxiliaryProject","packageNamePathPart","pathToFileInPackage","initialNode","nameInChain","nameToSearch","richResponse","fileSpan","linkedEditInfo","convertLinkedEditInfoToRanges","documentHighlights","toProtocolTextSpanWithContext","scriptInfo2","needFileNameList","needDefaultConfiguredProjectInfo","notMatchedByConfig","notInProject","getScriptInfoEnsuringProjectsUptoDate","ignoreNoProjectError","symLinkedProjects","locations","canRename","fileToRename","_2","_1","prefixSuffixText","nameInfo","symbolDisplayString","nameSpan","symbolStartOffset","referenceEntryToReferencesResponseItem","projectOutputs","quickInfo","useDisplayParts","displayString","absolutePosition","preferredIndent","hasIndent","firstNoWhiteSpacePosition","convertedSpan","fullResult","entryName","isCompletionEntryData","helpItems","fileArgs","tree","full","navigateToItems","navItem","bakedItem","currentFileOnly","seenItems","addItemsForProject","projectItems","unseenItems","tryAddSeenItem","seenItem","navigateToItemIsEqualTo","locationOrSpan","getPosition","mappedRenameLocation","renameScriptInfo","copies","oldPath","projectTextChanges","projectFiles","textChange","existingDiagCodes","badCode","_result","_error","convertTextChangeToCodeEdit","convertNewFileTextChangeToCodeEdit","languageServiceDisabled","fileNamesInProject","highPriorityFiles","mediumPriorityFiles","lowPriorityFiles","veryLowPriorityFiles","fileNameInProject","normalizedFile","incomingCall","fromSpan","outgoingCall","handler","perfomanceData","currentPerformanceData","relevantFile","responseRequired","elapsedTime","diagnosticsDuration","contextTextSpan","positionToLineOffset","locationFromLineAndCharacter","linkedEdit","applyEdits","textFilename","isWriteAccess2","isDefinition","disableLineTextInReferences","getLineText","lineSpan","lineCollectionCapacity","CharRangeSection2","EditWalker","insertedText","suppressTrailingText","branchParent","lastZeroCount","leafNode","insertedNodes","pathIndex","insertionNode","insertedNodesLen","_relativeStart","_relativeLength","lineCollection","relativeStart","relativeLength","ll","TextChange9","deleteLen","_ScriptVersionCache","snapIndex","LineIndexSnapshot","oldVersion","textChangeRanges","script","lm","_LineIndexSnapshot","changesSincePreviousVersion","rangeEnd","oldSnapshot","_LineIndex","zeroBasedColumn","leaf","leaves","rangeLength","walkFns","accum","deleteLength","checkText","walker","endString","interiorNodes","nodeIndex","lmi","endText","_LineNode","childCharCount","adjustedStart","adjustedLength","clen","ej","lineNumberAccumulator","relativePosition","relativeOneBasedLine","positionAccumulator","childLineCount","shiftNode","splitNodes","splitNodeCount","splitNodeIndex","_TypingsInstallerAdapter","telemetryEnabled","maxActiveRequestCount","queuedRequest","IGNORE","ASSET_EXTS","PARSEABLE_EXTS","SYSTEM_MODULES","analyzeFileEstree","providedContent","ast","localImports","localImportSymbols","npmImports","exports","functions","getJsDoc","closestComment","getSignature","headEnd","required","propDoc","isLocal","symbolEntry","isFunc","analyzeFile","ts.createSourceFile","ts.ScriptTarget","ts.ScriptKind","ts.canHaveModifiers","ts.getModifiers","ts.SyntaxKind","jsDocNodes","ts.isFunctionDeclaration","ts.isVariableStatement","ts.isArrowFunction","ts.isFunctionExpression","ts.isTypeAliasDeclaration","ts.isInterfaceDeclaration","ts.isEnumDeclaration","ts.isClassDeclaration","ts.isMethodDeclaration","ts.isTypeLiteralNode","ts.isPropertySignature","ts.forEachChild","ts.isImportDeclaration","ts.isNamedImports","ts.isExportDeclaration","ts.isNamedExports","stmtDoc","stmtSig","ts.isIdentifier","declDoc","ts.isExportAssignment","matchesIgnore","relPath","scanDir","extraIgnore","pkgPath","packageDependencies","packageExports","pkgJson","combinedDeps","mainFile","resolvedMainPaths","mainPath","analysis","inferFileDescription","jsdocMatch","tagMatch","foundContent","cleaned","descLines","applyDescriptions","inferDesc","parseIgnoreFile","analyzeFileContent","generateFileTree","packagesDir","ignorePatterns","inferDescriptions","toKebabCase","string","toCamelCase","toPascalCase","camelCase","mergeClasses","classes","hasA11yProp","defaultAttributes","Icon","forwardRef","strokeWidth","absoluteStrokeWidth","iconNode","createElement","createLucideIcon","iconName","Component","__iconNode","ArrowDown","ArrowUpDown","ArrowUp","Blocks","Box","Boxes","Braces","ChevronDown","ChevronRight","CircleQuestionMark","Cloud","Download","ExternalLink","FileInput","FileOutput","Funnel","Info","LoaderCircle","Package","Search","Settings","Share2","SquareFunction","X","composeEventHandlers","originalEventHandler","ourEventHandler","checkForDefaultPrevented","setRef","composeRefs","hasCleanup","cleanups","useComposedRefs","React","createContextScope","scopeName","createContextScopeDeps","defaultContexts","createContext3","rootComponentName","defaultContext","BaseContext","Provider","Context","useContext2","consumerName","createScope","scopeContexts","contexts","composeContextScopes","baseScope","scopeHooks","createScope2","overrideScopes","nextScopes","nextScopes2","useScope","currentScope","createSlot","ownerName","SlotClone","createSlotClone","Slot2","forwardedRef","slotProps","childrenArray","slottable","isSlottable","newChildren","childrenRef","getElementRef","props2","mergeProps","SLOTTABLE_IDENTIFIER","createSlottable","Slottable2","Fragment2","childProps","overrideProps","slotPropValue","childPropValue","mayWarn","NODES","Primitive","Slot","Node","asChild","primitiveProps","Comp","dispatchDiscreteCustomEvent","ReactDOM","useCallbackRef","callbackRef","useEscapeKeydown","onEscapeKeyDownProp","ownerDocument","onEscapeKeyDown","handleKeyDown","DISMISSABLE_LAYER_NAME","CONTEXT_UPDATE","POINTER_DOWN_OUTSIDE","FOCUS_OUTSIDE","originalBodyPointerEvents","DismissableLayerContext","DismissableLayer","disableOutsidePointerEvents","onPointerDownOutside","onFocusOutside","onInteractOutside","onDismiss","layerProps","setNode","composedRefs","layers","highestLayerWithOutsidePointerEventsDisabled","highestLayerWithOutsidePointerEventsDisabledIndex","isBodyPointerEventsDisabled","isPointerEventsEnabled","pointerDownOutside","usePointerDownOutside","isPointerDownOnBranch","focusOutside","useFocusOutside","dispatchUpdate","handleUpdate","BRANCH_NAME","DismissableLayerBranch","handlePointerDownOutside","isPointerInsideReactTreeRef","handleClickRef","handlePointerDown","handleAndDispatchPointerDownOutsideEvent2","handleAndDispatchCustomEvent","eventDetail","timerId","handleFocusOutside","isFocusInsideReactTreeRef","handleFocus","discrete","useLayoutEffect2","useReactId","useId","deterministicId","setId","useLayoutEffect","reactId","round","floor","createCoords","oppositeSideMap","clamp","getSide","placement","getAlignment","getOppositeAxis","axis","getAxisLength","getSideAxis","getAlignmentAxis","getAlignmentSides","rects","rtl","alignment","alignmentAxis","mainAlignmentSide","getOppositePlacement","getExpandedPlacements","oppositePlacement","getOppositeAlignmentPlacement","lrPlacement","rlPlacement","tbPlacement","btPlacement","getSideList","isStart","getOppositeAxisPlacements","flipAlignment","direction","expandPaddingObject","padding","getPaddingObject","rectToClientRect","rect","computeCoordsFromPlacement","_ref","floating","sideAxis","alignLength","isVertical","commonX","commonY","commonAlign","coords","detectOverflow","_await$platform$isEle","strategy","boundary","rootBoundary","elementContext","altBoundary","paddingObject","clippingClientRect","offsetParent","offsetScale","elementClientRect","MAX_RESET_COUNT","computePosition","middleware","platformWithDetectOverflow","statefulPlacement","resetCount","middlewareData","currentMiddleware","nextX","nextY","arrowDimensions","isYAxis","minProp","maxProp","clientProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","largestPossiblePadding","minPadding","maxPadding","min$1","center","shouldAddOffset","alignmentOffset","flip","_middlewareData$arrow","_middlewareData$flip","initialPlacement","checkMainAxis","checkCrossAxis","specifiedFallbackPlacements","fallbackStrategy","fallbackAxisSideDirection","detectOverflowOptions","initialSideAxis","isBasePlacement","fallbackPlacements","hasFallbackAxisSideDirection","placements","overflows","overflowsData","_middlewareData$flip2","_overflowsData$filter","nextIndex","nextPlacement","resetPlacement","_overflowsData$filter2","currentSideAxis","getSideOffsets","isAnySideFullyClipped","hide","offsets","originSides","convertValueToCoords","mainAxisMulti","crossAxisMulti","rawValue","mainAxis","crossAxis","_middlewareData$offse","diffCoords","shift","limiter","mainAxisCoord","crossAxisCoord","minSide","maxSide","limitedCoords","limitShift","rawOffset","computedOffset","limitMin","limitMax","_middlewareData$offse2","isOriginSide","_state$middlewareData","_state$middlewareData2","apply","heightSide","widthSide","maximumClippingHeight","maximumClippingWidth","overflowAvailableHeight","overflowAvailableWidth","noShift","availableHeight","availableWidth","xMin","xMax","yMin","yMax","nextDimensions","hasWindow","getNodeName","isNode","getWindow","_node$ownerDocument","getDocumentElement","isHTMLElement","isShadowRoot","isOverflowElement","overflowX","overflowY","getComputedStyle","isTableElement","isTopLayer","willChangeRe","containRe","isNotNone","isWebKitValue","isContainingBlock","elementOrCss","css","isWebKit","getContainingBlock","getParentNode","isLastTraversableNode","getNodeScroll","getNearestOverflowAncestor","getOverflowAncestors","traverseIframes","_node$ownerDocument2","scrollableAncestor","isBody","win","frameElement","getFrameElement","getCssDimensions","getComputedStyle$1","hasOffset","offsetWidth","offsetHeight","shouldFallback","unwrapElement","getScale","domElement","$","noOffsets","getVisualOffsets","shouldAddVisualOffsets","isFixed","floatingOffsetParent","getBoundingClientRect","includeScale","isFixedStrategy","clientRect","scale","visualOffsets","offsetWin","currentWin","currentIFrame","iframeScale","iframeRect","getWindowScrollBarX","leftScroll","getHTMLOffset","documentElement","scroll","htmlRect","convertOffsetParentRelativeRectToViewportRelativeRect","topLayer","isOffsetParentAnElement","offsetRect","htmlOffset","getClientRects","getDocumentRect","html","SCROLLBAR_MAX","getViewportRect","visualViewport","visualViewportBased","windowScrollbarX","bodyStyles","bodyMarginInline","clippingStableScrollbarWidth","getInnerBoundingClientRect","getClientRectFromClippingAncestor","clippingAncestor","hasFixedPositionAncestor","stopNode","getClippingElementAncestors","currentContainingBlockComputedStyle","elementIsFixed","computedStyle","currentNodeIsContaining","getClippingRect","clippingAncestors","firstRect","bottom","getDimensions","getRectRelativeToOffsetParent","setLeftRTLScrollbarOffset","isStaticPositioned","getTrueOffsetParent","polyfill","rawOffsetParent","getOffsetParent","svgOffsetParent","getElementRects","getOffsetParentFn","getDimensionsFn","floatingDimensions","isRTL","rectsAreEqual","observeMove","onMove","io","timeoutId","_io","refresh","elementRectForRootMargin","insetTop","insetRight","insetBottom","insetLeft","isFirstUpdate","handleObserve","ratio","autoUpdate","ancestorScroll","ancestorResize","elementResize","layoutShift","animationFrame","referenceEl","ancestors","cleanupIo","reobserveFrame","resizeObserver","firstEntry","_resizeObserver","frameId","prevRefRect","frameLoop","nextRefRect","_resizeObserver2","offset$1","shift$1","flip$1","size$1","hide$1","arrow$1","limitShift$1","mergedOptions","platformWithCache","computePosition$1","isClient","deepEqual","getDPR","roundByDPR","dpr","useLatestRef","useFloating","externalReference","externalFloating","whileElementsMounted","setData","latestMiddleware","setLatestMiddleware","_reference","_setReference","_floating","_setFloating","setReference","referenceRef","setFloating","floatingRef","floatingEl","dataRef","hasWhileElementsMounted","whileElementsMountedRef","platformRef","openRef","fullData","isMountedRef","floatingStyles","initialStyles","isRef","arrow$2","NAME","Arrow","arrowProps","Root","useSize","setSize","borderSizeEntry","borderSize","POPPER_NAME","createPopperContext","createPopperScope","PopperProvider","usePopperContext","Popper","__scopePopper","anchor","setAnchor","ANCHOR_NAME","PopperAnchor","virtualRef","anchorProps","anchorRef","previousAnchor","CONTENT_NAME","PopperContentProvider","useContentContext","PopperContent","sideOffset","align","alignOffset","arrowPadding","avoidCollisions","collisionBoundary","collisionPaddingProp","sticky","hideWhenDetached","updatePositionStrategy","onPlaced","contentProps","setContent","setArrow","arrowSize","arrowWidth","arrowHeight","desiredPlacement","collisionPadding","hasExplicitBoundaries","isNotNull","isPositioned","anchorWidth","anchorHeight","contentStyle","floatingUIarrow","transformOrigin","placedSide","placedAlign","getSideAndAlignFromPlacement","handlePlaced","arrowX","arrowY","cannotCenterArrow","contentZIndex","setContentZIndex","ARROW_NAME","OPPOSITE_SIDE","PopperArrow","contentContext","baseSide","ArrowPrimitive.Root","isArrowHidden","noArrowAlign","arrowXCenter","arrowYCenter","Root2","Anchor","Content","PORTAL_NAME","Portal","containerProp","portalProps","mounted","setMounted","useStateMachine","initialState","Presence","present","presence","usePresence","React2","stylesRef","prevPresentRef","prevAnimationNameRef","send","currentAnimationName","getAnimationName","styles","wasPresent","prevAnimationName","ownerWindow","handleAnimationEnd","isCurrentAnimation","currentFillMode","handleAnimationStart","useInsertionEffect","useControllableState","defaultProp","onChange","uncontrolledProp","setUncontrolledProp","onChangeRef","useUncontrolledState","isControlled","isControlledRef","wasControlled","setValue","nextValue","isFunction","prevValueRef","VISUALLY_HIDDEN_STYLES","VisuallyHidden","createTooltipContext","usePopperScope","PROVIDER_NAME","DEFAULT_DELAY_DURATION","TOOLTIP_OPEN","TooltipProviderContextProvider","useTooltipProviderContext","TooltipProvider","__scopeTooltip","delayDuration","skipDelayDuration","disableHoverableContent","isOpenDelayedRef","isPointerInTransitRef","skipDelayTimerRef","skipDelayTimer","inTransit","TOOLTIP_NAME","TooltipContextProvider","useTooltipContext","Tooltip","openProp","defaultOpen","onOpenChange","disableHoverableContentProp","delayDurationProp","providerContext","popperScope","trigger","setTrigger","contentId","openTimerRef","wasOpenDelayedRef","setOpen","open2","stateAttribute","handleOpen","handleClose","handleDelayedOpen","PopperPrimitive.Root","TRIGGER_NAME","TooltipTrigger","triggerProps","isPointerDownRef","hasPointerMoveOpenedRef","handlePointerUp","PopperPrimitive.Anchor","PortalProvider","usePortalContext","TooltipPortal","forceMount","PortalPrimitive","TooltipContent","portalContext","TooltipContentImpl","TooltipContentHoverable","pointerGraceArea","setPointerGraceArea","onClose","onPointerInTransitChange","handleRemoveGraceArea","handleCreateGraceArea","hoverTarget","currentTarget","exitPoint","exitSide","getExitSideFromRect","paddedExitPoints","getPaddedExitPoints","hoverTargetPoints","getPointsFromRect","graceArea","getHull","handleTriggerLeave","handleContentLeave","handleTrackPointerGrace","pointerPosition","hasEnteredTarget","isPointerOutsideGraceArea","isPointInPolygon","VisuallyHiddenContentContextProvider","useVisuallyHiddenContentContext","Slottable","ariaLabel","handleScroll","jsxs","PopperPrimitive.Content","VisuallyHiddenPrimitive.Root","TooltipArrow","PopperPrimitive.Arrow","point","polygon","inside","ii","jj","xi","yi","xj","yj","points","newPoints","getHullPresorted","upperHull","lowerHull","Root3","Trigger","Content2","Arrow2","clsx","concatArrays","combinedArray","createClassValidatorObject","classGroupId","validator","createClassPartObject","nextPart","validators","CLASS_PART_SEPARATOR","EMPTY_CONFLICTS","ARBITRARY_PROPERTY_PREFIX","createClassGroupUtils","classMap","createClassMap","conflictingClassGroups","conflictingClassGroupModifiers","getGroupIdForArbitraryProperty","classParts","getGroupRecursive","hasPostfixModifier","modifierConflicts","baseConflicts","classPartObject","currentClassPart","nextClassPartObject","classRest","validatorsLength","validatorObj","colonIndex","theme","classGroups","processClassGroups","processClassesRecursively","classGroup","classDefinition","processClassDefinition","processStringDefinition","processFunctionDefinition","processObjectDefinition","classPartObjectToEdit","getPart","isThemeGetter","createLruCache","maxCacheSize","cacheSize","previousCache","IMPORTANT_MODIFIER","MODIFIER_SEPARATOR","EMPTY_MODIFIERS","createResultObject","hasImportantModifier","maybePostfixModifierPosition","isExternal","createParseClassName","experimentalParseClassName","parseClassName","bracketDepth","parenDepth","modifierStart","postfixModifierPosition","currentCharacter","baseClassNameWithImportantModifier","fullPrefix","parseClassNameOriginal","createSortModifiers","modifierWeights","currentSegment","isArbitrary","isOrderSensitive","createConfigUtils","createPostfixLookupClassGroupIds","classGroupIds","SPLIT_CLASSES_REGEX","mergeClassList","classList","configUtils","getClassGroupId","getConflictingClassGroupIds","sortModifiers","postfixLookupClassGroupIds","classGroupsInConflict","originalClassName","baseClassNameWithoutPostfix","classGroupIdWithPostfix","variantModifier","modifierId","classId","conflictGroups","twJoin","classLists","resolvedValue","toValue","mix","createTailwindMerge","createConfigFirst","createConfigRest","cacheGet","cacheSet","functionToCall","initTailwindMerge","previousConfig","createConfigCurrent","tailwindMerge","fallbackThemeArr","fromTheme","themeGetter","arbitraryValueRegex","arbitraryVariableRegex","fractionRegex","tshirtUnitRegex","lengthUnitRegex","colorFunctionRegex","shadowRegex","imageRegex","isFraction","isInteger","isPercent","isTshirtSize","isAny","isLengthOnly","isNever","isShadow","isImage","isAnyNonArbitrary","isArbitraryValue","isArbitraryVariable","isNamedContainerQuery","isArbitrarySize","getIsArbitraryValue","isLabelSize","isArbitraryLength","isLabelLength","isArbitraryNumber","isLabelNumber","isArbitraryWeight","isLabelWeight","isArbitraryFamilyName","isLabelFamilyName","isArbitraryPosition","isLabelPosition","isArbitraryImage","isLabelImage","isArbitraryShadow","isLabelShadow","isArbitraryVariableLength","getIsArbitraryVariable","isArbitraryVariableFamilyName","isArbitraryVariablePosition","isArbitraryVariableSize","isArbitraryVariableImage","isArbitraryVariableShadow","isArbitraryVariableWeight","testLabel","testValue","shouldMatchNoLabel","getDefaultConfig","themeColor","themeFont","themeText","themeFontWeight","themeTracking","themeLeading","themeBreakpoint","themeContainer","themeSpacing","themeRadius","themeShadow","themeInsetShadow","themeTextShadow","themeDropShadow","themeBlur","themePerspective","themeAspect","themeEase","themeAnimate","scaleBreak","scalePosition","scalePositionWithArbitrary","scaleOverflow","scaleOverscroll","scaleUnambiguousSpacing","scaleInset","scaleGridTemplateColsRows","scaleGridColRowStartAndEnd","scaleGridColRowStartOrEnd","scaleGridAutoColsRows","scaleAlignPrimaryAxis","scaleAlignSecondaryAxis","scaleMargin","scaleSizing","scaleSizingInline","scaleSizingBlock","scaleColor","scaleBgPosition","scaleBgRepeat","scaleBgSize","scaleGradientStopPosition","scaleRadius","scaleBorderWidth","scaleLineStyle","scaleBlendMode","scaleMaskImagePosition","scaleBlur","scaleRotate","scaleScale","scaleSkew","scaleTranslate","twMerge","cn","inputs","TooltipPrimitive.Provider","TooltipPrimitive.Root","TooltipPrimitive.Trigger","TooltipPrimitive.Portal","TooltipPrimitive.Content","TooltipPrimitive.Arrow","CLUSTER_LABEL_EXTRA_WIDTH","widenClusterLabels","cluster","clusterElement","currentWidth","currentX","foreignObject","parseMermaidSvg","svgString","svg","viewBox","bindNodeTooltips","nodeTooltips","setTooltip","tooltipData","existingTitle","title","exportSummary","highlightMatchingNodes","normalizedQuery","shape","textNode","interceptFiletreeAnchorClicks","href","M","O","G","Re","Oe","Te","C","we","Q","se","ie","ye","Pe","F","Se","$e","U","oe","Le","K","ne","Me","ze","Ee","Ie","ae","Ae","z","H","W","Ce","le","Be","De","qe","ue","ve","He","pe","Ze","Ge","Ne","Qe","je","Fe","Ue","Ke","We","Xe","Je","ce","he","Ve","Ye","N","et","B","E","tt","ke","T","J","V","I","de","ge","fe","nt","__publicField","R","S","Y","ee","te","me","xe","Z","A","P","D","L","escapeHtml","Markdown","renderer","marked","safeHref","titleAttr","safeSrc","safeAlt","processed","safeQuery","Tag","MermaidTooltipOverlay","tooltip","Fragment","Mermaid","chart","highlightQuery","containerRef","useRef","svgContainerRef","svgWrapperRef","toolbeltRef","useState","svgData","setSvgData","useEffect","cancelled","finalSvg","SvgZoom","tb","bindInteractions","useCallback","NODE_COLORS","resolveImport","importPath","makeSymbolNodeId","escapeC4","classifyFile","fileExtTech","buildChart","pkgs","pathLookup","pkgBoundaryIds","dirBoundaryIds","fileStyles","pkgFiles","pkgId","subDirs","subDir","subFiles","subId","tech","symbolStyles","fnName","npmNodes","edges","fileEdges","getFileEdge","imp","fileEdge","valueParts","typeParts","buildNodeTooltips","npmMetadata","tooltips","exportNames","privateFunctionNames","exportedFunctionNames","uniqueTypes","latest","getGraphHierarchy","hierarchy","IGNORE_SEGMENTS","shouldIgnore","inferDescription","analyzeRemoteRepository","zipUrl","user","repo","mainZipUrl","archiveBuffer","zip","JSZip","extracted","firstSlash","DependencyGraphClient","initialFiles","showLegend","initialOptions","helpContent","setFiles","setOptions","setSearch","showConfig","setShowConfig","showHelp","setShowHelp","repoUrl","setRepoUrl","isPending","startTransition","useTransition","setNpmMetadata","requestedNpmPkgs","workspaceScopes","isWorkspacePkg","isLikelyAliasOrPath","toFetch","handleRemoteLoad","useMemo","directChildren","isCollapsed","cId","cEl","toggleDescendants","HelpCircle","FunctionSquare","toggle","active","Loader2","MermaidClient","DEFAULT_INSTRUCTIONS","collectFiles","DependencyGraph","ignore","ignoreFile","showNpmImports","showTypes","showPrivateFunctions","showExportedFunctions","instructions","dirs","resolvedDir","getTag","baseToString","toString","isBoolean","isObjectLike","isBlank","INCORRECT_INDEX_TYPE","INVALID_DOC_INDEX","LOGICAL_SEARCH_INVALID_QUERY_FOR_KEY","PATTERN_LENGTH_TOO_LARGE","MISSING_KEY_PROPERTY","INVALID_KEY_WEIGHT_VALUE","FUSE_MATCH_TOKEN_SEARCH_UNSUPPORTED","hasOwn","KeyStore","totalWeight","createKey","keyId","weight","getFn","createKeyPath","createKeyId","deepGet","arrayIndex","MatchOptions","BasicOptions","FuzzyOptions","AdvancedOptions","Config","norm","mantissa","numTokens","inSpace","FuseIndex","fieldNormWeight","docs","records","recordCount","record","docIndex","keyIndex","keyLen","subRecords","subRecord","createIndex","myIndex","parseIndex","convertMaskToIndices","matchmask","minMatchCharLength","MAX_BITS","patternAlphabet","findAllMatches","includeMatches","ignoreLocation","patternLen","textLen","expectedLocation","currentThreshold","bestLocation","calcScore","currentLocation","accuracy","proximity","computeMatches","matchMask","score","lastBitArr","finalScore","bestErrors","binMax","binMin","binMid","finish","bitArr","charMatch","matchEnd","createPatternAlphabet","mergeIndices","NON_DECOMPOSABLE_MAP","NON_DECOMPOSABLE_RE","stripDiacritics","BitapSearch","ignoreDiacritics","addChunk","allIndices","totalScore","hasMatches","alphabet","MULTI_MATCH_TYPES","isInverse","bitap","matchersLen","ESCAPED_PIPE","OR_TOKEN","tokenize","getMatch","parseQuery","restored","queryItem","ExtendedSearch","numMatches","hasInverse","qLen","searchers","pLen","matcher","registeredSearchers","register","createSearcher","searcherClass","LogicalOperator","KeyType","isPath","isLeaf","convertToExplicit","auto","isQueryPath","computeScoreSingle","ignoreFieldNorm","computeScore","MaxHeap","sortFn","heap","largest","formatMatches","includeScore","DEFAULT_TOKEN","warned","warnNonGlobal","resolveTokenize","validated","createAnalyzer","tokenizeFn","MAX_MASK_TERMS","TokenSearch","queryTerms","invertedIndex","df","fieldCount","term","docFreq","idf","weightedScore","maxPossibleScore","matchedCount","matchedMask","matchedTerms","addField","docIdx","analyzer","distinctTerms","perDocTerms","ingestRecord","keyCount","keyIdx","sub","buildInvertedIndex","addToInvertedIndex","removeFromInvertedIndex","hits","removeAndShiftInvertedIndex","removedIndices","oldIdx","firstRemoved","shiftedDocFieldCount","oldKey","shiftedDocTermFieldHits","terms","Fuse","searcher","indicesToRemove","useHeap","requireAllTokens","resultMap","expResults","anyKeyFailed","keyMatches","termCount","coverage","plugins","PRIMITIVE_TYPES","SIG_KEYWORDS","lookAheadColon","ColorizedSignature","icons","Badge","bg","icon","sections","hasSections","hasPopover","wrapperRef","tooltipRef","pinned","setPinned","calcPos","showTooltip","hideTooltip","togglePin","openSource","section","ItemIcon","npmCache","formatBytes","bytes","kb","timeAgo","dateStr","days","months","fetchNpmInfo","encoded","metaRes","dlRes","sizeRes","dl","depCount","NpmBadge","setInfo","onHover","FILE_EXTENSIONS","exportStyles","defaultExportStyle","getExportStyle","internalStyles","ghLineUrl","ghBase","resolveLocalImport","knownPaths","getLocalImportLabel","collectFileNodeMap","kindToIcon","buildSectionItem","resolvedKind","getLocalImportSections","fileNodeMap","collectFilePaths","analysisItemDocText","buildSearchRecords","filterTreeByPaths","matchedPaths","Highlight","getNodeFontSize","getMaxTreeDepth","FileRow","importFilter","internalFilter","exportFilter","anchorId","FolderRows","collapseDepth","forceOpen","setIsOpen","TreeRows","FileTreeTable","defaultImportFilter","defaultInternalFilter","defaultExportFilter","defaultCollapseDepth","maxCollapseDepth","setCollapseDepth","showCollapseMenu","setShowCollapseMenu","showImportFilterMenu","setShowImportFilterMenu","showInternalFilterMenu","setShowInternalFilterMenu","showExportFilterMenu","setShowExportFilterMenu","setImportFilter","setInternalFilter","setExportFilter","sortConfig","setSortConfig","collapseMenuRef","importFilterMenuRef","internalFilterMenuRef","exportFilterMenuRef","forceOpenSearchResults","searchRecords","fuse","getNodeEntryCount","sortNodes","valA","valB","filterRes","toggleSort","renderSortIcon","collapseLevels","handleClickOutside","Filter","FileTreeView","falsyToString","cx","cva","_config_compoundVariants","variants","defaultVariants","getVariantClassNames","variantProp","defaultVariantProp","variantKey","propsWithoutUndefined","getCompoundVariantClassNames","cvClass","cvClassName","compoundVariantOptions","COLLAPSIBLE_NAME","createCollapsibleContext","CollapsibleProvider","useCollapsibleContext","Collapsible","__scopeCollapsible","disabled","collapsibleProps","prevOpen","getState","CollapsibleTrigger","CollapsibleContent","CollapsibleContentImpl","isPresent","setIsPresent","heightRef","widthRef","isMountAnimationPreventedRef","originalStylesRef","rAF","CollapsiblePrimitive.Root","CollapsiblePrimitive.CollapsibleTrigger","CollapsiblePrimitive.CollapsibleContent","keyVariants","fieldVariants","TypeTable","Item","deprecated","typeDescription","typeDescriptionLink","returns","Link"],"mappings":"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AAgBA,EAAgB,EAAO,GAAG,EAAI,IAC9CA,EAAgBA,EAAgB,EAAO,GAAG,EAAI,IAC9CA,EAAgBA,EAAgB,EAAO,GAAG,EAAI,IAC9CA,EAAgBA,EAAgB,EAAO,GAAG,EAAI,IAC9CA,EAAgBA,EAAgB,EAAO,GAAG,EAAI,IAC9CA,EAAgBA,EAAgB,EAAO,GAAG,EAAI,IAC9CA,EAAgBA,EAAgB,EAAO,GAAG,EAAI,IAC9CA,EAAgBA,EAAgB,EAAO,GAAG,EAAI,IAC9CA,EAAgBA,EAAgB,EAAO,GAAG,EAAI,IAC9CA,EAAgBA,EAAgB,EAAO,GAAG,EAAI,IAC9CA,EAAgBA,EAAgB,EAAO,GAAG,EAAI,IAC9CA,EAAgBA,EAAgB,EAAO,GAAG,EAAI,IAC9CA,EAAgBA,EAAgB,EAAO,GAAG,EAAI,IAC9CA,EAAgBA,EAAgB,EAAO,GAAG,EAAI,IAC9CA,EAAgBA,EAAgB,EAAO,GAAG,EAAI,IAC9CA,EAAgBA,EAAgB,EAAO,GAAG,EAAI,IAC9CA,EAAgBA,EAAgB,EAAO,EAAE,EAAI,IAC7CA,EAAgBA,EAAgB,EAAO,EAAE,EAAI,IAC7CA,EAAgBA,EAAgB,EAAO,EAAE,EAAI,IAC7CA,EAAgBA,EAAgB,EAAO,EAAE,EAAI,IAC7CA,EAAgBA,EAAgB,EAAO,EAAE,EAAI,IAC7CA,EAAgBA,EAAgB,EAAO,EAAE,EAAI,IAC7CA,EAAgBA,EAAgB,EAAO,EAAE,EAAI,IAC7CA,EAAgBA,EAAgB,EAAO,EAAE,EAAI,IAC7CA,EAAgBA,EAAgB,EAAO,EAAE,EAAI,IAC7CA,EAAgBA,EAAgB,EAAO,EAAE,EAAI,IAC7CA,EAAgBA,EAAgB,EAAO,EAAE,EAAI,IAC7CA,EAAgBA,EAAgB,EAAO,EAAE,EAAI,IAC7CA,EAAgBA,EAAgB,EAAO,EAAE,EAAI,IAC7CA,EAAgBA,EAAgB,EAAO,EAAE,EAAI,IAC7CA,EAAgBA,EAAgB,EAAO,EAAE,EAAI,IAC7CA,EAAgBA,EAAgB,EAAO,EAAE,EAAI,IAC7CA,EAAgBA,EAAgB,EAAO,EAAE,EAAI,IAC7CA,EAAgBA,EAAgB,EAAO,EAAE,EAAI,IAC7CA,EAAgBA,EAAg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AA4B,CAC9E,CAAC,EACGmlG,IAA4B,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAK,EACtiJC,IAA2B,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAK,EAC/tKC,IAA+B,CAAC,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,MAAM,EAClsRC,IAA8B,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAAQ,OAA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MAAO,GACT,IAAK,KACH,MAAO,GACT,IAAK,KACH,MAAO,GACT,IAAK,KACH,OAAQC,EAAY,CAClB,IAAK,IACH,MAAO,GACT,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACH,MAAO,GACT,QACE,OAAOhmG,GAA4BgmG,CAAY,CACzD,CAEI,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACH,MAAO,IACT,IAAK,KACH,MAAO,IACT,IAAK,KACH,MAAO,IACT,IAAK,KACH,OAAOH,EAAe,GAAkB,GAC1C,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACH,MAAO,IACT,IAAK,KACL,IAAK,KACH,MAAO,IACT,IAAK,KACL,IAAK,KACL,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,KACL,IAAK,IACL,IAAK,GACL,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACH,MAAO,IACT,QACE,MAAO,EACb,CACA,CACA,SAAS7lG,GAA4B+0D,EAAM,CACzC,OAAQA,EAAI,CACV,IAAK,IACH,MAAO,GACT,IAAK,IACH,MAAO,GACT,IAAK,IACH,MAAO,GACT,IAAK,IACH,MAAO,GACT,IAAK,IACH,MAAO,GACT,IAAK,IACH,MAAO,GACT,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACH,MAAO,IACT,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,IACL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACH,MAAO,IACT,IAAK,IACL,IAAK,IACL,IAAK,IACH,MAAO,IACT,IAAK,IACL,IAAK,IACH,MAAO,IACT,IAAK,IACL,IAAK,IACL,IAA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","x_google_ignoreList":[1,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,64,69,73,79,80]}